aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordcherednik <dcherednik@ydb.tech>2023-11-20 13:23:37 +0300
committerdcherednik <dcherednik@ydb.tech>2023-11-20 14:34:20 +0300
commitffff7a34e41bf0dd7d5e0f3d78aeaebbf56200e6 (patch)
tree47612a33d11873a4ffb450f68a720efeb9b21cb4
parent6d8d9a430dea2bfa0e6ce219a8e4f62f02fd2884 (diff)
downloadydb-ffff7a34e41bf0dd7d5e0f3d78aeaebbf56200e6.tar.gz
add darwin-arm64 CMakeLists
-rw-r--r--.mapping.json1959
-rw-r--r--CMakeLists.darwin-arm64.txt15
-rw-r--r--CMakeLists.txt2
-rw-r--r--certs/CMakeLists.darwin-arm64.txt38
-rw-r--r--certs/CMakeLists.txt2
-rw-r--r--cmake/conan-profiles/macos.arm64.profile11
-rw-r--r--cmake/global_vars.cmake6
-rw-r--r--contrib/go/_std_1.21/src/internal/cpu/cpu_arm64_darwin.go33
-rw-r--r--contrib/go/_std_1.21/src/runtime/cgo/gcc_darwin_arm64.c142
-rw-r--r--contrib/go/_std_1.21/src/runtime/defs_darwin_arm64.go240
-rw-r--r--contrib/go/_std_1.21/src/runtime/os_darwin_arm64.go12
-rw-r--r--contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.go95
-rw-r--r--contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.sysobin0 -> 484988 bytes
-rw-r--r--contrib/go/_std_1.21/src/runtime/rt0_darwin_arm64.s63
-rw-r--r--contrib/go/_std_1.21/src/runtime/signal_darwin_arm64.go90
-rw-r--r--contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.go65
-rw-r--r--contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.s769
-rw-r--r--contrib/go/_std_1.21/src/syscall/asm_darwin_arm64.s127
-rw-r--r--contrib/go/_std_1.21/src/syscall/syscall_darwin_arm64.go68
-rw-r--r--contrib/go/_std_1.21/src/syscall/zerrors_darwin_arm64.go1436
-rw-r--r--contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.go2035
-rw-r--r--contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.s255
-rw-r--r--contrib/go/_std_1.21/src/syscall/zsysnum_darwin_arm64.go358
-rw-r--r--contrib/go/_std_1.21/src/syscall/ztypes_darwin_arm64.go466
-rw-r--r--contrib/go/_std_1.21/src/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go10
-rw-r--r--contrib/libs/CMakeLists.darwin-arm64.txt71
-rw-r--r--contrib/libs/CMakeLists.txt2
-rw-r--r--contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/libs/antlr3_cpp_runtime/CMakeLists.txt2
-rw-r--r--contrib/libs/apache/CMakeLists.darwin-arm64.txt11
-rw-r--r--contrib/libs/apache/CMakeLists.txt2
-rw-r--r--contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt362
-rw-r--r--contrib/libs/apache/arrow/CMakeLists.txt2
-rw-r--r--contrib/libs/apache/avro/CMakeLists.darwin-arm64.txt56
-rw-r--r--contrib/libs/apache/avro/CMakeLists.txt2
-rw-r--r--contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt94
-rw-r--r--contrib/libs/apache/orc/CMakeLists.txt2
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-arm64.txt148
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt2
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-arm64.txt389
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt2
-rw-r--r--contrib/libs/backtrace/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/libs/backtrace/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/avx2/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/base64/avx2/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/neon32/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/base64/neon32/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/neon64/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/libs/base64/neon64/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/plain32/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/base64/plain32/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/plain64/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/base64/plain64/CMakeLists.txt2
-rw-r--r--contrib/libs/base64/ssse3/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/base64/ssse3/CMakeLists.txt2
-rw-r--r--contrib/libs/brotli/common/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/libs/brotli/common/CMakeLists.txt2
-rw-r--r--contrib/libs/brotli/dec/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/brotli/dec/CMakeLists.txt2
-rw-r--r--contrib/libs/brotli/enc/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/libs/brotli/enc/CMakeLists.txt2
-rw-r--r--contrib/libs/c-ares/CMakeLists.darwin-arm64.txt97
-rw-r--r--contrib/libs/c-ares/CMakeLists.txt2
-rw-r--r--contrib/libs/cctz/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/cctz/CMakeLists.txt2
-rw-r--r--contrib/libs/cctz/tzdata/CMakeLists.darwin-arm64.txt1235
-rw-r--r--contrib/libs/cctz/tzdata/CMakeLists.txt2
-rw-r--r--contrib/libs/crcutil/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/libs/crcutil/CMakeLists.txt2
-rw-r--r--contrib/libs/curl/CMakeLists.darwin-arm64.txt199
-rw-r--r--contrib/libs/curl/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/cxxsupp/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/builtins/CMakeLists.darwin-arm64.txt64
-rw-r--r--contrib/libs/cxxsupp/builtins/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt77
-rw-r--r--contrib/libs/cxxsupp/libcxx/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt2
-rw-r--r--contrib/libs/double-conversion/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/double-conversion/CMakeLists.txt2
-rw-r--r--contrib/libs/expat/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/libs/expat/CMakeLists.txt2
-rw-r--r--contrib/libs/farmhash/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/libs/farmhash/CMakeLists.txt2
-rw-r--r--contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/libs/farmhash/arch/sse41/CMakeLists.txt2
-rw-r--r--contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/libs/farmhash/arch/sse42/CMakeLists.txt2
-rw-r--r--contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt2
-rw-r--r--contrib/libs/fastlz/CMakeLists.darwin-arm64.txt19
-rw-r--r--contrib/libs/fastlz/CMakeLists.txt2
-rw-r--r--contrib/libs/flatbuffers/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/libs/flatbuffers/CMakeLists.txt2
-rw-r--r--contrib/libs/flatbuffers/flatc/CMakeLists.darwin-arm64.txt60
-rw-r--r--contrib/libs/flatbuffers/flatc/CMakeLists.txt2
-rw-r--r--contrib/libs/fmt/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/fmt/CMakeLists.txt2
-rw-r--r--contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt857
-rw-r--r--contrib/libs/googleapis-common-protos/CMakeLists.txt2
-rw-r--r--contrib/libs/grpc/CMakeLists.darwin-arm64.txt921
-rw-r--r--contrib/libs/grpc/CMakeLists.txt2
-rw-r--r--contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-arm64.txt37
-rw-r--r--contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt2
-rw-r--r--contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt2
-rw-r--r--contrib/libs/grpc/third_party/upb/CMakeLists.darwin-arm64.txt45
-rw-r--r--contrib/libs/grpc/third_party/upb/CMakeLists.txt2
-rw-r--r--contrib/libs/hdr_histogram/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/libs/hdr_histogram/CMakeLists.txt2
-rw-r--r--contrib/libs/highwayhash/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/libs/highwayhash/CMakeLists.txt2
-rw-r--r--contrib/libs/icu/CMakeLists.darwin-arm64.txt488
-rw-r--r--contrib/libs/icu/CMakeLists.txt2
-rw-r--r--contrib/libs/jemalloc/CMakeLists.darwin-arm64.txt103
-rw-r--r--contrib/libs/jemalloc/CMakeLists.txt2
-rw-r--r--contrib/libs/jwt-cpp/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/libs/jwt-cpp/CMakeLists.txt2
-rw-r--r--contrib/libs/libbz2/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/libs/libbz2/CMakeLists.txt2
-rw-r--r--contrib/libs/libc_compat/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/libs/libc_compat/CMakeLists.txt2
-rw-r--r--contrib/libs/libevent/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/libs/libevent/CMakeLists.txt2
-rw-r--r--contrib/libs/libevent/event_core/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/libs/libevent/event_core/CMakeLists.txt2
-rw-r--r--contrib/libs/libevent/event_extra/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/libs/libevent/event_extra/CMakeLists.txt2
-rw-r--r--contrib/libs/libevent/event_openssl/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/libevent/event_openssl/CMakeLists.txt2
-rw-r--r--contrib/libs/libevent/event_thread/CMakeLists.darwin-arm64.txt25
-rw-r--r--contrib/libs/libevent/event_thread/CMakeLists.txt2
-rw-r--r--contrib/libs/libfyaml/CMakeLists.darwin-arm64.txt45
-rw-r--r--contrib/libs/libfyaml/CMakeLists.txt2
-rw-r--r--contrib/libs/libunwind/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/libunwind/CMakeLists.txt2
-rw-r--r--contrib/libs/libxml/CMakeLists.darwin-arm64.txt76
-rw-r--r--contrib/libs/libxml/CMakeLists.txt2
-rw-r--r--contrib/libs/linuxvdso/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/libs/linuxvdso/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/libs/llvm12/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt8008
-rw-r--r--contrib/libs/llvm12/include/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-arm64.txt141
-rw-r--r--contrib/libs/llvm12/lib/Analysis/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-arm64.txt34
-rw-r--r--contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt62
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-arm64.txt226
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt55
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt55
-rw-r--r--contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt64
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt54
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt27
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-arm64.txt117
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/llvm12/lib/Demangle/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/IR/CMakeLists.darwin-arm64.txt86
-rw-r--r--contrib/libs/llvm12/lib/IR/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/libs/llvm12/lib/IRReader/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/llvm12/lib/Linker/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/MC/CMakeLists.darwin-arm64.txt90
-rw-r--r--contrib/libs/llvm12/lib/MC/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Object/CMakeLists.darwin-arm64.txt59
-rw-r--r--contrib/libs/llvm12/lib/Object/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-arm64.txt34
-rw-r--r--contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/libs/llvm12/lib/Remarks/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Support/CMakeLists.darwin-arm64.txt160
-rw-r--r--contrib/libs/llvm12/lib/Support/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-arm64.txt34
-rw-r--r--contrib/libs/llvm12/lib/TableGen/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/llvm12/lib/Target/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-arm64.txt96
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt44
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt25
-rw-r--r--contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt81
-rw-r--r--contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt48
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt107
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt97
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt39
-rw-r--r--contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-arm64.txt89
-rw-r--r--contrib/libs/llvm12/utils/TableGen/CMakeLists.txt2
-rw-r--r--contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt2
-rw-r--r--contrib/libs/lua/CMakeLists.darwin-arm64.txt56
-rw-r--r--contrib/libs/lua/CMakeLists.txt2
-rw-r--r--contrib/libs/lz4/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/libs/lz4/CMakeLists.txt2
-rw-r--r--contrib/libs/lzma/CMakeLists.darwin-arm64.txt114
-rw-r--r--contrib/libs/lzma/CMakeLists.txt2
-rw-r--r--contrib/libs/lzmasdk/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/libs/lzmasdk/CMakeLists.txt2
-rw-r--r--contrib/libs/miniselect/CMakeLists.darwin-arm64.txt14
-rw-r--r--contrib/libs/miniselect/CMakeLists.txt2
-rw-r--r--contrib/libs/nayuki_md5/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/nayuki_md5/CMakeLists.txt2
-rw-r--r--contrib/libs/nghttp2/CMakeLists.darwin-arm64.txt50
-rw-r--r--contrib/libs/nghttp2/CMakeLists.txt2
-rw-r--r--contrib/libs/openldap/CMakeLists.darwin-arm64.txt107
-rw-r--r--contrib/libs/openldap/CMakeLists.txt2
-rw-r--r--contrib/libs/openldap/libraries/CMakeLists.darwin-arm64.txt9
-rw-r--r--contrib/libs/openldap/libraries/CMakeLists.txt2
-rw-r--r--contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/libs/openldap/libraries/liblber/CMakeLists.txt2
-rw-r--r--contrib/libs/openssl/CMakeLists.darwin-arm64.txt86
-rw-r--r--contrib/libs/openssl/CMakeLists.txt2
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/aes/aesv8-armx.S757
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/aes/vpaes-armv8.S1196
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/arm64cpuid.S122
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/bn/armv8-mont.S1408
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/chacha/chacha-armv8.S1977
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/ec/ecp_nistz256-armv8.S4242
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/modes/ghashv8-armx.S552
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/poly1305/poly1305-armv8.S870
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/sha/keccak1600-armv8.S1095
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha1-armv8.S1221
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha256-armv8.S2063
-rw-r--r--contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha512-armv8.S1618
-rw-r--r--contrib/libs/openssl/crypto/CMakeLists.darwin-arm64.txt689
-rw-r--r--contrib/libs/openssl/crypto/CMakeLists.txt2
-rw-r--r--contrib/libs/openssl/crypto/dso/dso_dlfcn.c456
-rw-r--r--contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt155
-rw-r--r--contrib/libs/opentelemetry-proto/CMakeLists.txt2
-rw-r--r--contrib/libs/pcre/CMakeLists.darwin-arm64.txt47
-rw-r--r--contrib/libs/pcre/CMakeLists.txt2
-rw-r--r--contrib/libs/pcre/pcre16/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/libs/pcre/pcre16/CMakeLists.txt2
-rw-r--r--contrib/libs/pcre/pcre32/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/libs/pcre/pcre32/CMakeLists.txt2
-rw-r--r--contrib/libs/pdqsort/CMakeLists.darwin-arm64.txt14
-rw-r--r--contrib/libs/pdqsort/CMakeLists.txt2
-rw-r--r--contrib/libs/pfr/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/pfr/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/CMakeLists.darwin-arm64.txt15
-rw-r--r--contrib/libs/poco/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/Crypto/CMakeLists.darwin-arm64.txt55
-rw-r--r--contrib/libs/poco/Crypto/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/Foundation/CMakeLists.darwin-arm64.txt191
-rw-r--r--contrib/libs/poco/Foundation/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/JSON/CMakeLists.darwin-arm64.txt45
-rw-r--r--contrib/libs/poco/JSON/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/Net/CMakeLists.darwin-arm64.txt132
-rw-r--r--contrib/libs/poco/Net/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-arm64.txt68
-rw-r--r--contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/Util/CMakeLists.darwin-arm64.txt65
-rw-r--r--contrib/libs/poco/Util/CMakeLists.txt2
-rw-r--r--contrib/libs/poco/XML/CMakeLists.darwin-arm64.txt108
-rw-r--r--contrib/libs/poco/XML/CMakeLists.txt2
-rw-r--r--contrib/libs/protobuf/CMakeLists.darwin-arm64.txt175
-rw-r--r--contrib/libs/protobuf/CMakeLists.txt2
-rw-r--r--contrib/libs/protoc/CMakeLists.darwin-arm64.txt112
-rw-r--r--contrib/libs/protoc/CMakeLists.txt2
-rw-r--r--contrib/libs/rapidjson/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/libs/rapidjson/CMakeLists.txt2
-rw-r--r--contrib/libs/re2/CMakeLists.darwin-arm64.txt53
-rw-r--r--contrib/libs/re2/CMakeLists.txt2
-rw-r--r--contrib/libs/sasl/CMakeLists.darwin-arm64.txt52
-rw-r--r--contrib/libs/sasl/CMakeLists.txt2
-rw-r--r--contrib/libs/snappy/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/libs/snappy/CMakeLists.txt2
-rw-r--r--contrib/libs/sparsehash/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/libs/sparsehash/CMakeLists.txt2
-rw-r--r--contrib/libs/t1ha/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/libs/t1ha/CMakeLists.txt2
-rw-r--r--contrib/libs/tbb/CMakeLists.darwin-arm64.txt50
-rw-r--r--contrib/libs/tbb/CMakeLists.txt2
-rw-r--r--contrib/libs/tcmalloc/CMakeLists.darwin-arm64.txt9
-rw-r--r--contrib/libs/tcmalloc/CMakeLists.txt2
-rw-r--r--contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/libs/tcmalloc/malloc_extension/CMakeLists.txt2
-rw-r--r--contrib/libs/utf8proc/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/libs/utf8proc/CMakeLists.txt2
-rw-r--r--contrib/libs/xxhash/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/libs/xxhash/CMakeLists.txt2
-rw-r--r--contrib/libs/yajl/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/libs/yajl/CMakeLists.txt2
-rw-r--r--contrib/libs/yaml-cpp/CMakeLists.darwin-arm64.txt46
-rw-r--r--contrib/libs/yaml-cpp/CMakeLists.txt2
-rw-r--r--contrib/libs/zlib/CMakeLists.darwin-arm64.txt34
-rw-r--r--contrib/libs/zlib/CMakeLists.txt2
-rw-r--r--contrib/libs/zstd/CMakeLists.darwin-arm64.txt60
-rw-r--r--contrib/libs/zstd/CMakeLists.txt2
-rw-r--r--contrib/libs/zstd06/CMakeLists.darwin-arm64.txt47
-rw-r--r--contrib/libs/zstd06/CMakeLists.txt2
-rw-r--r--contrib/restricted/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-arm64.txt36
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-arm64.txt45
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-arm64.txt39
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-arm64.txt71
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-arm64.txt41
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-arm64.txt40
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-arm64.txt27
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/restricted/abseil-cpp/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-arm64.txt34
-rw-r--r--contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt44
-rw-r--r--contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt46
-rw-r--r--contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-arm64.txt13
-rw-r--r--contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-arm64.txt38
-rw-r--r--contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt70
-rw-r--r--contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-arm64.txt40
-rw-r--r--contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-arm64.txt39
-rw-r--r--contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt2
-rw-r--r--contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt42
-rw-r--r--contrib/restricted/aws/aws-c-cal/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-common/CMakeLists.darwin-arm64.txt82
-rw-r--r--contrib/restricted/aws/aws-c-common/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-arm64.txt50
-rw-r--r--contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-io/CMakeLists.darwin-arm64.txt65
-rw-r--r--contrib/restricted/aws/aws-c-io/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-checksums/CMakeLists.darwin-arm64.txt27
-rw-r--r--contrib/restricted/aws/aws-checksums/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/s2n/CMakeLists.darwin-arm64.txt218
-rw-r--r--contrib/restricted/aws/s2n/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/CMakeLists.darwin-arm64.txt74
-rw-r--r--contrib/restricted/boost/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/algorithm/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/restricted/boost/algorithm/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/align/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/align/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/any/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/boost/any/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/array/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/boost/array/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/asio/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/restricted/boost/asio/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/assert/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/restricted/boost/assert/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/atomic/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/restricted/boost/atomic/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/bind/CMakeLists.darwin-arm64.txt18
-rw-r--r--contrib/restricted/boost/bind/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/chrono/CMakeLists.darwin-arm64.txt39
-rw-r--r--contrib/restricted/boost/chrono/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/concept_check/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/concept_check/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/config/CMakeLists.darwin-arm64.txt19
-rw-r--r--contrib/restricted/boost/config/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/container/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/restricted/boost/container/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/container_hash/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/context/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/boost/context/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/context/impl_common/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/restricted/boost/context/impl_common/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/context/src/asm/jump_arm64_aapcs_macho_gas.S109
-rw-r--r--contrib/restricted/boost/context/src/asm/make_arm64_aapcs_macho_gas.S83
-rw-r--r--contrib/restricted/boost/context/src/asm/ontop_arm64_aapcs_macho_gas.S108
-rw-r--r--contrib/restricted/boost/conversion/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/conversion/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/core/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/core/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/coroutine/CMakeLists.darwin-arm64.txt38
-rw-r--r--contrib/restricted/boost/coroutine/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/crc/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/crc/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/date_time/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/restricted/boost/date_time/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/describe/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/restricted/boost/describe/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/detail/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/boost/detail/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/restricted/boost/dynamic_bitset/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/exception/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/restricted/boost/exception/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/format/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/format/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/function/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/restricted/boost/function/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/function_types/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/boost/function_types/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/functional/CMakeLists.darwin-arm64.txt25
-rw-r--r--contrib/restricted/boost/functional/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/fusion/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/restricted/boost/fusion/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/integer/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/boost/integer/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/interprocess/CMakeLists.darwin-arm64.txt27
-rw-r--r--contrib/restricted/boost/interprocess/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/intrusive/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/boost/intrusive/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/io/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/restricted/boost/io/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/iostreams/CMakeLists.darwin-arm64.txt55
-rw-r--r--contrib/restricted/boost/iostreams/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/restricted/boost/iterator/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt27
-rw-r--r--contrib/restricted/boost/lexical_cast/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/locale/CMakeLists.darwin-arm64.txt70
-rw-r--r--contrib/restricted/boost/locale/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/math/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/restricted/boost/math/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/move/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/restricted/boost/move/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/mp11/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/restricted/boost/mp11/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/mpl/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/mpl/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/multi_index/CMakeLists.darwin-arm64.txt32
-rw-r--r--contrib/restricted/boost/multi_index/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/numeric_conversion/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/optional/CMakeLists.darwin-arm64.txt26
-rw-r--r--contrib/restricted/boost/optional/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/pool/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/boost/pool/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/predef/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/restricted/boost/predef/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/preprocessor/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/restricted/boost/preprocessor/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/program_options/CMakeLists.darwin-arm64.txt45
-rw-r--r--contrib/restricted/boost/program_options/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/random/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/restricted/boost/random/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/range/CMakeLists.darwin-arm64.txt33
-rw-r--r--contrib/restricted/boost/range/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/ratio/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/ratio/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/rational/CMakeLists.darwin-arm64.txt24
-rw-r--r--contrib/restricted/boost/rational/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/regex/CMakeLists.darwin-arm64.txt41
-rw-r--r--contrib/restricted/boost/regex/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/smart_ptr/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/smart_ptr/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/static_assert/CMakeLists.darwin-arm64.txt17
-rw-r--r--contrib/restricted/boost/static_assert/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/system/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/boost/system/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/thread/CMakeLists.darwin-arm64.txt59
-rw-r--r--contrib/restricted/boost/thread/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/throw_exception/CMakeLists.darwin-arm64.txt18
-rw-r--r--contrib/restricted/boost/throw_exception/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/tokenizer/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/boost/tokenizer/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/tuple/CMakeLists.darwin-arm64.txt20
-rw-r--r--contrib/restricted/boost/tuple/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/type_index/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/type_traits/CMakeLists.darwin-arm64.txt18
-rw-r--r--contrib/restricted/boost/type_traits/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt19
-rw-r--r--contrib/restricted/boost/typeof/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/unordered/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/restricted/boost/unordered/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/utility/CMakeLists.darwin-arm64.txt23
-rw-r--r--contrib/restricted/boost/utility/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/variant2/CMakeLists.darwin-arm64.txt19
-rw-r--r--contrib/restricted/boost/variant2/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/winapi/CMakeLists.darwin-arm64.txt18
-rw-r--r--contrib/restricted/boost/winapi/CMakeLists.txt2
-rw-r--r--contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-arm64.txt19
-rw-r--r--contrib/restricted/cityhash-1.0.2/CMakeLists.txt2
-rw-r--r--contrib/restricted/dragonbox/CMakeLists.darwin-arm64.txt22
-rw-r--r--contrib/restricted/dragonbox/CMakeLists.txt2
-rw-r--r--contrib/restricted/fast_float/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/restricted/fast_float/CMakeLists.txt2
-rw-r--r--contrib/restricted/google/benchmark/CMakeLists.darwin-arm64.txt50
-rw-r--r--contrib/restricted/google/benchmark/CMakeLists.txt2
-rw-r--r--contrib/restricted/googletest/googlemock/CMakeLists.darwin-arm64.txt28
-rw-r--r--contrib/restricted/googletest/googlemock/CMakeLists.txt2
-rw-r--r--contrib/restricted/googletest/googletest/CMakeLists.darwin-arm64.txt31
-rw-r--r--contrib/restricted/googletest/googletest/CMakeLists.txt2
-rw-r--r--contrib/restricted/http-parser/CMakeLists.darwin-arm64.txt21
-rw-r--r--contrib/restricted/http-parser/CMakeLists.txt2
-rw-r--r--contrib/restricted/libffi/configs/aarch64-apple-macos/fficonfig.h211
-rw-r--r--contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffi.h515
-rw-r--r--contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffitarget.h92
-rw-r--r--contrib/restricted/nlohmann_json/CMakeLists.darwin-arm64.txt16
-rw-r--r--contrib/restricted/nlohmann_json/CMakeLists.txt2
-rw-r--r--contrib/restricted/patched/replxx/CMakeLists.darwin-arm64.txt38
-rw-r--r--contrib/restricted/patched/replxx/CMakeLists.txt2
-rw-r--r--contrib/restricted/thrift/CMakeLists.darwin-arm64.txt82
-rw-r--r--contrib/restricted/thrift/CMakeLists.txt2
-rw-r--r--contrib/restricted/uriparser/CMakeLists.darwin-arm64.txt41
-rw-r--r--contrib/restricted/uriparser/CMakeLists.txt2
-rw-r--r--contrib/tools/bison/bison/induced/CMakeLists.darwin-arm64.txt10
-rw-r--r--contrib/tools/bison/bison/induced/CMakeLists.txt2
-rw-r--r--contrib/tools/flatc/bin/CMakeLists.darwin-arm64.txt29
-rw-r--r--contrib/tools/flatc/bin/CMakeLists.txt2
-rw-r--r--contrib/tools/protoc/bin/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/tools/protoc/bin/CMakeLists.txt2
-rw-r--r--contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-arm64.txt30
-rw-r--r--contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt2
-rw-r--r--contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-arm64.txt35
-rw-r--r--contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.txt2
-rw-r--r--library/cpp/CMakeLists.darwin-arm64.txt96
-rw-r--r--library/cpp/CMakeLists.txt2
-rw-r--r--library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/accurate_accumulate/CMakeLists.txt2
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.darwin-arm64.txt33
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.txt2
-rw-r--r--library/cpp/actors/core/CMakeLists.darwin-arm64.txt101
-rw-r--r--library/cpp/actors/core/CMakeLists.txt2
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/core/ut_fat/CMakeLists.darwin-arm64.txt70
-rw-r--r--library/cpp/actors/core/ut_fat/CMakeLists.txt2
-rw-r--r--library/cpp/actors/cppcoro/CMakeLists.darwin-arm64.txt24
-rw-r--r--library/cpp/actors/cppcoro/CMakeLists.txt2
-rw-r--r--library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt30
-rw-r--r--library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt2
-rw-r--r--library/cpp/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--library/cpp/actors/cppcoro/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/dnscachelib/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/actors/dnscachelib/CMakeLists.txt2
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.txt2
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt29
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.txt2
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt66
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.txt2
-rw-r--r--library/cpp/actors/helpers/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/actors/helpers/CMakeLists.txt2
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/http/CMakeLists.darwin-arm64.txt32
-rw-r--r--library/cpp/actors/http/CMakeLists.txt2
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.darwin-arm64.txt61
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/mock/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/actors/interconnect/mock/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.darwin-arm64.txt85
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt14
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt69
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.txt2
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt75
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt2
-rw-r--r--library/cpp/actors/log_backend/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/actors/log_backend/CMakeLists.txt2
-rw-r--r--library/cpp/actors/memory_log/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/actors/memory_log/CMakeLists.txt2
-rw-r--r--library/cpp/actors/prof/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/actors/prof/CMakeLists.txt2
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/protos/CMakeLists.darwin-arm64.txt82
-rw-r--r--library/cpp/actors/protos/CMakeLists.txt2
-rw-r--r--library/cpp/actors/testlib/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/actors/testlib/CMakeLists.txt2
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.darwin-arm64.txt28
-rw-r--r--library/cpp/actors/util/CMakeLists.txt2
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.txt2
-rw-r--r--library/cpp/actors/wilson/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/actors/wilson/CMakeLists.txt2
-rw-r--r--library/cpp/actors/wilson/protos/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/actors/wilson/protos/CMakeLists.txt2
-rw-r--r--library/cpp/archive/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/archive/CMakeLists.txt2
-rw-r--r--library/cpp/balloc/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/balloc/CMakeLists.txt2
-rw-r--r--library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/balloc/lib/CMakeLists.txt2
-rw-r--r--library/cpp/balloc/setup/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/balloc/setup/CMakeLists.txt2
-rw-r--r--library/cpp/binsaver/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/binsaver/CMakeLists.txt2
-rw-r--r--library/cpp/bit_io/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/bit_io/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/CMakeLists.darwin-arm64.txt30
-rw-r--r--library/cpp/blockcodecs/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-arm64.txt29
-rw-r--r--library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt2
-rw-r--r--library/cpp/blockcodecs/core/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/blockcodecs/core/CMakeLists.txt2
-rw-r--r--library/cpp/bucket_quoter/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/bucket_quoter/CMakeLists.txt2
-rw-r--r--library/cpp/build_info/CMakeLists.darwin-arm64.txt57
-rw-r--r--library/cpp/build_info/CMakeLists.txt2
-rw-r--r--library/cpp/cache/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/cache/CMakeLists.txt2
-rw-r--r--library/cpp/case_insensitive_string/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/case_insensitive_string/CMakeLists.txt2
-rw-r--r--library/cpp/cgiparam/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/cgiparam/CMakeLists.txt2
-rw-r--r--library/cpp/charset/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/charset/CMakeLists.txt2
-rw-r--r--library/cpp/charset/lite/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/charset/lite/CMakeLists.txt2
-rw-r--r--library/cpp/codecs/CMakeLists.darwin-arm64.txt36
-rw-r--r--library/cpp/codecs/CMakeLists.txt2
-rw-r--r--library/cpp/codecs/greedy_dict/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/codecs/greedy_dict/CMakeLists.txt2
-rw-r--r--library/cpp/colorizer/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/colorizer/CMakeLists.txt2
-rw-r--r--library/cpp/compproto/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/compproto/CMakeLists.txt2
-rw-r--r--library/cpp/comptable/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/comptable/CMakeLists.txt2
-rw-r--r--library/cpp/config/CMakeLists.darwin-arm64.txt60
-rw-r--r--library/cpp/config/CMakeLists.txt2
-rw-r--r--library/cpp/containers/2d_array/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/2d_array/CMakeLists.txt2
-rw-r--r--library/cpp/containers/absl_flat_hash/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/containers/absl_flat_hash/CMakeLists.txt2
-rw-r--r--library/cpp/containers/atomizer/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/containers/atomizer/CMakeLists.txt2
-rw-r--r--library/cpp/containers/bitseq/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/containers/bitseq/CMakeLists.txt2
-rw-r--r--library/cpp/containers/compact_vector/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/compact_vector/CMakeLists.txt2
-rw-r--r--library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt31
-rw-r--r--library/cpp/containers/comptrie/CMakeLists.txt2
-rw-r--r--library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/disjoint_interval_tree/CMakeLists.txt2
-rw-r--r--library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/intrusive_avl_tree/CMakeLists.txt2
-rw-r--r--library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/intrusive_rb_tree/CMakeLists.txt2
-rw-r--r--library/cpp/containers/paged_vector/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/paged_vector/CMakeLists.txt2
-rw-r--r--library/cpp/containers/ring_buffer/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/ring_buffer/CMakeLists.txt2
-rw-r--r--library/cpp/containers/sorted_vector/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/sorted_vector/CMakeLists.txt2
-rw-r--r--library/cpp/containers/stack_array/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/containers/stack_array/CMakeLists.txt2
-rw-r--r--library/cpp/containers/stack_vector/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/stack_vector/CMakeLists.txt2
-rw-r--r--library/cpp/containers/str_map/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/str_map/CMakeLists.txt2
-rw-r--r--library/cpp/containers/top_keeper/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/containers/top_keeper/CMakeLists.txt2
-rw-r--r--library/cpp/coroutine/engine/CMakeLists.darwin-arm64.txt55
-rw-r--r--library/cpp/coroutine/engine/CMakeLists.txt2
-rw-r--r--library/cpp/coroutine/listener/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/coroutine/listener/CMakeLists.txt2
-rw-r--r--library/cpp/cppparser/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/cppparser/CMakeLists.txt2
-rw-r--r--library/cpp/dbg_output/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/dbg_output/CMakeLists.txt2
-rw-r--r--library/cpp/deprecated/accessors/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/deprecated/accessors/CMakeLists.txt2
-rw-r--r--library/cpp/deprecated/atomic/CMakeLists.darwin-arm64.txt14
-rw-r--r--library/cpp/deprecated/atomic/CMakeLists.txt2
-rw-r--r--library/cpp/deprecated/enum_codegen/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/deprecated/enum_codegen/CMakeLists.txt2
-rw-r--r--library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/deprecated/kmp/CMakeLists.txt2
-rw-r--r--library/cpp/deprecated/split/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/deprecated/split/CMakeLists.txt2
-rw-r--r--library/cpp/diff/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/diff/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/digest/argonish/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/digest/argonish/internal/argon2/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/digest/argonish/internal/blamka/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-arm64.txt10
-rw-r--r--library/cpp/digest/argonish/internal/proxies/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-arm64.txt14
-rw-r--r--library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.txt2
-rw-r--r--library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-arm64.txt14
-rw-r--r--library/cpp/digest/argonish/internal/rotations/CMakeLists.txt2
-rw-r--r--library/cpp/digest/crc32c/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/digest/crc32c/CMakeLists.txt2
-rw-r--r--library/cpp/digest/lower_case/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/digest/lower_case/CMakeLists.txt2
-rw-r--r--library/cpp/digest/md5/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/digest/md5/CMakeLists.txt2
-rw-r--r--library/cpp/digest/murmur/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/digest/murmur/CMakeLists.txt2
-rw-r--r--library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt40
-rw-r--r--library/cpp/digest/old_crc/CMakeLists.txt2
-rw-r--r--library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-arm64.txt26
-rw-r--r--library/cpp/digest/old_crc/gencrc/CMakeLists.txt2
-rw-r--r--library/cpp/digest/sfh/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/digest/sfh/CMakeLists.txt2
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.txt2
-rw-r--r--library/cpp/dns/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/dns/CMakeLists.txt2
-rw-r--r--library/cpp/dwarf_backtrace/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/dwarf_backtrace/CMakeLists.txt2
-rw-r--r--library/cpp/enumbitset/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/enumbitset/CMakeLists.txt2
-rw-r--r--library/cpp/execprofile/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/execprofile/CMakeLists.txt2
-rw-r--r--library/cpp/getopt/CMakeLists.darwin-arm64.txt30
-rw-r--r--library/cpp/getopt/CMakeLists.txt2
-rw-r--r--library/cpp/getopt/small/CMakeLists.darwin-arm64.txt33
-rw-r--r--library/cpp/getopt/small/CMakeLists.txt2
-rw-r--r--library/cpp/grpc/client/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/grpc/client/CMakeLists.txt2
-rw-r--r--library/cpp/grpc/server/CMakeLists.darwin-arm64.txt35
-rw-r--r--library/cpp/grpc/server/CMakeLists.txt2
-rw-r--r--library/cpp/grpc/server/actors/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/grpc/server/actors/CMakeLists.txt2
-rw-r--r--library/cpp/histogram/adaptive/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/histogram/adaptive/CMakeLists.txt2
-rw-r--r--library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/histogram/adaptive/protos/CMakeLists.txt2
-rw-r--r--library/cpp/histogram/hdr/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/histogram/hdr/CMakeLists.txt2
-rw-r--r--library/cpp/html/escape/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/html/escape/CMakeLists.txt2
-rw-r--r--library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/html/pcdata/CMakeLists.txt2
-rw-r--r--library/cpp/http/fetch/CMakeLists.darwin-arm64.txt45
-rw-r--r--library/cpp/http/fetch/CMakeLists.txt2
-rw-r--r--library/cpp/http/io/CMakeLists.darwin-arm64.txt24
-rw-r--r--library/cpp/http/io/CMakeLists.txt2
-rw-r--r--library/cpp/http/misc/CMakeLists.darwin-arm64.txt35
-rw-r--r--library/cpp/http/misc/CMakeLists.txt2
-rw-r--r--library/cpp/http/server/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/http/server/CMakeLists.txt2
-rw-r--r--library/cpp/http/simple/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/http/simple/CMakeLists.txt2
-rw-r--r--library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/hyperloglog/CMakeLists.txt2
-rw-r--r--library/cpp/int128/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/int128/CMakeLists.txt2
-rw-r--r--library/cpp/ipmath/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/ipmath/CMakeLists.txt2
-rw-r--r--library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/ipv6_address/CMakeLists.txt2
-rw-r--r--library/cpp/iterator/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/iterator/CMakeLists.txt2
-rw-r--r--library/cpp/json/CMakeLists.darwin-arm64.txt30
-rw-r--r--library/cpp/json/CMakeLists.txt2
-rw-r--r--library/cpp/json/common/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/json/common/CMakeLists.txt2
-rw-r--r--library/cpp/json/easy_parse/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/json/easy_parse/CMakeLists.txt2
-rw-r--r--library/cpp/json/fast_sax/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/json/fast_sax/CMakeLists.txt2
-rw-r--r--library/cpp/json/writer/CMakeLists.darwin-arm64.txt31
-rw-r--r--library/cpp/json/writer/CMakeLists.txt2
-rw-r--r--library/cpp/json/yson/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/json/yson/CMakeLists.txt2
-rw-r--r--library/cpp/lcs/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/lcs/CMakeLists.txt2
-rw-r--r--library/cpp/lfalloc/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/lfalloc/CMakeLists.txt2
-rw-r--r--library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/lfalloc/alloc_profiler/CMakeLists.txt2
-rw-r--r--library/cpp/lfalloc/dbg_info/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/lfalloc/dbg_info/CMakeLists.txt2
-rw-r--r--library/cpp/lfalloc/yt/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/lfalloc/yt/CMakeLists.txt4
-rw-r--r--library/cpp/linear_regression/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/linear_regression/CMakeLists.txt2
-rw-r--r--library/cpp/logger/CMakeLists.darwin-arm64.txt65
-rw-r--r--library/cpp/logger/CMakeLists.txt2
-rw-r--r--library/cpp/logger/global/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/logger/global/CMakeLists.txt2
-rw-r--r--library/cpp/lua/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/lua/CMakeLists.txt2
-rw-r--r--library/cpp/lwtrace/CMakeLists.darwin-arm64.txt33
-rw-r--r--library/cpp/lwtrace/CMakeLists.txt2
-rw-r--r--library/cpp/lwtrace/mon/CMakeLists.darwin-arm64.txt118
-rw-r--r--library/cpp/lwtrace/mon/CMakeLists.txt2
-rw-r--r--library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/lwtrace/mon/analytics/CMakeLists.txt2
-rw-r--r--library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/lwtrace/protos/CMakeLists.txt2
-rw-r--r--library/cpp/malloc/CMakeLists.darwin-arm64.txt11
-rw-r--r--library/cpp/malloc/CMakeLists.txt2
-rw-r--r--library/cpp/malloc/api/CMakeLists.darwin-arm64.txt16
-rw-r--r--library/cpp/malloc/api/CMakeLists.txt2
-rw-r--r--library/cpp/malloc/jemalloc/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/malloc/jemalloc/CMakeLists.txt2
-rw-r--r--library/cpp/malloc/system/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/malloc/system/CMakeLists.txt4
-rw-r--r--library/cpp/messagebus/CMakeLists.darwin-arm64.txt71
-rw-r--r--library/cpp/messagebus/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/actor/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/messagebus/actor/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/config/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/messagebus/config/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt44
-rw-r--r--library/cpp/messagebus/monitoring/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/oldmodule/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/messagebus/oldmodule/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/protobuf/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/messagebus/protobuf/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/scheduler/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/messagebus/scheduler/CMakeLists.txt2
-rw-r--r--library/cpp/messagebus/www/CMakeLists.darwin-arm64.txt62
-rw-r--r--library/cpp/messagebus/www/CMakeLists.txt2
-rw-r--r--library/cpp/mime/types/CMakeLists.darwin-arm64.txt29
-rw-r--r--library/cpp/mime/types/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/monlib/deprecated/json/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/dynamic_counters/CMakeLists.darwin-arm64.txt28
-rw-r--r--library/cpp/monlib/dynamic_counters/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt16
-rw-r--r--library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt40
-rw-r--r--library/cpp/monlib/encode/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/buffered/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/monlib/encode/buffered/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/json/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/monlib/encode/json/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/prometheus/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/monlib/encode/prometheus/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/spack/CMakeLists.darwin-arm64.txt26
-rw-r--r--library/cpp/monlib/encode/spack/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/encode/text/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/monlib/encode/text/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/exception/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/monlib/exception/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/messagebus/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/monlib/messagebus/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt44
-rw-r--r--library/cpp/monlib/metrics/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/service/CMakeLists.darwin-arm64.txt34
-rw-r--r--library/cpp/monlib/service/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/service/pages/CMakeLists.darwin-arm64.txt36
-rw-r--r--library/cpp/monlib/service/pages/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt52
-rw-r--r--library/cpp/monlib/service/pages/resources/CMakeLists.txt2
-rw-r--r--library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-arm64.txt42
-rw-r--r--library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt2
-rw-r--r--library/cpp/on_disk/chunks/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/on_disk/chunks/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/big_integer/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/openssl/big_integer/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/crypto/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/openssl/crypto/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/holders/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/openssl/holders/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/init/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/openssl/init/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/io/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/openssl/io/CMakeLists.txt2
-rw-r--r--library/cpp/openssl/method/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/openssl/method/CMakeLists.txt2
-rw-r--r--library/cpp/packedtypes/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/packedtypes/CMakeLists.txt2
-rw-r--r--library/cpp/packers/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/packers/CMakeLists.txt2
-rw-r--r--library/cpp/pop_count/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/pop_count/CMakeLists.txt2
-rw-r--r--library/cpp/presort/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/presort/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/protobuf/dynamic_prototype/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/interop/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/protobuf/interop/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt31
-rw-r--r--library/cpp/protobuf/json/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/protobuf/json/proto/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/protobuf/util/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/protobuf/util/proto/CMakeLists.txt2
-rw-r--r--library/cpp/protobuf/yql/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/protobuf/yql/CMakeLists.txt2
-rw-r--r--library/cpp/random_provider/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/random_provider/CMakeLists.txt2
-rw-r--r--library/cpp/regex/CMakeLists.darwin-arm64.txt10
-rw-r--r--library/cpp/regex/CMakeLists.txt2
-rw-r--r--library/cpp/regex/pcre/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/regex/pcre/CMakeLists.txt2
-rw-r--r--library/cpp/regex/pire/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/regex/pire/CMakeLists.txt2
-rw-r--r--library/cpp/resource/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/resource/CMakeLists.txt2
-rw-r--r--library/cpp/retry/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/retry/CMakeLists.txt2
-rw-r--r--library/cpp/retry/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--library/cpp/retry/protos/CMakeLists.txt2
-rw-r--r--library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt13
-rw-r--r--library/cpp/sanitizer/include/CMakeLists.txt2
-rw-r--r--library/cpp/scheme/CMakeLists.darwin-arm64.txt41
-rw-r--r--library/cpp/scheme/CMakeLists.txt2
-rw-r--r--library/cpp/sighandler/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/sighandler/CMakeLists.txt2
-rw-r--r--library/cpp/skiff/CMakeLists.darwin-arm64.txt32
-rw-r--r--library/cpp/skiff/CMakeLists.txt2
-rw-r--r--library/cpp/sliding_window/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/sliding_window/CMakeLists.txt2
-rw-r--r--library/cpp/sse/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/sse/CMakeLists.txt2
-rw-r--r--library/cpp/streams/brotli/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/streams/brotli/CMakeLists.txt2
-rw-r--r--library/cpp/streams/bzip2/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/streams/bzip2/CMakeLists.txt2
-rw-r--r--library/cpp/streams/lzma/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/streams/lzma/CMakeLists.txt2
-rw-r--r--library/cpp/streams/xz/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/streams/xz/CMakeLists.txt2
-rw-r--r--library/cpp/streams/zc_memory_input/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/streams/zc_memory_input/CMakeLists.txt2
-rw-r--r--library/cpp/streams/zstd/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/streams/zstd/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/base32/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/base32/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/base64/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/string_utils/base64/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/csv/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/csv/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/indent_text/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/indent_text/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/string_utils/levenshtein_diff/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/parse_size/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/quote/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/relaxed_escaper/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/scan/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/scan/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/url/CMakeLists.txt2
-rw-r--r--library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/string_utils/ztstrbuf/CMakeLists.txt2
-rw-r--r--library/cpp/svnversion/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/svnversion/CMakeLists.txt2
-rw-r--r--library/cpp/tdigest/CMakeLists.darwin-arm64.txt46
-rw-r--r--library/cpp/tdigest/CMakeLists.txt2
-rw-r--r--library/cpp/terminate_handler/CMakeLists.darwin-arm64.txt26
-rw-r--r--library/cpp/terminate_handler/CMakeLists.txt2
-rw-r--r--library/cpp/testing/benchmark/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/testing/benchmark/CMakeLists.txt2
-rw-r--r--library/cpp/testing/benchmark/main/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/testing/benchmark/main/CMakeLists.txt2
-rw-r--r--library/cpp/testing/common/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/testing/common/CMakeLists.txt2
-rw-r--r--library/cpp/testing/gbenchmark/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/testing/gbenchmark/CMakeLists.txt2
-rw-r--r--library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-arm64.txt34
-rw-r--r--library/cpp/testing/gmock_in_unittest/CMakeLists.txt2
-rw-r--r--library/cpp/testing/gtest/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/testing/gtest/CMakeLists.txt2
-rw-r--r--library/cpp/testing/gtest_extensions/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/testing/gtest_extensions/CMakeLists.txt2
-rw-r--r--library/cpp/testing/gtest_main/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/testing/gtest_main/CMakeLists.txt2
-rw-r--r--library/cpp/testing/hook/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/testing/hook/CMakeLists.txt2
-rw-r--r--library/cpp/testing/mock_server/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/testing/mock_server/CMakeLists.txt2
-rw-r--r--library/cpp/testing/unittest/CMakeLists.darwin-arm64.txt30
-rw-r--r--library/cpp/testing/unittest/CMakeLists.txt2
-rw-r--r--library/cpp/testing/unittest_main/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/testing/unittest_main/CMakeLists.txt2
-rw-r--r--library/cpp/threading/atomic/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/atomic/CMakeLists.txt2
-rw-r--r--library/cpp/threading/blocking_queue/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/threading/blocking_queue/CMakeLists.txt2
-rw-r--r--library/cpp/threading/chunk_queue/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/chunk_queue/CMakeLists.txt2
-rw-r--r--library/cpp/threading/cron/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/cron/CMakeLists.txt2
-rw-r--r--library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/equeue/CMakeLists.txt2
-rw-r--r--library/cpp/threading/future/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/threading/future/CMakeLists.txt2
-rw-r--r--library/cpp/threading/hot_swap/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/hot_swap/CMakeLists.txt2
-rw-r--r--library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/threading/light_rw_lock/CMakeLists.txt2
-rw-r--r--library/cpp/threading/local_executor/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/threading/local_executor/CMakeLists.txt2
-rw-r--r--library/cpp/threading/poor_man_openmp/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/poor_man_openmp/CMakeLists.txt2
-rw-r--r--library/cpp/threading/queue/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/threading/queue/CMakeLists.txt2
-rw-r--r--library/cpp/threading/skip_list/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/skip_list/CMakeLists.txt2
-rw-r--r--library/cpp/threading/task_scheduler/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/threading/task_scheduler/CMakeLists.txt2
-rw-r--r--library/cpp/threading/thread_local/CMakeLists.darwin-arm64.txt31
-rw-r--r--library/cpp/threading/thread_local/CMakeLists.txt2
-rw-r--r--library/cpp/time_provider/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/time_provider/CMakeLists.txt2
-rw-r--r--library/cpp/timezone_conversion/CMakeLists.darwin-arm64.txt32
-rw-r--r--library/cpp/timezone_conversion/CMakeLists.txt2
-rw-r--r--library/cpp/tld/CMakeLists.darwin-arm64.txt33
-rw-r--r--library/cpp/tld/CMakeLists.txt2
-rw-r--r--library/cpp/type_info/CMakeLists.darwin-arm64.txt38
-rw-r--r--library/cpp/type_info/CMakeLists.txt2
-rw-r--r--library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/unicode/normalization/CMakeLists.txt2
-rw-r--r--library/cpp/unicode/punycode/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/unicode/punycode/CMakeLists.txt2
-rw-r--r--library/cpp/unicode/set/CMakeLists.darwin-arm64.txt39
-rw-r--r--library/cpp/unicode/set/CMakeLists.txt2
-rw-r--r--library/cpp/unified_agent_client/CMakeLists.darwin-arm64.txt69
-rw-r--r--library/cpp/unified_agent_client/CMakeLists.txt2
-rw-r--r--library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt69
-rw-r--r--library/cpp/unified_agent_client/proto/CMakeLists.txt2
-rw-r--r--library/cpp/uri/CMakeLists.darwin-arm64.txt37
-rw-r--r--library/cpp/uri/CMakeLists.txt2
-rw-r--r--library/cpp/xml/document/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/xml/document/CMakeLists.txt2
-rw-r--r--library/cpp/xml/init/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/xml/init/CMakeLists.txt2
-rw-r--r--library/cpp/yaml/as/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/yaml/as/CMakeLists.txt2
-rw-r--r--library/cpp/yaml/fyamlcpp/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/yaml/fyamlcpp/CMakeLists.txt2
-rw-r--r--library/cpp/yson/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/yson/CMakeLists.txt2
-rw-r--r--library/cpp/yson/json/CMakeLists.darwin-arm64.txt19
-rw-r--r--library/cpp/yson/json/CMakeLists.txt2
-rw-r--r--library/cpp/yson/node/CMakeLists.darwin-arm64.txt35
-rw-r--r--library/cpp/yson/node/CMakeLists.txt2
-rw-r--r--library/cpp/yson_pull/CMakeLists.darwin-arm64.txt48
-rw-r--r--library/cpp/yson_pull/CMakeLists.txt2
-rw-r--r--library/cpp/yt/assert/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/assert/CMakeLists.txt2
-rw-r--r--library/cpp/yt/backtrace/CMakeLists.darwin-arm64.txt23
-rw-r--r--library/cpp/yt/backtrace/CMakeLists.txt2
-rw-r--r--library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt11
-rw-r--r--library/cpp/yt/backtrace/cursors/CMakeLists.txt2
-rw-r--r--library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt2
-rw-r--r--library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-arm64.txt22
-rw-r--r--library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt2
-rw-r--r--library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt2
-rw-r--r--library/cpp/yt/coding/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/yt/coding/CMakeLists.txt2
-rw-r--r--library/cpp/yt/containers/CMakeLists.darwin-arm64.txt15
-rw-r--r--library/cpp/yt/containers/CMakeLists.txt2
-rw-r--r--library/cpp/yt/cpu_clock/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/yt/cpu_clock/CMakeLists.txt2
-rw-r--r--library/cpp/yt/exception/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/exception/CMakeLists.txt2
-rw-r--r--library/cpp/yt/logging/CMakeLists.darwin-arm64.txt25
-rw-r--r--library/cpp/yt/logging/CMakeLists.txt2
-rw-r--r--library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-arm64.txt24
-rw-r--r--library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt2
-rw-r--r--library/cpp/yt/malloc/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/malloc/CMakeLists.txt2
-rw-r--r--library/cpp/yt/memory/CMakeLists.darwin-arm64.txt34
-rw-r--r--library/cpp/yt/memory/CMakeLists.txt2
-rw-r--r--library/cpp/yt/misc/CMakeLists.darwin-arm64.txt24
-rw-r--r--library/cpp/yt/misc/CMakeLists.txt2
-rw-r--r--library/cpp/yt/mlock/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/mlock/CMakeLists.txt2
-rw-r--r--library/cpp/yt/small_containers/CMakeLists.darwin-arm64.txt17
-rw-r--r--library/cpp/yt/small_containers/CMakeLists.txt2
-rw-r--r--library/cpp/yt/stockpile/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/stockpile/CMakeLists.txt2
-rw-r--r--library/cpp/yt/string/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/yt/string/CMakeLists.txt2
-rw-r--r--library/cpp/yt/system/CMakeLists.darwin-arm64.txt20
-rw-r--r--library/cpp/yt/system/CMakeLists.txt2
-rw-r--r--library/cpp/yt/threading/CMakeLists.darwin-arm64.txt38
-rw-r--r--library/cpp/yt/threading/CMakeLists.txt2
-rw-r--r--library/cpp/yt/yson/CMakeLists.darwin-arm64.txt21
-rw-r--r--library/cpp/yt/yson/CMakeLists.txt2
-rw-r--r--library/cpp/yt/yson_string/CMakeLists.darwin-arm64.txt27
-rw-r--r--library/cpp/yt/yson_string/CMakeLists.txt2
-rw-r--r--library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt18
-rw-r--r--library/cpp/ytalloc/api/CMakeLists.txt2
-rw-r--r--tools/archiver/CMakeLists.darwin-arm64.txt29
-rw-r--r--tools/archiver/CMakeLists.txt2
-rw-r--r--tools/enum_parser/enum_parser/CMakeLists.darwin-arm64.txt28
-rw-r--r--tools/enum_parser/enum_parser/CMakeLists.txt2
-rw-r--r--tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-arm64.txt19
-rw-r--r--tools/enum_parser/enum_serialization_runtime/CMakeLists.txt2
-rw-r--r--tools/enum_parser/parse_enum/CMakeLists.darwin-arm64.txt18
-rw-r--r--tools/enum_parser/parse_enum/CMakeLists.txt2
-rw-r--r--tools/rescompiler/bin/CMakeLists.darwin-arm64.txt27
-rw-r--r--tools/rescompiler/bin/CMakeLists.txt2
-rw-r--r--util/CMakeLists.darwin-arm64.txt301
-rw-r--r--util/CMakeLists.txt2
-rw-r--r--util/charset/CMakeLists.darwin-arm64.txt33
-rw-r--r--util/charset/CMakeLists.txt2
-rw-r--r--util/draft/CMakeLists.darwin-arm64.txt22
-rw-r--r--util/draft/CMakeLists.txt2
-rw-r--r--vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go121
-rw-r--r--vendor/golang.org/x/sys/cpu/cpu_other_arm64.go10
-rw-r--r--vendor/modernc.org/libc/capi_darwin_arm64.go540
-rw-r--r--vendor/modernc.org/libc/errno/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/errno/errno_darwin_arm64.go680
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go2080
-rw-r--r--vendor/modernc.org/libc/fts/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/fts/fts_darwin_arm64.go5230
-rw-r--r--vendor/modernc.org/libc/grp/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/grp/grp_darwin_arm64.go1003
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go918
-rw-r--r--vendor/modernc.org/libc/libc_darwin_arm64.go450
-rw-r--r--vendor/modernc.org/libc/limits/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/limits/limits_darwin_arm64.go932
-rw-r--r--vendor/modernc.org/libc/musl_darwin_arm64.go4732
-rw-r--r--vendor/modernc.org/libc/netdb/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go6323
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go5815
-rw-r--r--vendor/modernc.org/libc/poll/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/poll/poll_darwin_arm64.go159
-rw-r--r--vendor/modernc.org/libc/pthread/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go3068
-rw-r--r--vendor/modernc.org/libc/pwd/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go1083
-rw-r--r--vendor/modernc.org/libc/signal/capi_darwin_arm64.go8
-rw-r--r--vendor/modernc.org/libc/signal/more_darwin_arm64.go12
-rw-r--r--vendor/modernc.org/libc/signal/signal_darwin_arm64.go3132
-rw-r--r--vendor/modernc.org/libc/stdio/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go1944
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go4430
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go5111
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go2332
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/sys/types/types_darwin_arm64.go4136
-rw-r--r--vendor/modernc.org/libc/termios/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/termios/termios_darwin_arm64.go1570
-rw-r--r--vendor/modernc.org/libc/time/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/time/time_darwin_arm64.go1768
-rw-r--r--vendor/modernc.org/libc/unistd/capi_darwin_arm64.go11
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go3489
-rw-r--r--vendor/modernc.org/libc/utime/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/utime/utime_darwin_arm64.go1315
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go7
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go820
-rw-r--r--vendor/modernc.org/libc/wctype/capi_darwin_arm64.go55
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go1416
-rw-r--r--vendor/modernc.org/sqlite/lib/capi_darwin_arm64.go1383
-rw-r--r--vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go157752
-rw-r--r--ydb/apps/pgwire/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/apps/pgwire/CMakeLists.txt2
-rw-r--r--ydb/apps/ydb/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/apps/ydb/CMakeLists.txt2
-rw-r--r--ydb/apps/ydb/commands/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/apps/ydb/commands/CMakeLists.txt2
-rw-r--r--ydb/apps/ydbd/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/apps/ydbd/CMakeLists.txt2
-rw-r--r--ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt51
-rw-r--r--ydb/core/actorlib_impl/CMakeLists.txt2
-rw-r--r--ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/actorlib_impl/ut/CMakeLists.txt2
-rw-r--r--ydb/core/audit/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/core/audit/CMakeLists.txt2
-rw-r--r--ydb/core/base/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/base/CMakeLists.txt2
-rw-r--r--ydb/core/base/services/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/base/services/CMakeLists.txt2
-rw-r--r--ydb/core/base/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/base/ut/CMakeLists.txt2
-rw-r--r--ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/base/ut_board_subscriber/CMakeLists.txt2
-rw-r--r--ydb/core/blob_depot/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/blob_depot/CMakeLists.txt2
-rw-r--r--ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/blob_depot/agent/CMakeLists.txt2
-rw-r--r--ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/core/blob_depot/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/core/blobstorage/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/blobstorage/backpressure/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/blobstorage/backpressure/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/blobstorage/base/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/core/blobstorage/base/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/blobstorage/crypto/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/blobstorage/crypto/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/core/blobstorage/dsproxy/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/blobstorage/groupinfo/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/blobstorage/incrhuge/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt46
-rw-r--r--ydb/core/blobstorage/nodewarden/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/blobstorage/other/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/pdisk/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/blobstorage/pdisk/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/blobstorage/pdisk/mock/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt90
-rw-r--r--ydb/core/blobstorage/pdisk/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/blobstorage/storagepoolmon/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt108
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/blobstorage/ut_group/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-arm64.txt9
-rw-r--r--ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt90
-rw-r--r--ydb/core/blobstorage/ut_testshard/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt89
-rw-r--r--ydb/core/blobstorage/ut_vdisk/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt49
-rw-r--r--ydb/core/blobstorage/vdisk/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/core/blobstorage/vdisk/common/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/blobstorage/vdisk/huge/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/blobstorage/vdisk/protos/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/blobstorage/vdisk/query/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/core/blobstorage/vdisk/repl/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt2
-rw-r--r--ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt2
-rw-r--r--ydb/core/blockstore/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/blockstore/CMakeLists.txt2
-rw-r--r--ydb/core/blockstore/core/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/blockstore/core/CMakeLists.txt2
-rw-r--r--ydb/core/client/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/client/CMakeLists.txt2
-rw-r--r--ydb/core/client/metadata/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/client/metadata/CMakeLists.txt2
-rw-r--r--ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/client/metadata/ut/CMakeLists.txt2
-rw-r--r--ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/client/minikql_compile/CMakeLists.txt2
-rw-r--r--ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/client/minikql_compile/ut/CMakeLists.txt2
-rw-r--r--ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/client/minikql_result_lib/CMakeLists.txt2
-rw-r--r--ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/client/minikql_result_lib/ut/CMakeLists.txt2
-rw-r--r--ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/client/scheme_cache_lib/CMakeLists.txt2
-rw-r--r--ydb/core/client/server/CMakeLists.darwin-arm64.txt99
-rw-r--r--ydb/core/client/server/CMakeLists.txt2
-rw-r--r--ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/client/server/ut/CMakeLists.txt2
-rw-r--r--ydb/core/client/ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/client/ut/CMakeLists.txt2
-rw-r--r--ydb/core/cms/CMakeLists.darwin-arm64.txt411
-rw-r--r--ydb/core/cms/CMakeLists.txt2
-rw-r--r--ydb/core/cms/console/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/core/cms/console/CMakeLists.txt2
-rw-r--r--ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/core/cms/console/ut/CMakeLists.txt2
-rw-r--r--ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/cms/console/util/CMakeLists.txt2
-rw-r--r--ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/cms/console/validators/CMakeLists.txt2
-rw-r--r--ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/cms/console/validators/ut/CMakeLists.txt2
-rw-r--r--ydb/core/cms/ut/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/cms/ut/CMakeLists.txt2
-rw-r--r--ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/cms/ut_sentinel/CMakeLists.txt2
-rw-r--r--ydb/core/control/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/control/CMakeLists.txt2
-rw-r--r--ydb/core/control/ut/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/control/ut/CMakeLists.txt2
-rw-r--r--ydb/core/debug/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/core/debug/CMakeLists.txt2
-rw-r--r--ydb/core/debug_tools/CMakeLists.darwin-arm64.txt15
-rw-r--r--ydb/core/debug_tools/CMakeLists.txt2
-rw-r--r--ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/debug_tools/ut/CMakeLists.txt2
-rw-r--r--ydb/core/discovery/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/discovery/CMakeLists.txt2
-rw-r--r--ydb/core/docapi/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/docapi/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/driver_lib/base_utils/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/cli_base/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/driver_lib/cli_base/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/driver_lib/cli_config_base/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/driver_lib/cli_utils/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt164
-rw-r--r--ydb/core/driver_lib/run/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/driver_lib/run/ut/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/driver_lib/version/CMakeLists.txt2
-rw-r--r--ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/driver_lib/version/ut/CMakeLists.txt2
-rw-r--r--ydb/core/engine/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/engine/CMakeLists.txt2
-rw-r--r--ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/engine/minikql/CMakeLists.txt2
-rw-r--r--ydb/core/engine/ut/CMakeLists.darwin-arm64.txt85
-rw-r--r--ydb/core/engine/ut/CMakeLists.txt2
-rw-r--r--ydb/core/erasure/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/erasure/CMakeLists.txt2
-rw-r--r--ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/erasure/ut/CMakeLists.txt2
-rw-r--r--ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/core/erasure/ut_perf/CMakeLists.txt2
-rw-r--r--ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/erasure/ut_rope/CMakeLists.txt2
-rw-r--r--ydb/core/external_sources/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/external_sources/CMakeLists.txt2
-rw-r--r--ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/core/external_sources/ut/CMakeLists.txt2
-rw-r--r--ydb/core/filestore/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/filestore/CMakeLists.txt2
-rw-r--r--ydb/core/filestore/core/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/filestore/core/CMakeLists.txt2
-rw-r--r--ydb/core/formats/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/formats/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/core/formats/arrow/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/common/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/formats/arrow/common/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/formats/arrow/compression/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/dictionary/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/formats/arrow/dictionary/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/reader/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/formats/arrow/reader/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/formats/arrow/serializer/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/formats/arrow/simple_builder/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/switch/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/formats/arrow/switch/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/transformer/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/formats/arrow/transformer/CMakeLists.txt2
-rw-r--r--ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/formats/arrow/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt105
-rw-r--r--ydb/core/fq/libs/actors/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/fq/libs/actors/logging/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/audit/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/fq/libs/audit/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/audit/events/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/fq/libs/audit/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/core/fq/libs/checkpointing/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/fq/libs/checkpointing/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/fq/libs/checkpointing_common/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/fq/libs/cloud_audit/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/fq/libs/common/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/common/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/fq/libs/compute/common/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/fq/libs/compute/common/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/config/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/fq/libs/config/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt346
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/core/fq/libs/control_plane_config/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/core/fq/libs/control_plane_storage/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt46
-rw-r--r--ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/db_schema/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/fq/libs/db_schema/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/events/CMakeLists.darwin-arm64.txt49
-rw-r--r--ydb/core/fq/libs/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/exceptions/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/fq/libs/exceptions/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/gateway/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/fq/libs/gateway/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/core/fq/libs/graph_params/proto/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/core/fq/libs/grpc/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/health/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/fq/libs/health/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/hmac/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/fq/libs/hmac/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/core/fq/libs/hmac/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/fq/libs/init/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/logs/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/fq/libs/logs/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt53
-rw-r--r--ydb/core/fq/libs/mock/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/fq/libs/pretty_printers/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/private_client/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/fq/libs/private_client/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/core/fq/libs/protos/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/quota_manager/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/fq/libs/quota_manager/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/fq/libs/quota_manager/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/read_rule/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/fq/libs/read_rule/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/fq/libs/result_formatter/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/fq/libs/shared_resources/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/signer/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/fq/libs/signer/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/core/fq/libs/signer/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/fq/libs/tasks_packer/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/test_connection/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/fq/libs/test_connection/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/fq/libs/test_connection/events/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/fq/libs/test_connection/ut/CMakeLists.txt2
-rw-r--r--ydb/core/fq/libs/ydb/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/fq/libs/ydb/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_caching/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/grpc_caching/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/CMakeLists.darwin-arm64.txt148
-rw-r--r--ydb/core/grpc_services/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/auth_processor/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/grpc_services/auth_processor/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/grpc_services/base/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/cancelation/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/grpc_services/cancelation/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/grpc_services/cancelation/protos/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/grpc_services/counters/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/grpc_services/local_rpc/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/grpc_services/ut/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_streaming/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/grpc_streaming/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/grpc_streaming/ut/CMakeLists.txt2
-rw-r--r--ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt2
-rw-r--r--ydb/core/health_check/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/health_check/CMakeLists.txt2
-rw-r--r--ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/health_check/ut/CMakeLists.txt2
-rw-r--r--ydb/core/http_proxy/CMakeLists.darwin-arm64.txt48
-rw-r--r--ydb/core/http_proxy/CMakeLists.txt2
-rw-r--r--ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/http_proxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/io_formats/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/io_formats/CMakeLists.txt2
-rw-r--r--ydb/core/io_formats/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/io_formats/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt51
-rw-r--r--ydb/core/kafka_proxy/CMakeLists.txt2
-rw-r--r--ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/kafka_proxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kesus/proxy/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/kesus/proxy/CMakeLists.txt2
-rw-r--r--ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/kesus/proxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.darwin-arm64.txt60
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.txt2
-rw-r--r--ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt2
-rw-r--r--ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/kesus/tablet/ut/CMakeLists.txt2
-rw-r--r--ydb/core/keyvalue/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/core/keyvalue/CMakeLists.txt2
-rw-r--r--ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/keyvalue/protos/CMakeLists.txt2
-rw-r--r--ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/keyvalue/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/CMakeLists.darwin-arm64.txt143
-rw-r--r--ydb/core/kqp/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/common/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/kqp/common/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/common/compilation/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/kqp/common/compilation/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/common/events/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/core/kqp/common/events/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/common/shutdown/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/kqp/common/shutdown/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/common/simple/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/kqp/common/simple/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/compile_service/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/kqp/compile_service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/compute_actor/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/core/kqp/compute_actor/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/kqp/counters/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt55
-rw-r--r--ydb/core/kqp/executer_actor/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/kqp/executer_actor/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/kqp/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/federated_query/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/kqp/federated_query/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/finalize_script_service/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/kqp/finalize_script_service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/actors/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/kqp/gateway/actors/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/kqp/gateway/local_rpc/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/host/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/kqp/host/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/node_service/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/kqp/node_service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/kqp/node_service/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/opt/CMakeLists.darwin-arm64.txt55
-rw-r--r--ydb/core/kqp/opt/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/kqp/opt/logical/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/opt/peephole/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/kqp/opt/peephole/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/opt/physical/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/kqp/opt/physical/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/kqp/opt/physical/effects/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt94
-rw-r--r--ydb/core/kqp/provider/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/kqp/provider/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.darwin-arm64.txt51
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/query_compiler/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/kqp/query_compiler/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/query_data/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/kqp/query_data/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/rm_service/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/kqp/rm_service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/kqp/rm_service/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/core/kqp/runtime/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/kqp/runtime/ut/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/kqp/session_actor/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/kqp/topics/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/kqp/ut/arrow/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/kqp/ut/common/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/kqp/ut/cost/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/kqp/ut/data/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/kqp/ut/effects/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/kqp/ut/federated_query/common/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/kqp/ut/idx_test/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/kqp/ut/indexes/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/kqp/ut/join/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/kqp/ut/olap/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt90
-rw-r--r--ydb/core/kqp/ut/opt/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/kqp/ut/perf/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/kqp/ut/pg/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/kqp/ut/query/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/kqp/ut/scan/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/kqp/ut/scheme/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/kqp/ut/spilling/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/kqp/ut/sysview/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/kqp/ut/tx/CMakeLists.txt2
-rw-r--r--ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/kqp/ut/yql/CMakeLists.txt2
-rw-r--r--ydb/core/load_test/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/load_test/CMakeLists.txt2
-rw-r--r--ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt85
-rw-r--r--ydb/core/load_test/ut_ycsb/CMakeLists.txt2
-rw-r--r--ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/local_pgwire/CMakeLists.txt2
-rw-r--r--ydb/core/log_backend/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/log_backend/CMakeLists.txt2
-rw-r--r--ydb/core/metering/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/core/metering/CMakeLists.txt2
-rw-r--r--ydb/core/metering/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/core/metering/ut/CMakeLists.txt2
-rw-r--r--ydb/core/mind/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/mind/CMakeLists.txt2
-rw-r--r--ydb/core/mind/address_classification/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/mind/address_classification/CMakeLists.txt2
-rw-r--r--ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/mind/address_classification/ut/CMakeLists.txt2
-rw-r--r--ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/mind/bscontroller/CMakeLists.txt2
-rw-r--r--ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/mind/bscontroller/ut/CMakeLists.txt2
-rw-r--r--ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt2
-rw-r--r--ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt2
-rw-r--r--ydb/core/mind/hive/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/core/mind/hive/CMakeLists.txt2
-rw-r--r--ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/mind/hive/ut/CMakeLists.txt2
-rw-r--r--ydb/core/mind/ut/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/mind/ut/CMakeLists.txt2
-rw-r--r--ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/mind/ut_fat/CMakeLists.txt2
-rw-r--r--ydb/core/mon/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/mon/CMakeLists.txt2
-rw-r--r--ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/core/mon_alloc/CMakeLists.txt2
-rw-r--r--ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/node_whiteboard/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/persqueue/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/codecs/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/persqueue/codecs/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/persqueue/config/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/events/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/persqueue/events/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/partition_key_range/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/persqueue/partition_key_range/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt126
-rw-r--r--ydb/core/persqueue/ut/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/persqueue/ut/common/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/persqueue/ut/slow/CMakeLists.txt2
-rw-r--r--ydb/core/persqueue/writer/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/persqueue/writer/CMakeLists.txt2
-rw-r--r--ydb/core/pgproxy/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/pgproxy/CMakeLists.txt2
-rw-r--r--ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/pgproxy/protos/CMakeLists.txt2
-rw-r--r--ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/pgproxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/protos/CMakeLists.darwin-arm64.txt1785
-rw-r--r--ydb/core/protos/CMakeLists.txt2
-rw-r--r--ydb/core/protos/out/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/protos/out/CMakeLists.txt2
-rw-r--r--ydb/core/public_http/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/public_http/CMakeLists.txt2
-rw-r--r--ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/public_http/protos/CMakeLists.txt2
-rw-r--r--ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/core/public_http/ut/CMakeLists.txt2
-rw-r--r--ydb/core/quoter/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/quoter/CMakeLists.txt2
-rw-r--r--ydb/core/quoter/public/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/quoter/public/CMakeLists.txt2
-rw-r--r--ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt2
-rw-r--r--ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/quoter/ut/CMakeLists.txt2
-rw-r--r--ydb/core/raw_socket/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/raw_socket/CMakeLists.txt2
-rw-r--r--ydb/core/scheme/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/core/scheme/CMakeLists.txt2
-rw-r--r--ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/scheme/protos/CMakeLists.txt2
-rw-r--r--ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/core/scheme/ut/CMakeLists.txt2
-rw-r--r--ydb/core/scheme_types/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/scheme_types/CMakeLists.txt2
-rw-r--r--ydb/core/security/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/security/CMakeLists.txt2
-rw-r--r--ydb/core/security/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/security/ut/CMakeLists.txt2
-rw-r--r--ydb/core/statistics/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/statistics/CMakeLists.txt2
-rw-r--r--ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/statistics/aggregator/CMakeLists.txt2
-rw-r--r--ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/statistics/ut/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/sys_view/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/sys_view/common/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/sys_view/nodes/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/sys_view/partition_stats/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/sys_view/partition_stats/ut/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/core/sys_view/processor/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/core/sys_view/query_stats/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/sys_view/query_stats/ut/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/sys_view/service/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/sys_view/service/ut/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/sys_view/storage/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/sys_view/tablets/CMakeLists.txt2
-rw-r--r--ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt85
-rw-r--r--ydb/core/sys_view/ut_kqp/CMakeLists.txt2
-rw-r--r--ydb/core/tablet/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/core/tablet/CMakeLists.txt2
-rw-r--r--ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/core/tablet/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt163
-rw-r--r--ydb/core/tablet_flat/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/core/tablet_flat/benchmark/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/core/tablet_flat/protos/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/tablet_flat/test/libs/table/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-arm64.txt15
-rw-r--r--ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt133
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tablet_flat/ut_large/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/core/tablet_flat/ut_pg/CMakeLists.txt2
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.txt2
-rw-r--r--ydb/core/test_tablet/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/core/test_tablet/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/CMakeLists.darwin-arm64.txt115
-rw-r--r--ydb/core/testlib/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/testlib/actors/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/core/testlib/actors/ut/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/testlib/basics/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/basics/default/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/testlib/basics/default/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/default/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/core/testlib/default/CMakeLists.txt2
-rw-r--r--ydb/core/testlib/pg/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/core/testlib/pg/CMakeLists.txt2
-rw-r--r--ydb/core/tracing/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tracing/CMakeLists.txt2
-rw-r--r--ydb/core/tx/CMakeLists.darwin-arm64.txt48
-rw-r--r--ydb/core/tx/CMakeLists.txt2
-rw-r--r--ydb/core/tx/balance_coverage/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/balance_coverage/CMakeLists.txt2
-rw-r--r--ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/tx/balance_coverage/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt111
-rw-r--r--ydb/core/tx/columnshard/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/tx/columnshard/blobs_action/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tx/columnshard/common/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/tx/columnshard/counters/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/tx/columnshard/counters/common/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/core/tx/columnshard/engines/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tx/columnshard/engines/changes/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/core/tx/columnshard/engines/portions/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/core/tx/columnshard/engines/reader/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tx/columnshard/engines/storage/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt90
-rw-r--r--ydb/core/tx/columnshard/engines/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/tx/columnshard/engines/writer/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/operations/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/columnshard/operations/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/resources/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/columnshard/resources/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/splitter/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/tx/columnshard/splitter/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt85
-rw-r--r--ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/core/tx/columnshard/ut_rw/CMakeLists.txt2
-rw-r--r--ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/columnshard/ut_schema/CMakeLists.txt2
-rw-r--r--ydb/core/tx/conveyor/service/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/conveyor/service/CMakeLists.txt2
-rw-r--r--ydb/core/tx/conveyor/usage/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/conveyor/usage/CMakeLists.txt2
-rw-r--r--ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/core/tx/coordinator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/tx/coordinator/protos/CMakeLists.txt2
-rw-r--r--ydb/core/tx/coordinator/public/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/tx/coordinator/public/CMakeLists.txt2
-rw-r--r--ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/tx/coordinator/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/data_events/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/tx/data_events/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt425
-rw-r--r--ydb/core/tx/datashard/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_build_index/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt89
-rw-r--r--ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/core/tx/datashard/ut_common/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_compaction/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_followers/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_init/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_keys/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/core/tx/datashard/ut_kqp/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_locks/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_minikql/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_minstep/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_order/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_read_table/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_reassign/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_replication/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_rs/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/core/tx/datashard/ut_sequence/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_stats/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt2
-rw-r--r--ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/core/tx/datashard/ut_volatile/CMakeLists.txt2
-rw-r--r--ydb/core/tx/long_tx_service/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/tx/long_tx_service/CMakeLists.txt2
-rw-r--r--ydb/core/tx/long_tx_service/public/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/core/tx/long_tx_service/public/CMakeLists.txt2
-rw-r--r--ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/tx/long_tx_service/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/mediator/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/core/tx/mediator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/program/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/tx/program/CMakeLists.txt2
-rw-r--r--ydb/core/tx/replication/controller/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/core/tx/replication/controller/CMakeLists.txt2
-rw-r--r--ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/tx/replication/service/CMakeLists.txt2
-rw-r--r--ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/tx/replication/ydb_proxy/CMakeLists.txt2
-rw-r--r--ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/core/tx/scheme_board/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt2
-rw-r--r--ydb/core/tx/scheme_cache/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/core/tx/scheme_cache/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt290
-rw-r--r--ydb/core/tx/schemeshard/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/schemeshard/ut_base/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_export/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/tx/schemeshard/ut_index/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_login/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_move/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt93
-rw-r--r--ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt2
-rw-r--r--ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceproxy/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/core/tx/sequenceproxy/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/core/tx/sequenceproxy/public/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/tx/sequenceproxy/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceshard/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/tx/sequenceshard/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceshard/public/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/sequenceshard/public/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/core/tx/sequenceshard/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sharding/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/tx/sharding/CMakeLists.txt2
-rw-r--r--ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/core/tx/sharding/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tiering/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/core/tx/tiering/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/core/tx/tiering/rule/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tiering/tier/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/core/tx/tiering/tier/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/tiering/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/time_cast/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/time_cast/CMakeLists.txt2
-rw-r--r--ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/core/tx/time_cast/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tracing/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/core/tx/tracing/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tracing/service/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/tx/tracing/service/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tracing/usage/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/tx/tracing/usage/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_allocator/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/tx/tx_allocator/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/tx/tx_allocator/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_allocator_client/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/core/tx/tx_allocator_client/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/core/tx/tx_proxy/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt2
-rw-r--r--ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt2
-rw-r--r--ydb/core/util/CMakeLists.darwin-arm64.txt53
-rw-r--r--ydb/core/util/CMakeLists.txt2
-rw-r--r--ydb/core/util/btree_benchmark/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/util/btree_benchmark/CMakeLists.txt2
-rw-r--r--ydb/core/util/ut/CMakeLists.darwin-arm64.txt107
-rw-r--r--ydb/core/util/ut/CMakeLists.txt2
-rw-r--r--ydb/core/viewer/CMakeLists.darwin-arm64.txt325
-rw-r--r--ydb/core/viewer/CMakeLists.txt2
-rw-r--r--ydb/core/viewer/json/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/core/viewer/json/CMakeLists.txt2
-rw-r--r--ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/core/viewer/protos/CMakeLists.txt2
-rw-r--r--ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/core/viewer/ut/CMakeLists.txt2
-rw-r--r--ydb/core/wrappers/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/core/wrappers/CMakeLists.txt2
-rw-r--r--ydb/core/wrappers/events/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/core/wrappers/events/CMakeLists.txt2
-rw-r--r--ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/wrappers/ut/CMakeLists.txt2
-rw-r--r--ydb/core/wrappers/ut_helpers/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/core/wrappers/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/core/ydb_convert/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/core/ydb_convert/CMakeLists.txt2
-rw-r--r--ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/core/ydb_convert/ut/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/actor/CMakeLists.darwin-arm64.txt152
-rw-r--r--ydb/core/ymq/actor/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/ymq/actor/ut/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/base/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/ymq/base/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/core/ymq/base/ut/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/core/ymq/client/bin/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/client/cpp/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/ymq/client/cpp/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/http/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/ymq/http/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/core/ymq/http/ut/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/core/ymq/proto/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/queues/common/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/ymq/queues/common/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/queues/fifo/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/ymq/queues/fifo/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/queues/std/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/core/ymq/queues/std/CMakeLists.txt2
-rw-r--r--ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/core/ymq/ut/CMakeLists.txt2
-rw-r--r--ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/core/yql_testlib/CMakeLists.txt2
-rw-r--r--ydb/library/accessor/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/accessor/CMakeLists.txt2
-rw-r--r--ydb/library/aclib/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/aclib/CMakeLists.txt2
-rw-r--r--ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/aclib/protos/CMakeLists.txt2
-rw-r--r--ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/aclib/ut/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_clickhouse/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/arrow_clickhouse/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/arrow_clickhouse/Columns/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/arrow_clickhouse/Common/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/arrow_clickhouse/ut/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/arrow_kernels/CMakeLists.txt2
-rw-r--r--ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/library/arrow_kernels/ut/CMakeLists.txt2
-rw-r--r--ydb/library/backup/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/backup/CMakeLists.txt2
-rw-r--r--ydb/library/backup/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/backup/ut/CMakeLists.txt2
-rw-r--r--ydb/library/binary_json/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/binary_json/CMakeLists.txt2
-rw-r--r--ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt85
-rw-r--r--ydb/library/binary_json/ut/CMakeLists.txt2
-rw-r--r--ydb/library/chunks_limiter/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/chunks_limiter/CMakeLists.txt2
-rw-r--r--ydb/library/conclusion/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/conclusion/CMakeLists.txt2
-rw-r--r--ydb/library/db_pool/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/db_pool/CMakeLists.txt2
-rw-r--r--ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/db_pool/protos/CMakeLists.txt2
-rw-r--r--ydb/library/dynumber/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/dynumber/CMakeLists.txt2
-rw-r--r--ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/dynumber/ut/CMakeLists.txt2
-rw-r--r--ydb/library/folder_service/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/folder_service/CMakeLists.txt2
-rw-r--r--ydb/library/folder_service/mock/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/folder_service/mock/CMakeLists.txt2
-rw-r--r--ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/folder_service/proto/CMakeLists.txt2
-rw-r--r--ydb/library/http_proxy/authorization/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/http_proxy/authorization/CMakeLists.txt2
-rw-r--r--ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/http_proxy/authorization/ut/CMakeLists.txt2
-rw-r--r--ydb/library/http_proxy/error/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/http_proxy/error/CMakeLists.txt2
-rw-r--r--ydb/library/keys/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/keys/CMakeLists.txt2
-rw-r--r--ydb/library/keys/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/keys/ut/CMakeLists.txt2
-rw-r--r--ydb/library/logger/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/logger/CMakeLists.txt2
-rw-r--r--ydb/library/login/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/login/CMakeLists.txt2
-rw-r--r--ydb/library/login/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/login/protos/CMakeLists.txt2
-rw-r--r--ydb/library/login/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/login/ut/CMakeLists.txt2
-rw-r--r--ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/mkql_proto/CMakeLists.txt2
-rw-r--r--ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/mkql_proto/protos/CMakeLists.txt2
-rw-r--r--ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/library/mkql_proto/ut/CMakeLists.txt2
-rw-r--r--ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/mkql_proto/ut/helpers/CMakeLists.txt2
-rw-r--r--ydb/library/naming_conventions/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/naming_conventions/CMakeLists.txt2
-rw-r--r--ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/naming_conventions/ut/CMakeLists.txt2
-rw-r--r--ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/pdisk_io/CMakeLists.txt2
-rw-r--r--ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/pdisk_io/protos/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/persqueue/counter_time_keeper/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/persqueue/obfuscate/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/tests/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/persqueue/tests/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/persqueue/topic_parser/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/library/persqueue/topic_parser/ut/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/persqueue/topic_parser_public/CMakeLists.txt2
-rw-r--r--ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/pretty_types_print/protobuf/CMakeLists.txt2
-rw-r--r--ydb/library/pretty_types_print/wilson/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/pretty_types_print/wilson/CMakeLists.txt2
-rw-r--r--ydb/library/protobuf_printer/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/protobuf_printer/CMakeLists.txt2
-rw-r--r--ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt96
-rw-r--r--ydb/library/protobuf_printer/ut/CMakeLists.txt2
-rw-r--r--ydb/library/query_actor/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/query_actor/CMakeLists.txt2
-rw-r--r--ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/library/query_actor/ut/CMakeLists.txt2
-rw-r--r--ydb/library/rewrapper/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/rewrapper/CMakeLists.txt2
-rw-r--r--ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/rewrapper/proto/CMakeLists.txt2
-rw-r--r--ydb/library/rewrapper/re2/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/rewrapper/re2/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/schlab/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/mon/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/schlab/mon/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/mon/static/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/library/schlab/mon/static/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/mon/static/css/CMakeLists.darwin-arm64.txt14
-rw-r--r--ydb/library/schlab/mon/static/css/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/mon/static/js/CMakeLists.darwin-arm64.txt14
-rw-r--r--ydb/library/schlab/mon/static/js/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/mon/test/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/schlab/mon/test/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/schlab/probes/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/schlab/protos/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/schlab/schemu/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/schlab/schine/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/schlab/schoot/CMakeLists.txt2
-rw-r--r--ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt61
-rw-r--r--ydb/library/schlab/ut/CMakeLists.txt2
-rw-r--r--ydb/library/security/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/security/CMakeLists.txt2
-rw-r--r--ydb/library/security/ut/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/security/ut/CMakeLists.txt2
-rw-r--r--ydb/library/services/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/services/CMakeLists.txt2
-rw-r--r--ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/testlib/service_mocks/CMakeLists.txt2
-rw-r--r--ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt2
-rw-r--r--ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/library/testlib/ut/CMakeLists.txt2
-rw-r--r--ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt15
-rw-r--r--ydb/library/time_series_vec/CMakeLists.txt2
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.txt2
-rw-r--r--ydb/library/uuid/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/uuid/CMakeLists.txt2
-rw-r--r--ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt14
-rw-r--r--ydb/library/wilson_ids/CMakeLists.txt2
-rw-r--r--ydb/library/workload/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/library/workload/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yaml_config/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yaml_config/public/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yaml_config/static_validator/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yaml_config/static_validator/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt62
-rw-r--r--ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yaml_config/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yaml_config/validator/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt61
-rw-r--r--ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt61
-rw-r--r--ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt2
-rw-r--r--ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt61
-rw-r--r--ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt2
-rw-r--r--ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/ycloud/api/CMakeLists.txt2
-rw-r--r--ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/ycloud/impl/CMakeLists.txt2
-rw-r--r--ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/library/ycloud/impl/ut/CMakeLists.txt2
-rw-r--r--ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/ydb_issue/CMakeLists.txt2
-rw-r--r--ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/library/ydb_issue/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/ast/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/ast/CMakeLists.txt2
-rw-r--r--ydb/library/yql/ast/serialize/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/ast/serialize/CMakeLists.txt2
-rw-r--r--ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/library/yql/ast/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/CMakeLists.darwin-arm64.txt134
-rw-r--r--ydb/library/yql/core/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/core/cbo/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yql/core/common_opt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/credentials/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/yql/core/credentials/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/library/yql/core/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/core/extract_predicate/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt90
-rw-r--r--ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/facade/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/core/facade/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/yql/core/file_storage/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/core/file_storage/defs/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/download/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/core/file_storage/download/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/core/file_storage/http_download/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/core/file_storage/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/core/file_storage/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/issue/CMakeLists.darwin-arm64.txt49
-rw-r--r--ydb/library/yql/core/issue/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/core/issue/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/core/issue/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/core/peephole_opt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/progress_merger/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/core/progress_merger/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/core/services/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/library/yql/core/services/mounts/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/yql/core/spilling/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/core/spilling/storage/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/library/yql/core/spilling/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/core/sql_types/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/core/sql_types/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/core/type_ann/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/url_lister/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/core/url_lister/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/core/url_lister/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/core/url_preprocessing/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/user_data/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/core/user_data/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt99
-rw-r--r--ydb/library/yql/core/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/core/ut_common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/dq/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/library/yql/dq/actors/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/dq/actors/spilling/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/yql/dq/actors/task_runner/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/library/yql/dq/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/dq/comp_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/library/yql/dq/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/integration/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/dq/integration/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/integration/transform/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/dq/integration/transform/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/dq/opt/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/library/yql/dq/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt55
-rw-r--r--ydb/library/yql/dq/runtime/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/dq/runtime/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/state/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/dq/state/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/dq/state/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/tasks/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/yql/dq/tasks/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/dq/transform/CMakeLists.txt2
-rw-r--r--ydb/library/yql/dq/type_ann/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/library/yql/dq/type_ann/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/library/yql/minikql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/arrow/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/minikql/arrow/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/library/yql/minikql/arrow/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/minikql/codegen/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-arm64.txt167
-rw-r--r--ydb/library/yql/minikql/codegen/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt161
-rw-r--r--ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt157
-rw-r--r--ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-arm64.txt129
-rw-r--r--ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/yql/minikql/computation/llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt53
-rw-r--r--ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-arm64.txt89
-rw-r--r--ydb/library/yql/minikql/computation/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/minikql/datetime/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/dom/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/minikql/dom/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/minikql/dom/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/yql/minikql/jsonpath/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt83
-rw-r--r--ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/minikql/perf/alloc/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/minikql/perf/packer/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/minikql/perf/param/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/library/yql/minikql/perf/presort/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt105
-rw-r--r--ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt93
-rw-r--r--ydb/library/yql/minikql/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/parser/lexer_common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt170
-rw-r--r--ydb/library/yql/parser/pg_catalog/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt958
-rw-r--r--ydb/library/yql/parser/pg_wrapper/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt185
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/parser/proto_ast/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt16
-rw-r--r--ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt113
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt113
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt2
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/protos/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/arrow/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/providers/common/arrow/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/library/yql/providers/common/codec/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/providers/common/codec/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/common/config/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/dq/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/common/dq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/common/gateway/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/providers/common/http_gateway/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/metrics/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/common/metrics/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/providers/common/mkql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/library/yql/providers/common/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/common/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/common/pushdown/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/schema/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/common/schema/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/yql/providers/common/schema/expr/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/common/schema/parser/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/common/structured_token/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/transform/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/yql/providers/common/transform/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/providers/config/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/providers/dq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/actors/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/library/yql/providers/dq/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/providers/dq/actors/events/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/providers/dq/api/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/common/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/library/yql/providers/dq/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/providers/dq/config/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/counters/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/dq/counters/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/interface/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/dq/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/dq/metrics/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/providers/dq/mkql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/providers/dq/opt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/providers/dq/planner/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/library/yql/providers/dq/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/library/yql/providers/dq/runtime/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/providers/dq/scheduler/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/service/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/dq/service/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/providers/dq/task_runner/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/function/common/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/providers/function/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/function/gateway/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/function/gateway/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/providers/function/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/function/provider/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/library/yql/providers/function/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/generic/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt58
-rw-r--r--ydb/library/yql/providers/generic/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt61
-rw-r--r--ydb/library/yql/providers/generic/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/providers/pq/async_io/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/providers/pq/cm_client/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/common/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/pq/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/providers/pq/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt62
-rw-r--r--ydb/library/yql/providers/pq/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/pq/task_meta/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/providers/result/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/library/yql/providers/s3/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/common/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/s3/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/yql/providers/s3/compressors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/providers/s3/object_listers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/library/yql/providers/s3/path_generator/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/library/yql/providers/s3/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/providers/s3/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/providers/solomon/async_io/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/solomon/gateway/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/providers/solomon/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/providers/solomon/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/providers/stat/uploader/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/providers/ydb/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/library/yql/providers/ydb/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt62
-rw-r--r--ydb/library/yql/providers/ydb/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/providers/yt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/library/yql/providers/yt/codec/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt106
-rw-r--r--ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/common/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/library/yql/providers/yt/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt46
-rw-r--r--ydb/library/yql/providers/yt/job/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/providers/yt/lib/log/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-arm64.txt15
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/opt/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/yql/providers/yt/opt/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt117
-rw-r--r--ydb/library/yql/providers/yt/provider/CMakeLists.txt2
-rw-r--r--ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/public/decimal/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/library/yql/public/decimal/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/library/yql/public/embedded/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/fastcheck/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/library/yql/public/fastcheck/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/public/fastcheck/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/issue/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/library/yql/public/issue/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/library/yql/public/issue/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/library/yql/public/issue/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/public/purecalc/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/library/yql/public/purecalc/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/public/purecalc/helpers/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt70
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/library/yql/public/purecalc/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/public/types/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/library/yql/public/udf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/arrow/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/public/udf/arrow/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/public/udf/service/stub/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/support/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/public/udf/support/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/public/udf/tz/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/public/udf/tz/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/public/udf/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/sql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yql/sql/pg/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/library/yql/sql/pg/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/sql/pg_dummy/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/sql/settings/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/library/yql/sql/v0/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/sql/v0/lexer/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/library/yql/sql/v0/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt100
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/format/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/library/yql/sql/v1/format/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/sql/v1/format/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/library/yql/sql/v1/lexer/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/sql/v1/perf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt2
-rw-r--r--ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/library/yql/sql/v1/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/tools/astdiff/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/dq/CMakeLists.darwin-arm64.txt11
-rw-r--r--ydb/library/yql/tools/dq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt50
-rw-r--r--ydb/library/yql/tools/dq/service_node/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/tools/dq/worker_node/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt93
-rw-r--r--ydb/library/yql/tools/dqrun/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/library/yql/tools/mrjob/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/library/yql/tools/pgrun/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt40
-rw-r--r--ydb/library/yql/tools/sql2yql/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/library/yql/tools/sql_formatter/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/library/yql/tools/udf_probe/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/library/yql/tools/udf_resolver/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/library/yql/tools/yqlrun/CMakeLists.txt2
-rw-r--r--ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/library/yql/tools/yqlrun/http/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/library/yql/udfs/common/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt890
-rw-r--r--ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yql/udfs/common/compress_base/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/udfs/common/datetime/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/library/yql/udfs/common/datetime2/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/digest/CMakeLists.darwin-arm64.txt96
-rw-r--r--ydb/library/yql/udfs/common/digest/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/library/yql/udfs/common/file/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/histogram/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/hyperloglog/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yql/udfs/common/ip_base/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/json/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/json/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/udfs/common/json2/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt184
-rw-r--r--ydb/library/yql/udfs/common/math/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/yql/udfs/common/math/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/pire/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/pire/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/udfs/common/protobuf/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt71
-rw-r--r--ydb/library/yql/udfs/common/re2/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/set/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/common/set/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/stat/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/library/yql/udfs/common/stat/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/udfs/common/stat/static/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/streaming/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt89
-rw-r--r--ydb/library/yql/udfs/common/string/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/top/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/common/top/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/library/yql/udfs/common/topfreq/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt69
-rw-r--r--ydb/library/yql/udfs/common/url_base/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/udfs/common/yson2/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/callables/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/dicts/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/lists/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/structs/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/tagged/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/udfs/logs/dsv/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/test/simple/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/test/simple/CMakeLists.txt2
-rw-r--r--ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-arm64.txt63
-rw-r--r--ydb/library/yql/udfs/test/test_import/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/CMakeLists.darwin-arm64.txt55
-rw-r--r--ydb/library/yql/utils/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/actor_log/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/utils/actor_log/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/library/yql/utils/actor_system/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/actors/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/utils/actors/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yql/utils/actors/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/library/yql/utils/backtrace/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/utils/backtrace/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/bindings/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/utils/bindings/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/library/yql/utils/bindings/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/failure_injector/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/library/yql/utils/failure_injector/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/fetch/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/library/yql/utils/fetch/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/log/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/utils/log/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/library/yql/utils/log/proto/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/library/yql/utils/log/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/simd/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/yql/utils/simd/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt64
-rw-r--r--ydb/library/yql/utils/simd/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/library/yql/utils/sys/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/test_http_server/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/library/yql/utils/test_http_server/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/threading/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/library/yql/utils/threading/CMakeLists.txt2
-rw-r--r--ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/library/yql/utils/ut/CMakeLists.txt2
-rw-r--r--ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt14
-rw-r--r--ydb/library/yverify_stream/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt57
-rw-r--r--ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt177
-rw-r--r--ydb/public/api/client/yc_private/iam/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/public/api/client/yc_private/operation/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt87
-rw-r--r--ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/public/api/client/yc_public/common/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/public/api/client/yc_public/events/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt60
-rw-r--r--ydb/public/api/client/yc_public/iam/CMakeLists.txt2
-rw-r--r--ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/public/api/client/yc_public/logging/CMakeLists.txt2
-rw-r--r--ydb/public/api/grpc/CMakeLists.darwin-arm64.txt254
-rw-r--r--ydb/public/api/grpc/CMakeLists.txt2
-rw-r--r--ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt162
-rw-r--r--ydb/public/api/grpc/draft/CMakeLists.txt2
-rw-r--r--ydb/public/api/protos/CMakeLists.darwin-arm64.txt530
-rw-r--r--ydb/public/api/protos/CMakeLists.txt2
-rw-r--r--ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/public/api/protos/annotations/CMakeLists.txt2
-rw-r--r--ydb/public/api/protos/out/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/api/protos/out/CMakeLists.txt2
-rw-r--r--ydb/public/lib/base/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/lib/base/CMakeLists.txt2
-rw-r--r--ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/lib/deprecated/client/CMakeLists.txt2
-rw-r--r--ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/public/lib/deprecated/kicli/CMakeLists.txt2
-rw-r--r--ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt78
-rw-r--r--ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/experimental/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/lib/experimental/CMakeLists.txt2
-rw-r--r--ydb/public/lib/fq/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/public/lib/fq/CMakeLists.txt2
-rw-r--r--ydb/public/lib/idx_test/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/public/lib/idx_test/CMakeLists.txt2
-rw-r--r--ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/public/lib/idx_test/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/json_value/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/public/lib/json_value/CMakeLists.txt2
-rw-r--r--ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt77
-rw-r--r--ydb/public/lib/json_value/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/lib/jwt/CMakeLists.txt2
-rw-r--r--ydb/public/lib/operation_id/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/lib/operation_id/CMakeLists.txt2
-rw-r--r--ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/public/lib/operation_id/protos/CMakeLists.txt2
-rw-r--r--ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt65
-rw-r--r--ydb/public/lib/operation_id/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/lib/scheme_types/CMakeLists.txt2
-rw-r--r--ydb/public/lib/stat_visualization/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/lib/stat_visualization/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.txt2
-rw-r--r--ydb/public/lib/validation/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/lib/validation/CMakeLists.txt2
-rw-r--r--ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt66
-rw-r--r--ydb/public/lib/validation/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt54
-rw-r--r--ydb/public/lib/validation/ut/protos/CMakeLists.txt2
-rw-r--r--ydb/public/lib/value/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/lib/value/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt218
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/public/lib/ydb_cli/common/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt68
-rw-r--r--ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/public/lib/ydb_cli/dump/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/import/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/public/lib/ydb_cli/import/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/public/lib/ydb_cli/topic/CMakeLists.txt2
-rw-r--r--ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt2
-rw-r--r--ydb/public/lib/yson_value/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/lib/yson_value/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/public/sdk/cpp/client/draft/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/iam/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt73
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/public/sdk/cpp/client/resources/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-arm64.txt39
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-arm64.txt19
-rw-r--r--ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt88
-rw-r--r--ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt35
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt33
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt91
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-arm64.txt28
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-arm64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt41
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt38
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt91
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt29
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-arm64.txt18
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt76
-rw-r--r--ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt31
-rw-r--r--ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt2
-rw-r--r--ydb/services/auth/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/services/auth/CMakeLists.txt2
-rw-r--r--ydb/services/bg_tasks/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/services/bg_tasks/CMakeLists.txt2
-rw-r--r--ydb/services/bg_tasks/abstract/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/services/bg_tasks/abstract/CMakeLists.txt2
-rw-r--r--ydb/services/bg_tasks/ds_table/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/services/bg_tasks/ds_table/CMakeLists.txt2
-rw-r--r--ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt43
-rw-r--r--ydb/services/bg_tasks/protos/CMakeLists.txt2
-rw-r--r--ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/services/bg_tasks/ut/CMakeLists.txt2
-rw-r--r--ydb/services/cms/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/services/cms/CMakeLists.txt2
-rw-r--r--ydb/services/cms/ut/CMakeLists.darwin-arm64.txt74
-rw-r--r--ydb/services/cms/ut/CMakeLists.txt2
-rw-r--r--ydb/services/datastreams/CMakeLists.darwin-arm64.txt36
-rw-r--r--ydb/services/datastreams/CMakeLists.txt2
-rw-r--r--ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt81
-rw-r--r--ydb/services/datastreams/ut/CMakeLists.txt2
-rw-r--r--ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/services/deprecated/persqueue_v0/CMakeLists.txt2
-rw-r--r--ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt59
-rw-r--r--ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt2
-rw-r--r--ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt56
-rw-r--r--ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt2
-rw-r--r--ydb/services/discovery/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/services/discovery/CMakeLists.txt2
-rw-r--r--ydb/services/dynamic_config/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/services/dynamic_config/CMakeLists.txt2
-rw-r--r--ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/services/dynamic_config/ut/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/services/ext_index/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/common/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/services/ext_index/common/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/metadata/CMakeLists.darwin-arm64.txt45
-rw-r--r--ydb/services/ext_index/metadata/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-arm64.txt52
-rw-r--r--ydb/services/ext_index/metadata/extractor/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/service/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/services/ext_index/service/CMakeLists.txt2
-rw-r--r--ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/services/ext_index/ut/CMakeLists.txt2
-rw-r--r--ydb/services/fq/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/services/fq/CMakeLists.txt2
-rw-r--r--ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt84
-rw-r--r--ydb/services/fq/ut_integration/CMakeLists.txt2
-rw-r--r--ydb/services/kesus/CMakeLists.darwin-arm64.txt26
-rw-r--r--ydb/services/kesus/CMakeLists.txt2
-rw-r--r--ydb/services/keyvalue/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/services/keyvalue/CMakeLists.txt2
-rw-r--r--ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/services/keyvalue/ut/CMakeLists.txt2
-rw-r--r--ydb/services/lib/actors/CMakeLists.darwin-arm64.txt30
-rw-r--r--ydb/services/lib/actors/CMakeLists.txt2
-rw-r--r--ydb/services/lib/sharding/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/services/lib/sharding/CMakeLists.txt2
-rw-r--r--ydb/services/local_discovery/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/services/local_discovery/CMakeLists.txt2
-rw-r--r--ydb/services/maintenance/CMakeLists.darwin-arm64.txt21
-rw-r--r--ydb/services/maintenance/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/CMakeLists.darwin-arm64.txt27
-rw-r--r--ydb/services/metadata/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/services/metadata/abstract/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/common/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/services/metadata/common/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/ds_table/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/services/metadata/ds_table/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/initializer/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/services/metadata/initializer/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/services/metadata/initializer/ut/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/manager/CMakeLists.darwin-arm64.txt49
-rw-r--r--ydb/services/metadata/manager/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/request/CMakeLists.darwin-arm64.txt25
-rw-r--r--ydb/services/metadata/request/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/secret/CMakeLists.darwin-arm64.txt47
-rw-r--r--ydb/services/metadata/secret/CMakeLists.txt2
-rw-r--r--ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt82
-rw-r--r--ydb/services/metadata/secret/ut/CMakeLists.txt2
-rw-r--r--ydb/services/monitoring/CMakeLists.darwin-arm64.txt22
-rw-r--r--ydb/services/monitoring/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-arm64.txt34
-rw-r--r--ydb/services/persqueue_cluster_discovery/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-arm64.txt17
-rw-r--r--ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt79
-rw-r--r--ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt44
-rw-r--r--ydb/services/persqueue_v1/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt42
-rw-r--r--ydb/services/persqueue_v1/actors/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt99
-rw-r--r--ydb/services/persqueue_v1/ut/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt2
-rw-r--r--ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt86
-rw-r--r--ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt2
-rw-r--r--ydb/services/rate_limiter/CMakeLists.darwin-arm64.txt23
-rw-r--r--ydb/services/rate_limiter/CMakeLists.txt2
-rw-r--r--ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt72
-rw-r--r--ydb/services/rate_limiter/ut/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/CMakeLists.darwin-arm64.txt49
-rw-r--r--ydb/services/ydb/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt80
-rw-r--r--ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt97
-rw-r--r--ydb/services/ydb/table_split_ut/CMakeLists.txt2
-rw-r--r--ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt116
-rw-r--r--ydb/services/ydb/ut/CMakeLists.txt2
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt67
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt2
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt75
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt2
-rw-r--r--ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt48
-rw-r--r--ydb/tests/tools/idx_test/CMakeLists.txt2
-rw-r--r--ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt37
-rw-r--r--ydb/tests/tools/kqprun/CMakeLists.txt2
-rw-r--r--ydb/tests/tools/kqprun/src/CMakeLists.darwin-arm64.txt24
-rw-r--r--ydb/tests/tools/kqprun/src/CMakeLists.txt2
-rw-r--r--ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt32
-rw-r--r--ydb/tests/tools/pq_read/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/client/CMakeLists.darwin-arm64.txt71
-rw-r--r--yt/cpp/mapreduce/client/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/common/CMakeLists.darwin-arm64.txt31
-rw-r--r--yt/cpp/mapreduce/common/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/http/CMakeLists.darwin-arm64.txt37
-rw-r--r--yt/cpp/mapreduce/http/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/interface/CMakeLists.darwin-arm64.txt143
-rw-r--r--yt/cpp/mapreduce/interface/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-arm64.txt34
-rw-r--r--yt/cpp/mapreduce/interface/logging/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/io/CMakeLists.darwin-arm64.txt41
-rw-r--r--yt/cpp/mapreduce/io/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/cpp/mapreduce/library/table_schema/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-arm64.txt18
-rw-r--r--yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/raw_client/CMakeLists.darwin-arm64.txt27
-rw-r--r--yt/cpp/mapreduce/raw_client/CMakeLists.txt2
-rw-r--r--yt/cpp/mapreduce/skiff/CMakeLists.darwin-arm64.txt15
-rw-r--r--yt/cpp/mapreduce/skiff/CMakeLists.txt2
-rw-r--r--yt/yql/plugin/CMakeLists.darwin-arm64.txt19
-rw-r--r--yt/yql/plugin/CMakeLists.txt2
-rw-r--r--yt/yql/plugin/dynamic/CMakeLists.darwin-arm64.txt31
-rw-r--r--yt/yql/plugin/dynamic/CMakeLists.txt2
-rw-r--r--yt/yql/plugin/native/CMakeLists.darwin-arm64.txt99
-rw-r--r--yt/yql/plugin/native/CMakeLists.txt2
-rw-r--r--yt/yt/CMakeLists.darwin-arm64.txt12
-rw-r--r--yt/yt/CMakeLists.txt2
-rw-r--r--yt/yt/build/CMakeLists.darwin-arm64.txt96
-rw-r--r--yt/yt/build/CMakeLists.txt2
-rw-r--r--yt/yt/client/CMakeLists.darwin-arm64.txt199
-rw-r--r--yt/yt/client/CMakeLists.txt2
-rw-r--r--yt/yt/client/query_tracker_client/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/yt/client/query_tracker_client/CMakeLists.txt2
-rw-r--r--yt/yt/core/CMakeLists.darwin-arm64.txt372
-rw-r--r--yt/yt/core/CMakeLists.txt2
-rw-r--r--yt/yt/core/http/CMakeLists.darwin-arm64.txt30
-rw-r--r--yt/yt/core/http/CMakeLists.txt2
-rw-r--r--yt/yt/core/https/CMakeLists.darwin-arm64.txt25
-rw-r--r--yt/yt/core/https/CMakeLists.txt2
-rw-r--r--yt/yt/core/misc/isa_crc64/CMakeLists.darwin-arm64.txt17
-rw-r--r--yt/yt/core/misc/isa_crc64/CMakeLists.txt2
-rw-r--r--yt/yt/core/rpc/grpc/CMakeLists.darwin-arm64.txt64
-rw-r--r--yt/yt/core/rpc/grpc/CMakeLists.txt2
-rw-r--r--yt/yt/core/service_discovery/yp/CMakeLists.darwin-arm64.txt23
-rw-r--r--yt/yt/core/service_discovery/yp/CMakeLists.txt2
-rw-r--r--yt/yt/library/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/CMakeLists.txt2
-rw-r--r--yt/yt/library/auth/CMakeLists.darwin-arm64.txt24
-rw-r--r--yt/yt/library/auth/CMakeLists.txt2
-rw-r--r--yt/yt/library/decimal/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/decimal/CMakeLists.txt2
-rw-r--r--yt/yt/library/erasure/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/yt/library/erasure/CMakeLists.txt2
-rw-r--r--yt/yt/library/monitoring/CMakeLists.darwin-arm64.txt26
-rw-r--r--yt/yt/library/monitoring/CMakeLists.txt2
-rw-r--r--yt/yt/library/numeric/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/yt/library/numeric/CMakeLists.txt2
-rw-r--r--yt/yt/library/profiling/CMakeLists.darwin-arm64.txt34
-rw-r--r--yt/yt/library/profiling/CMakeLists.txt2
-rw-r--r--yt/yt/library/profiling/perf/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/profiling/perf/CMakeLists.txt2
-rw-r--r--yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/profiling/resource_tracker/CMakeLists.txt2
-rw-r--r--yt/yt/library/profiling/solomon/CMakeLists.darwin-arm64.txt68
-rw-r--r--yt/yt/library/profiling/solomon/CMakeLists.txt2
-rw-r--r--yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/profiling/tcmalloc/CMakeLists.txt2
-rw-r--r--yt/yt/library/program/CMakeLists.darwin-arm64.txt37
-rw-r--r--yt/yt/library/program/CMakeLists.txt2
-rw-r--r--yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt54
-rw-r--r--yt/yt/library/quantile_digest/CMakeLists.txt2
-rw-r--r--yt/yt/library/re2/CMakeLists.darwin-arm64.txt22
-rw-r--r--yt/yt/library/re2/CMakeLists.txt2
-rw-r--r--yt/yt/library/syncmap/CMakeLists.darwin-arm64.txt14
-rw-r--r--yt/yt/library/syncmap/CMakeLists.txt2
-rw-r--r--yt/yt/library/tracing/CMakeLists.darwin-arm64.txt26
-rw-r--r--yt/yt/library/tracing/CMakeLists.txt2
-rw-r--r--yt/yt/library/tracing/jaeger/CMakeLists.darwin-arm64.txt67
-rw-r--r--yt/yt/library/tracing/jaeger/CMakeLists.txt2
-rw-r--r--yt/yt/library/tvm/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/yt/library/tvm/CMakeLists.txt2
-rw-r--r--yt/yt/library/undumpable/CMakeLists.darwin-arm64.txt25
-rw-r--r--yt/yt/library/undumpable/CMakeLists.txt2
-rw-r--r--yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt41
-rw-r--r--yt/yt/library/ytprof/CMakeLists.txt2
-rw-r--r--yt/yt/library/ytprof/api/CMakeLists.darwin-arm64.txt21
-rw-r--r--yt/yt/library/ytprof/api/CMakeLists.txt2
-rw-r--r--yt/yt/library/ytprof/proto/CMakeLists.darwin-arm64.txt47
-rw-r--r--yt/yt/library/ytprof/proto/CMakeLists.txt2
-rw-r--r--yt/yt_proto/yt/CMakeLists.darwin-arm64.txt11
-rw-r--r--yt/yt_proto/yt/CMakeLists.txt2
-rw-r--r--yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt296
-rw-r--r--yt/yt_proto/yt/client/CMakeLists.txt2
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt203
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.txt2
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt56
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.txt2
4010 files changed, 360504 insertions, 2 deletions
diff --git a/.mapping.json b/.mapping.json
index b1236d6218..8ff830aa3e 100644
--- a/.mapping.json
+++ b/.mapping.json
@@ -47,6 +47,7 @@
".gitignore":"ydb/github_toplevel/.gitignore",
"AUTHORS":"ydb/github_toplevel/AUTHORS",
"BUILD.md":"ydb/github_toplevel/BUILD.md",
+ "CMakeLists.darwin-arm64.txt":"",
"CMakeLists.darwin-x86_64.txt":"",
"CMakeLists.linux-aarch64.txt":"",
"CMakeLists.linux-x86_64.txt":"",
@@ -64,6 +65,7 @@
"build/scripts/generate_vcs_info.py":"",
"build/scripts/split_unittest.py":"",
"build/ya.conf.json":"devtools/ya/opensource/ya.conf.json",
+ "certs/CMakeLists.darwin-arm64.txt":"",
"certs/CMakeLists.darwin-x86_64.txt":"",
"certs/CMakeLists.linux-aarch64.txt":"",
"certs/CMakeLists.linux-x86_64.txt":"",
@@ -77,6 +79,7 @@
"cmake/bison.cmake":"",
"cmake/common.cmake":"",
"cmake/conan-profiles/linux.aarch64.profile":"",
+ "cmake/conan-profiles/macos.arm64.profile":"",
"cmake/conan.cmake":"",
"cmake/fbs.cmake":"",
"cmake/global_flags.cmake":"",
@@ -92,201 +95,241 @@
"conanfile.txt":"",
"contrib/.gitignore":"ydb/yandex_specific/contrib_gitignore",
"contrib/CMakeLists.txt":"",
+ "contrib/libs/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/CMakeLists.txt":"",
"contrib/libs/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/antlr3_cpp_runtime/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/antlr3_cpp_runtime/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/antlr3_cpp_runtime/CMakeLists.txt":"",
"contrib/libs/antlr3_cpp_runtime/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/apache/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/apache/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/apache/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/apache/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/apache/CMakeLists.txt":"",
"contrib/libs/apache/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/apache/arrow/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/apache/arrow/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/apache/arrow/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/apache/arrow/CMakeLists.txt":"",
"contrib/libs/apache/arrow/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/apache/avro/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/apache/avro/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/apache/avro/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/apache/avro/CMakeLists.txt":"",
+ "contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/apache/orc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/apache/orc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/apache/orc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/apache/orc/CMakeLists.txt":"",
"contrib/libs/apache/orc/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/aws-sdk-cpp/CMakeLists.txt":"",
+ "contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt":"",
"contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/backtrace/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/backtrace/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/backtrace/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/backtrace/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/backtrace/CMakeLists.txt":"",
"contrib/libs/base64/CMakeLists.txt":"",
+ "contrib/libs/base64/avx2/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/avx2/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/avx2/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/avx2/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/avx2/CMakeLists.txt":"",
"contrib/libs/base64/avx2/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/base64/neon32/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/neon32/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/neon32/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/neon32/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/neon32/CMakeLists.txt":"",
"contrib/libs/base64/neon32/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/base64/neon64/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/neon64/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/neon64/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/neon64/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/neon64/CMakeLists.txt":"",
"contrib/libs/base64/neon64/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/base64/plain32/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/plain32/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/plain32/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/plain32/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/plain32/CMakeLists.txt":"",
"contrib/libs/base64/plain32/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/base64/plain64/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/plain64/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/plain64/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/plain64/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/plain64/CMakeLists.txt":"",
"contrib/libs/base64/plain64/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/base64/ssse3/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/base64/ssse3/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/base64/ssse3/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/base64/ssse3/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/base64/ssse3/CMakeLists.txt":"",
"contrib/libs/base64/ssse3/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/brotli/CMakeLists.txt":"",
+ "contrib/libs/brotli/common/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/brotli/common/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/brotli/common/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/brotli/common/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/brotli/common/CMakeLists.txt":"",
"contrib/libs/brotli/common/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/brotli/dec/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/brotli/dec/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/brotli/dec/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/brotli/dec/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/brotli/dec/CMakeLists.txt":"",
"contrib/libs/brotli/dec/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/brotli/enc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/brotli/enc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/brotli/enc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/brotli/enc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/brotli/enc/CMakeLists.txt":"",
"contrib/libs/brotli/enc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/c-ares/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/c-ares/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/c-ares/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/c-ares/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/c-ares/CMakeLists.txt":"",
"contrib/libs/c-ares/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cctz/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cctz/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cctz/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cctz/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cctz/CMakeLists.txt":"",
"contrib/libs/cctz/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cctz/tzdata/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cctz/tzdata/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cctz/tzdata/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cctz/tzdata/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cctz/tzdata/CMakeLists.txt":"",
"contrib/libs/cctz/tzdata/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/crcutil/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/crcutil/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/crcutil/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/crcutil/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/crcutil/CMakeLists.txt":"",
"contrib/libs/crcutil/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/curl/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/curl/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/curl/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/curl/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/curl/CMakeLists.txt":"",
"contrib/libs/curl/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cxxsupp/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cxxsupp/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cxxsupp/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cxxsupp/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cxxsupp/CMakeLists.txt":"",
"contrib/libs/cxxsupp/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cxxsupp/builtins/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cxxsupp/builtins/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cxxsupp/builtins/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cxxsupp/builtins/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cxxsupp/builtins/CMakeLists.txt":"",
"contrib/libs/cxxsupp/builtins/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxx/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cxxsupp/libcxx/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxx/CMakeLists.txt":"",
"contrib/libs/cxxsupp/libcxx/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt":"",
+ "contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxxrt/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/cxxsupp/libcxxrt/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt":"",
+ "contrib/libs/double-conversion/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/double-conversion/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/double-conversion/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/double-conversion/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/double-conversion/CMakeLists.txt":"",
"contrib/libs/double-conversion/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/expat/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/expat/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/expat/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/expat/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/expat/CMakeLists.txt":"",
"contrib/libs/expat/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/farmhash/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/farmhash/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/farmhash/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/farmhash/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/farmhash/CMakeLists.txt":"",
"contrib/libs/farmhash/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/farmhash/arch/CMakeLists.txt":"",
+ "contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse41/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/farmhash/arch/sse41/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse41/CMakeLists.txt":"",
"contrib/libs/farmhash/arch/sse41/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse42/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/farmhash/arch/sse42/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse42/CMakeLists.txt":"",
"contrib/libs/farmhash/arch/sse42/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt":"",
"contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/fastlz/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/fastlz/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/fastlz/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/fastlz/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/fastlz/CMakeLists.txt":"",
"contrib/libs/fastlz/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/flatbuffers/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/flatbuffers/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/flatbuffers/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/flatbuffers/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/flatbuffers/CMakeLists.txt":"",
"contrib/libs/flatbuffers/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/flatbuffers/flatc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/flatbuffers/flatc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/flatbuffers/flatc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/flatbuffers/flatc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/flatbuffers/flatc/CMakeLists.txt":"",
"contrib/libs/flatbuffers/flatc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/fmt/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/fmt/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/fmt/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/fmt/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/fmt/CMakeLists.txt":"",
"contrib/libs/fmt/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/googleapis-common-protos/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/googleapis-common-protos/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/googleapis-common-protos/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/googleapis-common-protos/CMakeLists.txt":"",
"contrib/libs/googleapis-common-protos/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/grpc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/grpc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/grpc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/grpc/CMakeLists.linux-x86_64.txt":"",
@@ -294,27 +337,32 @@
"contrib/libs/grpc/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/grpc/src/CMakeLists.txt":"",
"contrib/libs/grpc/src/compiler/CMakeLists.txt":"",
+ "contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt":"",
"contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/grpc/third_party/CMakeLists.txt":"",
+ "contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/grpc/third_party/address_sorting/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/grpc/third_party/address_sorting/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt":"",
"contrib/libs/grpc/third_party/address_sorting/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/grpc/third_party/upb/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/grpc/third_party/upb/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/grpc/third_party/upb/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/grpc/third_party/upb/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/grpc/third_party/upb/CMakeLists.txt":"",
"contrib/libs/grpc/third_party/upb/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/hdr_histogram/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/hdr_histogram/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/hdr_histogram/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/hdr_histogram/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/hdr_histogram/CMakeLists.txt":"",
"contrib/libs/hdr_histogram/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/highwayhash/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/highwayhash/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/highwayhash/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/highwayhash/CMakeLists.linux-x86_64.txt":"",
@@ -352,25 +400,30 @@
"contrib/libs/hyperscan/runtime_corei7/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/hyperscan/runtime_corei7/CMakeLists.txt":"",
"contrib/libs/hyperscan/runtime_corei7/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/icu/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/icu/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/icu/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/icu/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/icu/CMakeLists.txt":"",
"contrib/libs/icu/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/jemalloc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/jemalloc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/jemalloc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/jemalloc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/jemalloc/CMakeLists.txt":"",
+ "contrib/libs/jwt-cpp/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/jwt-cpp/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/jwt-cpp/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/jwt-cpp/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/jwt-cpp/CMakeLists.txt":"",
"contrib/libs/jwt-cpp/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libbz2/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libbz2/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libbz2/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libbz2/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libbz2/CMakeLists.txt":"",
"contrib/libs/libbz2/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libc_compat/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libc_compat/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libc_compat/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libc_compat/CMakeLists.linux-x86_64.txt":"",
@@ -379,36 +432,43 @@
"contrib/libs/libcap/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libcap/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libcap/CMakeLists.txt":"",
+ "contrib/libs/libevent/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libevent/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libevent/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libevent/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libevent/CMakeLists.txt":"",
"contrib/libs/libevent/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libevent/event_core/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libevent/event_core/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libevent/event_core/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libevent/event_core/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libevent/event_core/CMakeLists.txt":"",
"contrib/libs/libevent/event_core/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libevent/event_extra/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libevent/event_extra/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libevent/event_extra/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libevent/event_extra/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libevent/event_extra/CMakeLists.txt":"",
"contrib/libs/libevent/event_extra/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libevent/event_openssl/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libevent/event_openssl/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libevent/event_openssl/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libevent/event_openssl/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libevent/event_openssl/CMakeLists.txt":"",
"contrib/libs/libevent/event_openssl/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libevent/event_thread/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libevent/event_thread/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libevent/event_thread/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libevent/event_thread/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libevent/event_thread/CMakeLists.txt":"",
"contrib/libs/libevent/event_thread/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libfyaml/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libfyaml/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libfyaml/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libfyaml/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/libfyaml/CMakeLists.txt":"",
"contrib/libs/libfyaml/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/libunwind/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libunwind/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libunwind/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libunwind/CMakeLists.linux-x86_64.txt":"",
@@ -417,6 +477,7 @@
"contrib/libs/liburing/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/liburing/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/liburing/CMakeLists.txt":"",
+ "contrib/libs/libxml/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/libxml/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/libxml/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/libxml/CMakeLists.linux-x86_64.txt":"",
@@ -425,6 +486,7 @@
"contrib/libs/linux-headers/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/linux-headers/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/linux-headers/CMakeLists.txt":"",
+ "contrib/libs/linuxvdso/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/linuxvdso/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/linuxvdso/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/linuxvdso/CMakeLists.linux-x86_64.txt":"",
@@ -433,105 +495,125 @@
"contrib/libs/linuxvdso/original/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/linuxvdso/original/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/linuxvdso/original/CMakeLists.txt":"",
+ "contrib/libs/llvm12/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/CMakeLists.txt":"",
"contrib/libs/llvm12/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/include/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/include/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/include/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/include/CMakeLists.txt":"",
"contrib/libs/llvm12/include/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Analysis/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Analysis/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Analysis/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Analysis/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/AsmParser/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/AsmParser/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/AsmParser/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitstream/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/CodeGen/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Demangle/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Demangle/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Demangle/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Demangle/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.linux-x86_64.txt":"",
@@ -540,335 +622,403 @@
"contrib/libs/llvm12/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/Frontend/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/IR/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/IR/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/IR/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/IR/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/IR/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/IR/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/IRReader/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/IRReader/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/IRReader/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/IRReader/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Linker/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Linker/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Linker/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Linker/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/MC/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/MC/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/MC/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/MC/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Object/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Object/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Object/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Object/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Object/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Object/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/ProfileData/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/ProfileData/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/ProfileData/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Remarks/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Remarks/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Remarks/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Remarks/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Support/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Support/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Support/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Support/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Support/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Support/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/TableGen/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/TableGen/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/TableGen/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/TableGen/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/X86/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/TextAPI/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/CMakeLists.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt":"",
"contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/llvm12/utils/CMakeLists.txt":"",
+ "contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/utils/TableGen/CMakeLists.txt":"",
"contrib/libs/llvm12/utils/TableGen/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt":"",
"contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/lua/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/lua/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/lua/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/lua/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/lua/CMakeLists.txt":"",
"contrib/libs/lua/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/lz4/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/lz4/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/lz4/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/lz4/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/lz4/CMakeLists.txt":"",
"contrib/libs/lz4/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/lzma/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/lzma/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/lzma/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/lzma/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/lzma/CMakeLists.txt":"",
"contrib/libs/lzma/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/lzmasdk/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/lzmasdk/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/lzmasdk/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/lzmasdk/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/lzmasdk/CMakeLists.txt":"",
"contrib/libs/lzmasdk/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/miniselect/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/miniselect/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/miniselect/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/miniselect/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/miniselect/CMakeLists.txt":"",
"contrib/libs/miniselect/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/nayuki_md5/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/nayuki_md5/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/nayuki_md5/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/nayuki_md5/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/nayuki_md5/CMakeLists.txt":"",
"contrib/libs/nayuki_md5/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/nghttp2/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/nghttp2/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/nghttp2/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/nghttp2/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/nghttp2/CMakeLists.txt":"",
+ "contrib/libs/openldap/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/openldap/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/openldap/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/openldap/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/openldap/CMakeLists.txt":"",
+ "contrib/libs/openldap/libraries/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/openldap/libraries/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/openldap/libraries/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/openldap/libraries/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/openldap/libraries/CMakeLists.txt":"",
+ "contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/openldap/libraries/liblber/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/openldap/libraries/liblber/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/openldap/libraries/liblber/CMakeLists.txt":"",
+ "contrib/libs/openssl/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/openssl/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/openssl/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/openssl/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/openssl/CMakeLists.txt":"",
"contrib/libs/openssl/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/openssl/crypto/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/openssl/crypto/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/openssl/crypto/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/openssl/crypto/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/openssl/crypto/CMakeLists.txt":"",
"contrib/libs/openssl/crypto/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/opentelemetry-proto/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/opentelemetry-proto/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/opentelemetry-proto/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/opentelemetry-proto/CMakeLists.txt":"",
"contrib/libs/opentelemetry-proto/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/pcre/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/pcre/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/pcre/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/pcre/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/pcre/CMakeLists.txt":"",
"contrib/libs/pcre/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/pcre/pcre16/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/pcre/pcre16/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/pcre/pcre16/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/pcre/pcre16/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/pcre/pcre16/CMakeLists.txt":"",
"contrib/libs/pcre/pcre16/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/pcre/pcre32/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/pcre/pcre32/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/pcre/pcre32/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/pcre/pcre32/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/pcre/pcre32/CMakeLists.txt":"",
"contrib/libs/pcre/pcre32/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/pdqsort/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/pdqsort/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/pdqsort/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/pdqsort/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/pdqsort/CMakeLists.txt":"",
+ "contrib/libs/pfr/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/pfr/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/pfr/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/pfr/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/pfr/CMakeLists.txt":"",
+ "contrib/libs/poco/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/CMakeLists.txt":"",
"contrib/libs/poco/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/poco/Crypto/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/Crypto/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/Crypto/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/Crypto/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/Crypto/CMakeLists.txt":"",
+ "contrib/libs/poco/Foundation/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/Foundation/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/Foundation/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/Foundation/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/Foundation/CMakeLists.txt":"",
"contrib/libs/poco/Foundation/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/poco/JSON/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/JSON/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/JSON/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/JSON/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/JSON/CMakeLists.txt":"",
"contrib/libs/poco/JSON/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/poco/Net/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/Net/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/Net/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/Net/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/Net/CMakeLists.txt":"",
+ "contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt":"",
+ "contrib/libs/poco/Util/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/Util/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/Util/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/Util/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/Util/CMakeLists.txt":"",
"contrib/libs/poco/Util/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/poco/XML/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/poco/XML/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/poco/XML/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/poco/XML/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/poco/XML/CMakeLists.txt":"",
"contrib/libs/poco/XML/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/protobuf/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/protobuf/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/protobuf/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/protobuf/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/protobuf/CMakeLists.txt":"",
"contrib/libs/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/protoc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/protoc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/protoc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/protoc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/protoc/CMakeLists.txt":"",
"contrib/libs/protoc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/rapidjson/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/rapidjson/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/rapidjson/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/rapidjson/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/rapidjson/CMakeLists.txt":"",
"contrib/libs/rapidjson/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/re2/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/re2/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/re2/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/re2/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/re2/CMakeLists.txt":"",
"contrib/libs/re2/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/sasl/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/sasl/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/sasl/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/sasl/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/sasl/CMakeLists.txt":"",
+ "contrib/libs/snappy/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/snappy/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/snappy/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/snappy/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/snappy/CMakeLists.txt":"",
"contrib/libs/snappy/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/sparsehash/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/sparsehash/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/sparsehash/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/sparsehash/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/sparsehash/CMakeLists.txt":"",
"contrib/libs/sparsehash/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/t1ha/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/t1ha/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/t1ha/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/t1ha/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/t1ha/CMakeLists.txt":"",
"contrib/libs/t1ha/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/tbb/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/tbb/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/tbb/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/tbb/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/tbb/CMakeLists.txt":"",
"contrib/libs/tbb/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/tcmalloc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/tcmalloc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/tcmalloc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/tcmalloc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/tcmalloc/CMakeLists.txt":"",
"contrib/libs/tcmalloc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/tcmalloc/malloc_extension/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/tcmalloc/malloc_extension/CMakeLists.linux-x86_64.txt":"",
@@ -876,41 +1026,49 @@
"contrib/libs/tcmalloc/malloc_extension/CMakeLists.windows-x86_64.txt":"",
"contrib/libs/tcmalloc/no_percpu_cache/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/tcmalloc/no_percpu_cache/CMakeLists.txt":"",
+ "contrib/libs/utf8proc/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/utf8proc/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/utf8proc/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/utf8proc/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/utf8proc/CMakeLists.txt":"",
"contrib/libs/utf8proc/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/xxhash/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/xxhash/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/xxhash/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/xxhash/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/xxhash/CMakeLists.txt":"",
"contrib/libs/xxhash/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/yajl/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/yajl/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/yajl/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/yajl/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/yajl/CMakeLists.txt":"",
"contrib/libs/yajl/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/yaml-cpp/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/yaml-cpp/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/yaml-cpp/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/yaml-cpp/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/yaml-cpp/CMakeLists.txt":"",
"contrib/libs/yaml-cpp/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/zlib/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/zlib/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/zlib/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/zlib/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/zlib/CMakeLists.txt":"",
"contrib/libs/zlib/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/zstd/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/zstd/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/zstd/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/zstd/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/zstd/CMakeLists.txt":"",
"contrib/libs/zstd/CMakeLists.windows-x86_64.txt":"",
+ "contrib/libs/zstd06/CMakeLists.darwin-arm64.txt":"",
"contrib/libs/zstd06/CMakeLists.darwin-x86_64.txt":"",
"contrib/libs/zstd06/CMakeLists.linux-aarch64.txt":"",
"contrib/libs/zstd06/CMakeLists.linux-x86_64.txt":"",
"contrib/libs/zstd06/CMakeLists.txt":"",
"contrib/libs/zstd06/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/CMakeLists.linux-x86_64.txt":"",
@@ -918,262 +1076,314 @@
"contrib/restricted/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/CMakeLists.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/CMakeLists.txt":"",
+ "contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/base/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/base/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/base/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/container/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/container/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/container/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/flags/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/functional/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/functional/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/functional/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/hash/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/hash/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/hash/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/log/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/memory/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/memory/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/memory/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/meta/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/meta/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/meta/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/random/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/random/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/random/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/status/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/strings/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/time/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/time/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/time/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/types/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/types/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/types/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/utility/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/abseil-cpp/absl/utility/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt":"",
"contrib/restricted/abseil-cpp/absl/utility/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/aws/CMakeLists.txt":"",
+ "contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/aws-c-cal/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/aws-c-cal/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/aws-c-cal/CMakeLists.txt":"",
"contrib/restricted/aws/aws-c-cal/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/aws/aws-c-common/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/aws-c-common/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/aws-c-common/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/aws-c-common/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/aws-c-common/CMakeLists.txt":"",
"contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/aws-c-event-stream/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/aws-c-event-stream/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt":"",
"contrib/restricted/aws/aws-c-event-stream/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/aws/aws-c-io/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/aws-c-io/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/aws-c-io/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/aws-c-io/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/aws-c-io/CMakeLists.txt":"",
"contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/aws/aws-checksums/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/aws-checksums/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/aws-checksums/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/aws-checksums/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/aws-checksums/CMakeLists.txt":"",
"contrib/restricted/aws/aws-checksums/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/aws/s2n/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/aws/s2n/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/aws/s2n/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/aws/s2n/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/aws/s2n/CMakeLists.txt":"",
"contrib/restricted/aws/s2n/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/CMakeLists.txt":"",
"contrib/restricted/boost/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/algorithm/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/algorithm/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/algorithm/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/algorithm/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/algorithm/CMakeLists.txt":"",
"contrib/restricted/boost/algorithm/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/align/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/align/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/align/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/align/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/align/CMakeLists.txt":"",
"contrib/restricted/boost/align/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/any/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/any/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/any/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/any/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/any/CMakeLists.txt":"",
"contrib/restricted/boost/any/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/array/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/array/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/array/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/array/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/array/CMakeLists.txt":"",
"contrib/restricted/boost/array/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/asio/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/asio/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/asio/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/asio/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/asio/CMakeLists.txt":"",
+ "contrib/restricted/boost/assert/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/assert/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/assert/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/assert/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/assert/CMakeLists.txt":"",
"contrib/restricted/boost/assert/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/atomic/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/atomic/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/atomic/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/atomic/CMakeLists.linux-x86_64.txt":"",
@@ -1183,81 +1393,98 @@
"contrib/restricted/boost/bimap/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/bimap/CMakeLists.txt":"",
"contrib/restricted/boost/bimap/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/bind/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/bind/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/bind/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/bind/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/bind/CMakeLists.txt":"",
"contrib/restricted/boost/bind/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/chrono/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/chrono/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/chrono/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/chrono/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/chrono/CMakeLists.txt":"",
"contrib/restricted/boost/chrono/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/concept_check/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/concept_check/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/concept_check/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/concept_check/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/concept_check/CMakeLists.txt":"",
"contrib/restricted/boost/concept_check/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/config/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/config/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/config/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/config/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/config/CMakeLists.txt":"",
"contrib/restricted/boost/config/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/container/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/container/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/container/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/container/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/container/CMakeLists.txt":"",
"contrib/restricted/boost/container/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/container_hash/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/container_hash/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/container_hash/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/container_hash/CMakeLists.txt":"",
"contrib/restricted/boost/container_hash/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/context/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/context/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/context/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/context/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/context/CMakeLists.txt":"",
+ "contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/context/fcontext_impl/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/context/fcontext_impl/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt":"",
+ "contrib/restricted/boost/context/impl_common/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/context/impl_common/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/context/impl_common/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/context/impl_common/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/context/impl_common/CMakeLists.txt":"",
+ "contrib/restricted/boost/conversion/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/conversion/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/conversion/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/conversion/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/conversion/CMakeLists.txt":"",
"contrib/restricted/boost/conversion/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/core/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/core/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/core/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/core/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/core/CMakeLists.txt":"",
"contrib/restricted/boost/core/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/coroutine/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/coroutine/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/coroutine/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/coroutine/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/coroutine/CMakeLists.txt":"",
+ "contrib/restricted/boost/crc/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/crc/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/crc/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/crc/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/crc/CMakeLists.txt":"",
+ "contrib/restricted/boost/date_time/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/date_time/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/date_time/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/date_time/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/date_time/CMakeLists.txt":"",
"contrib/restricted/boost/date_time/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/describe/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/describe/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/describe/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/describe/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/describe/CMakeLists.txt":"",
"contrib/restricted/boost/describe/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/detail/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/detail/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/detail/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/detail/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/detail/CMakeLists.txt":"",
"contrib/restricted/boost/detail/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/dynamic_bitset/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/dynamic_bitset/CMakeLists.linux-x86_64.txt":"",
@@ -1267,6 +1494,7 @@
"contrib/restricted/boost/endian/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/endian/CMakeLists.txt":"",
"contrib/restricted/boost/endian/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/exception/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/exception/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/exception/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/exception/CMakeLists.linux-x86_64.txt":"",
@@ -1276,26 +1504,31 @@
"contrib/restricted/boost/foreach/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/foreach/CMakeLists.txt":"",
"contrib/restricted/boost/foreach/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/format/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/format/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/format/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/format/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/format/CMakeLists.txt":"",
"contrib/restricted/boost/format/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/function/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/function/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/function/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/function/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/function/CMakeLists.txt":"",
"contrib/restricted/boost/function/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/function_types/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/function_types/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/function_types/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/function_types/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/function_types/CMakeLists.txt":"",
"contrib/restricted/boost/function_types/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/functional/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/functional/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/functional/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/functional/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/functional/CMakeLists.txt":"",
"contrib/restricted/boost/functional/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/fusion/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/fusion/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/fusion/CMakeLists.linux-x86_64.txt":"",
@@ -1309,30 +1542,36 @@
"contrib/restricted/boost/icl/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/icl/CMakeLists.txt":"",
"contrib/restricted/boost/icl/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/integer/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/integer/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/integer/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/integer/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/integer/CMakeLists.txt":"",
"contrib/restricted/boost/integer/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/interprocess/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/interprocess/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/interprocess/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/interprocess/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/interprocess/CMakeLists.txt":"",
"contrib/restricted/boost/interprocess/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/intrusive/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/intrusive/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/intrusive/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/intrusive/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/intrusive/CMakeLists.txt":"",
"contrib/restricted/boost/intrusive/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/io/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/io/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/io/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/io/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/io/CMakeLists.txt":"",
"contrib/restricted/boost/io/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/iostreams/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/iostreams/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/iostreams/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/iostreams/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/iostreams/CMakeLists.txt":"",
+ "contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/iterator/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/iterator/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/iterator/CMakeLists.linux-x86_64.txt":"",
@@ -1342,31 +1581,37 @@
"contrib/restricted/boost/lambda/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/lambda/CMakeLists.txt":"",
"contrib/restricted/boost/lambda/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/lexical_cast/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/lexical_cast/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/lexical_cast/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/lexical_cast/CMakeLists.txt":"",
"contrib/restricted/boost/lexical_cast/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/locale/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/locale/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/locale/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/locale/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/locale/CMakeLists.txt":"",
"contrib/restricted/boost/locale/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/math/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/math/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/math/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/math/CMakeLists.txt":"",
"contrib/restricted/boost/math/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/move/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/move/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/move/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/move/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/move/CMakeLists.txt":"",
"contrib/restricted/boost/move/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/mp11/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/mp11/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/mp11/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/mp11/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/mp11/CMakeLists.txt":"",
"contrib/restricted/boost/mp11/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/mpl/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/mpl/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/mpl/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/mpl/CMakeLists.linux-x86_64.txt":"",
@@ -1376,16 +1621,19 @@
"contrib/restricted/boost/multi_array/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/multi_array/CMakeLists.txt":"",
"contrib/restricted/boost/multi_array/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/multi_index/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/multi_index/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/multi_index/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/multi_index/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/multi_index/CMakeLists.txt":"",
"contrib/restricted/boost/multi_index/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/numeric_conversion/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/numeric_conversion/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/numeric_conversion/CMakeLists.txt":"",
"contrib/restricted/boost/numeric_conversion/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/optional/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/optional/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/optional/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/optional/CMakeLists.linux-x86_64.txt":"",
@@ -1399,21 +1647,25 @@
"contrib/restricted/boost/phoenix/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/phoenix/CMakeLists.txt":"",
"contrib/restricted/boost/phoenix/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/pool/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/pool/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/pool/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/pool/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/pool/CMakeLists.txt":"",
"contrib/restricted/boost/pool/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/predef/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/predef/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/predef/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/predef/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/predef/CMakeLists.txt":"",
"contrib/restricted/boost/predef/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/preprocessor/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/preprocessor/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/preprocessor/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/preprocessor/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/preprocessor/CMakeLists.txt":"",
"contrib/restricted/boost/preprocessor/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/program_options/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/program_options/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/program_options/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/program_options/CMakeLists.linux-x86_64.txt":"",
@@ -1430,26 +1682,31 @@
"contrib/restricted/boost/proto/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/proto/CMakeLists.txt":"",
"contrib/restricted/boost/proto/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/random/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/random/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/random/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/random/CMakeLists.txt":"",
"contrib/restricted/boost/random/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/range/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/range/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/range/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/range/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/range/CMakeLists.txt":"",
"contrib/restricted/boost/range/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/ratio/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/ratio/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/ratio/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/ratio/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/ratio/CMakeLists.txt":"",
"contrib/restricted/boost/ratio/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/rational/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/rational/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/rational/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/rational/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/rational/CMakeLists.txt":"",
"contrib/restricted/boost/rational/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/regex/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/regex/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/regex/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/regex/CMakeLists.linux-x86_64.txt":"",
@@ -1461,6 +1718,7 @@
"contrib/restricted/boost/serialization/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/serialization/CMakeLists.txt":"",
"contrib/restricted/boost/serialization/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/smart_ptr/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/smart_ptr/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/smart_ptr/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/smart_ptr/CMakeLists.linux-x86_64.txt":"",
@@ -1470,26 +1728,31 @@
"contrib/restricted/boost/spirit/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/spirit/CMakeLists.txt":"",
"contrib/restricted/boost/spirit/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/static_assert/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/static_assert/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/static_assert/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/static_assert/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/static_assert/CMakeLists.txt":"",
"contrib/restricted/boost/static_assert/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/system/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/system/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/system/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/system/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/system/CMakeLists.txt":"",
"contrib/restricted/boost/system/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/thread/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/thread/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/thread/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/thread/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/thread/CMakeLists.txt":"",
"contrib/restricted/boost/thread/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/throw_exception/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/throw_exception/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/throw_exception/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/throw_exception/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/throw_exception/CMakeLists.txt":"",
"contrib/restricted/boost/throw_exception/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/tokenizer/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/tokenizer/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/tokenizer/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/tokenizer/CMakeLists.linux-x86_64.txt":"",
@@ -1499,31 +1762,37 @@
"contrib/restricted/boost/tti/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/tti/CMakeLists.txt":"",
"contrib/restricted/boost/tti/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/tuple/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/tuple/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/tuple/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/tuple/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/tuple/CMakeLists.txt":"",
"contrib/restricted/boost/tuple/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/type_index/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/type_index/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/type_index/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/type_index/CMakeLists.txt":"",
"contrib/restricted/boost/type_index/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/type_traits/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/type_traits/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/type_traits/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/type_traits/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/type_traits/CMakeLists.txt":"",
"contrib/restricted/boost/type_traits/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/typeof/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/typeof/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/typeof/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/typeof/CMakeLists.txt":"",
"contrib/restricted/boost/typeof/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/unordered/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/unordered/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/unordered/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/unordered/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/unordered/CMakeLists.txt":"",
"contrib/restricted/boost/unordered/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/utility/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/utility/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/utility/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/utility/CMakeLists.linux-x86_64.txt":"",
@@ -1533,11 +1802,13 @@
"contrib/restricted/boost/variant/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/variant/CMakeLists.txt":"",
"contrib/restricted/boost/variant/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/variant2/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/variant2/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/variant2/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/variant2/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/variant2/CMakeLists.txt":"",
"contrib/restricted/boost/variant2/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/boost/winapi/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/boost/winapi/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/boost/winapi/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/boost/winapi/CMakeLists.linux-x86_64.txt":"",
@@ -1547,58 +1818,69 @@
"contrib/restricted/boost/xpressive/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/boost/xpressive/CMakeLists.txt":"",
"contrib/restricted/boost/xpressive/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/cityhash-1.0.2/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/cityhash-1.0.2/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/cityhash-1.0.2/CMakeLists.txt":"",
"contrib/restricted/cityhash-1.0.2/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/dragonbox/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/dragonbox/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/dragonbox/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/dragonbox/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/dragonbox/CMakeLists.txt":"",
+ "contrib/restricted/fast_float/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/fast_float/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/fast_float/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/fast_float/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/fast_float/CMakeLists.txt":"",
"contrib/restricted/fast_float/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/google/CMakeLists.txt":"",
+ "contrib/restricted/google/benchmark/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/google/benchmark/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/google/benchmark/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/google/benchmark/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/google/benchmark/CMakeLists.txt":"",
"contrib/restricted/google/benchmark/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/googletest/CMakeLists.txt":"",
+ "contrib/restricted/googletest/googlemock/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/googletest/googlemock/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/googletest/googlemock/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/googletest/googlemock/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/googletest/googlemock/CMakeLists.txt":"",
"contrib/restricted/googletest/googlemock/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/googletest/googletest/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/googletest/googletest/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/googletest/googletest/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/googletest/googletest/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/googletest/googletest/CMakeLists.txt":"",
"contrib/restricted/googletest/googletest/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/http-parser/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/http-parser/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/http-parser/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/http-parser/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/http-parser/CMakeLists.txt":"",
"contrib/restricted/http-parser/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/nlohmann_json/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/nlohmann_json/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/nlohmann_json/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/nlohmann_json/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/nlohmann_json/CMakeLists.txt":"",
"contrib/restricted/nlohmann_json/CMakeLists.windows-x86_64.txt":"",
"contrib/restricted/patched/CMakeLists.txt":"",
+ "contrib/restricted/patched/replxx/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/patched/replxx/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/patched/replxx/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/patched/replxx/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/patched/replxx/CMakeLists.txt":"",
"contrib/restricted/patched/replxx/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/thrift/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/thrift/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/thrift/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/thrift/CMakeLists.linux-x86_64.txt":"",
"contrib/restricted/thrift/CMakeLists.txt":"",
"contrib/restricted/thrift/CMakeLists.windows-x86_64.txt":"",
+ "contrib/restricted/uriparser/CMakeLists.darwin-arm64.txt":"",
"contrib/restricted/uriparser/CMakeLists.darwin-x86_64.txt":"",
"contrib/restricted/uriparser/CMakeLists.linux-aarch64.txt":"",
"contrib/restricted/uriparser/CMakeLists.linux-x86_64.txt":"",
@@ -1607,29 +1889,34 @@
"contrib/tools/CMakeLists.txt":"",
"contrib/tools/bison/CMakeLists.txt":"",
"contrib/tools/bison/bison/CMakeLists.txt":"",
+ "contrib/tools/bison/bison/induced/CMakeLists.darwin-arm64.txt":"",
"contrib/tools/bison/bison/induced/CMakeLists.darwin-x86_64.txt":"",
"contrib/tools/bison/bison/induced/CMakeLists.linux-aarch64.txt":"",
"contrib/tools/bison/bison/induced/CMakeLists.linux-x86_64.txt":"",
"contrib/tools/bison/bison/induced/CMakeLists.txt":"",
"contrib/tools/bison/bison/induced/CMakeLists.windows-x86_64.txt":"",
"contrib/tools/flatc/CMakeLists.txt":"",
+ "contrib/tools/flatc/bin/CMakeLists.darwin-arm64.txt":"",
"contrib/tools/flatc/bin/CMakeLists.darwin-x86_64.txt":"",
"contrib/tools/flatc/bin/CMakeLists.linux-aarch64.txt":"",
"contrib/tools/flatc/bin/CMakeLists.linux-x86_64.txt":"",
"contrib/tools/flatc/bin/CMakeLists.txt":"",
"contrib/tools/flatc/bin/CMakeLists.windows-x86_64.txt":"",
"contrib/tools/protoc/CMakeLists.txt":"",
+ "contrib/tools/protoc/bin/CMakeLists.darwin-arm64.txt":"",
"contrib/tools/protoc/bin/CMakeLists.darwin-x86_64.txt":"",
"contrib/tools/protoc/bin/CMakeLists.linux-aarch64.txt":"",
"contrib/tools/protoc/bin/CMakeLists.linux-x86_64.txt":"",
"contrib/tools/protoc/bin/CMakeLists.txt":"",
"contrib/tools/protoc/bin/CMakeLists.windows-x86_64.txt":"",
"contrib/tools/protoc/plugins/CMakeLists.txt":"",
+ "contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-arm64.txt":"",
"contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-x86_64.txt":"",
"contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-aarch64.txt":"",
"contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-x86_64.txt":"",
"contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt":"",
"contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.windows-x86_64.txt":"",
+ "contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-arm64.txt":"",
"contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-x86_64.txt":"",
"contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-aarch64.txt":"",
"contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-x86_64.txt":"",
@@ -1639,429 +1926,514 @@
"go.mod":"ydb/github_toplevel/go.mod",
"go.sum":"ydb/github_toplevel/go.sum",
"library/CMakeLists.txt":"",
+ "library/cpp/CMakeLists.darwin-arm64.txt":"",
"library/cpp/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/CMakeLists.linux-aarch64.txt":"",
"library/cpp/CMakeLists.linux-x86_64.txt":"",
"library/cpp/CMakeLists.txt":"",
"library/cpp/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt":"",
"library/cpp/accurate_accumulate/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/accurate_accumulate/CMakeLists.linux-aarch64.txt":"",
"library/cpp/accurate_accumulate/CMakeLists.linux-x86_64.txt":"",
"library/cpp/accurate_accumulate/CMakeLists.txt":"",
"library/cpp/accurate_accumulate/CMakeLists.windows-x86_64.txt":"",
"library/cpp/actors/CMakeLists.txt":"",
+ "library/cpp/actors/actor_type/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/actor_type/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/actor_type/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/actor_type/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/actor_type/CMakeLists.txt":"",
"library/cpp/actors/actor_type/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/core/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/core/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/core/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/core/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/core/CMakeLists.txt":"",
"library/cpp/actors/core/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/core/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/core/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/core/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/core/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/core/ut/CMakeLists.txt":"",
"library/cpp/actors/core/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/core/ut_fat/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/core/ut_fat/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/core/ut_fat/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/core/ut_fat/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/core/ut_fat/CMakeLists.txt":"",
"library/cpp/actors/core/ut_fat/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/cppcoro/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/cppcoro/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/cppcoro/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/cppcoro/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/cppcoro/CMakeLists.txt":"",
"library/cpp/actors/cppcoro/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/cppcoro/corobenchmark/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/cppcoro/corobenchmark/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt":"",
"library/cpp/actors/cppcoro/corobenchmark/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/cppcoro/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/cppcoro/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/cppcoro/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/cppcoro/ut/CMakeLists.txt":"",
"library/cpp/actors/cppcoro/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/dnscachelib/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/dnscachelib/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/dnscachelib/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/dnscachelib/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/dnscachelib/CMakeLists.txt":"",
"library/cpp/actors/dnscachelib/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/dnsresolver/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/dnsresolver/CMakeLists.txt":"",
"library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/dnsresolver/ut/CMakeLists.txt":"",
"library/cpp/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/examples/01_ping_pong/CMakeLists.txt":"",
"library/cpp/actors/examples/01_ping_pong/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/examples/02_discovery/CMakeLists.txt":"",
"library/cpp/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt":"",
"library/cpp/actors/examples/CMakeLists.txt":"",
+ "library/cpp/actors/helpers/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/helpers/CMakeLists.txt":"",
"library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/helpers/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/helpers/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/helpers/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/helpers/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/helpers/ut/CMakeLists.txt":"",
"library/cpp/actors/helpers/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/http/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/http/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/http/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/http/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/http/CMakeLists.txt":"",
"library/cpp/actors/http/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/http/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/http/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/http/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/http/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/http/ut/CMakeLists.txt":"",
"library/cpp/actors/http/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/CMakeLists.txt":"",
"library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/mock/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/mock/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/mock/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/mock/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/mock/CMakeLists.txt":"",
"library/cpp/actors/interconnect/mock/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/CMakeLists.txt":"",
"library/cpp/actors/interconnect/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/lib/CMakeLists.txt":"",
"library/cpp/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/ut/protos/CMakeLists.txt":"",
"library/cpp/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/ut_fat/CMakeLists.txt":"",
"library/cpp/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt":"",
"library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/log_backend/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/log_backend/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/log_backend/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/log_backend/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/log_backend/CMakeLists.txt":"",
"library/cpp/actors/log_backend/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/memory_log/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/memory_log/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/memory_log/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/memory_log/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/memory_log/CMakeLists.txt":"",
"library/cpp/actors/memory_log/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/prof/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/prof/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/prof/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/prof/CMakeLists.txt":"",
"library/cpp/actors/prof/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/prof/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/prof/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/prof/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/prof/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/prof/ut/CMakeLists.txt":"",
"library/cpp/actors/prof/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/protos/CMakeLists.txt":"",
"library/cpp/actors/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/testlib/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/testlib/CMakeLists.txt":"",
"library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/testlib/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/testlib/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/testlib/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/testlib/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/testlib/ut/CMakeLists.txt":"",
"library/cpp/actors/testlib/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/util/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/util/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/util/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/util/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/util/CMakeLists.txt":"",
"library/cpp/actors/util/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/util/ut/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/util/ut/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/util/ut/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/util/ut/CMakeLists.txt":"",
"library/cpp/actors/util/ut/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/wilson/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/wilson/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/wilson/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/wilson/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/wilson/CMakeLists.txt":"",
"library/cpp/actors/wilson/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/actors/wilson/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/actors/wilson/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/actors/wilson/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/actors/wilson/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/actors/wilson/protos/CMakeLists.txt":"",
"library/cpp/actors/wilson/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/archive/CMakeLists.darwin-arm64.txt":"",
"library/cpp/archive/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/archive/CMakeLists.linux-aarch64.txt":"",
"library/cpp/archive/CMakeLists.linux-x86_64.txt":"",
"library/cpp/archive/CMakeLists.txt":"",
"library/cpp/archive/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/balloc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/balloc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/balloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/balloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/balloc/CMakeLists.txt":"",
"library/cpp/balloc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt":"",
"library/cpp/balloc/lib/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/balloc/lib/CMakeLists.linux-aarch64.txt":"",
"library/cpp/balloc/lib/CMakeLists.linux-x86_64.txt":"",
"library/cpp/balloc/lib/CMakeLists.txt":"",
+ "library/cpp/balloc/setup/CMakeLists.darwin-arm64.txt":"",
"library/cpp/balloc/setup/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/balloc/setup/CMakeLists.linux-aarch64.txt":"",
"library/cpp/balloc/setup/CMakeLists.linux-x86_64.txt":"",
"library/cpp/balloc/setup/CMakeLists.txt":"",
+ "library/cpp/binsaver/CMakeLists.darwin-arm64.txt":"",
"library/cpp/binsaver/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/binsaver/CMakeLists.linux-aarch64.txt":"",
"library/cpp/binsaver/CMakeLists.linux-x86_64.txt":"",
"library/cpp/binsaver/CMakeLists.txt":"",
"library/cpp/binsaver/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/bit_io/CMakeLists.darwin-arm64.txt":"",
"library/cpp/bit_io/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/bit_io/CMakeLists.linux-aarch64.txt":"",
"library/cpp/bit_io/CMakeLists.linux-x86_64.txt":"",
"library/cpp/bit_io/CMakeLists.txt":"",
"library/cpp/bit_io/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/CMakeLists.txt":"",
"library/cpp/blockcodecs/CMakeLists.windows-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/CMakeLists.txt":"",
+ "library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/brotli/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/brotli/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/brotli/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/bzip/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/bzip/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/bzip/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/fastlz/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/fastlz/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/fastlz/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/lz4/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/lz4/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/lz4/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/lzma/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/lzma/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/lzma/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/snappy/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/snappy/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/snappy/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/zlib/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/zlib/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/zlib/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/zstd/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/codecs/zstd/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt":"",
"library/cpp/blockcodecs/codecs/zstd/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/blockcodecs/core/CMakeLists.darwin-arm64.txt":"",
"library/cpp/blockcodecs/core/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/blockcodecs/core/CMakeLists.linux-aarch64.txt":"",
"library/cpp/blockcodecs/core/CMakeLists.linux-x86_64.txt":"",
"library/cpp/blockcodecs/core/CMakeLists.txt":"",
"library/cpp/blockcodecs/core/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/bucket_quoter/CMakeLists.darwin-arm64.txt":"",
"library/cpp/bucket_quoter/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/bucket_quoter/CMakeLists.linux-aarch64.txt":"",
"library/cpp/bucket_quoter/CMakeLists.linux-x86_64.txt":"",
"library/cpp/bucket_quoter/CMakeLists.txt":"",
"library/cpp/bucket_quoter/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/build_info/CMakeLists.darwin-arm64.txt":"",
"library/cpp/build_info/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/build_info/CMakeLists.linux-aarch64.txt":"",
"library/cpp/build_info/CMakeLists.linux-x86_64.txt":"",
"library/cpp/build_info/CMakeLists.txt":"",
"library/cpp/build_info/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/cache/CMakeLists.darwin-arm64.txt":"",
"library/cpp/cache/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/cache/CMakeLists.linux-aarch64.txt":"",
"library/cpp/cache/CMakeLists.linux-x86_64.txt":"",
"library/cpp/cache/CMakeLists.txt":"",
"library/cpp/cache/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/case_insensitive_string/CMakeLists.darwin-arm64.txt":"",
"library/cpp/case_insensitive_string/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/case_insensitive_string/CMakeLists.linux-aarch64.txt":"",
"library/cpp/case_insensitive_string/CMakeLists.linux-x86_64.txt":"",
"library/cpp/case_insensitive_string/CMakeLists.txt":"",
"library/cpp/case_insensitive_string/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/cgiparam/CMakeLists.darwin-arm64.txt":"",
"library/cpp/cgiparam/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/cgiparam/CMakeLists.linux-aarch64.txt":"",
"library/cpp/cgiparam/CMakeLists.linux-x86_64.txt":"",
"library/cpp/cgiparam/CMakeLists.txt":"",
"library/cpp/cgiparam/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/charset/CMakeLists.darwin-arm64.txt":"",
"library/cpp/charset/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/charset/CMakeLists.linux-aarch64.txt":"",
"library/cpp/charset/CMakeLists.linux-x86_64.txt":"",
"library/cpp/charset/CMakeLists.txt":"",
"library/cpp/charset/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/charset/lite/CMakeLists.darwin-arm64.txt":"",
"library/cpp/charset/lite/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/charset/lite/CMakeLists.linux-aarch64.txt":"",
"library/cpp/charset/lite/CMakeLists.linux-x86_64.txt":"",
"library/cpp/charset/lite/CMakeLists.txt":"",
"library/cpp/charset/lite/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/codecs/CMakeLists.darwin-arm64.txt":"",
"library/cpp/codecs/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/codecs/CMakeLists.linux-aarch64.txt":"",
"library/cpp/codecs/CMakeLists.linux-x86_64.txt":"",
"library/cpp/codecs/CMakeLists.txt":"",
"library/cpp/codecs/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/codecs/greedy_dict/CMakeLists.darwin-arm64.txt":"",
"library/cpp/codecs/greedy_dict/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/codecs/greedy_dict/CMakeLists.linux-aarch64.txt":"",
"library/cpp/codecs/greedy_dict/CMakeLists.linux-x86_64.txt":"",
"library/cpp/codecs/greedy_dict/CMakeLists.txt":"",
"library/cpp/codecs/greedy_dict/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/colorizer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/colorizer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/colorizer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/colorizer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/colorizer/CMakeLists.txt":"",
"library/cpp/colorizer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/compproto/CMakeLists.darwin-arm64.txt":"",
"library/cpp/compproto/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/compproto/CMakeLists.linux-aarch64.txt":"",
"library/cpp/compproto/CMakeLists.linux-x86_64.txt":"",
"library/cpp/compproto/CMakeLists.txt":"",
"library/cpp/compproto/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/comptable/CMakeLists.darwin-arm64.txt":"",
"library/cpp/comptable/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/comptable/CMakeLists.linux-aarch64.txt":"",
"library/cpp/comptable/CMakeLists.linux-x86_64.txt":"",
"library/cpp/comptable/CMakeLists.txt":"",
"library/cpp/comptable/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/config/CMakeLists.darwin-arm64.txt":"",
"library/cpp/config/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/config/CMakeLists.linux-aarch64.txt":"",
"library/cpp/config/CMakeLists.linux-x86_64.txt":"",
"library/cpp/config/CMakeLists.txt":"",
"library/cpp/config/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/2d_array/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/2d_array/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/2d_array/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/2d_array/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/2d_array/CMakeLists.txt":"",
"library/cpp/containers/2d_array/CMakeLists.windows-x86_64.txt":"",
"library/cpp/containers/CMakeLists.txt":"",
+ "library/cpp/containers/absl_flat_hash/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/absl_flat_hash/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/absl_flat_hash/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/absl_flat_hash/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/absl_flat_hash/CMakeLists.txt":"",
"library/cpp/containers/absl_flat_hash/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/atomizer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/atomizer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/atomizer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/atomizer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/atomizer/CMakeLists.txt":"",
"library/cpp/containers/atomizer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/bitseq/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/bitseq/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/bitseq/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/bitseq/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/bitseq/CMakeLists.txt":"",
"library/cpp/containers/bitseq/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/compact_vector/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/compact_vector/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/compact_vector/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/compact_vector/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/compact_vector/CMakeLists.txt":"",
"library/cpp/containers/compact_vector/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/comptrie/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/comptrie/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/comptrie/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/comptrie/CMakeLists.txt":"",
"library/cpp/containers/comptrie/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/disjoint_interval_tree/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/disjoint_interval_tree/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/disjoint_interval_tree/CMakeLists.txt":"",
"library/cpp/containers/disjoint_interval_tree/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/intrusive_avl_tree/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/intrusive_avl_tree/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/intrusive_avl_tree/CMakeLists.txt":"",
"library/cpp/containers/intrusive_avl_tree/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/intrusive_rb_tree/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/intrusive_rb_tree/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/intrusive_rb_tree/CMakeLists.txt":"",
"library/cpp/containers/intrusive_rb_tree/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/paged_vector/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/paged_vector/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/paged_vector/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/paged_vector/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/paged_vector/CMakeLists.txt":"",
"library/cpp/containers/paged_vector/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/ring_buffer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/ring_buffer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/ring_buffer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/ring_buffer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/ring_buffer/CMakeLists.txt":"",
"library/cpp/containers/ring_buffer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/sorted_vector/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/sorted_vector/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/sorted_vector/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/sorted_vector/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/sorted_vector/CMakeLists.txt":"",
"library/cpp/containers/sorted_vector/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/stack_array/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/stack_array/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/stack_array/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/stack_array/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/stack_array/CMakeLists.txt":"",
"library/cpp/containers/stack_array/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/stack_vector/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/stack_vector/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/stack_vector/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/stack_vector/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/stack_vector/CMakeLists.txt":"",
"library/cpp/containers/stack_vector/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/str_map/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/str_map/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/str_map/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/str_map/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/str_map/CMakeLists.txt":"",
"library/cpp/containers/str_map/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/containers/top_keeper/CMakeLists.darwin-arm64.txt":"",
"library/cpp/containers/top_keeper/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/containers/top_keeper/CMakeLists.linux-aarch64.txt":"",
"library/cpp/containers/top_keeper/CMakeLists.linux-x86_64.txt":"",
"library/cpp/containers/top_keeper/CMakeLists.txt":"",
"library/cpp/containers/top_keeper/CMakeLists.windows-x86_64.txt":"",
"library/cpp/coroutine/CMakeLists.txt":"",
+ "library/cpp/coroutine/engine/CMakeLists.darwin-arm64.txt":"",
"library/cpp/coroutine/engine/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/coroutine/engine/CMakeLists.linux-aarch64.txt":"",
"library/cpp/coroutine/engine/CMakeLists.linux-x86_64.txt":"",
"library/cpp/coroutine/engine/CMakeLists.txt":"",
"library/cpp/coroutine/engine/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/coroutine/listener/CMakeLists.darwin-arm64.txt":"",
"library/cpp/coroutine/listener/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/coroutine/listener/CMakeLists.linux-aarch64.txt":"",
"library/cpp/coroutine/listener/CMakeLists.linux-x86_64.txt":"",
"library/cpp/coroutine/listener/CMakeLists.txt":"",
"library/cpp/coroutine/listener/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/cppparser/CMakeLists.darwin-arm64.txt":"",
"library/cpp/cppparser/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/cppparser/CMakeLists.linux-aarch64.txt":"",
"library/cpp/cppparser/CMakeLists.linux-x86_64.txt":"",
@@ -2071,64 +2443,76 @@
"library/cpp/cpuid_check/CMakeLists.linux-x86_64.txt":"",
"library/cpp/cpuid_check/CMakeLists.txt":"",
"library/cpp/cpuid_check/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/dbg_output/CMakeLists.darwin-arm64.txt":"",
"library/cpp/dbg_output/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/dbg_output/CMakeLists.linux-aarch64.txt":"",
"library/cpp/dbg_output/CMakeLists.linux-x86_64.txt":"",
"library/cpp/dbg_output/CMakeLists.txt":"",
"library/cpp/dbg_output/CMakeLists.windows-x86_64.txt":"",
"library/cpp/deprecated/CMakeLists.txt":"",
+ "library/cpp/deprecated/accessors/CMakeLists.darwin-arm64.txt":"",
"library/cpp/deprecated/accessors/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/deprecated/accessors/CMakeLists.linux-aarch64.txt":"",
"library/cpp/deprecated/accessors/CMakeLists.linux-x86_64.txt":"",
"library/cpp/deprecated/accessors/CMakeLists.txt":"",
"library/cpp/deprecated/accessors/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/deprecated/atomic/CMakeLists.darwin-arm64.txt":"",
"library/cpp/deprecated/atomic/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/deprecated/atomic/CMakeLists.linux-aarch64.txt":"",
"library/cpp/deprecated/atomic/CMakeLists.linux-x86_64.txt":"",
"library/cpp/deprecated/atomic/CMakeLists.txt":"",
"library/cpp/deprecated/atomic/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/deprecated/enum_codegen/CMakeLists.darwin-arm64.txt":"",
"library/cpp/deprecated/enum_codegen/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/deprecated/enum_codegen/CMakeLists.linux-aarch64.txt":"",
"library/cpp/deprecated/enum_codegen/CMakeLists.linux-x86_64.txt":"",
"library/cpp/deprecated/enum_codegen/CMakeLists.txt":"",
"library/cpp/deprecated/enum_codegen/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt":"",
"library/cpp/deprecated/kmp/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/deprecated/kmp/CMakeLists.linux-aarch64.txt":"",
"library/cpp/deprecated/kmp/CMakeLists.linux-x86_64.txt":"",
"library/cpp/deprecated/kmp/CMakeLists.txt":"",
"library/cpp/deprecated/kmp/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/deprecated/split/CMakeLists.darwin-arm64.txt":"",
"library/cpp/deprecated/split/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/deprecated/split/CMakeLists.linux-aarch64.txt":"",
"library/cpp/deprecated/split/CMakeLists.linux-x86_64.txt":"",
"library/cpp/deprecated/split/CMakeLists.txt":"",
"library/cpp/deprecated/split/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/diff/CMakeLists.darwin-arm64.txt":"",
"library/cpp/diff/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/diff/CMakeLists.linux-aarch64.txt":"",
"library/cpp/diff/CMakeLists.linux-x86_64.txt":"",
"library/cpp/diff/CMakeLists.txt":"",
"library/cpp/diff/CMakeLists.windows-x86_64.txt":"",
"library/cpp/digest/CMakeLists.txt":"",
+ "library/cpp/digest/argonish/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/CMakeLists.txt":"",
"library/cpp/digest/argonish/CMakeLists.windows-x86_64.txt":"",
"library/cpp/digest/argonish/internal/CMakeLists.txt":"",
+ "library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/argon2/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/argon2/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/argon2/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/argon2/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/blake2b/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/blake2b/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/blake2b/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/blamka/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/blamka/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/blamka/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/blamka/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/proxies/CMakeLists.linux-x86_64.txt":"",
@@ -2138,11 +2522,13 @@
"library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.linux-x86_64.txt":"",
@@ -2160,328 +2546,393 @@
"library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/argonish/internal/rotations/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/argonish/internal/rotations/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/argonish/internal/rotations/CMakeLists.txt":"",
"library/cpp/digest/argonish/internal/rotations/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/crc32c/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/crc32c/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/crc32c/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/crc32c/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/crc32c/CMakeLists.txt":"",
"library/cpp/digest/crc32c/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/lower_case/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/lower_case/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/lower_case/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/lower_case/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/lower_case/CMakeLists.txt":"",
"library/cpp/digest/lower_case/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/md5/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/md5/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/md5/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/md5/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/md5/CMakeLists.txt":"",
"library/cpp/digest/md5/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/murmur/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/murmur/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/murmur/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/murmur/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/murmur/CMakeLists.txt":"",
"library/cpp/digest/murmur/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/old_crc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/old_crc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/old_crc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/old_crc/CMakeLists.txt":"",
"library/cpp/digest/old_crc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/old_crc/gencrc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/old_crc/gencrc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/old_crc/gencrc/CMakeLists.txt":"",
"library/cpp/digest/old_crc/gencrc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/digest/sfh/CMakeLists.darwin-arm64.txt":"",
"library/cpp/digest/sfh/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/digest/sfh/CMakeLists.linux-aarch64.txt":"",
"library/cpp/digest/sfh/CMakeLists.linux-x86_64.txt":"",
"library/cpp/digest/sfh/CMakeLists.txt":"",
"library/cpp/digest/sfh/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/disjoint_sets/CMakeLists.darwin-arm64.txt":"",
"library/cpp/disjoint_sets/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/disjoint_sets/CMakeLists.linux-aarch64.txt":"",
"library/cpp/disjoint_sets/CMakeLists.linux-x86_64.txt":"",
"library/cpp/disjoint_sets/CMakeLists.txt":"",
"library/cpp/disjoint_sets/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/dns/CMakeLists.darwin-arm64.txt":"",
"library/cpp/dns/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/dns/CMakeLists.linux-aarch64.txt":"",
"library/cpp/dns/CMakeLists.linux-x86_64.txt":"",
"library/cpp/dns/CMakeLists.txt":"",
"library/cpp/dns/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/dwarf_backtrace/CMakeLists.darwin-arm64.txt":"",
"library/cpp/dwarf_backtrace/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/dwarf_backtrace/CMakeLists.linux-aarch64.txt":"",
"library/cpp/dwarf_backtrace/CMakeLists.linux-x86_64.txt":"",
"library/cpp/dwarf_backtrace/CMakeLists.txt":"",
+ "library/cpp/enumbitset/CMakeLists.darwin-arm64.txt":"",
"library/cpp/enumbitset/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/enumbitset/CMakeLists.linux-aarch64.txt":"",
"library/cpp/enumbitset/CMakeLists.linux-x86_64.txt":"",
"library/cpp/enumbitset/CMakeLists.txt":"",
"library/cpp/enumbitset/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/execprofile/CMakeLists.darwin-arm64.txt":"",
"library/cpp/execprofile/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/execprofile/CMakeLists.linux-aarch64.txt":"",
"library/cpp/execprofile/CMakeLists.linux-x86_64.txt":"",
"library/cpp/execprofile/CMakeLists.txt":"",
"library/cpp/execprofile/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/getopt/CMakeLists.darwin-arm64.txt":"",
"library/cpp/getopt/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/getopt/CMakeLists.linux-aarch64.txt":"",
"library/cpp/getopt/CMakeLists.linux-x86_64.txt":"",
"library/cpp/getopt/CMakeLists.txt":"",
"library/cpp/getopt/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/getopt/small/CMakeLists.darwin-arm64.txt":"",
"library/cpp/getopt/small/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/getopt/small/CMakeLists.linux-aarch64.txt":"",
"library/cpp/getopt/small/CMakeLists.linux-x86_64.txt":"",
"library/cpp/getopt/small/CMakeLists.txt":"",
"library/cpp/getopt/small/CMakeLists.windows-x86_64.txt":"",
"library/cpp/grpc/CMakeLists.txt":"",
+ "library/cpp/grpc/client/CMakeLists.darwin-arm64.txt":"",
"library/cpp/grpc/client/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/grpc/client/CMakeLists.linux-aarch64.txt":"",
"library/cpp/grpc/client/CMakeLists.linux-x86_64.txt":"",
"library/cpp/grpc/client/CMakeLists.txt":"",
"library/cpp/grpc/client/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/grpc/server/CMakeLists.darwin-arm64.txt":"",
"library/cpp/grpc/server/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/grpc/server/CMakeLists.linux-aarch64.txt":"",
"library/cpp/grpc/server/CMakeLists.linux-x86_64.txt":"",
"library/cpp/grpc/server/CMakeLists.txt":"",
"library/cpp/grpc/server/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/grpc/server/actors/CMakeLists.darwin-arm64.txt":"",
"library/cpp/grpc/server/actors/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/grpc/server/actors/CMakeLists.linux-aarch64.txt":"",
"library/cpp/grpc/server/actors/CMakeLists.linux-x86_64.txt":"",
"library/cpp/grpc/server/actors/CMakeLists.txt":"",
"library/cpp/grpc/server/actors/CMakeLists.windows-x86_64.txt":"",
"library/cpp/histogram/CMakeLists.txt":"",
+ "library/cpp/histogram/adaptive/CMakeLists.darwin-arm64.txt":"",
"library/cpp/histogram/adaptive/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/histogram/adaptive/CMakeLists.linux-aarch64.txt":"",
"library/cpp/histogram/adaptive/CMakeLists.linux-x86_64.txt":"",
"library/cpp/histogram/adaptive/CMakeLists.txt":"",
"library/cpp/histogram/adaptive/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/histogram/adaptive/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/histogram/adaptive/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/histogram/adaptive/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/histogram/adaptive/protos/CMakeLists.txt":"",
"library/cpp/histogram/adaptive/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/histogram/hdr/CMakeLists.darwin-arm64.txt":"",
"library/cpp/histogram/hdr/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/histogram/hdr/CMakeLists.linux-aarch64.txt":"",
"library/cpp/histogram/hdr/CMakeLists.linux-x86_64.txt":"",
"library/cpp/histogram/hdr/CMakeLists.txt":"",
"library/cpp/histogram/hdr/CMakeLists.windows-x86_64.txt":"",
"library/cpp/html/CMakeLists.txt":"",
+ "library/cpp/html/escape/CMakeLists.darwin-arm64.txt":"",
"library/cpp/html/escape/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/html/escape/CMakeLists.linux-aarch64.txt":"",
"library/cpp/html/escape/CMakeLists.linux-x86_64.txt":"",
"library/cpp/html/escape/CMakeLists.txt":"",
"library/cpp/html/escape/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt":"",
"library/cpp/html/pcdata/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/html/pcdata/CMakeLists.linux-aarch64.txt":"",
"library/cpp/html/pcdata/CMakeLists.linux-x86_64.txt":"",
"library/cpp/html/pcdata/CMakeLists.txt":"",
"library/cpp/html/pcdata/CMakeLists.windows-x86_64.txt":"",
"library/cpp/http/CMakeLists.txt":"",
+ "library/cpp/http/fetch/CMakeLists.darwin-arm64.txt":"",
"library/cpp/http/fetch/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/http/fetch/CMakeLists.linux-aarch64.txt":"",
"library/cpp/http/fetch/CMakeLists.linux-x86_64.txt":"",
"library/cpp/http/fetch/CMakeLists.txt":"",
"library/cpp/http/fetch/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/http/io/CMakeLists.darwin-arm64.txt":"",
"library/cpp/http/io/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/http/io/CMakeLists.linux-aarch64.txt":"",
"library/cpp/http/io/CMakeLists.linux-x86_64.txt":"",
"library/cpp/http/io/CMakeLists.txt":"",
"library/cpp/http/io/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/http/misc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/http/misc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/http/misc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/http/misc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/http/misc/CMakeLists.txt":"",
"library/cpp/http/misc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/http/server/CMakeLists.darwin-arm64.txt":"",
"library/cpp/http/server/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/http/server/CMakeLists.linux-aarch64.txt":"",
"library/cpp/http/server/CMakeLists.linux-x86_64.txt":"",
"library/cpp/http/server/CMakeLists.txt":"",
"library/cpp/http/server/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/http/simple/CMakeLists.darwin-arm64.txt":"",
"library/cpp/http/simple/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/http/simple/CMakeLists.linux-aarch64.txt":"",
"library/cpp/http/simple/CMakeLists.linux-x86_64.txt":"",
"library/cpp/http/simple/CMakeLists.txt":"",
"library/cpp/http/simple/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt":"",
"library/cpp/hyperloglog/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/hyperloglog/CMakeLists.linux-aarch64.txt":"",
"library/cpp/hyperloglog/CMakeLists.linux-x86_64.txt":"",
"library/cpp/hyperloglog/CMakeLists.txt":"",
"library/cpp/hyperloglog/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/int128/CMakeLists.darwin-arm64.txt":"",
"library/cpp/int128/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/int128/CMakeLists.linux-aarch64.txt":"",
"library/cpp/int128/CMakeLists.linux-x86_64.txt":"",
"library/cpp/int128/CMakeLists.txt":"",
"library/cpp/int128/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/ipmath/CMakeLists.darwin-arm64.txt":"",
"library/cpp/ipmath/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/ipmath/CMakeLists.linux-aarch64.txt":"",
"library/cpp/ipmath/CMakeLists.linux-x86_64.txt":"",
"library/cpp/ipmath/CMakeLists.txt":"",
"library/cpp/ipmath/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt":"",
"library/cpp/ipv6_address/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/ipv6_address/CMakeLists.linux-aarch64.txt":"",
"library/cpp/ipv6_address/CMakeLists.linux-x86_64.txt":"",
"library/cpp/ipv6_address/CMakeLists.txt":"",
"library/cpp/ipv6_address/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/iterator/CMakeLists.darwin-arm64.txt":"",
"library/cpp/iterator/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/iterator/CMakeLists.linux-aarch64.txt":"",
"library/cpp/iterator/CMakeLists.linux-x86_64.txt":"",
"library/cpp/iterator/CMakeLists.txt":"",
"library/cpp/iterator/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/CMakeLists.txt":"",
"library/cpp/json/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/common/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/common/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/common/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/common/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/common/CMakeLists.txt":"",
"library/cpp/json/common/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/easy_parse/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/easy_parse/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/easy_parse/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/easy_parse/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/easy_parse/CMakeLists.txt":"",
"library/cpp/json/easy_parse/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/fast_sax/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/fast_sax/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/fast_sax/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/fast_sax/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/fast_sax/CMakeLists.txt":"",
"library/cpp/json/fast_sax/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/writer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/writer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/writer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/writer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/writer/CMakeLists.txt":"",
"library/cpp/json/writer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/json/yson/CMakeLists.darwin-arm64.txt":"",
"library/cpp/json/yson/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/json/yson/CMakeLists.linux-aarch64.txt":"",
"library/cpp/json/yson/CMakeLists.linux-x86_64.txt":"",
"library/cpp/json/yson/CMakeLists.txt":"",
"library/cpp/json/yson/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lcs/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lcs/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lcs/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lcs/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lcs/CMakeLists.txt":"",
"library/cpp/lcs/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lfalloc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lfalloc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lfalloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lfalloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lfalloc/CMakeLists.txt":"",
"library/cpp/lfalloc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lfalloc/alloc_profiler/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lfalloc/alloc_profiler/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lfalloc/alloc_profiler/CMakeLists.txt":"",
"library/cpp/lfalloc/alloc_profiler/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lfalloc/dbg_info/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lfalloc/dbg_info/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lfalloc/dbg_info/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lfalloc/dbg_info/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lfalloc/dbg_info/CMakeLists.txt":"",
"library/cpp/lfalloc/dbg_info/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lfalloc/yt/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lfalloc/yt/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lfalloc/yt/CMakeLists.txt":"",
"library/cpp/lfalloc/yt/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/linear_regression/CMakeLists.darwin-arm64.txt":"",
"library/cpp/linear_regression/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/linear_regression/CMakeLists.linux-aarch64.txt":"",
"library/cpp/linear_regression/CMakeLists.linux-x86_64.txt":"",
"library/cpp/linear_regression/CMakeLists.txt":"",
"library/cpp/linear_regression/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/logger/CMakeLists.darwin-arm64.txt":"",
"library/cpp/logger/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/logger/CMakeLists.linux-aarch64.txt":"",
"library/cpp/logger/CMakeLists.linux-x86_64.txt":"",
"library/cpp/logger/CMakeLists.txt":"",
"library/cpp/logger/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/logger/global/CMakeLists.darwin-arm64.txt":"",
"library/cpp/logger/global/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/logger/global/CMakeLists.linux-aarch64.txt":"",
"library/cpp/logger/global/CMakeLists.linux-x86_64.txt":"",
"library/cpp/logger/global/CMakeLists.txt":"",
"library/cpp/logger/global/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lua/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lua/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lua/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lua/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lua/CMakeLists.txt":"",
"library/cpp/lua/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lwtrace/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lwtrace/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lwtrace/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lwtrace/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lwtrace/CMakeLists.txt":"",
"library/cpp/lwtrace/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lwtrace/mon/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lwtrace/mon/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lwtrace/mon/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lwtrace/mon/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lwtrace/mon/CMakeLists.txt":"",
"library/cpp/lwtrace/mon/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lwtrace/mon/analytics/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lwtrace/mon/analytics/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lwtrace/mon/analytics/CMakeLists.txt":"",
"library/cpp/lwtrace/mon/analytics/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/lwtrace/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/lwtrace/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/lwtrace/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/lwtrace/protos/CMakeLists.txt":"",
"library/cpp/lwtrace/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/malloc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/malloc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/malloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/malloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/malloc/CMakeLists.txt":"",
"library/cpp/malloc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/malloc/api/CMakeLists.darwin-arm64.txt":"",
"library/cpp/malloc/api/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/malloc/api/CMakeLists.linux-aarch64.txt":"",
"library/cpp/malloc/api/CMakeLists.linux-x86_64.txt":"",
"library/cpp/malloc/api/CMakeLists.txt":"",
"library/cpp/malloc/api/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/malloc/jemalloc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/malloc/jemalloc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/malloc/jemalloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/malloc/jemalloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/malloc/jemalloc/CMakeLists.txt":"",
+ "library/cpp/malloc/system/CMakeLists.darwin-arm64.txt":"",
"library/cpp/malloc/system/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/malloc/system/CMakeLists.txt":"",
"library/cpp/malloc/system/CMakeLists.windows-x86_64.txt":"",
"library/cpp/malloc/tcmalloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/malloc/tcmalloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/malloc/tcmalloc/CMakeLists.txt":"",
+ "library/cpp/messagebus/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/CMakeLists.txt":"",
"library/cpp/messagebus/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/actor/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/actor/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/actor/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/actor/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/actor/CMakeLists.txt":"",
"library/cpp/messagebus/actor/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/config/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/config/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/config/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/config/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/config/CMakeLists.txt":"",
"library/cpp/messagebus/config/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/monitoring/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/monitoring/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/monitoring/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/monitoring/CMakeLists.txt":"",
"library/cpp/messagebus/monitoring/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/oldmodule/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/oldmodule/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/oldmodule/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/oldmodule/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/oldmodule/CMakeLists.txt":"",
"library/cpp/messagebus/oldmodule/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/protobuf/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/protobuf/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/protobuf/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/protobuf/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/protobuf/CMakeLists.txt":"",
"library/cpp/messagebus/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/scheduler/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/scheduler/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/scheduler/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/scheduler/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/scheduler/CMakeLists.txt":"",
"library/cpp/messagebus/scheduler/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/messagebus/www/CMakeLists.darwin-arm64.txt":"",
"library/cpp/messagebus/www/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/messagebus/www/CMakeLists.linux-aarch64.txt":"",
"library/cpp/messagebus/www/CMakeLists.linux-x86_64.txt":"",
"library/cpp/messagebus/www/CMakeLists.txt":"",
"library/cpp/messagebus/www/CMakeLists.windows-x86_64.txt":"",
"library/cpp/mime/CMakeLists.txt":"",
+ "library/cpp/mime/types/CMakeLists.darwin-arm64.txt":"",
"library/cpp/mime/types/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/mime/types/CMakeLists.linux-aarch64.txt":"",
"library/cpp/mime/types/CMakeLists.linux-x86_64.txt":"",
@@ -2489,190 +2940,227 @@
"library/cpp/mime/types/CMakeLists.windows-x86_64.txt":"",
"library/cpp/monlib/CMakeLists.txt":"",
"library/cpp/monlib/deprecated/CMakeLists.txt":"",
+ "library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/deprecated/json/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/deprecated/json/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/deprecated/json/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/deprecated/json/CMakeLists.txt":"",
"library/cpp/monlib/deprecated/json/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/dynamic_counters/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/dynamic_counters/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/dynamic_counters/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/dynamic_counters/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/dynamic_counters/CMakeLists.txt":"",
"library/cpp/monlib/dynamic_counters/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt":"",
"library/cpp/monlib/dynamic_counters/percentile/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/CMakeLists.txt":"",
"library/cpp/monlib/encode/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/buffered/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/buffered/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/buffered/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/buffered/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/buffered/CMakeLists.txt":"",
"library/cpp/monlib/encode/buffered/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/json/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/json/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/json/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/json/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/json/CMakeLists.txt":"",
"library/cpp/monlib/encode/json/CMakeLists.windows-x86_64.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/CMakeLists.txt":"",
+ "library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt":"",
"library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/prometheus/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/prometheus/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/prometheus/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/prometheus/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/prometheus/CMakeLists.txt":"",
"library/cpp/monlib/encode/prometheus/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/spack/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/spack/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/spack/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/spack/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/spack/CMakeLists.txt":"",
"library/cpp/monlib/encode/spack/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/encode/text/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/encode/text/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/encode/text/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/encode/text/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/encode/text/CMakeLists.txt":"",
"library/cpp/monlib/encode/text/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/exception/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/exception/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/exception/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/exception/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/exception/CMakeLists.txt":"",
"library/cpp/monlib/exception/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/messagebus/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/messagebus/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/messagebus/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/messagebus/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/messagebus/CMakeLists.txt":"",
"library/cpp/monlib/messagebus/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/metrics/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/metrics/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/metrics/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/metrics/CMakeLists.txt":"",
"library/cpp/monlib/metrics/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/service/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/service/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/service/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/service/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/service/CMakeLists.txt":"",
"library/cpp/monlib/service/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/service/pages/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/service/pages/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/service/pages/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/service/pages/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/service/pages/CMakeLists.txt":"",
"library/cpp/monlib/service/pages/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/service/pages/resources/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/service/pages/resources/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/service/pages/resources/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/service/pages/resources/CMakeLists.txt":"",
"library/cpp/monlib/service/pages/resources/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-arm64.txt":"",
"library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/monlib/service/pages/tablesorter/CMakeLists.linux-aarch64.txt":"",
"library/cpp/monlib/service/pages/tablesorter/CMakeLists.linux-x86_64.txt":"",
"library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt":"",
"library/cpp/monlib/service/pages/tablesorter/CMakeLists.windows-x86_64.txt":"",
"library/cpp/on_disk/CMakeLists.txt":"",
+ "library/cpp/on_disk/chunks/CMakeLists.darwin-arm64.txt":"",
"library/cpp/on_disk/chunks/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/on_disk/chunks/CMakeLists.linux-aarch64.txt":"",
"library/cpp/on_disk/chunks/CMakeLists.linux-x86_64.txt":"",
"library/cpp/on_disk/chunks/CMakeLists.txt":"",
"library/cpp/on_disk/chunks/CMakeLists.windows-x86_64.txt":"",
"library/cpp/openssl/CMakeLists.txt":"",
+ "library/cpp/openssl/big_integer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/big_integer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/big_integer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/big_integer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/big_integer/CMakeLists.txt":"",
"library/cpp/openssl/big_integer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/openssl/crypto/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/crypto/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/crypto/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/crypto/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/crypto/CMakeLists.txt":"",
"library/cpp/openssl/crypto/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/openssl/holders/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/holders/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/holders/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/holders/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/holders/CMakeLists.txt":"",
"library/cpp/openssl/holders/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/openssl/init/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/init/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/init/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/init/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/init/CMakeLists.txt":"",
"library/cpp/openssl/init/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/openssl/io/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/io/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/io/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/io/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/io/CMakeLists.txt":"",
"library/cpp/openssl/io/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/openssl/method/CMakeLists.darwin-arm64.txt":"",
"library/cpp/openssl/method/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/openssl/method/CMakeLists.linux-aarch64.txt":"",
"library/cpp/openssl/method/CMakeLists.linux-x86_64.txt":"",
"library/cpp/openssl/method/CMakeLists.txt":"",
"library/cpp/openssl/method/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/packedtypes/CMakeLists.darwin-arm64.txt":"",
"library/cpp/packedtypes/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/packedtypes/CMakeLists.linux-aarch64.txt":"",
"library/cpp/packedtypes/CMakeLists.linux-x86_64.txt":"",
"library/cpp/packedtypes/CMakeLists.txt":"",
"library/cpp/packedtypes/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/packers/CMakeLists.darwin-arm64.txt":"",
"library/cpp/packers/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/packers/CMakeLists.linux-aarch64.txt":"",
"library/cpp/packers/CMakeLists.linux-x86_64.txt":"",
"library/cpp/packers/CMakeLists.txt":"",
"library/cpp/packers/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/pop_count/CMakeLists.darwin-arm64.txt":"",
"library/cpp/pop_count/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/pop_count/CMakeLists.linux-aarch64.txt":"",
"library/cpp/pop_count/CMakeLists.linux-x86_64.txt":"",
"library/cpp/pop_count/CMakeLists.txt":"",
"library/cpp/pop_count/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/presort/CMakeLists.darwin-arm64.txt":"",
"library/cpp/presort/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/presort/CMakeLists.linux-aarch64.txt":"",
"library/cpp/presort/CMakeLists.linux-x86_64.txt":"",
"library/cpp/presort/CMakeLists.txt":"",
"library/cpp/presort/CMakeLists.windows-x86_64.txt":"",
"library/cpp/protobuf/CMakeLists.txt":"",
+ "library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/dynamic_prototype/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/dynamic_prototype/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/dynamic_prototype/CMakeLists.txt":"",
"library/cpp/protobuf/dynamic_prototype/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/interop/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/interop/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/interop/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/interop/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/interop/CMakeLists.txt":"",
"library/cpp/protobuf/interop/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/json/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/json/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/json/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/json/CMakeLists.txt":"",
"library/cpp/protobuf/json/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/json/proto/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/json/proto/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/json/proto/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/json/proto/CMakeLists.txt":"",
"library/cpp/protobuf/json/proto/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/util/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/util/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/util/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/util/CMakeLists.txt":"",
"library/cpp/protobuf/util/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/util/proto/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/util/proto/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/util/proto/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/util/proto/CMakeLists.txt":"",
"library/cpp/protobuf/util/proto/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/protobuf/yql/CMakeLists.darwin-arm64.txt":"",
"library/cpp/protobuf/yql/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/protobuf/yql/CMakeLists.linux-aarch64.txt":"",
"library/cpp/protobuf/yql/CMakeLists.linux-x86_64.txt":"",
"library/cpp/protobuf/yql/CMakeLists.txt":"",
"library/cpp/protobuf/yql/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/random_provider/CMakeLists.darwin-arm64.txt":"",
"library/cpp/random_provider/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/random_provider/CMakeLists.linux-aarch64.txt":"",
"library/cpp/random_provider/CMakeLists.linux-x86_64.txt":"",
"library/cpp/random_provider/CMakeLists.txt":"",
"library/cpp/random_provider/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/regex/CMakeLists.darwin-arm64.txt":"",
"library/cpp/regex/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/regex/CMakeLists.linux-aarch64.txt":"",
"library/cpp/regex/CMakeLists.linux-x86_64.txt":"",
@@ -2682,400 +3170,478 @@
"library/cpp/regex/hyperscan/CMakeLists.linux-x86_64.txt":"",
"library/cpp/regex/hyperscan/CMakeLists.txt":"",
"library/cpp/regex/hyperscan/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/regex/pcre/CMakeLists.darwin-arm64.txt":"",
"library/cpp/regex/pcre/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/regex/pcre/CMakeLists.linux-aarch64.txt":"",
"library/cpp/regex/pcre/CMakeLists.linux-x86_64.txt":"",
"library/cpp/regex/pcre/CMakeLists.txt":"",
"library/cpp/regex/pcre/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/regex/pire/CMakeLists.darwin-arm64.txt":"",
"library/cpp/regex/pire/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/regex/pire/CMakeLists.linux-aarch64.txt":"",
"library/cpp/regex/pire/CMakeLists.linux-x86_64.txt":"",
"library/cpp/regex/pire/CMakeLists.txt":"",
"library/cpp/regex/pire/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/resource/CMakeLists.darwin-arm64.txt":"",
"library/cpp/resource/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/resource/CMakeLists.linux-aarch64.txt":"",
"library/cpp/resource/CMakeLists.linux-x86_64.txt":"",
"library/cpp/resource/CMakeLists.txt":"",
"library/cpp/resource/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/retry/CMakeLists.darwin-arm64.txt":"",
"library/cpp/retry/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/retry/CMakeLists.linux-aarch64.txt":"",
"library/cpp/retry/CMakeLists.linux-x86_64.txt":"",
"library/cpp/retry/CMakeLists.txt":"",
"library/cpp/retry/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/retry/protos/CMakeLists.darwin-arm64.txt":"",
"library/cpp/retry/protos/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/retry/protos/CMakeLists.linux-aarch64.txt":"",
"library/cpp/retry/protos/CMakeLists.linux-x86_64.txt":"",
"library/cpp/retry/protos/CMakeLists.txt":"",
"library/cpp/retry/protos/CMakeLists.windows-x86_64.txt":"",
"library/cpp/sanitizer/CMakeLists.txt":"",
+ "library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt":"",
"library/cpp/sanitizer/include/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/sanitizer/include/CMakeLists.linux-aarch64.txt":"",
"library/cpp/sanitizer/include/CMakeLists.linux-x86_64.txt":"",
"library/cpp/sanitizer/include/CMakeLists.txt":"",
"library/cpp/sanitizer/include/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/scheme/CMakeLists.darwin-arm64.txt":"",
"library/cpp/scheme/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/scheme/CMakeLists.linux-aarch64.txt":"",
"library/cpp/scheme/CMakeLists.linux-x86_64.txt":"",
"library/cpp/scheme/CMakeLists.txt":"",
"library/cpp/scheme/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/sighandler/CMakeLists.darwin-arm64.txt":"",
"library/cpp/sighandler/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/sighandler/CMakeLists.linux-aarch64.txt":"",
"library/cpp/sighandler/CMakeLists.linux-x86_64.txt":"",
"library/cpp/sighandler/CMakeLists.txt":"",
"library/cpp/sighandler/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/skiff/CMakeLists.darwin-arm64.txt":"",
"library/cpp/skiff/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/skiff/CMakeLists.linux-aarch64.txt":"",
"library/cpp/skiff/CMakeLists.linux-x86_64.txt":"",
"library/cpp/skiff/CMakeLists.txt":"",
"library/cpp/skiff/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/sliding_window/CMakeLists.darwin-arm64.txt":"",
"library/cpp/sliding_window/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/sliding_window/CMakeLists.linux-aarch64.txt":"",
"library/cpp/sliding_window/CMakeLists.linux-x86_64.txt":"",
"library/cpp/sliding_window/CMakeLists.txt":"",
"library/cpp/sliding_window/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/sse/CMakeLists.darwin-arm64.txt":"",
"library/cpp/sse/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/sse/CMakeLists.linux-aarch64.txt":"",
"library/cpp/sse/CMakeLists.linux-x86_64.txt":"",
"library/cpp/sse/CMakeLists.txt":"",
"library/cpp/sse/CMakeLists.windows-x86_64.txt":"",
"library/cpp/streams/CMakeLists.txt":"",
+ "library/cpp/streams/brotli/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/brotli/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/brotli/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/brotli/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/brotli/CMakeLists.txt":"",
"library/cpp/streams/brotli/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/streams/bzip2/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/bzip2/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/bzip2/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/bzip2/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/bzip2/CMakeLists.txt":"",
"library/cpp/streams/bzip2/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/streams/lzma/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/lzma/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/lzma/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/lzma/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/lzma/CMakeLists.txt":"",
"library/cpp/streams/lzma/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/streams/xz/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/xz/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/xz/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/xz/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/xz/CMakeLists.txt":"",
"library/cpp/streams/xz/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/streams/zc_memory_input/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/zc_memory_input/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/zc_memory_input/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/zc_memory_input/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/zc_memory_input/CMakeLists.txt":"",
"library/cpp/streams/zc_memory_input/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/streams/zstd/CMakeLists.darwin-arm64.txt":"",
"library/cpp/streams/zstd/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/streams/zstd/CMakeLists.linux-aarch64.txt":"",
"library/cpp/streams/zstd/CMakeLists.linux-x86_64.txt":"",
"library/cpp/streams/zstd/CMakeLists.txt":"",
"library/cpp/streams/zstd/CMakeLists.windows-x86_64.txt":"",
"library/cpp/string_utils/CMakeLists.txt":"",
+ "library/cpp/string_utils/base32/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/base32/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/base32/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/base32/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/base32/CMakeLists.txt":"",
"library/cpp/string_utils/base32/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/base64/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/base64/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/base64/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/base64/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/base64/CMakeLists.txt":"",
"library/cpp/string_utils/base64/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/csv/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/csv/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/csv/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/csv/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/csv/CMakeLists.txt":"",
"library/cpp/string_utils/csv/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/indent_text/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/indent_text/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/indent_text/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/indent_text/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/indent_text/CMakeLists.txt":"",
"library/cpp/string_utils/indent_text/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/levenshtein_diff/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/levenshtein_diff/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/levenshtein_diff/CMakeLists.txt":"",
"library/cpp/string_utils/levenshtein_diff/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/parse_size/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/parse_size/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/parse_size/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/parse_size/CMakeLists.txt":"",
"library/cpp/string_utils/parse_size/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/quote/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/quote/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/quote/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/quote/CMakeLists.txt":"",
"library/cpp/string_utils/quote/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/relaxed_escaper/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/relaxed_escaper/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/relaxed_escaper/CMakeLists.txt":"",
"library/cpp/string_utils/relaxed_escaper/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/scan/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/scan/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/scan/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/scan/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/scan/CMakeLists.txt":"",
"library/cpp/string_utils/scan/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/url/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/url/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/url/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/url/CMakeLists.txt":"",
"library/cpp/string_utils/url/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-arm64.txt":"",
"library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/string_utils/ztstrbuf/CMakeLists.linux-aarch64.txt":"",
"library/cpp/string_utils/ztstrbuf/CMakeLists.linux-x86_64.txt":"",
"library/cpp/string_utils/ztstrbuf/CMakeLists.txt":"",
"library/cpp/string_utils/ztstrbuf/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/svnversion/CMakeLists.darwin-arm64.txt":"",
"library/cpp/svnversion/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/svnversion/CMakeLists.linux-aarch64.txt":"",
"library/cpp/svnversion/CMakeLists.linux-x86_64.txt":"",
"library/cpp/svnversion/CMakeLists.txt":"",
"library/cpp/svnversion/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/tdigest/CMakeLists.darwin-arm64.txt":"",
"library/cpp/tdigest/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/tdigest/CMakeLists.linux-aarch64.txt":"",
"library/cpp/tdigest/CMakeLists.linux-x86_64.txt":"",
"library/cpp/tdigest/CMakeLists.txt":"",
"library/cpp/tdigest/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/terminate_handler/CMakeLists.darwin-arm64.txt":"",
"library/cpp/terminate_handler/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/terminate_handler/CMakeLists.linux-aarch64.txt":"",
"library/cpp/terminate_handler/CMakeLists.linux-x86_64.txt":"",
"library/cpp/terminate_handler/CMakeLists.txt":"",
"library/cpp/terminate_handler/CMakeLists.windows-x86_64.txt":"",
"library/cpp/testing/CMakeLists.txt":"",
+ "library/cpp/testing/benchmark/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/benchmark/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/benchmark/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/benchmark/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/benchmark/CMakeLists.txt":"",
"library/cpp/testing/benchmark/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/benchmark/main/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/benchmark/main/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/benchmark/main/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/benchmark/main/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/benchmark/main/CMakeLists.txt":"",
"library/cpp/testing/benchmark/main/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/common/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/common/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/common/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/common/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/common/CMakeLists.txt":"",
"library/cpp/testing/common/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/gbenchmark/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/gbenchmark/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/gbenchmark/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/gbenchmark/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/gbenchmark/CMakeLists.txt":"",
"library/cpp/testing/gbenchmark/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/gmock_in_unittest/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/gmock_in_unittest/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/gmock_in_unittest/CMakeLists.txt":"",
"library/cpp/testing/gmock_in_unittest/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/gtest/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/gtest/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/gtest/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/gtest/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/gtest/CMakeLists.txt":"",
"library/cpp/testing/gtest/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/gtest_extensions/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/gtest_extensions/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/gtest_extensions/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/gtest_extensions/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/gtest_extensions/CMakeLists.txt":"",
"library/cpp/testing/gtest_extensions/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/gtest_main/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/gtest_main/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/gtest_main/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/gtest_main/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/gtest_main/CMakeLists.txt":"",
"library/cpp/testing/gtest_main/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/hook/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/hook/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/hook/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/hook/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/hook/CMakeLists.txt":"",
"library/cpp/testing/hook/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/mock_server/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/mock_server/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/mock_server/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/mock_server/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/mock_server/CMakeLists.txt":"",
"library/cpp/testing/mock_server/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/unittest/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/unittest/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/unittest/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/unittest/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/unittest/CMakeLists.txt":"",
"library/cpp/testing/unittest/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/testing/unittest_main/CMakeLists.darwin-arm64.txt":"",
"library/cpp/testing/unittest_main/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/testing/unittest_main/CMakeLists.linux-aarch64.txt":"",
"library/cpp/testing/unittest_main/CMakeLists.linux-x86_64.txt":"",
"library/cpp/testing/unittest_main/CMakeLists.txt":"",
"library/cpp/testing/unittest_main/CMakeLists.windows-x86_64.txt":"",
"library/cpp/threading/CMakeLists.txt":"",
+ "library/cpp/threading/atomic/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/atomic/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/atomic/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/atomic/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/atomic/CMakeLists.txt":"",
"library/cpp/threading/atomic/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/blocking_queue/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/blocking_queue/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/blocking_queue/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/blocking_queue/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/blocking_queue/CMakeLists.txt":"",
"library/cpp/threading/blocking_queue/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/chunk_queue/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/chunk_queue/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/chunk_queue/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/chunk_queue/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/chunk_queue/CMakeLists.txt":"",
"library/cpp/threading/chunk_queue/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/cron/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/cron/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/cron/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/cron/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/cron/CMakeLists.txt":"",
"library/cpp/threading/cron/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/equeue/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/equeue/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/equeue/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/equeue/CMakeLists.txt":"",
"library/cpp/threading/equeue/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/future/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/future/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/future/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/future/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/future/CMakeLists.txt":"",
"library/cpp/threading/future/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/hot_swap/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/hot_swap/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/hot_swap/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/hot_swap/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/hot_swap/CMakeLists.txt":"",
"library/cpp/threading/hot_swap/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/light_rw_lock/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/light_rw_lock/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/light_rw_lock/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/light_rw_lock/CMakeLists.txt":"",
"library/cpp/threading/light_rw_lock/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/local_executor/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/local_executor/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/local_executor/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/local_executor/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/local_executor/CMakeLists.txt":"",
"library/cpp/threading/local_executor/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/poor_man_openmp/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/poor_man_openmp/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/poor_man_openmp/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/poor_man_openmp/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/poor_man_openmp/CMakeLists.txt":"",
"library/cpp/threading/poor_man_openmp/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/queue/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/queue/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/queue/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/queue/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/queue/CMakeLists.txt":"",
"library/cpp/threading/queue/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/skip_list/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/skip_list/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/skip_list/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/skip_list/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/skip_list/CMakeLists.txt":"",
"library/cpp/threading/skip_list/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/task_scheduler/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/task_scheduler/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/task_scheduler/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/task_scheduler/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/task_scheduler/CMakeLists.txt":"",
"library/cpp/threading/task_scheduler/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/threading/thread_local/CMakeLists.darwin-arm64.txt":"",
"library/cpp/threading/thread_local/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/threading/thread_local/CMakeLists.linux-aarch64.txt":"",
"library/cpp/threading/thread_local/CMakeLists.linux-x86_64.txt":"",
"library/cpp/threading/thread_local/CMakeLists.txt":"",
"library/cpp/threading/thread_local/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/time_provider/CMakeLists.darwin-arm64.txt":"",
"library/cpp/time_provider/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/time_provider/CMakeLists.linux-aarch64.txt":"",
"library/cpp/time_provider/CMakeLists.linux-x86_64.txt":"",
"library/cpp/time_provider/CMakeLists.txt":"",
"library/cpp/time_provider/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/timezone_conversion/CMakeLists.darwin-arm64.txt":"",
"library/cpp/timezone_conversion/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/timezone_conversion/CMakeLists.linux-aarch64.txt":"",
"library/cpp/timezone_conversion/CMakeLists.linux-x86_64.txt":"",
"library/cpp/timezone_conversion/CMakeLists.txt":"",
"library/cpp/timezone_conversion/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/tld/CMakeLists.darwin-arm64.txt":"",
"library/cpp/tld/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/tld/CMakeLists.linux-aarch64.txt":"",
"library/cpp/tld/CMakeLists.linux-x86_64.txt":"",
"library/cpp/tld/CMakeLists.txt":"",
"library/cpp/tld/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/type_info/CMakeLists.darwin-arm64.txt":"",
"library/cpp/type_info/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/type_info/CMakeLists.linux-aarch64.txt":"",
"library/cpp/type_info/CMakeLists.linux-x86_64.txt":"",
"library/cpp/type_info/CMakeLists.txt":"",
"library/cpp/type_info/CMakeLists.windows-x86_64.txt":"",
"library/cpp/unicode/CMakeLists.txt":"",
+ "library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt":"",
"library/cpp/unicode/normalization/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/unicode/normalization/CMakeLists.linux-aarch64.txt":"",
"library/cpp/unicode/normalization/CMakeLists.linux-x86_64.txt":"",
"library/cpp/unicode/normalization/CMakeLists.txt":"",
"library/cpp/unicode/normalization/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/unicode/punycode/CMakeLists.darwin-arm64.txt":"",
"library/cpp/unicode/punycode/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/unicode/punycode/CMakeLists.linux-aarch64.txt":"",
"library/cpp/unicode/punycode/CMakeLists.linux-x86_64.txt":"",
"library/cpp/unicode/punycode/CMakeLists.txt":"",
"library/cpp/unicode/punycode/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/unicode/set/CMakeLists.darwin-arm64.txt":"",
"library/cpp/unicode/set/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/unicode/set/CMakeLists.linux-aarch64.txt":"",
"library/cpp/unicode/set/CMakeLists.linux-x86_64.txt":"",
"library/cpp/unicode/set/CMakeLists.txt":"",
"library/cpp/unicode/set/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/unified_agent_client/CMakeLists.darwin-arm64.txt":"",
"library/cpp/unified_agent_client/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/unified_agent_client/CMakeLists.linux-aarch64.txt":"",
"library/cpp/unified_agent_client/CMakeLists.linux-x86_64.txt":"",
"library/cpp/unified_agent_client/CMakeLists.txt":"",
"library/cpp/unified_agent_client/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt":"",
"library/cpp/unified_agent_client/proto/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/unified_agent_client/proto/CMakeLists.linux-aarch64.txt":"",
"library/cpp/unified_agent_client/proto/CMakeLists.linux-x86_64.txt":"",
"library/cpp/unified_agent_client/proto/CMakeLists.txt":"",
"library/cpp/unified_agent_client/proto/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/uri/CMakeLists.darwin-arm64.txt":"",
"library/cpp/uri/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/uri/CMakeLists.linux-aarch64.txt":"",
"library/cpp/uri/CMakeLists.linux-x86_64.txt":"",
"library/cpp/uri/CMakeLists.txt":"",
"library/cpp/uri/CMakeLists.windows-x86_64.txt":"",
"library/cpp/xml/CMakeLists.txt":"",
+ "library/cpp/xml/document/CMakeLists.darwin-arm64.txt":"",
"library/cpp/xml/document/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/xml/document/CMakeLists.linux-aarch64.txt":"",
"library/cpp/xml/document/CMakeLists.linux-x86_64.txt":"",
"library/cpp/xml/document/CMakeLists.txt":"",
"library/cpp/xml/document/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/xml/init/CMakeLists.darwin-arm64.txt":"",
"library/cpp/xml/init/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/xml/init/CMakeLists.linux-aarch64.txt":"",
"library/cpp/xml/init/CMakeLists.linux-x86_64.txt":"",
"library/cpp/xml/init/CMakeLists.txt":"",
"library/cpp/xml/init/CMakeLists.windows-x86_64.txt":"",
"library/cpp/yaml/CMakeLists.txt":"",
+ "library/cpp/yaml/as/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yaml/as/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yaml/as/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yaml/as/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yaml/as/CMakeLists.txt":"",
"library/cpp/yaml/as/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yaml/fyamlcpp/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yaml/fyamlcpp/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yaml/fyamlcpp/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yaml/fyamlcpp/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yaml/fyamlcpp/CMakeLists.txt":"",
"library/cpp/yaml/fyamlcpp/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yson/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yson/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yson/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yson/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yson/CMakeLists.txt":"",
"library/cpp/yson/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yson/json/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yson/json/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yson/json/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yson/json/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yson/json/CMakeLists.txt":"",
"library/cpp/yson/json/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yson/node/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yson/node/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yson/node/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yson/node/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yson/node/CMakeLists.txt":"",
"library/cpp/yson/node/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yson_pull/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yson_pull/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yson_pull/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yson_pull/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yson_pull/CMakeLists.txt":"",
"library/cpp/yson_pull/CMakeLists.windows-x86_64.txt":"",
"library/cpp/yt/CMakeLists.txt":"",
+ "library/cpp/yt/assert/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/assert/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/assert/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/assert/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/assert/CMakeLists.txt":"",
"library/cpp/yt/assert/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/backtrace/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/backtrace/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/backtrace/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/backtrace/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/backtrace/CMakeLists.txt":"",
"library/cpp/yt/backtrace/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/backtrace/cursors/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/backtrace/cursors/CMakeLists.linux-x86_64.txt":"",
@@ -3083,107 +3649,128 @@
"library/cpp/yt/backtrace/cursors/CMakeLists.windows-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/dummy/CMakeLists.txt":"",
"library/cpp/yt/backtrace/cursors/dummy/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt":"",
"library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/interop/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/backtrace/cursors/interop/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt":"",
"library/cpp/yt/backtrace/cursors/interop/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt":"",
"library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/coding/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/coding/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/coding/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/coding/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/coding/CMakeLists.txt":"",
"library/cpp/yt/coding/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/containers/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/containers/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/containers/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/containers/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/containers/CMakeLists.txt":"",
"library/cpp/yt/containers/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/cpu_clock/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/cpu_clock/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/cpu_clock/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/cpu_clock/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/cpu_clock/CMakeLists.txt":"",
"library/cpp/yt/cpu_clock/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/exception/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/exception/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/exception/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/exception/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/exception/CMakeLists.txt":"",
"library/cpp/yt/exception/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/logging/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/logging/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/logging/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/logging/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/logging/CMakeLists.txt":"",
"library/cpp/yt/logging/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/logging/plain_text_formatter/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/logging/plain_text_formatter/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt":"",
"library/cpp/yt/logging/plain_text_formatter/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/malloc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/malloc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/malloc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/malloc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/malloc/CMakeLists.txt":"",
"library/cpp/yt/malloc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/memory/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/memory/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/memory/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/memory/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/memory/CMakeLists.txt":"",
"library/cpp/yt/memory/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/misc/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/misc/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/misc/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/misc/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/misc/CMakeLists.txt":"",
"library/cpp/yt/misc/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/mlock/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/mlock/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/mlock/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/mlock/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/mlock/CMakeLists.txt":"",
"library/cpp/yt/mlock/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/small_containers/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/small_containers/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/small_containers/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/small_containers/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/small_containers/CMakeLists.txt":"",
"library/cpp/yt/small_containers/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/stockpile/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/stockpile/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/stockpile/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/stockpile/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/stockpile/CMakeLists.txt":"",
"library/cpp/yt/stockpile/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/string/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/string/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/string/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/string/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/string/CMakeLists.txt":"",
"library/cpp/yt/string/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/system/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/system/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/system/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/system/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/system/CMakeLists.txt":"",
"library/cpp/yt/system/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/threading/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/threading/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/threading/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/threading/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/threading/CMakeLists.txt":"",
"library/cpp/yt/threading/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/yson/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/yson/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/yson/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/yson/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/yson/CMakeLists.txt":"",
"library/cpp/yt/yson/CMakeLists.windows-x86_64.txt":"",
+ "library/cpp/yt/yson_string/CMakeLists.darwin-arm64.txt":"",
"library/cpp/yt/yson_string/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/yt/yson_string/CMakeLists.linux-aarch64.txt":"",
"library/cpp/yt/yson_string/CMakeLists.linux-x86_64.txt":"",
"library/cpp/yt/yson_string/CMakeLists.txt":"",
"library/cpp/yt/yson_string/CMakeLists.windows-x86_64.txt":"",
"library/cpp/ytalloc/CMakeLists.txt":"",
+ "library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt":"",
"library/cpp/ytalloc/api/CMakeLists.darwin-x86_64.txt":"",
"library/cpp/ytalloc/api/CMakeLists.linux-aarch64.txt":"",
"library/cpp/ytalloc/api/CMakeLists.linux-x86_64.txt":"",
@@ -3191,43 +3778,51 @@
"library/cpp/ytalloc/api/CMakeLists.windows-x86_64.txt":"",
"scripts/generate_dump.sh":"ydb/github_toplevel/scripts/generate_dump.sh",
"tools/CMakeLists.txt":"",
+ "tools/archiver/CMakeLists.darwin-arm64.txt":"",
"tools/archiver/CMakeLists.darwin-x86_64.txt":"",
"tools/archiver/CMakeLists.linux-aarch64.txt":"",
"tools/archiver/CMakeLists.linux-x86_64.txt":"",
"tools/archiver/CMakeLists.txt":"",
"tools/archiver/CMakeLists.windows-x86_64.txt":"",
"tools/enum_parser/CMakeLists.txt":"",
+ "tools/enum_parser/enum_parser/CMakeLists.darwin-arm64.txt":"",
"tools/enum_parser/enum_parser/CMakeLists.darwin-x86_64.txt":"",
"tools/enum_parser/enum_parser/CMakeLists.linux-aarch64.txt":"",
"tools/enum_parser/enum_parser/CMakeLists.linux-x86_64.txt":"",
"tools/enum_parser/enum_parser/CMakeLists.txt":"",
"tools/enum_parser/enum_parser/CMakeLists.windows-x86_64.txt":"",
+ "tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-arm64.txt":"",
"tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-x86_64.txt":"",
"tools/enum_parser/enum_serialization_runtime/CMakeLists.linux-aarch64.txt":"",
"tools/enum_parser/enum_serialization_runtime/CMakeLists.linux-x86_64.txt":"",
"tools/enum_parser/enum_serialization_runtime/CMakeLists.txt":"",
"tools/enum_parser/enum_serialization_runtime/CMakeLists.windows-x86_64.txt":"",
+ "tools/enum_parser/parse_enum/CMakeLists.darwin-arm64.txt":"",
"tools/enum_parser/parse_enum/CMakeLists.darwin-x86_64.txt":"",
"tools/enum_parser/parse_enum/CMakeLists.linux-aarch64.txt":"",
"tools/enum_parser/parse_enum/CMakeLists.linux-x86_64.txt":"",
"tools/enum_parser/parse_enum/CMakeLists.txt":"",
"tools/enum_parser/parse_enum/CMakeLists.windows-x86_64.txt":"",
"tools/rescompiler/CMakeLists.txt":"",
+ "tools/rescompiler/bin/CMakeLists.darwin-arm64.txt":"",
"tools/rescompiler/bin/CMakeLists.darwin-x86_64.txt":"",
"tools/rescompiler/bin/CMakeLists.linux-aarch64.txt":"",
"tools/rescompiler/bin/CMakeLists.linux-x86_64.txt":"",
"tools/rescompiler/bin/CMakeLists.txt":"",
"tools/rescompiler/bin/CMakeLists.windows-x86_64.txt":"",
+ "util/CMakeLists.darwin-arm64.txt":"",
"util/CMakeLists.darwin-x86_64.txt":"",
"util/CMakeLists.linux-aarch64.txt":"",
"util/CMakeLists.linux-x86_64.txt":"",
"util/CMakeLists.txt":"",
"util/CMakeLists.windows-x86_64.txt":"",
+ "util/charset/CMakeLists.darwin-arm64.txt":"",
"util/charset/CMakeLists.darwin-x86_64.txt":"",
"util/charset/CMakeLists.linux-aarch64.txt":"",
"util/charset/CMakeLists.linux-x86_64.txt":"",
"util/charset/CMakeLists.txt":"",
"util/charset/CMakeLists.windows-x86_64.txt":"",
+ "util/draft/CMakeLists.darwin-arm64.txt":"",
"util/draft/CMakeLists.darwin-x86_64.txt":"",
"util/draft/CMakeLists.linux-aarch64.txt":"",
"util/draft/CMakeLists.linux-x86_64.txt":"",
@@ -3237,16 +3832,19 @@
"ya.conf":"devtools/ya/opensource/ya.conf",
"ydb/CMakeLists.txt":"",
"ydb/apps/CMakeLists.txt":"",
+ "ydb/apps/pgwire/CMakeLists.darwin-arm64.txt":"",
"ydb/apps/pgwire/CMakeLists.darwin-x86_64.txt":"",
"ydb/apps/pgwire/CMakeLists.linux-aarch64.txt":"",
"ydb/apps/pgwire/CMakeLists.linux-x86_64.txt":"",
"ydb/apps/pgwire/CMakeLists.txt":"",
"ydb/apps/pgwire/CMakeLists.windows-x86_64.txt":"",
+ "ydb/apps/ydb/CMakeLists.darwin-arm64.txt":"",
"ydb/apps/ydb/CMakeLists.darwin-x86_64.txt":"",
"ydb/apps/ydb/CMakeLists.linux-aarch64.txt":"",
"ydb/apps/ydb/CMakeLists.linux-x86_64.txt":"",
"ydb/apps/ydb/CMakeLists.txt":"",
"ydb/apps/ydb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/apps/ydb/commands/CMakeLists.darwin-arm64.txt":"",
"ydb/apps/ydb/commands/CMakeLists.darwin-x86_64.txt":"",
"ydb/apps/ydb/commands/CMakeLists.linux-aarch64.txt":"",
"ydb/apps/ydb/commands/CMakeLists.linux-x86_64.txt":"",
@@ -3255,273 +3853,327 @@
"ydb/apps/ydb/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/apps/ydb/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/apps/ydb/ut/CMakeLists.txt":"",
+ "ydb/apps/ydbd/CMakeLists.darwin-arm64.txt":"",
"ydb/apps/ydbd/CMakeLists.darwin-x86_64.txt":"",
"ydb/apps/ydbd/CMakeLists.linux-aarch64.txt":"",
"ydb/apps/ydbd/CMakeLists.linux-x86_64.txt":"",
"ydb/apps/ydbd/CMakeLists.txt":"",
"ydb/apps/ydbd/CMakeLists.windows-x86_64.txt":"",
"ydb/core/CMakeLists.txt":"",
+ "ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt":"",
"ydb/core/actorlib_impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/actorlib_impl/CMakeLists.linux-aarch64.txt":"",
"ydb/core/actorlib_impl/CMakeLists.linux-x86_64.txt":"",
"ydb/core/actorlib_impl/CMakeLists.txt":"",
"ydb/core/actorlib_impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/actorlib_impl/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/actorlib_impl/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/actorlib_impl/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/actorlib_impl/ut/CMakeLists.txt":"",
"ydb/core/actorlib_impl/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/audit/CMakeLists.darwin-arm64.txt":"",
"ydb/core/audit/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/audit/CMakeLists.linux-aarch64.txt":"",
"ydb/core/audit/CMakeLists.linux-x86_64.txt":"",
"ydb/core/audit/CMakeLists.txt":"",
"ydb/core/audit/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/base/CMakeLists.txt":"",
"ydb/core/base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/base/services/CMakeLists.darwin-arm64.txt":"",
"ydb/core/base/services/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/base/services/CMakeLists.linux-aarch64.txt":"",
"ydb/core/base/services/CMakeLists.linux-x86_64.txt":"",
"ydb/core/base/services/CMakeLists.txt":"",
"ydb/core/base/services/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/base/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/base/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/base/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/base/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/base/ut/CMakeLists.txt":"",
"ydb/core/base/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt":"",
"ydb/core/base/ut_board_subscriber/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/base/ut_board_subscriber/CMakeLists.linux-aarch64.txt":"",
"ydb/core/base/ut_board_subscriber/CMakeLists.linux-x86_64.txt":"",
"ydb/core/base/ut_board_subscriber/CMakeLists.txt":"",
"ydb/core/base/ut_board_subscriber/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blob_depot/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blob_depot/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blob_depot/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blob_depot/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blob_depot/CMakeLists.txt":"",
"ydb/core/blob_depot/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blob_depot/agent/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blob_depot/agent/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blob_depot/agent/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blob_depot/agent/CMakeLists.txt":"",
"ydb/core/blob_depot/agent/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blob_depot/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blob_depot/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blob_depot/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blob_depot/ut/CMakeLists.txt":"",
"ydb/core/blob_depot/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/CMakeLists.txt":"",
"ydb/core/blobstorage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/backpressure/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/backpressure/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/CMakeLists.txt":"",
"ydb/core/blobstorage/backpressure/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/backpressure/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt":"",
"ydb/core/blobstorage/backpressure/ut_client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/base/CMakeLists.txt":"",
"ydb/core/blobstorage/base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/base/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/base/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/base/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/base/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/base/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/crypto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/crypto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/crypto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/crypto/CMakeLists.txt":"",
"ydb/core/blobstorage/crypto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/crypto/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/crypto/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/crypto/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/crypto/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/dsproxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/dsproxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/CMakeLists.txt":"",
"ydb/core/blobstorage/dsproxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt":"",
"ydb/core/blobstorage/dsproxy/mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/dsproxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt":"",
"ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt":"",
"ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/groupinfo/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/groupinfo/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/groupinfo/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/groupinfo/CMakeLists.txt":"",
"ydb/core/blobstorage/groupinfo/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/groupinfo/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/incrhuge/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/incrhuge/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/incrhuge/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/incrhuge/CMakeLists.txt":"",
"ydb/core/blobstorage/incrhuge/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/incrhuge/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/lwtrace_probes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/lwtrace_probes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt":"",
"ydb/core/blobstorage/lwtrace_probes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/nodewarden/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/nodewarden/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/CMakeLists.txt":"",
"ydb/core/blobstorage/nodewarden/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/nodewarden/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt":"",
"ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/other/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/other/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/other/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/other/CMakeLists.txt":"",
"ydb/core/blobstorage/other/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/pdisk/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/pdisk/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/pdisk/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/CMakeLists.txt":"",
"ydb/core/blobstorage/pdisk/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/mock/CMakeLists.txt":"",
"ydb/core/blobstorage/pdisk/mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/pdisk/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/pdisk/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/storagepoolmon/CMakeLists.txt":"",
"ydb/core/blobstorage/storagepoolmon/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/blobstorage/testing/CMakeLists.txt":"",
+ "ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt":"",
"ydb/core/blobstorage/testing/group_overseer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_group/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_group/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_group/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_group/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_group/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_mirror3of4/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.linux-x86_64.txt":"",
@@ -3533,532 +4185,638 @@
"ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.txt":"",
+ "ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_testshard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_testshard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_testshard/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_testshard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_vdisk/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt":"",
"ydb/core/blobstorage/ut_vdisk2/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/common/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/common/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/defrag/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/handoff/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/huge/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/huge/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hullop/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/ingress/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/protos/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/query/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/query/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/query/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/query/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/query/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/repl/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/repl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/scrub/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/syncer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/synclog/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt":"",
"ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blockstore/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blockstore/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blockstore/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blockstore/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blockstore/CMakeLists.txt":"",
"ydb/core/blockstore/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/blockstore/core/CMakeLists.darwin-arm64.txt":"",
"ydb/core/blockstore/core/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/blockstore/core/CMakeLists.linux-aarch64.txt":"",
"ydb/core/blockstore/core/CMakeLists.linux-x86_64.txt":"",
"ydb/core/blockstore/core/CMakeLists.txt":"",
"ydb/core/blockstore/core/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/CMakeLists.txt":"",
"ydb/core/client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/metadata/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/metadata/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/metadata/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/metadata/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/metadata/CMakeLists.txt":"",
"ydb/core/client/metadata/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/metadata/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/metadata/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/metadata/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/metadata/ut/CMakeLists.txt":"",
"ydb/core/client/metadata/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/minikql_compile/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/minikql_compile/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/minikql_compile/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/minikql_compile/CMakeLists.txt":"",
"ydb/core/client/minikql_compile/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/minikql_compile/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/minikql_compile/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/minikql_compile/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/minikql_compile/ut/CMakeLists.txt":"",
"ydb/core/client/minikql_compile/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/minikql_result_lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/minikql_result_lib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/minikql_result_lib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/minikql_result_lib/CMakeLists.txt":"",
"ydb/core/client/minikql_result_lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/minikql_result_lib/ut/CMakeLists.txt":"",
"ydb/core/client/minikql_result_lib/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/scheme_cache_lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/scheme_cache_lib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/scheme_cache_lib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/scheme_cache_lib/CMakeLists.txt":"",
"ydb/core/client/scheme_cache_lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/server/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/server/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/server/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/server/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/server/CMakeLists.txt":"",
"ydb/core/client/server/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/server/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/server/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/server/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/server/ut/CMakeLists.txt":"",
"ydb/core/client/server/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/client/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/client/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/client/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/client/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/client/ut/CMakeLists.txt":"",
"ydb/core/client/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/CMakeLists.txt":"",
"ydb/core/cms/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/console/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/console/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/console/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/console/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/console/CMakeLists.txt":"",
"ydb/core/cms/console/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/console/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/console/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/console/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/console/ut/CMakeLists.txt":"",
"ydb/core/cms/console/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/console/util/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/console/util/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/console/util/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/console/util/CMakeLists.txt":"",
"ydb/core/cms/console/util/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/console/validators/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/console/validators/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/console/validators/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/console/validators/CMakeLists.txt":"",
"ydb/core/cms/console/validators/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/console/validators/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/console/validators/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/console/validators/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/console/validators/ut/CMakeLists.txt":"",
"ydb/core/cms/console/validators/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/ut/CMakeLists.txt":"",
"ydb/core/cms/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt":"",
"ydb/core/cms/ut_sentinel/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/cms/ut_sentinel/CMakeLists.linux-aarch64.txt":"",
"ydb/core/cms/ut_sentinel/CMakeLists.linux-x86_64.txt":"",
"ydb/core/cms/ut_sentinel/CMakeLists.txt":"",
"ydb/core/cms/ut_sentinel/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/control/CMakeLists.darwin-arm64.txt":"",
"ydb/core/control/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/control/CMakeLists.linux-aarch64.txt":"",
"ydb/core/control/CMakeLists.linux-x86_64.txt":"",
"ydb/core/control/CMakeLists.txt":"",
"ydb/core/control/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/control/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/control/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/control/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/control/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/control/ut/CMakeLists.txt":"",
"ydb/core/control/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/debug/CMakeLists.darwin-arm64.txt":"",
"ydb/core/debug/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/debug/CMakeLists.linux-aarch64.txt":"",
"ydb/core/debug/CMakeLists.linux-x86_64.txt":"",
"ydb/core/debug/CMakeLists.txt":"",
"ydb/core/debug/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/debug_tools/CMakeLists.darwin-arm64.txt":"",
"ydb/core/debug_tools/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/debug_tools/CMakeLists.linux-aarch64.txt":"",
"ydb/core/debug_tools/CMakeLists.linux-x86_64.txt":"",
"ydb/core/debug_tools/CMakeLists.txt":"",
"ydb/core/debug_tools/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/debug_tools/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/debug_tools/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/debug_tools/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/debug_tools/ut/CMakeLists.txt":"",
"ydb/core/debug_tools/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/discovery/CMakeLists.darwin-arm64.txt":"",
"ydb/core/discovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/discovery/CMakeLists.linux-aarch64.txt":"",
"ydb/core/discovery/CMakeLists.linux-x86_64.txt":"",
"ydb/core/discovery/CMakeLists.txt":"",
"ydb/core/discovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/docapi/CMakeLists.darwin-arm64.txt":"",
"ydb/core/docapi/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/docapi/CMakeLists.linux-aarch64.txt":"",
"ydb/core/docapi/CMakeLists.linux-x86_64.txt":"",
"ydb/core/docapi/CMakeLists.txt":"",
"ydb/core/docapi/CMakeLists.windows-x86_64.txt":"",
"ydb/core/driver_lib/CMakeLists.txt":"",
+ "ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/base_utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/base_utils/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/base_utils/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/base_utils/CMakeLists.txt":"",
"ydb/core/driver_lib/base_utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/cli_base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/cli_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/cli_base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/cli_base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/cli_base/CMakeLists.txt":"",
"ydb/core/driver_lib/cli_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/cli_config_base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/cli_config_base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/cli_config_base/CMakeLists.txt":"",
"ydb/core/driver_lib/cli_config_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/cli_utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/cli_utils/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/cli_utils/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/cli_utils/CMakeLists.txt":"",
"ydb/core/driver_lib/cli_utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/run/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/run/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/run/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/run/CMakeLists.txt":"",
"ydb/core/driver_lib/run/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/run/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/run/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/run/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/run/ut/CMakeLists.txt":"",
"ydb/core/driver_lib/run/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/version/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/version/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/version/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/version/CMakeLists.txt":"",
"ydb/core/driver_lib/version/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/driver_lib/version/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/driver_lib/version/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/driver_lib/version/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/driver_lib/version/ut/CMakeLists.txt":"",
"ydb/core/driver_lib/version/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/engine/CMakeLists.darwin-arm64.txt":"",
"ydb/core/engine/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/engine/CMakeLists.linux-aarch64.txt":"",
"ydb/core/engine/CMakeLists.linux-x86_64.txt":"",
"ydb/core/engine/CMakeLists.txt":"",
"ydb/core/engine/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt":"",
"ydb/core/engine/minikql/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/engine/minikql/CMakeLists.linux-aarch64.txt":"",
"ydb/core/engine/minikql/CMakeLists.linux-x86_64.txt":"",
"ydb/core/engine/minikql/CMakeLists.txt":"",
"ydb/core/engine/minikql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/engine/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/engine/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/engine/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/engine/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/engine/ut/CMakeLists.txt":"",
"ydb/core/engine/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/erasure/CMakeLists.darwin-arm64.txt":"",
"ydb/core/erasure/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/erasure/CMakeLists.linux-aarch64.txt":"",
"ydb/core/erasure/CMakeLists.linux-x86_64.txt":"",
"ydb/core/erasure/CMakeLists.txt":"",
"ydb/core/erasure/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/erasure/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/erasure/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/erasure/ut/CMakeLists.txt":"",
"ydb/core/erasure/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt":"",
"ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/erasure/ut_perf/CMakeLists.linux-aarch64.txt":"",
"ydb/core/erasure/ut_perf/CMakeLists.linux-x86_64.txt":"",
"ydb/core/erasure/ut_perf/CMakeLists.txt":"",
"ydb/core/erasure/ut_perf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt":"",
"ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/erasure/ut_rope/CMakeLists.linux-aarch64.txt":"",
"ydb/core/erasure/ut_rope/CMakeLists.linux-x86_64.txt":"",
"ydb/core/erasure/ut_rope/CMakeLists.txt":"",
"ydb/core/erasure/ut_rope/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/external_sources/CMakeLists.darwin-arm64.txt":"",
"ydb/core/external_sources/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/external_sources/CMakeLists.linux-aarch64.txt":"",
"ydb/core/external_sources/CMakeLists.linux-x86_64.txt":"",
"ydb/core/external_sources/CMakeLists.txt":"",
"ydb/core/external_sources/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/external_sources/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/external_sources/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/external_sources/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/external_sources/ut/CMakeLists.txt":"",
"ydb/core/external_sources/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/filestore/CMakeLists.darwin-arm64.txt":"",
"ydb/core/filestore/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/filestore/CMakeLists.linux-aarch64.txt":"",
"ydb/core/filestore/CMakeLists.linux-x86_64.txt":"",
"ydb/core/filestore/CMakeLists.txt":"",
"ydb/core/filestore/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/filestore/core/CMakeLists.darwin-arm64.txt":"",
"ydb/core/filestore/core/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/filestore/core/CMakeLists.linux-aarch64.txt":"",
"ydb/core/filestore/core/CMakeLists.linux-x86_64.txt":"",
"ydb/core/filestore/core/CMakeLists.txt":"",
"ydb/core/filestore/core/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/CMakeLists.txt":"",
"ydb/core/formats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/CMakeLists.txt":"",
"ydb/core/formats/arrow/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/common/CMakeLists.txt":"",
"ydb/core/formats/arrow/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/compression/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/compression/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/compression/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/compression/CMakeLists.txt":"",
"ydb/core/formats/arrow/compression/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/dictionary/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/dictionary/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/dictionary/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/dictionary/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/dictionary/CMakeLists.txt":"",
"ydb/core/formats/arrow/dictionary/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/reader/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/reader/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/reader/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/reader/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/reader/CMakeLists.txt":"",
"ydb/core/formats/arrow/reader/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/serializer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/serializer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/serializer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/serializer/CMakeLists.txt":"",
"ydb/core/formats/arrow/serializer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/simple_builder/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/simple_builder/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/simple_builder/CMakeLists.txt":"",
"ydb/core/formats/arrow/simple_builder/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/switch/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/switch/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/switch/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/switch/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/switch/CMakeLists.txt":"",
"ydb/core/formats/arrow/switch/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/transformer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/transformer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/transformer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/transformer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/formats/arrow/transformer/CMakeLists.txt":"",
"ydb/core/formats/arrow/transformer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/formats/arrow/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/formats/arrow/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/formats/arrow/ut/CMakeLists.linux-x86_64.txt":"",
@@ -4066,1167 +4824,1399 @@
"ydb/core/formats/arrow/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/fq/CMakeLists.txt":"",
"ydb/core/fq/libs/CMakeLists.txt":"",
+ "ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/actors/CMakeLists.txt":"",
"ydb/core/fq/libs/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/actors/logging/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/actors/logging/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/actors/logging/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/actors/logging/CMakeLists.txt":"",
"ydb/core/fq/libs/actors/logging/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/audit/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/audit/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/audit/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/audit/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/audit/CMakeLists.txt":"",
"ydb/core/fq/libs/audit/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/audit/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/audit/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/audit/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/audit/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/audit/events/CMakeLists.txt":"",
"ydb/core/fq/libs/audit/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpoint_storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpointing/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpointing/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpointing/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpointing/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/events/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpointing/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpointing/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing_common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/checkpointing_common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/checkpointing_common/CMakeLists.txt":"",
"ydb/core/fq/libs/checkpointing_common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/cloud_audit/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/cloud_audit/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/cloud_audit/CMakeLists.txt":"",
"ydb/core/fq/libs/cloud_audit/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/common/CMakeLists.txt":"",
"ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/common/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/common/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/common/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/common/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/common/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/fq/libs/compute/CMakeLists.txt":"",
+ "ydb/core/fq/libs/compute/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/common/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/common/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/common/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/ydb/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/ydb/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt":"",
"ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/config/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/config/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/config/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/config/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/config/CMakeLists.txt":"",
"ydb/core/fq/libs/config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/config/protos/CMakeLists.txt":"",
"ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_config/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_config/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_config/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_config/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_config/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_config/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_storage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_storage/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_storage/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt":"",
"ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/db_schema/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/db_schema/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/db_schema/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/db_schema/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/db_schema/CMakeLists.txt":"",
"ydb/core/fq/libs/db_schema/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/events/CMakeLists.txt":"",
"ydb/core/fq/libs/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/exceptions/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/exceptions/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/exceptions/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/exceptions/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/exceptions/CMakeLists.txt":"",
"ydb/core/fq/libs/exceptions/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/gateway/CMakeLists.txt":"",
"ydb/core/fq/libs/gateway/CMakeLists.windows-x86_64.txt":"",
"ydb/core/fq/libs/graph_params/CMakeLists.txt":"",
+ "ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/graph_params/proto/CMakeLists.txt":"",
"ydb/core/fq/libs/graph_params/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/grpc/CMakeLists.txt":"",
"ydb/core/fq/libs/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/health/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/health/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/health/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/health/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/health/CMakeLists.txt":"",
"ydb/core/fq/libs/health/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/hmac/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/hmac/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/hmac/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/hmac/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/hmac/CMakeLists.txt":"",
"ydb/core/fq/libs/hmac/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/hmac/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/hmac/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/hmac/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/hmac/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/init/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/init/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/init/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/init/CMakeLists.txt":"",
"ydb/core/fq/libs/init/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/logs/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/logs/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/logs/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/logs/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/logs/CMakeLists.txt":"",
"ydb/core/fq/libs/logs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/mock/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/mock/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/mock/CMakeLists.txt":"",
"ydb/core/fq/libs/mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/pretty_printers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/pretty_printers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/pretty_printers/CMakeLists.txt":"",
"ydb/core/fq/libs/pretty_printers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/private_client/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/private_client/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/private_client/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/private_client/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/private_client/CMakeLists.txt":"",
"ydb/core/fq/libs/private_client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/protos/CMakeLists.txt":"",
"ydb/core/fq/libs/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/quota_manager/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/quota_manager/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/quota_manager/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/CMakeLists.txt":"",
"ydb/core/fq/libs/quota_manager/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/quota_manager/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/events/CMakeLists.txt":"",
"ydb/core/fq/libs/quota_manager/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt":"",
"ydb/core/fq/libs/quota_manager/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt":"",
"ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.windows-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/CMakeLists.txt":"",
+ "ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt":"",
"ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/rate_limiter/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt":"",
"ydb/core/fq/libs/rate_limiter/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt":"",
"ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/utils/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/rate_limiter/utils/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt":"",
"ydb/core/fq/libs/rate_limiter/utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/read_rule/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/read_rule/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/read_rule/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/read_rule/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/read_rule/CMakeLists.txt":"",
"ydb/core/fq/libs/read_rule/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/result_formatter/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/result_formatter/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/result_formatter/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/result_formatter/CMakeLists.txt":"",
"ydb/core/fq/libs/result_formatter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/result_formatter/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/shared_resources/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/shared_resources/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/shared_resources/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/shared_resources/CMakeLists.txt":"",
"ydb/core/fq/libs/shared_resources/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/shared_resources/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/shared_resources/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt":"",
"ydb/core/fq/libs/shared_resources/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/signer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/signer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/signer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/signer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/signer/CMakeLists.txt":"",
"ydb/core/fq/libs/signer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/signer/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/signer/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/signer/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/signer/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/signer/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/tasks_packer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/tasks_packer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/tasks_packer/CMakeLists.txt":"",
"ydb/core/fq/libs/tasks_packer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/test_connection/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/test_connection/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/test_connection/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/CMakeLists.txt":"",
"ydb/core/fq/libs/test_connection/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/test_connection/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/events/CMakeLists.txt":"",
"ydb/core/fq/libs/test_connection/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/test_connection/ut/CMakeLists.txt":"",
"ydb/core/fq/libs/test_connection/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/fq/libs/ydb/CMakeLists.darwin-arm64.txt":"",
"ydb/core/fq/libs/ydb/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/fq/libs/ydb/CMakeLists.linux-aarch64.txt":"",
"ydb/core/fq/libs/ydb/CMakeLists.linux-x86_64.txt":"",
"ydb/core/fq/libs/ydb/CMakeLists.txt":"",
"ydb/core/fq/libs/ydb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_caching/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_caching/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_caching/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_caching/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_caching/CMakeLists.txt":"",
"ydb/core/grpc_caching/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/CMakeLists.txt":"",
"ydb/core/grpc_services/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/auth_processor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/auth_processor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/auth_processor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/auth_processor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/auth_processor/CMakeLists.txt":"",
"ydb/core/grpc_services/auth_processor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/base/CMakeLists.txt":"",
"ydb/core/grpc_services/base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/cancelation/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/cancelation/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/cancelation/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/cancelation/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/cancelation/CMakeLists.txt":"",
"ydb/core/grpc_services/cancelation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/cancelation/protos/CMakeLists.txt":"",
"ydb/core/grpc_services/cancelation/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/counters/CMakeLists.txt":"",
"ydb/core/grpc_services/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/local_rpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/local_rpc/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/local_rpc/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/local_rpc/CMakeLists.txt":"",
"ydb/core/grpc_services/local_rpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_services/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_services/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_services/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_services/ut/CMakeLists.txt":"",
"ydb/core/grpc_services/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_streaming/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_streaming/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_streaming/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_streaming/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_streaming/CMakeLists.txt":"",
"ydb/core/grpc_streaming/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_streaming/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_streaming/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_streaming/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_streaming/ut/CMakeLists.txt":"",
"ydb/core/grpc_streaming/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt":"",
"ydb/core/grpc_streaming/ut/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/health_check/CMakeLists.darwin-arm64.txt":"",
"ydb/core/health_check/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/health_check/CMakeLists.linux-aarch64.txt":"",
"ydb/core/health_check/CMakeLists.linux-x86_64.txt":"",
"ydb/core/health_check/CMakeLists.txt":"",
"ydb/core/health_check/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/health_check/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/health_check/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/health_check/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/health_check/ut/CMakeLists.txt":"",
"ydb/core/health_check/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/http_proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/http_proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/http_proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/http_proxy/CMakeLists.txt":"",
"ydb/core/http_proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/http_proxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/http_proxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/http_proxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/http_proxy/ut/CMakeLists.txt":"",
"ydb/core/http_proxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/io_formats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/io_formats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/io_formats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/io_formats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/io_formats/CMakeLists.txt":"",
"ydb/core/io_formats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/io_formats/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/io_formats/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/io_formats/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/io_formats/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/io_formats/ut/CMakeLists.txt":"",
"ydb/core/io_formats/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kafka_proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kafka_proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kafka_proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kafka_proxy/CMakeLists.txt":"",
"ydb/core/kafka_proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kafka_proxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kafka_proxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kafka_proxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kafka_proxy/ut/CMakeLists.txt":"",
"ydb/core/kafka_proxy/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/kesus/CMakeLists.txt":"",
+ "ydb/core/kesus/proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kesus/proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kesus/proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kesus/proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kesus/proxy/CMakeLists.txt":"",
"ydb/core/kesus/proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kesus/proxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kesus/proxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kesus/proxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kesus/proxy/ut/CMakeLists.txt":"",
"ydb/core/kesus/proxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kesus/tablet/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kesus/tablet/CMakeLists.txt":"",
"ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt":"",
"ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kesus/tablet/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kesus/tablet/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kesus/tablet/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kesus/tablet/ut/CMakeLists.txt":"",
"ydb/core/kesus/tablet/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/keyvalue/CMakeLists.darwin-arm64.txt":"",
"ydb/core/keyvalue/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/keyvalue/CMakeLists.linux-aarch64.txt":"",
"ydb/core/keyvalue/CMakeLists.linux-x86_64.txt":"",
"ydb/core/keyvalue/CMakeLists.txt":"",
"ydb/core/keyvalue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/keyvalue/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/keyvalue/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/keyvalue/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/keyvalue/protos/CMakeLists.txt":"",
"ydb/core/keyvalue/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/keyvalue/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/keyvalue/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/keyvalue/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/keyvalue/ut/CMakeLists.txt":"",
"ydb/core/keyvalue/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/CMakeLists.txt":"",
"ydb/core/kqp/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/common/CMakeLists.txt":"",
"ydb/core/kqp/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/common/compilation/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/common/compilation/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/common/compilation/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/common/compilation/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/common/compilation/CMakeLists.txt":"",
"ydb/core/kqp/common/compilation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/common/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/common/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/common/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/common/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/common/events/CMakeLists.txt":"",
"ydb/core/kqp/common/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/common/shutdown/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/common/shutdown/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/common/shutdown/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/common/shutdown/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/common/shutdown/CMakeLists.txt":"",
"ydb/core/kqp/common/shutdown/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/common/simple/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/common/simple/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/common/simple/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/common/simple/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/common/simple/CMakeLists.txt":"",
"ydb/core/kqp/common/simple/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/compile_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/compile_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/compile_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/compile_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/compile_service/CMakeLists.txt":"",
"ydb/core/kqp/compile_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/compute_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/compute_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/compute_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/compute_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/compute_actor/CMakeLists.txt":"",
"ydb/core/kqp/compute_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/counters/CMakeLists.txt":"",
"ydb/core/kqp/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/executer_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/executer_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/executer_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/executer_actor/CMakeLists.txt":"",
"ydb/core/kqp/executer_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/executer_actor/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/executer_actor/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/executer_actor/ut/CMakeLists.txt":"",
"ydb/core/kqp/executer_actor/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/expr_nodes/CMakeLists.txt":"",
"ydb/core/kqp/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/federated_query/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/federated_query/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/federated_query/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/federated_query/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/federated_query/CMakeLists.txt":"",
"ydb/core/kqp/federated_query/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/finalize_script_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/finalize_script_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/finalize_script_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/finalize_script_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/finalize_script_service/CMakeLists.txt":"",
"ydb/core/kqp/finalize_script_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/CMakeLists.txt":"",
"ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/actors/CMakeLists.txt":"",
"ydb/core/kqp/gateway/actors/CMakeLists.windows-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/CMakeLists.txt":"",
+ "ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt":"",
"ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/table/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/behaviour/table/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt":"",
"ydb/core/kqp/gateway/behaviour/table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt":"",
"ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/gateway/local_rpc/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/gateway/local_rpc/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/gateway/local_rpc/CMakeLists.txt":"",
"ydb/core/kqp/gateway/local_rpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/host/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/host/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/host/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/host/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/host/CMakeLists.txt":"",
"ydb/core/kqp/host/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/node_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/node_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/node_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/node_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/node_service/CMakeLists.txt":"",
"ydb/core/kqp/node_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/node_service/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/node_service/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/node_service/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/node_service/ut/CMakeLists.txt":"",
"ydb/core/kqp/node_service/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/opt/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/opt/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/opt/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/opt/CMakeLists.txt":"",
"ydb/core/kqp/opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/opt/logical/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/opt/logical/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/opt/logical/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/opt/logical/CMakeLists.txt":"",
"ydb/core/kqp/opt/logical/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/opt/peephole/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/opt/peephole/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/opt/peephole/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/opt/peephole/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/opt/peephole/CMakeLists.txt":"",
"ydb/core/kqp/opt/peephole/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/opt/physical/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/opt/physical/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/opt/physical/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/opt/physical/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/opt/physical/CMakeLists.txt":"",
"ydb/core/kqp/opt/physical/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/opt/physical/effects/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/opt/physical/effects/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/opt/physical/effects/CMakeLists.txt":"",
"ydb/core/kqp/opt/physical/effects/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/provider/CMakeLists.txt":"",
"ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/provider/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/provider/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/provider/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/provider/ut/CMakeLists.txt":"",
"ydb/core/kqp/provider/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/proxy_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/proxy_service/CMakeLists.txt":"",
"ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/proxy_service/proto/CMakeLists.txt":"",
"ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/proxy_service/ut/CMakeLists.txt":"",
"ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/query_compiler/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/query_compiler/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/query_compiler/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/query_compiler/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/query_compiler/CMakeLists.txt":"",
"ydb/core/kqp/query_compiler/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/query_data/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/query_data/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/query_data/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/query_data/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/query_data/CMakeLists.txt":"",
"ydb/core/kqp/query_data/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/rm_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/rm_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/rm_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/rm_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/rm_service/CMakeLists.txt":"",
"ydb/core/kqp/rm_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/rm_service/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/rm_service/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/rm_service/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/rm_service/ut/CMakeLists.txt":"",
"ydb/core/kqp/rm_service/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/run_script_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/run_script_actor/CMakeLists.txt":"",
"ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/runtime/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/runtime/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/runtime/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/runtime/CMakeLists.txt":"",
"ydb/core/kqp/runtime/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/runtime/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/runtime/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/runtime/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/runtime/ut/CMakeLists.txt":"",
"ydb/core/kqp/runtime/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/session_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/session_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/session_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/session_actor/CMakeLists.txt":"",
"ydb/core/kqp/session_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/topics/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/topics/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/topics/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/topics/CMakeLists.txt":"",
"ydb/core/kqp/topics/CMakeLists.windows-x86_64.txt":"",
"ydb/core/kqp/ut/CMakeLists.txt":"",
+ "ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/arrow/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/arrow/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/arrow/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/arrow/CMakeLists.txt":"",
"ydb/core/kqp/ut/arrow/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/common/CMakeLists.txt":"",
"ydb/core/kqp/ut/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/cost/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/cost/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/cost/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/cost/CMakeLists.txt":"",
"ydb/core/kqp/ut/cost/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/data/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/data/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/data/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/data/CMakeLists.txt":"",
"ydb/core/kqp/ut/data/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/effects/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/effects/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/effects/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/effects/CMakeLists.txt":"",
"ydb/core/kqp/ut/effects/CMakeLists.windows-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/CMakeLists.txt":"",
+ "ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/federated_query/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/common/CMakeLists.txt":"",
"ydb/core/kqp/ut/federated_query/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt":"",
"ydb/core/kqp/ut/federated_query/generic/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt":"",
"ydb/core/kqp/ut/federated_query/s3/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/idx_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/idx_test/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/idx_test/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/idx_test/CMakeLists.txt":"",
"ydb/core/kqp/ut/idx_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/indexes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/indexes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/indexes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/indexes/CMakeLists.txt":"",
"ydb/core/kqp/ut/indexes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/join/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/join/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/join/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/join/CMakeLists.txt":"",
"ydb/core/kqp/ut/join/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/olap/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/olap/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/olap/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/olap/CMakeLists.txt":"",
"ydb/core/kqp/ut/olap/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/opt/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/opt/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/opt/CMakeLists.txt":"",
"ydb/core/kqp/ut/opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/perf/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/perf/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/perf/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/perf/CMakeLists.txt":"",
"ydb/core/kqp/ut/perf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/pg/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/pg/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/pg/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/pg/CMakeLists.txt":"",
"ydb/core/kqp/ut/pg/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/query/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/query/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/query/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/query/CMakeLists.txt":"",
"ydb/core/kqp/ut/query/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/scan/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/scan/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/scan/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/scan/CMakeLists.txt":"",
"ydb/core/kqp/ut/scan/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/scheme/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/scheme/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/scheme/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/scheme/CMakeLists.txt":"",
"ydb/core/kqp/ut/scheme/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/service/CMakeLists.txt":"",
"ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/spilling/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/spilling/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/spilling/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/spilling/CMakeLists.txt":"",
"ydb/core/kqp/ut/spilling/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/sysview/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/sysview/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/sysview/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/sysview/CMakeLists.txt":"",
"ydb/core/kqp/ut/sysview/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/tx/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/tx/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/tx/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/tx/CMakeLists.txt":"",
"ydb/core/kqp/ut/tx/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt":"",
"ydb/core/kqp/ut/yql/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/kqp/ut/yql/CMakeLists.linux-aarch64.txt":"",
"ydb/core/kqp/ut/yql/CMakeLists.linux-x86_64.txt":"",
"ydb/core/kqp/ut/yql/CMakeLists.txt":"",
"ydb/core/kqp/ut/yql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/load_test/CMakeLists.darwin-arm64.txt":"",
"ydb/core/load_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/load_test/CMakeLists.linux-aarch64.txt":"",
"ydb/core/load_test/CMakeLists.linux-x86_64.txt":"",
"ydb/core/load_test/CMakeLists.txt":"",
"ydb/core/load_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt":"",
"ydb/core/load_test/ut_ycsb/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/load_test/ut_ycsb/CMakeLists.linux-aarch64.txt":"",
"ydb/core/load_test/ut_ycsb/CMakeLists.linux-x86_64.txt":"",
"ydb/core/load_test/ut_ycsb/CMakeLists.txt":"",
"ydb/core/load_test/ut_ycsb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt":"",
"ydb/core/local_pgwire/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/local_pgwire/CMakeLists.linux-aarch64.txt":"",
"ydb/core/local_pgwire/CMakeLists.linux-x86_64.txt":"",
"ydb/core/local_pgwire/CMakeLists.txt":"",
"ydb/core/local_pgwire/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/log_backend/CMakeLists.darwin-arm64.txt":"",
"ydb/core/log_backend/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/log_backend/CMakeLists.linux-aarch64.txt":"",
"ydb/core/log_backend/CMakeLists.linux-x86_64.txt":"",
"ydb/core/log_backend/CMakeLists.txt":"",
"ydb/core/log_backend/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/metering/CMakeLists.darwin-arm64.txt":"",
"ydb/core/metering/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/metering/CMakeLists.linux-aarch64.txt":"",
"ydb/core/metering/CMakeLists.linux-x86_64.txt":"",
"ydb/core/metering/CMakeLists.txt":"",
"ydb/core/metering/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/metering/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/metering/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/metering/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/metering/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/metering/ut/CMakeLists.txt":"",
"ydb/core/metering/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/CMakeLists.txt":"",
"ydb/core/mind/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/address_classification/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/address_classification/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/address_classification/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/address_classification/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/address_classification/CMakeLists.txt":"",
"ydb/core/mind/address_classification/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/address_classification/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/address_classification/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/address_classification/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/address_classification/ut/CMakeLists.txt":"",
"ydb/core/mind/address_classification/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/bscontroller/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/bscontroller/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/bscontroller/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/bscontroller/CMakeLists.txt":"",
"ydb/core/mind/bscontroller/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/bscontroller/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/bscontroller/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut/CMakeLists.txt":"",
"ydb/core/mind/bscontroller/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt":"",
"ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt":"",
"ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/hive/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/hive/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/hive/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/hive/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/hive/CMakeLists.txt":"",
"ydb/core/mind/hive/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/hive/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/hive/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/hive/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/hive/ut/CMakeLists.txt":"",
"ydb/core/mind/hive/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/ut/CMakeLists.txt":"",
"ydb/core/mind/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mind/ut_fat/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mind/ut_fat/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mind/ut_fat/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mind/ut_fat/CMakeLists.txt":"",
"ydb/core/mind/ut_fat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mon/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mon/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mon/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mon/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mon/CMakeLists.txt":"",
"ydb/core/mon/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt":"",
"ydb/core/mon_alloc/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/mon_alloc/CMakeLists.linux-aarch64.txt":"",
"ydb/core/mon_alloc/CMakeLists.linux-x86_64.txt":"",
"ydb/core/mon_alloc/CMakeLists.txt":"",
"ydb/core/mon_alloc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/node_whiteboard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/node_whiteboard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/node_whiteboard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/node_whiteboard/CMakeLists.txt":"",
"ydb/core/node_whiteboard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/CMakeLists.txt":"",
"ydb/core/persqueue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/codecs/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/codecs/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/codecs/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/codecs/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/codecs/CMakeLists.txt":"",
"ydb/core/persqueue/codecs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/config/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/config/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/config/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/config/CMakeLists.txt":"",
"ydb/core/persqueue/config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/events/CMakeLists.txt":"",
"ydb/core/persqueue/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/partition_key_range/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/partition_key_range/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/partition_key_range/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/partition_key_range/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/partition_key_range/CMakeLists.txt":"",
"ydb/core/persqueue/partition_key_range/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/ut/CMakeLists.txt":"",
"ydb/core/persqueue/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/ut/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/ut/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/ut/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/ut/common/CMakeLists.txt":"",
"ydb/core/persqueue/ut/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/ut/slow/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/ut/slow/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/ut/slow/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/ut/slow/CMakeLists.txt":"",
"ydb/core/persqueue/ut/slow/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/persqueue/writer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/persqueue/writer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/persqueue/writer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/persqueue/writer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/persqueue/writer/CMakeLists.txt":"",
"ydb/core/persqueue/writer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/pgproxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/pgproxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/pgproxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/pgproxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/pgproxy/CMakeLists.txt":"",
"ydb/core/pgproxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/pgproxy/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/pgproxy/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/pgproxy/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/pgproxy/protos/CMakeLists.txt":"",
"ydb/core/pgproxy/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/pgproxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/pgproxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/pgproxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/pgproxy/ut/CMakeLists.txt":"",
"ydb/core/pgproxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/protos/CMakeLists.txt":"",
"ydb/core/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/protos/out/CMakeLists.darwin-arm64.txt":"",
"ydb/core/protos/out/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/protos/out/CMakeLists.linux-aarch64.txt":"",
"ydb/core/protos/out/CMakeLists.linux-x86_64.txt":"",
"ydb/core/protos/out/CMakeLists.txt":"",
"ydb/core/protos/out/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/public_http/CMakeLists.darwin-arm64.txt":"",
"ydb/core/public_http/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/public_http/CMakeLists.linux-aarch64.txt":"",
"ydb/core/public_http/CMakeLists.linux-x86_64.txt":"",
"ydb/core/public_http/CMakeLists.txt":"",
"ydb/core/public_http/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/public_http/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/public_http/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/public_http/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/public_http/protos/CMakeLists.txt":"",
"ydb/core/public_http/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/public_http/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/public_http/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/public_http/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/public_http/ut/CMakeLists.txt":"",
"ydb/core/public_http/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/quoter/CMakeLists.darwin-arm64.txt":"",
"ydb/core/quoter/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/quoter/CMakeLists.linux-aarch64.txt":"",
"ydb/core/quoter/CMakeLists.linux-x86_64.txt":"",
"ydb/core/quoter/CMakeLists.txt":"",
"ydb/core/quoter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/quoter/public/CMakeLists.darwin-arm64.txt":"",
"ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/quoter/public/CMakeLists.linux-aarch64.txt":"",
"ydb/core/quoter/public/CMakeLists.linux-x86_64.txt":"",
"ydb/core/quoter/public/CMakeLists.txt":"",
"ydb/core/quoter/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt":"",
"ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-aarch64.txt":"",
"ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-x86_64.txt":"",
"ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt":"",
"ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/quoter/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/quoter/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/quoter/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/quoter/ut/CMakeLists.txt":"",
+ "ydb/core/raw_socket/CMakeLists.darwin-arm64.txt":"",
"ydb/core/raw_socket/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/raw_socket/CMakeLists.linux-aarch64.txt":"",
"ydb/core/raw_socket/CMakeLists.linux-x86_64.txt":"",
"ydb/core/raw_socket/CMakeLists.txt":"",
"ydb/core/raw_socket/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/scheme/CMakeLists.darwin-arm64.txt":"",
"ydb/core/scheme/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/scheme/CMakeLists.linux-aarch64.txt":"",
"ydb/core/scheme/CMakeLists.linux-x86_64.txt":"",
"ydb/core/scheme/CMakeLists.txt":"",
"ydb/core/scheme/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/scheme/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/scheme/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/scheme/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/scheme/protos/CMakeLists.txt":"",
"ydb/core/scheme/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/scheme/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/scheme/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/scheme/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/scheme/ut/CMakeLists.txt":"",
"ydb/core/scheme/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/scheme_types/CMakeLists.darwin-arm64.txt":"",
"ydb/core/scheme_types/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/scheme_types/CMakeLists.linux-aarch64.txt":"",
"ydb/core/scheme_types/CMakeLists.linux-x86_64.txt":"",
"ydb/core/scheme_types/CMakeLists.txt":"",
"ydb/core/scheme_types/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/security/CMakeLists.darwin-arm64.txt":"",
"ydb/core/security/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/security/CMakeLists.linux-aarch64.txt":"",
"ydb/core/security/CMakeLists.linux-x86_64.txt":"",
"ydb/core/security/CMakeLists.txt":"",
"ydb/core/security/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/security/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/security/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/security/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/security/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/security/ut/CMakeLists.txt":"",
"ydb/core/security/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/statistics/CMakeLists.darwin-arm64.txt":"",
"ydb/core/statistics/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/statistics/CMakeLists.linux-aarch64.txt":"",
"ydb/core/statistics/CMakeLists.linux-x86_64.txt":"",
"ydb/core/statistics/CMakeLists.txt":"",
"ydb/core/statistics/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/statistics/aggregator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/statistics/aggregator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/statistics/aggregator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/statistics/aggregator/CMakeLists.txt":"",
"ydb/core/statistics/aggregator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/statistics/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/statistics/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/statistics/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/statistics/ut/CMakeLists.txt":"",
"ydb/core/statistics/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/CMakeLists.txt":"",
"ydb/core/sys_view/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/common/CMakeLists.txt":"",
"ydb/core/sys_view/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/nodes/CMakeLists.txt":"",
"ydb/core/sys_view/nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/partition_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/partition_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/partition_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/partition_stats/CMakeLists.txt":"",
"ydb/core/sys_view/partition_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/partition_stats/ut/CMakeLists.txt":"",
"ydb/core/sys_view/partition_stats/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/processor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/processor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/processor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/processor/CMakeLists.txt":"",
"ydb/core/sys_view/processor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/query_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/query_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/query_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/query_stats/CMakeLists.txt":"",
"ydb/core/sys_view/query_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/query_stats/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/query_stats/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/query_stats/ut/CMakeLists.txt":"",
"ydb/core/sys_view/query_stats/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/service/CMakeLists.txt":"",
"ydb/core/sys_view/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/service/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/service/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/service/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/service/ut/CMakeLists.txt":"",
"ydb/core/sys_view/service/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/storage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/storage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/storage/CMakeLists.txt":"",
"ydb/core/sys_view/storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/tablets/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/tablets/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/tablets/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/tablets/CMakeLists.txt":"",
"ydb/core/sys_view/tablets/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt":"",
"ydb/core/sys_view/ut_kqp/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/sys_view/ut_kqp/CMakeLists.linux-aarch64.txt":"",
"ydb/core/sys_view/ut_kqp/CMakeLists.linux-x86_64.txt":"",
"ydb/core/sys_view/ut_kqp/CMakeLists.txt":"",
"ydb/core/sys_view/ut_kqp/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet/CMakeLists.txt":"",
"ydb/core/tablet/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet/ut/CMakeLists.txt":"",
"ydb/core/tablet/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/CMakeLists.txt":"",
"ydb/core/tablet_flat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/benchmark/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/benchmark/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/benchmark/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/benchmark/CMakeLists.txt":"",
"ydb/core/tablet_flat/benchmark/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/protos/CMakeLists.linux-x86_64.txt":"",
@@ -5234,1407 +6224,1686 @@
"ydb/core/tablet_flat/protos/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tablet_flat/test/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/libs/CMakeLists.txt":"",
+ "ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/exec/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/libs/exec/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/libs/exec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/rows/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/libs/rows/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/libs/rows/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/table/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/libs/table/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/table/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/libs/table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/table/model/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/libs/table/model/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/libs/table/model/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tablet_flat/test/tool/CMakeLists.txt":"",
+ "ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/tool/perf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt":"",
"ydb/core/tablet_flat/test/tool/surg/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/ut/CMakeLists.txt":"",
"ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/ut_large/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/ut_large/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/ut_large/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/ut_large/CMakeLists.txt":"",
"ydb/core/tablet_flat/ut_large/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/ut_pg/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/ut_pg/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/ut_pg/CMakeLists.txt":"",
"ydb/core/tablet_flat/ut_pg/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tablet_flat/ut_util/CMakeLists.txt":"",
"ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/test_tablet/CMakeLists.darwin-arm64.txt":"",
"ydb/core/test_tablet/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/test_tablet/CMakeLists.linux-aarch64.txt":"",
"ydb/core/test_tablet/CMakeLists.linux-x86_64.txt":"",
"ydb/core/test_tablet/CMakeLists.txt":"",
"ydb/core/test_tablet/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/CMakeLists.txt":"",
"ydb/core/testlib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/actors/CMakeLists.txt":"",
"ydb/core/testlib/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/actors/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/actors/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/actors/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/actors/ut/CMakeLists.txt":"",
"ydb/core/testlib/actors/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/basics/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/basics/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/basics/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/basics/CMakeLists.txt":"",
"ydb/core/testlib/basics/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/basics/default/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/basics/default/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/basics/default/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/basics/default/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/basics/default/CMakeLists.txt":"",
"ydb/core/testlib/basics/default/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/default/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/default/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/default/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/default/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/default/CMakeLists.txt":"",
"ydb/core/testlib/default/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/testlib/pg/CMakeLists.darwin-arm64.txt":"",
"ydb/core/testlib/pg/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/testlib/pg/CMakeLists.linux-aarch64.txt":"",
"ydb/core/testlib/pg/CMakeLists.linux-x86_64.txt":"",
"ydb/core/testlib/pg/CMakeLists.txt":"",
"ydb/core/testlib/pg/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tracing/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tracing/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tracing/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tracing/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tracing/CMakeLists.txt":"",
"ydb/core/tracing/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/CMakeLists.txt":"",
"ydb/core/tx/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/balance_coverage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/balance_coverage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/balance_coverage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/balance_coverage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/balance_coverage/CMakeLists.txt":"",
"ydb/core/tx/balance_coverage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/balance_coverage/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/balance_coverage/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/balance_coverage/ut/CMakeLists.txt":"",
"ydb/core/tx/balance_coverage/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/CMakeLists.txt":"",
"ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_action/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt":"",
+ "ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_reader/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/blobs_reader/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt":"",
"ydb/core/tx/columnshard/blobs_reader/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/common/CMakeLists.txt":"",
"ydb/core/tx/columnshard/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/counters/CMakeLists.txt":"",
"ydb/core/tx/columnshard/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/counters/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/counters/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/counters/common/CMakeLists.txt":"",
"ydb/core/tx/columnshard/counters/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/changes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/changes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/insert_table/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/insert_table/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/insert_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/portions/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/portions/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/portions/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/portions/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/predicate/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/reader/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/reader/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/reader/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/reader/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/scheme/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/ut/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/engines/writer/CMakeLists.txt":"",
"ydb/core/tx/columnshard/engines/writer/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tx/columnshard/hooks/CMakeLists.txt":"",
+ "ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/hooks/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/hooks/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt":"",
"ydb/core/tx/columnshard/hooks/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/hooks/testing/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/hooks/testing/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt":"",
"ydb/core/tx/columnshard/hooks/testing/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/CMakeLists.txt":"",
+ "ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt":"",
"ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/granule/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/normalizer/granule/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt":"",
"ydb/core/tx/columnshard/normalizer/granule/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/portion/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/normalizer/portion/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt":"",
"ydb/core/tx/columnshard/normalizer/portion/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/operations/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/operations/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/operations/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/operations/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/operations/CMakeLists.txt":"",
"ydb/core/tx/columnshard/operations/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/resource_subscriber/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/resource_subscriber/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt":"",
"ydb/core/tx/columnshard/resource_subscriber/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/resources/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/resources/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/resources/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/resources/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/resources/CMakeLists.txt":"",
"ydb/core/tx/columnshard/resources/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/splitter/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/splitter/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/splitter/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/splitter/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/splitter/CMakeLists.txt":"",
"ydb/core/tx/columnshard/splitter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt":"",
"ydb/core/tx/columnshard/splitter/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/ut_rw/CMakeLists.txt":"",
"ydb/core/tx/columnshard/ut_rw/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/columnshard/ut_schema/CMakeLists.txt":"",
"ydb/core/tx/columnshard/ut_schema/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tx/conveyor/CMakeLists.txt":"",
+ "ydb/core/tx/conveyor/service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/conveyor/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/conveyor/service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/conveyor/service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/conveyor/service/CMakeLists.txt":"",
"ydb/core/tx/conveyor/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/conveyor/usage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/conveyor/usage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/conveyor/usage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/conveyor/usage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/conveyor/usage/CMakeLists.txt":"",
"ydb/core/tx/conveyor/usage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/coordinator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/coordinator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/coordinator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/coordinator/CMakeLists.txt":"",
"ydb/core/tx/coordinator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/coordinator/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/coordinator/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/coordinator/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/coordinator/protos/CMakeLists.txt":"",
"ydb/core/tx/coordinator/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/coordinator/public/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/coordinator/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/coordinator/public/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/coordinator/public/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/coordinator/public/CMakeLists.txt":"",
"ydb/core/tx/coordinator/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/coordinator/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/coordinator/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/coordinator/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/coordinator/ut/CMakeLists.txt":"",
"ydb/core/tx/coordinator/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/data_events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/data_events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/data_events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/data_events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/data_events/CMakeLists.txt":"",
"ydb/core/tx/data_events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/CMakeLists.txt":"",
"ydb/core/tx/datashard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_background_compaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_build_index/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_build_index/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_change_collector/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_change_exchange/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_common/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_compaction/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_compaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_erase_rows/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_followers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_followers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_followers/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_followers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_init/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_init/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_init/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_init/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_init/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_keys/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_keys/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_keys/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_keys/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_kqp/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_locks/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_locks/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_locks/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_locks/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_minikql/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_minikql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_minstep/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_minstep/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_order/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_order/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_order/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_order/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_order/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_range_ops/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_range_treap/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_read_iterator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_read_table/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_read_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_reassign/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_reassign/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_replication/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_replication/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_replication/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_replication/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_rs/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_rs/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_rs/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_rs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_sequence/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_sequence/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_snapshot/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_stats/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_upload_rows/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/datashard/ut_volatile/CMakeLists.txt":"",
"ydb/core/tx/datashard/ut_volatile/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/long_tx_service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/long_tx_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/long_tx_service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/long_tx_service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/long_tx_service/CMakeLists.txt":"",
"ydb/core/tx/long_tx_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/long_tx_service/public/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/long_tx_service/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/long_tx_service/public/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/long_tx_service/public/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/long_tx_service/public/CMakeLists.txt":"",
"ydb/core/tx/long_tx_service/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt":"",
"ydb/core/tx/long_tx_service/public/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/long_tx_service/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/long_tx_service/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/long_tx_service/ut/CMakeLists.txt":"",
"ydb/core/tx/long_tx_service/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/mediator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/mediator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/mediator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/mediator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/mediator/CMakeLists.txt":"",
"ydb/core/tx/mediator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/program/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/program/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/program/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/program/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/program/CMakeLists.txt":"",
"ydb/core/tx/program/CMakeLists.windows-x86_64.txt":"",
"ydb/core/tx/replication/CMakeLists.txt":"",
+ "ydb/core/tx/replication/controller/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/replication/controller/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/replication/controller/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/replication/controller/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/replication/controller/CMakeLists.txt":"",
"ydb/core/tx/replication/controller/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/replication/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/replication/service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/replication/service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/replication/service/CMakeLists.txt":"",
"ydb/core/tx/replication/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/replication/ydb_proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/replication/ydb_proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/replication/ydb_proxy/CMakeLists.txt":"",
"ydb/core/tx/replication/ydb_proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt":"",
"ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_cache/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_populator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_replica/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt":"",
"ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/scheme_cache/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/scheme_cache/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/scheme_cache/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/scheme_cache/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/scheme_cache/CMakeLists.txt":"",
"ydb/core/tx/scheme_cache/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_backup/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_base/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_column_build/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_compaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_export/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_export/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_external_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_index/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_index_build/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_login/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_login/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_move/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_move/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_olap/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_replication/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_restore/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_sequence/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_serverless/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_ttl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt":"",
"ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceproxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceproxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceproxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/CMakeLists.txt":"",
"ydb/core/tx/sequenceproxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/public/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceproxy/public/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/public/CMakeLists.txt":"",
"ydb/core/tx/sequenceproxy/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceproxy/ut/CMakeLists.txt":"",
"ydb/core/tx/sequenceproxy/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceshard/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceshard/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceshard/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceshard/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceshard/CMakeLists.txt":"",
"ydb/core/tx/sequenceshard/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceshard/public/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceshard/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceshard/public/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceshard/public/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceshard/public/CMakeLists.txt":"",
"ydb/core/tx/sequenceshard/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt":"",
"ydb/core/tx/sequenceshard/public/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sequenceshard/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sequenceshard/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sequenceshard/ut/CMakeLists.txt":"",
"ydb/core/tx/sequenceshard/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sharding/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sharding/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sharding/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sharding/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sharding/CMakeLists.txt":"",
"ydb/core/tx/sharding/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/sharding/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/sharding/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/sharding/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/sharding/ut/CMakeLists.txt":"",
"ydb/core/tx/sharding/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tiering/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tiering/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tiering/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tiering/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tiering/CMakeLists.txt":"",
"ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tiering/rule/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tiering/rule/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tiering/rule/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tiering/rule/CMakeLists.txt":"",
"ydb/core/tx/tiering/rule/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tiering/tier/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tiering/tier/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tiering/tier/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tiering/tier/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tiering/tier/CMakeLists.txt":"",
"ydb/core/tx/tiering/tier/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tiering/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tiering/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tiering/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tiering/ut/CMakeLists.txt":"",
"ydb/core/tx/tiering/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/time_cast/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/time_cast/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/time_cast/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/time_cast/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/time_cast/CMakeLists.txt":"",
"ydb/core/tx/time_cast/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/time_cast/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/time_cast/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/time_cast/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/time_cast/ut/CMakeLists.txt":"",
"ydb/core/tx/time_cast/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tracing/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tracing/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tracing/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tracing/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tracing/CMakeLists.txt":"",
"ydb/core/tx/tracing/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tracing/service/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tracing/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tracing/service/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tracing/service/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tracing/service/CMakeLists.txt":"",
"ydb/core/tx/tracing/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tracing/usage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tracing/usage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tracing/usage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tracing/usage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tracing/usage/CMakeLists.txt":"",
"ydb/core/tx/tracing/usage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_allocator/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_allocator/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_allocator/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_allocator/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_allocator/CMakeLists.txt":"",
"ydb/core/tx/tx_allocator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_allocator/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_allocator/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_allocator/ut/CMakeLists.txt":"",
"ydb/core/tx/tx_allocator/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_allocator_client/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_allocator_client/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_allocator_client/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_allocator_client/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_allocator_client/CMakeLists.txt":"",
"ydb/core/tx/tx_allocator_client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt":"",
"ydb/core/tx/tx_allocator_client/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_proxy/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_proxy/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_proxy/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_proxy/CMakeLists.txt":"",
"ydb/core/tx/tx_proxy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt":"",
"ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt":"",
"ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt":"",
"ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-arm64.txt":"",
"ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.linux-aarch64.txt":"",
"ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.linux-x86_64.txt":"",
"ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt":"",
"ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/util/CMakeLists.darwin-arm64.txt":"",
"ydb/core/util/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/util/CMakeLists.linux-aarch64.txt":"",
"ydb/core/util/CMakeLists.linux-x86_64.txt":"",
"ydb/core/util/CMakeLists.txt":"",
"ydb/core/util/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/util/btree_benchmark/CMakeLists.darwin-arm64.txt":"",
"ydb/core/util/btree_benchmark/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/util/btree_benchmark/CMakeLists.linux-aarch64.txt":"",
"ydb/core/util/btree_benchmark/CMakeLists.linux-x86_64.txt":"",
"ydb/core/util/btree_benchmark/CMakeLists.txt":"",
"ydb/core/util/btree_benchmark/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/util/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/util/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/util/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/util/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/util/ut/CMakeLists.txt":"",
"ydb/core/util/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/viewer/CMakeLists.darwin-arm64.txt":"",
"ydb/core/viewer/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/viewer/CMakeLists.linux-aarch64.txt":"",
"ydb/core/viewer/CMakeLists.linux-x86_64.txt":"",
"ydb/core/viewer/CMakeLists.txt":"",
"ydb/core/viewer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/viewer/json/CMakeLists.darwin-arm64.txt":"",
"ydb/core/viewer/json/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/viewer/json/CMakeLists.linux-aarch64.txt":"",
"ydb/core/viewer/json/CMakeLists.linux-x86_64.txt":"",
"ydb/core/viewer/json/CMakeLists.txt":"",
"ydb/core/viewer/json/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/core/viewer/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/viewer/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/core/viewer/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/core/viewer/protos/CMakeLists.txt":"",
"ydb/core/viewer/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/viewer/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/viewer/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/viewer/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/viewer/ut/CMakeLists.txt":"",
"ydb/core/viewer/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/wrappers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/wrappers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/wrappers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/wrappers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/wrappers/CMakeLists.txt":"",
"ydb/core/wrappers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/wrappers/events/CMakeLists.darwin-arm64.txt":"",
"ydb/core/wrappers/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/wrappers/events/CMakeLists.linux-aarch64.txt":"",
"ydb/core/wrappers/events/CMakeLists.linux-x86_64.txt":"",
"ydb/core/wrappers/events/CMakeLists.txt":"",
+ "ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/wrappers/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/wrappers/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/wrappers/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/wrappers/ut/CMakeLists.txt":"",
"ydb/core/wrappers/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/wrappers/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/core/wrappers/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/wrappers/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/core/wrappers/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/core/wrappers/ut_helpers/CMakeLists.txt":"",
"ydb/core/wrappers/ut_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ydb_convert/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ydb_convert/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ydb_convert/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ydb_convert/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ydb_convert/CMakeLists.txt":"",
"ydb/core/ydb_convert/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ydb_convert/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ydb_convert/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ydb_convert/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ydb_convert/ut/CMakeLists.txt":"",
"ydb/core/ydb_convert/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/ymq/CMakeLists.txt":"",
+ "ydb/core/ymq/actor/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/actor/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/actor/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/actor/CMakeLists.txt":"",
"ydb/core/ymq/actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/actor/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/actor/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/actor/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/actor/ut/CMakeLists.txt":"",
"ydb/core/ymq/actor/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt":"",
"ydb/core/ymq/actor/yc_search_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/base/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/base/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/base/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/base/CMakeLists.txt":"",
"ydb/core/ymq/base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/base/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/base/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/base/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/base/ut/CMakeLists.txt":"",
"ydb/core/ymq/base/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/core/ymq/client/CMakeLists.txt":"",
+ "ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/client/bin/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/client/bin/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/client/bin/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/client/bin/CMakeLists.txt":"",
"ydb/core/ymq/client/bin/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/client/cpp/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/client/cpp/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/client/cpp/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/client/cpp/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/client/cpp/CMakeLists.txt":"",
"ydb/core/ymq/client/cpp/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/http/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/http/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/http/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/http/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/http/CMakeLists.txt":"",
"ydb/core/ymq/http/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/http/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/http/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/http/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/http/ut/CMakeLists.txt":"",
"ydb/core/ymq/http/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/proto/CMakeLists.txt":"",
"ydb/core/ymq/proto/CMakeLists.windows-x86_64.txt":"",
"ydb/core/ymq/queues/CMakeLists.txt":"",
+ "ydb/core/ymq/queues/common/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/queues/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/queues/common/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/queues/common/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/queues/common/CMakeLists.txt":"",
"ydb/core/ymq/queues/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/queues/fifo/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/queues/fifo/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/queues/fifo/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/queues/fifo/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/queues/fifo/CMakeLists.txt":"",
"ydb/core/ymq/queues/fifo/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/queues/std/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/queues/std/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/queues/std/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/queues/std/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/queues/std/CMakeLists.txt":"",
"ydb/core/ymq/queues/std/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/core/ymq/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/ymq/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/core/ymq/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/core/ymq/ut/CMakeLists.txt":"",
"ydb/core/ymq/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt":"",
"ydb/core/yql_testlib/CMakeLists.darwin-x86_64.txt":"",
"ydb/core/yql_testlib/CMakeLists.linux-aarch64.txt":"",
"ydb/core/yql_testlib/CMakeLists.linux-x86_64.txt":"",
"ydb/core/yql_testlib/CMakeLists.txt":"",
"ydb/core/yql_testlib/CMakeLists.windows-x86_64.txt":"",
"ydb/library/CMakeLists.txt":"",
+ "ydb/library/accessor/CMakeLists.darwin-arm64.txt":"",
"ydb/library/accessor/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/accessor/CMakeLists.linux-aarch64.txt":"",
"ydb/library/accessor/CMakeLists.linux-x86_64.txt":"",
"ydb/library/accessor/CMakeLists.txt":"",
"ydb/library/accessor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/aclib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/aclib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/aclib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/aclib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/aclib/CMakeLists.txt":"",
"ydb/library/aclib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/aclib/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/aclib/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/aclib/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/aclib/protos/CMakeLists.txt":"",
"ydb/library/aclib/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/aclib/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/aclib/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/aclib/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/aclib/ut/CMakeLists.txt":"",
"ydb/library/aclib/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_clickhouse/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_clickhouse/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_clickhouse/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_clickhouse/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_clickhouse/CMakeLists.txt":"",
"ydb/library/arrow_clickhouse/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_clickhouse/Columns/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_clickhouse/Columns/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_clickhouse/Columns/CMakeLists.txt":"",
"ydb/library/arrow_clickhouse/Columns/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_clickhouse/Common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_clickhouse/Common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_clickhouse/Common/CMakeLists.txt":"",
"ydb/library/arrow_clickhouse/Common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_clickhouse/DataStreams/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_clickhouse/DataStreams/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt":"",
"ydb/library/arrow_clickhouse/DataStreams/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_clickhouse/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_clickhouse/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_clickhouse/ut/CMakeLists.txt":"",
"ydb/library/arrow_clickhouse/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_kernels/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_kernels/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_kernels/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_kernels/CMakeLists.txt":"",
"ydb/library/arrow_kernels/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/arrow_kernels/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/arrow_kernels/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/arrow_kernels/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/arrow_kernels/ut/CMakeLists.txt":"",
"ydb/library/arrow_kernels/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/backup/CMakeLists.darwin-arm64.txt":"",
"ydb/library/backup/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/backup/CMakeLists.linux-aarch64.txt":"",
"ydb/library/backup/CMakeLists.linux-x86_64.txt":"",
"ydb/library/backup/CMakeLists.txt":"",
"ydb/library/backup/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/backup/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/backup/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/backup/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/backup/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/backup/ut/CMakeLists.txt":"",
"ydb/library/backup/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/binary_json/CMakeLists.darwin-arm64.txt":"",
"ydb/library/binary_json/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/binary_json/CMakeLists.linux-aarch64.txt":"",
"ydb/library/binary_json/CMakeLists.linux-x86_64.txt":"",
"ydb/library/binary_json/CMakeLists.txt":"",
"ydb/library/binary_json/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/binary_json/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/binary_json/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/binary_json/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/binary_json/ut/CMakeLists.txt":"",
"ydb/library/binary_json/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/chunks_limiter/CMakeLists.darwin-arm64.txt":"",
"ydb/library/chunks_limiter/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/chunks_limiter/CMakeLists.linux-aarch64.txt":"",
"ydb/library/chunks_limiter/CMakeLists.linux-x86_64.txt":"",
"ydb/library/chunks_limiter/CMakeLists.txt":"",
"ydb/library/chunks_limiter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/conclusion/CMakeLists.darwin-arm64.txt":"",
"ydb/library/conclusion/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/conclusion/CMakeLists.linux-aarch64.txt":"",
"ydb/library/conclusion/CMakeLists.linux-x86_64.txt":"",
"ydb/library/conclusion/CMakeLists.txt":"",
"ydb/library/conclusion/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/db_pool/CMakeLists.darwin-arm64.txt":"",
"ydb/library/db_pool/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/db_pool/CMakeLists.linux-aarch64.txt":"",
"ydb/library/db_pool/CMakeLists.linux-x86_64.txt":"",
"ydb/library/db_pool/CMakeLists.txt":"",
"ydb/library/db_pool/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/db_pool/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/db_pool/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/db_pool/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/db_pool/protos/CMakeLists.txt":"",
"ydb/library/db_pool/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/dynumber/CMakeLists.darwin-arm64.txt":"",
"ydb/library/dynumber/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/dynumber/CMakeLists.linux-aarch64.txt":"",
"ydb/library/dynumber/CMakeLists.linux-x86_64.txt":"",
"ydb/library/dynumber/CMakeLists.txt":"",
"ydb/library/dynumber/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/dynumber/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/dynumber/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/dynumber/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/dynumber/ut/CMakeLists.txt":"",
"ydb/library/dynumber/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/folder_service/CMakeLists.darwin-arm64.txt":"",
"ydb/library/folder_service/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/folder_service/CMakeLists.linux-aarch64.txt":"",
"ydb/library/folder_service/CMakeLists.linux-x86_64.txt":"",
"ydb/library/folder_service/CMakeLists.txt":"",
"ydb/library/folder_service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/folder_service/mock/CMakeLists.darwin-arm64.txt":"",
"ydb/library/folder_service/mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/folder_service/mock/CMakeLists.linux-aarch64.txt":"",
"ydb/library/folder_service/mock/CMakeLists.linux-x86_64.txt":"",
"ydb/library/folder_service/mock/CMakeLists.txt":"",
"ydb/library/folder_service/mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/folder_service/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/folder_service/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/folder_service/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/folder_service/proto/CMakeLists.txt":"",
"ydb/library/folder_service/proto/CMakeLists.windows-x86_64.txt":"",
"ydb/library/http_proxy/CMakeLists.txt":"",
+ "ydb/library/http_proxy/authorization/CMakeLists.darwin-arm64.txt":"",
"ydb/library/http_proxy/authorization/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/http_proxy/authorization/CMakeLists.linux-aarch64.txt":"",
"ydb/library/http_proxy/authorization/CMakeLists.linux-x86_64.txt":"",
"ydb/library/http_proxy/authorization/CMakeLists.txt":"",
"ydb/library/http_proxy/authorization/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/http_proxy/authorization/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/http_proxy/authorization/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/http_proxy/authorization/ut/CMakeLists.txt":"",
"ydb/library/http_proxy/authorization/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/http_proxy/error/CMakeLists.darwin-arm64.txt":"",
"ydb/library/http_proxy/error/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/http_proxy/error/CMakeLists.linux-aarch64.txt":"",
"ydb/library/http_proxy/error/CMakeLists.linux-x86_64.txt":"",
"ydb/library/http_proxy/error/CMakeLists.txt":"",
"ydb/library/http_proxy/error/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/keys/CMakeLists.darwin-arm64.txt":"",
"ydb/library/keys/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/keys/CMakeLists.linux-aarch64.txt":"",
"ydb/library/keys/CMakeLists.linux-x86_64.txt":"",
"ydb/library/keys/CMakeLists.txt":"",
"ydb/library/keys/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/keys/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/keys/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/keys/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/keys/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/keys/ut/CMakeLists.txt":"",
"ydb/library/keys/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/logger/CMakeLists.darwin-arm64.txt":"",
"ydb/library/logger/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/logger/CMakeLists.linux-aarch64.txt":"",
"ydb/library/logger/CMakeLists.linux-x86_64.txt":"",
"ydb/library/logger/CMakeLists.txt":"",
"ydb/library/logger/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/login/CMakeLists.darwin-arm64.txt":"",
"ydb/library/login/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/login/CMakeLists.linux-aarch64.txt":"",
"ydb/library/login/CMakeLists.linux-x86_64.txt":"",
"ydb/library/login/CMakeLists.txt":"",
"ydb/library/login/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/login/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/login/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/login/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/login/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/login/protos/CMakeLists.txt":"",
"ydb/library/login/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/login/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/login/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/login/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/login/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/login/ut/CMakeLists.txt":"",
"ydb/library/login/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/mkql_proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/mkql_proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/mkql_proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/mkql_proto/CMakeLists.txt":"",
"ydb/library/mkql_proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/mkql_proto/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/mkql_proto/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/mkql_proto/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/mkql_proto/protos/CMakeLists.txt":"",
"ydb/library/mkql_proto/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/mkql_proto/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/mkql_proto/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/mkql_proto/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/mkql_proto/ut/CMakeLists.txt":"",
"ydb/library/mkql_proto/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/mkql_proto/ut/helpers/CMakeLists.txt":"",
"ydb/library/mkql_proto/ut/helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/naming_conventions/CMakeLists.darwin-arm64.txt":"",
"ydb/library/naming_conventions/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/naming_conventions/CMakeLists.linux-aarch64.txt":"",
"ydb/library/naming_conventions/CMakeLists.linux-x86_64.txt":"",
"ydb/library/naming_conventions/CMakeLists.txt":"",
"ydb/library/naming_conventions/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/naming_conventions/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/naming_conventions/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/naming_conventions/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/naming_conventions/ut/CMakeLists.txt":"",
"ydb/library/naming_conventions/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt":"",
"ydb/library/pdisk_io/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/pdisk_io/CMakeLists.linux-aarch64.txt":"",
"ydb/library/pdisk_io/CMakeLists.linux-x86_64.txt":"",
"ydb/library/pdisk_io/CMakeLists.txt":"",
"ydb/library/pdisk_io/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/pdisk_io/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/pdisk_io/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/pdisk_io/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/pdisk_io/protos/CMakeLists.txt":"",
"ydb/library/pdisk_io/protos/CMakeLists.windows-x86_64.txt":"",
"ydb/library/persqueue/CMakeLists.txt":"",
+ "ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/counter_time_keeper/CMakeLists.txt":"",
"ydb/library/persqueue/counter_time_keeper/CMakeLists.windows-x86_64.txt":"",
"ydb/library/persqueue/deprecated/CMakeLists.txt":"",
+ "ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt":"",
"ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/obfuscate/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/obfuscate/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/obfuscate/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/obfuscate/CMakeLists.txt":"",
"ydb/library/persqueue/obfuscate/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/persqueue/tests/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/tests/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/tests/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/tests/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/tests/CMakeLists.txt":"",
"ydb/library/persqueue/tests/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/topic_parser/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/topic_parser/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/topic_parser/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/topic_parser/CMakeLists.txt":"",
"ydb/library/persqueue/topic_parser/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/topic_parser/ut/CMakeLists.txt":"",
"ydb/library/persqueue/topic_parser/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt":"",
"ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/persqueue/topic_parser_public/CMakeLists.linux-aarch64.txt":"",
"ydb/library/persqueue/topic_parser_public/CMakeLists.linux-x86_64.txt":"",
"ydb/library/persqueue/topic_parser_public/CMakeLists.txt":"",
"ydb/library/persqueue/topic_parser_public/CMakeLists.windows-x86_64.txt":"",
"ydb/library/pretty_types_print/CMakeLists.txt":"",
+ "ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/pretty_types_print/protobuf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/pretty_types_print/protobuf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/pretty_types_print/protobuf/CMakeLists.txt":"",
"ydb/library/pretty_types_print/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/pretty_types_print/wilson/CMakeLists.darwin-arm64.txt":"",
"ydb/library/pretty_types_print/wilson/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/pretty_types_print/wilson/CMakeLists.linux-aarch64.txt":"",
"ydb/library/pretty_types_print/wilson/CMakeLists.linux-x86_64.txt":"",
"ydb/library/pretty_types_print/wilson/CMakeLists.txt":"",
"ydb/library/pretty_types_print/wilson/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/protobuf_printer/CMakeLists.darwin-arm64.txt":"",
"ydb/library/protobuf_printer/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/protobuf_printer/CMakeLists.linux-aarch64.txt":"",
"ydb/library/protobuf_printer/CMakeLists.linux-x86_64.txt":"",
"ydb/library/protobuf_printer/CMakeLists.txt":"",
"ydb/library/protobuf_printer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/protobuf_printer/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/protobuf_printer/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/protobuf_printer/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/protobuf_printer/ut/CMakeLists.txt":"",
"ydb/library/protobuf_printer/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/query_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/library/query_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/query_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/library/query_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/library/query_actor/CMakeLists.txt":"",
"ydb/library/query_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/query_actor/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/query_actor/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/query_actor/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/query_actor/ut/CMakeLists.txt":"",
"ydb/library/query_actor/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/rewrapper/CMakeLists.darwin-arm64.txt":"",
"ydb/library/rewrapper/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/rewrapper/CMakeLists.linux-aarch64.txt":"",
"ydb/library/rewrapper/CMakeLists.linux-x86_64.txt":"",
@@ -6644,778 +7913,931 @@
"ydb/library/rewrapper/hyperscan/CMakeLists.linux-x86_64.txt":"",
"ydb/library/rewrapper/hyperscan/CMakeLists.txt":"",
"ydb/library/rewrapper/hyperscan/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/rewrapper/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/rewrapper/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/rewrapper/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/rewrapper/proto/CMakeLists.txt":"",
"ydb/library/rewrapper/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/rewrapper/re2/CMakeLists.darwin-arm64.txt":"",
"ydb/library/rewrapper/re2/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/rewrapper/re2/CMakeLists.linux-aarch64.txt":"",
"ydb/library/rewrapper/re2/CMakeLists.linux-x86_64.txt":"",
"ydb/library/rewrapper/re2/CMakeLists.txt":"",
"ydb/library/rewrapper/re2/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/CMakeLists.txt":"",
"ydb/library/schlab/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/mon/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/mon/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/mon/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/mon/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/mon/CMakeLists.txt":"",
"ydb/library/schlab/mon/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/mon/static/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/mon/static/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/mon/static/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/mon/static/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/mon/static/CMakeLists.txt":"",
"ydb/library/schlab/mon/static/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/mon/static/css/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/mon/static/css/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/mon/static/css/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/mon/static/css/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/mon/static/css/CMakeLists.txt":"",
"ydb/library/schlab/mon/static/css/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/mon/static/js/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/mon/static/js/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/mon/static/js/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/mon/static/js/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/mon/static/js/CMakeLists.txt":"",
"ydb/library/schlab/mon/static/js/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/mon/test/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/mon/test/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/mon/test/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/mon/test/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/mon/test/CMakeLists.txt":"",
"ydb/library/schlab/mon/test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/probes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/probes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/probes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/probes/CMakeLists.txt":"",
"ydb/library/schlab/probes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/protos/CMakeLists.txt":"",
"ydb/library/schlab/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/schemu/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/schemu/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/schemu/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/schemu/CMakeLists.txt":"",
"ydb/library/schlab/schemu/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/schine/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/schine/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/schine/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/schine/CMakeLists.txt":"",
"ydb/library/schlab/schine/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/schoot/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/schoot/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/schoot/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/schoot/CMakeLists.txt":"",
"ydb/library/schlab/schoot/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/schlab/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/schlab/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/schlab/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/schlab/ut/CMakeLists.txt":"",
"ydb/library/schlab/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/security/CMakeLists.darwin-arm64.txt":"",
"ydb/library/security/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/security/CMakeLists.linux-aarch64.txt":"",
"ydb/library/security/CMakeLists.linux-x86_64.txt":"",
"ydb/library/security/CMakeLists.txt":"",
"ydb/library/security/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/security/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/security/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/security/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/security/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/security/ut/CMakeLists.txt":"",
"ydb/library/security/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/services/CMakeLists.darwin-arm64.txt":"",
"ydb/library/services/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/services/CMakeLists.linux-aarch64.txt":"",
"ydb/library/services/CMakeLists.linux-x86_64.txt":"",
"ydb/library/services/CMakeLists.txt":"",
"ydb/library/services/CMakeLists.windows-x86_64.txt":"",
"ydb/library/testlib/CMakeLists.txt":"",
+ "ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt":"",
"ydb/library/testlib/service_mocks/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/testlib/service_mocks/CMakeLists.linux-aarch64.txt":"",
"ydb/library/testlib/service_mocks/CMakeLists.linux-x86_64.txt":"",
"ydb/library/testlib/service_mocks/CMakeLists.txt":"",
"ydb/library/testlib/service_mocks/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-arm64.txt":"",
"ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.linux-aarch64.txt":"",
"ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.linux-x86_64.txt":"",
"ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt":"",
"ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/testlib/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/testlib/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/testlib/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/testlib/ut/CMakeLists.txt":"",
"ydb/library/testlib/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt":"",
"ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt":"",
"ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt":"",
"ydb/library/time_series_vec/CMakeLists.txt":"",
"ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/time_series_vec/ut/CMakeLists.txt":"",
"ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/uuid/CMakeLists.darwin-arm64.txt":"",
"ydb/library/uuid/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/uuid/CMakeLists.linux-aarch64.txt":"",
"ydb/library/uuid/CMakeLists.linux-x86_64.txt":"",
"ydb/library/uuid/CMakeLists.txt":"",
"ydb/library/uuid/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt":"",
"ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt":"",
"ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt":"",
"ydb/library/wilson_ids/CMakeLists.txt":"",
"ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/workload/CMakeLists.darwin-arm64.txt":"",
"ydb/library/workload/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/workload/CMakeLists.linux-aarch64.txt":"",
"ydb/library/workload/CMakeLists.linux-x86_64.txt":"",
"ydb/library/workload/CMakeLists.txt":"",
"ydb/library/workload/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/CMakeLists.txt":"",
"ydb/library/yaml_config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/public/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/public/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/public/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/public/CMakeLists.txt":"",
"ydb/library/yaml_config/public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/static_validator/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/static_validator/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/CMakeLists.txt":"",
"ydb/library/yaml_config/static_validator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/ut/CMakeLists.txt":"",
"ydb/library/yaml_config/static_validator/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt":"",
"ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/ut/CMakeLists.txt":"",
"ydb/library/yaml_config/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/validator/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/validator/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/validator/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/validator/CMakeLists.txt":"",
"ydb/library/yaml_config/validator/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/CMakeLists.txt":"",
+ "ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt":"",
"ydb/library/yaml_config/validator/ut/validator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt":"",
"ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt":"",
"ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.windows-x86_64.txt":"",
"ydb/library/ycloud/CMakeLists.txt":"",
+ "ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt":"",
"ydb/library/ycloud/api/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/ycloud/api/CMakeLists.linux-aarch64.txt":"",
"ydb/library/ycloud/api/CMakeLists.linux-x86_64.txt":"",
"ydb/library/ycloud/api/CMakeLists.txt":"",
"ydb/library/ycloud/api/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/library/ycloud/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/ycloud/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/library/ycloud/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/library/ycloud/impl/CMakeLists.txt":"",
"ydb/library/ycloud/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/ycloud/impl/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/ycloud/impl/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/ycloud/impl/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/ycloud/impl/ut/CMakeLists.txt":"",
"ydb/library/ycloud/impl/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt":"",
"ydb/library/ydb_issue/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/ydb_issue/CMakeLists.linux-aarch64.txt":"",
"ydb/library/ydb_issue/CMakeLists.linux-x86_64.txt":"",
"ydb/library/ydb_issue/CMakeLists.txt":"",
"ydb/library/ydb_issue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/ydb_issue/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/ydb_issue/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/ydb_issue/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/ydb_issue/proto/CMakeLists.txt":"",
"ydb/library/ydb_issue/proto/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/CMakeLists.txt":"",
+ "ydb/library/yql/ast/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/ast/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/ast/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/ast/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/ast/CMakeLists.txt":"",
"ydb/library/yql/ast/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/ast/serialize/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/ast/serialize/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/ast/serialize/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/ast/serialize/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/ast/serialize/CMakeLists.txt":"",
"ydb/library/yql/ast/serialize/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/ast/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/ast/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/ast/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/ast/ut/CMakeLists.txt":"",
"ydb/library/yql/ast/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/CMakeLists.txt":"",
"ydb/library/yql/core/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/CMakeLists.txt":"",
+ "ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt":"",
"ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/request/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/arrow_kernels/request/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt":"",
"ydb/library/yql/core/arrow_kernels/request/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/cbo/CMakeLists.txt":"",
"ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/cbo/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/cbo/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/cbo/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/cbo/ut/CMakeLists.txt":"",
"ydb/library/yql/core/cbo/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/common_opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/common_opt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/common_opt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/common_opt/CMakeLists.txt":"",
"ydb/library/yql/core/common_opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/credentials/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/credentials/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/credentials/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/credentials/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/credentials/CMakeLists.txt":"",
"ydb/library/yql/core/credentials/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/core/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt":"",
"ydb/library/yql/core/expr_nodes_gen/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/extract_predicate/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/extract_predicate/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/extract_predicate/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/extract_predicate/CMakeLists.txt":"",
"ydb/library/yql/core/extract_predicate/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt":"",
"ydb/library/yql/core/extract_predicate/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/facade/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/facade/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/facade/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/facade/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/facade/CMakeLists.txt":"",
"ydb/library/yql/core/facade/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/defs/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/defs/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/defs/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/defs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/download/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/download/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/download/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/download/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/download/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/download/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/http_download/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/http_download/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/http_download/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/http_download/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/proto/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/file_storage/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/file_storage/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/file_storage/ut/CMakeLists.txt":"",
"ydb/library/yql/core/file_storage/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/issue/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/issue/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/issue/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/issue/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/issue/CMakeLists.txt":"",
"ydb/library/yql/core/issue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/issue/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/issue/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/issue/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/issue/protos/CMakeLists.txt":"",
"ydb/library/yql/core/issue/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/issue/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/issue/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/issue/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/issue/ut/CMakeLists.txt":"",
"ydb/library/yql/core/issue/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/peephole_opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/peephole_opt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/peephole_opt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/peephole_opt/CMakeLists.txt":"",
"ydb/library/yql/core/peephole_opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/progress_merger/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/progress_merger/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/progress_merger/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/progress_merger/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/progress_merger/CMakeLists.txt":"",
"ydb/library/yql/core/progress_merger/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/services/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/services/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/services/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/services/CMakeLists.txt":"",
"ydb/library/yql/core/services/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/services/mounts/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/services/mounts/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/services/mounts/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/services/mounts/CMakeLists.txt":"",
"ydb/library/yql/core/services/mounts/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/spilling/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/spilling/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/spilling/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/spilling/CMakeLists.txt":"",
"ydb/library/yql/core/spilling/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/spilling/storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/spilling/storage/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/CMakeLists.txt":"",
"ydb/library/yql/core/spilling/storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt":"",
"ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt":"",
"ydb/library/yql/core/spilling/storage/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/spilling/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/spilling/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/spilling/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/spilling/ut/CMakeLists.txt":"",
"ydb/library/yql/core/spilling/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/sql_types/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/sql_types/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/sql_types/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/sql_types/CMakeLists.txt":"",
"ydb/library/yql/core/sql_types/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/sql_types/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/sql_types/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/sql_types/ut/CMakeLists.txt":"",
"ydb/library/yql/core/sql_types/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/type_ann/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/type_ann/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/type_ann/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/type_ann/CMakeLists.txt":"",
"ydb/library/yql/core/type_ann/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/url_lister/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/url_lister/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/url_lister/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/url_lister/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/url_lister/CMakeLists.txt":"",
"ydb/library/yql/core/url_lister/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/url_lister/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/url_lister/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/url_lister/interface/CMakeLists.txt":"",
"ydb/library/yql/core/url_lister/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/url_preprocessing/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/url_preprocessing/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/url_preprocessing/CMakeLists.txt":"",
"ydb/library/yql/core/url_preprocessing/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/url_preprocessing/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/url_preprocessing/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt":"",
"ydb/library/yql/core/url_preprocessing/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/user_data/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/user_data/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/user_data/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/user_data/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/user_data/CMakeLists.txt":"",
"ydb/library/yql/core/user_data/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/ut/CMakeLists.txt":"",
"ydb/library/yql/core/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/core/ut_common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/core/ut_common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/core/ut_common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/core/ut_common/CMakeLists.txt":"",
"ydb/library/yql/core/ut_common/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/dq/CMakeLists.txt":"",
+ "ydb/library/yql/dq/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/compute/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/compute/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/protos/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/spilling/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/spilling/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/spilling/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/spilling/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/spilling/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/actors/task_runner/CMakeLists.txt":"",
"ydb/library/yql/dq/actors/task_runner/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/common/CMakeLists.txt":"",
"ydb/library/yql/dq/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/comp_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/comp_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/comp_nodes/CMakeLists.txt":"",
"ydb/library/yql/dq/comp_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/dq/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/integration/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/integration/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/integration/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/integration/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/integration/CMakeLists.txt":"",
"ydb/library/yql/dq/integration/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/integration/transform/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/integration/transform/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/integration/transform/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/integration/transform/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/integration/transform/CMakeLists.txt":"",
"ydb/library/yql/dq/integration/transform/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/opt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/opt/CMakeLists.txt":"",
"ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/opt/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/opt/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/opt/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/opt/ut/CMakeLists.txt":"",
"ydb/library/yql/dq/opt/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/proto/CMakeLists.txt":"",
"ydb/library/yql/dq/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/runtime/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/runtime/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/runtime/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/runtime/CMakeLists.txt":"",
"ydb/library/yql/dq/runtime/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/runtime/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/runtime/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/runtime/ut/CMakeLists.txt":"",
"ydb/library/yql/dq/runtime/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/state/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/state/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/state/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/state/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/state/CMakeLists.txt":"",
"ydb/library/yql/dq/state/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/state/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/state/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/state/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/state/ut/CMakeLists.txt":"",
"ydb/library/yql/dq/state/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/tasks/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/tasks/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/tasks/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/tasks/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/tasks/CMakeLists.txt":"",
"ydb/library/yql/dq/tasks/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/transform/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/transform/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/transform/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/transform/CMakeLists.txt":"",
"ydb/library/yql/dq/transform/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/dq/type_ann/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/dq/type_ann/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/dq/type_ann/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/dq/type_ann/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/dq/type_ann/CMakeLists.txt":"",
"ydb/library/yql/dq/type_ann/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/CMakeLists.txt":"",
"ydb/library/yql/minikql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/arrow/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/arrow/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/arrow/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/arrow/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/arrow/CMakeLists.txt":"",
"ydb/library/yql/minikql/arrow/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/arrow/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/arrow/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/minikql/benchmark/CMakeLists.txt":"",
+ "ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt":"",
"ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/codegen/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/codegen/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/codegen/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/codegen/CMakeLists.txt":"",
"ydb/library/yql/minikql/codegen/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/codegen/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/codegen/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/codegen/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/codegen/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/CMakeLists.txt":"",
+ "ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/minikql/computation/CMakeLists.txt":"",
+ "ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/computation/llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/computation/llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/computation/no_llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/computation/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/computation/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/computation/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/computation/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/datetime/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/datetime/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/datetime/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/datetime/CMakeLists.txt":"",
"ydb/library/yql/minikql/datetime/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/dom/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/dom/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/dom/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/dom/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/dom/CMakeLists.txt":"",
"ydb/library/yql/minikql/dom/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/dom/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/dom/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/dom/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/invoke_builtins/CMakeLists.txt":"",
+ "ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt":"",
"ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/jsonpath/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/CMakeLists.txt":"",
"ydb/library/yql/minikql/jsonpath/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt":"",
"ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/jsonpath/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/minikql/perf/CMakeLists.txt":"",
+ "ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/alloc/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/alloc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/block_groupby/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/mprefetch/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/mt_param/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/packer/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/packer/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/packer/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/packer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/param/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/param/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/param/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/param/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/param/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/perf/presort/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/perf/presort/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/perf/presort/CMakeLists.txt":"",
"ydb/library/yql/minikql/perf/presort/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt":"",
"ydb/library/yql/minikql/protobuf_udf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/minikql/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/minikql/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/minikql/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/minikql/ut/CMakeLists.txt":"",
"ydb/library/yql/minikql/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/parser/CMakeLists.txt":"",
+ "ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/lexer_common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/lexer_common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/lexer_common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/lexer_common/CMakeLists.txt":"",
"ydb/library/yql/parser/lexer_common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt":"",
"ydb/library/yql/parser/lexer_common/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/pg_catalog/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/pg_catalog/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/pg_catalog/CMakeLists.txt":"",
"ydb/library/yql/parser/pg_catalog/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt":"",
"ydb/library/yql/parser/pg_catalog/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/CMakeLists.txt":"",
"ydb/library/yql/parser/pg_wrapper/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt":"",
"ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt":"",
"ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/CMakeLists.txt":"",
+ "ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt":"",
"ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/protos/CMakeLists.linux-x86_64.txt":"",
@@ -7423,373 +8845,447 @@
"ydb/library/yql/protos/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/CMakeLists.txt":"",
"ydb/library/yql/providers/clickhouse/CMakeLists.txt":"",
+ "ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt":"",
"ydb/library/yql/providers/clickhouse/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/clickhouse/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/clickhouse/provider/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/common/CMakeLists.txt":"",
+ "ydb/library/yql/providers/common/activation/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/activation/CMakeLists.txt":"",
"ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/arrow/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/arrow/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/arrow/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow/CMakeLists.txt":"",
"ydb/library/yql/providers/common/arrow/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/arrow/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt":"",
"ydb/library/yql/providers/common/arrow/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow_resolve/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/arrow_resolve/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt":"",
"ydb/library/yql/providers/common/arrow_resolve/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/codec/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/codec/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/codec/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/codec/CMakeLists.txt":"",
"ydb/library/yql/providers/common/codec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/codec/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/common/codec/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/common/comp_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/config/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/config/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/config/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/config/CMakeLists.txt":"",
"ydb/library/yql/providers/common/config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt":"",
"ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/dq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/dq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/dq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/dq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/dq/CMakeLists.txt":"",
"ydb/library/yql/providers/common/dq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/gateway/CMakeLists.txt":"",
"ydb/library/yql/providers/common/gateway/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/http_gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/CMakeLists.txt":"",
"ydb/library/yql/providers/common/http_gateway/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt":"",
"ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/metrics/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/metrics/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/metrics/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/metrics/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/metrics/CMakeLists.txt":"",
"ydb/library/yql/providers/common/metrics/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt":"",
"ydb/library/yql/providers/common/metrics/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/mkql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/mkql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/mkql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/mkql/CMakeLists.txt":"",
"ydb/library/yql/providers/common/mkql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/common/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/common/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/pushdown/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/pushdown/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/pushdown/CMakeLists.txt":"",
"ydb/library/yql/providers/common/pushdown/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/schema/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/schema/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/schema/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/CMakeLists.txt":"",
"ydb/library/yql/providers/common/schema/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/expr/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/schema/expr/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/expr/CMakeLists.txt":"",
"ydb/library/yql/providers/common/schema/expr/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/mkql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/schema/mkql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt":"",
"ydb/library/yql/providers/common/schema/mkql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/parser/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/schema/parser/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/parser/CMakeLists.txt":"",
"ydb/library/yql/providers/common/schema/parser/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/skiff/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/schema/skiff/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt":"",
"ydb/library/yql/providers/common/schema/skiff/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/structured_token/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/structured_token/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/structured_token/CMakeLists.txt":"",
"ydb/library/yql/providers/common/structured_token/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/common/token_accessor/CMakeLists.txt":"",
+ "ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/token_accessor/client/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/token_accessor/client/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt":"",
"ydb/library/yql/providers/common/token_accessor/client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt":"",
"ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/transform/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/transform/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/transform/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/transform/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/transform/CMakeLists.txt":"",
"ydb/library/yql/providers/common/transform/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt":"",
"ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/common/ut_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/config/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/config/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/config/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/config/CMakeLists.txt":"",
"ydb/library/yql/providers/config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/events/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/actors/events/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/events/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/actors/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/actors/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/actors/yt/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/dq/api/CMakeLists.txt":"",
+ "ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/api/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/api/protos/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/api/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/common/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/config/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/config/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/config/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/config/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/counters/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/counters/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/counters/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/counters/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/counters/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/counters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt":"",
+ "ydb/library/yql/providers/dq/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/interface/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/interface/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/local_gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/local_gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt":"",
+ "ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/metrics/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/metrics/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/metrics/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/metrics/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/mkql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/mkql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/mkql/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/mkql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/opt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/opt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/opt/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/planner/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/planner/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/planner/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/planner/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/planner/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/provider/exec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/provider/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/runtime/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/runtime/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/runtime/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/runtime/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/scheduler/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/scheduler/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/scheduler/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/scheduler/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/service/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/service/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/service/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/service/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/stats_collector/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/stats_collector/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt":"",
+ "ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/task_runner/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/task_runner/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/worker_manager/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt":"",
"ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/function/CMakeLists.txt":"",
+ "ydb/library/yql/providers/function/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/function/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/function/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/function/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/function/common/CMakeLists.txt":"",
"ydb/library/yql/providers/function/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/function/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/function/gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/function/gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/function/gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/function/gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/function/gateway/CMakeLists.txt":"",
"ydb/library/yql/providers/function/gateway/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/function/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/function/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/function/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/function/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/function/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/function/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/function/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/function/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/function/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/function/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/function/provider/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/generic/CMakeLists.txt":"",
+ "ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/actors/CMakeLists.linux-x86_64.txt":"",
@@ -7797,814 +9293,974 @@
"ydb/library/yql/providers/generic/actors/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/api/CMakeLists.txt":"",
+ "ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/api/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/provider/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/generic/provider/ut/CMakeLists.txt":"",
+ "ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt":"",
"ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/pq/CMakeLists.txt":"",
+ "ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/async_io/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/async_io/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/async_io/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/async_io/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/cm_client/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/cm_client/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/cm_client/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/cm_client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/common/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/expr_nodes/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/pq/gateway/CMakeLists.txt":"",
+ "ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/gateway/native/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/gateway/native/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/gateway/native/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/pq/task_meta/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/pq/task_meta/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/pq/task_meta/CMakeLists.txt":"",
"ydb/library/yql/providers/pq/task_meta/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/result/CMakeLists.txt":"",
+ "ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/result/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/result/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/result/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/result/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/result/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/result/provider/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/s3/CMakeLists.txt":"",
+ "ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/actors/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/common/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/compressors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/compressors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/compressors/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/compressors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/object_listers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/object_listers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/object_listers/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/object_listers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/path_generator/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/path_generator/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/path_generator/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/path_generator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt":"",
+ "ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/provider/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/range_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/s3/serializations/CMakeLists.txt":"",
"ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/solomon/CMakeLists.txt":"",
+ "ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/solomon/async_io/CMakeLists.txt":"",
"ydb/library/yql/providers/solomon/async_io/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/solomon/gateway/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/solomon/gateway/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/solomon/gateway/CMakeLists.txt":"",
"ydb/library/yql/providers/solomon/gateway/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/solomon/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/solomon/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/solomon/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/solomon/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/solomon/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/solomon/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/solomon/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/solomon/provider/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/stat/CMakeLists.txt":"",
+ "ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/stat/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/stat/uploader/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/stat/uploader/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/stat/uploader/CMakeLists.txt":"",
"ydb/library/yql/providers/stat/uploader/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/ydb/CMakeLists.txt":"",
+ "ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/ydb/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/ydb/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/ydb/actors/CMakeLists.txt":"",
"ydb/library/yql/providers/ydb/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/ydb/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/ydb/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/ydb/proto/CMakeLists.txt":"",
"ydb/library/yql/providers/ydb/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/ydb/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/ydb/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/ydb/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/ydb/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/codec/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/codec/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/codec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/codec/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/common/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt":"",
+ "ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/expr_nodes/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/CMakeLists.txt":"",
+ "ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/gateway/file/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/gateway/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/gateway/native/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/profile/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/gateway/profile/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/gateway/profile/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/job/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/job/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/job/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/job/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/job/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/CMakeLists.txt":"",
+ "ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/hash/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/log/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/log/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/schema/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/schema/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/schema/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/skiff/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/skiff/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/skiff/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/mkql_dq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/mkql_dq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/mkql_dq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/opt/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/opt/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/opt/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/opt/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/opt/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/opt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/provider/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/provider/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/provider/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/provider/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/provider/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt":"",
"ydb/library/yql/providers/yt/provider/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/public/CMakeLists.txt":"",
+ "ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/decimal/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/decimal/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/decimal/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/decimal/CMakeLists.txt":"",
"ydb/library/yql/public/decimal/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/decimal/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/decimal/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/decimal/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/decimal/ut/CMakeLists.txt":"",
"ydb/library/yql/public/decimal/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/embedded/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/embedded/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/embedded/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/embedded/CMakeLists.txt":"",
"ydb/library/yql/public/embedded/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/fastcheck/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/fastcheck/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/fastcheck/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/fastcheck/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/fastcheck/CMakeLists.txt":"",
"ydb/library/yql/public/fastcheck/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/fastcheck/ut/CMakeLists.txt":"",
"ydb/library/yql/public/fastcheck/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/issue/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/issue/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/issue/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/issue/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/issue/CMakeLists.txt":"",
"ydb/library/yql/public/issue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/issue/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/issue/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/issue/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/issue/protos/CMakeLists.txt":"",
"ydb/library/yql/public/issue/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/issue/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/issue/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/issue/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/issue/ut/CMakeLists.txt":"",
"ydb/library/yql/public/issue/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/common/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/common/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/CMakeLists.txt":"",
+ "ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/CMakeLists.txt":"",
+ "ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/ut/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt":"",
"ydb/library/yql/public/purecalc/ut/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/types/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/types/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/types/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/types/CMakeLists.txt":"",
"ydb/library/yql/public/types/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/CMakeLists.txt":"",
"ydb/library/yql/public/udf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/arrow/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/arrow/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/arrow/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/arrow/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/arrow/CMakeLists.txt":"",
"ydb/library/yql/public/udf/arrow/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/public/udf/service/CMakeLists.txt":"",
+ "ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt":"",
"ydb/library/yql/public/udf/service/exception_policy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/service/stub/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/service/stub/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/service/stub/CMakeLists.txt":"",
"ydb/library/yql/public/udf/service/stub/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt":"",
"ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/support/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/support/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/support/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/support/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/support/CMakeLists.txt":"",
"ydb/library/yql/public/udf/support/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/tz/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/tz/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/tz/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/tz/CMakeLists.txt":"",
"ydb/library/yql/public/udf/tz/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/tz/ut/CMakeLists.txt":"",
"ydb/library/yql/public/udf/tz/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/public/udf/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/public/udf/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/public/udf/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/public/udf/ut/CMakeLists.txt":"",
"ydb/library/yql/public/udf/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/CMakeLists.txt":"",
"ydb/library/yql/sql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/pg/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/pg/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/pg/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/pg/CMakeLists.txt":"",
"ydb/library/yql/sql/pg/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/pg/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/pg/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/pg/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/pg/ut/CMakeLists.txt":"",
"ydb/library/yql/sql/pg/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/pg_dummy/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/pg_dummy/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/pg_dummy/CMakeLists.txt":"",
"ydb/library/yql/sql/pg_dummy/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/settings/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/settings/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/settings/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/settings/CMakeLists.txt":"",
"ydb/library/yql/sql/settings/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v0/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v0/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v0/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v0/CMakeLists.txt":"",
"ydb/library/yql/sql/v0/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v0/lexer/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v0/lexer/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v0/lexer/CMakeLists.txt":"",
"ydb/library/yql/sql/v0/lexer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v0/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v0/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v0/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v0/ut/CMakeLists.txt":"",
"ydb/library/yql/sql/v0/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/format/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/format/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/format/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/format/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/format/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/format/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/format/ut/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/format/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/lexer/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/lexer/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/lexer/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/lexer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/perf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/perf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/perf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/perf/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/perf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/proto_parser/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/sql/v1/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/sql/v1/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/sql/v1/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/sql/v1/ut/CMakeLists.txt":"",
"ydb/library/yql/sql/v1/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/tools/CMakeLists.txt":"",
+ "ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/astdiff/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/astdiff/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/astdiff/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/astdiff/CMakeLists.txt":"",
"ydb/library/yql/tools/astdiff/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/dq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/dq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/dq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/dq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/dq/CMakeLists.txt":"",
"ydb/library/yql/tools/dq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt":"",
"ydb/library/yql/tools/dq/dq_cli/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/dq/service_node/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/dq/service_node/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/dq/service_node/CMakeLists.txt":"",
+ "ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/dq/worker_node/CMakeLists.txt":"",
+ "ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/dqrun/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/dqrun/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/dqrun/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/dqrun/CMakeLists.txt":"",
"ydb/library/yql/tools/dqrun/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/mrjob/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/mrjob/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/mrjob/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/mrjob/CMakeLists.txt":"",
"ydb/library/yql/tools/mrjob/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/pgrun/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/pgrun/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/pgrun/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/pgrun/CMakeLists.txt":"",
"ydb/library/yql/tools/pgrun/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/sql2yql/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/sql2yql/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/sql2yql/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/sql2yql/CMakeLists.txt":"",
"ydb/library/yql/tools/sql2yql/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/sql_formatter/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/sql_formatter/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/sql_formatter/CMakeLists.txt":"",
"ydb/library/yql/tools/sql_formatter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt":"",
"ydb/library/yql/tools/udf_dep_stub/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/udf_probe/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/udf_probe/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/udf_probe/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/udf_probe/CMakeLists.txt":"",
"ydb/library/yql/tools/udf_probe/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/udf_resolver/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/udf_resolver/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/udf_resolver/CMakeLists.txt":"",
"ydb/library/yql/tools/udf_resolver/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/yqlrun/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/yqlrun/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/yqlrun/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/yqlrun/CMakeLists.txt":"",
"ydb/library/yql/tools/yqlrun/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/tools/yqlrun/http/CMakeLists.txt":"",
"ydb/library/yql/tools/yqlrun/http/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/udfs/CMakeLists.txt":"",
+ "ydb/library/yql/udfs/common/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/udfs/common/clickhouse/CMakeLists.txt":"",
+ "ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/compress_base/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/compress_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/datetime/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/datetime/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/datetime/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/datetime/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/datetime2/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/datetime2/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/digest/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/digest/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/digest/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/digest/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/digest/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/digest/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/file/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/file/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/file/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/file/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/file/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/histogram/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/histogram/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/histogram/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/histogram/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-x86_64.txt":"",
@@ -8614,303 +10270,363 @@
"ydb/library/yql/udfs/common/hyperscan/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/hyperscan/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/hyperscan/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/ip_base/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/ip_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/json/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/json/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/json/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/json/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/json/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/json/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/json2/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/json2/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/json2/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/json2/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/json2/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/math/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/math/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/math/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/math/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/math/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/math/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/math/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/math/lib/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/math/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/pire/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/pire/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/pire/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/pire/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/pire/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/pire/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/protobuf/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/protobuf/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/re2/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/re2/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/re2/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/re2/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/re2/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/set/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/set/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/set/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/set/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/set/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/set/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/stat/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/stat/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/stat/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/stat/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/static/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/stat/static/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/stat/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/streaming/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/streaming/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/streaming/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/streaming/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/string/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/string/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/string/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/string/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/string/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/top/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/top/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/top/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/top/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/top/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/top/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/topfreq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/static/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/topfreq/static/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/topfreq/static/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/unicode_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/url_base/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/url_base/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/url_base/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/url_base/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/url_base/lib/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/url_base/lib/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/url_base/lib/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/common/yson2/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/common/yson2/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/common/yson2/CMakeLists.txt":"",
"ydb/library/yql/udfs/common/yson2/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/udfs/examples/CMakeLists.txt":"",
+ "ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/callables/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/callables/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/callables/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/callables/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/dicts/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/dicts/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/dummylog/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/lists/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/lists/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/lists/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/lists/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/structs/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/structs/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/structs/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/structs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/tagged/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/tagged/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt":"",
"ydb/library/yql/udfs/examples/type_inspection/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/udfs/logs/CMakeLists.txt":"",
+ "ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/logs/dsv/CMakeLists.txt":"",
"ydb/library/yql/udfs/logs/dsv/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/udfs/test/CMakeLists.txt":"",
+ "ydb/library/yql/udfs/test/simple/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/test/simple/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/test/simple/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/test/simple/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/test/simple/CMakeLists.txt":"",
"ydb/library/yql/udfs/test/simple/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/udfs/test/test_import/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/udfs/test/test_import/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/udfs/test/test_import/CMakeLists.txt":"",
"ydb/library/yql/udfs/test/test_import/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/CMakeLists.txt":"",
"ydb/library/yql/utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/actor_log/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/actor_log/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/actor_log/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/actor_log/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/actor_log/CMakeLists.txt":"",
"ydb/library/yql/utils/actor_log/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/actor_system/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/actor_system/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/actor_system/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/actor_system/CMakeLists.txt":"",
"ydb/library/yql/utils/actor_system/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/actors/CMakeLists.txt":"",
"ydb/library/yql/utils/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/actors/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/actors/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/actors/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/actors/ut/CMakeLists.txt":"",
+ "ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/backtrace/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/backtrace/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/CMakeLists.txt":"",
"ydb/library/yql/utils/backtrace/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt":"",
"ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/backtrace/ut/CMakeLists.txt":"",
"ydb/library/yql/utils/backtrace/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/bindings/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/bindings/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/bindings/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/bindings/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/bindings/CMakeLists.txt":"",
"ydb/library/yql/utils/bindings/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/bindings/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/bindings/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/bindings/ut/CMakeLists.txt":"",
"ydb/library/yql/utils/bindings/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/failure_injector/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/failure_injector/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/failure_injector/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/failure_injector/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/failure_injector/CMakeLists.txt":"",
"ydb/library/yql/utils/failure_injector/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt":"",
+ "ydb/library/yql/utils/fetch/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/fetch/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/fetch/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/fetch/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/fetch/CMakeLists.txt":"",
"ydb/library/yql/utils/fetch/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/log/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/log/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/log/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/log/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/log/CMakeLists.txt":"",
"ydb/library/yql/utils/log/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/log/proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/log/proto/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/log/proto/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/log/proto/CMakeLists.txt":"",
"ydb/library/yql/utils/log/proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/log/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/log/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/log/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/log/ut/CMakeLists.txt":"",
"ydb/library/yql/utils/log/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/simd/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/simd/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/simd/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/simd/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/simd/CMakeLists.txt":"",
"ydb/library/yql/utils/simd/CMakeLists.windows-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/CMakeLists.txt":"",
+ "ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt":"",
"ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt":"",
"ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt":"",
"ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/simd/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/simd/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/simd/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/simd/ut/CMakeLists.txt":"",
"ydb/library/yql/utils/simd/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/sys/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/sys/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/sys/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/sys/CMakeLists.txt":"",
"ydb/library/yql/utils/sys/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/test_http_server/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/test_http_server/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/test_http_server/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/test_http_server/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/test_http_server/CMakeLists.txt":"",
"ydb/library/yql/utils/test_http_server/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/threading/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/threading/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/threading/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/threading/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/threading/CMakeLists.txt":"",
"ydb/library/yql/utils/threading/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yql/utils/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yql/utils/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yql/utils/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/library/yql/utils/ut/CMakeLists.txt":"",
"ydb/library/yql/utils/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt":"",
"ydb/library/yverify_stream/CMakeLists.darwin-x86_64.txt":"",
"ydb/library/yverify_stream/CMakeLists.linux-aarch64.txt":"",
"ydb/library/yverify_stream/CMakeLists.linux-x86_64.txt":"",
@@ -8921,240 +10637,287 @@
"ydb/public/api/client/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/compute/CMakeLists.txt":"",
+ "ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/compute/inner/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_private/iam/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_private/iam/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_private/iam/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_private/iam/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/iam/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_private/operation/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_private/operation/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_private/operation/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_private/operation/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/operation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/resourcemanager/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt":"",
"ydb/public/api/client/yc_private/servicecontrol/CMakeLists.windows-x86_64.txt":"",
"ydb/public/api/client/yc_public/CMakeLists.txt":"",
+ "ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_public/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_public/common/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_public/common/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_public/common/CMakeLists.txt":"",
"ydb/public/api/client/yc_public/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_public/events/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_public/events/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_public/events/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_public/events/CMakeLists.txt":"",
"ydb/public/api/client/yc_public/events/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_public/iam/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_public/iam/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_public/iam/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_public/iam/CMakeLists.txt":"",
"ydb/public/api/client/yc_public/iam/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/client/yc_public/logging/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/client/yc_public/logging/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/client/yc_public/logging/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/client/yc_public/logging/CMakeLists.txt":"",
"ydb/public/api/client/yc_public/logging/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/grpc/CMakeLists.txt":"",
"ydb/public/api/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/grpc/draft/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/grpc/draft/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/grpc/draft/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/grpc/draft/CMakeLists.txt":"",
"ydb/public/api/grpc/draft/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/protos/CMakeLists.txt":"",
"ydb/public/api/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/protos/annotations/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/protos/annotations/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/protos/annotations/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/protos/annotations/CMakeLists.txt":"",
"ydb/public/api/protos/annotations/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/api/protos/out/CMakeLists.darwin-arm64.txt":"",
"ydb/public/api/protos/out/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/api/protos/out/CMakeLists.linux-aarch64.txt":"",
"ydb/public/api/protos/out/CMakeLists.linux-x86_64.txt":"",
"ydb/public/api/protos/out/CMakeLists.txt":"",
"ydb/public/api/protos/out/CMakeLists.windows-x86_64.txt":"",
"ydb/public/lib/CMakeLists.txt":"",
+ "ydb/public/lib/base/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/base/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/base/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/base/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/base/CMakeLists.txt":"",
"ydb/public/lib/base/CMakeLists.windows-x86_64.txt":"",
"ydb/public/lib/deprecated/CMakeLists.txt":"",
+ "ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/deprecated/client/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/deprecated/client/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/deprecated/client/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/deprecated/client/CMakeLists.txt":"",
"ydb/public/lib/deprecated/client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/deprecated/kicli/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/deprecated/kicli/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/deprecated/kicli/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/deprecated/kicli/CMakeLists.txt":"",
"ydb/public/lib/deprecated/kicli/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt":"",
"ydb/public/lib/deprecated/kicli/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/experimental/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/experimental/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/experimental/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/experimental/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/experimental/CMakeLists.txt":"",
"ydb/public/lib/experimental/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/fq/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/fq/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/fq/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/fq/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/fq/CMakeLists.txt":"",
"ydb/public/lib/fq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/idx_test/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/idx_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/idx_test/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/idx_test/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/idx_test/CMakeLists.txt":"",
"ydb/public/lib/idx_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/idx_test/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/idx_test/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/idx_test/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/idx_test/ut/CMakeLists.txt":"",
"ydb/public/lib/idx_test/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/json_value/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/json_value/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/json_value/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/json_value/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/json_value/CMakeLists.txt":"",
"ydb/public/lib/json_value/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/json_value/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/json_value/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/json_value/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/json_value/ut/CMakeLists.txt":"",
"ydb/public/lib/json_value/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/jwt/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/jwt/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/jwt/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/jwt/CMakeLists.txt":"",
"ydb/public/lib/jwt/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/operation_id/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/operation_id/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/operation_id/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/operation_id/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/operation_id/CMakeLists.txt":"",
"ydb/public/lib/operation_id/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/operation_id/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/operation_id/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/operation_id/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/operation_id/protos/CMakeLists.txt":"",
"ydb/public/lib/operation_id/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/operation_id/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/operation_id/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/operation_id/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/operation_id/ut/CMakeLists.txt":"",
"ydb/public/lib/operation_id/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/scheme_types/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/scheme_types/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/scheme_types/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/scheme_types/CMakeLists.txt":"",
"ydb/public/lib/scheme_types/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/stat_visualization/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/stat_visualization/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/stat_visualization/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/stat_visualization/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/stat_visualization/CMakeLists.txt":"",
"ydb/public/lib/stat_visualization/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ut_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ut_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ut_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ut_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ut_helpers/CMakeLists.txt":"",
"ydb/public/lib/ut_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/validation/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/validation/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/validation/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/validation/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/validation/CMakeLists.txt":"",
"ydb/public/lib/validation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/validation/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/validation/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/validation/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/validation/ut/CMakeLists.txt":"",
"ydb/public/lib/validation/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/validation/ut/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/validation/ut/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/validation/ut/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/validation/ut/protos/CMakeLists.txt":"",
"ydb/public/lib/validation/ut/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/value/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/value/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/value/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/value/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/value/CMakeLists.txt":"",
"ydb/public/lib/value/CMakeLists.windows-x86_64.txt":"",
"ydb/public/lib/ydb_cli/CMakeLists.txt":"",
+ "ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/common/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/common/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/dump/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/dump/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/dump/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/dump/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/dump/util/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/dump/util/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/dump/util/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/import/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/import/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/import/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/import/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/import/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/import/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/topic/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/topic/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/topic/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/topic/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt":"",
"ydb/public/lib/ydb_cli/topic/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/lib/yson_value/CMakeLists.darwin-arm64.txt":"",
"ydb/public/lib/yson_value/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/lib/yson_value/CMakeLists.linux-aarch64.txt":"",
"ydb/public/lib/yson_value/CMakeLists.linux-x86_64.txt":"",
@@ -9163,715 +10926,856 @@
"ydb/public/sdk/CMakeLists.txt":"",
"ydb/public/sdk/cpp/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/draft/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/draft/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/draft/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/draft/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/draft/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/helpers/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/iam/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/iam/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/common/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/iam/common/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/iam/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/iam/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam_private/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/iam_private/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/iam_private/CMakeLists.windows-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/resources/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/resources/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/resources/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/resources/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_export/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_export/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_export/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_import/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_import/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_import/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt":"",
"ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/basic_example/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/pagination/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.windows-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/CMakeLists.txt":"",
+ "ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.windows-x86_64.txt":"",
+ "ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt":"",
"ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-aarch64.txt":"",
"ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-x86_64.txt":"",
"ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt":"",
"ydb/public/sdk/cpp/examples/ttl/CMakeLists.windows-x86_64.txt":"",
"ydb/services/CMakeLists.txt":"",
+ "ydb/services/auth/CMakeLists.darwin-arm64.txt":"",
"ydb/services/auth/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/auth/CMakeLists.linux-aarch64.txt":"",
"ydb/services/auth/CMakeLists.linux-x86_64.txt":"",
"ydb/services/auth/CMakeLists.txt":"",
"ydb/services/auth/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/bg_tasks/CMakeLists.darwin-arm64.txt":"",
"ydb/services/bg_tasks/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/bg_tasks/CMakeLists.linux-aarch64.txt":"",
"ydb/services/bg_tasks/CMakeLists.linux-x86_64.txt":"",
"ydb/services/bg_tasks/CMakeLists.txt":"",
"ydb/services/bg_tasks/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/bg_tasks/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/services/bg_tasks/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/bg_tasks/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/services/bg_tasks/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/services/bg_tasks/abstract/CMakeLists.txt":"",
"ydb/services/bg_tasks/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/bg_tasks/ds_table/CMakeLists.darwin-arm64.txt":"",
"ydb/services/bg_tasks/ds_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/bg_tasks/ds_table/CMakeLists.linux-aarch64.txt":"",
"ydb/services/bg_tasks/ds_table/CMakeLists.linux-x86_64.txt":"",
"ydb/services/bg_tasks/ds_table/CMakeLists.txt":"",
"ydb/services/bg_tasks/ds_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/services/bg_tasks/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/bg_tasks/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/services/bg_tasks/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/services/bg_tasks/protos/CMakeLists.txt":"",
"ydb/services/bg_tasks/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/bg_tasks/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/bg_tasks/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/bg_tasks/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/bg_tasks/ut/CMakeLists.txt":"",
"ydb/services/bg_tasks/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/cms/CMakeLists.darwin-arm64.txt":"",
"ydb/services/cms/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/cms/CMakeLists.linux-aarch64.txt":"",
"ydb/services/cms/CMakeLists.linux-x86_64.txt":"",
"ydb/services/cms/CMakeLists.txt":"",
"ydb/services/cms/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/cms/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/cms/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/cms/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/cms/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/cms/ut/CMakeLists.txt":"",
"ydb/services/cms/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/datastreams/CMakeLists.darwin-arm64.txt":"",
"ydb/services/datastreams/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/datastreams/CMakeLists.linux-aarch64.txt":"",
"ydb/services/datastreams/CMakeLists.linux-x86_64.txt":"",
"ydb/services/datastreams/CMakeLists.txt":"",
"ydb/services/datastreams/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/datastreams/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/datastreams/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/datastreams/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/datastreams/ut/CMakeLists.txt":"",
"ydb/services/datastreams/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/services/deprecated/CMakeLists.txt":"",
+ "ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-arm64.txt":"",
"ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/CMakeLists.linux-aarch64.txt":"",
"ydb/services/deprecated/persqueue_v0/CMakeLists.linux-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/CMakeLists.txt":"",
"ydb/services/deprecated/persqueue_v0/CMakeLists.windows-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/CMakeLists.txt":"",
+ "ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-aarch64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt":"",
"ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-aarch64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-x86_64.txt":"",
"ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt":"",
"ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/discovery/CMakeLists.darwin-arm64.txt":"",
"ydb/services/discovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/discovery/CMakeLists.linux-aarch64.txt":"",
"ydb/services/discovery/CMakeLists.linux-x86_64.txt":"",
"ydb/services/discovery/CMakeLists.txt":"",
"ydb/services/discovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/dynamic_config/CMakeLists.darwin-arm64.txt":"",
"ydb/services/dynamic_config/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/dynamic_config/CMakeLists.linux-aarch64.txt":"",
"ydb/services/dynamic_config/CMakeLists.linux-x86_64.txt":"",
"ydb/services/dynamic_config/CMakeLists.txt":"",
"ydb/services/dynamic_config/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/dynamic_config/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/dynamic_config/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/dynamic_config/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/dynamic_config/ut/CMakeLists.txt":"",
"ydb/services/dynamic_config/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/CMakeLists.txt":"",
"ydb/services/ext_index/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/common/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/common/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/common/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/common/CMakeLists.txt":"",
"ydb/services/ext_index/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/metadata/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/metadata/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/metadata/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/metadata/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/metadata/CMakeLists.txt":"",
"ydb/services/ext_index/metadata/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/metadata/extractor/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/metadata/extractor/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/metadata/extractor/CMakeLists.txt":"",
"ydb/services/ext_index/metadata/extractor/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/service/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/service/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/service/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/service/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/service/CMakeLists.txt":"",
"ydb/services/ext_index/service/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ext_index/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ext_index/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ext_index/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ext_index/ut/CMakeLists.txt":"",
"ydb/services/ext_index/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/fq/CMakeLists.darwin-arm64.txt":"",
"ydb/services/fq/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/fq/CMakeLists.linux-aarch64.txt":"",
"ydb/services/fq/CMakeLists.linux-x86_64.txt":"",
"ydb/services/fq/CMakeLists.txt":"",
"ydb/services/fq/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt":"",
"ydb/services/fq/ut_integration/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/fq/ut_integration/CMakeLists.linux-aarch64.txt":"",
"ydb/services/fq/ut_integration/CMakeLists.linux-x86_64.txt":"",
"ydb/services/fq/ut_integration/CMakeLists.txt":"",
"ydb/services/fq/ut_integration/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/kesus/CMakeLists.darwin-arm64.txt":"",
"ydb/services/kesus/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/kesus/CMakeLists.linux-aarch64.txt":"",
"ydb/services/kesus/CMakeLists.linux-x86_64.txt":"",
"ydb/services/kesus/CMakeLists.txt":"",
"ydb/services/kesus/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/keyvalue/CMakeLists.darwin-arm64.txt":"",
"ydb/services/keyvalue/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/keyvalue/CMakeLists.linux-aarch64.txt":"",
"ydb/services/keyvalue/CMakeLists.linux-x86_64.txt":"",
"ydb/services/keyvalue/CMakeLists.txt":"",
"ydb/services/keyvalue/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/keyvalue/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/keyvalue/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/keyvalue/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/keyvalue/ut/CMakeLists.txt":"",
"ydb/services/keyvalue/ut/CMakeLists.windows-x86_64.txt":"",
"ydb/services/lib/CMakeLists.txt":"",
+ "ydb/services/lib/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/services/lib/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/lib/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/services/lib/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/services/lib/actors/CMakeLists.txt":"",
"ydb/services/lib/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/lib/sharding/CMakeLists.darwin-arm64.txt":"",
"ydb/services/lib/sharding/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/lib/sharding/CMakeLists.linux-aarch64.txt":"",
"ydb/services/lib/sharding/CMakeLists.linux-x86_64.txt":"",
"ydb/services/lib/sharding/CMakeLists.txt":"",
"ydb/services/lib/sharding/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/local_discovery/CMakeLists.darwin-arm64.txt":"",
"ydb/services/local_discovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/local_discovery/CMakeLists.linux-aarch64.txt":"",
"ydb/services/local_discovery/CMakeLists.linux-x86_64.txt":"",
"ydb/services/local_discovery/CMakeLists.txt":"",
"ydb/services/local_discovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/maintenance/CMakeLists.darwin-arm64.txt":"",
"ydb/services/maintenance/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/maintenance/CMakeLists.linux-aarch64.txt":"",
"ydb/services/maintenance/CMakeLists.linux-x86_64.txt":"",
"ydb/services/maintenance/CMakeLists.txt":"",
"ydb/services/maintenance/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/CMakeLists.txt":"",
"ydb/services/metadata/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/abstract/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/abstract/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/abstract/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/abstract/CMakeLists.txt":"",
"ydb/services/metadata/abstract/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/common/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/common/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/common/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/common/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/common/CMakeLists.txt":"",
"ydb/services/metadata/common/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/ds_table/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/ds_table/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/ds_table/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/ds_table/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/ds_table/CMakeLists.txt":"",
"ydb/services/metadata/ds_table/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/initializer/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/initializer/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/initializer/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/initializer/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/initializer/CMakeLists.txt":"",
"ydb/services/metadata/initializer/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/initializer/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/initializer/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/initializer/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/initializer/ut/CMakeLists.txt":"",
"ydb/services/metadata/initializer/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/manager/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/manager/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/manager/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/manager/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/manager/CMakeLists.txt":"",
"ydb/services/metadata/manager/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/request/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/request/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/request/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/request/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/request/CMakeLists.txt":"",
"ydb/services/metadata/request/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/secret/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/secret/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/secret/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/secret/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/secret/CMakeLists.txt":"",
"ydb/services/metadata/secret/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/metadata/secret/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/metadata/secret/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/metadata/secret/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/metadata/secret/ut/CMakeLists.txt":"",
"ydb/services/metadata/secret/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/monitoring/CMakeLists.darwin-arm64.txt":"",
"ydb/services/monitoring/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/monitoring/CMakeLists.linux-aarch64.txt":"",
"ydb/services/monitoring/CMakeLists.linux-x86_64.txt":"",
"ydb/services/monitoring/CMakeLists.txt":"",
"ydb/services/monitoring/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_cluster_discovery/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/CMakeLists.txt":"",
"ydb/services/persqueue_cluster_discovery/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt":"",
"ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt":"",
"ydb/services/persqueue_cluster_discovery/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_v1/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_v1/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_v1/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_v1/CMakeLists.txt":"",
"ydb/services/persqueue_v1/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_v1/actors/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_v1/actors/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_v1/actors/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_v1/actors/CMakeLists.txt":"",
"ydb/services/persqueue_v1/actors/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_v1/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_v1/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/CMakeLists.txt":"",
"ydb/services/persqueue_v1/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt":"",
"ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt":"",
"ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/rate_limiter/CMakeLists.darwin-arm64.txt":"",
"ydb/services/rate_limiter/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/rate_limiter/CMakeLists.linux-aarch64.txt":"",
"ydb/services/rate_limiter/CMakeLists.linux-x86_64.txt":"",
"ydb/services/rate_limiter/CMakeLists.txt":"",
"ydb/services/rate_limiter/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/rate_limiter/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/rate_limiter/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/rate_limiter/ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/rate_limiter/ut/CMakeLists.txt":"",
"ydb/services/rate_limiter/ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ydb/CMakeLists.txt":"",
"ydb/services/ydb/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt":"",
"ydb/services/ydb/sdk_credprovider_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt":"",
"ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt":"",
"ydb/services/ydb/sdk_sessions_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/table_split_ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/table_split_ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/table_split_ut/CMakeLists.linux-x86_64.txt":"",
"ydb/services/ydb/table_split_ut/CMakeLists.txt":"",
"ydb/services/ydb/table_split_ut/CMakeLists.windows-x86_64.txt":"",
+ "ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt":"",
"ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt":"",
"ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt":"",
"ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt":"",
@@ -9880,32 +11784,38 @@
"ydb/tests/CMakeLists.txt":"",
"ydb/tests/functional/CMakeLists.txt":"",
"ydb/tests/functional/kqp/CMakeLists.txt":"",
+ "ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt":"",
"ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt":"",
"ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt":"",
+ "ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-x86_64.txt":"",
"ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt":"",
"ydb/tests/functional/kqp/kqp_query_session/CMakeLists.windows-x86_64.txt":"",
"ydb/tests/tools/CMakeLists.txt":"",
+ "ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/tools/idx_test/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/tools/idx_test/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/tools/idx_test/CMakeLists.linux-x86_64.txt":"",
"ydb/tests/tools/idx_test/CMakeLists.txt":"",
"ydb/tests/tools/idx_test/CMakeLists.windows-x86_64.txt":"",
+ "ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/tools/kqprun/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/tools/kqprun/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/tools/kqprun/CMakeLists.linux-x86_64.txt":"",
"ydb/tests/tools/kqprun/CMakeLists.txt":"",
"ydb/tests/tools/kqprun/CMakeLists.windows-x86_64.txt":"",
+ "ydb/tests/tools/kqprun/src/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/tools/kqprun/src/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/tools/kqprun/src/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/tools/kqprun/src/CMakeLists.linux-x86_64.txt":"",
"ydb/tests/tools/kqprun/src/CMakeLists.txt":"",
"ydb/tests/tools/kqprun/src/CMakeLists.windows-x86_64.txt":"",
+ "ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt":"",
"ydb/tests/tools/pq_read/CMakeLists.darwin-x86_64.txt":"",
"ydb/tests/tools/pq_read/CMakeLists.linux-aarch64.txt":"",
"ydb/tests/tools/pq_read/CMakeLists.linux-x86_64.txt":"",
@@ -9914,83 +11824,99 @@
"yt/CMakeLists.txt":"",
"yt/cpp/CMakeLists.txt":"",
"yt/cpp/mapreduce/CMakeLists.txt":"",
+ "yt/cpp/mapreduce/client/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/client/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/client/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/client/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/client/CMakeLists.txt":"",
"yt/cpp/mapreduce/client/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/common/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/common/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/common/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/common/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/common/CMakeLists.txt":"",
"yt/cpp/mapreduce/common/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/http/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/http/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/http/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/http/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/http/CMakeLists.txt":"",
"yt/cpp/mapreduce/http/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/interface/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/interface/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/interface/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/interface/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/interface/CMakeLists.txt":"",
"yt/cpp/mapreduce/interface/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/interface/logging/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/interface/logging/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/interface/logging/CMakeLists.txt":"",
"yt/cpp/mapreduce/interface/logging/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/io/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/io/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/io/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/io/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/io/CMakeLists.txt":"",
"yt/cpp/mapreduce/io/CMakeLists.windows-x86_64.txt":"",
"yt/cpp/mapreduce/library/CMakeLists.txt":"",
+ "yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/library/table_schema/CMakeLists.txt":"",
"yt/cpp/mapreduce/library/table_schema/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt":"",
"yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/raw_client/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/raw_client/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/raw_client/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/raw_client/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/raw_client/CMakeLists.txt":"",
"yt/cpp/mapreduce/raw_client/CMakeLists.windows-x86_64.txt":"",
+ "yt/cpp/mapreduce/skiff/CMakeLists.darwin-arm64.txt":"",
"yt/cpp/mapreduce/skiff/CMakeLists.darwin-x86_64.txt":"",
"yt/cpp/mapreduce/skiff/CMakeLists.linux-aarch64.txt":"",
"yt/cpp/mapreduce/skiff/CMakeLists.linux-x86_64.txt":"",
"yt/cpp/mapreduce/skiff/CMakeLists.txt":"",
"yt/cpp/mapreduce/skiff/CMakeLists.windows-x86_64.txt":"",
"yt/yql/CMakeLists.txt":"",
+ "yt/yql/plugin/CMakeLists.darwin-arm64.txt":"",
"yt/yql/plugin/CMakeLists.darwin-x86_64.txt":"",
"yt/yql/plugin/CMakeLists.linux-aarch64.txt":"",
"yt/yql/plugin/CMakeLists.linux-x86_64.txt":"",
"yt/yql/plugin/CMakeLists.txt":"",
"yt/yql/plugin/CMakeLists.windows-x86_64.txt":"",
+ "yt/yql/plugin/dynamic/CMakeLists.darwin-arm64.txt":"",
"yt/yql/plugin/dynamic/CMakeLists.darwin-x86_64.txt":"",
"yt/yql/plugin/dynamic/CMakeLists.linux-aarch64.txt":"",
"yt/yql/plugin/dynamic/CMakeLists.linux-x86_64.txt":"",
"yt/yql/plugin/dynamic/CMakeLists.txt":"",
"yt/yql/plugin/dynamic/CMakeLists.windows-x86_64.txt":"",
+ "yt/yql/plugin/native/CMakeLists.darwin-arm64.txt":"",
"yt/yql/plugin/native/CMakeLists.darwin-x86_64.txt":"",
"yt/yql/plugin/native/CMakeLists.linux-aarch64.txt":"",
"yt/yql/plugin/native/CMakeLists.linux-x86_64.txt":"",
"yt/yql/plugin/native/CMakeLists.txt":"",
"yt/yql/plugin/native/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/CMakeLists.darwin-arm64.txt":"",
"yt/yt/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/CMakeLists.linux-aarch64.txt":"",
"yt/yt/CMakeLists.linux-x86_64.txt":"",
"yt/yt/CMakeLists.txt":"",
"yt/yt/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/build/CMakeLists.darwin-arm64.txt":"",
"yt/yt/build/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/build/CMakeLists.linux-aarch64.txt":"",
"yt/yt/build/CMakeLists.linux-x86_64.txt":"",
"yt/yt/build/CMakeLists.txt":"",
"yt/yt/build/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/client/CMakeLists.darwin-arm64.txt":"",
"yt/yt/client/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/client/CMakeLists.linux-aarch64.txt":"",
"yt/yt/client/CMakeLists.linux-x86_64.txt":"",
@@ -10001,48 +11927,57 @@
"yt/yt/client/arrow/fbs/CMakeLists.linux-aarch64.txt":"",
"yt/yt/client/arrow/fbs/CMakeLists.linux-x86_64.txt":"",
"yt/yt/client/arrow/fbs/CMakeLists.txt":"",
+ "yt/yt/client/query_tracker_client/CMakeLists.darwin-arm64.txt":"",
"yt/yt/client/query_tracker_client/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/client/query_tracker_client/CMakeLists.linux-aarch64.txt":"",
"yt/yt/client/query_tracker_client/CMakeLists.linux-x86_64.txt":"",
"yt/yt/client/query_tracker_client/CMakeLists.txt":"",
+ "yt/yt/core/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/CMakeLists.txt":"",
"yt/yt/core/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/core/http/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/http/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/http/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/http/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/http/CMakeLists.txt":"",
"yt/yt/core/http/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/core/https/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/https/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/https/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/https/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/https/CMakeLists.txt":"",
"yt/yt/core/https/CMakeLists.windows-x86_64.txt":"",
"yt/yt/core/misc/CMakeLists.txt":"",
+ "yt/yt/core/misc/isa_crc64/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/misc/isa_crc64/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/misc/isa_crc64/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/misc/isa_crc64/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/misc/isa_crc64/CMakeLists.txt":"",
"yt/yt/core/misc/isa_crc64/CMakeLists.windows-x86_64.txt":"",
"yt/yt/core/rpc/CMakeLists.txt":"",
+ "yt/yt/core/rpc/grpc/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/rpc/grpc/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/rpc/grpc/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/rpc/grpc/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/rpc/grpc/CMakeLists.txt":"",
"yt/yt/core/rpc/grpc/CMakeLists.windows-x86_64.txt":"",
"yt/yt/core/service_discovery/CMakeLists.txt":"",
+ "yt/yt/core/service_discovery/yp/CMakeLists.darwin-arm64.txt":"",
"yt/yt/core/service_discovery/yp/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/core/service_discovery/yp/CMakeLists.linux-aarch64.txt":"",
"yt/yt/core/service_discovery/yp/CMakeLists.linux-x86_64.txt":"",
"yt/yt/core/service_discovery/yp/CMakeLists.txt":"",
"yt/yt/core/service_discovery/yp/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/CMakeLists.txt":"",
"yt/yt/library/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/auth/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/auth/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/auth/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/auth/CMakeLists.linux-x86_64.txt":"",
@@ -10053,19 +11988,23 @@
"yt/yt/library/backtrace_introspector/http/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/backtrace_introspector/http/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/backtrace_introspector/http/CMakeLists.txt":"",
+ "yt/yt/library/decimal/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/decimal/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/decimal/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/decimal/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/decimal/CMakeLists.txt":"",
+ "yt/yt/library/erasure/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/erasure/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/erasure/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/erasure/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/erasure/CMakeLists.txt":"",
+ "yt/yt/library/monitoring/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/monitoring/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/monitoring/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/monitoring/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/monitoring/CMakeLists.txt":"",
"yt/yt/library/monitoring/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/numeric/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/numeric/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/numeric/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/numeric/CMakeLists.linux-x86_64.txt":"",
@@ -10073,74 +12012,89 @@
"yt/yt/library/process/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/process/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/process/CMakeLists.txt":"",
+ "yt/yt/library/profiling/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/profiling/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/profiling/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/profiling/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/profiling/CMakeLists.txt":"",
"yt/yt/library/profiling/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/profiling/perf/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/profiling/perf/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/profiling/perf/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/profiling/perf/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/profiling/perf/CMakeLists.txt":"",
"yt/yt/library/profiling/perf/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/profiling/resource_tracker/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/profiling/resource_tracker/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/profiling/resource_tracker/CMakeLists.txt":"",
"yt/yt/library/profiling/resource_tracker/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/profiling/solomon/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/profiling/solomon/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/profiling/solomon/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/profiling/solomon/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/profiling/solomon/CMakeLists.txt":"",
"yt/yt/library/profiling/solomon/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/profiling/tcmalloc/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/profiling/tcmalloc/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/profiling/tcmalloc/CMakeLists.txt":"",
"yt/yt/library/profiling/tcmalloc/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/program/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/program/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/program/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/program/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/program/CMakeLists.txt":"",
"yt/yt/library/program/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/quantile_digest/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/quantile_digest/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/quantile_digest/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/quantile_digest/CMakeLists.txt":"",
+ "yt/yt/library/re2/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/re2/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/re2/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/re2/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/re2/CMakeLists.txt":"",
+ "yt/yt/library/syncmap/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/syncmap/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/syncmap/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/syncmap/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/syncmap/CMakeLists.txt":"",
"yt/yt/library/syncmap/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/tracing/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/tracing/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/tracing/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/tracing/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/tracing/CMakeLists.txt":"",
"yt/yt/library/tracing/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/tracing/jaeger/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/tracing/jaeger/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/tracing/jaeger/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/tracing/jaeger/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/tracing/jaeger/CMakeLists.txt":"",
"yt/yt/library/tracing/jaeger/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/tvm/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/tvm/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/tvm/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/tvm/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/tvm/CMakeLists.txt":"",
"yt/yt/library/tvm/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/undumpable/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/undumpable/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/undumpable/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/undumpable/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/undumpable/CMakeLists.txt":"",
"yt/yt/library/undumpable/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/ytprof/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/ytprof/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/ytprof/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/ytprof/CMakeLists.txt":"",
"yt/yt/library/ytprof/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt/library/ytprof/api/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/ytprof/api/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/ytprof/api/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/ytprof/api/CMakeLists.linux-x86_64.txt":"",
@@ -10149,26 +12103,31 @@
"yt/yt/library/ytprof/http/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/ytprof/http/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/ytprof/http/CMakeLists.txt":"",
+ "yt/yt/library/ytprof/proto/CMakeLists.darwin-arm64.txt":"",
"yt/yt/library/ytprof/proto/CMakeLists.darwin-x86_64.txt":"",
"yt/yt/library/ytprof/proto/CMakeLists.linux-aarch64.txt":"",
"yt/yt/library/ytprof/proto/CMakeLists.linux-x86_64.txt":"",
"yt/yt/library/ytprof/proto/CMakeLists.txt":"",
"yt/yt/library/ytprof/proto/CMakeLists.windows-x86_64.txt":"",
"yt/yt_proto/CMakeLists.txt":"",
+ "yt/yt_proto/yt/CMakeLists.darwin-arm64.txt":"",
"yt/yt_proto/yt/CMakeLists.darwin-x86_64.txt":"",
"yt/yt_proto/yt/CMakeLists.linux-aarch64.txt":"",
"yt/yt_proto/yt/CMakeLists.linux-x86_64.txt":"",
"yt/yt_proto/yt/CMakeLists.txt":"",
"yt/yt_proto/yt/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt":"",
"yt/yt_proto/yt/client/CMakeLists.darwin-x86_64.txt":"",
"yt/yt_proto/yt/client/CMakeLists.linux-aarch64.txt":"",
"yt/yt_proto/yt/client/CMakeLists.linux-x86_64.txt":"",
"yt/yt_proto/yt/client/CMakeLists.txt":"",
+ "yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt":"",
"yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt":"",
"yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt":"",
"yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt":"",
"yt/yt_proto/yt/core/CMakeLists.txt":"",
"yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt":"",
+ "yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt":"",
"yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt":"",
"yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt":"",
"yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt":"",
diff --git a/CMakeLists.darwin-arm64.txt b/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..075d57df50
--- /dev/null
+++ b/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(tools)
+add_subdirectory(contrib)
+add_subdirectory(library)
+add_subdirectory(util)
+add_subdirectory(yt)
+add_subdirectory(certs)
+add_subdirectory(ydb)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e1cdb522c0..7ee2ab2b04 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,6 +59,8 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
endif()
diff --git a/certs/CMakeLists.darwin-arm64.txt b/certs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ab67fa907
--- /dev/null
+++ b/certs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(certs INTERFACE)
+target_link_libraries(certs INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+)
+
+add_global_library_for(certs.global certs)
+target_link_libraries(certs.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+)
+target_sources(certs.global PRIVATE
+ ${CMAKE_BINARY_DIR}/certs/b03c08f91a00a60ac9d7daef45f3075a.cpp
+)
+resources(certs.global
+ ${CMAKE_BINARY_DIR}/certs/b03c08f91a00a60ac9d7daef45f3075a.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/certs/cacert.pem
+ KEYS
+ /builtin/cacert
+)
diff --git a/certs/CMakeLists.txt b/certs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/certs/CMakeLists.txt
+++ b/certs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/cmake/conan-profiles/macos.arm64.profile b/cmake/conan-profiles/macos.arm64.profile
new file mode 100644
index 0000000000..52ba46ab97
--- /dev/null
+++ b/cmake/conan-profiles/macos.arm64.profile
@@ -0,0 +1,11 @@
+include(default)
+[settings]
+arch=armv8
+build_type=Release
+compiler=clang
+compiler.libcxx=libc++
+compiler.version=14
+compiler.cppstd=20
+os=Macos
+[options]
+[env]
diff --git a/cmake/global_vars.cmake b/cmake/global_vars.cmake
index 8da5a30dbe..ebe4053b03 100644
--- a/cmake/global_vars.cmake
+++ b/cmake/global_vars.cmake
@@ -26,6 +26,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_
set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/)
endif()
+if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(BISON_FLAGS -v)
+ set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs)
+ set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/)
+endif()
+
if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
set(YASM_FLAGS -f win64 -D WIN64 -D _x86_64_ -D_YASM_)
set(BISON_FLAGS -v)
diff --git a/contrib/go/_std_1.21/src/internal/cpu/cpu_arm64_darwin.go b/contrib/go/_std_1.21/src/internal/cpu/cpu_arm64_darwin.go
new file mode 100644
index 0000000000..60beadddbb
--- /dev/null
+++ b/contrib/go/_std_1.21/src/internal/cpu/cpu_arm64_darwin.go
@@ -0,0 +1,33 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build arm64 && darwin && !ios
+
+package cpu
+
+func osInit() {
+ ARM64.HasATOMICS = sysctlEnabled([]byte("hw.optional.armv8_1_atomics\x00"))
+ ARM64.HasCRC32 = sysctlEnabled([]byte("hw.optional.armv8_crc32\x00"))
+ ARM64.HasSHA512 = sysctlEnabled([]byte("hw.optional.armv8_2_sha512\x00"))
+
+ // There are no hw.optional sysctl values for the below features on Mac OS 11.0
+ // to detect their supported state dynamically. Assume the CPU features that
+ // Apple Silicon M1 supports to be available as a minimal set of features
+ // to all Go programs running on darwin/arm64.
+ ARM64.HasAES = true
+ ARM64.HasPMULL = true
+ ARM64.HasSHA1 = true
+ ARM64.HasSHA2 = true
+}
+
+//go:noescape
+func getsysctlbyname(name []byte) (int32, int32)
+
+func sysctlEnabled(name []byte) bool {
+ ret, value := getsysctlbyname(name)
+ if ret < 0 {
+ return false
+ }
+ return value > 0
+}
diff --git a/contrib/go/_std_1.21/src/runtime/cgo/gcc_darwin_arm64.c b/contrib/go/_std_1.21/src/runtime/cgo/gcc_darwin_arm64.c
new file mode 100644
index 0000000000..5b77a4294a
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/cgo/gcc_darwin_arm64.c
@@ -0,0 +1,142 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include <limits.h>
+#include <pthread.h>
+#include <signal.h>
+#include <string.h> /* for strerror */
+#include <sys/param.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include "libcgo.h"
+#include "libcgo_unix.h"
+
+#include <TargetConditionals.h>
+
+#if TARGET_OS_IPHONE
+#include <CoreFoundation/CFBundle.h>
+#include <CoreFoundation/CFString.h>
+#endif
+
+static void *threadentry(void*);
+static void (*setg_gcc)(void*);
+
+void
+_cgo_sys_thread_start(ThreadStart *ts)
+{
+ pthread_attr_t attr;
+ sigset_t ign, oset;
+ pthread_t p;
+ size_t size;
+ int err;
+
+ //fprintf(stderr, "runtime/cgo: _cgo_sys_thread_start: fn=%p, g=%p\n", ts->fn, ts->g); // debug
+ sigfillset(&ign);
+ pthread_sigmask(SIG_SETMASK, &ign, &oset);
+
+ size = pthread_get_stacksize_np(pthread_self());
+ pthread_attr_init(&attr);
+ pthread_attr_setstacksize(&attr, size);
+ // Leave stacklo=0 and set stackhi=size; mstart will do the rest.
+ ts->g->stackhi = size;
+ err = _cgo_try_pthread_create(&p, &attr, threadentry, ts);
+
+ pthread_sigmask(SIG_SETMASK, &oset, nil);
+
+ if (err != 0) {
+ fprintf(stderr, "runtime/cgo: pthread_create failed: %s\n", strerror(err));
+ abort();
+ }
+}
+
+extern void crosscall1(void (*fn)(void), void (*setg_gcc)(void*), void *g);
+static void*
+threadentry(void *v)
+{
+ ThreadStart ts;
+
+ ts = *(ThreadStart*)v;
+ free(v);
+
+#if TARGET_OS_IPHONE
+ darwin_arm_init_thread_exception_port();
+#endif
+
+ crosscall1(ts.fn, setg_gcc, (void*)ts.g);
+ return nil;
+}
+
+#if TARGET_OS_IPHONE
+
+// init_working_dir sets the current working directory to the app root.
+// By default ios/arm64 processes start in "/".
+static void
+init_working_dir()
+{
+ CFBundleRef bundle = CFBundleGetMainBundle();
+ if (bundle == NULL) {
+ fprintf(stderr, "runtime/cgo: no main bundle\n");
+ return;
+ }
+ CFURLRef url_ref = CFBundleCopyResourceURL(bundle, CFSTR("Info"), CFSTR("plist"), NULL);
+ if (url_ref == NULL) {
+ // No Info.plist found. It can happen on Corellium virtual devices.
+ return;
+ }
+ CFStringRef url_str_ref = CFURLGetString(url_ref);
+ char buf[MAXPATHLEN];
+ Boolean res = CFStringGetCString(url_str_ref, buf, sizeof(buf), kCFStringEncodingUTF8);
+ CFRelease(url_ref);
+ if (!res) {
+ fprintf(stderr, "runtime/cgo: cannot get URL string\n");
+ return;
+ }
+
+ // url is of the form "file:///path/to/Info.plist".
+ // strip it down to the working directory "/path/to".
+ int url_len = strlen(buf);
+ if (url_len < sizeof("file://")+sizeof("/Info.plist")) {
+ fprintf(stderr, "runtime/cgo: bad URL: %s\n", buf);
+ return;
+ }
+ buf[url_len-sizeof("/Info.plist")+1] = 0;
+ char *dir = &buf[0] + sizeof("file://")-1;
+
+ if (chdir(dir) != 0) {
+ fprintf(stderr, "runtime/cgo: chdir(%s) failed\n", dir);
+ }
+
+ // The test harness in go_ios_exec passes the relative working directory
+ // in the GoExecWrapperWorkingDirectory property of the app bundle.
+ CFStringRef wd_ref = CFBundleGetValueForInfoDictionaryKey(bundle, CFSTR("GoExecWrapperWorkingDirectory"));
+ if (wd_ref != NULL) {
+ if (!CFStringGetCString(wd_ref, buf, sizeof(buf), kCFStringEncodingUTF8)) {
+ fprintf(stderr, "runtime/cgo: cannot get GoExecWrapperWorkingDirectory string\n");
+ return;
+ }
+ if (chdir(buf) != 0) {
+ fprintf(stderr, "runtime/cgo: chdir(%s) failed\n", buf);
+ }
+ }
+}
+
+#endif // TARGET_OS_IPHONE
+
+void
+x_cgo_init(G *g, void (*setg)(void*))
+{
+ size_t size;
+
+ //fprintf(stderr, "x_cgo_init = %p\n", &x_cgo_init); // aid debugging in presence of ASLR
+ setg_gcc = setg;
+ size = pthread_get_stacksize_np(pthread_self());
+ g->stacklo = (uintptr)&size - size + 4096;
+
+#if TARGET_OS_IPHONE
+ darwin_arm_init_mach_exception_handler();
+ darwin_arm_init_thread_exception_port();
+ init_working_dir();
+#endif
+}
diff --git a/contrib/go/_std_1.21/src/runtime/defs_darwin_arm64.go b/contrib/go/_std_1.21/src/runtime/defs_darwin_arm64.go
new file mode 100644
index 0000000000..e26df02959
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/defs_darwin_arm64.go
@@ -0,0 +1,240 @@
+// created by cgo -cdefs and then converted to Go
+// cgo -cdefs defs_darwin.go
+
+package runtime
+
+import "unsafe"
+
+const (
+ _EINTR = 0x4
+ _EFAULT = 0xe
+ _EAGAIN = 0x23
+ _ETIMEDOUT = 0x3c
+
+ _PROT_NONE = 0x0
+ _PROT_READ = 0x1
+ _PROT_WRITE = 0x2
+ _PROT_EXEC = 0x4
+
+ _MAP_ANON = 0x1000
+ _MAP_PRIVATE = 0x2
+ _MAP_FIXED = 0x10
+
+ _MADV_DONTNEED = 0x4
+ _MADV_FREE = 0x5
+ _MADV_FREE_REUSABLE = 0x7
+ _MADV_FREE_REUSE = 0x8
+
+ _SA_SIGINFO = 0x40
+ _SA_RESTART = 0x2
+ _SA_ONSTACK = 0x1
+ _SA_USERTRAMP = 0x100
+ _SA_64REGSET = 0x200
+
+ _SIGHUP = 0x1
+ _SIGINT = 0x2
+ _SIGQUIT = 0x3
+ _SIGILL = 0x4
+ _SIGTRAP = 0x5
+ _SIGABRT = 0x6
+ _SIGEMT = 0x7
+ _SIGFPE = 0x8
+ _SIGKILL = 0x9
+ _SIGBUS = 0xa
+ _SIGSEGV = 0xb
+ _SIGSYS = 0xc
+ _SIGPIPE = 0xd
+ _SIGALRM = 0xe
+ _SIGTERM = 0xf
+ _SIGURG = 0x10
+ _SIGSTOP = 0x11
+ _SIGTSTP = 0x12
+ _SIGCONT = 0x13
+ _SIGCHLD = 0x14
+ _SIGTTIN = 0x15
+ _SIGTTOU = 0x16
+ _SIGIO = 0x17
+ _SIGXCPU = 0x18
+ _SIGXFSZ = 0x19
+ _SIGVTALRM = 0x1a
+ _SIGPROF = 0x1b
+ _SIGWINCH = 0x1c
+ _SIGINFO = 0x1d
+ _SIGUSR1 = 0x1e
+ _SIGUSR2 = 0x1f
+
+ _FPE_INTDIV = 0x7
+ _FPE_INTOVF = 0x8
+ _FPE_FLTDIV = 0x1
+ _FPE_FLTOVF = 0x2
+ _FPE_FLTUND = 0x3
+ _FPE_FLTRES = 0x4
+ _FPE_FLTINV = 0x5
+ _FPE_FLTSUB = 0x6
+
+ _BUS_ADRALN = 0x1
+ _BUS_ADRERR = 0x2
+ _BUS_OBJERR = 0x3
+
+ _SEGV_MAPERR = 0x1
+ _SEGV_ACCERR = 0x2
+
+ _ITIMER_REAL = 0x0
+ _ITIMER_VIRTUAL = 0x1
+ _ITIMER_PROF = 0x2
+
+ _EV_ADD = 0x1
+ _EV_DELETE = 0x2
+ _EV_CLEAR = 0x20
+ _EV_RECEIPT = 0x40
+ _EV_ERROR = 0x4000
+ _EV_EOF = 0x8000
+ _EVFILT_READ = -0x1
+ _EVFILT_WRITE = -0x2
+
+ _PTHREAD_CREATE_DETACHED = 0x2
+
+ _PTHREAD_KEYS_MAX = 512
+
+ _F_GETFL = 0x3
+ _F_SETFL = 0x4
+
+ _O_WRONLY = 0x1
+ _O_NONBLOCK = 0x4
+ _O_CREAT = 0x200
+ _O_TRUNC = 0x400
+)
+
+type stackt struct {
+ ss_sp *byte
+ ss_size uintptr
+ ss_flags int32
+ pad_cgo_0 [4]byte
+}
+
+type sigactiont struct {
+ __sigaction_u [8]byte
+ sa_tramp unsafe.Pointer
+ sa_mask uint32
+ sa_flags int32
+}
+
+type usigactiont struct {
+ __sigaction_u [8]byte
+ sa_mask uint32
+ sa_flags int32
+}
+
+type siginfo struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ si_pid int32
+ si_uid uint32
+ si_status int32
+ si_addr *byte
+ si_value [8]byte
+ si_band int64
+ __pad [7]uint64
+}
+
+type timeval struct {
+ tv_sec int64
+ tv_usec int32
+ pad_cgo_0 [4]byte
+}
+
+func (tv *timeval) set_usec(x int32) {
+ tv.tv_usec = x
+}
+
+type itimerval struct {
+ it_interval timeval
+ it_value timeval
+}
+
+type timespec struct {
+ tv_sec int64
+ tv_nsec int64
+}
+
+//go:nosplit
+func (ts *timespec) setNsec(ns int64) {
+ ts.tv_sec = ns / 1e9
+ ts.tv_nsec = ns % 1e9
+}
+
+type exceptionstate64 struct {
+ far uint64 // virtual fault addr
+ esr uint32 // exception syndrome
+ exc uint32 // number of arm exception taken
+}
+
+type regs64 struct {
+ x [29]uint64 // registers x0 to x28
+ fp uint64 // frame register, x29
+ lr uint64 // link register, x30
+ sp uint64 // stack pointer, x31
+ pc uint64 // program counter
+ cpsr uint32 // current program status register
+ __pad uint32
+}
+
+type neonstate64 struct {
+ v [64]uint64 // actually [32]uint128
+ fpsr uint32
+ fpcr uint32
+}
+
+type mcontext64 struct {
+ es exceptionstate64
+ ss regs64
+ ns neonstate64
+}
+
+type ucontext struct {
+ uc_onstack int32
+ uc_sigmask uint32
+ uc_stack stackt
+ uc_link *ucontext
+ uc_mcsize uint64
+ uc_mcontext *mcontext64
+}
+
+type keventt struct {
+ ident uint64
+ filter int16
+ flags uint16
+ fflags uint32
+ data int64
+ udata *byte
+}
+
+type pthread uintptr
+type pthreadattr struct {
+ X__sig int64
+ X__opaque [56]int8
+}
+type pthreadmutex struct {
+ X__sig int64
+ X__opaque [56]int8
+}
+type pthreadmutexattr struct {
+ X__sig int64
+ X__opaque [8]int8
+}
+type pthreadcond struct {
+ X__sig int64
+ X__opaque [40]int8
+}
+type pthreadcondattr struct {
+ X__sig int64
+ X__opaque [8]int8
+}
+
+type machTimebaseInfo struct {
+ numer uint32
+ denom uint32
+}
+
+type pthreadkey uint64
diff --git a/contrib/go/_std_1.21/src/runtime/os_darwin_arm64.go b/contrib/go/_std_1.21/src/runtime/os_darwin_arm64.go
new file mode 100644
index 0000000000..b808150de0
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/os_darwin_arm64.go
@@ -0,0 +1,12 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package runtime
+
+//go:nosplit
+func cputicks() int64 {
+ // Currently cputicks() is used in blocking profiler and to seed runtime·fastrand().
+ // runtime·nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
+ return nanotime()
+}
diff --git a/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.go b/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.go
new file mode 100644
index 0000000000..fe8584c322
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.go
@@ -0,0 +1,95 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated by mkcgo.sh. DO NOT EDIT.
+
+//go:build race
+
+package race
+
+//go:cgo_import_dynamic _NSGetArgv _NSGetArgv ""
+//go:cgo_import_dynamic _NSGetEnviron _NSGetEnviron ""
+//go:cgo_import_dynamic _NSGetExecutablePath _NSGetExecutablePath ""
+//go:cgo_import_dynamic __error __error ""
+//go:cgo_import_dynamic __fork __fork ""
+//go:cgo_import_dynamic __mmap __mmap ""
+//go:cgo_import_dynamic __munmap __munmap ""
+//go:cgo_import_dynamic __stack_chk_fail __stack_chk_fail ""
+//go:cgo_import_dynamic __stack_chk_guard __stack_chk_guard ""
+//go:cgo_import_dynamic _dyld_get_image_header _dyld_get_image_header ""
+//go:cgo_import_dynamic _dyld_get_image_name _dyld_get_image_name ""
+//go:cgo_import_dynamic _dyld_get_image_vmaddr_slide _dyld_get_image_vmaddr_slide ""
+//go:cgo_import_dynamic _dyld_image_count _dyld_image_count ""
+//go:cgo_import_dynamic _exit _exit ""
+//go:cgo_import_dynamic abort abort ""
+//go:cgo_import_dynamic arc4random_buf arc4random_buf ""
+//go:cgo_import_dynamic bzero bzero ""
+//go:cgo_import_dynamic close close ""
+//go:cgo_import_dynamic dlsym dlsym ""
+//go:cgo_import_dynamic dup dup ""
+//go:cgo_import_dynamic dup2 dup2 ""
+//go:cgo_import_dynamic execve execve ""
+//go:cgo_import_dynamic exit exit ""
+//go:cgo_import_dynamic fstat fstat ""
+//go:cgo_import_dynamic ftruncate ftruncate ""
+//go:cgo_import_dynamic getpid getpid ""
+//go:cgo_import_dynamic getrlimit getrlimit ""
+//go:cgo_import_dynamic gettimeofday gettimeofday ""
+//go:cgo_import_dynamic getuid getuid ""
+//go:cgo_import_dynamic grantpt grantpt ""
+//go:cgo_import_dynamic ioctl ioctl ""
+//go:cgo_import_dynamic isatty isatty ""
+//go:cgo_import_dynamic lstat lstat ""
+//go:cgo_import_dynamic mach_absolute_time mach_absolute_time ""
+//go:cgo_import_dynamic mach_task_self_ mach_task_self_ ""
+//go:cgo_import_dynamic mach_timebase_info mach_timebase_info ""
+//go:cgo_import_dynamic mach_vm_region_recurse mach_vm_region_recurse ""
+//go:cgo_import_dynamic madvise madvise ""
+//go:cgo_import_dynamic malloc_num_zones malloc_num_zones ""
+//go:cgo_import_dynamic malloc_zones malloc_zones ""
+//go:cgo_import_dynamic memcpy memcpy ""
+//go:cgo_import_dynamic memset_pattern16 memset_pattern16 ""
+//go:cgo_import_dynamic mkdir mkdir ""
+//go:cgo_import_dynamic mprotect mprotect ""
+//go:cgo_import_dynamic open open ""
+//go:cgo_import_dynamic pipe pipe ""
+//go:cgo_import_dynamic posix_openpt posix_openpt ""
+//go:cgo_import_dynamic posix_spawn posix_spawn ""
+//go:cgo_import_dynamic posix_spawn_file_actions_addclose posix_spawn_file_actions_addclose ""
+//go:cgo_import_dynamic posix_spawn_file_actions_adddup2 posix_spawn_file_actions_adddup2 ""
+//go:cgo_import_dynamic posix_spawn_file_actions_destroy posix_spawn_file_actions_destroy ""
+//go:cgo_import_dynamic posix_spawn_file_actions_init posix_spawn_file_actions_init ""
+//go:cgo_import_dynamic posix_spawnattr_destroy posix_spawnattr_destroy ""
+//go:cgo_import_dynamic posix_spawnattr_init posix_spawnattr_init ""
+//go:cgo_import_dynamic posix_spawnattr_setflags posix_spawnattr_setflags ""
+//go:cgo_import_dynamic pthread_attr_getstack pthread_attr_getstack ""
+//go:cgo_import_dynamic pthread_create pthread_create ""
+//go:cgo_import_dynamic pthread_get_stackaddr_np pthread_get_stackaddr_np ""
+//go:cgo_import_dynamic pthread_get_stacksize_np pthread_get_stacksize_np ""
+//go:cgo_import_dynamic pthread_getspecific pthread_getspecific ""
+//go:cgo_import_dynamic pthread_join pthread_join ""
+//go:cgo_import_dynamic pthread_self pthread_self ""
+//go:cgo_import_dynamic pthread_sigmask pthread_sigmask ""
+//go:cgo_import_dynamic pthread_threadid_np pthread_threadid_np ""
+//go:cgo_import_dynamic read read ""
+//go:cgo_import_dynamic readlink readlink ""
+//go:cgo_import_dynamic realpath$DARWIN_EXTSN realpath$DARWIN_EXTSN ""
+//go:cgo_import_dynamic rename rename ""
+//go:cgo_import_dynamic sched_yield sched_yield ""
+//go:cgo_import_dynamic setrlimit setrlimit ""
+//go:cgo_import_dynamic sigaction sigaction ""
+//go:cgo_import_dynamic stat stat ""
+//go:cgo_import_dynamic sysconf sysconf ""
+//go:cgo_import_dynamic sysctl sysctl ""
+//go:cgo_import_dynamic sysctlbyname sysctlbyname ""
+//go:cgo_import_dynamic task_info task_info ""
+//go:cgo_import_dynamic tcgetattr tcgetattr ""
+//go:cgo_import_dynamic tcsetattr tcsetattr ""
+//go:cgo_import_dynamic unlink unlink ""
+//go:cgo_import_dynamic unlockpt unlockpt ""
+//go:cgo_import_dynamic usleep usleep ""
+//go:cgo_import_dynamic vm_region_64 vm_region_64 ""
+//go:cgo_import_dynamic vm_region_recurse_64 vm_region_recurse_64 ""
+//go:cgo_import_dynamic waitpid waitpid ""
+//go:cgo_import_dynamic write write ""
diff --git a/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.syso b/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.syso
new file mode 100644
index 0000000000..4a23df2725
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/race/race_darwin_arm64.syso
Binary files differ
diff --git a/contrib/go/_std_1.21/src/runtime/rt0_darwin_arm64.s b/contrib/go/_std_1.21/src/runtime/rt0_darwin_arm64.s
new file mode 100644
index 0000000000..697104ac64
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/rt0_darwin_arm64.s
@@ -0,0 +1,63 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "textflag.h"
+#include "cgo/abi_arm64.h"
+
+TEXT _rt0_arm64_darwin(SB),NOSPLIT|NOFRAME,$0
+ MOVD $runtime·rt0_go(SB), R2
+ BL (R2)
+exit:
+ MOVD $0, R0
+ MOVD $1, R16 // sys_exit
+ SVC $0x80
+ B exit
+
+// When linking with -buildmode=c-archive or -buildmode=c-shared,
+// this symbol is called from a global initialization function.
+//
+// Note that all currently shipping darwin/arm64 platforms require
+// cgo and do not support c-shared.
+TEXT _rt0_arm64_darwin_lib(SB),NOSPLIT,$152
+ // Preserve callee-save registers.
+ SAVE_R19_TO_R28(8)
+ SAVE_F8_TO_F15(88)
+
+ MOVD R0, _rt0_arm64_darwin_lib_argc<>(SB)
+ MOVD R1, _rt0_arm64_darwin_lib_argv<>(SB)
+
+ MOVD $0, g // initialize g to nil
+
+ // Synchronous initialization.
+ MOVD $runtime·libpreinit(SB), R4
+ BL (R4)
+
+ // Create a new thread to do the runtime initialization and return.
+ MOVD _cgo_sys_thread_create(SB), R4
+ MOVD $_rt0_arm64_darwin_lib_go(SB), R0
+ MOVD $0, R1
+ SUB $16, RSP // reserve 16 bytes for sp-8 where fp may be saved.
+ BL (R4)
+ ADD $16, RSP
+
+ // Restore callee-save registers.
+ RESTORE_R19_TO_R28(8)
+ RESTORE_F8_TO_F15(88)
+
+ RET
+
+TEXT _rt0_arm64_darwin_lib_go(SB),NOSPLIT,$0
+ MOVD _rt0_arm64_darwin_lib_argc<>(SB), R0
+ MOVD _rt0_arm64_darwin_lib_argv<>(SB), R1
+ MOVD $runtime·rt0_go(SB), R4
+ B (R4)
+
+DATA _rt0_arm64_darwin_lib_argc<>(SB)/8, $0
+GLOBL _rt0_arm64_darwin_lib_argc<>(SB),NOPTR, $8
+DATA _rt0_arm64_darwin_lib_argv<>(SB)/8, $0
+GLOBL _rt0_arm64_darwin_lib_argv<>(SB),NOPTR, $8
+
+// external linking entry point.
+TEXT main(SB),NOSPLIT|NOFRAME,$0
+ JMP _rt0_arm64_darwin(SB)
diff --git a/contrib/go/_std_1.21/src/runtime/signal_darwin_arm64.go b/contrib/go/_std_1.21/src/runtime/signal_darwin_arm64.go
new file mode 100644
index 0000000000..690ffe4ae2
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/signal_darwin_arm64.go
@@ -0,0 +1,90 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package runtime
+
+import "unsafe"
+
+type sigctxt struct {
+ info *siginfo
+ ctxt unsafe.Pointer
+}
+
+//go:nosplit
+//go:nowritebarrierrec
+func (c *sigctxt) regs() *regs64 { return &(*ucontext)(c.ctxt).uc_mcontext.ss }
+
+func (c *sigctxt) r0() uint64 { return c.regs().x[0] }
+func (c *sigctxt) r1() uint64 { return c.regs().x[1] }
+func (c *sigctxt) r2() uint64 { return c.regs().x[2] }
+func (c *sigctxt) r3() uint64 { return c.regs().x[3] }
+func (c *sigctxt) r4() uint64 { return c.regs().x[4] }
+func (c *sigctxt) r5() uint64 { return c.regs().x[5] }
+func (c *sigctxt) r6() uint64 { return c.regs().x[6] }
+func (c *sigctxt) r7() uint64 { return c.regs().x[7] }
+func (c *sigctxt) r8() uint64 { return c.regs().x[8] }
+func (c *sigctxt) r9() uint64 { return c.regs().x[9] }
+func (c *sigctxt) r10() uint64 { return c.regs().x[10] }
+func (c *sigctxt) r11() uint64 { return c.regs().x[11] }
+func (c *sigctxt) r12() uint64 { return c.regs().x[12] }
+func (c *sigctxt) r13() uint64 { return c.regs().x[13] }
+func (c *sigctxt) r14() uint64 { return c.regs().x[14] }
+func (c *sigctxt) r15() uint64 { return c.regs().x[15] }
+func (c *sigctxt) r16() uint64 { return c.regs().x[16] }
+func (c *sigctxt) r17() uint64 { return c.regs().x[17] }
+func (c *sigctxt) r18() uint64 { return c.regs().x[18] }
+func (c *sigctxt) r19() uint64 { return c.regs().x[19] }
+func (c *sigctxt) r20() uint64 { return c.regs().x[20] }
+func (c *sigctxt) r21() uint64 { return c.regs().x[21] }
+func (c *sigctxt) r22() uint64 { return c.regs().x[22] }
+func (c *sigctxt) r23() uint64 { return c.regs().x[23] }
+func (c *sigctxt) r24() uint64 { return c.regs().x[24] }
+func (c *sigctxt) r25() uint64 { return c.regs().x[25] }
+func (c *sigctxt) r26() uint64 { return c.regs().x[26] }
+func (c *sigctxt) r27() uint64 { return c.regs().x[27] }
+func (c *sigctxt) r28() uint64 { return c.regs().x[28] }
+func (c *sigctxt) r29() uint64 { return c.regs().fp }
+func (c *sigctxt) lr() uint64 { return c.regs().lr }
+func (c *sigctxt) sp() uint64 { return c.regs().sp }
+
+//go:nosplit
+//go:nowritebarrierrec
+func (c *sigctxt) pc() uint64 { return c.regs().pc }
+
+func (c *sigctxt) fault() uintptr { return uintptr(unsafe.Pointer(c.info.si_addr)) }
+
+func (c *sigctxt) sigcode() uint64 { return uint64(c.info.si_code) }
+func (c *sigctxt) sigaddr() uint64 { return uint64(uintptr(unsafe.Pointer(c.info.si_addr))) }
+
+func (c *sigctxt) set_pc(x uint64) { c.regs().pc = x }
+func (c *sigctxt) set_sp(x uint64) { c.regs().sp = x }
+func (c *sigctxt) set_lr(x uint64) { c.regs().lr = x }
+func (c *sigctxt) set_r28(x uint64) { c.regs().x[28] = x }
+
+func (c *sigctxt) set_sigcode(x uint64) { c.info.si_code = int32(x) }
+func (c *sigctxt) set_sigaddr(x uint64) {
+ c.info.si_addr = (*byte)(unsafe.Pointer(uintptr(x)))
+}
+
+//go:nosplit
+func (c *sigctxt) fixsigcode(sig uint32) {
+ switch sig {
+ case _SIGTRAP:
+ // OS X sets c.sigcode() == TRAP_BRKPT unconditionally for all SIGTRAPs,
+ // leaving no way to distinguish a breakpoint-induced SIGTRAP
+ // from an asynchronous signal SIGTRAP.
+ // They all look breakpoint-induced by default.
+ // Try looking at the code to see if it's a breakpoint.
+ // The assumption is that we're very unlikely to get an
+ // asynchronous SIGTRAP at just the moment that the
+ // PC started to point at unmapped memory.
+ pc := uintptr(c.pc())
+ // OS X will leave the pc just after the instruction.
+ code := (*uint32)(unsafe.Pointer(pc - 4))
+ if *code != 0xd4200000 {
+ // SIGTRAP on something other than breakpoint.
+ c.set_sigcode(_SI_USER)
+ }
+ }
+}
diff --git a/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.go b/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.go
new file mode 100644
index 0000000000..6170f4fdda
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.go
@@ -0,0 +1,65 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package runtime
+
+import (
+ "internal/abi"
+ "internal/goarch"
+ "unsafe"
+)
+
+// libc function wrappers. Must run on system stack.
+
+//go:nosplit
+//go:cgo_unsafe_args
+func g0_pthread_key_create(k *pthreadkey, destructor uintptr) int32 {
+ ret := asmcgocall(unsafe.Pointer(abi.FuncPCABI0(pthread_key_create_trampoline)), unsafe.Pointer(&k))
+ KeepAlive(k)
+ return ret
+}
+func pthread_key_create_trampoline()
+
+//go:nosplit
+//go:cgo_unsafe_args
+func g0_pthread_setspecific(k pthreadkey, value uintptr) int32 {
+ return asmcgocall(unsafe.Pointer(abi.FuncPCABI0(pthread_setspecific_trampoline)), unsafe.Pointer(&k))
+}
+func pthread_setspecific_trampoline()
+
+//go:cgo_import_dynamic libc_pthread_key_create pthread_key_create "/usr/lib/libSystem.B.dylib"
+//go:cgo_import_dynamic libc_pthread_setspecific pthread_setspecific "/usr/lib/libSystem.B.dylib"
+
+// tlsinit allocates a thread-local storage slot for g.
+//
+// It finds the first available slot using pthread_key_create and uses
+// it as the offset value for runtime.tlsg.
+//
+// This runs at startup on g0 stack, but before g is set, so it must
+// not split stack (transitively). g is expected to be nil, so things
+// (e.g. asmcgocall) will skip saving or reading g.
+//
+//go:nosplit
+func tlsinit(tlsg *uintptr, tlsbase *[_PTHREAD_KEYS_MAX]uintptr) {
+ var k pthreadkey
+ err := g0_pthread_key_create(&k, 0)
+ if err != 0 {
+ abort()
+ }
+
+ const magic = 0xc476c475c47957
+ err = g0_pthread_setspecific(k, magic)
+ if err != 0 {
+ abort()
+ }
+
+ for i, x := range tlsbase {
+ if x == magic {
+ *tlsg = uintptr(i * goarch.PtrSize)
+ g0_pthread_setspecific(k, 0)
+ return
+ }
+ }
+ abort()
+}
diff --git a/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.s b/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.s
new file mode 100644
index 0000000000..dc6caf873b
--- /dev/null
+++ b/contrib/go/_std_1.21/src/runtime/sys_darwin_arm64.s
@@ -0,0 +1,769 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// System calls and other sys.stuff for ARM64, Darwin
+// System calls are implemented in libSystem, this file contains
+// trampolines that convert from Go to C calling convention.
+
+#include "go_asm.h"
+#include "go_tls.h"
+#include "textflag.h"
+#include "cgo/abi_arm64.h"
+
+#define CLOCK_REALTIME 0
+
+TEXT notok<>(SB),NOSPLIT,$0
+ MOVD $0, R8
+ MOVD R8, (R8)
+ B 0(PC)
+
+TEXT runtime·open_trampoline(SB),NOSPLIT,$0
+ SUB $16, RSP
+ MOVW 8(R0), R1 // arg 2 flags
+ MOVW 12(R0), R2 // arg 3 mode
+ MOVW R2, (RSP) // arg 3 is variadic, pass on stack
+ MOVD 0(R0), R0 // arg 1 pathname
+ BL libc_open(SB)
+ ADD $16, RSP
+ RET
+
+TEXT runtime·close_trampoline(SB),NOSPLIT,$0
+ MOVW 0(R0), R0 // arg 1 fd
+ BL libc_close(SB)
+ RET
+
+TEXT runtime·write_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 buf
+ MOVW 16(R0), R2 // arg 3 count
+ MOVW 0(R0), R0 // arg 1 fd
+ BL libc_write(SB)
+ MOVD $-1, R1
+ CMP R0, R1
+ BNE noerr
+ BL libc_error(SB)
+ MOVW (R0), R0
+ NEG R0, R0 // caller expects negative errno value
+noerr:
+ RET
+
+TEXT runtime·read_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 buf
+ MOVW 16(R0), R2 // arg 3 count
+ MOVW 0(R0), R0 // arg 1 fd
+ BL libc_read(SB)
+ MOVD $-1, R1
+ CMP R0, R1
+ BNE noerr
+ BL libc_error(SB)
+ MOVW (R0), R0
+ NEG R0, R0 // caller expects negative errno value
+noerr:
+ RET
+
+TEXT runtime·pipe_trampoline(SB),NOSPLIT,$0
+ BL libc_pipe(SB) // pointer already in R0
+ CMP $0, R0
+ BEQ 3(PC)
+ BL libc_error(SB) // return negative errno value
+ NEG R0, R0
+ RET
+
+TEXT runtime·exit_trampoline(SB),NOSPLIT|NOFRAME,$0
+ MOVW 0(R0), R0
+ BL libc_exit(SB)
+ MOVD $1234, R0
+ MOVD $1002, R1
+ MOVD R0, (R1) // fail hard
+
+TEXT runtime·raiseproc_trampoline(SB),NOSPLIT,$0
+ MOVD 0(R0), R19 // signal
+ BL libc_getpid(SB)
+ // arg 1 pid already in R0 from getpid
+ MOVD R19, R1 // arg 2 signal
+ BL libc_kill(SB)
+ RET
+
+TEXT runtime·mmap_trampoline(SB),NOSPLIT,$0
+ MOVD R0, R19
+ MOVD 0(R19), R0 // arg 1 addr
+ MOVD 8(R19), R1 // arg 2 len
+ MOVW 16(R19), R2 // arg 3 prot
+ MOVW 20(R19), R3 // arg 4 flags
+ MOVW 24(R19), R4 // arg 5 fd
+ MOVW 28(R19), R5 // arg 6 off
+ BL libc_mmap(SB)
+ MOVD $0, R1
+ MOVD $-1, R2
+ CMP R0, R2
+ BNE ok
+ BL libc_error(SB)
+ MOVW (R0), R1
+ MOVD $0, R0
+ok:
+ MOVD R0, 32(R19) // ret 1 p
+ MOVD R1, 40(R19) // ret 2 err
+ RET
+
+TEXT runtime·munmap_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 len
+ MOVD 0(R0), R0 // arg 1 addr
+ BL libc_munmap(SB)
+ CMP $0, R0
+ BEQ 2(PC)
+ BL notok<>(SB)
+ RET
+
+TEXT runtime·madvise_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 len
+ MOVW 16(R0), R2 // arg 3 advice
+ MOVD 0(R0), R0 // arg 1 addr
+ BL libc_madvise(SB)
+ RET
+
+TEXT runtime·mlock_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 len
+ MOVD 0(R0), R0 // arg 1 addr
+ BL libc_mlock(SB)
+ RET
+
+TEXT runtime·setitimer_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 new
+ MOVD 16(R0), R2 // arg 3 old
+ MOVW 0(R0), R0 // arg 1 which
+ BL libc_setitimer(SB)
+ RET
+
+TEXT runtime·walltime_trampoline(SB),NOSPLIT,$0
+ MOVD R0, R1 // arg 2 timespec
+ MOVW $CLOCK_REALTIME, R0 // arg 1 clock_id
+ BL libc_clock_gettime(SB)
+ RET
+
+GLOBL timebase<>(SB),NOPTR,$(machTimebaseInfo__size)
+
+TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$40
+ MOVD R0, R19
+ BL libc_mach_absolute_time(SB)
+ MOVD R0, 0(R19)
+ MOVW timebase<>+machTimebaseInfo_numer(SB), R20
+ MOVD $timebase<>+machTimebaseInfo_denom(SB), R21
+ LDARW (R21), R21 // atomic read
+ CMP $0, R21
+ BNE initialized
+
+ SUB $(machTimebaseInfo__size+15)/16*16, RSP
+ MOVD RSP, R0
+ BL libc_mach_timebase_info(SB)
+ MOVW machTimebaseInfo_numer(RSP), R20
+ MOVW machTimebaseInfo_denom(RSP), R21
+ ADD $(machTimebaseInfo__size+15)/16*16, RSP
+
+ MOVW R20, timebase<>+machTimebaseInfo_numer(SB)
+ MOVD $timebase<>+machTimebaseInfo_denom(SB), R22
+ STLRW R21, (R22) // atomic write
+
+initialized:
+ MOVW R20, 8(R19)
+ MOVW R21, 12(R19)
+ RET
+
+TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
+ MOVW sig+8(FP), R0
+ MOVD info+16(FP), R1
+ MOVD ctx+24(FP), R2
+ MOVD fn+0(FP), R11
+ BL (R11)
+ RET
+
+TEXT runtime·sigtramp(SB),NOSPLIT|TOPFRAME,$176
+ // Save callee-save registers in the case of signal forwarding.
+ // Please refer to https://golang.org/issue/31827 .
+ SAVE_R19_TO_R28(8*4)
+ SAVE_F8_TO_F15(8*14)
+
+ // Save arguments.
+ MOVW R0, (8*1)(RSP) // sig
+ MOVD R1, (8*2)(RSP) // info
+ MOVD R2, (8*3)(RSP) // ctx
+
+ // this might be called in external code context,
+ // where g is not set.
+ BL runtime·load_g(SB)
+
+#ifdef GOOS_ios
+ MOVD RSP, R6
+ CMP $0, g
+ BEQ nog
+ // iOS always use the main stack to run the signal handler.
+ // We need to switch to gsignal ourselves.
+ MOVD g_m(g), R11
+ MOVD m_gsignal(R11), R5
+ MOVD (g_stack+stack_hi)(R5), R6
+
+nog:
+ // Restore arguments.
+ MOVW (8*1)(RSP), R0
+ MOVD (8*2)(RSP), R1
+ MOVD (8*3)(RSP), R2
+
+ // Reserve space for args and the stack pointer on the
+ // gsignal stack.
+ SUB $48, R6
+ // Save stack pointer.
+ MOVD RSP, R4
+ MOVD R4, (8*4)(R6)
+ // Switch to gsignal stack.
+ MOVD R6, RSP
+
+ // Save arguments.
+ MOVW R0, (8*1)(RSP)
+ MOVD R1, (8*2)(RSP)
+ MOVD R2, (8*3)(RSP)
+#endif
+
+ // Call sigtrampgo.
+ MOVD $runtime·sigtrampgo(SB), R11
+ BL (R11)
+
+#ifdef GOOS_ios
+ // Switch to old stack.
+ MOVD (8*4)(RSP), R5
+ MOVD R5, RSP
+#endif
+
+ // Restore callee-save registers.
+ RESTORE_R19_TO_R28(8*4)
+ RESTORE_F8_TO_F15(8*14)
+
+ RET
+
+TEXT runtime·cgoSigtramp(SB),NOSPLIT,$0
+ JMP runtime·sigtramp(SB)
+
+TEXT runtime·sigprocmask_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 new
+ MOVD 16(R0), R2 // arg 3 old
+ MOVW 0(R0), R0 // arg 1 how
+ BL libc_pthread_sigmask(SB)
+ CMP $0, R0
+ BEQ 2(PC)
+ BL notok<>(SB)
+ RET
+
+TEXT runtime·sigaction_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 new
+ MOVD 16(R0), R2 // arg 3 old
+ MOVW 0(R0), R0 // arg 1 how
+ BL libc_sigaction(SB)
+ CMP $0, R0
+ BEQ 2(PC)
+ BL notok<>(SB)
+ RET
+
+TEXT runtime·usleep_trampoline(SB),NOSPLIT,$0
+ MOVW 0(R0), R0 // arg 1 usec
+ BL libc_usleep(SB)
+ RET
+
+TEXT runtime·sysctl_trampoline(SB),NOSPLIT,$0
+ MOVW 8(R0), R1 // arg 2 miblen
+ MOVD 16(R0), R2 // arg 3 oldp
+ MOVD 24(R0), R3 // arg 4 oldlenp
+ MOVD 32(R0), R4 // arg 5 newp
+ MOVD 40(R0), R5 // arg 6 newlen
+ MOVD 0(R0), R0 // arg 1 mib
+ BL libc_sysctl(SB)
+ RET
+
+TEXT runtime·sysctlbyname_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 oldp
+ MOVD 16(R0), R2 // arg 3 oldlenp
+ MOVD 24(R0), R3 // arg 4 newp
+ MOVD 32(R0), R4 // arg 5 newlen
+ MOVD 0(R0), R0 // arg 1 name
+ BL libc_sysctlbyname(SB)
+ RET
+
+
+TEXT runtime·kqueue_trampoline(SB),NOSPLIT,$0
+ BL libc_kqueue(SB)
+ RET
+
+TEXT runtime·kevent_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 keventt
+ MOVW 16(R0), R2 // arg 3 nch
+ MOVD 24(R0), R3 // arg 4 ev
+ MOVW 32(R0), R4 // arg 5 nev
+ MOVD 40(R0), R5 // arg 6 ts
+ MOVW 0(R0), R0 // arg 1 kq
+ BL libc_kevent(SB)
+ MOVD $-1, R2
+ CMP R0, R2
+ BNE ok
+ BL libc_error(SB)
+ MOVW (R0), R0 // errno
+ NEG R0, R0 // caller wants it as a negative error code
+ok:
+ RET
+
+TEXT runtime·fcntl_trampoline(SB),NOSPLIT,$0
+ SUB $16, RSP
+ MOVD R0, R19
+ MOVW 0(R19), R0 // arg 1 fd
+ MOVW 4(R19), R1 // arg 2 cmd
+ MOVW 8(R19), R2 // arg 3 arg
+ MOVW R2, (RSP) // arg 3 is variadic, pass on stack
+ BL libc_fcntl(SB)
+ MOVD $0, R1
+ MOVD $-1, R2
+ CMP R0, R2
+ BNE noerr
+ BL libc_error(SB)
+ MOVW (R0), R1
+ MOVW $-1, R0
+noerr:
+ MOVW R0, 12(R19)
+ MOVW R1, 16(R19)
+ ADD $16, RSP
+ RET
+
+TEXT runtime·sigaltstack_trampoline(SB),NOSPLIT,$0
+#ifdef GOOS_ios
+ // sigaltstack on iOS is not supported and will always
+ // run the signal handler on the main stack, so our sigtramp has
+ // to do the stack switch ourselves.
+ MOVW $43, R0
+ BL libc_exit(SB)
+#else
+ MOVD 8(R0), R1 // arg 2 old
+ MOVD 0(R0), R0 // arg 1 new
+ CALL libc_sigaltstack(SB)
+ CBZ R0, 2(PC)
+ BL notok<>(SB)
+#endif
+ RET
+
+// Thread related functions
+
+// mstart_stub is the first function executed on a new thread started by pthread_create.
+// It just does some low-level setup and then calls mstart.
+// Note: called with the C calling convention.
+TEXT runtime·mstart_stub(SB),NOSPLIT,$160
+ // R0 points to the m.
+ // We are already on m's g0 stack.
+
+ // Save callee-save registers.
+ SAVE_R19_TO_R28(8)
+ SAVE_F8_TO_F15(88)
+
+ MOVD m_g0(R0), g
+ BL ·save_g(SB)
+
+ BL runtime·mstart(SB)
+
+ // Restore callee-save registers.
+ RESTORE_R19_TO_R28(8)
+ RESTORE_F8_TO_F15(88)
+
+ // Go is all done with this OS thread.
+ // Tell pthread everything is ok (we never join with this thread, so
+ // the value here doesn't really matter).
+ MOVD $0, R0
+
+ RET
+
+TEXT runtime·pthread_attr_init_trampoline(SB),NOSPLIT,$0
+ MOVD 0(R0), R0 // arg 1 attr
+ BL libc_pthread_attr_init(SB)
+ RET
+
+TEXT runtime·pthread_attr_getstacksize_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 size
+ MOVD 0(R0), R0 // arg 1 attr
+ BL libc_pthread_attr_getstacksize(SB)
+ RET
+
+TEXT runtime·pthread_attr_setdetachstate_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 state
+ MOVD 0(R0), R0 // arg 1 attr
+ BL libc_pthread_attr_setdetachstate(SB)
+ RET
+
+TEXT runtime·pthread_create_trampoline(SB),NOSPLIT,$0
+ SUB $16, RSP
+ MOVD 0(R0), R1 // arg 2 state
+ MOVD 8(R0), R2 // arg 3 start
+ MOVD 16(R0), R3 // arg 4 arg
+ MOVD RSP, R0 // arg 1 &threadid (which we throw away)
+ BL libc_pthread_create(SB)
+ ADD $16, RSP
+ RET
+
+TEXT runtime·raise_trampoline(SB),NOSPLIT,$0
+ MOVW 0(R0), R0 // arg 1 sig
+ BL libc_raise(SB)
+ RET
+
+TEXT runtime·pthread_mutex_init_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 attr
+ MOVD 0(R0), R0 // arg 1 mutex
+ BL libc_pthread_mutex_init(SB)
+ RET
+
+TEXT runtime·pthread_mutex_lock_trampoline(SB),NOSPLIT,$0
+ MOVD 0(R0), R0 // arg 1 mutex
+ BL libc_pthread_mutex_lock(SB)
+ RET
+
+TEXT runtime·pthread_mutex_unlock_trampoline(SB),NOSPLIT,$0
+ MOVD 0(R0), R0 // arg 1 mutex
+ BL libc_pthread_mutex_unlock(SB)
+ RET
+
+TEXT runtime·pthread_cond_init_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 attr
+ MOVD 0(R0), R0 // arg 1 cond
+ BL libc_pthread_cond_init(SB)
+ RET
+
+TEXT runtime·pthread_cond_wait_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 mutex
+ MOVD 0(R0), R0 // arg 1 cond
+ BL libc_pthread_cond_wait(SB)
+ RET
+
+TEXT runtime·pthread_cond_timedwait_relative_np_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 mutex
+ MOVD 16(R0), R2 // arg 3 timeout
+ MOVD 0(R0), R0 // arg 1 cond
+ BL libc_pthread_cond_timedwait_relative_np(SB)
+ RET
+
+TEXT runtime·pthread_cond_signal_trampoline(SB),NOSPLIT,$0
+ MOVD 0(R0), R0 // arg 1 cond
+ BL libc_pthread_cond_signal(SB)
+ RET
+
+TEXT runtime·pthread_self_trampoline(SB),NOSPLIT,$0
+ MOVD R0, R19 // R19 is callee-save
+ BL libc_pthread_self(SB)
+ MOVD R0, 0(R19) // return value
+ RET
+
+TEXT runtime·pthread_kill_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 sig
+ MOVD 0(R0), R0 // arg 1 thread
+ BL libc_pthread_kill(SB)
+ RET
+
+TEXT runtime·pthread_key_create_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 destructor
+ MOVD 0(R0), R0 // arg 1 *key
+ BL libc_pthread_key_create(SB)
+ RET
+
+TEXT runtime·pthread_setspecific_trampoline(SB),NOSPLIT,$0
+ MOVD 8(R0), R1 // arg 2 value
+ MOVD 0(R0), R0 // arg 1 key
+ BL libc_pthread_setspecific(SB)
+ RET
+
+TEXT runtime·osinit_hack_trampoline(SB),NOSPLIT,$0
+ MOVD $0, R0 // arg 1 val
+ BL libc_notify_is_valid_token(SB)
+ BL libc_xpc_date_create_from_current(SB)
+ RET
+
+// syscall calls a function in libc on behalf of the syscall package.
+// syscall takes a pointer to a struct like:
+// struct {
+// fn uintptr
+// a1 uintptr
+// a2 uintptr
+// a3 uintptr
+// r1 uintptr
+// r2 uintptr
+// err uintptr
+// }
+// syscall must be called on the g0 stack with the
+// C calling convention (use libcCall).
+TEXT runtime·syscall(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, 8(RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 8(R0), R0 // a1
+
+ // If fn is declared as vararg, we have to pass the vararg arguments on the stack.
+ // (Because ios decided not to adhere to the standard arm64 calling convention, sigh...)
+ // The only libSystem calls we support that are vararg are open, fcntl, and ioctl,
+ // which are all of the form fn(x, y, ...). So we just need to put the 3rd arg
+ // on the stack as well.
+ // If we ever have other vararg libSystem calls, we might need to handle more cases.
+ MOVD R2, (RSP)
+
+ BL (R12)
+
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 32(R2) // save r1
+ MOVD R1, 40(R2) // save r2
+ CMPW $-1, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, 8(RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 48(R2) // save err
+ok:
+ RET
+
+// syscallX calls a function in libc on behalf of the syscall package.
+// syscallX takes a pointer to a struct like:
+// struct {
+// fn uintptr
+// a1 uintptr
+// a2 uintptr
+// a3 uintptr
+// r1 uintptr
+// r2 uintptr
+// err uintptr
+// }
+// syscallX must be called on the g0 stack with the
+// C calling convention (use libcCall).
+TEXT runtime·syscallX(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, (RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 8(R0), R0 // a1
+ BL (R12)
+
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 32(R2) // save r1
+ MOVD R1, 40(R2) // save r2
+ CMP $-1, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, (RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 48(R2) // save err
+ok:
+ RET
+
+// syscallPtr is like syscallX except that the libc function reports an
+// error by returning NULL and setting errno.
+TEXT runtime·syscallPtr(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, (RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 8(R0), R0 // a1
+ BL (R12)
+
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 32(R2) // save r1
+ MOVD R1, 40(R2) // save r2
+ CMP $0, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, (RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 48(R2) // save err
+ok:
+ RET
+
+// syscall6 calls a function in libc on behalf of the syscall package.
+// syscall6 takes a pointer to a struct like:
+// struct {
+// fn uintptr
+// a1 uintptr
+// a2 uintptr
+// a3 uintptr
+// a4 uintptr
+// a5 uintptr
+// a6 uintptr
+// r1 uintptr
+// r2 uintptr
+// err uintptr
+// }
+// syscall6 must be called on the g0 stack with the
+// C calling convention (use libcCall).
+TEXT runtime·syscall6(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, 8(RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 32(R0), R3 // a4
+ MOVD 40(R0), R4 // a5
+ MOVD 48(R0), R5 // a6
+ MOVD 8(R0), R0 // a1
+
+ // If fn is declared as vararg, we have to pass the vararg arguments on the stack.
+ // See syscall above. The only function this applies to is openat, for which the 4th
+ // arg must be on the stack.
+ MOVD R3, (RSP)
+
+ BL (R12)
+
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 56(R2) // save r1
+ MOVD R1, 64(R2) // save r2
+ CMPW $-1, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, 8(RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 72(R2) // save err
+ok:
+ RET
+
+// syscall6X calls a function in libc on behalf of the syscall package.
+// syscall6X takes a pointer to a struct like:
+// struct {
+// fn uintptr
+// a1 uintptr
+// a2 uintptr
+// a3 uintptr
+// a4 uintptr
+// a5 uintptr
+// a6 uintptr
+// r1 uintptr
+// r2 uintptr
+// err uintptr
+// }
+// syscall6X must be called on the g0 stack with the
+// C calling convention (use libcCall).
+TEXT runtime·syscall6X(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, (RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 32(R0), R3 // a4
+ MOVD 40(R0), R4 // a5
+ MOVD 48(R0), R5 // a6
+ MOVD 8(R0), R0 // a1
+ BL (R12)
+
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 56(R2) // save r1
+ MOVD R1, 64(R2) // save r2
+ CMP $-1, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, (RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 72(R2) // save err
+ok:
+ RET
+
+// syscall9 calls a function in libc on behalf of the syscall package.
+// syscall9 takes a pointer to a struct like:
+// struct {
+// fn uintptr
+// a1 uintptr
+// a2 uintptr
+// a3 uintptr
+// a4 uintptr
+// a5 uintptr
+// a6 uintptr
+// a7 uintptr
+// a8 uintptr
+// a9 uintptr
+// r1 uintptr
+// r2 uintptr
+// err uintptr
+// }
+// syscall9 must be called on the g0 stack with the
+// C calling convention (use libcCall).
+TEXT runtime·syscall9(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, 8(RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 32(R0), R3 // a4
+ MOVD 40(R0), R4 // a5
+ MOVD 48(R0), R5 // a6
+ MOVD 56(R0), R6 // a7
+ MOVD 64(R0), R7 // a8
+ MOVD 72(R0), R8 // a9
+ MOVD 8(R0), R0 // a1
+
+ // If fn is declared as vararg, we have to pass the vararg arguments on the stack.
+ // See syscall above. The only function this applies to is openat, for which the 4th
+ // arg must be on the stack.
+ MOVD R3, (RSP)
+
+ BL (R12)
+
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 80(R2) // save r1
+ MOVD R1, 88(R2) // save r2
+ CMPW $-1, R0
+ BNE ok
+ SUB $16, RSP // push structure pointer
+ MOVD R2, 8(RSP)
+ BL libc_error(SB)
+ MOVW (R0), R0
+ MOVD 8(RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 96(R2) // save err
+ok:
+ RET
+
+// syscall_x509 is for crypto/x509. It is like syscall6 but does not check for errors,
+// takes 5 uintptrs and 1 float64, and only returns one value,
+// for use with standard C ABI functions.
+TEXT runtime·syscall_x509(SB),NOSPLIT,$0
+ SUB $16, RSP // push structure pointer
+ MOVD R0, (RSP)
+
+ MOVD 0(R0), R12 // fn
+ MOVD 16(R0), R1 // a2
+ MOVD 24(R0), R2 // a3
+ MOVD 32(R0), R3 // a4
+ MOVD 40(R0), R4 // a5
+ FMOVD 48(R0), F0 // f1
+ MOVD 8(R0), R0 // a1
+ BL (R12)
+
+ MOVD (RSP), R2 // pop structure pointer
+ ADD $16, RSP
+ MOVD R0, 56(R2) // save r1
+ RET
+
+TEXT runtime·issetugid_trampoline(SB),NOSPLIT,$0
+ BL libc_issetugid(SB)
+ RET
diff --git a/contrib/go/_std_1.21/src/syscall/asm_darwin_arm64.s b/contrib/go/_std_1.21/src/syscall/asm_darwin_arm64.s
new file mode 100644
index 0000000000..22e07666df
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/asm_darwin_arm64.s
@@ -0,0 +1,127 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "textflag.h"
+
+//
+// System call support for ARM64, Darwin
+//
+
+// func Syscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ BL runtime·entersyscall<ABIInternal>(SB)
+ MOVD trap+0(FP), R16
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ SVC $0x80
+ BCC ok
+ MOVD $-1, R1
+ MOVD R1, r1+32(FP) // r1
+ MOVD ZR, r2+40(FP) // r2
+ MOVD R0, err+48(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+ok:
+ MOVD R0, r1+32(FP) // r1
+ MOVD R1, r2+40(FP) // r2
+ MOVD ZR, err+48(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+
+// func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ MOVD trap+0(FP), R16 // syscall entry
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ SVC $0x80
+ BCC ok
+ MOVD $-1, R1
+ MOVD R1, r1+32(FP) // r1
+ MOVD ZR, r2+40(FP) // r2
+ MOVD R0, err+48(FP) // err
+ RET
+ok:
+ MOVD R0, r1+32(FP) // r1
+ MOVD R1, r2+40(FP) // r2
+ MOVD ZR, err+48(FP) // err
+ RET
+
+// func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ BL runtime·entersyscall<ABIInternal>(SB)
+ MOVD trap+0(FP), R16 // syscall entry
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ MOVD a4+32(FP), R3
+ MOVD a5+40(FP), R4
+ MOVD a6+48(FP), R5
+ SVC $0x80
+ BCC ok
+ MOVD $-1, R1
+ MOVD R1, r1+56(FP) // r1
+ MOVD ZR, r2+64(FP) // r2
+ MOVD R0, err+72(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+ok:
+ MOVD R0, r1+56(FP) // r1
+ MOVD R1, r2+64(FP) // r2
+ MOVD ZR, err+72(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+
+// func RawSyscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ MOVD trap+0(FP), R16 // syscall entry
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ MOVD a4+32(FP), R3
+ MOVD a5+40(FP), R4
+ MOVD a6+48(FP), R5
+ SVC $0x80
+ BCC ok
+ MOVD $-1, R1
+ MOVD R1, r1+56(FP) // r1
+ MOVD ZR, r2+64(FP) // r2
+ MOVD R0, err+72(FP) // err
+ RET
+ok:
+ MOVD R0, r1+56(FP) // r1
+ MOVD R1, r2+64(FP) // r2
+ MOVD ZR, R0
+ MOVD R0, err+72(FP) // err
+ RET
+
+// Actually Syscall7
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ BL runtime·entersyscall<ABIInternal>(SB)
+ MOVD num+0(FP), R16 // syscall entry
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ MOVD a4+32(FP), R3
+ MOVD a5+40(FP), R4
+ MOVD a6+48(FP), R5
+ MOVD a7+56(FP), R6
+ //MOVD a8+64(FP), R7
+ //MOVD a9+72(FP), R8
+ SVC $0x80
+ BCC ok
+ MOVD $-1, R1
+ MOVD R1, r1+80(FP) // r1
+ MOVD ZR, r2+88(FP) // r2
+ MOVD R0, err+96(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+ok:
+ MOVD R0, r1+80(FP) // r1
+ MOVD R1, r2+88(FP) // r2
+ MOVD ZR, err+96(FP) // err
+ BL runtime·exitsyscall<ABIInternal>(SB)
+ RET
+
diff --git a/contrib/go/_std_1.21/src/syscall/syscall_darwin_arm64.go b/contrib/go/_std_1.21/src/syscall/syscall_darwin_arm64.go
new file mode 100644
index 0000000000..d5da988117
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/syscall_darwin_arm64.go
@@ -0,0 +1,68 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package syscall
+
+import (
+ "internal/abi"
+ "unsafe"
+)
+
+func setTimespec(sec, nsec int64) Timespec {
+ return Timespec{Sec: sec, Nsec: nsec}
+}
+
+func setTimeval(sec, usec int64) Timeval {
+ return Timeval{Sec: sec, Usec: int32(usec)}
+}
+
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatfs(fd int, stat *Statfs_t) (err error)
+//sysnb Gettimeofday(tp *Timeval) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error)
+//sys Stat(path string, stat *Stat_t) (err error)
+//sys Statfs(path string, stat *Statfs_t) (err error)
+//sys fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
+//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var length = uint64(count)
+
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+
+ written = int(length)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func libc_sendfile_trampoline()
+
+//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
+
+// Implemented in the runtime package (runtime/sys_darwin_64.go)
+func syscallX(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // sic
diff --git a/contrib/go/_std_1.21/src/syscall/zerrors_darwin_arm64.go b/contrib/go/_std_1.21/src/syscall/zerrors_darwin_arm64.go
new file mode 100644
index 0000000000..fa7cb845c3
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/zerrors_darwin_arm64.go
@@ -0,0 +1,1436 @@
+// mkerrors.sh -m64
+// Code generated by the command above; DO NOT EDIT.
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+//go:build arm64 && darwin
+
+package syscall
+
+const (
+ AF_APPLETALK = 0x10
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1c
+ AF_ECMA = 0x8
+ AF_HYLINK = 0xf
+ AF_IEEE80211 = 0x25
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x1e
+ AF_IPX = 0x17
+ AF_ISDN = 0x1c
+ AF_ISO = 0x7
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x28
+ AF_NATM = 0x1f
+ AF_NDRV = 0x1b
+ AF_NETBIOS = 0x21
+ AF_NS = 0x6
+ AF_OSI = 0x7
+ AF_PPP = 0x22
+ AF_PUP = 0x4
+ AF_RESERVED_36 = 0x24
+ AF_ROUTE = 0x11
+ AF_SIP = 0x18
+ AF_SNA = 0xb
+ AF_SYSTEM = 0x20
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ AF_UTUN = 0x26
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B9600 = 0x2580
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc00c4279
+ BIOCGETIF = 0x4020426b
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRSIG = 0x40044272
+ BIOCGRTIMEOUT = 0x4010426e
+ BIOCGSEESENT = 0x40044276
+ BIOCGSTATS = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDLT = 0x80044278
+ BIOCSETF = 0x80104267
+ BIOCSETIF = 0x8020426c
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRSIG = 0x80044273
+ BIOCSRTIMEOUT = 0x8010426d
+ BIOCSSEESENT = 0x80044277
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x80000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x14
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
+ DLT_ARCNET = 0x7
+ DLT_ATM_CLIP = 0x13
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AX25 = 0x3
+ DLT_CHAOS = 0x5
+ DLT_CHDLC = 0x68
+ DLT_C_HDLC = 0x68
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_FDDI = 0xa
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_IEEE802_11_RADIO_AVS = 0xa3
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
+ DLT_NULL = 0x0
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0x10
+ DLT_PPP_SERIAL = 0x32
+ DLT_PRONET = 0x4
+ DLT_RAW = 0xc
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xf
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EVFILT_AIO = -0x3
+ EVFILT_FS = -0x9
+ EVFILT_MACHPORT = -0x8
+ EVFILT_PROC = -0x5
+ EVFILT_READ = -0x1
+ EVFILT_SIGNAL = -0x6
+ EVFILT_SYSCOUNT = 0xe
+ EVFILT_THREADMARKER = 0xe
+ EVFILT_TIMER = -0x7
+ EVFILT_USER = -0xa
+ EVFILT_VM = -0xc
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_DISPATCH = 0x80
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG0 = 0x1000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_OOBAND = 0x2000
+ EV_POLL = 0x1000
+ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FLUSHO = 0x800000
+ F_ADDFILESIGS = 0x3d
+ F_ADDSIGS = 0x3b
+ F_ALLOCATEALL = 0x4
+ F_ALLOCATECONTIG = 0x2
+ F_CHKCLEAN = 0x29
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0x43
+ F_FINDSIGS = 0x4e
+ F_FLUSH_DATA = 0x28
+ F_FREEZE_FS = 0x35
+ F_FULLFSYNC = 0x33
+ F_GETCODEDIR = 0x48
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETLKPID = 0x42
+ F_GETNOSIGPIPE = 0x4a
+ F_GETOWN = 0x5
+ F_GETPATH = 0x32
+ F_GETPATH_MTMINFO = 0x47
+ F_GETPROTECTIONCLASS = 0x3f
+ F_GETPROTECTIONLEVEL = 0x4d
+ F_GLOBAL_NOCACHE = 0x37
+ F_LOG2PHYS = 0x31
+ F_LOG2PHYS_EXT = 0x41
+ F_NOCACHE = 0x30
+ F_NODIRECT = 0x3e
+ F_OK = 0x0
+ F_PATHPKG_CHECK = 0x34
+ F_PEOFPOSMODE = 0x3
+ F_PREALLOCATE = 0x2a
+ F_RDADVISE = 0x2c
+ F_RDAHEAD = 0x2d
+ F_RDLCK = 0x1
+ F_SETBACKINGSTORE = 0x46
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETLKWTIMEOUT = 0xa
+ F_SETNOSIGPIPE = 0x49
+ F_SETOWN = 0x6
+ F_SETPROTECTIONCLASS = 0x40
+ F_SETSIZE = 0x2b
+ F_SINGLE_WRITER = 0x4c
+ F_THAW_FS = 0x36
+ F_TRANSCODEKEY = 0x4b
+ F_UNLCK = 0x2
+ F_VOLPOSMODE = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFF_ALLMULTI = 0x200
+ IFF_ALTPHYS = 0x4000
+ IFF_BROADCAST = 0x2
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_AAL5 = 0x31
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ATM = 0x25
+ IFT_BRIDGE = 0xd1
+ IFT_CARP = 0xf8
+ IFT_CELLULAR = 0xff
+ IFT_CEPT = 0x13
+ IFT_DS3 = 0x1e
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0x38
+ IFT_FDDI = 0xf
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_GIF = 0x37
+ IFT_HDH1822 = 0x3
+ IFT_HIPPI = 0x2f
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE8023ADLAG = 0x88
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88026 = 0xa
+ IFT_L2VLAN = 0x87
+ IFT_LAPB = 0x10
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_NSIP = 0x1b
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PDP = 0xff
+ IFT_PFLOG = 0xf5
+ IFT_PFSYNC = 0xf6
+ IFT_PPP = 0x17
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PTPSERIAL = 0x16
+ IFT_RS232 = 0x21
+ IFT_SDLC = 0x11
+ IFT_SIP = 0x1f
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_STARLAN = 0xb
+ IFT_STF = 0x39
+ IFT_T1 = 0x12
+ IFT_ULTRA = 0x1d
+ IFT_V35 = 0x2d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LINKLOCALNETNUM = 0xa9fe0000
+ IN_LOOPBACKNET = 0x7f
+ IPPROTO_3PC = 0x22
+ IPPROTO_ADFS = 0x44
+ IPPROTO_AH = 0x33
+ IPPROTO_AHIP = 0x3d
+ IPPROTO_APES = 0x63
+ IPPROTO_ARGUS = 0xd
+ IPPROTO_AX25 = 0x5d
+ IPPROTO_BHA = 0x31
+ IPPROTO_BLT = 0x1e
+ IPPROTO_BRSATMON = 0x4c
+ IPPROTO_CFTP = 0x3e
+ IPPROTO_CHAOS = 0x10
+ IPPROTO_CMTP = 0x26
+ IPPROTO_CPHB = 0x49
+ IPPROTO_CPNX = 0x48
+ IPPROTO_DDP = 0x25
+ IPPROTO_DGP = 0x56
+ IPPROTO_DIVERT = 0xfe
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_EMCON = 0xe
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GMTP = 0x64
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HELLO = 0x3f
+ IPPROTO_HMP = 0x14
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IDPR = 0x23
+ IPPROTO_IDRP = 0x2d
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IGP = 0x55
+ IPPROTO_IGRP = 0x58
+ IPPROTO_IL = 0x28
+ IPPROTO_INLSP = 0x34
+ IPPROTO_INP = 0x20
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPCV = 0x47
+ IPPROTO_IPEIP = 0x5e
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPPC = 0x43
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_IRTP = 0x1c
+ IPPROTO_KRYPTOLAN = 0x41
+ IPPROTO_LARP = 0x5b
+ IPPROTO_LEAF1 = 0x19
+ IPPROTO_LEAF2 = 0x1a
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x34
+ IPPROTO_MEAS = 0x13
+ IPPROTO_MHRP = 0x30
+ IPPROTO_MICP = 0x5f
+ IPPROTO_MTP = 0x5c
+ IPPROTO_MUX = 0x12
+ IPPROTO_ND = 0x4d
+ IPPROTO_NHRP = 0x36
+ IPPROTO_NONE = 0x3b
+ IPPROTO_NSP = 0x1f
+ IPPROTO_NVPII = 0xb
+ IPPROTO_OSPFIGP = 0x59
+ IPPROTO_PGM = 0x71
+ IPPROTO_PIGP = 0x9
+ IPPROTO_PIM = 0x67
+ IPPROTO_PRM = 0x15
+ IPPROTO_PUP = 0xc
+ IPPROTO_PVP = 0x4b
+ IPPROTO_RAW = 0xff
+ IPPROTO_RCCMON = 0xa
+ IPPROTO_RDP = 0x1b
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_RVD = 0x42
+ IPPROTO_SATEXPAK = 0x40
+ IPPROTO_SATMON = 0x45
+ IPPROTO_SCCSP = 0x60
+ IPPROTO_SCTP = 0x84
+ IPPROTO_SDRP = 0x2a
+ IPPROTO_SEP = 0x21
+ IPPROTO_SRPC = 0x5a
+ IPPROTO_ST = 0x7
+ IPPROTO_SVMTP = 0x52
+ IPPROTO_SWIPE = 0x35
+ IPPROTO_TCF = 0x57
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_TPXX = 0x27
+ IPPROTO_TRUNK1 = 0x17
+ IPPROTO_TRUNK2 = 0x18
+ IPPROTO_TTP = 0x54
+ IPPROTO_UDP = 0x11
+ IPPROTO_VINES = 0x53
+ IPPROTO_VISA = 0x46
+ IPPROTO_VMTP = 0x51
+ IPPROTO_WBEXPAK = 0x4f
+ IPPROTO_WBMON = 0x4e
+ IPPROTO_WSN = 0x4a
+ IPPROTO_XNET = 0xf
+ IPPROTO_XTP = 0x24
+ IPV6_2292DSTOPTS = 0x17
+ IPV6_2292HOPLIMIT = 0x14
+ IPV6_2292HOPOPTS = 0x16
+ IPV6_2292NEXTHOP = 0x15
+ IPV6_2292PKTINFO = 0x13
+ IPV6_2292PKTOPTIONS = 0x19
+ IPV6_2292RTHDR = 0x18
+ IPV6_BINDV6ONLY = 0x1b
+ IPV6_BOUND_IF = 0x7d
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_FW_ADD = 0x1e
+ IPV6_FW_DEL = 0x1f
+ IPV6_FW_FLUSH = 0x20
+ IPV6_FW_GET = 0x22
+ IPV6_FW_ZERO = 0x21
+ IPV6_HLIMDEC = 0x1
+ IPV6_IPSEC_POLICY = 0x1c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXOPTHDR = 0x800
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
+ IPV6_MAX_MEMBERSHIPS = 0xfff
+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
+ IPV6_MIN_MEMBERSHIPS = 0x1f
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVTCLASS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x24
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_ADD_SOURCE_MEMBERSHIP = 0x46
+ IP_BLOCK_SOURCE = 0x48
+ IP_BOUND_IF = 0x19
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_DROP_SOURCE_MEMBERSHIP = 0x47
+ IP_DUMMYNET_CONFIGURE = 0x3c
+ IP_DUMMYNET_DEL = 0x3d
+ IP_DUMMYNET_FLUSH = 0x3e
+ IP_DUMMYNET_GET = 0x40
+ IP_FAITH = 0x16
+ IP_FW_ADD = 0x28
+ IP_FW_DEL = 0x29
+ IP_FW_FLUSH = 0x2a
+ IP_FW_GET = 0x2c
+ IP_FW_RESETLOG = 0x2d
+ IP_FW_ZERO = 0x2b
+ IP_HDRINCL = 0x2
+ IP_IPSEC_POLICY = 0x15
+ IP_MAXPACKET = 0xffff
+ IP_MAX_GROUP_SRC_FILTER = 0x200
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MAX_SOCK_MUTE_FILTER = 0x80
+ IP_MAX_SOCK_SRC_FILTER = 0x80
+ IP_MF = 0x2000
+ IP_MIN_MEMBERSHIPS = 0x1f
+ IP_MSFILTER = 0x4a
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_IFINDEX = 0x42
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_MULTICAST_VIF = 0xe
+ IP_NAT__XXX = 0x37
+ IP_OFFMASK = 0x1fff
+ IP_OLD_FW_ADD = 0x32
+ IP_OLD_FW_DEL = 0x33
+ IP_OLD_FW_FLUSH = 0x34
+ IP_OLD_FW_GET = 0x36
+ IP_OLD_FW_RESETLOG = 0x38
+ IP_OLD_FW_ZERO = 0x35
+ IP_OPTIONS = 0x1
+ IP_PKTINFO = 0x1a
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
+ IP_RECVPKTINFO = 0x1a
+ IP_RECVRETOPTS = 0x6
+ IP_RECVTTL = 0x18
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_RSVP_OFF = 0x10
+ IP_RSVP_ON = 0xf
+ IP_RSVP_VIF_OFF = 0x12
+ IP_RSVP_VIF_ON = 0x11
+ IP_STRIPHDR = 0x17
+ IP_TOS = 0x3
+ IP_TRAFFIC_MGT_BACKGROUND = 0x41
+ IP_TTL = 0x4
+ IP_UNBLOCK_SOURCE = 0x49
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_CAN_REUSE = 0x9
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x5
+ MADV_FREE_REUSABLE = 0x7
+ MADV_FREE_REUSE = 0x8
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_WILLNEED = 0x3
+ MADV_ZERO_WIRED_PAGES = 0x6
+ MAP_ANON = 0x1000
+ MAP_COPY = 0x2
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_HASSEMAPHORE = 0x200
+ MAP_JIT = 0x800
+ MAP_NOCACHE = 0x400
+ MAP_NOEXTEND = 0x100
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_RESERVED0080 = 0x80
+ MAP_SHARED = 0x1
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ MS_ASYNC = 0x1
+ MS_DEACTIVATE = 0x8
+ MS_INVALIDATE = 0x2
+ MS_KILLPAGES = 0x4
+ MS_SYNC = 0x10
+ NAME_MAX = 0xff
+ NET_RT_DUMP = 0x1
+ NET_RT_DUMP2 = 0x7
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+ NET_RT_IFLIST2 = 0x6
+ NET_RT_MAXID = 0xa
+ NET_RT_STAT = 0x4
+ NET_RT_TRASH = 0x5
+ NOFLSH = 0x80000000
+ NOTE_ABSOLUTE = 0x8
+ NOTE_ATTRIB = 0x8
+ NOTE_BACKGROUND = 0x40
+ NOTE_CHILD = 0x4
+ NOTE_CRITICAL = 0x20
+ NOTE_DELETE = 0x1
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXITSTATUS = 0x4000000
+ NOTE_EXIT_CSERROR = 0x40000
+ NOTE_EXIT_DECRYPTFAIL = 0x10000
+ NOTE_EXIT_DETAIL = 0x2000000
+ NOTE_EXIT_DETAIL_MASK = 0x70000
+ NOTE_EXIT_MEMORY = 0x20000
+ NOTE_EXIT_REPARENTED = 0x80000
+ NOTE_EXTEND = 0x4
+ NOTE_FFAND = 0x40000000
+ NOTE_FFCOPY = 0xc0000000
+ NOTE_FFCTRLMASK = 0xc0000000
+ NOTE_FFLAGSMASK = 0xffffff
+ NOTE_FFNOP = 0x0
+ NOTE_FFOR = 0x80000000
+ NOTE_FORK = 0x40000000
+ NOTE_LEEWAY = 0x10
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_NONE = 0x80
+ NOTE_NSECONDS = 0x4
+ NOTE_PCTRLMASK = -0x100000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_REAP = 0x10000000
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_SECONDS = 0x1
+ NOTE_SIGNAL = 0x8000000
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_TRIGGER = 0x1000000
+ NOTE_USECONDS = 0x2
+ NOTE_VM_ERROR = 0x10000000
+ NOTE_VM_PRESSURE = 0x80000000
+ NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000
+ NOTE_VM_PRESSURE_TERMINATE = 0x40000000
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ OFDEL = 0x20000
+ OFILL = 0x80
+ ONLCR = 0x2
+ ONLRET = 0x40
+ ONOCR = 0x20
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_ALERT = 0x20000000
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x1000000
+ O_CREAT = 0x200
+ O_DIRECTORY = 0x100000
+ O_DP_GETRAWENCRYPTED = 0x1
+ O_DSYNC = 0x400000
+ O_EVTONLY = 0x8000
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x20000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_POPUP = 0x80000000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_SHLOCK = 0x10
+ O_SYMLINK = 0x200000
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PT_ATTACH = 0xa
+ PT_ATTACHEXC = 0xe
+ PT_CONTINUE = 0x7
+ PT_DENY_ATTACH = 0x1f
+ PT_DETACH = 0xb
+ PT_FIRSTMACH = 0x20
+ PT_FORCEQUOTA = 0x1e
+ PT_KILL = 0x8
+ PT_READ_D = 0x2
+ PT_READ_I = 0x1
+ PT_READ_U = 0x3
+ PT_SIGEXC = 0xc
+ PT_STEP = 0x9
+ PT_THUPDATE = 0xd
+ PT_TRACE_ME = 0x0
+ PT_WRITE_D = 0x5
+ PT_WRITE_I = 0x4
+ PT_WRITE_U = 0x6
+ RLIMIT_AS = 0x5
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_CPU_USAGE_MONITOR = 0x2
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_MAX = 0x8
+ RTAX_NETMASK = 0x2
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_NETMASK = 0x4
+ RTF_BLACKHOLE = 0x1000
+ RTF_BROADCAST = 0x400000
+ RTF_CLONING = 0x100
+ RTF_CONDEMNED = 0x2000000
+ RTF_DELCLONE = 0x80
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_IFREF = 0x4000000
+ RTF_IFSCOPE = 0x1000000
+ RTF_LLINFO = 0x400
+ RTF_LOCAL = 0x200000
+ RTF_MODIFIED = 0x20
+ RTF_MULTICAST = 0x800000
+ RTF_PINNED = 0x100000
+ RTF_PRCLONING = 0x10000
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_PROTO3 = 0x40000
+ RTF_PROXY = 0x8000000
+ RTF_REJECT = 0x8
+ RTF_ROUTER = 0x10000000
+ RTF_STATIC = 0x800
+ RTF_UP = 0x1
+ RTF_WASCLONED = 0x20000
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_DELMADDR = 0x10
+ RTM_GET = 0x4
+ RTM_GET2 = 0x14
+ RTM_IFINFO = 0xe
+ RTM_IFINFO2 = 0x12
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_NEWMADDR = 0xf
+ RTM_NEWMADDR2 = 0x13
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_VERSION = 0x5
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ SCM_CREDS = 0x3
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x2
+ SCM_TIMESTAMP_MONOTONIC = 0x4
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80206931
+ SIOCAIFADDR = 0x8040691a
+ SIOCARPIPLL = 0xc0206928
+ SIOCATMARK = 0x40047307
+ SIOCAUTOADDR = 0xc0206926
+ SIOCAUTONETMASK = 0x80206927
+ SIOCDELMULTI = 0x80206932
+ SIOCDIFADDR = 0x80206919
+ SIOCDIFPHYADDR = 0x80206941
+ SIOCGDRVSPEC = 0xc028697b
+ SIOCGETVLAN = 0xc020697f
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFALTMTU = 0xc0206948
+ SIOCGIFASYNCMAP = 0xc020697c
+ SIOCGIFBOND = 0xc0206947
+ SIOCGIFBRDADDR = 0xc0206923
+ SIOCGIFCAP = 0xc020695b
+ SIOCGIFCONF = 0xc00c6924
+ SIOCGIFDEVMTU = 0xc0206944
+ SIOCGIFDSTADDR = 0xc0206922
+ SIOCGIFFLAGS = 0xc0206911
+ SIOCGIFGENERIC = 0xc020693a
+ SIOCGIFKPI = 0xc0206987
+ SIOCGIFMAC = 0xc0206982
+ SIOCGIFMEDIA = 0xc02c6938
+ SIOCGIFMETRIC = 0xc0206917
+ SIOCGIFMTU = 0xc0206933
+ SIOCGIFNETMASK = 0xc0206925
+ SIOCGIFPDSTADDR = 0xc0206940
+ SIOCGIFPHYS = 0xc0206935
+ SIOCGIFPSRCADDR = 0xc020693f
+ SIOCGIFSTATUS = 0xc331693d
+ SIOCGIFVLAN = 0xc020697f
+ SIOCGIFWAKEFLAGS = 0xc0206988
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCIFCREATE = 0xc0206978
+ SIOCIFCREATE2 = 0xc020697a
+ SIOCIFDESTROY = 0x80206979
+ SIOCIFGCLONERS = 0xc0106981
+ SIOCRSLVMULTI = 0xc010693b
+ SIOCSDRVSPEC = 0x8028697b
+ SIOCSETVLAN = 0x8020697e
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8020690c
+ SIOCSIFALTMTU = 0x80206945
+ SIOCSIFASYNCMAP = 0x8020697d
+ SIOCSIFBOND = 0x80206946
+ SIOCSIFBRDADDR = 0x80206913
+ SIOCSIFCAP = 0x8020695a
+ SIOCSIFDSTADDR = 0x8020690e
+ SIOCSIFFLAGS = 0x80206910
+ SIOCSIFGENERIC = 0x80206939
+ SIOCSIFKPI = 0x80206986
+ SIOCSIFLLADDR = 0x8020693c
+ SIOCSIFMAC = 0x80206983
+ SIOCSIFMEDIA = 0xc0206937
+ SIOCSIFMETRIC = 0x80206918
+ SIOCSIFMTU = 0x80206934
+ SIOCSIFNETMASK = 0x80206916
+ SIOCSIFPHYADDR = 0x8040693e
+ SIOCSIFPHYS = 0x80206936
+ SIOCSIFVLAN = 0x8020697e
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SOCK_DGRAM = 0x2
+ SOCK_MAXADDRLEN = 0xff
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x80
+ SO_LINGER_SEC = 0x1080
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x400
+ SO_TIMESTAMP_MONOTONIC = 0x800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x40
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_IFWHT = 0xe000
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISTXT = 0x200
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_CONNECTIONTIMEOUT = 0x20
+ TCP_ENABLE_ECN = 0x104
+ TCP_KEEPALIVE = 0x10
+ TCP_KEEPCNT = 0x102
+ TCP_KEEPINTVL = 0x101
+ TCP_MAXHLEN = 0x3c
+ TCP_MAXOLEN = 0x28
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_SACK = 0x4
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MINMSS = 0xd8
+ TCP_MSS = 0x200
+ TCP_NODELAY = 0x1
+ TCP_NOOPT = 0x8
+ TCP_NOPUSH = 0x4
+ TCP_NOTSENT_LOWAT = 0x201
+ TCP_RXT_CONNDROPTIME = 0x80
+ TCP_RXT_FINDROP = 0x100
+ TCP_SENDMOREACKS = 0x103
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDCDTIMESTAMP = 0x40107458
+ TIOCDRAIN = 0x2000745e
+ TIOCDSIMICROCODE = 0x20007455
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLUSH = 0x80047410
+ TIOCGDRAINWAIT = 0x40047456
+ TIOCGETA = 0x40487413
+ TIOCGETD = 0x4004741a
+ TIOCGPGRP = 0x40047477
+ TIOCGWINSZ = 0x40087468
+ TIOCIXOFF = 0x20007480
+ TIOCIXON = 0x20007481
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGDTRWAIT = 0x4004745a
+ TIOCMGET = 0x4004746a
+ TIOCMODG = 0x40047403
+ TIOCMODS = 0x80047404
+ TIOCMSDTRWAIT = 0x8004745b
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCPTYGNAME = 0x40807453
+ TIOCPTYGRANT = 0x20007454
+ TIOCPTYUNLK = 0x20007452
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCONS = 0x20007463
+ TIOCSCTTY = 0x20007461
+ TIOCSDRAINWAIT = 0x80047457
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x80487414
+ TIOCSETAF = 0x80487416
+ TIOCSETAW = 0x80487415
+ TIOCSETD = 0x8004741b
+ TIOCSIG = 0x2000745f
+ TIOCSPGRP = 0x80047476
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x20007465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCTIMESTAMP = 0x40107459
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VT0 = 0x0
+ VT1 = 0x10000
+ VTDLY = 0x10000
+ VTIME = 0x11
+ VWERASE = 0x4
+ WCONTINUED = 0x10
+ WCOREFLAG = 0x80
+ WEXITED = 0x4
+ WNOHANG = 0x1
+ WNOWAIT = 0x20
+ WORDSIZE = 0x40
+ WSTOPPED = 0x8
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = Errno(0x7)
+ EACCES = Errno(0xd)
+ EADDRINUSE = Errno(0x30)
+ EADDRNOTAVAIL = Errno(0x31)
+ EAFNOSUPPORT = Errno(0x2f)
+ EAGAIN = Errno(0x23)
+ EALREADY = Errno(0x25)
+ EAUTH = Errno(0x50)
+ EBADARCH = Errno(0x56)
+ EBADEXEC = Errno(0x55)
+ EBADF = Errno(0x9)
+ EBADMACHO = Errno(0x58)
+ EBADMSG = Errno(0x5e)
+ EBADRPC = Errno(0x48)
+ EBUSY = Errno(0x10)
+ ECANCELED = Errno(0x59)
+ ECHILD = Errno(0xa)
+ ECONNABORTED = Errno(0x35)
+ ECONNREFUSED = Errno(0x3d)
+ ECONNRESET = Errno(0x36)
+ EDEADLK = Errno(0xb)
+ EDESTADDRREQ = Errno(0x27)
+ EDEVERR = Errno(0x53)
+ EDOM = Errno(0x21)
+ EDQUOT = Errno(0x45)
+ EEXIST = Errno(0x11)
+ EFAULT = Errno(0xe)
+ EFBIG = Errno(0x1b)
+ EFTYPE = Errno(0x4f)
+ EHOSTDOWN = Errno(0x40)
+ EHOSTUNREACH = Errno(0x41)
+ EIDRM = Errno(0x5a)
+ EILSEQ = Errno(0x5c)
+ EINPROGRESS = Errno(0x24)
+ EINTR = Errno(0x4)
+ EINVAL = Errno(0x16)
+ EIO = Errno(0x5)
+ EISCONN = Errno(0x38)
+ EISDIR = Errno(0x15)
+ ELAST = Errno(0x6a)
+ ELOOP = Errno(0x3e)
+ EMFILE = Errno(0x18)
+ EMLINK = Errno(0x1f)
+ EMSGSIZE = Errno(0x28)
+ EMULTIHOP = Errno(0x5f)
+ ENAMETOOLONG = Errno(0x3f)
+ ENEEDAUTH = Errno(0x51)
+ ENETDOWN = Errno(0x32)
+ ENETRESET = Errno(0x34)
+ ENETUNREACH = Errno(0x33)
+ ENFILE = Errno(0x17)
+ ENOATTR = Errno(0x5d)
+ ENOBUFS = Errno(0x37)
+ ENODATA = Errno(0x60)
+ ENODEV = Errno(0x13)
+ ENOENT = Errno(0x2)
+ ENOEXEC = Errno(0x8)
+ ENOLCK = Errno(0x4d)
+ ENOLINK = Errno(0x61)
+ ENOMEM = Errno(0xc)
+ ENOMSG = Errno(0x5b)
+ ENOPOLICY = Errno(0x67)
+ ENOPROTOOPT = Errno(0x2a)
+ ENOSPC = Errno(0x1c)
+ ENOSR = Errno(0x62)
+ ENOSTR = Errno(0x63)
+ ENOSYS = Errno(0x4e)
+ ENOTBLK = Errno(0xf)
+ ENOTCONN = Errno(0x39)
+ ENOTDIR = Errno(0x14)
+ ENOTEMPTY = Errno(0x42)
+ ENOTRECOVERABLE = Errno(0x68)
+ ENOTSOCK = Errno(0x26)
+ ENOTSUP = Errno(0x2d)
+ ENOTTY = Errno(0x19)
+ ENXIO = Errno(0x6)
+ EOPNOTSUPP = Errno(0x66)
+ EOVERFLOW = Errno(0x54)
+ EOWNERDEAD = Errno(0x69)
+ EPERM = Errno(0x1)
+ EPFNOSUPPORT = Errno(0x2e)
+ EPIPE = Errno(0x20)
+ EPROCLIM = Errno(0x43)
+ EPROCUNAVAIL = Errno(0x4c)
+ EPROGMISMATCH = Errno(0x4b)
+ EPROGUNAVAIL = Errno(0x4a)
+ EPROTO = Errno(0x64)
+ EPROTONOSUPPORT = Errno(0x2b)
+ EPROTOTYPE = Errno(0x29)
+ EPWROFF = Errno(0x52)
+ EQFULL = Errno(0x6a)
+ ERANGE = Errno(0x22)
+ EREMOTE = Errno(0x47)
+ EROFS = Errno(0x1e)
+ ERPCMISMATCH = Errno(0x49)
+ ESHLIBVERS = Errno(0x57)
+ ESHUTDOWN = Errno(0x3a)
+ ESOCKTNOSUPPORT = Errno(0x2c)
+ ESPIPE = Errno(0x1d)
+ ESRCH = Errno(0x3)
+ ESTALE = Errno(0x46)
+ ETIME = Errno(0x65)
+ ETIMEDOUT = Errno(0x3c)
+ ETOOMANYREFS = Errno(0x3b)
+ ETXTBSY = Errno(0x1a)
+ EUSERS = Errno(0x44)
+ EWOULDBLOCK = Errno(0x23)
+ EXDEV = Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = Signal(0x6)
+ SIGALRM = Signal(0xe)
+ SIGBUS = Signal(0xa)
+ SIGCHLD = Signal(0x14)
+ SIGCONT = Signal(0x13)
+ SIGEMT = Signal(0x7)
+ SIGFPE = Signal(0x8)
+ SIGHUP = Signal(0x1)
+ SIGILL = Signal(0x4)
+ SIGINFO = Signal(0x1d)
+ SIGINT = Signal(0x2)
+ SIGIO = Signal(0x17)
+ SIGIOT = Signal(0x6)
+ SIGKILL = Signal(0x9)
+ SIGPIPE = Signal(0xd)
+ SIGPROF = Signal(0x1b)
+ SIGQUIT = Signal(0x3)
+ SIGSEGV = Signal(0xb)
+ SIGSTOP = Signal(0x11)
+ SIGSYS = Signal(0xc)
+ SIGTERM = Signal(0xf)
+ SIGTRAP = Signal(0x5)
+ SIGTSTP = Signal(0x12)
+ SIGTTIN = Signal(0x15)
+ SIGTTOU = Signal(0x16)
+ SIGURG = Signal(0x10)
+ SIGUSR1 = Signal(0x1e)
+ SIGUSR2 = Signal(0x1f)
+ SIGVTALRM = Signal(0x1a)
+ SIGWINCH = Signal(0x1c)
+ SIGXCPU = Signal(0x18)
+ SIGXFSZ = Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "device not configured",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource deadlock avoided",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "resource busy",
+ 17: "file exists",
+ 18: "cross-device link",
+ 19: "operation not supported by device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "result too large",
+ 35: "resource temporarily unavailable",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol family",
+ 48: "address already in use",
+ 49: "can't assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "socket is already connected",
+ 57: "socket is not connected",
+ 58: "can't send after socket shutdown",
+ 59: "too many references: can't splice",
+ 60: "operation timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disc quota exceeded",
+ 70: "stale NFS file handle",
+ 71: "too many levels of remote in path",
+ 72: "RPC struct is bad",
+ 73: "RPC version wrong",
+ 74: "RPC prog. not avail",
+ 75: "program version wrong",
+ 76: "bad procedure for program",
+ 77: "no locks available",
+ 78: "function not implemented",
+ 79: "inappropriate file type or format",
+ 80: "authentication error",
+ 81: "need authenticator",
+ 82: "device power is off",
+ 83: "device error",
+ 84: "value too large to be stored in data type",
+ 85: "bad executable (or shared library)",
+ 86: "bad CPU type in executable",
+ 87: "shared library version mismatch",
+ 88: "malformed Mach-o file",
+ 89: "operation canceled",
+ 90: "identifier removed",
+ 91: "no message of desired type",
+ 92: "illegal byte sequence",
+ 93: "attribute not found",
+ 94: "bad message",
+ 95: "EMULTIHOP (Reserved)",
+ 96: "no message available on STREAM",
+ 97: "ENOLINK (Reserved)",
+ 98: "no STREAM resources",
+ 99: "not a STREAM",
+ 100: "protocol error",
+ 101: "STREAM ioctl timeout",
+ 102: "operation not supported on socket",
+ 103: "policy not found",
+ 104: "state not recoverable",
+ 105: "previous owner died",
+ 106: "interface output queue is full",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/BPT trap",
+ 6: "abort trap",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "suspended (signal)",
+ 18: "suspended",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "cputime limit exceeded",
+ 25: "filesize limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window size changes",
+ 29: "information request",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+}
diff --git a/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.go b/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.go
new file mode 100644
index 0000000000..08da23789a
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.go
@@ -0,0 +1,2035 @@
+// mksyscall.pl -darwin -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
+// Code generated by the command above; DO NOT EDIT.
+
+//go:build darwin && arm64
+
+package syscall
+
+import "unsafe"
+import "internal/abi"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getgroups_trampoline()
+
+//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setgroups_trampoline()
+
+//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_wait4_trampoline()
+
+//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_accept_trampoline()
+
+//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_bind_trampoline()
+
+//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_connect_trampoline()
+
+//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_socket_trampoline()
+
+//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getsockopt_trampoline()
+
+//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setsockopt_trampoline()
+
+//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getpeername_trampoline()
+
+//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getsockname_trampoline()
+
+//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_shutdown_trampoline()
+
+//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ _, _, e1 := rawSyscall6(abi.FuncPCABI0(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_socketpair_trampoline()
+
+//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_recvfrom_trampoline()
+
+//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_sendto_trampoline()
+
+//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_recvmsg_trampoline()
+
+//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_sendmsg_trampoline()
+
+//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_kevent_trampoline()
+
+//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_utimes_trampoline()
+
+//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_futimes_trampoline()
+
+//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fcntl_trampoline()
+
+//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]int32) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_pipe_trampoline()
+
+//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_utimensat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_utimensat_trampoline()
+
+//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_kill_trampoline()
+
+//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_access_trampoline()
+
+//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_adjtime_trampoline()
+
+//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_chdir_trampoline()
+
+//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_chflags_trampoline()
+
+//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_chmod_trampoline()
+
+//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_chown_trampoline()
+
+//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_chroot_trampoline()
+
+//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_close_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_close_trampoline()
+
+//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func closedir(dir uintptr) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_closedir_trampoline), uintptr(dir), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_closedir_trampoline()
+
+//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_dup_trampoline), uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_dup_trampoline()
+
+//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_dup2_trampoline()
+
+//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path1)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(path2)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_exchangedata_trampoline()
+
+//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fchdir_trampoline()
+
+//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fchflags_trampoline()
+
+//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fchmod_trampoline()
+
+//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fchown_trampoline()
+
+//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_flock_trampoline()
+
+//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fpathconf_trampoline()
+
+//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fsync_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fsync_trampoline()
+
+//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_ftruncate_trampoline()
+
+//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+ r0, _, _ := syscall(abi.FuncPCABI0(libc_getdtablesize_trampoline), 0, 0, 0)
+ size = int(r0)
+ return
+}
+
+func libc_getdtablesize_trampoline()
+
+//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getegid_trampoline), 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+func libc_getegid_trampoline()
+
+//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_geteuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+func libc_geteuid_trampoline()
+
+//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getgid_trampoline), 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+func libc_getgid_trampoline()
+
+//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getpgid_trampoline()
+
+//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getpgrp_trampoline), 0, 0, 0)
+ pgrp = int(r0)
+ return
+}
+
+func libc_getpgrp_trampoline()
+
+//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getpid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ return
+}
+
+func libc_getpid_trampoline()
+
+//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getppid_trampoline), 0, 0, 0)
+ ppid = int(r0)
+ return
+}
+
+func libc_getppid_trampoline()
+
+//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getpriority_trampoline()
+
+//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getrlimit_trampoline()
+
+//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getrusage_trampoline()
+
+//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getsid_trampoline()
+
+//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_getuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+func libc_getuid_trampoline()
+
+//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+ r0, _, _ := rawSyscall(abi.FuncPCABI0(libc_issetugid_trampoline), 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+}
+
+func libc_issetugid_trampoline()
+
+//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_kqueue_trampoline), 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_kqueue_trampoline()
+
+//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_lchown_trampoline()
+
+//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_link_trampoline()
+
+//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_listen_trampoline()
+
+//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mkdir_trampoline()
+
+//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mkfifo_trampoline()
+
+//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mknod_trampoline()
+
+//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mlock_trampoline()
+
+//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mlockall_trampoline()
+
+//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mprotect_trampoline()
+
+//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func msync(b []byte, flags int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_msync_trampoline()
+
+//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_munlock_trampoline()
+
+//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_munlockall_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_munlockall_trampoline()
+
+//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_open_trampoline()
+
+//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_pathconf_trampoline()
+
+//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_pread_trampoline()
+
+//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_pwrite_trampoline()
+
+//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_read_trampoline()
+
+//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
+ r0, _, _ := syscall(abi.FuncPCABI0(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
+ res = Errno(r0)
+ return
+}
+
+func libc_readdir_r_trampoline()
+
+//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_readlink_trampoline()
+
+//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(to)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_rename_trampoline()
+
+//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_revoke_trampoline()
+
+//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_rmdir_trampoline()
+
+//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ r0, _, e1 := syscallX(abi.FuncPCABI0(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))
+ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_lseek_trampoline()
+
+//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_select_trampoline()
+
+//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setegid_trampoline()
+
+//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_seteuid_trampoline()
+
+//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setgid_trampoline()
+
+//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(name)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setlogin_trampoline()
+
+//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setpgid_trampoline()
+
+//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setpriority_trampoline()
+
+//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setprivexec_trampoline()
+
+//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setregid_trampoline()
+
+//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setreuid_trampoline()
+
+//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setrlimit_trampoline()
+
+//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setsid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setsid_trampoline()
+
+//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_settimeofday_trampoline()
+
+//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setuid_trampoline), uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_setuid_trampoline()
+
+//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_symlink_trampoline()
+
+//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_sync_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_sync_trampoline()
+
+//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_truncate_trampoline()
+
+//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+ r0, _, _ := syscall(abi.FuncPCABI0(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+}
+
+func libc_umask_trampoline()
+
+//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_undelete_trampoline()
+
+//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_unlink_trampoline()
+
+//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_unmount_trampoline()
+
+//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_write_trampoline()
+
+//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (cnt uintptr, err error) {
+ var _p0 unsafe.Pointer
+ if len(iovecs) > 0 {
+ _p0 = unsafe.Pointer(&iovecs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscallX(abi.FuncPCABI0(libc_writev_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+ cnt = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_writev_trampoline()
+
+//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+ r0, _, e1 := syscall6X(abi.FuncPCABI0(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_mmap_trampoline()
+
+//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_munmap_trampoline()
+
+//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fork() (pid int, err error) {
+ r0, _, e1 := rawSyscall(abi.FuncPCABI0(libc_fork_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fork_trampoline()
+
+//go:cgo_import_dynamic libc_fork fork "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ioctl(fd int, req int, arg int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_ioctl_trampoline()
+
+//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func execve(path *byte, argv **byte, envp **byte) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_execve_trampoline), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(argv)), uintptr(unsafe.Pointer(envp)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_execve_trampoline()
+
+//go:cgo_import_dynamic libc_execve execve "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exit(res int) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_exit_trampoline), uintptr(res), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_exit_trampoline()
+
+//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+ var _p0 unsafe.Pointer
+ if len(mib) > 0 {
+ _p0 = unsafe.Pointer(&mib[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_sysctl_trampoline()
+
+//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (val int, err error) {
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func unlinkat(fd int, path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_unlinkat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_unlinkat_trampoline()
+
+//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func openat(fd int, path string, flags int, perm uint32) (fdret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := syscall6(abi.FuncPCABI0(libc_openat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(perm), 0, 0)
+ fdret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_openat_trampoline()
+
+//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getcwd(buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := syscall(abi.FuncPCABI0(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_getcwd_trampoline()
+
+//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fstat_trampoline()
+
+//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fstatfs_trampoline()
+
+//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tp *Timeval) (err error) {
+ _, _, e1 := rawSyscall(abi.FuncPCABI0(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_gettimeofday_trampoline()
+
+//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_lstat_trampoline()
+
+//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_stat_trampoline()
+
+//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall(abi.FuncPCABI0(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_statfs_trampoline()
+
+//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_fstatat_trampoline()
+
+//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+//go:nosplit
+func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_ptrace_trampoline()
+
+//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+//go:nosplit
+func ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) {
+ _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.s b/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.s
new file mode 100644
index 0000000000..f00747939e
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/zsyscall_darwin_arm64.s
@@ -0,0 +1,255 @@
+// go run mkasm.go darwin arm64
+// Code generated by the command above; DO NOT EDIT.
+#include "textflag.h"
+TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getfsstat(SB)
+TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fdopendir(SB)
+TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_sendfile(SB)
+TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getgroups(SB)
+TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setgroups(SB)
+TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_wait4(SB)
+TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_accept(SB)
+TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_bind(SB)
+TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_connect(SB)
+TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_socket(SB)
+TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getsockopt(SB)
+TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setsockopt(SB)
+TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getpeername(SB)
+TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getsockname(SB)
+TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_shutdown(SB)
+TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_socketpair(SB)
+TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_recvfrom(SB)
+TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_sendto(SB)
+TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_recvmsg(SB)
+TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_sendmsg(SB)
+TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_kevent(SB)
+TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_utimes(SB)
+TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_futimes(SB)
+TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fcntl(SB)
+TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_pipe(SB)
+TEXT ·libc_utimensat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_utimensat(SB)
+TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_kill(SB)
+TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_access(SB)
+TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_adjtime(SB)
+TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_chdir(SB)
+TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_chflags(SB)
+TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_chmod(SB)
+TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_chown(SB)
+TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_chroot(SB)
+TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_close(SB)
+TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_closedir(SB)
+TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_dup(SB)
+TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_dup2(SB)
+TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_exchangedata(SB)
+TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fchdir(SB)
+TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fchflags(SB)
+TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fchmod(SB)
+TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fchown(SB)
+TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_flock(SB)
+TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fpathconf(SB)
+TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fsync(SB)
+TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_ftruncate(SB)
+TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getdtablesize(SB)
+TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getegid(SB)
+TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_geteuid(SB)
+TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getgid(SB)
+TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getpgid(SB)
+TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getpgrp(SB)
+TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getpid(SB)
+TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getppid(SB)
+TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getpriority(SB)
+TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getrlimit(SB)
+TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getrusage(SB)
+TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getsid(SB)
+TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getuid(SB)
+TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_issetugid(SB)
+TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_kqueue(SB)
+TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_lchown(SB)
+TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_link(SB)
+TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_listen(SB)
+TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mkdir(SB)
+TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mkfifo(SB)
+TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mknod(SB)
+TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mlock(SB)
+TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mlockall(SB)
+TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mprotect(SB)
+TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_msync(SB)
+TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_munlock(SB)
+TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_munlockall(SB)
+TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_open(SB)
+TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_pathconf(SB)
+TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_pread(SB)
+TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_pwrite(SB)
+TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_read(SB)
+TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_readdir_r(SB)
+TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_readlink(SB)
+TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_rename(SB)
+TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_revoke(SB)
+TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_rmdir(SB)
+TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_lseek(SB)
+TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_select(SB)
+TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setegid(SB)
+TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_seteuid(SB)
+TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setgid(SB)
+TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setlogin(SB)
+TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setpgid(SB)
+TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setpriority(SB)
+TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setprivexec(SB)
+TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setregid(SB)
+TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setreuid(SB)
+TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setrlimit(SB)
+TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setsid(SB)
+TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_settimeofday(SB)
+TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_setuid(SB)
+TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_symlink(SB)
+TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_sync(SB)
+TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_truncate(SB)
+TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_umask(SB)
+TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_undelete(SB)
+TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_unlink(SB)
+TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_unmount(SB)
+TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_write(SB)
+TEXT ·libc_writev_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_writev(SB)
+TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_mmap(SB)
+TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_munmap(SB)
+TEXT ·libc_fork_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fork(SB)
+TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_ioctl(SB)
+TEXT ·libc_execve_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_execve(SB)
+TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_exit(SB)
+TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_sysctl(SB)
+TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_unlinkat(SB)
+TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_openat(SB)
+TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_getcwd(SB)
+TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fstat(SB)
+TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fstatfs(SB)
+TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_gettimeofday(SB)
+TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_lstat(SB)
+TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_stat(SB)
+TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_statfs(SB)
+TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_fstatat(SB)
+TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_ptrace(SB)
diff --git a/contrib/go/_std_1.21/src/syscall/zsysnum_darwin_arm64.go b/contrib/go/_std_1.21/src/syscall/zsysnum_darwin_arm64.go
new file mode 100644
index 0000000000..71309bb4d6
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/zsysnum_darwin_arm64.go
@@ -0,0 +1,358 @@
+// mksysnum_darwin.pl /usr/include/sys/syscall.h
+// Code generated by the command above; DO NOT EDIT.
+
+//go:build arm64 && darwin
+
+package syscall
+
+const (
+ SYS_SYSCALL = 0
+ SYS_EXIT = 1
+ SYS_FORK = 2
+ SYS_READ = 3
+ SYS_WRITE = 4
+ SYS_OPEN = 5
+ SYS_CLOSE = 6
+ SYS_WAIT4 = 7
+ SYS_LINK = 9
+ SYS_UNLINK = 10
+ SYS_CHDIR = 12
+ SYS_FCHDIR = 13
+ SYS_MKNOD = 14
+ SYS_CHMOD = 15
+ SYS_CHOWN = 16
+ SYS_GETFSSTAT = 18
+ SYS_GETPID = 20
+ SYS_SETUID = 23
+ SYS_GETUID = 24
+ SYS_GETEUID = 25
+ SYS_PTRACE = 26
+ SYS_RECVMSG = 27
+ SYS_SENDMSG = 28
+ SYS_RECVFROM = 29
+ SYS_ACCEPT = 30
+ SYS_GETPEERNAME = 31
+ SYS_GETSOCKNAME = 32
+ SYS_ACCESS = 33
+ SYS_CHFLAGS = 34
+ SYS_FCHFLAGS = 35
+ SYS_SYNC = 36
+ SYS_KILL = 37
+ SYS_GETPPID = 39
+ SYS_DUP = 41
+ SYS_PIPE = 42
+ SYS_GETEGID = 43
+ SYS_SIGACTION = 46
+ SYS_GETGID = 47
+ SYS_SIGPROCMASK = 48
+ SYS_GETLOGIN = 49
+ SYS_SETLOGIN = 50
+ SYS_ACCT = 51
+ SYS_SIGPENDING = 52
+ SYS_SIGALTSTACK = 53
+ SYS_IOCTL = 54
+ SYS_REBOOT = 55
+ SYS_REVOKE = 56
+ SYS_SYMLINK = 57
+ SYS_READLINK = 58
+ SYS_EXECVE = 59
+ SYS_UMASK = 60
+ SYS_CHROOT = 61
+ SYS_MSYNC = 65
+ SYS_VFORK = 66
+ SYS_MUNMAP = 73
+ SYS_MPROTECT = 74
+ SYS_MADVISE = 75
+ SYS_MINCORE = 78
+ SYS_GETGROUPS = 79
+ SYS_SETGROUPS = 80
+ SYS_GETPGRP = 81
+ SYS_SETPGID = 82
+ SYS_SETITIMER = 83
+ SYS_SWAPON = 85
+ SYS_GETITIMER = 86
+ SYS_GETDTABLESIZE = 89
+ SYS_DUP2 = 90
+ SYS_FCNTL = 92
+ SYS_SELECT = 93
+ SYS_FSYNC = 95
+ SYS_SETPRIORITY = 96
+ SYS_SOCKET = 97
+ SYS_CONNECT = 98
+ SYS_GETPRIORITY = 100
+ SYS_BIND = 104
+ SYS_SETSOCKOPT = 105
+ SYS_LISTEN = 106
+ SYS_SIGSUSPEND = 111
+ SYS_GETTIMEOFDAY = 116
+ SYS_GETRUSAGE = 117
+ SYS_GETSOCKOPT = 118
+ SYS_READV = 120
+ SYS_WRITEV = 121
+ SYS_SETTIMEOFDAY = 122
+ SYS_FCHOWN = 123
+ SYS_FCHMOD = 124
+ SYS_SETREUID = 126
+ SYS_SETREGID = 127
+ SYS_RENAME = 128
+ SYS_FLOCK = 131
+ SYS_MKFIFO = 132
+ SYS_SENDTO = 133
+ SYS_SHUTDOWN = 134
+ SYS_SOCKETPAIR = 135
+ SYS_MKDIR = 136
+ SYS_RMDIR = 137
+ SYS_UTIMES = 138
+ SYS_FUTIMES = 139
+ SYS_ADJTIME = 140
+ SYS_GETHOSTUUID = 142
+ SYS_SETSID = 147
+ SYS_GETPGID = 151
+ SYS_SETPRIVEXEC = 152
+ SYS_PREAD = 153
+ SYS_PWRITE = 154
+ SYS_NFSSVC = 155
+ SYS_STATFS = 157
+ SYS_FSTATFS = 158
+ SYS_UNMOUNT = 159
+ SYS_GETFH = 161
+ SYS_QUOTACTL = 165
+ SYS_MOUNT = 167
+ SYS_CSOPS = 169
+ SYS_CSOPS_AUDITTOKEN = 170
+ SYS_WAITID = 173
+ SYS_KDEBUG_TRACE = 180
+ SYS_SETGID = 181
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
+ SYS_CHUD = 185
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+ SYS_LSTAT = 190
+ SYS_PATHCONF = 191
+ SYS_FPATHCONF = 192
+ SYS_GETRLIMIT = 194
+ SYS_SETRLIMIT = 195
+ SYS_GETDIRENTRIES = 196
+ SYS_MMAP = 197
+ SYS_LSEEK = 199
+ SYS_TRUNCATE = 200
+ SYS_FTRUNCATE = 201
+ SYS___SYSCTL = 202
+ SYS_MLOCK = 203
+ SYS_MUNLOCK = 204
+ SYS_UNDELETE = 205
+ SYS_ATSOCKET = 206
+ SYS_ATGETMSG = 207
+ SYS_ATPUTMSG = 208
+ SYS_ATPSNDREQ = 209
+ SYS_ATPSNDRSP = 210
+ SYS_ATPGETREQ = 211
+ SYS_ATPGETRSP = 212
+ SYS_OPEN_DPROTECTED_NP = 216
+ SYS_GETATTRLIST = 220
+ SYS_SETATTRLIST = 221
+ SYS_GETDIRENTRIESATTR = 222
+ SYS_EXCHANGEDATA = 223
+ SYS_SEARCHFS = 225
+ SYS_DELETE = 226
+ SYS_COPYFILE = 227
+ SYS_FGETATTRLIST = 228
+ SYS_FSETATTRLIST = 229
+ SYS_POLL = 230
+ SYS_WATCHEVENT = 231
+ SYS_WAITEVENT = 232
+ SYS_MODWATCH = 233
+ SYS_GETXATTR = 234
+ SYS_FGETXATTR = 235
+ SYS_SETXATTR = 236
+ SYS_FSETXATTR = 237
+ SYS_REMOVEXATTR = 238
+ SYS_FREMOVEXATTR = 239
+ SYS_LISTXATTR = 240
+ SYS_FLISTXATTR = 241
+ SYS_FSCTL = 242
+ SYS_INITGROUPS = 243
+ SYS_POSIX_SPAWN = 244
+ SYS_FFSCTL = 245
+ SYS_NFSCLNT = 247
+ SYS_FHOPEN = 248
+ SYS_MINHERIT = 250
+ SYS_SEMSYS = 251
+ SYS_MSGSYS = 252
+ SYS_SHMSYS = 253
+ SYS_SEMCTL = 254
+ SYS_SEMGET = 255
+ SYS_SEMOP = 256
+ SYS_MSGCTL = 258
+ SYS_MSGGET = 259
+ SYS_MSGSND = 260
+ SYS_MSGRCV = 261
+ SYS_SHMAT = 262
+ SYS_SHMCTL = 263
+ SYS_SHMDT = 264
+ SYS_SHMGET = 265
+ SYS_SHM_OPEN = 266
+ SYS_SHM_UNLINK = 267
+ SYS_SEM_OPEN = 268
+ SYS_SEM_CLOSE = 269
+ SYS_SEM_UNLINK = 270
+ SYS_SEM_WAIT = 271
+ SYS_SEM_TRYWAIT = 272
+ SYS_SEM_POST = 273
+ SYS_SEM_GETVALUE = 274
+ SYS_SEM_INIT = 275
+ SYS_SEM_DESTROY = 276
+ SYS_OPEN_EXTENDED = 277
+ SYS_UMASK_EXTENDED = 278
+ SYS_STAT_EXTENDED = 279
+ SYS_LSTAT_EXTENDED = 280
+ SYS_FSTAT_EXTENDED = 281
+ SYS_CHMOD_EXTENDED = 282
+ SYS_FCHMOD_EXTENDED = 283
+ SYS_ACCESS_EXTENDED = 284
+ SYS_SETTID = 285
+ SYS_GETTID = 286
+ SYS_SETSGROUPS = 287
+ SYS_GETSGROUPS = 288
+ SYS_SETWGROUPS = 289
+ SYS_GETWGROUPS = 290
+ SYS_MKFIFO_EXTENDED = 291
+ SYS_MKDIR_EXTENDED = 292
+ SYS_IDENTITYSVC = 293
+ SYS_SHARED_REGION_CHECK_NP = 294
+ SYS_VM_PRESSURE_MONITOR = 296
+ SYS_PSYNCH_RW_LONGRDLOCK = 297
+ SYS_PSYNCH_RW_YIELDWRLOCK = 298
+ SYS_PSYNCH_RW_DOWNGRADE = 299
+ SYS_PSYNCH_RW_UPGRADE = 300
+ SYS_PSYNCH_MUTEXWAIT = 301
+ SYS_PSYNCH_MUTEXDROP = 302
+ SYS_PSYNCH_CVBROAD = 303
+ SYS_PSYNCH_CVSIGNAL = 304
+ SYS_PSYNCH_CVWAIT = 305
+ SYS_PSYNCH_RW_RDLOCK = 306
+ SYS_PSYNCH_RW_WRLOCK = 307
+ SYS_PSYNCH_RW_UNLOCK = 308
+ SYS_PSYNCH_RW_UNLOCK2 = 309
+ SYS_GETSID = 310
+ SYS_SETTID_WITH_PID = 311
+ SYS_PSYNCH_CVCLRPREPOST = 312
+ SYS_AIO_FSYNC = 313
+ SYS_AIO_RETURN = 314
+ SYS_AIO_SUSPEND = 315
+ SYS_AIO_CANCEL = 316
+ SYS_AIO_ERROR = 317
+ SYS_AIO_READ = 318
+ SYS_AIO_WRITE = 319
+ SYS_LIO_LISTIO = 320
+ SYS_IOPOLICYSYS = 322
+ SYS_PROCESS_POLICY = 323
+ SYS_MLOCKALL = 324
+ SYS_MUNLOCKALL = 325
+ SYS_ISSETUGID = 327
+ SYS___PTHREAD_KILL = 328
+ SYS___PTHREAD_SIGMASK = 329
+ SYS___SIGWAIT = 330
+ SYS___DISABLE_THREADSIGNAL = 331
+ SYS___PTHREAD_MARKCANCEL = 332
+ SYS___PTHREAD_CANCELED = 333
+ SYS___SEMWAIT_SIGNAL = 334
+ SYS_PROC_INFO = 336
+ SYS_SENDFILE = 337
+ SYS_STAT64 = 338
+ SYS_FSTAT64 = 339
+ SYS_LSTAT64 = 340
+ SYS_STAT64_EXTENDED = 341
+ SYS_LSTAT64_EXTENDED = 342
+ SYS_FSTAT64_EXTENDED = 343
+ SYS_GETDIRENTRIES64 = 344
+ SYS_STATFS64 = 345
+ SYS_FSTATFS64 = 346
+ SYS_GETFSSTAT64 = 347
+ SYS___PTHREAD_CHDIR = 348
+ SYS___PTHREAD_FCHDIR = 349
+ SYS_AUDIT = 350
+ SYS_AUDITON = 351
+ SYS_GETAUID = 353
+ SYS_SETAUID = 354
+ SYS_GETAUDIT_ADDR = 357
+ SYS_SETAUDIT_ADDR = 358
+ SYS_AUDITCTL = 359
+ SYS_BSDTHREAD_CREATE = 360
+ SYS_BSDTHREAD_TERMINATE = 361
+ SYS_KQUEUE = 362
+ SYS_KEVENT = 363
+ SYS_LCHOWN = 364
+ SYS_STACK_SNAPSHOT = 365
+ SYS_BSDTHREAD_REGISTER = 366
+ SYS_WORKQ_OPEN = 367
+ SYS_WORKQ_KERNRETURN = 368
+ SYS_KEVENT64 = 369
+ SYS___OLD_SEMWAIT_SIGNAL = 370
+ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+ SYS___MAC_SET_FILE = 383
+ SYS___MAC_GET_LINK = 384
+ SYS___MAC_SET_LINK = 385
+ SYS___MAC_GET_PROC = 386
+ SYS___MAC_SET_PROC = 387
+ SYS___MAC_GET_FD = 388
+ SYS___MAC_SET_FD = 389
+ SYS___MAC_GET_PID = 390
+ SYS___MAC_GET_LCID = 391
+ SYS___MAC_GET_LCTX = 392
+ SYS___MAC_SET_LCTX = 393
+ SYS_SETLCID = 394
+ SYS_GETLCID = 395
+ SYS_READ_NOCANCEL = 396
+ SYS_WRITE_NOCANCEL = 397
+ SYS_OPEN_NOCANCEL = 398
+ SYS_CLOSE_NOCANCEL = 399
+ SYS_WAIT4_NOCANCEL = 400
+ SYS_RECVMSG_NOCANCEL = 401
+ SYS_SENDMSG_NOCANCEL = 402
+ SYS_RECVFROM_NOCANCEL = 403
+ SYS_ACCEPT_NOCANCEL = 404
+ SYS_MSYNC_NOCANCEL = 405
+ SYS_FCNTL_NOCANCEL = 406
+ SYS_SELECT_NOCANCEL = 407
+ SYS_FSYNC_NOCANCEL = 408
+ SYS_CONNECT_NOCANCEL = 409
+ SYS_SIGSUSPEND_NOCANCEL = 410
+ SYS_READV_NOCANCEL = 411
+ SYS_WRITEV_NOCANCEL = 412
+ SYS_SENDTO_NOCANCEL = 413
+ SYS_PREAD_NOCANCEL = 414
+ SYS_PWRITE_NOCANCEL = 415
+ SYS_WAITID_NOCANCEL = 416
+ SYS_POLL_NOCANCEL = 417
+ SYS_MSGSND_NOCANCEL = 418
+ SYS_MSGRCV_NOCANCEL = 419
+ SYS_SEM_WAIT_NOCANCEL = 420
+ SYS_AIO_SUSPEND_NOCANCEL = 421
+ SYS___SIGWAIT_NOCANCEL = 422
+ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423
+ SYS___MAC_MOUNT = 424
+ SYS___MAC_GET_MOUNT = 425
+ SYS___MAC_GETFSSTAT = 426
+ SYS_FSGETPATH = 427
+ SYS_AUDIT_SESSION_SELF = 428
+ SYS_AUDIT_SESSION_JOIN = 429
+ SYS_FILEPORT_MAKEPORT = 430
+ SYS_FILEPORT_MAKEFD = 431
+ SYS_AUDIT_SESSION_PORT = 432
+ SYS_PID_SUSPEND = 433
+ SYS_PID_RESUME = 434
+ SYS_PID_HIBERNATE = 435
+ SYS_PID_SHUTDOWN_SOCKETS = 436
+ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+ SYS_KAS_INFO = 439
+ SYS_MAXSYSCALL = 440
+)
diff --git a/contrib/go/_std_1.21/src/syscall/ztypes_darwin_arm64.go b/contrib/go/_std_1.21/src/syscall/ztypes_darwin_arm64.go
new file mode 100644
index 0000000000..46f78a97eb
--- /dev/null
+++ b/contrib/go/_std_1.21/src/syscall/ztypes_darwin_arm64.go
@@ -0,0 +1,466 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_darwin.go
+
+//go:build arm64 && darwin
+
+package syscall
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int32
+ Pad_cgo_0 [4]byte
+}
+
+type Timeval32 struct {
+ Sec int32
+ Usec int32
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev int32
+ Mode uint16
+ Nlink uint16
+ Ino uint64
+ Uid uint32
+ Gid uint32
+ Rdev int32
+ Pad_cgo_0 [4]byte
+ Atimespec Timespec
+ Mtimespec Timespec
+ Ctimespec Timespec
+ Birthtimespec Timespec
+ Size int64
+ Blocks int64
+ Blksize int32
+ Flags uint32
+ Gen uint32
+ Lspare int32
+ Qspare [2]int64
+}
+
+type Statfs_t struct {
+ Bsize uint32
+ Iosize int32
+ Blocks uint64
+ Bfree uint64
+ Bavail uint64
+ Files uint64
+ Ffree uint64
+ Fsid Fsid
+ Owner uint32
+ Type uint32
+ Flags uint32
+ Fssubtype uint32
+ Fstypename [16]int8
+ Mntonname [1024]int8
+ Mntfromname [1024]int8
+ Reserved [8]uint32
+}
+
+type Flock_t struct {
+ Start int64
+ Len int64
+ Pid int32
+ Type int16
+ Whence int16
+}
+
+type Fstore_t struct {
+ Flags uint32
+ Posmode int32
+ Offset int64
+ Length int64
+ Bytesalloc int64
+}
+
+type Radvisory_t struct {
+ Offset int64
+ Count int32
+ Pad_cgo_0 [4]byte
+}
+
+type Fbootstraptransfer_t struct {
+ Offset int64
+ Length uint64
+ Buffer *byte
+}
+
+type Log2phys_t struct {
+ Flags uint32
+ Contigbytes int64
+ Devoffset int64
+}
+
+type Fsid struct {
+ Val [2]int32
+}
+
+type Dirent struct {
+ Ino uint64
+ Seekoff uint64
+ Reclen uint16
+ Namlen uint16
+ Type uint8
+ Name [1024]int8
+ Pad_cgo_0 [3]byte
+}
+
+const (
+ pathMax = 0x400
+)
+
+type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]int8
+}
+
+type RawSockaddrInet6 struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Len uint8
+ Family uint8
+ Path [104]int8
+}
+
+type RawSockaddrDatalink struct {
+ Len uint8
+ Family uint8
+ Index uint16
+ Type uint8
+ Nlen uint8
+ Alen uint8
+ Slen uint8
+ Data [12]int8
+}
+
+type RawSockaddr struct {
+ Len uint8
+ Family uint8
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *byte
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen int32
+ Pad_cgo_1 [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+}
+
+type Cmsghdr struct {
+ Len uint32
+ Level int32
+ Type int32
+}
+
+type Inet4Pktinfo struct {
+ Ifindex uint32
+ Spec_dst [4]byte /* in_addr */
+ Addr [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Filt [8]uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x6c
+ SizeofSockaddrUnix = 0x6a
+ SizeofSockaddrDatalink = 0x14
+ SizeofLinger = 0x8
+ SizeofIPMreq = 0x8
+ SizeofIPv6Mreq = 0x14
+ SizeofMsghdr = 0x30
+ SizeofCmsghdr = 0xc
+ SizeofInet4Pktinfo = 0xc
+ SizeofInet6Pktinfo = 0x14
+ SizeofIPv6MTUInfo = 0x20
+ SizeofICMPv6Filter = 0x20
+)
+
+const (
+ PTRACE_TRACEME = 0x0
+ PTRACE_CONT = 0x7
+ PTRACE_KILL = 0x8
+)
+
+type Kevent_t struct {
+ Ident uint64
+ Filter int16
+ Flags uint16
+ Fflags uint32
+ Data int64
+ Udata *byte
+}
+
+type FdSet struct {
+ Bits [32]int32
+}
+
+const (
+ SizeofIfMsghdr = 0x70
+ SizeofIfData = 0x60
+ SizeofIfaMsghdr = 0x14
+ SizeofIfmaMsghdr = 0x10
+ SizeofIfmaMsghdr2 = 0x14
+ SizeofRtMsghdr = 0x5c
+ SizeofRtMetrics = 0x38
+)
+
+type IfMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Data IfData
+}
+
+type IfData struct {
+ Type uint8
+ Typelen uint8
+ Physical uint8
+ Addrlen uint8
+ Hdrlen uint8
+ Recvquota uint8
+ Xmitquota uint8
+ Unused1 uint8
+ Mtu uint32
+ Metric uint32
+ Baudrate uint32
+ Ipackets uint32
+ Ierrors uint32
+ Opackets uint32
+ Oerrors uint32
+ Collisions uint32
+ Ibytes uint32
+ Obytes uint32
+ Imcasts uint32
+ Omcasts uint32
+ Iqdrops uint32
+ Noproto uint32
+ Recvtiming uint32
+ Xmittiming uint32
+ Lastchange Timeval32
+ Unused2 uint32
+ Hwassist uint32
+ Reserved1 uint32
+ Reserved2 uint32
+}
+
+type IfaMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Metric int32
+}
+
+type IfmaMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Refcount int32
+}
+
+type RtMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Flags int32
+ Addrs int32
+ Pid int32
+ Seq int32
+ Errno int32
+ Use int32
+ Inits uint32
+ Rmx RtMetrics
+}
+
+type RtMetrics struct {
+ Locks uint32
+ Mtu uint32
+ Hopcount uint32
+ Expire int32
+ Recvpipe uint32
+ Sendpipe uint32
+ Ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Pksent uint32
+ Filler [4]uint32
+}
+
+const (
+ SizeofBpfVersion = 0x4
+ SizeofBpfStat = 0x8
+ SizeofBpfProgram = 0x10
+ SizeofBpfInsn = 0x8
+ SizeofBpfHdr = 0x14
+)
+
+type BpfVersion struct {
+ Major uint16
+ Minor uint16
+}
+
+type BpfStat struct {
+ Recv uint32
+ Drop uint32
+}
+
+type BpfProgram struct {
+ Len uint32
+ Pad_cgo_0 [4]byte
+ Insns *BpfInsn
+}
+
+type BpfInsn struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type BpfHdr struct {
+ Tstamp Timeval32
+ Caplen uint32
+ Datalen uint32
+ Hdrlen uint16
+ Pad_cgo_0 [2]byte
+}
+
+const (
+ _AT_FDCWD = -0x2
+)
+
+type Termios struct {
+ Iflag uint64
+ Oflag uint64
+ Cflag uint64
+ Lflag uint64
+ Cc [20]uint8
+ Pad_cgo_0 [4]byte
+ Ispeed uint64
+ Ospeed uint64
+}
diff --git a/contrib/go/_std_1.21/src/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/contrib/go/_std_1.21/src/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
new file mode 100644
index 0000000000..f3cde129b6
--- /dev/null
+++ b/contrib/go/_std_1.21/src/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
@@ -0,0 +1,10 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !linux && !netbsd && !openbsd && arm64
+// +build !linux,!netbsd,!openbsd,arm64
+
+package cpu
+
+func doinit() {}
diff --git a/contrib/libs/CMakeLists.darwin-arm64.txt b/contrib/libs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2f95baaeb1
--- /dev/null
+++ b/contrib/libs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(antlr3_cpp_runtime)
+add_subdirectory(apache)
+add_subdirectory(aws-sdk-cpp)
+add_subdirectory(backtrace)
+add_subdirectory(base64)
+add_subdirectory(brotli)
+add_subdirectory(c-ares)
+add_subdirectory(cctz)
+add_subdirectory(crcutil)
+add_subdirectory(curl)
+add_subdirectory(cxxsupp)
+add_subdirectory(double-conversion)
+add_subdirectory(expat)
+add_subdirectory(farmhash)
+add_subdirectory(fastlz)
+add_subdirectory(flatbuffers)
+add_subdirectory(fmt)
+add_subdirectory(googleapis-common-protos)
+add_subdirectory(grpc)
+add_subdirectory(hdr_histogram)
+add_subdirectory(highwayhash)
+add_subdirectory(icu)
+add_subdirectory(jemalloc)
+add_subdirectory(jwt-cpp)
+add_subdirectory(libbz2)
+add_subdirectory(libc_compat)
+add_subdirectory(libevent)
+add_subdirectory(libfyaml)
+add_subdirectory(libunwind)
+add_subdirectory(libxml)
+add_subdirectory(linuxvdso)
+add_subdirectory(llvm12)
+add_subdirectory(lua)
+add_subdirectory(lz4)
+add_subdirectory(lzma)
+add_subdirectory(lzmasdk)
+add_subdirectory(miniselect)
+add_subdirectory(nayuki_md5)
+add_subdirectory(nghttp2)
+add_subdirectory(openldap)
+add_subdirectory(openssl)
+add_subdirectory(opentelemetry-proto)
+add_subdirectory(pcre)
+add_subdirectory(pdqsort)
+add_subdirectory(pfr)
+add_subdirectory(poco)
+add_subdirectory(protobuf)
+add_subdirectory(protoc)
+add_subdirectory(rapidjson)
+add_subdirectory(re2)
+add_subdirectory(sasl)
+add_subdirectory(snappy)
+add_subdirectory(sparsehash)
+add_subdirectory(t1ha)
+add_subdirectory(tbb)
+add_subdirectory(tcmalloc)
+add_subdirectory(utf8proc)
+add_subdirectory(xxhash)
+add_subdirectory(yajl)
+add_subdirectory(yaml-cpp)
+add_subdirectory(zlib)
+add_subdirectory(zstd)
+add_subdirectory(zstd06)
diff --git a/contrib/libs/CMakeLists.txt b/contrib/libs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/CMakeLists.txt
+++ b/contrib/libs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-arm64.txt b/contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8818693c62
--- /dev/null
+++ b/contrib/libs/antlr3_cpp_runtime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-antlr3_cpp_runtime)
+target_compile_options(contrib-libs-antlr3_cpp_runtime PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-antlr3_cpp_runtime PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/antlr3_cpp_runtime/include
+)
+target_link_libraries(contrib-libs-antlr3_cpp_runtime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(contrib-libs-antlr3_cpp_runtime PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/antlr3_cpp_runtime/antlr3.cpp
+)
diff --git a/contrib/libs/antlr3_cpp_runtime/CMakeLists.txt b/contrib/libs/antlr3_cpp_runtime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/antlr3_cpp_runtime/CMakeLists.txt
+++ b/contrib/libs/antlr3_cpp_runtime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/apache/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3eb38d86db
--- /dev/null
+++ b/contrib/libs/apache/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,11 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arrow)
+add_subdirectory(avro)
+add_subdirectory(orc)
diff --git a/contrib/libs/apache/CMakeLists.txt b/contrib/libs/apache/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/apache/CMakeLists.txt
+++ b/contrib/libs/apache/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b9e70350e7
--- /dev/null
+++ b/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,362 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+get_built_tool_path(
+ TOOL_flatc_bin
+ TOOL_flatc_dependency
+ contrib/tools/flatc/bin
+ flatc
+)
+
+add_library(libs-apache-arrow)
+target_compile_options(libs-apache-arrow PUBLIC
+ -DARROW_STATIC
+ -DPARQUET_STATIC
+)
+target_compile_options(libs-apache-arrow PRIVATE
+ -DARROW_EXPORTING
+ -DARROW_WITH_BROTLI
+ -DARROW_WITH_LZ4
+ -DARROW_WITH_RE2
+ -DARROW_WITH_SNAPPY
+ -DARROW_WITH_TIMING_TESTS
+ -DARROW_WITH_UTF8PROC
+ -DARROW_WITH_ZLIB
+ -DARROW_WITH_ZSTD
+ -DHAVE_INTTYPES_H
+ -DHAVE_NETDB_H
+ -DPARQUET_EXPORTING
+ -DURI_STATIC_BUILD
+ -DHAVE_NETINET_IN_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-apache-arrow PUBLIC
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/src
+)
+target_include_directories(libs-apache-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/rapidjson/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/utf8proc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/include
+)
+target_link_libraries(libs-apache-arrow PUBLIC
+ contrib-libs-cxxsupp
+ libs-apache-orc
+ libs-brotli-dec
+ libs-brotli-enc
+ contrib-libs-double-conversion
+ contrib-libs-lz4
+ contrib-libs-rapidjson
+ contrib-libs-re2
+ contrib-libs-snappy
+ contrib-libs-utf8proc
+ contrib-libs-xxhash
+ contrib-libs-zlib
+ contrib-libs-zstd
+ contrib-restricted-fast_float
+ contrib-restricted-thrift
+ contrib-restricted-uriparser
+ contrib-libs-flatbuffers
+)
+target_sources(libs-apache-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_binary.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_decimal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_dict.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_nested.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_primitive.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_adaptive.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_binary.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_decimal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_dict.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_nested.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_primitive.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/builder_union.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/concatenate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/data.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/diff.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/validate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/c/bridge.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/chunked_array.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compare.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/api_aggregate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/api_scalar.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/api_vector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/cast.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/exec_plan.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/expression.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/key_compare.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/key_encode.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/key_hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/key_map.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/exec/util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/function.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/function_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/aggregate_basic.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/aggregate_mode.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/aggregate_quantile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/aggregate_tdigest.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/aggregate_var_std.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/codegen_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/hash_aggregate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_arithmetic.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_boolean.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_boolean.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_dictionary.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_nested.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_numeric.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_cast_temporal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_compare.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_fill_null.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_if_else.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_nested.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_set_lookup.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_temporal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/scalar_validity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/util_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/vector_hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/vector_nested.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/vector_replace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/vector_selection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/kernels/vector_sort.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/compute/registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/chunker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/column_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/column_decoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/converter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/csv/writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/datum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/device.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/extension_type.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/filesystem/filesystem.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/filesystem/localfs.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/filesystem/mockfs.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/filesystem/path_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/filesystem/util_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/buffered.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/caching.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/compressed.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/interfaces.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/memory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/slow.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/stdio.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/io/transform.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/dictionary.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/feather.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/json_simple.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/metadata_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/ipc/writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/chunked_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/chunker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/converter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/object_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/object_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/json/reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/memory_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/pretty_print.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/record_batch.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/result.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/scalar.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/sparse_tensor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/table.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/table_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/tensor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/tensor/coo_converter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/tensor/csf_converter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/tensor/csx_converter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/type.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/basic_decimal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bit_block_counter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bit_run_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bit_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bitmap.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bitmap_builders.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bitmap_ops.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/bpacking.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/cancel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression_brotli.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression_lz4.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression_snappy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression_zlib.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/compression_zstd.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/cpu_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/decimal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/delimiting.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/formatting.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/future.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/int_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/io_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/key_value_metadata.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/logging.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/memory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/mutex.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/string_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/task_group.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/tdigest.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/thread_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/trie.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/uri.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/utf8.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/util/value_parsing.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/vendored/base64.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/vendored/datetime/tz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/vendored/musl/strptime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/visitor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/parquet_constants.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/parquet_types.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/path_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/reader_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/schema.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/schema_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/arrow/writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/bloom_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/column_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/column_scanner.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/column_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/encoding.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/encryption/encryption.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/encryption/encryption_internal_nossl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/encryption/internal_file_decryptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/encryption/internal_file_encryptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/exception.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/file_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/file_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/level_comparison.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/level_conversion.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/metadata.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/murmur3.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/platform.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/printer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/properties.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/schema.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/statistics.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/stream_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/stream_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/parquet/types.cc
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.cpp
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
+target_fbs_source(libs-apache-arrow
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs
+ --scoped-enums
+ -I
+ ${CMAKE_BINARY_DIR}
+ -I
+ ${CMAKE_SOURCE_DIR}
+)
diff --git a/contrib/libs/apache/arrow/CMakeLists.txt b/contrib/libs/apache/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/apache/arrow/CMakeLists.txt
+++ b/contrib/libs/apache/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/apache/avro/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/avro/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..29b2696872
--- /dev/null
+++ b/contrib/libs/apache/avro/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-apache-avro)
+target_compile_options(libs-apache-avro PRIVATE
+ -DAVRO_SOURCE
+ -DAVRO_VERSION="1.11.3"
+ -DSNAPPY_CODEC_AVAILABLE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-apache-avro PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/api
+)
+target_link_libraries(libs-apache-avro PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-snappy
+ restricted-boost-any
+ restricted-boost-asio
+ restricted-boost-crc
+ restricted-boost-format
+ restricted-boost-iostreams
+ restricted-boost-math
+)
+target_sources(libs-apache-avro PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/BinaryDecoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/BinaryEncoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Compiler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/CustomAttributes.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/DataFile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/FileStream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Generic.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/GenericDatum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/LogicalType.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Node.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/NodeImpl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/ResolverSchema.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Schema.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Stream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Types.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/ValidSchema.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Validator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/Zigzag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/json/JsonDom.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/json/JsonIO.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/parsing/JsonCodec.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/parsing/ResolvingDecoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/parsing/Symbol.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/parsing/ValidatingCodec.cc
+)
diff --git a/contrib/libs/apache/avro/CMakeLists.txt b/contrib/libs/apache/avro/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/apache/avro/CMakeLists.txt
+++ b/contrib/libs/apache/avro/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af2fe0863c
--- /dev/null
+++ b/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,94 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-apache-orc)
+target_compile_options(libs-apache-orc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-apache-orc PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/include
+)
+target_include_directories(libs-apache-orc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/include
+)
+target_link_libraries(libs-apache-orc PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-lz4
+ contrib-libs-snappy
+ contrib-libs-zlib
+ contrib-libs-zstd
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-apache-orc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto
+)
+target_sources(libs-apache-orc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ColumnPrinter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ColumnReader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ColumnWriter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Common.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Compression.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Exceptions.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Int128.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/LzoDecompressor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/MemoryPool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Murmur3.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/OrcFile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/RLE.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/RLEV2Util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/RLEv1.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/RleDecoderV2.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/RleEncoderV2.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Statistics.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/StripeStream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Timezone.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/TypeImpl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Vector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/io/InputStream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/io/OutputStream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/ExpressionTree.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/Literal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/PredicateLeaf.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/SargsApplier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/SearchArgument.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/sargs/TruthValue.cc
+)
+target_proto_addincls(libs-apache-orc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-apache-orc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/contrib/libs/apache/orc/CMakeLists.txt b/contrib/libs/apache/orc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/apache/orc/CMakeLists.txt
+++ b/contrib/libs/apache/orc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-arm64.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0754432177
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,148 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-aws-sdk-cpp-aws-cpp-sdk-core)
+target_compile_options(libs-aws-sdk-cpp-aws-cpp-sdk-core PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_SDK_VERSION_MAJOR=1
+ -DAWS_SDK_VERSION_MINOR=8
+ -DAWS_SDK_VERSION_PATCH=186
+ -DAWS_USE_EPOLL
+ -DCURL_HAS_H2
+ -DCURL_HAS_TLS_PROXY
+ -DENABLE_CURL_CLIENT
+ -DENABLE_CURL_LOGGING
+ -DENABLE_OPENSSL_ENCRYPTION
+ -DHAS_PATHCONF
+ -DHAS_UMASK
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_BIKE_R3_VPCLMUL
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-core PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include
+)
+target_link_libraries(libs-aws-sdk-cpp-aws-cpp-sdk-core PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-curl
+ contrib-libs-openssl
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-event-stream
+)
+target_sources(libs-aws-sdk-cpp-aws-cpp-sdk-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonSerializableWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonStreamingWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Aws.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Globals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Region.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Version.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSAuthSigner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSAuthSignerProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSCredentialsProviderChain.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/SSOCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AWSClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AWSErrorMarshaller.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AsyncCallerContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/CoreErrors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/DefaultRetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/RetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/SpecifiedRetryableErrorsRetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/config/AWSProfileConfigLoader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/external/cjson/cJSON.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/external/tinyxml2/tinyxml2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpClientFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/Scheme.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/URI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/curl/CurlHandleContainer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/curl/CurlHttpClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/standard/StandardHttpRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/standard/StandardHttpResponse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/internal/AWSHttpResourceClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/DefaultMonitoring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/HttpClientMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/MonitoringManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/ARN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/Array.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/DNS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/DateTimeCommon.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/Directory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/EnumParseOverflowContainer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/FileSystemUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/GetTheLights.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/HashingUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/StringUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/TempFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/UUID.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/base64/Base64.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Cipher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/ContentCryptoMaterial.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/ContentCryptoScheme.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/CryptoBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/CryptoStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/EncryptionMaterials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/KeyWrapAlgorithm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/MD5.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha1.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha256.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha256HMAC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventDecoderStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventEncoderStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventHeader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventMessage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamErrors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/json/JsonSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/AWSLogging.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/ConsoleLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/DefaultLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/FormattedLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/LogLevel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/memory/AWSMemory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/memory/stl/SimpleStringStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/ConcurrentStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/PreallocatedStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/ResponseStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/SimpleStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/Executor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/ReaderWriterLock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/Semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/xml/XmlSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/net/linux-shared/Net.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/net/linux-shared/SimpleUDP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/linux-shared/Environment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/linux-shared/OSVersionInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/linux-shared/Security.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/linux-shared/Time.cpp
+)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-arm64.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b1705649a
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,389 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-aws-sdk-cpp-aws-cpp-sdk-s3)
+target_compile_options(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_SDK_VERSION_MAJOR=1
+ -DAWS_SDK_VERSION_MINOR=8
+ -DAWS_SDK_VERSION_PATCH=186
+ -DAWS_USE_EPOLL
+ -DENABLE_CURL_CLIENT
+ -DENABLE_OPENSSL_ENCRYPTION
+ -DHAS_PATHCONF
+ -DHAS_UMASK
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_BIKE_R3_VPCLMUL
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include
+)
+target_link_libraries(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PUBLIC
+ contrib-libs-cxxsupp
+ libs-aws-sdk-cpp-aws-cpp-sdk-core
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-event-stream
+)
+target_sources(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ErrorMarshaller.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Errors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortIncompleteMultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccelerateConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccessControlPolicy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccessControlTranslation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsExportDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsS3BucketDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsS3ExportFileFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ArchiveStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketAccelerateStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketCannedACL.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLifecycleConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLoggingStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLogsPermission.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketVersioningStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CORSConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CORSRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CSVInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CSVOutput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CloudFunctionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CommonPrefix.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedMultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompressionType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Condition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DefaultRetention.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Delete.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerReplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletedObject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Destination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EncodingType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Encryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EncryptionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ErrorDocument.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExistingObjectReplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExistingObjectReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExpirationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExpressionType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FileHeaderInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FilterRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FilterRuleName.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GlacierJobParameters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Grant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Grantee.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IndexDocument.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Initiator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InputSerialization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringAccessTier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InvalidObjectState.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryEncryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFrequency.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryIncludedObjectVersions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryS3BucketDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventorySchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONOutput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LambdaFunctionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Result.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LoggingEnabled.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MFADelete.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MFADeleteStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetadataDirective.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetadataEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Metrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfigurationFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectCannedACL.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectIdentifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockEnabled.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockLegalHold.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockLegalHoldStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockMode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetentionMode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersionStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OutputLocation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OutputSerialization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Owner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnerOverride.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnershipControls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnershipControlsRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ParquetInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Payer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Permission.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PolicyStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Progress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ProgressEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Protocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PublicAccessBlockConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QueueConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QueueConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QuoteFields.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Redirect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RedirectAllRequestsTo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicaModifications.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicaModificationsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTimeStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTimeValue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestCharged.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestPayer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestPaymentConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestProgress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreRequestType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RoutingRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Rule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3KeyFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SSEKMS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SSES3.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ScanRange.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectParameters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionByDefault.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SourceSelectionCriteria.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SseKmsEncryptedObjects.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SseKmsEncryptedObjectsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Stats.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StatsEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysisDataExport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysisSchemaVersion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tagging.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TaggingDirective.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TargetGrant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tiering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TopicConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TopicConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Type.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/VersioningConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WebsiteConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp
+)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/backtrace/CMakeLists.darwin-arm64.txt b/contrib/libs/backtrace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe260798da
--- /dev/null
+++ b/contrib/libs/backtrace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-backtrace)
+target_compile_options(contrib-libs-backtrace PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-backtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace
+)
+target_sources(contrib-libs-backtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/atomic.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/backtrace.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/dwarf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/fileline.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/mmap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/mmapio.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/posix.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/simple.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/sort.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/state.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/backtrace/macho.c
+)
diff --git a/contrib/libs/backtrace/CMakeLists.txt b/contrib/libs/backtrace/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/backtrace/CMakeLists.txt
+++ b/contrib/libs/backtrace/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/base64/avx2/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/avx2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..372acc889e
--- /dev/null
+++ b/contrib/libs/base64/avx2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-avx2)
+target_link_libraries(libs-base64-avx2 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-avx2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/avx2/codec_avx2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/avx2/lib.c
+)
diff --git a/contrib/libs/base64/avx2/CMakeLists.txt b/contrib/libs/base64/avx2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/avx2/CMakeLists.txt
+++ b/contrib/libs/base64/avx2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/base64/neon32/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/neon32/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a7ec94e9d0
--- /dev/null
+++ b/contrib/libs/base64/neon32/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-neon32)
+target_link_libraries(libs-base64-neon32 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-neon32 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon32/codec_neon32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon32/lib.c
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon32/codec_neon32.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon32/lib.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
diff --git a/contrib/libs/base64/neon32/CMakeLists.txt b/contrib/libs/base64/neon32/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/neon32/CMakeLists.txt
+++ b/contrib/libs/base64/neon32/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/base64/neon64/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/neon64/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8d6d5dee80
--- /dev/null
+++ b/contrib/libs/base64/neon64/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-neon64)
+target_link_libraries(libs-base64-neon64 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-neon64 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon64/codec_neon64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon64/lib.c
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon64/codec_neon64.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -march=armv8-a
+ -std=c11
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/neon64/lib.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -march=armv8-a
+ -std=c11
+)
diff --git a/contrib/libs/base64/neon64/CMakeLists.txt b/contrib/libs/base64/neon64/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/neon64/CMakeLists.txt
+++ b/contrib/libs/base64/neon64/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/base64/plain32/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/plain32/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d06a76d91a
--- /dev/null
+++ b/contrib/libs/base64/plain32/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-plain32)
+target_link_libraries(libs-base64-plain32 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-plain32 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain32/codec_plain.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain32/lib.c
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain32/codec_plain.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain32/lib.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
diff --git a/contrib/libs/base64/plain32/CMakeLists.txt b/contrib/libs/base64/plain32/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/plain32/CMakeLists.txt
+++ b/contrib/libs/base64/plain32/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/base64/plain64/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/plain64/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ccfdf670c
--- /dev/null
+++ b/contrib/libs/base64/plain64/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-plain64)
+target_link_libraries(libs-base64-plain64 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-plain64 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain64/codec_plain.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain64/lib.c
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain64/codec_plain.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/plain64/lib.c
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -std=c11
+)
diff --git a/contrib/libs/base64/plain64/CMakeLists.txt b/contrib/libs/base64/plain64/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/plain64/CMakeLists.txt
+++ b/contrib/libs/base64/plain64/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/base64/ssse3/CMakeLists.darwin-arm64.txt b/contrib/libs/base64/ssse3/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c79b2bf1c9
--- /dev/null
+++ b/contrib/libs/base64/ssse3/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-base64-ssse3)
+target_link_libraries(libs-base64-ssse3 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-base64-ssse3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/ssse3/codec_ssse3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/base64/ssse3/lib.c
+)
diff --git a/contrib/libs/base64/ssse3/CMakeLists.txt b/contrib/libs/base64/ssse3/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/base64/ssse3/CMakeLists.txt
+++ b/contrib/libs/base64/ssse3/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/brotli/common/CMakeLists.darwin-arm64.txt b/contrib/libs/brotli/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0acd28e7cd
--- /dev/null
+++ b/contrib/libs/brotli/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-brotli-common)
+target_compile_options(libs-brotli-common PRIVATE
+ -DBROTLI_BUILD_PORTABLE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-brotli-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/include
+)
+target_link_libraries(libs-brotli-common PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(libs-brotli-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/common/dictionary.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/common/transform.c
+)
diff --git a/contrib/libs/brotli/common/CMakeLists.txt b/contrib/libs/brotli/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/brotli/common/CMakeLists.txt
+++ b/contrib/libs/brotli/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/brotli/dec/CMakeLists.darwin-arm64.txt b/contrib/libs/brotli/dec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d11acad56
--- /dev/null
+++ b/contrib/libs/brotli/dec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-brotli-dec)
+target_compile_options(libs-brotli-dec PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-brotli-dec PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/include
+)
+target_link_libraries(libs-brotli-dec PUBLIC
+ contrib-libs-cxxsupp
+ libs-brotli-common
+)
+target_sources(libs-brotli-dec PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/dec/bit_reader.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/dec/decode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/dec/huffman.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/dec/state.c
+)
diff --git a/contrib/libs/brotli/dec/CMakeLists.txt b/contrib/libs/brotli/dec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/brotli/dec/CMakeLists.txt
+++ b/contrib/libs/brotli/dec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/brotli/enc/CMakeLists.darwin-arm64.txt b/contrib/libs/brotli/enc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..297dae7533
--- /dev/null
+++ b/contrib/libs/brotli/enc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-brotli-enc)
+target_compile_options(libs-brotli-enc PRIVATE
+ -DBROTLI_BUILD_PORTABLE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-brotli-enc PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/include
+)
+target_link_libraries(libs-brotli-enc PUBLIC
+ contrib-libs-cxxsupp
+ libs-brotli-common
+ libs-brotli-dec
+)
+target_sources(libs-brotli-enc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/backward_references.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/backward_references_hq.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/bit_cost.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/block_splitter.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/brotli_bit_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/cluster.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/compress_fragment.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/compress_fragment_two_pass.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/dictionary_hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/encoder_dict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/entropy_encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/histogram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/literal_cost.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/memory.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/metablock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/static_dict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/brotli/enc/utf8_util.c
+)
diff --git a/contrib/libs/brotli/enc/CMakeLists.txt b/contrib/libs/brotli/enc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/brotli/enc/CMakeLists.txt
+++ b/contrib/libs/brotli/enc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/c-ares/CMakeLists.darwin-arm64.txt b/contrib/libs/c-ares/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..764aa16c70
--- /dev/null
+++ b/contrib/libs/c-ares/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,97 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-c-ares)
+target_compile_options(contrib-libs-c-ares PUBLIC
+ -DCARES_STATICLIB
+)
+target_compile_options(contrib-libs-c-ares PRIVATE
+ -DCARES_BUILDING_LIBRARY
+ -DHAVE_CONFIG_H=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-c-ares PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_include_directories(contrib-libs-c-ares PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib
+)
+target_link_libraries(contrib-libs-c-ares PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libc_compat
+)
+target_sources(contrib-libs-c-ares PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__addrinfo2hostent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__addrinfo_localhost.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__close_sockets.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__get_hostent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__htable.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__htable_asvp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__htable_stvp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__llist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__parse_into_addrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__read_line.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__readaddrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__slist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__sortaddrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares__timeval.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_android.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_cancel.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_create_query.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_destroy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_expand_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_expand_string.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_fds.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_free_hostent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_free_string.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_freeaddrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_getaddrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_getenv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_gethostbyaddr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_gethostbyname.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_getnameinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_getsock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_library_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_mkquery.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_nowarn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_options.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_a_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_aaaa_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_caa_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_mx_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_naptr_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_ns_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_ptr_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_soa_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_srv_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_txt_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_parse_uri_reply.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_platform.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_process.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_query.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_rand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_search.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_send.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_strcasecmp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_strdup.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_strerror.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_strsplit.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_timeout.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/ares_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/atomic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/bitncmp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/inet_net_pton.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/inet_ntop.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/src/lib/windows_port.c
+)
diff --git a/contrib/libs/c-ares/CMakeLists.txt b/contrib/libs/c-ares/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/c-ares/CMakeLists.txt
+++ b/contrib/libs/c-ares/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cctz/CMakeLists.darwin-arm64.txt b/contrib/libs/cctz/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4e9994f8a
--- /dev/null
+++ b/contrib/libs/cctz/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(tzdata)
+
+add_library(contrib-libs-cctz)
+target_compile_options(contrib-libs-cctz PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-cctz PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/include
+)
+target_link_libraries(contrib-libs-cctz PUBLIC
+ contrib-libs-cxxsupp
+)
+target_link_options(contrib-libs-cctz INTERFACE
+ -framework
+ CoreFoundation
+)
+target_sources(contrib-libs-cctz PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/civil_time_detail.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_fixed.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_if.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_libc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_lookup.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/time_zone_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/src/zone_info_source.cc
+)
diff --git a/contrib/libs/cctz/CMakeLists.txt b/contrib/libs/cctz/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/cctz/CMakeLists.txt
+++ b/contrib/libs/cctz/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cctz/tzdata/CMakeLists.darwin-arm64.txt b/contrib/libs/cctz/tzdata/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6fe8fed51d
--- /dev/null
+++ b/contrib/libs/cctz/tzdata/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,1235 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(libs-cctz-tzdata INTERFACE)
+target_link_libraries(libs-cctz-tzdata INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-cctz
+ library-cpp-resource
+)
+
+add_global_library_for(libs-cctz-tzdata.global libs-cctz-tzdata)
+target_link_libraries(libs-cctz-tzdata.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-cctz
+ library-cpp-resource
+)
+target_sources(libs-cctz-tzdata.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/factory.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/cctz/tzdata/941eb524918f234738fd18ee3261d1c9.cpp
+)
+resources(libs-cctz-tzdata.global
+ ${CMAKE_BINARY_DIR}/contrib/libs/cctz/tzdata/941eb524918f234738fd18ee3261d1c9.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/58543f30ac34b6510b552b9b3e82b772
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/da87d45f88e4684903d7dbb5b7ed08dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/767406f25e6c1c5396e19a3be033304b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8dcab26c06fc82939d77511b0c7c24b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/12de6e9419a748db0e69972d23a640c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/00636062cbcd94f2ead5a75cc197675a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8ba86418f34ed83656d38bcfb19f85ea
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a46a56e63a69fd5c5373a33203250d39
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c263ea3cac3cd3410ac15d96040c3b3c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d00638c4bf95fabcc0c651f13e32e253
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a87061b72790e27d9f155644521d8cce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a46a56e63a69fd5c5373a33203250d39
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a46a56e63a69fd5c5373a33203250d39
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4afacd60281211a6a7530a3ff8062781
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/510c0710993f09c4d93d3639ac3fe609
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89de77d185e9a76612bd5f9fb043a9c2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7353b5d25ddb353ced2f1f9639251c16
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a6b8c0b7319f5fdca0ed634760ff6e3b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/63615364c91acab170ec8f719aa6f59f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3c6db0baa05cea4617bcad88b40b1e6a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1df7e605c33529940c76c1c145c52fc5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/77ea6e8a582f87d7a397a9e7b2111be0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/82840448c9d4782ffa56514a7fb4ca95
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4fc7ef39a80ff8875d1cb2708ebc49e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e3467a68822f3d1365e3494970219b03
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e3467a68822f3d1365e3494970219b03
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5c57dc3d11f5a64fac22a08ea0c64d25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/239a70724a0ff39d5dd3e6b7f4a34212
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0e84cda11c5dc9030c43c51187a6c78d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/839eacc63921f196e4ecfded7245a67b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e0e8162a9ade838f582c23557e530019
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0249d27eff0294ba6c5d090d9895fd17
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4a5ba954919a3b34fb7779965387992f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6413085a3a485b5683da3f49944995f0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/70483b70b5e389865d462a090b99f2ed
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/07844fc101071f657d084ecb7d161aa0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9f8d9f5acd176a1a163855959b566bb4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/595e67b4c97fda031a90e5ef80813e7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1df7e605c33529940c76c1c145c52fc5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1c750fa694668ef0a1aad95b61533b2a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e4bd3e0b46733cfe080ae7a159951665
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c779f9c0f9698e7646946312f10dfc4a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ace635d426a79002a8e3657033da7795
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fb4e7ca8ebc94bf7b651ad1921cb62df
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/30c97d0792df5d5939ff0f09c53c385d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ee4b5e263472bc5adf6309f2f5cd8858
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f3ce1cb0fb7595deac1b8caa16cae961
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4fc7ef39a80ff8875d1cb2708ebc49e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628a7252c0237ddace06127f3f97d066
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8fa410ffc232e56d0f945bd2b6c34dfe
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/93e1c90eb5222ffb3eca2a2a29b69a69
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4d7ff90583dcd0e08fc8c51792761c2b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e3467a68822f3d1365e3494970219b03
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/806c5856106eb6b28c3846dd93d3acc4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/595e67b4c97fda031a90e5ef80813e7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/85435a33486747b319872947c68317f3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/46d5d8b3710cb4825d4cca19f239aade
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/587990ea7ea7cb10bfd0618d8d314de3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/595e67b4c97fda031a90e5ef80813e7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5c57dc3d11f5a64fac22a08ea0c64d25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f32590f9bcdfb4ab134294d441804ae5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/db536e94d95836d7c5725c3b3c086586
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/268c9a38823e18c714ec9fb756a8042e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/356ff8bd249ee3f6983cba8426901244
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/79eedb7a0a4788b9bc3c291c4c643b50
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6ece595060d1d2db3153c5d523fb106b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c1b9655d5b1ce7fbc9ac213e921acc88
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/48c96bff46ef373ce5d759dc4a4d2de2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/beb91df50b24718aed963a509c0c2958
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fefe5ae6107231a3f738b36d95153f77
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ec589bada56b3352067a359694896292
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/661db30d5b9bb274f574dfc456f95137
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0998859e2d38d079cc1a3429aa428db4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9208172103191bf0d660e0023b358ea1
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c72cd4fac2e9b8659f6b5bb2392b9ae5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8f9746ead1fc03c962cdd7ddacde663d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/acff9e84de94eeb7b58120a56d50cc50
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7c49d7ec95c93d0934a7a98b1a1ae66f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/eac76eb95be7b5cc25a41e0485b58c41
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f8be05a9398502fc14e50eea2693497c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dada91f7db29bcab55bfd2478a5b0779
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/10089d01ae922cfd19a041f3de5ae1ea
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ef31a488808a56cc6d3c9a3c5a53abeb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/14af0ba77d76b97e0e666c070c2172cf
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/03ff2b0ed691f72f1e04e18e84818dcf
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9208172103191bf0d660e0023b358ea1
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/964fb4bc6d047b2a8826a0734633ab0b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fdc9d5431dd16120c1465f298e28e260
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2c18bc1a2ddb1b06e98ffa553ef1aaee
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/90db76a975de863aadbcf37b47e18cd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/768d11c820a4f93683de8f8bc03df8c8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7ca29f8adb394d878db41ab40c4c9a5d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a23719c2255c2c9829fe6978c1c8ecd7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9208172103191bf0d660e0023b358ea1
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f51089782974399a845a8ab6e8825bfd
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b8248a79b8e4c6de4f23c59e360d333e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6ddb543268cbeb4a7fffad436081b019
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/239a70724a0ff39d5dd3e6b7f4a34212
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a9b6712f7efd08406ebb3f4a43bf1862
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9d9fdcb5bec6ef7173f20c0b968ae540
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/755a91932697ce463a5c9b642e5292d6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/964fb4bc6d047b2a8826a0734633ab0b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fd46d501559b1cf8c8c1fa330196b1b0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bd9c4fdf467f96ab33dde64bf0ac700c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/641e03b9a1178df8c823447ea6563f25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9d9fdcb5bec6ef7173f20c0b968ae540
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/823a97c8e447d6f0016bacafd20a246e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8435b750c0255a506ff0fd58bf646f00
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bbb3263234960c35b55fffa1327cc48c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/450d5ffb8f5928afc0981b5a1a8ba4fa
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7f275e73d3e8e33981b4060f6af159ea
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2b72d499c62e0523c21b73a12d147157
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/839eacc63921f196e4ecfded7245a67b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b6fc5775917cac51306de9bf93d87827
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5fcda9efe6faeae5a8097716a64a127b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4335653c96fc0b0fc83e2604a8362934
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/82169289ef8c8f15473bc1fcb55123d0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4b51b9e60156a250908acc46d7c8cabc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3ff9cb17a579851ce689eac23e64d899
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bc1bca66f089c87648f0e54b0d0559a6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/64e0eb5df848bbc06156c58b35959680
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/763d7a8374a42066d2b0bb81bd47218f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/97ed2cb6ee44823ce8fabdc0beeae2b9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6c4f6742a67bbd289f89eb4fe7de8e57
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b72620d427a1898ea97232aeba51c2dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/511edb5c79692d730d309f4424bbaa0e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6e5fd4a73872524a21354303cdfff0f8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/acff9e84de94eeb7b58120a56d50cc50
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ed478f9e09d75276d125fb7e61188b5f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/595e67b4c97fda031a90e5ef80813e7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b8248a79b8e4c6de4f23c59e360d333e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7dacf7ad9037fa33db4536edf63da220
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/db536e94d95836d7c5725c3b3c086586
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f07474008b0495a1830bf6ec76104684
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0b427173cd7de48179954c1706df9f0f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d3dbc4b002cc7a0e5761a3097651309a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a06adc807729db23da9fdb54dc714f8b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1ee6e72e10673d4a16b6e24671f793ec
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ea521f9e43ebb66928bb2f9462a509d2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/cc7e35a2df60f44003b96877116f4d93
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c87b8b428cfdf54309e9503177e0ca5f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6c82012b52156392f0cd7178ebcfa900
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0b427173cd7de48179954c1706df9f0f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5c57dc3d11f5a64fac22a08ea0c64d25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/661db30d5b9bb274f574dfc456f95137
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/79b1d15365011739a45fe1de0258ae52
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c3b66836f89ba29559e1b438d7454e0b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3f4c05321e52971f2213bfb9e45b7a35
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/94e0437e48ebbef69b3fb7fe2af5e0f2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/77d9cbb7aa1e48aa0380d2c3b61c75d5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c1b9655d5b1ce7fbc9ac213e921acc88
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4b710acfb88ea85eda7b5f75df122214
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a181d1167a1dbfc2682f6d4ba9f3c803
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4a956902cb69a4cba608798e1da71a58
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b3c87245083e0474ed4ce3d23abb7f4f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b8c39bf52aaa707c58a301ce115ee576
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/661db30d5b9bb274f574dfc456f95137
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bc58930f92342790d3ee214524808faa
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92d3b867243120ea811c24c038e5b053
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5fa937049e86ffbf52d4348c6c43b0ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1ee6e72e10673d4a16b6e24671f793ec
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3ee52913271777c67f23d5a918bb0f7c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/beb91df50b24718aed963a509c0c2958
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4d5e4576a979e0cdeb6a7d0e81989b4e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b61230343294608431fbbd939bb6971d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bcf8aa818432d7ae244087c7306bcb23
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/93ccc0d9fe3d862e546a627982ce5ba7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/63f5d146aa8a66720b2c4db9e87ec1f4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/655680c9ae07d4896919210710185038
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3a420ea50d496f0c159a0d18af06b211
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0fb4aa6fed3f28bc7a3dae35a993171a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/655680c9ae07d4896919210710185038
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/165baa2c51758e236a98a6a1c4cf09a0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/11ca9bc056ef1ae4643107bea827928f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/67c981ccf51584922a1f72dd2d529730
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/165baa2c51758e236a98a6a1c4cf09a0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/eaa234bf9babed72ac5b25c9a3dffa15
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0abd3c37bec0c4c7f1a2284c3457adb3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f627017649ea589681b7b0dd45c03118
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/af82eec1529bf616942df14b2ffb4403
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/34dc35c8aa0f4e3a0064a92e5aa5d762
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c68faf20645ecd953e8eb2fb70469f59
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c68faf20645ecd953e8eb2fb70469f59
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dc74e10d17659800407d742d3a5db22b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9aa23335da47827d5ce36afc1523bbd3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ec12549279e64ebeb926579888cf89d9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bde0fe003b2df5121f0d31d3954095a6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ff94f36118acae9ef3e19438688e266b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8a8ef367f59b0e3880bd1cff6651b357
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5e8c48c7a60c434f1e2f1e535172cbb9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/56a77f4891fb3e9506aa233f5fbac27e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bf388a0a1da2be989c25dbfb587076d8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/16a0b637c31e7e480cfccfc46dd75d67
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2d0a65ce6c15961ab95c917d9f23e882
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/36687b86e799dc46c4ad4c49e3222ea5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dff9cd919f10d25842d1381cdff9f7f7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dff9cd919f10d25842d1381cdff9f7f7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d41b1974e5ec6b3bc790062a97894a37
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/940f5a339a1f12a7153474fc3c92c624
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c8376c6c326f4e99e093b6bc6cb9cd6e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/940f5a339a1f12a7153474fc3c92c624
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8a60b6309c1443774d2f065bcf2bbc61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/667e494c45d181f0706bd07b211c850b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7d4619fed11db15c54153613fcf23bda
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4cd70a6fdc80b1b15c0b9f7c3b807107
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2910f8ef0c04e980cb9fac5f8f62b334
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dff9cd919f10d25842d1381cdff9f7f7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6853ddd2f1d2e3899a8433b015ed726a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/009a0575634eab075d7e8a15b2e443ae
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f729c88451bacd2895fc1c8d29064c46
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3c4a6f9840f3d89534c5f511329704e8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4e36cb5f575bdcbdd38b144d5a9195c9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/48252c9a797f0f4bea97557a5094cf98
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/325a2d872e0c0e5339f2e134e921047a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4709fe18f39068d2ca7de4c5396e1513
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9360bb34802002d91d9bba174c25a8dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/17ca5b7fed86c92696b863cb6a78187f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/959247e441092255286b22fef107172f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ef4485e168a60d91cc5347e5de9a3407
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/67c981ccf51584922a1f72dd2d529730
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/90518d05c449fad639594f7f575407d6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/90518d05c449fad639594f7f575407d6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c46a3b3c120085251d04dd583a06b6a4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/16a0b637c31e7e480cfccfc46dd75d67
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/702a65f05da90971b14686c21add1a90
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8a2bb95893137bb40748ef4ecd8d7435
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bf388a0a1da2be989c25dbfb587076d8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/165baa2c51758e236a98a6a1c4cf09a0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d3dfd69107a4d78facbc67c4d8cea004
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d3dfd69107a4d78facbc67c4d8cea004
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/656bd0f3d2def024f4d1e59fc668b538
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c8c41a468e356c6bb65e89c69e4406dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/52f31607db7a4a081c63dfb4cc578408
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/667e494c45d181f0706bd07b211c850b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/beb20df2d2d5e3e5f5f50fb2da2a4782
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/71705112182911b4327ac195ffae174b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8c3304792234093e5a3d5debcef24a32
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2ee30998e941f8d603ad278135230cbd
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c72131eaa200e2aa58e1c12fe94f1f67
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ff94f36118acae9ef3e19438688e266b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/28fe8388ff78123cfd04d67e32057886
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/772e6342aeba16851eed7dcda632c5be
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ec12549279e64ebeb926579888cf89d9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f44dbe7ca52c5fb8b57e33fd8e094038
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4fff9a8801bd2b75474dde3870d24e89
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/37f26cf8b8fe9179833e366ca13b8916
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/165baa2c51758e236a98a6a1c4cf09a0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/009a0575634eab075d7e8a15b2e443ae
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a1239114e71b76c885dbad8f2fa61de4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9f39ae0771032afbfca86630bec12768
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/da5aae5f9a71de05b4625f74b007c461
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dff9cd919f10d25842d1381cdff9f7f7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8a2bb95893137bb40748ef4ecd8d7435
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d155718faacae2f6288b0c88e66f851c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/eda5a4ce01efed633c50e04d09fe73b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/310f6ba2360c27c334c6e17fccf2b9a5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d3ca7527ee42255559acf2d74d749d00
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f4825b22e2ad8fb3e0bf20daa84bd774
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9360bb34802002d91d9bba174c25a8dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b4aa5f2b966a76ebc38d1aab44d86bce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b4aa5f2b966a76ebc38d1aab44d86bce
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/618a4a8f78720e26749b9c29ed4fd1b3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e770be0bb1b43b9bc7df85f9ac184a79
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c8c41a468e356c6bb65e89c69e4406dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/66a0ec5d00519d1826d055514861779d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/66a0ec5d00519d1826d055514861779d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/67c981ccf51584922a1f72dd2d529730
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/04875c383508e7181ae595cec9856228
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ff94f36118acae9ef3e19438688e266b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4709139f1759e9693b8c02551b527f58
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b22b7be8696db5ca60fb0b7bba4c8718
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/37f26cf8b8fe9179833e366ca13b8916
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bfd18d52a4546531e2f3112725f092d3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d1c5195eed8efac077678d1c6d988f7f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/93bd1a44f9245279aa44a94d4c435e5c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b85d659fabeeb1257ade1f6282a5ec7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1e571eef4b7112bb58a746099afd9f02
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b7ad70caecef25e4a9ba1e5afd95fe25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/253d5505eaf3a497f4fa107633bea235
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/253d5505eaf3a497f4fa107633bea235
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4f2a136a6f59628aeea0d09480d630d2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2aa2dbd00a40fc7bdc1f1e3d461a2646
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2a4c8fd0d241b11b207c41b0aedd6cf9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a1085ba102822f56191705c405f2a8ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/02d7a06f7ede604bdd6bf40932b670c6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d5464310b37a30d92f5b85d128dd4937
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/35eebba76b28756b47e8fff3157eafdb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a1085ba102822f56191705c405f2a8ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8371d9f10ef8a679be6eadedc6641d73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/09e36f9135b9ddb666cbb9496fecdf89
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e0185725b852fe59ef8e5fef9f619990
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8371d9f10ef8a679be6eadedc6641d73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e68c0f2ebe9dc247712393ab1bd168d2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1b6ec1c2e23ea5b37361d885e1db8450
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e68c0f2ebe9dc247712393ab1bd168d2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e308055a9c06f33a854a9d579ed61249
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a1085ba102822f56191705c405f2a8ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/09e36f9135b9ddb666cbb9496fecdf89
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/543113396c7e34a7532457a1ce759c4e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d5464310b37a30d92f5b85d128dd4937
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/02d7a06f7ede604bdd6bf40932b670c6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a1085ba102822f56191705c405f2a8ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8371d9f10ef8a679be6eadedc6641d73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e308055a9c06f33a854a9d579ed61249
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/543113396c7e34a7532457a1ce759c4e
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/35eebba76b28756b47e8fff3157eafdb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0b427173cd7de48179954c1706df9f0f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6c4f6742a67bbd289f89eb4fe7de8e57
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/94e0437e48ebbef69b3fb7fe2af5e0f2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bbb3263234960c35b55fffa1327cc48c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9bc8fb09717950cb4149283c5aff15ac
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/43c7956d0835817f930236a5633cffa6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ef31a488808a56cc6d3c9a3c5a53abeb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1ee6e72e10673d4a16b6e24671f793ec
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/628174eba2d7050564c54d1370a19ca8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/beb91df50b24718aed963a509c0c2958
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a181d1167a1dbfc2682f6d4ba9f3c803
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bc58930f92342790d3ee214524808faa
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c87b8b428cfdf54309e9503177e0ca5f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5fa937049e86ffbf52d4348c6c43b0ad
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c3b66836f89ba29559e1b438d7454e0b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/57aca34c4b3ca88d9c94b88990c62c79
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/14af0ba77d76b97e0e666c070c2172cf
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/19ef27aa43febb679c0795f8c5dedc0f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b33eb6506380f950ad798d4d788d136a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5fbedfd64bddc3ec7790a4eb0f22b66c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8dcab26c06fc82939d77511b0c7c24b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1917c051a13995cc4c32d2ce05bc3e7b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d8af0cadc03a3813b866bbfeb041e167
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9766867907fd0631d6357abfcb71fde5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d40107fc4f4515f2f2eed25a1ca88fb8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/52569f1fcc560faffd0ed78e0e9eb69f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/29c0187634c10fc717832169fc449715
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0d49585e3c48010af348561943e319a2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/88546761589cb98c5209ff92ac71be7d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9c4035bc2046d3be368e14a46fc8685d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a79c9f48310a80244f2065d08f09f91a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7956f01b2e6933717e9ba4adfd327ccc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9eaedd2c3574882c46ddbbfeabc5c444
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0d81f8cc7c4066b8f84371ebbbb3e00c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/721967abda97296c7f361100d8b868e4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/42fcd2bd28f14995f4fec31b081d88b0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba0134eab8c956f482f642c6a5440ee0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f669833977d5968e30ce9d8288dccd22
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7176177837995c39668c29a4a459cb55
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/39ffa0df7491f260ed87949d60aa34da
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f72cea14be81564422856a5e3633b0f0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6af1f235706f2c48a99cabb1efcd0e53
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dced2b01cc7c29f0b1adf9c62f8603fd
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/167b215e24978122218b1a0eec97ea7a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/43d37a94ef2f6ee11c55e0a14c2898cb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ade2a36e23a06174c36b6fd5d795e865
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8e7f6cfc11d44c8e29f7f4a59df5fcae
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ccc5a76bcf9b46bc41f3ffb232850bbb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7a350885dea1ebe1bf630eb4254e9abc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/89cb42bccb29740b74d74dad225a7f70
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/29067b92c3481871788d16e05841ce78
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9006b968810f68ce90473c809b252776
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9ac4de9fb3bcae616f7de40984ccb6b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7a350885dea1ebe1bf630eb4254e9abc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f0976c6697d91943b1d72c331844db50
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0b00b9da0d4f68857bdebb750ea28c4d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/07b0081174b26fd15187b9d6a019e322
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d62d0d008574b60d70899d22545eb1f9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1917c051a13995cc4c32d2ce05bc3e7b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8629c4ecded1abb6072c099aa6781c47
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/aecc05607e312ffdbdf3a8f07ac64a6b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/48252c9a797f0f4bea97557a5094cf98
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e019dabd72a8783f7d4b4c1fe3dd5c11
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2a6d051e23c2e3ace6355f98f024796a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0b403c8a9ccd7ca6e2a6efbb8ea7a0f0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2a6d051e23c2e3ace6355f98f024796a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/41bc7cd4fe8c4fc8f59de742ebb69012
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7a350885dea1ebe1bf630eb4254e9abc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1377f55949e2a3c4cf3ccc96bb5a91a5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1fd961b54d21dd2ad91b05c7c71435a8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/aecc05607e312ffdbdf3a8f07ac64a6b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/aed64fc971bc7aa23cab042415d57d53
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/506e99f9c797d9798e7a411495691504
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/39b47bf37a27f7bcd5d3f7c51343c7fc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/beb20df2d2d5e3e5f5f50fb2da2a4782
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/506e99f9c797d9798e7a411495691504
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9ac4de9fb3bcae616f7de40984ccb6b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d917645873cf9c7577ce2fdbe05963cb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c57843caa48aa4715344a26830df1f13
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8baab5c53cf4270f860fb2de701ded9d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c57843caa48aa4715344a26830df1f13
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c4aa97ffb42eeeb70479979e2050d866
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/3465e5d0858d49481e9bcfea787d1be7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/710422cb894d7b930689a115e97f688b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2577d6d2ba90616ca47c8ee8d9fbca20
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2b3fb59013e51fa85db1cee17e54edc8
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e9faa2fda4c9671e5002bf470313be76
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d62d0d008574b60d70899d22545eb1f9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0dfaf73a64a7c3cfcd10756a6d545e08
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2a6d051e23c2e3ace6355f98f024796a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/07b0081174b26fd15187b9d6a019e322
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c57843caa48aa4715344a26830df1f13
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe03dcb43031a0d45d0039e33f1e4c42
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/57500f0613dd0355126a75ca0fb0db2c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/19ed55c2f6f06452f1008cfb15e5636b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d44a4791346a5defc84c6bec9e52645d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a4ac1780d547f4e4c41cab4c6cf1d76d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2a6d051e23c2e3ace6355f98f024796a
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/07b0081174b26fd15187b9d6a019e322
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e369eb23db7f75930ece7bf91b6b86a7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/b14ab0a98fb1964def4eaf00d2a6bb73
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/e7577ad74319a942781e7153a97d7690
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a813cd94645ca8774632d328080f8d97
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f729c88451bacd2895fc1c8d29064c46
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/796a57137d718e4fa3db8ef611f18e61
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f3ac587344d641763d27895afbe16345
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ff94f36118acae9ef3e19438688e266b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/37f26cf8b8fe9179833e366ca13b8916
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5d62b2758da6d68cb971d8f2cf64d432
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/667e494c45d181f0706bd07b211c850b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5d62b2758da6d68cb971d8f2cf64d432
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/cea8767711bc79a4ec192e25706de5a5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fe54394a3dcf951bad3c293980109dd2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/667e494c45d181f0706bd07b211c850b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f4825b22e2ad8fb3e0bf20daa84bd774
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9360bb34802002d91d9bba174c25a8dc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/6ddb543268cbeb4a7fffad436081b019
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/618a4a8f78720e26749b9c29ed4fd1b3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/475a8ae9a30287527356f20d4456abd4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a6b8c0b7319f5fdca0ed634760ff6e3b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0727fa9015cd130fba15b7e7163ff139
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ef8eca09259416ea4e1d5b4bb865a645
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/56dbf10674ff9ef08ef9088d7e7ab639
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/661db30d5b9bb274f574dfc456f95137
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/2b72d499c62e0523c21b73a12d147157
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/82169289ef8c8f15473bc1fcb55123d0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/655680c9ae07d4896919210710185038
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/41dd4c2678c8776c4abdcc809932bbe7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c1b9655d5b1ce7fbc9ac213e921acc88
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/dff9cd919f10d25842d1381cdff9f7f7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/74b8879270f5bd60554e01c6610b1efb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fa334faf4eac0c30d0a20353b78f1685
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/655680c9ae07d4896919210710185038
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d8977a620cda17fb8da4421e6c474f0c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/41dd4c2678c8776c4abdcc809932bbe7
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bcf8aa818432d7ae244087c7306bcb23
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/57aca34c4b3ca88d9c94b88990c62c79
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/4cddbf0831a9bbaa79369d3b91961a8f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/99cc3c716bf45f1ae5bb572baa4ad256
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/afaa4c77a1e912306f4ca578c933d4a6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/a92ef316c0c20b37f585aa00209c65cf
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba8d62a6ed66f462087e00ad76f7354d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/055c3628d78f3c9a01a7732c442f78f9
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f4cf94e44810f7c25b2529ffe37ab772
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/44355d47052f97ac7388446bce23e3ab
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ec185892bb2764a8280ee41ff8f2b032
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5ed332a521639d91536739cfb9e4dde6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5ed332a521639d91536739cfb9e4dde6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/99cc3c716bf45f1ae5bb572baa4ad256
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1530b1e45e83ed3f4e61d1a6f2f4f706
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fb8a999658da8686edc727548949fd88
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/475a8ae9a30287527356f20d4456abd4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba8d62a6ed66f462087e00ad76f7354d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/82b091bd4358c77e600c08893560419b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f789c65f289caa627ea1f690836c48f6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/fa85e90a2dcd44ced6128397a99b2668
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/92ab841a2a7aa104cb62a09be6f1a232
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0e8c2a93c75cfb3705dc63788803ebfb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/7f89369fd9501f16ae77919d4c0e5658
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f789c65f289caa627ea1f690836c48f6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8d2aeb9646f427ba69fab8ad34c51552
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/acf014221290656a061fff7e9fa818ee
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/44355d47052f97ac7388446bce23e3ab
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/44355d47052f97ac7388446bce23e3ab
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bcf8aa818432d7ae244087c7306bcb23
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5b3b7bd518d8afe48e97f141617c0531
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ec185892bb2764a8280ee41ff8f2b032
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f789c65f289caa627ea1f690836c48f6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0672593cd4756dbfb8bba02b4555c91d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba8d62a6ed66f462087e00ad76f7354d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/460900dfed7410df3acffe5b811d0f02
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bcf8aa818432d7ae244087c7306bcb23
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba8d62a6ed66f462087e00ad76f7354d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/ba8d62a6ed66f462087e00ad76f7354d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/bcf8aa818432d7ae244087c7306bcb23
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/d44a4791346a5defc84c6bec9e52645d
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/41bc7cd4fe8c4fc8f59de742ebb69012
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/eda5a4ce01efed633c50e04d09fe73b2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/da5aae5f9a71de05b4625f74b007c461
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/8a2bb95893137bb40748ef4ecd8d7435
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/48252c9a797f0f4bea97557a5094cf98
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/77ea6e8a582f87d7a397a9e7b2111be0
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/1df7e605c33529940c76c1c145c52fc5
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/db536e94d95836d7c5725c3b3c086586
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/85435a33486747b319872947c68317f3
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/9208172103191bf0d660e0023b358ea1
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/763d7a8374a42066d2b0bb81bd47218f
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/5ed332a521639d91536739cfb9e4dde6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/964fb4bc6d047b2a8826a0734633ab0b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/48c96bff46ef373ce5d759dc4a4d2de2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/c1b9655d5b1ce7fbc9ac213e921acc88
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/641e03b9a1178df8c823447ea6563f25
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/f789c65f289caa627ea1f690836c48f6
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/39b47bf37a27f7bcd5d3f7c51343c7fc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/0124cd65b22dfd92129cb0a43719c717
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cctz/tzdata/generated/51d8a0e68892ebf0854a1b4250ffb26b
+ KEYS
+ /cctz/tzdata/posixrules
+ /cctz/tzdata/Africa/Abidjan
+ /cctz/tzdata/Africa/Accra
+ /cctz/tzdata/Africa/Addis_Ababa
+ /cctz/tzdata/Africa/Algiers
+ /cctz/tzdata/Africa/Asmara
+ /cctz/tzdata/Africa/Asmera
+ /cctz/tzdata/Africa/Bamako
+ /cctz/tzdata/Africa/Bangui
+ /cctz/tzdata/Africa/Banjul
+ /cctz/tzdata/Africa/Bissau
+ /cctz/tzdata/Africa/Blantyre
+ /cctz/tzdata/Africa/Brazzaville
+ /cctz/tzdata/Africa/Bujumbura
+ /cctz/tzdata/Africa/Cairo
+ /cctz/tzdata/Africa/Casablanca
+ /cctz/tzdata/Africa/Ceuta
+ /cctz/tzdata/Africa/Conakry
+ /cctz/tzdata/Africa/Dakar
+ /cctz/tzdata/Africa/Dar_es_Salaam
+ /cctz/tzdata/Africa/Djibouti
+ /cctz/tzdata/Africa/Douala
+ /cctz/tzdata/Africa/El_Aaiun
+ /cctz/tzdata/Africa/Freetown
+ /cctz/tzdata/Africa/Gaborone
+ /cctz/tzdata/Africa/Harare
+ /cctz/tzdata/Africa/Johannesburg
+ /cctz/tzdata/Africa/Juba
+ /cctz/tzdata/Africa/Kampala
+ /cctz/tzdata/Africa/Khartoum
+ /cctz/tzdata/Africa/Kigali
+ /cctz/tzdata/Africa/Kinshasa
+ /cctz/tzdata/Africa/Lagos
+ /cctz/tzdata/Africa/Libreville
+ /cctz/tzdata/Africa/Lome
+ /cctz/tzdata/Africa/Luanda
+ /cctz/tzdata/Africa/Lubumbashi
+ /cctz/tzdata/Africa/Lusaka
+ /cctz/tzdata/Africa/Malabo
+ /cctz/tzdata/Africa/Maputo
+ /cctz/tzdata/Africa/Maseru
+ /cctz/tzdata/Africa/Mbabane
+ /cctz/tzdata/Africa/Mogadishu
+ /cctz/tzdata/Africa/Monrovia
+ /cctz/tzdata/Africa/Nairobi
+ /cctz/tzdata/Africa/Ndjamena
+ /cctz/tzdata/Africa/Niamey
+ /cctz/tzdata/Africa/Nouakchott
+ /cctz/tzdata/Africa/Ouagadougou
+ /cctz/tzdata/Africa/Porto-Novo
+ /cctz/tzdata/Africa/Sao_Tome
+ /cctz/tzdata/Africa/Timbuktu
+ /cctz/tzdata/Africa/Tripoli
+ /cctz/tzdata/Africa/Tunis
+ /cctz/tzdata/Africa/Windhoek
+ /cctz/tzdata/America/Adak
+ /cctz/tzdata/America/Anchorage
+ /cctz/tzdata/America/Anguilla
+ /cctz/tzdata/America/Antigua
+ /cctz/tzdata/America/Araguaina
+ /cctz/tzdata/America/Argentina/Buenos_Aires
+ /cctz/tzdata/America/Argentina/Catamarca
+ /cctz/tzdata/America/Argentina/ComodRivadavia
+ /cctz/tzdata/America/Argentina/Cordoba
+ /cctz/tzdata/America/Argentina/Jujuy
+ /cctz/tzdata/America/Argentina/La_Rioja
+ /cctz/tzdata/America/Argentina/Mendoza
+ /cctz/tzdata/America/Argentina/Rio_Gallegos
+ /cctz/tzdata/America/Argentina/Salta
+ /cctz/tzdata/America/Argentina/San_Juan
+ /cctz/tzdata/America/Argentina/San_Luis
+ /cctz/tzdata/America/Argentina/Tucuman
+ /cctz/tzdata/America/Argentina/Ushuaia
+ /cctz/tzdata/America/Aruba
+ /cctz/tzdata/America/Asuncion
+ /cctz/tzdata/America/Atikokan
+ /cctz/tzdata/America/Atka
+ /cctz/tzdata/America/Bahia
+ /cctz/tzdata/America/Bahia_Banderas
+ /cctz/tzdata/America/Barbados
+ /cctz/tzdata/America/Belem
+ /cctz/tzdata/America/Belize
+ /cctz/tzdata/America/Blanc-Sablon
+ /cctz/tzdata/America/Boa_Vista
+ /cctz/tzdata/America/Bogota
+ /cctz/tzdata/America/Boise
+ /cctz/tzdata/America/Buenos_Aires
+ /cctz/tzdata/America/Cambridge_Bay
+ /cctz/tzdata/America/Campo_Grande
+ /cctz/tzdata/America/Cancun
+ /cctz/tzdata/America/Caracas
+ /cctz/tzdata/America/Catamarca
+ /cctz/tzdata/America/Cayenne
+ /cctz/tzdata/America/Cayman
+ /cctz/tzdata/America/Chicago
+ /cctz/tzdata/America/Chihuahua
+ /cctz/tzdata/America/Ciudad_Juarez
+ /cctz/tzdata/America/Coral_Harbour
+ /cctz/tzdata/America/Cordoba
+ /cctz/tzdata/America/Costa_Rica
+ /cctz/tzdata/America/Creston
+ /cctz/tzdata/America/Cuiaba
+ /cctz/tzdata/America/Curacao
+ /cctz/tzdata/America/Danmarkshavn
+ /cctz/tzdata/America/Dawson
+ /cctz/tzdata/America/Dawson_Creek
+ /cctz/tzdata/America/Denver
+ /cctz/tzdata/America/Detroit
+ /cctz/tzdata/America/Dominica
+ /cctz/tzdata/America/Edmonton
+ /cctz/tzdata/America/Eirunepe
+ /cctz/tzdata/America/El_Salvador
+ /cctz/tzdata/America/Ensenada
+ /cctz/tzdata/America/Fort_Nelson
+ /cctz/tzdata/America/Fort_Wayne
+ /cctz/tzdata/America/Fortaleza
+ /cctz/tzdata/America/Glace_Bay
+ /cctz/tzdata/America/Godthab
+ /cctz/tzdata/America/Goose_Bay
+ /cctz/tzdata/America/Grand_Turk
+ /cctz/tzdata/America/Grenada
+ /cctz/tzdata/America/Guadeloupe
+ /cctz/tzdata/America/Guatemala
+ /cctz/tzdata/America/Guayaquil
+ /cctz/tzdata/America/Guyana
+ /cctz/tzdata/America/Halifax
+ /cctz/tzdata/America/Havana
+ /cctz/tzdata/America/Hermosillo
+ /cctz/tzdata/America/Indiana/Indianapolis
+ /cctz/tzdata/America/Indiana/Knox
+ /cctz/tzdata/America/Indiana/Marengo
+ /cctz/tzdata/America/Indiana/Petersburg
+ /cctz/tzdata/America/Indiana/Tell_City
+ /cctz/tzdata/America/Indiana/Vevay
+ /cctz/tzdata/America/Indiana/Vincennes
+ /cctz/tzdata/America/Indiana/Winamac
+ /cctz/tzdata/America/Indianapolis
+ /cctz/tzdata/America/Inuvik
+ /cctz/tzdata/America/Iqaluit
+ /cctz/tzdata/America/Jamaica
+ /cctz/tzdata/America/Jujuy
+ /cctz/tzdata/America/Juneau
+ /cctz/tzdata/America/Kentucky/Louisville
+ /cctz/tzdata/America/Kentucky/Monticello
+ /cctz/tzdata/America/Knox_IN
+ /cctz/tzdata/America/Kralendijk
+ /cctz/tzdata/America/La_Paz
+ /cctz/tzdata/America/Lima
+ /cctz/tzdata/America/Los_Angeles
+ /cctz/tzdata/America/Louisville
+ /cctz/tzdata/America/Lower_Princes
+ /cctz/tzdata/America/Maceio
+ /cctz/tzdata/America/Managua
+ /cctz/tzdata/America/Manaus
+ /cctz/tzdata/America/Marigot
+ /cctz/tzdata/America/Martinique
+ /cctz/tzdata/America/Matamoros
+ /cctz/tzdata/America/Mazatlan
+ /cctz/tzdata/America/Mendoza
+ /cctz/tzdata/America/Menominee
+ /cctz/tzdata/America/Merida
+ /cctz/tzdata/America/Metlakatla
+ /cctz/tzdata/America/Mexico_City
+ /cctz/tzdata/America/Miquelon
+ /cctz/tzdata/America/Moncton
+ /cctz/tzdata/America/Monterrey
+ /cctz/tzdata/America/Montevideo
+ /cctz/tzdata/America/Montreal
+ /cctz/tzdata/America/Montserrat
+ /cctz/tzdata/America/Nassau
+ /cctz/tzdata/America/New_York
+ /cctz/tzdata/America/Nipigon
+ /cctz/tzdata/America/Nome
+ /cctz/tzdata/America/Noronha
+ /cctz/tzdata/America/North_Dakota/Beulah
+ /cctz/tzdata/America/North_Dakota/Center
+ /cctz/tzdata/America/North_Dakota/New_Salem
+ /cctz/tzdata/America/Nuuk
+ /cctz/tzdata/America/Ojinaga
+ /cctz/tzdata/America/Panama
+ /cctz/tzdata/America/Pangnirtung
+ /cctz/tzdata/America/Paramaribo
+ /cctz/tzdata/America/Phoenix
+ /cctz/tzdata/America/Port-au-Prince
+ /cctz/tzdata/America/Port_of_Spain
+ /cctz/tzdata/America/Porto_Acre
+ /cctz/tzdata/America/Porto_Velho
+ /cctz/tzdata/America/Puerto_Rico
+ /cctz/tzdata/America/Punta_Arenas
+ /cctz/tzdata/America/Rainy_River
+ /cctz/tzdata/America/Rankin_Inlet
+ /cctz/tzdata/America/Recife
+ /cctz/tzdata/America/Regina
+ /cctz/tzdata/America/Resolute
+ /cctz/tzdata/America/Rio_Branco
+ /cctz/tzdata/America/Rosario
+ /cctz/tzdata/America/Santa_Isabel
+ /cctz/tzdata/America/Santarem
+ /cctz/tzdata/America/Santiago
+ /cctz/tzdata/America/Santo_Domingo
+ /cctz/tzdata/America/Sao_Paulo
+ /cctz/tzdata/America/Scoresbysund
+ /cctz/tzdata/America/Shiprock
+ /cctz/tzdata/America/Sitka
+ /cctz/tzdata/America/St_Barthelemy
+ /cctz/tzdata/America/St_Johns
+ /cctz/tzdata/America/St_Kitts
+ /cctz/tzdata/America/St_Lucia
+ /cctz/tzdata/America/St_Thomas
+ /cctz/tzdata/America/St_Vincent
+ /cctz/tzdata/America/Swift_Current
+ /cctz/tzdata/America/Tegucigalpa
+ /cctz/tzdata/America/Thule
+ /cctz/tzdata/America/Thunder_Bay
+ /cctz/tzdata/America/Tijuana
+ /cctz/tzdata/America/Toronto
+ /cctz/tzdata/America/Tortola
+ /cctz/tzdata/America/Vancouver
+ /cctz/tzdata/America/Virgin
+ /cctz/tzdata/America/Whitehorse
+ /cctz/tzdata/America/Winnipeg
+ /cctz/tzdata/America/Yakutat
+ /cctz/tzdata/America/Yellowknife
+ /cctz/tzdata/Antarctica/Casey
+ /cctz/tzdata/Antarctica/Davis
+ /cctz/tzdata/Antarctica/DumontDUrville
+ /cctz/tzdata/Antarctica/Macquarie
+ /cctz/tzdata/Antarctica/Mawson
+ /cctz/tzdata/Antarctica/McMurdo
+ /cctz/tzdata/Antarctica/Palmer
+ /cctz/tzdata/Antarctica/Rothera
+ /cctz/tzdata/Antarctica/South_Pole
+ /cctz/tzdata/Antarctica/Syowa
+ /cctz/tzdata/Antarctica/Troll
+ /cctz/tzdata/Antarctica/Vostok
+ /cctz/tzdata/Arctic/Longyearbyen
+ /cctz/tzdata/Asia/Aden
+ /cctz/tzdata/Asia/Almaty
+ /cctz/tzdata/Asia/Amman
+ /cctz/tzdata/Asia/Anadyr
+ /cctz/tzdata/Asia/Aqtau
+ /cctz/tzdata/Asia/Aqtobe
+ /cctz/tzdata/Asia/Ashgabat
+ /cctz/tzdata/Asia/Ashkhabad
+ /cctz/tzdata/Asia/Atyrau
+ /cctz/tzdata/Asia/Baghdad
+ /cctz/tzdata/Asia/Bahrain
+ /cctz/tzdata/Asia/Baku
+ /cctz/tzdata/Asia/Bangkok
+ /cctz/tzdata/Asia/Barnaul
+ /cctz/tzdata/Asia/Beirut
+ /cctz/tzdata/Asia/Bishkek
+ /cctz/tzdata/Asia/Brunei
+ /cctz/tzdata/Asia/Calcutta
+ /cctz/tzdata/Asia/Chita
+ /cctz/tzdata/Asia/Choibalsan
+ /cctz/tzdata/Asia/Chongqing
+ /cctz/tzdata/Asia/Chungking
+ /cctz/tzdata/Asia/Colombo
+ /cctz/tzdata/Asia/Dacca
+ /cctz/tzdata/Asia/Damascus
+ /cctz/tzdata/Asia/Dhaka
+ /cctz/tzdata/Asia/Dili
+ /cctz/tzdata/Asia/Dubai
+ /cctz/tzdata/Asia/Dushanbe
+ /cctz/tzdata/Asia/Famagusta
+ /cctz/tzdata/Asia/Gaza
+ /cctz/tzdata/Asia/Harbin
+ /cctz/tzdata/Asia/Hebron
+ /cctz/tzdata/Asia/Ho_Chi_Minh
+ /cctz/tzdata/Asia/Hong_Kong
+ /cctz/tzdata/Asia/Hovd
+ /cctz/tzdata/Asia/Irkutsk
+ /cctz/tzdata/Asia/Istanbul
+ /cctz/tzdata/Asia/Jakarta
+ /cctz/tzdata/Asia/Jayapura
+ /cctz/tzdata/Asia/Jerusalem
+ /cctz/tzdata/Asia/Kabul
+ /cctz/tzdata/Asia/Kamchatka
+ /cctz/tzdata/Asia/Karachi
+ /cctz/tzdata/Asia/Kashgar
+ /cctz/tzdata/Asia/Kathmandu
+ /cctz/tzdata/Asia/Katmandu
+ /cctz/tzdata/Asia/Khandyga
+ /cctz/tzdata/Asia/Kolkata
+ /cctz/tzdata/Asia/Krasnoyarsk
+ /cctz/tzdata/Asia/Kuala_Lumpur
+ /cctz/tzdata/Asia/Kuching
+ /cctz/tzdata/Asia/Kuwait
+ /cctz/tzdata/Asia/Macao
+ /cctz/tzdata/Asia/Macau
+ /cctz/tzdata/Asia/Magadan
+ /cctz/tzdata/Asia/Makassar
+ /cctz/tzdata/Asia/Manila
+ /cctz/tzdata/Asia/Muscat
+ /cctz/tzdata/Asia/Nicosia
+ /cctz/tzdata/Asia/Novokuznetsk
+ /cctz/tzdata/Asia/Novosibirsk
+ /cctz/tzdata/Asia/Omsk
+ /cctz/tzdata/Asia/Oral
+ /cctz/tzdata/Asia/Phnom_Penh
+ /cctz/tzdata/Asia/Pontianak
+ /cctz/tzdata/Asia/Pyongyang
+ /cctz/tzdata/Asia/Qatar
+ /cctz/tzdata/Asia/Qostanay
+ /cctz/tzdata/Asia/Qyzylorda
+ /cctz/tzdata/Asia/Rangoon
+ /cctz/tzdata/Asia/Riyadh
+ /cctz/tzdata/Asia/Saigon
+ /cctz/tzdata/Asia/Sakhalin
+ /cctz/tzdata/Asia/Samarkand
+ /cctz/tzdata/Asia/Seoul
+ /cctz/tzdata/Asia/Shanghai
+ /cctz/tzdata/Asia/Singapore
+ /cctz/tzdata/Asia/Srednekolymsk
+ /cctz/tzdata/Asia/Taipei
+ /cctz/tzdata/Asia/Tashkent
+ /cctz/tzdata/Asia/Tbilisi
+ /cctz/tzdata/Asia/Tehran
+ /cctz/tzdata/Asia/Tel_Aviv
+ /cctz/tzdata/Asia/Thimbu
+ /cctz/tzdata/Asia/Thimphu
+ /cctz/tzdata/Asia/Tokyo
+ /cctz/tzdata/Asia/Tomsk
+ /cctz/tzdata/Asia/Ujung_Pandang
+ /cctz/tzdata/Asia/Ulaanbaatar
+ /cctz/tzdata/Asia/Ulan_Bator
+ /cctz/tzdata/Asia/Urumqi
+ /cctz/tzdata/Asia/Ust-Nera
+ /cctz/tzdata/Asia/Vientiane
+ /cctz/tzdata/Asia/Vladivostok
+ /cctz/tzdata/Asia/Yakutsk
+ /cctz/tzdata/Asia/Yangon
+ /cctz/tzdata/Asia/Yekaterinburg
+ /cctz/tzdata/Asia/Yerevan
+ /cctz/tzdata/Atlantic/Azores
+ /cctz/tzdata/Atlantic/Bermuda
+ /cctz/tzdata/Atlantic/Canary
+ /cctz/tzdata/Atlantic/Cape_Verde
+ /cctz/tzdata/Atlantic/Faeroe
+ /cctz/tzdata/Atlantic/Faroe
+ /cctz/tzdata/Atlantic/Jan_Mayen
+ /cctz/tzdata/Atlantic/Madeira
+ /cctz/tzdata/Atlantic/Reykjavik
+ /cctz/tzdata/Atlantic/South_Georgia
+ /cctz/tzdata/Atlantic/St_Helena
+ /cctz/tzdata/Atlantic/Stanley
+ /cctz/tzdata/Australia/ACT
+ /cctz/tzdata/Australia/Adelaide
+ /cctz/tzdata/Australia/Brisbane
+ /cctz/tzdata/Australia/Broken_Hill
+ /cctz/tzdata/Australia/Canberra
+ /cctz/tzdata/Australia/Currie
+ /cctz/tzdata/Australia/Darwin
+ /cctz/tzdata/Australia/Eucla
+ /cctz/tzdata/Australia/Hobart
+ /cctz/tzdata/Australia/LHI
+ /cctz/tzdata/Australia/Lindeman
+ /cctz/tzdata/Australia/Lord_Howe
+ /cctz/tzdata/Australia/Melbourne
+ /cctz/tzdata/Australia/NSW
+ /cctz/tzdata/Australia/North
+ /cctz/tzdata/Australia/Perth
+ /cctz/tzdata/Australia/Queensland
+ /cctz/tzdata/Australia/South
+ /cctz/tzdata/Australia/Sydney
+ /cctz/tzdata/Australia/Tasmania
+ /cctz/tzdata/Australia/Victoria
+ /cctz/tzdata/Australia/West
+ /cctz/tzdata/Australia/Yancowinna
+ /cctz/tzdata/Brazil/Acre
+ /cctz/tzdata/Brazil/DeNoronha
+ /cctz/tzdata/Brazil/East
+ /cctz/tzdata/Brazil/West
+ /cctz/tzdata/CET
+ /cctz/tzdata/CST6CDT
+ /cctz/tzdata/Canada/Atlantic
+ /cctz/tzdata/Canada/Central
+ /cctz/tzdata/Canada/Eastern
+ /cctz/tzdata/Canada/Mountain
+ /cctz/tzdata/Canada/Newfoundland
+ /cctz/tzdata/Canada/Pacific
+ /cctz/tzdata/Canada/Saskatchewan
+ /cctz/tzdata/Canada/Yukon
+ /cctz/tzdata/Chile/Continental
+ /cctz/tzdata/Chile/EasterIsland
+ /cctz/tzdata/Cuba
+ /cctz/tzdata/EET
+ /cctz/tzdata/EST
+ /cctz/tzdata/EST5EDT
+ /cctz/tzdata/Egypt
+ /cctz/tzdata/Eire
+ /cctz/tzdata/Etc/GMT
+ /cctz/tzdata/Etc/GMT+0
+ /cctz/tzdata/Etc/GMT+1
+ /cctz/tzdata/Etc/GMT+10
+ /cctz/tzdata/Etc/GMT+11
+ /cctz/tzdata/Etc/GMT+12
+ /cctz/tzdata/Etc/GMT+2
+ /cctz/tzdata/Etc/GMT+3
+ /cctz/tzdata/Etc/GMT+4
+ /cctz/tzdata/Etc/GMT+5
+ /cctz/tzdata/Etc/GMT+6
+ /cctz/tzdata/Etc/GMT+7
+ /cctz/tzdata/Etc/GMT+8
+ /cctz/tzdata/Etc/GMT+9
+ /cctz/tzdata/Etc/GMT-0
+ /cctz/tzdata/Etc/GMT-1
+ /cctz/tzdata/Etc/GMT-10
+ /cctz/tzdata/Etc/GMT-11
+ /cctz/tzdata/Etc/GMT-12
+ /cctz/tzdata/Etc/GMT-13
+ /cctz/tzdata/Etc/GMT-14
+ /cctz/tzdata/Etc/GMT-2
+ /cctz/tzdata/Etc/GMT-3
+ /cctz/tzdata/Etc/GMT-4
+ /cctz/tzdata/Etc/GMT-5
+ /cctz/tzdata/Etc/GMT-6
+ /cctz/tzdata/Etc/GMT-7
+ /cctz/tzdata/Etc/GMT-8
+ /cctz/tzdata/Etc/GMT-9
+ /cctz/tzdata/Etc/GMT0
+ /cctz/tzdata/Etc/Greenwich
+ /cctz/tzdata/Etc/UCT
+ /cctz/tzdata/Etc/UTC
+ /cctz/tzdata/Etc/Universal
+ /cctz/tzdata/Etc/Zulu
+ /cctz/tzdata/Europe/Amsterdam
+ /cctz/tzdata/Europe/Andorra
+ /cctz/tzdata/Europe/Astrakhan
+ /cctz/tzdata/Europe/Athens
+ /cctz/tzdata/Europe/Belfast
+ /cctz/tzdata/Europe/Belgrade
+ /cctz/tzdata/Europe/Berlin
+ /cctz/tzdata/Europe/Bratislava
+ /cctz/tzdata/Europe/Brussels
+ /cctz/tzdata/Europe/Bucharest
+ /cctz/tzdata/Europe/Budapest
+ /cctz/tzdata/Europe/Busingen
+ /cctz/tzdata/Europe/Chisinau
+ /cctz/tzdata/Europe/Copenhagen
+ /cctz/tzdata/Europe/Dublin
+ /cctz/tzdata/Europe/Gibraltar
+ /cctz/tzdata/Europe/Guernsey
+ /cctz/tzdata/Europe/Helsinki
+ /cctz/tzdata/Europe/Isle_of_Man
+ /cctz/tzdata/Europe/Istanbul
+ /cctz/tzdata/Europe/Jersey
+ /cctz/tzdata/Europe/Kaliningrad
+ /cctz/tzdata/Europe/Kiev
+ /cctz/tzdata/Europe/Kirov
+ /cctz/tzdata/Europe/Kyiv
+ /cctz/tzdata/Europe/Lisbon
+ /cctz/tzdata/Europe/Ljubljana
+ /cctz/tzdata/Europe/London
+ /cctz/tzdata/Europe/Luxembourg
+ /cctz/tzdata/Europe/Madrid
+ /cctz/tzdata/Europe/Malta
+ /cctz/tzdata/Europe/Mariehamn
+ /cctz/tzdata/Europe/Minsk
+ /cctz/tzdata/Europe/Monaco
+ /cctz/tzdata/Europe/Moscow
+ /cctz/tzdata/Europe/Nicosia
+ /cctz/tzdata/Europe/Oslo
+ /cctz/tzdata/Europe/Paris
+ /cctz/tzdata/Europe/Podgorica
+ /cctz/tzdata/Europe/Prague
+ /cctz/tzdata/Europe/Riga
+ /cctz/tzdata/Europe/Rome
+ /cctz/tzdata/Europe/Samara
+ /cctz/tzdata/Europe/San_Marino
+ /cctz/tzdata/Europe/Sarajevo
+ /cctz/tzdata/Europe/Saratov
+ /cctz/tzdata/Europe/Simferopol
+ /cctz/tzdata/Europe/Skopje
+ /cctz/tzdata/Europe/Sofia
+ /cctz/tzdata/Europe/Stockholm
+ /cctz/tzdata/Europe/Tallinn
+ /cctz/tzdata/Europe/Tirane
+ /cctz/tzdata/Europe/Tiraspol
+ /cctz/tzdata/Europe/Ulyanovsk
+ /cctz/tzdata/Europe/Uzhgorod
+ /cctz/tzdata/Europe/Vaduz
+ /cctz/tzdata/Europe/Vatican
+ /cctz/tzdata/Europe/Vienna
+ /cctz/tzdata/Europe/Vilnius
+ /cctz/tzdata/Europe/Volgograd
+ /cctz/tzdata/Europe/Warsaw
+ /cctz/tzdata/Europe/Zagreb
+ /cctz/tzdata/Europe/Zaporozhye
+ /cctz/tzdata/Europe/Zurich
+ /cctz/tzdata/Factory
+ /cctz/tzdata/GB
+ /cctz/tzdata/GB-Eire
+ /cctz/tzdata/GMT
+ /cctz/tzdata/GMT+0
+ /cctz/tzdata/GMT-0
+ /cctz/tzdata/GMT0
+ /cctz/tzdata/Greenwich
+ /cctz/tzdata/HST
+ /cctz/tzdata/Hongkong
+ /cctz/tzdata/Iceland
+ /cctz/tzdata/Indian/Antananarivo
+ /cctz/tzdata/Indian/Chagos
+ /cctz/tzdata/Indian/Christmas
+ /cctz/tzdata/Indian/Cocos
+ /cctz/tzdata/Indian/Comoro
+ /cctz/tzdata/Indian/Kerguelen
+ /cctz/tzdata/Indian/Mahe
+ /cctz/tzdata/Indian/Maldives
+ /cctz/tzdata/Indian/Mauritius
+ /cctz/tzdata/Indian/Mayotte
+ /cctz/tzdata/Indian/Reunion
+ /cctz/tzdata/Iran
+ /cctz/tzdata/Israel
+ /cctz/tzdata/Jamaica
+ /cctz/tzdata/Japan
+ /cctz/tzdata/Kwajalein
+ /cctz/tzdata/Libya
+ /cctz/tzdata/MET
+ /cctz/tzdata/MST
+ /cctz/tzdata/MST7MDT
+ /cctz/tzdata/Mexico/BajaNorte
+ /cctz/tzdata/Mexico/BajaSur
+ /cctz/tzdata/Mexico/General
+ /cctz/tzdata/NZ
+ /cctz/tzdata/NZ-CHAT
+ /cctz/tzdata/Navajo
+ /cctz/tzdata/PRC
+ /cctz/tzdata/PST8PDT
+ /cctz/tzdata/Pacific/Apia
+ /cctz/tzdata/Pacific/Auckland
+ /cctz/tzdata/Pacific/Bougainville
+ /cctz/tzdata/Pacific/Chatham
+ /cctz/tzdata/Pacific/Chuuk
+ /cctz/tzdata/Pacific/Easter
+ /cctz/tzdata/Pacific/Efate
+ /cctz/tzdata/Pacific/Enderbury
+ /cctz/tzdata/Pacific/Fakaofo
+ /cctz/tzdata/Pacific/Fiji
+ /cctz/tzdata/Pacific/Funafuti
+ /cctz/tzdata/Pacific/Galapagos
+ /cctz/tzdata/Pacific/Gambier
+ /cctz/tzdata/Pacific/Guadalcanal
+ /cctz/tzdata/Pacific/Guam
+ /cctz/tzdata/Pacific/Honolulu
+ /cctz/tzdata/Pacific/Johnston
+ /cctz/tzdata/Pacific/Kanton
+ /cctz/tzdata/Pacific/Kiritimati
+ /cctz/tzdata/Pacific/Kosrae
+ /cctz/tzdata/Pacific/Kwajalein
+ /cctz/tzdata/Pacific/Majuro
+ /cctz/tzdata/Pacific/Marquesas
+ /cctz/tzdata/Pacific/Midway
+ /cctz/tzdata/Pacific/Nauru
+ /cctz/tzdata/Pacific/Niue
+ /cctz/tzdata/Pacific/Norfolk
+ /cctz/tzdata/Pacific/Noumea
+ /cctz/tzdata/Pacific/Pago_Pago
+ /cctz/tzdata/Pacific/Palau
+ /cctz/tzdata/Pacific/Pitcairn
+ /cctz/tzdata/Pacific/Pohnpei
+ /cctz/tzdata/Pacific/Ponape
+ /cctz/tzdata/Pacific/Port_Moresby
+ /cctz/tzdata/Pacific/Rarotonga
+ /cctz/tzdata/Pacific/Saipan
+ /cctz/tzdata/Pacific/Samoa
+ /cctz/tzdata/Pacific/Tahiti
+ /cctz/tzdata/Pacific/Tarawa
+ /cctz/tzdata/Pacific/Tongatapu
+ /cctz/tzdata/Pacific/Truk
+ /cctz/tzdata/Pacific/Wake
+ /cctz/tzdata/Pacific/Wallis
+ /cctz/tzdata/Pacific/Yap
+ /cctz/tzdata/Poland
+ /cctz/tzdata/Portugal
+ /cctz/tzdata/ROC
+ /cctz/tzdata/ROK
+ /cctz/tzdata/Singapore
+ /cctz/tzdata/Turkey
+ /cctz/tzdata/UCT
+ /cctz/tzdata/US/Alaska
+ /cctz/tzdata/US/Aleutian
+ /cctz/tzdata/US/Arizona
+ /cctz/tzdata/US/Central
+ /cctz/tzdata/US/East-Indiana
+ /cctz/tzdata/US/Eastern
+ /cctz/tzdata/US/Hawaii
+ /cctz/tzdata/US/Indiana-Starke
+ /cctz/tzdata/US/Michigan
+ /cctz/tzdata/US/Mountain
+ /cctz/tzdata/US/Pacific
+ /cctz/tzdata/US/Samoa
+ /cctz/tzdata/UTC
+ /cctz/tzdata/Universal
+ /cctz/tzdata/W-SU
+ /cctz/tzdata/WET
+ /cctz/tzdata/Zulu
+)
diff --git a/contrib/libs/cctz/tzdata/CMakeLists.txt b/contrib/libs/cctz/tzdata/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/cctz/tzdata/CMakeLists.txt
+++ b/contrib/libs/cctz/tzdata/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/crcutil/CMakeLists.darwin-arm64.txt b/contrib/libs/crcutil/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9dafcbab4b
--- /dev/null
+++ b/contrib/libs/crcutil/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-crcutil)
+target_compile_options(contrib-libs-crcutil PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(contrib-libs-crcutil PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-crcutil PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/crcutil/interface.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/crcutil/multiword_64_64_intrinsic_i386_mmx.cc
+)
diff --git a/contrib/libs/crcutil/CMakeLists.txt b/contrib/libs/crcutil/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/crcutil/CMakeLists.txt
+++ b/contrib/libs/crcutil/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/curl/CMakeLists.darwin-arm64.txt b/contrib/libs/curl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6dcd71469b
--- /dev/null
+++ b/contrib/libs/curl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,199 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-curl)
+target_compile_options(contrib-libs-curl PUBLIC
+ -DCURL_STATICLIB
+)
+target_compile_options(contrib-libs-curl PRIVATE
+ -DBUILDING_LIBCURL
+ -DHAVE_CONFIG_H
+ -DARCADIA_CURL_DNS_RESOLVER_ARES
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-curl PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/include
+)
+target_include_directories(contrib-libs-curl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib
+)
+target_link_libraries(contrib-libs-curl PUBLIC
+ contrib-libs-libc_compat
+ contrib-libs-openssl
+ contrib-libs-zlib
+ contrib-libs-nghttp2
+ contrib-libs-c-ares
+)
+target_link_options(contrib-libs-curl INTERFACE
+ -framework
+ SystemConfiguration
+)
+target_sources(contrib-libs-curl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/altsvc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/amigaos.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/asyn-ares.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/asyn-thread.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/base64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/bufq.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/bufref.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/c-hyper.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cf-h1-proxy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cf-h2-proxy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cf-haproxy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cf-https-connect.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cf-socket.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cfilters.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/conncache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/connect.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/content_encoding.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/cookie.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_addrinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_des.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_endian.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_fnmatch.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_wb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_path.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_range.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_rtmp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynhds.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/easy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/easygetopt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/easyoptions.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/escape.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/file.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/fileinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/fopen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/formdata.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/ftp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/ftplistparser.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/getenv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/getinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/gopher.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/headers.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hostasyn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hostip.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hostip4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hostip6.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hostsyn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/hsts.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_aws_sigv4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_chunks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_digest.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_negotiate.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_ntlm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/http_proxy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/idn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/if2ip.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/imap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/inet_ntop.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/inet_pton.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/krb5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/ldap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/llist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/macos.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/md4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/md5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/memdebug.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/mime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/mprintf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/mqtt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/multi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/netrc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/nonblock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/noproxy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/openldap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/parsedate.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/pingpong.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/pop3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/progress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/psl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/rand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/rename.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/rtsp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/select.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/sendf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/setopt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/sha256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/share.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/slist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/smb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/smtp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/socketpair.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/socks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/socks_gssapi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/socks_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/speedcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/splay.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/strcase.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/strdup.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/strerror.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/strtok.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/strtoofft.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/system_win32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/telnet.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/tftp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/timediff.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/timeval.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/transfer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/url.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/urlapi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/cleartext.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/cram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/digest.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/digest_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/gsasl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/krb5_gssapi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/krb5_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/ntlm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/ntlm_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/oauth2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/spnego_gssapi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/spnego_sspi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vauth/vauth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/version_win32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vquic/curl_msh3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vquic/curl_ngtcp2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vquic/curl_quiche.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vquic/vquic.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vssh/libssh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vssh/libssh2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vssh/wolfssh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/bearssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/hostcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/keylog.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/mbedtls_threadlock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/openssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/rustls.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/sectransp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/vtls.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/wolfssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/vtls/x509asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/warnless.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/ws.c
+)
diff --git a/contrib/libs/curl/CMakeLists.txt b/contrib/libs/curl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/curl/CMakeLists.txt
+++ b/contrib/libs/curl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cxxsupp/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..231e81c8ee
--- /dev/null
+++ b/contrib/libs/cxxsupp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(builtins)
+add_subdirectory(libcxx)
+add_subdirectory(libcxxabi-parts)
+add_subdirectory(libcxxrt)
+
+add_library(contrib-libs-cxxsupp INTERFACE)
+target_link_libraries(contrib-libs-cxxsupp INTERFACE
+ libs-cxxsupp-libcxx
+)
diff --git a/contrib/libs/cxxsupp/CMakeLists.txt b/contrib/libs/cxxsupp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/cxxsupp/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cxxsupp/builtins/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/builtins/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1bc1c147dc
--- /dev/null
+++ b/contrib/libs/cxxsupp/builtins/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-cxxsupp-builtins)
+target_compile_options(libs-cxxsupp-builtins PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_sources(libs-cxxsupp-builtins PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/addtf3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/ashlti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/clzti2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/comparetf2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/divdc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/divsc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/divtf3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/divti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/divxc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/extenddftf2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/extendsftf2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixdfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixsfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixtfdi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixtfsi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunsdfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunssfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunstfdi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunstfsi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunstfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/fixunsxfti.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatditf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatsitf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floattidf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floattisf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floattixf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatunditf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatunsitf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatuntidf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/floatuntisf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/gcc_personality_v0.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/int_util.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/lshrti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/modti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/muldc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/muloti4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/mulsc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/multf3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/mulxc3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/popcountdi2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/subtf3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/trunctfdf2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/trunctfsf2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/udivmodti4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/udivti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/umodti3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/os_version_check.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/clear_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/builtins/multc3.c
+)
diff --git a/contrib/libs/cxxsupp/builtins/CMakeLists.txt b/contrib/libs/cxxsupp/builtins/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/cxxsupp/builtins/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/builtins/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..109da232d2
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-cxxsupp-libcxx)
+target_compile_options(libs-cxxsupp-libcxx PUBLIC
+ -DLIBCXX_BUILDING_LIBCXXRT
+ -nostdinc++
+)
+target_compile_options(libs-cxxsupp-libcxx PRIVATE
+ -D_LIBCPP_BUILDING_LIBRARY
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-cxxsupp-libcxx PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/include
+)
+target_include_directories(libs-cxxsupp-libcxx PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src
+)
+target_link_libraries(libs-cxxsupp-libcxx PUBLIC
+ libs-cxxsupp-libcxxabi-parts
+ libs-cxxsupp-libcxxrt
+ libs-cxxsupp-builtins
+)
+target_sources(libs-cxxsupp-libcxx PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/charconv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/chrono.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/debug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/exception.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/functional.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/future.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/hash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/ios.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/iostream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/locale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/optional.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/random.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/regex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/string.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/strstream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/system_error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/thread.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/utility.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/valarray.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/variant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/vector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/format.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/new.cpp
+)
diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b1e5ff12d
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-cxxsupp-libcxxabi-parts)
+target_compile_options(libs-cxxsupp-libcxxabi-parts PUBLIC
+ -nostdinc++
+)
+target_compile_options(libs-cxxsupp-libcxxabi-parts PRIVATE
+ -D_LIBCXXABI_BUILDING_LIBRARY
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-cxxsupp-libcxxabi-parts PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxabi/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx
+)
+target_sources(libs-cxxsupp-libcxxabi-parts PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxabi/src/cxa_thread_atexit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxabi/src/abort_message.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxabi/src/cxa_demangle.cpp
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxabi/src/cxa_thread_atexit.cpp
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -fno-lto
+)
diff --git a/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt b/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/libcxxabi-parts/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1a5dff5718
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxxrt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-cxxsupp-libcxxrt)
+target_compile_options(libs-cxxsupp-libcxxrt PRIVATE
+ -nostdinc++
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-cxxsupp-libcxxrt PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt
+)
+target_link_libraries(libs-cxxsupp-libcxxrt PUBLIC
+ contrib-libs-libunwind
+)
+target_sources(libs-cxxsupp-libcxxrt PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/auxhelper.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/dynamic_cast.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/exception.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/guard.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/memory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/stdexcept.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxrt/typeinfo.cc
+)
diff --git a/contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt b/contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/libcxxrt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/double-conversion/CMakeLists.darwin-arm64.txt b/contrib/libs/double-conversion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69a5bc6b49
--- /dev/null
+++ b/contrib/libs/double-conversion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-double-conversion)
+target_compile_options(contrib-libs-double-conversion PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-double-conversion PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion
+)
+target_link_libraries(contrib-libs-double-conversion PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-double-conversion PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/bignum-dtoa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/bignum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/cached-powers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/double-to-string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/fast-dtoa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/fixed-dtoa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/string-to-double.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion/double-conversion/strtod.cc
+)
diff --git a/contrib/libs/double-conversion/CMakeLists.txt b/contrib/libs/double-conversion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/double-conversion/CMakeLists.txt
+++ b/contrib/libs/double-conversion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/expat/CMakeLists.darwin-arm64.txt b/contrib/libs/expat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..374256f11f
--- /dev/null
+++ b/contrib/libs/expat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-expat)
+target_compile_options(contrib-libs-expat PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-expat PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat/lib
+)
+target_sources(contrib-libs-expat PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat/lib/xmlparse.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat/lib/xmlrole.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat/lib/xmltok.c
+)
diff --git a/contrib/libs/expat/CMakeLists.txt b/contrib/libs/expat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/expat/CMakeLists.txt
+++ b/contrib/libs/expat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/farmhash/CMakeLists.darwin-arm64.txt b/contrib/libs/farmhash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aeb7bb29c0
--- /dev/null
+++ b/contrib/libs/farmhash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arch)
+
+add_library(contrib-libs-farmhash)
+target_compile_options(contrib-libs-farmhash PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-farmhash PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/include
+)
+target_link_libraries(contrib-libs-farmhash PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ farmhash-arch-sse41
+ farmhash-arch-sse42
+ farmhash-arch-sse42_aesni
+)
+target_sources(contrib-libs-farmhash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashuo.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashxo.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashna.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashmk.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashcc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhash_iface.cc
+)
diff --git a/contrib/libs/farmhash/CMakeLists.txt b/contrib/libs/farmhash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/farmhash/CMakeLists.txt
+++ b/contrib/libs/farmhash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-arm64.txt b/contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..921c50874e
--- /dev/null
+++ b/contrib/libs/farmhash/arch/sse41/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(farmhash-arch-sse41)
+target_compile_options(farmhash-arch-sse41 PRIVATE
+ -msse4.1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(farmhash-arch-sse41 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(farmhash-arch-sse41 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashnt.cc
+)
diff --git a/contrib/libs/farmhash/arch/sse41/CMakeLists.txt b/contrib/libs/farmhash/arch/sse41/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/farmhash/arch/sse41/CMakeLists.txt
+++ b/contrib/libs/farmhash/arch/sse41/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-arm64.txt b/contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92f77b4d9a
--- /dev/null
+++ b/contrib/libs/farmhash/arch/sse42/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(farmhash-arch-sse42)
+target_compile_options(farmhash-arch-sse42 PRIVATE
+ -msse4.2
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(farmhash-arch-sse42 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(farmhash-arch-sse42 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashsa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashte.cc
+)
diff --git a/contrib/libs/farmhash/arch/sse42/CMakeLists.txt b/contrib/libs/farmhash/arch/sse42/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/farmhash/arch/sse42/CMakeLists.txt
+++ b/contrib/libs/farmhash/arch/sse42/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-arm64.txt b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c73d04f960
--- /dev/null
+++ b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(farmhash-arch-sse42_aesni)
+target_compile_options(farmhash-arch-sse42_aesni PRIVATE
+ -msse4.2
+ -maes
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(farmhash-arch-sse42_aesni PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(farmhash-arch-sse42_aesni PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/farmhash/farmhashsu.cc
+)
diff --git a/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt
+++ b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt b/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eab41c060a
--- /dev/null
+++ b/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-fastlz)
+target_compile_options(contrib-libs-fastlz PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(contrib-libs-fastlz PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-fastlz PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c
+)
diff --git a/contrib/libs/fastlz/CMakeLists.txt b/contrib/libs/fastlz/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/fastlz/CMakeLists.txt
+++ b/contrib/libs/fastlz/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/flatbuffers/CMakeLists.darwin-arm64.txt b/contrib/libs/flatbuffers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..506517c695
--- /dev/null
+++ b/contrib/libs/flatbuffers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(flatc)
+
+add_library(contrib-libs-flatbuffers)
+target_compile_options(contrib-libs-flatbuffers PRIVATE
+ -DFLATBUFFERS_LOCALE_INDEPENDENT=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-flatbuffers PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/include
+)
+target_link_libraries(contrib-libs-flatbuffers PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+)
+target_sources(contrib-libs-flatbuffers PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_text.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_parser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/reflection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/util.cpp
+)
diff --git a/contrib/libs/flatbuffers/CMakeLists.txt b/contrib/libs/flatbuffers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/flatbuffers/CMakeLists.txt
+++ b/contrib/libs/flatbuffers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/flatbuffers/flatc/CMakeLists.darwin-arm64.txt b/contrib/libs/flatbuffers/flatc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a9bafb3381
--- /dev/null
+++ b/contrib/libs/flatbuffers/flatc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,60 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-flatbuffers-flatc)
+target_compile_options(libs-flatbuffers-flatc PRIVATE
+ -DFLATBUFFERS_LOCALE_INDEPENDENT=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-flatbuffers-flatc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/include
+)
+target_link_libraries(libs-flatbuffers-flatc PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+)
+target_sources(libs-flatbuffers-flatc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/cpp_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/go_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/java_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/python_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/swift_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/grpc/src/compiler/ts_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/annotated_binary_text_gen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/bfbs_gen_lua.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/bfbs_gen_nim.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/binary_annotator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/code_generators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/file_binary_writer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/file_name_saving_file_manager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/file_writer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/flatc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_binary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_cpp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_cpp_yandex_maps_iter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_csharp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_dart.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_fbs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_go.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_grpc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_java.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_json_schema.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_kotlin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_lobster.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_php.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_python.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_rust.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_swift.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_text.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_gen_ts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/idl_parser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/reflection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/util.cpp
+)
diff --git a/contrib/libs/flatbuffers/flatc/CMakeLists.txt b/contrib/libs/flatbuffers/flatc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/flatbuffers/flatc/CMakeLists.txt
+++ b/contrib/libs/flatbuffers/flatc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/fmt/CMakeLists.darwin-arm64.txt b/contrib/libs/fmt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..297cc65ab2
--- /dev/null
+++ b/contrib/libs/fmt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-fmt)
+target_compile_options(contrib-libs-fmt PUBLIC
+ -DFMT_EXPORT
+)
+target_compile_options(contrib-libs-fmt PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-fmt PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/fmt/include
+)
+target_link_libraries(contrib-libs-fmt PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-fmt PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/fmt/src/format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/fmt/src/os.cc
+)
diff --git a/contrib/libs/fmt/CMakeLists.txt b/contrib/libs/fmt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/fmt/CMakeLists.txt
+++ b/contrib/libs/fmt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a2b6d3385f
--- /dev/null
+++ b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,857 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(contrib-libs-googleapis-common-protos)
+set_property(TARGET contrib-libs-googleapis-common-protos PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+set_property(TARGET contrib-libs-googleapis-common-protos PROPERTY
+ PROTO_NAMESPACE contrib/libs/googleapis-common-protos
+)
+target_include_directories(contrib-libs-googleapis-common-protos PUBLIC
+ ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos
+)
+target_link_libraries(contrib-libs-googleapis-common-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/client.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/context.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/control.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/http.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/label.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/log.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/service.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/color.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/date.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/money.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/month.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto
+)
+target_proto_addincls(contrib-libs-googleapis-common-protos
+ ./contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(contrib-libs-googleapis-common-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos
+)
+target_proto_plugin(contrib-libs-googleapis-common-protos
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.txt b/contrib/libs/googleapis-common-protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/googleapis-common-protos/CMakeLists.txt
+++ b/contrib/libs/googleapis-common-protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/grpc/CMakeLists.darwin-arm64.txt b/contrib/libs/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..455b71e337
--- /dev/null
+++ b/contrib/libs/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,921 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(src)
+add_subdirectory(third_party)
+
+add_library(contrib-libs-grpc)
+target_compile_options(contrib-libs-grpc PRIVATE
+ -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-grpc PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/include
+)
+target_include_directories(contrib-libs-grpc PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/address_sorting/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb
+ ${CMAKE_SOURCE_DIR}/contrib/libs/xxhash
+)
+target_link_libraries(contrib-libs-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ certs
+ contrib-libs-c-ares
+ grpc-third_party-address_sorting
+ grpc-third_party-upb
+ contrib-libs-openssl
+ contrib-libs-re2
+ contrib-libs-xxhash
+ contrib-libs-zlib
+ abseil-cpp-tstring-y_absl-algorithm
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-container
+ abseil-cpp-tstring-y_absl-flags
+ abseil-cpp-tstring-y_absl-functional
+ abseil-cpp-tstring-y_absl-hash
+ abseil-cpp-tstring-y_absl-memory
+ abseil-cpp-tstring-y_absl-meta
+ abseil-cpp-tstring-y_absl-random
+ abseil-cpp-tstring-y_absl-status
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-synchronization
+ abseil-cpp-tstring-y_absl-time
+ abseil-cpp-tstring-y_absl-utility
+ library-cpp-resource
+)
+target_sources(contrib-libs-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/backend_metrics/backend_metric_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/census/grpc_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/channel_idle/channel_idle_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/channel_idle/idle_filter_state.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/backend_metric.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/backup_poller.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/channel_connectivity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/client_channel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/client_channel_channelz.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/client_channel_factory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/client_channel_plugin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/client_channel_service_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/config_selector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/dynamic_filters.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/global_subchannel_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/health/health_check_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/http_proxy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/local_subchannel_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/polling_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/retry_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/retry_service_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/retry_throttle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/subchannel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/subchannel_pool_interface.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/client_channel/subchannel_stream_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/deadline/deadline_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/fault_injection/fault_injection_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/http/client/http_client_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/http/client_authority_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/http/http_filters_plugin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/http/message_compress/compression_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/http/server/http_server_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/message_size/message_size_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/rbac/rbac_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/rbac/rbac_service_config_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/stateful_session/stateful_session_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/gcp/metadata_query.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/binder_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/channel_create.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/channel_create_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/connection_id_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/endpoint_binder_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/jni_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/client/security_policy_setting.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/security_policy/binder_security_policy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/server/binder_server.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/server/binder_server_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/transport/binder_transport.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/utils/ndk_binder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/wire_format/binder_android.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/wire_format/binder_constants.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/wire_format/transaction.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/binder/wire_format/wire_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/alpn/alpn.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/client/chttp2_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/server/chttp2_server.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/bin_decoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/bin_encoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/context_list.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/decode_huff.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/flow_control.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_data.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_goaway.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_ping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_settings.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/frame_window_update.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/hpack_encoder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/hpack_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/http2_settings.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/http_trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/huffsyms.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/parsing.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/stream_lists.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/stream_map.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/varint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/chttp2/transport/writing.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/inproc/inproc_plugin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/transport/inproc/inproc_transport.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/annotations/resource.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/http.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/range.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/api/annotations.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/api/http.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/api/httpbody.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/any.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/duration.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/empty.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/struct.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/rpc/status.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/udpa/annotations/security.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/udpa/annotations/status.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/validate/validate.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/authority.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/extension.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/resource.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/v3/cel.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/v3/range.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/certificate_provider_store.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/file_watcher_certificate_provider_factory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_api.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_bootstrap.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_bootstrap_grpc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_certificate_provider.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_channel_stack_modifier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_client_grpc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_client_stats.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_cluster.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_cluster_specifier_plugin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_common_types.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_health_status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_http_fault_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_http_filters.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_http_rbac_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_http_stateful_session_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_lb_policy_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_listener.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_route_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_routing.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_server_config_fetcher.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/xds/xds_transport_grpc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/address_utils/parse_address.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/address_utils/sockaddr_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/backoff/backoff.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/backoff/random_early_detection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/call_tracer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_args.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_args_preconditioning.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_stack.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_stack_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_stack_builder_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channel_trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channelz.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/channelz_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/connected_channel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/promise_based_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/server_call_tracer_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/channel/status_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/compression/compression.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/compression/compression_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/compression/message_compress.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/config/config_vars.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/config/config_vars_non_generated.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/config/core_configuration.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/config/load_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/debug/event_log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/debug/histogram_view.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/debug/stats.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/debug/stats_data.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/debug/trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/channel_args_endpoint_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/default_event_engine.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/default_event_engine_factory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/event_engine.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/forkable.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/memory_allocator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/internal_errqueue.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/lockfree_event.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/posix_endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/posix_engine.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/timer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/timer_heap.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/timer_manager.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/resolved_address.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/shim.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/slice.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/slice_buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/tcp_socket_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/thread_local.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/thread_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/time_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/windows/iocp.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/windows/win_socket.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/windows/windows_endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/windows/windows_engine.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/event_engine/windows/windows_listener.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/experiments/config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/experiments/experiments.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/alloc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/android/log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/atm.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/iphone/cpu.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/linux/cpu.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/linux/log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/msys/tmpfile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/cpu.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/sync.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/posix/tmpfile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/sync.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/sync_abseil.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/time_precise.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/cpu.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/log.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/string_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/sync.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/windows/tmpfile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gpr/wrap_memcpy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/crash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/examine_stack.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/fork.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/host_port.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/linux/env.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/load_file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/mpscq.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/posix/env.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/posix/stat.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/posix/thd.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/status_helper.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/strerror.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/tchar.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/time_averaged_stats.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/time_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/validation_errors.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/windows/env.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/windows/stat.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/windows/thd.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/gprpp/work_serializer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/handshaker/proxy_mapper_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/http/format_request.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/http/httpcli.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/http/httpcli_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/http/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/buffer_list.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/call_combiner.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/cfstream_handle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/closure.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/combiner.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/dualstack_socket_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/endpoint_cfstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/endpoint_pair_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/endpoint_pair_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/error.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/error_cfstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/ev_apple.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/ev_epoll1_linux.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/ev_poll_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/ev_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/ev_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/event_engine_shims/closure.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/event_engine_shims/endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/event_engine_shims/tcp_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/exec_ctx.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/executor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/fork_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/fork_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/gethostname_fallback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/gethostname_host_name_max.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/gethostname_sysconf.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/internal_errqueue.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iocp_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iomgr.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iomgr_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iomgr_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iomgr_posix_cfstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/iomgr_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/load_file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/lockfree_event.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/polling_entity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/pollset.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/pollset_set.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/pollset_set_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/pollset_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/resolve_address.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/resolve_address_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/resolve_address_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/sockaddr_utils_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_factory_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_mutator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_utils_linux.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_utils_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_utils_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/socket_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/systemd_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_client_cfstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_client_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_client_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server_utils_posix_common.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_server_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/tcp_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/timer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/timer_generic.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/timer_heap.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/timer_manager.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/unix_sockets_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/unix_sockets_posix_noop.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/wakeup_fd_eventfd.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/wakeup_fd_nospecial.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/wakeup_fd_pipe.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/iomgr/wakeup_fd_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/json/json_object_loader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/json/json_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/json/json_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/json/json_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/load_balancing/lb_policy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/load_balancing/lb_policy_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/matchers/matchers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/promise/activity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/promise/party.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/promise/sleep.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/promise/trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resolver/resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resolver/resolver_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resolver/server_address.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/api.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/arena.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/memory_quota.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/periodic_update.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/resource_quota.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/thread_quota.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/resource_quota/trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/evaluate_args.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/grpc_authorization_engine.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/grpc_server_authz_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/matchers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/authorization/rbac_policy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/certificate_provider/certificate_provider_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/context/security_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/alts_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/check_gcp_environment.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/call_creds_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/channel_creds_registry_init.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/composite/composite_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/external/aws_external_account_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/external/aws_request_signer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/external/external_account_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/external/file_external_account_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/external/url_external_account_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/fake/fake_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/google_default/credentials_generic.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/google_default/google_default_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/iam/iam_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/insecure/insecure_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/jwt/json_token.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/jwt/jwt_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/jwt/jwt_verifier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/local/local_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/plugin/plugin_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/ssl/ssl_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/tls_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/tls/tls_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/credentials/xds/xds_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/add_arcadia_root_certs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/alts/alts_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/fake/fake_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/load_system_roots_fallback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/load_system_roots_supported.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/local/local_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/ssl_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/security_connector/tls/tls_security_connector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/transport/client_auth_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/transport/secure_endpoint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/transport/security_handshaker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/transport/server_auth_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/transport/tsi_error.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/security/util/json_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/service_config/service_config_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/service_config/service_config_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/b64.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/percent_encoding.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/slice.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/slice_buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/slice_refcount.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/slice/slice_string_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/api_trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/builtins.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/byte_buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/byte_buffer_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/call.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/call_details.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/call_log_batch.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/call_trace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/channel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/channel_init.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/channel_ping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/channel_stack_type.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/completion_queue.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/completion_queue_factory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/event_string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/init.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/init_internally.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/lame_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/metadata_array.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/server.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/validate_metadata.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/surface/version.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/batch_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/bdp_estimator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/connectivity_state.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/error_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/handshaker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/handshaker_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/http_connect_handshaker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/metadata_batch.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/parsed_metadata.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/pid_controller.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/status_conversion.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/tcp_connect_handshaker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/timeout_encoding.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/transport.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/transport/transport_op_string.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/lib/uri/uri_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/plugin_registry/grpc_plugin_registry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/plugin_registry/grpc_plugin_registry_extra.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/crypt/aes_gcm.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/crypt/gsec.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_counter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_crypter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_frame_protector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/frame_protector/frame_handler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/handshaker/alts_handshaker_client.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/handshaker/alts_shared_resource.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/handshaker/alts_tsi_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/handshaker/transport_security_common_api.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/fake_transport_security.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/local_transport_security.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl/key_logging/ssl_key_logging.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl/session_cache/ssl_session_cache.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/ssl_transport_security_utils.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/transport_security.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/tsi/transport_security_grpc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/channel_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/client_callback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/client_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/client_interceptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/client_stats_interceptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/create_channel.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/create_channel_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/create_channel_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/insecure_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/secure_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/client/xds_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/alarm.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/auth_property_iterator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/channel_arguments.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/channel_filter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/completion_queue_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/resource_quota_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/rpc_method.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/secure_auth_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/secure_channel_arguments.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/secure_create_auth_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/tls_certificate_provider.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/tls_certificate_verifier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/tls_credentials_options.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/validate_service_config.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/common/version_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/async_generic_service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/backend_metric_recorder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/channel_argument_option.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/create_default_thread_pool.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/external_connection_acceptor_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/health/default_health_check_service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/health/health_check_service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/health/health_check_service_server_builder_option.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/insecure_server_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/secure_server_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/server_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/server_callback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/server_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/server_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/server_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/server/xds_server_credentials.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/thread_manager/thread_manager.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/util/byte_buffer_cc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/util/status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/util/string_ref.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/cpp/util/time_cc.cc
+)
diff --git a/contrib/libs/grpc/CMakeLists.txt b/contrib/libs/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/grpc/CMakeLists.txt
+++ b/contrib/libs/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-arm64.txt b/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..404dcf27e6
--- /dev/null
+++ b/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(src-compiler-grpc_plugin_support)
+target_compile_options(src-compiler-grpc_plugin_support PRIVATE
+ -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(src-compiler-grpc_plugin_support PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/include
+)
+target_include_directories(src-compiler-grpc_plugin_support PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+)
+target_link_libraries(src-compiler-grpc_plugin_support PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ contrib-libs-protoc
+)
+target_sources(src-compiler-grpc_plugin_support PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/cpp_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/csharp_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/node_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/objective_c_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/php_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/proto_parser_helper.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/python_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/ruby_generator.cc
+)
diff --git a/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt b/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt
+++ b/contrib/libs/grpc/src/compiler/grpc_plugin_support/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-arm64.txt b/contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..769add5f8b
--- /dev/null
+++ b/contrib/libs/grpc/third_party/address_sorting/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(grpc-third_party-address_sorting)
+target_compile_options(grpc-third_party-address_sorting PRIVATE
+ -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(grpc-third_party-address_sorting PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/address_sorting/include
+)
+target_sources(grpc-third_party-address_sorting PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/address_sorting/address_sorting.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/address_sorting/address_sorting_posix.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/address_sorting/address_sorting_windows.c
+)
diff --git a/contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt b/contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt
+++ b/contrib/libs/grpc/third_party/address_sorting/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/grpc/third_party/upb/CMakeLists.darwin-arm64.txt b/contrib/libs/grpc/third_party/upb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f371cc9d39
--- /dev/null
+++ b/contrib/libs/grpc/third_party/upb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(grpc-third_party-upb)
+target_compile_options(grpc-third_party-upb PRIVATE
+ -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(grpc-third_party-upb PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb
+)
+target_sources(grpc-third_party-upb PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/third_party/utf8_range/naive.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/third_party/utf8_range/range2-neon.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/third_party/utf8_range/range2-sse.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/arena.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/array.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/decode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/decode_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/def.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/extension_registry.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/json_decode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/json_encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/map.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/mini_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/msg.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/reflection.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/status.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/text_encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/third_party/upb/upb/upb.c
+)
diff --git a/contrib/libs/grpc/third_party/upb/CMakeLists.txt b/contrib/libs/grpc/third_party/upb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/grpc/third_party/upb/CMakeLists.txt
+++ b/contrib/libs/grpc/third_party/upb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/hdr_histogram/CMakeLists.darwin-arm64.txt b/contrib/libs/hdr_histogram/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3bacaf8e67
--- /dev/null
+++ b/contrib/libs/hdr_histogram/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-hdr_histogram)
+target_compile_options(contrib-libs-hdr_histogram PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-hdr_histogram PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src
+)
+target_link_libraries(contrib-libs-hdr_histogram PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-zlib
+)
+target_sources(contrib-libs-hdr_histogram PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_encoding.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_interval_recorder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_histogram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_writer_reader_phaser.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/hdr_histogram/src/hdr_thread.c
+)
diff --git a/contrib/libs/hdr_histogram/CMakeLists.txt b/contrib/libs/hdr_histogram/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/hdr_histogram/CMakeLists.txt
+++ b/contrib/libs/hdr_histogram/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/highwayhash/CMakeLists.darwin-arm64.txt b/contrib/libs/highwayhash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f8569f281a
--- /dev/null
+++ b/contrib/libs/highwayhash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-highwayhash)
+target_compile_options(contrib-libs-highwayhash PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-highwayhash PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash
+)
+target_link_libraries(contrib-libs-highwayhash PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(contrib-libs-highwayhash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/arch_specific.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/instruction_sets.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/nanobenchmark.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/os_specific.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/sip_hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/scalar_sip_tree_hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/hh_portable.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/c_bindings.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash/highwayhash/sip_tree_hash.cc
+)
diff --git a/contrib/libs/highwayhash/CMakeLists.txt b/contrib/libs/highwayhash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/highwayhash/CMakeLists.txt
+++ b/contrib/libs/highwayhash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/icu/CMakeLists.darwin-arm64.txt b/contrib/libs/icu/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..226d2199fd
--- /dev/null
+++ b/contrib/libs/icu/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,488 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-icu)
+target_compile_options(contrib-libs-icu PRIVATE
+ -DU_COMMON_IMPLEMENTATION
+ -DU_I18N_IMPLEMENTATION
+ -DU_IO_IMPLEMENTATION
+ -DU_STATIC_IMPLEMENTATION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-icu PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/include
+)
+target_include_directories(contrib-libs-icu PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io
+)
+target_link_libraries(contrib-libs-icu PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-icu PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/appendable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bmpset.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/brkeng.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/brkiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bytesinkutil.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bytestream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bytestrie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bytestriebuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/bytestrieiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/caniter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/characterproperties.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/chariter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/charstr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/cmemory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/cstr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/cstring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/cwchar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictionarydata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dtintrv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/edits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/emojiprops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/errorcode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filteredbrk.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filterednormalizer2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/icudataver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/icuplug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/loadednormalizer2impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/localebuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/localematcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/localeprioritylist.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locavailable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locbased.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locdispnames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locdistance.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locdspnm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locid.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/loclikely.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/loclikelysubtags.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locmap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locresdata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locutil.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lsr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lstmbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/messagepattern.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/mlbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normlzr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/parsepos.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/patternprops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/pluralmap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/propname.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/propsvec.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/punycode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/putil.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbi.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbi_cache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbidata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbinode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbirb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbiscan.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbisetb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbistbl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/rbbitblb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/resbund.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/resbund_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/resource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/restrace.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ruleiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/schriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/serv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servlk.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servlkf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servnotf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servrbf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/servslkf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/sharedobject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/simpleformatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/static_unicode_sets.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/stringpiece.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/stringtriebuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uarrsort.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubidi.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubidi_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubidiln.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubiditransform.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubidiwrt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ubrk.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucase.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucasemap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucasemap_titlecase_brkiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uchar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucharstrie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucharstriebuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucharstrieiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uchriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucln_cmn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucmndata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv2022.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_bld.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_cb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_ct.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_err.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_ext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_io.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_lmb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_set.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_u16.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_u32.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_u7.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnv_u8.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvbocu.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvdisp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvhz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvisci.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvlat1.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvmbcs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvscsu.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucnvsel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucol_swp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucptrie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ucurr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/udata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/udatamem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/udataswp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uenum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uhash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uhash_us.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uidna.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uinit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uinvchar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ulist.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uloc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uloc_keytype.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uloc_tag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/umapfile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/umath.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/umutablecptrie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/umutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unifiedcache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unifilt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unifunct.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uniset.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uniset_closure.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uniset_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unisetspan.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr_case.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr_case_locale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unistr_titlecase_brkiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unorm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/unormcmp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uobject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uprops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ures_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uresbund.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uresdata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/usc_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uscript.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uscript_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uset.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uset_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/usetiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ushape.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/usprep.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustack.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustr_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustr_titlecase_brkiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustr_wcs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustrcase.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustrcase_locale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustrenum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustrfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/ustrtrns.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utf_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/util.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/util_props.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utrace.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utrie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utrie2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utrie2_builder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utrie_swap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uts46.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/utypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uvector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uvectr32.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/uvectr64.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/wintz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/alphaindex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/anytrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/astro.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/basictz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/bocsu.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/brktrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/buddhcal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/calendar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/casetrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/cecal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/chnsecal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/choicfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/coleitr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/coll.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationbuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationcompare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationdata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationdatabuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationdatareader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationdatawriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationfastlatin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationfastlatinbuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationfcd.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationkeys.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationroot.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationrootelements.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationruleparser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationsets.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationsettings.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationtailoring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/collationweights.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/compactdecimalformat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/coptccal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/cpdtrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csdetect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csmatch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csr2022.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csrecog.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csrmbcs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csrsbcs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csrucode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/csrutf8.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/curramt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/currfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/currpinf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/currunit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dangical.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/datefmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dayperiodrules.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dcfmtsym.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/decContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/decNumber.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/decimfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/displayoptions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-bignum-dtoa.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-bignum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-cached-powers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-double-to-string.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-fast-dtoa.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-string-to-double.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/double-conversion-strtod.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dtfmtsym.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dtitvfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dtitvinf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dtptngen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/dtrule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/erarules.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/esctrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ethpccal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/fmtable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/fmtable_cnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/format.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/formatted_string_builder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/formattedval_iterimpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/formattedval_sbimpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/formattedvalue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/fphdlimp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/fpositer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/funcrepl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/gender.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/gregocal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/gregoimp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/hebrwcal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/indiancal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/inputext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/islamcal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/iso8601cal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/japancal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/listformatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/measfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/measunit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/measunit_extra.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/measure.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/msgfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/name2uni.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfsubs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nortrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nultrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_affixutils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_asformat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_capi.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_compact.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_currencysymbols.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_decimalquantity.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_decimfmtprops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_fluent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_formatimpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_grouping.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_integerwidth.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_longnames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_mapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_modifiers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_multiplier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_notation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_output.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_padding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_patternmodifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_patternstring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_rounding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_scientific.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_simple.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_skeletons.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_symbolswrapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_usageprefs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_utils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_affixes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_compositions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_currency.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_decimal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_parsednumber.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_scientific.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_symbols.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_validators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_capi.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_fluent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numsys.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/olsontz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/persncal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/pluralranges.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurrule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quantityformatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbnf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbt_data.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbt_pars.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbt_rule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbt_set.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rbtz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/regexcmp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/regeximp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/regexst.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/regextxt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/region.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/reldatefmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/reldtfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rematch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/remtrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/repattrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/rulebasedcollator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/scientificnumberformatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/scriptset.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/search.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/selfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/sharedbreakiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/simpletz.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/smpdtfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/smpdtfst.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/sortkey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/standardplural.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/string_segment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/strmatch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/strrepl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/stsearch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/taiwncal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/timezone.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/titletrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tmunit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tmutamt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tmutfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tolowtrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/toupptrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/translit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/transreg.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tridpars.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tzfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tzgnames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tznames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tznames_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tzrule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/tztrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucln_in.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucol_res.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucol_sit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucoleitr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ucsdet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/udat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/udateintervalformat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/udatpg.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ufieldpositer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uitercollationiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ulistformatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ulocdata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/umsg.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unesctrn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uni2name.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_complexconverter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_converter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_data.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_router.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unumsys.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/upluralrules.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uregex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uregexc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uregion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/usearch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uspoof.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uspoof_build.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uspoof_conf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uspoof_impl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/utf16collationiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/utf8collationiterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/utmscale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/utrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/vtzone.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/vzone.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/windtfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/winnmfmt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/wintzimpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/zonemeta.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/zrule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/ztrans.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/locbund.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/sprintf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/sscanf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/ucln_io.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/ufile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/ufmt_cmn.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/uprintf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/uprntf_p.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/uscanf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/uscanf_p.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/ustdio.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/io/ustream.cpp
+)
+target_rodata_sources(contrib-libs-icu
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt73_dat.rodata
+)
diff --git a/contrib/libs/icu/CMakeLists.txt b/contrib/libs/icu/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/icu/CMakeLists.txt
+++ b/contrib/libs/icu/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/jemalloc/CMakeLists.darwin-arm64.txt b/contrib/libs/jemalloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e041153f2
--- /dev/null
+++ b/contrib/libs/jemalloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,103 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-jemalloc)
+target_compile_options(contrib-libs-jemalloc PRIVATE
+ -funroll-loops
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-jemalloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/include
+)
+target_link_libraries(contrib-libs-jemalloc PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-jemalloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/zone.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/arena.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/background_thread.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/base.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/bin.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/bin_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/bitmap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/buf_writer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/cache_bin.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/ckh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/counter.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/ctl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/decay.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/div.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/ecache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/edata.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/edata_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/ehooks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/emap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/eset.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/exp_grow.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/extent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/extent_dss.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/extent_mmap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/fxp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/hook.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/hpa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/hpa_hooks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/hpdata.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/inspect.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/jemalloc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/jemalloc_cpp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/large.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/malloc_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/mutex.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/nstime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/pa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/pa_extra.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/pac.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/pages.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/pai.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/peak_event.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof_recent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof_stats.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/prof_sys.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/psset.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/rtree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/safety_check.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/san.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/san_bump.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/sc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/sec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/stats.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/sz.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/tcache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/test_hooks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/thread_event.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/ticker.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/tsd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/src/witness.c
+)
+
+add_global_library_for(contrib-libs-jemalloc.global contrib-libs-jemalloc)
+target_compile_options(contrib-libs-jemalloc.global PRIVATE
+ -funroll-loops
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-jemalloc.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/include
+)
+target_link_libraries(contrib-libs-jemalloc.global PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-jemalloc.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jemalloc/reg_zone.cpp
+)
diff --git a/contrib/libs/jemalloc/CMakeLists.txt b/contrib/libs/jemalloc/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/jemalloc/CMakeLists.txt
+++ b/contrib/libs/jemalloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/jwt-cpp/CMakeLists.darwin-arm64.txt b/contrib/libs/jwt-cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8a95104ba8
--- /dev/null
+++ b/contrib/libs/jwt-cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-jwt-cpp INTERFACE)
+target_include_directories(contrib-libs-jwt-cpp INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/jwt-cpp/include
+)
+target_link_libraries(contrib-libs-jwt-cpp INTERFACE
+ contrib-libs-openssl
+)
diff --git a/contrib/libs/jwt-cpp/CMakeLists.txt b/contrib/libs/jwt-cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/jwt-cpp/CMakeLists.txt
+++ b/contrib/libs/jwt-cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libbz2/CMakeLists.darwin-arm64.txt b/contrib/libs/libbz2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f5bcb4e658
--- /dev/null
+++ b/contrib/libs/libbz2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-libbz2)
+target_compile_options(contrib-libs-libbz2 PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_sources(contrib-libs-libbz2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/blocksort.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/bzlib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/crctable.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/huffman.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2/randtable.c
+)
diff --git a/contrib/libs/libbz2/CMakeLists.txt b/contrib/libs/libbz2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libbz2/CMakeLists.txt
+++ b/contrib/libs/libbz2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libc_compat/CMakeLists.darwin-arm64.txt b/contrib/libs/libc_compat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..536ee46c8b
--- /dev/null
+++ b/contrib/libs/libc_compat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-libc_compat)
+target_compile_options(contrib-libs-libc_compat PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-libc_compat PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libc_compat/reallocarray
+)
+target_sources(contrib-libs-libc_compat PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libc_compat/string.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libc_compat/memrchr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libc_compat/explicit_bzero.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libc_compat/reallocarray/reallocarray.c
+)
diff --git a/contrib/libs/libc_compat/CMakeLists.txt b/contrib/libs/libc_compat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libc_compat/CMakeLists.txt
+++ b/contrib/libs/libc_compat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libevent/CMakeLists.darwin-arm64.txt b/contrib/libs/libevent/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b663371d0
--- /dev/null
+++ b/contrib/libs/libevent/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(event_core)
+add_subdirectory(event_extra)
+add_subdirectory(event_openssl)
+add_subdirectory(event_thread)
+
+add_library(contrib-libs-libevent INTERFACE)
+target_include_directories(contrib-libs-libevent INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/include
+)
+target_link_libraries(contrib-libs-libevent INTERFACE
+ libs-libevent-event_core
+ libs-libevent-event_extra
+ libs-libevent-event_openssl
+ libs-libevent-event_thread
+)
diff --git a/contrib/libs/libevent/CMakeLists.txt b/contrib/libs/libevent/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libevent/CMakeLists.txt
+++ b/contrib/libs/libevent/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libevent/event_core/CMakeLists.darwin-arm64.txt b/contrib/libs/libevent/event_core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..76257b1032
--- /dev/null
+++ b/contrib/libs/libevent/event_core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-libevent-event_core)
+target_compile_options(libs-libevent-event_core PRIVATE
+ -DHAVE_CONFIG_H
+ -DEVENT__HAVE_STRLCPY=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-libevent-event_core PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/include
+)
+target_link_libraries(libs-libevent-event_core PUBLIC
+ contrib-libs-libc_compat
+)
+target_sources(libs-libevent-event_core PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/buffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent_filter.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent_pair.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent_ratelim.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent_sock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/event.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evmap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evthread.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evutil.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evutil_rand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evutil_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/listener.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/signal.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/poll.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/select.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/kqueue.c
+)
diff --git a/contrib/libs/libevent/event_core/CMakeLists.txt b/contrib/libs/libevent/event_core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libevent/event_core/CMakeLists.txt
+++ b/contrib/libs/libevent/event_core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libevent/event_extra/CMakeLists.darwin-arm64.txt b/contrib/libs/libevent/event_extra/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..18fe1e7a8b
--- /dev/null
+++ b/contrib/libs/libevent/event_extra/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-libevent-event_extra)
+target_compile_options(libs-libevent-event_extra PRIVATE
+ -DHAVE_CONFIG_H
+ -DEVENT__HAVE_STRLCPY=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-libevent-event_extra PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/include
+)
+target_link_libraries(libs-libevent-event_extra PUBLIC
+ contrib-libs-libc_compat
+)
+target_sources(libs-libevent-event_extra PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evdns.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/event_tagging.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evrpc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/http.c
+)
diff --git a/contrib/libs/libevent/event_extra/CMakeLists.txt b/contrib/libs/libevent/event_extra/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libevent/event_extra/CMakeLists.txt
+++ b/contrib/libs/libevent/event_extra/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libevent/event_openssl/CMakeLists.darwin-arm64.txt b/contrib/libs/libevent/event_openssl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7444bff323
--- /dev/null
+++ b/contrib/libs/libevent/event_openssl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-libevent-event_openssl)
+target_compile_options(libs-libevent-event_openssl PRIVATE
+ -DHAVE_CONFIG_H
+ -DEVENT__HAVE_STRLCPY=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-libevent-event_openssl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/include
+)
+target_link_libraries(libs-libevent-event_openssl PUBLIC
+ contrib-libs-libc_compat
+ contrib-libs-openssl
+)
+target_sources(libs-libevent-event_openssl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/bufferevent_openssl.c
+)
diff --git a/contrib/libs/libevent/event_openssl/CMakeLists.txt b/contrib/libs/libevent/event_openssl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libevent/event_openssl/CMakeLists.txt
+++ b/contrib/libs/libevent/event_openssl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libevent/event_thread/CMakeLists.darwin-arm64.txt b/contrib/libs/libevent/event_thread/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0cbd83fbf4
--- /dev/null
+++ b/contrib/libs/libevent/event_thread/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-libevent-event_thread)
+target_compile_options(libs-libevent-event_thread PRIVATE
+ -DHAVE_CONFIG_H
+ -DEVENT__HAVE_STRLCPY=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-libevent-event_thread PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/include
+)
+target_link_libraries(libs-libevent-event_thread PUBLIC
+ contrib-libs-libc_compat
+)
+target_sources(libs-libevent-event_thread PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libevent/evthread_pthread.c
+)
diff --git a/contrib/libs/libevent/event_thread/CMakeLists.txt b/contrib/libs/libevent/event_thread/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libevent/event_thread/CMakeLists.txt
+++ b/contrib/libs/libevent/event_thread/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libfyaml/CMakeLists.darwin-arm64.txt b/contrib/libs/libfyaml/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0dc91909d1
--- /dev/null
+++ b/contrib/libs/libfyaml/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-libfyaml)
+target_compile_options(contrib-libs-libfyaml PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-libfyaml PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib
+ ${CMAKE_SOURCE_DIR}/contrib/libs/xxhash
+)
+target_link_libraries(contrib-libs-libfyaml PUBLIC
+ contrib-libs-xxhash
+)
+target_sources(contrib-libs-libfyaml PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-accel.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-atom.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-composer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-ctype.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-diag.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-doc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-docbuilder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-docstate.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-dump.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-emit.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-event.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-input.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-parse.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-path.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-token.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-types.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-utf8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libfyaml/src/lib/fy-walk.c
+)
diff --git a/contrib/libs/libfyaml/CMakeLists.txt b/contrib/libs/libfyaml/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libfyaml/CMakeLists.txt
+++ b/contrib/libs/libfyaml/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libunwind/CMakeLists.darwin-arm64.txt b/contrib/libs/libunwind/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d605a4adb7
--- /dev/null
+++ b/contrib/libs/libunwind/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-libunwind)
+target_compile_options(contrib-libs-libunwind PUBLIC
+ -D_libunwind_
+)
+target_compile_options(contrib-libs-libunwind PRIVATE
+ -D_LIBUNWIND_IS_NATIVE_ONLY
+ -fno-exceptions
+ -fno-rtti
+ -funwind-tables
+)
+target_include_directories(contrib-libs-libunwind PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/include
+)
+target_link_libraries(contrib-libs-libunwind PUBLIC
+ cpp-sanitizer-include
+)
+target_sources(contrib-libs-libunwind PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/Unwind-EHABI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/Unwind-seh.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/Unwind-sjlj.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/UnwindLevel1-gcc-ext.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/UnwindLevel1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/UnwindRegistersRestore.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/UnwindRegistersSave.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/libunwind.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libunwind/src/Unwind_AppleExtras.cpp
+)
diff --git a/contrib/libs/libunwind/CMakeLists.txt b/contrib/libs/libunwind/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libunwind/CMakeLists.txt
+++ b/contrib/libs/libunwind/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/libxml/CMakeLists.darwin-arm64.txt b/contrib/libs/libxml/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7a58197ba8
--- /dev/null
+++ b/contrib/libs/libxml/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-libxml)
+target_compile_options(contrib-libs-libxml PUBLIC
+ -DLIBXML_STATIC
+)
+target_compile_options(contrib-libs-libxml PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-libxml PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/include
+)
+target_include_directories(contrib-libs-libxml PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml
+)
+target_link_libraries(contrib-libs-libxml PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ library-cpp-charset
+)
+target_sources(contrib-libs-libxml PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/HTMLparser.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/HTMLtree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/SAX.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/SAX2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/c14n.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/catalog.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/chvalid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/debugXML.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/dict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/encoding.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/entities.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/error.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/globals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/legacy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/list.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/nanoftp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/nanohttp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/parserInternals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/pattern.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/relaxng.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/schematron.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/threads.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/tree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/uri.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/valid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xinclude.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xlink.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlIO.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlmemory.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlmodule.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlreader.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlregexp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlsave.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlschemas.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlschemastypes.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlstring.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlunicode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xmlwriter.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xpath.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xpointer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/xzlib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libxml/yencoding.cpp
+)
diff --git a/contrib/libs/libxml/CMakeLists.txt b/contrib/libs/libxml/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/libxml/CMakeLists.txt
+++ b/contrib/libs/libxml/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/linuxvdso/CMakeLists.darwin-arm64.txt b/contrib/libs/linuxvdso/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a8dd8f11c1
--- /dev/null
+++ b/contrib/libs/linuxvdso/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-linuxvdso)
+target_sources(contrib-libs-linuxvdso PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/linuxvdso/fake.cpp
+)
diff --git a/contrib/libs/linuxvdso/CMakeLists.txt b/contrib/libs/linuxvdso/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/linuxvdso/CMakeLists.txt
+++ b/contrib/libs/linuxvdso/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..953c61faac
--- /dev/null
+++ b/contrib/libs/llvm12/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(include)
+add_subdirectory(lib)
+add_subdirectory(utils)
+
+add_library(contrib-libs-llvm12 INTERFACE)
+target_include_directories(contrib-libs-llvm12 INTERFACE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+)
+target_link_libraries(contrib-libs-llvm12 INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/contrib/libs/llvm12/CMakeLists.txt b/contrib/libs/llvm12/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/CMakeLists.txt
+++ b/contrib/libs/llvm12/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ea3024199
--- /dev/null
+++ b/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,8008 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+get_built_tool_path(
+ TOOL_llvm-tblgen_bin
+ TOOL_llvm-tblgen_dependency
+ contrib/libs/llvm12/utils/TableGen
+ llvm-tblgen
+)
+
+add_library(libs-llvm12-include STATIC)
+set_property(TARGET libs-llvm12-include PROPERTY
+ LINKER_LANGUAGE CXX
+)
+target_link_libraries(libs-llvm12-include PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+)
+target_sources(libs-llvm12-include PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/Directive/DirectiveBase.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ --gen-directive-decl
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/Directive/DirectiveBase.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ --gen-directive-decl
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-attrs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-impl
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=aarch64
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=amdgcn
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=arm
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=bpf
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=hexagon
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=mips
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=nvvm
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=ppc
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=r600
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=riscv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=s390
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=ve
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=wasm
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=x86
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-intrinsic-enums
+ -intrinsic-prefix=xcore
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/Directive/DirectiveBase.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ --gen-directive-impl
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/Directive/DirectiveBase.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ --gen-directive-impl
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-matcher
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -asmwriternum=1
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-callingconv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-disassembler
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-exegesis
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-fast-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-emitter
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-pseudo-lowering
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel-combiner
+ -combiners=AArch64PostLegalizerCombinerHelper
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel-combiner
+ -combiners=AArch64PostLegalizerLoweringHelper
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel-combiner
+ -combiners=AArch64PreLegalizerCombinerHelper
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-bank
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64CallingConvention.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrAtomics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrGISel.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SVEInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA53.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA55.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedA64FX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedCyclone.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedExynosM5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkor.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedFalkorDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedKryoDetails.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredExynos.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedTSV110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64SystemOperands.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/SVEInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Combine.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-searchable-tables
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-matcher
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-callingconv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-disassembler
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-fast-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-emitter
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-pseudo-lowering
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-bank
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrCDE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrMVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrNEON.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrThumb2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMInstrVFP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA57WriteRes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleA9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleM7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleR52.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleSwift.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMScheduleV6.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMSystemRegister.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/TableGen/SearchableTable.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-searchable-tables
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARM.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-matcher
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-callingconv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-disassembler
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-emitter
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPF.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXIntrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXIntrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXIntrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXIntrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXIntrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTX.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-matcher
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-callingconv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-disassembler
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-exegesis
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-fast-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-emitter
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-bank
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/GISel/PPCRegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/P9InstrResources.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstr64Bit.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrAltivec.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrHTM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrPrefix.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrSPE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCInstrVSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCRegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCSchedule440.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleA2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE500mc.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleE5500.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG3.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG4Plus.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleG5.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP7.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP8.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCScheduleP9.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPC.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-matcher
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-asm-writer
+ -asmwriternum=1
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-callingconv
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-dag-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ -omit-comments
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-disassembler
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-x86-EVEX2VEX-tables
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-exegesis
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-fast-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-global-isel
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-instr-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d
+ --long-string-literals=0
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-bank
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-register-info
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Instr3DNow.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrAVX512.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrArithmetic.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCMovSetCC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrControl.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrExtension.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFPStack.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFormats.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFragmentsSIMD.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrKL.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrMPX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSGX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSNP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSSE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrShiftRotate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrSystem.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTDX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrTSX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVMX.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrVecCompiler.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrXOP.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBanks.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedBroadwell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedHaswell.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedPredicates.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSandyBridge.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeClient.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SchedSkylakeServer.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Schedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleAtom.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBdVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleBtVer2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleSLM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver1.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ScheduleZnver2.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/SDNodeProperties.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/CodeGen/ValueTypes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/Intrinsics.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagonDep.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVVM.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsSystemZ.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVEVL.gen.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GenericOpcodes.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/RegisterBank.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/GlobalISel/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/Target.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetCallingConv.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetInstrPredicate.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetItinerary.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetPfmCounters.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSchedule.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Target/TargetSelectionDAG.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-subtarget
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/dsymutil
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-cvtres
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-lipo
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-ml
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-mt
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/CommonOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/CommonOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-rc
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.td
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include/llvm/Option/OptParser.td
+ ${TOOL_llvm-tblgen_bin}
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12
+ COMMAND
+ ${TOOL_llvm-tblgen_bin}
+ -gen-opt-parser-defs
+ -I
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer
+ -Iinclude
+ -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.td
+ --write-if-changed
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc
+ -d
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d
+)
+if(NOT CMAKE_CROSSCOMPILING)
+ add_dependencies(libs-llvm12-include
+ llvm-tblgen
+)
+endif()
+add_custom_target(OpenMP-gen-srcs-stealing
+ DEPENDS ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp
+)
+
diff --git a/contrib/libs/llvm12/include/CMakeLists.txt b/contrib/libs/llvm12/include/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/include/CMakeLists.txt
+++ b/contrib/libs/llvm12/include/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ba11227e1
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Analysis/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,141 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Analysis)
+target_compile_options(llvm12-lib-Analysis PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Analysis PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis
+)
+target_link_libraries(llvm12-lib-Analysis PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-BinaryFormat
+ llvm12-lib-IR
+ llvm12-lib-Object
+ llvm12-lib-ProfileData
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-Analysis PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AliasAnalysisEvaluator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AliasAnalysisSummary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AliasSetTracker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Analysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AssumeBundleQueries.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/AssumptionCache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/BasicAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/BlockFrequencyInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/BlockFrequencyInfoImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/BranchProbabilityInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CFG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CFGPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CFLAndersAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CFLSteensAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CGSCCPassManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CallGraph.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CallGraphSCCPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CallPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CaptureTracking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CmpInstAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CodeMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ConstantFolding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ConstraintSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/CostModel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DDG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DDGPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Delinearization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DemandedBits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DependenceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DependenceGraphBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DivergenceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DomPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DomTreeUpdater.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/DominanceFrontier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/EHPersonalities.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/FunctionPropertiesAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/GlobalsModRef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/GuardUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/HeatUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/IRSimilarityIdentifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/IVDescriptors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/IVUsers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ImportedFunctionsInliningStatistics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/IndirectCallPromotionAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InlineAdvisor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InlineCost.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InlineSizeEstimatorAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InstCount.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InstructionPrecedenceTracking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/InstructionSimplify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Interval.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/IntervalPartition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LazyBlockFrequencyInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LazyBranchProbabilityInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LazyCallGraph.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LazyValueInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LegacyDivergenceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Lint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Loads.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopAccessAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopAnalysisManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopCacheAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopNestAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/LoopUnrollAnalyzer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MLInlineAdvisor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemDepPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemDerefPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemoryBuiltins.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemoryDependenceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemoryLocation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemorySSA.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MemorySSAUpdater.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ModuleDebugInfoPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ModuleSummaryAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/MustExecute.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ObjCARCAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ObjCARCAnalysisUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ObjCARCInstKind.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/OptimizationRemarkEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/PHITransAddr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/PhiValues.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/PostDominators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ProfileSummaryInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/PtrUseVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/RegionInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/RegionPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/RegionPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ReleaseModeModelRunner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ReplayInlineAdvisor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ScalarEvolution.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ScalarEvolutionDivision.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ScalarEvolutionNormalization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ScopedNoAliasAA.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/StackLifetime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/StackSafetyAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/SyncDependenceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/SyntheticCountsUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/TFUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/TargetLibraryInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/TargetTransformInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/Trace.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/TypeBasedAliasAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/TypeMetadataUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/VFABIDemangling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ValueLattice.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ValueLatticeUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/ValueTracking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Analysis/VectorUtils.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Analysis/CMakeLists.txt b/contrib/libs/llvm12/lib/Analysis/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Analysis/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Analysis/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..36839293f4
--- /dev/null
+++ b/contrib/libs/llvm12/lib/AsmParser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-AsmParser)
+target_compile_options(llvm12-lib-AsmParser PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-AsmParser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/AsmParser
+)
+target_link_libraries(llvm12-lib-AsmParser PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-BinaryFormat
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-AsmParser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/AsmParser/LLLexer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/AsmParser/LLParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/AsmParser/Parser.cpp
+)
diff --git a/contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt b/contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/AsmParser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..96149cac1f
--- /dev/null
+++ b/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-BinaryFormat)
+target_compile_options(llvm12-lib-BinaryFormat PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-BinaryFormat PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat
+)
+target_link_libraries(llvm12-lib-BinaryFormat PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-BinaryFormat PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/Dwarf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/MachO.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/Magic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/Minidump.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/MsgPackDocument.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/MsgPackDocumentYAML.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/MsgPackReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/MsgPackWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/Wasm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/BinaryFormat/XCOFF.cpp
+)
diff --git a/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt b/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/BinaryFormat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39b2ea7c63
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Bitcode-Reader)
+target_compile_options(lib-Bitcode-Reader PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Bitcode-Reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader
+)
+target_link_libraries(lib-Bitcode-Reader PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ lib-Bitstream-Reader
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(lib-Bitcode-Reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader/BitReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader/BitcodeReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader/MetadataLoader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Reader/ValueList.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt b/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Bitcode/Reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60790bac2e
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Bitcode-Writer)
+target_compile_options(lib-Bitcode-Writer PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Bitcode-Writer PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Writer
+)
+target_link_libraries(lib-Bitcode-Writer PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Object
+ llvm12-lib-Support
+)
+target_sources(lib-Bitcode-Writer PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Writer/BitWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Writer/BitcodeWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Writer/BitcodeWriterPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt b/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Bitcode/Writer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..99a4a604d6
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Bitstream-Reader)
+target_compile_options(lib-Bitstream-Reader PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Bitstream-Reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitstream/Reader
+)
+target_link_libraries(lib-Bitstream-Reader PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Support
+)
+target_sources(lib-Bitstream-Reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Bitstream/Reader/BitstreamReader.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt b/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Bitstream/Reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bcefc411a0
--- /dev/null
+++ b/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-CodeGen-AsmPrinter)
+target_compile_options(lib-CodeGen-AsmPrinter PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-CodeGen-AsmPrinter PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter
+)
+target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-BinaryFormat
+ llvm12-lib-CodeGen
+ lib-DebugInfo-CodeView
+ lib-DebugInfo-DWARF
+ lib-DebugInfo-MSF
+ llvm12-lib-IR
+ llvm12-lib-MC
+ lib-MC-MCParser
+ llvm12-lib-Remarks
+ llvm12-lib-Support
+ llvm12-lib-Target
+)
+target_sources(lib-CodeGen-AsmPrinter PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AIXException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/ARMException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AccelTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AddressPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DIE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DIEHash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DebugLocStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/EHStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/WasmException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/WinException.cpp
+)
diff --git a/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt b/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/CodeGen/AsmPrinter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e35eefddb
--- /dev/null
+++ b/contrib/libs/llvm12/lib/CodeGen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,226 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(AsmPrinter)
+add_subdirectory(GlobalISel)
+add_subdirectory(SelectionDAG)
+
+add_library(llvm12-lib-CodeGen)
+target_compile_options(llvm12-lib-CodeGen PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-CodeGen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen
+)
+target_link_libraries(llvm12-lib-CodeGen PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ lib-Bitcode-Reader
+ lib-Bitcode-Writer
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-ProfileData
+ llvm12-lib-Support
+ llvm12-lib-Target
+ lib-Transforms-Scalar
+ lib-Transforms-Utils
+)
+target_sources(llvm12-lib-CodeGen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AllocationOrder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/Analysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/AtomicExpandPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BasicBlockSections.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BasicTargetTransformInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BranchFolding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BranchRelaxation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BreakFalseDeps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/BuiltinGCs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CFGuardLongjmp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CFIInstrInserter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CalcSpillWeights.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CallingConvLower.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CodeGen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CodeGenPassBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CodeGenPrepare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CommandFlags.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/CriticalAntiDepBreaker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/DFAPacketizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/DeadMachineInstructionElim.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/DetectDeadLanes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/DwarfEHPrepare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/EarlyIfConversion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/EdgeBundles.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ExecutionDomainFix.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ExpandMemCmp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ExpandPostRAPseudos.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ExpandReductions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/FEntryInserter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/FaultMaps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/FinalizeISel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/FixupStatepointCallerSaved.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/FuncletLayout.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GCMetadata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GCMetadataPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GCRootLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GCStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalMerge.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/HardwareLoops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/IfConversion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ImplicitNullChecks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/IndirectBrExpandPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/InlineSpiller.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/InterferenceCache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/InterleavedAccessPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/InterleavedLoadCombinePass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/IntrinsicLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LLVMTargetMachine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LatencyPriorityQueue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LexicalScopes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveDebugVariables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveInterval.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveIntervalCalc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveIntervalUnion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveIntervals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LivePhysRegs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveRangeCalc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveRangeEdit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveRangeShrink.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveRegMatrix.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveRegUnits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveStacks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LiveVariables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LocalStackSlotAllocation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LoopTraversal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LowLevelType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/LowerEmuTLS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MBFIWrapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MIRCanonicalizerPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MIRNamerPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MIRPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MIRPrintingPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MIRVRegNamerUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineBasicBlock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineBlockFrequencyInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineBlockPlacement.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineBranchProbabilityInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineCSE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineCheckDebugify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineCombiner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineCopyPropagation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineDebugify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineDominanceFrontier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineDominators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineFrameInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineFunction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineFunctionPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineFunctionPrinterPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineFunctionSplitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineInstr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineInstrBundle.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineLICM.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineLoopInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineLoopUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineModuleInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineModuleInfoImpls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineOperand.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineOutliner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachinePassManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachinePipeliner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachinePostDominators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineRegionInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineRegisterInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineSSAUpdater.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineScheduler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineSink.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineSizeOpts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineStableHash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineStripDebug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineTraceMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MachineVerifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MacroFusion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ModuloSchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/MultiHazardRecognizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/NonRelocatableStringpool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/OptimizePHIs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PHIElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PHIEliminationUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ParallelCG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PatchableFunction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PeepholeOptimizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PostRAHazardRecognizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PostRASchedulerList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PreISelIntrinsicLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ProcessImplicitDefs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PrologEpilogInserter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PseudoProbeInserter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/PseudoSourceValue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RDFGraph.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RDFLiveness.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RDFRegisters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ReachingDefAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegAllocBase.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegAllocBasic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegAllocFast.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegAllocGreedy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegAllocPBQP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegUsageInfoCollector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegUsageInfoPropagate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegisterClassInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegisterCoalescer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegisterPressure.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegisterScavenging.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RegisterUsageInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/RenameIndependentSubregs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ResetMachineFunctionPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SafeStack.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SafeStackLayout.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ScheduleDAG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ScheduleDAGInstrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ScheduleDAGPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ScoreboardHazardRecognizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ShadowStackGCLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ShrinkWrap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SjLjEHPrepare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SlotIndexes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SpillPlacement.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SplitKit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/StackColoring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/StackMapLivenessAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/StackMaps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/StackProtector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/StackSlotColoring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SwiftErrorValueTracking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SwitchLoweringUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TailDuplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TailDuplicator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetFrameLoweringImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetInstrInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetLoweringBase.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetPassConfig.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetRegisterInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetSchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TargetSubtargetInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TwoAddressInstructionPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/TypePromotion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/UnreachableBlockElim.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/ValueTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/VirtRegMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/WasmEHPrepare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/WinEHPrepare.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/XRayInstrumentation.cpp
+)
diff --git a/contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt b/contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/CodeGen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..27309bf40c
--- /dev/null
+++ b/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-CodeGen-GlobalISel)
+target_compile_options(lib-CodeGen-GlobalISel PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-CodeGen-GlobalISel PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel
+)
+target_link_libraries(lib-CodeGen-GlobalISel PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-CodeGen
+ lib-CodeGen-SelectionDAG
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Support
+ llvm12-lib-Target
+ lib-Transforms-Utils
+)
+target_sources(lib-CodeGen-GlobalISel PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CSEInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CallLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/Combiner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/GlobalISel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/IRTranslator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/InstructionSelector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/Legalizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/Localizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/RegisterBank.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/GlobalISel/Utils.cpp
+)
diff --git a/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt b/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/CodeGen/GlobalISel/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4e4dec12da
--- /dev/null
+++ b/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-CodeGen-SelectionDAG)
+target_compile_options(lib-CodeGen-SelectionDAG PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-CodeGen-SelectionDAG PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG
+)
+target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-CodeGen
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Support
+ llvm12-lib-Target
+ lib-Transforms-Utils
+)
+target_sources(lib-CodeGen-SelectionDAG PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/FastISel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+)
diff --git a/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt b/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/CodeGen/SelectionDAG/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2d33903161
--- /dev/null
+++ b/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-DebugInfo-CodeView)
+target_compile_options(lib-DebugInfo-CodeView PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-DebugInfo-CodeView PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView
+)
+target_link_libraries(lib-DebugInfo-CodeView PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ lib-DebugInfo-MSF
+ llvm12-lib-Support
+)
+target_sources(lib-DebugInfo-CodeView PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/CodeViewError.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/EnumTables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/Formatters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/Line.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/RecordName.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/RecordSerialization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/SymbolDumper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/SymbolSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeHashing.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeIndex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/CodeView/TypeTableCollection.cpp
+)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/DebugInfo/CodeView/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2b5a8b0bd7
--- /dev/null
+++ b/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-DebugInfo-DWARF)
+target_compile_options(lib-DebugInfo-DWARF PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-DebugInfo-DWARF PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF
+)
+target_link_libraries(lib-DebugInfo-DWARF PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-BinaryFormat
+ llvm12-lib-MC
+ llvm12-lib-Object
+ llvm12-lib-Support
+)
+target_sources(lib-DebugInfo-DWARF PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFAddressRange.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFDie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFExpression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFFormValue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFListTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFUnit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/DWARF/DWARFVerifier.cpp
+)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/DebugInfo/DWARF/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..333a23b759
--- /dev/null
+++ b/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-DebugInfo-MSF)
+target_compile_options(lib-DebugInfo-MSF PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-DebugInfo-MSF PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/MSF
+)
+target_link_libraries(lib-DebugInfo-MSF PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Support
+)
+target_sources(lib-DebugInfo-MSF PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/MSF/MSFBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/MSF/MSFCommon.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/MSF/MSFError.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/MSF/MappedBlockStream.cpp
+)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/DebugInfo/MSF/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..499426d8b6
--- /dev/null
+++ b/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,117 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-DebugInfo-PDB)
+target_compile_options(lib-DebugInfo-PDB PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-DebugInfo-PDB PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB
+)
+target_link_libraries(lib-DebugInfo-PDB PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-BinaryFormat
+ lib-DebugInfo-CodeView
+ lib-DebugInfo-MSF
+ llvm12-lib-Object
+ llvm12-lib-Support
+)
+target_sources(lib-DebugInfo-PDB PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/GenericError.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/IPDBSourceFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/DbiModuleList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/DbiStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/EnumTables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/GlobalsStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/Hash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/HashTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/InfoStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumLineNumbers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumSymbols.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeFunctionSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeInlineSiteSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeLineNumber.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativePublicSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeSourceFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeTypedef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/PDBFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/PublicsStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/RawError.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/SymbolCache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/SymbolStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/TpiHashing.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/TpiStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDB.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBExtras.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymDumper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolBlock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolCustom.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolData.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolExe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolLabel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/PDB/UDTLayout.cpp
+)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/DebugInfo/PDB/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39a3b7dec0
--- /dev/null
+++ b/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-DebugInfo-Symbolize)
+target_compile_options(lib-DebugInfo-Symbolize PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-DebugInfo-Symbolize PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/Symbolize
+)
+target_link_libraries(lib-DebugInfo-Symbolize PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ lib-DebugInfo-DWARF
+ lib-DebugInfo-PDB
+ llvm12-lib-Demangle
+ llvm12-lib-Object
+ llvm12-lib-Support
+)
+target_sources(lib-DebugInfo-Symbolize PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/Symbolize/DIPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/DebugInfo/Symbolize/Symbolize.cpp
+)
diff --git a/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/DebugInfo/Symbolize/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8ce23b0d3b
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Demangle/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Demangle)
+target_compile_options(llvm12-lib-Demangle PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Demangle PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Demangle
+)
+target_link_libraries(llvm12-lib-Demangle PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+)
+target_sources(llvm12-lib-Demangle PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Demangle/Demangle.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Demangle/ItaniumDemangle.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Demangle/MicrosoftDemangle.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Demangle/MicrosoftDemangleNodes.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Demangle/CMakeLists.txt b/contrib/libs/llvm12/lib/Demangle/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Demangle/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Demangle/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8822271bb6
--- /dev/null
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(MCJIT)
+add_subdirectory(RuntimeDyld)
+
+add_library(llvm12-lib-ExecutionEngine)
+target_compile_options(llvm12-lib-ExecutionEngine PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-ExecutionEngine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine
+)
+target_link_libraries(llvm12-lib-ExecutionEngine PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ lib-ExecutionEngine-RuntimeDyld
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Object
+ llvm12-lib-Support
+ llvm12-lib-Target
+)
+target_sources(llvm12-lib-ExecutionEngine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/ExecutionEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/ExecutionEngineBindings.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/GDBRegistrationListener.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/SectionMemoryManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/TargetSelect.cpp
+)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt b/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5404346e22
--- /dev/null
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-ExecutionEngine-MCJIT)
+target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT
+)
+target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-ExecutionEngine
+ lib-ExecutionEngine-RuntimeDyld
+ llvm12-lib-IR
+ llvm12-lib-Object
+ llvm12-lib-Support
+ llvm12-lib-Target
+)
+target_sources(lib-ExecutionEngine-MCJIT PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/MCJIT.cpp
+)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.txt b/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/MCJIT/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a55dda54ce
--- /dev/null
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-ExecutionEngine-RuntimeDyld)
+target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld
+)
+target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Object
+ llvm12-lib-Support
+)
+target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
+)
diff --git a/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt b/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff198fe772
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+set_property(SOURCE ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp
+ PROPERTY GENERATED On
+)
+
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Frontend-OpenMP)
+target_compile_options(lib-Frontend-OpenMP PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Frontend-OpenMP PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP
+)
+target_link_libraries(lib-Frontend-OpenMP PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Frontend-OpenMP PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMPContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+)
+
+add_dependencies(lib-Frontend-OpenMP OpenMP-gen-srcs-stealing)
+
diff --git a/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt b/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Frontend/OpenMP/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/IR/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/IR/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39523b06af
--- /dev/null
+++ b/contrib/libs/llvm12/lib/IR/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-IR)
+target_compile_options(llvm12-lib-IR PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-IR PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR
+)
+target_link_libraries(llvm12-lib-IR PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-BinaryFormat
+ llvm12-lib-Remarks
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-IR PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/AbstractCallSite.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/AsmWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Assumptions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Attributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/AutoUpgrade.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/BasicBlock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Comdat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ConstantFold.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ConstantRange.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Constants.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Core.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DIBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DataLayout.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DebugInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DebugInfoMetadata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DebugLoc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DiagnosticHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DiagnosticInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/DiagnosticPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Dominators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/FPEnv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Function.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/GVMaterializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Globals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/IRBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/IRPrintingPasses.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/InlineAsm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Instruction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Instructions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/IntrinsicInst.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/LLVMContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/LLVMContextImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/LLVMRemarkStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/MDBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Mangler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Metadata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Module.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ModuleSummaryIndex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Operator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/OptBisect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Pass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PassInstrumentation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PassManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PassRegistry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PassTimingInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PrintPasses.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ProfileSummary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/PseudoProbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ReplaceConstant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/SafepointIRVerifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Statepoint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/StructuralHash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Type.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/TypeFinder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Use.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/User.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Value.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/ValueSymbolTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IR/Verifier.cpp
+)
diff --git a/contrib/libs/llvm12/lib/IR/CMakeLists.txt b/contrib/libs/llvm12/lib/IR/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/IR/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/IR/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bea3fbc885
--- /dev/null
+++ b/contrib/libs/llvm12/lib/IRReader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-IRReader)
+target_compile_options(llvm12-lib-IRReader PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-IRReader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IRReader
+)
+target_link_libraries(llvm12-lib-IRReader PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-AsmParser
+ lib-Bitcode-Reader
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-IRReader PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/IRReader/IRReader.cpp
+)
diff --git a/contrib/libs/llvm12/lib/IRReader/CMakeLists.txt b/contrib/libs/llvm12/lib/IRReader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/IRReader/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/IRReader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b6e260057
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Linker/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Linker)
+target_compile_options(llvm12-lib-Linker PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Linker PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Linker
+)
+target_link_libraries(llvm12-lib-Linker PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-IR
+ llvm12-lib-Object
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(llvm12-lib-Linker PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Linker/IRMover.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Linker/LinkModules.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Linker/CMakeLists.txt b/contrib/libs/llvm12/lib/Linker/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Linker/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Linker/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/MC/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/MC/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a873c2d122
--- /dev/null
+++ b/contrib/libs/llvm12/lib/MC/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(MCDisassembler)
+add_subdirectory(MCParser)
+
+add_library(llvm12-lib-MC)
+target_compile_options(llvm12-lib-MC PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-MC PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC
+)
+target_link_libraries(llvm12-lib-MC PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-BinaryFormat
+ lib-DebugInfo-CodeView
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-MC PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/ConstantPools.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/ELFObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmBackend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfoCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfoDarwin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfoELF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfoWasm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmInfoXCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmMacro.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAsmStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCAssembler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCCodeEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCCodeView.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDwarf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCELFObjectTargetWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCELFStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCExpr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCFragment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCInst.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCInstPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCInstrAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCInstrDesc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCInstrInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCLabel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCLinkerOptimizationHint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCMachOStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCMachObjectTargetWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCNullStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCObjectFileInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCObjectStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCPseudoProbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCRegisterInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSectionCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSectionELF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSectionMachO.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSectionWasm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSectionXCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSubtargetInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSymbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSymbolELF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCSymbolXCOFF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCTargetOptions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCTargetOptionsCommandFlags.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCValue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCWasmObjectTargetWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCWasmStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCWin64EH.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCWinCOFFStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCWinEH.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCXCOFFObjectTargetWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCXCOFFStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MachObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/StringTableBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/SubtargetFeature.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/WasmObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/WinCOFFObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/XCOFFObjectWriter.cpp
+)
diff --git a/contrib/libs/llvm12/lib/MC/CMakeLists.txt b/contrib/libs/llvm12/lib/MC/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/MC/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/MC/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a2bee93bc4
--- /dev/null
+++ b/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-MC-MCDisassembler)
+target_compile_options(lib-MC-MCDisassembler PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-MC-MCDisassembler PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler
+)
+target_link_libraries(lib-MC-MCDisassembler PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-MC
+ llvm12-lib-Support
+)
+target_sources(lib-MC-MCDisassembler PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler/Disassembler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler/MCDisassembler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler/MCRelocationInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCDisassembler/MCSymbolizer.cpp
+)
diff --git a/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt b/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/MC/MCDisassembler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e947a4a7c4
--- /dev/null
+++ b/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-MC-MCParser)
+target_compile_options(lib-MC-MCParser PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-MC-MCParser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser
+)
+target_link_libraries(lib-MC-MCParser PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-MC
+ llvm12-lib-Support
+)
+target_sources(lib-MC-MCParser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/AsmLexer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/AsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/COFFAsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/COFFMasmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/DarwinAsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/ELFAsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/MCAsmLexer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/MCAsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/MCAsmParserExtension.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/MCTargetAsmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/MasmParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/MC/MCParser/WasmAsmParser.cpp
+)
diff --git a/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt b/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/MC/MCParser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Object/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Object/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1207f4b5d
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Object/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Object)
+target_compile_options(llvm12-lib-Object PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Object PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object
+)
+target_link_libraries(llvm12-lib-Object PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-BinaryFormat
+ lib-Bitcode-Reader
+ llvm12-lib-IR
+ llvm12-lib-MC
+ lib-MC-MCParser
+ llvm12-lib-Support
+ lib-TextAPI-MachO
+)
+target_sources(llvm12-lib-Object PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Archive.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/ArchiveWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Binary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/COFFImportFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/COFFModuleDefinition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/COFFObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Decompressor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/ELF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/ELFObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/IRObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/IRSymtab.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/MachOObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/MachOUniversal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/MachOUniversalWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Minidump.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/ModuleSymbolTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/Object.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/ObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/RecordStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/RelocationResolver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/SymbolSize.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/SymbolicFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/TapiFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/TapiUniversal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/WasmObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/WindowsMachineFlag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/WindowsResource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Object/XCOFFObjectFile.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Object/CMakeLists.txt b/contrib/libs/llvm12/lib/Object/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Object/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Object/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e79d53db2
--- /dev/null
+++ b/contrib/libs/llvm12/lib/ProfileData/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-ProfileData)
+target_compile_options(llvm12-lib-ProfileData PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-ProfileData PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData
+)
+target_link_libraries(llvm12-lib-ProfileData PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Demangle
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-ProfileData PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/GCOV.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/InstrProf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/InstrProfReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/InstrProfWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/ProfileSummaryBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/SampleProf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/SampleProfReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/ProfileData/SampleProfWriter.cpp
+)
diff --git a/contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt b/contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/ProfileData/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..edd1e0fe35
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Remarks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Remarks)
+target_compile_options(llvm12-lib-Remarks PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Remarks PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks
+)
+target_link_libraries(llvm12-lib-Remarks PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ lib-Bitstream-Reader
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-Remarks PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/BitstreamRemarkParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/BitstreamRemarkSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/Remark.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkLinker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/RemarkStringTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/YAMLRemarkParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Remarks/YAMLRemarkSerializer.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Remarks/CMakeLists.txt b/contrib/libs/llvm12/lib/Remarks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Remarks/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Remarks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Support/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Support/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d664d8fe2c
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Support/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,160 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-Support)
+target_compile_options(llvm12-lib-Support PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Support PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support
+)
+target_link_libraries(llvm12-lib-Support PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Demangle
+ contrib-libs-zlib
+ cpp-sanitizer-include
+)
+target_sources(llvm12-lib-Support PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/AArch64TargetParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ABIBreak.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/AMDGPUMetadata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/APFixedPoint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/APFloat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/APInt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/APSInt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ARMAttributeParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ARMBuildAttrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ARMTargetParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ARMWinEH.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Allocator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Atomic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BinaryStreamError.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BinaryStreamReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BinaryStreamRef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BinaryStreamWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BlockFrequency.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BranchProbability.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/BuryPointer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/COM.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/CRC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/CachePruning.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Chrono.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/CodeGenCoverage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/CommandLine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Compression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ConvertUTF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ConvertUTFWrapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/CrashRecoveryContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DAGDeltaAlgorithm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DJB.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DataExtractor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Debug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DebugCounter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DeltaAlgorithm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/DynamicLibrary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ELFAttributeParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ELFAttributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Errno.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ErrorHandling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ExtensibleRTTI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FileCollector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FileOutputBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FileUtilities.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FoldingSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FormatVariadic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/FormattedStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/GlobPattern.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/GraphWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Hashing.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Host.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/InitLLVM.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/InstructionCost.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/IntEqClasses.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/IntervalMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ItaniumManglingCanonicalizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/JSON.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/KnownBits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/LEB128.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/LineIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Locale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/LockFileManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/LowLevelType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/MD5.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ManagedStatic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/MathExtras.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/MemAlloc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Memory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/MemoryBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/MemoryBufferRef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/NativeFormatting.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/OptimizedStructLayout.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Optional.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Parallel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Path.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/PluginLoader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/PrettyStackTrace.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Process.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Program.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/RISCVAttributeParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/RISCVAttributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/RWMutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/RandomNumberGenerator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Regex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SHA1.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ScaledNumber.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ScopedPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Signals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Signposts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SmallPtrSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SmallVector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SourceMgr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SpecialCaseList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Statistic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/StringExtras.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/StringMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/StringRef.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/StringSaver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SuffixTree.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SymbolRemappingReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/SystemUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/TarWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/TargetParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/TargetRegistry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ThreadLocal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ThreadPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Threading.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/TimeProfiler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Timer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/ToolOutputFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/TrigramIndex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Triple.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Twine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Unicode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/UnicodeCaseFold.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Valgrind.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/VersionTuple.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/VirtualFileSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Watchdog.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/WithColor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/X86TargetParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/YAMLParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/YAMLTraits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/Z3Solver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/circular_raw_ostream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/raw_os_ostream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/raw_ostream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/regcomp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/regerror.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/regexec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/regfree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/regstrlcpy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Support/xxhash.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Support/CMakeLists.txt b/contrib/libs/llvm12/lib/Support/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Support/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Support/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6f2ec53956
--- /dev/null
+++ b/contrib/libs/llvm12/lib/TableGen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(llvm12-lib-TableGen)
+target_compile_options(llvm12-lib-TableGen PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-TableGen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen
+)
+target_link_libraries(llvm12-lib-TableGen PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-TableGen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/DetailedRecordsBackend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/JSONBackend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/Main.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/Record.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/SetTheory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/StringMatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/TGLexer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/TGParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/TableGenBackend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TableGen/TableGenBackendSkeleton.cpp
+)
diff --git a/contrib/libs/llvm12/lib/TableGen/CMakeLists.txt b/contrib/libs/llvm12/lib/TableGen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/TableGen/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/TableGen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d8ccbcb7dc
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(X86)
+
+add_library(llvm12-lib-Target)
+target_compile_options(llvm12-lib-Target PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm12-lib-Target PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target
+)
+target_link_libraries(llvm12-lib-Target PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-Support
+)
+target_sources(llvm12-lib-Target PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/Target.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/TargetIntrinsicInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/TargetLoweringObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/TargetMachine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/TargetMachineC.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..122aabfd9c
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(Target-X86-AsmParser)
+target_compile_options(Target-X86-AsmParser PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(Target-X86-AsmParser PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/AsmParser
+)
+target_link_libraries(Target-X86-AsmParser PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-MC
+ lib-MC-MCParser
+ llvm12-lib-Support
+ Target-X86-MCTargetDesc
+ Target-X86-TargetInfo
+)
+target_sources(Target-X86-AsmParser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/AsmParser/X86AsmParser.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/X86/AsmParser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aaa8d6337d
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/X86/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,96 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(AsmParser)
+add_subdirectory(Disassembler)
+add_subdirectory(MCTargetDesc)
+add_subdirectory(TargetInfo)
+
+add_library(lib-Target-X86)
+target_compile_options(lib-Target-X86 PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Target-X86 PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+)
+target_link_libraries(lib-Target-X86 PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-CodeGen
+ lib-CodeGen-AsmPrinter
+ lib-CodeGen-GlobalISel
+ lib-CodeGen-SelectionDAG
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-ProfileData
+ llvm12-lib-Support
+ llvm12-lib-Target
+ Target-X86-MCTargetDesc
+ Target-X86-TargetInfo
+ lib-Transforms-CFGuard
+)
+target_sources(lib-Target-X86 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86AsmPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86AvoidTrailingCall.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallFrameOptimization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CallingConv.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86CmovConversion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86DiscriminateMemOps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86DomainReassignment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86EvexToVex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ExpandPseudo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FastISel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FixupBWInsts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FixupLEAs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FixupSetCC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FlagsCopyLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FloatingPoint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86FrameLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ISelDAGToDAG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ISelLowering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86IndirectBranchTracking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86IndirectThunks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InsertPrefetch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InsertWait.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstCombineIntrinsic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFMA3Info.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrFoldTables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstrInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InstructionSelector.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86InterleavedAccess.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86LegalizerInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86LowerAMXType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86MCInstLower.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86MachineFunctionInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86MacroFusion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86OptimizeLEAs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PadShortFunction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PartialReduction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86PreTileConfig.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterBankInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86RegisterInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SelectionDAGInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86SpeculativeLoadHardening.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86Subtarget.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86TargetMachine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86TargetObjectFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86TargetTransformInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86TileConfig.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86VZeroUpper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86WinAllocaExpander.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/X86WinEHState.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/X86/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9aeb4c5140
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(Target-X86-Disassembler)
+target_compile_options(Target-X86-Disassembler PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(Target-X86-Disassembler PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/Disassembler
+)
+target_link_libraries(Target-X86-Disassembler PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ lib-MC-MCDisassembler
+ llvm12-lib-Support
+ Target-X86-TargetInfo
+)
+target_sources(Target-X86-Disassembler PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/Disassembler/X86Disassembler.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/X86/Disassembler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d38e0dc78b
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(Target-X86-MCTargetDesc)
+target_compile_options(Target-X86-MCTargetDesc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(Target-X86-MCTargetDesc PRIVATE
+ ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc
+)
+target_link_libraries(Target-X86-MCTargetDesc PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-BinaryFormat
+ llvm12-lib-MC
+ lib-MC-MCDisassembler
+ llvm12-lib-Support
+ Target-X86-TargetInfo
+)
+target_sources(Target-X86-MCTargetDesc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f8e6afeb96
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(Target-X86-TargetInfo)
+target_compile_options(Target-X86-TargetInfo PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(Target-X86-TargetInfo PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/TargetInfo
+)
+target_link_libraries(Target-X86-TargetInfo PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Support
+)
+target_sources(Target-X86-TargetInfo PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt b/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Target/X86/TargetInfo/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..507d58e59b
--- /dev/null
+++ b/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-TextAPI-MachO)
+target_compile_options(lib-TextAPI-MachO PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-TextAPI-MachO PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI
+)
+target_link_libraries(lib-TextAPI-MachO PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-BinaryFormat
+ llvm12-lib-Support
+)
+target_sources(lib-TextAPI-MachO PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/Architecture.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/ArchitectureSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/InterfaceFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/PackedVersion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/Platform.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/Symbol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/Target.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/TextStub.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/TextAPI/MachO/TextStubCommon.cpp
+)
diff --git a/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt b/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/TextAPI/MachO/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ca07fe1bc
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-AggressiveInstCombine)
+target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine
+)
+target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-AggressiveInstCombine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/AggressiveInstCombine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bdf9095525
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-CFGuard)
+target_compile_options(lib-Transforms-CFGuard PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-CFGuard PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/CFGuard
+)
+target_link_libraries(lib-Transforms-CFGuard PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(lib-Transforms-CFGuard PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/CFGuard/CFGuard.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/CFGuard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a703571757
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-IPO)
+target_compile_options(lib-Transforms-IPO PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-IPO PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO
+)
+target_link_libraries(lib-Transforms-IPO PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ lib-Bitcode-Reader
+ lib-Bitcode-Writer
+ lib-Frontend-OpenMP
+ llvm12-lib-IR
+ llvm12-lib-IRReader
+ llvm12-lib-Linker
+ llvm12-lib-Object
+ llvm12-lib-ProfileData
+ llvm12-lib-Support
+ lib-Transforms-AggressiveInstCombine
+ lib-Transforms-InstCombine
+ lib-Transforms-Instrumentation
+ lib-Transforms-Scalar
+ lib-Transforms-Utils
+ lib-Transforms-Vectorize
+)
+target_sources(lib-Transforms-IPO PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/AlwaysInliner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/Annotation2Metadata.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ArgumentPromotion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/Attributor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/AttributorAttributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/BarrierNoopPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/BlockExtractor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/CalledValuePropagation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ConstantMerge.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/CrossDSOCFI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/DeadArgumentElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ElimAvailExtern.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ExtractGV.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ForceFunctionAttrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/FunctionAttrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/FunctionImport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/GlobalDCE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/GlobalOpt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/GlobalSplit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/HotColdSplitting.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/IPO.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/IROutliner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/InferFunctionAttrs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/InlineSimple.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/Inliner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/Internalize.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/LoopExtractor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/LowerTypeTests.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/MergeFunctions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/OpenMPOpt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/PartialInlining.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/PassManagerBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/PruneEH.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/SCCP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/SampleContextTracker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/SampleProfile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/SampleProfileProbe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/StripDeadPrototypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/StripSymbols.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/SyntheticCountsPropagation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/IPO/WholeProgramDevirt.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/IPO/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1d62defbb4
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-InstCombine)
+target_compile_options(lib-Transforms-InstCombine PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-InstCombine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine
+)
+target_link_libraries(lib-Transforms-InstCombine PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-InstCombine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineAddSub.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineCalls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineCasts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineCompares.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineNegator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombinePHI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineSelect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineShifts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/InstCombine/InstructionCombining.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/InstCombine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf742c3572
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,48 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-Instrumentation)
+target_compile_options(lib-Transforms-Instrumentation PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-Instrumentation PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation
+)
+target_link_libraries(lib-Transforms-Instrumentation PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-MC
+ llvm12-lib-ProfileData
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-Instrumentation PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/BoundsChecking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/CGProfile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/GCOVProfiling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/InstrOrderFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/InstrProfiling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/Instrumentation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/MemProfiler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/PoisonChecking.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Instrumentation/ValueProfileCollector.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/Instrumentation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b69d2408d2
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-ObjCARC)
+target_compile_options(lib-Transforms-ObjCARC PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-ObjCARC PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC
+)
+target_link_libraries(lib-Transforms-ObjCARC PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-ObjCARC PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ObjCARC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ObjCARCContract.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ObjCARCExpand.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/ObjCARC/PtrState.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/ObjCARC/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..85fbc1b9a9
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,107 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-Scalar)
+target_compile_options(lib-Transforms-Scalar PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-Scalar PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar
+)
+target_link_libraries(lib-Transforms-Scalar PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-AggressiveInstCombine
+ lib-Transforms-InstCombine
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-Scalar PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/ADCE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/AnnotationRemarks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/BDCE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/CallSiteSplitting.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/ConstantHoisting.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/ConstraintElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/DCE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/DeadStoreElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/DivRemPairs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/EarlyCSE.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/FlattenCFGPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Float2Int.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/GVN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/GVNHoist.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/GVNSink.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/GuardWidening.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/IVUsersPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/IndVarSimplify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/InferAddressSpaces.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/InstSimplifyPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/JumpThreading.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LICM.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopDeletion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopDistribute.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopFlatten.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopFuse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopInstSimplify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopInterchange.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopLoadElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopPassManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopPredication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRerollPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopSink.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopUnrollPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopUnswitch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LoopVersioningLICM.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerAtomic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/LowerWidenableCondition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/MakeGuardsExplicit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/MergeICmps.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/NaryReassociate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/NewGVN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/PlaceSafepoints.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Reassociate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Reg2Mem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SCCP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SROA.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Scalar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Scalarizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SimplifyCFGPass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/Sink.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/SpeculativeExecution.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/StructurizeCFG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/TailRecursionElimination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Scalar/WarnMissedTransforms.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/Scalar/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..85ed4a4c6d
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,97 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-Utils)
+target_compile_options(lib-Transforms-Utils PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-Utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils
+)
+target_link_libraries(lib-Transforms-Utils PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+)
+target_sources(lib-Transforms-Utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/ASanStackFrameLayout.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/AddDiscriminators.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/AssumeBundleBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/BasicBlockUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/BreakCriticalEdges.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/BuildLibCalls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/BypassSlowDivision.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CallGraphUpdater.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CallPromotionUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CanonicalizeAliases.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CloneFunction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CloneModule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CodeExtractor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CodeMoverUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/CtorUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/Debugify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/DemoteRegToStack.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/EntryExitInstrumenter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/EscapeEnumerator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/Evaluator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/FixIrreducible.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/FlattenCFG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/FunctionComparator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/FunctionImportUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/GlobalStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/GuardUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/InjectTLIMappings.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/InlineFunction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/InstructionNamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/IntegerDivision.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LCSSA.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/Local.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopPeel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopRotationUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopSimplify.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopUnroll.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopUnrollAndJam.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LoopVersioning.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LowerInvoke.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LowerMemIntrinsics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/LowerSwitch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/MatrixUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/Mem2Reg.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/MetaRenamer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/ModuleUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/NameAnonGlobals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/PredicateInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SSAUpdater.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SSAUpdaterBulk.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SanitizerStats.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SimplifyCFG.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SimplifyIndVar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SimplifyLibCalls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SizeOpts.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SplitModule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/StripGCRelocates.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/SymbolRewriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/UnifyLoopExits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/UniqueInternalLinkageNames.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/Utils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/VNCoercion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Utils/ValueMapper.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/Utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d45ba449fd
--- /dev/null
+++ b/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-Transforms-Vectorize)
+target_compile_options(lib-Transforms-Vectorize PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(lib-Transforms-Vectorize PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize
+)
+target_link_libraries(lib-Transforms-Vectorize PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ libs-llvm12-include
+ llvm12-lib-Analysis
+ llvm12-lib-IR
+ llvm12-lib-Support
+ lib-Transforms-Utils
+)
+target_sources(lib-Transforms-Vectorize PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/LoopVectorize.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/SLPVectorizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlan.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlanPredicator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlanSLP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlanTransforms.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VPlanVerifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/VectorCombine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/lib/Transforms/Vectorize/Vectorize.cpp
+)
diff --git a/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt b/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt
+++ b/contrib/libs/llvm12/lib/Transforms/Vectorize/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9556066b21
--- /dev/null
+++ b/contrib/libs/llvm12/utils/TableGen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(GlobalISel)
+
+add_executable(llvm-tblgen)
+target_compile_options(llvm-tblgen PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(llvm-tblgen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen
+)
+target_link_libraries(llvm-tblgen PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+ llvm12-lib-Demangle
+ llvm12-lib-Support
+ llvm12-lib-TableGen
+ utils-TableGen-GlobalISel
+ cpp-sanitizer-include
+)
+target_link_options(llvm-tblgen PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(llvm-tblgen PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/AsmMatcherEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/AsmWriterEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/AsmWriterInst.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/Attributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CTagsEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CallingConvEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeEmitterGen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenDAGPatterns.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenHwModes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenInstruction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenMapTable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenRegisters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenSchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/CodeGenTarget.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DAGISelEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DAGISelMatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DAGISelMatcherEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DAGISelMatcherGen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DAGISelMatcherOpt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DFAEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DFAPacketizerEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DirectiveEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/DisassemblerEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/ExegesisEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/FastISelEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/FixedLenDecoderEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GICombinerEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISelEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/InfoByHwMode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/InstrDocsEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/InstrInfoEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/IntrinsicEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/OptEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/OptParserEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/OptRSTEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/PredicateExpander.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/PseudoLoweringEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/RISCVCompressInstEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/RegisterBankEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/RegisterInfoEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/SDNodeProperties.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/SearchableTableEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/SubtargetEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/SubtargetFeatureInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/TableGen.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/Types.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/X86DisassemblerTables.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/X86FoldTablesEmitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/X86ModRMFilters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/X86RecognizableInstr.cpp
+)
+target_allocator(llvm-tblgen
+ system_allocator
+)
+vcs_info(llvm-tblgen)
diff --git a/contrib/libs/llvm12/utils/TableGen/CMakeLists.txt b/contrib/libs/llvm12/utils/TableGen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/utils/TableGen/CMakeLists.txt
+++ b/contrib/libs/llvm12/utils/TableGen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ab180f92f
--- /dev/null
+++ b/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(utils-TableGen-GlobalISel)
+target_compile_options(utils-TableGen-GlobalISel PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(utils-TableGen-GlobalISel PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel
+)
+target_link_libraries(utils-TableGen-GlobalISel PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-llvm12
+)
+target_sources(utils-TableGen-GlobalISel PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/CodeExpander.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/GlobalISel/GIMatchTree.cpp
+)
diff --git a/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt b/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt
+++ b/contrib/libs/llvm12/utils/TableGen/GlobalISel/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/lua/CMakeLists.darwin-arm64.txt b/contrib/libs/lua/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b8bb770b44
--- /dev/null
+++ b/contrib/libs/lua/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_archiver_bin
+ TOOL_archiver_dependency
+ tools/archiver
+ archiver
+)
+
+add_library(contrib-libs-lua)
+target_compile_options(contrib-libs-lua PRIVATE
+ -DLUA_USE_MACOSX
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-lua PUBLIC
+ ${CMAKE_BINARY_DIR}/contrib/libs/lua
+)
+target_include_directories(contrib-libs-lua PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lua-5.2.0/src
+)
+target_link_libraries(contrib-libs-lua PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-archive
+)
+target_sources(contrib-libs-lua PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp
+ ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc
+ DEPENDS
+ ${TOOL_archiver_bin}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/common/stdlib.lua
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/common/json.lua
+ COMMAND
+ ${TOOL_archiver_bin}
+ -q
+ -x
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/common/stdlib.lua:
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lua/common/json.lua:
+ -o
+ ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc
+)
+if(NOT CMAKE_CROSSCOMPILING)
+ add_dependencies(contrib-libs-lua
+ archiver
+)
+endif()
diff --git a/contrib/libs/lua/CMakeLists.txt b/contrib/libs/lua/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/lua/CMakeLists.txt
+++ b/contrib/libs/lua/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/lz4/CMakeLists.darwin-arm64.txt b/contrib/libs/lz4/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..970c719b71
--- /dev/null
+++ b/contrib/libs/lz4/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-lz4)
+target_include_directories(contrib-libs-lz4 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/xxhash
+)
+target_link_libraries(contrib-libs-lz4 PUBLIC
+ contrib-libs-xxhash
+)
+target_sources(contrib-libs-lz4 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4/lz4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4/lz4file.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4/lz4frame.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4/lz4hc.c
+)
diff --git a/contrib/libs/lz4/CMakeLists.txt b/contrib/libs/lz4/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/lz4/CMakeLists.txt
+++ b/contrib/libs/lz4/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/lzma/CMakeLists.darwin-arm64.txt b/contrib/libs/lzma/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d525ab738b
--- /dev/null
+++ b/contrib/libs/lzma/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,114 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-lzma)
+target_compile_options(contrib-libs-lzma PUBLIC
+ -DLZMA_API_STATIC
+)
+target_compile_options(contrib-libs-lzma PRIVATE
+ -DHAVE_CONFIG_H
+ -DTUKLIB_SYMBOL_PREFIX=lzma_
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-lzma PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/api
+)
+target_include_directories(contrib-libs-lzma PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/delta
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lz
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/rangecoder
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple
+)
+target_sources(contrib-libs-lzma PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/common/tuklib_cpucores.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/common/tuklib_physmem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/check.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/crc32_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/crc32_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/crc64_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/crc64_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/check/sha256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/alone_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/alone_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/auto_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_buffer_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_buffer_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_header_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_header_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/block_util.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/easy_buffer_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/easy_decoder_memusage.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/easy_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/easy_encoder_memusage.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/easy_preset.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/file_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_buffer_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_buffer_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_flags_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/filter_flags_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/hardware_cputhreads.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/hardware_physmem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/index.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/index_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/index_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/index_hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/lzip_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/microlzma_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/microlzma_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/outqueue.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_buffer_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_buffer_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_decoder_mt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_encoder_mt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_flags_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_flags_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/stream_flags_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/string_conversion.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/vli_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/vli_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/common/vli_size.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/delta/delta_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/delta/delta_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/delta/delta_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lz/lz_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lz/lz_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lz/lz_encoder_mf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/fastpos_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma2_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma2_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma_encoder_optimum_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma_encoder_optimum_normal.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/lzma/lzma_encoder_presets.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/rangecoder/price_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/arm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/arm64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/armthumb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/ia64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/powerpc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/simple_coder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/simple_decoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/simple_encoder.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/sparc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzma/liblzma/simple/x86.c
+)
diff --git a/contrib/libs/lzma/CMakeLists.txt b/contrib/libs/lzma/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/lzma/CMakeLists.txt
+++ b/contrib/libs/lzma/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/lzmasdk/CMakeLists.darwin-arm64.txt b/contrib/libs/lzmasdk/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fa5ab87a58
--- /dev/null
+++ b/contrib/libs/lzmasdk/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-lzmasdk)
+target_compile_options(contrib-libs-lzmasdk PRIVATE
+ -D_7ZIP_ST=1
+)
+target_link_libraries(contrib-libs-lzmasdk PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-lzmasdk PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/7zStream.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Aes.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/AesOpt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Alloc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Bra.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Bra86.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/BraIA64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/CpuArch.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/LzFind.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Lzma2Dec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Lzma2Enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/LzmaDec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/LzmaEnc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/LzmaLib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lzmasdk/Sha256.c
+)
diff --git a/contrib/libs/lzmasdk/CMakeLists.txt b/contrib/libs/lzmasdk/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/lzmasdk/CMakeLists.txt
+++ b/contrib/libs/lzmasdk/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/miniselect/CMakeLists.darwin-arm64.txt b/contrib/libs/miniselect/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f51760c82e
--- /dev/null
+++ b/contrib/libs/miniselect/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-miniselect INTERFACE)
+target_link_libraries(contrib-libs-miniselect INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/contrib/libs/miniselect/CMakeLists.txt b/contrib/libs/miniselect/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/miniselect/CMakeLists.txt
+++ b/contrib/libs/miniselect/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/nayuki_md5/CMakeLists.darwin-arm64.txt b/contrib/libs/nayuki_md5/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aa5e1ba2a7
--- /dev/null
+++ b/contrib/libs/nayuki_md5/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-nayuki_md5)
+target_link_libraries(contrib-libs-nayuki_md5 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(contrib-libs-nayuki_md5 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nayuki_md5/md5.c
+)
diff --git a/contrib/libs/nayuki_md5/CMakeLists.txt b/contrib/libs/nayuki_md5/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/nayuki_md5/CMakeLists.txt
+++ b/contrib/libs/nayuki_md5/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/nghttp2/CMakeLists.darwin-arm64.txt b/contrib/libs/nghttp2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9beefb6078
--- /dev/null
+++ b/contrib/libs/nghttp2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-nghttp2)
+target_compile_options(contrib-libs-nghttp2 PRIVATE
+ -DBUILDING_NGHTTP2
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-nghttp2 PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/includes
+)
+target_include_directories(contrib-libs-nghttp2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib
+)
+target_sources(contrib-libs-nghttp2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_callbacks.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_debug.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_extpri.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_frame.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_hd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_hd_huffman.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_hd_huffman_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_helper.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_http.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_map.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_mem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_npn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_option.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_outbound_item.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_pq.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_priority_spec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_queue.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_ratelim.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_rcbuf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_session.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_submit.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/nghttp2_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/nghttp2/lib/sfparse.c
+)
diff --git a/contrib/libs/nghttp2/CMakeLists.txt b/contrib/libs/nghttp2/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/nghttp2/CMakeLists.txt
+++ b/contrib/libs/nghttp2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/openldap/CMakeLists.darwin-arm64.txt b/contrib/libs/openldap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..16b8d1acde
--- /dev/null
+++ b/contrib/libs/openldap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,107 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(libraries)
+
+add_library(contrib-libs-openldap)
+target_compile_options(contrib-libs-openldap PRIVATE
+ -DLDAPI_SOCK="/run/openldap/ldapi"
+ -DLDAP_LIBRARY
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-openldap PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/include
+)
+target_include_directories(contrib-libs-openldap PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/include
+)
+target_link_libraries(contrib-libs-openldap PUBLIC
+ openldap-libraries-liblber
+ contrib-libs-openssl
+ contrib-libs-sasl
+)
+target_sources(contrib-libs-openldap PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/abandon.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/account_usability.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/add.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/addentry.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/assertion.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/avl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/bind.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/cancel.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/charray.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/compare.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/controls.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/cyrus.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/dds.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/delete.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/deref.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/dnssrv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/error.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/extended.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/fetch.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/filter.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/free.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/getattr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/getdn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/getentry.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/getvalues.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/lbase64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/ldap_sync.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/ldif.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/ldifutil.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/messages.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/modify.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/modrdn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/msctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/open.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/options.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/os-ip.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/os-local.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/pagectrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/passwd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/ppolicy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/psearchctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/rdwr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/references.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/request.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/result.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/rq.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/sasl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/sbind.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/schema.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/search.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/sort.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/sortctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/stctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/string.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/tavl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/thr_debug.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/thr_nt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/thr_posix.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/thr_pth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/thr_thr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/threads.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/tls2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/tls_g.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/tls_o.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/tpool.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/turn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/txn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/unbind.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/url.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/utf-8-conv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/utf-8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/util-int.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/vc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/vlvctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/libldap/whoami.c
+)
diff --git a/contrib/libs/openldap/CMakeLists.txt b/contrib/libs/openldap/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/openldap/CMakeLists.txt
+++ b/contrib/libs/openldap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/openldap/libraries/CMakeLists.darwin-arm64.txt b/contrib/libs/openldap/libraries/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a1663bfa57
--- /dev/null
+++ b/contrib/libs/openldap/libraries/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,9 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(liblber)
diff --git a/contrib/libs/openldap/libraries/CMakeLists.txt b/contrib/libs/openldap/libraries/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/openldap/libraries/CMakeLists.txt
+++ b/contrib/libs/openldap/libraries/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-arm64.txt b/contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7754efb60
--- /dev/null
+++ b/contrib/libs/openldap/libraries/liblber/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(openldap-libraries-liblber)
+target_compile_options(openldap-libraries-liblber PRIVATE
+ -DLBER_LIBRARY
+ -DLDAPI_SOCK="/run/openldap/ldapi"
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(openldap-libraries-liblber PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/include
+)
+target_sources(openldap-libraries-liblber PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/assert.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/bprint.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/debug.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/decode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/io.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/memory.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/options.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/sockbuf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/stdio.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openldap/libraries/liblber/version.c
+)
diff --git a/contrib/libs/openldap/libraries/liblber/CMakeLists.txt b/contrib/libs/openldap/libraries/liblber/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/openldap/libraries/liblber/CMakeLists.txt
+++ b/contrib/libs/openldap/libraries/liblber/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/openssl/CMakeLists.darwin-arm64.txt b/contrib/libs/openssl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6cd070f314
--- /dev/null
+++ b/contrib/libs/openssl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(crypto)
+
+add_library(contrib-libs-openssl)
+target_compile_options(contrib-libs-openssl PRIVATE
+ -DAESNI_ASM
+ -DOPENSSL_BN_ASM_MONT
+ -DOPENSSL_CPUID_OBJ
+ -DSHA1_ASM
+ -DSHA256_ASM
+ -DSHA512_ASM
+ -DECP_NISTZ256_ASM
+ -DPOLY1305_ASM
+ -DKECCAK1600_ASM
+ -DENGINESDIR="/usr/local/lib/engines-1.1"
+ -DOPENSSLDIR="/usr/local/ssl"
+ -DL_ENDIAN
+ -DOPENSSL_PIC
+ -D_REENTRANT
+ -DVPAES_ASM
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-openssl PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/include
+)
+target_include_directories(contrib-libs-openssl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl
+)
+target_link_libraries(contrib-libs-openssl PUBLIC
+ libs-openssl-crypto
+)
+target_sources(contrib-libs-openssl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/engines/e_capi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/engines/e_padlock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/bio_ssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/d1_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/d1_msg.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/d1_srtp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/methods.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/packet.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/pqueue.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/dtls1_bitmap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/rec_layer_d1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/rec_layer_s3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/ssl3_buffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/ssl3_record.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/record/ssl3_record_tls13.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/s3_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/s3_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/s3_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/s3_msg.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_cert.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_ciph.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_conf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_mcnf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_rsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_sess.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_stat.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_txt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/ssl_utst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/extensions.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/extensions_clnt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/extensions_cust.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/extensions_srvr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/statem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/statem_clnt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/statem_dtls.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/statem_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/statem/statem_srvr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/t1_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/t1_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/t1_trce.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/tls13_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/ssl/tls_srp.c
+)
diff --git a/contrib/libs/openssl/CMakeLists.txt b/contrib/libs/openssl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/openssl/CMakeLists.txt
+++ b/contrib/libs/openssl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/aesv8-armx.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/aesv8-armx.S
new file mode 100644
index 0000000000..0176e12e2e
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/aesv8-armx.S
@@ -0,0 +1,757 @@
+#include "arm_arch.h"
+
+#if __ARM_MAX_ARCH__>=7
+.text
+
+.align 5
+Lrcon:
+.long 0x01,0x01,0x01,0x01
+.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat
+.long 0x1b,0x1b,0x1b,0x1b
+
+.globl _aes_v8_set_encrypt_key
+
+.align 5
+_aes_v8_set_encrypt_key:
+Lenc_key:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ mov x3,#-1
+ cmp x0,#0
+ b.eq Lenc_key_abort
+ cmp x2,#0
+ b.eq Lenc_key_abort
+ mov x3,#-2
+ cmp w1,#128
+ b.lt Lenc_key_abort
+ cmp w1,#256
+ b.gt Lenc_key_abort
+ tst w1,#0x3f
+ b.ne Lenc_key_abort
+
+ adr x3,Lrcon
+ cmp w1,#192
+
+ eor v0.16b,v0.16b,v0.16b
+ ld1 {v3.16b},[x0],#16
+ mov w1,#8 // reuse w1
+ ld1 {v1.4s,v2.4s},[x3],#32
+
+ b.lt Loop128
+ b.eq L192
+ b L256
+
+.align 4
+Loop128:
+ tbl v6.16b,{v3.16b},v2.16b
+ ext v5.16b,v0.16b,v3.16b,#12
+ st1 {v3.4s},[x2],#16
+ aese v6.16b,v0.16b
+ subs w1,w1,#1
+
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v6.16b,v6.16b,v1.16b
+ eor v3.16b,v3.16b,v5.16b
+ shl v1.16b,v1.16b,#1
+ eor v3.16b,v3.16b,v6.16b
+ b.ne Loop128
+
+ ld1 {v1.4s},[x3]
+
+ tbl v6.16b,{v3.16b},v2.16b
+ ext v5.16b,v0.16b,v3.16b,#12
+ st1 {v3.4s},[x2],#16
+ aese v6.16b,v0.16b
+
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v6.16b,v6.16b,v1.16b
+ eor v3.16b,v3.16b,v5.16b
+ shl v1.16b,v1.16b,#1
+ eor v3.16b,v3.16b,v6.16b
+
+ tbl v6.16b,{v3.16b},v2.16b
+ ext v5.16b,v0.16b,v3.16b,#12
+ st1 {v3.4s},[x2],#16
+ aese v6.16b,v0.16b
+
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v6.16b,v6.16b,v1.16b
+ eor v3.16b,v3.16b,v5.16b
+ eor v3.16b,v3.16b,v6.16b
+ st1 {v3.4s},[x2]
+ add x2,x2,#0x50
+
+ mov w12,#10
+ b Ldone
+
+.align 4
+L192:
+ ld1 {v4.8b},[x0],#8
+ movi v6.16b,#8 // borrow v6.16b
+ st1 {v3.4s},[x2],#16
+ sub v2.16b,v2.16b,v6.16b // adjust the mask
+
+Loop192:
+ tbl v6.16b,{v4.16b},v2.16b
+ ext v5.16b,v0.16b,v3.16b,#12
+#ifdef __ARMEB__
+ st1 {v4.4s},[x2],#16
+ sub x2,x2,#8
+#else
+ st1 {v4.8b},[x2],#8
+#endif
+ aese v6.16b,v0.16b
+ subs w1,w1,#1
+
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+
+ dup v5.4s,v3.s[3]
+ eor v5.16b,v5.16b,v4.16b
+ eor v6.16b,v6.16b,v1.16b
+ ext v4.16b,v0.16b,v4.16b,#12
+ shl v1.16b,v1.16b,#1
+ eor v4.16b,v4.16b,v5.16b
+ eor v3.16b,v3.16b,v6.16b
+ eor v4.16b,v4.16b,v6.16b
+ st1 {v3.4s},[x2],#16
+ b.ne Loop192
+
+ mov w12,#12
+ add x2,x2,#0x20
+ b Ldone
+
+.align 4
+L256:
+ ld1 {v4.16b},[x0]
+ mov w1,#7
+ mov w12,#14
+ st1 {v3.4s},[x2],#16
+
+Loop256:
+ tbl v6.16b,{v4.16b},v2.16b
+ ext v5.16b,v0.16b,v3.16b,#12
+ st1 {v4.4s},[x2],#16
+ aese v6.16b,v0.16b
+ subs w1,w1,#1
+
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v3.16b,v3.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v6.16b,v6.16b,v1.16b
+ eor v3.16b,v3.16b,v5.16b
+ shl v1.16b,v1.16b,#1
+ eor v3.16b,v3.16b,v6.16b
+ st1 {v3.4s},[x2],#16
+ b.eq Ldone
+
+ dup v6.4s,v3.s[3] // just splat
+ ext v5.16b,v0.16b,v4.16b,#12
+ aese v6.16b,v0.16b
+
+ eor v4.16b,v4.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v4.16b,v4.16b,v5.16b
+ ext v5.16b,v0.16b,v5.16b,#12
+ eor v4.16b,v4.16b,v5.16b
+
+ eor v4.16b,v4.16b,v6.16b
+ b Loop256
+
+Ldone:
+ str w12,[x2]
+ mov x3,#0
+
+Lenc_key_abort:
+ mov x0,x3 // return value
+ ldr x29,[sp],#16
+ ret
+
+
+.globl _aes_v8_set_decrypt_key
+
+.align 5
+_aes_v8_set_decrypt_key:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ bl Lenc_key
+
+ cmp x0,#0
+ b.ne Ldec_key_abort
+
+ sub x2,x2,#240 // restore original x2
+ mov x4,#-16
+ add x0,x2,x12,lsl#4 // end of key schedule
+
+ ld1 {v0.4s},[x2]
+ ld1 {v1.4s},[x0]
+ st1 {v0.4s},[x0],x4
+ st1 {v1.4s},[x2],#16
+
+Loop_imc:
+ ld1 {v0.4s},[x2]
+ ld1 {v1.4s},[x0]
+ aesimc v0.16b,v0.16b
+ aesimc v1.16b,v1.16b
+ st1 {v0.4s},[x0],x4
+ st1 {v1.4s},[x2],#16
+ cmp x0,x2
+ b.hi Loop_imc
+
+ ld1 {v0.4s},[x2]
+ aesimc v0.16b,v0.16b
+ st1 {v0.4s},[x0]
+
+ eor x0,x0,x0 // return value
+Ldec_key_abort:
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _aes_v8_encrypt
+
+.align 5
+_aes_v8_encrypt:
+ ldr w3,[x2,#240]
+ ld1 {v0.4s},[x2],#16
+ ld1 {v2.16b},[x0]
+ sub w3,w3,#2
+ ld1 {v1.4s},[x2],#16
+
+Loop_enc:
+ aese v2.16b,v0.16b
+ aesmc v2.16b,v2.16b
+ ld1 {v0.4s},[x2],#16
+ subs w3,w3,#2
+ aese v2.16b,v1.16b
+ aesmc v2.16b,v2.16b
+ ld1 {v1.4s},[x2],#16
+ b.gt Loop_enc
+
+ aese v2.16b,v0.16b
+ aesmc v2.16b,v2.16b
+ ld1 {v0.4s},[x2]
+ aese v2.16b,v1.16b
+ eor v2.16b,v2.16b,v0.16b
+
+ st1 {v2.16b},[x1]
+ ret
+
+.globl _aes_v8_decrypt
+
+.align 5
+_aes_v8_decrypt:
+ ldr w3,[x2,#240]
+ ld1 {v0.4s},[x2],#16
+ ld1 {v2.16b},[x0]
+ sub w3,w3,#2
+ ld1 {v1.4s},[x2],#16
+
+Loop_dec:
+ aesd v2.16b,v0.16b
+ aesimc v2.16b,v2.16b
+ ld1 {v0.4s},[x2],#16
+ subs w3,w3,#2
+ aesd v2.16b,v1.16b
+ aesimc v2.16b,v2.16b
+ ld1 {v1.4s},[x2],#16
+ b.gt Loop_dec
+
+ aesd v2.16b,v0.16b
+ aesimc v2.16b,v2.16b
+ ld1 {v0.4s},[x2]
+ aesd v2.16b,v1.16b
+ eor v2.16b,v2.16b,v0.16b
+
+ st1 {v2.16b},[x1]
+ ret
+
+.globl _aes_v8_cbc_encrypt
+
+.align 5
+_aes_v8_cbc_encrypt:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ subs x2,x2,#16
+ mov x8,#16
+ b.lo Lcbc_abort
+ csel x8,xzr,x8,eq
+
+ cmp w5,#0 // en- or decrypting?
+ ldr w5,[x3,#240]
+ and x2,x2,#-16
+ ld1 {v6.16b},[x4]
+ ld1 {v0.16b},[x0],x8
+
+ ld1 {v16.4s,v17.4s},[x3] // load key schedule...
+ sub w5,w5,#6
+ add x7,x3,x5,lsl#4 // pointer to last 7 round keys
+ sub w5,w5,#2
+ ld1 {v18.4s,v19.4s},[x7],#32
+ ld1 {v20.4s,v21.4s},[x7],#32
+ ld1 {v22.4s,v23.4s},[x7],#32
+ ld1 {v7.4s},[x7]
+
+ add x7,x3,#32
+ mov w6,w5
+ b.eq Lcbc_dec
+
+ cmp w5,#2
+ eor v0.16b,v0.16b,v6.16b
+ eor v5.16b,v16.16b,v7.16b
+ b.eq Lcbc_enc128
+
+ ld1 {v2.4s,v3.4s},[x7]
+ add x7,x3,#16
+ add x6,x3,#16*4
+ add x12,x3,#16*5
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ add x14,x3,#16*6
+ add x3,x3,#16*7
+ b Lenter_cbc_enc
+
+.align 4
+Loop_cbc_enc:
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ st1 {v6.16b},[x1],#16
+Lenter_cbc_enc:
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v2.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v16.4s},[x6]
+ cmp w5,#4
+ aese v0.16b,v3.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v17.4s},[x12]
+ b.eq Lcbc_enc192
+
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v16.4s},[x14]
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v17.4s},[x3]
+ nop
+
+Lcbc_enc192:
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ subs x2,x2,#16
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ csel x8,xzr,x8,eq
+ aese v0.16b,v18.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v19.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v16.16b},[x0],x8
+ aese v0.16b,v20.16b
+ aesmc v0.16b,v0.16b
+ eor v16.16b,v16.16b,v5.16b
+ aese v0.16b,v21.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v17.4s},[x7] // re-pre-load rndkey[1]
+ aese v0.16b,v22.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v23.16b
+ eor v6.16b,v0.16b,v7.16b
+ b.hs Loop_cbc_enc
+
+ st1 {v6.16b},[x1],#16
+ b Lcbc_done
+
+.align 5
+Lcbc_enc128:
+ ld1 {v2.4s,v3.4s},[x7]
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ b Lenter_cbc_enc128
+Loop_cbc_enc128:
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ st1 {v6.16b},[x1],#16
+Lenter_cbc_enc128:
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ subs x2,x2,#16
+ aese v0.16b,v2.16b
+ aesmc v0.16b,v0.16b
+ csel x8,xzr,x8,eq
+ aese v0.16b,v3.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v18.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v19.16b
+ aesmc v0.16b,v0.16b
+ ld1 {v16.16b},[x0],x8
+ aese v0.16b,v20.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v21.16b
+ aesmc v0.16b,v0.16b
+ aese v0.16b,v22.16b
+ aesmc v0.16b,v0.16b
+ eor v16.16b,v16.16b,v5.16b
+ aese v0.16b,v23.16b
+ eor v6.16b,v0.16b,v7.16b
+ b.hs Loop_cbc_enc128
+
+ st1 {v6.16b},[x1],#16
+ b Lcbc_done
+.align 5
+Lcbc_dec:
+ ld1 {v18.16b},[x0],#16
+ subs x2,x2,#32 // bias
+ add w6,w5,#2
+ orr v3.16b,v0.16b,v0.16b
+ orr v1.16b,v0.16b,v0.16b
+ orr v19.16b,v18.16b,v18.16b
+ b.lo Lcbc_dec_tail
+
+ orr v1.16b,v18.16b,v18.16b
+ ld1 {v18.16b},[x0],#16
+ orr v2.16b,v0.16b,v0.16b
+ orr v3.16b,v1.16b,v1.16b
+ orr v19.16b,v18.16b,v18.16b
+
+Loop3x_cbc_dec:
+ aesd v0.16b,v16.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v16.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v16.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v16.4s},[x7],#16
+ subs w6,w6,#2
+ aesd v0.16b,v17.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v17.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v17.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v17.4s},[x7],#16
+ b.gt Loop3x_cbc_dec
+
+ aesd v0.16b,v16.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v16.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v16.16b
+ aesimc v18.16b,v18.16b
+ eor v4.16b,v6.16b,v7.16b
+ subs x2,x2,#0x30
+ eor v5.16b,v2.16b,v7.16b
+ csel x6,x2,x6,lo // x6, w6, is zero at this point
+ aesd v0.16b,v17.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v17.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v17.16b
+ aesimc v18.16b,v18.16b
+ eor v17.16b,v3.16b,v7.16b
+ add x0,x0,x6 // x0 is adjusted in such way that
+ // at exit from the loop v1.16b-v18.16b
+ // are loaded with last "words"
+ orr v6.16b,v19.16b,v19.16b
+ mov x7,x3
+ aesd v0.16b,v20.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v20.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v20.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v2.16b},[x0],#16
+ aesd v0.16b,v21.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v21.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v21.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v3.16b},[x0],#16
+ aesd v0.16b,v22.16b
+ aesimc v0.16b,v0.16b
+ aesd v1.16b,v22.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v22.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v19.16b},[x0],#16
+ aesd v0.16b,v23.16b
+ aesd v1.16b,v23.16b
+ aesd v18.16b,v23.16b
+ ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
+ add w6,w5,#2
+ eor v4.16b,v4.16b,v0.16b
+ eor v5.16b,v5.16b,v1.16b
+ eor v18.16b,v18.16b,v17.16b
+ ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
+ st1 {v4.16b},[x1],#16
+ orr v0.16b,v2.16b,v2.16b
+ st1 {v5.16b},[x1],#16
+ orr v1.16b,v3.16b,v3.16b
+ st1 {v18.16b},[x1],#16
+ orr v18.16b,v19.16b,v19.16b
+ b.hs Loop3x_cbc_dec
+
+ cmn x2,#0x30
+ b.eq Lcbc_done
+ nop
+
+Lcbc_dec_tail:
+ aesd v1.16b,v16.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v16.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v16.4s},[x7],#16
+ subs w6,w6,#2
+ aesd v1.16b,v17.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v17.16b
+ aesimc v18.16b,v18.16b
+ ld1 {v17.4s},[x7],#16
+ b.gt Lcbc_dec_tail
+
+ aesd v1.16b,v16.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v16.16b
+ aesimc v18.16b,v18.16b
+ aesd v1.16b,v17.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v17.16b
+ aesimc v18.16b,v18.16b
+ aesd v1.16b,v20.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v20.16b
+ aesimc v18.16b,v18.16b
+ cmn x2,#0x20
+ aesd v1.16b,v21.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v21.16b
+ aesimc v18.16b,v18.16b
+ eor v5.16b,v6.16b,v7.16b
+ aesd v1.16b,v22.16b
+ aesimc v1.16b,v1.16b
+ aesd v18.16b,v22.16b
+ aesimc v18.16b,v18.16b
+ eor v17.16b,v3.16b,v7.16b
+ aesd v1.16b,v23.16b
+ aesd v18.16b,v23.16b
+ b.eq Lcbc_dec_one
+ eor v5.16b,v5.16b,v1.16b
+ eor v17.16b,v17.16b,v18.16b
+ orr v6.16b,v19.16b,v19.16b
+ st1 {v5.16b},[x1],#16
+ st1 {v17.16b},[x1],#16
+ b Lcbc_done
+
+Lcbc_dec_one:
+ eor v5.16b,v5.16b,v18.16b
+ orr v6.16b,v19.16b,v19.16b
+ st1 {v5.16b},[x1],#16
+
+Lcbc_done:
+ st1 {v6.16b},[x4]
+Lcbc_abort:
+ ldr x29,[sp],#16
+ ret
+
+.globl _aes_v8_ctr32_encrypt_blocks
+
+.align 5
+_aes_v8_ctr32_encrypt_blocks:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ ldr w5,[x3,#240]
+
+ ldr w8, [x4, #12]
+#ifdef __ARMEB__
+ ld1 {v0.16b},[x4]
+#else
+ ld1 {v0.4s},[x4]
+#endif
+ ld1 {v16.4s,v17.4s},[x3] // load key schedule...
+ sub w5,w5,#4
+ mov x12,#16
+ cmp x2,#2
+ add x7,x3,x5,lsl#4 // pointer to last 5 round keys
+ sub w5,w5,#2
+ ld1 {v20.4s,v21.4s},[x7],#32
+ ld1 {v22.4s,v23.4s},[x7],#32
+ ld1 {v7.4s},[x7]
+ add x7,x3,#32
+ mov w6,w5
+ csel x12,xzr,x12,lo
+#ifndef __ARMEB__
+ rev w8, w8
+#endif
+ orr v1.16b,v0.16b,v0.16b
+ add w10, w8, #1
+ orr v18.16b,v0.16b,v0.16b
+ add w8, w8, #2
+ orr v6.16b,v0.16b,v0.16b
+ rev w10, w10
+ mov v1.s[3],w10
+ b.ls Lctr32_tail
+ rev w12, w8
+ sub x2,x2,#3 // bias
+ mov v18.s[3],w12
+ b Loop3x_ctr32
+
+.align 4
+Loop3x_ctr32:
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v16.16b
+ aesmc v1.16b,v1.16b
+ aese v18.16b,v16.16b
+ aesmc v18.16b,v18.16b
+ ld1 {v16.4s},[x7],#16
+ subs w6,w6,#2
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v17.16b
+ aesmc v1.16b,v1.16b
+ aese v18.16b,v17.16b
+ aesmc v18.16b,v18.16b
+ ld1 {v17.4s},[x7],#16
+ b.gt Loop3x_ctr32
+
+ aese v0.16b,v16.16b
+ aesmc v4.16b,v0.16b
+ aese v1.16b,v16.16b
+ aesmc v5.16b,v1.16b
+ ld1 {v2.16b},[x0],#16
+ orr v0.16b,v6.16b,v6.16b
+ aese v18.16b,v16.16b
+ aesmc v18.16b,v18.16b
+ ld1 {v3.16b},[x0],#16
+ orr v1.16b,v6.16b,v6.16b
+ aese v4.16b,v17.16b
+ aesmc v4.16b,v4.16b
+ aese v5.16b,v17.16b
+ aesmc v5.16b,v5.16b
+ ld1 {v19.16b},[x0],#16
+ mov x7,x3
+ aese v18.16b,v17.16b
+ aesmc v17.16b,v18.16b
+ orr v18.16b,v6.16b,v6.16b
+ add w9,w8,#1
+ aese v4.16b,v20.16b
+ aesmc v4.16b,v4.16b
+ aese v5.16b,v20.16b
+ aesmc v5.16b,v5.16b
+ eor v2.16b,v2.16b,v7.16b
+ add w10,w8,#2
+ aese v17.16b,v20.16b
+ aesmc v17.16b,v17.16b
+ eor v3.16b,v3.16b,v7.16b
+ add w8,w8,#3
+ aese v4.16b,v21.16b
+ aesmc v4.16b,v4.16b
+ aese v5.16b,v21.16b
+ aesmc v5.16b,v5.16b
+ eor v19.16b,v19.16b,v7.16b
+ rev w9,w9
+ aese v17.16b,v21.16b
+ aesmc v17.16b,v17.16b
+ mov v0.s[3], w9
+ rev w10,w10
+ aese v4.16b,v22.16b
+ aesmc v4.16b,v4.16b
+ aese v5.16b,v22.16b
+ aesmc v5.16b,v5.16b
+ mov v1.s[3], w10
+ rev w12,w8
+ aese v17.16b,v22.16b
+ aesmc v17.16b,v17.16b
+ mov v18.s[3], w12
+ subs x2,x2,#3
+ aese v4.16b,v23.16b
+ aese v5.16b,v23.16b
+ aese v17.16b,v23.16b
+
+ eor v2.16b,v2.16b,v4.16b
+ ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
+ st1 {v2.16b},[x1],#16
+ eor v3.16b,v3.16b,v5.16b
+ mov w6,w5
+ st1 {v3.16b},[x1],#16
+ eor v19.16b,v19.16b,v17.16b
+ ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
+ st1 {v19.16b},[x1],#16
+ b.hs Loop3x_ctr32
+
+ adds x2,x2,#3
+ b.eq Lctr32_done
+ cmp x2,#1
+ mov x12,#16
+ csel x12,xzr,x12,eq
+
+Lctr32_tail:
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v16.16b
+ aesmc v1.16b,v1.16b
+ ld1 {v16.4s},[x7],#16
+ subs w6,w6,#2
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v17.16b
+ aesmc v1.16b,v1.16b
+ ld1 {v17.4s},[x7],#16
+ b.gt Lctr32_tail
+
+ aese v0.16b,v16.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v16.16b
+ aesmc v1.16b,v1.16b
+ aese v0.16b,v17.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v17.16b
+ aesmc v1.16b,v1.16b
+ ld1 {v2.16b},[x0],x12
+ aese v0.16b,v20.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v20.16b
+ aesmc v1.16b,v1.16b
+ ld1 {v3.16b},[x0]
+ aese v0.16b,v21.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v21.16b
+ aesmc v1.16b,v1.16b
+ eor v2.16b,v2.16b,v7.16b
+ aese v0.16b,v22.16b
+ aesmc v0.16b,v0.16b
+ aese v1.16b,v22.16b
+ aesmc v1.16b,v1.16b
+ eor v3.16b,v3.16b,v7.16b
+ aese v0.16b,v23.16b
+ aese v1.16b,v23.16b
+
+ cmp x2,#1
+ eor v2.16b,v2.16b,v0.16b
+ eor v3.16b,v3.16b,v1.16b
+ st1 {v2.16b},[x1],#16
+ b.eq Lctr32_done
+ st1 {v3.16b},[x1]
+
+Lctr32_done:
+ ldr x29,[sp],#16
+ ret
+
+#endif
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/vpaes-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/vpaes-armv8.S
new file mode 100644
index 0000000000..385fa63030
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/vpaes-armv8.S
@@ -0,0 +1,1196 @@
+.text
+
+
+.align 7 // totally strategic alignment
+_vpaes_consts:
+Lk_mc_forward: // mc_forward
+.quad 0x0407060500030201, 0x0C0F0E0D080B0A09
+.quad 0x080B0A0904070605, 0x000302010C0F0E0D
+.quad 0x0C0F0E0D080B0A09, 0x0407060500030201
+.quad 0x000302010C0F0E0D, 0x080B0A0904070605
+Lk_mc_backward: // mc_backward
+.quad 0x0605040702010003, 0x0E0D0C0F0A09080B
+.quad 0x020100030E0D0C0F, 0x0A09080B06050407
+.quad 0x0E0D0C0F0A09080B, 0x0605040702010003
+.quad 0x0A09080B06050407, 0x020100030E0D0C0F
+Lk_sr: // sr
+.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
+.quad 0x030E09040F0A0500, 0x0B06010C07020D08
+.quad 0x0F060D040B020900, 0x070E050C030A0108
+.quad 0x0B0E0104070A0D00, 0x0306090C0F020508
+
+//
+// "Hot" constants
+//
+Lk_inv: // inv, inva
+.quad 0x0E05060F0D080180, 0x040703090A0B0C02
+.quad 0x01040A060F0B0780, 0x030D0E0C02050809
+Lk_ipt: // input transform (lo, hi)
+.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
+.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
+Lk_sbo: // sbou, sbot
+.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
+.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
+Lk_sb1: // sb1u, sb1t
+.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
+.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
+Lk_sb2: // sb2u, sb2t
+.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
+.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
+
+//
+// Decryption stuff
+//
+Lk_dipt: // decryption input transform
+.quad 0x0F505B040B545F00, 0x154A411E114E451A
+.quad 0x86E383E660056500, 0x12771772F491F194
+Lk_dsbo: // decryption sbox final output
+.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
+.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
+Lk_dsb9: // decryption sbox output *9*u, *9*t
+.quad 0x851C03539A86D600, 0xCAD51F504F994CC9
+.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
+Lk_dsbd: // decryption sbox output *D*u, *D*t
+.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
+.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
+Lk_dsbb: // decryption sbox output *B*u, *B*t
+.quad 0xD022649296B44200, 0x602646F6B0F2D404
+.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
+Lk_dsbe: // decryption sbox output *E*u, *E*t
+.quad 0x46F2929626D4D000, 0x2242600464B4F6B0
+.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
+
+//
+// Key schedule constants
+//
+Lk_dksd: // decryption key schedule: invskew x*D
+.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
+.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
+Lk_dksb: // decryption key schedule: invskew x*B
+.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
+.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
+Lk_dkse: // decryption key schedule: invskew x*E + 0x63
+.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
+.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
+Lk_dks9: // decryption key schedule: invskew x*9
+.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
+.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
+
+Lk_rcon: // rcon
+.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
+
+Lk_opt: // output transform
+.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
+.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
+Lk_deskew: // deskew tables: inverts the sbox's "skew"
+.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
+.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
+
+.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,56,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
+.align 2
+
+.align 6
+##
+## _aes_preheat
+##
+## Fills register %r10 -> .aes_consts (so you can -fPIC)
+## and %xmm9-%xmm15 as specified below.
+##
+
+.align 4
+_vpaes_encrypt_preheat:
+ adr x10, Lk_inv
+ movi v17.16b, #0x0f
+ ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv
+ ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // Lk_ipt, Lk_sbo
+ ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10] // Lk_sb1, Lk_sb2
+ ret
+
+
+##
+## _aes_encrypt_core
+##
+## AES-encrypt %xmm0.
+##
+## Inputs:
+## %xmm0 = input
+## %xmm9-%xmm15 as in _vpaes_preheat
+## (%rdx) = scheduled keys
+##
+## Output in %xmm0
+## Clobbers %xmm1-%xmm5, %r9, %r10, %r11, %rax
+## Preserves %xmm6 - %xmm8 so you get some local vectors
+##
+##
+
+.align 4
+_vpaes_encrypt_core:
+ mov x9, x2
+ ldr w8, [x2,#240] // pull rounds
+ adr x11, Lk_mc_forward+16
+ // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo
+ ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key
+ and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1
+ ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0
+ tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1
+ // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi
+ tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2
+ eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0
+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0
+ b Lenc_entry
+
+.align 4
+Lenc_loop:
+ // middle of middle round
+ add x10, x11, #0x40
+ tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u
+ ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # Lk_mc_forward[]
+ tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
+ tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A
+ tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t
+ ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # Lk_mc_backward[]
+ tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B
+ eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A
+ tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B
+ tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C
+ eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D
+ and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D
+ sub w8, w8, #1 // nr--
+
+Lenc_entry:
+ // top of round
+ and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i
+ tbl v5.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k
+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j
+ tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
+ tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
+ eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
+ eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
+ tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
+ tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io
+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5
+ cbnz w8, Lenc_loop
+
+ // middle of last round
+ add x10, x11, #0x80
+ // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo
+ // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16
+ tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
+ ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # Lk_sr[]
+ tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A
+ tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0
+ ret
+
+
+.globl _vpaes_encrypt
+
+.align 4
+_vpaes_encrypt:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ld1 {v7.16b}, [x0]
+ bl _vpaes_encrypt_preheat
+ bl _vpaes_encrypt_core
+ st1 {v0.16b}, [x1]
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+
+.align 4
+_vpaes_encrypt_2x:
+ mov x9, x2
+ ldr w8, [x2,#240] // pull rounds
+ adr x11, Lk_mc_forward+16
+ // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo
+ ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key
+ and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1
+ ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0
+ and v9.16b, v15.16b, v17.16b
+ ushr v8.16b, v15.16b, #4
+ tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1
+ tbl v9.16b, {v20.16b}, v9.16b
+ // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi
+ tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2
+ tbl v10.16b, {v21.16b}, v8.16b
+ eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0
+ eor v8.16b, v9.16b, v16.16b
+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0
+ eor v8.16b, v8.16b, v10.16b
+ b Lenc_2x_entry
+
+.align 4
+Lenc_2x_loop:
+ // middle of middle round
+ add x10, x11, #0x40
+ tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u
+ tbl v12.16b, {v25.16b}, v10.16b
+ ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # Lk_mc_forward[]
+ tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t
+ tbl v8.16b, {v24.16b}, v11.16b
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
+ eor v12.16b, v12.16b, v16.16b
+ tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u
+ tbl v13.16b, {v27.16b}, v10.16b
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A
+ eor v8.16b, v8.16b, v12.16b
+ tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t
+ tbl v10.16b, {v26.16b}, v11.16b
+ ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # Lk_mc_backward[]
+ tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B
+ tbl v11.16b, {v8.16b}, v1.16b
+ eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A
+ eor v10.16b, v10.16b, v13.16b
+ tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D
+ tbl v8.16b, {v8.16b}, v4.16b
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B
+ eor v11.16b, v11.16b, v10.16b
+ tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C
+ tbl v12.16b, {v11.16b},v1.16b
+ eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D
+ eor v8.16b, v8.16b, v11.16b
+ and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D
+ eor v8.16b, v8.16b, v12.16b
+ sub w8, w8, #1 // nr--
+
+Lenc_2x_entry:
+ // top of round
+ and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i
+ and v9.16b, v8.16b, v17.16b
+ ushr v8.16b, v8.16b, #4
+ tbl v5.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k
+ tbl v13.16b, {v19.16b},v9.16b
+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j
+ eor v9.16b, v9.16b, v8.16b
+ tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
+ tbl v11.16b, {v18.16b},v8.16b
+ tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
+ tbl v12.16b, {v18.16b},v9.16b
+ eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
+ eor v11.16b, v11.16b, v13.16b
+ eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
+ eor v12.16b, v12.16b, v13.16b
+ tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
+ tbl v10.16b, {v18.16b},v11.16b
+ tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
+ tbl v11.16b, {v18.16b},v12.16b
+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io
+ eor v10.16b, v10.16b, v9.16b
+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
+ eor v11.16b, v11.16b, v8.16b
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5
+ cbnz w8, Lenc_2x_loop
+
+ // middle of last round
+ add x10, x11, #0x80
+ // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo
+ // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16
+ tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
+ tbl v12.16b, {v22.16b}, v10.16b
+ ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # Lk_sr[]
+ tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t
+ tbl v8.16b, {v23.16b}, v11.16b
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
+ eor v12.16b, v12.16b, v16.16b
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A
+ eor v8.16b, v8.16b, v12.16b
+ tbl v0.16b, {v0.16b},v1.16b // vpshufb %xmm1, %xmm0, %xmm0
+ tbl v1.16b, {v8.16b},v1.16b
+ ret
+
+
+
+.align 4
+_vpaes_decrypt_preheat:
+ adr x10, Lk_inv
+ movi v17.16b, #0x0f
+ adr x11, Lk_dipt
+ ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv
+ ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // Lk_dipt, Lk_dsbo
+ ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // Lk_dsb9, Lk_dsbd
+ ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x11] // Lk_dsbb, Lk_dsbe
+ ret
+
+
+##
+## Decryption core
+##
+## Same API as encryption core.
+##
+
+.align 4
+_vpaes_decrypt_core:
+ mov x9, x2
+ ldr w8, [x2,#240] // pull rounds
+
+ // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo
+ lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11
+ eor x11, x11, #0x30 // xor $0x30, %r11
+ adr x10, Lk_sr
+ and x11, x11, #0x30 // and $0x30, %r11
+ add x11, x11, x10
+ adr x10, Lk_mc_forward+48
+
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key
+ and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1
+ ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0
+ tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2
+ ld1 {v5.2d}, [x10] // vmovdqa Lk_mc_forward+48(%rip), %xmm5
+ // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi
+ tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0
+ eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2
+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0
+ b Ldec_entry
+
+.align 4
+Ldec_loop:
+//
+// Inverse mix columns
+//
+ // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u
+ // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t
+ tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u
+ tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t
+ eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0
+ // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt
+
+ tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu
+ tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt
+
+ tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu
+ tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet
+
+ tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu
+ tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ sub w8, w8, #1 // sub $1,%rax # nr--
+
+Ldec_entry:
+ // top of round
+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i
+ tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k
+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j
+ tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
+ tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
+ eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
+ tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
+ tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io
+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0
+ cbnz w8, Ldec_loop
+
+ // middle of last round
+ // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou
+ tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
+ // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot
+ ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # Lk_sr-Lk_dsbd=-0x160
+ tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k
+ eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A
+ tbl v0.16b, {v0.16b}, v2.16b // vpshufb %xmm2, %xmm0, %xmm0
+ ret
+
+
+.globl _vpaes_decrypt
+
+.align 4
+_vpaes_decrypt:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ld1 {v7.16b}, [x0]
+ bl _vpaes_decrypt_preheat
+ bl _vpaes_decrypt_core
+ st1 {v0.16b}, [x1]
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// v14-v15 input, v0-v1 output
+
+.align 4
+_vpaes_decrypt_2x:
+ mov x9, x2
+ ldr w8, [x2,#240] // pull rounds
+
+ // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo
+ lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11
+ eor x11, x11, #0x30 // xor $0x30, %r11
+ adr x10, Lk_sr
+ and x11, x11, #0x30 // and $0x30, %r11
+ add x11, x11, x10
+ adr x10, Lk_mc_forward+48
+
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key
+ and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1
+ ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0
+ and v9.16b, v15.16b, v17.16b
+ ushr v8.16b, v15.16b, #4
+ tbl v2.16b, {v20.16b},v1.16b // vpshufb %xmm1, %xmm2, %xmm2
+ tbl v10.16b, {v20.16b},v9.16b
+ ld1 {v5.2d}, [x10] // vmovdqa Lk_mc_forward+48(%rip), %xmm5
+ // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi
+ tbl v0.16b, {v21.16b},v0.16b // vpshufb %xmm0, %xmm1, %xmm0
+ tbl v8.16b, {v21.16b},v8.16b
+ eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2
+ eor v10.16b, v10.16b, v16.16b
+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0
+ eor v8.16b, v8.16b, v10.16b
+ b Ldec_2x_entry
+
+.align 4
+Ldec_2x_loop:
+//
+// Inverse mix columns
+//
+ // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u
+ // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t
+ tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u
+ tbl v12.16b, {v24.16b}, v10.16b
+ tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t
+ tbl v9.16b, {v25.16b}, v11.16b
+ eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0
+ eor v8.16b, v12.16b, v16.16b
+ // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ eor v8.16b, v8.16b, v9.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt
+
+ tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu
+ tbl v12.16b, {v26.16b}, v10.16b
+ tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v8.16b, {v8.16b},v5.16b
+ tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt
+ tbl v9.16b, {v27.16b}, v11.16b
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ eor v8.16b, v8.16b, v12.16b
+ // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ eor v8.16b, v8.16b, v9.16b
+ // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt
+
+ tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu
+ tbl v12.16b, {v28.16b}, v10.16b
+ tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v8.16b, {v8.16b},v5.16b
+ tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt
+ tbl v9.16b, {v29.16b}, v11.16b
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ eor v8.16b, v8.16b, v12.16b
+ // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ eor v8.16b, v8.16b, v9.16b
+ // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet
+
+ tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu
+ tbl v12.16b, {v30.16b}, v10.16b
+ tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch
+ tbl v8.16b, {v8.16b},v5.16b
+ tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet
+ tbl v9.16b, {v31.16b}, v11.16b
+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
+ eor v8.16b, v8.16b, v12.16b
+ ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5
+ eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
+ eor v8.16b, v8.16b, v9.16b
+ sub w8, w8, #1 // sub $1,%rax # nr--
+
+Ldec_2x_entry:
+ // top of round
+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i
+ and v9.16b, v8.16b, v17.16b
+ ushr v8.16b, v8.16b, #4
+ tbl v2.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k
+ tbl v10.16b, {v19.16b},v9.16b
+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j
+ eor v9.16b, v9.16b, v8.16b
+ tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
+ tbl v11.16b, {v18.16b},v8.16b
+ tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
+ tbl v12.16b, {v18.16b},v9.16b
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
+ eor v11.16b, v11.16b, v10.16b
+ eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
+ eor v12.16b, v12.16b, v10.16b
+ tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
+ tbl v10.16b, {v18.16b},v11.16b
+ tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
+ tbl v11.16b, {v18.16b},v12.16b
+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io
+ eor v10.16b, v10.16b, v9.16b
+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
+ eor v11.16b, v11.16b, v8.16b
+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0
+ cbnz w8, Ldec_2x_loop
+
+ // middle of last round
+ // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou
+ tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
+ tbl v12.16b, {v22.16b}, v10.16b
+ // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot
+ tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t
+ tbl v9.16b, {v23.16b}, v11.16b
+ ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # Lk_sr-Lk_dsbd=-0x160
+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k
+ eor v12.16b, v12.16b, v16.16b
+ eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A
+ eor v8.16b, v9.16b, v12.16b
+ tbl v0.16b, {v0.16b},v2.16b // vpshufb %xmm2, %xmm0, %xmm0
+ tbl v1.16b, {v8.16b},v2.16b
+ ret
+
+########################################################
+## ##
+## AES key schedule ##
+## ##
+########################################################
+
+.align 4
+_vpaes_key_preheat:
+ adr x10, Lk_inv
+ movi v16.16b, #0x5b // Lk_s63
+ adr x11, Lk_sb1
+ movi v17.16b, #0x0f // Lk_s0F
+ ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // Lk_inv, Lk_ipt
+ adr x10, Lk_dksd
+ ld1 {v22.2d,v23.2d}, [x11] // Lk_sb1
+ adr x11, Lk_mc_forward
+ ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // Lk_dksd, Lk_dksb
+ ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // Lk_dkse, Lk_dks9
+ ld1 {v8.2d}, [x10] // Lk_rcon
+ ld1 {v9.2d}, [x11] // Lk_mc_forward[0]
+ ret
+
+
+
+.align 4
+_vpaes_schedule_core:
+.long 0xd503233f // paciasp
+ stp x29, x30, [sp,#-16]!
+ add x29,sp,#0
+
+ bl _vpaes_key_preheat // load the tables
+
+ ld1 {v0.16b}, [x0],#16 // vmovdqu (%rdi), %xmm0 # load key (unaligned)
+
+ // input transform
+ mov v3.16b, v0.16b // vmovdqa %xmm0, %xmm3
+ bl _vpaes_schedule_transform
+ mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7
+
+ adr x10, Lk_sr // lea Lk_sr(%rip),%r10
+ add x8, x8, x10
+ cbnz w3, Lschedule_am_decrypting
+
+ // encrypting, output zeroth round key after transform
+ st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx)
+ b Lschedule_go
+
+Lschedule_am_decrypting:
+ // decrypting, output zeroth round key after shiftrows
+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1
+ tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
+ st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx)
+ eor x8, x8, #0x30 // xor $0x30, %r8
+
+Lschedule_go:
+ cmp w1, #192 // cmp $192, %esi
+ b.hi Lschedule_256
+ b.eq Lschedule_192
+ // 128: fall though
+
+##
+## .schedule_128
+##
+## 128-bit specific part of key schedule.
+##
+## This schedule is really simple, because all its parts
+## are accomplished by the subroutines.
+##
+Lschedule_128:
+ mov x0, #10 // mov $10, %esi
+
+Loop_schedule_128:
+ sub x0, x0, #1 // dec %esi
+ bl _vpaes_schedule_round
+ cbz x0, Lschedule_mangle_last
+ bl _vpaes_schedule_mangle // write output
+ b Loop_schedule_128
+
+##
+## .aes_schedule_192
+##
+## 192-bit specific part of key schedule.
+##
+## The main body of this schedule is the same as the 128-bit
+## schedule, but with more smearing. The long, high side is
+## stored in %xmm7 as before, and the short, low side is in
+## the high bits of %xmm6.
+##
+## This schedule is somewhat nastier, however, because each
+## round produces 192 bits of key material, or 1.5 round keys.
+## Therefore, on each cycle we do 2 rounds and produce 3 round
+## keys.
+##
+.align 4
+Lschedule_192:
+ sub x0, x0, #8
+ ld1 {v0.16b}, [x0] // vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned)
+ bl _vpaes_schedule_transform // input transform
+ mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save short part
+ eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 # clear 4
+ ins v6.d[0], v4.d[0] // vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros
+ mov x0, #4 // mov $4, %esi
+
+Loop_schedule_192:
+ sub x0, x0, #1 // dec %esi
+ bl _vpaes_schedule_round
+ ext v0.16b, v6.16b, v0.16b, #8 // vpalignr $8,%xmm6,%xmm0,%xmm0
+ bl _vpaes_schedule_mangle // save key n
+ bl _vpaes_schedule_192_smear
+ bl _vpaes_schedule_mangle // save key n+1
+ bl _vpaes_schedule_round
+ cbz x0, Lschedule_mangle_last
+ bl _vpaes_schedule_mangle // save key n+2
+ bl _vpaes_schedule_192_smear
+ b Loop_schedule_192
+
+##
+## .aes_schedule_256
+##
+## 256-bit specific part of key schedule.
+##
+## The structure here is very similar to the 128-bit
+## schedule, but with an additional "low side" in
+## %xmm6. The low side's rounds are the same as the
+## high side's, except no rcon and no rotation.
+##
+.align 4
+Lschedule_256:
+ ld1 {v0.16b}, [x0] // vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned)
+ bl _vpaes_schedule_transform // input transform
+ mov x0, #7 // mov $7, %esi
+
+Loop_schedule_256:
+ sub x0, x0, #1 // dec %esi
+ bl _vpaes_schedule_mangle // output low result
+ mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6
+
+ // high round
+ bl _vpaes_schedule_round
+ cbz x0, Lschedule_mangle_last
+ bl _vpaes_schedule_mangle
+
+ // low round. swap xmm7 and xmm6
+ dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0
+ movi v4.16b, #0
+ mov v5.16b, v7.16b // vmovdqa %xmm7, %xmm5
+ mov v7.16b, v6.16b // vmovdqa %xmm6, %xmm7
+ bl _vpaes_schedule_low_round
+ mov v7.16b, v5.16b // vmovdqa %xmm5, %xmm7
+
+ b Loop_schedule_256
+
+##
+## .aes_schedule_mangle_last
+##
+## Mangler for last round of key schedule
+## Mangles %xmm0
+## when encrypting, outputs out(%xmm0) ^ 63
+## when decrypting, outputs unskew(%xmm0)
+##
+## Always called right before return... jumps to cleanup and exits
+##
+.align 4
+Lschedule_mangle_last:
+ // schedule last round key from xmm0
+ adr x11, Lk_deskew // lea Lk_deskew(%rip),%r11 # prepare to deskew
+ cbnz w3, Lschedule_mangle_last_dec
+
+ // encrypting
+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1
+ adr x11, Lk_opt // lea Lk_opt(%rip), %r11 # prepare to output transform
+ add x2, x2, #32 // add $32, %rdx
+ tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute
+
+Lschedule_mangle_last_dec:
+ ld1 {v20.2d,v21.2d}, [x11] // reload constants
+ sub x2, x2, #16 // add $-16, %rdx
+ eor v0.16b, v0.16b, v16.16b // vpxor Lk_s63(%rip), %xmm0, %xmm0
+ bl _vpaes_schedule_transform // output transform
+ st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx) # save last key
+
+ // cleanup
+ eor v0.16b, v0.16b, v0.16b // vpxor %xmm0, %xmm0, %xmm0
+ eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1
+ eor v2.16b, v2.16b, v2.16b // vpxor %xmm2, %xmm2, %xmm2
+ eor v3.16b, v3.16b, v3.16b // vpxor %xmm3, %xmm3, %xmm3
+ eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4
+ eor v5.16b, v5.16b, v5.16b // vpxor %xmm5, %xmm5, %xmm5
+ eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6
+ eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7
+ ldp x29, x30, [sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+##
+## .aes_schedule_192_smear
+##
+## Smear the short, low side in the 192-bit key schedule.
+##
+## Inputs:
+## %xmm7: high side, b a x y
+## %xmm6: low side, d c 0 0
+## %xmm13: 0
+##
+## Outputs:
+## %xmm6: b+c+d b+c 0 0
+## %xmm0: b+c+d b+c b a
+##
+
+.align 4
+_vpaes_schedule_192_smear:
+ movi v1.16b, #0
+ dup v0.4s, v7.s[3]
+ ins v1.s[3], v6.s[2] // vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0
+ ins v0.s[0], v7.s[2] // vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a
+ eor v6.16b, v6.16b, v1.16b // vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0
+ eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1
+ eor v6.16b, v6.16b, v0.16b // vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a
+ mov v0.16b, v6.16b // vmovdqa %xmm6, %xmm0
+ ins v6.d[0], v1.d[0] // vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros
+ ret
+
+
+##
+## .aes_schedule_round
+##
+## Runs one main round of the key schedule on %xmm0, %xmm7
+##
+## Specifically, runs subbytes on the high dword of %xmm0
+## then rotates it by one byte and xors into the low dword of
+## %xmm7.
+##
+## Adds rcon from low byte of %xmm8, then rotates %xmm8 for
+## next rcon.
+##
+## Smears the dwords of %xmm7 by xoring the low into the
+## second low, result into third, result into highest.
+##
+## Returns results in %xmm7 = %xmm0.
+## Clobbers %xmm1-%xmm4, %r11.
+##
+
+.align 4
+_vpaes_schedule_round:
+ // extract rcon from xmm8
+ movi v4.16b, #0 // vpxor %xmm4, %xmm4, %xmm4
+ ext v1.16b, v8.16b, v4.16b, #15 // vpalignr $15, %xmm8, %xmm4, %xmm1
+ ext v8.16b, v8.16b, v8.16b, #15 // vpalignr $15, %xmm8, %xmm8, %xmm8
+ eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7
+
+ // rotate
+ dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0
+ ext v0.16b, v0.16b, v0.16b, #1 // vpalignr $1, %xmm0, %xmm0, %xmm0
+
+ // fall through...
+
+ // low round: same as high round, but no rotation and no rcon.
+_vpaes_schedule_low_round:
+ // smear xmm7
+ ext v1.16b, v4.16b, v7.16b, #12 // vpslldq $4, %xmm7, %xmm1
+ eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7
+ ext v4.16b, v4.16b, v7.16b, #8 // vpslldq $8, %xmm7, %xmm4
+
+ // subbytes
+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i
+ eor v7.16b, v7.16b, v4.16b // vpxor %xmm4, %xmm7, %xmm7
+ tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k
+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j
+ tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
+ tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
+ eor v7.16b, v7.16b, v16.16b // vpxor Lk_s63(%rip), %xmm7, %xmm7
+ tbl v3.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak
+ eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
+ tbl v2.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak
+ eor v3.16b, v3.16b, v1.16b // vpxor %xmm1, %xmm3, %xmm3 # 2 = io
+ eor v2.16b, v2.16b, v0.16b // vpxor %xmm0, %xmm2, %xmm2 # 3 = jo
+ tbl v4.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou
+ tbl v1.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t
+ eor v1.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output
+
+ // add in smeared stuff
+ eor v0.16b, v1.16b, v7.16b // vpxor %xmm7, %xmm1, %xmm0
+ eor v7.16b, v1.16b, v7.16b // vmovdqa %xmm0, %xmm7
+ ret
+
+
+##
+## .aes_schedule_transform
+##
+## Linear-transform %xmm0 according to tables at (%r11)
+##
+## Requires that %xmm9 = 0x0F0F... as in preheat
+## Output in %xmm0
+## Clobbers %xmm1, %xmm2
+##
+
+.align 4
+_vpaes_schedule_transform:
+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1
+ ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0
+ // vmovdqa (%r11), %xmm2 # lo
+ tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2
+ // vmovdqa 16(%r11), %xmm1 # hi
+ tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0
+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0
+ ret
+
+
+##
+## .aes_schedule_mangle
+##
+## Mangle xmm0 from (basis-transformed) standard version
+## to our version.
+##
+## On encrypt,
+## xor with 0x63
+## multiply by circulant 0,1,1,1
+## apply shiftrows transform
+##
+## On decrypt,
+## xor with 0x63
+## multiply by "inverse mixcolumns" circulant E,B,D,9
+## deskew
+## apply shiftrows transform
+##
+##
+## Writes out to (%rdx), and increments or decrements it
+## Keeps track of round number mod 4 in %r8
+## Preserves xmm0
+## Clobbers xmm1-xmm5
+##
+
+.align 4
+_vpaes_schedule_mangle:
+ mov v4.16b, v0.16b // vmovdqa %xmm0, %xmm4 # save xmm0 for later
+ // vmovdqa .Lk_mc_forward(%rip),%xmm5
+ cbnz w3, Lschedule_mangle_dec
+
+ // encrypting
+ eor v4.16b, v0.16b, v16.16b // vpxor Lk_s63(%rip), %xmm0, %xmm4
+ add x2, x2, #16 // add $16, %rdx
+ tbl v4.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm4
+ tbl v1.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm1
+ tbl v3.16b, {v1.16b}, v9.16b // vpshufb %xmm5, %xmm1, %xmm3
+ eor v4.16b, v4.16b, v1.16b // vpxor %xmm1, %xmm4, %xmm4
+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1
+ eor v3.16b, v3.16b, v4.16b // vpxor %xmm4, %xmm3, %xmm3
+
+ b Lschedule_mangle_both
+.align 4
+Lschedule_mangle_dec:
+ // inverse mix columns
+ // lea .Lk_dksd(%rip),%r11
+ ushr v1.16b, v4.16b, #4 // vpsrlb $4, %xmm4, %xmm1 # 1 = hi
+ and v4.16b, v4.16b, v17.16b // vpand %xmm9, %xmm4, %xmm4 # 4 = lo
+
+ // vmovdqa 0x00(%r11), %xmm2
+ tbl v2.16b, {v24.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2
+ // vmovdqa 0x10(%r11), %xmm3
+ tbl v3.16b, {v25.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3
+ tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3
+
+ // vmovdqa 0x20(%r11), %xmm2
+ tbl v2.16b, {v26.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2
+ eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2
+ // vmovdqa 0x30(%r11), %xmm3
+ tbl v3.16b, {v27.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3
+ tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3
+
+ // vmovdqa 0x40(%r11), %xmm2
+ tbl v2.16b, {v28.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2
+ eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2
+ // vmovdqa 0x50(%r11), %xmm3
+ tbl v3.16b, {v29.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3
+
+ // vmovdqa 0x60(%r11), %xmm2
+ tbl v2.16b, {v30.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2
+ tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3
+ // vmovdqa 0x70(%r11), %xmm4
+ tbl v4.16b, {v31.16b}, v1.16b // vpshufb %xmm1, %xmm4, %xmm4
+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1
+ eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2
+ eor v3.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm3
+
+ sub x2, x2, #16 // add $-16, %rdx
+
+Lschedule_mangle_both:
+ tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
+ add x8, x8, #64-16 // add $-16, %r8
+ and x8, x8, #~(1<<6) // and $0x30, %r8
+ st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx)
+ ret
+
+
+.globl _vpaes_set_encrypt_key
+
+.align 4
+_vpaes_set_encrypt_key:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#-16]! // ABI spec says so
+
+ lsr w9, w1, #5 // shr $5,%eax
+ add w9, w9, #5 // $5,%eax
+ str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5;
+
+ mov w3, #0 // mov $0,%ecx
+ mov x8, #0x30 // mov $0x30,%r8d
+ bl _vpaes_schedule_core
+ eor x0, x0, x0
+
+ ldp d8,d9,[sp],#16
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+.globl _vpaes_set_decrypt_key
+
+.align 4
+_vpaes_set_decrypt_key:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#-16]! // ABI spec says so
+
+ lsr w9, w1, #5 // shr $5,%eax
+ add w9, w9, #5 // $5,%eax
+ str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5;
+ lsl w9, w9, #4 // shl $4,%eax
+ add x2, x2, #16 // lea 16(%rdx,%rax),%rdx
+ add x2, x2, x9
+
+ mov w3, #1 // mov $1,%ecx
+ lsr w8, w1, #1 // shr $1,%r8d
+ and x8, x8, #32 // and $32,%r8d
+ eor x8, x8, #32 // xor $32,%r8d # nbits==192?0:32
+ bl _vpaes_schedule_core
+
+ ldp d8,d9,[sp],#16
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _vpaes_cbc_encrypt
+
+.align 4
+_vpaes_cbc_encrypt:
+ cbz x2, Lcbc_abort
+ cmp w5, #0 // check direction
+ b.eq vpaes_cbc_decrypt
+
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ mov x17, x2 // reassign
+ mov x2, x3 // reassign
+
+ ld1 {v0.16b}, [x4] // load ivec
+ bl _vpaes_encrypt_preheat
+ b Lcbc_enc_loop
+
+.align 4
+Lcbc_enc_loop:
+ ld1 {v7.16b}, [x0],#16 // load input
+ eor v7.16b, v7.16b, v0.16b // xor with ivec
+ bl _vpaes_encrypt_core
+ st1 {v0.16b}, [x1],#16 // save output
+ subs x17, x17, #16
+ b.hi Lcbc_enc_loop
+
+ st1 {v0.16b}, [x4] // write ivec
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+Lcbc_abort:
+ ret
+
+
+
+.align 4
+vpaes_cbc_decrypt:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#-16]! // ABI spec says so
+ stp d10,d11,[sp,#-16]!
+ stp d12,d13,[sp,#-16]!
+ stp d14,d15,[sp,#-16]!
+
+ mov x17, x2 // reassign
+ mov x2, x3 // reassign
+ ld1 {v6.16b}, [x4] // load ivec
+ bl _vpaes_decrypt_preheat
+ tst x17, #16
+ b.eq Lcbc_dec_loop2x
+
+ ld1 {v7.16b}, [x0], #16 // load input
+ bl _vpaes_decrypt_core
+ eor v0.16b, v0.16b, v6.16b // xor with ivec
+ orr v6.16b, v7.16b, v7.16b // next ivec value
+ st1 {v0.16b}, [x1], #16
+ subs x17, x17, #16
+ b.ls Lcbc_dec_done
+
+.align 4
+Lcbc_dec_loop2x:
+ ld1 {v14.16b,v15.16b}, [x0], #32
+ bl _vpaes_decrypt_2x
+ eor v0.16b, v0.16b, v6.16b // xor with ivec
+ eor v1.16b, v1.16b, v14.16b
+ orr v6.16b, v15.16b, v15.16b
+ st1 {v0.16b,v1.16b}, [x1], #32
+ subs x17, x17, #32
+ b.hi Lcbc_dec_loop2x
+
+Lcbc_dec_done:
+ st1 {v6.16b}, [x4]
+
+ ldp d14,d15,[sp],#16
+ ldp d12,d13,[sp],#16
+ ldp d10,d11,[sp],#16
+ ldp d8,d9,[sp],#16
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _vpaes_ecb_encrypt
+
+.align 4
+_vpaes_ecb_encrypt:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#-16]! // ABI spec says so
+ stp d10,d11,[sp,#-16]!
+ stp d12,d13,[sp,#-16]!
+ stp d14,d15,[sp,#-16]!
+
+ mov x17, x2
+ mov x2, x3
+ bl _vpaes_encrypt_preheat
+ tst x17, #16
+ b.eq Lecb_enc_loop
+
+ ld1 {v7.16b}, [x0],#16
+ bl _vpaes_encrypt_core
+ st1 {v0.16b}, [x1],#16
+ subs x17, x17, #16
+ b.ls Lecb_enc_done
+
+.align 4
+Lecb_enc_loop:
+ ld1 {v14.16b,v15.16b}, [x0], #32
+ bl _vpaes_encrypt_2x
+ st1 {v0.16b,v1.16b}, [x1], #32
+ subs x17, x17, #32
+ b.hi Lecb_enc_loop
+
+Lecb_enc_done:
+ ldp d14,d15,[sp],#16
+ ldp d12,d13,[sp],#16
+ ldp d10,d11,[sp],#16
+ ldp d8,d9,[sp],#16
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+.globl _vpaes_ecb_decrypt
+
+.align 4
+_vpaes_ecb_decrypt:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#-16]! // ABI spec says so
+ stp d10,d11,[sp,#-16]!
+ stp d12,d13,[sp,#-16]!
+ stp d14,d15,[sp,#-16]!
+
+ mov x17, x2
+ mov x2, x3
+ bl _vpaes_decrypt_preheat
+ tst x17, #16
+ b.eq Lecb_dec_loop
+
+ ld1 {v7.16b}, [x0],#16
+ bl _vpaes_encrypt_core
+ st1 {v0.16b}, [x1],#16
+ subs x17, x17, #16
+ b.ls Lecb_dec_done
+
+.align 4
+Lecb_dec_loop:
+ ld1 {v14.16b,v15.16b}, [x0], #32
+ bl _vpaes_decrypt_2x
+ st1 {v0.16b,v1.16b}, [x1], #32
+ subs x17, x17, #32
+ b.hi Lecb_dec_loop
+
+Lecb_dec_done:
+ ldp d14,d15,[sp],#16
+ ldp d12,d13,[sp],#16
+ ldp d10,d11,[sp],#16
+ ldp d8,d9,[sp],#16
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/arm64cpuid.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/arm64cpuid.S
new file mode 100644
index 0000000000..1db01c5620
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/arm64cpuid.S
@@ -0,0 +1,122 @@
+#include "arm_arch.h"
+
+.text
+
+
+.align 5
+.globl __armv7_neon_probe
+
+__armv7_neon_probe:
+ orr v15.16b, v15.16b, v15.16b
+ ret
+
+
+.globl __armv7_tick
+
+__armv7_tick:
+#ifdef __APPLE__
+ mrs x0, CNTPCT_EL0
+#else
+ mrs x0, CNTVCT_EL0
+#endif
+ ret
+
+
+.globl __armv8_aes_probe
+
+__armv8_aes_probe:
+ aese v0.16b, v0.16b
+ ret
+
+
+.globl __armv8_sha1_probe
+
+__armv8_sha1_probe:
+ sha1h s0, s0
+ ret
+
+
+.globl __armv8_sha256_probe
+
+__armv8_sha256_probe:
+ sha256su0 v0.4s, v0.4s
+ ret
+
+
+.globl __armv8_pmull_probe
+
+__armv8_pmull_probe:
+ pmull v0.1q, v0.1d, v0.1d
+ ret
+
+
+.globl __armv8_sha512_probe
+
+__armv8_sha512_probe:
+.long 0xcec08000 // sha512su0 v0.2d,v0.2d
+ ret
+
+
+.globl _OPENSSL_cleanse
+
+.align 5
+_OPENSSL_cleanse:
+ cbz x1,Lret // len==0?
+ cmp x1,#15
+ b.hi Lot // len>15
+ nop
+Little:
+ strb wzr,[x0],#1 // store byte-by-byte
+ subs x1,x1,#1
+ b.ne Little
+Lret: ret
+
+.align 4
+Lot: tst x0,#7
+ b.eq Laligned // inp is aligned
+ strb wzr,[x0],#1 // store byte-by-byte
+ sub x1,x1,#1
+ b Lot
+
+.align 4
+Laligned:
+ str xzr,[x0],#8 // store word-by-word
+ sub x1,x1,#8
+ tst x1,#-8
+ b.ne Laligned // len>=8
+ cbnz x1,Little // len!=0?
+ ret
+
+
+.globl _CRYPTO_memcmp
+
+.align 4
+_CRYPTO_memcmp:
+ eor w3,w3,w3
+ cbz x2,Lno_data // len==0?
+ cmp x2,#16
+ b.ne Loop_cmp
+ ldp x8,x9,[x0]
+ ldp x10,x11,[x1]
+ eor x8,x8,x10
+ eor x9,x9,x11
+ orr x8,x8,x9
+ mov x0,#1
+ cmp x8,#0
+ csel x0,xzr,x0,eq
+ ret
+
+.align 4
+Loop_cmp:
+ ldrb w4,[x0],#1
+ ldrb w5,[x1],#1
+ eor w4,w4,w5
+ orr w3,w3,w4
+ subs x2,x2,#1
+ b.ne Loop_cmp
+
+Lno_data:
+ neg w0,w3
+ lsr w0,w0,#31
+ ret
+
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/bn/armv8-mont.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/bn/armv8-mont.S
new file mode 100644
index 0000000000..f00b3f55bc
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/bn/armv8-mont.S
@@ -0,0 +1,1408 @@
+.text
+
+.globl _bn_mul_mont
+
+.align 5
+_bn_mul_mont:
+ tst x5,#7
+ b.eq __bn_sqr8x_mont
+ tst x5,#3
+ b.eq __bn_mul4x_mont
+Lmul_mont:
+ stp x29,x30,[sp,#-64]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+
+ ldr x9,[x2],#8 // bp[0]
+ sub x22,sp,x5,lsl#3
+ ldp x7,x8,[x1],#16 // ap[0..1]
+ lsl x5,x5,#3
+ ldr x4,[x4] // *n0
+ and x22,x22,#-16 // ABI says so
+ ldp x13,x14,[x3],#16 // np[0..1]
+
+ mul x6,x7,x9 // ap[0]*bp[0]
+ sub x21,x5,#16 // j=num-2
+ umulh x7,x7,x9
+ mul x10,x8,x9 // ap[1]*bp[0]
+ umulh x11,x8,x9
+
+ mul x15,x6,x4 // "tp[0]"*n0
+ mov sp,x22 // alloca
+
+ // (*) mul x12,x13,x15 // np[0]*m1
+ umulh x13,x13,x15
+ mul x16,x14,x15 // np[1]*m1
+ // (*) adds x12,x12,x6 // discarded
+ // (*) As for removal of first multiplication and addition
+ // instructions. The outcome of first addition is
+ // guaranteed to be zero, which leaves two computationally
+ // significant outcomes: it either carries or not. Then
+ // question is when does it carry? Is there alternative
+ // way to deduce it? If you follow operations, you can
+ // observe that condition for carry is quite simple:
+ // x6 being non-zero. So that carry can be calculated
+ // by adding -1 to x6. That's what next instruction does.
+ subs xzr,x6,#1 // (*)
+ umulh x17,x14,x15
+ adc x13,x13,xzr
+ cbz x21,L1st_skip
+
+L1st:
+ ldr x8,[x1],#8
+ adds x6,x10,x7
+ sub x21,x21,#8 // j--
+ adc x7,x11,xzr
+
+ ldr x14,[x3],#8
+ adds x12,x16,x13
+ mul x10,x8,x9 // ap[j]*bp[0]
+ adc x13,x17,xzr
+ umulh x11,x8,x9
+
+ adds x12,x12,x6
+ mul x16,x14,x15 // np[j]*m1
+ adc x13,x13,xzr
+ umulh x17,x14,x15
+ str x12,[x22],#8 // tp[j-1]
+ cbnz x21,L1st
+
+L1st_skip:
+ adds x6,x10,x7
+ sub x1,x1,x5 // rewind x1
+ adc x7,x11,xzr
+
+ adds x12,x16,x13
+ sub x3,x3,x5 // rewind x3
+ adc x13,x17,xzr
+
+ adds x12,x12,x6
+ sub x20,x5,#8 // i=num-1
+ adcs x13,x13,x7
+
+ adc x19,xzr,xzr // upmost overflow bit
+ stp x12,x13,[x22]
+
+Louter:
+ ldr x9,[x2],#8 // bp[i]
+ ldp x7,x8,[x1],#16
+ ldr x23,[sp] // tp[0]
+ add x22,sp,#8
+
+ mul x6,x7,x9 // ap[0]*bp[i]
+ sub x21,x5,#16 // j=num-2
+ umulh x7,x7,x9
+ ldp x13,x14,[x3],#16
+ mul x10,x8,x9 // ap[1]*bp[i]
+ adds x6,x6,x23
+ umulh x11,x8,x9
+ adc x7,x7,xzr
+
+ mul x15,x6,x4
+ sub x20,x20,#8 // i--
+
+ // (*) mul x12,x13,x15 // np[0]*m1
+ umulh x13,x13,x15
+ mul x16,x14,x15 // np[1]*m1
+ // (*) adds x12,x12,x6
+ subs xzr,x6,#1 // (*)
+ umulh x17,x14,x15
+ cbz x21,Linner_skip
+
+Linner:
+ ldr x8,[x1],#8
+ adc x13,x13,xzr
+ ldr x23,[x22],#8 // tp[j]
+ adds x6,x10,x7
+ sub x21,x21,#8 // j--
+ adc x7,x11,xzr
+
+ adds x12,x16,x13
+ ldr x14,[x3],#8
+ adc x13,x17,xzr
+
+ mul x10,x8,x9 // ap[j]*bp[i]
+ adds x6,x6,x23
+ umulh x11,x8,x9
+ adc x7,x7,xzr
+
+ mul x16,x14,x15 // np[j]*m1
+ adds x12,x12,x6
+ umulh x17,x14,x15
+ str x12,[x22,#-16] // tp[j-1]
+ cbnz x21,Linner
+
+Linner_skip:
+ ldr x23,[x22],#8 // tp[j]
+ adc x13,x13,xzr
+ adds x6,x10,x7
+ sub x1,x1,x5 // rewind x1
+ adc x7,x11,xzr
+
+ adds x12,x16,x13
+ sub x3,x3,x5 // rewind x3
+ adcs x13,x17,x19
+ adc x19,xzr,xzr
+
+ adds x6,x6,x23
+ adc x7,x7,xzr
+
+ adds x12,x12,x6
+ adcs x13,x13,x7
+ adc x19,x19,xzr // upmost overflow bit
+ stp x12,x13,[x22,#-16]
+
+ cbnz x20,Louter
+
+ // Final step. We see if result is larger than modulus, and
+ // if it is, subtract the modulus. But comparison implies
+ // subtraction. So we subtract modulus, see if it borrowed,
+ // and conditionally copy original value.
+ ldr x23,[sp] // tp[0]
+ add x22,sp,#8
+ ldr x14,[x3],#8 // np[0]
+ subs x21,x5,#8 // j=num-1 and clear borrow
+ mov x1,x0
+Lsub:
+ sbcs x8,x23,x14 // tp[j]-np[j]
+ ldr x23,[x22],#8
+ sub x21,x21,#8 // j--
+ ldr x14,[x3],#8
+ str x8,[x1],#8 // rp[j]=tp[j]-np[j]
+ cbnz x21,Lsub
+
+ sbcs x8,x23,x14
+ sbcs x19,x19,xzr // did it borrow?
+ str x8,[x1],#8 // rp[num-1]
+
+ ldr x23,[sp] // tp[0]
+ add x22,sp,#8
+ ldr x8,[x0],#8 // rp[0]
+ sub x5,x5,#8 // num--
+ nop
+Lcond_copy:
+ sub x5,x5,#8 // num--
+ csel x14,x23,x8,lo // did it borrow?
+ ldr x23,[x22],#8
+ ldr x8,[x0],#8
+ str xzr,[x22,#-16] // wipe tp
+ str x14,[x0,#-16]
+ cbnz x5,Lcond_copy
+
+ csel x14,x23,x8,lo
+ str xzr,[x22,#-8] // wipe tp
+ str x14,[x0,#-8]
+
+ ldp x19,x20,[x29,#16]
+ mov sp,x29
+ ldp x21,x22,[x29,#32]
+ mov x0,#1
+ ldp x23,x24,[x29,#48]
+ ldr x29,[sp],#64
+ ret
+
+
+.align 5
+__bn_sqr8x_mont:
+ cmp x1,x2
+ b.ne __bn_mul4x_mont
+Lsqr8x_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ stp x0,x3,[sp,#96] // offload rp and np
+
+ ldp x6,x7,[x1,#8*0]
+ ldp x8,x9,[x1,#8*2]
+ ldp x10,x11,[x1,#8*4]
+ ldp x12,x13,[x1,#8*6]
+
+ sub x2,sp,x5,lsl#4
+ lsl x5,x5,#3
+ ldr x4,[x4] // *n0
+ mov sp,x2 // alloca
+ sub x27,x5,#8*8
+ b Lsqr8x_zero_start
+
+Lsqr8x_zero:
+ sub x27,x27,#8*8
+ stp xzr,xzr,[x2,#8*0]
+ stp xzr,xzr,[x2,#8*2]
+ stp xzr,xzr,[x2,#8*4]
+ stp xzr,xzr,[x2,#8*6]
+Lsqr8x_zero_start:
+ stp xzr,xzr,[x2,#8*8]
+ stp xzr,xzr,[x2,#8*10]
+ stp xzr,xzr,[x2,#8*12]
+ stp xzr,xzr,[x2,#8*14]
+ add x2,x2,#8*16
+ cbnz x27,Lsqr8x_zero
+
+ add x3,x1,x5
+ add x1,x1,#8*8
+ mov x19,xzr
+ mov x20,xzr
+ mov x21,xzr
+ mov x22,xzr
+ mov x23,xzr
+ mov x24,xzr
+ mov x25,xzr
+ mov x26,xzr
+ mov x2,sp
+ str x4,[x29,#112] // offload n0
+
+ // Multiply everything but a[i]*a[i]
+.align 4
+Lsqr8x_outer_loop:
+ // a[1]a[0] (i)
+ // a[2]a[0]
+ // a[3]a[0]
+ // a[4]a[0]
+ // a[5]a[0]
+ // a[6]a[0]
+ // a[7]a[0]
+ // a[2]a[1] (ii)
+ // a[3]a[1]
+ // a[4]a[1]
+ // a[5]a[1]
+ // a[6]a[1]
+ // a[7]a[1]
+ // a[3]a[2] (iii)
+ // a[4]a[2]
+ // a[5]a[2]
+ // a[6]a[2]
+ // a[7]a[2]
+ // a[4]a[3] (iv)
+ // a[5]a[3]
+ // a[6]a[3]
+ // a[7]a[3]
+ // a[5]a[4] (v)
+ // a[6]a[4]
+ // a[7]a[4]
+ // a[6]a[5] (vi)
+ // a[7]a[5]
+ // a[7]a[6] (vii)
+
+ mul x14,x7,x6 // lo(a[1..7]*a[0]) (i)
+ mul x15,x8,x6
+ mul x16,x9,x6
+ mul x17,x10,x6
+ adds x20,x20,x14 // t[1]+lo(a[1]*a[0])
+ mul x14,x11,x6
+ adcs x21,x21,x15
+ mul x15,x12,x6
+ adcs x22,x22,x16
+ mul x16,x13,x6
+ adcs x23,x23,x17
+ umulh x17,x7,x6 // hi(a[1..7]*a[0])
+ adcs x24,x24,x14
+ umulh x14,x8,x6
+ adcs x25,x25,x15
+ umulh x15,x9,x6
+ adcs x26,x26,x16
+ umulh x16,x10,x6
+ stp x19,x20,[x2],#8*2 // t[0..1]
+ adc x19,xzr,xzr // t[8]
+ adds x21,x21,x17 // t[2]+lo(a[1]*a[0])
+ umulh x17,x11,x6
+ adcs x22,x22,x14
+ umulh x14,x12,x6
+ adcs x23,x23,x15
+ umulh x15,x13,x6
+ adcs x24,x24,x16
+ mul x16,x8,x7 // lo(a[2..7]*a[1]) (ii)
+ adcs x25,x25,x17
+ mul x17,x9,x7
+ adcs x26,x26,x14
+ mul x14,x10,x7
+ adc x19,x19,x15
+
+ mul x15,x11,x7
+ adds x22,x22,x16
+ mul x16,x12,x7
+ adcs x23,x23,x17
+ mul x17,x13,x7
+ adcs x24,x24,x14
+ umulh x14,x8,x7 // hi(a[2..7]*a[1])
+ adcs x25,x25,x15
+ umulh x15,x9,x7
+ adcs x26,x26,x16
+ umulh x16,x10,x7
+ adcs x19,x19,x17
+ umulh x17,x11,x7
+ stp x21,x22,[x2],#8*2 // t[2..3]
+ adc x20,xzr,xzr // t[9]
+ adds x23,x23,x14
+ umulh x14,x12,x7
+ adcs x24,x24,x15
+ umulh x15,x13,x7
+ adcs x25,x25,x16
+ mul x16,x9,x8 // lo(a[3..7]*a[2]) (iii)
+ adcs x26,x26,x17
+ mul x17,x10,x8
+ adcs x19,x19,x14
+ mul x14,x11,x8
+ adc x20,x20,x15
+
+ mul x15,x12,x8
+ adds x24,x24,x16
+ mul x16,x13,x8
+ adcs x25,x25,x17
+ umulh x17,x9,x8 // hi(a[3..7]*a[2])
+ adcs x26,x26,x14
+ umulh x14,x10,x8
+ adcs x19,x19,x15
+ umulh x15,x11,x8
+ adcs x20,x20,x16
+ umulh x16,x12,x8
+ stp x23,x24,[x2],#8*2 // t[4..5]
+ adc x21,xzr,xzr // t[10]
+ adds x25,x25,x17
+ umulh x17,x13,x8
+ adcs x26,x26,x14
+ mul x14,x10,x9 // lo(a[4..7]*a[3]) (iv)
+ adcs x19,x19,x15
+ mul x15,x11,x9
+ adcs x20,x20,x16
+ mul x16,x12,x9
+ adc x21,x21,x17
+
+ mul x17,x13,x9
+ adds x26,x26,x14
+ umulh x14,x10,x9 // hi(a[4..7]*a[3])
+ adcs x19,x19,x15
+ umulh x15,x11,x9
+ adcs x20,x20,x16
+ umulh x16,x12,x9
+ adcs x21,x21,x17
+ umulh x17,x13,x9
+ stp x25,x26,[x2],#8*2 // t[6..7]
+ adc x22,xzr,xzr // t[11]
+ adds x19,x19,x14
+ mul x14,x11,x10 // lo(a[5..7]*a[4]) (v)
+ adcs x20,x20,x15
+ mul x15,x12,x10
+ adcs x21,x21,x16
+ mul x16,x13,x10
+ adc x22,x22,x17
+
+ umulh x17,x11,x10 // hi(a[5..7]*a[4])
+ adds x20,x20,x14
+ umulh x14,x12,x10
+ adcs x21,x21,x15
+ umulh x15,x13,x10
+ adcs x22,x22,x16
+ mul x16,x12,x11 // lo(a[6..7]*a[5]) (vi)
+ adc x23,xzr,xzr // t[12]
+ adds x21,x21,x17
+ mul x17,x13,x11
+ adcs x22,x22,x14
+ umulh x14,x12,x11 // hi(a[6..7]*a[5])
+ adc x23,x23,x15
+
+ umulh x15,x13,x11
+ adds x22,x22,x16
+ mul x16,x13,x12 // lo(a[7]*a[6]) (vii)
+ adcs x23,x23,x17
+ umulh x17,x13,x12 // hi(a[7]*a[6])
+ adc x24,xzr,xzr // t[13]
+ adds x23,x23,x14
+ sub x27,x3,x1 // done yet?
+ adc x24,x24,x15
+
+ adds x24,x24,x16
+ sub x14,x3,x5 // rewinded ap
+ adc x25,xzr,xzr // t[14]
+ add x25,x25,x17
+
+ cbz x27,Lsqr8x_outer_break
+
+ mov x4,x6
+ ldp x6,x7,[x2,#8*0]
+ ldp x8,x9,[x2,#8*2]
+ ldp x10,x11,[x2,#8*4]
+ ldp x12,x13,[x2,#8*6]
+ adds x19,x19,x6
+ adcs x20,x20,x7
+ ldp x6,x7,[x1,#8*0]
+ adcs x21,x21,x8
+ adcs x22,x22,x9
+ ldp x8,x9,[x1,#8*2]
+ adcs x23,x23,x10
+ adcs x24,x24,x11
+ ldp x10,x11,[x1,#8*4]
+ adcs x25,x25,x12
+ mov x0,x1
+ adcs x26,xzr,x13
+ ldp x12,x13,[x1,#8*6]
+ add x1,x1,#8*8
+ //adc x28,xzr,xzr // moved below
+ mov x27,#-8*8
+
+ // a[8]a[0]
+ // a[9]a[0]
+ // a[a]a[0]
+ // a[b]a[0]
+ // a[c]a[0]
+ // a[d]a[0]
+ // a[e]a[0]
+ // a[f]a[0]
+ // a[8]a[1]
+ // a[f]a[1]........................
+ // a[8]a[2]
+ // a[f]a[2]........................
+ // a[8]a[3]
+ // a[f]a[3]........................
+ // a[8]a[4]
+ // a[f]a[4]........................
+ // a[8]a[5]
+ // a[f]a[5]........................
+ // a[8]a[6]
+ // a[f]a[6]........................
+ // a[8]a[7]
+ // a[f]a[7]........................
+Lsqr8x_mul:
+ mul x14,x6,x4
+ adc x28,xzr,xzr // carry bit, modulo-scheduled
+ mul x15,x7,x4
+ add x27,x27,#8
+ mul x16,x8,x4
+ mul x17,x9,x4
+ adds x19,x19,x14
+ mul x14,x10,x4
+ adcs x20,x20,x15
+ mul x15,x11,x4
+ adcs x21,x21,x16
+ mul x16,x12,x4
+ adcs x22,x22,x17
+ mul x17,x13,x4
+ adcs x23,x23,x14
+ umulh x14,x6,x4
+ adcs x24,x24,x15
+ umulh x15,x7,x4
+ adcs x25,x25,x16
+ umulh x16,x8,x4
+ adcs x26,x26,x17
+ umulh x17,x9,x4
+ adc x28,x28,xzr
+ str x19,[x2],#8
+ adds x19,x20,x14
+ umulh x14,x10,x4
+ adcs x20,x21,x15
+ umulh x15,x11,x4
+ adcs x21,x22,x16
+ umulh x16,x12,x4
+ adcs x22,x23,x17
+ umulh x17,x13,x4
+ ldr x4,[x0,x27]
+ adcs x23,x24,x14
+ adcs x24,x25,x15
+ adcs x25,x26,x16
+ adcs x26,x28,x17
+ //adc x28,xzr,xzr // moved above
+ cbnz x27,Lsqr8x_mul
+ // note that carry flag is guaranteed
+ // to be zero at this point
+ cmp x1,x3 // done yet?
+ b.eq Lsqr8x_break
+
+ ldp x6,x7,[x2,#8*0]
+ ldp x8,x9,[x2,#8*2]
+ ldp x10,x11,[x2,#8*4]
+ ldp x12,x13,[x2,#8*6]
+ adds x19,x19,x6
+ ldr x4,[x0,#-8*8]
+ adcs x20,x20,x7
+ ldp x6,x7,[x1,#8*0]
+ adcs x21,x21,x8
+ adcs x22,x22,x9
+ ldp x8,x9,[x1,#8*2]
+ adcs x23,x23,x10
+ adcs x24,x24,x11
+ ldp x10,x11,[x1,#8*4]
+ adcs x25,x25,x12
+ mov x27,#-8*8
+ adcs x26,x26,x13
+ ldp x12,x13,[x1,#8*6]
+ add x1,x1,#8*8
+ //adc x28,xzr,xzr // moved above
+ b Lsqr8x_mul
+
+.align 4
+Lsqr8x_break:
+ ldp x6,x7,[x0,#8*0]
+ add x1,x0,#8*8
+ ldp x8,x9,[x0,#8*2]
+ sub x14,x3,x1 // is it last iteration?
+ ldp x10,x11,[x0,#8*4]
+ sub x15,x2,x14
+ ldp x12,x13,[x0,#8*6]
+ cbz x14,Lsqr8x_outer_loop
+
+ stp x19,x20,[x2,#8*0]
+ ldp x19,x20,[x15,#8*0]
+ stp x21,x22,[x2,#8*2]
+ ldp x21,x22,[x15,#8*2]
+ stp x23,x24,[x2,#8*4]
+ ldp x23,x24,[x15,#8*4]
+ stp x25,x26,[x2,#8*6]
+ mov x2,x15
+ ldp x25,x26,[x15,#8*6]
+ b Lsqr8x_outer_loop
+
+.align 4
+Lsqr8x_outer_break:
+ // Now multiply above result by 2 and add a[n-1]*a[n-1]|...|a[0]*a[0]
+ ldp x7,x9,[x14,#8*0] // recall that x14 is &a[0]
+ ldp x15,x16,[sp,#8*1]
+ ldp x11,x13,[x14,#8*2]
+ add x1,x14,#8*4
+ ldp x17,x14,[sp,#8*3]
+
+ stp x19,x20,[x2,#8*0]
+ mul x19,x7,x7
+ stp x21,x22,[x2,#8*2]
+ umulh x7,x7,x7
+ stp x23,x24,[x2,#8*4]
+ mul x8,x9,x9
+ stp x25,x26,[x2,#8*6]
+ mov x2,sp
+ umulh x9,x9,x9
+ adds x20,x7,x15,lsl#1
+ extr x15,x16,x15,#63
+ sub x27,x5,#8*4
+
+Lsqr4x_shift_n_add:
+ adcs x21,x8,x15
+ extr x16,x17,x16,#63
+ sub x27,x27,#8*4
+ adcs x22,x9,x16
+ ldp x15,x16,[x2,#8*5]
+ mul x10,x11,x11
+ ldp x7,x9,[x1],#8*2
+ umulh x11,x11,x11
+ mul x12,x13,x13
+ umulh x13,x13,x13
+ extr x17,x14,x17,#63
+ stp x19,x20,[x2,#8*0]
+ adcs x23,x10,x17
+ extr x14,x15,x14,#63
+ stp x21,x22,[x2,#8*2]
+ adcs x24,x11,x14
+ ldp x17,x14,[x2,#8*7]
+ extr x15,x16,x15,#63
+ adcs x25,x12,x15
+ extr x16,x17,x16,#63
+ adcs x26,x13,x16
+ ldp x15,x16,[x2,#8*9]
+ mul x6,x7,x7
+ ldp x11,x13,[x1],#8*2
+ umulh x7,x7,x7
+ mul x8,x9,x9
+ umulh x9,x9,x9
+ stp x23,x24,[x2,#8*4]
+ extr x17,x14,x17,#63
+ stp x25,x26,[x2,#8*6]
+ add x2,x2,#8*8
+ adcs x19,x6,x17
+ extr x14,x15,x14,#63
+ adcs x20,x7,x14
+ ldp x17,x14,[x2,#8*3]
+ extr x15,x16,x15,#63
+ cbnz x27,Lsqr4x_shift_n_add
+ ldp x1,x4,[x29,#104] // pull np and n0
+
+ adcs x21,x8,x15
+ extr x16,x17,x16,#63
+ adcs x22,x9,x16
+ ldp x15,x16,[x2,#8*5]
+ mul x10,x11,x11
+ umulh x11,x11,x11
+ stp x19,x20,[x2,#8*0]
+ mul x12,x13,x13
+ umulh x13,x13,x13
+ stp x21,x22,[x2,#8*2]
+ extr x17,x14,x17,#63
+ adcs x23,x10,x17
+ extr x14,x15,x14,#63
+ ldp x19,x20,[sp,#8*0]
+ adcs x24,x11,x14
+ extr x15,x16,x15,#63
+ ldp x6,x7,[x1,#8*0]
+ adcs x25,x12,x15
+ extr x16,xzr,x16,#63
+ ldp x8,x9,[x1,#8*2]
+ adc x26,x13,x16
+ ldp x10,x11,[x1,#8*4]
+
+ // Reduce by 512 bits per iteration
+ mul x28,x4,x19 // t[0]*n0
+ ldp x12,x13,[x1,#8*6]
+ add x3,x1,x5
+ ldp x21,x22,[sp,#8*2]
+ stp x23,x24,[x2,#8*4]
+ ldp x23,x24,[sp,#8*4]
+ stp x25,x26,[x2,#8*6]
+ ldp x25,x26,[sp,#8*6]
+ add x1,x1,#8*8
+ mov x30,xzr // initial top-most carry
+ mov x2,sp
+ mov x27,#8
+
+Lsqr8x_reduction:
+ // (*) mul x14,x6,x28 // lo(n[0-7])*lo(t[0]*n0)
+ mul x15,x7,x28
+ sub x27,x27,#1
+ mul x16,x8,x28
+ str x28,[x2],#8 // put aside t[0]*n0 for tail processing
+ mul x17,x9,x28
+ // (*) adds xzr,x19,x14
+ subs xzr,x19,#1 // (*)
+ mul x14,x10,x28
+ adcs x19,x20,x15
+ mul x15,x11,x28
+ adcs x20,x21,x16
+ mul x16,x12,x28
+ adcs x21,x22,x17
+ mul x17,x13,x28
+ adcs x22,x23,x14
+ umulh x14,x6,x28 // hi(n[0-7])*lo(t[0]*n0)
+ adcs x23,x24,x15
+ umulh x15,x7,x28
+ adcs x24,x25,x16
+ umulh x16,x8,x28
+ adcs x25,x26,x17
+ umulh x17,x9,x28
+ adc x26,xzr,xzr
+ adds x19,x19,x14
+ umulh x14,x10,x28
+ adcs x20,x20,x15
+ umulh x15,x11,x28
+ adcs x21,x21,x16
+ umulh x16,x12,x28
+ adcs x22,x22,x17
+ umulh x17,x13,x28
+ mul x28,x4,x19 // next t[0]*n0
+ adcs x23,x23,x14
+ adcs x24,x24,x15
+ adcs x25,x25,x16
+ adc x26,x26,x17
+ cbnz x27,Lsqr8x_reduction
+
+ ldp x14,x15,[x2,#8*0]
+ ldp x16,x17,[x2,#8*2]
+ mov x0,x2
+ sub x27,x3,x1 // done yet?
+ adds x19,x19,x14
+ adcs x20,x20,x15
+ ldp x14,x15,[x2,#8*4]
+ adcs x21,x21,x16
+ adcs x22,x22,x17
+ ldp x16,x17,[x2,#8*6]
+ adcs x23,x23,x14
+ adcs x24,x24,x15
+ adcs x25,x25,x16
+ adcs x26,x26,x17
+ //adc x28,xzr,xzr // moved below
+ cbz x27,Lsqr8x8_post_condition
+
+ ldr x4,[x2,#-8*8]
+ ldp x6,x7,[x1,#8*0]
+ ldp x8,x9,[x1,#8*2]
+ ldp x10,x11,[x1,#8*4]
+ mov x27,#-8*8
+ ldp x12,x13,[x1,#8*6]
+ add x1,x1,#8*8
+
+Lsqr8x_tail:
+ mul x14,x6,x4
+ adc x28,xzr,xzr // carry bit, modulo-scheduled
+ mul x15,x7,x4
+ add x27,x27,#8
+ mul x16,x8,x4
+ mul x17,x9,x4
+ adds x19,x19,x14
+ mul x14,x10,x4
+ adcs x20,x20,x15
+ mul x15,x11,x4
+ adcs x21,x21,x16
+ mul x16,x12,x4
+ adcs x22,x22,x17
+ mul x17,x13,x4
+ adcs x23,x23,x14
+ umulh x14,x6,x4
+ adcs x24,x24,x15
+ umulh x15,x7,x4
+ adcs x25,x25,x16
+ umulh x16,x8,x4
+ adcs x26,x26,x17
+ umulh x17,x9,x4
+ adc x28,x28,xzr
+ str x19,[x2],#8
+ adds x19,x20,x14
+ umulh x14,x10,x4
+ adcs x20,x21,x15
+ umulh x15,x11,x4
+ adcs x21,x22,x16
+ umulh x16,x12,x4
+ adcs x22,x23,x17
+ umulh x17,x13,x4
+ ldr x4,[x0,x27]
+ adcs x23,x24,x14
+ adcs x24,x25,x15
+ adcs x25,x26,x16
+ adcs x26,x28,x17
+ //adc x28,xzr,xzr // moved above
+ cbnz x27,Lsqr8x_tail
+ // note that carry flag is guaranteed
+ // to be zero at this point
+ ldp x6,x7,[x2,#8*0]
+ sub x27,x3,x1 // done yet?
+ sub x16,x3,x5 // rewinded np
+ ldp x8,x9,[x2,#8*2]
+ ldp x10,x11,[x2,#8*4]
+ ldp x12,x13,[x2,#8*6]
+ cbz x27,Lsqr8x_tail_break
+
+ ldr x4,[x0,#-8*8]
+ adds x19,x19,x6
+ adcs x20,x20,x7
+ ldp x6,x7,[x1,#8*0]
+ adcs x21,x21,x8
+ adcs x22,x22,x9
+ ldp x8,x9,[x1,#8*2]
+ adcs x23,x23,x10
+ adcs x24,x24,x11
+ ldp x10,x11,[x1,#8*4]
+ adcs x25,x25,x12
+ mov x27,#-8*8
+ adcs x26,x26,x13
+ ldp x12,x13,[x1,#8*6]
+ add x1,x1,#8*8
+ //adc x28,xzr,xzr // moved above
+ b Lsqr8x_tail
+
+.align 4
+Lsqr8x_tail_break:
+ ldr x4,[x29,#112] // pull n0
+ add x27,x2,#8*8 // end of current t[num] window
+
+ subs xzr,x30,#1 // "move" top-most carry to carry bit
+ adcs x14,x19,x6
+ adcs x15,x20,x7
+ ldp x19,x20,[x0,#8*0]
+ adcs x21,x21,x8
+ ldp x6,x7,[x16,#8*0] // recall that x16 is &n[0]
+ adcs x22,x22,x9
+ ldp x8,x9,[x16,#8*2]
+ adcs x23,x23,x10
+ adcs x24,x24,x11
+ ldp x10,x11,[x16,#8*4]
+ adcs x25,x25,x12
+ adcs x26,x26,x13
+ ldp x12,x13,[x16,#8*6]
+ add x1,x16,#8*8
+ adc x30,xzr,xzr // top-most carry
+ mul x28,x4,x19
+ stp x14,x15,[x2,#8*0]
+ stp x21,x22,[x2,#8*2]
+ ldp x21,x22,[x0,#8*2]
+ stp x23,x24,[x2,#8*4]
+ ldp x23,x24,[x0,#8*4]
+ cmp x27,x29 // did we hit the bottom?
+ stp x25,x26,[x2,#8*6]
+ mov x2,x0 // slide the window
+ ldp x25,x26,[x0,#8*6]
+ mov x27,#8
+ b.ne Lsqr8x_reduction
+
+ // Final step. We see if result is larger than modulus, and
+ // if it is, subtract the modulus. But comparison implies
+ // subtraction. So we subtract modulus, see if it borrowed,
+ // and conditionally copy original value.
+ ldr x0,[x29,#96] // pull rp
+ add x2,x2,#8*8
+ subs x14,x19,x6
+ sbcs x15,x20,x7
+ sub x27,x5,#8*8
+ mov x3,x0 // x0 copy
+
+Lsqr8x_sub:
+ sbcs x16,x21,x8
+ ldp x6,x7,[x1,#8*0]
+ sbcs x17,x22,x9
+ stp x14,x15,[x0,#8*0]
+ sbcs x14,x23,x10
+ ldp x8,x9,[x1,#8*2]
+ sbcs x15,x24,x11
+ stp x16,x17,[x0,#8*2]
+ sbcs x16,x25,x12
+ ldp x10,x11,[x1,#8*4]
+ sbcs x17,x26,x13
+ ldp x12,x13,[x1,#8*6]
+ add x1,x1,#8*8
+ ldp x19,x20,[x2,#8*0]
+ sub x27,x27,#8*8
+ ldp x21,x22,[x2,#8*2]
+ ldp x23,x24,[x2,#8*4]
+ ldp x25,x26,[x2,#8*6]
+ add x2,x2,#8*8
+ stp x14,x15,[x0,#8*4]
+ sbcs x14,x19,x6
+ stp x16,x17,[x0,#8*6]
+ add x0,x0,#8*8
+ sbcs x15,x20,x7
+ cbnz x27,Lsqr8x_sub
+
+ sbcs x16,x21,x8
+ mov x2,sp
+ add x1,sp,x5
+ ldp x6,x7,[x3,#8*0]
+ sbcs x17,x22,x9
+ stp x14,x15,[x0,#8*0]
+ sbcs x14,x23,x10
+ ldp x8,x9,[x3,#8*2]
+ sbcs x15,x24,x11
+ stp x16,x17,[x0,#8*2]
+ sbcs x16,x25,x12
+ ldp x19,x20,[x1,#8*0]
+ sbcs x17,x26,x13
+ ldp x21,x22,[x1,#8*2]
+ sbcs xzr,x30,xzr // did it borrow?
+ ldr x30,[x29,#8] // pull return address
+ stp x14,x15,[x0,#8*4]
+ stp x16,x17,[x0,#8*6]
+
+ sub x27,x5,#8*4
+Lsqr4x_cond_copy:
+ sub x27,x27,#8*4
+ csel x14,x19,x6,lo
+ stp xzr,xzr,[x2,#8*0]
+ csel x15,x20,x7,lo
+ ldp x6,x7,[x3,#8*4]
+ ldp x19,x20,[x1,#8*4]
+ csel x16,x21,x8,lo
+ stp xzr,xzr,[x2,#8*2]
+ add x2,x2,#8*4
+ csel x17,x22,x9,lo
+ ldp x8,x9,[x3,#8*6]
+ ldp x21,x22,[x1,#8*6]
+ add x1,x1,#8*4
+ stp x14,x15,[x3,#8*0]
+ stp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+ stp xzr,xzr,[x1,#8*0]
+ stp xzr,xzr,[x1,#8*2]
+ cbnz x27,Lsqr4x_cond_copy
+
+ csel x14,x19,x6,lo
+ stp xzr,xzr,[x2,#8*0]
+ csel x15,x20,x7,lo
+ stp xzr,xzr,[x2,#8*2]
+ csel x16,x21,x8,lo
+ csel x17,x22,x9,lo
+ stp x14,x15,[x3,#8*0]
+ stp x16,x17,[x3,#8*2]
+
+ b Lsqr8x_done
+
+.align 4
+Lsqr8x8_post_condition:
+ adc x28,xzr,xzr
+ ldr x30,[x29,#8] // pull return address
+ // x19-7,x28 hold result, x6-7 hold modulus
+ subs x6,x19,x6
+ ldr x1,[x29,#96] // pull rp
+ sbcs x7,x20,x7
+ stp xzr,xzr,[sp,#8*0]
+ sbcs x8,x21,x8
+ stp xzr,xzr,[sp,#8*2]
+ sbcs x9,x22,x9
+ stp xzr,xzr,[sp,#8*4]
+ sbcs x10,x23,x10
+ stp xzr,xzr,[sp,#8*6]
+ sbcs x11,x24,x11
+ stp xzr,xzr,[sp,#8*8]
+ sbcs x12,x25,x12
+ stp xzr,xzr,[sp,#8*10]
+ sbcs x13,x26,x13
+ stp xzr,xzr,[sp,#8*12]
+ sbcs x28,x28,xzr // did it borrow?
+ stp xzr,xzr,[sp,#8*14]
+
+ // x6-7 hold result-modulus
+ csel x6,x19,x6,lo
+ csel x7,x20,x7,lo
+ csel x8,x21,x8,lo
+ csel x9,x22,x9,lo
+ stp x6,x7,[x1,#8*0]
+ csel x10,x23,x10,lo
+ csel x11,x24,x11,lo
+ stp x8,x9,[x1,#8*2]
+ csel x12,x25,x12,lo
+ csel x13,x26,x13,lo
+ stp x10,x11,[x1,#8*4]
+ stp x12,x13,[x1,#8*6]
+
+Lsqr8x_done:
+ ldp x19,x20,[x29,#16]
+ mov sp,x29
+ ldp x21,x22,[x29,#32]
+ mov x0,#1
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldr x29,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+
+.align 5
+__bn_mul4x_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+
+ sub x26,sp,x5,lsl#3
+ lsl x5,x5,#3
+ ldr x4,[x4] // *n0
+ sub sp,x26,#8*4 // alloca
+
+ add x10,x2,x5
+ add x27,x1,x5
+ stp x0,x10,[x29,#96] // offload rp and &b[num]
+
+ ldr x24,[x2,#8*0] // b[0]
+ ldp x6,x7,[x1,#8*0] // a[0..3]
+ ldp x8,x9,[x1,#8*2]
+ add x1,x1,#8*4
+ mov x19,xzr
+ mov x20,xzr
+ mov x21,xzr
+ mov x22,xzr
+ ldp x14,x15,[x3,#8*0] // n[0..3]
+ ldp x16,x17,[x3,#8*2]
+ adds x3,x3,#8*4 // clear carry bit
+ mov x0,xzr
+ mov x28,#0
+ mov x26,sp
+
+Loop_mul4x_1st_reduction:
+ mul x10,x6,x24 // lo(a[0..3]*b[0])
+ adc x0,x0,xzr // modulo-scheduled
+ mul x11,x7,x24
+ add x28,x28,#8
+ mul x12,x8,x24
+ and x28,x28,#31
+ mul x13,x9,x24
+ adds x19,x19,x10
+ umulh x10,x6,x24 // hi(a[0..3]*b[0])
+ adcs x20,x20,x11
+ mul x25,x19,x4 // t[0]*n0
+ adcs x21,x21,x12
+ umulh x11,x7,x24
+ adcs x22,x22,x13
+ umulh x12,x8,x24
+ adc x23,xzr,xzr
+ umulh x13,x9,x24
+ ldr x24,[x2,x28] // next b[i] (or b[0])
+ adds x20,x20,x10
+ // (*) mul x10,x14,x25 // lo(n[0..3]*t[0]*n0)
+ str x25,[x26],#8 // put aside t[0]*n0 for tail processing
+ adcs x21,x21,x11
+ mul x11,x15,x25
+ adcs x22,x22,x12
+ mul x12,x16,x25
+ adc x23,x23,x13 // can't overflow
+ mul x13,x17,x25
+ // (*) adds xzr,x19,x10
+ subs xzr,x19,#1 // (*)
+ umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0)
+ adcs x19,x20,x11
+ umulh x11,x15,x25
+ adcs x20,x21,x12
+ umulh x12,x16,x25
+ adcs x21,x22,x13
+ umulh x13,x17,x25
+ adcs x22,x23,x0
+ adc x0,xzr,xzr
+ adds x19,x19,x10
+ sub x10,x27,x1
+ adcs x20,x20,x11
+ adcs x21,x21,x12
+ adcs x22,x22,x13
+ //adc x0,x0,xzr
+ cbnz x28,Loop_mul4x_1st_reduction
+
+ cbz x10,Lmul4x4_post_condition
+
+ ldp x6,x7,[x1,#8*0] // a[4..7]
+ ldp x8,x9,[x1,#8*2]
+ add x1,x1,#8*4
+ ldr x25,[sp] // a[0]*n0
+ ldp x14,x15,[x3,#8*0] // n[4..7]
+ ldp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+
+Loop_mul4x_1st_tail:
+ mul x10,x6,x24 // lo(a[4..7]*b[i])
+ adc x0,x0,xzr // modulo-scheduled
+ mul x11,x7,x24
+ add x28,x28,#8
+ mul x12,x8,x24
+ and x28,x28,#31
+ mul x13,x9,x24
+ adds x19,x19,x10
+ umulh x10,x6,x24 // hi(a[4..7]*b[i])
+ adcs x20,x20,x11
+ umulh x11,x7,x24
+ adcs x21,x21,x12
+ umulh x12,x8,x24
+ adcs x22,x22,x13
+ umulh x13,x9,x24
+ adc x23,xzr,xzr
+ ldr x24,[x2,x28] // next b[i] (or b[0])
+ adds x20,x20,x10
+ mul x10,x14,x25 // lo(n[4..7]*a[0]*n0)
+ adcs x21,x21,x11
+ mul x11,x15,x25
+ adcs x22,x22,x12
+ mul x12,x16,x25
+ adc x23,x23,x13 // can't overflow
+ mul x13,x17,x25
+ adds x19,x19,x10
+ umulh x10,x14,x25 // hi(n[4..7]*a[0]*n0)
+ adcs x20,x20,x11
+ umulh x11,x15,x25
+ adcs x21,x21,x12
+ umulh x12,x16,x25
+ adcs x22,x22,x13
+ adcs x23,x23,x0
+ umulh x13,x17,x25
+ adc x0,xzr,xzr
+ ldr x25,[sp,x28] // next t[0]*n0
+ str x19,[x26],#8 // result!!!
+ adds x19,x20,x10
+ sub x10,x27,x1 // done yet?
+ adcs x20,x21,x11
+ adcs x21,x22,x12
+ adcs x22,x23,x13
+ //adc x0,x0,xzr
+ cbnz x28,Loop_mul4x_1st_tail
+
+ sub x11,x27,x5 // rewinded x1
+ cbz x10,Lmul4x_proceed
+
+ ldp x6,x7,[x1,#8*0]
+ ldp x8,x9,[x1,#8*2]
+ add x1,x1,#8*4
+ ldp x14,x15,[x3,#8*0]
+ ldp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+ b Loop_mul4x_1st_tail
+
+.align 5
+Lmul4x_proceed:
+ ldr x24,[x2,#8*4]! // *++b
+ adc x30,x0,xzr
+ ldp x6,x7,[x11,#8*0] // a[0..3]
+ sub x3,x3,x5 // rewind np
+ ldp x8,x9,[x11,#8*2]
+ add x1,x11,#8*4
+
+ stp x19,x20,[x26,#8*0] // result!!!
+ ldp x19,x20,[sp,#8*4] // t[0..3]
+ stp x21,x22,[x26,#8*2] // result!!!
+ ldp x21,x22,[sp,#8*6]
+
+ ldp x14,x15,[x3,#8*0] // n[0..3]
+ mov x26,sp
+ ldp x16,x17,[x3,#8*2]
+ adds x3,x3,#8*4 // clear carry bit
+ mov x0,xzr
+
+.align 4
+Loop_mul4x_reduction:
+ mul x10,x6,x24 // lo(a[0..3]*b[4])
+ adc x0,x0,xzr // modulo-scheduled
+ mul x11,x7,x24
+ add x28,x28,#8
+ mul x12,x8,x24
+ and x28,x28,#31
+ mul x13,x9,x24
+ adds x19,x19,x10
+ umulh x10,x6,x24 // hi(a[0..3]*b[4])
+ adcs x20,x20,x11
+ mul x25,x19,x4 // t[0]*n0
+ adcs x21,x21,x12
+ umulh x11,x7,x24
+ adcs x22,x22,x13
+ umulh x12,x8,x24
+ adc x23,xzr,xzr
+ umulh x13,x9,x24
+ ldr x24,[x2,x28] // next b[i]
+ adds x20,x20,x10
+ // (*) mul x10,x14,x25
+ str x25,[x26],#8 // put aside t[0]*n0 for tail processing
+ adcs x21,x21,x11
+ mul x11,x15,x25 // lo(n[0..3]*t[0]*n0
+ adcs x22,x22,x12
+ mul x12,x16,x25
+ adc x23,x23,x13 // can't overflow
+ mul x13,x17,x25
+ // (*) adds xzr,x19,x10
+ subs xzr,x19,#1 // (*)
+ umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0
+ adcs x19,x20,x11
+ umulh x11,x15,x25
+ adcs x20,x21,x12
+ umulh x12,x16,x25
+ adcs x21,x22,x13
+ umulh x13,x17,x25
+ adcs x22,x23,x0
+ adc x0,xzr,xzr
+ adds x19,x19,x10
+ adcs x20,x20,x11
+ adcs x21,x21,x12
+ adcs x22,x22,x13
+ //adc x0,x0,xzr
+ cbnz x28,Loop_mul4x_reduction
+
+ adc x0,x0,xzr
+ ldp x10,x11,[x26,#8*4] // t[4..7]
+ ldp x12,x13,[x26,#8*6]
+ ldp x6,x7,[x1,#8*0] // a[4..7]
+ ldp x8,x9,[x1,#8*2]
+ add x1,x1,#8*4
+ adds x19,x19,x10
+ adcs x20,x20,x11
+ adcs x21,x21,x12
+ adcs x22,x22,x13
+ //adc x0,x0,xzr
+
+ ldr x25,[sp] // t[0]*n0
+ ldp x14,x15,[x3,#8*0] // n[4..7]
+ ldp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+
+.align 4
+Loop_mul4x_tail:
+ mul x10,x6,x24 // lo(a[4..7]*b[4])
+ adc x0,x0,xzr // modulo-scheduled
+ mul x11,x7,x24
+ add x28,x28,#8
+ mul x12,x8,x24
+ and x28,x28,#31
+ mul x13,x9,x24
+ adds x19,x19,x10
+ umulh x10,x6,x24 // hi(a[4..7]*b[4])
+ adcs x20,x20,x11
+ umulh x11,x7,x24
+ adcs x21,x21,x12
+ umulh x12,x8,x24
+ adcs x22,x22,x13
+ umulh x13,x9,x24
+ adc x23,xzr,xzr
+ ldr x24,[x2,x28] // next b[i]
+ adds x20,x20,x10
+ mul x10,x14,x25 // lo(n[4..7]*t[0]*n0)
+ adcs x21,x21,x11
+ mul x11,x15,x25
+ adcs x22,x22,x12
+ mul x12,x16,x25
+ adc x23,x23,x13 // can't overflow
+ mul x13,x17,x25
+ adds x19,x19,x10
+ umulh x10,x14,x25 // hi(n[4..7]*t[0]*n0)
+ adcs x20,x20,x11
+ umulh x11,x15,x25
+ adcs x21,x21,x12
+ umulh x12,x16,x25
+ adcs x22,x22,x13
+ umulh x13,x17,x25
+ adcs x23,x23,x0
+ ldr x25,[sp,x28] // next a[0]*n0
+ adc x0,xzr,xzr
+ str x19,[x26],#8 // result!!!
+ adds x19,x20,x10
+ sub x10,x27,x1 // done yet?
+ adcs x20,x21,x11
+ adcs x21,x22,x12
+ adcs x22,x23,x13
+ //adc x0,x0,xzr
+ cbnz x28,Loop_mul4x_tail
+
+ sub x11,x3,x5 // rewinded np?
+ adc x0,x0,xzr
+ cbz x10,Loop_mul4x_break
+
+ ldp x10,x11,[x26,#8*4]
+ ldp x12,x13,[x26,#8*6]
+ ldp x6,x7,[x1,#8*0]
+ ldp x8,x9,[x1,#8*2]
+ add x1,x1,#8*4
+ adds x19,x19,x10
+ adcs x20,x20,x11
+ adcs x21,x21,x12
+ adcs x22,x22,x13
+ //adc x0,x0,xzr
+ ldp x14,x15,[x3,#8*0]
+ ldp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+ b Loop_mul4x_tail
+
+.align 4
+Loop_mul4x_break:
+ ldp x12,x13,[x29,#96] // pull rp and &b[num]
+ adds x19,x19,x30
+ add x2,x2,#8*4 // bp++
+ adcs x20,x20,xzr
+ sub x1,x1,x5 // rewind ap
+ adcs x21,x21,xzr
+ stp x19,x20,[x26,#8*0] // result!!!
+ adcs x22,x22,xzr
+ ldp x19,x20,[sp,#8*4] // t[0..3]
+ adc x30,x0,xzr
+ stp x21,x22,[x26,#8*2] // result!!!
+ cmp x2,x13 // done yet?
+ ldp x21,x22,[sp,#8*6]
+ ldp x14,x15,[x11,#8*0] // n[0..3]
+ ldp x16,x17,[x11,#8*2]
+ add x3,x11,#8*4
+ b.eq Lmul4x_post
+
+ ldr x24,[x2]
+ ldp x6,x7,[x1,#8*0] // a[0..3]
+ ldp x8,x9,[x1,#8*2]
+ adds x1,x1,#8*4 // clear carry bit
+ mov x0,xzr
+ mov x26,sp
+ b Loop_mul4x_reduction
+
+.align 4
+Lmul4x_post:
+ // Final step. We see if result is larger than modulus, and
+ // if it is, subtract the modulus. But comparison implies
+ // subtraction. So we subtract modulus, see if it borrowed,
+ // and conditionally copy original value.
+ mov x0,x12
+ mov x27,x12 // x0 copy
+ subs x10,x19,x14
+ add x26,sp,#8*8
+ sbcs x11,x20,x15
+ sub x28,x5,#8*4
+
+Lmul4x_sub:
+ sbcs x12,x21,x16
+ ldp x14,x15,[x3,#8*0]
+ sub x28,x28,#8*4
+ ldp x19,x20,[x26,#8*0]
+ sbcs x13,x22,x17
+ ldp x16,x17,[x3,#8*2]
+ add x3,x3,#8*4
+ ldp x21,x22,[x26,#8*2]
+ add x26,x26,#8*4
+ stp x10,x11,[x0,#8*0]
+ sbcs x10,x19,x14
+ stp x12,x13,[x0,#8*2]
+ add x0,x0,#8*4
+ sbcs x11,x20,x15
+ cbnz x28,Lmul4x_sub
+
+ sbcs x12,x21,x16
+ mov x26,sp
+ add x1,sp,#8*4
+ ldp x6,x7,[x27,#8*0]
+ sbcs x13,x22,x17
+ stp x10,x11,[x0,#8*0]
+ ldp x8,x9,[x27,#8*2]
+ stp x12,x13,[x0,#8*2]
+ ldp x19,x20,[x1,#8*0]
+ ldp x21,x22,[x1,#8*2]
+ sbcs xzr,x30,xzr // did it borrow?
+ ldr x30,[x29,#8] // pull return address
+
+ sub x28,x5,#8*4
+Lmul4x_cond_copy:
+ sub x28,x28,#8*4
+ csel x10,x19,x6,lo
+ stp xzr,xzr,[x26,#8*0]
+ csel x11,x20,x7,lo
+ ldp x6,x7,[x27,#8*4]
+ ldp x19,x20,[x1,#8*4]
+ csel x12,x21,x8,lo
+ stp xzr,xzr,[x26,#8*2]
+ add x26,x26,#8*4
+ csel x13,x22,x9,lo
+ ldp x8,x9,[x27,#8*6]
+ ldp x21,x22,[x1,#8*6]
+ add x1,x1,#8*4
+ stp x10,x11,[x27,#8*0]
+ stp x12,x13,[x27,#8*2]
+ add x27,x27,#8*4
+ cbnz x28,Lmul4x_cond_copy
+
+ csel x10,x19,x6,lo
+ stp xzr,xzr,[x26,#8*0]
+ csel x11,x20,x7,lo
+ stp xzr,xzr,[x26,#8*2]
+ csel x12,x21,x8,lo
+ stp xzr,xzr,[x26,#8*3]
+ csel x13,x22,x9,lo
+ stp xzr,xzr,[x26,#8*4]
+ stp x10,x11,[x27,#8*0]
+ stp x12,x13,[x27,#8*2]
+
+ b Lmul4x_done
+
+.align 4
+Lmul4x4_post_condition:
+ adc x0,x0,xzr
+ ldr x1,[x29,#96] // pull rp
+ // x19-3,x0 hold result, x14-7 hold modulus
+ subs x6,x19,x14
+ ldr x30,[x29,#8] // pull return address
+ sbcs x7,x20,x15
+ stp xzr,xzr,[sp,#8*0]
+ sbcs x8,x21,x16
+ stp xzr,xzr,[sp,#8*2]
+ sbcs x9,x22,x17
+ stp xzr,xzr,[sp,#8*4]
+ sbcs xzr,x0,xzr // did it borrow?
+ stp xzr,xzr,[sp,#8*6]
+
+ // x6-3 hold result-modulus
+ csel x6,x19,x6,lo
+ csel x7,x20,x7,lo
+ csel x8,x21,x8,lo
+ csel x9,x22,x9,lo
+ stp x6,x7,[x1,#8*0]
+ stp x8,x9,[x1,#8*2]
+
+Lmul4x_done:
+ ldp x19,x20,[x29,#16]
+ mov sp,x29
+ ldp x21,x22,[x29,#32]
+ mov x0,#1
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldr x29,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 4
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/chacha/chacha-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/chacha/chacha-armv8.S
new file mode 100644
index 0000000000..81e4da5ac3
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/chacha/chacha-armv8.S
@@ -0,0 +1,1977 @@
+#include "arm_arch.h"
+
+.text
+
+
+.private_extern _OPENSSL_armcap_P
+
+.align 5
+Lsigma:
+.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral
+Lone:
+.long 1,0,0,0
+LOPENSSL_armcap_P:
+#ifdef __ILP32__
+.long _OPENSSL_armcap_P-.
+#else
+.quad _OPENSSL_armcap_P-.
+#endif
+.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+
+.globl _ChaCha20_ctr32
+
+.align 5
+_ChaCha20_ctr32:
+ cbz x2,Labort
+ adr x5,LOPENSSL_armcap_P
+ cmp x2,#192
+ b.lo Lshort
+#ifdef __ILP32__
+ ldrsw x6,[x5]
+#else
+ ldr x6,[x5]
+#endif
+ ldr w17,[x6,x5]
+ tst w17,#ARMV7_NEON
+ b.ne ChaCha20_neon
+
+Lshort:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+
+ adr x5,Lsigma
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#64
+
+ ldp x22,x23,[x5] // load sigma
+ ldp x24,x25,[x3] // load key
+ ldp x26,x27,[x3,#16]
+ ldp x28,x30,[x4] // load counter
+#ifdef __ARMEB__
+ ror x24,x24,#32
+ ror x25,x25,#32
+ ror x26,x26,#32
+ ror x27,x27,#32
+ ror x28,x28,#32
+ ror x30,x30,#32
+#endif
+
+Loop_outer:
+ mov w5,w22 // unpack key block
+ lsr x6,x22,#32
+ mov w7,w23
+ lsr x8,x23,#32
+ mov w9,w24
+ lsr x10,x24,#32
+ mov w11,w25
+ lsr x12,x25,#32
+ mov w13,w26
+ lsr x14,x26,#32
+ mov w15,w27
+ lsr x16,x27,#32
+ mov w17,w28
+ lsr x19,x28,#32
+ mov w20,w30
+ lsr x21,x30,#32
+
+ mov x4,#10
+ subs x2,x2,#64
+Loop:
+ sub x4,x4,#1
+ add w5,w5,w9
+ add w6,w6,w10
+ add w7,w7,w11
+ add w8,w8,w12
+ eor w17,w17,w5
+ eor w19,w19,w6
+ eor w20,w20,w7
+ eor w21,w21,w8
+ ror w17,w17,#16
+ ror w19,w19,#16
+ ror w20,w20,#16
+ ror w21,w21,#16
+ add w13,w13,w17
+ add w14,w14,w19
+ add w15,w15,w20
+ add w16,w16,w21
+ eor w9,w9,w13
+ eor w10,w10,w14
+ eor w11,w11,w15
+ eor w12,w12,w16
+ ror w9,w9,#20
+ ror w10,w10,#20
+ ror w11,w11,#20
+ ror w12,w12,#20
+ add w5,w5,w9
+ add w6,w6,w10
+ add w7,w7,w11
+ add w8,w8,w12
+ eor w17,w17,w5
+ eor w19,w19,w6
+ eor w20,w20,w7
+ eor w21,w21,w8
+ ror w17,w17,#24
+ ror w19,w19,#24
+ ror w20,w20,#24
+ ror w21,w21,#24
+ add w13,w13,w17
+ add w14,w14,w19
+ add w15,w15,w20
+ add w16,w16,w21
+ eor w9,w9,w13
+ eor w10,w10,w14
+ eor w11,w11,w15
+ eor w12,w12,w16
+ ror w9,w9,#25
+ ror w10,w10,#25
+ ror w11,w11,#25
+ ror w12,w12,#25
+ add w5,w5,w10
+ add w6,w6,w11
+ add w7,w7,w12
+ add w8,w8,w9
+ eor w21,w21,w5
+ eor w17,w17,w6
+ eor w19,w19,w7
+ eor w20,w20,w8
+ ror w21,w21,#16
+ ror w17,w17,#16
+ ror w19,w19,#16
+ ror w20,w20,#16
+ add w15,w15,w21
+ add w16,w16,w17
+ add w13,w13,w19
+ add w14,w14,w20
+ eor w10,w10,w15
+ eor w11,w11,w16
+ eor w12,w12,w13
+ eor w9,w9,w14
+ ror w10,w10,#20
+ ror w11,w11,#20
+ ror w12,w12,#20
+ ror w9,w9,#20
+ add w5,w5,w10
+ add w6,w6,w11
+ add w7,w7,w12
+ add w8,w8,w9
+ eor w21,w21,w5
+ eor w17,w17,w6
+ eor w19,w19,w7
+ eor w20,w20,w8
+ ror w21,w21,#24
+ ror w17,w17,#24
+ ror w19,w19,#24
+ ror w20,w20,#24
+ add w15,w15,w21
+ add w16,w16,w17
+ add w13,w13,w19
+ add w14,w14,w20
+ eor w10,w10,w15
+ eor w11,w11,w16
+ eor w12,w12,w13
+ eor w9,w9,w14
+ ror w10,w10,#25
+ ror w11,w11,#25
+ ror w12,w12,#25
+ ror w9,w9,#25
+ cbnz x4,Loop
+
+ add w5,w5,w22 // accumulate key block
+ add x6,x6,x22,lsr#32
+ add w7,w7,w23
+ add x8,x8,x23,lsr#32
+ add w9,w9,w24
+ add x10,x10,x24,lsr#32
+ add w11,w11,w25
+ add x12,x12,x25,lsr#32
+ add w13,w13,w26
+ add x14,x14,x26,lsr#32
+ add w15,w15,w27
+ add x16,x16,x27,lsr#32
+ add w17,w17,w28
+ add x19,x19,x28,lsr#32
+ add w20,w20,w30
+ add x21,x21,x30,lsr#32
+
+ b.lo Ltail
+
+ add x5,x5,x6,lsl#32 // pack
+ add x7,x7,x8,lsl#32
+ ldp x6,x8,[x1,#0] // load input
+ add x9,x9,x10,lsl#32
+ add x11,x11,x12,lsl#32
+ ldp x10,x12,[x1,#16]
+ add x13,x13,x14,lsl#32
+ add x15,x15,x16,lsl#32
+ ldp x14,x16,[x1,#32]
+ add x17,x17,x19,lsl#32
+ add x20,x20,x21,lsl#32
+ ldp x19,x21,[x1,#48]
+ add x1,x1,#64
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ eor x5,x5,x6
+ eor x7,x7,x8
+ eor x9,x9,x10
+ eor x11,x11,x12
+ eor x13,x13,x14
+ eor x15,x15,x16
+ eor x17,x17,x19
+ eor x20,x20,x21
+
+ stp x5,x7,[x0,#0] // store output
+ add x28,x28,#1 // increment counter
+ stp x9,x11,[x0,#16]
+ stp x13,x15,[x0,#32]
+ stp x17,x20,[x0,#48]
+ add x0,x0,#64
+
+ b.hi Loop_outer
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+Labort:
+ ret
+
+.align 4
+Ltail:
+ add x2,x2,#64
+Less_than_64:
+ sub x0,x0,#1
+ add x1,x1,x2
+ add x0,x0,x2
+ add x4,sp,x2
+ neg x2,x2
+
+ add x5,x5,x6,lsl#32 // pack
+ add x7,x7,x8,lsl#32
+ add x9,x9,x10,lsl#32
+ add x11,x11,x12,lsl#32
+ add x13,x13,x14,lsl#32
+ add x15,x15,x16,lsl#32
+ add x17,x17,x19,lsl#32
+ add x20,x20,x21,lsl#32
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ stp x5,x7,[sp,#0]
+ stp x9,x11,[sp,#16]
+ stp x13,x15,[sp,#32]
+ stp x17,x20,[sp,#48]
+
+Loop_tail:
+ ldrb w10,[x1,x2]
+ ldrb w11,[x4,x2]
+ add x2,x2,#1
+ eor w10,w10,w11
+ strb w10,[x0,x2]
+ cbnz x2,Loop_tail
+
+ stp xzr,xzr,[sp,#0]
+ stp xzr,xzr,[sp,#16]
+ stp xzr,xzr,[sp,#32]
+ stp xzr,xzr,[sp,#48]
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
+
+
+.align 5
+ChaCha20_neon:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+
+ adr x5,Lsigma
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ cmp x2,#512
+ b.hs L512_or_more_neon
+
+ sub sp,sp,#64
+
+ ldp x22,x23,[x5] // load sigma
+ ld1 {v24.4s},[x5],#16
+ ldp x24,x25,[x3] // load key
+ ldp x26,x27,[x3,#16]
+ ld1 {v25.4s,v26.4s},[x3]
+ ldp x28,x30,[x4] // load counter
+ ld1 {v27.4s},[x4]
+ ld1 {v31.4s},[x5]
+#ifdef __ARMEB__
+ rev64 v24.4s,v24.4s
+ ror x24,x24,#32
+ ror x25,x25,#32
+ ror x26,x26,#32
+ ror x27,x27,#32
+ ror x28,x28,#32
+ ror x30,x30,#32
+#endif
+ add v27.4s,v27.4s,v31.4s // += 1
+ add v28.4s,v27.4s,v31.4s
+ add v29.4s,v28.4s,v31.4s
+ shl v31.4s,v31.4s,#2 // 1 -> 4
+
+Loop_outer_neon:
+ mov w5,w22 // unpack key block
+ lsr x6,x22,#32
+ mov v0.16b,v24.16b
+ mov w7,w23
+ lsr x8,x23,#32
+ mov v4.16b,v24.16b
+ mov w9,w24
+ lsr x10,x24,#32
+ mov v16.16b,v24.16b
+ mov w11,w25
+ mov v1.16b,v25.16b
+ lsr x12,x25,#32
+ mov v5.16b,v25.16b
+ mov w13,w26
+ mov v17.16b,v25.16b
+ lsr x14,x26,#32
+ mov v3.16b,v27.16b
+ mov w15,w27
+ mov v7.16b,v28.16b
+ lsr x16,x27,#32
+ mov v19.16b,v29.16b
+ mov w17,w28
+ mov v2.16b,v26.16b
+ lsr x19,x28,#32
+ mov v6.16b,v26.16b
+ mov w20,w30
+ mov v18.16b,v26.16b
+ lsr x21,x30,#32
+
+ mov x4,#10
+ subs x2,x2,#256
+Loop_neon:
+ sub x4,x4,#1
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w9
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w10
+ add v16.4s,v16.4s,v17.4s
+ add w7,w7,w11
+ eor v3.16b,v3.16b,v0.16b
+ add w8,w8,w12
+ eor v7.16b,v7.16b,v4.16b
+ eor w17,w17,w5
+ eor v19.16b,v19.16b,v16.16b
+ eor w19,w19,w6
+ rev32 v3.8h,v3.8h
+ eor w20,w20,w7
+ rev32 v7.8h,v7.8h
+ eor w21,w21,w8
+ rev32 v19.8h,v19.8h
+ ror w17,w17,#16
+ add v2.4s,v2.4s,v3.4s
+ ror w19,w19,#16
+ add v6.4s,v6.4s,v7.4s
+ ror w20,w20,#16
+ add v18.4s,v18.4s,v19.4s
+ ror w21,w21,#16
+ eor v20.16b,v1.16b,v2.16b
+ add w13,w13,w17
+ eor v21.16b,v5.16b,v6.16b
+ add w14,w14,w19
+ eor v22.16b,v17.16b,v18.16b
+ add w15,w15,w20
+ ushr v1.4s,v20.4s,#20
+ add w16,w16,w21
+ ushr v5.4s,v21.4s,#20
+ eor w9,w9,w13
+ ushr v17.4s,v22.4s,#20
+ eor w10,w10,w14
+ sli v1.4s,v20.4s,#12
+ eor w11,w11,w15
+ sli v5.4s,v21.4s,#12
+ eor w12,w12,w16
+ sli v17.4s,v22.4s,#12
+ ror w9,w9,#20
+ add v0.4s,v0.4s,v1.4s
+ ror w10,w10,#20
+ add v4.4s,v4.4s,v5.4s
+ ror w11,w11,#20
+ add v16.4s,v16.4s,v17.4s
+ ror w12,w12,#20
+ eor v20.16b,v3.16b,v0.16b
+ add w5,w5,w9
+ eor v21.16b,v7.16b,v4.16b
+ add w6,w6,w10
+ eor v22.16b,v19.16b,v16.16b
+ add w7,w7,w11
+ ushr v3.4s,v20.4s,#24
+ add w8,w8,w12
+ ushr v7.4s,v21.4s,#24
+ eor w17,w17,w5
+ ushr v19.4s,v22.4s,#24
+ eor w19,w19,w6
+ sli v3.4s,v20.4s,#8
+ eor w20,w20,w7
+ sli v7.4s,v21.4s,#8
+ eor w21,w21,w8
+ sli v19.4s,v22.4s,#8
+ ror w17,w17,#24
+ add v2.4s,v2.4s,v3.4s
+ ror w19,w19,#24
+ add v6.4s,v6.4s,v7.4s
+ ror w20,w20,#24
+ add v18.4s,v18.4s,v19.4s
+ ror w21,w21,#24
+ eor v20.16b,v1.16b,v2.16b
+ add w13,w13,w17
+ eor v21.16b,v5.16b,v6.16b
+ add w14,w14,w19
+ eor v22.16b,v17.16b,v18.16b
+ add w15,w15,w20
+ ushr v1.4s,v20.4s,#25
+ add w16,w16,w21
+ ushr v5.4s,v21.4s,#25
+ eor w9,w9,w13
+ ushr v17.4s,v22.4s,#25
+ eor w10,w10,w14
+ sli v1.4s,v20.4s,#7
+ eor w11,w11,w15
+ sli v5.4s,v21.4s,#7
+ eor w12,w12,w16
+ sli v17.4s,v22.4s,#7
+ ror w9,w9,#25
+ ext v2.16b,v2.16b,v2.16b,#8
+ ror w10,w10,#25
+ ext v6.16b,v6.16b,v6.16b,#8
+ ror w11,w11,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w12,w12,#25
+ ext v3.16b,v3.16b,v3.16b,#12
+ ext v7.16b,v7.16b,v7.16b,#12
+ ext v19.16b,v19.16b,v19.16b,#12
+ ext v1.16b,v1.16b,v1.16b,#4
+ ext v5.16b,v5.16b,v5.16b,#4
+ ext v17.16b,v17.16b,v17.16b,#4
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w10
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w11
+ add v16.4s,v16.4s,v17.4s
+ add w7,w7,w12
+ eor v3.16b,v3.16b,v0.16b
+ add w8,w8,w9
+ eor v7.16b,v7.16b,v4.16b
+ eor w21,w21,w5
+ eor v19.16b,v19.16b,v16.16b
+ eor w17,w17,w6
+ rev32 v3.8h,v3.8h
+ eor w19,w19,w7
+ rev32 v7.8h,v7.8h
+ eor w20,w20,w8
+ rev32 v19.8h,v19.8h
+ ror w21,w21,#16
+ add v2.4s,v2.4s,v3.4s
+ ror w17,w17,#16
+ add v6.4s,v6.4s,v7.4s
+ ror w19,w19,#16
+ add v18.4s,v18.4s,v19.4s
+ ror w20,w20,#16
+ eor v20.16b,v1.16b,v2.16b
+ add w15,w15,w21
+ eor v21.16b,v5.16b,v6.16b
+ add w16,w16,w17
+ eor v22.16b,v17.16b,v18.16b
+ add w13,w13,w19
+ ushr v1.4s,v20.4s,#20
+ add w14,w14,w20
+ ushr v5.4s,v21.4s,#20
+ eor w10,w10,w15
+ ushr v17.4s,v22.4s,#20
+ eor w11,w11,w16
+ sli v1.4s,v20.4s,#12
+ eor w12,w12,w13
+ sli v5.4s,v21.4s,#12
+ eor w9,w9,w14
+ sli v17.4s,v22.4s,#12
+ ror w10,w10,#20
+ add v0.4s,v0.4s,v1.4s
+ ror w11,w11,#20
+ add v4.4s,v4.4s,v5.4s
+ ror w12,w12,#20
+ add v16.4s,v16.4s,v17.4s
+ ror w9,w9,#20
+ eor v20.16b,v3.16b,v0.16b
+ add w5,w5,w10
+ eor v21.16b,v7.16b,v4.16b
+ add w6,w6,w11
+ eor v22.16b,v19.16b,v16.16b
+ add w7,w7,w12
+ ushr v3.4s,v20.4s,#24
+ add w8,w8,w9
+ ushr v7.4s,v21.4s,#24
+ eor w21,w21,w5
+ ushr v19.4s,v22.4s,#24
+ eor w17,w17,w6
+ sli v3.4s,v20.4s,#8
+ eor w19,w19,w7
+ sli v7.4s,v21.4s,#8
+ eor w20,w20,w8
+ sli v19.4s,v22.4s,#8
+ ror w21,w21,#24
+ add v2.4s,v2.4s,v3.4s
+ ror w17,w17,#24
+ add v6.4s,v6.4s,v7.4s
+ ror w19,w19,#24
+ add v18.4s,v18.4s,v19.4s
+ ror w20,w20,#24
+ eor v20.16b,v1.16b,v2.16b
+ add w15,w15,w21
+ eor v21.16b,v5.16b,v6.16b
+ add w16,w16,w17
+ eor v22.16b,v17.16b,v18.16b
+ add w13,w13,w19
+ ushr v1.4s,v20.4s,#25
+ add w14,w14,w20
+ ushr v5.4s,v21.4s,#25
+ eor w10,w10,w15
+ ushr v17.4s,v22.4s,#25
+ eor w11,w11,w16
+ sli v1.4s,v20.4s,#7
+ eor w12,w12,w13
+ sli v5.4s,v21.4s,#7
+ eor w9,w9,w14
+ sli v17.4s,v22.4s,#7
+ ror w10,w10,#25
+ ext v2.16b,v2.16b,v2.16b,#8
+ ror w11,w11,#25
+ ext v6.16b,v6.16b,v6.16b,#8
+ ror w12,w12,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w9,w9,#25
+ ext v3.16b,v3.16b,v3.16b,#4
+ ext v7.16b,v7.16b,v7.16b,#4
+ ext v19.16b,v19.16b,v19.16b,#4
+ ext v1.16b,v1.16b,v1.16b,#12
+ ext v5.16b,v5.16b,v5.16b,#12
+ ext v17.16b,v17.16b,v17.16b,#12
+ cbnz x4,Loop_neon
+
+ add w5,w5,w22 // accumulate key block
+ add v0.4s,v0.4s,v24.4s
+ add x6,x6,x22,lsr#32
+ add v4.4s,v4.4s,v24.4s
+ add w7,w7,w23
+ add v16.4s,v16.4s,v24.4s
+ add x8,x8,x23,lsr#32
+ add v2.4s,v2.4s,v26.4s
+ add w9,w9,w24
+ add v6.4s,v6.4s,v26.4s
+ add x10,x10,x24,lsr#32
+ add v18.4s,v18.4s,v26.4s
+ add w11,w11,w25
+ add v3.4s,v3.4s,v27.4s
+ add x12,x12,x25,lsr#32
+ add w13,w13,w26
+ add v7.4s,v7.4s,v28.4s
+ add x14,x14,x26,lsr#32
+ add w15,w15,w27
+ add v19.4s,v19.4s,v29.4s
+ add x16,x16,x27,lsr#32
+ add w17,w17,w28
+ add v1.4s,v1.4s,v25.4s
+ add x19,x19,x28,lsr#32
+ add w20,w20,w30
+ add v5.4s,v5.4s,v25.4s
+ add x21,x21,x30,lsr#32
+ add v17.4s,v17.4s,v25.4s
+
+ b.lo Ltail_neon
+
+ add x5,x5,x6,lsl#32 // pack
+ add x7,x7,x8,lsl#32
+ ldp x6,x8,[x1,#0] // load input
+ add x9,x9,x10,lsl#32
+ add x11,x11,x12,lsl#32
+ ldp x10,x12,[x1,#16]
+ add x13,x13,x14,lsl#32
+ add x15,x15,x16,lsl#32
+ ldp x14,x16,[x1,#32]
+ add x17,x17,x19,lsl#32
+ add x20,x20,x21,lsl#32
+ ldp x19,x21,[x1,#48]
+ add x1,x1,#64
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
+ eor x5,x5,x6
+ eor x7,x7,x8
+ eor x9,x9,x10
+ eor x11,x11,x12
+ eor x13,x13,x14
+ eor v0.16b,v0.16b,v20.16b
+ eor x15,x15,x16
+ eor v1.16b,v1.16b,v21.16b
+ eor x17,x17,x19
+ eor v2.16b,v2.16b,v22.16b
+ eor x20,x20,x21
+ eor v3.16b,v3.16b,v23.16b
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
+
+ stp x5,x7,[x0,#0] // store output
+ add x28,x28,#4 // increment counter
+ stp x9,x11,[x0,#16]
+ add v27.4s,v27.4s,v31.4s // += 4
+ stp x13,x15,[x0,#32]
+ add v28.4s,v28.4s,v31.4s
+ stp x17,x20,[x0,#48]
+ add v29.4s,v29.4s,v31.4s
+ add x0,x0,#64
+
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
+ ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64
+
+ eor v4.16b,v4.16b,v20.16b
+ eor v5.16b,v5.16b,v21.16b
+ eor v6.16b,v6.16b,v22.16b
+ eor v7.16b,v7.16b,v23.16b
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
+
+ eor v16.16b,v16.16b,v0.16b
+ eor v17.16b,v17.16b,v1.16b
+ eor v18.16b,v18.16b,v2.16b
+ eor v19.16b,v19.16b,v3.16b
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64
+
+ b.hi Loop_outer_neon
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
+Ltail_neon:
+ add x2,x2,#256
+ cmp x2,#64
+ b.lo Less_than_64
+
+ add x5,x5,x6,lsl#32 // pack
+ add x7,x7,x8,lsl#32
+ ldp x6,x8,[x1,#0] // load input
+ add x9,x9,x10,lsl#32
+ add x11,x11,x12,lsl#32
+ ldp x10,x12,[x1,#16]
+ add x13,x13,x14,lsl#32
+ add x15,x15,x16,lsl#32
+ ldp x14,x16,[x1,#32]
+ add x17,x17,x19,lsl#32
+ add x20,x20,x21,lsl#32
+ ldp x19,x21,[x1,#48]
+ add x1,x1,#64
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ eor x5,x5,x6
+ eor x7,x7,x8
+ eor x9,x9,x10
+ eor x11,x11,x12
+ eor x13,x13,x14
+ eor x15,x15,x16
+ eor x17,x17,x19
+ eor x20,x20,x21
+
+ stp x5,x7,[x0,#0] // store output
+ add x28,x28,#4 // increment counter
+ stp x9,x11,[x0,#16]
+ stp x13,x15,[x0,#32]
+ stp x17,x20,[x0,#48]
+ add x0,x0,#64
+ b.eq Ldone_neon
+ sub x2,x2,#64
+ cmp x2,#64
+ b.lo Less_than_128
+
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
+ eor v0.16b,v0.16b,v20.16b
+ eor v1.16b,v1.16b,v21.16b
+ eor v2.16b,v2.16b,v22.16b
+ eor v3.16b,v3.16b,v23.16b
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
+ b.eq Ldone_neon
+ sub x2,x2,#64
+ cmp x2,#64
+ b.lo Less_than_192
+
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
+ eor v4.16b,v4.16b,v20.16b
+ eor v5.16b,v5.16b,v21.16b
+ eor v6.16b,v6.16b,v22.16b
+ eor v7.16b,v7.16b,v23.16b
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
+ b.eq Ldone_neon
+ sub x2,x2,#64
+
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[sp]
+ b Last_neon
+
+Less_than_128:
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[sp]
+ b Last_neon
+Less_than_192:
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[sp]
+ b Last_neon
+
+.align 4
+Last_neon:
+ sub x0,x0,#1
+ add x1,x1,x2
+ add x0,x0,x2
+ add x4,sp,x2
+ neg x2,x2
+
+Loop_tail_neon:
+ ldrb w10,[x1,x2]
+ ldrb w11,[x4,x2]
+ add x2,x2,#1
+ eor w10,w10,w11
+ strb w10,[x0,x2]
+ cbnz x2,Loop_tail_neon
+
+ stp xzr,xzr,[sp,#0]
+ stp xzr,xzr,[sp,#16]
+ stp xzr,xzr,[sp,#32]
+ stp xzr,xzr,[sp,#48]
+
+Ldone_neon:
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
+
+.align 5
+ChaCha20_512_neon:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+
+ adr x5,Lsigma
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+
+L512_or_more_neon:
+ sub sp,sp,#128+64
+
+ ldp x22,x23,[x5] // load sigma
+ ld1 {v24.4s},[x5],#16
+ ldp x24,x25,[x3] // load key
+ ldp x26,x27,[x3,#16]
+ ld1 {v25.4s,v26.4s},[x3]
+ ldp x28,x30,[x4] // load counter
+ ld1 {v27.4s},[x4]
+ ld1 {v31.4s},[x5]
+#ifdef __ARMEB__
+ rev64 v24.4s,v24.4s
+ ror x24,x24,#32
+ ror x25,x25,#32
+ ror x26,x26,#32
+ ror x27,x27,#32
+ ror x28,x28,#32
+ ror x30,x30,#32
+#endif
+ add v27.4s,v27.4s,v31.4s // += 1
+ stp q24,q25,[sp,#0] // off-load key block, invariant part
+ add v27.4s,v27.4s,v31.4s // not typo
+ str q26,[sp,#32]
+ add v28.4s,v27.4s,v31.4s
+ add v29.4s,v28.4s,v31.4s
+ add v30.4s,v29.4s,v31.4s
+ shl v31.4s,v31.4s,#2 // 1 -> 4
+
+ stp d8,d9,[sp,#128+0] // meet ABI requirements
+ stp d10,d11,[sp,#128+16]
+ stp d12,d13,[sp,#128+32]
+ stp d14,d15,[sp,#128+48]
+
+ sub x2,x2,#512 // not typo
+
+Loop_outer_512_neon:
+ mov v0.16b,v24.16b
+ mov v4.16b,v24.16b
+ mov v8.16b,v24.16b
+ mov v12.16b,v24.16b
+ mov v16.16b,v24.16b
+ mov v20.16b,v24.16b
+ mov v1.16b,v25.16b
+ mov w5,w22 // unpack key block
+ mov v5.16b,v25.16b
+ lsr x6,x22,#32
+ mov v9.16b,v25.16b
+ mov w7,w23
+ mov v13.16b,v25.16b
+ lsr x8,x23,#32
+ mov v17.16b,v25.16b
+ mov w9,w24
+ mov v21.16b,v25.16b
+ lsr x10,x24,#32
+ mov v3.16b,v27.16b
+ mov w11,w25
+ mov v7.16b,v28.16b
+ lsr x12,x25,#32
+ mov v11.16b,v29.16b
+ mov w13,w26
+ mov v15.16b,v30.16b
+ lsr x14,x26,#32
+ mov v2.16b,v26.16b
+ mov w15,w27
+ mov v6.16b,v26.16b
+ lsr x16,x27,#32
+ add v19.4s,v3.4s,v31.4s // +4
+ mov w17,w28
+ add v23.4s,v7.4s,v31.4s // +4
+ lsr x19,x28,#32
+ mov v10.16b,v26.16b
+ mov w20,w30
+ mov v14.16b,v26.16b
+ lsr x21,x30,#32
+ mov v18.16b,v26.16b
+ stp q27,q28,[sp,#48] // off-load key block, variable part
+ mov v22.16b,v26.16b
+ str q29,[sp,#80]
+
+ mov x4,#5
+ subs x2,x2,#512
+Loop_upper_neon:
+ sub x4,x4,#1
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w9
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w10
+ add v8.4s,v8.4s,v9.4s
+ add w7,w7,w11
+ add v12.4s,v12.4s,v13.4s
+ add w8,w8,w12
+ add v16.4s,v16.4s,v17.4s
+ eor w17,w17,w5
+ add v20.4s,v20.4s,v21.4s
+ eor w19,w19,w6
+ eor v3.16b,v3.16b,v0.16b
+ eor w20,w20,w7
+ eor v7.16b,v7.16b,v4.16b
+ eor w21,w21,w8
+ eor v11.16b,v11.16b,v8.16b
+ ror w17,w17,#16
+ eor v15.16b,v15.16b,v12.16b
+ ror w19,w19,#16
+ eor v19.16b,v19.16b,v16.16b
+ ror w20,w20,#16
+ eor v23.16b,v23.16b,v20.16b
+ ror w21,w21,#16
+ rev32 v3.8h,v3.8h
+ add w13,w13,w17
+ rev32 v7.8h,v7.8h
+ add w14,w14,w19
+ rev32 v11.8h,v11.8h
+ add w15,w15,w20
+ rev32 v15.8h,v15.8h
+ add w16,w16,w21
+ rev32 v19.8h,v19.8h
+ eor w9,w9,w13
+ rev32 v23.8h,v23.8h
+ eor w10,w10,w14
+ add v2.4s,v2.4s,v3.4s
+ eor w11,w11,w15
+ add v6.4s,v6.4s,v7.4s
+ eor w12,w12,w16
+ add v10.4s,v10.4s,v11.4s
+ ror w9,w9,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w10,w10,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w11,w11,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w12,w12,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w9
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w10
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w11
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w12
+ eor v28.16b,v17.16b,v18.16b
+ eor w17,w17,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w19,w19,w6
+ ushr v1.4s,v24.4s,#20
+ eor w20,w20,w7
+ ushr v5.4s,v25.4s,#20
+ eor w21,w21,w8
+ ushr v9.4s,v26.4s,#20
+ ror w17,w17,#24
+ ushr v13.4s,v27.4s,#20
+ ror w19,w19,#24
+ ushr v17.4s,v28.4s,#20
+ ror w20,w20,#24
+ ushr v21.4s,v29.4s,#20
+ ror w21,w21,#24
+ sli v1.4s,v24.4s,#12
+ add w13,w13,w17
+ sli v5.4s,v25.4s,#12
+ add w14,w14,w19
+ sli v9.4s,v26.4s,#12
+ add w15,w15,w20
+ sli v13.4s,v27.4s,#12
+ add w16,w16,w21
+ sli v17.4s,v28.4s,#12
+ eor w9,w9,w13
+ sli v21.4s,v29.4s,#12
+ eor w10,w10,w14
+ add v0.4s,v0.4s,v1.4s
+ eor w11,w11,w15
+ add v4.4s,v4.4s,v5.4s
+ eor w12,w12,w16
+ add v8.4s,v8.4s,v9.4s
+ ror w9,w9,#25
+ add v12.4s,v12.4s,v13.4s
+ ror w10,w10,#25
+ add v16.4s,v16.4s,v17.4s
+ ror w11,w11,#25
+ add v20.4s,v20.4s,v21.4s
+ ror w12,w12,#25
+ eor v24.16b,v3.16b,v0.16b
+ add w5,w5,w10
+ eor v25.16b,v7.16b,v4.16b
+ add w6,w6,w11
+ eor v26.16b,v11.16b,v8.16b
+ add w7,w7,w12
+ eor v27.16b,v15.16b,v12.16b
+ add w8,w8,w9
+ eor v28.16b,v19.16b,v16.16b
+ eor w21,w21,w5
+ eor v29.16b,v23.16b,v20.16b
+ eor w17,w17,w6
+ ushr v3.4s,v24.4s,#24
+ eor w19,w19,w7
+ ushr v7.4s,v25.4s,#24
+ eor w20,w20,w8
+ ushr v11.4s,v26.4s,#24
+ ror w21,w21,#16
+ ushr v15.4s,v27.4s,#24
+ ror w17,w17,#16
+ ushr v19.4s,v28.4s,#24
+ ror w19,w19,#16
+ ushr v23.4s,v29.4s,#24
+ ror w20,w20,#16
+ sli v3.4s,v24.4s,#8
+ add w15,w15,w21
+ sli v7.4s,v25.4s,#8
+ add w16,w16,w17
+ sli v11.4s,v26.4s,#8
+ add w13,w13,w19
+ sli v15.4s,v27.4s,#8
+ add w14,w14,w20
+ sli v19.4s,v28.4s,#8
+ eor w10,w10,w15
+ sli v23.4s,v29.4s,#8
+ eor w11,w11,w16
+ add v2.4s,v2.4s,v3.4s
+ eor w12,w12,w13
+ add v6.4s,v6.4s,v7.4s
+ eor w9,w9,w14
+ add v10.4s,v10.4s,v11.4s
+ ror w10,w10,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w11,w11,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w12,w12,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w9,w9,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w10
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w11
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w12
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w9
+ eor v28.16b,v17.16b,v18.16b
+ eor w21,w21,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w17,w17,w6
+ ushr v1.4s,v24.4s,#25
+ eor w19,w19,w7
+ ushr v5.4s,v25.4s,#25
+ eor w20,w20,w8
+ ushr v9.4s,v26.4s,#25
+ ror w21,w21,#24
+ ushr v13.4s,v27.4s,#25
+ ror w17,w17,#24
+ ushr v17.4s,v28.4s,#25
+ ror w19,w19,#24
+ ushr v21.4s,v29.4s,#25
+ ror w20,w20,#24
+ sli v1.4s,v24.4s,#7
+ add w15,w15,w21
+ sli v5.4s,v25.4s,#7
+ add w16,w16,w17
+ sli v9.4s,v26.4s,#7
+ add w13,w13,w19
+ sli v13.4s,v27.4s,#7
+ add w14,w14,w20
+ sli v17.4s,v28.4s,#7
+ eor w10,w10,w15
+ sli v21.4s,v29.4s,#7
+ eor w11,w11,w16
+ ext v2.16b,v2.16b,v2.16b,#8
+ eor w12,w12,w13
+ ext v6.16b,v6.16b,v6.16b,#8
+ eor w9,w9,w14
+ ext v10.16b,v10.16b,v10.16b,#8
+ ror w10,w10,#25
+ ext v14.16b,v14.16b,v14.16b,#8
+ ror w11,w11,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w12,w12,#25
+ ext v22.16b,v22.16b,v22.16b,#8
+ ror w9,w9,#25
+ ext v3.16b,v3.16b,v3.16b,#12
+ ext v7.16b,v7.16b,v7.16b,#12
+ ext v11.16b,v11.16b,v11.16b,#12
+ ext v15.16b,v15.16b,v15.16b,#12
+ ext v19.16b,v19.16b,v19.16b,#12
+ ext v23.16b,v23.16b,v23.16b,#12
+ ext v1.16b,v1.16b,v1.16b,#4
+ ext v5.16b,v5.16b,v5.16b,#4
+ ext v9.16b,v9.16b,v9.16b,#4
+ ext v13.16b,v13.16b,v13.16b,#4
+ ext v17.16b,v17.16b,v17.16b,#4
+ ext v21.16b,v21.16b,v21.16b,#4
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w9
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w10
+ add v8.4s,v8.4s,v9.4s
+ add w7,w7,w11
+ add v12.4s,v12.4s,v13.4s
+ add w8,w8,w12
+ add v16.4s,v16.4s,v17.4s
+ eor w17,w17,w5
+ add v20.4s,v20.4s,v21.4s
+ eor w19,w19,w6
+ eor v3.16b,v3.16b,v0.16b
+ eor w20,w20,w7
+ eor v7.16b,v7.16b,v4.16b
+ eor w21,w21,w8
+ eor v11.16b,v11.16b,v8.16b
+ ror w17,w17,#16
+ eor v15.16b,v15.16b,v12.16b
+ ror w19,w19,#16
+ eor v19.16b,v19.16b,v16.16b
+ ror w20,w20,#16
+ eor v23.16b,v23.16b,v20.16b
+ ror w21,w21,#16
+ rev32 v3.8h,v3.8h
+ add w13,w13,w17
+ rev32 v7.8h,v7.8h
+ add w14,w14,w19
+ rev32 v11.8h,v11.8h
+ add w15,w15,w20
+ rev32 v15.8h,v15.8h
+ add w16,w16,w21
+ rev32 v19.8h,v19.8h
+ eor w9,w9,w13
+ rev32 v23.8h,v23.8h
+ eor w10,w10,w14
+ add v2.4s,v2.4s,v3.4s
+ eor w11,w11,w15
+ add v6.4s,v6.4s,v7.4s
+ eor w12,w12,w16
+ add v10.4s,v10.4s,v11.4s
+ ror w9,w9,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w10,w10,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w11,w11,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w12,w12,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w9
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w10
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w11
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w12
+ eor v28.16b,v17.16b,v18.16b
+ eor w17,w17,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w19,w19,w6
+ ushr v1.4s,v24.4s,#20
+ eor w20,w20,w7
+ ushr v5.4s,v25.4s,#20
+ eor w21,w21,w8
+ ushr v9.4s,v26.4s,#20
+ ror w17,w17,#24
+ ushr v13.4s,v27.4s,#20
+ ror w19,w19,#24
+ ushr v17.4s,v28.4s,#20
+ ror w20,w20,#24
+ ushr v21.4s,v29.4s,#20
+ ror w21,w21,#24
+ sli v1.4s,v24.4s,#12
+ add w13,w13,w17
+ sli v5.4s,v25.4s,#12
+ add w14,w14,w19
+ sli v9.4s,v26.4s,#12
+ add w15,w15,w20
+ sli v13.4s,v27.4s,#12
+ add w16,w16,w21
+ sli v17.4s,v28.4s,#12
+ eor w9,w9,w13
+ sli v21.4s,v29.4s,#12
+ eor w10,w10,w14
+ add v0.4s,v0.4s,v1.4s
+ eor w11,w11,w15
+ add v4.4s,v4.4s,v5.4s
+ eor w12,w12,w16
+ add v8.4s,v8.4s,v9.4s
+ ror w9,w9,#25
+ add v12.4s,v12.4s,v13.4s
+ ror w10,w10,#25
+ add v16.4s,v16.4s,v17.4s
+ ror w11,w11,#25
+ add v20.4s,v20.4s,v21.4s
+ ror w12,w12,#25
+ eor v24.16b,v3.16b,v0.16b
+ add w5,w5,w10
+ eor v25.16b,v7.16b,v4.16b
+ add w6,w6,w11
+ eor v26.16b,v11.16b,v8.16b
+ add w7,w7,w12
+ eor v27.16b,v15.16b,v12.16b
+ add w8,w8,w9
+ eor v28.16b,v19.16b,v16.16b
+ eor w21,w21,w5
+ eor v29.16b,v23.16b,v20.16b
+ eor w17,w17,w6
+ ushr v3.4s,v24.4s,#24
+ eor w19,w19,w7
+ ushr v7.4s,v25.4s,#24
+ eor w20,w20,w8
+ ushr v11.4s,v26.4s,#24
+ ror w21,w21,#16
+ ushr v15.4s,v27.4s,#24
+ ror w17,w17,#16
+ ushr v19.4s,v28.4s,#24
+ ror w19,w19,#16
+ ushr v23.4s,v29.4s,#24
+ ror w20,w20,#16
+ sli v3.4s,v24.4s,#8
+ add w15,w15,w21
+ sli v7.4s,v25.4s,#8
+ add w16,w16,w17
+ sli v11.4s,v26.4s,#8
+ add w13,w13,w19
+ sli v15.4s,v27.4s,#8
+ add w14,w14,w20
+ sli v19.4s,v28.4s,#8
+ eor w10,w10,w15
+ sli v23.4s,v29.4s,#8
+ eor w11,w11,w16
+ add v2.4s,v2.4s,v3.4s
+ eor w12,w12,w13
+ add v6.4s,v6.4s,v7.4s
+ eor w9,w9,w14
+ add v10.4s,v10.4s,v11.4s
+ ror w10,w10,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w11,w11,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w12,w12,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w9,w9,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w10
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w11
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w12
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w9
+ eor v28.16b,v17.16b,v18.16b
+ eor w21,w21,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w17,w17,w6
+ ushr v1.4s,v24.4s,#25
+ eor w19,w19,w7
+ ushr v5.4s,v25.4s,#25
+ eor w20,w20,w8
+ ushr v9.4s,v26.4s,#25
+ ror w21,w21,#24
+ ushr v13.4s,v27.4s,#25
+ ror w17,w17,#24
+ ushr v17.4s,v28.4s,#25
+ ror w19,w19,#24
+ ushr v21.4s,v29.4s,#25
+ ror w20,w20,#24
+ sli v1.4s,v24.4s,#7
+ add w15,w15,w21
+ sli v5.4s,v25.4s,#7
+ add w16,w16,w17
+ sli v9.4s,v26.4s,#7
+ add w13,w13,w19
+ sli v13.4s,v27.4s,#7
+ add w14,w14,w20
+ sli v17.4s,v28.4s,#7
+ eor w10,w10,w15
+ sli v21.4s,v29.4s,#7
+ eor w11,w11,w16
+ ext v2.16b,v2.16b,v2.16b,#8
+ eor w12,w12,w13
+ ext v6.16b,v6.16b,v6.16b,#8
+ eor w9,w9,w14
+ ext v10.16b,v10.16b,v10.16b,#8
+ ror w10,w10,#25
+ ext v14.16b,v14.16b,v14.16b,#8
+ ror w11,w11,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w12,w12,#25
+ ext v22.16b,v22.16b,v22.16b,#8
+ ror w9,w9,#25
+ ext v3.16b,v3.16b,v3.16b,#4
+ ext v7.16b,v7.16b,v7.16b,#4
+ ext v11.16b,v11.16b,v11.16b,#4
+ ext v15.16b,v15.16b,v15.16b,#4
+ ext v19.16b,v19.16b,v19.16b,#4
+ ext v23.16b,v23.16b,v23.16b,#4
+ ext v1.16b,v1.16b,v1.16b,#12
+ ext v5.16b,v5.16b,v5.16b,#12
+ ext v9.16b,v9.16b,v9.16b,#12
+ ext v13.16b,v13.16b,v13.16b,#12
+ ext v17.16b,v17.16b,v17.16b,#12
+ ext v21.16b,v21.16b,v21.16b,#12
+ cbnz x4,Loop_upper_neon
+
+ add w5,w5,w22 // accumulate key block
+ add x6,x6,x22,lsr#32
+ add w7,w7,w23
+ add x8,x8,x23,lsr#32
+ add w9,w9,w24
+ add x10,x10,x24,lsr#32
+ add w11,w11,w25
+ add x12,x12,x25,lsr#32
+ add w13,w13,w26
+ add x14,x14,x26,lsr#32
+ add w15,w15,w27
+ add x16,x16,x27,lsr#32
+ add w17,w17,w28
+ add x19,x19,x28,lsr#32
+ add w20,w20,w30
+ add x21,x21,x30,lsr#32
+
+ add x5,x5,x6,lsl#32 // pack
+ add x7,x7,x8,lsl#32
+ ldp x6,x8,[x1,#0] // load input
+ add x9,x9,x10,lsl#32
+ add x11,x11,x12,lsl#32
+ ldp x10,x12,[x1,#16]
+ add x13,x13,x14,lsl#32
+ add x15,x15,x16,lsl#32
+ ldp x14,x16,[x1,#32]
+ add x17,x17,x19,lsl#32
+ add x20,x20,x21,lsl#32
+ ldp x19,x21,[x1,#48]
+ add x1,x1,#64
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ eor x5,x5,x6
+ eor x7,x7,x8
+ eor x9,x9,x10
+ eor x11,x11,x12
+ eor x13,x13,x14
+ eor x15,x15,x16
+ eor x17,x17,x19
+ eor x20,x20,x21
+
+ stp x5,x7,[x0,#0] // store output
+ add x28,x28,#1 // increment counter
+ mov w5,w22 // unpack key block
+ lsr x6,x22,#32
+ stp x9,x11,[x0,#16]
+ mov w7,w23
+ lsr x8,x23,#32
+ stp x13,x15,[x0,#32]
+ mov w9,w24
+ lsr x10,x24,#32
+ stp x17,x20,[x0,#48]
+ add x0,x0,#64
+ mov w11,w25
+ lsr x12,x25,#32
+ mov w13,w26
+ lsr x14,x26,#32
+ mov w15,w27
+ lsr x16,x27,#32
+ mov w17,w28
+ lsr x19,x28,#32
+ mov w20,w30
+ lsr x21,x30,#32
+
+ mov x4,#5
+Loop_lower_neon:
+ sub x4,x4,#1
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w9
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w10
+ add v8.4s,v8.4s,v9.4s
+ add w7,w7,w11
+ add v12.4s,v12.4s,v13.4s
+ add w8,w8,w12
+ add v16.4s,v16.4s,v17.4s
+ eor w17,w17,w5
+ add v20.4s,v20.4s,v21.4s
+ eor w19,w19,w6
+ eor v3.16b,v3.16b,v0.16b
+ eor w20,w20,w7
+ eor v7.16b,v7.16b,v4.16b
+ eor w21,w21,w8
+ eor v11.16b,v11.16b,v8.16b
+ ror w17,w17,#16
+ eor v15.16b,v15.16b,v12.16b
+ ror w19,w19,#16
+ eor v19.16b,v19.16b,v16.16b
+ ror w20,w20,#16
+ eor v23.16b,v23.16b,v20.16b
+ ror w21,w21,#16
+ rev32 v3.8h,v3.8h
+ add w13,w13,w17
+ rev32 v7.8h,v7.8h
+ add w14,w14,w19
+ rev32 v11.8h,v11.8h
+ add w15,w15,w20
+ rev32 v15.8h,v15.8h
+ add w16,w16,w21
+ rev32 v19.8h,v19.8h
+ eor w9,w9,w13
+ rev32 v23.8h,v23.8h
+ eor w10,w10,w14
+ add v2.4s,v2.4s,v3.4s
+ eor w11,w11,w15
+ add v6.4s,v6.4s,v7.4s
+ eor w12,w12,w16
+ add v10.4s,v10.4s,v11.4s
+ ror w9,w9,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w10,w10,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w11,w11,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w12,w12,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w9
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w10
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w11
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w12
+ eor v28.16b,v17.16b,v18.16b
+ eor w17,w17,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w19,w19,w6
+ ushr v1.4s,v24.4s,#20
+ eor w20,w20,w7
+ ushr v5.4s,v25.4s,#20
+ eor w21,w21,w8
+ ushr v9.4s,v26.4s,#20
+ ror w17,w17,#24
+ ushr v13.4s,v27.4s,#20
+ ror w19,w19,#24
+ ushr v17.4s,v28.4s,#20
+ ror w20,w20,#24
+ ushr v21.4s,v29.4s,#20
+ ror w21,w21,#24
+ sli v1.4s,v24.4s,#12
+ add w13,w13,w17
+ sli v5.4s,v25.4s,#12
+ add w14,w14,w19
+ sli v9.4s,v26.4s,#12
+ add w15,w15,w20
+ sli v13.4s,v27.4s,#12
+ add w16,w16,w21
+ sli v17.4s,v28.4s,#12
+ eor w9,w9,w13
+ sli v21.4s,v29.4s,#12
+ eor w10,w10,w14
+ add v0.4s,v0.4s,v1.4s
+ eor w11,w11,w15
+ add v4.4s,v4.4s,v5.4s
+ eor w12,w12,w16
+ add v8.4s,v8.4s,v9.4s
+ ror w9,w9,#25
+ add v12.4s,v12.4s,v13.4s
+ ror w10,w10,#25
+ add v16.4s,v16.4s,v17.4s
+ ror w11,w11,#25
+ add v20.4s,v20.4s,v21.4s
+ ror w12,w12,#25
+ eor v24.16b,v3.16b,v0.16b
+ add w5,w5,w10
+ eor v25.16b,v7.16b,v4.16b
+ add w6,w6,w11
+ eor v26.16b,v11.16b,v8.16b
+ add w7,w7,w12
+ eor v27.16b,v15.16b,v12.16b
+ add w8,w8,w9
+ eor v28.16b,v19.16b,v16.16b
+ eor w21,w21,w5
+ eor v29.16b,v23.16b,v20.16b
+ eor w17,w17,w6
+ ushr v3.4s,v24.4s,#24
+ eor w19,w19,w7
+ ushr v7.4s,v25.4s,#24
+ eor w20,w20,w8
+ ushr v11.4s,v26.4s,#24
+ ror w21,w21,#16
+ ushr v15.4s,v27.4s,#24
+ ror w17,w17,#16
+ ushr v19.4s,v28.4s,#24
+ ror w19,w19,#16
+ ushr v23.4s,v29.4s,#24
+ ror w20,w20,#16
+ sli v3.4s,v24.4s,#8
+ add w15,w15,w21
+ sli v7.4s,v25.4s,#8
+ add w16,w16,w17
+ sli v11.4s,v26.4s,#8
+ add w13,w13,w19
+ sli v15.4s,v27.4s,#8
+ add w14,w14,w20
+ sli v19.4s,v28.4s,#8
+ eor w10,w10,w15
+ sli v23.4s,v29.4s,#8
+ eor w11,w11,w16
+ add v2.4s,v2.4s,v3.4s
+ eor w12,w12,w13
+ add v6.4s,v6.4s,v7.4s
+ eor w9,w9,w14
+ add v10.4s,v10.4s,v11.4s
+ ror w10,w10,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w11,w11,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w12,w12,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w9,w9,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w10
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w11
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w12
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w9
+ eor v28.16b,v17.16b,v18.16b
+ eor w21,w21,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w17,w17,w6
+ ushr v1.4s,v24.4s,#25
+ eor w19,w19,w7
+ ushr v5.4s,v25.4s,#25
+ eor w20,w20,w8
+ ushr v9.4s,v26.4s,#25
+ ror w21,w21,#24
+ ushr v13.4s,v27.4s,#25
+ ror w17,w17,#24
+ ushr v17.4s,v28.4s,#25
+ ror w19,w19,#24
+ ushr v21.4s,v29.4s,#25
+ ror w20,w20,#24
+ sli v1.4s,v24.4s,#7
+ add w15,w15,w21
+ sli v5.4s,v25.4s,#7
+ add w16,w16,w17
+ sli v9.4s,v26.4s,#7
+ add w13,w13,w19
+ sli v13.4s,v27.4s,#7
+ add w14,w14,w20
+ sli v17.4s,v28.4s,#7
+ eor w10,w10,w15
+ sli v21.4s,v29.4s,#7
+ eor w11,w11,w16
+ ext v2.16b,v2.16b,v2.16b,#8
+ eor w12,w12,w13
+ ext v6.16b,v6.16b,v6.16b,#8
+ eor w9,w9,w14
+ ext v10.16b,v10.16b,v10.16b,#8
+ ror w10,w10,#25
+ ext v14.16b,v14.16b,v14.16b,#8
+ ror w11,w11,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w12,w12,#25
+ ext v22.16b,v22.16b,v22.16b,#8
+ ror w9,w9,#25
+ ext v3.16b,v3.16b,v3.16b,#12
+ ext v7.16b,v7.16b,v7.16b,#12
+ ext v11.16b,v11.16b,v11.16b,#12
+ ext v15.16b,v15.16b,v15.16b,#12
+ ext v19.16b,v19.16b,v19.16b,#12
+ ext v23.16b,v23.16b,v23.16b,#12
+ ext v1.16b,v1.16b,v1.16b,#4
+ ext v5.16b,v5.16b,v5.16b,#4
+ ext v9.16b,v9.16b,v9.16b,#4
+ ext v13.16b,v13.16b,v13.16b,#4
+ ext v17.16b,v17.16b,v17.16b,#4
+ ext v21.16b,v21.16b,v21.16b,#4
+ add v0.4s,v0.4s,v1.4s
+ add w5,w5,w9
+ add v4.4s,v4.4s,v5.4s
+ add w6,w6,w10
+ add v8.4s,v8.4s,v9.4s
+ add w7,w7,w11
+ add v12.4s,v12.4s,v13.4s
+ add w8,w8,w12
+ add v16.4s,v16.4s,v17.4s
+ eor w17,w17,w5
+ add v20.4s,v20.4s,v21.4s
+ eor w19,w19,w6
+ eor v3.16b,v3.16b,v0.16b
+ eor w20,w20,w7
+ eor v7.16b,v7.16b,v4.16b
+ eor w21,w21,w8
+ eor v11.16b,v11.16b,v8.16b
+ ror w17,w17,#16
+ eor v15.16b,v15.16b,v12.16b
+ ror w19,w19,#16
+ eor v19.16b,v19.16b,v16.16b
+ ror w20,w20,#16
+ eor v23.16b,v23.16b,v20.16b
+ ror w21,w21,#16
+ rev32 v3.8h,v3.8h
+ add w13,w13,w17
+ rev32 v7.8h,v7.8h
+ add w14,w14,w19
+ rev32 v11.8h,v11.8h
+ add w15,w15,w20
+ rev32 v15.8h,v15.8h
+ add w16,w16,w21
+ rev32 v19.8h,v19.8h
+ eor w9,w9,w13
+ rev32 v23.8h,v23.8h
+ eor w10,w10,w14
+ add v2.4s,v2.4s,v3.4s
+ eor w11,w11,w15
+ add v6.4s,v6.4s,v7.4s
+ eor w12,w12,w16
+ add v10.4s,v10.4s,v11.4s
+ ror w9,w9,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w10,w10,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w11,w11,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w12,w12,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w9
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w10
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w11
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w12
+ eor v28.16b,v17.16b,v18.16b
+ eor w17,w17,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w19,w19,w6
+ ushr v1.4s,v24.4s,#20
+ eor w20,w20,w7
+ ushr v5.4s,v25.4s,#20
+ eor w21,w21,w8
+ ushr v9.4s,v26.4s,#20
+ ror w17,w17,#24
+ ushr v13.4s,v27.4s,#20
+ ror w19,w19,#24
+ ushr v17.4s,v28.4s,#20
+ ror w20,w20,#24
+ ushr v21.4s,v29.4s,#20
+ ror w21,w21,#24
+ sli v1.4s,v24.4s,#12
+ add w13,w13,w17
+ sli v5.4s,v25.4s,#12
+ add w14,w14,w19
+ sli v9.4s,v26.4s,#12
+ add w15,w15,w20
+ sli v13.4s,v27.4s,#12
+ add w16,w16,w21
+ sli v17.4s,v28.4s,#12
+ eor w9,w9,w13
+ sli v21.4s,v29.4s,#12
+ eor w10,w10,w14
+ add v0.4s,v0.4s,v1.4s
+ eor w11,w11,w15
+ add v4.4s,v4.4s,v5.4s
+ eor w12,w12,w16
+ add v8.4s,v8.4s,v9.4s
+ ror w9,w9,#25
+ add v12.4s,v12.4s,v13.4s
+ ror w10,w10,#25
+ add v16.4s,v16.4s,v17.4s
+ ror w11,w11,#25
+ add v20.4s,v20.4s,v21.4s
+ ror w12,w12,#25
+ eor v24.16b,v3.16b,v0.16b
+ add w5,w5,w10
+ eor v25.16b,v7.16b,v4.16b
+ add w6,w6,w11
+ eor v26.16b,v11.16b,v8.16b
+ add w7,w7,w12
+ eor v27.16b,v15.16b,v12.16b
+ add w8,w8,w9
+ eor v28.16b,v19.16b,v16.16b
+ eor w21,w21,w5
+ eor v29.16b,v23.16b,v20.16b
+ eor w17,w17,w6
+ ushr v3.4s,v24.4s,#24
+ eor w19,w19,w7
+ ushr v7.4s,v25.4s,#24
+ eor w20,w20,w8
+ ushr v11.4s,v26.4s,#24
+ ror w21,w21,#16
+ ushr v15.4s,v27.4s,#24
+ ror w17,w17,#16
+ ushr v19.4s,v28.4s,#24
+ ror w19,w19,#16
+ ushr v23.4s,v29.4s,#24
+ ror w20,w20,#16
+ sli v3.4s,v24.4s,#8
+ add w15,w15,w21
+ sli v7.4s,v25.4s,#8
+ add w16,w16,w17
+ sli v11.4s,v26.4s,#8
+ add w13,w13,w19
+ sli v15.4s,v27.4s,#8
+ add w14,w14,w20
+ sli v19.4s,v28.4s,#8
+ eor w10,w10,w15
+ sli v23.4s,v29.4s,#8
+ eor w11,w11,w16
+ add v2.4s,v2.4s,v3.4s
+ eor w12,w12,w13
+ add v6.4s,v6.4s,v7.4s
+ eor w9,w9,w14
+ add v10.4s,v10.4s,v11.4s
+ ror w10,w10,#20
+ add v14.4s,v14.4s,v15.4s
+ ror w11,w11,#20
+ add v18.4s,v18.4s,v19.4s
+ ror w12,w12,#20
+ add v22.4s,v22.4s,v23.4s
+ ror w9,w9,#20
+ eor v24.16b,v1.16b,v2.16b
+ add w5,w5,w10
+ eor v25.16b,v5.16b,v6.16b
+ add w6,w6,w11
+ eor v26.16b,v9.16b,v10.16b
+ add w7,w7,w12
+ eor v27.16b,v13.16b,v14.16b
+ add w8,w8,w9
+ eor v28.16b,v17.16b,v18.16b
+ eor w21,w21,w5
+ eor v29.16b,v21.16b,v22.16b
+ eor w17,w17,w6
+ ushr v1.4s,v24.4s,#25
+ eor w19,w19,w7
+ ushr v5.4s,v25.4s,#25
+ eor w20,w20,w8
+ ushr v9.4s,v26.4s,#25
+ ror w21,w21,#24
+ ushr v13.4s,v27.4s,#25
+ ror w17,w17,#24
+ ushr v17.4s,v28.4s,#25
+ ror w19,w19,#24
+ ushr v21.4s,v29.4s,#25
+ ror w20,w20,#24
+ sli v1.4s,v24.4s,#7
+ add w15,w15,w21
+ sli v5.4s,v25.4s,#7
+ add w16,w16,w17
+ sli v9.4s,v26.4s,#7
+ add w13,w13,w19
+ sli v13.4s,v27.4s,#7
+ add w14,w14,w20
+ sli v17.4s,v28.4s,#7
+ eor w10,w10,w15
+ sli v21.4s,v29.4s,#7
+ eor w11,w11,w16
+ ext v2.16b,v2.16b,v2.16b,#8
+ eor w12,w12,w13
+ ext v6.16b,v6.16b,v6.16b,#8
+ eor w9,w9,w14
+ ext v10.16b,v10.16b,v10.16b,#8
+ ror w10,w10,#25
+ ext v14.16b,v14.16b,v14.16b,#8
+ ror w11,w11,#25
+ ext v18.16b,v18.16b,v18.16b,#8
+ ror w12,w12,#25
+ ext v22.16b,v22.16b,v22.16b,#8
+ ror w9,w9,#25
+ ext v3.16b,v3.16b,v3.16b,#4
+ ext v7.16b,v7.16b,v7.16b,#4
+ ext v11.16b,v11.16b,v11.16b,#4
+ ext v15.16b,v15.16b,v15.16b,#4
+ ext v19.16b,v19.16b,v19.16b,#4
+ ext v23.16b,v23.16b,v23.16b,#4
+ ext v1.16b,v1.16b,v1.16b,#12
+ ext v5.16b,v5.16b,v5.16b,#12
+ ext v9.16b,v9.16b,v9.16b,#12
+ ext v13.16b,v13.16b,v13.16b,#12
+ ext v17.16b,v17.16b,v17.16b,#12
+ ext v21.16b,v21.16b,v21.16b,#12
+ cbnz x4,Loop_lower_neon
+
+ add w5,w5,w22 // accumulate key block
+ ldp q24,q25,[sp,#0]
+ add x6,x6,x22,lsr#32
+ ldp q26,q27,[sp,#32]
+ add w7,w7,w23
+ ldp q28,q29,[sp,#64]
+ add x8,x8,x23,lsr#32
+ add v0.4s,v0.4s,v24.4s
+ add w9,w9,w24
+ add v4.4s,v4.4s,v24.4s
+ add x10,x10,x24,lsr#32
+ add v8.4s,v8.4s,v24.4s
+ add w11,w11,w25
+ add v12.4s,v12.4s,v24.4s
+ add x12,x12,x25,lsr#32
+ add v16.4s,v16.4s,v24.4s
+ add w13,w13,w26
+ add v20.4s,v20.4s,v24.4s
+ add x14,x14,x26,lsr#32
+ add v2.4s,v2.4s,v26.4s
+ add w15,w15,w27
+ add v6.4s,v6.4s,v26.4s
+ add x16,x16,x27,lsr#32
+ add v10.4s,v10.4s,v26.4s
+ add w17,w17,w28
+ add v14.4s,v14.4s,v26.4s
+ add x19,x19,x28,lsr#32
+ add v18.4s,v18.4s,v26.4s
+ add w20,w20,w30
+ add v22.4s,v22.4s,v26.4s
+ add x21,x21,x30,lsr#32
+ add v19.4s,v19.4s,v31.4s // +4
+ add x5,x5,x6,lsl#32 // pack
+ add v23.4s,v23.4s,v31.4s // +4
+ add x7,x7,x8,lsl#32
+ add v3.4s,v3.4s,v27.4s
+ ldp x6,x8,[x1,#0] // load input
+ add v7.4s,v7.4s,v28.4s
+ add x9,x9,x10,lsl#32
+ add v11.4s,v11.4s,v29.4s
+ add x11,x11,x12,lsl#32
+ add v15.4s,v15.4s,v30.4s
+ ldp x10,x12,[x1,#16]
+ add v19.4s,v19.4s,v27.4s
+ add x13,x13,x14,lsl#32
+ add v23.4s,v23.4s,v28.4s
+ add x15,x15,x16,lsl#32
+ add v1.4s,v1.4s,v25.4s
+ ldp x14,x16,[x1,#32]
+ add v5.4s,v5.4s,v25.4s
+ add x17,x17,x19,lsl#32
+ add v9.4s,v9.4s,v25.4s
+ add x20,x20,x21,lsl#32
+ add v13.4s,v13.4s,v25.4s
+ ldp x19,x21,[x1,#48]
+ add v17.4s,v17.4s,v25.4s
+ add x1,x1,#64
+ add v21.4s,v21.4s,v25.4s
+
+#ifdef __ARMEB__
+ rev x5,x5
+ rev x7,x7
+ rev x9,x9
+ rev x11,x11
+ rev x13,x13
+ rev x15,x15
+ rev x17,x17
+ rev x20,x20
+#endif
+ ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64
+ eor x5,x5,x6
+ eor x7,x7,x8
+ eor x9,x9,x10
+ eor x11,x11,x12
+ eor x13,x13,x14
+ eor v0.16b,v0.16b,v24.16b
+ eor x15,x15,x16
+ eor v1.16b,v1.16b,v25.16b
+ eor x17,x17,x19
+ eor v2.16b,v2.16b,v26.16b
+ eor x20,x20,x21
+ eor v3.16b,v3.16b,v27.16b
+ ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64
+
+ stp x5,x7,[x0,#0] // store output
+ add x28,x28,#7 // increment counter
+ stp x9,x11,[x0,#16]
+ stp x13,x15,[x0,#32]
+ stp x17,x20,[x0,#48]
+ add x0,x0,#64
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
+
+ ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64
+ eor v4.16b,v4.16b,v24.16b
+ eor v5.16b,v5.16b,v25.16b
+ eor v6.16b,v6.16b,v26.16b
+ eor v7.16b,v7.16b,v27.16b
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
+
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
+ eor v8.16b,v8.16b,v0.16b
+ ldp q24,q25,[sp,#0]
+ eor v9.16b,v9.16b,v1.16b
+ ldp q26,q27,[sp,#32]
+ eor v10.16b,v10.16b,v2.16b
+ eor v11.16b,v11.16b,v3.16b
+ st1 {v8.16b,v9.16b,v10.16b,v11.16b},[x0],#64
+
+ ld1 {v8.16b,v9.16b,v10.16b,v11.16b},[x1],#64
+ eor v12.16b,v12.16b,v4.16b
+ eor v13.16b,v13.16b,v5.16b
+ eor v14.16b,v14.16b,v6.16b
+ eor v15.16b,v15.16b,v7.16b
+ st1 {v12.16b,v13.16b,v14.16b,v15.16b},[x0],#64
+
+ ld1 {v12.16b,v13.16b,v14.16b,v15.16b},[x1],#64
+ eor v16.16b,v16.16b,v8.16b
+ eor v17.16b,v17.16b,v9.16b
+ eor v18.16b,v18.16b,v10.16b
+ eor v19.16b,v19.16b,v11.16b
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64
+
+ shl v0.4s,v31.4s,#1 // 4 -> 8
+ eor v20.16b,v20.16b,v12.16b
+ eor v21.16b,v21.16b,v13.16b
+ eor v22.16b,v22.16b,v14.16b
+ eor v23.16b,v23.16b,v15.16b
+ st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64
+
+ add v27.4s,v27.4s,v0.4s // += 8
+ add v28.4s,v28.4s,v0.4s
+ add v29.4s,v29.4s,v0.4s
+ add v30.4s,v30.4s,v0.4s
+
+ b.hs Loop_outer_512_neon
+
+ adds x2,x2,#512
+ ushr v0.4s,v31.4s,#2 // 4 -> 1
+
+ ldp d8,d9,[sp,#128+0] // meet ABI requirements
+ ldp d10,d11,[sp,#128+16]
+ ldp d12,d13,[sp,#128+32]
+ ldp d14,d15,[sp,#128+48]
+
+ stp q24,q31,[sp,#0] // wipe off-load area
+ stp q24,q31,[sp,#32]
+ stp q24,q31,[sp,#64]
+
+ b.eq Ldone_512_neon
+
+ cmp x2,#192
+ sub v27.4s,v27.4s,v0.4s // -= 1
+ sub v28.4s,v28.4s,v0.4s
+ sub v29.4s,v29.4s,v0.4s
+ add sp,sp,#128
+ b.hs Loop_outer_neon
+
+ eor v25.16b,v25.16b,v25.16b
+ eor v26.16b,v26.16b,v26.16b
+ eor v27.16b,v27.16b,v27.16b
+ eor v28.16b,v28.16b,v28.16b
+ eor v29.16b,v29.16b,v29.16b
+ eor v30.16b,v30.16b,v30.16b
+ b Loop_outer
+
+Ldone_512_neon:
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#128+64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/ec/ecp_nistz256-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/ec/ecp_nistz256-armv8.S
new file mode 100644
index 0000000000..7462e6b1a3
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/ec/ecp_nistz256-armv8.S
@@ -0,0 +1,4242 @@
+#include "arm_arch.h"
+
+.text
+.globl _ecp_nistz256_precomputed
+
+.align 12
+_ecp_nistz256_precomputed:
+.byte 0x3c,0x4d,0x27,0xcc,0xf5,0x4a,0x4f,0x8f,0xe8,0xc8,0x04,0x68,0x09,0x4a,0x5b,0x80,0x9d,0x7a,0xe8,0x31,0x08,0x76,0x68,0x19,0x9f,0x08,0xb4,0x1f,0x32,0x43,0x89,0xd8,0x34,0xd3,0xf5,0xb7,0xb5,0xee,0x42,0x3e,0x91,0x01,0x06,0x7c,0xbf,0xd9,0x97,0x12,0xd3,0x1a,0xc9,0x04,0x8d,0x53,0x83,0x14,0x28,0xf0,0x8e,0x19,0xcc,0x91,0xe5,0x80
+.byte 0x14,0xd6,0xc1,0x8d,0x61,0x66,0x3b,0xa7,0x20,0x1e,0xe4,0x77,0xd7,0x66,0x05,0xfb,0x5c,0xa9,0x9a,0x7a,0xb2,0x30,0x50,0x28,0x87,0x80,0xfe,0xcd,0xe1,0xb3,0xff,0xa3,0x45,0x3c,0x7e,0x9b,0x08,0xc0,0xc1,0x9f,0x2e,0xad,0x7d,0x89,0x79,0x90,0x60,0xc6,0xac,0x17,0x64,0x59,0x4d,0xcf,0x56,0x7a,0xca,0x82,0xaa,0x6e,0x04,0x2f,0x1f,0x8b
+.byte 0xa9,0xdd,0xeb,0x91,0x5c,0x77,0x17,0x99,0x4e,0xc2,0x45,0x69,0x2e,0xcf,0x60,0xc6,0x3c,0xad,0x65,0x33,0x35,0x6f,0xe4,0xd0,0x37,0x1f,0xe2,0x2c,0x66,0x98,0x55,0xe3,0x66,0xa2,0xc6,0x21,0xce,0x63,0x59,0x2e,0xd2,0x2b,0x8a,0x5a,0xcd,0xee,0xa7,0xad,0xf6,0x8c,0x3f,0x44,0x6c,0x12,0x30,0x8d,0xca,0xea,0x46,0x8a,0x4c,0x96,0xf9,0x96
+.byte 0x18,0x10,0x4e,0x46,0xc4,0x3e,0xa0,0x94,0x26,0x9d,0x62,0xd2,0x4b,0xb0,0xbc,0x0b,0xd5,0x56,0xa5,0xd2,0xc1,0x2f,0x2d,0x15,0xd8,0xed,0x97,0x17,0xcb,0x32,0x67,0xc5,0x0f,0x7c,0xde,0xa8,0x8c,0x4d,0xa0,0xb8,0x2e,0xed,0x24,0xd5,0xd5,0x49,0xca,0x77,0x1f,0x48,0x3b,0x83,0x54,0xb2,0xe7,0x7e,0x7a,0xa7,0x5c,0xed,0x7f,0xa1,0x9f,0x05
+.byte 0xd4,0xd4,0x90,0x0d,0xae,0x37,0x4e,0xd1,0x8f,0xd1,0x0a,0xa7,0x63,0x5b,0xb7,0x65,0xcb,0xc8,0xba,0x29,0xec,0x35,0x53,0xb2,0xac,0x32,0xf4,0xb7,0x6a,0xb1,0x69,0xcf,0x56,0x14,0x7f,0xd6,0xc5,0xca,0x88,0x1d,0x49,0xcf,0xfd,0x1f,0xcc,0xb1,0x13,0x30,0x42,0xd0,0x1c,0x6e,0x38,0x8e,0xf9,0x40,0xe7,0xe8,0xd6,0x28,0x1a,0x75,0x31,0xf3
+.byte 0x30,0x46,0x3f,0xb5,0x8a,0x47,0x35,0x4c,0x6e,0xdb,0x26,0x1a,0x25,0xa3,0xd8,0x0b,0x1d,0x51,0x12,0x91,0x4c,0x11,0x76,0x83,0x19,0xad,0x2a,0x3e,0xb4,0x1c,0x3c,0xfc,0x14,0x20,0x84,0x58,0x7b,0xc3,0x94,0x68,0x60,0x5c,0x3f,0x7c,0x26,0xb5,0x75,0x41,0x0b,0xc2,0xec,0xf3,0x96,0x5b,0xbb,0x41,0x32,0x00,0x4e,0x68,0xeb,0xf1,0xd9,0x96
+.byte 0xe7,0x00,0xac,0xb0,0x1b,0x39,0x46,0xf1,0xc9,0x18,0x7d,0xb7,0xc4,0x42,0xbc,0x8b,0x09,0x3e,0xa9,0x97,0x2e,0xc6,0xf8,0x38,0xa3,0xe4,0x2c,0x52,0x5d,0x24,0xf7,0xc5,0x15,0xab,0x16,0x5e,0x46,0x2c,0xd8,0xd7,0x4d,0xb3,0xf2,0xfd,0xe4,0x75,0x3c,0x34,0x95,0xb9,0x8c,0x92,0x35,0x42,0x8b,0xc4,0xc8,0x6c,0xd4,0x1e,0x67,0x35,0xd3,0x6d
+.byte 0x79,0x85,0xff,0x74,0xbe,0x40,0x07,0x27,0x75,0x2c,0xea,0x04,0xcc,0xa2,0x72,0x80,0x97,0x5f,0xfe,0x8a,0x56,0x0f,0xf4,0x6d,0xa4,0x61,0x04,0x4b,0x5e,0xb4,0xe2,0xd8,0x87,0xb6,0xfd,0x3d,0x00,0x8a,0xa9,0xe4,0x62,0x5f,0x4f,0xec,0x1e,0x40,0x28,0x6b,0x21,0x0f,0x50,0x26,0x97,0xa0,0x25,0x8f,0x3e,0xf2,0x69,0xdc,0x36,0xe5,0xb8,0xdb
+.byte 0x01,0x7d,0xfb,0x73,0x7d,0x3e,0xf7,0x55,0x41,0x39,0xe0,0x33,0x0d,0xe3,0x4b,0x6b,0x7b,0x3e,0x6e,0xdc,0x7d,0x9a,0x6e,0x35,0xb0,0x38,0x13,0x92,0x80,0xa1,0xe6,0xbf,0x03,0x9d,0xb7,0x7f,0x55,0xce,0x46,0x3c,0x22,0xc7,0xfa,0xfb,0x18,0xba,0x06,0xa0,0x09,0x78,0x3f,0xc0,0x79,0x5f,0xe6,0x6a,0x29,0xaf,0xd1,0xc7,0x84,0xa7,0xed,0xb9
+.byte 0xb6,0x82,0x81,0xc1,0x53,0xee,0x00,0x34,0xa8,0x81,0xdf,0x5a,0xd3,0x07,0x7e,0x2e,0x17,0x40,0xa1,0x2b,0xf4,0x2a,0x1f,0x9a,0x67,0x75,0x73,0xa8,0x58,0x65,0x17,0xdf,0xf1,0x84,0x76,0xc5,0x8d,0x48,0x93,0xe1,0x28,0xa5,0x73,0x10,0x6e,0x9e,0x39,0x03,0x69,0x52,0xdf,0xf9,0x46,0x7c,0x5b,0xf3,0x5b,0x9a,0x63,0xd9,0x4f,0xf5,0x8e,0x73
+.byte 0xed,0x33,0x7d,0x23,0xb9,0x6c,0x3c,0x9b,0xa7,0xcf,0x7f,0x34,0x6f,0x97,0xe2,0xfe,0x0a,0x8b,0xe1,0x86,0x83,0x91,0x2e,0xdd,0x6b,0xb1,0xbf,0xa6,0x92,0x4f,0x30,0x79,0x68,0x91,0x3e,0x06,0x17,0xe9,0x0b,0x25,0x07,0xa6,0x88,0x91,0x6c,0x6e,0xc8,0xd8,0xdc,0x68,0x5e,0x45,0xf2,0x55,0xef,0x56,0x38,0x29,0xd0,0x89,0x40,0x58,0x51,0x9f
+.byte 0x5f,0xa4,0x08,0xc6,0x94,0x34,0xd2,0x6f,0x59,0x0f,0x6e,0xca,0x85,0x7f,0x56,0x3f,0xac,0x8f,0x25,0x0f,0x47,0xe3,0x9e,0x40,0xed,0xd8,0xae,0x30,0x0d,0xb4,0x47,0x40,0x4b,0xa3,0x23,0x1b,0x7f,0x0f,0xff,0xdf,0x6f,0x1d,0x87,0xb2,0x94,0xa0,0x36,0xbb,0x53,0x13,0x1e,0xaf,0x92,0xf8,0x07,0x95,0xc7,0xe4,0xa8,0x41,0xa9,0xed,0xf0,0x08
+.byte 0xfc,0xc1,0x4a,0xed,0x9a,0x4f,0x13,0xc5,0xed,0x8a,0x95,0xf5,0x69,0xf7,0xee,0x75,0xb6,0x4d,0xba,0x8f,0x65,0x23,0xe8,0x50,0x9e,0x7a,0xd7,0x28,0x3a,0x49,0xe7,0x4c,0x7c,0xc6,0x64,0xbd,0x8c,0x17,0x14,0x0b,0xb5,0xe3,0xb4,0xab,0x0b,0x9a,0xa9,0x29,0x84,0xaa,0xba,0x69,0xc4,0x2e,0xbf,0xca,0x57,0x0d,0xd3,0x36,0x21,0x61,0x00,0x13
+.byte 0x95,0xe3,0xf8,0xa6,0x64,0x74,0x02,0xb5,0xbf,0x86,0x07,0xde,0x67,0x48,0x23,0xe0,0x24,0x96,0x3a,0x86,0xb2,0xfa,0xa7,0x75,0xb4,0x26,0x42,0xcb,0x96,0x4e,0xf7,0x90,0xae,0xa5,0xe4,0xd0,0x45,0x31,0xe7,0x0f,0xe0,0xcb,0xbf,0x94,0x94,0x33,0x4f,0x65,0x04,0xfb,0xc0,0xc4,0x3f,0x51,0xa5,0xf3,0xea,0xc8,0xd5,0x23,0x66,0xe0,0x48,0x09
+.byte 0xba,0x6a,0x27,0x50,0xec,0xae,0xd2,0x2a,0xe6,0xf9,0xe4,0xde,0x35,0x6e,0xcc,0x82,0x76,0xfc,0x36,0x16,0xe1,0x9f,0xc7,0x0d,0xc1,0xc9,0x6a,0x23,0xbe,0xa1,0x3c,0xfd,0xce,0xa7,0x2e,0x91,0x36,0x23,0x5a,0x20,0xdf,0x55,0xc5,0x91,0x32,0x5c,0x62,0x49,0xe7,0x8b,0x0b,0x0e,0x9c,0x2e,0xee,0x1f,0xfe,0xca,0x00,0xfc,0x55,0xd7,0x9c,0x0a
+.byte 0x75,0xaa,0xb0,0x46,0x90,0x55,0x2b,0x46,0xab,0x98,0x9d,0xab,0x0e,0x12,0x03,0x58,0xf1,0x4a,0x68,0x59,0x74,0xc9,0x37,0x6d,0x6f,0xe6,0xd3,0x73,0xf1,0xa3,0xdd,0xbe,0x85,0xca,0x74,0xc6,0xb6,0x51,0x6f,0x83,0x6f,0xa1,0x80,0x00,0x00,0x78,0x0a,0xa7,0xff,0xa7,0xe2,0x2e,0x5f,0x4f,0x31,0xbb,0x1b,0x99,0x21,0x33,0x59,0x6e,0x03,0x38
+.byte 0x10,0xd9,0x98,0xf2,0x0c,0xad,0x08,0x6b,0x00,0x49,0xb5,0x5e,0x11,0x60,0x70,0x49,0xff,0x79,0xac,0xba,0x30,0x3d,0x69,0x9f,0xaf,0xfb,0xd7,0xeb,0xe2,0xcd,0x0d,0x97,0xb9,0x94,0xc8,0x6e,0x06,0x3b,0x64,0x80,0x71,0x8f,0x81,0xb0,0x58,0xe0,0xc7,0xbd,0x27,0x6a,0xd4,0xb7,0xd9,0x6c,0xc1,0x44,0x38,0xe1,0x36,0xbc,0x0a,0x33,0x26,0x01
+.byte 0x25,0x90,0xbc,0x0a,0xc2,0xa3,0xbb,0xfc,0xeb,0x0b,0x1a,0x38,0x98,0x26,0x93,0xf5,0x2d,0x29,0x41,0x83,0x3b,0xba,0x40,0x46,0xf3,0xf6,0xfd,0x53,0xb9,0x7a,0x60,0x01,0x8a,0x8d,0xb4,0x57,0xd8,0xf3,0x36,0x72,0x22,0x2f,0x59,0xd3,0x7f,0x25,0xf2,0x05,0x61,0xfa,0x18,0x28,0xac,0xd5,0x14,0x00,0xaf,0x8b,0x7c,0x39,0xb5,0xa2,0xcb,0x1e
+.byte 0x62,0x14,0xcb,0x10,0x76,0x17,0x23,0x2c,0xc8,0x25,0xac,0x37,0x9e,0x83,0x81,0x83,0xfe,0x2e,0x2c,0xd2,0x3f,0xf8,0x58,0x2b,0xf1,0x7f,0x4f,0xe1,0x17,0xc7,0xf7,0xad,0x57,0x67,0xc2,0x57,0x77,0x2e,0xfb,0xf2,0xce,0xa9,0x74,0x81,0x47,0xf8,0x5a,0x88,0x76,0xb1,0x43,0x75,0xc8,0xc4,0xc8,0x60,0x1e,0xd7,0xd1,0x1c,0xce,0x89,0x82,0xc6
+.byte 0x77,0x8d,0x87,0xe8,0xd0,0x5b,0x0c,0xf0,0x44,0x48,0x8d,0xee,0x55,0xc6,0xe4,0x2c,0x2c,0x41,0x75,0x5d,0x5a,0xd2,0xa3,0x1d,0x32,0x85,0x08,0xcf,0x03,0x3a,0x3c,0xfe,0x65,0x75,0xef,0xd2,0xa6,0x22,0x16,0x66,0x39,0x30,0x05,0xe3,0x57,0xab,0x71,0x6d,0x28,0xd5,0x2f,0xc6,0xa8,0x25,0x46,0x14,0xfd,0x7e,0xa2,0x67,0x7e,0x20,0x91,0xc2
+.byte 0x2b,0x03,0xdd,0xac,0xaa,0x1a,0xb5,0x2a,0x04,0xd6,0x15,0x9d,0x3f,0x54,0x24,0x7c,0x75,0xab,0x77,0xd9,0x6c,0x85,0xa2,0xf9,0x33,0xeb,0xeb,0xc0,0x27,0xcd,0x9d,0x58,0xae,0xa3,0x34,0x10,0xae,0x85,0x7d,0x4c,0x15,0x4c,0x90,0x46,0xe0,0x5b,0xec,0xa7,0xb2,0x68,0x85,0x01,0xed,0xf9,0x4a,0x85,0xe3,0xb6,0xea,0xe2,0x53,0xc0,0x32,0x83
+.byte 0x73,0x05,0x77,0xac,0xb5,0x96,0xaa,0xf0,0x9c,0x2c,0xa4,0xd2,0xd4,0xbf,0x74,0x2f,0x39,0x47,0x22,0x99,0x50,0x06,0x5f,0xcb,0x99,0xc5,0xc9,0x2e,0x70,0xd6,0x68,0x6a,0xc4,0x73,0x41,0xcb,0x8b,0xfd,0x23,0x98,0x11,0x59,0xad,0x20,0x8a,0x0d,0xaf,0xaa,0xd0,0xe2,0xeb,0x32,0x8b,0x6f,0x0e,0x43,0x12,0xe3,0x27,0x8f,0xf6,0xa4,0x76,0x0b
+.byte 0xfb,0x22,0xad,0xda,0x1c,0x0a,0x3e,0x90,0xc0,0x7d,0xf3,0x09,0xbc,0x17,0x33,0xef,0xf1,0xf2,0x84,0x80,0x2a,0x0b,0x82,0xd7,0x95,0xc7,0xd2,0x08,0x4a,0xf4,0xf5,0x6d,0x09,0x06,0x8e,0xe4,0x74,0x63,0x8f,0x09,0xca,0xe2,0xd9,0x0e,0x1e,0x03,0x20,0x1b,0x4c,0xfb,0x1d,0x5a,0x2e,0x28,0xeb,0x84,0x82,0x6f,0x97,0x6f,0xcd,0x7a,0xc3,0xa7
+.byte 0x79,0x73,0x66,0x0c,0x94,0xd5,0xf4,0x8f,0x2c,0x73,0x1f,0x24,0xbc,0x17,0xee,0xd5,0xb0,0xa6,0xb8,0x04,0x6d,0x6a,0xd0,0x61,0xe3,0x1a,0x49,0x97,0x94,0xc5,0x8e,0xbc,0xac,0x5b,0x0b,0x0a,0xc5,0x74,0x06,0x89,0xee,0xc2,0xb7,0x5f,0x1b,0xa1,0x6b,0x1a,0xff,0xed,0xda,0x90,0x91,0xc1,0x0d,0x6a,0x06,0xd6,0xcb,0x02,0x71,0x17,0x95,0x7d
+.byte 0xc6,0x3b,0x7e,0x6b,0xc8,0x73,0x03,0x0d,0x6b,0x8f,0x73,0x56,0x59,0x2e,0x09,0x23,0x4e,0xda,0xfc,0x4e,0xfc,0xa4,0x42,0x15,0x2e,0x10,0x6a,0x97,0x48,0x3c,0xb4,0xa4,0x0c,0x64,0x21,0xc3,0xeb,0x6c,0xac,0x27,0x4f,0x43,0x94,0x91,0x78,0xdc,0xfd,0xad,0x2b,0xa7,0x43,0x42,0xb0,0x51,0xdd,0x63,0xcc,0xcd,0xb7,0x15,0xfa,0x13,0x8d,0xc7
+.byte 0x55,0x3a,0x74,0x17,0x23,0x36,0x3e,0x23,0xe1,0x42,0x90,0xe1,0xb7,0xc7,0xda,0xb7,0x57,0xeb,0xc3,0xfb,0x62,0x58,0xbf,0x31,0x2a,0xfb,0xc7,0xdb,0x3d,0xfc,0x87,0x32,0xb1,0x3e,0xe5,0x3d,0x94,0x3d,0x86,0x32,0x61,0xfe,0x19,0xd2,0x32,0x31,0x8b,0x43,0xdb,0xab,0xa4,0xe5,0x34,0xc8,0x30,0xae,0x8c,0x02,0x53,0x99,0x35,0xb4,0x56,0x38
+.byte 0x37,0xcf,0xff,0xb0,0x05,0x21,0x12,0x65,0xc4,0xb3,0x9c,0x83,0x95,0x12,0xd3,0x03,0x7a,0x80,0x97,0x5b,0x67,0x33,0x27,0xfc,0x43,0xf2,0xf7,0xaa,0x60,0xb6,0xfc,0x55,0x44,0x30,0xa3,0x4a,0xa3,0x60,0x31,0xf7,0x01,0xfa,0xb0,0x8d,0x82,0x29,0xa7,0x03,0xb7,0x7e,0x3f,0xe5,0x66,0x26,0xb7,0x51,0xcf,0x8d,0xdd,0x6f,0x83,0x39,0xfc,0x9b
+.byte 0xa5,0x3d,0xb6,0x41,0x89,0x54,0xc3,0xb2,0xf0,0x24,0x64,0xcb,0x53,0xfd,0x0a,0x91,0x6c,0x6f,0x28,0xfe,0xc1,0xe9,0x17,0x2e,0x65,0x55,0x2e,0xf2,0x48,0x52,0xb1,0x69,0xf0,0xdd,0x42,0xd5,0xdf,0x7c,0x36,0x75,0xdb,0x5b,0x3d,0xa9,0x6d,0xa4,0xeb,0x47,0x4f,0x2b,0x5c,0xd0,0x30,0xee,0xa7,0x74,0x6a,0x64,0x8a,0xbc,0x9b,0xe5,0x82,0x56
+.byte 0x76,0xe4,0x3f,0xf5,0x05,0x59,0x19,0x1e,0x80,0x47,0xf1,0x77,0xac,0x32,0x43,0x80,0x0a,0x1b,0x28,0xb6,0xf4,0xe8,0x7c,0x2f,0xeb,0xa8,0x4b,0x6a,0x59,0xb5,0xf8,0x77,0x68,0xd4,0x86,0x6c,0x87,0xdc,0xc4,0x00,0x4f,0xce,0xdb,0xf6,0x34,0xc3,0x74,0x02,0x08,0xdb,0x0d,0x34,0x8d,0xea,0x49,0x4a,0x30,0x5f,0x1b,0xcd,0xa6,0x3a,0x34,0x94
+.byte 0x5f,0x32,0x6a,0x62,0x96,0x4b,0x51,0x89,0x30,0xc9,0x90,0xdf,0x77,0x73,0x0e,0x3c,0x5c,0xbd,0x5c,0xee,0xd9,0x77,0xea,0x23,0x42,0xaa,0xa5,0x6b,0xf9,0x8c,0xc4,0x70,0x68,0xdd,0x0b,0x65,0xa3,0xc7,0xe4,0x7b,0x0a,0x89,0x85,0x25,0x7d,0x84,0x99,0x39,0xe6,0xb8,0xbe,0x7f,0x31,0x0f,0x84,0x0c,0x98,0x72,0xab,0x4c,0x44,0xb0,0xa4,0x83
+.byte 0x90,0xbb,0x93,0x73,0x07,0x07,0xba,0x63,0x5b,0x61,0x70,0xe1,0x84,0xae,0xaa,0xd6,0xa3,0x5a,0x54,0xd1,0xea,0xc7,0x2c,0x7b,0x67,0x4b,0x8a,0x7f,0x66,0x28,0x8d,0x22,0xec,0x82,0x64,0x69,0x63,0xf0,0x53,0x2d,0x10,0x9c,0x9c,0x34,0x4f,0xc6,0x96,0x40,0xdb,0xce,0x0e,0xf7,0x3a,0x8a,0xee,0x3f,0x32,0x5f,0x2b,0x0c,0x4a,0xbc,0x63,0xfb
+.byte 0x18,0xf6,0x26,0x57,0xc9,0x13,0x13,0xb7,0xe0,0xcc,0x3e,0x4e,0x73,0xfa,0xe2,0x54,0xc1,0x67,0xfe,0xe2,0xec,0xfd,0xaf,0xf9,0x96,0x99,0x9f,0xe9,0xe2,0xd0,0x94,0x39,0x33,0xc9,0xca,0x35,0x27,0xad,0x58,0x46,0x98,0x64,0x17,0x5f,0xe9,0xce,0x4b,0xc8,0xab,0x0d,0xd2,0x88,0xec,0xbb,0x5c,0xba,0xc1,0x30,0x4c,0xd4,0x99,0x0d,0x07,0x95
+.byte 0x0a,0xa5,0xeb,0xa6,0x10,0x4b,0x4d,0x77,0x14,0x76,0x88,0x43,0x7f,0x6b,0x5d,0x9b,0x87,0x1d,0x6b,0x5d,0xb9,0x04,0xa9,0xc7,0x28,0x18,0x70,0xa1,0x99,0xbc,0x99,0xf5,0xf1,0x71,0xa9,0x3a,0xb6,0xe5,0x98,0x98,0x8f,0x7a,0x6c,0xda,0x1a,0x63,0x0e,0xf1,0xe8,0x10,0xa3,0x7c,0x64,0x7e,0xde,0x2a,0x59,0x1b,0x04,0xca,0x69,0x8e,0xba,0x2f
+.byte 0x56,0xe1,0xa7,0xab,0x4f,0xe4,0x9d,0x49,0x33,0x9e,0x4e,0x5b,0xe1,0x58,0xc4,0x3f,0x99,0x5a,0x69,0x00,0xe5,0x5f,0x85,0xcb,0x62,0x80,0x5e,0x3d,0x88,0x0a,0x32,0x42,0xc1,0xf9,0x6a,0xa0,0xeb,0x65,0x2f,0x17,0x62,0x25,0x96,0x50,0xa2,0x6e,0xd6,0xdf,0x09,0xb7,0x1e,0x68,0xb2,0x10,0x2b,0xf3,0x9e,0xb2,0x67,0x75,0x9b,0xe3,0x76,0xfe
+.byte 0x95,0xbe,0x83,0xcb,0xba,0x77,0x5b,0x2d,0x5f,0xdd,0x94,0xbb,0x0e,0x5d,0x83,0xa2,0xe7,0x48,0x4c,0x84,0x86,0x41,0x47,0x4b,0x96,0x24,0x89,0xa8,0x20,0x04,0xa5,0xef,0x8e,0xb6,0xeb,0xcd,0x3c,0x77,0xc5,0x65,0x5c,0xff,0xa6,0x0d,0x2b,0x58,0x21,0x5a,0x11,0xe2,0x24,0x64,0x1c,0xd6,0x18,0x9a,0xac,0x3f,0x42,0x0e,0xeb,0x32,0x3e,0xed
+.byte 0xce,0x61,0xc9,0xe4,0xe7,0xd3,0x3f,0x53,0xa4,0x80,0x2b,0x1c,0xc0,0x99,0x63,0x52,0x93,0x5e,0xdc,0x78,0xe2,0x35,0x9e,0xb2,0xb4,0x1d,0x09,0xd1,0x5c,0x1c,0x4e,0xdb,0x3a,0x5d,0x8c,0x94,0x7d,0xfe,0x63,0xf2,0xa3,0xe9,0x61,0x73,0x78,0xc1,0xd9,0x17,0x5e,0x9a,0x73,0x58,0xc3,0xe7,0xa0,0x1f,0x2a,0x62,0x15,0xf8,0xdb,0xbb,0x38,0x80
+.byte 0x57,0xd3,0x1f,0x4c,0x4a,0x20,0x30,0xa9,0x7a,0x78,0x61,0xd9,0x90,0xb7,0x4f,0xd6,0x46,0x72,0xe7,0x41,0xb2,0xbb,0xfb,0x50,0xfe,0xe1,0xba,0x3e,0x73,0x2f,0x81,0x6d,0x2b,0x0b,0x90,0xbd,0x8a,0x3b,0x23,0x88,0xa2,0x7d,0x62,0x87,0x96,0xc9,0xcc,0x66,0x28,0x89,0xa7,0x29,0x41,0xd2,0xc5,0x5b,0xdb,0xc4,0x0c,0xbb,0x19,0x4e,0xd5,0x12
+.byte 0x53,0x48,0x5c,0xf2,0x9b,0x62,0xd0,0xa3,0x77,0x40,0x85,0x12,0x2b,0x2d,0x52,0x1b,0x31,0xbd,0xe9,0x1c,0xd4,0x87,0xa4,0xd7,0xc9,0x14,0xb7,0x39,0x66,0x8c,0xfe,0x3e,0x83,0x00,0x01,0xae,0x44,0x2d,0x7d,0xa1,0xda,0x66,0xb0,0x66,0xcb,0x62,0x55,0x9f,0x92,0x80,0x4e,0x8d,0x7f,0x70,0x95,0xc2,0xf2,0x1b,0xe9,0x35,0xf8,0x42,0x04,0x65
+.byte 0xf2,0x36,0x4c,0x96,0x30,0xd3,0x47,0x9d,0xb7,0x2b,0x76,0xac,0x75,0xb5,0xb8,0xf1,0x7d,0xa2,0x36,0xef,0x9d,0xa7,0x60,0x51,0x8d,0xcf,0x00,0x3d,0xdb,0xcc,0xe9,0xe2,0xc4,0x7b,0x3a,0xeb,0x2b,0xc3,0xd8,0x0b,0xb0,0x58,0x41,0xa0,0x47,0xab,0x07,0xf5,0x7c,0x9e,0x0b,0x7a,0x16,0x8f,0xb4,0xca,0x09,0xed,0x84,0xa1,0xfa,0xdc,0x7c,0x3c
+.byte 0xdd,0x2f,0xb0,0x2d,0xeb,0x93,0x28,0xf5,0x1e,0x0c,0x1a,0x0c,0x35,0x27,0x40,0xf2,0x22,0x66,0x2d,0x82,0xf2,0x94,0x03,0xa5,0x4b,0x84,0x92,0x1d,0x98,0xd5,0xd9,0x09,0x6a,0xfd,0x65,0xe5,0xa1,0x0e,0xe2,0xd9,0xb6,0xd1,0xba,0xbf,0xc7,0x42,0x22,0x39,0x83,0xbf,0x37,0xf6,0x80,0xc2,0xea,0xdf,0xb9,0x33,0xa0,0xaf,0xd7,0xe3,0x70,0x9a
+.byte 0x5c,0xf8,0x1a,0x47,0x2b,0xb5,0xdd,0x15,0xe3,0x08,0xc8,0x37,0xe3,0xc2,0x25,0x87,0x0e,0x3c,0xc5,0xae,0x61,0xa4,0x4a,0x56,0x50,0x08,0x58,0x68,0xa3,0x4a,0x28,0x08,0xef,0x92,0xd5,0x13,0x50,0x09,0x76,0x34,0x47,0xae,0xa8,0x7f,0xa5,0x2b,0x13,0xb7,0x5a,0x96,0x65,0x62,0xf2,0xaa,0xb4,0x4b,0x2a,0xad,0xea,0x2c,0x0d,0x1e,0x97,0x82
+.byte 0xe4,0x6f,0xfe,0xf4,0x88,0x14,0x7b,0xba,0x45,0xbe,0x61,0x56,0xd2,0x37,0x1b,0x65,0xb8,0x0b,0x77,0xcb,0x3c,0xfe,0x9f,0xe3,0x39,0xc5,0xfb,0x2a,0x18,0x9b,0x60,0x99,0xd5,0x6f,0x52,0xfe,0xd8,0x04,0x88,0x1c,0x9a,0x50,0xe5,0x3b,0x33,0x3f,0xca,0xc5,0x5b,0x9c,0x5f,0x35,0x13,0x65,0xa6,0x21,0x78,0x19,0xeb,0xff,0x35,0x70,0x81,0xaf
+.byte 0x19,0x23,0x61,0xd6,0xeb,0xff,0xa6,0x9e,0x5d,0x3f,0x7f,0x89,0x2e,0x22,0xa4,0x0b,0x9c,0x4f,0xa9,0xff,0xbb,0x23,0x29,0xa1,0xf4,0x8a,0xb7,0x4b,0xfb,0xbf,0xeb,0x0a,0x47,0x87,0x78,0x2b,0x20,0x38,0x82,0xab,0x7e,0x2c,0xdc,0x08,0x2b,0xb4,0xae,0xd8,0x64,0x44,0x1a,0xdf,0x21,0x62,0x27,0xf2,0x61,0x63,0x37,0xad,0xd4,0x06,0x4e,0xae
+.byte 0xba,0xeb,0x08,0xfa,0xe5,0xad,0x5d,0xcf,0xce,0x38,0xe5,0xca,0x74,0x83,0x42,0x4b,0xe8,0x8f,0xfb,0xff,0x83,0x4d,0x27,0x88,0x43,0x62,0xdd,0x80,0xa2,0x06,0x98,0x48,0x58,0x6f,0x54,0x16,0x6f,0xbf,0x81,0x36,0xc8,0xf3,0xea,0x4b,0xf7,0x5a,0x7b,0xb7,0xf4,0xa4,0x5e,0x22,0x52,0xe7,0x9e,0xb1,0xb6,0x7a,0xa8,0x22,0xee,0x68,0x82,0x8f
+.byte 0xe4,0xcb,0xad,0x71,0xef,0x53,0xf2,0x7d,0xed,0x91,0x9e,0xf6,0x90,0x9e,0x54,0x19,0x30,0xaf,0x4a,0x17,0xc0,0x6a,0x9c,0x49,0x12,0x8b,0x6f,0xc7,0x47,0x1e,0xa2,0x64,0x28,0x1f,0x0c,0xd3,0x3e,0x59,0x66,0x8c,0x2e,0x11,0x52,0x6c,0x69,0x66,0x10,0xfb,0x27,0xe6,0x1c,0xae,0x6f,0x44,0x87,0x86,0x0d,0x3e,0xd3,0xa0,0x80,0xef,0x30,0xb9
+.byte 0xb8,0xd7,0x47,0x84,0x68,0x2b,0xf2,0x32,0x7b,0x89,0x93,0xd2,0x83,0x56,0x35,0xc3,0xbf,0x5c,0x24,0xec,0xad,0x2d,0xa4,0x49,0x63,0x89,0xc6,0xf9,0x24,0x51,0x1c,0x9b,0xd1,0xcb,0x30,0x82,0xda,0xb3,0xa7,0xe1,0x4d,0x96,0xd0,0x44,0x44,0x1d,0x4e,0xd7,0x7d,0x7a,0x51,0x2e,0x2f,0xc4,0x9f,0xdb,0x06,0x53,0xfc,0x51,0x56,0xe5,0xb9,0x6b
+.byte 0x4a,0x2c,0x3e,0x62,0xc5,0x9c,0x42,0xe3,0xaf,0x3a,0x0f,0x0e,0x74,0x29,0x66,0x70,0x75,0x2a,0x06,0xd4,0x0f,0x0c,0xfd,0xea,0xcc,0x39,0xd0,0xa7,0x47,0x75,0x92,0x44,0x09,0xa2,0x3c,0x4e,0xad,0xaa,0xc4,0xc6,0xf9,0x35,0x82,0x23,0x25,0x43,0x94,0x26,0x14,0xde,0xf1,0xb9,0xb8,0xe0,0x75,0xe0,0x48,0x70,0x8a,0xc6,0x3c,0x72,0x98,0x72
+.byte 0x8b,0x15,0x58,0x17,0x73,0x29,0x67,0x21,0x56,0xc4,0x25,0x17,0x68,0xbe,0xd7,0x36,0x05,0x4b,0x58,0xa2,0x1b,0x64,0xe5,0x11,0x96,0x5a,0x3b,0xa6,0x90,0xb6,0x2d,0x7e,0x55,0xbb,0x31,0x93,0xe7,0xcc,0x2e,0x74,0xb6,0x9b,0x4d,0x04,0xc5,0x45,0x9b,0x0b,0x26,0xef,0x61,0x23,0x3d,0x7e,0xee,0x01,0x57,0xfa,0x77,0x12,0x47,0x64,0xac,0x8f
+.byte 0x25,0xbe,0x8e,0x2e,0x68,0x11,0x95,0xf0,0x1a,0xd2,0x3d,0x66,0xc1,0xdb,0x97,0x9e,0xbb,0xba,0xc1,0x66,0xa4,0xb5,0x71,0x01,0xee,0xf5,0xbb,0x1e,0x9f,0x41,0xfc,0x40,0x74,0x26,0xf7,0xc6,0x2c,0x9c,0x1c,0x59,0xce,0xcf,0x18,0x17,0x81,0x5d,0xd4,0xe3,0xd8,0x46,0x62,0x9e,0x97,0xb1,0xca,0xac,0x01,0x3e,0xf8,0x96,0xa2,0xee,0xe0,0xf8
+.byte 0xf3,0x2d,0xe9,0xd2,0x1f,0x9f,0x41,0xbb,0x2f,0xe5,0x64,0x6d,0x5b,0xe7,0x47,0x0e,0x83,0x7b,0x08,0x5e,0x29,0x35,0x2f,0x75,0x31,0x44,0x4c,0xb7,0x61,0xa4,0x03,0x2e,0x15,0x94,0x7a,0xa0,0x46,0x31,0x7b,0x43,0xd9,0x14,0xa3,0x34,0x0c,0x83,0x93,0x75,0x8e,0x3a,0x1c,0xc3,0xe1,0x36,0x18,0x96,0x7a,0xfb,0x77,0xad,0xbb,0xe9,0x0d,0x4b
+.byte 0x21,0x04,0x2e,0xdd,0x7a,0x63,0xc9,0x60,0xb1,0x9b,0xad,0xde,0x1f,0x65,0x8a,0x58,0x18,0x84,0x95,0xa9,0xac,0x3a,0xac,0xcb,0xb7,0xa9,0xeb,0x0c,0x7c,0x3a,0x98,0x9a,0x3f,0x56,0x23,0x51,0x58,0x59,0x4e,0xf5,0x57,0x60,0xe6,0x9d,0xf8,0xf7,0xed,0x9d,0x81,0x14,0x68,0xbe,0xaf,0x19,0xe5,0xb5,0x9b,0x5f,0xe4,0x51,0x44,0x4b,0x23,0x42
+.byte 0xdd,0x92,0x1a,0xe5,0x7e,0xef,0x77,0xbe,0x88,0x77,0x1e,0x8a,0xbd,0x2a,0x77,0xb1,0x0d,0x1b,0xe3,0x8a,0x7f,0x15,0x71,0x93,0xc9,0x5f,0x78,0x2d,0x77,0x9b,0x0c,0xad,0x76,0x3c,0x6b,0xe2,0x15,0x8e,0xe1,0x5e,0x1d,0x90,0xa5,0xd6,0xc7,0x55,0x5d,0x52,0xf7,0xcc,0x82,0x9b,0xdc,0x1d,0x80,0xa4,0xc7,0xbe,0x7c,0x4f,0xda,0x81,0x91,0x78
+.byte 0x88,0x0e,0x31,0xde,0x87,0x4c,0xdc,0x84,0x9a,0x65,0x89,0xfa,0x22,0x3e,0xde,0x3b,0x7f,0x7f,0x9b,0x3f,0x3e,0xda,0x13,0x31,0x59,0x7b,0x08,0x48,0x39,0x37,0xfd,0x1a,0x4f,0xa3,0x12,0xba,0xe5,0xd6,0xfa,0xa3,0x59,0x0b,0x3b,0x7d,0xde,0xc0,0x51,0xce,0x92,0x6b,0x3d,0x4b,0xd2,0xa4,0x68,0xc2,0x32,0x2d,0x01,0xbd,0x66,0x98,0x8f,0xa0
+.byte 0x86,0xfb,0x08,0x36,0xa9,0xd4,0x3b,0x7b,0x01,0x2d,0xaa,0x8c,0x64,0x19,0xa6,0x62,0x24,0x92,0x5e,0xc5,0x02,0x17,0x8e,0xf0,0x88,0xe9,0xd1,0x8b,0x69,0xda,0xed,0x9c,0x60,0x32,0xab,0xc0,0xbc,0x84,0x64,0x6e,0x32,0xb2,0xcd,0x24,0xf6,0xb2,0x9d,0xf5,0xf5,0x71,0xe2,0x01,0xbc,0x77,0x6a,0x5b,0x26,0x56,0xf7,0x04,0x84,0xff,0x7c,0xa4
+.byte 0xe8,0xa8,0x82,0x6c,0x40,0x24,0x93,0x3c,0x6e,0x7d,0x0d,0x22,0xd0,0xe4,0xef,0xc4,0x4e,0x26,0x66,0x61,0x75,0xe9,0x06,0x69,0x06,0xfd,0x97,0x68,0x96,0x67,0xec,0x96,0x09,0x73,0xe4,0x0a,0x3e,0xaa,0xb8,0x25,0x77,0x00,0x91,0x7a,0x2e,0xc8,0x81,0x75,0x78,0xb7,0xa5,0x27,0x55,0xf2,0xcf,0x9a,0xab,0xab,0x51,0x0a,0x65,0x47,0xbf,0x10
+.byte 0xd2,0x19,0x78,0x6b,0x35,0xf4,0xef,0x12,0x2b,0x5f,0x0c,0x28,0x7c,0xe8,0x64,0x55,0x2f,0x26,0x85,0x91,0x7a,0x9d,0x48,0x76,0x12,0x14,0x2d,0x4a,0x8a,0xd6,0xfa,0x7b,0xf9,0xc7,0x24,0x45,0xf6,0xbd,0x47,0xab,0xc6,0x4b,0x9e,0x39,0x77,0x57,0x04,0xa8,0x4d,0x43,0x99,0x5c,0xb1,0x3d,0xc2,0x4e,0xc5,0x17,0x66,0xc4,0xb6,0xdd,0x92,0x80
+.byte 0x85,0x3b,0x07,0x63,0x16,0x5f,0x67,0x76,0x9b,0xb5,0x8e,0xca,0x97,0xbb,0xf4,0x20,0xd0,0x4d,0x7b,0xd0,0xa3,0x74,0x6f,0x8a,0x68,0xc7,0x31,0x78,0x1b,0x72,0x45,0xa4,0xc4,0xf8,0xf8,0x26,0xa8,0x4d,0x08,0x2f,0x7b,0x3d,0xa0,0x2a,0xb5,0x65,0x27,0xc2,0x36,0x13,0x2d,0x8d,0x83,0xeb,0xf4,0x08,0x26,0x41,0x8b,0x32,0xf3,0x09,0x70,0x70
+.byte 0x5d,0x8a,0xcc,0xb8,0xe9,0xf7,0x08,0xdf,0x5f,0x4a,0xb8,0x8a,0xb7,0x1b,0xad,0xe2,0xc3,0x39,0x59,0xe0,0x7f,0xd0,0x66,0x7b,0x99,0x5a,0xde,0x52,0xe2,0x1f,0x47,0xc2,0x63,0x74,0x7a,0xa5,0x88,0xc3,0x24,0x70,0x4a,0x7d,0xdd,0xa4,0xe6,0xf8,0xfd,0x5c,0xfa,0x8c,0x4c,0x0f,0x52,0x95,0xf3,0x2c,0x76,0x47,0x7a,0xe8,0xdb,0xe0,0x9b,0x49
+.byte 0x88,0x5b,0x87,0x5a,0xd1,0x07,0x24,0x06,0x83,0x3b,0x25,0x23,0xe7,0xaa,0x79,0xef,0x74,0x02,0x12,0xfe,0x47,0x5c,0x77,0x73,0xf7,0x2e,0x4b,0x58,0x3b,0x60,0x7b,0x91,0x2f,0x0d,0xb4,0x6d,0x00,0x80,0x19,0xaa,0x88,0xbc,0xb2,0x7b,0xd9,0xb7,0xdd,0x32,0x47,0x62,0xf5,0x0f,0x46,0x95,0x4c,0x6c,0x01,0x67,0xfb,0xe4,0x2b,0xac,0x95,0x84
+.byte 0x25,0x0a,0xe5,0x4c,0x2d,0x4a,0x6e,0x77,0xfd,0xeb,0xe1,0x53,0xc9,0x2e,0x70,0x01,0x32,0x05,0x6d,0xc5,0xc9,0x5d,0x90,0xca,0x56,0xd1,0xd8,0x40,0x2a,0x51,0x4d,0x95,0xc3,0x57,0x8b,0xdd,0x62,0x9c,0x69,0xd1,0x03,0x89,0x95,0x38,0x2c,0xc1,0x6d,0x41,0xf2,0xc3,0xa2,0x9c,0x43,0xea,0xf1,0x02,0x00,0x56,0x46,0xbb,0x87,0x35,0x40,0x0e
+.byte 0x18,0x51,0x29,0x39,0xbb,0x6d,0x15,0xf2,0xcd,0x54,0x23,0x95,0x69,0xdc,0x0a,0xb2,0x26,0xd9,0x25,0xe1,0xf1,0x07,0x7b,0x5e,0xc3,0x30,0x68,0x5f,0x2a,0xce,0x91,0x92,0x03,0x0c,0x62,0x11,0x43,0x80,0xe5,0x12,0xec,0xe3,0x4f,0x90,0xfe,0x38,0x6e,0xe9,0x7e,0x94,0x83,0x26,0x59,0x3f,0x3f,0x81,0xc6,0x94,0x98,0x09,0x80,0xff,0x01,0x44
+.byte 0xff,0x77,0x6a,0x4c,0x76,0x91,0xd9,0x12,0x59,0x9a,0x00,0x7c,0x87,0x06,0x17,0xf7,0x12,0xc7,0xee,0x04,0xd5,0x8d,0x68,0xc5,0x8d,0x80,0x10,0xcc,0x14,0x45,0xe8,0xd7,0x43,0x10,0x01,0x9e,0x61,0xc2,0xc0,0x66,0xfe,0xcf,0x5f,0x9f,0xcb,0xa3,0xf8,0xc7,0x07,0x41,0xe3,0xf2,0xda,0x6e,0x01,0x76,0xc6,0x49,0x49,0x01,0xc7,0xcf,0x6a,0x20
+.byte 0x71,0xc5,0xf0,0xb1,0xa0,0xc9,0xed,0xec,0x66,0x71,0x93,0xf5,0xc0,0x27,0x42,0xed,0xd5,0x6f,0x20,0xe1,0x86,0x3e,0xd0,0x5d,0x94,0x17,0x43,0xb4,0x98,0x0d,0x8a,0x31,0x6c,0x59,0xa9,0x0b,0xb3,0xa4,0x0b,0x46,0x0b,0xa8,0x79,0x62,0x3a,0x3d,0xbf,0xef,0x94,0xd3,0x31,0xf2,0xa1,0x55,0xe8,0x92,0x44,0x37,0x62,0x82,0x1b,0x60,0x87,0x67
+.byte 0x85,0x78,0xd5,0x84,0x73,0xa4,0xea,0x56,0x08,0x78,0x68,0x7f,0xfb,0x15,0x20,0x64,0xeb,0x6c,0xf7,0x5e,0xc0,0x79,0x83,0x59,0x7b,0xed,0x2d,0xa9,0x37,0x46,0xf3,0x62,0xb1,0xa1,0x2b,0x48,0x58,0xd9,0x0c,0x03,0xf7,0xf3,0x47,0xeb,0xd7,0x03,0x9b,0x85,0xd3,0xd7,0xd7,0x7e,0xfb,0x1a,0x25,0x83,0xda,0x06,0xa0,0x04,0x0d,0x6b,0x90,0x29
+.byte 0x2a,0xfc,0xcd,0x96,0xe9,0x17,0x4f,0xdd,0x2c,0x90,0xdf,0xf1,0xe3,0x08,0x0a,0xb8,0x0c,0x59,0x2a,0x83,0x62,0x94,0x00,0xd3,0x80,0x1a,0x31,0xd7,0x17,0x70,0xc7,0xa2,0x20,0x17,0x65,0x88,0xae,0x11,0x25,0xc9,0xba,0x76,0xa7,0x61,0x60,0xd1,0x59,0x50,0x22,0xdd,0xaa,0xcf,0x9d,0xc1,0x36,0x7d,0xf9,0x7b,0x69,0xc0,0x98,0xba,0x40,0xd5
+.byte 0xd6,0x46,0x93,0x92,0x7d,0x37,0x3f,0x3a,0x04,0x9a,0x84,0xaf,0x8e,0x61,0x04,0x26,0x54,0x33,0x84,0xc0,0xac,0x21,0x51,0xd7,0x9a,0x93,0x6e,0xf2,0x09,0x87,0xc5,0x35,0xa8,0x96,0xb0,0x64,0x90,0x35,0x52,0xed,0x0e,0xbc,0xdb,0xa6,0x06,0x3e,0xe7,0xea,0x57,0x4b,0xd7,0xc5,0x1c,0x76,0x3d,0x0d,0xc3,0x1f,0x8e,0x4f,0x12,0xdb,0x3a,0x21
+.byte 0x2a,0x69,0xc2,0x94,0xda,0x4c,0x91,0xcc,0xa8,0x36,0x89,0xd7,0x78,0xa8,0x74,0x79,0x63,0x92,0xeb,0x39,0x3b,0x84,0x8c,0xe5,0xc6,0x26,0xf0,0xef,0xcc,0xc1,0x72,0x4b,0x8e,0xcd,0xe4,0xd9,0x00,0x80,0xbc,0xdf,0xe2,0x61,0x53,0x04,0x81,0xb0,0x13,0xc5,0x6c,0x77,0x74,0xa3,0x0c,0x5b,0xef,0xef,0xea,0xc7,0x5b,0xeb,0xbf,0xee,0x54,0xd7
+.byte 0x7a,0x69,0x6e,0x39,0xc2,0xed,0x08,0x44,0x82,0x08,0x16,0x8b,0xf1,0x74,0x5f,0xeb,0x60,0xd5,0x46,0x63,0x80,0x39,0xe9,0x91,0x0a,0x17,0x8b,0xd4,0x09,0xdc,0xa6,0xab,0x6a,0xbc,0xf8,0xe9,0x09,0x19,0xc1,0x83,0x9f,0xdf,0xad,0x6c,0x31,0x94,0xb9,0xc5,0x77,0x83,0xd1,0xd8,0x76,0xeb,0x12,0x3c,0x00,0x31,0xea,0xac,0x97,0x39,0x16,0xd5
+.byte 0x81,0xfa,0x6d,0x10,0x5b,0x3e,0x20,0xe1,0x88,0x5c,0x4b,0xf3,0x04,0xd4,0xc3,0xb9,0xec,0xe5,0xb0,0x13,0xf5,0x09,0x5c,0xe8,0x27,0xe2,0xde,0x9b,0xac,0x2e,0xf2,0xe5,0x2c,0x33,0x4b,0x4f,0xec,0xc7,0x08,0xf9,0xc2,0xd3,0x1b,0x4d,0x81,0x69,0x14,0xa1,0xc5,0x0f,0xb2,0x57,0x8b,0xcc,0xca,0x3b,0xc9,0x9c,0x1f,0xee,0x06,0x4d,0xc7,0x62
+.byte 0xcb,0x8f,0x49,0x81,0xfb,0xa5,0x68,0x81,0x36,0x38,0x33,0x6b,0x9e,0x58,0xd4,0x24,0x67,0xf1,0x30,0xd6,0x08,0x61,0x5a,0x7f,0x2e,0x4e,0xf1,0xd6,0x64,0x75,0x72,0xb0,0xdf,0xcd,0xae,0x04,0x41,0xbd,0x04,0x2c,0x96,0x36,0x34,0x32,0xec,0xbd,0xd0,0xbf,0x8e,0xe8,0x47,0xe3,0x22,0xdd,0x79,0x53,0xcc,0x6a,0x25,0xf1,0x5e,0x63,0x09,0x98
+.byte 0xc5,0x6d,0x0a,0xe3,0x30,0xd6,0x52,0x70,0x21,0xb2,0xef,0x15,0x66,0x4a,0x2d,0x2b,0x5c,0xcb,0x39,0x1b,0x91,0x10,0xa6,0x02,0x22,0xd0,0xcc,0x32,0x50,0x5c,0x70,0x72,0xd1,0x03,0xb3,0x2d,0x2e,0x33,0xed,0xae,0x7a,0x07,0x3f,0x70,0x38,0x35,0xfc,0xcf,0xdb,0xfe,0x7b,0x26,0xd9,0x38,0x1e,0x52,0x07,0x2f,0x72,0x81,0xcc,0xd3,0x21,0x00
+.byte 0x63,0x48,0x38,0x44,0xb8,0x35,0xf2,0x4f,0xe5,0x33,0x8c,0xb3,0x07,0x0c,0xac,0x3d,0x73,0xe8,0xe3,0xb3,0x43,0xc5,0xb4,0x32,0xf4,0x41,0xdf,0x7b,0x06,0x3a,0xb8,0x67,0x17,0xc5,0xec,0x46,0x30,0xc0,0xa4,0x29,0x40,0xe4,0x8a,0xa3,0x14,0x84,0xa6,0x84,0xc7,0x5d,0x4b,0x57,0x37,0x9c,0x42,0xe6,0xa4,0x20,0xf7,0x5d,0xef,0x21,0xe2,0x80
+.byte 0x54,0x6d,0xf5,0xb5,0xbe,0xa3,0x95,0xcf,0x98,0xf8,0x38,0x46,0xa2,0x90,0x57,0x09,0x8f,0xb0,0x6d,0x01,0x5f,0x95,0x5a,0x78,0xf6,0xfd,0x01,0x0f,0xfd,0xa5,0xe2,0xcf,0x54,0xa3,0x2b,0xc1,0x30,0xbe,0x6d,0x1a,0xd3,0xdb,0x5a,0x17,0x43,0x46,0x93,0x81,0x0c,0x85,0x04,0x13,0xda,0xb4,0xde,0x81,0x48,0x5c,0xbc,0x42,0x9e,0x6d,0x6c,0x82
+.byte 0xff,0xa5,0x51,0xb1,0xd3,0xd2,0x3d,0x82,0x82,0xb4,0x96,0xb1,0x38,0x5d,0xc9,0x55,0xcb,0x9f,0xe5,0x47,0xd4,0x52,0x0f,0x76,0x54,0xec,0x39,0xb6,0x40,0xc3,0xc5,0xaa,0xc2,0x30,0x02,0xa0,0x68,0xc3,0x22,0x63,0x5a,0x8c,0x62,0x6d,0x40,0xc5,0xde,0x06,0x29,0x44,0x5d,0x2b,0x18,0x0a,0xa5,0x43,0x47,0xfe,0x5f,0x0f,0x63,0xa4,0x3c,0xa1
+.byte 0x62,0xcb,0x70,0x1d,0xf8,0x0e,0xc9,0xbe,0x27,0x0e,0x87,0x81,0x69,0x4c,0xea,0xbe,0xf9,0x9b,0xda,0xb6,0x9b,0xd0,0xdd,0xa0,0x1e,0x60,0x38,0x88,0x85,0x25,0x53,0xee,0x2c,0x77,0x53,0x82,0xb0,0x88,0x19,0x87,0x2a,0x77,0x7b,0x37,0x4b,0x4c,0xf4,0x96,0x5f,0x73,0xa1,0xbb,0x5c,0xfc,0x7e,0xbb,0xed,0x6f,0xb7,0x6f,0x9d,0x55,0xde,0xd3
+.byte 0xac,0xb9,0x8e,0x36,0x0f,0x3d,0xea,0x87,0xcd,0x19,0x33,0x1d,0xa8,0xee,0xfc,0xcd,0xe5,0x53,0x7b,0xdf,0x37,0x49,0x2d,0x73,0xf5,0x36,0xdd,0x42,0xc6,0x88,0x0d,0xf5,0xf2,0xba,0x2e,0x81,0xed,0x88,0x27,0x8d,0xe5,0x3f,0x83,0x5e,0xde,0x63,0x8f,0x67,0x2b,0x85,0xf3,0x2a,0x9b,0x26,0x3e,0x2b,0xe2,0x29,0xc5,0x5e,0x21,0x04,0xfe,0x5b
+.byte 0xb9,0xd8,0xa7,0x7b,0xdf,0xcf,0x61,0xd6,0xaf,0x9b,0x17,0xcb,0xaf,0x8f,0x71,0xb3,0xc2,0x9d,0x9a,0x55,0x1d,0x3e,0x1d,0x17,0x25,0xc8,0x44,0x71,0x29,0x2f,0xc8,0x01,0x3b,0xe4,0xc4,0x2e,0xcc,0x3b,0xdb,0x34,0xbb,0xc0,0xcc,0xb6,0x07,0xe3,0x86,0x4c,0x62,0x02,0xe8,0xc3,0x11,0x85,0x6c,0x18,0x80,0xa3,0xbd,0x02,0x30,0x68,0x36,0xa3
+.byte 0xb6,0xc6,0xbd,0x82,0x43,0x40,0xed,0xa1,0xcf,0xc5,0xce,0xe4,0x27,0x8a,0xeb,0x8c,0x59,0xea,0x4a,0x81,0xd9,0x35,0x87,0x7d,0x6d,0xb2,0x8f,0x67,0x37,0x1f,0x11,0x60,0x0d,0xed,0x34,0xd5,0xa0,0x7b,0x46,0x71,0x68,0x19,0x69,0xd3,0x65,0x1d,0x47,0xf1,0x7e,0x16,0xd8,0xec,0xbb,0x52,0xc3,0x7b,0x62,0x5a,0xb3,0x60,0x67,0x2e,0xfd,0x57
+.byte 0xf2,0xfb,0x3d,0x63,0xe6,0x82,0x20,0xff,0x31,0x90,0x1d,0x5e,0x4f,0x04,0x9a,0xf8,0xb2,0x0c,0x84,0xff,0x7d,0xe2,0xec,0x4b,0x09,0xbb,0xdf,0xae,0xc5,0xaf,0xcb,0x8b,0xb5,0x5d,0xa8,0x53,0x78,0xf9,0xb9,0x43,0x71,0xa6,0xc2,0x10,0xfa,0xad,0xda,0xba,0x46,0x13,0x72,0x97,0xef,0x6f,0xe3,0x4f,0x5f,0xf9,0xec,0x25,0xdb,0xcd,0xca,0x33
+.byte 0x7e,0x50,0x73,0x5b,0xd0,0x9f,0xea,0xd5,0xd9,0x29,0xe8,0x1b,0xc1,0xf8,0x40,0xbf,0x50,0xdb,0x8e,0x39,0x0b,0xb7,0x6c,0xf1,0x34,0x0b,0x1f,0x88,0x27,0x4b,0xea,0x1d,0xb2,0x36,0x07,0x4b,0x22,0xa9,0xd0,0xf8,0xf2,0x13,0x8e,0x97,0x9d,0xd9,0x53,0xd3,0xdc,0x63,0x40,0x11,0xc7,0x74,0x9e,0xd9,0x83,0x01,0xae,0x36,0xcb,0x35,0x9a,0x0c
+.byte 0xb5,0x15,0x0a,0xf5,0x41,0xa5,0x6c,0x72,0x40,0x80,0xf0,0x15,0xc0,0x80,0x23,0x0b,0xab,0x98,0xfc,0xab,0x81,0xe0,0x8b,0x61,0x91,0x18,0xd2,0x23,0x71,0xed,0x32,0x80,0x26,0x86,0x96,0xe9,0x90,0x5e,0x43,0xd2,0x89,0x8f,0x89,0x57,0x73,0xca,0xe1,0x42,0xa9,0xa9,0xed,0xdd,0xc5,0x9f,0xf7,0x00,0x0d,0xa3,0xe5,0xc8,0x6f,0x0c,0x14,0xa4
+.byte 0x9d,0x5a,0x14,0xaf,0x96,0x3a,0xb2,0x64,0xa7,0xac,0x20,0xa9,0x01,0x4c,0xec,0x64,0xc6,0x9b,0xfd,0x04,0xc5,0x2e,0xe7,0xdd,0xa5,0x8e,0xe7,0xe7,0x76,0x53,0x59,0x95,0x14,0x07,0xed,0xe9,0x96,0xd0,0x2d,0xc8,0x9d,0xa2,0x11,0xe3,0x02,0x20,0x68,0x09,0x25,0x69,0x07,0x88,0xdb,0x26,0x36,0xf5,0x8e,0xc3,0xf0,0x70,0x8c,0xeb,0xe6,0xcd
+.byte 0xad,0xf3,0x49,0x6e,0x8a,0x54,0xa6,0xdd,0x97,0x8e,0x37,0x28,0x3a,0x6d,0xc4,0xdd,0x99,0x85,0xf7,0x96,0x63,0xb4,0xa2,0xdf,0xff,0x81,0x17,0xa1,0x22,0xb1,0x43,0x5b,0x29,0xdb,0x92,0x91,0xc9,0xc6,0x8d,0x29,0x1d,0x6e,0xe3,0x44,0x3e,0xe4,0x20,0xd5,0xf4,0x4a,0xfa,0xae,0xf6,0x2c,0xff,0x80,0xc9,0xce,0x7f,0x13,0x1e,0xd7,0x24,0xa2
+.byte 0xb3,0x90,0xb8,0x20,0x18,0xe5,0x6c,0x0e,0xf5,0xc6,0x26,0xd6,0xe9,0xe8,0x55,0xe4,0x3f,0x49,0x13,0xe2,0xca,0xef,0x9b,0xc0,0x8f,0x24,0x50,0x37,0xef,0x21,0xff,0x79,0xb7,0x5d,0x86,0x03,0xfb,0x85,0x75,0x74,0xbf,0xc5,0x3a,0x30,0xcc,0x00,0xc3,0x0d,0x4f,0x91,0xd6,0x31,0x19,0xd6,0xcd,0x0e,0x1c,0x53,0x88,0x75,0xb8,0xf9,0x68,0x7a
+.byte 0xa4,0x3e,0x8d,0xed,0xba,0x05,0xb4,0x6c,0xe0,0x45,0x9c,0x41,0x34,0x24,0x82,0xaf,0x9a,0xcf,0x9e,0xd2,0x27,0x5c,0x7f,0xb3,0xcb,0xe5,0xad,0xb4,0x8e,0x74,0x9d,0xe4,0xba,0x55,0xb3,0xd3,0x32,0xbc,0x62,0x11,0xb3,0xa4,0x82,0xf0,0xd8,0xfc,0x79,0x03,0x70,0xae,0x7f,0x7f,0xc8,0x50,0xb5,0xbe,0x47,0x14,0x31,0xd7,0x16,0x65,0x52,0x3b
+.byte 0xbb,0x42,0x38,0x23,0x77,0x4d,0x38,0x0b,0x0a,0x61,0x94,0xac,0xa3,0xc9,0xd7,0x99,0x4f,0x34,0x3a,0x88,0xe8,0x1d,0x0b,0x97,0x48,0x6d,0x5c,0x61,0x4c,0x3f,0xc2,0x7c,0x6c,0x63,0x00,0xdd,0x59,0xae,0xcd,0x17,0x0a,0x21,0x27,0x98,0x15,0x23,0x6d,0x84,0x7e,0x24,0xd4,0x7f,0x1b,0x3a,0x98,0x52,0xc3,0x60,0x33,0xd6,0xc1,0xfe,0x68,0xa8
+.byte 0x49,0x3d,0x7e,0x53,0xee,0x0d,0xed,0x89,0x9a,0x9a,0xe6,0xa1,0x47,0xc7,0xba,0xf3,0x73,0x5b,0xef,0x33,0x51,0x8c,0x1f,0x84,0xa6,0xef,0x77,0x94,0x2d,0xd6,0xda,0x8f,0x85,0x8c,0xd3,0xb6,0x02,0x68,0x9e,0x57,0xb6,0xd9,0x1a,0x8c,0xb5,0xf4,0x61,0x39,0x29,0xb5,0xb7,0x0d,0x0d,0xa6,0x81,0x87,0x54,0xc0,0xca,0x67,0x09,0xca,0x20,0xf3
+.byte 0x37,0x7e,0x03,0x3e,0x31,0x8c,0x51,0x89,0x06,0x81,0xf6,0x7b,0x8b,0xe3,0x4f,0xd0,0xb8,0x0c,0x34,0x7c,0xd6,0xfc,0x25,0xf8,0x00,0xa6,0x10,0x15,0x0d,0xeb,0x22,0x72,0x03,0x79,0x1c,0x84,0x1d,0x3d,0x10,0xaf,0x43,0x6d,0xd7,0xed,0x10,0x2c,0x14,0x26,0xd4,0xa1,0xee,0x6c,0x7f,0x52,0xe4,0x83,0xcc,0x5f,0x1a,0x4b,0xd0,0xc8,0xfb,0x27
+.byte 0x17,0x2c,0xf6,0x90,0x02,0xb4,0xb0,0x63,0x7c,0x14,0xec,0x9e,0x08,0x60,0xec,0x45,0x85,0xc6,0x76,0x42,0x4f,0x1c,0x5f,0x48,0x7f,0x87,0xef,0x8c,0x04,0x23,0x3c,0xda,0x39,0xbc,0xec,0x09,0xda,0xeb,0x9b,0x72,0x7a,0xb4,0x20,0x1c,0xb2,0xdd,0x2e,0x63,0x72,0xd7,0xb1,0xfe,0x5b,0x21,0x28,0xfb,0xeb,0x45,0x31,0x89,0xe5,0x3e,0xa0,0x85
+.byte 0xa6,0x96,0xdb,0x42,0xd5,0xb4,0x27,0x78,0x10,0xa0,0xcb,0x69,0x68,0x1e,0x76,0xed,0xbc,0x3c,0xa1,0x04,0x10,0x81,0x2a,0x4f,0x52,0x78,0x1e,0xae,0x5a,0x47,0x69,0x81,0xee,0xd3,0x14,0x1a,0x68,0x19,0x75,0x92,0x72,0x47,0x61,0x70,0xcf,0x96,0x35,0xa6,0xbb,0x00,0xaf,0x3e,0x90,0x86,0x22,0x9b,0x72,0x8a,0xa1,0x05,0xe2,0xfb,0xdc,0x30
+.byte 0xd5,0xdd,0x46,0x1f,0xf6,0x33,0x43,0xd1,0x59,0xc4,0x93,0x89,0x36,0x6a,0x7b,0x76,0xa7,0x40,0x6c,0xb1,0x9c,0xce,0x3a,0x8c,0xb6,0xd5,0xd1,0x0a,0x78,0xf6,0x08,0xfb,0xf5,0x9c,0xee,0x74,0x0d,0x39,0x51,0x6d,0x0e,0xa6,0xe9,0x22,0xd8,0x30,0xdf,0x16,0xf7,0xe3,0xbd,0xbb,0xe6,0x45,0xb8,0x9c,0xb5,0x49,0xf0,0xe8,0x7c,0xce,0x25,0xf8
+.byte 0x46,0xc0,0x59,0xc2,0xbc,0xdd,0xea,0x3e,0xeb,0x2e,0xf5,0xfd,0xd9,0x05,0x8a,0x2f,0xa3,0xa4,0x63,0xa6,0x50,0x08,0xce,0x2a,0x69,0xe7,0x58,0x57,0xa1,0xb2,0x44,0x41,0x04,0xfc,0x61,0xb1,0xb8,0x19,0x27,0x14,0x71,0x2f,0x55,0x64,0x28,0xa0,0xcc,0x47,0x0c,0xd4,0xed,0xfd,0x07,0x99,0xc6,0x9e,0xdc,0x5f,0x19,0x03,0x1a,0x00,0xda,0xf6
+.byte 0x2c,0x95,0xb0,0xd2,0xaa,0xfb,0xbc,0x1a,0xf3,0x62,0xaf,0x9c,0x38,0xde,0x61,0x30,0xd5,0x56,0x82,0x4b,0xf6,0xeb,0x34,0xc0,0xdc,0x51,0x97,0x89,0x80,0x47,0x9d,0x2a,0xae,0x0e,0x92,0x48,0xd2,0x9d,0x5a,0x67,0xef,0x33,0xa3,0xbe,0xdd,0x80,0x64,0x9c,0xc1,0xaf,0xf9,0x1a,0x4b,0x55,0x67,0x88,0x37,0x37,0xff,0x98,0xe3,0x9e,0xa9,0x4e
+.byte 0x1f,0xa1,0x32,0x70,0xa3,0xbb,0xdc,0x6e,0xb3,0x6d,0xfe,0x8f,0x74,0x89,0xed,0xe1,0x13,0x3c,0x8f,0x08,0x75,0x84,0x84,0xee,0xac,0xcc,0xa5,0x47,0x9f,0x3e,0xb9,0xed,0x26,0x20,0xf7,0x7b,0xfb,0x8a,0x48,0x58,0x51,0x24,0xf9,0xeb,0x66,0x6d,0xd6,0x83,0x24,0xff,0x9f,0x0d,0x38,0x9c,0xf9,0x24,0x99,0x12,0x49,0xb6,0xdd,0xce,0x44,0xe7
+.byte 0x31,0x3d,0x4b,0x23,0x8a,0xd5,0x62,0xa2,0xdb,0x78,0x56,0x3a,0x62,0xc8,0x59,0x5f,0xcc,0x58,0x76,0x19,0x5d,0x48,0x4a,0xc2,0x87,0x21,0xc3,0x3d,0x3a,0x38,0xbd,0x20,0xfd,0xc3,0xa6,0xab,0x32,0xb8,0xc8,0xd1,0x5c,0xa5,0xb4,0x64,0x60,0xd2,0x87,0xb7,0xe9,0xc2,0x2b,0xb2,0x75,0x04,0xf4,0x6e,0x96,0x99,0x5d,0x08,0xff,0xa3,0x45,0x8a
+.byte 0xad,0x7c,0xee,0x94,0x4e,0x45,0x86,0xad,0x0a,0x7a,0x5c,0x8f,0xff,0x28,0xb3,0x3c,0xf8,0x5e,0xb3,0x1e,0x5c,0xe0,0x22,0xf7,0x4e,0xe4,0xdf,0x1f,0xd2,0xa2,0x37,0x4a,0x87,0xa6,0x16,0x80,0x0c,0xc3,0x75,0x18,0xe4,0x76,0x8f,0xc3,0x1b,0xee,0xb1,0xe4,0x4b,0xeb,0x6f,0x15,0x48,0x60,0xaf,0x8e,0x0e,0xeb,0xbe,0x26,0xa3,0xbd,0x2a,0xb5
+.byte 0x6d,0x8b,0xd1,0xa1,0x0f,0x8e,0xaa,0xaa,0xb8,0x8d,0x84,0xe7,0x65,0x40,0x60,0x3d,0x59,0xb7,0x1c,0xef,0x08,0x0e,0x6f,0x21,0xb4,0xe6,0x10,0xda,0x59,0x9a,0x0f,0xe6,0xba,0xfd,0xed,0x7f,0xc1,0xe3,0x7a,0xb7,0x21,0x5d,0xcf,0x1c,0xbd,0xd2,0x59,0xc0,0x31,0xa5,0x8a,0x39,0x86,0x9e,0x7e,0x6a,0xcb,0x87,0x6f,0x01,0xba,0xa4,0x06,0x6b
+.byte 0x3b,0x5d,0x68,0x85,0x11,0xd2,0x2a,0x3c,0x8e,0x3a,0x8c,0x8b,0x59,0xa0,0x4a,0xfb,0x76,0x85,0xe6,0x47,0xc3,0xf4,0xc4,0xe6,0xcc,0x7b,0xff,0x71,0x03,0xd1,0xc2,0x01,0xe4,0x5e,0x49,0x31,0xa6,0x0e,0x17,0x9b,0x42,0xdc,0x75,0xd6,0xfe,0x09,0x0b,0x6d,0x21,0x46,0xfe,0x40,0xcd,0x7c,0xdb,0xca,0xc9,0xba,0x64,0x83,0xd3,0xf7,0x0b,0xad
+.byte 0xff,0xfd,0xe3,0xd9,0x49,0x7f,0x5d,0x48,0xaa,0xac,0xe5,0x74,0x2a,0x14,0x6f,0x64,0x21,0x81,0x09,0xcd,0x2d,0x19,0xf5,0x56,0x85,0xa8,0xec,0x98,0x65,0x46,0x99,0xec,0xbe,0xe3,0x86,0xd3,0x41,0x8b,0xe4,0x76,0x9b,0x5b,0x98,0x33,0x9e,0xdb,0xc9,0xde,0x89,0xfa,0x60,0x58,0xa8,0x2f,0x7a,0xca,0x30,0x91,0xc8,0x26,0x14,0x9c,0xd6,0x6d
+.byte 0xc2,0x3c,0xca,0xe0,0x9a,0x13,0x72,0x63,0x5e,0x20,0xfd,0xa0,0xca,0xb2,0xed,0x37,0xc5,0xd4,0x4e,0xec,0x1f,0x74,0x25,0x37,0xe2,0xbe,0xb1,0x7f,0x52,0x26,0x28,0x4f,0x02,0xe5,0x6a,0x27,0xf3,0xc4,0x9c,0x69,0x09,0xac,0xff,0x77,0x9c,0xa4,0x1d,0xe7,0xa1,0x7c,0x37,0x70,0x3b,0x3c,0xc4,0x16,0x8f,0x5d,0xe5,0x05,0xa9,0x2c,0x91,0x2e
+.byte 0x87,0xb0,0xa9,0x2e,0x32,0x73,0x5c,0x15,0x1e,0xbe,0x01,0xc9,0xd8,0x2e,0x26,0xf4,0x05,0x2d,0xe0,0xc0,0x38,0x81,0x61,0xf4,0x37,0x08,0xa0,0xc0,0x28,0x0a,0xb6,0xd4,0xcc,0x2c,0xc6,0xd4,0xda,0x48,0x49,0xcf,0x76,0x91,0x23,0x51,0x91,0xe7,0x50,0x94,0xae,0xb7,0x15,0x26,0xaa,0x82,0xd0,0x97,0xe8,0x5e,0xaa,0xfc,0xaa,0x60,0x62,0x81
+.byte 0x80,0xfd,0xfd,0xaf,0x65,0xcc,0x29,0x27,0x95,0xad,0x56,0xb9,0x85,0x66,0x49,0x62,0xb3,0x1a,0xf4,0x54,0xc7,0x5d,0x7f,0x73,0xe0,0xd2,0xc8,0x18,0x95,0x62,0x2f,0x5c,0x96,0xfb,0x63,0x15,0x46,0x07,0x5f,0x3e,0x52,0x18,0xf8,0x5d,0x45,0x0b,0xb6,0xf7,0xc5,0x3d,0x16,0xaa,0x0b,0x8f,0x9d,0x16,0xc8,0x93,0x13,0xd2,0xba,0x7a,0x52,0x1a
+.byte 0x7a,0x73,0xc4,0xca,0xfb,0x04,0xaf,0x6f,0x3e,0xfa,0xff,0x29,0x09,0xe2,0x74,0x35,0xc1,0xfc,0x21,0xcf,0x5f,0xf7,0x82,0x55,0x75,0x27,0xc9,0x91,0xc5,0xbf,0xe6,0x68,0xb6,0x0f,0x10,0x0e,0x91,0x30,0xb7,0x05,0xca,0x59,0x4a,0x7f,0xb0,0xf6,0xaf,0xf1,0x5d,0xc9,0xc5,0x06,0xc5,0xf4,0xe1,0x75,0x16,0x9a,0x2c,0xc0,0x3f,0xc1,0x98,0x91
+.byte 0xb7,0xe6,0xb1,0xf2,0xf9,0xfa,0x6d,0x27,0x98,0x33,0x8b,0x73,0x7a,0x57,0x12,0x6f,0x80,0x11,0x28,0x17,0x7d,0xf1,0x26,0xaa,0x05,0xf1,0x6e,0x86,0x98,0xe7,0xf6,0x9f,0x9c,0x06,0x8f,0xec,0xd7,0x2d,0xb0,0x83,0xdf,0x23,0x80,0x34,0xd3,0xd7,0xf7,0xd5,0x0d,0x52,0x18,0xcd,0xc7,0xe7,0x15,0xc9,0x1b,0xae,0x58,0xcf,0xc5,0xdd,0x25,0x2a
+.byte 0xff,0xa5,0xf3,0x6d,0x20,0xfd,0xda,0xfd,0x78,0x30,0x14,0x1f,0xb3,0x47,0xe3,0x2d,0x54,0x87,0xdc,0x30,0xbe,0x41,0xc0,0x48,0x52,0x82,0x49,0x78,0xad,0xfd,0x24,0xad,0xd6,0xc1,0x14,0x1e,0xa0,0xc1,0x3d,0x82,0x59,0x01,0x9b,0xc3,0xf4,0xf7,0x26,0xce,0x92,0x50,0x13,0x47,0xe0,0xf3,0xfa,0xd9,0x61,0x19,0x80,0x12,0xee,0x73,0x45,0x5b
+.byte 0x34,0xfc,0xb2,0x84,0xb2,0x3f,0xdc,0x77,0x8e,0x2d,0xb3,0x62,0xb9,0x03,0x2d,0xb6,0x2a,0x17,0xcd,0xfb,0x54,0xc2,0x5e,0xb9,0xcf,0xd6,0x05,0xe2,0xac,0x3f,0xce,0x50,0x0f,0xa1,0x3e,0x67,0x68,0x46,0x0c,0xab,0xa1,0xdc,0x2a,0x26,0x1f,0x22,0x1b,0xa7,0xc9,0x3b,0x6c,0x97,0x5d,0x5c,0x7d,0x1a,0x46,0x4a,0x99,0x92,0x85,0x87,0x35,0x6c
+.byte 0x78,0x9d,0xb0,0x39,0xd6,0x3b,0x52,0x60,0xb4,0xba,0xcc,0x2e,0xe9,0xe1,0x91,0x51,0xc1,0x52,0xc7,0x5d,0x84,0x95,0x54,0x25,0xdd,0xcd,0x40,0x35,0xa1,0xc8,0x7e,0xff,0x82,0x55,0x9f,0x64,0xef,0xa7,0xc1,0x79,0x57,0xc7,0x44,0xa8,0x1c,0x06,0xaa,0x2a,0x05,0x65,0x6c,0xdc,0x90,0x7d,0x2e,0x53,0x3c,0x56,0xe1,0x30,0xdf,0xcb,0x75,0x3d
+.byte 0x36,0x88,0xfd,0x72,0x2d,0xc7,0x8e,0x2f,0x11,0x5a,0x2e,0xa9,0xd6,0x37,0x4b,0x31,0x4e,0x6e,0xa0,0x4a,0xd9,0xa9,0x48,0x18,0x50,0xb1,0x28,0xf6,0x74,0x03,0x44,0xa7,0x06,0x55,0x86,0x1a,0x1b,0x07,0x79,0xc4,0x25,0xba,0x5d,0xce,0xa2,0x96,0x7d,0x62,0xa7,0x21,0xf0,0xa7,0xc2,0x91,0x03,0x38,0x37,0x0b,0x20,0x40,0x88,0x7b,0x28,0xf4
+.byte 0xf3,0xc2,0xb0,0x4b,0xf6,0xef,0x2f,0xd9,0xb5,0x81,0x17,0x95,0x42,0x98,0x7f,0x18,0xd4,0x7e,0xa1,0x85,0xbf,0x62,0xdc,0x40,0xe4,0xd3,0xcc,0x78,0x01,0xec,0x12,0xcc,0x04,0x5b,0xfe,0xdb,0x39,0x7c,0x1e,0x56,0x7c,0x72,0x57,0xb9,0xdf,0x9d,0x43,0xd4,0xe3,0x1f,0xbf,0x69,0xfb,0x43,0x23,0xd8,0x75,0x81,0xe8,0x39,0x0f,0xe4,0xe9,0x51
+.byte 0xea,0xb7,0xa7,0xc6,0x17,0xc6,0x75,0x4c,0xa8,0x17,0x41,0x1c,0x55,0x8e,0x8d,0xf3,0x64,0xbc,0xc3,0x33,0xa7,0xc1,0xbe,0xa2,0x89,0x75,0xd6,0xda,0xad,0x44,0xd5,0xdd,0x18,0xe2,0xfc,0x1d,0xa1,0xbc,0x1a,0xb8,0x40,0x1a,0x4f,0x44,0x4b,0x56,0xe9,0xf4,0xa8,0x16,0xe6,0xc9,0x40,0x90,0x9b,0x49,0xae,0x62,0x12,0x3d,0x50,0x2e,0x7b,0x60
+.byte 0x6f,0x04,0x01,0x2c,0x83,0x2a,0xd2,0x92,0x63,0xa2,0xe2,0x39,0x9a,0xc4,0x1e,0x5a,0x53,0x3f,0x4d,0x69,0xfa,0x0a,0x22,0x13,0x80,0xa4,0x6e,0xfb,0x09,0xcb,0x35,0xd7,0x12,0xa4,0xcd,0xfc,0x0b,0x06,0xa6,0x5e,0xc6,0x4a,0x22,0x56,0x5d,0x7f,0x70,0xd0,0xf8,0xe6,0x96,0x77,0xce,0xd9,0x69,0x6c,0x06,0xac,0xaa,0x94,0x6d,0x57,0x1b,0x28
+.byte 0xb4,0x07,0x50,0x19,0xd1,0x86,0xba,0xe6,0xe6,0x31,0x74,0x1d,0x3d,0xe8,0xe2,0x7b,0xfe,0xc9,0x41,0x89,0x20,0x5b,0x6a,0xc0,0x18,0x16,0xee,0x35,0xfa,0x56,0x35,0x3e,0x53,0x99,0xfb,0x8d,0xae,0x75,0x4f,0xc5,0x8d,0xff,0x23,0xd5,0x42,0xf4,0x81,0x5c,0x8b,0x71,0x7a,0x22,0xb0,0x6b,0x45,0x86,0xa6,0xc6,0xdb,0xa6,0x83,0x01,0x28,0xde
+.byte 0x38,0xaa,0x6e,0xf8,0x5a,0xf2,0xcc,0x3c,0xc5,0x65,0x78,0x37,0xe8,0x8a,0x59,0xf3,0xfe,0x8b,0xcd,0xf6,0x31,0x46,0xdc,0x72,0x19,0xf7,0x73,0xac,0x5c,0xf1,0xe3,0xfd,0x85,0x51,0xec,0x92,0x3a,0xf3,0xd7,0xb2,0x95,0x53,0x79,0x48,0xd3,0x29,0x84,0xec,0xc5,0x0a,0x71,0x15,0x52,0x69,0x6a,0xe1,0xab,0x69,0x94,0xc2,0x51,0xdf,0x27,0xd8
+.byte 0xb1,0x05,0xc4,0x12,0xea,0x1e,0xda,0x6e,0xf2,0xf5,0x8a,0xa8,0x72,0x74,0x5a,0xe5,0x45,0x5b,0x5f,0xf9,0xb0,0x56,0x5c,0x85,0xf7,0x63,0x8d,0x1d,0xbf,0xe9,0x7c,0x97,0xe9,0x37,0xb3,0x5b,0x4b,0x57,0xfc,0xf4,0x58,0x84,0x26,0x55,0x07,0xc7,0x0a,0xfe,0x5a,0x58,0xd0,0xd8,0x19,0xf4,0x02,0xad,0x2c,0x4e,0xbd,0xe1,0x07,0x48,0x3b,0xc4
+.byte 0xd6,0x23,0x3a,0x63,0xc3,0xf5,0x17,0x46,0x03,0xa4,0x9a,0x10,0xf9,0xac,0x70,0x9c,0x13,0x10,0x94,0xda,0x17,0xc5,0xbb,0x87,0x0f,0x9b,0x4f,0x54,0x55,0x6b,0x57,0x2d,0x12,0x0b,0xa7,0x9c,0x77,0x6d,0x67,0xb0,0x03,0xdf,0xc6,0xa2,0x76,0x96,0x0c,0xac,0x30,0xbc,0xa2,0x55,0x23,0x01,0xae,0x51,0x50,0xd4,0xab,0xd0,0xee,0x75,0xf1,0x96
+.byte 0x75,0xf5,0x2e,0xae,0x52,0x31,0x0b,0x0a,0x8a,0xdb,0x4c,0x4d,0x4c,0x80,0xfc,0xd7,0x68,0x05,0x54,0x47,0xa5,0xc4,0xb1,0x63,0x87,0x43,0x1b,0xe1,0x0b,0x4f,0xff,0x0c,0x02,0xf7,0x00,0xd4,0x8d,0x6e,0xa1,0x21,0x91,0x62,0xec,0x55,0xd5,0x72,0x70,0x59,0x7a,0xa4,0x0e,0x78,0x7a,0x87,0x1f,0x71,0x35,0x3b,0xf7,0x1f,0x66,0x8c,0x90,0xf9
+.byte 0x6d,0x1f,0x74,0x47,0x41,0xf5,0x21,0x98,0x0d,0x42,0x61,0x21,0x0b,0x62,0x59,0xc7,0x5e,0x58,0x37,0xfb,0xee,0xbb,0xa0,0x45,0xa8,0x84,0xae,0x41,0x29,0xc9,0x88,0x64,0x69,0x75,0xc1,0x5f,0x63,0x7c,0x00,0x1c,0x35,0x61,0x9e,0xad,0x19,0xd7,0xd8,0xf1,0x64,0x57,0x10,0x87,0x73,0xa8,0x8b,0x39,0x9b,0x1c,0x1a,0xc2,0x1b,0x01,0x1a,0x41
+.byte 0x26,0x58,0x93,0x8f,0xed,0xf9,0xe7,0xfe,0xcc,0x27,0x1b,0x6b,0xb8,0x28,0x5a,0x0b,0x04,0xa0,0x94,0x23,0x4b,0x21,0x5f,0xb3,0xc9,0xb6,0x7b,0x36,0x5a,0x67,0x6b,0xd2,0xc2,0x53,0x97,0x5d,0xa5,0x43,0xd3,0x79,0x83,0xe2,0x3b,0xe0,0xaf,0x5f,0xbd,0xf3,0xb0,0xfc,0x04,0x95,0x06,0x17,0x0c,0xe2,0x68,0xe8,0xf3,0x90,0xc7,0x2b,0x7b,0xcc
+.byte 0xaa,0xce,0xf5,0x0b,0x3c,0x3f,0x10,0xa7,0x31,0x9d,0xf0,0x1e,0x3e,0x74,0x57,0xbd,0x87,0xe7,0x37,0xd0,0x37,0x09,0xae,0x03,0x96,0xb1,0xad,0x8f,0x2d,0x72,0xdc,0x0f,0xdf,0xd9,0xfb,0xcc,0xb8,0x48,0x62,0xf7,0xad,0x05,0x4d,0xc6,0xe5,0x92,0xe3,0x95,0xa0,0x74,0x7a,0xa6,0x84,0x13,0x68,0x17,0xaa,0x8f,0x40,0x2a,0x8d,0x2b,0x66,0xdc
+.byte 0xf8,0xf6,0x6d,0x7c,0x7e,0x40,0x22,0x05,0x16,0x20,0xbc,0xe5,0xc2,0x87,0xe2,0xd5,0xbd,0x47,0xd5,0x69,0x95,0x12,0x25,0x1c,0xaa,0x9d,0xb5,0x73,0x08,0xaf,0xfb,0x46,0xa5,0x11,0x2c,0x93,0xc6,0xfc,0xc0,0x5e,0x0e,0x99,0x1c,0x80,0x5f,0xe5,0xc8,0x52,0x73,0x35,0x4d,0xbc,0x70,0xeb,0x40,0xc9,0x47,0x8a,0x8f,0x19,0xd9,0xa9,0xec,0x4b
+.byte 0x88,0x53,0x56,0x08,0x4a,0xa2,0x32,0x1f,0xe2,0xbb,0x68,0x35,0xfd,0xf2,0x0e,0x0f,0x7f,0xc8,0xf1,0x59,0xac,0x97,0x8f,0x84,0x69,0xb6,0xb9,0x5f,0x84,0xe9,0xf2,0xf9,0x09,0xf6,0xf1,0x31,0xd7,0x1a,0xa8,0x25,0x32,0x5f,0xb1,0xa7,0x84,0x15,0xfa,0x07,0xa8,0x53,0xce,0x2a,0x26,0xe0,0x4d,0x07,0x4f,0x45,0x63,0x76,0xfd,0xe3,0xb4,0x4e
+.byte 0x81,0x5e,0xe6,0x01,0x9c,0xf5,0x82,0x2d,0x71,0x0f,0x98,0xb4,0x72,0x06,0xbc,0x89,0x89,0x60,0x5f,0xd9,0x92,0xcf,0xb9,0x41,0xe3,0x13,0xaa,0xe4,0x80,0xb5,0x75,0xf4,0x9a,0x1b,0xc2,0xa3,0xa4,0xa9,0x0f,0x15,0xdc,0x26,0xdd,0x20,0x10,0x27,0xbd,0x06,0x77,0x12,0xa5,0xb3,0xde,0x9f,0xbf,0xc4,0xb6,0x1d,0x76,0xdc,0x16,0x00,0x2e,0xe2
+.byte 0x00,0x4d,0xb3,0x62,0x57,0x73,0x1e,0x90,0xe2,0xaa,0x4c,0x47,0xdf,0x6b,0x2d,0x66,0x2f,0x82,0x55,0x91,0x26,0x33,0xb9,0x3a,0xc7,0xf1,0x0a,0xda,0x9b,0x6b,0x05,0x82,0x0f,0x0e,0x30,0x74,0x0b,0xea,0x0f,0x49,0x55,0x3b,0xe7,0x42,0x48,0xca,0x82,0x3e,0x8c,0xbc,0xe2,0x88,0x43,0x44,0x0d,0x37,0x9b,0xd1,0xfc,0xf1,0x45,0x46,0x0e,0xe1
+.byte 0xec,0x91,0x39,0x96,0x7d,0xbc,0xd5,0xb1,0x11,0x55,0x54,0x49,0x4f,0x18,0xed,0xec,0x58,0xdb,0xb3,0x7d,0x64,0x8d,0xfc,0x65,0x1f,0xf0,0xe0,0xc0,0x41,0xc0,0x19,0xeb,0x16,0x16,0x71,0x36,0x88,0xcf,0x75,0x3d,0x9c,0xe6,0xa0,0x84,0x54,0x26,0x64,0x95,0x9a,0xe1,0x0b,0x51,0xcf,0x9a,0x55,0x60,0x4d,0x9d,0x1d,0x37,0x71,0xa8,0x94,0x0a
+.byte 0x20,0xeb,0xf2,0x91,0x14,0xfc,0x12,0xb0,0x1e,0xe3,0x5e,0x3a,0xbb,0x22,0xde,0x20,0xb1,0x58,0xef,0x0b,0xb1,0xc2,0x2f,0xea,0xd8,0xdb,0x1d,0x3a,0x67,0x7b,0xbd,0x26,0xfa,0x4a,0x3c,0x3d,0xbd,0x87,0x4c,0xba,0x57,0xdf,0xfb,0x1d,0xf7,0x26,0x5f,0x52,0x4e,0xdd,0x9b,0x38,0x62,0xed,0x48,0xc1,0xae,0x7f,0xa8,0x13,0x05,0x09,0xff,0xc0
+.byte 0xd3,0x49,0x75,0x1f,0x6a,0xe0,0x79,0x94,0xc1,0xe9,0xe3,0xf5,0x33,0x40,0xd4,0x6b,0xfe,0x4d,0x6e,0x84,0xb9,0x20,0x68,0x2b,0x6c,0xb3,0xf1,0xb1,0x1c,0xfd,0x93,0x14,0x7f,0x35,0x9b,0xd5,0x07,0x15,0x87,0x56,0xb9,0x45,0x22,0x64,0x73,0xdb,0x34,0x35,0xca,0x15,0x4e,0xa2,0xa2,0xe2,0x7a,0x6e,0x14,0x46,0xf5,0xf1,0x70,0xd3,0x3a,0x2e
+.byte 0x38,0x9d,0xf6,0xc6,0x29,0xd5,0x7f,0xc7,0x77,0x2c,0x33,0x55,0x1c,0xc2,0xf1,0xaf,0x8e,0x4d,0x1b,0x22,0x36,0x35,0x93,0x47,0xa5,0x59,0xb4,0x94,0x0f,0x2d,0x66,0x24,0x6f,0x57,0xa4,0x95,0xf3,0xd7,0xf3,0x59,0x9d,0xc0,0xda,0xa7,0xf7,0xf2,0x8d,0x93,0xc9,0x90,0x91,0x9e,0x12,0x3f,0x34,0x01,0x90,0x8b,0x13,0x09,0x3d,0x2f,0xa8,0x31
+.byte 0xfa,0x39,0x4a,0x7d,0x0d,0x34,0xa3,0xf1,0x75,0xdb,0xa2,0xd2,0x5c,0xf1,0x72,0xfd,0x7f,0x7b,0x15,0x92,0xf0,0x71,0xd6,0xa0,0x74,0x53,0x61,0x67,0xa4,0x8b,0x72,0x3a,0x66,0x0a,0xce,0xc9,0x1c,0x5b,0x4d,0xaa,0x0a,0x3a,0x91,0x0a,0xbb,0xef,0x6e,0x8d,0x00,0xc0,0xa1,0x89,0xa9,0xbd,0x5a,0x2d,0xf8,0x7c,0x1f,0xb2,0x5a,0x73,0x33,0xe7
+.byte 0xb3,0xfd,0xd4,0xe3,0x81,0x69,0x30,0xc1,0xf8,0x97,0x7b,0xf3,0x63,0xaa,0xd5,0x5a,0x98,0x95,0xb3,0x65,0x2d,0xf9,0x68,0x2e,0x2c,0x26,0xe6,0x77,0x8f,0x76,0x7a,0x02,0xc7,0x50,0x28,0x40,0xcf,0x44,0x66,0x18,0x54,0x52,0xef,0x79,0x26,0xc2,0x76,0x5b,0x71,0x92,0x49,0xba,0xe1,0xd7,0xf2,0xdd,0x57,0xe0,0x78,0x6e,0xb6,0xdd,0x0d,0x20
+.byte 0x85,0xf9,0x34,0x9e,0x65,0x6b,0x9f,0x41,0x24,0xe2,0xb1,0x2a,0xef,0x8b,0xd2,0x19,0x81,0x73,0x56,0x5a,0x84,0xd3,0x46,0xf8,0x74,0xe3,0x1f,0x3d,0xd9,0x16,0x86,0x38,0xf6,0x7c,0x04,0xab,0x9a,0x64,0x0e,0x48,0x06,0x4c,0x61,0xcd,0x2d,0x4d,0xef,0x6f,0xd6,0x7d,0x31,0x1c,0x56,0x65,0xc4,0xf1,0xa7,0x15,0xac,0xa4,0xe2,0x8b,0x83,0x5e
+.byte 0x64,0x36,0x2e,0x77,0x94,0x2e,0x2e,0xa3,0x62,0xcf,0x6e,0x7a,0x6d,0x39,0xaf,0xf7,0x96,0x88,0x31,0x14,0x58,0x46,0x30,0x0c,0x36,0x3a,0x4c,0x53,0xe0,0xa7,0x24,0x76,0x84,0x0f,0xfb,0x7e,0x55,0xa0,0x0f,0x63,0xfc,0xd6,0x1f,0x58,0x68,0xb5,0xcc,0x77,0x4f,0x16,0x91,0xa7,0xfd,0x62,0xb3,0x88,0x13,0x7c,0xcb,0x63,0x6d,0xe4,0x38,0x4c
+.byte 0x6e,0x3b,0xf7,0xe3,0x8d,0x52,0x84,0x61,0x19,0x12,0x51,0xbe,0xed,0x32,0x3d,0x77,0xdd,0xa1,0xc3,0x59,0x65,0x79,0xa1,0x6b,0xbc,0x65,0x6c,0xe3,0x7e,0x60,0x49,0xbd,0xcf,0x6f,0x61,0x97,0x98,0xbe,0x74,0x38,0xd1,0x09,0xc1,0x59,0xe5,0x7f,0xfe,0xbf,0xfd,0x60,0x1b,0x96,0x00,0x46,0x56,0x4d,0x81,0x4c,0x70,0x59,0x39,0x66,0x13,0x58
+.byte 0xe7,0x62,0x3a,0xfc,0x1b,0xe5,0xf9,0x03,0xd4,0x4b,0xab,0x1d,0x56,0x22,0x4a,0x09,0xa5,0xdd,0xac,0x39,0xbe,0x27,0x39,0xb3,0xe8,0xad,0xe0,0x07,0x86,0x10,0xce,0xa9,0x4e,0x8b,0x47,0x8d,0xb8,0x63,0x2f,0x61,0x1a,0x8b,0xd4,0xd3,0xfe,0x73,0x82,0x5a,0xd6,0xa9,0x46,0x56,0xa7,0x81,0xe9,0xda,0xb9,0x17,0xa7,0xc8,0x0f,0x24,0x16,0x6a
+.byte 0x12,0xfe,0xc3,0x65,0x85,0x77,0xab,0x89,0x44,0x1b,0xa3,0x8b,0xfd,0x07,0xf4,0x77,0xaa,0xe1,0x71,0x33,0x74,0x93,0xdc,0x90,0x53,0x39,0x47,0x8c,0xea,0x18,0xe1,0x6a,0xed,0x8c,0x56,0x08,0x2f,0xa1,0x1f,0x22,0xf2,0xc0,0x12,0xcd,0xb7,0xdf,0xb6,0x3c,0xd6,0x22,0x6c,0x5b,0x00,0x0f,0xdb,0x66,0x5b,0x54,0x35,0x48,0x37,0x8c,0x79,0x74
+.byte 0xd1,0xb0,0x15,0x01,0x22,0x3a,0x7c,0x17,0x8c,0x20,0x06,0x9b,0x13,0x6e,0xee,0xbf,0xb4,0xac,0x01,0x61,0xb9,0x28,0x65,0x8e,0x53,0x12,0x4f,0xe0,0x5f,0xfc,0xdb,0x40,0x6c,0xa2,0x19,0x64,0x49,0x7a,0xc7,0xc5,0xc8,0x53,0x6e,0xd5,0x68,0xe1,0x61,0xe5,0x87,0xc2,0x99,0x59,0x4c,0x27,0xc8,0xd0,0xd0,0x10,0xce,0x9f,0x09,0xff,0xf5,0xa8
+.byte 0xf8,0x79,0xf6,0x0f,0x73,0xda,0x8a,0x36,0x8e,0x48,0x7e,0xbd,0x98,0x76,0x57,0xfa,0x5c,0xec,0xa5,0x3d,0x30,0xfe,0xa3,0xe5,0x27,0x87,0xcf,0x26,0xfe,0x61,0xe4,0xed,0xd1,0xfb,0xfc,0x91,0x5d,0xb6,0x70,0x2c,0x2c,0x59,0x14,0xd5,0x1d,0x9a,0xb9,0x2c,0xef,0x24,0x7b,0x10,0x8d,0x99,0x63,0xaa,0x82,0xf0,0x1c,0xe8,0xa0,0x00,0xa5,0xa7
+.byte 0xf8,0xc0,0x35,0x9e,0x12,0x18,0xaf,0x42,0x9d,0xe5,0x2b,0x72,0x6c,0x31,0xd8,0x8f,0x6c,0xde,0x2e,0x37,0xa6,0x73,0x06,0xe7,0x90,0x43,0x79,0x99,0x64,0xd1,0x17,0xa1,0x43,0x6d,0xd4,0x90,0x50,0xf2,0xcc,0x0b,0x73,0x49,0x9e,0x14,0x7c,0x49,0x92,0x05,0x0e,0x8c,0xda,0xb7,0x18,0xf0,0xcc,0xea,0xe4,0x32,0x58,0xc7,0xbd,0x8e,0xca,0x35
+.byte 0x52,0x9f,0xec,0x5d,0xa0,0x6c,0x83,0x61,0x07,0x74,0x37,0x4a,0x10,0xa0,0x98,0x83,0x3a,0x65,0x17,0x63,0xd0,0x22,0x96,0xb5,0xed,0xbb,0xbb,0x1c,0x18,0x8a,0x49,0x3d,0x0f,0xcc,0x24,0xb3,0x9b,0xb6,0x23,0x2e,0x9d,0x97,0xe7,0x31,0xf8,0x36,0x6d,0x7b,0xa1,0xf1,0x02,0xde,0x7c,0xad,0x77,0x5d,0x85,0x7c,0x39,0x61,0xc7,0xd7,0x3f,0x70
+.byte 0x1c,0xe1,0x0e,0x49,0xf4,0xcd,0xab,0xfd,0x4d,0x2f,0xc7,0xb7,0x53,0xfc,0xed,0xeb,0x41,0x2a,0x80,0x40,0xf3,0x47,0xf8,0x15,0xa0,0x4c,0x8b,0x34,0xf6,0x6a,0xb8,0x30,0x09,0x4d,0xe6,0x60,0xb7,0x24,0x6b,0x4c,0x26,0xdf,0x83,0x37,0xc7,0x96,0xba,0x35,0xda,0x29,0x4e,0xca,0x52,0xf7,0x41,0xd3,0x98,0x27,0xb2,0x9e,0xec,0xcc,0x12,0xdc
+.byte 0x77,0xfd,0x11,0xbd,0xbd,0xbb,0x5e,0x0c,0x37,0x29,0xd2,0x4f,0x7d,0x5c,0x97,0xad,0x72,0x93,0x4a,0xfa,0x17,0x07,0x07,0x26,0xee,0xa7,0x29,0x2e,0xdb,0xf6,0x60,0x65,0x2d,0x85,0xbe,0x27,0x4d,0xf7,0x2b,0xb4,0x81,0xf5,0x3a,0x1d,0xae,0x25,0x8b,0x60,0xc2,0x75,0x3a,0xfd,0xf9,0x4d,0x90,0x7a,0x8a,0x3a,0xf6,0xa9,0xf0,0x11,0xd2,0xb9
+.byte 0xdb,0x23,0x40,0x9d,0x33,0xc3,0xbf,0x60,0x95,0x9c,0x6f,0xa9,0x82,0x42,0xe5,0x67,0x52,0x36,0xea,0x68,0x64,0x24,0x85,0x46,0x7e,0x2a,0x1a,0x6a,0x4b,0xa8,0xb0,0xa0,0x9c,0xb8,0x4a,0xb6,0x2e,0xb2,0x6b,0xf4,0x63,0x9f,0x54,0xb5,0x6f,0x1b,0xf5,0x71,0x7e,0xf8,0xef,0xb2,0x92,0xe2,0xcf,0x65,0xb4,0x02,0x9b,0x75,0x4b,0xf9,0x6b,0xa1
+.byte 0x24,0x3b,0xea,0x7f,0x31,0x08,0xd4,0xdc,0xab,0x12,0xc0,0xca,0x64,0xee,0xfa,0x61,0x1c,0x0f,0x24,0xc3,0x8c,0xbd,0xc8,0xd2,0x42,0xf7,0x1f,0x2e,0xd3,0xd1,0x51,0x86,0xfb,0xa2,0x95,0xc5,0x8c,0x5b,0x61,0x14,0xc9,0xe4,0x07,0xa1,0xf7,0x39,0x11,0x40,0x68,0xd6,0xe2,0x38,0x96,0x6f,0x99,0xf1,0xd2,0xfb,0x8e,0xb8,0x3d,0xf2,0x8a,0x4e
+.byte 0x3e,0x54,0xd9,0x0e,0xd1,0xc9,0x31,0x04,0xa4,0xee,0xbe,0x51,0xcf,0x5f,0xd1,0xc8,0x13,0x96,0x9d,0x9b,0xdf,0x32,0xa9,0x38,0x8f,0xbc,0x7e,0x22,0x1a,0x52,0x5f,0x14,0x61,0xeb,0x78,0xf4,0x01,0xe9,0x5c,0x18,0x1c,0xb5,0xe1,0x80,0x06,0x3e,0x8e,0x72,0x33,0xf9,0xaa,0x49,0xec,0x5b,0x7a,0x04,0xf2,0x9b,0x48,0x8a,0x58,0x14,0x4b,0x7e
+.byte 0x4d,0x26,0x0b,0xe0,0xf0,0x69,0xa3,0x36,0x75,0x3e,0x73,0xec,0x53,0x20,0x35,0x8e,0xfa,0x40,0xf0,0xcd,0x70,0xe1,0xe4,0x64,0x89,0x14,0x55,0xd7,0x20,0xe8,0xbd,0xc2,0x85,0xa8,0x4d,0x51,0x96,0x27,0x54,0x50,0xc7,0xa1,0x9c,0x35,0x52,0x1f,0x8b,0x6f,0xa2,0x62,0x36,0x94,0x02,0xb1,0x01,0xc6,0x4e,0x53,0x83,0x65,0x98,0x25,0x6d,0x26
+.byte 0x6d,0xef,0x4e,0x7a,0xe0,0x56,0x6a,0x6c,0x23,0xe8,0xa6,0x97,0xc1,0xf2,0xb1,0x2d,0x03,0x29,0xef,0xa0,0x6d,0x86,0x8d,0x5a,0x00,0x83,0x14,0xed,0xd4,0x1e,0x79,0xc4,0xb4,0x42,0xfd,0x53,0xaa,0xab,0xd7,0xa3,0xf9,0x7d,0x15,0x26,0xab,0x81,0xc4,0x7a,0x96,0x14,0x94,0x71,0xe1,0x7f,0xc1,0x67,0x5f,0x5f,0x11,0xb4,0x72,0x03,0xf8,0x9b
+.byte 0x2f,0x82,0xa3,0x4e,0xda,0xfd,0x2a,0x31,0xf1,0x74,0x6d,0x96,0x7a,0x9c,0xf9,0x01,0xd9,0x55,0x8e,0x52,0xe4,0xae,0x22,0x14,0x7b,0xc0,0x5a,0xc4,0x31,0x23,0x9a,0x2e,0x9d,0x86,0x86,0xd5,0x66,0xc8,0x8b,0xdb,0x49,0x5f,0xca,0x57,0x51,0x50,0x75,0x3f,0xeb,0xb1,0xe5,0x84,0x42,0x8f,0x0f,0xca,0x86,0xcf,0xb0,0x17,0x06,0x06,0x46,0x8c
+.byte 0x4a,0x84,0xde,0x28,0x84,0x24,0x7f,0x33,0x48,0xe8,0x89,0x87,0x1f,0x02,0x07,0x4f,0x36,0xa9,0xdc,0x8a,0x42,0xb6,0xc7,0x9c,0x47,0xd4,0xd4,0x2d,0xc0,0x17,0xb0,0xe6,0x23,0xb7,0xae,0x0d,0x9f,0x38,0x0a,0xdf,0x7f,0x73,0xbf,0x93,0x19,0x05,0x23,0xbf,0xc0,0x53,0x2d,0xcd,0x3e,0x73,0x01,0x78,0xa7,0xdc,0x6c,0x85,0x1d,0x25,0xc5,0x54
+.byte 0x68,0x95,0xc1,0x20,0x65,0xd9,0x01,0x85,0x7d,0xc9,0xba,0x63,0x43,0x7a,0x23,0xbb,0x95,0x3a,0x76,0x2d,0x75,0x1e,0xac,0x66,0x3e,0x20,0x30,0x8d,0x37,0x64,0x3c,0xc7,0x6f,0x36,0xb8,0x34,0x60,0xd2,0xb4,0x54,0x07,0x52,0x6c,0xfa,0x04,0xfe,0x2b,0x71,0x03,0x03,0x97,0xfc,0x4a,0xf9,0x4d,0x44,0x1a,0xf9,0xd7,0x4b,0xe5,0xe1,0xf9,0xb9
+.byte 0x41,0xa0,0x5b,0xa2,0x69,0x48,0xba,0xeb,0xcc,0x4e,0x55,0x4b,0xbd,0x41,0x09,0xa8,0x90,0x5c,0xc6,0xe3,0x20,0x0c,0x8f,0xfc,0x7e,0x0e,0x4f,0x3d,0x47,0x65,0x40,0x1e,0x79,0x9a,0xe0,0x8f,0x8f,0xe9,0xcb,0xaa,0x04,0xb8,0xd9,0x91,0x30,0x2a,0x4c,0x17,0x44,0xc0,0x03,0x4c,0x37,0xd3,0xdb,0x20,0xe5,0x8e,0x70,0x87,0x57,0x4f,0x8a,0xcf
+.byte 0xee,0x64,0xbc,0xef,0x0f,0x9e,0xcf,0x95,0x5e,0x11,0x4f,0x7a,0x35,0x53,0x8c,0x85,0x6a,0xff,0x72,0x1b,0x35,0x51,0x89,0xf8,0x94,0x65,0x97,0xec,0xfe,0xbd,0x00,0x29,0x3d,0xe8,0x96,0x23,0xa4,0xe3,0xcf,0x81,0xb2,0x8f,0x73,0x4c,0x05,0xc3,0xcc,0x37,0x22,0x97,0xa0,0xda,0x49,0xb2,0xbd,0x07,0x2b,0x26,0xa0,0x6f,0x6b,0x1f,0xa6,0x15
+.byte 0xe3,0x6e,0x12,0xa4,0x51,0x1b,0x72,0x22,0x08,0xfe,0xf7,0x93,0x1a,0x9f,0x62,0x12,0xd4,0x11,0x1f,0xd1,0x80,0xeb,0xa4,0xb1,0xf4,0x37,0x3b,0x60,0xd8,0x2b,0x53,0xae,0x69,0xf8,0x48,0x38,0xf4,0x20,0x28,0xe1,0xfb,0x6a,0xec,0x6e,0x11,0x2e,0x2c,0x59,0x62,0x23,0x8a,0x82,0xc4,0x33,0x7b,0xdc,0x33,0x99,0x41,0x29,0x4f,0xa1,0x6e,0x3a
+.byte 0x48,0x13,0x1c,0x1f,0xa3,0x1f,0xd2,0x02,0x79,0xe1,0xe4,0xb9,0x99,0xa4,0x50,0xea,0x53,0x96,0x4e,0x82,0x7c,0xee,0x65,0x07,0x26,0x87,0xf9,0x9d,0x45,0x17,0x37,0x61,0x7e,0x5f,0xb9,0xd2,0x55,0x3c,0x45,0xf7,0xec,0x33,0x08,0xa3,0x41,0x24,0x8f,0xb2,0x75,0x41,0xb6,0xa2,0x21,0xfe,0x94,0x7e,0x1e,0xe6,0x03,0x6e,0xf4,0xeb,0x23,0x59
+.byte 0x51,0x25,0x99,0x19,0x6d,0xf7,0xe3,0x22,0xd8,0x41,0x0f,0xd5,0xaf,0x0d,0xc6,0x3f,0x8e,0x36,0xee,0x90,0x23,0x67,0x03,0xcb,0xe3,0xaf,0xc4,0xf8,0x22,0x1f,0xd8,0x3e,0x94,0xdf,0x13,0xc9,0x4f,0x17,0x22,0x8c,0x93,0x6b,0x3f,0x60,0x1a,0xbd,0xfa,0x9f,0xe6,0x43,0x45,0xe1,0x0a,0x95,0x21,0x06,0x52,0xbd,0x58,0x56,0x84,0x56,0x36,0xf3
+.byte 0x55,0x58,0x46,0x62,0x6c,0xb3,0xa0,0x29,0x5a,0xfc,0xb4,0x87,0x5f,0x89,0xa5,0xab,0x6d,0x5a,0x44,0xc5,0xc8,0x50,0x83,0xe1,0x41,0xd4,0x97,0x6c,0x08,0xb1,0x43,0x33,0x0d,0x3a,0x8b,0x31,0xa1,0xae,0x77,0x71,0xb7,0x67,0x65,0xd7,0xa7,0xc9,0x6c,0x4a,0x9b,0x80,0xd5,0xbf,0xae,0x0f,0x9b,0xce,0x1a,0xa3,0x26,0xc6,0x19,0xa1,0x8d,0x12
+.byte 0xd9,0x09,0xae,0xac,0x9f,0x4b,0xab,0xaf,0xf6,0xc5,0x9e,0x26,0xe6,0x23,0xcb,0x3e,0x60,0x1e,0x3d,0xa1,0xec,0x59,0xca,0xf1,0x87,0x0e,0xaf,0x47,0x5f,0xab,0x17,0x99,0xbd,0x87,0x1c,0x1d,0x00,0xd6,0xb2,0x59,0x56,0xdd,0x49,0x20,0xb5,0x91,0xf8,0x0c,0xf1,0x80,0xc6,0x37,0x92,0xd7,0x2c,0x02,0x0d,0x47,0x1b,0x1b,0x6b,0x3f,0x60,0xd0
+.byte 0x21,0x9b,0x49,0x47,0x3c,0xaa,0x83,0x44,0x1b,0x92,0x8e,0xec,0x63,0x40,0xd6,0x9a,0x48,0x7c,0x5e,0x97,0xe4,0xf0,0x84,0x36,0x30,0x11,0x0b,0x7c,0x79,0x3b,0xff,0xdf,0x77,0xf6,0xc9,0xdb,0x49,0xdd,0x2a,0xe7,0xca,0x9a,0x5b,0xef,0xd4,0x84,0xe2,0x44,0x8b,0xef,0x4e,0x0d,0x13,0xd6,0xbb,0xba,0x29,0x02,0xae,0xfc,0x55,0x24,0xfa,0x4b
+.byte 0x7d,0x71,0xc9,0xde,0x71,0x36,0xbc,0xac,0x31,0x5c,0xf8,0x20,0xdd,0xb8,0xae,0x03,0xd3,0xb0,0xdc,0x27,0x7f,0xc5,0xff,0xda,0x8a,0x36,0x2d,0x8f,0xae,0xbd,0xf8,0x92,0x28,0x8e,0x0c,0xc3,0xaf,0x4e,0x33,0xf0,0x71,0xdb,0xad,0x4d,0xc1,0xef,0x52,0x1c,0x84,0xdc,0x0d,0xf3,0xab,0xb9,0x0b,0xe0,0x18,0xa5,0x06,0xdc,0x78,0x41,0x73,0x35
+.byte 0x95,0x37,0x84,0xba,0xc1,0x4e,0x0a,0xe4,0x4d,0x05,0xfe,0x9d,0x74,0x68,0x4a,0x35,0xf0,0x15,0xaa,0x7b,0xfe,0x08,0x47,0xb2,0x84,0x65,0x1d,0x0d,0x9f,0xe7,0xe0,0x04,0xf9,0x1c,0xac,0x66,0xb3,0x75,0x96,0x8f,0x25,0xb6,0x29,0x53,0x52,0x50,0x7a,0x50,0xd1,0x89,0xc7,0x05,0xfb,0x3a,0xb0,0xfa,0x6b,0x96,0x9d,0xfc,0xb0,0xcd,0x68,0x21
+.byte 0x61,0xf6,0x65,0x64,0xa7,0xc6,0x56,0xbd,0xf0,0x9b,0x4a,0x9a,0xe2,0x8c,0xd8,0x88,0x70,0x82,0x0c,0x87,0x51,0x77,0x23,0xd8,0xd8,0xf8,0x4a,0xfe,0xf4,0x6d,0x3f,0x2a,0x36,0x0c,0x67,0x85,0x43,0x13,0x83,0xd5,0xe9,0x32,0xff,0x8c,0xec,0xd4,0x7f,0xd2,0x32,0x4d,0x4e,0xec,0x76,0x55,0xf9,0x0d,0xb7,0x57,0x6c,0xc4,0xd6,0x22,0xd3,0x6e
+.byte 0x71,0x23,0x68,0x45,0x03,0x37,0x27,0x3d,0x56,0x89,0xbb,0x7c,0xf1,0xa8,0x09,0xd6,0xb2,0xc5,0xe6,0xf6,0x72,0x77,0x3e,0xb0,0x8a,0x3d,0x17,0xbd,0xd5,0x0d,0xdb,0x62,0xa7,0x07,0x66,0x35,0x19,0x12,0xff,0xcf,0xdd,0xb3,0x09,0xa3,0x58,0x5b,0x0d,0x87,0x76,0x33,0x28,0x98,0x91,0x48,0xac,0xa1,0x22,0x9f,0xda,0x36,0x03,0x8a,0xc1,0x5e
+.byte 0x6c,0x2e,0x42,0x8e,0x1a,0x7d,0x75,0x69,0xb2,0xcf,0xb0,0x14,0x80,0xa8,0x91,0xc2,0xbc,0x24,0x8f,0x25,0x9a,0x9e,0xa3,0x4d,0x46,0x55,0x53,0x05,0x0c,0xf8,0xdb,0xe0,0xee,0xe4,0x32,0xff,0x39,0x74,0x9a,0xa8,0xf7,0xa4,0x6e,0x5b,0x9a,0x89,0x33,0x40,0xf4,0xce,0x54,0x4a,0x18,0xdb,0x11,0xe4,0x83,0x69,0x52,0xef,0x12,0xc6,0x13,0x6e
+.byte 0x2a,0x14,0xb9,0x8e,0x38,0x8d,0x6b,0xef,0x02,0xc8,0x66,0xf0,0x78,0xaa,0xa6,0x04,0xa3,0xa5,0x1d,0xdb,0xac,0x02,0x23,0x4c,0x2a,0xa5,0xbf,0x66,0xa4,0x47,0xa9,0x8e,0x50,0xd2,0xf8,0xf5,0x0d,0x0f,0xc9,0x07,0xd8,0x1a,0x94,0x84,0xcf,0xb3,0x56,0x53,0x5f,0x83,0x1d,0x30,0xb6,0x94,0x36,0xf4,0x16,0x72,0x8c,0x6d,0x49,0xe4,0x6d,0x93
+.byte 0xb1,0xa1,0x97,0x70,0x75,0x47,0x3a,0x7e,0xa6,0x39,0x1d,0xf5,0xcc,0x37,0xaa,0x90,0x53,0xe1,0x9b,0xcb,0x9a,0x97,0x7d,0x18,0x4a,0x3c,0x1f,0x05,0xf4,0xe3,0x6f,0x7a,0x19,0x84,0xbc,0x68,0xa4,0x6e,0x5a,0xb5,0x7a,0x51,0xda,0xf5,0x75,0x1e,0xfe,0xb0,0x73,0x43,0x39,0x98,0xb7,0x1e,0x17,0x36,0x35,0x15,0x64,0x90,0xb6,0x83,0x43,0x8f
+.byte 0xcd,0xb6,0x8c,0xc4,0xe4,0xee,0x0e,0x1c,0xbd,0x3a,0xe6,0x6e,0x44,0x73,0x88,0x30,0xa0,0xf0,0x97,0xf5,0x5e,0x12,0xea,0xd9,0xd7,0xb5,0xc5,0x1d,0xc7,0xc8,0x55,0xbb,0x2c,0x64,0x43,0x50,0x15,0x71,0x02,0xd3,0xf9,0xb4,0xe7,0x2f,0x0f,0x98,0x9e,0x87,0x40,0x2a,0x61,0x06,0x44,0xc2,0x47,0xaf,0x44,0x4f,0xdd,0xa3,0xb0,0xb2,0x8d,0x8c
+.byte 0x83,0x96,0xd3,0x2a,0x38,0xdf,0x87,0x5d,0x1c,0x64,0xc8,0x4f,0x3c,0x41,0xc7,0xf8,0x64,0x58,0xa6,0x9b,0xcb,0xcd,0x77,0xdb,0x38,0xe7,0x30,0xb6,0x91,0x88,0xd8,0x9d,0x29,0x71,0x12,0x9e,0xdf,0x20,0xd9,0x14,0xa3,0xa0,0xbd,0x0a,0x99,0x67,0x0a,0xe1,0xe9,0xba,0xd0,0x1b,0xba,0xc8,0x8d,0x76,0x10,0xe8,0x30,0xa1,0x93,0xf4,0x95,0x6a
+.byte 0x12,0xd5,0x95,0x31,0x7f,0xdb,0x33,0xfc,0xbf,0x7a,0xbe,0xe4,0xfa,0x50,0x1b,0x24,0x75,0x9b,0xf8,0x81,0x34,0xc8,0xfb,0xda,0x3c,0x6f,0x3b,0x9a,0xb2,0x6f,0x94,0x0c,0xd9,0xc3,0x05,0xd6,0x96,0x10,0x27,0xdb,0xd6,0x88,0x72,0xe4,0x8f,0xfc,0xd3,0x52,0xf8,0x63,0xb2,0xce,0xf1,0x2a,0xbc,0x1c,0x23,0x9d,0xfb,0x27,0xdd,0x8d,0xe4,0xcc
+.byte 0x63,0xcf,0xad,0xe6,0xe9,0x4f,0xb8,0x8a,0x20,0x47,0x75,0x73,0x3f,0x27,0x07,0x5d,0x8c,0x8c,0x6e,0x7a,0x91,0xe2,0xf6,0xd5,0x70,0xd8,0x00,0xe5,0x0f,0xde,0x78,0xd8,0xb4,0xd3,0x18,0x5a,0x24,0x43,0x91,0x0c,0xbe,0x8b,0x1b,0x88,0x48,0x7e,0x94,0x05,0xd0,0xec,0xd2,0x71,0x26,0xc7,0x70,0xeb,0x8a,0x83,0x01,0x52,0xdb,0xe5,0x76,0x31
+.byte 0x19,0x14,0x13,0x90,0x5b,0x5a,0x94,0x89,0xe2,0x4e,0x2d,0x17,0xf6,0xbc,0x67,0xee,0x51,0xd4,0x00,0x83,0xe5,0x18,0xa5,0x54,0x6c,0xd2,0x7a,0x1f,0xdb,0x6f,0xed,0x7f,0x07,0xbb,0x9f,0x3a,0xc2,0x8c,0x04,0xf9,0x9a,0x55,0xe3,0x70,0xf3,0x36,0xfd,0x44,0x05,0xd9,0xf3,0xe1,0x87,0x2c,0x29,0xec,0x30,0x8b,0xb7,0xde,0x27,0xa4,0xcd,0xdf
+.byte 0x64,0x0b,0x62,0xdf,0x34,0xa0,0xf5,0xa1,0x69,0xc9,0x0b,0x00,0x81,0xf4,0x03,0x5e,0xef,0xb8,0x26,0x49,0x71,0x5e,0xcd,0x76,0xa2,0x38,0x25,0x1f,0x92,0xc3,0xbf,0xdb,0xb3,0x29,0x37,0x06,0xc5,0xc2,0x3b,0xd8,0xbd,0x55,0xf2,0x7f,0xd5,0xd5,0x34,0x32,0xf1,0xa0,0x92,0x9b,0x1c,0xee,0x6f,0x48,0x40,0x6b,0xd1,0x45,0x09,0x3f,0xaf,0xdc
+.byte 0xe1,0xac,0x75,0x9a,0x33,0xf7,0x50,0x4f,0x2c,0x3c,0x30,0x69,0x69,0x84,0xcb,0xe9,0xca,0xdf,0x8d,0x02,0x5d,0x30,0x71,0x99,0x7b,0xd5,0xb2,0x55,0xdd,0x9c,0x2f,0xae,0x11,0x41,0x01,0x6b,0xf7,0x95,0xe3,0xda,0xe3,0xcc,0xa4,0x17,0xd0,0x50,0xf9,0x4c,0x31,0x2b,0x4e,0xf7,0x49,0xbb,0x75,0x8f,0x28,0x19,0x9f,0x89,0x7b,0x78,0x80,0x41
+.byte 0x50,0x5a,0x5c,0x1e,0x82,0x93,0x9f,0x4f,0x61,0x96,0x29,0x0c,0x25,0xb3,0xe6,0xff,0x86,0x90,0x78,0x09,0x04,0xf9,0x2a,0x3d,0xa1,0xd5,0x68,0xa8,0x0d,0xd9,0x41,0x01,0xdc,0x41,0x01,0xff,0x20,0xc0,0x63,0x0b,0x4d,0xd5,0x80,0x78,0x82,0x05,0x51,0x62,0x09,0xf9,0x11,0xbd,0xde,0xc0,0x7d,0x3f,0xf2,0x30,0xfb,0x41,0x68,0x39,0xb0,0xc2
+.byte 0x2e,0x33,0x4e,0xa7,0x85,0x01,0x6b,0xd1,0xf9,0x78,0xef,0xe9,0x7c,0x0e,0xaf,0x13,0x1a,0xf5,0x97,0xde,0xf0,0xbb,0x67,0xf9,0x9b,0xab,0xee,0x86,0x73,0x9b,0x23,0x6c,0x56,0x0d,0xa0,0xda,0x4c,0xff,0x2b,0xc5,0x92,0xdb,0xee,0xbd,0xba,0x3a,0x54,0x21,0xc0,0x5c,0xfe,0x21,0xf1,0xbd,0xac,0xaf,0xa3,0x7a,0x52,0x62,0x15,0x8b,0x8f,0xb5
+.byte 0x82,0xc6,0x1a,0xfb,0x22,0xbc,0xa2,0x05,0x42,0xfe,0xb4,0x12,0x6b,0xad,0xa9,0x76,0xb7,0x6b,0x1c,0xd8,0x34,0x5c,0x7d,0xd5,0xa9,0x0d,0x91,0xf6,0xc1,0x47,0x69,0xbc,0x43,0x8f,0xb7,0xfc,0x84,0x2e,0xa0,0x8e,0x3f,0x52,0x3b,0xbd,0x1f,0x28,0x6b,0xc8,0x13,0x37,0xd6,0x44,0xe9,0x8d,0x08,0x92,0x96,0xe5,0x2c,0x57,0x34,0x59,0x21,0x04
+.byte 0xa8,0xaa,0x56,0x25,0xa4,0xc8,0xae,0x68,0x17,0x9e,0xa4,0xf4,0x42,0x64,0x57,0x4b,0x54,0x85,0x8a,0xd1,0x09,0x09,0x25,0x18,0x05,0xb0,0x09,0x9d,0xd9,0x75,0x21,0xd3,0x75,0x31,0xf8,0x35,0x46,0xc8,0xd4,0x47,0x9d,0x87,0xeb,0x40,0x95,0x19,0x24,0x7c,0x6e,0xe9,0xd5,0x14,0xaa,0xc3,0xbe,0x22,0x18,0xc1,0xa0,0x5f,0x34,0x98,0xc2,0x4d
+.byte 0x3f,0xa6,0x09,0x57,0x1b,0x75,0xc6,0x89,0xee,0xf0,0xbd,0xbc,0x1a,0xd3,0xea,0x6e,0x82,0x06,0x90,0x4f,0xbb,0x61,0xac,0xbb,0x3e,0x8c,0x94,0xea,0x69,0x58,0x26,0x2e,0x17,0x78,0xad,0x14,0xa4,0x79,0x14,0xbd,0xc1,0x78,0xf9,0xbb,0x11,0x7e,0x8d,0xbf,0x3e,0xc8,0xc5,0x69,0xd7,0x5a,0x4c,0x4b,0x86,0x25,0x4c,0xe9,0x3a,0xc2,0xd9,0xf8
+.byte 0xbf,0x5e,0x46,0x4f,0xca,0xba,0x25,0x58,0x73,0x82,0x02,0x8a,0x41,0x9e,0x2d,0xa9,0x08,0xb4,0x60,0x2a,0x11,0x2c,0x2f,0x3d,0x5e,0x68,0xd8,0xa9,0x2e,0x1c,0xfa,0xdc,0xda,0xfb,0xfb,0xf3,0xb2,0x66,0xd3,0x57,0xe6,0x09,0xeb,0xe5,0xf4,0xed,0x2d,0xb7,0x3a,0xce,0x69,0x2d,0xb4,0x79,0x1a,0x99,0x9d,0xc8,0x99,0x9f,0x9b,0x78,0xd4,0x8a
+.byte 0x73,0xd5,0x89,0x9f,0xda,0xdf,0xd0,0xca,0x6b,0x63,0x5a,0x1e,0xe0,0x2f,0x01,0xa4,0xd0,0x62,0xc0,0x5f,0x4e,0xd9,0xd3,0x47,0xe4,0x68,0x73,0x8c,0x87,0x50,0x91,0xec,0x8e,0x0b,0xa7,0xf0,0x4c,0x32,0x19,0xaa,0x00,0xbd,0xe4,0x20,0xab,0x5c,0x00,0xdb,0x18,0xc0,0xff,0xc1,0xc0,0x8f,0xa2,0x8c,0x47,0x91,0x86,0xde,0xa9,0x09,0xb5,0x86
+.byte 0xcc,0x1d,0x7f,0x4b,0x7d,0x16,0xf6,0x21,0xd0,0xf8,0xaa,0x16,0x20,0xa9,0xac,0x3e,0xef,0x56,0xee,0x0e,0x1d,0xd6,0x44,0x7d,0xa9,0x84,0x41,0x8d,0x69,0x69,0x92,0x74,0x87,0x3b,0x8a,0xbf,0x40,0x29,0x45,0xf9,0xa8,0x52,0x8c,0x99,0x95,0xe7,0x6a,0xcd,0x3f,0x74,0x2d,0xde,0x82,0x47,0x41,0xa6,0xd9,0x5a,0x30,0x6c,0x20,0x98,0x3f,0xfb
+.byte 0x66,0x08,0x73,0x68,0xe1,0xcd,0xfd,0x3c,0x4f,0x33,0x6b,0x42,0xa4,0xab,0x78,0x22,0xb5,0xd9,0x6f,0x99,0xcb,0x85,0x6a,0x14,0xb9,0xd3,0x0f,0xfb,0xd7,0x07,0x7b,0xbe,0x6a,0xd9,0xba,0xde,0x98,0xac,0xd8,0xe5,0x40,0xcd,0x59,0x7f,0x88,0x3c,0x4e,0xfa,0xfe,0xbe,0x48,0x21,0xb5,0x40,0xd5,0xc8,0x1e,0x8a,0x56,0xd9,0xec,0x25,0xad,0x5e
+.byte 0x31,0xf3,0xf2,0x3d,0x0b,0x56,0xb5,0x20,0x08,0xd3,0x02,0x81,0x93,0x29,0x3d,0xbd,0x0a,0x9c,0x26,0x74,0xdb,0x6b,0x7e,0xd1,0x4a,0x1a,0x1c,0x47,0x49,0x34,0xba,0x08,0x7a,0x6a,0xb3,0xd6,0x3b,0xd0,0x28,0x50,0xa1,0xd8,0x17,0x85,0x61,0xab,0x24,0x22,0xda,0xc8,0xb4,0x1b,0x07,0x2e,0x67,0x77,0x84,0xdc,0x6f,0xfd,0x51,0xa5,0xe8,0x34
+.byte 0x63,0xbd,0xae,0xae,0xc7,0x84,0x1d,0x60,0xc8,0x8f,0xde,0x22,0xfd,0x85,0xb4,0x12,0xb4,0x04,0x5b,0xe7,0xb5,0x58,0xf8,0x56,0x66,0xa3,0xb7,0x1e,0x54,0xd0,0xdb,0x12,0xaa,0x9c,0x89,0x5b,0xfa,0xf4,0xe7,0xe2,0xf4,0x9c,0x08,0xa8,0xbe,0x6b,0xe3,0xce,0x6a,0x88,0xb5,0x74,0xb9,0x49,0xaa,0x7b,0xcd,0xbc,0x17,0x81,0x61,0xe2,0x28,0x6f
+.byte 0x4b,0xe8,0xa4,0x55,0xc5,0x1e,0x69,0x21,0x8f,0xfd,0xa8,0xd0,0xb9,0x6f,0x1b,0xfe,0x8c,0x5e,0xf9,0x7d,0xd9,0xc2,0xbe,0x0f,0x6f,0xbd,0xa7,0x94,0x10,0x4e,0xe0,0x5a,0xbb,0xa3,0x40,0x9a,0x5a,0xad,0x10,0x97,0x92,0x3b,0xbd,0xa7,0x75,0x77,0xc6,0xa6,0xde,0x42,0x00,0x3b,0xf7,0xe4,0xf4,0xd7,0xdd,0xaa,0x31,0x1e,0x64,0xae,0x17,0x0a
+.byte 0x25,0xa0,0x94,0x5f,0x3c,0xbc,0x3d,0x00,0x00,0xd3,0xba,0x7b,0x98,0x81,0xe1,0xdf,0xba,0x60,0x08,0x2a,0xe5,0x66,0x08,0x3e,0xfa,0x81,0x0a,0x89,0x4e,0xe5,0x3b,0xc3,0xdf,0x21,0x9b,0x54,0xa3,0xb3,0xc3,0xc1,0xce,0xb4,0xaa,0x06,0xee,0x2e,0x34,0x55,0xcc,0x8b,0x0f,0xcd,0x1d,0x1b,0xd9,0x9e,0x59,0xf0,0x93,0xc9,0xba,0x35,0x5c,0x99
+.byte 0xf6,0x86,0x9e,0xe9,0xf8,0x84,0x80,0x05,0x76,0x6f,0x8b,0x38,0xb6,0xe0,0xdf,0x0c,0xb3,0xc7,0x6e,0x62,0x53,0xe4,0x69,0x0a,0xc1,0xcf,0x5b,0x84,0x75,0x78,0x56,0x35,0xa5,0x26,0xc6,0xae,0x76,0x2e,0xc8,0x29,0x8d,0x16,0xd1,0x4f,0x27,0x36,0x22,0x41,0x31,0xfb,0xbe,0xd0,0xf9,0x0a,0x06,0xbf,0x59,0x6e,0x06,0x20,0x0d,0x52,0x66,0x63
+.byte 0x38,0x2a,0xb6,0x15,0x0f,0x51,0x14,0x0b,0xd1,0x63,0x40,0x2a,0xfe,0x88,0x51,0x53,0x5d,0x82,0x4e,0x1b,0x91,0x30,0x7a,0x09,0xec,0xb6,0x53,0x10,0x87,0xba,0x34,0x1f,0x8a,0xf7,0x85,0x31,0x77,0x76,0xba,0x55,0x07,0x6b,0x80,0x5d,0x14,0x23,0x50,0xef,0x07,0x91,0xc5,0x71,0x3a,0x55,0x44,0x9d,0xbf,0xe6,0xab,0xde,0x7c,0xdd,0xe0,0xcb
+.byte 0xcc,0xc1,0x78,0xb4,0x8c,0xd1,0x35,0x73,0x80,0x9c,0x44,0xff,0xf8,0x8a,0xaa,0x9a,0x94,0xcf,0xc9,0x51,0xfc,0xa5,0x3d,0x86,0xd6,0x67,0x71,0x1b,0xdb,0x83,0xb2,0x67,0xb0,0x17,0xce,0x13,0x1b,0x7a,0x84,0xc8,0xaf,0x69,0x7e,0xf0,0xab,0xc5,0x8c,0x37,0x12,0x43,0x33,0x5f,0xaa,0xde,0xcf,0x4c,0x73,0x7f,0x6b,0x80,0x18,0x27,0x72,0x62
+.byte 0xe8,0x3d,0x1c,0x94,0x91,0xfa,0x33,0xef,0x13,0x94,0x7f,0xb6,0x53,0xe3,0xd7,0x73,0x05,0x3e,0xe8,0x45,0xde,0x1e,0x1d,0xa4,0x41,0x11,0x0a,0x7f,0x62,0x6e,0x9f,0x9f,0xec,0xe9,0x87,0xe0,0x5d,0xbb,0xbc,0x0b,0x37,0xa2,0xf3,0x68,0x8a,0x24,0xec,0x98,0xe5,0x5d,0xbf,0xa1,0x60,0x2b,0xc2,0x74,0x4b,0x8b,0x85,0x44,0x28,0x02,0xd5,0xb9
+.byte 0xae,0x00,0x37,0x1e,0x0b,0x46,0xe6,0x40,0xf1,0xdc,0xa0,0xfc,0xae,0x04,0x7f,0xb6,0x46,0xa3,0x22,0x79,0x92,0xda,0x89,0xa0,0x38,0xf0,0xa2,0x4a,0x76,0x79,0x0c,0x46,0x4d,0xa9,0xe6,0x75,0xff,0x01,0xb3,0xe4,0x13,0xc2,0x53,0xe9,0x6d,0x1f,0xdd,0x88,0xcf,0x10,0xf5,0x16,0xef,0x05,0x59,0x51,0x15,0x49,0x17,0xda,0xff,0x0e,0xb3,0xb9
+.byte 0xae,0x79,0xc6,0xb1,0x94,0x08,0x09,0x30,0x9f,0x2a,0xfd,0x55,0xc0,0x41,0x8c,0xe5,0x0e,0xee,0xc2,0xa0,0x05,0x36,0x66,0x8d,0x9a,0xcc,0xc9,0xeb,0x1d,0x34,0xc0,0x1a,0x29,0xc2,0xcd,0xb7,0x25,0xd3,0x83,0xf8,0x1e,0xa0,0xf4,0x50,0xd4,0x08,0x0d,0xcb,0x6a,0x2f,0xa5,0x8b,0x30,0x94,0x89,0xea,0x94,0x6c,0x00,0x7e,0x7f,0xb5,0x4d,0x61
+.byte 0xa7,0x9d,0x94,0xcc,0x14,0x8f,0x75,0x1f,0xef,0x2b,0xbe,0x37,0xdd,0x19,0x41,0x2e,0x90,0x36,0x27,0xa5,0xa9,0x6c,0x75,0x8c,0x2d,0xe3,0x97,0x74,0x91,0xf3,0xb8,0xcb,0xcb,0x74,0xba,0xf0,0x57,0x70,0x89,0xee,0x4d,0xc5,0xfe,0x3e,0x60,0xe3,0x5b,0x28,0x36,0x91,0x6f,0xcd,0x6c,0x33,0xb6,0x44,0x0c,0xce,0x81,0xe4,0xdb,0x84,0xbe,0x4e
+.byte 0xef,0xb8,0x75,0xf7,0x8b,0xb0,0xb7,0x0d,0x00,0x13,0x54,0x39,0xfd,0x9e,0x86,0x5c,0x59,0xd0,0x84,0x0f,0x97,0xc0,0xf8,0xfa,0x4a,0xcf,0x57,0xb8,0x24,0xf0,0xa8,0x40,0x70,0x9d,0xc4,0xe5,0xc7,0xc9,0xcb,0xb6,0xf4,0x0b,0xb5,0xcc,0xe0,0x90,0x2b,0x42,0x81,0xd6,0x59,0x2e,0x11,0xbd,0xe8,0xf5,0xef,0xa8,0x2b,0xdb,0x93,0x62,0x1e,0xef
+.byte 0x3a,0x5f,0xf5,0x47,0x15,0x1f,0x03,0x6f,0x40,0x85,0xff,0x50,0x89,0x2e,0x72,0x8f,0x5c,0x0d,0x61,0x84,0x8d,0x8a,0x8f,0x2a,0x47,0x7c,0x97,0xfe,0x8a,0x97,0x6c,0xd5,0x1c,0x97,0xfa,0x59,0xbe,0x2c,0x0f,0x4d,0x85,0x7f,0x18,0xe3,0xea,0xe8,0xde,0x5a,0xf3,0x67,0xe1,0x71,0x7e,0x81,0xa3,0x74,0x0d,0xf4,0x3d,0x5a,0xec,0xc1,0xcf,0x6f
+.byte 0x08,0x0f,0x5a,0x63,0x72,0x0b,0x46,0x5d,0x38,0x80,0xea,0xb7,0x12,0x5d,0xce,0x37,0x26,0xaa,0xd3,0x0d,0x93,0x4a,0x34,0x20,0xd5,0x51,0x54,0x1c,0x5e,0x53,0xa9,0xed,0x26,0x3c,0x29,0xaf,0xbe,0x73,0x34,0xa5,0xc3,0xbf,0x8c,0x8a,0xc3,0x30,0x89,0xaf,0xa9,0x2d,0x28,0x35,0x7d,0x6b,0x84,0x23,0x22,0xee,0x8c,0x82,0x04,0xbd,0x26,0x52
+.byte 0x26,0x73,0x76,0x05,0x35,0x0c,0xec,0xf7,0x54,0xb2,0x17,0x68,0xe9,0x68,0x67,0xbb,0x0d,0x98,0x19,0x32,0xa7,0xdb,0xf9,0xef,0x42,0xe7,0xc2,0xe2,0x39,0x9c,0xae,0xbb,0xdb,0x91,0x28,0x82,0x88,0x23,0x61,0x50,0x6d,0x61,0x39,0x73,0xf8,0x6a,0xee,0xf3,0xa9,0x2c,0x78,0x0d,0x5a,0xed,0xb1,0x08,0x8f,0x24,0xe5,0xb7,0xa4,0xdf,0x65,0x9a
+.byte 0x72,0x3a,0x39,0x9c,0xf4,0x43,0xdc,0x8a,0xa3,0x3d,0xb5,0x1e,0x7b,0xe5,0x83,0x11,0x07,0xab,0x62,0x7e,0xac,0xab,0x52,0x94,0x0b,0xaf,0xdf,0x54,0x18,0xf1,0xc0,0x9f,0x1c,0x33,0x02,0xd9,0x62,0xc3,0xcc,0xaf,0x32,0x09,0x35,0x77,0xad,0x72,0xd6,0xb5,0x2d,0xaf,0xf9,0x39,0xfb,0x95,0xbb,0xf9,0x84,0x80,0x84,0xc8,0xc6,0x6d,0xb5,0x79
+.byte 0x25,0xf4,0x6c,0x71,0x26,0xda,0x74,0x86,0xad,0x52,0x47,0x8b,0x46,0x32,0xf6,0x2c,0x89,0xdb,0x93,0x1f,0x46,0x83,0x91,0x19,0xd2,0x0c,0x29,0x97,0x5f,0xa9,0x2b,0x87,0x0c,0x87,0x89,0xe6,0x63,0xa1,0x36,0xfb,0xfa,0xb4,0xb8,0x8e,0x5f,0xe9,0x8f,0x62,0xd2,0x81,0x1d,0x7b,0xc6,0x14,0x37,0x56,0x73,0x64,0x3d,0x0a,0xfd,0xe5,0x94,0x01
+.byte 0x09,0xc8,0x0d,0xa8,0x92,0xda,0x43,0xc4,0x41,0xca,0x3c,0x27,0x2c,0xbb,0xc4,0xb2,0x77,0x13,0xa6,0xb0,0x0e,0x97,0x6a,0xb2,0x83,0xe5,0x5e,0xa3,0xc0,0xe8,0x5e,0x0b,0xe6,0x00,0x04,0x6c,0x1b,0xac,0x84,0xab,0xd3,0xac,0x5f,0x39,0xc2,0xf8,0xfd,0x66,0xf7,0x97,0xd7,0xb9,0x6b,0xd8,0x2a,0x49,0xf7,0x67,0xd8,0xd5,0xa4,0x89,0x57,0xa6
+.byte 0x8f,0x7c,0xcf,0xaf,0xfe,0x3c,0x92,0xc8,0x23,0x2c,0x26,0x83,0x86,0x16,0x97,0x34,0x71,0x3e,0x82,0x2b,0xc7,0x75,0x5a,0x59,0xb3,0x44,0xdd,0x4e,0xd4,0x6d,0x1b,0x9f,0x3c,0x35,0xc4,0xe4,0xf2,0x95,0xb6,0x90,0x95,0xa7,0xc4,0x03,0x10,0x7d,0x3d,0xeb,0x74,0x29,0xaa,0x0c,0xd3,0x27,0xcd,0x3a,0x85,0x3c,0x88,0xd5,0x9a,0x46,0x84,0x8e
+.byte 0x36,0xde,0xe3,0x6a,0x27,0xbf,0xc3,0xd0,0x3e,0xa3,0x0e,0x62,0x1f,0xdf,0x4c,0x02,0xa7,0x11,0x91,0xb0,0x6b,0x50,0xc1,0xe0,0x18,0x5a,0xc0,0x10,0xc7,0x1c,0xb6,0x36,0xac,0xe7,0x7d,0xad,0x34,0x63,0x4f,0x17,0xcc,0x41,0x30,0xec,0xd7,0x14,0xb9,0xfe,0x07,0x5c,0x3d,0xbe,0x08,0x77,0x5b,0xdf,0xa3,0x20,0x56,0x55,0xa2,0x8a,0xe7,0x0d
+.byte 0xf6,0xfc,0x91,0x37,0xb8,0x92,0x6c,0xd9,0x5c,0xb0,0xc2,0xf7,0xc0,0x38,0xfa,0x54,0xc6,0xa1,0xd3,0x4d,0xae,0x49,0x0d,0xd1,0xc0,0xef,0xbe,0x27,0xce,0x23,0x8e,0xf2,0x9b,0x68,0x02,0x67,0x8f,0x53,0x9d,0xf6,0x23,0x57,0x85,0xdd,0x8d,0xd7,0xcb,0x47,0xf1,0xd8,0x17,0xd8,0x46,0x72,0x28,0x4b,0xac,0x94,0xd3,0x5d,0x53,0x4f,0x06,0x19
+.byte 0xc6,0x0e,0x0b,0x9f,0x58,0xc6,0x3f,0xea,0x4e,0x83,0x5e,0xd3,0xcc,0x44,0x55,0xa3,0xc7,0x24,0x19,0xea,0x1b,0x18,0xc1,0x18,0x5f,0x21,0x67,0x73,0x32,0x4e,0x31,0x69,0x05,0x40,0x79,0x7c,0x05,0x13,0xdd,0x50,0xea,0xfa,0xc2,0x26,0xe2,0x33,0xff,0x34,0x0d,0xda,0x77,0x27,0xe0,0xe7,0xa6,0x7b,0x8e,0xcd,0xdb,0x92,0x48,0x3a,0x2d,0x52
+.byte 0xf5,0x59,0xca,0xc7,0x47,0xda,0xb7,0xc7,0x8c,0x37,0x5e,0x29,0x30,0xf5,0x57,0x74,0x8b,0x10,0xcb,0x20,0x31,0x4b,0x12,0xe3,0x84,0xd2,0xb2,0xc3,0xd0,0xe3,0x94,0x18,0xa2,0xdc,0x8f,0x4d,0xc3,0x0a,0x43,0x07,0x2c,0x6b,0x41,0x64,0xc0,0x35,0x8f,0x37,0x9b,0xd7,0x78,0xab,0xd0,0xdc,0x1f,0x77,0x55,0xab,0x71,0xc8,0x99,0x98,0x00,0x29
+.byte 0x1c,0xab,0x3c,0x5f,0x82,0x96,0xc2,0xc8,0x9b,0xd4,0x68,0x3f,0x3d,0xe6,0x5a,0x4c,0x1c,0x7b,0x51,0xa3,0x79,0xe8,0x0e,0x8a,0x78,0xdc,0x98,0x63,0x80,0x74,0x32,0x9d,0x7c,0x3a,0x79,0x54,0xa7,0x4c,0xa4,0x4e,0xfc,0xa5,0x8a,0xa4,0x19,0xce,0x84,0xbb,0x8a,0xb9,0x93,0x4a,0x2d,0x82,0x5d,0x1d,0xf8,0x2f,0x85,0xb3,0x90,0x32,0x61,0x6d
+.byte 0x13,0x33,0xac,0xbc,0x5d,0x3a,0x54,0x45,0x04,0x50,0x30,0x30,0xc7,0x58,0xbe,0xed,0xdd,0xa1,0xae,0x6d,0xe5,0xde,0xed,0x63,0x9f,0xd4,0x2b,0x8d,0x1f,0x69,0xde,0xda,0x55,0x3f,0x3b,0xe7,0xc8,0x73,0xc0,0x68,0x18,0x6a,0xb3,0xfb,0xce,0xaf,0x46,0x0a,0xcc,0x81,0xa8,0x96,0x6d,0xb6,0xa4,0x74,0xf3,0x8c,0x95,0x2d,0xa1,0xfe,0x09,0xb8
+.byte 0xdb,0x3c,0xcd,0xdc,0x5b,0x0e,0x2d,0xff,0x89,0x8a,0xfd,0x7a,0xe9,0x69,0x0b,0xdd,0x4e,0x9b,0x94,0x64,0xe4,0xb6,0x5d,0x69,0xef,0x9c,0xf6,0xe6,0x44,0x73,0xd5,0x86,0x47,0x63,0x77,0x3e,0x74,0xaa,0xf3,0x6b,0x1f,0x37,0xbf,0xef,0xa2,0xff,0x86,0x61,0x78,0xc4,0xb5,0xbd,0x5a,0x43,0x49,0x80,0x16,0xf2,0x4c,0xec,0x1e,0x07,0x0f,0x41
+.byte 0x60,0x6f,0x3a,0xd2,0xab,0x85,0xc0,0x5c,0xfc,0x9f,0x48,0xad,0x5e,0xe0,0x7d,0x66,0x8e,0x46,0xf1,0xc3,0xb0,0xbc,0x5e,0x3b,0x10,0x7c,0xfc,0xa3,0x27,0xbd,0x8f,0xae,0xd9,0x61,0x39,0xbf,0xca,0x27,0xbb,0xe7,0xda,0x59,0xa8,0x63,0x38,0x16,0xd9,0xb5,0xa6,0xd9,0x1c,0x2b,0xa1,0x42,0xec,0x50,0xd7,0x63,0x09,0x22,0xe0,0x0c,0xb8,0xec
+.byte 0x12,0x9b,0xdb,0x8a,0xd3,0x02,0xcf,0x32,0xa9,0x88,0xa4,0x31,0xc8,0xa9,0xf4,0x03,0xf2,0x9d,0xe1,0x41,0xf0,0x0f,0x23,0x65,0xa8,0x99,0x55,0x87,0xf2,0x17,0x66,0xf0,0x94,0xe8,0xe9,0xb6,0xfd,0x10,0xb9,0x55,0xf4,0xda,0x06,0x7a,0xbe,0xe2,0xd3,0xfa,0xb8,0xf7,0x85,0xdf,0xee,0x39,0xdc,0x0f,0xda,0x87,0xf5,0x66,0xd8,0x1b,0x5c,0x0c
+.byte 0x13,0xe8,0xa2,0xcd,0xdf,0x47,0x33,0xd7,0xf4,0x5c,0x79,0xc7,0xf4,0x68,0xe4,0x2d,0xa1,0xde,0x5c,0x06,0x1c,0x85,0xf1,0x2a,0xf9,0x73,0x44,0xbc,0xd3,0x57,0x4f,0x0f,0xcd,0xcc,0x40,0xeb,0x9d,0x35,0x8e,0xdf,0x1d,0x4a,0x61,0xd0,0x66,0xb5,0x16,0xce,0x45,0xc0,0xbf,0x01,0xe3,0xb2,0x51,0xba,0x53,0x18,0x2a,0xff,0x19,0xea,0x41,0xa2
+.byte 0xac,0x0b,0x50,0xd3,0xc1,0x6a,0x9c,0xb0,0x34,0x6f,0xa0,0xcb,0xc7,0xc6,0x79,0x5d,0x17,0x3a,0x4c,0xa3,0x16,0xdc,0xac,0x10,0xf0,0x24,0xad,0x9a,0x5b,0xa9,0x7e,0x45,0xcd,0xe9,0xad,0x87,0x04,0xbc,0x2a,0x05,0x59,0xd1,0xdb,0x86,0x22,0x40,0xdf,0xb1,0xff,0x8d,0x3c,0xf8,0x6a,0xf3,0xcb,0x60,0xf9,0x35,0xa6,0x42,0x81,0xcb,0x0f,0x7c
+.byte 0xf7,0x24,0x3b,0x0c,0x94,0x32,0xd9,0xec,0xcf,0xd1,0x31,0x3e,0x3e,0xeb,0xa9,0xf2,0x1f,0x2d,0xa7,0x89,0xf7,0x67,0x7d,0x90,0x9d,0x40,0xf2,0xdb,0x07,0x8f,0xb8,0x6f,0xfd,0x78,0x6e,0xd0,0x9e,0xd5,0x7d,0xb0,0x7d,0x65,0xdc,0x6e,0x50,0xec,0x7a,0x5c,0x2c,0x3e,0x6f,0x64,0xa3,0x10,0x34,0xf7,0x71,0xc8,0x82,0xb6,0x96,0xb8,0xb1,0x2a
+.byte 0xb4,0x03,0x95,0x75,0x90,0xac,0x6c,0x81,0x17,0x97,0x06,0xd0,0xb8,0xc5,0x98,0xc5,0x9e,0x46,0x07,0x13,0x02,0x9e,0x47,0x69,0xba,0x85,0x2d,0x09,0x86,0x50,0xe4,0x76,0xb1,0xa2,0xbe,0x8b,0x91,0x6b,0x3b,0x76,0xa3,0xb7,0xf5,0x7f,0xfe,0xf1,0xa4,0xf3,0xc3,0x53,0x64,0xef,0x97,0x86,0x96,0x8b,0xc4,0xae,0x06,0x8b,0xe8,0x3c,0xdc,0xff
+.byte 0xfa,0xad,0xcb,0xcb,0x53,0x15,0xf2,0xcc,0x9f,0x48,0xf9,0x57,0x6a,0xcd,0xb2,0xee,0x46,0xc0,0xbf,0x82,0x58,0x60,0xda,0x2f,0xbd,0xde,0xc7,0x41,0xcb,0xf1,0x38,0x56,0x9d,0x38,0x38,0x3d,0xea,0x5e,0x38,0xf1,0xd0,0x02,0x35,0xee,0x4c,0x2f,0x1d,0x19,0xbd,0x08,0x01,0xc3,0x8f,0x75,0xe2,0xf3,0x93,0xbb,0x76,0x6b,0xd7,0x87,0x76,0x7f
+.byte 0x3b,0x29,0x08,0x9f,0x3a,0xa5,0x44,0x96,0x5a,0xb3,0x78,0xa9,0xbe,0xf7,0x5d,0xda,0x06,0x37,0x98,0x5d,0xbe,0x6e,0xec,0x58,0x53,0xd1,0xa5,0xd7,0x7a,0x16,0xb1,0x59,0x98,0x42,0x37,0x76,0x1b,0xd6,0x2e,0xa7,0xdc,0x45,0xa6,0x9c,0x9c,0x99,0x24,0x0e,0x22,0xae,0x94,0x65,0xeb,0x4e,0x64,0xc3,0xb0,0xac,0x19,0x41,0xf1,0x62,0x65,0xb2
+.byte 0x35,0xf5,0x2f,0xdb,0xd2,0xf0,0x78,0x19,0x35,0x04,0x6f,0x9c,0xf4,0xaf,0x81,0x68,0x4f,0x8b,0x85,0xfa,0x31,0x23,0x06,0xeb,0x37,0x86,0x43,0x51,0xb3,0xd2,0x2a,0xd7,0xd5,0xa9,0x33,0xba,0xfd,0xb5,0x0e,0x6d,0x9a,0x91,0xf9,0xe7,0x27,0xb7,0xff,0xe6,0xe7,0x34,0xc5,0x1a,0xa3,0x45,0x3b,0x71,0x34,0x87,0x7e,0xe7,0xab,0x74,0xc5,0xff
+.byte 0xeb,0x23,0x8f,0x3f,0x5d,0x1c,0x91,0x47,0xeb,0x3e,0x5f,0x5a,0xa6,0x5a,0xde,0xa9,0x5f,0xf4,0x8f,0x95,0xc6,0x25,0x3c,0xd5,0xaf,0xfd,0x4d,0x33,0x68,0xe1,0xa3,0x51,0x1b,0x07,0xad,0xb9,0xec,0xf1,0x50,0x51,0xbf,0xeb,0xe8,0x58,0x2a,0x50,0x0e,0x9d,0xc2,0x8a,0x83,0x8c,0xb0,0xb8,0xde,0x1d,0x7b,0x0f,0xff,0xfc,0xfc,0x31,0xe5,0x62
+.byte 0x40,0xc8,0x28,0x30,0x31,0xc9,0x82,0xab,0xbe,0x50,0xe5,0xfe,0x1f,0x49,0x17,0xf9,0xea,0x23,0xc7,0x6d,0x8d,0x63,0xc3,0x70,0x40,0x32,0x0b,0x48,0x7a,0xd9,0x03,0x52,0x1b,0xf4,0x90,0xd6,0x6d,0xd2,0xfc,0xec,0x24,0x7f,0x21,0x2e,0xd4,0xb5,0x60,0x44,0xd9,0x83,0xb0,0x3e,0x75,0x8a,0x6a,0x09,0xab,0xa8,0x4f,0x48,0x3c,0x2b,0x89,0x30
+.byte 0x29,0xdb,0x1a,0x8e,0x68,0xe4,0x89,0xed,0x10,0xe8,0x46,0xa7,0xf9,0x5f,0x7d,0x42,0xe0,0x8d,0xbc,0x3d,0x4d,0xd8,0x06,0x4a,0xf9,0xbb,0x97,0xa7,0xdb,0x24,0x0b,0xfc,0x49,0x92,0x5d,0x80,0xf8,0xed,0x57,0xc7,0x1e,0x82,0xed,0x41,0xb8,0xfd,0x71,0xb9,0xa5,0x11,0x52,0xdd,0x1e,0xa4,0xf1,0x02,0xc7,0x54,0x7c,0xdc,0x37,0x9f,0xfe,0x37
+.byte 0xe8,0xa5,0xcf,0xb0,0x3d,0x25,0x3f,0x24,0xfe,0xf2,0x63,0x97,0x3c,0x13,0xdc,0x31,0x78,0x07,0xf1,0x8e,0xee,0xc6,0x00,0xf8,0xfd,0x84,0x53,0x4d,0x92,0xa1,0xef,0xd0,0xb1,0x12,0x0a,0x12,0x91,0xeb,0x52,0xdd,0x6e,0x15,0x98,0xd2,0xe1,0x53,0x7a,0x0e,0x02,0x83,0xd3,0xd1,0xde,0x72,0x6e,0x5b,0x4b,0x8d,0x40,0xe3,0x2d,0x22,0x59,0x9d
+.byte 0xee,0xbe,0x43,0x18,0x62,0x8c,0x77,0x18,0x91,0xf5,0x9e,0xbc,0x3e,0x8b,0x77,0xb6,0xdb,0x5c,0xcb,0xcd,0xdb,0x36,0xea,0xf5,0x1d,0x9b,0xa7,0x13,0xef,0xda,0xd0,0xe8,0xd8,0xb2,0x4c,0xc6,0x19,0x3d,0x77,0x2d,0x0d,0xad,0xe4,0x32,0x24,0xe9,0xd4,0x7f,0x72,0x1d,0xc6,0x6e,0x83,0x7d,0xb8,0x62,0x64,0x9d,0x9a,0xd7,0x13,0x93,0x92,0xf1
+.byte 0x37,0x98,0xcf,0x44,0x66,0xab,0xd1,0x61,0x6c,0x08,0xa7,0x41,0x4e,0x37,0xc1,0x67,0xfb,0x7c,0x22,0x8f,0xbd,0x93,0xb2,0x09,0x13,0xa0,0x48,0x60,0xaf,0xda,0x73,0x2b,0xa3,0x2a,0xf3,0x4d,0x8e,0x22,0x5b,0x7a,0x32,0xe6,0xca,0xff,0x0e,0xa1,0x0a,0x15,0x33,0x31,0x50,0x71,0x1c,0x85,0x26,0x9b,0x19,0xf2,0xe3,0x69,0x4e,0x2d,0xff,0x79
+.byte 0x80,0xfe,0x2c,0x2f,0x7a,0x49,0x95,0xf3,0x0e,0x78,0xb1,0x0c,0x1c,0x45,0x59,0x68,0x2a,0x37,0xf2,0x48,0x6f,0xd9,0x32,0xf7,0xfc,0xdc,0xbe,0xe3,0xdd,0x61,0x17,0xc0,0x08,0x9d,0xbc,0x2d,0x8d,0x24,0x1c,0xbb,0x53,0xbe,0x37,0x59,0x30,0x87,0xa0,0x14,0xf5,0x08,0xcf,0xd1,0xcc,0x84,0xa7,0x0f,0x69,0xe0,0x77,0x8c,0x0d,0xdc,0x82,0xe5
+.byte 0x88,0x9a,0x58,0x05,0xe3,0x4f,0xdd,0x55,0x1e,0x6e,0x90,0xd5,0x3c,0xa6,0xa6,0x10,0x24,0xe5,0x58,0x97,0xdc,0x31,0x87,0x39,0xdc,0x3a,0xe6,0x24,0x64,0x23,0x45,0xd8,0x01,0x1b,0xf6,0x38,0x68,0x9e,0x62,0x53,0x00,0x97,0x71,0x04,0xb5,0x3b,0x54,0xdb,0xb5,0xcb,0x30,0x91,0x14,0xce,0x94,0xd5,0xe0,0x96,0x70,0x99,0xa5,0xed,0x69,0x32
+.byte 0xc7,0xb7,0x14,0xff,0xc0,0xde,0x19,0x5d,0x31,0xdb,0xa7,0xc0,0x7a,0x94,0xec,0x60,0xfc,0x52,0x71,0x69,0x9b,0xd8,0xbe,0x97,0x0b,0xb5,0x70,0xa7,0x47,0x11,0x37,0x84,0xda,0x3c,0x23,0xfe,0xf2,0x53,0xad,0x55,0x71,0x1e,0x70,0x9b,0x7b,0x61,0x97,0xf8,0x71,0xc4,0xad,0x72,0x98,0x43,0x0c,0x33,0x30,0x2c,0xb2,0xd6,0x21,0x8d,0xbb,0x1b
+.byte 0x85,0x82,0x24,0x14,0x85,0x95,0x88,0xff,0x3f,0x8c,0x88,0x96,0xa0,0xf8,0xd7,0x36,0x78,0x37,0x6d,0x92,0x09,0x04,0x76,0x27,0xb9,0xd5,0xea,0x0f,0x07,0x9f,0xe1,0x49,0x0e,0xd1,0x9c,0x46,0xcd,0x2b,0x7a,0x57,0xb6,0x56,0x39,0xe5,0x59,0x6b,0x1b,0x39,0xbf,0x15,0x3b,0x56,0xf5,0xc2,0x08,0x96,0xf5,0x63,0x4c,0x31,0x33,0x65,0x8b,0x74
+.byte 0x4e,0xde,0xa8,0x20,0xe0,0x7c,0x27,0xee,0x91,0x74,0xe8,0x24,0xb3,0xcf,0xa3,0xd4,0xf1,0xb9,0x18,0x43,0x05,0x5d,0x13,0x36,0x82,0xd1,0xbf,0x16,0x89,0x48,0x83,0xf0,0xcc,0x5c,0xbb,0x75,0x7e,0x71,0xc0,0x73,0xd1,0xf5,0x00,0x38,0x7f,0x10,0x98,0xd6,0xb9,0x14,0xea,0xd3,0x3f,0x0f,0xe3,0x61,0x1a,0x5e,0x21,0xd0,0x11,0x58,0x68,0x47
+.byte 0xf2,0xe5,0xe9,0x65,0x9a,0xc1,0xf4,0xa0,0x98,0x8e,0x9f,0x7f,0xbe,0x7e,0xd0,0xb6,0x88,0x4e,0xce,0xc1,0x8b,0xd4,0xd3,0x93,0xb7,0xd8,0xf3,0x0b,0xf3,0x73,0xc9,0x08,0x2f,0xcf,0xd8,0xbd,0xa6,0x1d,0x7c,0xfa,0x44,0x82,0x9f,0x03,0xca,0x56,0x3b,0xbf,0x4d,0x1e,0xbc,0x06,0xc2,0x37,0xfb,0xde,0xd3,0xa9,0xe3,0xae,0x61,0xef,0x26,0x7d
+.byte 0xbd,0x2f,0xee,0x2d,0xe1,0x65,0x71,0x77,0xab,0x9c,0x96,0x4f,0x00,0xe2,0xde,0xd7,0x05,0x54,0x00,0xb6,0xaf,0x12,0x0c,0x79,0x1a,0xed,0x20,0x72,0xc7,0x3b,0x3a,0x10,0x15,0x74,0xff,0xbd,0xf8,0xaa,0x8f,0x3a,0x83,0x39,0x24,0xfa,0x53,0x2d,0xc3,0x61,0xfc,0x12,0x6b,0x54,0x33,0xbf,0x83,0xc9,0x59,0x00,0xf0,0xdc,0xa8,0x64,0xbc,0xb5
+.byte 0xc3,0x96,0x60,0x3e,0x7b,0xe2,0x08,0x19,0x92,0x17,0x80,0x9b,0x0c,0x09,0x49,0x68,0x8b,0x15,0xe3,0xce,0x0c,0xfa,0x0c,0x8b,0xf0,0xdc,0x58,0xb0,0x7b,0x82,0x85,0xd2,0x56,0x1c,0xfb,0xb5,0xd0,0x0e,0x0a,0x55,0x61,0xda,0xd8,0x20,0xc1,0x79,0x70,0x3c,0x69,0x8e,0x49,0x5f,0x1c,0xdb,0x22,0xb8,0xdd,0x4c,0x4f,0xca,0xe9,0x0f,0x9a,0x4e
+.byte 0xff,0x56,0xbc,0xcf,0x72,0x09,0xa6,0x41,0x38,0xf0,0x7d,0xe7,0x45,0x0a,0x71,0x2c,0x92,0xdd,0x21,0x17,0xb2,0x3b,0x31,0x3c,0x91,0x11,0x69,0x29,0x50,0x31,0xe6,0xa6,0x10,0xc7,0x35,0xe8,0x44,0xec,0x74,0xa3,0x7e,0xb6,0x34,0xe5,0xb7,0xba,0xdf,0x5b,0x2f,0x85,0x02,0x6c,0xb0,0x71,0xb1,0x43,0xff,0x0e,0x47,0x04,0x63,0x4d,0x5b,0x81
+.byte 0x81,0x28,0x8b,0x84,0x79,0xad,0x2a,0x45,0x00,0x1c,0x0c,0x9f,0xef,0x35,0xbb,0x6d,0xc5,0x6a,0x6b,0xef,0x2b,0xae,0x78,0x66,0x05,0x7a,0x61,0x4c,0xe9,0x5e,0xf7,0x95,0x66,0x7e,0x1a,0xa7,0xdf,0x4c,0x4d,0x7c,0x66,0xa5,0x38,0x84,0x86,0x8d,0x66,0xcc,0x7f,0x32,0xb2,0x9c,0xc5,0x0d,0x3d,0xb7,0xb1,0xa6,0xc5,0x80,0x68,0xaf,0x79,0x81
+.byte 0x15,0x8f,0xec,0x50,0x5c,0x1b,0x57,0x31,0xd2,0xb9,0x16,0x66,0xf8,0x16,0xfd,0xcd,0xc7,0xa8,0x84,0x6f,0x35,0xea,0x3f,0xa4,0x72,0x8d,0xad,0xf4,0xd1,0x14,0x46,0xcc,0x06,0xed,0x71,0x39,0x07,0x99,0x28,0xc8,0xf9,0xc4,0xc2,0xec,0xde,0xb8,0x92,0xae,0xc5,0xf8,0xb2,0x49,0xc9,0x32,0x58,0xec,0x9f,0xb0,0x59,0xaf,0x49,0xef,0xe8,0x0d
+.byte 0x4c,0x56,0x8d,0xf7,0x57,0xb0,0x09,0xbe,0xc2,0x6a,0x62,0xc4,0x87,0xf3,0x20,0x07,0xc9,0xe3,0x3b,0x31,0xcc,0x8d,0xcf,0x5d,0x18,0x00,0x2a,0x9f,0xde,0x80,0x1a,0x7e,0x95,0x93,0xd1,0xbd,0xe6,0xd4,0x69,0x37,0x96,0xbb,0x70,0xc5,0x3c,0x87,0x8f,0xff,0x95,0x97,0xfe,0x95,0x56,0x7b,0xba,0x03,0x3d,0x29,0x0f,0xdb,0xd0,0x65,0x4f,0xf8
+.byte 0xa8,0xf3,0x42,0x09,0xb5,0x81,0x34,0xc6,0xa9,0x60,0xb9,0xef,0x3e,0x9d,0xc5,0x42,0x1e,0x79,0x5d,0x2b,0xf2,0x46,0x0d,0xeb,0x88,0x84,0x8f,0xad,0x60,0x69,0x57,0x49,0x33,0xb4,0xdd,0xfe,0x10,0x65,0x65,0x51,0xaf,0x68,0xa0,0xce,0xbd,0xe1,0x6e,0x03,0xe1,0x5f,0xba,0x3f,0x36,0xca,0xed,0x20,0x95,0xfa,0xff,0x3c,0x65,0xa8,0xb1,0x6b
+.byte 0xc5,0x91,0xa0,0xd5,0x36,0x38,0x1c,0x38,0xe9,0x1d,0x1b,0x67,0x4c,0x17,0xd3,0x29,0x92,0xa2,0x27,0x76,0x3d,0xe2,0x26,0x37,0x2a,0x2c,0xf6,0xee,0x64,0x40,0x8a,0x1c,0x2b,0xc1,0xd3,0x28,0xd0,0xcf,0x2d,0xc2,0x45,0xf4,0x37,0x5a,0x63,0xfb,0x18,0x67,0x01,0x0a,0xe8,0xe2,0x41,0xf7,0x15,0x47,0xa7,0xe9,0xc8,0x05,0xbc,0xc7,0x8f,0xf0
+.byte 0xc3,0xc5,0x9a,0x4e,0x0d,0x7b,0xf0,0x20,0x8c,0x21,0x49,0x99,0x0d,0xf7,0x34,0x84,0x35,0xfb,0x11,0x33,0xd6,0x46,0x14,0x3c,0xf1,0xb3,0x37,0xac,0x75,0x63,0xe7,0x1a,0x19,0xa4,0x49,0xf2,0x58,0x1d,0x56,0x55,0x64,0x46,0x25,0xff,0x7d,0x90,0x34,0x21,0x5d,0x00,0xa1,0xa8,0xaa,0xe0,0x93,0xe7,0xda,0x11,0x34,0x1d,0xa3,0x0c,0x67,0xae
+.byte 0xf5,0x60,0x72,0x14,0xdf,0x08,0xf6,0x72,0x3e,0x48,0x41,0x3d,0x00,0x58,0xfb,0x0c,0x15,0x80,0x2d,0xd9,0x72,0x47,0xa6,0x20,0x6a,0x74,0x9e,0x06,0xb9,0xac,0x68,0x3a,0xe7,0xf1,0x19,0xb8,0x0b,0x66,0x07,0x4d,0xa0,0xb5,0xab,0xea,0x70,0xa1,0xdf,0x41,0x76,0x85,0x18,0x5b,0x6f,0x78,0x5a,0x5d,0x08,0xe0,0x1b,0xd8,0x06,0x73,0x1e,0x16
+.byte 0xcb,0xdb,0x02,0xf8,0x96,0x64,0x65,0xc5,0xc1,0x52,0xd4,0xd8,0xb3,0x1e,0xd4,0x09,0xfd,0xa7,0x30,0x41,0x5a,0xce,0x53,0x4d,0x11,0xc8,0xdd,0x13,0x50,0xd5,0x2e,0xa0,0xe6,0x48,0x49,0x31,0x4b,0x1d,0xce,0xfc,0x42,0xed,0x8f,0xc8,0xb3,0x0a,0xae,0x1d,0x4c,0x1e,0x4f,0x39,0xa4,0x37,0xc8,0x54,0xdf,0x40,0xa6,0x42,0x61,0x7d,0x34,0xd4
+.byte 0x75,0x0a,0x9f,0xf0,0x33,0x54,0xf3,0xc4,0xdc,0x4e,0x2f,0x81,0xc2,0x20,0xaa,0x4f,0xa0,0xae,0xa6,0xb8,0x50,0xf8,0x45,0xf1,0xf2,0xd1,0xd2,0xcf,0xc8,0xf0,0xf4,0x54,0x37,0xdc,0xfb,0x13,0xdf,0x38,0xc2,0x3f,0xe0,0x59,0xb5,0x9a,0x0f,0x27,0x87,0xd4,0xd3,0xdc,0xfd,0xda,0x1d,0xfa,0xdd,0x12,0xe0,0x7f,0x34,0x01,0xde,0x28,0xf5,0x0e
+.byte 0xff,0x59,0xc7,0xbd,0x6a,0xe4,0x0c,0x85,0x7b,0x87,0xf9,0xd7,0xe2,0xed,0xb2,0xf7,0xb7,0x13,0xfb,0xfc,0x4d,0x25,0x52,0xfd,0x23,0x6b,0x10,0xd0,0x80,0xd8,0xbd,0xbd,0xf0,0x87,0xfc,0x38,0x85,0x83,0x20,0x5f,0x7c,0x26,0x14,0x93,0xd3,0xe1,0xdc,0xa4,0xda,0xa7,0xf9,0xfd,0x6c,0x9a,0x2b,0x75,0x82,0xf1,0x9f,0x1b,0x0c,0x43,0xd4,0x2d
+.byte 0x5b,0x0c,0x54,0x7e,0x61,0x24,0x8e,0x50,0x25,0xd8,0x54,0xfd,0x30,0xec,0x4c,0xa8,0xb6,0xf0,0x35,0x67,0xf7,0xe4,0x3c,0xfd,0xc8,0x40,0xf4,0x2d,0xc5,0x4d,0xc3,0x29,0xc2,0x88,0x60,0xab,0xd9,0x2a,0xe8,0x31,0xcc,0x0c,0x9f,0x97,0xa8,0x2e,0xaa,0xa5,0xb6,0xee,0x3c,0x71,0xa9,0xff,0x90,0xb4,0x43,0x2e,0x16,0x80,0x8c,0xfe,0xb5,0x7a
+.byte 0x40,0x58,0xd5,0x98,0x7e,0xca,0xaf,0x95,0xee,0x00,0x26,0x8d,0x5b,0xba,0x33,0xee,0x35,0xb5,0x9b,0xf8,0x08,0x1e,0x15,0x2d,0x01,0xb1,0x83,0xa6,0x57,0x58,0xd1,0xf3,0xa4,0xf1,0x3a,0x00,0xf4,0x40,0xee,0x35,0x3a,0x20,0xc2,0x13,0x1e,0xda,0x32,0xc2,0x35,0x74,0x29,0xce,0x51,0x3f,0xec,0xb2,0xd7,0x23,0xa7,0xc6,0xef,0x70,0xb9,0x88
+.byte 0x6f,0xa8,0xf5,0x5b,0xff,0xc5,0xf5,0xb4,0x3b,0x12,0x75,0x20,0xbf,0x61,0x8a,0xb1,0xae,0x01,0x9b,0x17,0xf4,0xf3,0x2d,0xfb,0x44,0xe8,0xac,0x29,0x81,0xc2,0x6d,0x50,0x05,0x11,0xd9,0x43,0xf8,0xc7,0x58,0x5d,0xbc,0x2d,0xc0,0x83,0xd2,0x81,0x41,0x1c,0x46,0x62,0x60,0x6e,0x65,0x52,0x4b,0x1c,0x88,0x72,0x1b,0x0e,0x8e,0x7d,0xa2,0xb5
+.byte 0x4e,0x28,0x32,0xf2,0xb1,0xfa,0xf1,0x4b,0xc5,0x85,0x95,0x2c,0x08,0x78,0x85,0x68,0xe5,0x20,0x23,0x8b,0xc4,0xf5,0xb2,0xdb,0xc1,0xdd,0xe5,0x69,0xa4,0x97,0xa9,0x6c,0x2e,0x3a,0x25,0x1c,0x24,0x54,0x97,0x3e,0x8d,0x61,0x61,0xa3,0x60,0xf5,0xd2,0x4e,0x90,0x25,0x06,0x09,0x31,0x7b,0x96,0xce,0xcc,0xb7,0xbc,0x63,0x9f,0x04,0x7d,0xec
+.byte 0xa1,0x4a,0x65,0xd3,0x26,0xe1,0xbf,0xf9,0x88,0xea,0x5c,0x5d,0xfe,0xe9,0x60,0x77,0xbd,0xf2,0xa0,0x11,0x91,0x24,0xca,0xa1,0x0d,0x05,0x7b,0xe2,0x7d,0x22,0x2e,0xd2,0xc9,0x4b,0x78,0xce,0x0c,0x7b,0x49,0xaf,0xd6,0x59,0x5f,0xb4,0xbd,0x2e,0x4a,0x22,0xcb,0x5d,0x1c,0xd5,0xde,0xea,0x86,0x74,0xd5,0x15,0x52,0x59,0xfc,0x3d,0x7b,0x1c
+.byte 0x3f,0x14,0xec,0xf2,0xc8,0x3c,0x88,0xbf,0x89,0xd5,0x23,0xc3,0x94,0x3c,0x28,0x04,0x91,0x6c,0x36,0x35,0x4b,0x75,0xf8,0xdc,0xf3,0xff,0xba,0x8c,0xa4,0xc7,0x85,0xc5,0x1a,0x30,0x4b,0x7c,0xc5,0x2f,0xb9,0x2a,0x14,0xaa,0x65,0xe3,0x92,0xdc,0xe1,0xed,0x3f,0xb6,0xff,0x0e,0x74,0xe0,0xb3,0xc9,0x4b,0xd1,0x96,0xfc,0x49,0x72,0xbe,0xb0
+.byte 0xc8,0x4a,0xd5,0xf0,0xb3,0x58,0x29,0x35,0x97,0xd4,0x5c,0xc7,0x0b,0x27,0x1d,0x14,0xdb,0xb7,0x5c,0x7e,0x6d,0xc1,0x56,0xa9,0x80,0x72,0x7d,0x75,0xc2,0x2f,0x07,0x28,0xb4,0xff,0xef,0xa7,0x34,0xed,0x31,0x44,0x85,0xe6,0xc3,0xa4,0x5f,0xe2,0xe8,0xab,0xd1,0x59,0xe7,0x32,0x20,0xd1,0xcc,0xef,0x6f,0xe1,0x10,0x89,0x6c,0x0c,0xf3,0x5f
+.byte 0xe8,0xc7,0x1c,0x3b,0xeb,0x3e,0xa5,0x53,0x2d,0x48,0x64,0x92,0xa0,0xec,0xf3,0x75,0x5b,0x5b,0xe2,0x83,0x87,0x04,0xa7,0xd8,0x1b,0x44,0xfb,0x42,0xee,0xd8,0xf2,0x98,0xff,0x30,0xc8,0x09,0xf8,0x1a,0x95,0x46,0x2d,0xe7,0x43,0x10,0x90,0xf4,0x2c,0x8f,0x0b,0x60,0x6d,0xeb,0xbf,0x19,0xc1,0x9d,0x5c,0xc0,0xff,0xb1,0x86,0xbc,0x01,0x73
+.byte 0x35,0x1f,0xd8,0xf4,0xa1,0xd4,0x7f,0x2d,0x1b,0xf9,0xa6,0x78,0x1a,0x2e,0x2c,0xe2,0xcc,0x8b,0x5f,0xbb,0xb9,0x80,0x31,0x32,0xa5,0x5d,0x70,0x59,0xae,0xe3,0xac,0xab,0xde,0x38,0x09,0x07,0x57,0x5f,0xbf,0xe8,0xa0,0xb8,0xd0,0x03,0xac,0x02,0x0d,0x7f,0x7e,0x0c,0xd2,0xcf,0x46,0x01,0x07,0x9f,0x16,0xf6,0x2b,0x94,0xaf,0xae,0x66,0x09
+.byte 0xca,0x4c,0x5f,0x37,0x53,0xa6,0x50,0x82,0x3a,0x0a,0x7b,0xb3,0x52,0x2e,0x0f,0xe4,0x64,0xab,0x40,0x21,0x2d,0xb7,0x20,0x9b,0xe3,0x2f,0xec,0x2b,0xb3,0x31,0x60,0x51,0x2e,0xb6,0x68,0xac,0xae,0xee,0x2d,0x28,0x5b,0xe0,0xa7,0x85,0xab,0x95,0xba,0x53,0x8c,0xc0,0xf8,0x16,0x8f,0x42,0x01,0xef,0x00,0x32,0x44,0x8e,0x41,0xc9,0x05,0x5b
+.byte 0xe0,0x3f,0xe1,0xd8,0xd4,0x97,0x8e,0xa0,0x14,0x84,0xce,0x5c,0xef,0xbe,0xa4,0xae,0x18,0x91,0xd9,0x48,0x9b,0xc3,0x7a,0x8f,0xfb,0xb3,0x3e,0xa9,0x87,0x74,0x84,0xd2,0xc6,0x7c,0xc9,0xce,0x01,0xa5,0xcc,0xff,0x5a,0xe8,0x94,0x98,0x54,0x2a,0x6e,0xd9,0x58,0x75,0xd4,0xdd,0x6c,0x7d,0x83,0x32,0xc9,0x4e,0x35,0x2c,0x51,0x26,0x68,0x1f
+.byte 0x95,0x20,0x82,0x54,0x0a,0xad,0x5e,0xe2,0xba,0xf9,0xa3,0x54,0x24,0x93,0x4a,0x62,0xff,0x28,0x05,0xd2,0x22,0x62,0x82,0xd4,0x2d,0xe2,0xec,0x66,0xc5,0xee,0x63,0xd0,0xf6,0x93,0xa8,0x37,0xbf,0xdd,0xe0,0x95,0x0b,0x19,0xa1,0x9d,0x9a,0xf8,0x94,0x1a,0x3a,0x50,0x9e,0x66,0x75,0x8c,0x25,0xbd,0x18,0xb0,0x58,0x76,0x7f,0x2d,0x3d,0x06
+.byte 0x02,0xb3,0xcf,0xa3,0x14,0x6e,0xe7,0xc8,0xcd,0xe6,0xbe,0xae,0x92,0xd6,0xa2,0xfe,0x12,0xf0,0xdf,0x9f,0x9e,0xad,0x77,0x77,0xfb,0xfc,0x36,0xb7,0x82,0x9c,0xf1,0x51,0xc2,0x58,0xa0,0xf3,0xa0,0xd6,0x6e,0x64,0x28,0xac,0x09,0x8f,0x7b,0xef,0x19,0x87,0x76,0xb9,0x4e,0xca,0x1f,0x05,0xb6,0x00,0x4a,0x14,0x83,0xaf,0xff,0xd9,0xa1,0xc6
+.byte 0x0f,0x98,0x3a,0xcf,0x85,0x18,0xea,0xa6,0x9a,0x1e,0xae,0x7c,0xaa,0xae,0xef,0x89,0x5e,0x14,0x5d,0x2f,0x73,0x8f,0xd1,0xf0,0x77,0xcd,0x45,0x92,0x7f,0xee,0xb9,0x7c,0xc2,0x3c,0xff,0x56,0x56,0xa5,0xa5,0x49,0xe4,0x20,0xd6,0xa2,0xb6,0xe4,0xfc,0x86,0x53,0xce,0x9e,0x2b,0x7b,0xcb,0xcf,0x6a,0xd5,0x62,0xb7,0x34,0x0e,0x39,0xe2,0xaa
+.byte 0x1c,0x24,0x30,0x71,0x94,0xb3,0x57,0xd8,0xe8,0xd4,0xc5,0x4f,0x33,0x2c,0x73,0x7e,0x48,0xba,0xb3,0x55,0x84,0x6d,0x10,0xcf,0x8f,0xf2,0xb6,0xdb,0x4e,0xcf,0x49,0x08,0xf6,0x5a,0x3c,0x7e,0xef,0x3f,0x5c,0x11,0x09,0xfe,0x26,0xfb,0xff,0x30,0xcb,0x81,0x12,0xea,0x1e,0xa9,0x6e,0xf8,0xea,0x4f,0x92,0x2c,0x23,0x99,0x35,0xa5,0x59,0xca
+.byte 0x1d,0x66,0x72,0xad,0x5b,0x7c,0xb3,0x4a,0x7c,0x76,0x4c,0xf6,0xc1,0xec,0x68,0x5f,0x2c,0x17,0xbe,0x92,0xe1,0xa1,0xee,0x40,0x24,0x25,0x6b,0xc5,0x0b,0x6f,0x06,0xc0,0x05,0x8c,0x23,0x24,0x76,0xea,0xe9,0xb9,0xa1,0x3d,0x59,0x15,0xe7,0x65,0x47,0x5a,0x75,0x9b,0xc8,0x7b,0x86,0x97,0xf4,0x4a,0xa3,0xec,0x54,0x0e,0x66,0xef,0xda,0x41
+.byte 0xb8,0x3b,0xa6,0x86,0x63,0xe1,0x4e,0x89,0x92,0x40,0xf4,0x8b,0x32,0x47,0x3b,0x4b,0xb4,0xe6,0xd8,0x4b,0x1c,0xac,0x03,0xab,0xde,0x2e,0x63,0x96,0x3f,0x27,0xa1,0x32,0x11,0x35,0x24,0x6a,0xe9,0x0b,0x73,0x61,0x4e,0xd8,0xdc,0x91,0x98,0x01,0x8a,0x0d,0x61,0xec,0x39,0xbe,0x3b,0xb9,0x78,0x77,0xea,0xaa,0xa2,0x12,0x20,0x92,0x98,0x16
+.byte 0x27,0x3b,0xd1,0xfa,0x59,0xef,0x81,0x38,0x9f,0x42,0xe8,0xb4,0xab,0x4f,0x26,0x9a,0xe7,0x0b,0x05,0x03,0xfa,0xe1,0xe1,0x3d,0x45,0xac,0x7d,0x40,0xcc,0x2f,0xf2,0xb0,0x33,0x42,0x14,0xbd,0x91,0x3e,0xe1,0xb7,0x17,0x25,0xc3,0x92,0xcb,0x9e,0x44,0x1e,0x13,0x93,0x98,0x1f,0x96,0x64,0x3a,0xaa,0x53,0x9a,0x18,0xc0,0x34,0x3c,0x47,0x94
+.byte 0x14,0x70,0x67,0x76,0x2a,0x82,0xd3,0x6a,0x18,0x13,0xe7,0x01,0x8d,0x97,0x52,0x51,0x8e,0x08,0xde,0x44,0xb0,0x74,0x07,0x58,0x35,0xc2,0x29,0xb5,0xd7,0x00,0x46,0x31,0x34,0xd7,0x1f,0xdd,0xaa,0x5c,0x27,0xc7,0x37,0x71,0xe8,0xbe,0xad,0x89,0xf1,0xb2,0xd1,0x46,0x33,0x0c,0x2f,0x26,0x21,0x5e,0xc9,0xda,0x25,0xcd,0xd0,0x17,0x23,0x87
+.byte 0x15,0xc2,0xa0,0x1a,0x9f,0x6e,0xfb,0x63,0xe9,0x69,0xdf,0x79,0x18,0x33,0x2f,0x47,0xca,0x54,0x23,0x7e,0x4f,0x6e,0x38,0x06,0x99,0xfb,0xcd,0x22,0xdb,0x4b,0x3f,0x8a,0x05,0x2e,0x5c,0x56,0x65,0xb7,0xab,0x57,0x8b,0xdd,0x28,0xab,0x7e,0x77,0x32,0x0f,0xc6,0x3c,0xf3,0xde,0x43,0xb0,0x13,0x3b,0xbd,0x28,0x3a,0x8b,0xd5,0x6b,0x1d,0x5d
+.byte 0x20,0x1a,0x5f,0xa6,0x01,0xed,0x88,0x7f,0x87,0x55,0x38,0xc2,0x0d,0x03,0x6c,0x41,0x6a,0x43,0xdf,0x09,0xf3,0x58,0x69,0x13,0xa1,0xd6,0x39,0x0c,0x8e,0x8f,0x40,0x67,0xe8,0x0e,0x9b,0x9b,0x42,0x30,0xd7,0xae,0x04,0x75,0x66,0xfb,0x4a,0xa7,0xe0,0xe9,0xea,0x6d,0x28,0x4f,0xc0,0x5c,0xd4,0xd4,0xb7,0x60,0x5a,0x35,0xc1,0xe8,0x5f,0xc3
+.byte 0x4f,0x7a,0x5d,0x8d,0xc2,0x29,0x6e,0x36,0x50,0x5b,0x82,0x63,0xf2,0xda,0x8d,0x02,0x61,0x09,0x69,0x0a,0x47,0x9d,0x58,0xf3,0xf6,0xe0,0xc0,0x09,0xd9,0x3b,0x8d,0xf5,0xba,0xf6,0xc4,0xf0,0x65,0x89,0x7b,0xdd,0x93,0x6b,0x6e,0x21,0xa1,0x2a,0x66,0xe0,0x8f,0x62,0xb0,0x49,0x60,0xa3,0x48,0x42,0x62,0xcc,0x26,0x1f,0x59,0x3a,0x7b,0xa7
+.byte 0x82,0x10,0x5f,0xc6,0xf8,0xa2,0xc0,0x07,0x7b,0x26,0x26,0x11,0xe2,0x5b,0xb8,0x86,0xb7,0x66,0xcf,0x0a,0xcc,0x6f,0xe8,0x02,0x22,0x4c,0x13,0x75,0xdc,0x68,0xf0,0x7c,0x0c,0x46,0x9a,0xa2,0x4c,0xf5,0x50,0x3f,0xf9,0xbc,0x01,0xb1,0xa1,0x28,0x90,0x07,0x6b,0x17,0x69,0x89,0x7b,0xe5,0x0a,0xf7,0x7b,0xe1,0x94,0x30,0xfc,0xd3,0x8d,0xd3
+.byte 0x99,0x37,0x91,0xd5,0xdf,0x59,0x2a,0x4f,0xfe,0x6c,0x37,0x4b,0x78,0x2c,0xa9,0x28,0x6a,0x5c,0xd6,0xe1,0x0b,0xad,0xae,0x62,0x7c,0x09,0xb8,0x90,0x3f,0x29,0x37,0x7b,0x79,0xee,0x55,0x02,0x05,0xef,0x28,0xa2,0xc7,0x07,0x2b,0xe6,0xab,0x87,0x9d,0x8f,0x4c,0x0f,0xc1,0x75,0x5d,0x88,0x7f,0x26,0xe0,0x1e,0xf8,0x3f,0xb5,0x2a,0x6c,0xe6
+.byte 0x7f,0x85,0xae,0x55,0x7b,0x58,0x34,0x4c,0x81,0x05,0x21,0xa1,0x5e,0xd7,0xb6,0x20,0x6e,0xf9,0x60,0x15,0xa4,0xb2,0x8f,0x68,0xd2,0x23,0x9f,0xbf,0xfa,0x6a,0xcb,0x87,0x7d,0x41,0x4a,0xae,0x28,0x4f,0x9e,0xbb,0x69,0x1c,0x37,0xb2,0xc9,0xd2,0x21,0xa1,0x2b,0x6b,0x5d,0xff,0xd6,0xdb,0x8f,0x21,0xd9,0x17,0xd6,0xe6,0x74,0xf2,0x20,0x0e
+.byte 0x06,0xb5,0x0c,0xdc,0x74,0x4e,0x93,0xcb,0x27,0xc7,0x4b,0xf3,0xef,0x46,0xa8,0xf0,0x58,0x1c,0xa0,0x65,0x09,0x84,0xc7,0x2e,0xba,0x51,0xd9,0xd4,0x53,0x20,0xc7,0x20,0x85,0x93,0x2b,0xf3,0x42,0x93,0x7b,0x22,0x1c,0x8d,0x22,0x76,0xcf,0xde,0x6a,0xa1,0x76,0xea,0x65,0x20,0x2f,0x2e,0xdb,0x85,0xdd,0x73,0x43,0xf8,0xe0,0xe3,0x3a,0xe5
+.byte 0x02,0x57,0x96,0x54,0xbc,0xaf,0xa4,0xd5,0xda,0x9d,0x9d,0x8b,0x85,0x01,0x7c,0x72,0x03,0xfe,0x39,0x46,0xab,0x04,0xcc,0x62,0x71,0xf5,0xa5,0x67,0xd7,0xfc,0xc0,0xb6,0x95,0x74,0xdf,0x1c,0xfe,0x1c,0x5b,0x25,0xae,0x42,0x75,0x00,0x71,0x3c,0xec,0xfc,0x3c,0x7b,0x0f,0xec,0x44,0xc7,0xec,0x9b,0x86,0xf5,0x3d,0x47,0x15,0xf0,0x25,0xba
+.byte 0x43,0xc8,0x68,0x15,0x4f,0xeb,0x35,0x76,0x2d,0x04,0xb7,0x9b,0xb8,0xa7,0x0d,0xb3,0xb4,0xf2,0x93,0x85,0xb1,0xb8,0x81,0x7c,0xd6,0x5f,0xbd,0xc2,0xcc,0xf4,0x0e,0x98,0x2c,0x06,0x54,0x2f,0x5e,0x49,0x94,0x93,0x78,0xa0,0x0a,0x33,0x2e,0x3f,0xb2,0xa7,0x81,0xed,0xe9,0xb6,0xb5,0x86,0x4b,0xa5,0xc0,0x51,0x30,0x9d,0xe2,0x9f,0xc2,0x56
+.byte 0x92,0x6b,0x96,0xca,0xcb,0x65,0x5c,0x0e,0xf4,0x91,0x2b,0x89,0xf4,0x27,0x55,0x26,0xd7,0x7b,0x00,0x19,0x1f,0x67,0x4e,0x43,0x24,0x81,0x05,0xb7,0xc6,0x41,0x1a,0x39,0x3d,0x40,0x3e,0x8a,0x03,0x94,0x63,0x1b,0xb1,0x87,0xb6,0xe1,0x52,0xd0,0xe8,0xbb,0x0e,0x37,0x72,0xe5,0xde,0x86,0xc0,0xdf,0x5b,0xc2,0xc6,0x0a,0x67,0xa7,0x4c,0x03
+.byte 0xb6,0xd8,0x7f,0x1d,0xb3,0xe3,0x84,0xb7,0x5c,0x04,0x15,0xe0,0xd0,0xae,0x44,0xac,0x39,0xa5,0xa2,0x86,0xc8,0xad,0x27,0xa0,0x36,0xa1,0x6e,0xaa,0x87,0x7a,0x43,0xae,0xa0,0x45,0x1a,0xac,0x04,0xe2,0x55,0xf2,0x9a,0x97,0x67,0xfb,0x01,0x8f,0xb8,0x80,0x9c,0x27,0x1d,0xbe,0xa3,0xf1,0x6d,0x66,0xf2,0x1a,0x99,0x99,0xf6,0xa5,0xba,0x58
+.byte 0x28,0x58,0xb5,0x44,0x5b,0x38,0x4a,0x3f,0x37,0x85,0x7e,0x36,0x8e,0x16,0xb9,0x1e,0x0b,0xbf,0x7d,0x0a,0x0c,0x83,0x53,0x0d,0xcc,0x37,0xe1,0x42,0xbb,0x0d,0xfc,0x01,0x25,0x10,0xbe,0xb5,0x83,0x2f,0xa5,0x42,0x98,0xbc,0xd6,0x50,0x75,0xda,0x32,0x2b,0x3f,0xd6,0xc1,0x1a,0xe7,0x0b,0x80,0x07,0x6f,0xfe,0x77,0x9e,0xe9,0x1e,0x45,0x65
+.byte 0x68,0x92,0x34,0x8b,0xce,0xf3,0xcd,0x94,0x17,0xe0,0x41,0x92,0x96,0xb5,0xd1,0x98,0xd1,0x25,0xd1,0x3d,0x76,0x88,0x86,0xb1,0x01,0x80,0xc7,0xde,0x60,0x20,0xb8,0x03,0xe7,0x3f,0x44,0x39,0xb1,0xb8,0x19,0x53,0x5a,0xc6,0xa0,0x18,0x8e,0x0e,0xb6,0xfd,0x7e,0xe7,0x7e,0x8a,0xeb,0x4c,0x35,0x4a,0x0f,0x52,0x81,0x68,0x12,0xe4,0x46,0x2e
+.byte 0x20,0xb4,0x41,0x59,0xb3,0x16,0x02,0x9f,0xdb,0xe8,0xea,0xfd,0xe3,0x5d,0x14,0xd0,0x97,0x52,0x66,0xcb,0xb4,0x48,0xa3,0x05,0xab,0x73,0x8e,0x2c,0x46,0xc2,0x94,0xd5,0xc8,0x57,0xc4,0x13,0xa4,0x0b,0x7c,0x34,0xbf,0xb4,0x07,0x28,0x92,0xe2,0x1d,0x00,0xa6,0xf0,0xb0,0xbf,0xdd,0x5d,0x20,0x05,0x9f,0x53,0xcf,0x07,0xf7,0xe8,0x79,0x04
+.byte 0x57,0xd1,0xac,0x9c,0xdd,0xae,0xcd,0x8b,0x04,0x0a,0x2d,0x0a,0x0f,0x21,0x09,0xc8,0x0d,0xfa,0x23,0x26,0xe3,0xdb,0x84,0xc8,0x8e,0x9c,0x96,0x93,0x4f,0xcc,0x2f,0x96,0xed,0x04,0x91,0x0d,0xc7,0xbb,0x27,0xa3,0x6b,0x9d,0xe2,0x15,0x83,0x31,0x78,0xb5,0xb9,0x6d,0xb1,0x6c,0xa2,0x3e,0xf5,0x45,0x77,0xf4,0x96,0x3a,0xe6,0x10,0x08,0xfd
+.byte 0x23,0xcc,0xda,0x27,0x73,0x67,0xbb,0x8b,0x59,0xe2,0xcf,0xda,0x57,0xf9,0x17,0xeb,0xeb,0x98,0x39,0x48,0xbf,0x3d,0x5b,0x7b,0xc2,0x11,0x4b,0xd6,0xb6,0x8a,0x14,0xb3,0xf5,0xc3,0x18,0xff,0xde,0x62,0x98,0x4a,0x1d,0x6b,0x4e,0x00,0x4f,0x7d,0x2f,0x67,0xf4,0x22,0x1e,0xdb,0x69,0xd5,0x87,0xfd,0xee,0x97,0x56,0xd4,0x00,0x0c,0x9e,0x22
+.byte 0x11,0xda,0x8e,0x3b,0x91,0xad,0xf1,0xb6,0x0a,0xba,0xe7,0xc6,0x14,0x0e,0xc4,0x85,0x5f,0x7d,0x69,0x7d,0x73,0x9c,0x83,0x6a,0x69,0xef,0x10,0xb0,0xe6,0x33,0x32,0x0f,0xd8,0x54,0xa4,0x9d,0x39,0xaf,0xfc,0x6d,0x4f,0xeb,0x34,0x89,0x2e,0xb0,0xa1,0xcd,0xe1,0x5b,0xab,0xe1,0xff,0x82,0x85,0x6b,0x5e,0xa9,0x9e,0x43,0x02,0x0d,0x38,0x33
+.byte 0xe1,0xbc,0xa4,0x77,0x8a,0x5e,0x54,0xa8,0xcf,0xc9,0x76,0xcb,0x73,0x21,0x1f,0xa7,0x1e,0x5c,0x0a,0xd6,0xa2,0x36,0x6f,0x07,0xa1,0x6b,0x0d,0x5a,0x21,0x3a,0xc3,0xc0,0xcd,0x9d,0xed,0x83,0x96,0x89,0xaa,0x55,0x56,0xfd,0x0a,0x97,0x3a,0x50,0xfd,0x95,0x3f,0xb7,0xfa,0x87,0x7d,0xa6,0x5d,0x12,0x65,0x3f,0x61,0x4f,0x86,0xdd,0x58,0x64
+.byte 0xd7,0xde,0xd6,0xb9,0x68,0x87,0xde,0xba,0x96,0xf5,0x1c,0xec,0x8e,0x81,0xfc,0xca,0x77,0xe2,0x85,0x11,0x93,0xc7,0xf2,0x0f,0x77,0xbb,0x7c,0xed,0x20,0x7a,0xe3,0xc5,0x76,0xff,0x04,0xc7,0xe6,0x7a,0xa1,0xfe,0x58,0x52,0x1b,0xec,0x27,0xbb,0xd4,0x27,0x7c,0xc7,0x4a,0xfb,0x07,0x62,0x99,0x36,0xff,0x6e,0x71,0x2f,0xbd,0x25,0xff,0x8d
+.byte 0x97,0x14,0x56,0x23,0x7f,0x13,0x89,0x10,0xd8,0x29,0x1f,0x91,0x56,0x52,0x85,0xa7,0xd3,0x04,0xc9,0xe2,0x09,0xa2,0x0f,0xaa,0x28,0xb1,0x79,0xf9,0x08,0xf4,0x14,0x57,0xc4,0x54,0xd7,0x69,0xb0,0x37,0xf0,0x80,0x90,0xce,0x75,0x81,0xe7,0x75,0x0f,0x7f,0x71,0x58,0x3b,0x78,0x53,0x9b,0x4a,0x5e,0xcc,0x23,0x04,0x9e,0x0c,0xd7,0xd8,0x69
+.byte 0x90,0xdf,0x36,0x99,0x90,0xd3,0xfa,0x35,0xf7,0x13,0x64,0xb0,0xc0,0x70,0x0c,0xd4,0x87,0xc0,0xca,0xd8,0xca,0x8a,0xc3,0x9a,0xfa,0x73,0x34,0x18,0xe9,0x3a,0x85,0x42,0xc5,0xe1,0xaa,0xb5,0x87,0xac,0x43,0x9c,0xfa,0x7e,0x05,0x35,0xed,0x7e,0x0d,0x38,0x82,0x17,0x7f,0x22,0xa2,0x3d,0xd3,0x0d,0xd1,0xff,0x0a,0x68,0x52,0xd2,0x17,0x59
+.byte 0xaa,0x57,0xbd,0xd3,0xea,0x0c,0xe8,0xb0,0x22,0x13,0x59,0x42,0x46,0x34,0x58,0xa9,0x16,0xc5,0x9f,0x88,0x8f,0x75,0x02,0xbf,0x63,0xda,0x28,0xba,0x9a,0xcf,0xbb,0x73,0x58,0xb1,0x13,0xf2,0x68,0xd8,0x6b,0xfd,0x49,0x50,0xcf,0x09,0xea,0x6a,0xff,0x20,0x39,0xc5,0xae,0x70,0x79,0xea,0xec,0x9d,0x09,0xf8,0x51,0x1f,0xfd,0x01,0xd5,0x9f
+.byte 0xec,0x29,0x36,0xfc,0x39,0xb4,0x4c,0x1f,0xe6,0xb4,0xcc,0x97,0x21,0xe5,0x19,0xe9,0x7a,0x60,0x6d,0x39,0x3c,0x31,0xd4,0x43,0x76,0xba,0x10,0xd9,0x3f,0x75,0x7a,0xa6,0x1d,0x02,0x88,0x3d,0xa5,0x9f,0x91,0x61,0x4e,0x32,0xec,0xf5,0xd3,0xe4,0x65,0xf7,0x0e,0x3b,0x8a,0x8f,0x22,0x31,0x71,0x8f,0xf1,0x5f,0x7b,0x04,0x88,0xf9,0x88,0x67
+.byte 0x14,0x85,0x74,0x9e,0x54,0x0b,0xed,0x7a,0x48,0xcd,0xcf,0xd2,0x05,0x38,0xd5,0x58,0xa2,0xaf,0x6a,0x28,0x21,0xfd,0x38,0x4e,0x83,0x06,0x15,0x60,0xfb,0x89,0x2a,0x72,0xfe,0x75,0xc7,0xa4,0xae,0xe4,0x5b,0xbb,0xde,0x54,0xde,0x77,0xbb,0x9d,0xd2,0x07,0x05,0x61,0x53,0x65,0x31,0xd4,0x3a,0x8a,0x7d,0x9d,0x30,0x09,0x25,0x28,0x72,0x19
+.byte 0xe4,0xae,0x1d,0xbf,0xa7,0xef,0x75,0xd0,0xe3,0xdc,0x0b,0xd1,0x17,0x9c,0xc6,0xdf,0x65,0x9a,0x7c,0x9d,0x0b,0x9a,0x3d,0x8f,0xb0,0xf5,0x51,0x46,0x6b,0x12,0x0d,0xe6,0xa9,0x3a,0xb5,0xe9,0x52,0x85,0xa5,0x25,0x1f,0xc9,0x8b,0xff,0xe3,0x37,0x25,0x97,0xd8,0x91,0x17,0xed,0xcf,0x2a,0x6d,0x4f,0xef,0x74,0x5e,0x92,0xa2,0x2d,0x84,0xa6
+.byte 0x09,0xc4,0xfc,0x36,0x95,0x54,0x25,0x9e,0xeb,0xd9,0xea,0x5a,0x01,0x0c,0x54,0xdb,0x82,0x01,0xed,0x0b,0xf7,0x9f,0x0d,0x8f,0x2e,0xee,0x7c,0x6e,0xb3,0xe7,0xe8,0x04,0xef,0x8d,0x5e,0xfe,0x3d,0x96,0x3a,0x65,0xd3,0xb2,0x11,0x75,0x1c,0x6f,0x2a,0xd3,0x26,0x1f,0x5f,0x35,0x02,0x0b,0x9f,0x38,0x5b,0xa5,0x3a,0x90,0x3e,0x03,0x9f,0x50
+.byte 0xf2,0xd7,0xe4,0x3c,0xd3,0x28,0x67,0x0a,0x5a,0xe8,0x59,0x6f,0x38,0x8f,0x8b,0x0d,0xe4,0x1c,0xfc,0x6e,0x07,0x69,0x7b,0xfb,0x04,0x30,0xe7,0xa6,0x13,0xfb,0x33,0xa0,0x52,0x6a,0xec,0x64,0xad,0x90,0xbd,0xba,0x15,0x12,0x48,0xed,0xd1,0x94,0x2d,0xe7,0x19,0x28,0x5e,0x7a,0x94,0xf4,0x79,0xd7,0x79,0xc9,0xf6,0x16,0xb4,0x88,0xee,0x15
+.byte 0xa2,0x68,0xe3,0x1d,0xd0,0xd2,0x63,0x78,0x7c,0xb3,0x30,0xac,0x63,0x7a,0x36,0xc5,0x50,0xbf,0x57,0xf6,0xfe,0x4e,0x43,0x4e,0xf9,0xc4,0xa2,0x2a,0xa7,0xa4,0x2c,0x18,0xb9,0x43,0x7b,0xe8,0xf6,0x14,0x4f,0x07,0x6e,0x65,0x9a,0xdd,0x10,0x2a,0x4c,0xa4,0x58,0x86,0x19,0xad,0x6d,0x5e,0x30,0xfb,0x5f,0xb6,0x9f,0x2a,0xac,0x90,0x0d,0xae
+.byte 0xf9,0xab,0xc1,0x33,0xd3,0x73,0x1d,0x46,0xe5,0xc8,0x1e,0x1d,0x61,0xf1,0xda,0x53,0x3e,0x61,0xf0,0x9a,0xe4,0xb7,0x04,0xe9,0x5e,0xf6,0x11,0xa6,0x56,0x39,0xed,0xfb,0x06,0xd0,0x92,0xb9,0xb8,0xb5,0x3b,0x39,0xec,0xa5,0xc0,0xb1,0x7e,0x7e,0xfb,0x89,0x86,0xa8,0x70,0x47,0xa5,0x60,0x8c,0xf8,0x47,0x31,0x04,0x54,0x29,0xf3,0xa2,0x79
+.byte 0xac,0x24,0xda,0x33,0x6c,0x1c,0x34,0xc2,0xa0,0x96,0x27,0xbb,0x31,0xbf,0xc1,0xd9,0xc8,0x35,0xbc,0xb3,0x13,0x8a,0xb6,0x25,0x92,0xdc,0xcc,0x3b,0x8a,0x65,0xf3,0xf9,0xd1,0x2a,0xcd,0xb0,0xf4,0xd7,0x44,0xa0,0x27,0xfc,0x0e,0x69,0x46,0x0b,0x56,0x5b,0x58,0x40,0xd9,0xc4,0x37,0x9b,0x4d,0xa1,0x45,0xd8,0xab,0x4d,0x02,0x31,0x4f,0x93
+.byte 0x56,0xd0,0x26,0x99,0x1c,0xc7,0x2b,0xc2,0x80,0xb4,0xbd,0x6e,0xfe,0xa1,0xf7,0x8f,0x13,0x74,0x2c,0xa8,0x63,0xb1,0x3d,0x6d,0x32,0x4a,0x80,0x6a,0x7f,0xcf,0x6c,0x51,0xa9,0x21,0x34,0x4e,0x13,0x19,0x8f,0x33,0xfc,0x06,0x46,0x05,0xf0,0xcf,0xf1,0xce,0x20,0xe0,0x40,0xf2,0x0a,0xd0,0xf6,0xcc,0xcc,0xc2,0xc7,0x07,0x2e,0x9e,0x0a,0x1e
+.byte 0x53,0x59,0xbb,0xe3,0x02,0xc8,0x20,0x9f,0x3c,0xe6,0xec,0xf7,0x8a,0x6d,0x3c,0x0f,0xb3,0x14,0x66,0x5c,0x51,0xbe,0x82,0xc2,0x0b,0x10,0x63,0xa9,0xd4,0x7f,0x12,0x88,0x13,0x81,0x8a,0x06,0x8a,0x7f,0xc8,0x89,0xe7,0xbd,0xce,0x51,0xdc,0x93,0x03,0x07,0x6f,0x8c,0xe6,0xcc,0x0d,0x45,0xa8,0xfc,0x02,0xe2,0x3e,0xa7,0xc8,0x83,0x77,0x98
+.byte 0x91,0x4e,0x1f,0x8d,0xed,0xa5,0x38,0x54,0x0e,0x4e,0x53,0x1c,0x0c,0x47,0x11,0x59,0x54,0x15,0xb5,0x47,0xb0,0x21,0xa1,0x3d,0xaa,0xef,0xee,0x9e,0x26,0x3c,0x39,0x75,0xff,0x1a,0x8c,0xbb,0x1a,0x49,0x62,0x21,0x76,0xe8,0x3d,0x10,0x55,0xf5,0x5a,0x44,0xf0,0xb3,0x81,0xd0,0x35,0x96,0x95,0x63,0xf7,0x50,0xb1,0xa0,0xf0,0x29,0x97,0xc9
+.byte 0x27,0x73,0xd8,0x29,0xef,0x74,0xd2,0x6d,0xf4,0xfb,0x72,0xa9,0x4f,0x12,0xd5,0xfd,0xc9,0xba,0xf0,0xbd,0xfd,0x5e,0x5c,0xfa,0x53,0xe3,0x96,0xab,0x57,0xc3,0xb6,0xe8,0x0e,0x43,0xe4,0x77,0x97,0x04,0x69,0xff,0x72,0xd0,0xd8,0xab,0xb9,0x19,0x25,0x89,0xf7,0xbb,0x01,0x03,0xf2,0xc6,0x8d,0xd5,0x86,0xe3,0xfe,0x9c,0xff,0x78,0xd7,0xfc
+.byte 0xda,0xd4,0x69,0x8e,0xd6,0x31,0xfb,0x15,0xd3,0x38,0xfd,0x53,0xe2,0x4e,0xce,0xcc,0xfe,0x17,0xc5,0x88,0x92,0x28,0x98,0xb7,0xcf,0x7b,0x53,0x7b,0x96,0x14,0xaf,0xeb,0x5b,0x2d,0x16,0x41,0xcc,0x7b,0x65,0xe1,0x73,0x81,0x4e,0x8f,0xc3,0xad,0xe1,0x3f,0x0c,0xa7,0xbe,0x38,0xed,0x02,0x67,0xf5,0xfa,0x1d,0xb0,0xd5,0x4c,0xe1,0xd8,0x62
+.byte 0xc9,0xb5,0xf8,0x84,0xc4,0x51,0x57,0x14,0x11,0xf8,0x7d,0x1d,0xe7,0x81,0x85,0x61,0xa9,0x9f,0xc8,0x45,0xb9,0x2d,0x8a,0xc9,0xa3,0xfe,0x5a,0xf9,0xe0,0x1c,0x80,0xd8,0x77,0xaa,0x85,0xca,0x93,0x9a,0x2e,0x10,0x03,0x71,0x3d,0xb1,0x2a,0x64,0x2e,0xad,0x64,0xba,0x5c,0xaa,0x8a,0xc2,0x2a,0x80,0x28,0x2e,0xf9,0x93,0xe1,0x71,0x72,0xae
+.byte 0xda,0xd8,0x4f,0x4c,0xec,0xb5,0xe3,0x05,0x10,0x5f,0x4c,0xe6,0xe1,0xf4,0x07,0x63,0x75,0x6f,0xc5,0xf9,0xcd,0xfc,0xfc,0x35,0x2f,0xe4,0xca,0x4b,0xfc,0xc3,0x20,0x8b,0x5c,0x4a,0x3c,0xf8,0x92,0xca,0x2b,0xb0,0xce,0xd9,0x4b,0xf0,0x44,0xcb,0x4e,0x83,0xf3,0x9d,0xb0,0xd4,0xab,0xba,0x2a,0x76,0xaa,0x87,0xcd,0xa2,0xd1,0x3f,0xa0,0xb9
+.byte 0xdb,0x7e,0x67,0x2d,0x92,0x4c,0xeb,0x3c,0xa6,0x8c,0x62,0x80,0x18,0x78,0x2b,0x9d,0x8f,0x5e,0xc3,0xa5,0x3b,0x10,0xb3,0x8a,0x3b,0x00,0x96,0xb2,0xab,0xce,0x8d,0xff,0x3c,0xee,0xeb,0x4f,0xfb,0xab,0x96,0x38,0x4c,0x15,0x6e,0x7c,0xf3,0x31,0x5f,0x8f,0x99,0x88,0x52,0x48,0x8b,0x71,0x1b,0x31,0x3f,0x7c,0xe4,0xae,0x9c,0x7b,0xeb,0x64
+.byte 0xe3,0x80,0xd4,0x56,0x9a,0x6a,0xd9,0xca,0xc5,0xf0,0x86,0xe7,0xda,0x80,0x8f,0x17,0x61,0xca,0x24,0x0b,0xb6,0xf9,0x24,0xc5,0x7a,0x28,0x42,0x32,0x7f,0x2b,0xde,0x44,0x30,0xed,0x69,0x63,0x07,0x3f,0xca,0x7b,0x02,0xea,0x6e,0xef,0x27,0x1d,0x76,0x32,0xc2,0x81,0x3d,0x03,0x9a,0xe7,0x0d,0x28,0x07,0x03,0x0c,0x65,0x73,0x58,0x26,0xc6
+.byte 0xfe,0xcc,0x33,0x7f,0x33,0xad,0xea,0x81,0x05,0xcc,0x61,0x1e,0x78,0x69,0x70,0xc9,0x1f,0x6e,0x4f,0xb8,0x19,0x42,0x03,0x03,0x9d,0x56,0x87,0x0e,0x9a,0x32,0x3a,0xba,0xb9,0x11,0x66,0x9f,0x4d,0xd1,0xb0,0x11,0xbf,0x46,0xfc,0xcf,0xe5,0xef,0xf1,0x61,0xeb,0xad,0x31,0x7c,0x0d,0x66,0x0d,0xa9,0x1f,0xe4,0xf9,0x80,0x9e,0xae,0x9e,0x34
+.byte 0x1e,0x95,0x6c,0xa2,0x77,0x69,0x84,0x77,0xb7,0xe8,0xca,0x1f,0xea,0xc1,0x34,0xe6,0x0d,0x4f,0xba,0x77,0x2b,0x8c,0xbe,0xff,0xc4,0x06,0xa3,0xb6,0x1a,0xbe,0x55,0x99,0x57,0x6f,0x54,0x24,0x93,0x7a,0x0d,0x52,0xd6,0xbb,0xd2,0x9c,0xd5,0x76,0x6a,0x22,0x66,0xdc,0x43,0x9a,0x7b,0x1b,0x11,0x80,0x02,0x0c,0x8f,0xc6,0xc6,0x02,0x42,0x29
+.byte 0x00,0xc4,0xb2,0xa1,0x6a,0x7f,0xa9,0x60,0x8d,0x41,0x4f,0xd3,0xde,0x33,0x5a,0x44,0x31,0xb0,0xdc,0xc0,0x0c,0x31,0x03,0x96,0x71,0x0a,0xce,0xe3,0x0b,0xc7,0xe3,0x5d,0xe0,0x88,0x4b,0xfd,0x4c,0x1a,0xce,0xaa,0x89,0xc6,0x99,0xa8,0xd3,0x1e,0xe9,0x6c,0x2a,0xbd,0x26,0x81,0x03,0x6a,0xf2,0xf2,0x0f,0x1e,0x9d,0x8a,0x59,0x45,0xbf,0x6d
+.byte 0xb7,0xc8,0xec,0x77,0xb0,0x70,0x1a,0x31,0x21,0xeb,0x25,0x12,0xff,0x13,0x33,0x6b,0x47,0x34,0xd8,0x66,0x11,0x8a,0xc9,0x93,0x5b,0x2c,0x55,0x42,0xb2,0x9b,0x60,0xc6,0xba,0xab,0x12,0x12,0x5d,0x0a,0xd4,0x54,0x79,0x17,0x6d,0x31,0x7d,0x4f,0xf2,0x94,0x16,0x65,0x62,0x38,0x76,0x3a,0x7d,0x55,0x05,0xd9,0x17,0x45,0x62,0xb4,0x1d,0x31
+.byte 0x34,0x40,0xd3,0x8e,0xf9,0x29,0x4d,0x3f,0x93,0x9a,0x2e,0xa4,0x75,0x66,0xf6,0x62,0x8f,0xf9,0x8d,0x79,0x4b,0x51,0x7e,0xfb,0xeb,0x9a,0x86,0x96,0x01,0x79,0xbe,0xe4,0x42,0xb3,0xc8,0x28,0x9e,0xed,0xa8,0xb6,0x6d,0xd3,0x31,0xed,0x30,0x9e,0x6a,0x5b,0x02,0x4b,0xbd,0xb3,0xf2,0xf0,0x9d,0x50,0x09,0x40,0x71,0xfe,0x4b,0x91,0xc9,0xd6
+.byte 0x07,0x87,0x9e,0xdb,0xa9,0xcd,0x0b,0x95,0x18,0x5a,0x55,0x10,0xaa,0xe1,0x70,0xe9,0x2e,0xc2,0x31,0x6b,0x48,0x84,0x2f,0xe5,0x7b,0xdd,0x4c,0x03,0xed,0xb6,0xb6,0x64,0x24,0x38,0x7a,0x5a,0x15,0x35,0x9d,0x66,0x08,0x4d,0xa6,0x3c,0x96,0x1a,0xcd,0x02,0x61,0x40,0xde,0xac,0xc3,0x15,0x8c,0xca,0xe6,0x62,0xe9,0x61,0x68,0xf6,0x60,0xd3
+.byte 0x7e,0x5f,0x44,0xcf,0x09,0x01,0x60,0xc2,0xb1,0xfc,0x2f,0x41,0x4c,0xc1,0x06,0x72,0xcc,0xde,0x25,0xe0,0x8c,0x34,0xb8,0xe0,0xb2,0xeb,0x05,0x5d,0x9e,0x7e,0xf7,0x1e,0x24,0xcd,0x1b,0x14,0x3f,0x1b,0x13,0xc0,0x64,0x38,0x43,0x95,0xba,0x7b,0x61,0xa0,0xdc,0xe0,0xf5,0x80,0x13,0xa1,0xc5,0x48,0x92,0xc5,0xd5,0xd0,0x87,0x0c,0x73,0xae
+.byte 0xe2,0xb3,0xe8,0x70,0x4a,0x7e,0xa0,0x13,0xc3,0xc6,0x9c,0x77,0x51,0xca,0x88,0xcf,0xe0,0x1e,0xff,0x6c,0xe2,0xc3,0x33,0xce,0x7f,0x3e,0x7d,0xd5,0x37,0x23,0x09,0xb7,0xbd,0xb7,0xec,0x9a,0x29,0xd6,0x4f,0xea,0x79,0x24,0x4c,0x09,0x74,0x9c,0x97,0x3b,0x08,0x1f,0x82,0xcc,0xae,0xc4,0x3f,0xcf,0xc6,0xcb,0xaf,0x8c,0x89,0x15,0x79,0xeb
+.byte 0x88,0xb9,0x03,0xab,0xc6,0xf8,0x6e,0x54,0xde,0x50,0x6e,0xcf,0x8a,0x4b,0x3f,0x64,0xd0,0xcb,0x69,0xc2,0xe3,0x40,0x4a,0x94,0xe2,0x04,0xfa,0x9b,0x4a,0xf6,0x2b,0x93,0x0c,0x0e,0xf8,0x68,0xbc,0x6e,0x6c,0xe6,0xd9,0xb6,0x04,0x40,0xf4,0x60,0xbc,0xc1,0x1e,0x67,0x1f,0xce,0x5c,0x4d,0xba,0x78,0xa8,0xf5,0x96,0x00,0xb9,0x61,0x82,0x65
+.byte 0xb2,0x1d,0x42,0xb8,0x88,0x66,0x43,0xd9,0xfe,0xe0,0x86,0xef,0x5d,0x4d,0xcc,0xeb,0x57,0x9a,0x2b,0x27,0xf2,0xcf,0x68,0xc3,0x05,0x92,0x4d,0x4d,0xb7,0x46,0x7e,0xfd,0xb7,0x4a,0x4d,0x6f,0xac,0xc8,0x8d,0xf2,0xcd,0x52,0xcf,0x91,0x77,0x2d,0x68,0x06,0x7a,0xc9,0xf3,0x17,0xc6,0x8f,0x8f,0xb5,0x8f,0x74,0xfa,0x90,0xcc,0xfc,0xaf,0x4e
+.byte 0xd2,0x29,0xd9,0x57,0x71,0xe9,0x52,0xd8,0x50,0xfa,0x4d,0x13,0x7c,0x42,0x15,0x22,0x65,0x26,0x08,0xda,0xaa,0x53,0xcf,0xeb,0xd1,0x87,0xd5,0x7c,0x4e,0x66,0x1c,0x7d,0xc9,0x03,0x59,0xf8,0x09,0x3e,0x1b,0x94,0x4c,0x39,0x56,0xeb,0xfd,0xb6,0xd0,0xf9,0x76,0x8b,0x5d,0x6e,0x44,0x15,0xcf,0x27,0x7f,0x69,0x9a,0x00,0x96,0xbe,0x80,0x5e
+.byte 0xbb,0x5a,0x05,0xea,0x15,0xdd,0x44,0x69,0x9e,0x64,0xcd,0xba,0xf2,0x6f,0x67,0x10,0xc5,0xa1,0x75,0x85,0x5f,0xdc,0x61,0x43,0x34,0xc3,0x52,0x06,0xd4,0xe9,0x9f,0xdf,0xd4,0xa6,0x96,0xac,0xb1,0x21,0xdd,0x20,0x46,0x20,0x89,0x5f,0x0e,0x9d,0xa8,0xc7,0x75,0x3a,0x54,0x9e,0x7c,0x3a,0xd5,0xb2,0x68,0x77,0x06,0x1b,0x1c,0xbd,0xb3,0x02
+.byte 0xb5,0xdd,0x87,0x55,0x6b,0x00,0x9f,0x2c,0x30,0xb7,0x4e,0xc3,0x67,0x38,0x37,0x61,0x81,0x68,0xcb,0x14,0x81,0x27,0xd7,0x38,0x18,0x81,0x68,0x45,0xca,0xf4,0xaa,0xae,0x58,0x9e,0xf8,0xbe,0xe9,0x1e,0x05,0x19,0xf0,0xea,0x89,0xf8,0xa1,0x9c,0x7b,0x63,0xc1,0xcd,0x81,0xc8,0x95,0x56,0x81,0x81,0x29,0xb0,0x4d,0xbf,0xe6,0x8d,0xa3,0xb3
+.byte 0xfa,0xae,0x13,0xc8,0xca,0x4d,0x5c,0x5e,0xd9,0x17,0xf8,0x87,0xdb,0x5b,0xe2,0xd9,0xba,0xe3,0xe8,0xdb,0xcb,0x74,0x36,0x7e,0x0e,0x3a,0x94,0x6a,0xe9,0x9e,0x50,0x8e,0xf4,0xd4,0x15,0xb7,0x50,0x60,0x3f,0x14,0x72,0x41,0x9d,0x51,0x63,0x8c,0x31,0x95,0xf2,0xbc,0x14,0xc7,0x64,0x2c,0xee,0x0b,0xe6,0xde,0xf6,0x33,0x85,0x65,0x00,0x54
+.byte 0x54,0x84,0x85,0x94,0x87,0xa0,0xc3,0x95,0x4e,0x74,0xcb,0x2d,0x82,0x9e,0x46,0x7f,0xf5,0x64,0x60,0xfe,0x1a,0x37,0xee,0xa7,0xb6,0x85,0xb5,0x4e,0x30,0x11,0x39,0x4b,0xe9,0x57,0x18,0x3a,0x2c,0x6b,0xb9,0x8e,0x5a,0x54,0xa9,0x31,0xf7,0xe1,0xe0,0xc7,0x52,0xfe,0x76,0x9b,0xc6,0xfe,0xde,0xe0,0xe9,0xf9,0xf6,0x10,0xda,0xef,0x72,0x24
+.byte 0x9c,0xbe,0x4a,0xba,0x58,0x21,0x1b,0xe3,0x1d,0x80,0x10,0x76,0x70,0xde,0x8f,0xf3,0x07,0x93,0x01,0xe0,0xb4,0xd9,0x7d,0x60,0x0d,0x08,0x07,0xa4,0x6d,0x9b,0x2b,0x8c,0x9a,0x58,0x65,0x5e,0x29,0xf1,0x24,0xb2,0x31,0xfb,0xb7,0xad,0xf0,0x50,0x8e,0x25,0x1b,0x75,0xc5,0x82,0x88,0x8c,0x68,0x14,0x2c,0x28,0xa2,0xb6,0x93,0x14,0xe3,0x28
+.byte 0xd0,0x95,0x6f,0x79,0x91,0x03,0x75,0x82,0x5c,0x20,0x46,0x0d,0x53,0x40,0x2c,0x88,0x62,0xa4,0x8c,0xd5,0xf1,0xc1,0xbf,0xde,0x57,0x91,0xb2,0xa6,0x66,0x29,0xf0,0x6b,0xb8,0x5e,0x78,0x5f,0xd1,0x76,0x98,0xf2,0x56,0xc2,0x5f,0x48,0x1f,0xa6,0x98,0xb0,0x87,0x53,0x13,0x1d,0x1a,0xa7,0xdf,0xa5,0xea,0x37,0x12,0x6d,0x64,0x53,0xdc,0x04
+.byte 0x2d,0xb9,0xeb,0x78,0x89,0x7b,0x70,0xd2,0x6d,0x45,0x8d,0x45,0x50,0x57,0xc7,0xb2,0xaf,0xdd,0x72,0x0f,0x9f,0x1b,0x29,0x61,0x68,0xb5,0x4a,0xd4,0xe9,0xd7,0x10,0xe7,0xcd,0xe8,0x22,0xd3,0x54,0x0c,0x0b,0x32,0x77,0x7d,0x3e,0xed,0x6e,0x79,0x4b,0x7b,0x99,0x1f,0x9e,0xbe,0xe7,0x12,0x7c,0x94,0x36,0x1c,0x20,0x8a,0xd0,0xab,0xda,0x95
+.byte 0xf6,0x4f,0xbe,0x6f,0x44,0x0b,0xa3,0x7b,0x4d,0x00,0xf6,0xdf,0x6f,0xc8,0x50,0x9e,0x3e,0x0c,0x1e,0xfe,0xb8,0x39,0x9f,0x83,0x4f,0xb3,0x1f,0x7e,0x53,0x54,0x64,0x04,0xa3,0xf7,0x79,0x01,0x71,0xce,0x18,0x0d,0x47,0x4e,0xae,0x88,0x6a,0xe7,0x26,0x4e,0x59,0xee,0x3a,0x03,0xc2,0x4d,0x0c,0x29,0xf0,0x96,0x9d,0xc0,0xa3,0xb3,0x82,0xf9
+.byte 0xc4,0xf8,0x8b,0xae,0x68,0x47,0x39,0xdc,0x10,0xd7,0x09,0xb4,0x86,0x87,0xfa,0x7e,0x0c,0xe4,0xee,0x3a,0x35,0x1a,0x0e,0x95,0x88,0xce,0xe7,0x9e,0xcc,0xa5,0x58,0x98,0x48,0xbd,0x9c,0x27,0xe6,0xb9,0xf7,0xca,0x66,0xee,0x54,0x87,0xd0,0x6d,0xab,0x31,0x1a,0x57,0x33,0x8b,0x89,0xa0,0xc0,0x18,0x9a,0x87,0x5e,0x58,0x02,0xe5,0x50,0x47
+.byte 0x0f,0x60,0x53,0x9d,0x99,0xe4,0x0a,0xfa,0x4a,0xc3,0x77,0x4b,0x4d,0x4e,0x0c,0xbb,0x68,0xd9,0xb3,0xd3,0x59,0x78,0xdf,0x65,0x97,0x6e,0x22,0x5b,0x24,0x26,0xf9,0x2a,0x14,0x73,0xa7,0xec,0x65,0xfc,0xdf,0x7d,0x35,0x0d,0x44,0x1b,0x4b,0xad,0x6b,0x8f,0x0e,0xa3,0x3b,0x6b,0x40,0xb3,0xe3,0xd9,0x41,0xba,0xbf,0x95,0xbb,0x6e,0x91,0xf6
+.byte 0x63,0xb3,0xde,0xdb,0xc2,0x6f,0xfe,0x00,0xf1,0x53,0x96,0x37,0xa4,0x27,0x48,0x3e,0xf9,0x32,0x23,0x90,0x90,0xe0,0x01,0xde,0x08,0xad,0xc4,0x6c,0x25,0x7a,0x7f,0x2f,0xb7,0xb7,0xc6,0xaf,0xeb,0x91,0x9c,0xa2,0x9c,0xf7,0x7f,0x9f,0x74,0x9b,0x7d,0x54,0x66,0xf9,0xe0,0x73,0xb4,0x15,0x2b,0xaa,0x71,0x50,0xd0,0x74,0x5d,0xcd,0x1c,0x09
+.byte 0x4c,0x80,0xcc,0xdc,0x10,0xd9,0x96,0xb3,0xdc,0x09,0x73,0x1f,0x36,0x4c,0x1b,0x86,0x25,0x13,0x7c,0xd2,0xc6,0x9d,0x5a,0xce,0xd6,0x22,0x97,0x66,0x7b,0x7b,0x84,0xba,0x69,0xd2,0x87,0x9b,0x08,0xda,0x77,0x66,0x90,0xbc,0x7c,0x3c,0x5d,0x43,0x92,0x5f,0x05,0xfb,0x23,0x46,0x88,0xf7,0xa4,0x10,0xbd,0x7d,0x00,0x29,0x2d,0xa5,0x6a,0xab
+.byte 0xcc,0xdd,0xcf,0x1e,0x2b,0x9b,0x5f,0xa9,0x94,0x14,0x99,0x6e,0x3b,0x41,0x52,0x61,0x16,0x17,0x44,0xcf,0x5b,0x34,0x5c,0x27,0x29,0x4a,0xc3,0xba,0x9a,0x0c,0x20,0x17,0x2b,0x92,0xd9,0xf1,0x76,0x51,0xd8,0xa5,0x4a,0x4b,0x4a,0x0b,0xe4,0x6b,0x93,0x61,0xc7,0xb3,0x23,0x7a,0x24,0xfa,0x5e,0xee,0x80,0x10,0x65,0x44,0xa5,0xed,0x72,0xd9
+.byte 0x8a,0x06,0x2a,0x86,0xa9,0x26,0x50,0xa1,0xb2,0xb2,0x8b,0x7b,0x4a,0x29,0xf1,0x18,0xef,0xff,0x61,0xf1,0xa1,0x48,0x0f,0x84,0x8c,0xef,0xd8,0x02,0x65,0x44,0x11,0xf2,0xe1,0xba,0x98,0x03,0xbe,0x5a,0x5d,0xb8,0x0a,0x88,0xd8,0x4a,0x49,0x4c,0x70,0xa6,0x98,0x81,0x36,0x56,0x92,0xde,0xcb,0xaf,0x33,0xf5,0x1c,0x0a,0xce,0x7a,0xc0,0xff
+.byte 0x24,0x54,0xd3,0x9a,0x0f,0x82,0x76,0xe5,0x0e,0x82,0xb4,0xfe,0xc2,0xac,0xe4,0xba,0xa3,0x4c,0x8a,0x0d,0xa7,0x3e,0x2b,0x71,0x73,0x5f,0xd2,0x35,0xd3,0xae,0xc0,0x3e,0x6f,0x67,0x98,0x51,0xa6,0xdf,0xb2,0xf4,0xd2,0xc1,0x43,0xe2,0x0a,0x7c,0xa0,0xb6,0xff,0xfc,0xc0,0x88,0xe5,0x34,0x20,0x79,0x50,0xc3,0x06,0x5b,0x20,0x9f,0x05,0x33
+.byte 0x22,0x30,0xaf,0xc4,0xc3,0x17,0x09,0xbb,0x30,0x0f,0x42,0xb7,0xc1,0xe0,0x4c,0x71,0xc5,0xf7,0x96,0xb4,0xd4,0x0f,0x44,0x47,0xa3,0x06,0x17,0xbd,0x0f,0x7c,0xc6,0x53,0x07,0x34,0x9a,0x9a,0x2f,0x3f,0x01,0xea,0xdf,0x1c,0x06,0x33,0x15,0x9c,0x5a,0xe3,0x33,0x29,0xce,0x40,0x4b,0xb1,0x99,0xe0,0x80,0x6e,0x0c,0xa1,0x4c,0x34,0x01,0x21
+.byte 0x12,0xbe,0x67,0x26,0xe6,0xdb,0xab,0x8d,0x45,0xdd,0x12,0x60,0x02,0x1a,0xdd,0x85,0xd6,0x33,0x78,0x23,0xe1,0x58,0x2a,0x46,0xf0,0xc2,0x4d,0x71,0x59,0x5b,0x8d,0x65,0xa7,0x97,0xf4,0x71,0x88,0x7d,0x60,0xe0,0x2d,0x2d,0x09,0x2f,0x26,0x15,0xa7,0xbf,0x30,0x0b,0x99,0x08,0xd7,0x85,0xfc,0x0c,0x19,0x31,0xde,0x5e,0x55,0x91,0x13,0x45
+.byte 0x3a,0x6d,0xd0,0x61,0x02,0x81,0xa0,0x42,0x7d,0xd8,0x7d,0x41,0x11,0xd2,0x25,0xb7,0x15,0xa1,0x16,0x3e,0x70,0x77,0x1b,0x80,0xb7,0xf1,0x24,0x8e,0x70,0x8d,0x73,0x6d,0xba,0xf1,0x46,0x32,0x60,0xe4,0xc8,0x4d,0x69,0xc8,0x10,0xf8,0x2d,0x53,0xe1,0x81,0x96,0x20,0x9d,0x59,0x74,0xae,0x93,0x92,0x44,0x5a,0x09,0x79,0x20,0xcb,0xff,0xb2
+.byte 0x08,0x7a,0x81,0xee,0x98,0x83,0x0b,0xa4,0x15,0xb0,0xaa,0x55,0xb0,0xb5,0x60,0x09,0x21,0xeb,0xe2,0x9b,0x57,0x41,0xb9,0xb4,0xd9,0xbe,0x7d,0x60,0x5d,0x25,0xde,0x9f,0x9e,0x5b,0x7c,0xee,0xeb,0x87,0x54,0x6a,0xc3,0xcf,0xec,0x57,0xce,0x97,0x2e,0x47,0x84,0x4c,0x15,0xf4,0xf5,0xe9,0xd4,0x45,0x23,0x20,0xf0,0x0f,0xda,0x97,0xc2,0xb9
+.byte 0xb2,0xe2,0x44,0xea,0xbd,0x95,0x73,0xcc,0x94,0x03,0x0b,0x97,0xeb,0x03,0xc1,0x51,0xc8,0x14,0xa6,0x7d,0x18,0x30,0xa1,0xda,0xa3,0xcd,0x78,0x67,0xb0,0xc1,0x6c,0x88,0xdd,0xd6,0x52,0x4b,0x85,0x1d,0x4a,0xaa,0x44,0xec,0x3b,0xff,0x00,0xd8,0x9e,0x18,0xf8,0xac,0x4f,0x73,0x6d,0xc7,0x4b,0x59,0x15,0x85,0x87,0x02,0xd8,0xf1,0xe6,0xfb
+.byte 0x66,0x57,0xcf,0x06,0x84,0x50,0xc5,0x67,0x94,0xc6,0x96,0xb2,0x1a,0x37,0x06,0x3d,0x21,0xf2,0x1e,0xb4,0xe7,0xcb,0x36,0x8b,0xa3,0xe3,0x84,0xa0,0x9a,0x31,0xdb,0x87,0xf9,0xb0,0xef,0x06,0xfe,0xb0,0x8a,0x32,0x53,0xb4,0x41,0x79,0x6b,0xf7,0x7c,0xf7,0x9c,0xc1,0xea,0x61,0xf3,0x75,0xac,0x1f,0x92,0x75,0x44,0x58,0x9a,0x20,0xa4,0x20
+.byte 0xe3,0x19,0x1c,0x0d,0x27,0xe5,0x2e,0xbd,0x14,0xcb,0x40,0x3f,0x1c,0x19,0x7c,0xf9,0x92,0x13,0x1a,0x71,0x87,0xaf,0x77,0x0f,0x50,0x92,0x06,0x75,0x2d,0x75,0xe0,0x2e,0x37,0x54,0xcd,0xac,0xcb,0xca,0x7c,0x0e,0x66,0x53,0x10,0x50,0x70,0x9a,0xa4,0x79,0x76,0x87,0x71,0x4a,0x55,0xd4,0xa3,0x83,0xb3,0x04,0xed,0xa9,0xd6,0x84,0x7d,0x1a
+.byte 0x64,0x5d,0xf7,0x4f,0x55,0x97,0x5e,0x26,0x9c,0x03,0x42,0x0a,0x16,0xd3,0xdf,0xc8,0x07,0xb8,0xb3,0xe9,0xac,0xa9,0x99,0x83,0x32,0x5b,0x83,0xde,0x7f,0x2b,0x70,0xca,0x15,0x09,0x33,0x0e,0x28,0xc9,0x89,0xc6,0xa6,0x47,0xd1,0x56,0x04,0x40,0x5d,0xd2,0x17,0x1d,0x32,0x21,0x6d,0xb2,0xc7,0x89,0x14,0x98,0xc6,0x58,0xc4,0xca,0xda,0x0f
+.byte 0x32,0xdd,0xe1,0xe1,0x9a,0x25,0x09,0x31,0x16,0xf1,0x48,0x40,0x1c,0xc2,0xf9,0xd0,0xba,0xec,0x07,0x94,0xea,0x17,0xcf,0x6e,0xbc,0xfd,0x70,0xb4,0xbb,0x40,0xae,0xc3,0xae,0xf7,0x56,0xf5,0x13,0x55,0xfb,0x4b,0x81,0x5d,0xab,0xf2,0x3f,0xd7,0xa7,0xe6,0xcf,0x17,0xef,0x1f,0x71,0x1b,0x92,0x67,0xd3,0xd2,0xed,0x89,0x14,0x8f,0x8d,0x83
+.byte 0xef,0x7f,0xca,0x65,0x6d,0x79,0x13,0x5f,0x6e,0xf9,0x5d,0x9a,0x68,0x54,0x71,0x5c,0x9d,0x03,0x7c,0x73,0x7a,0xc2,0x17,0x9b,0x5a,0x7d,0x45,0x24,0x0c,0x41,0x13,0xe4,0xcb,0xdb,0x7b,0xc6,0xfb,0x93,0x48,0xca,0xd3,0x01,0x68,0x3f,0x36,0xc0,0x4b,0x1d,0xfa,0x9f,0x25,0x0e,0xcc,0xd0,0xf7,0xa0,0x7a,0x14,0xac,0xd7,0x6e,0x00,0x9f,0xf1
+.byte 0xc0,0xdc,0xfc,0x3b,0xd9,0xbf,0x68,0xfd,0x65,0x34,0x66,0x18,0xe5,0x02,0x9a,0x2d,0xff,0xaa,0xf7,0x73,0x58,0x21,0xe3,0xff,0x23,0x0f,0x63,0x1f,0xf3,0x8b,0x08,0xc7,0x00,0x46,0xe7,0xef,0x85,0x5f,0x7f,0xd9,0x5f,0xc2,0x36,0xe2,0xb6,0xa3,0x00,0xcb,0xff,0xe0,0x22,0x28,0x8c,0xb1,0xb1,0x17,0x91,0x4a,0x4a,0xc8,0x77,0x5a,0xa9,0xb2
+.byte 0x6e,0xb7,0xf0,0x4f,0x70,0x34,0x7f,0x87,0x2a,0x0c,0xcb,0x16,0x24,0x9b,0x41,0xb2,0x3e,0x0a,0xc1,0x33,0xf3,0xbb,0x48,0x17,0x2f,0xe6,0xfc,0xf4,0x27,0xc0,0xdb,0x58,0x24,0x9b,0x99,0x43,0x25,0xfb,0xd3,0xcf,0x1c,0x5a,0x5f,0xbe,0x28,0x3a,0x84,0x51,0x19,0xc3,0x53,0x6b,0xc8,0x73,0x44,0x6e,0x3d,0x7e,0x01,0x37,0xc2,0x2b,0xf7,0xa8
+.byte 0x1f,0x8e,0xd8,0x02,0x5a,0xae,0x56,0x81,0x2b,0x46,0x1b,0x7d,0xca,0x27,0x1f,0x48,0x99,0x24,0x54,0x59,0x08,0xfd,0xb7,0xdf,0x0a,0x77,0xef,0x4e,0x89,0x21,0x71,0x71,0x3f,0x8c,0xd7,0x52,0x89,0x7a,0x0d,0x68,0x09,0xc8,0x88,0x9c,0x0c,0x60,0xca,0x77,0x96,0xeb,0x05,0xeb,0xeb,0x60,0x5b,0x68,0x51,0x2c,0xcb,0x8f,0xca,0x3b,0x18,0x39
+.byte 0x28,0x8f,0xda,0x17,0x9b,0x53,0x71,0x26,0xa9,0x19,0xfb,0x1e,0x4a,0xd0,0x14,0x93,0x1c,0xee,0xe1,0x21,0xea,0xb3,0x16,0x47,0xaf,0x50,0xe5,0xe5,0xd3,0x21,0x8c,0x67,0x46,0x5d,0x97,0x19,0xda,0x6e,0xd9,0x70,0x7d,0x9f,0xd6,0x25,0xd0,0xfb,0x01,0x62,0x0a,0x9e,0x49,0x3d,0x33,0x0d,0x35,0xe5,0xae,0xfd,0xeb,0xb5,0x9b,0xd8,0xc1,0x2a
+.byte 0xee,0x4d,0xf2,0xfc,0x16,0x51,0xab,0x58,0x7a,0x9e,0x5c,0xca,0x0a,0x92,0xbb,0xbb,0xa8,0x5b,0xfb,0xf9,0x33,0x67,0x0e,0x13,0x4c,0x83,0x3a,0x25,0x84,0x23,0xe1,0x41,0xfb,0xf1,0x42,0xc1,0x8d,0x58,0x0c,0x5e,0x75,0x09,0x34,0x58,0x96,0x32,0x54,0xb6,0xd8,0xaa,0x48,0xc1,0xed,0xc0,0x92,0x5a,0xec,0xeb,0xb1,0x75,0x59,0xf6,0x35,0xf5
+.byte 0xfd,0x7d,0x96,0x9b,0x83,0x38,0x31,0x10,0xa4,0xd7,0xfb,0x28,0xf0,0xc9,0xe4,0x33,0x5d,0x66,0x81,0x9c,0x31,0x9a,0xe9,0x9a,0x5e,0x70,0xf7,0x61,0xf9,0x93,0xaf,0x2b,0xbd,0x78,0x9e,0xdc,0x61,0xe0,0xa9,0xd1,0xa0,0x8e,0x3a,0x5f,0xb1,0x71,0xe7,0x9e,0xfd,0x81,0xee,0xf0,0xd6,0x63,0xec,0x4a,0xca,0x30,0xaf,0xb6,0x2d,0xaa,0x2d,0xa1
+.byte 0x5a,0x38,0xb5,0xc6,0x3f,0x5f,0x63,0x48,0xd3,0x18,0xeb,0xe3,0x36,0xca,0x91,0x86,0x4b,0x6f,0x57,0x66,0x47,0x2f,0xce,0xe4,0x44,0x26,0xe4,0xfd,0x8c,0xde,0x74,0xdc,0x17,0x0e,0x7d,0x6a,0xcf,0x89,0x0e,0x7f,0x09,0x65,0xf8,0xeb,0x58,0x00,0x3d,0xc5,0x1b,0x14,0xc5,0xca,0xca,0x28,0xbc,0xb7,0x63,0x6f,0x3b,0xa4,0x62,0x23,0x0e,0xd5
+.byte 0x04,0x76,0x0c,0xe8,0xea,0x64,0x10,0x3a,0x76,0x03,0xd6,0xea,0x69,0x52,0x14,0xa7,0x5e,0x40,0x7e,0x14,0xdb,0x7f,0xbf,0xe8,0xf6,0xf0,0xdd,0x5e,0xac,0x55,0x44,0xfb,0x28,0xf3,0x16,0xcb,0xed,0x8f,0x10,0x01,0x91,0xac,0x2c,0x27,0x46,0x0c,0x51,0xd6,0xf6,0x30,0xa3,0x34,0xd0,0x5e,0x93,0xe8,0x4e,0xc0,0xb4,0x9b,0xc1,0xe8,0x20,0x7d
+.byte 0xb7,0x68,0xdd,0xf1,0xc4,0x60,0x20,0x97,0xdd,0x5c,0x7c,0x9b,0xea,0xc0,0x22,0x84,0x2c,0x65,0x78,0xbd,0x18,0xa1,0x62,0x7e,0x06,0x49,0x96,0xde,0xd1,0x89,0x06,0x0d,0x35,0xa0,0xcc,0x22,0xd3,0xf5,0xa6,0x4b,0xb6,0xca,0x43,0x34,0x5a,0x3d,0x39,0x95,0x0b,0x95,0xbe,0xdc,0xe6,0x61,0x72,0xbe,0x2f,0x19,0x1c,0xe8,0x22,0x5e,0x18,0xc9
+.byte 0x59,0x4a,0x08,0xa3,0x85,0x5c,0x06,0x36,0x00,0x2e,0x84,0x3e,0x3e,0x07,0x5b,0xfa,0xda,0xbb,0xbb,0x57,0x20,0x6f,0x1b,0x8d,0xe5,0xc5,0xdb,0x8d,0x23,0x1a,0xfc,0x67,0xa9,0xc8,0xea,0xe1,0x54,0xbb,0x8a,0x8a,0x0b,0xa6,0x02,0x35,0xd6,0xd5,0x4d,0xff,0x09,0x79,0x31,0x9a,0xc2,0xad,0xa7,0x66,0xb5,0x3c,0xbd,0xb7,0xcb,0x17,0x30,0x4b
+.byte 0x56,0xf5,0xd2,0x51,0x90,0xbb,0x47,0x00,0xc0,0xf3,0x8b,0xd7,0x10,0x33,0x6d,0xe8,0xe4,0xcf,0xd6,0xbf,0x35,0x75,0x8d,0x40,0x55,0xd7,0x5d,0xb0,0x40,0xf6,0x95,0xfb,0x1a,0x97,0x24,0xb8,0xc1,0x91,0x5f,0x66,0x6c,0xc7,0xdb,0x16,0xba,0xb8,0x07,0xf8,0xf8,0x91,0xb2,0x8c,0x26,0xb9,0xa2,0x59,0xb0,0xde,0x49,0x63,0xcc,0x7c,0x4c,0x48
+.byte 0xb5,0xe4,0xf9,0x81,0x28,0x48,0x9f,0xa0,0xa4,0xf8,0x0d,0xcc,0x7b,0xf3,0xce,0x08,0x85,0x73,0x4a,0x64,0xfc,0xa8,0xc0,0xae,0x7a,0xbf,0xa5,0x3f,0x45,0xaf,0xe7,0x7f,0x41,0x61,0x34,0x08,0x6e,0x09,0x0d,0x9d,0xea,0x90,0xbe,0x62,0x7c,0x38,0x92,0xa7,0x63,0xfa,0x03,0x80,0x10,0xc4,0x53,0x46,0x0b,0x44,0x88,0xea,0x50,0xb6,0x82,0xf8
+.byte 0x0b,0x2d,0x93,0x63,0x82,0x80,0x2b,0x61,0x3e,0x17,0xd1,0xd8,0x6c,0xb1,0xb4,0xbd,0xfd,0xad,0x1c,0x10,0x30,0xc1,0x78,0xd4,0x5f,0x21,0x49,0x54,0x7a,0x08,0x2b,0x25,0x3b,0xc9,0xb7,0x0a,0xf2,0x37,0x83,0xc0,0x43,0x73,0xee,0xd6,0x8b,0x92,0x15,0xde,0xfe,0x14,0xf1,0xfb,0x8b,0x4a,0x85,0x8d,0x78,0xe6,0x36,0x1a,0xbb,0x32,0x6c,0xdd
+.byte 0x43,0x76,0xad,0x68,0x90,0x08,0xd2,0xbd,0x24,0x41,0xd4,0x93,0x17,0xa8,0x9f,0xeb,0x33,0x25,0x1f,0x1a,0xfd,0x45,0x20,0xc1,0x47,0xf1,0x25,0x09,0x89,0x14,0x9e,0x4c,0x88,0xa4,0x1c,0xb8,0xba,0x84,0xd5,0x7d,0x73,0xb2,0x9c,0x48,0x9f,0x84,0x31,0xd3,0x2c,0xe1,0x94,0x61,0x3e,0x5f,0x37,0x25,0xc7,0xb7,0x2d,0xc3,0xa9,0xaf,0xcc,0x0e
+.byte 0xe6,0xc7,0x9a,0xa7,0x06,0xe3,0x41,0xb8,0xa6,0xa8,0x9a,0xe7,0x76,0xef,0x83,0x5a,0x80,0xa4,0xe3,0x0c,0x04,0xa2,0x0b,0x91,0x33,0x34,0x17,0xa4,0x02,0x2d,0x12,0x84,0x67,0x85,0x6b,0xc0,0x3a,0x0d,0x16,0xf2,0x66,0x04,0x71,0xe9,0xec,0xa6,0xbb,0x58,0x42,0x92,0x70,0xf5,0x0d,0x52,0xcd,0x1e,0x2d,0xd4,0x28,0x0f,0x68,0x35,0xd9,0xa4
+.byte 0x40,0x09,0x30,0xe9,0xbb,0xaf,0x77,0x63,0x4f,0xba,0x56,0x97,0xe8,0x92,0xcc,0xba,0xdb,0xe4,0xe0,0xdf,0x19,0x21,0x71,0x23,0x3d,0xd0,0xb1,0x25,0xd3,0xf8,0x53,0x01,0x30,0x9a,0xea,0x84,0x1b,0x18,0x68,0x4a,0xb9,0x9e,0x60,0xc4,0xfc,0xf7,0x56,0xb7,0x49,0xe1,0x50,0x38,0x7d,0x3d,0x87,0xa2,0xad,0x38,0x5c,0x0c,0x53,0x21,0xa0,0x56
+.byte 0x3a,0x94,0xd7,0xa8,0x23,0x96,0xa9,0x66,0x4e,0x88,0xae,0x4b,0x6e,0xcb,0xc6,0xa6,0xdb,0x1f,0x2e,0xae,0xe7,0x24,0xe2,0x1e,0xf7,0x3a,0x14,0x48,0x5e,0xfa,0x90,0x0a,0x84,0xa6,0x1c,0xaa,0x60,0xc0,0x2c,0x69,0xe8,0x36,0xb3,0xee,0x55,0x2a,0xf7,0x90,0xa1,0x92,0x4f,0x29,0x1e,0x49,0x6e,0x73,0x22,0x1f,0x8b,0x0c,0xb6,0xf4,0x3c,0xbf
+.byte 0x82,0x47,0x49,0xc3,0x94,0x0e,0xcf,0x9b,0x86,0x88,0xc2,0xd0,0xd7,0xa7,0x43,0xfb,0x89,0x4b,0xbd,0x5d,0x4c,0x6b,0x7a,0xc7,0x74,0x1b,0xfb,0x48,0x12,0x68,0x61,0x91,0xf9,0xf3,0xb6,0x7f,0x4f,0x72,0x89,0xf0,0x72,0x46,0xf7,0x6f,0x84,0xd1,0x38,0x6d,0xd9,0x1b,0xa5,0xd1,0xe2,0x29,0xe0,0xa6,0xbf,0x1c,0xbd,0xfb,0xdd,0xdc,0xa5,0xae
+.byte 0x7a,0x9c,0xd0,0xc3,0xfa,0x6f,0x72,0xa3,0xa2,0x8b,0x87,0x0d,0x9a,0x6a,0xfc,0x53,0x9a,0x08,0x61,0x86,0x67,0x2a,0x90,0x6a,0x09,0x20,0x8e,0xde,0x32,0x35,0x34,0x75,0xc0,0xa8,0xab,0x1b,0xc4,0x7c,0xc8,0xd9,0x90,0xcf,0x32,0x27,0x6c,0x68,0xf9,0x18,0x14,0x05,0x57,0x39,0xc6,0x9e,0x5e,0x38,0x07,0xdb,0x81,0xb4,0xa4,0x54,0x06,0xd6
+.byte 0x79,0x78,0x0e,0xc8,0xb9,0x56,0xda,0x08,0x2e,0x77,0x26,0xcc,0xf7,0xa5,0x2d,0xd8,0x91,0xa6,0xfc,0x25,0x0e,0x91,0xdd,0x3c,0xa8,0x14,0x7a,0x95,0x05,0x5b,0x15,0x7d,0x1d,0x9b,0x3c,0x8c,0xfd,0xdc,0xa5,0xcd,0xec,0xea,0x7a,0x2b,0x7e,0x79,0x21,0x54,0xea,0x7f,0x52,0xb4,0xbb,0x4f,0x07,0x95,0x39,0x4a,0xaf,0x2e,0xb4,0x1e,0x9e,0xc6
+.byte 0x0a,0x07,0x58,0xd4,0xa5,0x44,0x73,0xa8,0x84,0x26,0x67,0xb8,0x0f,0xc7,0x6b,0xa7,0x28,0xf6,0x05,0x91,0x3e,0x22,0xcd,0xd7,0xf5,0xfc,0xae,0x22,0x42,0x96,0x3b,0x57,0x91,0xce,0x44,0xd0,0xfd,0xc3,0x4c,0x8b,0x8b,0x67,0xfe,0x03,0x86,0x92,0x34,0xf7,0xf9,0x53,0xb3,0xdf,0x36,0xcf,0x16,0x1c,0x68,0x36,0x17,0x1f,0x41,0x56,0x1d,0xda
+.byte 0x90,0xb3,0xab,0x03,0x97,0x88,0x23,0x65,0x89,0x72,0xe3,0x6d,0x8e,0x37,0x5d,0xee,0x89,0x81,0x11,0x27,0x8b,0xf0,0x9b,0xef,0xa2,0x34,0x45,0xcc,0x41,0xcf,0x2a,0x88,0x70,0xe4,0x78,0xfc,0xe1,0xb5,0x51,0x70,0x84,0x64,0xd1,0x10,0x71,0x5d,0xa4,0xb4,0x6d,0xb5,0x98,0x6e,0xcc,0x9a,0x62,0x14,0x30,0xce,0x1a,0xff,0x49,0xd6,0xaa,0xcc
+.byte 0xe1,0x99,0x42,0xb1,0xfe,0x77,0x8a,0x2d,0xdb,0xc0,0x0d,0x50,0x53,0x0d,0x92,0xe5,0x2b,0xd0,0x78,0x83,0x08,0x4a,0x0c,0x1d,0x5b,0x03,0x22,0x65,0x3d,0x9e,0xdb,0xcf,0x01,0x61,0xf7,0x6d,0x2b,0x99,0xef,0xba,0x80,0x50,0xda,0xda,0x2d,0xbf,0x00,0xdf,0x6f,0xec,0x95,0xbc,0x5b,0x4e,0xda,0x83,0xe4,0x5d,0xf0,0xa7,0x1b,0x27,0xf1,0x76
+.byte 0x04,0x5d,0x3d,0x2c,0x12,0x15,0xad,0xef,0x47,0xdc,0x22,0x9b,0xc2,0x80,0x91,0xf3,0xbf,0x16,0xe9,0xd3,0x35,0x94,0x4b,0xfd,0xa3,0xa1,0xee,0x98,0xad,0x99,0xea,0x07,0xe1,0x0f,0xa7,0xbd,0x0b,0xfb,0xc0,0xd5,0xb0,0x49,0x37,0xc6,0x5f,0xe7,0x18,0xc1,0x60,0xe9,0x1d,0x5e,0x0e,0xea,0x73,0xf2,0xa1,0x75,0x7e,0x39,0x51,0x07,0x1e,0xcb
+.byte 0x2a,0x5b,0x26,0x75,0xbe,0x02,0x5e,0xde,0x6c,0x37,0xb1,0x3c,0x1f,0x25,0x65,0x7d,0x9e,0x5d,0xa1,0x0b,0x98,0x27,0x53,0xb9,0xbb,0xc2,0x3e,0x8d,0x2d,0x5e,0x5c,0xbf,0xed,0x66,0xe8,0xd1,0x7d,0xaa,0xef,0xca,0x0e,0xd0,0x78,0x2b,0x89,0x07,0x76,0xb6,0xc3,0x92,0x42,0x3a,0x84,0x1d,0x81,0xc1,0xe8,0x1a,0xb8,0xe6,0xf1,0x43,0xcc,0x7a
+.byte 0x59,0x4d,0x9f,0x00,0xfe,0x6a,0xe5,0x42,0x71,0x3c,0xcb,0xc8,0x45,0x18,0xf0,0xf2,0x81,0x9d,0x5a,0xb7,0x8d,0xbe,0x31,0xcb,0x7d,0xca,0xb7,0x19,0x57,0xb1,0x61,0x36,0x90,0x42,0xe2,0xc3,0xf5,0xa5,0x4b,0xc3,0xd4,0xe7,0x6c,0xb6,0x0c,0x06,0x19,0x4b,0x54,0x8f,0x2d,0xdc,0xc5,0x2b,0xff,0x1c,0x61,0x29,0xda,0x95,0x4f,0xa1,0x21,0x25
+.byte 0x24,0xbe,0xc7,0x34,0x2f,0xbf,0x33,0x6d,0x82,0x8f,0xf1,0xa9,0x97,0x5a,0x49,0x7f,0x60,0x00,0xf2,0x3e,0x7b,0x64,0xdf,0xc8,0xd3,0x5f,0x6e,0x1f,0xfb,0x71,0x80,0xf3,0x55,0x42,0xbe,0x32,0x7b,0xa9,0xeb,0xf6,0x31,0xe2,0xf0,0xd1,0xe9,0xbe,0x96,0x0e,0xb3,0xdf,0x3e,0xb2,0x2c,0xc3,0xce,0xbd,0xe7,0xfe,0x1c,0xed,0x2c,0x0b,0xaa,0x32
+.byte 0x76,0x82,0xb4,0x6b,0x18,0xa7,0x68,0x19,0xb7,0x27,0x21,0x4c,0xb0,0x22,0x98,0x58,0xd5,0x90,0x80,0xab,0xa1,0xfe,0x83,0xc5,0x66,0xf6,0x3e,0xa2,0xa9,0x6f,0x73,0xce,0x7f,0x0c,0xe6,0xde,0xee,0xb0,0xe6,0x2a,0xcc,0xcc,0xb0,0x53,0x8c,0xce,0xc8,0xdc,0xea,0x83,0xb4,0x0e,0x69,0x8d,0x90,0x86,0xaa,0xe3,0x3b,0xfb,0x88,0xe2,0xe8,0x27
+.byte 0x65,0x36,0x07,0xb3,0x91,0x0e,0x5a,0x6b,0x9f,0x0f,0xbd,0x81,0xb3,0x54,0x65,0x71,0xa4,0x2c,0x8e,0xda,0x47,0x04,0xce,0xfe,0x00,0x52,0xf1,0xdf,0x82,0x27,0x70,0x2a,0xb1,0x79,0x2f,0x27,0x7f,0xae,0x9e,0x5c,0x36,0xec,0xa0,0x2a,0xf3,0x74,0x78,0x01,0x17,0x74,0x2a,0x21,0x4f,0xb8,0xd2,0xe4,0xfe,0x5b,0x06,0x14,0xa5,0xb1,0xb1,0xff
+.byte 0xee,0x79,0xf7,0x18,0xb9,0x31,0xa4,0x63,0x47,0x1c,0xdf,0x38,0x04,0x2d,0x18,0xca,0x14,0xf8,0x2f,0xec,0x0d,0x58,0xad,0xbb,0xf4,0x45,0x11,0x0e,0xfa,0x17,0x4c,0x5e,0xd4,0xa6,0xde,0xe4,0x13,0x44,0x2c,0xb9,0xfd,0xcd,0x41,0xe7,0xf9,0xda,0xbc,0x28,0x8f,0x0c,0x41,0x4d,0xa7,0x0d,0xf5,0x96,0xd7,0x8f,0x10,0x96,0xfb,0x75,0x75,0x86
+.byte 0xc9,0x6e,0x23,0x92,0x71,0x69,0x7b,0x94,0x61,0x1c,0x3f,0xcf,0x66,0x34,0x62,0x68,0x5d,0xee,0x7b,0x34,0x5d,0x2a,0x39,0xbb,0x6a,0x34,0xea,0x6e,0xe3,0xe9,0xdb,0xe4,0x34,0x6e,0x29,0x0b,0x21,0x38,0xe7,0x5b,0x79,0x37,0x54,0xf0,0xed,0xaa,0x07,0x2b,0x21,0x29,0x67,0xfe,0x7d,0xa5,0x99,0x0e,0x5d,0x05,0xe7,0x61,0x6e,0xd1,0x4a,0x15
+.byte 0x4a,0x56,0xb1,0x13,0x49,0x8c,0xf4,0x4f,0xd7,0xe9,0x68,0xae,0x09,0x37,0xd3,0x96,0x21,0xe8,0x1f,0x9f,0xa9,0xc6,0x54,0x57,0x63,0x09,0x1e,0x71,0xf2,0x48,0x9e,0x50,0xbb,0xb3,0xf1,0x4e,0x2d,0x1d,0x79,0x69,0x0a,0xa2,0xa9,0xdd,0x1b,0x55,0x62,0x6b,0x0d,0xcc,0x9c,0xb1,0x5e,0xc8,0x4c,0x4f,0x62,0x3c,0xc4,0xa3,0xb4,0xe4,0x34,0xec
+.byte 0x9d,0x0c,0x1b,0x46,0x60,0x68,0xd5,0x04,0xd7,0x1b,0x3c,0x7a,0x98,0x0c,0xd9,0x87,0x2b,0x4f,0x97,0x5b,0x56,0x65,0xb0,0x06,0x6e,0x9e,0x06,0x37,0x0e,0xd2,0xa1,0x52,0xf5,0xaa,0x2b,0xec,0xbd,0x0f,0xb6,0xba,0x48,0x63,0x57,0x51,0xe3,0x00,0x53,0xf5,0x77,0xb2,0xa4,0xb1,0x44,0x01,0x3e,0xcf,0xe9,0x2a,0x7a,0xf5,0x19,0x5e,0x43,0x36
+.byte 0xe0,0x38,0x41,0xbc,0xda,0xb5,0xd0,0x69,0xdf,0xd2,0x04,0xd4,0xf8,0x38,0x37,0x1c,0x90,0x30,0xf2,0x3d,0x03,0xe4,0x3f,0x84,0x2c,0x9a,0xa4,0x8a,0x00,0x4e,0x49,0x24,0x62,0x06,0xb4,0x9d,0x33,0x8a,0x8e,0xd2,0xbd,0x1b,0xa1,0x83,0x0b,0xa5,0xa2,0x5c,0xcf,0xb1,0x65,0x85,0x92,0x1f,0xb0,0x2e,0x3b,0xb2,0xf3,0x80,0xff,0x9d,0x41,0x4d
+.byte 0xcd,0x25,0x09,0x02,0x85,0xb3,0xa8,0x49,0x12,0x10,0xe7,0x5c,0x94,0x13,0x4b,0x52,0x53,0x35,0x9c,0xbc,0x7a,0xad,0x04,0x19,0x54,0x8a,0xbc,0x42,0x73,0xf1,0x0a,0x22,0x75,0xbf,0x3b,0x12,0xa8,0xa4,0x47,0x5c,0x95,0x48,0x60,0x71,0x5c,0x9a,0x39,0x5c,0xdb,0x44,0xe8,0x74,0x92,0x3e,0x2b,0x3b,0x1b,0xb7,0x21,0x98,0xe1,0x87,0x32,0xaf
+.byte 0x4a,0xe3,0xda,0x4a,0x46,0xde,0x15,0x4c,0xdc,0xc6,0x60,0xe6,0xd7,0x92,0x29,0x05,0x21,0x22,0x9b,0xaf,0xc4,0xd7,0x6a,0xea,0x2c,0x82,0x5d,0xc7,0x81,0xe2,0x67,0x85,0xd2,0x16,0x6f,0x83,0xa8,0x82,0x5f,0x8f,0xf5,0x3a,0x50,0xba,0x04,0xcb,0x76,0x4d,0x80,0x16,0x12,0x72,0xa8,0x6c,0xac,0x78,0xf1,0x8c,0x93,0xab,0xe0,0xb5,0xdc,0xd1
+.byte 0xa5,0x40,0x0e,0x50,0x88,0xd2,0x9d,0x56,0xf6,0xa0,0xd4,0x45,0xcf,0xef,0x16,0x1a,0xa4,0xaa,0x91,0x5c,0xa3,0x8f,0x84,0xf8,0x3e,0x30,0x1f,0x5f,0x55,0xf9,0xd3,0x3d,0xb8,0x64,0xbb,0x3c,0x91,0xe4,0x0d,0xa5,0x43,0x14,0x75,0xe7,0xec,0x8c,0x12,0x56,0x34,0xb0,0xa9,0xae,0x93,0x91,0x34,0xfc,0x78,0xa3,0x81,0x51,0x45,0x7d,0x9f,0x7d
+.byte 0x5e,0xc7,0x5e,0x51,0x17,0xfa,0x02,0x5d,0xb2,0xf7,0x79,0x4b,0x49,0xd2,0x1b,0x6f,0xfd,0x9e,0xff,0x75,0x74,0xf0,0x26,0x7e,0xd7,0x65,0xb0,0xf3,0x0a,0x0c,0xd2,0xa2,0x26,0x98,0x03,0x26,0xb5,0x67,0xc4,0xc0,0xed,0x80,0xd4,0x20,0xf6,0x7e,0x17,0x54,0xeb,0xde,0xc3,0x86,0x51,0xda,0xf7,0xe5,0xc7,0xfe,0xfc,0x71,0x83,0x80,0xbe,0xde
+.byte 0x4b,0xda,0x83,0x76,0x63,0x04,0x03,0xdd,0xe0,0xe0,0x4e,0xb6,0x32,0xd5,0xd0,0xce,0xd7,0xaa,0xcd,0x5f,0x64,0xa6,0xd8,0x9e,0xc5,0x97,0x30,0xad,0xf1,0x82,0x8f,0x7c,0x18,0xec,0x30,0x1d,0x2d,0xb6,0xdb,0x33,0x65,0xed,0xe2,0x24,0xd8,0xba,0x0a,0x1f,0x79,0x2a,0x1c,0xe1,0x4e,0x04,0xa6,0x74,0x74,0x37,0x42,0x94,0xc4,0x99,0x0e,0xf8
+.byte 0x3f,0xf3,0xff,0xeb,0x7f,0x95,0x9c,0x47,0x56,0x68,0x6a,0x0d,0x6e,0x66,0x71,0x3b,0x51,0xd5,0x12,0x7e,0x59,0x39,0x43,0xb5,0x53,0xd3,0x1d,0xa2,0xe9,0xa1,0xc8,0x8d,0xf2,0x8e,0xa1,0x9c,0x36,0xdd,0xda,0xd3,0x61,0xd8,0xe9,0x76,0x5e,0xcb,0x0a,0x52,0xc8,0x5a,0x25,0x00,0x21,0xea,0x6a,0x96,0xde,0x02,0x76,0x02,0x63,0x73,0x28,0x63
+.byte 0x46,0x37,0xe1,0x75,0x2f,0x42,0x8f,0xee,0x2c,0x84,0x82,0x43,0x43,0x2d,0xa9,0x13,0x50,0x46,0x54,0xed,0x76,0xbd,0x10,0x1c,0x9b,0xa1,0x42,0x97,0x68,0xca,0x84,0x2e,0x1d,0x6f,0x86,0x67,0xaf,0xb7,0x20,0xc1,0x7c,0xab,0x70,0x20,0xa1,0x79,0x71,0xe4,0xb7,0x45,0x8a,0x04,0xd3,0x70,0x10,0xa8,0x28,0xc3,0x56,0xff,0x43,0x36,0x13,0x88
+.byte 0xb6,0x2d,0xfd,0x7f,0xbc,0xc9,0x1d,0x11,0x9a,0x7c,0xd0,0xfc,0x11,0xac,0x54,0xd5,0xc3,0x03,0xd1,0xe3,0x9e,0xff,0x03,0xdb,0xd9,0xd8,0x77,0x96,0x08,0xf4,0x1b,0xd9,0xfa,0x70,0xed,0xab,0x53,0x78,0xca,0x28,0xa7,0x29,0x49,0x45,0x37,0x10,0x8f,0x61,0x7d,0x11,0x99,0x2e,0xe8,0x5d,0x45,0x3a,0xe7,0xd2,0x6c,0xb6,0x03,0xc4,0x6d,0xaa
+.byte 0x52,0x60,0x8c,0xc6,0x9c,0x17,0xba,0xf6,0x3b,0xd4,0x4b,0x26,0x63,0x92,0x8c,0xb9,0x6a,0xf2,0x26,0x91,0x9d,0x8d,0x99,0x39,0x26,0x7d,0xb5,0x4f,0x4c,0xc6,0x0e,0x2e,0xe1,0xc6,0xcb,0x98,0x93,0x71,0x9b,0xaa,0x01,0x40,0x70,0x93,0x2a,0xe8,0x27,0xc5,0x20,0xa7,0xd2,0x06,0x8b,0xb0,0x29,0xcd,0x4f,0x2c,0x5a,0xde,0x35,0xc7,0x2a,0x8e
+.byte 0xa7,0xae,0x02,0xfa,0x8e,0x4d,0xf3,0x77,0x67,0xe0,0xcb,0x84,0x69,0xc6,0x05,0xe4,0x84,0xe3,0x6e,0x02,0x6c,0x3b,0x93,0x30,0x3e,0x89,0x2c,0xc7,0xa5,0x7e,0xaa,0x58,0x59,0x25,0xf6,0xff,0x56,0x9a,0x4a,0x70,0xbf,0x88,0x20,0x8d,0x51,0x5e,0x08,0x13,0x26,0x2c,0x5d,0x88,0x13,0x3e,0x32,0x7a,0xf6,0x17,0x5c,0xdb,0xc4,0xcd,0x5a,0x16
+.byte 0x65,0xe4,0x34,0xeb,0x21,0x6d,0xb9,0x30,0x5d,0xc0,0xa2,0xea,0x4f,0x63,0x0e,0xbe,0x32,0x91,0x89,0x6f,0x96,0x40,0xf3,0x5f,0xa3,0xf2,0x15,0xc3,0x3c,0x3c,0xb8,0x2f,0x0d,0xc2,0xcd,0x4e,0xa0,0xa5,0xf6,0x78,0x40,0x0b,0x90,0x11,0x52,0xff,0x8f,0x7f,0x6a,0x0c,0xd6,0x3b,0x64,0x80,0x47,0xfa,0x70,0xbe,0x01,0xdc,0xdf,0x5b,0x75,0x7c
+.byte 0xca,0x66,0xf0,0x2a,0x53,0x89,0x55,0x87,0xf8,0xec,0xd1,0x18,0x22,0x0c,0xd5,0x0e,0xc8,0x1c,0xbc,0x1e,0x66,0x14,0x44,0x10,0x3c,0xd4,0x2e,0xca,0x0b,0xd8,0x3f,0x81,0xd8,0x9f,0x81,0xf6,0x62,0x23,0xe4,0xc7,0x0d,0xb0,0x1b,0x00,0xd8,0xf4,0x1a,0xdd,0x9b,0xa1,0x74,0xeb,0xf0,0x65,0x5c,0x82,0x00,0x17,0xa6,0x68,0x29,0xd5,0xa4,0x64
+.byte 0xd3,0x15,0x90,0xd0,0x91,0x17,0xfc,0xd2,0xd7,0xad,0x4b,0xd8,0x41,0x03,0x51,0xfd,0x61,0xac,0x34,0xd4,0xff,0xaa,0xb1,0x64,0x6c,0x79,0x78,0xf7,0x6b,0x18,0x03,0x2b,0x6b,0x9a,0xd7,0xce,0x55,0x6e,0xdd,0xab,0x2e,0xbc,0x27,0x3a,0x8c,0xa5,0x8d,0xf0,0x55,0x81,0x0c,0x6e,0x8d,0xd8,0xd2,0x24,0x5e,0x2e,0x56,0xa8,0x1e,0x9c,0x98,0x88
+.byte 0xd3,0xbe,0x90,0x56,0x70,0xe5,0xcc,0x49,0x2a,0x13,0x98,0x99,0xbd,0xc9,0x9f,0x53,0x85,0x07,0xbe,0x54,0xa7,0x4c,0xd6,0x96,0x7d,0x8f,0x24,0x79,0x67,0xb2,0x62,0x4c,0x6a,0xc1,0x6c,0xb7,0xdc,0xe9,0x21,0xe3,0x27,0xc7,0x53,0xff,0xe7,0xd1,0xea,0x60,0xa8,0x56,0x08,0x5c,0x29,0x0a,0x04,0x0c,0xda,0x7a,0x70,0x8c,0x3d,0x55,0x3f,0xcf
+.byte 0x9e,0xea,0x74,0x8b,0xbc,0xf0,0xf1,0x3a,0x86,0x22,0xe5,0x54,0xa7,0x70,0xc2,0xcd,0xb8,0x9f,0x4e,0x9f,0x48,0xa8,0xc0,0x82,0x0d,0x73,0x8b,0x3c,0xfc,0x20,0xf4,0xbe,0x79,0xde,0x8e,0x3c,0x26,0x85,0xde,0x74,0xd1,0xe3,0xd5,0x8f,0x39,0x71,0x46,0x8c,0xbd,0x68,0x28,0x2d,0x36,0x0d,0x66,0xc1,0x0b,0x96,0x3e,0x11,0x2e,0x44,0x17,0xd5
+.byte 0xfe,0x0d,0x70,0x84,0x96,0x20,0x34,0x2f,0xbe,0xf0,0xf5,0x9b,0xb4,0x5a,0xa9,0x50,0x6a,0xda,0xdb,0x69,0xea,0xef,0xa9,0xaa,0x06,0xc0,0x68,0xa4,0x61,0x1b,0x4b,0xf8,0x0b,0x56,0x91,0xc8,0x6f,0x39,0x15,0xe2,0xcc,0xbf,0x2b,0x36,0x96,0x0c,0x84,0xfb,0x3d,0x4b,0x09,0xe3,0xc2,0x4b,0x05,0x5e,0xfa,0x30,0x75,0xc5,0x54,0xa5,0xbd,0x45
+.byte 0x1e,0x14,0x72,0xd6,0xfd,0xe0,0x8f,0x7b,0x46,0x9b,0x11,0x07,0x27,0x03,0xe1,0x2d,0xcc,0x0a,0x01,0x49,0x61,0xc4,0x61,0x78,0x06,0x5f,0xaa,0x01,0x5b,0x68,0xd7,0x29,0xb4,0x9e,0xd3,0xaf,0xc7,0x45,0xf0,0x23,0xaf,0x28,0xcd,0x96,0x23,0x61,0xb2,0xb4,0x21,0x96,0x5d,0x91,0x3e,0x71,0xb5,0x41,0xf1,0x29,0xf4,0x5b,0x45,0x77,0x16,0x00
+.byte 0x9d,0x39,0x2a,0x1c,0x38,0x6d,0x36,0x97,0x98,0x4c,0x84,0xfc,0xf5,0xf1,0x59,0x7a,0x8c,0x21,0xfb,0xbc,0x9b,0x0c,0x8d,0x60,0xb6,0xc4,0xe3,0x4b,0x33,0x4f,0x04,0x4c,0x27,0xd2,0xa0,0xe1,0x71,0x0b,0x6d,0x40,0x8d,0xba,0xb3,0x11,0x9b,0x07,0x97,0x82,0x01,0x47,0xaa,0x2a,0xd4,0xcc,0x02,0xd3,0x86,0x86,0xb5,0xd7,0x5d,0xbc,0xd0,0x0f
+.byte 0x97,0x5c,0xe5,0xac,0xc6,0x53,0xb3,0x39,0x09,0x68,0x2e,0xcc,0xf3,0x43,0xba,0xed,0x15,0x90,0xbe,0x9d,0xeb,0xa4,0xfb,0x4a,0x20,0xcf,0x10,0xb9,0x47,0x99,0xb0,0x89,0x26,0xb9,0xbd,0x4b,0xf6,0xa5,0xbd,0x2f,0xad,0x1a,0x75,0xe8,0xff,0xc6,0x6b,0x6a,0x31,0xbe,0xec,0xd2,0xc4,0x39,0x9e,0x3b,0x05,0x3f,0x24,0xba,0xf1,0x4d,0x0c,0x0c
+.byte 0x05,0x60,0x60,0x22,0x0c,0x1b,0x0b,0x6c,0x80,0xd5,0xe8,0x8f,0x81,0xee,0x80,0x41,0x4a,0x69,0x47,0xc6,0x4c,0xeb,0xf6,0x2b,0x91,0x7c,0x9f,0x22,0x74,0x7b,0x43,0x95,0x56,0x55,0xba,0x85,0x23,0xb3,0xc3,0xee,0x6a,0xcc,0x49,0x2c,0x6c,0x86,0x6d,0x60,0x5d,0x84,0x0c,0x3c,0x88,0x61,0x58,0x1d,0xfc,0x00,0x2c,0x84,0x49,0x4d,0x95,0x75
+.byte 0xc0,0x03,0x02,0x59,0xc0,0xe9,0x84,0xea,0xce,0x3f,0x8b,0x76,0xbf,0x19,0xaa,0x13,0x1b,0x8d,0x9f,0xb2,0xeb,0xb3,0x02,0x87,0xee,0xfe,0x73,0xdb,0xc4,0x19,0x27,0xaf,0x15,0x8d,0xf4,0x58,0x97,0x43,0xb9,0x45,0x32,0x5f,0x24,0x2d,0x08,0xfe,0xec,0xf2,0xf1,0x34,0x99,0x7a,0x66,0x44,0x3d,0xd4,0xf7,0x82,0xcf,0xca,0x6f,0x53,0x9f,0x0a
+.byte 0x74,0x79,0x9b,0x45,0x5b,0x07,0x92,0x35,0xc6,0xf4,0xd1,0x90,0x2b,0x62,0xec,0x93,0x7b,0x05,0x90,0x75,0xb7,0xb6,0xd9,0x6c,0x30,0xdd,0x9b,0x2a,0x32,0xb1,0xba,0xab,0x1a,0x6c,0x2b,0xd8,0xfb,0x39,0x8e,0x80,0x98,0x6c,0xd0,0xb3,0xf3,0x76,0xe2,0xe6,0x5e,0xee,0xd0,0x29,0xd7,0x57,0x8f,0xc3,0x13,0xcb,0x45,0x90,0x3e,0xa2,0x54,0x88
+.byte 0xd5,0x50,0xd3,0x75,0xed,0x2d,0xa6,0x50,0x11,0x6b,0xb0,0xb6,0xf0,0x1d,0xc9,0x3d,0x1d,0x2a,0xda,0x5e,0x43,0x44,0xf4,0xef,0x3e,0xc7,0xa9,0xe0,0x6d,0x3c,0x38,0xbf,0x84,0x72,0xaf,0xea,0x60,0x15,0x03,0x14,0x77,0xb7,0xb3,0x15,0x4c,0xbc,0xbf,0x55,0x86,0x24,0x73,0x97,0x22,0x9d,0x59,0xa0,0x39,0x76,0x38,0xd1,0x1f,0x25,0xb0,0x64
+.byte 0xf3,0x10,0x67,0xf2,0x7c,0x11,0xf2,0xce,0xbe,0xaf,0x5e,0x2e,0xc5,0xc1,0x01,0xfa,0x80,0xf9,0x87,0xfc,0x5c,0xfd,0x66,0x50,0x01,0xc2,0x00,0x92,0x84,0x0f,0xdc,0xfc,0x10,0xa5,0x6e,0x45,0xf5,0xff,0x58,0x78,0x45,0x5e,0x50,0xbe,0xe3,0xc7,0x25,0x1e,0xdf,0x7f,0x68,0x6f,0xa5,0xb8,0xf8,0x69,0x89,0x5a,0x55,0x65,0xf4,0x96,0xe5,0x7a
+.byte 0xa6,0x89,0x69,0x8d,0xdd,0x4f,0x24,0x5a,0x29,0x92,0x1e,0xca,0x74,0x65,0x7f,0xb8,0x32,0x75,0xb5,0x7b,0x15,0xea,0xeb,0xcc,0xf1,0x23,0x69,0xc7,0x58,0x1c,0x3a,0xaa,0x27,0x0a,0x11,0x79,0xcf,0xc9,0xb6,0xbd,0x9d,0x56,0x47,0x36,0x6b,0x7f,0x82,0xb5,0xa7,0x9f,0x79,0x72,0x16,0xba,0x50,0xef,0x37,0x68,0xdf,0xe0,0xd8,0x0c,0x16,0xcc
+.byte 0x50,0x6c,0x25,0x63,0xc2,0xd6,0x7b,0xef,0xd9,0xa1,0xef,0x62,0x81,0x97,0x51,0x49,0x69,0xe3,0x13,0x6c,0x1a,0xd0,0x64,0x1b,0x3e,0x48,0x25,0x5b,0x34,0xe9,0xee,0x41,0x34,0xfb,0x8e,0x9d,0x3c,0xbc,0xc8,0xcf,0xe7,0xf8,0x72,0x21,0x0f,0x95,0xde,0x57,0xd7,0x2f,0x80,0x97,0xbd,0x8f,0x2c,0xde,0x19,0xa3,0xba,0x5c,0x92,0xa3,0x75,0x83
+.byte 0xe3,0xc9,0x33,0x3f,0x8f,0x09,0xfa,0x0b,0x60,0x0a,0x2f,0xb3,0x45,0x9d,0x8e,0x9d,0xa3,0x66,0x2d,0xda,0x37,0xe0,0x21,0x52,0x74,0x9d,0x59,0xa4,0x9e,0xea,0x15,0x22,0xb0,0xbf,0x3c,0xd4,0x59,0xef,0x27,0x60,0xf7,0xbf,0x5d,0x1d,0x36,0x9a,0xa5,0xfb,0x53,0x90,0x40,0x83,0x3a,0x20,0x3d,0x6b,0x47,0xbc,0xc3,0xe6,0x07,0xfe,0xd0,0x8e
+.byte 0x40,0x42,0x65,0x2b,0x27,0xba,0x69,0x61,0x03,0x36,0x58,0x35,0x7e,0x82,0x53,0xb5,0xe2,0x25,0x31,0xc3,0x77,0xc1,0x91,0x13,0xa4,0x92,0x52,0xea,0x9f,0x43,0x44,0x6b,0x43,0xe9,0x11,0xd4,0x3d,0x53,0xba,0x6b,0x96,0xb5,0x96,0x29,0xa3,0x2a,0x0a,0xf2,0xb5,0x0c,0x5d,0x62,0x37,0xe0,0xd6,0xa2,0xbf,0xcd,0xf9,0x58,0x7f,0xa2,0xfd,0x54
+.byte 0x6a,0xa1,0x90,0xa5,0x61,0x9e,0xa6,0xc2,0xb9,0x80,0x7a,0xb8,0xaf,0x60,0x68,0xa7,0x27,0x77,0x41,0x03,0x4e,0xc1,0x96,0x46,0x23,0x1b,0xff,0xa1,0x37,0x28,0x33,0x27,0xc2,0x99,0xf7,0xcb,0x7f,0x1a,0xfb,0x41,0xc3,0x59,0x11,0xf8,0x39,0x50,0xbd,0x90,0x61,0x4a,0x67,0x4a,0x07,0x5f,0xb1,0x07,0x66,0x0b,0x52,0xad,0x90,0xc2,0xd7,0x4e
+.byte 0x42,0x9e,0xcc,0x5c,0xeb,0xf2,0xdc,0xaa,0x52,0xcf,0x0e,0x7d,0xae,0x3e,0x1a,0x2c,0x9e,0x79,0xfb,0x29,0x10,0x29,0x61,0xa4,0x93,0x9d,0xa9,0xe9,0x71,0xc5,0xf7,0x07,0x13,0xe9,0xbd,0x2e,0x2d,0x0c,0xd6,0xaf,0x54,0x48,0x58,0xc2,0x91,0x37,0xf4,0x61,0x3a,0x96,0x81,0xdc,0x82,0x02,0xff,0xc9,0xf7,0xf7,0x9f,0x9f,0x28,0xd1,0xb1,0xe3
+.byte 0x2b,0x3d,0x85,0xef,0x15,0x82,0x3b,0x9a,0x17,0xee,0x7f,0xd3,0xa5,0x7c,0x41,0x27,0xc9,0x4c,0xe9,0x7a,0x30,0x9f,0xc5,0x34,0xaf,0xc8,0x1c,0x8a,0x7c,0xa6,0xf4,0xdc,0xa6,0xdb,0x68,0xc1,0xa1,0x13,0xb0,0x54,0x49,0x25,0x43,0xc0,0xd4,0x93,0xd6,0x70,0x53,0x3e,0x5f,0xd5,0x42,0x6e,0x78,0xb8,0x15,0x07,0x6a,0x91,0xe8,0xf1,0x2f,0xcf
+.byte 0x07,0x84,0x25,0xb3,0x20,0xb9,0x35,0x25,0xbb,0x26,0x96,0x02,0x25,0xd5,0x83,0x23,0x71,0x6d,0x62,0xa7,0x99,0x73,0x63,0x2a,0x51,0x25,0x34,0x3d,0x51,0x95,0xc7,0x9b,0x01,0x0a,0xab,0x11,0xb2,0x32,0xcd,0xe3,0xef,0x63,0xa4,0x6d,0xdb,0x7b,0xf6,0x5f,0xc5,0xf3,0xe5,0x8c,0x6b,0x0a,0x04,0x33,0x53,0x0d,0xf6,0x13,0x8c,0xb8,0xc7,0xba
+.byte 0xc2,0xf0,0xd4,0xa7,0x1a,0xce,0x7c,0x54,0x72,0x2b,0x89,0xf4,0x05,0x5c,0x30,0x42,0xe5,0x58,0x65,0x3a,0x2e,0xf9,0x40,0xab,0x2b,0xf9,0xc3,0x99,0x40,0x3c,0xb1,0x7b,0x2c,0xdc,0xfe,0x41,0x21,0x71,0x00,0x75,0xbd,0xea,0xf3,0x84,0x88,0x6b,0x9c,0xe2,0x80,0x2f,0xad,0x9f,0x9d,0x0a,0xdf,0xb5,0x38,0x61,0x89,0xfb,0x67,0x45,0x9c,0x39
+.byte 0xf9,0x84,0x54,0xc4,0xd6,0x6f,0x00,0x39,0x90,0x82,0xfa,0xce,0xae,0xe8,0xaf,0xa4,0x97,0x3a,0xfe,0x71,0xaf,0x5e,0x00,0xd1,0x9e,0x33,0x41,0x63,0xca,0xa5,0x5a,0x8b,0x09,0x2a,0x26,0xef,0x96,0xb7,0x5d,0xc4,0x92,0xfa,0x51,0xdb,0x1d,0x63,0x5f,0x7c,0x94,0x53,0x84,0xed,0xa3,0x99,0x07,0x9f,0xdc,0x55,0xb3,0x31,0x67,0x1a,0x63,0x05
+.byte 0xec,0x36,0x79,0x57,0xf8,0x39,0xc3,0xdd,0xd5,0x6a,0x21,0xfc,0x54,0xe6,0x28,0xc4,0xf1,0xd2,0xce,0x02,0x43,0x50,0x30,0x15,0x4d,0x3c,0xd0,0x1c,0xf6,0x7e,0xd0,0xa4,0x86,0xe7,0xf5,0xc2,0x06,0xc5,0xc4,0xa8,0xe2,0xd3,0xc7,0xcf,0xbd,0xab,0x9f,0xe3,0x42,0xc4,0xcd,0x65,0xfa,0xd3,0xcd,0xdf,0x55,0xc4,0xce,0x6e,0xe8,0xfc,0x96,0x0f
+.byte 0xe2,0x92,0xca,0xde,0x37,0x7c,0xc9,0x80,0x4a,0x54,0xe9,0xfd,0x3c,0x4b,0x81,0xb8,0xd9,0x1a,0xf1,0x91,0x5d,0x9d,0xef,0x3e,0xd1,0x78,0xe2,0x1e,0x0e,0x09,0x62,0xdd,0xc6,0xb9,0xde,0x29,0xba,0xb0,0x62,0x49,0x53,0xb6,0x8d,0x9f,0xbf,0x4d,0x77,0xa4,0xd1,0x0b,0xf0,0x31,0x2e,0xe5,0x71,0x2e,0x18,0xa4,0xa7,0xcb,0xa6,0x30,0x24,0x11
+.byte 0x8d,0x16,0x21,0x71,0x6a,0x19,0xde,0x3c,0x5a,0x00,0xa6,0xe2,0x43,0x98,0xe8,0x83,0x10,0x76,0xef,0xca,0x67,0x61,0x80,0x98,0x48,0x06,0xa9,0xcd,0x13,0xa6,0x1e,0x5b,0x2b,0xef,0xb7,0x3a,0x24,0xf7,0x10,0x8d,0xc2,0xaa,0x9c,0x78,0x0d,0xd1,0x54,0xb1,0x4e,0x5a,0x21,0xc2,0xb4,0x11,0x15,0xdb,0xb3,0x9c,0xe4,0xf1,0xfc,0xa5,0x66,0x0c
+.byte 0x56,0x34,0x05,0x14,0x88,0x2c,0xfc,0x3f,0x97,0x30,0xd5,0xd0,0xba,0xa3,0xf1,0x47,0xc0,0xf1,0x59,0x3c,0xda,0x1a,0xc1,0x90,0xae,0x4b,0x26,0xd3,0x5f,0xc9,0x8f,0x62,0x56,0x9c,0x64,0xec,0xda,0x63,0x37,0xa1,0xa2,0x87,0x74,0xcb,0xcc,0x27,0xcb,0x2a,0x97,0x57,0xa3,0xb9,0xac,0xe2,0xbd,0x97,0x93,0x21,0xb9,0x8b,0x82,0xa1,0xe7,0x76
+.byte 0xc1,0x49,0xd6,0xb2,0x52,0x7b,0xd6,0xbb,0x31,0x0f,0x87,0xc0,0xaa,0x91,0x70,0x19,0x76,0xa5,0xea,0xf0,0x87,0x47,0x50,0xc1,0xff,0xf7,0xa6,0x6c,0x65,0xff,0xdf,0x83,0x5c,0x54,0xf0,0xb1,0x18,0xe0,0x13,0x58,0x74,0xc0,0x67,0x0e,0xb8,0xdc,0x59,0x6c,0x19,0xf4,0xee,0x3a,0x07,0x63,0x68,0x1d,0x62,0x60,0xb5,0x71,0xce,0x21,0x61,0x8c
+.byte 0xa5,0x74,0x9b,0x77,0x8e,0x15,0x20,0x18,0x19,0x96,0xf6,0xfa,0xd2,0x6c,0x03,0xcb,0xcb,0x8c,0x91,0x0d,0x29,0x91,0x70,0xc5,0x96,0x60,0x18,0xad,0x65,0x66,0x43,0xf9,0x13,0x97,0xe3,0xe3,0xcb,0xbf,0x68,0x0b,0xb2,0x87,0x9c,0xfa,0x96,0x48,0x14,0xef,0x6e,0xbd,0x45,0xb9,0x2f,0xbb,0x80,0x80,0xc5,0xf6,0x22,0x41,0x9a,0xec,0xdd,0x41
+.byte 0xfc,0xf3,0x0d,0x8e,0x2e,0x3c,0xda,0xef,0x2c,0xbd,0xbc,0x0e,0x88,0xd2,0x97,0x3d,0x40,0x37,0xa6,0xde,0x1d,0x00,0xeb,0x39,0xea,0x44,0xee,0x8a,0x2f,0x77,0xea,0xea,0x1d,0x90,0xd1,0xec,0xe4,0x31,0x0c,0xde,0x6f,0x55,0x17,0x5c,0x1e,0x19,0x91,0xac,0x36,0x00,0x26,0x17,0xa6,0xcd,0x8b,0xe2,0x72,0x6f,0x8f,0x3c,0xc6,0x76,0x6e,0x3d
+.byte 0x4e,0x93,0xb3,0x8b,0xad,0x24,0x17,0x39,0xc0,0xfe,0xba,0x90,0xc5,0xbd,0x4b,0xe4,0xae,0xac,0xf6,0x55,0x72,0x3e,0xf0,0x12,0x32,0x5a,0xdd,0x8a,0x3f,0x67,0xb6,0xdf,0xf6,0x11,0x02,0xf5,0x84,0xcc,0x7d,0x36,0xe7,0x1b,0xf0,0x9a,0x52,0xbe,0xf3,0x06,0xd6,0xdb,0x02,0xd4,0x80,0x0b,0xcd,0xf0,0xfe,0xec,0x86,0x3f,0x89,0x34,0xcb,0x88
+.byte 0x34,0x28,0x57,0x00,0x33,0xeb,0x4f,0xfa,0xdb,0xd8,0x09,0xd9,0x56,0x53,0xc1,0x02,0xc0,0xa8,0x4c,0xdc,0xfd,0x26,0xb3,0x55,0x1d,0x47,0x0d,0x68,0x50,0xb8,0xa3,0xb4,0xf1,0x31,0xfa,0x16,0x33,0x94,0x40,0x95,0x53,0x9c,0x9f,0x5b,0x25,0x47,0xb1,0x27,0xbc,0x38,0x7d,0x23,0x01,0x7f,0x70,0x7a,0x61,0x0e,0x46,0x5c,0xcc,0xd7,0xcc,0x15
+.byte 0x15,0x0a,0xed,0x4c,0x99,0x66,0x3a,0xc3,0xc1,0x9a,0x7a,0x38,0x6a,0x0c,0xde,0x13,0x67,0x65,0xfc,0x06,0x99,0x7c,0xa5,0x90,0x8a,0x90,0x58,0xce,0xf3,0x23,0x76,0xfc,0x03,0xfb,0xb3,0x36,0x54,0xa9,0x33,0x35,0xfe,0xe3,0x3d,0x53,0x7e,0xe0,0xae,0xcf,0xc0,0xa2,0xe1,0x28,0xb9,0x97,0x96,0x87,0x90,0xa1,0x13,0xd0,0x1d,0x5b,0x43,0xf1
+.byte 0xa5,0xfa,0x81,0x83,0xe7,0x7b,0xa1,0x5f,0x9f,0xf5,0xd3,0xb6,0x80,0x8b,0x91,0xed,0x31,0x14,0x05,0x78,0x85,0x9d,0xea,0x59,0x69,0xa5,0x29,0xc5,0xf1,0xd7,0x9d,0xa3,0x8b,0x9d,0xe0,0x8d,0xc3,0x4e,0x2d,0xfa,0x1c,0x6c,0xd2,0xd7,0xcb,0xda,0x86,0x5d,0xb3,0x1a,0xb4,0x12,0xe3,0xa8,0xd7,0xe1,0x84,0xce,0x0e,0x06,0xd0,0x9e,0xf0,0xb1
+.byte 0x5b,0x2f,0x77,0x10,0x6f,0x41,0x2f,0x5b,0x48,0x43,0xf3,0xef,0xdb,0x09,0xdb,0x01,0x89,0xfc,0x7a,0x4a,0xc0,0x96,0x33,0xdf,0xbe,0x49,0x85,0xa7,0x88,0x93,0x05,0xf2,0x15,0x12,0x85,0x04,0x20,0x7d,0x8c,0xe2,0x0a,0xea,0xfe,0xed,0xbf,0x98,0xdb,0x9d,0x1f,0xaf,0x0f,0xbf,0xf7,0x12,0x4f,0x69,0x4e,0x87,0x09,0xf0,0xae,0x2a,0x4d,0x4c
+.byte 0xbf,0xaa,0x08,0x2c,0x78,0x2d,0xbe,0xb9,0xf5,0x3c,0x4c,0xcd,0x75,0x93,0xc3,0x3c,0xc2,0x86,0x47,0xca,0xc1,0x9c,0x1c,0xe5,0x0d,0x8d,0x36,0x9c,0x44,0x40,0x89,0xfa,0x17,0x57,0x08,0xd4,0x22,0x9a,0x5b,0x94,0xbf,0x39,0xcd,0xbe,0xf7,0xd1,0xcd,0x35,0x74,0xdf,0xfa,0x5d,0x00,0xaa,0xaa,0x82,0x6d,0x9b,0xf8,0x69,0x51,0x9c,0xaa,0xaa
+.byte 0xc8,0x2c,0xa2,0x68,0x57,0x3c,0x5f,0x10,0xa2,0x7b,0xee,0xc9,0x97,0x8d,0x5c,0x41,0x08,0x0d,0x30,0xd5,0x2b,0x5f,0x8d,0xdd,0xdc,0x2c,0xa8,0x52,0x6e,0xea,0x61,0x77,0xca,0x75,0xc3,0x56,0x6e,0x17,0x51,0x0e,0x00,0xb6,0x18,0xa0,0xe5,0x9d,0x49,0x4e,0x20,0x78,0x1e,0x5f,0x3e,0xec,0xc3,0x4a,0x41,0xf3,0xfe,0x89,0x64,0xac,0x4c,0x4d
+.byte 0xa8,0x73,0x4f,0x31,0xc4,0xe2,0x62,0x69,0x2b,0x40,0xdf,0xef,0xed,0xf0,0x62,0x4e,0xc3,0x65,0xcc,0xcb,0xef,0xc1,0x28,0x61,0x71,0xac,0xa5,0x89,0x52,0x7b,0x32,0x59,0xc2,0x16,0x1a,0x63,0x18,0xb0,0xd8,0xe4,0x28,0x92,0xff,0x45,0xc1,0x24,0x56,0x86,0x66,0x23,0x7a,0xff,0xf7,0x33,0x30,0xdc,0xd1,0x7d,0xaf,0x68,0x10,0x4b,0xde,0x3e
+.byte 0x4a,0x70,0xbe,0x31,0x1a,0x37,0x28,0xee,0xe0,0xba,0x65,0x8b,0x7d,0xea,0x07,0xce,0xf2,0x51,0x3d,0xcb,0xb2,0x33,0xd8,0xf3,0xa4,0xa0,0xcd,0x53,0x76,0xf9,0x46,0x5b,0x82,0xf9,0x9d,0x0e,0x29,0x5b,0xcf,0x76,0xd4,0x5c,0x47,0xf1,0x98,0x02,0x5a,0x16,0x18,0xf2,0x61,0x6d,0x3e,0x64,0x7f,0xbe,0x13,0x18,0xc2,0x45,0xd2,0x87,0x17,0xff
+.byte 0xf1,0x01,0x0b,0x5d,0x21,0x0d,0x73,0x9a,0xeb,0x82,0xc4,0x9a,0xb3,0xe4,0x31,0x44,0x58,0xa2,0xfd,0x76,0xf6,0xbe,0x6f,0x75,0xcc,0xbb,0xe3,0xa2,0xa9,0x78,0x0f,0x4b,0x1d,0x47,0x2d,0x32,0x2c,0x45,0x5e,0xcd,0x8f,0x13,0xe2,0x9a,0x9d,0xa2,0xce,0x73,0x54,0x20,0xc0,0x44,0x1c,0x26,0xde,0x0d,0x72,0xb2,0xfa,0x4d,0x32,0x35,0xac,0x69
+.byte 0x4d,0x16,0x4a,0xd5,0x51,0x33,0xc1,0xe0,0x90,0x9c,0x93,0x66,0xed,0x16,0xac,0x7e,0x79,0x2b,0x0f,0xb4,0x42,0xaf,0x80,0x22,0x80,0x07,0x7d,0x72,0xe4,0xb3,0x3a,0x2c,0xb8,0x68,0x14,0x4d,0x31,0x5f,0xbb,0xac,0x43,0x3b,0x28,0xd6,0x81,0x81,0x26,0xe5,0xc4,0x67,0x7c,0x4a,0x42,0xc4,0x1a,0x59,0x04,0x2d,0xb8,0x26,0xfc,0x4e,0xc7,0xfc
+.byte 0x11,0x61,0xe3,0x4b,0x2c,0x3f,0xdb,0x43,0xe4,0x24,0xb4,0xd1,0xc0,0xc0,0x01,0xe1,0xeb,0x84,0x0b,0x6d,0x93,0x83,0x07,0x9f,0x01,0xb8,0x9d,0xe5,0x7e,0x4d,0xa2,0x05,0x3e,0xf2,0x40,0x59,0x88,0xc8,0x8c,0x62,0x44,0x95,0x20,0x96,0x28,0xa9,0x3f,0x7c,0xed,0x85,0x03,0x65,0x49,0xf7,0x94,0x3d,0x51,0xe2,0x8e,0x21,0x19,0x7b,0x55,0x5f
+.byte 0x55,0x70,0xf8,0xf0,0xce,0xd9,0x1a,0x10,0xbb,0xfe,0x65,0x72,0x8a,0x5b,0x6c,0x27,0xd3,0x57,0x61,0x07,0x7b,0x85,0xd6,0x21,0xd2,0x07,0x81,0xaa,0x17,0x73,0xb5,0xef,0x2d,0x84,0x7b,0x8f,0xe0,0xb3,0x9e,0x9f,0x31,0x82,0x33,0x07,0x14,0x84,0x79,0x18,0xc4,0xec,0x20,0xb5,0xec,0x21,0x4b,0x51,0x78,0x96,0xc6,0xe7,0xf0,0x6a,0x7a,0xb5
+.byte 0xe5,0xc2,0xef,0x24,0x4c,0x57,0xb6,0xf5,0xee,0xe5,0x69,0x2b,0x73,0x9e,0x66,0x91,0x9d,0xd4,0x24,0x58,0x4b,0x72,0x68,0xf6,0x62,0xb4,0x0c,0xe3,0xbd,0x1f,0x0b,0x42,0x6c,0xf9,0x6e,0x6a,0x64,0x64,0x69,0xa5,0x6d,0xe7,0x38,0x9f,0xb2,0x65,0x35,0x6b,0xd9,0x20,0x84,0xe4,0x5f,0x8b,0xfd,0x58,0xab,0x5f,0xe1,0x4c,0xf7,0xd7,0xf5,0xe7
+.byte 0xae,0xe8,0xc1,0x68,0xfe,0x0c,0xb1,0xe2,0xe4,0xca,0xf0,0xf1,0x20,0xbc,0xf9,0x99,0xef,0x4e,0x63,0xca,0x89,0xe4,0x7c,0x17,0x49,0x40,0x47,0xce,0x67,0x8e,0xbd,0xd0,0x96,0x8b,0x5a,0x0d,0x2f,0xd0,0x8f,0x4f,0x42,0x06,0x01,0x8e,0x47,0x35,0x13,0x9e,0xd1,0x24,0x85,0xe4,0x17,0x59,0xe8,0x1c,0xb3,0x25,0x53,0xf9,0xb4,0x96,0xb1,0x33
+.byte 0x97,0xb2,0x60,0xc7,0xb3,0x48,0xa2,0xfc,0x7f,0x86,0x94,0x2a,0xd3,0x94,0xfe,0x6d,0xa6,0x7a,0xa1,0xe1,0x96,0x5b,0xe8,0xe4,0x91,0xfb,0xf3,0x2c,0x84,0xb4,0x2f,0xbe,0xc9,0xdd,0x1c,0x9f,0x72,0x12,0xcb,0xbd,0x22,0x07,0xc4,0xec,0x05,0xe8,0x32,0x47,0x21,0x27,0xf6,0xc1,0x36,0x59,0x25,0x6c,0xbe,0xb9,0x3e,0xd4,0x1b,0x59,0x11,0x27
+.byte 0x6b,0xa3,0x64,0x71,0x98,0xeb,0x21,0x65,0xc0,0x4c,0x30,0xbd,0x51,0x2b,0xc3,0xfb,0xb1,0x33,0x56,0x1e,0xf0,0x92,0x0f,0x4b,0x63,0x3a,0x9c,0xfb,0xd1,0xac,0x8c,0xf0,0x3e,0xb7,0x0b,0xd2,0x52,0x62,0xd8,0x37,0x9a,0xef,0x79,0xdc,0xcb,0x87,0x1e,0x3d,0x9d,0x91,0x12,0xba,0x78,0x8a,0x11,0x57,0x96,0x44,0x8e,0x2b,0xd2,0xe3,0x4d,0x27
+.byte 0xec,0xba,0xef,0x1c,0x04,0x8d,0x56,0x56,0x11,0x74,0xc0,0xcc,0x1f,0x3d,0x7a,0xad,0x79,0x49,0x59,0xa3,0x71,0xe0,0xf5,0x89,0x89,0x8f,0xcf,0x1e,0x63,0x77,0x91,0x91,0xf1,0x0c,0x1c,0xcc,0x77,0x00,0xd7,0x28,0x9f,0x68,0xbc,0xb6,0x9d,0x33,0x43,0xb2,0x4a,0x72,0x3e,0x57,0x26,0xd0,0x00,0x93,0xc9,0x4c,0xc9,0x53,0x52,0xd9,0xe2,0x31
+.byte 0xc5,0x7f,0xf6,0xb6,0xc2,0x10,0x51,0x67,0xae,0x63,0x35,0x74,0xcc,0xd4,0x05,0xb3,0x08,0x23,0x35,0x37,0x8e,0xf1,0xbb,0x1d,0x56,0xff,0x62,0xa2,0x13,0x7b,0x01,0x75,0x6d,0xb3,0x92,0x51,0xdc,0x6e,0x08,0x76,0x25,0x52,0xbf,0x9a,0xea,0x89,0x0f,0x96,0xcc,0x79,0xd4,0x72,0xcf,0x65,0x79,0x4e,0x40,0xa3,0xae,0x67,0x0c,0x82,0x85,0x05
+.byte 0xfd,0x43,0x84,0x17,0x24,0x79,0xa9,0xa7,0x7f,0x24,0x76,0x57,0x66,0x11,0xd5,0x33,0x30,0x42,0x5b,0x5f,0x7c,0x04,0x4b,0x45,0xc3,0x69,0x20,0x02,0x92,0xe3,0x6a,0x06,0x8f,0xdf,0x30,0xf6,0x17,0x8f,0xc6,0x8c,0x5e,0x42,0xf3,0x59,0x7a,0x3a,0x55,0x3a,0xc1,0x96,0xd5,0x67,0x3d,0xab,0x32,0xee,0xf0,0x08,0x28,0x73,0xb0,0x11,0x1a,0x92
+.byte 0x4d,0xcc,0x0c,0x86,0xb2,0xa1,0xbf,0x9f,0xcd,0xc7,0x1c,0xbc,0xee,0x39,0x77,0x75,0xfc,0xe6,0x3b,0x62,0xf2,0xaf,0xd5,0xb6,0x77,0x2d,0x86,0x38,0x13,0x00,0xdb,0x71,0x4a,0x87,0x03,0x6d,0x99,0x28,0xf8,0x6a,0x23,0x2e,0xe2,0xb8,0x9c,0x18,0x02,0x00,0x9e,0x5b,0xf0,0x6f,0x9b,0x32,0xdc,0x6b,0x61,0xeb,0xeb,0xe9,0xfc,0xee,0x44,0xbc
+.byte 0x4a,0x88,0x04,0xc0,0x10,0xc8,0x65,0x6c,0xa4,0xae,0x9a,0x36,0xb6,0x68,0xd5,0xbf,0x6d,0xe3,0x6f,0x5d,0xad,0xd6,0xf9,0xc8,0x06,0x36,0x25,0x64,0xc9,0x5b,0x71,0x7f,0xbf,0xe3,0x56,0x31,0x2a,0x93,0x47,0x46,0x39,0x91,0x80,0xc5,0xdd,0xdd,0xa1,0x25,0x85,0xd9,0x05,0x49,0x4f,0x1b,0xeb,0x2f,0x6e,0xd9,0xe4,0x65,0x3d,0xcd,0xbd,0x47
+.byte 0x37,0x27,0xb0,0xd1,0x9b,0xa4,0x89,0xd5,0xa0,0x0f,0x8b,0xc5,0xfd,0x91,0xa8,0x86,0x22,0x65,0xf1,0xe1,0x1e,0xb6,0xf7,0x50,0xe6,0x1e,0xf0,0x2b,0x9d,0x02,0xc9,0xe8,0x2a,0xb8,0x9b,0x89,0x28,0x25,0x43,0xcf,0x23,0x08,0xe2,0xa7,0x70,0x31,0x89,0xab,0x5b,0xd9,0x2e,0xa9,0xe4,0xe9,0x1d,0x63,0x7f,0xc6,0xc1,0xfb,0x63,0x45,0x9c,0xf1
+.byte 0xd4,0xc3,0x56,0xb6,0xad,0xb3,0x00,0xce,0x12,0x9e,0x63,0x33,0x25,0xd3,0xb2,0xee,0xa7,0x6b,0xa1,0xfd,0x20,0xa3,0xb2,0x07,0x1a,0x9d,0xed,0xe0,0x1d,0x70,0x5b,0x9f,0xc0,0xbc,0x83,0x09,0x94,0x47,0x8c,0x05,0xef,0x73,0x96,0x31,0xc7,0x35,0xc2,0x2c,0x00,0x2a,0x68,0xd1,0xc4,0xb3,0x3d,0x84,0x44,0x8c,0x93,0xfd,0x64,0x00,0x77,0x46
+.byte 0x18,0xac,0x83,0x9d,0xe5,0xe5,0x46,0x61,0x37,0x72,0x9f,0x0e,0x76,0x55,0xf7,0xca,0x36,0x57,0x24,0x16,0xfc,0x11,0x27,0xaa,0x44,0xa4,0xb0,0x58,0x41,0x46,0x94,0xc7,0x3b,0x9c,0xa3,0xe4,0x89,0xd9,0xdb,0x7b,0x64,0x69,0x84,0x9f,0xc8,0x09,0x6f,0xf7,0xf0,0x58,0x10,0x56,0x9f,0x26,0xf0,0x74,0x0c,0x76,0xcb,0x9d,0x45,0x3d,0xe7,0x94
+.byte 0x54,0xa3,0x84,0x08,0xb5,0x9c,0xff,0xdb,0xba,0x62,0x5e,0x87,0x0d,0x11,0x5d,0x96,0x06,0xd6,0xec,0xf4,0x3e,0x9d,0x66,0xbd,0xc4,0x64,0xed,0x03,0xe0,0xad,0x3f,0x4e,0xb4,0xef,0x16,0xdd,0xee,0xd6,0x00,0x27,0x62,0x74,0x0a,0xe0,0x68,0x72,0x4c,0x6d,0x62,0x15,0x87,0x6a,0xf0,0x25,0x9f,0x33,0x1d,0x92,0x3b,0xa3,0xa4,0xf1,0x81,0xdf
+.byte 0xa8,0xed,0xaf,0xa5,0x8d,0x19,0x20,0x72,0x03,0x91,0xf0,0x34,0x60,0x70,0xbe,0xaa,0xdf,0xaa,0x24,0x1a,0x1f,0x1a,0x8d,0xb0,0x7b,0xef,0x10,0x43,0x69,0x24,0x74,0xf2,0x72,0x71,0xa1,0x8f,0x85,0x75,0x3e,0x8c,0xf6,0x0e,0x88,0xe2,0x1d,0x5c,0xb8,0xf1,0xc4,0x8a,0x21,0x76,0x20,0x50,0x3f,0xb3,0x8b,0x9f,0xa4,0x45,0x9e,0x07,0x60,0x22
+.byte 0x2c,0xa6,0xb1,0xc2,0xd2,0xcb,0xc6,0xd8,0xe9,0x94,0x66,0xfb,0x10,0x73,0x92,0x25,0x7e,0x31,0x42,0xf4,0x4a,0x75,0xac,0x78,0x43,0xcb,0xc0,0xc9,0xb0,0xaf,0xb4,0x22,0x8f,0x51,0x36,0x0f,0x5a,0xb8,0xbb,0x44,0x03,0x09,0xd0,0xf9,0x04,0xc8,0x73,0x8e,0xa1,0x76,0x27,0xde,0x72,0xf4,0x3a,0x79,0x63,0x85,0x32,0x09,0xad,0x12,0xe4,0xd7
+.byte 0x8f,0x8e,0x24,0x03,0x4f,0xde,0x39,0xac,0x81,0xe8,0x64,0x09,0x17,0xd7,0x99,0xe6,0x62,0xb7,0x53,0x20,0x9f,0xb9,0x3a,0xb9,0xb1,0x81,0xfa,0x6e,0x33,0xe7,0x4a,0xca,0xd7,0xa7,0xfa,0x7a,0xbf,0x0b,0x0a,0x99,0x3c,0xc7,0xbd,0xef,0xc7,0x90,0xda,0x62,0x30,0xc6,0x94,0x94,0x6b,0xee,0xbd,0xb7,0x0d,0x86,0xc5,0xb1,0x9a,0xb9,0x86,0x34
+.byte 0xc2,0x81,0x2b,0x09,0x7a,0x88,0x09,0x65,0xcf,0x51,0x78,0x19,0x1d,0x5a,0x62,0x2f,0xb3,0x43,0x8d,0xf5,0x9d,0x26,0x2f,0x4a,0x27,0x96,0x22,0x1b,0x4c,0xc8,0xd9,0x73,0x4b,0x32,0x01,0x11,0x7b,0x59,0x85,0xda,0x50,0x92,0x17,0x45,0xd4,0x1f,0xcf,0x98,0xf6,0x2c,0x69,0xba,0x43,0x22,0xdc,0x36,0x31,0xfb,0x1e,0xe8,0x54,0x24,0x0f,0x24
+.byte 0x4c,0xcd,0xbe,0xdb,0xd8,0x23,0x69,0xe2,0x97,0xf5,0x66,0xb2,0x66,0x6c,0xf2,0x90,0xd0,0x15,0x14,0x9a,0x47,0x65,0x97,0xb0,0xf2,0x3e,0x35,0x09,0xd2,0x3d,0x01,0x9c,0xb3,0xfd,0xf3,0x32,0x46,0x4e,0x11,0xab,0x88,0x9e,0x04,0x6d,0xf0,0xe1,0x9d,0x48,0x01,0x24,0xc3,0x87,0xdf,0x58,0xb6,0x6d,0x6d,0x4f,0xb9,0x1b,0x13,0xee,0x03,0x5b
+.byte 0x75,0x39,0x28,0x31,0x90,0x70,0x49,0x10,0x71,0x87,0x76,0x30,0xac,0x88,0xb0,0xf6,0x6c,0xaf,0x5b,0xf4,0xf3,0xe7,0x25,0x75,0x8c,0xa3,0xf4,0xa7,0xd8,0x94,0x78,0xc8,0x77,0xc1,0x48,0x6c,0x62,0xf6,0x2c,0xb5,0x41,0x59,0xf6,0xd3,0xae,0x1b,0x55,0xed,0xdf,0xd1,0x59,0x63,0x76,0x03,0x65,0xd3,0xd0,0xcd,0xb6,0x5b,0x8f,0x1a,0x78,0x88
+.byte 0x78,0x07,0x14,0x3f,0xc3,0xd4,0x1c,0x69,0xd8,0x15,0x25,0xca,0x76,0x15,0x24,0x7d,0xed,0x69,0x2a,0xb5,0x04,0xd2,0x3b,0xbd,0x7a,0xb2,0xae,0x04,0x51,0x85,0x2b,0x1b,0xb0,0x3f,0x6d,0xbc,0xa0,0xc7,0x19,0x40,0xab,0x75,0x51,0x4b,0xa8,0x5a,0xd7,0xb5,0xc7,0xa8,0xfc,0x4a,0xcf,0xa9,0x9c,0xe6,0x2e,0x35,0x51,0x3b,0x05,0x41,0x43,0x7c
+.byte 0x1f,0x2e,0x16,0x5d,0x2f,0xa8,0xe9,0xce,0x6d,0x06,0xa7,0x5a,0xed,0x07,0x39,0xe4,0x7e,0xc3,0x01,0x2d,0x97,0xe4,0xc1,0x89,0x2c,0xb4,0xb1,0xb5,0x7f,0x0a,0xe2,0x9f,0x82,0x36,0xee,0x9b,0x76,0xbc,0x9d,0x37,0xdf,0x5e,0x81,0x95,0x9b,0x2b,0xc4,0x58,0x20,0x6a,0xd2,0xc7,0xb6,0x82,0xe6,0xa2,0x52,0x73,0x4a,0xaf,0x37,0x5a,0xf6,0x6b
+.byte 0xc4,0x2b,0x53,0x4e,0xca,0x44,0x17,0x9f,0x1c,0xeb,0x4d,0xf2,0xd1,0xb0,0x35,0xaa,0xc3,0xfe,0x77,0x34,0x2a,0x4a,0xe8,0x85,0x96,0x2f,0xa4,0x7d,0xdf,0xd0,0x6a,0x4a,0x0c,0x9b,0xd9,0x6a,0x00,0x92,0xb4,0xb1,0x9f,0xc3,0x56,0xee,0xcb,0xa5,0x3a,0x37,0x68,0xc8,0x7c,0x1e,0xa8,0x0a,0x3d,0xbc,0xd1,0xd0,0xd7,0x8b,0x32,0x34,0x20,0xfc
+.byte 0xd3,0x9e,0xf5,0x18,0x3a,0xb9,0x87,0xae,0xde,0x6c,0xc0,0x7d,0xbd,0x20,0x00,0xe5,0x7b,0xcb,0xf9,0x7d,0x70,0x9a,0x10,0x45,0xc9,0x33,0x13,0x9d,0x2c,0x16,0x67,0xe6,0x36,0x38,0xcf,0xa2,0xf1,0xad,0xec,0x48,0x7f,0x9b,0x2a,0xdc,0x13,0xe2,0xee,0xef,0xf2,0x5c,0x3f,0x52,0x3a,0x72,0x79,0x9b,0xba,0x50,0xb2,0x2b,0xfb,0x97,0x8e,0xe6
+.byte 0x27,0x39,0x63,0x72,0x05,0x11,0x7d,0x2e,0xa8,0x44,0x08,0xf7,0xf3,0x26,0xe5,0xe4,0x6c,0x98,0x7b,0xb1,0x42,0x6d,0x74,0xd4,0x3b,0xfa,0x35,0xfa,0x0a,0xac,0x5e,0x9e,0x8f,0xc7,0x07,0xc5,0x50,0x25,0xfd,0xbf,0x13,0x52,0x3d,0xf1,0x18,0x1e,0x19,0x8c,0xf3,0x8b,0x4d,0xc8,0xfb,0x76,0xa4,0xe3,0x3f,0xb2,0x47,0x9c,0x50,0x97,0x32,0x65
+.byte 0x9e,0x42,0x81,0x21,0xd1,0x92,0xd2,0x81,0x4a,0x93,0x68,0xa2,0xc1,0x76,0xc8,0x40,0xce,0xfe,0x4e,0xc5,0xa7,0xb2,0x77,0x9f,0xc8,0xe5,0x41,0xb1,0xda,0x15,0xf6,0xfa,0x21,0x3f,0x11,0x5c,0xc6,0x62,0xda,0x01,0x7f,0x0f,0x9f,0x9e,0x98,0xfe,0x38,0x53,0x6c,0x7f,0xba,0x8b,0x55,0x01,0x36,0x33,0x41,0x5e,0xa9,0x78,0xbf,0x2e,0x60,0x4f
+.byte 0xcb,0xe9,0x27,0x09,0x8c,0x01,0x2d,0x82,0x7d,0x3f,0xaf,0x8f,0x1e,0x37,0x79,0x35,0xfb,0xce,0x83,0xc5,0xf8,0xc5,0x54,0xfd,0x50,0xec,0x31,0xd1,0xb5,0x8a,0x4d,0x37,0xf6,0x7f,0x0e,0xbe,0x35,0xdd,0xa8,0x9e,0x5e,0xb9,0x3c,0xf4,0x2b,0xd2,0x97,0x56,0xd0,0x28,0xcb,0x60,0x27,0xcf,0x27,0x68,0x8a,0xa1,0xbf,0x9f,0xa3,0x45,0x4a,0x44
+.byte 0x71,0xe2,0xb2,0x9c,0x69,0x0b,0x18,0x69,0xcf,0x03,0xcc,0xc3,0x93,0xe0,0xf5,0xb7,0x4e,0xa4,0xdc,0x96,0xe0,0x2e,0xf8,0x3b,0xc6,0x67,0x30,0x06,0x5e,0xb9,0xb9,0x7d,0xaf,0x97,0x38,0x9a,0xf4,0x22,0x20,0x5a,0x9e,0x83,0x26,0x3c,0xcc,0x93,0x84,0x20,0x15,0x2e,0x85,0x23,0x17,0x1d,0x28,0xb4,0xe2,0x8f,0x2d,0x22,0x99,0x66,0xfd,0x6a
+.byte 0xa8,0xe6,0xb7,0x19,0x18,0xec,0xbd,0x54,0xc2,0xcc,0xb7,0xb4,0x6b,0x10,0xdd,0xb5,0xe3,0x3b,0xb7,0x77,0xbf,0x66,0x65,0x82,0x6a,0xc6,0x0d,0x26,0xe6,0xe8,0xe1,0x96,0xe4,0x0b,0x3c,0xe3,0xf2,0xfb,0xd6,0x91,0x5d,0xb6,0x08,0x15,0x67,0x10,0xfa,0xf8,0xdc,0x72,0x84,0xca,0x48,0x29,0x75,0x98,0x62,0x30,0x43,0xa9,0xf1,0xde,0x58,0xb5
+.byte 0x6e,0x67,0x53,0x62,0x0d,0x06,0xa8,0x97,0x35,0x04,0x02,0x34,0x3f,0xd7,0x77,0x38,0xed,0x51,0x32,0x7c,0x6f,0x25,0x94,0x04,0x30,0xa5,0xfc,0xf1,0xb0,0x65,0x77,0x16,0xec,0xb0,0xf9,0x6d,0xaf,0xbc,0x75,0x6e,0x29,0x44,0x20,0x86,0x36,0xbe,0x22,0xe0,0xe1,0xc4,0x0c,0x97,0x10,0x45,0x3e,0x06,0xc3,0xee,0xa5,0x1f,0x97,0xc7,0xde,0xdb
+.byte 0xf1,0x05,0xe3,0xb7,0x24,0xc5,0xa5,0xca,0x4e,0x8e,0x9e,0x44,0x7e,0x98,0xb1,0x3c,0xe9,0xa6,0xe5,0xa6,0x08,0xcb,0x08,0xd7,0xf6,0x38,0x37,0xa4,0x46,0xd1,0xdc,0x53,0x6f,0x6c,0x3f,0xca,0xa1,0x9b,0x7c,0xa6,0x44,0xd4,0x08,0x33,0xd2,0xf8,0x32,0xd2,0x4f,0x60,0x75,0x0f,0x49,0xf1,0x70,0x52,0x56,0x16,0x5b,0x3e,0x34,0x0e,0xe4,0x94
+.byte 0xc3,0xa9,0xd4,0x1c,0x9e,0xa4,0x10,0xce,0xc1,0x69,0x5b,0x3a,0xc9,0xd5,0xab,0x98,0x81,0x78,0x42,0x7e,0xf2,0x76,0x10,0xad,0x97,0x85,0x98,0x2f,0xe2,0x3f,0xb1,0x1d,0xc0,0x4d,0xa4,0x0b,0x54,0x7e,0x19,0x16,0x0a,0x71,0x74,0x37,0xfd,0x67,0x23,0x86,0xb2,0x3b,0x1e,0x49,0x92,0x92,0x1b,0x5f,0x65,0x56,0x76,0x6d,0x97,0x3b,0x91,0xc0
+.byte 0x5a,0x7e,0xf1,0x5b,0xe9,0x83,0xb9,0x67,0x2f,0xe1,0x0c,0xcf,0xe9,0x51,0x26,0x45,0x03,0x06,0x63,0xa4,0xb2,0x06,0xe0,0x8e,0xa3,0xbf,0xf5,0x7c,0x19,0xdf,0xfe,0x38,0x28,0x98,0xa1,0x23,0x16,0x69,0xc4,0x9f,0x20,0xe4,0x42,0x27,0x4e,0x7b,0xc9,0x42,0x5e,0xd2,0xb9,0xbf,0x33,0x03,0xbb,0x96,0x6d,0x80,0x65,0x90,0x3b,0x82,0x5b,0x68
+.byte 0x46,0x4f,0xe3,0xe0,0x0e,0xc5,0x90,0x91,0x80,0xf8,0xf4,0x9c,0xfe,0x03,0xaf,0x31,0x44,0xb7,0xfc,0x1f,0x65,0xc8,0x65,0x68,0xcc,0x27,0xb4,0x0d,0x81,0x14,0x9e,0x52,0xab,0xdd,0x71,0xf6,0xd9,0xcf,0x29,0x04,0xcd,0xae,0x6f,0xd6,0x41,0xb5,0xfd,0x1d,0x0f,0xbf,0x71,0xc2,0x60,0x98,0xb9,0xc0,0x6e,0x8a,0x2c,0x7d,0xec,0x31,0xa5,0xea
+.byte 0x1a,0xb1,0xe4,0xc2,0x36,0xcb,0xf0,0xf4,0x3f,0x1d,0x03,0x01,0xcd,0xac,0xd0,0x9d,0x2e,0xa3,0xc4,0x54,0x49,0x75,0x90,0xac,0x7e,0x1e,0xc3,0x90,0xab,0x55,0xb0,0x34,0x0d,0xd6,0x99,0xb5,0x40,0xda,0xdd,0x30,0x57,0x61,0x15,0xec,0x8f,0x8c,0xc7,0xda,0xfc,0xf5,0x0a,0x86,0xd8,0x6b,0x0f,0x6e,0x09,0xb8,0x50,0x2a,0xea,0x51,0x84,0x33
+.byte 0x7a,0x97,0x0c,0x56,0x61,0x2c,0xd9,0x83,0xb9,0xb1,0x53,0x31,0x72,0x20,0x79,0x85,0x7f,0xdc,0xb8,0xfe,0xfa,0x9a,0xd4,0x6a,0x3c,0xc7,0xcc,0x75,0x20,0xba,0x9c,0xb9,0x1a,0xff,0x9c,0xbe,0xfd,0x87,0xb4,0xd7,0xe8,0x5e,0x22,0x6a,0x1b,0x91,0x52,0x6a,0x58,0xbc,0xf4,0xde,0xcc,0x18,0x37,0x0e,0xf5,0x22,0x91,0xd2,0x4f,0x08,0x91,0x62
+.byte 0x1c,0xb7,0xa0,0x7e,0x66,0x97,0xda,0xa0,0x3c,0xc8,0xe8,0xdc,0x61,0xa4,0x64,0x8b,0x0a,0x43,0x90,0x0c,0x78,0xd9,0x96,0x8a,0xb0,0x17,0x0f,0x32,0x17,0x11,0x82,0x69,0x9d,0x7c,0xa9,0xfd,0x9b,0xe3,0xeb,0x0d,0x44,0x1d,0xcb,0xf6,0xee,0x26,0x6b,0xd5,0x4c,0x49,0x69,0x18,0xd7,0xf3,0x63,0xd9,0x7e,0x83,0xdd,0xa3,0x2d,0xdf,0x88,0x10
+.byte 0xd1,0x5c,0xb0,0x7e,0x44,0xfe,0x64,0x39,0x33,0x05,0x04,0x54,0x74,0x4d,0xd5,0xbc,0xdf,0x19,0x52,0x81,0x60,0x92,0xc5,0x4e,0xa4,0xff,0xf0,0xa2,0xfd,0x88,0x96,0xde,0xb4,0x8d,0x58,0x06,0xfb,0x96,0x6f,0x0e,0xb0,0x4a,0x2b,0xed,0x15,0xa7,0xfb,0x9f,0xf2,0x30,0xc4,0xce,0x02,0x4d,0x83,0xb8,0x5d,0x10,0x60,0xb8,0xbc,0x05,0xa2,0xd4
+.byte 0xf1,0xae,0x46,0x56,0xb9,0xac,0x68,0x79,0x41,0x90,0xee,0x79,0xda,0x3a,0x91,0x7a,0xf6,0xdb,0xe3,0xea,0x91,0x48,0x77,0x4a,0xa3,0xab,0x9c,0x99,0x49,0x1f,0xc9,0xcd,0xe7,0x2e,0xe3,0xe7,0x78,0x6d,0x07,0x1b,0xc6,0x08,0x48,0xd8,0x20,0xff,0x19,0x8a,0x73,0x1d,0xc6,0xa1,0xd4,0x95,0x33,0xf7,0x45,0xab,0xea,0x05,0x3e,0xdf,0xde,0x68
+.byte 0xb2,0xb6,0xef,0x71,0xb4,0xd1,0x09,0x4b,0x43,0x16,0x35,0x1a,0xb6,0xcb,0x78,0x63,0xca,0x9e,0x9a,0xe3,0x86,0xb2,0x8e,0x7b,0x68,0x89,0xa7,0x5c,0xd3,0x06,0x21,0x88,0x94,0xde,0xa1,0xb1,0x3a,0xe8,0xb7,0xfa,0x58,0xc5,0xc8,0x01,0xfa,0x56,0xe4,0x0e,0x6b,0xeb,0x5d,0x67,0xf4,0x63,0xd4,0x44,0xe2,0xe7,0x42,0xfe,0x09,0x58,0xdf,0xd9
+.byte 0x1d,0xb7,0x14,0x91,0xac,0x88,0x49,0xf6,0x7c,0x03,0x92,0x11,0xb4,0x66,0x68,0x6c,0x94,0x2a,0x22,0xaf,0xa6,0xb1,0x29,0x2a,0xae,0xdd,0xa8,0x65,0xe4,0xa9,0x39,0x00,0x1e,0xca,0x17,0x99,0xba,0xd6,0xf2,0x20,0x21,0xbf,0x1a,0xab,0xca,0x7c,0x92,0x22,0xee,0x3c,0x0c,0xc6,0x63,0xcc,0x86,0xfe,0xc0,0x8f,0xac,0x18,0x4e,0x2b,0xa5,0x2e
+.byte 0x46,0x57,0x8a,0xbf,0xdc,0xd1,0xd2,0x2c,0x5b,0xe2,0x96,0x81,0xca,0x41,0xb5,0x17,0x38,0x4a,0xa4,0xd2,0x0e,0xac,0x5d,0xe9,0x44,0x63,0x1b,0xb8,0x81,0xd6,0x69,0x1c,0x99,0xc5,0xdb,0xdd,0x18,0xc1,0x6d,0x28,0x7d,0x36,0x52,0x82,0xaa,0x1a,0x10,0x01,0x9d,0xf1,0x7b,0x09,0x69,0x56,0xb1,0x31,0xa3,0x54,0x3c,0x56,0xf9,0x82,0x8c,0x06
+.byte 0x5a,0x32,0x2d,0xc0,0x7c,0x7e,0x91,0x6d,0x73,0x7b,0x7c,0x45,0x0b,0x2c,0x2a,0x4f,0x3c,0xea,0x6b,0x2b,0x84,0x76,0xab,0x8d,0x4c,0x5c,0x64,0xa3,0x97,0x9f,0x56,0x20,0x05,0xf9,0xc2,0x20,0xf3,0xd0,0x6a,0x7f,0x7d,0x12,0xfc,0x20,0x52,0x5d,0xff,0x92,0xaf,0x4e,0x7f,0x8f,0x2f,0xd0,0x73,0x06,0x23,0x09,0xce,0x11,0xc0,0x1b,0x48,0x7d
+.byte 0x11,0x51,0x06,0x0e,0x05,0x95,0xca,0x42,0x71,0x87,0xa3,0xa3,0xc1,0x27,0xf8,0xb1,0x24,0x92,0x38,0x95,0xf6,0x8f,0x3b,0x70,0x74,0x19,0x9b,0x08,0xb3,0x49,0xe9,0x57,0xd4,0xce,0x5b,0xdd,0xab,0x95,0x26,0xe9,0x70,0x21,0xef,0x16,0xdd,0x36,0x89,0xe5,0x9e,0xaf,0xc5,0x28,0x0c,0xd3,0x67,0x64,0xbc,0xfb,0x18,0x17,0x15,0x1e,0xa7,0xb7
+.byte 0x72,0x3d,0xfd,0x10,0x5c,0xa2,0xc1,0xbf,0x62,0x79,0x2b,0xa7,0xb9,0x1f,0x73,0xe6,0x11,0xd8,0xbc,0x74,0x6c,0x45,0x95,0xef,0xa2,0xda,0x90,0xc3,0x00,0x00,0xbb,0xc7,0x28,0x36,0x82,0xd4,0x5e,0x5c,0x11,0xea,0x7c,0xf6,0x79,0x66,0xff,0x93,0x77,0x49,0x05,0xc9,0xc1,0x8d,0x5c,0xf6,0xff,0xb9,0xf9,0xcd,0xb3,0x01,0x83,0x83,0x43,0x2d
+.byte 0xa1,0x90,0x73,0xc9,0x32,0xae,0xdb,0xd0,0xf3,0x61,0x63,0x72,0x06,0xde,0x21,0x7b,0x3b,0x2d,0xec,0xd3,0x1d,0xfe,0xbd,0x6e,0xd8,0xe3,0x39,0xe0,0xa1,0x9f,0x67,0xaf,0xab,0x79,0xbc,0x59,0xf9,0xa7,0xdf,0x28,0x75,0xea,0x34,0x6b,0x25,0xde,0x49,0x1b,0x07,0x95,0x19,0x47,0x86,0x46,0x7b,0x68,0x30,0x70,0xec,0x9c,0x05,0xb6,0xc9,0x00
+.byte 0x68,0x10,0x4b,0xc4,0xe5,0xf1,0x67,0x3f,0xd4,0x3c,0xd6,0x49,0x98,0x71,0x23,0xff,0x07,0x6e,0x01,0x01,0x08,0x08,0x3d,0x8a,0xa1,0x71,0xdf,0x25,0x1a,0xef,0x60,0x86,0x6d,0x1c,0xd9,0x90,0x29,0x95,0xf2,0x4c,0x96,0xd3,0x17,0xe8,0x96,0x32,0x25,0x8c,0x65,0x38,0xbc,0x44,0x6a,0x5a,0xef,0x5a,0x72,0x12,0x43,0x2b,0xaf,0xc3,0xdc,0xb3
+.byte 0x6c,0x9f,0x57,0x61,0x2f,0x12,0x3f,0x72,0x16,0x4f,0x34,0xe3,0xb5,0xca,0x72,0xca,0x1c,0xdb,0xd2,0x8d,0x70,0x1f,0x19,0x75,0xb3,0x1b,0xdf,0xdb,0xb3,0xbf,0x6c,0x9a,0x70,0x64,0xa8,0xac,0x30,0x2d,0x4b,0x30,0xf5,0x4f,0x12,0x19,0xbd,0x65,0x25,0x70,0x33,0xe1,0x6f,0x18,0xdf,0x17,0xec,0xa3,0x80,0x51,0x6e,0xbb,0x33,0xa5,0xa8,0x58
+.byte 0x95,0x3c,0xab,0x86,0xd1,0x33,0xbe,0x55,0x04,0x8c,0x20,0x0d,0xfc,0x1a,0xa9,0x9d,0xb1,0x16,0x42,0x56,0x20,0xcc,0xa6,0x73,0xa0,0x85,0x3d,0xbf,0x1e,0xe0,0x01,0x51,0xd2,0xd7,0x2e,0x9d,0xd8,0x3c,0xea,0x03,0xf9,0x9a,0xbf,0x19,0x17,0x04,0x99,0xaf,0x8b,0xfc,0x9c,0x86,0xdf,0x58,0x78,0xfc,0x54,0x0d,0xac,0x26,0x27,0x2f,0x2e,0xbc
+.byte 0xdd,0x4a,0xd5,0x6f,0x7c,0xd8,0x93,0xe3,0x51,0x9e,0xcc,0xc8,0xd2,0xfe,0x68,0xfb,0x5b,0x22,0xda,0xef,0x76,0xb9,0xc3,0xdd,0x13,0x52,0x24,0xb6,0x23,0x1f,0x69,0x22,0xb6,0xf5,0x86,0xff,0x2e,0x6e,0xd0,0xe0,0x21,0xbc,0x31,0x81,0xb5,0xc5,0xdb,0x36,0x58,0x44,0xe7,0xb8,0xf7,0xfd,0xd3,0x34,0xee,0xab,0xe6,0x99,0xf2,0x84,0x86,0x9b
+.byte 0x67,0x45,0x08,0x07,0x66,0xae,0x6a,0x55,0xa2,0x74,0x46,0xda,0x02,0x82,0x67,0x93,0x60,0x64,0x5d,0x1f,0xac,0xe7,0x36,0xb6,0xcd,0x31,0x28,0x78,0x93,0xcd,0x54,0xe9,0x42,0xbb,0xb4,0xb3,0x15,0x72,0x12,0x31,0x85,0x15,0x68,0x3a,0x31,0x35,0xd6,0xc9,0x0d,0x3f,0xa0,0x4b,0x36,0x03,0xda,0xfd,0x7a,0xd6,0xce,0x0c,0xf5,0x14,0x23,0x71
+.byte 0x47,0x85,0x64,0xe7,0xe7,0x8b,0x8e,0x25,0x03,0x32,0x5f,0xa9,0x3b,0xdb,0x2b,0x27,0x7c,0x02,0xfb,0x79,0xd7,0x7a,0x76,0x75,0x69,0xfd,0x74,0x24,0xd2,0x72,0x8c,0xdd,0xc5,0xa1,0x45,0x90,0x50,0x65,0x95,0x41,0xae,0x7e,0x5c,0x83,0x3e,0x24,0x3c,0x02,0xa9,0x37,0x49,0x36,0x63,0x2f,0x18,0x92,0x3a,0x8a,0xe5,0x2a,0x6a,0x5c,0xa7,0x3e
+.byte 0x98,0x24,0xfd,0xd9,0x3b,0x2d,0x4c,0xe2,0x8e,0x05,0x5b,0xdd,0x47,0x0f,0x19,0x5a,0x62,0x94,0xd6,0x6e,0x45,0xd8,0x99,0x43,0x78,0xa0,0xb1,0xdf,0x68,0x8a,0x56,0xa8,0xfb,0x2e,0x52,0x4e,0xfa,0x21,0xec,0x62,0x14,0xf5,0x90,0xdb,0x8c,0x02,0xa7,0xff,0x29,0x22,0xb8,0x40,0x87,0x58,0xda,0x4e,0xfd,0xab,0xeb,0xa2,0x40,0xce,0xfc,0x58
+.byte 0x46,0x37,0x3f,0x04,0x4e,0x36,0x76,0x44,0x3c,0xfc,0x54,0xb8,0x6f,0x4b,0x66,0x6a,0x4a,0x78,0x8f,0x33,0x86,0x07,0xe4,0x3c,0xb5,0x0f,0x86,0x2e,0x21,0x7e,0x44,0xce,0x18,0x77,0xe0,0xcc,0xd7,0x7f,0xc9,0xac,0xb7,0x2b,0x94,0xb5,0x91,0xcd,0x2c,0xfa,0xc7,0x98,0xbd,0xb0,0x2a,0x85,0x77,0xcf,0x82,0xd9,0xae,0x76,0x33,0x34,0xc0,0x9d
+.byte 0x3a,0xbc,0x27,0xbc,0x97,0x25,0xf4,0xf1,0x43,0x53,0xac,0xf6,0xde,0xf5,0x1f,0xa6,0x6a,0xd5,0xe3,0x11,0x32,0x49,0x46,0x5b,0x56,0x68,0x07,0xdb,0x03,0xad,0xc2,0x35,0x16,0x8f,0x01,0xcc,0x8a,0xd2,0x0c,0x6b,0xb2,0x62,0x73,0x99,0xb5,0x74,0xf1,0x4b,0x2e,0xbc,0x8e,0xed,0xc0,0x55,0x56,0x40,0xae,0x24,0xf2,0x7e,0x1f,0xba,0x9d,0xc4
+.byte 0xd1,0x69,0xd3,0xba,0x21,0x83,0xf5,0xc4,0xbf,0x78,0x96,0x74,0xa1,0xd8,0x8c,0x35,0xba,0x9f,0xa0,0x0f,0xb5,0x6a,0xb2,0x72,0x52,0xfa,0x02,0x71,0xbb,0x79,0x61,0xbd,0xa9,0xee,0x22,0x7c,0xc5,0xac,0x6b,0x52,0x67,0xab,0xc4,0xd2,0x8d,0x26,0x1c,0x2b,0xaf,0x0c,0xa4,0xce,0xb5,0x11,0x99,0x4d,0x22,0x69,0x68,0xe0,0xc6,0x3e,0x84,0x3d
+.byte 0xeb,0xad,0xc9,0x5b,0xb5,0xb4,0xba,0x06,0x9b,0x0a,0xb2,0x54,0x89,0xf2,0xb0,0x5f,0x41,0xb4,0x8b,0x21,0x31,0x29,0x94,0x52,0x1e,0xa7,0xc4,0xc2,0x97,0xb9,0x74,0x95,0xa3,0x30,0xfb,0x02,0x77,0x01,0x4f,0x32,0x03,0x34,0x8f,0x51,0x2d,0x10,0x61,0xee,0xc5,0x2f,0x89,0x42,0x3c,0xbe,0xed,0x66,0xa6,0x7a,0x10,0xc6,0x06,0x7e,0xb2,0x3d
+.byte 0xf2,0xc9,0xd1,0x08,0x97,0x6c,0x6f,0x6d,0x06,0x9d,0x72,0xd0,0x5e,0x79,0x3b,0xa5,0xa5,0xd0,0xdc,0xc6,0xda,0x73,0xd2,0xf3,0x0a,0xfd,0x94,0xc2,0x9c,0x4b,0x85,0x38,0x8d,0xb2,0xfb,0x29,0xdd,0x90,0xc2,0xb7,0x8f,0x2c,0x52,0xa2,0x32,0x5e,0xa1,0x0f,0x62,0x38,0x58,0xfa,0x46,0x4e,0x87,0x4b,0xcf,0xc5,0xe9,0xfc,0xf2,0x97,0x62,0xdd
+.byte 0x92,0xd2,0x41,0x7b,0xa2,0x2a,0xae,0x6e,0x4d,0xbc,0xef,0x43,0x18,0x6e,0xbb,0xe5,0x06,0x45,0x53,0xa1,0x00,0xef,0xf5,0x4b,0xad,0xbd,0xa5,0x2c,0x77,0x0a,0x37,0x04,0x22,0x95,0xeb,0x7b,0xc1,0x3c,0x20,0x0a,0x44,0xdf,0xa2,0x23,0xc9,0xfc,0x85,0xf3,0x5b,0x9b,0x0f,0x40,0x2a,0xe3,0xc7,0x5a,0xa1,0xf6,0xe4,0x39,0x2a,0xfe,0xd7,0xe7
+.byte 0x33,0xd8,0xbc,0xd6,0x1f,0xef,0xac,0xa9,0x3f,0x2d,0x55,0xb0,0x85,0x74,0xef,0xeb,0xcd,0x9b,0x23,0xa3,0xe6,0x19,0xde,0xea,0x7c,0x9c,0x83,0x48,0x4b,0x12,0xfd,0xe3,0xcb,0x1b,0x70,0x2d,0x9f,0x2c,0x13,0x82,0x87,0x68,0xca,0x60,0x5e,0xc0,0x2e,0x60,0xde,0xf2,0x6b,0x78,0x0a,0x63,0xaa,0x9c,0x9b,0x61,0x63,0xc7,0x0c,0x98,0x92,0x68
+.byte 0xc7,0x44,0x00,0x6a,0x76,0x43,0xa0,0x61,0x7c,0x37,0x62,0x1a,0xd4,0x9b,0x58,0x59,0xe5,0xae,0x78,0x79,0x80,0xf0,0x75,0x68,0x9e,0xab,0x02,0xb8,0x00,0xc5,0x33,0x0d,0xea,0xb1,0x91,0x0f,0x17,0x57,0x96,0x23,0x8d,0x36,0x4d,0x89,0x94,0x42,0xc9,0x61,0x6e,0xf6,0x9f,0x37,0xee,0xa5,0x4b,0x3d,0x06,0x08,0xee,0x9a,0x7c,0x73,0xa9,0x58
+.byte 0xcd,0xcb,0x78,0xa9,0x3d,0x5c,0x11,0x0e,0x5a,0xd9,0xb0,0x7b,0xc4,0x3e,0x83,0xdc,0xe2,0x11,0xe9,0x6d,0x8a,0x8b,0x24,0x28,0x1d,0x7e,0x45,0x1b,0x05,0x5a,0x6b,0x97,0x1c,0x25,0x15,0x84,0x5c,0x3f,0x95,0x44,0xd5,0x4f,0x3c,0x4b,0x52,0xb1,0x0b,0x6a,0xb3,0xae,0x4e,0x1b,0x12,0xcf,0x16,0x78,0xd7,0xcb,0x32,0x43,0x39,0x88,0xf4,0x5e
+.byte 0x26,0x29,0xe7,0x93,0x08,0x19,0x14,0x88,0x8f,0x54,0x91,0x13,0xb6,0x57,0xd1,0x87,0xd4,0x9d,0xf7,0xec,0x9b,0x22,0x6b,0x91,0x79,0x9d,0x6c,0x32,0x47,0x4a,0x79,0x55,0x7d,0xac,0x87,0x98,0x59,0x97,0xa5,0x71,0xbc,0xbf,0x1b,0xf0,0x6f,0xbb,0x81,0x8e,0xc2,0xef,0x7c,0x63,0x2f,0x80,0x37,0xb6,0xc5,0xae,0x59,0x5e,0x57,0x5e,0x1f,0x3a
+.byte 0xe5,0x6b,0x6b,0x5e,0xdb,0x8e,0xd2,0x87,0xf7,0x94,0x7b,0x11,0x0e,0x4b,0xa6,0x9f,0x49,0xc6,0x68,0xc7,0x52,0x5f,0x28,0x87,0x33,0x84,0x52,0x5f,0xc8,0x5f,0x81,0x85,0x10,0xe8,0x92,0xce,0x13,0x6c,0x01,0x28,0x5e,0x59,0x8f,0xbb,0xa9,0x9c,0xdc,0x85,0xd3,0x73,0xa0,0x5a,0xbf,0x5b,0x04,0x80,0x99,0x90,0xc8,0x16,0x44,0x0d,0x09,0x01
+.byte 0xcd,0x24,0xe7,0x59,0xe7,0x42,0xe0,0xdd,0x01,0x93,0x1f,0x9e,0x1f,0x36,0xdb,0xcd,0x49,0xdb,0xea,0xa9,0x63,0x71,0xb9,0x2c,0xcd,0xca,0x1a,0x64,0xe1,0x95,0xbe,0xe1,0x64,0x2e,0xc7,0x59,0x15,0x61,0xe1,0xf9,0x45,0x0f,0x2a,0x3a,0x85,0xf8,0x7c,0x06,0xae,0x53,0x84,0xd2,0xe7,0xee,0x8b,0xbf,0x7a,0x72,0xa3,0x57,0xf1,0xc2,0x12,0x40
+.byte 0x9c,0x93,0xe1,0x04,0x81,0xde,0xc6,0xa8,0xae,0x4f,0x5c,0x31,0x93,0xc7,0x11,0x1d,0x89,0x70,0x85,0xd5,0x6f,0xab,0x58,0x1f,0x3f,0x76,0x45,0x7e,0x19,0xd0,0x6c,0xc1,0x41,0xa9,0x64,0x0a,0x79,0xb5,0xe0,0x9e,0xbc,0x4f,0x10,0x0c,0xac,0xfc,0x54,0xad,0xcf,0xb8,0xd0,0xfd,0x9b,0xed,0xea,0x54,0x05,0xbf,0x4f,0x91,0xbd,0x16,0x4a,0x57
+.byte 0xa9,0xda,0x38,0xb9,0x40,0x0d,0x63,0x68,0x83,0x7d,0xec,0x1c,0xe6,0x7f,0x9c,0xec,0x16,0x4e,0x0b,0xd0,0x91,0xb4,0x2c,0x04,0x65,0xb8,0x12,0xdf,0x3f,0xff,0x6a,0x08,0x4e,0x65,0xdf,0x09,0xa5,0xea,0xb1,0xac,0xa9,0x67,0xd2,0xbb,0x73,0x51,0xd2,0x37,0x72,0xfc,0x3f,0x69,0xe2,0x3f,0x01,0x94,0x3a,0xf7,0x23,0x0e,0x5d,0x23,0x44,0x82
+.byte 0xc7,0x38,0x35,0x9f,0xfa,0x13,0x15,0x47,0x0d,0x18,0xab,0x02,0x39,0x6e,0xb2,0x7c,0x29,0x11,0x9a,0x5a,0x01,0x2d,0xb2,0x10,0xea,0x9d,0xb7,0x37,0x4b,0xf2,0x2b,0x76,0x22,0xf7,0xaf,0x8a,0x5f,0x1d,0x6b,0xb2,0x13,0x9e,0x84,0xf5,0xbc,0x6e,0xad,0x66,0x5c,0x1b,0x5d,0x12,0xb0,0xe1,0x48,0x94,0x83,0xa0,0x26,0x54,0xd2,0xfd,0x3c,0x8d
+.byte 0x81,0xac,0x31,0x9a,0x15,0xc6,0xd8,0xd5,0x07,0x1b,0x21,0x3f,0x04,0x40,0x3a,0x60,0x80,0x5f,0x1f,0x42,0x3e,0xd7,0x2b,0x7a,0x5f,0x71,0x93,0xb4,0x9d,0xf0,0x8b,0x5e,0xf1,0xc6,0x19,0x0a,0xa9,0x43,0xac,0xb2,0xc1,0x73,0x0d,0x44,0x6a,0x92,0x22,0xd0,0xda,0x40,0x14,0x7d,0x88,0xd1,0x5e,0x10,0xc9,0xa4,0x4d,0xd8,0xe0,0x7d,0x74,0x1b
+.byte 0x2b,0xcb,0x50,0x24,0xbd,0x50,0x4a,0xe4,0xed,0x0e,0xe8,0xc0,0x5b,0x50,0x6d,0xf5,0x68,0x59,0xd1,0xc3,0x6f,0x32,0x86,0x29,0xe0,0x32,0x3f,0x05,0x86,0xa2,0x7f,0x93,0xd8,0xb7,0x02,0x68,0xb3,0x16,0xaa,0x0c,0xd3,0x4d,0xec,0x9a,0x66,0x06,0x7c,0x74,0x35,0x6f,0xde,0x8b,0xd9,0xdb,0x79,0x0a,0x15,0x84,0xc4,0x63,0xba,0x42,0xa2,0x3c
+.byte 0x29,0xc8,0x65,0xdc,0x06,0x60,0x0a,0x08,0x4e,0x80,0x33,0x5c,0xfa,0x4b,0x91,0xdb,0xf6,0x57,0xd6,0x25,0x7d,0x70,0x80,0x09,0xb2,0x27,0xdb,0x80,0x4c,0xa7,0xe8,0x35,0xf5,0x18,0x2d,0x10,0x62,0x22,0xf9,0xb1,0x22,0xf3,0x9b,0x74,0xa0,0xc5,0x25,0xd3,0x44,0xc9,0x27,0x7c,0xba,0x01,0xfe,0x32,0x23,0xf7,0x90,0x90,0xbc,0x0d,0xad,0x9e
+.byte 0x22,0x77,0xc5,0xfb,0xf2,0x0e,0xda,0xe5,0x7c,0xb4,0xbb,0xed,0xd4,0xfd,0xb0,0xfb,0x4a,0x4c,0x2a,0x32,0x2d,0x81,0xcd,0xef,0x74,0x3c,0x6a,0x9a,0x0c,0x95,0x58,0x25,0xd0,0x3a,0xb4,0x84,0x8f,0xa5,0xef,0xad,0x91,0xd7,0x2d,0xae,0x61,0xaf,0x9d,0x3f,0x03,0xa8,0xab,0xa4,0x66,0xd4,0x73,0x3a,0x84,0x0d,0x4c,0x6a,0xca,0xbd,0x0c,0x3c
+.byte 0xdc,0x1d,0x37,0xea,0xe6,0x5a,0x7f,0x15,0xbe,0x9d,0xc7,0xce,0xbd,0x46,0x97,0xd3,0x07,0x19,0x82,0xaf,0x58,0x39,0x39,0x95,0x5d,0x4b,0x8e,0x1b,0xe9,0xf1,0xf6,0xa9,0xb3,0xfc,0xe6,0xe0,0x68,0x2c,0xbb,0xfa,0xd9,0x9b,0xc1,0x69,0xf3,0x5a,0x8f,0x67,0xd5,0x9c,0x11,0x1e,0x02,0x20,0x20,0xfe,0x4b,0xc9,0x8b,0x62,0x17,0x9a,0xfa,0x47
+.byte 0x7f,0xa2,0x8b,0xc1,0x3b,0x02,0x78,0x38,0xff,0xce,0xe1,0x54,0x40,0x3f,0x27,0x5c,0x9d,0xdd,0x56,0x38,0x48,0xea,0x39,0xbe,0xa0,0x76,0x43,0x82,0xef,0x74,0x50,0xdf,0xda,0x4c,0xca,0x47,0x46,0x7e,0xc5,0xff,0xce,0x66,0xdf,0xeb,0x5b,0x6e,0x45,0x77,0x19,0xac,0x01,0x1f,0x20,0xa1,0xad,0x01,0x5f,0x87,0x3e,0x3a,0xd0,0x83,0x13,0x17
+.byte 0x53,0x40,0xfe,0x26,0x99,0x42,0xfa,0x54,0xa8,0x82,0x79,0xa7,0x44,0xd0,0x9e,0x59,0x64,0x77,0xec,0x70,0x0e,0xcd,0xb9,0xb1,0xc2,0xe2,0x39,0x93,0xb7,0xd1,0xd5,0x67,0x9f,0xb0,0x5b,0xd9,0x50,0x8b,0x17,0xec,0xbc,0x83,0x64,0x35,0xaa,0x43,0x3f,0x4c,0x8c,0x56,0x83,0x76,0xa2,0x72,0x30,0xe7,0xe8,0x9f,0x88,0x35,0x8e,0x8d,0x11,0x31
+.byte 0x8e,0xb5,0x71,0x75,0x31,0xc8,0x28,0x15,0x50,0xe6,0x0a,0x00,0x4d,0x75,0x51,0x7c,0x33,0x14,0x96,0xff,0xe8,0xf3,0xa0,0xb1,0x9c,0xeb,0x9d,0x8a,0x45,0xcf,0x62,0x82,0xeb,0xce,0xea,0xa5,0xb9,0x10,0x83,0x54,0x79,0xf8,0xcf,0x67,0x82,0x1d,0xea,0xce,0x86,0xcf,0xc3,0x94,0xf0,0xe8,0xf4,0x80,0x8b,0x84,0x96,0x06,0x2e,0xe4,0x58,0x21
+.byte 0x98,0x42,0x1a,0xb7,0x8c,0x5d,0x30,0x15,0x83,0xe8,0x17,0xd4,0xb8,0x7b,0x90,0x57,0x35,0x72,0x6d,0x1b,0x7c,0xc0,0x88,0x0a,0xa2,0xea,0xcd,0x58,0xcc,0xf1,0xb4,0x8b,0xcd,0x66,0x3c,0xa5,0xb0,0xd4,0xc9,0xcc,0x42,0x1d,0xef,0x3b,0x42,0x22,0x9b,0xfb,0x45,0x24,0xcc,0x66,0xd7,0x67,0x73,0xb2,0x12,0x03,0xf6,0xa3,0x06,0x61,0xe2,0xab
+.byte 0x91,0x8e,0x33,0x0b,0x9f,0x6a,0x80,0x5e,0x0f,0x68,0x41,0x5a,0x7e,0xd8,0xe2,0x32,0x50,0xc2,0x88,0x60,0xca,0xe3,0x23,0x86,0xff,0xdc,0x0c,0x19,0xbb,0xba,0x01,0xa3,0x41,0x89,0xf0,0x79,0x55,0x79,0xa6,0xa4,0x66,0x7b,0x46,0xde,0xac,0xae,0xb1,0xde,0xe1,0x1e,0x8d,0x62,0xc1,0xd6,0xeb,0x39,0x2f,0x1d,0x50,0x27,0x53,0xc9,0xea,0xb6
+.byte 0xd3,0x91,0x9b,0xdd,0xc1,0x68,0x8c,0xb6,0xe1,0x5e,0x9f,0xea,0xbe,0x98,0x88,0xeb,0xa8,0x77,0xf6,0x69,0x64,0xab,0x99,0xf3,0x7a,0x08,0xff,0x8c,0xa6,0x17,0x1b,0x2e,0x6e,0xcc,0xd8,0x33,0x30,0xef,0x5a,0x86,0x07,0x49,0xa5,0x13,0x08,0xbc,0xd6,0x88,0x7e,0x19,0xe0,0x1c,0x23,0xa9,0xe5,0x0a,0xa7,0xaf,0x8a,0xe9,0x81,0x3f,0xd8,0x99
+.byte 0xa6,0x01,0x6b,0xec,0x14,0x08,0x90,0xb1,0x76,0x16,0x3a,0xcb,0x34,0x0b,0x91,0x26,0xe9,0xec,0xe5,0xbc,0xd6,0xdc,0xf0,0xa9,0xfd,0xf2,0xe9,0xcc,0xa1,0x9d,0x7f,0x32,0x0d,0x0a,0x2a,0x92,0xff,0xc4,0x38,0xf8,0x9e,0x31,0x78,0x47,0xbf,0x3f,0x27,0x71,0xe1,0x7a,0x33,0x48,0x91,0xe8,0x8e,0x1a,0x66,0xcf,0xa1,0x61,0xc2,0x62,0x30,0x7c
+.byte 0x69,0x35,0x21,0x67,0x9b,0xa7,0x1c,0x72,0x06,0xd8,0x28,0x94,0x6e,0x6d,0xf0,0x22,0x85,0xb4,0x6c,0x89,0xe8,0x2e,0x3a,0xc5,0xdc,0xe3,0xe3,0x0c,0x8a,0xba,0x1c,0x57,0x86,0xef,0x55,0x6a,0x24,0x59,0x5e,0x6e,0x47,0xb8,0xad,0xc5,0x10,0xff,0xbe,0x2d,0x93,0x09,0xfe,0x17,0x03,0x16,0x4d,0x4a,0x9a,0x15,0x38,0x94,0x38,0x18,0x45,0xa7
+.byte 0xcf,0xe4,0x16,0xd3,0x26,0x72,0x49,0xe7,0x89,0x9a,0xb4,0xc7,0x78,0xc3,0x18,0x3b,0xc8,0x08,0x9d,0x66,0x0f,0x48,0xc8,0x23,0x91,0x57,0x61,0xf1,0xf3,0x01,0x3e,0x0a,0xa3,0x4c,0x6c,0x34,0x5b,0x98,0x40,0x47,0x42,0xc1,0xeb,0x58,0x58,0xff,0x1f,0x4b,0x5f,0xf1,0x29,0x2e,0x7e,0x76,0x15,0x56,0x17,0x9c,0xe7,0x55,0x09,0x22,0x0a,0xa2
+.byte 0xd8,0xbf,0xd9,0x44,0x49,0xa9,0x24,0xd7,0x4f,0x12,0x04,0xa2,0x18,0x1c,0xdc,0x54,0xc0,0x22,0x27,0x3c,0xeb,0x1f,0x02,0xae,0xb3,0x33,0xb2,0xa2,0x84,0x23,0x76,0xc6,0x2b,0x94,0x53,0xae,0x7b,0xee,0xbb,0x81,0x64,0x8a,0x3f,0xe0,0x75,0x6b,0x2c,0xd5,0x60,0xad,0x49,0x0c,0xf8,0x65,0x64,0x1a,0x83,0xc7,0xb9,0xd9,0x01,0x5b,0xde,0xb0
+.byte 0x76,0x9b,0x1c,0x0d,0x89,0x2d,0xd5,0x09,0xc7,0xa9,0xbb,0x0a,0x54,0x5c,0xd4,0x5b,0xbf,0xbc,0x5e,0x00,0x29,0x0b,0x30,0x19,0x73,0x66,0xfd,0x3f,0xdb,0xd4,0x1b,0xd4,0xc0,0x27,0xde,0x49,0x90,0x5f,0x65,0x87,0x3c,0xc4,0x43,0xd0,0x49,0x76,0x64,0x39,0x88,0xd7,0x0e,0xfc,0x27,0x52,0xb1,0x8d,0xd0,0x27,0x29,0x84,0xe3,0x49,0xb9,0x0c
+.byte 0x2d,0x4e,0x73,0x95,0x57,0xa8,0x07,0xa0,0xe1,0x5b,0x5a,0xb6,0xbc,0xa1,0x7f,0xfd,0x4b,0x9c,0x4d,0x7d,0x0c,0x5c,0x4c,0x4b,0x42,0x70,0xc3,0x0a,0xc1,0x89,0x12,0xb5,0x46,0x04,0x3c,0x56,0x25,0xc6,0x8f,0x49,0x7d,0x3b,0xf1,0xcd,0xfc,0xb8,0xa6,0x66,0xb1,0xc2,0xa3,0xa7,0x98,0x93,0x0e,0xdb,0xcd,0xce,0xdf,0x7f,0x68,0x5e,0xea,0xf2
+.byte 0x85,0x61,0x8f,0xd6,0x23,0xb4,0x5f,0x2f,0xf8,0x78,0x47,0x15,0x59,0x2d,0xca,0x35,0x0f,0xf5,0x91,0x74,0x3b,0x32,0xe1,0xcf,0x54,0x1b,0xf4,0x9d,0xdb,0x20,0x5e,0xf8,0x71,0x10,0xa3,0x31,0xf1,0xb8,0x98,0x8d,0x76,0x70,0xce,0x4c,0xed,0xd3,0x81,0x6b,0xd5,0x8d,0x73,0x5f,0x8c,0x66,0x7c,0x87,0x73,0xfa,0x20,0xbe,0xcd,0xba,0x41,0x88
+.byte 0x46,0xc3,0x38,0xc0,0xd9,0x08,0x79,0x30,0xda,0x7f,0x2a,0xc0,0x72,0x47,0xb0,0xc9,0x41,0x68,0xb1,0xe8,0xb4,0x86,0xcb,0x5d,0xb0,0x5b,0x7a,0x26,0xfd,0xf2,0x1b,0x4e,0x1f,0x4c,0x6a,0x8a,0x84,0xd4,0x07,0x2f,0xf4,0x06,0x73,0x3d,0x1c,0x55,0x04,0x6a,0xa5,0x8a,0xbb,0xaa,0x8a,0x8d,0x8f,0x05,0xcc,0x63,0x04,0xe0,0xc6,0x6f,0x6b,0xf8
+.byte 0x24,0x56,0xbb,0x9d,0xa9,0xe5,0x4c,0xac,0x9d,0xbe,0xfd,0x70,0x9d,0x1f,0x98,0xc4,0xfc,0xdb,0x3c,0x45,0xe7,0xbb,0xea,0x51,0xb6,0x56,0xe0,0x2c,0xb2,0x77,0x1b,0x80,0x9b,0x43,0xa7,0xb2,0x9a,0x40,0x8f,0xdb,0x2d,0x51,0x7b,0x2c,0x89,0xfd,0x14,0xf5,0x77,0xbf,0x40,0x3d,0x32,0xe0,0x10,0x32,0xcd,0xc4,0x3f,0xe2,0xe8,0xb4,0xdf,0xc2
+.byte 0x43,0x7a,0x0b,0x17,0x72,0xa1,0x0e,0xd6,0x66,0x35,0x8f,0xf4,0x21,0xf1,0xe3,0x46,0x13,0xd7,0xcd,0xc7,0x7b,0xb4,0x9b,0x39,0x1e,0x33,0x3c,0x18,0x15,0x7a,0xea,0x77,0xc5,0x57,0x4d,0xf9,0x35,0x8a,0xc1,0xb5,0x78,0x5d,0xc3,0x3e,0xd5,0xfd,0xb5,0x50,0xee,0x44,0x24,0xa2,0x55,0xb6,0xd8,0x3d,0x5d,0x75,0x2a,0x26,0x37,0xe7,0x85,0xb3
+.byte 0xff,0x70,0x5d,0x99,0x8d,0x99,0xba,0x9d,0x09,0x97,0xf2,0x67,0xe5,0xa3,0x86,0x06,0x21,0xb4,0x03,0x9b,0x63,0x76,0x1f,0xf8,0x09,0xd8,0x4e,0x22,0xcb,0x48,0xcf,0x79,0x72,0xc9,0x3f,0x84,0x5e,0xb8,0x39,0x87,0x27,0x92,0x1e,0x59,0xdf,0xc2,0xe6,0xd2,0xc4,0x5f,0xad,0x6e,0x9c,0xa4,0xec,0xd5,0x7d,0xf6,0x2b,0x9b,0x93,0x56,0xcd,0xa3
+.byte 0xc5,0xfa,0x82,0x39,0x46,0x29,0x57,0x43,0x08,0xe2,0xe1,0x3e,0x80,0x3b,0x8e,0x08,0xe5,0xc5,0xfe,0x05,0x17,0xaf,0xe0,0xf0,0xb7,0x5b,0x34,0x33,0x59,0xfa,0x93,0xbf,0x6a,0xb3,0x6c,0xbc,0x99,0x62,0x34,0x2c,0xf2,0x3b,0x62,0xf2,0x1c,0x48,0x07,0xc9,0x60,0x03,0xa5,0xe1,0x66,0x8d,0x84,0x36,0xc7,0xf9,0xc6,0x3b,0xa9,0xee,0x0f,0x48
+.byte 0xff,0xff,0xad,0x95,0x21,0xb5,0x12,0x63,0x7d,0x0f,0x0d,0x09,0x63,0x51,0x64,0x69,0xb4,0x95,0xd3,0x25,0xf0,0x3b,0x6d,0xc4,0xdd,0x8c,0x80,0x0d,0x3b,0xd2,0x4b,0xe0,0x67,0xcb,0xcd,0x7d,0x2e,0xbd,0x61,0x4b,0x0c,0x32,0x1f,0xfd,0xd2,0x31,0xed,0xa8,0xaa,0x98,0xf4,0x85,0x21,0xbc,0x08,0x14,0x2f,0xbb,0xbf,0x01,0xba,0x24,0x5e,0x5c
+.byte 0xf3,0x72,0xed,0x05,0xec,0xf3,0xd1,0x9b,0xb0,0x63,0x8a,0x14,0xd1,0x9e,0xae,0x9b,0xce,0x4d,0x6c,0xb6,0x7a,0x78,0x9e,0x1d,0xcd,0x1e,0x50,0x66,0x26,0x70,0x74,0x2b,0x43,0x6a,0xc7,0xd7,0xe9,0xa2,0xcf,0xf3,0x09,0x9a,0x81,0x80,0x04,0xb8,0x5a,0x4f,0x2e,0x10,0x35,0xb2,0xb0,0xc6,0x40,0x97,0xa5,0x6a,0x24,0x5a,0x6b,0x97,0xc7,0xc0
+.byte 0x24,0x50,0x8d,0x65,0x21,0x25,0xce,0xb9,0x19,0xfc,0x40,0x08,0xcf,0xfd,0x1c,0xc4,0x30,0xd4,0x06,0x70,0xac,0x8a,0x3c,0x3f,0xfc,0xc3,0xeb,0xdd,0x43,0x56,0x4a,0xf6,0x50,0x92,0x9d,0xce,0x9c,0xea,0x15,0xdd,0x7c,0x5e,0x40,0xf5,0x7e,0x41,0x70,0xdd,0xc7,0x62,0x21,0x5a,0x20,0xc8,0x71,0x10,0x97,0xd5,0x12,0xfa,0x31,0x96,0xfb,0x38
+.byte 0x17,0x66,0x73,0x32,0x7a,0x93,0xf0,0x82,0xb9,0xf1,0x24,0xc5,0x64,0x0b,0xa9,0x24,0x4a,0x47,0xac,0xfb,0xf1,0x55,0xd7,0xb3,0x9a,0x64,0x63,0x0b,0x2e,0x13,0x9e,0x1a,0xee,0x21,0xd0,0x70,0x5c,0x0c,0x25,0xe7,0x38,0x23,0xd7,0x2f,0x6a,0x20,0x59,0xef,0x70,0xb2,0x8e,0xb4,0x15,0xee,0x6f,0x70,0xd0,0x75,0x19,0x9d,0x42,0xa7,0x17,0xad
+.byte 0x99,0xaa,0x0d,0xa3,0x87,0x3d,0xf1,0x7b,0x0e,0xfa,0x62,0x9a,0x20,0x64,0x17,0x64,0x07,0xc2,0x84,0x13,0xb2,0x59,0x81,0x66,0x45,0xab,0x47,0x6d,0xfc,0x7b,0x60,0x05,0xac,0x30,0xb2,0x86,0x7e,0x34,0x6b,0xaf,0x37,0x00,0xa6,0x47,0x4c,0xb9,0x10,0xbd,0x9e,0xce,0x47,0x9e,0xc2,0x0e,0xfd,0x47,0xfa,0xd8,0x08,0xd1,0xc2,0xaa,0x6d,0x8c
+.byte 0x91,0x2c,0x18,0x32,0x52,0x84,0x47,0x71,0x3b,0xc9,0xa1,0xf5,0xfc,0x90,0xb8,0x79,0xbf,0xe5,0x59,0x1b,0x91,0x22,0xcb,0xd3,0x87,0x7e,0xd4,0xb5,0x33,0xb2,0xfc,0x7c,0xee,0x22,0xfb,0xe8,0xb0,0x3c,0xa7,0x8b,0x05,0xd7,0x7f,0x17,0x52,0xbe,0xb6,0xe0,0x1e,0x47,0xce,0xfd,0x79,0xdf,0x16,0x5f,0x01,0x70,0x0c,0x47,0x5a,0x01,0x96,0x08
+.byte 0x3e,0x9b,0xc4,0xb2,0x58,0x73,0xc4,0x38,0xd6,0xf2,0x1b,0x0a,0x2c,0xb9,0x2a,0x96,0xb5,0x89,0x2d,0x33,0xdf,0xa4,0x5f,0x24,0x1b,0x79,0x0e,0xb6,0x9f,0xec,0x46,0xd3,0x27,0x4a,0xc1,0x26,0x94,0x95,0x41,0xd5,0xb3,0x84,0x74,0x62,0x47,0xc5,0x4d,0xb4,0xe2,0xe7,0xdb,0xc3,0xc3,0x7b,0x33,0x2a,0xbf,0x69,0xf6,0x5e,0xdc,0xfe,0xa4,0x81
+.byte 0x91,0xf3,0xa8,0x26,0x82,0x44,0x37,0xea,0xe1,0x20,0xff,0x52,0x33,0x5b,0x0b,0x6f,0xf8,0x33,0x4e,0x02,0x4d,0x38,0x93,0xcd,0xc0,0xfc,0x73,0x1a,0xf9,0xf6,0x9f,0x53,0xfc,0xf7,0xe2,0x4b,0x25,0xdd,0xa7,0x4d,0x1e,0x5c,0x17,0xc3,0xa0,0x41,0x1d,0x67,0x45,0xff,0xcb,0x41,0x49,0xc4,0x18,0x68,0x7e,0x7f,0xb6,0x6f,0xdb,0xbc,0x73,0x2f
+.byte 0xc7,0x9a,0x46,0x8c,0x0b,0x57,0xa3,0xd3,0x0a,0x34,0xb7,0x27,0x67,0xbb,0xe1,0x64,0xa7,0x7e,0x79,0xac,0x4f,0x09,0x54,0x9b,0x43,0x5e,0x9a,0x33,0x02,0x45,0xdc,0x85,0x0b,0x59,0x8d,0x78,0xe8,0xd8,0xb5,0xd3,0x31,0x9d,0x2a,0x60,0x5b,0x91,0xed,0xf1,0xf1,0x37,0x3f,0xdb,0xda,0xd6,0xd1,0x8f,0x14,0x7e,0xe1,0xfc,0x92,0x60,0xa5,0x33
+.byte 0x86,0xef,0x29,0xbf,0x94,0x84,0x2b,0x24,0x20,0xb4,0x5e,0x23,0x34,0x08,0x63,0xc9,0xe6,0x80,0xa0,0x27,0x27,0x2f,0xab,0xc0,0x52,0x44,0x66,0x29,0x32,0x2e,0x91,0x96,0x02,0x1c,0x3b,0xb4,0x6e,0x33,0x49,0x5b,0x60,0x6f,0x14,0x93,0x65,0x0d,0x97,0x01,0xfb,0xf9,0x42,0x74,0xb6,0x21,0xf7,0xc2,0x5d,0xbf,0x91,0x2b,0xf5,0xb1,0x4e,0xe2
+.byte 0xd6,0x24,0x57,0x41,0x7a,0xcb,0xdd,0xb6,0x96,0x8b,0xfc,0x42,0x19,0x21,0x7f,0x41,0x32,0x3d,0x69,0x9b,0xee,0xda,0x97,0x45,0x26,0x71,0x0d,0x12,0xf0,0x20,0x7f,0x44,0x0f,0x4c,0xd2,0xd3,0x34,0x93,0xc7,0xe5,0xe7,0x83,0x62,0x13,0x0b,0x7d,0xc6,0xe4,0xd2,0xae,0x53,0x2e,0xd1,0x18,0x81,0xd0,0x81,0xf6,0xc0,0x98,0xaf,0x1d,0xb2,0x8a
+.byte 0xcb,0xd3,0xde,0x1d,0x53,0x71,0x92,0x0e,0x4b,0x8c,0x7c,0x8e,0x65,0xf6,0xe2,0xc2,0x5a,0x4f,0x8c,0x59,0x0f,0x35,0x5e,0xe4,0x43,0x50,0xab,0xb7,0xdd,0xfc,0x66,0xf9,0xb1,0x9b,0x6b,0x1b,0xaf,0x2e,0x85,0xe6,0x3e,0x4c,0xa2,0xd4,0x55,0x47,0xb9,0x66,0x66,0x7b,0xa3,0xb2,0xd5,0x8a,0x8e,0x88,0x0e,0xfb,0x4e,0xad,0xf4,0x39,0xd2,0xd6
+.byte 0x39,0xef,0xe0,0xee,0x0f,0xf3,0x94,0x47,0xa7,0x32,0x24,0x9a,0xb0,0x82,0x08,0x67,0x00,0x3f,0xe6,0x95,0x76,0x84,0x0a,0x5c,0xb7,0x74,0xc1,0x64,0x5e,0x7c,0xba,0x0b,0x2e,0x6f,0x26,0xc3,0x20,0x2e,0x95,0xc1,0xf0,0x8c,0x55,0x4a,0x45,0x26,0xe6,0xf3,0x55,0x78,0xbd,0xd4,0xdb,0x07,0xbd,0xff,0x61,0x51,0xde,0x7f,0xdb,0x56,0x73,0x6b
+.byte 0x9c,0xa4,0xb0,0x72,0xa7,0xd0,0x93,0x4d,0x1d,0x3a,0x92,0x78,0xde,0x77,0x65,0xe8,0x07,0x41,0x92,0xc1,0xbb,0x69,0x79,0x20,0x43,0xab,0x21,0x2e,0x6d,0xdf,0x43,0xeb,0x73,0x49,0x12,0x1f,0x53,0x75,0x01,0xed,0xce,0xf4,0x05,0x05,0x2b,0xc7,0x2a,0x65,0x29,0xe8,0xcf,0x5b,0xf0,0xc1,0x5b,0xd8,0xa8,0xac,0xbb,0xe3,0xac,0x29,0x0a,0x90
+.byte 0x79,0x2f,0x5b,0x92,0x14,0xf2,0xc7,0x2d,0xe5,0x33,0x6e,0x5e,0x31,0xe2,0xab,0xdf,0x21,0x71,0x4a,0x44,0xaa,0xc6,0xe9,0xb8,0x51,0x1d,0xe2,0xf3,0x07,0x19,0xa1,0x98,0x9e,0x8a,0xed,0xe4,0x9e,0x52,0x16,0x1f,0x2f,0xd3,0x4c,0x97,0x1e,0x38,0x49,0x84,0x2e,0x45,0xb5,0x4b,0x4f,0xfe,0xdb,0x25,0x3e,0xa9,0x6e,0x7d,0x60,0x3b,0xa7,0x7e
+.byte 0xda,0x32,0x1a,0xd6,0x04,0xbe,0x0c,0x92,0x4e,0x6d,0x85,0xf9,0x9c,0x26,0x9a,0x88,0xf5,0x50,0x95,0x7b,0x9e,0x43,0x07,0x97,0xd4,0xdb,0xa0,0x6e,0x30,0x5d,0x44,0xa9,0x41,0xc2,0xdf,0xdf,0x37,0x35,0xc4,0x85,0x83,0x08,0xea,0x22,0xfa,0xae,0xdd,0x95,0xe5,0x35,0x47,0x23,0x86,0x27,0xfa,0x71,0x88,0xa0,0x12,0x00,0xe0,0xa7,0xd1,0x1b
+.byte 0x5e,0x78,0x6f,0x38,0x30,0xa9,0x80,0x75,0xd7,0x61,0xcc,0xfd,0x33,0xd2,0xb8,0xf8,0xd7,0x12,0xf5,0x03,0xf9,0x53,0x6d,0x3b,0x6b,0xff,0x24,0x0a,0x3b,0xe8,0x2a,0xe9,0xae,0xb7,0xc3,0xe3,0x0f,0x26,0x71,0x55,0xc5,0x03,0x60,0xf4,0x47,0x01,0xa3,0x69,0xb2,0x98,0x75,0x5b,0x90,0x4a,0xf9,0x61,0x49,0xd6,0xc4,0xdb,0xab,0x04,0x0c,0x47
+.byte 0x1e,0x31,0x75,0xfa,0xa2,0xc5,0xfa,0x66,0x0c,0x4a,0x93,0xa0,0xea,0x56,0xf9,0x49,0xd4,0xc7,0xcc,0x2c,0xe5,0xdc,0xab,0x61,0x8e,0x0c,0xf3,0x2f,0xb5,0x9f,0x36,0xa1,0x05,0xab,0xb6,0xbc,0x4a,0x6d,0x97,0xe7,0x19,0xe5,0xfe,0x92,0xa5,0x94,0xd5,0xc0,0xf5,0x31,0xf6,0x8a,0xf7,0x24,0x62,0xdd,0x56,0x12,0x84,0xf5,0xc6,0xa0,0x37,0xa3
+.byte 0xfc,0xbd,0x16,0x2a,0xa6,0x36,0x8e,0xd4,0x29,0xfe,0xc4,0xc5,0xcb,0xdd,0xdd,0x8b,0x7e,0xa6,0x9d,0x08,0x28,0x10,0x6b,0xff,0xd7,0x79,0x48,0x35,0x2f,0xbe,0x34,0x9a,0xfb,0xd0,0x7d,0x5c,0xad,0xf0,0xde,0x96,0xea,0x2d,0xc5,0x8b,0xa9,0x7a,0x8b,0xbe,0x97,0xde,0x7a,0x95,0xc7,0x95,0xd9,0x86,0xde,0x3c,0x8d,0x15,0x8e,0x45,0x69,0x27
+.byte 0xd4,0x27,0xa8,0xe3,0xa9,0x1e,0xa0,0x95,0x74,0xf1,0x8b,0xbe,0x3b,0xff,0xa3,0xf6,0x23,0x78,0xd9,0xbd,0xc2,0x44,0x3a,0x93,0xb5,0xa6,0x87,0x7c,0x65,0xd1,0xd8,0xd5,0x43,0x2a,0xb2,0xc8,0x65,0x86,0x83,0x06,0xf7,0x33,0x88,0x3b,0xc0,0x2c,0xb3,0x3b,0x23,0xa3,0x67,0x15,0x49,0x09,0x02,0xbb,0x11,0x08,0xe3,0x37,0x9a,0x9b,0x67,0x8e
+.byte 0x63,0xc3,0x8b,0xff,0x21,0xa6,0xbe,0x3b,0xa6,0x57,0xc1,0x56,0x2a,0x02,0xdb,0x24,0x50,0x4a,0x4f,0x60,0x49,0x03,0xcf,0xba,0x55,0x1c,0x64,0xfe,0x0c,0x58,0xb4,0xb0,0x89,0x91,0xd5,0xbc,0xbc,0x85,0xe6,0x96,0x32,0x89,0x1f,0xa0,0x48,0xd1,0x6e,0xa7,0x03,0x86,0x8a,0xf2,0x5f,0xc3,0x5a,0x57,0x8a,0xa3,0x4a,0x61,0x90,0x18,0xb2,0x0d
+.byte 0xc7,0x94,0xb9,0x3e,0x40,0x8b,0x1d,0x54,0xd0,0x4c,0xe7,0x2a,0xd5,0x85,0xa7,0x93,0x07,0x10,0x58,0xc4,0x8a,0x18,0x0a,0x49,0x30,0x87,0x93,0x0e,0xcf,0xc7,0x95,0x9f,0xd1,0x3f,0x9b,0x06,0xe3,0xf9,0x4f,0x16,0x58,0x04,0xb4,0xf0,0xf0,0xf3,0x3a,0xab,0x4a,0x35,0xf1,0xec,0x23,0x15,0x0c,0x24,0xba,0x90,0xdc,0xd1,0xfe,0x47,0xca,0xb2
+.byte 0x95,0x33,0x30,0x45,0xba,0x18,0x15,0xec,0x58,0x36,0x02,0xdf,0x28,0x09,0x74,0x4b,0x09,0x01,0x24,0x0f,0x00,0x7b,0xb3,0x65,0x45,0x42,0x63,0x15,0xf8,0x50,0x8b,0x4f,0x28,0x73,0x03,0x3a,0x31,0xe5,0x0d,0x56,0x8f,0x6b,0x4b,0x9e,0xda,0x71,0xee,0x68,0xba,0x85,0x81,0x3d,0x5d,0x74,0x5e,0xda,0x60,0x87,0xf4,0x5a,0x38,0xad,0xc5,0x3f
+.byte 0xb5,0x15,0x02,0x59,0x1c,0xd2,0x93,0x66,0x54,0x65,0xf1,0xe7,0x9b,0xf0,0x30,0x2d,0x9e,0xba,0xc5,0x86,0xf4,0xf6,0xc7,0x92,0x73,0x12,0x3b,0x28,0x21,0x1b,0x3d,0x84,0xc0,0x1a,0x7d,0x35,0x8b,0xd4,0x35,0x39,0x35,0xa6,0x51,0xd9,0x19,0x8b,0x92,0xa3,0xea,0x8c,0x7e,0x25,0x05,0x1f,0x1d,0x8f,0x4d,0xba,0xdf,0x20,0x8c,0x8d,0xe2,0xac
+.byte 0xdd,0x3d,0xf1,0x04,0x3f,0x77,0x4b,0x8f,0x39,0x7d,0x01,0xb7,0x71,0x4b,0x7b,0xe1,0x6f,0xd4,0x28,0x1a,0x57,0x96,0x4d,0xe2,0x84,0xf6,0x64,0x10,0xbb,0x0f,0xbc,0xe0,0x19,0xed,0x92,0x9e,0x60,0x15,0x78,0xd1,0x30,0xc0,0x53,0x4b,0x94,0xca,0x4b,0x5a,0x44,0x8b,0xa9,0xda,0x2f,0x08,0x70,0x94,0xe4,0x54,0xe1,0x28,0x6e,0xdd,0x34,0x56
+.byte 0x54,0xb0,0xd4,0x87,0x00,0x72,0x1e,0x46,0x10,0x3a,0x27,0x5d,0xc6,0xb5,0x72,0x20,0x2b,0xbe,0x17,0x01,0xbb,0x04,0x11,0x16,0x7d,0xbf,0x91,0xd3,0x7b,0x44,0x58,0x13,0x2a,0x9c,0xda,0x9d,0x26,0x46,0xf5,0x5f,0x51,0xef,0x6c,0xf6,0x36,0xdb,0xb7,0x21,0xde,0xdb,0x87,0xa0,0xd8,0x60,0x24,0x86,0x6d,0x64,0x85,0x9e,0x94,0xd9,0x21,0x0d
+.byte 0xed,0xda,0x33,0xea,0x3c,0xdf,0x74,0xe3,0xa5,0xc7,0xc7,0x9e,0xe5,0xb1,0x29,0xdf,0xfa,0x20,0x25,0xcd,0x13,0x08,0xee,0xe6,0xba,0xf1,0x62,0x39,0xcf,0xe3,0x29,0xb8,0xaa,0x65,0x43,0x8a,0x48,0xb5,0xb5,0x70,0x35,0x66,0x42,0xf4,0x32,0x70,0x0b,0x0c,0xa7,0x46,0x79,0xdf,0xb2,0x80,0x13,0x72,0x7a,0xeb,0xf9,0x52,0xcb,0xb8,0x9f,0x4b
+.byte 0x4f,0x29,0x2b,0xb3,0x94,0x02,0x0a,0xe1,0x20,0xe5,0x91,0x15,0x6a,0xa1,0x0c,0x71,0x96,0x77,0x01,0x80,0xf7,0x51,0x0b,0xaf,0x54,0x9b,0x3c,0x7b,0x91,0xd2,0xbd,0xaf,0x13,0xa5,0x32,0x17,0x7c,0xca,0xd0,0x22,0xd5,0xe5,0x83,0x44,0x24,0x5c,0xcc,0x24,0x31,0xcd,0x81,0x4e,0x96,0xcd,0x60,0x9f,0x7a,0xe7,0x2e,0x89,0x16,0xd5,0x66,0x6b
+.byte 0xac,0x31,0x11,0x7c,0x76,0xc6,0xde,0xbe,0x46,0x55,0x20,0xdf,0x9d,0x2c,0x33,0xa5,0x80,0x76,0xb1,0xc9,0x1c,0x84,0x17,0x4d,0x15,0xe6,0x6d,0xce,0xed,0xea,0xc7,0xe6,0xff,0x01,0x10,0x60,0x26,0xf7,0x63,0x5f,0x91,0x89,0x7e,0xc1,0x7c,0x76,0x67,0x7b,0x7e,0xfa,0x28,0xa0,0xa7,0x82,0x1b,0x28,0x82,0x6a,0x4f,0x78,0x61,0x48,0xbf,0x13
+.byte 0x0b,0x71,0x0c,0xad,0xee,0xd7,0xf8,0xcc,0x0f,0x77,0x74,0x7d,0x2b,0x8a,0x09,0xd8,0x47,0xa0,0xfc,0x45,0x40,0x24,0xf3,0xce,0xdb,0x81,0xa1,0x50,0x9e,0x0a,0xd0,0x58,0xf7,0xaf,0xf1,0x09,0x12,0xa8,0x24,0xb2,0x34,0x99,0x67,0x17,0x53,0x1f,0x9d,0x09,0x7b,0xcb,0x83,0x6e,0x6a,0x0b,0xbf,0x8f,0x6e,0x3d,0xdb,0x29,0xe5,0xd0,0x06,0xdb
+.byte 0xb8,0xf2,0xf3,0x43,0x4e,0xa7,0xf3,0x73,0x93,0xe8,0xab,0x2f,0xc8,0x75,0xce,0x62,0xda,0x74,0x39,0x57,0xe4,0xe4,0xb1,0x41,0x8f,0x9d,0xda,0x43,0xb4,0x2c,0x4b,0xd5,0x1c,0x10,0xf0,0x29,0x6b,0x94,0x15,0x04,0x3c,0xd3,0x45,0x73,0x29,0xb3,0x60,0x87,0x93,0xdb,0xbf,0x60,0x4e,0xdf,0x4d,0xbb,0xde,0xb2,0x57,0x67,0x14,0x0d,0x0b,0x60
+.byte 0x63,0xd5,0xc6,0x81,0x82,0xd6,0x0c,0xe6,0x4c,0x43,0x13,0x02,0x74,0x56,0x20,0x6b,0x21,0x28,0xe6,0xe2,0x0b,0xc1,0x7a,0xc3,0x08,0x60,0x82,0xe0,0x4f,0xbf,0x1e,0x3f,0xf0,0xa9,0xb2,0x2e,0x0c,0xbf,0xd6,0x03,0x1d,0x0d,0xd6,0x1c,0x36,0xb5,0xb2,0x14,0x56,0x21,0xc2,0xe0,0x1e,0xff,0xee,0x8a,0x70,0xae,0x3f,0x1e,0xe5,0xac,0x05,0x46
+.byte 0x6b,0x81,0x32,0xce,0x50,0xbb,0x82,0x66,0x32,0x93,0x46,0xf7,0xee,0x77,0x1c,0x9a,0x2f,0x31,0x60,0xa2,0x09,0x7c,0x14,0xd9,0x81,0xe9,0x19,0x27,0x31,0x5e,0xa0,0x98,0x71,0x42,0x2f,0x30,0x71,0xd6,0x31,0x94,0xe0,0x61,0xed,0x50,0x66,0xfa,0xba,0x12,0x5e,0xc6,0xc8,0x67,0xe5,0x8e,0xfd,0x34,0xa9,0xeb,0xde,0x25,0x43,0xbf,0xe7,0xb5
+.byte 0x16,0xf5,0x62,0x66,0x5d,0x0b,0x13,0x9a,0xd4,0x8c,0x2b,0x8f,0xe6,0x91,0x33,0xcb,0xa0,0x70,0x48,0x3e,0x22,0x7d,0xe4,0xf3,0x75,0xc9,0x49,0x82,0x50,0xc9,0x90,0x04,0x32,0xab,0x99,0x6e,0xf1,0xf0,0x0b,0x60,0x80,0x35,0x25,0x45,0x88,0xe9,0x82,0x06,0xe1,0xbb,0x85,0x11,0x40,0xf8,0x0e,0xbd,0x19,0x7a,0xdd,0x78,0xf9,0xc2,0x46,0xe4
+.byte 0xb5,0x27,0xfb,0xb6,0xba,0xbc,0x7d,0xb8,0x27,0xe7,0xbf,0xfe,0x8e,0xfe,0x7e,0x83,0x63,0x43,0x92,0x26,0xf0,0xbb,0xde,0xb6,0x93,0x4f,0x55,0x0c,0x07,0x99,0x3c,0x98,0xa1,0x8c,0x73,0xc1,0x4c,0x9a,0x09,0xa8,0xea,0x16,0x0b,0x49,0x2a,0x43,0xee,0x90,0x61,0x6f,0x09,0x1b,0xc3,0x2d,0x62,0x4b,0xfc,0x90,0xa1,0x8e,0x84,0x2e,0x90,0x8d
+.byte 0x5f,0x80,0xff,0x6a,0x3c,0x61,0x0f,0xf2,0xac,0x70,0x20,0xc1,0xf2,0x85,0xcf,0x94,0xc8,0x94,0xe7,0xa0,0x04,0xdf,0xaf,0xef,0x26,0xd2,0xbc,0x07,0x70,0xc1,0x48,0xd6,0x87,0xd6,0xbe,0xea,0x95,0x6a,0xce,0xa2,0x48,0xac,0x46,0x46,0xb1,0x74,0x70,0x96,0x6c,0x26,0x58,0x75,0x9d,0x84,0xd7,0xd9,0x17,0x9a,0x46,0xe9,0xd7,0x3d,0xde,0xfd
+.byte 0x7e,0xf4,0xd8,0x7e,0xf8,0x8f,0x1c,0xb5,0xfb,0xe9,0xc4,0xca,0xba,0x52,0x5f,0x17,0xee,0x75,0x7d,0x1d,0x50,0x16,0x9f,0x16,0x1e,0x00,0x8b,0xc1,0x2f,0xab,0x73,0x65,0x88,0x7b,0x80,0xa6,0x71,0xb7,0xfb,0xb0,0xda,0xd1,0x96,0x18,0x5c,0x48,0x6e,0x18,0x45,0x59,0x45,0xef,0x5c,0x65,0x35,0x99,0x5e,0xb9,0xd4,0x1a,0x07,0x7d,0x1e,0xa6
+.byte 0x69,0x42,0x9d,0xfa,0xec,0x02,0xdc,0xc4,0x19,0x6b,0x9c,0xb1,0x5e,0xa3,0xb4,0x6d,0xb4,0xa6,0x25,0xa8,0xe4,0x3f,0x3d,0x6e,0x2c,0x95,0xf7,0xcd,0xa5,0x4e,0x32,0xca,0x7e,0xe0,0x7b,0x11,0xf9,0x0a,0xe1,0x61,0x41,0x60,0xec,0xb3,0xb1,0x92,0x89,0x33,0x17,0xe9,0xaf,0x70,0x7f,0x1c,0x07,0xb5,0x24,0x3a,0x37,0x84,0x38,0xf5,0xb6,0x11
+.byte 0xfc,0x0c,0x12,0xc1,0xfc,0xa9,0x82,0x67,0x4d,0x17,0xe8,0xea,0xd0,0x62,0x17,0xb2,0x9c,0x59,0x01,0x87,0xfb,0x54,0x8e,0xa7,0xa5,0x85,0xa9,0x8a,0xec,0xfe,0x29,0xc0,0x73,0xc6,0xa0,0xbf,0x66,0x9a,0xc5,0xf8,0xee,0xa4,0xcb,0x09,0x44,0x74,0xfe,0x32,0xf5,0x42,0xea,0xf0,0xa6,0xec,0x74,0xea,0x14,0x5c,0x43,0x51,0xfa,0x3a,0x48,0x1e
+.byte 0xa0,0x2e,0x59,0x2e,0xdb,0x3a,0x19,0xfe,0x1f,0x95,0x25,0xee,0x27,0x2b,0x99,0xb4,0xe1,0xd0,0xe6,0x33,0x91,0xa1,0xaf,0x30,0xa0,0x89,0x00,0x3c,0x13,0x31,0x18,0x70,0x90,0x42,0x55,0x0a,0xc9,0xc5,0x0c,0x43,0xa5,0xee,0xd6,0x90,0x07,0xae,0xc4,0x8c,0xdc,0xe4,0x07,0xbb,0x61,0x70,0xd1,0x10,0xe4,0x68,0x96,0x70,0x78,0xab,0xe9,0x3a
+.byte 0x6e,0xc7,0x75,0x93,0xa0,0xba,0xff,0x6a,0x2d,0x57,0xaa,0x93,0x09,0xc3,0x6b,0x81,0xf3,0xde,0xc2,0xee,0xac,0x86,0x0a,0xfb,0xad,0xdb,0x6f,0x2a,0xa0,0x15,0x7b,0x96,0x77,0x38,0xf8,0x86,0x51,0x33,0x7a,0x6f,0x1c,0xf8,0xd5,0x15,0xcd,0x76,0x7f,0x37,0x68,0x82,0xdf,0xab,0xc3,0xdb,0xbe,0xeb,0x2b,0xa8,0x34,0x72,0x20,0x34,0xfb,0x12
+.byte 0x64,0x17,0x05,0x64,0xc0,0xa1,0xca,0xd3,0xac,0x27,0xc2,0x68,0x28,0x40,0x42,0xe2,0x0a,0xdd,0xd7,0xd6,0xf6,0x92,0x95,0x3c,0x10,0x17,0x4e,0xef,0x75,0xae,0x98,0x2d,0x10,0xc8,0xa8,0xac,0x15,0xf7,0x5b,0x81,0xc1,0xdf,0x5e,0xbe,0x88,0x49,0xe3,0xd1,0x88,0x1c,0xcb,0xce,0x20,0x01,0x12,0x60,0x57,0x0b,0xf6,0x32,0x57,0xaf,0x59,0xef
+.byte 0xc9,0xe7,0xbf,0x62,0xf3,0xb6,0xe6,0x5c,0xee,0x36,0x7e,0x11,0x90,0xd1,0xeb,0xfa,0x62,0x0b,0xc6,0xf3,0x1a,0xd5,0x8b,0x95,0xec,0xb4,0x38,0xfe,0x45,0xb0,0xb5,0xff,0x84,0x0a,0x27,0x3a,0xa2,0x5a,0x2a,0xc9,0xa4,0xc0,0x11,0xc6,0x61,0x13,0xb7,0x53,0xa3,0x47,0x45,0x6d,0xc6,0xa9,0x00,0xd1,0x40,0xf4,0x77,0xac,0xb3,0xd3,0x26,0x99
+.byte 0xf1,0x36,0x59,0x28,0xb4,0xd0,0xdd,0x0e,0xed,0x53,0x33,0x45,0x71,0x9c,0x5c,0x11,0x27,0x2c,0x2f,0x10,0x9e,0x5b,0x8a,0x5b,0xc5,0x1f,0x36,0xc9,0x2a,0xba,0xc7,0xa5,0x31,0xd7,0x9f,0x2b,0x0a,0x09,0xcb,0x7c,0x4f,0xa2,0xdc,0xc5,0x64,0x0d,0xe6,0xfe,0xb0,0x9d,0x3b,0xf0,0xa7,0x19,0x8c,0x84,0x21,0x6b,0x9e,0x1c,0xb5,0x7b,0x66,0x77
+.byte 0xd0,0x85,0xb4,0x22,0x93,0x6e,0x84,0x29,0x9b,0x60,0x90,0x37,0x9d,0x8c,0x94,0x95,0x95,0x3b,0xf1,0x2d,0x56,0x5b,0x53,0x60,0x2d,0xe5,0x7f,0x80,0x71,0x56,0xa7,0x6e,0x66,0x76,0x1f,0xaa,0x0d,0xba,0xfb,0x0e,0xcf,0x20,0x68,0x74,0x2b,0x99,0x13,0xe1,0xa8,0x33,0xc9,0xf6,0xbc,0xd3,0xf4,0x46,0x01,0x02,0x85,0x27,0xf4,0x20,0x97,0xa3
+.byte 0xba,0xbc,0x47,0x30,0x48,0xed,0x60,0xe6,0xca,0xbf,0x76,0x8c,0x2c,0x6a,0x43,0x32,0xfd,0x90,0x04,0x95,0xc2,0x42,0xcb,0xca,0xc4,0x33,0xe1,0xd3,0x23,0x92,0xa1,0xde,0x09,0x38,0xce,0x00,0x93,0xb3,0xed,0x82,0x8e,0xfb,0xce,0x4c,0x9a,0x10,0x6e,0xce,0x4a,0x37,0x05,0x75,0x37,0x58,0xc3,0x8e,0x57,0x50,0xa0,0x7d,0x80,0x2d,0x51,0xea
+.byte 0x08,0xcd,0x1b,0xd2,0x81,0x85,0x19,0xc1,0xe8,0xce,0x31,0x18,0xcf,0x54,0x37,0x96,0x77,0x3d,0x64,0xfb,0xc2,0xa9,0xdb,0xb8,0x37,0x03,0x83,0x34,0x3c,0x25,0x6a,0x22,0x33,0xfa,0x27,0x70,0xc7,0x0a,0x27,0x12,0x1e,0xb3,0xd0,0x59,0x6f,0xa3,0xc5,0x73,0x95,0x4c,0x1f,0xf1,0x3c,0xb3,0xc2,0xa2,0xc6,0x45,0x17,0x53,0xa8,0xfc,0x00,0xff
+.byte 0x77,0x40,0x28,0xd2,0x53,0x90,0x92,0xe9,0x86,0x6c,0xa5,0x40,0xce,0xbc,0x79,0x6f,0x8f,0x12,0xef,0x1b,0x38,0x1f,0xb3,0x24,0xf0,0x75,0x17,0x20,0x9e,0x03,0x9c,0x2b,0x51,0x57,0x93,0x44,0xce,0x74,0xc9,0x12,0xe7,0xcb,0x2f,0x5e,0x1b,0x95,0xf2,0x4d,0x2e,0x51,0x8d,0x52,0xd5,0x21,0xe3,0x1b,0x33,0xe7,0xf2,0x18,0x61,0xa2,0x53,0xdb
+.byte 0x73,0xaa,0x6a,0x6c,0xf9,0xf4,0xef,0x3d,0x40,0xa3,0x00,0x80,0x82,0xed,0xe6,0x66,0xd1,0xd6,0xe9,0x93,0xd8,0x92,0xfa,0xdf,0xf9,0x9c,0x7a,0xfb,0x2b,0xc7,0xa7,0x73,0x67,0x2b,0xed,0x76,0xb1,0x52,0xaa,0xcf,0x34,0x84,0xa1,0x6d,0x56,0x85,0xef,0xcb,0xbc,0xa3,0xc6,0xf3,0x5a,0x88,0x04,0xd5,0xd8,0xf1,0x7b,0xf8,0x11,0x6f,0xa0,0x44
+.byte 0xa5,0x0f,0x76,0xed,0xd7,0x98,0xe3,0xda,0xb8,0x1b,0xc7,0xe6,0x89,0x08,0x19,0x1f,0xf8,0xe3,0x32,0x32,0xa5,0x3c,0x71,0x9f,0x11,0xde,0x50,0x29,0xb0,0x54,0x7e,0x3b,0x5e,0xeb,0xf7,0xab,0xa8,0xa0,0x35,0x96,0xc7,0xc5,0xea,0x60,0xc0,0x37,0xca,0x61,0x55,0x96,0xac,0xb4,0xd0,0x29,0x9a,0x1a,0x3f,0x9e,0xf5,0xf5,0x3d,0xed,0xc5,0x7c
+.byte 0x2c,0x9d,0x67,0xf8,0x4d,0x82,0x6e,0x2a,0x9a,0xfc,0x5f,0xdc,0x02,0xb0,0x3d,0xa5,0x1c,0x08,0x5d,0x4a,0xaa,0xd0,0x38,0xfb,0xbc,0xbb,0x7f,0x37,0xfb,0xec,0xc0,0x62,0x79,0xaa,0xde,0xfd,0x23,0x9c,0x4c,0x4a,0xe1,0x48,0x40,0x36,0xc0,0x0a,0x6f,0x43,0xb7,0xad,0x4c,0xf6,0x56,0xb5,0x44,0xf4,0x72,0xcd,0x13,0x10,0xea,0x0d,0x24,0xc1
+.byte 0xa9,0x36,0x3b,0x36,0xf2,0x6e,0xf9,0x0a,0x67,0xcd,0x02,0x67,0xb3,0x5c,0x63,0x3a,0x7c,0xc1,0x3b,0xf2,0x1d,0x3d,0xf1,0xff,0xbf,0xf7,0x97,0x9f,0x30,0x1f,0xaa,0xd8,0xdb,0x53,0x9b,0x0a,0xbd,0x38,0xd8,0xb6,0xf1,0x4a,0x78,0x1a,0xc2,0x46,0xd2,0x0c,0xa8,0xcd,0x7b,0x39,0xc7,0x42,0x55,0xc8,0x3e,0x02,0x1d,0xf4,0xad,0x55,0x01,0x6a
+.byte 0x11,0x2d,0xfa,0x67,0x48,0xae,0x45,0x31,0x9b,0x09,0x7d,0xd9,0xdd,0xaf,0x5c,0xd5,0x40,0x51,0x2a,0xa1,0x0f,0xb3,0x6e,0xc2,0x94,0xfe,0xde,0x70,0xaf,0x6c,0xea,0x5f,0x7d,0x3c,0x72,0x85,0x86,0x24,0x20,0x0a,0x7a,0xe7,0x69,0x32,0x66,0x7d,0x34,0x13,0x60,0x62,0xc7,0x68,0x32,0xde,0x34,0x30,0x36,0xc8,0x8e,0xb7,0x13,0x66,0xf1,0xce
+.byte 0x5f,0x7a,0x3a,0xfe,0x62,0xd6,0x72,0xb6,0x1b,0x80,0x43,0x8a,0x3e,0x13,0x15,0xe4,0x1c,0x7b,0x08,0x70,0x0b,0x6e,0xb3,0xfe,0x07,0x91,0x23,0x21,0x57,0x48,0xc6,0xa9,0xa3,0xa8,0xc7,0x19,0x89,0x8a,0x49,0x12,0x25,0x88,0xd2,0x11,0xa5,0xa8,0x9e,0x0e,0xa7,0x71,0xfe,0xaf,0x88,0xee,0xa7,0x1c,0x3b,0x27,0x27,0x7e,0x79,0x92,0xed,0x77
+.byte 0x74,0x65,0xbd,0x46,0x41,0x25,0xd9,0x8b,0x21,0x73,0x9f,0xaa,0x35,0xa0,0x22,0xb3,0xc8,0x71,0x28,0x72,0xd2,0xcb,0xf4,0x2a,0x06,0x0a,0x63,0x96,0x55,0x2e,0x83,0x0b,0xe8,0x07,0x99,0x9d,0x59,0xde,0xde,0x62,0xbd,0xb4,0x3e,0x70,0x15,0xed,0x95,0xa8,0x2f,0xb7,0xa2,0xb6,0x65,0x56,0x9d,0xe5,0x81,0xa0,0x05,0x5b,0xce,0x00,0xd4,0xb9
+.byte 0x28,0x5a,0xc1,0x9a,0x74,0xc6,0xd7,0x27,0xdd,0x7c,0xbe,0xe8,0x0d,0x47,0xfc,0x81,0x05,0x6b,0x4f,0x68,0xc7,0xcc,0x5d,0xd5,0x66,0x83,0x34,0x72,0x35,0xab,0x39,0x64,0x19,0x67,0xbd,0xff,0x15,0x44,0x20,0x18,0x2a,0xaf,0xbc,0x58,0x94,0xdb,0x18,0x50,0x55,0x11,0x6a,0xc4,0x1d,0xee,0xe2,0xe0,0x75,0x73,0xf1,0xa1,0x83,0xf4,0xcb,0x40
+.byte 0x96,0xf4,0x77,0x45,0x61,0x8b,0x1a,0x8c,0x0c,0xfc,0xd2,0x7e,0x0b,0x1e,0x18,0xd2,0x95,0xa5,0x4c,0x5b,0xd6,0x9d,0x40,0x8b,0xc0,0x51,0xe8,0x2d,0xe5,0x16,0xbf,0xd7,0x98,0x8a,0xa0,0x46,0x1f,0xc4,0xe9,0x12,0x31,0x40,0xc5,0x2d,0x59,0xf8,0x9b,0x5f,0xe3,0x3a,0x10,0xdf,0xda,0x72,0x9e,0xab,0x13,0x7b,0x8f,0xc8,0x52,0x9f,0x58,0x45
+.byte 0x7a,0xe6,0x3a,0xbb,0xdd,0x1d,0xc7,0x3b,0xc4,0x26,0xdc,0x99,0x29,0xf2,0x74,0x16,0x84,0xe9,0x8a,0x86,0xc0,0x1e,0x49,0x96,0x2f,0x5c,0x2a,0x49,0x71,0x88,0xe6,0x82,0xb2,0x18,0x88,0xc1,0x86,0xcb,0x26,0x3c,0xa5,0x50,0x31,0x22,0x9a,0x8f,0x45,0x2b,0xde,0xf0,0x86,0x8e,0x13,0x86,0xc4,0x4a,0x9b,0x35,0x27,0x93,0x0b,0x13,0xc8,0xef
+.byte 0x96,0x74,0x97,0x85,0x09,0xc0,0xa0,0x32,0xfe,0xc3,0xe3,0x92,0x2e,0xe8,0x54,0xbd,0xc2,0x23,0xeb,0x4b,0x02,0xf5,0x5a,0x0b,0x0d,0x58,0x50,0x45,0xe7,0x01,0xd4,0x17,0x00,0xdb,0x0d,0xd4,0x2e,0xa0,0xde,0x38,0xf4,0xb1,0x1e,0xd0,0xf0,0xa3,0x6b,0x21,0x0c,0xbd,0xae,0x84,0x7e,0x42,0x36,0x4f,0x2e,0x46,0xae,0x23,0x91,0xb9,0x06,0xac
+.byte 0x86,0x7f,0x29,0xca,0xfb,0xe9,0xde,0xdb,0x90,0xfe,0x6f,0xbc,0xdb,0x3c,0x48,0x3d,0x6e,0x06,0x68,0x49,0xbb,0x43,0x8d,0x9d,0xc4,0x5f,0x45,0xcb,0x77,0x28,0xe0,0x35,0xd1,0xb4,0x25,0xb2,0x45,0x6d,0xb4,0x89,0x53,0x26,0x33,0x98,0x83,0x45,0x9d,0xf5,0xad,0xf9,0xa7,0x59,0xb6,0x6e,0xa8,0x25,0xa5,0xef,0xee,0xf6,0x6a,0xd5,0x6c,0x60
+.byte 0x9a,0xea,0x78,0x9e,0xe4,0xa2,0x29,0x0b,0x70,0xb3,0x6e,0x3a,0xfd,0x07,0xc7,0x7f,0x1b,0x07,0xc7,0xca,0x1b,0xb8,0x08,0xe1,0xc9,0x94,0xb2,0x62,0x7c,0x04,0x96,0xa6,0xda,0x65,0x28,0xfd,0xf9,0x70,0x22,0xb7,0x21,0xd3,0xa6,0x38,0x0f,0x1e,0x88,0x7e,0x73,0xec,0x04,0x99,0x8b,0x23,0x91,0x13,0xe6,0x4f,0x74,0x81,0xcc,0x1f,0xdd,0xaf
+.byte 0x58,0xc4,0x80,0x00,0x4d,0x1d,0xbe,0x84,0x7d,0xfe,0x85,0xe7,0x77,0x20,0x3c,0x65,0x4e,0x0e,0x2e,0x5d,0xc1,0xd9,0xcb,0xf7,0xbb,0xc8,0x8d,0xbf,0x16,0xa8,0x1e,0x63,0xf5,0x10,0x5e,0xa5,0x9c,0x63,0xb6,0x9a,0xeb,0x98,0xa8,0xb1,0x59,0x82,0x66,0x51,0xae,0x3c,0xfc,0xa8,0x11,0x92,0xf4,0x45,0x88,0x7c,0x03,0x6f,0xe6,0x87,0xe4,0xa8
+.byte 0x79,0xbf,0xb3,0x0d,0xd6,0x0b,0x8d,0xa3,0x16,0x2a,0xfb,0x79,0xb9,0xe7,0xdb,0xa7,0xdb,0x94,0xd3,0xe6,0x3a,0xdd,0xe9,0x5f,0x30,0x7d,0x68,0x90,0x35,0xfd,0x18,0x91,0x8e,0xc5,0x12,0xd6,0xf9,0x98,0xa0,0x5b,0xcd,0x81,0x76,0x84,0x08,0xd0,0xab,0x59,0x2d,0x3b,0x8a,0xf9,0xd9,0x95,0xde,0x8b,0xbb,0x92,0xef,0x35,0xc3,0x3e,0x46,0x73
+.byte 0xf3,0x3b,0x09,0xbf,0x22,0x2b,0x9c,0x0f,0x70,0x9a,0x16,0x0e,0x4b,0xa7,0x1a,0x96,0x98,0xb7,0x5a,0x40,0x06,0x81,0xf4,0xac,0xa6,0xe6,0xab,0xf2,0xda,0x87,0x18,0x61,0xcb,0xc1,0x67,0xbd,0x2f,0x6f,0x06,0x21,0xaf,0x73,0x98,0xe1,0x3f,0x7a,0x17,0x7f,0x44,0xcb,0x1d,0xdd,0x60,0xb3,0x2c,0x58,0x20,0x8a,0x04,0x74,0x56,0x9b,0x26,0x51
+.byte 0x61,0xb0,0x07,0x50,0x53,0x83,0x31,0x42,0x59,0xb3,0x33,0xfa,0xfe,0xbc,0xad,0x7f,0x99,0x9b,0x86,0xf1,0xaa,0x85,0xf1,0xbb,0xc0,0x0c,0x91,0x8d,0x1a,0x0f,0x8f,0x9f,0xfe,0x62,0x2b,0x35,0xae,0xcc,0x8c,0x09,0xe3,0x29,0x96,0xd1,0xbe,0x7f,0x25,0xd6,0x03,0xf0,0x4c,0x53,0xad,0x5b,0x56,0x66,0x68,0x9a,0xa3,0xc4,0x07,0x71,0xde,0x49
+.byte 0x82,0xbb,0xf7,0x9a,0x2b,0x96,0xcf,0x50,0xf6,0x00,0xf7,0x0b,0x27,0xdd,0xf5,0xf6,0xc5,0xc8,0xbd,0x2a,0xa2,0x06,0x2c,0x42,0x3f,0xa0,0xf8,0xcc,0x1d,0x64,0xcf,0xbc,0xb4,0xc4,0x63,0xde,0x6b,0xd3,0xb4,0x61,0xdf,0xbd,0x73,0x50,0x34,0xc3,0x20,0x45,0x06,0x73,0x9b,0xf0,0xfb,0xa6,0x2b,0xec,0x92,0x32,0xa9,0x1f,0x4f,0x1e,0x38,0x78
+.byte 0x2a,0xd2,0x7c,0x1d,0x89,0xf9,0x70,0xbc,0xef,0x09,0x77,0xd3,0x6a,0x56,0xa1,0x8b,0x4b,0x23,0x1b,0xb1,0x2f,0xec,0x84,0xe5,0x59,0xc5,0x20,0x23,0xbc,0x3f,0x0a,0x43,0x97,0x1c,0x5e,0xf7,0xee,0xfe,0x0b,0x2a,0x42,0x08,0x2a,0x39,0x91,0xce,0x8a,0x33,0x9f,0x63,0x77,0x6d,0xf6,0xf3,0x0e,0x1d,0xb3,0xfb,0xcf,0x2f,0x7f,0x95,0xc2,0x71
+.byte 0x1c,0xa0,0x0b,0xc6,0xb8,0xde,0x4d,0xd8,0xcc,0x4c,0x4f,0xaf,0x07,0x87,0x6d,0x3b,0xab,0x95,0xab,0xa1,0x6a,0x50,0x9f,0x7c,0x35,0xb6,0x65,0xdd,0xe3,0x06,0xe5,0xb3,0x42,0x5f,0x4d,0xe5,0x3e,0xfa,0x6c,0xdf,0x19,0x58,0xd1,0xf6,0xc6,0x94,0x1c,0xce,0x30,0x90,0xd3,0xeb,0xa3,0x7c,0xe5,0x3f,0x57,0x99,0x2e,0x22,0x0a,0x94,0x2f,0xfe
+.byte 0x39,0x16,0xe6,0xfa,0xd0,0xb5,0xf9,0xb4,0x88,0x61,0xa4,0xa8,0xc3,0xb8,0xb7,0x52,0xaf,0x90,0xc1,0xe0,0x19,0x78,0x04,0x2b,0x71,0x04,0x03,0x2f,0x63,0xbe,0x40,0xf5,0x82,0x3b,0x1b,0x6b,0xde,0x6d,0x1e,0x86,0x87,0x82,0xc3,0x31,0x97,0x20,0xdd,0xdd,0xce,0x61,0x64,0x99,0xf6,0xbe,0xbf,0xec,0x37,0x54,0x8b,0x92,0x29,0xda,0xc5,0x7b
+.byte 0x4d,0xc5,0xaf,0xb8,0x4e,0x4b,0x4a,0x2b,0x35,0x30,0xf5,0x19,0x9e,0x32,0xd8,0x2e,0xc1,0x19,0xfe,0xd1,0x61,0xb0,0xaa,0x05,0x58,0x15,0xd9,0x0e,0x4e,0xca,0x4e,0x10,0x83,0xe6,0xe6,0x57,0xe8,0x8d,0x13,0xb4,0x6f,0x85,0x59,0xf2,0x83,0xc8,0x37,0xaa,0xa2,0xe5,0xc8,0x77,0x06,0x82,0x21,0x5d,0x84,0x58,0x67,0x9b,0xcc,0x9c,0xfc,0x1b
+.byte 0x28,0x2f,0xac,0xc8,0x96,0x91,0x26,0x46,0x42,0x2b,0x68,0x57,0xb0,0x79,0x1e,0xb1,0x9b,0x92,0x2c,0xeb,0x67,0x00,0xd4,0x26,0x7d,0xca,0x45,0x97,0x55,0xea,0x2a,0x20,0x70,0x7c,0x20,0x14,0x38,0x40,0x3d,0x4f,0xf5,0x3a,0x1f,0x0a,0xe3,0x9a,0x48,0xcc,0xb2,0x7d,0xee,0x5b,0x48,0x90,0x0d,0x12,0x77,0xd8,0xd3,0xb6,0xd7,0x66,0x9e,0x48
+.byte 0xbb,0x92,0xc1,0x7c,0x4e,0x90,0x4d,0xd5,0x96,0x99,0xea,0x86,0x2d,0xb9,0x5a,0x50,0x05,0xc2,0x6b,0xa7,0x0c,0x43,0x44,0x22,0x09,0xb9,0xc0,0x56,0x47,0x5f,0xdf,0xaf,0x6b,0x91,0xe2,0xd7,0x45,0x77,0x17,0x7a,0x71,0x6d,0x27,0x93,0xe2,0xc6,0x10,0x2f,0xc8,0x3b,0x75,0x78,0x11,0xae,0x07,0xe6,0xba,0x64,0xd4,0x06,0xfa,0xf9,0x1d,0x74
+.byte 0x9e,0x4f,0x6d,0x02,0xfc,0x40,0x80,0x9a,0x2e,0xd4,0x15,0x32,0x15,0xe8,0x97,0x0a,0xd4,0x65,0x6a,0x87,0xd3,0x66,0x4b,0xb8,0x66,0x84,0x8e,0xb9,0x4b,0xa7,0xcf,0x58,0x13,0x66,0x3a,0x4e,0xa5,0x76,0x17,0x13,0x92,0x79,0x42,0x67,0x6d,0xb6,0x65,0xec,0xc8,0xb5,0x5f,0x17,0x2a,0x2d,0x4b,0x19,0xe9,0x00,0x6e,0x38,0xaf,0xe9,0x06,0xb6
+.byte 0xe8,0x99,0x69,0x8a,0x74,0xe7,0x7e,0x70,0x69,0x4b,0xbc,0xce,0x5d,0x61,0x94,0x1b,0x47,0x41,0x38,0x5f,0x2e,0xcf,0x2b,0xe1,0xcd,0xa3,0x98,0x71,0xf7,0x09,0x65,0xfe,0x5f,0x62,0x4b,0x9e,0x91,0x88,0x35,0xa2,0x66,0x02,0x1d,0xc9,0x93,0x0c,0x19,0x50,0x4b,0x95,0x71,0x79,0xdd,0x74,0xe1,0xda,0x5a,0xb7,0x38,0x70,0x61,0x18,0x3f,0x68
+.byte 0x08,0x34,0xd8,0xfe,0xbb,0xd1,0xbf,0x57,0xed,0xc2,0x52,0x6d,0x54,0x3e,0xcb,0x0c,0x32,0xc7,0x09,0xa9,0x31,0x10,0xe8,0xbd,0x70,0xe3,0x0e,0xe9,0x4f,0x7a,0xd6,0x42,0x45,0x2e,0x1b,0x3c,0x0d,0x15,0x6d,0xb4,0xad,0xe9,0xc5,0xa2,0x12,0x77,0x34,0x43,0x20,0x95,0xc1,0xb7,0x51,0x72,0xed,0x78,0xa0,0xae,0x3c,0xae,0xb4,0xd4,0xda,0x58
+.byte 0x83,0x62,0xa9,0xc6,0x01,0x3d,0x14,0x19,0x07,0x00,0x3c,0x82,0x16,0x7e,0x8a,0x91,0x78,0xa1,0x65,0x0b,0x5b,0x3a,0x40,0x72,0xe5,0xf0,0xd4,0x82,0x04,0xe4,0x01,0xf1,0x84,0x87,0x96,0x26,0x91,0x66,0x77,0xf7,0x59,0xd6,0xc2,0xca,0x29,0x3b,0x68,0x2a,0x27,0x99,0x64,0x86,0xc2,0x96,0xbf,0x11,0x3c,0xa8,0x0c,0xf7,0x86,0xb8,0xc1,0x40
+.byte 0x15,0x1a,0x84,0xe3,0x93,0x23,0x73,0xa9,0x8b,0xbd,0xb4,0x8a,0xe4,0xf1,0xa5,0x8f,0x56,0xa3,0xdc,0x77,0xbd,0x7d,0x15,0x74,0x2b,0x18,0x92,0x56,0x45,0xbc,0xaf,0xf2,0x55,0xce,0x9d,0xc2,0xab,0x39,0x90,0xec,0x78,0x3f,0xa5,0x14,0xeb,0x40,0x2f,0x01,0xca,0xeb,0xad,0x73,0x85,0xbc,0xe1,0x91,0xaa,0x77,0xa9,0x6c,0x02,0x66,0x6a,0x65
+.byte 0x63,0x6c,0x50,0x62,0x83,0x83,0xef,0x16,0x4f,0x21,0xfd,0x28,0x8e,0x52,0x66,0x5b,0x6f,0x8f,0xbe,0x8d,0x17,0xb9,0xd5,0x99,0xf7,0x39,0xd1,0xbc,0xa2,0x43,0xd7,0x0a,0x80,0xea,0x42,0xf8,0x38,0x53,0x95,0x07,0x6f,0xb7,0x7c,0xc1,0x16,0x88,0xc8,0xb7,0x59,0xde,0x76,0x51,0x2f,0x92,0xd0,0x40,0xfd,0xd9,0x2d,0xca,0x9e,0x8d,0x28,0xae
+.byte 0x48,0xc1,0x0a,0xe0,0x76,0x9c,0x02,0x0b,0xc5,0xd1,0xf9,0x83,0x90,0x86,0xa4,0xeb,0x5c,0x64,0x65,0xf8,0x98,0x38,0xc5,0xce,0xef,0x6f,0xc3,0x88,0xb6,0x2f,0x8a,0x40,0x55,0x52,0x47,0x06,0x75,0x16,0x46,0x9c,0xff,0x3c,0x68,0x97,0xc3,0xfb,0x10,0x11,0x7b,0xba,0x04,0xcc,0xad,0xba,0xcf,0xf0,0xae,0xba,0xe6,0x59,0x9c,0xf5,0x27,0xeb
+.byte 0xdd,0x5c,0x86,0x25,0xa1,0xb6,0xb8,0x1c,0x94,0x98,0xa5,0x79,0x82,0x4e,0xdf,0x09,0x3f,0x2f,0x8a,0x4e,0x1b,0x5a,0xab,0xd4,0xe6,0x21,0xb3,0x02,0x19,0x39,0xa9,0x2e,0x0e,0xae,0x86,0x30,0xc7,0xa0,0x00,0xed,0x72,0xdc,0x71,0x77,0x42,0x76,0x54,0x68,0xb2,0x8d,0x5d,0xc3,0x5c,0x86,0xf8,0xb1,0x6c,0x67,0xdf,0x24,0x40,0x6a,0x2b,0x1d
+.byte 0xbc,0x0d,0x25,0x7d,0x9e,0x1c,0xbd,0x18,0x85,0xda,0x7a,0x86,0x5e,0xed,0x10,0x80,0x83,0xa6,0xef,0x1e,0x93,0xac,0xce,0xe6,0x32,0x35,0xdf,0xb8,0xc7,0x9b,0xf0,0x0f,0x9d,0x37,0xbd,0xd9,0x58,0x33,0x19,0xa1,0x23,0x51,0x5f,0xa7,0x5a,0x99,0x7e,0x2a,0xfd,0x85,0x3c,0x26,0xad,0xcc,0x7e,0x07,0x32,0x7b,0x24,0x5a,0x6b,0x4b,0x71,0x4e
+.byte 0xca,0x8b,0xc4,0x03,0x26,0x76,0x02,0x68,0x0d,0xa1,0x09,0xe0,0x2e,0xa4,0x82,0x88,0x05,0x5a,0xc4,0xcb,0x31,0x9d,0x56,0xda,0x0d,0x00,0x04,0xbc,0x07,0xca,0x1f,0xdf,0x9e,0x44,0xed,0x36,0xbd,0xa0,0x22,0xff,0x78,0xd1,0xcb,0x62,0xe0,0x0d,0x2e,0xdc,0x2e,0x36,0x28,0x8e,0xd3,0xa9,0xe0,0x38,0xd4,0xc5,0x2b,0xee,0xaf,0xa4,0x08,0x7d
+.byte 0xed,0x2c,0x8a,0xf5,0x86,0x5e,0xed,0x2a,0x0d,0xbf,0xe6,0xfb,0x6f,0xc4,0x02,0x75,0x36,0xe5,0x7b,0xe9,0x4a,0xb3,0xf1,0xf4,0x86,0x6c,0x9a,0x6e,0xaa,0x7a,0xbe,0x4b,0xd6,0xf2,0x6b,0xcb,0x78,0x6f,0xf9,0x42,0x1a,0x19,0x7b,0x7e,0xba,0x59,0x02,0x8b,0xe3,0x5c,0x44,0xa4,0x84,0xa8,0x4a,0x67,0x93,0xee,0xc4,0x17,0x07,0x26,0xfe,0x86
+.byte 0xf1,0xc6,0xba,0xbf,0xc4,0x3d,0x33,0x41,0x4d,0xc4,0xf0,0xa8,0x6d,0xe1,0x06,0x16,0x2d,0xc9,0x5d,0x2a,0xf5,0x4a,0xc6,0xd2,0x8c,0x98,0x55,0xe8,0x8d,0xd0,0x31,0x5f,0xc7,0x05,0xd1,0xca,0xd2,0x72,0xe6,0xd0,0xcb,0x62,0x79,0xac,0x60,0x59,0x94,0x59,0x48,0x9e,0x91,0x17,0xa7,0xa0,0xac,0x4a,0xe5,0x08,0xe5,0x52,0xa4,0xd4,0x83,0x8c
+.byte 0x83,0x57,0xe7,0xe5,0xfc,0x9b,0x43,0x78,0xc8,0x7e,0x94,0xc4,0x35,0x3e,0xac,0x4a,0x8d,0x60,0x80,0xdc,0x72,0xe3,0x15,0x09,0x2a,0xbd,0xcc,0x9a,0xe4,0x1a,0x18,0xa8,0xf1,0x29,0x9b,0xca,0x58,0x0b,0x6d,0x7b,0x33,0x91,0x05,0x27,0x6a,0x48,0xbe,0xac,0x08,0xa5,0x2a,0x64,0xf5,0xae,0x2a,0x90,0xf1,0x2d,0x3f,0xa8,0xff,0x17,0x92,0xc4
+.byte 0xec,0x3a,0x09,0xbf,0xae,0xd3,0xe2,0x1c,0x3c,0xc8,0x6f,0x91,0x72,0x99,0xe3,0x82,0x30,0x4f,0x40,0x5c,0x0c,0x8d,0xfd,0xbe,0x10,0xbc,0xce,0x1e,0x0a,0x09,0xbf,0xde,0xdc,0x72,0x7e,0x4c,0xbc,0xec,0x34,0xe2,0x96,0x8a,0xc6,0xee,0x19,0x6c,0xa8,0xf1,0xa5,0xb2,0x71,0x88,0x13,0xe8,0x11,0xda,0x3b,0x77,0x10,0x9c,0x9f,0x74,0x49,0x21
+.byte 0x16,0xcf,0x6f,0x05,0xc5,0xc1,0x4d,0xfe,0xe7,0x4d,0x67,0xe8,0x12,0x14,0xf7,0xaf,0x66,0x8d,0x55,0x34,0x00,0x18,0x10,0x6e,0x6a,0xd2,0x4c,0xd9,0xd3,0x15,0x40,0xbf,0xce,0x7b,0x10,0x69,0xbd,0x15,0x0e,0x60,0x2b,0x76,0x50,0x80,0x92,0x02,0x3c,0x0f,0xea,0x47,0x03,0xd9,0xf6,0x2c,0x00,0xde,0x29,0xb9,0x2e,0xf6,0x80,0x10,0x81,0x28
+.byte 0x6f,0x41,0xfc,0x88,0x65,0xe9,0xb5,0xd4,0x78,0x53,0xff,0x04,0xc4,0xdd,0xd7,0x35,0x34,0x59,0x85,0x33,0x01,0x33,0x67,0xe1,0x4e,0xc2,0xac,0xe6,0x24,0x24,0xb6,0x83,0x48,0x08,0x0c,0x73,0xe5,0x9c,0x98,0xe4,0x4c,0x3c,0x1f,0x6e,0x77,0xea,0x8c,0x76,0x23,0xbb,0x41,0x5e,0xc1,0x8a,0xba,0x3e,0xe5,0x3e,0x86,0x89,0xab,0x32,0x65,0x1b
+.byte 0x00,0x92,0x56,0xe0,0x62,0xc1,0x8f,0xeb,0x15,0x7f,0x86,0xdf,0xa2,0xc2,0x8d,0xf5,0xb5,0x88,0x72,0x8c,0xba,0x92,0x30,0x53,0x58,0x3e,0x0b,0xe6,0x4f,0xd4,0xef,0x34,0xab,0xbb,0x61,0xe0,0x31,0x3c,0xe7,0xb2,0x5f,0x64,0xcb,0x52,0xc7,0x1d,0x95,0x96,0xd2,0x8c,0x87,0x34,0x92,0xf2,0xad,0xd9,0x78,0x1d,0xa1,0x67,0x58,0xfa,0xfb,0x06
+.byte 0xc8,0x7f,0x9e,0xf7,0x02,0x12,0xd9,0x8c,0x68,0xbc,0x2b,0xd3,0xe1,0x0e,0x1e,0xbd,0x33,0x7a,0xfd,0x03,0x41,0xb9,0x72,0x2e,0x63,0xfe,0xb1,0x39,0xc3,0x0f,0xa0,0xa9,0x76,0x4f,0x7b,0xab,0xae,0xda,0x22,0xec,0x83,0x32,0xb0,0xec,0xd1,0xfd,0xc2,0x28,0x1e,0x42,0x29,0x31,0xd5,0xb3,0x33,0xcd,0x13,0x1d,0x9f,0xac,0x73,0x27,0xf7,0xea
+.byte 0xc6,0x66,0xd2,0x32,0x91,0x60,0x35,0xf4,0x28,0x34,0x43,0x6a,0x74,0x8c,0x05,0x2a,0x84,0x34,0xfd,0x84,0xa5,0xcb,0x1d,0x2b,0x41,0x28,0xa6,0x19,0xed,0xcd,0xad,0xea,0x6e,0xf7,0x14,0x18,0xac,0x56,0x9a,0xf5,0xaa,0x7d,0x4e,0x8a,0x99,0xd1,0xda,0x41,0xaf,0xe8,0xfc,0xef,0x66,0x88,0xd0,0xed,0xfd,0xae,0x2a,0x85,0xc0,0x60,0xa2,0x30
+.byte 0x5d,0x1b,0x48,0xf6,0x3e,0xcf,0x56,0xdf,0x53,0xdc,0x2d,0xf5,0xfd,0x7f,0x2a,0x2a,0x4d,0x4f,0x11,0xcc,0xea,0x72,0xdb,0xb9,0xeb,0x92,0x0e,0x9f,0xc1,0x26,0xe9,0xbf,0x25,0x6a,0x27,0xe1,0x63,0x9b,0xdd,0x62,0x38,0xad,0xd3,0xb2,0x75,0x62,0x45,0xbf,0xbf,0xf4,0xe2,0xd6,0x97,0xe9,0xeb,0xeb,0x98,0xab,0x73,0xdc,0x8a,0xde,0xaa,0x3b
+.byte 0x69,0xfd,0x61,0x6f,0xbb,0xfc,0x28,0xc0,0xff,0x37,0x2e,0xeb,0x31,0x59,0x57,0xfb,0xd3,0x0e,0xed,0x01,0x66,0x50,0x63,0x53,0xa2,0xd1,0x24,0x8c,0xc8,0x8d,0x80,0x03,0x2a,0x1e,0x11,0x3a,0xb9,0x6c,0xf4,0x5f,0x58,0xa2,0xd6,0x58,0x6b,0x85,0x61,0xd1,0xe7,0xdc,0x90,0x07,0x34,0x6e,0xb9,0x0b,0x0d,0xcb,0xd5,0xe3,0xc6,0x9d,0xb8,0x51
+.byte 0x37,0x61,0xd0,0x6c,0x2e,0xed,0xe0,0xbc,0x55,0x74,0x63,0x1b,0x42,0x17,0x6a,0x9c,0x91,0x1b,0x96,0x76,0xc8,0xe4,0x2b,0x2e,0x90,0xd9,0xe5,0x3f,0x56,0x1b,0x2f,0x93,0x81,0x86,0x2a,0xb4,0xdf,0x93,0xcb,0xfa,0x01,0x85,0xd9,0x26,0x46,0x46,0x97,0x2a,0x2e,0xb3,0x91,0xe4,0xcf,0xd9,0x01,0x5a,0x37,0xa6,0xca,0x5e,0xed,0xa9,0x94,0x35
+.byte 0x2c,0x69,0x5b,0x1e,0xf8,0x38,0x61,0x41,0x10,0xf6,0xe9,0x6e,0x96,0xee,0xe6,0x5f,0x78,0x14,0x93,0x12,0xd2,0x57,0xe5,0xf4,0x58,0x46,0xca,0xc8,0x75,0x59,0xbd,0xd0,0xe4,0x70,0x35,0xa5,0x4a,0xfd,0x54,0xe2,0x91,0x76,0x0e,0xe6,0xe3,0xbb,0x31,0x65,0x4b,0x18,0xa8,0xb4,0xfa,0xa6,0x7d,0x7a,0xa9,0x47,0x3d,0x2b,0x2e,0x66,0xac,0x5b
+.byte 0x3e,0x5e,0x8c,0x27,0x0c,0x33,0x04,0x03,0x4e,0x5f,0xcd,0x6b,0x9c,0xaa,0x13,0x83,0x38,0xe9,0x38,0xcf,0x03,0x70,0x5a,0x0f,0x18,0xf5,0xec,0x64,0xf3,0x0c,0xe8,0xb1,0xa9,0x07,0x70,0xf7,0xde,0x0c,0x35,0xf5,0xe2,0xcd,0xed,0xe6,0x4d,0xac,0x5c,0x4d,0x3e,0x03,0x96,0x90,0x7b,0x4c,0x3e,0x18,0x42,0xc0,0xa7,0x23,0x12,0x8e,0x54,0xc1
+.byte 0xa1,0x2f,0x82,0x13,0xe6,0x1f,0x74,0xae,0x7b,0x4a,0xa4,0xbb,0xdc,0xc0,0x68,0x0f,0x83,0xbc,0xda,0xce,0xa2,0xe7,0xbe,0x18,0xcd,0x8b,0x35,0x05,0xa3,0x4b,0x6f,0xf0,0x53,0x12,0x42,0x2f,0x3c,0x09,0x87,0xb7,0xe3,0x36,0x29,0xe1,0xa2,0xb6,0x60,0x05,0xb9,0x66,0x80,0xe9,0xec,0x40,0x2a,0x55,0x78,0x5f,0x1c,0x5f,0xc3,0xc7,0x49,0x69
+.byte 0x87,0x97,0x5f,0xa5,0x31,0xa8,0x83,0x66,0x5a,0xd7,0xaf,0xf0,0x15,0xf3,0x01,0x62,0x9a,0x88,0x76,0x0f,0xb3,0xdf,0xf1,0xc6,0x34,0xc3,0xac,0x68,0x60,0x9a,0x91,0x03,0x13,0xea,0x0e,0x36,0x9c,0xf5,0x51,0xb7,0x0c,0xa4,0xeb,0xf0,0x41,0x85,0x54,0x05,0xed,0x7a,0xc2,0xba,0x3b,0xb8,0x1c,0x41,0x0d,0xbb,0xad,0x16,0x7e,0x64,0x4f,0x88
+.byte 0x7a,0x17,0xae,0x76,0x55,0x78,0x93,0xe8,0x99,0xa1,0x70,0x1f,0xf6,0x8a,0xb9,0xeb,0x41,0xb9,0x08,0xb8,0x9d,0x78,0x57,0xa1,0xe1,0x23,0xa0,0x03,0xd3,0x16,0xbc,0x16,0x24,0xed,0xc5,0x12,0x16,0x0a,0x8a,0x23,0x11,0x22,0xc2,0xfe,0x49,0x9d,0x3d,0x10,0x3d,0x4b,0xeb,0xab,0xcb,0x21,0x9d,0x9d,0xb1,0x64,0x87,0xe5,0x4d,0xb9,0xe7,0x10
+.byte 0x05,0xa0,0x55,0x2f,0xdf,0x53,0x5e,0x03,0xec,0x7e,0xe4,0x1f,0x9b,0x16,0x0c,0xfc,0xd9,0xf9,0x66,0x39,0x93,0x9e,0x49,0x34,0x97,0xd6,0xa5,0x56,0x00,0xf1,0xaf,0x08,0xeb,0x58,0xcf,0x87,0x02,0xc4,0xf1,0x24,0xe8,0x29,0x83,0xc9,0x5d,0x56,0x68,0xa2,0xaa,0xba,0xb3,0x86,0x23,0x59,0x8d,0x32,0x96,0x4a,0xbb,0xe9,0xf2,0x53,0xb2,0x87
+.byte 0x4a,0xf5,0xdc,0x23,0xd4,0x2f,0x36,0x70,0xb5,0x1d,0xee,0x47,0x51,0x6c,0x35,0x2a,0xad,0x35,0x74,0x1b,0x98,0xb5,0x33,0x2c,0x6d,0x4c,0xf8,0x39,0x07,0x92,0x6c,0xc7,0x65,0x10,0x64,0xcd,0x53,0xa3,0xcb,0xcc,0xe4,0xb2,0x46,0xb3,0xb7,0x44,0x01,0x92,0x44,0x12,0x23,0x25,0x3e,0x00,0xe3,0xeb,0x5f,0xe5,0x76,0x48,0x4e,0x4a,0x7f,0x36
+.byte 0xf0,0x0b,0x5e,0xc0,0x97,0x0d,0xc8,0xcf,0xd5,0xb8,0xc0,0x11,0x8d,0xb9,0x1e,0x31,0x0f,0x84,0x36,0x2e,0xe0,0x42,0xe6,0x02,0x9d,0xa4,0xdb,0xa2,0x76,0xfd,0xa1,0x95,0xe0,0x49,0xe6,0xf1,0xd2,0xae,0x27,0x6b,0x11,0x05,0x47,0xb0,0xaa,0x61,0x01,0xd4,0xe6,0xcd,0x9d,0x7e,0x33,0x5d,0xec,0x22,0x96,0x59,0xb7,0xc5,0x50,0x83,0xa4,0x66
+.byte 0x56,0xc7,0x43,0xa6,0xf7,0x5d,0xb2,0x45,0xc0,0x96,0xa0,0x5b,0xb8,0xed,0xae,0x29,0xb3,0x7d,0xbd,0x01,0xde,0xc0,0xe7,0xcc,0xe9,0x55,0x32,0x32,0xbf,0xdd,0x03,0x1b,0xb0,0x4e,0xff,0x53,0x1f,0x4b,0xc6,0xec,0x16,0x9d,0x5b,0x78,0x74,0xc4,0x75,0x51,0x8a,0x1c,0xae,0x6b,0xcd,0x9c,0x77,0x47,0xbf,0xd1,0x38,0x3e,0x9e,0xc0,0xad,0x16
+.byte 0xb7,0x15,0x6b,0xdc,0xad,0xe9,0x13,0xbc,0x48,0xc1,0xaf,0x69,0xce,0xc4,0xcc,0x9b,0x73,0xf9,0xd5,0x7c,0xab,0xf0,0xf1,0x9b,0xea,0xc6,0x0b,0x19,0x47,0x42,0xc1,0xa0,0x02,0x64,0x17,0xce,0x88,0x4f,0x16,0xa6,0xed,0xdb,0xfe,0x61,0xd3,0xd6,0xc0,0x11,0x30,0x16,0xd2,0x45,0xb3,0x7e,0x52,0xd0,0x94,0x77,0xf0,0x0e,0xbf,0x16,0xc0,0x4a
+.byte 0x2a,0x5c,0xac,0x55,0x57,0xb1,0x41,0xb6,0xa3,0x68,0x8c,0x0a,0x66,0x15,0xb4,0xf5,0xd9,0x9a,0xa9,0x68,0xf2,0xbc,0x06,0xc5,0x7c,0xd1,0x18,0x55,0x9a,0x2d,0x94,0x2e,0x04,0x4b,0x7d,0x3c,0xb1,0xe3,0x03,0x7a,0xa7,0xe3,0xe5,0x63,0x49,0x7c,0x3f,0x0a,0xc5,0xbd,0xd3,0x0f,0x04,0xfd,0x99,0xf7,0xe6,0x05,0x35,0x66,0x17,0x05,0x85,0x3b
+.byte 0x98,0x92,0x11,0x26,0xe2,0x21,0x52,0x1b,0x54,0x08,0xc8,0xf0,0x4e,0x75,0x22,0x3f,0xe8,0xb6,0x35,0xa4,0x02,0x52,0x70,0xc2,0xce,0x5a,0x00,0xe2,0xe2,0x92,0x8c,0x97,0xa7,0x1d,0x42,0x52,0x8b,0xf1,0x81,0xa7,0xce,0x60,0x46,0xbe,0xf0,0x1d,0x34,0xdf,0x73,0x2a,0xd6,0x9a,0x2d,0xf9,0xe3,0x91,0x05,0xe4,0x1f,0x31,0x11,0x30,0xb0,0xff
+.byte 0x8f,0x61,0x74,0xf4,0xef,0xcd,0xf6,0xa4,0x9a,0xd2,0x5e,0xba,0x27,0xe8,0x78,0x38,0xfc,0x75,0xff,0x3b,0x6c,0xde,0x4a,0x46,0x47,0x8e,0x97,0x28,0xe4,0x23,0xe0,0x10,0x07,0xca,0xcb,0x6d,0xed,0x29,0xc0,0xee,0x98,0x96,0x7c,0x90,0x1f,0x89,0x12,0x0f,0xd5,0x28,0xcf,0x6e,0x4b,0x9b,0x2d,0xb3,0xcd,0x97,0xb8,0xeb,0x58,0x23,0x26,0xb1
+.byte 0xb4,0x95,0x11,0x1e,0xee,0x00,0xde,0x24,0x28,0xa6,0x3f,0x15,0xa2,0x9a,0xcb,0x9d,0xe3,0x04,0x5d,0xc3,0x60,0x97,0x14,0x2c,0x84,0x2b,0x69,0x9c,0x2a,0xbf,0x08,0xba,0xc4,0x38,0x36,0xaa,0x89,0x11,0x32,0x63,0x01,0xa2,0x44,0x5f,0x50,0xf0,0x5b,0x11,0x15,0xc8,0x80,0xc9,0xa6,0xe7,0x5d,0x70,0xa8,0x34,0x42,0x97,0x2a,0x60,0x99,0x20
+.byte 0xa6,0x60,0xc0,0x70,0x8d,0x2f,0x3f,0x8a,0x14,0x80,0x8a,0xbe,0x05,0xb3,0x50,0x16,0xaf,0x32,0xb4,0x35,0x3e,0x1d,0x31,0x42,0xdd,0x50,0xeb,0x04,0x82,0x4c,0x83,0x3d,0x8f,0xb6,0x1e,0xc2,0xa9,0xd2,0x30,0xba,0x33,0xdb,0x97,0x6d,0x2d,0x97,0x59,0x33,0xc0,0xf8,0xa5,0x59,0xc5,0x44,0x9c,0xf1,0x06,0xc4,0xf2,0x31,0x3e,0xff,0xb8,0x12
+.byte 0x00,0x4d,0x6c,0x2d,0xa1,0xc7,0x83,0xea,0x55,0x93,0x0e,0x89,0x76,0xbf,0x56,0x2a,0x99,0x62,0x54,0xad,0x2c,0xe8,0xf0,0xf9,0x70,0x18,0xa5,0x2b,0x24,0xac,0x59,0xc9,0x84,0xe3,0x1a,0x9d,0xa0,0xdb,0x1b,0x7f,0xd5,0x7e,0xb5,0xe0,0x86,0x36,0xc5,0x71,0x6a,0xab,0xdb,0xa5,0x84,0xf1,0x9e,0x9e,0xf6,0x1b,0xab,0x47,0x94,0x38,0x8e,0x5d
+.byte 0x55,0xb4,0xf5,0xc3,0x59,0xc2,0x2c,0x6d,0x9d,0x28,0x7d,0x33,0xcd,0xc7,0xd6,0xdf,0x10,0xda,0x7c,0xd0,0x6c,0x91,0x88,0xd6,0x6b,0xe7,0x72,0x75,0x18,0xb1,0x87,0xe4,0xbb,0x10,0xe0,0xa3,0x0f,0xea,0x65,0x0a,0x70,0xc8,0xee,0x52,0x05,0x0a,0x27,0x39,0x66,0xda,0xd6,0xa6,0xfe,0x97,0x24,0x09,0x9d,0x20,0x76,0x4e,0x97,0x9d,0xa9,0x9f
+.byte 0x76,0x20,0x27,0x57,0x5b,0xf4,0x76,0x1a,0x4b,0xcf,0x13,0x6c,0x9e,0x63,0x53,0x97,0xca,0x10,0xd6,0x90,0x7d,0xfc,0xe3,0x03,0x2c,0x6c,0x79,0x93,0x1a,0xae,0x0f,0x43,0xdb,0x75,0xde,0x56,0xa6,0x69,0x93,0xce,0x2d,0x94,0x56,0x77,0x90,0x19,0x71,0x7f,0x7a,0x99,0xbd,0x9c,0x79,0x62,0x00,0x49,0x3a,0x62,0x49,0x4b,0x92,0x65,0x8b,0xe2
+.byte 0xa8,0x3d,0xa5,0x89,0x23,0xac,0xea,0xf1,0xbf,0x38,0x84,0xd7,0xe2,0x65,0xb6,0xc7,0xbc,0x02,0x11,0xfd,0xe3,0x4c,0x57,0x38,0xd4,0x36,0x54,0xe8,0xbb,0x63,0x17,0xe9,0xda,0x82,0x50,0xf1,0x8c,0x34,0x4d,0x75,0x2a,0x64,0x49,0xaf,0x98,0xc3,0x1d,0xad,0x31,0xf3,0x90,0x23,0x39,0xf5,0xb5,0xf4,0x37,0x88,0x67,0x12,0x5d,0xfc,0xee,0xe5
+.byte 0x44,0x52,0x2c,0x78,0xb1,0x90,0xc1,0xc2,0x77,0x6e,0x31,0x3e,0xa0,0x36,0x87,0xb0,0xc6,0x6c,0x94,0xc2,0x43,0x4a,0x7b,0xa2,0x73,0xe7,0xa0,0xc3,0x4c,0xaf,0x4f,0xa6,0x92,0x1c,0x9a,0x6d,0xee,0xe8,0x4d,0xe1,0xe0,0xc7,0x67,0xcf,0xcf,0x7d,0x7f,0x0f,0x07,0x0d,0x6c,0x06,0x06,0xc2,0xc9,0x28,0xfc,0x8d,0xcd,0x23,0x01,0x97,0x5b,0x4d
+.byte 0x1c,0xdb,0x34,0x51,0x6e,0xe2,0x56,0x24,0xd7,0xbd,0x12,0xc4,0x2f,0xb4,0x3b,0x02,0xaa,0x47,0xda,0x61,0xf6,0xca,0x44,0xa8,0x02,0xbf,0xbc,0x58,0xfb,0xa2,0xff,0xf3,0x54,0x59,0x5f,0xd7,0xa0,0x7c,0x83,0xa6,0xef,0xeb,0x71,0x51,0x74,0xa1,0x27,0x10,0x97,0x13,0x1f,0x42,0x91,0xdd,0xa8,0xf8,0xc7,0x60,0x90,0xca,0x2e,0xc8,0xaf,0x9f
+.byte 0x65,0x1f,0x24,0x0a,0x30,0x5f,0xb9,0x4c,0xfb,0xcb,0xa3,0x96,0x5e,0xad,0xab,0xac,0x09,0x91,0xf5,0x96,0x1f,0xe0,0x96,0x14,0xc5,0xa0,0x26,0xa1,0xf1,0x91,0x80,0x38,0x7f,0x38,0xdc,0x98,0x96,0x20,0x46,0x50,0x20,0xd2,0x20,0xce,0x79,0xd5,0x81,0x60,0x97,0xb2,0xb0,0xeb,0x58,0x75,0x3c,0x99,0xf0,0xe0,0xfd,0xfc,0x90,0xc5,0xd1,0x3d
+.byte 0x68,0x07,0xfd,0xa1,0x3f,0xeb,0x47,0xd0,0x58,0xe3,0xfa,0xbe,0xbf,0x20,0xdf,0x66,0x08,0x91,0xa4,0x5c,0x52,0x3e,0xdf,0x5c,0xb8,0xee,0xca,0xa6,0x89,0x06,0x97,0xb4,0x8d,0x60,0x35,0xb1,0xff,0x1e,0x39,0xf2,0x67,0xbc,0x71,0xee,0xeb,0x48,0x94,0x19,0x1a,0xee,0xc5,0xe2,0x7e,0x0d,0xf1,0xca,0xe8,0x2c,0xb0,0xaa,0x02,0x58,0x23,0x23
+.byte 0xce,0x37,0x5e,0xcb,0x58,0x40,0x2e,0x1a,0xa6,0x09,0x11,0x95,0xc4,0x6f,0x10,0xb0,0x15,0x22,0x48,0x67,0x74,0x6c,0x2f,0x4f,0x4a,0xb4,0x01,0xe5,0xa3,0x77,0xab,0xad,0xa4,0x04,0x22,0x71,0x58,0x4a,0x71,0xb1,0xe8,0xdf,0x43,0x18,0x0e,0x95,0x7c,0x8c,0x23,0x3a,0xf3,0x9c,0x20,0x60,0x20,0x69,0x51,0x28,0x7e,0x13,0x67,0x5c,0x7d,0x35
+.byte 0xfa,0x1b,0x04,0x8b,0xcf,0x42,0x6e,0x15,0x55,0xcd,0x04,0xdb,0x73,0xdb,0x47,0x5f,0x83,0x6e,0xd1,0x5a,0x15,0xa2,0xbb,0xf7,0xbb,0x84,0x58,0xce,0x75,0xe8,0xd2,0x92,0xd5,0xb7,0x76,0xf2,0x94,0x67,0x27,0x5f,0x32,0x91,0x3a,0xaf,0xd4,0x31,0xf8,0x92,0xce,0x63,0xb7,0x45,0x27,0xb4,0xb8,0x7a,0x1e,0x4e,0xde,0xcb,0xc8,0x5e,0xd3,0xbb
+.byte 0x52,0x91,0xd5,0x72,0xad,0x98,0xec,0x07,0xa1,0x56,0xb4,0x8e,0x04,0xfa,0x48,0x3f,0x17,0x07,0xf7,0xef,0x92,0x61,0x69,0xaf,0xdd,0xfc,0x76,0x03,0xe2,0xe9,0xe2,0xbe,0x5c,0xf2,0x8a,0xc5,0x99,0x51,0x7f,0xa4,0xf1,0xac,0x16,0xec,0x16,0xf5,0xb8,0x95,0x88,0x87,0xdb,0x27,0x2e,0x63,0x12,0x31,0x7d,0x6b,0x2b,0xa0,0x9b,0xb5,0xf9,0x82
+.byte 0x42,0x04,0x94,0xee,0x60,0x6e,0x4e,0x54,0x9b,0xfd,0xeb,0x01,0x3a,0xad,0x42,0xeb,0x08,0x3c,0x6a,0xa3,0xf2,0x46,0xfb,0x18,0x59,0x2c,0xa3,0x0b,0x22,0x1d,0x5d,0x47,0xa6,0x8c,0x06,0x9c,0xa1,0xcc,0x20,0x67,0xbd,0xf0,0x5b,0x94,0x9f,0xc6,0x10,0x8c,0xc8,0x15,0x52,0xe3,0x19,0xa1,0x89,0xfd,0x99,0xad,0x4f,0x10,0x51,0x0a,0xe4,0x4b
+.byte 0x02,0x7b,0x0d,0x73,0x2d,0xae,0xa4,0x68,0x1d,0xb6,0xcf,0x58,0x67,0xc0,0xd0,0xca,0x11,0x34,0x31,0x9e,0xa3,0xbc,0x12,0x28,0x1e,0x8e,0x5a,0x63,0xf5,0xda,0xf2,0x36,0x94,0x63,0x2c,0x39,0x3d,0xf9,0x80,0x9f,0xbf,0x8d,0xef,0x1f,0x15,0xc8,0xdb,0x62,0x58,0x7d,0xdc,0x0a,0x7f,0x87,0xaf,0x6d,0x2e,0xac,0x92,0x4f,0x51,0xdf,0x5e,0x75
+.byte 0x5e,0x0f,0x7c,0x51,0x49,0x88,0x0f,0x7b,0x49,0xa5,0x7c,0x41,0x4e,0x2a,0x0f,0xd0,0x0f,0x78,0xeb,0x42,0xfc,0x07,0x8a,0x8b,0x4e,0x3e,0xf2,0x42,0xc5,0x21,0x01,0x66,0xe2,0x50,0xf6,0x3d,0x28,0x1e,0xbf,0xdc,0x71,0x7f,0xc5,0x6e,0xc1,0xab,0x1a,0x33,0x49,0xdd,0xa2,0xb9,0x52,0xbe,0x93,0x97,0x97,0x7a,0xf0,0x22,0xa8,0xc5,0x01,0xc6
+.byte 0x76,0x6f,0xb6,0x2c,0x09,0x80,0x62,0x5b,0x84,0x05,0x7f,0x79,0x28,0x04,0x67,0xa2,0x0f,0xfc,0xbb,0x17,0xe2,0x85,0xe3,0xa0,0xf3,0x44,0x47,0x96,0x68,0x80,0xb2,0xbf,0xba,0x63,0x53,0x38,0x6c,0x3b,0xcd,0x3c,0xa4,0x10,0x48,0x80,0xd8,0x49,0x5a,0xf0,0x5c,0x38,0x02,0x02,0x5b,0xf2,0x77,0xa4,0xfd,0x16,0xfd,0x13,0xc8,0x8b,0x9b,0xcd
+.byte 0xe1,0x8d,0x70,0xb6,0x3d,0x24,0x65,0xda,0x1a,0x42,0x6f,0x90,0x64,0x9a,0x9b,0xda,0x54,0x44,0xc0,0xe0,0xd7,0xfb,0x73,0x10,0x3c,0xcf,0xa6,0x04,0x99,0xd9,0x45,0xe5,0x74,0xfe,0xdf,0x81,0xac,0xc8,0x30,0xe5,0x66,0x45,0x02,0xca,0xcd,0xd7,0xe6,0x7b,0x0d,0xda,0xe1,0xa0,0xa1,0xa1,0x87,0x34,0x63,0x0b,0xa7,0x82,0x39,0x83,0xba,0x18
+.byte 0x0b,0x16,0x35,0x11,0x53,0x8d,0xbe,0x7d,0xa8,0x7e,0x3f,0xf4,0x71,0xc9,0x37,0x6f,0x1a,0xd9,0x3f,0x8e,0xc4,0xc1,0xd3,0x80,0xdf,0xee,0x0e,0x6b,0x23,0xf7,0xbc,0x42,0x93,0x7a,0x36,0x6f,0x03,0x24,0xb4,0x9c,0x62,0xa0,0xed,0xed,0x0b,0x66,0xa8,0x25,0xe6,0x1a,0xd4,0x13,0xd1,0x16,0x14,0x2b,0x90,0x7d,0x2e,0xa4,0xda,0xb2,0xf9,0x33
+.byte 0x54,0xf9,0x0a,0x04,0x27,0x03,0x14,0xd2,0xd7,0xe2,0xc1,0xaa,0xb6,0xe8,0xe5,0x4c,0xf2,0xdb,0x4c,0xc8,0xb3,0xa4,0xeb,0xbf,0x12,0x5c,0x9d,0x65,0xaa,0x9a,0x66,0x77,0x42,0xb4,0xd5,0x5b,0x1f,0x3b,0xd7,0x91,0x89,0x57,0x2f,0xd0,0x86,0x99,0xb2,0xc8,0xc1,0x31,0xde,0x33,0x43,0x36,0x81,0xdb,0x97,0x7b,0x17,0x3b,0xa5,0x99,0xdb,0x63
+.byte 0x2b,0x48,0x4c,0xa6,0x5c,0x6c,0xd8,0xc9,0x6e,0x72,0x39,0xbe,0x6e,0x55,0x7e,0x9d,0xb7,0x20,0x8d,0x8f,0x81,0x20,0x78,0xae,0xc6,0x1d,0xe0,0x2d,0xb1,0xe7,0x64,0xbb,0xd4,0xc8,0x08,0x61,0x14,0x29,0x08,0xbc,0x1a,0xeb,0xfa,0x64,0x33,0x91,0x7d,0x91,0x41,0x65,0x8e,0x4c,0x0c,0xb2,0x79,0xc3,0x01,0x68,0xfc,0xd6,0xbb,0x50,0xcc,0x07
+.byte 0xa5,0xf6,0x2c,0x5e,0x10,0xd6,0xa3,0x62,0x18,0xec,0xa2,0xf2,0x6b,0xad,0xcd,0x02,0x01,0x75,0xbb,0x36,0x27,0x56,0x0f,0x55,0x03,0xe0,0x57,0xe1,0x72,0xeb,0x66,0x00,0x21,0xff,0x9a,0xbc,0xc1,0x1e,0x2c,0x93,0xe6,0x4d,0x93,0x28,0x10,0x7d,0x67,0x6c,0xf1,0xa4,0xe6,0x3a,0xa6,0x30,0xc8,0x50,0x1d,0x8b,0x6e,0x7b,0x76,0x98,0x14,0x4e
+.byte 0xed,0x84,0x67,0x2a,0x5f,0xac,0x0b,0x7b,0x47,0x40,0xb3,0x2d,0x7a,0xc1,0x23,0xdc,0x62,0xf8,0x8e,0x90,0x77,0xd4,0xf9,0x00,0x4b,0x67,0x04,0x72,0xf8,0xc9,0x2c,0x2d,0x0e,0x3c,0x3c,0xf3,0xfc,0xa8,0xe2,0x49,0xa4,0x00,0x82,0x98,0x72,0xa9,0xec,0xea,0xbd,0x3a,0x4e,0xd7,0x32,0xf1,0x11,0xf0,0x0d,0x9e,0xa2,0xe8,0xfe,0xcc,0x67,0xec
+.byte 0xfc,0xd6,0xfe,0x83,0x5e,0x7c,0x2b,0xb3,0x42,0xf4,0x2d,0x9a,0xbe,0x20,0xd1,0x81,0x62,0xe9,0x59,0x19,0x28,0xdf,0x97,0x10,0x54,0xf7,0xde,0x60,0x51,0x6a,0xce,0x32,0x03,0x75,0x5c,0x25,0x25,0x82,0x9c,0x07,0xf7,0x2d,0xa8,0x1b,0x9f,0xd3,0x32,0x46,0x25,0x1f,0xb1,0xc5,0xbb,0x28,0x14,0x3e,0xed,0xa8,0x83,0x20,0xf4,0x9c,0x75,0xf4
+.byte 0xe6,0xc4,0x2d,0x05,0x88,0x31,0xfd,0x48,0xca,0x6c,0x7f,0xab,0xb4,0x77,0x93,0x1d,0x87,0xc3,0x4e,0xb8,0xad,0xb4,0x3d,0x37,0x7a,0xd2,0x77,0xff,0xc2,0xcb,0x9c,0xc7,0xbf,0x02,0x02,0x70,0xc9,0x9f,0x77,0x8a,0x7d,0xa7,0x9a,0x10,0xd1,0x0e,0xb7,0xec,0x61,0xee,0x77,0x24,0xe9,0x3d,0xcd,0x12,0xca,0xee,0x50,0xb0,0x27,0x5d,0xe5,0xac
+.byte 0xa3,0x92,0xc7,0xd0,0x23,0x54,0xb1,0xe5,0x50,0xc3,0x15,0xd7,0x66,0x32,0x38,0x34,0xb1,0x59,0x1b,0xc3,0x59,0xe8,0xad,0x59,0x90,0x58,0x6e,0x02,0x40,0xb1,0x51,0x65,0x78,0x25,0x26,0x01,0xdd,0xcf,0x04,0xa2,0xfe,0xc3,0xbb,0x80,0x1c,0xb0,0x4e,0x9c,0x49,0x48,0xa3,0xe2,0xcc,0x81,0xc5,0xa8,0xd4,0xd5,0xe4,0xab,0x39,0xe7,0xe8,0x97
+.byte 0xc7,0x51,0xb4,0x5e,0x3f,0xe6,0xa7,0xcc,0x45,0x18,0xa2,0x6a,0xb3,0xa8,0x0b,0x7d,0xce,0x1a,0x97,0x4a,0x67,0xe1,0x3c,0x7c,0x4e,0xad,0x90,0xcf,0x2a,0x8f,0xb8,0xb6,0x96,0xaa,0x9a,0xc3,0x73,0xe6,0x71,0xdb,0x11,0x9b,0xd9,0xd9,0xfe,0xba,0x4a,0xf0,0x77,0xa4,0x15,0xb5,0xca,0xe1,0xb4,0x16,0x06,0x46,0xdf,0xc5,0x49,0x07,0x66,0xb3
+.byte 0xf5,0x30,0xe3,0xfb,0x44,0xac,0x80,0x3a,0x21,0xd9,0x5b,0x22,0x54,0x3a,0xae,0xbe,0xbd,0xf0,0x99,0x8d,0xb5,0x2a,0xf7,0xc9,0xf2,0xd3,0xfb,0x07,0x7c,0xd7,0x75,0x30,0x2a,0xcd,0x80,0xa8,0x2a,0x6a,0xb9,0x47,0xe2,0xa1,0xb0,0x76,0x6a,0x0f,0x9f,0x4a,0x56,0x3e,0xde,0xb3,0x89,0x12,0x25,0x63,0x1a,0x9d,0xea,0x64,0x08,0xc5,0x78,0xa7
+.byte 0x53,0xce,0xf8,0xb2,0xe5,0x97,0x3a,0xeb,0xd1,0x92,0xe1,0x4d,0xe0,0xf5,0x93,0x39,0x73,0xad,0x67,0xc9,0x0e,0x6b,0x16,0x4a,0x00,0xaa,0xb4,0xe6,0xa6,0xa5,0x67,0x95,0x90,0x04,0x5e,0x4d,0xc3,0x7f,0x6b,0xa1,0x50,0xb0,0x3b,0x72,0x0d,0xb3,0xec,0x9a,0x18,0x92,0x65,0x0c,0x2d,0x0f,0x94,0xd6,0x0f,0x95,0xba,0x4b,0xe6,0xc3,0x07,0x22
+.byte 0x0d,0x40,0xd4,0x0d,0x97,0x44,0xba,0x54,0x8c,0xf8,0x97,0x52,0x1f,0xa7,0xb2,0xe8,0x1b,0x0a,0xd5,0xde,0xff,0x1b,0x33,0x60,0x6a,0x28,0x68,0x36,0xb9,0x5a,0x3e,0x43,0x84,0x9a,0xb1,0x3d,0x3d,0xdb,0x1b,0xa2,0xc5,0x0e,0x2d,0xb5,0x5a,0xa5,0x36,0xe7,0xbf,0x7e,0xc3,0x76,0xad,0x1e,0xb5,0x49,0xc2,0xd5,0xa2,0x69,0x97,0x45,0x43,0x3e
+.byte 0xeb,0xcd,0xdf,0x4f,0xab,0xb3,0xe8,0x49,0xaa,0x9c,0x9c,0x58,0x1e,0xc8,0x1c,0x79,0xe9,0x16,0x1d,0xfe,0x54,0xac,0x55,0x18,0x10,0x73,0x97,0xdc,0xbe,0x45,0x63,0xfb,0x48,0x41,0x88,0xb4,0x0b,0x3a,0x1d,0x65,0x40,0x1b,0x10,0x66,0xeb,0xbe,0xed,0xc7,0x6c,0xd5,0x0c,0x19,0x85,0x23,0xb1,0x38,0xb3,0x4b,0xcd,0xc7,0xc5,0x06,0x18,0x40
+.byte 0xbd,0xef,0x9f,0x2e,0x3a,0x71,0x33,0x05,0x30,0x71,0xca,0xe9,0x7a,0x2c,0xe7,0x83,0x4e,0x3d,0x4b,0xc8,0xc7,0xcb,0x74,0x9c,0xa2,0xc7,0xbb,0x8c,0x44,0x0d,0xd8,0xb3,0x01,0x7c,0xdf,0x79,0xee,0x47,0xcb,0x91,0x6f,0xc3,0xfd,0x0f,0xfb,0xf8,0x6b,0x9b,0x00,0xaf,0xf6,0x69,0x82,0xa5,0x58,0x54,0x22,0x7f,0x4b,0xee,0xa7,0x03,0xdb,0xb6
+.byte 0x5f,0x12,0xe1,0x04,0x43,0x17,0xec,0xd4,0xdd,0x39,0x28,0xfa,0xa3,0x09,0x5e,0x14,0xaf,0x6b,0xfe,0x0c,0x65,0x01,0x13,0x75,0x3d,0xe7,0x6d,0xd9,0xda,0x1d,0x13,0xc1,0x56,0x40,0x50,0x95,0x65,0x8f,0xad,0x51,0x3f,0x13,0x05,0x2f,0x83,0xcd,0xca,0x8b,0x75,0xa2,0x39,0x61,0xde,0xd7,0x36,0xf9,0x1d,0x43,0x5b,0xc4,0x9a,0xc9,0xfc,0xa8
+.byte 0xf4,0x76,0x90,0x91,0xe8,0x52,0x5b,0x84,0xe7,0xc9,0x8e,0x7d,0x84,0xba,0xb1,0x32,0x12,0xce,0x06,0x9e,0x98,0x83,0x1f,0x7f,0x31,0xd7,0xf0,0x8a,0xa2,0xca,0xae,0xb3,0x50,0x51,0x93,0xfb,0x2f,0x43,0x0a,0xee,0x06,0x85,0xec,0xb8,0xf1,0x73,0xb1,0x65,0x37,0x05,0x8e,0x68,0xf7,0x7a,0xff,0xe7,0x17,0x08,0x5e,0x19,0x75,0x3d,0xf9,0x5e
+.byte 0xd5,0x25,0xf6,0x3b,0x99,0xb9,0x96,0x42,0x7a,0x37,0x8f,0x0d,0xde,0x22,0x83,0x89,0xf0,0x77,0x1f,0x22,0x42,0xc7,0xb5,0x70,0xcb,0xfd,0xf0,0xa9,0x87,0x8e,0x1f,0x01,0x9a,0x26,0xa6,0x8c,0x41,0xb9,0x12,0xd6,0xf2,0x5b,0xe5,0xfd,0xdc,0x74,0xbd,0xa1,0xc8,0xf7,0x3b,0x8c,0xe1,0x1d,0x42,0xb4,0x07,0x24,0x18,0x84,0x94,0x8a,0xce,0x00
+.byte 0xbd,0xd7,0xb0,0xfd,0x8f,0x0a,0xd3,0x75,0xa4,0xe8,0xfc,0x09,0xa9,0xa3,0x57,0x68,0x79,0x0e,0xef,0x37,0x46,0xd5,0x3b,0x8c,0x0d,0x67,0xbc,0x2c,0x5d,0x3e,0xf7,0xcc,0x9c,0x9e,0x81,0x62,0xc8,0xec,0x38,0x20,0x07,0x66,0xe4,0x83,0x15,0x13,0x3b,0x47,0x23,0xd9,0x46,0xaf,0x65,0xe1,0x40,0x2d,0x14,0x84,0x72,0xc1,0xbf,0xbe,0x81,0xc4
+.byte 0xcb,0x04,0x16,0x5e,0x2f,0x60,0x3a,0x8e,0x1a,0xd3,0xa2,0x00,0x25,0x6c,0xb7,0xdb,0x0d,0x20,0x99,0xb8,0x45,0x54,0xbf,0xc4,0x52,0x52,0x92,0x7d,0xcd,0xa1,0x9a,0x12,0x5e,0x27,0xe9,0xcf,0x79,0x9d,0xa8,0x6c,0xcd,0x37,0x20,0x08,0x09,0xc6,0x94,0x53,0x00,0x04,0xf5,0x3b,0xea,0x00,0x1b,0xc3,0x02,0xff,0xbc,0x18,0x1f,0xb7,0xf7,0x26
+.byte 0xe8,0x8b,0xc4,0x5f,0xf7,0xbe,0x9b,0xb3,0xba,0xae,0xbd,0x9c,0x3f,0x95,0xf7,0xcd,0x2b,0x40,0xf4,0x1c,0x6f,0xd7,0x52,0xe1,0xa7,0xdc,0x79,0xa4,0x88,0xff,0xfc,0xcf,0xfb,0xbb,0xe6,0xef,0xb6,0x31,0xac,0x24,0xa7,0x40,0xea,0x76,0xa2,0x34,0x6c,0xb1,0xfb,0x96,0x6b,0xfa,0xdd,0x60,0x70,0x73,0xb8,0xfd,0x66,0x3d,0xf9,0x63,0xc9,0x04
+.byte 0x70,0x20,0x35,0xca,0x04,0xb8,0xb3,0x4f,0x24,0x64,0x54,0xc2,0xd9,0x4d,0x8b,0xad,0x07,0xad,0xc5,0xb9,0x84,0xac,0x7c,0x65,0x4b,0x98,0x1d,0x09,0x23,0x95,0x5c,0x85,0x26,0xe5,0x8e,0xec,0xeb,0xc3,0xd5,0x15,0x9c,0x37,0x4e,0xf3,0x3c,0x97,0x92,0x75,0x99,0x48,0x48,0x52,0x4b,0x7b,0x93,0x54,0xd7,0x4f,0x7f,0xe5,0x51,0xdc,0x74,0x85
+.byte 0x9a,0xae,0xbd,0xf8,0xe6,0xe8,0x3f,0x1b,0xee,0x8b,0xf4,0xd8,0x5c,0x6c,0x46,0x6e,0x1d,0xaf,0x67,0x27,0x9a,0x39,0x4e,0x6b,0x99,0xcc,0xc0,0x66,0x54,0xbf,0x60,0xf6,0x24,0x64,0xfd,0x16,0xbf,0x56,0xb2,0x07,0x87,0x46,0xa6,0xef,0x40,0x67,0x78,0x2f,0x78,0x49,0x81,0x25,0xbd,0xa1,0xcf,0x78,0x68,0x25,0x8e,0x93,0x0a,0x4b,0xe1,0x92
+.byte 0x33,0x9c,0x13,0x70,0xd4,0xdf,0x74,0x34,0x8f,0x21,0xb9,0x51,0xd7,0x74,0xa9,0x02,0x6e,0xdd,0xb2,0xb4,0x6e,0x2a,0x95,0xdb,0xe4,0xaf,0x17,0xf5,0x9b,0xa5,0xc1,0x72,0x36,0x35,0x02,0x37,0x1c,0x38,0xaa,0x81,0x76,0xc6,0x1c,0xc3,0x2c,0xc5,0x45,0xaf,0x03,0xea,0xe6,0x14,0x51,0x44,0x84,0x9e,0x32,0xfe,0x4b,0x47,0xe9,0xb4,0x12,0x96
+.byte 0x13,0x6f,0x4c,0xed,0xe4,0xb0,0x79,0x7b,0xe5,0xc0,0x37,0x87,0x78,0x28,0x42,0xf7,0xd4,0xde,0xfc,0xd2,0x23,0x11,0x09,0xa5,0x11,0xc3,0xc4,0xf5,0xe0,0x2b,0x47,0x01,0x63,0xf2,0x85,0x1f,0x45,0x28,0xae,0xd3,0x29,0x04,0x1a,0x4b,0x83,0xab,0xf2,0x35,0x3a,0x40,0x2c,0x8d,0xb3,0xc7,0x47,0x0d,0xd1,0x3c,0xd0,0x1c,0x6b,0x5d,0x9b,0x4e
+.byte 0xdf,0x36,0x8d,0xc6,0x54,0x9e,0x61,0x51,0xf1,0xd2,0xa4,0x39,0xad,0x4a,0x14,0xa1,0x0b,0xd3,0xae,0x91,0x1a,0x29,0xeb,0xc5,0x75,0x88,0x13,0x1e,0x96,0xdd,0x6f,0x86,0x92,0xaa,0x37,0x16,0x95,0x86,0xbc,0xb1,0x35,0xbf,0x5f,0x75,0x40,0x46,0xe1,0x6f,0x2f,0x33,0x2d,0x13,0x35,0xef,0xca,0x09,0x04,0xe4,0x42,0xef,0x69,0x66,0xda,0xa6
+.byte 0x01,0xda,0x09,0xfd,0xb1,0x40,0x8d,0xaa,0xdd,0x08,0x0d,0xf5,0xf1,0xd6,0xc6,0x11,0x3b,0xbd,0xd3,0x04,0x70,0x76,0xaf,0xec,0x9b,0xcc,0x6a,0x1d,0xeb,0x95,0x4a,0x01,0x0a,0x03,0x62,0x00,0x32,0xb3,0xe0,0xd1,0x36,0xb6,0xeb,0xde,0x4b,0x5f,0x35,0x79,0x07,0x4a,0x0d,0xa1,0x8c,0xde,0x6b,0xd2,0xca,0x71,0x64,0x73,0xf7,0x9c,0x1d,0x95
+.byte 0x5c,0xdc,0xb9,0x4f,0x00,0x2e,0x86,0x3d,0x81,0x7b,0x05,0xa5,0x9e,0x03,0xa3,0x62,0xcf,0x22,0x78,0x0b,0xfe,0x09,0x3e,0x62,0x93,0x19,0x6e,0x47,0x7d,0x92,0x4a,0x0b,0xae,0xcb,0x37,0x4d,0x5a,0x3a,0x7a,0x68,0xde,0xb2,0x7e,0xd7,0xda,0x5c,0x45,0xd2,0x0f,0x1d,0x03,0xbc,0xed,0xd8,0xe5,0x2e,0x26,0x10,0x82,0x46,0x5a,0xe0,0x13,0x32
+.byte 0xf8,0xb9,0x18,0x8c,0xbd,0xb4,0xb3,0x8c,0x2f,0xb0,0x5d,0x0b,0xf3,0x8f,0x5a,0xda,0x8b,0xda,0x39,0xfe,0xe6,0x66,0x95,0x3f,0xfe,0x49,0x89,0xbf,0x43,0x36,0x77,0xc7,0x6d,0xea,0x92,0x5c,0x71,0xa6,0x29,0x50,0xb0,0x2f,0xed,0x89,0x9f,0x2c,0xd6,0x6b,0xfa,0xbe,0x62,0x9f,0x62,0xc7,0xe3,0x2e,0xd4,0xf2,0x2c,0x9c,0x98,0x37,0x38,0x5e
+.byte 0x81,0x6c,0x9e,0xcc,0xff,0x0f,0xfa,0xfa,0xe8,0xdd,0x2e,0x2d,0xb5,0x92,0x44,0x5e,0x2f,0xe1,0xd0,0x6c,0xc3,0xb9,0x11,0x95,0x70,0x4b,0x01,0xa0,0xc1,0x5e,0xe8,0x1d,0x40,0x16,0x9b,0x6e,0x29,0x1b,0x13,0xb9,0xda,0x39,0xbd,0x40,0x42,0xe2,0x06,0x35,0x57,0x2f,0xa8,0xf5,0xa7,0x00,0x60,0x07,0x26,0x21,0x6b,0xe6,0x23,0xa2,0x2a,0x70
+.byte 0xeb,0x85,0xcb,0xa9,0x73,0x31,0x62,0xf7,0xb0,0x90,0xd7,0x26,0xc1,0xd3,0xd7,0xcc,0x15,0x72,0x86,0xa6,0x0f,0x4a,0x24,0x14,0x5d,0xcd,0xbe,0xad,0x7d,0xf0,0x05,0x39,0x0c,0x10,0xbe,0x11,0x9a,0x36,0x9f,0x60,0x41,0xc6,0x7c,0xab,0x54,0x8a,0xac,0xc4,0xea,0xbd,0x43,0xeb,0x19,0x5a,0x8d,0x05,0xd1,0x83,0x58,0x92,0xb8,0xc6,0x75,0x56
+.byte 0x2c,0x58,0xb8,0x2d,0xe1,0x42,0xb4,0x0b,0xc9,0x97,0x79,0xb8,0x62,0xd0,0x15,0xd1,0x5d,0x0d,0x57,0x83,0xe4,0xba,0x73,0xa2,0x27,0xb8,0x56,0x64,0x28,0xaf,0xd2,0x58,0xe3,0xe6,0x12,0x01,0x6e,0x6a,0xfb,0x81,0x57,0xcd,0x32,0xc2,0x42,0x2a,0xe2,0x51,0x4a,0x4c,0xf8,0x69,0x0e,0xc0,0xe6,0x9f,0xf4,0x46,0x4b,0x60,0xcc,0x41,0x03,0xa4
+.byte 0x14,0xf0,0x15,0xb5,0xe5,0x39,0xfd,0x69,0xee,0xce,0x23,0x3a,0x50,0x66,0xdb,0xf4,0xe4,0x31,0x23,0xe9,0x06,0x93,0xdd,0x38,0xbc,0x2d,0xb9,0xf2,0x64,0x39,0x2f,0x1b,0xa9,0x71,0x0c,0x68,0xf7,0xb0,0x5b,0x74,0xe5,0x08,0xc6,0x5d,0xbe,0xb8,0xf7,0x40,0x0e,0xb4,0xe6,0x76,0x0c,0x14,0x8f,0x9d,0x25,0x95,0x6c,0x05,0x78,0x68,0x8a,0xa6
+.byte 0x80,0x24,0x8a,0x0b,0x6a,0xd7,0xfc,0xec,0x36,0xba,0x57,0xdd,0x49,0x82,0x3c,0x5f,0x9d,0xf4,0x57,0xac,0x16,0x99,0xed,0x73,0xa6,0xb0,0x2c,0x23,0xdb,0xf8,0x45,0x22,0xf4,0x82,0x16,0xc4,0x68,0x2f,0xe7,0x8c,0x85,0x6e,0x3c,0x43,0xdd,0x3d,0xea,0x90,0xeb,0xf4,0xef,0xf1,0x36,0x48,0x15,0x29,0x07,0x96,0x51,0xb5,0x78,0xa1,0xa3,0x59
+.byte 0x18,0x4d,0x11,0x5d,0x5e,0x67,0x69,0x28,0x29,0xcb,0xeb,0xbc,0x8f,0x17,0x12,0x57,0xaf,0xda,0xb5,0x86,0xef,0x59,0xdf,0xb1,0x6b,0x6a,0x33,0x66,0x67,0xd1,0x42,0xee,0xec,0x65,0xf2,0xeb,0x97,0x17,0x4e,0x01,0x3f,0x4d,0xb4,0x06,0x8e,0xf9,0xa8,0x79,0xb6,0xf1,0x67,0x8b,0xff,0x0b,0x5f,0x93,0x70,0x76,0x54,0xae,0x7b,0x0d,0x4a,0xbc
+.byte 0xf7,0xdc,0x11,0x64,0xb3,0x6a,0xd1,0x69,0x45,0x1b,0x57,0xfc,0xb5,0xfe,0x86,0xb2,0xd6,0xde,0x82,0x23,0x86,0x6b,0x21,0x78,0x8b,0x2e,0x96,0xf8,0x04,0x8b,0xba,0x15,0xae,0x33,0x91,0x27,0x88,0xe3,0xc1,0xe7,0xf8,0xc3,0xa6,0xb6,0x73,0xec,0x84,0x95,0x22,0x45,0x58,0xb1,0x50,0x99,0xde,0x8a,0x37,0x41,0x9f,0xb8,0x27,0xd6,0xd8,0xaa
+.byte 0x0f,0x0e,0xac,0xe4,0xd0,0x38,0xcf,0x2f,0x03,0x6f,0x3d,0x8a,0xd7,0x51,0xd6,0xf3,0x17,0x76,0xb5,0x0f,0xc5,0xf8,0xa7,0x0a,0x91,0xaa,0x8d,0xbc,0x15,0xd6,0x46,0xb9,0xdc,0x18,0x47,0x9c,0xd9,0x13,0xa5,0xb1,0xb5,0x45,0x2f,0x03,0x32,0x5c,0x8b,0xac,0x42,0x5b,0xd9,0x1a,0x41,0x1e,0x27,0xf9,0x92,0x72,0xc1,0xc7,0xc1,0x50,0x25,0x22
+.byte 0x7a,0x00,0x41,0x1f,0x2d,0x28,0xaf,0x41,0x96,0x8e,0x97,0x3b,0x36,0x80,0x16,0xe6,0x51,0x8f,0x07,0x13,0xd9,0x81,0x79,0x94,0x92,0xaa,0xb9,0xb6,0x39,0xf2,0x4d,0x24,0x6b,0x77,0x25,0x7e,0x47,0x6c,0xc7,0x62,0x3d,0x96,0x21,0xac,0x1a,0xf0,0x5f,0x5d,0x5a,0x7e,0x17,0xdd,0x47,0xd5,0x19,0x0a,0x85,0x3e,0xd5,0x6b,0x52,0x12,0xe2,0xbc
+.byte 0x43,0x79,0x28,0x1d,0x72,0xcc,0xa6,0x6c,0xea,0x9b,0xe9,0x04,0x34,0x2c,0x41,0x3a,0x64,0xe8,0xcb,0x12,0xfa,0xd5,0x45,0xad,0xe8,0x3e,0xa2,0x5c,0xb8,0x83,0x52,0xdb,0x0c,0x98,0x24,0x76,0xd2,0x00,0x62,0xff,0xac,0xd7,0x11,0xee,0xcf,0xfb,0xdd,0x65,0xd2,0x75,0xb0,0x25,0x4e,0x76,0x3f,0xa2,0x1a,0xae,0xee,0xc1,0x59,0x1b,0x0c,0x42
+.byte 0x70,0x42,0x06,0x00,0x64,0x31,0xe0,0xce,0x3a,0x91,0x5e,0x9d,0x56,0x83,0xab,0xa7,0x73,0xc2,0x15,0x29,0xba,0xf9,0x1d,0xc8,0x4b,0xc6,0x3a,0x9e,0xab,0xd7,0xfd,0x17,0x8d,0x80,0xf0,0xa1,0x8a,0x5a,0x7a,0x80,0xd8,0x1f,0xa9,0x5b,0xec,0x68,0x99,0x3a,0x66,0xcc,0x5a,0xdf,0x5f,0xe9,0xd5,0x6a,0xf2,0x2c,0x7e,0xf8,0xa7,0xdf,0x0c,0x59
+.byte 0xbd,0x85,0xf0,0xc9,0x91,0x44,0x9c,0x86,0x24,0x60,0xfb,0xe9,0xff,0x3c,0xa7,0xa7,0x6d,0x4b,0x17,0xb3,0x24,0x99,0x14,0xbc,0x64,0xd0,0x41,0xaa,0xcd,0x26,0xd3,0xa3,0x51,0xeb,0x25,0x1d,0xb2,0x7d,0xf1,0xf3,0xf3,0xf0,0x3a,0xe0,0xb5,0xa9,0x24,0xc3,0x78,0x4a,0xef,0x9b,0x34,0x93,0xf8,0x0c,0x71,0x10,0x5b,0xf0,0xe7,0x08,0x4d,0x5f
+.byte 0x74,0xbf,0x18,0x8b,0x48,0x8d,0xd7,0x23,0x81,0xed,0xa2,0x29,0xa9,0xdb,0x91,0xf6,0x61,0x7c,0xca,0x1e,0xe0,0xa7,0x21,0x9d,0xfc,0x04,0x3a,0x87,0xbb,0xf9,0xa4,0x3b,0xbb,0xc4,0x89,0xa1,0x7f,0xdc,0x83,0xfa,0x5e,0x0f,0xcf,0xdf,0xf6,0x41,0xd3,0xa3,0x76,0x76,0x44,0x3e,0x01,0xee,0xce,0xf6,0xc3,0xb9,0x49,0x43,0x6e,0xee,0x09,0x4c
+.byte 0x87,0xe6,0xa3,0xf5,0xa0,0x8d,0x99,0xb3,0x3b,0xd6,0xeb,0x27,0xf9,0x34,0x68,0xc8,0x04,0x80,0xb2,0x4d,0xb6,0xde,0x98,0x81,0xe0,0xec,0xc9,0x06,0xde,0x86,0xee,0xf0,0x87,0xb8,0x67,0x0e,0xce,0xf8,0xc5,0xb1,0xd2,0xe1,0xe3,0x53,0x1d,0xbe,0x6c,0xdd,0x5e,0x83,0x02,0xf5,0xc8,0xda,0xcf,0x3c,0xcb,0x88,0x2c,0xca,0x65,0x65,0x9e,0x71
+.byte 0x4e,0xf2,0x98,0x96,0xb2,0x54,0xb4,0x96,0xdc,0x84,0xb5,0x39,0x74,0x9b,0x61,0xcf,0x52,0xef,0xb3,0x0c,0x62,0xc9,0x92,0xe1,0xe5,0x6f,0x2f,0x0c,0x61,0x0d,0x6f,0xfd,0xd8,0x84,0x25,0xba,0x20,0x59,0x00,0xf5,0xa9,0xf1,0x77,0x6e,0x9a,0x3d,0x93,0x69,0xde,0xaf,0x9a,0xe6,0xe3,0xfd,0xb9,0xd3,0x04,0x82,0x18,0xa1,0x5b,0x9b,0xe0,0x29
+.byte 0x4c,0x64,0xf5,0x95,0x57,0x25,0xd3,0x04,0x8b,0x4a,0xe9,0x57,0x6f,0xd1,0x8c,0x40,0x73,0x49,0x32,0x93,0x3f,0x26,0xb4,0x6b,0xd3,0xd4,0x90,0xb7,0xe1,0xaf,0xa0,0x9a,0xc0,0x86,0xb7,0x5e,0xec,0x29,0xaa,0x03,0x4e,0x56,0xb5,0xcd,0x46,0x7d,0xe0,0x26,0x3d,0x5f,0xd3,0x55,0x86,0x68,0x4a,0xc5,0x42,0x5d,0x60,0x3a,0x39,0x6f,0x45,0xb9
+.byte 0x6a,0xea,0xf4,0x05,0xc8,0x24,0xf8,0xcd,0xe5,0xeb,0xca,0x3a,0xe7,0xb4,0x59,0x83,0x5a,0xa5,0x1d,0xe4,0x6a,0xaa,0x35,0x00,0x42,0x32,0xa5,0x6c,0x3e,0xc1,0xc2,0xc4,0x9d,0x2e,0x43,0x57,0x79,0x52,0xf6,0x1e,0x02,0xb8,0x9b,0xcd,0xf0,0x3d,0x57,0xa3,0x6f,0xf7,0x12,0x54,0x6c,0x63,0x0d,0xb2,0xba,0xff,0xa1,0xf6,0xf5,0xdf,0xa5,0xed
+.byte 0xda,0xdf,0x56,0x72,0x1e,0xc5,0x3f,0xad,0xd0,0xf9,0x38,0x94,0x51,0xe3,0xa4,0xb4,0xbf,0xd5,0x24,0x2a,0x90,0xfe,0xd4,0x34,0x6c,0xa8,0xc8,0x1c,0x9a,0xaf,0xac,0xff,0x5b,0x67,0x44,0x4c,0x4d,0xa7,0x59,0x2c,0x9f,0x67,0x07,0x25,0xe1,0x7f,0x4e,0x4a,0xaa,0x8f,0x5d,0xd1,0x26,0x0d,0x73,0x9b,0x69,0x5d,0xdf,0xb2,0xa5,0x89,0xbb,0x82
+.byte 0x0b,0x09,0xf3,0x11,0x76,0x5d,0x2d,0xad,0xc3,0xc1,0x15,0xbc,0xaf,0xa2,0xe6,0xd5,0xb0,0x6d,0x80,0xa6,0xda,0xfa,0x3b,0x9c,0xaf,0xff,0x98,0x40,0x83,0x3a,0xe1,0xb8,0x98,0x0e,0x97,0x00,0x89,0xfb,0x37,0xcb,0x81,0x36,0x34,0x33,0xbb,0x5c,0xd0,0x51,0x37,0xd6,0xb5,0x6c,0x3a,0x61,0x0a,0x27,0x23,0x96,0xa9,0x79,0x8d,0xf0,0xbe,0x31
+.byte 0xba,0xdc,0x89,0x4e,0x88,0x98,0xe4,0x10,0x15,0x8a,0xe1,0xae,0xe8,0x6d,0xa4,0x61,0x56,0x14,0x84,0x59,0x64,0xc2,0xaa,0xd8,0xfd,0x19,0xfc,0x17,0xf1,0xfc,0x6d,0x17,0xcb,0xea,0x7a,0x47,0x00,0x75,0x17,0xf3,0x62,0xfe,0x3a,0xbc,0x28,0x1a,0x0e,0x88,0x48,0x63,0x4a,0xcb,0x20,0x46,0xa4,0x75,0xf8,0xf1,0x7a,0xd6,0x92,0x7f,0x92,0xfa
+.byte 0x91,0x95,0x2f,0xbc,0x5b,0x42,0xf1,0x55,0xaf,0x91,0xa2,0x3b,0x29,0x5c,0xc8,0x5e,0x97,0x91,0xa2,0x2e,0xd2,0xa8,0x1c,0xf6,0x16,0xc5,0x15,0xf2,0x42,0xb3,0x41,0x59,0x52,0x8d,0x94,0x52,0xc4,0xc6,0x2c,0xdd,0x6f,0x01,0xea,0x62,0x42,0x83,0x7e,0x2e,0xf8,0xb8,0xc1,0xf3,0x71,0xd1,0x11,0x14,0x7a,0x3d,0xcd,0xec,0xe0,0x79,0x8b,0xbd
+.byte 0x28,0x12,0x60,0xf0,0x66,0xf1,0x1c,0x1c,0x19,0x07,0x8c,0x26,0xff,0xcc,0x72,0x9a,0xbd,0x12,0xe6,0x2b,0x2b,0xb1,0x32,0x04,0x98,0x92,0xd9,0x24,0x97,0x59,0x46,0xc6,0x11,0xe1,0x31,0x14,0x46,0x27,0x96,0xb1,0x06,0x81,0xd5,0xe8,0xff,0x45,0x3d,0x3c,0x04,0x9a,0xd8,0x0b,0x1f,0x41,0x03,0xba,0x1b,0x3e,0x4e,0xd5,0x7d,0x48,0x00,0x68
+.byte 0xb3,0xe8,0xe0,0xc8,0x3c,0xcf,0xdc,0xbe,0x29,0x90,0x64,0x51,0x18,0xdc,0xcd,0x87,0xcb,0xa8,0x3d,0xf8,0xb4,0x73,0x11,0xdc,0x7a,0xcb,0xa4,0x81,0x9e,0x3a,0x72,0xde,0x18,0x36,0x86,0x15,0x91,0xbc,0xeb,0x7f,0xe2,0xfb,0x6b,0xf1,0x5a,0x3d,0x05,0x50,0xeb,0xcf,0xd2,0xcc,0xf2,0x62,0xb1,0x32,0x46,0x14,0x95,0x4e,0xdf,0x73,0x64,0x61
+.byte 0x5f,0x3d,0xbf,0x52,0x3e,0xa7,0x55,0x01,0x9a,0xd8,0x01,0xef,0xf7,0x60,0x6f,0x83,0x43,0x6b,0x4c,0xa2,0xc8,0x04,0x34,0x70,0x70,0xa1,0x99,0xc9,0xa7,0x54,0x1e,0x87,0x99,0xb3,0xec,0xfe,0xe9,0x2d,0x39,0xef,0x6f,0x4d,0x8c,0xf2,0x4b,0xd2,0x12,0x5d,0xb6,0xa7,0x0b,0x04,0x3b,0x69,0xdd,0x9a,0x18,0x2d,0xd9,0x22,0x00,0x38,0x15,0x9a
+.byte 0x6e,0x6c,0x0c,0x84,0x32,0x32,0xb2,0xf9,0x61,0xef,0x74,0x35,0xec,0xcc,0xd7,0xbc,0x9d,0xe9,0xcd,0xe3,0xa0,0xa5,0x15,0x0a,0xfe,0x1f,0x37,0x35,0x2b,0x7c,0x42,0x50,0x81,0x67,0x52,0xb7,0xa7,0x9e,0x8f,0xda,0x64,0xc0,0xc0,0xc3,0x93,0xc7,0x9d,0x41,0xb8,0x4b,0x69,0x80,0x13,0x88,0x8a,0x07,0xf9,0x47,0xad,0xc9,0x4f,0x3d,0xc7,0xba
+.byte 0xd2,0xf2,0x7a,0xa0,0x38,0xbe,0xe1,0xfa,0x83,0xda,0x79,0x29,0x7f,0x4c,0xfa,0x0e,0x9b,0x59,0x1e,0x89,0x76,0x05,0x60,0x84,0x13,0x63,0x11,0x14,0x20,0xa9,0x2b,0xd0,0xc3,0x58,0xcc,0x73,0x3e,0x2c,0xa8,0xa7,0xa5,0xd0,0x2f,0x03,0xfc,0xa9,0x5d,0xdd,0xcd,0x40,0x91,0x90,0x1f,0xda,0x0a,0x73,0x58,0xd8,0x84,0x05,0x45,0x01,0x84,0x52
+.byte 0x8b,0x9b,0x17,0x98,0xa8,0xc4,0xc3,0xb5,0x94,0xd5,0x32,0x86,0xe9,0x10,0xe5,0xa5,0x99,0x8d,0x57,0x3e,0x32,0x25,0xfa,0xb4,0x5c,0x3a,0x5f,0xa6,0x2d,0x7d,0x4e,0xd3,0x7b,0xee,0x41,0x23,0x5e,0xc2,0xc9,0x91,0xf4,0x21,0xe0,0x4f,0x0d,0x87,0x30,0x53,0xf1,0x0e,0x63,0xe8,0x5b,0x3d,0xee,0x4a,0xc8,0x78,0x38,0xa2,0xa4,0xe8,0x72,0x41
+.byte 0xf1,0x37,0x30,0xe3,0x3d,0x93,0xc6,0x4b,0x10,0x0d,0xf6,0x20,0x15,0x0a,0x77,0x41,0xd5,0x7d,0xcb,0xf9,0xda,0x3b,0x17,0xa6,0xf1,0xe4,0x56,0xd4,0x65,0x7b,0x33,0xe4,0xef,0x34,0xfb,0x8c,0x9f,0x87,0x86,0xfc,0xce,0x90,0x60,0x77,0x57,0xc0,0xe4,0x37,0x2c,0xdf,0x41,0x95,0x85,0x89,0x4e,0x77,0x3f,0xa0,0xc7,0x55,0x4c,0x3f,0xa8,0x10
+.byte 0xd2,0x87,0x7e,0xd2,0x97,0xa1,0x6c,0xe7,0xec,0xaa,0xf6,0x93,0x13,0x2e,0x10,0xed,0x5b,0x7a,0xed,0x53,0xb4,0x55,0xaa,0xb4,0x67,0x78,0x07,0x5f,0xc2,0xd2,0xf1,0x7b,0x98,0xf0,0x82,0xf6,0x7c,0xb2,0xd4,0xa8,0xc2,0x53,0x39,0x21,0x7f,0xa0,0x76,0x37,0x1a,0x69,0xb3,0x49,0xd4,0xc3,0xd1,0xcb,0x31,0x76,0xec,0xaf,0x75,0x66,0x31,0x65
+.byte 0xeb,0x44,0x63,0xa0,0x13,0xf5,0x9e,0x67,0x40,0x41,0x76,0xce,0xd3,0xd6,0x91,0xb1,0x3a,0x07,0xff,0x38,0x1e,0xaf,0x55,0x57,0x55,0xd1,0x94,0x63,0xd3,0x81,0x16,0x59,0x68,0x01,0xe8,0x6d,0x7d,0x7a,0xa1,0x39,0xb9,0xa2,0xba,0x79,0x9d,0x69,0x00,0x13,0x59,0x2f,0x3d,0xef,0x10,0xe7,0x3c,0x02,0x7d,0xa3,0xa8,0xee,0x31,0x1a,0xad,0xa6
+.byte 0xdb,0x1b,0xe3,0x4a,0xdd,0x60,0xfb,0x4e,0xa6,0x49,0xbb,0xea,0x34,0x5d,0x21,0xac,0x83,0xa4,0xb5,0x23,0x8e,0x69,0xb3,0x25,0x14,0x8d,0xc2,0x89,0x8d,0xcf,0x38,0x46,0x18,0xb6,0x0c,0xce,0x45,0x22,0xeb,0xb5,0xb2,0xed,0xe5,0x0f,0x35,0x8f,0xdd,0xa1,0x15,0xd6,0x50,0x5b,0xe1,0x04,0xa7,0x32,0xc0,0xc9,0x03,0x56,0xc2,0x33,0xe8,0x16
+.byte 0x1c,0xd4,0x7a,0xfd,0x6b,0x4d,0x04,0xc0,0x9e,0xf8,0x32,0x9f,0x52,0x24,0xac,0xc5,0xb0,0xa1,0x63,0x77,0xc9,0x14,0xaf,0x46,0x60,0x67,0x52,0x81,0xbb,0x3f,0xf5,0x7f,0xad,0xef,0x7c,0x3a,0x71,0xc1,0x1e,0xea,0x4a,0xe0,0xd7,0xdd,0x31,0xf2,0x4b,0xdf,0x53,0x8a,0xc9,0x59,0x7a,0xb2,0x6f,0x7e,0xc0,0x00,0xa4,0x0d,0x09,0x9c,0xf7,0x22
+.byte 0x22,0xa9,0x37,0xde,0x3b,0xe1,0x74,0x85,0xcf,0xc5,0xb7,0x7b,0x0a,0xfd,0x6b,0xfa,0x98,0x49,0xa9,0x7f,0x52,0x23,0x0e,0xc0,0x4a,0xb3,0x81,0xa6,0x96,0x46,0x24,0xe7,0x01,0xd1,0xf2,0xac,0x31,0xb2,0x5e,0x61,0xe3,0xab,0xf8,0x1b,0x28,0xca,0xa2,0x78,0x3c,0xdf,0x8a,0xc1,0x17,0x46,0x9d,0xbd,0x69,0x31,0x41,0x8b,0xc1,0xc8,0xaa,0x68
+.byte 0xd5,0x35,0x65,0x49,0xfe,0xc6,0xa4,0x99,0xcc,0x62,0x4b,0x81,0x1c,0x21,0xa4,0xd8,0xe3,0xb3,0xe9,0x7c,0xf8,0x33,0x2f,0x21,0xa5,0x88,0xf2,0x8e,0x7d,0xee,0x00,0x00,0x62,0xcf,0x07,0x37,0x00,0x68,0x6c,0xb5,0x2d,0xc6,0x1b,0xcc,0x86,0x71,0xf0,0x4f,0x68,0xaf,0x0c,0x9a,0x25,0x69,0x71,0x2d,0xb5,0x87,0x90,0x02,0xd3,0xfc,0xbb,0x63
+.byte 0xa9,0xf1,0x13,0x4f,0xda,0x71,0x69,0x5c,0x0b,0xfd,0x3f,0x6c,0x2f,0x0b,0x4f,0x07,0x72,0x2d,0x2f,0x77,0xcb,0xa4,0xe4,0xbd,0x30,0xc7,0xe4,0xd9,0xf9,0x5d,0x2f,0x65,0xe4,0x41,0x5c,0xbc,0x03,0xa2,0x01,0xf9,0xfa,0x06,0x14,0x52,0x08,0x44,0x67,0x75,0x4e,0xbd,0x66,0x4a,0x26,0x3a,0x49,0xc4,0xba,0x02,0xb3,0x8e,0xa2,0x42,0xe7,0x92
+.byte 0x03,0x6d,0x61,0x10,0x73,0xd0,0x6f,0xe1,0x6e,0x67,0xff,0xb0,0x29,0x62,0x70,0x3c,0xeb,0x80,0xed,0x11,0x06,0xd6,0x18,0x60,0xe1,0x3d,0x21,0xa9,0xe9,0xd2,0x92,0x00,0x9e,0x13,0xf2,0x5d,0x38,0x71,0xdf,0xf3,0x5f,0x8a,0x90,0x45,0xf0,0x47,0x1f,0x0b,0x2d,0x12,0xf7,0x10,0x07,0x6a,0x52,0xe8,0xe2,0x26,0x9b,0x4b,0x7a,0x5f,0x97,0xb6
+.byte 0xf1,0x6d,0x47,0x3a,0x1e,0xc8,0x1d,0x78,0x5b,0x0a,0xb8,0x03,0xb1,0xe1,0xe7,0xc8,0xf0,0xe7,0x00,0xac,0xfc,0xd7,0x4a,0xde,0xaa,0xcd,0x0f,0xaf,0xf7,0x56,0x8e,0xed,0xfb,0xbe,0x7e,0xfe,0x62,0x75,0x7a,0x07,0x96,0xff,0xc3,0x21,0x35,0x71,0xb9,0x73,0x41,0xc2,0xb0,0xa8,0x6a,0x65,0x48,0xc4,0x50,0x31,0xe2,0xba,0xf4,0xe9,0x6c,0x03
+.byte 0x26,0x2c,0x77,0xfe,0x1a,0xd5,0x96,0xf6,0x6d,0xe4,0x14,0xfc,0xe2,0x1d,0x20,0x0c,0x14,0xa2,0x39,0x63,0xe5,0x16,0xef,0x6a,0xeb,0xe1,0x69,0xb8,0x67,0xa0,0x91,0xc1,0x8f,0xed,0xff,0xdf,0x26,0x1f,0xc3,0xb7,0x5d,0xe9,0xd2,0x72,0xe2,0x54,0x27,0x46,0x4f,0x33,0x25,0x59,0xaf,0xfa,0x87,0x4b,0x5a,0xda,0x7d,0x15,0x71,0x5d,0xb4,0x8d
+.byte 0x95,0xb6,0x09,0x5b,0x8b,0xeb,0xe6,0xba,0xc8,0x2f,0x8f,0x9e,0xa8,0xab,0x6a,0xa6,0x26,0xb6,0xf5,0x80,0xd0,0x7d,0xe7,0x4c,0x18,0x5a,0x72,0x8f,0x3e,0x90,0xe5,0xa1,0x16,0x33,0x66,0xc3,0x7b,0xf6,0xb6,0xdd,0x15,0x94,0x6d,0xca,0x8b,0xd7,0xa5,0x05,0xfb,0x5f,0x4e,0x94,0x6a,0xcc,0x54,0xed,0xeb,0xc0,0xb1,0xe1,0xc9,0x7f,0xc4,0x90
+.byte 0x2f,0x50,0x34,0x81,0x3c,0x83,0x47,0x3c,0x5a,0xb2,0x33,0x63,0xb6,0xa7,0xfb,0x59,0x70,0x87,0xea,0x7f,0x30,0x22,0xb4,0x54,0x48,0xfb,0x40,0xd2,0x7b,0xc9,0x49,0x80,0x18,0x27,0xc2,0x75,0x09,0x06,0x0a,0x83,0x1e,0x7a,0xf1,0x97,0xa1,0xc2,0x34,0x3f,0x6d,0xd6,0x2d,0xfe,0x5d,0x8b,0xfd,0x64,0x5d,0x6f,0x7f,0xbf,0x4e,0x01,0xb7,0x46
+.byte 0xfb,0xf7,0xd5,0x6f,0x5f,0x74,0xc8,0xca,0x9a,0x2e,0x74,0x08,0xe9,0x3d,0x8b,0xfd,0x97,0x38,0x72,0x67,0xbb,0x8a,0x34,0xee,0xf5,0x3a,0x2b,0x5e,0x64,0x64,0x06,0x7c,0x60,0x0f,0x7a,0x88,0x45,0x1b,0x69,0x90,0xb8,0xb0,0x4d,0x71,0x80,0x77,0xa8,0xaa,0x9f,0xd3,0xc6,0xfb,0xb8,0x12,0x1e,0x0c,0xf4,0x94,0x67,0x44,0xdc,0xb1,0x95,0x0e
+.byte 0x51,0xd1,0x06,0x69,0x92,0xbf,0xe6,0x67,0xe3,0xcd,0x0b,0x87,0x03,0x12,0x2e,0xa7,0x23,0x72,0x13,0xe9,0x89,0xcf,0x15,0x43,0xc0,0xa7,0x68,0xbd,0xce,0xec,0x28,0xb6,0x85,0x36,0xbe,0x52,0x5d,0x57,0xfa,0x7d,0x72,0xd1,0x4b,0x88,0xc9,0x64,0xbc,0x7a,0x18,0xe5,0x0e,0xab,0x19,0x81,0xee,0x11,0xbe,0xe0,0x68,0x44,0x81,0x49,0x3f,0xd8
+.byte 0x12,0xd1,0x8b,0xc1,0xe0,0x51,0xf7,0xc3,0x64,0xa7,0xc5,0x61,0x9b,0x32,0x6d,0xf0,0x6c,0xa6,0xaf,0xf9,0x4a,0xdf,0x94,0xaf,0xc8,0xf2,0x86,0xb1,0x4e,0x2e,0xa9,0xb4,0x35,0x82,0x15,0x8a,0x58,0xf3,0x03,0x2f,0x78,0x07,0x8f,0xb9,0x16,0x7c,0x42,0xfa,0x36,0xaa,0xa5,0x66,0x62,0x44,0xca,0xa6,0x55,0x95,0x27,0xdb,0x48,0xea,0x0a,0x1d
+.byte 0x5a,0xae,0x5c,0xad,0x99,0xfe,0x00,0xf1,0xb9,0x94,0xda,0x09,0x48,0x52,0x9d,0xfc,0xb4,0xb2,0x80,0x19,0x16,0xf8,0xcd,0x68,0x10,0xec,0x1c,0x16,0x3f,0xbb,0x42,0xb4,0x10,0xe3,0xdb,0xaa,0xe4,0x3f,0x2e,0x8e,0xb5,0xce,0xba,0x8f,0xf2,0xb5,0x76,0x98,0x15,0xa7,0x77,0x4b,0x1c,0x30,0xb7,0x6f,0xc9,0xa9,0xa4,0x64,0x59,0xab,0x3a,0x43
+.byte 0x74,0x33,0xab,0xe1,0x3e,0x5e,0x79,0x1c,0xa5,0xb4,0x87,0xe1,0xcb,0xea,0x0e,0x02,0x4b,0x01,0x84,0xbc,0xdc,0x75,0xf4,0x2c,0x2b,0x8d,0xc8,0x5f,0xb5,0xba,0x6b,0xb2,0x4a,0x7c,0xe7,0xaa,0x61,0xa5,0x0c,0xf8,0x02,0x73,0xec,0x11,0x13,0x6b,0x31,0x07,0xaa,0x79,0x78,0x86,0x01,0x77,0x5e,0xa3,0x09,0xd1,0xec,0xaf,0x7d,0xb7,0x65,0xa9
+.byte 0xd8,0x99,0xd2,0xd7,0x6d,0x32,0x97,0x0f,0x0e,0x51,0x0d,0x69,0x81,0x7a,0x94,0x48,0x31,0xe1,0xff,0x26,0x4d,0x30,0x49,0x93,0xfb,0x6e,0xdb,0xea,0xaf,0xcb,0xb4,0xa9,0xc9,0x9f,0xeb,0xca,0x52,0x36,0x26,0xac,0x47,0xda,0x02,0x3d,0xd0,0x93,0x8b,0x61,0x78,0x26,0x54,0x32,0xe8,0x14,0xac,0xf3,0xd2,0x46,0x04,0x12,0x89,0x9f,0xf6,0x11
+.byte 0xf5,0x64,0x83,0x66,0x00,0x50,0x55,0x05,0xb5,0xf6,0x58,0x9f,0xbf,0x4b,0x95,0xf1,0x7f,0x0b,0xb4,0xf7,0x63,0xea,0x6f,0xf7,0xb0,0x20,0x53,0xfe,0x95,0xbc,0xc4,0xe2,0xff,0x75,0xbd,0xab,0x73,0x68,0x44,0x18,0xf7,0x6b,0x04,0x46,0xde,0x6c,0x65,0xb2,0x22,0x4e,0x25,0x8e,0xba,0x7c,0x3a,0x6f,0x80,0x99,0xb4,0xe7,0xf9,0x97,0x68,0x40
+.byte 0xa9,0x96,0xfc,0x6b,0xcf,0x08,0x75,0xe4,0xda,0x6f,0xaf,0x71,0x4f,0x31,0x62,0x31,0x18,0xbf,0xb9,0xa0,0xcc,0x9e,0xa7,0xa2,0x27,0x2a,0xb8,0x6b,0xc0,0x93,0xf5,0x1f,0x41,0x25,0xa7,0x4d,0x9f,0xb4,0x12,0x5c,0x27,0x38,0x5d,0x80,0x88,0xa3,0xb8,0xb2,0xc3,0xd2,0xfb,0x1d,0xba,0x7b,0xac,0x51,0x0b,0x71,0x58,0x3f,0xe5,0xfa,0x36,0xb8
+.byte 0xc7,0x90,0x46,0xd0,0x5a,0x94,0xf0,0x7d,0x6e,0x6c,0x4c,0xb1,0xfa,0xdb,0x97,0x1e,0x19,0xf2,0x1f,0x4e,0x05,0x25,0x0e,0xbd,0x47,0x94,0x2a,0xd3,0x1a,0xbe,0x4a,0x04,0xaa,0x57,0x02,0xc9,0x42,0xc1,0x74,0xcd,0xe1,0x78,0x8b,0xff,0xc1,0xc6,0x17,0x4e,0x71,0xc4,0x2c,0x00,0x23,0x56,0x57,0x1f,0x47,0xd8,0x93,0x80,0xc1,0xc5,0x7b,0xd9
+.byte 0x25,0x30,0xac,0x72,0x37,0x00,0xd2,0xbc,0xc7,0x33,0x73,0xf9,0x14,0x86,0x7c,0xb0,0x28,0x14,0x5d,0xbf,0xbd,0x98,0x1c,0x00,0x05,0x19,0x2b,0x0a,0x55,0xad,0xb4,0x06,0x28,0x58,0x03,0xa1,0xe6,0x27,0xa3,0x32,0x5f,0x41,0xd5,0x6a,0x0b,0xbc,0x0f,0xaa,0xf5,0xc1,0xa7,0x09,0x2f,0x86,0xda,0x56,0xb0,0x04,0x49,0xd4,0x20,0xc6,0xa2,0x6c
+.byte 0x27,0x56,0x4e,0xcd,0x22,0x46,0xac,0x0f,0xd3,0x99,0x69,0x83,0xc4,0xae,0x9f,0x88,0xed,0x9c,0xba,0xfb,0xf3,0x66,0xc7,0x3d,0x65,0x55,0xd0,0xe3,0x04,0x03,0x6a,0x02,0x5c,0xbf,0x9f,0x23,0x34,0x79,0xe1,0xbe,0x7d,0xad,0xb4,0xc7,0x9e,0x4d,0x80,0x73,0x6d,0xe5,0x37,0x03,0xac,0xa3,0xf4,0x93,0xad,0x1e,0xf3,0xcd,0xb8,0xe2,0xeb,0x30
+.byte 0xc7,0x50,0xfe,0x0a,0x63,0x5e,0x0f,0xc9,0xd0,0x06,0x58,0xc1,0x6e,0x65,0x54,0x54,0x5d,0xaf,0xf1,0xe8,0x3e,0x95,0xe3,0x70,0x40,0x8e,0xb8,0x4d,0x76,0xda,0xa8,0xe8,0x9e,0x88,0xd8,0xaf,0x67,0x83,0x3b,0x77,0x65,0x58,0x00,0xbb,0xf7,0xe9,0x52,0xf0,0xba,0x0d,0x0a,0x59,0x28,0xe4,0xa7,0xfb,0x06,0xe5,0x34,0xbe,0xcf,0x10,0x7c,0x73
+.byte 0xa8,0xf3,0xa2,0x93,0x96,0x9e,0x4f,0x9b,0x3c,0xd1,0x9f,0x64,0x5b,0x8c,0xc1,0x89,0x66,0x67,0x13,0x52,0xb2,0xaa,0x6b,0x8e,0xea,0x97,0x27,0x20,0x2e,0x64,0xec,0xf0,0x72,0xc9,0x54,0x8a,0xed,0x78,0x3a,0xd7,0x4f,0xc2,0xba,0xc3,0xb8,0x64,0x7f,0xe4,0x5f,0x3d,0xf7,0xe5,0xd9,0xf1,0x8d,0xb1,0xd2,0xf6,0xcc,0x34,0xd8,0x7d,0x16,0xca
+.byte 0x47,0xaf,0x85,0xe5,0x4a,0x57,0xb9,0x5a,0x9e,0xff,0xb8,0x83,0xec,0x7c,0xb8,0x07,0xf5,0xd3,0x31,0x31,0x2b,0xf0,0x40,0x46,0xc3,0x63,0x27,0xe4,0xb0,0x3b,0x84,0x0d,0x50,0x05,0x80,0x0c,0xfa,0x8b,0x0e,0x33,0x6b,0x10,0xd4,0xf5,0x4f,0x8b,0x2d,0x9e,0xc5,0x01,0x92,0x52,0x62,0x1a,0x89,0x1e,0xca,0x48,0xc3,0xd6,0xfa,0xd2,0x94,0x7c
+.byte 0x77,0x6e,0xa7,0xeb,0xd7,0x4f,0xe8,0xc8,0xc2,0x71,0xb2,0x9e,0x86,0x30,0x18,0xfd,0x4c,0x56,0x4c,0xd0,0xa4,0x84,0x37,0x02,0x02,0x6a,0x8d,0x57,0x6b,0xc2,0x06,0xd1,0x8a,0xdb,0xa0,0xcc,0x31,0xf9,0xcf,0xbf,0xf2,0x29,0x7c,0x26,0xac,0x1f,0x03,0x20,0x26,0x76,0x03,0x6f,0xa5,0xb5,0x33,0xfb,0x02,0xe8,0xf6,0xe9,0x5e,0xb1,0x36,0x7c
+.byte 0x96,0x56,0xb1,0x98,0x2d,0x9c,0x38,0x9b,0xd4,0x56,0x28,0xcc,0xdb,0x08,0xd3,0x42,0x00,0x35,0x24,0xd9,0x74,0xa2,0x0d,0x55,0x21,0x06,0xb7,0xf9,0x6a,0xa0,0x81,0xc1,0x2d,0xb6,0x67,0x91,0x92,0x24,0x36,0xfd,0x2e,0xd8,0xc0,0xcb,0xc8,0x87,0x1a,0x41,0x11,0x70,0xbf,0xd2,0xe7,0x82,0x10,0x74,0xdf,0x65,0x46,0x19,0x6b,0xb4,0x89,0xeb
+.byte 0x9e,0xcf,0x79,0x35,0xba,0x25,0x75,0x32,0x64,0x6a,0xfb,0xaf,0xe5,0xed,0x85,0x98,0x34,0x75,0x31,0x40,0xbb,0xd8,0xe3,0xf5,0xa7,0xa2,0x9a,0x9e,0xcd,0xc4,0xf8,0xd8,0x15,0x6c,0x64,0x0c,0x6c,0x16,0x60,0xe9,0x40,0xf4,0x7a,0x14,0x37,0x7b,0x45,0x9b,0x0e,0x29,0x7a,0x1a,0x88,0x10,0xb9,0x2b,0xee,0x13,0xbd,0x8a,0xde,0x7a,0xe9,0x30
+.byte 0xe8,0x39,0x77,0x74,0xf5,0x2f,0xe3,0x10,0x19,0x89,0x28,0x21,0x3a,0x68,0x38,0xb4,0x4d,0x20,0x8d,0x7d,0xec,0x3f,0xf7,0x61,0xbf,0x53,0x32,0x3b,0xb8,0x6a,0xc9,0x58,0xeb,0xd4,0x33,0x0e,0xee,0xc7,0xb9,0x5e,0x3d,0x17,0x7e,0x36,0xa2,0xa6,0x94,0xb1,0x56,0xb6,0x8e,0x94,0x05,0x50,0x69,0x52,0x4f,0x31,0xe5,0x97,0x18,0xde,0x8f,0xb7
+.byte 0xff,0x2e,0x6f,0x1b,0x6a,0xda,0xfd,0xa1,0xd1,0x9a,0x4e,0x6a,0x1b,0x46,0x71,0x52,0x76,0x66,0xf9,0x70,0x8d,0x7d,0x97,0xb0,0xc3,0x8d,0xbc,0x35,0x26,0xe8,0x0b,0x80,0xc7,0x58,0x19,0x22,0x70,0x33,0x06,0xeb,0xcf,0x26,0x22,0xe0,0x97,0x91,0xbf,0xd6,0x94,0x05,0xe1,0x84,0xe2,0x31,0x66,0x57,0xc7,0x1e,0x36,0x30,0x50,0xaf,0x72,0xb3
+.byte 0x31,0xad,0x84,0xcc,0xb5,0x76,0x03,0xe1,0x56,0x97,0x87,0x36,0xf5,0xaa,0x97,0x99,0x38,0xa5,0xf5,0xb7,0x42,0x86,0x3b,0x2f,0x8a,0xb9,0x8e,0x6a,0x0b,0xe0,0xca,0xbc,0x4c,0x6c,0xc1,0x3f,0xbe,0x45,0xef,0xd2,0x57,0xcd,0x29,0xfb,0xfb,0xa5,0x79,0xf2,0xb1,0xbb,0x4b,0x55,0x26,0x2f,0x5c,0x84,0x5e,0x6a,0xc6,0xa9,0xd5,0x23,0xe4,0xd1
+.byte 0xe5,0xf0,0xbc,0x50,0x6a,0x2a,0xaf,0xa2,0x7c,0xcc,0x36,0x95,0xf9,0x5c,0x04,0x6d,0x04,0x31,0xbe,0x1d,0xb2,0x50,0x97,0x8f,0xdf,0x8a,0xed,0x4e,0x4e,0x0a,0x0b,0xfc,0xfc,0x1d,0xa9,0x6a,0x76,0x6a,0x33,0xd7,0x0a,0xcf,0xd5,0xdd,0xc6,0x62,0xe5,0x59,0x02,0xba,0x9c,0x43,0x32,0x8a,0x0e,0x47,0x91,0x00,0x07,0x47,0x93,0xc4,0xad,0x29
+.byte 0x33,0x57,0x15,0x45,0x44,0xb9,0xf3,0xc4,0xe6,0xd2,0xb9,0x3a,0x44,0x16,0x32,0x8d,0x57,0x78,0xac,0xf5,0xdb,0xa2,0x93,0x97,0x64,0x08,0x9b,0x66,0x4b,0xa0,0x64,0xab,0xa0,0xd6,0x0e,0x2c,0xa1,0x25,0x16,0x5c,0x6f,0x82,0xff,0x8e,0x89,0xfb,0xca,0x03,0xa6,0xf8,0xa1,0xf6,0x87,0x02,0x5c,0x90,0xcb,0x33,0xa0,0xc0,0x90,0xc2,0x1f,0xdd
+.byte 0x5c,0x50,0x93,0xf2,0x8b,0x87,0xa1,0x73,0xda,0x5f,0xa3,0x20,0xd4,0xe7,0x45,0xd7,0xea,0x4b,0x5d,0xd6,0x80,0xfc,0x2d,0xdc,0x45,0x6a,0xf6,0xaf,0xd4,0x7a,0x91,0x64,0x15,0x17,0xbf,0xc7,0x58,0x54,0x7c,0x08,0x42,0x4f,0x8d,0xab,0x9b,0xd0,0x1d,0x57,0x71,0x50,0xa7,0xe3,0xb4,0xf2,0x14,0x0c,0xd7,0x2f,0x7c,0x8b,0x17,0x61,0x98,0xfa
+.byte 0x19,0x34,0xb9,0x65,0xc5,0x5c,0xfe,0xa3,0x80,0x6f,0x99,0xec,0xfa,0x06,0x22,0x71,0xa9,0x10,0x2a,0xcf,0x12,0xb3,0x17,0xe5,0x59,0x3a,0xaa,0xcb,0x55,0x5f,0x45,0x9d,0xe9,0x29,0x56,0x34,0x11,0x62,0x6e,0x0a,0x95,0x12,0x5d,0xd4,0xa2,0x28,0x05,0xf1,0x0f,0x2d,0xa0,0x1e,0xe1,0x2b,0x42,0x6c,0xf0,0xe6,0x47,0xe0,0xb2,0xbd,0x89,0x20
+.byte 0x5e,0x24,0x05,0xec,0xf1,0x33,0xfc,0xa9,0x2f,0xef,0x3a,0x1f,0xfe,0x39,0xfe,0x01,0x09,0x0a,0x2a,0xe0,0x96,0x1e,0xde,0xad,0x96,0xaa,0x48,0xeb,0x8a,0xe6,0x54,0xbb,0x5d,0x7a,0xbe,0x4a,0xbf,0x96,0xf6,0x15,0x7a,0x70,0x6f,0xee,0xe7,0xf5,0x53,0xaf,0xe1,0xbb,0xaf,0x58,0x51,0xd4,0xa0,0xc6,0x44,0x03,0x47,0x33,0xce,0x58,0x62,0xd3
+.byte 0x93,0x21,0xa5,0xa5,0xb4,0xef,0x1d,0x93,0xcc,0x8c,0xf7,0x14,0xe3,0xec,0x40,0x52,0x47,0xe6,0xbc,0xe6,0x85,0x69,0xd0,0x15,0xad,0x24,0x21,0x4f,0x26,0x01,0x60,0x0f,0x0f,0xcb,0x7e,0x14,0x01,0xe1,0x90,0x11,0x06,0x17,0x38,0x2d,0xd8,0x26,0xe2,0x7c,0xd6,0xef,0xe0,0x59,0xf0,0x8c,0x2a,0xbd,0xba,0xe5,0x8b,0x07,0x56,0xd3,0x35,0xb3
+.byte 0x64,0x83,0x9e,0xb9,0xb9,0xeb,0x88,0x03,0xff,0x14,0xf3,0x8b,0x14,0xd3,0xa4,0xac,0x08,0xd9,0x75,0xf6,0x2c,0x9d,0x7f,0xc8,0x9d,0x11,0x3b,0xd1,0x71,0x14,0x4b,0x2a,0x6d,0x20,0x83,0x32,0x35,0x7e,0x1f,0x20,0xa6,0x69,0xbf,0xcf,0x22,0xd9,0xa2,0x57,0x4b,0x66,0xb1,0x9f,0x5a,0xa8,0xaa,0xb8,0x11,0x1d,0x45,0x28,0xac,0x86,0x09,0x37
+.byte 0xe9,0x1f,0xef,0xb4,0xe0,0x6f,0x75,0xad,0xe5,0xd8,0x25,0x06,0x19,0xb4,0xa8,0x07,0x78,0x79,0x43,0x63,0x40,0x26,0xbd,0x28,0x50,0x2d,0x29,0x26,0xf9,0xfc,0x5c,0x71,0x8f,0xfd,0x62,0x12,0x7c,0xd0,0x67,0xb3,0x65,0xef,0x31,0xc0,0x99,0xc1,0x54,0xfc,0x32,0x6e,0x25,0x56,0x77,0x6e,0xc1,0x6b,0x11,0x50,0x7c,0xa1,0x0b,0x97,0x8a,0xfe
+.byte 0x0f,0x5b,0x16,0x93,0x83,0xe0,0xd8,0xb7,0xbf,0xa8,0x90,0x6d,0xd6,0x8b,0x4b,0xd9,0x17,0xbb,0xe8,0xd9,0xbb,0x5f,0x39,0x4a,0x33,0x7c,0xb3,0x12,0x99,0x1e,0xfc,0xb2,0x05,0x91,0x67,0xdf,0x8d,0x0b,0x55,0xfb,0xd1,0x8d,0x0c,0x9b,0x80,0x81,0xee,0x8c,0x05,0xe2,0x16,0x30,0xad,0x1f,0x88,0x04,0x75,0xc1,0xe5,0xec,0x32,0xf8,0xa0,0x5b
+.byte 0x21,0xf6,0xd8,0x13,0x26,0xe4,0xa1,0x32,0xa8,0x93,0x91,0x5d,0x33,0x45,0x83,0x72,0x52,0x59,0x23,0x84,0xf6,0x7b,0xe2,0x90,0x20,0xc6,0x40,0x33,0xa9,0x94,0xcd,0xb9,0xab,0xe4,0x44,0x0b,0x06,0xbb,0x4c,0x2c,0x2a,0x5e,0x4d,0x57,0xb7,0xe0,0xb8,0x86,0x74,0xab,0xea,0x37,0x1c,0xa0,0xa6,0x21,0x33,0xc7,0xf5,0x24,0x7d,0x14,0xc8,0x8b
+.byte 0x9d,0x8f,0x31,0x23,0x29,0x9d,0x11,0x42,0x07,0xe8,0x2c,0xec,0x7d,0x70,0x8d,0xb5,0xa4,0xca,0x33,0x30,0x03,0x75,0x17,0xa1,0x10,0xe7,0x6b,0x87,0xf9,0x0b,0xef,0x43,0xef,0xf8,0x24,0xc2,0xf1,0x7a,0x1a,0x70,0x7e,0x2f,0xd4,0xeb,0x97,0x40,0xa6,0xe6,0x2d,0xc1,0xd8,0x3b,0xee,0xa4,0xda,0xd3,0x50,0x41,0x18,0xbf,0xad,0x66,0x02,0x85
+.byte 0x60,0x14,0xcf,0xce,0x50,0x88,0x5e,0xb6,0x73,0x11,0xbb,0x6a,0xca,0xb1,0x46,0x8e,0xbb,0x58,0x2c,0x63,0x61,0x20,0xec,0xc9,0x98,0x0c,0xdb,0x5c,0xe5,0x47,0xb5,0x89,0xe9,0x14,0xc8,0xbc,0x35,0xf2,0xa7,0x2d,0x84,0xcc,0x61,0xc8,0xb6,0x9d,0xeb,0xcb,0x8b,0x73,0x90,0x6d,0x06,0xc9,0x42,0xcf,0xd2,0x15,0x80,0x2d,0x39,0xeb,0x71,0x83
+.byte 0x27,0x0d,0x85,0xf9,0xa3,0xce,0xef,0x29,0x3b,0x10,0xb7,0xe9,0xd0,0x86,0x6e,0x88,0x1e,0x3b,0xdd,0xaf,0x52,0xde,0xa2,0xa4,0x13,0x3c,0x1f,0xcb,0x84,0x74,0x12,0x04,0x91,0x40,0xb8,0x1b,0x15,0xfd,0xdb,0xe8,0x74,0xcc,0x4d,0x41,0xb5,0x5a,0x92,0xd3,0x71,0xf7,0x57,0xa5,0xf7,0x18,0x5a,0x57,0x36,0xde,0x8f,0xb2,0x81,0x59,0xc8,0x5c
+.byte 0x22,0xcf,0xdc,0x7d,0xff,0x83,0xf2,0xad,0x8c,0x7b,0xd5,0x04,0xc4,0xb9,0x79,0x4a,0x12,0xa7,0xb1,0x7e,0x57,0xa5,0x6b,0x56,0x8a,0x11,0x96,0x57,0xde,0x35,0xdd,0xef,0x9b,0x03,0x41,0xde,0x61,0x5b,0x73,0x8c,0x6a,0x0c,0x6f,0xae,0x45,0x4b,0x56,0x4d,0xbe,0x8a,0x3f,0xdb,0x79,0x58,0x88,0xad,0xcb,0xfa,0x66,0x06,0x0e,0x74,0x21,0x1d
+.byte 0xe1,0x94,0xd7,0x06,0xea,0x60,0xe2,0x7d,0x70,0xcf,0xa9,0x4f,0xe6,0x9b,0xba,0x19,0x71,0x69,0x94,0x66,0x5a,0xb8,0x49,0x0c,0xd1,0x9a,0xc4,0x5f,0xa7,0xf4,0x9e,0x3d,0x9e,0xc2,0xd8,0x0e,0xd2,0x6d,0xc6,0xc8,0x99,0xc3,0x5e,0x3b,0xb9,0xd8,0x48,0xc0,0x38,0x48,0x95,0x89,0xff,0x7e,0x1d,0x80,0x53,0xac,0x7b,0xd7,0xfc,0x6f,0x5d,0x25
+.byte 0x2f,0xcf,0x15,0xdb,0x1a,0x64,0xc1,0x16,0x91,0x65,0x84,0x99,0x0a,0xc1,0xbf,0x4d,0x11,0xa5,0x55,0x55,0x35,0x93,0x6f,0x47,0xf1,0x75,0xb8,0xb6,0x11,0x9d,0x6e,0x3b,0xd1,0x11,0x20,0xa2,0xa2,0x5c,0x33,0x85,0x09,0xb8,0x13,0xc9,0xdd,0xf2,0xd4,0x32,0x37,0xf2,0xef,0x47,0xfa,0x25,0x1a,0xcc,0xdf,0xf4,0xe4,0x2c,0x2c,0x7f,0x23,0xb6
+.byte 0xa8,0xd4,0x6a,0xd4,0xb4,0x06,0x2e,0xb0,0xaa,0xa1,0x18,0x8a,0x5c,0xc6,0xb2,0x4c,0x71,0x92,0x4a,0xdc,0x81,0x20,0x51,0x8d,0x3f,0x71,0x7d,0x8c,0x25,0x79,0x07,0x14,0xa9,0x7a,0x8b,0xda,0x00,0xfc,0x51,0xdb,0xa0,0x50,0x2b,0x15,0x39,0xf6,0xad,0xdc,0x9e,0x22,0x93,0x2f,0x43,0xd8,0x5c,0xa2,0x5e,0xfa,0x70,0x8c,0xe0,0x6b,0x0e,0x93
+.byte 0x6c,0x89,0xfe,0x22,0x4c,0xec,0xb0,0x7e,0xc1,0x06,0x69,0xf7,0x2f,0x3e,0xe5,0xa4,0x45,0x53,0xab,0x9c,0xf5,0x40,0x05,0x53,0x64,0xc6,0xa7,0xf9,0xc4,0xd6,0x89,0xd9,0x47,0x72,0x8e,0x42,0xf9,0x64,0x12,0xeb,0xd9,0x25,0xdc,0x4c,0xc6,0xea,0x9c,0x4b,0x93,0xb4,0xa2,0xa6,0xae,0x95,0xc1,0x84,0x75,0xc9,0x22,0xe3,0x22,0x81,0x31,0xd1
+.byte 0xfd,0x2e,0x91,0x4a,0xc3,0x00,0xa6,0x57,0xbb,0x89,0x9f,0x2d,0xc3,0x2e,0x1f,0xa2,0x47,0xc4,0xa3,0xcd,0x2b,0xc2,0x29,0xaf,0x89,0xce,0x2e,0x87,0x8e,0xd8,0xfc,0xee,0xab,0x8a,0xbd,0x2f,0xee,0xcf,0x94,0xe0,0x74,0x70,0x86,0x00,0x42,0x11,0x8b,0x6c,0x81,0xd4,0x82,0xf2,0x29,0x3e,0x9c,0x68,0x71,0xaa,0x20,0x0a,0x51,0x5d,0x80,0x4c
+.byte 0xca,0x04,0x23,0x23,0xe2,0x69,0xb3,0xf5,0x65,0x98,0x19,0xee,0xa9,0x4d,0xd8,0xe0,0x06,0x4b,0x17,0xed,0xfa,0xf2,0xe3,0xd3,0x69,0x48,0xe4,0x4e,0xc0,0x5a,0x16,0x90,0xdb,0xb6,0x32,0x6e,0x6b,0xd7,0x7a,0xb6,0xd4,0x82,0xe4,0xcc,0x31,0x31,0x5c,0x18,0x84,0xef,0x75,0x9f,0xda,0xf6,0x62,0x2d,0x96,0x4d,0xa1,0x3c,0xb5,0x4a,0xbb,0xbf
+.byte 0x9d,0xb3,0x33,0x00,0xc1,0x73,0xc5,0xb2,0xeb,0x85,0x74,0xb0,0x68,0xed,0x16,0x66,0x71,0xc9,0x7e,0x6f,0x74,0xa6,0xe7,0xed,0xf0,0xfa,0xab,0x41,0xdd,0x10,0xf9,0xff,0x4c,0xb6,0x4f,0x15,0xe3,0x77,0x31,0x17,0x5c,0x5a,0xef,0xb2,0xa9,0x44,0xbe,0x97,0xa9,0x75,0x5a,0xb7,0xe0,0x16,0x17,0x37,0x1b,0x71,0x03,0xb9,0xaa,0x7b,0x7b,0x52
+.byte 0x46,0x58,0x6b,0x9b,0x87,0x27,0xa6,0x8a,0x0e,0x84,0x03,0x45,0x95,0x04,0xf1,0x7e,0xb6,0xf6,0x79,0xd5,0x66,0x6d,0x50,0x8c,0x5a,0x67,0xe0,0xdd,0x69,0xd8,0x92,0x75,0x15,0xcb,0xa5,0x05,0xfe,0x7a,0xc1,0xd6,0x11,0x57,0x10,0xa3,0xc3,0xb6,0xe9,0xe3,0x97,0xa5,0x46,0xc9,0xe9,0x9b,0x68,0xb6,0x55,0x0b,0xf2,0x17,0x9d,0x0e,0x7f,0xd9
+.byte 0x26,0x0c,0x01,0xff,0x95,0xe1,0x05,0xb7,0xbf,0x0d,0x77,0x12,0x96,0x03,0x71,0x01,0xc9,0x98,0xb4,0x44,0x94,0xc0,0xad,0x3d,0xfc,0x6f,0xe5,0x0c,0xa4,0x65,0xd7,0xe7,0x76,0x7c,0xb8,0xa0,0x0a,0xcd,0xe8,0x01,0x26,0x8e,0x94,0xec,0x94,0x65,0x86,0xee,0x4d,0x3b,0xc5,0xb5,0x2e,0x51,0xb7,0xa9,0x68,0xcd,0x14,0x90,0xd8,0x36,0xfb,0x52
+.byte 0x04,0x52,0xb4,0xca,0x9b,0xbf,0xc6,0x94,0x28,0xc5,0x7e,0x27,0x73,0xae,0x6d,0xba,0xe7,0x56,0xce,0x2e,0x00,0xeb,0x36,0x19,0xd7,0x4f,0x20,0x5e,0xfd,0x0f,0xd4,0x4c,0x02,0xaf,0xdb,0x74,0xef,0xf0,0x73,0x1e,0x2a,0x1a,0xe7,0x3a,0xe0,0xa5,0x89,0xcf,0x1a,0x66,0xbd,0x72,0x65,0xb4,0xf4,0x86,0x33,0x44,0xee,0x35,0xf6,0x09,0xbe,0x13
+.byte 0x96,0x84,0x04,0x95,0x3f,0x35,0xbb,0x01,0x2c,0x78,0x25,0xe8,0x1e,0x46,0xdb,0xd9,0xb1,0xe8,0xfb,0x2b,0xa8,0x59,0x72,0x5f,0x91,0xd3,0x7c,0x21,0x95,0xa9,0x50,0xa2,0x45,0x6f,0x48,0x0c,0xf2,0x51,0x10,0x3c,0xcd,0xea,0xeb,0x5d,0xc7,0xf9,0x0e,0xae,0x1a,0x02,0x05,0x15,0x12,0x10,0xc0,0x35,0x12,0x97,0xcd,0x5b,0x61,0x4f,0xd1,0xd3
+.byte 0x5b,0xec,0x2b,0xa0,0x20,0x03,0x2b,0xf3,0xe6,0x71,0x23,0xca,0x1d,0x48,0x64,0x3f,0x7e,0x52,0x8b,0xf9,0x96,0x33,0x31,0xbc,0xbd,0x73,0x2f,0xa6,0x80,0xb8,0x0b,0x3a,0xd7,0xf8,0x05,0xf0,0x06,0xc7,0xa5,0xce,0x6a,0x6a,0x62,0xae,0x06,0x93,0xa4,0x5f,0x0b,0x5d,0x4d,0xb8,0xa4,0xfa,0x2e,0xfc,0xb6,0x58,0x8c,0x2a,0x46,0xa4,0x55,0x1f
+.byte 0x9b,0x9b,0x13,0xdd,0x17,0x2a,0x3d,0x04,0x51,0xb6,0xbe,0x9c,0xca,0xf3,0x23,0xb6,0x7b,0x7a,0x92,0xb7,0x2f,0xf9,0x69,0x9a,0xee,0xb3,0xa1,0x60,0x56,0xcf,0x9d,0xab,0xfe,0x86,0x7a,0x41,0x94,0x15,0xbe,0xa3,0xa5,0x85,0x09,0xfb,0x7b,0x89,0xbd,0xc3,0x09,0x10,0xa6,0xfc,0x41,0x8e,0x57,0x27,0xdc,0x58,0xf4,0x01,0x7c,0x31,0x5e,0xca
+.byte 0xaf,0x31,0x2f,0x98,0x8b,0xbe,0x19,0x16,0xa1,0x81,0x7e,0xb3,0xa9,0xc5,0x15,0xd2,0xad,0x51,0xa1,0x73,0x56,0xd3,0x6a,0x15,0x35,0xe3,0xb1,0xdb,0x83,0x4c,0xe2,0x85,0x8c,0x03,0x12,0xc4,0x64,0x69,0xc0,0x23,0x16,0x7b,0x68,0x46,0x44,0x22,0x84,0xa6,0xb5,0xe4,0x90,0x91,0xc1,0xdd,0x25,0x7c,0x54,0x0e,0xce,0x5b,0x11,0xe4,0x50,0x1c
+.byte 0x3c,0x0d,0xc7,0xc1,0x0c,0x10,0x2d,0x8b,0xb7,0xde,0xe2,0x4f,0x7e,0x22,0x53,0xfc,0x07,0x55,0x19,0x14,0x3b,0x33,0xf5,0xf3,0xd8,0x7b,0x5e,0x40,0xa2,0x81,0x6d,0x40,0x0d,0x20,0x36,0x4b,0xa1,0x34,0x34,0xac,0x43,0x59,0xb5,0xb1,0x90,0x8b,0x48,0xcf,0x15,0x57,0x17,0x0e,0xd0,0xbf,0x28,0xcd,0xa4,0x77,0x4d,0xae,0x09,0x4c,0x67,0x51
+.byte 0x18,0xaa,0xb4,0xc9,0x35,0x41,0x0b,0x34,0x4d,0xb3,0xef,0x3f,0x46,0x97,0x6e,0xae,0x75,0xd7,0x6a,0x2b,0x22,0x9c,0xef,0x8e,0xaf,0x72,0xb0,0x14,0x90,0xbd,0x11,0x90,0xde,0x9a,0x02,0x8c,0x20,0xf5,0xc7,0x33,0x4d,0x94,0x88,0x9a,0x6c,0x18,0xb4,0xc0,0xa9,0x94,0x07,0x9a,0x4b,0x10,0x8f,0xe8,0x25,0xcd,0x9b,0xf5,0xfa,0x91,0x8a,0xc0
+.byte 0x93,0x61,0x1c,0x00,0xd1,0x34,0x9a,0x29,0xa3,0x35,0x38,0xe4,0xa7,0x9f,0xb6,0x88,0x0f,0xad,0x88,0x96,0xa0,0x73,0xe7,0x10,0xea,0x36,0xe8,0x88,0x6c,0x7f,0x03,0xbc,0xfe,0xe0,0xb2,0x4b,0x24,0x98,0xf6,0x73,0x6f,0xab,0x00,0x1e,0x26,0x83,0x0d,0x86,0x5b,0xa6,0x51,0x8f,0x5f,0xa9,0x8f,0xf4,0xa0,0x51,0xff,0xe0,0x64,0x09,0x95,0xfb
+.byte 0x56,0x53,0x18,0x61,0xea,0xc5,0x33,0xe8,0x6f,0x8a,0x07,0x97,0x1a,0x6c,0xb5,0xf8,0x73,0xae,0xe4,0x4e,0x6d,0xb2,0x83,0x20,0xfa,0xfd,0x79,0xa6,0x6c,0xaa,0x9b,0x7b,0x2c,0xfe,0x63,0x73,0xbc,0x87,0xd4,0x56,0xd1,0xb1,0xf1,0x0f,0x72,0x2c,0x2f,0xf0,0xf0,0x53,0xe2,0x6c,0x19,0x0d,0x9c,0xad,0xc8,0x0a,0x62,0x72,0xcb,0xc3,0x12,0x90
+.byte 0x4c,0x26,0xe3,0xa0,0x07,0x35,0xee,0xaf,0x81,0x35,0x07,0xa9,0x31,0xa0,0x59,0xc8,0x40,0xa5,0x45,0xb6,0x6d,0x3e,0xa2,0x5f,0x6a,0x79,0x74,0x65,0xa1,0xe3,0x1c,0xca,0xae,0xcc,0xa6,0xb6,0x0a,0x12,0x99,0x8e,0xc3,0xef,0x43,0xcf,0x42,0x92,0xa4,0x12,0xa3,0x8b,0x97,0x7d,0x6f,0xe0,0x35,0xed,0xac,0x69,0xae,0x8c,0xe1,0x32,0x11,0xa4
+.byte 0xe0,0x76,0x7f,0x75,0x92,0xda,0xfe,0x94,0x33,0xeb,0xe1,0xa4,0x3c,0x95,0x7c,0xc6,0xbc,0x3d,0xf2,0x39,0xa1,0x29,0x39,0x24,0x09,0xd4,0x52,0x68,0xfb,0x80,0xd0,0xd4,0x57,0xc6,0x4c,0xa5,0xa6,0x90,0xa6,0x61,0x15,0x2f,0xd3,0x35,0x36,0xf5,0x16,0xb3,0x65,0x0a,0xc4,0xcb,0x7f,0x73,0xe4,0xba,0x9a,0xd8,0x8b,0xc3,0x01,0xa0,0x08,0x57
+.byte 0x9e,0x26,0x54,0xbc,0x55,0xd1,0x5f,0xaa,0xb5,0x0d,0x42,0x75,0x04,0x76,0x8c,0xef,0xcf,0x64,0x3a,0x2e,0x4c,0x78,0xe5,0x37,0x8d,0x55,0xec,0xc1,0x7b,0xce,0x5f,0x5f,0x43,0x8b,0xdd,0x46,0x43,0xf5,0xa8,0x41,0xa6,0x82,0x1b,0x12,0xcb,0xcb,0x6d,0xa1,0x6c,0xb6,0x79,0x46,0x12,0x89,0x12,0x61,0xd6,0x4f,0xf9,0x43,0x2d,0x27,0xa9,0x61
+.byte 0x2e,0x2a,0x29,0x1b,0x6d,0xad,0x32,0x0b,0x6c,0x7c,0xf4,0xb8,0x98,0x91,0xbb,0x78,0xda,0x85,0xe8,0xfb,0x4e,0x11,0xc4,0x2a,0x07,0x54,0xa0,0x67,0x73,0x1b,0xa4,0x60,0x15,0x5c,0x83,0xbf,0x3f,0xd9,0x61,0x30,0x02,0xbb,0xa6,0x67,0xcd,0x0c,0xd1,0xb4,0x11,0x7e,0xca,0xf4,0x1e,0xed,0x83,0x34,0x66,0x54,0x23,0x39,0x36,0x8c,0xa0,0xc6
+.byte 0xef,0xad,0xa1,0x95,0x04,0x20,0x46,0x42,0xa8,0x99,0xd2,0x98,0xc6,0x0a,0x92,0x11,0xd1,0x84,0x4a,0xbf,0x25,0xe5,0xcf,0x78,0x98,0x81,0x80,0xaa,0x31,0x0a,0xa4,0xfb,0xef,0x35,0xfa,0xa4,0xac,0x5f,0x01,0x6b,0xb7,0x8e,0x86,0xc1,0x46,0x97,0x88,0xe2,0xaa,0x3b,0x1f,0xb5,0xf8,0xa9,0x90,0xf0,0x45,0x6d,0xdd,0xa3,0xdd,0xd8,0xef,0x36
+.byte 0x6f,0x87,0x55,0xf6,0x96,0xcd,0x88,0x43,0x03,0x97,0x82,0xea,0x5a,0x1c,0xa1,0x1a,0x7b,0x1b,0xa7,0xfc,0xaa,0x86,0xb4,0x71,0xde,0x0d,0x0a,0x52,0x98,0xd2,0x65,0x5d,0xa4,0xea,0x91,0xc9,0xe4,0x8b,0xd0,0xdb,0x85,0xe3,0x86,0x85,0x50,0xe1,0x41,0x1f,0x48,0x97,0x64,0xec,0x34,0xe4,0x54,0x42,0xf4,0x01,0xed,0x6f,0x4d,0xe3,0x1f,0x86
+.byte 0x14,0xbc,0x01,0x9c,0x7f,0x02,0x0c,0x65,0x94,0xd2,0x90,0x2c,0x1b,0xab,0x41,0x88,0xad,0x58,0xb5,0x71,0xd3,0xd6,0xe1,0x3f,0xf3,0x3c,0xb6,0xab,0x22,0x08,0x17,0xc7,0xf5,0x7e,0x34,0x56,0xae,0x1d,0x1e,0x7e,0xdb,0x24,0xe2,0xc2,0x38,0xf3,0x4d,0x46,0xe4,0x45,0xcb,0xb7,0x2f,0x0f,0x96,0x72,0x7e,0x31,0x89,0x17,0x9c,0xed,0x85,0xb9
+.byte 0xc8,0x8f,0x65,0x93,0xfb,0xb8,0x9e,0x41,0xa2,0xc1,0xcf,0xdb,0xe2,0x4c,0x26,0x4a,0xc7,0x2a,0x72,0xf6,0x28,0xbc,0x18,0x22,0xde,0xa1,0xfa,0x46,0xbe,0x95,0xc8,0xe2,0x19,0xbb,0x20,0x7b,0xd5,0xf8,0x34,0x15,0xaa,0xec,0xe2,0x9e,0xa9,0x3d,0xa1,0xd9,0xaa,0xc9,0x18,0x39,0x07,0x5c,0x81,0x61,0xe7,0x00,0xc5,0x57,0x3e,0xca,0x4d,0x89
+.byte 0x33,0x02,0xa6,0xc8,0x15,0xb7,0x24,0xdd,0x5c,0x55,0x56,0x11,0x5c,0x17,0x1b,0xda,0xc6,0xd5,0x46,0x6e,0x9f,0x70,0xe7,0x1e,0x41,0xee,0x91,0x1a,0xa0,0xad,0x35,0x64,0xdf,0x4a,0x18,0x03,0xa7,0xa8,0x88,0x8f,0x65,0xbc,0x76,0x34,0x08,0xab,0x50,0xc6,0xd3,0x08,0x7c,0xc1,0x4f,0x77,0xcd,0x1a,0xc6,0xed,0x35,0xea,0x4e,0x8a,0x6a,0x38
+.byte 0xa3,0xa3,0xd8,0xa9,0xa2,0x68,0xa7,0xd8,0xe0,0xc8,0x3f,0xfe,0xe7,0x73,0xc6,0x6b,0xd8,0x0c,0xd5,0x8f,0x81,0xe7,0x37,0x08,0x93,0x28,0x73,0xef,0xc4,0x91,0x52,0xa5,0x30,0xff,0x47,0x95,0x02,0x0d,0x8c,0xfd,0xc9,0x28,0x60,0xa9,0xad,0x30,0x00,0xcc,0x3a,0x00,0xbb,0x25,0xab,0xd0,0xf8,0x25,0x46,0x20,0xc0,0x67,0x9b,0xd6,0x10,0xa6
+.byte 0x84,0x6f,0x66,0x60,0x66,0x75,0xb6,0xfb,0x39,0x3a,0x9f,0x7d,0x32,0x7f,0x12,0x6f,0x8c,0xed,0x79,0x40,0x47,0xa3,0x27,0x17,0xa8,0xa4,0x02,0x93,0xb9,0x32,0x03,0x34,0x06,0x76,0x71,0x40,0x90,0x2b,0xe7,0xd0,0x3f,0x59,0xa7,0xfb,0x3a,0x7b,0xc8,0xa5,0x86,0x21,0x0d,0xf6,0xc6,0x49,0x07,0x56,0xe9,0xfc,0xac,0x61,0x30,0xa5,0x7e,0x90
+.byte 0x10,0xc8,0xdb,0x15,0x2b,0x75,0x27,0x77,0x51,0x42,0xcf,0x50,0xe8,0x6c,0x0b,0xb7,0x17,0x1a,0x89,0x7d,0xfe,0xd2,0x75,0xfa,0xb7,0xe5,0x68,0x10,0x1c,0x27,0x85,0x8b,0x52,0x7d,0x87,0x57,0x50,0x77,0x25,0x9d,0xcc,0x08,0x6a,0xad,0x63,0xf8,0x8e,0xe0,0x21,0x62,0x56,0x48,0x29,0xed,0x81,0x1d,0x6b,0x60,0x55,0x78,0x6a,0xce,0xd6,0x79
+.byte 0xe1,0x66,0x18,0x9f,0x71,0xf7,0x0c,0xec,0x35,0x53,0xef,0x39,0xfe,0x57,0x71,0xc0,0x49,0x4b,0x55,0xe8,0x3d,0x9b,0xe3,0x9a,0xbb,0xf8,0x61,0x31,0xa1,0x94,0x94,0x8a,0xb1,0xd2,0x0f,0x01,0xe0,0xd4,0x26,0xa0,0x59,0x70,0xd0,0x5e,0xb8,0x6f,0x63,0x7b,0x71,0x49,0xe1,0x98,0xfb,0xdb,0x22,0x26,0x18,0x16,0x31,0x08,0x90,0x32,0xd5,0x7a
+.byte 0xc0,0xd8,0xeb,0xae,0x93,0x3d,0x46,0xeb,0x0e,0xdd,0x08,0xa2,0xde,0x4e,0xc1,0x88,0x26,0xc2,0xf8,0xc6,0x5e,0x8a,0x9b,0x0d,0x9f,0x2b,0xcf,0x4e,0x13,0x43,0x4a,0x65,0xf6,0x47,0x1a,0x0a,0xae,0xf9,0x9f,0x7c,0xc5,0x18,0x65,0x09,0xcb,0x85,0x7d,0x33,0x36,0x43,0x19,0x99,0x20,0xa2,0x64,0xb2,0xf5,0x20,0xd2,0x74,0xc6,0x2c,0x29,0x46
+.byte 0xde,0xa7,0x4a,0x7f,0x3b,0x05,0x3e,0x11,0xb6,0xc1,0x98,0xfb,0xf5,0x9d,0x93,0x95,0x76,0x11,0x80,0x41,0x44,0xd3,0x2f,0xf4,0xfd,0x92,0x1e,0xd7,0xa7,0x5f,0x02,0x4a,0xbc,0xb7,0x96,0x33,0xc0,0x0d,0x2d,0x97,0xb8,0xd4,0x67,0x7a,0x4c,0x74,0x93,0xa7,0x8d,0x68,0x78,0xed,0xc8,0xc9,0x02,0x6e,0xae,0x10,0x97,0x7c,0x56,0x11,0x2a,0x29
+.byte 0x87,0x5c,0x21,0xec,0x75,0x9c,0x17,0x17,0x8d,0x45,0x08,0x31,0x36,0x64,0xc0,0xf7,0x95,0xb6,0x72,0xcf,0xac,0xd8,0x52,0x02,0x6f,0x3b,0x14,0x34,0x30,0xcc,0x39,0x7c,0xe4,0x1f,0x38,0x23,0xcf,0x1f,0xb7,0x7e,0x92,0x66,0xf7,0xda,0x9f,0x27,0xbb,0x83,0x45,0x71,0x67,0x63,0x6c,0x85,0x64,0x34,0xa8,0x93,0x5a,0x13,0x0c,0xff,0x8b,0x3a
+.byte 0x2a,0x10,0x1d,0xb6,0x43,0xef,0x57,0xf3,0xf0,0x29,0x2e,0x59,0x72,0x2e,0xc3,0xb6,0xd3,0xd0,0xdd,0x17,0x19,0x82,0x49,0x05,0xd4,0xfc,0xd6,0x2e,0x5d,0xd7,0x0c,0xb6,0x18,0xd5,0x08,0xbb,0xe5,0x3b,0x2e,0x85,0x62,0xc0,0x1e,0xa3,0xb8,0x92,0x21,0x06,0xfa,0xf1,0x2d,0xab,0x62,0x67,0x62,0xee,0x13,0x7f,0x07,0xb6,0x24,0x64,0x94,0x4f
+.byte 0x69,0xb9,0x7a,0xdc,0x23,0x5e,0x19,0x96,0xc5,0x4d,0xcb,0xee,0x2d,0x4a,0x7d,0x1d,0xd2,0x72,0x18,0x8f,0x43,0x8f,0x76,0xbf,0x30,0xd8,0xf1,0xfe,0x9c,0xe7,0x63,0x38,0xff,0x1a,0x3f,0x40,0xbd,0x73,0x66,0xf7,0xa9,0xd9,0x17,0x4a,0x8a,0x79,0x04,0x0e,0x20,0xe1,0x39,0x49,0xd9,0x30,0x9c,0x52,0xf9,0x14,0x8f,0xdc,0x9d,0x52,0xd5,0x34
+.byte 0xaa,0x58,0xfe,0x5d,0x68,0xcb,0xab,0x3b,0x3c,0x9e,0x25,0xde,0x6d,0xdd,0x58,0x0d,0x1b,0x99,0xa9,0xcc,0x26,0x4e,0xc0,0x3c,0x8b,0x1e,0xaa,0x52,0x3d,0x4d,0xb8,0x27,0xc1,0xd1,0xa2,0xaa,0x78,0xb9,0xee,0x5f,0x26,0x46,0x5f,0x41,0x0d,0xe1,0x70,0x7d,0xcd,0x3f,0x4a,0xca,0xb2,0xca,0x2f,0x36,0x1f,0x68,0xe6,0x66,0x8a,0xf6,0xe3,0x94
+.byte 0xe5,0xab,0x90,0xeb,0x2f,0xe8,0xb2,0x6c,0xa9,0x69,0xd2,0xe0,0x5f,0x4a,0x65,0xa8,0x6b,0xc1,0xfb,0x03,0x51,0x17,0x3b,0xf8,0xe0,0x67,0xc3,0x5a,0xe8,0x18,0xdf,0xc1,0xf8,0x7f,0x44,0x68,0x4a,0x01,0xbe,0xf8,0xa5,0x7a,0xb9,0x3b,0x0f,0x05,0x8e,0x4b,0x28,0x14,0x61,0x2f,0x2e,0xc7,0xf2,0x96,0xc7,0x60,0x99,0xc4,0xbf,0xe8,0x37,0x98
+.byte 0x00,0x34,0xf7,0x5a,0xd7,0x6f,0x90,0xc4,0x19,0xb5,0x07,0xd1,0x76,0x6e,0x65,0xcc,0xf6,0x51,0x88,0x5c,0x81,0x91,0xa8,0x4d,0xb7,0x33,0x53,0xb6,0x93,0x42,0x52,0x82,0xfa,0x2b,0xca,0xa0,0xbd,0xf3,0x09,0x2b,0x0f,0x09,0x02,0xdd,0x29,0x5f,0xa6,0x49,0x7b,0x97,0xe8,0x96,0xbf,0x6f,0x76,0xb7,0xa2,0x76,0x58,0xda,0x1d,0xb2,0xdb,0x6d
+.byte 0x9d,0x3b,0x32,0x6e,0x9c,0xea,0x45,0xfd,0x33,0xeb,0x41,0x91,0x91,0x52,0x2b,0x68,0xa3,0xf3,0xc6,0x92,0x43,0x13,0x49,0x8a,0x10,0xb1,0x2f,0x9a,0x0f,0xe1,0x94,0x21,0x18,0x76,0x87,0xaf,0x50,0xe4,0x71,0x5d,0x0a,0xba,0x75,0xaa,0x17,0xf5,0x37,0xf2,0x84,0x9b,0x29,0xdf,0x44,0x60,0xd0,0xac,0xcf,0x25,0x87,0x66,0x64,0x1f,0x0d,0xba
+.byte 0xb3,0xdb,0x14,0xb6,0x1f,0x00,0x70,0x98,0x83,0x1d,0x9e,0xbd,0xf9,0x17,0xf4,0x57,0xae,0xa8,0xae,0x7b,0xa7,0xde,0x1f,0x31,0xc6,0x29,0xb2,0xf7,0xef,0x36,0x31,0xe7,0x50,0x33,0x69,0x4e,0x8c,0xb5,0xe4,0xdd,0x74,0x87,0xc8,0xf5,0x22,0x1b,0x4b,0xec,0xc4,0xe1,0x5a,0x7d,0x5a,0xe8,0xb9,0x2f,0xf4,0xd1,0x83,0xa2,0xb7,0x97,0xe0,0x1e
+.byte 0xf7,0x3a,0x74,0xef,0x5f,0xb3,0x30,0xce,0xfa,0x23,0xd5,0x98,0x56,0x19,0x24,0xb5,0xc7,0x60,0x8b,0x03,0x8e,0xe7,0xdf,0x2c,0x36,0x4c,0x3b,0x3b,0x84,0x45,0x97,0x40,0x29,0x30,0x98,0xc3,0xc0,0xa2,0xf0,0xdf,0x69,0x47,0x95,0x26,0xdb,0x6c,0xcc,0xff,0x2d,0x32,0xaa,0xa7,0xb8,0x6b,0x24,0xec,0xff,0x94,0x4d,0x36,0xdd,0x7b,0x4d,0xc5
+.byte 0x8d,0xe2,0x3c,0x14,0x5a,0x37,0x75,0x1f,0xd6,0x98,0x7d,0xd3,0xdc,0xb0,0x24,0x69,0xe7,0x65,0x60,0x2a,0xe7,0x00,0x5b,0x68,0x99,0xa0,0x9e,0x10,0xf0,0x5c,0xa8,0x39,0x85,0x59,0xde,0xe4,0x46,0xf3,0xde,0xda,0xc0,0xb1,0xd2,0xf1,0xd2,0x05,0xd5,0xd4,0x2c,0x2e,0x7e,0x44,0x5c,0x52,0x80,0x85,0xbb,0x54,0x97,0xb6,0xad,0x6d,0x57,0x49
+.byte 0xed,0x67,0xaf,0x27,0xb4,0x5b,0xce,0x0f,0x3c,0x58,0xa2,0x24,0x22,0xa2,0xcb,0xfc,0x4e,0x8e,0xc2,0x3c,0x32,0xc6,0x07,0xc4,0xc6,0xc0,0x50,0xc3,0xe3,0x1b,0x96,0x76,0x62,0xf9,0xea,0x5e,0xdc,0xc5,0x96,0xe8,0xaa,0x20,0x26,0xac,0x44,0xfb,0xf2,0x16,0x72,0x72,0x4c,0x5c,0xee,0x51,0x07,0xb0,0x74,0xf6,0xde,0xd7,0x5d,0x73,0xf4,0xe9
+.byte 0x0d,0x29,0x06,0x5f,0xca,0xe2,0xbb,0xa4,0x3e,0xdc,0xf7,0x74,0x99,0x53,0x7a,0x52,0x60,0x46,0xaa,0xf0,0x34,0x97,0x0c,0x81,0x5b,0xd8,0x95,0x52,0x76,0x55,0xcb,0xc4,0x6d,0x50,0x26,0x3f,0x7e,0xc2,0x93,0x6e,0x14,0x0c,0xd7,0x49,0x5f,0x52,0x8f,0x34,0x49,0xb4,0xe7,0x12,0xfe,0xae,0xd1,0xfa,0xfc,0xc5,0x80,0x38,0x26,0x9c,0xf1,0x81
+.byte 0x01,0x58,0x15,0x99,0x29,0x8d,0x1b,0x2d,0x74,0xca,0xf1,0xf4,0xfa,0xcd,0xae,0xfa,0xa9,0x1d,0xbb,0xf1,0x55,0x2e,0x69,0x46,0x6e,0xe4,0x91,0xa3,0x48,0xb5,0xaa,0xb3,0x85,0xab,0x14,0xd2,0x84,0x8c,0xb1,0xb6,0x0c,0xa5,0x4a,0x90,0xed,0x6e,0xdf,0x1e,0x15,0x36,0x7b,0xa3,0x59,0xd6,0x8d,0x7d,0x7b,0x12,0x7c,0x9a,0x40,0x8a,0x28,0xde
+.byte 0xb5,0xbc,0xc4,0x52,0x96,0xfb,0x62,0x1f,0xc9,0xe0,0xc9,0x1d,0xc7,0xc4,0xcb,0x8a,0x96,0x21,0x42,0x7c,0x0a,0xdd,0x42,0x74,0xcf,0xc4,0x57,0x8f,0x28,0x0a,0x7c,0x4f,0x49,0x5a,0xc6,0x21,0xb2,0xd4,0xd0,0x61,0xa5,0x35,0xbd,0x4a,0x0c,0x16,0x68,0x1f,0xe3,0xff,0x3f,0x72,0xf0,0x1d,0x50,0x26,0x48,0x91,0x27,0x1b,0x2b,0x0d,0x8b,0xf2
+.byte 0xa0,0xc0,0xa0,0x5d,0xdb,0xcf,0x71,0x41,0x83,0x00,0xb9,0x3c,0xe0,0x4a,0x96,0x43,0xf8,0x64,0x0f,0x42,0xc5,0x75,0xec,0x26,0x62,0x99,0x13,0xeb,0xf9,0xa6,0x86,0xe4,0xc9,0xaf,0x3c,0x2c,0xc9,0x4f,0x89,0xf4,0xc0,0x46,0x99,0xb8,0xd1,0x9e,0x7b,0xb7,0x41,0x0a,0x5f,0x40,0x98,0x65,0x29,0xdd,0x60,0x6b,0x27,0xbf,0x66,0x08,0x32,0xc2
+.byte 0xcf,0xea,0x91,0x44,0x45,0x49,0x1c,0xb4,0x16,0x7f,0x11,0x1a,0x8c,0xb4,0x59,0x54,0xc6,0xcf,0x40,0xd2,0xe9,0xc1,0x54,0x9c,0xe2,0x6e,0xd5,0xfe,0xfb,0x4a,0xa3,0x98,0x63,0xef,0x86,0xe0,0x63,0x30,0x32,0x5a,0xbd,0xd4,0x7c,0xe8,0xbe,0xf1,0xed,0xa2,0x19,0x98,0xc8,0x34,0x65,0x4c,0xef,0x1a,0xb3,0xbc,0x87,0xbe,0x6b,0x75,0x2c,0xe5
+.byte 0x54,0xcc,0xe5,0x69,0xb2,0xc8,0xdb,0x57,0xf8,0xa7,0x82,0x07,0xf7,0x20,0x95,0x7f,0x6d,0x7b,0x33,0x66,0x67,0xa1,0x38,0x0e,0x9c,0x3b,0x22,0xab,0xc1,0xd3,0xed,0x87,0x32,0xfb,0x4a,0x5d,0xad,0x3a,0xe1,0x90,0xa6,0xe3,0x4d,0x6b,0x00,0xe4,0x5c,0x66,0x59,0x90,0x63,0x24,0x5b,0xe1,0x3b,0x69,0xb6,0xc9,0x05,0x83,0x3a,0x7b,0xf4,0xa5
+.byte 0xc8,0x47,0xf9,0x8e,0xab,0x92,0xbd,0xd3,0x41,0xc7,0x61,0xf4,0xce,0x30,0xdb,0xae,0x27,0x69,0x0f,0xcc,0x69,0x50,0xe8,0x18,0xf2,0x39,0x04,0x5a,0x29,0x12,0x61,0x46,0x5c,0x1b,0x2e,0x15,0x9c,0xfa,0x73,0x50,0xe3,0x51,0xda,0x4d,0x88,0x25,0xb2,0xff,0x55,0x27,0xce,0x86,0xca,0xe6,0x2a,0xb8,0x0c,0xa7,0xd0,0x06,0xbf,0x70,0xb5,0x6b
+.byte 0x80,0x44,0x65,0x5d,0x23,0xfa,0x0d,0x74,0x5c,0xfc,0xc7,0x86,0x5e,0x23,0x8a,0xf1,0xff,0x80,0xf0,0x19,0xaa,0x98,0xae,0x56,0xcf,0x12,0x74,0x6c,0x70,0xb2,0x39,0xbe,0x66,0x71,0xee,0xe3,0x43,0x3b,0xfa,0x79,0xa9,0x7e,0x69,0x6a,0x19,0x42,0xd5,0x0e,0x1e,0x92,0xfe,0x8a,0x0f,0xca,0x74,0xf2,0x68,0x71,0xf5,0xcb,0x05,0x94,0xc1,0x06
+.byte 0x1b,0xae,0x55,0xe9,0x16,0x03,0xa9,0x97,0xad,0x49,0xaf,0x88,0x8c,0x26,0x33,0x4d,0x46,0x75,0xb3,0x9c,0xee,0x70,0xe1,0x57,0x43,0xeb,0x59,0xff,0x77,0x89,0x8a,0x77,0x3f,0x7e,0xe6,0xbe,0xa2,0x05,0xb1,0xe3,0x41,0x5e,0xc7,0xd4,0x14,0xda,0xc0,0x84,0xd0,0x05,0x50,0xdd,0x62,0xdb,0x4c,0x3b,0x16,0xb0,0xe0,0xf5,0x2b,0xf1,0x83,0xea
+.byte 0x7b,0x89,0xbb,0xde,0x57,0xdb,0xc0,0xb9,0x7d,0xdf,0x53,0x0f,0x6c,0xc5,0x5a,0x0b,0x36,0xeb,0xa3,0xc3,0xe6,0xc5,0x80,0x98,0xf3,0x87,0x29,0x97,0xc9,0x2e,0xd6,0x3b,0x43,0x2a,0x36,0x3b,0xba,0x43,0x85,0xf5,0x0d,0x18,0x2e,0x78,0x43,0xae,0xa4,0x24,0x6d,0xdc,0xab,0x05,0x94,0x09,0x94,0x27,0x17,0xef,0xbc,0x7e,0x52,0xa4,0x80,0xda
+.byte 0x28,0xf5,0xc3,0x20,0x99,0xbb,0x5d,0xb6,0x7e,0x0e,0x59,0x3b,0x5e,0x1d,0x1b,0x4f,0xd1,0x91,0xe4,0xe4,0xc7,0x35,0xc7,0x2e,0xc1,0xba,0x60,0x05,0xa4,0xd5,0xca,0x5f,0x09,0xbf,0x79,0x06,0xcb,0xa7,0x32,0x7c,0xf4,0xdc,0xa8,0xb3,0x8b,0x26,0x59,0x6d,0xcb,0x74,0x37,0x56,0x51,0x96,0x0b,0x44,0xf1,0x95,0x16,0xe3,0x9b,0x9b,0x3b,0xb3
+.byte 0xea,0x6a,0x1b,0x76,0x99,0x69,0xd6,0x5b,0x10,0x5a,0x91,0x23,0xb5,0xc3,0xf9,0x6a,0xba,0xc4,0xe6,0x18,0x28,0x50,0x9d,0x09,0x14,0xbe,0xed,0x73,0xd2,0x51,0xff,0xf8,0x14,0x2b,0x8b,0xdd,0x2a,0x1a,0x8e,0x48,0xae,0xd8,0xdf,0xb9,0x5b,0xcb,0x8f,0xc2,0x8c,0xd6,0xb3,0xfb,0x40,0x2f,0xb0,0x6c,0x9a,0xea,0xd0,0x14,0x8c,0xc5,0xc7,0xc7
+.byte 0xf8,0xf5,0x4f,0xe2,0xd7,0x41,0xcd,0xb6,0x34,0x3e,0x81,0x19,0x09,0xa2,0x51,0xb4,0x60,0xfb,0xf2,0x6c,0xe6,0xae,0x68,0x47,0xb9,0x93,0x7b,0xc9,0xe7,0x00,0xc4,0xa7,0xf2,0xef,0x8b,0xd8,0xfc,0x9f,0xe5,0x6d,0x48,0xe2,0x6c,0x32,0x73,0x5c,0x30,0x7c,0x12,0x13,0xca,0xc3,0x31,0xc3,0xa2,0xb4,0xf7,0x23,0xc4,0xd0,0x47,0x39,0x93,0xc8
+.byte 0xa0,0x7b,0xb4,0x09,0x3f,0xe8,0x15,0x15,0x9c,0xa7,0xe6,0xa8,0xbe,0xba,0x60,0xf9,0x28,0x88,0x66,0x7b,0x62,0x32,0x17,0x18,0x68,0x87,0x53,0xf5,0xbc,0xf5,0x77,0x17,0xa1,0x3f,0x62,0xd1,0x10,0x0a,0x54,0x96,0x9c,0x31,0xc3,0xb7,0x1d,0xaf,0xc7,0xb3,0x27,0x9e,0x46,0xfe,0x7e,0x9b,0x88,0xf2,0x9e,0x6e,0x19,0x0f,0xb1,0x88,0xe4,0x08
+.byte 0x76,0x7c,0x77,0x46,0x09,0xa7,0x9e,0xf4,0xd9,0xbf,0x67,0xe8,0x9d,0x6a,0x75,0xa7,0xf5,0xee,0x29,0xba,0x84,0xa0,0x44,0x46,0x35,0x4c,0x22,0xef,0xb3,0xea,0xb0,0xf2,0xd6,0x78,0x20,0x97,0x28,0x5c,0x7e,0x90,0x06,0x80,0x19,0x63,0xa4,0x8a,0xef,0x0a,0xea,0x88,0xa9,0xa2,0xae,0x23,0x2e,0x40,0xce,0xc5,0xc2,0xbf,0xfe,0x5a,0x8f,0x14
+.byte 0xb8,0x66,0x1a,0x2d,0xdb,0x43,0x39,0xbd,0xe7,0x7b,0xbc,0x41,0x58,0x74,0x56,0xd1,0xe7,0xd0,0xba,0x24,0xd2,0x41,0xbf,0xd0,0x4e,0x97,0x38,0x8f,0x6b,0x6f,0xe2,0x7d,0x6d,0x32,0x94,0x43,0xa7,0x66,0xf7,0x90,0x21,0xe0,0xdd,0x19,0x48,0x72,0xc1,0xa5,0xbc,0x9c,0xe2,0xdd,0x2c,0x6e,0x50,0x45,0x2c,0xa0,0x95,0xcb,0x1d,0x2c,0x1d,0xa6
+.byte 0xbe,0x9c,0xd4,0x6c,0x07,0x2e,0x5e,0xc8,0xc1,0x05,0x61,0x7d,0x44,0x28,0xe6,0xad,0xf0,0x9d,0x2d,0x3d,0xce,0x90,0x7d,0x79,0x2e,0xf3,0x08,0xbe,0x7a,0xa9,0x58,0x04,0xa7,0x39,0x05,0xdd,0xb4,0x87,0x6c,0x7b,0xd5,0xb3,0x2d,0x6b,0x43,0xf4,0x37,0xd9,0x6f,0x5c,0xa2,0x23,0x92,0x53,0xb9,0xd7,0x1b,0x2d,0x5d,0xcd,0x6d,0x3f,0xef,0xc8
+.byte 0x66,0x91,0x10,0x1b,0xc5,0x24,0x50,0x87,0x70,0x93,0x03,0x3f,0x7b,0x40,0xc8,0x0c,0x9b,0xec,0x3d,0x82,0x27,0x96,0x2a,0xbe,0xca,0xaf,0x1b,0xbf,0xef,0x14,0x0c,0xdc,0xa6,0xc7,0x48,0x18,0xce,0x8e,0x43,0x58,0x97,0xb3,0x5e,0xd6,0xc9,0x70,0x65,0xd0,0x0e,0x17,0xac,0xa0,0x6b,0xc9,0x55,0x30,0x12,0x7c,0xbe,0xe5,0x46,0xfc,0xd8,0x3f
+.byte 0x0e,0xd7,0x96,0x16,0x32,0x8e,0xb7,0x2d,0x07,0xd1,0x26,0x98,0x70,0x4c,0xb1,0x6f,0x92,0x32,0x75,0x4f,0x57,0x6b,0x78,0xe0,0xc5,0x9b,0xf0,0x08,0x59,0x0b,0xfa,0x2d,0x79,0xbe,0xde,0x44,0x3d,0x65,0x77,0x27,0x3b,0xd9,0xea,0x55,0x79,0x22,0xe8,0xf7,0x62,0xb1,0xe3,0x32,0x4e,0x03,0x17,0x65,0xd3,0x5d,0xee,0xa0,0x9b,0xc2,0xbd,0x9f
+.byte 0xcd,0xdc,0xde,0xd7,0x6c,0x95,0x7a,0xf1,0x09,0x4c,0x14,0xb9,0x37,0x1d,0xd0,0xdd,0x4b,0x2e,0x93,0x0b,0xfa,0x08,0x40,0x01,0x36,0xdf,0x89,0x46,0xa6,0xbb,0x19,0xd9,0x4f,0xf9,0xe1,0x7b,0x03,0xc9,0xef,0x01,0x25,0xe9,0x6d,0x95,0x84,0x7f,0xf8,0x8e,0x02,0xfd,0x6f,0x30,0xed,0x1b,0x98,0xd0,0xb3,0xdd,0x92,0x65,0x46,0x49,0x61,0xde
+.byte 0x76,0xf5,0x4b,0x29,0x03,0x6f,0x79,0xee,0xbe,0x7a,0x07,0x6e,0xa8,0x29,0xb8,0x03,0xb4,0x6c,0x50,0x1f,0x4a,0xa2,0xaf,0xbd,0xde,0x18,0x72,0x90,0xa2,0x12,0xa9,0x59,0x7b,0xf6,0x96,0x2d,0xda,0x3d,0x90,0xba,0x7c,0x79,0x3e,0x6e,0xef,0x94,0x37,0xe2,0xef,0x6b,0x2a,0x74,0x6b,0x52,0xa0,0xc2,0x1e,0xa1,0x24,0x59,0x84,0xeb,0xdc,0xd0
+.byte 0x34,0x60,0xa8,0x81,0xaf,0xdd,0x57,0xc2,0xa6,0x02,0x7f,0xcf,0x9e,0x64,0x28,0x18,0x7c,0x95,0x98,0x90,0x7a,0x76,0x3f,0x78,0x16,0x2c,0xe0,0xa7,0xdf,0x0d,0x4d,0x5e,0xcc,0x0d,0x73,0x12,0x26,0xd7,0xe9,0x32,0x3e,0xa1,0xa9,0xde,0x29,0xb2,0x3b,0x6f,0x3b,0x6e,0x12,0x0c,0x10,0x34,0x86,0xf2,0xa0,0xd4,0x9c,0xf6,0x14,0x5a,0x41,0x06
+.byte 0x31,0xb1,0xe4,0x31,0x52,0xf4,0xcb,0xe3,0x39,0xcd,0x0b,0xc2,0xca,0x90,0xba,0xb3,0x21,0xbf,0x94,0x13,0x75,0x3b,0x0e,0x0a,0xc0,0x05,0x35,0xe6,0x28,0x74,0x63,0xc5,0x34,0x44,0xd8,0x9a,0x0e,0xec,0xb3,0x1b,0x30,0x58,0xfc,0xa0,0xc4,0xd1,0x26,0x50,0x6b,0x22,0x88,0xfc,0xad,0xa9,0xb4,0x3e,0x36,0xb6,0xb1,0x6d,0x62,0x7e,0x60,0x8f
+.byte 0xf5,0x17,0x65,0x1c,0xf6,0x51,0x4d,0x89,0x4a,0x7e,0x5d,0x23,0x3b,0x83,0x1f,0xa6,0xc8,0xd2,0x1a,0x90,0xd3,0x53,0xfc,0x48,0x64,0x94,0x6e,0x1c,0x72,0xef,0x5d,0xd4,0x23,0xa2,0x3a,0x93,0xe4,0x29,0x33,0x8a,0xbd,0xe5,0x17,0xc2,0xe9,0x18,0x6a,0x81,0x1e,0x5b,0x03,0x41,0x45,0x35,0x14,0xe7,0xc8,0x45,0x5c,0x37,0x69,0x77,0x62,0xf8
+.byte 0xd7,0xec,0x9d,0x62,0x2e,0xfa,0x43,0x3a,0xdc,0x8b,0x86,0x86,0x1b,0x31,0x71,0x0e,0x92,0x59,0xf7,0xef,0x96,0xfd,0x04,0x1e,0x1d,0x74,0x7d,0x08,0x06,0x21,0x54,0x39,0xd3,0x9f,0x30,0xa1,0x19,0x7f,0xc8,0x19,0x16,0xd1,0x21,0x2a,0xf3,0x21,0xce,0x19,0x1a,0xde,0x70,0x1b,0x87,0x05,0x9e,0xe8,0xf3,0xfd,0x1d,0xaa,0x61,0x6c,0xfb,0xdf
+.byte 0x50,0x9a,0xa0,0x32,0x4e,0xe4,0x68,0xda,0x0e,0x2f,0x2a,0x70,0xe1,0x51,0x66,0xb4,0x2d,0x5b,0xb6,0x32,0x3f,0xcb,0xc0,0xaf,0x01,0x03,0xcd,0xd6,0xb8,0x4e,0x3d,0x24,0x17,0xe2,0x30,0x3b,0xa4,0x08,0x0e,0x6a,0xcf,0xbe,0xc2,0x5c,0x79,0x5d,0x25,0xe2,0xae,0xa7,0x7f,0x42,0xff,0xa9,0xa5,0x05,0xbf,0xf4,0x92,0x30,0xaa,0x1d,0x96,0x7a
+.byte 0x49,0xbc,0x1c,0xaa,0x5c,0x8d,0xe8,0xf3,0xd3,0x1a,0x67,0x7f,0x47,0x09,0x90,0x35,0x82,0x4e,0xcc,0x2e,0x50,0xfe,0x2c,0xb9,0x29,0x39,0xff,0x49,0x8f,0x7e,0x89,0x8d,0x4a,0x15,0xd1,0xd6,0x83,0xdb,0x25,0xac,0xc1,0x81,0x23,0x70,0x3f,0xb9,0xce,0x7f,0x03,0x46,0xa8,0x39,0xab,0xff,0x71,0xc9,0x7b,0x3c,0xb3,0x5e,0x9f,0xfe,0x8a,0x0a
+.byte 0x39,0xad,0x6a,0xc1,0x8e,0x5a,0xa8,0x71,0xb7,0x01,0x25,0x28,0x15,0xd9,0x0a,0xae,0xc1,0xf9,0x23,0x1c,0xc1,0xe8,0x86,0x1d,0xb8,0x71,0x6e,0xa2,0xa4,0x67,0x22,0x4d,0x0e,0xd2,0xaa,0x70,0x26,0x23,0xfc,0x15,0xed,0x67,0x11,0x87,0x69,0x6f,0xc6,0x4c,0xe1,0x4b,0x04,0x86,0xe9,0x56,0x40,0xea,0x07,0xb1,0x6f,0xe9,0x8f,0xdd,0x2f,0xce
+.byte 0x8d,0xca,0x0a,0x58,0x01,0x44,0x2c,0x74,0xd0,0x14,0x07,0x9a,0xb7,0x5a,0xc1,0xea,0xa9,0xdd,0xa4,0x94,0x84,0xc2,0x11,0xa5,0xe2,0x00,0xd8,0xfc,0x77,0xb9,0x5e,0xe6,0x72,0xef,0xc5,0x38,0xe0,0x90,0x11,0x16,0xfd,0xa7,0x77,0xbd,0x4c,0x1d,0xeb,0x32,0x54,0xdb,0x2a,0x43,0xa1,0x87,0xbb,0x2e,0x79,0x22,0x4d,0xb3,0xdf,0x1a,0xee,0x75
+.byte 0xb0,0xdd,0xf2,0x09,0x05,0xf4,0x6a,0x3c,0x86,0xc6,0xe7,0x60,0x2a,0xee,0xb6,0x55,0xae,0xdc,0xce,0xf8,0xe4,0xd7,0xdf,0x72,0x42,0x91,0x6d,0xc4,0xd8,0x60,0xf1,0xe8,0x06,0x71,0x38,0xa3,0x03,0x3e,0x1b,0x14,0x47,0x74,0x93,0xb5,0x61,0x28,0xde,0x23,0x8f,0xbe,0x88,0x5e,0xdf,0x87,0x47,0xd4,0x5f,0x91,0x40,0xeb,0x02,0xda,0x27,0x3b
+.byte 0x65,0x9f,0xd8,0xf1,0x78,0x7f,0xba,0x9b,0x35,0xb3,0x10,0xaf,0x7f,0x51,0x37,0xa5,0x63,0x64,0x1f,0xf1,0xc3,0x1b,0x9e,0xe4,0xdd,0x93,0x8c,0x3a,0x98,0x20,0x9a,0x75,0x22,0x7b,0x48,0x0a,0x9d,0x55,0xed,0x07,0x1a,0x79,0x3b,0x98,0xe3,0x16,0x9b,0x16,0x2c,0xb2,0x03,0xc1,0xf5,0x6c,0xac,0x00,0x6a,0xb6,0xc1,0xc2,0x49,0x4d,0x9d,0xf5
+.byte 0x0e,0x7b,0x60,0x09,0xcc,0xa7,0x35,0xbb,0x70,0x34,0x18,0x49,0x2c,0xf1,0x41,0x4f,0xce,0x68,0x03,0x60,0x14,0xa7,0x2e,0x59,0x0f,0xa2,0xc4,0x2f,0x33,0xf0,0xb6,0xa4,0x31,0x75,0xdc,0xb4,0x88,0xe4,0xe3,0x0e,0x4b,0x3f,0x58,0xd0,0xa4,0xea,0x9a,0xef,0x47,0xb7,0xf7,0x20,0x71,0x52,0xd3,0x8a,0x1c,0xd9,0x2d,0x88,0x05,0x03,0x8a,0x1c
+.byte 0x3d,0x69,0xf0,0x39,0xf0,0x25,0xad,0x95,0xd4,0x47,0x3c,0xbb,0xfa,0x48,0xd7,0x8e,0xf5,0xdc,0x33,0x43,0x0a,0xbb,0xf0,0xd3,0xb1,0xc3,0x94,0x81,0xcd,0x22,0x79,0xdc,0xd0,0x92,0x8b,0xd3,0xc3,0xac,0x73,0x72,0x83,0xaa,0xa2,0x52,0x13,0x27,0x0e,0xc5,0x8c,0xa5,0x69,0x21,0x6e,0x9c,0x9d,0x9b,0xeb,0x7a,0x19,0xfe,0xb6,0xdb,0x4e,0xc1
+.byte 0xa6,0xec,0x42,0xb0,0x86,0x69,0x60,0xde,0x36,0x11,0x6a,0x86,0xd7,0xbf,0x15,0x48,0xa2,0x73,0x8f,0x68,0xde,0xd6,0xb2,0x6d,0xe0,0xc5,0x1f,0x1f,0xd5,0xc5,0xef,0xce,0xa1,0x90,0x5c,0xe6,0x6c,0x15,0x73,0xa7,0xcc,0x2d,0xe8,0xcf,0x4c,0xc8,0x17,0x3c,0xfa,0x5e,0xdb,0x4f,0x54,0xf3,0xa3,0xff,0x50,0x3e,0x42,0x60,0x0d,0xf3,0xf7,0xbb
+.byte 0xc6,0xf5,0xe7,0x63,0x50,0x49,0xc1,0x94,0x60,0x68,0xbd,0x62,0xc0,0x81,0x80,0x16,0xfd,0x65,0xfb,0x2e,0x23,0x67,0xb3,0xb6,0xf8,0x95,0xfa,0x00,0x3f,0x1d,0x10,0x16,0xd5,0xd9,0x66,0xf8,0x25,0xb4,0xce,0xf2,0x2e,0x4f,0xa2,0x21,0x14,0xbd,0x2c,0x63,0xec,0x44,0x57,0x07,0x87,0x3c,0x2f,0x22,0xcf,0x48,0xd3,0x20,0x51,0xfc,0x5d,0xd5
+.byte 0x9f,0x67,0x9c,0xaf,0xe3,0x89,0x36,0xc5,0xfa,0x7c,0xca,0x07,0xdc,0x56,0x2a,0x4e,0xa5,0x76,0xe6,0x09,0x99,0xfb,0xb7,0xba,0xaa,0x0b,0x9c,0xe2,0x0f,0x73,0xab,0x9b,0xbe,0x6f,0x50,0xe3,0xf7,0x28,0x32,0xf2,0xab,0x86,0xa3,0x89,0x3a,0xea,0xd7,0x52,0x52,0x6e,0xed,0x1b,0x94,0xf0,0x59,0x9d,0xbb,0x7a,0x88,0x6f,0xbf,0xaf,0x6a,0x87
+.byte 0x47,0x34,0x7f,0xf4,0x8b,0x0d,0x33,0x12,0x2b,0x67,0x6b,0xc9,0x1d,0x18,0x23,0x2e,0x54,0xee,0x07,0x28,0xbd,0x9d,0xa1,0xaf,0x85,0x7a,0x0f,0xe5,0x5d,0xf7,0x8b,0xca,0xd9,0x3d,0x8f,0x4f,0xcc,0xce,0xc3,0x6e,0x3a,0x40,0x08,0xd2,0x14,0xf0,0x28,0x9b,0xc0,0x4a,0x7a,0x3c,0xc2,0xed,0xe0,0x20,0x04,0xf5,0xf9,0xee,0xb8,0x35,0x94,0xbc
+.byte 0x53,0x46,0xf2,0x1a,0xab,0xe9,0xde,0xd8,0x27,0x67,0x0d,0x63,0x2a,0x7b,0x3a,0x38,0x91,0xbc,0x48,0x2c,0x38,0x09,0xa0,0xe3,0x66,0xe3,0xeb,0xb9,0x02,0x2d,0x80,0x87,0x81,0x4f,0x5c,0x1c,0xfd,0x2b,0x0f,0x99,0x37,0x3a,0xfa,0x0f,0x8e,0x8c,0x87,0x76,0x72,0xd3,0xcf,0xc8,0x1e,0x8a,0x3b,0x97,0xa0,0xe6,0x32,0x66,0x3c,0x55,0x2c,0xfb
+.byte 0xa9,0x41,0xfd,0xf9,0xd4,0x50,0xe0,0x5b,0x03,0xb7,0x1e,0x49,0xfa,0x59,0xeb,0x55,0xb1,0x21,0xd0,0x52,0xeb,0xe6,0x0f,0x21,0x81,0x4f,0x82,0x9a,0x8f,0x67,0x3d,0x0d,0x1d,0x11,0x1f,0x70,0x59,0x09,0x87,0x99,0xe5,0xf2,0x89,0xa6,0x56,0x8d,0x52,0x55,0xa8,0x91,0x5d,0x51,0x48,0xec,0x66,0x05,0xd6,0x18,0xd1,0x61,0x02,0x5a,0x80,0xcc
+.byte 0xee,0xf3,0x3b,0x8e,0x73,0x2a,0xb1,0x22,0xda,0x1d,0xca,0xb2,0xd6,0x7f,0xd7,0x7d,0xaf,0x23,0x8d,0xff,0x24,0x8e,0x5e,0x38,0x29,0x23,0x1f,0xbc,0xfd,0xe4,0x3d,0xcd,0x66,0xe3,0xe1,0x0f,0x85,0xe3,0xda,0x34,0xc6,0xba,0x60,0x5f,0xaf,0x32,0x79,0x34,0xc0,0x01,0x93,0xae,0x1e,0x72,0x7f,0xd2,0x32,0xa1,0xdc,0x0b,0xca,0xee,0x5a,0x7a
+.byte 0x09,0x98,0x2a,0x46,0x0a,0xe7,0xfd,0x0f,0x76,0xa0,0x3b,0x2b,0x3d,0xe5,0xcd,0x04,0xa2,0x5e,0x9b,0xba,0x4a,0xd5,0x0a,0xce,0x94,0x77,0xbb,0x24,0xa4,0x12,0xbc,0x24,0xb6,0x60,0x40,0x62,0xd2,0x70,0x0e,0x3f,0x62,0x72,0x2f,0xa1,0xc9,0x12,0x03,0x0f,0x39,0x57,0x77,0x7c,0x5c,0x31,0x13,0xcb,0x8c,0x2c,0x84,0xfd,0x7b,0x6f,0x60,0xbb
+.byte 0x1a,0x0b,0x65,0x8c,0xc1,0xe6,0x4b,0x60,0x8c,0xe7,0x3e,0x94,0x2a,0xcc,0x70,0x9f,0xd0,0xfd,0x00,0x0e,0x36,0xb2,0xf1,0x62,0x78,0x6a,0xc8,0x9b,0xbe,0x8b,0x54,0xa7,0xad,0xee,0x3e,0x8e,0x1c,0x23,0xbe,0xa2,0x73,0x43,0xbe,0x15,0x32,0x84,0xdd,0x22,0x75,0xd5,0x9a,0xfb,0x93,0x38,0x55,0x2f,0xa4,0x34,0x4c,0x33,0xc3,0xd7,0x7c,0x9f
+.byte 0x42,0x2f,0x9f,0xf6,0x27,0x90,0x15,0x6b,0x14,0x4f,0xbc,0x4b,0x07,0x42,0x24,0x98,0xa6,0xc4,0x4c,0x2f,0x22,0xd9,0x80,0x99,0x97,0x6b,0x7d,0xe8,0x2b,0x31,0x37,0xfe,0xd1,0x8b,0xbd,0xbf,0x08,0x4a,0x56,0x3d,0xff,0xb5,0x12,0x6d,0xc4,0xcf,0xbc,0x75,0xe9,0xe6,0x6f,0x1a,0x30,0x34,0x5b,0x2c,0x1d,0x8f,0x85,0xa0,0xe8,0xfd,0xfd,0xe2
+.byte 0xe7,0x13,0x73,0xcd,0x63,0x63,0x90,0xa5,0xa4,0x3f,0x91,0x65,0x77,0xd4,0xed,0x0c,0x1d,0x06,0x95,0x93,0x74,0x85,0xec,0x31,0xde,0xc9,0xb9,0x2e,0x7c,0x6d,0x2c,0x0d,0x15,0xb7,0x6b,0x0c,0xd2,0xe8,0xa8,0xcb,0x90,0x5c,0x11,0x53,0xc5,0x9d,0x54,0xf4,0x90,0xf7,0xc8,0x17,0x65,0xc0,0x3f,0xea,0xf6,0x28,0x8e,0xf0,0x1c,0x51,0xcc,0xfd
+.byte 0x99,0x67,0x3d,0xa5,0x82,0x1f,0xb3,0x75,0x08,0x27,0x85,0xa9,0x7b,0x54,0x91,0x6e,0x80,0x9a,0xdb,0x6c,0x17,0x4a,0x36,0x73,0x0e,0x61,0x2e,0x01,0xae,0x32,0xf8,0x54,0xdb,0xcf,0x24,0xa5,0x13,0xb1,0x7e,0x0b,0xf5,0xe7,0x0e,0x27,0x9a,0xef,0x01,0x0b,0x34,0x4f,0x91,0xc2,0x93,0xe0,0xe6,0x14,0x64,0xf8,0x7b,0x41,0x37,0x22,0x39,0xad
+.byte 0xf4,0xa9,0x3b,0xfb,0x7e,0x2b,0xd8,0x2b,0x0f,0x7e,0x40,0x55,0x5a,0x48,0x61,0x2f,0x95,0x5e,0x5c,0x25,0xe5,0x06,0x89,0x17,0x23,0xb6,0x1b,0x38,0x2e,0x7b,0x45,0xa5,0x11,0x0a,0x8d,0xd3,0x8d,0xb6,0x8d,0x47,0xc5,0x4f,0x8f,0x8b,0xe2,0x03,0x85,0xa1,0x5a,0xa2,0x8d,0xca,0x4d,0xef,0xc9,0xde,0x7d,0x06,0xa1,0x3f,0x21,0xb9,0x38,0x7b
+.byte 0x91,0xf7,0x5c,0x9f,0x97,0xe3,0xeb,0x5d,0xea,0x5e,0xc1,0xa5,0x30,0xb0,0x7f,0xe0,0x4c,0xef,0xe5,0xe3,0xa0,0x2d,0x23,0xb6,0x08,0x21,0xe6,0x67,0x35,0x82,0x07,0x59,0x02,0xd4,0x68,0xa5,0xf1,0x42,0x70,0xb4,0x5e,0x54,0xed,0x1e,0x99,0xb2,0x55,0xf1,0x69,0x2e,0x7c,0xaa,0x6c,0x5e,0xd4,0xfa,0x16,0xa7,0x1f,0xdb,0x46,0x70,0x65,0x26
+.byte 0x98,0xf1,0xb6,0x42,0xb3,0x48,0x99,0x7c,0x07,0xbe,0x2b,0xee,0xb4,0xc1,0xf0,0xb7,0x47,0xf8,0xcf,0xe4,0x8d,0x34,0xa6,0xe5,0x17,0x9a,0xb7,0x2c,0x2e,0x03,0x30,0xfd,0xfb,0x42,0xe7,0xa1,0xe0,0x34,0x49,0x64,0xd8,0x0c,0xd5,0xb8,0x77,0x9f,0x0e,0xe2,0x73,0x0d,0x20,0x0c,0x21,0x07,0xaf,0x0f,0x93,0x94,0xd6,0xdc,0xe3,0xac,0x8d,0x8e
+.byte 0xae,0x87,0xbd,0x2c,0x19,0x66,0xef,0x90,0x4a,0xd9,0xb0,0xf6,0xac,0x3a,0xe2,0xb5,0x2e,0xb4,0x63,0x91,0xf1,0x8b,0xac,0xce,0x51,0xc2,0xe0,0x02,0x7d,0xf8,0xab,0xe4,0xd6,0x85,0xd6,0xbb,0xd7,0x72,0xd0,0x5f,0x4e,0x90,0x09,0xcc,0x51,0xee,0x5b,0xad,0xb2,0xf6,0x16,0x37,0x09,0xa8,0xfc,0x74,0xa5,0x2e,0x26,0x27,0xff,0x53,0xd4,0x45
+.byte 0x82,0xb1,0xb6,0x16,0x65,0xc6,0xbb,0x54,0x0b,0x89,0xa1,0x0e,0x09,0x7c,0xc9,0xc9,0x48,0xa7,0x51,0x78,0x1d,0x3a,0x30,0xc5,0xe7,0x02,0x9e,0x91,0xd6,0x39,0xc8,0x35,0xf0,0x33,0xab,0xf6,0x0f,0xf9,0xce,0xef,0x26,0x46,0x48,0x56,0xbc,0x45,0x44,0xe2,0xd7,0xfc,0xdf,0xb2,0x95,0x20,0x07,0xeb,0x47,0x1c,0xde,0x88,0x5e,0x08,0xee,0xa1
+.byte 0x56,0x9a,0x5d,0x8f,0x35,0xc5,0xb3,0xd3,0x7d,0xe3,0x25,0x82,0xcc,0xcb,0xad,0xd8,0xef,0x83,0x76,0x08,0x55,0x9e,0xf4,0x00,0x1f,0x92,0x24,0x0e,0xf6,0x96,0x98,0x34,0x10,0x10,0x93,0x27,0x3b,0x96,0xbd,0x75,0x45,0x9d,0xad,0xc1,0x79,0xa7,0x09,0x68,0x0a,0xbc,0x14,0xe9,0x62,0xf6,0x5e,0x4e,0x6d,0xfb,0xf2,0x25,0x20,0x8b,0x53,0xa6
+.byte 0xc2,0x31,0x71,0xaa,0xfa,0xa2,0x1c,0xa1,0xb3,0xa2,0xd7,0x22,0x5a,0x72,0x61,0x5c,0x30,0x75,0xcc,0x82,0xb0,0xd0,0x07,0x8c,0x95,0x11,0x57,0xa4,0xe2,0x42,0xf3,0x3d,0x87,0x56,0x45,0x38,0xd6,0x1b,0x2b,0x26,0x11,0x99,0xce,0xcc,0x2e,0x96,0x1b,0xa1,0x06,0xa1,0xa9,0x65,0xe1,0x1f,0x53,0xb6,0x1e,0x5c,0x44,0x40,0xa2,0xf2,0x03,0xe7
+.byte 0x39,0x24,0x59,0x5f,0xdd,0x30,0xf0,0x78,0x9f,0x34,0xf1,0xd3,0x5d,0x9a,0xdd,0xf9,0x02,0x16,0x4b,0xfa,0x8d,0xab,0x2f,0x96,0xdb,0x67,0xf6,0x1e,0x7a,0xf8,0xd8,0xe6,0x71,0xdc,0x1a,0xbf,0x44,0xd2,0xbd,0xb3,0x6d,0x47,0x69,0xe0,0x14,0xef,0xe5,0x5e,0x0a,0xe9,0x1a,0x8b,0x3f,0x67,0x1e,0x1c,0x37,0x86,0x25,0x02,0x52,0x3f,0xf5,0xde
+.byte 0xe0,0xbe,0x1d,0x61,0x44,0x3d,0xd2,0xe9,0x26,0x3d,0x4b,0xa4,0xb1,0xb9,0x62,0xc5,0x70,0xfb,0x1d,0xaf,0xe6,0x19,0x97,0x0f,0x6e,0x6d,0x4e,0xdf,0x5f,0xc9,0xb2,0xb0,0xb9,0x4b,0x72,0xc7,0x60,0x5d,0xf8,0x7d,0x3b,0xd8,0x74,0x29,0xf2,0x56,0x25,0xd9,0xd9,0x12,0x3a,0x50,0x01,0x54,0xd3,0x0e,0x4c,0xbd,0xc9,0xf5,0x66,0xc4,0x4b,0xa2
+.byte 0x68,0x31,0xb1,0x9d,0x47,0xd8,0x28,0xce,0x6b,0xe4,0x5f,0x78,0x75,0x22,0x7d,0x44,0x08,0x71,0xfb,0xd8,0xa0,0x6e,0xd1,0xbd,0x64,0x4e,0x00,0x99,0xf7,0x85,0xad,0x31,0xde,0x5c,0x4c,0x7c,0xc3,0x89,0x49,0x9f,0xea,0x22,0x86,0xa0,0x48,0x48,0xcf,0x47,0xfb,0x68,0x04,0x4c,0x05,0x62,0x57,0x60,0x9b,0xa0,0x37,0x41,0x77,0xe4,0x7d,0x3e
+.byte 0x36,0xda,0xd5,0xfd,0x68,0x47,0x8c,0x68,0x61,0x4c,0xea,0x38,0x20,0xa5,0xe4,0x12,0x6e,0xd5,0x14,0x37,0x01,0xcf,0xbd,0xdd,0x55,0x97,0xb4,0x30,0xf0,0x65,0x15,0xee,0x1f,0xc8,0x5b,0x07,0x82,0xae,0x43,0xad,0x11,0xda,0x0e,0x61,0x23,0x0a,0x5f,0x52,0xf9,0x9d,0xc5,0x98,0x4e,0xaf,0x77,0x21,0xc8,0x9f,0x6d,0x25,0x94,0x4f,0x91,0x1a
+.byte 0xb4,0x2d,0xe3,0x15,0xe5,0xe6,0x25,0xb8,0x8e,0xd8,0x33,0xe3,0x05,0x01,0x7b,0x6b,0xa8,0x39,0x44,0x4b,0x58,0x3c,0x17,0x53,0x17,0x5c,0xbc,0xd5,0xcd,0xd4,0x29,0xe7,0x17,0x7a,0x69,0xa6,0x75,0x8e,0x0a,0x00,0x41,0xbe,0xb4,0x8d,0x79,0x1d,0xac,0x2a,0x0f,0x9b,0x7b,0x5a,0xe8,0x17,0xe2,0xb3,0x1d,0x03,0xde,0x5a,0x7c,0x31,0x18,0x8c
+.byte 0x1c,0xf9,0x19,0x7b,0x37,0x1f,0x53,0x77,0xce,0x1f,0xad,0xb6,0x0d,0x21,0xe1,0xb0,0xf9,0x42,0x52,0x99,0x02,0xa8,0x58,0xab,0x94,0xf8,0x9f,0x99,0x2d,0x1e,0x68,0x4f,0x5a,0x91,0x2b,0xdf,0xe8,0xe6,0x34,0xb6,0x80,0x9b,0xb1,0x0e,0x87,0xec,0x29,0x17,0x4d,0x98,0x2d,0x40,0xd0,0xf7,0xca,0x55,0x9d,0x56,0x19,0xd5,0x7c,0x4e,0x2e,0x75
+.byte 0x5d,0xe7,0x3e,0xed,0x47,0xdc,0xb1,0x04,0xe5,0x61,0x0f,0xe7,0xc4,0x16,0x71,0xf4,0xf8,0x8a,0xf1,0xfc,0xd5,0xdb,0xeb,0x0b,0x82,0x0f,0xfe,0x64,0xa2,0xb0,0x53,0xab,0xf5,0x01,0xc2,0x8f,0xa0,0x4d,0x5d,0x1b,0x54,0x32,0x48,0xca,0x8a,0x42,0x59,0x4a,0x85,0x68,0x75,0xd1,0x1b,0x03,0x11,0xfe,0x28,0xd7,0xd5,0x37,0x81,0x7a,0xfb,0x84
+.byte 0xfd,0xa8,0x98,0x54,0xf7,0x81,0xb0,0x2d,0x2d,0x5d,0x95,0x0a,0x5b,0x80,0x13,0x95,0xad,0x8f,0x88,0xaa,0x38,0x7e,0xbc,0x88,0xc2,0xf6,0xa6,0x1e,0x6d,0x78,0xc9,0x4f,0xa9,0xb3,0xaa,0x23,0x0c,0x62,0x19,0x6f,0x26,0x5d,0xca,0x36,0x23,0xf8,0xd1,0x76,0x80,0x32,0x59,0xa0,0x47,0x86,0xee,0xc9,0x0f,0x1d,0x37,0xd9,0xc9,0x4e,0x65,0x22
+.byte 0x17,0x95,0x88,0x85,0xb3,0x8a,0x5d,0xb9,0xe6,0x3b,0x6c,0x02,0x81,0x61,0xe0,0xab,0x19,0x6c,0x9a,0x29,0x33,0xf1,0x7b,0x0c,0x22,0x16,0x0c,0xd6,0xfa,0xc2,0x84,0xe5,0x74,0x9e,0x8e,0xf8,0xdb,0x44,0x68,0xa0,0x58,0x52,0x9f,0xad,0xe6,0x2b,0x23,0x70,0xf3,0x6e,0xdc,0xf1,0x2d,0xa5,0xc2,0x7f,0xef,0x5f,0x58,0xc2,0x96,0x66,0x67,0x4b
+.byte 0x7c,0xe0,0xd7,0x96,0xda,0xf7,0xd7,0x7a,0x7d,0xb4,0x4f,0x48,0xbd,0x87,0x6b,0xf4,0xbd,0xd1,0x45,0xdc,0xba,0x4f,0xd2,0x00,0x7f,0xde,0x3c,0x57,0xd7,0x3b,0x5b,0xa9,0xf3,0x17,0x76,0x47,0x0c,0xcf,0x48,0x07,0xa8,0xc3,0x30,0x60,0xc6,0x98,0x20,0x29,0xba,0x5f,0x76,0x6d,0x63,0x5f,0x87,0x7e,0x36,0xbc,0xa3,0xe4,0xd6,0x6a,0x55,0x73
+.byte 0x8b,0x8b,0x62,0x40,0xc5,0x7e,0xa3,0x33,0x04,0xce,0xe2,0x9d,0x9f,0x67,0x1c,0xf0,0xa1,0x78,0xd2,0x0b,0x58,0xc1,0x2e,0xec,0x78,0x0a,0xc9,0x0b,0x1d,0xfb,0xcc,0x72,0xd8,0xe4,0x15,0xcb,0x09,0x8b,0xd9,0x33,0xa9,0xb6,0x24,0x7e,0x59,0x48,0xbf,0xda,0xdb,0x5c,0x99,0xd1,0x92,0x1b,0xb6,0xf6,0x75,0x78,0x53,0x69,0x89,0x27,0x6b,0x3c
+.byte 0xfb,0xd2,0xa7,0xeb,0xc5,0xf7,0xea,0x8b,0x38,0x59,0x8e,0x02,0xc7,0x6e,0x96,0x8a,0x85,0x1c,0x91,0x1b,0x97,0x97,0x9e,0xa7,0x9d,0x10,0xa4,0x4a,0x6e,0xa8,0x51,0x05,0xbe,0x5f,0x9a,0x5b,0x94,0xf2,0x2c,0xa1,0x1e,0x33,0xc5,0xe8,0x92,0xb8,0xd2,0xfa,0x27,0x07,0x12,0xa1,0xdc,0x24,0x43,0x28,0x06,0xe5,0x43,0x57,0x8f,0x66,0x72,0x2f
+.byte 0x26,0xf7,0xea,0xa1,0xcf,0x57,0xd6,0xa6,0xf7,0x37,0x1d,0x6e,0xd9,0xde,0x1a,0x8c,0xf5,0x01,0x76,0xc3,0x56,0x40,0x57,0x3d,0x4a,0x14,0x04,0xf2,0xfc,0xba,0x3b,0x60,0xf1,0x88,0x1e,0x16,0x08,0x99,0x90,0xfe,0x27,0xaa,0x04,0x53,0xd8,0x7e,0x0c,0x58,0x6a,0xd9,0x5a,0xe4,0x11,0xd4,0xcc,0x48,0xbe,0x03,0x08,0xbc,0x61,0x47,0xdd,0xde
+.byte 0x5f,0x03,0xc7,0x8f,0x9c,0x08,0x93,0xe3,0xaa,0xee,0x9c,0xe3,0xc6,0x06,0x78,0xda,0x0a,0xdd,0xb0,0xc3,0xf3,0x0b,0xe5,0xa0,0x5f,0x1e,0x3e,0xb3,0x15,0x7f,0xf1,0xf4,0x38,0xb2,0xed,0xf2,0xa6,0x8b,0x1d,0x78,0xb6,0x03,0x19,0xcd,0x17,0xb4,0x18,0x17,0x49,0x61,0x17,0xbd,0xbe,0x4b,0x04,0x00,0xce,0x4b,0xcc,0x47,0x61,0x76,0x85,0xdc
+.byte 0x2b,0x85,0x48,0x82,0xf4,0x9b,0xb4,0x62,0x53,0xc7,0x06,0x50,0xf2,0x3e,0xba,0x6d,0xf2,0x19,0x0f,0x7f,0x84,0xce,0xa6,0x4d,0x96,0x97,0x94,0x12,0xb6,0xd0,0xd6,0xa4,0xc1,0xcc,0x14,0x54,0xf6,0x7a,0xf1,0x94,0x62,0xa1,0xc7,0x22,0x9b,0x0d,0x0e,0x69,0xcf,0x38,0x5c,0xda,0x9f,0xc0,0xfa,0x93,0x81,0x24,0xce,0x9f,0xf3,0xc2,0x66,0xad
+.byte 0x06,0x21,0xf2,0x48,0x6c,0x4a,0x0d,0xb8,0x41,0x86,0xaf,0xb7,0x6c,0x65,0xcb,0x83,0xd8,0x75,0x11,0x60,0xfa,0x06,0xe5,0xd2,0x11,0x87,0x29,0xb8,0x41,0xcb,0x17,0xb5,0xbd,0xbd,0xf9,0xd5,0xbc,0x89,0xb6,0x60,0x65,0x59,0xbb,0x38,0x9d,0x70,0xf9,0x81,0x6b,0xe6,0x12,0x80,0x08,0x73,0x9f,0xfb,0x2f,0x72,0x4e,0x18,0xff,0x65,0xab,0xa6
+.byte 0xaa,0x78,0xf1,0xa4,0xe9,0x1a,0x7d,0xa5,0xdd,0x91,0x77,0xa9,0xa3,0xf3,0xe3,0xe5,0x5a,0xa2,0x0d,0x3a,0x2a,0x4a,0x11,0x9a,0x8d,0xc3,0x00,0x6e,0xd4,0x4f,0xb9,0xe7,0x39,0x78,0x89,0x64,0xb2,0xc8,0xfd,0x1f,0xe6,0xa9,0x54,0x17,0x83,0x3f,0xeb,0x97,0x77,0xac,0xc8,0xba,0x0e,0x77,0x02,0xb0,0x29,0xbe,0x51,0x62,0xef,0xa5,0xd5,0xab
+.byte 0x79,0x98,0xab,0x7a,0x1e,0x13,0xe8,0x87,0x4f,0x61,0xa3,0x37,0xdf,0xe6,0xda,0xb9,0xf5,0x69,0xf7,0x7a,0xee,0xd6,0x5f,0x6a,0xb3,0x95,0x55,0x59,0xd1,0x6c,0x5b,0xd5,0xba,0x8b,0x74,0x85,0xbf,0x1e,0xe5,0xb3,0x24,0x28,0x4b,0xc8,0x4a,0xec,0xa1,0x1d,0xda,0x99,0x3f,0xdf,0xfc,0xe6,0x2e,0x1b,0xa4,0xba,0x1a,0x03,0x89,0xb7,0x93,0x4e
+.byte 0xaf,0x40,0xb0,0x7e,0x3f,0x34,0x0d,0x94,0x75,0x8c,0x8a,0xfb,0x88,0xcd,0xd3,0xc2,0x61,0x95,0x63,0x51,0xaa,0x78,0x1f,0x24,0x95,0x5a,0xb5,0x98,0x9a,0xd4,0xb8,0x34,0xe1,0x47,0x1c,0x68,0x0f,0x08,0xf1,0x69,0xe6,0xd4,0xaf,0x23,0xf6,0x32,0x71,0x51,0x01,0xa9,0xf2,0xa1,0x45,0x0b,0x75,0x82,0x09,0xe4,0x9c,0x2a,0x1d,0x0b,0xd6,0xd2
+.byte 0x26,0xe8,0x30,0x44,0xdf,0xa3,0x2b,0x97,0x11,0xc7,0xe7,0x47,0xfd,0xc7,0xbf,0x59,0xf3,0x28,0x32,0x46,0xc0,0xc4,0x7a,0x96,0x08,0x0d,0x2c,0xa1,0x82,0x6c,0x0a,0x33,0x82,0x55,0xd7,0xcf,0x3e,0x08,0xbb,0x22,0x15,0x96,0x12,0x66,0xd2,0xae,0x21,0x3a,0x54,0x6a,0xe0,0x33,0x0c,0xa4,0x96,0x4b,0x5d,0xf2,0x86,0xb9,0x70,0xe4,0x65,0x45
+.byte 0xe4,0x2f,0xa7,0xb4,0xc1,0xd5,0x9a,0x02,0xa1,0x5b,0x4e,0x58,0xca,0xf8,0x63,0xae,0x45,0x1c,0xf4,0xa7,0xc8,0xa5,0x84,0x23,0x87,0xcb,0x3e,0x88,0xca,0xe9,0xa9,0x49,0xc5,0xc6,0x63,0x37,0x99,0xe0,0x27,0x03,0x96,0x7b,0x73,0x8c,0x36,0xde,0x89,0x80,0x30,0x2c,0x00,0x94,0x0b,0xfb,0x1f,0x39,0xe0,0xed,0xb6,0x31,0x21,0x90,0xfe,0xa4
+.byte 0xee,0xa5,0xe5,0x7b,0x9a,0x11,0x41,0x51,0xab,0x89,0x54,0xe0,0x8d,0x5f,0x10,0x1b,0x76,0x27,0x77,0x3d,0xb0,0x58,0x86,0x7b,0xb7,0x45,0xfb,0xd0,0x81,0xa8,0xcd,0xc0,0xc8,0x5f,0xfb,0xfe,0x8c,0x0a,0x3d,0x5d,0x61,0x4b,0x9b,0x32,0x75,0x66,0xa9,0xac,0x32,0x35,0xe9,0x1a,0xdf,0x06,0x8d,0x13,0x5d,0x40,0xcb,0x7d,0x50,0x3e,0x54,0xab
+.byte 0x04,0xbc,0x83,0x32,0x8f,0xf5,0x93,0x1d,0x9b,0x5a,0xe1,0x19,0x70,0x4a,0xba,0xfc,0x4c,0x6a,0xf3,0xd6,0xd1,0xfd,0x48,0xd0,0x7c,0xa4,0xab,0x0b,0xb6,0x5f,0xe1,0x31,0xce,0x99,0x10,0x98,0xfc,0x6e,0x1c,0xaa,0x9c,0x34,0xa2,0x55,0xdc,0xe0,0x81,0x1b,0x9e,0xff,0x75,0x2e,0x25,0xe9,0x2c,0x20,0x83,0xf6,0x66,0xf9,0x63,0x31,0xfe,0xa7
+.byte 0xbf,0x4d,0xfd,0xff,0x0b,0x93,0x84,0xd4,0xb4,0x72,0x13,0x38,0x90,0x75,0xc9,0xff,0x61,0x4b,0xf9,0x55,0x62,0x58,0xf0,0x60,0xce,0x2d,0xec,0x94,0x06,0x0a,0xde,0x48,0xc0,0x46,0x89,0xfb,0x5c,0xf7,0x9f,0x37,0xad,0xd2,0xff,0xbe,0xfb,0x81,0x21,0xe0,0x20,0x43,0x88,0xad,0x40,0x47,0x7a,0xa9,0x30,0x88,0x10,0x16,0x41,0xf8,0x25,0xe0
+.byte 0x8f,0xc2,0xe3,0x9f,0x48,0xd3,0xfe,0x61,0x70,0xb9,0xa1,0x9e,0xaa,0xa6,0x73,0xcf,0xc3,0xd6,0xab,0x69,0x65,0x4a,0x3c,0xec,0x28,0x02,0x63,0x62,0xa1,0xb6,0xa3,0xd5,0x8c,0x9e,0x11,0x81,0x98,0x12,0x4f,0xec,0xb6,0xe5,0x3a,0x96,0xa1,0x11,0x13,0x77,0x5f,0x0f,0x19,0x40,0x14,0x28,0xcc,0xf1,0x3e,0x19,0x1d,0x78,0x31,0xac,0x5c,0xce
+.byte 0xd7,0x29,0xfa,0x02,0x3b,0x29,0xd8,0x3a,0x37,0xcb,0x94,0xb2,0x38,0xc7,0x7f,0x3a,0x46,0xd2,0xb7,0xfe,0xfb,0x54,0x7c,0x01,0xa2,0x9b,0x53,0x57,0x04,0x73,0x4e,0x06,0x90,0xe5,0x78,0x0a,0x45,0x67,0x12,0x83,0xd7,0x31,0x59,0xa4,0x76,0xaa,0x7c,0xde,0x72,0x92,0x11,0x94,0x4c,0x6a,0xe4,0x35,0x35,0x3a,0x2e,0xef,0x7c,0xc1,0x91,0x76
+.byte 0xd0,0xfe,0x84,0xd1,0xa1,0xf9,0x03,0xc3,0xba,0x09,0xbb,0x2c,0xe2,0xb5,0x06,0x7e,0x23,0xb7,0xe0,0xc1,0xd3,0xfd,0x55,0x01,0xf3,0xba,0xc5,0x1b,0xf8,0x02,0x60,0x92,0x0a,0x93,0x1c,0xc4,0x19,0x03,0x88,0xf5,0x45,0xe5,0x8f,0x7d,0xce,0x2c,0x87,0x2e,0xf6,0x55,0x8c,0xf9,0xb0,0xd2,0x72,0x2d,0x93,0x6d,0x28,0x6e,0x8e,0x3a,0xed,0x68
+.byte 0x02,0xda,0x80,0xd0,0x71,0x4a,0x8f,0x06,0x59,0x38,0x89,0x81,0xcb,0x1a,0x74,0x1e,0x62,0xa3,0xa5,0xb8,0x85,0xc3,0xd2,0x04,0x3d,0x3b,0x93,0x36,0x0c,0x12,0x55,0xfb,0x7b,0xc8,0xa3,0x25,0xa7,0x93,0xb0,0x3e,0x49,0x86,0xbf,0x76,0x8f,0xc4,0x4c,0xfe,0xce,0x4a,0xf6,0x2f,0x15,0x33,0x06,0x3a,0x35,0x49,0xe7,0x08,0xff,0x99,0xac,0xf6
+.byte 0x20,0x6d,0xab,0xb2,0x05,0xa9,0xe4,0x06,0x57,0x9c,0xf4,0x76,0x8c,0x82,0x64,0xd5,0x67,0xe0,0xad,0xe1,0x69,0xdc,0x9e,0x2c,0x59,0x92,0x3a,0xc8,0xc1,0x0a,0x61,0x89,0x45,0x9f,0x8b,0xf8,0x64,0x0a,0x5a,0x75,0x55,0x37,0x24,0xe1,0x42,0x43,0x7c,0x9c,0xcd,0x4e,0x9e,0x19,0xfb,0xd9,0x15,0x29,0x30,0x52,0x33,0xf3,0xc8,0x88,0xdb,0xaa
+.byte 0x07,0x27,0xfb,0x2b,0x0c,0xc0,0xa1,0x5f,0x51,0xf1,0x54,0xf8,0x90,0x0a,0x35,0x07,0x6e,0x9c,0x64,0xd8,0x4f,0x2d,0xb3,0x61,0xbc,0x18,0x1f,0x22,0x84,0x94,0x4b,0x85,0xfc,0x4a,0xf9,0xe5,0xfc,0xdd,0x7a,0x07,0xa2,0xbb,0xbe,0x7e,0x1f,0x4e,0xf9,0x29,0xb8,0xde,0x56,0xe9,0x04,0xc1,0xc2,0xb6,0xa8,0xc7,0xb6,0x83,0xf2,0x85,0x3d,0x35
+.byte 0xe3,0xeb,0x2f,0x2f,0x3c,0x1a,0x3a,0xf1,0x61,0x1f,0xe8,0xf0,0xce,0xa2,0x29,0xda,0x3f,0x38,0xf5,0x82,0x7a,0xb8,0x55,0xf1,0x1a,0x6e,0x5b,0x5c,0xd0,0xc8,0xc8,0x3a,0xe2,0xaf,0xb4,0x6f,0xba,0xe4,0x03,0x78,0x5f,0x47,0x4b,0xaf,0xfe,0x2a,0x7e,0x27,0xba,0x17,0xb4,0x92,0x27,0x70,0x13,0xd9,0xbb,0x6b,0x1c,0x9a,0x3e,0x29,0x85,0x9a
+.byte 0xb7,0x64,0x5b,0x6d,0x7b,0xec,0xb2,0x26,0x3a,0x4b,0xb7,0x17,0xaf,0xb5,0xa1,0xbc,0x4d,0x67,0x4c,0x86,0xd1,0x53,0x2e,0x5d,0x64,0xe8,0x55,0xd9,0xbb,0xae,0xc1,0x55,0x41,0x99,0x8e,0x4d,0xed,0x3d,0x9e,0xea,0xe3,0xf2,0x76,0x45,0x6d,0xaa,0xbb,0x89,0x0b,0xc0,0x13,0xfe,0x99,0x2c,0xb0,0xd2,0xa9,0xeb,0x58,0x57,0x4d,0x88,0x2e,0x04
+.byte 0x4f,0x7a,0x76,0xaa,0x3a,0xa6,0x08,0x93,0x42,0x74,0x2f,0x3a,0x35,0xb0,0x36,0xcc,0x77,0xec,0x54,0x41,0x2e,0x81,0xf6,0x9f,0xf3,0xe7,0x23,0xc0,0x3f,0xa4,0x52,0x83,0x38,0xe2,0x12,0xed,0xdb,0x23,0xa0,0x0b,0xbf,0x61,0x98,0x89,0xb0,0xa4,0x3d,0xa9,0x6a,0x73,0xa1,0x99,0xc9,0x9e,0x68,0x45,0x37,0x4b,0x6c,0x87,0xfb,0x93,0xf2,0xaa
+.byte 0xe8,0x1d,0x53,0x6c,0x4b,0xda,0xc5,0x6f,0xaa,0xde,0x99,0xd2,0xba,0x7c,0x27,0xc2,0x4e,0xd5,0x5b,0xc8,0x13,0x9e,0xa2,0x10,0x6a,0xbb,0x39,0xf9,0xa7,0x55,0x0a,0x65,0x88,0x3c,0x9b,0xff,0x83,0x4e,0xf7,0x9c,0x99,0x69,0xbd,0x64,0x0d,0xd1,0xc0,0xb0,0x43,0xd6,0x63,0x50,0x13,0x68,0x8d,0xd1,0x7e,0x56,0x93,0xb5,0x8e,0x8f,0x12,0xe5
+.byte 0x37,0x96,0x21,0x64,0xd5,0x0b,0xf6,0x27,0xf8,0xaa,0x34,0x8e,0xc4,0x2b,0x7b,0x6a,0x7c,0x89,0x4e,0x15,0x15,0x3d,0x17,0x93,0xd4,0x99,0xfe,0x97,0x95,0x20,0x85,0xcc,0xd4,0xcd,0x73,0x67,0x80,0x22,0x06,0xed,0x5e,0xce,0x90,0x59,0x01,0x31,0x24,0x17,0x37,0x4a,0x63,0x96,0xc2,0xf3,0xe0,0x21,0x0a,0x3b,0x9f,0x94,0xad,0xd6,0xa4,0xa9
+.byte 0xa2,0x54,0x0d,0x2a,0xb3,0x5c,0xfa,0xbe,0xeb,0x21,0xd6,0x13,0x22,0xa5,0x95,0x5e,0x25,0x72,0xf9,0x18,0x1f,0x50,0x64,0x04,0x5b,0xe8,0x0e,0x1f,0x6c,0xe1,0x4e,0xf5,0x7f,0xf0,0x13,0x4f,0xda,0x75,0xab,0x5a,0x98,0xd3,0x07,0x32,0x96,0x2a,0xc7,0x1e,0x0f,0x14,0xdb,0x96,0x5f,0xac,0xc1,0xef,0x5b,0x2d,0xd6,0x6d,0x13,0x01,0xd9,0x04
+.byte 0x9c,0xcd,0xe5,0x5e,0xbe,0x3a,0x47,0x14,0x09,0xbe,0x11,0xad,0x87,0x3f,0x0e,0xe1,0xcb,0x97,0xd0,0x6e,0x1f,0x49,0x07,0xd1,0x8c,0x2b,0xe0,0xf0,0xb2,0xaa,0x8b,0x70,0x18,0x7f,0x29,0xcc,0xc4,0x23,0x66,0x48,0xc4,0xb5,0x5e,0xf1,0x10,0xd7,0x1d,0x2a,0xba,0xe4,0x12,0x64,0x1d,0xf5,0x03,0x35,0x71,0x57,0x5d,0xf4,0xa4,0xb5,0x99,0x0b
+.byte 0x4c,0x80,0x65,0x07,0x2f,0xbc,0xf7,0x28,0x8b,0xc0,0x8f,0x84,0x63,0x7e,0xf5,0x01,0x23,0x8c,0xaf,0x71,0x35,0xd4,0xe1,0x70,0xc7,0xef,0x1f,0x66,0xa9,0x34,0x57,0xaa,0x9a,0xbb,0x80,0x43,0x15,0x96,0xc4,0x03,0xd9,0xae,0xbe,0x89,0x1c,0xa1,0x9f,0x65,0x61,0xe5,0x90,0x9f,0xa6,0xf4,0x3b,0xde,0xa1,0xd1,0xf1,0xf9,0x2d,0xd7,0xa7,0x7e
+.byte 0x3d,0x42,0x3d,0x1b,0x99,0xed,0x49,0x2e,0x92,0x6b,0x47,0x0e,0x0b,0x90,0x56,0xe0,0x1b,0x6b,0xfe,0x97,0xfe,0x9b,0xa2,0x50,0xcc,0xbf,0xea,0xae,0xe8,0xf0,0xc4,0xe5,0x81,0x20,0x4a,0xb0,0xf7,0xa5,0x23,0x24,0xf6,0x3f,0x9e,0x9c,0xcc,0xce,0xe4,0x95,0x49,0xea,0x66,0x4a,0x35,0x31,0xf3,0x03,0xc3,0x08,0xf9,0x5f,0x95,0x4c,0xbc,0x84
+.byte 0x13,0xbe,0x7f,0x35,0xbb,0xd7,0x35,0x3c,0xfb,0x05,0x43,0x95,0xbf,0x87,0xf2,0xc3,0x2d,0xef,0x13,0x1d,0x65,0x17,0x82,0x75,0x3d,0x67,0x51,0xcd,0x6e,0x42,0x5f,0x49,0x53,0x8b,0xaf,0x34,0x7d,0xa8,0xc1,0x45,0xcd,0x3d,0x29,0x00,0xa3,0xf3,0xbb,0x44,0x00,0x05,0x57,0xa5,0xeb,0xfd,0x98,0xa6,0xae,0xc6,0xc4,0x6c,0x6d,0x7d,0xf6,0x3e
+.byte 0x82,0x1d,0x12,0xe7,0xcd,0xd2,0xd5,0xfe,0x41,0xf8,0xa4,0xb3,0x6a,0x04,0x13,0x28,0x10,0x40,0x27,0xc9,0x43,0x74,0xcf,0xaf,0x9b,0x60,0x17,0x43,0x8f,0xd7,0xb7,0x56,0x72,0xf3,0x48,0x0a,0xe6,0x36,0xf2,0x3f,0x51,0xf9,0x6e,0xc8,0xa3,0x04,0x8c,0x01,0x86,0x6e,0x83,0x27,0xe2,0xba,0xf2,0x8f,0x8f,0xa1,0x39,0xe7,0x17,0xdd,0x06,0x10
+.byte 0x0c,0x7f,0xfa,0x22,0x5d,0x88,0x35,0xc6,0xcd,0x60,0xa2,0xf0,0xfd,0xc9,0xed,0x85,0xac,0x88,0xfd,0x7d,0xc0,0x77,0x1b,0x80,0x3d,0x21,0x1e,0x8e,0x4d,0xdb,0x20,0xe2,0x38,0xad,0xd4,0xb5,0x2b,0x2b,0x31,0xbc,0x7b,0x02,0xa2,0x25,0x50,0xc0,0x01,0x20,0x76,0x6f,0x98,0x0b,0x3d,0x46,0xed,0xbb,0x2b,0x39,0x74,0x30,0xce,0x3e,0x6d,0x91
+.byte 0xa1,0x89,0x83,0xde,0x69,0x93,0x1a,0x14,0xa1,0xb0,0xaa,0x80,0xb0,0x1c,0x02,0x3f,0x13,0x9a,0x15,0x7f,0xb4,0x02,0x8f,0x30,0x0b,0xee,0xd9,0x72,0xcb,0x74,0x95,0x4a,0x39,0xb3,0x4e,0x78,0x12,0xb1,0x77,0x89,0xc0,0xaf,0x17,0xfd,0xc1,0x68,0x65,0xd1,0x08,0xae,0x56,0x5c,0xe0,0xe7,0x6f,0xb3,0x1e,0x10,0xce,0xd8,0xdf,0xee,0x67,0xad
+.byte 0xd8,0x08,0xe0,0x79,0x36,0xe4,0x57,0x1c,0x45,0x22,0xa7,0x44,0xa8,0x12,0x37,0x92,0x85,0x9f,0x3a,0x48,0xd0,0xfd,0xb3,0x40,0x20,0x10,0xed,0x11,0xe0,0x9a,0xa6,0x09,0x5b,0xe9,0x21,0x95,0xe1,0x45,0x19,0x39,0xcc,0x85,0x5f,0xa5,0x6b,0x46,0x37,0xe1,0xa1,0x17,0x3f,0xb6,0xe9,0xb0,0x81,0x25,0xf6,0xd1,0xb8,0x22,0x5a,0x27,0x48,0x83
+.byte 0x01,0x36,0xd4,0xb8,0xc0,0x9f,0x37,0x52,0x22,0xd2,0x69,0x7b,0x3d,0xfb,0x31,0xc1,0xa3,0xb4,0xa1,0x1d,0x0e,0x24,0x9a,0xda,0x02,0x15,0x4b,0x46,0x24,0x0e,0xb1,0x79,0xc2,0x5b,0x01,0x60,0x4a,0x24,0x8a,0xbb,0x70,0xaa,0xf4,0x45,0xc1,0x0d,0x04,0x26,0x3f,0x74,0xbd,0xdd,0x33,0xaa,0xd6,0x62,0x56,0xb1,0xe7,0x2d,0x7b,0x66,0xa2,0x40
+.byte 0xb4,0xe4,0xbd,0x8e,0x35,0xba,0xf1,0x2f,0x59,0xa7,0x01,0x6d,0x5a,0xa7,0xa6,0x3b,0x82,0xa3,0xb4,0x54,0x51,0x33,0x6b,0xfb,0x78,0x4a,0x74,0x88,0x7f,0x55,0xea,0x08,0x8e,0x19,0x78,0xbc,0x80,0x19,0x2f,0x41,0x97,0x20,0xa0,0x9e,0xbf,0x44,0xae,0x2e,0x26,0x66,0xe3,0x25,0xa0,0x92,0xa9,0xbe,0x8c,0x0d,0x96,0xec,0x93,0x99,0xe2,0xe7
+.byte 0x81,0xd5,0x10,0x62,0x3a,0x97,0x38,0x51,0x36,0x11,0x00,0xe0,0xc1,0x3a,0xc5,0xd4,0xa5,0x19,0xf4,0x82,0x66,0x0c,0xf9,0xb3,0x04,0x3e,0x57,0xc3,0x43,0xab,0xc6,0x52,0x95,0x8f,0xd3,0xf1,0xde,0xd9,0x57,0x6d,0x32,0x4f,0xc7,0x8c,0x1b,0x7a,0x53,0x6a,0xcf,0x56,0xea,0x61,0xb4,0xe5,0x64,0x2d,0x02,0x26,0x5b,0xcf,0x1c,0xc7,0x37,0xc3
+.byte 0x41,0xd2,0x1b,0x6c,0x5b,0x47,0xb8,0x73,0x89,0xfe,0x0e,0x7a,0x35,0x05,0xfc,0xea,0x6a,0x34,0x74,0x69,0xf0,0x12,0x29,0xa9,0x33,0xce,0x93,0x15,0xa0,0x68,0xb3,0x46,0x43,0xdb,0x8d,0xfa,0xef,0x93,0x66,0x72,0x18,0xae,0xe4,0xab,0xf4,0x8a,0xd1,0xb5,0x42,0xbd,0x2d,0xda,0xcb,0xf6,0x44,0x25,0xb1,0x01,0x8a,0xff,0xd5,0x34,0x16,0xec
+.byte 0x7e,0x38,0x7b,0x50,0x41,0x61,0xf9,0xdf,0x4c,0x3e,0x02,0xd6,0xc3,0xce,0x19,0x9f,0x12,0x45,0x0c,0x99,0xb1,0xd9,0xeb,0xb9,0xe3,0xd5,0xb6,0x2b,0x25,0x8c,0x0b,0x04,0xf8,0x8d,0x41,0x41,0x3d,0x39,0x1b,0x7f,0x88,0xa7,0x8f,0x61,0x30,0xfe,0x67,0x75,0x35,0xd1,0x41,0x90,0xda,0x73,0x80,0xcf,0xc9,0xf6,0x44,0x00,0x67,0xcd,0xca,0xaf
+.byte 0x6d,0x84,0x39,0x9a,0xb2,0xbb,0xfc,0xac,0x9b,0xb2,0x95,0x2f,0xc9,0x06,0x3a,0xa4,0x7b,0x9a,0x25,0xc6,0xe5,0xdb,0x7a,0xc6,0x8b,0x84,0x6a,0xb7,0x1e,0x22,0xaa,0x10,0x96,0xd3,0x55,0x50,0xa2,0x02,0x04,0x69,0x92,0xd7,0x6b,0x1f,0x9b,0x45,0x07,0x71,0xda,0xdc,0x76,0xc5,0xb8,0x34,0xa2,0x32,0x33,0x16,0x2e,0xb0,0x2a,0x90,0x43,0x40
+.byte 0x92,0x77,0x74,0x4e,0xdc,0xb4,0xe2,0x7d,0xc1,0x57,0xaf,0xf4,0x2c,0x20,0x65,0x77,0x88,0xc9,0x6e,0x69,0x38,0xc8,0x19,0x95,0x32,0x54,0x59,0x7f,0x37,0xd7,0x3c,0x07,0x05,0x87,0x2b,0xf9,0x58,0x74,0xc7,0x61,0x13,0x3d,0xc2,0xd9,0xec,0x3b,0x36,0x9f,0x8e,0xae,0x52,0xdd,0x5c,0xaa,0x29,0x6b,0x31,0x34,0x48,0x61,0x34,0x62,0x56,0xce
+.byte 0x25,0xa8,0xc0,0x62,0xf5,0x35,0x58,0x4d,0x8e,0x61,0xd4,0xae,0x25,0x50,0xee,0x45,0xdd,0x14,0x7d,0x46,0x81,0x47,0xc3,0x3f,0x3f,0x81,0xdb,0x9a,0x59,0x56,0x4f,0x45,0xed,0x9c,0xe2,0xfc,0x96,0xff,0x5d,0x37,0x70,0xad,0xd2,0xeb,0xd9,0x2d,0x2a,0xaf,0xb9,0x16,0x4a,0x79,0x5d,0x76,0xb5,0x8f,0x74,0x19,0x6f,0x74,0x7d,0x4a,0xee,0x83
+.byte 0xa5,0x81,0xf3,0xd5,0xa0,0x43,0x5e,0x46,0xba,0xbe,0x49,0xa8,0xce,0x72,0x36,0x32,0xcd,0x8c,0x9b,0xa0,0xf9,0x5d,0xb7,0xb9,0xc7,0x8c,0xb2,0x59,0xb4,0x44,0xc1,0x90,0x53,0x92,0xd2,0xa8,0x4c,0xf9,0x35,0x40,0x32,0xd1,0xf0,0x2f,0xcb,0x6a,0x0b,0xe0,0xbe,0x34,0xc9,0x82,0x18,0x8d,0xfb,0xfc,0x50,0x8d,0x67,0xd5,0x86,0xd4,0xf1,0xb1
+.byte 0xaa,0x2f,0x9c,0xbc,0x52,0xbb,0x9f,0x17,0x1c,0x74,0x1d,0xdf,0x2d,0x1a,0x94,0x43,0x9b,0x80,0xb9,0x48,0xa3,0xaf,0x4b,0x30,0x0d,0xd9,0x3f,0x11,0x48,0x79,0x60,0xcc,0x25,0x6a,0xdb,0x8a,0xda,0xab,0xda,0x09,0x7c,0x9c,0x4a,0xaf,0xf9,0x0d,0xfb,0x7a,0x92,0x61,0xa5,0x17,0xf8,0x79,0x1b,0x00,0x52,0x56,0x5e,0x27,0x22,0x37,0xf4,0xbe
+.byte 0x52,0x36,0xd3,0xdc,0x9a,0x33,0xf5,0x44,0x0e,0x53,0x0b,0xf6,0x9b,0xb0,0xb6,0x11,0xe4,0xd5,0x45,0x2e,0xdc,0xdb,0x46,0x18,0x9a,0x90,0x8b,0xcc,0xfe,0xc6,0x94,0x4f,0x97,0xb9,0x42,0xb6,0xd3,0x8f,0x7c,0x20,0xd1,0xa8,0xe6,0x85,0xce,0x65,0xeb,0x95,0x38,0x11,0x5c,0x1a,0x9d,0x34,0x25,0xc2,0xf0,0x33,0xbb,0x2c,0xc9,0x8d,0x0a,0x7a
+.byte 0xb1,0x90,0x9f,0x24,0xed,0x35,0x3c,0x7e,0x71,0x82,0x12,0x3a,0x79,0x29,0xc8,0xa7,0x3e,0xa2,0x4e,0x50,0x03,0x94,0x7a,0x94,0xb7,0x2b,0x61,0x95,0x3d,0x5e,0x60,0x1c,0x68,0x51,0x82,0x73,0xe0,0x4a,0x2a,0x48,0x26,0xda,0xa3,0x53,0x8c,0x83,0xba,0x9f,0x95,0x37,0x5e,0x68,0x54,0x19,0x21,0xf8,0x31,0xaf,0x6b,0xfc,0x3a,0x3e,0xe3,0x3f
+.byte 0xdb,0x16,0xb5,0x7e,0x13,0xf8,0xfd,0x7f,0x36,0xd6,0x8e,0x33,0xaa,0xe9,0xa4,0xa7,0xfd,0xf0,0x32,0xa6,0xdf,0xfa,0x22,0x7d,0xff,0x2a,0xe6,0x0d,0x6f,0xe2,0x21,0x54,0x6c,0x1a,0x99,0x17,0x56,0xad,0xce,0x39,0x6b,0x1a,0xe8,0x27,0x13,0x12,0x9c,0x4b,0x84,0x69,0x73,0xde,0x44,0x14,0xb2,0x7c,0x44,0x54,0x91,0x4f,0xeb,0x83,0xec,0x04
+.byte 0x73,0x85,0xb1,0xa8,0x44,0x72,0xa7,0x77,0xaf,0x0c,0xe0,0x52,0x65,0x04,0xe7,0x2a,0xee,0x0c,0x20,0x83,0x32,0x34,0x17,0x00,0x61,0xf9,0xf5,0x42,0x03,0xa4,0xb8,0x02,0x6f,0xb2,0xd3,0x65,0x51,0x2a,0x8e,0xdf,0x28,0x78,0x8a,0x8a,0x00,0xfb,0x24,0xd6,0xd5,0x86,0xaa,0xfb,0x86,0x93,0x5d,0x11,0xa4,0xf3,0xfd,0x36,0x18,0xf3,0x61,0xea
+.byte 0x33,0xa8,0x0c,0xf0,0xb4,0x68,0xee,0xd3,0xe3,0x4f,0x22,0x24,0xde,0x1f,0x29,0x84,0x8b,0x5b,0x73,0x15,0xd6,0x62,0xa3,0x71,0x7d,0xf0,0x65,0x36,0xca,0x68,0x8a,0x6d,0x61,0x9c,0x0d,0x53,0xdd,0xf4,0x12,0xb3,0x5f,0xf0,0xb1,0x86,0xd6,0xe2,0xd6,0x80,0x4a,0x01,0x09,0x99,0x65,0xdb,0xae,0xe6,0xfc,0x68,0x5b,0xf9,0x10,0x99,0x8b,0x9f
+.byte 0x08,0x52,0x09,0xae,0x59,0x4d,0x6c,0xf9,0x91,0x2b,0x57,0xea,0xf0,0xa3,0xdb,0xb8,0x99,0x29,0x2f,0xab,0x95,0x01,0x7d,0xec,0xd8,0x77,0x73,0x75,0x4f,0x88,0x44,0x69,0x76,0xc9,0x3c,0xf0,0x2d,0x7b,0x0d,0xbe,0xd4,0x88,0x0d,0xbc,0xa0,0x52,0xf4,0x2a,0xd1,0x62,0x2a,0xa9,0xe2,0x41,0x2f,0x52,0xce,0x96,0x7d,0x65,0x9b,0x74,0x82,0xde
+.byte 0x43,0x4d,0xf8,0x8e,0x77,0x1c,0x18,0xf5,0x7e,0xab,0x94,0x3e,0xe7,0x90,0x2b,0xa1,0x16,0x00,0x7f,0x9c,0x9d,0x86,0xd1,0x74,0x7e,0xf7,0xbd,0x5a,0xa7,0x2f,0x0f,0xb0,0x5c,0xfc,0xfb,0x59,0x00,0xf3,0x84,0x09,0x77,0x66,0x17,0xf6,0x5d,0x0e,0xe2,0xe2,0xd4,0xb3,0x9e,0x79,0x88,0x66,0xa5,0x8e,0x30,0xae,0xca,0x7e,0x2b,0x32,0xa2,0x89
+.byte 0xe9,0x7e,0x59,0x21,0xd5,0x99,0xc7,0x10,0xa8,0x6f,0x95,0x8d,0x84,0xb4,0xcf,0x61,0xe7,0x5c,0x09,0xf3,0xbc,0xeb,0xf6,0x0c,0x84,0x1a,0x8d,0x13,0xf8,0x49,0x22,0xeb,0x09,0x55,0xef,0x56,0x12,0x21,0xcb,0x61,0x87,0xbf,0xef,0x43,0x5b,0x82,0xa8,0xc2,0xa2,0x5e,0xad,0x54,0x9a,0xcc,0x95,0xa2,0x01,0x05,0xb2,0xbb,0x26,0xa8,0xfd,0x6b
+.byte 0x66,0x95,0x9c,0x0b,0x7b,0x23,0x32,0xff,0xdd,0x6c,0x18,0x1e,0x77,0x01,0x3c,0x82,0xaa,0x97,0x28,0x0f,0x93,0xa5,0x6c,0x85,0xe5,0x94,0x40,0xe0,0xa3,0x01,0x57,0x56,0x43,0x40,0xdd,0xa9,0xaf,0x21,0x79,0x10,0x8b,0xff,0x4b,0x51,0xe4,0xa2,0xe5,0xd7,0x0c,0xe2,0x9e,0x1e,0x38,0xdb,0x64,0xe1,0xb1,0x5b,0xe5,0x40,0xab,0xf6,0x05,0xd2
+.byte 0xba,0x85,0x78,0x61,0x2d,0x2e,0x07,0x06,0x6d,0x86,0x59,0xaa,0xd9,0x2c,0xfb,0x83,0x34,0xd0,0x2d,0x1d,0xad,0x5f,0xe4,0xac,0x05,0x46,0x3a,0x7b,0xd9,0xef,0x9f,0x2b,0x0c,0x18,0x21,0xf1,0x24,0x8a,0xb4,0x6e,0xd2,0x98,0x75,0x08,0x96,0x0c,0x7b,0x41,0xb7,0xf7,0x1f,0xcd,0xa8,0x1f,0x44,0xb1,0xed,0xdc,0x0e,0xcb,0x94,0xa0,0xb8,0x62
+.byte 0x67,0xdc,0x24,0xde,0x9e,0xe9,0x89,0xcd,0x92,0x7c,0x91,0x15,0xff,0xbd,0xfd,0xee,0xf8,0x29,0xd7,0xf9,0xe8,0x51,0xe7,0xc8,0x21,0xc5,0x20,0xe4,0xb8,0xa6,0xdb,0xfb,0x09,0x65,0x1c,0x3b,0x9e,0x39,0x44,0xcf,0xf5,0xc2,0x7b,0xf3,0x14,0x7d,0x69,0xf2,0xd0,0x97,0x63,0xf1,0xa7,0x81,0x56,0xfb,0xdf,0x4d,0x83,0x55,0x4f,0xde,0x50,0x7d
+.byte 0xfe,0xb0,0xc0,0xc8,0x3b,0x3d,0x78,0x74,0x58,0x74,0x5e,0xfc,0xb7,0x0d,0x9a,0x26,0x3b,0x39,0xb6,0xf7,0xe0,0xe4,0x12,0x3c,0xd6,0x88,0x1c,0x9b,0x51,0x89,0xe7,0x53,0xcd,0x24,0x2e,0x34,0xa2,0xee,0xfa,0x5a,0x87,0xe5,0x7e,0xd5,0xf2,0x2f,0x15,0x99,0x57,0x5d,0x31,0x02,0xf8,0x08,0x38,0xea,0x8c,0x30,0x21,0xb0,0xff,0x94,0x51,0xcf
+.byte 0x23,0xb7,0x02,0x5d,0xa3,0x75,0x7f,0x9d,0x66,0x49,0xe5,0xbe,0xc7,0x06,0x5e,0x1d,0xc9,0xe2,0x82,0x8a,0xc4,0x17,0x83,0x7e,0x65,0x6d,0x85,0x26,0x66,0xc0,0xf4,0xa5,0x1c,0x6e,0xba,0x32,0xfa,0x41,0x7b,0x2b,0x64,0x98,0x58,0x8c,0xce,0x2f,0xf3,0x56,0xf0,0x67,0xef,0x73,0x79,0xc4,0xc2,0x07,0xd7,0x85,0x1d,0x75,0x38,0x1e,0x15,0x82
+.byte 0x9d,0xf3,0xdd,0x3a,0x72,0xa3,0x23,0x0e,0x4a,0x1a,0x3a,0x97,0xc8,0xf1,0xf1,0x58,0x5d,0x1f,0xae,0x6d,0xc8,0x03,0xe0,0x7b,0x0f,0xf5,0x6f,0x35,0x41,0x8d,0xd5,0x03,0x85,0xdd,0xeb,0x3d,0x73,0xb1,0x93,0x35,0xc0,0x0f,0xfb,0x42,0xd4,0xf1,0x6b,0x35,0xe2,0x96,0xc5,0xd9,0xf2,0x69,0xbb,0x70,0x5e,0xf0,0x0c,0xe6,0xb5,0x81,0x94,0xc9
+.byte 0x29,0xa1,0x34,0x89,0xd9,0x9c,0x49,0x01,0x37,0x56,0x16,0x30,0x47,0x6f,0xe4,0x7c,0x5b,0xdd,0xfb,0x80,0x7f,0x0c,0x38,0x53,0x3d,0x57,0xf7,0xc4,0x80,0xf9,0x12,0x3a,0x9f,0xf9,0xb0,0xb6,0x94,0x6d,0xde,0x41,0x4e,0x30,0xac,0x1f,0x25,0x34,0xa0,0x95,0xe8,0x00,0x86,0x32,0x40,0xbb,0xc1,0x49,0x2d,0x07,0x49,0xb8,0x5f,0xcd,0x1b,0xd3
+.byte 0x0e,0x0c,0x54,0x0f,0xe4,0x20,0xe5,0xa1,0xed,0x98,0x65,0x5a,0xe7,0xce,0x68,0x9c,0x4c,0x48,0x03,0x9c,0x5b,0x68,0x4b,0x75,0x71,0x11,0x40,0x69,0xca,0x9a,0x3a,0xb2,0x3d,0x35,0x2c,0x70,0x35,0x8b,0x80,0x53,0x86,0x30,0x7d,0x4c,0xe9,0xc0,0x30,0x60,0xd0,0x06,0xbe,0xc2,0xad,0x39,0xcc,0xb2,0xec,0x90,0xcc,0xbd,0x7c,0xb5,0x57,0x20
+.byte 0x34,0x2e,0xfc,0xce,0xff,0xe3,0xd9,0xac,0xb8,0x62,0x6b,0x45,0x22,0x34,0xdf,0x8e,0x4b,0xf1,0x80,0x28,0x8d,0x0f,0xd5,0x3b,0x61,0x3e,0x91,0xa1,0xb1,0x85,0x27,0x78,0x88,0xbc,0xc4,0xb1,0xa1,0xbe,0x4f,0xc3,0xfd,0x1f,0xb9,0x30,0x31,0x2f,0xc1,0x9d,0xa3,0xb6,0x29,0xa4,0x60,0x82,0x73,0x93,0x74,0xea,0x97,0x67,0xf2,0xa3,0x97,0x50
+.byte 0x2f,0x9f,0x7b,0x23,0x18,0xb6,0xb4,0xee,0x15,0xa0,0xa4,0x07,0x1a,0xe9,0xb6,0x63,0x7e,0x88,0x40,0x57,0x86,0x79,0x6b,0x75,0xbe,0x57,0x8f,0xfe,0x0d,0xdf,0x4c,0x7f,0x39,0x9a,0x97,0xa6,0x87,0xc5,0xfd,0x52,0x77,0x36,0xc9,0x66,0x63,0xcf,0xc7,0x34,0x3b,0xf4,0x7a,0x12,0x56,0xf0,0xbc,0x7a,0x1a,0xa2,0xa2,0x51,0xb8,0xc1,0x70,0x81
+.byte 0xcf,0x1d,0xb5,0xe2,0x82,0xbb,0xfc,0xa3,0x80,0x18,0xf8,0x4b,0x76,0x9c,0xdf,0x9d,0x6c,0xf1,0xd8,0x2a,0xab,0x0c,0x12,0x02,0x29,0x09,0xfd,0x28,0xfb,0x57,0x38,0x05,0x2c,0xc5,0x67,0xd1,0xaa,0xbc,0x98,0xe6,0x22,0x78,0x06,0x4f,0x69,0x6a,0x63,0x1a,0x13,0x0b,0xa5,0xd2,0x61,0xc7,0x45,0x5b,0x21,0xab,0xbf,0x7b,0x7f,0x8c,0x2c,0xba
+.byte 0x93,0x9f,0x41,0x67,0xc4,0x5f,0x53,0xac,0x90,0x05,0x86,0xb5,0x80,0x1f,0x5b,0x35,0x4f,0x92,0xf5,0xa8,0x5f,0xfb,0x56,0xdd,0x2d,0x9b,0xea,0xcb,0x0f,0x98,0x3c,0x4e,0xf1,0xa5,0x2c,0x37,0x70,0xe3,0x5c,0xaf,0x96,0x36,0xa8,0x2a,0xec,0xe0,0x2c,0x00,0xcd,0xaf,0x03,0x1d,0x05,0x2f,0x8c,0xe7,0xfe,0x4d,0xe9,0x97,0x6d,0xe1,0xf9,0x23
+.byte 0x60,0x08,0xea,0xfb,0x27,0xc8,0xf9,0xdf,0x49,0xfe,0xd9,0x48,0x35,0x6b,0x43,0xc5,0x19,0x90,0xb1,0xf1,0xee,0x84,0x7a,0x57,0xfa,0xa5,0xd6,0xd8,0xc9,0xf0,0x8a,0xe7,0x13,0x84,0xfc,0x28,0x54,0xae,0x99,0xfd,0x91,0xbe,0x91,0x27,0x98,0x28,0xdc,0xd7,0x2e,0xc1,0x21,0xcb,0x31,0xf8,0x47,0xe6,0x77,0x6d,0xee,0x7b,0x12,0xe4,0x9e,0x9d
+.byte 0x07,0x46,0xa9,0x15,0x0b,0x3c,0xbe,0xc7,0x2d,0xe5,0xd6,0x25,0x4c,0xea,0x61,0xdc,0x18,0xb2,0x9d,0xb0,0x9a,0xff,0xa3,0x5f,0x2b,0xab,0x52,0x7d,0x1b,0xc3,0xa3,0x41,0x8f,0x5a,0x29,0xbd,0xc4,0x56,0x54,0x43,0x2d,0x61,0x07,0xed,0xd1,0x81,0x45,0xdb,0x61,0x0f,0xda,0xea,0xa6,0x1e,0xf9,0x9c,0xc0,0x8c,0xc4,0x8e,0xc7,0xca,0x38,0xe2
+.byte 0x45,0xde,0xdc,0xc5,0xc6,0xb0,0x43,0x17,0x8b,0xb1,0x58,0xd1,0x10,0x8e,0xa5,0x17,0x37,0x85,0xca,0x61,0x67,0x5c,0xd0,0x72,0x22,0x6b,0xd3,0x3b,0x53,0xbc,0xfb,0xe1,0x1e,0xa4,0x1b,0xd3,0xc3,0x8a,0x50,0x03,0x39,0xf5,0x36,0xdf,0x51,0x2e,0x05,0x4a,0xa8,0xdb,0x91,0x87,0xae,0xfe,0x3f,0x5c,0x35,0x5e,0xf9,0x8f,0x43,0x9e,0x92,0x36
+.byte 0x91,0x27,0x90,0xe8,0x7c,0xcc,0xc4,0x9c,0x13,0xbb,0x61,0x40,0xec,0x4f,0x49,0xcf,0x04,0x38,0x77,0x3b,0xb5,0xf8,0x69,0x8d,0xbb,0xb2,0x30,0x32,0x42,0x4d,0x7d,0x6c,0x56,0xdc,0xf4,0x8f,0xfc,0xb8,0x53,0xc5,0x11,0x17,0x23,0x94,0xf9,0x6d,0x6f,0xee,0xee,0x31,0xbf,0xce,0x11,0x8b,0x9e,0xd7,0xa5,0x09,0x36,0x89,0x72,0x25,0x18,0x1f
+.byte 0x13,0xa7,0xdf,0xc5,0x91,0x7e,0xd6,0x2b,0xb8,0x08,0x9c,0x12,0x83,0x21,0x97,0x3d,0xad,0xac,0x1c,0x54,0xf3,0x65,0x04,0x2f,0x09,0xd1,0xd2,0xe5,0xce,0x24,0xb1,0xd9,0xe4,0x38,0x1f,0xb4,0xce,0xea,0x27,0x7f,0x5f,0x16,0x52,0xa4,0x2f,0x2f,0xaf,0x91,0xec,0x7a,0x21,0xf7,0xa1,0x38,0x78,0x78,0xc5,0xa9,0x94,0x63,0x87,0xf8,0x95,0x9e
+.byte 0xf9,0x82,0x98,0x6d,0x9d,0x48,0x80,0xaa,0x7a,0x36,0xf9,0x5f,0xfb,0x39,0x3d,0xae,0xbc,0xcd,0xfc,0x67,0x46,0x07,0x7e,0xdf,0xef,0xff,0x8d,0x67,0xe7,0xd9,0x60,0x90,0x7b,0x49,0x10,0x65,0x3a,0x60,0x87,0x7a,0xed,0x9a,0x44,0x48,0x81,0xcc,0xad,0xe4,0x6a,0x62,0xf8,0x02,0x6f,0x41,0x8a,0x8d,0x44,0x28,0x1a,0xb8,0x52,0x60,0x4b,0x3f
+.byte 0xfc,0xdd,0x33,0xad,0x14,0xb1,0x34,0x63,0x1f,0xdc,0xeb,0x9a,0x3f,0x99,0x82,0x28,0x36,0x6f,0x8e,0xd7,0x39,0x2e,0xc0,0x37,0xfb,0xad,0x57,0x6c,0x82,0x1a,0xc6,0xe4,0x4b,0xca,0x00,0x68,0x57,0x34,0xf0,0x57,0x6a,0xcb,0x50,0x5d,0x8d,0xfa,0xcd,0x89,0x41,0x91,0x23,0x98,0x1f,0x4f,0x18,0xb6,0xd2,0x9d,0xde,0x2f,0x5c,0xe6,0x08,0x76
+.byte 0x97,0xba,0x24,0x4e,0x84,0xd7,0xeb,0x80,0xde,0xec,0xee,0x51,0x5a,0x0e,0x5f,0xb7,0x37,0xda,0xa5,0x94,0x2b,0x6d,0x73,0xb7,0x6c,0x22,0x95,0x3a,0xaa,0x5c,0x6f,0x89,0x90,0xec,0xb3,0x31,0x00,0x37,0x28,0x18,0xbb,0x98,0x23,0xfc,0x3e,0x21,0x7c,0xaa,0x44,0x54,0x7b,0xe6,0xa0,0x17,0x58,0xef,0x11,0x3f,0x48,0xb8,0xa8,0x15,0x4a,0x92
+.byte 0xa9,0x39,0xe2,0xa6,0x38,0x03,0xa6,0xd3,0x79,0x8b,0x38,0x06,0xaf,0x4b,0xd4,0xab,0x0a,0x13,0xff,0x2d,0xfa,0xab,0x4b,0x64,0x9e,0xb0,0x3d,0xba,0x18,0x01,0xfd,0xc3,0x6a,0x6f,0x21,0x9c,0xf5,0x2f,0xab,0x2d,0x42,0x12,0xc9,0x72,0xde,0x83,0x42,0x6a,0xf0,0xd4,0x96,0x73,0xf1,0x93,0xa3,0x2d,0x9b,0xb4,0x94,0x51,0x0c,0x6e,0x8e,0xf0
+.byte 0x5e,0xbf,0x98,0xbf,0x08,0x0f,0xd8,0x6c,0x65,0x4e,0xb5,0x47,0xeb,0x7c,0x1b,0x73,0xe0,0xe6,0x2c,0x03,0xd2,0x2a,0x32,0xff,0xa7,0x03,0x6d,0x38,0x47,0x56,0x4b,0x25,0x0b,0x39,0x73,0x87,0x4b,0xa5,0x12,0x79,0x79,0xf3,0x88,0x37,0xe2,0x4f,0xb8,0xbf,0x70,0x0e,0xf7,0x8c,0xe6,0xa3,0xbc,0x35,0x10,0xcd,0x72,0x56,0xd6,0x83,0xc1,0x0b
+.byte 0x5b,0xf3,0xa8,0x74,0xc7,0xb9,0x84,0xc8,0x6c,0xff,0x66,0xad,0x95,0x6f,0xbc,0x82,0x84,0x2a,0x11,0x40,0xf9,0xa8,0x3f,0x05,0xf9,0xab,0x19,0x55,0xce,0x80,0x90,0x65,0x49,0x3d,0xe1,0x54,0x2c,0x1a,0xdb,0xf3,0xaa,0x2f,0xeb,0xf5,0x10,0x1f,0x8c,0x35,0x46,0x68,0xb1,0x4c,0x52,0xe7,0xe9,0x58,0x78,0x33,0xfd,0xc6,0x13,0x0e,0x69,0xae
+.byte 0xf4,0x1a,0x8a,0x77,0x8f,0xcc,0x98,0x74,0x88,0x20,0x84,0x5b,0x83,0x54,0xa9,0xee,0xc2,0x0f,0x8a,0x46,0xb1,0xc7,0xfb,0xfd,0xf2,0x2c,0xaf,0xfa,0x72,0x34,0x7a,0x79,0x50,0x10,0xc6,0x04,0xfd,0x0a,0x1e,0x4a,0xb5,0xf5,0xe7,0x4d,0x98,0x80,0x5d,0x0b,0x81,0x23,0xc3,0x6e,0xbf,0xc8,0xcd,0x35,0x96,0x5a,0x58,0xec,0xef,0x6a,0x8d,0x48
+.byte 0xda,0x48,0xbb,0x8f,0xcc,0x1f,0x86,0xff,0x7a,0x27,0xef,0xe6,0xb7,0xc7,0x2a,0x47,0x8d,0x6c,0x4a,0xc6,0x0a,0x32,0x67,0x1d,0x2f,0x83,0x3d,0x46,0x41,0x46,0x1c,0x75,0x7b,0x29,0x89,0xa2,0x65,0x9b,0x53,0x3d,0xd9,0x90,0x83,0xce,0xab,0x07,0xbb,0x46,0x61,0xb1,0x54,0xbd,0xc9,0x98,0xf7,0x96,0x76,0x03,0xdc,0x1f,0x1b,0xf2,0x5c,0x07
+.byte 0xdd,0x24,0x94,0x72,0x1e,0x94,0xb1,0x14,0x0b,0x40,0x77,0xde,0x3d,0x3f,0x1c,0xf0,0x8f,0xa4,0xcb,0x34,0xb5,0x2b,0x72,0x53,0x78,0xf3,0x3f,0x8e,0x47,0x30,0xb2,0x7e,0x73,0x3f,0x9a,0xef,0x19,0xb1,0xef,0x82,0x99,0xd4,0x17,0x60,0x94,0xf6,0x15,0x75,0x50,0x1f,0xb3,0xdd,0xae,0x1f,0xf8,0x63,0x9a,0x30,0x2c,0xf0,0xdd,0xbf,0x49,0x70
+.byte 0xd7,0x86,0x4a,0x5c,0x46,0x10,0x48,0x46,0x02,0x18,0xa4,0x39,0xb6,0x75,0x11,0x21,0xae,0x62,0x64,0xd8,0x85,0xc8,0xda,0xd2,0xd6,0x69,0xcc,0x37,0x57,0x49,0x73,0x1a,0x10,0x7b,0xd7,0x58,0xdd,0x0b,0xf3,0x16,0xe7,0x62,0x2c,0x32,0x92,0x0e,0x70,0x6f,0x77,0x74,0x0d,0xff,0xc2,0x8d,0x3b,0x3f,0x29,0x28,0x8f,0x88,0xb8,0x02,0x5b,0x3a
+.byte 0x8b,0x65,0x89,0x92,0x2f,0xc7,0x30,0x73,0xc3,0x20,0xbc,0xa4,0xe4,0x5e,0xea,0xf8,0x21,0xb6,0xc5,0x47,0x56,0x35,0x8f,0xf6,0xd5,0xdd,0x77,0x1d,0xdf,0xd0,0x27,0xa3,0x04,0xb9,0xd0,0xc4,0x28,0x16,0xa5,0xaf,0x47,0x55,0x85,0x93,0x38,0xf4,0xac,0x13,0x30,0x7d,0x77,0x1f,0x3d,0xd5,0xd7,0x22,0xbe,0xe2,0x4e,0x6d,0x4b,0x0e,0xbe,0x1d
+.byte 0x43,0x79,0x34,0x95,0x6f,0x38,0xa1,0xb3,0xa0,0xed,0xf6,0x17,0xf4,0x24,0x70,0x26,0x18,0x3e,0x1c,0xde,0xdc,0xa9,0x67,0x12,0xd3,0xc8,0xd7,0x70,0x13,0xa5,0xb3,0x25,0xe1,0x0a,0xe9,0xf6,0x4e,0x56,0x82,0x17,0xdc,0xbc,0x96,0x2f,0x59,0x03,0x9b,0xf4,0xc3,0x66,0xd2,0x90,0x95,0x1d,0xe0,0x99,0xfb,0xd8,0xa8,0x14,0xc7,0xa6,0x12,0x6b
+.byte 0x08,0x6a,0xc8,0x0f,0x34,0x2a,0xb6,0xc4,0x9a,0xcd,0x61,0xf7,0x61,0xa3,0x59,0x29,0x11,0x30,0x76,0xb5,0x97,0xbc,0x2f,0x87,0xd8,0x12,0xb3,0x1d,0x99,0x8d,0x5d,0x57,0x0c,0xda,0xb0,0x9f,0x51,0x1a,0xb5,0xc6,0x94,0xc3,0xe9,0x5a,0x72,0x0c,0x37,0x76,0xb6,0x3c,0x00,0x02,0x69,0xad,0x8e,0x66,0x8b,0x5c,0x13,0x48,0xb7,0x9e,0xc5,0x7e
+.byte 0xe0,0x35,0x07,0xd2,0x04,0x9c,0x35,0x95,0x8b,0x55,0x87,0x03,0x32,0x36,0xeb,0x11,0x88,0x54,0x8d,0x3e,0x88,0x46,0xc2,0xfe,0x24,0xa4,0x4b,0x92,0x19,0x44,0x6c,0xc9,0x69,0x32,0x22,0x95,0x5b,0xda,0x58,0xa4,0x00,0x33,0x83,0x2d,0xa4,0x17,0x2e,0x00,0x4d,0x9a,0x7d,0xef,0x04,0xa8,0x8b,0xf2,0x7c,0xb9,0xdb,0x54,0xcf,0x63,0x14,0x52
+.byte 0x5b,0x79,0xf6,0x89,0x5c,0xfa,0x8a,0x85,0x88,0x7f,0xca,0xed,0xfb,0x62,0xbc,0x1d,0x0d,0x90,0x51,0x27,0x45,0x74,0xa0,0x55,0xfc,0x60,0xea,0xef,0x6e,0x40,0xeb,0x0b,0x61,0x45,0x44,0xee,0xb6,0x20,0x4c,0xe1,0x08,0x62,0x29,0xdd,0xd0,0xa1,0xd5,0x7f,0x42,0xb9,0x0f,0x12,0xef,0xfb,0x13,0xa2,0xf1,0x85,0xaa,0x56,0x18,0x6c,0x70,0x7a
+.byte 0x4d,0x52,0x76,0xce,0xa9,0xed,0x0a,0xcc,0x55,0xf0,0x01,0x99,0x44,0xe9,0xc4,0x74,0x33,0x2a,0xce,0x53,0xf3,0x4f,0x8f,0x1c,0x67,0x39,0x2b,0x0e,0x46,0xe2,0x49,0x06,0x52,0xbf,0xc4,0x3f,0x93,0x84,0x46,0x0a,0x9b,0xcb,0x1d,0xa5,0x66,0x9c,0x3e,0x3d,0xd1,0x92,0xda,0xe2,0x11,0x5b,0x89,0x7a,0xc4,0x33,0xba,0xa9,0x19,0xfd,0x3c,0xe3
+.byte 0xf0,0xa0,0x9b,0x83,0x50,0xce,0xa9,0x62,0xe3,0x85,0xc6,0xc4,0xe5,0x22,0xbb,0x1a,0x8e,0x04,0xb5,0x4d,0xca,0x18,0x7d,0xb0,0x99,0x50,0x78,0x88,0x69,0x43,0xe0,0xfd,0x90,0xa6,0xbf,0xdc,0xe3,0x03,0xf2,0x5d,0xa1,0xa2,0x88,0xc7,0xab,0xa9,0xc2,0xda,0x3f,0xff,0x79,0xa6,0x07,0xfd,0xc4,0xb1,0xfb,0x47,0x3d,0x75,0x82,0x26,0x52,0x85
+.byte 0x3f,0xf9,0xc9,0x85,0x46,0x24,0xe9,0x0f,0x96,0x8c,0xbb,0x02,0x83,0x60,0x69,0x49,0x8c,0x38,0xd1,0x4e,0xd0,0x63,0x2c,0xb6,0x12,0xb2,0x8e,0x4b,0xd3,0xe3,0xdf,0x20,0x00,0x99,0xf1,0x06,0x93,0xbf,0x27,0x42,0x8b,0xe3,0x8d,0x4c,0x3b,0x05,0x62,0x64,0x21,0xb1,0xfe,0xce,0x08,0xd2,0x23,0x69,0x11,0x74,0x31,0x3a,0x90,0x10,0x07,0x1a
+.byte 0xd5,0xf5,0xc2,0x09,0x61,0x67,0x65,0x99,0x3a,0xf3,0x9e,0x4a,0xd8,0xa1,0xb2,0x50,0xf4,0x07,0xf0,0x7b,0x89,0x6d,0x4d,0x6a,0xd4,0x54,0xb9,0x3c,0xd5,0x4e,0x1c,0x12,0x0f,0x19,0x92,0x97,0x21,0x65,0x83,0x33,0x20,0x92,0x95,0xd4,0x0e,0x78,0xf4,0x92,0x16,0x36,0xd8,0x1b,0xd8,0xbf,0x41,0xe4,0xfb,0xb9,0x81,0x26,0x72,0x7e,0x1b,0x58
+.byte 0x05,0x45,0x97,0x66,0xf2,0x23,0x16,0xca,0x4e,0x95,0xc2,0x6c,0x60,0x84,0x5f,0x77,0x82,0x44,0x0e,0xf7,0x30,0xaa,0x51,0xa9,0x85,0x8b,0x03,0xfc,0x3d,0x6d,0x66,0x91,0x37,0xa5,0x1c,0xf8,0xcf,0x9d,0xd8,0xcd,0x8c,0xa1,0x29,0xbd,0xb5,0x4f,0x47,0xba,0xd1,0x55,0x3b,0x4e,0xc9,0xce,0x4c,0xcf,0x2e,0x19,0xa0,0x95,0xe6,0xcb,0x36,0x97
+.byte 0x3e,0x23,0xbe,0x09,0xfd,0x38,0x47,0x00,0x03,0xec,0x49,0xbb,0x49,0x1f,0x45,0x84,0x0f,0x1e,0x74,0xab,0xc9,0x07,0x00,0x04,0x70,0xe9,0xbd,0x61,0xb1,0x92,0xee,0x67,0x9a,0x5e,0x90,0xdc,0xe7,0x99,0x36,0xd0,0x58,0x15,0xe5,0x15,0xa2,0x1d,0x61,0x18,0x39,0x5f,0x6c,0xc7,0xbe,0xd0,0x23,0x1e,0x41,0xc8,0xaa,0x8e,0xbf,0xb8,0xdb,0x90
+.byte 0x8c,0x60,0x07,0x1e,0xe9,0x6c,0xe4,0xde,0xec,0x73,0x34,0x94,0x54,0xa4,0x6b,0x49,0xcf,0x87,0xb5,0x88,0x98,0xe6,0x2c,0xce,0xb7,0x76,0xa5,0x29,0xf1,0x29,0x50,0xc5,0x9e,0x13,0xe4,0x61,0x6a,0x54,0xb2,0x26,0xfa,0xfa,0x4a,0x41,0x3b,0x0a,0xf5,0x9a,0x60,0xbb,0xfc,0x1e,0x5d,0x21,0x7e,0x91,0x51,0xd6,0x5e,0x92,0xf9,0x21,0x80,0xa8
+.byte 0x35,0xc0,0xbb,0x7a,0xeb,0x75,0xb4,0xa3,0xd3,0x8d,0xaf,0x07,0x53,0x65,0x36,0x11,0xf9,0xb6,0x69,0x29,0x1e,0x5d,0x8f,0x57,0x5d,0xed,0x42,0xf9,0xd5,0xf6,0xc3,0x1e,0x29,0xc4,0x49,0x04,0xe4,0xfb,0xbf,0x9b,0x4a,0x7b,0xdd,0x57,0x51,0xfe,0xc4,0xd1,0xd9,0xe9,0x8f,0x94,0x78,0xbc,0x5c,0xeb,0xb6,0xbc,0x51,0xb0,0x82,0x87,0x47,0xb4
+.byte 0xf7,0xf9,0x02,0xd7,0xac,0x23,0xc0,0xe5,0x9a,0xc3,0x2f,0xd2,0xb8,0xb2,0x62,0xb9,0xdb,0x49,0x85,0x77,0x92,0xa6,0xe5,0x24,0x43,0x4d,0x0d,0x67,0x94,0x01,0x29,0xd6,0x2e,0xee,0xd9,0x2e,0x97,0x0e,0x20,0x7f,0x84,0x19,0x3c,0x3a,0x6f,0xa5,0xb0,0x8b,0x8f,0x8d,0x96,0xbb,0x76,0x61,0x97,0xc2,0x65,0x83,0xd8,0xda,0xab,0x42,0xfa,0xe5
+.byte 0x1e,0x42,0x93,0xa7,0x66,0x03,0x06,0x3b,0xbe,0xb8,0xae,0x71,0xee,0xdb,0x5d,0xdf,0x40,0x64,0x17,0x17,0x2e,0x03,0xca,0x37,0x2a,0x71,0x92,0x0a,0x01,0xa3,0x0f,0x0b,0x09,0xf2,0x0e,0x4b,0x4d,0x18,0xf3,0xc4,0xf2,0x51,0x7b,0x53,0x30,0xab,0x24,0xa2,0x47,0x38,0xc9,0x2c,0xdf,0x0d,0x32,0x3e,0x3f,0x57,0x2d,0xfc,0x44,0x19,0x64,0x8b
+.byte 0xe9,0x9a,0xc2,0xf2,0xf6,0x2d,0x30,0x0c,0x0f,0xc3,0xc3,0xfe,0xc2,0xd1,0xbc,0xe0,0xbf,0xaf,0xeb,0x40,0x64,0x28,0xe2,0xd9,0x3c,0x7e,0x24,0x94,0x8f,0xe8,0x54,0x8b,0x26,0x6b,0xe1,0x4e,0x44,0x5a,0x7d,0x7b,0x12,0x36,0x2c,0x12,0xad,0x26,0xbc,0xa7,0xa3,0x2b,0x25,0xb9,0xde,0xe6,0x64,0x2d,0xab,0x7f,0x15,0x22,0x51,0x26,0x1c,0x15
+.byte 0x5d,0x13,0x18,0x93,0xc1,0x19,0x65,0xca,0xf3,0x8b,0xe0,0xcf,0x8c,0x43,0xe9,0xfd,0xa1,0xbd,0xe9,0xde,0x78,0x26,0xcb,0x7c,0xdc,0x68,0x06,0x98,0xf6,0x90,0x44,0x40,0xf0,0x5e,0xe1,0x16,0xf5,0x5d,0x4d,0x9b,0x85,0xe6,0x26,0xbd,0xab,0xcc,0x46,0x62,0x18,0x51,0xd5,0x3c,0x9f,0x6e,0xfa,0xe7,0x94,0xfc,0xc2,0x1a,0x9d,0x63,0x2c,0xdc
+.byte 0xc3,0x89,0x67,0x94,0x37,0x58,0x0d,0x13,0xb8,0xdf,0x41,0x3d,0x70,0x78,0x1e,0x61,0x75,0x77,0xcc,0xbf,0x5f,0xa8,0xd3,0x89,0xcc,0xd3,0x40,0x4e,0x65,0xbd,0xce,0x3c,0xf0,0x5a,0x8f,0xe2,0xe1,0x24,0xaa,0xed,0x0f,0xd1,0x03,0x0d,0xf5,0x36,0x98,0xcd,0xa5,0x77,0x40,0x24,0x0a,0x82,0x68,0x79,0x82,0x38,0x68,0x6f,0x2b,0x0b,0xce,0x0f
+.byte 0xcd,0x0f,0xba,0xdb,0xb5,0x22,0x38,0xd2,0xb0,0x9f,0x0f,0x08,0x0d,0xd8,0x5e,0xa7,0xd0,0xa9,0x39,0x66,0x4c,0x46,0xce,0x2a,0xc3,0x67,0x8c,0x91,0xdc,0xf1,0xc0,0x3a,0x58,0x50,0x1f,0xb0,0xa4,0x4d,0xbf,0x99,0x57,0xcf,0xae,0xb2,0xaf,0x6a,0x42,0xd2,0x7f,0x85,0x8c,0x40,0xc6,0x9a,0x93,0x57,0x54,0xf5,0xb4,0x83,0x59,0xb5,0x19,0x52
+.byte 0x7c,0x8b,0x76,0xee,0x35,0x90,0xbf,0xbe,0x65,0x58,0x3b,0x25,0x52,0x18,0xd8,0x7f,0x1f,0xe6,0x70,0xce,0x56,0x1a,0x45,0xa0,0x81,0xee,0x95,0x6f,0x55,0x43,0xaa,0x6e,0x87,0xa9,0xab,0x7d,0xe9,0xa1,0xa3,0x63,0xe7,0x1b,0x6b,0xa6,0x2c,0xe5,0x4a,0xb2,0x1e,0x73,0x5e,0xb5,0xae,0x83,0xe6,0x54,0x0b,0xc5,0x6b,0xb6,0xc4,0x73,0x62,0x1a
+.byte 0xbf,0x1a,0x65,0xa2,0x5e,0x3a,0x45,0xd9,0xba,0x5b,0xef,0xf7,0x13,0x0c,0x7c,0x68,0xa1,0x98,0x71,0xb7,0x39,0x7c,0xbc,0x69,0xdb,0xd4,0xac,0x3f,0x82,0x63,0x9b,0x71,0x25,0x3a,0x06,0x73,0x60,0x71,0xc3,0x30,0xd3,0x96,0x02,0x4b,0x46,0xbd,0xd4,0x6e,0xc6,0x29,0xcc,0xd0,0xe1,0x0b,0x66,0x62,0xea,0x29,0xc7,0xcf,0x35,0x9e,0x2f,0x1f
+.byte 0xa0,0xfc,0x8c,0x4a,0x83,0x8e,0x3b,0xf5,0x7a,0x6f,0x52,0xaf,0x99,0x9c,0x86,0xab,0xe5,0x1b,0x82,0xb3,0x18,0x35,0x77,0x9b,0xa3,0x94,0xc8,0x39,0x30,0x3f,0xad,0xa9,0x0f,0x93,0xb8,0xc8,0xed,0x04,0xf2,0x0b,0x9a,0xb1,0xd1,0xc9,0x9e,0x40,0x4f,0x71,0x21,0x63,0x2a,0x05,0x26,0x53,0xa3,0x3f,0x43,0xe4,0xf8,0x7c,0x2f,0xa3,0x5a,0x6e
+.byte 0xc1,0x40,0xa8,0x4d,0xbc,0x03,0xae,0xe9,0x36,0xb6,0x37,0xdc,0x5f,0xef,0xb0,0x35,0x33,0xdf,0x33,0x71,0xaf,0x80,0xf2,0x69,0xd9,0xb5,0xfc,0xff,0xd2,0x5b,0x6a,0xeb,0xdc,0xe0,0x26,0x43,0x38,0x7b,0x24,0xb2,0x79,0x53,0x52,0x57,0xc4,0x1f,0x6d,0xc9,0x50,0xf2,0x63,0x9d,0xc1,0x22,0x5f,0x11,0x82,0x38,0xdb,0xd3,0xb4,0x1d,0x10,0x72
+.byte 0x9e,0x4d,0x03,0x30,0xba,0x5e,0xe9,0x8c,0x21,0x12,0xe6,0x3a,0xd6,0x4c,0x18,0xa4,0x27,0xc9,0xf5,0x50,0xbd,0xbe,0xf0,0x86,0xd8,0x00,0x56,0xf0,0x10,0x81,0xec,0xeb,0xfc,0x5b,0x29,0x88,0xff,0x73,0x60,0x6b,0xf5,0x8c,0x0b,0x30,0x04,0x53,0x85,0x61,0x0c,0xfc,0xff,0x8f,0x21,0xd2,0xa1,0xcb,0xf7,0x90,0x53,0x3b,0xf4,0xf0,0x2c,0x7d
+.byte 0xb6,0x84,0xe7,0x4c,0x88,0xea,0x4f,0xdf,0xff,0x0f,0x5d,0x0f,0xd3,0x2d,0x4f,0x7e,0xdc,0xd1,0x22,0x71,0x0d,0xae,0xa8,0xcf,0x05,0x7b,0xfc,0xfe,0x87,0x40,0xa5,0xe8,0xfd,0x3f,0xdb,0x2f,0x00,0x21,0xb9,0x70,0x02,0x2c,0x96,0x24,0xaf,0x35,0xe2,0x87,0xcb,0x50,0xcf,0x7e,0xfa,0xaf,0x39,0x82,0x0c,0xd5,0xa6,0x3f,0x9c,0x77,0x60,0x16
+.byte 0xbf,0x42,0xcc,0x97,0xd1,0x19,0x0d,0x8a,0x50,0x98,0x7d,0x19,0x7b,0x40,0x1c,0x22,0xde,0x50,0x90,0x32,0x9a,0x3d,0x07,0x35,0xc0,0x48,0x4c,0x0a,0xcd,0x91,0xab,0xf7,0xf3,0x06,0x77,0x80,0x96,0x7b,0x59,0x33,0xe6,0xbf,0x93,0xb8,0x59,0xd0,0x3a,0x1f,0xcc,0xe7,0x1d,0xd4,0xb5,0x58,0xee,0xe7,0x95,0xfa,0x75,0xdb,0x37,0x74,0xb0,0x7d
+.byte 0x4d,0xee,0xef,0x20,0x13,0xe5,0x82,0x07,0x8e,0xdd,0x57,0x75,0x33,0x56,0xc4,0x80,0xb0,0x06,0x9f,0x6b,0x72,0x31,0xcf,0xac,0x5f,0x96,0x13,0xeb,0xf4,0x34,0xb6,0x6b,0x55,0xef,0x55,0x26,0x4e,0xdb,0x6c,0x2f,0x64,0x29,0x91,0x3c,0x6d,0x29,0xd2,0x94,0xbd,0x2c,0x99,0xb9,0x97,0x76,0xee,0x7d,0xfd,0xb2,0x8d,0x14,0x4f,0x09,0x81,0xb3
+.byte 0x68,0x3e,0x79,0x28,0x56,0x50,0x3f,0x86,0x4c,0x95,0x6c,0xad,0xf6,0xc5,0x43,0x25,0xea,0xbc,0xe2,0xba,0x77,0x18,0xc6,0x82,0x65,0x73,0x38,0x90,0x9d,0xc9,0x57,0xcd,0xa2,0x7c,0xd3,0x26,0x59,0x44,0xd9,0x79,0xae,0xdd,0x6f,0xe9,0xdc,0x16,0x73,0xba,0x05,0x8a,0x40,0x9f,0xe7,0xcf,0x29,0xa4,0xdf,0x49,0x7f,0x1d,0x73,0xc7,0x8b,0x8d
+.byte 0xad,0xb5,0x3d,0x1b,0x64,0xb1,0x8f,0x78,0x06,0xbe,0xaa,0x2c,0x08,0x73,0xc7,0x2c,0xdc,0xd8,0x3f,0x9f,0x1b,0xd2,0xe1,0x4f,0x9d,0x87,0xb8,0xa9,0xdc,0xef,0xbc,0x31,0x9f,0xf7,0x84,0x09,0xe7,0xbc,0xec,0x2a,0xcb,0x3b,0x3a,0x30,0xe2,0x5b,0xbc,0xcd,0xa8,0xdb,0x46,0x80,0xec,0xaa,0x06,0x8e,0xd8,0x6c,0x35,0x65,0x52,0xb8,0xc3,0xf9
+.byte 0x97,0x68,0x06,0x2d,0x3e,0x91,0x71,0x44,0x6e,0x01,0x51,0x10,0x5b,0x74,0xb9,0x3f,0xd7,0xf9,0x5c,0x98,0xe6,0xf8,0x98,0x32,0x26,0x9b,0x5e,0x9c,0x88,0xfb,0xaa,0x70,0xd2,0x2e,0xc2,0xf6,0x02,0x92,0x33,0x55,0x92,0xba,0xfb,0x0e,0x0b,0x08,0xdf,0x5d,0xdd,0x47,0x28,0xae,0x32,0xb3,0x27,0x8d,0xd4,0x18,0x43,0x64,0xc4,0x7f,0x60,0x62
+.byte 0xd9,0x63,0xd1,0x28,0xc9,0x75,0x3b,0x44,0xb4,0x8e,0x2a,0x93,0xf9,0x4c,0x4f,0x7e,0x6b,0x98,0xc9,0x1a,0x82,0x51,0x9a,0xb2,0x80,0x70,0x2e,0xff,0x19,0x66,0x1b,0xb6,0xbc,0x15,0x8e,0xe6,0x0f,0x8e,0x04,0x10,0x94,0x44,0x6c,0x32,0x4b,0x61,0xbc,0x4a,0x16,0x7b,0x25,0x2a,0x27,0x96,0xa9,0xa9,0x61,0x10,0xc1,0x46,0xdd,0xf5,0xe3,0xe8
+.byte 0x1f,0x5b,0xa0,0x77,0xe1,0x42,0x9a,0xd4,0x04,0x33,0x68,0x72,0x1c,0x44,0x29,0xce,0x98,0xe0,0xc7,0x3a,0x9e,0x3c,0xb9,0xb4,0x29,0xef,0x57,0xee,0x8c,0x8f,0x7c,0xe6,0xe1,0x43,0x6e,0x45,0x0e,0xdd,0x4e,0x11,0x4b,0x28,0x69,0xde,0xb8,0xfa,0x32,0xbe,0xc6,0x4f,0x11,0x99,0xe5,0xe3,0xe2,0x1f,0x03,0xbe,0x4a,0xad,0x60,0x68,0xc8,0x13
+.byte 0x80,0x4e,0xb6,0xc0,0xc5,0xc7,0x97,0x5c,0x0b,0x0e,0x64,0x43,0x78,0x70,0x95,0x91,0x8e,0x36,0x6b,0xad,0x57,0xc7,0x1e,0x9c,0x54,0xc9,0x89,0xf0,0x13,0xde,0x0a,0xbe,0xc0,0xa9,0x35,0x77,0x0a,0x01,0x7f,0x98,0x51,0x82,0x92,0x14,0xe0,0x9a,0x08,0xa3,0x0c,0x6c,0x67,0xf2,0x05,0xaa,0xa9,0x4e,0xce,0x3b,0xb1,0xb6,0x8c,0x82,0x5d,0x11
+.byte 0xf2,0xe5,0xd7,0xda,0x3a,0x65,0xa0,0xe3,0xa4,0x09,0x01,0x1c,0xb2,0x08,0x90,0x94,0xb5,0x51,0x56,0x24,0x22,0xfd,0x12,0xad,0x7a,0x75,0xcf,0x0f,0x0f,0x23,0xc3,0xa6,0x1f,0xf8,0x39,0xbc,0x2f,0x18,0x53,0x14,0xef,0xdf,0x90,0x6a,0x50,0x2b,0x8c,0x8b,0xa8,0xd4,0x8c,0x59,0x8f,0xd8,0x81,0x86,0x57,0xc1,0xd1,0xfb,0xe7,0xa6,0x20,0x6e
+.byte 0x7c,0xbf,0xce,0xe3,0xce,0x28,0x35,0x7c,0x8e,0x1a,0x66,0xea,0x7d,0x81,0x09,0xdb,0xa8,0x64,0xba,0x3c,0x07,0x3f,0x23,0xd3,0x05,0x97,0x4c,0x92,0xc2,0xa4,0xe8,0x6c,0xfb,0xa0,0x9d,0x8b,0x4d,0xcb,0x3a,0x96,0xe7,0x04,0x0f,0x48,0x87,0x2c,0xdd,0x51,0xf3,0x46,0x7e,0x61,0x89,0xbe,0xb8,0xb0,0x9e,0x9c,0xc4,0x37,0x55,0xe6,0x4f,0x78
+.byte 0x7e,0xb0,0x59,0x42,0xca,0xba,0x4a,0xb2,0x50,0xbd,0x16,0x68,0x99,0x42,0xb4,0x8b,0x60,0x3d,0x54,0x41,0x17,0x11,0x39,0x42,0x5d,0x41,0xec,0xc2,0x53,0x82,0x7c,0x32,0xc9,0xd1,0x34,0x49,0xd8,0x4f,0x29,0x21,0xeb,0x97,0x98,0x4c,0xeb,0x21,0xce,0x50,0xd6,0x53,0xd9,0xf1,0x6e,0x26,0xfa,0xe4,0x71,0x34,0xd8,0x38,0xac,0x39,0x4f,0x02
+.byte 0x36,0x93,0xf2,0x08,0x88,0xdc,0x24,0xdd,0x1f,0xf5,0xe9,0x7f,0x83,0xa0,0xa4,0x6b,0xc5,0xef,0x8e,0x82,0xf9,0x92,0xbc,0x82,0x3f,0xce,0x86,0xa6,0x34,0xf8,0x16,0xa7,0xdb,0x97,0xca,0x54,0x43,0xd8,0xfc,0x31,0xde,0x73,0xd0,0x79,0x1a,0xac,0x61,0x15,0xbd,0x38,0x64,0x3b,0xc6,0xb5,0x95,0xeb,0x2e,0x68,0xe4,0x1d,0x6b,0x18,0xab,0x88
+.byte 0xb0,0x96,0x51,0x8c,0xbe,0x41,0x63,0xd6,0x9a,0x21,0x60,0xe8,0x26,0x37,0xb3,0x10,0x76,0x46,0x31,0x90,0xb0,0x9f,0x17,0xab,0x0f,0x93,0xcc,0x12,0x78,0xee,0x17,0x1c,0xd8,0xc7,0x76,0x0a,0x5a,0xb4,0x8b,0xb1,0x67,0x11,0xde,0x48,0x14,0x8a,0x2a,0xc7,0x71,0x46,0x94,0x15,0x29,0x44,0x9e,0x35,0x03,0x10,0xf7,0x51,0x8a,0xaa,0x9c,0x4a
+.byte 0x9a,0x44,0xd5,0xc7,0x37,0x9d,0xb4,0xad,0x41,0xd0,0xda,0xd2,0x1a,0xf9,0x93,0xee,0x28,0x32,0x65,0x0b,0x9c,0x12,0xe3,0xad,0x9f,0x82,0xeb,0x3f,0x03,0xe7,0x6a,0x58,0x83,0x3f,0xbe,0x9f,0x27,0xd3,0xd6,0xe2,0x45,0xbf,0x90,0xe2,0x12,0x61,0x0b,0x57,0xd7,0x06,0x72,0x39,0x2c,0x3e,0x65,0xb2,0xf4,0xf7,0x54,0xef,0x32,0x99,0x44,0x0d
+.byte 0xf0,0x5c,0xde,0x4c,0x2e,0x22,0xcd,0x3c,0x25,0x02,0xa5,0x0d,0x79,0x16,0xb0,0x51,0x3f,0x3c,0x84,0x56,0xfa,0x00,0xae,0x7a,0x36,0x45,0x3a,0xcc,0x1d,0x66,0xff,0xf4,0x49,0xce,0xb5,0x5c,0x51,0xf4,0x3e,0x07,0xf2,0x83,0x84,0x4d,0x4e,0xb7,0xce,0x03,0x7b,0x23,0x63,0xdf,0x64,0xa2,0x55,0x92,0xf9,0x2e,0xa5,0x21,0x89,0x29,0x42,0x48
+.byte 0x36,0xc5,0xab,0xd6,0x82,0xe3,0xff,0x45,0xfc,0x61,0xa6,0x4f,0xb9,0x51,0xba,0xd5,0x03,0xa9,0x0b,0xe7,0x73,0x83,0x97,0x1d,0xb2,0xc6,0x75,0xa0,0x52,0x99,0xfc,0x1b,0x27,0x7a,0x10,0xc1,0xed,0x70,0x21,0x4b,0x93,0xa4,0x20,0xed,0x16,0x76,0x97,0x82,0xab,0x21,0xfe,0xa4,0x3f,0xd9,0xbd,0x9c,0x2f,0x19,0x42,0xbc,0xb3,0x4f,0x44,0xf3
+.byte 0x9e,0xd0,0xe7,0xc9,0x7e,0x31,0xaa,0xbc,0x4b,0xba,0x73,0xe1,0xc3,0xbf,0x5d,0xa2,0xd8,0xb7,0xb6,0xfc,0x0a,0x32,0xb9,0xff,0x80,0xb6,0x2a,0x8b,0xea,0x81,0xa0,0xeb,0x1e,0x9e,0x69,0xdd,0xbe,0xc1,0x8a,0x5d,0xfb,0x66,0x21,0x98,0x5c,0x6f,0xd8,0xb4,0xcf,0x8a,0x1a,0x4b,0xde,0xa2,0x20,0xe8,0x5a,0x5a,0xee,0x14,0x09,0xcb,0x63,0x1c
+.byte 0x14,0x7d,0x9b,0x47,0xf8,0xfa,0xda,0xb7,0x0e,0xc6,0xbd,0xb2,0x13,0xb8,0x10,0xe2,0x71,0x04,0x36,0x78,0x6d,0x3a,0x8b,0x45,0xd3,0x05,0xec,0x8a,0x2d,0xfa,0x85,0x7c,0xdd,0x75,0xb3,0x2d,0xd1,0xae,0xfc,0xdd,0x02,0x2e,0xcc,0x43,0xc5,0xed,0xe4,0x3f,0xee,0x2c,0xd7,0x37,0x81,0x3a,0x44,0xe6,0xed,0x8c,0x9d,0x9d,0xfa,0xb5,0xdc,0xde
+.byte 0xb2,0x7c,0x51,0x58,0xa4,0x21,0xac,0xe2,0x79,0x96,0x90,0xe2,0x0b,0xbf,0x51,0x66,0x77,0x02,0xff,0x67,0x0a,0x70,0x1f,0x04,0x6c,0xb0,0x5b,0x2d,0x26,0x23,0x5a,0x85,0x73,0x66,0x6e,0x7c,0xb3,0xeb,0x36,0x73,0x0f,0xcd,0xb2,0x07,0xee,0x78,0xd1,0xbd,0x5e,0xfa,0x31,0xf6,0x82,0x67,0x94,0xaa,0xff,0xef,0xd2,0x23,0xfc,0x82,0xaa,0xe2
+.byte 0xef,0xc3,0x74,0x79,0x6c,0xe9,0x3f,0x8d,0xe1,0x1b,0xc8,0xb4,0xff,0x15,0xf4,0x60,0xe8,0x84,0x3f,0xaa,0xc6,0x53,0x51,0x1a,0x9b,0x04,0x9b,0xab,0xc5,0xee,0x9a,0x98,0x80,0x89,0x8d,0x5b,0xef,0x0a,0x69,0x71,0xd2,0xf3,0x49,0xc1,0xc1,0x87,0xb3,0x18,0x4b,0x82,0x02,0x87,0xb0,0xf1,0x76,0x4b,0x3e,0xad,0x95,0x51,0xb1,0x64,0xb1,0x03
+.byte 0x5b,0xd2,0x10,0x7b,0x4e,0xd4,0x08,0xf8,0xfd,0xea,0xf0,0xc7,0x16,0x43,0x86,0xa6,0xdb,0xcd,0x75,0xce,0xa9,0xfd,0xa8,0x7c,0x51,0xf7,0xa5,0x29,0x6f,0x0d,0xee,0x66,0x8f,0xc6,0xcd,0x9e,0x3f,0x00,0x24,0x21,0xca,0x69,0x79,0x27,0x03,0x62,0xdf,0xad,0xb9,0x8c,0xd8,0x08,0x88,0x0d,0x0c,0xa1,0x29,0xf9,0xba,0x92,0xb5,0xdd,0xb8,0x1a
+.byte 0xbb,0xab,0x44,0xb2,0xda,0x1b,0x8b,0xc1,0x3c,0x61,0x9f,0x7a,0x8b,0x89,0x99,0x09,0xc3,0xb4,0xe4,0x24,0xf5,0x3b,0x36,0xa6,0x61,0x0a,0xec,0x2a,0x1c,0x92,0x7c,0xb1,0x7c,0xd8,0x0b,0x98,0x48,0x8d,0x52,0xa2,0x57,0xc1,0x28,0x89,0xbb,0x60,0x5c,0x58,0x62,0x41,0x1c,0xd6,0xfb,0x69,0x09,0x93,0x90,0x31,0xc4,0x72,0x71,0xf0,0x4f,0xcf
+.byte 0x10,0xbb,0xb7,0x6c,0x3b,0x53,0xa3,0x0b,0xff,0x44,0x4c,0x37,0xd5,0x26,0x83,0x7e,0x5c,0xb9,0xa5,0xe8,0x8b,0xc4,0x15,0xf6,0xc7,0xd1,0x39,0x67,0x01,0xb7,0xca,0xa7,0x71,0xa8,0x04,0x95,0x0f,0xfc,0x0a,0x9e,0x52,0xb2,0xfb,0x48,0x47,0xb6,0xa5,0x14,0xc2,0x4f,0xa8,0xd5,0x0f,0x10,0x76,0x39,0x23,0x74,0x2e,0xe5,0x17,0xcb,0xad,0x8a
+.byte 0x4a,0x25,0xc8,0x9b,0x25,0x94,0x34,0xbc,0x4b,0x2f,0xdc,0x0a,0xcd,0xc1,0x02,0x72,0x7d,0xa0,0x10,0xa7,0x32,0x68,0xe8,0xd5,0x23,0xe8,0xc9,0xbc,0x05,0x05,0x1e,0xac,0x55,0x45,0xfb,0x42,0x2f,0x0f,0x51,0x8d,0x31,0xb1,0xbc,0x10,0xa1,0x03,0xc3,0x6f,0x35,0x08,0xa5,0x2f,0x91,0x4e,0x43,0x6b,0x62,0x3b,0x00,0x4c,0xd0,0xb8,0x33,0xbc
+.byte 0xca,0x57,0xb8,0x1b,0xb4,0x52,0x1a,0xa7,0x03,0x78,0xa0,0x4f,0xda,0x86,0xb9,0xd8,0xc6,0x69,0xe6,0x61,0x2e,0x62,0x96,0x60,0x0d,0x76,0xdc,0x5d,0x0e,0xa8,0xf3,0x86,0xde,0xcf,0x39,0x34,0xc7,0x69,0xed,0xcb,0x9a,0xf5,0xc3,0xce,0x6d,0xa5,0x7f,0xae,0x73,0xb9,0xa6,0xbf,0x88,0x93,0x2b,0x0e,0x8b,0x4b,0xa5,0xeb,0x62,0xc6,0x1a,0xc7
+.byte 0x63,0x63,0x58,0x62,0x37,0xc6,0xbc,0x00,0x72,0xac,0x3d,0x7c,0x22,0xa5,0x59,0xf1,0x6e,0x60,0x45,0x3e,0x99,0x76,0x40,0x82,0xa7,0x52,0xf3,0x48,0x8e,0x4a,0xa3,0xe1,0x3b,0xea,0x77,0xa7,0x7d,0x13,0xe7,0xc4,0xc6,0xa6,0x6e,0xda,0xe8,0x50,0xc8,0x39,0x30,0xab,0x8a,0xe1,0x08,0xa9,0xe3,0xbd,0x8d,0xbd,0x83,0x3c,0xbc,0x6c,0x92,0xed
+.byte 0xf1,0xa9,0xd3,0x50,0xf2,0x29,0x8b,0x39,0x46,0xaf,0x08,0x7e,0x00,0x64,0x2f,0xa8,0x18,0xab,0x7e,0x07,0xd3,0x63,0x2a,0xd3,0xd3,0xbb,0xf9,0xdd,0x2b,0xec,0x70,0x35,0x1a,0x94,0x6b,0x87,0xe4,0x1a,0x0a,0x44,0x46,0x08,0xa6,0xce,0x1b,0xf7,0xd7,0x20,0x87,0x1a,0x96,0x6c,0xbe,0xdf,0x73,0x3b,0xc9,0xaf,0x89,0x1c,0x2f,0x47,0xe9,0xd8
+.byte 0x03,0xa6,0x03,0x6c,0x73,0xa9,0x65,0x20,0x36,0xea,0x6f,0xe7,0x96,0x7c,0x01,0x87,0xb0,0x21,0xba,0xb4,0xed,0x1f,0x81,0x65,0x97,0x36,0xda,0x68,0x80,0x64,0x99,0xe6,0xda,0x95,0x04,0xdf,0x5d,0xfd,0x86,0xd1,0xfd,0xfa,0x1c,0xd7,0x89,0xbf,0xe6,0x99,0x6c,0xf5,0x01,0x56,0x20,0x88,0x79,0xa7,0x8d,0x88,0x82,0xe5,0x32,0x38,0xe0,0xf0
+.byte 0x98,0x63,0xa9,0xab,0xeb,0x09,0x8d,0xaf,0x3f,0xa8,0x57,0x98,0xde,0xc8,0x9c,0x8d,0x1d,0x18,0xc5,0xa8,0x82,0x51,0x9b,0x6f,0xc6,0xb8,0x09,0xd3,0xea,0xd4,0xe3,0xac,0xd1,0x0e,0x88,0xda,0xdf,0x38,0x53,0x14,0x87,0x28,0x6f,0x13,0x35,0xdb,0xfe,0xa1,0xe7,0x43,0xb5,0x02,0x46,0x08,0x1a,0x31,0x0d,0x9e,0x3d,0x3b,0xbf,0xbb,0x82,0x9c
+.byte 0x09,0xf3,0xd9,0x22,0x0a,0x82,0x07,0xd3,0xe8,0x19,0x6e,0x21,0xd2,0xa2,0xa8,0x14,0xbc,0x42,0xb6,0xeb,0x8c,0x40,0x9b,0xb2,0xa9,0x17,0xad,0x2c,0x19,0xaa,0x4b,0x22,0xf9,0x4e,0xde,0x8f,0xbe,0x78,0x9b,0xab,0xb9,0xfa,0xb1,0x3e,0x68,0x86,0x1a,0x4a,0x61,0xba,0x63,0x51,0x25,0x11,0x59,0xd0,0xb7,0x0c,0xb7,0xcc,0x45,0x05,0x6d,0x5a
+.byte 0xe2,0xd7,0x10,0x80,0x19,0xd3,0xa9,0xab,0xb6,0x9f,0x53,0x7a,0xaa,0x19,0x74,0x01,0xc9,0xd6,0x45,0x42,0x2c,0xe5,0xc0,0xcf,0x62,0xe6,0x95,0x6f,0x4c,0x90,0x50,0x97,0x61,0x83,0x73,0xd0,0xc2,0xd5,0xf0,0x05,0xca,0xe9,0x6f,0x67,0xa9,0x51,0xb8,0xb4,0x9d,0x30,0x8e,0xe3,0x29,0xf9,0x3b,0x3d,0x17,0x25,0xad,0xbb,0xb0,0x34,0x68,0x29
+.byte 0x06,0xad,0x0e,0xdf,0x41,0xa6,0xf1,0xa6,0x25,0xc4,0xf0,0x0d,0x57,0x84,0x34,0x2c,0x3b,0xb1,0x41,0xd6,0x83,0x00,0x3a,0x91,0x98,0x8e,0xd0,0x59,0x0b,0x2d,0xc9,0x65,0x03,0x91,0xcb,0x03,0x97,0x57,0xde,0x11,0x8b,0x4b,0x1b,0x85,0x0b,0xb6,0x68,0x25,0x3c,0x1a,0x04,0x7d,0xd5,0x2b,0x16,0x69,0x1f,0x64,0x8b,0x47,0x60,0x17,0xaa,0x68
+.byte 0x45,0xf2,0x0b,0xf8,0xa2,0x27,0xf8,0x47,0x86,0x41,0x94,0x3f,0x92,0xc3,0x02,0xab,0x80,0x2b,0x0e,0x3c,0xd0,0x13,0x59,0x08,0xfc,0x13,0x33,0x52,0xbb,0x2d,0x6b,0x22,0xa2,0x8b,0x9f,0x7c,0x8e,0x40,0x35,0xa4,0xc7,0x45,0xb7,0xf8,0x10,0x22,0x95,0xc5,0x48,0xc1,0x50,0x4d,0x4a,0x36,0xe1,0xec,0x1e,0x07,0xf7,0x68,0x63,0xcb,0x13,0x03
+.byte 0x70,0x63,0xb1,0x9b,0xf3,0x60,0x01,0x6e,0x63,0x5c,0x4d,0x2c,0x5c,0x5c,0x58,0x8b,0xbb,0x6e,0xd1,0x69,0xdd,0x19,0xfe,0xfb,0xd6,0xdc,0x68,0x97,0x9c,0x46,0x0d,0xdd,0x4d,0xbd,0x52,0xe4,0xd9,0xc2,0x03,0x4e,0x4c,0xe2,0x66,0x6b,0x4d,0xbe,0x6b,0xf3,0xd6,0xbe,0x2d,0xba,0xdd,0x1b,0x4f,0x60,0x02,0x74,0xa1,0xf0,0xd0,0xfa,0x23,0x33
+.byte 0x29,0x7e,0x00,0x09,0x47,0x15,0xa8,0xd8,0xdb,0xb8,0xe1,0x20,0xd5,0xe2,0x91,0xd0,0xe8,0xfa,0xa1,0x0d,0x80,0xbd,0x7d,0x62,0x9d,0xf2,0xbc,0x03,0xa1,0x44,0x9f,0x8d,0x3d,0xe3,0xb4,0xec,0x32,0xd9,0x66,0xb0,0xc7,0x75,0x11,0xaa,0xab,0xb7,0x84,0x1d,0x5b,0x4f,0x25,0x5c,0x53,0xed,0xbb,0x6d,0x06,0x1f,0x12,0x5f,0xc0,0xeb,0x55,0x3e
+.byte 0xd0,0x5b,0x4d,0x07,0xf7,0x84,0x12,0xbc,0xc8,0xd4,0xf4,0x69,0xdb,0x71,0x8a,0x00,0x58,0xf5,0x84,0xff,0xc3,0xbc,0x13,0x6e,0x5f,0xac,0xd6,0x72,0x1b,0x2d,0xbb,0x27,0xfd,0x8d,0xcc,0x59,0x79,0xb9,0x63,0xe8,0x0a,0xf3,0x7f,0xa4,0x9f,0x4c,0x35,0x9a,0xdc,0xff,0x11,0x42,0xf3,0x1c,0x86,0xd0,0x22,0x7e,0x81,0x79,0x04,0x93,0x5c,0xf2
+.byte 0xab,0xdf,0xb7,0x1d,0x84,0xbd,0xde,0xfb,0xd2,0x75,0x43,0xb8,0x19,0x63,0x97,0xfe,0x0e,0x91,0x9d,0x38,0x50,0xc5,0x7a,0xd6,0x51,0xd4,0xfc,0x8d,0xec,0xd5,0xe2,0x07,0xce,0x21,0x03,0x02,0xa1,0x61,0x8d,0xf1,0xf5,0x1f,0xb3,0xaf,0x9f,0x13,0xd8,0x81,0xd2,0xf7,0xe9,0xe2,0x62,0x49,0xca,0x1c,0x15,0x07,0x39,0xe6,0x01,0xec,0x6c,0x7d
+.byte 0x3b,0xf1,0x52,0xda,0xf2,0x97,0x55,0xef,0x6f,0x88,0x82,0x0e,0xe6,0xf4,0x3e,0x33,0xf6,0x61,0x6d,0xef,0xbf,0xa8,0x9a,0x91,0x2f,0xb3,0xd2,0x3d,0xaa,0x7a,0x4e,0x80,0xe1,0x04,0xbe,0xc7,0xf8,0xc3,0xc9,0xd8,0xa2,0x01,0x5d,0x30,0xae,0x6d,0x39,0x52,0x60,0x9d,0x07,0xd5,0xa2,0x86,0xf0,0x88,0x00,0xec,0x18,0x11,0x2d,0x69,0x86,0xa9
+.byte 0x5a,0x73,0xda,0x4e,0x4c,0xdb,0xb8,0x02,0xad,0x53,0xec,0x20,0x0f,0x35,0xe0,0x4f,0x6e,0xd5,0x04,0xcc,0xa0,0xf5,0x8c,0x7d,0x31,0x04,0xa4,0xcf,0xf0,0x27,0xd2,0xb6,0x7d,0x8c,0x26,0x5f,0x19,0xba,0x79,0x80,0xec,0x6d,0xfe,0xaf,0xc1,0x3a,0xc2,0x3d,0x14,0x3c,0xa0,0xc5,0x77,0xf4,0x96,0x56,0x51,0x8b,0x7c,0x7e,0xe5,0x23,0x5d,0x46
+.byte 0x1b,0x2e,0x28,0xc0,0x80,0x6b,0x6a,0x85,0x6c,0xcf,0xaa,0x28,0xf3,0x83,0x2d,0x42,0x6f,0xf3,0x5e,0x5d,0xa2,0x7b,0xba,0x5c,0x12,0xb0,0xda,0xa0,0xeb,0xdf,0xad,0x1d,0x4c,0x54,0xcf,0xad,0x02,0x68,0xcd,0xfe,0x5c,0x5b,0x65,0x6d,0xa5,0xcc,0xd3,0xed,0x32,0x74,0x6c,0x58,0x83,0x3a,0xc1,0x71,0xbf,0xb5,0xa2,0xbd,0x10,0xe5,0x46,0xc5
+.byte 0x00,0x82,0xb1,0xeb,0x6f,0x73,0xf9,0x12,0x23,0xe4,0xda,0xff,0xa3,0xc4,0x9c,0xf1,0xcc,0x0e,0x1a,0x7a,0x10,0x62,0x8f,0xa5,0xb2,0x35,0x51,0x67,0xb5,0x95,0xbe,0x4c,0x81,0x53,0xfc,0xdd,0x27,0x26,0x97,0x42,0x01,0xec,0x08,0x91,0xb8,0xf0,0xaf,0x57,0x54,0x73,0x52,0x8f,0xde,0xca,0xed,0x1b,0xca,0x8d,0x97,0x1e,0xdc,0xe7,0xfa,0x68
+.byte 0xaf,0x37,0xb0,0x62,0xa3,0x9f,0xbc,0xac,0x9f,0x28,0x1e,0xb7,0xaa,0xb0,0x91,0xe4,0x95,0xad,0xf9,0xe5,0xd4,0xcc,0x23,0x0f,0x4a,0x2d,0xdd,0xea,0x64,0xd1,0x04,0x3c,0xd0,0xca,0xfe,0xd3,0x19,0x9d,0x28,0xa5,0x1c,0xff,0x3e,0xae,0xe9,0xfb,0x12,0x03,0x6d,0xcf,0xbc,0x5f,0x27,0xce,0x1a,0xb9,0xc0,0x31,0x88,0x6e,0x2e,0xaf,0x35,0x5f
+.byte 0xf0,0xce,0x92,0xf8,0x6f,0xd6,0x67,0x1c,0xc6,0x5c,0xee,0x59,0xaa,0xd6,0x8c,0xa8,0x13,0xe6,0xf7,0xe2,0x82,0x2f,0x82,0x1e,0x4c,0x0d,0xab,0x3e,0xdb,0x4d,0xc5,0x90,0x32,0xe4,0xf0,0x74,0xc1,0x92,0x1b,0xdd,0xf3,0xa7,0xf6,0x6b,0x01,0x9d,0x8d,0x78,0x3d,0x5a,0x46,0x74,0x16,0x93,0x44,0xca,0xbe,0x31,0xea,0xb4,0x65,0xcd,0xe6,0xdd
+.byte 0x56,0x9d,0x63,0x48,0xf0,0xf3,0x15,0x91,0x6c,0x27,0xf9,0xf7,0x3b,0x9f,0x04,0x6d,0x4d,0x1d,0xf1,0x7c,0xd1,0x81,0x06,0xef,0x04,0x47,0x98,0x5d,0x21,0xf4,0xe0,0xa0,0x13,0xaf,0x1d,0xb0,0xd5,0x45,0x64,0x92,0x46,0x99,0xff,0xb4,0xbf,0x36,0x01,0x2d,0x23,0x6a,0xc4,0x6b,0x3f,0x91,0x10,0x03,0xaf,0x6e,0x79,0x86,0xdb,0x15,0xde,0xfa
+.byte 0x0d,0x71,0x04,0x16,0x12,0x31,0x9b,0x69,0xb9,0xe0,0xe7,0x4e,0xfd,0x0e,0xd5,0x71,0xa0,0xc7,0xd7,0x46,0xdb,0xda,0xbd,0xcd,0xdc,0x77,0xe5,0x71,0x9d,0xa1,0xf4,0x02,0x10,0xc6,0x27,0x76,0x4e,0xa6,0x35,0xe6,0x9e,0xda,0xbe,0xd8,0xc0,0x21,0x15,0xd4,0xcc,0xd5,0x4b,0xdf,0x38,0xc5,0x15,0x4b,0xfa,0x4e,0x83,0xf4,0x27,0xdb,0x8a,0xb1
+.byte 0x0e,0x1f,0xc9,0x3c,0x1c,0x36,0x35,0x54,0x8b,0x54,0xf8,0x31,0x1e,0x0e,0x1c,0x4e,0x44,0x29,0x90,0xad,0x28,0x85,0xb4,0x72,0x2d,0x1b,0x8b,0x26,0x2f,0xb6,0xc2,0x14,0x0e,0x81,0xd0,0x37,0x29,0x5c,0x0f,0xdc,0x21,0x62,0x10,0x7a,0xeb,0xa3,0x6e,0xd4,0x5b,0xb4,0x13,0x2e,0xd6,0x8f,0xd9,0x57,0x0d,0x9b,0xfd,0x1e,0x66,0xb7,0x6e,0xac
+.byte 0x88,0xb9,0x75,0x60,0x62,0x83,0x72,0x96,0xc6,0x2e,0xdc,0xfe,0x88,0xee,0x07,0x9a,0x62,0x19,0xde,0xf1,0xa5,0xfb,0xcc,0xdb,0x4a,0xeb,0x16,0x60,0x34,0x46,0xfc,0xf2,0x6d,0xee,0xfc,0xa0,0x3a,0xb1,0x11,0x03,0x8b,0xae,0x26,0xef,0x86,0x91,0x20,0x7a,0x19,0x35,0xd6,0x12,0xfc,0x73,0x5a,0xb3,0x13,0xf8,0x65,0x04,0xec,0x35,0xee,0xf8
+.byte 0x70,0xb2,0x0b,0xe1,0xfc,0x16,0x35,0xec,0x6b,0xdd,0x8b,0xdc,0x0d,0xe8,0x91,0xcf,0x18,0xff,0x44,0x1d,0xd9,0x29,0xae,0x33,0x83,0xfe,0x8d,0xe6,0x70,0xbb,0x77,0x48,0xaa,0xe6,0xbc,0x51,0xa7,0x25,0x01,0xcf,0x88,0xc4,0x8b,0xfc,0xb1,0x71,0x01,0xc7,0xfc,0xd6,0x96,0x63,0xee,0x2d,0x04,0x1d,0x80,0x24,0xd0,0x80,0x03,0xd9,0x18,0x96
+.byte 0xec,0x6a,0x98,0xed,0x6e,0x9a,0xe0,0x42,0x5a,0x9d,0xec,0xed,0x46,0x3c,0xb5,0xf0,0xd6,0x88,0x92,0x89,0x38,0x5f,0xd6,0xba,0xfd,0x32,0x31,0x81,0xe9,0xf1,0x56,0x89,0xa3,0x56,0xa6,0x03,0x00,0x60,0xe1,0xa8,0x59,0xdb,0xbe,0x72,0x39,0x6c,0x08,0x4d,0x26,0x57,0xa6,0xf6,0x13,0x7d,0x4a,0x2f,0x64,0xb8,0xa7,0x23,0x2c,0xa4,0x4a,0xad
+.byte 0xcf,0xa1,0xa2,0x32,0xbb,0xd1,0x98,0x02,0xe4,0x1a,0x41,0x26,0x23,0xba,0xa2,0x17,0x62,0xaa,0xa6,0xc7,0x74,0x9d,0xea,0xc7,0xa0,0x08,0x0a,0x1a,0x4e,0x71,0xd9,0x45,0xf7,0xe8,0x57,0x79,0x12,0xd0,0x38,0x2f,0xdb,0xbd,0x5a,0x84,0xe1,0xb2,0x62,0x7e,0x56,0xb3,0x50,0x2a,0xa0,0x32,0x1f,0x86,0x71,0xc4,0xa5,0xba,0x93,0x5b,0x22,0x97
+.byte 0xf4,0xe5,0x44,0x27,0x6b,0x06,0x84,0x55,0x19,0x45,0x12,0x75,0x4b,0xf0,0x76,0x6d,0x3c,0x0a,0x17,0xc2,0x9d,0x96,0x72,0xe7,0x5e,0x79,0x84,0x0a,0x39,0x64,0x09,0x6e,0x7e,0xd7,0x77,0x40,0x75,0x2c,0xbd,0x98,0xae,0x3e,0x34,0x08,0x4d,0xda,0x2c,0xcf,0x0c,0xa2,0x8c,0x40,0xfa,0x34,0x43,0x15,0xed,0x4f,0x69,0xa6,0xef,0x2d,0x3c,0x55
+.byte 0x7a,0xe1,0x67,0xd1,0x0a,0x89,0xe0,0x2d,0x02,0x35,0x57,0xc8,0x9a,0x4b,0xc4,0x46,0xa7,0x57,0x03,0x89,0x7d,0x3f,0x70,0x47,0x03,0x06,0xd9,0x81,0x1f,0x8d,0x7e,0x36,0x9b,0xfd,0xad,0x20,0x9d,0x5a,0x29,0xe9,0x40,0x6a,0xb8,0x07,0x6b,0xc7,0x2b,0x58,0xd2,0x1d,0xef,0x88,0xa5,0xfb,0x3b,0xd6,0x9f,0xfd,0x89,0x0e,0x50,0xd4,0xbc,0x89
+.byte 0x3f,0x3c,0x6c,0x50,0xc6,0xe3,0x8b,0x7e,0x34,0x8b,0x26,0x99,0x2a,0xfa,0xa5,0x19,0x53,0xb5,0x5e,0xfd,0x94,0xe8,0x33,0xb2,0x6d,0x9c,0x3c,0x0c,0x14,0x90,0xc4,0xa2,0x4a,0x3a,0xca,0x07,0x72,0x46,0x37,0xfc,0x02,0x5d,0xf4,0x97,0xca,0x8e,0xc6,0xc4,0x63,0xda,0x5c,0x89,0xc3,0x6c,0xb1,0x1a,0xf5,0x2a,0xbc,0x2e,0xe3,0xcd,0x2f,0xe2
+.byte 0x91,0x16,0xf9,0x94,0x0e,0x1b,0xe6,0x01,0x73,0x61,0x1e,0xcf,0x5e,0x21,0x70,0xcb,0x5b,0x87,0xc1,0x46,0x39,0x59,0xa6,0x74,0x82,0x7f,0xa2,0x6c,0x4a,0x50,0x5f,0xbd,0x1c,0x1a,0x65,0x80,0x01,0x44,0x19,0xcf,0xcd,0xef,0x3d,0x5e,0x1b,0x71,0x82,0x4f,0x8b,0xc1,0xa0,0x9a,0x77,0xee,0xac,0x06,0xdc,0x6a,0xa0,0x34,0x50,0xa4,0xe0,0xda
+.byte 0x3d,0xa0,0xf7,0x9a,0xb8,0xd5,0x59,0xe0,0x7f,0x05,0x04,0xd5,0x32,0x8c,0x49,0xf5,0x0a,0x0e,0x99,0x83,0xf5,0x47,0x2b,0x7c,0x7b,0x65,0x25,0x02,0xc4,0x88,0xbb,0x6a,0x4f,0x89,0x31,0x60,0xc2,0x47,0x8b,0x22,0xfc,0x4a,0xde,0xb3,0xb9,0xed,0xb8,0xdf,0xd7,0xd5,0x09,0x98,0xcc,0x5f,0xaf,0xbb,0x02,0xc3,0x62,0x62,0xee,0x99,0x42,0x1b
+.byte 0xbe,0x5b,0xa8,0x5c,0x40,0x03,0x86,0x29,0x29,0x06,0x0b,0x53,0x46,0x29,0x03,0x3b,0x11,0x64,0xf1,0x09,0xca,0x69,0x69,0xfa,0xcc,0x85,0x23,0x14,0x1b,0xfd,0x65,0xb9,0xf5,0x6b,0xbb,0x2a,0x9d,0x6e,0x64,0x1a,0xe1,0x37,0x39,0xd4,0x85,0x40,0xa3,0xf9,0x04,0xec,0x9e,0x3b,0x74,0x97,0xa4,0x64,0x8a,0x48,0xb2,0x62,0xc1,0x1c,0xed,0x67
+.byte 0x6f,0x23,0xae,0x0f,0x64,0x2e,0xe5,0x92,0xb6,0xb5,0x71,0x24,0xc0,0x60,0x9a,0x10,0x23,0x6b,0x4a,0x22,0xe9,0x0a,0xaa,0x09,0x62,0x39,0xe0,0x40,0xee,0x13,0x27,0x14,0x73,0xeb,0x75,0x7b,0x4a,0xe1,0x42,0x65,0x37,0xae,0x80,0x08,0x26,0xf9,0x53,0x98,0x58,0xdd,0xf5,0xed,0x26,0x37,0x37,0x85,0xb5,0x88,0x91,0x05,0x2d,0x04,0xa6,0xd5
+.byte 0xa6,0x98,0xb0,0x0e,0x4b,0x4c,0x53,0x76,0x79,0xad,0x82,0xc5,0x16,0xba,0xd8,0x20,0x5f,0x4c,0x1d,0x69,0xa0,0xe0,0xe9,0xbc,0xb8,0x5c,0x10,0x4a,0x0a,0xd3,0x52,0x9c,0x2e,0x1b,0x6c,0xf7,0x43,0x83,0x6f,0xa9,0xcc,0x00,0xed,0x16,0x4c,0xc3,0x24,0x79,0x59,0x68,0xfb,0xf9,0xf6,0xb0,0xb4,0x01,0xc2,0xdd,0xf7,0xe5,0x3b,0x60,0x48,0x49
+.byte 0x32,0x48,0x05,0xa8,0x62,0xa3,0x03,0x9f,0x3d,0x91,0xdb,0x84,0x64,0x6f,0x1e,0x50,0x8e,0xdf,0x1a,0xa0,0xb1,0xf4,0x34,0x7c,0xe6,0xb7,0x7c,0x14,0xa1,0x65,0x1a,0xb4,0xdb,0x67,0x78,0xb1,0x88,0x3c,0xc2,0x5e,0x0e,0xea,0x32,0x15,0xc7,0xda,0xe4,0x9a,0x44,0xde,0x61,0x90,0x3b,0x97,0x11,0x5b,0x6d,0xa5,0x9a,0x2f,0x1b,0x8b,0xd7,0xdd
+.byte 0x73,0xe4,0xc3,0x19,0x5d,0x68,0xcf,0x0e,0xe4,0x69,0xa5,0xeb,0x50,0x6f,0x79,0xff,0x91,0xc6,0x95,0x83,0xe8,0x72,0x6a,0x01,0x49,0x2b,0xcf,0x8f,0x93,0x1e,0xef,0x31,0x17,0x8f,0xa8,0x2b,0x5f,0x4b,0x79,0x8b,0xe5,0x6c,0xb7,0x61,0xd5,0x9e,0xe0,0xd4,0x25,0xc3,0x93,0x31,0x8f,0x66,0x6c,0x48,0x30,0x65,0xf4,0xd7,0xde,0x64,0xee,0xbd
+.byte 0xbd,0xad,0x32,0xfc,0xf3,0xd8,0x7c,0x85,0x7c,0x24,0x40,0xb6,0xd4,0xe0,0x4b,0xc0,0xab,0xcc,0xeb,0x77,0x7c,0xb7,0x33,0x3c,0x90,0x04,0xaf,0x85,0xaa,0xb4,0xaa,0x90,0x67,0x29,0xd9,0x85,0x6a,0x34,0xf4,0xc4,0x6c,0xbc,0xb4,0x86,0x54,0x83,0xd5,0x5e,0xf3,0xdd,0x1a,0x56,0x5e,0xa5,0xd8,0x06,0xc0,0xa7,0x27,0xd4,0x0d,0x5b,0x08,0xf4
+.byte 0xb4,0x15,0xf9,0xb4,0x56,0x1c,0x80,0x98,0xc9,0xcd,0xf0,0x38,0x18,0xbe,0x99,0xec,0x7e,0x0c,0x3d,0xc1,0x98,0x26,0x9d,0x50,0xe4,0x00,0xcf,0x0f,0x0b,0x77,0x86,0x31,0x55,0x38,0xa4,0x31,0x50,0x51,0x64,0x88,0x81,0x05,0x32,0x99,0x38,0xd1,0x62,0x20,0x8e,0xf0,0x29,0x31,0xf5,0x79,0xbb,0x1e,0x0f,0xba,0x51,0x94,0xa9,0x54,0xcd,0x43
+.byte 0xce,0xe5,0x2c,0x29,0xa5,0x51,0x23,0x97,0x5d,0x36,0xff,0x51,0x5c,0x66,0xb7,0x62,0x1b,0x5f,0xd7,0x2f,0x19,0x07,0xff,0x0a,0xfc,0xf6,0x6e,0xb5,0xfd,0xa9,0x92,0x40,0xd3,0xe6,0x99,0x15,0x6f,0x1e,0x91,0xad,0x1f,0x4d,0x1c,0xe2,0xd9,0xcf,0x01,0x71,0xec,0x1a,0xa3,0xba,0x48,0x40,0xfd,0x18,0xb1,0x24,0x2b,0xd2,0x37,0xb5,0x74,0xdd
+.byte 0x7e,0xf6,0x18,0xb4,0x7b,0x0e,0x7d,0x65,0x46,0x7b,0xe3,0x51,0x03,0xae,0xe1,0xd0,0x74,0xc6,0xc9,0xda,0x0e,0x79,0x6f,0xf5,0x62,0xc0,0x7e,0x76,0x3e,0x13,0x8b,0xe0,0x4c,0xfa,0x7e,0xe1,0xa2,0xee,0x9d,0x3f,0x91,0x9d,0x21,0xdd,0xc2,0xd0,0xa5,0x1d,0x17,0xd6,0xdc,0xeb,0xa3,0xc0,0x71,0xa0,0xfe,0xf0,0xaf,0x31,0xdc,0xa3,0xd4,0x21
+.byte 0x4a,0x32,0x1d,0x54,0x25,0x3b,0xc8,0x8f,0x68,0xcd,0x99,0xce,0x76,0x39,0x42,0xd8,0xca,0xf2,0x46,0x72,0xfe,0x52,0xc2,0x90,0x83,0xed,0xa0,0x6d,0x1b,0xf5,0xb1,0x09,0xae,0x2b,0x34,0x4f,0xd3,0x78,0x19,0x7f,0xad,0x8d,0x50,0x26,0x9c,0x36,0xa3,0xb5,0x3d,0x0b,0xa6,0x87,0x65,0xa0,0xdb,0x88,0x20,0xff,0xb6,0xfd,0xc5,0xbd,0x0a,0x28
+.byte 0xc8,0x9c,0x42,0x7f,0x24,0x58,0xe9,0x07,0x53,0x4b,0x9a,0x2a,0x1e,0x7b,0x90,0x97,0x78,0x74,0x80,0x5d,0xe5,0x6e,0xae,0x15,0x68,0xd4,0x2a,0x3a,0xd3,0x00,0x4f,0x4b,0xff,0x8f,0x1e,0x8f,0x9f,0x75,0xe5,0xea,0x9d,0xb9,0xed,0x8f,0xa9,0x2b,0x70,0xa8,0xcb,0x08,0x85,0xd3,0x8f,0x5d,0xc7,0x49,0x66,0xcc,0xa8,0x6d,0xbd,0x01,0x93,0xd5
+.byte 0xe6,0x75,0x2e,0x25,0x07,0x59,0x86,0x3f,0x44,0x8b,0x0b,0xb5,0x38,0xd5,0xbd,0xcf,0x48,0x8a,0xf7,0x71,0xd6,0x6b,0x2e,0x93,0x3d,0x0b,0xc0,0x75,0xee,0xa8,0x5d,0x9c,0x3d,0xa5,0xdb,0xc5,0x8d,0xac,0xda,0xf4,0xcd,0x5f,0x24,0xfe,0x86,0x14,0x44,0x65,0x3f,0x89,0x7f,0xd3,0x61,0x48,0xb0,0x43,0xf0,0x1e,0xde,0xbc,0xb7,0x51,0x0f,0xfc
+.byte 0x32,0xf2,0x04,0xe2,0x4b,0xcb,0xbb,0x63,0x7d,0x5b,0x9a,0xb1,0x91,0x57,0x89,0xdc,0xed,0xde,0x91,0x2d,0xdd,0x42,0xc8,0x3c,0xb0,0xd7,0xa5,0xbc,0xa7,0x33,0x14,0x32,0xaf,0xf7,0xe9,0x25,0xd2,0x1a,0x64,0xf7,0x1b,0xab,0x0e,0xbc,0x50,0xbc,0x85,0x44,0xe0,0xa6,0xf1,0x4a,0x32,0x2f,0x30,0x27,0x48,0x4f,0xfc,0x8a,0x5a,0x78,0xe7,0x16
+.byte 0x55,0xcf,0xca,0x15,0xa8,0xa8,0xa2,0xef,0x9a,0x16,0x02,0xf4,0xb0,0x44,0xfd,0xc4,0x51,0x01,0x4f,0x1d,0x9d,0x09,0x62,0x42,0xe9,0x8b,0x18,0xa4,0x65,0xef,0x8b,0xfe,0x71,0x9f,0x4b,0x47,0x48,0x41,0x73,0x5c,0x0c,0x52,0x7d,0x79,0xbc,0x93,0x2a,0xaa,0x81,0x99,0x21,0xa5,0x9e,0xac,0xcd,0x57,0x51,0x50,0xbc,0xc9,0x96,0xaf,0xdf,0x1a
+.byte 0x8f,0xee,0x36,0x05,0x20,0x32,0xe8,0x51,0x94,0x72,0x12,0xa3,0x17,0x25,0x7f,0x0a,0x3e,0xcc,0x22,0xcf,0x05,0xb2,0x2b,0xaa,0x36,0x01,0xdf,0xd4,0x4e,0xe1,0x02,0x43,0x4e,0xac,0x50,0x64,0xcd,0x2f,0xc2,0xa9,0xb0,0xf2,0xf2,0x4c,0xdf,0x16,0xa6,0x54,0xf7,0xbf,0x1a,0x69,0xeb,0xa1,0x5a,0xc7,0xcf,0x46,0x2d,0xc2,0x3a,0x7f,0x4a,0x14
+.byte 0x22,0x15,0x46,0x46,0x2d,0xc1,0x98,0xf7,0x0b,0xf3,0x27,0xfc,0x78,0x67,0x05,0xd8,0xe0,0xf6,0xb8,0xb6,0x0b,0xdb,0x4d,0x6b,0x7e,0x9b,0xbf,0x5c,0x15,0x97,0x49,0x9f,0x6f,0x11,0x6c,0x6e,0x1d,0x1e,0x65,0x5b,0xb9,0x60,0x8f,0xa3,0xa9,0x99,0x17,0x92,0xb8,0x65,0x25,0xc4,0xef,0xea,0xa6,0xc0,0x57,0xa9,0x4c,0x78,0xe3,0xd6,0xf2,0x19
+.byte 0x9c,0x86,0x9e,0x45,0x3e,0xfd,0x21,0x4c,0x2a,0x56,0x7c,0x23,0xf2,0x22,0xa1,0x81,0xdb,0xe6,0xfa,0x85,0x19,0x3b,0x1d,0x61,0xb3,0x21,0xb5,0x64,0x1d,0x07,0x66,0xd2,0xe5,0x9c,0xb0,0x76,0x9d,0xc9,0x02,0x6a,0x8d,0xd5,0x84,0xd5,0xa7,0x7c,0x70,0x64,0x46,0xd6,0xff,0xc7,0x9f,0x2f,0xed,0xc1,0x5a,0xcb,0x56,0x12,0x31,0x9d,0xff,0x66
+.byte 0x9a,0xf8,0x50,0xc6,0x54,0xfd,0x8d,0x49,0x32,0x8c,0xdd,0x8c,0xbe,0x30,0x79,0xaf,0x1a,0xd5,0x28,0x1d,0x03,0x87,0x12,0x60,0x7a,0xcc,0xe6,0xe8,0x4e,0x21,0x5d,0xa3,0x06,0xfb,0xdf,0xf6,0x31,0xd6,0x10,0x3e,0xec,0x23,0x69,0xc7,0x7b,0xf6,0x78,0xa6,0xd1,0x8a,0x48,0xd9,0xdc,0x35,0x1f,0xd4,0xd5,0xf2,0xe1,0xa2,0x13,0x8a,0xec,0x12
+.byte 0xa7,0xf1,0x5d,0xb2,0xc3,0x6b,0x72,0xd4,0xea,0x4f,0x21,0xff,0x68,0x51,0x51,0xd9,0xd7,0x2f,0x28,0xd7,0xdf,0xbc,0x35,0x4f,0x49,0x7e,0xe7,0x21,0x82,0xd7,0x0c,0x7c,0xf4,0x86,0x86,0x62,0xcd,0xf5,0x23,0x77,0xc1,0x14,0x8a,0xc4,0x2a,0x82,0x74,0x0e,0x90,0x93,0xd5,0x5a,0xc0,0x57,0x93,0x1a,0xe1,0x1c,0x13,0x17,0x72,0xc3,0xa6,0x54
+.byte 0xc4,0xe2,0xfc,0xd3,0xa0,0xce,0x08,0x87,0x9e,0x2a,0xaf,0xa7,0xbb,0x2d,0xaf,0xc0,0x38,0x97,0xc8,0x6d,0xb8,0x7b,0x75,0xc5,0xf2,0x79,0x62,0xdc,0x7c,0xa9,0xfd,0x19,0xa2,0xb1,0xee,0xdf,0x90,0x18,0x5a,0xdb,0x3c,0xba,0x0d,0x84,0xd6,0xaf,0x15,0xee,0xb6,0xa5,0x78,0x38,0x87,0xdf,0x42,0xd6,0xd1,0xa2,0xe9,0xe0,0xa6,0xf2,0x4e,0xa4
+.byte 0xed,0xa5,0xf6,0x66,0x7f,0x99,0xbc,0xfb,0x4b,0x37,0xca,0x5a,0xb3,0x29,0x8e,0x80,0x30,0x8b,0x74,0x7b,0xac,0x61,0xfb,0xca,0x62,0xfe,0x24,0xc4,0x6e,0xac,0x66,0x97,0xaa,0x9a,0x99,0xe6,0xa8,0xa4,0xd8,0x62,0x58,0x7c,0xd1,0xeb,0xee,0xc8,0x08,0xa0,0x54,0xde,0xb1,0xef,0x57,0x2c,0xb6,0x2c,0x78,0x22,0x10,0xbb,0xfe,0x4b,0x77,0xa5
+.byte 0x5a,0xed,0xbb,0xf8,0x97,0x96,0x20,0xa9,0x8c,0x78,0xb5,0xb9,0x55,0xc9,0xaf,0xb9,0xa1,0x1f,0x13,0x52,0xf9,0xbb,0xaa,0x98,0x01,0x57,0xa6,0x88,0xaa,0x5c,0xf0,0x62,0x5b,0x3e,0xe1,0x5f,0xf4,0x98,0x95,0x8b,0x8f,0x48,0xd6,0xd5,0x8b,0xc2,0x1d,0x45,0x7d,0xe2,0x03,0x66,0x84,0xfc,0xbd,0x8e,0x95,0x9f,0x58,0x99,0x7b,0x4c,0xb6,0xe5
+.byte 0xe2,0xf9,0x2e,0x92,0x58,0xca,0xa9,0x24,0x9c,0x7c,0x46,0xdf,0xea,0xb4,0x6e,0x0e,0xa5,0x9c,0x14,0xbf,0x25,0x5b,0x39,0x4a,0xaf,0x31,0xaa,0xd1,0x2c,0xe6,0x06,0x3d,0xc4,0x60,0xc7,0xcd,0x49,0x8d,0xe1,0x50,0x55,0xe4,0x72,0x68,0xed,0x43,0xb8,0x85,0xa3,0xc3,0xf1,0xf5,0xd1,0xcf,0xcb,0x57,0xac,0x04,0x16,0x22,0xe4,0xfc,0x4a,0x13
+.byte 0x60,0x3f,0x09,0xa4,0xf2,0x9b,0x34,0xeb,0x0c,0x10,0x57,0xc3,0x3f,0x15,0xb5,0x1b,0x6a,0xb3,0x7d,0x37,0x02,0x4c,0x0f,0x6f,0x8b,0x4d,0x5d,0x57,0x7d,0xbf,0x00,0x8a,0x74,0xb4,0x4c,0x5f,0x90,0x27,0x76,0x09,0x8c,0x18,0x3f,0x26,0x3a,0x09,0x06,0xdd,0x8b,0xff,0x0e,0xa4,0xae,0xef,0x0c,0x81,0xf2,0xf3,0x1f,0xe0,0x33,0x33,0x37,0xc6
+.byte 0xc3,0xfb,0x14,0xdd,0xa1,0x16,0x84,0x80,0xcb,0x37,0xe7,0x97,0x6d,0x21,0xa7,0x71,0x19,0x2b,0x2d,0x30,0xf5,0x89,0x2d,0x23,0x98,0xfc,0x60,0x64,0x4a,0x26,0x65,0x4a,0xef,0x12,0x59,0xa3,0x8c,0xd9,0xbd,0xdc,0xb7,0x67,0xc9,0x8d,0x51,0x72,0x56,0x6a,0xe5,0x59,0xa2,0x53,0x4f,0xb6,0x53,0xff,0xb0,0xd4,0x06,0x7f,0x79,0x23,0xf9,0xcb
+.byte 0xbf,0x9a,0x93,0xde,0x88,0x33,0x58,0x70,0xa7,0xcc,0x07,0xb1,0x44,0xb9,0x99,0x1f,0x0d,0xb9,0xc9,0x18,0xdc,0x3e,0x50,0x22,0xfb,0x4e,0x86,0x0d,0xc0,0xe7,0x7f,0xc6,0xa1,0x52,0x0d,0x8d,0x37,0xe6,0xaf,0xe3,0x13,0xbe,0xa6,0xf9,0x59,0x39,0x0f,0x17,0x66,0xce,0xb1,0x7d,0x7f,0x19,0x1a,0xf8,0x30,0x3a,0xa5,0x72,0x33,0xa4,0x03,0xb6
+.byte 0xb6,0x9b,0xde,0x7a,0x7a,0x62,0x3d,0x85,0x98,0x8e,0x5d,0x8a,0xca,0x03,0xc8,0x2c,0xae,0xf0,0xf7,0x43,0x3f,0x53,0xb2,0xbb,0x1d,0xd0,0xd4,0xa7,0xa9,0x48,0xfa,0x46,0x5e,0x44,0x35,0x50,0x55,0xdc,0xd5,0x30,0xf9,0x94,0xe6,0x5f,0x4a,0x72,0xc2,0x77,0x59,0x68,0x93,0x49,0xb8,0xba,0xb4,0x67,0xd8,0x27,0xda,0x6a,0x97,0x8b,0x37,0x7e
+.byte 0xe9,0x59,0x89,0xc7,0x5e,0xd9,0x32,0xe2,0xaa,0xd1,0xe9,0x2b,0x23,0xca,0x9d,0x89,0x7a,0xf5,0xe4,0xfb,0x29,0xcc,0x88,0xfb,0x82,0x0f,0xbf,0x47,0x54,0xca,0x2b,0x4b,0xd8,0x47,0x7f,0x65,0x38,0x5a,0xb3,0xe8,0x0b,0xd7,0xe1,0x8b,0x89,0x57,0x32,0xdb,0xa3,0x85,0xba,0xf9,0xbc,0x52,0x92,0x20,0x10,0x66,0x54,0x81,0xe1,0x49,0x3f,0xe1
+.byte 0x8c,0x2e,0x0b,0x3b,0xe7,0x49,0xb4,0x60,0x5a,0x20,0x33,0xc4,0x4e,0x81,0xef,0x96,0xda,0x73,0x90,0x2b,0xb4,0x86,0xa1,0x5c,0xcd,0xa0,0xc7,0xf3,0x06,0x0d,0x2a,0x5a,0x41,0x96,0xf5,0x40,0x1b,0x0a,0x3a,0xb7,0x38,0xe1,0xbb,0xe3,0x42,0xf9,0x52,0xe5,0x98,0xe2,0x17,0xd4,0xb0,0x09,0x73,0x75,0xc1,0x00,0x18,0x0f,0xa7,0x0b,0x58,0xc1
+.byte 0x78,0x5c,0x0c,0x05,0xd8,0xfb,0xc5,0xfd,0x5c,0x66,0xbe,0x54,0x68,0xd1,0x16,0x54,0xfb,0xc5,0x97,0xd7,0x03,0x82,0x47,0xbb,0x47,0xea,0x9e,0x8b,0x90,0x07,0xb2,0xd2,0x06,0x14,0x79,0xeb,0xb6,0xe1,0x10,0x55,0xa9,0x13,0xea,0x65,0x7a,0xd0,0xe5,0x66,0x5d,0xe7,0x7b,0x10,0x5f,0x7c,0x25,0x7d,0x4e,0x77,0xb3,0x19,0x02,0xb1,0x45,0x1c
+.byte 0x1a,0x51,0x24,0x72,0xd4,0xaa,0x03,0x0c,0x37,0x2a,0x78,0x81,0x05,0xca,0x73,0xb9,0xb5,0xd8,0xf5,0x25,0x2b,0x30,0x59,0x00,0x66,0xbd,0x6c,0x38,0xa2,0xc3,0xfb,0x43,0x85,0x6d,0xab,0xca,0xd8,0x73,0xa8,0x76,0xda,0x6e,0x00,0x19,0xd0,0xb9,0x1e,0x9b,0x33,0xe4,0x57,0x68,0xf4,0xb8,0x35,0x44,0xe6,0x74,0xd2,0x33,0x64,0xa1,0x41,0xa6
+.byte 0x5a,0xf6,0x8e,0x29,0xb5,0xa6,0x21,0x8e,0xc4,0x0c,0x0c,0x16,0x81,0x08,0xef,0x0a,0x41,0x08,0x34,0xc7,0xe1,0xd8,0xa8,0x68,0xb1,0xf3,0x9a,0x7a,0xaa,0x90,0xc0,0x77,0x32,0x70,0x50,0x5c,0x92,0xfc,0x38,0x31,0xaf,0x3e,0xd8,0xd8,0x4b,0x90,0x99,0xc4,0x17,0xde,0xa6,0xb5,0x29,0xc0,0x82,0x45,0x20,0x08,0x0c,0x4f,0x76,0x36,0x56,0x7e
+.byte 0x07,0x17,0x42,0x78,0xa1,0x2d,0x62,0x48,0x81,0x57,0xc4,0xcf,0xf4,0x89,0x34,0x78,0x10,0xe6,0x98,0x78,0xb0,0x69,0x15,0x06,0xdb,0x2b,0xbb,0x8b,0xa5,0x72,0x50,0x24,0xae,0x6b,0x33,0x49,0x7b,0x9d,0x69,0x74,0xc8,0x7c,0xca,0x7a,0x31,0x39,0x0d,0x72,0x78,0xc1,0x6b,0x97,0x50,0x97,0xea,0x90,0xab,0xe7,0xdf,0x29,0x2e,0xf7,0x6e,0x49
+.byte 0x95,0xab,0xbd,0xea,0x1f,0xd4,0x93,0x4d,0x30,0x6b,0x6d,0xb0,0x86,0x38,0x2c,0xc8,0x77,0x2c,0xb5,0xb5,0x5c,0xd9,0xbb,0xe9,0x7d,0xb2,0xb7,0x6b,0xd1,0x1c,0xd3,0xd0,0x66,0x51,0x63,0x8c,0xf3,0x13,0xad,0xcf,0xeb,0x82,0x12,0x1a,0x6d,0xf5,0x75,0x66,0xa2,0x55,0x30,0x64,0x1d,0x68,0x46,0x50,0x5a,0x93,0xf1,0xc2,0x13,0x68,0x95,0x55
+.byte 0x51,0xe0,0x56,0x3a,0x96,0x86,0x8e,0xfb,0x5f,0x3b,0x1f,0x49,0x9c,0x3d,0xe5,0xf2,0x8c,0x3f,0xd6,0x6d,0x17,0xc7,0x18,0x59,0x1a,0x8a,0x72,0xa8,0xb3,0x39,0xda,0xc4,0xfa,0xc5,0xca,0xdf,0x48,0x48,0xd1,0xd2,0xba,0x14,0x5d,0x28,0x3b,0x4c,0xb3,0xcb,0x8d,0x1b,0x91,0x46,0x6b,0x2d,0x21,0x21,0x99,0x98,0x6d,0xcc,0x6b,0x8e,0x91,0x1d
+.byte 0x42,0xc2,0x72,0x1a,0xc6,0xd2,0xaf,0xed,0x10,0xff,0x1e,0xa5,0xae,0x16,0xc0,0x05,0xdf,0x37,0xe2,0x1e,0x2e,0x15,0x21,0x0c,0x33,0x6f,0xfd,0xed,0x3f,0x7e,0xd7,0x69,0xfb,0x76,0x79,0x65,0xe9,0xd9,0x8d,0xf6,0xc0,0x6c,0xf7,0x15,0x7f,0x04,0xd7,0x71,0xcc,0xaa,0x85,0x73,0x23,0xf1,0xc8,0x62,0xd0,0x8e,0x01,0x35,0xff,0x4f,0x4f,0x13
+.byte 0xe6,0x28,0xf1,0xc1,0x7a,0x04,0xc0,0x7b,0x75,0xac,0x1c,0x55,0xb4,0x7c,0x00,0xb9,0xe0,0x14,0x67,0xb6,0xc5,0x69,0x62,0x0b,0xe6,0xb5,0x46,0x86,0x6f,0x09,0xdf,0x84,0x2c,0xa8,0x30,0x89,0x5b,0x24,0x47,0xfa,0x43,0x24,0xd5,0x07,0xf7,0xba,0xab,0x1b,0xfd,0x60,0xad,0x89,0x5f,0x60,0x87,0x78,0x48,0xbb,0xc0,0x63,0xf4,0x27,0x86,0x33
+.byte 0xf4,0x49,0x64,0x4c,0x5c,0x94,0x9a,0xb8,0x0f,0x45,0xe2,0x92,0x7d,0x9a,0x86,0xdb,0xb7,0x05,0xe8,0xd7,0x64,0x44,0xfa,0x74,0x60,0x72,0x89,0x13,0x8f,0x2e,0x96,0x33,0xa9,0x12,0x4a,0x62,0x6b,0xc3,0xcb,0x55,0xd3,0xef,0x17,0x11,0x82,0x4a,0x51,0x77,0xbf,0x63,0xa0,0x21,0xfc,0xbc,0x0c,0x6f,0x9a,0xfd,0xde,0xbe,0x9f,0x2e,0x50,0xd5
+.byte 0x32,0xa4,0xf0,0x1b,0xed,0xfa,0xbf,0xcd,0xc9,0xd8,0xf8,0x06,0xf2,0x17,0x8a,0x92,0x18,0xb8,0xc3,0xe5,0xbf,0xc2,0xf4,0x77,0xb9,0x71,0xfb,0x60,0x6e,0xe7,0xad,0xe4,0x7d,0xd4,0x59,0xa9,0xbd,0x21,0xd5,0x03,0x69,0xb5,0xf1,0xce,0xb5,0x88,0xd9,0x1d,0xc7,0xb3,0x14,0xa6,0xb1,0x30,0x8d,0xaa,0xcd,0xe5,0x50,0xc5,0x0d,0x4b,0x6d,0xde
+.byte 0x17,0x4d,0xd2,0x93,0xf3,0xc2,0x8d,0x59,0xf1,0xd0,0x2f,0xb5,0x62,0x18,0x81,0x07,0xb3,0xfb,0x08,0xb3,0xa8,0x15,0xe0,0x9a,0x4c,0xa5,0x24,0xcd,0x47,0x69,0xf9,0xf7,0xda,0xa9,0xff,0xe1,0xe2,0x43,0xe3,0x69,0xf1,0x26,0xac,0xc6,0x42,0xf2,0x32,0x42,0xfb,0x7c,0xa2,0x94,0xc6,0xaa,0xd9,0x05,0x29,0xc6,0x3d,0x45,0x44,0x1d,0x52,0x7e
+.byte 0x48,0x47,0x93,0x34,0x08,0xa0,0x93,0xc2,0x5e,0x9b,0x22,0xc1,0x2a,0xaa,0xfe,0xa2,0x26,0x00,0xa8,0xbb,0xd0,0x58,0xfd,0x5a,0x09,0x4f,0xa1,0x0c,0xff,0x66,0xcc,0x88,0x3a,0x69,0x9a,0x12,0xb6,0x05,0x6e,0xdf,0x54,0x5d,0xe7,0x03,0x8e,0x95,0x86,0x68,0x83,0x83,0x6f,0x04,0x0b,0x9c,0x05,0x05,0x77,0x14,0x83,0x47,0x98,0x5f,0x22,0xaf
+.byte 0xa8,0xfd,0xf3,0xe7,0x73,0xec,0xef,0xd7,0x57,0xd9,0xef,0xe7,0x1b,0x18,0x24,0x09,0xd9,0x14,0xf9,0x60,0xba,0x05,0x0f,0x8f,0x33,0x48,0xb1,0x06,0x41,0x2e,0x95,0x3d,0xf5,0xcf,0x14,0x50,0x5d,0xb6,0x93,0xeb,0xd5,0xf8,0x9f,0x7c,0x8f,0x23,0x35,0x39,0x30,0xc8,0xf6,0x74,0x07,0xc4,0x4c,0xcf,0xe1,0xdb,0x3e,0x9f,0x0a,0xfd,0x48,0x9e
+.byte 0x56,0xe4,0xa7,0xa3,0x07,0x06,0x18,0xbb,0x50,0x75,0x33,0x48,0xb9,0xa1,0x4e,0x63,0x65,0xd3,0xf4,0x40,0xc3,0x2d,0x52,0x9a,0xad,0x56,0x7f,0xff,0xb0,0x46,0x24,0xa1,0x78,0x5f,0xb6,0xa8,0x72,0x28,0xb3,0x6c,0x61,0x6e,0xa0,0xfc,0xcb,0xe8,0xfe,0x07,0x28,0x97,0x1c,0xda,0x76,0xc7,0x98,0x2f,0x00,0x1d,0xf2,0x17,0xbe,0x48,0x3f,0xd3
+.byte 0xc7,0xbe,0x89,0x89,0xe1,0x96,0x75,0x1e,0xee,0xf9,0x78,0x67,0xbf,0x12,0x1e,0xe2,0x14,0xbf,0xd4,0xfd,0x49,0xaa,0xbf,0xc6,0xb8,0x4f,0x84,0xcd,0x5d,0x3c,0x45,0xb3,0xb0,0x14,0x6f,0x2d,0x6f,0x35,0xfa,0x60,0x7f,0x64,0x40,0xc8,0xde,0xa8,0x2b,0x56,0x75,0x74,0xc9,0xe1,0x2c,0xe2,0x2f,0xc2,0x3e,0xba,0xa3,0x20,0xd8,0xa3,0xbc,0x69
+.byte 0x9d,0x1c,0xcf,0x5e,0xe3,0xc0,0x66,0x72,0xce,0x22,0x96,0xad,0x47,0xc9,0x5b,0xac,0x45,0xdc,0x4f,0x8e,0xf6,0xa6,0x2e,0x4a,0x1e,0x01,0xe4,0xb7,0x83,0x68,0x92,0x2b,0x98,0xdf,0x22,0x0f,0xd9,0x4f,0x6f,0x72,0x37,0x56,0xfa,0x1b,0xbb,0x5a,0x4d,0xd8,0x5b,0xc6,0x65,0xf8,0xd4,0x4e,0xa5,0xc0,0x0f,0x2d,0xc2,0x38,0xa4,0x6c,0x33,0x2f
+.byte 0x7a,0x52,0x14,0xbb,0xfb,0xb3,0xf2,0xa9,0xbf,0xa0,0xad,0xcb,0x8c,0x81,0x47,0x26,0xe9,0xfb,0xc1,0x8e,0xc6,0xe5,0x39,0x48,0xa5,0xb3,0xbc,0xb2,0xe4,0xac,0xf9,0x49,0xbb,0x34,0x2b,0xc4,0x4d,0x06,0xe4,0xd6,0x0b,0xdd,0x55,0x36,0xe6,0xaf,0x64,0xea,0x84,0xf2,0xa5,0x68,0xe3,0x4e,0x4c,0x77,0x46,0x6c,0x17,0x6e,0x08,0x99,0x96,0x1b
+.byte 0xb5,0x44,0x3b,0x94,0x2d,0x0f,0xcd,0x90,0x17,0x8f,0x80,0xcb,0xc2,0x30,0xbe,0xe1,0x36,0xdc,0x1e,0x48,0xe3,0x2c,0xe5,0xc9,0xbc,0xbd,0xff,0x3f,0x95,0x59,0x35,0x58,0x2f,0x9c,0xa6,0x1c,0x45,0xa7,0x61,0xde,0xf2,0x9c,0xa3,0x04,0x0f,0xa0,0x93,0xaf,0x69,0x2b,0x0d,0x1c,0xfc,0xff,0x97,0x1c,0x69,0x7e,0x30,0x06,0x88,0x01,0xa4,0xf1
+.byte 0x32,0x36,0xed,0x56,0x89,0xff,0xa9,0x63,0x3a,0x17,0x91,0xc5,0xba,0x6e,0x38,0x84,0xb1,0xaf,0x28,0xac,0x8a,0xb2,0x60,0xbe,0x1b,0x0a,0xd8,0x05,0x22,0x25,0x56,0xbe,0x75,0x47,0x59,0xcf,0x8c,0x2e,0xb3,0xc3,0x5f,0x06,0x81,0x65,0x39,0x78,0xed,0xe3,0xc9,0x5a,0x99,0x01,0xae,0xfb,0xf6,0xed,0x55,0xf5,0xbd,0x2f,0x93,0xf1,0x62,0x6a
+.byte 0x54,0x4f,0xe1,0x9f,0x0a,0x23,0x83,0xbc,0xc2,0xba,0xb4,0x6f,0xd9,0x88,0xc5,0x06,0x7a,0x83,0xd5,0xdb,0xeb,0x49,0x48,0xd6,0xc9,0x45,0xa2,0xd0,0xc4,0x06,0xd9,0x01,0xec,0x2d,0x6d,0xc1,0x95,0x69,0x22,0xd0,0xae,0x88,0x75,0x8b,0xd2,0x02,0x98,0x83,0xd9,0x10,0x27,0x8d,0x68,0x97,0x5e,0x6b,0xdd,0x51,0xbb,0x92,0x38,0xa8,0x12,0xde
+.byte 0x0f,0xa4,0x1e,0x2e,0xec,0xd5,0x73,0x55,0x5f,0x46,0x6a,0x0f,0xc9,0x50,0x0d,0xb3,0x55,0x20,0xe0,0x01,0xef,0x92,0x29,0x04,0x38,0x60,0xbd,0xc7,0x0b,0x1e,0x94,0x10,0x37,0xb7,0x02,0x94,0xbc,0xde,0xdb,0xb3,0xe3,0x1e,0xd5,0xe2,0xa8,0xed,0x46,0xe8,0xd4,0x8a,0x6c,0x93,0x4e,0xb7,0x73,0xa6,0x20,0x86,0xd2,0x82,0x2f,0x78,0x80,0x34
+.byte 0x44,0x79,0x84,0x2e,0x54,0xd0,0x30,0xa8,0x06,0x0c,0xcf,0x78,0xb4,0xd7,0xe2,0xc9,0x6e,0xfb,0x37,0x47,0x8f,0xe5,0x9f,0xf8,0xca,0x58,0x9c,0xb6,0x8b,0xbe,0xf4,0x3a,0xfe,0x75,0xec,0x1b,0x22,0xfd,0x93,0x92,0x07,0x09,0xcd,0xe6,0x2f,0xe6,0x51,0x0f,0x19,0x43,0x9c,0x6a,0x32,0x38,0x7d,0xf0,0x0c,0x78,0x81,0xb7,0x5c,0xbe,0x3c,0xf4
+.byte 0xc0,0x12,0x57,0x51,0x8a,0x69,0x84,0x0d,0x1e,0x0a,0xed,0x75,0xde,0x9e,0x31,0x8a,0x9b,0x18,0x82,0x01,0x5a,0xee,0x0e,0x33,0x3c,0x8c,0x95,0xb1,0x0b,0x05,0x3b,0xb2,0x85,0xab,0xaf,0x47,0xa2,0x03,0xb6,0xbb,0xda,0xf5,0xc8,0xbe,0x0e,0x4d,0xf8,0x84,0xe4,0xfb,0xd4,0x54,0x44,0x72,0xe5,0x30,0x57,0xa3,0xb6,0x47,0x8f,0xd3,0x32,0xc2
+.byte 0x83,0x07,0x4f,0x17,0x20,0x88,0xa1,0x0b,0xb3,0xef,0x4b,0x27,0x60,0xe0,0x9d,0xec,0xc2,0xdf,0xaf,0x2e,0x74,0xae,0xa4,0x2b,0x59,0x94,0x75,0xbe,0x54,0xf5,0x18,0x62,0xd9,0xe2,0x35,0xee,0x37,0x2e,0xdf,0x48,0xf8,0x80,0x32,0xcb,0xf1,0x83,0x78,0x03,0x68,0x06,0xd7,0x82,0xc6,0x76,0x2a,0x10,0x2a,0xdb,0x73,0xe6,0x65,0x24,0x9f,0x73
+.byte 0x1f,0x55,0x55,0xb6,0x10,0x65,0x80,0x70,0x5a,0x8e,0x8a,0xc8,0x4c,0xca,0x74,0x47,0x63,0x3f,0xee,0x49,0xc3,0x86,0x0f,0x66,0x56,0x08,0xee,0x9f,0xf5,0x5a,0x89,0x4c,0xb4,0x97,0x6e,0x75,0x61,0xc0,0xa7,0x92,0xa8,0x38,0x99,0x08,0x01,0x12,0x82,0x77,0x80,0x20,0x9d,0x62,0x46,0x92,0xdd,0x39,0x4d,0xcf,0xc0,0x8a,0x3e,0x30,0x9a,0xfa
+.byte 0x28,0xe8,0xd8,0xf8,0x07,0x0d,0xab,0x4c,0xd4,0x02,0x4c,0xd7,0xc3,0x16,0x89,0x24,0x84,0x52,0x7c,0xa4,0x1b,0x54,0x7f,0xc4,0x74,0x4f,0x88,0x0a,0x14,0x03,0xd9,0x1a,0x48,0xff,0x2c,0xfb,0xbf,0x33,0xf1,0xf8,0x0e,0xdd,0xc4,0x98,0xf2,0xbd,0x32,0x99,0x03,0x8e,0x56,0xc1,0x84,0x5d,0xa6,0xd7,0x21,0xf2,0x43,0xfb,0x3b,0xf5,0x6a,0x75
+.byte 0x20,0xfb,0x08,0x7b,0x66,0x15,0x47,0x31,0xb6,0xb6,0x7a,0xc9,0xe6,0xf5,0xd6,0x0a,0x14,0xb3,0x68,0x0a,0x32,0x13,0xb5,0xe6,0x56,0xbd,0xa5,0x24,0xe2,0xa3,0x7b,0x3d,0x01,0x23,0xed,0x08,0x09,0xb5,0xdb,0x7c,0xa9,0x4b,0x23,0xdb,0xa2,0x25,0x0c,0xc6,0xa4,0x0d,0xbb,0x1a,0x5d,0x1b,0x42,0x0b,0x86,0x72,0xc3,0xca,0x5b,0x14,0x04,0xa3
+.byte 0xd7,0x01,0xe7,0x17,0x78,0xd0,0x54,0xde,0xd4,0x76,0x3d,0xe1,0x7d,0x26,0x3e,0xb4,0x71,0x42,0x84,0x36,0x58,0x78,0x22,0x32,0x26,0x0e,0xc8,0x99,0x05,0xe3,0x4a,0xa6,0x5a,0x1a,0x06,0x0a,0x88,0x47,0x51,0x5c,0xa8,0x72,0x70,0x0c,0x62,0x5f,0xf3,0x1e,0x02,0x50,0x20,0xc6,0x5c,0x50,0x30,0x1f,0x4e,0x5a,0x3a,0x02,0xc9,0xca,0x3f,0xa4
+.byte 0xf1,0x66,0x05,0xf3,0x19,0xe5,0xaa,0xdb,0x75,0x51,0xc1,0xb8,0x94,0xfa,0x2d,0xb6,0x8b,0x42,0xdc,0x9a,0xa3,0x13,0xeb,0x95,0x8d,0xf0,0x65,0x87,0xc9,0xa1,0x43,0xb4,0xfe,0x76,0xf4,0xc8,0xbb,0x19,0x96,0x84,0x9d,0x2f,0x92,0xe8,0x22,0x9a,0xf0,0xd5,0xf4,0xc4,0x8d,0x19,0x59,0x21,0xbf,0x15,0xfd,0xa6,0xc4,0xde,0x77,0x58,0xae,0x93
+.byte 0xb3,0xff,0x44,0x49,0x6e,0x37,0x94,0x04,0xd2,0x96,0xe9,0x80,0xd8,0xe3,0x93,0xd8,0xb4,0x7f,0x5f,0xcf,0xe5,0x9d,0x51,0x92,0xac,0x5d,0x9f,0x23,0x3a,0x3e,0xdf,0x96,0x68,0x9a,0x46,0x9b,0x1a,0x06,0x44,0x54,0xc4,0x2e,0x19,0x0f,0x50,0xee,0x73,0xda,0x39,0x7e,0xec,0xcb,0x1d,0x39,0xf7,0x9f,0xbc,0xe0,0x6d,0x49,0x56,0xf8,0xa7,0x24
+.byte 0x70,0xab,0xe1,0xc3,0x82,0x99,0x0a,0x4d,0x64,0x41,0x37,0xab,0x92,0x76,0xeb,0x6a,0x2a,0xa5,0xab,0x75,0xd7,0xe3,0x6a,0x72,0x4a,0x2b,0x57,0x02,0xc7,0xbe,0xd5,0x35,0xce,0xdf,0xee,0xf1,0xc6,0xe6,0x69,0xb7,0x76,0x99,0x22,0xb0,0xb9,0xe1,0x18,0x91,0x9a,0x35,0xd9,0x3a,0x19,0xc7,0x77,0xf2,0x2d,0xae,0x04,0x2e,0xb7,0x35,0x97,0xa5
+.byte 0xc6,0x97,0x4e,0x5d,0xbe,0xa9,0x35,0x2b,0x53,0x1a,0x6b,0x4e,0xa8,0xa6,0x22,0x48,0x2c,0x81,0x25,0xac,0x30,0x89,0x7b,0xb3,0x38,0x34,0x42,0x0b,0xa5,0x5f,0x02,0xe8,0xee,0x12,0x9b,0xce,0xe7,0x10,0xf9,0x65,0xb6,0xc5,0x74,0x06,0xef,0xc8,0x95,0xb3,0x40,0x30,0xec,0x1f,0x8e,0xeb,0x93,0x31,0x91,0x5a,0x2f,0xc2,0x90,0x85,0xaa,0x4c
+.byte 0x51,0xc4,0xd0,0x3e,0xc8,0xc9,0x61,0x46,0x96,0xd4,0x60,0x56,0x7d,0x91,0xc4,0x24,0x76,0xfb,0x09,0x08,0x48,0x2f,0x4a,0x73,0x90,0x8e,0x9d,0xb2,0x38,0xa8,0x95,0x3e,0x6d,0x10,0x57,0x91,0x8d,0x55,0x62,0x1f,0x21,0xc7,0x01,0x15,0xb0,0x71,0x0b,0x26,0xbc,0x10,0x33,0x3e,0x79,0x37,0x64,0x85,0x98,0x42,0x21,0xcc,0xff,0x51,0x9a,0xc2
+.byte 0xe0,0x51,0xc3,0xff,0xf2,0x14,0x3d,0xe8,0x89,0x12,0xe7,0xcd,0x58,0x2f,0x87,0xfb,0x4a,0x50,0x6c,0x4d,0xdf,0x6f,0x64,0x9c,0x64,0x93,0x49,0x89,0xb6,0x0d,0x10,0x3f,0x13,0x9d,0x9a,0x35,0xf1,0xc0,0xe7,0xf0,0x9b,0xe8,0x39,0xd3,0x32,0xb2,0x23,0x67,0x77,0xdb,0xbc,0x0d,0x19,0x77,0x7a,0xbe,0x54,0x56,0x64,0xec,0xb6,0x2e,0x03,0xc5
+.byte 0x35,0xda,0xf1,0xc7,0x7d,0x0c,0x5a,0x32,0xec,0x86,0xdf,0xdb,0x94,0x73,0x4e,0xe3,0x45,0xf6,0xb2,0x63,0xc4,0xb7,0x80,0x59,0x4b,0x82,0x0b,0x61,0xa0,0xd5,0x43,0x18,0x78,0x35,0x93,0xde,0x46,0xa3,0xa2,0xd5,0xa2,0x71,0xec,0x3e,0xee,0x7a,0x89,0x7f,0xe9,0x70,0xff,0xad,0xae,0xa3,0x64,0xde,0x61,0xea,0x71,0xc2,0x37,0x98,0x8a,0x33
+.byte 0xd1,0x5f,0x03,0x08,0x23,0x24,0xc7,0x6c,0x62,0x24,0x6d,0x3f,0x44,0x8e,0x7c,0x9f,0x64,0x87,0xa5,0x79,0x0b,0x16,0x7e,0x4e,0xc0,0x0e,0xb8,0x77,0x56,0x9c,0xa5,0x7d,0x2d,0x5d,0x7d,0x81,0x13,0x2c,0x08,0xd5,0x83,0x84,0x38,0xfe,0x50,0x6f,0xa7,0x30,0x1f,0x06,0xee,0xab,0x13,0xc2,0x19,0xe6,0xcf,0x7b,0x85,0xfc,0x31,0x5b,0xdf,0xb8
+.byte 0x0e,0xe8,0x72,0xba,0x97,0x03,0x25,0xbc,0xad,0x74,0x7c,0xe1,0x59,0xf7,0x08,0xc1,0xe3,0x2d,0xb1,0x05,0xe7,0x1f,0xb9,0x0f,0x09,0xcd,0xe6,0x4f,0x5a,0xf6,0xcc,0xea,0xc7,0x92,0x35,0xf5,0xbc,0x3f,0xef,0xc9,0x2b,0xb4,0xd7,0x66,0x50,0xaa,0x80,0xb9,0xaf,0x5d,0x02,0x9c,0x77,0xdf,0xc0,0xc7,0xe2,0xbf,0x7d,0xff,0x69,0x63,0x3e,0x7c
+.byte 0x91,0x94,0xae,0xa4,0x0a,0x25,0xa3,0x1f,0xf3,0xc6,0x88,0xda,0x82,0xac,0xbc,0x1f,0x8d,0x53,0xd6,0xfd,0x2b,0x5c,0x33,0x6d,0x03,0x68,0x92,0x38,0x07,0xeb,0x85,0x7f,0x55,0x89,0x17,0x58,0x7f,0xc7,0xb4,0x7a,0xff,0x15,0xe5,0xe0,0xea,0xce,0xac,0x3f,0x0f,0x09,0x25,0xfa,0x80,0xe3,0x07,0x89,0x4e,0xbf,0x7e,0xc2,0x42,0xf1,0x18,0x78
+.byte 0x05,0xe3,0x6a,0x2e,0xf7,0x2e,0xe5,0xbf,0x63,0x9e,0x48,0x69,0xe6,0x3c,0x4b,0x12,0x73,0x58,0xde,0x0c,0x73,0x27,0x9a,0x95,0xfa,0x51,0x8c,0xbb,0x74,0x31,0x53,0x4e,0x9a,0x13,0xda,0x49,0xf0,0x8b,0xb4,0xcd,0xc1,0xe9,0xaf,0xd6,0x59,0x59,0xa8,0x24,0x94,0xd9,0x4b,0xf8,0x20,0x79,0xa0,0x79,0x01,0x08,0x84,0x9b,0x04,0xe7,0xda,0x06
+.byte 0x22,0x3e,0x85,0x23,0x0c,0xa9,0xe5,0xcd,0xd3,0xc4,0x27,0x8c,0x4e,0x75,0xe4,0x60,0xb5,0xe9,0xc5,0xb7,0xb1,0x3a,0x84,0x68,0x40,0x3e,0x36,0x1b,0x9a,0x64,0x50,0x45,0x6f,0xc6,0x58,0x70,0x46,0x1a,0xca,0xf6,0x81,0x02,0xa8,0x17,0x4d,0x92,0x0d,0xae,0x88,0x1a,0xbd,0x52,0xc0,0x32,0xb1,0x2d,0x2d,0x12,0x9c,0x29,0xfa,0xa6,0x70,0x5f
+.byte 0xe7,0x0b,0xd5,0x5d,0xa5,0x49,0x9e,0x9e,0x5b,0x55,0xbc,0xce,0x5b,0xb4,0xef,0x3f,0xe4,0x7c,0x50,0xef,0x58,0xf5,0xfe,0xcc,0xf6,0xd0,0xf1,0x3a,0x0b,0xf2,0x3e,0x1c,0xce,0x22,0x7e,0x88,0x1c,0x8f,0x9a,0x69,0x76,0xa9,0xf0,0x18,0xa8,0x76,0x7f,0x0c,0xa6,0xfd,0x67,0x43,0xc7,0x43,0x67,0x98,0x6e,0x37,0xd4,0x82,0x29,0x62,0xa6,0xcf
+.byte 0x2b,0x7c,0xee,0x14,0x4d,0x2d,0x1a,0xfc,0xc6,0xaf,0x5b,0xea,0x8a,0xa8,0x9a,0x3b,0xab,0x7d,0x76,0x15,0x50,0xe8,0x95,0x31,0xc8,0x5d,0x5d,0x19,0x68,0x07,0xf5,0xb0,0x29,0x5f,0x79,0x4f,0x0d,0x2b,0xba,0x1d,0xd2,0xf2,0x83,0x50,0x89,0x0b,0x96,0x16,0xde,0x7c,0x04,0xea,0x9c,0x75,0x97,0x7e,0xd7,0x2c,0xee,0x82,0x7c,0xbf,0x0b,0x71
+.byte 0x05,0x59,0xd7,0x11,0x70,0x8e,0x41,0x62,0x91,0x38,0x3a,0x69,0x3f,0x3d,0xde,0x8e,0x03,0x0a,0xea,0xfb,0xea,0x36,0xf0,0x5c,0xb6,0xdf,0x9a,0x66,0x9e,0x64,0x43,0xaf,0xb7,0x83,0xd1,0xef,0x7c,0xb6,0x9b,0x40,0xd8,0x0f,0x0e,0x0b,0xa7,0xd0,0x98,0xca,0x8e,0x3b,0xed,0xb7,0xa5,0x19,0xca,0x67,0x30,0x87,0x17,0x0e,0xc4,0xe1,0xaa,0x6e
+.byte 0xdb,0x67,0xbd,0xf5,0xed,0x10,0x68,0xb1,0x43,0x73,0xaa,0x99,0x1a,0x83,0x0d,0x1a,0x5a,0x8b,0xc8,0xff,0xe9,0xe0,0x1c,0x15,0xda,0xb0,0x99,0x90,0xce,0x1f,0xfd,0x17,0xd2,0xfa,0x8f,0x3a,0xe8,0x1b,0xd3,0x96,0x2a,0x0d,0xa9,0x4d,0x6d,0x77,0x53,0xe8,0x8f,0xc7,0x6b,0xb4,0x3b,0x6d,0x0c,0x8e,0x35,0x67,0x09,0x6e,0x43,0x36,0x52,0x3e
+.byte 0x0e,0xf6,0x4f,0x16,0x40,0x45,0x7f,0xab,0x39,0xf2,0x23,0xfb,0x4e,0xea,0x6e,0xcf,0xa0,0xb6,0xec,0x6d,0x93,0x1b,0x6f,0x9f,0xd6,0xce,0xcd,0x1e,0x90,0x5c,0x7d,0x61,0xc4,0xae,0x02,0xb2,0x7a,0xb2,0x25,0x59,0xac,0x0a,0xcb,0xc6,0x28,0xa2,0x9c,0x7b,0x4b,0x05,0x5a,0x23,0x55,0xc8,0x9a,0x72,0xe6,0x3b,0x91,0xa2,0x9b,0x12,0x1c,0x1f
+.byte 0x4b,0x85,0x42,0x9d,0x73,0xf9,0x50,0x3e,0x12,0xc4,0x51,0xb4,0xe1,0x2a,0x08,0xfc,0xf9,0xc8,0x5a,0x53,0x79,0xcc,0xd1,0x24,0x4c,0xc1,0xf6,0xe7,0x10,0x9d,0xe6,0xce,0xcc,0xc7,0x04,0xf8,0x7a,0xd4,0x2f,0x0a,0x97,0x32,0xaf,0x38,0x77,0x97,0x78,0xc8,0xa9,0x9a,0xca,0x65,0xee,0x2b,0x07,0x0e,0xb1,0xaa,0x3c,0xee,0x03,0x85,0xf7,0x09
+.byte 0xd1,0x03,0xe5,0x4f,0x8a,0x6b,0xba,0x83,0xd2,0x6a,0x05,0xe6,0x4e,0x59,0x21,0x26,0xcc,0x8d,0x4a,0x91,0x21,0x6b,0xe5,0x7a,0x83,0xed,0x4e,0x95,0x4b,0x16,0x98,0x3f,0x2d,0x51,0xc5,0x67,0x56,0x58,0xc9,0xc3,0x32,0xff,0x91,0x9d,0x7f,0x6d,0xc7,0x8a,0x40,0x58,0x56,0x35,0xca,0xc1,0xa9,0x07,0xe2,0xc6,0xe1,0x8f,0x7b,0x7c,0x68,0x4e
+.byte 0xde,0x19,0xc8,0x9c,0x41,0x65,0x74,0x33,0xb5,0x5b,0xf7,0x47,0x91,0x51,0x41,0x56,0x54,0xaa,0x8e,0xa5,0x1f,0xdb,0x50,0xa4,0x97,0x7a,0xea,0x86,0x2e,0xfd,0xdd,0x64,0x23,0x6e,0x44,0x28,0xfb,0xae,0xe8,0xc2,0x38,0x96,0x56,0x2e,0xd8,0x7e,0x3a,0xc8,0xc6,0x7f,0x20,0x15,0xad,0x9f,0xfa,0x5c,0x55,0xf5,0xe1,0x9a,0x07,0x84,0x5b,0x81
+.byte 0x39,0x4b,0x70,0xc3,0xfd,0x2b,0xc5,0xb7,0x47,0x36,0x74,0x5a,0x85,0xaa,0x45,0x94,0x8e,0xbe,0x7f,0x6c,0x45,0xf5,0x02,0x4e,0x5f,0x16,0x04,0x7e,0xfa,0xb8,0xa9,0x38,0xc4,0xd9,0xca,0x5f,0x7a,0xe3,0x96,0x78,0x82,0xa0,0xac,0xef,0xc4,0x2a,0xb5,0xf4,0x7d,0x28,0x8c,0x25,0xba,0x4e,0xd5,0xd5,0xd1,0x24,0xc6,0x05,0xb2,0x18,0x2d,0x66
+.byte 0xea,0xe3,0x42,0x79,0x33,0x9e,0x70,0x3a,0x1b,0x5a,0x8e,0xcb,0x03,0xa8,0x43,0xf3,0xd5,0x66,0x41,0x10,0xd7,0x09,0xf0,0x28,0xe5,0x25,0xe6,0xac,0x9a,0xe6,0x34,0x36,0xfb,0xc4,0xa6,0x9a,0xd0,0x24,0x4d,0x18,0xf9,0xd1,0x8e,0xca,0x92,0x83,0x0f,0x55,0x54,0x6d,0x72,0x81,0x81,0xdb,0x72,0x1f,0xd6,0x32,0xb9,0x32,0x45,0x84,0x9c,0x66
+.byte 0x68,0x7e,0xab,0xb3,0xca,0xf5,0x4f,0xdd,0xb4,0xee,0xbb,0x05,0x70,0xbe,0x4f,0xd1,0x27,0x01,0xcc,0x7c,0x4f,0x47,0x55,0xce,0x91,0x73,0x6f,0xff,0x8d,0xfc,0x0c,0x4c,0xaa,0xfc,0xce,0x9f,0xf3,0x4a,0x46,0x92,0x89,0x84,0x8f,0x4d,0x94,0x37,0xda,0xe3,0x11,0x0d,0x63,0x60,0xcb,0x40,0x8f,0xe8,0x0f,0xf9,0xa1,0x89,0x64,0x44,0x45,0x74
+.byte 0xc5,0xa2,0x73,0x33,0x08,0xa2,0x59,0xb0,0xeb,0x7b,0x7b,0xa7,0x28,0x4c,0x13,0x6a,0x04,0x15,0x14,0xd0,0x3e,0x5e,0xec,0xe1,0x3f,0xe5,0x93,0x06,0x6b,0x60,0x50,0x1c,0x90,0xc0,0x5c,0xea,0x7e,0x58,0xf1,0xed,0xba,0x43,0x0b,0x84,0xf7,0xa4,0xbd,0x4c,0xed,0x88,0x5b,0xae,0xa2,0x0a,0xf6,0x06,0xfd,0x43,0x63,0xfe,0x8a,0x03,0x21,0x8b
+.byte 0x27,0xc6,0xef,0xa3,0xa9,0x3a,0xc1,0x8b,0x65,0x62,0x25,0x85,0xaa,0x2f,0xff,0x22,0x96,0xb7,0x5c,0x82,0xde,0x21,0x4e,0x0d,0x8d,0xd9,0x7f,0x97,0x79,0x95,0x6c,0xe6,0xfd,0xb1,0x7c,0x84,0xc8,0x73,0xbc,0x50,0x2f,0x87,0x03,0x56,0xcf,0xea,0x7f,0xed,0x17,0x7d,0xf7,0x61,0x6b,0x6f,0x5b,0xd3,0xe4,0x83,0xbd,0x8b,0xd3,0x8e,0x51,0x57
+.byte 0x3d,0xcc,0xe4,0x09,0xb9,0x73,0x1f,0xb4,0x47,0x5e,0xf2,0x10,0x3e,0xf4,0x9c,0x86,0x02,0xdf,0x3e,0x75,0x1c,0x9b,0xb5,0x0f,0x31,0xc6,0xbb,0x00,0xb4,0x8a,0x1a,0xe5,0x0d,0x9c,0x3e,0x93,0x61,0x5a,0x61,0x86,0x12,0x64,0xaa,0xfd,0xa2,0x6e,0x8f,0xcc,0xcd,0x60,0xa1,0xad,0x6d,0xdc,0xa2,0x7b,0x5a,0xe0,0xee,0x27,0x5d,0xc5,0xfe,0x1f
+.byte 0x7b,0x9f,0x33,0xf1,0xee,0x2a,0x58,0x39,0x56,0x14,0x4f,0x2f,0x11,0x26,0x6b,0x56,0x7c,0x75,0xb7,0xc3,0xa7,0xf6,0x54,0xd8,0xa7,0xbb,0x73,0xb5,0xa5,0x83,0x1e,0x65,0x7e,0xa7,0x85,0x74,0xa4,0x04,0x0e,0x26,0x01,0x88,0xbc,0x8b,0x98,0x0c,0x9b,0x74,0x22,0x44,0x16,0x16,0xed,0x94,0x81,0x81,0x13,0x26,0xc9,0x27,0xa9,0xa7,0xe0,0x45
+.byte 0x69,0x6e,0x33,0xcc,0xa3,0x15,0x10,0x99,0x84,0x06,0x95,0x00,0xbb,0xc6,0x8e,0x4e,0x37,0x1b,0x23,0xb2,0xf7,0x4d,0xd7,0x24,0x68,0x6b,0xaa,0x2e,0x57,0x8d,0xd6,0x4e,0xa2,0x69,0xd8,0x8d,0x84,0xb2,0x85,0x91,0x30,0xbf,0x41,0xab,0xcf,0x5c,0xa6,0x51,0x1e,0xf5,0x79,0x5a,0x20,0xfa,0x3d,0x0a,0xc5,0xd7,0x3f,0xa6,0xcc,0xf6,0x9b,0x76
+.byte 0xe0,0xec,0x9e,0x0b,0x23,0xe4,0x74,0x36,0x14,0x6f,0x24,0x9d,0xe7,0xb2,0x41,0xd7,0x68,0x37,0x67,0xdc,0x01,0xb1,0x20,0xf9,0x8b,0x0b,0xf5,0xa7,0x95,0x78,0xa0,0x6c,0x4b,0xc0,0x44,0x92,0x4a,0x75,0x0f,0x61,0xde,0xc3,0xc2,0x3d,0x17,0xa0,0x4d,0x57,0x8b,0x11,0x35,0xbd,0x49,0x87,0x05,0xba,0x5d,0x1f,0x76,0xd4,0x0f,0xb0,0x5b,0x5f
+.byte 0xb7,0xf8,0xcf,0x12,0x54,0x19,0x9a,0x49,0x6a,0x42,0xad,0x93,0x85,0x0b,0xe7,0x8c,0x30,0x59,0x82,0x82,0x2d,0xd9,0x89,0xf5,0x8c,0x39,0x9c,0xf5,0xcd,0x25,0x22,0x74,0xcf,0x56,0xa2,0x15,0x40,0xa6,0xa8,0xfc,0xdc,0x85,0x9e,0xab,0xd6,0x94,0x5d,0xd6,0x73,0x07,0xed,0x7b,0x76,0x11,0x67,0xf5,0x52,0xac,0x1a,0x69,0x1f,0x4a,0xa2,0xaa
+.byte 0x4d,0x11,0xe0,0xc4,0x4c,0x6e,0x9e,0x8e,0x13,0x46,0x0b,0x95,0x40,0x53,0x35,0x53,0x58,0x7f,0x81,0x5f,0x17,0xd7,0x5e,0x53,0x86,0xf3,0x1b,0x70,0xf1,0x95,0x8f,0xf6,0xd4,0x6f,0x55,0x92,0xa2,0x38,0xd3,0x43,0x6c,0x7e,0xa2,0x21,0x5b,0x18,0x11,0xdd,0x03,0x52,0xe6,0xe5,0xc0,0xc5,0x4e,0x8e,0xda,0xdb,0x91,0xcf,0xf7,0x75,0xc2,0x33
+.byte 0x69,0xd1,0xd1,0x29,0x9d,0x51,0x79,0x91,0xe4,0x58,0x05,0xa5,0xf6,0x54,0x16,0x3e,0x42,0xf3,0xc4,0x1f,0x88,0x94,0xfc,0x6b,0x53,0xb1,0xd5,0x17,0xe6,0xab,0x77,0x33,0x8a,0xd0,0x93,0x74,0x02,0xe0,0x81,0x5e,0xbe,0x2f,0x4d,0xcd,0x25,0x0b,0xd0,0x06,0xd8,0xc9,0xf9,0xcf,0x8e,0xf8,0xc3,0xe2,0x33,0x60,0xe5,0xfa,0x89,0x68,0xf8,0xb7
+.byte 0xef,0x9d,0xfc,0x9d,0x76,0x13,0x2d,0x9d,0x18,0x7d,0x05,0xb4,0xa7,0xa3,0x8a,0x91,0xe0,0x73,0x65,0x89,0xb4,0xc1,0x53,0x7c,0xdc,0xf2,0xab,0x39,0x94,0xc7,0x3d,0xf8,0x1c,0x8f,0x49,0x37,0xee,0xc1,0x19,0x84,0x15,0x3b,0x36,0xb2,0xc2,0xe1,0x16,0xe2,0xfb,0xde,0x1f,0x0e,0xa4,0xea,0x59,0x67,0x2d,0xea,0x47,0xe5,0x2c,0xd1,0xb5,0xa9
+.byte 0xbd,0x5c,0x92,0x34,0x8b,0xc5,0xab,0x4f,0x2b,0x6b,0xc4,0x8b,0xdb,0xbb,0xcb,0x86,0x34,0x35,0xa0,0x5c,0x29,0x1a,0x8b,0xce,0xdc,0xd7,0x46,0x2b,0x20,0x9d,0xea,0xa8,0x97,0x68,0x37,0x56,0x03,0x7d,0x4f,0xb6,0xfc,0x30,0x82,0x68,0xb4,0x56,0xf3,0xbe,0x58,0xcc,0x20,0xc1,0x53,0x9f,0xbb,0x0b,0x2b,0x6e,0xa0,0x2d,0xc0,0x61,0x02,0x0b
+.byte 0xf9,0x0e,0x55,0xb8,0xb8,0x23,0x6e,0x50,0xc0,0x36,0xb8,0xf6,0x5e,0xb3,0xa7,0x8f,0xf8,0x7f,0xd0,0x5d,0x0a,0xc4,0x2b,0xa9,0xd3,0x76,0xcf,0x4d,0x27,0xda,0xac,0xf3,0xb0,0xca,0x00,0xa0,0x94,0x12,0x20,0x89,0x22,0xa9,0x89,0xe4,0x23,0x71,0xe0,0xdb,0xec,0xb0,0xa9,0x2e,0x45,0xf6,0x8d,0x1e,0x4b,0x0e,0xc7,0xf8,0x40,0xd6,0xf4,0x2f
+.byte 0x80,0x3e,0xf8,0xfb,0xcf,0x7b,0x54,0xb5,0xbd,0x55,0xf2,0x37,0x46,0x9f,0x32,0x45,0x87,0xa3,0x6a,0x51,0x25,0x43,0x54,0xa2,0x92,0xc6,0xbe,0xa4,0x33,0x54,0x82,0xc7,0xf1,0xe4,0x52,0xf9,0x09,0xac,0xc3,0xb1,0x25,0x86,0xc7,0x89,0x83,0x2c,0xf6,0x35,0x9e,0xd1,0xd8,0xb1,0x71,0xed,0xfa,0xae,0x09,0x83,0xb3,0xf0,0xde,0x24,0xed,0x3c
+.byte 0xc6,0x60,0xe8,0x15,0x49,0x93,0x29,0x82,0xbf,0x1d,0x23,0x17,0x11,0xea,0xa7,0x53,0x83,0xa5,0xc1,0x9e,0x02,0x17,0x08,0x99,0xa6,0x72,0xaf,0x82,0x3f,0x0b,0x69,0xca,0xb8,0x72,0xa9,0x31,0x71,0x20,0x32,0x57,0x89,0x9b,0x16,0x92,0x54,0xc0,0x99,0x6d,0xa4,0xbf,0x5a,0xb5,0x53,0xa7,0x4c,0x69,0xd8,0xf7,0xe7,0x4c,0xc0,0x76,0xb6,0x35
+.byte 0xdd,0xe7,0xb2,0xd9,0x1c,0xd5,0xf7,0x39,0x32,0x44,0x48,0x02,0x85,0x69,0x02,0xad,0xe6,0xfc,0xbb,0x07,0x9e,0x7f,0xee,0x6d,0x07,0x12,0x21,0xeb,0x67,0x4d,0x74,0x90,0x8f,0x79,0x51,0x9d,0x8a,0x63,0x24,0xab,0x6f,0x8f,0x73,0xd3,0x91,0x68,0x15,0xa9,0x6a,0x84,0x92,0xc2,0xd4,0x4d,0xa8,0xe1,0x4f,0xa2,0x1e,0x34,0xa3,0x9a,0x04,0xf2
+.byte 0xfc,0xc4,0xe7,0xd0,0x52,0xc4,0x49,0x51,0x8e,0x7d,0xaa,0x74,0xaa,0x08,0xbe,0x08,0xf6,0xe4,0xc1,0x61,0xff,0x2e,0x9c,0x17,0x61,0xb6,0x01,0x44,0x18,0xe8,0x5e,0xa9,0xfb,0x02,0x21,0xbb,0x08,0x5c,0xe0,0xd3,0x0c,0x98,0xc5,0x93,0x2a,0x1c,0x69,0xf3,0xe8,0x8b,0x36,0xa0,0x9d,0x1e,0xda,0x18,0x14,0x06,0x7f,0x75,0x3d,0x42,0x92,0x5a
+.byte 0xb9,0xb7,0xc0,0xc0,0xb0,0xc5,0xa9,0xb2,0x67,0x24,0xc2,0x28,0x29,0xcb,0x78,0x8e,0xf3,0xd1,0x37,0x63,0xca,0xc8,0x9a,0x1b,0x38,0xa5,0x9f,0x0e,0x0d,0x26,0x5b,0xfe,0x2f,0xdf,0x4f,0xb9,0x21,0x8c,0xc8,0xe0,0x9f,0x71,0xb9,0xc3,0x6c,0xd8,0xd3,0x2f,0xe4,0x3c,0x67,0x35,0x45,0x74,0x7f,0xcb,0x13,0xda,0x64,0x47,0xff,0x6f,0x05,0xf0
+.byte 0x87,0x8d,0x0d,0x1f,0x10,0x47,0x0e,0xf6,0x9d,0x89,0x6d,0x79,0x04,0x77,0x8a,0x6c,0xeb,0x7d,0x9b,0xd7,0x65,0x82,0xa8,0x95,0xa2,0x8c,0x02,0x91,0x0d,0xf2,0xe8,0x65,0x60,0x0d,0xb6,0x1d,0xf4,0xf3,0x41,0x75,0x33,0x21,0x13,0x22,0x93,0x01,0x2f,0x11,0xe7,0xed,0x45,0x56,0x90,0xec,0x0b,0x99,0x8e,0x84,0xc8,0x76,0x31,0x1d,0xb9,0xcb
+.byte 0x87,0x3f,0x5f,0x39,0xeb,0xe8,0x9e,0x5e,0x96,0x9e,0x42,0x64,0xf3,0xef,0x00,0x1f,0x2a,0x6c,0x18,0x67,0xbd,0xdd,0xf9,0x65,0x11,0x1b,0x9c,0xd7,0xf3,0x3d,0xb2,0x6f,0x88,0xf7,0xd2,0x26,0x06,0xef,0xc8,0x23,0x3f,0x46,0x5d,0xf0,0x96,0x40,0xb1,0xdd,0xad,0xe4,0xee,0xb6,0xc2,0x67,0x18,0x46,0x67,0xc4,0xa5,0x7e,0x3e,0xce,0x72,0x47
+.byte 0xca,0xc3,0xa7,0x94,0x56,0xe2,0x23,0x03,0xcf,0xd0,0x18,0x55,0x30,0xe3,0x14,0x00,0xda,0x0f,0xaa,0x7f,0x20,0xaf,0x3b,0x24,0x43,0x7a,0xaa,0xd4,0x12,0x42,0x10,0xe4,0x44,0x8a,0x7f,0xf1,0x74,0x9d,0xe0,0x28,0x60,0xce,0xdd,0x04,0x96,0x03,0x80,0xcb,0xaa,0xa9,0xb5,0xc7,0xb4,0xbb,0xc7,0x9a,0x93,0xd8,0xff,0x3b,0x8f,0x1f,0xb7,0xce
+.byte 0xed,0xbc,0xde,0x9f,0x9e,0x56,0x96,0x65,0xba,0xe7,0x89,0x03,0xb2,0xbd,0xfe,0xa7,0x02,0xeb,0x33,0x9a,0x8b,0x5b,0x36,0x64,0x17,0x9f,0xd2,0xe4,0x75,0xb5,0xfb,0x21,0x03,0xa4,0xe7,0xb4,0x49,0x72,0xfd,0xf3,0x1e,0x5f,0xdb,0xe5,0x6c,0x92,0x51,0xe7,0x91,0x55,0xb7,0x82,0x18,0x05,0xc3,0x2c,0xf1,0x23,0x61,0x36,0xad,0x80,0x1b,0xde
+.byte 0xe1,0x51,0x4e,0x51,0xa1,0xf6,0x5a,0xb9,0x03,0x48,0xa7,0x12,0x88,0x63,0x30,0xff,0x48,0xfc,0x92,0x30,0x9a,0xca,0x08,0x1b,0x64,0xa9,0x74,0x2a,0x64,0x42,0x7d,0xa9,0xa4,0x9d,0xcb,0x59,0x71,0x53,0xc1,0xa8,0xa6,0xb5,0x47,0xf9,0x87,0xb5,0x41,0x58,0x92,0x14,0xf7,0xbd,0x10,0x45,0x37,0x20,0x1d,0x5b,0x42,0x04,0xed,0x69,0x4c,0xa5
+.byte 0xdc,0x2a,0x58,0xba,0x00,0x1e,0x05,0x9c,0x3c,0xbf,0x65,0x76,0xd1,0x11,0xe0,0x15,0x22,0xb0,0x2a,0x53,0x32,0x0f,0x6e,0x08,0x4e,0x27,0xc2,0x71,0x14,0x20,0xee,0xb0,0x0b,0x60,0xef,0x54,0xae,0x2c,0xe0,0x1d,0x30,0xac,0x0d,0x3a,0x93,0x15,0x0a,0xe7,0x14,0xf3,0x1a,0x67,0xb1,0x43,0x85,0xbd,0x06,0x53,0xab,0x6d,0x5d,0xe7,0xe3,0x82
+.byte 0xb8,0x39,0x35,0x10,0x87,0xe7,0x90,0x4d,0x9c,0x6f,0x83,0xad,0xa2,0x43,0x7a,0x5d,0xc1,0x8a,0x39,0xa3,0xa6,0xda,0x48,0x5c,0x9b,0xe1,0x0d,0x69,0xfc,0x87,0x18,0xdd,0x34,0x9a,0xb4,0x9c,0x04,0x0d,0x49,0x18,0x3e,0x38,0xd8,0x01,0x67,0xb1,0x7f,0x6b,0xb5,0xfe,0x58,0x1c,0x64,0x11,0x10,0x6b,0xc1,0xca,0x56,0xe3,0x12,0x8c,0xb4,0xac
+.byte 0x03,0xbd,0xc1,0x54,0xbe,0x5c,0x70,0x6f,0xdd,0x73,0xa3,0x84,0xcd,0x0b,0x1b,0xbf,0x05,0xac,0x27,0x11,0xe8,0x5f,0xc3,0xb9,0x68,0xc2,0xe9,0x3f,0x5a,0x9b,0x28,0xca,0x65,0x5e,0x66,0x4e,0x50,0xa9,0x81,0xb1,0x10,0xc1,0x2c,0xa5,0x62,0xc8,0x52,0x07,0xa5,0xa1,0x99,0x16,0x7b,0x08,0xa4,0x1e,0xf4,0x50,0x8f,0xb2,0x42,0xa5,0x19,0xa2
+.byte 0x34,0x91,0xcf,0xa7,0x5e,0x73,0x6b,0xc2,0xa3,0x4d,0xdd,0x7c,0x26,0x46,0x34,0xe6,0x5d,0x54,0x52,0xe3,0x1e,0xc1,0x10,0x36,0x7c,0xc9,0xd2,0x1e,0xca,0xeb,0x80,0xc5,0x3c,0x04,0xf6,0xb7,0x09,0xd4,0x3e,0x67,0xc3,0xf6,0x6b,0xd4,0x60,0x00,0xc9,0x68,0x17,0x39,0xbc,0xcd,0x14,0x32,0xfc,0x33,0xa4,0xb0,0x6f,0x12,0x6b,0x5f,0xe2,0x15
+.byte 0x1c,0x9a,0x15,0x4f,0x0b,0x7d,0x4c,0xa0,0x89,0x40,0xb3,0x0e,0x84,0x90,0xb3,0xc6,0x3e,0xa5,0x0b,0x81,0x66,0x14,0x5f,0x8d,0xe0,0xbf,0xf7,0x9d,0xa4,0x4e,0x69,0xd5,0xac,0x0f,0x6c,0x29,0x94,0x8f,0x3b,0x4b,0xed,0x5b,0x6e,0xe1,0x58,0x5d,0x32,0x19,0xe6,0xbd,0xfb,0xd5,0xb7,0x0f,0x72,0x0e,0x5b,0x14,0xd3,0xf3,0x09,0xa8,0xea,0xf7
+.byte 0x98,0x2f,0x42,0x07,0x8e,0x72,0x27,0x53,0x8d,0x0b,0xea,0x74,0x38,0xbc,0xaf,0xb8,0x76,0x65,0x97,0xda,0xa7,0x06,0x37,0x29,0x09,0xbe,0xaa,0xe6,0xf7,0xb6,0xb1,0x5f,0x71,0x1f,0x5d,0x14,0x47,0xdf,0x20,0xa3,0x94,0x93,0x7d,0x21,0xe6,0x22,0x7e,0x38,0x1a,0x26,0x83,0xc7,0x32,0xdf,0x58,0xcd,0xab,0x67,0xae,0x94,0xa5,0x68,0xcb,0xe3
+.byte 0x51,0x70,0xc0,0xc4,0x41,0x9f,0xca,0x05,0xc9,0x51,0x2a,0x8e,0x53,0x89,0x3f,0x52,0x6b,0x29,0x64,0xa8,0xb8,0xdf,0x02,0xb1,0x41,0x4e,0x36,0x42,0x32,0xa8,0xc0,0x91,0xf0,0x69,0x69,0x55,0x99,0xb7,0x78,0x4f,0x79,0x5b,0xc5,0xab,0xc6,0xed,0x15,0x88,0x6b,0x94,0x0a,0xdd,0xea,0x47,0xf9,0x0e,0xb8,0x89,0x15,0x68,0x3e,0xc0,0x50,0xf8
+.byte 0xa1,0x2d,0x2a,0x11,0x8a,0xc5,0xb0,0x09,0x4f,0x7d,0x90,0x5f,0x49,0x35,0xe9,0xdd,0xfc,0xac,0xea,0x1b,0x20,0xad,0xd2,0xe6,0xb6,0xbf,0x3c,0x0e,0x7b,0xdf,0x2f,0x55,0x58,0x0e,0x25,0x53,0x62,0xd3,0x73,0xb8,0x3e,0x12,0x91,0xcb,0x23,0xf2,0xc0,0x5d,0x74,0x2b,0x51,0xcc,0xa2,0xb1,0x5a,0xd2,0xf4,0x9b,0xc9,0xa5,0x83,0x2b,0x5a,0x8a
+.byte 0x0b,0xe9,0x09,0x59,0xb5,0x44,0xc9,0x55,0xcc,0xbd,0xb6,0x69,0x66,0x9a,0x0c,0x15,0xae,0x76,0x35,0xbe,0xe9,0x37,0x70,0x9e,0xdc,0x97,0x5a,0x82,0x97,0xf6,0x1a,0x45,0xd7,0x27,0xfe,0x1f,0xc3,0x7c,0x3a,0x52,0x85,0x12,0x73,0x8a,0x8e,0x07,0xec,0x1f,0x59,0x3f,0xb0,0x32,0x07,0x92,0x3e,0x81,0xe0,0x7a,0x9a,0xc9,0x91,0xca,0x84,0xf1
+.byte 0xe1,0x32,0x57,0x0a,0x3c,0x9a,0x20,0xa8,0xbe,0x84,0x91,0x44,0x66,0x81,0xdd,0x12,0xa8,0x46,0x15,0x18,0xfc,0xae,0x5e,0x9a,0xf3,0xd9,0xb9,0x6a,0xbb,0x90,0x1c,0x61,0x7f,0x61,0x2c,0xa7,0x12,0x1e,0x05,0xee,0x0c,0x66,0x9e,0xc2,0xc8,0xb9,0xe0,0xc9,0xc4,0xb9,0xee,0x3a,0x6f,0x97,0x2a,0x5e,0xcb,0xd9,0xff,0xd1,0x37,0x5e,0xa0,0x03
+.byte 0x70,0xc1,0x2f,0x15,0xf9,0xf7,0x90,0xbe,0x23,0xe7,0x7c,0x90,0x4b,0xe4,0x5a,0x01,0x65,0x27,0x2d,0x4b,0xd3,0xa8,0x8c,0x1d,0x2d,0x5d,0x48,0xac,0x6b,0x59,0xc9,0x78,0xb2,0xee,0xda,0x6e,0xa8,0x68,0x08,0x99,0x22,0x25,0xfe,0xc2,0xb8,0x83,0xa8,0x08,0xbb,0x6e,0x64,0xae,0x2e,0xbb,0x93,0xaf,0xdc,0xeb,0xa3,0x11,0xa7,0x5d,0x3f,0x22
+.byte 0xf1,0x95,0x27,0xf6,0xd6,0xa6,0xc3,0x56,0x0a,0xd0,0x17,0x43,0x35,0xd2,0xe7,0xa4,0x8f,0x6c,0x1c,0xc4,0x4d,0xa7,0x3b,0xb8,0x7f,0x0c,0xa0,0xd6,0x56,0x82,0xf4,0x16,0x96,0xcd,0xcf,0x6f,0x78,0xec,0xbb,0xb2,0xdb,0x67,0xcf,0x78,0x0c,0x22,0x1d,0x72,0x21,0x8e,0x40,0x85,0xa5,0x07,0x3b,0x0e,0xfa,0x44,0xb0,0xfe,0xbf,0x54,0x80,0x41
+.byte 0xdc,0xa7,0xc7,0xdb,0xaa,0x04,0x42,0x0d,0x42,0x03,0x17,0xc8,0x57,0xd7,0x08,0x34,0x37,0xf5,0x9a,0x90,0x30,0x43,0x54,0x5b,0x58,0x50,0x4e,0xc4,0x56,0x57,0xff,0xf0,0x05,0x82,0xca,0x2e,0x20,0xb0,0xbd,0xd0,0x00,0x7d,0x60,0x3f,0xdb,0x9c,0x08,0x7e,0x21,0x63,0xbc,0x89,0xbf,0xcb,0xcc,0x36,0xb5,0x36,0x41,0xb4,0x9c,0x5c,0x9d,0xa6
+.byte 0x74,0xa4,0x4f,0x6a,0xcb,0x63,0x51,0xb1,0x92,0xa0,0x03,0x9b,0x88,0x03,0xd5,0x82,0x30,0xfb,0x69,0x49,0x20,0xb0,0x37,0x50,0xe4,0x02,0x9e,0x11,0x09,0x20,0x1a,0x41,0x8d,0xdd,0xa0,0x18,0xb4,0x74,0x04,0x1e,0x3a,0xea,0xb4,0x28,0x01,0x7f,0x0b,0x73,0x27,0x5f,0x76,0x2e,0x71,0xfa,0x50,0x1b,0x43,0x8d,0x0d,0x6c,0x87,0xc3,0x10,0x7b
+.byte 0x42,0x7d,0x17,0xa6,0x00,0x5b,0x83,0x6c,0x7b,0x7f,0x72,0xd8,0x90,0x4d,0x7f,0x54,0x72,0x17,0x21,0xe4,0x45,0x74,0x20,0x53,0x30,0x46,0x90,0xbf,0x2f,0xac,0x01,0xbd,0x40,0xa9,0xc5,0xbe,0xbd,0x9b,0x59,0x62,0x03,0x30,0x80,0xe3,0x8e,0x23,0x7b,0x2d,0x63,0x4f,0x30,0xe3,0xb8,0x56,0x87,0x57,0x43,0xdc,0x6a,0x3c,0x13,0xed,0x93,0xc9
+.byte 0x1a,0x1b,0xea,0x38,0x67,0x33,0x7f,0x11,0x5c,0x96,0x20,0x4d,0xf6,0x82,0x51,0x45,0xca,0x20,0xfd,0x59,0xef,0x4c,0xb4,0xb0,0xb2,0x0f,0xdb,0x4c,0x00,0x7a,0x18,0x58,0xb0,0xd3,0x65,0x73,0x42,0xe5,0x05,0x76,0xd7,0xa2,0x1e,0x9f,0x59,0xc0,0xd0,0x76,0x29,0x1b,0x12,0x29,0x9b,0xe4,0x7d,0x45,0x13,0xb4,0x57,0xf2,0x0b,0xd1,0xb5,0x60
+.byte 0x6d,0x15,0x0b,0xca,0x5e,0xe4,0x80,0xda,0x56,0x95,0x41,0x18,0x54,0xa7,0xad,0x40,0xe5,0xd7,0xa7,0x3e,0xf7,0x73,0x40,0x70,0xb3,0x23,0xdb,0x22,0x62,0xc7,0x44,0xfb,0x64,0x18,0x18,0x05,0x84,0x07,0x68,0x06,0x7f,0xb9,0xc3,0xf9,0x55,0xe2,0x0d,0x37,0x51,0x34,0xc3,0x55,0x3c,0x29,0x5d,0x1d,0x27,0x77,0xd3,0xe1,0x6a,0x60,0x9f,0x10
+.byte 0xef,0xb1,0x93,0xbf,0x2a,0xb7,0xe8,0x42,0x4d,0xfd,0xa9,0xa9,0x2f,0xb6,0x07,0x5b,0xe8,0xf7,0xd7,0x10,0x47,0x71,0x56,0xba,0x11,0x11,0x32,0xc4,0x22,0xf4,0x12,0x6f,0xc3,0xef,0x81,0xc5,0x82,0xb4,0x1b,0x99,0xbb,0x1a,0x63,0x6b,0x3a,0x70,0x4f,0xec,0x2c,0xf9,0xde,0x1a,0x2e,0x62,0x27,0x1c,0x81,0x21,0x30,0x08,0x30,0xf6,0xf5,0xc1
+.byte 0x6d,0x0b,0xeb,0x34,0xd9,0x3a,0xa2,0xa2,0xc6,0x17,0x60,0x85,0x65,0x43,0xd6,0x3d,0x71,0xac,0xc2,0xaf,0x2b,0x9e,0x62,0xf2,0x08,0x47,0x6f,0x42,0xa8,0x21,0xad,0x42,0x98,0xa0,0xef,0xdf,0xd8,0xda,0x10,0xad,0xf7,0xe5,0xf9,0x22,0x89,0x44,0xbf,0x86,0x86,0x2b,0x02,0xd1,0x9e,0x8f,0xb7,0x10,0x63,0xb1,0xcc,0x40,0x6b,0xa3,0x8e,0x09
+.byte 0xb8,0xe3,0x77,0x3c,0xde,0x36,0x7a,0xb7,0x78,0x4f,0x99,0x5d,0x9a,0x9e,0x19,0x2d,0xb5,0xd9,0x9c,0x95,0x1f,0xa1,0xcc,0x61,0x31,0x1c,0x96,0xe5,0xca,0xeb,0x26,0x34,0xa4,0x63,0x5c,0x7c,0x0f,0x23,0xd1,0xe1,0x09,0xf4,0xab,0xf6,0x73,0x2f,0x8a,0x62,0xf0,0xd3,0x8c,0x44,0xe5,0xe9,0x9d,0x58,0x71,0xfa,0xf5,0x39,0xa5,0x6f,0xf7,0x04
+.byte 0x43,0x0a,0x78,0x54,0xfb,0xa7,0x66,0x57,0x1f,0x61,0xd6,0xda,0xff,0x4f,0x32,0x9d,0x80,0x6b,0x77,0xed,0xda,0xaf,0xbc,0x9e,0xea,0x77,0x04,0xf3,0x47,0x96,0xd1,0x44,0x8e,0xca,0xfe,0xb0,0xa3,0xa6,0x1d,0x8d,0xa4,0xb5,0x8c,0x35,0x28,0xf3,0xaa,0xab,0x28,0x1e,0xc9,0x94,0x12,0x07,0xc6,0xea,0x23,0xf9,0x69,0xc3,0x14,0x27,0xcc,0x55
+.byte 0x27,0x0b,0x27,0x64,0x23,0x38,0x05,0xd9,0xb4,0xf7,0x00,0xf3,0x02,0xae,0xc8,0x5a,0xbd,0x2f,0x20,0xd5,0x45,0xa6,0x09,0x6f,0x1a,0x09,0xb7,0xe7,0x6f,0xf6,0xa6,0x6f,0xc7,0x03,0x4e,0xa3,0x72,0xb5,0xfc,0x17,0xcf,0x1e,0x64,0x8b,0xc4,0xa2,0xba,0x83,0x0e,0x2a,0x11,0xba,0x71,0xe0,0x1c,0x9f,0x70,0x6e,0xf4,0xd9,0x47,0x31,0xf7,0xaf
+.byte 0xf7,0x1a,0xe7,0xc1,0xe9,0x66,0xa4,0x48,0xd4,0x25,0x8b,0xf7,0x6f,0x33,0x72,0xff,0x93,0x2e,0xcd,0xc7,0xae,0x3b,0x71,0x3f,0x84,0x7f,0xe6,0xb5,0x58,0x4f,0x95,0x34,0xe7,0x89,0x10,0xd3,0x2b,0x5c,0x30,0x9b,0xd3,0xef,0x98,0xf3,0x33,0x0e,0x6d,0x5f,0x7e,0xba,0x55,0x7a,0xb6,0xf3,0xb6,0xcd,0xa8,0x10,0x68,0x85,0x6f,0xea,0x54,0xc3
+.byte 0x66,0x51,0x5a,0xfc,0x11,0x83,0x9e,0x68,0x95,0xdb,0xec,0x74,0xf0,0x86,0x4a,0x90,0x24,0x66,0xf2,0x61,0x40,0x2e,0x3b,0x53,0xea,0xc1,0x3e,0x1c,0x69,0xaf,0x5f,0x04,0xb5,0xbd,0x3d,0x44,0x1c,0xc6,0x49,0x65,0xf6,0x78,0xfd,0x69,0x49,0x95,0x96,0xa1,0xa0,0xa9,0x78,0x1a,0xf6,0x0f,0xe9,0x52,0x93,0x9c,0x96,0x6c,0x5e,0x67,0x63,0x2d
+.byte 0x18,0x22,0x2a,0xcc,0x7f,0x2f,0xd3,0x72,0x82,0x98,0xae,0xb0,0x2b,0xa6,0x96,0x41,0x25,0x47,0x3c,0x92,0xc5,0x0f,0x2c,0xd4,0x43,0x09,0x0b,0x94,0x73,0x73,0x29,0xc2,0x8a,0xa3,0xcc,0x8d,0xed,0x40,0x6d,0x40,0x18,0x7c,0x32,0x1e,0xe1,0x4e,0x26,0xa7,0xa4,0xd5,0xcb,0xfa,0x90,0xba,0xb2,0x04,0x1d,0x5d,0xbe,0x32,0x6c,0x71,0x09,0x51
+.byte 0xdb,0xe3,0xb0,0xe1,0x34,0x74,0xa3,0x2b,0xf2,0xcb,0x9e,0xc0,0xae,0x88,0x40,0x90,0xb6,0x22,0xc8,0xac,0xff,0x45,0xc6,0xfa,0xce,0x0f,0x03,0x9d,0xc0,0xb2,0x2e,0xdb,0x1e,0x6c,0xa5,0xbe,0xb5,0xb3,0xaa,0xd5,0x2d,0x06,0x4d,0x29,0xa3,0xbe,0x25,0x5f,0x21,0x42,0x8d,0x27,0xaa,0x6f,0x59,0x88,0x61,0x4d,0x72,0x9f,0x64,0xfc,0x07,0xaf
+.byte 0xeb,0x02,0x5e,0xb9,0x1f,0xfe,0x1a,0x67,0x10,0x35,0xe9,0x9f,0x5f,0x9c,0x8d,0x4a,0xb3,0x10,0x99,0x8d,0x5b,0x9c,0x8b,0x8a,0x0c,0x02,0x8b,0x44,0x1a,0xaa,0xe7,0x14,0x05,0x3d,0x9e,0x62,0xfc,0x76,0x49,0x56,0x46,0xae,0xcc,0x0e,0x47,0x58,0x4d,0x94,0x33,0x4d,0x23,0x24,0x44,0x52,0x2e,0x18,0xf7,0x53,0x6b,0x24,0x67,0xb8,0x88,0x46
+.byte 0x70,0xc8,0xcb,0x60,0xac,0x70,0x85,0xdd,0x00,0xa1,0x5d,0xbb,0x94,0x07,0x0a,0xb6,0x1c,0x88,0x59,0xa7,0x88,0x7e,0x1e,0xc9,0x1d,0x7c,0xa0,0x1c,0xad,0xe4,0xa5,0x36,0xa5,0x35,0xe8,0xda,0x27,0x15,0xbc,0x7b,0x1e,0x8a,0x33,0x74,0x4b,0xc1,0xc7,0x9d,0xa9,0x21,0x98,0x02,0xe5,0xf4,0x8b,0x8e,0x2d,0x64,0x81,0xea,0xa6,0xbe,0xe2,0x05
+.byte 0x16,0xba,0xac,0x75,0x79,0xa4,0xc0,0xd3,0x9d,0xe0,0x25,0x63,0x22,0xb3,0x9c,0xee,0x04,0x8f,0x60,0xab,0x52,0x43,0x05,0x16,0xd4,0xb3,0x88,0xe8,0x68,0xc3,0x81,0x94,0xc4,0xee,0x13,0xaf,0xdd,0x36,0x23,0xe6,0x78,0xc9,0xf6,0x42,0xf0,0xf7,0x89,0x64,0x79,0x13,0xe8,0xed,0x50,0x03,0x16,0x78,0x6d,0xf4,0xdf,0x85,0x2e,0x4e,0x8f,0x2c
+.byte 0x5b,0xfe,0x4c,0xf2,0x49,0xde,0xf2,0xa4,0x96,0xe0,0x8a,0x25,0xc8,0x6d,0x22,0xff,0xab,0xfc,0x18,0xe8,0x7f,0xd5,0xc1,0x7e,0x44,0x8e,0x21,0xb4,0xc8,0x79,0xc0,0x55,0xaa,0xb7,0x28,0xa1,0x3a,0xbd,0xc2,0x1d,0xf8,0x87,0xf9,0x35,0x30,0x25,0xb2,0xaa,0x8f,0x3c,0x0d,0x64,0xf2,0xd1,0xa0,0x51,0xbf,0x9b,0x9a,0x9a,0x9c,0x18,0x43,0xea
+.byte 0xd2,0x54,0x50,0xe0,0xca,0x1a,0x29,0x16,0x9f,0x49,0x47,0x56,0x65,0x21,0x0f,0xb0,0x53,0x41,0xe3,0xec,0xe0,0x15,0xcb,0xd0,0x61,0x05,0x67,0xd6,0x02,0x1a,0x31,0x80,0xa4,0x9f,0xf5,0x9b,0x28,0xcd,0x43,0xd5,0x70,0x05,0x67,0xe8,0x76,0xb7,0x99,0x98,0x0a,0xd6,0x27,0xe9,0xfb,0x62,0xff,0x66,0x47,0xf7,0xbe,0x5e,0x35,0xa0,0x3b,0x56
+.byte 0x58,0x78,0x9b,0x9c,0x5b,0x9f,0xf5,0x6b,0x1a,0x6a,0xfd,0x8e,0xe3,0xd9,0xa2,0x8b,0x2e,0xef,0xc7,0xd3,0x74,0xb1,0xea,0x6a,0x03,0x8b,0xe2,0x78,0xbe,0xf1,0x75,0x7f,0x02,0x03,0xbc,0xd3,0x15,0x2c,0x87,0x01,0x95,0xa6,0x87,0x2d,0xf8,0x63,0xfe,0x33,0x8f,0xc5,0xc9,0x0a,0x06,0x79,0x93,0x46,0xd7,0x0b,0x61,0x06,0x68,0xae,0x9b,0x46
+.byte 0x6f,0x9e,0x1b,0x21,0x58,0xc1,0x72,0xa9,0x05,0xa7,0xaa,0x88,0xee,0xed,0x8d,0x7f,0x55,0x3b,0xb8,0xb8,0xf8,0x42,0x26,0x4a,0x78,0xe3,0x17,0xe8,0xac,0xb3,0xdb,0x9b,0x90,0x7d,0x8d,0x65,0x00,0x39,0x40,0xc2,0xe2,0x9c,0xc6,0x16,0x35,0x54,0x64,0x09,0xc8,0xc7,0x08,0x77,0x90,0x9d,0xb4,0xd4,0xe1,0x36,0xd4,0x5e,0x63,0xb0,0xba,0x81
+.byte 0x0c,0x4e,0x24,0x20,0xc0,0x7f,0xfc,0x02,0x3d,0x83,0x60,0x8a,0xf5,0xff,0x87,0x60,0x9c,0xd5,0xc0,0x94,0x64,0xe2,0x3f,0xeb,0x9a,0xe5,0xb6,0x50,0x13,0x36,0xf4,0x96,0x5d,0xf4,0xb5,0xab,0xa4,0x28,0x17,0x38,0x7f,0xca,0xf7,0x0c,0xcf,0xae,0xf8,0xef,0x41,0x6d,0x9c,0xa1,0x53,0x33,0xcb,0x8d,0x21,0xab,0x3a,0x8c,0x72,0x8d,0xf3,0xf2
+.byte 0x05,0x69,0xf5,0xe8,0x6b,0x5b,0x42,0x85,0xb1,0x2e,0x6f,0xf8,0x62,0x00,0x1c,0x48,0x6c,0x85,0x72,0x93,0x34,0x67,0x80,0xe7,0x2a,0xfe,0xcf,0x54,0xc6,0x94,0xf2,0x5a,0x48,0xab,0x40,0x52,0x66,0x7d,0x7a,0x75,0x68,0x77,0xfd,0xb2,0xdd,0xb1,0xdb,0x72,0x50,0x31,0x53,0x24,0xbd,0xb0,0x6e,0x1f,0xbd,0xa6,0x90,0x67,0x07,0x1d,0x31,0xf3
+.byte 0x8c,0x82,0xf7,0x53,0x85,0x54,0x64,0x7c,0x76,0x7b,0x5f,0xaa,0xe0,0xe0,0x36,0xa4,0x13,0xb3,0x0b,0x99,0x09,0xfe,0xed,0xbb,0x81,0x4b,0xb3,0x16,0x45,0x2e,0x3a,0xfe,0x60,0x9c,0xdc,0xcb,0x00,0x5a,0x41,0xc4,0x80,0x3c,0x9d,0x15,0x05,0xfa,0x5e,0x37,0x64,0x89,0x9c,0x2d,0xb8,0xf7,0xbc,0x35,0x8c,0x49,0xfe,0x0a,0x43,0x1a,0x59,0xaf
+.byte 0x1e,0x50,0x08,0x0f,0x2d,0xb8,0x5d,0x63,0x7f,0x95,0x6a,0xe6,0xad,0x88,0xc3,0xac,0x05,0x14,0x44,0xb0,0x70,0x83,0x5f,0x94,0x45,0x3d,0xe5,0xbd,0xb8,0x92,0x28,0x20,0xd5,0xa0,0x83,0xd2,0xe2,0x41,0x71,0x27,0x29,0x1b,0x2a,0x3a,0x08,0xca,0x75,0xec,0x16,0x4a,0xcf,0x39,0xed,0xbe,0x2a,0x26,0x9b,0xa3,0x26,0xc6,0x89,0xf2,0xc6,0x8d
+.byte 0x49,0x3a,0xfe,0xda,0x16,0x54,0x55,0x7e,0x7f,0x65,0x65,0xd2,0x16,0xdd,0xe2,0xa3,0x86,0x7a,0x69,0x82,0x99,0x58,0x45,0x16,0x4c,0x69,0xff,0x72,0xf2,0xbc,0xbb,0xdd,0xe1,0xb4,0x56,0xcf,0xc0,0x84,0xd6,0x2c,0xd8,0xce,0xf4,0x67,0xd8,0x1d,0xb7,0x77,0x6d,0x96,0xf4,0x28,0x7a,0x33,0x03,0x97,0x72,0x37,0xd9,0x35,0xcf,0x20,0x28,0xc2
+.byte 0xc4,0xea,0xf9,0x99,0x89,0xe0,0xcc,0x3d,0xec,0x2c,0xbf,0x06,0x78,0x91,0x1b,0x55,0x1b,0x51,0x9b,0xbe,0xf7,0x4a,0xf8,0x9f,0x46,0xab,0xee,0x5d,0x4e,0x29,0x36,0xf3,0xb9,0xa7,0x85,0x9b,0xf7,0xa1,0x9e,0x2a,0xbb,0xb3,0x0a,0x61,0xb5,0x0f,0x79,0xf4,0xe2,0xd2,0x2c,0x15,0xf7,0x4f,0xca,0xa9,0x46,0x25,0x1c,0xdc,0xfa,0x0f,0x9e,0xfa
+.byte 0xf5,0xb8,0x54,0x7a,0xe3,0x98,0x3c,0x3b,0x85,0xf8,0xb3,0x7c,0x70,0x40,0x86,0x2a,0x66,0xd1,0x4d,0x83,0x38,0xc2,0x24,0x8e,0x30,0xc0,0x9e,0x54,0x4c,0x7a,0x62,0x9a,0x55,0x8e,0x11,0x02,0xef,0x30,0x08,0x5c,0xf3,0x57,0xa7,0xbe,0x32,0x04,0xab,0xb1,0x3a,0x51,0x6e,0xcd,0x6f,0xc1,0xd8,0xd0,0x7d,0x4f,0x1b,0xa9,0x1e,0x12,0x92,0x94
+.byte 0xd7,0x40,0xa9,0x99,0x70,0x06,0xcb,0x46,0xa5,0xe0,0x77,0xbe,0x6d,0x48,0xab,0x67,0x4e,0xa7,0x0e,0xfe,0x1f,0x53,0x24,0xbc,0x89,0xcb,0x70,0xac,0x05,0xa2,0xf4,0xa3,0x44,0xde,0xcb,0x18,0x95,0x78,0x70,0x0f,0x69,0xf0,0x5e,0xbd,0xe7,0xfc,0xd3,0x17,0x3e,0x18,0xb0,0x2f,0xa6,0xfe,0x82,0x81,0xe7,0x74,0x44,0xfb,0x43,0x5e,0xda,0xf4
+.byte 0xfb,0xfe,0x5c,0xb4,0x3c,0x1d,0xea,0x0d,0x2d,0xdb,0xee,0x1f,0xc5,0xbd,0xb2,0xa0,0x52,0x76,0x9e,0xad,0xfa,0x19,0x37,0xb0,0x15,0x53,0x82,0x25,0x86,0xd9,0xce,0x99,0x84,0x67,0x5f,0x57,0xb2,0x6f,0x99,0xa4,0x56,0xb5,0x01,0x4f,0xdf,0xa2,0xca,0x8c,0x23,0x51,0xd3,0xc7,0x72,0x9b,0x90,0x72,0x29,0x0c,0xca,0x86,0xff,0xc3,0xd9,0x9e
+.byte 0x87,0xe4,0x8d,0xc6,0xac,0xba,0xfb,0x73,0xa9,0xcd,0x5d,0x16,0xfc,0x12,0xea,0x30,0xd5,0x7d,0x7b,0x16,0xa6,0x2c,0xeb,0x3c,0x3e,0x46,0x7c,0xee,0x03,0xd6,0x7a,0xe8,0x88,0x1c,0x17,0xa9,0x08,0xe9,0xd5,0x38,0x59,0x54,0x0b,0xb0,0x77,0x1b,0x76,0x09,0x53,0xca,0x38,0x12,0xd1,0xb5,0x2c,0xe3,0xd6,0xa0,0xca,0x9f,0x65,0x56,0xea,0x95
+.byte 0xab,0xc1,0xf4,0x98,0xaf,0x1a,0xe7,0x2b,0x1e,0x8d,0x75,0x43,0x43,0x9f,0x42,0x5c,0x2c,0xa5,0xd7,0x9a,0xcd,0xc2,0xab,0xd9,0x1f,0x1f,0xde,0x8a,0x3e,0xf8,0x0f,0x56,0x8a,0x01,0xde,0x47,0x41,0xd8,0xa0,0xc8,0x32,0x4d,0xa3,0x75,0x80,0x87,0xb1,0x1e,0x05,0x06,0x5e,0x2c,0x9a,0x7b,0xd3,0x22,0xe0,0x53,0x8f,0x4f,0x35,0x5f,0x46,0x3a
+.byte 0xb2,0xfe,0x62,0x44,0x54,0x38,0xe0,0x03,0x5e,0xda,0xcb,0x86,0xdf,0xda,0x67,0x66,0x40,0x27,0x97,0xf0,0xc2,0xbd,0xce,0xce,0x37,0xeb,0x47,0xe2,0x56,0x7e,0x54,0xe9,0x51,0xda,0xec,0xd5,0xe6,0xc1,0x69,0x6e,0x4c,0x3d,0x92,0xdc,0xa0,0x51,0xe2,0x2b,0xb8,0x96,0xb6,0xce,0xdf,0x35,0xdb,0xd0,0xd4,0x42,0xe3,0x94,0x89,0x09,0x1b,0xb4
+.byte 0xe2,0x8f,0xfb,0x23,0x62,0x35,0x56,0xc7,0x94,0x40,0xd7,0x2d,0xdb,0x80,0xc9,0xbd,0x4d,0xe3,0x14,0x30,0x44,0x43,0xad,0xeb,0x3d,0x89,0xe9,0x61,0xd7,0x80,0x15,0x59,0xcd,0xda,0x38,0x11,0x3b,0x84,0x14,0x85,0xef,0x55,0xf2,0x01,0x2c,0xed,0x74,0xf5,0x71,0x75,0x0c,0x52,0x0c,0x41,0x86,0xbe,0x84,0xc5,0x89,0x8b,0xa5,0x6d,0xc3,0xfa
+.byte 0x2b,0xe5,0xe7,0xe8,0xdd,0xf9,0xe8,0x27,0x08,0x5d,0xdf,0x61,0xdc,0xb2,0xe0,0x8c,0xe8,0xda,0xa8,0x68,0x22,0x51,0x6b,0xdf,0xd0,0x92,0x87,0x6a,0x43,0xff,0xd1,0x9d,0x9a,0x4c,0x03,0xdf,0x3e,0xc1,0x31,0x33,0x6e,0x2a,0x55,0xc1,0x58,0x59,0x69,0x66,0x05,0xd1,0xa7,0xa1,0x3b,0x98,0x1d,0x44,0x74,0xc7,0x7e,0xc0,0x07,0xd9,0x9c,0x87
+.byte 0x5f,0xc3,0x44,0x25,0x7b,0x96,0xbc,0x20,0x5d,0x14,0x08,0x34,0xe9,0xad,0x34,0xa3,0xc3,0x95,0x1a,0xc1,0xd1,0x37,0x43,0x49,0x66,0xff,0x39,0x70,0x27,0xa0,0x2b,0x39,0x9d,0x1b,0x78,0x52,0x55,0x77,0x30,0xe8,0x72,0x65,0x8a,0xc8,0xa4,0xe6,0xb7,0xd6,0x66,0x82,0xa7,0x1d,0xde,0x3e,0xc2,0x23,0x5a,0x8b,0x51,0xe4,0x44,0x03,0xf3,0x89
+.byte 0x10,0xb0,0x9a,0x09,0x5d,0xe3,0xe9,0x4a,0x0b,0xe3,0x86,0x58,0xf8,0xe3,0x1a,0x3f,0x7f,0x42,0xa5,0xd7,0xb0,0x24,0xb7,0xbc,0x1d,0x40,0xe7,0x2f,0x42,0x8c,0xa8,0x3c,0x33,0xee,0x9f,0xaf,0xd1,0x51,0x8e,0x34,0x82,0xc5,0x16,0xef,0xb1,0xa6,0xa8,0x0e,0xae,0xe6,0xc3,0x2f,0xb3,0x06,0xd4,0x4c,0xec,0xee,0x9e,0xff,0x88,0x82,0x4b,0xb8
+.byte 0xc5,0xef,0x94,0xe2,0x68,0x48,0x23,0xa2,0xc8,0xe4,0xdb,0x33,0xf9,0xee,0x73,0xc2,0xe6,0xa1,0x64,0xf9,0xf6,0xab,0x5a,0xdc,0xa5,0xb3,0xd8,0xae,0xf4,0x1f,0x47,0xfe,0xa0,0xee,0xf5,0xee,0x41,0x30,0xa6,0xbe,0x34,0x2c,0x1a,0x24,0x8a,0x80,0xb1,0x79,0x7e,0x2c,0xc0,0x65,0x68,0x46,0xae,0x0a,0x01,0x77,0xce,0xa2,0x5f,0xc3,0x00,0x8f
+.byte 0xd4,0x0f,0xbe,0xbf,0x81,0x20,0x4e,0xb8,0x21,0x5f,0xfa,0xb2,0xf2,0x02,0x83,0x41,0xa8,0xf1,0xe8,0x2c,0x7e,0x0e,0xe6,0xf0,0x6e,0xd5,0x7b,0xcb,0x4e,0xed,0x06,0xc4,0x18,0xfb,0x0e,0x0d,0x8e,0x22,0x8a,0x40,0x4d,0x66,0xa5,0x0c,0x74,0xf3,0x9e,0xd9,0x90,0xf8,0x71,0xe4,0x92,0x05,0x3d,0x2d,0xa0,0xed,0x42,0x88,0x18,0x9a,0xc7,0xe4
+.byte 0x41,0x5d,0xde,0x44,0x2e,0x26,0x30,0xfe,0x51,0xa8,0x91,0xa3,0xa6,0xfd,0x3e,0x04,0x7f,0x3a,0xa9,0x1c,0x21,0x98,0xab,0xaa,0x39,0x9d,0xe4,0x51,0x75,0xeb,0x90,0x6b,0xab,0x11,0x89,0xa9,0x22,0xa8,0xc5,0x92,0x16,0x51,0xe1,0x77,0x09,0x53,0x7f,0xb6,0x80,0x4b,0xf5,0xf5,0xa2,0x0e,0x36,0x24,0x7f,0xe7,0xcc,0x67,0xfb,0x2c,0x6e,0xc2
+.byte 0x16,0x47,0x41,0xc2,0x77,0xf4,0xcf,0x49,0x37,0x17,0x67,0x34,0x14,0x92,0x7d,0x0f,0x14,0xe8,0x4b,0x4c,0xc3,0xbb,0x78,0xf7,0xa0,0x59,0xbe,0x06,0x10,0x38,0xe6,0x2c,0x08,0x15,0xba,0xc6,0x49,0x38,0x9a,0x91,0x2b,0x4d,0x82,0x42,0x0e,0xe4,0x02,0xef,0x2b,0xa2,0x06,0xcc,0x3a,0x3c,0xb9,0xc5,0xb5,0x71,0x1e,0x17,0x5d,0x65,0x35,0x91
+.byte 0x89,0x54,0x97,0xa8,0x7b,0x02,0x24,0xf9,0xdb,0xb5,0x52,0xf7,0xd0,0xa0,0x42,0x48,0x01,0xf4,0x47,0x7c,0x84,0x7c,0x8a,0xb4,0xf4,0x30,0xec,0xb9,0x21,0x44,0x87,0xb2,0x96,0xa4,0x3b,0x0d,0x93,0x26,0x09,0xc8,0xfa,0x28,0x6f,0x09,0xb7,0x03,0x85,0x66,0x21,0x2d,0xf1,0xaa,0x3f,0x0b,0x59,0x15,0xfe,0x8b,0x2b,0xe0,0x81,0x38,0x63,0x70
+.byte 0x09,0x37,0x38,0x62,0x04,0x8e,0x3f,0x23,0x65,0xf8,0xf7,0xc0,0x30,0xb8,0x04,0xb4,0x17,0xd7,0x21,0xcc,0x8b,0x31,0xd3,0x7b,0x11,0xea,0xc5,0x51,0x01,0x93,0x5f,0xe3,0xf3,0x1e,0x0d,0x41,0x52,0x2a,0xfd,0x27,0x02,0x00,0x58,0x0d,0x1f,0x16,0xd7,0x50,0x09,0xea,0x3f,0x9f,0x72,0xae,0x7a,0x79,0x4b,0x69,0x61,0xfc,0xac,0x5c,0x4d,0x6a
+.byte 0x65,0x5d,0xa5,0x67,0x76,0xe4,0x24,0x3f,0xa0,0x6f,0xf6,0x60,0xd2,0x70,0x8e,0x2e,0xbe,0xf9,0x8b,0xab,0x22,0xc8,0x9c,0x5b,0x26,0xc5,0x75,0xeb,0x96,0xa2,0x4f,0xdf,0x6c,0x05,0x9a,0x15,0xef,0xbf,0x3e,0x35,0x6d,0x8d,0x48,0xa4,0x33,0xc2,0xe8,0x3b,0x89,0xe4,0x0c,0xb2,0x9a,0xc6,0x89,0x52,0xba,0xc7,0x2a,0xa5,0xfb,0xe5,0xde,0x06
+.byte 0xbd,0xc3,0x4f,0xe8,0xa9,0x9d,0x36,0xa5,0xcc,0x90,0xcd,0x68,0x49,0x52,0x6e,0x9a,0x85,0xd4,0x1b,0xe5,0x3f,0x54,0xc8,0xb4,0x7a,0x76,0xbf,0xa8,0xf4,0x25,0x05,0xeb,0x43,0x0c,0x2b,0x1c,0x59,0x5b,0x51,0x7f,0xd5,0x13,0x54,0x37,0x44,0x37,0x2f,0x79,0x1c,0x1f,0x18,0x57,0x60,0xab,0xf7,0xcc,0x5d,0xd5,0xdd,0x69,0xab,0x7f,0xc7,0x9d
+.byte 0x7f,0xd7,0x6a,0xdc,0x34,0x3d,0x6e,0x2c,0x1e,0xb8,0x74,0xef,0xec,0x14,0x83,0x98,0x20,0x85,0x8a,0x95,0x93,0x26,0xed,0xbb,0x7d,0xfe,0x63,0xaa,0x20,0xbb,0x40,0x7b,0x35,0x1d,0xe5,0x64,0xc0,0x64,0x83,0x90,0x59,0xb4,0xae,0xf7,0xfe,0x14,0xb2,0xaa,0x72,0xf7,0x34,0x61,0xe0,0x61,0x06,0xb3,0xdc,0x09,0x5f,0xe1,0x57,0x65,0x83,0x8a
+.byte 0x6d,0x46,0x54,0x8f,0xbf,0x38,0x12,0xf5,0xa3,0xfc,0x7b,0x90,0x4f,0x30,0xed,0xc1,0xab,0xb2,0x6e,0xee,0x7c,0x5e,0x35,0x70,0x80,0xb0,0xae,0x93,0xdc,0x4e,0x8f,0x6c,0x37,0xef,0xc9,0x4c,0x3a,0x41,0x14,0x91,0x99,0x0d,0x48,0xbe,0x5e,0x9b,0xc5,0xa6,0x4d,0x07,0x0d,0xd5,0xe6,0x5d,0x26,0x6b,0xa0,0xf3,0xb2,0x28,0x15,0x57,0xdb,0x7b
+.byte 0x8e,0x6b,0x88,0xc3,0x81,0xb6,0x16,0xd1,0x3c,0xd0,0x2d,0x5a,0x23,0x35,0x8e,0xb0,0x8b,0x5c,0x99,0x6a,0x7a,0x55,0xb1,0xf9,0x45,0x97,0x94,0x05,0x6e,0x58,0xd4,0x53,0x8d,0x73,0x43,0x02,0x68,0xdf,0x7c,0x37,0x1a,0x6b,0x71,0x04,0xa0,0x31,0x77,0xbc,0xe0,0x16,0x5a,0x2a,0x9a,0xb2,0x40,0xe4,0xbb,0xd0,0xfd,0x35,0xcb,0x7f,0xf4,0x13
+.byte 0x0f,0xb5,0x93,0x9a,0x7d,0x50,0xf8,0xfe,0x56,0x34,0x83,0x20,0xce,0x3d,0x02,0x2e,0x0b,0x95,0x76,0x88,0x47,0x8c,0x75,0x51,0x14,0x52,0x49,0xbc,0xed,0x66,0x0e,0x81,0x65,0x5e,0x64,0xfb,0x45,0x59,0x3d,0x2b,0xd6,0x3a,0xc6,0xfd,0x50,0xe4,0xeb,0x0c,0x68,0x38,0x0f,0xdd,0xa2,0xdc,0xaa,0x26,0xf5,0x7b,0x40,0x6a,0x90,0xf8,0x08,0x2c
+.byte 0xe8,0x8f,0x8e,0xc1,0xf2,0x6b,0x87,0xeb,0x7a,0x02,0x9e,0x26,0x3e,0x6b,0xb9,0x71,0x2e,0x6f,0x26,0x20,0xa9,0xc0,0x7c,0xe5,0x6c,0x6b,0xd4,0xc4,0x7b,0x54,0x8e,0x4a,0x7a,0xef,0xfc,0x03,0x02,0x1d,0x6a,0x16,0x99,0x35,0x12,0x49,0xba,0x86,0x37,0x7a,0xb0,0x8d,0x58,0x6f,0x1c,0xba,0xa9,0x5d,0x93,0xdf,0x98,0x50,0x7e,0xea,0x0a,0x88
+.byte 0x1a,0xd4,0x63,0x91,0x23,0x43,0x43,0x17,0x2e,0xe6,0x04,0x95,0x96,0xa8,0x2b,0xb4,0x9e,0x91,0x6c,0x13,0x52,0x8c,0xbf,0x7d,0x50,0xfc,0x79,0xef,0xa1,0x3e,0x90,0xba,0xac,0xd1,0x0d,0xb0,0x4d,0xd5,0x7a,0xc7,0xbd,0x82,0xb7,0x03,0x9c,0x0b,0xbc,0xa7,0x3c,0x05,0x8f,0xbd,0x0d,0x7f,0x80,0xeb,0xe9,0xbd,0x8f,0xdc,0xcd,0x86,0x23,0x26
+.byte 0xb0,0xa4,0xdc,0x63,0xef,0xad,0x61,0x53,0x7e,0x23,0x34,0x0d,0xd9,0x75,0x7c,0xa7,0x57,0xba,0x28,0x0c,0x82,0x7f,0x68,0xe5,0x24,0xdc,0x23,0x99,0xcd,0x6f,0x03,0x59,0x4f,0x35,0x47,0xc4,0x11,0xc0,0x0c,0x2b,0x16,0x94,0xb8,0x28,0xf2,0x0a,0x91,0x2e,0x1c,0xde,0x75,0x50,0x52,0x00,0x0a,0x92,0x80,0xca,0x39,0x3a,0xdf,0x16,0xb7,0xe2
+.byte 0xbd,0x98,0x7b,0x70,0x48,0x85,0x6d,0x48,0xa0,0x1b,0x0a,0xbb,0xa8,0xb6,0xca,0x9c,0x4e,0xda,0x0a,0x17,0x0b,0x30,0xf5,0xa2,0x9b,0x5a,0x89,0xf4,0x53,0x89,0x38,0x34,0x2b,0x7d,0x14,0x04,0x44,0xa3,0x8f,0x70,0x29,0xa5,0x3e,0xdd,0x5a,0x61,0xa1,0x04,0xac,0xd8,0xd3,0xec,0x42,0xc4,0xd9,0x2c,0x13,0x80,0xf8,0xc9,0xec,0x54,0xa7,0xa0
+.byte 0xe6,0x37,0x04,0x38,0x5f,0x1e,0x0b,0xfb,0x38,0x06,0xb9,0xe2,0x05,0x12,0x12,0xa2,0x28,0xff,0x12,0xae,0x44,0xd8,0x0d,0x2c,0x5a,0x8f,0xfb,0x1d,0x98,0x69,0x85,0x69,0x99,0xc0,0x63,0xc5,0x88,0xa7,0x2d,0x56,0x76,0x32,0x23,0x4c,0xf7,0x29,0xd6,0x3e,0x45,0xfa,0xd7,0x61,0xf4,0x9a,0xa6,0x9e,0x4a,0xe7,0xe7,0xf9,0xbf,0x1f,0x09,0x82
+.byte 0xbe,0x36,0xa0,0xdd,0x91,0x47,0x3b,0xbc,0x52,0xf2,0xc2,0x04,0x96,0x85,0xb6,0x93,0xac,0x99,0x94,0xbe,0xfd,0xe6,0x53,0x9f,0x75,0xab,0x38,0xdd,0x81,0xc0,0x79,0x25,0xcd,0x73,0x72,0x5b,0x4d,0xc0,0xba,0xa9,0x18,0xaa,0x76,0x51,0x15,0xef,0xb9,0x22,0xdd,0x5f,0x22,0x62,0x6c,0x36,0xf6,0xc0,0x72,0x34,0x01,0x7a,0xaf,0xe2,0x87,0x1b
+.byte 0x5f,0x33,0x9c,0xd5,0xe2,0x81,0x03,0xbe,0x4e,0xac,0xcc,0x17,0xc5,0xc6,0xf8,0x0f,0x24,0xe0,0x26,0x56,0x8a,0x20,0x2e,0xe4,0x05,0xc8,0x0f,0x89,0x24,0x0e,0xd4,0xb7,0x07,0xd1,0x99,0x8c,0x55,0xfd,0x75,0xc1,0xdb,0xaa,0xd1,0xd2,0xa6,0xf2,0xf0,0x3c,0xae,0x62,0x0e,0x1f,0xaa,0xc9,0xa5,0x16,0x09,0x2c,0xc0,0x61,0x55,0x72,0x70,0x63
+.byte 0x22,0xb6,0x41,0xa5,0x08,0x34,0x6a,0x1b,0xfc,0x42,0x81,0xe7,0x25,0x98,0xcf,0xba,0x18,0xb0,0x36,0x90,0x72,0x65,0x75,0xf3,0x57,0x68,0xd0,0x86,0xe4,0xaf,0x33,0xb6,0x2b,0xef,0x96,0x97,0x17,0x42,0x6b,0x8e,0x19,0xaa,0x4b,0x9d,0xc7,0x73,0x34,0x5f,0x41,0x24,0x12,0xfb,0x66,0xa2,0x1e,0x91,0x41,0xc2,0x78,0x08,0x66,0xc4,0xb2,0x86
+.byte 0x67,0x70,0xe6,0x96,0x76,0x8d,0xa4,0x69,0x6f,0xe5,0x35,0x8b,0x20,0x3d,0x6a,0xcb,0x65,0x7b,0x82,0x7b,0xf6,0x2d,0xd8,0xd0,0xda,0x69,0x8b,0xcd,0xdf,0x15,0xf6,0x3a,0x2c,0xfe,0xc7,0x84,0x20,0x11,0xcc,0x18,0x4f,0xc7,0x2e,0x1c,0x46,0x41,0x6b,0x91,0x79,0xa0,0xbb,0xf4,0x48,0xd7,0x0c,0x9a,0x88,0x01,0xda,0xa1,0xd1,0x8f,0x27,0x49
+.byte 0x9d,0xa0,0x3f,0x5a,0xc2,0xf7,0x26,0x9b,0xe5,0xff,0xa4,0xcb,0x86,0x32,0xb3,0x3c,0xd5,0xe5,0x7c,0xbb,0x5e,0xfe,0x3d,0xcf,0x60,0x1c,0x16,0x8e,0x0c,0xc4,0xa9,0xf2,0xb2,0x42,0x1d,0x13,0xb0,0xa8,0xff,0x90,0xbc,0xd9,0x9a,0x6d,0x78,0x7a,0x46,0x1a,0xa8,0x35,0x4e,0xa4,0x79,0xd5,0xb4,0x36,0x47,0x62,0x3c,0x0e,0x23,0x56,0xca,0xa2
+.byte 0x60,0xe6,0xca,0xf6,0xc3,0xd6,0x7c,0x5d,0x54,0x9c,0x0c,0xfa,0x9a,0x0f,0x3a,0x8c,0x64,0x52,0xdb,0x62,0x5e,0x93,0x82,0xef,0x9e,0x8d,0x30,0xa5,0xe7,0x3d,0x52,0x11,0xd4,0x93,0xb1,0x77,0x8f,0xee,0x54,0x9c,0x80,0x47,0xa9,0x21,0xa8,0xf7,0x16,0x4b,0xbb,0xab,0x75,0x52,0xed,0x0c,0x85,0xf8,0x04,0xf4,0x80,0x08,0x4a,0xb5,0x2d,0x2d
+.byte 0xd8,0x98,0x57,0x24,0xd5,0xc8,0x77,0xa0,0xd8,0xb5,0xb1,0x83,0x92,0xb4,0xc7,0x42,0x36,0xd1,0xa5,0xd6,0xbd,0x89,0xc6,0x76,0x31,0x92,0x31,0x67,0x2c,0xa4,0xb2,0x2b,0xcf,0x94,0x20,0x6a,0x17,0x63,0xb9,0x76,0xac,0x9c,0x1c,0x95,0x3e,0x57,0xf8,0x87,0x0d,0xef,0x36,0xcd,0x87,0xd1,0x58,0x2c,0x9a,0x5e,0x54,0x0e,0xac,0x97,0xbd,0x15
+.byte 0xc4,0xdb,0xea,0xd3,0x21,0x05,0x2d,0x78,0xce,0x4c,0x60,0xf3,0xf8,0xeb,0xd9,0x19,0x89,0xb0,0x83,0xc0,0xe4,0x42,0x08,0x5c,0x1a,0x1c,0x53,0xf3,0x1e,0x5a,0x28,0x92,0x0d,0x32,0xbe,0x4a,0x9a,0x70,0x78,0x93,0xc1,0x66,0x81,0xda,0xe7,0x3d,0x05,0xc5,0xaa,0xdc,0x51,0x6b,0xaf,0x67,0x4d,0x18,0xfe,0x29,0xe0,0xfa,0x5c,0xe5,0x9a,0x18
+.byte 0x7f,0x8f,0xaa,0x21,0xa5,0xd0,0x8b,0x62,0x32,0x6b,0x93,0x02,0x19,0x62,0xd3,0xd6,0x74,0xea,0x83,0xdb,0x6c,0x57,0xe3,0x1f,0x1f,0x90,0xd0,0x22,0xf7,0x9a,0x4a,0x14,0xf4,0x8a,0xb3,0x86,0xa5,0x4c,0x1e,0xdf,0x49,0xa5,0x78,0x30,0x5e,0xf0,0x9a,0x69,0x0d,0xaa,0xe9,0x47,0x01,0xae,0x51,0xcf,0x32,0x4c,0xec,0x03,0x08,0xe7,0xcb,0x35
+.byte 0x59,0xd2,0x48,0xd4,0xfa,0x6a,0x45,0x6b,0x66,0x1f,0xb8,0x1e,0x45,0x85,0xef,0x14,0x25,0x34,0x48,0x50,0x59,0xf3,0x76,0x09,0x32,0xf5,0xe4,0xa8,0x98,0xb0,0x9a,0x70,0xec,0x0a,0x17,0x87,0xcf,0x6d,0x96,0x7d,0x50,0x5e,0x3a,0xff,0x57,0xa7,0xaf,0x04,0x0d,0xdc,0xcc,0xad,0xe3,0x09,0xd3,0x92,0xab,0xd8,0x3a,0x61,0x1f,0x9c,0xc4,0x36
+.byte 0x3b,0xf3,0xf6,0x87,0x43,0xea,0xc8,0xff,0x29,0x19,0x9e,0x87,0x44,0xc7,0xe5,0x5c,0x43,0x30,0x9a,0xb2,0xd8,0x47,0x4a,0x87,0xcc,0xc7,0x8e,0x99,0x32,0xdd,0x3c,0x37,0xda,0xa0,0x39,0x04,0x55,0xca,0xcf,0x2f,0xce,0x8b,0x22,0x35,0x2c,0x29,0x89,0xef,0x5c,0x05,0x82,0x55,0xf3,0x8d,0x64,0x7f,0x69,0xf7,0x3d,0x43,0x27,0xf3,0x4c,0xd7
+.byte 0x43,0x89,0x47,0xd5,0x0b,0x01,0x1b,0x17,0x6c,0x7e,0x63,0x18,0x87,0x8b,0x8f,0x20,0x0d,0xa4,0x1e,0xa5,0x3b,0xf1,0x5c,0xe5,0xc8,0x23,0xd4,0xee,0x79,0x3e,0xd1,0xbc,0x83,0x30,0x03,0x64,0x80,0x7e,0xda,0x13,0x7c,0x52,0x88,0xc1,0x7c,0xa7,0x8a,0x5d,0x8d,0x7b,0x57,0x4e,0x59,0x97,0x83,0x52,0x03,0x04,0x6b,0xd2,0xf3,0xff,0x1c,0x4e
+.byte 0x3b,0xae,0x70,0x61,0x3b,0x8b,0xaf,0x56,0x3d,0x28,0x73,0x24,0x39,0x4b,0xb8,0x6e,0x89,0x28,0xe6,0xc8,0x5c,0xe9,0xf8,0xec,0x8f,0xf7,0x75,0x1a,0x13,0xc1,0x8e,0x53,0x4e,0xe5,0xef,0x37,0xce,0xa1,0x54,0xca,0xcc,0xf5,0x01,0x29,0x2a,0x8f,0x00,0x1c,0xde,0xcd,0x5e,0x24,0x0b,0xa5,0x94,0x0c,0x8a,0xab,0x54,0x1e,0x80,0x2a,0x0d,0x84
+.byte 0x38,0x4c,0x17,0xea,0x84,0x07,0x9c,0xbd,0x85,0xd8,0x1b,0x57,0x6a,0xde,0xb3,0x86,0xa3,0xf8,0x6d,0x03,0x3e,0xf1,0x37,0xae,0x7d,0x02,0x33,0xc5,0x7b,0xf6,0x64,0xdb,0x3e,0xb0,0x48,0xda,0x49,0xec,0x89,0xb4,0x83,0xff,0xe1,0x6f,0x9a,0x7e,0x0a,0xda,0x6e,0xec,0x70,0x0b,0x51,0xac,0x82,0xac,0xb8,0xce,0x16,0xe7,0x47,0xab,0xe8,0xc7
+.byte 0x56,0xd1,0xab,0x73,0x72,0x5c,0xe7,0x9e,0xb8,0x77,0xa7,0xc1,0x47,0x9c,0x4e,0x16,0x68,0xce,0x21,0x23,0x2d,0x6c,0xcf,0x79,0xd6,0xd4,0xdf,0x74,0x30,0xb8,0x0f,0x60,0xea,0xbf,0x39,0x77,0x45,0xdc,0xaf,0x25,0xbd,0xc5,0x8d,0x0b,0x44,0x21,0xc1,0xc1,0x2e,0x54,0x2a,0x32,0x6c,0xea,0x51,0xe0,0x7d,0xa8,0x09,0x94,0x2f,0x4e,0xfe,0x27
+.byte 0xe8,0x63,0xfb,0x71,0xca,0x01,0x7d,0xc9,0x70,0xd8,0xe4,0x82,0xbf,0x3f,0xea,0x64,0x5e,0xa9,0x84,0x1d,0x2c,0xfd,0x8a,0x7d,0x33,0x73,0x5c,0x82,0xbe,0x9e,0x46,0xfc,0x39,0x5e,0x38,0x2a,0x20,0xd9,0xa9,0x20,0x46,0x23,0xc1,0x8b,0x0a,0x9c,0x42,0xb6,0x50,0x9f,0xc8,0x7d,0x4a,0x85,0x98,0xed,0x92,0x13,0xd3,0xd6,0xe6,0x6d,0x50,0x6e
+.byte 0x93,0x63,0x41,0xa3,0x63,0x97,0x52,0xe3,0xaf,0x09,0xe1,0x40,0x12,0x41,0xed,0xb3,0xc5,0xb8,0x9f,0xc1,0xf2,0xd2,0xe6,0x16,0x94,0x97,0xdb,0xae,0xdb,0xd4,0x1f,0x5a,0x2f,0xf1,0xb1,0x22,0xf6,0x60,0xa4,0x0e,0xd8,0x2f,0xf7,0xf7,0x3f,0x6c,0x7d,0x73,0xe3,0x1d,0x99,0x04,0x7f,0x4f,0x70,0x2a,0x8c,0x43,0x80,0xa3,0xd0,0x25,0x75,0xd8
+.byte 0xb6,0xc8,0x90,0xa2,0x26,0xee,0xba,0xc5,0x1a,0xdc,0x1f,0x81,0x65,0x54,0xc6,0x57,0x6e,0xa2,0x03,0x32,0xf5,0x14,0xb2,0xdd,0x4d,0x21,0xaa,0xb9,0x78,0x4f,0x76,0xab,0xbe,0xfe,0x5d,0xc6,0xaf,0xed,0x6f,0xf9,0xaa,0x31,0x21,0x08,0xa4,0x6e,0xfb,0x78,0xdc,0xed,0x0c,0x05,0xff,0x1e,0x60,0x38,0x60,0x94,0xa9,0x92,0xa7,0x07,0x6e,0x6f
+.byte 0x6d,0x89,0x8a,0x73,0xfb,0xaf,0x01,0x34,0x7d,0x7d,0x33,0x76,0xff,0x1f,0x6b,0x79,0x5e,0xff,0x50,0x14,0x80,0x7d,0x55,0x0e,0x2d,0xc3,0x77,0x85,0x30,0x20,0xf6,0xc8,0xc7,0xb7,0x73,0x1b,0xd1,0x87,0x69,0x44,0xeb,0x02,0x5e,0x45,0x66,0x6f,0x28,0x00,0x1f,0xf8,0x58,0x93,0xe5,0x21,0xbc,0x19,0x8d,0x72,0x19,0xaa,0x9a,0xbb,0xc6,0x47
+.byte 0xe6,0x0b,0xe4,0x76,0x13,0xc7,0xc4,0x1b,0x9d,0x85,0xba,0x17,0xb6,0x30,0x2a,0xdb,0x7c,0x36,0xd7,0xd8,0x8b,0x9c,0x99,0x92,0x64,0x03,0x4f,0xd4,0x1f,0x04,0x2e,0x45,0x34,0x55,0x92,0x99,0x77,0xb8,0x45,0xce,0x59,0x22,0x3c,0x6e,0xe5,0x18,0xb0,0x83,0x42,0x42,0x75,0x1c,0x34,0x0f,0x2e,0x59,0x06,0x94,0x17,0xea,0xc3,0xdb,0x0b,0x2f
+.byte 0x44,0x97,0x54,0xe8,0x76,0xd3,0x25,0x24,0xe9,0x21,0x4f,0xd7,0x01,0x7d,0xbe,0x90,0x8a,0x0a,0x7d,0x4e,0x91,0x5f,0x4c,0x32,0x83,0x42,0x55,0x95,0x3c,0x7a,0x3e,0x46,0x8a,0x5d,0x0c,0x05,0xcd,0x0b,0xf6,0x3e,0x4d,0xf3,0x55,0xea,0x42,0x3e,0x19,0x0e,0xda,0xd4,0x22,0x88,0xe2,0x29,0x06,0x9e,0xea,0x1c,0x27,0x96,0x7f,0x3a,0x8a,0x28
+.byte 0x2f,0x7d,0xa2,0x65,0x37,0xae,0xb6,0x6a,0x59,0x41,0x19,0x73,0x91,0x64,0x77,0x4e,0x5a,0x1a,0x85,0x9f,0xc5,0xb0,0x85,0xc1,0x96,0x47,0x69,0x9c,0x36,0x70,0x36,0xa3,0x2e,0x1a,0x7d,0x11,0x59,0x55,0xec,0x4c,0x49,0xa1,0x86,0x3c,0x3d,0x24,0xb8,0x7a,0x84,0xca,0x4c,0x3f,0x7e,0x81,0x95,0x39,0x41,0xfe,0xc4,0x74,0xe5,0x89,0x7e,0xdc
+.byte 0x86,0xd2,0xdb,0x8b,0xb8,0xa2,0xbb,0x15,0x64,0x89,0xf9,0x00,0x7d,0x56,0xec,0x8b,0xc8,0x05,0xcd,0x76,0x6c,0xcb,0xaf,0x7e,0xd2,0xdd,0x67,0xb3,0x99,0x16,0x63,0xf2,0x6d,0x49,0x7d,0xeb,0x67,0x24,0x98,0xf1,0x28,0xa3,0xb2,0x14,0xfc,0x95,0xf6,0x55,0xa0,0xb5,0x8c,0x26,0x2f,0xc6,0x08,0x49,0x57,0x4c,0x20,0xbc,0x48,0xab,0x24,0xef
+.byte 0xe9,0xab,0x6b,0x77,0x4d,0x3b,0x61,0x84,0x68,0x67,0x72,0xc2,0xcf,0xab,0x8e,0xac,0x39,0xec,0x43,0x03,0xbb,0x4f,0x32,0x7d,0x7d,0x51,0x69,0x30,0xee,0x4f,0xd0,0xb9,0xa5,0x22,0xdd,0x47,0x06,0xad,0xac,0x62,0x20,0xff,0x7b,0x8c,0x90,0x91,0xb3,0xd8,0x89,0xd3,0xea,0x81,0xdc,0xca,0x31,0xc3,0x65,0xca,0x4c,0x50,0x0a,0x85,0xf7,0xaf
+.byte 0xe3,0x67,0x57,0x53,0x1d,0x4e,0x42,0x17,0x2d,0x14,0x80,0x29,0x09,0x2b,0x48,0x45,0x43,0xb9,0xad,0x1f,0xb7,0x2d,0xab,0xfa,0x6a,0x1b,0x3c,0x7d,0x76,0xd7,0x36,0x20,0xb0,0xd3,0xc0,0x5e,0xc7,0x20,0x06,0x0c,0xa9,0x6a,0xb2,0x67,0xad,0x91,0x49,0xfc,0x4d,0xb2,0x15,0x61,0x61,0xfa,0x33,0x6c,0x94,0x92,0x58,0xef,0x46,0x82,0x9c,0x04
+.byte 0x52,0x21,0x28,0x08,0xb4,0xa9,0xd4,0x2e,0xd9,0x8c,0x93,0xd0,0xd8,0x4f,0x33,0x1d,0x0b,0x7e,0x07,0x12,0x40,0x64,0x3d,0xa2,0x8f,0xa3,0x96,0x45,0x0e,0xfc,0x9b,0x55,0x5f,0x3c,0xa2,0x57,0x3e,0x51,0x40,0x69,0xdc,0x7a,0x51,0xd2,0x3b,0x79,0x2f,0xd2,0x01,0x18,0xbf,0xd5,0xd2,0xd1,0x0e,0x08,0xcf,0xac,0x07,0x4d,0xd1,0x92,0xc7,0xca
+.byte 0x92,0x75,0x0b,0x80,0x29,0xf1,0x46,0x24,0xba,0x47,0x6b,0x4a,0x64,0xfb,0x31,0x69,0xe9,0x40,0x0d,0x69,0x50,0xd0,0xdf,0xf8,0xcb,0x6a,0xe8,0xd4,0xc2,0xbd,0x0b,0x23,0x00,0xe0,0x29,0x0a,0x0a,0x8e,0x19,0xec,0xa9,0x14,0xe4,0x5d,0x4c,0x30,0xc9,0x85,0x42,0xd6,0x9f,0x83,0x8f,0x2a,0x5b,0x22,0x37,0xe4,0x71,0x3b,0x19,0x86,0xd4,0xda
+.byte 0xb5,0x81,0x8e,0x84,0x57,0xcd,0x13,0x64,0xc3,0x23,0xfd,0x91,0x8a,0xe4,0xb9,0x32,0x12,0x17,0x02,0xa6,0x8d,0xec,0x44,0x9d,0xa5,0x7c,0x96,0x14,0xd1,0xd5,0x93,0x02,0x0c,0x9d,0xfc,0x26,0xa0,0xd2,0x41,0xaa,0x75,0xe8,0x82,0x6f,0x47,0x1d,0xe8,0xcf,0x94,0xe3,0x35,0xa9,0x76,0x1e,0xdb,0x92,0x5f,0x32,0x49,0xf4,0xd5,0x59,0x9c,0x4e
+.byte 0xf7,0x89,0xda,0x23,0x7f,0x46,0x0e,0xfc,0xaf,0x1c,0x6f,0xcc,0x59,0xa5,0x43,0x04,0xbf,0x55,0xab,0x7d,0x36,0xa3,0xa5,0x03,0x7f,0xdf,0x33,0x6c,0x6d,0xd0,0x53,0xaa,0xef,0x54,0xc1,0x62,0xa0,0xd6,0x3a,0x67,0x87,0xe3,0x76,0x17,0x45,0xbe,0x7f,0x55,0xc8,0x8b,0xe8,0x1c,0xa8,0xe6,0xa6,0xb2,0xbf,0xe5,0x45,0xc0,0x88,0x22,0x36,0xa0
+.byte 0xec,0x21,0xdc,0x3e,0x6b,0xd2,0xc7,0xdf,0x5b,0xa4,0x32,0x28,0xca,0x23,0xe1,0x50,0x55,0x72,0x59,0x28,0x1c,0xf7,0x93,0x91,0x07,0x3c,0x4e,0x81,0x20,0x58,0x9b,0x07,0x38,0x37,0x68,0x2c,0x29,0xba,0x20,0x11,0xa9,0xa0,0x29,0x65,0x57,0xb1,0xe3,0xb1,0xfb,0xe2,0x70,0xee,0x1f,0xcd,0xf5,0x61,0xea,0x7a,0x08,0xb4,0x1e,0xfe,0xe7,0x4d
+.byte 0x32,0xa0,0xfd,0xb4,0x52,0xa1,0x4b,0x67,0xba,0x5e,0x90,0xe7,0x56,0xec,0x06,0x03,0xb6,0xe6,0xc6,0x98,0xa1,0x41,0xf4,0xaf,0xde,0xe2,0x67,0xef,0xaa,0x05,0x97,0xc5,0x80,0x32,0xd0,0x43,0xc2,0x02,0x7a,0xcc,0x4c,0xdd,0xe9,0x1e,0xd0,0x4f,0xad,0xf3,0x4b,0x2c,0x5e,0xb8,0xd8,0x84,0xc2,0x43,0xc7,0xa9,0x86,0x4d,0x10,0xae,0xb7,0xe3
+.byte 0x5c,0xd5,0x2a,0xba,0x3b,0xd3,0x7b,0x5d,0xc8,0xe0,0x67,0x87,0xbe,0xbf,0x71,0x4e,0x22,0x68,0x12,0x53,0x95,0x73,0x5c,0x30,0x7b,0x2b,0xfd,0xc1,0x3c,0xfc,0xc4,0x0f,0xdd,0x5b,0x3e,0x1b,0x72,0x71,0xa6,0xe3,0x1f,0x2d,0x51,0xe2,0x61,0x3d,0xa0,0x60,0xc2,0x6b,0x41,0x8f,0x94,0x83,0x29,0xa3,0xb6,0xa7,0xc7,0x11,0x8f,0x1c,0xb5,0x19
+.byte 0x66,0x44,0xc7,0x05,0x58,0x83,0x28,0x69,0x0c,0xb6,0x65,0xe5,0x93,0x1c,0xb1,0xf6,0xf9,0xea,0xda,0x84,0x26,0x8e,0xa2,0xbb,0x9b,0x55,0xd3,0xbc,0x42,0x56,0x8f,0xce,0x6e,0x74,0x40,0xf2,0x02,0xa6,0x22,0x22,0x6e,0x20,0x0e,0x4b,0x8b,0x15,0xa5,0x04,0xf0,0xe0,0x7b,0x27,0x0a,0x38,0xe3,0x99,0x04,0xd0,0x5b,0x64,0xd2,0x04,0x92,0x61
+.byte 0x57,0x74,0xbc,0x1e,0x98,0x01,0x4b,0x2f,0x46,0x56,0x1c,0xeb,0x49,0x2d,0x66,0xac,0x85,0x96,0x48,0xfd,0xa1,0xf0,0xf5,0xc0,0xdb,0x7a,0xf2,0x0b,0x57,0x86,0xac,0x4c,0x6a,0x02,0x97,0x13,0xef,0x08,0xf6,0x18,0xe1,0x5c,0xb3,0x18,0x3d,0x70,0xc0,0x76,0x5e,0xd0,0xb8,0x44,0x32,0x25,0x75,0x62,0xa2,0x80,0x78,0x8c,0xc4,0x2a,0x84,0xbc
+.byte 0x51,0xd4,0xee,0x44,0x48,0xe5,0xc4,0x48,0xbf,0xc0,0x27,0xc1,0x77,0x25,0xf5,0x59,0x6b,0x60,0xae,0xa5,0x42,0xfe,0xc3,0x06,0x91,0xe3,0xdb,0xa9,0x4b,0xe2,0x73,0x95,0x1f,0xf6,0xb6,0x66,0x71,0x63,0xb3,0x14,0x4a,0x3d,0x36,0x84,0xbe,0x2a,0x7c,0x7c,0xba,0x0e,0x8d,0x9a,0x73,0x52,0x21,0x89,0x02,0x8f,0x94,0xa5,0x9a,0x11,0x2e,0x6e
+.byte 0x78,0xf7,0x07,0xf8,0xb1,0x42,0x96,0x06,0x78,0xf0,0x53,0x86,0xec,0x2b,0x1f,0xa7,0x84,0x79,0x37,0xc7,0x61,0x83,0x8e,0x62,0x65,0x49,0xdd,0xfe,0xee,0x97,0x70,0xa2,0x73,0xb5,0x85,0xaf,0x10,0xed,0xb8,0x74,0xec,0x42,0xd0,0x14,0x47,0xa6,0x90,0x7c,0x07,0x22,0xb4,0x4e,0xfc,0x12,0xa1,0x9d,0xd4,0x73,0x8f,0x6a,0x55,0xf8,0x56,0x25
+.byte 0xdb,0x9b,0xe8,0x10,0x87,0x7a,0x4b,0x42,0x9c,0xbb,0x6e,0xf1,0xd7,0x1d,0xf4,0x07,0x31,0x9c,0x94,0x3a,0xb6,0xad,0x4b,0xf4,0x57,0x3d,0x2f,0xba,0x23,0x36,0x34,0x52,0x62,0xf7,0x64,0xc7,0x47,0xeb,0x41,0xad,0x07,0xfb,0x3e,0x08,0x74,0x92,0x58,0x0f,0x73,0xe2,0x53,0x35,0xda,0xae,0x64,0x3c,0x47,0x89,0xaf,0xce,0x59,0x35,0x75,0x8b
+.byte 0x50,0xee,0xbf,0xbe,0xd1,0xf4,0x2f,0x11,0xa3,0xfe,0xce,0xfd,0x15,0x0d,0x32,0x17,0x00,0xfb,0xad,0x02,0x70,0x5c,0xeb,0x59,0xfb,0x87,0xe5,0xed,0x0e,0xde,0x97,0xe7,0x75,0xb6,0xdc,0xe9,0xb0,0x08,0x26,0x0e,0x11,0xd4,0x4f,0xc4,0x92,0x71,0x7c,0x63,0xef,0xc0,0x14,0x64,0xe1,0x0f,0x7e,0xe6,0xcb,0x5b,0x4c,0xd4,0x16,0x8b,0x7b,0x8b
+.byte 0x2f,0x2a,0x77,0xef,0xd3,0xdf,0x56,0xc0,0x5a,0x94,0x72,0xd5,0x36,0x12,0xfa,0x25,0xd7,0x77,0x52,0xdd,0xea,0x11,0x2f,0x6b,0x16,0x6e,0xe3,0xa2,0x84,0xba,0x55,0xc2,0xb0,0xe2,0x3b,0x53,0xb6,0xa4,0xc6,0xa5,0x3f,0x1b,0xb3,0x38,0xc0,0x2f,0x1a,0x80,0xe0,0xa4,0x60,0x49,0x8c,0xe3,0x23,0x5f,0x59,0xfd,0x2a,0x0f,0xe8,0x4c,0xaf,0xd7
+.byte 0x36,0xc7,0x25,0x21,0xad,0x41,0x54,0x27,0x95,0x15,0x42,0xbc,0xb3,0x77,0x4e,0x97,0xf4,0x3c,0x54,0xcc,0x19,0x63,0x62,0x67,0x97,0x5a,0xd0,0x59,0xfb,0xce,0xcd,0xe1,0x3c,0xb6,0xc9,0x49,0xc4,0xff,0xde,0xf9,0x89,0x87,0x9c,0xdf,0x4e,0x8c,0x9d,0xe5,0xbd,0x0d,0x0c,0x6e,0x93,0xfd,0xea,0x90,0xf2,0x80,0x7e,0x00,0x9a,0x06,0x02,0x87
+.byte 0xae,0xca,0xf4,0x46,0xbb,0xb5,0x52,0xee,0x18,0xb0,0xf1,0x61,0xcb,0xe1,0x65,0x9c,0x0b,0xfb,0xe6,0x3b,0xeb,0x3a,0x1a,0x22,0x41,0x0b,0x99,0xa4,0x8e,0x01,0x5e,0x7c,0x4e,0x1a,0xaa,0xab,0xd3,0x8b,0x99,0x7f,0xba,0x6b,0xec,0xe7,0x3a,0xd6,0x55,0x46,0x20,0x1b,0x10,0x39,0x06,0xcc,0x90,0xc1,0x6a,0xa5,0x27,0x7c,0xca,0xa5,0x58,0x07
+.byte 0xd7,0xaf,0x6d,0x12,0xa6,0x68,0xc7,0x0e,0x19,0x53,0x44,0x22,0x85,0xbb,0x72,0x9c,0x4d,0xfb,0xeb,0x94,0x3a,0xa0,0x64,0xf5,0x25,0xe8,0xee,0x7a,0x3b,0x71,0x0e,0xbb,0x40,0xa2,0xb3,0xc9,0x6b,0x14,0x0f,0xc3,0x75,0xac,0x1b,0x5c,0xf1,0x34,0x51,0xcb,0xeb,0x5f,0x40,0x0f,0x82,0xe9,0xd2,0x6d,0x95,0x88,0x84,0xea,0xe9,0xe3,0xa0,0xe9
+.byte 0xef,0x3b,0x33,0xfe,0x32,0x52,0x93,0xce,0x95,0x4b,0x64,0x3c,0x97,0x76,0x91,0xd8,0xce,0xb5,0xc2,0xda,0x58,0x23,0x27,0xe2,0x3d,0xbe,0xf6,0x31,0x79,0x73,0x0e,0x31,0xd7,0xa3,0xaa,0xac,0xcf,0x31,0x1e,0x75,0x58,0x14,0x21,0x52,0x1c,0x3e,0x4f,0x2a,0x2b,0x9a,0x22,0xbc,0x42,0x68,0x5b,0x83,0xc2,0x8c,0xd4,0xe8,0xd9,0x02,0x0d,0x13
+.byte 0x2f,0x08,0xd3,0x11,0xb7,0x4b,0x84,0x67,0x43,0xda,0x20,0xdb,0x89,0xd5,0x9e,0x14,0x54,0x3d,0x49,0xda,0xac,0x3f,0x8f,0xf5,0x17,0xfe,0xb8,0x5f,0xc3,0x20,0x38,0x27,0x21,0x32,0xbf,0xf3,0x9b,0x2c,0x0b,0x9b,0xeb,0x64,0x87,0xf7,0x9d,0xed,0x15,0x05,0x21,0x69,0xcf,0x2d,0xf8,0xfb,0xf2,0x81,0x51,0x08,0xc7,0x18,0x81,0xdf,0xed,0xa4
+.byte 0x70,0xb3,0x07,0xfa,0x00,0xd5,0x65,0xb9,0x5a,0x82,0x67,0x6f,0x10,0xfc,0x46,0x05,0x9a,0x85,0x64,0x14,0x60,0x64,0x4d,0x1f,0x13,0x57,0xbb,0x7c,0x4a,0x10,0x84,0x8c,0x57,0x36,0x13,0x22,0x00,0x04,0x2d,0xcf,0x27,0x3d,0xf4,0x27,0x3e,0x32,0xb3,0x87,0xda,0x82,0xaa,0xad,0xd7,0xa7,0xc5,0x3c,0x45,0xec,0x28,0x82,0x79,0x95,0x8f,0x56
+.byte 0x50,0x5f,0xc2,0x15,0xab,0x18,0x58,0x4f,0x69,0x46,0xce,0x29,0x33,0x42,0x53,0xe9,0xea,0xe5,0xa8,0x5b,0x90,0xc4,0xf4,0xbf,0x8a,0x20,0x62,0xad,0xa5,0xea,0x6a,0x4e,0xb4,0x20,0x2d,0xca,0x90,0xdf,0xbd,0xab,0x5b,0xc3,0x33,0x7c,0x53,0x1f,0xf5,0x2e,0xc0,0xbf,0x19,0xe1,0xa1,0x5a,0x63,0xf3,0x13,0x4d,0x6e,0xef,0x4f,0x3a,0x94,0x18
+.byte 0xbe,0x79,0xdb,0xbf,0xc2,0x2c,0xb3,0x36,0x59,0xab,0x21,0x1d,0x98,0x60,0x70,0xdd,0x95,0x51,0x19,0x07,0xd6,0x68,0x0e,0x2a,0xd4,0x4c,0x30,0x18,0x1c,0xe4,0xe1,0x89,0x15,0x25,0xea,0x27,0xcf,0x51,0x56,0xc9,0xa9,0xa7,0x31,0x08,0x17,0xfb,0xfc,0xf6,0x0c,0x5d,0xf1,0x7c,0x36,0xcb,0xad,0xef,0x29,0xf5,0x2e,0x23,0x09,0xcf,0x31,0x6f
+.byte 0x74,0x12,0xd2,0xc2,0xc7,0x19,0xa5,0x6e,0x20,0x09,0x67,0xdc,0x41,0x69,0xbe,0x15,0xd6,0xeb,0x7b,0xba,0x63,0xae,0x65,0xd8,0x67,0xec,0x6e,0xcc,0x1d,0x04,0x08,0xfb,0x7c,0x34,0x1d,0x5f,0x1e,0x51,0x1c,0x30,0x72,0xd3,0x0c,0x48,0x60,0x3d,0x52,0xae,0xe6,0x78,0x44,0x6d,0xb8,0x40,0x08,0xb7,0x7a,0xa9,0xfc,0xa0,0x86,0xff,0x32,0xd6
+.byte 0x5a,0x31,0x4e,0xe2,0x65,0xab,0xb0,0x84,0xb6,0x74,0x3e,0xa6,0x67,0x7c,0xa2,0x0f,0x23,0x22,0xab,0x72,0x7e,0xeb,0x45,0xa9,0x2a,0xb4,0xd3,0xcc,0x27,0x5c,0x12,0xdb,0x14,0x68,0x73,0x0f,0x36,0xbf,0x9f,0x14,0x12,0xe9,0xef,0x04,0x2a,0x63,0x41,0x4b,0x04,0x9b,0x4c,0xc4,0xb2,0xb9,0x1c,0xc0,0xb8,0xcc,0x23,0x61,0xc4,0xed,0x27,0x1e
+.byte 0x1d,0x97,0x3d,0x40,0x4c,0x1f,0xeb,0x6e,0xc4,0xfb,0x5c,0x2d,0xf5,0xf1,0xbb,0x05,0x47,0xa2,0x1a,0x9c,0x2b,0x8f,0xce,0x98,0x09,0x6b,0x86,0x22,0xf8,0x3a,0xae,0xf3,0xb4,0x66,0x2f,0xdb,0x20,0xa5,0xc6,0xb6,0x35,0xb5,0x5a,0x68,0xb5,0x37,0x2c,0xab,0x13,0x3d,0x2d,0xcb,0x38,0xed,0x3c,0x7a,0x1f,0x26,0x08,0x58,0x94,0x52,0x30,0xec
+.byte 0x06,0x9f,0x90,0x97,0x4d,0x90,0x49,0x23,0xaf,0x00,0x90,0x6b,0x96,0x37,0x02,0x4c,0x35,0xc0,0x3e,0x66,0x2c,0x52,0xbc,0x75,0x28,0xd7,0x8f,0x25,0xbe,0x91,0x10,0x22,0x67,0xbf,0x4a,0x4d,0x62,0xc4,0xe9,0xda,0xe2,0x79,0xcc,0x76,0xeb,0x99,0x87,0xac,0x39,0x7d,0xf6,0x5a,0x37,0x85,0x30,0x33,0x65,0x3f,0xd9,0xd6,0x17,0xf8,0xf0,0x86
+.byte 0xee,0x5c,0x2f,0xb0,0xb3,0x4f,0x83,0x6c,0x4a,0x8f,0xfc,0x80,0x91,0xaf,0x4b,0x21,0x9c,0x9b,0x44,0x3c,0xed,0x67,0xfb,0xa3,0x31,0x7f,0xd4,0x73,0x72,0xb9,0xc1,0x31,0x96,0x47,0x8e,0x99,0x8e,0x62,0x1a,0xfd,0xc7,0x9d,0x2f,0x4c,0xda,0xe5,0xae,0x17,0xb6,0x40,0x5f,0x9e,0xa8,0xf2,0xcc,0xd7,0xd5,0x40,0x33,0x88,0x57,0x63,0x9b,0xde
+.byte 0x82,0x71,0x68,0xfe,0xaf,0x29,0x6c,0xc1,0x2c,0x2f,0x02,0x42,0xd7,0xa5,0x28,0x05,0xca,0xa0,0xb6,0x8c,0x43,0x90,0x05,0xe2,0x1c,0xb7,0x76,0x79,0x39,0xd3,0x23,0xe1,0xe7,0xbb,0x19,0x65,0x1a,0xb4,0xbb,0x5a,0xcf,0x43,0x70,0x26,0x1a,0x2f,0x61,0x78,0x75,0x08,0xb0,0x88,0xe5,0x4a,0x46,0x0a,0xfc,0xcb,0x46,0x18,0xb0,0x8d,0x9b,0xeb
+.byte 0xf5,0xe1,0x83,0x04,0x84,0x4f,0xd6,0xa0,0x4f,0xb2,0x4c,0x44,0x08,0xde,0xd6,0x82,0xb5,0x9a,0x45,0x15,0xb8,0x21,0xc7,0xf5,0xe2,0xfd,0x02,0x27,0x18,0x13,0x24,0x18,0x01,0xd1,0x2a,0xff,0x63,0xf2,0xa4,0x97,0xc8,0x4b,0x3b,0xae,0x49,0x47,0x54,0xe8,0x75,0xe7,0x16,0x77,0x22,0x10,0x7b,0x3c,0xf0,0xdb,0x49,0x6e,0xd6,0x55,0x9d,0x43
+.byte 0x6f,0x6e,0x2d,0x97,0xea,0x16,0x2e,0x0c,0x85,0x89,0x67,0xe1,0x7b,0x38,0xa6,0x2b,0x89,0xf0,0xcd,0x90,0xcd,0xba,0x9a,0x70,0xa9,0xe3,0xff,0xe0,0xbd,0x15,0x3e,0x4b,0x13,0x62,0x7b,0x59,0x64,0x18,0x96,0xe9,0x6a,0xf3,0x69,0x2d,0x2d,0x25,0xe7,0x91,0xd3,0xbc,0x74,0x58,0x66,0x2f,0x5e,0x8b,0x52,0xf6,0x91,0x24,0xa8,0x6f,0xa5,0xce
+.byte 0xa1,0x4e,0x3b,0xe9,0xc5,0x30,0x7e,0xa5,0xc7,0xe2,0xb3,0x71,0x3b,0x25,0xb9,0x5f,0xe5,0x9c,0xf8,0x46,0x23,0xc5,0xa2,0xc1,0x1f,0x3f,0x43,0xa6,0xaa,0xf1,0x36,0x27,0xc6,0xa8,0xed,0x0d,0x50,0x71,0xf1,0x38,0x27,0xb7,0x16,0x43,0x7c,0x7f,0x77,0x5b,0x25,0x59,0xb7,0x08,0x0d,0xc8,0x84,0xe4,0xc2,0x03,0x95,0xe5,0xf3,0x0a,0x9c,0x1f
+.byte 0xde,0x98,0x7c,0xa9,0xe2,0x70,0x9e,0xde,0xf6,0x80,0xd0,0xf8,0x86,0x4a,0x7a,0x0d,0x16,0xaa,0xde,0xba,0x02,0x30,0x8a,0xe6,0x03,0x0f,0xa1,0xf1,0xe8,0xd6,0xf8,0xce,0x7b,0xba,0x74,0xa8,0x25,0xb0,0x49,0x22,0xa6,0x81,0x7e,0x71,0xc5,0x97,0x9e,0xa8,0x46,0xa7,0xe9,0x8b,0x7c,0x7c,0x4c,0xc5,0x3c,0x93,0x08,0xb9,0x8b,0x3c,0x33,0xd6
+.byte 0xc4,0x37,0xc8,0x05,0xe7,0xfe,0xc2,0x7c,0x02,0xe6,0xda,0x09,0x52,0x2c,0xc6,0xa8,0x6e,0x44,0x7e,0x55,0xf0,0x32,0x10,0xcb,0x1e,0xa7,0x77,0x8d,0xc7,0xfe,0xb5,0xf6,0x3b,0x49,0xf2,0xfb,0xe0,0x41,0x98,0xd3,0x17,0xa6,0x5d,0x3f,0x4c,0x95,0xb0,0x02,0x8d,0xab,0x36,0xb7,0xa0,0x92,0x40,0x5e,0x15,0xfb,0xa9,0xb4,0xa3,0x04,0x8b,0x6b
+.byte 0x81,0x44,0x59,0x22,0x10,0xcb,0xc5,0x52,0x3f,0x78,0x70,0x00,0xe2,0xa2,0xf7,0x76,0x62,0x72,0x06,0x8b,0xbb,0x56,0x0f,0x8c,0x67,0x2f,0x52,0x3f,0x3b,0xdc,0x15,0x79,0x55,0x89,0x6c,0x61,0x23,0xcc,0x6b,0x41,0x77,0xe5,0xc4,0x90,0x51,0xc3,0x87,0x22,0x1e,0x89,0xf5,0x5b,0x41,0xd7,0x34,0x22,0x3c,0xbd,0x29,0xaa,0x54,0xed,0x5a,0x90
+.byte 0x17,0x24,0xba,0x7a,0x46,0x5f,0x54,0x33,0x56,0x7e,0x2d,0x03,0x59,0xcb,0xbb,0x7a,0xce,0xbb,0x8d,0xf7,0xb6,0x38,0x00,0x18,0x6a,0xa1,0x6c,0xdf,0x42,0x49,0x4d,0x9b,0x4f,0xd6,0x85,0x54,0x1f,0xad,0x17,0xdd,0x66,0x0e,0x7c,0x30,0x86,0x82,0x1c,0x5a,0x81,0x08,0x55,0x51,0x5b,0x06,0x54,0x52,0x3e,0x8b,0x6e,0x72,0x92,0xd2,0x05,0x5d
+.byte 0xe4,0xe8,0x0e,0x62,0x1d,0xec,0xb1,0x7f,0x42,0x05,0xd5,0xd3,0x60,0xd4,0xdc,0xa4,0x48,0xc0,0xf0,0x89,0xef,0x5b,0xae,0x5f,0xcd,0xf0,0x62,0xaa,0x3e,0xd5,0x1a,0xbe,0xe3,0x08,0xd5,0xe8,0x00,0x21,0x8c,0x0b,0x0c,0x8e,0x24,0xac,0xb2,0xea,0x44,0x9f,0xce,0x53,0x45,0x9a,0x85,0x67,0x99,0x85,0xea,0x92,0xa7,0x1d,0x86,0xb4,0x3b,0x22
+.byte 0xa2,0xcd,0x35,0x65,0xb5,0xa6,0xdb,0x6d,0x48,0xd1,0xa4,0x76,0x0c,0x00,0x30,0x62,0x86,0x06,0xda,0xa8,0xfe,0xec,0x70,0x87,0x4a,0xe8,0x2e,0x4d,0xe3,0x94,0x0b,0xdf,0x81,0xcd,0xfe,0x23,0x79,0x2c,0x2b,0xae,0xf7,0x75,0x49,0x47,0x24,0x46,0x09,0x10,0x62,0x39,0x3b,0x50,0xf1,0xfa,0xf7,0x5f,0xe4,0x7c,0xa5,0xc0,0x25,0x9e,0x20,0x4d
+.byte 0xc8,0x6b,0x93,0xc5,0x4a,0x6b,0x62,0xb8,0x3b,0xe5,0x0d,0x92,0x70,0x26,0xa5,0x2b,0xd0,0x9f,0x03,0x8b,0xd3,0x1a,0xc4,0xb0,0xa3,0xc7,0xf4,0x35,0xe5,0x1d,0xe0,0xaa,0x43,0xab,0x64,0x10,0x2b,0xa4,0x09,0x42,0xee,0xba,0xb7,0xbf,0xfd,0xa6,0xff,0x76,0xe5,0x12,0xd6,0x50,0x9a,0x26,0x6b,0x3a,0xd3,0xe6,0x7d,0x3e,0x0e,0x9b,0x95,0xd7
+.byte 0xbf,0xb6,0x7e,0xfb,0x3c,0x24,0xa4,0x26,0x98,0x88,0x81,0xf4,0x56,0xa4,0xf7,0xe8,0x87,0x15,0x5e,0x9f,0x84,0xdd,0x04,0x66,0x43,0xd8,0x76,0xc2,0xa3,0xfd,0x4b,0x58,0x09,0x06,0xa6,0x60,0x5c,0x3f,0x75,0x80,0xd7,0xc4,0x29,0xf9,0x0b,0x1e,0x4d,0xe5,0x26,0xf6,0xae,0x7a,0xc1,0x05,0xf3,0xf1,0x6c,0xee,0xed,0x56,0x0b,0x51,0x66,0xbe
+.byte 0x99,0xec,0x9c,0xc2,0x97,0xe2,0xed,0x09,0x1d,0xa8,0x18,0xaa,0x1c,0x9e,0x20,0x62,0xb1,0x80,0x68,0x3e,0x28,0x1f,0x4f,0x50,0x0e,0x41,0xaf,0x17,0x44,0x79,0x16,0xca,0x17,0xe9,0x13,0x66,0x0a,0x04,0x68,0x41,0xe2,0x1d,0xc7,0x00,0x1e,0x66,0xa3,0x6c,0x2d,0x52,0x8c,0x0b,0x7c,0x03,0x48,0x73,0x3b,0xa9,0x84,0xe5,0x31,0x12,0x0f,0xe8
+.byte 0x1e,0x58,0x4d,0xd0,0x1b,0xb7,0xcf,0x75,0xd5,0x2c,0xca,0x33,0x17,0x95,0x9c,0x30,0xc7,0x7f,0xe9,0xde,0xae,0x19,0x72,0x00,0x2a,0xf5,0xde,0x93,0x3f,0xf5,0x44,0xe5,0xf8,0xc7,0xeb,0x1a,0x5d,0x5b,0x11,0x30,0x09,0xf5,0x49,0x66,0x70,0x1a,0xd5,0xe6,0xfc,0xe6,0x59,0x3d,0x17,0x6c,0xb5,0x0c,0xdf,0x1e,0x9c,0x48,0xd1,0xde,0x12,0xd6
+.byte 0xc8,0x48,0xc8,0x73,0x6d,0xfc,0xec,0x07,0xce,0x02,0xe5,0xb3,0x18,0xb9,0x55,0x4d,0x64,0x07,0xf3,0xaa,0x3c,0xf1,0x71,0x22,0x31,0xbb,0x74,0x2c,0x9f,0x7b,0x68,0x9d,0x80,0x49,0x32,0x48,0x9b,0x54,0xf3,0x74,0x37,0xac,0x4e,0xb2,0x96,0xdf,0x9d,0xeb,0x43,0xe0,0xd0,0xa0,0xe3,0x77,0xbd,0x8b,0x92,0x95,0x9d,0x63,0x8d,0xa8,0x23,0x07
+.byte 0xb0,0xcb,0x9d,0x8d,0x3f,0xe2,0xd5,0x81,0x6a,0xe5,0xc2,0xfe,0xda,0x1c,0x25,0x25,0x5b,0xa8,0xad,0x06,0xec,0x0d,0x4b,0x68,0xc3,0x45,0x81,0x38,0xb0,0x22,0x71,0xa4,0x2b,0xf3,0xa6,0x05,0xae,0x0c,0x48,0x94,0x0d,0x3d,0x48,0x51,0x76,0xdf,0x79,0x66,0x0e,0x28,0xc0,0xc1,0x6f,0xc8,0x8f,0xf7,0x7d,0x37,0x06,0xa2,0x8a,0x3a,0x6b,0xab
+.byte 0xe0,0x55,0x8e,0xec,0x89,0xe2,0xca,0xc4,0x01,0x03,0x5d,0xa1,0x84,0x21,0x44,0xbb,0x6b,0x36,0x63,0x57,0x4f,0x54,0x88,0x81,0xbe,0xf8,0x53,0xf7,0x57,0xee,0x30,0x85,0x03,0x11,0x86,0xff,0xe4,0xd6,0xc4,0xf0,0x3c,0xcf,0xfd,0x38,0xd8,0xcb,0xd0,0x96,0x03,0xf2,0xc7,0xfa,0x18,0xc8,0x1b,0xe6,0x77,0x3c,0x61,0xa9,0x14,0xdb,0xb4,0x5c
+.byte 0x2d,0xee,0xd7,0xe8,0xc4,0x0c,0x69,0x0c,0x55,0xe2,0x99,0x4b,0xc4,0x89,0xc8,0xee,0x48,0x0e,0x16,0xd7,0xa4,0x78,0x25,0xda,0xd3,0xa8,0xac,0x89,0x66,0x67,0x0d,0x51,0x21,0x0e,0x91,0xfb,0xb5,0xab,0x33,0xcb,0x3e,0xc7,0x0f,0x03,0x22,0x51,0x71,0x03,0xa0,0x3c,0xa9,0x35,0xcb,0x40,0xa7,0xbe,0xe7,0xc3,0x51,0x43,0xd8,0x9a,0x24,0xb7
+.byte 0x7e,0xfb,0x26,0x8d,0xa5,0x1a,0x6b,0xe7,0x97,0xe4,0xdd,0xc0,0x3e,0x98,0x67,0x55,0x79,0x56,0xb9,0x7e,0x25,0x4c,0x5c,0x5a,0x47,0x0a,0xce,0xb6,0x4d,0x2c,0x69,0x73,0xaa,0xf0,0x12,0xbb,0x9d,0xe1,0x60,0xc4,0x5b,0x10,0x32,0x6d,0x89,0x54,0xb1,0xfe,0x36,0xbe,0xb2,0x60,0x9a,0x91,0x73,0x9c,0x32,0x61,0xad,0x9a,0xf7,0x56,0x5f,0x5a
+.byte 0x54,0xaf,0xb2,0x0c,0x5b,0x1a,0xe6,0x98,0x94,0xed,0x69,0x0b,0x8d,0x06,0x87,0xc9,0x20,0xdc,0x92,0x2d,0x5e,0xba,0xbb,0x15,0xef,0xc1,0x07,0x18,0x44,0x3f,0xf4,0x48,0x3e,0x7b,0xa4,0x9e,0x14,0x6b,0x97,0xdd,0x68,0x33,0x18,0xdd,0x47,0x08,0xa6,0x3b,0x8d,0x79,0x58,0x92,0xd9,0xda,0x82,0x34,0xa7,0x99,0xbc,0x43,0xa3,0x0a,0x7e,0x85
+.byte 0x0b,0xab,0x0e,0xc2,0x94,0x22,0x2d,0x05,0x99,0x9d,0x5c,0xc7,0xb2,0x7b,0x18,0x3e,0xb2,0xdd,0x47,0xb3,0xd7,0xcf,0x19,0xc7,0x55,0x5e,0x64,0xd8,0x7b,0xb4,0xf6,0x11,0x72,0xed,0xbd,0xfc,0xd8,0xe9,0x9f,0xcd,0x9a,0xeb,0xb2,0x6c,0x04,0xb9,0x88,0xf7,0x60,0x68,0xc3,0xf2,0xfd,0xa0,0x8c,0x82,0xc5,0xf7,0x5d,0xc3,0x9a,0x1e,0x49,0x27
+.byte 0x69,0x35,0xb0,0x8f,0xe9,0xb3,0xe4,0x09,0xd8,0x1a,0x73,0x9e,0x56,0x41,0xfa,0xe0,0x94,0x9e,0x0e,0x65,0xe6,0x5b,0xe2,0x12,0x39,0xca,0x86,0x0c,0xae,0xee,0x24,0x58,0xfd,0x85,0x09,0x7a,0xad,0x54,0xde,0xda,0x06,0x73,0x7d,0x11,0x7e,0x91,0x44,0xf3,0x4b,0x61,0xce,0x8a,0xff,0x76,0x92,0x2e,0x43,0x52,0xcf,0x63,0x3f,0xc4,0x1f,0x7f
+.byte 0x4d,0x67,0x21,0xed,0xd7,0x88,0xdb,0x36,0x56,0x11,0xb2,0x3b,0xee,0x5f,0x2d,0x5f,0x17,0x98,0xa1,0xd5,0xcc,0x82,0xfd,0xc2,0x56,0x69,0xaa,0x68,0x86,0xaf,0x48,0x77,0xba,0xe9,0xd9,0x42,0xcd,0xaa,0xe3,0xad,0x2b,0x17,0xef,0xd3,0x54,0xc5,0x4e,0x31,0x0b,0x14,0xb7,0x73,0xc1,0x6f,0xc3,0x06,0x41,0x1a,0x11,0x19,0x9f,0xe9,0x9f,0x61
+.byte 0x4f,0x13,0x9b,0x3e,0xcd,0x7c,0xd6,0x2a,0xb3,0x87,0x84,0x58,0x58,0x10,0x1f,0xa0,0x2e,0x5c,0x15,0x8b,0x5e,0x37,0xd4,0x22,0x93,0xd9,0x67,0xe1,0xa8,0x35,0xe2,0x95,0xd8,0x4c,0x2c,0x65,0xc9,0x21,0xaf,0xf9,0xdd,0x3d,0x2c,0x0e,0x0c,0xcc,0x6b,0xad,0xb3,0x6d,0xd2,0x3e,0x65,0x8e,0x82,0x70,0x41,0xd6,0xaa,0x97,0xab,0x38,0x78,0xe4
+.byte 0x62,0x7c,0x5f,0x22,0xa3,0x1e,0xf2,0x6c,0xfe,0x3c,0xa9,0xb5,0x57,0xcd,0x96,0x11,0xd0,0x8b,0xcf,0x6d,0x06,0xcf,0x7c,0xda,0x1d,0xe4,0x22,0x5c,0x5d,0x9f,0xa8,0x24,0x55,0x45,0x93,0xc6,0xeb,0xfc,0xb5,0x71,0x5a,0x1d,0x52,0x40,0x95,0xc7,0x76,0x32,0xfb,0x2b,0x0c,0x7d,0x64,0xfa,0x5b,0x5e,0x7a,0x3b,0x0b,0xa0,0x99,0x5d,0x19,0x16
+.byte 0xe4,0x8e,0xae,0x49,0xee,0xc5,0xb2,0x24,0xd7,0x0b,0xa4,0x20,0xa6,0x74,0xc4,0x36,0x1d,0x43,0x25,0xd6,0x71,0x54,0x69,0x79,0xea,0xa3,0xd5,0xe9,0x75,0x53,0xcf,0x99,0x4e,0x3b,0xc0,0x52,0x28,0x80,0xe5,0x07,0x65,0x83,0xb3,0x24,0xfe,0x13,0x92,0xd6,0x18,0xf7,0xa3,0xeb,0x9e,0xf0,0xd5,0x69,0x93,0x79,0xda,0xb7,0x2e,0xe2,0x01,0xdd
+.byte 0x9a,0xc3,0x7b,0x3b,0x17,0x88,0xe5,0xe9,0x9b,0x46,0x5c,0x5f,0x0e,0x1e,0x80,0x9b,0x11,0x1f,0xa4,0x08,0x90,0x14,0x08,0xb4,0x73,0x32,0x72,0xbe,0x43,0x4f,0x70,0x90,0xe7,0x80,0xdd,0xfd,0xa7,0xea,0x13,0xd9,0x5d,0xae,0x93,0x24,0x2b,0x1e,0xc7,0xf4,0x81,0xbb,0x5f,0xb0,0xb9,0xe4,0x35,0x39,0xf4,0x9a,0x49,0xb5,0xc0,0x47,0x18,0xc3
+.byte 0xcc,0xbe,0x26,0x36,0x44,0x2d,0x65,0x24,0xa3,0x09,0xde,0x69,0x3b,0xb8,0xdc,0x52,0x98,0x2e,0x38,0x5f,0xf7,0xb1,0x84,0xdd,0xea,0xe2,0xe5,0xec,0x96,0x31,0xb1,0x93,0xc0,0x5b,0xc4,0x87,0x4a,0x51,0x58,0x2d,0xea,0x47,0xab,0xfd,0xd3,0x76,0xf1,0xbc,0x52,0xa7,0x94,0x6c,0x74,0x1e,0x84,0x07,0x1f,0x5c,0x18,0xb9,0x06,0x37,0xf0,0xfb
+.byte 0xbd,0x5d,0xaf,0xa8,0x06,0xc9,0x86,0xf0,0xd1,0x78,0x84,0x95,0x01,0xdd,0x70,0x9d,0x71,0x51,0xb7,0x80,0x69,0xbe,0xe8,0xfb,0x8f,0x43,0x72,0xd9,0xa9,0xf1,0x90,0xbb,0xf1,0xb5,0xc0,0x75,0x93,0x4e,0x14,0xc5,0x14,0x77,0x59,0xf8,0xe5,0x81,0x11,0x25,0x48,0x51,0x46,0x2a,0x69,0x59,0x92,0xe7,0xa7,0x39,0x96,0xad,0x67,0x30,0xaa,0xb2
+.byte 0x5d,0x95,0x94,0x83,0x83,0x93,0xf3,0x52,0x81,0x1c,0x27,0x78,0x1d,0x19,0x35,0x6e,0x8f,0x16,0xe5,0x3b,0xce,0x80,0x2a,0x3a,0x89,0xb7,0x51,0xfc,0x34,0x24,0xa2,0x61,0x95,0x9e,0xd4,0x69,0xa1,0x2f,0x49,0x16,0x2d,0x12,0x05,0xfe,0x69,0x62,0x12,0xa4,0x2c,0x04,0x7b,0xce,0x3f,0x34,0xc4,0x48,0x1a,0xe6,0x64,0x4b,0x8a,0xbf,0x68,0xdd
+.byte 0x54,0x15,0xd3,0x25,0x49,0xdd,0xed,0x5e,0x2c,0x0e,0x25,0xbe,0x77,0xcf,0x94,0xf4,0xe9,0xf3,0xcc,0xe6,0x94,0xf9,0xb2,0x5d,0x24,0x53,0x63,0xbb,0x66,0x8d,0x73,0xef,0x79,0x5c,0x95,0x1a,0x64,0xc3,0xfd,0xc0,0xd3,0x71,0xf4,0x79,0x19,0x79,0xa5,0x30,0xf8,0x2c,0x28,0xc2,0xc2,0x9d,0x12,0x50,0x95,0x38,0xec,0xd5,0xc6,0x28,0x94,0xaa
+.byte 0x83,0x66,0x3b,0xe3,0x51,0xc7,0x6a,0x75,0x2a,0x9b,0xb9,0xb0,0xa2,0xe1,0xfd,0xaf,0x58,0xd2,0x4b,0xf4,0x22,0xef,0x77,0x1e,0xa0,0x00,0xd7,0x9e,0x20,0x63,0x87,0x1d,0x98,0xab,0x0e,0x57,0x31,0x4b,0xda,0x90,0x3a,0xe6,0x6e,0x5e,0xd4,0x17,0x06,0x83,0x4f,0x90,0x33,0x1c,0xe5,0xea,0xf7,0x8d,0x95,0xa2,0x1e,0x7d,0x27,0x15,0x49,0x68
+.byte 0x3a,0x54,0xe3,0x1e,0x60,0x72,0x42,0xa6,0x8c,0x5b,0x63,0x1d,0x7d,0xb1,0xe2,0x7e,0x8b,0x19,0xf4,0x25,0x6c,0x77,0x64,0x15,0x5e,0x4c,0xfa,0x35,0x68,0xd2,0x54,0x11,0x5a,0xac,0x85,0xb0,0xb3,0xe8,0xa8,0x70,0x36,0xa8,0xe5,0x04,0xd1,0x82,0xdc,0x62,0x63,0xe6,0x3f,0x86,0x46,0x77,0x08,0x6b,0xa8,0x09,0xd0,0x56,0x09,0x87,0x9c,0x65
+.byte 0x8e,0x53,0xae,0xa6,0x2b,0x59,0x23,0xca,0xe9,0xc7,0xc4,0xb5,0xb9,0xca,0x20,0xf6,0xcc,0x62,0xfd,0xb5,0x66,0x66,0x86,0x99,0xb2,0x5a,0xeb,0xac,0xff,0x22,0xf4,0x94,0x9c,0x6d,0xc9,0xce,0xf3,0x8d,0x26,0x7f,0x06,0x40,0x71,0x8b,0x3e,0x5c,0x3e,0xe6,0x11,0x64,0x91,0x79,0xbe,0x66,0x80,0xd2,0xf6,0x2d,0x28,0x4b,0x6c,0x8d,0x9c,0x5b
+.byte 0x1e,0xd1,0x15,0xb0,0xdf,0xfb,0x57,0xaf,0x4a,0xab,0xde,0x12,0xe9,0xb8,0x41,0x3d,0xc3,0xff,0xb2,0xc1,0x86,0xb0,0x06,0x5b,0xaf,0xa4,0x30,0x62,0xd0,0xd8,0x91,0x36,0x28,0xc1,0xc2,0xef,0x60,0x5d,0x42,0x04,0xd5,0x6b,0x10,0xa9,0x6c,0x88,0x5c,0x56,0x59,0x4a,0x87,0xdc,0x7c,0x41,0x03,0xb3,0x7c,0x35,0x8c,0x52,0x0e,0xc1,0xd5,0xdf
+.byte 0x9b,0x8a,0x2e,0xc2,0x6b,0x06,0x7f,0xb4,0x93,0xc9,0x52,0xd0,0xc5,0x57,0x78,0x9e,0xf9,0x08,0x36,0xbc,0x4b,0xc1,0xbd,0x71,0x35,0xf8,0x73,0xae,0x9c,0xbc,0xf1,0xd1,0xba,0xe3,0x7f,0x49,0x9b,0x9b,0xb3,0xe2,0x7d,0x7d,0x18,0x6d,0x0d,0x96,0xe3,0x50,0x28,0xf2,0x7c,0x7a,0x71,0x27,0x33,0x3c,0xd3,0xeb,0x3d,0x5a,0x79,0xb5,0x69,0xed
+.byte 0x40,0x38,0xbe,0xc9,0xad,0x11,0x7b,0x9d,0xe6,0x71,0xc8,0x89,0x54,0x51,0xf0,0x8f,0xdc,0xad,0x96,0xc3,0x04,0x60,0x5f,0x6d,0xa0,0x37,0xba,0x1c,0x69,0xca,0x42,0x26,0xeb,0x31,0x34,0x8d,0xae,0x25,0xe2,0x29,0x8d,0x19,0x9f,0xfa,0x75,0x91,0x4b,0x51,0xcd,0x76,0xd6,0x8f,0xa2,0x40,0x79,0xc3,0xbb,0x61,0xaf,0xc4,0x69,0xf5,0x8b,0x8a
+.byte 0xb6,0x2c,0x25,0xb9,0x3c,0x8e,0x13,0xa4,0x0f,0x52,0x72,0x11,0x4b,0x89,0x63,0x01,0x05,0x54,0xd5,0x0d,0x5f,0x91,0x59,0x84,0x64,0xac,0xf7,0x9c,0xa3,0x48,0x31,0x4a,0x2e,0xea,0xf8,0xf8,0x0e,0xf0,0xd9,0x4d,0x06,0x60,0x11,0x4a,0x72,0x6f,0x93,0x93,0x85,0xf0,0x20,0x55,0x8b,0x37,0xf1,0x29,0x92,0x2d,0x1f,0xa1,0x6c,0x7c,0x90,0x4f
+.byte 0xdb,0x78,0xcc,0x6c,0xb2,0x14,0x85,0x07,0x34,0xc8,0x98,0x18,0x52,0x2d,0x6b,0x13,0x63,0xc5,0x31,0x20,0x8e,0xa9,0x88,0x6b,0xb3,0x3f,0x1a,0x68,0x2f,0xf9,0xf3,0x97,0x29,0x68,0x22,0x89,0xb0,0x45,0xc4,0xf4,0x1f,0x31,0xba,0x97,0x14,0x59,0xae,0x05,0xe0,0x99,0x5b,0x29,0xcf,0xe3,0xf0,0x2a,0x0c,0xca,0x5f,0xc1,0xe7,0xe7,0x11,0x48
+.byte 0x73,0xc0,0x86,0x0b,0x59,0xc2,0x8a,0xfa,0x44,0x51,0x1c,0x84,0xdf,0x2f,0x4d,0xab,0xca,0xea,0xe1,0x48,0x9a,0xa1,0x86,0x60,0x47,0x7a,0x86,0x30,0x6a,0xba,0xbe,0x6a,0x9b,0x34,0xf4,0x52,0x0e,0xae,0x7f,0xbd,0xe0,0xf4,0x5f,0xfd,0xbc,0x57,0x02,0x95,0x6f,0xad,0x78,0x2e,0xa7,0x46,0x1c,0x2d,0x98,0x40,0xb7,0xfa,0xb5,0x08,0xee,0xb5
+.byte 0x25,0x51,0xaa,0x1a,0x14,0x41,0x48,0xe0,0x8f,0xe7,0x2f,0xfc,0xfd,0x47,0x10,0x55,0x90,0x02,0xeb,0x7f,0x0d,0x40,0xa8,0x4b,0x82,0xdc,0xab,0x43,0x35,0x62,0xa1,0x1d,0x5a,0xb0,0xc0,0x93,0x75,0x3d,0x68,0xd9,0xf8,0x31,0x22,0xfd,0x30,0xda,0xea,0xea,0x7c,0x30,0xf8,0x6f,0x75,0x5f,0x07,0x39,0xfe,0x69,0x93,0x73,0x22,0xa2,0x72,0xed
+.byte 0x39,0x2f,0x00,0x5c,0xc3,0x14,0x86,0x90,0xda,0xc9,0x09,0x43,0x80,0x85,0x22,0x98,0xb0,0x4e,0x05,0x47,0x8f,0xc7,0xba,0x2e,0x4c,0x8f,0x57,0x8a,0xe9,0xb0,0x97,0x3b,0x51,0x12,0xcb,0x88,0xfd,0x5e,0x7f,0xa6,0xc6,0x00,0xd0,0x3a,0x3a,0x70,0x9e,0x56,0x28,0xa0,0x08,0x76,0x58,0x57,0x4a,0x0f,0xff,0x31,0x44,0x08,0x6c,0x23,0x79,0xad
+.byte 0x35,0x95,0xc5,0xc8,0x26,0x0f,0xb3,0x17,0x04,0x1d,0xde,0x16,0x5d,0xb8,0x71,0x76,0x89,0x0b,0xd6,0xd8,0x9d,0xa1,0xdf,0xcb,0xb5,0x1c,0x86,0xc3,0x15,0x8d,0xaa,0x25,0x82,0xbf,0x6b,0x06,0xfb,0x1b,0xf5,0x11,0xaa,0x14,0x0e,0x67,0x7f,0xbd,0x46,0x21,0x8f,0x6d,0xbd,0x63,0xe6,0x14,0x05,0xa2,0xee,0x56,0xee,0xe6,0x37,0xf9,0xc0,0x2f
+.byte 0xc9,0xe0,0x8e,0xdb,0xf7,0xf6,0xcb,0x83,0x79,0xcc,0xe3,0xf6,0x30,0x9d,0x56,0x31,0x40,0xd2,0x50,0x25,0xb6,0x89,0x16,0x97,0x65,0xd8,0x8d,0x1a,0xa5,0xf4,0x47,0xfc,0x4c,0x73,0x07,0x42,0x9c,0x8f,0x7f,0x10,0xb4,0x96,0x33,0x1e,0xe2,0xff,0x0c,0x33,0x35,0xbc,0x37,0x01,0x2b,0x67,0xda,0xca,0xcf,0x87,0xa2,0x38,0x71,0x6b,0xf4,0xcf
+.byte 0xa6,0xc6,0x6a,0x90,0x5c,0xa0,0x8b,0x66,0x44,0xc7,0xc2,0x05,0x24,0xee,0x53,0x99,0xf3,0x07,0x78,0xb0,0x17,0xf8,0x11,0xf9,0x52,0x20,0x41,0xc5,0xdb,0x4e,0x92,0xd3,0xeb,0xd2,0x86,0xea,0x9b,0xc3,0x4c,0x1b,0x75,0xcd,0x15,0x0c,0xe0,0x28,0xe9,0xe1,0x99,0x98,0x96,0x33,0x06,0xea,0xa8,0x4e,0xde,0xc1,0x1c,0xfe,0x6c,0xca,0xac,0x6d
+.byte 0xc4,0x3a,0x7d,0xd2,0x41,0xf5,0xb3,0x7d,0x1c,0x28,0x93,0x72,0xf8,0x08,0xc1,0x71,0x72,0x4c,0x41,0x68,0x38,0x80,0x2e,0x4b,0xa6,0xc5,0xc7,0xb4,0x24,0x29,0xd0,0xce,0xb2,0x3d,0xc4,0x60,0x5b,0xeb,0x2d,0x80,0x13,0xee,0x95,0x41,0xfe,0x49,0x6d,0x89,0xc0,0x7a,0x61,0x51,0x3f,0xbb,0x24,0x7c,0x64,0x5e,0x9f,0xf7,0x60,0x88,0x95,0xe8
+.byte 0x60,0xc5,0xf6,0xc3,0xc3,0xd4,0x43,0xce,0xf9,0x4e,0x35,0xf2,0xfa,0xb0,0x2b,0xe3,0xfe,0xb8,0x88,0x19,0xf2,0x89,0xc0,0xb5,0x00,0x61,0xc8,0xe5,0xaa,0xde,0x18,0xb4,0xd4,0x21,0xbe,0xcc,0x61,0xc7,0xc9,0xfe,0x22,0xcc,0x65,0xf6,0x79,0xe8,0x4d,0x1c,0x30,0x31,0x7a,0xd4,0xbc,0x98,0x2d,0x72,0x5e,0x5c,0x4f,0x7e,0x52,0x9c,0x95,0x20
+.byte 0x29,0xa4,0x0b,0xf7,0xb2,0x7d,0xcc,0xc3,0x8c,0x94,0xb0,0x09,0xf4,0x6f,0x59,0x63,0x91,0x2a,0x06,0x80,0x09,0x01,0x3c,0x73,0x83,0x42,0xa1,0x5c,0x0f,0x42,0xf4,0x74,0x3c,0x24,0x8c,0xbe,0x91,0x73,0xdf,0xf1,0xea,0x21,0xbd,0xc9,0x36,0x17,0xca,0x81,0x28,0xd9,0x4a,0xc4,0x2e,0xdf,0x4c,0x4f,0xbd,0x1e,0xbc,0xe9,0x32,0x12,0xd3,0x8f
+.byte 0x48,0x9b,0x4f,0x49,0x23,0x54,0x15,0x15,0x14,0x8b,0x18,0x64,0x7d,0x08,0x7f,0xc4,0x56,0x01,0x94,0x4e,0x50,0xe8,0xf2,0x4a,0xb5,0x3c,0xa0,0xb5,0xaf,0x55,0x70,0x44,0x41,0x5c,0xe6,0x61,0x5a,0xbb,0xf2,0xe6,0xc9,0x05,0x33,0x45,0x8f,0xbc,0xe5,0x59,0x7f,0x66,0xc5,0x61,0x4d,0x1b,0xc7,0xee,0x45,0x7d,0x57,0x8f,0x6c,0x9d,0x8b,0x87
+.byte 0x98,0xa8,0x58,0xac,0x4a,0x31,0x79,0xd6,0x26,0x08,0x2f,0x28,0x3f,0x31,0x77,0xad,0xff,0xe1,0x9d,0xa8,0xf7,0xe0,0x76,0x66,0x48,0x00,0x52,0xe8,0x9a,0xb2,0x47,0x5e,0x0a,0x87,0x86,0xaf,0xf6,0x7d,0x46,0x78,0x66,0x68,0xf7,0x68,0x0c,0x6f,0x5c,0xd7,0x09,0xc0,0xd7,0x90,0x98,0xe2,0x5c,0x07,0xe9,0xd1,0x58,0x48,0x57,0x9f,0x48,0x99
+.byte 0x87,0xdf,0x06,0xc1,0x35,0x0f,0xd8,0xb0,0xa9,0xfa,0xdc,0x31,0x76,0xd1,0xad,0x47,0x80,0xe4,0x74,0xe0,0xda,0x4b,0x77,0x8b,0x71,0xab,0x9a,0x8e,0xd7,0x6b,0x91,0xb1,0xdb,0x78,0xd2,0x86,0xf7,0x61,0x1b,0xdc,0x34,0x57,0x32,0x51,0xee,0xd3,0xff,0xb2,0x6c,0x6a,0x79,0x90,0x9c,0x1f,0x6b,0xe7,0x43,0x20,0x05,0x4f,0x66,0x83,0xd0,0x56
+.byte 0xe1,0x21,0x63,0xf4,0xd6,0x96,0x91,0xcb,0x51,0x3c,0x13,0x88,0x97,0x26,0x88,0xda,0x7c,0xd4,0x0d,0xcb,0xdf,0xc2,0x7d,0xcd,0x2c,0x0e,0x28,0x23,0x21,0x5f,0xbe,0x5d,0x62,0x58,0x6c,0xa7,0x45,0xae,0x1f,0xac,0x35,0x53,0xdb,0x2c,0xa6,0x71,0xe4,0x11,0x5e,0x59,0xbe,0xd5,0x20,0x2a,0xc4,0xcd,0x4c,0x1b,0xe0,0x38,0xef,0x02,0x0c,0x5f
+.byte 0x5a,0x1b,0xf9,0x1e,0x32,0x63,0xd7,0xa6,0x0f,0x1d,0x98,0xd5,0x3a,0x0f,0xf6,0xcc,0xfc,0xd6,0xb4,0x87,0xc5,0x76,0xd8,0x3e,0x72,0xb0,0x20,0xfe,0xb3,0xfc,0x48,0x4c,0xd1,0x71,0xcd,0x13,0xef,0xe8,0x40,0xd9,0x0d,0xf6,0x1d,0x5b,0xa4,0x26,0x56,0x8c,0x66,0xcb,0x18,0x5a,0x5f,0x86,0x43,0x2c,0xa4,0x1e,0x00,0x3f,0x09,0xbf,0x8e,0x61
+.byte 0xad,0x2a,0x44,0x97,0x35,0xb2,0xf3,0x50,0x5f,0xfa,0x01,0x74,0xbf,0x70,0x46,0x38,0xf1,0x15,0xaa,0x04,0xfe,0xe9,0x3f,0x43,0x2f,0x53,0xcb,0xea,0x5c,0x04,0x8e,0xe6,0x43,0xeb,0xc0,0xd9,0xbf,0x4a,0xc1,0xbc,0xf9,0x11,0xd5,0x33,0xdc,0x41,0x8e,0xfe,0x5e,0xf3,0x8c,0x80,0x47,0x46,0x01,0x9e,0xa9,0x2c,0x2d,0xd2,0x90,0x7f,0xce,0x7c
+.byte 0x59,0x78,0xaa,0xbb,0x96,0x52,0x0a,0xf3,0x18,0x1f,0x0b,0x41,0xc1,0xd5,0x12,0x14,0x1a,0xe1,0x4e,0xac,0xf8,0x2a,0x56,0xfe,0x66,0x34,0x21,0xdf,0x1f,0x6a,0x02,0x85,0xd2,0x38,0xc0,0x39,0x5c,0xa7,0x3f,0xcc,0x2b,0x6f,0x69,0xe7,0xa7,0x0a,0x36,0xf1,0xa9,0x77,0x59,0x2c,0x44,0x8b,0x72,0xc9,0xc2,0x74,0x32,0x48,0x76,0x19,0x1e,0x49
+.byte 0x10,0xe6,0x46,0xdf,0x82,0x9b,0xad,0x4e,0x40,0x20,0xd7,0xd3,0xf5,0x5c,0xbc,0x25,0x94,0xd1,0x68,0xaf,0x29,0xc5,0xcd,0x1b,0x86,0x4b,0x88,0x21,0x6e,0xeb,0x06,0x14,0xb5,0x15,0xe7,0x26,0x01,0x05,0x4e,0x3a,0x2a,0x24,0xbe,0xf2,0x64,0x6e,0xf4,0x9c,0x60,0xf8,0xd4,0xfd,0x4b,0xc0,0x0e,0x68,0x0d,0x19,0x26,0x87,0xa5,0xbf,0xe1,0x16
+.byte 0xf0,0x27,0x58,0xa8,0x3a,0xed,0x27,0x5b,0x73,0x4f,0x19,0x40,0x58,0x36,0xf6,0xfd,0x60,0x37,0x09,0x74,0x3c,0xb9,0x76,0x9a,0x32,0xfd,0x98,0x79,0x53,0xb3,0xea,0x3a,0x98,0x21,0xf9,0xb2,0x97,0xe4,0x00,0xb6,0xed,0x67,0xc4,0x76,0x8f,0x1e,0x4d,0xc8,0x2e,0xf4,0x54,0xd9,0x09,0xd7,0xcb,0xa0,0x91,0x1e,0x5a,0x60,0x53,0xbc,0x3e,0x35
+.byte 0x69,0xa6,0xca,0xf3,0xce,0x41,0x84,0x71,0xee,0xf3,0x75,0xd4,0x7a,0x71,0x36,0x62,0xe3,0x08,0xae,0x40,0x05,0xde,0x01,0x34,0x92,0x5f,0x71,0xa9,0x08,0xb3,0x43,0xcd,0xe7,0x2f,0x42,0x7e,0x9c,0x1e,0xfe,0x9a,0x40,0x99,0x58,0x31,0xd9,0x8d,0x5d,0xda,0x75,0x14,0x3f,0xae,0x45,0x27,0x85,0x47,0x7d,0x41,0x0e,0x94,0x20,0xee,0x11,0xd0
+.byte 0x1e,0xcd,0x00,0x56,0xb7,0x59,0xe6,0x58,0xab,0x2c,0xa6,0x44,0x14,0x8c,0xff,0x49,0x7b,0xe5,0xf7,0x93,0xd5,0x78,0x1a,0xe0,0x16,0xd8,0x24,0x08,0x1e,0x70,0xce,0x1a,0x84,0x87,0x6b,0xe5,0xf2,0x43,0x5f,0xb3,0x34,0xaa,0x85,0x3e,0x9e,0x2e,0x86,0x22,0x74,0xe2,0x1a,0x87,0xfb,0x1b,0x6c,0x08,0x8c,0x43,0xb4,0x85,0x75,0x2c,0x13,0xc2
+.byte 0x18,0x94,0xe8,0x0d,0x09,0xd5,0x8f,0xd4,0xca,0x50,0x93,0x9f,0xa3,0x9f,0x3b,0x3c,0x54,0x68,0xa9,0xb1,0xdd,0x0a,0x0b,0xe2,0x15,0x92,0x9c,0x6f,0xfa,0x45,0x6f,0x0a,0xb4,0x6b,0xcb,0xdc,0xa4,0xf3,0xf0,0xa6,0x1c,0x8a,0x60,0x42,0x35,0xa8,0xe3,0xdf,0xc8,0xdc,0xbb,0xbe,0x95,0xa7,0xac,0x08,0x08,0xbc,0x56,0x1a,0xa4,0xc2,0xd2,0x53
+.byte 0xfa,0xb2,0x89,0x4f,0xb8,0xe4,0xb9,0x90,0x95,0x91,0x2f,0x0f,0x93,0xa9,0x8c,0xc6,0xf8,0x01,0x34,0x08,0xe6,0x8c,0x58,0x43,0x57,0x40,0xf9,0x78,0x83,0xea,0x92,0x70,0xa8,0xa5,0xc8,0x9e,0xf8,0xc6,0x39,0x4c,0xb4,0xe9,0xbb,0xdf,0xd2,0x52,0x43,0x6b,0x6c,0x8b,0x2c,0x47,0xd7,0x11,0x42,0x3d,0xc7,0x3f,0xce,0xd1,0xd9,0x28,0x5b,0xce
+.byte 0xec,0xb6,0x31,0x3a,0xc9,0xad,0x0c,0x93,0x82,0x2b,0xf6,0xdc,0xd4,0xcd,0x80,0xe1,0x75,0x45,0xeb,0x3b,0xbf,0x12,0x42,0xeb,0x71,0xc1,0x8b,0x27,0xd5,0xcb,0xd9,0xb6,0xe8,0xe9,0xc6,0x79,0xff,0x38,0x88,0x87,0x72,0xf2,0x71,0x4a,0x44,0x55,0x0f,0x9c,0x93,0xcf,0x15,0x18,0x44,0x62,0x2a,0xc5,0x0a,0x80,0x69,0x91,0x6e,0x4b,0x30,0x4e
+.byte 0x3f,0x2f,0xb5,0x65,0x9e,0x65,0x07,0x36,0x9b,0xba,0x5f,0x81,0xd9,0x60,0xbe,0x1f,0xf5,0x98,0x20,0xf9,0x9e,0x53,0xf7,0x5d,0x57,0x7f,0x22,0xaf,0x8e,0x82,0x9e,0x0f,0x33,0x74,0x37,0x26,0x61,0x67,0xf6,0xfd,0x2c,0xab,0xd8,0x18,0x1d,0x10,0x48,0x7a,0x1d,0xed,0xbb,0x57,0x83,0xf9,0x82,0xf5,0xe3,0xf9,0x98,0x5c,0xc0,0x3e,0xee,0x38
+.byte 0x0a,0x57,0x10,0x22,0xc4,0xe8,0x1d,0xe3,0x46,0xa3,0x81,0x5e,0x92,0xba,0xcc,0x53,0x48,0x85,0x33,0x58,0xa2,0x3e,0xea,0x0a,0xfb,0x72,0x5c,0xcd,0xd9,0xa4,0x3f,0x56,0x99,0x35,0x92,0x6c,0xe8,0xf2,0x59,0x0f,0xc8,0x6a,0x21,0xb2,0x9f,0xa2,0xf6,0xf3,0x1b,0xec,0x38,0x95,0xed,0xef,0x00,0x09,0x16,0x6e,0xf7,0xf8,0x1a,0xef,0x0d,0x2b
+.byte 0xef,0x83,0x8a,0xc2,0x22,0x3d,0x50,0xa3,0x70,0x52,0xe8,0xad,0x11,0x44,0x83,0x80,0xfe,0x88,0x7e,0x40,0x02,0x8f,0x4a,0x5d,0xd3,0x28,0x66,0x75,0x5a,0xf2,0x38,0xb5,0xdc,0x54,0xa8,0xb3,0xaa,0x76,0xdb,0x73,0xe0,0xd1,0xd7,0x51,0x20,0x8c,0x38,0x18,0x46,0x25,0x2e,0x0d,0x5b,0x61,0x9d,0x36,0x9a,0x14,0xfb,0xc8,0x4e,0x5a,0xba,0xa1
+.byte 0x98,0x34,0xfd,0x05,0x2c,0x87,0x58,0x8d,0xe3,0x5d,0x79,0x5a,0x45,0xff,0x75,0x25,0x98,0xbd,0xe4,0x9d,0x1a,0x70,0x79,0xaa,0x44,0x1a,0x10,0x7f,0xfb,0xe9,0x30,0x81,0xc7,0xa2,0x81,0x41,0x49,0x41,0x4e,0x42,0x5f,0x8a,0x9b,0x10,0xe2,0xdc,0xd9,0xdf,0xbd,0x61,0x29,0x72,0xa5,0x39,0xb7,0xf6,0x9f,0x4e,0x98,0xb8,0x04,0xae,0xd7,0xda
+.byte 0x9a,0x9f,0x08,0xb8,0x2c,0x40,0x14,0x6d,0x01,0xb7,0x86,0x58,0x55,0x42,0xe5,0xdb,0x5f,0x4a,0xef,0xd8,0xed,0xdf,0x3b,0x24,0x1c,0xe4,0xb1,0x73,0xd1,0xce,0x29,0x96,0xde,0x8e,0xf3,0x1d,0x8d,0x75,0x57,0xd3,0x9a,0xf8,0xff,0x1a,0x4c,0x0c,0x47,0x82,0x83,0x73,0x34,0x43,0x55,0xfa,0xf2,0xd4,0x38,0xed,0xde,0x6d,0x24,0x55,0x90,0x06
+.byte 0xd6,0x03,0x52,0x28,0xc7,0x38,0x4a,0x16,0x95,0x4d,0xf4,0x46,0x56,0xf7,0x63,0x1f,0xe4,0xa9,0x51,0xc6,0x0b,0x85,0x42,0x40,0x8e,0x49,0x1e,0xc2,0xab,0xeb,0xda,0x99,0x26,0xf6,0x6e,0x00,0x8f,0x26,0x82,0xef,0x03,0xb0,0xd4,0xdb,0x54,0x46,0xdf,0xdc,0x23,0xaf,0xa8,0x6a,0x9f,0xb7,0xf9,0x41,0x07,0x5e,0x2d,0xcf,0x85,0xfd,0x9c,0x46
+.byte 0x30,0xb9,0x14,0xca,0xe2,0x30,0x12,0x06,0x88,0x08,0x05,0x2c,0x9a,0x4b,0x52,0x98,0xa9,0x99,0xd7,0xca,0xb5,0x1e,0x60,0x44,0xd9,0x5c,0x19,0x42,0xbe,0xa5,0x04,0xfd,0x7a,0xfc,0xb9,0xdf,0xd6,0xe3,0x6d,0x02,0xe3,0x96,0xf6,0xae,0xf3,0x78,0x1d,0x90,0x6d,0x86,0x17,0xf7,0xb7,0x6b,0x1d,0x52,0x32,0x5b,0xc0,0x31,0xaf,0x09,0x90,0x5e
+.byte 0x81,0x75,0x17,0x47,0x6b,0x5e,0x9a,0x40,0xa5,0xa8,0x84,0x60,0xdc,0xdb,0xd2,0x89,0xcd,0xb2,0x72,0xf4,0x74,0xda,0x5d,0x34,0xf8,0xc6,0x1b,0x26,0x3e,0x8b,0xc7,0x73,0xf9,0x0c,0x93,0xf4,0x40,0x02,0xe0,0xed,0xe5,0xa0,0xae,0x91,0x03,0x85,0xa8,0x2f,0xe2,0x72,0xfe,0x17,0x7d,0x2b,0xa6,0x39,0x10,0x80,0x4c,0x58,0xaa,0xd8,0x22,0x7d
+.byte 0x2f,0xbf,0x0c,0x40,0x48,0xfa,0xbe,0x40,0x4c,0x32,0x96,0x69,0xa5,0xab,0x0b,0x1e,0x33,0x9b,0xcf,0xe6,0x4e,0x2b,0x41,0x5a,0x21,0x23,0xa1,0xbb,0xd3,0xd6,0xd1,0xfd,0xbd,0x55,0xfc,0x92,0x92,0xcb,0x4b,0x72,0x39,0x8b,0xeb,0x72,0xdd,0xf7,0x77,0x43,0x52,0x2f,0x99,0x14,0x6e,0x41,0xce,0x1d,0x57,0x2c,0x09,0xd2,0x18,0xec,0x1b,0x89
+.byte 0xa0,0xe9,0xfe,0x1e,0x41,0xda,0x0f,0x76,0x02,0x38,0xec,0x9a,0x30,0xb7,0x5a,0x54,0x70,0xbc,0xe8,0xfa,0x06,0xd0,0x80,0xfb,0x27,0xd2,0xd8,0x00,0x80,0x65,0x9d,0x23,0xfd,0xad,0x26,0xb8,0xdc,0x09,0x4f,0xfb,0x52,0xcd,0xe4,0x41,0x68,0xca,0xdd,0xbc,0x2a,0x62,0xeb,0xa6,0x32,0x71,0xb0,0x08,0xb6,0x9f,0x3e,0x74,0xfe,0xb0,0xd4,0x9d
+.byte 0x9e,0x6c,0x50,0x96,0x8a,0xde,0xd6,0xe9,0xde,0x2c,0xa6,0xf0,0x9f,0x67,0x00,0x50,0x0a,0x8c,0xe5,0xc2,0x37,0xcc,0xf0,0x53,0xeb,0x72,0xf2,0x87,0x77,0xee,0x80,0xe8,0xb2,0xa1,0x13,0x52,0x70,0xe6,0x8f,0x70,0x17,0x90,0x60,0xcb,0xac,0xb2,0x72,0xef,0xd9,0xb5,0xc3,0x68,0x57,0xdf,0x2d,0xcb,0x5a,0x35,0xf9,0x2e,0xfb,0xef,0x6e,0x77
+.byte 0x5d,0x21,0x37,0x4b,0x36,0x9b,0x3f,0x03,0x65,0xc9,0x84,0xb1,0x12,0x99,0xd1,0x6b,0x00,0x71,0x37,0xc7,0x57,0x82,0x44,0x7f,0xe1,0x81,0x24,0x70,0x96,0xd5,0x27,0xba,0x36,0xf7,0x25,0xc6,0x1c,0x7c,0x1b,0xdb,0xa3,0x6a,0x3e,0xb9,0x69,0x78,0xf7,0x51,0x46,0xe2,0x74,0xd3,0xfc,0xef,0x58,0x63,0x53,0x1d,0xd7,0xd0,0x8a,0x6a,0xd3,0xb0
+.byte 0xb9,0xbb,0xba,0x43,0xbf,0x8b,0x6b,0x04,0xd2,0xb1,0xe8,0xd1,0x72,0x3f,0xdc,0x2b,0x01,0xa6,0x2f,0x9c,0x7d,0x65,0xa1,0x9f,0x9b,0x4d,0x70,0x26,0x11,0x4c,0xb2,0xe1,0x01,0x0e,0x78,0xf2,0x32,0x87,0x2d,0x8e,0x95,0x02,0x76,0xca,0xe5,0x71,0x5f,0x36,0x35,0xb9,0xbb,0xc3,0xdf,0xf3,0x1e,0x1a,0x7a,0xe4,0x2c,0xdf,0x64,0x5d,0x96,0x12
+.byte 0xea,0x5c,0x14,0x73,0xa0,0xf1,0xbc,0xa9,0x6e,0x30,0x8a,0x47,0xf0,0x4b,0x9b,0x4c,0xc5,0xb0,0xbe,0x15,0x32,0x1b,0xde,0x0c,0x39,0x6a,0x6d,0x4e,0x3b,0x69,0x4c,0xb4,0x1f,0x56,0xf0,0xa1,0xb1,0x8c,0x29,0x5c,0x87,0x54,0xf2,0x5b,0x51,0x03,0x20,0x70,0x90,0x38,0x66,0x07,0xcc,0xd7,0xde,0x96,0x40,0x82,0xee,0xb5,0x87,0x2a,0x86,0xec
+.byte 0x66,0x09,0xb7,0x4a,0xfe,0x4e,0x92,0x89,0x07,0xde,0x35,0xc4,0x6e,0x91,0x25,0xfd,0x18,0xfa,0xd9,0x8f,0xa7,0xa6,0xa7,0x6b,0x32,0xba,0xd3,0x1c,0x90,0xb9,0x8a,0x6c,0x9f,0x3f,0xb5,0x16,0x81,0x81,0xee,0xd7,0x55,0xc1,0x41,0x62,0xfd,0xe9,0x4c,0x5d,0xd7,0x70,0xdd,0xc6,0x4a,0x2b,0x42,0x77,0xe7,0x74,0xed,0x02,0x80,0x0d,0x7c,0x73
+.byte 0x8e,0xf0,0xd3,0xb0,0x20,0xbb,0xc8,0x82,0x06,0xdd,0x56,0x64,0xcb,0x9c,0xda,0xa1,0xa9,0x92,0xbc,0x8c,0x65,0x03,0xcd,0x68,0x87,0xa2,0x94,0x41,0x3c,0x36,0x96,0x1f,0xa4,0xd2,0x6d,0x5d,0x9f,0x2d,0x0c,0xf9,0x8a,0x82,0x19,0x93,0x47,0x62,0x71,0x8e,0x59,0xaa,0xf1,0x87,0xe0,0xb8,0xab,0x10,0x7f,0x4e,0xa8,0xa3,0xe2,0x32,0x58,0xb0
+.byte 0xcf,0x12,0xc0,0xf8,0x94,0x4a,0x61,0x36,0xdc,0x2d,0xb5,0x91,0xf9,0x0f,0x7d,0x91,0xd3,0xc7,0x03,0x8a,0xae,0x5c,0x22,0x8c,0x60,0x30,0xf4,0x71,0x51,0x00,0xf5,0x5d,0xe9,0x37,0x6c,0xae,0x64,0xff,0x45,0x35,0x4b,0x47,0x08,0xca,0xda,0x7b,0xe9,0xef,0xcb,0x27,0xcb,0x7e,0x3c,0xa6,0xd2,0x38,0x54,0x74,0xc3,0x7c,0xf8,0x71,0xb7,0x47
+.byte 0xe9,0xe0,0x43,0x03,0x3b,0x41,0x57,0xc3,0xda,0xa1,0xcb,0x64,0xb1,0x31,0x0d,0x12,0x45,0x3a,0xa0,0xad,0x6b,0xc7,0x26,0x62,0x50,0xcf,0x94,0x5a,0x30,0x8d,0xf6,0x91,0x49,0x9e,0xd5,0x84,0x0e,0x0c,0xe3,0x47,0x08,0x7f,0xa1,0x54,0x78,0x1b,0xa8,0x2c,0xbc,0x12,0x4f,0x7e,0x53,0x1b,0xca,0xfb,0x09,0x35,0xe0,0x9c,0x15,0xea,0xf6,0x3e
+.byte 0xb2,0x20,0x9e,0x2c,0x81,0x6f,0xa4,0xb5,0x6b,0x04,0x6d,0xd1,0x90,0x66,0x46,0xdc,0x4b,0x71,0x7e,0x4b,0x3f,0xd6,0xe1,0xa8,0xc0,0xa7,0x45,0x85,0xe3,0x98,0x30,0xda,0x23,0x68,0x55,0xd8,0x96,0xb1,0xcc,0xeb,0xe1,0x95,0x0b,0x20,0xf3,0x4c,0xf2,0xc5,0xfa,0x0e,0xca,0xf5,0xc9,0xb3,0xd7,0xb4,0x1b,0x9f,0xef,0x82,0x56,0x4c,0xc5,0xa5
+.byte 0x21,0xda,0xcc,0x19,0x69,0x68,0xcb,0x37,0xb2,0x0c,0x73,0xb1,0x13,0x61,0x6b,0xca,0xda,0xfc,0xf7,0x1c,0xbc,0xd1,0x72,0x56,0xb8,0x7d,0xa1,0xef,0xc4,0x32,0x38,0xa3,0xdb,0x8b,0x2d,0x0a,0xce,0xcb,0x86,0x51,0x60,0xd2,0x47,0xf0,0x97,0x58,0xd8,0xa5,0x12,0x77,0xfc,0x32,0x04,0x29,0x61,0xfc,0xab,0xc2,0x42,0x86,0xd9,0x57,0x80,0xad
+.byte 0x00,0xf0,0x9a,0x2a,0xac,0x52,0x27,0xd6,0xf8,0xd6,0x38,0xc8,0xfc,0xc1,0xab,0x4f,0x41,0xbf,0x8e,0x60,0x20,0xeb,0x24,0x36,0xd8,0xd8,0x25,0x6f,0xc8,0x5d,0x6b,0x00,0xdd,0x7a,0xe2,0x37,0xe4,0x13,0xd0,0xaa,0x5c,0x56,0x32,0x98,0x00,0x4b,0x8a,0x81,0xb1,0xfa,0xe8,0xf3,0xfa,0x0d,0xbb,0x66,0x6e,0x24,0xfd,0x3c,0x50,0x63,0x3a,0xf1
+.byte 0x72,0x63,0x18,0x71,0x6d,0xee,0x6f,0xf1,0x0e,0x1f,0x9e,0x9d,0x87,0x12,0x5c,0xdf,0x1d,0x9e,0xc0,0x0b,0x39,0x0e,0xd6,0x56,0x79,0x30,0xcb,0x07,0x7b,0x88,0xa5,0xbe,0xfd,0xd4,0x49,0xcc,0x92,0x6a,0xcc,0x78,0x1e,0xaf,0xee,0x89,0xc8,0x51,0x08,0x98,0x14,0x20,0xe5,0x52,0x93,0x18,0x6f,0xbb,0xdc,0xb2,0x68,0x14,0xd1,0xdb,0xe8,0x56
+.byte 0x24,0xd0,0x34,0xab,0xa6,0xfa,0xfe,0x72,0x5a,0xe3,0xe1,0x87,0x0d,0xf4,0xfa,0xa6,0xa6,0x6c,0xb6,0xcb,0xf8,0xfc,0x59,0xac,0xd9,0xb0,0xcd,0x15,0xa4,0x37,0x73,0x6e,0x70,0xc9,0x74,0xef,0x87,0x78,0x61,0xc2,0xd0,0x52,0x51,0xa9,0x2c,0xdb,0x9d,0xd9,0x3d,0xac,0xcd,0x52,0x39,0x69,0x2d,0x2a,0x4f,0xf3,0xb2,0x69,0xb9,0x01,0x3c,0x57
+.byte 0xeb,0x1b,0x0e,0x87,0xe9,0x42,0x58,0x83,0x6b,0xbc,0x72,0xc8,0x46,0x32,0x42,0x17,0x6a,0x19,0xa0,0xb3,0xf1,0x1c,0x96,0x9c,0x11,0x09,0x8b,0xc1,0x9e,0xe9,0x7f,0x18,0x8e,0xca,0xea,0x24,0x1b,0xce,0x12,0x57,0x1d,0x34,0xbe,0x60,0x60,0x2c,0xd8,0xa0,0x61,0x73,0xd6,0xf8,0xaf,0x15,0x26,0x84,0xd7,0xec,0xc0,0xbe,0x7e,0xa1,0xa8,0xba
+.byte 0x2b,0xcc,0x20,0x67,0x6e,0xea,0x48,0x79,0x23,0xea,0x14,0x36,0x85,0x0a,0x56,0x3a,0xcd,0x5b,0x51,0xa4,0xf5,0x92,0x49,0xc2,0x55,0x62,0xed,0x88,0xde,0xd0,0x0c,0x01,0x36,0xb9,0x2e,0x94,0x80,0x75,0x8a,0x21,0x0a,0x07,0x45,0x68,0xd8,0x9d,0x49,0x7b,0xa7,0xb2,0x84,0xfa,0x3c,0xc4,0xd5,0x59,0xf9,0xc3,0xff,0xcf,0xe4,0x5f,0xea,0xbb
+.byte 0x0f,0xae,0x7d,0x96,0xd3,0xe9,0x38,0xd1,0xb1,0x02,0xf6,0x4b,0x95,0x43,0x1c,0x69,0xa6,0x99,0xf5,0xdb,0x46,0x62,0xea,0x69,0x5a,0x08,0x2d,0x01,0x11,0xed,0x70,0x03,0x60,0x54,0xba,0x32,0x2c,0x0e,0x44,0x1f,0x8d,0xee,0x2e,0x39,0xab,0xc0,0xd4,0x88,0x11,0xef,0x07,0x3a,0x47,0xb9,0x6e,0x0c,0x22,0x9a,0xf3,0x89,0x01,0xfb,0xb8,0x2d
+.byte 0x52,0xa0,0x42,0x4c,0xb3,0x9e,0xf5,0x4b,0x0c,0x78,0x0a,0x3b,0x29,0xae,0x4a,0xc0,0xb2,0xa3,0xc0,0x0d,0x38,0x07,0x49,0x9c,0xda,0x7c,0x48,0x81,0xba,0x53,0x0d,0x0d,0x78,0x8c,0xac,0x9b,0x3d,0x1f,0xaa,0xc1,0x32,0x54,0xca,0x54,0xe1,0xef,0x46,0x82,0x61,0xd0,0x88,0x04,0x53,0xb0,0x34,0xc2,0x23,0x9a,0x90,0xe3,0x73,0x9c,0x0d,0x46
+.byte 0x61,0xe5,0xc0,0x42,0x87,0x4a,0x3b,0x3a,0xf9,0xab,0xbe,0x4c,0xba,0x2f,0x88,0x03,0x6b,0x52,0x25,0x8c,0x9b,0xc0,0x13,0xb6,0x80,0x09,0x85,0x97,0x64,0x6d,0x65,0xcd,0x18,0x42,0x00,0xdf,0x76,0x4d,0x67,0xbf,0x04,0x7a,0x5f,0x7e,0x3a,0x5c,0x6f,0x1d,0x12,0x5b,0xbe,0xd2,0xc8,0xe5,0x09,0x45,0x4d,0xae,0xed,0xd8,0x77,0xc5,0x6f,0xb6
+.byte 0x43,0x09,0xe2,0xee,0xc9,0x5a,0x76,0xc5,0xeb,0xdd,0x96,0x23,0xb9,0xe5,0xfc,0xf2,0x3c,0xe1,0x67,0x5f,0x1b,0x10,0x39,0x47,0x67,0x8b,0x48,0x32,0xd0,0xbc,0xa0,0xa8,0x3e,0xc3,0x30,0x21,0x18,0x54,0x49,0xfe,0x8a,0x14,0x7a,0xe5,0x6e,0xbe,0x70,0xec,0xf6,0x97,0xa0,0xa4,0xf4,0xdd,0xaf,0xf2,0xde,0x50,0x1a,0x68,0xb9,0x1a,0x4b,0x37
+.byte 0xf8,0x29,0x16,0x4f,0x8c,0xa5,0x9e,0xd2,0x72,0x7f,0xf6,0x6b,0x7d,0xac,0xe4,0x17,0x93,0x39,0x8f,0xd9,0xdf,0x50,0x1f,0xce,0xf5,0x58,0xdd,0xcd,0xc2,0xb9,0x64,0xfc,0xad,0x8a,0x3c,0x2e,0x52,0x58,0x91,0x3b,0x78,0xb4,0xfd,0x4a,0x3b,0x13,0x5d,0x20,0xd5,0xdf,0xe7,0x52,0x3d,0x4c,0x2f,0x02,0x30,0xfc,0x24,0x17,0x99,0x6e,0x4b,0xfe
+.byte 0x1d,0xf0,0xe6,0x86,0x32,0x37,0xb5,0xd5,0x09,0xa3,0xa5,0x3b,0xc1,0x88,0x9f,0x01,0x57,0x12,0x03,0x1d,0x60,0xd8,0x57,0xba,0xc6,0xfc,0xda,0xab,0x02,0xbe,0xab,0x89,0xf9,0x08,0x63,0xbd,0x42,0x11,0xf7,0xbf,0xd3,0x45,0x2b,0xa5,0x34,0x91,0x18,0xb9,0xb3,0x79,0xb4,0x15,0xa1,0x01,0x1a,0xf9,0x74,0x91,0x08,0x94,0xb2,0xf3,0xb2,0xca
+.byte 0x0a,0x3a,0x4f,0x42,0x8a,0x16,0xf7,0x9e,0xbf,0x27,0x72,0x7b,0xff,0xd3,0xb9,0x4e,0xf5,0x8e,0x68,0xb5,0x91,0x23,0xef,0xeb,0x5d,0x7d,0xd8,0xc9,0xda,0x07,0x33,0xc9,0x1c,0x4a,0x7a,0xf2,0x72,0x64,0xb3,0x35,0x2e,0x54,0xec,0xc4,0xd9,0xee,0xea,0xda,0xfe,0x8b,0x1c,0x21,0x93,0x52,0x95,0x7c,0x2d,0xfe,0x56,0x05,0xdd,0x57,0x37,0xf2
+.byte 0x54,0x1c,0xe2,0x6c,0xc0,0xaa,0x71,0x67,0xdd,0x73,0x43,0x17,0x3e,0x76,0xdb,0x60,0xb4,0x66,0x62,0xc7,0x74,0x08,0x91,0x1f,0xd5,0x4c,0xa9,0xd0,0x34,0x33,0xea,0xb0,0x2c,0x0a,0x88,0xda,0xf7,0xca,0x91,0xf6,0x5f,0x9e,0x72,0xf6,0x18,0xf9,0x19,0x9d,0x84,0xf8,0x4c,0xe1,0xeb,0x45,0x29,0xaa,0xf2,0xa6,0xfd,0x64,0xf9,0x0b,0xfe,0x09
+.byte 0x1c,0xc2,0xde,0x19,0xdd,0x0f,0x02,0x16,0x65,0x70,0x33,0xd4,0x32,0x67,0x7b,0xc4,0xbb,0x11,0x60,0x4f,0xc3,0x4d,0x29,0x23,0x7e,0x84,0x58,0x51,0x43,0x7e,0x25,0x4f,0x3d,0xd4,0xe0,0x20,0x79,0xfd,0xce,0x59,0x49,0xf8,0xd1,0x53,0xca,0x2d,0x66,0xec,0xe5,0x7f,0xc8,0x14,0x06,0xc1,0x96,0x40,0xf2,0x61,0xa7,0x1b,0xf9,0x5e,0x97,0xfe
+.byte 0x62,0x57,0x05,0xcc,0x6f,0x26,0x4b,0xa6,0x40,0x33,0x72,0x20,0xd3,0x1e,0x2b,0xb2,0x60,0xe7,0x56,0xda,0x87,0xd3,0xb4,0x5a,0x73,0x04,0xc9,0xc2,0x68,0xe3,0x18,0x74,0xd9,0x46,0x74,0x31,0xf4,0xf4,0xab,0xc4,0x0a,0xbc,0x66,0x4e,0x23,0x5f,0x92,0x7c,0x0a,0x81,0xdd,0xcc,0x79,0xee,0xb3,0x3d,0xc0,0x91,0x81,0xd0,0x79,0x39,0xd2,0x69
+.byte 0x5d,0xdc,0xc1,0x5c,0x61,0xb9,0x5e,0x87,0x32,0x73,0x70,0xd0,0xa8,0x7d,0xb5,0xd0,0xfc,0xf4,0xb6,0x55,0x9f,0x1f,0x8a,0xec,0xf4,0xb0,0x47,0xeb,0x3b,0x68,0x80,0x0b,0x79,0xd0,0x71,0x99,0xb1,0xd0,0xed,0x1f,0x9f,0x6c,0x2d,0x9d,0xae,0x1c,0x62,0x3b,0xec,0x3e,0x2f,0xb4,0x6f,0xbb,0x2e,0x1e,0xa9,0x7c,0xe8,0x5d,0x14,0x7d,0x0d,0x17
+.byte 0x6d,0x9c,0x54,0xce,0x64,0x93,0x8e,0x3b,0xa4,0xa9,0xfb,0xd9,0x44,0x06,0xbb,0xb8,0x7f,0xdf,0xd3,0xc2,0xa2,0xcf,0x5a,0xa2,0xa7,0xbb,0xb5,0x08,0xe2,0x67,0xdf,0x0e,0x4e,0xc6,0xcf,0x0a,0x79,0x1e,0xa5,0x60,0x1a,0x81,0xb1,0x8e,0x1b,0x27,0x7f,0x8d,0x28,0x50,0xa7,0x4a,0xe4,0x4b,0x61,0x6b,0xa9,0xfa,0xaf,0x82,0x83,0xfb,0x1f,0x2e
+.byte 0xfa,0xce,0x18,0x0e,0x32,0x5f,0x5a,0xcf,0xac,0xaf,0x22,0x30,0x16,0xd7,0x97,0x99,0x0d,0xb8,0x92,0xa5,0x1d,0x44,0xb2,0xa5,0xc7,0x74,0xd2,0x81,0x8d,0x5c,0x38,0xda,0x9f,0x76,0xcb,0x47,0x6c,0xb7,0x08,0xd9,0xc1,0x52,0xd0,0x64,0x0a,0xf9,0xdd,0x3e,0xe8,0x99,0x15,0x4d,0xcb,0x7b,0x25,0x53,0x8c,0x13,0xb1,0xbf,0xb7,0xca,0x2d,0xce
+.byte 0x71,0x48,0xee,0x5b,0x3a,0x01,0x5b,0xfd,0x22,0xfa,0x6f,0x17,0xcb,0x52,0xcc,0x0a,0x2b,0xbb,0x6d,0xce,0x2d,0x00,0xf5,0x9e,0x0d,0x58,0xf1,0xf4,0xa4,0x9f,0x13,0xf9,0x68,0x15,0xd7,0x02,0x41,0x6c,0x19,0x6b,0x66,0x9a,0x74,0xee,0xb4,0xb3,0xc7,0xec,0x60,0x19,0xbd,0xbb,0x97,0x22,0x7c,0x4e,0xe6,0xc6,0x00,0x03,0xa5,0x36,0x52,0xec
+.byte 0x21,0xcf,0xc8,0xda,0x2c,0x14,0xa9,0xd8,0x75,0xab,0xea,0x05,0x8c,0x24,0x28,0x63,0xbd,0x58,0x35,0xd7,0x95,0xcb,0x14,0x89,0x04,0x99,0x7e,0x67,0x0d,0x07,0x35,0xdb,0x17,0x7c,0x72,0x2d,0xbc,0x89,0x9b,0xb4,0x16,0x21,0x2f,0x90,0xe8,0x8f,0xeb,0xc3,0x8d,0x86,0x0d,0x92,0xf6,0x4b,0x80,0x36,0x96,0x6b,0xd8,0x95,0x7b,0xad,0xe8,0xbf
+.byte 0x77,0x9e,0xf4,0x93,0xcd,0xa5,0x06,0xbc,0x38,0xf2,0x57,0x25,0x54,0xfa,0x8e,0x19,0x8e,0x25,0x8e,0x3c,0x28,0xaa,0xf2,0x02,0x30,0xd4,0x47,0x89,0x36,0xb9,0xb7,0x01,0x5f,0x0c,0xd1,0x8d,0x93,0x7e,0xf0,0xf0,0xff,0x2f,0x8f,0xb5,0x97,0xa7,0x02,0xe8,0x9b,0xf2,0x51,0xe6,0x51,0x62,0xa5,0x27,0x26,0xc6,0x7a,0x39,0x7a,0xa9,0xaf,0x1e
+.byte 0x03,0xd5,0x25,0xbe,0x3b,0x19,0x46,0xc4,0xdd,0xd6,0x5e,0x6a,0x18,0xc0,0x41,0x5f,0x53,0x89,0xd3,0x16,0xfb,0x3a,0x10,0xce,0x0d,0x8c,0x04,0x4c,0xcf,0xab,0xb9,0x0d,0x6c,0x45,0x6c,0x29,0xed,0x77,0x37,0x1f,0xd8,0x10,0x8a,0xfe,0x07,0xbd,0x7e,0xd7,0xa6,0x6b,0x80,0xde,0x3e,0x2c,0xa8,0xb1,0x38,0xcc,0xab,0x10,0x69,0x8f,0x58,0x3d
+.byte 0x12,0xc7,0x9c,0xc1,0x0a,0xeb,0x3d,0x5e,0xf1,0x65,0xc6,0x09,0xcb,0x4b,0x09,0x24,0xa7,0x56,0x1d,0x1d,0x4c,0xd7,0x06,0xbd,0xe2,0x72,0x70,0xae,0x7e,0xe9,0xaa,0x97,0x6d,0xec,0xcb,0x55,0x0b,0x5d,0x45,0x3a,0x25,0x3d,0x52,0x0f,0x48,0x2f,0xe4,0xd0,0x5e,0x85,0x87,0xb6,0xa7,0x70,0x2f,0x9c,0x19,0x89,0x95,0x45,0x76,0x00,0xfe,0x27
+.byte 0xff,0xf8,0x73,0x59,0xba,0x98,0x92,0x4e,0x76,0x1a,0x90,0x1d,0xbc,0x1b,0xae,0x44,0xb6,0x63,0x86,0x4c,0x3c,0x8a,0x8f,0x3e,0x03,0x95,0x50,0x30,0xd8,0x0f,0x7f,0x6f,0xb6,0xe9,0xbe,0x2e,0xc9,0x55,0xe7,0x73,0xd6,0x77,0xdc,0xbc,0x67,0x54,0x31,0x47,0x30,0x46,0xe1,0xa4,0xf8,0xf3,0x90,0x4f,0x68,0x5a,0x52,0xe2,0xe7,0xdb,0xd9,0xfd
+.byte 0xf6,0x36,0x2a,0xc1,0xdb,0x35,0x82,0x69,0xff,0xf9,0xea,0x53,0xff,0xcd,0x21,0x2c,0x26,0x79,0xd6,0x8c,0x74,0xe7,0x9e,0x85,0x1a,0x04,0xf5,0xed,0x89,0x16,0xf5,0xd7,0xf1,0x89,0xf1,0xb3,0x5b,0x47,0x42,0xcb,0x92,0x2e,0x70,0xf6,0x3e,0xfc,0x20,0x87,0x70,0xec,0x30,0x16,0xcc,0x88,0x64,0x13,0x58,0xf1,0x0d,0x17,0x90,0xc4,0xdb,0x07
+.byte 0xf5,0xe3,0x34,0x31,0x10,0x9c,0xa4,0x6a,0x4a,0xe6,0x6c,0x80,0x49,0x07,0x23,0x21,0xd6,0xf1,0xcb,0x4a,0xd1,0xb5,0xb7,0x63,0x94,0x4c,0x0a,0xce,0x90,0xf2,0x63,0x31,0x4f,0x96,0x6c,0x5d,0x3e,0xaa,0x10,0x20,0xd6,0xb6,0xbe,0xfa,0x3f,0x83,0xbc,0xa8,0x08,0x38,0xec,0x38,0xe4,0xe9,0xf5,0xb3,0x8e,0x32,0x31,0xcd,0x7c,0x08,0x98,0xf6
+.byte 0x0f,0x8a,0x8f,0xc1,0xd8,0x9e,0x05,0xb6,0x74,0x11,0x94,0xef,0x4f,0x8f,0xa1,0xc6,0x8c,0xdb,0xc3,0x27,0x4e,0xa3,0x30,0x94,0xf5,0xe8,0x2a,0x18,0x0a,0x51,0x9b,0x79,0xb2,0x1f,0xc3,0xa0,0x26,0xa9,0xf5,0xc4,0x9e,0x39,0xda,0x6a,0x53,0x8f,0x8c,0x4c,0x54,0x50,0x81,0xa0,0x0a,0xd3,0x7c,0x99,0x91,0xc7,0x3e,0x56,0x7d,0x53,0x8c,0x3c
+.byte 0x51,0x44,0xa5,0x22,0x9d,0xd2,0x9b,0x13,0xcf,0xb8,0x0c,0xb8,0xd4,0xaa,0xb4,0xaa,0x8d,0xab,0x7c,0x06,0xca,0xbb,0x85,0xac,0x01,0xee,0xef,0xe7,0x74,0xd5,0x0d,0x64,0x91,0x1c,0xde,0x6c,0x05,0x37,0x1e,0x23,0x05,0x7e,0x38,0xdc,0x17,0xaf,0xa7,0x95,0x85,0x1f,0xaf,0xc8,0xe1,0xc2,0xda,0xda,0xf1,0x14,0x56,0x66,0x68,0x70,0x36,0x38
+.byte 0x7b,0xb8,0x22,0x9f,0xc4,0xeb,0x5d,0x76,0x97,0xc5,0xa3,0xb9,0x06,0x86,0x4f,0x20,0xab,0x7d,0xce,0x7d,0x78,0x59,0xc5,0x1f,0x73,0x81,0xf6,0x6d,0xb4,0xcc,0x10,0xc5,0x4d,0xe3,0x81,0xaf,0xbc,0x37,0x42,0x28,0x5f,0x51,0x1e,0xaa,0xc7,0x81,0x20,0xc3,0x89,0x35,0xf1,0x74,0x3a,0xe8,0x04,0x24,0xef,0x8b,0x70,0xe1,0x74,0xdf,0x87,0xd5
+.byte 0x3c,0x32,0x32,0x7d,0x03,0xd7,0xda,0x6d,0x8b,0x25,0x8d,0x11,0xa3,0xc2,0x27,0xdc,0xa3,0xfc,0xdf,0x70,0xa4,0x41,0xad,0xda,0xce,0x12,0x45,0x14,0xa1,0x96,0x16,0xd8,0x54,0x89,0x9e,0x78,0x7f,0x23,0x12,0xd1,0x15,0x08,0x7f,0xbd,0xf0,0x9a,0xf1,0x5b,0x07,0xd5,0xbc,0xab,0xab,0x15,0xae,0xda,0xf1,0x26,0x12,0x4e,0xd6,0x6c,0x35,0xc1
+.byte 0x6e,0x27,0x4d,0xa8,0x71,0x51,0x1e,0xae,0xa8,0x35,0x26,0x06,0x18,0x03,0xd8,0xae,0x9e,0x8b,0x07,0x30,0x10,0xfb,0x47,0x05,0x02,0xcc,0x0a,0xbd,0x57,0x43,0x15,0x0a,0x7a,0xb5,0x30,0x0b,0xa6,0x3c,0xa8,0xc9,0xf5,0x68,0xe1,0xfb,0xd1,0xe0,0xe7,0x44,0x6c,0xb4,0x44,0xb6,0xd1,0x2b,0x30,0x5e,0x17,0x89,0x40,0xcc,0x10,0x8f,0x97,0x8a
+.byte 0xf3,0xf4,0x52,0x55,0xc4,0x8e,0x46,0xe5,0x24,0x0b,0x2a,0x5d,0x84,0xc1,0x4e,0xa8,0x5a,0x53,0xa8,0xce,0xc6,0x3f,0xa2,0xaa,0x3a,0x8f,0x51,0xed,0x4c,0xa6,0x34,0x6a,0x8c,0x18,0x9b,0x36,0x49,0x40,0x34,0xa3,0xe4,0xd8,0x3c,0x8a,0xfc,0x41,0xc9,0x35,0xfe,0x6e,0x3e,0x29,0xbc,0x04,0x61,0xaf,0x04,0x03,0x43,0x79,0xb5,0x77,0x27,0x25
+.byte 0xbe,0x85,0xc9,0x56,0xa4,0x17,0xc4,0x27,0x3d,0x53,0x1b,0x49,0x86,0xb2,0xb6,0x52,0x62,0x12,0x5d,0xe9,0x47,0x6f,0x65,0x78,0xf8,0x95,0x63,0xbc,0x73,0x6d,0xa6,0xb9,0xcd,0x17,0x39,0x56,0xb0,0xab,0x3a,0x15,0x5f,0x9a,0x98,0xfb,0xcd,0x51,0x4a,0x35,0x21,0xaf,0x07,0x4a,0x3d,0xfd,0x39,0x11,0x42,0xed,0xfc,0x7e,0x10,0x24,0xa5,0x0c
+.byte 0xb2,0x4f,0x27,0xe4,0x78,0x32,0xfe,0xfc,0x8e,0x46,0x68,0xbb,0x2e,0x85,0x87,0x0f,0x01,0xde,0x1c,0x02,0xdd,0x82,0xa0,0x9e,0x30,0x31,0x8d,0x86,0x36,0x33,0xa6,0x59,0x16,0x78,0xae,0x1f,0x1d,0x27,0x0b,0x29,0x42,0x16,0x93,0x3b,0xe6,0xfb,0x8d,0xd5,0x48,0x42,0x61,0x39,0x5b,0xf7,0xea,0xd0,0x6f,0x67,0xd9,0x03,0x72,0xed,0x54,0xe1
+.byte 0xab,0x3f,0xa0,0xdc,0x4b,0x19,0xe6,0xe3,0xfe,0x5f,0x65,0x64,0x4c,0xa9,0x5c,0x52,0x36,0xb3,0x65,0x28,0x3e,0xe5,0x07,0x50,0xed,0xec,0x2f,0xc9,0xff,0x47,0x27,0xf6,0xfe,0xb8,0x60,0x60,0x52,0xe5,0xec,0x3c,0x4f,0x69,0x9f,0xaa,0x06,0x8a,0x99,0x9f,0xac,0xfc,0x0a,0x6f,0x8a,0xa4,0x0e,0x5c,0x58,0xb4,0x09,0xba,0x93,0x95,0x94,0x12
+.byte 0x9b,0x23,0x4f,0x93,0x28,0x6d,0xd0,0x76,0xfd,0xc9,0x87,0x3b,0xf1,0x8c,0x7d,0x56,0x84,0x5a,0x04,0x08,0x30,0xf7,0xf6,0x52,0x15,0xba,0xd6,0x7a,0x39,0x8c,0x5a,0xbf,0xeb,0x02,0x6d,0x31,0x30,0x92,0xbc,0xe2,0x07,0x21,0x16,0x96,0x70,0x66,0x00,0xe0,0x04,0xc5,0xa8,0xe4,0x08,0x6d,0x08,0x69,0x35,0xe2,0xb1,0x83,0x03,0x37,0xca,0xff
+.byte 0x06,0x37,0x80,0xd5,0x1a,0xc5,0x31,0xfc,0x9a,0xb0,0x8a,0x4b,0x58,0xf3,0x00,0x4e,0xa4,0xfe,0x9e,0xe0,0x60,0xc7,0x3d,0x2c,0x52,0xb5,0x39,0xf0,0xa4,0x88,0x39,0x37,0xa5,0x26,0x8a,0xa3,0xe6,0x31,0xce,0xf3,0xa1,0x54,0x73,0xe7,0x69,0x38,0xef,0xa2,0xab,0x52,0x50,0x1a,0x45,0xcc,0x29,0x9c,0xb6,0xf4,0xde,0xc2,0xfe,0x7a,0x26,0xf7
+.byte 0x7a,0x6e,0x07,0xb6,0xd8,0x3f,0x77,0x60,0x35,0xae,0x6a,0x90,0xd6,0xb8,0x37,0xed,0x73,0x59,0x54,0xd9,0x0c,0x87,0x0e,0x81,0xef,0x69,0xc7,0xd4,0x8f,0x00,0x74,0x57,0x12,0xcf,0xa1,0x76,0xe8,0x45,0xf5,0x9a,0x4f,0xe2,0x5d,0x8a,0x89,0xb1,0x8b,0xea,0x9c,0x0a,0x1e,0x00,0x61,0x3b,0x66,0xbd,0xb5,0xd6,0xff,0xa3,0xff,0x52,0xc2,0x35
+.byte 0x81,0x05,0x08,0x2b,0xf9,0x52,0xda,0x74,0xd1,0x76,0x13,0xba,0x28,0x4c,0xb1,0xb1,0x82,0x5b,0x4e,0x79,0x39,0x22,0xf9,0x96,0x91,0x07,0x4f,0xf9,0xf2,0x25,0x25,0xb1,0x3e,0xda,0x07,0x5c,0x01,0x7b,0xfa,0x3e,0x95,0x92,0x1d,0xf8,0x44,0x06,0xc1,0xed,0x64,0x74,0x14,0x84,0x25,0xee,0x75,0xaf,0xe3,0x7c,0xd3,0xbe,0x7a,0x51,0x6b,0x80
+.byte 0x20,0x43,0x20,0x10,0x5f,0xf5,0xfc,0xd5,0xe8,0x06,0x43,0xad,0x10,0x6b,0x67,0x48,0xca,0xca,0x6e,0x3e,0x1c,0xdf,0x8f,0x7a,0x65,0xc8,0x5d,0xba,0x3b,0x67,0xeb,0x1f,0xc4,0x37,0xad,0xef,0x73,0x9e,0x18,0x8e,0xc1,0x99,0xaf,0x75,0xd3,0x91,0x73,0xc3,0x3a,0xb2,0xfe,0xff,0x30,0x81,0xc4,0x4f,0x37,0x37,0x23,0x96,0x17,0xf1,0xa2,0x9b
+.byte 0x55,0x6e,0xd6,0xb3,0xc4,0x98,0xa3,0x32,0xb6,0xff,0x86,0x87,0x77,0xf4,0xad,0x16,0x3e,0xf0,0x24,0x01,0xb4,0x8e,0x1e,0x0f,0x10,0xa4,0x2e,0xe4,0x79,0xe6,0x88,0xe7,0x09,0x58,0x5e,0x97,0xad,0x0d,0x72,0x05,0xbf,0x2f,0x3f,0x99,0xee,0x8a,0x84,0xc3,0x62,0x43,0x52,0x6d,0xab,0x66,0xcf,0x9f,0x4e,0xf2,0x0d,0x13,0x15,0x49,0x84,0x5e
+.byte 0x6c,0x8d,0x2d,0xef,0x53,0x16,0xa0,0x63,0xbe,0x05,0xb8,0x9b,0x23,0xca,0xca,0xb8,0xdd,0xbc,0x96,0x68,0x35,0x43,0x63,0x30,0x8e,0xaf,0x53,0x98,0xe2,0x76,0xe8,0x89,0x00,0x29,0x11,0x70,0xd5,0x94,0xbd,0x78,0xff,0xf6,0x88,0x4a,0x3d,0x99,0xd9,0x7e,0xdf,0xa8,0x33,0x92,0xa2,0xc0,0x32,0x42,0x73,0x08,0xd4,0x55,0x5d,0x18,0x93,0xca
+.byte 0x7e,0x33,0xe3,0x51,0xc7,0xb7,0x24,0x62,0x69,0xf4,0xab,0x36,0xe3,0x22,0x10,0x9b,0xe0,0xbd,0x48,0x65,0x30,0x9c,0xfe,0xeb,0x3f,0x7f,0x22,0x67,0xcc,0x87,0x5a,0x71,0xb0,0xd1,0x19,0x82,0x1c,0xb2,0xf1,0x73,0xd2,0xd6,0x3f,0xef,0xe3,0x2f,0x25,0xf3,0x8b,0x21,0x4e,0xbf,0x0e,0xc1,0xd2,0x8a,0xbb,0x04,0xde,0xcf,0xd1,0x77,0xba,0xaa
+.byte 0xc7,0x41,0x68,0xce,0xc4,0x64,0xf9,0x3a,0x2f,0x1c,0x0b,0x22,0xf8,0x60,0x09,0x76,0x31,0x88,0x62,0x3a,0xf3,0x49,0xe6,0xda,0x4b,0xd3,0xf3,0x35,0xaa,0x56,0x4c,0x2f,0x7f,0x03,0x3e,0xf8,0xcb,0x5e,0xed,0x37,0xa1,0x29,0xe8,0x20,0xf5,0x4a,0x32,0x73,0x30,0xfd,0xd1,0xf6,0xb4,0xa1,0x30,0x87,0xcb,0x21,0x63,0xf5,0x3a,0xad,0x05,0x1a
+.byte 0x34,0xf5,0x32,0xf6,0x02,0xf3,0x10,0x52,0xfd,0x86,0x37,0x1f,0x5d,0xe4,0x2e,0x31,0xcb,0xb8,0x4c,0xeb,0xdd,0xea,0x01,0x0d,0x94,0x13,0xa8,0x8f,0xf0,0x52,0x4e,0x0d,0x4f,0xd1,0x24,0xeb,0x0f,0x2b,0xb1,0xaa,0xc5,0xc8,0x52,0xb9,0xbe,0x21,0x48,0x2a,0x53,0x98,0xe4,0x00,0x72,0x64,0xdb,0x44,0x48,0x36,0x60,0xe7,0x81,0xdc,0x25,0x85
+.byte 0x4d,0xaf,0xa8,0x0d,0xfb,0x07,0x76,0x4f,0x6a,0x30,0x3c,0x7c,0x3b,0x36,0xa9,0xf8,0xae,0x81,0x03,0xe9,0x19,0xdf,0xdb,0xd9,0x7f,0x59,0xe0,0xd7,0x50,0x14,0x9f,0x67,0x3d,0xc7,0xdf,0xa8,0x44,0x86,0x29,0x81,0x65,0x44,0x9e,0x37,0x27,0xdd,0x2f,0x33,0x59,0xf7,0xaa,0x17,0x34,0x8c,0x1c,0xa7,0x8e,0x06,0x46,0xf1,0x43,0x87,0xa9,0xb7
+.byte 0x85,0xec,0x92,0x0d,0xdd,0x78,0x55,0x99,0xfb,0x1c,0x66,0x85,0x0d,0x59,0x31,0x00,0xbc,0xd9,0x9b,0xbb,0xfb,0xfc,0xb2,0x36,0x3c,0x34,0x8f,0x4a,0xb6,0x74,0x9c,0x32,0x6f,0x69,0x6c,0x3e,0x68,0x7e,0xec,0xeb,0x58,0x6a,0xf5,0xa2,0xbb,0x04,0x68,0xdb,0x8c,0xf0,0x04,0xba,0xf7,0xf7,0x50,0xd0,0x60,0xba,0x45,0x73,0x0f,0x2c,0x2f,0x97
+.byte 0x58,0xcc,0xa2,0xbe,0xfe,0x5e,0xf9,0x44,0x03,0x8b,0x99,0x56,0xb0,0x4f,0xe1,0xd0,0xa5,0x9f,0xd1,0xfc,0x95,0x44,0x4b,0x01,0x24,0xc0,0x4c,0x91,0xc1,0xb5,0x99,0xe7,0x5f,0x2f,0xcf,0x5d,0x4f,0x64,0x6e,0x54,0x51,0x0c,0x35,0x5f,0xa8,0x7b,0x27,0xa0,0x7d,0xb1,0x90,0xc2,0xdd,0x50,0xef,0x09,0x6f,0xed,0x25,0x6b,0xf5,0x6f,0xc1,0x97
+.byte 0xea,0xd5,0x49,0xf5,0x40,0x60,0xc3,0xbb,0x0d,0x82,0x15,0xa5,0xf7,0xfe,0xa1,0x20,0x13,0x9e,0xbb,0x43,0x58,0xba,0xd2,0xe8,0x89,0xaa,0xfc,0xe0,0x47,0x6b,0xac,0x91,0x8b,0xeb,0x4f,0xf5,0xda,0xf5,0xc8,0x11,0x64,0x7c,0x8d,0x43,0x92,0xf2,0x84,0xeb,0xfb,0x5c,0x1b,0x6b,0x68,0x8e,0x3c,0x66,0xb2,0xd1,0x8e,0x67,0x44,0xbf,0x69,0x3b
+.byte 0xb9,0x41,0x78,0x8d,0xc8,0x7b,0x81,0x61,0x70,0x6e,0xe2,0xfc,0xd2,0x96,0x31,0x31,0x2f,0x27,0x90,0xf2,0xc4,0xed,0xbd,0xb5,0x0e,0x91,0x7d,0xd0,0xec,0x3c,0xe9,0xcf,0xf2,0x07,0xac,0x54,0x44,0x9a,0x24,0x41,0xcb,0x2a,0x86,0x30,0x18,0xba,0x65,0x59,0x41,0x00,0x59,0xbf,0x3d,0x01,0x8a,0x51,0xe5,0xd2,0x90,0x8c,0x7d,0xd7,0xad,0x71
+.byte 0xdc,0x45,0x62,0x95,0xf9,0x9f,0xe8,0x55,0x6d,0x48,0x22,0x32,0xcb,0x9a,0x55,0x65,0xe5,0xdf,0xee,0x22,0x99,0x91,0xd7,0xed,0x33,0x04,0x72,0xc7,0xc5,0xb2,0x56,0x5e,0x8f,0x38,0x4b,0xd0,0x61,0x4b,0x4b,0x04,0x4c,0x4c,0x2b,0x23,0x00,0xd4,0x5c,0xdd,0x84,0x8d,0x73,0xf4,0xf7,0xef,0xd5,0xdb,0x2b,0xec,0x54,0x86,0x37,0x01,0x64,0x56
+.byte 0xef,0x73,0x9f,0xb4,0xb6,0xd2,0xf4,0x33,0x93,0xbd,0xd7,0xd9,0x6e,0x8f,0x60,0x85,0xbc,0xa6,0x16,0x3f,0x3f,0xc3,0xd7,0xfc,0xb6,0x82,0xf0,0xe5,0x1e,0x2c,0x51,0x48,0x27,0x50,0x3e,0xdb,0xe6,0x86,0x3b,0xa1,0xfa,0x09,0x39,0x04,0x6f,0xb1,0x85,0xbd,0xda,0x4d,0x2f,0xd1,0x40,0x6f,0x2e,0x2b,0xf2,0x9a,0x4d,0x8e,0xb2,0xc5,0x6e,0x21
+.byte 0xf9,0xdd,0xc9,0x2e,0x81,0x18,0x7b,0x88,0xb9,0x86,0x36,0xe5,0xb2,0xdd,0x19,0xb4,0x7f,0x5d,0xc0,0x20,0x34,0xdc,0x63,0x7d,0x8c,0x80,0x0f,0xe6,0x85,0x14,0xbb,0x87,0x6c,0x3e,0x39,0x53,0x60,0x3d,0xc5,0x46,0x11,0xa3,0x96,0x60,0x6f,0xe9,0xfe,0x59,0xcc,0xed,0x4d,0xdb,0xa3,0xa1,0xf1,0x71,0x0b,0xb0,0x1f,0x89,0x4c,0x32,0x59,0xa5
+.byte 0x7d,0xf7,0x3e,0x5b,0xca,0xa4,0xe1,0xc3,0x50,0xac,0xdf,0x00,0xad,0x45,0x59,0x9e,0x23,0x5f,0x52,0xbd,0x36,0x78,0x55,0xcf,0x90,0x91,0x41,0x14,0xdb,0x76,0x3a,0x43,0x39,0x89,0xe1,0x93,0xc8,0x66,0x91,0xc7,0x42,0x06,0x6f,0xbb,0x35,0x1e,0x07,0x52,0x5a,0xe4,0x41,0x9f,0x65,0xe0,0xdc,0x49,0x8c,0xd3,0x5f,0x16,0x21,0xc9,0xb8,0x8a
+.byte 0xc2,0x56,0x91,0xcb,0x18,0x6b,0x38,0x7b,0x3a,0xeb,0x91,0x3c,0x0d,0x6a,0x1f,0xd6,0xc6,0xd7,0x56,0x8d,0xd3,0x76,0x1c,0x9d,0xed,0x3d,0xb6,0x92,0x71,0x6e,0x73,0xc6,0xb8,0xa2,0x1c,0x25,0xb9,0x3c,0xd4,0x41,0xf7,0x8f,0x39,0x60,0xe6,0x27,0xf2,0xc6,0x5f,0x56,0x08,0x7c,0xd3,0x16,0x9d,0x06,0xc0,0xca,0x3d,0xc6,0x61,0xb0,0x21,0x51
+.byte 0x6d,0xca,0x82,0x59,0xe6,0xbb,0x99,0xa2,0x4f,0xfc,0x71,0x66,0x2b,0x4e,0x40,0x62,0x97,0x34,0x73,0x4a,0xe5,0xf0,0x4f,0x4c,0x36,0x4c,0xdb,0x03,0xa9,0x87,0x29,0x21,0x5d,0x91,0x5b,0x89,0xb8,0x3d,0x65,0xc7,0x58,0x0a,0x81,0xb5,0x3e,0x22,0xa1,0x57,0x95,0xbe,0x60,0xf5,0xeb,0xb3,0x49,0xdf,0xd9,0xa2,0x31,0x36,0x5f,0xb2,0xa6,0xf6
+.byte 0x66,0x88,0x88,0x8e,0xa3,0x2c,0xac,0x5e,0xa1,0x33,0x16,0x64,0x08,0x47,0xc8,0xbc,0xc2,0xe9,0xdb,0x73,0x57,0x50,0xd4,0x24,0x01,0x26,0x26,0x04,0x4f,0x8a,0xc0,0x7a,0x97,0x14,0xf2,0xd0,0xbe,0x03,0xea,0x8a,0x25,0xcb,0x98,0xe7,0xbd,0x67,0xff,0x32,0xfd,0x8a,0x7d,0x11,0xe1,0xb2,0x91,0xb5,0xa0,0xb6,0x3c,0x2c,0xb3,0x6e,0x35,0x61
+.byte 0x86,0xbc,0x37,0x15,0xf8,0x3b,0x0d,0x84,0x83,0x69,0x76,0xb0,0xaa,0x8f,0x4f,0xca,0xba,0x54,0xfe,0x42,0xc8,0xba,0x9a,0xd5,0x53,0x69,0x67,0x29,0x23,0x3a,0x6a,0x75,0x97,0xb4,0x29,0x2e,0x62,0xe3,0x95,0x82,0xb3,0xa0,0xa1,0xb7,0xdf,0xc2,0x66,0x4d,0xdd,0x0d,0xda,0xda,0xc2,0x42,0xe0,0x69,0xb1,0xab,0x3c,0x44,0x39,0x11,0x3b,0x0a
+.byte 0xd6,0x96,0x2c,0x36,0xb0,0xa0,0xed,0x3d,0x0c,0x63,0x8b,0x90,0xe4,0xb9,0x5f,0x4c,0x27,0x70,0x87,0xb3,0x54,0xe2,0x36,0x74,0x6f,0x3e,0x22,0xb1,0x3b,0x1b,0xba,0xdb,0x1c,0xbd,0x9c,0x6d,0x84,0xbd,0x33,0xfb,0xc0,0x98,0x4c,0xcf,0x7a,0xe8,0x41,0xdb,0x32,0x1f,0xb7,0x64,0x19,0xdb,0x87,0xe7,0xf9,0x52,0x40,0x8c,0xc6,0x89,0x98,0x15
+.byte 0x69,0xde,0xfa,0x29,0x9a,0x0f,0xaf,0xb0,0xad,0x71,0x35,0xab,0xab,0x34,0xe0,0xf4,0x03,0x24,0x6f,0x94,0x38,0x87,0xba,0x68,0xd5,0x1f,0x58,0x88,0x3e,0x12,0x20,0x57,0x43,0xde,0xd0,0xbc,0xaa,0x31,0x8f,0xbc,0x88,0xa0,0xdf,0x5a,0xcc,0xd1,0xba,0x9c,0x18,0x80,0x4e,0x8f,0x68,0x91,0x9c,0x57,0x3b,0x5a,0x62,0xc7,0x29,0x3e,0x49,0xc7
+.byte 0x23,0x26,0xfd,0x9e,0xd0,0xb0,0x4f,0xd4,0xb2,0xa9,0xa8,0x4c,0x66,0x54,0x52,0x75,0x6b,0xbf,0x63,0x76,0x49,0x3b,0xa3,0xb2,0x8f,0x87,0x9d,0xb4,0x8f,0x07,0x3c,0x8e,0xae,0xe1,0x0e,0x9a,0x86,0x90,0x58,0x73,0x8a,0xb3,0xa9,0xab,0xe6,0x27,0xd7,0x70,0x94,0x77,0x12,0xdc,0x71,0xdf,0xcf,0xba,0xdd,0x85,0xfe,0x28,0xaa,0xcd,0xcc,0xe8
+.byte 0x5f,0xd4,0xd8,0x45,0x6f,0x20,0xa8,0x5e,0x40,0x91,0x3b,0xd7,0x59,0x92,0xb8,0x7d,0x2b,0x8b,0x38,0xbd,0xfe,0x7b,0xae,0x5c,0xee,0x47,0x9b,0x20,0xb7,0xf3,0xad,0x75,0xa9,0xe1,0x96,0xc8,0xb2,0x30,0xfe,0x0c,0x36,0xa2,0x02,0xf4,0x3b,0x30,0xfd,0x91,0xfa,0x5f,0xd6,0x18,0x1a,0xcb,0xd2,0x26,0xbb,0x67,0xbe,0x1c,0x99,0xa5,0x4f,0x57
+.byte 0x40,0xb5,0xed,0xd6,0x84,0xfd,0x6b,0x00,0xc8,0xe7,0x18,0x1a,0x9f,0xf7,0x3b,0xd1,0xcc,0x12,0xeb,0x9d,0x61,0xf0,0x8d,0x64,0x08,0x93,0x61,0xc4,0x3e,0xdb,0xda,0x15,0xb1,0xd6,0x2c,0x84,0x2a,0xd8,0xd2,0xa1,0x66,0x4e,0xc9,0xd6,0xbf,0x7e,0xb6,0x22,0xfa,0x35,0x5e,0xdc,0xc0,0x31,0x02,0xb8,0x17,0x46,0x9e,0x67,0xd3,0x6a,0x8f,0x33
+.byte 0x85,0xc3,0xfe,0x36,0xbc,0x6f,0x18,0x8a,0xef,0x47,0xf1,0xf2,0x6e,0x15,0x6c,0xb1,0x4a,0x4b,0x13,0x84,0xd5,0x1b,0xf9,0xa2,0x69,0xcd,0xc7,0x49,0xce,0x36,0x8e,0xe5,0xd5,0x35,0x05,0x7c,0x7f,0xc6,0x15,0x29,0x2e,0x64,0xa6,0x91,0x9d,0xe5,0x9d,0x90,0xe7,0x26,0xec,0x75,0x19,0x58,0x57,0xf2,0x19,0x7b,0x24,0x7d,0x19,0xd3,0x72,0x69
+.byte 0xaa,0xa2,0x8c,0xe3,0x3d,0x38,0xb9,0xf0,0x5b,0xe9,0x3b,0xaa,0x96,0xef,0x2c,0xfc,0xf5,0x13,0xa6,0xa9,0x57,0x8c,0xa9,0x3a,0xc1,0xf0,0x2d,0x57,0x06,0x08,0xe3,0x9c,0xfe,0x82,0x8a,0x6a,0x79,0x5b,0xef,0x2b,0x81,0x83,0x01,0x53,0xac,0xdc,0x79,0x93,0x9b,0x23,0xd4,0xae,0x17,0x6f,0x62,0xaa,0x33,0x41,0xa6,0x31,0x1c,0x7b,0x46,0x2b
+.byte 0x17,0xd3,0x6f,0x66,0x73,0x54,0xee,0xa1,0x08,0xee,0x8f,0x0f,0x0e,0x53,0xa7,0x49,0x17,0xdb,0x35,0xaf,0x4e,0x94,0x87,0x8e,0xff,0xf4,0x2b,0x29,0x01,0x45,0xa3,0x0a,0xd9,0x13,0x38,0x09,0x46,0x2c,0x56,0x97,0xd7,0xee,0x24,0x43,0xd1,0x20,0xed,0x38,0xde,0x52,0x13,0x38,0x06,0xd3,0x97,0xc7,0x48,0x8b,0x72,0x0a,0xc5,0xca,0x75,0x2c
+.byte 0x04,0x9e,0xee,0x14,0xe7,0xda,0x59,0xc2,0x54,0x7a,0x72,0x55,0x35,0x00,0x93,0xb7,0xb9,0x81,0x01,0x46,0xae,0x43,0x81,0x34,0xd7,0xb4,0x7a,0xfc,0xfc,0x98,0x2b,0x29,0xe5,0x5e,0x9d,0x8e,0xef,0xd4,0x44,0x9d,0x9a,0xbe,0xdb,0x83,0x33,0x18,0x9e,0xbd,0x0f,0x34,0x4d,0xd9,0x34,0xe0,0x2c,0x1f,0x10,0xaa,0x06,0x5e,0x54,0x51,0x72,0xec
+.byte 0xbf,0x6b,0x3e,0xb9,0xdd,0x37,0xc3,0xe1,0xbe,0xbe,0x1d,0x86,0xde,0x12,0xca,0x82,0xc5,0xe5,0x47,0xf8,0xbe,0xef,0xb6,0x79,0xd5,0x3c,0x69,0x0a,0x35,0x3e,0xd3,0xf8,0xaf,0x5b,0x8e,0x69,0xff,0xb2,0xf7,0x91,0xc2,0x70,0x22,0x97,0x1c,0x5c,0x56,0x25,0x5a,0xcf,0x31,0x7a,0x37,0xce,0xc7,0xf2,0x98,0xdc,0xb5,0x58,0x71,0x5a,0x60,0xe2
+.byte 0xfe,0x4f,0xf3,0xe2,0x2a,0xca,0x22,0x3e,0x07,0xc2,0xea,0x23,0xc8,0x04,0x97,0x7f,0xca,0xf6,0xf8,0x12,0x06,0x88,0x81,0xee,0xb7,0xdd,0x56,0x9e,0x0f,0x36,0xd3,0x09,0xa8,0x74,0x4d,0x8b,0x8f,0x31,0x64,0xbe,0x9d,0x7b,0x68,0x50,0xc8,0x64,0x40,0x3b,0x0c,0x04,0xb9,0x4b,0x9e,0xff,0x7e,0x5d,0xd8,0x57,0xa0,0xe5,0x6d,0xc2,0x37,0xe7
+.byte 0xd1,0xd9,0x96,0xaa,0x16,0x3e,0xa2,0x9d,0x32,0xe7,0x1e,0x11,0x6e,0x41,0xe2,0xa0,0xe1,0x6f,0x32,0x6d,0xd5,0x38,0x0c,0x27,0x27,0xa9,0xc2,0x04,0xc6,0xe7,0x8d,0x7d,0x7b,0x30,0xbe,0x54,0x6b,0x82,0x37,0x39,0x53,0x54,0xc9,0xac,0xcb,0xd1,0x31,0x79,0xd4,0x7b,0x85,0x07,0xf4,0xf4,0x5d,0x33,0xc7,0x91,0x4e,0xe5,0x13,0x78,0x09,0x42
+.byte 0x29,0x48,0xaf,0x82,0xb1,0x88,0xd4,0xd3,0x57,0x50,0x38,0xa7,0x66,0x41,0x63,0x34,0x2a,0x3c,0x5e,0x8f,0xc4,0xc1,0x00,0xa1,0x22,0xbe,0x5e,0x64,0xb0,0x60,0x9b,0x42,0x9d,0xc6,0x59,0x5c,0xcc,0x29,0x6f,0x64,0x5b,0x5c,0x0f,0xb2,0xae,0x21,0x0c,0x9a,0x6a,0x19,0xb9,0xa6,0x32,0xf8,0xdc,0x82,0xea,0xba,0x27,0xcf,0x42,0xd3,0xde,0x78
+.byte 0xfe,0x9c,0xa5,0x36,0xb6,0x24,0xb6,0x0d,0x5b,0x67,0x6c,0xf5,0x16,0xbf,0x67,0x54,0x4f,0xe4,0x83,0x29,0x75,0x42,0x9a,0xbb,0xd5,0xe7,0x01,0x1f,0xbd,0x80,0x1a,0x7a,0xb6,0xe1,0x2b,0x5d,0x71,0x93,0x00,0xad,0xf6,0x11,0x8d,0x67,0xdc,0x9c,0x8f,0xf0,0x09,0x3f,0xf9,0xa4,0xd6,0xe0,0xdd,0x95,0xea,0xfb,0x71,0x76,0x21,0x31,0x6d,0x48
+.byte 0x0a,0x27,0xa8,0xa6,0x3a,0x7f,0x42,0x6b,0x7e,0xd7,0x6e,0xd5,0x42,0x97,0xad,0x55,0xae,0x26,0x3c,0xde,0x3f,0xaf,0xfd,0x1d,0x6d,0xd3,0xeb,0x84,0xad,0x6d,0xd1,0x4a,0x85,0x1a,0xf7,0x99,0xa4,0xd0,0x48,0xfb,0xf6,0xfe,0xc6,0xea,0x61,0x77,0xe2,0x56,0x87,0xc1,0x36,0x44,0xb4,0xe3,0xd7,0xd9,0x6d,0x3e,0x1b,0xf4,0x72,0x3e,0xfe,0xa5
+.byte 0x47,0xf8,0x3f,0x1a,0x6e,0x43,0xf5,0x67,0xfe,0x90,0x96,0x9b,0x52,0xde,0xab,0xfb,0x45,0x7d,0x93,0xea,0xc3,0x40,0xe1,0x5f,0xcd,0xad,0x3b,0xe9,0x4e,0x36,0xc5,0x38,0xf4,0x66,0xde,0x4b,0xc8,0x2a,0xc3,0xa2,0x3a,0x2a,0xf1,0xd1,0xe8,0x01,0x07,0x37,0xca,0x42,0xbf,0x4f,0xd8,0xc5,0x50,0x93,0x1a,0x01,0x1d,0x51,0x41,0x6e,0xbf,0x68
+.byte 0x93,0x2e,0xdc,0x41,0x23,0xf3,0x13,0xe7,0x09,0xfa,0x39,0x6d,0xee,0x41,0x49,0xbb,0x78,0x04,0xcf,0xc9,0xbb,0x11,0xaa,0x57,0xb5,0x3e,0x4c,0x3a,0x77,0xb7,0x0b,0x38,0x34,0x48,0xd0,0x99,0x20,0x55,0xcd,0x43,0x2f,0x68,0x66,0xb0,0xe6,0x75,0x41,0xe4,0xae,0xfd,0x96,0xe8,0x01,0x4c,0x0b,0x5c,0xbc,0x4f,0x45,0x70,0x08,0x9e,0xf7,0x68
+.byte 0x9e,0xbb,0xe5,0x39,0x20,0x3f,0xbe,0xd3,0xe3,0x95,0xba,0x98,0xd5,0x12,0x2e,0x87,0xd4,0xf4,0x12,0xa2,0xcb,0xd4,0x51,0x53,0x93,0x67,0x06,0xf1,0x21,0x0e,0x92,0x8f,0x9f,0x9e,0x6c,0x16,0xa4,0x2c,0x6d,0xb0,0xd0,0xe1,0x87,0x2f,0x09,0x2c,0x8f,0x4b,0x89,0x1f,0xab,0x66,0xf1,0xcd,0x6e,0x67,0xaf,0x07,0x99,0x18,0x1b,0xda,0xc8,0x65
+.byte 0x81,0xa3,0x37,0x8a,0xad,0xe4,0x1d,0xfd,0x82,0xa0,0xf1,0xe1,0x1e,0x8d,0x0b,0xf7,0x07,0x7c,0xb3,0x10,0xc8,0x5a,0xa9,0xcc,0xc8,0xd0,0x2e,0x5a,0x71,0x45,0x4c,0x30,0xf0,0x10,0xe0,0xf6,0x0d,0x0d,0x11,0xb4,0x83,0x40,0x75,0xee,0xb9,0x24,0x04,0xe3,0xba,0xb3,0xd3,0x00,0x57,0x71,0x98,0xf0,0x4b,0x35,0x8d,0xd8,0x71,0xa0,0xcc,0xaf
+.byte 0x46,0x54,0x67,0x65,0x70,0x0b,0x9c,0x61,0xf8,0xd4,0xb2,0x35,0xfd,0xcf,0x2b,0x3a,0x48,0x5b,0x03,0x86,0xd8,0x13,0x48,0x8a,0x55,0xa5,0x4d,0xef,0x42,0x41,0xbb,0x6a,0x8c,0x92,0x46,0x87,0x82,0x09,0x43,0xf3,0x94,0x1d,0x23,0x36,0xfe,0x6f,0xb8,0x9f,0xfa,0xf9,0x92,0x27,0x3c,0xcc,0x47,0x89,0x5c,0x7f,0x81,0x42,0x74,0x12,0x14,0xff
+.byte 0x98,0x63,0xc0,0xfb,0x70,0xff,0xc7,0x65,0x5a,0xc3,0xb9,0x74,0x1b,0x71,0x3c,0x2c,0x47,0x79,0x07,0xb9,0x3c,0xc2,0x5f,0x48,0x4f,0xbd,0xaf,0x03,0x05,0x57,0xa9,0x84,0x33,0xc8,0x0d,0xd5,0xac,0x42,0xdb,0x4b,0x57,0x46,0x41,0xf0,0xe4,0x08,0x0d,0xf3,0x43,0x41,0xa5,0x14,0xb7,0xcd,0x64,0x23,0xc9,0xfe,0xff,0x12,0x97,0xc6,0x2f,0x8d
+.byte 0x9e,0xf2,0x1d,0x33,0x26,0x3c,0x57,0x17,0xe1,0x7b,0x92,0x3f,0xb6,0xf4,0xd9,0xf8,0xe0,0x37,0xe6,0x18,0x7d,0xa7,0x8a,0x1e,0xe8,0xd8,0x56,0xa6,0x63,0xdf,0xa3,0x99,0x16,0x74,0x48,0x01,0xaf,0x95,0x55,0x40,0xce,0xa8,0x0d,0x30,0x01,0x09,0x40,0xc9,0x9d,0x3d,0xdf,0x4e,0x00,0xe0,0x2a,0xe6,0xdb,0xa2,0x79,0x42,0x57,0xd0,0x3d,0x81
+.byte 0x7f,0x67,0x3a,0xa9,0x63,0xb3,0xd4,0x60,0xa7,0xab,0x54,0x46,0xb0,0xbe,0xb0,0x83,0x72,0xec,0x47,0x0f,0xc7,0xd1,0xed,0x16,0x96,0xbc,0xa5,0x62,0x38,0xdb,0x88,0x2b,0x25,0x26,0x27,0x56,0x7f,0x46,0x39,0xe8,0x4e,0xc0,0x6c,0x62,0xf8,0x80,0x68,0x56,0x8a,0x93,0x51,0x95,0x77,0xe3,0x11,0x7b,0xaf,0xc4,0xcf,0x34,0x5a,0xd5,0x26,0xfc
+.byte 0xa2,0x18,0xb0,0xc0,0xa5,0x8b,0x25,0x70,0x40,0x70,0x29,0xc3,0xda,0x80,0x3d,0xe2,0x59,0x49,0x7f,0xdd,0x62,0x6e,0x5a,0xe6,0x27,0x73,0xce,0xb6,0x32,0x37,0x5f,0x73,0x12,0x2b,0x34,0x84,0xff,0x85,0xe3,0xb5,0x93,0x41,0x47,0xc5,0xf5,0x0e,0x21,0xfb,0x24,0x0f,0xdf,0x7b,0xb4,0x29,0x7f,0x67,0x2a,0x38,0x79,0xf0,0x54,0x8a,0x94,0x68
+.byte 0xe2,0x0b,0xb0,0xd4,0xb2,0xa4,0xe4,0xfb,0x3b,0xe6,0xe7,0x59,0x41,0xbd,0xed,0x62,0xce,0x50,0x1a,0x47,0x92,0x92,0x8d,0x80,0xa6,0x05,0x7a,0xb0,0xce,0x48,0x9c,0xb0,0x64,0xea,0xe0,0xa5,0x77,0xff,0xc1,0x82,0x99,0x7b,0xfb,0x74,0x53,0xfa,0x41,0x9a,0x2c,0xb4,0xbb,0xd2,0x26,0xa1,0x80,0x68,0x17,0xaa,0x8f,0x14,0x52,0xb6,0x5d,0xe0
+.byte 0x69,0x5b,0x31,0xc5,0xf5,0x32,0x0d,0xff,0xa4,0x7b,0x28,0x38,0x9b,0x61,0xfc,0xd0,0x92,0xb8,0x6e,0x23,0x8a,0xf3,0xc7,0x85,0x11,0xb8,0xd0,0x19,0xaf,0xca,0xa7,0xb4,0xcc,0xeb,0x5d,0xf6,0xa1,0x1c,0x56,0xdf,0x78,0x7a,0xe3,0x6a,0xa4,0x07,0x71,0xce,0xf1,0xb2,0xd5,0x38,0x3c,0xfa,0xf7,0x7a,0xbf,0x4b,0x43,0xa6,0xb3,0x4d,0xff,0x82
+.byte 0x96,0x46,0xb5,0xec,0xda,0xb4,0x5e,0x35,0x78,0xeb,0x4a,0x7e,0xc5,0x7b,0x05,0xd4,0xdd,0xf7,0xb7,0xf3,0xf0,0x04,0x26,0x7e,0x5e,0xc1,0x23,0xca,0x7f,0x14,0x27,0xac,0xda,0xe7,0xdb,0x31,0x05,0x9d,0xd4,0xda,0x20,0xc7,0x6d,0x9a,0x47,0x14,0x38,0xbd,0x7c,0xfe,0xbe,0x8d,0x42,0x7c,0xba,0x36,0xe2,0x2c,0x26,0xd2,0x46,0xa5,0x6b,0xbd
+.byte 0x6a,0x75,0x6b,0x52,0x8c,0x10,0xc6,0x0e,0x76,0x60,0x46,0xcc,0x93,0x54,0xc4,0x6e,0xc7,0x70,0x5b,0xb4,0x81,0x51,0x56,0x03,0x22,0x33,0x21,0xe4,0x36,0xee,0x01,0xc3,0x0d,0x17,0x23,0x15,0xae,0x79,0xbc,0xe6,0x13,0x0f,0xfc,0x77,0xa2,0x06,0xed,0x76,0x4a,0xf7,0x2d,0x99,0xc8,0x5c,0xfd,0xac,0xd0,0x11,0xe8,0xfa,0x55,0x17,0x56,0x63
+.byte 0x3e,0xd5,0x23,0x71,0xf8,0xe9,0x1f,0x62,0x95,0xae,0x7c,0x2d,0xcd,0xb8,0x6e,0xb0,0xfe,0xf3,0xd0,0xba,0x72,0x8e,0xe3,0x95,0x82,0x00,0x85,0xdb,0x25,0xe4,0xf2,0xaa,0xbc,0x8d,0xb9,0x4d,0x69,0xa4,0xcd,0x39,0x52,0x9e,0x10,0xae,0x90,0xf0,0x74,0x2f,0xc6,0x5e,0x01,0x99,0x03,0xd5,0x88,0x59,0xfd,0x1b,0x80,0x56,0x0a,0x04,0x27,0xd9
+.byte 0x04,0x51,0xb0,0xb7,0x7a,0x65,0x79,0xa8,0xe2,0x6d,0x7f,0xb2,0xba,0x37,0x40,0xa0,0xbb,0xaf,0x15,0x46,0x23,0x5f,0x22,0xd0,0x2c,0x6c,0x7a,0x58,0x76,0x6f,0xb8,0x19,0xfe,0xb5,0x3d,0xf0,0x77,0x00,0x6b,0x4c,0x83,0x36,0x90,0xe6,0x57,0x29,0x6e,0x27,0x76,0xd4,0x7d,0x9a,0x6a,0xf1,0xf6,0x1b,0x1a,0x45,0xf5,0xf6,0x2d,0xb8,0x30,0x33
+.byte 0x65,0x51,0x37,0x26,0xbc,0xf7,0xb7,0xf9,0x56,0x05,0x6b,0xd4,0xd6,0x00,0x1d,0x13,0x15,0x45,0x24,0x0d,0x28,0x69,0xc6,0x50,0xe1,0x48,0x48,0x34,0x69,0x31,0x3c,0x58,0x71,0xd6,0x4a,0xd9,0xda,0x0d,0x28,0xbd,0xe9,0x5d,0x5d,0x8a,0x6e,0x71,0xc0,0x8b,0x7a,0xba,0x17,0x8e,0x82,0xcb,0xe9,0x95,0xc4,0x43,0x37,0xd0,0x58,0xed,0xec,0x77
+.byte 0x1e,0x22,0xf0,0xf0,0x7c,0x9d,0xeb,0x64,0x30,0x7b,0xb2,0x7b,0x86,0xdb,0xef,0x92,0x79,0xd9,0x9c,0x1c,0x1a,0xf6,0x98,0x26,0x18,0xa2,0x83,0x45,0x08,0xd4,0x1d,0x84,0xd4,0x28,0x6d,0x1f,0xb5,0x1f,0xab,0x97,0xc9,0x0d,0x1f,0x83,0x34,0x18,0xa3,0x20,0x63,0x60,0x6c,0xf3,0xd8,0xb2,0x0a,0xd9,0x35,0xa6,0xce,0x44,0x50,0xc6,0xf3,0x91
+.byte 0xe3,0x95,0x89,0x49,0x99,0x32,0x1d,0xf2,0x54,0x39,0x09,0xca,0xd1,0xc4,0x7f,0xa1,0x1d,0xce,0x94,0x67,0xf1,0x88,0x04,0x29,0xcb,0x5d,0xf7,0xfa,0xcd,0x69,0x16,0x17,0x05,0xc3,0x93,0x45,0xbf,0xd3,0x74,0x63,0xdc,0xe2,0x84,0xab,0x27,0x60,0x56,0x61,0x72,0x5d,0xdf,0xb4,0xa4,0x0f,0xb0,0x21,0x82,0x9b,0x73,0x0a,0x11,0x22,0x2d,0x65
+.byte 0xa2,0xff,0x29,0x8a,0x19,0x28,0x4f,0x4f,0xdd,0x64,0x0a,0x48,0x35,0x70,0x30,0x9f,0x41,0x4d,0x0c,0x7b,0xa6,0xcb,0x63,0x83,0xd1,0x79,0xfa,0x5f,0xc9,0x9b,0x6e,0x09,0x12,0x87,0xcd,0x1e,0x39,0xd6,0x40,0x08,0x0f,0xfd,0x79,0xc8,0xcb,0x77,0x8f,0x7a,0x52,0x42,0xc0,0xb2,0xc8,0xa0,0x2a,0xff,0xbc,0x60,0x13,0xbc,0x41,0x4a,0xc6,0x8b
+.byte 0x08,0xb0,0x9f,0x75,0x87,0xa1,0x75,0x42,0x4b,0x3a,0xf7,0xf7,0x84,0x39,0xa5,0x88,0x25,0x2d,0x4f,0x73,0x4e,0x30,0x27,0x92,0xea,0x93,0x70,0x5c,0xb5,0xeb,0xb0,0x10,0xda,0x0f,0xaa,0xb3,0x3f,0xb5,0x55,0x64,0x65,0xae,0xb5,0xf8,0x0a,0xe4,0x9f,0x86,0x02,0x6f,0x63,0x8a,0x0b,0x6b,0x82,0x85,0x3c,0x6a,0xdf,0x68,0x4c,0x1e,0xe9,0x5c
+.byte 0xd0,0x99,0xe5,0x0c,0xfc,0x63,0xfb,0xce,0x2d,0x63,0xd5,0x7d,0x8a,0x7d,0x14,0x22,0xbd,0x71,0x5e,0x79,0x3f,0x44,0x95,0xe5,0x6c,0x58,0x94,0x84,0x41,0x65,0x52,0x94,0x50,0xec,0xd3,0x2a,0x16,0x88,0xdb,0x71,0xb9,0xe4,0xb6,0xbf,0xc5,0x3c,0x48,0x37,0x62,0x32,0x79,0xbe,0x1d,0xdb,0xc9,0x79,0x37,0x40,0x65,0x20,0x62,0x45,0xb4,0xda
+.byte 0x24,0xef,0x33,0xf1,0x05,0x49,0xef,0x36,0x17,0x17,0x0f,0xdc,0x65,0xb4,0xdc,0x57,0xc3,0xc6,0x82,0x57,0x08,0xf2,0x20,0x57,0x5c,0x25,0x0e,0x46,0x75,0xa7,0x4f,0x9e,0xa4,0x00,0xf7,0x79,0xb9,0x0a,0xef,0x4f,0x50,0x79,0xf8,0x59,0x01,0xf2,0x74,0x9f,0x16,0x27,0xa5,0xc1,0x32,0xcc,0x58,0xa7,0x40,0xa1,0xa1,0x26,0x80,0x00,0xb5,0x64
+.byte 0x0a,0xd8,0x53,0x1f,0x72,0xf7,0x60,0xf7,0x0a,0xaa,0xdf,0x31,0x95,0xff,0xfc,0xb4,0xca,0xbc,0xf8,0x2a,0x33,0x20,0x04,0x16,0x1a,0xe7,0xeb,0x22,0xd1,0x25,0xa6,0x03,0xc9,0x9e,0x9e,0xca,0x7a,0x46,0x7c,0xcb,0x8a,0x63,0x4a,0xf0,0x1b,0xd0,0x34,0xc3,0xbb,0x89,0xcf,0x16,0x38,0xcb,0xe0,0xce,0xd5,0x0b,0xfd,0x4e,0xbc,0xce,0xba,0x28
+.byte 0x68,0x00,0x2a,0x31,0x52,0xe6,0xaf,0x81,0x3c,0x12,0x09,0x2f,0x11,0x0d,0x96,0xc7,0x07,0x42,0xd6,0xa4,0x2e,0xc1,0xa5,0x82,0xa5,0xbe,0xb3,0x67,0x7a,0x38,0xf0,0x5e,0xd8,0xff,0x09,0xf6,0xab,0x6b,0x5d,0xec,0x2b,0x9f,0xf4,0xe6,0xcc,0x9b,0x71,0x72,0xd1,0xcf,0x29,0x10,0xe6,0xe3,0x27,0x1c,0x41,0xc8,0x21,0xdf,0x55,0x27,0xa6,0x73
+.byte 0xb7,0x45,0xa1,0x09,0x66,0x2f,0x08,0x26,0xf1,0x50,0xe0,0xec,0x9d,0xf2,0x08,0xf3,0x49,0x56,0x50,0xe0,0xba,0x73,0x3a,0x93,0xf5,0xab,0x64,0xb6,0x50,0xf4,0xfa,0xce,0x8d,0x79,0x0b,0xad,0x73,0xf2,0x8c,0x1e,0xe4,0xdd,0x24,0x38,0x1a,0xde,0x77,0x99,0xb8,0x92,0xca,0xc0,0xc0,0xbc,0x3d,0x01,0x6f,0x93,0x3a,0x6e,0xc5,0x28,0x6e,0x24
+.byte 0x9c,0xf9,0xd9,0xcb,0x4b,0xbe,0x9e,0xda,0x0d,0x10,0xfb,0x9d,0x15,0xfe,0x28,0xdc,0xd9,0x09,0x72,0xd3,0x9f,0x6d,0x77,0x14,0x84,0x86,0x56,0x10,0xdc,0x8e,0x6a,0xa7,0x62,0xf0,0x0b,0x65,0x2c,0xa2,0xd1,0x7f,0xae,0x32,0xfa,0x9b,0x46,0x0f,0x12,0x08,0x22,0x8c,0x87,0x15,0x4b,0xc4,0x6d,0x85,0xfb,0x69,0xfe,0xce,0xfb,0xb4,0x3e,0x7b
+.byte 0xcf,0x88,0xa7,0x97,0x52,0x56,0xd0,0x9f,0xb4,0x33,0xf9,0x08,0xd2,0x28,0x46,0x5e,0xc4,0xec,0x22,0xc6,0x1e,0x7b,0x34,0x99,0x0c,0x5b,0x04,0x19,0xe2,0xca,0x09,0x11,0x50,0x45,0xcc,0xb2,0x90,0x25,0x51,0x68,0xc9,0x20,0x6c,0x99,0x2e,0xdb,0x5b,0x07,0x91,0xb2,0x69,0xbf,0x3c,0x05,0x50,0xfb,0x21,0x33,0x4f,0x6e,0x18,0x19,0xd5,0xff
+.byte 0xce,0x9d,0xb5,0x7f,0xd4,0xd5,0x8f,0x41,0x26,0x1f,0xa1,0x4c,0x34,0xd3,0x98,0x08,0x5d,0xb5,0x56,0xa7,0x04,0x63,0x76,0x7d,0xae,0xee,0xea,0xbf,0x69,0x8d,0xff,0xa1,0x62,0x86,0x19,0x7b,0xe5,0x08,0x7a,0xe5,0x9e,0xe5,0x44,0xca,0x24,0xde,0x00,0x43,0xc7,0xcd,0xc8,0x5b,0x21,0x00,0xb9,0x56,0x3f,0xba,0xef,0xcd,0xc4,0xe0,0xd7,0x90
+.byte 0xa7,0xe1,0xf9,0x83,0x2c,0x1d,0x8d,0xc3,0x1b,0xa2,0xab,0xcd,0x7d,0xbc,0xd1,0x2b,0xf8,0x30,0x9e,0xb6,0x95,0xe0,0xd1,0xe6,0x81,0x89,0xa7,0xda,0xf0,0x54,0xc1,0xcb,0x3a,0x85,0x85,0xb5,0x03,0xb4,0x8c,0x7d,0x98,0x16,0xa8,0x83,0x29,0xbb,0x1c,0x1d,0xe1,0x7e,0x0e,0xb5,0x04,0xba,0xbf,0x89,0x30,0x3c,0x44,0xa2,0xc5,0xbf,0xf1,0x70
+.byte 0xdb,0xf3,0x13,0xf4,0x44,0xac,0x63,0xc4,0x9c,0x93,0xa9,0x13,0x1b,0xf1,0xcc,0x16,0x66,0xdf,0x56,0x10,0x88,0x0c,0x76,0xab,0x43,0xcb,0x75,0xf8,0x4f,0x04,0x26,0x95,0x4c,0x6d,0x55,0xc8,0xbd,0xf8,0x94,0x0f,0xca,0x29,0x2b,0xcd,0xce,0x05,0x1e,0xea,0xae,0x02,0x01,0x8b,0x60,0x6a,0x6a,0x03,0x14,0xe5,0xa7,0xdf,0x9e,0x9f,0x94,0x92
+.byte 0x41,0x2c,0xf0,0x1a,0xa7,0xc2,0xc1,0xfc,0x11,0xf3,0x00,0xe1,0xfc,0x7a,0x97,0xc0,0xe1,0x81,0x90,0x3f,0xea,0x1e,0x7f,0xf8,0xb0,0xd8,0x4c,0x2d,0xdc,0x83,0xfa,0x27,0x8b,0xf2,0xef,0x3b,0x3a,0x44,0xdc,0xa5,0xa9,0xd5,0x24,0x5f,0xb1,0xdd,0x1d,0x3f,0x03,0x76,0x3b,0x92,0x0d,0xb4,0x84,0xa4,0x5b,0xef,0x9f,0x89,0x9d,0xef,0xff,0xcf
+.byte 0xc2,0x28,0x3b,0x9d,0xd2,0x28,0x75,0x3e,0xdc,0x14,0x79,0x7c,0x0c,0xaa,0x6c,0xf2,0x05,0x9d,0x27,0x01,0x15,0x19,0x60,0x48,0x5a,0x7d,0x04,0x27,0x2d,0x82,0x92,0x3e,0x0b,0x62,0xd7,0x5a,0xfb,0x72,0xfb,0xdd,0x43,0xfa,0xf4,0x6f,0x16,0xd2,0x8f,0x8f,0x21,0xdc,0x81,0x48,0x7a,0xe8,0x39,0xd5,0xdf,0x54,0x0f,0xe1,0xbe,0x65,0xc9,0x49
+.byte 0x98,0xb1,0xff,0x8d,0x52,0x31,0x6a,0xcd,0x5e,0x83,0x17,0x41,0x93,0xcd,0x23,0x76,0x18,0xe9,0x82,0x71,0x15,0xb7,0xd8,0xde,0x0d,0x57,0x8b,0x90,0xe6,0xf4,0x57,0xc1,0xfd,0x3d,0x0d,0x6a,0xae,0xd1,0xd6,0x02,0x3e,0xb9,0x82,0xb2,0x82,0x80,0x48,0xa4,0x14,0x29,0x80,0x55,0x1d,0xaf,0x3e,0xf8,0x7e,0x36,0x5f,0x77,0x4c,0x73,0x6c,0x35
+.byte 0xd2,0x7c,0x36,0xca,0x2f,0xec,0x1e,0x3f,0x74,0xee,0xa5,0xe7,0x7d,0xce,0x81,0xf1,0xd5,0xc1,0xb3,0xaf,0x90,0x2c,0xc6,0x5b,0x81,0x37,0x85,0x98,0x78,0x3c,0x4f,0x2a,0x55,0xea,0x06,0x30,0x77,0x73,0x97,0x39,0x75,0xcf,0x4a,0x9b,0x55,0xb8,0x64,0x5c,0x86,0xfd,0x26,0x3e,0x8d,0x68,0xd2,0x70,0xe8,0xd7,0x99,0x57,0x6f,0x96,0x47,0x6d
+.byte 0xa7,0x1a,0x0e,0x85,0xcd,0x00,0xa5,0x3e,0x11,0xec,0x76,0xd2,0x47,0x26,0x71,0xda,0x5c,0xf4,0xb1,0xd5,0x23,0xe1,0x62,0x71,0x43,0x30,0xa7,0x95,0xf6,0xc1,0xcf,0x8a,0x1b,0x75,0x53,0x39,0x6d,0x9d,0x18,0x7c,0xe3,0x48,0x27,0x33,0x1c,0x38,0x45,0xdf,0x75,0x22,0x05,0x6d,0x81,0x5d,0xfc,0xeb,0x0e,0x05,0x26,0x45,0x81,0x9f,0xce,0x0f
+.byte 0xc9,0xdd,0x95,0x11,0x04,0x47,0x40,0xa4,0x07,0x3b,0x52,0x92,0xe0,0x91,0xdb,0xdd,0x3c,0x9f,0xd3,0xa1,0xb7,0xf9,0xeb,0xd6,0x6d,0x64,0x88,0xe9,0xf5,0x4e,0x98,0x8e,0x7b,0xd3,0xec,0xc0,0x22,0xe0,0xf2,0x14,0xf2,0x20,0xa2,0xa3,0xb3,0x0d,0x75,0x1a,0xbb,0xde,0x4a,0x41,0x04,0x43,0x0d,0xd9,0xd0,0x1d,0x73,0xc8,0x67,0x8e,0x58,0xe5
+.byte 0x4b,0x28,0x4d,0x8f,0x2f,0xab,0x1a,0x4a,0xfc,0x7c,0xd1,0x27,0x3e,0x4a,0x10,0x6a,0x5f,0x55,0x3a,0xf7,0x63,0x14,0xe9,0xad,0xb4,0x95,0xef,0x3d,0x5c,0xc3,0x7d,0xe4,0xb7,0x15,0xd7,0x0b,0x68,0xf0,0x23,0xa8,0xd4,0x8e,0x27,0xf6,0x55,0x11,0xbc,0xc0,0xff,0x3e,0x2c,0x24,0x59,0xb7,0xb7,0xb5,0x0b,0xd2,0x99,0xa5,0xd5,0xe2,0x24,0x33
+.byte 0x21,0xb8,0x96,0x48,0x18,0x94,0xb5,0xb2,0x50,0x5e,0x04,0x24,0x86,0x17,0x62,0x1e,0xc9,0xf8,0x22,0x6a,0xd0,0xec,0xc5,0xbc,0x90,0xf7,0x55,0xcf,0x3f,0x4c,0x7c,0xf7,0x51,0x19,0x95,0xa4,0x81,0x38,0x0c,0xa5,0x58,0x22,0xf3,0x10,0x05,0x05,0x44,0xbf,0x7e,0x2a,0xbd,0x5f,0x79,0x56,0x08,0xd5,0x68,0xea,0x85,0xa1,0xeb,0x0b,0xe1,0xd4
+.byte 0xfd,0x3a,0x38,0xd2,0x5a,0x49,0x17,0x9a,0x58,0x8f,0x52,0xf5,0xf4,0x7b,0x1f,0x58,0xa8,0xc0,0x1c,0x46,0x38,0xa6,0xe4,0x7d,0xcc,0x88,0x97,0x10,0x2b,0x5e,0x61,0xf5,0x73,0x7d,0x79,0x1b,0x53,0xf1,0xac,0xb4,0x3f,0xbd,0x9d,0xb6,0xc2,0x57,0xd5,0x84,0x4d,0x60,0xd6,0x45,0x56,0xa1,0x36,0x28,0xf5,0x74,0xc6,0x29,0xd7,0xc9,0x63,0x5e
+.byte 0x7c,0x97,0x46,0xde,0x56,0x3f,0xd8,0x8e,0x75,0x29,0x87,0xe7,0xd1,0x24,0x78,0x26,0xdc,0x17,0x97,0xc9,0xf0,0x8e,0x95,0xbc,0xe5,0xfe,0xe3,0x3a,0x75,0x70,0x52,0xa9,0x31,0x97,0x79,0x3a,0xc2,0x53,0x6a,0x73,0xe2,0x76,0xf8,0x85,0xe6,0x0d,0x85,0x9b,0xfc,0x72,0x08,0x2a,0xa5,0x8e,0x42,0xb2,0x7c,0x8d,0x8b,0x28,0x4b,0xf5,0xcb,0x66
+.byte 0x80,0x46,0xb3,0x87,0xdf,0x38,0xa7,0x08,0xc8,0xea,0x85,0x0e,0x6f,0x13,0xe0,0x57,0x99,0xc6,0xb8,0xed,0x9c,0xb0,0xa9,0x89,0xd7,0xc5,0xa9,0x71,0xfd,0x8a,0x21,0xb1,0xec,0xc8,0x65,0x78,0x72,0xc6,0x77,0x69,0xd4,0x0b,0x47,0x4d,0x79,0x93,0xcf,0x2a,0x34,0xf1,0x1b,0x0e,0x6f,0x0d,0xd1,0xbb,0xe7,0xd7,0xb5,0x6f,0x57,0x01,0xd4,0xcd
+.byte 0x56,0xbe,0xf0,0xd9,0xe2,0x8e,0x0e,0xb8,0x3d,0xdb,0xf6,0x97,0x39,0x0b,0x3e,0xe2,0xb2,0xa3,0x93,0x0b,0x74,0xe5,0x6a,0x21,0x04,0x29,0x5a,0x3e,0x07,0x9c,0x11,0x4e,0xfe,0x01,0x6e,0x96,0x1e,0x8f,0xe0,0xfe,0x24,0x24,0x7e,0x04,0x2f,0x65,0xf4,0xe2,0x1f,0x36,0x56,0x43,0x3a,0x6c,0xeb,0xd7,0x20,0x13,0x71,0x45,0x6a,0xe8,0xc6,0xfa
+.byte 0xba,0x26,0x6f,0x7d,0x9a,0x62,0x76,0x34,0x7d,0xed,0x47,0x71,0xd1,0x0e,0x5b,0x04,0x39,0xd6,0xc0,0xe5,0xa5,0xd8,0xf5,0x73,0xf9,0xf4,0xc2,0x2a,0x54,0x25,0x67,0xdf,0x83,0xa3,0xcd,0xfd,0x1e,0x46,0x87,0x06,0x17,0x6d,0x78,0x8e,0x0c,0x7b,0x08,0x06,0x1b,0xd9,0x5d,0x3d,0x03,0x40,0xbc,0xe7,0x02,0xc4,0xe0,0xe0,0x49,0xb2,0x6c,0x6f
+.byte 0x97,0x76,0x0f,0xc7,0x14,0xd8,0x7c,0xc0,0xad,0x8a,0xbb,0xbc,0x2a,0x7e,0x68,0x46,0xcd,0xa7,0x26,0x16,0x77,0x1b,0x89,0x38,0xd8,0x2a,0x69,0x43,0xc4,0xaa,0x0d,0xf6,0xd1,0x65,0xda,0x41,0x75,0x77,0xcd,0xf7,0xd2,0x38,0x9c,0xdb,0x81,0x17,0x27,0x2f,0xba,0x2e,0xa5,0xb5,0xbe,0x05,0xe8,0xdd,0x5f,0xa9,0xad,0xbe,0xb2,0x0e,0x0b,0x69
+.byte 0xb6,0x8d,0xd2,0xf2,0xde,0x76,0x32,0x26,0xd9,0x06,0x1d,0x42,0x26,0x8c,0xf7,0xca,0x4c,0xe1,0x59,0x82,0x6c,0xea,0x96,0x70,0x39,0xb8,0x0d,0xf3,0x67,0x9d,0x5e,0x94,0x99,0x77,0xf2,0x0a,0x9a,0xde,0xa5,0xd2,0xe1,0xaa,0x91,0x85,0xc7,0x0f,0x92,0x35,0x04,0xd3,0x7a,0x13,0xfa,0xf2,0x86,0x5a,0x38,0xd1,0x7f,0x10,0xd8,0x30,0x0e,0x33
+.byte 0xe3,0xa0,0x8a,0xad,0x4f,0x6c,0x24,0xdd,0x9d,0x1c,0x4e,0xff,0x4c,0xfc,0x74,0x01,0xab,0x08,0x6c,0xe6,0x4c,0x78,0x75,0xc9,0x67,0x83,0x1f,0x75,0x22,0xb0,0x7c,0x44,0xa0,0xa1,0xee,0x4e,0xf6,0x3e,0xd3,0x35,0x70,0xbe,0x36,0x1e,0x90,0xa6,0xaa,0x64,0x67,0x7f,0x52,0x84,0xd9,0x27,0xab,0x37,0x30,0x68,0x46,0xcc,0x0e,0x57,0x58,0x6f
+.byte 0xdb,0xb2,0x5f,0x24,0xf7,0xeb,0x97,0xea,0x64,0xec,0x6c,0x1e,0xe1,0xc4,0x72,0xfb,0x00,0xa7,0x62,0xa0,0x59,0xb9,0x17,0x8a,0x33,0x32,0x59,0xb8,0xbe,0x84,0xd4,0x62,0xb7,0xf6,0x35,0xd4,0xf1,0x1c,0xdb,0x7e,0xa6,0xbc,0x2c,0x54,0x3c,0xf5,0x63,0x4a,0x22,0x26,0x58,0xa0,0x35,0x98,0xa7,0x32,0xb2,0xa0,0x2b,0xd5,0xfa,0x2f,0x9b,0xb4
+.byte 0xea,0xd6,0x58,0x61,0xb2,0x24,0x45,0x46,0x1e,0xac,0x79,0xa4,0xf7,0xc1,0x13,0x2f,0xf5,0x6b,0xfa,0x70,0x50,0x2b,0x83,0xee,0x7c,0xc1,0x55,0x27,0x7b,0x4f,0xa6,0x0a,0x72,0x26,0x82,0xcd,0x4d,0xe2,0xe8,0x45,0xe6,0xd7,0x39,0x7e,0xed,0x35,0xdf,0x9e,0xb1,0x41,0x55,0xa2,0x5d,0x68,0x4b,0x0b,0xd1,0x73,0x5a,0x2b,0x81,0x35,0x28,0xfc
+.byte 0x64,0x08,0xd7,0xc4,0x9f,0x30,0x77,0x3d,0x9d,0x80,0x15,0x67,0x9a,0x84,0xe4,0x34,0xea,0x8c,0xf7,0x73,0x9e,0x33,0xb4,0x09,0x33,0xbd,0xd8,0x82,0x43,0x7d,0xc5,0x1f,0x0e,0x7b,0xa0,0x53,0x59,0x20,0x12,0x57,0xed,0xda,0xc7,0x19,0x8e,0x62,0xe4,0x09,0xc1,0x4b,0x20,0x32,0x9e,0x18,0x11,0x1c,0x42,0x49,0x62,0x76,0xa8,0x83,0x72,0x11
+.byte 0x45,0xe7,0xb5,0x60,0xa7,0xc0,0x07,0xbd,0xb4,0x7c,0xc6,0x5c,0x03,0x34,0xa3,0x85,0x47,0x24,0x75,0xd2,0xab,0x46,0xbb,0xc7,0x0d,0xcd,0x40,0xe2,0x5e,0x5b,0xa7,0x98,0x67,0xe4,0xe2,0x02,0xe9,0xdc,0xd7,0xc2,0xaf,0x90,0x43,0x94,0xfe,0xf3,0x53,0xc1,0x10,0x28,0xa7,0x90,0xba,0x73,0x57,0x0c,0x4d,0x6d,0xbd,0xda,0x81,0xd5,0x90,0xce
+.byte 0x02,0x40,0xb3,0xf0,0xec,0x50,0x82,0xc9,0xfb,0xf1,0x22,0x6d,0xc8,0xd2,0x7b,0xed,0x0b,0x43,0x7e,0x0b,0x60,0x9b,0x69,0x9e,0x58,0x26,0xc3,0x9f,0x6b,0xd0,0x31,0xeb,0xb7,0x0a,0xf3,0x9a,0x9a,0xf5,0x72,0xcf,0x29,0xc8,0x19,0x08,0x4d,0x67,0xd5,0xa1,0x8f,0x68,0x0e,0xee,0x59,0x14,0xf8,0x86,0xc0,0x08,0x5a,0x56,0xfe,0x6a,0xb7,0xac
+.byte 0x78,0x8d,0x77,0x39,0x5e,0xb1,0x01,0x4d,0x31,0x81,0x56,0xdc,0x5b,0x10,0xda,0x4d,0xd2,0xfd,0xfc,0xa3,0xe3,0xaa,0x46,0x29,0x1a,0xea,0x9c,0x47,0x1b,0xd0,0xa6,0x84,0x1f,0x71,0x1a,0xd3,0x35,0x59,0x7f,0xef,0xf7,0x81,0x39,0x7a,0x9f,0x4a,0x01,0x4d,0x46,0xcf,0xa4,0x6a,0x9c,0x7e,0x07,0x8b,0x98,0x17,0x49,0x5c,0x46,0xac,0xc8,0xfd
+.byte 0x1c,0xaf,0x91,0x30,0x0c,0x36,0x63,0xef,0x69,0xd3,0x47,0xf4,0x76,0xc1,0xf7,0x40,0x03,0x98,0x9e,0xcb,0x61,0x65,0x46,0x45,0x1c,0x1b,0xfd,0x13,0x36,0xe9,0x19,0xbf,0x2b,0x59,0x51,0xe8,0x04,0x44,0xe3,0xc2,0x4b,0x66,0x78,0x69,0x66,0xa3,0x1a,0xe5,0x2a,0xad,0xf8,0xc5,0x0f,0xb7,0x3e,0xe8,0xab,0xe0,0xe4,0xd9,0xc2,0xb8,0x61,0x5b
+.byte 0xef,0x6b,0x4d,0x5f,0xb8,0xdc,0x06,0xa5,0xce,0x08,0x5b,0x1f,0xf4,0x29,0x4d,0x0a,0x3e,0xb3,0x60,0xf4,0x63,0x3c,0x70,0x5d,0x02,0x9c,0x55,0x5e,0x5e,0xd1,0x9b,0xed,0x20,0x75,0x54,0xa1,0x8e,0xae,0xce,0x5a,0xb2,0x2d,0xe4,0xc3,0x9b,0x7d,0x72,0xce,0x7c,0x0c,0xa9,0x99,0xa4,0x12,0xaa,0x31,0xe9,0x61,0x47,0x8a,0x41,0x93,0xd5,0x69
+.byte 0xc5,0xf3,0x9f,0xf4,0x97,0x69,0x64,0x6f,0xf9,0x5b,0xbf,0x58,0xf6,0x3b,0x3e,0xd6,0x93,0x94,0x89,0xcc,0xc0,0x25,0x7d,0xf8,0x40,0x9e,0xb2,0xc8,0x75,0x9d,0x4d,0xf0,0x5f,0xa5,0x3d,0x38,0x67,0xea,0x8d,0x1b,0x60,0x5e,0xfe,0xa8,0x26,0xb9,0xed,0xc0,0xe9,0xc8,0xec,0xb1,0x77,0x0f,0xf2,0xaa,0x77,0x2a,0xcd,0xa8,0x70,0xb7,0xda,0x60
+.byte 0x49,0xb3,0x01,0x95,0xc8,0xac,0x71,0x6a,0xd0,0x49,0x67,0x2a,0x04,0xfc,0x55,0x38,0x08,0x37,0xd9,0x21,0x37,0xce,0x41,0xaf,0x7c,0x33,0xdd,0xcd,0xe0,0x92,0x27,0x38,0x63,0x77,0xea,0x86,0x04,0x99,0x4e,0x61,0x8b,0x8f,0xfe,0x4e,0xc1,0x16,0x6c,0x89,0xac,0x1f,0x0b,0x67,0x75,0x49,0xf4,0xdb,0x6d,0xd3,0xb8,0x1d,0x9c,0xb2,0xe6,0x98
+.byte 0x81,0xae,0x3f,0xe0,0xdd,0xda,0xfa,0x4c,0x8b,0x30,0x18,0x88,0xa1,0x1d,0xa1,0x18,0xb8,0x28,0xc2,0x04,0x6a,0x80,0x02,0x5a,0xe6,0x04,0x85,0xfa,0x54,0x38,0x45,0x64,0xe1,0x50,0x4a,0x38,0x4c,0x85,0xf7,0x00,0x0c,0xd3,0x16,0xcb,0xfa,0x38,0xb4,0x1b,0x6a,0x95,0x3d,0xc3,0x24,0x79,0x0e,0x3e,0x81,0xe6,0xc3,0xd9,0xdb,0x05,0x19,0x7c
+.byte 0xb4,0x4d,0xef,0x71,0x22,0x53,0x97,0x8a,0xc9,0xe3,0x69,0x20,0x5b,0x83,0xb1,0x44,0xd7,0xd1,0x1e,0x87,0xa7,0xbf,0xe4,0x84,0x68,0x9c,0x77,0xfe,0x83,0xdb,0x7a,0x53,0xa8,0x53,0x1f,0xc7,0xd1,0x6a,0x26,0x87,0x71,0x06,0x23,0xa7,0xe0,0x18,0x5d,0xfa,0x8c,0xa7,0x24,0xee,0xf6,0x74,0xab,0x17,0xd3,0x46,0x33,0xe9,0xc3,0xcd,0xa6,0xaf
+.byte 0xcf,0xa1,0x60,0x75,0x7b,0x77,0xc3,0x58,0xa2,0xe8,0x87,0x7b,0x4b,0x57,0xb1,0x96,0xc1,0x91,0x6d,0xbf,0x71,0xb3,0xbf,0xe2,0x62,0x86,0x72,0xa9,0x01,0x64,0x62,0x32,0x33,0xc8,0xa4,0x26,0x7d,0xfa,0x0d,0xd4,0xd8,0xc3,0xaa,0xc0,0xc8,0x7c,0x51,0xe8,0x10,0x08,0x6f,0xf6,0xc1,0x46,0x89,0xc4,0xd2,0x00,0x1d,0x14,0x05,0x89,0x64,0x52
+.byte 0xcd,0x1f,0x97,0x0b,0x1d,0x94,0xbe,0x9d,0xa0,0x6b,0x03,0x9b,0x83,0x87,0x38,0x0f,0x65,0xdd,0x6a,0xaf,0xf1,0x22,0x74,0x7e,0x11,0xa0,0xdf,0x1e,0x95,0xef,0x1a,0xdc,0x8b,0x29,0x4a,0xbe,0xfd,0x2f,0xc7,0x48,0x94,0x3f,0xb9,0x8c,0x8e,0xe1,0x0c,0x54,0xa6,0x2f,0xa5,0x2b,0x71,0xdd,0x16,0x68,0x91,0x35,0xd0,0x22,0x48,0x1f,0xf2,0xe2
+.byte 0xe8,0x57,0x83,0xd7,0x49,0x43,0xfd,0xf9,0x77,0xb5,0xfa,0x70,0x19,0xeb,0xae,0xf6,0x31,0xfe,0xd6,0x81,0x6c,0xcc,0x14,0x28,0xa6,0x9f,0x74,0x56,0xc5,0xf6,0x51,0xba,0xc8,0xbd,0x32,0x80,0x5f,0xdb,0x28,0x3f,0x4a,0x55,0x01,0xe1,0x39,0xf5,0x9c,0xda,0xb3,0x42,0xee,0x43,0x17,0xc3,0xc7,0xf5,0xd1,0xda,0xd2,0x2e,0x56,0xcf,0x77,0x0e
+.byte 0xdd,0x72,0xcf,0xe5,0xab,0xfb,0xd6,0xa2,0x6c,0x03,0xa6,0x77,0x25,0xf8,0x2a,0x8c,0xfa,0x6f,0x45,0x79,0x59,0x84,0x92,0xd1,0x00,0x58,0xc7,0xb8,0x95,0x4d,0xc8,0x49,0xad,0xe0,0x1e,0x64,0x47,0x00,0xfb,0x93,0x7f,0x3e,0xf1,0x65,0x70,0x47,0x64,0xbb,0x36,0x63,0xe3,0x09,0xcb,0xdb,0x5a,0xd1,0x72,0x83,0xfd,0x15,0x91,0xa2,0x03,0x81
+.byte 0x04,0x98,0x45,0x0f,0x7f,0x23,0x48,0x6c,0xb1,0x2d,0xd0,0x2c,0x61,0x52,0x1b,0x4a,0x52,0x08,0x92,0xe1,0x7a,0xf1,0x8c,0x1f,0x1f,0xdf,0x1c,0xfd,0xd9,0x46,0x99,0x71,0x05,0x58,0x71,0x82,0x5c,0x05,0xa0,0xb2,0x6a,0x50,0xd2,0x6e,0x35,0xf4,0x6c,0xfb,0x50,0x99,0xb3,0xc1,0x2b,0x05,0xaf,0x02,0xe5,0x18,0xfa,0x74,0x09,0xcc,0xa5,0x2c
+.byte 0x26,0xfd,0xc5,0xe7,0x2c,0x96,0x0f,0xa4,0x7c,0x88,0xc6,0x7f,0xf9,0x74,0x9d,0x1c,0xe5,0xd2,0x27,0xf0,0xae,0x5b,0x4c,0xbf,0x0a,0x99,0x2e,0xaa,0x54,0xba,0x0d,0x75,0xd9,0x48,0x76,0xf3,0xe9,0xd9,0x01,0xbe,0xaa,0x97,0x09,0xfe,0xb2,0x4a,0xcb,0x55,0xd0,0xe1,0x58,0xec,0x31,0x0c,0xd9,0xdf,0xd9,0x01,0xf9,0x3c,0x28,0x40,0x91,0xbb
+.byte 0x4d,0x2d,0x88,0x60,0x31,0xc7,0xc9,0x1d,0xaf,0x22,0x44,0x21,0x05,0x06,0xdd,0x07,0x60,0x29,0x7d,0x49,0x30,0x9d,0x35,0x1d,0x9f,0x37,0xbd,0x32,0xb2,0x21,0xa6,0x4f,0x89,0xd8,0xe6,0x85,0x44,0xcf,0x13,0x12,0x4f,0x5f,0x50,0x71,0x01,0x39,0xff,0x6e,0xa0,0x07,0xff,0xf0,0xa6,0x3b,0x39,0x59,0x17,0xae,0x93,0xb2,0x86,0xcc,0xe5,0x59
+.byte 0x5a,0xf2,0x82,0x62,0xc6,0x8d,0x13,0x2f,0x6b,0x92,0x28,0xbe,0xd1,0xc0,0xf6,0xc9,0xe1,0xd6,0x98,0x94,0x65,0xd4,0x2a,0xdb,0x37,0xb1,0xd3,0x83,0xf2,0xaa,0xa5,0x00,0xf9,0x08,0xe6,0x22,0x38,0x30,0xb6,0x49,0x8d,0x9d,0x1c,0xa4,0xf7,0xdb,0x3c,0x6f,0x75,0x08,0xa0,0xda,0xe9,0xc0,0x01,0x54,0x09,0x68,0xc6,0x7c,0x5b,0x4d,0x88,0x71
+.byte 0xa7,0x2f,0xb3,0x50,0x18,0x4a,0xfb,0x55,0x29,0xf2,0x56,0x1d,0x4c,0x12,0x22,0x1c,0x54,0xd2,0x63,0x67,0xfa,0xe9,0x5b,0x74,0x3b,0x38,0xf6,0xa0,0x85,0x63,0x1c,0x41,0x6a,0x6d,0x71,0x1d,0xb1,0x39,0x28,0x88,0x96,0x9b,0x9c,0x50,0x9e,0x57,0x4e,0xf5,0xa7,0xf4,0x17,0xc6,0xca,0x42,0x84,0x83,0xca,0xa4,0x28,0x72,0x08,0x74,0x62,0xe1
+.byte 0xf0,0x73,0xc5,0x86,0x6c,0x76,0x9d,0xd3,0xa6,0xb8,0x5d,0x73,0x1b,0x02,0xe2,0x69,0x8b,0x59,0xd6,0x6a,0x53,0xe9,0x13,0x88,0x41,0x95,0xe9,0x97,0x5f,0x07,0x62,0xa5,0x21,0x97,0x7e,0x5e,0xc2,0x2c,0xc7,0xaf,0x0a,0xdb,0x9e,0x4f,0x44,0x4b,0xd6,0x3d,0xc0,0x24,0x38,0x50,0x47,0x98,0xa3,0xfc,0xda,0xfc,0xae,0x0e,0x2b,0x9b,0x53,0x0f
+.byte 0x6b,0xb1,0x2f,0xd5,0xd7,0x68,0xc9,0xab,0xb9,0xff,0x7f,0x54,0xd6,0x2f,0x88,0xbc,0x5e,0x6a,0x22,0x49,0x0f,0x98,0xbe,0x1f,0xef,0x3e,0xcc,0xa2,0x72,0x6b,0x16,0xbe,0xe8,0x5f,0x0e,0x36,0xa2,0x68,0xe0,0x65,0xd9,0x7c,0xdc,0x8c,0x6a,0x66,0xf0,0x6a,0xfc,0x2b,0x85,0x28,0x2a,0x1a,0xfc,0x92,0x64,0x3d,0x38,0x5b,0xc1,0x0c,0x68,0x45
+.byte 0x94,0x85,0x58,0x82,0x99,0xfc,0x20,0xdd,0x62,0xae,0xed,0x35,0x7c,0x02,0x16,0x9b,0x00,0x8a,0x44,0x02,0x80,0x00,0xca,0x7d,0x95,0x03,0x5d,0xa6,0xec,0xe1,0x0c,0x50,0x34,0x61,0x55,0xee,0xb5,0x11,0xff,0xc3,0xaa,0xf2,0xbc,0xa3,0xa9,0xc7,0x6b,0x16,0xab,0x56,0x7b,0x55,0x54,0x95,0x88,0x15,0x15,0x6a,0x2c,0x97,0xd7,0x7c,0x26,0x65
+.byte 0xaf,0x8d,0xd1,0x05,0x57,0xb2,0x63,0xd1,0x22,0xf7,0x7d,0x77,0x54,0x6c,0x87,0x03,0x1f,0x0e,0x2b,0xae,0xa6,0xa4,0xb5,0xd6,0x95,0x34,0xd0,0x62,0x4e,0xfb,0xcb,0xee,0x01,0xc1,0xf7,0x36,0x94,0xa6,0x54,0x94,0x90,0x0e,0x45,0x9c,0x95,0x89,0x96,0x88,0x32,0x90,0x27,0x48,0xc5,0x96,0xf0,0x7e,0x7f,0x69,0x99,0xdf,0x7b,0xfb,0x2b,0x7b
+.byte 0x38,0x10,0x6b,0xd1,0x1a,0xfb,0xf2,0xcd,0x2d,0x8b,0x47,0x21,0xca,0x92,0x64,0x28,0xd1,0x53,0x1d,0xed,0xa7,0x7d,0xa4,0x88,0xab,0xd0,0xfe,0x9b,0x2b,0xf8,0x48,0x94,0x8d,0xd5,0xfa,0x5c,0xef,0x12,0x43,0xdf,0xb6,0x5b,0x83,0x43,0xf3,0xf7,0x1d,0x6f,0x3e,0x44,0xe6,0x20,0xd8,0xbc,0x4a,0x9a,0xed,0xa0,0x79,0x66,0x8d,0x23,0xca,0x35
+.byte 0x15,0x87,0x11,0x50,0xa4,0x40,0x6e,0xfa,0xf7,0xaf,0xa2,0xb7,0x3b,0x9b,0x8b,0x44,0x19,0x90,0xb3,0x47,0x92,0x08,0x2f,0x0c,0xe2,0x95,0x5d,0x80,0xb5,0x93,0x5e,0x1c,0xb5,0xce,0x52,0x0b,0x12,0xc1,0x72,0x2e,0x66,0x8c,0xd1,0x13,0x94,0x36,0xf7,0x17,0xe3,0xad,0x69,0xc9,0x2d,0x21,0x64,0xcd,0x8f,0x2d,0x8f,0x0c,0x85,0xa5,0x23,0x8b
+.byte 0x6c,0x00,0x13,0xf7,0x6a,0xb4,0x68,0x1a,0xcc,0xc4,0x03,0x5b,0xd6,0x7b,0x5b,0x34,0x90,0x34,0x3e,0x0a,0x07,0x19,0x81,0x99,0xe9,0xd2,0xa8,0x73,0x2c,0xa2,0xcf,0xdf,0x29,0x69,0xbf,0xec,0xdd,0xa5,0xd3,0x16,0xb0,0xd2,0x9c,0x2f,0xeb,0x70,0x50,0x20,0x3c,0x22,0x1a,0x5b,0x55,0x79,0x76,0x0f,0x1f,0xd0,0x34,0xa9,0x55,0xad,0x75,0x75
+.byte 0x7f,0xa7,0x9b,0xa7,0x3d,0x5d,0x73,0xce,0x91,0xf6,0x9b,0xcd,0xa5,0xee,0x48,0x44,0xba,0xd5,0xad,0xbe,0x1e,0xc6,0xd2,0x8b,0x05,0x21,0x20,0xb5,0x7d,0x78,0x88,0x10,0x20,0x85,0x90,0x8f,0x47,0x74,0x68,0xe6,0x32,0x2a,0x13,0x7a,0xb3,0x5d,0xfe,0x24,0x97,0xd1,0x65,0x55,0x60,0xb3,0x88,0xfb,0x59,0xc9,0x29,0x70,0xf1,0x45,0xbd,0xbe
+.byte 0x4d,0x01,0x4e,0x5e,0x5f,0x99,0x52,0xf8,0x5f,0x38,0xcf,0xa8,0x5d,0x69,0x54,0x87,0x72,0x41,0xca,0xc4,0x63,0xc1,0x52,0x58,0x66,0x8b,0xda,0x8b,0x61,0xd1,0xab,0x7d,0x8d,0xfe,0x51,0x8d,0xf6,0xd0,0x21,0x4d,0x0b,0xc5,0xea,0x74,0xcd,0x21,0x93,0x4a,0x91,0xe5,0x3f,0xce,0x35,0x3b,0x3f,0xc0,0xab,0xa4,0x23,0x76,0xd1,0x8c,0xa7,0xbe
+.byte 0x15,0xab,0x8e,0xd7,0x0d,0x86,0xac,0xc3,0x06,0xff,0x33,0xf2,0x41,0x6f,0x69,0x58,0x49,0xd1,0x73,0xcf,0x5e,0x4e,0x1e,0x46,0x12,0xfa,0x30,0x0d,0x4b,0xb1,0xfb,0xc6,0xe6,0x0d,0xcd,0x8d,0xca,0x34,0x28,0x5a,0xed,0x85,0x55,0x31,0xee,0xba,0xbf,0xa4,0x6f,0x9c,0x7d,0xeb,0x4b,0x1b,0x73,0xea,0x4e,0xb9,0x62,0x5d,0xac,0xe3,0x53,0xdf
+.byte 0x27,0x87,0x2f,0x39,0xca,0x5b,0xd6,0x72,0xcf,0x95,0xc6,0x2a,0xa5,0x3f,0x57,0xfd,0xdc,0xa9,0x4a,0x86,0x0f,0xcd,0xd5,0xea,0xfe,0x85,0xeb,0x9b,0x84,0xc6,0xf7,0xba,0xc2,0x37,0xbc,0x18,0x85,0x49,0xa6,0x7f,0xd9,0x3e,0xfb,0xf0,0x0c,0x39,0xe3,0x1c,0x06,0xfe,0xb6,0x49,0xa3,0x8b,0x72,0x2b,0x39,0xa1,0x48,0xfd,0x1f,0xfe,0xa4,0xf7
+.byte 0xcc,0x7a,0xef,0x64,0xa0,0x0d,0xeb,0x78,0x71,0x8c,0xd6,0x59,0x7c,0xf4,0xaa,0x81,0x7a,0x89,0xe6,0x22,0xc9,0x57,0xe8,0x13,0x9c,0xca,0xc4,0x6f,0xb5,0xbf,0x08,0x31,0x93,0x56,0x2a,0x82,0x00,0x95,0xdc,0x4b,0xfd,0x9b,0xc7,0x8b,0x31,0x72,0xa0,0xff,0xbe,0xb4,0xd6,0x07,0x16,0x0a,0x4a,0x0a,0x96,0x02,0x83,0x53,0x2a,0x4d,0x33,0x72
+.byte 0x1f,0x20,0x20,0xc3,0x63,0xee,0x4e,0x05,0x90,0x7d,0x21,0xd0,0xf1,0xda,0xde,0x0d,0x4a,0x59,0xb9,0xca,0x81,0xe3,0x1f,0x83,0x19,0xdc,0x09,0x03,0x5f,0xaa,0xee,0xbc,0x5a,0xfa,0xc6,0x4d,0x3d,0xfe,0xfe,0xf3,0xdb,0xc3,0x77,0x31,0x74,0xb4,0x94,0xb5,0x09,0xb1,0xb5,0x13,0x47,0x2e,0x4f,0x3b,0x38,0x83,0xf5,0xfc,0xe9,0xcc,0x45,0xea
+.byte 0x5b,0x88,0x21,0xba,0x53,0xc5,0xf6,0xd4,0x63,0xc5,0x37,0x1d,0xa1,0x42,0x2e,0x9c,0x9a,0x50,0x2c,0xfe,0xdb,0xf6,0x31,0x36,0x5f,0x9d,0xed,0x63,0x42,0x20,0xdd,0x27,0xe5,0x34,0x3c,0x0f,0x06,0x8b,0x8f,0x32,0xb6,0x47,0xce,0x07,0xcb,0x27,0xc1,0xb7,0xfe,0xb2,0x69,0x81,0x79,0x20,0xd7,0x47,0xbb,0xab,0x61,0x5f,0x09,0x99,0xdf,0x9f
+.byte 0xde,0x59,0x33,0x75,0xd1,0xcc,0xfe,0x92,0x79,0x1f,0x2d,0x59,0x88,0xef,0x4b,0x80,0x0c,0x38,0xa3,0xb1,0xef,0xae,0x53,0x84,0x2f,0xbd,0xd3,0x0c,0xcf,0xd5,0xf7,0xb7,0x6f,0xa7,0x22,0x1f,0xf1,0x56,0x76,0x0c,0x78,0x52,0xa3,0xc0,0xd0,0x2f,0xbc,0xdf,0x29,0x0d,0xa8,0x54,0x0d,0x2b,0x65,0x1b,0x7f,0xeb,0x21,0x22,0xaf,0x10,0xc1,0xd6
+.byte 0x30,0xa8,0x2f,0xb1,0x25,0xbf,0xdc,0xee,0xe9,0x35,0x40,0x69,0xa0,0xa0,0x27,0x85,0x2e,0x18,0xc1,0x36,0x24,0xc5,0x96,0x9a,0x85,0x3f,0xbb,0xfd,0xf5,0x02,0xa2,0xa1,0x92,0x3c,0x16,0x48,0x9f,0xc5,0x00,0x7c,0x7b,0xaf,0x31,0xba,0x68,0x0e,0x58,0x88,0xf4,0x10,0xb9,0xa6,0xe0,0x46,0x2a,0xb8,0x8d,0xc7,0x8e,0xad,0x7c,0xec,0xd2,0x74
+.byte 0x92,0xfe,0x1b,0xd0,0x73,0x79,0x0b,0x4e,0xcc,0x2d,0x5c,0xe7,0x80,0x2d,0x21,0x1c,0x97,0xfc,0x2a,0xc9,0x9c,0x07,0x10,0x64,0x8b,0xf7,0xf5,0x1c,0x54,0xb6,0x6c,0x73,0x1c,0x50,0xd3,0x1a,0x2a,0x63,0xcb,0xba,0xd3,0x95,0xe2,0xa6,0xc3,0xca,0x45,0xfd,0x5e,0x1b,0xbb,0x6b,0x4d,0xb3,0xf7,0xfd,0xaa,0xf9,0x73,0xb8,0x74,0x4d,0x36,0x7e
+.byte 0xcc,0xaa,0x1e,0xf3,0x20,0x68,0xa5,0x0c,0x03,0xe3,0xbe,0xee,0x82,0x03,0x8d,0x10,0xa6,0xf6,0x6c,0x73,0xc2,0x9d,0x74,0xba,0x57,0x17,0xd7,0xfa,0x85,0xf5,0x1e,0x3d,0xf8,0xc7,0x80,0xef,0xcd,0xf0,0xf4,0x46,0xfc,0x07,0xb5,0xc4,0x5f,0xd2,0x04,0x6a,0x90,0xf5,0x76,0xb6,0xf9,0x73,0x22,0xa6,0x09,0x2f,0xbf,0xb5,0x93,0x9a,0x95,0x05
+.byte 0x95,0xaa,0xf9,0x8c,0x71,0xd6,0xc6,0xd9,0x72,0x50,0xf6,0x58,0x77,0x09,0x47,0x97,0x21,0x42,0xf0,0x30,0x5c,0x3c,0xec,0x60,0x67,0xdf,0x5e,0xd2,0xed,0x0f,0xab,0x25,0x11,0xbb,0xf8,0x34,0x1e,0xbd,0x7f,0xc6,0x52,0x19,0xf5,0x53,0x28,0x46,0x75,0x93,0xce,0xc2,0x0b,0xdf,0xfd,0xa5,0xf1,0xb0,0xa2,0x0b,0x97,0xb5,0x76,0xb4,0x8a,0x2b
+.byte 0x82,0x55,0x23,0x29,0xc2,0xd3,0x32,0x94,0x2f,0xf0,0xe6,0x77,0x2c,0xe4,0x6a,0x7f,0xd7,0xee,0x84,0xfb,0xba,0xb8,0x4b,0xae,0x13,0x34,0xbd,0xa8,0x12,0x7a,0x3c,0x28,0x40,0x74,0x5d,0x9a,0x11,0x1a,0xe9,0x74,0x31,0x28,0x3d,0x3d,0x64,0xb7,0x54,0xa0,0x51,0x0d,0xed,0x97,0x94,0x56,0x7a,0x48,0x8e,0x36,0xc9,0xae,0x5f,0xc6,0x79,0x45
+.byte 0x4f,0x07,0xdd,0x13,0x52,0x8b,0xfc,0x3b,0x73,0x44,0x68,0x64,0x51,0x0d,0x95,0x6f,0x0f,0x94,0xba,0xf8,0x40,0x64,0x51,0x43,0x49,0x63,0xc1,0xbd,0xf3,0x39,0x7f,0x6e,0x6f,0x45,0xeb,0xd2,0x33,0x44,0x2d,0x10,0xb4,0x68,0xcb,0xcb,0x8c,0x84,0xc5,0xd4,0x63,0x1d,0x23,0x85,0x30,0x4d,0x6c,0xfc,0xc9,0xa4,0x8c,0xd2,0x42,0x69,0x2f,0x17
+.byte 0x86,0xf0,0x17,0xd0,0xb2,0xaa,0xfd,0x62,0xcb,0xb4,0xfd,0xba,0x29,0xf8,0x85,0x45,0x84,0x9d,0xae,0xf8,0x9c,0x8f,0x64,0xd5,0xb8,0xb6,0xa9,0x64,0xf9,0x39,0x86,0x68,0x29,0xac,0x32,0x87,0x84,0x6c,0xb0,0x09,0xd2,0xdd,0xf2,0xec,0xa1,0x3a,0xfd,0x11,0x37,0x54,0x67,0x29,0x62,0x25,0x62,0xe8,0x6a,0x4b,0x5e,0xde,0x9a,0xf0,0x97,0x73
+.byte 0x66,0x69,0x2a,0x21,0xbe,0x95,0x86,0xca,0xf9,0x17,0xe9,0x4b,0x23,0x83,0x1e,0x8c,0x37,0x47,0x91,0x03,0x3f,0x9f,0xb8,0x60,0x2c,0xdd,0x82,0xbd,0x2a,0xc3,0xe7,0x30,0x8f,0x91,0x2b,0xa4,0x23,0x01,0x03,0xb2,0x8b,0xbd,0xd2,0x1d,0x16,0xf7,0x6a,0x86,0xa8,0xe4,0x54,0x6f,0x9c,0x47,0xa5,0x0f,0xbe,0x94,0x56,0xfa,0x18,0x69,0xbe,0x92
+.byte 0xe9,0xf8,0x24,0x4d,0x65,0x42,0x81,0x1f,0x85,0x52,0xb7,0xc9,0x49,0xde,0xa5,0x4c,0x8f,0x0d,0x5f,0x12,0x68,0x68,0x35,0xce,0x29,0x22,0x5c,0x55,0x3e,0xbd,0xce,0xf2,0x2a,0xec,0x7e,0xe1,0x29,0x0a,0x88,0xf3,0x5e,0xeb,0x27,0xe5,0x52,0xee,0x72,0x37,0xba,0xff,0x82,0x97,0xa9,0x5d,0x77,0x6f,0xb9,0xc3,0xa7,0x73,0xba,0x7f,0x2f,0x7a
+.byte 0x19,0x32,0x87,0x56,0xa2,0x89,0xb2,0xb4,0x48,0xbe,0x2e,0x30,0x89,0x0a,0x8f,0x75,0x25,0x25,0x5c,0x46,0xe8,0x02,0x45,0xcb,0x03,0xd1,0xa3,0xeb,0x70,0x71,0x08,0x1c,0x46,0xf1,0x2c,0x43,0xe2,0x44,0x30,0x6a,0x61,0x31,0x45,0x3e,0xbb,0x47,0x33,0x24,0x25,0x13,0xeb,0xf7,0x24,0x66,0x15,0x4c,0xf3,0x07,0x2f,0xff,0xdc,0x37,0x0f,0x71
+.byte 0x85,0xc8,0x56,0xa7,0x2a,0x22,0x87,0x8b,0xae,0x35,0x31,0x29,0x96,0xf0,0x81,0xfb,0x2c,0xbf,0x44,0x69,0x69,0x9a,0x77,0xfd,0xc0,0x2b,0x42,0x16,0x67,0xd6,0xbd,0xd0,0xf1,0xb9,0x40,0x8f,0xd2,0x9a,0x1b,0x2c,0x64,0x78,0x6b,0xda,0x37,0x26,0xae,0x4c,0xee,0x36,0xaf,0x84,0x61,0xe4,0x93,0x22,0x64,0xaf,0xee,0x6d,0x69,0x5c,0xe5,0x85
+.byte 0xd8,0xcc,0xcf,0xf3,0xe8,0x05,0xcd,0xd2,0x09,0x66,0xaf,0xbb,0xc4,0x79,0xb2,0xa7,0xa5,0x09,0xd9,0xf5,0xa2,0x83,0x4f,0xd5,0xf5,0xf3,0x7d,0x7a,0xab,0x94,0x83,0xb3,0x15,0xfb,0x0d,0x1a,0x1d,0x77,0xc5,0x63,0x0b,0x54,0xde,0xa8,0x0d,0xc4,0x16,0xe3,0x89,0xeb,0xa3,0x1b,0xd4,0x77,0x13,0xe3,0x55,0x98,0x15,0xab,0x3b,0x32,0xc8,0xd4
+.byte 0x0c,0x91,0x80,0x57,0xf7,0x1e,0x24,0xd0,0x56,0x78,0x29,0xd2,0x03,0xe7,0xc4,0xd2,0x09,0xca,0xee,0x9b,0x60,0x5f,0xa1,0xfd,0xaa,0x85,0x4b,0x68,0x35,0xa4,0x3b,0xef,0x29,0xb8,0x49,0x85,0xee,0xbb,0x39,0xc0,0xc6,0x99,0x97,0xc6,0x86,0x6c,0x27,0xf9,0x1a,0x19,0x6e,0x7c,0xae,0x75,0x41,0x0d,0x08,0x1e,0xf0,0xb4,0xc3,0x9e,0xdb,0x40
+.byte 0x86,0x94,0x9d,0x90,0x09,0x3f,0xdc,0xb9,0xfc,0x59,0x41,0xc5,0x5b,0x89,0x97,0x49,0x4a,0x1a,0x06,0x68,0x83,0xd8,0x7e,0x09,0x51,0xe1,0x86,0xd8,0x88,0xbe,0x8a,0x36,0x48,0xb3,0x83,0x7b,0x57,0xdd,0x8f,0x18,0x67,0x4a,0x7d,0x68,0xab,0xb9,0x05,0xf0,0xe4,0x27,0x4e,0x33,0x44,0xa7,0x13,0x04,0x94,0xc5,0x57,0xaf,0x36,0x03,0xe8,0x09
+.byte 0x36,0x5b,0xe8,0x92,0xad,0x0a,0x79,0x02,0x24,0x43,0x62,0xc7,0xa5,0xce,0x7c,0xac,0x6d,0x0a,0xf2,0x83,0x33,0x05,0x3b,0x6f,0x9d,0xda,0x96,0x9f,0x8b,0x79,0x3e,0x6c,0xd6,0xba,0x7f,0xea,0x84,0xd8,0x23,0xb6,0x92,0xc3,0x9c,0x7f,0x0d,0xcb,0x7b,0x9f,0xbd,0xc2,0xf5,0x6f,0x71,0x67,0x5f,0x0b,0xd1,0x73,0xb5,0x8c,0x46,0x07,0xcd,0xd8
+.byte 0xee,0x28,0xcf,0x8f,0x8e,0x5c,0xde,0x14,0x78,0xc7,0x60,0xd5,0xf4,0x49,0x97,0x46,0x5f,0x49,0x4a,0xb4,0x8f,0xc9,0xd1,0x52,0x34,0x01,0x29,0xa1,0x46,0x55,0xf8,0x29,0x53,0xbb,0x32,0x1e,0x4b,0x89,0x96,0x53,0x0b,0xf2,0x16,0xf9,0xa7,0x70,0x93,0x59,0x78,0xc0,0x77,0x78,0x9f,0x6c,0xb3,0x0e,0x3f,0x6f,0x40,0x09,0x1d,0xd6,0x66,0x4e
+.byte 0xe8,0xb0,0xa1,0x14,0x65,0xc8,0xc7,0x3f,0xd2,0xf0,0x1f,0xfd,0x51,0xe0,0x29,0xd6,0x39,0x26,0x60,0xfe,0x62,0xc2,0xe4,0x45,0x6d,0x01,0xdb,0xd3,0x7c,0xdf,0x48,0x10,0x2f,0xf2,0x8e,0x6c,0xc6,0x58,0xc3,0x7d,0x26,0xb1,0x9d,0x52,0x02,0x2a,0x5f,0x2b,0x57,0xca,0x84,0x9d,0x74,0x31,0x01,0x0f,0xda,0x3d,0x7c,0xbb,0xdc,0x71,0x82,0x8b
+.byte 0x42,0xaf,0x49,0x9e,0x2c,0xe8,0xdc,0xa1,0xfb,0x23,0x6d,0xdb,0xdc,0x36,0x01,0xc9,0xb3,0x93,0xd4,0x2e,0x8b,0xd1,0xe4,0xed,0x1b,0xd0,0x4c,0xeb,0xaf,0x96,0x57,0xde,0xee,0x90,0xf4,0xa7,0x58,0x46,0x8a,0xd4,0xa9,0x44,0xe0,0xb3,0x13,0x96,0xb2,0x8a,0xb0,0xd3,0xbe,0x71,0x38,0xb7,0x35,0xa9,0xa8,0x48,0x37,0xa3,0x11,0x0e,0x61,0x36
+.byte 0x6c,0xaf,0x6c,0xf2,0x3f,0xd6,0x55,0xb3,0xa5,0xe0,0xaf,0x18,0x6a,0xf5,0x78,0xb5,0x7c,0xc7,0x48,0x24,0x6c,0xea,0x1e,0x7f,0x52,0xb4,0xe8,0x72,0x46,0xd2,0xbd,0x1c,0x9e,0xe6,0x5b,0x3e,0x9c,0x6c,0x6c,0x6b,0x45,0x0c,0x3a,0xb7,0x67,0x3c,0x8e,0x77,0x77,0xbf,0x50,0xb6,0x30,0x6e,0xe1,0x28,0x0d,0x2a,0x85,0x44,0xf8,0xbb,0xf1,0x14
+.byte 0x89,0xaa,0xc2,0x27,0xf5,0x8e,0xa1,0xd3,0x07,0xba,0xe8,0x03,0xcf,0x27,0x1c,0xa6,0xc4,0x63,0x70,0x40,0xe7,0xca,0x1e,0x05,0xb7,0xb7,0xdc,0xc0,0x07,0x4c,0x0d,0x21,0x12,0x60,0x02,0xe3,0x86,0x65,0xe7,0x1c,0x42,0x86,0xdd,0xdb,0x7f,0x26,0x60,0x01,0x3d,0xd8,0x18,0xcd,0x7a,0x9f,0xf8,0xb2,0xf6,0x6d,0xd3,0xe0,0x57,0x1f,0x80,0x30
+.byte 0x2d,0x5e,0x71,0xdf,0x4d,0x7f,0xcd,0x63,0x77,0x19,0x5e,0x2d,0xd5,0xb5,0xfa,0xa9,0x26,0x02,0xb9,0x62,0x2b,0x57,0x80,0x0a,0xe9,0xbc,0xa4,0x3b,0xa7,0xf1,0xf3,0x77,0x2b,0x6b,0x41,0x5e,0xf7,0xe8,0x66,0x23,0x63,0xac,0xcd,0x58,0xfc,0xa9,0x97,0x6b,0x5a,0x1e,0xe5,0x7d,0xfd,0xb1,0x42,0x7f,0x99,0xdd,0x60,0xaf,0x39,0x46,0x36,0xdd
+.byte 0xc2,0x70,0x83,0x53,0xd1,0xc3,0x69,0xc8,0x90,0x0e,0x2b,0x34,0xb2,0x0c,0xb9,0x7a,0xb8,0x6b,0x7c,0xc2,0xf3,0xae,0x41,0x24,0xb8,0x94,0x5f,0xdd,0xce,0xda,0x95,0xda,0x49,0x81,0xb6,0xf8,0xa9,0x8e,0xb3,0x79,0xf8,0x55,0xf9,0xcf,0x8c,0x24,0x99,0xfc,0x6b,0x15,0x0f,0x39,0xac,0xd0,0x3e,0x89,0x9d,0xc2,0x46,0x8c,0x99,0x45,0xfd,0xce
+.byte 0x13,0x4c,0x9c,0xc8,0x80,0x87,0x8f,0x7b,0x28,0xe3,0x5e,0x2b,0xe3,0x89,0x7e,0x13,0x52,0x52,0xe9,0x3a,0xed,0x33,0xe7,0x28,0xc7,0x7a,0x48,0x8d,0x0e,0xee,0x24,0xc4,0x61,0x04,0x3c,0xd4,0x7e,0xf3,0x30,0x22,0x07,0x58,0xae,0x02,0xc5,0xd1,0x7d,0x04,0x18,0xca,0xd6,0x04,0xd4,0xc5,0xa4,0xff,0x8d,0x0d,0x68,0xd4,0x1a,0x3a,0x72,0x6f
+.byte 0x41,0x1e,0xda,0xc0,0x97,0x7c,0x55,0x2c,0x13,0x20,0x9a,0x07,0x35,0xcc,0xc5,0x83,0xee,0x41,0x77,0x51,0x28,0x07,0xe0,0x81,0xe3,0x9b,0x1f,0xdb,0x73,0x5c,0x8d,0x82,0xa2,0x8b,0xf4,0x92,0x4f,0x70,0xa8,0x6a,0xcf,0xbf,0xcf,0x0b,0x71,0xbc,0xeb,0x81,0xb4,0xc9,0x65,0xe7,0x43,0xef,0x25,0x45,0x27,0xea,0xcd,0x60,0x68,0xcd,0x2d,0x7a
+.byte 0xfd,0x88,0x6d,0x06,0xd5,0x92,0x32,0xc3,0x18,0x88,0x64,0xa7,0xde,0x39,0xeb,0x0b,0x5c,0x9c,0xf6,0xf6,0x93,0x90,0x24,0x0c,0x9e,0x0b,0x89,0x1c,0xcb,0xc8,0x96,0x72,0x17,0xae,0x46,0x61,0x69,0x6e,0xbe,0x6c,0xf1,0xa4,0xa4,0x50,0xa9,0x2a,0x47,0xd7,0x80,0xe4,0x72,0xd2,0x3f,0x1a,0xdd,0x82,0xdc,0x12,0x66,0x10,0x26,0x15,0x80,0x56
+.byte 0x4d,0xbe,0x02,0xae,0xe1,0x24,0x8a,0x41,0x52,0xc8,0x5d,0x8d,0x62,0x85,0xbe,0x7c,0x35,0xdd,0x88,0xd3,0xf5,0xf7,0x9b,0xf1,0x5a,0x4e,0x70,0x48,0x31,0x5a,0xaa,0x96,0x1e,0xf8,0x73,0xb4,0x0f,0xb2,0x82,0xf4,0x13,0xac,0xba,0x3b,0x12,0x36,0x1e,0x23,0xbf,0x09,0x8a,0x1c,0x96,0x47,0x56,0x2d,0x16,0x24,0xc3,0x23,0x65,0xe2,0x99,0xd0
+.byte 0xf0,0xa0,0x2c,0x64,0x35,0xad,0x16,0x34,0x67,0x52,0xbc,0x8f,0x17,0x90,0xf9,0xc7,0x4f,0x64,0x6c,0x75,0x3f,0xd7,0x48,0xa4,0x6b,0x43,0xe6,0x2e,0x7a,0xe3,0x79,0xe8,0x47,0x51,0xe9,0x52,0x36,0x30,0xa4,0x24,0x89,0x00,0xd5,0x77,0xbd,0x34,0x2e,0xa9,0x74,0x02,0x25,0xc0,0x0c,0x10,0x31,0xf0,0xa7,0xcb,0x01,0xed,0x43,0x70,0x15,0xe6
+.byte 0xda,0x01,0xb4,0x7a,0x13,0xbc,0xf1,0x57,0x34,0xb1,0xb7,0xb3,0x26,0x18,0x5f,0x42,0x6b,0xcb,0x78,0x25,0x48,0xe9,0xe6,0xe8,0xf5,0x45,0xa2,0x61,0x97,0x10,0xa5,0x7e,0x7a,0x48,0xf3,0x23,0xa5,0x88,0xc0,0xc4,0xc7,0x3b,0x5c,0x0c,0xfc,0xe0,0xf4,0x68,0x64,0xc6,0x9f,0xd9,0x17,0xcb,0xe5,0xba,0x4a,0xa4,0xe0,0x27,0xf8,0x2b,0x4e,0x67
+.byte 0x13,0xab,0xd2,0xce,0xbc,0x8d,0xdf,0x6e,0x49,0xaf,0x72,0x8a,0x51,0xa1,0x78,0x38,0x0a,0x58,0x2e,0x72,0xec,0x94,0x70,0x8d,0xdf,0x0b,0x5a,0x52,0x81,0xb1,0x9b,0xda,0x2c,0xd2,0x85,0xbb,0x8f,0xb0,0x99,0x64,0x24,0xbe,0x03,0xd9,0x92,0x8d,0x29,0xf3,0x41,0x9c,0xd6,0xef,0xef,0xb2,0x5c,0x22,0x90,0xff,0x27,0x4d,0xb3,0x91,0x72,0x9f
+.byte 0x42,0xca,0x66,0xc5,0x66,0xb7,0x50,0x3e,0x83,0x6f,0x2d,0xe3,0x7b,0x2a,0xc4,0x5a,0x93,0x92,0x80,0xdb,0x1a,0xdd,0xef,0xfd,0x96,0xcb,0x6a,0xd8,0x4a,0xc5,0x6e,0x36,0x4a,0xe4,0x10,0x15,0xb3,0x12,0xb4,0xd9,0x9e,0x37,0x48,0x96,0xcb,0xe5,0x3a,0x4f,0x57,0xa6,0x46,0x2f,0xd3,0x06,0xb8,0x61,0x1c,0x17,0x3a,0xb8,0xad,0x40,0x50,0x57
+.byte 0x10,0xd9,0xd0,0xe9,0x1b,0xe3,0x18,0x8c,0xc4,0xfa,0x08,0x8d,0x82,0x3c,0x22,0x22,0x1b,0x97,0x64,0xa6,0x8b,0x7c,0x70,0x2b,0xa0,0xd8,0x4c,0x64,0xcf,0xbc,0x49,0x78,0xcb,0x92,0x0f,0xe1,0x60,0x12,0x4e,0x92,0x0d,0xaf,0xa4,0x1f,0xe0,0x2a,0xa5,0x69,0xc6,0xa1,0x91,0x5c,0xdd,0xb8,0xae,0xfa,0xc5,0xb9,0x18,0x31,0x81,0x32,0x6e,0x97
+.byte 0x44,0x2a,0xda,0x58,0xcd,0x9e,0x0d,0x57,0xe0,0xe3,0x5f,0x7b,0x04,0xd8,0xc8,0x68,0xf5,0xa2,0xac,0x0c,0x29,0xf0,0x7e,0xff,0x32,0xfb,0x53,0x1a,0xc2,0xe3,0xae,0xa5,0xe4,0x9c,0x50,0xaf,0xf4,0xde,0x0b,0xdd,0x4d,0xfa,0x65,0x3c,0xbe,0x3c,0xb8,0xda,0x88,0xd9,0x6c,0x55,0x58,0xe1,0x4d,0x00,0xa8,0x1e,0xe2,0x3a,0x9c,0x53,0x9b,0xca
+.byte 0xb7,0x5d,0x3a,0x83,0xe0,0xbb,0x95,0xc4,0xd5,0x45,0x48,0xdc,0x12,0xab,0x24,0xfc,0x5d,0x91,0xe1,0xc8,0x0a,0x5c,0x10,0xc4,0xc9,0xaf,0xb6,0x54,0x80,0xfd,0xa0,0x70,0xb9,0xab,0xdf,0x34,0x9f,0x5c,0xff,0xde,0x8e,0xa0,0x0b,0x21,0xcf,0x28,0xc4,0xdf,0x67,0xb5,0xc0,0x20,0x49,0x0c,0x7e,0xe6,0xf7,0x41,0x6b,0x75,0xd9,0x1d,0x3b,0x49
+.byte 0xb7,0x4f,0x01,0xd1,0x20,0x62,0x15,0x1e,0x9f,0x16,0xb0,0xbd,0x30,0x09,0x05,0x00,0x0f,0x25,0x5a,0x37,0xe9,0xa6,0xc6,0xef,0xe5,0x39,0x2b,0xd7,0x6b,0xc5,0x96,0xd2,0xad,0x46,0xaf,0xd3,0xc0,0xfd,0xea,0xff,0x4c,0xaa,0x44,0x48,0x9a,0xdb,0x99,0x44,0x3f,0x4a,0xf0,0x3f,0x81,0x75,0xf2,0x79,0x31,0x3c,0xed,0x56,0xc6,0xf0,0xf1,0x8c
+.byte 0xdb,0x1d,0x6c,0x6c,0xcc,0xfb,0xc2,0x30,0xf6,0x24,0x14,0x69,0xc4,0x89,0x4d,0xd0,0x10,0x77,0x37,0x00,0xe8,0xc9,0xf2,0x32,0xf1,0x43,0x8b,0xe1,0x09,0xc4,0x59,0x17,0xf9,0x20,0x2b,0x01,0x76,0x20,0xb8,0x03,0x84,0xf6,0xd7,0x2e,0xef,0x20,0xa6,0xfa,0x8b,0x74,0x7f,0x4a,0x14,0x33,0xad,0xac,0x45,0x66,0x18,0x2b,0x6b,0xd2,0xb8,0x20
+.byte 0x1a,0xff,0xca,0x25,0x69,0xfd,0xba,0x4b,0x5b,0x9c,0x38,0x35,0x4c,0x30,0xa2,0x24,0x3d,0xbb,0xd4,0xf3,0x67,0x24,0xa5,0x93,0xc6,0xf5,0xb2,0xb4,0xa5,0x04,0x53,0xb6,0xe4,0xc7,0xdc,0xf1,0xe5,0x43,0xb7,0x73,0xaa,0xab,0x5c,0xea,0xcb,0xf1,0xeb,0x5b,0x04,0x7a,0xff,0x0f,0x5e,0xb4,0xd3,0x2a,0x39,0x50,0x1b,0x54,0x1f,0x32,0xd7,0x7c
+.byte 0xea,0x3f,0xee,0xa5,0xc8,0x46,0x48,0x7e,0x75,0x60,0x7a,0x42,0x42,0xd3,0x15,0x07,0x69,0x46,0x1c,0xe2,0x21,0x31,0x94,0x31,0x24,0x9e,0x39,0xab,0x7a,0xf9,0xc2,0x0b,0x2d,0x6b,0x55,0xa3,0x36,0xb2,0x65,0xf2,0x17,0x08,0xde,0x15,0x83,0x07,0x36,0x12,0x54,0x8f,0x0b,0x23,0xa8,0x7e,0xb5,0x57,0x1c,0x9e,0x29,0xd7,0xd4,0x9b,0xc1,0xf6
+.byte 0x94,0x23,0xf3,0x92,0xbf,0xba,0xc8,0xf5,0x78,0x3e,0x67,0x48,0x14,0x3b,0xd4,0xe9,0x8f,0x78,0xc1,0x4b,0x9a,0x59,0x08,0xaa,0x50,0xf4,0x9d,0xc4,0xc3,0x2c,0xbc,0x56,0x2c,0x13,0x30,0x75,0xfb,0xed,0x48,0xab,0x90,0xec,0x64,0x18,0xb5,0xd5,0xb5,0x7f,0xc1,0x7f,0x83,0xf2,0xdb,0xae,0xde,0xf5,0xb5,0x29,0x03,0xbe,0x80,0xb1,0x5d,0x97
+.byte 0xd3,0x7a,0xa4,0xd0,0xe0,0xce,0x04,0xda,0xaa,0x82,0x19,0xc9,0x02,0xb7,0x1c,0xe1,0x66,0xd9,0x3e,0x86,0x6d,0xb5,0xd1,0x35,0x63,0x8e,0x4b,0xc6,0x58,0x41,0xf9,0xb7,0xba,0xf3,0x06,0x91,0xb7,0xa2,0xfb,0xb5,0x5f,0x53,0xf3,0xe0,0xc1,0xf6,0x91,0x66,0xc7,0x93,0x3a,0x0a,0x72,0xb1,0xed,0x36,0x9d,0xde,0x21,0xdd,0x7d,0x0a,0x7b,0x35
+.byte 0x1f,0xc3,0x56,0xde,0xbb,0xcb,0xb2,0x0a,0xb6,0x84,0xce,0xa1,0xc6,0x1a,0x46,0x2f,0x9f,0x48,0xd5,0x98,0x73,0xa4,0xbd,0xbd,0xa3,0xe9,0xc9,0xc4,0x64,0x89,0xb7,0x9c,0x97,0x7c,0x2f,0x88,0x22,0xe4,0x4b,0x71,0x3d,0x2a,0x47,0xee,0xf8,0xfe,0xe0,0xf7,0x03,0x14,0xe6,0x7c,0x9e,0x57,0xbb,0x8e,0xf5,0xea,0x63,0xfc,0x5b,0x18,0x3b,0xa2
+.byte 0xa1,0x4a,0x28,0x82,0x37,0x77,0x5b,0xc4,0xd3,0xc1,0xf2,0x87,0x13,0x2b,0x2a,0xc8,0xac,0x70,0xe1,0x82,0x38,0x9c,0x12,0xa0,0xc4,0x9e,0x6b,0xac,0x33,0x8a,0xe9,0x31,0x6f,0xa1,0x76,0x94,0x48,0xcf,0xbc,0x78,0x22,0x82,0x6a,0xb0,0xb9,0x49,0x71,0xdb,0xde,0x8b,0x90,0x09,0x82,0x4d,0x79,0x17,0xe8,0xcf,0xd8,0x50,0xc3,0x08,0x07,0x81
+.byte 0x5f,0x9a,0x72,0xce,0x0a,0xe4,0x29,0xc9,0xdd,0x95,0x67,0x58,0xa1,0x14,0xec,0xcf,0x2f,0x29,0xcf,0xce,0xb3,0x35,0x54,0x77,0x67,0x56,0xec,0x95,0x68,0xee,0xbf,0x9c,0x9f,0x74,0x78,0x12,0xd5,0x30,0x83,0x28,0xd5,0x36,0x96,0x57,0xa0,0x8d,0x1c,0x99,0x19,0x04,0xaf,0x25,0xe5,0x71,0x83,0x88,0xb0,0x74,0x38,0xdd,0x8a,0xff,0x39,0x7a
+.byte 0xfd,0x34,0x8f,0x9c,0x67,0xa8,0xc8,0x6f,0x13,0x5d,0xf2,0x5b,0x22,0xd3,0x8e,0x63,0x51,0x58,0x9b,0xfc,0xaa,0x89,0x65,0x4e,0x36,0xc4,0xa7,0xef,0x98,0xf9,0xaf,0xcd,0x35,0x8c,0x16,0xbc,0x70,0x4f,0xcd,0x71,0x2a,0xf4,0x13,0xb3,0x3d,0xa3,0x92,0x71,0x45,0xe5,0x9a,0x45,0xbd,0xc5,0x1d,0x82,0x60,0x3a,0x97,0xf3,0x0f,0x96,0x21,0x3d
+.byte 0xe5,0x6e,0xfb,0x9d,0x9b,0xeb,0x15,0xc2,0xa6,0x73,0x76,0xf2,0xcd,0xec,0xfd,0x0f,0xf4,0x3f,0x46,0xc9,0x9c,0x73,0xa1,0x21,0x08,0xdc,0x31,0x00,0xaa,0x95,0x07,0xf0,0x3d,0x51,0x57,0xfa,0x6b,0xc3,0x8e,0xe9,0xa4,0x65,0xdc,0xff,0x57,0xb9,0x1f,0x4f,0xc6,0x6d,0x03,0x00,0xa7,0x19,0xb8,0x24,0xb5,0x3d,0x87,0xcb,0x84,0xb7,0xf5,0xfe
+.byte 0x51,0x16,0x5b,0xc7,0xed,0x4b,0xff,0xa3,0x66,0x17,0x93,0x60,0x69,0x84,0x8c,0x95,0x74,0xa7,0x30,0x2d,0x09,0xf7,0x4e,0x0e,0x2f,0x99,0xda,0x46,0x34,0x0f,0x93,0x90,0x97,0x4c,0xa6,0x25,0x15,0xb8,0x6f,0x1d,0xd5,0xe1,0xc1,0x39,0x50,0xfd,0xd5,0x79,0x4f,0x04,0x2f,0x76,0x50,0x3f,0x67,0x56,0xad,0x02,0x82,0x30,0x1a,0xaa,0x6e,0xe2
+.byte 0x05,0x6a,0x93,0xb7,0xbe,0xde,0x84,0xce,0xd8,0x53,0xed,0xad,0x95,0xab,0x45,0x1f,0x4c,0x3b,0x22,0x36,0x27,0x45,0x19,0xa4,0x7f,0x12,0x20,0x6c,0x9d,0xeb,0xd2,0xfe,0xd6,0x7d,0x25,0xf9,0xe3,0x64,0x77,0x56,0x89,0x12,0x57,0x80,0xd5,0x40,0xbb,0x2a,0xcc,0xac,0x34,0x8e,0x87,0xfd,0x58,0xc3,0xbd,0x92,0x48,0xd8,0x7f,0xc4,0x39,0x6a
+.byte 0x4e,0x1c,0x50,0x93,0xef,0xae,0x81,0x93,0x50,0x95,0x6e,0x46,0x7c,0xf5,0x27,0x44,0x6c,0x21,0x06,0x49,0x89,0x7e,0xf4,0xfa,0x08,0xa5,0xbc,0x0a,0xbd,0xb6,0x7b,0x55,0xac,0x87,0x19,0x33,0xfa,0xab,0xf3,0x15,0xc9,0x1b,0x83,0xf2,0x41,0xf1,0x26,0x6f,0xdf,0x15,0x60,0xdb,0xa6,0x03,0x43,0x3e,0x34,0x7a,0xa9,0xb1,0x38,0x57,0xe4,0x09
+.byte 0x1a,0x4a,0xd8,0x6e,0x28,0xee,0x7d,0x74,0x54,0x03,0xb3,0x29,0x24,0xb3,0xf0,0xc6,0x20,0x7c,0x47,0x01,0x66,0x36,0x7a,0x14,0x18,0x09,0xd6,0xaa,0xa6,0x82,0x5b,0xe4,0x0a,0xf9,0x41,0x52,0x3b,0x56,0xa2,0xf8,0xa2,0xa1,0x2b,0xe0,0x0d,0x1f,0x5b,0xe4,0x0e,0xe1,0x94,0x84,0x6f,0xed,0x2e,0x11,0xfa,0x4a,0xbd,0x41,0xf4,0x3c,0x8c,0x7e
+.byte 0x94,0x46,0xec,0x79,0x81,0xb0,0x36,0xfd,0x9c,0x73,0x0f,0x84,0x1a,0x59,0x4e,0x1b,0xd5,0xd1,0x0d,0xff,0xfd,0xb7,0xfb,0x73,0x35,0x8a,0x66,0xed,0xf3,0xee,0x6d,0xf7,0x86,0x0a,0xb9,0xc0,0xf1,0xa3,0xb7,0x32,0x49,0x01,0xe8,0xcd,0xfe,0x82,0x7b,0xf6,0x46,0xd8,0x73,0x47,0x8b,0x7b,0x6e,0x31,0x92,0x0f,0x4b,0x16,0x11,0x86,0x1d,0x02
+.byte 0x5d,0x12,0x79,0x59,0xdc,0x8c,0xaa,0x1b,0xc1,0x75,0x63,0xb2,0xd6,0xbf,0x19,0xb0,0x81,0x70,0x34,0x12,0xd2,0x09,0xbe,0x6d,0xa1,0x31,0x77,0xd2,0x9b,0x59,0xdc,0xcb,0x67,0xb5,0x14,0xcd,0x37,0x31,0x2c,0xa6,0x17,0x58,0x2b,0x24,0xfc,0x2a,0x9e,0x8f,0x38,0x38,0x7a,0x80,0xda,0x8b,0x54,0x1d,0xc9,0x99,0xc7,0x1f,0x98,0x7a,0x1f,0x32
+.byte 0x23,0x1c,0xb5,0x6e,0x53,0xd3,0x61,0xe7,0x78,0x19,0x6c,0xd5,0x2f,0x85,0xde,0xd1,0x67,0x6b,0x9b,0xa1,0x09,0x87,0x5e,0x89,0x5e,0x89,0x21,0x36,0xf2,0x94,0xc1,0xfd,0x6c,0x4e,0xd9,0x6b,0xd2,0xb1,0x1b,0x48,0x37,0x9a,0x7b,0xc9,0x52,0xfd,0xe2,0x6d,0x07,0x19,0xf2,0xa5,0x69,0xdc,0x0b,0x52,0x8f,0xb3,0x87,0x03,0x1a,0xd8,0x43,0x20
+.byte 0x68,0xcf,0x08,0xcc,0xce,0x37,0xf6,0x96,0x7f,0x03,0x62,0xb2,0xce,0x6a,0xfb,0x22,0x54,0xd6,0xfc,0x84,0x5c,0xf5,0x55,0x32,0x36,0x77,0x1d,0x15,0x6a,0x2c,0x3a,0x01,0x34,0xff,0x5b,0x7f,0x3f,0xab,0x97,0x8f,0xbd,0x1d,0x07,0xb9,0x47,0xb1,0xcc,0xc0,0xdf,0x17,0x38,0x54,0x07,0xc0,0x1b,0xb9,0xa2,0x29,0xa6,0x25,0x73,0x32,0x4d,0x5e
+.byte 0x51,0x60,0xb3,0x27,0xe5,0xb6,0xdb,0x56,0x81,0x95,0x03,0x7e,0xca,0xc6,0x15,0x8f,0x48,0xd4,0xac,0x71,0x41,0xdc,0x9c,0x86,0x5d,0xd8,0x90,0x90,0x54,0xdd,0x3d,0xf3,0xa8,0xbb,0xe5,0x55,0x69,0x26,0xdf,0xd1,0x8e,0x75,0x2a,0xe4,0xfe,0xe0,0x80,0x1d,0x6b,0xd2,0x8a,0x06,0x49,0x4e,0x60,0xf8,0xbd,0x3d,0x99,0x27,0x80,0x27,0x42,0x66
+.byte 0x01,0x32,0xe1,0x9e,0xa6,0xde,0x7b,0x14,0xa4,0x49,0x68,0x70,0xbe,0xa4,0xe1,0x44,0x2e,0xce,0xa3,0xe9,0x1d,0x7a,0xbd,0xf1,0xe4,0x25,0x11,0x47,0xd8,0xaa,0x32,0x34,0xf8,0xca,0x3d,0xec,0xf3,0x5d,0x8a,0x55,0xe7,0xd4,0x7c,0xfb,0xcf,0xe7,0xa6,0x13,0xaa,0x16,0x5f,0xaa,0x02,0x19,0xdd,0xf1,0xf8,0x5c,0xb2,0x1e,0x68,0x9a,0x21,0x93
+.byte 0xd1,0x38,0x31,0xbb,0x26,0x76,0x44,0xf8,0x84,0x3b,0xf5,0xd1,0x52,0xbe,0x1b,0x8e,0x4d,0xa0,0xb4,0x4a,0x5a,0x7e,0x89,0xe5,0x36,0xb0,0x76,0x77,0xc5,0xc2,0x22,0x73,0xc2,0x19,0x12,0x7f,0xdf,0x9c,0xb8,0xc0,0xf5,0x0e,0xd5,0xa3,0x55,0xae,0x61,0xf8,0xf1,0x6b,0x79,0xc8,0x2e,0xbc,0xa5,0xef,0xd4,0xb1,0x84,0x0c,0x15,0xc4,0xed,0xb3
+.byte 0x18,0x29,0xd6,0x31,0x83,0x79,0x30,0x1a,0x8f,0xf0,0x3b,0xe9,0xd1,0xf2,0x1d,0xec,0xcb,0xe8,0xc5,0x1c,0xb5,0xcb,0x8e,0x01,0xd1,0xb2,0x86,0x43,0x33,0x95,0x70,0x7e,0x75,0xa9,0xa1,0xe7,0xcb,0xd9,0xf4,0xd3,0xe1,0xe2,0xe9,0x46,0x21,0x20,0x3b,0xe9,0x48,0x1c,0x3f,0x93,0x57,0x31,0xeb,0x15,0x9c,0xa7,0xa6,0xcb,0xb5,0xb7,0xa7,0x24
+.byte 0xbe,0x66,0x4c,0x92,0x7c,0xe8,0x8e,0x3f,0x9c,0xa9,0xd7,0xad,0x73,0x68,0x19,0x19,0xd4,0xb5,0x57,0x82,0xdc,0x67,0x3c,0xec,0xac,0x06,0xec,0x86,0x9b,0x65,0xff,0xbb,0xc3,0x90,0x48,0xdb,0x52,0xcc,0xa4,0xf5,0xdf,0x2c,0xc5,0x5a,0xe3,0x30,0xed,0xad,0x37,0x40,0x8c,0xaa,0x32,0x4f,0x94,0x1e,0x14,0x59,0x48,0x1d,0xd3,0xaf,0x80,0xe7
+.byte 0xcf,0x6b,0xa7,0x70,0xe7,0x98,0x22,0x4b,0x40,0x02,0x0c,0x29,0x09,0x0a,0x53,0xf7,0xd4,0xeb,0xbb,0x75,0xb4,0x30,0x1c,0x67,0xea,0xd2,0xb5,0x40,0xfe,0x57,0x2c,0x3c,0x44,0x8d,0x8d,0x02,0x78,0xf0,0x76,0x8f,0x92,0xab,0xb4,0xc9,0xc0,0x2f,0xf5,0xde,0xa7,0x09,0x14,0xf1,0xe5,0x34,0xeb,0x86,0xfa,0xcf,0xcc,0x85,0x1c,0x9c,0xa6,0xe1
+.byte 0x72,0x9e,0xc1,0xe4,0x74,0xc4,0x96,0x5d,0xf4,0x4b,0x23,0x4f,0xa5,0x32,0xff,0x38,0x21,0x8f,0x43,0xe5,0x96,0x20,0x3c,0x78,0xb8,0xb4,0xcd,0x29,0x62,0x84,0x59,0xb5,0xb4,0x57,0x07,0xa8,0x79,0x77,0x21,0xf4,0x82,0xa7,0xb1,0x36,0xee,0x16,0x8e,0xb5,0x9a,0xf7,0x03,0xac,0x64,0x03,0x20,0x48,0x24,0xbc,0xbb,0xec,0x50,0xed,0xa1,0xf3
+.byte 0x67,0xd9,0x34,0xe1,0x0c,0x0b,0xc3,0xd0,0x46,0x0b,0x55,0x85,0x59,0x3c,0xb4,0x7d,0xd0,0xc2,0xe7,0x95,0x24,0x1f,0x53,0x76,0xf1,0x81,0x4a,0x61,0x6a,0x2e,0x3b,0x3f,0x92,0x14,0x7c,0xe0,0x33,0x7f,0xb4,0x85,0x92,0x78,0x0c,0x0b,0xe7,0xbd,0x7a,0x08,0x31,0x7d,0x47,0x3b,0xfa,0xdd,0x90,0x9e,0xf0,0xa9,0xd1,0xa7,0x7c,0x2a,0x37,0xb1
+.byte 0x23,0x71,0x34,0xa0,0x63,0xfb,0x9e,0x8f,0x39,0x00,0xa0,0x09,0xd4,0x1f,0xf4,0xba,0x2d,0xc1,0xac,0x6c,0x94,0x18,0x56,0x3e,0x89,0x92,0x63,0x10,0x5e,0xfe,0x76,0xec,0x4e,0xb6,0x5d,0x59,0xf9,0x94,0x46,0x4f,0xda,0xd5,0x3e,0x6c,0x48,0x49,0x7e,0x7c,0x77,0xe7,0x7e,0x22,0x31,0xb5,0x9d,0x15,0xd3,0x08,0x24,0xdb,0x67,0x98,0x6b,0xfc
+.byte 0x45,0x54,0x85,0x29,0x9a,0x47,0xa5,0x60,0xe2,0x46,0x36,0x45,0x16,0x54,0xd6,0xb1,0x5c,0x38,0x45,0xf8,0x43,0x28,0x58,0x81,0xc9,0x57,0x10,0xda,0x3b,0xfc,0x3e,0xe4,0xf4,0xb2,0x16,0xb6,0x16,0x1d,0xa4,0x68,0xa6,0xe0,0x36,0xdb,0xe2,0x19,0x1c,0xce,0x9f,0x94,0xa9,0x94,0xad,0x20,0xcb,0x17,0xd0,0x92,0x37,0x75,0x88,0x0d,0xaf,0xdf
+.byte 0x98,0x6d,0x19,0x9e,0x8e,0x61,0xe4,0x8c,0xfc,0x27,0x27,0x6a,0xa7,0xa4,0x66,0x7f,0x08,0x03,0xef,0x5c,0x4a,0xb7,0x89,0xa1,0xae,0xe8,0x70,0x3f,0x13,0x27,0x0a,0x7d,0x5d,0x5e,0x2b,0x69,0xb5,0x98,0x1f,0x25,0x1e,0x41,0xff,0x46,0x5a,0x25,0x1f,0xb4,0x90,0x8e,0x81,0x91,0x19,0x63,0x10,0xd4,0xa9,0xdf,0x3b,0xae,0xe6,0x63,0x1a,0xdc
+.byte 0x09,0x5f,0xac,0xaa,0xb8,0x6b,0xbd,0x6a,0x90,0x70,0xce,0x2c,0x63,0x6d,0x48,0x78,0xca,0xc1,0x59,0x94,0xe2,0xc7,0x89,0x17,0x73,0xfa,0x73,0x34,0xb7,0xd3,0x9c,0x4e,0xd8,0xac,0x18,0x80,0x25,0xbf,0xbe,0x75,0x0a,0x9a,0x05,0x5e,0x54,0xcb,0xba,0xab,0xca,0x7f,0x96,0xf7,0x26,0x8c,0x82,0xe0,0x23,0xa5,0x86,0xb5,0xdf,0x31,0xd0,0x2f
+.byte 0xe3,0x66,0x96,0x83,0xd2,0x04,0x43,0x8a,0x28,0x59,0x49,0xdc,0x11,0x38,0xd9,0x5f,0xc2,0x31,0xaa,0xa8,0x1a,0xff,0x57,0xf1,0x84,0x18,0x28,0xe8,0x04,0xae,0x98,0xa4,0x17,0xc4,0x35,0x75,0xf5,0x37,0xf5,0x27,0x3e,0x7e,0x32,0xa4,0xcb,0xd4,0x43,0x59,0x02,0x63,0x7b,0x7c,0x9d,0xa7,0x61,0x12,0xf7,0xdc,0x12,0xe0,0x07,0xac,0x96,0xf3
+.byte 0x71,0x43,0xe5,0x30,0xe0,0x4c,0x51,0x2a,0x19,0xf5,0x79,0x59,0x5a,0xc5,0x74,0xfa,0x54,0x18,0xb4,0xb1,0xfb,0x4b,0x9b,0xf8,0xe4,0xa4,0x63,0x25,0xc3,0x84,0xeb,0x2e,0xa1,0xf8,0xf8,0x7b,0x25,0x6a,0x7d,0x14,0x38,0x06,0xeb,0xae,0x9f,0xa5,0x80,0x9a,0x8a,0xb6,0x46,0x95,0xdf,0x52,0x11,0xd4,0x30,0xcc,0x11,0x8f,0x4a,0x5e,0x56,0x26
+.byte 0x60,0x3d,0x5f,0x0b,0x04,0x94,0xcd,0xca,0x1d,0x6b,0x83,0x51,0x83,0x8d,0xf8,0x33,0x4a,0x91,0x00,0xa4,0xf5,0x44,0x5b,0xad,0xa0,0x4a,0x72,0xaf,0xe6,0x4a,0x0d,0x1e,0x9f,0x18,0x6b,0xb4,0xdf,0x85,0x61,0x2a,0x3b,0xe1,0x4c,0xaa,0xc3,0x17,0xef,0x51,0x9f,0xae,0xb5,0xca,0xaa,0x6c,0xd9,0xa1,0xf5,0xa3,0x6f,0x1c,0xca,0xb3,0x37,0xda
+.byte 0x27,0xea,0xcb,0xb7,0x36,0xb2,0x11,0xda,0x9f,0x07,0x78,0xaa,0x6c,0xad,0x63,0x9b,0x49,0x6b,0xfe,0x1f,0x93,0x82,0x73,0xc9,0xc8,0xf6,0x68,0x54,0x50,0x77,0xba,0x78,0xc7,0x82,0xee,0xbd,0x97,0x66,0xb9,0x22,0x49,0x0d,0x7a,0x1f,0x0f,0x4e,0xe5,0x02,0x8b,0xa6,0x1b,0x11,0xfc,0xa6,0x37,0x2a,0x5c,0x66,0xaf,0xac,0xa5,0x9f,0xbf,0x26
+.byte 0x98,0x9b,0x25,0x44,0x48,0x09,0xe6,0x76,0xb9,0x08,0xf1,0x37,0xcf,0x86,0xc9,0xdf,0xa8,0xf3,0x88,0x2f,0xc1,0x33,0x15,0x95,0x59,0xf7,0x9b,0xf2,0x48,0x76,0xcb,0xd0,0x31,0xe4,0x27,0x74,0x2d,0x6e,0xd2,0xc3,0x29,0xea,0xef,0xff,0x4e,0x3d,0xda,0x3e,0xef,0x94,0x94,0x40,0xcd,0x93,0xcf,0xb8,0x56,0x29,0xf8,0x20,0x20,0xa3,0x66,0x83
+.byte 0xba,0xc8,0x4f,0xe6,0x22,0x96,0xb5,0xb2,0x44,0x75,0x55,0x98,0xed,0x11,0xd0,0x58,0x50,0x26,0xf1,0x4a,0xf6,0x80,0x5c,0x17,0x92,0xba,0xc2,0xd6,0x68,0xd4,0x7a,0x4f,0xdf,0x16,0x97,0xbd,0xad,0xd7,0x1b,0x0c,0xe5,0x23,0xa9,0xaa,0xf4,0x1c,0x8d,0xec,0xbf,0xf0,0xb5,0xaa,0x49,0xfd,0xf1,0x31,0x9b,0xf9,0xe9,0x21,0xa1,0x20,0xab,0xbe
+.byte 0x56,0x8c,0xf2,0x85,0xdc,0x1f,0xea,0x25,0xce,0xf5,0x6c,0x18,0x7d,0xc4,0x1a,0x01,0x08,0x01,0xed,0x02,0xa8,0xac,0x7f,0x74,0x2c,0xd7,0x28,0x25,0x6e,0x68,0x19,0x38,0x8d,0x20,0x51,0x8f,0x38,0x8b,0x03,0x36,0xae,0x50,0x35,0x28,0x65,0x7e,0x15,0x2a,0x80,0x2c,0xae,0xcd,0xb3,0xb6,0x91,0xf1,0x8c,0xf2,0x8c,0xc5,0xce,0x3e,0x3a,0x97
+.byte 0x5a,0xff,0xe1,0x37,0x13,0xf7,0x6b,0x07,0xb2,0xaa,0xaa,0x57,0x18,0xb7,0xb2,0x19,0x52,0xbf,0x59,0x0b,0x6f,0xba,0x56,0x54,0x14,0xac,0x21,0xfd,0x7d,0x03,0x4b,0x0b,0x39,0x54,0xba,0xf9,0xba,0x73,0xcd,0x67,0x13,0x30,0xca,0x19,0x80,0x4f,0x18,0xb4,0x75,0x2a,0xec,0x78,0xa7,0xd0,0x5c,0x53,0xe2,0x43,0x2c,0x08,0x5f,0x5c,0xe6,0x60
+.byte 0xde,0x04,0xf6,0x75,0xca,0x35,0x3b,0xf6,0x68,0x53,0x60,0xc0,0xed,0xb0,0x15,0xa1,0xa4,0x89,0x23,0x34,0x49,0x35,0xd2,0x78,0x4b,0x8f,0x7c,0x8d,0x59,0x22,0x9f,0xad,0x72,0x47,0x5b,0xde,0xf2,0x09,0x08,0xa0,0x8d,0x5f,0x4d,0xc3,0xd1,0x83,0x17,0xbc,0x39,0x8e,0xa5,0x53,0xaa,0xe3,0x31,0x03,0x93,0x14,0xb4,0x57,0xf0,0xdf,0x54,0x1d
+.byte 0x79,0x4d,0x21,0x1a,0x8f,0x3f,0x6e,0x07,0x41,0xcc,0x2d,0x94,0x55,0x4e,0x50,0xfd,0xac,0xe3,0xef,0xa7,0x50,0x3b,0x3c,0xda,0x32,0x25,0xee,0xd9,0x01,0x37,0x8e,0xb3,0x23,0xc5,0x5e,0x12,0x88,0x6d,0xd5,0x41,0xfd,0x3f,0xfa,0x75,0xb8,0xcb,0x82,0x10,0x81,0x38,0x1b,0x10,0x2d,0x2c,0x6b,0x62,0xa1,0x7c,0xd1,0x75,0xd8,0x8c,0x0c,0x2f
+.byte 0xe8,0x97,0xff,0x18,0xb3,0x12,0xa2,0xef,0x6c,0xc5,0x79,0x9f,0x64,0xf3,0xc7,0xdc,0xdb,0x54,0xa4,0x25,0xc7,0x30,0xfb,0x6c,0x5a,0x50,0x24,0xf9,0xb6,0xc9,0xe7,0xda,0x78,0xcc,0x1b,0x5e,0xf3,0xe7,0x32,0xd8,0x36,0x47,0x10,0xe5,0x2c,0xeb,0xea,0xf7,0x25,0x30,0x93,0x64,0x88,0xc8,0x59,0xf8,0x5c,0x02,0x43,0x4c,0x23,0x8e,0x1c,0x42
+.byte 0xe4,0x36,0x39,0xbf,0xba,0x8b,0xe3,0x53,0x01,0x32,0x0d,0x89,0xc2,0xea,0x35,0x94,0xf1,0x0d,0x29,0x45,0x08,0x07,0x15,0xcb,0xd7,0x3e,0x4d,0x9f,0x04,0xd8,0x18,0x8a,0x56,0xa3,0xb1,0x1c,0x46,0x19,0x8b,0xd0,0x51,0x30,0xf3,0xca,0x52,0x2a,0x16,0xc4,0x90,0xc1,0x00,0x50,0x87,0x8b,0x4c,0x71,0x61,0x48,0x69,0xb2,0xf1,0x33,0xaa,0x79
+.byte 0x81,0x8b,0x36,0x33,0x19,0x41,0x6b,0xc1,0x91,0x40,0xf2,0xcc,0x1d,0x83,0x09,0xab,0xcc,0x6f,0x6c,0x54,0x91,0x62,0x80,0xac,0xe6,0x1f,0xcd,0x5d,0x05,0x2b,0xe5,0xac,0xbc,0xd6,0x1b,0x8b,0xef,0x95,0xa0,0xf3,0xfe,0x8e,0x4d,0x32,0x77,0xe8,0x02,0x8f,0x44,0xad,0xc4,0x40,0xc3,0x99,0x68,0x81,0x47,0x15,0xbd,0x3b,0x8f,0x0b,0x9b,0x3a
+.byte 0xb3,0x9d,0x8f,0x3d,0x86,0xd1,0x89,0x5f,0x67,0x19,0x33,0x2d,0x18,0x64,0x0e,0x3a,0x13,0xa4,0xe9,0xb4,0xc9,0x90,0x09,0x6a,0xcb,0x5d,0x0d,0x83,0x13,0x04,0x29,0xe5,0xa5,0xf4,0x00,0x56,0xf4,0x80,0x96,0x33,0x93,0xe4,0x9b,0xc4,0x6e,0x38,0xbf,0x0a,0xe0,0xee,0x8c,0x89,0x5d,0x60,0x36,0x7e,0x69,0xc2,0xc7,0x28,0x6f,0x2b,0x97,0xfb
+.byte 0xb3,0x5b,0x82,0xe8,0x9a,0x36,0x44,0xd7,0x1f,0x9b,0x1b,0xd0,0x14,0xe4,0xd4,0x0d,0x35,0xcd,0xee,0x88,0x50,0x37,0x5c,0x88,0x09,0xa5,0x16,0x4d,0xe1,0xbc,0xe8,0x79,0x8f,0xa9,0x18,0xb8,0x43,0xb4,0xd7,0x32,0xcd,0x26,0xdd,0x78,0x29,0x59,0xad,0x29,0xe3,0xe0,0xe7,0xcf,0x16,0x03,0xc6,0x8a,0xb6,0xa2,0x09,0x9a,0x6e,0x90,0x7b,0x0c
+.byte 0x9d,0x20,0xb6,0xc4,0x28,0x3f,0x44,0x06,0xa9,0x45,0x72,0x27,0xa7,0x56,0x3f,0x07,0xff,0x13,0xd9,0x80,0xda,0xbd,0x25,0xad,0xd3,0x74,0x2c,0xd8,0xd2,0x93,0xa5,0xda,0xbc,0x5f,0xa5,0xde,0xb7,0x3a,0xf0,0xd2,0x17,0xb1,0xc3,0x70,0x2a,0x85,0xde,0xf0,0x97,0x7b,0x96,0xb2,0x0e,0x45,0x7f,0x63,0xd4,0x94,0xd8,0x78,0x05,0xcf,0xea,0xb3
+.byte 0xfb,0x7a,0x79,0xb5,0x91,0x53,0xb8,0x8c,0xa2,0x03,0xf4,0xc3,0xed,0xf0,0xab,0x33,0x5c,0x6e,0xcd,0xbd,0x73,0xe3,0xe9,0xd0,0x83,0x2a,0x2a,0x68,0x32,0xf1,0x69,0x4f,0xd0,0x8b,0xe8,0xa1,0x7d,0x5b,0x0f,0x69,0xc2,0x33,0xbf,0xc1,0x54,0x29,0x47,0xed,0x9f,0xdb,0x35,0x0a,0x3d,0x2b,0x9d,0x8b,0x91,0xb6,0xe0,0xbc,0x53,0xba,0xb7,0xcd
+.byte 0x2c,0xd9,0xeb,0x81,0xa0,0x2e,0x14,0x6e,0xdc,0xe1,0x90,0x36,0x14,0x9d,0xa8,0x8b,0x6b,0x1b,0xac,0x4c,0x09,0x8b,0x1a,0x87,0xf4,0x66,0xf6,0xfb,0x62,0x92,0x13,0xcf,0xb2,0x96,0xf0,0xc9,0x8b,0x12,0x99,0xf1,0x16,0xae,0x5c,0x27,0x24,0xa8,0xfd,0xb3,0x4c,0xc2,0xe6,0x3f,0xd2,0xc6,0x0c,0xf2,0x65,0x4e,0xdf,0xf1,0x06,0xb8,0x99,0xc4
+.byte 0x3a,0x35,0xba,0xed,0x18,0x3e,0xfa,0x03,0x51,0x8d,0x45,0x68,0x12,0x7b,0xb6,0xac,0x63,0x99,0x47,0xee,0x6f,0x8b,0xcb,0xc1,0x0a,0xf9,0x23,0xf0,0x05,0xe1,0x03,0x4a,0xb5,0xe0,0x65,0x71,0xc8,0x64,0x7e,0x0d,0x39,0xe7,0x96,0xdb,0x34,0x63,0x2e,0x1a,0x27,0x85,0x52,0x63,0x8e,0x44,0xfb,0x61,0xca,0x79,0xe5,0x91,0x99,0x83,0x2d,0xe0
+.byte 0x26,0x04,0xad,0x43,0x26,0xf2,0x7e,0x56,0xae,0x35,0x6a,0xfb,0xec,0xc6,0x27,0xe4,0x3a,0xa3,0x6b,0x63,0x72,0xba,0x98,0x03,0x9f,0x2a,0x4c,0xb1,0x33,0x22,0x9d,0x53,0xf6,0x00,0xa3,0x1e,0x32,0xcb,0xbe,0xe0,0xc2,0xf8,0x71,0xcd,0x3f,0xe3,0x4d,0x83,0xf2,0x9f,0x1c,0x91,0x35,0x97,0x52,0x95,0xba,0x24,0x04,0x04,0xca,0x32,0x6d,0xd7
+.byte 0x4b,0xd4,0x9e,0x8b,0x73,0x42,0xfb,0x9f,0xfc,0x93,0xea,0xc2,0x41,0x56,0xa9,0xe5,0xdd,0xd0,0x37,0x8a,0xe2,0x92,0x9f,0x45,0x4f,0xd8,0xef,0xe6,0x6f,0x58,0x41,0x5f,0x7b,0xe7,0x0f,0x32,0xce,0x06,0x02,0x7f,0xe2,0x37,0x87,0xb7,0x35,0x72,0x68,0x87,0xc9,0x35,0xa8,0x51,0xce,0xd8,0xde,0xc3,0x8c,0xb4,0xab,0xf4,0xa7,0x3b,0xcd,0xc8
+.byte 0x0a,0x56,0x5b,0x48,0xb1,0xa4,0x27,0xa8,0x9e,0x3e,0x04,0xbc,0xb3,0x63,0x3e,0xd5,0xf7,0xae,0xec,0x0c,0x6e,0x4a,0x73,0xb6,0xed,0x66,0xea,0xc1,0x7a,0xc4,0xaa,0x21,0x27,0x62,0xef,0x3d,0x1d,0x51,0x8b,0x63,0xe6,0xe2,0x8a,0xed,0x7a,0x4b,0x90,0xc3,0x9f,0x91,0xb4,0x8f,0x78,0x65,0x9c,0xdd,0x0a,0x7a,0x50,0x36,0x33,0x30,0x3b,0xb4
+.byte 0xdf,0x67,0xbd,0xfd,0x71,0xfc,0x40,0x49,0xaa,0x01,0xdf,0x68,0x67,0x73,0x31,0x2c,0x98,0x2f,0x8c,0x9e,0x2d,0xce,0x4a,0x71,0xbc,0x6f,0x90,0x1d,0xc0,0x37,0x07,0x30,0x0c,0xa3,0x04,0xfb,0xd1,0xd0,0x0e,0xcb,0xdc,0x94,0x06,0x7f,0x83,0xe5,0x45,0x47,0xd0,0x71,0x06,0x94,0x23,0x7c,0x03,0x80,0x46,0xa5,0x10,0x08,0xd1,0xdb,0xfb,0x9d
+.byte 0xd4,0x05,0x01,0x5e,0x66,0x4d,0xf9,0x32,0x9b,0x5b,0xfe,0x7a,0x60,0x63,0x77,0x9a,0x31,0x34,0xe5,0x9a,0x82,0x2d,0x2b,0xb7,0xe0,0x04,0x8f,0x86,0xf3,0xb2,0x16,0x86,0x50,0x37,0x9d,0x80,0xe7,0x62,0xdf,0x77,0xda,0xf4,0xfc,0xb7,0x42,0x9d,0xac,0xcb,0x11,0xff,0x0c,0x6f,0x4e,0x16,0x0c,0x59,0x04,0x05,0x8f,0x88,0x64,0x37,0xe6,0x6c
+.byte 0xee,0x64,0x58,0x79,0x60,0xd4,0x2f,0xb7,0x90,0x59,0xfb,0x82,0x3b,0x20,0x2e,0x2b,0xba,0x15,0xfb,0xf7,0x5b,0x1d,0x81,0x8a,0x8a,0x8f,0xe3,0x39,0x92,0x34,0xfc,0x3a,0x67,0xce,0xb6,0xa0,0x9b,0x56,0x78,0x96,0x4d,0x32,0xbf,0x9c,0x83,0x9e,0x19,0x66,0x20,0x42,0xb2,0x78,0x62,0x42,0xdd,0xdf,0x98,0xab,0x0c,0x3d,0x41,0xb5,0x74,0xc1
+.byte 0x2d,0xf0,0x02,0x58,0x6e,0xb3,0x4d,0x7b,0x41,0x1c,0xf1,0x09,0xc1,0xbb,0x84,0x67,0xf8,0x24,0x77,0x32,0xcd,0x7a,0x63,0x87,0x0d,0xf2,0xc5,0xaf,0xe4,0xb5,0xc6,0x3b,0xad,0x66,0x5e,0xae,0x90,0xc2,0x24,0x27,0x7a,0x0b,0xed,0x1b,0x86,0x5d,0x02,0x19,0x85,0x78,0xc8,0xb1,0xce,0xe7,0xc9,0x5c,0xce,0x43,0x58,0xac,0x1c,0x4e,0xcd,0xb8
+.byte 0x3a,0xb8,0x7a,0xf3,0x79,0x4b,0x97,0xcf,0xbe,0x88,0x24,0xd0,0x9a,0x5a,0x55,0x43,0x0c,0x48,0xa2,0x7f,0xaf,0x4b,0xd8,0x16,0x02,0xfb,0xe6,0x0c,0x6b,0x85,0xb4,0xb8,0x5e,0x40,0x60,0x5d,0x93,0x51,0xc6,0x32,0xb9,0x4a,0x23,0x96,0x71,0xeb,0xe8,0xe8,0x01,0x1e,0x85,0xb0,0x47,0xde,0x86,0x15,0x52,0x3a,0xb2,0xd3,0x86,0x4b,0x78,0x09
+.byte 0x9c,0x6e,0x9d,0xd9,0xef,0xe8,0x64,0x2d,0x2a,0xec,0x21,0x5a,0x60,0xa5,0xe4,0x26,0xbb,0x79,0x0c,0xdb,0x48,0xd6,0x4b,0x5c,0x5b,0xe3,0x34,0xc9,0x96,0xf0,0xcb,0x68,0x8a,0x2d,0xee,0xa3,0x37,0x34,0x5f,0x3e,0x65,0x40,0xce,0xe1,0xc8,0x2e,0x11,0xca,0x42,0x51,0x53,0x72,0x3d,0xa9,0x68,0x54,0xb4,0xd8,0xd7,0x72,0x84,0x8d,0xcd,0x6d
+.byte 0x1f,0x0e,0x0c,0x0f,0x32,0x3a,0x7d,0xdd,0xc1,0xd3,0xe7,0x2d,0x1f,0x52,0x8b,0x73,0x86,0x70,0x2a,0xcb,0x71,0x37,0xa1,0xab,0xe3,0x94,0x5a,0xd7,0x9d,0x68,0xc1,0x6e,0x5d,0x72,0x25,0x81,0xe8,0x45,0xad,0x6c,0xf8,0xdb,0x9b,0x70,0x31,0xb9,0xf0,0x4f,0x23,0xd7,0x03,0xc8,0x87,0x43,0x51,0x7a,0x55,0xfe,0x6f,0x2d,0x40,0xbc,0xfe,0xdf
+.byte 0xe6,0x21,0x4b,0x4d,0xc6,0x02,0x48,0xe7,0x7a,0x2a,0xef,0x91,0xdf,0xbc,0x98,0x91,0x6f,0x59,0xc4,0x47,0x77,0x2e,0x45,0x45,0x23,0x47,0x5d,0xf8,0x50,0x41,0x84,0x75,0x8a,0xe7,0x4d,0xfb,0xeb,0x58,0x00,0xcf,0x42,0xca,0x02,0x05,0xc7,0xfa,0x11,0xfb,0x6e,0x90,0x7d,0x53,0xa0,0x19,0x23,0x24,0x8f,0x89,0x17,0x40,0xbe,0x11,0xfb,0xd9
+.byte 0x04,0xf8,0x84,0xeb,0x90,0x7c,0x84,0x45,0x9c,0x53,0x45,0x5e,0x45,0x51,0x55,0xfc,0xf1,0x6b,0x02,0x24,0xfd,0x95,0x4a,0x40,0x80,0xdc,0xa6,0x94,0x15,0x2c,0x1d,0x85,0xa0,0x07,0x8d,0xf8,0xf2,0x95,0x0c,0xa0,0x4e,0x5a,0x5b,0x29,0x09,0xcc,0xf3,0x4e,0x8e,0xea,0xe8,0x26,0xb8,0xbe,0xb2,0x6f,0x76,0x6f,0xa4,0xe5,0x6a,0x50,0xcf,0xc8
+.byte 0x7d,0xb6,0x1e,0x9d,0x90,0x6b,0xde,0xe2,0x55,0x49,0x97,0x00,0xa5,0xc5,0x1f,0x1c,0x41,0x66,0xe7,0x6b,0x20,0xb2,0x1e,0xc7,0xb3,0xd4,0xa9,0x75,0xbb,0x83,0x24,0xd0,0xdf,0xbd,0xba,0x2c,0x2f,0xa4,0x03,0x1d,0x17,0xc5,0x74,0xc2,0x6a,0x20,0x71,0x18,0xd1,0xc5,0xb0,0x78,0xfe,0xda,0x55,0xd2,0x43,0x2a,0xd8,0x88,0x74,0x75,0x86,0x07
+.byte 0xe9,0x8b,0x0d,0x0f,0xe5,0x8d,0xe8,0x3d,0xf4,0x93,0xde,0x4c,0x97,0x98,0xe2,0x9b,0x22,0xde,0x13,0x18,0x8b,0xc5,0xe1,0x6f,0x6d,0xb4,0x19,0x46,0xff,0xbd,0xa6,0x2e,0xe6,0x48,0xcd,0x66,0x22,0x7d,0xf4,0x0e,0xeb,0x74,0x25,0x5c,0x90,0x0e,0x26,0xce,0x17,0xe9,0xdb,0x30,0xb9,0x25,0x99,0x96,0x46,0x3a,0x78,0xa3,0x76,0x2d,0x9e,0x42
+.byte 0x06,0x8a,0x1e,0x62,0x46,0xa4,0xd0,0x1d,0xe2,0x4c,0x3c,0xb4,0x4c,0xc0,0xd1,0xf7,0x05,0x5b,0xe4,0xd4,0x71,0x73,0x31,0xfc,0x98,0x2a,0x55,0xb0,0x78,0x92,0x59,0x8b,0x25,0x97,0x15,0xf2,0xf9,0x57,0x8b,0x7c,0xd4,0xc4,0x47,0x2f,0x10,0x3b,0x76,0xde,0x5f,0xb1,0xdf,0xdc,0xb0,0x15,0xd5,0x4a,0xd2,0x54,0xad,0x5e,0x32,0xf4,0x5a,0x1a
+.byte 0x8d,0xe8,0xa0,0x4a,0x4e,0x04,0xdc,0xdd,0xd2,0x57,0xe5,0x24,0x4b,0x93,0x51,0xef,0xd4,0xba,0x3f,0x77,0xfc,0x0a,0x5c,0x7d,0x6e,0xa7,0x86,0xe5,0x88,0xd1,0xac,0x74,0x46,0x9a,0x39,0xb6,0x98,0x3d,0xae,0x89,0x4e,0xea,0x8d,0xdc,0xc7,0xb9,0x0c,0xd7,0xa6,0x06,0x4d,0x28,0x2b,0x51,0x2b,0xdb,0x30,0x4a,0x91,0x1c,0x40,0x89,0xe4,0xba
+.byte 0x72,0xd5,0xed,0x16,0x66,0xb8,0xef,0x81,0xd9,0x51,0xf8,0x1b,0xff,0xab,0x8b,0x52,0xb8,0xf3,0x11,0xb3,0xe5,0x04,0x5a,0xb0,0x60,0xa3,0x35,0x12,0x6a,0xa0,0x75,0x5c,0x21,0xa9,0x5a,0xe8,0xd3,0xd7,0x8a,0x1f,0xe0,0x9b,0xb7,0x1e,0x7d,0xbe,0x81,0xaa,0x56,0x5a,0xd8,0x2d,0x7e,0x0c,0x60,0xb2,0x68,0x26,0x6d,0xaa,0x8b,0xcc,0x11,0x40
+.byte 0x25,0xea,0xc9,0x94,0xfb,0x3b,0x9b,0xa7,0x3a,0xde,0xd9,0xfe,0x6b,0x4b,0xfc,0x3f,0xbf,0xdd,0x51,0x9b,0xa1,0xca,0x2f,0xed,0x33,0xd8,0x3d,0x92,0xa4,0x1d,0xee,0xb2,0x47,0xd0,0x72,0x6a,0x96,0x33,0x0f,0xdd,0x0a,0xd9,0xbd,0x86,0xdb,0x25,0x53,0x0e,0x3c,0x31,0xad,0x05,0xb9,0x24,0x13,0x00,0xdf,0xc2,0x7c,0x3d,0x03,0x9b,0xf6,0x6d
+.byte 0x93,0xd9,0xdf,0x73,0xf8,0x1c,0x98,0xe2,0x77,0x46,0x46,0xdc,0x07,0xe6,0xbb,0xc1,0xa7,0xb6,0xbe,0x21,0x07,0xae,0xdb,0xca,0x69,0x2d,0x8a,0x2b,0x59,0x27,0xe0,0x7c,0xf0,0xf1,0x34,0x69,0x97,0x44,0xba,0xbb,0x48,0x9f,0xd9,0xd8,0x16,0x1a,0xef,0x11,0x68,0xb6,0xaf,0x3a,0x10,0xc6,0x7c,0xd1,0x12,0xc7,0x89,0x47,0xe3,0xd1,0x24,0xc6
+.byte 0x44,0x9f,0x7e,0x6a,0x66,0x43,0x48,0xd6,0x9f,0x7b,0xf0,0x1f,0xd2,0x5f,0x2b,0xa7,0x13,0x6a,0x7c,0x70,0x08,0x38,0xb0,0x00,0xbc,0x7c,0xd3,0x01,0x9b,0xf6,0x29,0xd3,0x9c,0xa4,0x11,0x90,0xe4,0x9f,0x04,0xd6,0x21,0xec,0xfd,0xcb,0xb8,0xe6,0xb6,0x49,0x2b,0xfa,0x4b,0x90,0x9e,0xc6,0x0c,0x87,0xff,0x5e,0x2e,0xcc,0xf8,0x09,0x70,0x52
+.byte 0x42,0xec,0x88,0xac,0x1e,0x76,0x2b,0xeb,0xfc,0xb3,0x65,0x81,0x34,0xb1,0x06,0x90,0xde,0xb2,0xc4,0xd3,0xfd,0xd4,0x9c,0x78,0x1a,0x5c,0x8f,0x65,0x0a,0xbd,0x88,0xe5,0x95,0x06,0xb5,0x94,0xe5,0xbf,0x90,0x31,0xbb,0xcb,0xce,0x19,0x51,0x25,0x4a,0x47,0x35,0x26,0x93,0xdb,0xe2,0x93,0x36,0x47,0x7d,0xdd,0x4e,0xd5,0xeb,0xdd,0x63,0x1c
+.byte 0xbc,0x2d,0x75,0xdb,0xd4,0xfa,0x60,0x4b,0x51,0x45,0x32,0x0f,0x01,0xf9,0x73,0x9b,0xd8,0xbc,0xee,0xaa,0x7d,0x2e,0xfe,0xbf,0x9d,0x45,0xae,0xe2,0x01,0xe3,0xbf,0x58,0xdc,0xc0,0xb8,0xe8,0x44,0x16,0x3b,0xd8,0xaa,0x3b,0x13,0xca,0xfb,0x5f,0x8d,0xb3,0x2a,0x83,0x66,0x49,0xae,0x54,0x02,0x4e,0xd8,0x68,0xee,0x21,0x1a,0xbb,0xf4,0xf7
+.byte 0xdf,0xf1,0x51,0x7b,0x62,0xa8,0xb2,0xdc,0x4b,0xd4,0x04,0xd2,0x05,0x49,0xdd,0xa4,0x75,0xe6,0x64,0x82,0xe7,0x25,0x55,0x60,0x2c,0x9f,0x8a,0x7a,0x11,0xe9,0xf2,0x72,0xfe,0x89,0xe1,0xaf,0xca,0x0c,0xb9,0xf5,0xcc,0xcf,0x07,0xef,0x8f,0xbb,0xef,0x53,0x1e,0xe2,0xfb,0x98,0xe8,0x05,0xab,0x4e,0x7e,0x38,0x56,0x24,0xd5,0x74,0x1c,0x95
+.byte 0x1a,0x0e,0x62,0x92,0x80,0x16,0x45,0x78,0x2f,0xb1,0xe1,0x83,0x24,0x2b,0x16,0x5c,0x05,0x52,0x17,0xe9,0xe8,0x9e,0x5d,0x63,0x8f,0x77,0xc4,0x89,0x22,0x76,0x43,0x31,0xfd,0x09,0xc0,0x51,0x70,0x57,0x2d,0x51,0x91,0xe5,0x61,0x3f,0x77,0xff,0x17,0xfc,0xa6,0x19,0x9d,0x82,0x46,0x11,0x0c,0x77,0x19,0x2a,0xf5,0x19,0xb4,0x3d,0xa6,0xd4
+.byte 0x8b,0x07,0x4b,0xc6,0xa3,0x1e,0x8c,0xf5,0xe8,0x2d,0xe7,0xcc,0xa1,0x38,0x57,0x66,0x76,0x1d,0xdd,0xe3,0xb9,0x0a,0x1e,0x2c,0xad,0x09,0x07,0x26,0xff,0x7a,0xc0,0xb0,0x51,0x71,0x44,0x6d,0x2c,0x39,0x3d,0xa6,0x14,0x4e,0x74,0x2c,0x54,0x3d,0xfa,0xdc,0x2e,0x0c,0xc4,0x88,0x32,0xda,0xb0,0x9d,0xf4,0x2c,0x0a,0x1b,0xb7,0xb4,0x78,0x6f
+.byte 0x1b,0x6a,0x21,0x03,0x4e,0xe0,0x87,0xa0,0x1c,0xd8,0xe6,0x0c,0x97,0x47,0xde,0x98,0x81,0x3d,0x39,0x93,0x3d,0xcb,0x29,0xa3,0x93,0x8d,0x27,0x5d,0x29,0xb5,0x85,0xc4,0x32,0xd8,0xdc,0x19,0xb1,0x63,0xdc,0x76,0x32,0xc3,0x52,0x9a,0xfd,0x3d,0xff,0xf9,0x94,0x55,0x72,0xbb,0x4d,0xe2,0x42,0xd2,0xf7,0xb2,0xac,0xac,0x5d,0x50,0x95,0xda
+.byte 0x3a,0x87,0xb6,0x0f,0x27,0x72,0x34,0xe7,0xe8,0x9f,0xc7,0xba,0xca,0x8d,0xf3,0xb9,0xa1,0xdd,0xd7,0xa5,0x70,0x3b,0xcc,0x72,0x0e,0x9d,0x85,0x75,0x01,0x11,0xe1,0xc2,0xca,0xcb,0x40,0x3a,0x31,0xf2,0x5d,0x0c,0x63,0xc8,0xbf,0x38,0xde,0x09,0x3b,0x32,0xaa,0x6c,0x07,0xd2,0x2b,0x3b,0x94,0x37,0xd0,0xd9,0xe0,0x4c,0x25,0xa3,0x22,0x64
+.byte 0x05,0xcc,0x69,0x9e,0x73,0xd4,0x46,0x2c,0x73,0x23,0xd0,0x6f,0x09,0xff,0x8b,0xef,0x7a,0x08,0x3e,0xa2,0xa7,0x9d,0xf5,0xc9,0x40,0xd1,0x06,0xd6,0xe3,0x89,0xa5,0xcc,0x9f,0x40,0x67,0x80,0x11,0xec,0x5d,0x23,0x19,0xf3,0x66,0xaf,0x06,0xcc,0xe4,0xb6,0x5e,0x20,0xf7,0x19,0xce,0x1a,0xb6,0x86,0x0d,0x39,0x1d,0xc8,0x0a,0xdb,0x50,0x52
+.byte 0x7e,0x3b,0x96,0x9f,0x05,0xdd,0xd8,0xdf,0x40,0xdf,0xe4,0x66,0x14,0x4d,0x4e,0xb3,0x9f,0x86,0x7b,0xc2,0x99,0xc3,0x8f,0xb9,0xe7,0xc3,0x50,0xa4,0xab,0xb8,0x8e,0xc5,0x28,0xce,0x8b,0x51,0xcb,0xad,0xd8,0x1a,0x23,0x7d,0x12,0xc2,0xaf,0x1a,0x93,0x4c,0x57,0xe9,0x59,0x6a,0x03,0x65,0x81,0x07,0x40,0x84,0x92,0x9d,0x22,0x8a,0x3d,0x27
+.byte 0x39,0x05,0xdd,0xf7,0x20,0xad,0xc2,0x03,0x27,0x87,0x8e,0xc1,0x23,0xad,0xe5,0x59,0x16,0xe7,0xde,0xe4,0x44,0x6b,0x06,0xb5,0x1d,0xaf,0xda,0x08,0x4a,0xfa,0x75,0x1a,0x0b,0x35,0xe8,0x6e,0x29,0xd3,0x79,0x19,0x80,0xb9,0x5f,0x36,0xec,0x43,0x25,0x3c,0xbc,0xcf,0x70,0x0c,0xc7,0x2c,0xbc,0x2e,0x72,0x40,0x73,0x98,0x11,0xc9,0x72,0x9f
+.byte 0xd9,0x95,0x9f,0x8d,0x4a,0x52,0xbb,0x89,0x30,0x5b,0xa2,0x7e,0x0c,0x21,0x11,0xda,0x4e,0xa1,0x7c,0xc1,0x0f,0x95,0x1b,0x5b,0x2e,0xbd,0xae,0x8a,0x56,0x82,0x8f,0x84,0x43,0xdf,0x24,0xac,0x99,0xaa,0x8a,0xaf,0x82,0x33,0xf7,0x0a,0xbf,0x5e,0xfd,0xf2,0x91,0xf0,0xe1,0x5d,0x4e,0xa5,0x16,0x6e,0xb4,0x39,0x8b,0x99,0x32,0x6b,0xc8,0x16
+.byte 0xc1,0x84,0x10,0xc2,0x74,0x54,0xfc,0x02,0x71,0x44,0xfc,0x52,0xfa,0xc2,0x3c,0x8d,0xf7,0x8b,0x1e,0xcc,0x5e,0x43,0x66,0x29,0x29,0x93,0xe7,0xf6,0x9f,0xa8,0xa3,0x35,0xc9,0xde,0xb0,0xbe,0x4d,0xdf,0x8c,0x61,0x5a,0x6b,0x16,0x88,0x33,0x65,0x47,0x98,0xd2,0xf8,0x71,0x09,0x9f,0x00,0xb6,0x9e,0x21,0x37,0x2a,0x0b,0xb4,0x74,0x6b,0x0e
+.byte 0x6e,0x4d,0x14,0x45,0x6c,0x1b,0xa8,0x4c,0xa7,0xc6,0xc3,0x36,0x6e,0x9e,0x63,0x5a,0x36,0x76,0x04,0x06,0x7f,0xdd,0x74,0x24,0x19,0xd8,0xb7,0xbc,0x6c,0x52,0x82,0x67,0x6b,0xd5,0xcb,0x81,0xdf,0xd7,0xe4,0xdd,0x14,0x33,0x71,0xcf,0x6b,0x7f,0xaf,0x66,0x27,0x8a,0x70,0xb8,0x45,0xae,0x8c,0x1a,0x65,0xd3,0x16,0x5c,0x05,0x65,0xd0,0xfb
+.byte 0x07,0xe3,0x98,0xa9,0x94,0x27,0x6c,0xac,0xfc,0xee,0x1b,0x35,0x43,0xd6,0x3b,0x41,0x1c,0x86,0xc0,0x4f,0xf3,0x63,0xf4,0xba,0x4d,0xdf,0x6a,0xda,0xcf,0xb5,0x9f,0x69,0x3f,0x3d,0x0c,0x80,0x79,0x02,0x34,0x4a,0x9a,0xfd,0xb6,0xea,0x0b,0x61,0x32,0x67,0x2d,0x6a,0x6b,0xcb,0xcf,0xa6,0xee,0x6a,0x93,0x11,0x00,0xb8,0x6e,0x27,0x88,0x62
+.byte 0xf7,0x4c,0x7b,0xe1,0x13,0xe1,0x47,0xaf,0x96,0x24,0x3b,0x46,0x8c,0xf4,0xbe,0x13,0xed,0x65,0xe1,0xf2,0x36,0x2d,0xa4,0x6d,0x5e,0xa6,0x93,0xfb,0x64,0x0e,0xbd,0x50,0xdc,0x29,0x4f,0x90,0x8e,0xe1,0x7f,0x5e,0x47,0x08,0x9b,0x1c,0xb7,0xce,0x06,0x80,0x52,0xc0,0xb5,0x82,0x77,0x49,0x3c,0xe0,0x70,0x1f,0x84,0x75,0x9e,0x19,0xb2,0x83
+.byte 0xda,0x40,0xf8,0xd7,0x27,0x1e,0xbc,0x39,0xb5,0x1d,0x25,0x75,0x63,0x7d,0x85,0x2f,0x09,0x07,0xe9,0x73,0x8e,0x2b,0xb8,0x9a,0xbe,0xd6,0x90,0x91,0x6e,0xdb,0x7c,0x9d,0x9b,0x43,0x1d,0x21,0x88,0x76,0xb0,0xaa,0x7b,0x68,0xe4,0xa7,0x92,0x64,0xe4,0x1f,0xff,0x53,0x1d,0xf7,0xc0,0x44,0x5c,0x0a,0x1e,0xcd,0xa7,0x6e,0x41,0x1c,0x8c,0x7d
+.byte 0x66,0xa7,0xf6,0xfc,0xa9,0x0d,0x3f,0x9c,0xfb,0x15,0x87,0x14,0x20,0x43,0x1b,0x05,0xf5,0xea,0x5c,0x07,0x61,0xb3,0x0e,0x7c,0x52,0x57,0x1c,0x09,0x33,0xb4,0xd8,0x3d,0x9d,0x17,0xee,0x86,0x25,0xdc,0x6b,0xcd,0x58,0xb7,0x18,0xbd,0x85,0x39,0x0b,0xb9,0xb8,0x35,0x3a,0x86,0xbb,0x88,0xb5,0x5e,0x4b,0x0a,0x7e,0x9c,0x02,0xb5,0x45,0xe5
+.byte 0xc7,0x38,0x56,0x1e,0xe4,0xe7,0xf7,0x88,0xac,0x75,0x9a,0x97,0xa8,0x15,0xb6,0x2d,0xcf,0x2a,0x59,0x65,0x0e,0x00,0x9f,0x8e,0xa9,0x94,0x23,0x1c,0x40,0xe4,0xb9,0x6b,0xcf,0xf0,0x53,0x7f,0x98,0xd1,0xa7,0x72,0xd7,0xe3,0x22,0xfd,0x5f,0x3d,0x3f,0xd6,0x21,0xb4,0x84,0x0c,0x1b,0x1d,0x00,0x2d,0x8f,0x72,0x22,0x2d,0x2c,0x8c,0x54,0x46
+.byte 0xe5,0x53,0xca,0x66,0x67,0x5e,0xb3,0x62,0x6f,0xaf,0x33,0x81,0xc1,0xf6,0x77,0x92,0x3e,0xdb,0x74,0x68,0x93,0xca,0x38,0xf8,0x18,0x50,0xef,0xe4,0xc9,0x45,0x40,0xc9,0xf0,0xc5,0x7a,0x4b,0xf2,0xd8,0xca,0x72,0x62,0x5f,0x67,0x10,0x10,0xcc,0xff,0x1a,0xc7,0x9c,0x3a,0x7f,0xca,0x11,0x67,0x3e,0xca,0xa6,0x9c,0x48,0x15,0xaf,0x68,0xb7
+.byte 0x2b,0xa7,0xa2,0x68,0x7b,0x40,0xb2,0xe3,0x27,0x18,0x7e,0x94,0x4c,0xca,0x0e,0x5b,0x3a,0x30,0xcb,0xc3,0x72,0x31,0x6b,0xe6,0x3e,0xa7,0x09,0x3e,0xf2,0x53,0xda,0x7d,0x6f,0x55,0x08,0xd2,0x26,0xc3,0x07,0x52,0x38,0x90,0x04,0xc6,0x3c,0xb6,0xb5,0x2a,0x7b,0x38,0x07,0x9e,0xb4,0xa5,0x48,0x36,0xf5,0x5e,0xac,0xa8,0x97,0x4e,0x37,0xc2
+.byte 0xee,0x12,0x88,0x28,0xd0,0x7d,0xd1,0xae,0xc0,0xc7,0x84,0x69,0x25,0x79,0x9a,0x8a,0x16,0x49,0x50,0x72,0x69,0x1a,0x02,0xc9,0xfe,0xd5,0x2c,0x40,0xc6,0xc8,0x8b,0x7d,0xe3,0xab,0x89,0xe3,0x78,0xf1,0xe9,0xbd,0x3c,0xbd,0x02,0x96,0xfe,0x0c,0x5c,0xc4,0x9e,0x89,0x3a,0x4b,0xe9,0xcd,0x41,0x1c,0x59,0x71,0x52,0xb0,0xc9,0x36,0xf1,0x80
+.byte 0xab,0x5e,0xbc,0xf1,0x20,0x99,0xc0,0xab,0x0c,0x59,0x43,0xc2,0xcd,0x09,0xa6,0x30,0x91,0xfa,0x12,0x23,0xbe,0x18,0x24,0xa6,0xbf,0x55,0x4c,0xe8,0x22,0xff,0x01,0xbd,0xde,0x2c,0x72,0x3c,0x0a,0x36,0xd5,0x7e,0xed,0x6a,0xe3,0x63,0x14,0x60,0xa3,0x0a,0x6f,0x04,0x90,0x64,0xc1,0xd1,0x78,0x54,0xae,0x19,0x74,0xe2,0xea,0xec,0x86,0x22
+.byte 0xc7,0xdb,0xf6,0x48,0x0e,0x75,0x43,0x04,0xf7,0x62,0xe6,0xa9,0x46,0x65,0xcc,0xa5,0xa4,0x1a,0xb2,0x94,0x7b,0x7a,0x8c,0x9a,0x80,0x62,0x32,0x17,0x80,0xc3,0xc6,0x54,0x0e,0x4e,0xe3,0x46,0x74,0xa8,0xae,0xcd,0xd0,0xc1,0x19,0x84,0x61,0xb4,0x1d,0x18,0x4d,0x80,0xf1,0x70,0x40,0xbe,0xa2,0xa3,0x38,0xcc,0x21,0x1c,0x2f,0x72,0x85,0x72
+.byte 0x0a,0xa1,0x0d,0xa3,0xdc,0xa2,0xf4,0x64,0x84,0x3c,0x43,0x6d,0xfb,0x45,0x11,0xf9,0x40,0xdc,0x25,0x85,0x80,0x41,0x84,0xa7,0x06,0x2e,0x79,0xbf,0x0c,0xa7,0x8f,0x17,0xea,0xa2,0xc4,0x6f,0xd8,0xc6,0x9e,0xab,0xdc,0x45,0x6f,0xaa,0xda,0xe9,0xe6,0x84,0xf0,0x5f,0x8a,0x90,0x99,0x33,0x9b,0xcf,0x03,0xe6,0xce,0x19,0x0c,0xad,0x2f,0xad
+.byte 0x81,0xb8,0x17,0xff,0x6b,0xff,0xc8,0x14,0xa6,0xf4,0x37,0x55,0xdc,0xbb,0x09,0x3c,0x3c,0xe7,0x29,0x95,0x23,0x5c,0x58,0x92,0x2e,0x95,0xe8,0x3b,0x8b,0x81,0x2d,0xfd,0x58,0x8a,0x1f,0xdf,0xf1,0x54,0xa3,0xd0,0x01,0xaa,0x3d,0x32,0x61,0xe5,0x8e,0x62,0xa7,0xf6,0x3b,0x2d,0x0e,0xff,0xf4,0xe9,0x08,0xe7,0xef,0x3a,0x63,0x10,0x34,0x49
+.byte 0x14,0xe1,0x88,0xd0,0xb2,0x1d,0xb7,0x31,0xc9,0xa4,0x48,0xa8,0xaf,0x64,0x29,0xab,0x1f,0x14,0x13,0xa7,0xb8,0xb8,0xa4,0x24,0x1d,0xf9,0xb6,0x3e,0x62,0xa6,0x5e,0x10,0xcb,0x44,0x5c,0x9d,0x2c,0x58,0x3a,0x36,0xa3,0x81,0x9f,0xa9,0xa4,0xa1,0x06,0x1d,0xbf,0x97,0x03,0x88,0xf2,0xf4,0x81,0x3e,0x1b,0x35,0xea,0xd0,0xb6,0x96,0xa1,0xf7
+.byte 0x1e,0x49,0xb7,0xe8,0x23,0x6f,0x05,0x7c,0x9f,0xc4,0x53,0xb1,0x63,0xdc,0x07,0xbb,0xd6,0x57,0x85,0x4d,0x77,0x33,0x21,0xbf,0x77,0xfe,0xfe,0x34,0x52,0x02,0xe7,0xe4,0x87,0x11,0xa0,0xfd,0x11,0x4a,0x34,0x36,0x88,0x69,0xdf,0x77,0xfd,0x83,0x71,0xa8,0x68,0xed,0x49,0x39,0xb4,0x06,0x32,0x48,0xf1,0xd2,0x4e,0x61,0x47,0x65,0x26,0x87
+.byte 0xba,0x2b,0x2e,0xf4,0x12,0xfc,0xd0,0x84,0x81,0xa1,0x59,0xdc,0xe3,0x13,0x51,0x9e,0xea,0x57,0x56,0x3b,0x7c,0x71,0x6b,0xff,0xe9,0xf8,0xec,0x3e,0xe7,0xbe,0x65,0x47,0xe1,0x6f,0x8f,0x7c,0x3a,0x77,0xdb,0x75,0x4a,0x43,0x43,0x39,0x37,0xb2,0x68,0x16,0x72,0xdb,0x49,0xf7,0x13,0x3c,0x09,0x93,0xef,0xc1,0x2a,0x99,0xff,0xc7,0xdb,0xd9
+.byte 0x80,0xd2,0xfe,0x7c,0x39,0x50,0x21,0xdc,0x1d,0xae,0x9b,0xfc,0xd4,0x5f,0x56,0xae,0x6a,0xd9,0x35,0xa1,0x2b,0xd6,0x53,0x90,0xe8,0x8c,0x31,0x73,0x0f,0xa3,0x9e,0xa1,0x2f,0x76,0xa8,0x72,0x4d,0x5e,0x58,0xca,0x9f,0x8f,0xdf,0xf0,0xf9,0x6a,0x54,0xb1,0x5f,0x39,0x03,0x7a,0x26,0x06,0x71,0x74,0x6f,0x42,0xee,0x63,0x76,0x13,0xb9,0xed
+.byte 0x74,0xad,0xf9,0xe0,0xa7,0x35,0x9c,0x18,0xe0,0xf7,0xc5,0xb2,0x27,0x14,0x0f,0xd7,0xaa,0x17,0x1c,0x8f,0x50,0xc8,0xb0,0xc2,0x63,0xff,0x38,0x65,0x87,0x69,0xb3,0xd5,0x3f,0xb4,0xf2,0xe8,0x8b,0x7b,0x24,0xdc,0x1f,0x62,0x2f,0x0a,0xd7,0x2d,0x0f,0x6f,0x48,0x1d,0xf0,0x3c,0xb1,0xb4,0x10,0x8d,0xc6,0x5c,0x79,0x30,0xde,0x20,0x9e,0x7b
+.byte 0xf1,0xa5,0x73,0x38,0x05,0x1b,0x13,0x78,0xb1,0x02,0x2f,0x32,0x2a,0x07,0x59,0xa4,0xfc,0x88,0x08,0x0c,0xff,0x42,0x72,0x6a,0xb0,0x8a,0xc9,0x3d,0xdb,0x04,0x90,0xdd,0x0b,0xbc,0x3a,0x4e,0xfa,0xd4,0x57,0xd8,0x2f,0x7b,0xcb,0xd9,0x6a,0xe7,0xfd,0x32,0x17,0x99,0x20,0x64,0x1e,0x76,0x07,0xb9,0xa3,0x58,0x7f,0x79,0xda,0x0c,0xe0,0xec
+.byte 0x30,0xbf,0xa4,0x85,0x0a,0x39,0xc0,0xe9,0xf7,0xbe,0xd1,0xa7,0x94,0x1f,0xa6,0x6d,0xe8,0xc5,0x1b,0x04,0x27,0xf4,0xdc,0xc2,0x4d,0x9a,0x0e,0x9b,0xe8,0xec,0x56,0x99,0x90,0x5f,0x8b,0x28,0x0a,0x92,0xaf,0x0b,0xa1,0xd2,0x85,0x86,0x26,0xc7,0x8a,0x01,0xa4,0x08,0x29,0x32,0x7d,0x3d,0xa5,0x74,0x9c,0x90,0x63,0x83,0x1f,0xd4,0xee,0x98
+.byte 0xf5,0x14,0xff,0x39,0xeb,0xbf,0x40,0xa4,0xc9,0x70,0x4f,0x81,0x03,0x19,0xef,0xf5,0xdf,0xf7,0x00,0x75,0xcb,0x2e,0x81,0x41,0xc5,0xda,0xfb,0x67,0x6a,0xf0,0xa3,0xd3,0x5a,0x60,0xaf,0x72,0x27,0x3e,0xad,0x37,0x3e,0x3d,0xe6,0x85,0x4c,0xa1,0xb0,0xe9,0xab,0xc5,0xd3,0x8b,0x04,0x0d,0x64,0x7f,0xa2,0xb9,0x6d,0x6d,0x28,0xf8,0x4b,0x43
+.byte 0x78,0x51,0xf4,0x84,0xf1,0x3c,0x67,0xd8,0xdd,0xd7,0x0b,0x67,0xc3,0xd9,0x95,0x7b,0xfc,0x7d,0xc4,0x33,0x05,0x90,0xec,0x0a,0x98,0xfb,0x6b,0x0d,0xe9,0x8c,0x74,0x94,0x20,0xf8,0xcb,0xca,0xb6,0x72,0x07,0x7c,0xef,0xfa,0xd0,0x3f,0x51,0xc5,0x6e,0xf8,0x3f,0x37,0xe3,0xfe,0xb9,0x9a,0x9c,0xb3,0xf6,0x96,0x4e,0x65,0x77,0x21,0xcf,0xaf
+.byte 0xe7,0x20,0x06,0xc2,0x93,0xc5,0x2e,0xc0,0x7f,0xe5,0x0a,0x42,0xad,0x89,0x64,0x6e,0x95,0xbf,0x95,0x1d,0x24,0x47,0xf8,0xd5,0xec,0x7c,0x1f,0x98,0x67,0x9c,0x5f,0x6e,0xaf,0x74,0x95,0x65,0x4c,0xb6,0xe0,0xd3,0xb7,0x5b,0xc7,0x76,0xe6,0x87,0x19,0xf5,0xc7,0xb0,0x2d,0xe0,0x8b,0xaf,0x6d,0x3c,0x31,0x6e,0x84,0xc8,0x86,0x51,0xff,0x29
+.byte 0x2a,0x1f,0xea,0xd4,0x2d,0x1a,0x8f,0x04,0xb4,0xc0,0x6a,0x93,0xc2,0xc5,0xe7,0x98,0x8c,0xc7,0xff,0xbf,0xb8,0x8e,0x5b,0x29,0x5b,0xa6,0x87,0xc7,0x02,0x88,0x51,0x29,0x66,0xd8,0xf3,0x68,0x38,0xd4,0xa6,0xbd,0xa2,0x5c,0x1b,0xb7,0x13,0xd7,0x64,0xed,0x68,0x21,0x88,0x2b,0x59,0xba,0x95,0x84,0xda,0xce,0x61,0x3b,0x51,0x04,0x3e,0xc2
+.byte 0xdd,0xec,0x0c,0x6b,0xbe,0x35,0x51,0x63,0x29,0x40,0xcb,0xa5,0x62,0xe4,0x27,0x35,0x15,0x1f,0x7c,0x8b,0xe5,0xd0,0x2e,0xde,0x8c,0x3d,0xa0,0xd2,0xbe,0x51,0x3d,0x65,0xed,0x94,0x8b,0x8c,0x00,0xda,0x0e,0x78,0x4d,0x25,0xef,0x8e,0x3c,0x55,0x77,0xeb,0x58,0x06,0x7d,0xd1,0xfc,0x73,0xad,0x76,0x0a,0x81,0xbe,0xda,0x50,0x30,0xf3,0xfd
+.byte 0x58,0x25,0x0a,0x4b,0x1b,0x1e,0x0b,0xd0,0x9b,0xbc,0xb9,0x31,0x26,0xbc,0x4c,0x7b,0x05,0xd7,0x5c,0xe4,0x7a,0xdd,0xff,0x04,0xac,0x5d,0xcb,0xfd,0x91,0x34,0x68,0x26,0x1e,0xb4,0x86,0xcc,0xe3,0x90,0xaf,0x6a,0x65,0xda,0x6b,0x3e,0xec,0x44,0x90,0x72,0x7a,0x34,0xfc,0x7b,0x65,0x83,0x34,0x93,0xbc,0x85,0x50,0xdf,0x03,0x89,0x35,0xb8
+.byte 0x6a,0x39,0xd3,0xb6,0x38,0x66,0x5b,0xa7,0x9e,0x93,0xa2,0x3b,0xb6,0xe7,0xee,0x1e,0x5c,0xd6,0xa8,0xd9,0x1f,0xf7,0xd1,0x0a,0x2f,0x87,0x63,0xf4,0xf9,0x8c,0xd4,0x7c,0x02,0xaf,0x7e,0xb6,0xc7,0xfc,0xc9,0x4d,0x35,0x0c,0x8c,0x3c,0x13,0x9d,0xe6,0xd7,0x2e,0x4b,0x91,0xcc,0x88,0xdb,0xfc,0x68,0x3a,0xd1,0x15,0x07,0x16,0x66,0x11,0x9b
+.byte 0x66,0x9f,0x3f,0x37,0xae,0x11,0xba,0x5f,0xc7,0x3a,0x1a,0x49,0xbc,0x14,0x21,0x75,0xdc,0xcc,0xbb,0x5c,0xed,0xdc,0x8b,0x21,0x9a,0x8f,0x5f,0x91,0x6a,0x9b,0x26,0x33,0x64,0x45,0xa0,0xdf,0xc4,0xa1,0x32,0xc4,0x4c,0xc2,0x42,0x1b,0x59,0x37,0x1f,0xdb,0x01,0x6d,0xed,0xd8,0x05,0x5b,0x90,0x59,0x32,0x45,0x50,0x5d,0xf1,0x34,0xc4,0xb7
+.byte 0x52,0x97,0xbb,0x42,0x12,0xf1,0xa5,0x76,0xe4,0x1a,0xbc,0x4a,0x64,0xd3,0x08,0xac,0xe1,0x49,0x70,0x61,0xc8,0xcf,0xb1,0xd3,0xc4,0x7f,0x38,0x31,0x6b,0xd3,0xe1,0xe1,0xe9,0x5b,0xaa,0x7a,0xec,0x26,0x81,0x44,0xd3,0xb9,0x63,0xea,0x37,0x98,0x15,0x41,0xf1,0xa1,0x72,0x87,0xcc,0x3b,0x6a,0x27,0x9b,0x85,0xa8,0x7b,0xb6,0x25,0xf9,0xd4
+.byte 0x84,0x3e,0x66,0x12,0xce,0x24,0xee,0x22,0x51,0x73,0x7e,0xba,0x1e,0x95,0x64,0xc5,0xbf,0x4e,0x4f,0x73,0xc1,0xc3,0x98,0xb9,0x6b,0x90,0x1f,0x39,0xfc,0x03,0x55,0x76,0x8c,0x57,0xea,0xe8,0xc1,0x25,0x09,0x69,0xc0,0xe8,0x54,0x91,0xc1,0x7c,0x52,0x8e,0x82,0x6d,0xf2,0x0e,0x3f,0xa9,0x98,0x04,0x40,0xda,0x1c,0xc0,0xbb,0x42,0xf0,0x7d
+.byte 0xed,0x78,0xb0,0x4f,0x94,0xba,0x0d,0xbf,0x60,0xbe,0x09,0x67,0x42,0xc5,0x41,0x4c,0x80,0x8d,0x30,0x10,0xa9,0xd2,0x07,0x8c,0xa8,0x40,0xc6,0xe2,0x08,0x42,0x7f,0x99,0xad,0xc5,0x66,0x1f,0xfd,0xd2,0xc5,0x79,0x77,0x9b,0x60,0x7d,0x25,0x2d,0x69,0x14,0x94,0xa5,0xf0,0x0a,0x14,0xb6,0xf9,0xbe,0x3a,0x4a,0x3d,0xc6,0x45,0x2e,0x27,0x4a
+.byte 0xd1,0x1d,0xcf,0x08,0xee,0x93,0x3c,0xb5,0x8a,0xee,0xdd,0xf3,0x33,0xa6,0x35,0x9d,0xd8,0xb4,0x68,0xc5,0x98,0x09,0x78,0xcc,0xb3,0xeb,0x0f,0xcd,0x25,0xf8,0x17,0x9c,0x45,0x77,0xc7,0x06,0x40,0x44,0x90,0xec,0x6a,0xd9,0xf5,0x05,0xd4,0x88,0x17,0x47,0xeb,0x29,0x85,0x32,0x76,0x7b,0xa4,0xe3,0x65,0x30,0x50,0x9a,0x99,0x26,0x91,0x60
+.byte 0xb0,0xb8,0xe5,0x8d,0x35,0x9e,0x9a,0x13,0x65,0x82,0xb2,0x4b,0xf1,0xed,0x1f,0xb7,0xb4,0xc0,0x03,0xe6,0x1d,0x2b,0xaa,0x1e,0x01,0x92,0x0b,0xcb,0x34,0x77,0x80,0x94,0xc2,0x4e,0x3b,0x73,0xd8,0x2e,0xd8,0x95,0x33,0x05,0x65,0xa2,0x99,0x29,0x7a,0xd1,0xb3,0xed,0x5a,0x8d,0x4d,0x6a,0x6d,0x69,0x2b,0x5a,0xa1,0x3a,0xc0,0x81,0x96,0xf1
+.byte 0xc2,0xa7,0x4e,0x07,0x90,0x04,0x99,0x70,0xea,0x1a,0x3a,0x26,0xb5,0xed,0x92,0xbd,0x57,0x80,0x11,0x06,0xf2,0xb4,0x05,0x69,0x7a,0xbf,0x27,0xa1,0xbd,0xdb,0x09,0xe5,0xb3,0x2d,0x86,0x41,0xcc,0x5d,0x68,0x37,0x9e,0x98,0xa5,0x4a,0x20,0x8a,0x5f,0x54,0xae,0x4f,0x73,0xd0,0x22,0x18,0x8d,0x2b,0x91,0xcb,0xbb,0x83,0x1e,0x04,0x93,0xc8
+.byte 0xc3,0x89,0x35,0xfd,0xda,0xeb,0x52,0x53,0x9f,0xdc,0x33,0xf0,0xe0,0x99,0x19,0x11,0xeb,0x55,0xd3,0x3c,0x5f,0xca,0x29,0x52,0xe7,0x6b,0xd1,0xad,0xeb,0xed,0x8e,0x68,0x82,0x91,0x85,0x81,0x68,0x70,0x78,0x61,0x1e,0x0c,0x09,0x3a,0x82,0xdc,0xdb,0x26,0x66,0x1c,0xa3,0x80,0x99,0x23,0x8a,0x45,0xd7,0xb8,0x10,0x97,0x80,0x70,0x49,0x78
+.byte 0xa9,0x4c,0xf0,0xec,0xcc,0x05,0xd0,0x6a,0x6a,0x1a,0xa0,0xf7,0xde,0x78,0xc6,0x42,0xbe,0xbd,0xa0,0x24,0x1d,0x3f,0xdd,0xfb,0x92,0xc2,0xbd,0xd6,0x5c,0x25,0x74,0x3d,0x2b,0xb8,0x60,0x67,0xdb,0x70,0x1e,0xe8,0x9f,0xcd,0xb4,0x82,0x90,0x9e,0x2a,0x94,0xa5,0xa2,0xd4,0xd2,0x24,0xa7,0xca,0xbf,0xe1,0x8b,0xab,0xf3,0xd2,0x7c,0xa6,0xc8
+.byte 0xe6,0xaf,0xef,0xe3,0x86,0xb1,0x42,0x1d,0xc6,0xa2,0x37,0x9b,0x26,0x46,0x0b,0xfd,0xee,0x88,0xa4,0xf1,0xa8,0x72,0xaf,0xda,0x30,0x56,0x22,0xd3,0x1b,0x31,0x76,0xd7,0x03,0xef,0xf3,0x98,0x16,0x4d,0x36,0x57,0x1b,0xd5,0x90,0xb8,0x67,0x50,0x7f,0x22,0xa8,0xdc,0x9c,0xf1,0x6e,0xa4,0x65,0x45,0xf0,0x73,0xd8,0x7e,0x41,0xb0,0x68,0x52
+.byte 0x00,0x0a,0xda,0x99,0x6c,0x84,0xce,0xf0,0x73,0x65,0x93,0x52,0xc8,0x4b,0xb4,0x72,0xda,0x2c,0xa1,0x47,0xb5,0xe3,0x00,0x63,0xc0,0x4e,0x84,0x16,0x00,0xe6,0x1f,0xbd,0xba,0x49,0xcb,0xd3,0x7d,0xd2,0xeb,0x4a,0xb2,0xd5,0xb2,0x53,0x96,0xfb,0x04,0x73,0xc0,0x09,0x31,0xf3,0xf2,0xc0,0xd3,0xa6,0xe1,0xea,0xe1,0x58,0xbe,0x90,0xc9,0xfb
+.byte 0x6e,0x13,0x69,0xbe,0x17,0xd4,0x16,0x5b,0xcb,0xf4,0x93,0x0a,0x38,0x46,0xea,0x64,0xad,0xb0,0x0d,0xc0,0x3b,0xfc,0xe3,0xd4,0x20,0x75,0x0c,0x3e,0x71,0x1b,0x5f,0xde,0xff,0xd6,0xfa,0x6f,0xe4,0x10,0xb0,0x14,0x05,0xaa,0x05,0x70,0x5e,0xbd,0x58,0x9f,0x3c,0x9d,0x4f,0xa7,0x5a,0x65,0x57,0x02,0x05,0x44,0xe0,0x95,0x9d,0xa2,0x60,0x06
+.byte 0xcb,0xfd,0x91,0x8e,0x7f,0xce,0xa1,0x80,0x94,0xbb,0x88,0xf2,0xa6,0xe7,0x83,0xf9,0x38,0x8f,0x09,0x8e,0xe4,0xa9,0xc2,0xc7,0x84,0x9d,0x25,0x09,0x52,0x8b,0x32,0xaa,0x3b,0xde,0xb6,0x82,0x9f,0x6d,0xc4,0xdf,0x11,0xf7,0x72,0x1a,0xe4,0x00,0x51,0x41,0x01,0xba,0x21,0xea,0x0a,0xda,0xf2,0xbb,0x66,0xae,0x51,0x2b,0xb0,0x6d,0x1d,0xe8
+.byte 0x4b,0x1e,0x42,0x68,0x3a,0xed,0xe6,0x59,0x13,0x42,0x07,0x54,0xae,0x2e,0x15,0x93,0xd7,0xff,0xad,0x49,0x09,0x41,0x52,0x6b,0x3b,0x9c,0x41,0x43,0x0d,0xed,0xed,0x6f,0xb8,0xe9,0x0d,0xcc,0xde,0x0d,0xaa,0x91,0xef,0x89,0x2f,0x2d,0x94,0xd0,0x03,0x2b,0x51,0x7f,0x85,0x9b,0x7b,0x08,0xc8,0xb6,0xe2,0x82,0x22,0xa9,0x57,0x71,0xf2,0xae
+.byte 0x08,0xfa,0x6c,0xd8,0xca,0x78,0x42,0x98,0x23,0xfd,0x38,0x4b,0x6c,0xd3,0x9f,0xc6,0xa3,0xb2,0xc1,0x8c,0x4a,0xa3,0xcd,0x9f,0x56,0xe7,0xc2,0x06,0xd7,0xc5,0xc2,0xd9,0x98,0x57,0xc8,0x5a,0xaa,0xf4,0xaa,0x44,0x02,0x83,0x11,0x1e,0xf6,0x64,0x8d,0xf7,0x3b,0x86,0x3c,0x04,0x53,0x5f,0x62,0xc8,0x7a,0x0e,0x1c,0x4f,0xa8,0xe3,0x5c,0xe8
+.byte 0x64,0xf7,0xe3,0x5d,0xea,0xb5,0x2d,0xdb,0x7b,0x0e,0xdb,0x91,0x34,0xd5,0x87,0x4f,0xe6,0x73,0xee,0x3d,0x79,0x7c,0x67,0x48,0xb5,0xbb,0x42,0x96,0x0d,0x9d,0xbd,0x68,0x98,0xe5,0x59,0x51,0x16,0x45,0x15,0xac,0x80,0x41,0xae,0x45,0xdb,0xe4,0x2a,0x44,0x0d,0xe4,0x25,0xc7,0xd3,0x06,0xf7,0x98,0x15,0xe1,0xc5,0x9b,0x34,0x0e,0x87,0xb8
+.byte 0x90,0x1b,0x24,0x84,0x06,0x24,0xb0,0x80,0xbe,0x03,0xa0,0x95,0x10,0x1e,0x72,0xde,0x0f,0xd4,0x15,0x7b,0xa0,0xf5,0x42,0xc3,0x6f,0x10,0xe9,0x76,0x44,0xe3,0xa9,0xb7,0xef,0xf6,0xc2,0x80,0xe2,0x0c,0x2d,0xad,0xe0,0xb9,0x45,0xca,0x67,0x6f,0xb6,0xc5,0xc0,0x8d,0x25,0xee,0x50,0xeb,0x51,0xc6,0x87,0x87,0x61,0x3a,0x75,0x95,0x41,0x47
+.byte 0x26,0xfd,0x35,0xf6,0x46,0xf4,0xe9,0x42,0xc6,0xef,0x37,0x97,0xb3,0x0a,0x1d,0xc8,0xdf,0x07,0x24,0xb1,0x0d,0x07,0x43,0x67,0x7d,0x81,0x09,0x58,0xdd,0xf6,0xcf,0xf1,0x47,0x42,0xbd,0x3c,0xa3,0xd7,0xe8,0x73,0xf9,0x5b,0xff,0x2c,0xcd,0xe6,0xd1,0xe9,0x47,0x6d,0x19,0x9b,0x6a,0x63,0x69,0xf4,0x4a,0xdf,0x69,0xab,0xa9,0xb7,0xe5,0x8d
+.byte 0x1c,0x44,0x52,0x0c,0x7e,0xa1,0xfe,0x9d,0xd5,0xa4,0x71,0x62,0x0b,0x3c,0xf6,0xd2,0xd3,0xe9,0x70,0x09,0x68,0xf7,0xd6,0x0a,0x00,0x61,0xf1,0xf3,0xd0,0x41,0x4a,0x14,0xc6,0xf5,0x49,0xb1,0xde,0x10,0xd3,0x20,0x8b,0xfe,0x78,0x6a,0x87,0x79,0x15,0xd3,0x43,0x00,0xbe,0x71,0x40,0xaa,0xca,0x1a,0x64,0xe3,0x96,0x34,0x2f,0xea,0x0c,0x11
+.byte 0x41,0x21,0xf8,0xa7,0x65,0x9b,0x75,0xe2,0x1e,0x6f,0x5e,0xe0,0x68,0x42,0xca,0xd3,0x19,0x35,0xe8,0x88,0x0f,0x05,0xa3,0xb1,0x73,0xea,0x53,0x79,0x40,0x24,0x00,0x86,0x20,0xbb,0x25,0x58,0x89,0x6b,0xde,0xd6,0xd0,0x36,0xbb,0x33,0x30,0x59,0x4b,0x30,0x92,0xac,0xe5,0x95,0x94,0x22,0xab,0xc1,0x10,0x35,0x9c,0xa1,0x20,0x11,0x5d,0x4f
+.byte 0x57,0x5c,0x9c,0xb8,0x3a,0xdc,0x97,0xa5,0xf3,0x0b,0xf5,0x96,0xe7,0xef,0x90,0x72,0x01,0x52,0x70,0x5a,0xf0,0xd9,0x7e,0x59,0x05,0x8c,0xd1,0x45,0x47,0xbf,0x16,0x15,0xa2,0xc9,0xdd,0xe7,0x5f,0x4b,0x94,0x5f,0xe6,0xf9,0x78,0xbb,0x8f,0xf9,0x79,0x9f,0x5e,0xd7,0x1f,0x0b,0xef,0x8d,0xfe,0x75,0xd4,0x8a,0x12,0x28,0xa5,0xf9,0x6e,0x14
+.byte 0x3c,0x52,0x80,0x57,0xc6,0x96,0xae,0x67,0x27,0xc1,0x1c,0xb6,0xd6,0x1c,0x74,0x8c,0x6f,0xc7,0x71,0x3e,0xd5,0x73,0xf2,0x3e,0x02,0x15,0x67,0x18,0xb8,0x5b,0x61,0x9e,0xfa,0x7e,0xba,0x00,0xe9,0xd9,0x51,0x91,0x63,0x7e,0xf7,0xab,0xc0,0xc6,0xee,0x66,0xdd,0x66,0x88,0x7a,0x8a,0xc5,0xc2,0x08,0x45,0x62,0xde,0xe1,0xfb,0x35,0x65,0x34
+.byte 0x00,0x9e,0x1d,0x25,0xdf,0x69,0xb6,0xe3,0xfe,0xbb,0x13,0xac,0xd3,0x13,0xb2,0x64,0x5a,0xf3,0x47,0xf1,0x36,0x55,0x5f,0x1b,0x87,0xea,0x5d,0x5c,0xfd,0x8a,0x68,0x69,0x8a,0x00,0x9f,0x83,0xbe,0x79,0x7d,0x01,0x9e,0xf2,0xb2,0x5d,0x56,0xe0,0xe6,0x49,0xe5,0xe1,0x76,0x57,0x7a,0x85,0xac,0x94,0x16,0xe3,0x68,0x05,0x14,0xb5,0x33,0x54
+.byte 0x64,0x5a,0xbe,0xa3,0x04,0x90,0x5c,0x1c,0xf8,0x97,0x16,0x36,0xce,0x76,0xe7,0xf0,0xaf,0x8a,0xea,0x65,0xa8,0x15,0x5b,0x1e,0x0a,0x91,0xad,0x62,0x62,0x67,0xb4,0xf0,0x94,0x1f,0x64,0x50,0xa8,0xc0,0x6b,0x38,0x80,0xd7,0x53,0xbb,0x70,0xbd,0x54,0x01,0xb0,0xa5,0xbc,0x00,0xe0,0xd6,0x23,0x37,0xe6,0x9f,0x0f,0x2f,0x96,0x21,0xc2,0x90
+.byte 0x55,0x26,0x55,0xa4,0xcd,0x3e,0x54,0x6b,0xa6,0xb0,0x2c,0xf2,0xd4,0xcc,0x6a,0x44,0xea,0x18,0x61,0xc5,0x1a,0x8e,0x60,0x64,0xf4,0x5f,0x21,0x36,0x01,0x5d,0x9f,0xc4,0x2c,0x67,0x1c,0x48,0x94,0x16,0xae,0xa8,0x13,0x5c,0xee,0x18,0x88,0x61,0xe4,0x54,0x6b,0xa2,0xe8,0x7f,0xf0,0x15,0xc3,0xce,0xbc,0x5b,0x91,0x25,0x7b,0x1d,0xd3,0x9f
+.byte 0x13,0x1b,0x01,0x5d,0x43,0xe8,0xa1,0x77,0x5a,0x87,0x79,0x8b,0xd5,0x69,0xf7,0xdf,0x66,0xa2,0x84,0x0c,0x66,0xac,0x15,0x65,0xbf,0x74,0xc0,0xd2,0x78,0x6a,0x3a,0x9c,0x98,0x62,0x04,0x41,0x95,0xb2,0x23,0x59,0xc6,0xb0,0xc5,0x22,0xc0,0xfa,0xaa,0xc8,0x94,0x73,0x91,0x5b,0x64,0x1b,0x74,0xbe,0xcb,0xa1,0x81,0xb1,0xc1,0x26,0xa1,0x94
+.byte 0x55,0x04,0xb3,0x9c,0x80,0xb7,0x00,0x6f,0x36,0xc7,0x7f,0x6d,0x97,0xea,0xf3,0xf5,0x55,0xc5,0xfe,0x61,0xd9,0xb1,0x6d,0x8c,0xa1,0x02,0x08,0xb3,0x41,0xe6,0xe6,0x57,0xc6,0xff,0x6e,0x47,0xa4,0x22,0x2e,0x2d,0x21,0x53,0xbe,0xe3,0xbe,0x15,0xec,0x23,0x9d,0x87,0xe0,0x2e,0xcc,0x6c,0xd0,0xc7,0xb7,0x3d,0xa4,0x07,0x5f,0x69,0x4e,0x2b
+.byte 0x07,0x69,0x4f,0xc5,0xa3,0x66,0x52,0x91,0x8f,0xa4,0x48,0xb9,0x40,0x76,0xd9,0xcb,0x6e,0x1a,0x35,0x9e,0x50,0x9f,0xd1,0x78,0xb2,0xb8,0x0d,0xa8,0xf8,0x6e,0x07,0xa5,0x3a,0xdf,0x3c,0x32,0xa6,0x10,0xbd,0x73,0x2f,0x07,0x45,0x66,0x0f,0x61,0xce,0xc2,0x08,0x19,0x98,0x33,0x4b,0x59,0x81,0xb5,0x78,0x4f,0x46,0x88,0xae,0x29,0xf8,0xf5
+.byte 0xc2,0x29,0x6f,0x8f,0xe5,0x8f,0xb0,0x53,0xc8,0x7a,0x48,0xda,0x6f,0x7e,0x8a,0x69,0x68,0xab,0xba,0xd9,0x20,0x0f,0x96,0x69,0x41,0xa6,0x92,0x94,0x8e,0x0f,0x86,0xdf,0x8d,0x70,0xaf,0xfe,0xf1,0x20,0x50,0x01,0xff,0xca,0x30,0x24,0x67,0x4a,0x04,0xa2,0xde,0x06,0xdc,0x26,0x1e,0x17,0xbc,0x52,0x9a,0x62,0x72,0xc1,0xd8,0xd7,0xe0,0xed
+.byte 0xcf,0x4b,0x13,0x80,0x9a,0xbf,0x72,0x4f,0xf4,0x24,0x26,0xcd,0xe0,0x21,0x99,0x7b,0x5c,0x4f,0xbf,0x5c,0x41,0x08,0x8b,0x17,0x69,0x62,0x60,0x2c,0x74,0xb0,0x2d,0x22,0x7e,0x25,0x95,0x6a,0x84,0x0f,0x45,0x8f,0x9a,0x92,0xa1,0xcd,0xa5,0x50,0xf0,0x52,0x7f,0x60,0xd8,0x91,0xe1,0x17,0xe1,0x66,0x8f,0xd3,0x1f,0x41,0x7f,0x6f,0xf1,0x72
+.byte 0xa3,0xb6,0x12,0x62,0x46,0x16,0xea,0x26,0x9e,0xda,0x61,0x13,0x0b,0x17,0xf7,0xe1,0xec,0xc0,0x38,0xfe,0x40,0x31,0x6b,0x38,0x2a,0x4b,0xa5,0x8e,0xfb,0x99,0x60,0xd6,0x4a,0xbd,0xfb,0x75,0x2b,0x41,0xd4,0x33,0x5d,0x35,0xfe,0x2d,0xfc,0x1a,0xac,0x02,0xb3,0xf0,0xa2,0x6d,0xfa,0x8b,0x12,0x99,0xdd,0x54,0xf2,0x1c,0x35,0xd3,0x60,0x5a
+.byte 0xdb,0x65,0xa7,0x58,0x1b,0x82,0xb4,0xf6,0x49,0x77,0xf2,0xea,0xa3,0xa9,0x57,0x94,0xb7,0x6e,0x19,0xda,0x7e,0xa5,0x70,0xb8,0xff,0x39,0x81,0x7d,0xfa,0xea,0xd6,0xc6,0x12,0x84,0x0a,0x8a,0x16,0xde,0x99,0xa6,0xe7,0xe0,0x77,0x76,0xb8,0xa3,0x6f,0xfb,0xb4,0x8f,0xc3,0xbd,0x90,0xd8,0x2a,0x04,0xed,0x42,0x91,0x9b,0x84,0x40,0x2d,0x01
+.byte 0x94,0xdb,0xbb,0x58,0x25,0xed,0xa3,0xdd,0xaa,0x0c,0xce,0x25,0x12,0xcd,0x11,0xbf,0xd0,0x57,0xe9,0x51,0x74,0xa7,0x45,0x6c,0x58,0xe7,0x4d,0x43,0xc6,0xd0,0x09,0x93,0x2d,0xe0,0xe3,0xae,0x7b,0x8f,0x53,0xa0,0x80,0xa1,0xef,0xcb,0xf5,0xfe,0x38,0x4d,0x31,0xa2,0x5c,0xd3,0x4a,0x66,0x1a,0x5c,0x07,0xbe,0x25,0xba,0x30,0xb6,0x00,0x27
+.byte 0x52,0xb9,0x1f,0xa3,0xed,0xd7,0x31,0x33,0x4a,0xf6,0x3f,0xed,0x75,0xe7,0xa4,0xf4,0xdf,0x97,0xc1,0x78,0x90,0x9b,0x4b,0xbd,0x06,0xc6,0x72,0x5c,0xdf,0x57,0x60,0xbe,0xbc,0x88,0x02,0xb6,0x5a,0x65,0xea,0x3a,0x3a,0x74,0x03,0xc8,0x66,0xef,0xf0,0x63,0xc7,0x9d,0x58,0x8e,0xa1,0xb2,0x25,0x4f,0xc4,0x14,0x5f,0x80,0x78,0x08,0x06,0x21
+.byte 0x50,0x34,0x01,0x2b,0x15,0xf4,0x7d,0x1f,0x1f,0x32,0x36,0x0a,0x52,0x1f,0x50,0xa2,0x50,0xbc,0x9a,0xdf,0x4e,0x84,0x49,0x2d,0x08,0xaa,0x46,0xc0,0x0e,0xcf,0x27,0x17,0x91,0x78,0x8c,0xb9,0x72,0xc5,0x8e,0x25,0x85,0x11,0xff,0x2f,0x4a,0x71,0x7c,0x14,0xfe,0x86,0xfe,0xb4,0x3a,0xd0,0x67,0xfd,0xaa,0x9b,0xee,0x89,0x66,0x03,0x59,0x4e
+.byte 0x1c,0x96,0xaf,0x2b,0x8d,0x4d,0x6f,0xf6,0x72,0xc6,0x13,0xc7,0x14,0xce,0x19,0x0c,0x0b,0xa3,0x01,0x12,0x7c,0x8e,0x10,0xb8,0x63,0x41,0x57,0xb9,0xfe,0x6e,0x3e,0xda,0x20,0xfb,0x92,0x08,0x7d,0x66,0x31,0x9d,0x4f,0xdb,0x14,0xf4,0xb6,0xb8,0xea,0xee,0x54,0x0f,0xaf,0xc1,0x99,0xf0,0x8f,0x55,0x44,0x20,0x44,0xd0,0xa6,0x98,0xa3,0xa8
+.byte 0x8b,0x8e,0x26,0x03,0xec,0x2d,0x50,0x4f,0xb0,0x8d,0xd0,0xf2,0x96,0xcc,0x18,0xa9,0xb1,0x0f,0x79,0xe3,0x9f,0x08,0xb3,0x53,0x0b,0x9c,0x9f,0x22,0xdb,0x45,0x57,0xd6,0xaa,0x3b,0x6a,0xcb,0xdc,0xc9,0xda,0x57,0x75,0x65,0x0a,0xc1,0x17,0xb3,0x97,0xa9,0x07,0x40,0x20,0xfb,0x72,0x2d,0xc6,0x37,0x1e,0x44,0xb7,0x7e,0x0b,0x38,0xcc,0xfc
+.byte 0xa0,0xed,0x48,0xa9,0x9b,0x87,0xbc,0x71,0x0f,0x8b,0xda,0x4f,0x09,0x27,0x1e,0x3d,0x9c,0x03,0x62,0x81,0xa8,0x7c,0x7b,0x8a,0x14,0xa7,0x22,0x69,0xa8,0xba,0x0e,0xcc,0x1f,0x2b,0xb3,0x0f,0x7d,0xce,0x3f,0xec,0xb5,0x9d,0xe0,0x3a,0x67,0x56,0x08,0x5d,0x03,0x8b,0x71,0x01,0x44,0x11,0x1b,0x7b,0xcf,0xcc,0x2e,0xfc,0xa5,0x52,0x9b,0xeb
+.byte 0x1e,0x8a,0xa1,0x86,0x64,0xcf,0x32,0x03,0x6b,0x3e,0x29,0xe7,0x9a,0x16,0x7e,0xe2,0x21,0x2f,0x5f,0xe2,0x86,0x7f,0xf8,0x22,0x36,0x10,0x99,0xc8,0x27,0x43,0xa1,0xb9,0xf4,0xb4,0xb8,0xe1,0xa3,0x1d,0x80,0x9c,0x81,0x92,0xef,0x1f,0x28,0x54,0x51,0xf3,0x62,0x9c,0x7a,0x24,0xd4,0x5a,0xdc,0x38,0x4f,0xa5,0x57,0xdd,0x4d,0xa1,0x52,0xf3
+.byte 0xd3,0x9d,0xa1,0x93,0x5e,0xbe,0x9b,0xd1,0x2a,0x52,0xf1,0xbb,0xa5,0x3f,0x3a,0x94,0x7c,0x7d,0x41,0x61,0x36,0x14,0x25,0x5f,0xab,0xef,0x32,0xf3,0x0f,0x6c,0xc5,0xf5,0x5f,0xe5,0x88,0x51,0x17,0x60,0x8b,0xd5,0xa6,0xea,0x8b,0x21,0xec,0x1a,0xa7,0x69,0xa0,0x59,0xf9,0xeb,0x51,0x94,0x70,0x2b,0x96,0x2e,0x71,0xa9,0x8c,0x12,0x15,0xce
+.byte 0x7d,0x59,0x6b,0xf2,0xca,0x2c,0xbd,0x85,0xfb,0x23,0xab,0xcb,0x89,0x89,0xda,0x28,0x49,0x7e,0xfc,0x90,0x2a,0x9a,0x3d,0x6d,0x24,0x57,0xba,0xd9,0x30,0xe0,0x10,0x04,0xb1,0x7f,0x8a,0xcf,0xc8,0x27,0x63,0xd6,0xbd,0xea,0xef,0x90,0x6f,0xc2,0xfc,0x78,0xfd,0xc4,0x5b,0x45,0x0c,0x41,0x8a,0x53,0x5b,0xbc,0x62,0x32,0x86,0x7f,0x19,0xb7
+.byte 0x8b,0x03,0x50,0xed,0xca,0x8e,0x8b,0xa0,0xe3,0xc2,0x0e,0x81,0xe5,0x8a,0xe8,0xf1,0x6a,0x0b,0x1a,0xa7,0xb6,0xed,0x74,0x23,0x34,0xad,0x5b,0xd8,0xf7,0x17,0x8d,0xa5,0x05,0xf3,0x00,0x4a,0xad,0x7e,0x91,0xc9,0x6b,0x13,0xff,0x76,0x78,0xf0,0xd1,0xf4,0x99,0x43,0x73,0xd9,0xba,0x59,0xbe,0xb5,0xa3,0xbd,0x5e,0xc5,0xd3,0x88,0x06,0x9c
+.byte 0x86,0x32,0xb4,0xd5,0x30,0x77,0x78,0x8e,0xd5,0x6a,0x1d,0xeb,0xfd,0x6b,0xe6,0xf8,0x4b,0xe8,0xf3,0xba,0xbb,0x86,0x8e,0xe6,0x63,0x83,0x92,0x23,0x05,0x58,0x2e,0x61,0xdd,0x38,0xad,0x8d,0x19,0x7d,0xfa,0x7c,0x3e,0xc8,0x9f,0xae,0xea,0x6d,0x12,0xf0,0xa4,0x08,0xed,0x12,0x0c,0x97,0x87,0x58,0xd8,0xbc,0x3f,0xde,0x7c,0xee,0x0c,0xc0
+.byte 0xa2,0x2e,0xf0,0x25,0x6d,0xf3,0x30,0x23,0xa7,0xc2,0xc8,0x09,0x67,0x01,0xe1,0x25,0x26,0x46,0x38,0xf5,0x5e,0x55,0x8b,0xd6,0x43,0x6a,0xb8,0xe4,0xdf,0x0f,0x5d,0x6c,0xc3,0xb2,0x56,0x38,0xda,0xbc,0xbf,0x5e,0x85,0x8c,0xd5,0x2a,0x6a,0xe2,0xff,0x4f,0x36,0xf7,0x52,0x2c,0xe2,0xae,0x65,0x65,0xd1,0xfc,0xd3,0xc6,0xf7,0x26,0xa6,0xd0
+.byte 0x0b,0xc8,0xf0,0x68,0x5d,0x07,0x89,0x06,0xb3,0xfb,0x39,0x1d,0xd8,0xd8,0xd7,0x53,0xd0,0xc9,0x76,0x56,0xc0,0xd3,0xf5,0x66,0x80,0x5b,0xff,0x4a,0xdf,0xae,0x52,0x86,0x54,0x24,0x53,0xcf,0xcf,0xd2,0x89,0xde,0x71,0x62,0x9c,0x31,0xa5,0x3d,0x62,0x07,0xa1,0x33,0x49,0xbb,0x06,0x88,0xd8,0xa1,0xdd,0x0e,0x47,0x8d,0x72,0x00,0x2d,0x51
+.byte 0xa3,0x35,0x6e,0xb6,0x1f,0xbf,0xe5,0x42,0x68,0x6f,0x62,0xfa,0xf3,0x12,0xa9,0x1a,0xbd,0xe8,0xa4,0xf1,0x6d,0x07,0xe7,0x70,0x87,0x44,0xb7,0x3d,0xea,0xdc,0x3a,0x24,0xbd,0xa0,0x9b,0xb8,0xc5,0xa8,0xd9,0x06,0xde,0x02,0x68,0x7e,0xd5,0x2d,0x3b,0x5f,0x12,0x31,0x72,0x35,0x77,0xf6,0x10,0x6e,0x81,0x7d,0x3c,0xac,0x95,0x5b,0xbe,0x90
+.byte 0x74,0xf3,0x3e,0x9b,0x07,0x54,0x97,0xe3,0x1d,0xcf,0xe2,0xc5,0x80,0x6b,0x5f,0x0b,0x96,0x00,0x0f,0x0e,0x53,0x36,0x76,0x6e,0x99,0x0c,0x32,0xa2,0xc9,0xaa,0xa0,0xa1,0xb7,0xee,0x9d,0xd6,0x46,0xe7,0x2d,0x10,0x7a,0xf2,0x22,0x50,0x52,0xbf,0xec,0xcc,0xbc,0x0d,0x81,0x55,0x2d,0xac,0x2e,0xf7,0x99,0xbe,0x68,0x09,0xb0,0x11,0xc3,0xc8
+.byte 0xca,0x63,0xa7,0xc2,0x0f,0x37,0x2a,0x9e,0x85,0x79,0x6b,0x44,0xc1,0x4f,0xb9,0xd6,0x6c,0x56,0x0e,0x59,0x33,0xc3,0x00,0x53,0xe2,0xf4,0x30,0x90,0x4e,0x4b,0x09,0x4d,0x6f,0x9a,0x9e,0xb9,0x8d,0x0b,0xa1,0x80,0xfd,0xfb,0xde,0x74,0x49,0x53,0x04,0x3a,0x35,0xcb,0x45,0xe2,0x67,0x2c,0x4d,0x6e,0x39,0x7b,0xbd,0x68,0xaa,0x93,0x1e,0xee
+.byte 0x1e,0x35,0xae,0x1e,0xf2,0xe7,0xb1,0x80,0x92,0x45,0x27,0x85,0xd0,0xc7,0x26,0x17,0x54,0x30,0xba,0x0c,0x8e,0x48,0xf3,0x08,0x51,0xa6,0x41,0x70,0xba,0x5b,0x90,0x69,0x7c,0x64,0x1d,0x61,0xb5,0x23,0x4a,0xef,0x97,0xe4,0x9a,0xd0,0xff,0x47,0x7a,0x93,0x1a,0x28,0xb3,0x8a,0x32,0x29,0xf8,0xe9,0x08,0xc3,0xf3,0x24,0xd7,0x2e,0x18,0x6d
+.byte 0x99,0x40,0x77,0x43,0x9f,0x98,0xe4,0xe5,0x3a,0x34,0x9d,0x46,0x52,0x9f,0x84,0x79,0x8c,0x70,0xbc,0x88,0x30,0xaf,0x87,0x69,0x57,0x6e,0xde,0x2e,0xfe,0x0f,0x3b,0x8d,0xc8,0x95,0xcf,0x69,0x78,0xff,0xa1,0xb1,0x81,0x49,0x1e,0x45,0xc0,0x83,0x1b,0xa3,0x5a,0xee,0x3e,0x9a,0x15,0x7c,0xf0,0xa2,0xfd,0x04,0x22,0x55,0x2d,0x74,0x61,0x29
+.byte 0x0e,0x4f,0x31,0xdb,0x35,0x99,0x37,0xb7,0x7d,0x11,0xde,0x87,0x4f,0x84,0xeb,0x6c,0x14,0xcc,0xbb,0x71,0x47,0xab,0x5b,0x61,0x51,0xeb,0xa1,0xc1,0x5f,0xe4,0x5c,0x3c,0xab,0x04,0xf1,0x60,0x50,0xe1,0xd0,0x58,0xdf,0x42,0xed,0x73,0x5f,0x31,0xdf,0x8d,0xb8,0xb8,0xdc,0x4e,0x2f,0xe3,0x7f,0x89,0x9e,0x62,0xc9,0xef,0xfd,0x60,0xae,0x58
+.byte 0xa9,0xa5,0x8b,0xa8,0x3b,0xd8,0x5f,0xd4,0x09,0xff,0x61,0x8c,0x25,0xde,0x84,0x7f,0x35,0xc9,0x5c,0x2b,0xe8,0x46,0xe4,0x1c,0xbd,0x77,0x51,0x31,0x55,0x3d,0xb4,0x35,0xf3,0xdc,0xa5,0x55,0xd3,0xe3,0x24,0xf9,0x41,0xe2,0xf0,0xbd,0xf5,0xff,0x81,0x87,0x64,0xc9,0xe7,0x69,0x29,0x86,0xaf,0x98,0x33,0x33,0x62,0x9c,0x7b,0x16,0xbb,0xfe
+.byte 0x0b,0xa7,0x92,0xa5,0x7b,0x81,0xbc,0x50,0x88,0xf6,0xe7,0xfc,0x73,0xd6,0x37,0x43,0x09,0xa5,0xc6,0xd6,0x4d,0x28,0xb5,0xaa,0x53,0x52,0x8c,0x2c,0x06,0x64,0x6c,0x21,0x6b,0xe7,0x67,0x4a,0xa5,0xcc,0xa1,0x32,0xf0,0xd9,0x78,0xb9,0xc3,0xdb,0x41,0xee,0x10,0x11,0x81,0x04,0x03,0x73,0x48,0xc6,0x3e,0x60,0x6d,0x82,0xef,0xe2,0xa8,0xe8
+.byte 0xd7,0xda,0xd9,0xb5,0x34,0x42,0xc8,0x1c,0xa7,0xa4,0x8e,0x88,0x2e,0xbc,0x96,0x0a,0xfc,0x40,0x36,0x80,0xdf,0x60,0xe9,0x03,0x02,0x0c,0x51,0xf7,0x7d,0x01,0xd2,0x21,0x38,0x44,0x4b,0x34,0x80,0xbf,0x5e,0xc1,0x86,0xf2,0x35,0xeb,0xa8,0x21,0x15,0x74,0x7c,0x99,0x55,0x64,0xf4,0x48,0xd6,0xd1,0x47,0x1f,0x4d,0xbf,0x0c,0x20,0x5d,0x86
+.byte 0xb9,0xab,0x4e,0xc8,0x86,0x08,0x71,0x1d,0x13,0xf6,0xd3,0x17,0xac,0x61,0x10,0x5d,0x2a,0xb4,0x48,0xa1,0xb9,0x79,0x5a,0x09,0x3a,0x65,0x4c,0xbd,0x97,0xbe,0x48,0xc6,0x66,0xd8,0xce,0x0c,0x19,0xb5,0x44,0x02,0xfa,0xb7,0xa8,0x3f,0x9b,0x86,0xec,0xd1,0xef,0x1d,0x7d,0xb3,0x82,0x5c,0x92,0x48,0x02,0x2c,0x56,0x0f,0xff,0xf7,0x19,0x74
+.byte 0xc2,0x38,0x24,0x8d,0xb2,0x87,0xb6,0xeb,0x49,0x50,0x6a,0x33,0x74,0x4e,0x2a,0xcb,0xf4,0x13,0x2c,0xfa,0x3b,0x0e,0x3d,0x98,0x3e,0x33,0xd9,0x55,0xfa,0xb9,0x74,0xb8,0x6f,0xc1,0xd8,0xfd,0x8f,0xff,0xb9,0x1a,0x17,0xf8,0xb6,0x21,0xc4,0x9d,0x47,0x5e,0x84,0xf6,0xe5,0xbf,0x93,0x98,0xac,0x8f,0x68,0x85,0xf8,0xe8,0x79,0x7f,0x6f,0x0d
+.byte 0x62,0x2c,0xaa,0x1e,0xe4,0xab,0x73,0xf8,0x6f,0x02,0xda,0x6b,0x3c,0x14,0x2e,0xc9,0xdb,0xb0,0x4e,0x39,0xb5,0xcf,0x05,0xae,0x9c,0x63,0x2f,0x6a,0x25,0x61,0x9d,0x40,0xeb,0x7e,0xd8,0x97,0x97,0x33,0x67,0x5c,0x78,0x84,0x68,0xc2,0x7a,0x26,0x58,0xe3,0x6c,0x0a,0x2e,0x6a,0x82,0xd6,0x43,0xed,0x79,0xa5,0x8d,0x4e,0x7c,0xf7,0x80,0x01
+.byte 0xe7,0x02,0x5e,0x3a,0xf7,0x8a,0x4a,0x85,0xe9,0x98,0x1e,0x69,0x33,0xf3,0x54,0x96,0x79,0xc8,0x03,0x0a,0x9f,0x0c,0x5d,0x66,0x44,0x88,0x3c,0xd7,0x9e,0xd1,0xde,0x01,0xfd,0x5e,0xa5,0x6a,0x82,0x00,0x36,0xe6,0x12,0xe3,0x62,0x46,0x45,0x69,0xfb,0x4f,0x44,0x8e,0xe5,0x8d,0x21,0x57,0x6a,0x61,0x8e,0x56,0xcb,0x5b,0x2c,0x5f,0x65,0x41
+.byte 0x2c,0xad,0xf2,0x98,0x34,0xbb,0x06,0x0d,0x8a,0x3c,0x34,0x0d,0xa3,0xe2,0x6e,0x86,0xfa,0xa9,0xfb,0x6f,0xbb,0x32,0xd6,0x0d,0x76,0x6b,0x77,0xf3,0x83,0x41,0xc0,0x80,0x63,0x55,0x47,0xb8,0x13,0x6b,0x99,0x96,0x08,0x9b,0xc0,0x82,0xae,0x49,0x4a,0x51,0x63,0x74,0xf2,0xec,0xfa,0x0d,0xbc,0x3a,0xde,0xf5,0x4b,0x4f,0x08,0x41,0x23,0x88
+.byte 0x14,0x88,0x6a,0x3a,0xf0,0x5f,0x0c,0x45,0x7f,0x65,0x7a,0x67,0xd8,0x17,0xed,0x04,0x47,0x60,0x0e,0x74,0x8f,0xfd,0x48,0xda,0xcd,0xe9,0xfe,0xf5,0x6f,0x43,0xcd,0xa5,0x05,0xa2,0x2e,0x78,0x5b,0xff,0xb8,0x6f,0x2e,0xfd,0x3e,0x4b,0xef,0xcf,0xe0,0x06,0x57,0x28,0xf4,0x2e,0x3b,0xb5,0x9e,0x3c,0xbd,0x63,0xa6,0x78,0x8e,0xd5,0xb8,0x81
+.byte 0x4e,0xf0,0xbf,0x14,0x65,0xc8,0x00,0x9f,0x0e,0x25,0x6a,0x7a,0x63,0x58,0xe4,0xe7,0xa9,0x82,0x16,0xc9,0x86,0x20,0x94,0x71,0x5b,0x9f,0x9b,0xc3,0xc5,0x32,0xb0,0x6c,0x2b,0x8c,0x54,0x67,0x36,0x94,0xb1,0x47,0x33,0xfd,0x9f,0x7c,0x7f,0x7e,0x08,0x51,0x1f,0x7e,0xbf,0x09,0x57,0xf3,0xaa,0x77,0x94,0xf3,0x20,0x1b,0x95,0xf6,0x04,0xb2
+.byte 0x09,0x9d,0xe2,0xbb,0x4d,0xfe,0x6b,0x99,0x06,0x58,0x40,0x84,0x90,0xfa,0x0e,0x9b,0x58,0x6d,0x02,0xbe,0x53,0x73,0xd1,0xc9,0xc7,0x31,0x2a,0x4a,0x12,0x2c,0xb6,0x1c,0xfb,0x49,0xc6,0x1a,0x93,0x33,0x1f,0x29,0x8b,0x94,0xe9,0x20,0xa7,0xe6,0x20,0xe6,0xbf,0xcd,0x5c,0xb6,0x52,0x42,0xf0,0x9c,0x6c,0x21,0x61,0x10,0xe7,0x0e,0x9f,0x33
+.byte 0x5f,0xc8,0xd0,0x20,0xe0,0x3e,0xc5,0x7a,0x10,0xf1,0xe5,0x19,0x52,0xcd,0xe1,0xa8,0x62,0x43,0x20,0x79,0xc3,0xac,0x93,0x27,0x02,0x8e,0x21,0x06,0xb9,0x66,0xd9,0xc8,0x40,0xe0,0xd1,0xf0,0x64,0x81,0xa6,0xc4,0x87,0x85,0x2b,0x92,0x1c,0xd6,0x48,0x85,0xb1,0xbe,0x78,0xf3,0x89,0xa2,0xf0,0xe5,0x39,0xac,0xbf,0x59,0x5d,0xf8,0x4f,0x74
+.byte 0x44,0x85,0x98,0x03,0x81,0x4b,0x7e,0x6f,0x5c,0xa1,0x11,0xd2,0xfd,0x30,0x7f,0xcd,0xd0,0xe2,0xcc,0xd4,0x80,0x16,0x46,0xa6,0x64,0x8b,0x9e,0xfc,0x2a,0x1a,0x65,0x5c,0x90,0x82,0xf9,0x23,0x48,0x11,0xf6,0xf2,0x50,0x3f,0xed,0x44,0xf2,0x9a,0x5a,0xca,0x1c,0x9a,0xd2,0x71,0x1b,0xd6,0x4c,0x51,0xf6,0x89,0x6f,0x65,0xe4,0x97,0x41,0x47
+.byte 0x1b,0x86,0xbd,0x83,0xa0,0xfe,0xac,0x16,0xe8,0xab,0x28,0x96,0x2f,0xa2,0x12,0x5f,0x7c,0xb3,0x18,0x2b,0x05,0x51,0x49,0xba,0xb4,0x1f,0x1e,0xe6,0x8a,0x82,0xca,0x33,0x7d,0xe6,0x8c,0x95,0xba,0x08,0x60,0x47,0x6d,0x79,0xac,0x0f,0xba,0x46,0xff,0xed,0xe0,0x34,0x03,0xfe,0xa7,0x85,0xe5,0x61,0xe3,0xe4,0x6c,0x5c,0x1b,0x9d,0x8a,0x54
+.byte 0x17,0xaf,0x08,0x4c,0x44,0x7f,0xb7,0xb0,0x6a,0x3a,0xff,0xb7,0xf6,0x10,0xc4,0x8f,0x31,0xd6,0x1a,0x25,0x27,0x35,0xca,0x87,0xa9,0x61,0x0b,0x35,0x96,0x89,0x0f,0x1a,0xbd,0x1e,0xf6,0xee,0xaa,0x95,0x16,0xe4,0x38,0x7b,0xb2,0xbe,0xea,0xc9,0x5a,0xcd,0x3b,0xb8,0x9e,0xd7,0x20,0xcd,0x3f,0x90,0xaa,0x8b,0x2a,0x42,0xed,0xab,0xc1,0x53
+.byte 0x83,0xc7,0xb8,0x3f,0xa1,0xb9,0xf4,0xf4,0xb0,0xe0,0x1f,0xb0,0xeb,0xa9,0x81,0x9f,0x31,0x67,0x1e,0x6c,0x96,0x9f,0x09,0xea,0x04,0xfe,0x37,0x22,0x87,0x60,0xb9,0x91,0x8f,0xa9,0x11,0xa3,0x68,0x5e,0x29,0x21,0x41,0xa3,0x02,0x08,0x82,0xd0,0x2b,0x66,0x6d,0x3c,0x46,0xc7,0x23,0x09,0x86,0x7f,0x53,0x11,0x3e,0x83,0x52,0x0a,0x4a,0xe4
+.byte 0x93,0xc6,0xc1,0x96,0x17,0x94,0x51,0x17,0x69,0xea,0x72,0xb8,0x85,0xde,0x7e,0x13,0x4a,0x08,0x26,0xae,0x31,0x19,0x0f,0x6f,0x48,0xa1,0xf2,0x57,0xa2,0x01,0x8e,0x84,0xee,0x63,0x23,0xc0,0x97,0x84,0xa2,0xf5,0x3f,0xeb,0x30,0x9e,0xdd,0xd2,0x43,0x24,0xa2,0x57,0xb7,0x57,0x86,0x26,0xa3,0xe6,0x6e,0xf2,0xcd,0xfb,0x7b,0x34,0x74,0x53
+.byte 0x07,0x95,0x51,0xb7,0xfd,0xf3,0xd1,0x83,0xbd,0x25,0xd6,0x2c,0x69,0x73,0x02,0x8e,0x76,0x19,0xea,0xb0,0x83,0x60,0x8c,0x53,0x9d,0x77,0x86,0x1e,0x65,0xc7,0x57,0x31,0x29,0xd9,0xa9,0x3a,0xb2,0x0d,0xd8,0xf4,0xf9,0x48,0x49,0xfb,0x3c,0x40,0x3d,0x1b,0xc4,0x8b,0x94,0x0e,0x50,0x7f,0xd5,0x39,0x5e,0x57,0x86,0xd1,0xba,0x0c,0x38,0x10
+.byte 0x01,0x5f,0x44,0xf3,0xe5,0xb0,0xf8,0xae,0x17,0xdf,0xd2,0xb3,0x10,0xc5,0x3b,0xfd,0xd9,0x68,0x90,0x9c,0x6c,0x26,0xdf,0x12,0x50,0xfa,0xbf,0x8b,0xce,0x68,0x80,0x8c,0x04,0x60,0xbf,0x34,0x81,0xbd,0x29,0xa3,0xa2,0xe4,0xe0,0x2d,0x25,0xb2,0xff,0x9f,0xd1,0x20,0x07,0xd5,0x8c,0x19,0xfa,0x3f,0x47,0xec,0xc1,0x8d,0xc9,0x36,0xf8,0x51
+.byte 0x4c,0xaa,0x40,0xe3,0x6a,0x21,0xd5,0xe6,0xa6,0xcf,0x8c,0xd9,0x10,0x47,0x66,0xfd,0x32,0x48,0x36,0x8f,0x14,0xed,0x09,0x80,0x50,0x27,0xaa,0xd5,0x1f,0x69,0xb8,0xe4,0x96,0x27,0x56,0x78,0xd6,0xd5,0x2d,0xf0,0x4f,0x14,0x30,0x17,0x9e,0x5b,0x69,0x8c,0x7c,0x1c,0x97,0x38,0x65,0x77,0x75,0x49,0xac,0x4b,0x06,0xda,0x74,0x11,0x86,0xbc
+.byte 0xad,0x01,0xf2,0x03,0x29,0x5d,0xa7,0x74,0xd3,0x44,0xae,0x1d,0xbf,0xf9,0xc5,0x5b,0x83,0x8c,0xd6,0x84,0x8a,0x8e,0xe9,0xa6,0x08,0xf4,0x88,0x13,0xcb,0x16,0x45,0x13,0x9c,0xc7,0x75,0xa9,0xa7,0x55,0x04,0x91,0xd6,0xe9,0xd4,0xe5,0x65,0xa0,0x3a,0x53,0xa0,0xfc,0x62,0xce,0x91,0x01,0xb4,0x06,0x8b,0x10,0x79,0x6f,0x2c,0xd6,0x0a,0xa2
+.byte 0x31,0x8f,0x75,0x32,0x0e,0xfa,0x0d,0xec,0xfd,0x71,0x7f,0x74,0x97,0x30,0xe9,0xee,0x9f,0x04,0x21,0xb5,0xc9,0xd1,0x52,0x2a,0x0f,0x18,0xbe,0x3e,0xbb,0x98,0xaf,0x59,0x9b,0x85,0x79,0x5e,0x52,0x93,0x1c,0x42,0x67,0x67,0x6b,0xd5,0x41,0xaf,0xba,0x09,0x3a,0xb4,0x0e,0x97,0x22,0xe6,0xbb,0xe1,0x27,0xa1,0xf9,0xf0,0xcd,0xa2,0x3d,0xdb
+.byte 0x81,0x2f,0x65,0x90,0xb7,0xe5,0xe5,0xce,0x1d,0x3b,0xfe,0x34,0x57,0xcd,0x3a,0xbd,0x19,0x59,0x23,0x12,0xf1,0xb6,0xf2,0xf7,0xc1,0xf5,0x1d,0x0b,0x46,0x8f,0x16,0x6a,0x81,0xfe,0xc1,0x97,0x8d,0x69,0x55,0x60,0xdd,0xf0,0x61,0xe9,0x22,0x30,0x72,0x1a,0x24,0x30,0xd7,0xbc,0x1c,0xfa,0x02,0x55,0xfc,0xb9,0x4b,0x0a,0xe4,0x90,0x90,0x3a
+.byte 0xe3,0xce,0xd4,0xa0,0x7d,0x21,0x5a,0xf7,0x79,0x6e,0x03,0x4f,0x4e,0x93,0xad,0xc4,0x8e,0x9d,0x9f,0x8a,0x39,0x59,0x20,0xc1,0x5d,0x6a,0x4d,0x8f,0x69,0x78,0xea,0xba,0xde,0xc0,0x87,0xb2,0xf2,0x20,0xd6,0x7a,0x9c,0xf9,0x09,0x03,0x2a,0x4d,0xb9,0x10,0xfc,0xe5,0x05,0x90,0xed,0x45,0x4f,0x5f,0x7c,0x5d,0xfa,0xe6,0x0d,0x07,0xae,0xcc
+.byte 0x21,0xc8,0x1c,0x7a,0xfb,0x1d,0xb9,0xe3,0x69,0xa1,0xb7,0x5f,0xb5,0x6a,0xb9,0x58,0x9d,0xcd,0x99,0xf8,0x38,0xbb,0xa0,0xfe,0xf8,0x41,0x51,0x72,0xce,0x76,0x89,0x59,0xa2,0xab,0xef,0xea,0xab,0x79,0xbc,0xda,0x73,0xdb,0x18,0xda,0x60,0x1b,0xc4,0xb7,0x4f,0xb3,0x86,0x21,0x2a,0xc3,0xec,0x7f,0x0e,0x89,0x16,0x0e,0xd2,0xbd,0xea,0x0e
+.byte 0xcf,0xc1,0x4b,0x2c,0x97,0x69,0xce,0xd3,0x94,0xad,0x81,0xe9,0x70,0xf4,0xf8,0xe5,0x77,0xe6,0x92,0xe0,0x23,0x38,0xd3,0xc1,0xdd,0x2e,0x58,0x77,0xc5,0xc3,0x29,0x34,0x66,0x48,0xf9,0x75,0x3c,0x8a,0x6a,0xb8,0xbf,0xf8,0xba,0xf0,0xb9,0xa1,0x81,0x0b,0xa1,0xaa,0x17,0x34,0x1a,0xbb,0xa3,0xa2,0xba,0x21,0x45,0xc0,0x1d,0x57,0x11,0x4d
+.byte 0x9b,0xd4,0x64,0x84,0xd7,0x0b,0xd6,0xfb,0x72,0x2c,0xdb,0xc3,0xe6,0x24,0xa9,0xf3,0x30,0x9f,0x21,0x05,0x1e,0xcc,0x48,0x58,0xed,0xfd,0xb2,0x34,0xe3,0xf7,0x7e,0x56,0xee,0xdf,0xa4,0xbb,0xb1,0xcc,0x7f,0x81,0x40,0xe9,0xdf,0x3f,0x82,0xc4,0x0d,0x14,0x9b,0x3b,0x80,0x15,0x24,0x6e,0xa4,0xce,0xfa,0x28,0xa7,0x7f,0x89,0xfb,0xc6,0x83
+.byte 0xe8,0x2a,0x70,0xfb,0x9c,0x75,0xb8,0xfd,0xec,0xbc,0xbb,0xf5,0xef,0x0a,0xa5,0x77,0x0b,0x38,0xa0,0x63,0xa5,0x71,0x12,0xc9,0xaa,0xc3,0xf9,0x72,0x30,0x45,0x4e,0x19,0x44,0x2d,0x09,0xf4,0xf1,0xa8,0xe8,0xde,0x58,0x87,0x70,0xa8,0x91,0x86,0xef,0x5d,0x02,0x90,0x55,0x63,0x99,0xde,0xd7,0xb7,0x5f,0x07,0x01,0xdf,0xb1,0xe5,0x55,0xf5
+.byte 0x87,0x69,0xd2,0x7a,0x71,0xbc,0x0e,0x4b,0x8b,0x98,0xf7,0xf6,0x0a,0x01,0xbb,0x9f,0x1b,0x15,0xb6,0x76,0xe0,0xc0,0x4b,0x5d,0x08,0xba,0xba,0x73,0x3f,0x36,0x5a,0x29,0xd7,0x7c,0xc2,0x87,0x03,0x75,0xff,0x26,0x21,0xae,0xbe,0x66,0x70,0xa2,0x99,0x11,0x35,0x49,0x78,0x7b,0x3a,0xfe,0x94,0xf7,0x37,0xe0,0x69,0x56,0x39,0xf7,0x3f,0x71
+.byte 0x39,0x74,0x75,0x32,0x1f,0xfb,0x3a,0x87,0x07,0xab,0xf1,0xed,0xe3,0xe2,0xbf,0x3f,0xb1,0x73,0x11,0xc9,0x34,0x4b,0xb1,0x1e,0x62,0x4e,0xc1,0x8a,0xae,0xcc,0xc7,0xb3,0xa7,0x70,0x01,0x73,0xad,0xb3,0xc3,0x59,0x70,0x14,0x31,0x94,0x9f,0x6b,0x18,0x11,0x50,0x52,0xc9,0xf0,0xf8,0x12,0x9d,0x7c,0x90,0x64,0x9d,0xd9,0x41,0xa6,0x45,0xe3
+.byte 0xc9,0x25,0x73,0xe7,0x48,0x9d,0xdc,0xe0,0x2c,0x71,0xd3,0x68,0xc5,0xab,0xac,0xe3,0x16,0x95,0xe3,0xa5,0xae,0x2f,0x57,0x60,0x4b,0x11,0x90,0xaa,0xe7,0x48,0xca,0xc7,0xde,0x2e,0x56,0x10,0x8e,0xc3,0x0a,0x7d,0x66,0xf1,0xc3,0xf7,0x2d,0xdd,0xfa,0x5e,0xb2,0xcb,0x99,0x4d,0xaa,0x4e,0x91,0xc1,0x94,0x60,0x27,0x33,0x82,0xa6,0x2a,0xba
+.byte 0x05,0x32,0x33,0x0a,0x30,0x47,0xb0,0xac,0x68,0x7d,0xef,0x25,0x09,0xcf,0x51,0xf4,0x06,0x28,0x14,0xb2,0xb4,0x1f,0xaf,0x37,0xdc,0x70,0x88,0x4d,0xb9,0xfc,0x2d,0x61,0x25,0x13,0x1f,0x32,0x48,0x6d,0xeb,0x46,0x05,0x66,0x44,0xa1,0xec,0xce,0xe9,0x51,0xa9,0xba,0xf8,0xde,0x95,0x1b,0x20,0xe1,0x21,0x75,0x4b,0x25,0x7f,0x3c,0x16,0xf7
+.byte 0xe2,0xbe,0xeb,0xca,0x2b,0x77,0x92,0x16,0x32,0xe2,0x74,0x21,0x52,0x3f,0x08,0xba,0x41,0xb0,0xd3,0xd2,0xf7,0xf3,0x29,0xb6,0x10,0xfa,0xa5,0x29,0x35,0x29,0x21,0x0d,0xec,0xba,0x5a,0xf3,0x63,0x0f,0x9d,0xbc,0x42,0x02,0x46,0xe9,0x07,0x4a,0x9a,0xe8,0xd3,0x78,0x92,0xa2,0xe5,0x03,0xec,0xd4,0xe2,0xc8,0x8f,0x92,0x4a,0xae,0xbc,0xd7
+.byte 0xdf,0x4b,0x07,0x22,0x47,0xbd,0xb4,0xb5,0xa0,0x7e,0xfb,0x21,0x40,0x62,0xb1,0x6c,0x07,0x00,0x64,0xf6,0xb2,0x75,0x5c,0x29,0x84,0xff,0x38,0x0c,0xc8,0x08,0x38,0x92,0xf9,0xad,0xd7,0xcc,0xc3,0x1c,0x03,0x80,0x49,0x39,0x1c,0xdb,0xae,0x60,0x87,0x8a,0x5c,0xe9,0x17,0xbd,0x2b,0x0f,0xa5,0xa1,0xf9,0x0d,0x4b,0x8c,0x4d,0x39,0xda,0x15
+.byte 0x8c,0xc4,0x69,0xaf,0x2b,0xb0,0xa1,0xfd,0xd9,0x65,0x3c,0x87,0x4b,0xf2,0x5a,0xd7,0xd8,0xb9,0xef,0x78,0x67,0x30,0x4c,0x6c,0x92,0xc5,0x1e,0x15,0xf8,0xd9,0x74,0x1b,0x54,0x0c,0x10,0x1b,0xb5,0x11,0x13,0xd6,0xb4,0xc0,0x53,0x03,0x2c,0x4b,0xee,0xac,0xf9,0x87,0x17,0x51,0x35,0xb8,0x1a,0xdc,0x16,0x61,0x5b,0xe9,0x5a,0x43,0x94,0x42
+.byte 0x8f,0x68,0xbd,0xb6,0x52,0x00,0x63,0xa3,0x52,0x6e,0x5d,0x8e,0xe9,0x4f,0xf5,0x69,0xd8,0x4f,0xf5,0x5c,0x89,0x7e,0x1c,0xb9,0xdc,0x7b,0x92,0x8a,0x2b,0xfc,0xb8,0xad,0xbb,0xff,0x61,0x2e,0xc0,0xdc,0xfb,0x2f,0x78,0x2a,0x50,0x32,0x9b,0x4c,0xfd,0x9e,0xab,0x80,0x5c,0x7d,0xc8,0x6b,0xb3,0x2d,0x0a,0xfe,0x43,0xa2,0x10,0x10,0x79,0xbc
+.byte 0x8c,0xa0,0x86,0x09,0x8c,0x8b,0x28,0xf3,0x8a,0xc9,0xeb,0xcb,0xb5,0x0e,0x56,0x19,0xae,0xe0,0xa1,0x22,0x72,0xc5,0xad,0x01,0x12,0x69,0xb6,0x52,0xb8,0xdd,0x36,0x25,0x21,0xae,0x73,0x06,0xc1,0xe0,0x23,0x20,0xe1,0x8e,0xe4,0x99,0xcd,0x86,0xca,0xf5,0x93,0x0e,0x6b,0xb8,0xba,0x18,0x4a,0x36,0xed,0xd0,0x37,0xc8,0xc7,0x8a,0xb2,0x63
+.byte 0x2e,0xa4,0x22,0x76,0x6f,0xf7,0xdd,0x81,0xd6,0x6f,0xcd,0xb9,0x65,0xf0,0x95,0x77,0xae,0xca,0x54,0x62,0xce,0x5d,0x47,0x9e,0x10,0x89,0xb9,0xfa,0x72,0x0a,0xef,0x24,0x17,0x45,0xb0,0xb0,0xc7,0x51,0x85,0xa1,0xb1,0x6a,0xd2,0xea,0x48,0xe2,0x6a,0x03,0x2a,0xdf,0xa8,0x0e,0x62,0xa2,0x1e,0xe2,0xa7,0x20,0x57,0xbd,0x73,0xeb,0xef,0x86
+.byte 0xc9,0xd4,0xfa,0x96,0xfe,0xfa,0xb3,0xc6,0xbf,0x7a,0x16,0xa2,0x43,0x73,0x56,0x71,0x78,0x32,0x3b,0xc1,0xd8,0x26,0xbf,0xde,0x39,0x5d,0xbd,0x3b,0xff,0xd7,0x4f,0xa0,0x67,0xa6,0x09,0x9a,0x81,0xfd,0xec,0x34,0x73,0xcd,0x90,0x15,0x8b,0x3e,0x2d,0x6f,0x7d,0xcc,0xf5,0x20,0x15,0x07,0xa8,0x2f,0xa5,0x5b,0x2b,0x4f,0xb8,0x2f,0x14,0x6c
+.byte 0x52,0x78,0xbd,0x92,0x98,0xda,0x69,0x19,0x58,0x4c,0x76,0xe4,0x20,0xb2,0x48,0xa4,0x9f,0x2f,0x4c,0x9b,0x45,0x7f,0x7d,0x1c,0x46,0xe9,0x1e,0x43,0x26,0x49,0x39,0xb6,0x42,0x3a,0x4c,0x59,0x95,0x6b,0x28,0xd5,0xbe,0xa7,0x2e,0xd0,0x0c,0x00,0xa0,0x67,0x06,0x4e,0xee,0xae,0x7f,0xc2,0xb5,0x12,0x46,0x3f,0xb4,0x35,0x16,0x2a,0xda,0xbf
+.byte 0x41,0x34,0xbe,0x30,0x2a,0x0f,0x7b,0x60,0xa6,0x8b,0xcd,0xae,0x7a,0x8c,0xd6,0x97,0xab,0x06,0x1e,0x14,0x87,0x45,0xa3,0x3c,0x9c,0xc4,0xa0,0x1d,0xee,0xf0,0xca,0xb8,0xa6,0x8d,0x37,0x92,0xad,0xbc,0xe6,0x1f,0x65,0x75,0xd3,0xbc,0x72,0x66,0xe2,0xff,0xbc,0x19,0x93,0xae,0xee,0xd0,0x63,0x6d,0x97,0x6f,0x57,0xf3,0x77,0xcd,0xe3,0x57
+.byte 0x3f,0x00,0xc8,0xe1,0x63,0x83,0x15,0x84,0xc6,0x08,0xdb,0x03,0xc9,0x27,0x47,0x4c,0x17,0x12,0x40,0x6e,0xac,0x74,0x6f,0x3c,0x22,0x57,0x36,0x29,0xbb,0x6a,0xc7,0x5a,0xfe,0x60,0x1c,0x0f,0x32,0x95,0x1b,0xf2,0x3c,0xed,0x04,0x87,0x4c,0x48,0xc7,0x63,0x79,0x24,0xb3,0x12,0xbf,0x55,0x3b,0x32,0xbf,0x52,0x4e,0x1e,0xc1,0x1f,0xf2,0xfd
+.byte 0xe6,0xb8,0x56,0x38,0x0e,0xd2,0x75,0x3d,0x41,0x99,0x0c,0x7a,0x12,0x3f,0xa7,0x3a,0x79,0xa0,0xd7,0x6f,0x47,0x97,0x7e,0x9e,0xf6,0xfe,0x29,0xc0,0x16,0x34,0x38,0x80,0x2f,0xde,0x65,0x79,0xc9,0xfd,0xa0,0x84,0xc3,0x39,0xbc,0x0b,0xbe,0x18,0xba,0x0d,0xe3,0x35,0x11,0xba,0x9f,0xde,0x5d,0x0c,0xae,0x8e,0x0c,0x0f,0x66,0x9c,0xe6,0xfc
+.byte 0x3d,0xdb,0x46,0xf1,0x84,0x57,0x62,0xb0,0x00,0xd4,0x8c,0xaa,0x93,0xeb,0xf7,0xa7,0x8e,0x82,0xba,0x89,0x67,0xbb,0x38,0xb0,0xb6,0x13,0x0c,0x96,0x22,0x9c,0x6a,0x86,0xea,0x83,0xad,0x5f,0x7b,0x3a,0x28,0xd8,0x53,0x90,0x2d,0xab,0xc9,0xbe,0x99,0xfb,0x68,0x42,0x27,0xf6,0xe3,0x5a,0xaf,0xf3,0xd6,0xee,0xb6,0xa2,0xe0,0x32,0x3c,0x1d
+.byte 0xd4,0x3c,0x2b,0x58,0xc2,0x4f,0x3d,0x20,0x39,0xdb,0x80,0x89,0x20,0x20,0x7b,0xe6,0x1d,0xd0,0xa2,0x1a,0xd4,0x88,0xc9,0xe0,0xb9,0xf6,0xb2,0xa1,0xcd,0xf2,0x67,0x60,0x44,0xd8,0xce,0x6a,0xe2,0x52,0xc3,0xf3,0x61,0xa3,0x14,0x58,0xd6,0xe5,0x43,0x4a,0x8d,0xcc,0x4f,0xf8,0x17,0xdd,0xd2,0x5d,0xd5,0x5a,0x86,0x8e,0xc4,0x74,0xdc,0x1b
+.byte 0xad,0xca,0x63,0x75,0xf0,0x43,0x41,0x16,0x02,0x49,0x6a,0x3a,0xe3,0xb9,0xa9,0xdc,0xfb,0x99,0xbc,0x60,0x0d,0xdb,0xa0,0xcf,0x27,0xaa,0xd5,0xc5,0x42,0x0b,0x02,0x00,0x43,0xaf,0xb5,0x4f,0xe1,0x88,0xa1,0x9d,0xca,0xfb,0x9f,0x1f,0x08,0x9c,0x66,0x23,0xca,0x4b,0x88,0xb4,0x40,0xdc,0xd3,0xd3,0x1a,0x64,0xe3,0x9b,0x43,0xea,0x20,0x90
+.byte 0x30,0x2e,0xc4,0x75,0xc5,0x52,0xc5,0x7c,0x0e,0x35,0x56,0xf5,0x1f,0x50,0x2b,0xf6,0x28,0x93,0x6f,0xde,0x10,0xc6,0x49,0x2b,0x77,0xb1,0x6d,0xce,0xfd,0x37,0xd4,0x8d,0x11,0xed,0x88,0x1e,0xca,0x68,0x0c,0x4e,0x38,0x7f,0x0f,0xab,0x6f,0x8d,0x1c,0x7d,0xd4,0x7d,0xd8,0xa9,0x5c,0x24,0x5a,0x7d,0xf4,0x5b,0xb6,0xb7,0x28,0xc7,0x93,0xd6
+.byte 0xa9,0xe5,0xac,0x62,0x16,0x9c,0x4e,0x5c,0x24,0xa0,0x2a,0x76,0xce,0x7d,0x5c,0x4b,0xbe,0xbc,0x83,0x5c,0x9a,0xc8,0x06,0x7b,0x1e,0xac,0x98,0x67,0x17,0x32,0x94,0xda,0xd1,0x8b,0x58,0xad,0x8e,0x26,0x03,0x81,0x7c,0x48,0xd1,0x83,0x03,0xba,0x6c,0x51,0xe9,0x25,0x82,0xd2,0xb9,0x7f,0xd8,0x33,0x3f,0x77,0x29,0x45,0x41,0xa9,0x17,0x3d
+.byte 0x62,0xc6,0xd2,0xfb,0xd1,0x24,0xc7,0xee,0x10,0xc0,0x64,0xc3,0x46,0xc6,0x2b,0xe8,0x9c,0xc8,0x99,0x23,0x77,0xa9,0xb5,0x12,0xc4,0x53,0xde,0xbc,0x20,0xb2,0xc4,0x12,0xdb,0xc2,0x0b,0x63,0x70,0x6a,0x41,0x31,0x65,0x48,0xa0,0xfc,0xbc,0xd6,0x3f,0x55,0x18,0x17,0x65,0x35,0x58,0xe3,0x33,0xac,0xaf,0xca,0xb2,0x51,0xc1,0xcc,0x60,0x38
+.byte 0x94,0x8f,0x13,0xb8,0xcc,0x8c,0xc4,0x12,0xea,0xd5,0x39,0xd3,0x46,0x55,0x17,0x27,0x7a,0x07,0x01,0x02,0x74,0xa6,0xe7,0xc8,0xa7,0xd0,0x76,0xc8,0x5e,0x57,0x50,0xc5,0x19,0xf1,0x95,0xa3,0x52,0x10,0xa3,0x1e,0xcd,0xb1,0x05,0x64,0xe5,0x69,0xd9,0x5e,0xfc,0x71,0xef,0xe1,0xf6,0xb3,0xa7,0xf7,0xf9,0x71,0xfd,0xbb,0x5b,0x2b,0x7a,0xd2
+.byte 0x72,0x7c,0xc7,0x73,0x89,0xf7,0xe2,0x0b,0xcd,0x05,0x4f,0x0c,0x10,0xed,0xcc,0xda,0xb6,0x81,0x19,0xe6,0x2b,0x06,0x66,0xef,0xc5,0xfd,0xd5,0xc6,0x66,0x20,0x86,0x2a,0x4f,0x05,0x49,0xf1,0x54,0x4a,0x6e,0x1d,0xcd,0xad,0x18,0xeb,0x6c,0x58,0xd6,0x75,0x3e,0x62,0x48,0xab,0xea,0x1f,0x7f,0x05,0x45,0x6e,0x75,0x2a,0x5e,0x97,0x5b,0xde
+.byte 0x5a,0x99,0x42,0xc1,0x62,0xab,0xc7,0x01,0x4d,0xac,0xd6,0xdc,0xc9,0x71,0x24,0xd1,0x33,0xe2,0x4b,0x1f,0x09,0x04,0x1f,0x0d,0x42,0x45,0xcf,0x7c,0xa0,0xee,0x48,0xfd,0x8b,0x1f,0xaa,0x50,0x48,0x6d,0x8e,0x34,0x76,0x09,0x23,0x8a,0x40,0x0d,0x5d,0xc1,0x2a,0xba,0x5f,0x9c,0x86,0xfb,0x37,0xdf,0x24,0xff,0x27,0x88,0xbf,0xf6,0xa4,0xc3
+.byte 0xf0,0xd3,0x02,0xa8,0x7c,0x6d,0xc4,0xc5,0x14,0xc3,0x64,0x28,0xa8,0x05,0x33,0xc2,0xda,0x12,0xfc,0xbe,0x0d,0x8e,0xf4,0xf5,0x48,0x5a,0x8e,0x8a,0xd2,0x50,0x7c,0xc0,0xbc,0xde,0xdb,0x9a,0xf6,0xa0,0x92,0x8d,0x19,0xbc,0x5a,0xdc,0xbf,0xfb,0x13,0x8f,0x41,0x09,0xba,0xd9,0x0b,0x91,0x7a,0xdb,0x92,0x10,0xac,0xf2,0xb5,0x76,0xb5,0x7d
+.byte 0x80,0x04,0xd6,0xec,0x98,0x09,0x5f,0x63,0x0d,0x58,0x00,0x8a,0x07,0x76,0xfa,0xe6,0x6e,0xdf,0xbf,0x73,0xe5,0xc9,0xe5,0x12,0x44,0x58,0xf9,0x2e,0xb1,0xe6,0x2c,0xf5,0x0d,0x94,0xa9,0x51,0x0d,0x01,0x03,0xab,0x79,0xf9,0xee,0x7e,0x10,0x4b,0xcb,0x20,0xbb,0x01,0x19,0xd6,0x12,0xd1,0xac,0x96,0xe9,0x0e,0xde,0xbf,0x7e,0x80,0xf6,0x58
+.byte 0xc9,0xec,0xaf,0xf7,0x2d,0x98,0xbc,0x2b,0xb1,0xf1,0x34,0x94,0x39,0x8e,0xbc,0x13,0x13,0x41,0x8f,0xf3,0x4e,0x4e,0x6b,0x2a,0xaa,0xea,0x70,0x5c,0xf8,0x42,0xf7,0xbc,0xfd,0xbd,0x6f,0x62,0x1b,0xcb,0xb9,0x39,0xdc,0x6a,0x47,0x81,0xaf,0xff,0x5b,0x7e,0x80,0xb9,0xbf,0xfa,0x15,0x7e,0xd1,0xc3,0xb2,0x80,0x99,0xbd,0xb9,0x30,0x8d,0xb5
+.byte 0x43,0x6b,0x7a,0x31,0xaf,0x45,0xf7,0xdd,0x21,0x8f,0x54,0xb1,0xf6,0x2d,0x7d,0x96,0x63,0x4a,0x93,0x98,0x37,0x7f,0x48,0x02,0x4b,0x0f,0x71,0xe4,0x70,0xce,0x66,0x6a,0x36,0xde,0x58,0x84,0x69,0xd6,0xbd,0x1a,0x9a,0x8b,0xc5,0xda,0x97,0xc5,0xe1,0x4e,0xec,0x9b,0x7a,0x65,0xe0,0xa5,0xdd,0x39,0x3c,0x9f,0xfd,0x45,0x17,0x4c,0x2f,0xb4
+.byte 0xb1,0xb1,0x42,0xe8,0x88,0x75,0x9f,0xb4,0xc1,0xdf,0x44,0xf9,0x4f,0x9a,0xf7,0x3d,0x35,0xc5,0x32,0xbe,0x43,0xd0,0x0d,0x71,0x4e,0x21,0xbf,0x31,0x99,0x73,0x5a,0x84,0x45,0x2e,0x00,0x8b,0x42,0x2b,0x14,0x86,0x51,0xcb,0xa0,0x98,0xa9,0x68,0x8d,0xdb,0x58,0x3d,0x73,0x9d,0xf9,0x2d,0x86,0x76,0x62,0xcb,0x93,0x29,0x48,0x92,0x38,0xfb
+.byte 0xeb,0x1d,0xda,0xc3,0x10,0x1f,0x32,0x68,0xee,0xcb,0xb7,0x8a,0xcb,0xcb,0xe0,0x37,0x31,0xe8,0xad,0x7b,0x4a,0x29,0x2c,0x10,0x9e,0xdf,0x86,0xeb,0x13,0x0c,0xab,0xa4,0x30,0x36,0xf0,0xe0,0xac,0x14,0x41,0xa4,0xf4,0xf8,0x44,0x95,0xe8,0x8f,0x28,0xc2,0x35,0x0a,0x44,0x61,0xc7,0x60,0xc5,0x3b,0xc4,0x1d,0x67,0xfd,0xac,0x0b,0x2e,0x49
+.byte 0x62,0xea,0x17,0x3c,0xf5,0x4b,0xbe,0xba,0xba,0x42,0x02,0x0d,0x13,0xf1,0x15,0xff,0x2e,0x47,0x46,0xd1,0x27,0x64,0xb7,0x35,0x28,0x31,0xb5,0xde,0x1e,0xf9,0x26,0x6c,0x04,0x3c,0x0e,0x06,0x9d,0x4d,0xc7,0x1c,0x97,0x67,0x2c,0x6d,0x36,0x0d,0x4c,0x61,0x08,0xe9,0xbd,0x04,0x1d,0x8d,0xfb,0x0c,0x03,0x3d,0xb4,0x40,0xd5,0x1b,0x69,0x3b
+.byte 0x68,0xcf,0x46,0x27,0xcf,0xb3,0xda,0x1e,0xdc,0x85,0x6f,0x4f,0x6b,0x09,0x9d,0xe9,0x6c,0x73,0x40,0x27,0xc9,0x8b,0x12,0x97,0xea,0x34,0xd7,0x51,0x32,0x90,0x4e,0xd7,0x91,0x41,0x3a,0xee,0xbc,0x97,0xb0,0x4a,0x39,0xdb,0xe3,0xe5,0x12,0x73,0xbf,0x5d,0x68,0xe0,0xc6,0x7c,0x6f,0x0d,0x14,0x1c,0xaa,0xde,0x29,0xb7,0xc7,0xa5,0x90,0x62
+.byte 0xe9,0xc5,0x75,0x16,0xe6,0xc0,0x9d,0xc5,0xb8,0xd6,0xfa,0xb0,0x72,0xb7,0x27,0xa6,0xa8,0x3f,0xbf,0x18,0x8b,0xaa,0x94,0xb3,0x47,0x50,0x2f,0x1c,0x49,0xab,0x46,0x38,0x7f,0x3e,0xf3,0xf1,0xb8,0xb3,0x44,0xaa,0x1f,0x76,0xb4,0x67,0xff,0xcf,0x7c,0x4b,0xa9,0xe1,0x62,0x93,0x4d,0x3e,0x96,0xdb,0x56,0xf6,0x26,0x5d,0x95,0x4c,0xfa,0x5f
+.byte 0x06,0x2b,0x5c,0x33,0x2d,0xf8,0xfa,0x68,0x8a,0xed,0x28,0x2a,0x6e,0x95,0x86,0x59,0x71,0xef,0x86,0x47,0x60,0xec,0x35,0x79,0xa9,0x98,0x2d,0x6e,0x20,0x26,0x3a,0x21,0xec,0x59,0x15,0x65,0xcd,0xb9,0x91,0x19,0x6e,0x74,0x89,0x3b,0x10,0x00,0xab,0x8a,0x45,0x23,0x20,0x94,0x03,0x02,0x77,0xb7,0xcf,0x9c,0x71,0x18,0x0c,0x5b,0x40,0x62
+.byte 0x3b,0x8f,0xc9,0xf6,0x4c,0x8f,0x60,0x66,0x05,0x87,0x05,0x90,0xd4,0x08,0x76,0xd7,0xa3,0xb6,0x37,0xa8,0x83,0x05,0xb2,0x48,0xe9,0x24,0xc4,0xfb,0x79,0xa1,0xce,0xac,0x29,0x13,0x4e,0x72,0xdf,0xad,0x9e,0x5b,0xcd,0x9c,0x39,0x1d,0x3e,0x57,0x9d,0xf2,0x96,0x13,0xa4,0x79,0x4c,0x76,0x40,0x03,0xb3,0x18,0xcf,0xd7,0x45,0x2a,0x2d,0x07
+.byte 0xe5,0x2e,0xb7,0x74,0xda,0x94,0xea,0x32,0x74,0xb0,0xca,0xf4,0xd1,0x09,0x97,0x3c,0x69,0x17,0xf6,0x5b,0x13,0x7b,0xb8,0xb1,0xd9,0x0e,0x12,0x44,0x29,0xea,0x26,0xd8,0xaa,0x9d,0x26,0x87,0x0c,0x89,0x4e,0xec,0x29,0x48,0x43,0x66,0x21,0x0b,0xab,0xce,0x40,0x57,0x4c,0xa7,0xdd,0x56,0xde,0xac,0x5c,0x62,0xea,0xc4,0x54,0x4a,0xe0,0x8d
+.byte 0x54,0xc8,0x65,0x44,0xcc,0x6f,0x2a,0xcd,0x0e,0xb3,0xad,0xa3,0x30,0xd1,0xb7,0x19,0x70,0x51,0xd3,0x9a,0xcf,0xe5,0x42,0x6c,0xa1,0xc1,0x0f,0xe2,0xda,0x86,0xb4,0x51,0x50,0x62,0xdc,0x51,0x3f,0xd2,0xff,0xde,0x7f,0x38,0x5a,0xff,0x2d,0x21,0x1d,0x59,0xb9,0xdd,0xde,0x83,0x13,0xb0,0x25,0xf5,0xbb,0x11,0x47,0x4a,0xaf,0x81,0x15,0xa0
+.byte 0x39,0x5b,0x30,0x17,0x2b,0xbf,0x5a,0x03,0x60,0xb6,0xbb,0x86,0x9f,0x50,0x45,0x15,0x0b,0xba,0x42,0xf4,0x3d,0x05,0x62,0xcd,0x9b,0x8c,0xcf,0x93,0x5c,0x33,0x6c,0xea,0x4b,0xd0,0x1d,0x91,0x3e,0xbf,0xa4,0x9d,0x7c,0x2c,0x87,0x9c,0x42,0x9f,0x03,0x98,0x03,0x1b,0x98,0x66,0x4f,0x8f,0x29,0x12,0xc5,0xb5,0xec,0x81,0xf8,0xb2,0x5e,0x44
+.byte 0x4f,0xb0,0x31,0xe4,0x2a,0x73,0x83,0xac,0x5a,0x3f,0xfa,0xcf,0x8b,0x7c,0xa3,0xf1,0x01,0x14,0xa1,0xca,0x60,0x8d,0x6a,0x6c,0x04,0x31,0xcc,0xba,0x12,0xe0,0x4e,0xaf,0x01,0x8d,0xf5,0x60,0x23,0x79,0x8a,0x80,0xcc,0x32,0x31,0x69,0x83,0xb6,0x83,0xaa,0xd9,0x3b,0x86,0x4a,0xd8,0x10,0x28,0x09,0x82,0x36,0xee,0x6a,0xc0,0x80,0x3f,0xfd
+.byte 0xb1,0xd2,0xde,0x34,0xf9,0x4c,0x87,0x5b,0xdd,0xd0,0xb6,0x2d,0x99,0x69,0xd3,0x2c,0xb7,0x0b,0xfc,0x16,0x88,0x7b,0x80,0x21,0xbc,0x30,0x7b,0x56,0xe5,0x7b,0x41,0x43,0x4d,0xaf,0x40,0x5e,0x74,0x14,0x17,0x66,0x32,0xd6,0x81,0x53,0x94,0x35,0xf0,0x0f,0x4f,0x99,0x54,0x9a,0x38,0xc0,0x2a,0xa9,0xd3,0x53,0xdd,0x9a,0xc5,0x29,0x18,0x62
+.byte 0xf6,0x93,0xa3,0x02,0xf0,0x13,0xcb,0xcb,0xcc,0x64,0x0b,0x00,0xf4,0x43,0x03,0x26,0xe6,0x2f,0x39,0xa1,0x83,0xea,0x94,0x2f,0xde,0x61,0xbd,0xe1,0xbe,0x08,0xf8,0xd4,0x01,0x6e,0x61,0x98,0x01,0x39,0x4b,0x93,0x39,0x38,0x34,0x58,0x24,0xc1,0xf5,0x03,0x05,0x15,0x9c,0xf0,0x30,0x20,0x24,0xd4,0x7e,0x73,0xb2,0x60,0x06,0x3b,0xd3,0xb7
+.byte 0x2c,0x47,0x17,0xc4,0x79,0x4e,0x45,0x0b,0x89,0xf0,0xfc,0x42,0xa0,0x0d,0x80,0xd2,0x44,0x36,0x70,0xaa,0x9e,0x72,0x85,0xa8,0xc8,0x1d,0x35,0x28,0xc3,0x5a,0x72,0x4c,0x06,0x6d,0xf4,0xae,0x54,0x86,0x9a,0x32,0x3c,0xa5,0x06,0x63,0xc1,0x37,0xbb,0xaf,0xa6,0xae,0xce,0x94,0xea,0x9c,0x4a,0x9e,0x56,0xb1,0xc3,0x84,0x84,0xef,0x3d,0xe9
+.byte 0x24,0xf4,0xbf,0xc3,0xf6,0x45,0x74,0x4e,0xbb,0x86,0xd3,0x7f,0xab,0x19,0xe3,0x63,0x67,0x81,0xb6,0x18,0xc8,0x78,0x8e,0xf8,0x83,0x5f,0xfb,0x2e,0x49,0x97,0x2b,0x34,0xbb,0x76,0x2e,0x93,0xec,0xe9,0x7f,0x4d,0x7e,0x52,0x0c,0x92,0xbc,0x6d,0x3a,0x34,0x9b,0x5e,0x61,0x6f,0xea,0x45,0xe7,0x5c,0x34,0x6b,0xcb,0xc0,0x31,0x61,0x64,0x9d
+.byte 0xad,0x7f,0x98,0xca,0xfe,0x3d,0xad,0xf7,0x21,0xf6,0x4c,0x2a,0x21,0x07,0x80,0x25,0xa2,0xea,0x26,0x85,0xc3,0xb1,0x74,0x04,0x7f,0xd1,0x1c,0x1b,0xa5,0x7e,0x96,0x45,0xfe,0x6f,0xa6,0x34,0xdf,0x94,0x1f,0x7e,0xfb,0xcf,0xfd,0x29,0xeb,0x3a,0xb0,0xfc,0xb6,0xd5,0x80,0x8b,0x37,0x71,0xfb,0x70,0x19,0x30,0xc4,0x6f,0xa0,0x5b,0xae,0x5b
+.byte 0x75,0x51,0x98,0x89,0x9e,0xf0,0xf5,0x79,0xaf,0x1c,0x07,0xb6,0x5e,0xcf,0x34,0x70,0x0f,0x0b,0xbc,0x0a,0xa6,0x40,0xc7,0xf8,0xe4,0xef,0xe6,0xb7,0x94,0x6e,0x98,0x75,0x22,0x73,0x5c,0xca,0xcc,0xfb,0x09,0x2f,0x9c,0xfe,0x49,0x0f,0xd3,0x65,0xfe,0xd4,0xf0,0x9b,0xeb,0x8c,0xd7,0x8c,0xff,0x4b,0x18,0x3e,0xf3,0x9d,0x3f,0xf5,0x83,0xd6
+.byte 0x1d,0x3d,0x23,0x79,0x0f,0xae,0x17,0x62,0x33,0x07,0xc3,0xac,0x98,0x07,0x72,0x9b,0xd9,0x26,0x5c,0x1a,0x9d,0xf1,0x35,0x92,0xf9,0x38,0x17,0xf8,0xee,0x26,0xf9,0x64,0xfc,0x5e,0x8b,0x80,0xce,0xdb,0x64,0xf7,0xde,0x20,0x19,0x5c,0x26,0xf6,0x23,0xd6,0x99,0x8e,0x75,0x77,0x3d,0x17,0x0f,0xea,0x31,0x5a,0x65,0x32,0x1b,0x78,0x78,0xe4
+.byte 0xfe,0x76,0xf8,0xa7,0x81,0x34,0xf1,0x2a,0x13,0x22,0xe4,0x8a,0xe1,0x42,0x5a,0x3f,0x44,0x22,0xeb,0x7e,0xcd,0x20,0xcd,0xf7,0x44,0x1a,0x87,0xb9,0x7a,0x0e,0xf8,0xcb,0xb5,0x0a,0x1f,0x6a,0xe6,0x0b,0x70,0x59,0x38,0xa3,0x6b,0x64,0x7b,0x61,0xfe,0xbd,0xa4,0xb7,0x89,0x7a,0x28,0x70,0xfe,0x9d,0x64,0x2c,0xe9,0xc4,0xc9,0x2f,0xc8,0x3e
+.byte 0xfa,0x70,0xce,0x21,0x9b,0xa8,0x10,0x6a,0x16,0xdd,0x28,0xce,0x4e,0xd4,0x6c,0x8c,0x47,0x83,0x13,0x8b,0xec,0x1c,0x76,0xdc,0x4d,0x81,0x25,0x08,0xd8,0xf9,0xde,0x66,0x1d,0xe2,0xf3,0xe7,0xdc,0x3e,0x3c,0x6b,0x98,0x25,0x55,0x88,0xe8,0xda,0x7f,0x16,0xe5,0x7d,0xad,0x8a,0x36,0x00,0xf0,0x68,0xc5,0xe4,0xfc,0xe9,0xe3,0x54,0xeb,0x4c
+.byte 0xd1,0xff,0x07,0x1a,0x5c,0x5e,0xd4,0xb1,0xff,0x7d,0xfc,0x5b,0x34,0x42,0x95,0x89,0x01,0x24,0x8e,0x30,0xec,0xfe,0x67,0xf8,0xe2,0xaa,0xd5,0x6a,0x9f,0xe3,0xc3,0xa5,0x53,0x7f,0xd3,0xf4,0x98,0xa5,0x47,0x11,0xad,0xac,0xea,0xba,0x20,0x34,0x03,0x65,0x8c,0xec,0xb6,0xa3,0x2b,0xf6,0x93,0xe1,0xc8,0xad,0x34,0x30,0x8f,0x0e,0x3b,0xf6
+.byte 0x63,0xc6,0x58,0xc3,0xe8,0xa3,0x85,0xf8,0x24,0x8e,0x21,0xb9,0x36,0x7c,0xe0,0x11,0x64,0x31,0x6a,0x6a,0xa2,0xad,0xd3,0x94,0xbb,0x13,0x5b,0xb4,0xe9,0xee,0x09,0xdc,0xfe,0xb2,0xad,0xa8,0x43,0x02,0xba,0x85,0x1f,0x56,0xcb,0xb5,0x95,0x32,0xcc,0x7e,0xe0,0x00,0xde,0xfa,0x3f,0x91,0x71,0xde,0x21,0x19,0xff,0xc9,0x97,0x43,0x95,0xd8
+.byte 0x0d,0xc2,0x8a,0xde,0xcc,0x34,0x48,0xf4,0x35,0x41,0xb8,0x56,0x52,0xce,0x06,0xb3,0xcf,0xd4,0xae,0x7a,0xcb,0xe9,0xed,0x37,0xd6,0x76,0xa0,0x77,0x04,0xfb,0xb7,0x41,0x25,0x38,0xe1,0xd1,0xb5,0xde,0x21,0xe0,0x64,0xd8,0x83,0x13,0x7b,0x4b,0xb8,0xc9,0x12,0x02,0x51,0x56,0x52,0xe9,0x1c,0x49,0x48,0x83,0xd0,0x99,0x73,0x60,0x4a,0x4c
+.byte 0x7d,0x8d,0x43,0xf9,0x06,0xa4,0xbb,0x0e,0xb6,0xdd,0x5f,0xc7,0x5e,0x35,0xcb,0xa0,0xc1,0x66,0x4a,0xe3,0x4a,0xa9,0xec,0xa4,0x5a,0xd7,0xd6,0xea,0xa5,0x20,0xa6,0xc3,0x1b,0xc0,0xa8,0xd1,0xf1,0x08,0x05,0xab,0x40,0x14,0x35,0xf2,0xdd,0x0f,0xc5,0xda,0xb3,0xa6,0xb1,0x07,0x36,0x17,0x5d,0xe9,0x96,0x23,0x96,0x46,0xd4,0xa7,0x71,0x64
+.byte 0x13,0x72,0x4e,0x83,0xe0,0x65,0x40,0x41,0xaf,0xb6,0x5b,0x00,0xa2,0xab,0x09,0x7f,0xa5,0xd5,0xc2,0xd9,0xc0,0x68,0x2a,0x44,0xdc,0x43,0x37,0x81,0xb8,0x88,0x4c,0x85,0x1b,0xb1,0x83,0xb2,0x56,0xa3,0x91,0x0f,0xa6,0x70,0x3f,0xbd,0xe9,0xda,0x40,0x9b,0xf5,0x9e,0x53,0xed,0x5f,0x84,0x70,0xd2,0x4c,0x1c,0xb6,0x87,0xd6,0xbb,0x3b,0xec
+.byte 0xe5,0x35,0x1b,0x2c,0x9b,0xf1,0xe5,0xf8,0x0e,0x07,0x98,0xcc,0x58,0x38,0x57,0x74,0xdb,0x0e,0x08,0xd9,0x56,0xe8,0x08,0x63,0x3d,0x94,0x4a,0xdc,0x59,0xfc,0x3d,0xc1,0xa4,0x36,0xc3,0xe8,0xbe,0x4b,0xd7,0x47,0x69,0x33,0xb8,0x72,0x30,0x59,0x28,0x4e,0xf1,0xc1,0x25,0xa3,0xa4,0xe3,0x12,0xcf,0x31,0xf6,0xf8,0xae,0x31,0x06,0x76,0x92
+.byte 0x64,0x87,0x8e,0xb0,0x9f,0x1d,0xf4,0x56,0x73,0xc5,0x5d,0xbb,0x80,0x0d,0x19,0x3f,0x56,0x8c,0xe4,0xd6,0x8a,0x9a,0x62,0x26,0x4e,0x8a,0x21,0x7d,0x72,0x34,0x87,0xb6,0x7e,0x49,0xdc,0xfd,0x27,0x95,0xba,0x25,0xdd,0xf4,0x58,0x2b,0x11,0x3f,0xd1,0xd7,0x13,0x1d,0xb0,0xec,0xe2,0x55,0x5e,0x72,0xea,0x36,0xc9,0xd8,0x61,0xc0,0xee,0xc4
+.byte 0x9f,0x35,0x7e,0x73,0xd3,0xf6,0xd7,0x6a,0xce,0xd6,0xd2,0x80,0xe6,0x10,0x4b,0x65,0x18,0x6f,0xab,0xd3,0x41,0xbb,0x39,0x36,0x95,0x84,0x3c,0x99,0x9a,0xfd,0xf0,0xa3,0x46,0xdf,0x48,0x7c,0xd5,0x57,0x9d,0x10,0x59,0xca,0x70,0xc4,0xb5,0xbe,0x47,0x9e,0xca,0x2b,0x49,0x54,0xbb,0x34,0x8e,0x39,0xf4,0xf8,0x8c,0xa5,0xa1,0xab,0xf6,0x51
+.byte 0xd8,0x22,0x9a,0xd5,0xc2,0x12,0xf8,0x26,0xc6,0x19,0x2a,0xa6,0x6e,0xab,0xd3,0xac,0xd1,0x21,0x97,0x67,0x3e,0x39,0x90,0x5c,0x37,0x65,0x7b,0x06,0x54,0x1a,0xb8,0x2a,0x56,0x02,0xa3,0x92,0xee,0xf3,0x38,0x53,0x25,0x4d,0x5d,0x0a,0x37,0x9e,0xbb,0xf4,0xb2,0x13,0x77,0xbb,0x93,0xa9,0x85,0xf2,0x15,0xfd,0x71,0x17,0x00,0x89,0xe7,0x7b
+.byte 0xa9,0xdc,0x10,0xd9,0xc7,0x44,0xa5,0x7b,0x3f,0x2f,0x1e,0x6d,0xa7,0xfe,0x0c,0x0e,0x83,0x3e,0x38,0x27,0xa7,0x4e,0x85,0x3c,0x84,0xfe,0x95,0x48,0x85,0x09,0x75,0x62,0x1d,0xa4,0x64,0x54,0xed,0x89,0xd5,0x28,0x62,0x52,0x18,0xef,0xf0,0x57,0x05,0x30,0xf0,0xce,0x87,0x05,0x0d,0x81,0xe8,0x2a,0x3c,0x8c,0x22,0xe1,0x4b,0x32,0x42,0x9d
+.byte 0x02,0xc5,0xe4,0x6a,0xa4,0x4d,0x9b,0xc4,0x82,0x47,0xdc,0x61,0xbd,0x82,0x01,0xcd,0x5e,0x64,0x9f,0x4c,0xe3,0x31,0xe9,0x48,0x53,0x85,0x07,0xc7,0x47,0x49,0x35,0xd8,0x6a,0xab,0x4f,0x73,0x3f,0xd3,0xde,0x87,0x29,0xac,0xbc,0x35,0x0a,0xb4,0x74,0xc2,0xa7,0x0b,0xb1,0x93,0x92,0x29,0x3b,0x3e,0xa8,0xde,0x12,0x49,0x75,0xda,0x16,0x27
+.byte 0x52,0x2f,0x93,0x23,0xd6,0xf7,0x10,0xfe,0x1e,0x93,0x97,0x06,0x9d,0xef,0x4f,0xe4,0x3d,0x5d,0xde,0x30,0x70,0x3d,0x78,0x3a,0x30,0x00,0x9b,0x77,0x12,0x90,0x62,0xda,0x32,0x9b,0x6a,0x47,0xd7,0x0f,0xee,0x75,0x18,0xdd,0x4d,0x8a,0xe2,0x35,0x5b,0x60,0xb8,0xf9,0xa4,0x6c,0x93,0x3e,0x47,0x23,0xed,0x7a,0xe2,0x58,0x42,0xd6,0x3f,0x90
+.byte 0xc0,0x12,0x38,0x8b,0x70,0xe0,0xf8,0x1a,0xb5,0x8d,0xe1,0x39,0xdf,0x93,0x25,0x72,0x2e,0xa9,0x3f,0x58,0x12,0x40,0xc4,0x92,0x46,0x08,0xf0,0x64,0xdd,0x34,0x42,0xfe,0x74,0x35,0x0c,0xda,0xef,0x06,0x0b,0x33,0x59,0xd9,0xee,0x4c,0xf9,0x02,0x3a,0x93,0x40,0xa3,0x99,0x0e,0x64,0x11,0x2f,0x52,0x9d,0x28,0x4d,0xe8,0x45,0xd0,0x22,0xd7
+.byte 0x8f,0xd6,0x28,0x8c,0x0e,0x18,0x87,0x24,0xf9,0x88,0xd2,0xc0,0xe8,0xd4,0x9d,0xa2,0x5a,0x79,0x83,0x37,0x18,0x84,0x12,0xca,0xc7,0x10,0xd5,0x5a,0xa8,0xe5,0xa8,0xe7,0x79,0xb6,0x2c,0xb3,0x90,0x6c,0xc5,0xa4,0x99,0x1b,0x85,0x29,0x78,0x0b,0x09,0x77,0x05,0xf4,0x23,0x79,0x5c,0x91,0xf3,0xe0,0xe4,0x6f,0x82,0x33,0x4e,0xa2,0x2e,0xa2
+.byte 0x65,0x79,0xad,0x98,0x36,0x34,0x72,0x97,0xd7,0x39,0x89,0x5e,0x82,0x9f,0x4c,0xe2,0xea,0x51,0x85,0x62,0x0c,0x39,0xf6,0xdc,0xc6,0x80,0x48,0xcf,0x98,0x93,0x64,0x7d,0xf9,0x63,0xf4,0xf5,0x18,0x2a,0xb6,0x04,0xb7,0x44,0xc4,0x60,0xc0,0xcf,0x3d,0x88,0xa8,0xb6,0x81,0xa3,0x99,0x2a,0xf0,0x1a,0x8d,0x76,0x20,0x1d,0xcc,0x10,0x50,0x58
+.byte 0x09,0xf9,0xda,0x65,0x60,0xc3,0xb1,0xc1,0xc0,0x4d,0x62,0x52,0x22,0x45,0x32,0xbc,0x11,0x93,0x15,0xb6,0x25,0x8f,0x65,0xa0,0x4c,0x88,0xc9,0x83,0xe1,0x5c,0xbb,0xfb,0x1a,0xab,0xdb,0x35,0x40,0x66,0xc0,0x2f,0xdc,0xf5,0x92,0x08,0x4c,0xc7,0xb8,0x49,0x05,0xe0,0xe1,0x61,0x2b,0xde,0xc7,0x6a,0x04,0x05,0x4d,0x9f,0xe9,0x59,0x22,0x56
+.byte 0x63,0x77,0x9d,0xe3,0x1e,0x36,0xdf,0x87,0x4a,0xeb,0xba,0x42,0x3d,0x1b,0xa5,0xd0,0xc5,0x44,0x07,0xbe,0x37,0x37,0x70,0x10,0x2d,0x02,0x9b,0xf6,0x52,0xf3,0x54,0x6d,0x50,0xdb,0xdb,0x57,0x01,0x0b,0x9b,0xd5,0x99,0x99,0x69,0x9b,0x10,0x76,0x48,0xea,0x28,0x27,0x06,0x30,0x63,0x3b,0xdf,0x06,0x30,0x37,0x28,0x75,0xcf,0x9c,0xe7,0x52
+.byte 0x43,0xe2,0xd5,0x7b,0xfa,0x88,0x98,0x9c,0x3e,0x27,0x30,0x21,0xcc,0x11,0x71,0x14,0x24,0x04,0x1a,0x8c,0xe9,0xfe,0x2f,0x9d,0xec,0xb1,0x10,0x33,0x05,0x31,0x01,0x1b,0xde,0x6b,0x30,0x20,0x6d,0xf4,0x7c,0xbf,0x41,0x04,0x5f,0xb9,0x9c,0x24,0x63,0x74,0x98,0x3e,0x60,0xc7,0xf1,0xb1,0xc6,0x94,0xf3,0x6f,0x95,0x24,0xdf,0x97,0xd5,0xc7
+.byte 0x50,0x19,0xaf,0xa5,0xae,0x51,0xde,0x6d,0x44,0x0c,0x90,0x72,0x11,0x82,0x04,0xf9,0xda,0x17,0xd8,0xf3,0x03,0xf2,0x03,0x3f,0x65,0x7f,0xd7,0x66,0x84,0x9a,0x02,0x90,0x2b,0x65,0x00,0xd9,0x9c,0xfb,0xaa,0xe2,0xde,0x5f,0x1e,0x19,0x1e,0x6d,0x20,0x1e,0x01,0xf1,0xca,0x7b,0x90,0x06,0x96,0x1d,0x7a,0x34,0x0c,0x66,0x57,0xd7,0x61,0x1f
+.byte 0x74,0x03,0xcb,0xae,0xea,0xaf,0x65,0x8e,0x32,0xbe,0xb8,0xe6,0xd8,0x6d,0xf7,0x51,0x6d,0xec,0x7e,0xc6,0x9d,0x20,0x01,0xbf,0xd7,0xbc,0xcb,0x34,0x7c,0xe5,0x1f,0x92,0x72,0x2f,0x6f,0xa3,0x1f,0xe8,0x4d,0x7e,0xa5,0x85,0x3b,0xed,0xc7,0x25,0x53,0xe3,0x77,0x90,0x1f,0xda,0xb7,0x48,0x7d,0xbe,0x20,0x48,0x9f,0xb4,0x05,0x5d,0x41,0xc5
+.byte 0x48,0xd0,0xc9,0x83,0xbe,0xf8,0xd8,0x6b,0x0d,0x26,0x66,0x2e,0xef,0x6b,0x13,0x58,0x6b,0x5f,0x0e,0x8b,0x4e,0x57,0xb2,0x6b,0x3d,0x4d,0xcd,0xcb,0x9a,0x9b,0xda,0x4d,0x7f,0xea,0x17,0x06,0x7f,0xcd,0xaf,0x18,0xda,0x3d,0xf0,0x30,0x2e,0xbb,0xc2,0x1d,0xcf,0xde,0xf7,0xee,0xda,0xd6,0x3d,0x75,0xcf,0x19,0xcf,0xfc,0xdf,0x7a,0xb6,0x1f
+.byte 0x89,0xf5,0x0c,0xe9,0xd5,0xf1,0xd0,0x40,0xbd,0xae,0xb5,0x16,0xf6,0x05,0x1e,0xba,0xcd,0x18,0x80,0x4a,0xb3,0x87,0x93,0x6b,0x19,0xfc,0x47,0xa8,0x45,0x4b,0x75,0xe8,0x06,0xc0,0xbd,0x86,0xf7,0xcf,0x2c,0x39,0xc6,0x0b,0x3f,0x32,0xcd,0x1c,0x02,0xec,0x4b,0xd5,0x90,0x84,0xaf,0xc9,0x5c,0x9e,0x64,0x82,0x13,0x81,0x05,0x03,0xe4,0xed
+.byte 0x48,0x23,0xc3,0x53,0x2c,0x5a,0x22,0x0a,0x27,0x7e,0x55,0x79,0xdc,0x46,0xf5,0x4b,0x04,0xcc,0x43,0x87,0x6c,0xb5,0xa4,0x2d,0x78,0x70,0x02,0x43,0x0e,0x76,0x62,0x99,0x86,0x40,0x2a,0xe4,0x62,0xe6,0xee,0x4e,0x03,0x64,0x83,0x9c,0x38,0x6d,0x62,0xa6,0x85,0xb8,0xce,0xd7,0xf8,0xcb,0x78,0x00,0x7a,0x48,0x72,0x75,0x4e,0x9c,0x6f,0x0c
+.byte 0x61,0xc7,0x93,0x4e,0x6d,0x65,0xa3,0x1b,0x17,0x84,0xc6,0xd2,0x29,0xc3,0x4d,0xe3,0x14,0x21,0x5f,0x9e,0xa9,0x28,0x11,0xf3,0xb2,0xe8,0xe7,0x60,0x9e,0x24,0xab,0x88,0x9c,0x9c,0x5e,0x17,0xe4,0xe1,0xa7,0x74,0xb4,0x82,0xd5,0xaa,0x92,0x08,0xa7,0xa2,0x04,0x6f,0x77,0x14,0x54,0x44,0x5d,0x13,0x10,0xa2,0x40,0x1d,0xf0,0x44,0x16,0x17
+.byte 0xda,0x8c,0x80,0x83,0x2b,0x19,0xb8,0xab,0xf2,0xb8,0xb1,0x92,0xb5,0xc5,0x05,0x3e,0xd2,0x1a,0xfc,0xfd,0x21,0xa6,0xb2,0xbd,0x89,0xee,0x9c,0x3c,0x90,0xd9,0xf1,0xd2,0xe8,0xc3,0x21,0xb9,0x0e,0x0c,0x98,0xbc,0x5e,0xa1,0x0d,0x89,0xfe,0x0f,0x3c,0x45,0xea,0xe1,0x6e,0x06,0x59,0xff,0x79,0xf4,0x7e,0xf4,0x82,0xc0,0x6b,0xd9,0x53,0x30
+.byte 0x98,0xed,0x8d,0x6f,0x3d,0x0e,0xfb,0x42,0x66,0xab,0x41,0xa8,0x4a,0xef,0x73,0xa4,0x54,0x99,0x4f,0xb6,0x65,0x44,0xf9,0xd9,0x3c,0x6b,0x59,0x36,0xb0,0xe3,0x7c,0x4a,0x85,0x80,0x6c,0x77,0x6f,0x34,0x4e,0x9e,0x54,0xfd,0x0c,0x25,0x72,0xc3,0x5a,0xb6,0x3b,0xad,0x2b,0xd5,0x29,0x55,0x31,0xab,0x62,0xe4,0x15,0xed,0xef,0x16,0xef,0x43
+.byte 0xd5,0xdd,0x3d,0x64,0x8c,0x13,0xbc,0xcd,0x4d,0xfb,0x4f,0x86,0x3b,0x73,0x1e,0xc4,0xe8,0x54,0xb4,0xcc,0x49,0xba,0x4f,0x81,0xcd,0xe8,0x30,0x92,0x4b,0x57,0xd1,0x7c,0x0c,0x65,0x7d,0xe1,0x59,0xc6,0x8c,0x7d,0xad,0xd5,0xcf,0x6c,0xc4,0x9d,0xc5,0x3f,0x23,0x1f,0xb0,0x6d,0x1c,0x07,0xbf,0x38,0xc9,0x16,0xdc,0x5b,0x51,0xa1,0xdb,0x8f
+.byte 0xf8,0x25,0xc6,0x4d,0xc0,0x4d,0xa1,0x02,0xd9,0xd3,0xb5,0x63,0xda,0xe1,0x91,0x60,0x71,0x39,0x46,0x1a,0x13,0xe0,0xf2,0xca,0xcc,0xd3,0xbb,0x6b,0xd0,0x64,0xaa,0x0e,0xc0,0x89,0xa3,0xc6,0x14,0x56,0xe4,0x44,0x97,0xa9,0xcc,0x17,0x68,0xe6,0xfc,0xe5,0xfd,0xf0,0xa6,0x69,0xcd,0xac,0x20,0xc7,0xeb,0x53,0x1b,0x4f,0xdd,0xd3,0xb0,0xed
+.byte 0x30,0x4e,0x36,0x73,0x63,0xef,0x51,0x3e,0x9a,0x3e,0x41,0x2b,0x9c,0xda,0x67,0x96,0x46,0x33,0xe3,0x3f,0x87,0x01,0xd8,0xc5,0x26,0x80,0xe4,0x7e,0xf4,0x78,0x8c,0x2b,0x81,0x2a,0x01,0x7c,0xe3,0xfc,0x8d,0x6b,0xdc,0x84,0xb9,0xff,0x43,0x37,0x57,0xce,0x3f,0x5e,0x63,0xd3,0xbe,0xb6,0x4a,0x31,0xbf,0xb8,0x74,0x64,0x9c,0xf3,0xc5,0x8a
+.byte 0xae,0xe8,0x5f,0x68,0xcf,0xce,0xff,0x3f,0xc5,0xb5,0xfd,0x13,0x08,0x11,0x9d,0x1a,0x0f,0x06,0x08,0x4d,0x7c,0xf9,0xd4,0x20,0xdf,0x82,0xf9,0x86,0xfc,0xf3,0x67,0xa0,0x14,0x99,0xe5,0x47,0xf0,0x02,0x7b,0x16,0xca,0xcf,0xb9,0x0f,0x68,0x08,0x5d,0x1d,0x65,0xee,0x23,0x56,0xeb,0x11,0x5b,0xca,0xf1,0xa7,0xad,0x50,0xb2,0xd1,0x37,0x65
+.byte 0xe9,0x7e,0xf6,0xe9,0x64,0x42,0x49,0x80,0x40,0x17,0xe3,0x43,0x00,0xda,0xe1,0x7a,0x1c,0xb3,0xde,0xd9,0xf7,0x33,0xeb,0xb3,0xb8,0xf5,0x40,0x1b,0xcd,0x71,0x97,0x30,0xf9,0x9c,0x4d,0xac,0x7e,0x8e,0xd9,0x36,0x92,0x39,0xb5,0x56,0x0f,0x4f,0xbf,0x58,0xb8,0xba,0xc3,0xbd,0x79,0xb0,0xd7,0x6c,0x45,0x49,0xe2,0xde,0x94,0x04,0x9d,0x3e
+.byte 0x91,0x0a,0xb2,0x9b,0x90,0x57,0x2e,0x69,0xa4,0x4f,0x61,0xbf,0xdb,0xfb,0xe3,0xe9,0x81,0x26,0xe0,0x48,0x90,0x8c,0x32,0x95,0x8d,0x38,0xec,0x8e,0xa7,0x5e,0xc3,0x36,0xc6,0xd1,0xbc,0x9a,0xb3,0xba,0xdb,0x2c,0xe4,0xa0,0x50,0x74,0xef,0x98,0x48,0x14,0xc9,0x38,0x4d,0xa9,0x48,0x13,0xd4,0x08,0x60,0xfd,0xcf,0x5e,0xf2,0xcd,0xc7,0xeb
+.byte 0xaf,0x88,0x32,0x30,0x6f,0x19,0x01,0xec,0x87,0xae,0x6d,0x63,0xa3,0xa7,0x7b,0xcd,0x53,0xa7,0xf2,0xf2,0x9f,0x43,0xcb,0x0a,0x3f,0x8c,0xd2,0x55,0x8d,0xa7,0x95,0xcf,0x5b,0xae,0x64,0x23,0xda,0xb4,0xbd,0x32,0x34,0x95,0x8a,0x03,0xe7,0x6e,0xef,0x3f,0xb4,0xcf,0xc6,0x8a,0x2f,0xc6,0x59,0x99,0xdf,0xad,0x3c,0x15,0xed,0x83,0x0b,0x59
+.byte 0x8b,0xcd,0x0d,0xa6,0xcf,0x3a,0xc3,0xdb,0xc3,0x01,0xa9,0x32,0x38,0x45,0x5c,0xc8,0x56,0x81,0xef,0x21,0x7f,0x52,0xc4,0xb5,0x48,0x97,0x6a,0x60,0x75,0x3a,0x1a,0xd3,0xb0,0x60,0x9a,0x83,0x61,0xad,0x3b,0x4b,0x65,0xaa,0x9e,0x77,0x47,0x6f,0x3b,0x48,0xb0,0xc6,0x36,0x9a,0x59,0x5e,0x26,0xc4,0xb9,0xed,0x04,0xf3,0xc7,0x09,0x33,0xda
+.byte 0x81,0x63,0xa6,0x5d,0xe1,0x54,0x6b,0x04,0x17,0x2b,0xb9,0x2f,0xbd,0x55,0xdb,0xa1,0x69,0x00,0xcd,0xba,0xfa,0x36,0xaa,0x47,0x5a,0x7c,0xf4,0x1f,0x53,0x94,0x95,0x2f,0xf8,0x2a,0x4b,0xa8,0xcc,0x73,0xab,0xfd,0x25,0xb2,0x4e,0xd6,0x62,0x90,0x8c,0x8f,0x02,0xe4,0xdc,0x22,0x79,0x04,0x34,0x9b,0x54,0x5c,0x54,0xca,0x9b,0x8a,0xf8,0x05
+.byte 0xd1,0xb0,0x9e,0x8f,0xa3,0x0b,0x53,0xa8,0x6f,0x1b,0x2e,0xf2,0x71,0x78,0x28,0xce,0xa9,0xdb,0x4c,0x5b,0x83,0xfe,0xaa,0xff,0x99,0x2f,0x03,0x14,0xb2,0xe0,0x5f,0xaa,0x65,0x15,0x1f,0xd2,0x31,0x95,0x70,0x3c,0x8b,0x55,0x8e,0x87,0xed,0xbb,0x0c,0x91,0x87,0xaa,0xbe,0x49,0xdb,0x18,0x7b,0x1d,0x26,0xa7,0xdf,0x00,0xff,0x73,0x70,0x2e
+.byte 0x10,0xaf,0x46,0xea,0x7f,0xca,0xfa,0x09,0x13,0x02,0xac,0x3f,0xa0,0x02,0xa6,0x67,0xb7,0xec,0x18,0x73,0x91,0x25,0xa0,0x28,0xe3,0xd8,0xfa,0x11,0x6d,0x34,0x79,0x1d,0xe4,0x8f,0x7c,0x73,0x66,0x77,0x3e,0x43,0x23,0xb0,0xee,0x84,0xb5,0x75,0xc9,0x23,0x87,0x6a,0x4f,0x59,0x3d,0xb5,0xf1,0xd6,0x06,0xf8,0xa6,0x5d,0x0c,0x24,0xed,0x94
+.byte 0xd7,0xa8,0x31,0x37,0x10,0x60,0xb6,0x03,0x33,0x27,0x38,0xdd,0xd3,0x74,0x02,0xa3,0xa6,0x01,0x94,0xa9,0x56,0x11,0x23,0x0e,0xdb,0xfd,0x25,0x92,0xa8,0xfb,0x79,0xc8,0x8e,0x0e,0x10,0x1f,0xca,0x95,0xf6,0xad,0x28,0xe7,0xaa,0x2b,0xf1,0x40,0xf6,0xef,0x7b,0x40,0x28,0x57,0xbb,0x4c,0xac,0x0b,0x8b,0xb3,0xe3,0xec,0x53,0xf2,0x15,0x61
+.byte 0x2e,0x91,0xdf,0x91,0xfb,0x55,0xb6,0x7f,0x6c,0xfc,0xb7,0x4b,0x91,0xdc,0xf7,0xe5,0x91,0xd8,0x70,0x92,0x94,0xea,0x3f,0x62,0x98,0x14,0xc3,0x43,0x34,0x02,0x87,0xc7,0xca,0x60,0x4a,0xfb,0x50,0xe4,0xa9,0x92,0x10,0x04,0x7c,0x55,0xd3,0x9a,0x89,0xba,0x8e,0x6f,0x02,0xd6,0xc7,0x6f,0x91,0xb5,0x87,0xb9,0x0e,0xbe,0xe4,0x9f,0x01,0x0b
+.byte 0x20,0x60,0xc8,0x16,0xe6,0x23,0x1d,0x5f,0x4d,0x82,0xf4,0x42,0x25,0xe6,0x05,0xe3,0x5b,0xbb,0xd1,0xb0,0xad,0x0b,0x05,0x71,0x3a,0x7b,0xee,0x0e,0xe1,0xe4,0x08,0x9f,0xda,0xdf,0x59,0x57,0x4f,0x05,0x5a,0x51,0x9a,0x60,0xfd,0x85,0x21,0xd1,0x0a,0x3b,0x0a,0x15,0x61,0x28,0x98,0x0a,0x8f,0x1e,0x33,0x15,0xb3,0x5f,0xf3,0xbb,0x89,0x22
+.byte 0x0c,0xaf,0x91,0xce,0x44,0xb1,0x54,0xd0,0x80,0x86,0x43,0xa1,0xb9,0x07,0xde,0xab,0x1f,0x9b,0xae,0xef,0x07,0xf2,0x40,0x33,0x31,0x4d,0xf9,0x45,0x97,0xf6,0xcc,0xe5,0x3c,0x49,0xcd,0x83,0x6e,0x38,0x81,0xab,0x40,0x18,0xda,0xf6,0xfe,0xe7,0x96,0xd1,0x17,0x98,0xae,0xec,0xe9,0x93,0x37,0xbc,0x0b,0xa8,0x12,0xe7,0x65,0xca,0x27,0x37
+.byte 0x6a,0x74,0x81,0xf1,0xe0,0x6c,0x0d,0xba,0x86,0x48,0x94,0xd0,0x72,0xd5,0x4d,0x71,0xcf,0xa8,0x5e,0xd1,0x97,0xd1,0xed,0xf0,0xd3,0xe4,0xe3,0x41,0xc9,0x8f,0xfc,0x89,0xe8,0xbf,0x96,0x8b,0x86,0xb0,0x97,0x79,0x95,0xdf,0x69,0x56,0x6d,0x61,0x0a,0x37,0xcb,0x36,0xe1,0x95,0x88,0xf5,0xf0,0xe2,0x5c,0xb2,0x44,0x73,0xda,0x83,0xa7,0xdc
+.byte 0x8b,0x35,0x3e,0xc1,0xd5,0x88,0x17,0x3b,0xeb,0xcf,0x36,0x9c,0xef,0x40,0xb2,0x72,0xde,0x4f,0x16,0x6c,0x8c,0x9d,0x15,0xce,0x7d,0x0d,0xc3,0x2f,0xea,0xab,0x50,0xdf,0x02,0xe0,0x24,0xcc,0xf4,0xa7,0x25,0xba,0x85,0x0d,0x62,0x9a,0x39,0xc7,0x5a,0xd1,0x9a,0xd1,0xa7,0x45,0x5f,0xc2,0x44,0xf5,0xa9,0x8d,0xd8,0xbc,0xd3,0xc8,0x75,0x0d
+.byte 0x06,0xc6,0x4b,0x24,0xc6,0xe5,0x72,0xf7,0xd5,0x87,0xca,0x3c,0xc0,0x1c,0x18,0xa9,0x40,0xc6,0x7b,0xe5,0x4c,0xe6,0xb7,0x01,0x57,0xc1,0xcf,0x63,0x83,0x58,0x63,0x47,0xcf,0xa4,0xd3,0xf6,0x1d,0x2c,0xbf,0x17,0xe6,0x0a,0x7b,0x2d,0xa9,0x34,0x23,0xfc,0x1f,0x06,0x31,0x47,0x7b,0x31,0x34,0x8c,0x3c,0x15,0x9b,0xac,0xfd,0x38,0xe6,0xa3
+.byte 0x9e,0xa7,0xdf,0xa6,0x37,0x61,0xfd,0x85,0xb8,0x2e,0x67,0x73,0x7f,0x60,0x12,0x8b,0x62,0xb0,0x38,0xd0,0xaa,0xc4,0xad,0x3b,0xa9,0x04,0x66,0xdd,0xbb,0x9c,0xb1,0x95,0xe1,0x9c,0x0a,0x72,0x80,0x12,0xaa,0xa8,0x0c,0x3f,0x90,0x20,0x33,0xb4,0x76,0xdd,0x26,0xfe,0x1e,0x8f,0x6a,0x2d,0xea,0x4a,0xdc,0x28,0x47,0x66,0x36,0x5b,0x50,0x60
+.byte 0x7e,0x3e,0x93,0xf3,0xe9,0x37,0x31,0x3b,0x43,0x46,0x85,0xb3,0xa9,0xb2,0x14,0x95,0x96,0x49,0xf9,0x2a,0xe7,0x9e,0x3a,0x3e,0xd8,0x12,0xf7,0xbc,0x43,0x8c,0x35,0x31,0x44,0x08,0x7f,0x25,0x39,0x86,0x98,0x6a,0xe8,0xe3,0x2e,0x73,0x2d,0x3b,0xac,0x2d,0x75,0x4c,0xc8,0xca,0x21,0x2d,0x96,0x9b,0x4f,0x56,0xff,0x2d,0xc2,0xe2,0x98,0x3d
+.byte 0xe2,0x3f,0xee,0x10,0xb7,0xc3,0x3d,0xa8,0x50,0x88,0x7f,0xd5,0x4e,0xbd,0xc7,0x9d,0xdc,0x01,0x49,0x27,0xf2,0xae,0xea,0x93,0x72,0xdf,0x00,0xcd,0xe6,0xa1,0xdd,0xd1,0x18,0xeb,0xa7,0xe1,0x4a,0x7b,0x38,0x72,0x73,0x29,0x46,0xa3,0xb3,0x25,0x23,0x6d,0x26,0xab,0x86,0xdc,0x67,0x52,0xe5,0x4a,0x5e,0x8f,0x16,0x67,0x8a,0x28,0x13,0xba
+.byte 0x44,0x42,0xb5,0x21,0x9f,0x30,0x66,0x7f,0xc9,0x87,0x40,0xcb,0x75,0x58,0x2e,0xcd,0x09,0xb9,0x8a,0x84,0xa3,0xbd,0x63,0x53,0x75,0x2f,0x77,0x8b,0x7e,0x19,0x31,0x33,0x3b,0x9a,0xfb,0x86,0x39,0xa6,0xd9,0xeb,0x9b,0x43,0xc6,0xd9,0xc2,0x10,0xab,0x42,0xe5,0xc6,0x4a,0xe6,0x3e,0xde,0x9d,0xac,0x8e,0x95,0xf0,0xdb,0x48,0x95,0xc2,0x87
+.byte 0x6b,0x7f,0xde,0x09,0xdb,0xed,0x49,0x19,0x73,0x2d,0xa4,0x5c,0xdf,0xfa,0x2e,0x15,0xd0,0xb6,0x46,0x32,0xc9,0x7f,0x7e,0x01,0xd3,0x25,0x45,0x0e,0x5b,0x0d,0xf0,0x67,0xe3,0xd9,0xdf,0x4f,0x3b,0x6f,0xb3,0x15,0xc5,0x6b,0x91,0x75,0xa2,0xaf,0x42,0x3a,0x14,0x50,0xd9,0x4f,0x19,0x65,0x12,0x83,0x5d,0x8f,0x8a,0x01,0x0b,0x89,0xcc,0x7f
+.byte 0x1a,0xde,0x5b,0x44,0x34,0x98,0x0f,0x8e,0x5a,0x5e,0x03,0x41,0x3e,0x66,0x9b,0x16,0xf5,0x91,0x7c,0xb0,0xc1,0xbf,0xa2,0x10,0x0b,0x60,0x3a,0x63,0x0c,0xcf,0xd8,0x49,0xdb,0x42,0x88,0x1f,0x36,0x8e,0x15,0xdb,0x5d,0x3f,0xe7,0xf1,0x9a,0x73,0x2b,0x74,0x0c,0xd5,0x09,0xab,0x01,0x2e,0x52,0x6f,0x03,0xf6,0xc9,0x0b,0xeb,0xa5,0xce,0x2e
+.byte 0x1c,0x02,0x35,0xca,0xce,0xfe,0x4b,0xad,0x67,0x21,0xf8,0x44,0xea,0x70,0xf2,0x3d,0xfc,0x43,0x77,0x05,0x26,0xbe,0xaf,0x99,0xab,0x41,0xd4,0xcc,0x53,0x33,0x33,0xcd,0xb4,0x2d,0x76,0xfb,0xae,0x0c,0xac,0xc1,0xd0,0x42,0xfb,0x45,0x4a,0x6e,0x55,0xd2,0x93,0xef,0xb9,0x06,0xbc,0x38,0xce,0x94,0xc2,0x01,0xdf,0x27,0xc8,0x47,0xff,0x74
+.byte 0xfb,0x84,0xc5,0xa2,0x78,0x1f,0x4f,0x73,0x12,0xec,0x2d,0x82,0x5b,0xeb,0x3c,0xb6,0x1c,0x5a,0x29,0x9c,0xba,0x9e,0xa4,0x85,0x94,0x84,0x68,0x01,0xd7,0xb1,0x27,0x84,0x4a,0x7d,0x62,0x9c,0x32,0x12,0x89,0xd8,0x66,0xb5,0xe9,0x07,0xf4,0x5f,0x6b,0x0e,0x90,0x87,0xe5,0xc1,0x8b,0xaf,0x8f,0xf7,0xca,0x54,0xe0,0xc6,0x5f,0xa5,0xec,0xd1
+.byte 0xdc,0xdc,0x17,0x9e,0xca,0x4b,0x72,0x72,0x03,0x96,0x62,0xaa,0xc1,0xfe,0x23,0x7e,0xd2,0x06,0x61,0xb6,0xc9,0x0d,0x7e,0xbf,0x72,0x1c,0x66,0x46,0x0b,0x31,0x96,0x81,0x11,0x3d,0xac,0x5e,0xd0,0x35,0xaf,0xac,0x4c,0x74,0xce,0xf9,0x9c,0x64,0x3d,0xe5,0x9d,0xfe,0xc7,0x05,0x09,0xe1,0x70,0xc5,0x37,0xd5,0x4e,0xd8,0x7d,0xdb,0xfa,0x1c
+.byte 0x28,0xfc,0x10,0x2a,0xe8,0x62,0x18,0x09,0x97,0xe0,0x98,0x2e,0x9f,0x1d,0x18,0xff,0x22,0xe9,0x5d,0x37,0xd2,0x74,0xf1,0x81,0x08,0x8a,0x55,0xc0,0x40,0x0f,0x70,0xbe,0x82,0x23,0x78,0x35,0xc8,0xf8,0x59,0x6e,0x0d,0x2e,0xd5,0xe7,0xf5,0x2e,0xbd,0xcd,0x1a,0xcf,0x76,0x43,0x1f,0xca,0x15,0x6c,0x4a,0xb7,0xc7,0xb9,0xaf,0x68,0xd7,0x31
+.byte 0x1e,0x0c,0x9c,0x78,0x74,0x66,0x80,0xc6,0x74,0xbe,0x86,0x59,0x0c,0x12,0xdc,0xf3,0x1b,0xaf,0x63,0x74,0xce,0x1e,0xac,0xf0,0x65,0xa0,0xab,0x7f,0x96,0x08,0x32,0xb2,0xca,0x9c,0xfb,0x9d,0x66,0x63,0x76,0xf9,0x69,0x08,0x6e,0xd3,0x46,0xde,0xdf,0x54,0x06,0x0d,0x25,0x81,0xd9,0x5a,0x45,0xeb,0xe5,0xc0,0xf6,0x86,0x0f,0xe9,0x27,0x7c
+.byte 0xdc,0x52,0x28,0xb5,0xd0,0x7d,0x07,0xc1,0xb6,0x9b,0xdc,0xea,0xd3,0x2a,0xba,0xb0,0xd5,0xa3,0xd8,0x25,0x07,0x9c,0x6c,0xd6,0x16,0xa5,0x93,0x43,0x52,0xa7,0x5c,0x2b,0xe2,0xfa,0x8e,0x6e,0xaa,0x04,0x84,0x63,0x80,0x0f,0x90,0x10,0x41,0x1c,0xf6,0x67,0xea,0x39,0xb0,0x16,0xfc,0x6f,0x85,0x28,0x8c,0x8e,0xfb,0x79,0x39,0xdf,0xf6,0x6e
+.byte 0x57,0xa1,0xaa,0xf1,0x0b,0x99,0xde,0xad,0x69,0xe2,0xf4,0x74,0x8e,0x8c,0x2d,0x20,0xdb,0xf3,0x2d,0xc2,0x75,0xe7,0xd6,0xc8,0x9d,0x46,0x3b,0x8b,0x8b,0x18,0xd8,0x41,0xfd,0xc2,0x7d,0xec,0x66,0x78,0xe7,0xbe,0xee,0x2b,0x07,0xd8,0x7e,0x13,0x61,0x7e,0xab,0x7d,0x2b,0x3f,0x83,0x96,0xf5,0xab,0x0b,0x20,0xd2,0x5b,0xb0,0xeb,0xf7,0x1b
+.byte 0xac,0x1a,0x16,0x46,0x21,0x90,0xdb,0x67,0x66,0x42,0xe2,0x54,0x34,0xae,0x34,0xae,0x21,0x33,0x8c,0x48,0x19,0xdb,0x1f,0xa8,0x25,0x76,0xe0,0x03,0x1c,0x35,0x8d,0xd3,0xab,0x6b,0x93,0xf3,0xad,0x7d,0x3c,0x76,0x1d,0xaa,0x43,0x80,0x0f,0x5f,0x20,0xd9,0xf0,0xff,0x8b,0xf4,0xdb,0xbc,0xf2,0xff,0xf2,0x8a,0xfc,0xf5,0x0e,0x4e,0xd9,0xb0
+.byte 0xd6,0xb3,0x86,0x5b,0x3e,0x10,0x87,0x50,0xf1,0xd2,0x8f,0x8d,0xa4,0x39,0x85,0xf5,0x90,0xd6,0x53,0x69,0x40,0x42,0xc1,0xc3,0x7c,0xc1,0x3e,0x97,0xb4,0x08,0x49,0x93,0x4e,0x4c,0x67,0xd9,0x2e,0x05,0x70,0x04,0x98,0x0a,0xed,0xd0,0xff,0x0c,0x13,0xe4,0xde,0x75,0x81,0x24,0xb1,0x27,0x79,0xeb,0x80,0x68,0x52,0x50,0x66,0x77,0x4f,0xf6
+.byte 0x64,0x2f,0x85,0x9e,0xc1,0xbf,0x9f,0x0e,0x31,0x9a,0x36,0x24,0xcd,0xa8,0xe8,0xce,0x41,0x86,0xd1,0x02,0x96,0xdc,0x1a,0xa0,0x48,0xca,0x61,0xd5,0x87,0xdb,0x0a,0xeb,0x69,0x95,0xca,0xf8,0xe5,0xa0,0x5b,0x91,0x8f,0xb9,0x59,0x5f,0x68,0x60,0x58,0xc5,0xe0,0xc7,0x02,0x68,0xa5,0x67,0x1e,0xfc,0xa9,0x27,0x9f,0x83,0x4c,0x05,0x60,0xee
+.byte 0xcb,0x79,0x31,0x73,0x36,0xf4,0x39,0x44,0xdb,0xea,0x62,0x89,0x97,0x69,0xd1,0x0d,0xf6,0x27,0xcf,0x47,0xfe,0x3d,0x5c,0xe9,0x92,0x54,0x0a,0x66,0xaf,0x82,0xb1,0x49,0x87,0x3f,0xa2,0x95,0x91,0x0e,0x72,0x1e,0x7b,0xde,0x32,0x31,0x51,0x40,0x24,0x4f,0x30,0x59,0x7d,0x97,0x28,0x30,0x7e,0x93,0xcd,0x1e,0x16,0xef,0xe1,0xb5,0xa8,0xff
+.byte 0x3a,0xd0,0x62,0x94,0x8b,0x72,0xe7,0x97,0x8f,0x2f,0x58,0x3e,0x62,0x43,0x6b,0x28,0x05,0xc9,0x0d,0xf0,0x09,0xbd,0x12,0x3b,0xd8,0x15,0xd3,0x7c,0x97,0x96,0x5a,0xf4,0x9f,0x8d,0x25,0xb7,0xc5,0x66,0xf7,0xf7,0x5f,0x7e,0xca,0x2f,0xcd,0x9a,0xf2,0xa3,0x9b,0x4f,0x6f,0xc3,0xd9,0x64,0x38,0xda,0x87,0x97,0x8a,0x49,0x2d,0x80,0x16,0x73
+.byte 0x88,0x62,0xd2,0xdf,0x4f,0xf7,0x79,0xc0,0x83,0xeb,0x2b,0x66,0x5a,0x21,0x3a,0xa2,0x2a,0xed,0x8c,0xe7,0x91,0x6d,0x56,0x18,0xfc,0x59,0x68,0xea,0x9f,0x5c,0x3c,0xd5,0x0f,0x64,0x70,0x89,0x22,0x83,0xed,0xfa,0xc9,0x21,0x68,0x3c,0x69,0xb8,0x3e,0x89,0xb5,0x9d,0x8b,0xc8,0xf7,0x57,0x17,0x27,0x90,0x12,0xa7,0xd2,0x4d,0x2c,0x30,0x64
+.byte 0x42,0xbe,0xa6,0x49,0x4e,0xa3,0x3b,0xdb,0xdb,0x64,0x0e,0x89,0x66,0x87,0x72,0x90,0x86,0x1d,0x0b,0x61,0x32,0x47,0x3d,0x55,0x81,0xb2,0x50,0x5a,0x76,0x6c,0xa3,0x46,0x12,0x1b,0xaf,0x6e,0xbf,0xfd,0x98,0x2f,0xb7,0xd2,0x31,0x92,0xb5,0x26,0x1a,0x3d,0xfa,0x5d,0xc0,0x24,0x44,0xd2,0x6b,0x1c,0x81,0xf5,0x5d,0x50,0xb0,0x33,0x18,0xe0
+.byte 0xc5,0xb3,0x6b,0xf4,0xfd,0xde,0xf7,0x2f,0x69,0x1d,0x5a,0xfe,0x03,0x6d,0xca,0xad,0x29,0xe0,0x6e,0x70,0xcd,0xe3,0x6d,0x38,0xef,0xf1,0x3a,0x76,0x2b,0x2c,0xb6,0xcd,0xff,0xeb,0xbc,0xe7,0xd9,0x40,0xbe,0x23,0x61,0x20,0xd5,0xb8,0x66,0x77,0x65,0xc9,0x33,0xf5,0x75,0x8e,0x15,0x98,0x3f,0xb1,0x4a,0xb8,0x1c,0x47,0x73,0x45,0x0f,0x73
+.byte 0x2a,0xa1,0xb7,0x73,0x76,0x94,0x16,0x45,0xcf,0xd6,0x8f,0xe3,0x62,0x8a,0x42,0xfd,0xe3,0x1e,0xe0,0x7d,0xb5,0x99,0xbd,0x1c,0xf2,0x60,0xb2,0x72,0xa8,0x4b,0x19,0xd6,0xd0,0xdb,0x0b,0x1f,0xc9,0x68,0xc0,0xf3,0x65,0x04,0x50,0x41,0xf0,0xb3,0x0e,0x0a,0x9d,0x7f,0x0b,0x1f,0xeb,0x5b,0x4c,0x58,0x6a,0xf2,0x02,0x95,0xd2,0xf3,0xac,0xe5
+.byte 0x69,0x81,0xb1,0x3f,0x08,0xfc,0xba,0xcb,0x36,0xcd,0x54,0x28,0xac,0x65,0xd8,0x81,0xab,0xc1,0x6a,0x51,0x97,0x21,0xe4,0xc6,0xaf,0xd8,0x76,0x76,0xa4,0xc4,0xd0,0x58,0x63,0xdf,0x32,0xf5,0x04,0xfb,0x11,0xeb,0x76,0x39,0xda,0x55,0xf4,0x7e,0x1c,0x7b,0x04,0x07,0x4d,0x5a,0xeb,0x74,0x0a,0x57,0xcf,0x10,0xf6,0x0e,0x73,0x02,0x25,0x67
+.byte 0x4f,0x8f,0x37,0x75,0x8f,0x44,0x2a,0x1a,0x6d,0x05,0xda,0xe0,0xa0,0xaa,0xd2,0x78,0xaa,0x7e,0x76,0x0a,0xde,0x2a,0x54,0xae,0x1e,0x39,0xcc,0x3c,0x1c,0xa6,0xd5,0x8a,0xca,0xb4,0xcc,0x76,0xb9,0x30,0xd2,0xe2,0x46,0x31,0xb6,0x51,0xcf,0xe2,0x24,0x77,0xc9,0x9b,0x57,0x3c,0xa3,0x84,0x60,0x59,0x28,0x5f,0x23,0x74,0x17,0x79,0x42,0xbe
+.byte 0x60,0x3f,0x09,0x6a,0x43,0x8e,0x40,0x25,0x79,0xb5,0xbb,0xbb,0x72,0x50,0xad,0x4f,0xaa,0xa2,0xd4,0xb2,0xc6,0x7d,0x50,0x7b,0x98,0x59,0x22,0x06,0x7d,0x2c,0x35,0xdd,0x44,0x34,0x9c,0x28,0x98,0xf3,0xe5,0xd0,0x7e,0x09,0xbe,0xc4,0x00,0x72,0xd5,0xa6,0x3b,0x0e,0xb1,0x18,0x91,0x0a,0x4d,0x5d,0xe2,0x0a,0x98,0x79,0x30,0x9b,0xaa,0x38
+.byte 0x03,0x2b,0x6c,0xb2,0x8e,0x0a,0x1d,0x30,0x59,0x8a,0xe8,0x6c,0x6d,0xb5,0xd4,0x91,0xc5,0x28,0x1d,0x5e,0x49,0xe0,0xfc,0x26,0x7f,0x40,0xc0,0x6a,0x81,0x0d,0xb9,0xc6,0x05,0xc6,0x18,0x82,0x70,0xf6,0xea,0x0e,0xb4,0x85,0xba,0x5d,0xfa,0xfd,0xe3,0xd6,0x08,0x7c,0x3d,0x99,0x03,0xd4,0xdc,0x9b,0x50,0x12,0xc8,0xbd,0x8c,0x47,0x67,0x28
+.byte 0x83,0x97,0xca,0xef,0xc3,0x1c,0x2b,0x6e,0x3b,0xf7,0xca,0x7a,0x68,0x6e,0x39,0x25,0x58,0xf7,0xa4,0x11,0x9d,0x8d,0x49,0x29,0xd6,0x6e,0x0b,0x0a,0xcf,0xa7,0x04,0x14,0x6f,0xc4,0x4c,0x36,0x1a,0x16,0x3e,0x8f,0x99,0x69,0x94,0x1d,0xa8,0x66,0x93,0xeb,0x1d,0x82,0xfd,0x3f,0x84,0xb0,0x9d,0xa4,0xe1,0xb0,0xd4,0x9d,0xb2,0x60,0x20,0xfb
+.byte 0xd3,0xa0,0xdc,0x79,0x83,0xb0,0xfc,0x50,0x18,0x57,0xe1,0xeb,0x44,0x25,0x05,0xab,0x27,0xfb,0x5f,0x83,0xcd,0x51,0xd0,0x3b,0x80,0x4a,0xce,0xbf,0xe9,0xfe,0x46,0xd2,0x5f,0xea,0x8c,0x89,0x48,0xc8,0x65,0xdd,0x2a,0xa4,0xda,0x54,0xc2,0x37,0x7e,0xd7,0xff,0x80,0x5b,0xf0,0xc3,0x40,0x44,0x40,0x72,0x63,0x23,0xc6,0x9a,0x48,0xf3,0x4b
+.byte 0x91,0x64,0x26,0xfc,0xf3,0xa0,0xb9,0x06,0x0c,0x88,0xbb,0xc0,0x93,0x73,0x63,0xf6,0x9c,0x0d,0xe2,0xf6,0xee,0xe0,0x51,0xfd,0xae,0x4d,0x21,0xb9,0x6b,0x7d,0x1e,0x34,0xa0,0x4d,0xe4,0x25,0x30,0xe6,0x81,0x2e,0x32,0xef,0xb9,0x9e,0xaf,0xa0,0x22,0xe0,0x67,0xe6,0x07,0x55,0x3a,0xed,0xef,0x4f,0x87,0x2f,0x44,0xd2,0xef,0xc1,0xfb,0xc4
+.byte 0x7b,0x27,0x20,0x44,0xd2,0xd6,0xf9,0xf3,0x67,0xc1,0xbf,0xaa,0xd5,0x9c,0xd9,0x2c,0xd5,0xf1,0x42,0x2d,0xec,0x39,0xb5,0xc1,0x18,0xed,0x6c,0x47,0x80,0xf8,0x6f,0x66,0x10,0xee,0x1d,0xd6,0x79,0x01,0x4e,0x2a,0xd0,0x83,0xa7,0x9d,0x1d,0x81,0xce,0xf5,0x6f,0x26,0x86,0xd2,0xd7,0x56,0x15,0x65,0x48,0x4c,0xf1,0xf9,0x21,0x77,0xd1,0x84
+.byte 0x22,0xce,0x4d,0x8d,0x83,0xda,0x8c,0x50,0x56,0xc8,0x3b,0xc5,0xb6,0xcf,0x3e,0x0d,0x50,0xe5,0x9d,0x6c,0xb5,0x2a,0x5a,0x58,0x28,0xf5,0x0a,0x05,0xf3,0x0e,0x40,0x8e,0xb6,0xb4,0xdf,0x11,0x1b,0x34,0x81,0xc5,0x0e,0x09,0xa6,0xfc,0x46,0x14,0x02,0x78,0x94,0xbb,0x63,0x9d,0x3e,0x25,0x2c,0xc8,0x1b,0x5c,0xef,0x64,0x77,0x0c,0x04,0x40
+.byte 0xe1,0x45,0x85,0xf8,0x07,0xbf,0x14,0x65,0xe9,0xfc,0xba,0xe4,0x9c,0xa7,0x91,0x56,0x2a,0x3a,0x8e,0x33,0xae,0x56,0x04,0x9d,0x35,0xbc,0xad,0x64,0x0e,0x99,0x8e,0xb5,0x84,0x72,0xcf,0xcc,0x81,0x14,0x11,0x9e,0xe6,0xac,0x0d,0x41,0x43,0x4e,0x2a,0x0d,0xda,0x98,0x42,0xfa,0x8c,0x21,0x79,0x93,0xa3,0xdf,0x84,0x88,0x76,0x14,0x5b,0xb9
+.byte 0xff,0xe1,0xab,0x94,0xc3,0xcd,0x10,0x69,0xee,0x53,0xea,0xfe,0xfb,0xaa,0x43,0x8f,0xdd,0x55,0x88,0x34,0x5d,0x55,0x0f,0x42,0x4d,0x1d,0x93,0xce,0x96,0x67,0xf8,0x33,0xc7,0xca,0x34,0x11,0x28,0xb2,0xed,0x0f,0x00,0x40,0x84,0xee,0x51,0x26,0x6e,0x7b,0x2d,0x77,0xeb,0x18,0xb8,0x9a,0xad,0x28,0xb6,0x6c,0x5e,0xde,0x10,0x4c,0x29,0x1d
+.byte 0x79,0x3c,0x2e,0x1c,0xf0,0xc8,0xb3,0xee,0x19,0x7a,0x10,0xe1,0xe3,0x05,0x1e,0x63,0xe9,0x00,0xd7,0xfe,0x83,0xe7,0x54,0xff,0x65,0x9a,0x27,0xa3,0x86,0x72,0x5c,0xb6,0xef,0xf5,0x84,0x68,0x1e,0xae,0xe6,0xf8,0x66,0x9c,0x1b,0x86,0xab,0xfa,0x1a,0xe3,0xb8,0x97,0x16,0xb1,0xb7,0x42,0xfa,0x85,0xa3,0x3a,0x0d,0x21,0xd2,0x35,0xb1,0x89
+.byte 0xf0,0x4f,0x1a,0x1d,0x45,0x34,0x2f,0x31,0x12,0x8c,0x19,0xe7,0x4b,0x14,0xa7,0xcf,0x0f,0xf9,0xcd,0x77,0x40,0xbe,0x09,0xeb,0xc3,0x3e,0x4a,0x37,0x55,0xab,0xbb,0x9c,0xe5,0x22,0x56,0x8a,0x66,0xfa,0xb1,0xff,0x73,0x29,0x52,0xb1,0x89,0xf7,0xab,0xa6,0x58,0x53,0x97,0xfd,0x44,0xda,0xbd,0x0b,0x1f,0xc8,0x88,0x01,0xcc,0x5e,0xf7,0x05
+.byte 0xbd,0xf7,0x0a,0x4d,0xcb,0xef,0xbf,0xd9,0x8e,0x15,0xc3,0x40,0xb9,0xc9,0x14,0xe5,0x05,0x3c,0x20,0x67,0xfe,0xdc,0xa6,0xb8,0x92,0xbd,0xf5,0x33,0xb5,0x77,0x11,0x28,0x47,0x21,0x28,0x18,0x61,0xf8,0x1c,0xdb,0x65,0xad,0x89,0x0d,0x98,0x79,0xca,0x2b,0xa3,0x4f,0x16,0xa6,0xb3,0xb9,0xcc,0x47,0x5b,0x13,0x96,0x2e,0x39,0x78,0x24,0xc5
+.byte 0xf9,0xf5,0xae,0xdc,0x34,0x3c,0xf7,0x48,0x0d,0x75,0xaf,0x51,0x75,0x48,0xbe,0x4d,0x73,0x89,0x5a,0xfc,0xd7,0x51,0xd3,0x93,0xa8,0xbc,0xc3,0xa6,0x6b,0x63,0xc1,0xc3,0x7b,0x48,0xf1,0x57,0xe4,0xb4,0xce,0x5f,0x18,0xae,0xdc,0x61,0x99,0xaa,0x7e,0x49,0xd6,0xb5,0x2c,0x62,0xb8,0x8c,0x4a,0x94,0xc1,0xc2,0x13,0x23,0xdc,0x7c,0x48,0xc2
+.byte 0xaa,0xc4,0xd9,0xc0,0x09,0x11,0x6e,0x35,0x07,0x14,0x77,0x7e,0xeb,0x87,0x00,0x05,0x30,0xec,0xb2,0xc6,0xde,0x6e,0x42,0x0b,0x2a,0xb6,0xca,0xb1,0xdc,0x69,0x57,0x1b,0xad,0x52,0xa8,0x22,0x1e,0xb5,0x2b,0xb5,0x8e,0x39,0x4b,0xbf,0x38,0xf4,0xb2,0xf5,0xa1,0x9c,0x7b,0x7f,0x6c,0x14,0x48,0x37,0xa9,0xf9,0xcd,0x85,0x50,0x53,0xb0,0xc1
+.byte 0x15,0x28,0x19,0x3b,0xb1,0x04,0x44,0x93,0x7a,0x16,0x76,0x69,0xa1,0x5c,0x67,0xcc,0x8d,0x02,0x56,0xcd,0xd9,0x91,0x49,0x8c,0x1b,0xc9,0x89,0x98,0x09,0x2e,0x5b,0xf8,0x7c,0xe6,0x0f,0x46,0xb0,0xcc,0xe5,0x75,0x63,0xaf,0x40,0xd5,0xa3,0x45,0x4a,0x76,0x67,0x1d,0x81,0xc2,0x25,0x85,0x7f,0x52,0xc5,0xf8,0x6d,0xd9,0xb6,0xa8,0xa4,0x96
+.byte 0x63,0xcc,0x15,0xc5,0xec,0x40,0x0e,0x08,0xf7,0x6f,0x85,0xa5,0xe7,0x2e,0xbe,0x3f,0xf4,0xc8,0x74,0xc7,0xed,0x86,0x85,0xc0,0x44,0x9e,0x80,0xc8,0x89,0xdc,0x16,0x47,0xb1,0x68,0x0e,0x65,0x66,0x0f,0xbc,0x33,0xb1,0x78,0x1e,0x5e,0xd7,0xde,0x97,0x96,0xb8,0x74,0x5c,0x90,0x7a,0xed,0x36,0xf4,0x10,0x91,0x5a,0x42,0x92,0x81,0x11,0x73
+.byte 0x3e,0xf1,0x5e,0xfb,0xc2,0x38,0xe6,0xe5,0x41,0xce,0x96,0xed,0x44,0x14,0x9c,0xc0,0x1f,0x83,0x5f,0xdd,0x50,0x87,0x90,0x86,0x50,0x61,0x87,0x99,0x7c,0x64,0x2d,0x50,0x17,0xa3,0xb0,0x7e,0x69,0xd3,0x86,0xb4,0x7c,0xe7,0x15,0x34,0x9e,0x3b,0x17,0xc0,0x2d,0x08,0x60,0x8b,0xae,0xec,0xa2,0xf6,0xf1,0xa4,0xbc,0x7b,0xc2,0x75,0x91,0x13
+.byte 0xf6,0xd0,0x71,0xf0,0x3c,0x9c,0x51,0xb3,0x33,0x53,0x57,0x47,0x8b,0x47,0xb0,0x0b,0x95,0x9a,0x39,0x70,0x63,0x91,0xcc,0xd8,0xd0,0x23,0x32,0xc0,0xb6,0x0f,0x91,0x30,0x29,0x45,0xf1,0xfc,0xa1,0x83,0x10,0x9a,0xa4,0x05,0x05,0x9f,0x33,0xbd,0xaf,0x16,0x3e,0x53,0x39,0xb1,0x4b,0x76,0x55,0x3e,0x6f,0x47,0x23,0x59,0x4c,0xbb,0x82,0x31
+.byte 0x19,0xe2,0xb1,0x49,0x20,0x91,0x2d,0xb0,0xfe,0xa6,0xae,0x7f,0x6e,0xd1,0x5b,0xb9,0x84,0x18,0x0f,0x68,0xc6,0x56,0x8a,0x22,0x81,0x3f,0x38,0x42,0x7a,0x31,0xa1,0xc1,0xf7,0x10,0x6a,0xc3,0xb1,0xaf,0x19,0xad,0x06,0x3a,0x53,0x9d,0x44,0x9f,0xe7,0x25,0xac,0x59,0x06,0xb9,0xd2,0xf6,0xce,0xb6,0x1e,0x4d,0x65,0x2e,0x05,0xb4,0x14,0x91
+.byte 0xfb,0x5b,0x26,0xd0,0xee,0xfa,0x45,0x5b,0x0c,0xd5,0x5c,0x1f,0x0c,0xe0,0xf6,0x50,0x78,0x77,0x7e,0x83,0x04,0xec,0x3b,0x53,0x28,0x97,0x56,0x61,0xeb,0xa0,0x78,0xe5,0xc0,0xb2,0x3c,0xcd,0x6f,0x4b,0xda,0x11,0x00,0x93,0x49,0x9f,0x03,0x22,0x39,0x3a,0xc8,0xef,0x01,0x91,0x12,0x36,0x15,0x0c,0x47,0xd5,0x8b,0x77,0x5e,0x5f,0x91,0x4b
+.byte 0x44,0x98,0xa0,0xa0,0x46,0x0f,0x17,0xef,0xf9,0x52,0x0b,0x92,0xc1,0xe0,0xfc,0x63,0x9b,0x6d,0xe2,0xde,0x88,0x89,0x32,0x89,0x93,0x44,0x6d,0x69,0xe7,0x26,0xfd,0x77,0xc0,0x18,0x58,0xdb,0x74,0xec,0x04,0x0c,0x60,0x51,0x74,0xca,0x49,0x3e,0x4f,0x5f,0xaa,0x53,0xf2,0xc1,0xcb,0x89,0x1f,0x69,0xaa,0xbb,0x97,0x17,0x04,0x49,0x5e,0x44
+.byte 0xf3,0xf3,0xc4,0x98,0x9d,0x49,0x1e,0xb0,0x27,0x7d,0xff,0x54,0xa5,0xed,0xbe,0xb0,0x52,0xf6,0x00,0x87,0x67,0x2d,0x28,0xdb,0x09,0x4e,0xa2,0xee,0x4f,0x81,0xeb,0xa1,0xca,0x2b,0x07,0x2f,0x54,0x6d,0x5a,0x2e,0x13,0xa4,0xd0,0xac,0x21,0x7c,0x44,0xc0,0x98,0xac,0xe4,0x6e,0x94,0xd1,0x5b,0x5e,0xd6,0xf1,0x3c,0x45,0x88,0xe1,0xbd,0x58
+.byte 0xf1,0xc7,0xba,0x36,0x2c,0x15,0xb9,0xf4,0xa3,0xea,0x73,0xb4,0x91,0x53,0xd8,0x18,0x86,0x23,0x87,0x0b,0x7a,0x4a,0x2d,0x2d,0x3d,0x73,0xcb,0x05,0x11,0x4c,0x19,0x26,0xf2,0x05,0x89,0xc8,0x29,0x26,0xa7,0xe4,0xcb,0x43,0xd0,0xf6,0xbc,0x76,0xbd,0x9a,0x17,0x4a,0xf1,0x39,0xe3,0xde,0x05,0x10,0x8a,0xd3,0x11,0x53,0x61,0xef,0x33,0xd9
+.byte 0x65,0x0d,0x99,0x0b,0x39,0xa4,0x1b,0x4f,0x0b,0xa5,0xf1,0x37,0xa3,0x4f,0x54,0xa7,0x29,0xc1,0xae,0x88,0x5c,0x13,0x2f,0xb2,0xbf,0xcf,0x1b,0x0d,0xa0,0x68,0x21,0xe2,0x20,0x3f,0x02,0x9f,0x08,0x39,0xc6,0x20,0x2d,0x08,0x01,0x5d,0xf1,0x47,0xde,0x88,0xad,0x49,0x09,0xf7,0x1a,0x0c,0xa7,0x29,0x91,0xe5,0xfc,0xc5,0xde,0xd7,0x92,0x3f
+.byte 0xe5,0x0c,0x91,0xea,0x24,0xfb,0x02,0x9a,0x13,0x3a,0x61,0x01,0x9d,0x7e,0x9d,0x11,0xf8,0xbd,0xe0,0x05,0xbb,0x13,0xf0,0x00,0x67,0x90,0x6f,0x80,0xe7,0x2e,0xfc,0xe0,0xea,0x8a,0x9d,0x2c,0x13,0x57,0x4c,0x78,0x1c,0x44,0xe2,0xa6,0x62,0x01,0x46,0xf8,0xbe,0xf4,0x51,0x32,0x15,0xd4,0x3c,0x7d,0x3b,0xcc,0xfd,0xc3,0x46,0x43,0xf1,0xfa
+.byte 0x9e,0xee,0xad,0x47,0x8f,0x32,0x31,0x94,0x70,0x92,0xea,0x45,0xe3,0x63,0xd6,0x28,0x23,0xa5,0xdf,0x61,0xee,0x19,0x1a,0x5e,0xb0,0xe7,0x17,0xab,0xac,0xb4,0x03,0xed,0xf6,0x9e,0xba,0xdf,0x52,0x88,0xb7,0xca,0x7c,0x27,0xcd,0x7b,0xf8,0x1e,0x54,0x4b,0xe6,0xa3,0x91,0xf7,0xeb,0x22,0x65,0x95,0x13,0xe1,0xac,0xb6,0x22,0x80,0xe3,0xeb
+.byte 0xf9,0xde,0xf1,0xb7,0x6a,0xfd,0xc7,0xb8,0x9b,0x9c,0x49,0x4f,0x84,0x7f,0x68,0x93,0x6c,0x3c,0xea,0xb1,0x8a,0xeb,0x23,0xca,0x2d,0x5e,0x29,0xb5,0x52,0x49,0x98,0x12,0x3f,0xed,0xf0,0xb7,0xbc,0x22,0x14,0x73,0x92,0x84,0x1b,0x3e,0x2f,0xed,0x24,0x1e,0x62,0xcc,0x09,0xe8,0x7c,0x5a,0x08,0xd4,0xc6,0xd9,0xd1,0x55,0x66,0x18,0x2c,0x6a
+.byte 0x99,0xc3,0x0e,0x1e,0x7b,0xb7,0xd4,0xbd,0x0e,0x1f,0x22,0x85,0x09,0x2c,0xcf,0xff,0x79,0x9f,0x93,0xbe,0xec,0xed,0x63,0xb7,0x97,0xbb,0xeb,0xd6,0x70,0x76,0xa9,0x4f,0xb7,0x9a,0x60,0x5b,0x50,0xdf,0x85,0x46,0x69,0xa0,0x9a,0x86,0xe3,0xe2,0x13,0x2b,0x8c,0x0f,0x3b,0xab,0xa8,0xce,0xa3,0xb0,0x78,0x72,0x40,0xfb,0xd1,0x26,0x72,0xc1
+.byte 0x91,0x25,0x7b,0x29,0xde,0xcf,0x99,0xf3,0x8e,0x87,0x39,0x81,0x04,0xad,0x3b,0x11,0x6a,0xda,0x00,0xdd,0xe9,0x41,0xc1,0xd8,0xcc,0xf9,0x59,0xac,0x9b,0xb1,0x64,0x6f,0xb8,0xf4,0x9f,0x20,0xde,0x67,0x09,0x1b,0xdf,0x11,0xa5,0x94,0x56,0xab,0x76,0xba,0xc5,0xda,0x6c,0x86,0xe6,0xa4,0x73,0x59,0xa9,0xe3,0x68,0xb9,0xc0,0x50,0x1b,0x55
+.byte 0x21,0x9e,0xea,0x8d,0xcc,0x5d,0xee,0x88,0xe1,0x18,0x7c,0xcd,0x8f,0xff,0x18,0xbd,0x13,0xea,0x95,0xc4,0x8e,0xd3,0x92,0xfe,0x3d,0xda,0x6f,0xa5,0xbc,0xa0,0x77,0x5a,0x1d,0x61,0xff,0x7b,0x77,0xc4,0x06,0x25,0xc5,0xa7,0x76,0x36,0x55,0xe7,0xc0,0xf0,0x46,0x7e,0xca,0xe7,0xc1,0xe8,0x88,0x65,0xff,0xa7,0xb6,0x9c,0x83,0x1d,0x2e,0x6e
+.byte 0xd6,0xd3,0x07,0x22,0x65,0x79,0x4f,0x3c,0x0a,0x5c,0x4f,0x95,0xb3,0x14,0x37,0x9b,0x0b,0x97,0x69,0xd9,0x5b,0x37,0x09,0xc3,0x70,0x5b,0x4f,0x11,0xcb,0xce,0xc0,0x06,0xf2,0xb9,0x32,0xdd,0x24,0x7b,0x8c,0xe6,0x0c,0x91,0x3b,0xa8,0xb0,0x82,0x56,0x4d,0xde,0xa0,0x5c,0x0b,0x5b,0x70,0x53,0x64,0x9d,0xab,0xbb,0x51,0x6b,0x8c,0x8f,0xe5
+.byte 0x1f,0xc0,0xb8,0xfe,0x1b,0xf6,0x24,0x26,0x62,0xcb,0x78,0x84,0x90,0x76,0x67,0x30,0x18,0x37,0xa9,0xca,0xb7,0x0d,0xac,0x17,0x86,0xb1,0x87,0x59,0x18,0xc3,0x9e,0x62,0x1b,0xb1,0x04,0x52,0xfc,0x7c,0x86,0xa0,0x37,0xb9,0x8b,0x7a,0x85,0x79,0x21,0xe0,0x0f,0x87,0x28,0x91,0xd0,0xe5,0x24,0x63,0x5c,0x7c,0xe8,0x47,0xfa,0x42,0x55,0xe9
+.byte 0x66,0xad,0xdf,0xc3,0x43,0x90,0x47,0x83,0x24,0x09,0x54,0x5f,0x14,0x27,0x53,0xb3,0x22,0x15,0x52,0x84,0x2f,0x61,0x8c,0x01,0x9e,0x34,0x61,0x3f,0x76,0x44,0x1c,0xca,0x79,0x2c,0x40,0x4e,0xa0,0x36,0x11,0xe0,0x23,0x0f,0xa7,0x78,0xf9,0xf9,0x2a,0x2c,0x98,0x5c,0xa9,0x2d,0x66,0xb9,0x87,0x43,0xd5,0xbc,0x64,0xe5,0x52,0x2f,0x1d,0xdc
+.byte 0x1d,0xf4,0xb3,0x18,0x6b,0xd1,0x3b,0x8b,0xa3,0x47,0x65,0x62,0xcc,0xca,0x5f,0x00,0xbb,0x78,0x9d,0x35,0xd4,0x79,0x45,0x33,0xc7,0xa8,0x29,0x96,0x98,0xa4,0x23,0x2c,0x23,0x7f,0x5a,0x1d,0x09,0xb4,0xcf,0xac,0x54,0xcd,0x27,0xda,0x88,0x21,0xe2,0xb4,0x85,0xdc,0xc9,0x4a,0x6b,0xc4,0xfa,0x48,0xc5,0x91,0xc1,0x53,0x4b,0xa1,0x7a,0x9c
+.byte 0x8a,0x7d,0x35,0x52,0xf1,0x58,0x9d,0x20,0x36,0xc2,0x78,0xdb,0x37,0xf8,0xa4,0x2f,0x50,0x98,0xb0,0x34,0x51,0x66,0x93,0xcf,0xe7,0xf0,0x06,0xf1,0xcd,0x0e,0x4f,0x33,0xcc,0x9b,0x73,0x3b,0xc9,0x51,0x63,0x6d,0x29,0x6b,0xf4,0x9d,0x2c,0x76,0x59,0xcd,0xfc,0x11,0x35,0x52,0xbd,0x3b,0x2e,0x7d,0x8a,0x0d,0xb0,0xbb,0x90,0x9b,0x9c,0xac
+.byte 0x1c,0x80,0x89,0xd6,0x6f,0xaf,0xea,0x89,0x38,0x74,0xef,0x83,0x82,0x91,0xf7,0x74,0x96,0x30,0x40,0xe2,0x18,0x2b,0xb4,0xf6,0x15,0xf0,0x8e,0x63,0xe1,0x82,0x55,0x7b,0x65,0x70,0x33,0x14,0xef,0x7a,0x7c,0x2d,0xa9,0x17,0x1b,0x53,0x1e,0xf8,0x98,0x1b,0xbe,0xc8,0x00,0xf5,0xbf,0x79,0xe7,0x8e,0xf2,0xdb,0x59,0x0d,0x46,0xab,0x43,0xd0
+.byte 0xe4,0xa0,0xeb,0x29,0x6a,0x8b,0xc1,0x99,0xa6,0xcc,0x8e,0xe5,0xde,0x67,0xdf,0x49,0x09,0x62,0x8d,0x4b,0xa1,0x1c,0x3b,0x01,0xe2,0x95,0x65,0x10,0xa5,0x91,0xd0,0x48,0x35,0x96,0xcf,0xe4,0x51,0xd2,0x7f,0x93,0x49,0xab,0x1a,0xba,0x08,0x33,0x54,0x34,0xd7,0x00,0xc9,0xa0,0x07,0x03,0xc7,0x8a,0x65,0xa2,0x84,0x60,0xcd,0xaa,0xa2,0x46
+.byte 0x8c,0x67,0xd9,0xc1,0xe7,0x58,0xc5,0x1d,0xc0,0xb3,0xc6,0xb2,0x2a,0xfb,0x70,0x04,0xa2,0x25,0x7f,0x75,0x3c,0xd5,0x8e,0x9c,0x33,0xa2,0xdc,0x20,0x4c,0x26,0x5b,0xbe,0xd9,0x00,0x5d,0xa2,0xbd,0x42,0xbd,0x0d,0xd6,0x52,0x79,0xb5,0x67,0xf6,0x27,0x62,0xc8,0x64,0x05,0xc5,0x0f,0xae,0xe1,0x78,0x39,0xd1,0xb5,0x28,0xe9,0xd4,0x2a,0xaa
+.byte 0xd4,0xc4,0x3e,0x43,0x27,0x83,0xfa,0xdb,0x46,0x73,0x20,0xcd,0x2c,0xba,0x33,0xb4,0x77,0x10,0x32,0x3d,0x8e,0x56,0x88,0x81,0xe1,0x4c,0x8b,0x46,0x60,0xcb,0xb7,0x67,0xd7,0x7b,0xc2,0x47,0x7d,0xd8,0x2d,0x4c,0x09,0x9f,0x07,0x8e,0x34,0x45,0xf4,0x50,0x69,0xfd,0x35,0x0a,0x09,0x9e,0xac,0x49,0x5f,0xdf,0x72,0x84,0x97,0x93,0x30,0x2c
+.byte 0xc6,0x20,0x6f,0xb5,0x18,0x03,0xb6,0x30,0x23,0xc8,0xcd,0xa1,0x43,0xbd,0xbb,0x6f,0xde,0xb3,0xcb,0x1c,0xdd,0x41,0x71,0xfa,0x37,0xa7,0xa9,0x57,0x5a,0xf7,0xee,0xcd,0xb1,0xc1,0xb6,0x78,0x1c,0xe3,0xde,0x5c,0x02,0xc8,0xce,0xb7,0x8e,0x72,0xce,0xfd,0x79,0xcf,0x1a,0xef,0xcb,0x5b,0x5d,0x3c,0x1d,0xc8,0x1e,0x9f,0x67,0x26,0x86,0xd3
+.byte 0x3b,0x98,0x49,0x04,0xcd,0x1b,0x48,0x7c,0xa6,0xbe,0x37,0x0b,0x19,0xb1,0xb7,0x8a,0x74,0x0a,0xd9,0x4f,0x7b,0xbb,0x8e,0xc6,0x9b,0xdd,0xbc,0x61,0xfd,0xdd,0x86,0x7e,0x70,0x2e,0xe4,0x94,0xb4,0x62,0x47,0x6b,0x7c,0x92,0x41,0xda,0x05,0xdc,0xaf,0x5c,0x93,0xbc,0x7d,0xad,0xce,0x44,0x9e,0x27,0x1c,0x74,0x30,0x01,0xf2,0x8a,0x22,0xce
+.byte 0x88,0x61,0xf5,0xb8,0xe2,0xf0,0xca,0x14,0x21,0x53,0xd3,0xbe,0x95,0x8f,0x52,0x10,0x21,0xc5,0x25,0x16,0xa1,0x4f,0xef,0x9a,0x6f,0xce,0xe9,0xee,0x06,0xa8,0x32,0xa4,0xac,0xee,0xd8,0x95,0x0b,0x65,0x10,0xbc,0xb3,0x15,0x48,0xf9,0x96,0xee,0xde,0x5d,0xf6,0x38,0x5f,0x32,0x70,0xd1,0x29,0xa8,0x1d,0xdc,0xf4,0x34,0x2d,0x0c,0x93,0x48
+.byte 0x8c,0x40,0xed,0x35,0x41,0xfe,0x4b,0xab,0x20,0x7d,0x95,0x74,0x02,0xe5,0x71,0x76,0x7e,0x59,0x35,0xb3,0xd7,0x43,0x1f,0xd4,0xe6,0x02,0x86,0xba,0x4f,0x53,0xd9,0xc3,0x7d,0x7f,0x3d,0xb6,0xd8,0x92,0x07,0x89,0x99,0x46,0xf8,0x09,0xcd,0x19,0x43,0x93,0xa7,0xc1,0xb2,0x5d,0xec,0xbf,0x09,0xf4,0xba,0xfc,0xf7,0xf1,0xa7,0x2e,0xfe,0x71
+.byte 0x04,0x58,0xab,0x16,0xd7,0xc0,0xf7,0x03,0xd4,0xc4,0xb9,0xe4,0xd8,0xfc,0x5b,0x66,0xa6,0xb3,0x6a,0x94,0x0e,0xba,0x8c,0x54,0x5c,0x8c,0x02,0x0a,0x33,0xcb,0xde,0x1c,0xad,0x6d,0xef,0x48,0x05,0xa6,0xca,0x9a,0x27,0xd6,0x1c,0xc3,0xea,0x3a,0x46,0x20,0xec,0x72,0xc4,0x94,0x89,0x7e,0xba,0xa9,0x2f,0xe5,0xec,0x1a,0xe4,0x50,0x54,0xeb
+.byte 0xd9,0x5a,0x08,0xc5,0x84,0xc1,0x9a,0xdf,0xb0,0xd4,0x9a,0x6d,0xa2,0x93,0x52,0xd2,0x4d,0x69,0x88,0xc8,0x40,0x2d,0x26,0xbd,0x7a,0x37,0x04,0x21,0xe1,0x9d,0xc9,0xed,0xda,0x7a,0x4c,0x11,0x49,0x14,0x42,0xa1,0xdb,0x6e,0xed,0x1b,0x37,0xbf,0x09,0xac,0x35,0xda,0x80,0xf6,0x75,0xd4,0x32,0x54,0xb5,0x18,0xe8,0x79,0x25,0xc4,0x95,0xe8
+.byte 0x74,0xcf,0x6d,0xac,0x34,0x1f,0xea,0xd4,0x2e,0xd1,0x77,0x5e,0x90,0x8f,0x12,0x51,0xbb,0x3c,0xdf,0xe6,0xf4,0x49,0x8c,0x0f,0x9a,0x8e,0xe3,0x96,0xbd,0xba,0xe6,0x47,0x4b,0x50,0xc7,0xa9,0x29,0xea,0x09,0x5d,0xef,0x3c,0x91,0x48,0xc6,0x37,0xfd,0xac,0x7b,0xe5,0x04,0x25,0x93,0x0b,0xe3,0xce,0x32,0x46,0x38,0x81,0x97,0x57,0xbe,0x1f
+.byte 0x3c,0x61,0x2d,0xd1,0x4e,0xca,0xbb,0x44,0xc6,0xfd,0xdf,0xdd,0x11,0xbf,0xbf,0xa8,0xc0,0x32,0x67,0xc1,0x2e,0xd7,0xbe,0x3c,0xe3,0xcb,0x57,0xa5,0x6d,0xbb,0x8e,0x0f,0x69,0x22,0x42,0xef,0x53,0x0f,0xce,0x09,0x6a,0xda,0xbf,0xd6,0xed,0x61,0x67,0x82,0x83,0x13,0x63,0x97,0x7d,0x1a,0xad,0x34,0x77,0x37,0xa6,0xe0,0x89,0xaa,0xd4,0xb6
+.byte 0x8f,0x93,0xff,0xb8,0x8f,0x63,0x14,0xfd,0x17,0xff,0xe5,0x7c,0x83,0x23,0xaa,0xe0,0xb9,0xd9,0x94,0x3a,0x1a,0xe7,0xa5,0xbd,0xa6,0x2b,0xd3,0x49,0xca,0xeb,0x7d,0x87,0x1d,0x54,0x16,0x93,0xec,0x14,0x8b,0x77,0x3c,0xb4,0xbe,0x33,0x76,0x5e,0xcb,0x33,0x27,0xd3,0x20,0xd6,0xed,0x0c,0x66,0xb8,0xe0,0x00,0xa6,0x76,0xcd,0x8b,0xb4,0xef
+.byte 0x11,0xbc,0xe5,0x59,0xcf,0x1d,0xf5,0x15,0x58,0x4a,0xe1,0xfd,0x87,0x8c,0x7b,0xb9,0xa4,0x42,0x5a,0xed,0x51,0x7e,0x8d,0xa6,0x19,0xaa,0xc4,0xa6,0x14,0x74,0x45,0xb1,0xda,0x87,0x0f,0xd7,0xe7,0x66,0x3b,0xcd,0x04,0x02,0x14,0x20,0x41,0x15,0x4c,0x33,0x79,0x80,0x7d,0xd4,0x44,0x2c,0xab,0x6c,0xf4,0xa8,0xd4,0x31,0x43,0x7b,0xa7,0xc7
+.byte 0x65,0x0e,0x32,0xc8,0xc8,0x6d,0xf5,0x65,0x1b,0x26,0xf1,0xe4,0x68,0x15,0x88,0x1b,0x00,0x60,0x23,0x31,0xd7,0x4b,0x57,0xda,0xf1,0x19,0xa9,0xd9,0xaf,0xe6,0xa9,0x1e,0x2c,0x0d,0x23,0xe4,0x5b,0xcb,0x43,0x38,0xf0,0x93,0xd3,0xfb,0x6a,0x9b,0x83,0x30,0x55,0x96,0x9f,0x53,0x06,0x3f,0xaf,0x40,0x69,0xef,0x9a,0x47,0x6b,0xba,0x7c,0x10
+.byte 0x10,0x44,0x89,0xfa,0xb9,0x9e,0x70,0xed,0x25,0x59,0x68,0xae,0x9b,0x17,0xcf,0x80,0x6f,0x34,0xb8,0x07,0x40,0xe5,0x27,0x6d,0xcd,0x46,0x2c,0x36,0x90,0xf3,0x83,0x74,0x68,0x35,0xf2,0x05,0xa8,0xdf,0x4e,0x34,0xc5,0xb4,0xeb,0x5a,0x7d,0xe6,0x10,0x8a,0x23,0x54,0xeb,0x9b,0x27,0xf2,0x07,0xee,0xf9,0x05,0xc2,0x5a,0x88,0xbd,0x49,0x2e
+.byte 0x1b,0x00,0x31,0x68,0x4a,0xc9,0x3a,0xc5,0x93,0x82,0xa8,0x39,0xba,0x55,0xcd,0xc1,0xda,0x49,0xc2,0x4c,0xf4,0x93,0x00,0xcf,0x61,0xa4,0xbb,0x8c,0x64,0x33,0x90,0x14,0x6d,0x1d,0xad,0x75,0x97,0xd9,0x1d,0xfb,0x27,0x67,0x43,0x04,0xdc,0x4e,0xdf,0x0e,0x0c,0x7e,0x1c,0x89,0xfe,0x31,0xb7,0x9b,0x07,0x5e,0x99,0x08,0x22,0xef,0x6e,0x4d
+.byte 0x8b,0xd6,0x27,0xe6,0x24,0x1a,0x28,0xb0,0x22,0xa5,0x69,0x17,0x82,0x46,0xe3,0x90,0xe8,0x04,0xae,0x90,0x66,0x14,0xec,0xa2,0x1b,0x7e,0x09,0x13,0x32,0x9d,0xec,0x8b,0x51,0x5f,0xa8,0x96,0x8f,0x4c,0xc6,0xbd,0x5c,0x70,0x29,0x21,0xac,0xe9,0x6e,0xb0,0x0c,0x61,0x50,0xba,0xcc,0x55,0x71,0xda,0x2a,0x92,0x86,0x0c,0xff,0xaf,0x7a,0xcf
+.byte 0xaf,0x2a,0xbd,0xd6,0x15,0xa4,0x4c,0x2e,0x76,0x0d,0xcf,0x10,0x11,0x4a,0xd1,0x89,0xdd,0x46,0x5f,0x6b,0x5a,0x02,0x05,0x49,0x6f,0x98,0x6a,0xa7,0x8a,0x66,0x87,0x59,0x23,0xb5,0x3f,0x2e,0x95,0x73,0xfe,0x48,0xe9,0x0d,0x17,0xa6,0xa5,0x4e,0x40,0x98,0x79,0x40,0x1a,0x10,0x1d,0x84,0xdd,0x6f,0x17,0xa7,0xb7,0xfb,0x49,0xbd,0x54,0x97
+.byte 0x0f,0x42,0x25,0x95,0x83,0xf0,0x97,0xe7,0x4c,0x24,0xb5,0xe8,0x23,0x0a,0xd6,0xbf,0xef,0x2c,0x03,0x4f,0x87,0x59,0xe8,0x80,0x87,0xcc,0x51,0x1b,0x94,0xd8,0x60,0xe7,0x10,0x4d,0x01,0xfd,0x83,0xf2,0xd8,0x8d,0x1b,0x33,0xbf,0xaf,0x36,0x41,0x47,0x51,0xe0,0x45,0x2a,0x05,0x5f,0xe1,0x92,0xf8,0xa5,0x15,0x46,0x35,0xd8,0x9b,0xe0,0xff
+.byte 0xee,0xa6,0x4e,0x7d,0xfd,0x96,0xa5,0x75,0xdf,0x7e,0xb0,0x7d,0x14,0x73,0xdd,0xbe,0x17,0x6d,0xdd,0xec,0xac,0x9a,0x92,0x68,0xe3,0x44,0x16,0x63,0x22,0xa8,0x15,0x58,0x8c,0x11,0x23,0x46,0x18,0xae,0x47,0x39,0x87,0xc7,0x4c,0x30,0x09,0xce,0xe5,0xc4,0xd8,0x82,0xc6,0xc6,0x3d,0x31,0xf6,0x0f,0xb5,0x69,0x61,0x63,0x88,0xd6,0xb8,0xda
+.byte 0x89,0x29,0x87,0x69,0x6e,0x3f,0x55,0x2f,0xbc,0x91,0x91,0x43,0x7d,0xb3,0x7b,0x99,0x5a,0x5a,0xb0,0x7d,0x90,0xa7,0xe7,0x30,0x0d,0x32,0xb2,0x43,0x43,0x78,0x59,0x6e,0xbb,0xd7,0x76,0xd4,0x5b,0x4d,0xc4,0xa9,0x99,0xdd,0xd3,0xce,0x3d,0x13,0x41,0x38,0x33,0xed,0xb8,0x76,0x1a,0xbb,0xfd,0x26,0xcd,0x69,0x89,0x22,0x16,0x9a,0x21,0x35
+.byte 0x38,0x77,0x14,0x10,0x42,0x17,0x1f,0xa1,0xbf,0x55,0xb4,0x51,0x62,0x15,0xac,0xd0,0xa2,0x71,0xe4,0x32,0x89,0x33,0x8b,0x74,0xc6,0x61,0x38,0xd0,0xfe,0x28,0x69,0xe6,0x88,0x1b,0x11,0x7e,0x46,0x39,0xba,0x24,0xdd,0x1f,0x61,0xf4,0x74,0xad,0x58,0x94,0xa9,0x3e,0xc7,0x2a,0x9e,0xc0,0xe1,0x1c,0xee,0x21,0xab,0x3e,0x65,0x0c,0xe8,0xd8
+.byte 0x71,0x52,0xf3,0x6c,0x64,0x53,0x75,0x17,0x87,0x55,0x14,0x42,0x25,0x7f,0xe7,0x0d,0x89,0x1b,0x77,0x26,0xc4,0xaa,0xcc,0x91,0x47,0xe5,0x54,0xae,0x1a,0x0d,0x04,0x99,0xeb,0x56,0xd8,0xb4,0x6d,0xeb,0xec,0x2f,0x6c,0xc5,0x8e,0x76,0xe1,0xa0,0xa7,0x42,0x06,0xc9,0xc3,0x03,0xee,0xa9,0x9b,0x1e,0xfc,0x11,0xf5,0x2f,0x2b,0x14,0xb8,0x9f
+.byte 0x87,0x61,0x9b,0xc7,0x38,0x0e,0x58,0xf1,0xd4,0x36,0xca,0x82,0x85,0x9c,0xde,0xec,0xd3,0x1e,0x29,0x4e,0x70,0x9e,0x9a,0xe0,0x8b,0x6f,0xfe,0xd0,0xe9,0x95,0x51,0xcf,0x36,0x31,0x9c,0xff,0x63,0xc6,0x04,0x8e,0x61,0xc2,0xcb,0x3a,0xfa,0xd0,0xd7,0x29,0xbd,0xe7,0x8a,0x2b,0x8e,0xa0,0xac,0x58,0x93,0xb3,0x52,0xca,0x80,0x17,0xd2,0x2d
+.byte 0x93,0x5f,0xe0,0x8a,0x47,0x3c,0x67,0x95,0x64,0x91,0xa4,0x76,0xa4,0x5f,0xfa,0x93,0x4d,0xc7,0x6e,0x5d,0x23,0x9f,0xe1,0x4a,0x16,0xff,0xa5,0xf0,0x94,0xa8,0x02,0xcc,0x9a,0x84,0xd5,0x9d,0xb6,0xe5,0x7c,0x76,0x3f,0xc9,0xfd,0xdc,0x8e,0x59,0x9a,0x22,0x18,0x3c,0xe6,0x90,0x85,0x10,0x73,0x2d,0x65,0xa7,0xa7,0xe1,0xeb,0xc5,0x05,0x24
+.byte 0x1e,0x0b,0x31,0x19,0xb5,0xb0,0x8d,0xc0,0xb5,0x04,0xfe,0x9d,0xfa,0xf7,0xcd,0x71,0x29,0x40,0x19,0x23,0xed,0x2c,0xdb,0x89,0x89,0x8d,0x69,0x22,0x4c,0x9c,0xa7,0xf7,0xb1,0x56,0x87,0xa3,0x44,0xa9,0xa3,0x16,0x28,0xce,0x94,0x40,0x6f,0x71,0x77,0x0e,0x6d,0xe9,0x78,0xa2,0x2a,0x17,0x45,0x03,0xeb,0x1e,0xf1,0xfa,0x56,0x3e,0xa7,0x6b
+.byte 0x08,0x06,0x6a,0xcb,0x8f,0x5e,0x0f,0xd3,0x6e,0x4b,0x21,0x31,0x73,0x50,0x94,0x56,0xf9,0xb9,0xc7,0x38,0x69,0xe8,0x09,0x3f,0x03,0xb3,0xb5,0xe8,0x2a,0x5e,0xf6,0xad,0xae,0x6f,0xab,0x6a,0x49,0xdd,0x93,0x6d,0xfb,0x8b,0xde,0xea,0x8b,0xb0,0xa1,0x44,0xf0,0xb3,0xf6,0xaa,0xe3,0xc8,0x04,0x87,0x9f,0x8b,0xee,0xab,0x13,0x1d,0x2d,0xeb
+.byte 0x09,0x62,0x21,0x49,0x5f,0xb6,0x95,0xab,0xc4,0xee,0x69,0xfb,0x31,0xff,0xbf,0x1a,0xa6,0x4c,0x67,0x66,0x84,0xe6,0x0c,0xb7,0xb2,0x3e,0x3f,0xa4,0xb3,0x52,0xde,0x15,0xc9,0xa7,0xa9,0xb5,0x0d,0xe5,0x0b,0x99,0xa6,0xb6,0x8f,0x69,0xc5,0x6d,0x6c,0xbb,0x83,0x89,0x4e,0xfc,0x49,0x79,0x4d,0x46,0x31,0xa0,0x09,0x5f,0x5d,0xd0,0x5b,0x80
+.byte 0xa1,0xf4,0x36,0x48,0x97,0x6a,0xfd,0x34,0xcb,0x20,0xa8,0x01,0x25,0x04,0xe7,0x13,0x12,0x87,0x66,0x27,0x96,0x36,0xba,0x92,0xbd,0xda,0x94,0x11,0xef,0x90,0xbd,0xbc,0x9e,0xf9,0x63,0xb3,0xa6,0xc1,0xbb,0x46,0xe8,0x86,0x3f,0x2d,0xf9,0x11,0x3a,0x23,0xa8,0x7a,0x33,0x41,0x3e,0x2e,0x5d,0xde,0xc0,0xd2,0x23,0xca,0x41,0xa0,0xb9,0x70
+.byte 0x6d,0x31,0xf3,0x89,0x87,0x9b,0x72,0xd9,0x15,0x4d,0x8b,0x51,0xdd,0x56,0xa1,0xb4,0x68,0x52,0x65,0x81,0x12,0x46,0xea,0x24,0xb4,0x34,0xcc,0xa0,0xdb,0x7d,0x96,0xd9,0x8e,0x64,0x61,0x10,0x7c,0x2a,0x00,0x4d,0x82,0x61,0x54,0xa4,0x70,0x3d,0x9c,0xa5,0x0b,0xd2,0x08,0x71,0xa8,0x94,0xb1,0xb4,0x30,0x61,0x59,0x9f,0x72,0x61,0x56,0x2d
+.byte 0xa3,0xf4,0x9d,0x1c,0xfc,0x49,0x9d,0x39,0x27,0xcb,0x54,0xb2,0xce,0x3c,0xb6,0x76,0xe5,0x8e,0xa5,0xe7,0x08,0xd4,0xc7,0x2c,0xa6,0x28,0xc8,0x3e,0x22,0x14,0x06,0x75,0x68,0x0d,0x6b,0xb5,0xa3,0x68,0x14,0x17,0xfe,0xb8,0xcc,0x26,0x5b,0x9d,0x0b,0xcc,0x3e,0xd7,0x6c,0xe0,0xec,0x5e,0x1e,0x1e,0xb8,0x9a,0xbe,0x91,0xb5,0xa6,0xb5,0x83
+.byte 0x28,0xc2,0x35,0x65,0xd3,0xde,0xdd,0x71,0x29,0x13,0xc1,0xee,0x78,0x22,0x34,0x0b,0x77,0x3a,0x48,0x98,0x26,0x43,0xc2,0xce,0x03,0xe8,0x75,0xf8,0x8a,0xdf,0x6a,0xb0,0xb4,0x8c,0x11,0x8c,0xe5,0x95,0x96,0x17,0xfb,0x06,0x5e,0x8f,0x36,0x10,0xc5,0x04,0x43,0x1b,0xed,0xd3,0xad,0xd4,0xa4,0xe0,0x17,0x85,0xed,0x9b,0xd8,0xae,0x98,0x46
+.byte 0x58,0x57,0x0e,0x46,0xea,0x3f,0x07,0x6d,0x0e,0x46,0xda,0x2f,0x68,0x2b,0xd6,0xe7,0x0d,0x4b,0xbe,0x32,0xee,0x10,0x73,0x18,0x7d,0x6b,0x2d,0x04,0x27,0x72,0xb1,0xe1,0xbf,0x89,0xaa,0x4d,0x1a,0xfc,0xbd,0xf2,0xc3,0x9f,0xf0,0x01,0x85,0x62,0x09,0x4d,0x08,0x2c,0x57,0x9a,0x7b,0xad,0x0b,0x79,0xff,0x14,0xa1,0x45,0xde,0x21,0x8f,0xe2
+.byte 0x93,0xd0,0x35,0x26,0xc3,0xbc,0x8c,0xb7,0x57,0x6a,0xdf,0x98,0xa7,0x75,0xc6,0xf6,0x4b,0x5f,0x91,0x6e,0x71,0x3a,0x5c,0x5f,0x57,0x63,0x34,0x87,0xf8,0x20,0x6a,0xa1,0xbf,0xf8,0xca,0x8e,0xf9,0xa9,0x10,0x8b,0xab,0x0b,0xc2,0xcc,0x71,0x89,0x7c,0xef,0x70,0x3a,0xb0,0xf6,0x90,0xcc,0x6b,0x2c,0xcc,0x8b,0x2a,0x21,0x78,0x23,0xa0,0x71
+.byte 0x8c,0x7b,0xc1,0x0f,0x27,0x72,0x40,0xe4,0x9e,0x35,0xf3,0x0a,0xc0,0x7e,0x7f,0xe5,0x9b,0xdb,0x93,0x49,0x08,0xc3,0x6b,0xb7,0xea,0xea,0xd4,0x5a,0x96,0x97,0x3c,0xdf,0xc7,0x02,0x39,0x9f,0xa3,0xca,0xdd,0x62,0xf3,0x68,0xc7,0xae,0x37,0xc1,0x35,0x73,0xb2,0x5d,0x99,0xe4,0xae,0x27,0x55,0x5e,0x6a,0xae,0x6f,0x1a,0x95,0x51,0xb1,0x3b
+.byte 0xd7,0xb4,0x4d,0x3d,0x88,0x54,0x01,0xbe,0x2c,0x12,0x17,0x29,0x4f,0xf3,0xed,0x5a,0x1f,0xa9,0xf0,0x67,0xbd,0x7c,0xad,0xe5,0x58,0x52,0xd4,0xd1,0xfe,0x1e,0x1b,0xd6,0xce,0x7c,0xc3,0xa2,0xa9,0x72,0x9b,0x6a,0xe5,0xf9,0x39,0x22,0xaa,0x7f,0x2e,0xa2,0x53,0x75,0xf0,0x99,0x2e,0x36,0x86,0x83,0x10,0x63,0xd7,0xac,0xa3,0x52,0xa6,0x23
+.byte 0x80,0x46,0xe4,0xa9,0x07,0x79,0xe1,0x61,0x75,0xbf,0x08,0x31,0x6c,0xdd,0xe1,0x30,0xd0,0x35,0xc2,0xbd,0x30,0xb8,0x85,0xf3,0xd2,0x2c,0x90,0x7a,0xf0,0xd3,0x80,0xe5,0xf1,0xc2,0x58,0x3d,0xf7,0x3c,0xbc,0xff,0x03,0x4d,0xf7,0xad,0x2f,0xa6,0xfe,0x73,0xde,0xa8,0x60,0xd7,0x89,0x4a,0xcf,0x3d,0xf3,0xab,0x62,0xfa,0x9d,0x46,0xad,0xd0
+.byte 0x97,0x6f,0x89,0x84,0x16,0x9b,0x84,0xb2,0x6c,0x63,0x6d,0x29,0xee,0x8e,0x97,0x3c,0x48,0x19,0x92,0x62,0xdc,0x1d,0x35,0x9d,0xec,0x01,0x00,0x64,0xbf,0x4d,0x8b,0xa3,0x13,0x48,0x9f,0xb4,0x01,0x0d,0xb1,0xc4,0xf2,0xf2,0x6a,0x84,0x1a,0x07,0x3c,0x46,0xa6,0xb5,0x41,0x9a,0x32,0x7e,0xc3,0x4f,0x87,0x95,0x71,0x7a,0xbf,0x74,0xf8,0x0b
+.byte 0xfb,0xa5,0xde,0xa8,0x35,0xf1,0xcb,0x04,0x8d,0x8b,0xd3,0xb0,0xc8,0x1d,0x6c,0xaf,0xb4,0x21,0x79,0x1c,0x34,0x71,0x2f,0xf5,0xc4,0xbe,0xad,0xbc,0xaf,0x2f,0x54,0x81,0xd9,0xf8,0xff,0x59,0xf9,0x4e,0x62,0x9f,0x7d,0x7c,0xe9,0xdc,0x67,0xae,0xa3,0x32,0x4b,0xf7,0x4e,0x53,0x4c,0x55,0x7d,0xc5,0xdd,0xd4,0x5d,0x93,0xb8,0x98,0x3e,0xd3
+.byte 0x15,0x65,0x52,0x78,0x5a,0xd2,0x21,0x84,0x5d,0x28,0xaf,0x44,0x7d,0x18,0xf8,0xdd,0x5c,0xc3,0x6e,0xc8,0x05,0x05,0x30,0xd0,0x82,0xf8,0x00,0x0f,0x3d,0x5c,0x62,0x7e,0xa6,0xd5,0x7b,0x9f,0xb1,0x44,0xb7,0x0d,0x22,0x81,0xe1,0x4a,0x2b,0x79,0x7e,0x39,0x4d,0x8a,0x9a,0xfd,0x94,0x0c,0xf7,0x23,0x10,0x99,0xd2,0xd2,0x8b,0x98,0xe5,0x9d
+.byte 0xb0,0xbf,0xcf,0x06,0x08,0x80,0x32,0x69,0xfd,0x81,0x5f,0xb3,0x66,0x11,0x63,0xeb,0x30,0x1d,0xcd,0x5b,0x5b,0xec,0x0c,0xca,0x30,0x37,0xa0,0x82,0x79,0x75,0x87,0xc1,0xfa,0x5b,0x38,0x4b,0xe3,0xea,0x46,0x49,0x36,0x92,0x92,0xf0,0xc9,0x15,0xa5,0xec,0x9e,0x21,0xb6,0x9f,0xb4,0x6d,0xf6,0xef,0x5c,0x2f,0x7d,0xa4,0xb3,0x25,0xfb,0x13
+.byte 0x40,0xe1,0xa0,0x20,0x4a,0x3a,0xe2,0x3e,0xf5,0xe0,0x68,0x61,0x11,0x9a,0xfb,0x1e,0xe8,0x1b,0xe0,0x17,0x9c,0x8a,0xe5,0x53,0x74,0xdd,0xec,0xc6,0x03,0xc6,0xd0,0x9b,0xc2,0x0b,0x77,0x4c,0x36,0x2b,0xac,0x4e,0x4d,0xd2,0x26,0x70,0x39,0x96,0xb4,0x11,0x1a,0x5b,0xcc,0x3f,0xb9,0xcf,0x0d,0x04,0x55,0x05,0x00,0x66,0x8f,0xa9,0xec,0x31
+.byte 0xe5,0x47,0x4c,0x9b,0xb7,0x6e,0xa5,0xe7,0x9e,0x70,0xf4,0x02,0x2a,0x3c,0xa2,0x03,0x04,0x30,0x9e,0x3f,0x7c,0xaa,0x0a,0x8f,0x55,0x61,0xca,0x50,0x35,0xe6,0xa4,0x24,0x61,0x26,0x31,0x9e,0x9e,0x77,0x0d,0x15,0x3a,0xc0,0x88,0x32,0xb5,0xbb,0x3d,0x3e,0x59,0x25,0x52,0x81,0x2e,0x4b,0xc6,0x5d,0x9f,0x87,0x0f,0x1f,0x5e,0xec,0xdd,0xbe
+.byte 0x32,0x6c,0x71,0xef,0xd2,0x9c,0xfd,0x70,0xc8,0xf6,0x1f,0xb9,0xc9,0xdd,0x4d,0x39,0x61,0x92,0xbd,0x0c,0x48,0x63,0x4b,0xd2,0x2b,0x8c,0x4b,0x35,0xb1,0x8e,0x04,0x44,0x3c,0xe1,0xde,0xfd,0x6e,0xde,0xeb,0x94,0x51,0xea,0x36,0x7b,0xc6,0x87,0x15,0x34,0x68,0xa0,0xb8,0x94,0xb6,0x56,0x33,0xf4,0xab,0x84,0xed,0x1c,0x36,0x91,0xa7,0x1b
+.byte 0x03,0xca,0x48,0x64,0x16,0x5b,0x4b,0x69,0x47,0xae,0xd7,0xc9,0xcf,0x74,0xd2,0xbd,0x60,0x04,0x7c,0x66,0xe9,0x12,0x92,0x40,0x78,0x23,0x0b,0x5b,0xa0,0xda,0xf7,0xe4,0x9a,0xad,0x9c,0x31,0xe7,0xaa,0xad,0x5a,0xc3,0x45,0x00,0x6c,0xd3,0x4d,0x93,0xdf,0xb6,0x68,0x11,0x3f,0x2a,0xbc,0x9a,0x8d,0xeb,0x0f,0xb5,0xa9,0x8e,0xa5,0x2c,0x99
+.byte 0x94,0x8d,0x21,0xa9,0x41,0x6b,0x11,0x2e,0x02,0x21,0xd8,0xc1,0xbc,0xf0,0x2a,0x87,0xae,0x35,0xa9,0x78,0x5c,0x43,0xb8,0xb7,0x63,0x2d,0x09,0x31,0xae,0x6f,0xfc,0x39,0x7b,0x18,0xc3,0xce,0xe3,0xfa,0x51,0x70,0xc7,0x6b,0x5e,0xc3,0xce,0xc8,0xa2,0x3a,0x66,0x9e,0xfe,0x45,0xb4,0xa2,0xaf,0x81,0x03,0x74,0xbf,0x0c,0x65,0x4c,0x30,0x27
+.byte 0xd5,0x34,0x29,0x2d,0x83,0xa8,0xb9,0x1d,0xf8,0x12,0x09,0x51,0xdd,0x0e,0x66,0x95,0xf3,0x94,0xaa,0x83,0x3a,0x6f,0x8a,0x7c,0x3a,0x29,0x82,0xbb,0x80,0xa1,0x37,0x8c,0x79,0xf4,0x4a,0xa8,0xe4,0x17,0x72,0x77,0xee,0xc4,0xaa,0x25,0xd3,0x8f,0x2e,0xaf,0xb9,0xb2,0x3c,0xa6,0xd5,0x72,0x97,0x07,0x23,0x38,0xae,0x9e,0x22,0x08,0x85,0x70
+.byte 0xfa,0xff,0x38,0xe6,0x96,0x9f,0x2c,0x11,0x14,0x16,0x9a,0xfa,0x5a,0x7b,0x05,0x31,0x3e,0x20,0xbf,0x4d,0x87,0xaa,0xba,0x94,0xcd,0xdb,0xeb,0xec,0x29,0x58,0x4e,0x43,0x12,0xe8,0xf9,0x01,0x50,0xc8,0x51,0x7a,0x61,0x12,0xe9,0xed,0xc2,0xd6,0x2e,0xd3,0xed,0x54,0x72,0xf7,0x1b,0x0c,0x8c,0xb4,0x65,0xea,0x22,0x31,0x22,0xeb,0xcd,0x53
+.byte 0x66,0xf1,0xa5,0x34,0xe9,0x81,0x74,0xcb,0xb5,0x6b,0x45,0x71,0x69,0x6d,0x84,0xe8,0xc6,0x86,0xc9,0xdd,0x0c,0xa4,0x30,0x12,0x08,0x42,0x10,0x6b,0xcd,0x65,0x6c,0xfd,0x9c,0xde,0x77,0x3c,0x32,0x09,0xef,0x99,0x27,0x0e,0x4a,0x72,0x03,0x8d,0xb5,0x68,0xa0,0x67,0xf7,0xc2,0xae,0xb8,0xce,0x41,0x70,0x4e,0xdd,0x13,0xcb,0x3f,0x05,0x4e
+.byte 0xf4,0xbc,0x88,0x98,0x2f,0x42,0x4e,0x5f,0x3e,0xcb,0x2c,0xd3,0x2f,0xb8,0x92,0xbb,0xd8,0x95,0xc8,0xaf,0xa9,0x44,0x8b,0xf0,0x2f,0x81,0xd4,0xe7,0x06,0x19,0xf7,0xa7,0x0a,0x73,0x3e,0x30,0xd9,0x00,0xe4,0x2d,0x76,0xb1,0x0d,0xfa,0x12,0x1f,0xbe,0x59,0x4f,0xf7,0xc8,0x5b,0xab,0xd7,0x16,0x3d,0x7e,0x97,0x9e,0xec,0xf8,0xcb,0x31,0x2e
+.byte 0xe0,0x41,0x0b,0x00,0xa6,0x6d,0xe9,0x5e,0xd5,0x4a,0xc5,0xbf,0x1c,0xcc,0xa5,0x71,0x94,0x29,0x3d,0x17,0x43,0x27,0x63,0xc4,0xc7,0x8f,0x1b,0xb7,0x5f,0xcf,0xdf,0x8e,0x6a,0x69,0x87,0xc1,0x29,0xab,0x7b,0x8d,0xdf,0x07,0x95,0x50,0xa3,0x1c,0x8e,0xdc,0x7f,0x8a,0x21,0x37,0x1e,0x26,0xa7,0x67,0x28,0xb2,0xc8,0x23,0x5a,0x1d,0x94,0x46
+.byte 0x1b,0x3e,0x72,0x87,0x73,0x08,0xe2,0x3b,0x46,0x51,0xbe,0x5b,0xa9,0x72,0xb9,0xf8,0x45,0x6d,0x0c,0x89,0x80,0x0d,0x7a,0xfb,0x4c,0x3f,0x7f,0x3d,0x29,0xff,0xef,0xb2,0xec,0x23,0xc2,0x26,0xcf,0x8c,0x2e,0x28,0xbf,0xc5,0x68,0x47,0xd9,0x49,0x95,0xf1,0x67,0x7e,0x3a,0x48,0xe2,0x43,0x5c,0xc8,0x95,0x5b,0xb2,0xf3,0x22,0xc9,0x73,0x91
+.byte 0xb5,0x78,0x96,0x1b,0x9a,0x75,0x5f,0xb2,0x6b,0x8c,0x66,0x8c,0x8e,0xc1,0xe1,0xde,0xd6,0x64,0x31,0xe1,0x7b,0x12,0xd2,0x85,0x8f,0x52,0x68,0xec,0x80,0x26,0x3d,0xcc,0x9b,0xe3,0x57,0xbe,0x19,0x42,0xb9,0xdd,0x7d,0x2b,0x5b,0x6d,0x1b,0x9e,0x96,0xd7,0x75,0x83,0x82,0x3c,0x3e,0x5f,0xf8,0xa9,0x36,0xbe,0x14,0xc7,0xce,0x9d,0x05,0x7e
+.byte 0xd7,0x38,0x37,0x35,0xc9,0x37,0x8b,0x9f,0xc6,0x2d,0xff,0x00,0x41,0xff,0x1b,0x09,0xea,0xd2,0xb0,0x04,0x48,0xff,0xfc,0xb5,0x67,0x54,0x39,0x3d,0x23,0x68,0x0b,0x7d,0x97,0xf3,0x65,0x20,0xa2,0xf8,0x33,0x96,0xd1,0xf4,0xc7,0xba,0x6f,0x00,0x95,0x36,0xf6,0x33,0xd1,0x8d,0xde,0xee,0x1e,0xfa,0x60,0x8e,0x5e,0x4c,0x70,0xbb,0x53,0x79
+.byte 0xc9,0x9a,0xdf,0x3c,0x53,0xe4,0x35,0x87,0xc3,0xe6,0x8e,0x0e,0x1a,0xd0,0xf8,0x57,0x2b,0x33,0x51,0x4d,0x7d,0x43,0x17,0x3e,0x6f,0x0e,0xca,0x86,0xb2,0xc6,0x09,0xf3,0x2f,0xc1,0x5f,0x0e,0x9a,0x5e,0x7d,0x9d,0xf7,0xff,0x09,0x46,0xe5,0x30,0x91,0x61,0x93,0xb5,0x2f,0xc5,0x7f,0x09,0x0b,0x55,0x94,0x17,0x25,0x19,0x9b,0xa9,0x0e,0x68
+.byte 0x71,0x18,0x1b,0x4b,0x1b,0xa3,0x75,0x90,0x56,0x96,0x5e,0x33,0x71,0xf2,0x06,0x69,0x07,0x04,0xcb,0x8c,0x79,0x9b,0xa5,0x17,0xd8,0xd8,0x77,0xc7,0xca,0x95,0x58,0x12,0xec,0xdd,0x41,0xc9,0x12,0x16,0x9a,0xc4,0xf0,0x27,0x7a,0x8e,0xeb,0x19,0x79,0x27,0x7b,0x2e,0x55,0x96,0x57,0x19,0xbe,0x55,0x8c,0x7f,0x97,0x90,0x80,0x40,0x5d,0x5a
+.byte 0xf6,0x07,0xd6,0xb4,0xc5,0xe8,0x0e,0x54,0xde,0x78,0x23,0xca,0x39,0x90,0x42,0xb6,0x8b,0x14,0x22,0x06,0x71,0x77,0xd5,0xf7,0x8d,0x05,0x9d,0xbf,0xfe,0x38,0x91,0xba,0x79,0x85,0x30,0x47,0x25,0xf0,0xa2,0x72,0x55,0x94,0x2a,0x8a,0xc8,0x28,0xc8,0xa9,0x23,0xab,0xf0,0x4e,0x49,0x2f,0x58,0x53,0x35,0xd1,0xb6,0x16,0x81,0xc2,0x25,0x18
+.byte 0xd9,0x71,0x91,0xc4,0x81,0x3e,0xf4,0xd7,0x87,0x9e,0x57,0x78,0xf7,0x7d,0x4b,0xb2,0xfd,0x91,0x9f,0xa8,0x0e,0x77,0xb3,0xc7,0xe5,0x6a,0x95,0x17,0xc3,0xf4,0xcb,0x7f,0x96,0xc1,0xa8,0xee,0x6a,0x0f,0x1f,0x5d,0x20,0x28,0x93,0xe5,0xf3,0x13,0x46,0x53,0x47,0x9f,0x98,0xc6,0xf5,0x29,0x69,0xb9,0x83,0x36,0x03,0xa1,0x9a,0xb4,0xa9,0x4e
+.byte 0xd6,0xda,0x25,0xe2,0x5b,0xbb,0x95,0xdf,0x0f,0x37,0x0b,0x02,0x51,0x03,0xd1,0x0e,0x84,0xef,0xdd,0x85,0xdd,0xae,0x10,0x32,0x65,0x03,0x65,0xf0,0x8e,0x0c,0x69,0x90,0x35,0x26,0x36,0xe8,0x05,0x46,0xe6,0xce,0x52,0x4d,0xb5,0x93,0x9f,0xe3,0xe5,0xb0,0x43,0x57,0x32,0x5d,0xca,0xd4,0xc9,0x89,0x2e,0x5b,0x03,0x8a,0x82,0x78,0x21,0x6b
+.byte 0x41,0xa9,0x0a,0x9f,0xe0,0x50,0xec,0x72,0x01,0x67,0xe7,0x1c,0x92,0xe3,0xe4,0x83,0x4d,0x4b,0xcf,0x01,0x37,0x2f,0x34,0x86,0xcf,0x36,0xf7,0x3a,0x57,0xa3,0x89,0x73,0x0f,0x9c,0x06,0x82,0x75,0x7a,0x4b,0xd8,0x44,0x40,0xf2,0xc5,0xc4,0x22,0xa6,0x99,0x1b,0x73,0x2f,0xad,0x09,0xe9,0x84,0x6f,0xc3,0xca,0x72,0x3a,0x8a,0x55,0x55,0x0a
+.byte 0xcd,0x33,0x51,0xef,0x5b,0x36,0x77,0x6c,0xb4,0x4a,0xae,0xdd,0xbd,0xec,0x65,0x99,0x43,0xd6,0x8a,0x16,0xba,0x89,0x4d,0x0c,0x11,0xb4,0x0d,0x5d,0x3e,0x76,0xcb,0x48,0x9d,0x31,0x40,0x71,0xe2,0xe4,0xa9,0xd9,0x6e,0x3c,0x3d,0xd1,0x6e,0xaf,0xb9,0x28,0x71,0x5a,0x07,0x6f,0xab,0xdb,0xf8,0x4f,0x11,0xbc,0xe0,0x14,0x01,0x43,0x4d,0xe2
+.byte 0xad,0x5d,0x2a,0xb2,0x58,0x66,0x05,0x50,0x66,0xf6,0x2f,0x66,0x11,0xd1,0xd7,0x05,0x85,0xb0,0x7f,0xa8,0x89,0xbd,0x41,0xda,0x35,0x1e,0xbb,0xff,0x70,0x1a,0xe8,0x65,0x96,0xe9,0x50,0x18,0x7f,0x4c,0xb2,0xe2,0x95,0x26,0xf6,0x37,0x09,0x8c,0x8d,0x7b,0x02,0xb0,0x7f,0x32,0xb5,0x70,0x22,0xd6,0x83,0x0b,0x85,0x25,0x00,0xc5,0x55,0x3f
+.byte 0xfa,0x7a,0xc9,0xaf,0x87,0xc1,0x1c,0x11,0x96,0x71,0x18,0xd8,0xdb,0xab,0x86,0x57,0x0a,0x16,0x23,0x32,0x40,0xd3,0xaf,0x17,0x55,0xe3,0xe7,0x01,0x65,0x1f,0x87,0xda,0xb5,0x46,0x67,0x18,0x34,0xcc,0x28,0x77,0xc3,0x12,0x62,0x6c,0x8b,0x8a,0x11,0x7a,0x5a,0xd1,0xdf,0xb3,0x13,0x6b,0x29,0xce,0xf8,0x03,0xba,0xad,0x7c,0x14,0x60,0x42
+.byte 0x17,0xf6,0x7b,0x0c,0xb7,0x5f,0xd6,0xc1,0xb5,0xa5,0x2b,0xb1,0x9f,0x6c,0x65,0x29,0xe5,0xf4,0x84,0x85,0x11,0x82,0xf1,0x4c,0xcd,0xff,0x99,0x29,0x53,0x7b,0x43,0x04,0x60,0xc4,0x6c,0x01,0x5c,0xcb,0x33,0x4f,0xdb,0xc4,0xad,0x8c,0xea,0xff,0xd6,0xcd,0x8e,0x85,0x6e,0x54,0xd5,0x18,0x63,0x84,0x78,0xea,0xff,0x08,0x95,0xdc,0x2a,0x07
+.byte 0xac,0xea,0x44,0x79,0x52,0x07,0xf3,0xf1,0x03,0x7f,0x71,0x53,0xd8,0x85,0xdb,0x70,0xde,0x5e,0xd5,0x9a,0x18,0x9f,0xcc,0x3f,0xc0,0xc0,0x49,0x82,0x70,0x09,0xce,0x29,0x04,0x0a,0x19,0x81,0xd9,0x81,0x22,0x71,0x48,0x8e,0x79,0x08,0x1c,0xb4,0xc8,0x7e,0x60,0x43,0x4a,0xe3,0xd5,0x6b,0x09,0x5c,0x01,0x6e,0x20,0x9e,0xd2,0xaf,0x80,0xb7
+.byte 0xa2,0x0a,0x5b,0x26,0x08,0x32,0x73,0xbc,0xc6,0xfd,0x06,0xaa,0x2e,0x55,0xa0,0x5b,0xa9,0x3c,0x85,0xb2,0x04,0xdc,0x9a,0x94,0x02,0x93,0x96,0x6b,0x3e,0xc3,0x5e,0x37,0x9b,0x6f,0xef,0xb9,0x65,0x52,0x42,0x1c,0xa7,0x84,0x09,0x0c,0x49,0x3a,0x95,0x06,0x94,0xd7,0xc7,0x40,0xf5,0xf1,0x69,0x41,0xfb,0xf8,0x57,0xb5,0x1e,0x0c,0xf3,0xd9
+.byte 0xb1,0x2e,0x58,0x33,0xbe,0xb1,0x3d,0x61,0xc6,0xca,0x01,0xe5,0xda,0x60,0x8f,0x87,0xf7,0x9a,0xb5,0x92,0xb4,0x8c,0x2a,0xaf,0xd4,0x1e,0x9c,0x97,0x39,0x83,0x99,0x4a,0x07,0x54,0x75,0x7d,0xde,0x72,0x06,0xc1,0x8f,0xb4,0xde,0x12,0x43,0xf2,0x62,0xae,0xe7,0xec,0xfe,0xb2,0xe5,0x63,0x35,0xb7,0xee,0xaa,0xf0,0x09,0xb8,0x61,0xf2,0x42
+.byte 0x28,0x87,0xd7,0x47,0xa8,0xfc,0x51,0x85,0x6f,0xa2,0xb1,0xa6,0x82,0xd6,0x0e,0x1b,0x3f,0xea,0xa1,0xe1,0x91,0xc9,0xd2,0x5b,0x3e,0xff,0x18,0x39,0x14,0xe0,0x44,0xda,0x3d,0xd8,0xca,0xdb,0xd9,0xbf,0x3f,0xa4,0xdb,0x99,0x2e,0x31,0x32,0x7c,0xf4,0x61,0x2f,0xa1,0xf9,0xa9,0xbe,0x26,0x94,0xea,0xb4,0xe3,0x25,0x8d,0x93,0x3b,0xa1,0x7e
+.byte 0x1e,0x99,0x87,0x6c,0xaf,0x14,0x54,0xd0,0xc0,0x37,0x39,0x76,0x3c,0x07,0x2e,0xce,0x98,0x25,0x81,0xe4,0x01,0x0c,0x07,0x79,0x4e,0xcd,0x82,0x44,0x83,0x04,0x07,0xa6,0x52,0xb7,0x96,0x7c,0x43,0x12,0xe1,0xc5,0x12,0x18,0x25,0x47,0xe4,0x19,0x6d,0x26,0x1e,0x55,0x66,0xca,0x28,0x4c,0xfa,0xd2,0xd9,0xcc,0x7e,0xad,0x9f,0x2a,0x2f,0xc6
+.byte 0x6c,0x77,0xaa,0x0f,0x5b,0xeb,0x15,0x97,0x62,0x52,0x3c,0x6f,0x4b,0xf3,0xcc,0x80,0x7b,0x1f,0x1d,0x58,0xf8,0xfe,0xc1,0x8c,0x3b,0xe3,0xd7,0x05,0xc3,0xd6,0xa9,0xda,0xcf,0x85,0x1c,0x68,0xd6,0x6d,0x2b,0x06,0x30,0x5f,0x58,0x39,0xea,0xfa,0x99,0xaa,0x04,0x10,0x05,0xaf,0xb0,0xf7,0x32,0x60,0x8d,0xe4,0xd1,0x40,0x32,0xd6,0xa3,0xf2
+.byte 0xba,0x5a,0x79,0x58,0x92,0x75,0xf0,0x3a,0xce,0xb2,0xee,0x66,0x3e,0xe3,0xbe,0x4d,0x53,0x9d,0xbb,0xdb,0x45,0xf0,0x09,0xeb,0xd5,0x83,0x39,0x20,0x06,0xa9,0x44,0x35,0xeb,0x6d,0x9b,0xd9,0xa4,0xda,0x4b,0x9d,0xde,0x3d,0x26,0xa2,0x2d,0xcf,0x8e,0x3e,0xbc,0xb4,0x8c,0x3a,0xbf,0x56,0x7c,0x48,0x50,0xb5,0xc5,0xbe,0x84,0x5e,0x63,0x82
+.byte 0x5f,0x87,0x77,0x4a,0xa7,0xf6,0x66,0x07,0x42,0x6a,0xb0,0xcf,0x19,0xaf,0x6c,0x16,0x85,0x78,0x88,0x3b,0xa5,0xbc,0x42,0xd2,0x4c,0xdf,0x51,0x3b,0xc4,0x0e,0xf5,0xc5,0x70,0x57,0x40,0xf6,0xed,0xd2,0x37,0x3e,0x14,0x0c,0x31,0xda,0x94,0x87,0x6b,0xd9,0x8c,0x15,0x41,0xa9,0xc0,0x2a,0x61,0xd3,0x52,0xe0,0xb6,0x0a,0x83,0x6b,0x75,0x1b
+.byte 0x1e,0xd1,0x7f,0x26,0x19,0x34,0x9b,0x70,0xc9,0xba,0xdc,0xa2,0x03,0x6d,0xc7,0xac,0xbd,0x2c,0x63,0x8a,0x7b,0xb1,0x62,0x51,0xc1,0x1d,0x54,0x0d,0x34,0x0e,0xfb,0xa6,0xb8,0x9d,0x79,0x4f,0xc3,0xaa,0x8d,0xa0,0xcc,0x80,0x96,0x86,0x37,0xd6,0x80,0x9c,0x3d,0x91,0xd0,0xe7,0xe2,0xb4,0x00,0xba,0x86,0xe9,0xeb,0x86,0xea,0x84,0x78,0x81
+.byte 0x20,0x29,0x28,0x02,0x4d,0xd8,0x1b,0x5e,0x4f,0x41,0xfc,0x13,0x3e,0x4c,0x7f,0x64,0x55,0x35,0x41,0x0d,0x74,0xc5,0x6a,0x7c,0x37,0x82,0x41,0xbd,0x67,0x39,0xd9,0x83,0xfa,0x7f,0x8c,0xe1,0x9f,0x23,0x0d,0xe4,0x1d,0x40,0xe6,0x6e,0x94,0x5d,0xec,0x77,0xf7,0x5e,0xb4,0xa1,0x03,0xfb,0xa0,0x0e,0xba,0xf8,0x28,0x50,0x3c,0x38,0x47,0xf7
+.byte 0xed,0x2d,0xe5,0x0b,0xa8,0x7a,0xbd,0xbf,0x7e,0x38,0xc0,0x60,0xe7,0x7e,0xb1,0x03,0xef,0x4a,0x8c,0xc7,0x98,0xf1,0x94,0xf6,0xa0,0x50,0xb2,0x0b,0x7c,0x66,0x0a,0x62,0x10,0x24,0xb0,0xa1,0x69,0x02,0x33,0x79,0xbf,0xd0,0xb5,0xcb,0x17,0x20,0x55,0x02,0x70,0x44,0x5b,0xac,0x20,0x35,0xea,0x05,0x2d,0x68,0x51,0xe7,0x5f,0x1b,0xcd,0x4c
+.byte 0x33,0x4d,0x04,0x21,0xfd,0x06,0x67,0x82,0x60,0x98,0x1f,0x79,0xf4,0x28,0xe0,0xa8,0x18,0xeb,0xf5,0x86,0x58,0xe6,0x9f,0xb5,0x29,0x0f,0xe8,0x37,0xeb,0x09,0xf4,0xc6,0x08,0xf2,0xde,0x4d,0x96,0x48,0x62,0x36,0x63,0x10,0x3f,0x63,0xeb,0x44,0x84,0xc8,0xf5,0x74,0x19,0x03,0x50,0xf7,0x7c,0xd2,0x06,0x20,0x6e,0x9b,0xa2,0x37,0xb0,0x68
+.byte 0x78,0x31,0xb6,0x05,0xfa,0xc9,0xcd,0x1d,0x4c,0xbd,0x33,0xb7,0xf3,0x93,0x38,0x7d,0x5f,0x00,0x85,0x5b,0x10,0x7f,0xc4,0x3f,0x3e,0xfe,0x62,0xca,0x51,0x83,0x95,0xcf,0x00,0x65,0x83,0x0e,0xd3,0x78,0xd0,0x51,0xcb,0x70,0x34,0x42,0xc6,0x3a,0x04,0xb9,0x10,0x92,0xe0,0x09,0x06,0xb0,0x66,0x9b,0x37,0x02,0x8d,0x0d,0x3e,0x2f,0xc5,0x17
+.byte 0x6a,0x87,0x7d,0x48,0xa4,0xcc,0x55,0x20,0x7b,0x77,0x07,0xcf,0x44,0x2f,0x88,0x8a,0xcc,0xf2,0x5d,0xa6,0x3e,0x5f,0xda,0xe2,0xde,0xd2,0x7f,0x7f,0xb7,0x90,0x53,0x64,0x6b,0x79,0x42,0x52,0x69,0xc6,0xd6,0xaa,0x9f,0xf9,0x19,0xbe,0x65,0x10,0x99,0x49,0xaf,0x36,0x49,0x1b,0x8a,0x3d,0x7f,0xdb,0xa2,0x1a,0xb5,0xd6,0x34,0x51,0xc8,0xc8
+.byte 0x06,0xca,0xf6,0xb8,0x76,0xa8,0x9d,0x43,0xae,0xf0,0x51,0xe5,0x9a,0x42,0xa2,0x83,0xed,0x20,0x8d,0xe8,0x1c,0xca,0x15,0x4e,0x37,0x3f,0xd8,0x06,0xa0,0xe1,0xf8,0x05,0xfd,0x42,0xf3,0x7a,0x96,0x44,0x36,0x02,0xca,0x11,0x2a,0xc3,0x24,0x58,0xdd,0x85,0x55,0xb2,0xe5,0x1d,0x92,0xc2,0x2d,0x5f,0x7c,0xb5,0x02,0x37,0x7c,0x07,0x35,0x25
+.byte 0x2b,0x33,0x80,0xe2,0xd4,0xfd,0xc7,0xa7,0x19,0x7e,0xba,0x36,0xaf,0xa0,0x4e,0xab,0x8b,0x28,0x4f,0x3b,0x92,0x72,0x42,0x49,0xaa,0x3b,0x08,0x0f,0x1e,0xff,0x2d,0xbf,0x9c,0x48,0x16,0x72,0xbe,0x28,0x05,0x8b,0x3a,0x20,0x6b,0x38,0x43,0xa2,0x35,0xea,0xf7,0x4e,0x50,0xa0,0x43,0x40,0x5c,0xbf,0xe5,0x75,0x13,0x4c,0x36,0x61,0xa1,0x5d
+.byte 0x46,0xd7,0x7a,0x94,0x06,0x2f,0x63,0x32,0x9c,0x6e,0x54,0x18,0x31,0x79,0xf2,0x83,0xcf,0xb4,0x47,0x40,0xe5,0x9a,0xd6,0x99,0x12,0xb3,0x61,0x3d,0x0f,0x5e,0xc8,0x95,0xa3,0x5f,0xc3,0xd5,0x6b,0x6e,0xa0,0xf2,0x2f,0xeb,0x66,0xd0,0x68,0x67,0x10,0x85,0x64,0x27,0xd8,0xb8,0x68,0x00,0x36,0xa5,0xab,0x3e,0xe1,0x43,0x65,0x81,0x2d,0xb9
+.byte 0x0f,0x87,0xfe,0xa1,0x52,0xe9,0x8d,0x82,0x3a,0xd1,0x10,0x52,0x34,0x48,0x7c,0x1c,0xc6,0xd0,0xfe,0xa0,0x1a,0x92,0x07,0x88,0x57,0x9e,0xd7,0x5e,0x9f,0xc8,0xb0,0x93,0x73,0x03,0x28,0x36,0x8c,0x25,0x8c,0x0f,0x4e,0x0f,0x5b,0x26,0x58,0xed,0x5c,0x33,0x75,0x20,0x08,0x11,0x47,0xe1,0x47,0x85,0x47,0xeb,0x54,0xbf,0x58,0xe3,0xd4,0x5b
+.byte 0xf9,0xc6,0x5e,0x42,0x58,0xe6,0xaf,0x79,0x66,0x3c,0xa5,0xa3,0x30,0x33,0xe3,0xbe,0x21,0x4b,0x42,0x98,0x6e,0x44,0xd7,0x68,0xc0,0xff,0xbe,0x7f,0xc5,0xb3,0x4f,0x4a,0x93,0xb0,0x11,0x88,0xcf,0x36,0xb2,0x03,0xbe,0x30,0x52,0x71,0x20,0x0d,0x16,0xc5,0xbb,0xf5,0x92,0x12,0x67,0x6a,0x35,0x66,0x00,0x09,0xd7,0xc6,0x67,0xb0,0x6a,0x04
+.byte 0x19,0x3e,0xbf,0xe2,0x82,0x74,0x78,0x2f,0x77,0x44,0xdc,0xad,0x0f,0x66,0x2a,0x23,0x62,0x2c,0x5a,0x4e,0x3a,0x82,0x2a,0x75,0x16,0x0d,0x74,0x64,0x35,0x53,0xc5,0xf6,0xda,0x36,0x44,0xba,0xe2,0xfa,0x1e,0xc2,0xcf,0x29,0x01,0x36,0x66,0xc3,0xca,0x40,0xf7,0xc4,0xba,0x67,0xac,0xf6,0x17,0xcc,0xa3,0x96,0x2d,0x08,0x5f,0x0a,0xea,0x5e
+.byte 0x97,0xdc,0xc8,0xf9,0x59,0x24,0x6e,0xc5,0x0b,0x02,0xb9,0x1a,0xde,0xac,0x60,0x1d,0xaf,0x9f,0x5a,0x6f,0xe1,0xa6,0xdf,0x75,0xc5,0x9b,0xb7,0xde,0xa4,0xf7,0xf6,0xa4,0xdc,0xb6,0x96,0x08,0xde,0x2a,0x0e,0xb3,0x9d,0xf5,0x75,0x7d,0x7e,0x96,0x91,0x79,0xd4,0xa7,0x30,0x97,0x3a,0xbd,0x7c,0xe0,0xc5,0x87,0x24,0xb0,0x65,0xb7,0x58,0x00
+.byte 0xd9,0x0e,0x97,0xa6,0xa4,0x6a,0xe8,0x0a,0xac,0xac,0x9f,0x3a,0xe3,0x2a,0x9a,0x43,0x41,0x92,0x6e,0x0e,0xc4,0x63,0xc3,0x18,0xb6,0xe1,0xef,0x3d,0xe8,0x0b,0xb0,0x9f,0x2e,0x19,0xa0,0x98,0x98,0x34,0xf8,0x86,0x6d,0xc5,0x8c,0x41,0x26,0xb7,0xf2,0x1d,0xd4,0x72,0x39,0xeb,0x79,0x06,0xaf,0x53,0xaa,0x34,0x80,0x53,0xf8,0x1b,0xf4,0x53
+.byte 0x19,0xfa,0x16,0x8b,0x39,0xea,0x63,0x7f,0x38,0xc4,0x66,0x1d,0xd1,0x90,0xe4,0x2f,0x20,0x43,0x0d,0x5f,0x98,0xcc,0xae,0xef,0x86,0xc8,0xe5,0xf6,0xd2,0xa5,0x49,0xd0,0x3f,0xb5,0x7e,0x42,0xb5,0x6e,0x5e,0x13,0xa5,0xb4,0x71,0x2c,0x5d,0x57,0x24,0x06,0xd2,0x29,0x7c,0x4c,0x90,0xb6,0xea,0xdb,0x62,0xa4,0x2c,0x6c,0x38,0x57,0x97,0xbd
+.byte 0xfd,0x41,0x6e,0x26,0xc1,0xe1,0x6b,0xbb,0xf0,0xe7,0x71,0xf1,0xcf,0x6a,0x7f,0xfa,0xe7,0xfb,0x17,0xe7,0x81,0x19,0x9a,0xf2,0xf6,0x86,0x22,0x4f,0x62,0x59,0xd6,0xc2,0x33,0xbd,0x11,0xe7,0x07,0x3a,0xfe,0x74,0x0d,0xf8,0xd9,0xdb,0xbd,0x05,0xf4,0xf4,0xb1,0x41,0xc9,0xb3,0xf8,0x6a,0x7b,0x98,0x08,0x6c,0xce,0x4c,0x28,0xbf,0x8c,0x77
+.byte 0x68,0xdc,0xee,0xf7,0x11,0xde,0xfc,0x5a,0x58,0x4f,0xf4,0x74,0x9d,0x5b,0x78,0xc3,0x78,0xe5,0x5e,0x26,0x83,0x40,0x17,0x80,0x2a,0x02,0xa4,0xf1,0x0f,0xa0,0xc8,0x22,0xe6,0x09,0x3a,0x52,0x74,0xf0,0xb9,0xb9,0x60,0xaf,0x20,0xa6,0x7e,0x88,0xf4,0xc2,0x38,0xa2,0x21,0x73,0xa9,0x18,0x3f,0x7a,0x04,0x7b,0xc4,0xcd,0x68,0xd9,0x83,0xa4
+.byte 0x8e,0x54,0x0d,0xbc,0xee,0x8b,0x39,0x93,0x66,0xa2,0xd6,0x76,0x4a,0xb2,0x33,0x4f,0x61,0x53,0xde,0x3b,0xff,0x47,0xcb,0x87,0xd9,0x21,0xd0,0x82,0x64,0x54,0xdf,0xf2,0x67,0x62,0x40,0x33,0xc7,0x0d,0xea,0x98,0xaa,0x95,0xfb,0xa9,0x0e,0x90,0xa5,0xd9,0x54,0x81,0x86,0xad,0x9e,0xa4,0x4d,0x36,0xe1,0x77,0xf2,0xe3,0x0a,0x54,0x1a,0x57
+.byte 0x9d,0x62,0x5e,0x0e,0x00,0xc8,0xa6,0x1e,0xf3,0x43,0xe6,0x20,0x0d,0x6a,0x8e,0x90,0x1d,0x4d,0xac,0x2f,0x9f,0x1c,0xb7,0x30,0xec,0x5c,0x99,0x78,0x6f,0x3b,0xe7,0xe0,0x28,0xb9,0x97,0xc5,0x6a,0xf2,0x17,0xc2,0x11,0xac,0x1a,0xe2,0xca,0x57,0x49,0x64,0xc8,0xc7,0x66,0x43,0x8d,0xc8,0xa7,0x0e,0xfc,0xcf,0x05,0x2f,0xae,0x4b,0xfe,0xe4
+.byte 0xbe,0x9c,0xe7,0xe6,0xa8,0x36,0x49,0x0d,0x9c,0x60,0x39,0x0c,0xfd,0x41,0x5b,0xc7,0xa4,0xa5,0x30,0x89,0xe5,0x10,0xf6,0xea,0xf8,0x2c,0xf2,0x3e,0xb1,0x96,0x81,0xa7,0x32,0x8b,0x39,0x14,0x15,0x36,0xfc,0x55,0x3c,0x22,0xcf,0xa3,0x98,0x90,0x68,0x13,0xd8,0x3f,0xf2,0x53,0x19,0x3e,0x9a,0x0c,0x1f,0xc6,0x29,0x43,0x46,0x23,0x58,0xea
+.byte 0x49,0x49,0x15,0x46,0x8e,0x63,0x30,0x1f,0x3e,0x2a,0xa0,0x18,0xfd,0x28,0xc5,0x32,0x77,0x75,0xac,0x6e,0x5d,0x39,0xa9,0x44,0xce,0xfe,0x39,0xa6,0xec,0xde,0x69,0xde,0xfa,0xc8,0x40,0x44,0x34,0x29,0x15,0x19,0xa7,0xbe,0xd6,0x5b,0xfd,0x1f,0x7b,0xb9,0x88,0xf1,0x14,0xcf,0x42,0xc5,0xa7,0xa7,0x0e,0x6b,0x6e,0x86,0xb2,0x7c,0x23,0x8e
+.byte 0xf6,0xae,0xde,0x3c,0xd7,0x26,0x5e,0xde,0x31,0x94,0xc1,0x19,0x65,0x55,0x03,0x73,0xba,0xdc,0x69,0x95,0x9c,0x9d,0x8e,0x59,0xd8,0x51,0x61,0x9f,0x8f,0xf4,0x29,0x43,0x4b,0x6a,0x75,0xb3,0x4b,0x9d,0xcc,0x46,0xd2,0x6e,0x00,0x49,0x4f,0xf0,0xac,0x80,0x55,0xc0,0x0c,0xbf,0x18,0x52,0x75,0x76,0x3b,0xac,0x92,0x83,0x69,0x1b,0xb4,0x15
+.byte 0xe5,0x9e,0xde,0x10,0x30,0x30,0x0e,0x85,0xc7,0xf9,0xae,0xbc,0x9e,0xaf,0x4b,0xee,0x27,0x6b,0xa5,0x6d,0xe4,0x8e,0xed,0xdd,0x95,0xaa,0x85,0xe2,0xf5,0x38,0x15,0x50,0xd3,0xcd,0x2c,0x88,0x6c,0x2b,0x14,0x37,0x74,0x2d,0x6d,0x30,0xec,0x96,0x78,0xae,0x80,0xb3,0xd9,0x84,0xc1,0xd6,0x71,0x90,0xe4,0x8d,0x3a,0x7c,0x9c,0xc4,0xf5,0xa0
+.byte 0x20,0x7e,0xa2,0x0e,0x75,0x7c,0x25,0x7a,0x7e,0x2b,0x2e,0xdb,0x12,0x23,0x73,0x6a,0x8e,0xe3,0xd7,0x47,0x94,0xfb,0xcc,0xe4,0x5a,0x8c,0xfb,0xdc,0x46,0xb3,0x4a,0x42,0x15,0xe0,0xaf,0x6e,0x81,0x72,0x72,0x04,0x52,0x09,0xc5,0x8b,0x6e,0xdd,0x7d,0xff,0x27,0xa8,0xc1,0x94,0xb5,0x33,0x59,0xc2,0x7d,0x59,0x6c,0x3c,0xaa,0xd9,0xd8,0x05
+.byte 0x43,0x7e,0x8a,0x47,0xdd,0x76,0x36,0xe3,0x05,0x49,0xd1,0x8f,0xdf,0x45,0x46,0x63,0xff,0x17,0xb4,0x52,0xc8,0xee,0x4d,0xf5,0x74,0x65,0xc6,0xca,0x19,0xfd,0xb9,0x51,0xc8,0xc9,0x96,0xd4,0x06,0xd4,0x09,0x1e,0xab,0x6d,0x1b,0x26,0x61,0x80,0x5b,0xa8,0xcb,0x62,0x92,0x5a,0x1a,0x8e,0xa4,0xb7,0x25,0x19,0x96,0x63,0xd5,0xc3,0xc9,0xdc
+.byte 0x04,0x83,0x62,0x31,0xe3,0x76,0x00,0x4d,0xf8,0xb3,0x98,0xae,0x4d,0x1a,0x38,0xe3,0xa1,0x27,0x52,0x87,0xbe,0x2c,0x93,0x45,0xd1,0xab,0x56,0xc6,0xf5,0xbc,0xb5,0xe6,0x9c,0xe1,0x1b,0x37,0x42,0x08,0xe7,0x71,0xb5,0xa4,0x67,0xf9,0x48,0xd4,0xc4,0x10,0x25,0x53,0x9c,0x03,0xfc,0x6d,0x5e,0x62,0x5e,0x6d,0x56,0xbc,0x78,0x11,0x0a,0x6d
+.byte 0x1b,0x7a,0xdc,0x62,0xb5,0x58,0x86,0x15,0x71,0xff,0x11,0x33,0x94,0x2b,0xa6,0xc7,0x68,0xd5,0x68,0xda,0x5b,0xd5,0xb7,0x38,0x6c,0x1c,0xf4,0x07,0x39,0xef,0x1f,0x72,0x0a,0xb3,0x12,0x13,0x25,0x86,0xd3,0xf8,0x9f,0xb5,0x40,0x58,0xe7,0x5e,0x9f,0xa0,0xbc,0xd7,0xab,0x4f,0xf3,0x94,0xcf,0x0f,0x5a,0x4c,0x98,0xb4,0x70,0x35,0x62,0xee
+.byte 0x33,0x24,0x72,0x31,0xd4,0x06,0xd9,0xb4,0x1c,0x1e,0x0f,0xa7,0x48,0xc7,0x75,0x45,0x40,0x02,0xd0,0x60,0x32,0x29,0x4d,0x61,0x7a,0xee,0x65,0x35,0x2b,0xe5,0x50,0xac,0x82,0xdb,0xf7,0x9c,0x8f,0x82,0xe4,0xf0,0xbd,0xdb,0x00,0x3d,0x3a,0x3d,0xa2,0xc3,0x2d,0x0e,0x51,0x20,0xdb,0xdb,0x8d,0x15,0x03,0xbd,0xcb,0xcb,0x24,0x81,0xc5,0xdb
+.byte 0x05,0x39,0x48,0xb8,0x3c,0x93,0x35,0x10,0xef,0x19,0xba,0x09,0x9e,0xff,0xf9,0x3f,0x0c,0xdc,0x96,0x98,0x32,0x26,0x76,0xe7,0xfa,0xaa,0xdf,0xdc,0xb9,0x15,0x44,0x42,0x9a,0x8c,0x6c,0x88,0xea,0x43,0x63,0xb5,0x79,0xb6,0x50,0x30,0x78,0xea,0x70,0xba,0x33,0x36,0x8f,0x8c,0xe5,0x78,0xfd,0xbc,0xc0,0xbd,0xde,0x3a,0x3d,0xe6,0xe6,0x57
+.byte 0x0f,0x29,0xf2,0x82,0x05,0xf2,0x5c,0xfd,0x33,0xc1,0xb2,0x2e,0xc2,0xc0,0x42,0xa2,0xc8,0xa5,0xf9,0x70,0x05,0xff,0x7b,0x8d,0xb9,0x68,0xc3,0xf6,0x74,0x00,0xcd,0x9d,0x70,0xfa,0x62,0x34,0xe5,0x05,0xe8,0x5f,0x53,0x9b,0x69,0x01,0x86,0xb9,0x1d,0x68,0x80,0x89,0x51,0x52,0x0d,0xe8,0x28,0xa1,0xdd,0x62,0x2b,0xf3,0x53,0x74,0xaa,0x98
+.byte 0xdb,0x7e,0x74,0x44,0xeb,0x25,0xe7,0xde,0xc4,0x29,0x14,0x11,0x7b,0xc6,0xef,0x14,0xe4,0x04,0xd0,0xf4,0x11,0xca,0xdc,0xdc,0xe6,0x3f,0x9a,0xc9,0xe2,0x0e,0x67,0x30,0x78,0x65,0x94,0x5a,0xa1,0x24,0xd6,0x90,0x2f,0x1c,0x13,0x46,0xf5,0xb5,0xf9,0x74,0x56,0x3e,0xd5,0x1b,0x09,0xb3,0x04,0xbe,0x89,0x00,0xbd,0xe0,0xba,0x13,0x05,0xd1
+.byte 0x98,0xa7,0x93,0x09,0xc5,0x96,0x46,0xb5,0x5a,0x05,0xac,0x1e,0x66,0x03,0xf0,0xaa,0x3d,0xc2,0x54,0xa3,0xc4,0x2b,0x0d,0xa3,0xe4,0x92,0xd6,0xd0,0x44,0xa6,0x37,0x30,0xa5,0xac,0xc2,0xc8,0x58,0x2a,0x2c,0x18,0x68,0x8d,0x9b,0x4f,0x99,0xd0,0x55,0x41,0xf4,0x84,0x3c,0x69,0xda,0x3c,0x6d,0x43,0xb3,0x85,0x15,0x1f,0xdb,0x58,0x0b,0x71
+.byte 0x33,0x24,0xbb,0x21,0x43,0x19,0x16,0xeb,0x83,0xde,0xe5,0xb7,0x68,0x9e,0xb9,0xd9,0xf6,0x2e,0xae,0xdd,0x88,0x2c,0x18,0xd7,0xc3,0x72,0x8b,0xbe,0xaf,0x8d,0xfd,0xcd,0x2f,0x8e,0x3e,0x2b,0xa4,0x20,0x11,0x9d,0x00,0x4f,0xea,0xf0,0xaa,0x2d,0xf3,0x9d,0xfd,0x11,0x7b,0xac,0x2c,0x66,0x74,0x03,0xe5,0xcc,0x70,0x9f,0xfb,0xb7,0x5a,0x16
+.byte 0xc3,0x05,0x61,0x7c,0x8c,0x73,0xcc,0x9c,0x6a,0x2f,0xee,0xae,0x85,0xc9,0x51,0x91,0x13,0xa4,0x09,0x82,0x4d,0x62,0x09,0x24,0x25,0x35,0x1f,0x82,0x88,0xbb,0xdd,0x16,0x5e,0x8d,0x98,0x5f,0x07,0x49,0x32,0x96,0xb7,0xee,0x85,0xb0,0x7b,0xfd,0xf5,0x35,0x4b,0xa9,0xd4,0xee,0xf2,0x37,0xd1,0xfe,0x62,0xf5,0x52,0x13,0xb4,0xb2,0xce,0xc4
+.byte 0xe0,0x09,0x78,0x48,0xd5,0xc6,0x5d,0x36,0x1b,0x90,0x3a,0x6a,0x3c,0x21,0x50,0xf0,0x0a,0xe9,0x46,0x24,0x45,0xc1,0x5e,0x76,0xa3,0xf9,0x70,0xb8,0x62,0x4d,0x0e,0x92,0x87,0x4a,0x6a,0xf9,0x46,0x91,0x64,0xfe,0x7f,0x53,0x24,0x7e,0xc7,0x3e,0xb0,0x37,0x1a,0xc8,0xd6,0x33,0x0b,0x5f,0xa5,0x30,0x03,0x0e,0x85,0x3d,0x7b,0xc1,0xa1,0x18
+.byte 0xb3,0x8c,0xfe,0xca,0x3e,0x71,0xd8,0x92,0x46,0x49,0x60,0x54,0xd9,0x7b,0xf7,0xc3,0x99,0x2f,0xb5,0x79,0xcc,0x32,0x40,0x7d,0x3d,0x0b,0xc6,0x6f,0x04,0xd9,0xf1,0xdd,0x64,0xf5,0xc4,0x60,0x14,0x04,0x5c,0x3a,0xa4,0xda,0xdc,0xad,0x8f,0xc2,0x44,0x37,0x96,0x63,0x00,0xf7,0xb1,0xc0,0x7c,0x8c,0x12,0xb5,0x3a,0xec,0xc0,0x16,0xd8,0x24
+.byte 0xe9,0xc0,0xc4,0xfa,0xb1,0x85,0x5b,0xe3,0x62,0x24,0xa1,0x75,0x92,0x82,0x04,0x59,0x10,0x50,0x4b,0x51,0x51,0x3e,0x39,0xba,0x6d,0xa0,0x65,0x2d,0xfc,0x23,0x1c,0x9d,0x69,0x22,0xe7,0x15,0xfa,0xba,0x76,0xbf,0x53,0x62,0xb0,0x0d,0x0d,0x5d,0x55,0x00,0xbc,0x58,0x01,0xed,0x37,0x53,0xb9,0xa6,0x0d,0x71,0xab,0xec,0x42,0xbf,0x3b,0x52
+.byte 0xfd,0xae,0xe9,0x6d,0x65,0x07,0xf3,0xd9,0x32,0x66,0xc1,0x66,0x1a,0x18,0x73,0x86,0x01,0xaf,0x1d,0xd1,0xd0,0xcf,0xb1,0xea,0x54,0x23,0xdf,0xf2,0x4d,0x7d,0xc7,0xfe,0xfe,0x7d,0x1d,0x2c,0x1b,0xb6,0xa7,0x7a,0x9e,0x90,0x3a,0x3b,0xb0,0x6c,0xb0,0xd2,0xd1,0xd0,0x6a,0x94,0x4c,0x84,0x1c,0x45,0xae,0xda,0x16,0xa9,0x2e,0x63,0x19,0x26
+.byte 0xf6,0x74,0xd3,0x6f,0x9b,0x9c,0x0c,0xb8,0x85,0x9f,0xeb,0x99,0xbc,0xab,0xff,0xc3,0x75,0x86,0xe5,0x3a,0xa0,0xf9,0xfc,0x6b,0x3d,0x5a,0xad,0x46,0x7f,0x17,0x0e,0x94,0xb7,0xa4,0x43,0x61,0x54,0x76,0x29,0x78,0xe4,0x41,0x91,0xbe,0xa5,0x36,0x39,0xdf,0xdc,0xcc,0x8e,0x42,0x40,0x08,0x51,0x26,0xb0,0x53,0x5d,0xb4,0x7a,0x18,0x8e,0xb3
+.byte 0xae,0xf2,0xe0,0xef,0x63,0x51,0x3a,0xbe,0x4c,0x2d,0xce,0xc7,0xe2,0x1b,0xc2,0x40,0xf3,0x82,0x61,0xf0,0x1b,0x05,0xdd,0x1e,0xae,0xed,0x87,0x2c,0xe5,0xad,0xc7,0xec,0xb5,0x63,0xf7,0x3a,0xf9,0xb7,0xd8,0x4e,0xa7,0xef,0xac,0x6d,0x9c,0x27,0xd9,0xcc,0x66,0xf4,0x75,0x40,0x94,0x8b,0x78,0x4f,0x61,0x4f,0x31,0x49,0x5c,0x96,0x72,0x58
+.byte 0xcf,0x55,0xb2,0x66,0x16,0x29,0x27,0x24,0x39,0xc3,0x64,0xb1,0xdf,0x69,0x87,0x85,0x46,0xe3,0xd0,0x82,0x53,0x1a,0xc2,0xf1,0x3a,0xab,0xdf,0xe5,0x29,0x17,0xdd,0xfe,0xbf,0xf9,0x3d,0x7a,0xfb,0xe7,0x74,0x49,0xa9,0xef,0x61,0x93,0x4c,0xfa,0x30,0xea,0x65,0xa7,0x61,0x32,0x88,0x74,0x12,0xc1,0x91,0xf1,0xc2,0x1f,0x38,0x6a,0xfd,0x0d
+.byte 0xc8,0x6f,0x87,0xe6,0x15,0x55,0x26,0x13,0x86,0x13,0xb9,0x01,0x98,0x34,0x1c,0x2d,0x1d,0x30,0xae,0x7d,0x8e,0x07,0x7d,0x4d,0xe9,0xfd,0x58,0x18,0xc3,0xa6,0x8e,0x87,0x98,0x33,0xcc,0x80,0xd7,0x70,0x07,0x6a,0x4a,0x97,0xef,0x56,0xf3,0x9d,0xf9,0xef,0x6f,0xa8,0x71,0x7f,0x61,0x07,0x1d,0x9d,0x51,0x06,0x86,0x4a,0x35,0x9e,0xab,0x2c
+.byte 0x66,0x8d,0x61,0x62,0xbd,0xed,0x6c,0x76,0x7c,0x67,0xe0,0xe1,0x6e,0x90,0x74,0xb1,0xa6,0x26,0x0d,0x01,0x1f,0xe9,0xb4,0x30,0x9a,0x7e,0x37,0xd1,0xea,0x97,0x9a,0x0f,0x9e,0x8d,0x52,0xd4,0x96,0x36,0x5b,0x6f,0x40,0xbb,0x9e,0x44,0xb4,0x6e,0xee,0x15,0x70,0xef,0x66,0x81,0xf5,0xb4,0xe7,0x69,0xb0,0x40,0x44,0xdc,0x70,0x1e,0x4d,0x3c
+.byte 0x9b,0x19,0x2a,0x97,0xbd,0xb2,0xd2,0x9b,0x98,0xac,0x36,0xf1,0x05,0x48,0xdc,0x5d,0x21,0xfb,0x17,0xe3,0x9c,0x3c,0xbf,0xfd,0x1d,0x39,0x1e,0x5b,0x2a,0xa2,0xb3,0x7d,0x4f,0xdf,0x3a,0x41,0x7a,0x31,0x01,0xc2,0xe5,0xd0,0x06,0x50,0x29,0x05,0xce,0xb8,0x28,0xb7,0xdd,0x83,0xc8,0xaa,0x39,0x78,0xc7,0x7d,0x9e,0xcd,0x9a,0x07,0x71,0x7e
+.byte 0x20,0x92,0x82,0xce,0x49,0x90,0xce,0xef,0x53,0xa7,0x48,0x2a,0x69,0x86,0xa1,0x5e,0x35,0xe8,0x7d,0x10,0xb8,0x5e,0xa6,0x9a,0x69,0x6f,0x32,0x75,0xf3,0x4a,0xee,0x9c,0x06,0x5c,0xdd,0x84,0x7e,0x38,0x00,0x67,0x39,0x42,0xed,0x72,0xda,0xe3,0x6b,0x5a,0xf4,0xc9,0x80,0x3e,0x0e,0xda,0x39,0xfa,0x83,0x2c,0x60,0x69,0x87,0x85,0x05,0xfc
+.byte 0xf4,0x2b,0xd4,0x0a,0xad,0x86,0xca,0xd5,0xf0,0x92,0x1f,0x43,0x3c,0x0e,0xac,0x99,0xf3,0x67,0xa3,0x41,0x6d,0xb9,0x29,0x70,0x57,0x62,0x9f,0x45,0x91,0x72,0xe5,0x53,0xcc,0x89,0x80,0x3f,0xbc,0x1c,0x66,0x21,0xdd,0x90,0x2b,0xa4,0xca,0x2f,0xf0,0x0f,0x9f,0xd0,0xe9,0x28,0xe2,0xd9,0x36,0xaf,0xf9,0x01,0x81,0xce,0xb4,0xe7,0x71,0xfd
+.byte 0x92,0xf8,0x56,0x2e,0xc3,0xc8,0x8b,0x54,0xc8,0xc7,0x40,0x79,0x27,0x06,0x18,0x4a,0x7b,0x88,0x3f,0xd6,0x4f,0xd4,0x66,0x1e,0x1f,0x9a,0x14,0x1a,0x0a,0x98,0xc7,0xd6,0x25,0x83,0x37,0x8a,0x5d,0xb2,0x88,0x39,0x68,0x7b,0x1f,0x4e,0x0a,0xed,0x11,0x1a,0x77,0x9b,0xcb,0xb6,0x7d,0x5c,0x36,0xac,0x07,0x07,0x9f,0x05,0xcf,0x90,0x8f,0x3f
+.byte 0x4b,0xc5,0xf9,0x42,0x90,0xb4,0x42,0x26,0xa1,0x2c,0x66,0xc6,0xb8,0x98,0x80,0x8a,0xbb,0x9b,0x41,0xe4,0x44,0x8c,0x5e,0x56,0x33,0xe3,0xba,0xcf,0x31,0x8e,0x28,0xd7,0xc5,0xd1,0x3b,0x68,0x47,0x10,0xae,0xda,0xc3,0xbd,0x20,0xe7,0xac,0xe2,0xe1,0xe0,0x7a,0x4b,0x83,0xb1,0xab,0x72,0xf4,0xc4,0xe7,0x0d,0x02,0xaf,0x5b,0x74,0xac,0xda
+.byte 0x9d,0xce,0x26,0x1f,0x79,0x05,0x67,0x7e,0xc4,0x98,0x3f,0xde,0xa6,0xf3,0xfe,0x59,0x65,0x88,0xfb,0x14,0x3a,0x43,0x91,0x04,0x1a,0x78,0x7e,0x08,0xba,0x55,0x50,0xc7,0x65,0xd3,0x8e,0xda,0x0a,0xee,0x8e,0x11,0xa9,0xf6,0x9e,0xd3,0x23,0x97,0x05,0x0c,0x98,0x2a,0x36,0x25,0xec,0x5e,0x0b,0xf9,0x31,0x80,0x00,0x8a,0x70,0xf1,0xaa,0x7c
+.byte 0x73,0x02,0x98,0x8d,0x42,0x27,0x53,0xf1,0x83,0x37,0xd0,0x2d,0xfa,0xc7,0x4b,0xa5,0xb3,0xc9,0xb8,0xd4,0x56,0x94,0x5a,0x17,0x2e,0x9d,0x1b,0x46,0xaa,0xb6,0xd9,0x2a,0x3a,0x6c,0xaf,0x24,0x59,0xfd,0x08,0xc5,0xca,0x0c,0x79,0x3f,0xe7,0x91,0x8d,0x9d,0x59,0x91,0xd8,0x5f,0xda,0x6d,0x35,0x7b,0x52,0x47,0x35,0xf9,0x81,0x86,0x2c,0xee
+.byte 0x1a,0x14,0xc5,0x1f,0xb6,0x85,0xb5,0x74,0xe9,0xb7,0x4f,0xde,0xcd,0x93,0x2d,0xf3,0x10,0xbe,0x34,0xfa,0xca,0x15,0x9f,0x02,0x9d,0x19,0x72,0x7c,0xd6,0xfd,0x81,0x43,0x49,0xb5,0x2b,0x52,0x31,0xd6,0x2c,0x28,0x2e,0x83,0x6d,0xd3,0x0f,0x6e,0x03,0x65,0xf0,0x8a,0xdd,0x0a,0xec,0x58,0x10,0x45,0x5d,0xac,0xda,0xf5,0x32,0x5d,0x18,0x26
+.byte 0xcc,0x2e,0xcf,0xd3,0x41,0x2d,0x1d,0xba,0xdf,0xd8,0x96,0x8f,0x18,0x0f,0xa7,0xec,0x8e,0x6e,0x84,0x2c,0xd6,0x1f,0x4e,0x76,0xfe,0xf3,0x14,0x27,0x4b,0x5b,0x3d,0x7c,0x1c,0x59,0x46,0x97,0x1b,0x59,0x5a,0x2d,0x57,0x80,0x17,0x98,0x7d,0x92,0x5d,0x2f,0x98,0x53,0x10,0x59,0x8e,0x7f,0x55,0x64,0x15,0x62,0x2c,0x16,0x0b,0x8d,0x48,0x54
+.byte 0xaf,0x96,0x17,0xa9,0x8e,0x2c,0xcf,0x41,0x8c,0x8a,0x37,0x55,0xe4,0xf9,0x20,0x3b,0x21,0x5c,0x86,0x8d,0x3f,0xa6,0x5e,0x43,0xf3,0x3b,0xf7,0x7c,0x27,0x88,0x8e,0xa5,0x15,0xca,0x0e,0x9e,0x85,0x30,0x17,0x0d,0xcf,0xf0,0x82,0x87,0xd6,0xe8,0xd2,0xad,0xe9,0x4d,0x3f,0xc9,0x58,0x19,0xf9,0x99,0x4d,0xf9,0x6b,0x1b,0xd3,0xf9,0xdd,0x52
+.byte 0xd1,0x3c,0x64,0x46,0xfd,0x4f,0x2e,0x63,0x39,0xd8,0xe4,0xeb,0xfc,0x07,0xf1,0xa5,0xff,0x84,0xa8,0x92,0xfe,0xbc,0xc5,0x36,0x91,0x2b,0xec,0x2c,0xad,0xf0,0xac,0xc5,0xb0,0xad,0x8a,0x0d,0x6a,0xd9,0x29,0x7a,0xb0,0x87,0x0c,0xaf,0xda,0x75,0x84,0x25,0xbe,0xee,0x0d,0xfd,0x4c,0xf5,0x2d,0x46,0xe9,0x17,0xb9,0x9d,0x3d,0x4b,0x8f,0x3a
+.byte 0xe9,0x49,0xb6,0x32,0x99,0x27,0xe2,0x4d,0xff,0x2f,0x2e,0xd5,0x69,0x52,0x56,0x20,0x0a,0xbf,0x62,0x14,0x34,0xfb,0xbf,0x95,0xe8,0xfe,0xb1,0x9f,0x43,0x30,0x02,0x03,0x9e,0xa8,0xe2,0x68,0x64,0xdd,0x37,0xfc,0xb9,0x0f,0x85,0x8c,0x36,0x45,0xdb,0x7c,0x8b,0x97,0x50,0xc3,0x75,0xa1,0xcf,0xf4,0xc2,0x46,0xd8,0xa1,0x8c,0xab,0x8d,0x3a
+.byte 0xde,0xe7,0x9e,0xd2,0x1e,0x2d,0x8b,0xe4,0x31,0xe3,0x12,0x3f,0x9f,0x0b,0x2c,0x95,0x75,0x8d,0xf1,0x24,0xb9,0xdf,0x1e,0x64,0x35,0x45,0x2a,0xc2,0xf9,0x96,0x5d,0x10,0x64,0x32,0xae,0xe9,0xf8,0x71,0xd4,0x2d,0x6b,0xc6,0xde,0x08,0x1e,0x5d,0x51,0xf1,0xe7,0xfd,0x3c,0x22,0x43,0x59,0x82,0x83,0x13,0x75,0x36,0xef,0x81,0xe4,0xcf,0xa8
+.byte 0xb8,0x30,0x16,0x44,0xae,0x55,0x06,0xdd,0xb9,0x60,0x3f,0x75,0xc6,0xd1,0x73,0xa9,0xea,0xc9,0x64,0x2b,0x8a,0xde,0x44,0x4b,0x3d,0xc3,0x31,0x12,0x84,0x9a,0xe3,0xda,0x24,0x82,0x99,0x00,0x6d,0x8e,0xb8,0x26,0x82,0xa6,0xc2,0x37,0x6c,0x2a,0x1d,0xcf,0x6d,0x18,0xc7,0xee,0x27,0xca,0xe7,0xad,0x95,0xed,0x7d,0xe0,0xe0,0x6f,0x45,0xc3
+.byte 0x8a,0x2f,0x08,0x49,0x7e,0x09,0x9e,0xc1,0xb7,0x1e,0x8f,0x57,0x61,0xf8,0x3e,0xea,0xd7,0x47,0xfb,0xd0,0xda,0xaa,0x04,0xf9,0x06,0xbb,0xa3,0x80,0x68,0x89,0xb0,0x7f,0x18,0xf3,0xd2,0xeb,0xee,0x48,0x30,0x6a,0x24,0xc8,0x71,0x43,0xc3,0x50,0xcc,0x85,0x68,0xf5,0xca,0x44,0x34,0x43,0xaa,0x2e,0x4f,0x02,0x1b,0x23,0x4f,0xe9,0x07,0x02
+.byte 0xa2,0xfa,0x24,0x57,0x70,0x4e,0x1a,0x78,0x03,0xa2,0xdd,0x53,0x50,0x82,0x05,0xb1,0x0f,0xcb,0x9e,0x2e,0x58,0x04,0x62,0xc8,0xac,0x71,0x31,0x56,0x0f,0xc7,0x70,0x32,0x53,0xda,0x51,0xc3,0x15,0x78,0x82,0xb6,0xe8,0x6e,0x32,0xeb,0x39,0xab,0xba,0x67,0xcc,0xbc,0x99,0x58,0x88,0xc4,0x60,0x0d,0x0b,0xc1,0xfa,0x6f,0x40,0x85,0x04,0xdf
+.byte 0x5f,0x17,0x69,0xf1,0xbd,0x44,0x97,0xc8,0x62,0x19,0x49,0x1f,0x23,0xcb,0x3d,0x17,0x04,0xf2,0xbd,0x58,0x15,0xa6,0x37,0x3a,0x3f,0x77,0x98,0x32,0x40,0x8a,0x72,0xf0,0x41,0x0b,0xad,0x88,0xba,0xd3,0xae,0xdc,0x3b,0x9a,0x37,0x89,0xa5,0x09,0xe5,0xbb,0xf2,0xf8,0x5d,0xa5,0xed,0xe8,0x39,0x7b,0xed,0x2b,0x90,0xd6,0x6c,0xd3,0xfa,0x69
+.byte 0xa7,0xca,0x09,0x83,0x15,0x8d,0xd8,0xe3,0x81,0x03,0x4e,0x2d,0xd8,0x96,0x3b,0x4b,0x18,0x91,0xac,0x5f,0x22,0xe6,0x9d,0x4b,0x09,0xaf,0xf0,0xdf,0x16,0xa2,0xf1,0x2c,0xd9,0x35,0x8a,0x6e,0x85,0x7a,0xbc,0xc7,0x10,0xd1,0x5f,0x8a,0x53,0x9c,0x8e,0xbc,0x8c,0x15,0xb3,0x8a,0xb0,0x0b,0x74,0x40,0x2a,0x5f,0x46,0x71,0x1c,0x0b,0xee,0x08
+.byte 0xae,0x17,0x26,0x1e,0xcf,0xbf,0x3d,0xa0,0x5e,0x3a,0xdb,0x39,0x6b,0x4a,0x82,0x53,0x02,0xf4,0xa2,0x15,0x5c,0xb6,0xdb,0x20,0x30,0xa2,0x7d,0xcb,0x9a,0xf7,0x88,0x69,0xb5,0xc8,0xe6,0xcd,0x9e,0xa4,0xaf,0x27,0x0e,0x61,0x41,0xcd,0x8e,0x71,0x83,0x11,0xce,0x5e,0x6c,0xaf,0xa4,0x50,0x81,0xb6,0xf2,0x36,0x05,0xbb,0x36,0x4e,0x4a,0x1b
+.byte 0x09,0x9f,0xca,0x1b,0x12,0xb0,0x01,0xc0,0xbf,0x7e,0x3f,0x81,0x60,0x9f,0xfd,0x56,0x81,0x54,0x99,0x2b,0x7f,0x1e,0xb1,0xbf,0xd4,0xb7,0xe1,0x7c,0x71,0xf9,0x00,0x72,0x5f,0x10,0xab,0x60,0x03,0x9d,0x13,0xf1,0xba,0x48,0x93,0x1c,0x1d,0x11,0x04,0x40,0xf6,0xde,0x3b,0xef,0x6c,0x47,0xb3,0x0d,0xcf,0x53,0xbd,0x45,0x7e,0xd7,0x8c,0x34
+.byte 0xd0,0xcb,0x85,0x4b,0x1e,0xd1,0xc5,0xfd,0x5b,0x1a,0x18,0x8a,0x27,0xe3,0x16,0x3c,0x25,0x12,0xf2,0xf1,0xa1,0x40,0x53,0x68,0x27,0x2c,0x81,0x0e,0x20,0x12,0xe3,0xde,0xe2,0x9f,0x08,0x75,0xc0,0x25,0x79,0xf0,0xc4,0xaa,0x10,0xad,0x41,0x3f,0x0b,0xc7,0xb2,0xe0,0x50,0xde,0xec,0x24,0x09,0xeb,0xb5,0xd3,0xbc,0xd3,0xdf,0x44,0x6d,0xc8
+.byte 0xf1,0x79,0xf8,0x33,0xb7,0x75,0x09,0x18,0x04,0x59,0x0f,0x15,0x5e,0xf9,0xca,0xe0,0xa9,0x2a,0xe1,0x1b,0xf0,0x49,0x5f,0xca,0xa3,0x80,0xd5,0x9b,0x1e,0xc1,0x1f,0x98,0x18,0x0a,0x24,0xc3,0x3f,0xfb,0x43,0xfd,0xa3,0x01,0x59,0x50,0xea,0x21,0xe0,0x92,0xfd,0xe1,0xd5,0xe4,0x38,0x24,0x88,0xf3,0xb0,0xc9,0x79,0xfd,0x4e,0xd3,0x3e,0xbf
+.byte 0xc6,0xb8,0x9e,0x7f,0xab,0x65,0x79,0xd9,0xb9,0x83,0x38,0xe1,0xf7,0xd0,0x37,0x04,0xb3,0x0c,0x48,0x82,0x74,0xe1,0x0c,0x80,0x13,0x59,0xc4,0x72,0xf9,0x2d,0x88,0x06,0x46,0x08,0x7a,0x6b,0xb4,0xfc,0x5f,0x63,0x31,0x2f,0x4f,0xfd,0x4b,0x1f,0x8e,0x21,0x3c,0x67,0x83,0xdd,0xa9,0x65,0x68,0xc6,0xd0,0xb8,0x1d,0xcd,0x60,0xc5,0xb9,0x3b
+.byte 0xea,0xe9,0xc7,0xa5,0x1a,0x98,0x8a,0x87,0xb7,0x73,0x29,0x3a,0x6a,0x3a,0x75,0xbf,0xa4,0x79,0x64,0xcb,0x94,0x68,0x93,0x56,0x55,0x1e,0xd5,0x61,0xda,0x87,0xe1,0x28,0xf0,0xa5,0x64,0x9a,0xd7,0xa0,0x91,0xfd,0x46,0x20,0x6c,0x87,0x1f,0xe8,0x9e,0x7e,0x95,0xc4,0x60,0xdb,0xf4,0xe2,0x3e,0xb2,0x6a,0x4a,0xe7,0x46,0x3f,0xca,0xf3,0x72
+.byte 0xb5,0xe8,0x06,0x3a,0x1b,0xeb,0xcb,0x81,0x46,0x44,0xf6,0x97,0xa0,0x79,0xe4,0xa4,0x8a,0xba,0x5e,0x1b,0x6d,0xf4,0xcf,0x7c,0x12,0x7a,0xec,0xdd,0xf6,0xc8,0xab,0x5f,0x30,0xb3,0xf9,0x8e,0x31,0xfd,0x51,0x95,0x8b,0xa1,0xe9,0xe8,0x2d,0xec,0x86,0x12,0x4a,0xf8,0x8b,0xa5,0xdd,0xb2,0xe4,0xad,0xdd,0xcb,0xf5,0xcd,0x9c,0x9f,0x0a,0x42
+.byte 0x5f,0x83,0x9d,0xa6,0x4f,0xbe,0x11,0x75,0x3c,0xde,0x67,0x6b,0x95,0xcd,0xcf,0xdc,0xfd,0x1f,0x1a,0x14,0x01,0x27,0x68,0xaf,0x9b,0x82,0xd6,0xae,0x29,0x8a,0x1f,0xc8,0xf1,0x1f,0xb8,0xa9,0xa2,0x1d,0x81,0xbb,0x19,0xda,0x06,0xe3,0x34,0x7b,0xce,0x99,0x3c,0x5b,0x0c,0x9b,0x8b,0x35,0xc0,0x6c,0x88,0xef,0xeb,0x9f,0x64,0xe3,0xc3,0xbf
+.byte 0x37,0xd7,0xf6,0xdf,0xad,0x28,0xf4,0xd7,0x19,0xb0,0xf2,0xa7,0xd4,0x71,0xbc,0xd3,0xa3,0x09,0x5c,0x1a,0x45,0x30,0x2d,0x53,0xa5,0x19,0x2f,0xb0,0x5d,0xae,0x04,0x28,0xe6,0x16,0x3e,0x75,0x9f,0xcc,0x76,0xc4,0xc2,0xa0,0xfb,0xff,0xdd,0x4c,0xa3,0x8b,0xad,0x05,0x73,0x26,0xf0,0xef,0x48,0xd5,0x25,0x22,0x90,0x78,0x21,0xfd,0xc6,0x23
+.byte 0x14,0xbc,0xed,0x13,0x29,0x76,0x17,0xa6,0x93,0x09,0x6e,0xa7,0x42,0xdd,0x11,0x9e,0x05,0xa3,0xb7,0x48,0x84,0x85,0xf8,0x4e,0xed,0x3d,0xdb,0xfc,0x68,0xd2,0xec,0xec,0x69,0x2b,0x60,0x38,0xd1,0x99,0x44,0xf9,0x60,0xd3,0x5a,0x9e,0xe4,0x26,0x9d,0x12,0xf8,0x6a,0x53,0xde,0x76,0x78,0xa7,0x68,0xb0,0xb4,0xdc,0x33,0x7b,0x8a,0x73,0xa0
+.byte 0xa5,0x5f,0x8f,0x81,0x0e,0x51,0x06,0x13,0x6b,0x56,0x16,0x91,0x1f,0xf5,0x6b,0x68,0xe6,0x8b,0x69,0xda,0x0a,0x9c,0xb1,0x74,0x8f,0x1c,0xb3,0xbf,0x52,0x59,0xaa,0xb1,0xb6,0x3a,0x81,0xc2,0x04,0x54,0x12,0x46,0xa2,0xd5,0x21,0xdf,0xe0,0x57,0x1f,0xe8,0x36,0x56,0x87,0xbf,0xcb,0x7d,0x06,0x6c,0xd5,0xc9,0x4e,0xca,0x47,0x47,0x11,0x91
+.byte 0x7a,0x14,0x13,0x5d,0x5d,0x46,0xd5,0x3a,0xe4,0xa4,0x4d,0x99,0x3a,0x54,0x99,0x62,0xb4,0x70,0xa0,0xf5,0x8a,0xda,0x05,0x75,0xf1,0xa5,0xa1,0x5d,0x9d,0xc4,0x7f,0x83,0x8a,0x5b,0x09,0x54,0x0e,0x69,0x28,0xef,0x66,0xfb,0xe4,0xc4,0xe4,0xc4,0xda,0xb0,0xda,0xe2,0x19,0x33,0x3c,0x76,0xa0,0x35,0xdc,0x31,0x4e,0x40,0xfe,0xb8,0x20,0x26
+.byte 0x8f,0x6f,0x7d,0x02,0x54,0x86,0x1d,0xca,0xa6,0x10,0xa6,0x89,0x87,0x3a,0x5a,0xd5,0x3d,0x0f,0xb5,0x81,0x7d,0xab,0xb6,0xc6,0x36,0x87,0xce,0xd7,0xe4,0xc3,0x9e,0xc2,0x9c,0xf6,0x75,0xd5,0x9a,0x69,0xd2,0x13,0x89,0x5a,0xe9,0x29,0xc9,0xf5,0x6e,0xcc,0x05,0x87,0x0a,0x61,0x49,0xd7,0xa5,0x76,0xd0,0xaf,0x96,0xe0,0x2f,0x91,0xf4,0x45
+.byte 0x70,0x5a,0xdc,0x9f,0x07,0x7f,0x86,0x02,0xa4,0x83,0x8d,0x4a,0x6d,0xfc,0x1b,0xd8,0x9b,0xc2,0x42,0x4f,0xcb,0xdf,0xcb,0xe0,0x55,0xb4,0x8f,0xf7,0x27,0x73,0xd9,0x7e,0xf8,0x3a,0x5c,0x4f,0x29,0x64,0xd8,0x39,0xfa,0xf2,0xc4,0x6b,0xeb,0x55,0xc3,0x13,0x22,0x15,0xdf,0xc5,0x91,0x6d,0xd7,0xf3,0x11,0x34,0x08,0xce,0xe5,0xbd,0x16,0x14
+.byte 0x60,0x14,0x8a,0xed,0x4d,0x38,0x98,0x15,0x5d,0xee,0x70,0xff,0x05,0xd2,0x74,0x3a,0x5f,0x78,0x1a,0x70,0x61,0x2a,0x42,0x4a,0xf3,0x15,0x6f,0x9e,0x33,0xca,0xb8,0x46,0x22,0x64,0xd6,0x24,0xe8,0x10,0x1a,0x89,0xab,0x74,0xdf,0x56,0x35,0x41,0x57,0xe1,0xd9,0x4b,0x67,0x60,0x89,0x6f,0xbf,0x73,0xac,0x6b,0xf9,0x78,0x3f,0xbc,0xf3,0x2a
+.byte 0xb5,0x8c,0x1f,0xda,0xe7,0xe2,0xac,0x60,0xbf,0x41,0x96,0xbb,0xd5,0x35,0x9c,0x56,0xe7,0xfd,0x95,0xc7,0x4d,0x32,0xa1,0x07,0x34,0xbc,0x99,0xca,0xcc,0x42,0x71,0xfb,0xec,0x5c,0x1e,0xf9,0x8b,0xde,0x43,0x65,0x84,0x16,0x52,0x0a,0x5e,0x92,0x20,0xd8,0x26,0x4b,0x97,0x71,0xde,0xd2,0x1f,0x2e,0xd1,0xb2,0xb6,0x29,0x6a,0x6d,0x41,0x00
+.byte 0x20,0x3d,0x03,0xf8,0x43,0x7b,0x57,0x87,0x4e,0xf1,0x8e,0x6f,0xd3,0xf4,0x6c,0x6c,0x29,0xf6,0x99,0xe3,0xd3,0x1d,0xd3,0x26,0x21,0x3b,0x02,0xa2,0xc1,0x06,0xcf,0x31,0xec,0x7f,0xc6,0x80,0xbc,0xab,0x86,0x01,0xff,0x11,0x8a,0x24,0xfd,0x1b,0x41,0x49,0xd4,0xbe,0x15,0x34,0x82,0xc5,0x02,0x51,0x67,0x5c,0x41,0x8e,0xbf,0x94,0x12,0x15
+.byte 0x64,0xea,0x00,0x0c,0x51,0x40,0x57,0x66,0x1e,0x6d,0x3e,0x41,0x8e,0x84,0xdf,0x71,0xb8,0xd7,0xfa,0x12,0x17,0x22,0x17,0x05,0xdc,0x82,0xfd,0x7c,0x5e,0xfa,0x62,0x23,0xa8,0xbe,0x14,0xdc,0x84,0x42,0xf0,0x90,0xc5,0xb0,0x68,0xbe,0x64,0x74,0xc3,0xa5,0xd1,0x10,0xcf,0xe3,0xd1,0x09,0x98,0x3b,0xb9,0x19,0xf2,0x9b,0x5d,0x90,0x99,0x3d
+.byte 0x30,0x67,0x55,0x34,0x50,0x78,0x3b,0xd2,0x70,0xb1,0xd2,0x91,0x4e,0xfa,0x98,0x7d,0x93,0xad,0x7f,0xb1,0x89,0xb0,0x61,0x4c,0x95,0x3f,0x51,0x95,0xd7,0xc6,0x87,0x7a,0xc5,0x53,0xb6,0x6d,0x61,0xec,0xbe,0x40,0x1f,0xa5,0x7f,0x73,0x4a,0x78,0xd2,0x58,0x1e,0x41,0x8e,0x9a,0x08,0x49,0xce,0x39,0x52,0xf9,0xd1,0xcd,0x41,0xb6,0x39,0x99
+.byte 0xfa,0xfb,0x1c,0x38,0xe1,0xe5,0xe1,0xd6,0x16,0x0f,0xc8,0x12,0x0b,0x88,0xdc,0x00,0xd4,0x7b,0x24,0x69,0x16,0x27,0x37,0xa3,0xd5,0x39,0x27,0x34,0xda,0x23,0x24,0x50,0x13,0xd8,0x02,0x48,0x14,0xd7,0xc9,0x28,0x1b,0xba,0x66,0xa8,0xc8,0x9a,0x7b,0xed,0x92,0x5b,0x78,0x46,0x79,0x5a,0xd1,0xf2,0x75,0xf0,0x98,0xd3,0x9f,0x4c,0x72,0x51
+.byte 0xed,0xe5,0xce,0x83,0xac,0xe1,0xc8,0x2b,0x7f,0x77,0x6a,0x70,0xdd,0x80,0x88,0x62,0x58,0x94,0x15,0x72,0x53,0x34,0x48,0x17,0xb2,0xe8,0x4a,0xab,0x2d,0x4e,0xef,0x93,0xb7,0xba,0xd1,0x1c,0x53,0x69,0xd5,0xac,0xa1,0x61,0x7c,0x44,0xec,0x81,0x72,0xcc,0xe8,0x6f,0x5d,0x67,0x1f,0x65,0x9a,0x34,0xf5,0x95,0x89,0x1c,0x2e,0x54,0x42,0xc0
+.byte 0x85,0x79,0xb0,0xfa,0x44,0x0d,0x28,0xc4,0x20,0x2f,0x2e,0x85,0x73,0xfb,0xf6,0x44,0x0e,0xbc,0xab,0x4f,0x42,0x5c,0xdb,0x1f,0x11,0x6f,0x9a,0x23,0x75,0x70,0x78,0x1a,0xd2,0xb8,0x83,0x72,0xf5,0xf6,0x40,0x48,0x3f,0xc8,0xd5,0xe3,0x2c,0x08,0x5c,0x0c,0x2a,0xb0,0x8e,0x69,0xe6,0xdf,0x4b,0x4a,0x95,0x9c,0x4c,0x5e,0x09,0x24,0xc3,0xd0
+.byte 0x4c,0x20,0x0c,0x9a,0xce,0x95,0x53,0x6a,0x7b,0x54,0x0a,0x7e,0x73,0xa7,0x95,0xe7,0x7c,0x67,0x9d,0x05,0xbc,0x26,0x3a,0xa1,0x43,0x99,0x7a,0xee,0x04,0xcf,0x94,0x02,0x36,0x26,0xb3,0x81,0x74,0x22,0xee,0x1e,0x9e,0xe2,0x82,0xd4,0xe0,0xca,0xf2,0xec,0xd2,0x9e,0xf8,0x3f,0x9f,0xc4,0x5b,0xe8,0xfc,0xbd,0x93,0xaa,0xc3,0x2f,0xce,0xf2
+.byte 0x32,0xa9,0x23,0xf3,0xe1,0x06,0xae,0x7d,0x87,0xe9,0xe7,0xe0,0xc1,0x7c,0x74,0x9c,0xdf,0x86,0x6d,0x5c,0x8a,0x51,0x45,0x9d,0x43,0x49,0x87,0x45,0x75,0xfb,0x40,0x55,0xab,0x9a,0x52,0xf1,0x32,0x5e,0xde,0x8b,0x52,0x50,0x9f,0xb8,0x7a,0xe5,0x1c,0x40,0x4f,0xc7,0xb1,0x29,0x90,0xcc,0x98,0x99,0xa0,0x4e,0x1c,0x43,0x6e,0x91,0x61,0x9c
+.byte 0xf7,0xa7,0xf7,0x43,0x89,0x15,0x8c,0x56,0x22,0x9d,0x66,0xac,0x71,0x19,0xdc,0xb9,0xf8,0xd3,0xaf,0x2e,0xd7,0x7b,0xc3,0xe4,0x25,0x0d,0x2c,0xaf,0x15,0x8c,0xea,0x2b,0xdb,0x8c,0x71,0xff,0x55,0x29,0x11,0x35,0x11,0xef,0xb0,0x97,0xb2,0x95,0xab,0xeb,0x4a,0x40,0x1c,0x92,0xc4,0x13,0x36,0x74,0x53,0x78,0x51,0x6c,0xca,0x37,0xcb,0xda
+.byte 0x5e,0x6b,0x8c,0x69,0xc5,0xd0,0xf9,0xdb,0xbe,0xd9,0x30,0x42,0x16,0xcf,0x40,0x63,0x87,0x10,0x28,0x7d,0xae,0xa9,0x8c,0x14,0x99,0xe1,0x4f,0x11,0x98,0x7e,0xe9,0x14,0x9c,0x2e,0xe2,0xed,0x20,0x15,0x7c,0xb5,0xf4,0xc9,0x16,0x30,0x8d,0x7c,0x61,0x45,0xf4,0x23,0xf5,0xdb,0x81,0x8f,0x6b,0x41,0xaf,0xa9,0xf8,0x51,0xbe,0xc4,0x5d,0x8c
+.byte 0xda,0x5e,0x07,0x62,0x7c,0xc6,0xd1,0xae,0x91,0x5e,0x05,0xa8,0xc6,0xc5,0xfc,0xb7,0x12,0x2e,0x7f,0x85,0xef,0xbd,0x2b,0x56,0x57,0x32,0xad,0x3d,0x97,0x5b,0x26,0xcf,0xd3,0xe7,0x48,0x4e,0x9b,0x15,0x98,0x77,0xb4,0x3e,0xf1,0x3e,0x1c,0x21,0xb0,0x98,0xe2,0x69,0xee,0xd8,0x29,0x10,0x93,0xd5,0xc9,0x71,0x8f,0x28,0xbd,0xe3,0xd9,0x54
+.byte 0xf3,0x72,0xb6,0x85,0xe9,0x2b,0xdc,0x96,0x52,0x53,0x5c,0x61,0x54,0x96,0x4a,0xf5,0x3f,0xee,0x53,0xc3,0x63,0xc9,0x67,0x14,0xdf,0x3a,0xfe,0x46,0x8a,0xa6,0xec,0x06,0x0c,0xea,0xb8,0x82,0x49,0xb5,0xed,0x94,0xf2,0xac,0x76,0xd5,0x87,0x79,0x15,0x4f,0xa1,0x34,0x90,0x8e,0x7b,0x02,0xf7,0x02,0xb0,0x07,0xa5,0x7c,0x6b,0xc2,0x34,0x84
+.byte 0xd4,0xaa,0xbf,0x32,0x81,0xf7,0xed,0x1f,0x61,0xd7,0x6e,0x40,0xa0,0xdc,0x4c,0xb5,0xb7,0x36,0x3a,0x87,0x09,0x82,0xd5,0x5a,0xc8,0x1f,0xe6,0x77,0xa6,0xaa,0xcf,0x3c,0x7b,0x23,0x46,0x58,0x95,0x7f,0x84,0xba,0x4a,0x05,0x0b,0x36,0xdb,0x58,0xf9,0xa4,0x2b,0x24,0xd4,0x8a,0xbc,0xb2,0xb7,0x04,0xac,0x64,0x0e,0x88,0x25,0x9a,0x69,0xe7
+.byte 0x87,0x70,0x0b,0xa6,0x43,0xe9,0xb2,0xbb,0x4e,0x4c,0x10,0x19,0x44,0x4d,0x12,0x4c,0x58,0x2a,0x49,0xe2,0x01,0xd2,0x65,0x23,0xee,0xe9,0xca,0x0b,0xa1,0x28,0x02,0x8d,0xcf,0x37,0x06,0xbc,0x5d,0x35,0xba,0xec,0x97,0x95,0xcc,0xfe,0x7b,0xc9,0x1c,0x0d,0x89,0x4e,0xe1,0x8d,0x9b,0x5e,0x5b,0xb9,0x6c,0x24,0x73,0x9a,0x62,0xd7,0xc5,0xfa
+.byte 0x54,0xeb,0x05,0x22,0xd9,0xe7,0xc4,0x68,0x88,0x20,0x43,0xd9,0x14,0x47,0xd7,0xa5,0xd0,0xce,0x10,0x77,0xe8,0x5c,0x85,0x39,0x99,0x3f,0x72,0x88,0x4f,0x22,0x15,0x87,0xa0,0xa3,0x47,0x10,0x81,0x64,0xff,0x94,0x77,0x5d,0xce,0x6d,0xd8,0x29,0xb1,0x9c,0x8e,0xce,0xa8,0x39,0x4f,0xfc,0x36,0x3c,0x50,0xb2,0xf1,0x08,0x66,0x1a,0xf0,0x22
+.byte 0x65,0x1f,0x4d,0x17,0xd3,0x63,0x10,0x64,0xd1,0xc6,0x5a,0x3e,0x82,0x72,0x0c,0x48,0x5e,0x07,0x9c,0x07,0xa0,0x40,0x60,0xab,0x74,0x9a,0x00,0xdf,0xd7,0x7d,0xd4,0x11,0x4e,0xce,0x5a,0xaf,0x12,0x4f,0xe7,0x12,0x36,0x1a,0x12,0x11,0x16,0xb7,0xad,0x4b,0x28,0x84,0x7b,0xd8,0x30,0x0d,0x85,0xb8,0x76,0xde,0xa3,0x78,0x8c,0xb7,0x7c,0xbc
+.byte 0x97,0x33,0x53,0x95,0xf8,0x14,0x5f,0xf8,0x0d,0xc1,0x6b,0x79,0xa2,0x42,0x49,0xab,0xae,0x8e,0x78,0xf3,0x51,0x01,0xcc,0x20,0x36,0x80,0xbd,0x32,0x0b,0x1b,0xd2,0xcd,0x27,0x52,0x69,0x1b,0x4a,0x37,0xba,0x31,0xe4,0xc2,0x03,0x8d,0x00,0x48,0x4b,0xcd,0x39,0x2e,0xec,0x94,0x2e,0xe0,0x81,0xfd,0x94,0xd9,0x86,0x39,0x23,0x87,0x3c,0x2f
+.byte 0x25,0xe1,0x5b,0x22,0xe0,0x2e,0x37,0x6d,0x9b,0x97,0x9c,0x94,0x37,0x01,0x26,0xb8,0xb1,0x73,0x7c,0xfc,0x0a,0x64,0xe7,0x54,0xf1,0x0f,0x71,0xa1,0xd6,0xc7,0xc8,0xb4,0x86,0x2d,0xfe,0x30,0x8b,0xca,0xb2,0x18,0x21,0xc0,0xc7,0x7d,0x60,0xcf,0x2e,0x25,0xb0,0xa4,0x1a,0x28,0x19,0xa9,0xa9,0x15,0x32,0x5e,0x21,0x89,0x3a,0x99,0x5f,0x50
+.byte 0x86,0x37,0x3b,0x10,0xb8,0xa5,0xad,0x8e,0xbf,0xfc,0x8c,0x85,0xf1,0x76,0x5c,0xe7,0x4d,0xac,0xe7,0x21,0xb3,0x45,0x87,0x3b,0x05,0xc8,0x41,0xf4,0x99,0x83,0x28,0x40,0x6b,0x30,0x37,0x31,0xd2,0xb3,0xdd,0x43,0x3b,0x3f,0xec,0x50,0x58,0x7d,0x20,0xc6,0xb2,0xa9,0x3c,0x22,0x38,0xea,0x16,0x32,0x01,0xc4,0xb0,0x9f,0x7d,0x12,0x91,0x82
+.byte 0x0c,0xd8,0x36,0xfc,0xa4,0xec,0x06,0xb2,0xc2,0xce,0x9b,0xa4,0x53,0x71,0x77,0xdd,0xc3,0xfc,0x34,0x6f,0xd9,0x5c,0xfc,0x36,0xdd,0x63,0x19,0x06,0xfb,0x3c,0xf3,0x3f,0x82,0x28,0x6d,0x00,0xf9,0xfd,0x8d,0x6b,0x79,0x06,0x8a,0xe7,0x6f,0xcc,0x39,0x12,0x80,0x71,0xcb,0x71,0xb3,0xb6,0xa4,0xa8,0xbe,0x61,0x9d,0x1f,0x48,0xa2,0x15,0xa1
+.byte 0xb5,0xf5,0x16,0x70,0xc5,0x39,0xce,0x43,0xa3,0x09,0xe5,0xf4,0x8b,0x77,0x18,0x5e,0xa0,0x77,0xa3,0xa4,0x17,0x2c,0x3e,0x50,0x73,0x2f,0xaa,0x5d,0x58,0x5e,0xdc,0xec,0xaf,0xca,0x6e,0x57,0x80,0xa3,0xd5,0x94,0x30,0x7c,0x11,0x75,0xc4,0xbb,0x9d,0x18,0xc1,0x5a,0x58,0xc7,0x04,0x56,0xb1,0x3a,0x21,0x55,0x02,0xea,0xad,0x58,0x19,0x72
+.byte 0xdc,0x7d,0x0e,0x41,0x62,0x1b,0x5c,0x48,0x97,0x3f,0xed,0xd7,0x4e,0x30,0x1f,0xf5,0xde,0xc5,0x23,0xf2,0xd7,0x22,0xde,0x2f,0x3e,0x80,0x06,0x81,0xf6,0x24,0xb7,0x91,0x09,0x56,0x91,0x00,0x1a,0xea,0xaa,0xa6,0xc2,0x8b,0xc9,0x78,0xd7,0xde,0xf6,0x87,0xb1,0x04,0xcc,0xbb,0xc1,0xc6,0x48,0x43,0xc8,0x03,0xb2,0xdd,0x70,0xc0,0xe3,0xf5
+.byte 0xc0,0xf5,0x13,0xd5,0x11,0x41,0x7f,0x1a,0xdc,0x48,0xf5,0xd6,0x1b,0x0a,0x84,0xd2,0x84,0xcd,0x10,0x4f,0x0a,0xd7,0xcb,0x41,0x61,0x1c,0xcc,0x5c,0xa9,0xbd,0x6e,0x6a,0xf3,0x81,0xd8,0xaa,0x3a,0xff,0x39,0x90,0x8e,0x33,0xe6,0x58,0x13,0x5f,0xec,0x58,0x74,0x35,0xe0,0x06,0x38,0x0f,0xd0,0xbf,0x8d,0xf7,0x26,0x99,0xea,0xdd,0xfb,0xdf
+.byte 0x5b,0xcc,0xf1,0x3d,0x9b,0x84,0x8b,0x5b,0xe8,0xc4,0xc6,0x3e,0x0a,0x55,0xec,0x73,0xf7,0x70,0xb1,0xc8,0xfa,0xf8,0xd6,0x72,0x2c,0x6d,0x8d,0xc1,0xa3,0xb2,0x9a,0xe7,0x80,0x6d,0x09,0xa6,0x76,0x06,0x71,0xf9,0x95,0x9a,0xa9,0x2f,0x4b,0x7c,0xad,0x64,0x01,0x01,0x91,0xe4,0x87,0x1d,0xe1,0x46,0xf5,0x4a,0x96,0xc6,0x58,0xd9,0xe0,0xa9
+.byte 0x2f,0x80,0x1e,0xd6,0xe9,0xa6,0xeb,0xfe,0x5a,0xb6,0xd3,0xe8,0x76,0xd2,0x51,0xc6,0x68,0x34,0xc9,0xed,0x76,0x29,0x7e,0x63,0xb1,0x09,0xdf,0x23,0x47,0x41,0x2f,0x70,0x46,0x4d,0xbb,0x36,0xc8,0x84,0xe9,0x58,0x20,0x6b,0x04,0xb2,0xa4,0x1c,0x4d,0xe0,0xa5,0xa2,0x59,0xc9,0xed,0x63,0x25,0x5f,0x3f,0x24,0x18,0x59,0x29,0xe3,0x79,0xbd
+.byte 0x35,0x50,0xee,0x81,0x59,0xff,0xd4,0x0e,0x62,0xd3,0x52,0x30,0x81,0xa2,0xe6,0x9e,0xc3,0xc9,0x7a,0x10,0x57,0x36,0x27,0xb7,0x3c,0x61,0x38,0x89,0x70,0xa0,0xc5,0xdf,0x78,0x05,0xa5,0x81,0xe2,0x8a,0x93,0xda,0x7c,0xaf,0xbf,0x6d,0x42,0x09,0x1b,0x43,0x9d,0xf9,0x26,0x87,0xc3,0x84,0x6c,0xb7,0x25,0x31,0x50,0x00,0xd8,0x13,0xc0,0xc0
+.byte 0x6c,0x21,0x82,0x6d,0xf9,0x2f,0xef,0x40,0xe8,0xf8,0xae,0x4d,0x9e,0x1d,0x4a,0xda,0xa0,0x0d,0x77,0x36,0x8b,0xed,0xaf,0x6e,0x2a,0x3d,0xa8,0x36,0xe4,0xff,0x37,0xc2,0xa3,0x11,0x5e,0x68,0x58,0xa8,0xa3,0x19,0xf3,0xc1,0x33,0xea,0x39,0x49,0xfe,0x51,0x87,0xb6,0x31,0x6a,0x61,0x47,0xe7,0xb1,0x46,0xde,0x5a,0xf7,0x93,0x06,0xa7,0x72
+.byte 0xa9,0x2e,0x9e,0x2e,0xc9,0x7f,0xe1,0xb2,0x86,0xb4,0xc9,0xff,0x3b,0xf7,0xaf,0xef,0x91,0x47,0xc2,0xfa,0x42,0x0a,0x4e,0xbb,0x10,0x0d,0xea,0xa4,0x11,0x54,0xa9,0x53,0xde,0xc4,0x01,0xde,0xc7,0x2d,0x1f,0x18,0x40,0x79,0xd1,0x44,0x7d,0x51,0x1d,0xf6,0xdc,0x6f,0xad,0xa2,0x5d,0xd9,0xbe,0x5d,0x11,0x57,0xb7,0x68,0x0d,0x96,0xad,0xb3
+.byte 0x32,0xf7,0x99,0xcc,0x0e,0x03,0xa2,0x79,0x9b,0x63,0xce,0xee,0xf9,0x0c,0xfd,0xfa,0x9a,0x82,0xc9,0x43,0xd3,0xd5,0x23,0xfa,0xac,0x75,0xbe,0x61,0x85,0x18,0xb6,0x75,0x72,0x8d,0x17,0xdd,0xde,0x3f,0x6d,0xb4,0xe8,0x47,0x09,0xe1,0xa7,0xe0,0x4c,0xce,0x93,0x7b,0xc3,0xa3,0x3f,0xc0,0x81,0x21,0x6f,0xe8,0xce,0x68,0x61,0xde,0x1a,0x58
+.byte 0x48,0x7f,0xb4,0xae,0xfd,0x7c,0x80,0x63,0x43,0x5a,0xfc,0xf9,0xf9,0x4d,0xb4,0x8c,0x85,0x27,0x12,0x4f,0x7d,0xe8,0x69,0xc3,0x7d,0x57,0x63,0x0d,0x5f,0xd2,0x85,0x4e,0x0c,0x9a,0x0d,0x1c,0x4d,0xdf,0x3f,0x9a,0x16,0x2f,0x34,0x43,0xc3,0xf0,0xf1,0x16,0x16,0xd2,0x9f,0x2e,0x78,0xd8,0x3c,0x63,0xa0,0x7e,0x02,0x8e,0x65,0xd2,0xb0,0x61
+.byte 0xb0,0x1d,0x7a,0x8f,0xf7,0x30,0x45,0x05,0xf7,0x15,0xc3,0x69,0x24,0x98,0xc3,0x74,0x20,0x16,0x09,0x57,0x39,0x16,0x68,0x23,0x33,0x62,0x4c,0xf5,0xd6,0x34,0xe3,0xad,0x7a,0x14,0x64,0x8c,0x2b,0x48,0x96,0xf9,0x85,0x39,0x19,0x73,0x27,0x04,0xa6,0x55,0x66,0x15,0x8c,0xf1,0x47,0xcd,0x53,0xaf,0x31,0x3a,0xd9,0xfa,0xf9,0xac,0xbd,0xb8
+.byte 0x27,0xe0,0xaa,0xa5,0x62,0x85,0x9f,0xbb,0x4e,0xaf,0xa5,0x72,0x42,0x98,0xa6,0x7f,0xa1,0xb6,0xac,0x17,0xc2,0x2c,0xf3,0xd6,0xc0,0x14,0x4b,0xb3,0x86,0x88,0x89,0x81,0x83,0x7d,0x9d,0xf7,0xe3,0xe4,0x27,0xba,0xa8,0x03,0xb4,0xe3,0x97,0x74,0x1c,0x0d,0xab,0xb4,0x6e,0xc6,0x9e,0x58,0xdd,0x15,0x95,0x2f,0xa6,0xd6,0xaa,0x5a,0x96,0x71
+.byte 0x69,0xca,0xe0,0x5f,0xd2,0x3c,0x66,0x1b,0x58,0x25,0xd6,0xec,0xc0,0x46,0x3e,0x56,0xd0,0xe1,0x36,0x44,0x56,0xc0,0xf2,0x15,0x48,0x9e,0x07,0xce,0x5d,0xb9,0xd4,0x4e,0xcc,0x31,0x26,0xaa,0xdb,0x6a,0x87,0x98,0x0e,0x37,0xfc,0xc5,0x91,0x28,0x1b,0xf8,0x70,0xbf,0x30,0x71,0xbe,0xa0,0x81,0x1e,0x30,0x33,0x37,0x37,0xc8,0x07,0x08,0x9b
+.byte 0x8f,0xe4,0x27,0x9f,0x90,0x67,0xb4,0x96,0x08,0xd7,0x30,0x9e,0xa6,0x53,0x39,0xd1,0x9b,0xde,0x02,0x35,0xf3,0xb1,0x19,0x7b,0xd2,0x28,0x5a,0xc3,0x1f,0x69,0x0e,0x48,0xbf,0xa3,0xb4,0x55,0xd1,0x10,0x3d,0x30,0x71,0xc6,0x82,0x2d,0xb8,0x6f,0xe6,0x99,0x6b,0xef,0x9f,0x86,0xed,0x93,0x13,0xb6,0xb0,0x87,0x91,0x77,0x4a,0x00,0xe4,0x5f
+.byte 0x4c,0x7d,0x41,0x3b,0xc9,0xda,0x99,0x6b,0xff,0xec,0xef,0x05,0x3c,0xc6,0x0d,0xec,0x68,0x12,0x44,0x31,0xac,0xc9,0x0b,0x9c,0xf5,0xea,0xed,0xda,0x88,0xec,0x6e,0x6e,0x73,0xda,0x85,0x52,0x69,0xa1,0x13,0x52,0xcf,0xc3,0x4d,0x95,0x88,0xec,0x1f,0x53,0x81,0x6f,0xac,0x53,0x60,0x48,0x20,0x9a,0x4d,0x88,0x2c,0x4b,0xb0,0x69,0x5f,0x07
+.byte 0xf9,0xa7,0x2c,0x9a,0x13,0x91,0x86,0xa2,0x98,0x20,0xa9,0x80,0x1e,0xaa,0x8e,0xbc,0x3c,0x3d,0x51,0x34,0x3d,0x5b,0x80,0xe4,0x39,0xfe,0xc8,0xb1,0x6d,0xfe,0x36,0x9d,0x9b,0xde,0x22,0x39,0x41,0xe9,0xff,0xda,0x67,0x67,0xd4,0xeb,0x60,0x44,0xd5,0xc1,0x74,0xcd,0xa0,0x98,0x06,0x34,0x76,0xf8,0xe5,0x0d,0xc8,0x52,0xca,0x83,0xd2,0xdd
+.byte 0xf2,0x12,0x36,0x7d,0x3e,0x7f,0xbd,0xa6,0xd8,0x1e,0xc0,0x9d,0x67,0x2a,0x33,0x87,0x86,0x79,0x7a,0x70,0x3a,0x63,0x0b,0x74,0x77,0x89,0xce,0x8f,0x5a,0x3b,0xf3,0x2e,0x52,0x4d,0x1d,0xc6,0xc3,0xc8,0x69,0x98,0xdc,0x81,0x45,0x99,0xfd,0xcd,0x6b,0x6d,0x05,0x33,0x40,0xde,0xb3,0xbd,0x4a,0x27,0xc2,0x9e,0x8b,0xf1,0x4c,0xac,0x92,0x82
+.byte 0x55,0x04,0x79,0xe7,0x28,0x74,0x5b,0x70,0xdc,0xc0,0x4f,0x0c,0xcf,0x3a,0x7f,0x08,0xcc,0x2e,0x1d,0xfd,0x8d,0xd9,0x5c,0xe2,0xa7,0x98,0xc1,0xe8,0x4b,0x96,0xbe,0x27,0xd6,0xfd,0x0a,0x59,0x30,0x33,0x85,0x41,0xc5,0x63,0xab,0xe7,0xda,0x26,0xbd,0xce,0xe7,0x9d,0x50,0xd7,0x2d,0x67,0x7a,0xa1,0x05,0x2b,0x74,0x60,0x5e,0x6c,0x04,0x2b
+.byte 0xba,0xe6,0x2d,0x25,0xc9,0x00,0xd0,0xf0,0xa5,0x4f,0x22,0x59,0x34,0xb8,0x43,0x6b,0xb7,0x67,0x25,0x99,0xff,0x75,0x17,0xb1,0x13,0x7e,0x34,0x1d,0x42,0xa3,0x6b,0xb5,0x9d,0xfe,0xa1,0x71,0x0d,0x90,0x81,0x58,0xfc,0xc7,0x85,0xe6,0xbd,0xc2,0xcc,0xc9,0xc9,0x23,0x6e,0xd6,0xbe,0x4a,0x61,0xd4,0xf5,0x9e,0x37,0x6a,0xb1,0x8b,0x91,0x59
+.byte 0xe1,0x3e,0xac,0x87,0x54,0xa6,0xf9,0xf5,0x90,0xd2,0x7c,0xba,0x4b,0x37,0x33,0x1b,0x88,0x5e,0xbd,0x78,0x3f,0xed,0x43,0x40,0x4f,0x16,0x59,0x29,0xbc,0x27,0x98,0x87,0xfe,0x62,0x56,0x93,0x21,0x0a,0xca,0xc1,0x21,0x99,0xb3,0x32,0xbb,0x5a,0x79,0x40,0xab,0xea,0x00,0xf8,0xe9,0x90,0x0d,0x59,0xbd,0x6e,0x7f,0x74,0x01,0x50,0x67,0x3a
+.byte 0x8e,0x24,0x1d,0x6c,0xc8,0xd6,0x93,0xca,0x71,0x95,0xec,0xac,0x78,0xe9,0x1f,0x38,0x0d,0xa2,0xe5,0x32,0x90,0xa2,0xaf,0xef,0x15,0x06,0xd6,0x52,0xa4,0xd2,0x94,0x0f,0xbd,0x86,0x81,0x82,0x12,0x9b,0x3a,0xc4,0x0b,0xdf,0x8a,0x5f,0xc6,0x3b,0xb4,0x13,0x9b,0xeb,0xed,0x2d,0x06,0x46,0xa3,0xbe,0xbb,0xe1,0xe1,0x93,0xa1,0xab,0x46,0xf3
+.byte 0xd0,0xd9,0xce,0xb6,0xfb,0xd0,0xd5,0xb6,0xde,0x0c,0xed,0x90,0x18,0x6c,0x1e,0x46,0xb0,0x36,0xa7,0xf1,0x29,0xbe,0x9a,0xa0,0xcf,0xed,0xd6,0xaf,0xb8,0x89,0x9b,0x83,0xa8,0xa0,0x8d,0x26,0xaf,0x8f,0x48,0x66,0xfc,0x22,0x1a,0xc0,0xcf,0xf8,0x90,0x57,0x7e,0x25,0x5f,0xe4,0x0c,0x68,0xd2,0xaa,0x59,0x09,0x2f,0x6d,0x3f,0x80,0x8d,0xe0
+.byte 0xfa,0x25,0xb0,0xe0,0x85,0xe9,0x13,0x39,0x3d,0x1f,0xed,0xd1,0x94,0x9b,0xb5,0xc2,0x65,0xda,0xec,0x7a,0x1f,0x2f,0xe2,0x0a,0x42,0x09,0xbd,0x79,0x7d,0xcb,0xb8,0x4a,0x02,0x2b,0x72,0xaf,0x33,0x85,0x72,0x1b,0x18,0x0c,0xa3,0xec,0x39,0x0e,0x30,0x21,0x41,0xf8,0x2e,0xc7,0x8e,0x5c,0x4c,0xda,0x22,0x49,0x8c,0xa7,0xfb,0x89,0x76,0x2e
+.byte 0x45,0x90,0x6c,0xeb,0x70,0x78,0x6d,0x6e,0xee,0x12,0x6c,0xb9,0xb9,0x8d,0xe7,0xf3,0x4d,0x86,0xc4,0x58,0x49,0x55,0xa6,0x86,0xaf,0x39,0x03,0x21,0xfa,0xa7,0xdd,0x51,0x80,0x79,0x6d,0x5b,0xa5,0x58,0x0f,0xfd,0x57,0xb3,0x83,0xe6,0x0d,0x25,0xec,0x55,0xdc,0x0a,0x6f,0xbc,0x7d,0xfd,0x94,0x16,0xdd,0x60,0x9f,0x2a,0x4b,0x6c,0x82,0x03
+.byte 0x4b,0x44,0xbb,0x84,0xdc,0xcb,0x97,0x8e,0x58,0xe7,0xc1,0x79,0xa9,0xf3,0x53,0x78,0x1f,0xf1,0x3e,0xdd,0x94,0x24,0x6d,0xb1,0xd2,0x99,0xbc,0xa1,0xbe,0x7d,0xdd,0xff,0xa8,0x5d,0xd2,0xc2,0xba,0xad,0x60,0x6b,0x40,0x5d,0x7b,0x99,0xd2,0xea,0x45,0x66,0x80,0x6c,0x47,0xf2,0xeb,0x94,0xb8,0xe8,0xe8,0xa0,0x46,0x05,0xe1,0x4f,0x40,0x23
+.byte 0x34,0xdf,0x91,0x63,0xae,0xc9,0xe7,0x32,0x20,0x9a,0x95,0x1e,0xcd,0x5a,0x60,0xe1,0x3d,0xe0,0xf1,0x16,0x3d,0x6e,0x8b,0x96,0x23,0xe0,0xaa,0x1d,0x1a,0xde,0xed,0xc6,0x63,0xb5,0x46,0x8b,0x78,0x71,0x9a,0x14,0x88,0x79,0x61,0x68,0x6b,0xcf,0x80,0xd8,0x9c,0xaa,0xfb,0xb1,0xc0,0xf3,0x39,0x07,0x26,0x56,0x80,0xba,0x9d,0xf5,0xe7,0x95
+.byte 0x99,0xac,0x90,0xea,0xe7,0xe1,0xc9,0x0d,0x40,0x94,0x83,0x58,0xd2,0xc3,0x2b,0xce,0x1e,0xae,0x2a,0xa6,0xfa,0xc7,0x89,0x44,0xcb,0xe2,0x9e,0x74,0x33,0xaa,0x70,0xe5,0x28,0x3a,0x51,0x74,0x53,0xe2,0xfb,0x7c,0x47,0x76,0x22,0xdf,0x46,0xa6,0x01,0x17,0xef,0x88,0x43,0x46,0x3f,0x1a,0x26,0x0c,0xad,0xf4,0x31,0x55,0xf2,0xe7,0xc9,0x35
+.byte 0x6f,0x7c,0x0c,0x5c,0xfd,0x43,0xa4,0x6c,0x6c,0x74,0xf0,0xa4,0xec,0x1d,0x83,0x97,0xc1,0x6c,0x9c,0xd7,0x97,0x90,0x7c,0x07,0x88,0xc0,0xb4,0x79,0x2c,0x7a,0x9c,0x93,0xa2,0x15,0x6c,0xd2,0xa9,0x45,0xa5,0xc1,0x16,0xfe,0x72,0xf4,0x01,0x32,0xe4,0x51,0xdd,0xdb,0x50,0xe3,0x61,0x4e,0x29,0x1e,0x27,0x10,0xe9,0x5e,0x30,0x2b,0x30,0x27
+.byte 0x99,0xff,0x92,0x23,0x04,0x8d,0x28,0x68,0x28,0xd3,0x0f,0xec,0xbb,0xf9,0xfb,0x44,0x1c,0xaa,0x8b,0x38,0x95,0x67,0x1e,0xf5,0x42,0xc9,0xec,0x05,0xeb,0x94,0xe5,0x1c,0x8a,0x2a,0xef,0x3b,0x74,0x46,0x89,0x4f,0xd5,0x6f,0xa0,0xe5,0x74,0xae,0x24,0x8d,0x81,0xae,0x9d,0x3c,0x3e,0x3d,0x41,0x54,0x8f,0xd9,0xc2,0x98,0xf4,0x84,0xeb,0x30
+.byte 0x6a,0x06,0x67,0x11,0x2d,0xb0,0x55,0x70,0x26,0xdf,0x19,0x5f,0x81,0xe9,0x39,0x69,0x3a,0xd6,0x09,0xa4,0x40,0x22,0x1f,0x5c,0xbf,0xd5,0xa6,0xea,0x69,0x99,0x0d,0xea,0x70,0xed,0xfe,0x3a,0xba,0x23,0x8b,0xab,0x08,0xfe,0xfb,0xe9,0x1a,0x88,0x80,0x13,0x45,0x9c,0xca,0x2e,0xda,0x4a,0xc8,0x5d,0x15,0x52,0x87,0x36,0x9b,0x87,0x8a,0x76
+.byte 0x5d,0x31,0x24,0x4a,0xcb,0xf5,0xd3,0xd3,0xc1,0xec,0xde,0x1e,0x48,0x99,0xd5,0xcb,0x93,0xf7,0xca,0x2d,0xa4,0x66,0x5e,0xa4,0xcf,0xc6,0x15,0x20,0x10,0xb1,0xe2,0x8e,0xb9,0x44,0xa7,0xc3,0x54,0x14,0x86,0x08,0xb7,0x89,0x52,0xd5,0x72,0xc5,0x62,0x4d,0x82,0x96,0x23,0xcf,0x6e,0x52,0x3a,0x92,0x53,0x48,0xa2,0xa5,0x9d,0xa4,0xcc,0x32
+.byte 0x45,0x5a,0xdf,0xe2,0xbe,0xce,0x28,0xc8,0xb1,0xb7,0x0f,0x6a,0x38,0x28,0x14,0x66,0x55,0x7a,0xab,0x35,0x56,0xd0,0xc7,0xe5,0xa1,0x8a,0x84,0xf7,0xc5,0xa9,0xdb,0x2a,0x45,0xe9,0x34,0x2d,0xf2,0xed,0x2b,0xa9,0x9e,0x49,0x1b,0x23,0x10,0xeb,0x0e,0x01,0x46,0x6f,0x7a,0x50,0x09,0x5f,0xc3,0xb6,0x1e,0x2f,0x1a,0x3e,0x89,0x32,0xaa,0x5a
+.byte 0xaa,0xef,0x23,0x45,0xdc,0xb5,0x7e,0x5f,0x87,0x77,0xde,0x50,0xab,0xbf,0x9e,0x62,0xa8,0xe0,0xf0,0xc8,0x4a,0xf1,0x4e,0xaf,0xe4,0x50,0x8a,0xfe,0xc9,0x68,0xdd,0x19,0x1d,0xc6,0x54,0xe5,0x38,0x0a,0x6f,0x36,0xe4,0x85,0xe8,0xab,0xc4,0x06,0xef,0x07,0x29,0xce,0xea,0x9d,0x2e,0x22,0x97,0x18,0x7e,0x59,0x89,0x92,0x31,0xc5,0x87,0x50
+.byte 0xa8,0x23,0x22,0x58,0x47,0x27,0x1c,0x89,0x5f,0xec,0x94,0x1d,0xb2,0xc8,0x61,0x1e,0x0a,0x80,0xd3,0xe9,0xbf,0x65,0xb9,0x66,0x32,0x56,0xde,0xd2,0x13,0xee,0xea,0xc4,0xc9,0xbf,0x4c,0xb7,0xa4,0x1c,0xc0,0xbf,0xcf,0xa4,0x58,0x1f,0x98,0x1d,0x25,0x4e,0x51,0xd9,0xbe,0x89,0x32,0xdb,0x7a,0xa6,0x39,0xa9,0xbf,0xed,0x65,0x6b,0x92,0xc4
+.byte 0x8d,0xcd,0x63,0x18,0x65,0x44,0x95,0xcf,0x17,0x72,0x8f,0x27,0x79,0x83,0xda,0xe3,0xe7,0xd9,0xca,0x57,0xff,0xa3,0x15,0xbf,0xb6,0xd8,0xc2,0x8c,0xe8,0xdb,0x8c,0xdc,0x54,0x6a,0xc8,0x57,0x6e,0x24,0xc3,0x3c,0x1f,0x33,0xdd,0x68,0xbd,0x7a,0xa3,0xbc,0xa9,0x9a,0xe8,0xfc,0x97,0xa5,0xbe,0x59,0xfb,0x77,0xcd,0x22,0xc6,0x3d,0x95,0x21
+.byte 0xcb,0xf7,0x8d,0xc1,0x77,0xc6,0xe0,0x06,0xb2,0xdb,0xec,0x54,0x19,0xad,0x02,0x25,0xe0,0x0f,0xda,0x4c,0xa5,0xf2,0x47,0x3f,0xc9,0xa0,0x91,0x21,0x39,0xe9,0x74,0x2a,0x9a,0xc1,0x57,0x86,0x3c,0x32,0x27,0x4c,0xc2,0x2d,0x50,0xbd,0x7a,0x04,0x9c,0x45,0x0d,0x7e,0x06,0x1d,0x3e,0xc1,0x6f,0x06,0x7f,0xd4,0x71,0xd3,0x5c,0x66,0x74,0xa7
+.byte 0x33,0x75,0x64,0xa8,0x7d,0xc0,0x23,0xda,0xb0,0x6d,0x12,0xbe,0x83,0x98,0xe7,0x65,0x38,0x4d,0x39,0xc3,0xd7,0x33,0xfb,0x58,0x64,0xfc,0xde,0xd7,0xbf,0x9e,0xdb,0xcc,0x7a,0x35,0xac,0xdf,0x13,0x08,0xbc,0x0a,0x55,0x82,0x5f,0xc3,0x74,0xc5,0xb2,0xdb,0x89,0xdc,0x9c,0x60,0xfa,0x02,0x1c,0xba,0x5b,0x7e,0x0f,0xb1,0x0f,0xad,0x43,0xe1
+.byte 0xe1,0xbe,0x1e,0x06,0x05,0x0f,0x39,0x80,0x3d,0x7d,0xbe,0x8f,0x38,0x25,0x46,0x5e,0xea,0x47,0x36,0x65,0x4c,0x3c,0x6c,0xd6,0xaa,0x46,0xaa,0xb0,0x95,0x1d,0xff,0x67,0x6c,0x70,0x9d,0xec,0x3d,0x3d,0x4c,0x2f,0xd9,0x2b,0xb0,0xbd,0x8c,0x6a,0xca,0xac,0x0c,0x53,0xa1,0xda,0xd8,0xc1,0x3c,0xaa,0xcc,0x50,0x85,0x41,0xa1,0xa7,0xe9,0x7f
+.byte 0xf7,0xa8,0x28,0xb1,0x5f,0xd6,0x77,0xc9,0xb5,0xae,0x33,0xa7,0x2d,0x16,0xe0,0x13,0xe8,0xd4,0xf9,0x4e,0x62,0x2e,0xc2,0x9a,0xf3,0x83,0xe0,0x45,0x43,0x68,0x40,0x5a,0x56,0xf3,0x31,0xc8,0x5b,0x46,0x0b,0x38,0x1f,0xa5,0xff,0xe6,0xa1,0x81,0xc0,0x91,0xe5,0x5a,0x63,0x8f,0x47,0x9a,0xe7,0x26,0x0d,0x78,0x8d,0x11,0x7d,0xc8,0xd4,0x9f
+.byte 0xc1,0xf7,0x8f,0x93,0xfa,0x2f,0xb5,0xfd,0x6d,0xa4,0x34,0xcf,0x3c,0x6c,0xf6,0x64,0xae,0x5c,0x60,0xa2,0xb4,0xcc,0x18,0x3e,0x08,0x8e,0x36,0x88,0xab,0xc3,0xea,0x53,0x4f,0x1c,0x9e,0xe6,0xef,0x2d,0x9c,0x78,0x4a,0x3a,0x5a,0x60,0x8e,0xf7,0xeb,0x0b,0x36,0xb1,0xbb,0x59,0xe2,0x5e,0x64,0x60,0xe5,0xd6,0x3d,0x2a,0xe1,0x1b,0x03,0x40
+.byte 0x8d,0xde,0x2e,0xd0,0x76,0x0a,0x6b,0x63,0x2a,0x53,0x2d,0x39,0xe0,0x53,0xee,0x7d,0xc4,0x8a,0x39,0xc5,0xda,0xfc,0x31,0x7e,0xa2,0x1b,0x11,0x1d,0x8a,0x8e,0x66,0xf4,0x00,0x17,0xd3,0x78,0x1b,0x94,0xad,0xcf,0xdd,0x56,0xce,0xaf,0xf6,0x34,0xe4,0xb6,0x47,0xe0,0xda,0x1b,0x36,0x4f,0x86,0x26,0xc1,0x65,0xec,0x85,0x8c,0xa9,0xfe,0x96
+.byte 0x75,0x0d,0xe3,0xeb,0x9a,0xa6,0x3f,0xb3,0x10,0x03,0x85,0x24,0xf2,0xb5,0xcd,0x69,0x7d,0xba,0xa2,0x5c,0x8a,0x6d,0x45,0xf4,0xc8,0x4f,0x69,0x8e,0xd4,0x69,0x82,0x42,0xfd,0x00,0x59,0xfd,0x20,0x7a,0x63,0x58,0x56,0x30,0x21,0x73,0xbd,0xd4,0x49,0x84,0x3f,0x51,0x0e,0xfb,0xd3,0xfc,0x93,0x17,0x7f,0x23,0x75,0x25,0xea,0x78,0x79,0xf7
+.byte 0xec,0x22,0xef,0x86,0x91,0x0a,0x90,0x10,0x71,0x3b,0xb8,0x8e,0xb7,0xc9,0xd1,0x26,0x98,0x7d,0x1a,0xab,0x74,0x3e,0x5f,0x10,0xa8,0x47,0xdf,0xc9,0x0a,0x03,0xbb,0xe2,0xbb,0x34,0xbe,0x87,0x1a,0x3e,0x13,0x4b,0xd5,0xdd,0x53,0xb7,0x65,0xb4,0x16,0x38,0xd3,0xfd,0x01,0xde,0xe8,0xba,0x1d,0x33,0x5b,0x7b,0x9b,0x9f,0xfb,0xe7,0x8d,0x82
+.byte 0x21,0x78,0x9e,0xb2,0xf5,0x16,0x37,0x88,0x47,0x9d,0x1a,0x2c,0xfe,0x6a,0xac,0xde,0x3e,0xc4,0xa8,0xed,0x64,0x46,0xdd,0x05,0x07,0x60,0xef,0x99,0x96,0xf0,0x84,0x27,0x38,0x58,0xe5,0xc0,0x53,0x7d,0x07,0xe3,0xa5,0x31,0xb5,0x8a,0xe7,0x50,0x94,0xbb,0x29,0xf9,0x58,0x13,0x91,0x5b,0x54,0x77,0xf6,0x91,0xb8,0x75,0x05,0x3d,0x70,0x3e
+.byte 0x07,0x95,0x7d,0x37,0xbd,0x1d,0x29,0x4d,0x33,0x07,0x13,0x2b,0x54,0x70,0x9c,0x31,0xf1,0xcd,0x2d,0x28,0x09,0x43,0x90,0x24,0x8c,0x82,0xb0,0x08,0x71,0x08,0x97,0x7e,0x1a,0xbc,0x82,0xd8,0x31,0x0a,0x13,0xe9,0x22,0xf0,0x8d,0x2b,0x91,0xe5,0x2e,0x34,0x56,0x97,0x86,0xc9,0xbd,0x45,0x1e,0x32,0x03,0xcb,0xa1,0x29,0x00,0x81,0xd4,0x6e
+.byte 0x5d,0xbc,0x0f,0x01,0x8d,0x5c,0xb9,0x80,0xcc,0xfe,0x0d,0xa3,0xef,0x8e,0x85,0x59,0x37,0xf7,0x64,0xa7,0xe5,0x2a,0xd5,0x44,0xee,0x91,0xcf,0x6c,0xf5,0x0a,0x9b,0xc7,0xdf,0xb6,0x02,0x2d,0xa4,0xf1,0x22,0x2a,0x97,0xfe,0x1d,0xb7,0x4c,0xc7,0x4f,0x2f,0x0b,0x38,0xd2,0xbf,0xfe,0xe3,0x94,0x55,0xae,0x85,0x0c,0x34,0x59,0x67,0x23,0x7b
+.byte 0x4a,0x87,0xd9,0xd2,0xca,0xd5,0x38,0xd2,0x9d,0x05,0x2e,0xd8,0xe3,0x26,0x51,0xa4,0x14,0x66,0xfb,0x38,0x40,0x18,0x3b,0xda,0x43,0x85,0xc9,0xf5,0xf4,0xe7,0x22,0x82,0x45,0xa1,0xdf,0x98,0xa0,0xab,0x5f,0x7a,0x50,0x84,0x75,0x7a,0x70,0xa6,0x3b,0x04,0x20,0xed,0xa8,0x68,0x6d,0x3f,0x43,0xf8,0xb8,0xac,0xc7,0x32,0xa0,0xff,0x47,0xd5
+.byte 0xb3,0x92,0x6a,0x15,0x5a,0xf1,0x7c,0x32,0x30,0xda,0x1e,0x5d,0xab,0xcc,0xd0,0x3a,0xdc,0xcf,0x70,0xd8,0x4d,0xa3,0x50,0xac,0x50,0x42,0x53,0xc6,0xe0,0x3a,0x26,0xdc,0x77,0x30,0x31,0x59,0xa1,0xfc,0x4d,0x48,0x00,0x0d,0xe0,0x66,0xb3,0x9b,0xd3,0x38,0x45,0xbb,0x0c,0x57,0xc5,0x78,0xee,0x8c,0x96,0xea,0xa2,0x16,0xa3,0x12,0xb1,0x06
+.byte 0xd0,0x2a,0x70,0xf7,0xce,0x42,0xae,0x17,0x64,0xbf,0x13,0xa0,0xe9,0x62,0x57,0x1d,0x55,0x78,0xfa,0x72,0x19,0x58,0x15,0xea,0xe5,0xdf,0x72,0x0e,0xc6,0xd3,0xb4,0x3d,0x60,0xee,0x32,0x2a,0xce,0xdc,0xad,0xd0,0x34,0xe6,0xb4,0xcf,0xce,0x5a,0x4a,0x9f,0xaf,0x01,0xb3,0x2a,0xed,0x46,0xa0,0xad,0xaa,0x62,0x8b,0xa4,0xf7,0x4b,0xce,0x32
+.byte 0x35,0x29,0x1e,0x7a,0xda,0x74,0xf8,0xe5,0xda,0x52,0x66,0xaf,0x3d,0x1a,0xff,0x42,0xc0,0xcc,0xb1,0x32,0x36,0x10,0x44,0x34,0x6a,0x16,0xc2,0x5b,0x9a,0x35,0x3f,0xd2,0x29,0xc5,0x76,0x3c,0x24,0xc7,0x2b,0x92,0xae,0xe0,0xe2,0x04,0x6c,0x3b,0x97,0xda,0xfd,0x49,0x43,0x6d,0x35,0xf5,0xc3,0xc1,0x93,0xf8,0x2f,0x25,0xef,0x3e,0xd8,0xf2
+.byte 0xc0,0xb3,0xb5,0x71,0x01,0xe0,0x07,0x11,0xd5,0xf1,0xd3,0x54,0x59,0x93,0x77,0x2e,0x77,0xdc,0x57,0xd7,0x9b,0x0a,0xe2,0xde,0x29,0x04,0x81,0xa1,0x81,0x6f,0x94,0x86,0x39,0xd7,0x29,0x69,0x3f,0xfa,0xe4,0x02,0x01,0x85,0x04,0x21,0xd3,0x17,0xf5,0x68,0x85,0x6e,0x74,0x15,0x56,0xe6,0x5e,0x12,0x1c,0x0d,0x2f,0x7a,0x8d,0xe1,0xc8,0x47
+.byte 0x7b,0xdc,0x35,0x64,0xf1,0x00,0xc0,0x7b,0xd8,0x2c,0x8c,0x60,0x10,0x53,0x11,0x2c,0x5c,0xa2,0xb6,0x05,0xa3,0xcd,0x14,0xb6,0xd0,0x36,0xe9,0x74,0x78,0xc3,0x84,0x6b,0x51,0xa9,0xf9,0xf1,0x05,0xe2,0xd4,0xa3,0x57,0xec,0xb1,0x5e,0xd5,0x75,0x64,0xe3,0xb0,0xf9,0x8f,0x88,0x60,0xdf,0x8e,0x75,0xf9,0x32,0xfc,0x58,0x5b,0x4b,0x17,0xdb
+.byte 0x41,0x04,0x6f,0x17,0x7a,0xf8,0xd0,0x47,0x8e,0xeb,0xd1,0xf9,0xa6,0xa8,0x52,0x7e,0x07,0x6b,0x5b,0x4d,0xb9,0xda,0x91,0x40,0x51,0x25,0x67,0x4b,0xf1,0x95,0x12,0x07,0xa9,0xa5,0x33,0x96,0x92,0x5e,0xb4,0x0e,0xf0,0x85,0x2e,0x70,0xd8,0xaf,0xae,0x9a,0x3d,0x0c,0xb0,0xee,0xe1,0x80,0x5a,0xb9,0x17,0xe6,0x00,0xa8,0x82,0xd0,0x9b,0xf5
+.byte 0xe3,0xa0,0x12,0xc4,0x15,0xd6,0x5e,0x57,0x5c,0xd2,0xb9,0xa7,0x8e,0xfd,0x09,0xc3,0xd2,0x66,0xfd,0x86,0xb4,0xdc,0xa3,0xc2,0xfe,0x16,0x86,0xc4,0x98,0xa3,0x2e,0x4c,0xc9,0x2c,0xd6,0x87,0x83,0x1b,0x6f,0xe2,0x44,0xd6,0x72,0x94,0x1d,0xba,0xaf,0x34,0x1f,0xf2,0x40,0x40,0x33,0x24,0x63,0xc1,0x26,0xef,0xbc,0x0f,0x3b,0x3c,0x65,0x2b
+.byte 0xa7,0xc7,0xdf,0x96,0x67,0xab,0x92,0x0e,0x04,0x8c,0x82,0x9e,0xbe,0x52,0x61,0x40,0xdf,0x77,0x00,0xc5,0x01,0x9a,0xe9,0xde,0xe1,0xe2,0x45,0xb8,0xed,0x94,0xd5,0xf0,0x28,0x29,0xef,0x0d,0x91,0x07,0x9b,0xfe,0x69,0x78,0x26,0xd7,0xf9,0x51,0xf1,0x9c,0xf2,0xbb,0x83,0x2d,0x79,0x1e,0xff,0x97,0x13,0xdc,0x28,0x93,0x26,0x7c,0x54,0x52
+.byte 0xc0,0x92,0xeb,0x4a,0xa2,0xe3,0x01,0xfc,0x07,0xb9,0x26,0x11,0x03,0xe0,0x19,0xa8,0x9c,0xff,0x3a,0x95,0x26,0x3a,0x17,0xf1,0x7d,0x6a,0x6a,0xb2,0xb5,0x5a,0x07,0x43,0x2b,0xb7,0xdd,0x19,0x14,0xe0,0x05,0x91,0xc5,0xee,0x49,0x35,0x7b,0x1a,0x2d,0x34,0xda,0xa2,0x45,0x7e,0x0d,0x64,0x98,0xb6,0x2e,0x47,0xaa,0x6c,0x73,0x66,0x55,0x01
+.byte 0x27,0xb0,0xa9,0x13,0xa6,0xe0,0x74,0x38,0xb3,0x97,0xfe,0xaf,0xdc,0xc0,0x6a,0x4f,0xd8,0xdb,0x07,0x62,0x61,0x05,0xbb,0xa0,0xa8,0xc5,0xb3,0x89,0x13,0xbb,0x09,0x01,0x6f,0x09,0xcb,0x47,0x62,0x46,0xf0,0x4b,0xf0,0xb7,0x7c,0x39,0x8d,0xe5,0x7b,0x64,0x49,0x32,0x93,0x1e,0x94,0x0a,0x98,0xe0,0xca,0xc6,0x67,0x5b,0xdf,0x88,0x0a,0x26
+.byte 0x83,0x77,0xc3,0xd0,0x11,0x66,0x3d,0x25,0x91,0x61,0x80,0xfc,0x9c,0x50,0xfb,0xe8,0x81,0x6f,0xd8,0xfa,0x77,0x78,0x4c,0x2b,0x44,0xd0,0x92,0x52,0xa4,0x50,0x50,0x7e,0xa2,0xb9,0xe7,0x79,0x33,0x95,0xfe,0x29,0x1c,0x1d,0x43,0x9d,0xa7,0x12,0xfe,0xa1,0x45,0xf4,0xd9,0x1c,0x7e,0x5a,0x67,0x99,0x7f,0x22,0x7c,0xa3,0xb1,0x2d,0xb7,0x1d
+.byte 0x6b,0xf6,0xb4,0x94,0xf2,0xd1,0x5c,0x28,0x56,0xe9,0x4f,0x21,0x81,0x96,0x37,0x7c,0x25,0x74,0x0f,0xf9,0xc5,0xf5,0xc6,0xe8,0x8f,0xbb,0xfb,0xe4,0xaf,0x23,0xac,0x4c,0x20,0x35,0x7d,0xb4,0x4a,0xde,0x90,0xec,0x16,0x30,0x95,0x1b,0x79,0xf6,0x77,0xfe,0x80,0x10,0xba,0xd2,0x49,0xda,0xca,0x9e,0x6b,0x63,0x2f,0x24,0x38,0xf9,0xee,0x20
+.byte 0x38,0x5c,0xeb,0xf5,0xbc,0x07,0x7a,0xeb,0xde,0xc4,0x97,0xcf,0x48,0x9b,0x80,0x40,0xfa,0x81,0xf5,0x24,0xa7,0xf3,0xf7,0x16,0xe9,0xba,0xae,0x9f,0xde,0xa1,0x00,0x34,0x74,0x36,0x9f,0x47,0xce,0xcf,0x35,0xdb,0x30,0x7e,0x72,0x81,0xc5,0xe1,0x59,0x07,0x3e,0xc7,0x5b,0x7b,0xd3,0xc6,0xeb,0x4e,0x71,0x9c,0xeb,0x41,0x37,0xd9,0x9e,0x34
+.byte 0x0b,0xc1,0x9c,0xf7,0xfd,0x56,0xb0,0xd6,0xa6,0xe4,0x1d,0xdf,0x43,0xc6,0xf3,0x26,0x0f,0x01,0x07,0x29,0x57,0x9c,0x8f,0xe1,0x31,0xc9,0xa6,0x98,0x0f,0x0e,0x27,0xfd,0xa0,0x59,0xdf,0x92,0x7b,0x0a,0x4c,0x42,0x4b,0x03,0x98,0x2a,0xea,0xcb,0xd8,0x0f,0x6d,0x19,0x0b,0x22,0x69,0x8b,0xaa,0x3b,0xc8,0x41,0x66,0x81,0xc3,0xaa,0x64,0x6d
+.byte 0x44,0xdd,0xb9,0xe2,0xc4,0x47,0x6d,0xdf,0x61,0xe0,0xf3,0x26,0x40,0x23,0x2f,0xf9,0x2a,0xb3,0xfa,0xe2,0xe8,0x36,0xc0,0xd9,0x89,0xb0,0x05,0x47,0x36,0x20,0x3b,0x03,0x0c,0xd1,0x46,0x9b,0xc9,0x65,0xfa,0x14,0xba,0x68,0x49,0xfc,0x2a,0xb9,0x04,0x47,0xbb,0x64,0xe1,0x7f,0x5a,0xd3,0x70,0x19,0x0f,0x14,0x09,0xc0,0xbe,0xc3,0x9b,0x2f
+.byte 0xd1,0x05,0x90,0x56,0x09,0x47,0xb3,0xc5,0x08,0x6f,0x89,0x59,0x8c,0xf3,0xd4,0x1c,0xaf,0x68,0x00,0x32,0x58,0xe2,0x66,0x55,0xe2,0xc3,0x46,0x73,0xfd,0x4b,0x63,0xc5,0xdd,0x48,0xa8,0x14,0xe9,0x07,0x94,0x8f,0x51,0x6e,0x2d,0x7c,0x62,0x97,0x73,0xa5,0x42,0x7d,0xad,0x43,0xcb,0x65,0x56,0xf0,0x23,0x28,0x72,0xdb,0x1f,0xcf,0x34,0x9a
+.byte 0x62,0x06,0x8d,0xc9,0x86,0x40,0x6d,0xee,0x58,0x72,0x02,0xbb,0xce,0x33,0x6a,0xe4,0xcb,0x46,0x25,0xda,0x2f,0x8d,0xc9,0x8e,0xfe,0xcf,0xbb,0xfc,0xb0,0xe8,0xec,0xf2,0xf9,0xff,0x5d,0x70,0x9e,0x2e,0x22,0x0e,0x9a,0x4d,0xb8,0x26,0x7a,0x48,0x3f,0xba,0x5c,0xcd,0x10,0xf4,0x6d,0x89,0x3d,0x5d,0x87,0xd4,0x69,0xb8,0x4a,0x20,0xc6,0xf8
+.byte 0x03,0x6c,0x60,0x1e,0x9c,0xc6,0xe3,0x39,0x9b,0xa1,0x16,0x64,0xed,0xc6,0xd7,0x54,0xfd,0x8d,0xa0,0x2f,0xcf,0xc6,0xde,0x43,0xe4,0xc5,0xb7,0xd6,0x00,0xaf,0x95,0x7a,0xc6,0xde,0x26,0x59,0x39,0xb0,0x12,0x6b,0xe1,0x3c,0xa9,0x09,0xb6,0x15,0xb0,0x62,0xad,0xa9,0x11,0x4f,0x86,0xde,0xc6,0xe8,0x32,0x46,0x78,0xeb,0x60,0x81,0x6b,0x8f
+.byte 0xac,0x80,0xbf,0xa4,0xc4,0xb7,0x5f,0x3b,0x2f,0xf8,0xe4,0x05,0xcf,0xbf,0xa3,0x14,0x6f,0x16,0xbc,0x6c,0x4e,0x31,0xd7,0x79,0x09,0xcf,0x9c,0x58,0xa3,0x0b,0x1a,0x31,0x4b,0xda,0xcb,0x11,0x35,0xb1,0xf5,0xbb,0xfb,0x00,0x46,0x6d,0x70,0x5e,0x4a,0x85,0x19,0xdf,0xb5,0xd0,0x03,0x2e,0x5d,0x01,0x95,0x4e,0x5a,0x59,0x99,0x24,0xac,0x3f
+.byte 0x2d,0x64,0xaf,0xef,0x40,0x16,0x2a,0xcc,0x6a,0x6c,0x0f,0xe3,0x45,0x15,0x74,0x3d,0xea,0xdb,0xa7,0x3f,0xd2,0x50,0x4d,0xc7,0xc6,0x19,0x36,0x84,0xf4,0xbd,0x09,0xff,0xe7,0xf3,0xc0,0xa5,0x34,0x49,0x8a,0xfe,0x83,0xcd,0xe4,0x80,0x7d,0xe3,0xff,0xc9,0x8a,0xb9,0xd6,0x34,0x01,0xd1,0x47,0x16,0x5e,0x7c,0x16,0xf5,0x7c,0xf8,0xb5,0x53
+.byte 0x26,0x84,0x89,0x73,0xf3,0x7f,0x9c,0xb0,0x2f,0x07,0x9e,0xf2,0x12,0xdf,0xba,0xc0,0x15,0xd0,0x3a,0x59,0x9d,0xde,0x67,0x5e,0x1c,0x2b,0x4b,0x84,0xb8,0x89,0xfb,0x62,0x90,0xe9,0x89,0xd9,0xdb,0xb7,0x21,0x4a,0x9f,0xbd,0xc0,0x02,0x01,0xda,0xb3,0x4c,0x9d,0xfb,0x46,0xa1,0xd0,0x3c,0xf5,0x27,0x6f,0x70,0xb5,0xa9,0x74,0xdc,0xa0,0x76
+.byte 0xb7,0x3a,0x53,0x18,0xdd,0x80,0x5e,0x43,0xb5,0x35,0xe4,0x0e,0x26,0x27,0x0a,0xab,0xe8,0x4d,0x2e,0x89,0x20,0xc3,0xff,0xe4,0x7f,0x03,0x2c,0x5f,0x25,0xc7,0x70,0x53,0x27,0x4c,0xc8,0xb9,0xb1,0x81,0x10,0x7a,0xa2,0x65,0xe4,0x0b,0x65,0x8e,0x3d,0x2f,0x96,0xa0,0xa5,0x7b,0x4f,0x09,0xe9,0x9d,0x10,0x06,0xf7,0x18,0xad,0x2d,0x7f,0xb8
+.byte 0x8f,0x08,0xa7,0x2c,0xda,0x82,0xbe,0x5c,0xd6,0x1d,0xb6,0xe2,0x9b,0xa2,0xfc,0x18,0x8c,0x8d,0xf7,0x81,0xf4,0xc6,0x1e,0xcb,0xe5,0x73,0xa6,0x74,0x06,0x20,0xf3,0xa9,0xcb,0x80,0x01,0x55,0x7e,0xc0,0x6a,0x1f,0x5a,0x5b,0xb1,0x56,0x5d,0xd8,0x2a,0xd5,0xf5,0x57,0xe8,0x48,0x6c,0xfb,0x9e,0x93,0xa7,0x0e,0x13,0x2b,0x68,0xc5,0x6b,0x17
+.byte 0x43,0xb0,0x58,0x04,0x65,0x3d,0x46,0x57,0xa7,0x3d,0x99,0xb8,0xa1,0x48,0x17,0x44,0x67,0x2a,0x0d,0x44,0x87,0x9f,0x63,0xd7,0x92,0x56,0x7b,0xab,0xd3,0x6a,0xbd,0x4f,0xc0,0xc3,0xd2,0xee,0xd1,0x3d,0xd1,0x18,0x2e,0x6a,0xf5,0x3b,0x67,0xa0,0x0a,0xf3,0x11,0x49,0xc5,0x4b,0xef,0xcf,0x00,0xfd,0x22,0x8f,0xa0,0x9c,0x99,0x32,0x2f,0x58
+.byte 0xf9,0x97,0x98,0x13,0x4a,0x88,0x50,0xcc,0x58,0x1e,0x27,0x02,0x34,0x7d,0xec,0xf6,0x88,0x3a,0x74,0xb5,0x34,0x6d,0x6f,0x52,0x2d,0x20,0x02,0x70,0x22,0x27,0xdf,0x7a,0xff,0x30,0x36,0x66,0x1a,0xa0,0x51,0xc3,0x75,0x9a,0x06,0xe5,0x3f,0x6c,0x74,0x0d,0x15,0xa2,0xb6,0xe5,0xcd,0x55,0x4d,0xea,0x65,0x8f,0xbb,0xb2,0xd4,0x95,0x73,0xa4
+.byte 0xcd,0xb9,0xc8,0x82,0x60,0x49,0xe9,0x36,0xc9,0xb1,0xe9,0xcb,0x52,0xae,0xa7,0x7a,0x64,0xab,0x75,0x84,0x03,0x4b,0x37,0xf7,0x07,0x75,0xf7,0x1c,0x32,0x19,0xb6,0x8b,0xca,0x7c,0x43,0x15,0xe8,0xec,0x57,0x89,0x1d,0xe2,0xa0,0x80,0xc5,0xb6,0x02,0x29,0xfd,0xda,0xe0,0x14,0x93,0xb4,0xb3,0x44,0x2e,0x17,0x2f,0xed,0x3b,0x38,0x6e,0x8f
+.byte 0xe0,0x3d,0xc6,0x77,0xe9,0xa7,0x76,0xcb,0x98,0x2d,0x08,0x61,0xcf,0x1b,0x25,0x3f,0xfb,0x1d,0x99,0xb1,0x5a,0x3c,0x53,0x96,0x4e,0x09,0x11,0xf6,0x5b,0x09,0x31,0xe1,0xad,0xb0,0xaf,0x7b,0xec,0xf9,0xa8,0x68,0xb7,0x93,0x57,0xf7,0x17,0x77,0x87,0x2b,0xdb,0x00,0x28,0xc6,0x48,0xac,0xff,0xcd,0x26,0x4a,0x8a,0x76,0x9a,0x2a,0x1d,0x37
+.byte 0x4c,0x70,0x4f,0xf6,0x52,0xe3,0x7a,0x78,0x94,0x5b,0x0b,0x50,0xb4,0x48,0x03,0xcd,0x78,0xd0,0x5d,0x89,0x6d,0x76,0xaf,0x9d,0x67,0xc3,0x75,0x6f,0x6a,0x2d,0xe2,0xb7,0x58,0x51,0x10,0x0d,0xef,0xa0,0x1a,0x74,0x28,0x3a,0x97,0x19,0x4f,0x3c,0x8a,0x86,0x3d,0xe4,0x66,0x3d,0x57,0xb4,0x66,0xb3,0x0b,0x4f,0x57,0x57,0x34,0x2e,0xc7,0x0c
+.byte 0x11,0xdf,0x3c,0xb4,0x9f,0xe1,0xd5,0x27,0x41,0x08,0xec,0xca,0x18,0x88,0x48,0x5e,0x88,0x55,0x89,0x71,0xe6,0xa5,0x90,0x7c,0x3b,0xe5,0xf3,0x2a,0xd7,0xf5,0x0b,0x3d,0xbb,0x47,0xad,0xd7,0x78,0x41,0xa8,0xef,0xd4,0x36,0x31,0xd1,0xe4,0x9c,0x87,0x9e,0xb1,0x11,0x0e,0xff,0x8f,0x4d,0x79,0x65,0xc4,0x83,0x75,0x33,0xc9,0x89,0xe2,0xc3
+.byte 0x41,0x68,0x11,0xe7,0xe4,0x58,0xb9,0xf1,0xee,0x06,0x48,0x4d,0xc3,0xc7,0x76,0x60,0x42,0x94,0x8f,0x0d,0xb9,0x53,0x46,0x78,0x06,0x97,0x94,0x36,0xf4,0x3e,0xf3,0xdd,0x5b,0x46,0xe1,0x9d,0x3f,0x9e,0x78,0x00,0x9e,0xe7,0xcb,0x9e,0xc8,0x30,0x87,0x4a,0x52,0x91,0xd5,0xe2,0xa3,0x65,0x98,0xb2,0xc9,0x6c,0xfb,0x4e,0x54,0x5a,0x9f,0x57
+.byte 0x2c,0x4a,0x76,0xe4,0x97,0x88,0xd5,0x6a,0x0e,0x6c,0x7c,0xef,0x78,0x2a,0x7c,0x26,0xa3,0x25,0xf6,0x33,0x82,0x46,0x6d,0x91,0x0d,0xe4,0x83,0xec,0xf1,0x24,0xf8,0x0a,0x34,0xec,0xfc,0x7e,0x47,0xda,0x9a,0x17,0x1b,0x33,0xd0,0xf1,0x70,0xe4,0x0b,0xc7,0x70,0x58,0x1d,0x76,0x20,0x89,0xce,0x4f,0xd1,0xcb,0x3b,0x26,0xd1,0x98,0xd9,0x51
+.byte 0xb1,0xd0,0xaa,0x4a,0xd5,0x10,0xf2,0xae,0xaa,0x14,0xa7,0x72,0x99,0x3d,0xc8,0xbf,0xfb,0xec,0x6a,0x14,0xdd,0x97,0x7b,0x2f,0x16,0x96,0x0f,0x41,0xb8,0x33,0x15,0x1b,0xa2,0x6a,0x7e,0x64,0x0d,0xab,0xe7,0x62,0xf5,0x6c,0x56,0x69,0x09,0x46,0x32,0x24,0x60,0x4e,0x21,0xc7,0x5b,0xee,0x0a,0xe2,0x94,0x7c,0x20,0xe2,0x06,0xa0,0xa2,0x36
+.byte 0xa0,0x7d,0xb5,0x37,0x2a,0xee,0x20,0x25,0x4c,0xba,0x9a,0x06,0x4c,0x07,0x9b,0xea,0x55,0xac,0x2a,0xf7,0xb9,0x5c,0x23,0xac,0x43,0xda,0x9d,0xad,0x76,0xe2,0x5f,0xe0,0x27,0xaf,0x0a,0x5e,0x3d,0x54,0x84,0xfc,0x19,0x75,0x8c,0x62,0x4d,0x37,0x17,0x1a,0x90,0x55,0xb8,0x7e,0xa1,0xad,0x31,0x1a,0xc0,0x91,0x96,0x51,0xa9,0x5f,0xbb,0xb9
+.byte 0x95,0xbf,0xe2,0xd5,0x7e,0x31,0xba,0xc4,0x1e,0x63,0x98,0xd3,0xe2,0x7d,0x87,0xa5,0x46,0xe3,0xae,0xe1,0xe8,0x4e,0x74,0x29,0x0e,0x4b,0x10,0xa8,0x7f,0x3a,0xe5,0x60,0x0f,0x49,0x6a,0xcd,0x3d,0x5a,0x8e,0xf1,0x48,0xd0,0x80,0x7b,0xa3,0x7f,0x06,0x47,0x2b,0x60,0xf2,0x17,0xc3,0xe1,0x26,0x1e,0xb7,0x0f,0x2b,0x7c,0xc7,0xb8,0x3a,0x4f
+.byte 0xad,0x05,0x97,0x88,0x93,0x82,0x8e,0x06,0x77,0x44,0xd1,0x65,0xfd,0x18,0x48,0xd6,0x88,0xcd,0x5c,0xbd,0xe4,0xaa,0xea,0xf1,0xed,0x16,0x5f,0xb3,0x58,0xe2,0x69,0x82,0xbe,0x9e,0xfc,0xcb,0xf6,0x17,0xa9,0x70,0xeb,0x08,0xd7,0x06,0x86,0xf6,0x5a,0x43,0x68,0x7b,0xcf,0xa3,0xfa,0x26,0x5e,0xe5,0x42,0xd3,0x5a,0xc8,0x1c,0x3b,0x8d,0x2d
+.byte 0xf1,0x45,0xb0,0x97,0x90,0x0b,0xe7,0x2d,0xab,0xd7,0xd8,0x8a,0x16,0xf9,0x5f,0xa6,0xcf,0xc5,0x60,0x2c,0x34,0x5a,0x2e,0x2b,0xb9,0xb4,0x9c,0xa7,0x09,0x77,0xd2,0x3f,0x8c,0xf3,0xf6,0xf7,0xe0,0x27,0x79,0xc3,0x4e,0x61,0x7d,0x09,0x50,0x05,0x01,0x35,0x1b,0x33,0x54,0x6f,0x90,0x9a,0x19,0xcd,0x86,0x45,0x23,0xcd,0x6f,0x1b,0x62,0xc5
+.byte 0xce,0x4e,0x8e,0xff,0xe7,0x12,0x32,0x85,0x9a,0xc4,0x11,0x83,0xcf,0x78,0xd7,0x41,0x99,0x64,0x20,0xa6,0x69,0xdd,0xe3,0x53,0x98,0x6b,0xc7,0x98,0x51,0xc5,0xf8,0x3e,0xa3,0x5f,0x0d,0x78,0x2f,0xa7,0x05,0xff,0xe5,0x3a,0x0f,0x7c,0x09,0x58,0x3f,0xaa,0x0d,0x9a,0x9d,0x8d,0xe7,0xbf,0x6b,0x7d,0xfe,0x3a,0x4f,0x5c,0x50,0xb2,0xe7,0xc5
+.byte 0xa5,0x13,0xde,0xc8,0xe8,0x59,0xac,0xb0,0xdd,0xc0,0x81,0xa7,0x0b,0x78,0x32,0x23,0x76,0x85,0x11,0xef,0xe3,0x88,0x6f,0x7f,0xa9,0x09,0x7b,0x0c,0x6f,0x34,0xb2,0x67,0x5e,0xd6,0x11,0xad,0xd7,0x3b,0xf2,0xbb,0x66,0x5b,0xde,0x22,0xfc,0x55,0x26,0xa1,0x89,0x80,0x2e,0xb8,0xf3,0x3c,0xf8,0x1e,0xba,0x99,0x1c,0x24,0x33,0xb4,0xe6,0x17
+.byte 0x2b,0x9c,0x80,0xe5,0x9b,0x58,0x54,0x70,0xcd,0x15,0x81,0xcd,0x51,0x48,0x75,0x24,0x27,0xf5,0x30,0x79,0xc1,0x16,0xff,0x89,0x70,0x12,0x74,0x07,0x9d,0x39,0xf2,0x9c,0xc6,0x89,0x8d,0x94,0x41,0x01,0x04,0xf5,0x16,0x99,0xf3,0xf0,0xd1,0xf5,0x6d,0xd3,0x11,0x19,0x29,0x36,0xfb,0x41,0xf9,0x32,0xb9,0x0f,0x13,0xaf,0xac,0xfb,0x30,0x75
+.byte 0x62,0x8c,0x04,0x5b,0xf1,0xce,0x52,0x9b,0xbe,0x8c,0xf9,0x86,0x5d,0x7d,0xc1,0x8e,0x41,0x76,0x42,0x63,0xd7,0x74,0x8e,0x2c,0x46,0xa1,0x0a,0x51,0xb5,0xec,0xe9,0x91,0x56,0xbc,0xdc,0x32,0xfc,0x10,0xb5,0xca,0x5b,0x4b,0x72,0x99,0x07,0xff,0x01,0x11,0x2c,0xa4,0x60,0xf5,0x6b,0xd4,0xa8,0x96,0x21,0xee,0xbe,0x14,0x8f,0x69,0x99,0xdc
+.byte 0x43,0x7f,0x13,0x3d,0x17,0x1e,0xa3,0x1b,0x21,0x23,0x26,0x7e,0xff,0x80,0x6b,0x66,0x3e,0xb2,0x48,0x1a,0x77,0x3c,0x50,0xe2,0xca,0x4d,0xc6,0xdb,0xfd,0xd1,0x23,0xcc,0xcb,0x01,0x25,0xc0,0x62,0x8d,0xe5,0x9c,0xb7,0x13,0x97,0xf5,0x49,0x01,0x19,0x45,0x45,0x83,0x17,0xff,0x8e,0x94,0x8c,0xb0,0xc0,0xaf,0x46,0x62,0x0e,0x62,0xb7,0x8c
+.byte 0xd5,0xcf,0xb9,0x82,0x6e,0x8a,0xb9,0x22,0xbc,0x30,0xf9,0x65,0xc2,0x7f,0xce,0x6b,0x4d,0xad,0x87,0xcb,0x23,0xab,0x57,0x36,0x6a,0xb7,0x8c,0x63,0x17,0x60,0x13,0xa1,0x1f,0x3d,0xa4,0xd4,0xab,0x5d,0x97,0xc7,0x18,0xaf,0xf8,0xae,0x13,0x64,0x2a,0x19,0x34,0xe2,0x28,0x28,0x4f,0x32,0x2a,0xd8,0x43,0x79,0xaf,0x1e,0x56,0xfc,0x97,0x51
+.byte 0x67,0x8c,0x63,0x80,0x32,0x63,0x71,0x5c,0x78,0x00,0xeb,0xfd,0xa2,0x96,0x58,0x21,0x36,0x13,0x02,0xe5,0xa4,0xb7,0xcd,0x5a,0x30,0xa0,0x5b,0x7b,0x23,0xa4,0xcc,0x54,0x64,0x6f,0x6d,0x9b,0xaf,0xea,0x49,0x69,0x9e,0x2f,0x51,0x5c,0xe7,0xa3,0xa3,0xb8,0xac,0xed,0x47,0x23,0x7a,0x37,0x38,0xe3,0x15,0x98,0x6f,0x50,0x6c,0x8d,0xa7,0xe6
+.byte 0xa8,0x39,0xcc,0x63,0x08,0xeb,0x8f,0x8c,0xfd,0x83,0xaa,0x34,0x75,0x19,0xc0,0xf4,0xd6,0x25,0x18,0x94,0x9d,0xa1,0x7e,0xc8,0x6b,0x19,0x76,0xc0,0x8d,0xaf,0x51,0xe5,0x7c,0x8a,0x98,0x17,0x80,0x90,0xc0,0xb6,0xed,0x5c,0x8f,0x33,0x56,0xba,0xce,0xbe,0x83,0x87,0x5d,0x51,0x2e,0x64,0x84,0xa6,0x9d,0x49,0x27,0x5b,0x92,0xe0,0xe7,0xac
+.byte 0x37,0x3d,0x22,0x5e,0x25,0xe7,0xca,0x2f,0x5d,0x2f,0xa0,0xd5,0xcb,0xe9,0xac,0x84,0x5b,0x19,0x72,0x1c,0x2c,0x0a,0xd1,0xb7,0x73,0x24,0x8a,0x0f,0xe0,0x07,0xd8,0x49,0x4d,0x23,0x1b,0xac,0xb8,0xd1,0x42,0xd4,0xdf,0xf8,0x4d,0x85,0xa2,0x37,0x30,0x46,0x38,0x88,0x55,0x1d,0xea,0x37,0x54,0x8c,0x43,0xb0,0xed,0x01,0x53,0x75,0xe6,0xf7
+.byte 0x9b,0xe6,0x10,0x91,0x6e,0x80,0x11,0xf9,0x96,0x29,0x4f,0x08,0x77,0x2b,0x7e,0xdb,0x5b,0x14,0xbd,0x77,0x37,0xe8,0x36,0x07,0x4a,0xe4,0xd8,0xa2,0x4e,0x38,0xea,0xeb,0xc2,0xd6,0x43,0x59,0x20,0x0c,0x12,0x31,0x6c,0x27,0xc5,0x7b,0xfc,0xfc,0x54,0x94,0x1d,0x5f,0x82,0x73,0xd7,0x1f,0x43,0x3a,0x73,0xc4,0xf3,0xb3,0xbb,0x53,0xfe,0x22
+.byte 0xc0,0xa4,0x7e,0x2b,0x84,0x1b,0xef,0x6d,0x83,0x9d,0xb3,0x8b,0x2a,0x6c,0xea,0x1e,0xfa,0x77,0x01,0x35,0xd2,0x5b,0xc4,0xd3,0xe7,0x1e,0xca,0x73,0x8b,0xb9,0x1f,0xfb,0x67,0xf2,0xdd,0x03,0xe6,0xca,0xfe,0x3b,0x61,0xd7,0xb5,0x96,0xe0,0x85,0xc2,0x23,0xa7,0xea,0x38,0xbf,0x6e,0x29,0x9e,0x8e,0x18,0xd4,0xbf,0x16,0x73,0xf9,0x18,0xef
+.byte 0xc9,0xaf,0x6c,0xe2,0xdc,0xa4,0x58,0x9c,0xf5,0x6d,0x4a,0xc8,0xb4,0x8f,0x16,0x02,0xb7,0x65,0xd3,0x32,0x3b,0x83,0xfe,0xf3,0xc7,0xba,0x68,0xf4,0x95,0xa4,0xf6,0x33,0x57,0x43,0xbe,0xae,0x83,0xa9,0xe4,0x0d,0x0b,0x23,0xaa,0xbc,0x15,0x53,0x18,0x4d,0xb4,0x35,0xe3,0x8e,0x86,0xfe,0xe4,0x98,0x5d,0x63,0x23,0xce,0x44,0xea,0x4d,0x64
+.byte 0x86,0xf8,0x06,0x8f,0xc0,0x73,0xa6,0x6d,0x04,0x53,0x47,0x95,0x0f,0x6d,0x6c,0x01,0x1c,0x3f,0x7b,0x83,0xe4,0xc2,0x40,0xb8,0x97,0x26,0x9e,0x35,0xb0,0x76,0xee,0xe4,0xc7,0xd8,0xaa,0x22,0x83,0x96,0xe1,0x34,0x7b,0x78,0x31,0xee,0xd3,0x9a,0x50,0xd4,0x05,0xfd,0xd6,0x15,0xca,0x83,0x2f,0x49,0xfd,0x00,0x23,0x82,0x39,0xac,0x46,0x7a
+.byte 0xe4,0xb5,0xcc,0xee,0xbb,0xaa,0x98,0x82,0xb5,0x27,0x45,0xd5,0x96,0x6e,0x89,0x01,0x1e,0x30,0xe4,0x1c,0x3a,0x65,0xcc,0x9f,0xda,0x38,0xf0,0x4c,0x68,0xfa,0xe5,0xf2,0xe2,0xce,0x34,0xc2,0x15,0xfd,0x21,0xf6,0xe2,0x33,0xbd,0xef,0xfd,0x49,0x15,0xdc,0x38,0x3b,0x24,0xba,0x3a,0x80,0x35,0x60,0xbe,0x50,0x17,0x38,0x3e,0xe2,0x96,0x84
+.byte 0x01,0x41,0x6c,0xb2,0x0b,0xc6,0xff,0xce,0xb3,0x37,0xa2,0x46,0x27,0x33,0x8e,0x04,0x44,0x8a,0x7c,0x64,0x0e,0xbc,0xed,0x74,0x4f,0x40,0x58,0xf4,0x8c,0xf8,0xd9,0x92,0xa9,0x0b,0x18,0x7c,0x93,0x95,0xca,0xa7,0x3e,0x1d,0xad,0x68,0x80,0xd9,0xdb,0x81,0x78,0x50,0x37,0x49,0xbc,0x64,0xc2,0x52,0x5c,0x70,0x7e,0x0a,0x26,0x7e,0xc6,0xbf
+.byte 0xd2,0x7f,0x05,0x55,0x7a,0x5a,0x3e,0x9e,0xe3,0x8b,0xf5,0x95,0x2b,0xd8,0xb4,0xb8,0xc6,0x5d,0x91,0xb8,0xc7,0x7c,0xe1,0x75,0xf2,0x43,0x6b,0x73,0xb7,0xb1,0x10,0xf2,0xa7,0x1e,0xab,0xaf,0xc9,0xc0,0x3b,0xab,0xbe,0xf7,0x4a,0x43,0x9c,0xca,0x3d,0x00,0x5b,0x02,0xf8,0xa2,0x4f,0x57,0x81,0xb0,0xde,0x1e,0xd1,0x60,0xbe,0x6c,0x0d,0xe6
+.byte 0xcd,0x51,0xb6,0xc7,0x00,0x52,0x37,0x4f,0xfc,0xee,0xe2,0x43,0x5c,0x61,0x76,0xed,0x80,0x72,0x38,0x26,0x94,0xfe,0x28,0x06,0xfb,0x62,0xa6,0x21,0x9b,0x53,0x60,0x1b,0xf0,0x56,0xae,0xba,0x6b,0x52,0x27,0x2a,0xd5,0xed,0x11,0x92,0xa2,0xe2,0xab,0xdd,0x05,0x38,0x38,0xae,0xeb,0x72,0xcb,0x6c,0xa5,0x2a,0x73,0xc5,0xfc,0xb0,0x36,0x83
+.byte 0xd6,0xe6,0xda,0x6b,0x38,0x72,0x5e,0x8d,0xaf,0x11,0x5f,0x5b,0x89,0x58,0x21,0x36,0xf6,0x7d,0x42,0x48,0xdc,0xce,0xaa,0x94,0xf0,0xc3,0xc5,0x2c,0x08,0x2a,0x36,0x35,0x25,0x95,0xc4,0x11,0x09,0xea,0x7a,0xbc,0x2e,0xc6,0x0a,0x5b,0x4f,0x86,0xeb,0xc2,0x38,0x71,0x48,0x8c,0x63,0x79,0x3b,0xe4,0xba,0x14,0x44,0x31,0x28,0x4f,0x9d,0xb4
+.byte 0x26,0xa6,0x3b,0xea,0x3f,0xcb,0x30,0x6c,0x02,0x13,0xdb,0x4c,0x9c,0x76,0xc8,0xd8,0x01,0x52,0x3d,0x2f,0x51,0x70,0x15,0x91,0xec,0x8f,0x80,0xed,0x88,0xb7,0xfa,0x91,0x2c,0x10,0xcd,0x3b,0x92,0x85,0xe7,0xe8,0x11,0xfa,0x50,0x15,0xe2,0xdf,0xf7,0xbe,0xa4,0x2d,0x13,0x75,0xa6,0x00,0x25,0x8d,0xe1,0xb6,0x9b,0xbb,0x64,0xfb,0x5c,0xde
+.byte 0x97,0xcc,0x00,0x51,0xd6,0xac,0x67,0xc3,0x91,0x1e,0x56,0x36,0x2b,0x43,0xed,0x8c,0x67,0x7b,0xf6,0x54,0x6f,0x91,0x44,0x28,0x93,0x60,0xac,0xca,0xb9,0x91,0x7e,0xeb,0x49,0xd8,0xfc,0x12,0x6c,0x40,0x9d,0x0a,0x4d,0xb4,0xab,0xe6,0xad,0x5b,0x8e,0x2d,0x3e,0x53,0xa1,0x88,0xf7,0x41,0x71,0xa7,0xff,0x05,0x46,0x04,0x34,0x1f,0x12,0x89
+.byte 0x92,0xc1,0xf9,0x26,0x16,0x23,0xb6,0x59,0x82,0xdc,0xa7,0xb8,0xa4,0x8a,0x0f,0x1d,0x7d,0x8f,0x44,0xe8,0x4f,0x70,0xbb,0xdb,0x8d,0xe6,0x7e,0x9d,0xd9,0x44,0x10,0x41,0x6c,0x3f,0xb7,0xe8,0x6f,0x39,0x93,0xe1,0xde,0xb8,0x6c,0xba,0x99,0x95,0xb7,0xc8,0xb2,0x2a,0xcd,0x81,0x53,0xc3,0xb5,0x2a,0x8a,0xd6,0x62,0x1e,0x74,0x4d,0xde,0xfa
+.byte 0xff,0x7b,0xed,0x11,0x1e,0x44,0x3e,0x93,0x1c,0xae,0x7c,0x5c,0xed,0x52,0x75,0x5e,0x0a,0xf3,0x95,0xce,0x47,0x86,0x1b,0x7f,0x17,0x09,0x12,0xcc,0x08,0xca,0x16,0x11,0xf1,0xa1,0x39,0x78,0x89,0x5c,0x11,0x25,0xc7,0x39,0x5f,0x97,0x74,0xbc,0xa9,0x2a,0x25,0x5d,0xdd,0x93,0x0d,0x8c,0x74,0x07,0x1e,0xd9,0x9f,0xc1,0x38,0x9c,0xbf,0xe0
+.byte 0x42,0xad,0xb2,0xe7,0xb1,0x84,0x82,0xb4,0x56,0xbe,0x3c,0x42,0xb0,0xce,0x2c,0x94,0xb7,0xe6,0x78,0xc8,0x04,0x06,0x58,0x15,0x3e,0xdc,0xf6,0x9a,0x58,0xc3,0xe3,0x85,0x16,0xc8,0x84,0xba,0x8f,0xbc,0x94,0xa7,0x44,0x04,0x29,0xc4,0xd8,0xec,0x63,0xc4,0x47,0x58,0x22,0x02,0x08,0x20,0x44,0x39,0x52,0xa5,0x33,0xfe,0x1c,0x30,0x27,0x92
+.byte 0xbf,0x42,0x44,0x4c,0x3f,0x3d,0x00,0x7b,0x21,0xef,0xbb,0x25,0x75,0x4c,0xb2,0xe7,0x66,0xc9,0xc1,0xfb,0x1e,0x13,0x04,0xd0,0xcb,0x69,0x51,0x9d,0x9a,0xb0,0xb0,0xec,0xb0,0x12,0x24,0x84,0x57,0x9f,0xef,0xb4,0x19,0x50,0xa6,0xf5,0x03,0xa3,0x93,0x0f,0x77,0xaf,0xe0,0x4c,0xa5,0xd3,0xb0,0xd8,0x5e,0xc3,0x78,0x94,0xd5,0x6e,0x48,0x58
+.byte 0x7a,0x93,0xb1,0x62,0x60,0xea,0xa1,0xba,0x7a,0x86,0x6e,0x87,0xe9,0x97,0xe0,0x7c,0x1e,0xb6,0x63,0x94,0x76,0x5f,0x9c,0x95,0x65,0x00,0xd4,0x14,0x0e,0x4c,0x87,0xe7,0xcd,0x9e,0xb1,0xe2,0x13,0x1b,0xb1,0x8a,0x83,0xaa,0xaa,0x34,0xcd,0xb2,0xf6,0x7f,0x12,0xb0,0x79,0xff,0x1e,0x04,0xc8,0x9a,0xfc,0x41,0x88,0xbb,0x28,0x42,0xeb,0x45
+.byte 0x47,0x8b,0xcb,0x57,0x03,0xcd,0xe5,0x9a,0x84,0xea,0x0a,0xb5,0x0c,0xb8,0x30,0x33,0xd6,0xde,0x66,0xa8,0x57,0xf9,0x76,0x4f,0x0f,0x8f,0x53,0x56,0x57,0x91,0xd4,0x55,0xf5,0x78,0xde,0xa6,0xa2,0x59,0xc8,0xb0,0xf2,0xb9,0xfa,0x6d,0x4a,0x70,0x86,0x3d,0x24,0x1b,0xc6,0xb8,0x06,0xf5,0xea,0x09,0x63,0x9b,0x1e,0x61,0x18,0x85,0xba,0x08
+.byte 0x20,0xaa,0x33,0x66,0xcf,0xa7,0xff,0xf5,0x30,0xfe,0xf8,0x39,0xd3,0x88,0x9a,0x5b,0x3f,0x55,0xa6,0x00,0x4c,0x57,0x0d,0xd1,0xa4,0x0c,0xe7,0x8a,0x95,0xd8,0x64,0xc7,0x93,0x51,0x84,0xa6,0x41,0x2c,0xfc,0xb0,0xfb,0x99,0x9a,0xcd,0x2c,0x62,0x3a,0xca,0x43,0x15,0xf2,0x5a,0x22,0x25,0xa4,0x91,0xa3,0x7c,0x42,0x69,0xc1,0x67,0xe3,0xf5
+.byte 0xd4,0x92,0x54,0xbd,0xb3,0x57,0xe5,0x19,0xca,0x1b,0x9c,0x19,0x79,0x9d,0xbf,0x89,0xfc,0xaa,0x72,0xcd,0xcb,0xc5,0xbc,0xdd,0x0c,0x7c,0x31,0x42,0xb0,0xc2,0x76,0xe5,0x8b,0x9b,0x7c,0x92,0x13,0x20,0x5c,0xdc,0x94,0xfc,0xa1,0x90,0x34,0x27,0x88,0x9f,0xe5,0x97,0x5f,0xc3,0xa3,0x83,0xca,0x8b,0xf8,0xac,0x36,0x33,0x47,0xc6,0x20,0x2f
+.byte 0x04,0x2d,0x13,0xc1,0x3c,0x07,0x6e,0xf0,0xe2,0x3d,0x32,0x5c,0x50,0x41,0xf2,0x92,0x3f,0x25,0x2c,0x80,0x34,0xa5,0x90,0x2b,0x97,0x6e,0xd1,0xa2,0xa6,0xf4,0x4a,0xe0,0x20,0xd9,0xb9,0x2b,0x66,0xe5,0x06,0x73,0x97,0xfe,0x80,0x70,0x28,0xf9,0xb6,0xae,0x93,0x27,0x7a,0x65,0xff,0x23,0xc1,0x78,0x18,0x92,0xc9,0x0b,0x05,0x82,0x93,0xbc
+.byte 0x73,0x3f,0x98,0xe9,0xa0,0x6d,0x20,0x8d,0x13,0xb1,0xf0,0x7e,0xe4,0x07,0x21,0x7d,0x6d,0xea,0x03,0x59,0xf8,0x29,0xc0,0xc8,0x7d,0xce,0xd1,0xf8,0x67,0x82,0x7f,0x84,0xe8,0x77,0xa9,0x9c,0xa2,0x34,0xdf,0xa9,0xac,0xec,0x6d,0x54,0xe5,0x0f,0xcb,0xdb,0x86,0xbc,0x01,0x44,0x91,0x3b,0xc8,0x85,0x4e,0x1d,0xe4,0x74,0x19,0xc6,0x39,0x2e
+.byte 0xdf,0xf2,0x8f,0x3a,0x7f,0xe3,0x1e,0x55,0x45,0xcb,0x7e,0xde,0xcd,0xa6,0x1c,0xef,0x20,0xf7,0x07,0x31,0x94,0x9a,0x3d,0x04,0xd7,0x5e,0x65,0x20,0x6a,0x4d,0x31,0x1e,0x6f,0x89,0x40,0x45,0x1f,0x37,0xc1,0x7e,0x07,0xd5,0xa6,0x38,0x4a,0xf1,0x39,0xae,0x72,0x26,0x60,0xb0,0xb5,0xc7,0xd3,0x9a,0xaf,0x57,0x12,0xe9,0x34,0x28,0x8b,0xaf
+.byte 0xd8,0x62,0x24,0x58,0xe2,0xcd,0xa2,0x9e,0x74,0x23,0x2d,0x52,0xc7,0x09,0xe5,0xb5,0xf5,0xc1,0xd3,0xa3,0x19,0xe5,0x1d,0x8d,0x0c,0xdf,0x13,0x8d,0xa4,0xa7,0xc1,0x41,0xea,0x9e,0x6d,0x61,0xd4,0xa4,0x74,0xe5,0xf8,0x5f,0x9e,0xfd,0x6d,0xf6,0x6e,0x87,0x0f,0xb5,0xa3,0x82,0xac,0x64,0xb4,0xda,0x07,0x49,0x51,0xc2,0xfd,0xcb,0x55,0xa3
+.byte 0x59,0x34,0xdf,0xa1,0xd6,0x90,0x62,0x43,0x1a,0xf9,0xae,0x85,0x5c,0x11,0x40,0xb2,0xbe,0xa5,0x03,0x04,0x4f,0xec,0x2c,0x58,0x2d,0xe9,0xda,0xcf,0xaa,0x2f,0xcf,0x60,0xc3,0x2c,0x6c,0x81,0x4d,0xf2,0x71,0x41,0xe4,0xae,0x4c,0xfa,0x8e,0x05,0x10,0xff,0x40,0xfa,0xea,0x96,0x78,0x6e,0xfc,0x35,0x35,0xec,0x84,0xf6,0x1d,0x24,0x60,0xcd
+.byte 0x96,0x21,0x21,0xa7,0x32,0x90,0x3d,0x51,0x72,0x13,0xa4,0x9b,0x7e,0x94,0x3a,0x9d,0x97,0xf6,0x68,0xd8,0x08,0x42,0x54,0x7a,0xbb,0x9a,0x95,0x83,0xac,0xb8,0xb4,0x68,0xe3,0x31,0xdb,0xe2,0x32,0x8b,0x7d,0x57,0x62,0x1d,0x61,0x81,0xa1,0x36,0x7a,0x25,0x00,0x72,0x24,0x4c,0xa7,0x96,0x3b,0xa5,0x82,0xba,0x8e,0x89,0x1e,0x1b,0x8e,0xf4
+.byte 0xab,0x91,0x85,0x7a,0x32,0x4a,0x47,0x9f,0xce,0xd2,0x51,0x77,0xcd,0xc9,0x02,0x54,0xf2,0x7b,0xcb,0xb8,0x83,0xe0,0xe0,0x1b,0x4a,0xa2,0xe0,0xd9,0x15,0xb6,0x02,0x19,0x75,0xa6,0xba,0xa6,0x98,0xd9,0x61,0x74,0xc6,0x48,0xa5,0x59,0x3d,0xc8,0x47,0xc9,0xe8,0x6b,0xbb,0x6d,0xcf,0x0e,0x8d,0x6b,0x58,0x8b,0x7d,0x4e,0x0b,0x3d,0x67,0xc4
+.byte 0x8e,0x78,0x59,0x40,0x88,0x82,0x33,0x27,0x2c,0xfe,0x2a,0x6c,0xe4,0x80,0xee,0x5a,0xd4,0x5f,0xc8,0xf7,0x82,0x02,0x67,0xfd,0xcb,0x55,0x3e,0xd8,0x41,0xb3,0xce,0x93,0xfe,0xe7,0x56,0xf5,0x63,0xba,0xfa,0x2e,0x79,0xfc,0x11,0x5d,0xb0,0xc6,0x32,0x54,0xed,0x71,0x9b,0x15,0xce,0x62,0x09,0xd4,0x28,0x7f,0x7b,0xa1,0x50,0x5b,0x46,0x24
+.byte 0x0e,0x40,0xa2,0xe2,0x7d,0x93,0xa6,0x2b,0x0b,0x9b,0x40,0x25,0xc9,0xca,0x7a,0x01,0x8b,0x7d,0x68,0xeb,0xd7,0x84,0xc1,0x9d,0xf9,0xfb,0xd0,0x1a,0xec,0xef,0x6b,0x4c,0x78,0x31,0x62,0x8e,0x9d,0xdc,0x78,0x8f,0xcb,0xf8,0xf9,0x41,0xdc,0x9f,0x6d,0x0a,0x27,0x67,0xce,0xbd,0xeb,0x87,0xb3,0x26,0xf3,0x51,0xe1,0xd6,0xd1,0x57,0x46,0xfe
+.byte 0x21,0xb9,0x88,0x7c,0xdd,0xa2,0x49,0x71,0x24,0xfb,0xc4,0xc0,0x6a,0x6b,0x05,0x7f,0x80,0xb0,0x09,0x3b,0x9e,0x6c,0x59,0x31,0x3e,0xac,0x7a,0x2e,0x5c,0x04,0x03,0xa3,0x6e,0xf5,0x66,0xee,0xc2,0x9b,0x65,0x88,0x06,0xbf,0xf5,0xe3,0x23,0x73,0x38,0x88,0x99,0xf1,0x64,0x68,0xdf,0x7d,0x04,0x06,0x72,0x92,0x0b,0x62,0x5d,0x12,0x1e,0x4e
+.byte 0xff,0x60,0x35,0xe3,0x0f,0xd9,0x8c,0xac,0x38,0x5b,0x91,0xc1,0x51,0xbb,0xa5,0x19,0x7d,0xfb,0x79,0xfa,0x42,0x3b,0xaa,0xf8,0xd3,0x0f,0xc3,0xf2,0xb2,0x68,0x91,0xae,0x28,0x83,0x4f,0x75,0xbd,0x20,0x5f,0x20,0xba,0xc2,0x75,0x85,0x74,0x23,0xf3,0x36,0x33,0x99,0x9c,0x64,0x4c,0xd1,0x5d,0xbd,0x06,0x46,0xbd,0x49,0xf0,0x86,0xc0,0xcb
+.byte 0x1b,0xbd,0xec,0x98,0x5b,0xb1,0x80,0xba,0x12,0x42,0x22,0x09,0x9a,0x62,0x3c,0xa8,0x33,0xbf,0xce,0x92,0xd4,0x07,0xef,0x34,0x33,0x8f,0x67,0x1d,0x25,0x60,0xeb,0xd3,0xe4,0x31,0x63,0xa8,0xab,0xe3,0xab,0x70,0x50,0xd8,0x44,0x9f,0x39,0x51,0xd2,0xb9,0x4b,0x16,0xe4,0xfa,0xc5,0x47,0xf3,0xae,0xb5,0xfe,0x7d,0x5d,0x43,0x28,0xa6,0x3d
+.byte 0xcf,0x71,0x23,0x6d,0x8e,0xd7,0x74,0xa4,0x86,0x9f,0x92,0x86,0x3c,0x1e,0x51,0xd4,0xe0,0xe6,0xd5,0xc4,0x53,0x3c,0x96,0x55,0xb9,0xac,0x63,0x5b,0xee,0x5a,0x03,0x84,0xb9,0x43,0x2c,0x0f,0x6d,0xbb,0xb5,0xca,0xf0,0x4f,0x3e,0x8b,0x3b,0x14,0x01,0x0e,0x81,0x0d,0xe6,0x62,0xa9,0x34,0x4e,0x03,0xc9,0x85,0x9f,0xc8,0x4f,0x52,0x3f,0x84
+.byte 0x1b,0xab,0x7e,0xaf,0x93,0x22,0xe2,0x0d,0x41,0x79,0x50,0xb2,0x17,0xa7,0x9a,0x80,0xd5,0x65,0x40,0x3b,0x56,0x9b,0xc9,0x00,0xcf,0x03,0xf1,0xff,0xcd,0x72,0x27,0xdb,0x74,0x94,0x70,0x02,0xdc,0x3a,0xee,0x00,0xcc,0x08,0x0a,0xab,0x40,0x87,0x24,0xaf,0x7d,0x67,0x18,0xd0,0x7c,0xeb,0x91,0x1f,0x7e,0x9e,0x41,0x7b,0x39,0xf2,0xfe,0xaf
+.byte 0xb7,0x6c,0x58,0xe0,0xdb,0xf7,0xf1,0x23,0x0b,0x98,0x08,0xfa,0xde,0xfa,0xf9,0x24,0x23,0xd1,0x7f,0x69,0xd3,0xb1,0x82,0x68,0x03,0x06,0x86,0x7a,0xf4,0x90,0x8d,0xa5,0xbd,0xbe,0x14,0x2f,0xa2,0x5e,0xaf,0x5c,0x1e,0x07,0x68,0x19,0x5a,0xd3,0x53,0x7d,0xe8,0x13,0x6b,0xe3,0x02,0x49,0x0d,0xd2,0x96,0x56,0xae,0x67,0x8a,0x27,0x61,0xa0
+.byte 0x60,0x20,0x2c,0xb4,0x5d,0xdf,0xc3,0x24,0x50,0xa9,0xbc,0x3d,0x5c,0xf3,0x2e,0xb6,0xba,0x71,0xf0,0x04,0x43,0x84,0x4d,0x80,0xe9,0xa5,0xdd,0xb3,0x1e,0x5e,0x56,0x32,0x1a,0xd4,0xe3,0x10,0x57,0x35,0xa8,0xf1,0xe5,0x96,0xc1,0x27,0xef,0xcc,0x21,0x71,0x10,0xd1,0x07,0x7e,0xb3,0xab,0x95,0x64,0x86,0xaf,0xc9,0x15,0xe6,0x98,0x5e,0xb1
+.byte 0xbd,0xde,0x99,0x38,0xfc,0x8d,0xb2,0x5a,0xa4,0x44,0x5b,0x74,0x31,0x31,0x07,0x93,0xf5,0x86,0x78,0xc5,0x82,0x26,0xfc,0x95,0x1f,0x33,0xd8,0xfe,0x70,0x42,0x2a,0xa7,0x3a,0xb1,0xb2,0x63,0xd6,0x5b,0x54,0x9c,0x54,0x45,0x4f,0x1b,0x4a,0xc2,0xb4,0x0e,0x99,0x48,0xde,0x8d,0xa6,0x5d,0xd3,0xdc,0x31,0xa4,0x2b,0x0d,0x44,0x6e,0x1a,0x10
+.byte 0x3f,0x6c,0xa0,0xab,0xcb,0xb4,0xf6,0x18,0xba,0x11,0xd4,0xd4,0x70,0xc4,0xab,0x04,0x4c,0xe7,0xe9,0x53,0xe5,0xd9,0xe7,0xeb,0x21,0xa2,0x2c,0xc4,0xc6,0xc3,0xe7,0x73,0xd9,0xd3,0x84,0xb0,0x12,0x94,0x3b,0xfd,0xd9,0x32,0xba,0xe3,0x37,0xc1,0xb9,0x4d,0xea,0x3e,0x3d,0x31,0x4e,0xa0,0xe7,0x73,0x9d,0x4e,0x26,0xd1,0xdf,0xe6,0x26,0xcd
+.byte 0xd7,0x17,0xd7,0x28,0x2c,0x04,0xe9,0x55,0xd5,0x70,0xaf,0xab,0xc1,0x07,0xbc,0xc4,0xd2,0x89,0xdc,0x22,0x59,0x19,0x0e,0xd8,0x8b,0xdd,0x46,0x7f,0xe4,0xad,0xa5,0x70,0xd7,0x18,0x51,0x30,0xd7,0xbc,0x26,0x45,0xe7,0xea,0xce,0xc7,0xf2,0xca,0xb1,0x9c,0x57,0x1e,0x10,0x5f,0x44,0x8d,0x3d,0xe8,0x55,0xa1,0x22,0x68,0x97,0xe8,0x03,0x9c
+.byte 0x8b,0x63,0x81,0xd9,0xcd,0x4c,0x6c,0xe3,0x68,0xc9,0x35,0xee,0x94,0x13,0x25,0x0b,0x12,0x61,0xbd,0xee,0x6f,0xc7,0xe8,0xb5,0x01,0x7a,0x9e,0xd0,0x5a,0x46,0xc6,0x19,0x1b,0xc2,0xf1,0x2d,0xaa,0x53,0x29,0xcf,0x23,0x1a,0x4d,0x94,0x0a,0x50,0x64,0xf5,0x3b,0x52,0x55,0xac,0xa5,0x21,0x15,0x47,0xd9,0x14,0x8c,0x7f,0x4d,0x79,0x6b,0xc1
+.byte 0x43,0x0a,0xf2,0x42,0xd2,0xb0,0x95,0x19,0x99,0xdd,0x1d,0x8e,0x84,0x8c,0x7e,0x59,0x69,0x93,0x86,0xae,0xf1,0x67,0x35,0x55,0x7c,0x5b,0x38,0x11,0x56,0xec,0x6c,0xbb,0xe8,0xc0,0x54,0xec,0x5f,0x65,0x13,0xe3,0x86,0xa0,0xb1,0xc1,0x5e,0x34,0x4f,0xdd,0x4d,0x00,0xc6,0x29,0x05,0x78,0x64,0x8c,0x19,0xb0,0xfc,0x8a,0xb2,0xc7,0x86,0x57
+.byte 0xa2,0xdd,0xed,0x43,0xc1,0x7f,0xab,0x89,0x19,0xe8,0xa6,0xf5,0x7a,0x15,0xfe,0xd5,0x4f,0x53,0xde,0x78,0x42,0x76,0xf7,0x8a,0x54,0xe8,0x37,0xfd,0xee,0x82,0x20,0xd5,0xe2,0x32,0xb9,0x32,0x67,0xc7,0xff,0xdc,0xf0,0x40,0x07,0x28,0x55,0x16,0x56,0x84,0xe9,0x17,0x25,0x17,0x8e,0x10,0xef,0x9f,0xed,0x33,0x83,0x6d,0x9e,0x87,0x82,0xb8
+.byte 0xa9,0x6b,0xcb,0xe5,0x04,0xfb,0x87,0x51,0x05,0x1a,0x64,0x64,0x51,0x34,0xa3,0x61,0x4a,0xe3,0xa6,0x35,0xa5,0xc9,0xe3,0xde,0xb0,0xcf,0x5f,0x68,0x49,0xbc,0x98,0xf9,0x0b,0x82,0xde,0xb1,0xf9,0x77,0x16,0x7c,0x1f,0x80,0x0c,0xfc,0xbb,0x6d,0x8e,0x92,0x93,0x00,0xc2,0xa5,0xbe,0xde,0x55,0x09,0x9d,0x83,0xa5,0x6c,0x0a,0xb5,0xc4,0x53
+.byte 0xde,0xbc,0x07,0xca,0x0f,0x43,0xea,0x50,0x25,0xee,0x51,0x3b,0xfb,0x7a,0xcf,0x31,0x8a,0x19,0x1c,0xa2,0x2d,0x72,0x79,0x81,0xc6,0xb8,0xe6,0xe1,0xd8,0x3e,0x0f,0xc0,0xae,0x73,0x40,0x30,0x15,0xaa,0xe3,0x72,0xc3,0x36,0xc1,0x42,0x11,0xc5,0x3f,0xf5,0x69,0x78,0xea,0x95,0x54,0x36,0xe8,0x7e,0x9c,0xad,0xbd,0xcd,0x19,0xfe,0x4a,0x04
+.byte 0xb4,0x54,0x14,0x98,0x58,0x6f,0x06,0x8f,0x8c,0x95,0xa8,0xc9,0xe8,0xc4,0x2b,0x03,0xaa,0x42,0x75,0x74,0xa2,0x63,0xdb,0xca,0xd1,0xf0,0x60,0xc3,0x63,0x84,0xfb,0xd7,0x5a,0x7b,0xca,0x45,0x8d,0x14,0xdc,0xf8,0x71,0x40,0x71,0xbb,0xa1,0x1a,0xd3,0x8c,0xfb,0xf6,0xf7,0xfc,0x82,0x72,0x50,0xc9,0xe3,0xc5,0xe2,0xb1,0x57,0xb1,0x24,0x3e
+.byte 0x11,0x4d,0x96,0x1c,0x3a,0xe1,0xb6,0xb7,0x0e,0x55,0x35,0x6c,0xd8,0x2b,0xe3,0x78,0xcd,0xac,0x8f,0x24,0x70,0xc6,0x35,0x5b,0x6e,0x75,0x7a,0xf1,0x7d,0x87,0x53,0xcf,0x0a,0x24,0xb6,0x6a,0xfd,0xef,0x90,0x07,0xcf,0xde,0x30,0xbc,0x8c,0xec,0xda,0x6f,0x45,0xad,0x92,0xb6,0x8d,0x6b,0xb8,0x8e,0xdc,0xe5,0xbf,0x57,0x67,0x5e,0x2f,0x4d
+.byte 0x5d,0xee,0x38,0x0a,0xaf,0xeb,0x62,0x84,0x2b,0x4c,0x30,0x7b,0x91,0x99,0x40,0x6f,0x09,0x2b,0x36,0xcd,0x04,0xeb,0x7c,0x8d,0xa5,0xbd,0xd6,0xb0,0xfc,0x27,0xcf,0x6b,0xdd,0xe1,0x94,0xbc,0x21,0xc6,0xc9,0x55,0x24,0xd4,0xa1,0x6f,0x1e,0xa2,0x81,0x31,0x22,0xb7,0x75,0x9e,0xa7,0x01,0x26,0x01,0x6c,0x12,0x91,0x02,0x87,0x40,0x5c,0x91
+.byte 0x1f,0x0c,0x55,0x07,0x12,0xa7,0x48,0xdd,0xed,0xb6,0xfe,0x38,0x05,0xbc,0xe1,0x2e,0x3b,0x89,0x4f,0x98,0x65,0x22,0x93,0xda,0x09,0x9f,0x04,0x90,0x66,0x81,0xd1,0x56,0x27,0x8b,0x26,0x99,0xbe,0x93,0x08,0xf1,0xfb,0x80,0x5b,0xaa,0xc4,0x96,0x88,0x93,0xb6,0x01,0xae,0xf6,0x69,0xaa,0x6f,0x4d,0xde,0x2f,0xc7,0x24,0xbf,0xe9,0xb8,0xeb
+.byte 0xcd,0xb2,0x0a,0x50,0x5c,0xd2,0x0b,0xfc,0x57,0x3b,0x96,0xf8,0xd9,0xbe,0xd2,0xb5,0x16,0xac,0x7c,0xe4,0x2f,0x46,0x93,0x86,0x48,0x91,0xfa,0xae,0xca,0x05,0x9e,0xfe,0x6e,0xae,0xa5,0x58,0x94,0xc0,0x58,0x1e,0xc5,0x69,0x28,0xe0,0x99,0x12,0x83,0xcf,0x35,0xe4,0x72,0x7d,0x4e,0x8b,0x66,0x56,0xb3,0xa6,0x2a,0x72,0x06,0x03,0x45,0xd1
+.byte 0x95,0xc9,0x93,0xb7,0xf4,0x8a,0x83,0xce,0x17,0x8b,0xf0,0x8e,0x8f,0x4a,0x68,0x55,0xd8,0xfc,0x54,0x8d,0xb5,0x62,0x17,0xa8,0xe6,0x18,0x03,0x53,0x04,0xb8,0xbe,0xd2,0xd0,0x7a,0x84,0xe1,0x39,0x31,0xc5,0x74,0xf2,0x64,0x1c,0x3b,0xd5,0x52,0x9b,0x81,0x8a,0x8f,0x36,0xc8,0xab,0x3d,0xe1,0xa8,0x2a,0xf2,0x84,0x9a,0xca,0x0c,0xcf,0xc9
+.byte 0x45,0x54,0x06,0xe8,0xd2,0x62,0x61,0x4d,0xeb,0x0b,0x38,0x4e,0x43,0x59,0x85,0x3a,0xe4,0xa3,0x25,0x15,0xc2,0xb5,0x7b,0x5e,0x2f,0xe6,0xc1,0x5d,0x2a,0xb7,0x57,0xb8,0x7e,0x61,0x51,0xc3,0x81,0x53,0x45,0x8a,0x6e,0x4c,0x89,0x84,0x2a,0x6b,0xca,0x15,0xff,0x97,0xfc,0x1f,0x8a,0x44,0xbd,0xcd,0x5e,0x32,0x6b,0x5f,0x78,0x7b,0xdf,0xdd
+.byte 0x9d,0x2f,0x21,0xf2,0x14,0x40,0x5f,0x5a,0xd5,0x21,0x27,0x3d,0x0b,0x9f,0x9f,0xb0,0x8e,0xab,0x9e,0x68,0x96,0x02,0xfd,0x4d,0xcc,0x03,0xf0,0x03,0xfb,0x4c,0xac,0xfa,0x00,0x3b,0xea,0x1a,0x53,0x80,0x77,0xec,0x53,0xc3,0x3c,0x6c,0xf8,0xa5,0x3e,0x52,0x34,0xd4,0xa1,0x52,0xb8,0xd6,0x19,0x8c,0xdf,0x85,0x27,0x61,0x22,0xe7,0x43,0xeb
+.byte 0x85,0xc0,0xbe,0x58,0xe6,0x60,0x81,0x4c,0xc6,0xbb,0xc0,0xbf,0x63,0x39,0x9d,0xad,0x2e,0xa8,0x2a,0x83,0x3d,0xfa,0xdb,0x0b,0x98,0x16,0x78,0x18,0x43,0xc7,0x17,0x82,0xb8,0xec,0x32,0x45,0x75,0x0c,0xc1,0x4c,0x84,0xbf,0xce,0x83,0x3b,0xb4,0x91,0xf4,0x0d,0x5d,0x83,0xf6,0xd6,0x10,0xab,0xc6,0x26,0x9b,0x68,0x59,0xec,0x48,0x4b,0x1d
+.byte 0x35,0x2a,0x5b,0x23,0x83,0x22,0x8e,0x7d,0xfa,0xce,0xde,0xb1,0xd9,0x78,0xf6,0x9e,0x08,0xba,0xfb,0xda,0xf2,0x04,0xc5,0x2a,0xac,0xbf,0xb4,0x04,0x05,0x1f,0x0b,0xeb,0xe8,0x2a,0x3c,0x3f,0x4f,0xb6,0xc8,0x6b,0x97,0x5a,0x9e,0xdb,0x4b,0x3c,0x93,0xc1,0x20,0x1c,0x62,0x91,0x74,0x76,0x49,0x92,0xc2,0xd8,0x0d,0xd8,0xfe,0xb5,0x68,0x77
+.byte 0x48,0x9f,0xbe,0xe0,0x78,0x20,0xe7,0xa4,0x3d,0x3e,0xa1,0x4c,0xc7,0xeb,0xd3,0x30,0xd3,0xf0,0x65,0xcf,0x18,0x3c,0xf8,0x25,0xc2,0x99,0xf4,0xec,0xef,0xdd,0xef,0xf3,0x6b,0x28,0x00,0xaa,0xfd,0x76,0xec,0x19,0x67,0xd6,0x79,0xa6,0x01,0x6e,0x20,0x3a,0x7f,0xd4,0xd0,0x05,0xb4,0xea,0xd4,0xde,0x11,0x06,0x44,0x4a,0x6f,0x15,0x2f,0x62
+.byte 0x9a,0xaa,0xeb,0xaf,0xb5,0xb5,0x46,0xb2,0x28,0x2e,0x74,0x26,0x06,0x91,0xeb,0x15,0xef,0xd4,0xfd,0xc7,0x1b,0x65,0x25,0x01,0x24,0xd2,0x44,0x05,0x18,0x1c,0x71,0x36,0x58,0xc4,0x37,0xfe,0x22,0x29,0xc0,0x2f,0xd2,0x4e,0xeb,0x43,0xb9,0xf9,0x4e,0x87,0xd7,0x92,0x77,0xa8,0x4f,0xa5,0x6e,0x5c,0x4d,0x3a,0xe9,0x16,0x62,0x30,0x51,0xbb
+.byte 0x32,0xd8,0x0d,0x86,0x20,0xbf,0x68,0x0f,0x3e,0xef,0x8b,0x0d,0xc5,0xa6,0x94,0x81,0xe9,0x6f,0x85,0xf5,0x22,0x6e,0x9e,0x0a,0x56,0xa3,0x43,0x79,0x50,0xd9,0x45,0x5f,0x5a,0x3f,0x53,0x53,0xb7,0xfe,0xb6,0x1c,0x63,0xab,0x7c,0xed,0x2f,0xc4,0x2b,0xa8,0x53,0xfb,0xad,0x46,0xf0,0x63,0xca,0x7a,0x6e,0xce,0xf4,0xb9,0x34,0xd0,0x9a,0xc8
+.byte 0x0d,0xd2,0x32,0xce,0x26,0x3f,0xcd,0xd9,0xbc,0xa9,0x46,0x65,0x45,0xfe,0x45,0xeb,0x0d,0xab,0xe6,0x31,0xb6,0xb9,0x41,0x53,0x7d,0x55,0xc3,0xfb,0x10,0x46,0x37,0x77,0x1f,0x15,0xf0,0x5f,0xcb,0x8f,0xea,0xc5,0xc0,0xb8,0xc6,0xb1,0x3a,0x06,0x42,0xec,0x38,0xec,0x06,0xd1,0x37,0x3b,0xe1,0x8d,0xad,0xc2,0xce,0x96,0x0b,0xf0,0xab,0xde
+.byte 0x9c,0x3c,0x09,0xef,0x59,0xcd,0x67,0xa7,0x6e,0x0e,0xc7,0xee,0x51,0x6d,0x90,0x40,0x0e,0xdf,0xb1,0x13,0xe3,0x0c,0xb6,0xe8,0xcb,0xf5,0x57,0x50,0xeb,0xdf,0x09,0x45,0x72,0x40,0xff,0xdc,0x5c,0x51,0x42,0x47,0xb2,0x9e,0xca,0xf3,0x1b,0x06,0xb1,0x3e,0x04,0x55,0x96,0x63,0x24,0x16,0xdb,0x3e,0xab,0x98,0x33,0x70,0x6f,0xfd,0x8f,0x7b
+.byte 0x56,0xb0,0x7f,0x28,0x26,0xc4,0x2a,0x9e,0xf5,0xa7,0xba,0x61,0x75,0xa4,0xb1,0x25,0x60,0xe5,0x9c,0x7e,0xb4,0xaa,0x04,0xa1,0x33,0x5a,0x8d,0x88,0x1d,0xc4,0x38,0x58,0x28,0x23,0xc7,0xac,0x20,0xf8,0xaa,0x18,0xf8,0xc7,0x27,0x05,0x07,0xf7,0x12,0xfe,0xe1,0xa5,0x99,0xaa,0x55,0x79,0x72,0xc4,0x14,0x08,0x14,0x4a,0xfb,0xf7,0x66,0x81
+.byte 0x6e,0xed,0x81,0x12,0x5f,0xb6,0x08,0x00,0x37,0xf9,0xdc,0xdf,0x4d,0xcb,0xfa,0xc6,0xf3,0xc2,0x17,0x17,0x52,0x39,0x7b,0xa0,0x3e,0x25,0xc9,0x48,0xd8,0xa6,0x1b,0x8b,0xdb,0xf8,0x74,0xac,0x6b,0x16,0xec,0xa6,0x4a,0x1e,0x7e,0x5c,0x50,0xbf,0x81,0xef,0x3c,0x7d,0x9d,0x21,0x38,0xa9,0x26,0x3c,0x30,0x7a,0xfb,0xab,0xd8,0x6a,0x0a,0xaa
+.byte 0xbb,0x6e,0x91,0x92,0x7c,0x04,0x02,0x0e,0xa2,0x71,0xc7,0xde,0x7d,0x42,0xaf,0xe5,0x92,0xc1,0xb9,0xd7,0x52,0xaa,0x32,0xea,0x39,0x84,0x17,0x40,0xb0,0x83,0x18,0xff,0x46,0xb8,0x59,0xd9,0xa3,0xce,0x82,0x7e,0x65,0x54,0xe0,0xa4,0x6d,0x8a,0xbc,0x6a,0x65,0xb2,0xd5,0x96,0x5b,0x1c,0x9a,0x32,0x72,0xf7,0x81,0x57,0xcd,0xb3,0x22,0xc5
+.byte 0x7d,0x20,0x24,0xea,0xbe,0x51,0x4c,0xb3,0x48,0x36,0x4f,0x73,0xf4,0x3f,0x07,0x92,0x01,0xe2,0x1e,0x78,0x3f,0x8e,0x1f,0x35,0x1a,0xf1,0xe1,0x14,0xd1,0xe7,0xd9,0xfd,0xd8,0xf7,0x20,0xc2,0xf3,0x7a,0x59,0xc9,0x1d,0x13,0x41,0x01,0xf6,0x77,0x69,0xfb,0x0f,0xc7,0xe4,0x58,0x04,0xce,0xe8,0x73,0x87,0x2f,0xef,0xe6,0x36,0x38,0xc7,0x91
+.byte 0x2d,0x17,0xb5,0x56,0x68,0xb1,0x9f,0xbf,0x2e,0x4b,0xe7,0x09,0x7b,0x35,0x33,0x5a,0x6c,0xc1,0x6f,0xb3,0xac,0x6c,0x1e,0xfe,0xc0,0xc9,0xd8,0x77,0xf5,0xcb,0x5e,0xcc,0xd1,0x2f,0xdd,0x23,0x8b,0x3b,0xb5,0x43,0x96,0x1f,0xa9,0xe4,0x84,0x41,0x92,0xe9,0x68,0x47,0x50,0xf7,0xd4,0x85,0x22,0xa1,0x43,0xaa,0xde,0xf7,0xea,0xe0,0x54,0xaa
+.byte 0x0d,0xe6,0xa5,0xb8,0x7e,0xec,0x13,0x9a,0x1e,0x6c,0x10,0x9d,0xa8,0xfb,0x97,0xde,0x24,0xda,0x33,0xbb,0xab,0x17,0x7a,0xb4,0x72,0xaf,0xed,0xc9,0xa4,0x62,0x65,0x0c,0x99,0x3d,0x74,0x7f,0xff,0x59,0xa9,0x8e,0x37,0xb9,0x10,0x30,0x26,0x3f,0x2f,0xfc,0x1e,0xe2,0xc6,0xb8,0xff,0x41,0xb3,0x35,0x3f,0x41,0xf4,0x47,0xbc,0x76,0xc6,0x77
+.byte 0x0f,0xf8,0xff,0xb8,0xd2,0x34,0x40,0xac,0x43,0xcb,0xcf,0x1f,0x57,0xaa,0x1a,0xa7,0xe1,0x4a,0x69,0xd7,0x05,0xa7,0x9d,0xff,0x13,0x43,0x91,0xe3,0x09,0x1c,0xb2,0xb2,0x82,0x06,0xa3,0x3c,0x35,0x85,0x9e,0xd0,0xcf,0x1c,0xb9,0x13,0x09,0x7d,0x3d,0x17,0x0f,0xf8,0x2f,0x61,0x97,0x7e,0x02,0xe0,0x78,0x07,0x69,0x8c,0x91,0xbe,0x96,0x92
+.byte 0x4a,0x03,0xa7,0x31,0x5f,0x6c,0xfe,0x55,0xb2,0x17,0xe8,0x4c,0x64,0x48,0x18,0xde,0x4f,0x5a,0xce,0xd2,0xcb,0x83,0x4d,0x1b,0x2a,0x1f,0xce,0x85,0xf7,0xdc,0x74,0x8c,0x42,0xc6,0x5a,0x3a,0x51,0x22,0x79,0x70,0xa0,0xe0,0x29,0x2a,0x73,0xe4,0x53,0xb4,0x47,0x5f,0x54,0xa8,0x65,0xe4,0x89,0x78,0xf9,0xb9,0x5f,0x5f,0x9d,0xa8,0xf7,0x82
+.byte 0x4e,0x34,0x60,0xfc,0xe3,0x88,0x65,0x73,0x99,0x1f,0x53,0xed,0xe8,0xf0,0xf4,0x5a,0x0a,0x49,0x42,0x6e,0x02,0x3f,0xa8,0x63,0x21,0x02,0x2e,0x8f,0x33,0xba,0x0e,0x10,0xd3,0x4c,0x1a,0x8b,0xf5,0x84,0x8e,0x2b,0x37,0x12,0x23,0x77,0x02,0x45,0xc7,0xc3,0x79,0x06,0xc2,0x8c,0xaa,0x32,0x53,0x7c,0x19,0xa2,0x92,0x7e,0x47,0x40,0x8f,0xae
+.byte 0x8a,0x64,0x51,0x67,0xe1,0xc1,0xc3,0xd2,0x14,0x1d,0x63,0x0c,0x80,0x04,0x30,0x3d,0xee,0x58,0x44,0xe4,0x14,0x63,0xfc,0x95,0x05,0x3e,0xc1,0x8d,0xd3,0xcb,0x5d,0xc1,0x8e,0xf9,0xd7,0xe5,0x9d,0x97,0xef,0x8a,0xaa,0x50,0x31,0xa3,0x01,0x3a,0xb2,0x8d,0x63,0xb6,0xe7,0x34,0xec,0xa1,0x7a,0xff,0x57,0x95,0xbb,0x1d,0xbe,0x0c,0xa5,0x91
+.byte 0x92,0x08,0x06,0x1c,0x67,0x03,0x2e,0xee,0xf6,0x6f,0xa0,0xb7,0x9a,0x7c,0xe3,0x6a,0x8e,0xd8,0x50,0xc1,0xd6,0xa1,0x8d,0xe9,0x66,0x9a,0x1f,0x62,0x15,0x04,0x93,0x74,0xe8,0x04,0x0d,0x27,0x55,0x2b,0x07,0xb1,0xbd,0x69,0xe4,0xc1,0x34,0x8e,0xe7,0xfb,0xa0,0x3f,0x40,0x31,0x47,0xba,0xcb,0x80,0x88,0xf7,0x4f,0x46,0x05,0x31,0xaf,0x23
+.byte 0xdf,0x93,0x09,0x0a,0x15,0xc9,0x95,0x74,0x52,0x72,0xf4,0xbf,0x0d,0x07,0xb6,0xcc,0x4b,0x40,0x12,0xf3,0x87,0xea,0x29,0xd8,0x29,0x31,0x23,0xac,0x29,0x1a,0x89,0x83,0x5b,0x33,0x4b,0x6b,0x69,0xbe,0xb6,0x15,0x7e,0xfd,0xf2,0x95,0xc4,0xbe,0xeb,0xee,0x59,0x01,0x2a,0xce,0xca,0x80,0xda,0xf8,0x1a,0x01,0x23,0xf7,0xa1,0x4f,0xf5,0x83
+.byte 0x5e,0x16,0xd9,0x12,0xa9,0x4e,0xcb,0x59,0x23,0x4f,0x40,0xd7,0xbf,0xaf,0x76,0xf0,0x50,0x31,0x27,0x3a,0x8b,0x1d,0x9b,0xb1,0x1c,0x41,0xb0,0xed,0xe6,0xf3,0xa8,0x5f,0x6b,0x58,0x54,0x92,0xaf,0xcc,0x44,0x5c,0xea,0xdb,0x09,0xc5,0x26,0x5e,0xbe,0x46,0xbd,0x72,0x49,0x5a,0x4e,0x65,0x7e,0x75,0xcf,0xfc,0xf6,0xd0,0x3c,0x4a,0x7e,0xd6
+.byte 0x8e,0x8e,0xb4,0x19,0x45,0x75,0xbf,0xc3,0x5e,0x46,0xff,0xc9,0x46,0x65,0x8d,0x31,0x01,0x5e,0x1c,0x13,0x93,0x56,0x6f,0x28,0xec,0xf3,0x77,0xfa,0x6e,0xb9,0x0e,0xb6,0x8e,0x0e,0x38,0xf8,0x28,0x64,0xa2,0xa1,0x42,0x9a,0xb4,0xf3,0x14,0x8d,0x17,0x80,0x05,0x82,0x7c,0xf1,0xea,0x8b,0x4b,0x62,0xa0,0xde,0xf6,0xd7,0x36,0xb0,0x70,0x8d
+.byte 0x03,0xf6,0xc8,0x2a,0x9e,0xc0,0xbb,0x2f,0xcb,0xef,0x35,0xf7,0x16,0xcd,0xd6,0xd6,0x90,0xd7,0x5d,0x61,0x00,0x33,0x9f,0xd8,0xd1,0xda,0x17,0x67,0x90,0xd1,0xf8,0x59,0xcb,0xf1,0x76,0xc2,0xbe,0x1f,0x5d,0x0d,0xb2,0x02,0xbd,0x19,0x9f,0x5a,0xa0,0x91,0xac,0x51,0xb5,0xf5,0x0a,0x64,0x67,0xf2,0x49,0x30,0x6c,0x57,0x83,0xda,0x90,0xf1
+.byte 0xc6,0xc7,0xe6,0x05,0x13,0x30,0x52,0xfd,0x2a,0x47,0xea,0xae,0xd3,0xed,0xe4,0x64,0x1f,0x6c,0xb1,0xdf,0xca,0x20,0x97,0x2a,0xc8,0xdc,0x00,0x0e,0x5b,0x59,0xc8,0x16,0x95,0x68,0x9a,0x2e,0x44,0xab,0xf6,0x93,0x7c,0x8f,0x66,0x4f,0x07,0x42,0x3f,0xa5,0x81,0xe7,0xab,0x59,0xbb,0xae,0xb1,0x3e,0x9a,0x25,0xf1,0xde,0xac,0x4c,0x1d,0x7a
+.byte 0x54,0xb9,0xa9,0x59,0xaf,0xb0,0xab,0xaf,0x6b,0x76,0x66,0x1e,0xbe,0x1a,0xc1,0x61,0x1b,0x81,0x6b,0xe8,0xe4,0x73,0x6a,0x87,0xe9,0x39,0xcb,0x2c,0xab,0x64,0x36,0x9a,0x11,0x46,0xec,0x9f,0x30,0xb6,0x2c,0x14,0xe0,0xec,0xbe,0x33,0xde,0x60,0xc6,0x00,0x29,0x3c,0x55,0xda,0xfc,0x64,0xff,0xaa,0xbf,0x99,0x58,0xe2,0xe3,0xec,0xde,0xca
+.byte 0xd1,0x3d,0xd2,0xad,0xaa,0xca,0x36,0x8f,0x93,0xa2,0xdd,0xde,0xaa,0x49,0x7f,0xdd,0x39,0x91,0xa0,0x7b,0x33,0xdf,0x36,0xcd,0xc3,0x3a,0xbc,0x53,0xf0,0x07,0x99,0x78,0x4e,0x63,0x47,0x79,0xbf,0x21,0xfc,0x05,0x47,0x69,0xec,0xee,0xf4,0x21,0x97,0x94,0x0c,0x7a,0x9f,0xa6,0xeb,0x5b,0x23,0xed,0x9d,0xc1,0xe1,0x5e,0x10,0xca,0xe0,0x84
+.byte 0x5a,0xdd,0xf6,0xae,0xd8,0x23,0x98,0xea,0x6c,0x43,0x77,0x41,0xf3,0x84,0x5a,0xe8,0xda,0xb3,0x11,0x0e,0x19,0x33,0xe9,0xf9,0x7a,0x90,0x07,0x68,0xf1,0xe4,0x52,0x0c,0x03,0x67,0xb9,0x42,0x41,0x24,0xa3,0x61,0x67,0x75,0xc9,0xb5,0xdd,0x10,0xf1,0x20,0x93,0x54,0xdb,0x0d,0xc7,0x0d,0x25,0x3e,0xda,0xb3,0xe7,0xce,0x97,0x7e,0xdb,0x1a
+.byte 0x8f,0x92,0xff,0xe3,0x44,0x2d,0x6b,0xdb,0xe0,0x69,0x8b,0x16,0xce,0xe8,0xc7,0x93,0xf1,0x19,0xb9,0xd3,0x41,0x45,0x8d,0x95,0xb3,0x03,0xb2,0x66,0x96,0x95,0x91,0x33,0x1c,0xee,0xde,0xd7,0x9d,0xab,0x32,0x2f,0xb8,0x3c,0x7a,0x44,0x8f,0xa6,0xca,0x02,0x03,0x2f,0xa8,0x44,0x85,0x0e,0xf5,0x27,0x90,0x84,0xd9,0x80,0x06,0xf4,0x4f,0xc7
+.byte 0x21,0xc5,0x92,0xa4,0x2d,0x08,0x42,0x4c,0xa7,0x84,0xfa,0x7e,0x2b,0x66,0xfb,0x7c,0x81,0xea,0x5c,0x7d,0xdd,0x86,0xf1,0xf5,0x04,0xef,0xf2,0x50,0x12,0x72,0x42,0x22,0x23,0x74,0x7f,0xe7,0xed,0xd9,0xce,0x78,0x10,0x83,0x37,0xd0,0x81,0x97,0x4a,0xac,0xc2,0xe5,0x13,0x91,0x83,0xe2,0x6e,0xff,0x5a,0x0b,0xc3,0x4d,0xc1,0x3e,0x97,0x16
+.byte 0x96,0x69,0x39,0x9e,0x1d,0x6b,0x16,0x82,0xa2,0x94,0x0d,0x50,0xdd,0xa3,0xda,0x9d,0xda,0x3f,0x46,0xce,0x6c,0xd0,0xdf,0x6e,0x1b,0x17,0x47,0x51,0x74,0x6f,0xe9,0xa4,0x6b,0xae,0xd2,0x6e,0x5b,0xc0,0x26,0xc6,0x0b,0x84,0xb1,0x39,0xcf,0x9e,0x7c,0x18,0x52,0xd7,0x8f,0x33,0xae,0x3d,0xaf,0x3d,0x1a,0xba,0x3f,0x09,0x76,0x22,0x1d,0xf3
+.byte 0x42,0x14,0x4f,0x06,0xc7,0x33,0xc1,0x2d,0x58,0x1b,0x4c,0xc0,0x3a,0x29,0xa6,0x5e,0x19,0x26,0xdf,0x36,0x18,0xa9,0xc5,0xe9,0xd3,0xb1,0xae,0x86,0xa8,0x7f,0xd9,0xb4,0x18,0xef,0x9c,0x46,0xb6,0xf2,0xb2,0xb6,0x6e,0xe2,0xf8,0x5f,0x27,0xea,0x76,0xd3,0x40,0x68,0x94,0x66,0x8a,0xf5,0x9f,0xee,0x0c,0xe5,0xae,0xb6,0xba,0x87,0x42,0x40
+.byte 0xc9,0x83,0xac,0xb4,0x2c,0xec,0x74,0xb7,0x55,0x17,0x0b,0x1e,0x45,0x1a,0x87,0x9d,0x52,0xce,0xb7,0x58,0x2f,0x45,0xc7,0x7d,0xf3,0xd3,0x11,0x2e,0xf4,0xd8,0xc0,0xb8,0xc3,0x31,0x45,0x68,0x40,0xe8,0x8a,0x33,0x20,0x9a,0x06,0xa8,0x18,0x53,0xb2,0x73,0xa1,0x57,0xac,0x8f,0x56,0xeb,0x8e,0xa4,0xfc,0xd6,0x76,0x7e,0x81,0x62,0x2c,0x17
+.byte 0x49,0xb4,0xcc,0x15,0x66,0xcb,0xa2,0x3c,0x29,0xf0,0x73,0x0e,0x9a,0x34,0x16,0x6d,0x43,0x62,0x20,0x89,0x14,0xae,0x8b,0x5d,0x61,0x54,0xa1,0x82,0x49,0x73,0xb9,0x2b,0x48,0xd4,0xe3,0x21,0x37,0x5e,0x4d,0xbf,0xd0,0x72,0xa4,0x23,0xdb,0x7c,0xd9,0x45,0x77,0x8a,0x24,0x23,0x56,0xcd,0x84,0x80,0x44,0x12,0xce,0x99,0x39,0xbd,0x77,0xff
+.byte 0x8c,0x62,0x8d,0x56,0x77,0x24,0x40,0x11,0x22,0xab,0x28,0xd6,0x75,0x2b,0xbb,0xc1,0x51,0xd6,0x5e,0x61,0x1c,0xe9,0xac,0x36,0x99,0x52,0x44,0xa5,0x20,0xdb,0xe0,0x12,0x9a,0x45,0x8f,0x7f,0x47,0xf9,0xa3,0x91,0x18,0x2b,0x51,0x9a,0x9f,0x3f,0x7d,0x36,0xde,0x71,0xae,0xca,0x62,0x62,0x16,0xda,0x19,0x9c,0x84,0xce,0xde,0x93,0x22,0xde
+.byte 0xaf,0xe7,0x91,0x09,0xe8,0xf0,0x0e,0x07,0x71,0xdf,0x48,0xcd,0x8a,0x77,0x19,0x3c,0xd6,0xef,0x8e,0xe0,0x49,0xdf,0xcb,0xd6,0x34,0x78,0x7f,0x42,0xc2,0x6e,0x7a,0x50,0x53,0xee,0xbf,0x73,0x4b,0xd4,0x4f,0x06,0x18,0x26,0x67,0x51,0x54,0xa3,0x40,0xe6,0xb3,0x61,0x4b,0xfd,0xee,0x62,0x00,0x44,0x6c,0x0d,0x8b,0x2f,0x4d,0x06,0x17,0x41
+.byte 0xee,0x8b,0xde,0x1f,0x80,0x36,0x58,0x3e,0x0a,0x53,0x0a,0x83,0xf9,0xba,0xbd,0x91,0x6a,0x20,0x32,0x42,0x6c,0x85,0xdc,0x84,0xfd,0xce,0x57,0xbe,0xf8,0xa5,0x2c,0x7e,0xf9,0x1b,0x07,0xf4,0x32,0x13,0x32,0x79,0xdc,0x91,0xfc,0xc0,0x18,0xe6,0x1e,0xb2,0x67,0x9d,0x08,0xd2,0x89,0xa2,0xb1,0xbf,0x37,0xe1,0x3f,0x9e,0xb5,0x17,0xf7,0x2f
+.byte 0x9a,0x4f,0x3c,0xea,0x5d,0x48,0x56,0x48,0x35,0x17,0xe9,0x5a,0x99,0xa7,0x2e,0x25,0x4f,0x96,0xa6,0x3d,0x3c,0xf8,0xdc,0xe7,0xe5,0x98,0x46,0xf7,0x10,0x16,0x4f,0xb0,0x7b,0x48,0x06,0xbb,0x9a,0x5a,0xad,0x32,0x49,0x92,0x39,0xb2,0xfe,0x01,0x1a,0x5e,0xcc,0xf7,0x0d,0x65,0x1c,0xf5,0x3d,0xb3,0x40,0x28,0x06,0x6e,0xbb,0x74,0x2a,0x95
+.byte 0xe9,0x62,0x2a,0xe2,0x19,0x38,0xc6,0x0d,0x46,0x30,0x6d,0x90,0xa5,0x68,0x4d,0x89,0xf0,0xf4,0xaf,0x52,0x11,0x8a,0x47,0x65,0xc0,0x6d,0xee,0xde,0xbc,0xed,0xf2,0x94,0xf3,0xfb,0xfd,0x2f,0xea,0xd5,0x36,0x89,0x8a,0x22,0xb8,0x75,0x3c,0xda,0x8d,0x3f,0x71,0xe5,0x50,0xb8,0xef,0xfc,0xa1,0x34,0x4a,0xb0,0x56,0x64,0xaf,0x28,0x0c,0x7a
+.byte 0x28,0x3e,0xc8,0x83,0xc2,0xbb,0x89,0xc4,0x29,0x7f,0xc9,0xe7,0x4e,0xcb,0xdc,0x8f,0xe8,0xa4,0xdc,0x0d,0xcc,0xa0,0x16,0xda,0xa9,0x34,0x61,0xec,0x64,0xa7,0xf4,0x47,0xe9,0xee,0xbf,0xc6,0x4b,0xc5,0x01,0x65,0xe4,0xe0,0x12,0xd6,0x27,0xda,0x30,0xb5,0x60,0x72,0xe1,0xee,0x38,0x23,0x6c,0x9d,0xbb,0x83,0x01,0x4b,0x26,0x9a,0x68,0xb3
+.byte 0x89,0xb3,0xe0,0x10,0x22,0x58,0xef,0x2d,0xd4,0x86,0xab,0xab,0xc4,0xd8,0x9c,0x56,0xe8,0x54,0x40,0x86,0x11,0xd2,0x6b,0xc0,0xaf,0xfc,0x4a,0xef,0x24,0x38,0x79,0x32,0x54,0x26,0x8b,0x7e,0x02,0xad,0x86,0x9d,0x40,0x65,0x28,0x28,0xa3,0xa6,0xe4,0x07,0x29,0x3a,0xbb,0x81,0xed,0x17,0x54,0x51,0x35,0xc6,0x88,0x9c,0x63,0x7e,0x73,0x02
+.byte 0x28,0x13,0x4b,0x33,0xc0,0x68,0xbc,0xae,0x8c,0x59,0xd4,0x84,0x1d,0x41,0x86,0x5a,0xf6,0x14,0x50,0x13,0x88,0xca,0xc8,0xb8,0xfc,0x61,0xeb,0xe6,0x69,0x70,0x4a,0xa5,0xa5,0x36,0x4b,0xac,0xca,0x00,0x28,0xae,0xb0,0x03,0xef,0xe3,0x92,0xad,0x97,0x32,0x05,0x8c,0x93,0x95,0x45,0xd5,0x75,0x66,0x11,0xd3,0x6f,0x7f,0x5f,0x35,0x44,0xb7
+.byte 0xd7,0x34,0xcf,0x8c,0x4a,0x61,0x68,0x63,0x3f,0x92,0x54,0x01,0x3c,0x25,0x2d,0x6f,0x4a,0x2d,0x55,0xff,0x3f,0x86,0x85,0x9f,0xc2,0xa1,0xde,0x6b,0xbf,0x7e,0xb4,0x7c,0xc1,0x80,0x73,0xf5,0x3b,0x85,0xae,0x36,0x1a,0xdf,0x00,0x52,0xb7,0x70,0xa9,0x42,0x79,0xd2,0x26,0xf8,0x3b,0xeb,0x9f,0x2e,0x15,0x33,0xc8,0x85,0x2d,0x63,0xb2,0x89
+.byte 0x24,0x8e,0xfd,0xe6,0xdf,0x01,0x80,0x8b,0x27,0xe3,0x7e,0x17,0xc2,0x4e,0x26,0xa2,0xe1,0x95,0x81,0x3a,0xdd,0x2a,0xf4,0x75,0x21,0x64,0x11,0x04,0x5e,0x00,0x39,0xf0,0x08,0x68,0x67,0x09,0xa8,0x9b,0xbe,0xb7,0x62,0x0e,0xa8,0x69,0xcd,0x4e,0xaf,0xc8,0x4f,0x92,0x3d,0x8e,0x35,0x60,0x70,0xb3,0xda,0x2f,0x38,0x80,0x6f,0x5e,0xcc,0x3b
+.byte 0x6e,0x05,0x26,0x14,0x9d,0x36,0x72,0x7d,0x09,0xb8,0xb7,0xa1,0xf7,0x5f,0xb3,0xe1,0xd6,0xc5,0x54,0x4e,0x80,0x4d,0x06,0x8f,0x84,0xbb,0xb6,0x65,0x87,0x2c,0x19,0x4a,0x74,0x3c,0x34,0x62,0x32,0xad,0x4c,0x06,0xa3,0xbb,0xfb,0x4f,0x4f,0x9d,0x91,0x84,0x63,0x75,0x34,0xcc,0x6b,0x00,0xa1,0x5a,0x63,0x03,0x8d,0x1e,0xdb,0xa4,0x0c,0xe6
+.byte 0x3d,0xd1,0x94,0x77,0xd8,0x77,0x8c,0x39,0x48,0x78,0xb1,0xb5,0xa2,0x41,0xd0,0x6d,0x27,0x20,0x4a,0x41,0x88,0xa5,0x78,0x3f,0x51,0x72,0x8c,0x80,0xe7,0x37,0x81,0x8b,0x06,0x46,0x58,0xab,0x23,0x85,0x47,0x89,0x39,0xf9,0x14,0xfe,0xbf,0x07,0x7c,0x47,0x8e,0xcc,0xd7,0x08,0xfe,0x5d,0xee,0xf9,0x94,0xa2,0x83,0x81,0x8a,0xfd,0x0f,0x9a
+.byte 0xa7,0xe4,0x59,0xad,0xe6,0x1f,0xed,0x5d,0xe4,0x20,0xd6,0x2f,0xa7,0xd3,0xcf,0x5b,0x18,0x6d,0x24,0x79,0x66,0xd9,0xaa,0x44,0xfa,0x8d,0x74,0x60,0xcc,0x7e,0xbf,0x4f,0x0e,0xe3,0x9c,0xa5,0xe4,0xff,0x14,0x05,0xff,0x24,0x62,0x94,0x00,0x7a,0x58,0xe5,0x0b,0x3b,0xe8,0xee,0xe1,0x4d,0x4e,0x34,0x26,0xba,0x70,0x10,0x5e,0x14,0x4f,0xa5
+.byte 0x7a,0x9e,0x7b,0x28,0x99,0xbe,0x94,0x4a,0xcb,0x8d,0x65,0x60,0xa0,0x6e,0xc7,0xbc,0x51,0xba,0xb5,0x07,0x97,0x25,0x42,0xb7,0x2c,0x0e,0x9b,0xfc,0xfb,0x35,0x6f,0x74,0x10,0xce,0x25,0xdb,0xa9,0x7c,0x11,0x61,0x43,0xf9,0x19,0xbf,0xe2,0x21,0xa3,0x57,0x3c,0x41,0x0a,0x15,0x4e,0x7f,0x6b,0x38,0xb6,0x73,0x41,0xa2,0x4e,0x8e,0xb9,0x44
+.byte 0xee,0x2a,0x2e,0x0a,0x9e,0x85,0xf1,0x6e,0x93,0x72,0x42,0x50,0x55,0xe1,0xc6,0x18,0x11,0x92,0xf7,0xbf,0x05,0xd8,0xb6,0xbc,0x2b,0xd5,0xe0,0xd3,0x9b,0x64,0xc4,0xdd,0xb0,0xb3,0x46,0xd8,0xfb,0x73,0xea,0xed,0x06,0x96,0x16,0x9e,0xf6,0xc6,0xe8,0xbe,0xae,0x00,0x2f,0x5a,0xf4,0x1f,0xb5,0x28,0x7c,0x75,0x76,0x68,0x74,0xa2,0x57,0x0e
+.byte 0x6c,0xfa,0x2d,0xbe,0x34,0xf1,0xc9,0x2b,0x83,0x58,0xe7,0x2a,0x87,0xdb,0x47,0xae,0xc7,0xc2,0x78,0x50,0xed,0x20,0xdf,0x30,0x38,0xdd,0x84,0xa9,0x6b,0x00,0xb1,0x7b,0xbb,0x69,0xd3,0xbe,0xed,0x3d,0x99,0x6e,0x39,0x42,0x75,0x8a,0x6c,0x7c,0xa5,0xcf,0xc9,0xcf,0x11,0x14,0xb3,0xaf,0x72,0x00,0x3b,0x58,0xdd,0x2a,0xe1,0x44,0xa7,0x51
+.byte 0x15,0x05,0x1b,0x18,0x49,0x07,0x90,0x4c,0xbc,0x99,0x88,0x64,0xf6,0x14,0x0b,0x99,0xc0,0x84,0xc9,0x06,0x32,0xf0,0xec,0x19,0x8d,0x4a,0xb8,0xdb,0x32,0xb4,0x5e,0xc9,0x0c,0x24,0xf0,0xad,0xdc,0xf4,0x32,0x3b,0xf6,0x68,0x28,0x4a,0xa5,0x5b,0xb7,0xd5,0x00,0x35,0xf8,0x56,0x03,0xa3,0x86,0xa0,0x8a,0x1b,0x53,0xb5,0x58,0x73,0x8c,0xf9
+.byte 0x2b,0xd8,0xcb,0x88,0xe7,0x7e,0x79,0x68,0x13,0x5d,0x7d,0x23,0xc4,0xec,0x9c,0xf4,0x95,0x97,0xbf,0xb2,0xd9,0xdf,0x38,0xe8,0xa2,0x79,0xf7,0xe8,0x36,0x80,0x59,0x3f,0x58,0x2f,0xf7,0xf9,0x32,0x73,0xdd,0xd6,0x9e,0x20,0x1a,0x29,0xab,0xc1,0x77,0x14,0x71,0x3c,0xde,0x90,0xe9,0xea,0xdb,0x78,0x14,0xa3,0x89,0x43,0xf1,0x42,0x43,0x3f
+.byte 0xe7,0x67,0x32,0x3d,0x65,0xdc,0xa4,0x79,0x8f,0x81,0xa5,0xb0,0x94,0x0f,0x96,0xf5,0x82,0xcc,0x47,0xc1,0x29,0x39,0x70,0x7a,0xf3,0x49,0xf5,0x09,0x43,0x50,0x56,0xd6,0xea,0xc4,0x35,0xa5,0xa2,0x8a,0xbe,0xc0,0xe3,0xfe,0x4c,0xa2,0x83,0x09,0xab,0x72,0x8a,0x96,0x7c,0x01,0x70,0xb2,0xd5,0x62,0xb7,0x67,0x59,0x36,0xcf,0x56,0x2d,0x14
+.byte 0xc2,0x69,0x49,0x52,0x4e,0x7c,0x45,0x4b,0xef,0xcd,0x79,0xcd,0xe6,0xa6,0xd0,0xbe,0x10,0x1e,0x18,0xca,0xe7,0x8d,0x65,0xb1,0x17,0xc7,0x2c,0xc8,0x2a,0x5b,0xe8,0x08,0x11,0x15,0xea,0xa9,0x43,0x7b,0x70,0x04,0x0c,0xc8,0xca,0x67,0x18,0x18,0x12,0x16,0xc2,0xd3,0xf2,0x0a,0xc7,0x01,0xa9,0x97,0x61,0xf6,0xa7,0x44,0x9a,0xb3,0x67,0xdc
+.byte 0x07,0x63,0x02,0x02,0x2e,0x58,0x80,0xa9,0x95,0xa0,0x8e,0x86,0xb6,0xf6,0x14,0x13,0x0a,0xea,0xf1,0x6d,0xd9,0x98,0x37,0x12,0xdb,0x67,0x1b,0x13,0x8e,0xd1,0xfa,0x2f,0x98,0x53,0x3c,0xd7,0x56,0x55,0x42,0x2f,0x64,0x59,0xd5,0xb7,0x6e,0xa8,0x6c,0xc2,0x40,0x11,0xb5,0xa1,0xc0,0x5c,0x45,0x87,0x91,0xb1,0x1c,0x4e,0xa9,0xf6,0x72,0x57
+.byte 0x50,0x8e,0xc5,0xfc,0x64,0x59,0x52,0x82,0xb0,0x75,0xc3,0x98,0xff,0x32,0xce,0xa4,0x39,0xb8,0xa4,0x61,0xb4,0x53,0x3f,0xc7,0x80,0x35,0x48,0xaf,0xa8,0x67,0xfe,0xa1,0x1d,0x3c,0x95,0xb5,0x63,0x1c,0x3a,0x2c,0x68,0xfa,0x98,0x8b,0xa7,0x19,0x29,0x79,0xe4,0x9b,0xff,0x8f,0x15,0x9c,0x65,0x60,0xd2,0xa9,0x4f,0xd5,0xb2,0x57,0xff,0x32
+.byte 0x4c,0x96,0x82,0x6b,0x09,0x6c,0x74,0x55,0x00,0x5c,0x68,0x68,0xd5,0x9b,0xd4,0xdf,0x3d,0x2d,0xb9,0x0b,0xf5,0x2c,0x87,0x35,0x2a,0xc0,0xc0,0xc9,0xd7,0xa1,0x76,0x30,0x82,0x46,0xd8,0x24,0x6e,0x27,0x02,0x71,0x57,0x5c,0x43,0xf2,0x54,0xd6,0xea,0xd7,0x67,0x7d,0xac,0x76,0x91,0xf1,0x26,0x6e,0xaf,0x87,0x05,0x06,0x48,0x57,0xbd,0x67
+.byte 0x1d,0xd7,0x07,0xcd,0x41,0x02,0x49,0x6c,0x8c,0xe1,0xe3,0x00,0x78,0xbe,0x28,0x84,0x16,0x44,0xb1,0x0d,0x6d,0x40,0xfe,0xab,0x7e,0xf6,0x6b,0xff,0xfa,0xe1,0xc7,0x9d,0x56,0x62,0xf1,0x68,0xba,0x76,0x34,0x8f,0x54,0x20,0x49,0xf5,0xa2,0x54,0x52,0xca,0x42,0xed,0x4f,0x9b,0xdf,0xcf,0xfb,0xf6,0xee,0x12,0x29,0x43,0x8f,0xf9,0xfd,0xf4
+.byte 0x8a,0xbf,0xae,0x50,0xf2,0x8f,0x46,0xa2,0x97,0x3b,0x2d,0xfb,0x84,0x98,0x61,0xae,0xba,0x36,0x25,0x30,0x8b,0xdc,0xd3,0x08,0x8e,0x7e,0xfa,0x91,0xac,0x4b,0x29,0x6d,0x0c,0x81,0x0f,0xc7,0xc8,0xc4,0x5c,0x48,0x68,0xa7,0x83,0xf3,0x6a,0xc8,0x0d,0x3a,0x9b,0x46,0xb9,0xe1,0x31,0xac,0x3c,0x12,0xa2,0xae,0x74,0xb8,0x91,0xed,0x63,0xba
+.byte 0x40,0xb8,0x57,0x58,0x1f,0x1d,0x1a,0x2d,0x98,0x60,0xe8,0xe1,0x84,0x16,0xe5,0xf0,0x1e,0x35,0x58,0x31,0xc3,0x0c,0x49,0x6e,0x13,0x2c,0xac,0x14,0xc2,0xde,0x5f,0x62,0xe5,0x37,0x5b,0x1d,0x71,0x8b,0xc3,0x3d,0xd8,0xaf,0x3d,0x0a,0xef,0x80,0x3c,0x9a,0x4b,0x0a,0x3f,0x0e,0x8f,0x90,0x8f,0x73,0x2e,0xff,0x8e,0x8e,0x87,0xf8,0x46,0x52
+.byte 0xed,0x7d,0x76,0xf3,0xff,0xaf,0x5e,0x62,0x87,0x16,0x9c,0xa6,0x12,0x39,0x13,0xc3,0x62,0x4b,0xd2,0x21,0xa2,0x43,0xfa,0x4c,0x5d,0x75,0x61,0x64,0x5b,0x23,0xcd,0x76,0x86,0x81,0xd6,0xa6,0x25,0xe1,0xc1,0xc6,0x04,0x5e,0x65,0xfe,0x89,0x0e,0x67,0x02,0xeb,0xb9,0x26,0x88,0x81,0x97,0x1e,0x62,0x4e,0xf4,0x4e,0x0d,0xef,0xac,0xcf,0xd7
+.byte 0xc5,0x9b,0x9d,0x3a,0xa2,0x71,0xd7,0xd4,0x72,0xa6,0x66,0x90,0xe2,0xf7,0xb7,0xec,0xe4,0xca,0x9f,0xd1,0xd8,0x5a,0x65,0xff,0x39,0x65,0x78,0x47,0x1c,0x64,0xab,0x1a,0x35,0x2e,0xe2,0xf7,0x67,0xa4,0x7f,0xd5,0xea,0x04,0xee,0x4d,0xf6,0x29,0xe4,0xcd,0x1b,0xcf,0x0a,0xef,0xa1,0x14,0x90,0x0e,0xed,0x1a,0x10,0x63,0xa0,0x56,0x11,0x05
+.byte 0x57,0x94,0x3a,0x11,0xff,0xe0,0xc7,0x33,0x19,0x67,0xd7,0xd0,0xcc,0x76,0x52,0x5d,0x9e,0x10,0xe7,0xd6,0xaa,0x13,0xe8,0x8d,0xa5,0x60,0x66,0x98,0x26,0x11,0x66,0x0f,0x2d,0x4d,0xec,0x28,0x93,0x17,0x3a,0x6f,0x99,0x70,0x00,0x2b,0x66,0xb3,0x49,0x69,0x3c,0x3b,0x03,0xb8,0xc0,0x9b,0x1c,0x96,0xd9,0xd1,0xe1,0x6d,0x8f,0x45,0xce,0x22
+.byte 0xcf,0x48,0x61,0x85,0x10,0x1b,0x3f,0x2b,0x74,0x48,0x61,0x68,0x63,0xe3,0xa3,0x83,0xe2,0xcc,0xa0,0x6d,0x82,0x8b,0xe5,0x42,0xab,0xa7,0x62,0x6c,0x05,0xb4,0x7b,0x65,0xf5,0xd8,0x0b,0x7d,0x61,0xd6,0x5c,0xf0,0xc0,0x03,0x0c,0x51,0xec,0x06,0xad,0x79,0x8c,0x62,0x0c,0xf5,0x8e,0xcb,0x97,0x62,0xf9,0x3e,0x39,0x8d,0x3c,0x2e,0xd1,0xc0
+.byte 0x5f,0x98,0xea,0xb5,0x26,0x19,0xf5,0x93,0xbb,0xf8,0xd4,0xd5,0x35,0xee,0x1f,0xf8,0x71,0x81,0x0e,0xe6,0xe9,0xf3,0x2c,0x80,0xa8,0x15,0x35,0x1e,0xda,0x07,0x41,0x39,0x8a,0x19,0x1f,0x70,0x99,0xbe,0x3d,0x5c,0x1f,0xf6,0x72,0x85,0x73,0xea,0xb5,0x61,0xbb,0x77,0xaa,0xef,0xc7,0x2c,0xed,0x1e,0xa6,0xfd,0xc9,0xde,0xa9,0x82,0xba,0x19
+.byte 0x04,0x17,0xf7,0xa1,0x59,0x5c,0x7d,0x8d,0xe7,0x1c,0x89,0x7f,0xe1,0x02,0xd3,0xb0,0x46,0x6c,0xcf,0xde,0xf0,0x0b,0x00,0x43,0x8d,0xd6,0xe6,0xf7,0xc8,0x83,0x20,0x77,0x8b,0x9f,0x14,0xea,0x2b,0xb2,0xd2,0x41,0xfd,0x96,0x7c,0x0d,0x05,0xb9,0x5a,0xa0,0x83,0x50,0xde,0x0e,0xc6,0xa6,0x29,0x55,0x12,0x8e,0x2f,0x0a,0x5c,0xcd,0xae,0x92
+.byte 0x76,0x84,0xc9,0x8a,0x81,0xe5,0x3e,0xf0,0xe6,0x5b,0xe4,0x21,0xfb,0x4c,0xb6,0x0a,0x7b,0x7f,0x7e,0xab,0xdc,0x15,0x44,0xf8,0xeb,0x23,0x21,0x31,0xef,0x98,0xec,0x84,0x69,0x34,0x29,0x99,0x03,0x8a,0x12,0x8e,0x28,0xdd,0x00,0x6a,0xa3,0xe7,0x08,0x17,0x35,0x2a,0x42,0x8a,0xcb,0x4a,0x7b,0x1c,0xd2,0x74,0x4f,0x6a,0x8c,0x85,0x1c,0xd6
+.byte 0x05,0x3a,0xfd,0xdf,0x1c,0xa5,0x59,0xbb,0xdb,0xe3,0xa7,0x59,0xb1,0x67,0x3d,0xa4,0x71,0x4d,0x6c,0x99,0xe0,0xa7,0x8c,0xfa,0x96,0x1f,0x8d,0x0c,0xa7,0xc8,0xce,0xa3,0xbf,0x4d,0xc7,0xa9,0xb7,0xfd,0x04,0x58,0xcd,0xd7,0x20,0xb1,0xb9,0xf5,0x06,0x70,0x1b,0xdd,0xf4,0x1c,0xdc,0x32,0xa0,0x90,0x0d,0xb2,0x91,0x14,0x05,0xa2,0xf7,0xb7
+.byte 0xb6,0xd2,0xf1,0x30,0x75,0xcc,0x78,0x0d,0x56,0x70,0x64,0x02,0xe7,0x83,0x97,0x65,0x63,0x4b,0x64,0xff,0x8b,0x62,0xc9,0xa4,0x6e,0x96,0xbf,0xd3,0xeb,0x74,0xc5,0x1f,0xdb,0x1c,0xf3,0xca,0x54,0x7d,0x8d,0xd9,0xec,0x18,0xd8,0x99,0xd1,0xa5,0x70,0x8a,0xc5,0xdc,0xa0,0xcb,0xb7,0x52,0xe3,0xe6,0x88,0x0c,0x5a,0x42,0xde,0xe6,0xd8,0xc4
+.byte 0x39,0xe5,0x6c,0x0b,0xd4,0xa5,0x9b,0x51,0xa2,0x3d,0xc5,0xc7,0x17,0x17,0xb8,0xd8,0x09,0xad,0xeb,0x67,0x47,0xe0,0x88,0xef,0x1d,0x22,0x18,0x25,0xdc,0x32,0xb2,0xf7,0x47,0xc5,0xb3,0x0b,0x57,0x01,0x67,0xac,0xc3,0x9e,0xb0,0xa8,0xd7,0xce,0xb2,0xcd,0xea,0x3b,0x61,0xbb,0x24,0xad,0x91,0x7b,0xa2,0x9a,0xb3,0x63,0x56,0xe2,0x9d,0x69
+.byte 0x9e,0xd7,0x5f,0x5f,0x47,0x9f,0xae,0xf6,0x09,0xb1,0x9e,0x22,0x35,0xaa,0x55,0x0b,0xfc,0x70,0x96,0xfd,0x53,0x8a,0x37,0xaf,0x2d,0xa2,0xc5,0x49,0x5b,0x1e,0x32,0x47,0x9d,0xc3,0xb4,0x46,0xf3,0x54,0xdb,0x3f,0xb9,0x69,0x9e,0x8b,0xad,0x11,0xb2,0x68,0xe8,0x27,0x0d,0xca,0x33,0x1c,0x86,0xb2,0x2c,0xaa,0xc2,0x15,0xf9,0x6e,0xed,0x30
+.byte 0x71,0x08,0xeb,0x93,0x1d,0x16,0xc5,0x34,0x73,0x65,0x7a,0x19,0x2b,0xa7,0x3d,0xe6,0x88,0xb5,0x0f,0xa0,0x92,0x91,0x22,0x9d,0x01,0xf3,0xf4,0x57,0x9f,0xd9,0x23,0x1b,0xbd,0xd7,0xd5,0x11,0xc9,0x24,0xf6,0x36,0x30,0x30,0x69,0x95,0x17,0x48,0xf9,0x76,0x71,0xef,0xef,0xc0,0x00,0x9c,0x7d,0x87,0xdc,0xdc,0x1a,0x32,0x82,0x7a,0x13,0xc2
+.byte 0x9f,0x53,0xc2,0x7d,0x4d,0xbf,0xbe,0xf5,0x9d,0xc8,0x81,0x5b,0x81,0xe9,0x38,0xb6,0xa5,0x40,0xa5,0xd4,0x6f,0x0c,0xea,0xf1,0x52,0x59,0x37,0x3b,0xc2,0xb2,0x5f,0x10,0xdf,0x22,0xf7,0x77,0xe8,0x66,0xb0,0x97,0x91,0x5f,0xc2,0x18,0x8d,0x17,0x40,0xd1,0x6d,0xde,0x6e,0xf0,0x6c,0x1f,0x4e,0x9b,0x15,0x83,0x9b,0x70,0x21,0x2b,0x98,0x46
+.byte 0xbf,0xa5,0x82,0xac,0x63,0xac,0xd7,0x52,0xec,0x2c,0xf2,0xe4,0xe0,0x2a,0xbf,0x7e,0xa2,0xd2,0x9d,0x0d,0xf2,0x9b,0x79,0x5f,0x22,0xb0,0x6d,0x22,0x2e,0xed,0xe2,0x4f,0x73,0xc5,0x89,0xcc,0x4a,0xaa,0x9a,0x7e,0xab,0x95,0x25,0xa7,0x9d,0xf4,0xc2,0xe8,0x42,0x6e,0xd3,0xf9,0x25,0x54,0xb9,0x1f,0xa9,0x16,0x9c,0x22,0x7a,0xf0,0xa6,0xac
+.byte 0x8b,0x9d,0xe6,0xe3,0x93,0x4e,0x65,0x3a,0x39,0x3e,0xf5,0x41,0x38,0x02,0xb7,0x37,0xd4,0xdc,0xea,0xc5,0x53,0x0e,0x52,0x85,0x96,0xc0,0xa7,0x21,0xbf,0xe7,0xca,0x12,0x1c,0x59,0x33,0xe4,0xd5,0x70,0x6b,0x25,0x54,0x24,0x58,0x48,0x1b,0x65,0x6e,0x7e,0xe6,0x84,0x39,0x38,0xbc,0xdf,0x96,0xbc,0x39,0xdf,0x8f,0x36,0x9e,0x3a,0xda,0x02
+.byte 0x86,0xe2,0x9f,0xb7,0x3a,0xd0,0xdb,0xc2,0x5d,0xb0,0xde,0x31,0x73,0x43,0xe5,0x4b,0x6a,0xa1,0x6d,0xaa,0xca,0x34,0xfa,0xa9,0xaf,0xec,0x05,0x2a,0xdb,0x82,0xa1,0xdc,0xdc,0x3d,0xb5,0x92,0x42,0x28,0xdc,0x93,0xec,0xab,0x9b,0x75,0xae,0x7c,0xbf,0x9b,0x25,0x01,0xb1,0xc8,0x3b,0x47,0xb6,0xfd,0x11,0x6f,0x4b,0xaa,0x6f,0xdf,0x1f,0x15
+.byte 0xc2,0xf3,0x87,0x4a,0xaf,0xf7,0x41,0x64,0x5a,0x19,0xa0,0xc4,0x4f,0x58,0xe8,0x19,0xe0,0x84,0x44,0xc7,0x65,0x0c,0xf1,0xff,0xcb,0x73,0xb2,0xac,0x25,0x28,0xe1,0xd4,0x03,0x16,0x3c,0x1c,0x24,0x3a,0xfc,0x2b,0x7e,0xcb,0xa3,0xba,0xb7,0x78,0x87,0xbe,0x95,0x06,0x27,0xb8,0x16,0x72,0xe4,0x24,0xa6,0x5d,0xe7,0x5e,0x93,0xa9,0x96,0xfd
+.byte 0x01,0x1d,0xb8,0x7c,0x85,0x3c,0xe3,0xc9,0x56,0x68,0xcd,0xd9,0x79,0x97,0x50,0x39,0xfe,0x96,0x93,0x50,0xae,0xde,0xcd,0x8d,0xa0,0x38,0x31,0xba,0xca,0x21,0xff,0x19,0xea,0x44,0x95,0x4d,0xba,0xae,0xe2,0x62,0xd2,0x82,0x60,0x0c,0xb9,0x10,0x40,0x9a,0xaf,0x9b,0x17,0xcd,0xf3,0x26,0xec,0x38,0x13,0x18,0xd3,0xf2,0xd2,0x11,0xa6,0xc3
+.byte 0x3c,0x3b,0xe8,0xa0,0x49,0xba,0x4e,0x07,0xec,0x44,0x75,0x1c,0xc9,0x2f,0x68,0x64,0x02,0x1d,0x14,0x35,0x80,0xd8,0xa8,0x53,0xde,0x44,0x65,0x72,0x37,0x28,0x61,0x5f,0xa1,0x58,0xea,0x17,0xb3,0x89,0x25,0xf7,0xcb,0x87,0xe6,0x43,0xc5,0xc3,0xf3,0xd1,0xf5,0x1f,0x18,0xe9,0xd1,0x05,0xd9,0x85,0x38,0xf0,0x5e,0x26,0x35,0xf2,0x72,0x92
+.byte 0x34,0x2f,0xea,0xdd,0x7b,0x64,0xac,0x1d,0x78,0x41,0x56,0x83,0x7d,0x83,0x83,0x59,0xbe,0x9f,0x81,0x90,0x00,0x1f,0x04,0xd8,0xd8,0x8e,0xd9,0xeb,0x12,0x16,0x96,0x81,0x61,0x96,0xe8,0x7b,0x36,0x7b,0x26,0x9b,0x43,0x1e,0x0e,0xc2,0x59,0xdf,0x8f,0xb4,0x91,0x74,0x2e,0x1e,0x6d,0x20,0x70,0xe7,0x3c,0x39,0xe3,0xa8,0x62,0x66,0x32,0x63
+.byte 0x7d,0x89,0xb6,0xad,0x69,0x38,0x2c,0x21,0xe5,0x02,0xcc,0x93,0x8a,0x65,0x71,0x65,0x02,0x5c,0xeb,0xc9,0x70,0xf3,0x81,0xce,0x65,0x37,0x22,0xb7,0x47,0x3c,0xd6,0x3d,0x29,0x65,0x29,0xba,0xf9,0xae,0xd9,0x1f,0xd7,0x38,0x88,0x95,0xa9,0x66,0xa8,0x77,0x75,0x4a,0xf9,0x2e,0xd9,0x63,0x75,0x80,0x90,0x82,0x39,0x8b,0x21,0x58,0xf4,0x2e
+.byte 0x2d,0x1f,0x7f,0xcb,0x33,0xdb,0x9b,0x9b,0x31,0x21,0x4e,0x6e,0xdb,0x0f,0x1f,0x69,0x22,0x97,0x69,0xd7,0x7f,0x2e,0xd7,0xce,0x6c,0xe4,0xc0,0xe7,0x27,0x82,0xe6,0x8a,0xf8,0xae,0x46,0x2d,0x5a,0x45,0x82,0xce,0xb6,0x49,0x84,0x15,0x4a,0x54,0xa6,0x76,0xf3,0x29,0x28,0xc0,0x05,0x82,0xae,0x7d,0x85,0x41,0xb0,0x87,0x67,0x44,0x37,0x46
+.byte 0x3e,0x47,0xbc,0x00,0x7c,0x05,0xd3,0xdc,0x9a,0x31,0x49,0xf8,0x48,0x99,0x57,0x4a,0x2b,0xe7,0xcf,0xb2,0xa7,0xf0,0xcf,0xc7,0xf5,0xfd,0x73,0x59,0xf1,0xe4,0x86,0xb5,0x5d,0xce,0x6d,0xbf,0xc6,0xe5,0xa9,0xca,0x75,0xe9,0x69,0xe6,0x09,0xab,0x66,0x17,0x09,0xe9,0xbc,0x14,0xd8,0x6f,0xe9,0xc2,0x87,0x39,0x2f,0x87,0x1e,0xb8,0x16,0x08
+.byte 0x10,0xee,0x1c,0x2f,0x47,0x7d,0xa3,0x5b,0x1f,0x1f,0x5d,0x95,0xd0,0xa4,0xbb,0x08,0xc2,0x47,0xab,0x46,0x3c,0xbb,0xbe,0x3a,0x64,0x82,0x40,0x08,0x75,0x03,0x02,0x6e,0x6a,0xab,0x6b,0xd4,0x90,0xa7,0x28,0x7a,0xb4,0x8b,0x1f,0x6b,0xcc,0x16,0x30,0x16,0xf5,0xc6,0xd8,0x4a,0xed,0xc9,0xc7,0xac,0x0f,0x75,0x1b,0x13,0xe3,0x45,0x6d,0x22
+.byte 0x7e,0x3d,0x59,0x55,0x87,0x8d,0x04,0xee,0x85,0xac,0x98,0x0c,0x52,0x5b,0xe6,0x92,0x04,0x31,0xdf,0x7c,0x44,0x4d,0x06,0xbe,0xb2,0x5a,0x95,0xef,0x29,0x75,0x9b,0xb2,0xe7,0xb8,0x83,0x18,0x82,0x23,0x4e,0x66,0xe5,0xdd,0x47,0xa1,0x6b,0x33,0x4e,0x9c,0x13,0x0e,0x0a,0x8a,0x5c,0xba,0x7b,0x2f,0x6c,0x72,0x78,0x86,0xd2,0xf8,0xbd,0x1b
+.byte 0x4b,0x9e,0xe0,0x99,0x46,0x7f,0x24,0x0f,0x1b,0xda,0x85,0x87,0xe9,0xda,0x96,0x25,0xc6,0x81,0x77,0x8b,0x56,0xae,0x7a,0x9c,0x47,0x34,0xe1,0xac,0xf2,0xba,0x52,0x95,0xf8,0x56,0x26,0x66,0xf0,0x53,0xcc,0xc4,0x6f,0x46,0x94,0x10,0x22,0x69,0xb1,0x93,0x7b,0x51,0xb7,0xb8,0xdd,0x42,0x67,0x51,0x6d,0x9c,0xb2,0xbd,0xdb,0xdd,0x19,0xa2
+.byte 0x25,0x13,0xfe,0x42,0xca,0x36,0xeb,0xce,0x15,0x41,0xe7,0x35,0xce,0xa8,0x45,0x56,0x58,0x9f,0x46,0xcf,0x11,0xe7,0xcc,0x40,0x54,0xe4,0x85,0x0d,0x73,0x36,0x7e,0xae,0x38,0x8c,0x56,0xab,0xf0,0x5f,0x5c,0xff,0x14,0x9b,0x46,0x1b,0x35,0xbd,0x03,0x0e,0x2f,0x9e,0xde,0xd8,0x82,0xfe,0xa0,0x09,0xb4,0xb4,0xbd,0x58,0xc0,0xe2,0x01,0xb1
+.byte 0xca,0x5c,0x3d,0xc3,0x18,0x5e,0xc1,0xee,0x61,0x60,0x00,0xca,0x1e,0xf3,0x71,0xd8,0x15,0x37,0xf0,0x2e,0x13,0xa0,0xf7,0xac,0x73,0x4b,0xfb,0x6a,0x27,0x6b,0xde,0x69,0x3d,0x19,0x36,0x4b,0x63,0x55,0xae,0xd1,0x2b,0x66,0x69,0x0d,0x64,0xa7,0x86,0xfd,0x3a,0xb8,0xe6,0x87,0xaa,0x32,0x5f,0xbc,0xa7,0x67,0xde,0x7a,0xe0,0xdd,0xff,0x57
+.byte 0x2c,0xc9,0x25,0x92,0x03,0x91,0xa8,0x0e,0x39,0xe4,0x9a,0xdf,0x21,0x29,0xc7,0xbc,0x93,0x01,0x2a,0x02,0xd8,0xaf,0xbc,0x20,0x57,0xc7,0x37,0x77,0xa7,0xad,0x5e,0x15,0x20,0xcf,0x4a,0x3c,0x22,0x1b,0x92,0xa9,0x05,0x91,0x70,0xb3,0x88,0x4e,0x97,0x58,0xf7,0x33,0x1a,0x05,0x33,0x57,0xdc,0xbb,0x2a,0xba,0xd0,0x22,0xac,0x40,0xbe,0x60
+.byte 0xa2,0x89,0xe6,0x6c,0xf3,0x5d,0xef,0x58,0xb4,0x7c,0x4a,0x28,0xb8,0x16,0xd2,0xe0,0x49,0xf5,0xe8,0xaf,0x84,0x39,0xae,0x1e,0xa2,0x34,0x67,0x42,0x26,0x31,0x93,0x87,0x7a,0xd5,0xde,0x79,0xdb,0x4c,0x7e,0xcf,0x1f,0xef,0x9a,0x4c,0xb9,0x70,0xe2,0x72,0x9b,0xcd,0x30,0xe5,0xf1,0x84,0x44,0x5a,0xff,0x36,0xa2,0x37,0xe7,0x49,0x78,0x63
+.byte 0xbe,0xe0,0x90,0xdf,0xef,0x9e,0xf3,0x55,0x9e,0x8a,0x51,0xe8,0xa3,0x32,0x2d,0xed,0xc8,0x99,0xf6,0x92,0xf9,0x62,0x74,0xa7,0x8d,0xcf,0xa5,0x09,0xb3,0x43,0xb9,0x18,0x70,0x59,0x4f,0xd2,0x7f,0x7e,0xce,0x1e,0x7d,0xe8,0xa9,0xb7,0x29,0x0f,0x86,0x8a,0xac,0x22,0x41,0x98,0xb2,0xc3,0x48,0x3b,0x60,0xcb,0x7b,0x1d,0xc3,0x5e,0x19,0x5b
+.byte 0x31,0x57,0x12,0x09,0x41,0x54,0xf8,0x01,0x70,0x02,0x03,0x8a,0x6e,0x8e,0x5b,0x23,0xf3,0xd4,0x13,0xbf,0x51,0xba,0xf9,0x2d,0x6c,0xb9,0xb3,0x90,0xd0,0xa3,0x76,0xfb,0xef,0x85,0x17,0x8b,0x2c,0x05,0xa3,0x06,0x0a,0xaa,0xdd,0xbf,0xd4,0xcc,0xe4,0x96,0x19,0x7f,0x51,0xf6,0x7e,0xa1,0x2c,0x14,0x1c,0x21,0x99,0x28,0x3a,0x0e,0x36,0x1b
+.byte 0xf1,0xd7,0x3e,0x29,0x94,0xa6,0x03,0xf7,0xe5,0x6f,0x1b,0x56,0xc8,0xfb,0x2d,0x4f,0x12,0x2b,0xc7,0x3a,0xec,0x5e,0xc8,0x88,0x1b,0xd8,0x65,0x21,0x04,0x0e,0xe2,0x95,0x6d,0x62,0xea,0xeb,0xee,0xbe,0x47,0x0a,0x90,0x26,0xe3,0x85,0xd7,0x1d,0xb5,0xd5,0x56,0x8b,0xc0,0x2f,0x7f,0x01,0xc8,0xac,0x90,0xc3,0x2d,0x10,0xf2,0x11,0x30,0x0c
+.byte 0xa9,0x4d,0x13,0xde,0x65,0x6d,0x34,0x68,0x5d,0xad,0x3f,0x7a,0x56,0x3a,0x1f,0xb9,0xd6,0x7b,0x8f,0xe8,0x42,0x2a,0x16,0xb6,0x3f,0xf2,0x4f,0x14,0x8e,0x8e,0x29,0x88,0x68,0x1b,0x10,0x80,0x80,0x47,0x36,0xaa,0x82,0xf5,0xa8,0x97,0xc4,0xcb,0xc2,0xef,0xaa,0x9f,0xdc,0x96,0x4f,0x1f,0xaf,0x39,0x71,0x55,0x8f,0x3c,0xbf,0x26,0x91,0x46
+.byte 0x38,0x59,0xa7,0xd1,0xb5,0x87,0xd6,0x81,0x71,0x17,0x83,0x05,0x40,0x9c,0xf3,0x33,0x4b,0x09,0x06,0xb1,0x69,0xfb,0x43,0x1f,0xef,0x9a,0xfe,0xc3,0x4e,0x4e,0x25,0xe1,0x3a,0xfb,0xf9,0xc9,0x97,0xe2,0x1c,0xa1,0x9a,0x06,0x6e,0xbb,0x16,0x4a,0x9f,0xf4,0x87,0x31,0x38,0x78,0xae,0x77,0x4c,0x42,0x28,0xc4,0x63,0xc0,0x49,0x37,0x4f,0xf9
+.byte 0xeb,0x31,0x0d,0x3e,0x0c,0x8a,0xb7,0x17,0xa7,0x90,0x26,0xc2,0xea,0xa5,0x9d,0xe4,0x4d,0xc6,0x3a,0x33,0x2d,0x47,0x42,0x8c,0xeb,0x50,0xea,0xfe,0x74,0x43,0x06,0xcd,0xa5,0xb1,0x49,0xf0,0x98,0x91,0x25,0xf4,0x8d,0x06,0xd1,0xeb,0x56,0x2c,0xf9,0xc4,0x84,0x02,0x9e,0xf2,0x3a,0xfe,0xb4,0x39,0xce,0xee,0x85,0xb6,0x64,0x6c,0xbc,0x1f
+.byte 0xe6,0x86,0x00,0xc3,0xa9,0xb4,0x53,0xdf,0x2d,0x7c,0xc6,0xde,0x2e,0x79,0x25,0x5c,0xbb,0xe5,0xbe,0x33,0xe9,0x58,0x49,0x35,0xbe,0xae,0xbc,0x06,0xdc,0x48,0x9d,0xc3,0x08,0x6f,0xe8,0xb8,0x48,0x67,0xea,0x1c,0x05,0xb4,0xf7,0xe3,0xcc,0xc1,0xb3,0xa8,0x61,0xcb,0xa8,0xf6,0x12,0x52,0x68,0x06,0x36,0x2b,0x15,0x43,0xc9,0x98,0xfe,0xe5
+.byte 0x43,0x11,0x0d,0xc3,0x37,0x38,0x7a,0xcb,0x98,0x14,0xc1,0xaf,0x29,0x36,0x35,0x63,0x74,0x98,0xcf,0x0f,0x44,0xe4,0x6e,0xf7,0x3f,0x6e,0x15,0xe8,0xe9,0x93,0x7b,0x96,0x1b,0x84,0xe7,0x8b,0x83,0x30,0xa1,0xdc,0xc3,0xb8,0x18,0x2f,0xc5,0x34,0xd1,0xa5,0xb9,0xee,0x4a,0x04,0xbf,0x26,0x63,0x29,0xba,0x90,0xb5,0x7c,0x83,0x2b,0x1f,0xe8
+.byte 0x5c,0x9f,0x23,0x40,0x7f,0x9c,0x2f,0x76,0x96,0xd6,0xd5,0x13,0xda,0x5c,0x81,0xa4,0x60,0x60,0xbd,0x5e,0xb3,0xd2,0x2c,0xaa,0x48,0x04,0x74,0x31,0x5d,0xbd,0x46,0xd8,0x8d,0x3f,0x62,0x2d,0x1e,0x17,0x97,0x08,0x71,0x06,0x1b,0x96,0x1b,0xd5,0x80,0xa6,0x41,0x06,0x10,0x6e,0x36,0xd4,0xfb,0x36,0x6d,0x96,0xb8,0x86,0x22,0x34,0xda,0x7e
+.byte 0x6c,0x5f,0x3b,0x95,0x35,0x1b,0x42,0x3c,0xf2,0x9d,0xe3,0xe9,0x3f,0x44,0xd5,0x4c,0x60,0x55,0xae,0xbe,0x4f,0xf2,0xb3,0x84,0xa1,0x79,0xdf,0x86,0xf0,0x8f,0xad,0xa5,0xa3,0x4a,0xea,0x5d,0x68,0x34,0x17,0x4c,0xb7,0xd8,0x6f,0x67,0x22,0x85,0xe2,0x16,0xcf,0xba,0xee,0x92,0xeb,0x95,0x8e,0x67,0xb1,0xf0,0xbb,0xb0,0x34,0x2f,0x58,0x49
+.byte 0x56,0x3e,0x81,0x31,0xb6,0xc3,0x2c,0xee,0x2b,0x85,0x72,0xbc,0xe9,0x20,0xaa,0x4e,0x34,0xb9,0x8b,0x32,0x2f,0x9e,0xd7,0x98,0x63,0x9d,0xfd,0x3a,0xe9,0x30,0x49,0x23,0x4a,0xb4,0xcb,0xc5,0xe5,0x78,0xcd,0x22,0x90,0xce,0x9f,0x35,0x13,0xda,0x8f,0x14,0xdb,0x36,0x0f,0x66,0x87,0x62,0x50,0xde,0x52,0x15,0x10,0x67,0x8a,0x5c,0xdb,0x76
+.byte 0x51,0x7f,0x72,0x9b,0x8e,0x91,0x39,0xc8,0x3c,0x34,0x0f,0x3d,0x92,0x07,0xb8,0xef,0x2a,0x8b,0x59,0xbd,0x82,0xc1,0x5c,0x95,0x93,0x0d,0x3d,0x9b,0x51,0x53,0x38,0x6b,0xd0,0xe3,0x5b,0xbb,0xe5,0x6c,0xc0,0xb5,0x71,0xa8,0xd8,0x7d,0x5d,0xbd,0xfc,0x69,0xcf,0xcc,0xa1,0xcd,0x83,0x9d,0x8f,0x46,0x47,0xe7,0x36,0x19,0x9f,0x4d,0xda,0x9c
+.byte 0xcb,0x2a,0x47,0x58,0x93,0xbb,0x64,0xa3,0x89,0x53,0xbf,0xc7,0xc2,0xe2,0x65,0x0f,0x4f,0x17,0xc6,0x4c,0x15,0xfe,0x4b,0x95,0xb2,0x79,0x4a,0xb8,0xf6,0xae,0xcc,0xba,0xc3,0x5d,0x18,0xb2,0x8e,0xd8,0x6b,0x43,0x1b,0x2f,0xe1,0x36,0xb2,0xa5,0x22,0xa0,0xc7,0xc0,0x26,0x8e,0x48,0x77,0x0c,0x14,0xdd,0xdc,0xde,0x71,0x98,0xce,0xdd,0x61
+.byte 0x85,0xd9,0x23,0x42,0x7f,0x85,0xc8,0x06,0x81,0x3e,0xa2,0x0f,0x1e,0x3e,0xcf,0x33,0xef,0x43,0x6a,0xc7,0xee,0x3f,0x91,0x68,0x32,0x89,0xd9,0xed,0xdf,0x45,0x33,0x10,0xbb,0xd5,0xef,0x1d,0x3c,0x1e,0x26,0x21,0x4d,0x1a,0x06,0x98,0x60,0x71,0x7f,0xce,0x45,0x4e,0xe3,0x3f,0xfa,0xff,0xcd,0xe2,0x92,0x82,0x2e,0x83,0x69,0x9c,0xc6,0x5c
+.byte 0x6e,0xb6,0xec,0x28,0xdc,0x7b,0xdb,0xf3,0x02,0x3a,0xf7,0xad,0x9b,0x7a,0x73,0xb2,0x07,0x70,0x76,0x9d,0xa2,0x11,0xcf,0x89,0xea,0xaf,0x6a,0xd2,0x15,0xeb,0x5a,0x99,0x1a,0x17,0x1d,0xce,0xc0,0x7f,0x50,0x26,0x84,0x07,0xd7,0x7e,0x33,0x27,0x74,0x84,0x18,0x32,0x86,0x32,0x34,0x28,0xe8,0x45,0x21,0xb7,0x26,0x3b,0x11,0xbb,0x9a,0x8b
+.byte 0x46,0x8e,0x27,0xf8,0x62,0xb5,0x98,0x6e,0x03,0xee,0x9e,0xcb,0xbc,0x74,0xbe,0x63,0x7a,0x86,0xe5,0x75,0xeb,0x7f,0x14,0xa6,0x96,0x76,0x5a,0x46,0xa9,0xda,0xf1,0x4e,0x0e,0x90,0x59,0x56,0x4a,0x48,0x2d,0x91,0xbe,0x78,0x5b,0xfb,0xf7,0xea,0xab,0x1c,0xc0,0x0c,0x5d,0xba,0xb4,0x7b,0xc7,0x21,0xb1,0xc9,0xa3,0x20,0xe6,0xae,0xee,0x0e
+.byte 0xf0,0x3b,0x44,0xd6,0xaa,0x57,0x88,0x1f,0x76,0xc8,0x43,0x07,0x91,0x71,0xa5,0xcc,0x04,0x38,0x01,0x13,0xa6,0xea,0x18,0x48,0x8f,0x09,0x8d,0x37,0x8b,0x6f,0x35,0x36,0x51,0xc6,0x30,0xca,0x9e,0xe2,0xaf,0x0c,0x26,0x14,0xe3,0xbf,0xea,0x0e,0x14,0x88,0x97,0xcc,0xf6,0xc1,0x8f,0xad,0xef,0x2d,0xc1,0x0f,0xad,0x45,0x12,0x7a,0xe6,0x37
+.byte 0x97,0xcb,0x34,0x83,0xd8,0xef,0x34,0x2a,0xce,0xd0,0x21,0x8a,0x7d,0x87,0x7a,0x66,0xf7,0x1c,0xdf,0xa0,0x3f,0xa0,0xf6,0xb3,0x24,0xee,0x6e,0x21,0xe9,0xc3,0x73,0xe4,0xd9,0xc6,0xf6,0xf6,0xac,0x25,0xb7,0xb5,0x64,0x7f,0xcc,0x88,0x3e,0x98,0xe1,0xef,0xa9,0xd2,0x03,0x10,0x4b,0xa3,0xbc,0x3c,0x24,0xfc,0x41,0x36,0x30,0x2d,0xca,0x17
+.byte 0x35,0xd6,0x17,0xa2,0x2b,0x48,0xed,0xd3,0xd7,0x18,0x4f,0x45,0xe9,0x59,0x03,0x35,0xa0,0x80,0x75,0x17,0x48,0xd5,0xea,0x07,0x7a,0x6c,0x3f,0x7a,0x2c,0x02,0x0a,0x7f,0xb5,0x17,0xea,0xf4,0xf6,0xb5,0xf4,0x81,0xba,0x69,0x44,0x81,0x6b,0xff,0xb2,0x43,0xae,0x3d,0x37,0x81,0x91,0x3f,0x6a,0x70,0x35,0x2d,0x06,0x9d,0xa8,0xb5,0xb8,0xc7
+.byte 0x19,0x3a,0x5f,0x59,0x79,0x0b,0x62,0x23,0xa4,0x5b,0x46,0x7b,0x17,0x82,0x19,0x87,0xe8,0xdf,0x09,0xb7,0x50,0x7e,0x40,0xe3,0x71,0x2d,0x09,0xde,0x69,0x2e,0x6c,0x35,0x5c,0x44,0xae,0xb7,0x05,0xb8,0x7e,0xb4,0xe4,0x34,0x05,0x1f,0xd2,0x1f,0xe5,0x79,0x2a,0x15,0xf8,0x8f,0x02,0xc7,0xc8,0x1e,0xe6,0x12,0x83,0x08,0x9c,0x7a,0x2f,0xc6
+.byte 0xc9,0x15,0x0f,0x0f,0x0f,0xa9,0x53,0x16,0x19,0x5b,0x74,0x58,0x6c,0xac,0x21,0x72,0x7f,0xa1,0xae,0xbc,0x34,0x76,0xa6,0x9b,0xbe,0x0f,0x13,0x55,0x50,0x5a,0x8b,0x9e,0xb3,0xf3,0x9e,0x8b,0x61,0xbe,0xb4,0x09,0x71,0x61,0xf0,0xd6,0xaa,0x8c,0x0d,0x0c,0x66,0x31,0x88,0xe3,0x71,0x6a,0xb5,0xaa,0xc0,0x9b,0xce,0x0d,0x79,0x90,0xc1,0x0a
+.byte 0xf9,0xfe,0x4d,0x49,0xd0,0x5a,0x63,0xf1,0xfc,0x47,0x71,0x9e,0xbb,0xd1,0x2c,0xef,0xfe,0x90,0x28,0x75,0x82,0xf6,0xa5,0x95,0xea,0x65,0xfa,0xe8,0x04,0xcd,0xb4,0xe1,0x0d,0xb2,0xac,0xd5,0x12,0xf5,0x17,0xbb,0x3b,0x2e,0x52,0x9e,0x7b,0xe7,0x8e,0x86,0x03,0xce,0x77,0x01,0xf0,0x4f,0xb5,0xf7,0xef,0x8b,0x37,0x5e,0x97,0x80,0xbb,0x2b
+.byte 0xcf,0x9a,0x63,0x18,0xc5,0x0c,0xfb,0x3c,0x91,0x9c,0x37,0x90,0x76,0x71,0x62,0xbc,0x80,0x40,0x1a,0x74,0xb8,0x1b,0x61,0xb1,0x89,0x4d,0xf7,0x8d,0xd4,0x46,0xef,0x1f,0x3b,0xac,0xe8,0x41,0x62,0x8e,0xea,0x2b,0x56,0x22,0x25,0x37,0x70,0x53,0xcd,0x8f,0x57,0xfa,0xad,0x00,0xc5,0x0c,0x9e,0x57,0xde,0x50,0x07,0x8d,0x80,0xbf,0x22,0x5d
+.byte 0x4a,0xbd,0x6a,0xcb,0xfc,0x6f,0xd1,0x56,0x8f,0xd5,0x34,0x8a,0xe6,0xe9,0xa0,0x00,0x06,0x12,0xd8,0xb1,0x49,0x0a,0xbb,0x87,0xe5,0xca,0x75,0x11,0x4c,0x85,0x60,0x77,0xc0,0x90,0x1c,0x14,0x38,0x38,0x3e,0x4f,0xff,0xbf,0xfc,0xa1,0xa1,0xe7,0xb0,0x5d,0xd8,0x1f,0x33,0x07,0x5f,0x04,0x4f,0xc7,0x93,0xc6,0xcc,0xe3,0x01,0xd0,0x43,0xe1
+.byte 0xd9,0x00,0xc5,0x9f,0x79,0xab,0xfc,0xe9,0x55,0x51,0x03,0x0c,0xe1,0x73,0xd6,0x09,0xe3,0xb9,0x76,0x72,0x77,0x4c,0x1b,0x7c,0x57,0x1e,0x7f,0x5f,0x02,0x83,0xa3,0xc6,0xde,0x23,0x85,0x76,0x1a,0xbf,0x48,0xc8,0x02,0xdb,0x31,0x30,0x95,0x85,0x68,0x8a,0xf6,0xe9,0x48,0x7f,0xc9,0x26,0xab,0x68,0x36,0x9f,0x1c,0xf0,0x90,0xbc,0x4a,0x68
+.byte 0x94,0xf8,0x7f,0xae,0xa9,0x3b,0x5b,0x63,0x9a,0xcd,0xe3,0xf0,0xac,0x9f,0x6f,0x78,0xa0,0x67,0x58,0xd8,0x2c,0x71,0x8a,0x14,0x31,0x07,0x95,0x0c,0x38,0xa4,0x53,0x33,0x60,0x23,0x21,0x87,0x6b,0x4f,0xf9,0xa8,0xb8,0xfc,0x8e,0xf1,0x3a,0x03,0x0b,0x03,0x02,0x33,0xbc,0x6a,0xb9,0x8e,0x41,0xc8,0x38,0xd8,0x83,0x30,0x6a,0x61,0x5c,0xcf
+.byte 0x49,0xdd,0xd7,0xda,0x2c,0xaf,0xc4,0x68,0xad,0x07,0x9c,0xd4,0xaf,0x94,0x64,0xcf,0xe1,0x9b,0x37,0x50,0x65,0x03,0x20,0x3c,0x34,0x43,0xe9,0xb0,0x9b,0xba,0xb1,0x9a,0x3e,0x10,0x99,0x8f,0x93,0xb7,0x3d,0xac,0xbd,0xab,0xa8,0xfa,0x74,0x90,0xe1,0x38,0xe4,0xf3,0x47,0xfc,0xad,0x8b,0xb4,0x98,0xe4,0x65,0xe9,0xd9,0x8a,0x21,0x81,0x4f
+.byte 0x0c,0xd7,0xb1,0x84,0xb9,0x69,0x68,0x64,0xa3,0x1f,0x25,0x84,0x5f,0xf7,0x3f,0xca,0x52,0xff,0xda,0xc9,0x3d,0x5e,0x8b,0x57,0xd3,0x9a,0x1d,0xb7,0xae,0x90,0xa4,0xc3,0x78,0x68,0xfd,0x80,0x3f,0xfd,0x5c,0x09,0x83,0x5d,0xc2,0x48,0xd8,0x84,0xeb,0x8a,0xfe,0xbe,0x30,0x12,0x79,0x54,0x5f,0x7f,0x6e,0x4b,0x8a,0x1e,0xcb,0xcd,0xed,0xb6
+.byte 0xe9,0x6d,0x8a,0x1f,0xdc,0xb1,0x46,0xab,0xdc,0x0d,0xbf,0xda,0xd9,0x39,0x3b,0xd2,0x81,0x00,0x83,0x77,0x32,0xf7,0xdf,0x0e,0x31,0x5d,0x1d,0x6c,0xa7,0x4e,0x54,0xa8,0xac,0x81,0x8c,0xb6,0xa5,0x89,0x02,0xd7,0x2e,0xfd,0x26,0xa3,0x9e,0xcf,0xdb,0x1f,0x5a,0xf3,0x54,0xac,0xe5,0xd0,0x1f,0x9b,0xa7,0xab,0x28,0xcc,0x66,0xd3,0xbc,0x4c
+.byte 0x54,0x1a,0x54,0x73,0x78,0xde,0x08,0xd5,0xa5,0x08,0xdc,0x00,0x09,0xc5,0x37,0x61,0x1a,0x98,0x12,0x84,0x2d,0xff,0xc3,0x25,0x62,0x93,0x83,0x05,0x66,0x3d,0xfb,0x1d,0x54,0x08,0x8a,0x50,0x03,0xc4,0xc4,0x6e,0xfa,0x16,0x83,0xbb,0x27,0xf1,0xb7,0x31,0x92,0x64,0x76,0xbc,0xf0,0x44,0x62,0xe9,0x5e,0x15,0x94,0xdc,0xe9,0xf3,0xf8,0x20
+.byte 0x93,0x4d,0x11,0xa2,0xc8,0xde,0x83,0xe6,0x75,0x63,0xfe,0x13,0x75,0x0f,0x79,0xd1,0x3d,0x75,0xb7,0x43,0x62,0x57,0x8d,0x96,0x9c,0xa3,0xc4,0xb2,0x84,0x6a,0x14,0x6e,0x17,0x32,0x09,0x76,0x95,0xbb,0xd6,0xc1,0x2e,0xdc,0x8c,0x73,0xd7,0xad,0x5a,0x41,0x8b,0xb3,0x7e,0x8d,0x90,0xec,0xf5,0xa0,0x46,0x90,0x4c,0x52,0xec,0x97,0xc6,0x98
+.byte 0x7d,0x19,0x77,0xa0,0x99,0x85,0x11,0x26,0x77,0x26,0xf9,0xac,0xe3,0x81,0xcf,0x7d,0x22,0xc8,0x00,0x3d,0x5b,0xee,0xa5,0xf8,0x6d,0xfe,0x47,0xe4,0xef,0x60,0xcc,0xd0,0x33,0xf7,0x5b,0xed,0xbd,0x82,0xc9,0xa8,0x41,0xb8,0x47,0x34,0x9f,0x62,0xb2,0x67,0x62,0xb0,0x3a,0x27,0x95,0xe1,0x22,0x76,0x98,0x0f,0x35,0xaf,0xfc,0x4d,0xc7,0x92
+.byte 0x92,0x7e,0xaf,0x3b,0x3a,0x36,0x5e,0x5c,0xbf,0x43,0x02,0x66,0x5a,0x30,0x78,0x82,0x52,0x20,0x98,0xd6,0xa1,0xe9,0x9a,0x61,0x54,0x0b,0x74,0x85,0xb5,0x99,0x69,0x9f,0x9b,0x3b,0x2f,0x49,0xec,0xb3,0x18,0x0c,0x4a,0x53,0x20,0xd7,0x80,0x7b,0xd4,0x20,0x21,0x32,0x89,0x08,0x81,0x50,0x2b,0x16,0x8d,0xbb,0xe6,0xbb,0xc7,0x74,0x80,0x67
+.byte 0x47,0xf1,0x06,0x68,0x02,0x37,0x31,0x00,0x50,0x8b,0xe2,0x44,0x85,0x2e,0x39,0x54,0xda,0x26,0x7b,0xe1,0xb0,0x23,0xd7,0x0c,0x3c,0x3b,0x81,0x9b,0xa6,0xbe,0x24,0xfd,0x09,0x73,0xbe,0xc3,0x2f,0xa0,0x7b,0x85,0x5b,0x1b,0x55,0x4e,0x9e,0x38,0x80,0x61,0xd7,0xe8,0x9b,0xec,0x88,0x00,0x6a,0x64,0x1b,0xd5,0x65,0x20,0x2a,0x62,0x64,0xbc
+.byte 0x21,0xca,0xce,0xc3,0xeb,0x2d,0x2b,0x5c,0x4d,0xb8,0x7c,0xb5,0xbe,0x98,0x0d,0x5b,0x88,0x23,0x60,0xff,0xbe,0x0a,0xb6,0xdd,0xdf,0x28,0xd5,0x2c,0xe5,0x9d,0xb5,0x29,0xea,0x6c,0x3a,0xf4,0x78,0x91,0xa3,0xb2,0xab,0x12,0xf9,0x90,0x96,0xc9,0xa4,0xfc,0x4d,0x28,0x2b,0x0c,0x28,0x8b,0xb7,0x8b,0x36,0xd6,0x80,0xbf,0x07,0x09,0xf9,0x62
+.byte 0x32,0xc0,0x50,0x60,0xd9,0x73,0xe3,0xbe,0xfa,0xa6,0x78,0x48,0x47,0xd7,0xb5,0x39,0xd8,0x04,0x6d,0x79,0x98,0x2e,0xd6,0x3a,0xe5,0xc9,0x01,0xd0,0x00,0x2e,0xd2,0x8b,0xd7,0x1f,0xf1,0xba,0xd4,0x0e,0x9f,0x9d,0xab,0xbf,0x2c,0xe1,0x75,0xf6,0x9c,0xc0,0xae,0x73,0x2b,0x58,0xcb,0x6d,0x46,0x6d,0x11,0xb7,0xce,0xc7,0xef,0x34,0x2c,0x11
+.byte 0x93,0x3c,0x17,0xd9,0x3e,0xad,0xc9,0x4c,0xb3,0xd0,0x0a,0xd0,0xfe,0xf3,0x9d,0xc5,0x43,0x03,0xa9,0x78,0x4a,0x42,0x7f,0xfb,0x75,0xd2,0x85,0xfb,0xe7,0xe6,0xa9,0x48,0x2f,0xa6,0xc3,0x16,0xe2,0x2a,0x9d,0x0d,0xcb,0x2e,0x8b,0x75,0xa8,0x14,0x3a,0x2e,0xb1,0xff,0x58,0x1d,0xa8,0xa6,0xc0,0xf6,0x17,0xda,0xc1,0xce,0xaf,0x08,0xa9,0xc2
+.byte 0xa3,0xc1,0xab,0xb6,0xe8,0x10,0x57,0x8a,0xce,0xc0,0x03,0x5c,0x53,0x5c,0x02,0x5d,0xcf,0x5c,0x65,0xc6,0x47,0x3c,0x62,0x0e,0xa3,0xfc,0xe2,0xae,0x10,0x55,0x4a,0xb4,0x27,0xe8,0x59,0x5e,0x45,0xa9,0xbb,0x21,0x10,0x91,0x46,0x1f,0x50,0x3b,0xc6,0x8c,0xa1,0x8a,0xee,0x5e,0x6e,0x32,0xe6,0x42,0x40,0x79,0x7f,0xbb,0xb3,0x5b,0x05,0xde
+.byte 0xe0,0xf6,0x7f,0x3d,0x37,0xe6,0xc3,0x3b,0x40,0xc9,0xe0,0x42,0x36,0xd0,0x0e,0x13,0x32,0x3e,0x48,0xce,0xd8,0xa2,0xef,0xae,0x93,0x66,0x7d,0xde,0xb9,0xdd,0x60,0x15,0x53,0xf2,0xd9,0x90,0x3d,0x38,0x8c,0xa6,0x34,0x44,0xb5,0x6c,0x74,0x7d,0x9d,0xe7,0xd0,0xef,0x6c,0xd6,0xfe,0x9b,0x79,0x4e,0x79,0x5e,0x48,0xef,0x93,0xb2,0x81,0x0b
+.byte 0x2b,0xee,0x83,0x69,0x3d,0x15,0x8c,0x27,0x69,0x6f,0xca,0xbf,0x75,0x29,0x37,0xc6,0xe6,0xca,0xb2,0x70,0xd0,0xaf,0xc8,0x5e,0x69,0xf1,0x6b,0x2d,0x0d,0xe7,0xe9,0xbf,0x07,0x52,0xe5,0xac,0x98,0xcf,0xcf,0xd6,0xdd,0x7c,0x2b,0xfc,0x8f,0xd2,0x5f,0x81,0x4b,0x1b,0x7b,0x2d,0x84,0xe2,0x69,0x96,0xcb,0xa2,0x59,0x10,0xba,0xda,0x51,0x11
+.byte 0xeb,0xc3,0x4f,0x10,0xbf,0x8e,0x5b,0xbb,0xa3,0x29,0xe9,0xd8,0x0e,0x71,0xa0,0x1b,0xff,0xee,0x36,0x8c,0x00,0x83,0x6b,0x32,0xfe,0x05,0xeb,0x89,0x8f,0xed,0x48,0x22,0xe1,0x76,0x0a,0xac,0xae,0x3c,0x24,0x54,0x84,0xc2,0x0f,0x79,0x33,0x2b,0x49,0x35,0x1c,0x84,0x5a,0xca,0x92,0x6c,0x1f,0x78,0x15,0x5a,0x36,0xad,0xd5,0x1d,0x9d,0x10
+.byte 0xc1,0x5f,0x7c,0x61,0x60,0xba,0x2e,0xe6,0x9b,0x34,0x02,0xe9,0x68,0x1c,0xfb,0xbf,0x02,0xdc,0x79,0x57,0x1c,0x0f,0xc8,0x8c,0x2a,0x66,0x2a,0x50,0xaa,0x81,0x4e,0x1f,0xa8,0x2d,0xe4,0x61,0xe8,0x43,0x84,0xcb,0xda,0x96,0xf9,0x4a,0xd0,0x8f,0xe1,0xd7,0xc4,0x05,0xf5,0x76,0xfa,0x47,0x7a,0x07,0x1a,0x77,0xbb,0x63,0xb3,0x3a,0x85,0x3b
+.byte 0x0d,0x32,0x4f,0x14,0x15,0x02,0x5b,0x9c,0xbc,0xc2,0x12,0x90,0x0f,0x7b,0x94,0x27,0x5f,0x70,0x23,0xd8,0x5d,0x54,0xc4,0xca,0x6a,0x69,0x9e,0xd1,0xb3,0x2a,0x75,0x1a,0x07,0x9c,0x20,0xf6,0x76,0x22,0x4d,0x09,0x30,0x24,0x3f,0x3b,0xe5,0xcb,0x4b,0x5a,0x03,0x2d,0xe8,0xbe,0xed,0xf0,0xe3,0x91,0xf2,0x6c,0xb8,0x02,0x2d,0x6c,0x7a,0xa6
+.byte 0xc1,0x8e,0xa7,0xbb,0x73,0xdf,0x40,0xa5,0x60,0x91,0xbf,0xbe,0x28,0x0b,0x37,0x2e,0x5f,0x4b,0xcd,0x14,0x4d,0x2d,0xfc,0x5e,0x43,0xb5,0x78,0x8d,0xea,0xa0,0x86,0x54,0x4f,0xb6,0x25,0x40,0x39,0x3f,0x9c,0x7a,0x26,0x74,0x88,0x42,0x53,0xb0,0x3b,0x81,0x75,0x04,0x67,0x41,0x65,0x66,0x2c,0xdc,0xe9,0xf0,0xb3,0xab,0x2a,0xa5,0xf3,0xef
+.byte 0xfa,0xc5,0x10,0x63,0xe2,0x70,0xb5,0x29,0x60,0x86,0x9e,0xb9,0x0b,0xe2,0xc4,0x05,0xa9,0x3c,0x1b,0x60,0x15,0x6b,0x2f,0x74,0x93,0x5e,0x70,0x9a,0x56,0x6a,0xc4,0x92,0x49,0xaa,0x95,0x51,0xc4,0xba,0xfd,0xf6,0x2d,0x36,0x3e,0x66,0xbd,0x74,0xbc,0x2e,0xb3,0xad,0xa1,0x41,0x50,0x33,0x79,0x84,0xac,0x21,0x7a,0xfc,0x3a,0x8e,0xdb,0xcc
+.byte 0x27,0xf6,0x2c,0x5c,0x23,0x38,0x73,0xd5,0xaf,0xc9,0x2d,0x9c,0x18,0x58,0xdf,0x8f,0x89,0x9d,0xdd,0x00,0x3c,0x5f,0x23,0x00,0x6e,0x66,0x1d,0xf3,0x1c,0x40,0x9d,0x43,0xb0,0x74,0xf1,0x41,0xa5,0x77,0xcb,0x8d,0x5b,0x94,0x68,0x95,0xb6,0x0e,0xd4,0x4d,0x47,0x9b,0xd2,0xcd,0x9b,0x94,0xa4,0x28,0xf9,0xf0,0x3d,0xcf,0x89,0xb1,0xc3,0x73
+.byte 0x84,0x15,0xb6,0xc8,0x6b,0xf1,0xb1,0xdc,0x1b,0x1a,0x6f,0xb5,0x73,0x87,0x8b,0x63,0xbf,0x4b,0x25,0x9b,0xe4,0xdd,0x44,0xed,0xe7,0x0e,0x6f,0x03,0xae,0xa1,0x5e,0x1f,0x5f,0xa7,0xa4,0xed,0x69,0x7a,0x91,0x6d,0x55,0xac,0xce,0x18,0x32,0x17,0x78,0x49,0x9f,0x1e,0x9c,0xd2,0x7b,0x1f,0x74,0x60,0xa5,0x64,0xb1,0x99,0xe6,0xc5,0x0d,0x69
+.byte 0xfa,0xb2,0xd9,0x05,0x61,0x71,0xa4,0x6f,0xc2,0xb6,0x91,0x0e,0x6c,0xf2,0xa6,0x6c,0xea,0x8e,0x94,0x8b,0xac,0xa7,0xfe,0x70,0x8e,0x8d,0xc2,0x85,0xa6,0xa7,0x8e,0xe8,0xfa,0xbc,0xa1,0xaf,0x0e,0xa9,0x06,0xa4,0x9a,0xb0,0x23,0x93,0xbc,0x93,0x2d,0x97,0x42,0xe2,0x0d,0x3a,0x65,0xb4,0x60,0x5b,0xeb,0xa1,0x20,0x8a,0xdc,0x17,0x6b,0xc5
+.byte 0x19,0xc3,0x67,0xbf,0xae,0xf7,0xb9,0xb1,0x88,0x7f,0xe5,0x1b,0xc2,0x61,0x97,0xa0,0xd3,0x64,0x74,0x6b,0x7a,0x46,0x39,0x3f,0xc8,0xd3,0x53,0x79,0x74,0x4e,0x1e,0x63,0x91,0xc5,0x4a,0x70,0xb0,0x05,0x35,0x19,0xc2,0x26,0x54,0x44,0x3b,0xa9,0x12,0x40,0xd0,0x21,0x19,0xf3,0x8d,0xc7,0x2b,0x88,0x9a,0xec,0x41,0x8f,0x4f,0x23,0x19,0x1a
+.byte 0xf3,0x1d,0x0a,0x88,0x0f,0xa7,0x02,0xd4,0x78,0x88,0xe6,0x43,0xb6,0x9e,0x07,0xdf,0x6a,0x1f,0x41,0xbb,0x3e,0xea,0x15,0xff,0x66,0x4c,0x7a,0x8b,0xee,0x27,0x47,0x81,0x81,0x95,0xa2,0x22,0xb4,0x9f,0x1c,0x09,0x1c,0xfc,0x0a,0xef,0x88,0x7f,0x59,0x60,0x91,0x6a,0xe4,0x92,0x8c,0x02,0x54,0xc9,0xee,0xc7,0x5e,0xd1,0xbf,0xc9,0x41,0xde
+.byte 0x2f,0xa3,0x22,0x07,0x1d,0x8c,0xe1,0x04,0x59,0x94,0x75,0x3e,0xee,0x56,0x62,0x07,0x80,0x18,0x60,0x78,0x0e,0x55,0x06,0xec,0xe1,0xa5,0xf6,0x21,0x7e,0xf9,0x37,0xab,0x6a,0xed,0x07,0xcb,0xbf,0xa2,0xab,0x50,0xee,0x1f,0x2f,0x54,0x2b,0x82,0x93,0x59,0x03,0x35,0xd9,0xe8,0x2b,0xa6,0x03,0xc2,0xef,0x37,0x85,0xfc,0x89,0x06,0x30,0xe0
+.byte 0xc2,0x00,0xc4,0xaf,0x59,0xb6,0x31,0x52,0x37,0xa4,0x6c,0xdb,0x1b,0x20,0x87,0xf0,0xa4,0x15,0x4b,0xa8,0xd9,0x7e,0x1b,0x96,0x00,0x07,0xf4,0x86,0x07,0x14,0x55,0x70,0x37,0xe3,0xe3,0xf0,0xeb,0xd6,0xf1,0xe0,0xe9,0x6c,0xdf,0x3d,0xaf,0x86,0xb8,0x00,0x9b,0xdf,0xc6,0x5c,0xd2,0x53,0xcb,0xcf,0x63,0xcc,0x3e,0x6d,0x62,0xeb,0xe6,0x97
+.byte 0xd8,0x54,0xed,0x36,0xe4,0xed,0x69,0xaa,0x10,0x83,0xde,0x16,0xfd,0xcc,0xd6,0x24,0xb9,0x3c,0x4f,0x99,0x81,0xc2,0x23,0x16,0x91,0x5d,0x9f,0x46,0xa5,0xdd,0xb4,0x8a,0xe1,0x07,0x89,0x84,0x2e,0x62,0x48,0xf6,0x1a,0x17,0x7b,0xc8,0xf7,0xb4,0x3d,0x9e,0x82,0xe3,0xe3,0xcf,0x0b,0xd9,0x52,0x90,0x61,0xd8,0xdf,0x9e,0xc4,0xc7,0x7c,0xfa
+.byte 0xcf,0x09,0xd2,0x94,0x86,0x37,0x94,0xaf,0x7e,0x0a,0x9d,0x16,0xee,0xad,0xfb,0xa2,0x9e,0x2d,0x2f,0xad,0xd5,0xc2,0xf9,0x91,0xf8,0x7e,0x2b,0xb8,0xb2,0x60,0x3c,0x0a,0x89,0x53,0x07,0x87,0x3b,0x83,0x70,0xee,0x71,0xa3,0x94,0x0b,0x77,0x50,0xeb,0xcc,0x23,0xf0,0xbe,0x95,0x51,0x54,0xd2,0xd6,0xd2,0x09,0xa5,0x19,0x3d,0x4e,0xec,0xe3
+.byte 0x88,0x71,0xa7,0xb1,0x10,0x03,0x7e,0xc4,0x92,0x2a,0xe7,0x99,0x75,0xff,0xae,0x10,0x3d,0xbb,0x33,0xc9,0x7f,0xc2,0xe6,0x3c,0xc4,0xe7,0xba,0x37,0xba,0x68,0x69,0x92,0x4a,0xfb,0x32,0x3b,0xb5,0xde,0xdb,0x91,0xd0,0x8e,0x77,0xf2,0x1e,0x2d,0x25,0xb4,0xa0,0x42,0xef,0x78,0x6c,0x75,0xcb,0xa0,0x73,0xdf,0xde,0xd8,0x26,0xfe,0xe3,0xf9
+.byte 0x74,0xe7,0xa0,0xd2,0xbd,0x6c,0x99,0x8d,0x07,0xf2,0xf8,0xff,0x36,0x2d,0x8e,0xda,0x5e,0x5c,0x47,0x06,0xf8,0x08,0x33,0x1d,0x93,0xcf,0xc3,0x1a,0x20,0x86,0xb6,0x8e,0x44,0x10,0xbc,0xba,0x89,0xfc,0xa3,0x57,0x92,0x2c,0x28,0xa1,0xd0,0xab,0xdc,0xba,0x0a,0x7e,0x9d,0xd2,0xfd,0x09,0xd3,0x87,0x6c,0x06,0x44,0x17,0x73,0xfe,0xc9,0x8b
+.byte 0x52,0xd3,0x09,0x60,0x14,0x03,0xb1,0x79,0x4c,0x9c,0xc4,0xec,0x42,0x4c,0xd3,0x21,0xe5,0x34,0x21,0x38,0xdd,0x12,0x95,0xd4,0x20,0x50,0xef,0x5f,0x46,0x4f,0x37,0x65,0xd5,0xf1,0xb2,0x2c,0x6c,0x9a,0x06,0x28,0x77,0xbf,0xe3,0xec,0xec,0x2b,0xcb,0x2c,0x8b,0x62,0x2e,0x39,0xaa,0x28,0x0b,0x51,0x01,0xa5,0x02,0x06,0x66,0x4a,0x67,0x0c
+.byte 0x96,0xa3,0x12,0x74,0x94,0x2c,0x0f,0x23,0xa3,0xea,0xda,0x1a,0x6d,0x54,0x30,0x33,0xc8,0x33,0x0a,0xfb,0x25,0x2a,0x8b,0x9a,0x87,0xd9,0x9d,0x37,0x4c,0x41,0x3b,0xe5,0x4a,0x81,0x92,0x40,0x38,0x18,0x82,0x13,0x54,0xde,0x56,0x11,0x63,0xf3,0x09,0x61,0x3b,0xdd,0x0c,0x71,0xe8,0x4f,0xc2,0x9a,0x77,0x2f,0xeb,0xf1,0x39,0x1c,0x10,0x0e
+.byte 0x01,0xaf,0x92,0x34,0x9a,0xb6,0x7b,0x79,0x86,0x0c,0xf1,0x53,0xb6,0x59,0xbd,0x6d,0x79,0x6e,0x37,0x11,0x25,0x67,0x95,0x31,0x4f,0x43,0xdf,0xb7,0x4b,0x80,0x8d,0x07,0x3c,0x49,0x73,0x8a,0x72,0x61,0x02,0x0f,0x2f,0x13,0xed,0x91,0x10,0xf6,0x08,0xf3,0x50,0x4a,0xd4,0x36,0xcb,0x52,0xb3,0x3b,0xe6,0xef,0x85,0xe9,0xe0,0xad,0x0d,0x3d
+.byte 0x84,0x07,0x70,0xdf,0x16,0x47,0xeb,0x26,0x19,0x27,0xaf,0x7a,0x9f,0x2f,0x2b,0x6d,0xbb,0x37,0x68,0x8e,0x19,0x46,0x5a,0x65,0x0d,0x0a,0x67,0xd8,0xe2,0xc2,0xcd,0x49,0xf6,0xc2,0x27,0xac,0x12,0xea,0x1f,0x81,0x60,0xac,0x8b,0x5d,0xcc,0x9a,0x5b,0xec,0xc3,0xcb,0x85,0x0d,0xef,0xa6,0xd5,0x33,0xb3,0x67,0x73,0x3f,0xc9,0x90,0x25,0x3e
+.byte 0xe6,0x7c,0x41,0x59,0x83,0xf7,0x90,0x4a,0xbf,0x14,0x72,0x11,0xf2,0x3a,0x38,0x58,0x17,0xd8,0x3d,0x00,0xc6,0x42,0xf2,0xbc,0xfd,0x05,0x37,0x6d,0x11,0xb0,0xd7,0xb2,0xb7,0x73,0x69,0x80,0x47,0x30,0x64,0x13,0x8c,0x24,0xb2,0x42,0x12,0x8c,0xc0,0x8a,0x45,0x0b,0x71,0x23,0xeb,0xac,0x65,0xda,0x44,0x13,0x85,0x77,0xdf,0xb8,0x4b,0x69
+.byte 0xd4,0x8e,0x40,0x54,0x24,0xac,0xc8,0x62,0x36,0x51,0x20,0xaa,0xcd,0x5d,0xa5,0x73,0x2c,0x81,0x92,0x99,0x44,0x6b,0x04,0xac,0x8e,0xee,0x96,0x29,0xca,0xdc,0x2f,0xd1,0x13,0x5c,0x9e,0xc2,0x67,0x6a,0xaf,0xf6,0x3e,0xe2,0xa1,0x6d,0xda,0xbe,0x8a,0x55,0x50,0x27,0xee,0x6d,0xb8,0x35,0x5f,0xb4,0xa8,0x76,0xa1,0xe2,0x52,0x87,0xf6,0xfb
+.byte 0xe2,0x16,0x1c,0x90,0x78,0xe4,0x17,0xb0,0xd9,0x56,0xf5,0xd3,0xa4,0xb0,0x3f,0xe9,0x01,0xf9,0xd0,0x67,0x2b,0xeb,0x1d,0x73,0x24,0x90,0x36,0x36,0x0d,0xcf,0xfb,0x3f,0xa1,0xa0,0x25,0x3b,0xf1,0x7f,0x9e,0x90,0xcf,0xb6,0xd0,0x83,0x90,0xcd,0x3f,0xff,0x5f,0xa3,0x33,0x95,0xd7,0xbe,0x78,0xfe,0xcc,0x9a,0xb9,0x64,0x88,0xb7,0xd9,0x5e
+.byte 0x46,0x2d,0xf0,0xb1,0xa1,0x81,0x2b,0xab,0x80,0xf5,0x4d,0x3b,0xd8,0x53,0x64,0x8f,0xac,0x7a,0x03,0xb3,0x39,0x7a,0x85,0xef,0x61,0xb5,0x2c,0x8e,0xf4,0x27,0x07,0x9b,0x7b,0xc9,0x8b,0x1a,0xe4,0x4f,0xce,0x8b,0x35,0x32,0xac,0xcf,0x47,0xb8,0x2f,0x9e,0xe5,0x11,0x48,0xc1,0x07,0xea,0x0c,0xee,0x06,0xc6,0xa3,0x48,0xb6,0x1a,0xd8,0xb4
+.byte 0xa7,0xae,0x59,0x7d,0x9e,0x4e,0x66,0x7f,0xe9,0x02,0x40,0xdc,0x21,0x5e,0x74,0x2c,0x1d,0x29,0x22,0xca,0x97,0x4f,0xc8,0xc7,0xea,0x69,0x02,0x89,0xd1,0x43,0xff,0x83,0x89,0x58,0x66,0x92,0xbc,0x11,0xf6,0x02,0x8b,0xa8,0x34,0x8d,0xbe,0x3a,0x70,0xc3,0x10,0xe7,0xb5,0xc4,0xda,0xdb,0xc6,0x87,0xee,0xee,0xe0,0x48,0x62,0x80,0x8d,0xfc
+.byte 0xaa,0xc7,0xce,0x1a,0xea,0xb9,0x1b,0x30,0x4a,0x48,0x9b,0xf4,0x58,0xff,0x5d,0x15,0xc8,0xf2,0x84,0x44,0xae,0x63,0xe8,0xb1,0xe0,0x2e,0x38,0x8e,0x47,0xf9,0x09,0xec,0xb9,0x94,0x18,0x37,0x68,0xef,0xbd,0xd5,0x67,0x72,0x01,0x9a,0x15,0xb9,0x7c,0x36,0xc0,0x22,0x80,0x12,0xb1,0x4e,0xab,0x3c,0xea,0x81,0xcf,0x70,0xf3,0xde,0x1f,0xd4
+.byte 0x67,0x94,0xfa,0xe1,0xf0,0xb6,0xd6,0x6b,0xc3,0xa2,0xbb,0x59,0x6b,0x9f,0x58,0x26,0x99,0x0c,0xdc,0xcd,0xb8,0xae,0x49,0xf0,0x8f,0xd3,0x0d,0xb7,0x4c,0x22,0xcf,0xb6,0x6c,0xa3,0x19,0x09,0x42,0x59,0x25,0xf8,0xdc,0xf3,0xc2,0x00,0xc3,0xc3,0xd3,0x9e,0x98,0xd3,0xa3,0xd0,0x96,0xfd,0x4f,0x15,0x57,0x5b,0xa7,0x08,0x3a,0x0e,0x3d,0xd2
+.byte 0x7d,0xa1,0xa0,0x94,0xc0,0x76,0x83,0xf6,0xc1,0xe8,0x7e,0xd3,0x97,0xc1,0xbf,0x38,0x74,0x9b,0xfb,0x35,0xeb,0xf7,0x34,0x20,0xea,0xda,0xd3,0xb1,0x2e,0x10,0x16,0x9c,0x09,0x1c,0x67,0x46,0xa2,0x05,0xf9,0x47,0xde,0x35,0x53,0x18,0x58,0xb0,0xbb,0x7a,0x88,0x58,0xc5,0x3e,0x98,0x29,0x43,0x98,0x07,0x76,0xa3,0xe1,0x95,0x92,0x21,0xe9
+.byte 0x06,0x17,0x15,0xe0,0x6b,0xd5,0x5a,0x6d,0x10,0xa6,0x08,0x92,0xa9,0xf5,0xcf,0x57,0x1a,0x28,0x5d,0x14,0x33,0x99,0xf9,0xa0,0xb3,0xeb,0xee,0xd4,0x6e,0x0b,0x5e,0xf7,0xe9,0xe3,0xc6,0x71,0x34,0x55,0xf3,0xde,0xd5,0xc2,0x52,0xc3,0x7b,0x06,0x87,0xef,0x26,0x81,0xc9,0xbd,0xaf,0x12,0x61,0x95,0x2b,0xa4,0x8e,0xe8,0x08,0x9a,0x13,0x48
+.byte 0x2e,0x84,0x98,0xf6,0x95,0x21,0x22,0xe5,0xcf,0x30,0x8d,0xaf,0x70,0x16,0x27,0x0c,0xcd,0x26,0x7f,0xe8,0xa0,0x35,0x0c,0x01,0x0e,0xdd,0x9d,0x2c,0x89,0x41,0x34,0xc4,0xa2,0xaa,0xf6,0x3f,0xca,0x3b,0x86,0xce,0xd7,0x4c,0xe3,0xb5,0x69,0xe9,0x41,0xbe,0x3c,0x9a,0x4c,0x1a,0xb3,0x88,0xea,0x78,0x12,0x4c,0x1b,0x79,0xc7,0xcd,0x32,0x72
+.byte 0xfa,0x3f,0x0b,0x73,0x1b,0xd9,0xec,0x85,0xd4,0x52,0x6c,0x91,0x2d,0xbe,0x76,0x8b,0xfd,0xb6,0x49,0xcf,0x67,0xd1,0x18,0x7b,0xae,0x86,0x47,0x47,0xfd,0xff,0x63,0xf2,0x88,0x1b,0x58,0xd5,0x30,0x69,0xf9,0x9a,0x03,0x52,0xae,0xe5,0xe2,0x55,0xbf,0x35,0x12,0xb0,0x84,0xa9,0xed,0xb6,0x8d,0x5f,0x6c,0xed,0x1a,0x00,0x7a,0xdc,0xf2,0x03
+.byte 0x9e,0xef,0x59,0x27,0x4c,0xf4,0x83,0xa2,0x36,0x3d,0x3d,0x8c,0x75,0x8c,0x37,0x68,0x93,0x0b,0x30,0x48,0xea,0x91,0x14,0x37,0x88,0x87,0x7f,0xe6,0xd8,0xbd,0x04,0x34,0x1e,0xe8,0x2a,0x41,0x48,0x5c,0x66,0xf9,0xc2,0xd1,0x56,0x25,0x29,0x45,0xfa,0x71,0xe1,0x59,0xa8,0x52,0x99,0x0b,0x92,0xe0,0x33,0x52,0x91,0xd6,0x5f,0x0a,0x70,0x83
+.byte 0x4f,0xa3,0x47,0x6e,0xfa,0x85,0x5e,0xb1,0x0a,0x1d,0xe7,0x35,0xc9,0x88,0x27,0xc9,0x8c,0x3e,0x7f,0x6d,0x34,0x1e,0x11,0x7b,0xcd,0xe7,0x09,0x82,0x3a,0xa1,0x46,0xc6,0x15,0xde,0x0b,0xde,0x35,0x71,0x92,0x5c,0x72,0x50,0x08,0x6b,0x62,0xa7,0xec,0xa2,0xca,0x53,0x6e,0x47,0x7d,0x50,0x32,0xa7,0x32,0x7b,0x49,0x0c,0x97,0xcc,0x98,0x8d
+.byte 0xc3,0x29,0x72,0x1e,0x85,0x47,0x1b,0xa7,0x89,0x19,0x85,0xaa,0x3f,0x11,0x6a,0xea,0x61,0x84,0x07,0x9a,0xc8,0xb3,0x25,0xfe,0x72,0xca,0x83,0xa9,0xf0,0x9e,0x01,0xe4,0x9a,0xd6,0x1b,0x87,0xfc,0xd4,0x3a,0x04,0x34,0x8c,0x0b,0x46,0xbc,0xe9,0x3c,0x3f,0xd9,0x93,0xf1,0xca,0x41,0x0b,0xdb,0x28,0xe8,0x28,0x1b,0x84,0x36,0x16,0x84,0x22
+.byte 0x1e,0x1e,0x2b,0xb0,0xfb,0xa6,0xcc,0x95,0x31,0x46,0xd7,0xca,0xc2,0x8b,0xa3,0x3a,0xa5,0xb0,0xaf,0x52,0x66,0x53,0x39,0x5f,0x58,0xb5,0xdf,0x01,0x52,0x07,0xb4,0x82,0xdc,0xb7,0xf9,0x88,0xd8,0x77,0xf8,0x12,0x9d,0xe8,0x21,0xd7,0x0b,0x0f,0x57,0x90,0x40,0xb2,0x64,0x3f,0xce,0xa0,0xa3,0xfa,0x12,0x16,0xec,0x6d,0xcc,0xc7,0x2a,0x43
+.byte 0xc9,0xe7,0xb7,0x90,0x52,0x35,0x22,0x6d,0x46,0x99,0x1e,0x44,0x12,0xd6,0x0f,0xaf,0x5c,0x16,0xd3,0x7a,0xd6,0xb4,0xfe,0x20,0x26,0x11,0xe1,0xc6,0xa5,0x10,0xfd,0x9f,0x0c,0x47,0xae,0x32,0x08,0x15,0x8f,0xef,0xef,0x4c,0x83,0xbc,0xbf,0x6a,0xe5,0xf5,0x69,0x11,0x4d,0x7d,0x47,0x1f,0x10,0x58,0x61,0xb0,0x0d,0x98,0x67,0xc0,0x99,0x3a
+.byte 0x2d,0x9a,0x5b,0xd5,0x37,0xe7,0xe5,0xd4,0x56,0x96,0x69,0xf8,0x53,0x7e,0x24,0x70,0x51,0x01,0x83,0x8d,0x49,0x01,0x32,0x7d,0x4f,0x41,0x92,0x54,0x9c,0x15,0xf1,0x3c,0x05,0x32,0x28,0x0d,0x0f,0x67,0xbe,0x65,0xfa,0x1b,0xa3,0xd0,0x28,0x18,0xb8,0x84,0xfe,0x6a,0x30,0xea,0xb9,0x00,0xb1,0x10,0x7c,0xa2,0x94,0x4f,0x86,0x18,0xdd,0xb4
+.byte 0x80,0x18,0x48,0x18,0xe1,0x56,0x70,0x7d,0x5c,0x3b,0xe5,0xd7,0x88,0x66,0x57,0xe3,0xe1,0x04,0x4c,0x68,0x5b,0x64,0x4d,0x0d,0x30,0x76,0x26,0xaa,0x84,0x0e,0xe0,0xed,0x53,0x62,0x20,0x33,0xaf,0x45,0x42,0x40,0x47,0x01,0x15,0xc9,0x0b,0x27,0x7c,0x68,0x4d,0x55,0xc4,0x6a,0x5f,0x96,0x9f,0x96,0x67,0xae,0x13,0x1c,0x84,0x52,0x33,0x41
+.byte 0x80,0xfc,0xae,0xb6,0xb1,0x8c,0xc3,0x19,0x80,0xa8,0x5f,0xe5,0x8c,0xd0,0xa8,0xb4,0x58,0xc9,0x48,0x29,0xab,0x11,0xd1,0x09,0xc6,0x20,0x98,0x4c,0xdb,0xa4,0x83,0x5c,0x26,0x51,0xce,0x80,0xe5,0xc4,0x9b,0xae,0xba,0x8e,0x99,0x4e,0xa4,0xff,0xdc,0x99,0x4c,0x02,0xa0,0x42,0x80,0xca,0xd7,0xea,0x6a,0x58,0x31,0xdb,0x16,0xd8,0x4d,0xab
+.byte 0x03,0x2e,0x3a,0xdc,0xe9,0x07,0xfb,0xfb,0x5b,0x57,0x67,0x2a,0x7b,0xdc,0xc1,0x66,0xd1,0x31,0x3a,0x03,0x87,0xd8,0x66,0xda,0xa1,0x24,0x00,0x26,0xc0,0x26,0x78,0xf8,0x59,0x13,0x3f,0x34,0x08,0x35,0x45,0xbd,0x45,0x4f,0x89,0x65,0x97,0xdb,0xe6,0x1e,0x09,0x6e,0x23,0x2a,0xc4,0xf5,0x6a,0x74,0x28,0xb0,0xae,0x8c,0xfb,0x49,0x35,0x99
+.byte 0x06,0x30,0xc6,0xb2,0x8c,0xcd,0x8b,0x41,0xea,0xf2,0x04,0x18,0x29,0x25,0x1b,0x32,0x42,0x45,0xb5,0x92,0x42,0xb4,0x33,0xd2,0x90,0x31,0x08,0xcd,0x35,0x5d,0x50,0x64,0xa8,0x93,0xfd,0xa5,0xfd,0x32,0xbd,0xe8,0x13,0x1c,0x48,0x5c,0x14,0x70,0x03,0x92,0x0f,0x12,0x86,0xf6,0x6c,0xcd,0xc6,0xec,0xbf,0x8e,0x85,0x28,0x1d,0x1c,0x63,0x3f
+.byte 0x81,0x93,0xd4,0x80,0x3c,0x29,0x0b,0x63,0xfe,0x87,0xa6,0x24,0xd6,0x3e,0x62,0xb6,0xd9,0xb0,0x58,0xf1,0x41,0x36,0xc7,0x47,0x8b,0xfd,0x4b,0x91,0x4e,0x5d,0x41,0x44,0xb0,0x65,0x3d,0x9e,0x3b,0x70,0x01,0xcc,0x7d,0x77,0xf0,0x23,0xd9,0xca,0x5f,0xda,0xa1,0x8c,0x71,0x11,0x91,0x7d,0x36,0xf5,0xc9,0xcd,0xf4,0x34,0x5f,0x69,0x57,0xd6
+.byte 0x33,0x4c,0xb2,0xe1,0x38,0x5f,0x86,0x3c,0x57,0x7b,0x2e,0x99,0x05,0x80,0x63,0xc4,0x77,0x69,0x06,0xc2,0x47,0x44,0xca,0x17,0x27,0x1d,0x55,0x34,0x02,0xd0,0x89,0x3a,0x3b,0x79,0xf0,0x86,0xd7,0x6b,0x01,0x9c,0xc7,0xa8,0xde,0xdb,0xdf,0x49,0xd1,0xb9,0x11,0xaf,0x7e,0x22,0x8b,0x5d,0xb5,0x0b,0xdc,0xd0,0x36,0xe6,0x9d,0x85,0x41,0x4a
+.byte 0x35,0xf0,0xe1,0xcd,0xce,0x7b,0xd1,0xd6,0x00,0xdd,0xb6,0xe4,0x06,0x3e,0x66,0xe9,0x2b,0xa8,0x44,0x0d,0x18,0xd4,0xbc,0xfb,0x3c,0x58,0x6c,0x11,0xe9,0xdc,0x19,0x14,0x08,0x27,0x23,0x0c,0xd0,0xf9,0x97,0xaf,0x97,0x07,0x02,0x1a,0x5e,0xcd,0xae,0xd2,0x80,0x96,0x16,0x49,0xc3,0xfc,0xda,0x25,0x12,0x20,0xe1,0xc0,0x68,0x90,0x4b,0x30
+.byte 0x2d,0x06,0x53,0x2c,0x57,0x63,0x4a,0x7a,0xf6,0xc8,0x5a,0xb7,0x58,0x8c,0x13,0xfe,0x43,0xb3,0xf8,0x25,0x3e,0x7a,0x25,0x3e,0x1d,0x7f,0x8f,0x5e,0xdb,0xad,0x99,0x83,0xfc,0xd9,0x0a,0xdf,0xb5,0x19,0x1c,0x2c,0xf6,0xe8,0x06,0xbe,0xc0,0x9f,0x7e,0x0f,0x95,0xaa,0xac,0x09,0xdc,0x8c,0x37,0xcf,0x35,0x35,0x95,0x62,0xf1,0xff,0x96,0x1c
+.byte 0x77,0xe9,0x53,0x7e,0x12,0x56,0x2d,0x4e,0x3e,0x1f,0xdb,0x1d,0x71,0x0e,0xdc,0xf7,0x65,0xb1,0x78,0x7f,0xe4,0xba,0xbf,0x7f,0x6c,0xcb,0x73,0xd3,0xe8,0xd9,0xce,0xfb,0xdb,0x48,0x87,0xe0,0x10,0x00,0x74,0xcb,0xdf,0x32,0xa8,0xdd,0x83,0x24,0x49,0xda,0x86,0x38,0x1c,0x2c,0x93,0x09,0x8a,0x26,0xbb,0x34,0x21,0x1d,0xac,0xb5,0x16,0xae
+.byte 0xd8,0xcb,0x94,0x04,0xd6,0xbc,0xde,0x9c,0x70,0x28,0xa5,0x1a,0x15,0x5e,0x35,0xe4,0xe6,0x53,0xea,0x9c,0x3b,0x0c,0x36,0x3b,0x80,0x13,0x28,0x1d,0xc7,0x1a,0xa8,0x8e,0x9e,0x09,0xce,0x5d,0x50,0xd3,0xc7,0x6f,0x3a,0x75,0xa5,0x84,0x1c,0x08,0x66,0xe6,0x05,0xda,0x8b,0xf1,0x4b,0x5c,0xe2,0xc7,0x0f,0xa1,0xf1,0x47,0x02,0xf4,0xa7,0x24
+.byte 0xf3,0x0e,0x2c,0xa9,0xae,0x67,0xdf,0xce,0x30,0x88,0x4a,0x9a,0x39,0x4a,0x97,0x64,0xa8,0x30,0x53,0xf9,0x47,0x66,0x5c,0x19,0x1c,0xfb,0x2f,0x05,0x89,0x4f,0xfe,0x25,0xe7,0xed,0xed,0x17,0x5a,0x86,0xeb,0x25,0xee,0xe4,0x09,0x88,0x05,0x49,0x20,0x54,0x4b,0x7f,0x3e,0xb5,0x23,0x85,0xa9,0x66,0x61,0x73,0xe0,0x61,0x94,0xc6,0xe5,0x29
+.byte 0xb4,0xe1,0x6f,0xa4,0x4d,0x50,0x56,0x2e,0x30,0x75,0x51,0x5d,0xdd,0xa2,0x68,0x56,0x67,0xd8,0xec,0x2d,0x2a,0xfd,0x49,0xc5,0xbc,0xae,0x2f,0x6b,0xc7,0x8d,0x2e,0xca,0x91,0x35,0xe8,0xea,0x65,0xe9,0x9c,0x65,0xaf,0x8e,0xd5,0x16,0xdf,0xac,0x44,0x1e,0xb6,0x16,0xf0,0xb6,0x33,0x6a,0xe6,0x96,0x0f,0x85,0x2e,0xa1,0xaa,0x6a,0xe0,0x12
+.byte 0x0c,0xaa,0x7d,0xae,0xf7,0xe3,0xb2,0x4c,0x3c,0x10,0xc6,0x87,0x8e,0x87,0xfb,0xac,0xf7,0xd7,0x7a,0x2e,0x9a,0x7a,0xa7,0x4f,0xf0,0x75,0xce,0xbd,0xc3,0xe6,0x79,0x1d,0x56,0xab,0xff,0x56,0xfe,0x69,0xbd,0xcf,0x15,0x27,0x64,0x3c,0x83,0x1c,0x08,0xb0,0x91,0x60,0x67,0xe7,0x27,0x44,0x49,0x22,0x78,0xd5,0x1a,0xc8,0x3b,0x35,0x9b,0xa5
+.byte 0x53,0xce,0xde,0x04,0xd2,0x3e,0x67,0x48,0xaf,0x54,0xdf,0x9c,0xf7,0xb9,0xd4,0xe3,0xb6,0x85,0x02,0x68,0x21,0x10,0xdb,0xb5,0xca,0x11,0xa2,0x7c,0xcf,0x13,0x41,0x7a,0xfd,0xe9,0x0a,0x3c,0x53,0xd6,0x07,0xf2,0xdd,0xe2,0x7c,0x16,0xf0,0x44,0x3f,0x5d,0x34,0x09,0x7c,0x7b,0x21,0x8c,0x8e,0xdb,0x0d,0xc5,0x73,0xce,0x61,0xce,0x17,0x46
+.byte 0x6c,0x14,0x07,0xb5,0x70,0x80,0xf0,0x29,0x7c,0x13,0x41,0x2d,0x8e,0xdc,0x53,0xc2,0xbf,0xf0,0xc2,0xfb,0x59,0xa0,0x66,0x5f,0x25,0xda,0x17,0x5f,0xac,0xab,0x75,0x1b,0xc7,0x61,0x87,0x53,0x80,0x2e,0x11,0x4e,0x04,0x48,0xf9,0xee,0x54,0xe6,0x69,0x69,0x57,0xc2,0x46,0xd8,0xb3,0x2e,0x7b,0xc8,0xa5,0xd0,0xb2,0x5e,0xd4,0x6b,0x9b,0x1a
+.byte 0xd6,0x79,0x9d,0x99,0xa6,0xbb,0x4d,0xca,0x74,0x2c,0x3d,0xd4,0x86,0xd0,0x64,0xd4,0x81,0x49,0x76,0x42,0xb8,0xf9,0x2c,0x52,0xe7,0x77,0x37,0x31,0xbb,0x2e,0x5b,0x38,0x81,0x01,0x2c,0x27,0x28,0xcb,0x0c,0xba,0xfa,0x8a,0x9a,0x45,0x51,0xa2,0xde,0xf2,0x7b,0xe6,0x65,0xec,0x5b,0x2d,0xe8,0x55,0x8e,0xb4,0x7f,0xf8,0x1a,0x66,0x3a,0x5f
+.byte 0x06,0x10,0x15,0xb2,0x3d,0xb2,0x36,0x6e,0x9f,0x8e,0xe2,0x4c,0x78,0xe5,0x3a,0xac,0x21,0x16,0x20,0x30,0x0f,0x51,0x56,0xcb,0x53,0xca,0x70,0x3c,0xa2,0x3f,0x37,0x06,0x6c,0x70,0xec,0xf4,0x3d,0x7c,0x77,0xa0,0x61,0xc7,0x0e,0x26,0x9f,0x25,0xc0,0xf2,0x28,0xdb,0x57,0xbe,0xe6,0x4e,0x9c,0x4d,0x2e,0x48,0x50,0xc2,0xd4,0xfd,0x5e,0x52
+.byte 0x3f,0xd0,0x82,0xd1,0xd4,0x53,0xad,0x42,0x38,0xb1,0x02,0xd6,0xa0,0x34,0x7a,0xb4,0xb3,0xdd,0x91,0x12,0xf4,0x91,0xc9,0xa2,0x35,0x2d,0xdc,0x97,0xa1,0xdb,0x82,0xe7,0x92,0x99,0x66,0x13,0x99,0x20,0x95,0x1f,0x47,0x64,0x80,0x5e,0x5f,0x74,0x6b,0xa6,0xca,0x47,0x0b,0x24,0x72,0xa6,0x27,0xe7,0x56,0x61,0xa7,0x8e,0x62,0xa4,0xff,0x8e
+.byte 0x29,0xf8,0x09,0xa4,0xbb,0x70,0x97,0x8a,0x39,0xe8,0x65,0xc8,0x52,0x23,0x9d,0xbf,0x10,0xe8,0x7d,0xbc,0x3c,0xc4,0x8b,0x1e,0x5c,0x75,0x94,0x24,0x62,0x3f,0x5b,0x2b,0x9a,0x08,0x00,0x78,0xfd,0x28,0x44,0x12,0x62,0x2a,0x6f,0x47,0x9d,0x57,0xb0,0x4e,0x3b,0xcd,0x01,0x7d,0x6e,0x62,0xe3,0x99,0x9c,0xae,0x6e,0xe2,0x70,0x7a,0x32,0xb4
+.byte 0xc1,0x19,0xb1,0x03,0x6b,0x92,0x89,0x4f,0x37,0xaf,0x36,0xee,0x5e,0x03,0x31,0x8c,0x41,0x27,0x17,0x21,0xdf,0xe4,0x34,0x97,0x8d,0xe7,0x41,0x47,0xf2,0x80,0x51,0x41,0x01,0xe4,0x0c,0x1a,0x09,0xfc,0x07,0xc3,0x94,0x07,0x6f,0xa7,0x6c,0xff,0x32,0x21,0xa5,0x01,0x8c,0xa2,0x88,0x3c,0xc8,0x57,0xe8,0x68,0x19,0x4a,0x46,0x7a,0x36,0xd2
+.byte 0x75,0x8e,0xc5,0xa4,0x84,0x91,0x13,0x7f,0xdd,0x2b,0x3c,0x2e,0xc4,0x92,0x29,0xb3,0x60,0x74,0xc8,0x81,0x58,0x0e,0xad,0x6a,0x9d,0xaa,0x81,0x49,0x26,0x0f,0xd4,0x2a,0x39,0xdd,0x4d,0x2b,0x13,0xdb,0x2e,0x72,0xe6,0x45,0x99,0xeb,0xe6,0xe5,0xd5,0x76,0xd4,0x19,0xd8,0xd7,0xa9,0x1f,0xce,0x7f,0xc4,0x1c,0x9e,0x6f,0x68,0x32,0xb1,0x26
+.byte 0xc4,0xb6,0x4e,0x9f,0xbf,0xdc,0xe0,0xde,0x54,0x9b,0xe0,0x04,0x03,0xae,0xc9,0xce,0x3a,0xcb,0x93,0xad,0xcc,0x1f,0x46,0xf6,0xbb,0xff,0x40,0x52,0x9c,0x64,0x97,0x5a,0x6f,0x8d,0x28,0x45,0x1c,0xf6,0x8b,0xcb,0xb9,0x38,0xb8,0x00,0xee,0xec,0xac,0x68,0x3f,0x50,0xcb,0x36,0x6e,0x97,0xfd,0xa5,0x1d,0x29,0x6e,0xfa,0x9f,0x4b,0x83,0xcd
+.byte 0x0d,0x34,0xf3,0x1e,0x3f,0x0f,0x2e,0x89,0xeb,0xf7,0x8e,0x5f,0xe0,0x3b,0x39,0xd2,0xe8,0x87,0xe3,0xe7,0xe9,0xd0,0x1b,0x32,0x03,0x6b,0x3c,0x75,0x7d,0xe2,0x5c,0x3c,0x42,0xb4,0x46,0x69,0x0b,0xaf,0x0a,0x5d,0x1a,0x83,0x0b,0x0e,0x3c,0x5a,0x36,0xbd,0x5d,0xb6,0xad,0x4c,0xdd,0xf1,0x8d,0xbf,0x2b,0x70,0x8e,0xbc,0x92,0x95,0x1b,0x0f
+.byte 0xed,0x3f,0xae,0x9e,0xa2,0x5a,0x50,0xe4,0xda,0xde,0x04,0x51,0x31,0xac,0xa4,0x0b,0x94,0xcc,0x14,0x87,0x59,0xa8,0x30,0x09,0xe6,0x46,0xb9,0x07,0x3e,0x1a,0xbf,0x5a,0x23,0x32,0xfb,0x60,0x63,0x24,0x25,0x12,0xf6,0x3e,0x2d,0xd0,0x8b,0x88,0x9b,0xe9,0x2d,0xab,0xf5,0xaf,0xba,0xbc,0xfe,0xab,0xb2,0x61,0x7a,0x7c,0xbb,0x28,0x6b,0x86
+.byte 0xe5,0xa2,0x9c,0x2c,0x5a,0x23,0x12,0x11,0xe5,0x72,0xe8,0x7b,0x6b,0x40,0xf1,0x91,0x37,0x3b,0x47,0x75,0x65,0xac,0x4d,0x22,0x59,0x75,0x13,0xb0,0x73,0xff,0x59,0xd1,0x1b,0xcc,0x05,0x1f,0xf2,0xc8,0x50,0x83,0xf1,0x28,0x38,0x0b,0xc3,0xa0,0x3b,0xe3,0x86,0xbb,0x9c,0x7e,0xc1,0xe9,0xcc,0xd9,0xb8,0x2b,0x05,0xf3,0x6f,0xc7,0x9d,0xaf
+.byte 0x7b,0xb7,0x38,0x41,0xa3,0x50,0x8f,0x92,0xe0,0x63,0x35,0xb3,0x95,0x9f,0x80,0xf8,0x75,0xbb,0xf3,0x2b,0x0e,0xaf,0x32,0x6e,0xff,0xeb,0x79,0xca,0xbf,0x1c,0x4f,0x6c,0x9c,0x06,0xb2,0xeb,0x99,0x57,0x1f,0xf6,0x64,0x0b,0x81,0x57,0xba,0xf4,0x32,0x1e,0x77,0x37,0x55,0xb7,0xbc,0xba,0x70,0x0b,0x0d,0xdd,0x95,0x41,0xb5,0x17,0x5b,0x14
+.byte 0x10,0x9d,0x14,0x52,0x83,0x65,0x0a,0xf4,0x55,0xca,0xf8,0xbe,0xa6,0x3a,0xa0,0x6e,0xcc,0x83,0x84,0x65,0xb4,0x1c,0x7e,0x40,0xdd,0x32,0x36,0x5a,0x23,0x17,0x7d,0xb5,0xb9,0x38,0x48,0x5c,0x6f,0x23,0x54,0x0e,0x93,0x74,0x27,0x0f,0xfd,0x58,0xc1,0x97,0x26,0x78,0x9a,0xd3,0x85,0xc5,0xb2,0xb3,0x44,0xb7,0x36,0x85,0x69,0xde,0x3b,0xa1
+.byte 0x2b,0x11,0xef,0x75,0xfc,0xaa,0x92,0xf1,0xf1,0x72,0xa0,0x5f,0x33,0xf6,0x0b,0x72,0xdb,0xce,0x6c,0x2a,0x15,0x76,0x40,0xd4,0x85,0xff,0x96,0xe1,0x48,0xe1,0x27,0x8f,0x74,0xf3,0xfa,0xa1,0xb7,0x2a,0xb6,0x41,0x90,0x92,0x7e,0xfa,0xfc,0xad,0xa3,0x94,0x91,0x77,0xf1,0x8f,0xee,0xa2,0x64,0x47,0x01,0xb3,0x01,0x99,0x05,0xe7,0x31,0x4a
+.byte 0xe8,0xd2,0x65,0x40,0x21,0xc4,0x83,0x8e,0xc9,0x89,0xda,0x16,0x7b,0xe0,0xcb,0xc0,0xc0,0x3d,0x37,0x18,0x66,0xe9,0x70,0x86,0x0b,0x6c,0xe8,0x65,0x44,0xce,0x3a,0xcd,0x84,0x1e,0xce,0x0e,0xe3,0xf9,0x77,0x12,0xfb,0xe6,0x92,0x8b,0x0d,0x7e,0x15,0x7a,0x34,0x94,0x2a,0xa7,0xc5,0x35,0xa4,0xfc,0xbe,0xa3,0x13,0x70,0xe4,0x6b,0x2f,0x71
+.byte 0x31,0xef,0xdb,0x79,0x44,0xf2,0x77,0xc7,0xc9,0x0d,0x1a,0x7b,0xff,0x34,0xf8,0xc9,0xe8,0xc9,0xc2,0xe0,0x0c,0x9e,0xd6,0xb4,0x7a,0xdb,0x1f,0x65,0xb8,0xd4,0x92,0xbf,0x7f,0x06,0x44,0xe3,0xb4,0xd8,0x14,0xe3,0x9b,0x49,0x81,0x12,0xec,0x7d,0x01,0xe2,0x50,0x2c,0x0e,0xfd,0x4b,0x84,0x3b,0x4d,0x89,0x1d,0x2e,0x4b,0xe9,0xda,0xa5,0x3f
+.byte 0x19,0xc2,0x53,0x36,0x5d,0xd8,0xdc,0x6e,0xc3,0x48,0x8f,0x09,0xd5,0x95,0x4b,0x0c,0x7c,0x00,0x15,0x33,0x8e,0x1d,0x0c,0xdf,0x32,0x3b,0x93,0x1f,0xf5,0x49,0x4f,0xfd,0x8b,0x64,0xe7,0x96,0xaf,0x2f,0xc8,0xea,0xab,0x91,0x53,0x29,0xe3,0x31,0x0a,0x1c,0x6e,0xe0,0xbb,0x81,0x11,0x83,0xe0,0x07,0xfb,0x29,0x11,0x0f,0x0d,0x85,0xd4,0x61
+.byte 0x3c,0x75,0xbb,0x8a,0x23,0xb6,0xa0,0x7f,0xa4,0xbb,0x11,0xd4,0x75,0xde,0x27,0xe5,0xeb,0x11,0x5d,0x02,0xfe,0x5c,0x62,0x60,0x0f,0x6f,0x45,0x9b,0xfb,0xb7,0x32,0xa8,0x1c,0xd6,0xff,0x43,0x7b,0x53,0xee,0xa4,0x1f,0xf2,0xba,0xb6,0xb7,0xb7,0x39,0x18,0x85,0x79,0x77,0x27,0x30,0x26,0xe4,0xef,0xd1,0x39,0xc9,0xa2,0x0d,0x50,0xd7,0xef
+.byte 0x9e,0xd8,0x8e,0xd2,0x74,0x1a,0x3f,0x99,0x24,0xf4,0x8b,0x4d,0x02,0x63,0x18,0x3a,0xaf,0x26,0xef,0xfc,0x1d,0xfe,0x46,0xc1,0x55,0xd7,0x92,0x65,0x2f,0xe7,0x4f,0x47,0xa8,0x2f,0x5d,0x47,0x67,0xeb,0x62,0x1d,0x69,0xa6,0x0e,0x51,0x1d,0x2c,0xed,0x6e,0x94,0xe9,0x48,0x4c,0x22,0xc2,0x93,0x79,0x6f,0x1b,0xc2,0x93,0x61,0x3d,0x8b,0xba
+.byte 0xcb,0xe9,0x4a,0x88,0x5e,0x19,0x50,0x14,0xfe,0xda,0x3f,0x4d,0x47,0x54,0xfc,0x1c,0x09,0x77,0x37,0x30,0xfe,0x75,0x9f,0xdd,0xa4,0x74,0x04,0x04,0x88,0xe0,0xac,0x93,0x64,0x6f,0xbf,0x50,0xd8,0xf0,0xf7,0xa0,0xfa,0x98,0x49,0xfa,0xf7,0x6e,0xcf,0xa2,0xbf,0xb6,0x07,0x15,0x0e,0x4e,0x21,0x74,0x0a,0xa6,0xa3,0x67,0xce,0xf9,0x3b,0xd6
+.byte 0x4c,0xc8,0x43,0xe3,0x3b,0x3b,0x6a,0x86,0x62,0x3f,0x5a,0xf3,0x3f,0xf9,0xeb,0xbf,0xa3,0x2a,0x83,0x8a,0x70,0x8f,0x01,0x65,0x17,0x9a,0xa6,0x26,0x3b,0x09,0x06,0x22,0x19,0xed,0xd7,0x25,0x4b,0xd2,0x9a,0x30,0xfe,0x1c,0x82,0x68,0x16,0x04,0x0e,0x04,0x8f,0xc6,0x92,0xbe,0xe4,0x43,0x98,0x1d,0x3b,0x10,0x15,0x5b,0xef,0x4e,0x60,0x5e
+.byte 0x6b,0xc9,0xde,0xb8,0x47,0x02,0x86,0x45,0x39,0x7a,0x1a,0xef,0x67,0x28,0xc5,0x40,0x73,0x2a,0xa7,0x12,0x9d,0x58,0x3a,0x34,0xc2,0xda,0x34,0xb0,0x48,0xd9,0x34,0xcd,0x18,0xe9,0x76,0x41,0x78,0x8f,0xe5,0xe8,0x3d,0xb2,0x01,0x3b,0x84,0xd1,0xca,0x5e,0x26,0x1d,0x8c,0xea,0xe1,0x46,0xa3,0xf9,0x11,0xac,0x0d,0x98,0x9f,0xd3,0x46,0x79
+.byte 0xff,0xad,0x99,0x32,0x63,0x96,0xbc,0x57,0x39,0x16,0xce,0x06,0x7e,0x63,0x78,0x7b,0x86,0x92,0x1a,0xe1,0x45,0xc0,0x73,0xe1,0xec,0xfc,0x88,0x8f,0xf8,0x36,0x0f,0x54,0x76,0x02,0x98,0x49,0x40,0xb9,0xef,0xd8,0x13,0x68,0xf5,0x1d,0x0a,0x98,0x65,0x21,0xc5,0x1a,0x22,0x4e,0x8e,0xad,0xa9,0x52,0x57,0xc4,0xc6,0xa8,0x48,0x01,0x7a,0x78
+.byte 0xc9,0xfc,0xdd,0xf3,0xc3,0x83,0xc0,0x06,0xb5,0x56,0x84,0xe2,0x0c,0x6b,0x80,0xd9,0x59,0xa1,0x3d,0xe3,0x56,0xf0,0xe3,0x3f,0x93,0x61,0xf7,0x8c,0x6b,0x40,0x65,0x6e,0x01,0xc2,0xa1,0xc1,0xb8,0x9b,0x15,0x6c,0xa1,0x18,0x4a,0x6c,0x8b,0x18,0x2d,0x8e,0x71,0x7a,0xa1,0x26,0xc1,0x4b,0xac,0x0c,0xca,0x08,0x33,0xef,0x35,0x33,0x63,0xeb
+.byte 0x57,0x6e,0x7e,0x36,0xe0,0x31,0xad,0x10,0x76,0xb7,0x45,0xd9,0x3a,0x92,0x66,0x69,0x13,0x61,0x59,0x87,0xfd,0x6b,0xf1,0x46,0x0a,0x7a,0x3f,0x29,0x88,0x5b,0x7d,0xef,0x07,0x02,0xa8,0xa1,0xdc,0xd4,0x0e,0x77,0x8f,0x68,0x32,0xbd,0x8e,0xd6,0x0b,0xe4,0xd1,0x75,0xc1,0xb0,0x74,0x6c,0x0e,0xc3,0x46,0x79,0x36,0x3b,0x5f,0x0e,0xa0,0xad
+.byte 0x28,0x8c,0xcb,0x01,0x8e,0x58,0x14,0x09,0xf1,0xd4,0x3b,0x2e,0xdc,0xbf,0x37,0x95,0x26,0xda,0xb6,0xcf,0xc8,0xa1,0xd4,0xec,0x72,0xf3,0x44,0xf5,0x4e,0x27,0x9b,0x2e,0x7c,0xfa,0x37,0x16,0x1d,0x7f,0x90,0x86,0xae,0x96,0x3b,0xe1,0xda,0xf7,0xc4,0x54,0x0b,0x51,0x7e,0x83,0xbe,0xed,0xd6,0x5f,0xd2,0x6d,0xbb,0xd3,0xc6,0x53,0x95,0x65
+.byte 0x3d,0x19,0xc2,0xc5,0xdf,0x47,0x00,0x2c,0x4b,0x2d,0xec,0x32,0xd5,0x28,0xb5,0x30,0xe0,0x79,0x15,0x2e,0xab,0x97,0xa8,0xcf,0xc5,0x40,0x98,0x30,0x22,0x9f,0xbc,0xdb,0x65,0x06,0xfc,0x58,0xe5,0x55,0x5b,0xe2,0xf8,0x6e,0xc6,0xfc,0xec,0x6c,0x14,0xd2,0xe3,0x9a,0x71,0x8a,0x61,0xea,0x39,0xc6,0x77,0x94,0xdf,0x7b,0x99,0x71,0xdd,0x18
+.byte 0xc6,0x03,0x2d,0x49,0xf6,0xc3,0xe8,0x2b,0x7e,0x3f,0x28,0xfc,0xc8,0xa1,0xb0,0x15,0x31,0x7e,0x83,0xb8,0x14,0x34,0x0e,0x7f,0xde,0x74,0x7b,0xbf,0xb7,0x8e,0xd9,0x31,0x90,0x16,0xb6,0x57,0x14,0x4a,0xc6,0x67,0x3d,0xb9,0x46,0x92,0xf2,0xf9,0x94,0x36,0x2b,0xd6,0x1f,0x84,0xa5,0x8c,0x0f,0xd9,0x8c,0x5f,0x97,0x7a,0x7b,0xff,0xc9,0xf5
+.byte 0x5e,0x13,0x5f,0x19,0x58,0xba,0xa6,0xe8,0x29,0xf4,0xb8,0x7e,0x98,0xb7,0xef,0x1b,0x00,0xe8,0x90,0x8f,0x86,0x4c,0xe0,0x51,0x13,0x8b,0xa1,0x37,0x40,0x38,0x51,0x2f,0x5a,0x9b,0x63,0x8f,0xce,0x9a,0x97,0x07,0x0d,0x8e,0xce,0xb1,0x66,0x89,0x78,0xca,0xa6,0x0c,0x20,0xc4,0xf1,0xe3,0xab,0xe2,0x1c,0x83,0x2b,0x46,0x97,0xe8,0x8f,0x94
+.byte 0xb4,0x71,0x40,0xde,0xa1,0x05,0x4b,0xed,0xbf,0x0c,0x46,0xe1,0x25,0xf1,0xd0,0x5a,0xdb,0x9c,0x2a,0x09,0x03,0x80,0x24,0xc1,0x22,0x02,0xa5,0xde,0xf6,0x4c,0xbc,0x93,0x37,0xa9,0x28,0xb3,0x92,0x19,0xa8,0x3f,0x71,0x90,0x62,0x78,0xaa,0x9a,0x0c,0xab,0x50,0xaf,0x89,0x2b,0xf1,0xf4,0x12,0xbd,0xc9,0xd5,0xee,0x64,0x8b,0x48,0x21,0xd6
+.byte 0xa1,0xa1,0xf2,0x68,0x4a,0xf8,0x06,0x3e,0x20,0x31,0x66,0xb7,0x2f,0x64,0x01,0x5a,0x46,0x14,0x85,0xfb,0xde,0x04,0xc3,0xe4,0xd6,0x25,0x14,0xa0,0xbe,0x4d,0x39,0xd8,0xe0,0x9b,0xb7,0x6b,0x00,0xe6,0x46,0xfb,0xcc,0xa8,0xad,0x67,0x12,0x2c,0x53,0x2c,0xb6,0x9f,0x6e,0xfe,0xbc,0xcc,0x2c,0xa8,0x09,0x17,0x00,0x8e,0xf1,0xf4,0x3e,0xa9
+.byte 0x92,0x4d,0x83,0xe6,0x3c,0xf0,0xd3,0x1c,0xaf,0x84,0x2c,0x59,0x7e,0xda,0x1e,0xfd,0x7d,0xf3,0xef,0x93,0x05,0x03,0xb0,0x76,0x69,0xb5,0x51,0xa8,0x65,0x8f,0x8a,0xf8,0x55,0x92,0x08,0xfe,0xbf,0xc1,0x95,0x98,0x58,0xb1,0xd3,0xb6,0x78,0x4f,0x2f,0x25,0xcb,0x9d,0x32,0x4f,0xa6,0xcc,0xf8,0x36,0xff,0x72,0xb3,0x93,0x3d,0xd8,0x0b,0xe6
+.byte 0xc6,0xf6,0xed,0xcc,0x2a,0xa5,0x44,0x6e,0xe2,0x2d,0x6e,0x02,0xb4,0x7c,0x24,0x7f,0x57,0x02,0x84,0x61,0x8e,0xbd,0x32,0x4e,0x41,0x92,0x01,0x1b,0x8b,0x1d,0xd1,0x1e,0x31,0xc1,0x4c,0x5b,0x0c,0xa7,0x48,0x52,0x67,0xc2,0xd9,0xdc,0x86,0x9d,0xbd,0x6c,0x19,0x95,0x00,0xf0,0xd4,0x47,0xaf,0xfe,0x5d,0xa5,0x81,0xbd,0x1b,0x42,0x62,0xce
+.byte 0x18,0x1b,0xa3,0x6f,0xf5,0x0b,0xb7,0x6a,0x3d,0xe3,0xcc,0x41,0x27,0xcd,0x49,0x4b,0xe5,0x2b,0xc4,0x28,0xfa,0xbe,0xd5,0x7e,0xb7,0xac,0xab,0x64,0x3b,0xe3,0x87,0xb1,0x33,0x8b,0xa8,0xe5,0x75,0xce,0x61,0x57,0x89,0xad,0x5f,0x61,0xdd,0x7c,0x06,0x2a,0x3f,0x50,0xb8,0x7e,0xd2,0xfb,0x32,0x83,0x07,0xd4,0xc5,0x3f,0xad,0x64,0x59,0x1f
+.byte 0x21,0x59,0x6f,0x1b,0xd7,0x40,0x89,0x28,0x18,0xac,0xca,0xee,0x92,0x1c,0x0d,0x88,0x98,0x7a,0x75,0x68,0xe0,0xe2,0x96,0xda,0x88,0xb3,0xc6,0x21,0x02,0x34,0xfa,0xae,0x0b,0x38,0xcf,0x1c,0x6c,0x7a,0xc9,0xd9,0x5f,0xf0,0x4c,0x73,0xfd,0xe6,0x14,0xf3,0x39,0xed,0xbc,0x28,0x2f,0xf8,0x79,0x02,0x39,0x05,0xf3,0x6a,0x88,0xd9,0x03,0xe2
+.byte 0xb9,0x65,0x81,0x3a,0x34,0x80,0x3f,0x17,0x37,0x1e,0xe8,0x7d,0x41,0x49,0xfb,0x70,0x5d,0x58,0x3a,0x71,0x7b,0x3e,0xd3,0x83,0x0b,0x1b,0x11,0xfc,0x53,0xce,0xc6,0xc4,0x39,0x55,0xbe,0xbe,0x32,0xa5,0x88,0xab,0xcd,0x38,0x78,0x3e,0x52,0xaf,0x64,0x42,0x10,0xc3,0x70,0x81,0x76,0xe9,0x7d,0x8e,0x46,0x41,0xca,0x2c,0x0c,0x4c,0x30,0xd3
+.byte 0xca,0x38,0xa3,0x97,0x2e,0x0f,0xa5,0x18,0x3b,0xaa,0x0f,0x00,0x75,0x35,0x9c,0xcd,0x28,0x83,0xd4,0xa7,0x7c,0xb9,0xcd,0xb5,0x55,0x29,0x4c,0x14,0xcd,0xfc,0x8f,0xaf,0x7d,0x69,0x4f,0xf7,0x0f,0xed,0x7c,0xa5,0x79,0x9d,0x36,0xbb,0x72,0xbc,0xf2,0x14,0xfd,0xf0,0x04,0x2a,0x89,0x1e,0xf7,0x80,0x4c,0x5e,0xb8,0xc1,0xdb,0xfa,0x3c,0x27
+.byte 0xbb,0x30,0x08,0x2b,0xd2,0xf8,0xdb,0xe0,0x8c,0x00,0xe4,0xca,0xa9,0xde,0xb0,0x14,0x5b,0xec,0x6b,0xe6,0x5c,0x90,0x17,0x02,0x59,0x5f,0x5f,0x51,0xf8,0x30,0x10,0x11,0xc4,0xdf,0x37,0x30,0x32,0xb1,0x4d,0x49,0xfe,0x82,0x87,0xd2,0x42,0xf5,0x38,0x76,0xf9,0xa5,0x28,0xfc,0x14,0xb2,0xe0,0x72,0x82,0xde,0xc8,0x47,0x9e,0x8f,0x8a,0xb5
+.byte 0x85,0x44,0x42,0x12,0xc6,0xc0,0xa5,0x60,0x5a,0x27,0xd0,0x36,0x14,0x7b,0x2a,0x83,0x98,0x92,0x08,0xe9,0x03,0xc9,0xc3,0xd3,0x36,0x97,0xba,0x5e,0xd5,0x51,0xcc,0x44,0xeb,0x81,0x76,0xae,0x28,0x94,0x0b,0xf6,0xc7,0xeb,0xae,0x61,0x6f,0x7b,0x34,0xb5,0x8c,0x5f,0x31,0xb6,0x23,0xe3,0xe7,0x4b,0x60,0xe6,0xba,0x8d,0x0e,0xd1,0xb2,0x37
+.byte 0x72,0x3d,0xc1,0x75,0x9b,0x5e,0xcb,0x0f,0xf9,0xe4,0xdb,0x82,0x4c,0xc4,0x37,0xef,0x9d,0xde,0x16,0x85,0xe9,0xc2,0x03,0xd8,0x5b,0xa1,0xff,0xfa,0xd4,0xd7,0x5c,0x34,0xb6,0x1e,0x25,0x96,0xf5,0x8b,0xc3,0xee,0x16,0x1f,0xf8,0x55,0x4e,0x1c,0x83,0x80,0x77,0x1d,0x4f,0xb6,0x95,0x1c,0x91,0x7d,0x50,0x25,0xf4,0x2a,0x5d,0x2e,0xc7,0x8a
+.byte 0x14,0xf8,0xb9,0xbc,0xab,0x5b,0xcd,0x47,0xb5,0xaf,0x85,0xc0,0x34,0x27,0x7d,0x6a,0x8c,0x84,0x8a,0xae,0x68,0x60,0x0e,0xa1,0x45,0xf7,0x83,0x66,0x91,0x69,0x30,0xed,0x26,0x5e,0xf5,0x48,0x6b,0x20,0xb3,0x11,0x50,0xf7,0x70,0x9d,0x10,0x50,0x44,0x87,0xfe,0x96,0x5c,0xc6,0xa4,0xa4,0xed,0x5e,0x7f,0x3d,0x90,0x19,0xbe,0x31,0xa3,0xdd
+.byte 0x44,0xbb,0x9b,0x51,0x5a,0x06,0x1d,0x2e,0xd7,0xef,0xd1,0x81,0xb6,0xec,0xc6,0x89,0xfb,0x13,0xc5,0x21,0xef,0x9a,0x1a,0x48,0xf2,0xf8,0xb3,0xa3,0xec,0x7f,0x85,0xc1,0xc6,0x8c,0x5f,0xa9,0x30,0x38,0x25,0x1e,0x8d,0xcf,0x18,0x24,0xef,0x5a,0x9a,0x14,0x31,0xc0,0x2c,0x88,0xa5,0x3f,0x50,0x8b,0xb1,0xda,0x5d,0x26,0xd9,0xd3,0x81,0xb1
+.byte 0xec,0xf0,0x42,0x88,0xd0,0x81,0x51,0xf9,0x1b,0xbc,0x43,0xa4,0x37,0xf1,0xd7,0x90,0x21,0x7e,0xa0,0x3e,0x63,0xfb,0x21,0xfa,0x12,0xfb,0xde,0xc7,0xbf,0xb3,0x58,0xe7,0x76,0x42,0x20,0x01,0x3d,0x66,0x80,0xf1,0xb8,0xaf,0xfa,0x7d,0x96,0x89,0x36,0x48,0x95,0xd9,0x6e,0x6d,0xe6,0x4f,0xff,0x2a,0x47,0x61,0xf2,0x04,0xb7,0x83,0x14,0xce
+.byte 0x0a,0x3c,0x73,0x17,0x50,0x88,0x03,0x25,0x4a,0xe3,0x13,0x55,0x8b,0x7e,0x50,0x38,0xfc,0x14,0x0b,0x04,0x8e,0xa8,0x5b,0xd6,0x72,0x20,0x60,0xe9,0xaa,0x22,0x82,0x11,0xc6,0xc4,0xd7,0xb9,0xc8,0x0c,0x7e,0x05,0xfb,0x90,0xe4,0x9c,0x28,0x89,0x29,0x99,0x63,0x4d,0xec,0x7b,0x50,0xbd,0xd8,0xa3,0x5b,0x50,0x77,0x19,0x81,0x92,0xce,0x82
+
+.align 5
+Lpoly:
+.quad 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001
+LRR: // 2^512 mod P precomputed for NIST P256 polynomial
+.quad 0x0000000000000003,0xfffffffbffffffff,0xfffffffffffffffe,0x00000004fffffffd
+Lone_mont:
+.quad 0x0000000000000001,0xffffffff00000000,0xffffffffffffffff,0x00000000fffffffe
+Lone:
+.quad 1,0,0,0
+Lord:
+.quad 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000
+LordK:
+.quad 0xccd1c8aaee00bc4f
+.byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+
+// void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_to_mont
+
+.align 6
+_ecp_nistz256_to_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-32]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+
+ ldr x3,LRR // bp[0]
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+ adr x2,LRR // &bp[0]
+
+ bl __ecp_nistz256_mul_mont
+
+ ldp x19,x20,[sp,#16]
+ ldp x29,x30,[sp],#32
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_from_mont(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_from_mont
+
+.align 4
+_ecp_nistz256_from_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-32]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+
+ mov x3,#1 // bp[0]
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+ adr x2,Lone // &bp[0]
+
+ bl __ecp_nistz256_mul_mont
+
+ ldp x19,x20,[sp,#16]
+ ldp x29,x30,[sp],#32
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_mul_mont(BN_ULONG x0[4],const BN_ULONG x1[4],
+// const BN_ULONG x2[4]);
+.globl _ecp_nistz256_mul_mont
+
+.align 4
+_ecp_nistz256_mul_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-32]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+
+ ldr x3,[x2] // bp[0]
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_mul_mont
+
+ ldp x19,x20,[sp,#16]
+ ldp x29,x30,[sp],#32
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_sqr_mont(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_sqr_mont
+
+.align 4
+_ecp_nistz256_sqr_mont:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-32]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_sqr_mont
+
+ ldp x19,x20,[sp,#16]
+ ldp x29,x30,[sp],#32
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_add(BN_ULONG x0[4],const BN_ULONG x1[4],
+// const BN_ULONG x2[4]);
+.globl _ecp_nistz256_add
+
+.align 4
+_ecp_nistz256_add:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ldp x14,x15,[x1]
+ ldp x8,x9,[x2]
+ ldp x16,x17,[x1,#16]
+ ldp x10,x11,[x2,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_add
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_div_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_div_by_2
+
+.align 4
+_ecp_nistz256_div_by_2:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ldp x14,x15,[x1]
+ ldp x16,x17,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_div_by_2
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_mul_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_mul_by_2
+
+.align 4
+_ecp_nistz256_mul_by_2:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ldp x14,x15,[x1]
+ ldp x16,x17,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+ mov x8,x14
+ mov x9,x15
+ mov x10,x16
+ mov x11,x17
+
+ bl __ecp_nistz256_add // ret = a+a // 2*a
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_mul_by_3(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_mul_by_3
+
+.align 4
+_ecp_nistz256_mul_by_3:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ldp x14,x15,[x1]
+ ldp x16,x17,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+ mov x8,x14
+ mov x9,x15
+ mov x10,x16
+ mov x11,x17
+ mov x4,x14
+ mov x5,x15
+ mov x6,x16
+ mov x7,x17
+
+ bl __ecp_nistz256_add // ret = a+a // 2*a
+
+ mov x8,x4
+ mov x9,x5
+ mov x10,x6
+ mov x11,x7
+
+ bl __ecp_nistz256_add // ret += a // 2*a+a=3*a
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_sub(BN_ULONG x0[4],const BN_ULONG x1[4],
+// const BN_ULONG x2[4]);
+.globl _ecp_nistz256_sub
+
+.align 4
+_ecp_nistz256_sub:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ldp x14,x15,[x1]
+ ldp x16,x17,[x1,#16]
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_sub_from
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// void ecp_nistz256_neg(BN_ULONG x0[4],const BN_ULONG x1[4]);
+.globl _ecp_nistz256_neg
+
+.align 4
+_ecp_nistz256_neg:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ mov x2,x1
+ mov x14,xzr // a = 0
+ mov x15,xzr
+ mov x16,xzr
+ mov x17,xzr
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ bl __ecp_nistz256_sub_from
+
+ ldp x29,x30,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+
+// note that __ecp_nistz256_mul_mont expects a[0-3] input pre-loaded
+// to x4-x7 and b[0] - to x3
+
+.align 4
+__ecp_nistz256_mul_mont:
+ mul x14,x4,x3 // a[0]*b[0]
+ umulh x8,x4,x3
+
+ mul x15,x5,x3 // a[1]*b[0]
+ umulh x9,x5,x3
+
+ mul x16,x6,x3 // a[2]*b[0]
+ umulh x10,x6,x3
+
+ mul x17,x7,x3 // a[3]*b[0]
+ umulh x11,x7,x3
+ ldr x3,[x2,#8] // b[1]
+
+ adds x15,x15,x8 // accumulate high parts of multiplication
+ lsl x8,x14,#32
+ adcs x16,x16,x9
+ lsr x9,x14,#32
+ adcs x17,x17,x10
+ adc x19,xzr,x11
+ mov x20,xzr
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ mul x8,x4,x3 // lo(a[0]*b[i])
+ adcs x15,x16,x9
+ mul x9,x5,x3 // lo(a[1]*b[i])
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ mul x10,x6,x3 // lo(a[2]*b[i])
+ adcs x17,x19,x11
+ mul x11,x7,x3 // lo(a[3]*b[i])
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts of multiplication
+ umulh x8,x4,x3 // hi(a[0]*b[i])
+ adcs x15,x15,x9
+ umulh x9,x5,x3 // hi(a[1]*b[i])
+ adcs x16,x16,x10
+ umulh x10,x6,x3 // hi(a[2]*b[i])
+ adcs x17,x17,x11
+ umulh x11,x7,x3 // hi(a[3]*b[i])
+ adc x19,x19,xzr
+ ldr x3,[x2,#8*(1+1)] // b[1+1]
+ adds x15,x15,x8 // accumulate high parts of multiplication
+ lsl x8,x14,#32
+ adcs x16,x16,x9
+ lsr x9,x14,#32
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ mul x8,x4,x3 // lo(a[0]*b[i])
+ adcs x15,x16,x9
+ mul x9,x5,x3 // lo(a[1]*b[i])
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ mul x10,x6,x3 // lo(a[2]*b[i])
+ adcs x17,x19,x11
+ mul x11,x7,x3 // lo(a[3]*b[i])
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts of multiplication
+ umulh x8,x4,x3 // hi(a[0]*b[i])
+ adcs x15,x15,x9
+ umulh x9,x5,x3 // hi(a[1]*b[i])
+ adcs x16,x16,x10
+ umulh x10,x6,x3 // hi(a[2]*b[i])
+ adcs x17,x17,x11
+ umulh x11,x7,x3 // hi(a[3]*b[i])
+ adc x19,x19,xzr
+ ldr x3,[x2,#8*(2+1)] // b[2+1]
+ adds x15,x15,x8 // accumulate high parts of multiplication
+ lsl x8,x14,#32
+ adcs x16,x16,x9
+ lsr x9,x14,#32
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ mul x8,x4,x3 // lo(a[0]*b[i])
+ adcs x15,x16,x9
+ mul x9,x5,x3 // lo(a[1]*b[i])
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ mul x10,x6,x3 // lo(a[2]*b[i])
+ adcs x17,x19,x11
+ mul x11,x7,x3 // lo(a[3]*b[i])
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts of multiplication
+ umulh x8,x4,x3 // hi(a[0]*b[i])
+ adcs x15,x15,x9
+ umulh x9,x5,x3 // hi(a[1]*b[i])
+ adcs x16,x16,x10
+ umulh x10,x6,x3 // hi(a[2]*b[i])
+ adcs x17,x17,x11
+ umulh x11,x7,x3 // hi(a[3]*b[i])
+ adc x19,x19,xzr
+ adds x15,x15,x8 // accumulate high parts of multiplication
+ lsl x8,x14,#32
+ adcs x16,x16,x9
+ lsr x9,x14,#32
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ // last reduction
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ adcs x15,x16,x9
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ adcs x17,x19,x11
+ adc x19,x20,xzr
+
+ adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus
+ sbcs x9,x15,x12
+ sbcs x10,x16,xzr
+ sbcs x11,x17,x13
+ sbcs xzr,x19,xzr // did it borrow?
+
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
+ csel x15,x15,x9,lo
+ csel x16,x16,x10,lo
+ stp x14,x15,[x0]
+ csel x17,x17,x11,lo
+ stp x16,x17,[x0,#16]
+
+ ret
+
+
+// note that __ecp_nistz256_sqr_mont expects a[0-3] input pre-loaded
+// to x4-x7
+
+.align 4
+__ecp_nistz256_sqr_mont:
+ // | | | | | |a1*a0| |
+ // | | | | |a2*a0| | |
+ // | |a3*a2|a3*a0| | | |
+ // | | | |a2*a1| | | |
+ // | | |a3*a1| | | | |
+ // *| | | | | | | | 2|
+ // +|a3*a3|a2*a2|a1*a1|a0*a0|
+ // |--+--+--+--+--+--+--+--|
+ // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow
+ //
+ // "can't overflow" below mark carrying into high part of
+ // multiplication result, which can't overflow, because it
+ // can never be all ones.
+
+ mul x15,x5,x4 // a[1]*a[0]
+ umulh x9,x5,x4
+ mul x16,x6,x4 // a[2]*a[0]
+ umulh x10,x6,x4
+ mul x17,x7,x4 // a[3]*a[0]
+ umulh x19,x7,x4
+
+ adds x16,x16,x9 // accumulate high parts of multiplication
+ mul x8,x6,x5 // a[2]*a[1]
+ umulh x9,x6,x5
+ adcs x17,x17,x10
+ mul x10,x7,x5 // a[3]*a[1]
+ umulh x11,x7,x5
+ adc x19,x19,xzr // can't overflow
+
+ mul x20,x7,x6 // a[3]*a[2]
+ umulh x1,x7,x6
+
+ adds x9,x9,x10 // accumulate high parts of multiplication
+ mul x14,x4,x4 // a[0]*a[0]
+ adc x10,x11,xzr // can't overflow
+
+ adds x17,x17,x8 // accumulate low parts of multiplication
+ umulh x4,x4,x4
+ adcs x19,x19,x9
+ mul x9,x5,x5 // a[1]*a[1]
+ adcs x20,x20,x10
+ umulh x5,x5,x5
+ adc x1,x1,xzr // can't overflow
+
+ adds x15,x15,x15 // acc[1-6]*=2
+ mul x10,x6,x6 // a[2]*a[2]
+ adcs x16,x16,x16
+ umulh x6,x6,x6
+ adcs x17,x17,x17
+ mul x11,x7,x7 // a[3]*a[3]
+ adcs x19,x19,x19
+ umulh x7,x7,x7
+ adcs x20,x20,x20
+ adcs x1,x1,x1
+ adc x2,xzr,xzr
+
+ adds x15,x15,x4 // +a[i]*a[i]
+ adcs x16,x16,x9
+ adcs x17,x17,x5
+ adcs x19,x19,x10
+ adcs x20,x20,x6
+ lsl x8,x14,#32
+ adcs x1,x1,x11
+ lsr x9,x14,#32
+ adc x2,x2,x7
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ adcs x15,x16,x9
+ lsl x8,x14,#32
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ lsr x9,x14,#32
+ adc x17,x11,xzr // can't overflow
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ adcs x15,x16,x9
+ lsl x8,x14,#32
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ lsr x9,x14,#32
+ adc x17,x11,xzr // can't overflow
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ adcs x15,x16,x9
+ lsl x8,x14,#32
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ lsr x9,x14,#32
+ adc x17,x11,xzr // can't overflow
+ subs x10,x14,x8 // "*0xffff0001"
+ sbc x11,x14,x9
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
+ adcs x15,x16,x9
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
+ adc x17,x11,xzr // can't overflow
+
+ adds x14,x14,x19 // accumulate upper half
+ adcs x15,x15,x20
+ adcs x16,x16,x1
+ adcs x17,x17,x2
+ adc x19,xzr,xzr
+
+ adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus
+ sbcs x9,x15,x12
+ sbcs x10,x16,xzr
+ sbcs x11,x17,x13
+ sbcs xzr,x19,xzr // did it borrow?
+
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
+ csel x15,x15,x9,lo
+ csel x16,x16,x10,lo
+ stp x14,x15,[x0]
+ csel x17,x17,x11,lo
+ stp x16,x17,[x0,#16]
+
+ ret
+
+
+// Note that __ecp_nistz256_add expects both input vectors pre-loaded to
+// x4-x7 and x8-x11. This is done because it's used in multiple
+// contexts, e.g. in multiplication by 2 and 3...
+
+.align 4
+__ecp_nistz256_add:
+ adds x14,x14,x8 // ret = a+b
+ adcs x15,x15,x9
+ adcs x16,x16,x10
+ adcs x17,x17,x11
+ adc x1,xzr,xzr // zap x1
+
+ adds x8,x14,#1 // subs x8,x4,#-1 // tmp = ret-modulus
+ sbcs x9,x15,x12
+ sbcs x10,x16,xzr
+ sbcs x11,x17,x13
+ sbcs xzr,x1,xzr // did subtraction borrow?
+
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
+ csel x15,x15,x9,lo
+ csel x16,x16,x10,lo
+ stp x14,x15,[x0]
+ csel x17,x17,x11,lo
+ stp x16,x17,[x0,#16]
+
+ ret
+
+
+
+.align 4
+__ecp_nistz256_sub_from:
+ ldp x8,x9,[x2]
+ ldp x10,x11,[x2,#16]
+ subs x14,x14,x8 // ret = a-b
+ sbcs x15,x15,x9
+ sbcs x16,x16,x10
+ sbcs x17,x17,x11
+ sbc x1,xzr,xzr // zap x1
+
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus
+ adcs x9,x15,x12
+ adcs x10,x16,xzr
+ adc x11,x17,x13
+ cmp x1,xzr // did subtraction borrow?
+
+ csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret
+ csel x15,x15,x9,eq
+ csel x16,x16,x10,eq
+ stp x14,x15,[x0]
+ csel x17,x17,x11,eq
+ stp x16,x17,[x0,#16]
+
+ ret
+
+
+
+.align 4
+__ecp_nistz256_sub_morf:
+ ldp x8,x9,[x2]
+ ldp x10,x11,[x2,#16]
+ subs x14,x8,x14 // ret = b-a
+ sbcs x15,x9,x15
+ sbcs x16,x10,x16
+ sbcs x17,x11,x17
+ sbc x1,xzr,xzr // zap x1
+
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus
+ adcs x9,x15,x12
+ adcs x10,x16,xzr
+ adc x11,x17,x13
+ cmp x1,xzr // did subtraction borrow?
+
+ csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret
+ csel x15,x15,x9,eq
+ csel x16,x16,x10,eq
+ stp x14,x15,[x0]
+ csel x17,x17,x11,eq
+ stp x16,x17,[x0,#16]
+
+ ret
+
+
+
+.align 4
+__ecp_nistz256_div_by_2:
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = a+modulus
+ adcs x9,x15,x12
+ adcs x10,x16,xzr
+ adcs x11,x17,x13
+ adc x1,xzr,xzr // zap x1
+ tst x14,#1 // is a even?
+
+ csel x14,x14,x8,eq // ret = even ? a : a+modulus
+ csel x15,x15,x9,eq
+ csel x16,x16,x10,eq
+ csel x17,x17,x11,eq
+ csel x1,xzr,x1,eq
+
+ lsr x14,x14,#1 // ret >>= 1
+ orr x14,x14,x15,lsl#63
+ lsr x15,x15,#1
+ orr x15,x15,x16,lsl#63
+ lsr x16,x16,#1
+ orr x16,x16,x17,lsl#63
+ lsr x17,x17,#1
+ stp x14,x15,[x0]
+ orr x17,x17,x1,lsl#63
+ stp x16,x17,[x0,#16]
+
+ ret
+
+.globl _ecp_nistz256_point_double
+
+.align 5
+_ecp_nistz256_point_double:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ sub sp,sp,#32*4
+
+Ldouble_shortcut:
+ ldp x14,x15,[x1,#32]
+ mov x21,x0
+ ldp x16,x17,[x1,#48]
+ mov x22,x1
+ ldr x12,Lpoly+8
+ mov x8,x14
+ ldr x13,Lpoly+24
+ mov x9,x15
+ ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont
+ mov x10,x16
+ mov x11,x17
+ ldp x6,x7,[x22,#64+16]
+ add x0,sp,#0
+ bl __ecp_nistz256_add // p256_mul_by_2(S, in_y);
+
+ add x0,sp,#64
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Zsqr, in_z);
+
+ ldp x8,x9,[x22]
+ ldp x10,x11,[x22,#16]
+ mov x4,x14 // put Zsqr aside for p256_sub
+ mov x5,x15
+ mov x6,x16
+ mov x7,x17
+ add x0,sp,#32
+ bl __ecp_nistz256_add // p256_add(M, Zsqr, in_x);
+
+ add x2,x22,#0
+ mov x14,x4 // restore Zsqr
+ mov x15,x5
+ ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont
+ mov x16,x6
+ mov x17,x7
+ ldp x6,x7,[sp,#0+16]
+ add x0,sp,#64
+ bl __ecp_nistz256_sub_morf // p256_sub(Zsqr, in_x, Zsqr);
+
+ add x0,sp,#0
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(S, S);
+
+ ldr x3,[x22,#32]
+ ldp x4,x5,[x22,#64]
+ ldp x6,x7,[x22,#64+16]
+ add x2,x22,#32
+ add x0,sp,#96
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(tmp0, in_z, in_y);
+
+ mov x8,x14
+ mov x9,x15
+ ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont
+ mov x10,x16
+ mov x11,x17
+ ldp x6,x7,[sp,#0+16]
+ add x0,x21,#64
+ bl __ecp_nistz256_add // p256_mul_by_2(res_z, tmp0);
+
+ add x0,sp,#96
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(tmp0, S);
+
+ ldr x3,[sp,#64] // forward load for p256_mul_mont
+ ldp x4,x5,[sp,#32]
+ ldp x6,x7,[sp,#32+16]
+ add x0,x21,#32
+ bl __ecp_nistz256_div_by_2 // p256_div_by_2(res_y, tmp0);
+
+ add x2,sp,#64
+ add x0,sp,#32
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(M, M, Zsqr);
+
+ mov x8,x14 // duplicate M
+ mov x9,x15
+ mov x10,x16
+ mov x11,x17
+ mov x4,x14 // put M aside
+ mov x5,x15
+ mov x6,x16
+ mov x7,x17
+ add x0,sp,#32
+ bl __ecp_nistz256_add
+ mov x8,x4 // restore M
+ mov x9,x5
+ ldr x3,[x22] // forward load for p256_mul_mont
+ mov x10,x6
+ ldp x4,x5,[sp,#0]
+ mov x11,x7
+ ldp x6,x7,[sp,#0+16]
+ bl __ecp_nistz256_add // p256_mul_by_3(M, M);
+
+ add x2,x22,#0
+ add x0,sp,#0
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, in_x);
+
+ mov x8,x14
+ mov x9,x15
+ ldp x4,x5,[sp,#32] // forward load for p256_sqr_mont
+ mov x10,x16
+ mov x11,x17
+ ldp x6,x7,[sp,#32+16]
+ add x0,sp,#96
+ bl __ecp_nistz256_add // p256_mul_by_2(tmp0, S);
+
+ add x0,x21,#0
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(res_x, M);
+
+ add x2,sp,#96
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, tmp0);
+
+ add x2,sp,#0
+ add x0,sp,#0
+ bl __ecp_nistz256_sub_morf // p256_sub(S, S, res_x);
+
+ ldr x3,[sp,#32]
+ mov x4,x14 // copy S
+ mov x5,x15
+ mov x6,x16
+ mov x7,x17
+ add x2,sp,#32
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, M);
+
+ add x2,x21,#32
+ add x0,x21,#32
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, S, res_y);
+
+ add sp,x29,#0 // destroy frame
+ ldp x19,x20,[x29,#16]
+ ldp x21,x22,[x29,#32]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _ecp_nistz256_point_add
+
+.align 5
+_ecp_nistz256_point_add:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#32*12
+
+ ldp x4,x5,[x2,#64] // in2_z
+ ldp x6,x7,[x2,#64+16]
+ mov x21,x0
+ mov x22,x1
+ mov x23,x2
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+ orr x8,x4,x5
+ orr x10,x6,x7
+ orr x25,x8,x10
+ cmp x25,#0
+ csetm x25,ne // ~in2infty
+ add x0,sp,#192
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z2sqr, in2_z);
+
+ ldp x4,x5,[x22,#64] // in1_z
+ ldp x6,x7,[x22,#64+16]
+ orr x8,x4,x5
+ orr x10,x6,x7
+ orr x24,x8,x10
+ cmp x24,#0
+ csetm x24,ne // ~in1infty
+ add x0,sp,#128
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
+
+ ldr x3,[x23,#64]
+ ldp x4,x5,[sp,#192]
+ ldp x6,x7,[sp,#192+16]
+ add x2,x23,#64
+ add x0,sp,#320
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, Z2sqr, in2_z);
+
+ ldr x3,[x22,#64]
+ ldp x4,x5,[sp,#128]
+ ldp x6,x7,[sp,#128+16]
+ add x2,x22,#64
+ add x0,sp,#352
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z);
+
+ ldr x3,[x22,#32]
+ ldp x4,x5,[sp,#320]
+ ldp x6,x7,[sp,#320+16]
+ add x2,x22,#32
+ add x0,sp,#320
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, S1, in1_y);
+
+ ldr x3,[x23,#32]
+ ldp x4,x5,[sp,#352]
+ ldp x6,x7,[sp,#352+16]
+ add x2,x23,#32
+ add x0,sp,#352
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y);
+
+ add x2,sp,#320
+ ldr x3,[sp,#192] // forward load for p256_mul_mont
+ ldp x4,x5,[x22]
+ ldp x6,x7,[x22,#16]
+ add x0,sp,#160
+ bl __ecp_nistz256_sub_from // p256_sub(R, S2, S1);
+
+ orr x14,x14,x15 // see if result is zero
+ orr x16,x16,x17
+ orr x26,x14,x16 // ~is_equal(S1,S2)
+
+ add x2,sp,#192
+ add x0,sp,#256
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U1, in1_x, Z2sqr);
+
+ ldr x3,[sp,#128]
+ ldp x4,x5,[x23]
+ ldp x6,x7,[x23,#16]
+ add x2,sp,#128
+ add x0,sp,#288
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in2_x, Z1sqr);
+
+ add x2,sp,#256
+ ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont
+ ldp x6,x7,[sp,#160+16]
+ add x0,sp,#96
+ bl __ecp_nistz256_sub_from // p256_sub(H, U2, U1);
+
+ orr x14,x14,x15 // see if result is zero
+ orr x16,x16,x17
+ orr x14,x14,x16 // ~is_equal(U1,U2)
+
+ mvn x27,x24 // -1/0 -> 0/-1
+ mvn x28,x25 // -1/0 -> 0/-1
+ orr x14,x14,x27
+ orr x14,x14,x28
+ orr x14,x14,x26
+ cbnz x14,Ladd_proceed // if(~is_equal(U1,U2) | in1infty | in2infty | ~is_equal(S1,S2))
+
+Ladd_double:
+ mov x1,x22
+ mov x0,x21
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ add sp,sp,#32*(12-4) // difference in stack frames
+ b Ldouble_shortcut
+
+.align 4
+Ladd_proceed:
+ add x0,sp,#192
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R);
+
+ ldr x3,[x22,#64]
+ ldp x4,x5,[sp,#96]
+ ldp x6,x7,[sp,#96+16]
+ add x2,x22,#64
+ add x0,sp,#64
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z);
+
+ ldp x4,x5,[sp,#96]
+ ldp x6,x7,[sp,#96+16]
+ add x0,sp,#128
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H);
+
+ ldr x3,[x23,#64]
+ ldp x4,x5,[sp,#64]
+ ldp x6,x7,[sp,#64+16]
+ add x2,x23,#64
+ add x0,sp,#64
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, res_z, in2_z);
+
+ ldr x3,[sp,#96]
+ ldp x4,x5,[sp,#128]
+ ldp x6,x7,[sp,#128+16]
+ add x2,sp,#96
+ add x0,sp,#224
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H);
+
+ ldr x3,[sp,#128]
+ ldp x4,x5,[sp,#256]
+ ldp x6,x7,[sp,#256+16]
+ add x2,sp,#128
+ add x0,sp,#288
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, U1, Hsqr);
+
+ mov x8,x14
+ mov x9,x15
+ mov x10,x16
+ mov x11,x17
+ add x0,sp,#128
+ bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2);
+
+ add x2,sp,#192
+ add x0,sp,#0
+ bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr);
+
+ add x2,sp,#224
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub);
+
+ add x2,sp,#288
+ ldr x3,[sp,#224] // forward load for p256_mul_mont
+ ldp x4,x5,[sp,#320]
+ ldp x6,x7,[sp,#320+16]
+ add x0,sp,#32
+ bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x);
+
+ add x2,sp,#224
+ add x0,sp,#352
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S1, Hcub);
+
+ ldr x3,[sp,#160]
+ ldp x4,x5,[sp,#32]
+ ldp x6,x7,[sp,#32+16]
+ add x2,sp,#160
+ add x0,sp,#32
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R);
+
+ add x2,sp,#352
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2);
+
+ ldp x4,x5,[sp,#0] // res
+ ldp x6,x7,[sp,#0+16]
+ ldp x8,x9,[x23] // in2
+ ldp x10,x11,[x23,#16]
+ ldp x14,x15,[x22,#0] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#0+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ ldp x4,x5,[sp,#0+0+32] // res
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ ldp x6,x7,[sp,#0+0+48]
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ ldp x8,x9,[x23,#0+32] // in2
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ ldp x10,x11,[x23,#0+48]
+ stp x14,x15,[x21,#0]
+ stp x16,x17,[x21,#0+16]
+ ldp x14,x15,[x22,#32] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#32+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ ldp x4,x5,[sp,#0+32+32] // res
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ ldp x6,x7,[sp,#0+32+48]
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ ldp x8,x9,[x23,#32+32] // in2
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ ldp x10,x11,[x23,#32+48]
+ stp x14,x15,[x21,#32]
+ stp x16,x17,[x21,#32+16]
+ ldp x14,x15,[x22,#64] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#64+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ stp x14,x15,[x21,#64]
+ stp x16,x17,[x21,#64+16]
+
+Ladd_done:
+ add sp,x29,#0 // destroy frame
+ ldp x19,x20,[x29,#16]
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#96
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _ecp_nistz256_point_add_affine
+
+.align 5
+_ecp_nistz256_point_add_affine:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-80]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ sub sp,sp,#32*10
+
+ mov x21,x0
+ mov x22,x1
+ mov x23,x2
+ ldr x12,Lpoly+8
+ ldr x13,Lpoly+24
+
+ ldp x4,x5,[x1,#64] // in1_z
+ ldp x6,x7,[x1,#64+16]
+ orr x8,x4,x5
+ orr x10,x6,x7
+ orr x24,x8,x10
+ cmp x24,#0
+ csetm x24,ne // ~in1infty
+
+ ldp x14,x15,[x2] // in2_x
+ ldp x16,x17,[x2,#16]
+ ldp x8,x9,[x2,#32] // in2_y
+ ldp x10,x11,[x2,#48]
+ orr x14,x14,x15
+ orr x16,x16,x17
+ orr x8,x8,x9
+ orr x10,x10,x11
+ orr x14,x14,x16
+ orr x8,x8,x10
+ orr x25,x14,x8
+ cmp x25,#0
+ csetm x25,ne // ~in2infty
+
+ add x0,sp,#128
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
+
+ mov x4,x14
+ mov x5,x15
+ mov x6,x16
+ mov x7,x17
+ ldr x3,[x23]
+ add x2,x23,#0
+ add x0,sp,#96
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, Z1sqr, in2_x);
+
+ add x2,x22,#0
+ ldr x3,[x22,#64] // forward load for p256_mul_mont
+ ldp x4,x5,[sp,#128]
+ ldp x6,x7,[sp,#128+16]
+ add x0,sp,#160
+ bl __ecp_nistz256_sub_from // p256_sub(H, U2, in1_x);
+
+ add x2,x22,#64
+ add x0,sp,#128
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z);
+
+ ldr x3,[x22,#64]
+ ldp x4,x5,[sp,#160]
+ ldp x6,x7,[sp,#160+16]
+ add x2,x22,#64
+ add x0,sp,#64
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z);
+
+ ldr x3,[x23,#32]
+ ldp x4,x5,[sp,#128]
+ ldp x6,x7,[sp,#128+16]
+ add x2,x23,#32
+ add x0,sp,#128
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y);
+
+ add x2,x22,#32
+ ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont
+ ldp x6,x7,[sp,#160+16]
+ add x0,sp,#192
+ bl __ecp_nistz256_sub_from // p256_sub(R, S2, in1_y);
+
+ add x0,sp,#224
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H);
+
+ ldp x4,x5,[sp,#192]
+ ldp x6,x7,[sp,#192+16]
+ add x0,sp,#288
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R);
+
+ ldr x3,[sp,#160]
+ ldp x4,x5,[sp,#224]
+ ldp x6,x7,[sp,#224+16]
+ add x2,sp,#160
+ add x0,sp,#256
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H);
+
+ ldr x3,[x22]
+ ldp x4,x5,[sp,#224]
+ ldp x6,x7,[sp,#224+16]
+ add x2,x22,#0
+ add x0,sp,#96
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in1_x, Hsqr);
+
+ mov x8,x14
+ mov x9,x15
+ mov x10,x16
+ mov x11,x17
+ add x0,sp,#224
+ bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2);
+
+ add x2,sp,#288
+ add x0,sp,#0
+ bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr);
+
+ add x2,sp,#256
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub);
+
+ add x2,sp,#96
+ ldr x3,[x22,#32] // forward load for p256_mul_mont
+ ldp x4,x5,[sp,#256]
+ ldp x6,x7,[sp,#256+16]
+ add x0,sp,#32
+ bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x);
+
+ add x2,x22,#32
+ add x0,sp,#128
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, in1_y, Hcub);
+
+ ldr x3,[sp,#192]
+ ldp x4,x5,[sp,#32]
+ ldp x6,x7,[sp,#32+16]
+ add x2,sp,#192
+ add x0,sp,#32
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R);
+
+ add x2,sp,#128
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2);
+
+ ldp x4,x5,[sp,#0] // res
+ ldp x6,x7,[sp,#0+16]
+ ldp x8,x9,[x23] // in2
+ ldp x10,x11,[x23,#16]
+ ldp x14,x15,[x22,#0] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#0+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ ldp x4,x5,[sp,#0+0+32] // res
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ ldp x6,x7,[sp,#0+0+48]
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ ldp x8,x9,[x23,#0+32] // in2
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ ldp x10,x11,[x23,#0+48]
+ stp x14,x15,[x21,#0]
+ stp x16,x17,[x21,#0+16]
+ adr x23,Lone_mont-64
+ ldp x14,x15,[x22,#32] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#32+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ ldp x4,x5,[sp,#0+32+32] // res
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ ldp x6,x7,[sp,#0+32+48]
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ ldp x8,x9,[x23,#32+32] // in2
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ ldp x10,x11,[x23,#32+48]
+ stp x14,x15,[x21,#32]
+ stp x16,x17,[x21,#32+16]
+ ldp x14,x15,[x22,#64] // in1
+ cmp x24,#0 // ~, remember?
+ ldp x16,x17,[x22,#64+16]
+ csel x8,x4,x8,ne
+ csel x9,x5,x9,ne
+ csel x10,x6,x10,ne
+ csel x11,x7,x11,ne
+ cmp x25,#0 // ~, remember?
+ csel x14,x8,x14,ne
+ csel x15,x9,x15,ne
+ csel x16,x10,x16,ne
+ csel x17,x11,x17,ne
+ stp x14,x15,[x21,#64]
+ stp x16,x17,[x21,#64+16]
+
+ add sp,x29,#0 // destroy frame
+ ldp x19,x20,[x29,#16]
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x29,x30,[sp],#80
+.long 0xd50323bf // autiasp
+ ret
+
+////////////////////////////////////////////////////////////////////////
+// void ecp_nistz256_ord_mul_mont(uint64_t res[4], uint64_t a[4],
+// uint64_t b[4]);
+.globl _ecp_nistz256_ord_mul_mont
+
+.align 4
+_ecp_nistz256_ord_mul_mont:
+ stp x29,x30,[sp,#-64]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+
+ adr x23,Lord
+ ldr x3,[x2] // bp[0]
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+
+ ldp x12,x13,[x23,#0]
+ ldp x21,x22,[x23,#16]
+ ldr x23,[x23,#32]
+
+ mul x14,x4,x3 // a[0]*b[0]
+ umulh x8,x4,x3
+
+ mul x15,x5,x3 // a[1]*b[0]
+ umulh x9,x5,x3
+
+ mul x16,x6,x3 // a[2]*b[0]
+ umulh x10,x6,x3
+
+ mul x17,x7,x3 // a[3]*b[0]
+ umulh x19,x7,x3
+
+ mul x24,x14,x23
+
+ adds x15,x15,x8 // accumulate high parts of multiplication
+ adcs x16,x16,x9
+ adcs x17,x17,x10
+ adc x19,x19,xzr
+ mov x20,xzr
+ ldr x3,[x2,#8*1] // b[i]
+
+ lsl x8,x24,#32
+ subs x16,x16,x24
+ lsr x9,x24,#32
+ sbcs x17,x17,x8
+ sbcs x19,x19,x9
+ sbc x20,x20,xzr
+
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ mul x8,x4,x3
+ adc x11,x11,xzr
+ mul x9,x5,x3
+
+ adds x14,x15,x10
+ mul x10,x6,x3
+ adcs x15,x16,x11
+ mul x11,x7,x3
+ adcs x16,x17,x24
+ adcs x17,x19,x24
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts
+ umulh x8,x4,x3
+ adcs x15,x15,x9
+ umulh x9,x5,x3
+ adcs x16,x16,x10
+ umulh x10,x6,x3
+ adcs x17,x17,x11
+ umulh x11,x7,x3
+ adc x19,x19,xzr
+ mul x24,x14,x23
+ adds x15,x15,x8 // accumulate high parts
+ adcs x16,x16,x9
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ ldr x3,[x2,#8*2] // b[i]
+
+ lsl x8,x24,#32
+ subs x16,x16,x24
+ lsr x9,x24,#32
+ sbcs x17,x17,x8
+ sbcs x19,x19,x9
+ sbc x20,x20,xzr
+
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ mul x8,x4,x3
+ adc x11,x11,xzr
+ mul x9,x5,x3
+
+ adds x14,x15,x10
+ mul x10,x6,x3
+ adcs x15,x16,x11
+ mul x11,x7,x3
+ adcs x16,x17,x24
+ adcs x17,x19,x24
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts
+ umulh x8,x4,x3
+ adcs x15,x15,x9
+ umulh x9,x5,x3
+ adcs x16,x16,x10
+ umulh x10,x6,x3
+ adcs x17,x17,x11
+ umulh x11,x7,x3
+ adc x19,x19,xzr
+ mul x24,x14,x23
+ adds x15,x15,x8 // accumulate high parts
+ adcs x16,x16,x9
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ ldr x3,[x2,#8*3] // b[i]
+
+ lsl x8,x24,#32
+ subs x16,x16,x24
+ lsr x9,x24,#32
+ sbcs x17,x17,x8
+ sbcs x19,x19,x9
+ sbc x20,x20,xzr
+
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ mul x8,x4,x3
+ adc x11,x11,xzr
+ mul x9,x5,x3
+
+ adds x14,x15,x10
+ mul x10,x6,x3
+ adcs x15,x16,x11
+ mul x11,x7,x3
+ adcs x16,x17,x24
+ adcs x17,x19,x24
+ adc x19,x20,xzr
+
+ adds x14,x14,x8 // accumulate low parts
+ umulh x8,x4,x3
+ adcs x15,x15,x9
+ umulh x9,x5,x3
+ adcs x16,x16,x10
+ umulh x10,x6,x3
+ adcs x17,x17,x11
+ umulh x11,x7,x3
+ adc x19,x19,xzr
+ mul x24,x14,x23
+ adds x15,x15,x8 // accumulate high parts
+ adcs x16,x16,x9
+ adcs x17,x17,x10
+ adcs x19,x19,x11
+ adc x20,xzr,xzr
+ lsl x8,x24,#32 // last reduction
+ subs x16,x16,x24
+ lsr x9,x24,#32
+ sbcs x17,x17,x8
+ sbcs x19,x19,x9
+ sbc x20,x20,xzr
+
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ adc x11,x11,xzr
+
+ adds x14,x15,x10
+ adcs x15,x16,x11
+ adcs x16,x17,x24
+ adcs x17,x19,x24
+ adc x19,x20,xzr
+
+ subs x8,x14,x12 // ret -= modulus
+ sbcs x9,x15,x13
+ sbcs x10,x16,x21
+ sbcs x11,x17,x22
+ sbcs xzr,x19,xzr
+
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
+ csel x15,x15,x9,lo
+ csel x16,x16,x10,lo
+ stp x14,x15,[x0]
+ csel x17,x17,x11,lo
+ stp x16,x17,[x0,#16]
+
+ ldp x19,x20,[sp,#16]
+ ldp x21,x22,[sp,#32]
+ ldp x23,x24,[sp,#48]
+ ldr x29,[sp],#64
+ ret
+
+
+////////////////////////////////////////////////////////////////////////
+// void ecp_nistz256_ord_sqr_mont(uint64_t res[4], uint64_t a[4],
+// int rep);
+.globl _ecp_nistz256_ord_sqr_mont
+
+.align 4
+_ecp_nistz256_ord_sqr_mont:
+ stp x29,x30,[sp,#-64]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+
+ adr x23,Lord
+ ldp x4,x5,[x1]
+ ldp x6,x7,[x1,#16]
+
+ ldp x12,x13,[x23,#0]
+ ldp x21,x22,[x23,#16]
+ ldr x23,[x23,#32]
+ b Loop_ord_sqr
+
+.align 4
+Loop_ord_sqr:
+ sub x2,x2,#1
+ ////////////////////////////////////////////////////////////////
+ // | | | | | |a1*a0| |
+ // | | | | |a2*a0| | |
+ // | |a3*a2|a3*a0| | | |
+ // | | | |a2*a1| | | |
+ // | | |a3*a1| | | | |
+ // *| | | | | | | | 2|
+ // +|a3*a3|a2*a2|a1*a1|a0*a0|
+ // |--+--+--+--+--+--+--+--|
+ // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow
+ //
+ // "can't overflow" below mark carrying into high part of
+ // multiplication result, which can't overflow, because it
+ // can never be all ones.
+
+ mul x15,x5,x4 // a[1]*a[0]
+ umulh x9,x5,x4
+ mul x16,x6,x4 // a[2]*a[0]
+ umulh x10,x6,x4
+ mul x17,x7,x4 // a[3]*a[0]
+ umulh x19,x7,x4
+
+ adds x16,x16,x9 // accumulate high parts of multiplication
+ mul x8,x6,x5 // a[2]*a[1]
+ umulh x9,x6,x5
+ adcs x17,x17,x10
+ mul x10,x7,x5 // a[3]*a[1]
+ umulh x11,x7,x5
+ adc x19,x19,xzr // can't overflow
+
+ mul x20,x7,x6 // a[3]*a[2]
+ umulh x1,x7,x6
+
+ adds x9,x9,x10 // accumulate high parts of multiplication
+ mul x14,x4,x4 // a[0]*a[0]
+ adc x10,x11,xzr // can't overflow
+
+ adds x17,x17,x8 // accumulate low parts of multiplication
+ umulh x4,x4,x4
+ adcs x19,x19,x9
+ mul x9,x5,x5 // a[1]*a[1]
+ adcs x20,x20,x10
+ umulh x5,x5,x5
+ adc x1,x1,xzr // can't overflow
+
+ adds x15,x15,x15 // acc[1-6]*=2
+ mul x10,x6,x6 // a[2]*a[2]
+ adcs x16,x16,x16
+ umulh x6,x6,x6
+ adcs x17,x17,x17
+ mul x11,x7,x7 // a[3]*a[3]
+ adcs x19,x19,x19
+ umulh x7,x7,x7
+ adcs x20,x20,x20
+ adcs x1,x1,x1
+ adc x3,xzr,xzr
+
+ adds x15,x15,x4 // +a[i]*a[i]
+ mul x24,x14,x23
+ adcs x16,x16,x9
+ adcs x17,x17,x5
+ adcs x19,x19,x10
+ adcs x20,x20,x6
+ adcs x1,x1,x11
+ adc x3,x3,x7
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ adc x11,x11,xzr
+
+ adds x14,x15,x10
+ adcs x15,x16,x11
+ adcs x16,x17,x24
+ adc x17,xzr,x24 // can't overflow
+ mul x11,x14,x23
+ lsl x8,x24,#32
+ subs x15,x15,x24
+ lsr x9,x24,#32
+ sbcs x16,x16,x8
+ sbc x17,x17,x9 // can't borrow
+ subs xzr,x14,#1
+ umulh x9,x12,x11
+ mul x10,x13,x11
+ umulh x24,x13,x11
+
+ adcs x10,x10,x9
+ adc x24,x24,xzr
+
+ adds x14,x15,x10
+ adcs x15,x16,x24
+ adcs x16,x17,x11
+ adc x17,xzr,x11 // can't overflow
+ mul x24,x14,x23
+ lsl x8,x11,#32
+ subs x15,x15,x11
+ lsr x9,x11,#32
+ sbcs x16,x16,x8
+ sbc x17,x17,x9 // can't borrow
+ subs xzr,x14,#1
+ umulh x9,x12,x24
+ mul x10,x13,x24
+ umulh x11,x13,x24
+
+ adcs x10,x10,x9
+ adc x11,x11,xzr
+
+ adds x14,x15,x10
+ adcs x15,x16,x11
+ adcs x16,x17,x24
+ adc x17,xzr,x24 // can't overflow
+ mul x11,x14,x23
+ lsl x8,x24,#32
+ subs x15,x15,x24
+ lsr x9,x24,#32
+ sbcs x16,x16,x8
+ sbc x17,x17,x9 // can't borrow
+ subs xzr,x14,#1
+ umulh x9,x12,x11
+ mul x10,x13,x11
+ umulh x24,x13,x11
+
+ adcs x10,x10,x9
+ adc x24,x24,xzr
+
+ adds x14,x15,x10
+ adcs x15,x16,x24
+ adcs x16,x17,x11
+ adc x17,xzr,x11 // can't overflow
+ lsl x8,x11,#32
+ subs x15,x15,x11
+ lsr x9,x11,#32
+ sbcs x16,x16,x8
+ sbc x17,x17,x9 // can't borrow
+ adds x14,x14,x19 // accumulate upper half
+ adcs x15,x15,x20
+ adcs x16,x16,x1
+ adcs x17,x17,x3
+ adc x19,xzr,xzr
+
+ subs x8,x14,x12 // ret -= modulus
+ sbcs x9,x15,x13
+ sbcs x10,x16,x21
+ sbcs x11,x17,x22
+ sbcs xzr,x19,xzr
+
+ csel x4,x14,x8,lo // ret = borrow ? ret : ret-modulus
+ csel x5,x15,x9,lo
+ csel x6,x16,x10,lo
+ csel x7,x17,x11,lo
+
+ cbnz x2,Loop_ord_sqr
+
+ stp x4,x5,[x0]
+ stp x6,x7,[x0,#16]
+
+ ldp x19,x20,[sp,#16]
+ ldp x21,x22,[sp,#32]
+ ldp x23,x24,[sp,#48]
+ ldr x29,[sp],#64
+ ret
+
+// void ecp_nistz256_scatter_w5(void *x0,const P256_POINT *x1,
+// int x2);
+.globl _ecp_nistz256_scatter_w5
+
+.align 4
+_ecp_nistz256_scatter_w5:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ add x0,x0,x2,lsl#2
+
+ ldp x4,x5,[x1] // X
+ ldp x6,x7,[x1,#16]
+ str w4,[x0,#64*0-4]
+ lsr x4,x4,#32
+ str w5,[x0,#64*1-4]
+ lsr x5,x5,#32
+ str w6,[x0,#64*2-4]
+ lsr x6,x6,#32
+ str w7,[x0,#64*3-4]
+ lsr x7,x7,#32
+ str w4,[x0,#64*4-4]
+ str w5,[x0,#64*5-4]
+ str w6,[x0,#64*6-4]
+ str w7,[x0,#64*7-4]
+ add x0,x0,#64*8
+
+ ldp x4,x5,[x1,#32] // Y
+ ldp x6,x7,[x1,#48]
+ str w4,[x0,#64*0-4]
+ lsr x4,x4,#32
+ str w5,[x0,#64*1-4]
+ lsr x5,x5,#32
+ str w6,[x0,#64*2-4]
+ lsr x6,x6,#32
+ str w7,[x0,#64*3-4]
+ lsr x7,x7,#32
+ str w4,[x0,#64*4-4]
+ str w5,[x0,#64*5-4]
+ str w6,[x0,#64*6-4]
+ str w7,[x0,#64*7-4]
+ add x0,x0,#64*8
+
+ ldp x4,x5,[x1,#64] // Z
+ ldp x6,x7,[x1,#80]
+ str w4,[x0,#64*0-4]
+ lsr x4,x4,#32
+ str w5,[x0,#64*1-4]
+ lsr x5,x5,#32
+ str w6,[x0,#64*2-4]
+ lsr x6,x6,#32
+ str w7,[x0,#64*3-4]
+ lsr x7,x7,#32
+ str w4,[x0,#64*4-4]
+ str w5,[x0,#64*5-4]
+ str w6,[x0,#64*6-4]
+ str w7,[x0,#64*7-4]
+
+ ldr x29,[sp],#16
+ ret
+
+
+// void ecp_nistz256_gather_w5(P256_POINT *x0,const void *x1,
+// int x2);
+.globl _ecp_nistz256_gather_w5
+
+.align 4
+_ecp_nistz256_gather_w5:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ cmp x2,xzr
+ csetm x3,ne
+ add x2,x2,x3
+ add x1,x1,x2,lsl#2
+
+ ldr w4,[x1,#64*0]
+ ldr w5,[x1,#64*1]
+ ldr w6,[x1,#64*2]
+ ldr w7,[x1,#64*3]
+ ldr w8,[x1,#64*4]
+ ldr w9,[x1,#64*5]
+ ldr w10,[x1,#64*6]
+ ldr w11,[x1,#64*7]
+ add x1,x1,#64*8
+ orr x4,x4,x8,lsl#32
+ orr x5,x5,x9,lsl#32
+ orr x6,x6,x10,lsl#32
+ orr x7,x7,x11,lsl#32
+ csel x4,x4,xzr,ne
+ csel x5,x5,xzr,ne
+ csel x6,x6,xzr,ne
+ csel x7,x7,xzr,ne
+ stp x4,x5,[x0] // X
+ stp x6,x7,[x0,#16]
+
+ ldr w4,[x1,#64*0]
+ ldr w5,[x1,#64*1]
+ ldr w6,[x1,#64*2]
+ ldr w7,[x1,#64*3]
+ ldr w8,[x1,#64*4]
+ ldr w9,[x1,#64*5]
+ ldr w10,[x1,#64*6]
+ ldr w11,[x1,#64*7]
+ add x1,x1,#64*8
+ orr x4,x4,x8,lsl#32
+ orr x5,x5,x9,lsl#32
+ orr x6,x6,x10,lsl#32
+ orr x7,x7,x11,lsl#32
+ csel x4,x4,xzr,ne
+ csel x5,x5,xzr,ne
+ csel x6,x6,xzr,ne
+ csel x7,x7,xzr,ne
+ stp x4,x5,[x0,#32] // Y
+ stp x6,x7,[x0,#48]
+
+ ldr w4,[x1,#64*0]
+ ldr w5,[x1,#64*1]
+ ldr w6,[x1,#64*2]
+ ldr w7,[x1,#64*3]
+ ldr w8,[x1,#64*4]
+ ldr w9,[x1,#64*5]
+ ldr w10,[x1,#64*6]
+ ldr w11,[x1,#64*7]
+ orr x4,x4,x8,lsl#32
+ orr x5,x5,x9,lsl#32
+ orr x6,x6,x10,lsl#32
+ orr x7,x7,x11,lsl#32
+ csel x4,x4,xzr,ne
+ csel x5,x5,xzr,ne
+ csel x6,x6,xzr,ne
+ csel x7,x7,xzr,ne
+ stp x4,x5,[x0,#64] // Z
+ stp x6,x7,[x0,#80]
+
+ ldr x29,[sp],#16
+ ret
+
+
+// void ecp_nistz256_scatter_w7(void *x0,const P256_POINT_AFFINE *x1,
+// int x2);
+.globl _ecp_nistz256_scatter_w7
+
+.align 4
+_ecp_nistz256_scatter_w7:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ add x0,x0,x2
+ mov x2,#64/8
+Loop_scatter_w7:
+ ldr x3,[x1],#8
+ subs x2,x2,#1
+ prfm pstl1strm,[x0,#4096+64*0]
+ prfm pstl1strm,[x0,#4096+64*1]
+ prfm pstl1strm,[x0,#4096+64*2]
+ prfm pstl1strm,[x0,#4096+64*3]
+ prfm pstl1strm,[x0,#4096+64*4]
+ prfm pstl1strm,[x0,#4096+64*5]
+ prfm pstl1strm,[x0,#4096+64*6]
+ prfm pstl1strm,[x0,#4096+64*7]
+ strb w3,[x0,#64*0]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*1]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*2]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*3]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*4]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*5]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*6]
+ lsr x3,x3,#8
+ strb w3,[x0,#64*7]
+ add x0,x0,#64*8
+ b.ne Loop_scatter_w7
+
+ ldr x29,[sp],#16
+ ret
+
+
+// void ecp_nistz256_gather_w7(P256_POINT_AFFINE *x0,const void *x1,
+// int x2);
+.globl _ecp_nistz256_gather_w7
+
+.align 4
+_ecp_nistz256_gather_w7:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ cmp x2,xzr
+ csetm x3,ne
+ add x2,x2,x3
+ add x1,x1,x2
+ mov x2,#64/8
+ nop
+Loop_gather_w7:
+ ldrb w4,[x1,#64*0]
+ prfm pldl1strm,[x1,#4096+64*0]
+ subs x2,x2,#1
+ ldrb w5,[x1,#64*1]
+ prfm pldl1strm,[x1,#4096+64*1]
+ ldrb w6,[x1,#64*2]
+ prfm pldl1strm,[x1,#4096+64*2]
+ ldrb w7,[x1,#64*3]
+ prfm pldl1strm,[x1,#4096+64*3]
+ ldrb w8,[x1,#64*4]
+ prfm pldl1strm,[x1,#4096+64*4]
+ ldrb w9,[x1,#64*5]
+ prfm pldl1strm,[x1,#4096+64*5]
+ ldrb w10,[x1,#64*6]
+ prfm pldl1strm,[x1,#4096+64*6]
+ ldrb w11,[x1,#64*7]
+ prfm pldl1strm,[x1,#4096+64*7]
+ add x1,x1,#64*8
+ orr x4,x4,x5,lsl#8
+ orr x6,x6,x7,lsl#8
+ orr x8,x8,x9,lsl#8
+ orr x4,x4,x6,lsl#16
+ orr x10,x10,x11,lsl#8
+ orr x4,x4,x8,lsl#32
+ orr x4,x4,x10,lsl#48
+ and x4,x4,x3
+ str x4,[x0],#8
+ b.ne Loop_gather_w7
+
+ ldr x29,[sp],#16
+ ret
+
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/modes/ghashv8-armx.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/modes/ghashv8-armx.S
new file mode 100644
index 0000000000..ccb4de5ea5
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/modes/ghashv8-armx.S
@@ -0,0 +1,552 @@
+#include "arm_arch.h"
+
+#if __ARM_MAX_ARCH__>=7
+.text
+
+.globl _gcm_init_v8
+
+.align 4
+_gcm_init_v8:
+ ld1 {v17.2d},[x1] //load input H
+ movi v19.16b,#0xe1
+ shl v19.2d,v19.2d,#57 //0xc2.0
+ ext v3.16b,v17.16b,v17.16b,#8
+ ushr v18.2d,v19.2d,#63
+ dup v17.4s,v17.s[1]
+ ext v16.16b,v18.16b,v19.16b,#8 //t0=0xc2....01
+ ushr v18.2d,v3.2d,#63
+ sshr v17.4s,v17.4s,#31 //broadcast carry bit
+ and v18.16b,v18.16b,v16.16b
+ shl v3.2d,v3.2d,#1
+ ext v18.16b,v18.16b,v18.16b,#8
+ and v16.16b,v16.16b,v17.16b
+ orr v3.16b,v3.16b,v18.16b //H<<<=1
+ eor v20.16b,v3.16b,v16.16b //twisted H
+ st1 {v20.2d},[x0],#16 //store Htable[0]
+
+ //calculate H^2
+ ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing
+ pmull v0.1q,v20.1d,v20.1d
+ eor v16.16b,v16.16b,v20.16b
+ pmull2 v2.1q,v20.2d,v20.2d
+ pmull v1.1q,v16.1d,v16.1d
+
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ eor v1.16b,v1.16b,v18.16b
+ pmull v18.1q,v0.1d,v19.1d //1st phase
+
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v22.16b,v0.16b,v18.16b
+
+ ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing
+ eor v17.16b,v17.16b,v22.16b
+ ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed
+ st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2]
+ //calculate H^3 and H^4
+ pmull v0.1q,v20.1d, v22.1d
+ pmull v5.1q,v22.1d,v22.1d
+ pmull2 v2.1q,v20.2d, v22.2d
+ pmull2 v7.1q,v22.2d,v22.2d
+ pmull v1.1q,v16.1d,v17.1d
+ pmull v6.1q,v17.1d,v17.1d
+
+ ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ ext v17.16b,v5.16b,v7.16b,#8
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v16.16b
+ eor v4.16b,v5.16b,v7.16b
+ eor v6.16b,v6.16b,v17.16b
+ eor v1.16b,v1.16b,v18.16b
+ pmull v18.1q,v0.1d,v19.1d //1st phase
+ eor v6.16b,v6.16b,v4.16b
+ pmull v4.1q,v5.1d,v19.1d
+
+ ins v2.d[0],v1.d[1]
+ ins v7.d[0],v6.d[1]
+ ins v1.d[1],v0.d[0]
+ ins v6.d[1],v5.d[0]
+ eor v0.16b,v1.16b,v18.16b
+ eor v5.16b,v6.16b,v4.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase
+ ext v4.16b,v5.16b,v5.16b,#8
+ pmull v0.1q,v0.1d,v19.1d
+ pmull v5.1q,v5.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v4.16b,v4.16b,v7.16b
+ eor v20.16b, v0.16b,v18.16b //H^3
+ eor v22.16b,v5.16b,v4.16b //H^4
+
+ ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing
+ ext v17.16b,v22.16b,v22.16b,#8
+ eor v16.16b,v16.16b,v20.16b
+ eor v17.16b,v17.16b,v22.16b
+ ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed
+ st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5]
+ ret
+
+.globl _gcm_gmult_v8
+
+.align 4
+_gcm_gmult_v8:
+ ld1 {v17.2d},[x0] //load Xi
+ movi v19.16b,#0xe1
+ ld1 {v20.2d,v21.2d},[x1] //load twisted H, ...
+ shl v19.2d,v19.2d,#57
+#ifndef __ARMEB__
+ rev64 v17.16b,v17.16b
+#endif
+ ext v3.16b,v17.16b,v17.16b,#8
+
+ pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo
+ eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing
+ pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi
+ pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi)
+
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ eor v1.16b,v1.16b,v18.16b
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v0.16b,v0.16b,v18.16b
+
+#ifndef __ARMEB__
+ rev64 v0.16b,v0.16b
+#endif
+ ext v0.16b,v0.16b,v0.16b,#8
+ st1 {v0.2d},[x0] //write out Xi
+
+ ret
+
+.globl _gcm_ghash_v8
+
+.align 4
+_gcm_ghash_v8:
+ cmp x3,#64
+ b.hs Lgcm_ghash_v8_4x
+ ld1 {v0.2d},[x0] //load [rotated] Xi
+ //"[rotated]" means that
+ //loaded value would have
+ //to be rotated in order to
+ //make it appear as in
+ //algorithm specification
+ subs x3,x3,#32 //see if x3 is 32 or larger
+ mov x12,#16 //x12 is used as post-
+ //increment for input pointer;
+ //as loop is modulo-scheduled
+ //x12 is zeroed just in time
+ //to preclude overstepping
+ //inp[len], which means that
+ //last block[s] are actually
+ //loaded twice, but last
+ //copy is not processed
+ ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2
+ movi v19.16b,#0xe1
+ ld1 {v22.2d},[x1]
+ csel x12,xzr,x12,eq //is it time to zero x12?
+ ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi
+ ld1 {v16.2d},[x2],#16 //load [rotated] I[0]
+ shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant
+#ifndef __ARMEB__
+ rev64 v16.16b,v16.16b
+ rev64 v0.16b,v0.16b
+#endif
+ ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0]
+ b.lo Lodd_tail_v8 //x3 was less than 32
+ ld1 {v17.2d},[x2],x12 //load [rotated] I[1]
+#ifndef __ARMEB__
+ rev64 v17.16b,v17.16b
+#endif
+ ext v7.16b,v17.16b,v17.16b,#8
+ eor v3.16b,v3.16b,v0.16b //I[i]^=Xi
+ pmull v4.1q,v20.1d,v7.1d //H·Ii+1
+ eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing
+ pmull2 v6.1q,v20.2d,v7.2d
+ b Loop_mod2x_v8
+
+.align 4
+Loop_mod2x_v8:
+ ext v18.16b,v3.16b,v3.16b,#8
+ subs x3,x3,#32 //is there more data?
+ pmull v0.1q,v22.1d,v3.1d //H^2.lo·Xi.lo
+ csel x12,xzr,x12,lo //is it time to zero x12?
+
+ pmull v5.1q,v21.1d,v17.1d
+ eor v18.16b,v18.16b,v3.16b //Karatsuba pre-processing
+ pmull2 v2.1q,v22.2d,v3.2d //H^2.hi·Xi.hi
+ eor v0.16b,v0.16b,v4.16b //accumulate
+ pmull2 v1.1q,v21.2d,v18.2d //(H^2.lo+H^2.hi)·(Xi.lo+Xi.hi)
+ ld1 {v16.2d},[x2],x12 //load [rotated] I[i+2]
+
+ eor v2.16b,v2.16b,v6.16b
+ csel x12,xzr,x12,eq //is it time to zero x12?
+ eor v1.16b,v1.16b,v5.16b
+
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3]
+#ifndef __ARMEB__
+ rev64 v16.16b,v16.16b
+#endif
+ eor v1.16b,v1.16b,v18.16b
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+
+#ifndef __ARMEB__
+ rev64 v17.16b,v17.16b
+#endif
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ ext v7.16b,v17.16b,v17.16b,#8
+ ext v3.16b,v16.16b,v16.16b,#8
+ eor v0.16b,v1.16b,v18.16b
+ pmull v4.1q,v20.1d,v7.1d //H·Ii+1
+ eor v3.16b,v3.16b,v2.16b //accumulate v3.16b early
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v3.16b,v3.16b,v18.16b
+ eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing
+ eor v3.16b,v3.16b,v0.16b
+ pmull2 v6.1q,v20.2d,v7.2d
+ b.hs Loop_mod2x_v8 //there was at least 32 more bytes
+
+ eor v2.16b,v2.16b,v18.16b
+ ext v3.16b,v16.16b,v16.16b,#8 //re-construct v3.16b
+ adds x3,x3,#32 //re-construct x3
+ eor v0.16b,v0.16b,v2.16b //re-construct v0.16b
+ b.eq Ldone_v8 //is x3 zero?
+Lodd_tail_v8:
+ ext v18.16b,v0.16b,v0.16b,#8
+ eor v3.16b,v3.16b,v0.16b //inp^=Xi
+ eor v17.16b,v16.16b,v18.16b //v17.16b is rotated inp^Xi
+
+ pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo
+ eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing
+ pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi
+ pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi)
+
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ eor v1.16b,v1.16b,v18.16b
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v0.16b,v0.16b,v18.16b
+
+Ldone_v8:
+#ifndef __ARMEB__
+ rev64 v0.16b,v0.16b
+#endif
+ ext v0.16b,v0.16b,v0.16b,#8
+ st1 {v0.2d},[x0] //write out Xi
+
+ ret
+
+
+.align 4
+gcm_ghash_v8_4x:
+Lgcm_ghash_v8_4x:
+ ld1 {v0.2d},[x0] //load [rotated] Xi
+ ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2
+ movi v19.16b,#0xe1
+ ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4
+ shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant
+
+ ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64
+#ifndef __ARMEB__
+ rev64 v0.16b,v0.16b
+ rev64 v5.16b,v5.16b
+ rev64 v6.16b,v6.16b
+ rev64 v7.16b,v7.16b
+ rev64 v4.16b,v4.16b
+#endif
+ ext v25.16b,v7.16b,v7.16b,#8
+ ext v24.16b,v6.16b,v6.16b,#8
+ ext v23.16b,v5.16b,v5.16b,#8
+
+ pmull v29.1q,v20.1d,v25.1d //H·Ii+3
+ eor v7.16b,v7.16b,v25.16b
+ pmull2 v31.1q,v20.2d,v25.2d
+ pmull v30.1q,v21.1d,v7.1d
+
+ pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2
+ eor v6.16b,v6.16b,v24.16b
+ pmull2 v24.1q,v22.2d,v24.2d
+ pmull2 v6.1q,v21.2d,v6.2d
+
+ eor v29.16b,v29.16b,v16.16b
+ eor v31.16b,v31.16b,v24.16b
+ eor v30.16b,v30.16b,v6.16b
+
+ pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1
+ eor v5.16b,v5.16b,v23.16b
+ pmull2 v23.1q,v26.2d,v23.2d
+ pmull v5.1q,v27.1d,v5.1d
+
+ eor v29.16b,v29.16b,v7.16b
+ eor v31.16b,v31.16b,v23.16b
+ eor v30.16b,v30.16b,v5.16b
+
+ subs x3,x3,#128
+ b.lo Ltail4x
+
+ b Loop4x
+
+.align 4
+Loop4x:
+ eor v16.16b,v4.16b,v0.16b
+ ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64
+ ext v3.16b,v16.16b,v16.16b,#8
+#ifndef __ARMEB__
+ rev64 v5.16b,v5.16b
+ rev64 v6.16b,v6.16b
+ rev64 v7.16b,v7.16b
+ rev64 v4.16b,v4.16b
+#endif
+
+ pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii)
+ eor v16.16b,v16.16b,v3.16b
+ pmull2 v2.1q,v28.2d,v3.2d
+ ext v25.16b,v7.16b,v7.16b,#8
+ pmull2 v1.1q,v27.2d,v16.2d
+
+ eor v0.16b,v0.16b,v29.16b
+ eor v2.16b,v2.16b,v31.16b
+ ext v24.16b,v6.16b,v6.16b,#8
+ eor v1.16b,v1.16b,v30.16b
+ ext v23.16b,v5.16b,v5.16b,#8
+
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ pmull v29.1q,v20.1d,v25.1d //H·Ii+3
+ eor v7.16b,v7.16b,v25.16b
+ eor v1.16b,v1.16b,v17.16b
+ pmull2 v31.1q,v20.2d,v25.2d
+ eor v1.16b,v1.16b,v18.16b
+ pmull v30.1q,v21.1d,v7.1d
+
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2
+ eor v6.16b,v6.16b,v24.16b
+ pmull2 v24.1q,v22.2d,v24.2d
+ eor v0.16b,v1.16b,v18.16b
+ pmull2 v6.1q,v21.2d,v6.2d
+
+ eor v29.16b,v29.16b,v16.16b
+ eor v31.16b,v31.16b,v24.16b
+ eor v30.16b,v30.16b,v6.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1
+ eor v5.16b,v5.16b,v23.16b
+ eor v18.16b,v18.16b,v2.16b
+ pmull2 v23.1q,v26.2d,v23.2d
+ pmull v5.1q,v27.1d,v5.1d
+
+ eor v0.16b,v0.16b,v18.16b
+ eor v29.16b,v29.16b,v7.16b
+ eor v31.16b,v31.16b,v23.16b
+ ext v0.16b,v0.16b,v0.16b,#8
+ eor v30.16b,v30.16b,v5.16b
+
+ subs x3,x3,#64
+ b.hs Loop4x
+
+Ltail4x:
+ eor v16.16b,v4.16b,v0.16b
+ ext v3.16b,v16.16b,v16.16b,#8
+
+ pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii)
+ eor v16.16b,v16.16b,v3.16b
+ pmull2 v2.1q,v28.2d,v3.2d
+ pmull2 v1.1q,v27.2d,v16.2d
+
+ eor v0.16b,v0.16b,v29.16b
+ eor v2.16b,v2.16b,v31.16b
+ eor v1.16b,v1.16b,v30.16b
+
+ adds x3,x3,#64
+ b.eq Ldone4x
+
+ cmp x3,#32
+ b.lo Lone
+ b.eq Ltwo
+Lthree:
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ ld1 {v4.2d,v5.2d,v6.2d},[x2]
+ eor v1.16b,v1.16b,v18.16b
+#ifndef __ARMEB__
+ rev64 v5.16b,v5.16b
+ rev64 v6.16b,v6.16b
+ rev64 v4.16b,v4.16b
+#endif
+
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ ext v24.16b,v6.16b,v6.16b,#8
+ ext v23.16b,v5.16b,v5.16b,#8
+ eor v0.16b,v1.16b,v18.16b
+
+ pmull v29.1q,v20.1d,v24.1d //H·Ii+2
+ eor v6.16b,v6.16b,v24.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ pmull2 v31.1q,v20.2d,v24.2d
+ pmull v30.1q,v21.1d,v6.1d
+ eor v0.16b,v0.16b,v18.16b
+ pmull v7.1q,v22.1d,v23.1d //H^2·Ii+1
+ eor v5.16b,v5.16b,v23.16b
+ ext v0.16b,v0.16b,v0.16b,#8
+
+ pmull2 v23.1q,v22.2d,v23.2d
+ eor v16.16b,v4.16b,v0.16b
+ pmull2 v5.1q,v21.2d,v5.2d
+ ext v3.16b,v16.16b,v16.16b,#8
+
+ eor v29.16b,v29.16b,v7.16b
+ eor v31.16b,v31.16b,v23.16b
+ eor v30.16b,v30.16b,v5.16b
+
+ pmull v0.1q,v26.1d,v3.1d //H^3·(Xi+Ii)
+ eor v16.16b,v16.16b,v3.16b
+ pmull2 v2.1q,v26.2d,v3.2d
+ pmull v1.1q,v27.1d,v16.1d
+
+ eor v0.16b,v0.16b,v29.16b
+ eor v2.16b,v2.16b,v31.16b
+ eor v1.16b,v1.16b,v30.16b
+ b Ldone4x
+
+.align 4
+Ltwo:
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ ld1 {v4.2d,v5.2d},[x2]
+ eor v1.16b,v1.16b,v18.16b
+#ifndef __ARMEB__
+ rev64 v5.16b,v5.16b
+ rev64 v4.16b,v4.16b
+#endif
+
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ ext v23.16b,v5.16b,v5.16b,#8
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v0.16b,v0.16b,v18.16b
+ ext v0.16b,v0.16b,v0.16b,#8
+
+ pmull v29.1q,v20.1d,v23.1d //H·Ii+1
+ eor v5.16b,v5.16b,v23.16b
+
+ eor v16.16b,v4.16b,v0.16b
+ ext v3.16b,v16.16b,v16.16b,#8
+
+ pmull2 v31.1q,v20.2d,v23.2d
+ pmull v30.1q,v21.1d,v5.1d
+
+ pmull v0.1q,v22.1d,v3.1d //H^2·(Xi+Ii)
+ eor v16.16b,v16.16b,v3.16b
+ pmull2 v2.1q,v22.2d,v3.2d
+ pmull2 v1.1q,v21.2d,v16.2d
+
+ eor v0.16b,v0.16b,v29.16b
+ eor v2.16b,v2.16b,v31.16b
+ eor v1.16b,v1.16b,v30.16b
+ b Ldone4x
+
+.align 4
+Lone:
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ ld1 {v4.2d},[x2]
+ eor v1.16b,v1.16b,v18.16b
+#ifndef __ARMEB__
+ rev64 v4.16b,v4.16b
+#endif
+
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v0.16b,v0.16b,v18.16b
+ ext v0.16b,v0.16b,v0.16b,#8
+
+ eor v16.16b,v4.16b,v0.16b
+ ext v3.16b,v16.16b,v16.16b,#8
+
+ pmull v0.1q,v20.1d,v3.1d
+ eor v16.16b,v16.16b,v3.16b
+ pmull2 v2.1q,v20.2d,v3.2d
+ pmull v1.1q,v21.1d,v16.1d
+
+Ldone4x:
+ ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
+ eor v18.16b,v0.16b,v2.16b
+ eor v1.16b,v1.16b,v17.16b
+ eor v1.16b,v1.16b,v18.16b
+
+ pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
+ ins v2.d[0],v1.d[1]
+ ins v1.d[1],v0.d[0]
+ eor v0.16b,v1.16b,v18.16b
+
+ ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
+ pmull v0.1q,v0.1d,v19.1d
+ eor v18.16b,v18.16b,v2.16b
+ eor v0.16b,v0.16b,v18.16b
+ ext v0.16b,v0.16b,v0.16b,#8
+
+#ifndef __ARMEB__
+ rev64 v0.16b,v0.16b
+#endif
+ st1 {v0.2d},[x0] //write out Xi
+
+ ret
+
+.byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 2
+#endif
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/poly1305/poly1305-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/poly1305/poly1305-armv8.S
new file mode 100644
index 0000000000..1729cec6d2
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/poly1305/poly1305-armv8.S
@@ -0,0 +1,870 @@
+#include "arm_arch.h"
+
+.text
+
+// forward "declarations" are required for Apple
+
+.private_extern _OPENSSL_armcap_P
+.globl _poly1305_init
+.private_extern _poly1305_init
+.globl _poly1305_blocks
+.private_extern _poly1305_blocks
+.globl _poly1305_emit
+.private_extern _poly1305_emit
+
+
+.align 5
+_poly1305_init:
+ cmp x1,xzr
+ stp xzr,xzr,[x0] // zero hash value
+ stp xzr,xzr,[x0,#16] // [along with is_base2_26]
+
+ csel x0,xzr,x0,eq
+ b.eq Lno_key
+
+#ifdef __ILP32__
+ ldrsw x11,LOPENSSL_armcap_P
+#else
+ ldr x11,LOPENSSL_armcap_P
+#endif
+ adr x10,LOPENSSL_armcap_P
+
+ ldp x7,x8,[x1] // load key
+ mov x9,#0xfffffffc0fffffff
+ movk x9,#0x0fff,lsl#48
+ ldr w17,[x10,x11]
+#ifdef __ARMEB__
+ rev x7,x7 // flip bytes
+ rev x8,x8
+#endif
+ and x7,x7,x9 // &=0ffffffc0fffffff
+ and x9,x9,#-4
+ and x8,x8,x9 // &=0ffffffc0ffffffc
+ stp x7,x8,[x0,#32] // save key value
+
+ tst w17,#ARMV7_NEON
+
+ adr x12,_poly1305_blocks
+ adr x7,poly1305_blocks_neon
+ adr x13,_poly1305_emit
+ adr x8,poly1305_emit_neon
+
+ csel x12,x12,x7,eq
+ csel x13,x13,x8,eq
+
+#ifdef __ILP32__
+ stp w12,w13,[x2]
+#else
+ stp x12,x13,[x2]
+#endif
+
+ mov x0,#1
+Lno_key:
+ ret
+
+
+
+.align 5
+_poly1305_blocks:
+ ands x2,x2,#-16
+ b.eq Lno_data
+
+ ldp x4,x5,[x0] // load hash value
+ ldp x7,x8,[x0,#32] // load key value
+ ldr x6,[x0,#16]
+ add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
+ b Loop
+
+.align 5
+Loop:
+ ldp x10,x11,[x1],#16 // load input
+ sub x2,x2,#16
+#ifdef __ARMEB__
+ rev x10,x10
+ rev x11,x11
+#endif
+ adds x4,x4,x10 // accumulate input
+ adcs x5,x5,x11
+
+ mul x12,x4,x7 // h0*r0
+ adc x6,x6,x3
+ umulh x13,x4,x7
+
+ mul x10,x5,x9 // h1*5*r1
+ umulh x11,x5,x9
+
+ adds x12,x12,x10
+ mul x10,x4,x8 // h0*r1
+ adc x13,x13,x11
+ umulh x14,x4,x8
+
+ adds x13,x13,x10
+ mul x10,x5,x7 // h1*r0
+ adc x14,x14,xzr
+ umulh x11,x5,x7
+
+ adds x13,x13,x10
+ mul x10,x6,x9 // h2*5*r1
+ adc x14,x14,x11
+ mul x11,x6,x7 // h2*r0
+
+ adds x13,x13,x10
+ adc x14,x14,x11
+
+ and x10,x14,#-4 // final reduction
+ and x6,x14,#3
+ add x10,x10,x14,lsr#2
+ adds x4,x12,x10
+ adcs x5,x13,xzr
+ adc x6,x6,xzr
+
+ cbnz x2,Loop
+
+ stp x4,x5,[x0] // store hash value
+ str x6,[x0,#16]
+
+Lno_data:
+ ret
+
+
+
+.align 5
+_poly1305_emit:
+ ldp x4,x5,[x0] // load hash base 2^64
+ ldr x6,[x0,#16]
+ ldp x10,x11,[x2] // load nonce
+
+ adds x12,x4,#5 // compare to modulus
+ adcs x13,x5,xzr
+ adc x14,x6,xzr
+
+ tst x14,#-4 // see if it's carried/borrowed
+
+ csel x4,x4,x12,eq
+ csel x5,x5,x13,eq
+
+#ifdef __ARMEB__
+ ror x10,x10,#32 // flip nonce words
+ ror x11,x11,#32
+#endif
+ adds x4,x4,x10 // accumulate nonce
+ adc x5,x5,x11
+#ifdef __ARMEB__
+ rev x4,x4 // flip output bytes
+ rev x5,x5
+#endif
+ stp x4,x5,[x1] // write result
+
+ ret
+
+
+.align 5
+poly1305_mult:
+ mul x12,x4,x7 // h0*r0
+ umulh x13,x4,x7
+
+ mul x10,x5,x9 // h1*5*r1
+ umulh x11,x5,x9
+
+ adds x12,x12,x10
+ mul x10,x4,x8 // h0*r1
+ adc x13,x13,x11
+ umulh x14,x4,x8
+
+ adds x13,x13,x10
+ mul x10,x5,x7 // h1*r0
+ adc x14,x14,xzr
+ umulh x11,x5,x7
+
+ adds x13,x13,x10
+ mul x10,x6,x9 // h2*5*r1
+ adc x14,x14,x11
+ mul x11,x6,x7 // h2*r0
+
+ adds x13,x13,x10
+ adc x14,x14,x11
+
+ and x10,x14,#-4 // final reduction
+ and x6,x14,#3
+ add x10,x10,x14,lsr#2
+ adds x4,x12,x10
+ adcs x5,x13,xzr
+ adc x6,x6,xzr
+
+ ret
+
+
+
+.align 5
+poly1305_splat:
+ and x12,x4,#0x03ffffff // base 2^64 -> base 2^26
+ ubfx x13,x4,#26,#26
+ extr x14,x5,x4,#52
+ and x14,x14,#0x03ffffff
+ ubfx x15,x5,#14,#26
+ extr x16,x6,x5,#40
+
+ str w12,[x0,#16*0] // r0
+ add w12,w13,w13,lsl#2 // r1*5
+ str w13,[x0,#16*1] // r1
+ add w13,w14,w14,lsl#2 // r2*5
+ str w12,[x0,#16*2] // s1
+ str w14,[x0,#16*3] // r2
+ add w14,w15,w15,lsl#2 // r3*5
+ str w13,[x0,#16*4] // s2
+ str w15,[x0,#16*5] // r3
+ add w15,w16,w16,lsl#2 // r4*5
+ str w14,[x0,#16*6] // s3
+ str w16,[x0,#16*7] // r4
+ str w15,[x0,#16*8] // s4
+
+ ret
+
+
+
+.align 5
+poly1305_blocks_neon:
+ ldr x17,[x0,#24]
+ cmp x2,#128
+ b.hs Lblocks_neon
+ cbz x17,_poly1305_blocks
+
+Lblocks_neon:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-80]!
+ add x29,sp,#0
+
+ ands x2,x2,#-16
+ b.eq Lno_data_neon
+
+ cbz x17,Lbase2_64_neon
+
+ ldp w10,w11,[x0] // load hash value base 2^26
+ ldp w12,w13,[x0,#8]
+ ldr w14,[x0,#16]
+
+ tst x2,#31
+ b.eq Leven_neon
+
+ ldp x7,x8,[x0,#32] // load key value
+
+ add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64
+ lsr x5,x12,#12
+ adds x4,x4,x12,lsl#52
+ add x5,x5,x13,lsl#14
+ adc x5,x5,xzr
+ lsr x6,x14,#24
+ adds x5,x5,x14,lsl#40
+ adc x14,x6,xzr // can be partially reduced...
+
+ ldp x12,x13,[x1],#16 // load input
+ sub x2,x2,#16
+ add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
+
+ and x10,x14,#-4 // ... so reduce
+ and x6,x14,#3
+ add x10,x10,x14,lsr#2
+ adds x4,x4,x10
+ adcs x5,x5,xzr
+ adc x6,x6,xzr
+
+#ifdef __ARMEB__
+ rev x12,x12
+ rev x13,x13
+#endif
+ adds x4,x4,x12 // accumulate input
+ adcs x5,x5,x13
+ adc x6,x6,x3
+
+ bl poly1305_mult
+ ldr x30,[sp,#8]
+
+ cbz x3,Lstore_base2_64_neon
+
+ and x10,x4,#0x03ffffff // base 2^64 -> base 2^26
+ ubfx x11,x4,#26,#26
+ extr x12,x5,x4,#52
+ and x12,x12,#0x03ffffff
+ ubfx x13,x5,#14,#26
+ extr x14,x6,x5,#40
+
+ cbnz x2,Leven_neon
+
+ stp w10,w11,[x0] // store hash value base 2^26
+ stp w12,w13,[x0,#8]
+ str w14,[x0,#16]
+ b Lno_data_neon
+
+.align 4
+Lstore_base2_64_neon:
+ stp x4,x5,[x0] // store hash value base 2^64
+ stp x6,xzr,[x0,#16] // note that is_base2_26 is zeroed
+ b Lno_data_neon
+
+.align 4
+Lbase2_64_neon:
+ ldp x7,x8,[x0,#32] // load key value
+
+ ldp x4,x5,[x0] // load hash value base 2^64
+ ldr x6,[x0,#16]
+
+ tst x2,#31
+ b.eq Linit_neon
+
+ ldp x12,x13,[x1],#16 // load input
+ sub x2,x2,#16
+ add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
+#ifdef __ARMEB__
+ rev x12,x12
+ rev x13,x13
+#endif
+ adds x4,x4,x12 // accumulate input
+ adcs x5,x5,x13
+ adc x6,x6,x3
+
+ bl poly1305_mult
+
+Linit_neon:
+ and x10,x4,#0x03ffffff // base 2^64 -> base 2^26
+ ubfx x11,x4,#26,#26
+ extr x12,x5,x4,#52
+ and x12,x12,#0x03ffffff
+ ubfx x13,x5,#14,#26
+ extr x14,x6,x5,#40
+
+ stp d8,d9,[sp,#16] // meet ABI requirements
+ stp d10,d11,[sp,#32]
+ stp d12,d13,[sp,#48]
+ stp d14,d15,[sp,#64]
+
+ fmov d24,x10
+ fmov d25,x11
+ fmov d26,x12
+ fmov d27,x13
+ fmov d28,x14
+
+ ////////////////////////////////// initialize r^n table
+ mov x4,x7 // r^1
+ add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2)
+ mov x5,x8
+ mov x6,xzr
+ add x0,x0,#48+12
+ bl poly1305_splat
+
+ bl poly1305_mult // r^2
+ sub x0,x0,#4
+ bl poly1305_splat
+
+ bl poly1305_mult // r^3
+ sub x0,x0,#4
+ bl poly1305_splat
+
+ bl poly1305_mult // r^4
+ sub x0,x0,#4
+ bl poly1305_splat
+ ldr x30,[sp,#8]
+
+ add x16,x1,#32
+ adr x17,Lzeros
+ subs x2,x2,#64
+ csel x16,x17,x16,lo
+
+ mov x4,#1
+ str x4,[x0,#-24] // set is_base2_26
+ sub x0,x0,#48 // restore original x0
+ b Ldo_neon
+
+.align 4
+Leven_neon:
+ add x16,x1,#32
+ adr x17,Lzeros
+ subs x2,x2,#64
+ csel x16,x17,x16,lo
+
+ stp d8,d9,[sp,#16] // meet ABI requirements
+ stp d10,d11,[sp,#32]
+ stp d12,d13,[sp,#48]
+ stp d14,d15,[sp,#64]
+
+ fmov d24,x10
+ fmov d25,x11
+ fmov d26,x12
+ fmov d27,x13
+ fmov d28,x14
+
+Ldo_neon:
+ ldp x8,x12,[x16],#16 // inp[2:3] (or zero)
+ ldp x9,x13,[x16],#48
+
+ lsl x3,x3,#24
+ add x15,x0,#48
+
+#ifdef __ARMEB__
+ rev x8,x8
+ rev x12,x12
+ rev x9,x9
+ rev x13,x13
+#endif
+ and x4,x8,#0x03ffffff // base 2^64 -> base 2^26
+ and x5,x9,#0x03ffffff
+ ubfx x6,x8,#26,#26
+ ubfx x7,x9,#26,#26
+ add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32
+ extr x8,x12,x8,#52
+ extr x9,x13,x9,#52
+ add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32
+ fmov d14,x4
+ and x8,x8,#0x03ffffff
+ and x9,x9,#0x03ffffff
+ ubfx x10,x12,#14,#26
+ ubfx x11,x13,#14,#26
+ add x12,x3,x12,lsr#40
+ add x13,x3,x13,lsr#40
+ add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32
+ fmov d15,x6
+ add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32
+ add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32
+ fmov d16,x8
+ fmov d17,x10
+ fmov d18,x12
+
+ ldp x8,x12,[x1],#16 // inp[0:1]
+ ldp x9,x13,[x1],#48
+
+ ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x15],#64
+ ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64
+ ld1 {v8.4s},[x15]
+
+#ifdef __ARMEB__
+ rev x8,x8
+ rev x12,x12
+ rev x9,x9
+ rev x13,x13
+#endif
+ and x4,x8,#0x03ffffff // base 2^64 -> base 2^26
+ and x5,x9,#0x03ffffff
+ ubfx x6,x8,#26,#26
+ ubfx x7,x9,#26,#26
+ add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32
+ extr x8,x12,x8,#52
+ extr x9,x13,x9,#52
+ add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32
+ fmov d9,x4
+ and x8,x8,#0x03ffffff
+ and x9,x9,#0x03ffffff
+ ubfx x10,x12,#14,#26
+ ubfx x11,x13,#14,#26
+ add x12,x3,x12,lsr#40
+ add x13,x3,x13,lsr#40
+ add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32
+ fmov d10,x6
+ add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32
+ add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32
+ movi v31.2d,#-1
+ fmov d11,x8
+ fmov d12,x10
+ fmov d13,x12
+ ushr v31.2d,v31.2d,#38
+
+ b.ls Lskip_loop
+
+.align 4
+Loop_neon:
+ ////////////////////////////////////////////////////////////////
+ // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2
+ // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^3+inp[7]*r
+ // ___________________/
+ // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2+inp[8])*r^2
+ // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^4+inp[7]*r^2+inp[9])*r
+ // ___________________/ ____________________/
+ //
+ // Note that we start with inp[2:3]*r^2. This is because it
+ // doesn't depend on reduction in previous iteration.
+ ////////////////////////////////////////////////////////////////
+ // d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0
+ // d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*5*r4
+ // d2 = h0*r2 + h1*r1 + h2*r0 + h3*5*r4 + h4*5*r3
+ // d1 = h0*r1 + h1*r0 + h2*5*r4 + h3*5*r3 + h4*5*r2
+ // d0 = h0*r0 + h1*5*r4 + h2*5*r3 + h3*5*r2 + h4*5*r1
+
+ subs x2,x2,#64
+ umull v23.2d,v14.2s,v7.s[2]
+ csel x16,x17,x16,lo
+ umull v22.2d,v14.2s,v5.s[2]
+ umull v21.2d,v14.2s,v3.s[2]
+ ldp x8,x12,[x16],#16 // inp[2:3] (or zero)
+ umull v20.2d,v14.2s,v1.s[2]
+ ldp x9,x13,[x16],#48
+ umull v19.2d,v14.2s,v0.s[2]
+#ifdef __ARMEB__
+ rev x8,x8
+ rev x12,x12
+ rev x9,x9
+ rev x13,x13
+#endif
+
+ umlal v23.2d,v15.2s,v5.s[2]
+ and x4,x8,#0x03ffffff // base 2^64 -> base 2^26
+ umlal v22.2d,v15.2s,v3.s[2]
+ and x5,x9,#0x03ffffff
+ umlal v21.2d,v15.2s,v1.s[2]
+ ubfx x6,x8,#26,#26
+ umlal v20.2d,v15.2s,v0.s[2]
+ ubfx x7,x9,#26,#26
+ umlal v19.2d,v15.2s,v8.s[2]
+ add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32
+
+ umlal v23.2d,v16.2s,v3.s[2]
+ extr x8,x12,x8,#52
+ umlal v22.2d,v16.2s,v1.s[2]
+ extr x9,x13,x9,#52
+ umlal v21.2d,v16.2s,v0.s[2]
+ add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32
+ umlal v20.2d,v16.2s,v8.s[2]
+ fmov d14,x4
+ umlal v19.2d,v16.2s,v6.s[2]
+ and x8,x8,#0x03ffffff
+
+ umlal v23.2d,v17.2s,v1.s[2]
+ and x9,x9,#0x03ffffff
+ umlal v22.2d,v17.2s,v0.s[2]
+ ubfx x10,x12,#14,#26
+ umlal v21.2d,v17.2s,v8.s[2]
+ ubfx x11,x13,#14,#26
+ umlal v20.2d,v17.2s,v6.s[2]
+ add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32
+ umlal v19.2d,v17.2s,v4.s[2]
+ fmov d15,x6
+
+ add v11.2s,v11.2s,v26.2s
+ add x12,x3,x12,lsr#40
+ umlal v23.2d,v18.2s,v0.s[2]
+ add x13,x3,x13,lsr#40
+ umlal v22.2d,v18.2s,v8.s[2]
+ add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32
+ umlal v21.2d,v18.2s,v6.s[2]
+ add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32
+ umlal v20.2d,v18.2s,v4.s[2]
+ fmov d16,x8
+ umlal v19.2d,v18.2s,v2.s[2]
+ fmov d17,x10
+
+ ////////////////////////////////////////////////////////////////
+ // (hash+inp[0:1])*r^4 and accumulate
+
+ add v9.2s,v9.2s,v24.2s
+ fmov d18,x12
+ umlal v22.2d,v11.2s,v1.s[0]
+ ldp x8,x12,[x1],#16 // inp[0:1]
+ umlal v19.2d,v11.2s,v6.s[0]
+ ldp x9,x13,[x1],#48
+ umlal v23.2d,v11.2s,v3.s[0]
+ umlal v20.2d,v11.2s,v8.s[0]
+ umlal v21.2d,v11.2s,v0.s[0]
+#ifdef __ARMEB__
+ rev x8,x8
+ rev x12,x12
+ rev x9,x9
+ rev x13,x13
+#endif
+
+ add v10.2s,v10.2s,v25.2s
+ umlal v22.2d,v9.2s,v5.s[0]
+ umlal v23.2d,v9.2s,v7.s[0]
+ and x4,x8,#0x03ffffff // base 2^64 -> base 2^26
+ umlal v21.2d,v9.2s,v3.s[0]
+ and x5,x9,#0x03ffffff
+ umlal v19.2d,v9.2s,v0.s[0]
+ ubfx x6,x8,#26,#26
+ umlal v20.2d,v9.2s,v1.s[0]
+ ubfx x7,x9,#26,#26
+
+ add v12.2s,v12.2s,v27.2s
+ add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32
+ umlal v22.2d,v10.2s,v3.s[0]
+ extr x8,x12,x8,#52
+ umlal v23.2d,v10.2s,v5.s[0]
+ extr x9,x13,x9,#52
+ umlal v19.2d,v10.2s,v8.s[0]
+ add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32
+ umlal v21.2d,v10.2s,v1.s[0]
+ fmov d9,x4
+ umlal v20.2d,v10.2s,v0.s[0]
+ and x8,x8,#0x03ffffff
+
+ add v13.2s,v13.2s,v28.2s
+ and x9,x9,#0x03ffffff
+ umlal v22.2d,v12.2s,v0.s[0]
+ ubfx x10,x12,#14,#26
+ umlal v19.2d,v12.2s,v4.s[0]
+ ubfx x11,x13,#14,#26
+ umlal v23.2d,v12.2s,v1.s[0]
+ add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32
+ umlal v20.2d,v12.2s,v6.s[0]
+ fmov d10,x6
+ umlal v21.2d,v12.2s,v8.s[0]
+ add x12,x3,x12,lsr#40
+
+ umlal v22.2d,v13.2s,v8.s[0]
+ add x13,x3,x13,lsr#40
+ umlal v19.2d,v13.2s,v2.s[0]
+ add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32
+ umlal v23.2d,v13.2s,v0.s[0]
+ add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32
+ umlal v20.2d,v13.2s,v4.s[0]
+ fmov d11,x8
+ umlal v21.2d,v13.2s,v6.s[0]
+ fmov d12,x10
+ fmov d13,x12
+
+ /////////////////////////////////////////////////////////////////
+ // lazy reduction as discussed in "NEON crypto" by D.J. Bernstein
+ // and P. Schwabe
+ //
+ // [see discussion in poly1305-armv4 module]
+
+ ushr v29.2d,v22.2d,#26
+ xtn v27.2s,v22.2d
+ ushr v30.2d,v19.2d,#26
+ and v19.16b,v19.16b,v31.16b
+ add v23.2d,v23.2d,v29.2d // h3 -> h4
+ bic v27.2s,#0xfc,lsl#24 // &=0x03ffffff
+ add v20.2d,v20.2d,v30.2d // h0 -> h1
+
+ ushr v29.2d,v23.2d,#26
+ xtn v28.2s,v23.2d
+ ushr v30.2d,v20.2d,#26
+ xtn v25.2s,v20.2d
+ bic v28.2s,#0xfc,lsl#24
+ add v21.2d,v21.2d,v30.2d // h1 -> h2
+
+ add v19.2d,v19.2d,v29.2d
+ shl v29.2d,v29.2d,#2
+ shrn v30.2s,v21.2d,#26
+ xtn v26.2s,v21.2d
+ add v19.2d,v19.2d,v29.2d // h4 -> h0
+ bic v25.2s,#0xfc,lsl#24
+ add v27.2s,v27.2s,v30.2s // h2 -> h3
+ bic v26.2s,#0xfc,lsl#24
+
+ shrn v29.2s,v19.2d,#26
+ xtn v24.2s,v19.2d
+ ushr v30.2s,v27.2s,#26
+ bic v27.2s,#0xfc,lsl#24
+ bic v24.2s,#0xfc,lsl#24
+ add v25.2s,v25.2s,v29.2s // h0 -> h1
+ add v28.2s,v28.2s,v30.2s // h3 -> h4
+
+ b.hi Loop_neon
+
+Lskip_loop:
+ dup v16.2d,v16.d[0]
+ add v11.2s,v11.2s,v26.2s
+
+ ////////////////////////////////////////////////////////////////
+ // multiply (inp[0:1]+hash) or inp[2:3] by r^2:r^1
+
+ adds x2,x2,#32
+ b.ne Long_tail
+
+ dup v16.2d,v11.d[0]
+ add v14.2s,v9.2s,v24.2s
+ add v17.2s,v12.2s,v27.2s
+ add v15.2s,v10.2s,v25.2s
+ add v18.2s,v13.2s,v28.2s
+
+Long_tail:
+ dup v14.2d,v14.d[0]
+ umull2 v19.2d,v16.4s,v6.4s
+ umull2 v22.2d,v16.4s,v1.4s
+ umull2 v23.2d,v16.4s,v3.4s
+ umull2 v21.2d,v16.4s,v0.4s
+ umull2 v20.2d,v16.4s,v8.4s
+
+ dup v15.2d,v15.d[0]
+ umlal2 v19.2d,v14.4s,v0.4s
+ umlal2 v21.2d,v14.4s,v3.4s
+ umlal2 v22.2d,v14.4s,v5.4s
+ umlal2 v23.2d,v14.4s,v7.4s
+ umlal2 v20.2d,v14.4s,v1.4s
+
+ dup v17.2d,v17.d[0]
+ umlal2 v19.2d,v15.4s,v8.4s
+ umlal2 v22.2d,v15.4s,v3.4s
+ umlal2 v21.2d,v15.4s,v1.4s
+ umlal2 v23.2d,v15.4s,v5.4s
+ umlal2 v20.2d,v15.4s,v0.4s
+
+ dup v18.2d,v18.d[0]
+ umlal2 v22.2d,v17.4s,v0.4s
+ umlal2 v23.2d,v17.4s,v1.4s
+ umlal2 v19.2d,v17.4s,v4.4s
+ umlal2 v20.2d,v17.4s,v6.4s
+ umlal2 v21.2d,v17.4s,v8.4s
+
+ umlal2 v22.2d,v18.4s,v8.4s
+ umlal2 v19.2d,v18.4s,v2.4s
+ umlal2 v23.2d,v18.4s,v0.4s
+ umlal2 v20.2d,v18.4s,v4.4s
+ umlal2 v21.2d,v18.4s,v6.4s
+
+ b.eq Lshort_tail
+
+ ////////////////////////////////////////////////////////////////
+ // (hash+inp[0:1])*r^4:r^3 and accumulate
+
+ add v9.2s,v9.2s,v24.2s
+ umlal v22.2d,v11.2s,v1.2s
+ umlal v19.2d,v11.2s,v6.2s
+ umlal v23.2d,v11.2s,v3.2s
+ umlal v20.2d,v11.2s,v8.2s
+ umlal v21.2d,v11.2s,v0.2s
+
+ add v10.2s,v10.2s,v25.2s
+ umlal v22.2d,v9.2s,v5.2s
+ umlal v19.2d,v9.2s,v0.2s
+ umlal v23.2d,v9.2s,v7.2s
+ umlal v20.2d,v9.2s,v1.2s
+ umlal v21.2d,v9.2s,v3.2s
+
+ add v12.2s,v12.2s,v27.2s
+ umlal v22.2d,v10.2s,v3.2s
+ umlal v19.2d,v10.2s,v8.2s
+ umlal v23.2d,v10.2s,v5.2s
+ umlal v20.2d,v10.2s,v0.2s
+ umlal v21.2d,v10.2s,v1.2s
+
+ add v13.2s,v13.2s,v28.2s
+ umlal v22.2d,v12.2s,v0.2s
+ umlal v19.2d,v12.2s,v4.2s
+ umlal v23.2d,v12.2s,v1.2s
+ umlal v20.2d,v12.2s,v6.2s
+ umlal v21.2d,v12.2s,v8.2s
+
+ umlal v22.2d,v13.2s,v8.2s
+ umlal v19.2d,v13.2s,v2.2s
+ umlal v23.2d,v13.2s,v0.2s
+ umlal v20.2d,v13.2s,v4.2s
+ umlal v21.2d,v13.2s,v6.2s
+
+Lshort_tail:
+ ////////////////////////////////////////////////////////////////
+ // horizontal add
+
+ addp v22.2d,v22.2d,v22.2d
+ ldp d8,d9,[sp,#16] // meet ABI requirements
+ addp v19.2d,v19.2d,v19.2d
+ ldp d10,d11,[sp,#32]
+ addp v23.2d,v23.2d,v23.2d
+ ldp d12,d13,[sp,#48]
+ addp v20.2d,v20.2d,v20.2d
+ ldp d14,d15,[sp,#64]
+ addp v21.2d,v21.2d,v21.2d
+
+ ////////////////////////////////////////////////////////////////
+ // lazy reduction, but without narrowing
+
+ ushr v29.2d,v22.2d,#26
+ and v22.16b,v22.16b,v31.16b
+ ushr v30.2d,v19.2d,#26
+ and v19.16b,v19.16b,v31.16b
+
+ add v23.2d,v23.2d,v29.2d // h3 -> h4
+ add v20.2d,v20.2d,v30.2d // h0 -> h1
+
+ ushr v29.2d,v23.2d,#26
+ and v23.16b,v23.16b,v31.16b
+ ushr v30.2d,v20.2d,#26
+ and v20.16b,v20.16b,v31.16b
+ add v21.2d,v21.2d,v30.2d // h1 -> h2
+
+ add v19.2d,v19.2d,v29.2d
+ shl v29.2d,v29.2d,#2
+ ushr v30.2d,v21.2d,#26
+ and v21.16b,v21.16b,v31.16b
+ add v19.2d,v19.2d,v29.2d // h4 -> h0
+ add v22.2d,v22.2d,v30.2d // h2 -> h3
+
+ ushr v29.2d,v19.2d,#26
+ and v19.16b,v19.16b,v31.16b
+ ushr v30.2d,v22.2d,#26
+ and v22.16b,v22.16b,v31.16b
+ add v20.2d,v20.2d,v29.2d // h0 -> h1
+ add v23.2d,v23.2d,v30.2d // h3 -> h4
+
+ ////////////////////////////////////////////////////////////////
+ // write the result, can be partially reduced
+
+ st4 {v19.s,v20.s,v21.s,v22.s}[0],[x0],#16
+ st1 {v23.s}[0],[x0]
+
+Lno_data_neon:
+ ldr x29,[sp],#80
+.long 0xd50323bf // autiasp
+ ret
+
+
+
+.align 5
+poly1305_emit_neon:
+ ldr x17,[x0,#24]
+ cbz x17,_poly1305_emit
+
+ ldp w10,w11,[x0] // load hash value base 2^26
+ ldp w12,w13,[x0,#8]
+ ldr w14,[x0,#16]
+
+ add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64
+ lsr x5,x12,#12
+ adds x4,x4,x12,lsl#52
+ add x5,x5,x13,lsl#14
+ adc x5,x5,xzr
+ lsr x6,x14,#24
+ adds x5,x5,x14,lsl#40
+ adc x6,x6,xzr // can be partially reduced...
+
+ ldp x10,x11,[x2] // load nonce
+
+ and x12,x6,#-4 // ... so reduce
+ add x12,x12,x6,lsr#2
+ and x6,x6,#3
+ adds x4,x4,x12
+ adcs x5,x5,xzr
+ adc x6,x6,xzr
+
+ adds x12,x4,#5 // compare to modulus
+ adcs x13,x5,xzr
+ adc x14,x6,xzr
+
+ tst x14,#-4 // see if it's carried/borrowed
+
+ csel x4,x4,x12,eq
+ csel x5,x5,x13,eq
+
+#ifdef __ARMEB__
+ ror x10,x10,#32 // flip nonce words
+ ror x11,x11,#32
+#endif
+ adds x4,x4,x10 // accumulate nonce
+ adc x5,x5,x11
+#ifdef __ARMEB__
+ rev x4,x4 // flip output bytes
+ rev x5,x5
+#endif
+ stp x4,x5,[x1] // write result
+
+ ret
+
+
+.align 5
+Lzeros:
+.long 0,0,0,0,0,0,0,0
+LOPENSSL_armcap_P:
+#ifdef __ILP32__
+.long _OPENSSL_armcap_P-.
+#else
+.quad _OPENSSL_armcap_P-.
+#endif
+.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 2
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/keccak1600-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/keccak1600-armv8.S
new file mode 100644
index 0000000000..ecb1151893
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/keccak1600-armv8.S
@@ -0,0 +1,1095 @@
+.text
+
+.align 8 // strategic alignment and padding that allows to use
+ // address value as loop termination condition...
+.quad 0,0,0,0,0,0,0,0
+
+iotas:
+.quad 0x0000000000000001
+.quad 0x0000000000008082
+.quad 0x800000000000808a
+.quad 0x8000000080008000
+.quad 0x000000000000808b
+.quad 0x0000000080000001
+.quad 0x8000000080008081
+.quad 0x8000000000008009
+.quad 0x000000000000008a
+.quad 0x0000000000000088
+.quad 0x0000000080008009
+.quad 0x000000008000000a
+.quad 0x000000008000808b
+.quad 0x800000000000008b
+.quad 0x8000000000008089
+.quad 0x8000000000008003
+.quad 0x8000000000008002
+.quad 0x8000000000000080
+.quad 0x000000000000800a
+.quad 0x800000008000000a
+.quad 0x8000000080008081
+.quad 0x8000000000008080
+.quad 0x0000000080000001
+.quad 0x8000000080008008
+
+
+.align 5
+KeccakF1600_int:
+ adr x28,iotas
+.long 0xd503233f // paciasp
+ stp x28,x30,[sp,#16] // 32 bytes on top are mine
+ b Loop
+.align 4
+Loop:
+ ////////////////////////////////////////// Theta
+ eor x26,x0,x5
+ stp x4,x9,[sp,#0] // offload pair...
+ eor x27,x1,x6
+ eor x28,x2,x7
+ eor x30,x3,x8
+ eor x4,x4,x9
+ eor x26,x26,x10
+ eor x27,x27,x11
+ eor x28,x28,x12
+ eor x30,x30,x13
+ eor x4,x4,x14
+ eor x26,x26,x15
+ eor x27,x27,x16
+ eor x28,x28,x17
+ eor x30,x30,x25
+ eor x4,x4,x19
+ eor x26,x26,x20
+ eor x28,x28,x22
+ eor x27,x27,x21
+ eor x30,x30,x23
+ eor x4,x4,x24
+
+ eor x9,x26,x28,ror#63
+
+ eor x1,x1,x9
+ eor x6,x6,x9
+ eor x11,x11,x9
+ eor x16,x16,x9
+ eor x21,x21,x9
+
+ eor x9,x27,x30,ror#63
+ eor x28,x28,x4,ror#63
+ eor x30,x30,x26,ror#63
+ eor x4,x4,x27,ror#63
+
+ eor x27, x2,x9 // mov x27,x2
+ eor x7,x7,x9
+ eor x12,x12,x9
+ eor x17,x17,x9
+ eor x22,x22,x9
+
+ eor x0,x0,x4
+ eor x5,x5,x4
+ eor x10,x10,x4
+ eor x15,x15,x4
+ eor x20,x20,x4
+ ldp x4,x9,[sp,#0] // re-load offloaded data
+ eor x26, x3,x28 // mov x26,x3
+ eor x8,x8,x28
+ eor x13,x13,x28
+ eor x25,x25,x28
+ eor x23,x23,x28
+
+ eor x28, x4,x30 // mov x28,x4
+ eor x9,x9,x30
+ eor x14,x14,x30
+ eor x19,x19,x30
+ eor x24,x24,x30
+
+ ////////////////////////////////////////// Rho+Pi
+ mov x30,x1
+ ror x1,x6,#64-44
+ //mov x27,x2
+ ror x2,x12,#64-43
+ //mov x26,x3
+ ror x3,x25,#64-21
+ //mov x28,x4
+ ror x4,x24,#64-14
+
+ ror x6,x9,#64-20
+ ror x12,x13,#64-25
+ ror x25,x17,#64-15
+ ror x24,x21,#64-2
+
+ ror x9,x22,#64-61
+ ror x13,x19,#64-8
+ ror x17,x11,#64-10
+ ror x21,x8,#64-55
+
+ ror x22,x14,#64-39
+ ror x19,x23,#64-56
+ ror x11,x7,#64-6
+ ror x8,x16,#64-45
+
+ ror x14,x20,#64-18
+ ror x23,x15,#64-41
+ ror x7,x10,#64-3
+ ror x16,x5,#64-36
+
+ ror x5,x26,#64-28
+ ror x10,x30,#64-1
+ ror x15,x28,#64-27
+ ror x20,x27,#64-62
+
+ ////////////////////////////////////////// Chi+Iota
+ bic x26,x2,x1
+ bic x27,x3,x2
+ bic x28,x0,x4
+ bic x30,x1,x0
+ eor x0,x0,x26
+ bic x26,x4,x3
+ eor x1,x1,x27
+ ldr x27,[sp,#16]
+ eor x3,x3,x28
+ eor x4,x4,x30
+ eor x2,x2,x26
+ ldr x30,[x27],#8 // Iota[i++]
+
+ bic x26,x7,x6
+ tst x27,#255 // are we done?
+ str x27,[sp,#16]
+ bic x27,x8,x7
+ bic x28,x5,x9
+ eor x0,x0,x30 // A[0][0] ^= Iota
+ bic x30,x6,x5
+ eor x5,x5,x26
+ bic x26,x9,x8
+ eor x6,x6,x27
+ eor x8,x8,x28
+ eor x9,x9,x30
+ eor x7,x7,x26
+
+ bic x26,x12,x11
+ bic x27,x13,x12
+ bic x28,x10,x14
+ bic x30,x11,x10
+ eor x10,x10,x26
+ bic x26,x14,x13
+ eor x11,x11,x27
+ eor x13,x13,x28
+ eor x14,x14,x30
+ eor x12,x12,x26
+
+ bic x26,x17,x16
+ bic x27,x25,x17
+ bic x28,x15,x19
+ bic x30,x16,x15
+ eor x15,x15,x26
+ bic x26,x19,x25
+ eor x16,x16,x27
+ eor x25,x25,x28
+ eor x19,x19,x30
+ eor x17,x17,x26
+
+ bic x26,x22,x21
+ bic x27,x23,x22
+ bic x28,x20,x24
+ bic x30,x21,x20
+ eor x20,x20,x26
+ bic x26,x24,x23
+ eor x21,x21,x27
+ eor x23,x23,x28
+ eor x24,x24,x30
+ eor x22,x22,x26
+
+ bne Loop
+
+ ldr x30,[sp,#24]
+.long 0xd50323bf // autiasp
+ ret
+
+
+
+.align 5
+KeccakF1600:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#48
+
+ str x0,[sp,#32] // offload argument
+ mov x26,x0
+ ldp x0,x1,[x0,#16*0]
+ ldp x2,x3,[x26,#16*1]
+ ldp x4,x5,[x26,#16*2]
+ ldp x6,x7,[x26,#16*3]
+ ldp x8,x9,[x26,#16*4]
+ ldp x10,x11,[x26,#16*5]
+ ldp x12,x13,[x26,#16*6]
+ ldp x14,x15,[x26,#16*7]
+ ldp x16,x17,[x26,#16*8]
+ ldp x25,x19,[x26,#16*9]
+ ldp x20,x21,[x26,#16*10]
+ ldp x22,x23,[x26,#16*11]
+ ldr x24,[x26,#16*12]
+
+ bl KeccakF1600_int
+
+ ldr x26,[sp,#32]
+ stp x0,x1,[x26,#16*0]
+ stp x2,x3,[x26,#16*1]
+ stp x4,x5,[x26,#16*2]
+ stp x6,x7,[x26,#16*3]
+ stp x8,x9,[x26,#16*4]
+ stp x10,x11,[x26,#16*5]
+ stp x12,x13,[x26,#16*6]
+ stp x14,x15,[x26,#16*7]
+ stp x16,x17,[x26,#16*8]
+ stp x25,x19,[x26,#16*9]
+ stp x20,x21,[x26,#16*10]
+ stp x22,x23,[x26,#16*11]
+ str x24,[x26,#16*12]
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#48
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+
+.globl _SHA3_absorb
+
+.align 5
+_SHA3_absorb:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#64
+
+ stp x0,x1,[sp,#32] // offload arguments
+ stp x2,x3,[sp,#48]
+
+ mov x26,x0 // uint64_t A[5][5]
+ mov x27,x1 // const void *inp
+ mov x28,x2 // size_t len
+ mov x30,x3 // size_t bsz
+ ldp x0,x1,[x26,#16*0]
+ ldp x2,x3,[x26,#16*1]
+ ldp x4,x5,[x26,#16*2]
+ ldp x6,x7,[x26,#16*3]
+ ldp x8,x9,[x26,#16*4]
+ ldp x10,x11,[x26,#16*5]
+ ldp x12,x13,[x26,#16*6]
+ ldp x14,x15,[x26,#16*7]
+ ldp x16,x17,[x26,#16*8]
+ ldp x25,x19,[x26,#16*9]
+ ldp x20,x21,[x26,#16*10]
+ ldp x22,x23,[x26,#16*11]
+ ldr x24,[x26,#16*12]
+ b Loop_absorb
+
+.align 4
+Loop_absorb:
+ subs x26,x28,x30 // len - bsz
+ blo Labsorbed
+
+ str x26,[sp,#48] // save len - bsz
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x0,x0,x26
+ cmp x30,#8*(0+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x1,x1,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x2,x2,x26
+ cmp x30,#8*(2+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x3,x3,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x4,x4,x26
+ cmp x30,#8*(4+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x5,x5,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x6,x6,x26
+ cmp x30,#8*(6+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x7,x7,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x8,x8,x26
+ cmp x30,#8*(8+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x9,x9,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x10,x10,x26
+ cmp x30,#8*(10+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x11,x11,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x12,x12,x26
+ cmp x30,#8*(12+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x13,x13,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x14,x14,x26
+ cmp x30,#8*(14+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x15,x15,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x16,x16,x26
+ cmp x30,#8*(16+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x17,x17,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x25,x25,x26
+ cmp x30,#8*(18+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x19,x19,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x20,x20,x26
+ cmp x30,#8*(20+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x21,x21,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x22,x22,x26
+ cmp x30,#8*(22+2)
+ blo Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x23,x23,x26
+ beq Lprocess_block
+ ldr x26,[x27],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev x26,x26
+#endif
+ eor x24,x24,x26
+
+Lprocess_block:
+ str x27,[sp,#40] // save inp
+
+ bl KeccakF1600_int
+
+ ldr x27,[sp,#40] // restore arguments
+ ldp x28,x30,[sp,#48]
+ b Loop_absorb
+
+.align 4
+Labsorbed:
+ ldr x27,[sp,#32]
+ stp x0,x1,[x27,#16*0]
+ stp x2,x3,[x27,#16*1]
+ stp x4,x5,[x27,#16*2]
+ stp x6,x7,[x27,#16*3]
+ stp x8,x9,[x27,#16*4]
+ stp x10,x11,[x27,#16*5]
+ stp x12,x13,[x27,#16*6]
+ stp x14,x15,[x27,#16*7]
+ stp x16,x17,[x27,#16*8]
+ stp x25,x19,[x27,#16*9]
+ stp x20,x21,[x27,#16*10]
+ stp x22,x23,[x27,#16*11]
+ str x24,[x27,#16*12]
+
+ mov x0,x28 // return value
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#64
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _SHA3_squeeze
+
+.align 5
+_SHA3_squeeze:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-48]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+
+ mov x19,x0 // put aside arguments
+ mov x20,x1
+ mov x21,x2
+ mov x22,x3
+
+Loop_squeeze:
+ ldr x4,[x0],#8
+ cmp x21,#8
+ blo Lsqueeze_tail
+#ifdef __AARCH64EB__
+ rev x4,x4
+#endif
+ str x4,[x20],#8
+ subs x21,x21,#8
+ beq Lsqueeze_done
+
+ subs x3,x3,#8
+ bhi Loop_squeeze
+
+ mov x0,x19
+ bl KeccakF1600
+ mov x0,x19
+ mov x3,x22
+ b Loop_squeeze
+
+.align 4
+Lsqueeze_tail:
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+ lsr x4,x4,#8
+ subs x21,x21,#1
+ beq Lsqueeze_done
+ strb w4,[x20],#1
+
+Lsqueeze_done:
+ ldp x19,x20,[sp,#16]
+ ldp x21,x22,[sp,#32]
+ ldp x29,x30,[sp],#48
+.long 0xd50323bf // autiasp
+ ret
+
+
+.align 5
+KeccakF1600_ce:
+ mov x9,#12
+ adr x10,iotas
+ b Loop_ce
+.align 4
+Loop_ce:
+ ////////////////////////////////////////////////// Theta
+.long 0xce052819 //eor3 v25.16b,v0.16b,v5.16b,v10.16b
+.long 0xce062c3a //eor3 v26.16b,v1.16b,v6.16b,v11.16b
+.long 0xce07305b //eor3 v27.16b,v2.16b,v7.16b,v12.16b
+.long 0xce08347c //eor3 v28.16b,v3.16b,v8.16b,v13.16b
+.long 0xce09389d //eor3 v29.16b,v4.16b,v9.16b,v14.16b
+.long 0xce0f5339 //eor3 v25.16b,v25.16b, v15.16b,v20.16b
+.long 0xce10575a //eor3 v26.16b,v26.16b, v16.16b,v21.16b
+.long 0xce115b7b //eor3 v27.16b,v27.16b, v17.16b,v22.16b
+.long 0xce125f9c //eor3 v28.16b,v28.16b, v18.16b,v23.16b
+.long 0xce1363bd //eor3 v29.16b,v29.16b, v19.16b,v24.16b
+
+.long 0xce7b8f3e //rax1 v30.16b,v25.16b,v27.16b // D[1]
+.long 0xce7c8f5f //rax1 v31.16b,v26.16b,v28.16b // D[2]
+.long 0xce7d8f7b //rax1 v27.16b,v27.16b,v29.16b // D[3]
+.long 0xce798f9c //rax1 v28.16b,v28.16b,v25.16b // D[4]
+.long 0xce7a8fbd //rax1 v29.16b,v29.16b,v26.16b // D[0]
+
+ ////////////////////////////////////////////////// Theta+Rho+Pi
+.long 0xce9e50d9 //xar v25.16b, v6.16b,v30.16b,#64-44 // C[0]=A[0][1]
+.long 0xce9cb126 //xar v6.16b,v9.16b,v28.16b,#64-20
+.long 0xce9f0ec9 //xar v9.16b,v22.16b,v31.16b,#64-61
+.long 0xce9c65d6 //xar v22.16b,v14.16b,v28.16b,#64-39
+.long 0xce9dba8e //xar v14.16b,v20.16b,v29.16b,#64-18
+
+.long 0xce9f0854 //xar v20.16b,v2.16b,v31.16b,#64-62
+
+.long 0xce9f5582 //xar v2.16b,v12.16b,v31.16b,#64-43
+.long 0xce9b9dac //xar v12.16b,v13.16b,v27.16b,#64-25
+.long 0xce9ce26d //xar v13.16b,v19.16b,v28.16b,#64-8
+.long 0xce9b22f3 //xar v19.16b,v23.16b,v27.16b,#64-56
+.long 0xce9d5df7 //xar v23.16b,v15.16b,v29.16b,#64-41
+
+.long 0xce9c948f //xar v15.16b,v4.16b,v28.16b,#64-27
+
+ eor v0.16b,v0.16b,v29.16b
+ ldr x11,[x10],#8
+
+.long 0xce9bae5a //xar v26.16b, v18.16b,v27.16b,#64-21 // C[1]=A[0][3]
+.long 0xce9fc632 //xar v18.16b,v17.16b,v31.16b,#64-15
+.long 0xce9ed971 //xar v17.16b,v11.16b,v30.16b,#64-10
+.long 0xce9fe8eb //xar v11.16b,v7.16b,v31.16b,#64-6
+.long 0xce9df547 //xar v7.16b,v10.16b,v29.16b,#64-3
+
+.long 0xce9efc2a //xar v10.16b,v1.16b,v30.16b,#64-1 // *
+
+.long 0xce9ccb04 //xar v4.16b,v24.16b,v28.16b,#64-14
+.long 0xce9efab8 //xar v24.16b,v21.16b,v30.16b,#64-2
+.long 0xce9b2515 //xar v21.16b,v8.16b,v27.16b,#64-55
+.long 0xce9e4e08 //xar v8.16b,v16.16b,v30.16b,#64-45
+.long 0xce9d70b0 //xar v16.16b,v5.16b,v29.16b,#64-36
+
+.long 0xce9b907b //xar v27.16b, v3.16b,v27.16b,#64-28 // C[2]=A[1][0]
+
+ ////////////////////////////////////////////////// Chi+Iota
+ dup v31.2d,x11 // borrow C[6]
+.long 0xce22641c //bcax v28.16b, v0.16b,v2.16b,v25.16b // *
+.long 0xce3a0b21 //bcax v1.16b,v25.16b, v26.16b, v2.16b // *
+.long 0xce246842 //bcax v2.16b,v2.16b,v4.16b,v26.16b
+.long 0xce201343 //bcax v3.16b,v26.16b, v0.16b,v4.16b
+.long 0xce390084 //bcax v4.16b,v4.16b,v25.16b, v0.16b
+
+.long 0xce271b65 //bcax v5.16b,v27.16b, v7.16b,v6.16b // *
+.long 0xce281cd9 //bcax v25.16b, v6.16b,v8.16b,v7.16b // *
+.long 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b
+.long 0xce3b2508 //bcax v8.16b,v8.16b,v27.16b, v9.16b
+.long 0xce266d29 //bcax v9.16b,v9.16b,v6.16b,v27.16b
+
+ eor v0.16b,v28.16b,v31.16b // Iota
+
+.long 0xce2c2d5a //bcax v26.16b, v10.16b,v12.16b,v11.16b // *
+.long 0xce2d317b //bcax v27.16b, v11.16b,v13.16b,v12.16b // *
+.long 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b
+.long 0xce2a39ad //bcax v13.16b,v13.16b,v10.16b,v14.16b
+.long 0xce2b29ce //bcax v14.16b,v14.16b,v11.16b,v10.16b
+
+.long 0xce3141fc //bcax v28.16b, v15.16b,v17.16b,v16.16b // *
+.long 0xce32461d //bcax v29.16b, v16.16b,v18.16b,v17.16b // *
+.long 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b
+.long 0xce2f4e52 //bcax v18.16b,v18.16b,v15.16b,v19.16b
+.long 0xce303e73 //bcax v19.16b,v19.16b,v16.16b,v15.16b
+
+.long 0xce36569e //bcax v30.16b, v20.16b,v22.16b,v21.16b // *
+.long 0xce375abf //bcax v31.16b, v21.16b,v23.16b,v22.16b // *
+.long 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b
+.long 0xce3462f7 //bcax v23.16b,v23.16b,v20.16b,v24.16b
+.long 0xce355318 //bcax v24.16b,v24.16b,v21.16b,v20.16b
+ ////////////////////////////////////////////////// Theta
+.long 0xce056806 //eor3 v6.16b,v0.16b,v5.16b,v26.16b
+.long 0xce196c2a //eor3 v10.16b,v1.16b,v25.16b,v27.16b
+.long 0xce07304b //eor3 v11.16b,v2.16b,v7.16b,v12.16b
+.long 0xce08346f //eor3 v15.16b,v3.16b,v8.16b,v13.16b
+.long 0xce093890 //eor3 v16.16b,v4.16b,v9.16b,v14.16b
+.long 0xce1c78c6 //eor3 v6.16b,v6.16b, v28.16b,v30.16b
+.long 0xce1d7d4a //eor3 v10.16b,v10.16b, v29.16b,v31.16b
+.long 0xce11596b //eor3 v11.16b,v11.16b, v17.16b,v22.16b
+.long 0xce125def //eor3 v15.16b,v15.16b, v18.16b,v23.16b
+.long 0xce136210 //eor3 v16.16b,v16.16b, v19.16b,v24.16b
+
+.long 0xce6b8cd4 //rax1 v20.16b,v6.16b,v11.16b // D[1]
+.long 0xce6f8d55 //rax1 v21.16b,v10.16b,v15.16b // D[2]
+.long 0xce708d6b //rax1 v11.16b,v11.16b,v16.16b // D[3]
+.long 0xce668def //rax1 v15.16b,v15.16b,v6.16b // D[4]
+.long 0xce6a8e10 //rax1 v16.16b,v16.16b,v10.16b // D[0]
+
+ ////////////////////////////////////////////////// Theta+Rho+Pi
+.long 0xce945326 //xar v6.16b, v25.16b,v20.16b,#64-44 // C[0]=A[0][1]
+.long 0xce8fb139 //xar v25.16b,v9.16b,v15.16b,#64-20
+.long 0xce950ec9 //xar v9.16b,v22.16b,v21.16b,#64-61
+.long 0xce8f65d6 //xar v22.16b,v14.16b,v15.16b,#64-39
+.long 0xce90bbce //xar v14.16b,v30.16b,v16.16b,#64-18
+
+.long 0xce95085e //xar v30.16b,v2.16b,v21.16b,#64-62
+
+.long 0xce955582 //xar v2.16b,v12.16b,v21.16b,#64-43
+.long 0xce8b9dac //xar v12.16b,v13.16b,v11.16b,#64-25
+.long 0xce8fe26d //xar v13.16b,v19.16b,v15.16b,#64-8
+.long 0xce8b22f3 //xar v19.16b,v23.16b,v11.16b,#64-56
+.long 0xce905f97 //xar v23.16b,v28.16b,v16.16b,#64-41
+
+.long 0xce8f949c //xar v28.16b,v4.16b,v15.16b,#64-27
+
+ eor v0.16b,v0.16b,v16.16b
+ ldr x11,[x10],#8
+
+.long 0xce8bae4a //xar v10.16b, v18.16b,v11.16b,#64-21 // C[1]=A[0][3]
+.long 0xce95c632 //xar v18.16b,v17.16b,v21.16b,#64-15
+.long 0xce94db71 //xar v17.16b,v27.16b,v20.16b,#64-10
+.long 0xce95e8fb //xar v27.16b,v7.16b,v21.16b,#64-6
+.long 0xce90f747 //xar v7.16b,v26.16b,v16.16b,#64-3
+
+.long 0xce94fc3a //xar v26.16b,v1.16b,v20.16b,#64-1 // *
+
+.long 0xce8fcb04 //xar v4.16b,v24.16b,v15.16b,#64-14
+.long 0xce94fbf8 //xar v24.16b,v31.16b,v20.16b,#64-2
+.long 0xce8b251f //xar v31.16b,v8.16b,v11.16b,#64-55
+.long 0xce944fa8 //xar v8.16b,v29.16b,v20.16b,#64-45
+.long 0xce9070bd //xar v29.16b,v5.16b,v16.16b,#64-36
+
+.long 0xce8b906b //xar v11.16b, v3.16b,v11.16b,#64-28 // C[2]=A[1][0]
+
+ ////////////////////////////////////////////////// Chi+Iota
+ dup v21.2d,x11 // borrow C[6]
+.long 0xce22180f //bcax v15.16b, v0.16b,v2.16b,v6.16b // *
+.long 0xce2a08c1 //bcax v1.16b,v6.16b, v10.16b, v2.16b // *
+.long 0xce242842 //bcax v2.16b,v2.16b,v4.16b,v10.16b
+.long 0xce201143 //bcax v3.16b,v10.16b, v0.16b,v4.16b
+.long 0xce260084 //bcax v4.16b,v4.16b,v6.16b, v0.16b
+
+.long 0xce276565 //bcax v5.16b,v11.16b, v7.16b,v25.16b // *
+.long 0xce281f26 //bcax v6.16b, v25.16b,v8.16b,v7.16b // *
+.long 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b
+.long 0xce2b2508 //bcax v8.16b,v8.16b,v11.16b, v9.16b
+.long 0xce392d29 //bcax v9.16b,v9.16b,v25.16b,v11.16b
+
+ eor v0.16b,v15.16b,v21.16b // Iota
+
+.long 0xce2c6f4a //bcax v10.16b, v26.16b,v12.16b,v27.16b // *
+.long 0xce2d336b //bcax v11.16b, v27.16b,v13.16b,v12.16b // *
+.long 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b
+.long 0xce3a39ad //bcax v13.16b,v13.16b,v26.16b,v14.16b
+.long 0xce3b69ce //bcax v14.16b,v14.16b,v27.16b,v26.16b
+
+.long 0xce31778f //bcax v15.16b, v28.16b,v17.16b,v29.16b // *
+.long 0xce3247b0 //bcax v16.16b, v29.16b,v18.16b,v17.16b // *
+.long 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b
+.long 0xce3c4e52 //bcax v18.16b,v18.16b,v28.16b,v19.16b
+.long 0xce3d7273 //bcax v19.16b,v19.16b,v29.16b,v28.16b
+
+.long 0xce367fd4 //bcax v20.16b, v30.16b,v22.16b,v31.16b // *
+.long 0xce375bf5 //bcax v21.16b, v31.16b,v23.16b,v22.16b // *
+.long 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b
+.long 0xce3e62f7 //bcax v23.16b,v23.16b,v30.16b,v24.16b
+.long 0xce3f7b18 //bcax v24.16b,v24.16b,v31.16b,v30.16b
+ subs x9,x9,#1
+ bne Loop_ce
+
+ ret
+
+
+
+.align 5
+KeccakF1600_cext:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-80]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#16] // per ABI requirement
+ stp d10,d11,[sp,#32]
+ stp d12,d13,[sp,#48]
+ stp d14,d15,[sp,#64]
+ ldp d0,d1,[x0,#8*0]
+ ldp d2,d3,[x0,#8*2]
+ ldp d4,d5,[x0,#8*4]
+ ldp d6,d7,[x0,#8*6]
+ ldp d8,d9,[x0,#8*8]
+ ldp d10,d11,[x0,#8*10]
+ ldp d12,d13,[x0,#8*12]
+ ldp d14,d15,[x0,#8*14]
+ ldp d16,d17,[x0,#8*16]
+ ldp d18,d19,[x0,#8*18]
+ ldp d20,d21,[x0,#8*20]
+ ldp d22,d23,[x0,#8*22]
+ ldr d24,[x0,#8*24]
+ bl KeccakF1600_ce
+ ldr x30,[sp,#8]
+ stp d0,d1,[x0,#8*0]
+ stp d2,d3,[x0,#8*2]
+ stp d4,d5,[x0,#8*4]
+ stp d6,d7,[x0,#8*6]
+ stp d8,d9,[x0,#8*8]
+ stp d10,d11,[x0,#8*10]
+ stp d12,d13,[x0,#8*12]
+ stp d14,d15,[x0,#8*14]
+ stp d16,d17,[x0,#8*16]
+ stp d18,d19,[x0,#8*18]
+ stp d20,d21,[x0,#8*20]
+ stp d22,d23,[x0,#8*22]
+ str d24,[x0,#8*24]
+
+ ldp d8,d9,[sp,#16]
+ ldp d10,d11,[sp,#32]
+ ldp d12,d13,[sp,#48]
+ ldp d14,d15,[sp,#64]
+ ldr x29,[sp],#80
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _SHA3_absorb_cext
+
+.align 5
+_SHA3_absorb_cext:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-80]!
+ add x29,sp,#0
+ stp d8,d9,[sp,#16] // per ABI requirement
+ stp d10,d11,[sp,#32]
+ stp d12,d13,[sp,#48]
+ stp d14,d15,[sp,#64]
+ ldp d0,d1,[x0,#8*0]
+ ldp d2,d3,[x0,#8*2]
+ ldp d4,d5,[x0,#8*4]
+ ldp d6,d7,[x0,#8*6]
+ ldp d8,d9,[x0,#8*8]
+ ldp d10,d11,[x0,#8*10]
+ ldp d12,d13,[x0,#8*12]
+ ldp d14,d15,[x0,#8*14]
+ ldp d16,d17,[x0,#8*16]
+ ldp d18,d19,[x0,#8*18]
+ ldp d20,d21,[x0,#8*20]
+ ldp d22,d23,[x0,#8*22]
+ ldr d24,[x0,#8*24]
+ b Loop_absorb_ce
+
+.align 4
+Loop_absorb_ce:
+ subs x2,x2,x3 // len - bsz
+ blo Labsorbed_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v0.16b,v0.16b,v31.16b
+ cmp x3,#8*(0+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v1.16b,v1.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v2.16b,v2.16b,v31.16b
+ cmp x3,#8*(2+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v3.16b,v3.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v4.16b,v4.16b,v31.16b
+ cmp x3,#8*(4+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v5.16b,v5.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v6.16b,v6.16b,v31.16b
+ cmp x3,#8*(6+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v7.16b,v7.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v8.16b,v8.16b,v31.16b
+ cmp x3,#8*(8+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v9.16b,v9.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v10.16b,v10.16b,v31.16b
+ cmp x3,#8*(10+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v11.16b,v11.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v12.16b,v12.16b,v31.16b
+ cmp x3,#8*(12+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v13.16b,v13.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v14.16b,v14.16b,v31.16b
+ cmp x3,#8*(14+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v15.16b,v15.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v16.16b,v16.16b,v31.16b
+ cmp x3,#8*(16+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v17.16b,v17.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v18.16b,v18.16b,v31.16b
+ cmp x3,#8*(18+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v19.16b,v19.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v20.16b,v20.16b,v31.16b
+ cmp x3,#8*(20+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v21.16b,v21.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v22.16b,v22.16b,v31.16b
+ cmp x3,#8*(22+2)
+ blo Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v23.16b,v23.16b,v31.16b
+ beq Lprocess_block_ce
+ ldr d31,[x1],#8 // *inp++
+#ifdef __AARCH64EB__
+ rev64 v31.16b,v31.16b
+#endif
+ eor v24.16b,v24.16b,v31.16b
+
+Lprocess_block_ce:
+
+ bl KeccakF1600_ce
+
+ b Loop_absorb_ce
+
+.align 4
+Labsorbed_ce:
+ stp d0,d1,[x0,#8*0]
+ stp d2,d3,[x0,#8*2]
+ stp d4,d5,[x0,#8*4]
+ stp d6,d7,[x0,#8*6]
+ stp d8,d9,[x0,#8*8]
+ stp d10,d11,[x0,#8*10]
+ stp d12,d13,[x0,#8*12]
+ stp d14,d15,[x0,#8*14]
+ stp d16,d17,[x0,#8*16]
+ stp d18,d19,[x0,#8*18]
+ stp d20,d21,[x0,#8*20]
+ stp d22,d23,[x0,#8*22]
+ str d24,[x0,#8*24]
+ add x0,x2,x3 // return value
+
+ ldp d8,d9,[sp,#16]
+ ldp d10,d11,[sp,#32]
+ ldp d12,d13,[sp,#48]
+ ldp d14,d15,[sp,#64]
+ ldp x29,x30,[sp],#80
+.long 0xd50323bf // autiasp
+ ret
+
+.globl _SHA3_squeeze_cext
+
+.align 5
+_SHA3_squeeze_cext:
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+ mov x9,x0
+ mov x10,x3
+
+Loop_squeeze_ce:
+ ldr x4,[x9],#8
+ cmp x2,#8
+ blo Lsqueeze_tail_ce
+#ifdef __AARCH64EB__
+ rev x4,x4
+#endif
+ str x4,[x1],#8
+ beq Lsqueeze_done_ce
+
+ sub x2,x2,#8
+ subs x10,x10,#8
+ bhi Loop_squeeze_ce
+
+ bl KeccakF1600_cext
+ ldr x30,[sp,#8]
+ mov x9,x0
+ mov x10,x3
+ b Loop_squeeze_ce
+
+.align 4
+Lsqueeze_tail_ce:
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+ lsr x4,x4,#8
+ subs x2,x2,#1
+ beq Lsqueeze_done_ce
+ strb w4,[x1],#1
+
+Lsqueeze_done_ce:
+ ldr x29,[sp],#16
+.long 0xd50323bf // autiasp
+ ret
+
+.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha1-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha1-armv8.S
new file mode 100644
index 0000000000..d64987d2fa
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha1-armv8.S
@@ -0,0 +1,1221 @@
+#include "arm_arch.h"
+
+.text
+
+
+.private_extern _OPENSSL_armcap_P
+.globl _sha1_block_data_order
+
+.align 6
+_sha1_block_data_order:
+#ifdef __ILP32__
+ ldrsw x16,LOPENSSL_armcap_P
+#else
+ ldr x16,LOPENSSL_armcap_P
+#endif
+ adr x17,LOPENSSL_armcap_P
+ add x16,x16,x17
+ ldr w16,[x16]
+ tst w16,#ARMV8_SHA1
+ b.ne Lv8_entry
+
+ stp x29,x30,[sp,#-96]!
+ add x29,sp,#0
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+
+ ldp w20,w21,[x0]
+ ldp w22,w23,[x0,#8]
+ ldr w24,[x0,#16]
+
+Loop:
+ ldr x3,[x1],#64
+ movz w28,#0x7999
+ sub x2,x2,#1
+ movk w28,#0x5a82,lsl#16
+#ifdef __ARMEB__
+ ror x3,x3,#32
+#else
+ rev32 x3,x3
+#endif
+ add w24,w24,w28 // warm it up
+ add w24,w24,w3
+ lsr x4,x3,#32
+ ldr x5,[x1,#-56]
+ bic w25,w23,w21
+ and w26,w22,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ orr w25,w25,w26
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ add w23,w23,w4 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x5,x5,#32
+#else
+ rev32 x5,x5
+#endif
+ bic w25,w22,w20
+ and w26,w21,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ orr w25,w25,w26
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ add w22,w22,w5 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ lsr x6,x5,#32
+ ldr x7,[x1,#-48]
+ bic w25,w21,w24
+ and w26,w20,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ orr w25,w25,w26
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ add w21,w21,w6 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x7,x7,#32
+#else
+ rev32 x7,x7
+#endif
+ bic w25,w20,w23
+ and w26,w24,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ orr w25,w25,w26
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ add w20,w20,w7 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ lsr x8,x7,#32
+ ldr x9,[x1,#-40]
+ bic w25,w24,w22
+ and w26,w23,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ orr w25,w25,w26
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ add w24,w24,w8 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x9,x9,#32
+#else
+ rev32 x9,x9
+#endif
+ bic w25,w23,w21
+ and w26,w22,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ orr w25,w25,w26
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ add w23,w23,w9 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ lsr x10,x9,#32
+ ldr x11,[x1,#-32]
+ bic w25,w22,w20
+ and w26,w21,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ orr w25,w25,w26
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ add w22,w22,w10 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x11,x11,#32
+#else
+ rev32 x11,x11
+#endif
+ bic w25,w21,w24
+ and w26,w20,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ orr w25,w25,w26
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ add w21,w21,w11 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ lsr x12,x11,#32
+ ldr x13,[x1,#-24]
+ bic w25,w20,w23
+ and w26,w24,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ orr w25,w25,w26
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ add w20,w20,w12 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x13,x13,#32
+#else
+ rev32 x13,x13
+#endif
+ bic w25,w24,w22
+ and w26,w23,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ orr w25,w25,w26
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ add w24,w24,w13 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ lsr x14,x13,#32
+ ldr x15,[x1,#-16]
+ bic w25,w23,w21
+ and w26,w22,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ orr w25,w25,w26
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ add w23,w23,w14 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x15,x15,#32
+#else
+ rev32 x15,x15
+#endif
+ bic w25,w22,w20
+ and w26,w21,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ orr w25,w25,w26
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ add w22,w22,w15 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ lsr x16,x15,#32
+ ldr x17,[x1,#-8]
+ bic w25,w21,w24
+ and w26,w20,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ orr w25,w25,w26
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ add w21,w21,w16 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+#ifdef __ARMEB__
+ ror x17,x17,#32
+#else
+ rev32 x17,x17
+#endif
+ bic w25,w20,w23
+ and w26,w24,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ orr w25,w25,w26
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ add w20,w20,w17 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ lsr x19,x17,#32
+ eor w3,w3,w5
+ bic w25,w24,w22
+ and w26,w23,w22
+ ror w27,w21,#27
+ eor w3,w3,w11
+ add w24,w24,w28 // future e+=K
+ orr w25,w25,w26
+ add w20,w20,w27 // e+=rot(a,5)
+ eor w3,w3,w16
+ ror w22,w22,#2
+ add w24,w24,w19 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w3,w3,#31
+ eor w4,w4,w6
+ bic w25,w23,w21
+ and w26,w22,w21
+ ror w27,w20,#27
+ eor w4,w4,w12
+ add w23,w23,w28 // future e+=K
+ orr w25,w25,w26
+ add w24,w24,w27 // e+=rot(a,5)
+ eor w4,w4,w17
+ ror w21,w21,#2
+ add w23,w23,w3 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w4,w4,#31
+ eor w5,w5,w7
+ bic w25,w22,w20
+ and w26,w21,w20
+ ror w27,w24,#27
+ eor w5,w5,w13
+ add w22,w22,w28 // future e+=K
+ orr w25,w25,w26
+ add w23,w23,w27 // e+=rot(a,5)
+ eor w5,w5,w19
+ ror w20,w20,#2
+ add w22,w22,w4 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w5,w5,#31
+ eor w6,w6,w8
+ bic w25,w21,w24
+ and w26,w20,w24
+ ror w27,w23,#27
+ eor w6,w6,w14
+ add w21,w21,w28 // future e+=K
+ orr w25,w25,w26
+ add w22,w22,w27 // e+=rot(a,5)
+ eor w6,w6,w3
+ ror w24,w24,#2
+ add w21,w21,w5 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w6,w6,#31
+ eor w7,w7,w9
+ bic w25,w20,w23
+ and w26,w24,w23
+ ror w27,w22,#27
+ eor w7,w7,w15
+ add w20,w20,w28 // future e+=K
+ orr w25,w25,w26
+ add w21,w21,w27 // e+=rot(a,5)
+ eor w7,w7,w4
+ ror w23,w23,#2
+ add w20,w20,w6 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w7,w7,#31
+ movz w28,#0xeba1
+ movk w28,#0x6ed9,lsl#16
+ eor w8,w8,w10
+ bic w25,w24,w22
+ and w26,w23,w22
+ ror w27,w21,#27
+ eor w8,w8,w16
+ add w24,w24,w28 // future e+=K
+ orr w25,w25,w26
+ add w20,w20,w27 // e+=rot(a,5)
+ eor w8,w8,w5
+ ror w22,w22,#2
+ add w24,w24,w7 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w8,w8,#31
+ eor w9,w9,w11
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w9,w9,w17
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w9,w9,w6
+ add w23,w23,w8 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w9,w9,#31
+ eor w10,w10,w12
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w10,w10,w19
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w10,w10,w7
+ add w22,w22,w9 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w10,w10,#31
+ eor w11,w11,w13
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w11,w11,w3
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w11,w11,w8
+ add w21,w21,w10 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w11,w11,#31
+ eor w12,w12,w14
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w12,w12,w4
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w12,w12,w9
+ add w20,w20,w11 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w12,w12,#31
+ eor w13,w13,w15
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w13,w13,w5
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w13,w13,w10
+ add w24,w24,w12 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w13,w13,#31
+ eor w14,w14,w16
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w14,w14,w6
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w14,w14,w11
+ add w23,w23,w13 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w14,w14,#31
+ eor w15,w15,w17
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w15,w15,w7
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w15,w15,w12
+ add w22,w22,w14 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w15,w15,#31
+ eor w16,w16,w19
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w16,w16,w8
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w16,w16,w13
+ add w21,w21,w15 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w16,w16,#31
+ eor w17,w17,w3
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w17,w17,w9
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w17,w17,w14
+ add w20,w20,w16 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w17,w17,#31
+ eor w19,w19,w4
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w19,w19,w10
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w19,w19,w15
+ add w24,w24,w17 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w19,w19,#31
+ eor w3,w3,w5
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w3,w3,w11
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w3,w3,w16
+ add w23,w23,w19 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w3,w3,#31
+ eor w4,w4,w6
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w4,w4,w12
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w4,w4,w17
+ add w22,w22,w3 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w4,w4,#31
+ eor w5,w5,w7
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w5,w5,w13
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w5,w5,w19
+ add w21,w21,w4 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w5,w5,#31
+ eor w6,w6,w8
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w6,w6,w14
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w6,w6,w3
+ add w20,w20,w5 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w6,w6,#31
+ eor w7,w7,w9
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w7,w7,w15
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w7,w7,w4
+ add w24,w24,w6 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w7,w7,#31
+ eor w8,w8,w10
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w8,w8,w16
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w8,w8,w5
+ add w23,w23,w7 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w8,w8,#31
+ eor w9,w9,w11
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w9,w9,w17
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w9,w9,w6
+ add w22,w22,w8 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w9,w9,#31
+ eor w10,w10,w12
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w10,w10,w19
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w10,w10,w7
+ add w21,w21,w9 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w10,w10,#31
+ eor w11,w11,w13
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w11,w11,w3
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w11,w11,w8
+ add w20,w20,w10 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w11,w11,#31
+ movz w28,#0xbcdc
+ movk w28,#0x8f1b,lsl#16
+ eor w12,w12,w14
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w12,w12,w4
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w12,w12,w9
+ add w24,w24,w11 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w12,w12,#31
+ orr w25,w21,w22
+ and w26,w21,w22
+ eor w13,w13,w15
+ ror w27,w20,#27
+ and w25,w25,w23
+ add w23,w23,w28 // future e+=K
+ eor w13,w13,w5
+ add w24,w24,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w21,w21,#2
+ eor w13,w13,w10
+ add w23,w23,w12 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w13,w13,#31
+ orr w25,w20,w21
+ and w26,w20,w21
+ eor w14,w14,w16
+ ror w27,w24,#27
+ and w25,w25,w22
+ add w22,w22,w28 // future e+=K
+ eor w14,w14,w6
+ add w23,w23,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w20,w20,#2
+ eor w14,w14,w11
+ add w22,w22,w13 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w14,w14,#31
+ orr w25,w24,w20
+ and w26,w24,w20
+ eor w15,w15,w17
+ ror w27,w23,#27
+ and w25,w25,w21
+ add w21,w21,w28 // future e+=K
+ eor w15,w15,w7
+ add w22,w22,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w24,w24,#2
+ eor w15,w15,w12
+ add w21,w21,w14 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w15,w15,#31
+ orr w25,w23,w24
+ and w26,w23,w24
+ eor w16,w16,w19
+ ror w27,w22,#27
+ and w25,w25,w20
+ add w20,w20,w28 // future e+=K
+ eor w16,w16,w8
+ add w21,w21,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w23,w23,#2
+ eor w16,w16,w13
+ add w20,w20,w15 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w16,w16,#31
+ orr w25,w22,w23
+ and w26,w22,w23
+ eor w17,w17,w3
+ ror w27,w21,#27
+ and w25,w25,w24
+ add w24,w24,w28 // future e+=K
+ eor w17,w17,w9
+ add w20,w20,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w22,w22,#2
+ eor w17,w17,w14
+ add w24,w24,w16 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w17,w17,#31
+ orr w25,w21,w22
+ and w26,w21,w22
+ eor w19,w19,w4
+ ror w27,w20,#27
+ and w25,w25,w23
+ add w23,w23,w28 // future e+=K
+ eor w19,w19,w10
+ add w24,w24,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w21,w21,#2
+ eor w19,w19,w15
+ add w23,w23,w17 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w19,w19,#31
+ orr w25,w20,w21
+ and w26,w20,w21
+ eor w3,w3,w5
+ ror w27,w24,#27
+ and w25,w25,w22
+ add w22,w22,w28 // future e+=K
+ eor w3,w3,w11
+ add w23,w23,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w20,w20,#2
+ eor w3,w3,w16
+ add w22,w22,w19 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w3,w3,#31
+ orr w25,w24,w20
+ and w26,w24,w20
+ eor w4,w4,w6
+ ror w27,w23,#27
+ and w25,w25,w21
+ add w21,w21,w28 // future e+=K
+ eor w4,w4,w12
+ add w22,w22,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w24,w24,#2
+ eor w4,w4,w17
+ add w21,w21,w3 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w4,w4,#31
+ orr w25,w23,w24
+ and w26,w23,w24
+ eor w5,w5,w7
+ ror w27,w22,#27
+ and w25,w25,w20
+ add w20,w20,w28 // future e+=K
+ eor w5,w5,w13
+ add w21,w21,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w23,w23,#2
+ eor w5,w5,w19
+ add w20,w20,w4 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w5,w5,#31
+ orr w25,w22,w23
+ and w26,w22,w23
+ eor w6,w6,w8
+ ror w27,w21,#27
+ and w25,w25,w24
+ add w24,w24,w28 // future e+=K
+ eor w6,w6,w14
+ add w20,w20,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w22,w22,#2
+ eor w6,w6,w3
+ add w24,w24,w5 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w6,w6,#31
+ orr w25,w21,w22
+ and w26,w21,w22
+ eor w7,w7,w9
+ ror w27,w20,#27
+ and w25,w25,w23
+ add w23,w23,w28 // future e+=K
+ eor w7,w7,w15
+ add w24,w24,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w21,w21,#2
+ eor w7,w7,w4
+ add w23,w23,w6 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w7,w7,#31
+ orr w25,w20,w21
+ and w26,w20,w21
+ eor w8,w8,w10
+ ror w27,w24,#27
+ and w25,w25,w22
+ add w22,w22,w28 // future e+=K
+ eor w8,w8,w16
+ add w23,w23,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w20,w20,#2
+ eor w8,w8,w5
+ add w22,w22,w7 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w8,w8,#31
+ orr w25,w24,w20
+ and w26,w24,w20
+ eor w9,w9,w11
+ ror w27,w23,#27
+ and w25,w25,w21
+ add w21,w21,w28 // future e+=K
+ eor w9,w9,w17
+ add w22,w22,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w24,w24,#2
+ eor w9,w9,w6
+ add w21,w21,w8 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w9,w9,#31
+ orr w25,w23,w24
+ and w26,w23,w24
+ eor w10,w10,w12
+ ror w27,w22,#27
+ and w25,w25,w20
+ add w20,w20,w28 // future e+=K
+ eor w10,w10,w19
+ add w21,w21,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w23,w23,#2
+ eor w10,w10,w7
+ add w20,w20,w9 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w10,w10,#31
+ orr w25,w22,w23
+ and w26,w22,w23
+ eor w11,w11,w13
+ ror w27,w21,#27
+ and w25,w25,w24
+ add w24,w24,w28 // future e+=K
+ eor w11,w11,w3
+ add w20,w20,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w22,w22,#2
+ eor w11,w11,w8
+ add w24,w24,w10 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w11,w11,#31
+ orr w25,w21,w22
+ and w26,w21,w22
+ eor w12,w12,w14
+ ror w27,w20,#27
+ and w25,w25,w23
+ add w23,w23,w28 // future e+=K
+ eor w12,w12,w4
+ add w24,w24,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w21,w21,#2
+ eor w12,w12,w9
+ add w23,w23,w11 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w12,w12,#31
+ orr w25,w20,w21
+ and w26,w20,w21
+ eor w13,w13,w15
+ ror w27,w24,#27
+ and w25,w25,w22
+ add w22,w22,w28 // future e+=K
+ eor w13,w13,w5
+ add w23,w23,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w20,w20,#2
+ eor w13,w13,w10
+ add w22,w22,w12 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w13,w13,#31
+ orr w25,w24,w20
+ and w26,w24,w20
+ eor w14,w14,w16
+ ror w27,w23,#27
+ and w25,w25,w21
+ add w21,w21,w28 // future e+=K
+ eor w14,w14,w6
+ add w22,w22,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w24,w24,#2
+ eor w14,w14,w11
+ add w21,w21,w13 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w14,w14,#31
+ orr w25,w23,w24
+ and w26,w23,w24
+ eor w15,w15,w17
+ ror w27,w22,#27
+ and w25,w25,w20
+ add w20,w20,w28 // future e+=K
+ eor w15,w15,w7
+ add w21,w21,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w23,w23,#2
+ eor w15,w15,w12
+ add w20,w20,w14 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w15,w15,#31
+ movz w28,#0xc1d6
+ movk w28,#0xca62,lsl#16
+ orr w25,w22,w23
+ and w26,w22,w23
+ eor w16,w16,w19
+ ror w27,w21,#27
+ and w25,w25,w24
+ add w24,w24,w28 // future e+=K
+ eor w16,w16,w8
+ add w20,w20,w27 // e+=rot(a,5)
+ orr w25,w25,w26
+ ror w22,w22,#2
+ eor w16,w16,w13
+ add w24,w24,w15 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w16,w16,#31
+ eor w17,w17,w3
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w17,w17,w9
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w17,w17,w14
+ add w23,w23,w16 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w17,w17,#31
+ eor w19,w19,w4
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w19,w19,w10
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w19,w19,w15
+ add w22,w22,w17 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w19,w19,#31
+ eor w3,w3,w5
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w3,w3,w11
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w3,w3,w16
+ add w21,w21,w19 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w3,w3,#31
+ eor w4,w4,w6
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w4,w4,w12
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w4,w4,w17
+ add w20,w20,w3 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w4,w4,#31
+ eor w5,w5,w7
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w5,w5,w13
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w5,w5,w19
+ add w24,w24,w4 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w5,w5,#31
+ eor w6,w6,w8
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w6,w6,w14
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w6,w6,w3
+ add w23,w23,w5 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w6,w6,#31
+ eor w7,w7,w9
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w7,w7,w15
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w7,w7,w4
+ add w22,w22,w6 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w7,w7,#31
+ eor w8,w8,w10
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w8,w8,w16
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w8,w8,w5
+ add w21,w21,w7 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w8,w8,#31
+ eor w9,w9,w11
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w9,w9,w17
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w9,w9,w6
+ add w20,w20,w8 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w9,w9,#31
+ eor w10,w10,w12
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w10,w10,w19
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w10,w10,w7
+ add w24,w24,w9 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w10,w10,#31
+ eor w11,w11,w13
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w11,w11,w3
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w11,w11,w8
+ add w23,w23,w10 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w11,w11,#31
+ eor w12,w12,w14
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w12,w12,w4
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w12,w12,w9
+ add w22,w22,w11 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w12,w12,#31
+ eor w13,w13,w15
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w13,w13,w5
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w13,w13,w10
+ add w21,w21,w12 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w13,w13,#31
+ eor w14,w14,w16
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w14,w14,w6
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ eor w14,w14,w11
+ add w20,w20,w13 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ror w14,w14,#31
+ eor w15,w15,w17
+ eor w25,w24,w22
+ ror w27,w21,#27
+ add w24,w24,w28 // future e+=K
+ eor w15,w15,w7
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ eor w15,w15,w12
+ add w24,w24,w14 // future e+=X[i]
+ add w20,w20,w25 // e+=F(b,c,d)
+ ror w15,w15,#31
+ eor w16,w16,w19
+ eor w25,w23,w21
+ ror w27,w20,#27
+ add w23,w23,w28 // future e+=K
+ eor w16,w16,w8
+ eor w25,w25,w22
+ add w24,w24,w27 // e+=rot(a,5)
+ ror w21,w21,#2
+ eor w16,w16,w13
+ add w23,w23,w15 // future e+=X[i]
+ add w24,w24,w25 // e+=F(b,c,d)
+ ror w16,w16,#31
+ eor w17,w17,w3
+ eor w25,w22,w20
+ ror w27,w24,#27
+ add w22,w22,w28 // future e+=K
+ eor w17,w17,w9
+ eor w25,w25,w21
+ add w23,w23,w27 // e+=rot(a,5)
+ ror w20,w20,#2
+ eor w17,w17,w14
+ add w22,w22,w16 // future e+=X[i]
+ add w23,w23,w25 // e+=F(b,c,d)
+ ror w17,w17,#31
+ eor w19,w19,w4
+ eor w25,w21,w24
+ ror w27,w23,#27
+ add w21,w21,w28 // future e+=K
+ eor w19,w19,w10
+ eor w25,w25,w20
+ add w22,w22,w27 // e+=rot(a,5)
+ ror w24,w24,#2
+ eor w19,w19,w15
+ add w21,w21,w17 // future e+=X[i]
+ add w22,w22,w25 // e+=F(b,c,d)
+ ror w19,w19,#31
+ ldp w4,w5,[x0]
+ eor w25,w20,w23
+ ror w27,w22,#27
+ add w20,w20,w28 // future e+=K
+ eor w25,w25,w24
+ add w21,w21,w27 // e+=rot(a,5)
+ ror w23,w23,#2
+ add w20,w20,w19 // future e+=X[i]
+ add w21,w21,w25 // e+=F(b,c,d)
+ ldp w6,w7,[x0,#8]
+ eor w25,w24,w22
+ ror w27,w21,#27
+ eor w25,w25,w23
+ add w20,w20,w27 // e+=rot(a,5)
+ ror w22,w22,#2
+ ldr w8,[x0,#16]
+ add w20,w20,w25 // e+=F(b,c,d)
+ add w21,w21,w5
+ add w22,w22,w6
+ add w20,w20,w4
+ add w23,w23,w7
+ add w24,w24,w8
+ stp w20,w21,[x0]
+ stp w22,w23,[x0,#8]
+ str w24,[x0,#16]
+ cbnz x2,Loop
+
+ ldp x19,x20,[sp,#16]
+ ldp x21,x22,[sp,#32]
+ ldp x23,x24,[sp,#48]
+ ldp x25,x26,[sp,#64]
+ ldp x27,x28,[sp,#80]
+ ldr x29,[sp],#96
+ ret
+
+
+.align 6
+sha1_block_armv8:
+Lv8_entry:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ adr x4,Lconst
+ eor v1.16b,v1.16b,v1.16b
+ ld1 {v0.4s},[x0],#16
+ ld1 {v1.s}[0],[x0]
+ sub x0,x0,#16
+ ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4]
+
+Loop_hw:
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
+ sub x2,x2,#1
+ rev32 v4.16b,v4.16b
+ rev32 v5.16b,v5.16b
+
+ add v20.4s,v16.4s,v4.4s
+ rev32 v6.16b,v6.16b
+ orr v22.16b,v0.16b,v0.16b // offload
+
+ add v21.4s,v16.4s,v5.4s
+ rev32 v7.16b,v7.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b
+.long 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0
+ add v20.4s,v16.4s,v6.4s
+.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 1
+.long 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
+ add v21.4s,v16.4s,v7.4s
+.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 2
+.long 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
+ add v20.4s,v16.4s,v4.4s
+.long 0x5e281885 //sha1su1 v5.16b,v4.16b
+.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 3
+.long 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
+ add v21.4s,v17.4s,v5.4s
+.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 4
+.long 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
+ add v20.4s,v17.4s,v6.4s
+.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 5
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+ add v21.4s,v17.4s,v7.4s
+.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 6
+.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+ add v20.4s,v17.4s,v4.4s
+.long 0x5e281885 //sha1su1 v5.16b,v4.16b
+.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 7
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+ add v21.4s,v17.4s,v5.4s
+.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 8
+.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+ add v20.4s,v18.4s,v6.4s
+.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 9
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+ add v21.4s,v18.4s,v7.4s
+.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 10
+.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+ add v20.4s,v18.4s,v4.4s
+.long 0x5e281885 //sha1su1 v5.16b,v4.16b
+.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 11
+.long 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
+ add v21.4s,v18.4s,v5.4s
+.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 12
+.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+ add v20.4s,v18.4s,v6.4s
+.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 13
+.long 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
+ add v21.4s,v19.4s,v7.4s
+.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b
+.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 14
+.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
+ add v20.4s,v19.4s,v4.4s
+.long 0x5e281885 //sha1su1 v5.16b,v4.16b
+.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 15
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+ add v21.4s,v19.4s,v5.4s
+.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b
+.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 16
+.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+ add v20.4s,v19.4s,v6.4s
+.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 17
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+ add v21.4s,v19.4s,v7.4s
+
+.long 0x5e280803 //sha1h v3.16b,v0.16b // 18
+.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
+
+.long 0x5e280802 //sha1h v2.16b,v0.16b // 19
+.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
+
+ add v1.4s,v1.4s,v2.4s
+ add v0.4s,v0.4s,v22.4s
+
+ cbnz x2,Loop_hw
+
+ st1 {v0.4s},[x0],#16
+ st1 {v1.s}[0],[x0]
+
+ ldr x29,[sp],#16
+ ret
+
+.align 6
+Lconst:
+.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19
+.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 //K_20_39
+.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc //K_40_59
+.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 //K_60_79
+LOPENSSL_armcap_P:
+#ifdef __ILP32__
+.long _OPENSSL_armcap_P-.
+#else
+.quad _OPENSSL_armcap_P-.
+#endif
+.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 2
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha256-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha256-armv8.S
new file mode 100644
index 0000000000..7936328dac
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha256-armv8.S
@@ -0,0 +1,2063 @@
+// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved.
+//
+// Licensed under the OpenSSL license (the "License"). You may not use
+// this file except in compliance with the License. You can obtain a copy
+// in the file LICENSE in the source distribution or at
+// https://www.openssl.org/source/license.html
+
+// ====================================================================
+// Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
+// project. The module is, however, dual licensed under OpenSSL and
+// CRYPTOGAMS licenses depending on where you obtain it. For further
+// details see http://www.openssl.org/~appro/cryptogams/.
+//
+// Permission to use under GPLv2 terms is granted.
+// ====================================================================
+//
+// SHA256/512 for ARMv8.
+//
+// Performance in cycles per processed byte and improvement coefficient
+// over code generated with "default" compiler:
+//
+// SHA256-hw SHA256(*) SHA512
+// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**))
+// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***))
+// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***))
+// Denver 2.01 10.5 (+26%) 6.70 (+8%)
+// X-Gene 20.0 (+100%) 12.8 (+300%(***))
+// Mongoose 2.36 13.0 (+50%) 8.36 (+33%)
+// Kryo 1.92 17.4 (+30%) 11.2 (+8%)
+//
+// (*) Software SHA256 results are of lesser relevance, presented
+// mostly for informational purposes.
+// (**) The result is a trade-off: it's possible to improve it by
+// 10% (or by 1 cycle per round), but at the cost of 20% loss
+// on Cortex-A53 (or by 4 cycles per round).
+// (***) Super-impressive coefficients over gcc-generated code are
+// indication of some compiler "pathology", most notably code
+// generated with -mgeneral-regs-only is significantly faster
+// and the gap is only 40-90%.
+//
+// October 2016.
+//
+// Originally it was reckoned that it makes no sense to implement NEON
+// version of SHA256 for 64-bit processors. This is because performance
+// improvement on most wide-spread Cortex-A5x processors was observed
+// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was
+// observed that 32-bit NEON SHA256 performs significantly better than
+// 64-bit scalar version on *some* of the more recent processors. As
+// result 64-bit NEON version of SHA256 was added to provide best
+// all-round performance. For example it executes ~30% faster on X-Gene
+// and Mongoose. [For reference, NEON version of SHA512 is bound to
+// deliver much less improvement, likely *negative* on Cortex-A5x.
+// Which is why NEON support is limited to SHA256.]
+
+#ifndef __KERNEL__
+# include "arm_arch.h"
+#endif
+
+.text
+
+
+.private_extern _OPENSSL_armcap_P
+.globl _sha256_block_data_order
+
+.align 6
+_sha256_block_data_order:
+#ifndef __KERNEL__
+# ifdef __ILP32__
+ ldrsw x16,LOPENSSL_armcap_P
+# else
+ ldr x16,LOPENSSL_armcap_P
+# endif
+ adr x17,LOPENSSL_armcap_P
+ add x16,x16,x17
+ ldr w16,[x16]
+ tst w16,#ARMV8_SHA256
+ b.ne Lv8_entry
+ tst w16,#ARMV7_NEON
+ b.ne Lneon_entry
+#endif
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#4*4
+
+ ldp w20,w21,[x0] // load context
+ ldp w22,w23,[x0,#2*4]
+ ldp w24,w25,[x0,#4*4]
+ add x2,x1,x2,lsl#6 // end of input
+ ldp w26,w27,[x0,#6*4]
+ adr x30,LK256
+ stp x0,x2,[x29,#96]
+
+Loop:
+ ldp w3,w4,[x1],#2*4
+ ldr w19,[x30],#4 // *K++
+ eor w28,w21,w22 // magic seed
+ str x1,[x29,#112]
+#ifndef __AARCH64EB__
+ rev w3,w3 // 0
+#endif
+ ror w16,w24,#6
+ add w27,w27,w19 // h+=K[i]
+ eor w6,w24,w24,ror#14
+ and w17,w25,w24
+ bic w19,w26,w24
+ add w27,w27,w3 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w20,w21 // a^b, b^c in next round
+ eor w16,w16,w6,ror#11 // Sigma1(e)
+ ror w6,w20,#2
+ add w27,w27,w17 // h+=Ch(e,f,g)
+ eor w17,w20,w20,ror#9
+ add w27,w27,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w23,w23,w27 // d+=h
+ eor w28,w28,w21 // Maj(a,b,c)
+ eor w17,w6,w17,ror#13 // Sigma0(a)
+ add w27,w27,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w27,w27,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w4,w4 // 1
+#endif
+ ldp w5,w6,[x1],#2*4
+ add w27,w27,w17 // h+=Sigma0(a)
+ ror w16,w23,#6
+ add w26,w26,w28 // h+=K[i]
+ eor w7,w23,w23,ror#14
+ and w17,w24,w23
+ bic w28,w25,w23
+ add w26,w26,w4 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w27,w20 // a^b, b^c in next round
+ eor w16,w16,w7,ror#11 // Sigma1(e)
+ ror w7,w27,#2
+ add w26,w26,w17 // h+=Ch(e,f,g)
+ eor w17,w27,w27,ror#9
+ add w26,w26,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w22,w22,w26 // d+=h
+ eor w19,w19,w20 // Maj(a,b,c)
+ eor w17,w7,w17,ror#13 // Sigma0(a)
+ add w26,w26,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w26,w26,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w5,w5 // 2
+#endif
+ add w26,w26,w17 // h+=Sigma0(a)
+ ror w16,w22,#6
+ add w25,w25,w19 // h+=K[i]
+ eor w8,w22,w22,ror#14
+ and w17,w23,w22
+ bic w19,w24,w22
+ add w25,w25,w5 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w26,w27 // a^b, b^c in next round
+ eor w16,w16,w8,ror#11 // Sigma1(e)
+ ror w8,w26,#2
+ add w25,w25,w17 // h+=Ch(e,f,g)
+ eor w17,w26,w26,ror#9
+ add w25,w25,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w21,w21,w25 // d+=h
+ eor w28,w28,w27 // Maj(a,b,c)
+ eor w17,w8,w17,ror#13 // Sigma0(a)
+ add w25,w25,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w25,w25,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w6,w6 // 3
+#endif
+ ldp w7,w8,[x1],#2*4
+ add w25,w25,w17 // h+=Sigma0(a)
+ ror w16,w21,#6
+ add w24,w24,w28 // h+=K[i]
+ eor w9,w21,w21,ror#14
+ and w17,w22,w21
+ bic w28,w23,w21
+ add w24,w24,w6 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w25,w26 // a^b, b^c in next round
+ eor w16,w16,w9,ror#11 // Sigma1(e)
+ ror w9,w25,#2
+ add w24,w24,w17 // h+=Ch(e,f,g)
+ eor w17,w25,w25,ror#9
+ add w24,w24,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w20,w20,w24 // d+=h
+ eor w19,w19,w26 // Maj(a,b,c)
+ eor w17,w9,w17,ror#13 // Sigma0(a)
+ add w24,w24,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w24,w24,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w7,w7 // 4
+#endif
+ add w24,w24,w17 // h+=Sigma0(a)
+ ror w16,w20,#6
+ add w23,w23,w19 // h+=K[i]
+ eor w10,w20,w20,ror#14
+ and w17,w21,w20
+ bic w19,w22,w20
+ add w23,w23,w7 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w24,w25 // a^b, b^c in next round
+ eor w16,w16,w10,ror#11 // Sigma1(e)
+ ror w10,w24,#2
+ add w23,w23,w17 // h+=Ch(e,f,g)
+ eor w17,w24,w24,ror#9
+ add w23,w23,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w27,w27,w23 // d+=h
+ eor w28,w28,w25 // Maj(a,b,c)
+ eor w17,w10,w17,ror#13 // Sigma0(a)
+ add w23,w23,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w23,w23,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w8,w8 // 5
+#endif
+ ldp w9,w10,[x1],#2*4
+ add w23,w23,w17 // h+=Sigma0(a)
+ ror w16,w27,#6
+ add w22,w22,w28 // h+=K[i]
+ eor w11,w27,w27,ror#14
+ and w17,w20,w27
+ bic w28,w21,w27
+ add w22,w22,w8 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w23,w24 // a^b, b^c in next round
+ eor w16,w16,w11,ror#11 // Sigma1(e)
+ ror w11,w23,#2
+ add w22,w22,w17 // h+=Ch(e,f,g)
+ eor w17,w23,w23,ror#9
+ add w22,w22,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w26,w26,w22 // d+=h
+ eor w19,w19,w24 // Maj(a,b,c)
+ eor w17,w11,w17,ror#13 // Sigma0(a)
+ add w22,w22,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w22,w22,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w9,w9 // 6
+#endif
+ add w22,w22,w17 // h+=Sigma0(a)
+ ror w16,w26,#6
+ add w21,w21,w19 // h+=K[i]
+ eor w12,w26,w26,ror#14
+ and w17,w27,w26
+ bic w19,w20,w26
+ add w21,w21,w9 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w22,w23 // a^b, b^c in next round
+ eor w16,w16,w12,ror#11 // Sigma1(e)
+ ror w12,w22,#2
+ add w21,w21,w17 // h+=Ch(e,f,g)
+ eor w17,w22,w22,ror#9
+ add w21,w21,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w25,w25,w21 // d+=h
+ eor w28,w28,w23 // Maj(a,b,c)
+ eor w17,w12,w17,ror#13 // Sigma0(a)
+ add w21,w21,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w21,w21,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w10,w10 // 7
+#endif
+ ldp w11,w12,[x1],#2*4
+ add w21,w21,w17 // h+=Sigma0(a)
+ ror w16,w25,#6
+ add w20,w20,w28 // h+=K[i]
+ eor w13,w25,w25,ror#14
+ and w17,w26,w25
+ bic w28,w27,w25
+ add w20,w20,w10 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w21,w22 // a^b, b^c in next round
+ eor w16,w16,w13,ror#11 // Sigma1(e)
+ ror w13,w21,#2
+ add w20,w20,w17 // h+=Ch(e,f,g)
+ eor w17,w21,w21,ror#9
+ add w20,w20,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w24,w24,w20 // d+=h
+ eor w19,w19,w22 // Maj(a,b,c)
+ eor w17,w13,w17,ror#13 // Sigma0(a)
+ add w20,w20,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w20,w20,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w11,w11 // 8
+#endif
+ add w20,w20,w17 // h+=Sigma0(a)
+ ror w16,w24,#6
+ add w27,w27,w19 // h+=K[i]
+ eor w14,w24,w24,ror#14
+ and w17,w25,w24
+ bic w19,w26,w24
+ add w27,w27,w11 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w20,w21 // a^b, b^c in next round
+ eor w16,w16,w14,ror#11 // Sigma1(e)
+ ror w14,w20,#2
+ add w27,w27,w17 // h+=Ch(e,f,g)
+ eor w17,w20,w20,ror#9
+ add w27,w27,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w23,w23,w27 // d+=h
+ eor w28,w28,w21 // Maj(a,b,c)
+ eor w17,w14,w17,ror#13 // Sigma0(a)
+ add w27,w27,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w27,w27,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w12,w12 // 9
+#endif
+ ldp w13,w14,[x1],#2*4
+ add w27,w27,w17 // h+=Sigma0(a)
+ ror w16,w23,#6
+ add w26,w26,w28 // h+=K[i]
+ eor w15,w23,w23,ror#14
+ and w17,w24,w23
+ bic w28,w25,w23
+ add w26,w26,w12 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w27,w20 // a^b, b^c in next round
+ eor w16,w16,w15,ror#11 // Sigma1(e)
+ ror w15,w27,#2
+ add w26,w26,w17 // h+=Ch(e,f,g)
+ eor w17,w27,w27,ror#9
+ add w26,w26,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w22,w22,w26 // d+=h
+ eor w19,w19,w20 // Maj(a,b,c)
+ eor w17,w15,w17,ror#13 // Sigma0(a)
+ add w26,w26,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w26,w26,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w13,w13 // 10
+#endif
+ add w26,w26,w17 // h+=Sigma0(a)
+ ror w16,w22,#6
+ add w25,w25,w19 // h+=K[i]
+ eor w0,w22,w22,ror#14
+ and w17,w23,w22
+ bic w19,w24,w22
+ add w25,w25,w13 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w26,w27 // a^b, b^c in next round
+ eor w16,w16,w0,ror#11 // Sigma1(e)
+ ror w0,w26,#2
+ add w25,w25,w17 // h+=Ch(e,f,g)
+ eor w17,w26,w26,ror#9
+ add w25,w25,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w21,w21,w25 // d+=h
+ eor w28,w28,w27 // Maj(a,b,c)
+ eor w17,w0,w17,ror#13 // Sigma0(a)
+ add w25,w25,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w25,w25,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w14,w14 // 11
+#endif
+ ldp w15,w0,[x1],#2*4
+ add w25,w25,w17 // h+=Sigma0(a)
+ str w6,[sp,#12]
+ ror w16,w21,#6
+ add w24,w24,w28 // h+=K[i]
+ eor w6,w21,w21,ror#14
+ and w17,w22,w21
+ bic w28,w23,w21
+ add w24,w24,w14 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w25,w26 // a^b, b^c in next round
+ eor w16,w16,w6,ror#11 // Sigma1(e)
+ ror w6,w25,#2
+ add w24,w24,w17 // h+=Ch(e,f,g)
+ eor w17,w25,w25,ror#9
+ add w24,w24,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w20,w20,w24 // d+=h
+ eor w19,w19,w26 // Maj(a,b,c)
+ eor w17,w6,w17,ror#13 // Sigma0(a)
+ add w24,w24,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w24,w24,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w15,w15 // 12
+#endif
+ add w24,w24,w17 // h+=Sigma0(a)
+ str w7,[sp,#0]
+ ror w16,w20,#6
+ add w23,w23,w19 // h+=K[i]
+ eor w7,w20,w20,ror#14
+ and w17,w21,w20
+ bic w19,w22,w20
+ add w23,w23,w15 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w24,w25 // a^b, b^c in next round
+ eor w16,w16,w7,ror#11 // Sigma1(e)
+ ror w7,w24,#2
+ add w23,w23,w17 // h+=Ch(e,f,g)
+ eor w17,w24,w24,ror#9
+ add w23,w23,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w27,w27,w23 // d+=h
+ eor w28,w28,w25 // Maj(a,b,c)
+ eor w17,w7,w17,ror#13 // Sigma0(a)
+ add w23,w23,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w23,w23,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w0,w0 // 13
+#endif
+ ldp w1,w2,[x1]
+ add w23,w23,w17 // h+=Sigma0(a)
+ str w8,[sp,#4]
+ ror w16,w27,#6
+ add w22,w22,w28 // h+=K[i]
+ eor w8,w27,w27,ror#14
+ and w17,w20,w27
+ bic w28,w21,w27
+ add w22,w22,w0 // h+=X[i]
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w23,w24 // a^b, b^c in next round
+ eor w16,w16,w8,ror#11 // Sigma1(e)
+ ror w8,w23,#2
+ add w22,w22,w17 // h+=Ch(e,f,g)
+ eor w17,w23,w23,ror#9
+ add w22,w22,w16 // h+=Sigma1(e)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ add w26,w26,w22 // d+=h
+ eor w19,w19,w24 // Maj(a,b,c)
+ eor w17,w8,w17,ror#13 // Sigma0(a)
+ add w22,w22,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ //add w22,w22,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w1,w1 // 14
+#endif
+ ldr w6,[sp,#12]
+ add w22,w22,w17 // h+=Sigma0(a)
+ str w9,[sp,#8]
+ ror w16,w26,#6
+ add w21,w21,w19 // h+=K[i]
+ eor w9,w26,w26,ror#14
+ and w17,w27,w26
+ bic w19,w20,w26
+ add w21,w21,w1 // h+=X[i]
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w22,w23 // a^b, b^c in next round
+ eor w16,w16,w9,ror#11 // Sigma1(e)
+ ror w9,w22,#2
+ add w21,w21,w17 // h+=Ch(e,f,g)
+ eor w17,w22,w22,ror#9
+ add w21,w21,w16 // h+=Sigma1(e)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ add w25,w25,w21 // d+=h
+ eor w28,w28,w23 // Maj(a,b,c)
+ eor w17,w9,w17,ror#13 // Sigma0(a)
+ add w21,w21,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ //add w21,w21,w17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev w2,w2 // 15
+#endif
+ ldr w7,[sp,#0]
+ add w21,w21,w17 // h+=Sigma0(a)
+ str w10,[sp,#12]
+ ror w16,w25,#6
+ add w20,w20,w28 // h+=K[i]
+ ror w9,w4,#7
+ and w17,w26,w25
+ ror w8,w1,#17
+ bic w28,w27,w25
+ ror w10,w21,#2
+ add w20,w20,w2 // h+=X[i]
+ eor w16,w16,w25,ror#11
+ eor w9,w9,w4,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w21,w22 // a^b, b^c in next round
+ eor w16,w16,w25,ror#25 // Sigma1(e)
+ eor w10,w10,w21,ror#13
+ add w20,w20,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w8,w8,w1,ror#19
+ eor w9,w9,w4,lsr#3 // sigma0(X[i+1])
+ add w20,w20,w16 // h+=Sigma1(e)
+ eor w19,w19,w22 // Maj(a,b,c)
+ eor w17,w10,w21,ror#22 // Sigma0(a)
+ eor w8,w8,w1,lsr#10 // sigma1(X[i+14])
+ add w3,w3,w12
+ add w24,w24,w20 // d+=h
+ add w20,w20,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w3,w3,w9
+ add w20,w20,w17 // h+=Sigma0(a)
+ add w3,w3,w8
+Loop_16_xx:
+ ldr w8,[sp,#4]
+ str w11,[sp,#0]
+ ror w16,w24,#6
+ add w27,w27,w19 // h+=K[i]
+ ror w10,w5,#7
+ and w17,w25,w24
+ ror w9,w2,#17
+ bic w19,w26,w24
+ ror w11,w20,#2
+ add w27,w27,w3 // h+=X[i]
+ eor w16,w16,w24,ror#11
+ eor w10,w10,w5,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w20,w21 // a^b, b^c in next round
+ eor w16,w16,w24,ror#25 // Sigma1(e)
+ eor w11,w11,w20,ror#13
+ add w27,w27,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w9,w9,w2,ror#19
+ eor w10,w10,w5,lsr#3 // sigma0(X[i+1])
+ add w27,w27,w16 // h+=Sigma1(e)
+ eor w28,w28,w21 // Maj(a,b,c)
+ eor w17,w11,w20,ror#22 // Sigma0(a)
+ eor w9,w9,w2,lsr#10 // sigma1(X[i+14])
+ add w4,w4,w13
+ add w23,w23,w27 // d+=h
+ add w27,w27,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w4,w4,w10
+ add w27,w27,w17 // h+=Sigma0(a)
+ add w4,w4,w9
+ ldr w9,[sp,#8]
+ str w12,[sp,#4]
+ ror w16,w23,#6
+ add w26,w26,w28 // h+=K[i]
+ ror w11,w6,#7
+ and w17,w24,w23
+ ror w10,w3,#17
+ bic w28,w25,w23
+ ror w12,w27,#2
+ add w26,w26,w4 // h+=X[i]
+ eor w16,w16,w23,ror#11
+ eor w11,w11,w6,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w27,w20 // a^b, b^c in next round
+ eor w16,w16,w23,ror#25 // Sigma1(e)
+ eor w12,w12,w27,ror#13
+ add w26,w26,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w10,w10,w3,ror#19
+ eor w11,w11,w6,lsr#3 // sigma0(X[i+1])
+ add w26,w26,w16 // h+=Sigma1(e)
+ eor w19,w19,w20 // Maj(a,b,c)
+ eor w17,w12,w27,ror#22 // Sigma0(a)
+ eor w10,w10,w3,lsr#10 // sigma1(X[i+14])
+ add w5,w5,w14
+ add w22,w22,w26 // d+=h
+ add w26,w26,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w5,w5,w11
+ add w26,w26,w17 // h+=Sigma0(a)
+ add w5,w5,w10
+ ldr w10,[sp,#12]
+ str w13,[sp,#8]
+ ror w16,w22,#6
+ add w25,w25,w19 // h+=K[i]
+ ror w12,w7,#7
+ and w17,w23,w22
+ ror w11,w4,#17
+ bic w19,w24,w22
+ ror w13,w26,#2
+ add w25,w25,w5 // h+=X[i]
+ eor w16,w16,w22,ror#11
+ eor w12,w12,w7,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w26,w27 // a^b, b^c in next round
+ eor w16,w16,w22,ror#25 // Sigma1(e)
+ eor w13,w13,w26,ror#13
+ add w25,w25,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w11,w11,w4,ror#19
+ eor w12,w12,w7,lsr#3 // sigma0(X[i+1])
+ add w25,w25,w16 // h+=Sigma1(e)
+ eor w28,w28,w27 // Maj(a,b,c)
+ eor w17,w13,w26,ror#22 // Sigma0(a)
+ eor w11,w11,w4,lsr#10 // sigma1(X[i+14])
+ add w6,w6,w15
+ add w21,w21,w25 // d+=h
+ add w25,w25,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w6,w6,w12
+ add w25,w25,w17 // h+=Sigma0(a)
+ add w6,w6,w11
+ ldr w11,[sp,#0]
+ str w14,[sp,#12]
+ ror w16,w21,#6
+ add w24,w24,w28 // h+=K[i]
+ ror w13,w8,#7
+ and w17,w22,w21
+ ror w12,w5,#17
+ bic w28,w23,w21
+ ror w14,w25,#2
+ add w24,w24,w6 // h+=X[i]
+ eor w16,w16,w21,ror#11
+ eor w13,w13,w8,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w25,w26 // a^b, b^c in next round
+ eor w16,w16,w21,ror#25 // Sigma1(e)
+ eor w14,w14,w25,ror#13
+ add w24,w24,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w12,w12,w5,ror#19
+ eor w13,w13,w8,lsr#3 // sigma0(X[i+1])
+ add w24,w24,w16 // h+=Sigma1(e)
+ eor w19,w19,w26 // Maj(a,b,c)
+ eor w17,w14,w25,ror#22 // Sigma0(a)
+ eor w12,w12,w5,lsr#10 // sigma1(X[i+14])
+ add w7,w7,w0
+ add w20,w20,w24 // d+=h
+ add w24,w24,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w7,w7,w13
+ add w24,w24,w17 // h+=Sigma0(a)
+ add w7,w7,w12
+ ldr w12,[sp,#4]
+ str w15,[sp,#0]
+ ror w16,w20,#6
+ add w23,w23,w19 // h+=K[i]
+ ror w14,w9,#7
+ and w17,w21,w20
+ ror w13,w6,#17
+ bic w19,w22,w20
+ ror w15,w24,#2
+ add w23,w23,w7 // h+=X[i]
+ eor w16,w16,w20,ror#11
+ eor w14,w14,w9,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w24,w25 // a^b, b^c in next round
+ eor w16,w16,w20,ror#25 // Sigma1(e)
+ eor w15,w15,w24,ror#13
+ add w23,w23,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w13,w13,w6,ror#19
+ eor w14,w14,w9,lsr#3 // sigma0(X[i+1])
+ add w23,w23,w16 // h+=Sigma1(e)
+ eor w28,w28,w25 // Maj(a,b,c)
+ eor w17,w15,w24,ror#22 // Sigma0(a)
+ eor w13,w13,w6,lsr#10 // sigma1(X[i+14])
+ add w8,w8,w1
+ add w27,w27,w23 // d+=h
+ add w23,w23,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w8,w8,w14
+ add w23,w23,w17 // h+=Sigma0(a)
+ add w8,w8,w13
+ ldr w13,[sp,#8]
+ str w0,[sp,#4]
+ ror w16,w27,#6
+ add w22,w22,w28 // h+=K[i]
+ ror w15,w10,#7
+ and w17,w20,w27
+ ror w14,w7,#17
+ bic w28,w21,w27
+ ror w0,w23,#2
+ add w22,w22,w8 // h+=X[i]
+ eor w16,w16,w27,ror#11
+ eor w15,w15,w10,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w23,w24 // a^b, b^c in next round
+ eor w16,w16,w27,ror#25 // Sigma1(e)
+ eor w0,w0,w23,ror#13
+ add w22,w22,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w14,w14,w7,ror#19
+ eor w15,w15,w10,lsr#3 // sigma0(X[i+1])
+ add w22,w22,w16 // h+=Sigma1(e)
+ eor w19,w19,w24 // Maj(a,b,c)
+ eor w17,w0,w23,ror#22 // Sigma0(a)
+ eor w14,w14,w7,lsr#10 // sigma1(X[i+14])
+ add w9,w9,w2
+ add w26,w26,w22 // d+=h
+ add w22,w22,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w9,w9,w15
+ add w22,w22,w17 // h+=Sigma0(a)
+ add w9,w9,w14
+ ldr w14,[sp,#12]
+ str w1,[sp,#8]
+ ror w16,w26,#6
+ add w21,w21,w19 // h+=K[i]
+ ror w0,w11,#7
+ and w17,w27,w26
+ ror w15,w8,#17
+ bic w19,w20,w26
+ ror w1,w22,#2
+ add w21,w21,w9 // h+=X[i]
+ eor w16,w16,w26,ror#11
+ eor w0,w0,w11,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w22,w23 // a^b, b^c in next round
+ eor w16,w16,w26,ror#25 // Sigma1(e)
+ eor w1,w1,w22,ror#13
+ add w21,w21,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w15,w15,w8,ror#19
+ eor w0,w0,w11,lsr#3 // sigma0(X[i+1])
+ add w21,w21,w16 // h+=Sigma1(e)
+ eor w28,w28,w23 // Maj(a,b,c)
+ eor w17,w1,w22,ror#22 // Sigma0(a)
+ eor w15,w15,w8,lsr#10 // sigma1(X[i+14])
+ add w10,w10,w3
+ add w25,w25,w21 // d+=h
+ add w21,w21,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w10,w10,w0
+ add w21,w21,w17 // h+=Sigma0(a)
+ add w10,w10,w15
+ ldr w15,[sp,#0]
+ str w2,[sp,#12]
+ ror w16,w25,#6
+ add w20,w20,w28 // h+=K[i]
+ ror w1,w12,#7
+ and w17,w26,w25
+ ror w0,w9,#17
+ bic w28,w27,w25
+ ror w2,w21,#2
+ add w20,w20,w10 // h+=X[i]
+ eor w16,w16,w25,ror#11
+ eor w1,w1,w12,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w21,w22 // a^b, b^c in next round
+ eor w16,w16,w25,ror#25 // Sigma1(e)
+ eor w2,w2,w21,ror#13
+ add w20,w20,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w0,w0,w9,ror#19
+ eor w1,w1,w12,lsr#3 // sigma0(X[i+1])
+ add w20,w20,w16 // h+=Sigma1(e)
+ eor w19,w19,w22 // Maj(a,b,c)
+ eor w17,w2,w21,ror#22 // Sigma0(a)
+ eor w0,w0,w9,lsr#10 // sigma1(X[i+14])
+ add w11,w11,w4
+ add w24,w24,w20 // d+=h
+ add w20,w20,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w11,w11,w1
+ add w20,w20,w17 // h+=Sigma0(a)
+ add w11,w11,w0
+ ldr w0,[sp,#4]
+ str w3,[sp,#0]
+ ror w16,w24,#6
+ add w27,w27,w19 // h+=K[i]
+ ror w2,w13,#7
+ and w17,w25,w24
+ ror w1,w10,#17
+ bic w19,w26,w24
+ ror w3,w20,#2
+ add w27,w27,w11 // h+=X[i]
+ eor w16,w16,w24,ror#11
+ eor w2,w2,w13,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w20,w21 // a^b, b^c in next round
+ eor w16,w16,w24,ror#25 // Sigma1(e)
+ eor w3,w3,w20,ror#13
+ add w27,w27,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w1,w1,w10,ror#19
+ eor w2,w2,w13,lsr#3 // sigma0(X[i+1])
+ add w27,w27,w16 // h+=Sigma1(e)
+ eor w28,w28,w21 // Maj(a,b,c)
+ eor w17,w3,w20,ror#22 // Sigma0(a)
+ eor w1,w1,w10,lsr#10 // sigma1(X[i+14])
+ add w12,w12,w5
+ add w23,w23,w27 // d+=h
+ add w27,w27,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w12,w12,w2
+ add w27,w27,w17 // h+=Sigma0(a)
+ add w12,w12,w1
+ ldr w1,[sp,#8]
+ str w4,[sp,#4]
+ ror w16,w23,#6
+ add w26,w26,w28 // h+=K[i]
+ ror w3,w14,#7
+ and w17,w24,w23
+ ror w2,w11,#17
+ bic w28,w25,w23
+ ror w4,w27,#2
+ add w26,w26,w12 // h+=X[i]
+ eor w16,w16,w23,ror#11
+ eor w3,w3,w14,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w27,w20 // a^b, b^c in next round
+ eor w16,w16,w23,ror#25 // Sigma1(e)
+ eor w4,w4,w27,ror#13
+ add w26,w26,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w2,w2,w11,ror#19
+ eor w3,w3,w14,lsr#3 // sigma0(X[i+1])
+ add w26,w26,w16 // h+=Sigma1(e)
+ eor w19,w19,w20 // Maj(a,b,c)
+ eor w17,w4,w27,ror#22 // Sigma0(a)
+ eor w2,w2,w11,lsr#10 // sigma1(X[i+14])
+ add w13,w13,w6
+ add w22,w22,w26 // d+=h
+ add w26,w26,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w13,w13,w3
+ add w26,w26,w17 // h+=Sigma0(a)
+ add w13,w13,w2
+ ldr w2,[sp,#12]
+ str w5,[sp,#8]
+ ror w16,w22,#6
+ add w25,w25,w19 // h+=K[i]
+ ror w4,w15,#7
+ and w17,w23,w22
+ ror w3,w12,#17
+ bic w19,w24,w22
+ ror w5,w26,#2
+ add w25,w25,w13 // h+=X[i]
+ eor w16,w16,w22,ror#11
+ eor w4,w4,w15,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w26,w27 // a^b, b^c in next round
+ eor w16,w16,w22,ror#25 // Sigma1(e)
+ eor w5,w5,w26,ror#13
+ add w25,w25,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w3,w3,w12,ror#19
+ eor w4,w4,w15,lsr#3 // sigma0(X[i+1])
+ add w25,w25,w16 // h+=Sigma1(e)
+ eor w28,w28,w27 // Maj(a,b,c)
+ eor w17,w5,w26,ror#22 // Sigma0(a)
+ eor w3,w3,w12,lsr#10 // sigma1(X[i+14])
+ add w14,w14,w7
+ add w21,w21,w25 // d+=h
+ add w25,w25,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w14,w14,w4
+ add w25,w25,w17 // h+=Sigma0(a)
+ add w14,w14,w3
+ ldr w3,[sp,#0]
+ str w6,[sp,#12]
+ ror w16,w21,#6
+ add w24,w24,w28 // h+=K[i]
+ ror w5,w0,#7
+ and w17,w22,w21
+ ror w4,w13,#17
+ bic w28,w23,w21
+ ror w6,w25,#2
+ add w24,w24,w14 // h+=X[i]
+ eor w16,w16,w21,ror#11
+ eor w5,w5,w0,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w25,w26 // a^b, b^c in next round
+ eor w16,w16,w21,ror#25 // Sigma1(e)
+ eor w6,w6,w25,ror#13
+ add w24,w24,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w4,w4,w13,ror#19
+ eor w5,w5,w0,lsr#3 // sigma0(X[i+1])
+ add w24,w24,w16 // h+=Sigma1(e)
+ eor w19,w19,w26 // Maj(a,b,c)
+ eor w17,w6,w25,ror#22 // Sigma0(a)
+ eor w4,w4,w13,lsr#10 // sigma1(X[i+14])
+ add w15,w15,w8
+ add w20,w20,w24 // d+=h
+ add w24,w24,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w15,w15,w5
+ add w24,w24,w17 // h+=Sigma0(a)
+ add w15,w15,w4
+ ldr w4,[sp,#4]
+ str w7,[sp,#0]
+ ror w16,w20,#6
+ add w23,w23,w19 // h+=K[i]
+ ror w6,w1,#7
+ and w17,w21,w20
+ ror w5,w14,#17
+ bic w19,w22,w20
+ ror w7,w24,#2
+ add w23,w23,w15 // h+=X[i]
+ eor w16,w16,w20,ror#11
+ eor w6,w6,w1,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w24,w25 // a^b, b^c in next round
+ eor w16,w16,w20,ror#25 // Sigma1(e)
+ eor w7,w7,w24,ror#13
+ add w23,w23,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w5,w5,w14,ror#19
+ eor w6,w6,w1,lsr#3 // sigma0(X[i+1])
+ add w23,w23,w16 // h+=Sigma1(e)
+ eor w28,w28,w25 // Maj(a,b,c)
+ eor w17,w7,w24,ror#22 // Sigma0(a)
+ eor w5,w5,w14,lsr#10 // sigma1(X[i+14])
+ add w0,w0,w9
+ add w27,w27,w23 // d+=h
+ add w23,w23,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w0,w0,w6
+ add w23,w23,w17 // h+=Sigma0(a)
+ add w0,w0,w5
+ ldr w5,[sp,#8]
+ str w8,[sp,#4]
+ ror w16,w27,#6
+ add w22,w22,w28 // h+=K[i]
+ ror w7,w2,#7
+ and w17,w20,w27
+ ror w6,w15,#17
+ bic w28,w21,w27
+ ror w8,w23,#2
+ add w22,w22,w0 // h+=X[i]
+ eor w16,w16,w27,ror#11
+ eor w7,w7,w2,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w23,w24 // a^b, b^c in next round
+ eor w16,w16,w27,ror#25 // Sigma1(e)
+ eor w8,w8,w23,ror#13
+ add w22,w22,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w6,w6,w15,ror#19
+ eor w7,w7,w2,lsr#3 // sigma0(X[i+1])
+ add w22,w22,w16 // h+=Sigma1(e)
+ eor w19,w19,w24 // Maj(a,b,c)
+ eor w17,w8,w23,ror#22 // Sigma0(a)
+ eor w6,w6,w15,lsr#10 // sigma1(X[i+14])
+ add w1,w1,w10
+ add w26,w26,w22 // d+=h
+ add w22,w22,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w1,w1,w7
+ add w22,w22,w17 // h+=Sigma0(a)
+ add w1,w1,w6
+ ldr w6,[sp,#12]
+ str w9,[sp,#8]
+ ror w16,w26,#6
+ add w21,w21,w19 // h+=K[i]
+ ror w8,w3,#7
+ and w17,w27,w26
+ ror w7,w0,#17
+ bic w19,w20,w26
+ ror w9,w22,#2
+ add w21,w21,w1 // h+=X[i]
+ eor w16,w16,w26,ror#11
+ eor w8,w8,w3,ror#18
+ orr w17,w17,w19 // Ch(e,f,g)
+ eor w19,w22,w23 // a^b, b^c in next round
+ eor w16,w16,w26,ror#25 // Sigma1(e)
+ eor w9,w9,w22,ror#13
+ add w21,w21,w17 // h+=Ch(e,f,g)
+ and w28,w28,w19 // (b^c)&=(a^b)
+ eor w7,w7,w0,ror#19
+ eor w8,w8,w3,lsr#3 // sigma0(X[i+1])
+ add w21,w21,w16 // h+=Sigma1(e)
+ eor w28,w28,w23 // Maj(a,b,c)
+ eor w17,w9,w22,ror#22 // Sigma0(a)
+ eor w7,w7,w0,lsr#10 // sigma1(X[i+14])
+ add w2,w2,w11
+ add w25,w25,w21 // d+=h
+ add w21,w21,w28 // h+=Maj(a,b,c)
+ ldr w28,[x30],#4 // *K++, w19 in next round
+ add w2,w2,w8
+ add w21,w21,w17 // h+=Sigma0(a)
+ add w2,w2,w7
+ ldr w7,[sp,#0]
+ str w10,[sp,#12]
+ ror w16,w25,#6
+ add w20,w20,w28 // h+=K[i]
+ ror w9,w4,#7
+ and w17,w26,w25
+ ror w8,w1,#17
+ bic w28,w27,w25
+ ror w10,w21,#2
+ add w20,w20,w2 // h+=X[i]
+ eor w16,w16,w25,ror#11
+ eor w9,w9,w4,ror#18
+ orr w17,w17,w28 // Ch(e,f,g)
+ eor w28,w21,w22 // a^b, b^c in next round
+ eor w16,w16,w25,ror#25 // Sigma1(e)
+ eor w10,w10,w21,ror#13
+ add w20,w20,w17 // h+=Ch(e,f,g)
+ and w19,w19,w28 // (b^c)&=(a^b)
+ eor w8,w8,w1,ror#19
+ eor w9,w9,w4,lsr#3 // sigma0(X[i+1])
+ add w20,w20,w16 // h+=Sigma1(e)
+ eor w19,w19,w22 // Maj(a,b,c)
+ eor w17,w10,w21,ror#22 // Sigma0(a)
+ eor w8,w8,w1,lsr#10 // sigma1(X[i+14])
+ add w3,w3,w12
+ add w24,w24,w20 // d+=h
+ add w20,w20,w19 // h+=Maj(a,b,c)
+ ldr w19,[x30],#4 // *K++, w28 in next round
+ add w3,w3,w9
+ add w20,w20,w17 // h+=Sigma0(a)
+ add w3,w3,w8
+ cbnz w19,Loop_16_xx
+
+ ldp x0,x2,[x29,#96]
+ ldr x1,[x29,#112]
+ sub x30,x30,#260 // rewind
+
+ ldp w3,w4,[x0]
+ ldp w5,w6,[x0,#2*4]
+ add x1,x1,#14*4 // advance input pointer
+ ldp w7,w8,[x0,#4*4]
+ add w20,w20,w3
+ ldp w9,w10,[x0,#6*4]
+ add w21,w21,w4
+ add w22,w22,w5
+ add w23,w23,w6
+ stp w20,w21,[x0]
+ add w24,w24,w7
+ add w25,w25,w8
+ stp w22,w23,[x0,#2*4]
+ add w26,w26,w9
+ add w27,w27,w10
+ cmp x1,x2
+ stp w24,w25,[x0,#4*4]
+ stp w26,w27,[x0,#6*4]
+ b.ne Loop
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#4*4
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+
+.align 6
+
+LK256:
+.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+.long 0 //terminator
+
+#ifndef __KERNEL__
+.align 3
+LOPENSSL_armcap_P:
+# ifdef __ILP32__
+.long _OPENSSL_armcap_P-.
+# else
+.quad _OPENSSL_armcap_P-.
+# endif
+#endif
+.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 2
+#ifndef __KERNEL__
+
+.align 6
+sha256_block_armv8:
+Lv8_entry:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ld1 {v0.4s,v1.4s},[x0]
+ adr x3,LK256
+
+Loop_hw:
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
+ sub x2,x2,#1
+ ld1 {v16.4s},[x3],#16
+ rev32 v4.16b,v4.16b
+ rev32 v5.16b,v5.16b
+ rev32 v6.16b,v6.16b
+ rev32 v7.16b,v7.16b
+ orr v18.16b,v0.16b,v0.16b // offload
+ orr v19.16b,v1.16b,v1.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.long 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.long 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v6.4s
+.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v7.4s
+.long 0x5e282887 //sha256su0 v7.16b,v4.16b
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b
+ ld1 {v17.4s},[x3],#16
+ add v16.4s,v16.4s,v4.4s
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+
+ ld1 {v16.4s},[x3],#16
+ add v17.4s,v17.4s,v5.4s
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+
+ ld1 {v17.4s},[x3]
+ add v16.4s,v16.4s,v6.4s
+ sub x3,x3,#64*4-16 // rewind
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s
+.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s
+
+ add v17.4s,v17.4s,v7.4s
+ orr v2.16b,v0.16b,v0.16b
+.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s
+.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s
+
+ add v0.4s,v0.4s,v18.4s
+ add v1.4s,v1.4s,v19.4s
+
+ cbnz x2,Loop_hw
+
+ st1 {v0.4s,v1.4s},[x0]
+
+ ldr x29,[sp],#16
+ ret
+
+#endif
+#ifdef __KERNEL__
+.globl _sha256_block_neon
+#endif
+
+.align 4
+_sha256_block_neon:
+Lneon_entry:
+ stp x29, x30, [sp, #-16]!
+ mov x29, sp
+ sub sp,sp,#16*4
+
+ adr x16,LK256
+ add x2,x1,x2,lsl#6 // len to point at the end of inp
+
+ ld1 {v0.16b},[x1], #16
+ ld1 {v1.16b},[x1], #16
+ ld1 {v2.16b},[x1], #16
+ ld1 {v3.16b},[x1], #16
+ ld1 {v4.4s},[x16], #16
+ ld1 {v5.4s},[x16], #16
+ ld1 {v6.4s},[x16], #16
+ ld1 {v7.4s},[x16], #16
+ rev32 v0.16b,v0.16b // yes, even on
+ rev32 v1.16b,v1.16b // big-endian
+ rev32 v2.16b,v2.16b
+ rev32 v3.16b,v3.16b
+ mov x17,sp
+ add v4.4s,v4.4s,v0.4s
+ add v5.4s,v5.4s,v1.4s
+ add v6.4s,v6.4s,v2.4s
+ st1 {v4.4s,v5.4s},[x17], #32
+ add v7.4s,v7.4s,v3.4s
+ st1 {v6.4s,v7.4s},[x17]
+ sub x17,x17,#32
+
+ ldp w3,w4,[x0]
+ ldp w5,w6,[x0,#8]
+ ldp w7,w8,[x0,#16]
+ ldp w9,w10,[x0,#24]
+ ldr w12,[sp,#0]
+ mov w13,wzr
+ eor w14,w4,w5
+ mov w15,wzr
+ b L_00_48
+
+.align 4
+L_00_48:
+ ext v4.16b,v0.16b,v1.16b,#4
+ add w10,w10,w12
+ add w3,w3,w15
+ and w12,w8,w7
+ bic w15,w9,w7
+ ext v7.16b,v2.16b,v3.16b,#4
+ eor w11,w7,w7,ror#5
+ add w3,w3,w13
+ mov d19,v3.d[1]
+ orr w12,w12,w15
+ eor w11,w11,w7,ror#19
+ ushr v6.4s,v4.4s,#7
+ eor w15,w3,w3,ror#11
+ ushr v5.4s,v4.4s,#3
+ add w10,w10,w12
+ add v0.4s,v0.4s,v7.4s
+ ror w11,w11,#6
+ sli v6.4s,v4.4s,#25
+ eor w13,w3,w4
+ eor w15,w15,w3,ror#20
+ ushr v7.4s,v4.4s,#18
+ add w10,w10,w11
+ ldr w12,[sp,#4]
+ and w14,w14,w13
+ eor v5.16b,v5.16b,v6.16b
+ ror w15,w15,#2
+ add w6,w6,w10
+ sli v7.4s,v4.4s,#14
+ eor w14,w14,w4
+ ushr v16.4s,v19.4s,#17
+ add w9,w9,w12
+ add w10,w10,w15
+ and w12,w7,w6
+ eor v5.16b,v5.16b,v7.16b
+ bic w15,w8,w6
+ eor w11,w6,w6,ror#5
+ sli v16.4s,v19.4s,#15
+ add w10,w10,w14
+ orr w12,w12,w15
+ ushr v17.4s,v19.4s,#10
+ eor w11,w11,w6,ror#19
+ eor w15,w10,w10,ror#11
+ ushr v7.4s,v19.4s,#19
+ add w9,w9,w12
+ ror w11,w11,#6
+ add v0.4s,v0.4s,v5.4s
+ eor w14,w10,w3
+ eor w15,w15,w10,ror#20
+ sli v7.4s,v19.4s,#13
+ add w9,w9,w11
+ ldr w12,[sp,#8]
+ and w13,w13,w14
+ eor v17.16b,v17.16b,v16.16b
+ ror w15,w15,#2
+ add w5,w5,w9
+ eor w13,w13,w3
+ eor v17.16b,v17.16b,v7.16b
+ add w8,w8,w12
+ add w9,w9,w15
+ and w12,w6,w5
+ add v0.4s,v0.4s,v17.4s
+ bic w15,w7,w5
+ eor w11,w5,w5,ror#5
+ add w9,w9,w13
+ ushr v18.4s,v0.4s,#17
+ orr w12,w12,w15
+ ushr v19.4s,v0.4s,#10
+ eor w11,w11,w5,ror#19
+ eor w15,w9,w9,ror#11
+ sli v18.4s,v0.4s,#15
+ add w8,w8,w12
+ ushr v17.4s,v0.4s,#19
+ ror w11,w11,#6
+ eor w13,w9,w10
+ eor v19.16b,v19.16b,v18.16b
+ eor w15,w15,w9,ror#20
+ add w8,w8,w11
+ sli v17.4s,v0.4s,#13
+ ldr w12,[sp,#12]
+ and w14,w14,w13
+ ror w15,w15,#2
+ ld1 {v4.4s},[x16], #16
+ add w4,w4,w8
+ eor v19.16b,v19.16b,v17.16b
+ eor w14,w14,w10
+ eor v17.16b,v17.16b,v17.16b
+ add w7,w7,w12
+ add w8,w8,w15
+ and w12,w5,w4
+ mov v17.d[1],v19.d[0]
+ bic w15,w6,w4
+ eor w11,w4,w4,ror#5
+ add w8,w8,w14
+ add v0.4s,v0.4s,v17.4s
+ orr w12,w12,w15
+ eor w11,w11,w4,ror#19
+ eor w15,w8,w8,ror#11
+ add v4.4s,v4.4s,v0.4s
+ add w7,w7,w12
+ ror w11,w11,#6
+ eor w14,w8,w9
+ eor w15,w15,w8,ror#20
+ add w7,w7,w11
+ ldr w12,[sp,#16]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w3,w3,w7
+ eor w13,w13,w9
+ st1 {v4.4s},[x17], #16
+ ext v4.16b,v1.16b,v2.16b,#4
+ add w6,w6,w12
+ add w7,w7,w15
+ and w12,w4,w3
+ bic w15,w5,w3
+ ext v7.16b,v3.16b,v0.16b,#4
+ eor w11,w3,w3,ror#5
+ add w7,w7,w13
+ mov d19,v0.d[1]
+ orr w12,w12,w15
+ eor w11,w11,w3,ror#19
+ ushr v6.4s,v4.4s,#7
+ eor w15,w7,w7,ror#11
+ ushr v5.4s,v4.4s,#3
+ add w6,w6,w12
+ add v1.4s,v1.4s,v7.4s
+ ror w11,w11,#6
+ sli v6.4s,v4.4s,#25
+ eor w13,w7,w8
+ eor w15,w15,w7,ror#20
+ ushr v7.4s,v4.4s,#18
+ add w6,w6,w11
+ ldr w12,[sp,#20]
+ and w14,w14,w13
+ eor v5.16b,v5.16b,v6.16b
+ ror w15,w15,#2
+ add w10,w10,w6
+ sli v7.4s,v4.4s,#14
+ eor w14,w14,w8
+ ushr v16.4s,v19.4s,#17
+ add w5,w5,w12
+ add w6,w6,w15
+ and w12,w3,w10
+ eor v5.16b,v5.16b,v7.16b
+ bic w15,w4,w10
+ eor w11,w10,w10,ror#5
+ sli v16.4s,v19.4s,#15
+ add w6,w6,w14
+ orr w12,w12,w15
+ ushr v17.4s,v19.4s,#10
+ eor w11,w11,w10,ror#19
+ eor w15,w6,w6,ror#11
+ ushr v7.4s,v19.4s,#19
+ add w5,w5,w12
+ ror w11,w11,#6
+ add v1.4s,v1.4s,v5.4s
+ eor w14,w6,w7
+ eor w15,w15,w6,ror#20
+ sli v7.4s,v19.4s,#13
+ add w5,w5,w11
+ ldr w12,[sp,#24]
+ and w13,w13,w14
+ eor v17.16b,v17.16b,v16.16b
+ ror w15,w15,#2
+ add w9,w9,w5
+ eor w13,w13,w7
+ eor v17.16b,v17.16b,v7.16b
+ add w4,w4,w12
+ add w5,w5,w15
+ and w12,w10,w9
+ add v1.4s,v1.4s,v17.4s
+ bic w15,w3,w9
+ eor w11,w9,w9,ror#5
+ add w5,w5,w13
+ ushr v18.4s,v1.4s,#17
+ orr w12,w12,w15
+ ushr v19.4s,v1.4s,#10
+ eor w11,w11,w9,ror#19
+ eor w15,w5,w5,ror#11
+ sli v18.4s,v1.4s,#15
+ add w4,w4,w12
+ ushr v17.4s,v1.4s,#19
+ ror w11,w11,#6
+ eor w13,w5,w6
+ eor v19.16b,v19.16b,v18.16b
+ eor w15,w15,w5,ror#20
+ add w4,w4,w11
+ sli v17.4s,v1.4s,#13
+ ldr w12,[sp,#28]
+ and w14,w14,w13
+ ror w15,w15,#2
+ ld1 {v4.4s},[x16], #16
+ add w8,w8,w4
+ eor v19.16b,v19.16b,v17.16b
+ eor w14,w14,w6
+ eor v17.16b,v17.16b,v17.16b
+ add w3,w3,w12
+ add w4,w4,w15
+ and w12,w9,w8
+ mov v17.d[1],v19.d[0]
+ bic w15,w10,w8
+ eor w11,w8,w8,ror#5
+ add w4,w4,w14
+ add v1.4s,v1.4s,v17.4s
+ orr w12,w12,w15
+ eor w11,w11,w8,ror#19
+ eor w15,w4,w4,ror#11
+ add v4.4s,v4.4s,v1.4s
+ add w3,w3,w12
+ ror w11,w11,#6
+ eor w14,w4,w5
+ eor w15,w15,w4,ror#20
+ add w3,w3,w11
+ ldr w12,[sp,#32]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w7,w7,w3
+ eor w13,w13,w5
+ st1 {v4.4s},[x17], #16
+ ext v4.16b,v2.16b,v3.16b,#4
+ add w10,w10,w12
+ add w3,w3,w15
+ and w12,w8,w7
+ bic w15,w9,w7
+ ext v7.16b,v0.16b,v1.16b,#4
+ eor w11,w7,w7,ror#5
+ add w3,w3,w13
+ mov d19,v1.d[1]
+ orr w12,w12,w15
+ eor w11,w11,w7,ror#19
+ ushr v6.4s,v4.4s,#7
+ eor w15,w3,w3,ror#11
+ ushr v5.4s,v4.4s,#3
+ add w10,w10,w12
+ add v2.4s,v2.4s,v7.4s
+ ror w11,w11,#6
+ sli v6.4s,v4.4s,#25
+ eor w13,w3,w4
+ eor w15,w15,w3,ror#20
+ ushr v7.4s,v4.4s,#18
+ add w10,w10,w11
+ ldr w12,[sp,#36]
+ and w14,w14,w13
+ eor v5.16b,v5.16b,v6.16b
+ ror w15,w15,#2
+ add w6,w6,w10
+ sli v7.4s,v4.4s,#14
+ eor w14,w14,w4
+ ushr v16.4s,v19.4s,#17
+ add w9,w9,w12
+ add w10,w10,w15
+ and w12,w7,w6
+ eor v5.16b,v5.16b,v7.16b
+ bic w15,w8,w6
+ eor w11,w6,w6,ror#5
+ sli v16.4s,v19.4s,#15
+ add w10,w10,w14
+ orr w12,w12,w15
+ ushr v17.4s,v19.4s,#10
+ eor w11,w11,w6,ror#19
+ eor w15,w10,w10,ror#11
+ ushr v7.4s,v19.4s,#19
+ add w9,w9,w12
+ ror w11,w11,#6
+ add v2.4s,v2.4s,v5.4s
+ eor w14,w10,w3
+ eor w15,w15,w10,ror#20
+ sli v7.4s,v19.4s,#13
+ add w9,w9,w11
+ ldr w12,[sp,#40]
+ and w13,w13,w14
+ eor v17.16b,v17.16b,v16.16b
+ ror w15,w15,#2
+ add w5,w5,w9
+ eor w13,w13,w3
+ eor v17.16b,v17.16b,v7.16b
+ add w8,w8,w12
+ add w9,w9,w15
+ and w12,w6,w5
+ add v2.4s,v2.4s,v17.4s
+ bic w15,w7,w5
+ eor w11,w5,w5,ror#5
+ add w9,w9,w13
+ ushr v18.4s,v2.4s,#17
+ orr w12,w12,w15
+ ushr v19.4s,v2.4s,#10
+ eor w11,w11,w5,ror#19
+ eor w15,w9,w9,ror#11
+ sli v18.4s,v2.4s,#15
+ add w8,w8,w12
+ ushr v17.4s,v2.4s,#19
+ ror w11,w11,#6
+ eor w13,w9,w10
+ eor v19.16b,v19.16b,v18.16b
+ eor w15,w15,w9,ror#20
+ add w8,w8,w11
+ sli v17.4s,v2.4s,#13
+ ldr w12,[sp,#44]
+ and w14,w14,w13
+ ror w15,w15,#2
+ ld1 {v4.4s},[x16], #16
+ add w4,w4,w8
+ eor v19.16b,v19.16b,v17.16b
+ eor w14,w14,w10
+ eor v17.16b,v17.16b,v17.16b
+ add w7,w7,w12
+ add w8,w8,w15
+ and w12,w5,w4
+ mov v17.d[1],v19.d[0]
+ bic w15,w6,w4
+ eor w11,w4,w4,ror#5
+ add w8,w8,w14
+ add v2.4s,v2.4s,v17.4s
+ orr w12,w12,w15
+ eor w11,w11,w4,ror#19
+ eor w15,w8,w8,ror#11
+ add v4.4s,v4.4s,v2.4s
+ add w7,w7,w12
+ ror w11,w11,#6
+ eor w14,w8,w9
+ eor w15,w15,w8,ror#20
+ add w7,w7,w11
+ ldr w12,[sp,#48]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w3,w3,w7
+ eor w13,w13,w9
+ st1 {v4.4s},[x17], #16
+ ext v4.16b,v3.16b,v0.16b,#4
+ add w6,w6,w12
+ add w7,w7,w15
+ and w12,w4,w3
+ bic w15,w5,w3
+ ext v7.16b,v1.16b,v2.16b,#4
+ eor w11,w3,w3,ror#5
+ add w7,w7,w13
+ mov d19,v2.d[1]
+ orr w12,w12,w15
+ eor w11,w11,w3,ror#19
+ ushr v6.4s,v4.4s,#7
+ eor w15,w7,w7,ror#11
+ ushr v5.4s,v4.4s,#3
+ add w6,w6,w12
+ add v3.4s,v3.4s,v7.4s
+ ror w11,w11,#6
+ sli v6.4s,v4.4s,#25
+ eor w13,w7,w8
+ eor w15,w15,w7,ror#20
+ ushr v7.4s,v4.4s,#18
+ add w6,w6,w11
+ ldr w12,[sp,#52]
+ and w14,w14,w13
+ eor v5.16b,v5.16b,v6.16b
+ ror w15,w15,#2
+ add w10,w10,w6
+ sli v7.4s,v4.4s,#14
+ eor w14,w14,w8
+ ushr v16.4s,v19.4s,#17
+ add w5,w5,w12
+ add w6,w6,w15
+ and w12,w3,w10
+ eor v5.16b,v5.16b,v7.16b
+ bic w15,w4,w10
+ eor w11,w10,w10,ror#5
+ sli v16.4s,v19.4s,#15
+ add w6,w6,w14
+ orr w12,w12,w15
+ ushr v17.4s,v19.4s,#10
+ eor w11,w11,w10,ror#19
+ eor w15,w6,w6,ror#11
+ ushr v7.4s,v19.4s,#19
+ add w5,w5,w12
+ ror w11,w11,#6
+ add v3.4s,v3.4s,v5.4s
+ eor w14,w6,w7
+ eor w15,w15,w6,ror#20
+ sli v7.4s,v19.4s,#13
+ add w5,w5,w11
+ ldr w12,[sp,#56]
+ and w13,w13,w14
+ eor v17.16b,v17.16b,v16.16b
+ ror w15,w15,#2
+ add w9,w9,w5
+ eor w13,w13,w7
+ eor v17.16b,v17.16b,v7.16b
+ add w4,w4,w12
+ add w5,w5,w15
+ and w12,w10,w9
+ add v3.4s,v3.4s,v17.4s
+ bic w15,w3,w9
+ eor w11,w9,w9,ror#5
+ add w5,w5,w13
+ ushr v18.4s,v3.4s,#17
+ orr w12,w12,w15
+ ushr v19.4s,v3.4s,#10
+ eor w11,w11,w9,ror#19
+ eor w15,w5,w5,ror#11
+ sli v18.4s,v3.4s,#15
+ add w4,w4,w12
+ ushr v17.4s,v3.4s,#19
+ ror w11,w11,#6
+ eor w13,w5,w6
+ eor v19.16b,v19.16b,v18.16b
+ eor w15,w15,w5,ror#20
+ add w4,w4,w11
+ sli v17.4s,v3.4s,#13
+ ldr w12,[sp,#60]
+ and w14,w14,w13
+ ror w15,w15,#2
+ ld1 {v4.4s},[x16], #16
+ add w8,w8,w4
+ eor v19.16b,v19.16b,v17.16b
+ eor w14,w14,w6
+ eor v17.16b,v17.16b,v17.16b
+ add w3,w3,w12
+ add w4,w4,w15
+ and w12,w9,w8
+ mov v17.d[1],v19.d[0]
+ bic w15,w10,w8
+ eor w11,w8,w8,ror#5
+ add w4,w4,w14
+ add v3.4s,v3.4s,v17.4s
+ orr w12,w12,w15
+ eor w11,w11,w8,ror#19
+ eor w15,w4,w4,ror#11
+ add v4.4s,v4.4s,v3.4s
+ add w3,w3,w12
+ ror w11,w11,#6
+ eor w14,w4,w5
+ eor w15,w15,w4,ror#20
+ add w3,w3,w11
+ ldr w12,[x16]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w7,w7,w3
+ eor w13,w13,w5
+ st1 {v4.4s},[x17], #16
+ cmp w12,#0 // check for K256 terminator
+ ldr w12,[sp,#0]
+ sub x17,x17,#64
+ bne L_00_48
+
+ sub x16,x16,#256 // rewind x16
+ cmp x1,x2
+ mov x17, #64
+ csel x17, x17, xzr, eq
+ sub x1,x1,x17 // avoid SEGV
+ mov x17,sp
+ add w10,w10,w12
+ add w3,w3,w15
+ and w12,w8,w7
+ ld1 {v0.16b},[x1],#16
+ bic w15,w9,w7
+ eor w11,w7,w7,ror#5
+ ld1 {v4.4s},[x16],#16
+ add w3,w3,w13
+ orr w12,w12,w15
+ eor w11,w11,w7,ror#19
+ eor w15,w3,w3,ror#11
+ rev32 v0.16b,v0.16b
+ add w10,w10,w12
+ ror w11,w11,#6
+ eor w13,w3,w4
+ eor w15,w15,w3,ror#20
+ add v4.4s,v4.4s,v0.4s
+ add w10,w10,w11
+ ldr w12,[sp,#4]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w6,w6,w10
+ eor w14,w14,w4
+ add w9,w9,w12
+ add w10,w10,w15
+ and w12,w7,w6
+ bic w15,w8,w6
+ eor w11,w6,w6,ror#5
+ add w10,w10,w14
+ orr w12,w12,w15
+ eor w11,w11,w6,ror#19
+ eor w15,w10,w10,ror#11
+ add w9,w9,w12
+ ror w11,w11,#6
+ eor w14,w10,w3
+ eor w15,w15,w10,ror#20
+ add w9,w9,w11
+ ldr w12,[sp,#8]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w5,w5,w9
+ eor w13,w13,w3
+ add w8,w8,w12
+ add w9,w9,w15
+ and w12,w6,w5
+ bic w15,w7,w5
+ eor w11,w5,w5,ror#5
+ add w9,w9,w13
+ orr w12,w12,w15
+ eor w11,w11,w5,ror#19
+ eor w15,w9,w9,ror#11
+ add w8,w8,w12
+ ror w11,w11,#6
+ eor w13,w9,w10
+ eor w15,w15,w9,ror#20
+ add w8,w8,w11
+ ldr w12,[sp,#12]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w4,w4,w8
+ eor w14,w14,w10
+ add w7,w7,w12
+ add w8,w8,w15
+ and w12,w5,w4
+ bic w15,w6,w4
+ eor w11,w4,w4,ror#5
+ add w8,w8,w14
+ orr w12,w12,w15
+ eor w11,w11,w4,ror#19
+ eor w15,w8,w8,ror#11
+ add w7,w7,w12
+ ror w11,w11,#6
+ eor w14,w8,w9
+ eor w15,w15,w8,ror#20
+ add w7,w7,w11
+ ldr w12,[sp,#16]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w3,w3,w7
+ eor w13,w13,w9
+ st1 {v4.4s},[x17], #16
+ add w6,w6,w12
+ add w7,w7,w15
+ and w12,w4,w3
+ ld1 {v1.16b},[x1],#16
+ bic w15,w5,w3
+ eor w11,w3,w3,ror#5
+ ld1 {v4.4s},[x16],#16
+ add w7,w7,w13
+ orr w12,w12,w15
+ eor w11,w11,w3,ror#19
+ eor w15,w7,w7,ror#11
+ rev32 v1.16b,v1.16b
+ add w6,w6,w12
+ ror w11,w11,#6
+ eor w13,w7,w8
+ eor w15,w15,w7,ror#20
+ add v4.4s,v4.4s,v1.4s
+ add w6,w6,w11
+ ldr w12,[sp,#20]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w10,w10,w6
+ eor w14,w14,w8
+ add w5,w5,w12
+ add w6,w6,w15
+ and w12,w3,w10
+ bic w15,w4,w10
+ eor w11,w10,w10,ror#5
+ add w6,w6,w14
+ orr w12,w12,w15
+ eor w11,w11,w10,ror#19
+ eor w15,w6,w6,ror#11
+ add w5,w5,w12
+ ror w11,w11,#6
+ eor w14,w6,w7
+ eor w15,w15,w6,ror#20
+ add w5,w5,w11
+ ldr w12,[sp,#24]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w9,w9,w5
+ eor w13,w13,w7
+ add w4,w4,w12
+ add w5,w5,w15
+ and w12,w10,w9
+ bic w15,w3,w9
+ eor w11,w9,w9,ror#5
+ add w5,w5,w13
+ orr w12,w12,w15
+ eor w11,w11,w9,ror#19
+ eor w15,w5,w5,ror#11
+ add w4,w4,w12
+ ror w11,w11,#6
+ eor w13,w5,w6
+ eor w15,w15,w5,ror#20
+ add w4,w4,w11
+ ldr w12,[sp,#28]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w8,w8,w4
+ eor w14,w14,w6
+ add w3,w3,w12
+ add w4,w4,w15
+ and w12,w9,w8
+ bic w15,w10,w8
+ eor w11,w8,w8,ror#5
+ add w4,w4,w14
+ orr w12,w12,w15
+ eor w11,w11,w8,ror#19
+ eor w15,w4,w4,ror#11
+ add w3,w3,w12
+ ror w11,w11,#6
+ eor w14,w4,w5
+ eor w15,w15,w4,ror#20
+ add w3,w3,w11
+ ldr w12,[sp,#32]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w7,w7,w3
+ eor w13,w13,w5
+ st1 {v4.4s},[x17], #16
+ add w10,w10,w12
+ add w3,w3,w15
+ and w12,w8,w7
+ ld1 {v2.16b},[x1],#16
+ bic w15,w9,w7
+ eor w11,w7,w7,ror#5
+ ld1 {v4.4s},[x16],#16
+ add w3,w3,w13
+ orr w12,w12,w15
+ eor w11,w11,w7,ror#19
+ eor w15,w3,w3,ror#11
+ rev32 v2.16b,v2.16b
+ add w10,w10,w12
+ ror w11,w11,#6
+ eor w13,w3,w4
+ eor w15,w15,w3,ror#20
+ add v4.4s,v4.4s,v2.4s
+ add w10,w10,w11
+ ldr w12,[sp,#36]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w6,w6,w10
+ eor w14,w14,w4
+ add w9,w9,w12
+ add w10,w10,w15
+ and w12,w7,w6
+ bic w15,w8,w6
+ eor w11,w6,w6,ror#5
+ add w10,w10,w14
+ orr w12,w12,w15
+ eor w11,w11,w6,ror#19
+ eor w15,w10,w10,ror#11
+ add w9,w9,w12
+ ror w11,w11,#6
+ eor w14,w10,w3
+ eor w15,w15,w10,ror#20
+ add w9,w9,w11
+ ldr w12,[sp,#40]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w5,w5,w9
+ eor w13,w13,w3
+ add w8,w8,w12
+ add w9,w9,w15
+ and w12,w6,w5
+ bic w15,w7,w5
+ eor w11,w5,w5,ror#5
+ add w9,w9,w13
+ orr w12,w12,w15
+ eor w11,w11,w5,ror#19
+ eor w15,w9,w9,ror#11
+ add w8,w8,w12
+ ror w11,w11,#6
+ eor w13,w9,w10
+ eor w15,w15,w9,ror#20
+ add w8,w8,w11
+ ldr w12,[sp,#44]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w4,w4,w8
+ eor w14,w14,w10
+ add w7,w7,w12
+ add w8,w8,w15
+ and w12,w5,w4
+ bic w15,w6,w4
+ eor w11,w4,w4,ror#5
+ add w8,w8,w14
+ orr w12,w12,w15
+ eor w11,w11,w4,ror#19
+ eor w15,w8,w8,ror#11
+ add w7,w7,w12
+ ror w11,w11,#6
+ eor w14,w8,w9
+ eor w15,w15,w8,ror#20
+ add w7,w7,w11
+ ldr w12,[sp,#48]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w3,w3,w7
+ eor w13,w13,w9
+ st1 {v4.4s},[x17], #16
+ add w6,w6,w12
+ add w7,w7,w15
+ and w12,w4,w3
+ ld1 {v3.16b},[x1],#16
+ bic w15,w5,w3
+ eor w11,w3,w3,ror#5
+ ld1 {v4.4s},[x16],#16
+ add w7,w7,w13
+ orr w12,w12,w15
+ eor w11,w11,w3,ror#19
+ eor w15,w7,w7,ror#11
+ rev32 v3.16b,v3.16b
+ add w6,w6,w12
+ ror w11,w11,#6
+ eor w13,w7,w8
+ eor w15,w15,w7,ror#20
+ add v4.4s,v4.4s,v3.4s
+ add w6,w6,w11
+ ldr w12,[sp,#52]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w10,w10,w6
+ eor w14,w14,w8
+ add w5,w5,w12
+ add w6,w6,w15
+ and w12,w3,w10
+ bic w15,w4,w10
+ eor w11,w10,w10,ror#5
+ add w6,w6,w14
+ orr w12,w12,w15
+ eor w11,w11,w10,ror#19
+ eor w15,w6,w6,ror#11
+ add w5,w5,w12
+ ror w11,w11,#6
+ eor w14,w6,w7
+ eor w15,w15,w6,ror#20
+ add w5,w5,w11
+ ldr w12,[sp,#56]
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w9,w9,w5
+ eor w13,w13,w7
+ add w4,w4,w12
+ add w5,w5,w15
+ and w12,w10,w9
+ bic w15,w3,w9
+ eor w11,w9,w9,ror#5
+ add w5,w5,w13
+ orr w12,w12,w15
+ eor w11,w11,w9,ror#19
+ eor w15,w5,w5,ror#11
+ add w4,w4,w12
+ ror w11,w11,#6
+ eor w13,w5,w6
+ eor w15,w15,w5,ror#20
+ add w4,w4,w11
+ ldr w12,[sp,#60]
+ and w14,w14,w13
+ ror w15,w15,#2
+ add w8,w8,w4
+ eor w14,w14,w6
+ add w3,w3,w12
+ add w4,w4,w15
+ and w12,w9,w8
+ bic w15,w10,w8
+ eor w11,w8,w8,ror#5
+ add w4,w4,w14
+ orr w12,w12,w15
+ eor w11,w11,w8,ror#19
+ eor w15,w4,w4,ror#11
+ add w3,w3,w12
+ ror w11,w11,#6
+ eor w14,w4,w5
+ eor w15,w15,w4,ror#20
+ add w3,w3,w11
+ and w13,w13,w14
+ ror w15,w15,#2
+ add w7,w7,w3
+ eor w13,w13,w5
+ st1 {v4.4s},[x17], #16
+ add w3,w3,w15 // h+=Sigma0(a) from the past
+ ldp w11,w12,[x0,#0]
+ add w3,w3,w13 // h+=Maj(a,b,c) from the past
+ ldp w13,w14,[x0,#8]
+ add w3,w3,w11 // accumulate
+ add w4,w4,w12
+ ldp w11,w12,[x0,#16]
+ add w5,w5,w13
+ add w6,w6,w14
+ ldp w13,w14,[x0,#24]
+ add w7,w7,w11
+ add w8,w8,w12
+ ldr w12,[sp,#0]
+ stp w3,w4,[x0,#0]
+ add w9,w9,w13
+ mov w13,wzr
+ stp w5,w6,[x0,#8]
+ add w10,w10,w14
+ stp w7,w8,[x0,#16]
+ eor w14,w4,w5
+ stp w9,w10,[x0,#24]
+ mov w15,wzr
+ mov x17,sp
+ b.ne L_00_48
+
+ ldr x29,[x29]
+ add sp,sp,#16*4+16
+ ret
+
diff --git a/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha512-armv8.S b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha512-armv8.S
new file mode 100644
index 0000000000..2460c4ad45
--- /dev/null
+++ b/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha512-armv8.S
@@ -0,0 +1,1618 @@
+// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved.
+//
+// Licensed under the OpenSSL license (the "License"). You may not use
+// this file except in compliance with the License. You can obtain a copy
+// in the file LICENSE in the source distribution or at
+// https://www.openssl.org/source/license.html
+
+// ====================================================================
+// Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
+// project. The module is, however, dual licensed under OpenSSL and
+// CRYPTOGAMS licenses depending on where you obtain it. For further
+// details see http://www.openssl.org/~appro/cryptogams/.
+//
+// Permission to use under GPLv2 terms is granted.
+// ====================================================================
+//
+// SHA256/512 for ARMv8.
+//
+// Performance in cycles per processed byte and improvement coefficient
+// over code generated with "default" compiler:
+//
+// SHA256-hw SHA256(*) SHA512
+// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**))
+// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***))
+// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***))
+// Denver 2.01 10.5 (+26%) 6.70 (+8%)
+// X-Gene 20.0 (+100%) 12.8 (+300%(***))
+// Mongoose 2.36 13.0 (+50%) 8.36 (+33%)
+// Kryo 1.92 17.4 (+30%) 11.2 (+8%)
+//
+// (*) Software SHA256 results are of lesser relevance, presented
+// mostly for informational purposes.
+// (**) The result is a trade-off: it's possible to improve it by
+// 10% (or by 1 cycle per round), but at the cost of 20% loss
+// on Cortex-A53 (or by 4 cycles per round).
+// (***) Super-impressive coefficients over gcc-generated code are
+// indication of some compiler "pathology", most notably code
+// generated with -mgeneral-regs-only is significantly faster
+// and the gap is only 40-90%.
+//
+// October 2016.
+//
+// Originally it was reckoned that it makes no sense to implement NEON
+// version of SHA256 for 64-bit processors. This is because performance
+// improvement on most wide-spread Cortex-A5x processors was observed
+// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was
+// observed that 32-bit NEON SHA256 performs significantly better than
+// 64-bit scalar version on *some* of the more recent processors. As
+// result 64-bit NEON version of SHA256 was added to provide best
+// all-round performance. For example it executes ~30% faster on X-Gene
+// and Mongoose. [For reference, NEON version of SHA512 is bound to
+// deliver much less improvement, likely *negative* on Cortex-A5x.
+// Which is why NEON support is limited to SHA256.]
+
+#ifndef __KERNEL__
+# include "arm_arch.h"
+#endif
+
+.text
+
+
+.private_extern _OPENSSL_armcap_P
+.globl _sha512_block_data_order
+
+.align 6
+_sha512_block_data_order:
+#ifndef __KERNEL__
+# ifdef __ILP32__
+ ldrsw x16,LOPENSSL_armcap_P
+# else
+ ldr x16,LOPENSSL_armcap_P
+# endif
+ adr x17,LOPENSSL_armcap_P
+ add x16,x16,x17
+ ldr w16,[x16]
+ tst w16,#ARMV8_SHA512
+ b.ne Lv8_entry
+#endif
+.long 0xd503233f // paciasp
+ stp x29,x30,[sp,#-128]!
+ add x29,sp,#0
+
+ stp x19,x20,[sp,#16]
+ stp x21,x22,[sp,#32]
+ stp x23,x24,[sp,#48]
+ stp x25,x26,[sp,#64]
+ stp x27,x28,[sp,#80]
+ sub sp,sp,#4*8
+
+ ldp x20,x21,[x0] // load context
+ ldp x22,x23,[x0,#2*8]
+ ldp x24,x25,[x0,#4*8]
+ add x2,x1,x2,lsl#7 // end of input
+ ldp x26,x27,[x0,#6*8]
+ adr x30,LK512
+ stp x0,x2,[x29,#96]
+
+Loop:
+ ldp x3,x4,[x1],#2*8
+ ldr x19,[x30],#8 // *K++
+ eor x28,x21,x22 // magic seed
+ str x1,[x29,#112]
+#ifndef __AARCH64EB__
+ rev x3,x3 // 0
+#endif
+ ror x16,x24,#14
+ add x27,x27,x19 // h+=K[i]
+ eor x6,x24,x24,ror#23
+ and x17,x25,x24
+ bic x19,x26,x24
+ add x27,x27,x3 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x20,x21 // a^b, b^c in next round
+ eor x16,x16,x6,ror#18 // Sigma1(e)
+ ror x6,x20,#28
+ add x27,x27,x17 // h+=Ch(e,f,g)
+ eor x17,x20,x20,ror#5
+ add x27,x27,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x23,x23,x27 // d+=h
+ eor x28,x28,x21 // Maj(a,b,c)
+ eor x17,x6,x17,ror#34 // Sigma0(a)
+ add x27,x27,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x27,x27,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x4,x4 // 1
+#endif
+ ldp x5,x6,[x1],#2*8
+ add x27,x27,x17 // h+=Sigma0(a)
+ ror x16,x23,#14
+ add x26,x26,x28 // h+=K[i]
+ eor x7,x23,x23,ror#23
+ and x17,x24,x23
+ bic x28,x25,x23
+ add x26,x26,x4 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x27,x20 // a^b, b^c in next round
+ eor x16,x16,x7,ror#18 // Sigma1(e)
+ ror x7,x27,#28
+ add x26,x26,x17 // h+=Ch(e,f,g)
+ eor x17,x27,x27,ror#5
+ add x26,x26,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x22,x22,x26 // d+=h
+ eor x19,x19,x20 // Maj(a,b,c)
+ eor x17,x7,x17,ror#34 // Sigma0(a)
+ add x26,x26,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x26,x26,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x5,x5 // 2
+#endif
+ add x26,x26,x17 // h+=Sigma0(a)
+ ror x16,x22,#14
+ add x25,x25,x19 // h+=K[i]
+ eor x8,x22,x22,ror#23
+ and x17,x23,x22
+ bic x19,x24,x22
+ add x25,x25,x5 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x26,x27 // a^b, b^c in next round
+ eor x16,x16,x8,ror#18 // Sigma1(e)
+ ror x8,x26,#28
+ add x25,x25,x17 // h+=Ch(e,f,g)
+ eor x17,x26,x26,ror#5
+ add x25,x25,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x21,x21,x25 // d+=h
+ eor x28,x28,x27 // Maj(a,b,c)
+ eor x17,x8,x17,ror#34 // Sigma0(a)
+ add x25,x25,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x25,x25,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x6,x6 // 3
+#endif
+ ldp x7,x8,[x1],#2*8
+ add x25,x25,x17 // h+=Sigma0(a)
+ ror x16,x21,#14
+ add x24,x24,x28 // h+=K[i]
+ eor x9,x21,x21,ror#23
+ and x17,x22,x21
+ bic x28,x23,x21
+ add x24,x24,x6 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x25,x26 // a^b, b^c in next round
+ eor x16,x16,x9,ror#18 // Sigma1(e)
+ ror x9,x25,#28
+ add x24,x24,x17 // h+=Ch(e,f,g)
+ eor x17,x25,x25,ror#5
+ add x24,x24,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x20,x20,x24 // d+=h
+ eor x19,x19,x26 // Maj(a,b,c)
+ eor x17,x9,x17,ror#34 // Sigma0(a)
+ add x24,x24,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x24,x24,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x7,x7 // 4
+#endif
+ add x24,x24,x17 // h+=Sigma0(a)
+ ror x16,x20,#14
+ add x23,x23,x19 // h+=K[i]
+ eor x10,x20,x20,ror#23
+ and x17,x21,x20
+ bic x19,x22,x20
+ add x23,x23,x7 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x24,x25 // a^b, b^c in next round
+ eor x16,x16,x10,ror#18 // Sigma1(e)
+ ror x10,x24,#28
+ add x23,x23,x17 // h+=Ch(e,f,g)
+ eor x17,x24,x24,ror#5
+ add x23,x23,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x27,x27,x23 // d+=h
+ eor x28,x28,x25 // Maj(a,b,c)
+ eor x17,x10,x17,ror#34 // Sigma0(a)
+ add x23,x23,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x23,x23,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x8,x8 // 5
+#endif
+ ldp x9,x10,[x1],#2*8
+ add x23,x23,x17 // h+=Sigma0(a)
+ ror x16,x27,#14
+ add x22,x22,x28 // h+=K[i]
+ eor x11,x27,x27,ror#23
+ and x17,x20,x27
+ bic x28,x21,x27
+ add x22,x22,x8 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x23,x24 // a^b, b^c in next round
+ eor x16,x16,x11,ror#18 // Sigma1(e)
+ ror x11,x23,#28
+ add x22,x22,x17 // h+=Ch(e,f,g)
+ eor x17,x23,x23,ror#5
+ add x22,x22,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x26,x26,x22 // d+=h
+ eor x19,x19,x24 // Maj(a,b,c)
+ eor x17,x11,x17,ror#34 // Sigma0(a)
+ add x22,x22,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x22,x22,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x9,x9 // 6
+#endif
+ add x22,x22,x17 // h+=Sigma0(a)
+ ror x16,x26,#14
+ add x21,x21,x19 // h+=K[i]
+ eor x12,x26,x26,ror#23
+ and x17,x27,x26
+ bic x19,x20,x26
+ add x21,x21,x9 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x22,x23 // a^b, b^c in next round
+ eor x16,x16,x12,ror#18 // Sigma1(e)
+ ror x12,x22,#28
+ add x21,x21,x17 // h+=Ch(e,f,g)
+ eor x17,x22,x22,ror#5
+ add x21,x21,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x25,x25,x21 // d+=h
+ eor x28,x28,x23 // Maj(a,b,c)
+ eor x17,x12,x17,ror#34 // Sigma0(a)
+ add x21,x21,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x21,x21,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x10,x10 // 7
+#endif
+ ldp x11,x12,[x1],#2*8
+ add x21,x21,x17 // h+=Sigma0(a)
+ ror x16,x25,#14
+ add x20,x20,x28 // h+=K[i]
+ eor x13,x25,x25,ror#23
+ and x17,x26,x25
+ bic x28,x27,x25
+ add x20,x20,x10 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x21,x22 // a^b, b^c in next round
+ eor x16,x16,x13,ror#18 // Sigma1(e)
+ ror x13,x21,#28
+ add x20,x20,x17 // h+=Ch(e,f,g)
+ eor x17,x21,x21,ror#5
+ add x20,x20,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x24,x24,x20 // d+=h
+ eor x19,x19,x22 // Maj(a,b,c)
+ eor x17,x13,x17,ror#34 // Sigma0(a)
+ add x20,x20,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x20,x20,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x11,x11 // 8
+#endif
+ add x20,x20,x17 // h+=Sigma0(a)
+ ror x16,x24,#14
+ add x27,x27,x19 // h+=K[i]
+ eor x14,x24,x24,ror#23
+ and x17,x25,x24
+ bic x19,x26,x24
+ add x27,x27,x11 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x20,x21 // a^b, b^c in next round
+ eor x16,x16,x14,ror#18 // Sigma1(e)
+ ror x14,x20,#28
+ add x27,x27,x17 // h+=Ch(e,f,g)
+ eor x17,x20,x20,ror#5
+ add x27,x27,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x23,x23,x27 // d+=h
+ eor x28,x28,x21 // Maj(a,b,c)
+ eor x17,x14,x17,ror#34 // Sigma0(a)
+ add x27,x27,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x27,x27,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x12,x12 // 9
+#endif
+ ldp x13,x14,[x1],#2*8
+ add x27,x27,x17 // h+=Sigma0(a)
+ ror x16,x23,#14
+ add x26,x26,x28 // h+=K[i]
+ eor x15,x23,x23,ror#23
+ and x17,x24,x23
+ bic x28,x25,x23
+ add x26,x26,x12 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x27,x20 // a^b, b^c in next round
+ eor x16,x16,x15,ror#18 // Sigma1(e)
+ ror x15,x27,#28
+ add x26,x26,x17 // h+=Ch(e,f,g)
+ eor x17,x27,x27,ror#5
+ add x26,x26,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x22,x22,x26 // d+=h
+ eor x19,x19,x20 // Maj(a,b,c)
+ eor x17,x15,x17,ror#34 // Sigma0(a)
+ add x26,x26,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x26,x26,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x13,x13 // 10
+#endif
+ add x26,x26,x17 // h+=Sigma0(a)
+ ror x16,x22,#14
+ add x25,x25,x19 // h+=K[i]
+ eor x0,x22,x22,ror#23
+ and x17,x23,x22
+ bic x19,x24,x22
+ add x25,x25,x13 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x26,x27 // a^b, b^c in next round
+ eor x16,x16,x0,ror#18 // Sigma1(e)
+ ror x0,x26,#28
+ add x25,x25,x17 // h+=Ch(e,f,g)
+ eor x17,x26,x26,ror#5
+ add x25,x25,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x21,x21,x25 // d+=h
+ eor x28,x28,x27 // Maj(a,b,c)
+ eor x17,x0,x17,ror#34 // Sigma0(a)
+ add x25,x25,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x25,x25,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x14,x14 // 11
+#endif
+ ldp x15,x0,[x1],#2*8
+ add x25,x25,x17 // h+=Sigma0(a)
+ str x6,[sp,#24]
+ ror x16,x21,#14
+ add x24,x24,x28 // h+=K[i]
+ eor x6,x21,x21,ror#23
+ and x17,x22,x21
+ bic x28,x23,x21
+ add x24,x24,x14 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x25,x26 // a^b, b^c in next round
+ eor x16,x16,x6,ror#18 // Sigma1(e)
+ ror x6,x25,#28
+ add x24,x24,x17 // h+=Ch(e,f,g)
+ eor x17,x25,x25,ror#5
+ add x24,x24,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x20,x20,x24 // d+=h
+ eor x19,x19,x26 // Maj(a,b,c)
+ eor x17,x6,x17,ror#34 // Sigma0(a)
+ add x24,x24,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x24,x24,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x15,x15 // 12
+#endif
+ add x24,x24,x17 // h+=Sigma0(a)
+ str x7,[sp,#0]
+ ror x16,x20,#14
+ add x23,x23,x19 // h+=K[i]
+ eor x7,x20,x20,ror#23
+ and x17,x21,x20
+ bic x19,x22,x20
+ add x23,x23,x15 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x24,x25 // a^b, b^c in next round
+ eor x16,x16,x7,ror#18 // Sigma1(e)
+ ror x7,x24,#28
+ add x23,x23,x17 // h+=Ch(e,f,g)
+ eor x17,x24,x24,ror#5
+ add x23,x23,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x27,x27,x23 // d+=h
+ eor x28,x28,x25 // Maj(a,b,c)
+ eor x17,x7,x17,ror#34 // Sigma0(a)
+ add x23,x23,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x23,x23,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x0,x0 // 13
+#endif
+ ldp x1,x2,[x1]
+ add x23,x23,x17 // h+=Sigma0(a)
+ str x8,[sp,#8]
+ ror x16,x27,#14
+ add x22,x22,x28 // h+=K[i]
+ eor x8,x27,x27,ror#23
+ and x17,x20,x27
+ bic x28,x21,x27
+ add x22,x22,x0 // h+=X[i]
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x23,x24 // a^b, b^c in next round
+ eor x16,x16,x8,ror#18 // Sigma1(e)
+ ror x8,x23,#28
+ add x22,x22,x17 // h+=Ch(e,f,g)
+ eor x17,x23,x23,ror#5
+ add x22,x22,x16 // h+=Sigma1(e)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ add x26,x26,x22 // d+=h
+ eor x19,x19,x24 // Maj(a,b,c)
+ eor x17,x8,x17,ror#34 // Sigma0(a)
+ add x22,x22,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ //add x22,x22,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x1,x1 // 14
+#endif
+ ldr x6,[sp,#24]
+ add x22,x22,x17 // h+=Sigma0(a)
+ str x9,[sp,#16]
+ ror x16,x26,#14
+ add x21,x21,x19 // h+=K[i]
+ eor x9,x26,x26,ror#23
+ and x17,x27,x26
+ bic x19,x20,x26
+ add x21,x21,x1 // h+=X[i]
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x22,x23 // a^b, b^c in next round
+ eor x16,x16,x9,ror#18 // Sigma1(e)
+ ror x9,x22,#28
+ add x21,x21,x17 // h+=Ch(e,f,g)
+ eor x17,x22,x22,ror#5
+ add x21,x21,x16 // h+=Sigma1(e)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ add x25,x25,x21 // d+=h
+ eor x28,x28,x23 // Maj(a,b,c)
+ eor x17,x9,x17,ror#34 // Sigma0(a)
+ add x21,x21,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ //add x21,x21,x17 // h+=Sigma0(a)
+#ifndef __AARCH64EB__
+ rev x2,x2 // 15
+#endif
+ ldr x7,[sp,#0]
+ add x21,x21,x17 // h+=Sigma0(a)
+ str x10,[sp,#24]
+ ror x16,x25,#14
+ add x20,x20,x28 // h+=K[i]
+ ror x9,x4,#1
+ and x17,x26,x25
+ ror x8,x1,#19
+ bic x28,x27,x25
+ ror x10,x21,#28
+ add x20,x20,x2 // h+=X[i]
+ eor x16,x16,x25,ror#18
+ eor x9,x9,x4,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x21,x22 // a^b, b^c in next round
+ eor x16,x16,x25,ror#41 // Sigma1(e)
+ eor x10,x10,x21,ror#34
+ add x20,x20,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x8,x8,x1,ror#61
+ eor x9,x9,x4,lsr#7 // sigma0(X[i+1])
+ add x20,x20,x16 // h+=Sigma1(e)
+ eor x19,x19,x22 // Maj(a,b,c)
+ eor x17,x10,x21,ror#39 // Sigma0(a)
+ eor x8,x8,x1,lsr#6 // sigma1(X[i+14])
+ add x3,x3,x12
+ add x24,x24,x20 // d+=h
+ add x20,x20,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x3,x3,x9
+ add x20,x20,x17 // h+=Sigma0(a)
+ add x3,x3,x8
+Loop_16_xx:
+ ldr x8,[sp,#8]
+ str x11,[sp,#0]
+ ror x16,x24,#14
+ add x27,x27,x19 // h+=K[i]
+ ror x10,x5,#1
+ and x17,x25,x24
+ ror x9,x2,#19
+ bic x19,x26,x24
+ ror x11,x20,#28
+ add x27,x27,x3 // h+=X[i]
+ eor x16,x16,x24,ror#18
+ eor x10,x10,x5,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x20,x21 // a^b, b^c in next round
+ eor x16,x16,x24,ror#41 // Sigma1(e)
+ eor x11,x11,x20,ror#34
+ add x27,x27,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x9,x9,x2,ror#61
+ eor x10,x10,x5,lsr#7 // sigma0(X[i+1])
+ add x27,x27,x16 // h+=Sigma1(e)
+ eor x28,x28,x21 // Maj(a,b,c)
+ eor x17,x11,x20,ror#39 // Sigma0(a)
+ eor x9,x9,x2,lsr#6 // sigma1(X[i+14])
+ add x4,x4,x13
+ add x23,x23,x27 // d+=h
+ add x27,x27,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x4,x4,x10
+ add x27,x27,x17 // h+=Sigma0(a)
+ add x4,x4,x9
+ ldr x9,[sp,#16]
+ str x12,[sp,#8]
+ ror x16,x23,#14
+ add x26,x26,x28 // h+=K[i]
+ ror x11,x6,#1
+ and x17,x24,x23
+ ror x10,x3,#19
+ bic x28,x25,x23
+ ror x12,x27,#28
+ add x26,x26,x4 // h+=X[i]
+ eor x16,x16,x23,ror#18
+ eor x11,x11,x6,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x27,x20 // a^b, b^c in next round
+ eor x16,x16,x23,ror#41 // Sigma1(e)
+ eor x12,x12,x27,ror#34
+ add x26,x26,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x10,x10,x3,ror#61
+ eor x11,x11,x6,lsr#7 // sigma0(X[i+1])
+ add x26,x26,x16 // h+=Sigma1(e)
+ eor x19,x19,x20 // Maj(a,b,c)
+ eor x17,x12,x27,ror#39 // Sigma0(a)
+ eor x10,x10,x3,lsr#6 // sigma1(X[i+14])
+ add x5,x5,x14
+ add x22,x22,x26 // d+=h
+ add x26,x26,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x5,x5,x11
+ add x26,x26,x17 // h+=Sigma0(a)
+ add x5,x5,x10
+ ldr x10,[sp,#24]
+ str x13,[sp,#16]
+ ror x16,x22,#14
+ add x25,x25,x19 // h+=K[i]
+ ror x12,x7,#1
+ and x17,x23,x22
+ ror x11,x4,#19
+ bic x19,x24,x22
+ ror x13,x26,#28
+ add x25,x25,x5 // h+=X[i]
+ eor x16,x16,x22,ror#18
+ eor x12,x12,x7,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x26,x27 // a^b, b^c in next round
+ eor x16,x16,x22,ror#41 // Sigma1(e)
+ eor x13,x13,x26,ror#34
+ add x25,x25,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x11,x11,x4,ror#61
+ eor x12,x12,x7,lsr#7 // sigma0(X[i+1])
+ add x25,x25,x16 // h+=Sigma1(e)
+ eor x28,x28,x27 // Maj(a,b,c)
+ eor x17,x13,x26,ror#39 // Sigma0(a)
+ eor x11,x11,x4,lsr#6 // sigma1(X[i+14])
+ add x6,x6,x15
+ add x21,x21,x25 // d+=h
+ add x25,x25,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x6,x6,x12
+ add x25,x25,x17 // h+=Sigma0(a)
+ add x6,x6,x11
+ ldr x11,[sp,#0]
+ str x14,[sp,#24]
+ ror x16,x21,#14
+ add x24,x24,x28 // h+=K[i]
+ ror x13,x8,#1
+ and x17,x22,x21
+ ror x12,x5,#19
+ bic x28,x23,x21
+ ror x14,x25,#28
+ add x24,x24,x6 // h+=X[i]
+ eor x16,x16,x21,ror#18
+ eor x13,x13,x8,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x25,x26 // a^b, b^c in next round
+ eor x16,x16,x21,ror#41 // Sigma1(e)
+ eor x14,x14,x25,ror#34
+ add x24,x24,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x12,x12,x5,ror#61
+ eor x13,x13,x8,lsr#7 // sigma0(X[i+1])
+ add x24,x24,x16 // h+=Sigma1(e)
+ eor x19,x19,x26 // Maj(a,b,c)
+ eor x17,x14,x25,ror#39 // Sigma0(a)
+ eor x12,x12,x5,lsr#6 // sigma1(X[i+14])
+ add x7,x7,x0
+ add x20,x20,x24 // d+=h
+ add x24,x24,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x7,x7,x13
+ add x24,x24,x17 // h+=Sigma0(a)
+ add x7,x7,x12
+ ldr x12,[sp,#8]
+ str x15,[sp,#0]
+ ror x16,x20,#14
+ add x23,x23,x19 // h+=K[i]
+ ror x14,x9,#1
+ and x17,x21,x20
+ ror x13,x6,#19
+ bic x19,x22,x20
+ ror x15,x24,#28
+ add x23,x23,x7 // h+=X[i]
+ eor x16,x16,x20,ror#18
+ eor x14,x14,x9,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x24,x25 // a^b, b^c in next round
+ eor x16,x16,x20,ror#41 // Sigma1(e)
+ eor x15,x15,x24,ror#34
+ add x23,x23,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x13,x13,x6,ror#61
+ eor x14,x14,x9,lsr#7 // sigma0(X[i+1])
+ add x23,x23,x16 // h+=Sigma1(e)
+ eor x28,x28,x25 // Maj(a,b,c)
+ eor x17,x15,x24,ror#39 // Sigma0(a)
+ eor x13,x13,x6,lsr#6 // sigma1(X[i+14])
+ add x8,x8,x1
+ add x27,x27,x23 // d+=h
+ add x23,x23,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x8,x8,x14
+ add x23,x23,x17 // h+=Sigma0(a)
+ add x8,x8,x13
+ ldr x13,[sp,#16]
+ str x0,[sp,#8]
+ ror x16,x27,#14
+ add x22,x22,x28 // h+=K[i]
+ ror x15,x10,#1
+ and x17,x20,x27
+ ror x14,x7,#19
+ bic x28,x21,x27
+ ror x0,x23,#28
+ add x22,x22,x8 // h+=X[i]
+ eor x16,x16,x27,ror#18
+ eor x15,x15,x10,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x23,x24 // a^b, b^c in next round
+ eor x16,x16,x27,ror#41 // Sigma1(e)
+ eor x0,x0,x23,ror#34
+ add x22,x22,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x14,x14,x7,ror#61
+ eor x15,x15,x10,lsr#7 // sigma0(X[i+1])
+ add x22,x22,x16 // h+=Sigma1(e)
+ eor x19,x19,x24 // Maj(a,b,c)
+ eor x17,x0,x23,ror#39 // Sigma0(a)
+ eor x14,x14,x7,lsr#6 // sigma1(X[i+14])
+ add x9,x9,x2
+ add x26,x26,x22 // d+=h
+ add x22,x22,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x9,x9,x15
+ add x22,x22,x17 // h+=Sigma0(a)
+ add x9,x9,x14
+ ldr x14,[sp,#24]
+ str x1,[sp,#16]
+ ror x16,x26,#14
+ add x21,x21,x19 // h+=K[i]
+ ror x0,x11,#1
+ and x17,x27,x26
+ ror x15,x8,#19
+ bic x19,x20,x26
+ ror x1,x22,#28
+ add x21,x21,x9 // h+=X[i]
+ eor x16,x16,x26,ror#18
+ eor x0,x0,x11,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x22,x23 // a^b, b^c in next round
+ eor x16,x16,x26,ror#41 // Sigma1(e)
+ eor x1,x1,x22,ror#34
+ add x21,x21,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x15,x15,x8,ror#61
+ eor x0,x0,x11,lsr#7 // sigma0(X[i+1])
+ add x21,x21,x16 // h+=Sigma1(e)
+ eor x28,x28,x23 // Maj(a,b,c)
+ eor x17,x1,x22,ror#39 // Sigma0(a)
+ eor x15,x15,x8,lsr#6 // sigma1(X[i+14])
+ add x10,x10,x3
+ add x25,x25,x21 // d+=h
+ add x21,x21,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x10,x10,x0
+ add x21,x21,x17 // h+=Sigma0(a)
+ add x10,x10,x15
+ ldr x15,[sp,#0]
+ str x2,[sp,#24]
+ ror x16,x25,#14
+ add x20,x20,x28 // h+=K[i]
+ ror x1,x12,#1
+ and x17,x26,x25
+ ror x0,x9,#19
+ bic x28,x27,x25
+ ror x2,x21,#28
+ add x20,x20,x10 // h+=X[i]
+ eor x16,x16,x25,ror#18
+ eor x1,x1,x12,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x21,x22 // a^b, b^c in next round
+ eor x16,x16,x25,ror#41 // Sigma1(e)
+ eor x2,x2,x21,ror#34
+ add x20,x20,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x0,x0,x9,ror#61
+ eor x1,x1,x12,lsr#7 // sigma0(X[i+1])
+ add x20,x20,x16 // h+=Sigma1(e)
+ eor x19,x19,x22 // Maj(a,b,c)
+ eor x17,x2,x21,ror#39 // Sigma0(a)
+ eor x0,x0,x9,lsr#6 // sigma1(X[i+14])
+ add x11,x11,x4
+ add x24,x24,x20 // d+=h
+ add x20,x20,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x11,x11,x1
+ add x20,x20,x17 // h+=Sigma0(a)
+ add x11,x11,x0
+ ldr x0,[sp,#8]
+ str x3,[sp,#0]
+ ror x16,x24,#14
+ add x27,x27,x19 // h+=K[i]
+ ror x2,x13,#1
+ and x17,x25,x24
+ ror x1,x10,#19
+ bic x19,x26,x24
+ ror x3,x20,#28
+ add x27,x27,x11 // h+=X[i]
+ eor x16,x16,x24,ror#18
+ eor x2,x2,x13,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x20,x21 // a^b, b^c in next round
+ eor x16,x16,x24,ror#41 // Sigma1(e)
+ eor x3,x3,x20,ror#34
+ add x27,x27,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x1,x1,x10,ror#61
+ eor x2,x2,x13,lsr#7 // sigma0(X[i+1])
+ add x27,x27,x16 // h+=Sigma1(e)
+ eor x28,x28,x21 // Maj(a,b,c)
+ eor x17,x3,x20,ror#39 // Sigma0(a)
+ eor x1,x1,x10,lsr#6 // sigma1(X[i+14])
+ add x12,x12,x5
+ add x23,x23,x27 // d+=h
+ add x27,x27,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x12,x12,x2
+ add x27,x27,x17 // h+=Sigma0(a)
+ add x12,x12,x1
+ ldr x1,[sp,#16]
+ str x4,[sp,#8]
+ ror x16,x23,#14
+ add x26,x26,x28 // h+=K[i]
+ ror x3,x14,#1
+ and x17,x24,x23
+ ror x2,x11,#19
+ bic x28,x25,x23
+ ror x4,x27,#28
+ add x26,x26,x12 // h+=X[i]
+ eor x16,x16,x23,ror#18
+ eor x3,x3,x14,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x27,x20 // a^b, b^c in next round
+ eor x16,x16,x23,ror#41 // Sigma1(e)
+ eor x4,x4,x27,ror#34
+ add x26,x26,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x2,x2,x11,ror#61
+ eor x3,x3,x14,lsr#7 // sigma0(X[i+1])
+ add x26,x26,x16 // h+=Sigma1(e)
+ eor x19,x19,x20 // Maj(a,b,c)
+ eor x17,x4,x27,ror#39 // Sigma0(a)
+ eor x2,x2,x11,lsr#6 // sigma1(X[i+14])
+ add x13,x13,x6
+ add x22,x22,x26 // d+=h
+ add x26,x26,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x13,x13,x3
+ add x26,x26,x17 // h+=Sigma0(a)
+ add x13,x13,x2
+ ldr x2,[sp,#24]
+ str x5,[sp,#16]
+ ror x16,x22,#14
+ add x25,x25,x19 // h+=K[i]
+ ror x4,x15,#1
+ and x17,x23,x22
+ ror x3,x12,#19
+ bic x19,x24,x22
+ ror x5,x26,#28
+ add x25,x25,x13 // h+=X[i]
+ eor x16,x16,x22,ror#18
+ eor x4,x4,x15,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x26,x27 // a^b, b^c in next round
+ eor x16,x16,x22,ror#41 // Sigma1(e)
+ eor x5,x5,x26,ror#34
+ add x25,x25,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x3,x3,x12,ror#61
+ eor x4,x4,x15,lsr#7 // sigma0(X[i+1])
+ add x25,x25,x16 // h+=Sigma1(e)
+ eor x28,x28,x27 // Maj(a,b,c)
+ eor x17,x5,x26,ror#39 // Sigma0(a)
+ eor x3,x3,x12,lsr#6 // sigma1(X[i+14])
+ add x14,x14,x7
+ add x21,x21,x25 // d+=h
+ add x25,x25,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x14,x14,x4
+ add x25,x25,x17 // h+=Sigma0(a)
+ add x14,x14,x3
+ ldr x3,[sp,#0]
+ str x6,[sp,#24]
+ ror x16,x21,#14
+ add x24,x24,x28 // h+=K[i]
+ ror x5,x0,#1
+ and x17,x22,x21
+ ror x4,x13,#19
+ bic x28,x23,x21
+ ror x6,x25,#28
+ add x24,x24,x14 // h+=X[i]
+ eor x16,x16,x21,ror#18
+ eor x5,x5,x0,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x25,x26 // a^b, b^c in next round
+ eor x16,x16,x21,ror#41 // Sigma1(e)
+ eor x6,x6,x25,ror#34
+ add x24,x24,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x4,x4,x13,ror#61
+ eor x5,x5,x0,lsr#7 // sigma0(X[i+1])
+ add x24,x24,x16 // h+=Sigma1(e)
+ eor x19,x19,x26 // Maj(a,b,c)
+ eor x17,x6,x25,ror#39 // Sigma0(a)
+ eor x4,x4,x13,lsr#6 // sigma1(X[i+14])
+ add x15,x15,x8
+ add x20,x20,x24 // d+=h
+ add x24,x24,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x15,x15,x5
+ add x24,x24,x17 // h+=Sigma0(a)
+ add x15,x15,x4
+ ldr x4,[sp,#8]
+ str x7,[sp,#0]
+ ror x16,x20,#14
+ add x23,x23,x19 // h+=K[i]
+ ror x6,x1,#1
+ and x17,x21,x20
+ ror x5,x14,#19
+ bic x19,x22,x20
+ ror x7,x24,#28
+ add x23,x23,x15 // h+=X[i]
+ eor x16,x16,x20,ror#18
+ eor x6,x6,x1,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x24,x25 // a^b, b^c in next round
+ eor x16,x16,x20,ror#41 // Sigma1(e)
+ eor x7,x7,x24,ror#34
+ add x23,x23,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x5,x5,x14,ror#61
+ eor x6,x6,x1,lsr#7 // sigma0(X[i+1])
+ add x23,x23,x16 // h+=Sigma1(e)
+ eor x28,x28,x25 // Maj(a,b,c)
+ eor x17,x7,x24,ror#39 // Sigma0(a)
+ eor x5,x5,x14,lsr#6 // sigma1(X[i+14])
+ add x0,x0,x9
+ add x27,x27,x23 // d+=h
+ add x23,x23,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x0,x0,x6
+ add x23,x23,x17 // h+=Sigma0(a)
+ add x0,x0,x5
+ ldr x5,[sp,#16]
+ str x8,[sp,#8]
+ ror x16,x27,#14
+ add x22,x22,x28 // h+=K[i]
+ ror x7,x2,#1
+ and x17,x20,x27
+ ror x6,x15,#19
+ bic x28,x21,x27
+ ror x8,x23,#28
+ add x22,x22,x0 // h+=X[i]
+ eor x16,x16,x27,ror#18
+ eor x7,x7,x2,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x23,x24 // a^b, b^c in next round
+ eor x16,x16,x27,ror#41 // Sigma1(e)
+ eor x8,x8,x23,ror#34
+ add x22,x22,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x6,x6,x15,ror#61
+ eor x7,x7,x2,lsr#7 // sigma0(X[i+1])
+ add x22,x22,x16 // h+=Sigma1(e)
+ eor x19,x19,x24 // Maj(a,b,c)
+ eor x17,x8,x23,ror#39 // Sigma0(a)
+ eor x6,x6,x15,lsr#6 // sigma1(X[i+14])
+ add x1,x1,x10
+ add x26,x26,x22 // d+=h
+ add x22,x22,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x1,x1,x7
+ add x22,x22,x17 // h+=Sigma0(a)
+ add x1,x1,x6
+ ldr x6,[sp,#24]
+ str x9,[sp,#16]
+ ror x16,x26,#14
+ add x21,x21,x19 // h+=K[i]
+ ror x8,x3,#1
+ and x17,x27,x26
+ ror x7,x0,#19
+ bic x19,x20,x26
+ ror x9,x22,#28
+ add x21,x21,x1 // h+=X[i]
+ eor x16,x16,x26,ror#18
+ eor x8,x8,x3,ror#8
+ orr x17,x17,x19 // Ch(e,f,g)
+ eor x19,x22,x23 // a^b, b^c in next round
+ eor x16,x16,x26,ror#41 // Sigma1(e)
+ eor x9,x9,x22,ror#34
+ add x21,x21,x17 // h+=Ch(e,f,g)
+ and x28,x28,x19 // (b^c)&=(a^b)
+ eor x7,x7,x0,ror#61
+ eor x8,x8,x3,lsr#7 // sigma0(X[i+1])
+ add x21,x21,x16 // h+=Sigma1(e)
+ eor x28,x28,x23 // Maj(a,b,c)
+ eor x17,x9,x22,ror#39 // Sigma0(a)
+ eor x7,x7,x0,lsr#6 // sigma1(X[i+14])
+ add x2,x2,x11
+ add x25,x25,x21 // d+=h
+ add x21,x21,x28 // h+=Maj(a,b,c)
+ ldr x28,[x30],#8 // *K++, x19 in next round
+ add x2,x2,x8
+ add x21,x21,x17 // h+=Sigma0(a)
+ add x2,x2,x7
+ ldr x7,[sp,#0]
+ str x10,[sp,#24]
+ ror x16,x25,#14
+ add x20,x20,x28 // h+=K[i]
+ ror x9,x4,#1
+ and x17,x26,x25
+ ror x8,x1,#19
+ bic x28,x27,x25
+ ror x10,x21,#28
+ add x20,x20,x2 // h+=X[i]
+ eor x16,x16,x25,ror#18
+ eor x9,x9,x4,ror#8
+ orr x17,x17,x28 // Ch(e,f,g)
+ eor x28,x21,x22 // a^b, b^c in next round
+ eor x16,x16,x25,ror#41 // Sigma1(e)
+ eor x10,x10,x21,ror#34
+ add x20,x20,x17 // h+=Ch(e,f,g)
+ and x19,x19,x28 // (b^c)&=(a^b)
+ eor x8,x8,x1,ror#61
+ eor x9,x9,x4,lsr#7 // sigma0(X[i+1])
+ add x20,x20,x16 // h+=Sigma1(e)
+ eor x19,x19,x22 // Maj(a,b,c)
+ eor x17,x10,x21,ror#39 // Sigma0(a)
+ eor x8,x8,x1,lsr#6 // sigma1(X[i+14])
+ add x3,x3,x12
+ add x24,x24,x20 // d+=h
+ add x20,x20,x19 // h+=Maj(a,b,c)
+ ldr x19,[x30],#8 // *K++, x28 in next round
+ add x3,x3,x9
+ add x20,x20,x17 // h+=Sigma0(a)
+ add x3,x3,x8
+ cbnz x19,Loop_16_xx
+
+ ldp x0,x2,[x29,#96]
+ ldr x1,[x29,#112]
+ sub x30,x30,#648 // rewind
+
+ ldp x3,x4,[x0]
+ ldp x5,x6,[x0,#2*8]
+ add x1,x1,#14*8 // advance input pointer
+ ldp x7,x8,[x0,#4*8]
+ add x20,x20,x3
+ ldp x9,x10,[x0,#6*8]
+ add x21,x21,x4
+ add x22,x22,x5
+ add x23,x23,x6
+ stp x20,x21,[x0]
+ add x24,x24,x7
+ add x25,x25,x8
+ stp x22,x23,[x0,#2*8]
+ add x26,x26,x9
+ add x27,x27,x10
+ cmp x1,x2
+ stp x24,x25,[x0,#4*8]
+ stp x26,x27,[x0,#6*8]
+ b.ne Loop
+
+ ldp x19,x20,[x29,#16]
+ add sp,sp,#4*8
+ ldp x21,x22,[x29,#32]
+ ldp x23,x24,[x29,#48]
+ ldp x25,x26,[x29,#64]
+ ldp x27,x28,[x29,#80]
+ ldp x29,x30,[sp],#128
+.long 0xd50323bf // autiasp
+ ret
+
+
+.align 6
+
+LK512:
+.quad 0x428a2f98d728ae22,0x7137449123ef65cd
+.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+.quad 0x3956c25bf348b538,0x59f111f1b605d019
+.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+.quad 0xd807aa98a3030242,0x12835b0145706fbe
+.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+.quad 0x9bdc06a725c71235,0xc19bf174cf692694
+.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+.quad 0x983e5152ee66dfab,0xa831c66d2db43210
+.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
+.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
+.quad 0x06ca6351e003826f,0x142929670a0e6e70
+.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
+.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
+.quad 0x81c2c92e47edaee6,0x92722c851482353b
+.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
+.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
+.quad 0xd192e819d6ef5218,0xd69906245565a910
+.quad 0xf40e35855771202a,0x106aa07032bbd1b8
+.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
+.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
+.quad 0x90befffa23631e28,0xa4506cebde82bde9
+.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
+.quad 0xca273eceea26619c,0xd186b8c721c0c207
+.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
+.quad 0x113f9804bef90dae,0x1b710b35131c471b
+.quad 0x28db77f523047d84,0x32caab7b40c72493
+.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+.quad 0 // terminator
+
+#ifndef __KERNEL__
+.align 3
+LOPENSSL_armcap_P:
+# ifdef __ILP32__
+.long _OPENSSL_armcap_P-.
+# else
+.quad _OPENSSL_armcap_P-.
+# endif
+#endif
+.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
+.align 2
+.align 2
+#ifndef __KERNEL__
+
+.align 6
+sha512_block_armv8:
+Lv8_entry:
+ stp x29,x30,[sp,#-16]!
+ add x29,sp,#0
+
+ ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 // load input
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
+
+ ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context
+ adr x3,LK512
+
+ rev64 v16.16b,v16.16b
+ rev64 v17.16b,v17.16b
+ rev64 v18.16b,v18.16b
+ rev64 v19.16b,v19.16b
+ rev64 v20.16b,v20.16b
+ rev64 v21.16b,v21.16b
+ rev64 v22.16b,v22.16b
+ rev64 v23.16b,v23.16b
+ b Loop_hw
+
+.align 4
+Loop_hw:
+ ld1 {v24.2d},[x3],#16
+ subs x2,x2,#1
+ sub x4,x1,#128
+ orr v26.16b,v0.16b,v0.16b // offload
+ orr v27.16b,v1.16b,v1.16b
+ orr v28.16b,v2.16b,v2.16b
+ orr v29.16b,v3.16b,v3.16b
+ csel x1,x1,x4,ne // conditional rewind
+ add v24.2d,v24.2d,v16.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08230 //sha512su0 v16.16b,v17.16b
+ ext v7.16b,v20.16b,v21.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v25.2d,v25.2d,v17.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08251 //sha512su0 v17.16b,v18.16b
+ ext v7.16b,v21.16b,v22.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v24.2d,v24.2d,v18.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08272 //sha512su0 v18.16b,v19.16b
+ ext v7.16b,v22.16b,v23.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v25.2d,v25.2d,v19.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08293 //sha512su0 v19.16b,v20.16b
+ ext v7.16b,v23.16b,v16.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v24.2d,v24.2d,v20.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082b4 //sha512su0 v20.16b,v21.16b
+ ext v7.16b,v16.16b,v17.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v25.2d,v25.2d,v21.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec082d5 //sha512su0 v21.16b,v22.16b
+ ext v7.16b,v17.16b,v18.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v24.2d,v24.2d,v22.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082f6 //sha512su0 v22.16b,v23.16b
+ ext v7.16b,v18.16b,v19.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v25.2d,v25.2d,v23.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08217 //sha512su0 v23.16b,v16.16b
+ ext v7.16b,v19.16b,v20.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v24.2d,v24.2d,v16.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08230 //sha512su0 v16.16b,v17.16b
+ ext v7.16b,v20.16b,v21.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v25.2d,v25.2d,v17.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08251 //sha512su0 v17.16b,v18.16b
+ ext v7.16b,v21.16b,v22.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v24.2d,v24.2d,v18.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08272 //sha512su0 v18.16b,v19.16b
+ ext v7.16b,v22.16b,v23.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v25.2d,v25.2d,v19.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08293 //sha512su0 v19.16b,v20.16b
+ ext v7.16b,v23.16b,v16.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v24.2d,v24.2d,v20.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082b4 //sha512su0 v20.16b,v21.16b
+ ext v7.16b,v16.16b,v17.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v25.2d,v25.2d,v21.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec082d5 //sha512su0 v21.16b,v22.16b
+ ext v7.16b,v17.16b,v18.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v24.2d,v24.2d,v22.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082f6 //sha512su0 v22.16b,v23.16b
+ ext v7.16b,v18.16b,v19.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v25.2d,v25.2d,v23.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08217 //sha512su0 v23.16b,v16.16b
+ ext v7.16b,v19.16b,v20.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v24.2d,v24.2d,v16.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08230 //sha512su0 v16.16b,v17.16b
+ ext v7.16b,v20.16b,v21.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v25.2d,v25.2d,v17.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08251 //sha512su0 v17.16b,v18.16b
+ ext v7.16b,v21.16b,v22.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v24.2d,v24.2d,v18.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08272 //sha512su0 v18.16b,v19.16b
+ ext v7.16b,v22.16b,v23.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v25.2d,v25.2d,v19.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08293 //sha512su0 v19.16b,v20.16b
+ ext v7.16b,v23.16b,v16.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v24.2d,v24.2d,v20.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082b4 //sha512su0 v20.16b,v21.16b
+ ext v7.16b,v16.16b,v17.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v25.2d,v25.2d,v21.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec082d5 //sha512su0 v21.16b,v22.16b
+ ext v7.16b,v17.16b,v18.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v24.2d,v24.2d,v22.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082f6 //sha512su0 v22.16b,v23.16b
+ ext v7.16b,v18.16b,v19.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v25.2d,v25.2d,v23.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08217 //sha512su0 v23.16b,v16.16b
+ ext v7.16b,v19.16b,v20.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v24.2d,v24.2d,v16.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08230 //sha512su0 v16.16b,v17.16b
+ ext v7.16b,v20.16b,v21.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v25.2d,v25.2d,v17.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08251 //sha512su0 v17.16b,v18.16b
+ ext v7.16b,v21.16b,v22.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v24.2d,v24.2d,v18.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec08272 //sha512su0 v18.16b,v19.16b
+ ext v7.16b,v22.16b,v23.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ add v25.2d,v25.2d,v19.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08293 //sha512su0 v19.16b,v20.16b
+ ext v7.16b,v23.16b,v16.16b,#8
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ add v24.2d,v24.2d,v20.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082b4 //sha512su0 v20.16b,v21.16b
+ ext v7.16b,v16.16b,v17.16b,#8
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ add v25.2d,v25.2d,v21.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec082d5 //sha512su0 v21.16b,v22.16b
+ ext v7.16b,v17.16b,v18.16b,#8
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v24.2d,v24.2d,v22.2d
+ ld1 {v25.2d},[x3],#16
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xcec082f6 //sha512su0 v22.16b,v23.16b
+ ext v7.16b,v18.16b,v19.16b,#8
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ add v25.2d,v25.2d,v23.2d
+ ld1 {v24.2d},[x3],#16
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xcec08217 //sha512su0 v23.16b,v16.16b
+ ext v7.16b,v19.16b,v20.16b,#8
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ ld1 {v25.2d},[x3],#16
+ add v24.2d,v24.2d,v16.2d
+ ld1 {v16.16b},[x1],#16 // load next input
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+ rev64 v16.16b,v16.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ ld1 {v24.2d},[x3],#16
+ add v25.2d,v25.2d,v17.2d
+ ld1 {v17.16b},[x1],#16 // load next input
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+ rev64 v17.16b,v17.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ ld1 {v25.2d},[x3],#16
+ add v24.2d,v24.2d,v18.2d
+ ld1 {v18.16b},[x1],#16 // load next input
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+ rev64 v18.16b,v18.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ ld1 {v24.2d},[x3],#16
+ add v25.2d,v25.2d,v19.2d
+ ld1 {v19.16b},[x1],#16 // load next input
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v2.16b,v3.16b,#8
+ ext v6.16b,v1.16b,v2.16b,#8
+ add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b
+ rev64 v19.16b,v19.16b
+ add v4.2d,v1.2d,v3.2d // "D + T1"
+.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b
+ ld1 {v25.2d},[x3],#16
+ add v24.2d,v24.2d,v20.2d
+ ld1 {v20.16b},[x1],#16 // load next input
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v4.16b,v2.16b,#8
+ ext v6.16b,v0.16b,v4.16b,#8
+ add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b
+ rev64 v20.16b,v20.16b
+ add v1.2d,v0.2d,v2.2d // "D + T1"
+.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b
+ ld1 {v24.2d},[x3],#16
+ add v25.2d,v25.2d,v21.2d
+ ld1 {v21.16b},[x1],#16 // load next input
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v1.16b,v4.16b,#8
+ ext v6.16b,v3.16b,v1.16b,#8
+ add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b
+ rev64 v21.16b,v21.16b
+ add v0.2d,v3.2d,v4.2d // "D + T1"
+.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b
+ ld1 {v25.2d},[x3],#16
+ add v24.2d,v24.2d,v22.2d
+ ld1 {v22.16b},[x1],#16 // load next input
+ ext v24.16b,v24.16b,v24.16b,#8
+ ext v5.16b,v0.16b,v1.16b,#8
+ ext v6.16b,v2.16b,v0.16b,#8
+ add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]"
+.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b
+ rev64 v22.16b,v22.16b
+ add v3.2d,v2.2d,v1.2d // "D + T1"
+.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b
+ sub x3,x3,#80*8 // rewind
+ add v25.2d,v25.2d,v23.2d
+ ld1 {v23.16b},[x1],#16 // load next input
+ ext v25.16b,v25.16b,v25.16b,#8
+ ext v5.16b,v3.16b,v0.16b,#8
+ ext v6.16b,v4.16b,v3.16b,#8
+ add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]"
+.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b
+ rev64 v23.16b,v23.16b
+ add v2.2d,v4.2d,v0.2d // "D + T1"
+.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b
+ add v0.2d,v0.2d,v26.2d // accumulate
+ add v1.2d,v1.2d,v27.2d
+ add v2.2d,v2.2d,v28.2d
+ add v3.2d,v3.2d,v29.2d
+
+ cbnz x2,Loop_hw
+
+ st1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // store context
+
+ ldr x29,[sp],#16
+ ret
+
+#endif
diff --git a/contrib/libs/openssl/crypto/CMakeLists.darwin-arm64.txt b/contrib/libs/openssl/crypto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9eb46e3188
--- /dev/null
+++ b/contrib/libs/openssl/crypto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,689 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-openssl-crypto)
+target_compile_options(libs-openssl-crypto PRIVATE
+ -DOPENSSL_BN_ASM_MONT
+ -DOPENSSL_CPUID_OBJ
+ -DSHA1_ASM
+ -DSHA256_ASM
+ -DSHA512_ASM
+ -DZLIB
+ -DECP_NISTZ256_ASM
+ -DPOLY1305_ASM
+ -DKECCAK1600_ASM
+ -DVPAES_ASM
+ -DENGINESDIR="/usr/local/lib/engines-1.1"
+ -DOPENSSLDIR="/usr/local/ssl"
+ -DL_ENDIAN
+ -DOPENSSL_PIC
+ -D_REENTRANT
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-openssl-crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/arch_32
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/include
+)
+target_link_libraries(libs-openssl-crypto PUBLIC
+ contrib-libs-zlib
+ cpp-sanitizer-include
+)
+target_sources(libs-openssl-crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_cfb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_ige.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_misc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_ofb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_wrap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aria/aria.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_bitstr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_d2i_fp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_digest.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_dup.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_gentm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_i2d_fp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_int.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_mbstr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_object.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_octet.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_strex.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_strnid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_type.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_utctm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_utf8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/a_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/ameth_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn1_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn1_gen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn1_item_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn1_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn1_par.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn_mime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn_moid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn_mstbl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/asn_pack.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/bio_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/bio_ndef.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/d2i_pr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/d2i_pu.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/evp_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/f_int.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/f_string.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/i2d_pr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/i2d_pu.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/n_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/nsseq.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/p5_pbe.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/p5_pbev2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/p5_scrypt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/p8_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/t_bitst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/t_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/t_spki.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_dec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_fre.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_new.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_scn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_typ.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/tasn_utl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_algor.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_bignum.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_int64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_long.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_sig.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_spki.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/asn1/x_val.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/arch/async_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/arch/async_posix.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/arch/async_win.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/async.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/async_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/async/async_wait.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bf/bf_cfb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bf/bf_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bf/bf_ofb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bf/bf_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/b_addr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/b_dump.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/b_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/b_sock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/b_sock2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bf_buff.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bf_lbuf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bf_nbio.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bf_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bio_cb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bio_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bio_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bio_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_acpt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_bio.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_conn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_dgram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_fd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_file.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_mem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bio/bss_sock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/blake2/blake2b.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/blake2/blake2s.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/blake2/m_blake2b.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/blake2/m_blake2s.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_add.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_blind.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_const.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_ctx.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_depr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_dh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_div.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_exp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_exp2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_gcd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_gf2m.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_intern.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_kron.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_mod.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_mont.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_mpi.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_mul.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_nist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_prime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_rand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_recp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_shift.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_sqr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_sqrt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_srp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_word.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_x931p.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/buffer/buf_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/buffer/buffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_cfb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_ctr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_ofb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cast/c_cfb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cast/c_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cast/c_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cast/c_ofb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cast/c_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cmac/cm_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cmac/cm_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cmac/cmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_att.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_cd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_dd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_env.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_ess.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_kari.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_pwri.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_sd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cms/cms_smime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/comp/c_zlib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/comp/comp_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/comp/comp_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_api.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_def.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_mall.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_mod.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_sap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/conf/conf_ssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cpt_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cryptlib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_b64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_oct.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_policy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_sct.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_sct_ctx.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_vfy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ct/ct_x509v3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ctype.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/cversion.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/cbc_cksm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/cbc_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/cfb64ede.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/cfb64enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/cfb_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/ecb3_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/ecb_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/fcrypt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/ofb64ede.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/ofb64enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/ofb_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/pcbc_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/qud_cksm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/rand_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/set_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/str2key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/xcbc_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_check.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_depr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_gen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_kdf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_rfc5114.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dh/dh_rfc7919.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_depr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_gen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_ossl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dsa/dsa_vrf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_dl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_openssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_vms.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_win32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ebcdic.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve25519.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/arch_32/f_impl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/curve448.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/curve448_tables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/eddsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/f_generic.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/curve448/scalar.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec2_oct.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec2_smpl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_check.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_curve.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_cvt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_kmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_mult.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_oct.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ec_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecdh_kdf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecdh_ossl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecdsa_ossl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecdsa_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecdsa_vrf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/eck_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_mont.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nistp224.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nistp256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nistp521.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nistputil.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_oct.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_smpl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecx_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_all.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_cnf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_ctrl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_dyn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_fat.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_openssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_rdrand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/eng_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_asnmth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_cipher.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_dh.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_digest.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_dsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_eckey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_pkmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_rand.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/engine/tb_rsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/err/err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/err/err_all.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/err/err_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/bio_b64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/bio_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/bio_md.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/bio_ok.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/c_allc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/c_alld.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/cmeth_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/digest.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_aes.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_aria.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_bf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_camellia.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_cast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_chacha20_poly1305.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_des.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_des3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_idea.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_old.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_rc2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_rc4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_rc4_hmac_md5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_rc5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_seed.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_sm4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/e_xcbc_d.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_cnf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_pbe.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/evp_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_md2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_md4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_md5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_md5_sha1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_mdc2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_ripemd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_sha1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_sha3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_sigver.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/m_wp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/names.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p5_crpt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p5_crpt2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_dec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_open.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_seal.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/p_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/pbe_scrypt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/pmeth_fn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/pmeth_gn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/evp/pmeth_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ex_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/getenv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/hmac/hm_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/hmac/hm_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/hmac/hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/idea/i_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/idea/i_cfb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/idea/i_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/idea/i_ofb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/idea/i_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/kdf/hkdf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/kdf/kdf_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/kdf/scrypt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/kdf/tls1_prf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/lhash/lh_stats.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/lhash/lhash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/md4/md4_dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/md4/md4_one.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/md5/md5_dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/md5/md5_one.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/mdc2/mdc2_one.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/mdc2/mdc2dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/mem.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/mem_dbg.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/mem_sec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/cbc128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/ccm128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/cfb128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/ctr128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/cts128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/gcm128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/ocb128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/ofb128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/wrap128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/modes/xts128.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_dir.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_fips.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_fopen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_str.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/o_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/objects/o_names.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/objects/obj_dat.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/objects/obj_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/objects/obj_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/objects/obj_xref.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_asn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_cl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_ext.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_ht.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_srv.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/ocsp_vfy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ocsp/v3_ocsp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_all.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_oth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_pk8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_x509.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pem_xaux.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pem/pvkfmt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_add.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_asn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_attr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_crpt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_crt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_decr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_key.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_kiss.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_mutl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_npas.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_p8d.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_p8e.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_sbag.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/p12_utl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs12/pk12err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/bio_pk7.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_attr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_doit.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_mime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pk7_smime.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/pkcs7/pkcs7err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/poly1305/poly1305.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/poly1305/poly1305_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/poly1305/poly1305_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/drbg_ctr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/drbg_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/rand_egd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/rand_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/rand_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/rand_unix.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/rand_win.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rand/randfile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc2/rc2_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc2/rc2_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc2/rc2_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc2/rc2cfb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc2/rc2ofb64.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ripemd/rmd_dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ripemd/rmd_one.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_chk.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_crpt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_depr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_gen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_mp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_none.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_oaep.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_ossl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_pk1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_pss.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_saos.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_ssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_x931.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rsa/rsa_x931g.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/seed/seed.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/seed/seed_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/seed/seed_cfb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/seed/seed_ecb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/seed/seed_ofb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sha/sha1_one.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sha/sha1dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sha/sha256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sha/sha512.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/siphash/siphash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/siphash/siphash_ameth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/siphash/siphash_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm2/sm2_crypt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm2/sm2_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm2/sm2_pmeth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm2/sm2_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm3/m_sm3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm3/sm3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/sm4/sm4.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/srp/srp_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/srp/srp_vfy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/stack/stack.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/loader_file.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/store_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/store_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/store_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/store_register.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/store/store_strings.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/threads_none.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/threads_pthread.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/threads_win.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_asn1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_conf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_req_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_req_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_rsp_print.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_rsp_sign.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_rsp_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_rsp_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ts/ts_verify_ctx.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/txt_db/txt_db.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ui/ui_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ui/ui_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ui/ui_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ui/ui_openssl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ui/ui_util.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/uid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/whrlpool/wp_dgst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/by_dir.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/by_file.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/t_crl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/t_req.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/t_x509.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_att.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_cmp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_d2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_def.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_ext.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_lu.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_meth.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_obj.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_r2x.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_req.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_set.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_trs.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_txt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_v3.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_vfy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509_vpm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509cset.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509name.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509rset.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509spki.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x509type.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_all.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_attrib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_crl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_exten.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_pubkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_req.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_x509.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509/x_x509a.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_map.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_node.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/pcy_tree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_addr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_admis.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_akey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_akeya.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_alt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_asid.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_bcons.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_bitst.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_conf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_cpols.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_crld.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_enum.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_extku.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_genn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_ia5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_int.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_ncons.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_pci.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_pcia.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_pcons.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_pku.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_pmaps.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_prn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_purp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_sxnet.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_tlsf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3_utl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/x509v3/v3err.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/ec/ecp_nistz256.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/aes/aes_core.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bf/bf_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_misc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/des_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/des/fcrypt_b.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/keccak1600-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha512-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha1-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/sha/sha256-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/poly1305/poly1305-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/ec/ecp_nistz256-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/chacha/chacha-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/bn/armv8-mont.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/arm64cpuid.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/aesv8-armx.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/aes/vpaes-armv8.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/asm/darwin-arm64/crypto/modes/ghashv8-armx.S
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/armcap.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/bn/bn_asm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/camellia.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/camellia/cmll_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/dso/dso_dlfcn.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc4/rc4_enc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/rc4/rc4_skey.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/openssl/crypto/whrlpool/wp_block.c
+)
diff --git a/contrib/libs/openssl/crypto/CMakeLists.txt b/contrib/libs/openssl/crypto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/openssl/crypto/CMakeLists.txt
+++ b/contrib/libs/openssl/crypto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/openssl/crypto/dso/dso_dlfcn.c b/contrib/libs/openssl/crypto/dso/dso_dlfcn.c
new file mode 100644
index 0000000000..b926cb3021
--- /dev/null
+++ b/contrib/libs/openssl/crypto/dso/dso_dlfcn.c
@@ -0,0 +1,456 @@
+/*
+ * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * We need to do this early, because stdio.h includes the header files that
+ * handle _GNU_SOURCE and other similar macros. Defining it later is simply
+ * too late, because those headers are protected from re- inclusion.
+ */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE /* make sure dladdr is declared */
+#endif
+
+#include "dso_local.h"
+#include "e_os.h"
+
+#ifdef DSO_DLFCN
+
+# ifdef HAVE_DLFCN_H
+# ifdef __osf__
+# define __EXTENSIONS__
+# endif
+# include <dlfcn.h>
+# define HAVE_DLINFO 1
+# if defined(__SCO_VERSION__) || defined(_SCO_ELF) || \
+ (defined(__osf__) && !defined(RTLD_NEXT)) || \
+ (defined(__OpenBSD__) && !defined(RTLD_SELF)) || \
+ defined(__ANDROID__)
+# undef HAVE_DLINFO
+# endif
+# endif
+
+/* Part of the hack in "dlfcn_load" ... */
+# define DSO_MAX_TRANSLATED_SIZE 256
+
+static int dlfcn_load(DSO *dso);
+static int dlfcn_unload(DSO *dso);
+static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname);
+static char *dlfcn_name_converter(DSO *dso, const char *filename);
+static char *dlfcn_merger(DSO *dso, const char *filespec1,
+ const char *filespec2);
+static int dlfcn_pathbyaddr(void *addr, char *path, int sz);
+static void *dlfcn_globallookup(const char *name);
+
+static DSO_METHOD dso_meth_dlfcn = {
+ "OpenSSL 'dlfcn' shared library method",
+ dlfcn_load,
+ dlfcn_unload,
+ dlfcn_bind_func,
+ NULL, /* ctrl */
+ dlfcn_name_converter,
+ dlfcn_merger,
+ NULL, /* init */
+ NULL, /* finish */
+ dlfcn_pathbyaddr,
+ dlfcn_globallookup
+};
+
+DSO_METHOD *DSO_METHOD_openssl(void)
+{
+ return &dso_meth_dlfcn;
+}
+
+/*
+ * Prior to using the dlopen() function, we should decide on the flag we
+ * send. There's a few different ways of doing this and it's a messy
+ * venn-diagram to match up which platforms support what. So as we don't have
+ * autoconf yet, I'm implementing a hack that could be hacked further
+ * relatively easily to deal with cases as we find them. Initially this is to
+ * cope with OpenBSD.
+ */
+# if defined(__OpenBSD__) || defined(__NetBSD__)
+# ifdef DL_LAZY
+# define DLOPEN_FLAG DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define DLOPEN_FLAG RTLD_NOW
+# else
+# define DLOPEN_FLAG 0
+# endif
+# endif
+# else
+# define DLOPEN_FLAG RTLD_NOW /* Hope this works everywhere else */
+# endif
+
+/*
+ * For this DSO_METHOD, our meth_data STACK will contain; (i) the handle
+ * (void*) returned from dlopen().
+ */
+
+static int dlfcn_load(DSO *dso)
+{
+ void *ptr = NULL;
+ /* See applicable comments in dso_dl.c */
+ char *filename = DSO_convert_filename(dso, NULL);
+ int flags = DLOPEN_FLAG;
+ int saveerrno = get_last_sys_error();
+
+ if (filename == NULL) {
+ DSOerr(DSO_F_DLFCN_LOAD, DSO_R_NO_FILENAME);
+ goto err;
+ }
+# ifdef RTLD_GLOBAL
+ if (dso->flags & DSO_FLAG_GLOBAL_SYMBOLS)
+ flags |= RTLD_GLOBAL;
+# endif
+# ifdef _AIX
+ if (filename[strlen(filename) - 1] == ')')
+ flags |= RTLD_MEMBER;
+# endif
+ ptr = dlopen(filename, flags);
+ if (ptr == NULL) {
+ DSOerr(DSO_F_DLFCN_LOAD, DSO_R_LOAD_FAILED);
+ ERR_add_error_data(4, "filename(", filename, "): ", dlerror());
+ goto err;
+ }
+ /*
+ * Some dlopen() implementations (e.g. solaris) do no preserve errno, even
+ * on a successful call.
+ */
+ set_sys_error(saveerrno);
+ if (!sk_void_push(dso->meth_data, (char *)ptr)) {
+ DSOerr(DSO_F_DLFCN_LOAD, DSO_R_STACK_ERROR);
+ goto err;
+ }
+ /* Success */
+ dso->loaded_filename = filename;
+ return 1;
+ err:
+ /* Cleanup! */
+ OPENSSL_free(filename);
+ if (ptr != NULL)
+ dlclose(ptr);
+ return 0;
+}
+
+static int dlfcn_unload(DSO *dso)
+{
+ void *ptr;
+ if (dso == NULL) {
+ DSOerr(DSO_F_DLFCN_UNLOAD, ERR_R_PASSED_NULL_PARAMETER);
+ return 0;
+ }
+ if (sk_void_num(dso->meth_data) < 1)
+ return 1;
+ ptr = sk_void_pop(dso->meth_data);
+ if (ptr == NULL) {
+ DSOerr(DSO_F_DLFCN_UNLOAD, DSO_R_NULL_HANDLE);
+ /*
+ * Should push the value back onto the stack in case of a retry.
+ */
+ sk_void_push(dso->meth_data, ptr);
+ return 0;
+ }
+ /* For now I'm not aware of any errors associated with dlclose() */
+ dlclose(ptr);
+ return 1;
+}
+
+static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
+{
+ void *ptr;
+ union {
+ DSO_FUNC_TYPE sym;
+ void *dlret;
+ } u;
+
+ if ((dso == NULL) || (symname == NULL)) {
+ DSOerr(DSO_F_DLFCN_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER);
+ return NULL;
+ }
+ if (sk_void_num(dso->meth_data) < 1) {
+ DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_STACK_ERROR);
+ return NULL;
+ }
+ ptr = sk_void_value(dso->meth_data, sk_void_num(dso->meth_data) - 1);
+ if (ptr == NULL) {
+ DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_NULL_HANDLE);
+ return NULL;
+ }
+ u.dlret = dlsym(ptr, symname);
+ if (u.dlret == NULL) {
+ DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_SYM_FAILURE);
+ ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
+ return NULL;
+ }
+ return u.sym;
+}
+
+static char *dlfcn_merger(DSO *dso, const char *filespec1,
+ const char *filespec2)
+{
+ char *merged;
+
+ if (!filespec1 && !filespec2) {
+ DSOerr(DSO_F_DLFCN_MERGER, ERR_R_PASSED_NULL_PARAMETER);
+ return NULL;
+ }
+ /*
+ * If the first file specification is a rooted path, it rules. same goes
+ * if the second file specification is missing.
+ */
+ if (!filespec2 || (filespec1 != NULL && filespec1[0] == '/')) {
+ merged = OPENSSL_strdup(filespec1);
+ if (merged == NULL) {
+ DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
+ }
+ /*
+ * If the first file specification is missing, the second one rules.
+ */
+ else if (!filespec1) {
+ merged = OPENSSL_strdup(filespec2);
+ if (merged == NULL) {
+ DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
+ } else {
+ /*
+ * This part isn't as trivial as it looks. It assumes that the
+ * second file specification really is a directory, and makes no
+ * checks whatsoever. Therefore, the result becomes the
+ * concatenation of filespec2 followed by a slash followed by
+ * filespec1.
+ */
+ int spec2len, len;
+
+ spec2len = strlen(filespec2);
+ len = spec2len + strlen(filespec1);
+
+ if (spec2len && filespec2[spec2len - 1] == '/') {
+ spec2len--;
+ len--;
+ }
+ merged = OPENSSL_malloc(len + 2);
+ if (merged == NULL) {
+ DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
+ strcpy(merged, filespec2);
+ merged[spec2len] = '/';
+ strcpy(&merged[spec2len + 1], filespec1);
+ }
+ return merged;
+}
+
+static char *dlfcn_name_converter(DSO *dso, const char *filename)
+{
+ char *translated;
+ int len, rsize, transform;
+
+ len = strlen(filename);
+ rsize = len + 1;
+ transform = (strstr(filename, "/") == NULL);
+ if (transform) {
+ /* We will convert this to "%s.so" or "lib%s.so" etc */
+ rsize += strlen(DSO_EXTENSION); /* The length of ".so" */
+ if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0)
+ rsize += 3; /* The length of "lib" */
+ }
+ translated = OPENSSL_malloc(rsize);
+ if (translated == NULL) {
+ DSOerr(DSO_F_DLFCN_NAME_CONVERTER, DSO_R_NAME_TRANSLATION_FAILED);
+ return NULL;
+ }
+ if (transform) {
+ if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0)
+ sprintf(translated, "lib%s" DSO_EXTENSION, filename);
+ else
+ sprintf(translated, "%s" DSO_EXTENSION, filename);
+ } else
+ sprintf(translated, "%s", filename);
+ return translated;
+}
+
+# ifdef __sgi
+/*-
+This is a quote from IRIX manual for dladdr(3c):
+
+ <dlfcn.h> does not contain a prototype for dladdr or definition of
+ Dl_info. The #include <dlfcn.h> in the SYNOPSIS line is traditional,
+ but contains no dladdr prototype and no IRIX library contains an
+ implementation. Write your own declaration based on the code below.
+
+ The following code is dependent on internal interfaces that are not
+ part of the IRIX compatibility guarantee; however, there is no future
+ intention to change this interface, so on a practical level, the code
+ below is safe to use on IRIX.
+*/
+# include <rld_interface.h>
+# ifndef _RLD_INTERFACE_DLFCN_H_DLADDR
+# define _RLD_INTERFACE_DLFCN_H_DLADDR
+typedef struct Dl_info {
+ const char *dli_fname;
+ void *dli_fbase;
+ const char *dli_sname;
+ void *dli_saddr;
+ int dli_version;
+ int dli_reserved1;
+ long dli_reserved[4];
+} Dl_info;
+# else
+typedef struct Dl_info Dl_info;
+# endif
+# define _RLD_DLADDR 14
+
+static int dladdr(void *address, Dl_info *dl)
+{
+ void *v;
+ v = _rld_new_interface(_RLD_DLADDR, address, dl);
+ return (int)v;
+}
+# endif /* __sgi */
+
+# ifdef _AIX
+/*-
+ * See IBM's AIX Version 7.2, Technical Reference:
+ * Base Operating System and Extensions, Volume 1 and 2
+ * https://www.ibm.com/support/knowledgecenter/ssw_aix_72/com.ibm.aix.base/technicalreferences.htm
+ */
+# error #include <sys/ldr.h>
+# include <errno.h>
+/* ~ 64 * (sizeof(struct ld_info) + _XOPEN_PATH_MAX + _XOPEN_NAME_MAX) */
+# define DLFCN_LDINFO_SIZE 86976
+typedef struct Dl_info {
+ const char *dli_fname;
+} Dl_info;
+/*
+ * This dladdr()-implementation will also find the ptrgl (Pointer Glue) virtual
+ * address of a function, which is just located in the DATA segment instead of
+ * the TEXT segment.
+ */
+static int dladdr(void *ptr, Dl_info *dl)
+{
+ uintptr_t addr = (uintptr_t)ptr;
+ unsigned int found = 0;
+ struct ld_info *ldinfos, *next_ldi, *this_ldi;
+
+ if ((ldinfos = OPENSSL_malloc(DLFCN_LDINFO_SIZE)) == NULL) {
+ errno = ENOMEM;
+ dl->dli_fname = NULL;
+ return 0;
+ }
+
+ if ((loadquery(L_GETINFO, (void *)ldinfos, DLFCN_LDINFO_SIZE)) < 0) {
+ /*-
+ * Error handling is done through errno and dlerror() reading errno:
+ * ENOMEM (ldinfos buffer is too small),
+ * EINVAL (invalid flags),
+ * EFAULT (invalid ldinfos ptr)
+ */
+ OPENSSL_free((void *)ldinfos);
+ dl->dli_fname = NULL;
+ return 0;
+ }
+ next_ldi = ldinfos;
+
+ do {
+ this_ldi = next_ldi;
+ if (((addr >= (uintptr_t)this_ldi->ldinfo_textorg)
+ && (addr < ((uintptr_t)this_ldi->ldinfo_textorg +
+ this_ldi->ldinfo_textsize)))
+ || ((addr >= (uintptr_t)this_ldi->ldinfo_dataorg)
+ && (addr < ((uintptr_t)this_ldi->ldinfo_dataorg +
+ this_ldi->ldinfo_datasize)))) {
+ char *buffer, *member;
+ size_t buffer_sz, member_len;
+
+ buffer_sz = strlen(this_ldi->ldinfo_filename) + 1;
+ member = this_ldi->ldinfo_filename + buffer_sz;
+ if ((member_len = strlen(member)) > 0)
+ buffer_sz += 1 + member_len + 1;
+ found = 1;
+ if ((buffer = OPENSSL_malloc(buffer_sz)) != NULL) {
+ OPENSSL_strlcpy(buffer, this_ldi->ldinfo_filename, buffer_sz);
+ if (member_len > 0) {
+ /*
+ * Need to respect a possible member name and not just
+ * returning the path name in this case. See docs:
+ * sys/ldr.h, loadquery() and dlopen()/RTLD_MEMBER.
+ */
+ OPENSSL_strlcat(buffer, "(", buffer_sz);
+ OPENSSL_strlcat(buffer, member, buffer_sz);
+ OPENSSL_strlcat(buffer, ")", buffer_sz);
+ }
+ dl->dli_fname = buffer;
+ } else {
+ errno = ENOMEM;
+ }
+ } else {
+ next_ldi = (struct ld_info *)((uintptr_t)this_ldi +
+ this_ldi->ldinfo_next);
+ }
+ } while (this_ldi->ldinfo_next && !found);
+ OPENSSL_free((void *)ldinfos);
+ return (found && dl->dli_fname != NULL);
+}
+# endif /* _AIX */
+
+static int dlfcn_pathbyaddr(void *addr, char *path, int sz)
+{
+# ifdef HAVE_DLINFO
+ Dl_info dli;
+ int len;
+
+ if (addr == NULL) {
+ union {
+ int (*f) (void *, char *, int);
+ void *p;
+ } t = {
+ dlfcn_pathbyaddr
+ };
+ addr = t.p;
+ }
+
+ if (dladdr(addr, &dli)) {
+ len = (int)strlen(dli.dli_fname);
+ if (sz <= 0) {
+# ifdef _AIX
+ OPENSSL_free((void *)dli.dli_fname);
+# endif
+ return len + 1;
+ }
+ if (len >= sz)
+ len = sz - 1;
+ memcpy(path, dli.dli_fname, len);
+ path[len++] = 0;
+# ifdef _AIX
+ OPENSSL_free((void *)dli.dli_fname);
+# endif
+ return len;
+ }
+
+ ERR_add_error_data(2, "dlfcn_pathbyaddr(): ", dlerror());
+# endif
+ return -1;
+}
+
+static void *dlfcn_globallookup(const char *name)
+{
+ void *ret = NULL, *handle = dlopen(NULL, RTLD_LAZY);
+
+ if (handle) {
+ ret = dlsym(handle, name);
+ dlclose(handle);
+ }
+
+ return ret;
+}
+#endif /* DSO_DLFCN */
diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c26ac9dfec
--- /dev/null
+++ b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,155 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(contrib-libs-opentelemetry-proto)
+set_property(TARGET contrib-libs-opentelemetry-proto PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+set_property(TARGET contrib-libs-opentelemetry-proto PROPERTY
+ PROTO_NAMESPACE contrib/libs/opentelemetry-proto
+)
+target_include_directories(contrib-libs-opentelemetry-proto PUBLIC
+ ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto
+)
+target_link_libraries(contrib-libs-opentelemetry-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto
+)
+target_proto_addincls(contrib-libs-opentelemetry-proto
+ ./contrib/libs/opentelemetry-proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(contrib-libs-opentelemetry-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto
+)
+target_proto_plugin(contrib-libs-opentelemetry-proto
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.txt b/contrib/libs/opentelemetry-proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/opentelemetry-proto/CMakeLists.txt
+++ b/contrib/libs/opentelemetry-proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/pcre/CMakeLists.darwin-arm64.txt b/contrib/libs/pcre/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d217f5c0b3
--- /dev/null
+++ b/contrib/libs/pcre/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(pcre16)
+add_subdirectory(pcre32)
+
+add_library(contrib-libs-pcre)
+target_compile_options(contrib-libs-pcre PUBLIC
+ -DPCRE_STATIC
+)
+target_compile_options(contrib-libs-pcre PRIVATE
+ -DHAVE_CONFIG_H
+ -DARCADIA_PCRE_ENABLE_JIT
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-pcre PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre
+)
+target_sources(contrib-libs-pcre PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_byte_order.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_chartables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_config.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_dfa_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_fullinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_get.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_globals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_jit_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_maketables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_newline.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_ord2utf8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_refcount.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_string_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_study.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_tables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_ucd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_valid_utf8.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_xclass.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcreposix.c
+)
diff --git a/contrib/libs/pcre/CMakeLists.txt b/contrib/libs/pcre/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/pcre/CMakeLists.txt
+++ b/contrib/libs/pcre/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/pcre/pcre16/CMakeLists.darwin-arm64.txt b/contrib/libs/pcre/pcre16/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5f646dba67
--- /dev/null
+++ b/contrib/libs/pcre/pcre16/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-pcre-pcre16)
+target_compile_options(libs-pcre-pcre16 PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-pcre-pcre16 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre
+)
+target_sources(libs-pcre-pcre16 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_byte_order.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_chartables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_config.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_dfa_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_fullinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_get.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_globals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_jit_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_maketables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_newline.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_ord2utf16.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_refcount.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_string_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_study.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_tables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_ucd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_utf16_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_valid_utf16.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre16_xclass.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_chartables.c
+)
diff --git a/contrib/libs/pcre/pcre16/CMakeLists.txt b/contrib/libs/pcre/pcre16/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/pcre/pcre16/CMakeLists.txt
+++ b/contrib/libs/pcre/pcre16/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/pcre/pcre32/CMakeLists.darwin-arm64.txt b/contrib/libs/pcre/pcre32/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2be6098116
--- /dev/null
+++ b/contrib/libs/pcre/pcre32/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-pcre-pcre32)
+target_compile_options(libs-pcre-pcre32 PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-pcre-pcre32 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre
+)
+target_sources(libs-pcre-pcre32 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_byte_order.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_chartables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_config.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_dfa_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_exec.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_fullinfo.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_get.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_globals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_jit_compile.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_maketables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_newline.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_ord2utf32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_refcount.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_string_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_study.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_tables.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_ucd.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_utf32_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_valid_utf32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre32_xclass.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre/pcre_chartables.c
+)
diff --git a/contrib/libs/pcre/pcre32/CMakeLists.txt b/contrib/libs/pcre/pcre32/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/pcre/pcre32/CMakeLists.txt
+++ b/contrib/libs/pcre/pcre32/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/pdqsort/CMakeLists.darwin-arm64.txt b/contrib/libs/pdqsort/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7041694f05
--- /dev/null
+++ b/contrib/libs/pdqsort/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-pdqsort INTERFACE)
+target_link_libraries(contrib-libs-pdqsort INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/contrib/libs/pdqsort/CMakeLists.txt b/contrib/libs/pdqsort/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/pdqsort/CMakeLists.txt
+++ b/contrib/libs/pdqsort/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/pfr/CMakeLists.darwin-arm64.txt b/contrib/libs/pfr/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..66a1b47cce
--- /dev/null
+++ b/contrib/libs/pfr/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-pfr INTERFACE)
+target_include_directories(contrib-libs-pfr INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pfr/include
+)
+target_link_libraries(contrib-libs-pfr INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/contrib/libs/pfr/CMakeLists.txt b/contrib/libs/pfr/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/pfr/CMakeLists.txt
+++ b/contrib/libs/pfr/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/poco/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..269a5757fc
--- /dev/null
+++ b/contrib/libs/poco/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(Crypto)
+add_subdirectory(Foundation)
+add_subdirectory(JSON)
+add_subdirectory(Net)
+add_subdirectory(NetSSL_OpenSSL)
+add_subdirectory(Util)
+add_subdirectory(XML)
diff --git a/contrib/libs/poco/CMakeLists.txt b/contrib/libs/poco/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/poco/CMakeLists.txt
+++ b/contrib/libs/poco/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/poco/Crypto/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/Crypto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0907f3098
--- /dev/null
+++ b/contrib/libs/poco/Crypto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-Crypto)
+target_compile_options(libs-poco-Crypto PRIVATE
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-Crypto PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/include
+)
+target_include_directories(libs-poco-Crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+)
+target_link_libraries(libs-poco-Crypto PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-openssl
+ libs-poco-Foundation
+)
+target_sources(libs-poco-Crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/Cipher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CipherFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CipherImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CipherKey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CipherKeyImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CryptoException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CryptoStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/CryptoTransform.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/DigestEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/ECDSADigestEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/ECKey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/ECKeyImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/EVPPKey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/KeyPair.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/KeyPairImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/OpenSSLInitializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/PKCS12Container.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/RSACipherImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/RSADigestEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/RSAKey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/RSAKeyImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/src/X509Certificate.cpp
+)
diff --git a/contrib/libs/poco/Crypto/CMakeLists.txt b/contrib/libs/poco/Crypto/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/poco/Crypto/CMakeLists.txt
+++ b/contrib/libs/poco/Crypto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/poco/Foundation/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/Foundation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e755e2aaa
--- /dev/null
+++ b/contrib/libs/poco/Foundation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,191 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-Foundation)
+target_compile_options(libs-poco-Foundation PRIVATE
+ -DHAVE_PTHREAD_SETAFFINITY_NP
+ -DHAVE_THREE_PARAM_SCHED_SETAFFINITY
+ -DPCRE_STATIC
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-Foundation PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+)
+target_include_directories(libs-poco-Foundation PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/double-conversion
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pcre
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src
+)
+target_link_libraries(libs-poco-Foundation PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-double-conversion
+ contrib-libs-pcre
+ contrib-libs-zlib
+)
+target_sources(libs-poco-Foundation PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ASCIIEncoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/AbstractObserver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ActiveDispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ArchiveStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Ascii.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/AsyncChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/AtomicCounter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Base32Decoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Base32Encoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Base64Decoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Base64Encoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/BinaryReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/BinaryWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Bugcheck.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ByteOrder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Channel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Checksum.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Clock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Condition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Configurable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ConsoleChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/CountingStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DateTime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DateTimeFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DateTimeFormatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DateTimeParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Debugger.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DeflatingStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DigestEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DigestStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DirectoryIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DirectoryIteratorStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/DirectoryWatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Environment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ErrorHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Event.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/EventArgs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/EventChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Exception.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FIFOBufferStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FPEnvironment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/File.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FileChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FileStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FileStreamFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Format.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Formatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/FormattingChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Glob.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Hash.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/HashStatistic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/HexBinaryDecoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/HexBinaryEncoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/InflatingStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/JSONString.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Latin1Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Latin2Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Latin9Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LineEndingConverter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LocalDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LogFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LogStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Logger.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LoggingFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/LoggingRegistry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/MD4Engine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/MD5Engine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Manifest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/MemoryPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/MemoryStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Message.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NamedEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NamedMutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NestedDiagnosticContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Notification.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NotificationCenter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NotificationQueue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NullChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NullStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NumberFormatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NumberParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/NumericString.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Path.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/PatternFormatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Pipe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/PipeImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/PipeStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/PriorityNotificationQueue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Process.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/PurgeStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/RWLock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Random.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/RandomStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/RefCountedObject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/RegularExpression.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/RotateStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Runnable.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SHA1Engine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SharedLibrary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SharedMemory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SignalHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SimpleFileChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SortedDirectoryIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SplitterChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Stopwatch.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/StreamChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/StreamConverter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/StreamCopier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/StreamTokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/String.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/StringTokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SynchronizedObject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Task.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TaskManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TaskNotification.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TeeStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TemporaryFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TextBufferIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TextConverter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TextEncoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TextIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Thread.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ThreadLocal.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ThreadPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/ThreadTarget.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/TimedNotificationQueue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Timer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Timespan.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Timestamp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Timezone.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Token.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/URI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/URIStreamFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/URIStreamOpener.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UTF16Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UTF32Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UTF8Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UTF8String.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UUID.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UUIDGenerator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Unicode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/UnicodeConverter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Var.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/VarHolder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/VarIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Void.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Windows1250Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Windows1251Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/Windows1252Encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/src/SyslogChannel.cpp
+)
diff --git a/contrib/libs/poco/Foundation/CMakeLists.txt b/contrib/libs/poco/Foundation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/poco/Foundation/CMakeLists.txt
+++ b/contrib/libs/poco/Foundation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/poco/JSON/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/JSON/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..403b3bc5c6
--- /dev/null
+++ b/contrib/libs/poco/JSON/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-JSON)
+target_compile_options(libs-poco-JSON PRIVATE
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-JSON PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/include
+)
+target_include_directories(libs-poco-JSON PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src
+)
+target_link_libraries(libs-poco-JSON PUBLIC
+ contrib-libs-cxxsupp
+ libs-poco-Foundation
+)
+target_sources(libs-poco-JSON PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Array.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Handler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/JSONException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Object.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/ParseHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Parser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/ParserImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/PrintHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Query.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Stringifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/Template.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/TemplateCache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/src/pdjson.c
+)
diff --git a/contrib/libs/poco/JSON/CMakeLists.txt b/contrib/libs/poco/JSON/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/poco/JSON/CMakeLists.txt
+++ b/contrib/libs/poco/JSON/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/poco/Net/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/Net/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4dd5878c21
--- /dev/null
+++ b/contrib/libs/poco/Net/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,132 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-Net)
+target_compile_options(libs-poco-Net PRIVATE
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-Net PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/include
+)
+target_include_directories(libs-poco-Net PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src
+)
+target_link_libraries(libs-poco-Net PUBLIC
+ contrib-libs-cxxsupp
+ libs-poco-Foundation
+)
+target_sources(libs-poco-Net PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/AbstractHTTPRequestHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/DNS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/DatagramSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/DatagramSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/DialogSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/FTPClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/FTPStreamFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/FilePartSource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTMLForm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPAuthenticationParams.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPBufferAllocator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPChunkedStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPCookie.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPCredentials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPDigestCredentials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPFixedLengthStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPHeaderStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPIOStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPMessage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPRequestHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPRequestHandlerFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPResponse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerConnection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerConnectionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerParams.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerRequestImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerResponse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerResponseImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPServerSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPSessionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPSessionInstantiator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HTTPStreamFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/HostEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPEventArgs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPPacket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPPacketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ICMPv4PacketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/IPAddress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/IPAddressImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MailMessage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MailRecipient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MailStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MediaType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MessageHeader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MulticastSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MultipartReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/MultipartWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NTPClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NTPEventArgs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NTPPacket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NameValueCollection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/Net.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NetException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NetworkInterface.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/NullPartHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/OAuth10Credentials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/OAuth20Credentials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/POP3ClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/PartHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/PartSource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/PartStore.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/PollSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/QuotedPrintableDecoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/QuotedPrintableEncoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/RawSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/RawSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/RemoteSyslogChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/RemoteSyslogListener.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SMTPChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SMTPClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/ServerSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/Socket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketAddress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketAddressImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketNotification.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketNotifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketReactor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/SocketStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/StreamSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/StreamSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/StringPartSource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/TCPServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/TCPServerConnection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/TCPServerConnectionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/TCPServerDispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/TCPServerParams.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/WebSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/src/WebSocketImpl.cpp
+)
diff --git a/contrib/libs/poco/Net/CMakeLists.txt b/contrib/libs/poco/Net/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/poco/Net/CMakeLists.txt
+++ b/contrib/libs/poco/Net/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f5b77eed47
--- /dev/null
+++ b/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-NetSSL_OpenSSL)
+target_compile_options(libs-poco-NetSSL_OpenSSL PRIVATE
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-NetSSL_OpenSSL PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/include
+)
+target_include_directories(libs-poco-NetSSL_OpenSSL PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Crypto/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Net/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/include
+)
+target_link_libraries(libs-poco-NetSSL_OpenSSL PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-openssl
+ libs-poco-Crypto
+ libs-poco-Foundation
+ libs-poco-JSON
+ libs-poco-Net
+ libs-poco-Util
+ libs-poco-XML
+)
+target_sources(libs-poco-NetSSL_OpenSSL PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/AcceptCertificateHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/CertificateHandlerFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/CertificateHandlerFactoryMgr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/ConsoleCertificateHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/Context.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/HTTPSClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/HTTPSSessionInstantiator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/HTTPSStreamFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/InvalidCertificateHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/KeyConsoleHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/KeyFileHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/PrivateKeyFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/PrivateKeyFactoryMgr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/PrivateKeyPassphraseHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/RejectCertificateHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SSLException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SSLManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureSMTPClientSession.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureServerSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureStreamSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/SecureStreamSocketImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/Session.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/Utility.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/VerificationErrorArgs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/NetSSL_OpenSSL/src/X509Certificate.cpp
+)
diff --git a/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt b/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt
+++ b/contrib/libs/poco/NetSSL_OpenSSL/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/poco/Util/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/Util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..813912d18d
--- /dev/null
+++ b/contrib/libs/poco/Util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-Util)
+target_compile_options(libs-poco-Util PRIVATE
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-Util PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/include
+)
+target_include_directories(libs-poco-Util PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/JSON/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/include
+)
+target_link_libraries(libs-poco-Util PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-expat
+ libs-poco-Foundation
+ libs-poco-JSON
+ libs-poco-XML
+)
+target_sources(libs-poco-Util PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/AbstractConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/Application.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/ConfigurationMapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/ConfigurationView.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/FilesystemConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/HelpFormatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/IniFileConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/IntValidator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/JSONConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/LayeredConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/LoggingConfigurator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/LoggingSubsystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/MapConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/Option.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/OptionCallback.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/OptionException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/OptionProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/OptionSet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/PropertyFileConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/RegExpValidator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/ServerApplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/Subsystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/SystemConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/Timer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/TimerTask.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/Validator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Util/src/XMLConfiguration.cpp
+)
diff --git a/contrib/libs/poco/Util/CMakeLists.txt b/contrib/libs/poco/Util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/poco/Util/CMakeLists.txt
+++ b/contrib/libs/poco/Util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/poco/XML/CMakeLists.darwin-arm64.txt b/contrib/libs/poco/XML/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5e02faf42f
--- /dev/null
+++ b/contrib/libs/poco/XML/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,108 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-poco-XML)
+target_compile_options(libs-poco-XML PRIVATE
+ -DHAVE_EXPAT_CONFIG_H
+ -DPOCO_ENABLE_CPP11
+ -DPOCO_ENABLE_CPP14
+ -DPOCO_NO_AUTOMATIC_LIBS
+ -DPOCO_UNBUNDLED
+ -DXML_DTD
+ -DXML_NS
+ -DPOCO_OS_FAMILY_UNIX
+ -DPOCO_NO_STAT64
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-poco-XML PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/expat
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/include
+)
+target_include_directories(libs-poco-XML PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/Foundation/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src
+)
+target_link_libraries(libs-poco-XML PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-expat
+ libs-poco-Foundation
+)
+target_sources(libs-poco-XML PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/AbstractContainerNode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/AbstractNode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Attr.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/AttrMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Attributes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/AttributesImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/CDATASection.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/CharacterData.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ChildNodesList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Comment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ContentHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMBuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMImplementation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMObject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DOMWriter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DTDHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DTDMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DeclHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DefaultHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Document.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DocumentEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DocumentFragment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/DocumentType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Element.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ElementsByTagNameList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Entity.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EntityReference.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EntityResolver.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EntityResolverImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ErrorHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Event.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EventDispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EventException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EventListener.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/EventTarget.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/InputSource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/LexicalHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Locator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/LocatorImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/MutationEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Name.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NamePool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NamedNodeMap.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NamespaceStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NamespaceSupport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Node.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NodeAppender.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NodeFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NodeIterator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/NodeList.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Notation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ParserEngine.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ProcessingInstruction.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/QName.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/SAXException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/SAXParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/Text.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/TreeWalker.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/ValueTraits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/WhitespaceFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLFilterImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLReader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLStreamParser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLStreamParserException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLString.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/poco/XML/src/XMLWriter.cpp
+)
diff --git a/contrib/libs/poco/XML/CMakeLists.txt b/contrib/libs/poco/XML/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/poco/XML/CMakeLists.txt
+++ b/contrib/libs/poco/XML/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt b/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7bb6b1fa02
--- /dev/null
+++ b/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,175 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-protobuf)
+target_compile_options(contrib-libs-protobuf PRIVATE
+ -DHAVE_CONFIG_H
+ -DHAVE_PTHREAD=1
+ -DHAVE_ZLIB=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-protobuf PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_link_libraries(contrib-libs-protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ cpp-sanitizer-include
+)
+target_sources(contrib-libs-protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/arena.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/arenastring.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor_database.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/dynamic_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/extension_set.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/extension_set_heavy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_enum_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_bases.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_reflection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_table_driven.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_table_driven_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_tctable_full.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_tctable_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/implicit_weak_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/inlined_string_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/coded_stream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/gzip_stream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/io_win32.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/printer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/strtod.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/tokenizer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/zero_copy_stream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/json_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/map.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/map_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/message_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/messagext.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/parse_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/reflection_ops.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/repeated_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/repeated_ptr_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/bytestream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/common.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/int128.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/statusor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/stringpiece.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/stringprintf.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/structurally_valid.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/strutil.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/substitute.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/stubs/time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/text_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/unknown_field_set.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/delimited_message_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/field_comparator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/field_mask_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/datapiece.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/error_listener.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/json_escaping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/object_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/proto_writer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/type_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/internal/utility.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/json_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/message_differencer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/time_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/util/type_resolver_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto
+ ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto
+)
+
+add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf)
+target_compile_options(contrib-libs-protobuf.global PRIVATE
+ -DHAVE_CONFIG_H
+ -DHAVE_PTHREAD=1
+ -DHAVE_ZLIB=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-protobuf.global PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_link_libraries(contrib-libs-protobuf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ cpp-sanitizer-include
+)
+target_sources(contrib-libs-protobuf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/generated_message_util.cc
+)
diff --git a/contrib/libs/protobuf/CMakeLists.txt b/contrib/libs/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/protobuf/CMakeLists.txt
+++ b/contrib/libs/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/protoc/CMakeLists.darwin-arm64.txt b/contrib/libs/protoc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4cce10e7b9
--- /dev/null
+++ b/contrib/libs/protoc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,112 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-protoc)
+target_compile_options(contrib-libs-protoc PRIVATE
+ -DHAVE_CONFIG_H
+ -DHAVE_PTHREAD=1
+ -DHAVE_ZLIB=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-protoc PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src
+)
+target_link_libraries(contrib-libs-protoc PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-protobuf
+)
+target_sources(contrib-libs-protoc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/code_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/command_line_interface.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_enum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_extension.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_map_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_message_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/cpp/cpp_string_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_enum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_field_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_map_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_message_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/importer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_context.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_doc_comment.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_enum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_enum_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_enum_field_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_enum_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_extension.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_extension_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_generator_factory.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_kotlin_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_map_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_map_field_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message_builder.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message_builder_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message_field_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_message_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_name_resolver.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_primitive_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_service.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_shared_code_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_string_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/java/java_string_field_lite.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/js/js_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/js/well_known_types_embed.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_file.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/perlxs/perlxs_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/perlxs/perlxs_helpers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/php/php_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/plugin.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/plugin.pb.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/python/python_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/subprocess.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/zip_writer.cc
+)
diff --git a/contrib/libs/protoc/CMakeLists.txt b/contrib/libs/protoc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/protoc/CMakeLists.txt
+++ b/contrib/libs/protoc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/rapidjson/CMakeLists.darwin-arm64.txt b/contrib/libs/rapidjson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e39698fe30
--- /dev/null
+++ b/contrib/libs/rapidjson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-rapidjson INTERFACE)
+target_link_libraries(contrib-libs-rapidjson INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/libs/rapidjson/CMakeLists.txt b/contrib/libs/rapidjson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/rapidjson/CMakeLists.txt
+++ b/contrib/libs/rapidjson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/re2/CMakeLists.darwin-arm64.txt b/contrib/libs/re2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6c28e1ad7
--- /dev/null
+++ b/contrib/libs/re2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,53 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-re2)
+target_compile_options(contrib-libs-re2 PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-re2 PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/include
+)
+target_include_directories(contrib-libs-re2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2
+)
+target_link_libraries(contrib-libs-re2 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-absl-base
+ abseil-cpp-absl-container
+ abseil-cpp-absl-hash
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ cpp-sanitizer-include
+)
+target_sources(contrib-libs-re2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/bitmap256.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/bitstate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/compile.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/dfa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/filtered_re2.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/mimics_pcre.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/nfa.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/onepass.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/parse.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/perl_groups.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/prefilter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/prefilter_tree.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/prog.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/re2.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/regexp.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/set.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/simplify.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/tostring.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/unicode_casefold.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/re2/unicode_groups.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/util/rune.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/re2/util/strutil.cc
+)
diff --git a/contrib/libs/re2/CMakeLists.txt b/contrib/libs/re2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/re2/CMakeLists.txt
+++ b/contrib/libs/re2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/sasl/CMakeLists.darwin-arm64.txt b/contrib/libs/sasl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e3e65a373a
--- /dev/null
+++ b/contrib/libs/sasl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-sasl)
+target_compile_options(contrib-libs-sasl PRIVATE
+ -DCONFIGDIR="/tmp/yamaker/sasl/out/lib/sasl2:/var/empty/cyrus-sasl-2.1.28/etc/sasl2"
+ -DHAVE_CONFIG_H
+ -DOBSOLETE_CRAM_ATTR=1
+ -DOBSOLETE_DIGEST_ATTR=1
+ -DPLUGINDIR="/tmp/yamaker/sasl/out/lib/sasl2"
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-sasl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/sasldb
+)
+target_link_libraries(contrib-libs-sasl PUBLIC
+ contrib-libs-openssl
+)
+target_sources(contrib-libs-sasl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/common/plugin_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/auxprop.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/canonusr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/checkpw.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/client.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/config.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/dlopen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/external.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/md5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/saslutil.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/server.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/lib/seterror.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/anonymous.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/cram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/digestmd5.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/otp.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/plain.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/sasldb.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/plugins/scram.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sasl/sasldb/db_none.c
+)
diff --git a/contrib/libs/sasl/CMakeLists.txt b/contrib/libs/sasl/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/libs/sasl/CMakeLists.txt
+++ b/contrib/libs/sasl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/snappy/CMakeLists.darwin-arm64.txt b/contrib/libs/snappy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..530a98a7a4
--- /dev/null
+++ b/contrib/libs/snappy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-snappy)
+target_compile_options(contrib-libs-snappy PRIVATE
+ -DHAVE_CONFIG_H
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-snappy PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/snappy/include
+)
+target_link_libraries(contrib-libs-snappy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-sanitizer-include
+)
+target_sources(contrib-libs-snappy PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/snappy/snappy-c.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/snappy/snappy-sinksource.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/snappy/snappy-stubs-internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/snappy/snappy.cc
+)
diff --git a/contrib/libs/snappy/CMakeLists.txt b/contrib/libs/snappy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/snappy/CMakeLists.txt
+++ b/contrib/libs/snappy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/sparsehash/CMakeLists.darwin-arm64.txt b/contrib/libs/sparsehash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0de0e50d71
--- /dev/null
+++ b/contrib/libs/sparsehash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-sparsehash INTERFACE)
+target_include_directories(contrib-libs-sparsehash INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/sparsehash/src
+)
+target_link_libraries(contrib-libs-sparsehash INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/contrib/libs/sparsehash/CMakeLists.txt b/contrib/libs/sparsehash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/sparsehash/CMakeLists.txt
+++ b/contrib/libs/sparsehash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/t1ha/CMakeLists.darwin-arm64.txt b/contrib/libs/t1ha/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60de9f8303
--- /dev/null
+++ b/contrib/libs/t1ha/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-t1ha)
+target_compile_options(contrib-libs-t1ha PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_sources(contrib-libs-t1ha PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha0.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha0_ia32aes_avx.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha0_ia32aes_avx2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha0_ia32aes_noavx.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha0_selfcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha1.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha1_selfcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha2.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha2_selfcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha_selfcheck.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/t1ha/src/t1ha_selfcheck_all.c
+)
diff --git a/contrib/libs/t1ha/CMakeLists.txt b/contrib/libs/t1ha/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/t1ha/CMakeLists.txt
+++ b/contrib/libs/t1ha/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/tbb/CMakeLists.darwin-arm64.txt b/contrib/libs/tbb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da05092cd6
--- /dev/null
+++ b/contrib/libs/tbb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-tbb)
+target_compile_options(contrib-libs-tbb PRIVATE
+ -D__TBB_BUILD
+ -DUSE_PTHREAD
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-tbb PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/include
+)
+target_link_libraries(contrib-libs-tbb PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-tbb PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/address_waiter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/allocator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/arena.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/arena_slot.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/concurrent_bounded_queue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/dynamic_link.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/exception.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/global_control.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/governor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/main.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/market.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/misc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/misc_ex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/observer_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/parallel_pipeline.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/private_server.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/profiling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/queuing_rw_mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/rml_tbb.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/rtm_mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/rtm_rw_mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/small_object_pool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/task.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/task_dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/task_group_context.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tbb/src/tbb/version.cpp
+)
diff --git a/contrib/libs/tbb/CMakeLists.txt b/contrib/libs/tbb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/tbb/CMakeLists.txt
+++ b/contrib/libs/tbb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/tcmalloc/CMakeLists.darwin-arm64.txt b/contrib/libs/tcmalloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..daf0950e7c
--- /dev/null
+++ b/contrib/libs/tcmalloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,9 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(malloc_extension)
diff --git a/contrib/libs/tcmalloc/CMakeLists.txt b/contrib/libs/tcmalloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/tcmalloc/CMakeLists.txt
+++ b/contrib/libs/tcmalloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-arm64.txt b/contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff72551b97
--- /dev/null
+++ b/contrib/libs/tcmalloc/malloc_extension/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-tcmalloc-malloc_extension)
+target_compile_options(libs-tcmalloc-malloc_extension PRIVATE
+ -DTCMALLOC_256K_PAGES
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-tcmalloc-malloc_extension PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tcmalloc
+)
+target_link_libraries(libs-tcmalloc-malloc_extension PUBLIC
+ contrib-libs-cxxsupp
+ contrib-restricted-abseil-cpp
+)
+target_sources(libs-tcmalloc-malloc_extension PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/malloc_extension.cc
+)
diff --git a/contrib/libs/tcmalloc/malloc_extension/CMakeLists.txt b/contrib/libs/tcmalloc/malloc_extension/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/tcmalloc/malloc_extension/CMakeLists.txt
+++ b/contrib/libs/tcmalloc/malloc_extension/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/utf8proc/CMakeLists.darwin-arm64.txt b/contrib/libs/utf8proc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da6056a44b
--- /dev/null
+++ b/contrib/libs/utf8proc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-utf8proc)
+target_compile_options(contrib-libs-utf8proc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_sources(contrib-libs-utf8proc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/utf8proc/utf8proc.c
+)
diff --git a/contrib/libs/utf8proc/CMakeLists.txt b/contrib/libs/utf8proc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/utf8proc/CMakeLists.txt
+++ b/contrib/libs/utf8proc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/xxhash/CMakeLists.darwin-arm64.txt b/contrib/libs/xxhash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2afaa79b4e
--- /dev/null
+++ b/contrib/libs/xxhash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-xxhash)
+target_compile_options(contrib-libs-xxhash PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_sources(contrib-libs-xxhash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/xxhash/xxhash.c
+)
diff --git a/contrib/libs/xxhash/CMakeLists.txt b/contrib/libs/xxhash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/xxhash/CMakeLists.txt
+++ b/contrib/libs/xxhash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/yajl/CMakeLists.darwin-arm64.txt b/contrib/libs/yajl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..41b5ae1274
--- /dev/null
+++ b/contrib/libs/yajl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-yajl)
+target_compile_options(contrib-libs-yajl PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(contrib-libs-yajl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(contrib-libs-yajl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_gen.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_version.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_alloc.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_encode.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_lex.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_tree.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yajl/yajl_parser.cpp
+)
diff --git a/contrib/libs/yajl/CMakeLists.txt b/contrib/libs/yajl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/yajl/CMakeLists.txt
+++ b/contrib/libs/yajl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/yaml-cpp/CMakeLists.darwin-arm64.txt b/contrib/libs/yaml-cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e5b20eefab
--- /dev/null
+++ b/contrib/libs/yaml-cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-yaml-cpp)
+target_include_directories(contrib-libs-yaml-cpp PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/include
+)
+target_link_libraries(contrib-libs-yaml-cpp PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-yaml-cpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/binary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/convert.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/directives.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/emit.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/emitfromevents.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/emitter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/emitterstate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/emitterutils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/exceptions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/exp.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/memory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/nodebuilder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/node.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/node_data.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/nodeevents.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/null.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/ostream_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/parse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/parser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/regex_yaml.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/scanner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/scanscalar.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/scantag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/scantoken.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/simplekey.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/singledocparser.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/stream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/yaml-cpp/src/tag.cpp
+)
diff --git a/contrib/libs/yaml-cpp/CMakeLists.txt b/contrib/libs/yaml-cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/yaml-cpp/CMakeLists.txt
+++ b/contrib/libs/yaml-cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/zlib/CMakeLists.darwin-arm64.txt b/contrib/libs/zlib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3edb5eb3cb
--- /dev/null
+++ b/contrib/libs/zlib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-zlib)
+target_compile_options(contrib-libs-zlib PRIVATE
+ -DHAVE_HIDDEN
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-zlib PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/include
+)
+target_sources(contrib-libs-zlib PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/adler32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/crc32.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/deflate.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/gzclose.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/gzlib.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/gzread.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/gzwrite.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/infback.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/inffast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/inflate.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/inftrees.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/trees.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/uncompr.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zlib/zutil.c
+)
diff --git a/contrib/libs/zlib/CMakeLists.txt b/contrib/libs/zlib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/zlib/CMakeLists.txt
+++ b/contrib/libs/zlib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/zstd/CMakeLists.darwin-arm64.txt b/contrib/libs/zstd/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6affe2929
--- /dev/null
+++ b/contrib/libs/zstd/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,60 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-zstd)
+target_compile_options(contrib-libs-zstd PRIVATE
+ -DZSTD_LEGACY_SUPPORT=1
+ -DZSTD_MULTITHREAD
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-zstd PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy
+)
+target_link_libraries(contrib-libs-zstd PUBLIC
+ contrib-libs-xxhash
+)
+target_sources(contrib-libs-zstd PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/debug.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/entropy_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/error_private.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/fse_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/pool.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/threading.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/common/zstd_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/fse_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/hist.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/huf_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_compress_literals.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_compress_sequences.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_compress_superblock.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_double_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_fast.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_lazy.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_ldm.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstd_opt.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/compress/zstdmt_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/decompress/huf_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/decompress/zstd_ddict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/decompress/zstd_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/decompress/zstd_decompress_block.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/dictBuilder/cover.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/dictBuilder/divsufsort.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/dictBuilder/fastcover.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/dictBuilder/zdict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v01.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v02.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v03.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v04.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v05.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v06.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/lib/legacy/zstd_v07.c
+)
diff --git a/contrib/libs/zstd/CMakeLists.txt b/contrib/libs/zstd/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/zstd/CMakeLists.txt
+++ b/contrib/libs/zstd/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/libs/zstd06/CMakeLists.darwin-arm64.txt b/contrib/libs/zstd06/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b20e4ae1f5
--- /dev/null
+++ b/contrib/libs/zstd06/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-libs-zstd06)
+target_compile_options(contrib-libs-zstd06 PRIVATE
+ -DZSTD_LEGACY_SUPPORT=1
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-libs-zstd06 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/common
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/compress
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/decompress
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/dictBuilder
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy
+)
+target_link_libraries(contrib-libs-zstd06 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-libs-zstd06 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/common/entropy_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/common/fse_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/common/xxhash.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/common/zstd_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/compress/fse_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/compress/huf_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/compress/zbuff_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/compress/zstd_compress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/decompress/huf_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/decompress/zbuff_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/decompress/zstd_decompress.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/dictBuilder/divsufsort.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/dictBuilder/zdict.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v01.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v02.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v03.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v04.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v05.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v07.c
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd06/legacy/zstd_v08.c
+)
diff --git a/contrib/libs/zstd06/CMakeLists.txt b/contrib/libs/zstd06/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/libs/zstd06/CMakeLists.txt
+++ b/contrib/libs/zstd06/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/CMakeLists.darwin-arm64.txt b/contrib/restricted/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14184a57bb
--- /dev/null
+++ b/contrib/restricted/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abseil-cpp)
+add_subdirectory(abseil-cpp-tstring)
+add_subdirectory(aws)
+add_subdirectory(boost)
+add_subdirectory(cityhash-1.0.2)
+add_subdirectory(dragonbox)
+add_subdirectory(fast_float)
+add_subdirectory(google)
+add_subdirectory(googletest)
+add_subdirectory(http-parser)
+add_subdirectory(nlohmann_json)
+add_subdirectory(patched)
+add_subdirectory(thrift)
+add_subdirectory(uriparser)
diff --git a/contrib/restricted/CMakeLists.txt b/contrib/restricted/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/CMakeLists.txt
+++ b/contrib/restricted/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a85dbb45d3
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-algorithm INTERFACE)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/algorithm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..78cc540064
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-base)
+target_compile_options(abseil-cpp-tstring-y_absl-base PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-base PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-tstring-y_absl-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/cycleclock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/low_level_alloc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/raw_logging.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/scoped_set_env.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/spinlock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/spinlock_wait.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/strerror.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/sysinfo.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/thread_identity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/throw_delegate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/internal/unscaledcycleclock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/base/log_severity.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4b1e20f68
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-container)
+target_compile_options(abseil-cpp-tstring-y_absl-container PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-container PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-container PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-debugging
+ abseil-cpp-tstring-y_absl-hash
+ abseil-cpp-tstring-y_absl-memory
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-profiling
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-synchronization
+ abseil-cpp-tstring-y_absl-time
+ abseil-cpp-tstring-y_absl-types
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-tstring-y_absl-container PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/container/internal/hashtablez_sampler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/container/internal/hashtablez_sampler_force_weak_definition.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/container/internal/raw_hash_set.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/container/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..67b6bea7d9
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-debugging)
+target_compile_options(abseil-cpp-tstring-y_absl-debugging PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-debugging PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-debugging PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-tstring-y_absl-debugging PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/failure_signal_handler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/address_is_readable.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/demangle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/elf_mem_image.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/examine_stack.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/vdso_support.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/leak_check.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/stacktrace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/symbolize.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/debugging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..df26b1e9b5
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-flags)
+target_compile_options(abseil-cpp-tstring-y_absl-flags PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-flags PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-flags PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-container
+ abseil-cpp-tstring-y_absl-debugging
+ abseil-cpp-tstring-y_absl-hash
+ abseil-cpp-tstring-y_absl-memory
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-profiling
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-synchronization
+ abseil-cpp-tstring-y_absl-time
+ abseil-cpp-tstring-y_absl-types
+)
+target_sources(abseil-cpp-tstring-y_absl-flags PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/commandlineflag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/flag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/internal/commandlineflag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/internal/flag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/internal/private_handle_accessor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/internal/program_name.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/internal/usage.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/marshalling.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/parse.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/reflection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/usage.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/flags/usage_config.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/flags/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a1f6d47793
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-functional INTERFACE)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/functional/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0650809a3b
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-hash)
+target_compile_options(abseil-cpp-tstring-y_absl-hash PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-hash PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-hash PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-types
+)
+target_sources(abseil-cpp-tstring-y_absl-hash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/hash/internal/city.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/hash/internal/hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/hash/internal/low_level_hash.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/hash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8bb73fa532
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-memory INTERFACE)
+target_link_libraries(abseil-cpp-tstring-y_absl-memory INTERFACE
+ abseil-cpp-tstring-y_absl-meta
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/memory/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1fa7e9da7f
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-meta INTERFACE)
+target_link_libraries(abseil-cpp-tstring-y_absl-meta INTERFACE
+ abseil-cpp-tstring-y_absl-base
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/meta/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f98e8828e7
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-numeric)
+target_compile_options(abseil-cpp-tstring-y_absl-numeric PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-numeric PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-numeric PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(abseil-cpp-tstring-y_absl-numeric PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/int128.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/numeric/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec53f57bc1
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-profiling)
+target_compile_options(abseil-cpp-tstring-y_absl-profiling PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-profiling PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-profiling PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(abseil-cpp-tstring-y_absl-profiling PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/internal/exponential_biased.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/internal/periodic_sampler.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/profiling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..068982719c
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-random)
+target_compile_options(abseil-cpp-tstring-y_absl-random PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-random PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-random PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-types
+)
+target_sources(abseil-cpp-tstring-y_absl-random PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/discrete_distribution.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/gaussian_distribution.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/chi_square.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/distribution_test_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/pool_urbg.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/randen.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/randen_detect.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/randen_hwaes.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/randen_round_keys.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/randen_slow.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/internal/seed_material.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/seed_gen_exception.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/random/seed_sequences.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/random/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..564e9bb142
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-status)
+target_compile_options(abseil-cpp-tstring-y_absl-status PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-status PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-status PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-debugging
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-profiling
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-synchronization
+ abseil-cpp-tstring-y_absl-time
+ abseil-cpp-tstring-y_absl-types
+)
+target_sources(abseil-cpp-tstring-y_absl-status PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/status/status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/status/status_payload_printer.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/status/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b5c6935a6
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-strings)
+target_compile_options(abseil-cpp-tstring-y_absl-strings PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-strings PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-strings PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-numeric
+)
+target_sources(abseil-cpp-tstring-y_absl-strings PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/crc32c.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/cpu_detect.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc_cord_state.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc_memcpy_fallback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc_memcpy_x86_64.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc_non_temporal_memcpy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/crc/internal/crc_x86_arm_combined.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/status/statusor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/ascii.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/charconv.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/cord.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/cord_analysis.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/cord_buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/escaping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/charconv_bigint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/charconv_parse.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_btree.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_btree_navigator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_btree_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_consume.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_crc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cord_rep_ring.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cordz_functions.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cordz_handle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cordz_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/cordz_sample_token.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/damerau_levenshtein_distance.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/escaping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/memutil.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/ostringstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/arg.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/bind.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/extension.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/float_conversion.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/output.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/str_format/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/stringify_sink.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/internal/utf8.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/match.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/numbers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/str_cat.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/str_replace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/str_split.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/string_view.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/strings/substitute.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/strings/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0a0e1930d
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-synchronization)
+target_compile_options(abseil-cpp-tstring-y_absl-synchronization PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-synchronization PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-synchronization PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-debugging
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-strings
+ abseil-cpp-tstring-y_absl-time
+)
+target_sources(abseil-cpp-tstring-y_absl-synchronization PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/barrier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/blocking_counter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/create_thread_identity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/futex_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/graphcycles.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/kernel_timeout.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/per_thread_sem.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/pthread_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/sem_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/stdcpp_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/waiter_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/internal/win32_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/mutex.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/notification.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/synchronization/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e46d70dd3e
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-time)
+target_compile_options(abseil-cpp-tstring-y_absl-time PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-time PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-time PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-numeric
+ abseil-cpp-tstring-y_absl-strings
+)
+target_sources(abseil-cpp-tstring-y_absl-time PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/civil_time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/clock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/duration.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/civil_time_detail.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_fixed.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_if.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_libc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_lookup.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/time_zone_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/internal/cctz/src/zone_info_source.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/time/time.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/time/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dc048c9436
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-types)
+target_compile_options(abseil-cpp-tstring-y_absl-types PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-tstring-y_absl-types PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring
+)
+target_link_libraries(abseil-cpp-tstring-y_absl-types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-tstring-y_absl-base
+ abseil-cpp-tstring-y_absl-memory
+)
+target_sources(abseil-cpp-tstring-y_absl-types PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/types/bad_any_cast.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/types/bad_optional_access.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp-tstring/y_absl/types/bad_variant_access.cc
+)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5ff3f433a
--- /dev/null
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-tstring-y_absl-utility INTERFACE)
diff --git a/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt b/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp-tstring/y_absl/utility/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..74ef613f08
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(absl)
+
+add_library(contrib-restricted-abseil-cpp INTERFACE)
+target_link_libraries(contrib-restricted-abseil-cpp INTERFACE
+ abseil-cpp-absl-algorithm
+ abseil-cpp-absl-base
+ abseil-cpp-absl-container
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-flags
+ abseil-cpp-absl-functional
+ abseil-cpp-absl-hash
+ abseil-cpp-absl-log
+ abseil-cpp-absl-memory
+ abseil-cpp-absl-meta
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-profiling
+ abseil-cpp-absl-random
+ abseil-cpp-absl-status
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ abseil-cpp-absl-time
+ abseil-cpp-absl-types
+ abseil-cpp-absl-utility
+)
diff --git a/contrib/restricted/abseil-cpp/CMakeLists.txt b/contrib/restricted/abseil-cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..535abc7c56
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-algorithm INTERFACE)
diff --git a/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/algorithm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e0cf9494d
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-base)
+target_compile_options(abseil-cpp-absl-base PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-base PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-base PUBLIC
+ contrib-libs-cxxsupp
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-absl-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/cycleclock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/low_level_alloc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/raw_logging.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/scoped_set_env.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/spinlock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/spinlock_wait.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/strerror.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/sysinfo.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/thread_identity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/throw_delegate.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/base/log_severity.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c40414820f
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/container/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-container)
+target_compile_options(abseil-cpp-absl-container PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-container PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-container PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-hash
+ abseil-cpp-absl-memory
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-profiling
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ abseil-cpp-absl-time
+ abseil-cpp-absl-types
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-absl-container PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/container/internal/hashtablez_sampler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/container/internal/raw_hash_set.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/container/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6247272d90
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-debugging)
+target_compile_options(abseil-cpp-absl-debugging PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-debugging PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-debugging PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ cpp-sanitizer-include
+)
+target_sources(abseil-cpp-absl-debugging PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/failure_signal_handler.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/internal/address_is_readable.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/internal/demangle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/internal/elf_mem_image.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/internal/examine_stack.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/internal/vdso_support.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/leak_check.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/stacktrace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/debugging/symbolize.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/debugging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..51a0971139
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-flags)
+target_compile_options(abseil-cpp-absl-flags PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-flags PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-flags PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-container
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-hash
+ abseil-cpp-absl-memory
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-profiling
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ abseil-cpp-absl-time
+ abseil-cpp-absl-types
+)
+target_sources(abseil-cpp-absl-flags PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/program_name.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/usage.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/marshalling.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/parse.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/reflection.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/usage.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/usage_config.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e73fa82ef7
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-functional INTERFACE)
diff --git a/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/functional/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bb7bb34def
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-hash)
+target_compile_options(abseil-cpp-absl-hash PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-hash PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-hash PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-types
+)
+target_sources(abseil-cpp-absl-hash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/hash/internal/city.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/hash/internal/hash.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/hash/internal/low_level_hash.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/hash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c2793a97ea
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-log)
+target_compile_options(abseil-cpp-absl-log PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-log PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-log PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-container
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-flags
+ abseil-cpp-absl-hash
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-profiling
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ abseil-cpp-absl-time
+ abseil-cpp-absl-types
+)
+target_sources(abseil-cpp-absl-log PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/die_if_null.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/flags.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/globals.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3235ac4ba5
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-memory INTERFACE)
+target_link_libraries(abseil-cpp-absl-memory INTERFACE
+ abseil-cpp-absl-meta
+)
diff --git a/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/memory/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cba7d55611
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-meta INTERFACE)
+target_link_libraries(abseil-cpp-absl-meta INTERFACE
+ abseil-cpp-absl-base
+)
diff --git a/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/meta/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..82fe8b2770
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-numeric)
+target_compile_options(abseil-cpp-absl-numeric PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-numeric PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-numeric PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(abseil-cpp-absl-numeric PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/numeric/int128.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/numeric/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..15c4b76f67
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-profiling)
+target_compile_options(abseil-cpp-absl-profiling PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-profiling PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-profiling PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(abseil-cpp-absl-profiling PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/profiling/internal/exponential_biased.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/profiling/internal/periodic_sampler.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/profiling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..324203b94a
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/random/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-random)
+target_compile_options(abseil-cpp-absl-random PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-random PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-random PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-types
+)
+target_sources(abseil-cpp-absl-random PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/discrete_distribution.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/gaussian_distribution.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/chi_square.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/distribution_test_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/pool_urbg.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/randen.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/randen_detect.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/randen_hwaes.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/randen_round_keys.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/randen_slow.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/internal/seed_material.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/seed_gen_exception.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/random/seed_sequences.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/random/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..82c6e43c91
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-status)
+target_compile_options(abseil-cpp-absl-status PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-status PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-status PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-profiling
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-synchronization
+ abseil-cpp-absl-time
+ abseil-cpp-absl-types
+)
+target_sources(abseil-cpp-absl-status PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e3aa400b95
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-strings)
+target_compile_options(abseil-cpp-absl-strings PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-strings PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-strings PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-numeric
+)
+target_sources(abseil-cpp-absl-strings PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/crc32c.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/cpu_detect.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/ascii.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/charconv.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/cord.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/cord_analysis.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/cord_buffer.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/escaping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/charconv_bigint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/charconv_parse.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_sample_token.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/escaping.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/memutil.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/ostringstream.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/arg.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/bind.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/extension.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/output.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/str_format/parser.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/stringify_sink.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/utf8.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/match.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/numbers.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/str_cat.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/str_replace.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/str_split.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/string_view.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/substitute.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e48272a66
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-synchronization)
+target_compile_options(abseil-cpp-absl-synchronization PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-synchronization PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-synchronization PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-debugging
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-strings
+ abseil-cpp-absl-time
+)
+target_sources(abseil-cpp-absl-synchronization PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/barrier.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/blocking_counter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/futex_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/graphcycles.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/sem_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/waiter_base.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/internal/win32_waiter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/mutex.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/synchronization/notification.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/synchronization/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af147aa171
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/time/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-time)
+target_compile_options(abseil-cpp-absl-time PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-time PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-time PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-numeric
+ abseil-cpp-absl-strings
+)
+target_sources(abseil-cpp-absl-time PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/civil_time.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/clock.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/duration.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/time/time.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/time/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9c24497045
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-types)
+target_compile_options(abseil-cpp-absl-types PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(abseil-cpp-absl-types PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(abseil-cpp-absl-types PUBLIC
+ contrib-libs-cxxsupp
+ abseil-cpp-absl-base
+ abseil-cpp-absl-memory
+)
+target_sources(abseil-cpp-absl-types PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/types/bad_any_cast.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/types/bad_optional_access.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/types/bad_variant_access.cc
+)
diff --git a/contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a2f021177a
--- /dev/null
+++ b/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(abseil-cpp-absl-utility INTERFACE)
diff --git a/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt b/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt
+++ b/contrib/restricted/abseil-cpp/absl/utility/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6206412f64
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-cal)
+target_compile_options(restricted-aws-aws-c-cal PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DHAVE_SYSCONF
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-cal PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/include
+)
+target_link_libraries(restricted-aws-aws-c-cal PUBLIC
+ contrib-libs-openssl
+ restricted-aws-aws-c-common
+)
+target_link_options(restricted-aws-aws-c-cal INTERFACE
+ -framework
+ Security
+)
+target_sources(restricted-aws-aws-c-cal PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/cal.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/der.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/ecc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/symmetric_cipher.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_aes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_md5.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_platform_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_sha1.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/commoncrypto_sha256.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/securityframework_ecc.c
+)
diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/aws-c-common/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-c-common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..673acade92
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-common)
+target_compile_options(restricted-aws-aws-c-common PRIVATE
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_PTHREAD_SETNAME_TAKES_2ARGS
+ -DCJSON_HIDE_SYMBOLS
+ -DHAVE_SYSCONF
+ -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_NONE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-common PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/generated/include
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/include
+)
+target_link_options(restricted-aws-aws-c-common INTERFACE
+ -framework
+ CoreFoundation
+)
+target_sources(restricted-aws-aws-c-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/allocator.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/allocator_sba.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/array_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/assert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/bus.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/byte_buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/codegen.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/command_line_parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/common.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/condition_variable.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/date_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/device_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/encoding.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/error.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/external/cJSON.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/fifo_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/hash_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/json.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/lifo_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/linked_hash_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_channel.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_formatter.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_writer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/logging.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/lru_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/math.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/memtrace.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/clock.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/condition_variable.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/device_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/environment.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/mutex.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/process.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/rw_lock.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/system_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/thread.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/time.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/priority_queue.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/process_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/promise.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/ref_count.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/ring_buffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/statistics.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/string.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/task_scheduler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/thread_scheduler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/thread_shared.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/uri.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/uuid.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/xml_parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/arch/arm/asm/cpuid.c
+)
diff --git a/contrib/restricted/aws/aws-c-common/CMakeLists.txt b/contrib/restricted/aws/aws-c-common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/aws-c-common/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7f9cd17a6
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-event-stream)
+target_compile_options(restricted-aws-aws-c-event-stream PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_USE_EPOLL
+ -DHAVE_SYSCONF
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_FEATURES_AVAILABLE
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-event-stream PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/include
+)
+target_link_libraries(restricted-aws-aws-c-event-stream PUBLIC
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-io
+ restricted-aws-aws-checksums
+)
+target_sources(restricted-aws-aws-c-event-stream PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc_client.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc_server.c
+)
diff --git a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/aws-c-io/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-c-io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..64d2a9dee3
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-io)
+target_compile_options(restricted-aws-aws-c-io PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_USE_EPOLL
+ -DHAVE_SYSCONF
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_FEATURES_AVAILABLE
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_RC4
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N_STACKTRACE
+ -DS2N___RESTRICT__SUPPORTED
+ -DUSE_S2N
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-io PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/include
+)
+target_link_libraries(restricted-aws-aws-c-io PUBLIC
+ restricted-aws-aws-c-cal
+ restricted-aws-aws-c-common
+ restricted-aws-s2n
+)
+target_sources(restricted-aws-aws-c-io PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/alpn_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/channel.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/channel_bootstrap.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/event_loop.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/exponential_backoff_retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/host_resolver.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/message_pool.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pem_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pkcs11_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pkcs11_tls_op_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pki_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/host_resolver.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/pipe.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/shared_library.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/socket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/s2n/s2n_tls_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/socket_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/standard_retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/statistics.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/tls_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/tls_channel_handler_shared.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/bsd/kqueue_event_loop.c
+)
diff --git a/contrib/restricted/aws/aws-c-io/CMakeLists.txt b/contrib/restricted/aws/aws-c-io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/aws-c-io/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/aws-checksums/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-checksums/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7805ff1e2
--- /dev/null
+++ b/contrib/restricted/aws/aws-checksums/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-checksums)
+target_compile_options(restricted-aws-aws-checksums PRIVATE
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DHAVE_SYSCONF
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-checksums PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/include
+)
+target_link_libraries(restricted-aws-aws-checksums PUBLIC
+ restricted-aws-aws-c-common
+)
+target_sources(restricted-aws-aws-checksums PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/crc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/crc_sw.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/intel/asm/crc32c_sse42_asm.c
+)
diff --git a/contrib/restricted/aws/aws-checksums/CMakeLists.txt b/contrib/restricted/aws/aws-checksums/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/aws-checksums/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-checksums/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/aws/s2n/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/s2n/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be6c3f8c45
--- /dev/null
+++ b/contrib/restricted/aws/s2n/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,218 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-s2n)
+target_compile_options(restricted-aws-s2n PRIVATE
+ -DS2N_ATOMIC_SUPPORTED
+ -DS2N_CLOEXEC_SUPPORTED
+ -DS2N_CLOEXEC_XOPEN_SUPPORTED
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_DIAGNOSTICS_POP_SUPPORTED
+ -DS2N_DIAGNOSTICS_PUSH_SUPPORTED
+ -DS2N_EXECINFO_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_KYBER512R3_AVX2_BMI2_SUPPORTED
+ -DS2N_KYBER512R3_M256_INTRINSICS_SUPPORTED
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_RC4
+ -DS2N_LIBCRYPTO_SUPPORTS_FLAG_NO_CHECK_TIME
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N___RESTRICT__SUPPORTED
+ -DS2N_STACKTRACE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-s2n PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/api
+)
+target_link_libraries(restricted-aws-s2n PUBLIC
+ contrib-libs-openssl
+)
+target_sources(restricted-aws-s2n PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_aes_gcm.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_chacha20_poly1305.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_3des.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_aes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_certificate.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cipher.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_composite_cipher_aes_sha.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_crypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_dhe.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_drbg.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecc_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecdsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp_signing.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_fips.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hkdf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_libcrypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_locking.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_openssl_x509.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_pss.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_signing.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_sequence.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_rc4.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_tls13_keys.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/error/s2n_errno.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_cbd.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_fips202.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_indcpa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_ntt.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_poly.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_polyvec.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_reduce.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_symmetric-shake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_kyber_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_base64.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_network_order.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_pem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_text.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status_response.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_alpn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cert_status_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cookie.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_ems.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_max_frag_len.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_pq_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_renegotiation_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_sct_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_server_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_groups.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_ec_point_format.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type_lists.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_npn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_nst_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_psk_key_exchange_modes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_quic_transport_params.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_alpn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cert_status_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cookie.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_ems.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_max_fragment_length.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_renegotiation_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_sct_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_server_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_aead.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_alerts.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_async_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_auth_selection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_change_cipher_spec.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_suites.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_finished.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_key_exchange.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_config.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_connection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crl.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ecc_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_encrypted_extensions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_establish_session.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_fingerprint.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_hashes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_transcript.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_type.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kex.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_update.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ktls.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ktls_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_next_protocol.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ocsp_stapling.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_post_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_prf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_protocol_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_quic_support.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_aead.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_composite.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_write.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_recv.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_renegotiate.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_resume.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_security_policies.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_send.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_done.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_extensions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_finished.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello_retry.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_key_exchange.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_new_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_shutdown.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_scheme.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_certificate_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_key_schedule.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_secrets.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_x509_validator.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_array.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_atomic.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_blob.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_ensure.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_fork_detection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_map.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_mem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_result.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_rfc5952.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_safety.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_set.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_socket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_timer.c
+)
diff --git a/contrib/restricted/aws/s2n/CMakeLists.txt b/contrib/restricted/aws/s2n/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/aws/s2n/CMakeLists.txt
+++ b/contrib/restricted/aws/s2n/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c522e3b862
--- /dev/null
+++ b/contrib/restricted/boost/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(algorithm)
+add_subdirectory(align)
+add_subdirectory(any)
+add_subdirectory(array)
+add_subdirectory(asio)
+add_subdirectory(assert)
+add_subdirectory(atomic)
+add_subdirectory(bind)
+add_subdirectory(chrono)
+add_subdirectory(concept_check)
+add_subdirectory(config)
+add_subdirectory(container)
+add_subdirectory(container_hash)
+add_subdirectory(context)
+add_subdirectory(conversion)
+add_subdirectory(core)
+add_subdirectory(coroutine)
+add_subdirectory(crc)
+add_subdirectory(date_time)
+add_subdirectory(describe)
+add_subdirectory(detail)
+add_subdirectory(dynamic_bitset)
+add_subdirectory(exception)
+add_subdirectory(format)
+add_subdirectory(function)
+add_subdirectory(function_types)
+add_subdirectory(functional)
+add_subdirectory(fusion)
+add_subdirectory(integer)
+add_subdirectory(interprocess)
+add_subdirectory(intrusive)
+add_subdirectory(io)
+add_subdirectory(iostreams)
+add_subdirectory(iterator)
+add_subdirectory(lexical_cast)
+add_subdirectory(locale)
+add_subdirectory(math)
+add_subdirectory(move)
+add_subdirectory(mp11)
+add_subdirectory(mpl)
+add_subdirectory(multi_index)
+add_subdirectory(numeric_conversion)
+add_subdirectory(optional)
+add_subdirectory(pool)
+add_subdirectory(predef)
+add_subdirectory(preprocessor)
+add_subdirectory(program_options)
+add_subdirectory(random)
+add_subdirectory(range)
+add_subdirectory(ratio)
+add_subdirectory(rational)
+add_subdirectory(regex)
+add_subdirectory(smart_ptr)
+add_subdirectory(static_assert)
+add_subdirectory(system)
+add_subdirectory(thread)
+add_subdirectory(throw_exception)
+add_subdirectory(tokenizer)
+add_subdirectory(tuple)
+add_subdirectory(type_index)
+add_subdirectory(type_traits)
+add_subdirectory(typeof)
+add_subdirectory(unordered)
+add_subdirectory(utility)
+add_subdirectory(variant2)
+add_subdirectory(winapi)
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/algorithm/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/algorithm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7601e49d0f
--- /dev/null
+++ b/contrib/restricted/boost/algorithm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-algorithm INTERFACE)
+target_include_directories(restricted-boost-algorithm INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/algorithm/include
+)
+target_link_libraries(restricted-boost-algorithm INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-array
+ restricted-boost-assert
+ restricted-boost-bind
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-exception
+ restricted-boost-function
+ restricted-boost-iterator
+ restricted-boost-mpl
+ restricted-boost-range
+ restricted-boost-regex
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-tuple
+ restricted-boost-type_traits
+ restricted-boost-unordered
+)
diff --git a/contrib/restricted/boost/algorithm/CMakeLists.txt b/contrib/restricted/boost/algorithm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/algorithm/CMakeLists.txt
+++ b/contrib/restricted/boost/algorithm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/align/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/align/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4f255a0c6
--- /dev/null
+++ b/contrib/restricted/boost/align/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-align INTERFACE)
+target_include_directories(restricted-boost-align INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/align/include
+)
+target_link_libraries(restricted-boost-align INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+)
diff --git a/contrib/restricted/boost/align/CMakeLists.txt b/contrib/restricted/boost/align/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/align/CMakeLists.txt
+++ b/contrib/restricted/boost/align/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/any/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/any/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..946a109665
--- /dev/null
+++ b/contrib/restricted/boost/any/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-any INTERFACE)
+target_include_directories(restricted-boost-any INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/any/include
+)
+target_link_libraries(restricted-boost-any INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_index
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/any/CMakeLists.txt b/contrib/restricted/boost/any/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/any/CMakeLists.txt
+++ b/contrib/restricted/boost/any/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/array/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/array/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f640cbf516
--- /dev/null
+++ b/contrib/restricted/boost/array/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-array INTERFACE)
+target_include_directories(restricted-boost-array INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/array/include
+)
+target_link_libraries(restricted-boost-array INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+)
diff --git a/contrib/restricted/boost/array/CMakeLists.txt b/contrib/restricted/boost/array/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/array/CMakeLists.txt
+++ b/contrib/restricted/boost/array/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/asio/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/asio/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..46c92a2ae3
--- /dev/null
+++ b/contrib/restricted/boost/asio/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-asio INTERFACE)
+target_include_directories(restricted-boost-asio INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/asio/include
+)
+target_link_libraries(restricted-boost-asio INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ restricted-boost-array
+ restricted-boost-assert
+ restricted-boost-bind
+ restricted-boost-chrono
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-coroutine
+ restricted-boost-date_time
+ restricted-boost-function
+ restricted-boost-regex
+ restricted-boost-smart_ptr
+ restricted-boost-system
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/asio/CMakeLists.txt b/contrib/restricted/boost/asio/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/asio/CMakeLists.txt
+++ b/contrib/restricted/boost/asio/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/assert/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/assert/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ba173db4f
--- /dev/null
+++ b/contrib/restricted/boost/assert/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-assert INTERFACE)
+target_include_directories(restricted-boost-assert INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/assert/include
+)
+target_link_libraries(restricted-boost-assert INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/assert/CMakeLists.txt b/contrib/restricted/boost/assert/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/assert/CMakeLists.txt
+++ b/contrib/restricted/boost/assert/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/atomic/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/atomic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5fe2fae98
--- /dev/null
+++ b/contrib/restricted/boost/atomic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-atomic)
+target_compile_options(restricted-boost-atomic PRIVATE
+ -DBOOST_ATOMIC_SOURCE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-atomic PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/atomic/include
+)
+target_include_directories(restricted-boost-atomic PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/atomic/src
+)
+target_link_libraries(restricted-boost-atomic PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-align
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-predef
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+ restricted-boost-winapi
+)
+target_sources(restricted-boost-atomic PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/atomic/src/find_address_sse2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/atomic/src/lock_pool.cpp
+)
diff --git a/contrib/restricted/boost/atomic/CMakeLists.txt b/contrib/restricted/boost/atomic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/atomic/CMakeLists.txt
+++ b/contrib/restricted/boost/atomic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/bind/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/bind/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..88c5f9bf7b
--- /dev/null
+++ b/contrib/restricted/boost/bind/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-bind INTERFACE)
+target_include_directories(restricted-boost-bind INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/bind/include
+)
+target_link_libraries(restricted-boost-bind INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+)
diff --git a/contrib/restricted/boost/bind/CMakeLists.txt b/contrib/restricted/boost/bind/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/bind/CMakeLists.txt
+++ b/contrib/restricted/boost/bind/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/chrono/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/chrono/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af74091cab
--- /dev/null
+++ b/contrib/restricted/boost/chrono/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-chrono)
+target_compile_options(restricted-boost-chrono PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-chrono PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/chrono/include
+)
+target_link_libraries(restricted-boost-chrono PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-move
+ restricted-boost-mpl
+ restricted-boost-predef
+ restricted-boost-ratio
+ restricted-boost-static_assert
+ restricted-boost-system
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-typeof
+ restricted-boost-utility
+ restricted-boost-winapi
+)
+target_sources(restricted-boost-chrono PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/chrono/src/chrono.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/chrono/src/process_cpu_clocks.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/chrono/src/thread_clock.cpp
+)
diff --git a/contrib/restricted/boost/chrono/CMakeLists.txt b/contrib/restricted/boost/chrono/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/chrono/CMakeLists.txt
+++ b/contrib/restricted/boost/chrono/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/concept_check/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/concept_check/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4bea4830c4
--- /dev/null
+++ b/contrib/restricted/boost/concept_check/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-concept_check INTERFACE)
+target_include_directories(restricted-boost-concept_check INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/concept_check/include
+)
+target_link_libraries(restricted-boost-concept_check INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/concept_check/CMakeLists.txt b/contrib/restricted/boost/concept_check/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/concept_check/CMakeLists.txt
+++ b/contrib/restricted/boost/concept_check/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/config/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b3623a130d
--- /dev/null
+++ b/contrib/restricted/boost/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-config INTERFACE)
+target_compile_options(restricted-boost-config INTERFACE
+ -DBOOST_ALL_NO_LIB
+)
+target_include_directories(restricted-boost-config INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/config/include
+)
+target_link_libraries(restricted-boost-config INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/restricted/boost/config/CMakeLists.txt b/contrib/restricted/boost/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/config/CMakeLists.txt
+++ b/contrib/restricted/boost/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/container/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/container/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..43c88cbe69
--- /dev/null
+++ b/contrib/restricted/boost/container/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-container)
+target_compile_options(restricted-boost-container PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-container PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/include
+)
+target_link_libraries(restricted-boost-container PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-intrusive
+ restricted-boost-move
+ restricted-boost-static_assert
+)
+target_sources(restricted-boost-container PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/alloc_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/dlmalloc.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/global_resource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/monotonic_buffer_resource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/pool_resource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/synchronized_pool_resource.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container/src/unsynchronized_pool_resource.cpp
+)
diff --git a/contrib/restricted/boost/container/CMakeLists.txt b/contrib/restricted/boost/container/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/container/CMakeLists.txt
+++ b/contrib/restricted/boost/container/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f6ba33a6e9
--- /dev/null
+++ b/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-container_hash INTERFACE)
+target_include_directories(restricted-boost-container_hash INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/container_hash/include
+)
+target_link_libraries(restricted-boost-container_hash INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-describe
+ restricted-boost-mp11
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/container_hash/CMakeLists.txt b/contrib/restricted/boost/container_hash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/container_hash/CMakeLists.txt
+++ b/contrib/restricted/boost/container_hash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/context/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/context/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fa61dee9a2
--- /dev/null
+++ b/contrib/restricted/boost/context/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(fcontext_impl)
+add_subdirectory(impl_common)
diff --git a/contrib/restricted/boost/context/CMakeLists.txt b/contrib/restricted/boost/context/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/context/CMakeLists.txt
+++ b/contrib/restricted/boost/context/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f4b43c9504
--- /dev/null
+++ b/contrib/restricted/boost/context/fcontext_impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(boost-context-fcontext_impl)
+target_compile_options(boost-context-fcontext_impl PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(boost-context-fcontext_impl PUBLIC
+ contrib-libs-cxxsupp
+ boost-context-impl_common
+)
+target_sources(boost-context-fcontext_impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/context/src/asm/jump_arm64_aapcs_macho_gas.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/context/src/asm/make_arm64_aapcs_macho_gas.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/context/src/asm/ontop_arm64_aapcs_macho_gas.S
+)
diff --git a/contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt b/contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt
+++ b/contrib/restricted/boost/context/fcontext_impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/context/impl_common/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/context/impl_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..100cd01a5d
--- /dev/null
+++ b/contrib/restricted/boost/context/impl_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(boost-context-impl_common)
+target_compile_options(boost-context-impl_common PRIVATE
+ -DBOOST_CONTEXT_SOURCE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(boost-context-impl_common PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/context/include
+)
+target_link_libraries(boost-context-impl_common PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-mp11
+ restricted-boost-pool
+ restricted-boost-predef
+ restricted-boost-smart_ptr
+)
+target_sources(boost-context-impl_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/context/src/posix/stack_traits.cpp
+)
diff --git a/contrib/restricted/boost/context/impl_common/CMakeLists.txt b/contrib/restricted/boost/context/impl_common/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/context/impl_common/CMakeLists.txt
+++ b/contrib/restricted/boost/context/impl_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/context/src/asm/jump_arm64_aapcs_macho_gas.S b/contrib/restricted/boost/context/src/asm/jump_arm64_aapcs_macho_gas.S
new file mode 100644
index 0000000000..31738f7453
--- /dev/null
+++ b/contrib/restricted/boost/context/src/asm/jump_arm64_aapcs_macho_gas.S
@@ -0,0 +1,109 @@
+/*
+ Copyright Edward Nevill + Oliver Kowalke 2015
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+*/
+/*******************************************************
+ * *
+ * ------------------------------------------------- *
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
+ * ------------------------------------------------- *
+ * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| *
+ * ------------------------------------------------- *
+ * | d8 | d9 | d10 | d11 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
+ * ------------------------------------------------- *
+ * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| *
+ * ------------------------------------------------- *
+ * | d12 | d13 | d14 | d15 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
+ * ------------------------------------------------- *
+ * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| *
+ * ------------------------------------------------- *
+ * | x19 | x20 | x21 | x22 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
+ * ------------------------------------------------- *
+ * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| *
+ * ------------------------------------------------- *
+ * | x23 | x24 | x25 | x26 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | *
+ * ------------------------------------------------- *
+ * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| *
+ * ------------------------------------------------- *
+ * | x27 | x28 | FP | LR | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 40 | 41 | 42 | 43 | | | *
+ * ------------------------------------------------- *
+ * | 0xa0| 0xa4| 0xa8| 0xac| | | *
+ * ------------------------------------------------- *
+ * | PC | align | | | *
+ * ------------------------------------------------- *
+ * *
+ *******************************************************/
+
+.text
+.globl _jump_fcontext
+.balign 16
+_jump_fcontext:
+ ; prepare stack for GP + FPU
+ sub sp, sp, #0xb0
+
+ ; save d8 - d15
+ stp d8, d9, [sp, #0x00]
+ stp d10, d11, [sp, #0x10]
+ stp d12, d13, [sp, #0x20]
+ stp d14, d15, [sp, #0x30]
+
+ ; save x19-x30
+ stp x19, x20, [sp, #0x40]
+ stp x21, x22, [sp, #0x50]
+ stp x23, x24, [sp, #0x60]
+ stp x25, x26, [sp, #0x70]
+ stp x27, x28, [sp, #0x80]
+ stp fp, lr, [sp, #0x90]
+
+ ; save LR as PC
+ str lr, [sp, #0xa0]
+
+ ; store RSP (pointing to context-data) in X0
+ mov x4, sp
+
+ ; restore RSP (pointing to context-data) from X1
+ mov sp, x0
+
+ ; load d8 - d15
+ ldp d8, d9, [sp, #0x00]
+ ldp d10, d11, [sp, #0x10]
+ ldp d12, d13, [sp, #0x20]
+ ldp d14, d15, [sp, #0x30]
+
+ ; load x19-x30
+ ldp x19, x20, [sp, #0x40]
+ ldp x21, x22, [sp, #0x50]
+ ldp x23, x24, [sp, #0x60]
+ ldp x25, x26, [sp, #0x70]
+ ldp x27, x28, [sp, #0x80]
+ ldp fp, lr, [sp, #0x90]
+
+ ; return transfer_t from jump
+ ; pass transfer_t as first arg in context function
+ ; X0 == FCTX, X1 == DATA
+ mov x0, x4
+
+ ; load pc
+ ldr x4, [sp, #0xa0]
+
+ ; restore stack from GP + FPU
+ add sp, sp, #0xb0
+
+ ret x4
diff --git a/contrib/restricted/boost/context/src/asm/make_arm64_aapcs_macho_gas.S b/contrib/restricted/boost/context/src/asm/make_arm64_aapcs_macho_gas.S
new file mode 100644
index 0000000000..b30b1e3e5b
--- /dev/null
+++ b/contrib/restricted/boost/context/src/asm/make_arm64_aapcs_macho_gas.S
@@ -0,0 +1,83 @@
+/*
+ Copyright Edward Nevill + Oliver Kowalke 2015
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+*/
+/*******************************************************
+ * *
+ * ------------------------------------------------- *
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
+ * ------------------------------------------------- *
+ * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| *
+ * ------------------------------------------------- *
+ * | d8 | d9 | d10 | d11 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
+ * ------------------------------------------------- *
+ * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| *
+ * ------------------------------------------------- *
+ * | d12 | d13 | d14 | d15 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
+ * ------------------------------------------------- *
+ * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| *
+ * ------------------------------------------------- *
+ * | x19 | x20 | x21 | x22 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
+ * ------------------------------------------------- *
+ * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| *
+ * ------------------------------------------------- *
+ * | x23 | x24 | x25 | x26 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | *
+ * ------------------------------------------------- *
+ * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| *
+ * ------------------------------------------------- *
+ * | x27 | x28 | FP | LR | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 40 | 41 | 42 | 43 | | | *
+ * ------------------------------------------------- *
+ * | 0xa0| 0xa4| 0xa8| 0xac| | | *
+ * ------------------------------------------------- *
+ * | PC | align | | | *
+ * ------------------------------------------------- *
+ * *
+ *******************************************************/
+
+.text
+.globl _make_fcontext
+.balign 16
+
+_make_fcontext:
+ ; shift address in x0 (allocated stack) to lower 16 byte boundary
+ and x0, x0, ~0xF
+
+ ; reserve space for context-data on context-stack
+ sub x0, x0, #0xb0
+
+ ; third arg of make_fcontext() == address of context-function
+ ; store address as a PC to jump in
+ str x2, [x0, #0xa0]
+
+ adr x1, finish
+
+ ; save address of finish as return-address for context-function
+ ; will be entered after context-function returns (LR register)
+ str x1, [x0, #0x98]
+
+ ret lr ; return pointer to context-data (x0)
+
+finish:
+ ; exit code is zero
+ mov x0, #0
+ ; exit application
+ bl __exit
+
+
diff --git a/contrib/restricted/boost/context/src/asm/ontop_arm64_aapcs_macho_gas.S b/contrib/restricted/boost/context/src/asm/ontop_arm64_aapcs_macho_gas.S
new file mode 100644
index 0000000000..a387d06dd2
--- /dev/null
+++ b/contrib/restricted/boost/context/src/asm/ontop_arm64_aapcs_macho_gas.S
@@ -0,0 +1,108 @@
+/*
+ Copyright Edward Nevill + Oliver Kowalke 2015
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+*/
+/*******************************************************
+ * *
+ * ------------------------------------------------- *
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
+ * ------------------------------------------------- *
+ * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| *
+ * ------------------------------------------------- *
+ * | d8 | d9 | d10 | d11 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
+ * ------------------------------------------------- *
+ * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| *
+ * ------------------------------------------------- *
+ * | d12 | d13 | d14 | d15 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
+ * ------------------------------------------------- *
+ * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| *
+ * ------------------------------------------------- *
+ * | x19 | x20 | x21 | x22 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
+ * ------------------------------------------------- *
+ * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| *
+ * ------------------------------------------------- *
+ * | x23 | x24 | x25 | x26 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | *
+ * ------------------------------------------------- *
+ * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| *
+ * ------------------------------------------------- *
+ * | x27 | x28 | FP | LR | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 40 | 41 | 42 | 43 | | | *
+ * ------------------------------------------------- *
+ * | 0xa0| 0xa4| 0xa8| 0xac| | | *
+ * ------------------------------------------------- *
+ * | PC | align | | | *
+ * ------------------------------------------------- *
+ * *
+ *******************************************************/
+
+.text
+.global _ontop_fcontext
+.balign 16
+_ontop_fcontext:
+ ; prepare stack for GP + FPU
+ sub sp, sp, #0xb0
+
+ ; save d8 - d15
+ stp d8, d9, [sp, #0x00]
+ stp d10, d11, [sp, #0x10]
+ stp d12, d13, [sp, #0x20]
+ stp d14, d15, [sp, #0x30]
+
+ ; save x19-x30
+ stp x19, x20, [sp, #0x40]
+ stp x21, x22, [sp, #0x50]
+ stp x23, x24, [sp, #0x60]
+ stp x25, x26, [sp, #0x70]
+ stp x27, x28, [sp, #0x80]
+ stp x29, x30, [sp, #0x90]
+
+ ; save LR as PC
+ str x30, [sp, #0xa0]
+
+ ; store RSP (pointing to context-data) in X5
+ mov x4, sp
+
+ ; restore RSP (pointing to context-data) from X1
+ mov sp, x0
+
+ ; load d8 - d15
+ ldp d8, d9, [sp, #0x00]
+ ldp d10, d11, [sp, #0x10]
+ ldp d12, d13, [sp, #0x20]
+ ldp d14, d15, [sp, #0x30]
+
+ ; load x19-x30
+ ldp x19, x20, [sp, #0x40]
+ ldp x21, x22, [sp, #0x50]
+ ldp x23, x24, [sp, #0x60]
+ ldp x25, x26, [sp, #0x70]
+ ldp x27, x28, [sp, #0x80]
+ ldp x29, x30, [sp, #0x90]
+
+ ; return transfer_t from jump
+ ; pass transfer_t as first arg in context function
+ ; X0 == FCTX, X1 == DATA
+ mov x0, x4
+
+ ; skip pc
+ ; restore stack from GP + FPU
+ add sp, sp, #0xb0
+
+ ; jump to ontop-function
+ ret x2
diff --git a/contrib/restricted/boost/conversion/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/conversion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1a53fd123
--- /dev/null
+++ b/contrib/restricted/boost/conversion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-conversion INTERFACE)
+target_include_directories(restricted-boost-conversion INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/conversion/include
+)
+target_link_libraries(restricted-boost-conversion INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-smart_ptr
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-typeof
+)
diff --git a/contrib/restricted/boost/conversion/CMakeLists.txt b/contrib/restricted/boost/conversion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/conversion/CMakeLists.txt
+++ b/contrib/restricted/boost/conversion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/core/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8b4b0f15da
--- /dev/null
+++ b/contrib/restricted/boost/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-core INTERFACE)
+target_include_directories(restricted-boost-core INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/core/include
+)
+target_link_libraries(restricted-boost-core INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+)
diff --git a/contrib/restricted/boost/core/CMakeLists.txt b/contrib/restricted/boost/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/core/CMakeLists.txt
+++ b/contrib/restricted/boost/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/coroutine/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/coroutine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..078b319b34
--- /dev/null
+++ b/contrib/restricted/boost/coroutine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-coroutine)
+target_compile_options(restricted-boost-coroutine PUBLIC
+ -DBOOST_COROUTINES_NO_DEPRECATION_WARNING
+)
+target_compile_options(restricted-boost-coroutine PRIVATE
+ -DBOOST_COROUTINES_SOURCE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-coroutine PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/coroutine/include
+)
+target_link_libraries(restricted-boost-coroutine PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ boost-context-fcontext_impl
+ restricted-boost-core
+ restricted-boost-exception
+ restricted-boost-move
+ restricted-boost-system
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
+target_sources(restricted-boost-coroutine PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/coroutine/src/detail/coroutine_context.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/coroutine/src/exceptions.cpp
+)
diff --git a/contrib/restricted/boost/coroutine/CMakeLists.txt b/contrib/restricted/boost/coroutine/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/coroutine/CMakeLists.txt
+++ b/contrib/restricted/boost/coroutine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/crc/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/crc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2730ce7c01
--- /dev/null
+++ b/contrib/restricted/boost/crc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-crc INTERFACE)
+target_include_directories(restricted-boost-crc INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/crc/include
+)
+target_link_libraries(restricted-boost-crc INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-array
+ restricted-boost-config
+ restricted-boost-integer
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/crc/CMakeLists.txt b/contrib/restricted/boost/crc/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/crc/CMakeLists.txt
+++ b/contrib/restricted/boost/crc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/date_time/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/date_time/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da90148a57
--- /dev/null
+++ b/contrib/restricted/boost/date_time/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-date_time INTERFACE)
+target_include_directories(restricted-boost-date_time INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/date_time/include
+)
+target_link_libraries(restricted-boost-date_time INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-algorithm
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-io
+ restricted-boost-lexical_cast
+ restricted-boost-numeric_conversion
+ restricted-boost-range
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-tokenizer
+ restricted-boost-type_traits
+ restricted-boost-utility
+ restricted-boost-winapi
+)
diff --git a/contrib/restricted/boost/date_time/CMakeLists.txt b/contrib/restricted/boost/date_time/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/date_time/CMakeLists.txt
+++ b/contrib/restricted/boost/date_time/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/describe/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/describe/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..baad9670e4
--- /dev/null
+++ b/contrib/restricted/boost/describe/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-describe INTERFACE)
+target_include_directories(restricted-boost-describe INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/describe/include
+)
+target_link_libraries(restricted-boost-describe INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-mp11
+)
diff --git a/contrib/restricted/boost/describe/CMakeLists.txt b/contrib/restricted/boost/describe/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/describe/CMakeLists.txt
+++ b/contrib/restricted/boost/describe/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/detail/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/detail/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4100f97935
--- /dev/null
+++ b/contrib/restricted/boost/detail/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-detail INTERFACE)
+target_include_directories(restricted-boost-detail INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/detail/include
+)
+target_link_libraries(restricted-boost-detail INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/detail/CMakeLists.txt b/contrib/restricted/boost/detail/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/detail/CMakeLists.txt
+++ b/contrib/restricted/boost/detail/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8854d288e8
--- /dev/null
+++ b/contrib/restricted/boost/dynamic_bitset/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-dynamic_bitset INTERFACE)
+target_include_directories(restricted-boost-dynamic_bitset INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/dynamic_bitset/include
+)
+target_link_libraries(restricted-boost-dynamic_bitset INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-move
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+)
diff --git a/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt b/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
+++ b/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/exception/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/exception/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bd4347f03d
--- /dev/null
+++ b/contrib/restricted/boost/exception/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-exception)
+target_compile_options(restricted-boost-exception PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-exception PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/exception/include
+)
+target_link_libraries(restricted-boost-exception PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-smart_ptr
+ restricted-boost-throw_exception
+ restricted-boost-tuple
+ restricted-boost-type_traits
+)
+target_sources(restricted-boost-exception PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp
+)
diff --git a/contrib/restricted/boost/exception/CMakeLists.txt b/contrib/restricted/boost/exception/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/exception/CMakeLists.txt
+++ b/contrib/restricted/boost/exception/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/format/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/format/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..270e92cb48
--- /dev/null
+++ b/contrib/restricted/boost/format/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-format INTERFACE)
+target_include_directories(restricted-boost-format INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/format/include
+)
+target_link_libraries(restricted-boost-format INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-optional
+ restricted-boost-smart_ptr
+ restricted-boost-throw_exception
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/format/CMakeLists.txt b/contrib/restricted/boost/format/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/format/CMakeLists.txt
+++ b/contrib/restricted/boost/format/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/function/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/function/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b70e979a9a
--- /dev/null
+++ b/contrib/restricted/boost/function/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-function INTERFACE)
+target_include_directories(restricted-boost-function INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/function/include
+)
+target_link_libraries(restricted-boost-function INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-bind
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-preprocessor
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-typeof
+)
diff --git a/contrib/restricted/boost/function/CMakeLists.txt b/contrib/restricted/boost/function/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/function/CMakeLists.txt
+++ b/contrib/restricted/boost/function/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/function_types/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/function_types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2c618a189f
--- /dev/null
+++ b/contrib/restricted/boost/function_types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-function_types INTERFACE)
+target_include_directories(restricted-boost-function_types INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/function_types/include
+)
+target_link_libraries(restricted-boost-function_types INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-mpl
+ restricted-boost-preprocessor
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/function_types/CMakeLists.txt b/contrib/restricted/boost/function_types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/function_types/CMakeLists.txt
+++ b/contrib/restricted/boost/function_types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/functional/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/functional/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..239823acab
--- /dev/null
+++ b/contrib/restricted/boost/functional/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-functional INTERFACE)
+target_include_directories(restricted-boost-functional INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/functional/include
+)
+target_link_libraries(restricted-boost-functional INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-function
+ restricted-boost-function_types
+ restricted-boost-mpl
+ restricted-boost-preprocessor
+ restricted-boost-type_traits
+ restricted-boost-typeof
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/functional/CMakeLists.txt b/contrib/restricted/boost/functional/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/functional/CMakeLists.txt
+++ b/contrib/restricted/boost/functional/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/fusion/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/fusion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cee77526be
--- /dev/null
+++ b/contrib/restricted/boost/fusion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-fusion INTERFACE)
+target_include_directories(restricted-boost-fusion INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/fusion/include
+)
+target_link_libraries(restricted-boost-fusion INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-describe
+ restricted-boost-function_types
+ restricted-boost-functional
+ restricted-boost-mp11
+ restricted-boost-mpl
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-tuple
+ restricted-boost-type_traits
+ restricted-boost-typeof
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/fusion/CMakeLists.txt b/contrib/restricted/boost/fusion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/fusion/CMakeLists.txt
+++ b/contrib/restricted/boost/fusion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/integer/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/integer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b8189c5a7a
--- /dev/null
+++ b/contrib/restricted/boost/integer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-integer INTERFACE)
+target_include_directories(restricted-boost-integer INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/integer/include
+)
+target_link_libraries(restricted-boost-integer INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+)
diff --git a/contrib/restricted/boost/integer/CMakeLists.txt b/contrib/restricted/boost/integer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/integer/CMakeLists.txt
+++ b/contrib/restricted/boost/integer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/interprocess/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/interprocess/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f95f9fc6c9
--- /dev/null
+++ b/contrib/restricted/boost/interprocess/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-interprocess INTERFACE)
+target_include_directories(restricted-boost-interprocess INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/interprocess/include
+)
+target_link_libraries(restricted-boost-interprocess INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-container
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-intrusive
+ restricted-boost-move
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+ restricted-boost-unordered
+ restricted-boost-winapi
+)
diff --git a/contrib/restricted/boost/interprocess/CMakeLists.txt b/contrib/restricted/boost/interprocess/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/interprocess/CMakeLists.txt
+++ b/contrib/restricted/boost/interprocess/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/intrusive/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/intrusive/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..938feb84b3
--- /dev/null
+++ b/contrib/restricted/boost/intrusive/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-intrusive INTERFACE)
+target_include_directories(restricted-boost-intrusive INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/intrusive/include
+)
+target_link_libraries(restricted-boost-intrusive INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-move
+ restricted-boost-static_assert
+)
diff --git a/contrib/restricted/boost/intrusive/CMakeLists.txt b/contrib/restricted/boost/intrusive/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/intrusive/CMakeLists.txt
+++ b/contrib/restricted/boost/intrusive/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/io/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4aeba3ef01
--- /dev/null
+++ b/contrib/restricted/boost/io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-io INTERFACE)
+target_include_directories(restricted-boost-io INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/io/include
+)
+target_link_libraries(restricted-boost-io INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/io/CMakeLists.txt b/contrib/restricted/boost/io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/io/CMakeLists.txt
+++ b/contrib/restricted/boost/io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/iostreams/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/iostreams/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..960c8332c3
--- /dev/null
+++ b/contrib/restricted/boost/iostreams/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-iostreams)
+target_compile_options(restricted-boost-iostreams PRIVATE
+ -DBOOST_IOSTREAMS_USE_DEPRECATED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-iostreams PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/include
+)
+target_include_directories(restricted-boost-iostreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/libbz2
+ ${CMAKE_SOURCE_DIR}/contrib/libs/zstd/include
+)
+target_link_libraries(restricted-boost-iostreams PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-libbz2
+ contrib-libs-lzma
+ contrib-libs-zlib
+ contrib-libs-zstd
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-function
+ restricted-boost-integer
+ restricted-boost-iterator
+ restricted-boost-mpl
+ restricted-boost-numeric_conversion
+ restricted-boost-preprocessor
+ restricted-boost-random
+ restricted-boost-range
+ restricted-boost-regex
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
+target_sources(restricted-boost-iostreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/bzip2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/file_descriptor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/gzip.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/lzma.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/mapped_file.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/zlib.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iostreams/src/zstd.cpp
+)
diff --git a/contrib/restricted/boost/iostreams/CMakeLists.txt b/contrib/restricted/boost/iostreams/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/iostreams/CMakeLists.txt
+++ b/contrib/restricted/boost/iostreams/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..df59b473b2
--- /dev/null
+++ b/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-iterator INTERFACE)
+target_include_directories(restricted-boost-iterator INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iterator/include
+)
+target_link_libraries(restricted-boost-iterator INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-conversion
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-function_types
+ restricted-boost-fusion
+ restricted-boost-mpl
+ restricted-boost-optional
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/iterator/CMakeLists.txt b/contrib/restricted/boost/iterator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/iterator/CMakeLists.txt
+++ b/contrib/restricted/boost/iterator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c4aff4db0d
--- /dev/null
+++ b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-lexical_cast INTERFACE)
+target_include_directories(restricted-boost-lexical_cast INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/lexical_cast/include
+)
+target_link_libraries(restricted-boost-lexical_cast INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-array
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-container
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-numeric_conversion
+ restricted-boost-range
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/lexical_cast/CMakeLists.txt
+++ b/contrib/restricted/boost/lexical_cast/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/locale/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/locale/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6be36e40a8
--- /dev/null
+++ b/contrib/restricted/boost/locale/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-locale)
+target_compile_options(restricted-boost-locale PRIVATE
+ -DBOOST_LOCALE_WITH_ICU
+ -DBOOST_LOCALE_NO_WINAPI_BACKEND
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-locale PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/include
+)
+target_include_directories(restricted-boost-locale PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src
+)
+target_link_libraries(restricted-boost-locale PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-icu
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-iterator
+ restricted-boost-predef
+ restricted-boost-thread
+ restricted-boost-utility
+)
+target_sources(restricted-boost-locale PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/posix/codecvt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/posix/collate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/posix/converter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/posix/numeric.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/posix/posix_backend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/encoding/codepage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/boundary.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/codecvt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/collator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/conversion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/date_time.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/formatter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/formatters_cache.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/icu_backend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/numeric.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/icu/time_zone.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/date_time.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/format.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/formatting.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/generator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/iconv_codecvt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/ids.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/localization_backend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/message.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/shared/mo_lambda.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/std/codecvt.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/std/collate.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/std/converter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/std/numeric.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/std/std_backend.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/codecvt_converter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/default_locale.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/gregorian.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/info.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/locale/src/boost/locale/util/locale_data.cpp
+)
diff --git a/contrib/restricted/boost/locale/CMakeLists.txt b/contrib/restricted/boost/locale/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/locale/CMakeLists.txt
+++ b/contrib/restricted/boost/locale/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/math/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/math/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..71d5facb39
--- /dev/null
+++ b/contrib/restricted/boost/math/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-math INTERFACE)
+target_include_directories(restricted-boost-math INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/math/include
+)
+target_link_libraries(restricted-boost-math INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-lexical_cast
+ restricted-boost-predef
+ restricted-boost-random
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+)
diff --git a/contrib/restricted/boost/math/CMakeLists.txt b/contrib/restricted/boost/math/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/math/CMakeLists.txt
+++ b/contrib/restricted/boost/math/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/move/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/move/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60a44cf28f
--- /dev/null
+++ b/contrib/restricted/boost/move/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-move INTERFACE)
+target_include_directories(restricted-boost-move INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/move/include
+)
+target_link_libraries(restricted-boost-move INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/move/CMakeLists.txt b/contrib/restricted/boost/move/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/move/CMakeLists.txt
+++ b/contrib/restricted/boost/move/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/mp11/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/mp11/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7100a8f570
--- /dev/null
+++ b/contrib/restricted/boost/mp11/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-mp11 INTERFACE)
+target_include_directories(restricted-boost-mp11 INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/mp11/include
+)
+target_link_libraries(restricted-boost-mp11 INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/restricted/boost/mp11/CMakeLists.txt b/contrib/restricted/boost/mp11/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/mp11/CMakeLists.txt
+++ b/contrib/restricted/boost/mp11/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/mpl/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/mpl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8b161d3adf
--- /dev/null
+++ b/contrib/restricted/boost/mpl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-mpl INTERFACE)
+target_include_directories(restricted-boost-mpl INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/mpl/include
+)
+target_link_libraries(restricted-boost-mpl INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-predef
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/mpl/CMakeLists.txt b/contrib/restricted/boost/mpl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/mpl/CMakeLists.txt
+++ b/contrib/restricted/boost/mpl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/multi_index/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/multi_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1d347b7ed1
--- /dev/null
+++ b/contrib/restricted/boost/multi_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-multi_index INTERFACE)
+target_include_directories(restricted-boost-multi_index INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/multi_index/include
+)
+target_link_libraries(restricted-boost-multi_index INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-bind
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-iterator
+ restricted-boost-move
+ restricted-boost-mpl
+ restricted-boost-preprocessor
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-tuple
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/multi_index/CMakeLists.txt b/contrib/restricted/boost/multi_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/multi_index/CMakeLists.txt
+++ b/contrib/restricted/boost/multi_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c4797132e9
--- /dev/null
+++ b/contrib/restricted/boost/numeric_conversion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-numeric_conversion INTERFACE)
+target_include_directories(restricted-boost-numeric_conversion INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/numeric_conversion/include
+)
+target_link_libraries(restricted-boost-numeric_conversion INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-conversion
+ restricted-boost-core
+ restricted-boost-mpl
+ restricted-boost-preprocessor
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/numeric_conversion/CMakeLists.txt b/contrib/restricted/boost/numeric_conversion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/numeric_conversion/CMakeLists.txt
+++ b/contrib/restricted/boost/numeric_conversion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/optional/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/optional/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b94f64d5c4
--- /dev/null
+++ b/contrib/restricted/boost/optional/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-optional INTERFACE)
+target_include_directories(restricted-boost-optional INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/optional/include
+)
+target_link_libraries(restricted-boost-optional INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-move
+ restricted-boost-predef
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/optional/CMakeLists.txt b/contrib/restricted/boost/optional/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/optional/CMakeLists.txt
+++ b/contrib/restricted/boost/optional/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/pool/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/pool/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a0e50e5cde
--- /dev/null
+++ b/contrib/restricted/boost/pool/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-pool INTERFACE)
+target_include_directories(restricted-boost-pool INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/pool/include
+)
+target_link_libraries(restricted-boost-pool INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-integer
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-winapi
+)
diff --git a/contrib/restricted/boost/pool/CMakeLists.txt b/contrib/restricted/boost/pool/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/pool/CMakeLists.txt
+++ b/contrib/restricted/boost/pool/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/predef/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/predef/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c55eab9d0f
--- /dev/null
+++ b/contrib/restricted/boost/predef/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-predef INTERFACE)
+target_include_directories(restricted-boost-predef INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/predef/include
+)
+target_link_libraries(restricted-boost-predef INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/restricted/boost/predef/CMakeLists.txt b/contrib/restricted/boost/predef/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/predef/CMakeLists.txt
+++ b/contrib/restricted/boost/predef/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/preprocessor/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/preprocessor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7df51769d9
--- /dev/null
+++ b/contrib/restricted/boost/preprocessor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-preprocessor INTERFACE)
+target_include_directories(restricted-boost-preprocessor INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/preprocessor/include
+)
+target_link_libraries(restricted-boost-preprocessor INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/restricted/boost/preprocessor/CMakeLists.txt b/contrib/restricted/boost/preprocessor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/preprocessor/CMakeLists.txt
+++ b/contrib/restricted/boost/preprocessor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/program_options/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/program_options/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c91dfc15c5
--- /dev/null
+++ b/contrib/restricted/boost/program_options/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-program_options)
+target_compile_options(restricted-boost-program_options PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-program_options PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/include
+)
+target_link_libraries(restricted-boost-program_options PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-any
+ restricted-boost-bind
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-function
+ restricted-boost-iterator
+ restricted-boost-lexical_cast
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-tokenizer
+ restricted-boost-type_traits
+)
+target_sources(restricted-boost-program_options PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/cmdline.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/config_file.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/convert.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/options_description.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/parsers.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/positional_options.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/split.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/utf8_codecvt_facet.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/value_semantic.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/variables_map.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/program_options/src/winmain.cpp
+)
diff --git a/contrib/restricted/boost/program_options/CMakeLists.txt b/contrib/restricted/boost/program_options/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/boost/program_options/CMakeLists.txt
+++ b/contrib/restricted/boost/program_options/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/boost/random/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/random/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..647aa94668
--- /dev/null
+++ b/contrib/restricted/boost/random/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-random)
+target_compile_options(restricted-boost-random PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-random PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/random/include
+)
+target_link_libraries(restricted-boost-random PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-array
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-dynamic_bitset
+ restricted-boost-integer
+ restricted-boost-io
+ restricted-boost-range
+ restricted-boost-static_assert
+ restricted-boost-system
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
+target_sources(restricted-boost-random PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/random/src/random_device.cpp
+)
diff --git a/contrib/restricted/boost/random/CMakeLists.txt b/contrib/restricted/boost/random/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/random/CMakeLists.txt
+++ b/contrib/restricted/boost/random/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/range/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/range/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eadd2f290c
--- /dev/null
+++ b/contrib/restricted/boost/range/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-range INTERFACE)
+target_include_directories(restricted-boost-range INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/range/include
+)
+target_link_libraries(restricted-boost-range INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-array
+ restricted-boost-assert
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-conversion
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-iterator
+ restricted-boost-mpl
+ restricted-boost-optional
+ restricted-boost-preprocessor
+ restricted-boost-regex
+ restricted-boost-static_assert
+ restricted-boost-tuple
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/range/CMakeLists.txt b/contrib/restricted/boost/range/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/range/CMakeLists.txt
+++ b/contrib/restricted/boost/range/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/ratio/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/ratio/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7171c49b08
--- /dev/null
+++ b/contrib/restricted/boost/ratio/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-ratio INTERFACE)
+target_include_directories(restricted-boost-ratio INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/ratio/include
+)
+target_link_libraries(restricted-boost-ratio INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-mpl
+ restricted-boost-rational
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/ratio/CMakeLists.txt b/contrib/restricted/boost/ratio/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/ratio/CMakeLists.txt
+++ b/contrib/restricted/boost/ratio/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/rational/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/rational/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c4d92a21a6
--- /dev/null
+++ b/contrib/restricted/boost/rational/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-rational INTERFACE)
+target_include_directories(restricted-boost-rational INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/rational/include
+)
+target_link_libraries(restricted-boost-rational INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/rational/CMakeLists.txt b/contrib/restricted/boost/rational/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/rational/CMakeLists.txt
+++ b/contrib/restricted/boost/rational/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/regex/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/regex/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b0c67b4c88
--- /dev/null
+++ b/contrib/restricted/boost/regex/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-regex)
+target_compile_options(restricted-boost-regex PRIVATE
+ -DBOOST_HAS_ICU
+ -DBOOST_NO_CXX98_BINDERS
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-regex PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/include
+)
+target_link_libraries(restricted-boost-regex PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-icu
+ restricted-boost-assert
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-integer
+ restricted-boost-mpl
+ restricted-boost-predef
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
+target_sources(restricted-boost-regex PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/src/posix_api.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/src/regex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/src/regex_debug.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/src/static_mutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/regex/src/wide_posix_api.cpp
+)
diff --git a/contrib/restricted/boost/regex/CMakeLists.txt b/contrib/restricted/boost/regex/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/regex/CMakeLists.txt
+++ b/contrib/restricted/boost/regex/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/smart_ptr/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/smart_ptr/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e13c238580
--- /dev/null
+++ b/contrib/restricted/boost/smart_ptr/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-smart_ptr INTERFACE)
+target_include_directories(restricted-boost-smart_ptr INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/smart_ptr/include
+)
+target_link_libraries(restricted-boost-smart_ptr INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-move
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/smart_ptr/CMakeLists.txt b/contrib/restricted/boost/smart_ptr/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/smart_ptr/CMakeLists.txt
+++ b/contrib/restricted/boost/smart_ptr/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/static_assert/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/static_assert/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6506f1babd
--- /dev/null
+++ b/contrib/restricted/boost/static_assert/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-static_assert INTERFACE)
+target_include_directories(restricted-boost-static_assert INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/static_assert/include
+)
+target_link_libraries(restricted-boost-static_assert INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/static_assert/CMakeLists.txt b/contrib/restricted/boost/static_assert/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/static_assert/CMakeLists.txt
+++ b/contrib/restricted/boost/static_assert/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/system/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/system/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..49847620cb
--- /dev/null
+++ b/contrib/restricted/boost/system/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-system INTERFACE)
+target_include_directories(restricted-boost-system INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/system/include
+)
+target_link_libraries(restricted-boost-system INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-throw_exception
+ restricted-boost-variant2
+ restricted-boost-winapi
+)
diff --git a/contrib/restricted/boost/system/CMakeLists.txt b/contrib/restricted/boost/system/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/system/CMakeLists.txt
+++ b/contrib/restricted/boost/system/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/thread/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/thread/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..683da25426
--- /dev/null
+++ b/contrib/restricted/boost/thread/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-thread)
+target_compile_options(restricted-boost-thread PUBLIC
+ -DBOOST_THREAD_USE_LIB
+ -DBOOST_THREAD_POSIX
+)
+target_compile_options(restricted-boost-thread PRIVATE
+ -DBOOST_THREAD_BUILD_LIB
+ -DBOOST_THREAD_DONT_USE_CHRONO
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-boost-thread PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/thread/include
+)
+target_link_libraries(restricted-boost-thread PUBLIC
+ contrib-libs-cxxsupp
+ restricted-boost-algorithm
+ restricted-boost-assert
+ restricted-boost-atomic
+ restricted-boost-bind
+ restricted-boost-chrono
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-container
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-date_time
+ restricted-boost-exception
+ restricted-boost-function
+ restricted-boost-intrusive
+ restricted-boost-io
+ restricted-boost-iterator
+ restricted-boost-lexical_cast
+ restricted-boost-move
+ restricted-boost-optional
+ restricted-boost-predef
+ restricted-boost-preprocessor
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-system
+ restricted-boost-throw_exception
+ restricted-boost-tuple
+ restricted-boost-type_traits
+ restricted-boost-utility
+ restricted-boost-winapi
+)
+target_sources(restricted-boost-thread PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/thread/src/future.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/thread/src/pthread/once.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/thread/src/pthread/thread.cpp
+)
diff --git a/contrib/restricted/boost/thread/CMakeLists.txt b/contrib/restricted/boost/thread/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/thread/CMakeLists.txt
+++ b/contrib/restricted/boost/thread/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/throw_exception/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/throw_exception/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eefa32cee2
--- /dev/null
+++ b/contrib/restricted/boost/throw_exception/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-throw_exception INTERFACE)
+target_include_directories(restricted-boost-throw_exception INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/throw_exception/include
+)
+target_link_libraries(restricted-boost-throw_exception INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/throw_exception/CMakeLists.txt b/contrib/restricted/boost/throw_exception/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/throw_exception/CMakeLists.txt
+++ b/contrib/restricted/boost/throw_exception/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/tokenizer/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/tokenizer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..484614506f
--- /dev/null
+++ b/contrib/restricted/boost/tokenizer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-tokenizer INTERFACE)
+target_include_directories(restricted-boost-tokenizer INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/tokenizer/include
+)
+target_link_libraries(restricted-boost-tokenizer INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-iterator
+ restricted-boost-mpl
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/tokenizer/CMakeLists.txt b/contrib/restricted/boost/tokenizer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/tokenizer/CMakeLists.txt
+++ b/contrib/restricted/boost/tokenizer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/tuple/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/tuple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..35051c1252
--- /dev/null
+++ b/contrib/restricted/boost/tuple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-tuple INTERFACE)
+target_include_directories(restricted-boost-tuple INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/tuple/include
+)
+target_link_libraries(restricted-boost-tuple INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/tuple/CMakeLists.txt b/contrib/restricted/boost/tuple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/tuple/CMakeLists.txt
+++ b/contrib/restricted/boost/tuple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..701e481195
--- /dev/null
+++ b/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-type_index INTERFACE)
+target_include_directories(restricted-boost-type_index INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/type_index/include
+)
+target_link_libraries(restricted-boost-type_index INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/type_index/CMakeLists.txt b/contrib/restricted/boost/type_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/type_index/CMakeLists.txt
+++ b/contrib/restricted/boost/type_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/type_traits/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/type_traits/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a32d4a750e
--- /dev/null
+++ b/contrib/restricted/boost/type_traits/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-type_traits INTERFACE)
+target_include_directories(restricted-boost-type_traits INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/type_traits/include
+)
+target_link_libraries(restricted-boost-type_traits INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-static_assert
+)
diff --git a/contrib/restricted/boost/type_traits/CMakeLists.txt b/contrib/restricted/boost/type_traits/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/type_traits/CMakeLists.txt
+++ b/contrib/restricted/boost/type_traits/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04fff27108
--- /dev/null
+++ b/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-typeof INTERFACE)
+target_include_directories(restricted-boost-typeof INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/typeof/include
+)
+target_link_libraries(restricted-boost-typeof INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-preprocessor
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/typeof/CMakeLists.txt b/contrib/restricted/boost/typeof/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/typeof/CMakeLists.txt
+++ b/contrib/restricted/boost/typeof/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/unordered/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/unordered/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a1dbba096
--- /dev/null
+++ b/contrib/restricted/boost/unordered/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-unordered INTERFACE)
+target_include_directories(restricted-boost-unordered INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/unordered/include
+)
+target_link_libraries(restricted-boost-unordered INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-container
+ restricted-boost-container_hash
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-move
+ restricted-boost-predef
+ restricted-boost-preprocessor
+ restricted-boost-smart_ptr
+ restricted-boost-throw_exception
+ restricted-boost-tuple
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/unordered/CMakeLists.txt b/contrib/restricted/boost/unordered/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/unordered/CMakeLists.txt
+++ b/contrib/restricted/boost/unordered/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/utility/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/utility/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75fd878529
--- /dev/null
+++ b/contrib/restricted/boost/utility/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-utility INTERFACE)
+target_include_directories(restricted-boost-utility INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/utility/include
+)
+target_link_libraries(restricted-boost-utility INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-io
+ restricted-boost-preprocessor
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/utility/CMakeLists.txt b/contrib/restricted/boost/utility/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/utility/CMakeLists.txt
+++ b/contrib/restricted/boost/utility/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/variant2/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/variant2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..faec5d9097
--- /dev/null
+++ b/contrib/restricted/boost/variant2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-variant2 INTERFACE)
+target_include_directories(restricted-boost-variant2 INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/variant2/include
+)
+target_link_libraries(restricted-boost-variant2 INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-mp11
+)
diff --git a/contrib/restricted/boost/variant2/CMakeLists.txt b/contrib/restricted/boost/variant2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/variant2/CMakeLists.txt
+++ b/contrib/restricted/boost/variant2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/boost/winapi/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/winapi/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..13fd04341f
--- /dev/null
+++ b/contrib/restricted/boost/winapi/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-winapi INTERFACE)
+target_include_directories(restricted-boost-winapi INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/winapi/include
+)
+target_link_libraries(restricted-boost-winapi INTERFACE
+ contrib-libs-cxxsupp
+ restricted-boost-config
+ restricted-boost-predef
+)
diff --git a/contrib/restricted/boost/winapi/CMakeLists.txt b/contrib/restricted/boost/winapi/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/boost/winapi/CMakeLists.txt
+++ b/contrib/restricted/boost/winapi/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-arm64.txt b/contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7518da2f4
--- /dev/null
+++ b/contrib/restricted/cityhash-1.0.2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-cityhash-1.0.2)
+target_include_directories(contrib-restricted-cityhash-1.0.2 PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/cityhash-1.0.2
+)
+target_link_libraries(contrib-restricted-cityhash-1.0.2 PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(contrib-restricted-cityhash-1.0.2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/cityhash-1.0.2/city.cc
+)
diff --git a/contrib/restricted/cityhash-1.0.2/CMakeLists.txt b/contrib/restricted/cityhash-1.0.2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/cityhash-1.0.2/CMakeLists.txt
+++ b/contrib/restricted/cityhash-1.0.2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/dragonbox/CMakeLists.darwin-arm64.txt b/contrib/restricted/dragonbox/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4e0fcd5b99
--- /dev/null
+++ b/contrib/restricted/dragonbox/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dragonbox)
+target_compile_options(dragonbox PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(dragonbox PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/dragonbox/include
+)
+target_link_libraries(dragonbox PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(dragonbox PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/dragonbox/source/dragonbox_to_chars.cpp
+)
diff --git a/contrib/restricted/dragonbox/CMakeLists.txt b/contrib/restricted/dragonbox/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/contrib/restricted/dragonbox/CMakeLists.txt
+++ b/contrib/restricted/dragonbox/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/fast_float/CMakeLists.darwin-arm64.txt b/contrib/restricted/fast_float/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..277929ec2e
--- /dev/null
+++ b/contrib/restricted/fast_float/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-fast_float INTERFACE)
diff --git a/contrib/restricted/fast_float/CMakeLists.txt b/contrib/restricted/fast_float/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/fast_float/CMakeLists.txt
+++ b/contrib/restricted/fast_float/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/google/benchmark/CMakeLists.darwin-arm64.txt b/contrib/restricted/google/benchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e16d88f39
--- /dev/null
+++ b/contrib/restricted/google/benchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-google-benchmark)
+target_compile_options(restricted-google-benchmark PUBLIC
+ -DBENCHMARK_STATIC_DEFINE
+)
+target_compile_options(restricted-google-benchmark PRIVATE
+ -DHAVE_POSIX_REGEX
+ -DHAVE_PTHREAD_AFFINITY
+ -DHAVE_STD_REGEX
+ -DHAVE_STEADY_CLOCK
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-google-benchmark PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/include
+)
+target_include_directories(restricted-google-benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src
+)
+target_link_libraries(restricted-google-benchmark PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(restricted-google-benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/benchmark.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/benchmark_api_internal.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/benchmark_name.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/benchmark_register.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/benchmark_runner.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/check.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/colorprint.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/commandlineflags.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/complexity.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/console_reporter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/counter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/csv_reporter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/json_reporter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/perf_counters.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/reporter.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/statistics.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/string_util.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/sysinfo.cc
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/google/benchmark/src/timers.cc
+)
diff --git a/contrib/restricted/google/benchmark/CMakeLists.txt b/contrib/restricted/google/benchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/google/benchmark/CMakeLists.txt
+++ b/contrib/restricted/google/benchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/googletest/googlemock/CMakeLists.darwin-arm64.txt b/contrib/restricted/googletest/googlemock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..01df6b6ce7
--- /dev/null
+++ b/contrib/restricted/googletest/googlemock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-googletest-googlemock)
+target_compile_options(restricted-googletest-googlemock PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-googletest-googlemock PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googlemock/include
+)
+target_include_directories(restricted-googletest-googlemock PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googlemock
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googletest
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googletest/include
+)
+target_link_libraries(restricted-googletest-googlemock PUBLIC
+ contrib-libs-cxxsupp
+ restricted-googletest-googletest
+)
+target_sources(restricted-googletest-googlemock PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googlemock/src/gmock-all.cc
+)
diff --git a/contrib/restricted/googletest/googlemock/CMakeLists.txt b/contrib/restricted/googletest/googlemock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/googletest/googlemock/CMakeLists.txt
+++ b/contrib/restricted/googletest/googlemock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/googletest/googletest/CMakeLists.darwin-arm64.txt b/contrib/restricted/googletest/googletest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6d2f7beb8e
--- /dev/null
+++ b/contrib/restricted/googletest/googletest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-googletest-googletest)
+target_compile_options(restricted-googletest-googletest PUBLIC
+ -DGTEST_HAS_POSIX_RE=0
+ -DGTEST_HAS_STD_WSTRING=1
+ -DGTEST_USES_RE2=1
+)
+target_compile_options(restricted-googletest-googletest PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-googletest-googletest PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googletest/include
+)
+target_include_directories(restricted-googletest-googletest PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googletest
+)
+target_link_libraries(restricted-googletest-googletest PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-re2
+)
+target_sources(restricted-googletest-googletest PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/googletest/googletest/src/gtest-all.cc
+)
diff --git a/contrib/restricted/googletest/googletest/CMakeLists.txt b/contrib/restricted/googletest/googletest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/googletest/googletest/CMakeLists.txt
+++ b/contrib/restricted/googletest/googletest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/http-parser/CMakeLists.darwin-arm64.txt b/contrib/restricted/http-parser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e88ed56de
--- /dev/null
+++ b/contrib/restricted/http-parser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-http-parser)
+target_compile_options(contrib-restricted-http-parser PRIVATE
+ -DHTTP_MAX_HEADER_SIZE=0x7fffffff
+ -DHTTP_PARSER_STRICT=0
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-restricted-http-parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/http-parser
+)
+target_sources(contrib-restricted-http-parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/http-parser/http_parser.c
+)
diff --git a/contrib/restricted/http-parser/CMakeLists.txt b/contrib/restricted/http-parser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/http-parser/CMakeLists.txt
+++ b/contrib/restricted/http-parser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/libffi/configs/aarch64-apple-macos/fficonfig.h b/contrib/restricted/libffi/configs/aarch64-apple-macos/fficonfig.h
new file mode 100644
index 0000000000..7f3a68b1c8
--- /dev/null
+++ b/contrib/restricted/libffi/configs/aarch64-apple-macos/fficonfig.h
@@ -0,0 +1,211 @@
+/* fficonfig.h. Generated from fficonfig.h.in by configure. */
+/* fficonfig.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define to 1 if using 'alloca.c'. */
+/* #undef C_ALLOCA */
+
+/* Define to the flags needed for the .section .eh_frame directive. */
+#define EH_FRAME_FLAGS "aw"
+
+/* Define this if you want extra debugging. */
+/* #undef FFI_DEBUG */
+
+/* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
+#define FFI_EXEC_TRAMPOLINE_TABLE 1
+
+/* Define this if you want to enable pax emulated trampolines */
+/* #undef FFI_MMAP_EXEC_EMUTRAMP_PAX */
+
+/* Cannot use malloc on this target, so, we revert to alternative means */
+/* #undef FFI_MMAP_EXEC_WRIT */
+
+/* Define this if you do not want support for the raw API. */
+/* #undef FFI_NO_RAW_API */
+
+/* Define this if you do not want support for aggregate types. */
+/* #undef FFI_NO_STRUCTS */
+
+/* Define to 1 if you have 'alloca', as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if <alloca.h> works. */
+#define HAVE_ALLOCA_H 1
+
+/* Define if your assembler supports .cfi_* directives. */
+/* #undef HAVE_AS_CFI_PSEUDO_OP */
+
+/* Define if your assembler supports .register. */
+/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
+
+/* Define if the compiler uses zarch features. */
+/* #undef HAVE_AS_S390_ZARCH */
+
+/* Define if your assembler and linker support unaligned PC relative relocs.
+ */
+/* #undef HAVE_AS_SPARC_UA_PCREL */
+
+/* Define if your assembler supports unwind section type. */
+/* #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE */
+
+/* Define if your assembler supports PC relative relocs. */
+/* #undef HAVE_AS_X86_PCREL */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define if __attribute__((visibility("hidden"))) is supported. */
+#define HAVE_HIDDEN_VISIBILITY_ATTRIBUTE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if you have the long double type and it is bigger than a double */
+/* #undef HAVE_LONG_DOUBLE */
+
+/* Define if you support more than one size of the long double type */
+/* #undef HAVE_LONG_DOUBLE_VARIANT */
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `mkostemp' function. */
+#define HAVE_MKOSTEMP 1
+
+/* Define to 1 if you have the `mmap' function. */
+#define HAVE_MMAP 1
+
+/* Define if mmap with MAP_ANON(YMOUS) works. */
+#define HAVE_MMAP_ANON 1
+
+/* Define if mmap of /dev/zero works. */
+#define HAVE_MMAP_DEV_ZERO 1
+
+/* Define if read-only mmap of a plain file works. */
+#define HAVE_MMAP_FILE 1
+
+/* Define if .eh_frame sections should be read-only. */
+/* #undef HAVE_RO_EH_FRAME */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if GNU symbol versioning is used for libatomic. */
+/* #undef LIBFFI_GNU_SYMBOL_VERSIONING */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "libffi"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "http://github.com/libffi/libffi/issues"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libffi"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libffi 3.3"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libffi"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "3.3"
+
+/* The size of `double', as computed by sizeof. */
+#define SIZEOF_DOUBLE 8
+
+/* The size of `long double', as computed by sizeof. */
+#define SIZEOF_LONG_DOUBLE 8
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Define if symbols are underscored. */
+#define SYMBOL_UNDERSCORE 1
+
+/* Define this if you are using Purify and want to suppress spurious messages.
+ */
+/* #undef USING_PURIFY */
+
+/* Version number of package */
+#define VERSION "3.3"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+
+#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
+#ifdef LIBFFI_ASM
+#ifdef __APPLE__
+#define FFI_HIDDEN(name) .private_extern name
+#else
+#define FFI_HIDDEN(name) .hidden name
+#endif
+#else
+#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
+#endif
+#else
+#ifdef LIBFFI_ASM
+#define FFI_HIDDEN(name)
+#else
+#define FFI_HIDDEN
+#endif
+#endif
+
diff --git a/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffi.h b/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffi.h
new file mode 100644
index 0000000000..8b35bda83c
--- /dev/null
+++ b/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffi.h
@@ -0,0 +1,515 @@
+/* -----------------------------------------------------------------*-C-*-
+ libffi 3.3 - Copyright (c) 2011, 2014, 2019 Anthony Green
+ - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the ``Software''), to deal in the Software without
+ restriction, including without limitation the rights to use, copy,
+ modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
+ ----------------------------------------------------------------------- */
+
+/* -------------------------------------------------------------------
+ Most of the API is documented in doc/libffi.texi.
+
+ The raw API is designed to bypass some of the argument packing and
+ unpacking on architectures for which it can be avoided. Routines
+ are provided to emulate the raw API if the underlying platform
+ doesn't allow faster implementation.
+
+ More details on the raw API can be found in:
+
+ http://gcc.gnu.org/ml/java/1999-q3/msg00138.html
+
+ and
+
+ http://gcc.gnu.org/ml/java/1999-q3/msg00174.html
+ -------------------------------------------------------------------- */
+
+#ifndef LIBFFI_H
+#define LIBFFI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Specify which architecture libffi is configured for. */
+#ifndef AARCH64
+#define AARCH64
+#endif
+
+/* ---- System configuration information --------------------------------- */
+
+#include <ffitarget.h>
+
+#ifndef LIBFFI_ASM
+
+#if defined(_MSC_VER) && !defined(__clang__)
+#define __attribute__(X)
+#endif
+
+#include <stddef.h>
+#include <limits.h>
+
+/* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example).
+ But we can find it either under the correct ANSI name, or under GNU
+ C's internal name. */
+
+#define FFI_64_BIT_MAX 9223372036854775807
+
+#ifdef LONG_LONG_MAX
+# define FFI_LONG_LONG_MAX LONG_LONG_MAX
+#else
+# ifdef LLONG_MAX
+# define FFI_LONG_LONG_MAX LLONG_MAX
+# ifdef _AIX52 /* or newer has C99 LLONG_MAX */
+# undef FFI_64_BIT_MAX
+# define FFI_64_BIT_MAX 9223372036854775807LL
+# endif /* _AIX52 or newer */
+# else
+# ifdef __GNUC__
+# define FFI_LONG_LONG_MAX __LONG_LONG_MAX__
+# endif
+# ifdef _AIX /* AIX 5.1 and earlier have LONGLONG_MAX */
+# ifndef __PPC64__
+# if defined (__IBMC__) || defined (__IBMCPP__)
+# define FFI_LONG_LONG_MAX LONGLONG_MAX
+# endif
+# endif /* __PPC64__ */
+# undef FFI_64_BIT_MAX
+# define FFI_64_BIT_MAX 9223372036854775807LL
+# endif
+# endif
+#endif
+
+/* The closure code assumes that this works on pointers, i.e. a size_t
+ can hold a pointer. */
+
+typedef struct _ffi_type
+{
+ size_t size;
+ unsigned short alignment;
+ unsigned short type;
+ struct _ffi_type **elements;
+} ffi_type;
+
+/* Need minimal decorations for DLLs to work on Windows. GCC has
+ autoimport and autoexport. Always mark externally visible symbols
+ as dllimport for MSVC clients, even if it means an extra indirection
+ when using the static version of the library.
+ Besides, as a workaround, they can define FFI_BUILDING if they
+ *know* they are going to link with the static library. */
+#if defined _MSC_VER
+# if defined FFI_BUILDING_DLL /* Building libffi.DLL with msvcc.sh */
+# define FFI_API __declspec(dllexport)
+# elif !defined FFI_BUILDING /* Importing libffi.DLL */
+# define FFI_API __declspec(dllimport)
+# else /* Building/linking static library */
+# define FFI_API
+# endif
+#else
+# define FFI_API
+#endif
+
+/* The externally visible type declarations also need the MSVC DLL
+ decorations, or they will not be exported from the object file. */
+#if defined LIBFFI_HIDE_BASIC_TYPES
+# define FFI_EXTERN FFI_API
+#else
+# define FFI_EXTERN extern FFI_API
+#endif
+
+#ifndef LIBFFI_HIDE_BASIC_TYPES
+#if SCHAR_MAX == 127
+# define ffi_type_uchar ffi_type_uint8
+# define ffi_type_schar ffi_type_sint8
+#else
+ #error "char size not supported"
+#endif
+
+#if SHRT_MAX == 32767
+# define ffi_type_ushort ffi_type_uint16
+# define ffi_type_sshort ffi_type_sint16
+#elif SHRT_MAX == 2147483647
+# define ffi_type_ushort ffi_type_uint32
+# define ffi_type_sshort ffi_type_sint32
+#else
+ #error "short size not supported"
+#endif
+
+#if INT_MAX == 32767
+# define ffi_type_uint ffi_type_uint16
+# define ffi_type_sint ffi_type_sint16
+#elif INT_MAX == 2147483647
+# define ffi_type_uint ffi_type_uint32
+# define ffi_type_sint ffi_type_sint32
+#elif INT_MAX == 9223372036854775807
+# define ffi_type_uint ffi_type_uint64
+# define ffi_type_sint ffi_type_sint64
+#else
+ #error "int size not supported"
+#endif
+
+#if LONG_MAX == 2147483647
+# if FFI_LONG_LONG_MAX != FFI_64_BIT_MAX
+ #error "no 64-bit data type supported"
+# endif
+#elif LONG_MAX != FFI_64_BIT_MAX
+ #error "long size not supported"
+#endif
+
+#if LONG_MAX == 2147483647
+# define ffi_type_ulong ffi_type_uint32
+# define ffi_type_slong ffi_type_sint32
+#elif LONG_MAX == FFI_64_BIT_MAX
+# define ffi_type_ulong ffi_type_uint64
+# define ffi_type_slong ffi_type_sint64
+#else
+ #error "long size not supported"
+#endif
+
+/* These are defined in types.c. */
+FFI_EXTERN ffi_type ffi_type_void;
+FFI_EXTERN ffi_type ffi_type_uint8;
+FFI_EXTERN ffi_type ffi_type_sint8;
+FFI_EXTERN ffi_type ffi_type_uint16;
+FFI_EXTERN ffi_type ffi_type_sint16;
+FFI_EXTERN ffi_type ffi_type_uint32;
+FFI_EXTERN ffi_type ffi_type_sint32;
+FFI_EXTERN ffi_type ffi_type_uint64;
+FFI_EXTERN ffi_type ffi_type_sint64;
+FFI_EXTERN ffi_type ffi_type_float;
+FFI_EXTERN ffi_type ffi_type_double;
+FFI_EXTERN ffi_type ffi_type_pointer;
+
+#if 0
+FFI_EXTERN ffi_type ffi_type_longdouble;
+#else
+#define ffi_type_longdouble ffi_type_double
+#endif
+
+#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
+FFI_EXTERN ffi_type ffi_type_complex_float;
+FFI_EXTERN ffi_type ffi_type_complex_double;
+#if 0
+FFI_EXTERN ffi_type ffi_type_complex_longdouble;
+#else
+#define ffi_type_complex_longdouble ffi_type_complex_double
+#endif
+#endif
+#endif /* LIBFFI_HIDE_BASIC_TYPES */
+
+typedef enum {
+ FFI_OK = 0,
+ FFI_BAD_TYPEDEF,
+ FFI_BAD_ABI
+} ffi_status;
+
+typedef struct {
+ ffi_abi abi;
+ unsigned nargs;
+ ffi_type **arg_types;
+ ffi_type *rtype;
+ unsigned bytes;
+ unsigned flags;
+#ifdef FFI_EXTRA_CIF_FIELDS
+ FFI_EXTRA_CIF_FIELDS;
+#endif
+} ffi_cif;
+
+/* ---- Definitions for the raw API -------------------------------------- */
+
+#ifndef FFI_SIZEOF_ARG
+# if LONG_MAX == 2147483647
+# define FFI_SIZEOF_ARG 4
+# elif LONG_MAX == FFI_64_BIT_MAX
+# define FFI_SIZEOF_ARG 8
+# endif
+#endif
+
+#ifndef FFI_SIZEOF_JAVA_RAW
+# define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG
+#endif
+
+typedef union {
+ ffi_sarg sint;
+ ffi_arg uint;
+ float flt;
+ char data[FFI_SIZEOF_ARG];
+ void* ptr;
+} ffi_raw;
+
+#if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8
+/* This is a special case for mips64/n32 ABI (and perhaps others) where
+ sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */
+typedef union {
+ signed int sint;
+ unsigned int uint;
+ float flt;
+ char data[FFI_SIZEOF_JAVA_RAW];
+ void* ptr;
+} ffi_java_raw;
+#else
+typedef ffi_raw ffi_java_raw;
+#endif
+
+
+FFI_API
+void ffi_raw_call (ffi_cif *cif,
+ void (*fn)(void),
+ void *rvalue,
+ ffi_raw *avalue);
+
+FFI_API void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
+FFI_API void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
+FFI_API size_t ffi_raw_size (ffi_cif *cif);
+
+/* This is analogous to the raw API, except it uses Java parameter
+ packing, even on 64-bit machines. I.e. on 64-bit machines longs
+ and doubles are followed by an empty 64-bit word. */
+
+#if !FFI_NATIVE_RAW_API
+FFI_API
+void ffi_java_raw_call (ffi_cif *cif,
+ void (*fn)(void),
+ void *rvalue,
+ ffi_java_raw *avalue) __attribute__((deprecated));
+#endif
+
+FFI_API
+void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw) __attribute__((deprecated));
+FFI_API
+void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args) __attribute__((deprecated));
+FFI_API
+size_t ffi_java_raw_size (ffi_cif *cif) __attribute__((deprecated));
+
+/* ---- Definitions for closures ----------------------------------------- */
+
+#if FFI_CLOSURES
+
+#ifdef _MSC_VER
+__declspec(align(8))
+#endif
+typedef struct {
+#if 1
+ void *trampoline_table;
+ void *trampoline_table_entry;
+#else
+ char tramp[FFI_TRAMPOLINE_SIZE];
+#endif
+ ffi_cif *cif;
+ void (*fun)(ffi_cif*,void*,void**,void*);
+ void *user_data;
+} ffi_closure
+#ifdef __GNUC__
+ __attribute__((aligned (8)))
+#endif
+ ;
+
+#ifndef __GNUC__
+# ifdef __sgi
+# pragma pack 0
+# endif
+#endif
+
+FFI_API void *ffi_closure_alloc (size_t size, void **code);
+FFI_API void ffi_closure_free (void *);
+
+FFI_API ffi_status
+ffi_prep_closure (ffi_closure*,
+ ffi_cif *,
+ void (*fun)(ffi_cif*,void*,void**,void*),
+ void *user_data)
+#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405)
+ __attribute__((deprecated ("use ffi_prep_closure_loc instead")))
+#elif defined(__GNUC__) && __GNUC__ >= 3
+ __attribute__((deprecated))
+#endif
+ ;
+
+FFI_API ffi_status
+ffi_prep_closure_loc (ffi_closure*,
+ ffi_cif *,
+ void (*fun)(ffi_cif*,void*,void**,void*),
+ void *user_data,
+ void*codeloc);
+
+#ifdef __sgi
+# pragma pack 8
+#endif
+typedef struct {
+#if 1
+ void *trampoline_table;
+ void *trampoline_table_entry;
+#else
+ char tramp[FFI_TRAMPOLINE_SIZE];
+#endif
+ ffi_cif *cif;
+
+#if !FFI_NATIVE_RAW_API
+
+ /* If this is enabled, then a raw closure has the same layout
+ as a regular closure. We use this to install an intermediate
+ handler to do the transaltion, void** -> ffi_raw*. */
+
+ void (*translate_args)(ffi_cif*,void*,void**,void*);
+ void *this_closure;
+
+#endif
+
+ void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
+ void *user_data;
+
+} ffi_raw_closure;
+
+typedef struct {
+#if 1
+ void *trampoline_table;
+ void *trampoline_table_entry;
+#else
+ char tramp[FFI_TRAMPOLINE_SIZE];
+#endif
+
+ ffi_cif *cif;
+
+#if !FFI_NATIVE_RAW_API
+
+ /* If this is enabled, then a raw closure has the same layout
+ as a regular closure. We use this to install an intermediate
+ handler to do the translation, void** -> ffi_raw*. */
+
+ void (*translate_args)(ffi_cif*,void*,void**,void*);
+ void *this_closure;
+
+#endif
+
+ void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*);
+ void *user_data;
+
+} ffi_java_raw_closure;
+
+FFI_API ffi_status
+ffi_prep_raw_closure (ffi_raw_closure*,
+ ffi_cif *cif,
+ void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
+ void *user_data);
+
+FFI_API ffi_status
+ffi_prep_raw_closure_loc (ffi_raw_closure*,
+ ffi_cif *cif,
+ void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
+ void *user_data,
+ void *codeloc);
+
+#if !FFI_NATIVE_RAW_API
+FFI_API ffi_status
+ffi_prep_java_raw_closure (ffi_java_raw_closure*,
+ ffi_cif *cif,
+ void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
+ void *user_data) __attribute__((deprecated));
+
+FFI_API ffi_status
+ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
+ ffi_cif *cif,
+ void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
+ void *user_data,
+ void *codeloc) __attribute__((deprecated));
+#endif
+
+#endif /* FFI_CLOSURES */
+
+#if FFI_GO_CLOSURES
+
+typedef struct {
+ void *tramp;
+ ffi_cif *cif;
+ void (*fun)(ffi_cif*,void*,void**,void*);
+} ffi_go_closure;
+
+FFI_API ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *,
+ void (*fun)(ffi_cif*,void*,void**,void*));
+
+FFI_API void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
+ void **avalue, void *closure);
+
+#endif /* FFI_GO_CLOSURES */
+
+/* ---- Public interface definition -------------------------------------- */
+
+FFI_API
+ffi_status ffi_prep_cif(ffi_cif *cif,
+ ffi_abi abi,
+ unsigned int nargs,
+ ffi_type *rtype,
+ ffi_type **atypes);
+
+FFI_API
+ffi_status ffi_prep_cif_var(ffi_cif *cif,
+ ffi_abi abi,
+ unsigned int nfixedargs,
+ unsigned int ntotalargs,
+ ffi_type *rtype,
+ ffi_type **atypes);
+
+FFI_API
+void ffi_call(ffi_cif *cif,
+ void (*fn)(void),
+ void *rvalue,
+ void **avalue);
+
+FFI_API
+ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type,
+ size_t *offsets);
+
+/* Useful for eliminating compiler warnings. */
+#define FFI_FN(f) ((void (*)(void))f)
+
+/* ---- Definitions shared with assembly code ---------------------------- */
+
+#endif
+
+/* If these change, update src/mips/ffitarget.h. */
+#define FFI_TYPE_VOID 0
+#define FFI_TYPE_INT 1
+#define FFI_TYPE_FLOAT 2
+#define FFI_TYPE_DOUBLE 3
+#if 0
+#define FFI_TYPE_LONGDOUBLE 4
+#else
+#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
+#endif
+#define FFI_TYPE_UINT8 5
+#define FFI_TYPE_SINT8 6
+#define FFI_TYPE_UINT16 7
+#define FFI_TYPE_SINT16 8
+#define FFI_TYPE_UINT32 9
+#define FFI_TYPE_SINT32 10
+#define FFI_TYPE_UINT64 11
+#define FFI_TYPE_SINT64 12
+#define FFI_TYPE_STRUCT 13
+#define FFI_TYPE_POINTER 14
+#define FFI_TYPE_COMPLEX 15
+
+/* This should always refer to the last type code (for sanity checks). */
+#define FFI_TYPE_LAST FFI_TYPE_COMPLEX
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffitarget.h b/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffitarget.h
new file mode 100644
index 0000000000..ecb6d2deae
--- /dev/null
+++ b/contrib/restricted/libffi/configs/aarch64-apple-macos/include/ffitarget.h
@@ -0,0 +1,92 @@
+/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+``Software''), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+
+#ifndef LIBFFI_TARGET_H
+#define LIBFFI_TARGET_H
+
+#ifndef LIBFFI_H
+#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
+#endif
+
+#ifndef LIBFFI_ASM
+#ifdef __ILP32__
+#define FFI_SIZEOF_ARG 8
+#define FFI_SIZEOF_JAVA_RAW 4
+typedef unsigned long long ffi_arg;
+typedef signed long long ffi_sarg;
+#elif defined(_M_ARM64)
+#define FFI_SIZEOF_ARG 8
+typedef unsigned long long ffi_arg;
+typedef signed long long ffi_sarg;
+#else
+typedef unsigned long ffi_arg;
+typedef signed long ffi_sarg;
+#endif
+
+typedef enum ffi_abi
+ {
+ FFI_FIRST_ABI = 0,
+ FFI_SYSV,
+ FFI_LAST_ABI,
+ FFI_DEFAULT_ABI = FFI_SYSV
+ } ffi_abi;
+#endif
+
+/* ---- Definitions for closures ----------------------------------------- */
+
+#define FFI_CLOSURES 1
+#define FFI_NATIVE_RAW_API 0
+
+#if defined (FFI_EXEC_TRAMPOLINE_TABLE) && FFI_EXEC_TRAMPOLINE_TABLE
+
+#ifdef __MACH__
+#define FFI_TRAMPOLINE_SIZE 16
+#define FFI_TRAMPOLINE_CLOSURE_OFFSET 16
+#else
+#error "No trampoline table implementation"
+#endif
+
+#else
+#define FFI_TRAMPOLINE_SIZE 24
+#define FFI_TRAMPOLINE_CLOSURE_OFFSET FFI_TRAMPOLINE_SIZE
+#endif
+
+#ifdef _M_ARM64
+#define FFI_EXTRA_CIF_FIELDS unsigned is_variadic
+#endif
+
+/* ---- Internal ---- */
+
+#if defined (__APPLE__)
+#define FFI_TARGET_SPECIFIC_VARIADIC
+#define FFI_EXTRA_CIF_FIELDS unsigned aarch64_nfixedargs
+#elif !defined(_M_ARM64)
+/* iOS and Windows reserve x18 for the system. Disable Go closures until
+ a new static chain is chosen. */
+#define FFI_GO_CLOSURES 1
+#endif
+
+#ifndef _M_ARM64
+/* No complex type on Windows */
+#define FFI_TARGET_HAS_COMPLEX_TYPE
+#endif
+
+#endif
diff --git a/contrib/restricted/nlohmann_json/CMakeLists.darwin-arm64.txt b/contrib/restricted/nlohmann_json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0c96110bcc
--- /dev/null
+++ b/contrib/restricted/nlohmann_json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-nlohmann_json INTERFACE)
+target_include_directories(contrib-restricted-nlohmann_json INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/nlohmann_json/include
+)
+target_link_libraries(contrib-restricted-nlohmann_json INTERFACE
+ contrib-libs-cxxsupp
+)
diff --git a/contrib/restricted/nlohmann_json/CMakeLists.txt b/contrib/restricted/nlohmann_json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/nlohmann_json/CMakeLists.txt
+++ b/contrib/restricted/nlohmann_json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/patched/replxx/CMakeLists.darwin-arm64.txt b/contrib/restricted/patched/replxx/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..27787413ab
--- /dev/null
+++ b/contrib/restricted/patched/replxx/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-patched-replxx)
+target_compile_options(restricted-patched-replxx PUBLIC
+ -DREPLXX_STATIC
+)
+target_compile_options(restricted-patched-replxx PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-patched-replxx PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/include
+)
+target_include_directories(restricted-patched-replxx PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src
+)
+target_link_libraries(restricted-patched-replxx PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(restricted-patched-replxx PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/ConvertUTF.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/conversion.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/escape.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/history.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/prompt.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/replxx.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/replxx_impl.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/terminal.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/util.cxx
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/wcwidth.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/patched/replxx/src/windows.cxx
+)
diff --git a/contrib/restricted/patched/replxx/CMakeLists.txt b/contrib/restricted/patched/replxx/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/patched/replxx/CMakeLists.txt
+++ b/contrib/restricted/patched/replxx/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/thrift/CMakeLists.darwin-arm64.txt b/contrib/restricted/thrift/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7e6326e93
--- /dev/null
+++ b/contrib/restricted/thrift/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-thrift)
+target_compile_options(contrib-restricted-thrift PRIVATE
+ -Wno-deprecated-declarations
+ -Wno-unused-function
+ -Wno-unused-parameter
+ -Wno-unused-private-field
+ -Wno-unused-variable
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-restricted-thrift PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift
+)
+target_link_libraries(contrib-restricted-thrift PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-libevent
+ contrib-libs-openssl
+ contrib-libs-zlib
+ restricted-boost-interprocess
+ restricted-boost-locale
+ restricted-boost-math
+ restricted-boost-system
+ restricted-boost-thread
+)
+target_sources(contrib-restricted-thrift PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/TApplicationException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/TOutput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/VirtualProfiling.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/async/TAsyncChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/async/TAsyncProtocolProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/async/TConcurrentClientSyncInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/async/TEvhttpClientChannel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/async/TEvhttpServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/StdMonitor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/StdMutex.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/StdThreadFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/ThreadManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/TimerManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/concurrency/Util.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/processor/PeekProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/TBase64Utils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/TDebugProtocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/THeaderProtocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/TJSONProtocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/TMultiplexedProtocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/protocol/TProtocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TConnectedClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TNonblockingServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TServerFramework.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TSimpleServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TThreadPoolServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/server/TThreadedServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TBufferTransports.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TFDTransport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TFileTransport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/THeaderTransport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/THttpClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/THttpServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/THttpTransport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TNonblockingSSLServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TNonblockingServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TPipe.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TPipeServer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TSSLServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TSSLSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TServerSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TSimpleFileTransport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TSocket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TSocketPool.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TTransportException.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TTransportUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/thrift/thrift/transport/TZlibTransport.cpp
+)
diff --git a/contrib/restricted/thrift/CMakeLists.txt b/contrib/restricted/thrift/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/thrift/CMakeLists.txt
+++ b/contrib/restricted/thrift/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/restricted/uriparser/CMakeLists.darwin-arm64.txt b/contrib/restricted/uriparser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2163bfff7c
--- /dev/null
+++ b/contrib/restricted/uriparser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(contrib-restricted-uriparser)
+target_compile_options(contrib-restricted-uriparser PRIVATE
+ -DURI_LIBRARY_BUILD
+ -DURI_VISIBILITY
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(contrib-restricted-uriparser PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/include
+)
+target_include_directories(contrib-restricted-uriparser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser
+)
+target_link_libraries(contrib-restricted-uriparser PUBLIC
+ contrib-libs-libc_compat
+)
+target_sources(contrib-restricted-uriparser PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriCommon.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriCompare.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriEscape.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriFile.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriIp4.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriIp4Base.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriMemory.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriNormalize.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriNormalizeBase.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriParse.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriParseBase.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriQuery.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriRecompose.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriResolve.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/uriparser/src/UriShorten.c
+)
diff --git a/contrib/restricted/uriparser/CMakeLists.txt b/contrib/restricted/uriparser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/restricted/uriparser/CMakeLists.txt
+++ b/contrib/restricted/uriparser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/tools/bison/bison/induced/CMakeLists.darwin-arm64.txt b/contrib/tools/bison/bison/induced/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e15f313d9b
--- /dev/null
+++ b/contrib/tools/bison/bison/induced/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(bison-bison-induced INTERFACE)
diff --git a/contrib/tools/bison/bison/induced/CMakeLists.txt b/contrib/tools/bison/bison/induced/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/tools/bison/bison/induced/CMakeLists.txt
+++ b/contrib/tools/bison/bison/induced/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/tools/flatc/bin/CMakeLists.darwin-arm64.txt b/contrib/tools/flatc/bin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a8baf04410
--- /dev/null
+++ b/contrib/tools/flatc/bin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(flatc)
+target_include_directories(flatc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/include
+)
+target_link_libraries(flatc PUBLIC
+ contrib-libs-cxxsupp
+ libs-flatbuffers-flatc
+)
+target_link_options(flatc PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(flatc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/flatc_main.cpp
+)
+target_allocator(flatc
+ system_allocator
+)
+vcs_info(flatc)
diff --git a/contrib/tools/flatc/bin/CMakeLists.txt b/contrib/tools/flatc/bin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/tools/flatc/bin/CMakeLists.txt
+++ b/contrib/tools/flatc/bin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/tools/protoc/bin/CMakeLists.darwin-arm64.txt b/contrib/tools/protoc/bin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83baf4d1b8
--- /dev/null
+++ b/contrib/tools/protoc/bin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(protoc)
+target_compile_options(protoc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(protoc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protoc
+)
+target_link_options(protoc PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(protoc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/main.cc
+)
+target_allocator(protoc
+ system_allocator
+)
+vcs_info(protoc)
diff --git a/contrib/tools/protoc/bin/CMakeLists.txt b/contrib/tools/protoc/bin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/tools/protoc/bin/CMakeLists.txt
+++ b/contrib/tools/protoc/bin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-arm64.txt b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..17abeb77c6
--- /dev/null
+++ b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(cpp_styleguide)
+target_compile_options(cpp_styleguide PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(cpp_styleguide PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protoc
+)
+target_link_options(cpp_styleguide PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(cpp_styleguide PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide.cpp
+)
+target_allocator(cpp_styleguide
+ system_allocator
+)
+vcs_info(cpp_styleguide)
diff --git a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt
+++ b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-arm64.txt b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aaa4ef7e61
--- /dev/null
+++ b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(grpc_cpp)
+target_compile_options(grpc_cpp PRIVATE
+ -DGRPC_USE_ABSL=0
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(grpc_cpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/include
+)
+target_link_libraries(grpc_cpp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ src-compiler-grpc_plugin_support
+)
+target_link_options(grpc_cpp PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(grpc_cpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/cpp_plugin.cc
+)
+target_allocator(grpc_cpp
+ system_allocator
+)
+vcs_info(grpc_cpp)
diff --git a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.txt b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.txt
+++ b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/CMakeLists.darwin-arm64.txt b/library/cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf47314f07
--- /dev/null
+++ b/library/cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,96 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(accurate_accumulate)
+add_subdirectory(actors)
+add_subdirectory(archive)
+add_subdirectory(balloc)
+add_subdirectory(binsaver)
+add_subdirectory(bit_io)
+add_subdirectory(blockcodecs)
+add_subdirectory(bucket_quoter)
+add_subdirectory(build_info)
+add_subdirectory(cache)
+add_subdirectory(case_insensitive_string)
+add_subdirectory(cgiparam)
+add_subdirectory(charset)
+add_subdirectory(codecs)
+add_subdirectory(colorizer)
+add_subdirectory(compproto)
+add_subdirectory(comptable)
+add_subdirectory(config)
+add_subdirectory(containers)
+add_subdirectory(coroutine)
+add_subdirectory(cppparser)
+add_subdirectory(dbg_output)
+add_subdirectory(deprecated)
+add_subdirectory(diff)
+add_subdirectory(digest)
+add_subdirectory(disjoint_sets)
+add_subdirectory(dns)
+add_subdirectory(dwarf_backtrace)
+add_subdirectory(enumbitset)
+add_subdirectory(execprofile)
+add_subdirectory(getopt)
+add_subdirectory(grpc)
+add_subdirectory(histogram)
+add_subdirectory(html)
+add_subdirectory(http)
+add_subdirectory(hyperloglog)
+add_subdirectory(int128)
+add_subdirectory(ipmath)
+add_subdirectory(ipv6_address)
+add_subdirectory(iterator)
+add_subdirectory(json)
+add_subdirectory(lcs)
+add_subdirectory(lfalloc)
+add_subdirectory(linear_regression)
+add_subdirectory(logger)
+add_subdirectory(lua)
+add_subdirectory(lwtrace)
+add_subdirectory(malloc)
+add_subdirectory(messagebus)
+add_subdirectory(mime)
+add_subdirectory(monlib)
+add_subdirectory(on_disk)
+add_subdirectory(openssl)
+add_subdirectory(packedtypes)
+add_subdirectory(packers)
+add_subdirectory(pop_count)
+add_subdirectory(presort)
+add_subdirectory(protobuf)
+add_subdirectory(random_provider)
+add_subdirectory(regex)
+add_subdirectory(resource)
+add_subdirectory(retry)
+add_subdirectory(sanitizer)
+add_subdirectory(scheme)
+add_subdirectory(sighandler)
+add_subdirectory(skiff)
+add_subdirectory(sliding_window)
+add_subdirectory(sse)
+add_subdirectory(streams)
+add_subdirectory(string_utils)
+add_subdirectory(svnversion)
+add_subdirectory(tdigest)
+add_subdirectory(terminate_handler)
+add_subdirectory(testing)
+add_subdirectory(threading)
+add_subdirectory(time_provider)
+add_subdirectory(timezone_conversion)
+add_subdirectory(tld)
+add_subdirectory(type_info)
+add_subdirectory(unicode)
+add_subdirectory(unified_agent_client)
+add_subdirectory(uri)
+add_subdirectory(xml)
+add_subdirectory(yaml)
+add_subdirectory(yson)
+add_subdirectory(yson_pull)
+add_subdirectory(yt)
+add_subdirectory(ytalloc)
diff --git a/library/cpp/CMakeLists.txt b/library/cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/CMakeLists.txt
+++ b/library/cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt b/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6d68faefed
--- /dev/null
+++ b/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-accurate_accumulate)
+target_link_libraries(library-cpp-accurate_accumulate PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-accurate_accumulate PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp
+)
diff --git a/library/cpp/accurate_accumulate/CMakeLists.txt b/library/cpp/accurate_accumulate/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/accurate_accumulate/CMakeLists.txt
+++ b/library/cpp/accurate_accumulate/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/actor_type/CMakeLists.darwin-arm64.txt b/library/cpp/actors/actor_type/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..825e96d2d8
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-actor_type)
+target_link_libraries(cpp-actors-actor_type PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-actors-prof
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-actors-actor_type PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/indexes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/index_constructor.cpp
+)
+generate_enum_serilization(cpp-actors-actor_type
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.h
+ INCLUDE_HEADERS
+ library/cpp/actors/actor_type/common.h
+)
diff --git a/library/cpp/actors/actor_type/CMakeLists.txt b/library/cpp/actors/actor_type/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/actor_type/CMakeLists.txt
+++ b/library/cpp/actors/actor_type/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/core/CMakeLists.darwin-arm64.txt b/library/cpp/actors/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2090b64ba1
--- /dev/null
+++ b/library/cpp/actors/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,101 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-core)
+target_link_libraries(cpp-actors-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-actor_type
+ cpp-actors-memory_log
+ cpp-actors-prof
+ cpp-actors-protos
+ cpp-actors-util
+ library-cpp-execprofile
+ cpp-json-writer
+ library-cpp-logger
+ library-cpp-lwtrace
+ cpp-monlib-dynamic_counters
+ library-cpp-svnversion
+ library-cpp-time_provider
+ cpp-threading-future
+)
+target_sources(cpp-actors-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_bootstrapped.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_virtual.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorid.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/av_bootstrapped.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/buffer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/callstack.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/cpu_manager.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_load.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/events_undelivered.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_base.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_thread.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/harmonizer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/interconnect.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/io_dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_settings.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mailbox.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/monotonic.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/monotonic_provider.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/worker_context.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/probes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/process_stats.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_basic.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_cookie.cpp
+)
+generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/defs.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/defs.h
+)
+generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/actor.h
+)
+generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_iface.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/log_iface.h
+)
diff --git a/library/cpp/actors/core/CMakeLists.txt b/library/cpp/actors/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/core/CMakeLists.txt
+++ b/library/cpp/actors/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/core/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/core/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83199b12b6
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut)
+target_include_directories(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core
+)
+target_link_libraries(library-cpp-actors-core-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-core-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/benchmark_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/performance_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_payload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mon_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut
+ TEST_TARGET
+ library-cpp-actors-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(library-cpp-actors-core-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-core-ut)
diff --git a/library/cpp/actors/core/ut/CMakeLists.txt b/library/cpp/actors/core/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/core/ut/CMakeLists.txt
+++ b/library/cpp/actors/core/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/core/ut_fat/CMakeLists.darwin-arm64.txt b/library/cpp/actors/core/ut_fat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c5420870b1
--- /dev/null
+++ b/library/cpp/actors/core/ut_fat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut_fat)
+target_link_libraries(library-cpp-actors-core-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-core-ut_fat PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-core-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ut_fat/actor_benchmark.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut_fat
+ TEST_TARGET
+ library-cpp-actors-core-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut_fat
+ PROPERTY
+ TIMEOUT
+ 1200
+)
+target_allocator(library-cpp-actors-core-ut_fat
+ system_allocator
+)
+vcs_info(library-cpp-actors-core-ut_fat)
diff --git a/library/cpp/actors/core/ut_fat/CMakeLists.txt b/library/cpp/actors/core/ut_fat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/core/ut_fat/CMakeLists.txt
+++ b/library/cpp/actors/core/ut_fat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/cppcoro/CMakeLists.darwin-arm64.txt b/library/cpp/actors/cppcoro/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9795130141
--- /dev/null
+++ b/library/cpp/actors/cppcoro/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(corobenchmark)
+add_subdirectory(ut)
+
+add_library(cpp-actors-cppcoro)
+target_link_libraries(cpp-actors-cppcoro PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_sources(cpp-actors-cppcoro PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/await_callback.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task_actor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task_group.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task_result.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task.cpp
+)
diff --git a/library/cpp/actors/cppcoro/CMakeLists.txt b/library/cpp/actors/cppcoro/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/cppcoro/CMakeLists.txt
+++ b/library/cpp/actors/cppcoro/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt b/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1043b6f834
--- /dev/null
+++ b/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(corobenchmark)
+target_link_libraries(corobenchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ testing-benchmark-main
+ cpp-actors-cppcoro
+)
+target_link_options(corobenchmark PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(corobenchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/corobenchmark/main.cpp
+)
+target_allocator(corobenchmark
+ system_allocator
+)
+vcs_info(corobenchmark)
diff --git a/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt b/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt
+++ b/library/cpp/actors/cppcoro/corobenchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ec40dbae9
--- /dev/null
+++ b/library/cpp/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-cppcoro-ut)
+target_include_directories(library-cpp-actors-cppcoro-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro
+)
+target_link_libraries(library-cpp-actors-cppcoro-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-cppcoro
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-cppcoro-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-cppcoro-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/cppcoro/task_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-cppcoro-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-cppcoro-ut
+ TEST_TARGET
+ library-cpp-actors-cppcoro-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-cppcoro-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-cppcoro-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-cppcoro-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-cppcoro-ut)
diff --git a/library/cpp/actors/cppcoro/ut/CMakeLists.txt b/library/cpp/actors/cppcoro/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/cppcoro/ut/CMakeLists.txt
+++ b/library/cpp/actors/cppcoro/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/dnscachelib/CMakeLists.darwin-arm64.txt b/library/cpp/actors/dnscachelib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b769b26408
--- /dev/null
+++ b/library/cpp/actors/dnscachelib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-actors-dnscachelib)
+target_link_libraries(cpp-actors-dnscachelib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-c-ares
+ library-cpp-lwtrace
+ cpp-deprecated-atomic
+)
+target_sources(cpp-actors-dnscachelib PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnscachelib/dnscache.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnscachelib/probes.cpp
+)
diff --git a/library/cpp/actors/dnscachelib/CMakeLists.txt b/library/cpp/actors/dnscachelib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/dnscachelib/CMakeLists.txt
+++ b/library/cpp/actors/dnscachelib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.darwin-arm64.txt b/library/cpp/actors/dnsresolver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..30d19f1b99
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-dnsresolver)
+target_link_libraries(cpp-actors-dnsresolver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ contrib-libs-c-ares
+)
+target_sources(cpp-actors-dnsresolver PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp
+)
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.txt b/library/cpp/actors/dnsresolver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/dnsresolver/CMakeLists.txt
+++ b/library/cpp/actors/dnsresolver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8874bee8e5
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-dnsresolver-ut)
+target_include_directories(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_link_libraries(library-cpp-actors-dnsresolver-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-dnsresolver
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-dnsresolver-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-dnsresolver-ut
+ TEST_TARGET
+ library-cpp-actors-dnsresolver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-dnsresolver-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-dnsresolver-ut)
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/dnsresolver/ut/CMakeLists.txt
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b2acea01a5
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(example_01_ping_pong)
+target_link_libraries(example_01_ping_pong PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_link_options(example_01_ping_pong PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(example_01_ping_pong PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/01_ping_pong/main.cpp
+)
+target_allocator(example_01_ping_pong
+ library-cpp-lfalloc
+)
+vcs_info(example_01_ping_pong)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5e379dc7ca
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(example_02_discovery)
+target_link_libraries(example_02_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-http
+ contrib-libs-protobuf
+)
+target_link_options(example_02_discovery PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/protocol.proto
+)
+target_sources(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/lookup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/publish.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/replica.cpp
+)
+target_allocator(example_02_discovery
+ library-cpp-lfalloc
+)
+target_proto_addincls(example_02_discovery
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(example_02_discovery
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(example_02_discovery)
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/examples/02_discovery/CMakeLists.txt
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/helpers/CMakeLists.darwin-arm64.txt b/library/cpp/actors/helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7367c0b925
--- /dev/null
+++ b/library/cpp/actors/helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-helpers)
+target_link_libraries(cpp-actors-helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+)
+target_sources(cpp-actors-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/activeactors.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/flow_controlled_queue.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor.cpp
+)
diff --git a/library/cpp/actors/helpers/CMakeLists.txt b/library/cpp/actors/helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/helpers/CMakeLists.txt
+++ b/library/cpp/actors/helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/helpers/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0112181222
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-helpers-ut)
+target_include_directories(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers
+)
+target_link_libraries(library-cpp-actors-helpers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-helpers-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-helpers-ut
+ TEST_TARGET
+ library-cpp-actors-helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(library-cpp-actors-helpers-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-helpers-ut)
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.txt b/library/cpp/actors/helpers/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/helpers/ut/CMakeLists.txt
+++ b/library/cpp/actors/helpers/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/http/CMakeLists.darwin-arm64.txt b/library/cpp/actors/http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1947b6fa39
--- /dev/null
+++ b/library/cpp/actors/http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-http)
+target_link_libraries(cpp-actors-http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ contrib-libs-zlib
+ cpp-actors-core
+ cpp-actors-interconnect
+ library-cpp-dns
+ cpp-monlib-metrics
+ cpp-string_utils-quote
+)
+target_sources(cpp-actors-http PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_cache.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_compress.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_proxy_acceptor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_proxy_incoming.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_proxy_outgoing.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_static.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http.cpp
+)
diff --git a/library/cpp/actors/http/CMakeLists.txt b/library/cpp/actors/http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/http/CMakeLists.txt
+++ b/library/cpp/actors/http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/http/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/http/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f9c9afac61
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-http-ut)
+target_include_directories(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http
+)
+target_link_libraries(library-cpp-actors-http-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-http
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-http-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-http-ut
+ TEST_TARGET
+ library-cpp-actors-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-http-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-http-ut)
diff --git a/library/cpp/actors/http/ut/CMakeLists.txt b/library/cpp/actors/http/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/http/ut/CMakeLists.txt
+++ b/library/cpp/actors/http/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92e1fec219
--- /dev/null
+++ b/library/cpp/actors/interconnect/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_huge_cluster)
+
+add_library(cpp-actors-interconnect)
+target_link_libraries(cpp-actors-interconnect PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libc_compat
+ contrib-libs-openssl
+ contrib-libs-xxhash
+ cpp-actors-core
+ cpp-actors-dnscachelib
+ cpp-actors-dnsresolver
+ cpp-actors-helpers
+ cpp-actors-prof
+ cpp-actors-protos
+ cpp-actors-util
+ cpp-actors-wilson
+ cpp-digest-crc32c
+ library-cpp-json
+ library-cpp-lwtrace
+ cpp-monlib-dynamic_counters
+ cpp-monlib-metrics
+ service-pages-resources
+ service-pages-tablesorter
+ cpp-openssl-init
+ library-cpp-packedtypes
+)
+target_sources(cpp-actors-interconnect PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_address.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_channel.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_counters.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_handshake.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_mon.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_nameserver_table.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_resolve.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_stream.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_tcp_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_tcp_server.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/interconnect_tcp_session.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/load.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/packet.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/poller_actor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/poller_tcp.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/poller_tcp_unit.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/poller_tcp_unit_select.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/types.cpp
+)
diff --git a/library/cpp/actors/interconnect/CMakeLists.txt b/library/cpp/actors/interconnect/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/mock/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c29d87b0ce
--- /dev/null
+++ b/library/cpp/actors/interconnect/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(actors-interconnect-mock)
+target_link_libraries(actors-interconnect-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-interconnect
+)
+target_sources(actors-interconnect-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/mock/ic_mock.cpp
+)
diff --git a/library/cpp/actors/interconnect/mock/CMakeLists.txt b/library/cpp/actors/interconnect/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/mock/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0b2d5cfe5c
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(library-cpp-actors-interconnect-ut)
+target_link_libraries(library-cpp-actors-interconnect-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-actors-testlib
+ cpp-digest-md5
+ cpp-testing-unittest
+)
+target_link_options(library-cpp-actors-interconnect-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/channel_scheduler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/event_holder_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/large.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/outgoing_stream_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/poller_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/dynamic_proxy_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/sticking_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(library-cpp-actors-interconnect-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-interconnect-ut)
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.txt b/library/cpp/actors/interconnect/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/ut/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6a86ac09b
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(interconnect-ut-lib INTERFACE)
+target_link_libraries(interconnect-ut-lib INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..01f1765c08
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(interconnect-ut-protos)
+target_link_libraries(interconnect-ut-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(interconnect-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/protos/interconnect_test.proto
+)
+target_proto_addincls(interconnect-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(interconnect-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad106fc729
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_fat)
+target_link_libraries(library-cpp-actors-interconnect-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ actors-interconnect-mock
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-deprecated-atomic
+)
+target_link_options(library-cpp-actors-interconnect-ut_fat PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_fat/main.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_fat
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-interconnect-ut_fat
+ system_allocator
+)
+vcs_info(library-cpp-actors-interconnect-ut_fat)
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b91e1530bb
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_huge_cluster)
+target_link_libraries(library-cpp-actors-interconnect-ut_huge_cluster PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_huge_cluster/huge_cluster.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(library-cpp-actors-interconnect-ut_huge_cluster
+ system_allocator
+)
+vcs_info(library-cpp-actors-interconnect-ut_huge_cluster)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/log_backend/CMakeLists.darwin-arm64.txt b/library/cpp/actors/log_backend/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2845e78e35
--- /dev/null
+++ b/library/cpp/actors/log_backend/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-actors-log_backend)
+target_link_libraries(cpp-actors-log_backend PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-logger
+)
+target_sources(cpp-actors-log_backend PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/log_backend/actor_log_backend.cpp
+)
diff --git a/library/cpp/actors/log_backend/CMakeLists.txt b/library/cpp/actors/log_backend/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/log_backend/CMakeLists.txt
+++ b/library/cpp/actors/log_backend/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/memory_log/CMakeLists.darwin-arm64.txt b/library/cpp/actors/memory_log/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5109f0fcce
--- /dev/null
+++ b/library/cpp/actors/memory_log/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-actors-memory_log)
+target_link_libraries(cpp-actors-memory_log PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-queue
+ contrib-libs-linuxvdso
+ cpp-deprecated-atomic
+)
+target_sources(cpp-actors-memory_log PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/memory_log/memlog.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/memory_log/mmap.cpp
+)
diff --git a/library/cpp/actors/memory_log/CMakeLists.txt b/library/cpp/actors/memory_log/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/memory_log/CMakeLists.txt
+++ b/library/cpp/actors/memory_log/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/prof/CMakeLists.darwin-arm64.txt b/library/cpp/actors/prof/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c641cf5a52
--- /dev/null
+++ b/library/cpp/actors/prof/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-prof)
+target_link_libraries(cpp-actors-prof PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-tcmalloc-malloc_extension
+ library-cpp-charset
+ cpp-containers-atomizer
+)
+target_sources(cpp-actors-prof PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/tag.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/tcmalloc.cpp
+)
diff --git a/library/cpp/actors/prof/CMakeLists.txt b/library/cpp/actors/prof/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/prof/CMakeLists.txt
+++ b/library/cpp/actors/prof/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/prof/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/prof/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..44995c4d4b
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-prof-ut)
+target_include_directories(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof
+)
+target_link_libraries(library-cpp-actors-prof-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-prof
+)
+target_link_options(library-cpp-actors-prof-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/ut/tag_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-prof-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-prof-ut
+ TEST_TARGET
+ library-cpp-actors-prof-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-prof-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-prof-ut)
diff --git a/library/cpp/actors/prof/ut/CMakeLists.txt b/library/cpp/actors/prof/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/prof/ut/CMakeLists.txt
+++ b/library/cpp/actors/prof/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/protos/CMakeLists.darwin-arm64.txt b/library/cpp/actors/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be3257b127
--- /dev/null
+++ b/library/cpp/actors/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(cpp-actors-protos)
+target_link_libraries(cpp-actors-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(cpp-actors-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/protos/actors.proto
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/protos/interconnect.proto
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/protos/services_common.proto
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/protos/unittests.proto
+)
+target_proto_addincls(cpp-actors-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(cpp-actors-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/protos/CMakeLists.txt b/library/cpp/actors/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/protos/CMakeLists.txt
+++ b/library/cpp/actors/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/testlib/CMakeLists.darwin-arm64.txt b/library/cpp/actors/testlib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f1c8d01a2
--- /dev/null
+++ b/library/cpp/actors/testlib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-testlib)
+target_link_libraries(cpp-actors-testlib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ actors-interconnect-mock
+ cpp-actors-protos
+ library-cpp-random_provider
+ library-cpp-time_provider
+)
+target_sources(cpp-actors-testlib PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/test_runtime.cpp
+)
diff --git a/library/cpp/actors/testlib/CMakeLists.txt b/library/cpp/actors/testlib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/testlib/CMakeLists.txt
+++ b/library/cpp/actors/testlib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/testlib/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae1df12ed6
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-testlib-ut)
+target_include_directories(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib
+)
+target_link_libraries(library-cpp-actors-testlib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-testlib-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/decorator_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-testlib-ut
+ TEST_TARGET
+ library-cpp-actors-testlib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-testlib-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-testlib-ut)
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.txt b/library/cpp/actors/testlib/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/testlib/ut/CMakeLists.txt
+++ b/library/cpp/actors/testlib/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/util/CMakeLists.darwin-arm64.txt b/library/cpp/actors/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be68d418f7
--- /dev/null
+++ b/library/cpp/actors/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-actors-util)
+target_link_libraries(cpp-actors-util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-absl_flat_hash
+ cpp-deprecated-atomic
+ library-cpp-pop_count
+)
+target_sources(cpp-actors-util PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/threadparkpad.cpp
+)
diff --git a/library/cpp/actors/util/CMakeLists.txt b/library/cpp/actors/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/util/CMakeLists.txt
+++ b/library/cpp/actors/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/util/ut/CMakeLists.darwin-arm64.txt b/library/cpp/actors/util/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9b02cd1836
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-util-ut)
+target_include_directories(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util
+)
+target_link_libraries(library-cpp-actors-util-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-util
+)
+target_link_options(library-cpp-actors-util-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/thread_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_native_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/unordered_cache_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-util-ut
+ TEST_TARGET
+ library-cpp-actors-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(library-cpp-actors-util-ut
+ system_allocator
+)
+vcs_info(library-cpp-actors-util-ut)
diff --git a/library/cpp/actors/util/ut/CMakeLists.txt b/library/cpp/actors/util/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/util/ut/CMakeLists.txt
+++ b/library/cpp/actors/util/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/wilson/CMakeLists.darwin-arm64.txt b/library/cpp/actors/wilson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..45704ccd5a
--- /dev/null
+++ b/library/cpp/actors/wilson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(cpp-actors-wilson)
+target_link_libraries(cpp-actors-wilson PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ actors-wilson-protos
+)
+target_sources(cpp-actors-wilson PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/wilson/wilson_event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/wilson/wilson_span.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/wilson/wilson_profile_span.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/wilson/wilson_trace.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/wilson/wilson_uploader.cpp
+)
diff --git a/library/cpp/actors/wilson/CMakeLists.txt b/library/cpp/actors/wilson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/wilson/CMakeLists.txt
+++ b/library/cpp/actors/wilson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/actors/wilson/protos/CMakeLists.darwin-arm64.txt b/library/cpp/actors/wilson/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92afc01bb4
--- /dev/null
+++ b/library/cpp/actors/wilson/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(actors-wilson-protos INTERFACE)
+target_link_libraries(actors-wilson-protos INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-opentelemetry-proto
+)
diff --git a/library/cpp/actors/wilson/protos/CMakeLists.txt b/library/cpp/actors/wilson/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/actors/wilson/protos/CMakeLists.txt
+++ b/library/cpp/actors/wilson/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/archive/CMakeLists.darwin-arm64.txt b/library/cpp/archive/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37c28ba02a
--- /dev/null
+++ b/library/cpp/archive/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-archive)
+target_link_libraries(library-cpp-archive PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-archive PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp
+)
diff --git a/library/cpp/archive/CMakeLists.txt b/library/cpp/archive/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/archive/CMakeLists.txt
+++ b/library/cpp/archive/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/balloc/CMakeLists.darwin-arm64.txt b/library/cpp/balloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..08814068d1
--- /dev/null
+++ b/library/cpp/balloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(setup)
+
+add_library(library-cpp-balloc)
+target_compile_options(library-cpp-balloc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(library-cpp-balloc PUBLIC
+ contrib-libs-cxxsupp
+ cpp-balloc-lib
+)
+target_sources(library-cpp-balloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/balloc/balloc.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/balloc/malloc-info.cpp
+)
diff --git a/library/cpp/balloc/CMakeLists.txt b/library/cpp/balloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/balloc/CMakeLists.txt
+++ b/library/cpp/balloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt b/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0444876681
--- /dev/null
+++ b/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-balloc-lib)
+target_compile_options(cpp-balloc-lib PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(cpp-balloc-lib PUBLIC
+ contrib-libs-cxxsupp
+ cpp-balloc-setup
+ cpp-malloc-api
+)
+target_sources(cpp-balloc-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.cpp
+)
diff --git a/library/cpp/balloc/lib/CMakeLists.txt b/library/cpp/balloc/lib/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/library/cpp/balloc/lib/CMakeLists.txt
+++ b/library/cpp/balloc/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/library/cpp/balloc/setup/CMakeLists.darwin-arm64.txt b/library/cpp/balloc/setup/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37f588f7f7
--- /dev/null
+++ b/library/cpp/balloc/setup/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-balloc-setup)
+target_link_libraries(cpp-balloc-setup PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(cpp-balloc-setup PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/balloc/setup/alloc.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/balloc/setup/enable.cpp
+)
diff --git a/library/cpp/balloc/setup/CMakeLists.txt b/library/cpp/balloc/setup/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/library/cpp/balloc/setup/CMakeLists.txt
+++ b/library/cpp/balloc/setup/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/library/cpp/binsaver/CMakeLists.darwin-arm64.txt b/library/cpp/binsaver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3430226be1
--- /dev/null
+++ b/library/cpp/binsaver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-binsaver)
+target_link_libraries(library-cpp-binsaver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-2d_array
+)
+target_sources(library-cpp-binsaver PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/mem_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/util_stream_io.cpp
+)
diff --git a/library/cpp/binsaver/CMakeLists.txt b/library/cpp/binsaver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/binsaver/CMakeLists.txt
+++ b/library/cpp/binsaver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/bit_io/CMakeLists.darwin-arm64.txt b/library/cpp/bit_io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e27b7a842
--- /dev/null
+++ b/library/cpp/bit_io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-bit_io)
+target_link_libraries(library-cpp-bit_io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-accessors
+)
+target_sources(library-cpp-bit_io PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/bit_io/bitinput.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/bit_io/bitinput_impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/bit_io/bitoutput.cpp
+)
diff --git a/library/cpp/bit_io/CMakeLists.txt b/library/cpp/bit_io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/bit_io/CMakeLists.txt
+++ b/library/cpp/bit_io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b5f212510
--- /dev/null
+++ b/library/cpp/blockcodecs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codecs)
+add_subdirectory(core)
+
+add_library(library-cpp-blockcodecs)
+target_link_libraries(library-cpp-blockcodecs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-blockcodecs-core
+ blockcodecs-codecs-brotli
+ blockcodecs-codecs-bzip
+ blockcodecs-codecs-fastlz
+ blockcodecs-codecs-legacy_zstd06
+ blockcodecs-codecs-lz4
+ blockcodecs-codecs-lzma
+ blockcodecs-codecs-snappy
+ blockcodecs-codecs-zlib
+ blockcodecs-codecs-zstd
+)
+target_sources(library-cpp-blockcodecs PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/stream.cpp
+)
diff --git a/library/cpp/blockcodecs/CMakeLists.txt b/library/cpp/blockcodecs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/CMakeLists.txt
+++ b/library/cpp/blockcodecs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0af596c5de
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/brotli/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-brotli INTERFACE)
+target_link_libraries(blockcodecs-codecs-brotli INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ libs-brotli-enc
+ libs-brotli-dec
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-brotli.global blockcodecs-codecs-brotli)
+target_link_libraries(blockcodecs-codecs-brotli.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-brotli-enc
+ libs-brotli-dec
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-brotli.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/brotli/brotli.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt b/library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/brotli/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fd7180543c
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/bzip/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-bzip INTERFACE)
+target_link_libraries(blockcodecs-codecs-bzip INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libbz2
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-bzip.global blockcodecs-codecs-bzip)
+target_link_libraries(blockcodecs-codecs-bzip.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libbz2
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-bzip.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/bzip/bzip.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt b/library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/bzip/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0acda91a4d
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-fastlz INTERFACE)
+target_link_libraries(blockcodecs-codecs-fastlz INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fastlz
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-fastlz.global blockcodecs-codecs-fastlz)
+target_link_libraries(blockcodecs-codecs-fastlz.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fastlz
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-fastlz.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/fastlz/fastlz.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt b/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/fastlz/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6d20bf8fc
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-legacy_zstd06 INTERFACE)
+target_link_libraries(blockcodecs-codecs-legacy_zstd06 INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd06
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-legacy_zstd06.global blockcodecs-codecs-legacy_zstd06)
+target_link_libraries(blockcodecs-codecs-legacy_zstd06.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd06
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-legacy_zstd06.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/legacy_zstd06/legacy_zstd06.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt b/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/legacy_zstd06/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92e6f5f9db
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/lz4/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-lz4 INTERFACE)
+target_link_libraries(blockcodecs-codecs-lz4 INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lz4
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-lz4.global blockcodecs-codecs-lz4)
+target_link_libraries(blockcodecs-codecs-lz4.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lz4
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-lz4.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/lz4/lz4.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt b/library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/lz4/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..acaf2f9e8d
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/lzma/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-lzma INTERFACE)
+target_link_libraries(blockcodecs-codecs-lzma INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lzmasdk
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-lzma.global blockcodecs-codecs-lzma)
+target_link_libraries(blockcodecs-codecs-lzma.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lzmasdk
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-lzma.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/lzma/lzma.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt b/library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/lzma/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..995fd58dfc
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/snappy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-snappy INTERFACE)
+target_link_libraries(blockcodecs-codecs-snappy INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-snappy
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-snappy.global blockcodecs-codecs-snappy)
+target_link_libraries(blockcodecs-codecs-snappy.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-snappy
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-snappy.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/snappy/snappy.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt b/library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/snappy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..41f29397bc
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/zlib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-zlib INTERFACE)
+target_link_libraries(blockcodecs-codecs-zlib INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-zlib.global blockcodecs-codecs-zlib)
+target_link_libraries(blockcodecs-codecs-zlib.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-zlib.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/zlib/zlib.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt b/library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/zlib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..894ad9b9a8
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/zstd/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blockcodecs-codecs-zstd INTERFACE)
+target_link_libraries(blockcodecs-codecs-zstd INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd
+ cpp-blockcodecs-core
+)
+
+add_global_library_for(blockcodecs-codecs-zstd.global blockcodecs-codecs-zstd)
+target_link_libraries(blockcodecs-codecs-zstd.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd
+ cpp-blockcodecs-core
+)
+target_sources(blockcodecs-codecs-zstd.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/codecs/zstd/zstd.cpp
+)
diff --git a/library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt b/library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt
+++ b/library/cpp/blockcodecs/codecs/zstd/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/blockcodecs/core/CMakeLists.darwin-arm64.txt b/library/cpp/blockcodecs/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c49c7d01b8
--- /dev/null
+++ b/library/cpp/blockcodecs/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-blockcodecs-core)
+target_link_libraries(cpp-blockcodecs-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-blockcodecs-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/core/codecs.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/blockcodecs/core/stream.cpp
+)
diff --git a/library/cpp/blockcodecs/core/CMakeLists.txt b/library/cpp/blockcodecs/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/blockcodecs/core/CMakeLists.txt
+++ b/library/cpp/blockcodecs/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/bucket_quoter/CMakeLists.darwin-arm64.txt b/library/cpp/bucket_quoter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..64ef18e5d9
--- /dev/null
+++ b/library/cpp/bucket_quoter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-bucket_quoter)
+target_link_libraries(library-cpp-bucket_quoter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-bucket_quoter PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/bucket_quoter/bucket_quoter.cpp
+)
diff --git a/library/cpp/bucket_quoter/CMakeLists.txt b/library/cpp/bucket_quoter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/bucket_quoter/CMakeLists.txt
+++ b/library/cpp/bucket_quoter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/build_info/CMakeLists.darwin-arm64.txt b/library/cpp/build_info/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a749cac8a0
--- /dev/null
+++ b/library/cpp/build_info/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+set(
+ KOSHER_SVN_VERSION
+
+)
+set(
+ SANDBOX_TASK_ID
+ 0
+)
+set(
+ BUILD_TYPE
+ RELEASE
+)
+
+add_library(library-cpp-build_info)
+target_include_directories(library-cpp-build_info PUBLIC
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info
+)
+target_link_libraries(library-cpp-build_info PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-base64
+)
+target_sources(library-cpp-build_info PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/build_info.cpp
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/build/scripts/build_info_gen.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/build/scripts/build_info_gen.py
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h
+ \"${CMAKE_CXX_COMPILER}\"
+ \"${CMAKE_CXX_FLAGS}\"
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/library/cpp/build_info/sandbox.cpp.in
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info.cpp.in
+ ${CMAKE_BINARY_DIR}/library/cpp/build_info/build_info.cpp
+)
diff --git a/library/cpp/build_info/CMakeLists.txt b/library/cpp/build_info/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/build_info/CMakeLists.txt
+++ b/library/cpp/build_info/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/cache/CMakeLists.darwin-arm64.txt b/library/cpp/cache/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..82cae52ee2
--- /dev/null
+++ b/library/cpp/cache/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-cache)
+target_link_libraries(library-cpp-cache PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-cache PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/cache/cache.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/cache/thread_safe_cache.cpp
+)
diff --git a/library/cpp/cache/CMakeLists.txt b/library/cpp/cache/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/cache/CMakeLists.txt
+++ b/library/cpp/cache/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/case_insensitive_string/CMakeLists.darwin-arm64.txt b/library/cpp/case_insensitive_string/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d6d3602e2d
--- /dev/null
+++ b/library/cpp/case_insensitive_string/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-case_insensitive_string)
+target_link_libraries(library-cpp-case_insensitive_string PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libc_compat
+ cpp-digest-murmur
+)
+target_sources(library-cpp-case_insensitive_string PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/case_insensitive_string/case_insensitive_char_traits.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/case_insensitive_string/case_insensitive_string.cpp
+)
diff --git a/library/cpp/case_insensitive_string/CMakeLists.txt b/library/cpp/case_insensitive_string/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/case_insensitive_string/CMakeLists.txt
+++ b/library/cpp/case_insensitive_string/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt b/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..186d00a938
--- /dev/null
+++ b/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-cgiparam)
+target_link_libraries(library-cpp-cgiparam PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-iterator
+ cpp-string_utils-quote
+ cpp-string_utils-scan
+)
+target_sources(library-cpp-cgiparam PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp
+)
diff --git a/library/cpp/cgiparam/CMakeLists.txt b/library/cpp/cgiparam/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/cgiparam/CMakeLists.txt
+++ b/library/cpp/cgiparam/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/charset/CMakeLists.darwin-arm64.txt b/library/cpp/charset/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cade4ef3cd
--- /dev/null
+++ b/library/cpp/charset/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lite)
+
+add_library(library-cpp-charset)
+target_link_libraries(library-cpp-charset PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-charset-lite
+)
+target_sources(library-cpp-charset PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp
+)
diff --git a/library/cpp/charset/CMakeLists.txt b/library/cpp/charset/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/charset/CMakeLists.txt
+++ b/library/cpp/charset/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/charset/lite/CMakeLists.darwin-arm64.txt b/library/cpp/charset/lite/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a3337929c
--- /dev/null
+++ b/library/cpp/charset/lite/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-charset-lite)
+target_link_libraries(cpp-charset-lite PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-charset-lite PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/encrec_data.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/codepage.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/cp_encrec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/doccodes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/charset/ci_string.cpp
+)
diff --git a/library/cpp/charset/lite/CMakeLists.txt b/library/cpp/charset/lite/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/charset/lite/CMakeLists.txt
+++ b/library/cpp/charset/lite/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/codecs/CMakeLists.darwin-arm64.txt b/library/cpp/codecs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2bc3133ce1
--- /dev/null
+++ b/library/cpp/codecs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(greedy_dict)
+
+add_library(library-cpp-codecs)
+target_link_libraries(library-cpp-codecs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd
+ library-cpp-bit_io
+ library-cpp-blockcodecs
+ cpp-codecs-greedy_dict
+ library-cpp-comptable
+ cpp-containers-comptrie
+ cpp-deprecated-accessors
+ library-cpp-packers
+ cpp-string_utils-relaxed_escaper
+)
+target_sources(library-cpp-codecs PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/tls_cache.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/codecs.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/codecs_registry.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/comptable_codec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/delta_codec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/float_huffman.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/huffman_codec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/pfor_codec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/solar_codec.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/zstd_dict_codec.cpp
+)
diff --git a/library/cpp/codecs/CMakeLists.txt b/library/cpp/codecs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/codecs/CMakeLists.txt
+++ b/library/cpp/codecs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/codecs/greedy_dict/CMakeLists.darwin-arm64.txt b/library/cpp/codecs/greedy_dict/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7f06cf83d8
--- /dev/null
+++ b/library/cpp/codecs/greedy_dict/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-codecs-greedy_dict)
+target_link_libraries(cpp-codecs-greedy_dict PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-comptrie
+ cpp-string_utils-relaxed_escaper
+)
+target_sources(cpp-codecs-greedy_dict PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/greedy_dict/gd_builder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/codecs/greedy_dict/gd_entry.cpp
+)
diff --git a/library/cpp/codecs/greedy_dict/CMakeLists.txt b/library/cpp/codecs/greedy_dict/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/codecs/greedy_dict/CMakeLists.txt
+++ b/library/cpp/codecs/greedy_dict/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/colorizer/CMakeLists.darwin-arm64.txt b/library/cpp/colorizer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a47c86d7ea
--- /dev/null
+++ b/library/cpp/colorizer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-colorizer)
+target_link_libraries(library-cpp-colorizer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-colorizer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/colorizer/colors.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/colorizer/output.cpp
+)
diff --git a/library/cpp/colorizer/CMakeLists.txt b/library/cpp/colorizer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/colorizer/CMakeLists.txt
+++ b/library/cpp/colorizer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/compproto/CMakeLists.darwin-arm64.txt b/library/cpp/compproto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..abcc95d486
--- /dev/null
+++ b/library/cpp/compproto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-compproto)
+target_link_libraries(library-cpp-compproto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-compproto PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp
+)
diff --git a/library/cpp/compproto/CMakeLists.txt b/library/cpp/compproto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/compproto/CMakeLists.txt
+++ b/library/cpp/compproto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/comptable/CMakeLists.darwin-arm64.txt b/library/cpp/comptable/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e695ca6521
--- /dev/null
+++ b/library/cpp/comptable/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-comptable)
+target_link_libraries(library-cpp-comptable PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-compproto
+)
+target_sources(library-cpp-comptable PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/comptable/comptable.cpp
+)
diff --git a/library/cpp/comptable/CMakeLists.txt b/library/cpp/comptable/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/comptable/CMakeLists.txt
+++ b/library/cpp/comptable/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/config/CMakeLists.darwin-arm64.txt b/library/cpp/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..23c772e4fc
--- /dev/null
+++ b/library/cpp/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,60 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_archiver_bin
+ TOOL_archiver_dependency
+ tools/archiver
+ archiver
+)
+
+add_library(library-cpp-config)
+target_include_directories(library-cpp-config PUBLIC
+ ${CMAKE_BINARY_DIR}/library/cpp/config
+)
+target_link_libraries(library-cpp-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-archive
+ library-cpp-json
+ library-cpp-lua
+ cpp-string_utils-relaxed_escaper
+)
+target_sources(library-cpp-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/markup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/ini.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/domscheme.cpp
+ ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc
+ DEPENDS
+ ${TOOL_archiver_bin}
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/support/pp.lua
+ COMMAND
+ ${TOOL_archiver_bin}
+ -q
+ -x
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/support/pp.lua:
+ -o
+ ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc
+)
+target_ragel_lexers(library-cpp-config
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/config/markupfsm.h.rl6
+ -CG2
+)
+if(NOT CMAKE_CROSSCOMPILING)
+ add_dependencies(library-cpp-config
+ archiver
+)
+endif()
diff --git a/library/cpp/config/CMakeLists.txt b/library/cpp/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/config/CMakeLists.txt
+++ b/library/cpp/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/2d_array/CMakeLists.darwin-arm64.txt b/library/cpp/containers/2d_array/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c1371c0def
--- /dev/null
+++ b/library/cpp/containers/2d_array/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-2d_array)
+target_link_libraries(cpp-containers-2d_array PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-2d_array PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/2d_array/2d_array.cpp
+)
diff --git a/library/cpp/containers/2d_array/CMakeLists.txt b/library/cpp/containers/2d_array/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/2d_array/CMakeLists.txt
+++ b/library/cpp/containers/2d_array/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/absl_flat_hash/CMakeLists.darwin-arm64.txt b/library/cpp/containers/absl_flat_hash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4ab79d02db
--- /dev/null
+++ b/library/cpp/containers/absl_flat_hash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-absl_flat_hash)
+target_include_directories(cpp-containers-absl_flat_hash PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp
+)
+target_link_libraries(cpp-containers-absl_flat_hash PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ abseil-cpp-absl-container
+)
+target_sources(cpp-containers-absl_flat_hash PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/absl_flat_hash/flat_hash_map.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/absl_flat_hash/flat_hash_set.cpp
+)
diff --git a/library/cpp/containers/absl_flat_hash/CMakeLists.txt b/library/cpp/containers/absl_flat_hash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/absl_flat_hash/CMakeLists.txt
+++ b/library/cpp/containers/absl_flat_hash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/atomizer/CMakeLists.darwin-arm64.txt b/library/cpp/containers/atomizer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0486e1c36
--- /dev/null
+++ b/library/cpp/containers/atomizer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-atomizer)
+target_link_libraries(cpp-containers-atomizer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-str_map
+)
+target_sources(cpp-containers-atomizer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/atomizer/atomizer.cpp
+)
diff --git a/library/cpp/containers/atomizer/CMakeLists.txt b/library/cpp/containers/atomizer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/atomizer/CMakeLists.txt
+++ b/library/cpp/containers/atomizer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/bitseq/CMakeLists.darwin-arm64.txt b/library/cpp/containers/bitseq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..97b139a7fa
--- /dev/null
+++ b/library/cpp/containers/bitseq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-bitseq)
+target_link_libraries(cpp-containers-bitseq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ util-draft
+ library-cpp-pop_count
+)
+target_sources(cpp-containers-bitseq PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/bitseq/bitvector.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/bitseq/readonly_bitvector.cpp
+)
diff --git a/library/cpp/containers/bitseq/CMakeLists.txt b/library/cpp/containers/bitseq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/bitseq/CMakeLists.txt
+++ b/library/cpp/containers/bitseq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/compact_vector/CMakeLists.darwin-arm64.txt b/library/cpp/containers/compact_vector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..57d3af0a1b
--- /dev/null
+++ b/library/cpp/containers/compact_vector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-compact_vector)
+target_link_libraries(cpp-containers-compact_vector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-compact_vector PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/compact_vector/compact_vector.cpp
+)
diff --git a/library/cpp/containers/compact_vector/CMakeLists.txt b/library/cpp/containers/compact_vector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/compact_vector/CMakeLists.txt
+++ b/library/cpp/containers/compact_vector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt b/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3a3d86aed7
--- /dev/null
+++ b/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-comptrie)
+target_link_libraries(cpp-containers-comptrie PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-packers
+ cpp-containers-compact_vector
+ cpp-on_disk-chunks
+ util-draft
+)
+target_sources(cpp-containers-comptrie PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/make_fast_layout.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/minimize.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/node.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/opaque_trie_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/prefix_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/search_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/write_trie_backwards.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/writeable_node.cpp
+)
diff --git a/library/cpp/containers/comptrie/CMakeLists.txt b/library/cpp/containers/comptrie/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/comptrie/CMakeLists.txt
+++ b/library/cpp/containers/comptrie/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-arm64.txt b/library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1fd4597d59
--- /dev/null
+++ b/library/cpp/containers/disjoint_interval_tree/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-disjoint_interval_tree)
+target_link_libraries(cpp-containers-disjoint_interval_tree PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-disjoint_interval_tree PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.cpp
+)
diff --git a/library/cpp/containers/disjoint_interval_tree/CMakeLists.txt b/library/cpp/containers/disjoint_interval_tree/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/disjoint_interval_tree/CMakeLists.txt
+++ b/library/cpp/containers/disjoint_interval_tree/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-arm64.txt b/library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..651df561c1
--- /dev/null
+++ b/library/cpp/containers/intrusive_avl_tree/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-intrusive_avl_tree)
+target_link_libraries(cpp-containers-intrusive_avl_tree PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-intrusive_avl_tree PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/intrusive_avl_tree/avltree.cpp
+)
diff --git a/library/cpp/containers/intrusive_avl_tree/CMakeLists.txt b/library/cpp/containers/intrusive_avl_tree/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/intrusive_avl_tree/CMakeLists.txt
+++ b/library/cpp/containers/intrusive_avl_tree/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-arm64.txt b/library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..45d7acb838
--- /dev/null
+++ b/library/cpp/containers/intrusive_rb_tree/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-intrusive_rb_tree)
+target_link_libraries(cpp-containers-intrusive_rb_tree PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-intrusive_rb_tree PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/intrusive_rb_tree/rb_tree.cpp
+)
diff --git a/library/cpp/containers/intrusive_rb_tree/CMakeLists.txt b/library/cpp/containers/intrusive_rb_tree/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/intrusive_rb_tree/CMakeLists.txt
+++ b/library/cpp/containers/intrusive_rb_tree/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/paged_vector/CMakeLists.darwin-arm64.txt b/library/cpp/containers/paged_vector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c44af664bc
--- /dev/null
+++ b/library/cpp/containers/paged_vector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-paged_vector)
+target_link_libraries(cpp-containers-paged_vector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-paged_vector PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/paged_vector/paged_vector.cpp
+)
diff --git a/library/cpp/containers/paged_vector/CMakeLists.txt b/library/cpp/containers/paged_vector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/paged_vector/CMakeLists.txt
+++ b/library/cpp/containers/paged_vector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/ring_buffer/CMakeLists.darwin-arm64.txt b/library/cpp/containers/ring_buffer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..490e1427d4
--- /dev/null
+++ b/library/cpp/containers/ring_buffer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-ring_buffer)
+target_link_libraries(cpp-containers-ring_buffer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-ring_buffer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/ring_buffer/ring_buffer.cpp
+)
diff --git a/library/cpp/containers/ring_buffer/CMakeLists.txt b/library/cpp/containers/ring_buffer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/ring_buffer/CMakeLists.txt
+++ b/library/cpp/containers/ring_buffer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/sorted_vector/CMakeLists.darwin-arm64.txt b/library/cpp/containers/sorted_vector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e1438df974
--- /dev/null
+++ b/library/cpp/containers/sorted_vector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-sorted_vector)
+target_link_libraries(cpp-containers-sorted_vector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-sorted_vector PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/sorted_vector/sorted_vector.cpp
+)
diff --git a/library/cpp/containers/sorted_vector/CMakeLists.txt b/library/cpp/containers/sorted_vector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/sorted_vector/CMakeLists.txt
+++ b/library/cpp/containers/sorted_vector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/stack_array/CMakeLists.darwin-arm64.txt b/library/cpp/containers/stack_array/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83fde56a05
--- /dev/null
+++ b/library/cpp/containers/stack_array/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-stack_array)
+target_link_libraries(cpp-containers-stack_array PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-stack_array PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/stack_array/range_ops.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/stack_array/stack_array.cpp
+)
diff --git a/library/cpp/containers/stack_array/CMakeLists.txt b/library/cpp/containers/stack_array/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/stack_array/CMakeLists.txt
+++ b/library/cpp/containers/stack_array/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/stack_vector/CMakeLists.darwin-arm64.txt b/library/cpp/containers/stack_vector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2950b6b535
--- /dev/null
+++ b/library/cpp/containers/stack_vector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-stack_vector)
+target_link_libraries(cpp-containers-stack_vector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-stack_vector PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/stack_vector/stack_vec.cpp
+)
diff --git a/library/cpp/containers/stack_vector/CMakeLists.txt b/library/cpp/containers/stack_vector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/stack_vector/CMakeLists.txt
+++ b/library/cpp/containers/stack_vector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/str_map/CMakeLists.darwin-arm64.txt b/library/cpp/containers/str_map/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee42c250c6
--- /dev/null
+++ b/library/cpp/containers/str_map/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-str_map)
+target_link_libraries(cpp-containers-str_map PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-str_map PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/str_map/str_map.cpp
+)
diff --git a/library/cpp/containers/str_map/CMakeLists.txt b/library/cpp/containers/str_map/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/str_map/CMakeLists.txt
+++ b/library/cpp/containers/str_map/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/containers/top_keeper/CMakeLists.darwin-arm64.txt b/library/cpp/containers/top_keeper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cc2996b511
--- /dev/null
+++ b/library/cpp/containers/top_keeper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-containers-top_keeper)
+target_link_libraries(cpp-containers-top_keeper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-containers-top_keeper PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/containers/top_keeper/top_keeper.cpp
+)
diff --git a/library/cpp/containers/top_keeper/CMakeLists.txt b/library/cpp/containers/top_keeper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/containers/top_keeper/CMakeLists.txt
+++ b/library/cpp/containers/top_keeper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/coroutine/engine/CMakeLists.darwin-arm64.txt b/library/cpp/coroutine/engine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d709a1e943
--- /dev/null
+++ b/library/cpp/coroutine/engine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-coroutine-engine)
+target_link_libraries(cpp-coroutine-engine PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-libc_compat
+ cpp-containers-intrusive_rb_tree
+ cpp-deprecated-atomic
+)
+target_sources(cpp-coroutine-engine PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/cont_poller.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/helper.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/iostatus.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/network.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/poller.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/sockpool.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_guards.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_storage.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_utils.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/trampoline.cpp
+)
+generate_enum_serilization(cpp-coroutine-engine
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/poller.h
+ INCLUDE_HEADERS
+ library/cpp/coroutine/engine/poller.h
+)
+generate_enum_serilization(cpp-coroutine-engine
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_common.h
+ INCLUDE_HEADERS
+ library/cpp/coroutine/engine/stack/stack_common.h
+)
diff --git a/library/cpp/coroutine/engine/CMakeLists.txt b/library/cpp/coroutine/engine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/coroutine/engine/CMakeLists.txt
+++ b/library/cpp/coroutine/engine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/coroutine/listener/CMakeLists.darwin-arm64.txt b/library/cpp/coroutine/listener/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..125cb4b2ed
--- /dev/null
+++ b/library/cpp/coroutine/listener/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-coroutine-listener)
+target_link_libraries(cpp-coroutine-listener PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-coroutine-engine
+)
+target_sources(cpp-coroutine-listener PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/coroutine/listener/listen.cpp
+)
diff --git a/library/cpp/coroutine/listener/CMakeLists.txt b/library/cpp/coroutine/listener/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/coroutine/listener/CMakeLists.txt
+++ b/library/cpp/coroutine/listener/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/cppparser/CMakeLists.darwin-arm64.txt b/library/cpp/cppparser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..73f1df8e6f
--- /dev/null
+++ b/library/cpp/cppparser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-cppparser)
+target_link_libraries(library-cpp-cppparser PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-cppparser PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/cppparser/parser.cpp
+)
diff --git a/library/cpp/cppparser/CMakeLists.txt b/library/cpp/cppparser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/cppparser/CMakeLists.txt
+++ b/library/cpp/cppparser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/dbg_output/CMakeLists.darwin-arm64.txt b/library/cpp/dbg_output/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e29430ec2
--- /dev/null
+++ b/library/cpp/dbg_output/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-dbg_output)
+target_link_libraries(library-cpp-dbg_output PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-colorizer
+)
+target_sources(library-cpp-dbg_output PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/dbg_output/dump.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/dbg_output/dumpers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/dbg_output/engine.cpp
+)
diff --git a/library/cpp/dbg_output/CMakeLists.txt b/library/cpp/dbg_output/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/dbg_output/CMakeLists.txt
+++ b/library/cpp/dbg_output/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/deprecated/accessors/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/accessors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62226eb559
--- /dev/null
+++ b/library/cpp/deprecated/accessors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-deprecated-accessors)
+target_link_libraries(cpp-deprecated-accessors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-deprecated-accessors PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/accessors/accessors.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/accessors/accessors_impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/accessors/memory_traits.cpp
+)
diff --git a/library/cpp/deprecated/accessors/CMakeLists.txt b/library/cpp/deprecated/accessors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/deprecated/accessors/CMakeLists.txt
+++ b/library/cpp/deprecated/accessors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/deprecated/atomic/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/atomic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..411024be15
--- /dev/null
+++ b/library/cpp/deprecated/atomic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-deprecated-atomic INTERFACE)
+target_link_libraries(cpp-deprecated-atomic INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/deprecated/atomic/CMakeLists.txt b/library/cpp/deprecated/atomic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/deprecated/atomic/CMakeLists.txt
+++ b/library/cpp/deprecated/atomic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/deprecated/enum_codegen/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/enum_codegen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3ec6a99b97
--- /dev/null
+++ b/library/cpp/deprecated/enum_codegen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-deprecated-enum_codegen)
+target_link_libraries(cpp-deprecated-enum_codegen PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-deprecated-enum_codegen PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/enum_codegen/enum_codegen.cpp
+)
diff --git a/library/cpp/deprecated/enum_codegen/CMakeLists.txt b/library/cpp/deprecated/enum_codegen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/deprecated/enum_codegen/CMakeLists.txt
+++ b/library/cpp/deprecated/enum_codegen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1a8b825dad
--- /dev/null
+++ b/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-deprecated-kmp)
+target_link_libraries(cpp-deprecated-kmp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-deprecated-kmp PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp
+)
diff --git a/library/cpp/deprecated/kmp/CMakeLists.txt b/library/cpp/deprecated/kmp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/deprecated/kmp/CMakeLists.txt
+++ b/library/cpp/deprecated/kmp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/deprecated/split/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/split/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d23b1620f7
--- /dev/null
+++ b/library/cpp/deprecated/split/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-deprecated-split)
+target_link_libraries(cpp-deprecated-split PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-kmp
+)
+target_sources(cpp-deprecated-split PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/split/delim_string_iter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/split/split_iterator.cpp
+)
diff --git a/library/cpp/deprecated/split/CMakeLists.txt b/library/cpp/deprecated/split/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/deprecated/split/CMakeLists.txt
+++ b/library/cpp/deprecated/split/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/diff/CMakeLists.darwin-arm64.txt b/library/cpp/diff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f6c4677907
--- /dev/null
+++ b/library/cpp/diff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-diff)
+target_link_libraries(library-cpp-diff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lcs
+ cpp-containers-stack_array
+)
+target_sources(library-cpp-diff PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/diff/diff.cpp
+)
diff --git a/library/cpp/diff/CMakeLists.txt b/library/cpp/diff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/diff/CMakeLists.txt
+++ b/library/cpp/diff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6125ee415
--- /dev/null
+++ b/library/cpp/digest/argonish/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(internal)
+
+add_library(cpp-digest-argonish)
+target_link_libraries(cpp-digest-argonish PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-poor_man_openmp
+ internal-proxies-ref
+)
+target_sources(cpp-digest-argonish PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/factory/factory.cpp
+)
diff --git a/library/cpp/digest/argonish/CMakeLists.txt b/library/cpp/digest/argonish/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/CMakeLists.txt
+++ b/library/cpp/digest/argonish/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e2dbc9ace9
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/argon2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(argonish-internal-argon2 INTERFACE)
+target_link_libraries(argonish-internal-argon2 INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ argonish-internal-blamka
+ argonish-internal-blake2b
+ cpp-threading-poor_man_openmp
+)
diff --git a/library/cpp/digest/argonish/internal/argon2/CMakeLists.txt b/library/cpp/digest/argonish/internal/argon2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/argon2/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/argon2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..63474af49f
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/blake2b/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(argonish-internal-blake2b INTERFACE)
+target_link_libraries(argonish-internal-blake2b INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ argonish-internal-rotations
+)
diff --git a/library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt b/library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/blake2b/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7e8d1fcb36
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/blamka/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(argonish-internal-blamka INTERFACE)
+target_link_libraries(argonish-internal-blamka INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ argonish-internal-rotations
+)
diff --git a/library/cpp/digest/argonish/internal/blamka/CMakeLists.txt b/library/cpp/digest/argonish/internal/blamka/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/blamka/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/blamka/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6a754848a
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(macro)
+add_subdirectory(ref)
diff --git a/library/cpp/digest/argonish/internal/proxies/CMakeLists.txt b/library/cpp/digest/argonish/internal/proxies/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/proxies/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/proxies/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bb153d887a
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(internal-proxies-macro INTERFACE)
+target_link_libraries(internal-proxies-macro INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt b/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/proxies/macro/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f4ed53513c
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(internal-proxies-ref)
+target_link_libraries(internal-proxies-ref PUBLIC
+ contrib-libs-cxxsupp
+ internal-proxies-macro
+ argonish-internal-argon2
+ argonish-internal-blake2b
+)
+target_sources(internal-proxies-ref PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/internal/proxies/ref/proxy_ref.cpp
+)
diff --git a/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.txt b/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/proxies/ref/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-arm64.txt b/library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4468ed351
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/rotations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(argonish-internal-rotations INTERFACE)
+target_link_libraries(argonish-internal-rotations INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/digest/argonish/internal/rotations/CMakeLists.txt b/library/cpp/digest/argonish/internal/rotations/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/argonish/internal/rotations/CMakeLists.txt
+++ b/library/cpp/digest/argonish/internal/rotations/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/crc32c/CMakeLists.darwin-arm64.txt b/library/cpp/digest/crc32c/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..295652eae0
--- /dev/null
+++ b/library/cpp/digest/crc32c/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-digest-crc32c)
+target_link_libraries(cpp-digest-crc32c PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-crcutil
+)
+target_sources(cpp-digest-crc32c PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/crc32c/crc32c.cpp
+)
diff --git a/library/cpp/digest/crc32c/CMakeLists.txt b/library/cpp/digest/crc32c/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/crc32c/CMakeLists.txt
+++ b/library/cpp/digest/crc32c/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/lower_case/CMakeLists.darwin-arm64.txt b/library/cpp/digest/lower_case/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ab4c75fd0
--- /dev/null
+++ b/library/cpp/digest/lower_case/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-digest-lower_case)
+target_link_libraries(cpp-digest-lower_case PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-digest-lower_case PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/lower_case/lciter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/lower_case/lchash.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/lower_case/hash_ops.cpp
+)
diff --git a/library/cpp/digest/lower_case/CMakeLists.txt b/library/cpp/digest/lower_case/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/lower_case/CMakeLists.txt
+++ b/library/cpp/digest/lower_case/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/md5/CMakeLists.darwin-arm64.txt b/library/cpp/digest/md5/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bbf3a1fc1e
--- /dev/null
+++ b/library/cpp/digest/md5/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-digest-md5)
+target_link_libraries(cpp-digest-md5 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-nayuki_md5
+ cpp-string_utils-base64
+)
+target_sources(cpp-digest-md5 PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/md5/md5.cpp
+)
diff --git a/library/cpp/digest/md5/CMakeLists.txt b/library/cpp/digest/md5/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/md5/CMakeLists.txt
+++ b/library/cpp/digest/md5/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/murmur/CMakeLists.darwin-arm64.txt b/library/cpp/digest/murmur/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac2e722ed8
--- /dev/null
+++ b/library/cpp/digest/murmur/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-digest-murmur)
+target_link_libraries(cpp-digest-murmur PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-digest-murmur PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/murmur/murmur.cpp
+)
diff --git a/library/cpp/digest/murmur/CMakeLists.txt b/library/cpp/digest/murmur/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/murmur/CMakeLists.txt
+++ b/library/cpp/digest/murmur/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt b/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4caa8c756
--- /dev/null
+++ b/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(gencrc)
+get_built_tool_path(
+ TOOL_gencrc_bin
+ TOOL_gencrc_dependency
+ library/cpp/digest/old_crc/gencrc
+ gencrc
+)
+
+add_library(cpp-digest-old_crc)
+target_link_libraries(cpp-digest-old_crc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-digest-old_crc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp
+ ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc
+ DEPENDS
+ ${TOOL_gencrc_bin}
+ COMMAND
+ ${TOOL_gencrc_bin}
+ >
+ crc.inc
+)
+if(NOT CMAKE_CROSSCOMPILING)
+ add_dependencies(cpp-digest-old_crc
+ gencrc
+)
+endif()
diff --git a/library/cpp/digest/old_crc/CMakeLists.txt b/library/cpp/digest/old_crc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/old_crc/CMakeLists.txt
+++ b/library/cpp/digest/old_crc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-arm64.txt b/library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..848f0616db
--- /dev/null
+++ b/library/cpp/digest/old_crc/gencrc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(gencrc)
+target_link_libraries(gencrc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_link_options(gencrc PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(gencrc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/gencrc/main.cpp
+)
+target_allocator(gencrc
+ system_allocator
+)
+vcs_info(gencrc)
diff --git a/library/cpp/digest/old_crc/gencrc/CMakeLists.txt b/library/cpp/digest/old_crc/gencrc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/old_crc/gencrc/CMakeLists.txt
+++ b/library/cpp/digest/old_crc/gencrc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/digest/sfh/CMakeLists.darwin-arm64.txt b/library/cpp/digest/sfh/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..53ca09e84e
--- /dev/null
+++ b/library/cpp/digest/sfh/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-digest-sfh)
+target_link_libraries(cpp-digest-sfh PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-digest-sfh PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/digest/sfh/sfh.cpp
+)
diff --git a/library/cpp/digest/sfh/CMakeLists.txt b/library/cpp/digest/sfh/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/digest/sfh/CMakeLists.txt
+++ b/library/cpp/digest/sfh/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/disjoint_sets/CMakeLists.darwin-arm64.txt b/library/cpp/disjoint_sets/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83a72be4c8
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-disjoint_sets)
+target_link_libraries(library-cpp-disjoint_sets PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-disjoint_sets PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/disjoint_sets/disjoint_sets.cpp
+)
diff --git a/library/cpp/disjoint_sets/CMakeLists.txt b/library/cpp/disjoint_sets/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/disjoint_sets/CMakeLists.txt
+++ b/library/cpp/disjoint_sets/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/dns/CMakeLists.darwin-arm64.txt b/library/cpp/dns/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c91919f085
--- /dev/null
+++ b/library/cpp/dns/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-dns)
+target_link_libraries(library-cpp-dns PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-dns PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/dns/cache.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/dns/thread.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/dns/magic.cpp
+)
diff --git a/library/cpp/dns/CMakeLists.txt b/library/cpp/dns/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/dns/CMakeLists.txt
+++ b/library/cpp/dns/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/dwarf_backtrace/CMakeLists.darwin-arm64.txt b/library/cpp/dwarf_backtrace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3fb6a8f4b9
--- /dev/null
+++ b/library/cpp/dwarf_backtrace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-dwarf_backtrace)
+target_link_libraries(library-cpp-dwarf_backtrace PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-backtrace
+)
+target_sources(library-cpp-dwarf_backtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/dwarf_backtrace/backtrace.cpp
+)
diff --git a/library/cpp/dwarf_backtrace/CMakeLists.txt b/library/cpp/dwarf_backtrace/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/library/cpp/dwarf_backtrace/CMakeLists.txt
+++ b/library/cpp/dwarf_backtrace/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/library/cpp/enumbitset/CMakeLists.darwin-arm64.txt b/library/cpp/enumbitset/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff3bed8f5b
--- /dev/null
+++ b/library/cpp/enumbitset/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-enumbitset)
+target_link_libraries(library-cpp-enumbitset PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-enumbitset PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/enumbitset/enumbitset.cpp
+)
diff --git a/library/cpp/enumbitset/CMakeLists.txt b/library/cpp/enumbitset/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/enumbitset/CMakeLists.txt
+++ b/library/cpp/enumbitset/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/execprofile/CMakeLists.darwin-arm64.txt b/library/cpp/execprofile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec649dc8ad
--- /dev/null
+++ b/library/cpp/execprofile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-execprofile)
+target_link_libraries(library-cpp-execprofile PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-execprofile PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/execprofile/profile.cpp
+)
diff --git a/library/cpp/execprofile/CMakeLists.txt b/library/cpp/execprofile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/execprofile/CMakeLists.txt
+++ b/library/cpp/execprofile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/getopt/CMakeLists.darwin-arm64.txt b/library/cpp/getopt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..96041aa7d2
--- /dev/null
+++ b/library/cpp/getopt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(small)
+
+add_library(library-cpp-getopt INTERFACE)
+target_link_libraries(library-cpp-getopt INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-getopt-small
+ library-cpp-svnversion
+ library-cpp-build_info
+)
+
+add_global_library_for(library-cpp-getopt.global library-cpp-getopt)
+target_link_libraries(library-cpp-getopt.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-getopt-small
+ library-cpp-svnversion
+ library-cpp-build_info
+)
+target_sources(library-cpp-getopt.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/print.cpp
+)
diff --git a/library/cpp/getopt/CMakeLists.txt b/library/cpp/getopt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/getopt/CMakeLists.txt
+++ b/library/cpp/getopt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/getopt/small/CMakeLists.darwin-arm64.txt b/library/cpp/getopt/small/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04c5b67dda
--- /dev/null
+++ b/library/cpp/getopt/small/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-getopt-small)
+target_link_libraries(cpp-getopt-small PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-colorizer
+)
+target_sources(cpp-getopt-small PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/completer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/completer_command.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/completion_generator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/formatted_output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt_easy_setup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt_opt.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt_opts.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt_parser.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/last_getopt_parse_result.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/modchooser.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/opt.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/opt2.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/posix_getopt.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/wrap.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/getopt/small/ygetopt.cpp
+)
diff --git a/library/cpp/getopt/small/CMakeLists.txt b/library/cpp/getopt/small/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/getopt/small/CMakeLists.txt
+++ b/library/cpp/getopt/small/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/grpc/client/CMakeLists.darwin-arm64.txt b/library/cpp/grpc/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db6f6bfdc1
--- /dev/null
+++ b/library/cpp/grpc/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-grpc-client)
+target_link_libraries(cpp-grpc-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-deprecated-atomic
+)
+target_sources(cpp-grpc-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/client/grpc_client_low.cpp
+)
diff --git a/library/cpp/grpc/client/CMakeLists.txt b/library/cpp/grpc/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/grpc/client/CMakeLists.txt
+++ b/library/cpp/grpc/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/grpc/server/CMakeLists.darwin-arm64.txt b/library/cpp/grpc/server/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1db6667068
--- /dev/null
+++ b/library/cpp/grpc/server/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-grpc-server)
+target_link_libraries(cpp-grpc-server PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-grpc
+ monlib-dynamic_counters-percentile
+)
+target_sources(cpp-grpc-server PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/event_callback.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/grpc_request.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/grpc_server.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/grpc_counters.cpp
+)
+generate_enum_serilization(cpp-grpc-server
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/grpc_request_base.h
+ INCLUDE_HEADERS
+ library/cpp/grpc/server/grpc_request_base.h
+)
diff --git a/library/cpp/grpc/server/CMakeLists.txt b/library/cpp/grpc/server/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/grpc/server/CMakeLists.txt
+++ b/library/cpp/grpc/server/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/grpc/server/actors/CMakeLists.darwin-arm64.txt b/library/cpp/grpc/server/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e710ad49a
--- /dev/null
+++ b/library/cpp/grpc/server/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(grpc-server-actors)
+target_link_libraries(grpc-server-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_sources(grpc-server-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/grpc/server/actors/logger.cpp
+)
diff --git a/library/cpp/grpc/server/actors/CMakeLists.txt b/library/cpp/grpc/server/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/grpc/server/actors/CMakeLists.txt
+++ b/library/cpp/grpc/server/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/histogram/adaptive/CMakeLists.darwin-arm64.txt b/library/cpp/histogram/adaptive/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..82fb24cb78
--- /dev/null
+++ b/library/cpp/histogram/adaptive/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(cpp-histogram-adaptive)
+target_link_libraries(cpp-histogram-adaptive PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ histogram-adaptive-protos
+)
+target_sources(cpp-histogram-adaptive PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/adaptive_histogram.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/block_histogram.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/fixed_bin_histogram.cpp
+)
diff --git a/library/cpp/histogram/adaptive/CMakeLists.txt b/library/cpp/histogram/adaptive/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/histogram/adaptive/CMakeLists.txt
+++ b/library/cpp/histogram/adaptive/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff0b6ce0f9
--- /dev/null
+++ b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(histogram-adaptive-protos)
+target_link_libraries(histogram-adaptive-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(histogram-adaptive-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto
+)
+target_proto_addincls(histogram-adaptive-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(histogram-adaptive-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/histogram/adaptive/protos/CMakeLists.txt
+++ b/library/cpp/histogram/adaptive/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/histogram/hdr/CMakeLists.darwin-arm64.txt b/library/cpp/histogram/hdr/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf961268fa
--- /dev/null
+++ b/library/cpp/histogram/hdr/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-histogram-hdr)
+target_link_libraries(cpp-histogram-hdr PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-hdr_histogram
+)
+target_sources(cpp-histogram-hdr PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/hdr/histogram.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/histogram/hdr/histogram_iter.cpp
+)
diff --git a/library/cpp/histogram/hdr/CMakeLists.txt b/library/cpp/histogram/hdr/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/histogram/hdr/CMakeLists.txt
+++ b/library/cpp/histogram/hdr/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/html/escape/CMakeLists.darwin-arm64.txt b/library/cpp/html/escape/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..890dac1539
--- /dev/null
+++ b/library/cpp/html/escape/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-html-escape)
+target_link_libraries(cpp-html-escape PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-html-escape PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/html/escape/escape.cpp
+)
diff --git a/library/cpp/html/escape/CMakeLists.txt b/library/cpp/html/escape/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/html/escape/CMakeLists.txt
+++ b/library/cpp/html/escape/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt b/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0efffd69e0
--- /dev/null
+++ b/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-html-pcdata)
+target_link_libraries(cpp-html-pcdata PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-html-pcdata PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp
+)
diff --git a/library/cpp/html/pcdata/CMakeLists.txt b/library/cpp/html/pcdata/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/html/pcdata/CMakeLists.txt
+++ b/library/cpp/html/pcdata/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt b/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..553e7fc035
--- /dev/null
+++ b/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-http-fetch)
+target_link_libraries(cpp-http-fetch PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zlib
+ library-cpp-charset
+ cpp-digest-md5
+ cpp-http-misc
+ library-cpp-logger
+ cpp-mime-types
+ library-cpp-uri
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-http-fetch PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpload.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/exthttpcodes.cpp
+)
+generate_enum_serilization(cpp-http-fetch
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h
+ INCLUDE_HEADERS
+ library/cpp/http/fetch/httpheader.h
+)
+target_ragel_lexers(cpp-http-fetch
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfsm.rl6
+ -CG1
+)
diff --git a/library/cpp/http/fetch/CMakeLists.txt b/library/cpp/http/fetch/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/http/fetch/CMakeLists.txt
+++ b/library/cpp/http/fetch/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/http/io/CMakeLists.darwin-arm64.txt b/library/cpp/http/io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1f1eab359c
--- /dev/null
+++ b/library/cpp/http/io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-http-io)
+target_link_libraries(cpp-http-io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-blockcodecs
+ cpp-streams-brotli
+ cpp-streams-bzip2
+ cpp-streams-lzma
+)
+target_sources(cpp-http-io PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/io/chunk.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/io/compression.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/io/headers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/io/stream.cpp
+)
diff --git a/library/cpp/http/io/CMakeLists.txt b/library/cpp/http/io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/http/io/CMakeLists.txt
+++ b/library/cpp/http/io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/http/misc/CMakeLists.darwin-arm64.txt b/library/cpp/http/misc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c909854a9a
--- /dev/null
+++ b/library/cpp/http/misc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-http-misc)
+target_link_libraries(cpp-http-misc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-case_insensitive_string
+ library-cpp-cgiparam
+ cpp-digest-lower_case
+)
+target_sources(cpp-http-misc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/misc/httpcodes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/misc/httpdate.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/misc/httpreqdata.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/misc/parsed_request.cpp
+)
+generate_enum_serilization(cpp-http-misc
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/misc/httpcodes.h
+ INCLUDE_HEADERS
+ library/cpp/http/misc/httpcodes.h
+)
diff --git a/library/cpp/http/misc/CMakeLists.txt b/library/cpp/http/misc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/http/misc/CMakeLists.txt
+++ b/library/cpp/http/misc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/http/server/CMakeLists.darwin-arm64.txt b/library/cpp/http/server/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d8b2182ba
--- /dev/null
+++ b/library/cpp/http/server/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-http-server)
+target_link_libraries(cpp-http-server PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-http-misc
+ cpp-http-io
+ cpp-threading-equeue
+ cpp-deprecated-atomic
+)
+target_sources(cpp-http-server PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/server/conn.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/server/http.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/server/http_ex.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/server/options.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/server/response.cpp
+)
diff --git a/library/cpp/http/server/CMakeLists.txt b/library/cpp/http/server/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/http/server/CMakeLists.txt
+++ b/library/cpp/http/server/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/http/simple/CMakeLists.darwin-arm64.txt b/library/cpp/http/simple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68c2fb64a3
--- /dev/null
+++ b/library/cpp/http/simple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-http-simple)
+target_link_libraries(cpp-http-simple PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-http-io
+ cpp-openssl-io
+ cpp-string_utils-url
+ library-cpp-uri
+)
+target_sources(cpp-http-simple PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/http/simple/http_client.cpp
+)
diff --git a/library/cpp/http/simple/CMakeLists.txt b/library/cpp/http/simple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/http/simple/CMakeLists.txt
+++ b/library/cpp/http/simple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt b/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5a180602bc
--- /dev/null
+++ b/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-hyperloglog)
+target_link_libraries(library-cpp-hyperloglog PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-hyperloglog PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp
+)
diff --git a/library/cpp/hyperloglog/CMakeLists.txt b/library/cpp/hyperloglog/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/hyperloglog/CMakeLists.txt
+++ b/library/cpp/hyperloglog/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/int128/CMakeLists.darwin-arm64.txt b/library/cpp/int128/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cdc5d289ee
--- /dev/null
+++ b/library/cpp/int128/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-int128)
+target_link_libraries(library-cpp-int128 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-int128 PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp
+)
diff --git a/library/cpp/int128/CMakeLists.txt b/library/cpp/int128/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/int128/CMakeLists.txt
+++ b/library/cpp/int128/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/ipmath/CMakeLists.darwin-arm64.txt b/library/cpp/ipmath/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..78a4d06b4b
--- /dev/null
+++ b/library/cpp/ipmath/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-ipmath)
+target_link_libraries(library-cpp-ipmath PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-ipv6_address
+)
+target_sources(library-cpp-ipmath PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/ipmath/ipmath.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/ipmath/range_set.cpp
+)
diff --git a/library/cpp/ipmath/CMakeLists.txt b/library/cpp/ipmath/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/ipmath/CMakeLists.txt
+++ b/library/cpp/ipmath/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt b/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6156f5cbe2
--- /dev/null
+++ b/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-ipv6_address)
+target_link_libraries(library-cpp-ipv6_address PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-int128
+)
+target_sources(library-cpp-ipv6_address PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp
+)
diff --git a/library/cpp/ipv6_address/CMakeLists.txt b/library/cpp/ipv6_address/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/ipv6_address/CMakeLists.txt
+++ b/library/cpp/ipv6_address/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/iterator/CMakeLists.darwin-arm64.txt b/library/cpp/iterator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee33c74cea
--- /dev/null
+++ b/library/cpp/iterator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-iterator)
+target_link_libraries(library-cpp-iterator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-iterator PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/cartesian_product.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/concatenate.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/enumerate.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/iterate_keys.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/iterate_values.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/filtering.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/functools.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/mapped.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/iterator/zip.cpp
+)
diff --git a/library/cpp/iterator/CMakeLists.txt b/library/cpp/iterator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/iterator/CMakeLists.txt
+++ b/library/cpp/iterator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/CMakeLists.darwin-arm64.txt b/library/cpp/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bbf8222242
--- /dev/null
+++ b/library/cpp/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(easy_parse)
+add_subdirectory(fast_sax)
+add_subdirectory(writer)
+add_subdirectory(yson)
+
+add_library(library-cpp-json)
+target_link_libraries(library-cpp-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-rapidjson
+ cpp-json-common
+ cpp-json-fast_sax
+ cpp-json-writer
+ cpp-string_utils-relaxed_escaper
+)
+target_sources(library-cpp-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/json_writer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/json_reader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/json_prettifier.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/rapidjson_helpers.cpp
+)
diff --git a/library/cpp/json/CMakeLists.txt b/library/cpp/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/CMakeLists.txt
+++ b/library/cpp/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/common/CMakeLists.darwin-arm64.txt b/library/cpp/json/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3fc903e74d
--- /dev/null
+++ b/library/cpp/json/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-json-common)
+target_link_libraries(cpp-json-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-json-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/common/defs.cpp
+)
diff --git a/library/cpp/json/common/CMakeLists.txt b/library/cpp/json/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/common/CMakeLists.txt
+++ b/library/cpp/json/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/easy_parse/CMakeLists.darwin-arm64.txt b/library/cpp/json/easy_parse/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..18daf19913
--- /dev/null
+++ b/library/cpp/json/easy_parse/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-json-easy_parse)
+target_link_libraries(cpp-json-easy_parse PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+)
+target_sources(cpp-json-easy_parse PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/easy_parse/json_easy_parser.cpp
+)
diff --git a/library/cpp/json/easy_parse/CMakeLists.txt b/library/cpp/json/easy_parse/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/easy_parse/CMakeLists.txt
+++ b/library/cpp/json/easy_parse/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/fast_sax/CMakeLists.darwin-arm64.txt b/library/cpp/json/fast_sax/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..441d602ca7
--- /dev/null
+++ b/library/cpp/json/fast_sax/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-json-fast_sax)
+target_link_libraries(cpp-json-fast_sax PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-common
+)
+target_sources(cpp-json-fast_sax PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/fast_sax/unescape.cpp
+)
+target_ragel_lexers(cpp-json-fast_sax
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/fast_sax/parser.rl6
+ -CG2
+)
diff --git a/library/cpp/json/fast_sax/CMakeLists.txt b/library/cpp/json/fast_sax/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/fast_sax/CMakeLists.txt
+++ b/library/cpp/json/fast_sax/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/writer/CMakeLists.darwin-arm64.txt b/library/cpp/json/writer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e164da14c0
--- /dev/null
+++ b/library/cpp/json/writer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-json-writer)
+target_link_libraries(cpp-json-writer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-common
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-json-writer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/writer/json_value.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/writer/json.cpp
+)
+generate_enum_serilization(cpp-json-writer
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/writer/json_value.h
+ INCLUDE_HEADERS
+ library/cpp/json/writer/json_value.h
+)
diff --git a/library/cpp/json/writer/CMakeLists.txt b/library/cpp/json/writer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/writer/CMakeLists.txt
+++ b/library/cpp/json/writer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/json/yson/CMakeLists.darwin-arm64.txt b/library/cpp/json/yson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f16a5a41e
--- /dev/null
+++ b/library/cpp/json/yson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-json-yson)
+target_link_libraries(cpp-json-yson PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ library-cpp-yson
+ cpp-yson-json
+)
+target_sources(cpp-json-yson PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/json/yson/json2yson.cpp
+)
diff --git a/library/cpp/json/yson/CMakeLists.txt b/library/cpp/json/yson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/json/yson/CMakeLists.txt
+++ b/library/cpp/json/yson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lcs/CMakeLists.darwin-arm64.txt b/library/cpp/lcs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..52cb38d674
--- /dev/null
+++ b/library/cpp/lcs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-lcs)
+target_link_libraries(library-cpp-lcs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-paged_vector
+)
+target_sources(library-cpp-lcs PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lcs/lcs_via_lis.cpp
+)
diff --git a/library/cpp/lcs/CMakeLists.txt b/library/cpp/lcs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lcs/CMakeLists.txt
+++ b/library/cpp/lcs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lfalloc/CMakeLists.darwin-arm64.txt b/library/cpp/lfalloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c5ee648844
--- /dev/null
+++ b/library/cpp/lfalloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(alloc_profiler)
+add_subdirectory(dbg_info)
+add_subdirectory(yt)
+
+add_library(library-cpp-lfalloc)
+target_compile_options(library-cpp-lfalloc PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(library-cpp-lfalloc PUBLIC
+ contrib-libs-cxxsupp
+ cpp-malloc-api
+)
+target_sources(library-cpp-lfalloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lfalloc/lf_allocX64.cpp
+)
diff --git a/library/cpp/lfalloc/CMakeLists.txt b/library/cpp/lfalloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lfalloc/CMakeLists.txt
+++ b/library/cpp/lfalloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-arm64.txt b/library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b94d19ad32
--- /dev/null
+++ b/library/cpp/lfalloc/alloc_profiler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-lfalloc-alloc_profiler)
+target_link_libraries(cpp-lfalloc-alloc_profiler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-lfalloc-dbg_info
+ library-cpp-cache
+ cpp-deprecated-atomic
+)
+target_sources(cpp-lfalloc-alloc_profiler PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lfalloc/alloc_profiler/profiler.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lfalloc/alloc_profiler/stackcollect.cpp
+)
diff --git a/library/cpp/lfalloc/alloc_profiler/CMakeLists.txt b/library/cpp/lfalloc/alloc_profiler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lfalloc/alloc_profiler/CMakeLists.txt
+++ b/library/cpp/lfalloc/alloc_profiler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lfalloc/dbg_info/CMakeLists.darwin-arm64.txt b/library/cpp/lfalloc/dbg_info/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec8b8ba23b
--- /dev/null
+++ b/library/cpp/lfalloc/dbg_info/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-lfalloc-dbg_info)
+target_link_libraries(cpp-lfalloc-dbg_info PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-api
+)
+target_sources(cpp-lfalloc-dbg_info PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lfalloc/dbg_info/dbg_info.cpp
+)
diff --git a/library/cpp/lfalloc/dbg_info/CMakeLists.txt b/library/cpp/lfalloc/dbg_info/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lfalloc/dbg_info/CMakeLists.txt
+++ b/library/cpp/lfalloc/dbg_info/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lfalloc/yt/CMakeLists.darwin-arm64.txt b/library/cpp/lfalloc/yt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60cb9c3944
--- /dev/null
+++ b/library/cpp/lfalloc/yt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-lfalloc-yt INTERFACE)
+target_link_libraries(cpp-lfalloc-yt INTERFACE
+ contrib-libs-cxxsupp
+ contrib-libs-jemalloc
+ cpp-malloc-api
+)
diff --git a/library/cpp/lfalloc/yt/CMakeLists.txt b/library/cpp/lfalloc/yt/CMakeLists.txt
index e655de6e6a..67233d6245 100644
--- a/library/cpp/lfalloc/yt/CMakeLists.txt
+++ b/library/cpp/lfalloc/yt/CMakeLists.txt
@@ -6,7 +6,9 @@
# original buildsystem will not be accepted.
-if (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
diff --git a/library/cpp/linear_regression/CMakeLists.darwin-arm64.txt b/library/cpp/linear_regression/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db574777d6
--- /dev/null
+++ b/library/cpp/linear_regression/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-linear_regression)
+target_link_libraries(library-cpp-linear_regression PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-accurate_accumulate
+)
+target_sources(library-cpp-linear_regression PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/linear_regression/linear_regression.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/linear_regression/unimodal.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/linear_regression/welford.cpp
+)
diff --git a/library/cpp/linear_regression/CMakeLists.txt b/library/cpp/linear_regression/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/linear_regression/CMakeLists.txt
+++ b/library/cpp/linear_regression/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/logger/CMakeLists.darwin-arm64.txt b/library/cpp/logger/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92cf5b5d93
--- /dev/null
+++ b/library/cpp/logger/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(global)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-logger)
+target_link_libraries(library-cpp-logger PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-json
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-logger PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/element.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/file.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/filter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/filter_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/log.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/null.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/rotating_file.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/stream.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/sync_page_cache_file.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/system.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/thread.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/thread_creator.cpp
+)
+generate_enum_serilization(library-cpp-logger
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h
+ INCLUDE_HEADERS
+ library/cpp/logger/priority.h
+)
+
+add_global_library_for(library-cpp-logger.global library-cpp-logger)
+target_link_libraries(library-cpp-logger.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-json
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-logger.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/file_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/null_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/rotating_file_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/stream_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/sync_page_cache_file_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/system_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/uninitialized_creator.cpp
+)
diff --git a/library/cpp/logger/CMakeLists.txt b/library/cpp/logger/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/logger/CMakeLists.txt
+++ b/library/cpp/logger/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/logger/global/CMakeLists.darwin-arm64.txt b/library/cpp/logger/global/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4056287548
--- /dev/null
+++ b/library/cpp/logger/global/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-logger-global)
+target_link_libraries(cpp-logger-global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-logger
+)
+target_sources(cpp-logger-global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/global/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/global/global.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/logger/global/rty_formater.cpp
+)
diff --git a/library/cpp/logger/global/CMakeLists.txt b/library/cpp/logger/global/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/logger/global/CMakeLists.txt
+++ b/library/cpp/logger/global/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lua/CMakeLists.darwin-arm64.txt b/library/cpp/lua/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7dc3bec75b
--- /dev/null
+++ b/library/cpp/lua/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-lua)
+target_link_libraries(library-cpp-lua PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ contrib-libs-lua
+ cpp-string_utils-ztstrbuf
+)
+target_sources(library-cpp-lua PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lua/eval.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lua/json.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lua/wrapper.cpp
+)
diff --git a/library/cpp/lua/CMakeLists.txt b/library/cpp/lua/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lua/CMakeLists.txt
+++ b/library/cpp/lua/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lwtrace/CMakeLists.darwin-arm64.txt b/library/cpp/lwtrace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..370dbb17fd
--- /dev/null
+++ b/library/cpp/lwtrace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mon)
+add_subdirectory(protos)
+
+add_library(library-cpp-lwtrace)
+target_link_libraries(library-cpp-lwtrace PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-lwtrace-protos
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-lwtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/check.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/control.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/custom_action.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/kill_action.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/log_shuttle.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/perf.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/probes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/shuttle.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/sleep_action.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/start.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/stderr_writer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/symbol.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/trace.cpp
+)
diff --git a/library/cpp/lwtrace/CMakeLists.txt b/library/cpp/lwtrace/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lwtrace/CMakeLists.txt
+++ b/library/cpp/lwtrace/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lwtrace/mon/CMakeLists.darwin-arm64.txt b/library/cpp/lwtrace/mon/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..84ce12f208
--- /dev/null
+++ b/library/cpp/lwtrace/mon/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,118 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(analytics)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(cpp-lwtrace-mon)
+target_link_libraries(cpp-lwtrace-mon PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-html-pcdata
+ library-cpp-lwtrace
+ lwtrace-mon-analytics
+ cpp-monlib-dynamic_counters
+ cpp-string_utils-base64
+)
+target_sources(cpp-lwtrace-mon PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/mon_lwtrace.cpp
+)
+
+add_global_library_for(cpp-lwtrace-mon.global cpp-lwtrace-mon)
+target_link_libraries(cpp-lwtrace-mon.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-html-pcdata
+ library-cpp-lwtrace
+ lwtrace-mon-analytics
+ cpp-monlib-dynamic_counters
+ cpp-string_utils-base64
+)
+target_sources(cpp-lwtrace-mon.global PRIVATE
+ ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/mon/55ff1192d5e8c2c093974f8d6c720a35.cpp
+)
+resources(cpp-lwtrace-mon.global
+ ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/mon/55ff1192d5e8c2c093974f8d6c720a35.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/common.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/common.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/css/bootstrap.min.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/css/d3-gantt.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/css/jquery.treegrid.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/analytics.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/analytics.flot.html
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/analytics.gantt.html
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/analytics.header.html
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/analytics.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/fonts/glyphicons-halflings-regular.eot
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/fonts/glyphicons-halflings-regular.svg
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/fonts/glyphicons-halflings-regular.ttf
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff2
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/footer.html
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/header.html
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/img/collapse.png
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/img/expand.png
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/img/file.png
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/img/folder.png
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/bootstrap.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/d3.v4.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/d3-gantt.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/d3-tip-0.8.0-alpha.1.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/filesaver.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.flot.extents.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.flot.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.flot.navigate.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.flot.selection.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.treegrid.bootstrap3.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.treegrid.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/static/js/jquery.url.min.js
+ KEYS
+ lwtrace/mon/static/common.css
+ lwtrace/mon/static/common.js
+ lwtrace/mon/static/css/bootstrap.min.css
+ lwtrace/mon/static/css/d3-gantt.css
+ lwtrace/mon/static/css/jquery.treegrid.css
+ lwtrace/mon/static/analytics.css
+ lwtrace/mon/static/analytics.flot.html
+ lwtrace/mon/static/analytics.gantt.html
+ lwtrace/mon/static/analytics.header.html
+ lwtrace/mon/static/analytics.js
+ lwtrace/mon/static/fonts/glyphicons-halflings-regular.eot
+ lwtrace/mon/static/fonts/glyphicons-halflings-regular.svg
+ lwtrace/mon/static/fonts/glyphicons-halflings-regular.ttf
+ lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff2
+ lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff
+ lwtrace/mon/static/footer.html
+ lwtrace/mon/static/header.html
+ lwtrace/mon/static/img/collapse.png
+ lwtrace/mon/static/img/expand.png
+ lwtrace/mon/static/img/file.png
+ lwtrace/mon/static/img/folder.png
+ lwtrace/mon/static/js/bootstrap.min.js
+ lwtrace/mon/static/js/d3.v4.min.js
+ lwtrace/mon/static/js/d3-gantt.js
+ lwtrace/mon/static/js/d3-tip-0.8.0-alpha.1.js
+ lwtrace/mon/static/js/filesaver.min.js
+ lwtrace/mon/static/js/jquery.flot.extents.js
+ lwtrace/mon/static/js/jquery.flot.min.js
+ lwtrace/mon/static/js/jquery.flot.navigate.min.js
+ lwtrace/mon/static/js/jquery.flot.selection.min.js
+ lwtrace/mon/static/js/jquery.min.js
+ lwtrace/mon/static/js/jquery.treegrid.bootstrap3.js
+ lwtrace/mon/static/js/jquery.treegrid.min.js
+ lwtrace/mon/static/js/jquery.url.min.js
+)
diff --git a/library/cpp/lwtrace/mon/CMakeLists.txt b/library/cpp/lwtrace/mon/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lwtrace/mon/CMakeLists.txt
+++ b/library/cpp/lwtrace/mon/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-arm64.txt b/library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1a03a5f4a
--- /dev/null
+++ b/library/cpp/lwtrace/mon/analytics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lwtrace-mon-analytics)
+target_link_libraries(lwtrace-mon-analytics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(lwtrace-mon-analytics PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/mon/analytics/analytics.cpp
+)
diff --git a/library/cpp/lwtrace/mon/analytics/CMakeLists.txt b/library/cpp/lwtrace/mon/analytics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lwtrace/mon/analytics/CMakeLists.txt
+++ b/library/cpp/lwtrace/mon/analytics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt b/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9caa6f58bf
--- /dev/null
+++ b/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(cpp-lwtrace-protos)
+target_link_libraries(cpp-lwtrace-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(cpp-lwtrace-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto
+)
+target_proto_addincls(cpp-lwtrace-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(cpp-lwtrace-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/lwtrace/protos/CMakeLists.txt b/library/cpp/lwtrace/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/lwtrace/protos/CMakeLists.txt
+++ b/library/cpp/lwtrace/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/malloc/CMakeLists.darwin-arm64.txt b/library/cpp/malloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d8a4de4f7
--- /dev/null
+++ b/library/cpp/malloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,11 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(api)
+add_subdirectory(jemalloc)
+add_subdirectory(system)
diff --git a/library/cpp/malloc/CMakeLists.txt b/library/cpp/malloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/malloc/CMakeLists.txt
+++ b/library/cpp/malloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/malloc/api/CMakeLists.darwin-arm64.txt b/library/cpp/malloc/api/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db837d83de
--- /dev/null
+++ b/library/cpp/malloc/api/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-malloc-api)
+target_link_libraries(cpp-malloc-api PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(cpp-malloc-api PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/malloc/api/malloc.cpp
+)
diff --git a/library/cpp/malloc/api/CMakeLists.txt b/library/cpp/malloc/api/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/malloc/api/CMakeLists.txt
+++ b/library/cpp/malloc/api/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/malloc/jemalloc/CMakeLists.darwin-arm64.txt b/library/cpp/malloc/jemalloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ea1e085b74
--- /dev/null
+++ b/library/cpp/malloc/jemalloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-malloc-jemalloc)
+target_link_libraries(cpp-malloc-jemalloc PUBLIC
+ contrib-libs-cxxsupp
+ cpp-malloc-api
+ contrib-libs-jemalloc
+)
+target_sources(cpp-malloc-jemalloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/malloc/jemalloc/malloc-info.cpp
+)
diff --git a/library/cpp/malloc/jemalloc/CMakeLists.txt b/library/cpp/malloc/jemalloc/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/library/cpp/malloc/jemalloc/CMakeLists.txt
+++ b/library/cpp/malloc/jemalloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/library/cpp/malloc/system/CMakeLists.darwin-arm64.txt b/library/cpp/malloc/system/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..02b7148533
--- /dev/null
+++ b/library/cpp/malloc/system/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(system_allocator)
+target_link_libraries(system_allocator PUBLIC
+ contrib-libs-cxxsupp
+ cpp-malloc-api
+)
+target_sources(system_allocator PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/malloc/system/malloc-info.cpp
+)
diff --git a/library/cpp/malloc/system/CMakeLists.txt b/library/cpp/malloc/system/CMakeLists.txt
index e655de6e6a..67233d6245 100644
--- a/library/cpp/malloc/system/CMakeLists.txt
+++ b/library/cpp/malloc/system/CMakeLists.txt
@@ -6,7 +6,9 @@
# original buildsystem will not be accepted.
-if (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
diff --git a/library/cpp/messagebus/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af2b7a2008
--- /dev/null
+++ b/library/cpp/messagebus/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actor)
+add_subdirectory(config)
+add_subdirectory(monitoring)
+add_subdirectory(oldmodule)
+add_subdirectory(protobuf)
+add_subdirectory(scheduler)
+add_subdirectory(www)
+
+add_library(library-cpp-messagebus)
+target_link_libraries(library-cpp-messagebus PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-sparsehash
+ library-cpp-codecs
+ cpp-deprecated-enum_codegen
+ cpp-getopt-small
+ library-cpp-lwtrace
+ messagebus_actor
+ cpp-messagebus-config
+ cpp-messagebus-monitoring
+ cpp-messagebus-scheduler
+ cpp-string_utils-indent_text
+ cpp-threading-future
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-messagebus PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/coreconn.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/duration_histogram.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/event_loop.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/futex_like.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/handler.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/key_value_printer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/local_flags.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/locator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/mb_lwtrace.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/message.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/message_counter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/message_status.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/message_status_counter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/messqueue.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/network.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/queue_config.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_client_connection.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_client_session.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_client_session_semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_connection.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_connection_status.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_server_connection.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_server_session.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/remote_server_session_semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/session.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/session_impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/session_job_count.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/shutdown_state.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/socket_addr.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/storage.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/synchandler.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/use_after_free_checker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/use_count_checker.cpp
+)
diff --git a/library/cpp/messagebus/CMakeLists.txt b/library/cpp/messagebus/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/CMakeLists.txt
+++ b/library/cpp/messagebus/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/actor/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da26bb12a8
--- /dev/null
+++ b/library/cpp/messagebus/actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(messagebus_actor)
+target_link_libraries(messagebus_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(messagebus_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/actor/executor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/actor/thread_extra.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/actor/what_thread_does.cpp
+)
diff --git a/library/cpp/messagebus/actor/CMakeLists.txt b/library/cpp/messagebus/actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/actor/CMakeLists.txt
+++ b/library/cpp/messagebus/actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/config/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ac52c60e8
--- /dev/null
+++ b/library/cpp/messagebus/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-messagebus-config)
+target_link_libraries(cpp-messagebus-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-deprecated-enum_codegen
+)
+target_sources(cpp-messagebus-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/config/netaddr.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/config/session_config.cpp
+)
diff --git a/library/cpp/messagebus/config/CMakeLists.txt b/library/cpp/messagebus/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/config/CMakeLists.txt
+++ b/library/cpp/messagebus/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a5f1f8502
--- /dev/null
+++ b/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(cpp-messagebus-monitoring)
+target_link_libraries(cpp-messagebus-monitoring PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ encode-legacy_protobuf-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(cpp-messagebus-monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto
+)
+target_proto_addincls(cpp-messagebus-monitoring
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(cpp-messagebus-monitoring
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/messagebus/monitoring/CMakeLists.txt b/library/cpp/messagebus/monitoring/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/monitoring/CMakeLists.txt
+++ b/library/cpp/messagebus/monitoring/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/oldmodule/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/oldmodule/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..11b6ead04d
--- /dev/null
+++ b/library/cpp/messagebus/oldmodule/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-messagebus-oldmodule)
+target_link_libraries(cpp-messagebus-oldmodule PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-messagebus
+ messagebus_actor
+)
+target_sources(cpp-messagebus-oldmodule PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/oldmodule/module.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/oldmodule/startsession.cpp
+)
diff --git a/library/cpp/messagebus/oldmodule/CMakeLists.txt b/library/cpp/messagebus/oldmodule/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/oldmodule/CMakeLists.txt
+++ b/library/cpp/messagebus/oldmodule/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/protobuf/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8566a4b7ef
--- /dev/null
+++ b/library/cpp/messagebus/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(messagebus_protobuf)
+target_link_libraries(messagebus_protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-messagebus
+ messagebus_actor
+)
+target_sources(messagebus_protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/protobuf/ybusbuf.cpp
+)
diff --git a/library/cpp/messagebus/protobuf/CMakeLists.txt b/library/cpp/messagebus/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/protobuf/CMakeLists.txt
+++ b/library/cpp/messagebus/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/scheduler/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/scheduler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..510bc01bd5
--- /dev/null
+++ b/library/cpp/messagebus/scheduler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-messagebus-scheduler)
+target_link_libraries(cpp-messagebus-scheduler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ cpp-deprecated-atomic
+)
+target_sources(cpp-messagebus-scheduler PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/scheduler/scheduler.cpp
+)
diff --git a/library/cpp/messagebus/scheduler/CMakeLists.txt b/library/cpp/messagebus/scheduler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/scheduler/CMakeLists.txt
+++ b/library/cpp/messagebus/scheduler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/messagebus/www/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/www/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2d41aa3305
--- /dev/null
+++ b/library/cpp/messagebus/www/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(cpp-messagebus-www)
+target_link_libraries(cpp-messagebus-www PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ library-cpp-cgiparam
+ cpp-html-pcdata
+ cpp-http-fetch
+ cpp-http-server
+ cpp-json-writer
+ library-cpp-messagebus
+ cpp-messagebus-oldmodule
+ monlib-deprecated-json
+ library-cpp-uri
+)
+target_sources(cpp-messagebus-www PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/www/html_output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/www/www.cpp
+)
+
+add_global_library_for(cpp-messagebus-www.global cpp-messagebus-www)
+target_link_libraries(cpp-messagebus-www.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ library-cpp-cgiparam
+ cpp-html-pcdata
+ cpp-http-fetch
+ cpp-http-server
+ cpp-json-writer
+ library-cpp-messagebus
+ cpp-messagebus-oldmodule
+ monlib-deprecated-json
+ library-cpp-uri
+)
+target_sources(cpp-messagebus-www.global PRIVATE
+ ${CMAKE_BINARY_DIR}/library/cpp/messagebus/www/dd5bbfe173cb40020e73f3227e3ac73d.cpp
+)
+resources(cpp-messagebus-www.global
+ ${CMAKE_BINARY_DIR}/library/cpp/messagebus/www/dd5bbfe173cb40020e73f3227e3ac73d.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/www/messagebus.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/www/bus-ico.png
+ KEYS
+ /messagebus.js
+ /bus-ico.png
+)
diff --git a/library/cpp/messagebus/www/CMakeLists.txt b/library/cpp/messagebus/www/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/messagebus/www/CMakeLists.txt
+++ b/library/cpp/messagebus/www/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/mime/types/CMakeLists.darwin-arm64.txt b/library/cpp/mime/types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e4011a982
--- /dev/null
+++ b/library/cpp/mime/types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-mime-types)
+target_link_libraries(cpp-mime-types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-mime-types PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/mime/types/mime.cpp
+)
+generate_enum_serilization(cpp-mime-types
+ ${CMAKE_SOURCE_DIR}/library/cpp/mime/types/mime.h
+ INCLUDE_HEADERS
+ library/cpp/mime/types/mime.h
+)
diff --git a/library/cpp/mime/types/CMakeLists.txt b/library/cpp/mime/types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/mime/types/CMakeLists.txt
+++ b/library/cpp/mime/types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6bcb22f8cc
--- /dev/null
+++ b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-deprecated-json)
+target_link_libraries(monlib-deprecated-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+)
+target_sources(monlib-deprecated-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp
+)
diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.txt b/library/cpp/monlib/deprecated/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/deprecated/json/CMakeLists.txt
+++ b/library/cpp/monlib/deprecated/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/dynamic_counters/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/dynamic_counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..35f39a552a
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(percentile)
+
+add_library(cpp-monlib-dynamic_counters)
+target_link_libraries(cpp-monlib-dynamic_counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ monlib-encode-json
+ monlib-encode-spack
+ monlib-encode-prometheus
+ monlib-service-pages
+ cpp-string_utils-quote
+ cpp-threading-light_rw_lock
+)
+target_sources(cpp-monlib-dynamic_counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/counters.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/encode.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/golovan_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/page.cpp
+)
diff --git a/library/cpp/monlib/dynamic_counters/CMakeLists.txt b/library/cpp/monlib/dynamic_counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/dynamic_counters/CMakeLists.txt
+++ b/library/cpp/monlib/dynamic_counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fa99d9dc2f
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-dynamic_counters-percentile INTERFACE)
+target_link_libraries(monlib-dynamic_counters-percentile INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ cpp-monlib-dynamic_counters
+)
diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt
+++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a74b6d023d
--- /dev/null
+++ b/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(buffered)
+add_subdirectory(json)
+add_subdirectory(legacy_protobuf)
+add_subdirectory(prometheus)
+add_subdirectory(spack)
+add_subdirectory(text)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-monlib-encode)
+target_link_libraries(cpp-monlib-encode PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-metrics
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-monlib-encode PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp
+)
+generate_enum_serilization(cpp-monlib-encode
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state_enum.h
+ GEN_HEADER
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h
+ INCLUDE_HEADERS
+ library/cpp/monlib/encode/encoder_state_enum.h
+)
diff --git a/library/cpp/monlib/encode/CMakeLists.txt b/library/cpp/monlib/encode/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/CMakeLists.txt
+++ b/library/cpp/monlib/encode/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/buffered/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/buffered/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e867afbb8c
--- /dev/null
+++ b/library/cpp/monlib/encode/buffered/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-encode-buffered)
+target_link_libraries(monlib-encode-buffered PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-encode
+ cpp-monlib-metrics
+)
+target_sources(monlib-encode-buffered PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/buffered/buffered_encoder_base.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/buffered/string_pool.cpp
+)
diff --git a/library/cpp/monlib/encode/buffered/CMakeLists.txt b/library/cpp/monlib/encode/buffered/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/buffered/CMakeLists.txt
+++ b/library/cpp/monlib/encode/buffered/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/json/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..55a0abe1c3
--- /dev/null
+++ b/library/cpp/monlib/encode/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-encode-json)
+target_link_libraries(monlib-encode-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-encode
+ monlib-encode-buffered
+ cpp-monlib-exception
+ library-cpp-json
+ cpp-json-writer
+)
+target_sources(monlib-encode-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/json/json_decoder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/json/json_encoder.cpp
+)
diff --git a/library/cpp/monlib/encode/json/CMakeLists.txt b/library/cpp/monlib/encode/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/json/CMakeLists.txt
+++ b/library/cpp/monlib/encode/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bce491e67e
--- /dev/null
+++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(encode-legacy_protobuf-protos)
+target_link_libraries(encode-legacy_protobuf-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(encode-legacy_protobuf-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto
+)
+target_proto_addincls(encode-legacy_protobuf-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(encode-legacy_protobuf-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt
+++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/prometheus/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/prometheus/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2db649e693
--- /dev/null
+++ b/library/cpp/monlib/encode/prometheus/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-encode-prometheus)
+target_link_libraries(monlib-encode-prometheus PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-encode
+ monlib-encode-buffered
+)
+target_sources(monlib-encode-prometheus PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/prometheus/prometheus_decoder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/prometheus/prometheus_encoder.cpp
+)
diff --git a/library/cpp/monlib/encode/prometheus/CMakeLists.txt b/library/cpp/monlib/encode/prometheus/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/prometheus/CMakeLists.txt
+++ b/library/cpp/monlib/encode/prometheus/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/spack/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/spack/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8a1e929e1
--- /dev/null
+++ b/library/cpp/monlib/encode/spack/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-encode-spack)
+target_link_libraries(monlib-encode-spack PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ monlib-encode-buffered
+ cpp-monlib-exception
+ contrib-libs-lz4
+ contrib-libs-xxhash
+ contrib-libs-zlib
+ contrib-libs-zstd
+)
+target_sources(monlib-encode-spack PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/spack/spack_v1_decoder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/spack/spack_v1_encoder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/spack/varint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/spack/compression.cpp
+)
diff --git a/library/cpp/monlib/encode/spack/CMakeLists.txt b/library/cpp/monlib/encode/spack/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/spack/CMakeLists.txt
+++ b/library/cpp/monlib/encode/spack/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/encode/text/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/text/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..58143a2371
--- /dev/null
+++ b/library/cpp/monlib/encode/text/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(monlib-encode-text)
+target_link_libraries(monlib-encode-text PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-encode
+)
+target_sources(monlib-encode-text PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/text/text_encoder.cpp
+)
diff --git a/library/cpp/monlib/encode/text/CMakeLists.txt b/library/cpp/monlib/encode/text/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/encode/text/CMakeLists.txt
+++ b/library/cpp/monlib/encode/text/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/exception/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/exception/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94cb28420f
--- /dev/null
+++ b/library/cpp/monlib/exception/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-monlib-exception)
+target_link_libraries(cpp-monlib-exception PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-monlib-exception PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/exception/exception.cpp
+)
diff --git a/library/cpp/monlib/exception/CMakeLists.txt b/library/cpp/monlib/exception/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/exception/CMakeLists.txt
+++ b/library/cpp/monlib/exception/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/messagebus/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/messagebus/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cae48e0a83
--- /dev/null
+++ b/library/cpp/monlib/messagebus/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-monlib-messagebus)
+target_link_libraries(cpp-monlib-messagebus PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-messagebus
+ cpp-messagebus-www
+ cpp-monlib-dynamic_counters
+)
+target_sources(cpp-monlib-messagebus PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/messagebus/mon_messagebus.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/messagebus/mon_service_messagebus.cpp
+)
diff --git a/library/cpp/monlib/messagebus/CMakeLists.txt b/library/cpp/monlib/messagebus/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/messagebus/CMakeLists.txt
+++ b/library/cpp/monlib/messagebus/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..052ed067e1
--- /dev/null
+++ b/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-monlib-metrics)
+target_link_libraries(cpp-monlib-metrics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-monlib-metrics PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_exponential.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_linear.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/log_histogram_snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/labels.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/metric_registry.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/metric_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/metric_type.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/metric_value.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/summary_collector.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/summary_snapshot.cpp
+)
+generate_enum_serilization(cpp-monlib-metrics
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/metric_value_type.h
+ GEN_HEADER
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h
+ INCLUDE_HEADERS
+ library/cpp/monlib/metrics/metric_value_type.h
+)
diff --git a/library/cpp/monlib/metrics/CMakeLists.txt b/library/cpp/monlib/metrics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/metrics/CMakeLists.txt
+++ b/library/cpp/monlib/metrics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/service/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..48ffa45b49
--- /dev/null
+++ b/library/cpp/monlib/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(pages)
+
+add_library(cpp-monlib-service)
+target_link_libraries(cpp-monlib-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-base64
+ contrib-libs-protobuf
+ cpp-coroutine-engine
+ cpp-coroutine-listener
+ cpp-http-fetch
+ cpp-http-server
+ cpp-http-io
+ library-cpp-logger
+ cpp-malloc-api
+ library-cpp-svnversion
+ library-cpp-uri
+ library-cpp-cgiparam
+)
+target_sources(cpp-monlib-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/monservice.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/mon_service_http_request.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/service.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/format.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/auth.cpp
+)
diff --git a/library/cpp/monlib/service/CMakeLists.txt b/library/cpp/monlib/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/service/CMakeLists.txt
+++ b/library/cpp/monlib/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/service/pages/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/service/pages/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bc19458fc6
--- /dev/null
+++ b/library/cpp/monlib/service/pages/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(resources)
+add_subdirectory(tablesorter)
+
+add_library(monlib-service-pages)
+target_link_libraries(monlib-service-pages PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-build_info
+ cpp-malloc-api
+ library-cpp-svnversion
+ library-cpp-resource
+ cpp-monlib-service
+ monlib-encode-json
+ monlib-encode-text
+ monlib-encode-spack
+ monlib-encode-prometheus
+)
+target_sources(monlib-service-pages PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/diag_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/html_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/index_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/pre_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resource_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/templates.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/version_mon_page.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/registry_mon_page.cpp
+)
diff --git a/library/cpp/monlib/service/pages/CMakeLists.txt b/library/cpp/monlib/service/pages/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/service/pages/CMakeLists.txt
+++ b/library/cpp/monlib/service/pages/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f74d5e30a3
--- /dev/null
+++ b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(service-pages-resources INTERFACE)
+target_link_libraries(service-pages-resources INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-monlib-dynamic_counters
+)
+
+add_global_library_for(service-pages-resources.global service-pages-resources)
+target_link_libraries(service-pages-resources.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-monlib-dynamic_counters
+)
+target_sources(service-pages-resources.global PRIVATE
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/service/pages/resources/ff1cb2429e1fce561e9b0ed0d5522c37.cpp
+)
+resources(service-pages-resources.global
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/service/pages/resources/ff1cb2429e1fce561e9b0ed0d5522c37.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/css/bootstrap.min.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/fonts/glyphicons-halflings-regular.eot
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/fonts/glyphicons-halflings-regular.svg
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/fonts/glyphicons-halflings-regular.ttf
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/fonts/glyphicons-halflings-regular.woff
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/js/bootstrap.min.js
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/static/js/jquery.min.js
+ KEYS
+ static/css/bootstrap.min.css
+ static/fonts/glyphicons-halflings-regular.eot
+ static/fonts/glyphicons-halflings-regular.svg
+ static/fonts/glyphicons-halflings-regular.ttf
+ static/fonts/glyphicons-halflings-regular.woff
+ static/js/bootstrap.min.js
+ static/js/jquery.min.js
+)
diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/service/pages/resources/CMakeLists.txt
+++ b/library/cpp/monlib/service/pages/resources/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..516c919f8a
--- /dev/null
+++ b/library/cpp/monlib/service/pages/tablesorter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(service-pages-tablesorter INTERFACE)
+target_link_libraries(service-pages-tablesorter INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-monlib-dynamic_counters
+)
+
+add_global_library_for(service-pages-tablesorter.global service-pages-tablesorter)
+target_link_libraries(service-pages-tablesorter.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-monlib-dynamic_counters
+)
+target_sources(service-pages-tablesorter.global PRIVATE
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/service/pages/tablesorter/0c255888afcc3e2adc5fd360ee152bac.cpp
+)
+resources(service-pages-tablesorter.global
+ ${CMAKE_BINARY_DIR}/library/cpp/monlib/service/pages/tablesorter/0c255888afcc3e2adc5fd360ee152bac.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/tablesorter/resources/jquery.tablesorter.css
+ ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/tablesorter/resources/jquery.tablesorter.js
+ KEYS
+ jquery.tablesorter.css
+ jquery.tablesorter.js
+)
diff --git a/library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt b/library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt
+++ b/library/cpp/monlib/service/pages/tablesorter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/on_disk/chunks/CMakeLists.darwin-arm64.txt b/library/cpp/on_disk/chunks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ca761a26c8
--- /dev/null
+++ b/library/cpp/on_disk/chunks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-on_disk-chunks)
+target_link_libraries(cpp-on_disk-chunks PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-on_disk-chunks PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/on_disk/chunks/chunked_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/on_disk/chunks/reader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/on_disk/chunks/writer.cpp
+)
diff --git a/library/cpp/on_disk/chunks/CMakeLists.txt b/library/cpp/on_disk/chunks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/on_disk/chunks/CMakeLists.txt
+++ b/library/cpp/on_disk/chunks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/big_integer/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/big_integer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..79fa340e5f
--- /dev/null
+++ b/library/cpp/openssl/big_integer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-big_integer)
+target_link_libraries(cpp-openssl-big_integer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+)
+target_sources(cpp-openssl-big_integer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/big_integer/big_integer.cpp
+)
diff --git a/library/cpp/openssl/big_integer/CMakeLists.txt b/library/cpp/openssl/big_integer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/big_integer/CMakeLists.txt
+++ b/library/cpp/openssl/big_integer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/crypto/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/crypto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..869195583d
--- /dev/null
+++ b/library/cpp/openssl/crypto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-crypto)
+target_link_libraries(cpp-openssl-crypto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ cpp-openssl-big_integer
+ cpp-openssl-init
+)
+target_sources(cpp-openssl-crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/crypto/sha.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/crypto/rsa.cpp
+)
diff --git a/library/cpp/openssl/crypto/CMakeLists.txt b/library/cpp/openssl/crypto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/crypto/CMakeLists.txt
+++ b/library/cpp/openssl/crypto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/holders/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/holders/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..02195bd183
--- /dev/null
+++ b/library/cpp/openssl/holders/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-holders)
+target_link_libraries(cpp-openssl-holders PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+)
+target_sources(cpp-openssl-holders PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/holders/bio.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/holders/x509_vfy.cpp
+)
diff --git a/library/cpp/openssl/holders/CMakeLists.txt b/library/cpp/openssl/holders/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/holders/CMakeLists.txt
+++ b/library/cpp/openssl/holders/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/init/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/init/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e9d629f3a
--- /dev/null
+++ b/library/cpp/openssl/init/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-init)
+target_link_libraries(cpp-openssl-init PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+)
+target_sources(cpp-openssl-init PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/init/init.cpp
+)
diff --git a/library/cpp/openssl/init/CMakeLists.txt b/library/cpp/openssl/init/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/init/CMakeLists.txt
+++ b/library/cpp/openssl/init/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/io/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bfd6c764e2
--- /dev/null
+++ b/library/cpp/openssl/io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-io)
+target_link_libraries(cpp-openssl-io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ certs
+ contrib-libs-openssl
+ cpp-openssl-init
+ cpp-openssl-method
+)
+target_sources(cpp-openssl-io PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/io/stream.cpp
+)
diff --git a/library/cpp/openssl/io/CMakeLists.txt b/library/cpp/openssl/io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/io/CMakeLists.txt
+++ b/library/cpp/openssl/io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/openssl/method/CMakeLists.darwin-arm64.txt b/library/cpp/openssl/method/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a87fc259d
--- /dev/null
+++ b/library/cpp/openssl/method/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-openssl-method)
+target_link_libraries(cpp-openssl-method PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ cpp-openssl-holders
+)
+target_sources(cpp-openssl-method PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/openssl/method/io.cpp
+)
diff --git a/library/cpp/openssl/method/CMakeLists.txt b/library/cpp/openssl/method/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/openssl/method/CMakeLists.txt
+++ b/library/cpp/openssl/method/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt b/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9e3e6c0b53
--- /dev/null
+++ b/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-packedtypes)
+target_link_libraries(library-cpp-packedtypes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-zc_memory_input
+)
+target_sources(library-cpp-packedtypes PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp
+)
diff --git a/library/cpp/packedtypes/CMakeLists.txt b/library/cpp/packedtypes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/packedtypes/CMakeLists.txt
+++ b/library/cpp/packedtypes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/packers/CMakeLists.darwin-arm64.txt b/library/cpp/packers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..59f8cfcaf5
--- /dev/null
+++ b/library/cpp/packers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-packers)
+target_link_libraries(library-cpp-packers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-packers PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/packers/packers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/packers/proto_packer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/packers/region_packer.cpp
+)
diff --git a/library/cpp/packers/CMakeLists.txt b/library/cpp/packers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/packers/CMakeLists.txt
+++ b/library/cpp/packers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/pop_count/CMakeLists.darwin-arm64.txt b/library/cpp/pop_count/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..30961489be
--- /dev/null
+++ b/library/cpp/pop_count/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-pop_count)
+target_link_libraries(library-cpp-pop_count PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-pop_count PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/pop_count/popcount.cpp
+)
diff --git a/library/cpp/pop_count/CMakeLists.txt b/library/cpp/pop_count/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/pop_count/CMakeLists.txt
+++ b/library/cpp/pop_count/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/presort/CMakeLists.darwin-arm64.txt b/library/cpp/presort/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5f8c72b28c
--- /dev/null
+++ b/library/cpp/presort/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-presort)
+target_link_libraries(library-cpp-presort PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-presort PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/presort/presort.cpp
+)
diff --git a/library/cpp/presort/CMakeLists.txt b/library/cpp/presort/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/presort/CMakeLists.txt
+++ b/library/cpp/presort/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f17724c5b1
--- /dev/null
+++ b/library/cpp/protobuf/dynamic_prototype/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-protobuf-dynamic_prototype)
+target_link_libraries(cpp-protobuf-dynamic_prototype PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_sources(cpp-protobuf-dynamic_prototype PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/dynamic_prototype/dynamic_prototype.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/dynamic_prototype/generate_file_descriptor_set.cpp
+)
diff --git a/library/cpp/protobuf/dynamic_prototype/CMakeLists.txt b/library/cpp/protobuf/dynamic_prototype/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/dynamic_prototype/CMakeLists.txt
+++ b/library/cpp/protobuf/dynamic_prototype/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/interop/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/interop/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..61799c97ff
--- /dev/null
+++ b/library/cpp/protobuf/interop/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-protobuf-interop)
+target_link_libraries(cpp-protobuf-interop PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_sources(cpp-protobuf-interop PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/interop/cast.cpp
+)
diff --git a/library/cpp/protobuf/interop/CMakeLists.txt b/library/cpp/protobuf/interop/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/interop/CMakeLists.txt
+++ b/library/cpp/protobuf/interop/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6914995d2e
--- /dev/null
+++ b/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+
+add_library(cpp-protobuf-json)
+target_link_libraries(cpp-protobuf-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-json
+ cpp-protobuf-util
+ protobuf-json-proto
+ cpp-string_utils-relaxed_escaper
+)
+target_sources(cpp-protobuf-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_writer_output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/name_generator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto2json.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto2json_printer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/string_transform.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.cpp
+)
diff --git a/library/cpp/protobuf/json/CMakeLists.txt b/library/cpp/protobuf/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/json/CMakeLists.txt
+++ b/library/cpp/protobuf/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6c6f4228c3
--- /dev/null
+++ b/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(protobuf-json-proto)
+target_link_libraries(protobuf-json-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(protobuf-json-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto
+)
+target_proto_addincls(protobuf-json-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(protobuf-json-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/protobuf/json/proto/CMakeLists.txt b/library/cpp/protobuf/json/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/json/proto/CMakeLists.txt
+++ b/library/cpp/protobuf/json/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..51b65cd5b9
--- /dev/null
+++ b/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+
+add_library(cpp-protobuf-util)
+target_link_libraries(cpp-protobuf-util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-binsaver
+ protobuf-util-proto
+ cpp-string_utils-base64
+)
+target_sources(cpp-protobuf-util PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/simple_reflection.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/walk.cpp
+)
diff --git a/library/cpp/protobuf/util/CMakeLists.txt b/library/cpp/protobuf/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/util/CMakeLists.txt
+++ b/library/cpp/protobuf/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7a58b4bfeb
--- /dev/null
+++ b/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(protobuf-util-proto)
+target_link_libraries(protobuf-util-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(protobuf-util-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto
+)
+target_proto_addincls(protobuf-util-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(protobuf-util-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/protobuf/util/proto/CMakeLists.txt b/library/cpp/protobuf/util/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/util/proto/CMakeLists.txt
+++ b/library/cpp/protobuf/util/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/protobuf/yql/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/yql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..112f6e94e7
--- /dev/null
+++ b/library/cpp/protobuf/yql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-protobuf-yql)
+target_link_libraries(cpp-protobuf-yql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-json
+ cpp-protobuf-dynamic_prototype
+ cpp-protobuf-json
+ cpp-string_utils-base64
+)
+target_sources(cpp-protobuf-yql PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/yql/descriptor.cpp
+)
diff --git a/library/cpp/protobuf/yql/CMakeLists.txt b/library/cpp/protobuf/yql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/protobuf/yql/CMakeLists.txt
+++ b/library/cpp/protobuf/yql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/random_provider/CMakeLists.darwin-arm64.txt b/library/cpp/random_provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac70e71b91
--- /dev/null
+++ b/library/cpp/random_provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-random_provider)
+target_link_libraries(library-cpp-random_provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-random_provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp
+)
diff --git a/library/cpp/random_provider/CMakeLists.txt b/library/cpp/random_provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/random_provider/CMakeLists.txt
+++ b/library/cpp/random_provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/regex/CMakeLists.darwin-arm64.txt b/library/cpp/regex/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..279390306b
--- /dev/null
+++ b/library/cpp/regex/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(pcre)
+add_subdirectory(pire)
diff --git a/library/cpp/regex/CMakeLists.txt b/library/cpp/regex/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/regex/CMakeLists.txt
+++ b/library/cpp/regex/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/regex/pcre/CMakeLists.darwin-arm64.txt b/library/cpp/regex/pcre/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e01e97c1d
--- /dev/null
+++ b/library/cpp/regex/pcre/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-regex-pcre)
+target_link_libraries(cpp-regex-pcre PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-pcre
+ libs-pcre-pcre16
+ libs-pcre-pcre32
+ cpp-containers-stack_array
+)
+target_sources(cpp-regex-pcre PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/regex/pcre/pcre.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/regex/pcre/regexp.cpp
+)
diff --git a/library/cpp/regex/pcre/CMakeLists.txt b/library/cpp/regex/pcre/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/regex/pcre/CMakeLists.txt
+++ b/library/cpp/regex/pcre/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt b/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1448b058e8
--- /dev/null
+++ b/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-regex-pire)
+target_compile_options(cpp-regex-pire PRIVATE
+ -DPIRE_NO_CONFIG
+)
+target_include_directories(cpp-regex-pire PUBLIC
+ ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire
+)
+target_link_libraries(cpp-regex-pire PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ bison-bison-induced
+)
+target_sources(cpp-regex-pire PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/fsm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/scanner_io.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/easy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/scanners/null.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/extra/capture.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/extra/count.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/extra/glyphs.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/re_lexer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/read_unicode.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/extraencodings.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/approx_matching.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/half_final_fsm.cpp
+)
+target_bison_parser(cpp-regex-pire
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/re_parser.y
+)
diff --git a/library/cpp/regex/pire/CMakeLists.txt b/library/cpp/regex/pire/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/regex/pire/CMakeLists.txt
+++ b/library/cpp/regex/pire/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/resource/CMakeLists.darwin-arm64.txt b/library/cpp/resource/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a73bc8800f
--- /dev/null
+++ b/library/cpp/resource/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-resource)
+target_link_libraries(library-cpp-resource PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-blockcodecs-core
+ blockcodecs-codecs-zstd
+)
+target_sources(library-cpp-resource PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/resource/registry.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/resource/resource.cpp
+)
diff --git a/library/cpp/resource/CMakeLists.txt b/library/cpp/resource/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/resource/CMakeLists.txt
+++ b/library/cpp/resource/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/retry/CMakeLists.darwin-arm64.txt b/library/cpp/retry/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5cfb972bb5
--- /dev/null
+++ b/library/cpp/retry/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(library-cpp-retry)
+target_link_libraries(library-cpp-retry PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-retry-protos
+)
+target_sources(library-cpp-retry PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/retry/retry.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/retry/utils.cpp
+)
diff --git a/library/cpp/retry/CMakeLists.txt b/library/cpp/retry/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/retry/CMakeLists.txt
+++ b/library/cpp/retry/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt b/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ba41965df2
--- /dev/null
+++ b/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(cpp-retry-protos)
+target_link_libraries(cpp-retry-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(cpp-retry-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto
+)
+target_proto_addincls(cpp-retry-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(cpp-retry-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/retry/protos/CMakeLists.txt b/library/cpp/retry/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/retry/protos/CMakeLists.txt
+++ b/library/cpp/retry/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt b/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6705a4cac
--- /dev/null
+++ b/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,13 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-sanitizer-include INTERFACE)
+target_include_directories(cpp-sanitizer-include INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/clang14-rt/include
+)
diff --git a/library/cpp/sanitizer/include/CMakeLists.txt b/library/cpp/sanitizer/include/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/sanitizer/include/CMakeLists.txt
+++ b/library/cpp/sanitizer/include/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/scheme/CMakeLists.darwin-arm64.txt b/library/cpp/scheme/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..851add2e6c
--- /dev/null
+++ b/library/cpp/scheme/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-scheme)
+target_link_libraries(library-cpp-scheme PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-json
+ cpp-string_utils-relaxed_escaper
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-cpp-scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_json_read.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_json_write.cpp
+)
+generate_enum_serilization(library-cpp-scheme
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.h
+ INCLUDE_HEADERS
+ library/cpp/scheme/scheme.h
+)
+target_ragel_lexers(library-cpp-scheme
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_select.rl6
+ -CG2
+)
diff --git a/library/cpp/scheme/CMakeLists.txt b/library/cpp/scheme/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/scheme/CMakeLists.txt
+++ b/library/cpp/scheme/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/sighandler/CMakeLists.darwin-arm64.txt b/library/cpp/sighandler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3f330b9bb5
--- /dev/null
+++ b/library/cpp/sighandler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-sighandler)
+target_link_libraries(library-cpp-sighandler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-sighandler PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp
+)
diff --git a/library/cpp/sighandler/CMakeLists.txt b/library/cpp/sighandler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/sighandler/CMakeLists.txt
+++ b/library/cpp/sighandler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/skiff/CMakeLists.darwin-arm64.txt b/library/cpp/skiff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d8d296df29
--- /dev/null
+++ b/library/cpp/skiff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-skiff)
+target_link_libraries(library-cpp-skiff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-cpp-skiff PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/skiff/skiff.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/skiff/skiff_schema.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/skiff/skiff_validator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/skiff/zerocopy_output_writer.cpp
+)
+generate_enum_serilization(library-cpp-skiff
+ ${CMAKE_SOURCE_DIR}/library/cpp/skiff/public.h
+ INCLUDE_HEADERS
+ library/cpp/skiff/public.h
+)
diff --git a/library/cpp/skiff/CMakeLists.txt b/library/cpp/skiff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/skiff/CMakeLists.txt
+++ b/library/cpp/skiff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt b/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..15be6f0095
--- /dev/null
+++ b/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-sliding_window)
+target_link_libraries(library-cpp-sliding_window PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-sliding_window PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp
+)
diff --git a/library/cpp/sliding_window/CMakeLists.txt b/library/cpp/sliding_window/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/sliding_window/CMakeLists.txt
+++ b/library/cpp/sliding_window/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/sse/CMakeLists.darwin-arm64.txt b/library/cpp/sse/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dbd80b1e0c
--- /dev/null
+++ b/library/cpp/sse/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-sse)
+target_link_libraries(library-cpp-sse PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-sse PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/sse/sse.cpp
+)
diff --git a/library/cpp/sse/CMakeLists.txt b/library/cpp/sse/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/sse/CMakeLists.txt
+++ b/library/cpp/sse/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/brotli/CMakeLists.darwin-arm64.txt b/library/cpp/streams/brotli/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7102715952
--- /dev/null
+++ b/library/cpp/streams/brotli/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-brotli)
+target_link_libraries(cpp-streams-brotli PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-brotli-enc
+ libs-brotli-dec
+)
+target_sources(cpp-streams-brotli PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/brotli/brotli.cpp
+)
diff --git a/library/cpp/streams/brotli/CMakeLists.txt b/library/cpp/streams/brotli/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/brotli/CMakeLists.txt
+++ b/library/cpp/streams/brotli/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/bzip2/CMakeLists.darwin-arm64.txt b/library/cpp/streams/bzip2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5afa320647
--- /dev/null
+++ b/library/cpp/streams/bzip2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-bzip2)
+target_link_libraries(cpp-streams-bzip2 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libbz2
+)
+target_sources(cpp-streams-bzip2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/bzip2/bzip2.cpp
+)
diff --git a/library/cpp/streams/bzip2/CMakeLists.txt b/library/cpp/streams/bzip2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/bzip2/CMakeLists.txt
+++ b/library/cpp/streams/bzip2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/lzma/CMakeLists.darwin-arm64.txt b/library/cpp/streams/lzma/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e5c652aee
--- /dev/null
+++ b/library/cpp/streams/lzma/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-lzma)
+target_link_libraries(cpp-streams-lzma PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lzmasdk
+)
+target_sources(cpp-streams-lzma PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/lzma/lzma.cpp
+)
diff --git a/library/cpp/streams/lzma/CMakeLists.txt b/library/cpp/streams/lzma/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/lzma/CMakeLists.txt
+++ b/library/cpp/streams/lzma/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/xz/CMakeLists.darwin-arm64.txt b/library/cpp/streams/xz/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..30f9d34444
--- /dev/null
+++ b/library/cpp/streams/xz/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-xz)
+target_link_libraries(cpp-streams-xz PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lzma
+)
+target_sources(cpp-streams-xz PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/xz/decompress.cpp
+)
diff --git a/library/cpp/streams/xz/CMakeLists.txt b/library/cpp/streams/xz/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/xz/CMakeLists.txt
+++ b/library/cpp/streams/xz/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/zc_memory_input/CMakeLists.darwin-arm64.txt b/library/cpp/streams/zc_memory_input/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e0ddfec96c
--- /dev/null
+++ b/library/cpp/streams/zc_memory_input/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-zc_memory_input)
+target_link_libraries(cpp-streams-zc_memory_input PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-streams-zc_memory_input PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/zc_memory_input/zc_memory_input.cpp
+)
diff --git a/library/cpp/streams/zc_memory_input/CMakeLists.txt b/library/cpp/streams/zc_memory_input/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/zc_memory_input/CMakeLists.txt
+++ b/library/cpp/streams/zc_memory_input/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/streams/zstd/CMakeLists.darwin-arm64.txt b/library/cpp/streams/zstd/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9a3521cd9b
--- /dev/null
+++ b/library/cpp/streams/zstd/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-streams-zstd)
+target_link_libraries(cpp-streams-zstd PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-zstd
+)
+target_sources(cpp-streams-zstd PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/streams/zstd/zstd.cpp
+)
diff --git a/library/cpp/streams/zstd/CMakeLists.txt b/library/cpp/streams/zstd/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/streams/zstd/CMakeLists.txt
+++ b/library/cpp/streams/zstd/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/base32/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/base32/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d9db28b47
--- /dev/null
+++ b/library/cpp/string_utils/base32/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-base32)
+target_link_libraries(cpp-string_utils-base32 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-base32 PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/base32/base32.cpp
+)
diff --git a/library/cpp/string_utils/base32/CMakeLists.txt b/library/cpp/string_utils/base32/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/base32/CMakeLists.txt
+++ b/library/cpp/string_utils/base32/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/base64/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/base64/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d4f74e8dc0
--- /dev/null
+++ b/library/cpp/string_utils/base64/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-base64)
+target_link_libraries(cpp-string_utils-base64 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-base64-avx2
+ libs-base64-ssse3
+ libs-base64-neon32
+ libs-base64-neon64
+ libs-base64-plain32
+ libs-base64-plain64
+)
+target_sources(cpp-string_utils-base64 PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/base64/base64.cpp
+)
diff --git a/library/cpp/string_utils/base64/CMakeLists.txt b/library/cpp/string_utils/base64/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/base64/CMakeLists.txt
+++ b/library/cpp/string_utils/base64/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/csv/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/csv/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d50b571fde
--- /dev/null
+++ b/library/cpp/string_utils/csv/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-csv)
+target_link_libraries(cpp-string_utils-csv PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-csv PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/csv/csv.cpp
+)
diff --git a/library/cpp/string_utils/csv/CMakeLists.txt b/library/cpp/string_utils/csv/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/csv/CMakeLists.txt
+++ b/library/cpp/string_utils/csv/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/indent_text/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/indent_text/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6eca107f7f
--- /dev/null
+++ b/library/cpp/string_utils/indent_text/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-indent_text)
+target_link_libraries(cpp-string_utils-indent_text PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-indent_text PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/indent_text/indent_text.cpp
+)
diff --git a/library/cpp/string_utils/indent_text/CMakeLists.txt b/library/cpp/string_utils/indent_text/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/indent_text/CMakeLists.txt
+++ b/library/cpp/string_utils/indent_text/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d86ce0e67
--- /dev/null
+++ b/library/cpp/string_utils/levenshtein_diff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-levenshtein_diff)
+target_link_libraries(cpp-string_utils-levenshtein_diff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ util-draft
+)
+target_sources(cpp-string_utils-levenshtein_diff PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/levenshtein_diff/levenshtein_diff.cpp
+)
diff --git a/library/cpp/string_utils/levenshtein_diff/CMakeLists.txt b/library/cpp/string_utils/levenshtein_diff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/levenshtein_diff/CMakeLists.txt
+++ b/library/cpp/string_utils/levenshtein_diff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5cd758efec
--- /dev/null
+++ b/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-parse_size)
+target_link_libraries(cpp-string_utils-parse_size PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-parse_size PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp
+)
diff --git a/library/cpp/string_utils/parse_size/CMakeLists.txt b/library/cpp/string_utils/parse_size/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/parse_size/CMakeLists.txt
+++ b/library/cpp/string_utils/parse_size/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e2bedf1e18
--- /dev/null
+++ b/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-quote)
+target_link_libraries(cpp-string_utils-quote PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-quote PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp
+)
diff --git a/library/cpp/string_utils/quote/CMakeLists.txt b/library/cpp/string_utils/quote/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/quote/CMakeLists.txt
+++ b/library/cpp/string_utils/quote/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14901bec18
--- /dev/null
+++ b/library/cpp/string_utils/relaxed_escaper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-relaxed_escaper)
+target_link_libraries(cpp-string_utils-relaxed_escaper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-relaxed_escaper PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/relaxed_escaper/relaxed_escaper.cpp
+)
diff --git a/library/cpp/string_utils/relaxed_escaper/CMakeLists.txt b/library/cpp/string_utils/relaxed_escaper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/relaxed_escaper/CMakeLists.txt
+++ b/library/cpp/string_utils/relaxed_escaper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/scan/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/scan/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3d7752c1ff
--- /dev/null
+++ b/library/cpp/string_utils/scan/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-scan)
+target_link_libraries(cpp-string_utils-scan PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-scan PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/scan/scan.cpp
+)
diff --git a/library/cpp/string_utils/scan/CMakeLists.txt b/library/cpp/string_utils/scan/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/scan/CMakeLists.txt
+++ b/library/cpp/string_utils/scan/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..672139e643
--- /dev/null
+++ b/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-url)
+target_link_libraries(cpp-string_utils-url PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-url PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp
+)
diff --git a/library/cpp/string_utils/url/CMakeLists.txt b/library/cpp/string_utils/url/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/url/CMakeLists.txt
+++ b/library/cpp/string_utils/url/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b686760229
--- /dev/null
+++ b/library/cpp/string_utils/ztstrbuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-string_utils-ztstrbuf)
+target_link_libraries(cpp-string_utils-ztstrbuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-string_utils-ztstrbuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/ztstrbuf/ztstrbuf.cpp
+)
diff --git a/library/cpp/string_utils/ztstrbuf/CMakeLists.txt b/library/cpp/string_utils/ztstrbuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/string_utils/ztstrbuf/CMakeLists.txt
+++ b/library/cpp/string_utils/ztstrbuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/svnversion/CMakeLists.darwin-arm64.txt b/library/cpp/svnversion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f767e929b8
--- /dev/null
+++ b/library/cpp/svnversion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-svnversion)
+target_link_libraries(library-cpp-svnversion PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-svnversion PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/svnversion/svnversion.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/svnversion/svn_interface.c
+)
diff --git a/library/cpp/svnversion/CMakeLists.txt b/library/cpp/svnversion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/svnversion/CMakeLists.txt
+++ b/library/cpp/svnversion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/tdigest/CMakeLists.darwin-arm64.txt b/library/cpp/tdigest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9dd7437db0
--- /dev/null
+++ b/library/cpp/tdigest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-cpp-tdigest)
+target_link_libraries(library-cpp-tdigest PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-cpp-tdigest PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto
+)
+target_sources(library-cpp-tdigest PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp
+)
+target_proto_addincls(library-cpp-tdigest
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-cpp-tdigest
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/tdigest/CMakeLists.txt b/library/cpp/tdigest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/tdigest/CMakeLists.txt
+++ b/library/cpp/tdigest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/terminate_handler/CMakeLists.darwin-arm64.txt b/library/cpp/terminate_handler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..050a5323bd
--- /dev/null
+++ b/library/cpp/terminate_handler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-terminate_handler)
+target_link_libraries(library-cpp-terminate_handler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-terminate_handler PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/terminate_handler/segv_handler.cpp
+)
+
+add_global_library_for(library-cpp-terminate_handler.global library-cpp-terminate_handler)
+target_link_libraries(library-cpp-terminate_handler.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-terminate_handler.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/terminate_handler/terminate_handler.cpp
+)
diff --git a/library/cpp/terminate_handler/CMakeLists.txt b/library/cpp/terminate_handler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/terminate_handler/CMakeLists.txt
+++ b/library/cpp/terminate_handler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/benchmark/CMakeLists.darwin-arm64.txt b/library/cpp/testing/benchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c68241bc9e
--- /dev/null
+++ b/library/cpp/testing/benchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(main)
+
+add_library(cpp-testing-benchmark)
+target_link_libraries(cpp-testing-benchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-re2
+ library-cpp-colorizer
+ cpp-getopt-small
+ library-cpp-json
+ library-cpp-linear_regression
+ cpp-threading-poor_man_openmp
+)
+target_sources(cpp-testing-benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/benchmark/bench.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/benchmark/dummy.cpp
+)
diff --git a/library/cpp/testing/benchmark/CMakeLists.txt b/library/cpp/testing/benchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/benchmark/CMakeLists.txt
+++ b/library/cpp/testing/benchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/benchmark/main/CMakeLists.darwin-arm64.txt b/library/cpp/testing/benchmark/main/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..15cbe3d5ac
--- /dev/null
+++ b/library/cpp/testing/benchmark/main/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(testing-benchmark-main INTERFACE)
+target_link_libraries(testing-benchmark-main INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-benchmark
+)
+
+add_global_library_for(testing-benchmark-main.global testing-benchmark-main)
+target_link_libraries(testing-benchmark-main.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-benchmark
+)
+target_sources(testing-benchmark-main.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/benchmark/main/main.cpp
+)
diff --git a/library/cpp/testing/benchmark/main/CMakeLists.txt b/library/cpp/testing/benchmark/main/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/benchmark/main/CMakeLists.txt
+++ b/library/cpp/testing/benchmark/main/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/common/CMakeLists.darwin-arm64.txt b/library/cpp/testing/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c795d4ebeb
--- /dev/null
+++ b/library/cpp/testing/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-common)
+target_link_libraries(cpp-testing-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+)
+target_sources(cpp-testing-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/common/env.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/common/network.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/common/probe.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/common/scope.cpp
+)
diff --git a/library/cpp/testing/common/CMakeLists.txt b/library/cpp/testing/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/common/CMakeLists.txt
+++ b/library/cpp/testing/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/gbenchmark/CMakeLists.darwin-arm64.txt b/library/cpp/testing/gbenchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b4fdb826d
--- /dev/null
+++ b/library/cpp/testing/gbenchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-gbenchmark)
+target_link_libraries(cpp-testing-gbenchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-google-benchmark
+ cpp-testing-hook
+)
+target_sources(cpp-testing-gbenchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gbenchmark/main.cpp
+)
diff --git a/library/cpp/testing/gbenchmark/CMakeLists.txt b/library/cpp/testing/gbenchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/gbenchmark/CMakeLists.txt
+++ b/library/cpp/testing/gbenchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-arm64.txt b/library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8a20efaed0
--- /dev/null
+++ b/library/cpp/testing/gmock_in_unittest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-gmock_in_unittest)
+target_link_libraries(cpp-testing-gmock_in_unittest PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-googletest-googlemock
+ restricted-googletest-googletest
+ cpp-testing-gtest_extensions
+ cpp-testing-unittest
+)
+target_sources(cpp-testing-gmock_in_unittest PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gmock_in_unittest/events.cpp
+)
+
+add_global_library_for(cpp-testing-gmock_in_unittest.global cpp-testing-gmock_in_unittest)
+target_link_libraries(cpp-testing-gmock_in_unittest.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-googletest-googlemock
+ restricted-googletest-googletest
+ cpp-testing-gtest_extensions
+ cpp-testing-unittest
+)
+target_sources(cpp-testing-gmock_in_unittest.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gmock_in_unittest/registration.cpp
+)
diff --git a/library/cpp/testing/gmock_in_unittest/CMakeLists.txt b/library/cpp/testing/gmock_in_unittest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/gmock_in_unittest/CMakeLists.txt
+++ b/library/cpp/testing/gmock_in_unittest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/gtest/CMakeLists.darwin-arm64.txt b/library/cpp/testing/gtest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..41bc7e20f9
--- /dev/null
+++ b/library/cpp/testing/gtest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-gtest)
+target_link_libraries(cpp-testing-gtest PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-googletest-googlemock
+ restricted-googletest-googletest
+ cpp-string_utils-relaxed_escaper
+ cpp-testing-common
+ cpp-testing-gtest_extensions
+ cpp-testing-hook
+)
+target_sources(cpp-testing-gtest PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest/gtest.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest/matchers.cpp
+)
diff --git a/library/cpp/testing/gtest/CMakeLists.txt b/library/cpp/testing/gtest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/gtest/CMakeLists.txt
+++ b/library/cpp/testing/gtest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/gtest_extensions/CMakeLists.darwin-arm64.txt b/library/cpp/testing/gtest_extensions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3557a689eb
--- /dev/null
+++ b/library/cpp/testing/gtest_extensions/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-gtest_extensions)
+target_link_libraries(cpp-testing-gtest_extensions PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-googletest-googlemock
+ restricted-googletest-googletest
+)
+target_sources(cpp-testing-gtest_extensions PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_extensions/assertions.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_extensions/gtest_extensions.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_extensions/matchers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_extensions/pretty_printers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_extensions/probe.cpp
+)
diff --git a/library/cpp/testing/gtest_extensions/CMakeLists.txt b/library/cpp/testing/gtest_extensions/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/gtest_extensions/CMakeLists.txt
+++ b/library/cpp/testing/gtest_extensions/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/gtest_main/CMakeLists.darwin-arm64.txt b/library/cpp/testing/gtest_main/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1075010e22
--- /dev/null
+++ b/library/cpp/testing/gtest_main/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-gtest_main)
+target_link_libraries(cpp-testing-gtest_main PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-gtest
+)
+target_sources(cpp-testing-gtest_main PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/gtest_main/main.cpp
+)
diff --git a/library/cpp/testing/gtest_main/CMakeLists.txt b/library/cpp/testing/gtest_main/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/gtest_main/CMakeLists.txt
+++ b/library/cpp/testing/gtest_main/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/hook/CMakeLists.darwin-arm64.txt b/library/cpp/testing/hook/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14cff14af7
--- /dev/null
+++ b/library/cpp/testing/hook/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-hook)
+target_link_libraries(cpp-testing-hook PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-testing-hook PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/hook/hook.cpp
+)
diff --git a/library/cpp/testing/hook/CMakeLists.txt b/library/cpp/testing/hook/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/hook/CMakeLists.txt
+++ b/library/cpp/testing/hook/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/mock_server/CMakeLists.darwin-arm64.txt b/library/cpp/testing/mock_server/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5d1538c15
--- /dev/null
+++ b/library/cpp/testing/mock_server/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-mock_server)
+target_link_libraries(cpp-testing-mock_server PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-http-misc
+ cpp-http-server
+)
+target_sources(cpp-testing-mock_server PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/mock_server/server.cpp
+)
diff --git a/library/cpp/testing/mock_server/CMakeLists.txt b/library/cpp/testing/mock_server/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/mock_server/CMakeLists.txt
+++ b/library/cpp/testing/mock_server/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/unittest/CMakeLists.darwin-arm64.txt b/library/cpp/testing/unittest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1aeaa1a60b
--- /dev/null
+++ b/library/cpp/testing/unittest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-unittest)
+target_link_libraries(cpp-testing-unittest PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libxml
+ library-cpp-colorizer
+ library-cpp-dbg_output
+ library-cpp-diff
+ cpp-json-writer
+ cpp-testing-common
+ cpp-testing-hook
+)
+target_sources(cpp-testing-unittest PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/gtest.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/checks.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/junit.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/plugin.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/registar.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/tests_data.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest/utmain.cpp
+)
diff --git a/library/cpp/testing/unittest/CMakeLists.txt b/library/cpp/testing/unittest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/unittest/CMakeLists.txt
+++ b/library/cpp/testing/unittest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/testing/unittest_main/CMakeLists.darwin-arm64.txt b/library/cpp/testing/unittest_main/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..47d1aa79f6
--- /dev/null
+++ b/library/cpp/testing/unittest_main/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-testing-unittest_main)
+target_link_libraries(cpp-testing-unittest_main PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest
+ library-cpp-terminate_handler
+)
+target_sources(cpp-testing-unittest_main PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/testing/unittest_main/main.cpp
+)
diff --git a/library/cpp/testing/unittest_main/CMakeLists.txt b/library/cpp/testing/unittest_main/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/testing/unittest_main/CMakeLists.txt
+++ b/library/cpp/testing/unittest_main/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/atomic/CMakeLists.darwin-arm64.txt b/library/cpp/threading/atomic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d9f7098b34
--- /dev/null
+++ b/library/cpp/threading/atomic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-atomic)
+target_link_libraries(cpp-threading-atomic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-atomic PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/atomic/bool.cpp
+)
diff --git a/library/cpp/threading/atomic/CMakeLists.txt b/library/cpp/threading/atomic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/atomic/CMakeLists.txt
+++ b/library/cpp/threading/atomic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/blocking_queue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/blocking_queue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0fcf5ce481
--- /dev/null
+++ b/library/cpp/threading/blocking_queue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-blocking_queue)
+target_link_libraries(cpp-threading-blocking_queue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-threading-blocking_queue PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/blocking_queue/blocking_queue.cpp
+)
diff --git a/library/cpp/threading/blocking_queue/CMakeLists.txt b/library/cpp/threading/blocking_queue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/blocking_queue/CMakeLists.txt
+++ b/library/cpp/threading/blocking_queue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/chunk_queue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/chunk_queue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..454bf560f9
--- /dev/null
+++ b/library/cpp/threading/chunk_queue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-chunk_queue)
+target_link_libraries(cpp-threading-chunk_queue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-chunk_queue PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/chunk_queue/queue.cpp
+)
diff --git a/library/cpp/threading/chunk_queue/CMakeLists.txt b/library/cpp/threading/chunk_queue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/chunk_queue/CMakeLists.txt
+++ b/library/cpp/threading/chunk_queue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/cron/CMakeLists.darwin-arm64.txt b/library/cpp/threading/cron/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..429d3b0b0d
--- /dev/null
+++ b/library/cpp/threading/cron/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-cron)
+target_link_libraries(cpp-threading-cron PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-cron PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/cron/cron.cpp
+)
diff --git a/library/cpp/threading/cron/CMakeLists.txt b/library/cpp/threading/cron/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/cron/CMakeLists.txt
+++ b/library/cpp/threading/cron/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..902b6d7a9a
--- /dev/null
+++ b/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-equeue)
+target_link_libraries(cpp-threading-equeue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-equeue PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp
+)
diff --git a/library/cpp/threading/equeue/CMakeLists.txt b/library/cpp/threading/equeue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/equeue/CMakeLists.txt
+++ b/library/cpp/threading/equeue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/future/CMakeLists.darwin-arm64.txt b/library/cpp/threading/future/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..66d221dbbb
--- /dev/null
+++ b/library/cpp/threading/future/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-future)
+target_link_libraries(cpp-threading-future PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-threading-future PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/async_semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/async.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/core/future.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/core/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/wait/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/wait/wait.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/wait/wait_group.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/future/wait/wait_policy.cpp
+)
diff --git a/library/cpp/threading/future/CMakeLists.txt b/library/cpp/threading/future/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/future/CMakeLists.txt
+++ b/library/cpp/threading/future/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/hot_swap/CMakeLists.darwin-arm64.txt b/library/cpp/threading/hot_swap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ec6e7f8b0
--- /dev/null
+++ b/library/cpp/threading/hot_swap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-hot_swap)
+target_link_libraries(cpp-threading-hot_swap PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-hot_swap PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/hot_swap/hot_swap.cpp
+)
diff --git a/library/cpp/threading/hot_swap/CMakeLists.txt b/library/cpp/threading/hot_swap/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/hot_swap/CMakeLists.txt
+++ b/library/cpp/threading/hot_swap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..934c52018e
--- /dev/null
+++ b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-light_rw_lock)
+target_link_libraries(cpp-threading-light_rw_lock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-threading-light_rw_lock PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp
+)
diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.txt b/library/cpp/threading/light_rw_lock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/light_rw_lock/CMakeLists.txt
+++ b/library/cpp/threading/light_rw_lock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/local_executor/CMakeLists.darwin-arm64.txt b/library/cpp/threading/local_executor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a88a439f24
--- /dev/null
+++ b/library/cpp/threading/local_executor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-local_executor)
+target_link_libraries(cpp-threading-local_executor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-tbb
+ cpp-threading-future
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-local_executor PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/local_executor/local_executor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/local_executor/tbb_local_executor.cpp
+)
diff --git a/library/cpp/threading/local_executor/CMakeLists.txt b/library/cpp/threading/local_executor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/local_executor/CMakeLists.txt
+++ b/library/cpp/threading/local_executor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/poor_man_openmp/CMakeLists.darwin-arm64.txt b/library/cpp/threading/poor_man_openmp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..116045cc83
--- /dev/null
+++ b/library/cpp/threading/poor_man_openmp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-poor_man_openmp)
+target_link_libraries(cpp-threading-poor_man_openmp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-poor_man_openmp PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/poor_man_openmp/thread_helper.cpp
+)
diff --git a/library/cpp/threading/poor_man_openmp/CMakeLists.txt b/library/cpp/threading/poor_man_openmp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/poor_man_openmp/CMakeLists.txt
+++ b/library/cpp/threading/poor_man_openmp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff0797688e
--- /dev/null
+++ b/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-queue)
+target_link_libraries(cpp-threading-queue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-queue PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.cpp
+)
diff --git a/library/cpp/threading/queue/CMakeLists.txt b/library/cpp/threading/queue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/queue/CMakeLists.txt
+++ b/library/cpp/threading/queue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/skip_list/CMakeLists.darwin-arm64.txt b/library/cpp/threading/skip_list/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e364879e72
--- /dev/null
+++ b/library/cpp/threading/skip_list/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-skip_list)
+target_link_libraries(cpp-threading-skip_list PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-skip_list PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/skip_list/skiplist.cpp
+)
diff --git a/library/cpp/threading/skip_list/CMakeLists.txt b/library/cpp/threading/skip_list/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/skip_list/CMakeLists.txt
+++ b/library/cpp/threading/skip_list/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/task_scheduler/CMakeLists.darwin-arm64.txt b/library/cpp/threading/task_scheduler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..61c6127690
--- /dev/null
+++ b/library/cpp/threading/task_scheduler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-threading-task_scheduler)
+target_link_libraries(cpp-threading-task_scheduler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+)
+target_sources(cpp-threading-task_scheduler PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/task_scheduler/task_scheduler.cpp
+)
diff --git a/library/cpp/threading/task_scheduler/CMakeLists.txt b/library/cpp/threading/task_scheduler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/task_scheduler/CMakeLists.txt
+++ b/library/cpp/threading/task_scheduler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/threading/thread_local/CMakeLists.darwin-arm64.txt b/library/cpp/threading/thread_local/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a282845d1
--- /dev/null
+++ b/library/cpp/threading/thread_local/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-threading-thread_local)
+target_link_libraries(cpp-threading-thread_local PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-hot_swap
+ cpp-threading-skip_list
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-threading-thread_local PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/thread_local/thread_local.cpp
+)
+generate_enum_serilization(cpp-threading-thread_local
+ ${CMAKE_SOURCE_DIR}/library/cpp/threading/thread_local/thread_local.h
+ INCLUDE_HEADERS
+ library/cpp/threading/thread_local/thread_local.h
+)
diff --git a/library/cpp/threading/thread_local/CMakeLists.txt b/library/cpp/threading/thread_local/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/threading/thread_local/CMakeLists.txt
+++ b/library/cpp/threading/thread_local/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/time_provider/CMakeLists.darwin-arm64.txt b/library/cpp/time_provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5106037589
--- /dev/null
+++ b/library/cpp/time_provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-time_provider)
+target_link_libraries(library-cpp-time_provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-time_provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/time_provider/monotonic.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/time_provider/time_provider.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/time_provider/monotonic_provider.cpp
+)
diff --git a/library/cpp/time_provider/CMakeLists.txt b/library/cpp/time_provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/time_provider/CMakeLists.txt
+++ b/library/cpp/time_provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/timezone_conversion/CMakeLists.darwin-arm64.txt b/library/cpp/timezone_conversion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d060c2699
--- /dev/null
+++ b/library/cpp/timezone_conversion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-timezone_conversion)
+target_link_libraries(library-cpp-timezone_conversion PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-cctz-tzdata
+ util-draft
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-cpp-timezone_conversion PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/timezone_conversion/convert.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/timezone_conversion/civil.cpp
+)
+generate_enum_serilization(library-cpp-timezone_conversion
+ ${CMAKE_SOURCE_DIR}/library/cpp/timezone_conversion/civil.h
+ INCLUDE_HEADERS
+ library/cpp/timezone_conversion/civil.h
+)
diff --git a/library/cpp/timezone_conversion/CMakeLists.txt b/library/cpp/timezone_conversion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/timezone_conversion/CMakeLists.txt
+++ b/library/cpp/timezone_conversion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/tld/CMakeLists.darwin-arm64.txt b/library/cpp/tld/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf90e8b74f
--- /dev/null
+++ b/library/cpp/tld/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(library-cpp-tld)
+target_link_libraries(library-cpp-tld PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-lower_case
+)
+target_sources(library-cpp-tld PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp
+ ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/library/cpp/tld/tlds-alpha-by-domain.txt
+ ${CMAKE_SOURCE_DIR}/library/cpp/tld/gen_tld.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/library/cpp/tld/gen_tld.py
+ ${CMAKE_SOURCE_DIR}/library/cpp/tld/tlds-alpha-by-domain.txt
+ >
+ tld.inc
+)
diff --git a/library/cpp/tld/CMakeLists.txt b/library/cpp/tld/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/tld/CMakeLists.txt
+++ b/library/cpp/tld/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/type_info/CMakeLists.darwin-arm64.txt b/library/cpp/type_info/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a1fe5a9709
--- /dev/null
+++ b/library/cpp/type_info/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-type_info)
+target_link_libraries(library-cpp-type_info PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ yson_pull
+)
+target_sources(library-cpp-type_info PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_info.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/builder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/error.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_complexity.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_equivalence.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_factory.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_list.cpp
+)
+generate_enum_serilization(library-cpp-type_info
+ ${CMAKE_SOURCE_DIR}/library/cpp/type_info/type_list.h
+ INCLUDE_HEADERS
+ library/cpp/type_info/type_list.h
+)
diff --git a/library/cpp/type_info/CMakeLists.txt b/library/cpp/type_info/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/type_info/CMakeLists.txt
+++ b/library/cpp/type_info/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt b/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..faa65c7f2b
--- /dev/null
+++ b/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-unicode-normalization)
+target_link_libraries(cpp-unicode-normalization PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(cpp-unicode-normalization PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp
+)
diff --git a/library/cpp/unicode/normalization/CMakeLists.txt b/library/cpp/unicode/normalization/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/unicode/normalization/CMakeLists.txt
+++ b/library/cpp/unicode/normalization/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/unicode/punycode/CMakeLists.darwin-arm64.txt b/library/cpp/unicode/punycode/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..25c06c3bbc
--- /dev/null
+++ b/library/cpp/unicode/punycode/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(IDN REQUIRED)
+
+add_library(cpp-unicode-punycode)
+target_link_libraries(cpp-unicode-punycode PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ IDN::IDN
+)
+target_sources(cpp-unicode-punycode PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/punycode/punycode.cpp
+)
diff --git a/library/cpp/unicode/punycode/CMakeLists.txt b/library/cpp/unicode/punycode/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/unicode/punycode/CMakeLists.txt
+++ b/library/cpp/unicode/punycode/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/unicode/set/CMakeLists.darwin-arm64.txt b/library/cpp/unicode/set/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..81e3230ffe
--- /dev/null
+++ b/library/cpp/unicode/set/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-unicode-set)
+target_link_libraries(cpp-unicode-set PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-unicode-set PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/set.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/quoted_pair.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/unicode_set.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/unicode_set_parser.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/unicode_set_token.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/generated/category_ranges.cpp
+)
+generate_enum_serilization(cpp-unicode-set
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/unicode_set_token.h
+ INCLUDE_HEADERS
+ library/cpp/unicode/set/unicode_set_token.h
+)
+target_ragel_lexers(cpp-unicode-set
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unicode/set/unicode_set_lexer.rl6
+ -CG2
+)
diff --git a/library/cpp/unicode/set/CMakeLists.txt b/library/cpp/unicode/set/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/unicode/set/CMakeLists.txt
+++ b/library/cpp/unicode/set/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/unified_agent_client/CMakeLists.darwin-arm64.txt b/library/cpp/unified_agent_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c681f29c5b
--- /dev/null
+++ b/library/cpp/unified_agent_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-cpp-unified_agent_client)
+target_include_directories(library-cpp-unified_agent_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/include
+)
+target_link_libraries(library-cpp-unified_agent_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-logger-global
+ cpp-threading-future
+ cpp-monlib-dynamic_counters
+ cpp-unified_agent_client-proto
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-cpp-unified_agent_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/backend.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/backend_creator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/client_impl.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/counters.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/grpc_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/grpc_status_code.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/clock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/duration_counter.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/logger.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/throttling.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto_weighing.cpp
+)
+generate_enum_serilization(library-cpp-unified_agent_client
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/grpc_io.h
+ INCLUDE_HEADERS
+ library/cpp/unified_agent_client/grpc_io.h
+)
+
+add_global_library_for(library-cpp-unified_agent_client.global library-cpp-unified_agent_client)
+target_include_directories(library-cpp-unified_agent_client.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/include
+)
+target_link_libraries(library-cpp-unified_agent_client.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-logger-global
+ cpp-threading-future
+ cpp-monlib-dynamic_counters
+ cpp-unified_agent_client-proto
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-cpp-unified_agent_client.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/registrar.cpp
+)
diff --git a/library/cpp/unified_agent_client/CMakeLists.txt b/library/cpp/unified_agent_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/unified_agent_client/CMakeLists.txt
+++ b/library/cpp/unified_agent_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6f12b2aa5e
--- /dev/null
+++ b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-unified_agent_client-proto)
+set_property(TARGET cpp-unified_agent_client-proto PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(cpp-unified_agent_client-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-protobuf
+)
+target_proto_messages(cpp-unified_agent_client-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto
+)
+generate_enum_serilization(cpp-unified_agent_client-proto
+ ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h
+ INCLUDE_HEADERS
+ library/cpp/unified_agent_client/proto/unified_agent.pb.h
+)
+target_proto_addincls(cpp-unified_agent_client-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(cpp-unified_agent_client-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(cpp-unified_agent_client-proto
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.txt b/library/cpp/unified_agent_client/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/unified_agent_client/proto/CMakeLists.txt
+++ b/library/cpp/unified_agent_client/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/uri/CMakeLists.darwin-arm64.txt b/library/cpp/uri/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f4437a0a2b
--- /dev/null
+++ b/library/cpp/uri/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(IDN REQUIRED)
+
+add_library(library-cpp-uri)
+target_link_libraries(library-cpp-uri PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ IDN::IDN
+ library-cpp-charset
+)
+target_sources(library-cpp-uri PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/location.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/other.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/parse.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/qargs.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/uri.cpp
+)
+target_ragel_lexers(library-cpp-uri
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/encodefsm.rl6
+ -CG2
+)
+target_ragel_lexers(library-cpp-uri
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/uri/parsefsm.rl6
+ -CG2
+)
diff --git a/library/cpp/uri/CMakeLists.txt b/library/cpp/uri/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/uri/CMakeLists.txt
+++ b/library/cpp/uri/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/xml/document/CMakeLists.darwin-arm64.txt b/library/cpp/xml/document/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..78de390e21
--- /dev/null
+++ b/library/cpp/xml/document/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-xml-document)
+target_link_libraries(cpp-xml-document PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-xml-init
+ contrib-libs-libxml
+ cpp-string_utils-ztstrbuf
+)
+target_sources(cpp-xml-document PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/xml/document/xml-document.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/xml/document/xml-textreader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/xml/document/xml-options.cpp
+)
diff --git a/library/cpp/xml/document/CMakeLists.txt b/library/cpp/xml/document/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/xml/document/CMakeLists.txt
+++ b/library/cpp/xml/document/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/xml/init/CMakeLists.darwin-arm64.txt b/library/cpp/xml/init/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..15635507ff
--- /dev/null
+++ b/library/cpp/xml/init/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-xml-init)
+target_link_libraries(cpp-xml-init PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libxml
+ library-cpp-charset
+)
+target_sources(cpp-xml-init PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/xml/init/ptr.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/xml/init/init.cpp
+)
diff --git a/library/cpp/xml/init/CMakeLists.txt b/library/cpp/xml/init/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/xml/init/CMakeLists.txt
+++ b/library/cpp/xml/init/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yaml/as/CMakeLists.darwin-arm64.txt b/library/cpp/yaml/as/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..806700a552
--- /dev/null
+++ b/library/cpp/yaml/as/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yaml-as INTERFACE)
+target_link_libraries(cpp-yaml-as INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-yaml-cpp
+)
diff --git a/library/cpp/yaml/as/CMakeLists.txt b/library/cpp/yaml/as/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yaml/as/CMakeLists.txt
+++ b/library/cpp/yaml/as/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yaml/fyamlcpp/CMakeLists.darwin-arm64.txt b/library/cpp/yaml/fyamlcpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed89c6d02d
--- /dev/null
+++ b/library/cpp/yaml/fyamlcpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yaml-fyamlcpp)
+target_link_libraries(cpp-yaml-fyamlcpp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libfyaml
+)
+target_sources(cpp-yaml-fyamlcpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yaml/fyamlcpp/fyamlcpp.cpp
+)
diff --git a/library/cpp/yaml/fyamlcpp/CMakeLists.txt b/library/cpp/yaml/fyamlcpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yaml/fyamlcpp/CMakeLists.txt
+++ b/library/cpp/yaml/fyamlcpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yson/CMakeLists.darwin-arm64.txt b/library/cpp/yson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d5cda8e6c0
--- /dev/null
+++ b/library/cpp/yson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(json)
+add_subdirectory(node)
+
+add_library(library-cpp-yson)
+target_link_libraries(library-cpp-yson PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-misc
+ cpp-yt-yson
+)
+target_sources(library-cpp-yson PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/consumer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/lexer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/parser.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/token.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/tokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/varint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/writer.cpp
+)
diff --git a/library/cpp/yson/CMakeLists.txt b/library/cpp/yson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yson/CMakeLists.txt
+++ b/library/cpp/yson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yson/json/CMakeLists.darwin-arm64.txt b/library/cpp/yson/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2b5efc5d4d
--- /dev/null
+++ b/library/cpp/yson/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yson-json)
+target_link_libraries(cpp-yson-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+)
+target_sources(cpp-yson-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/json/json_writer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/json/yson2json_adapter.cpp
+)
diff --git a/library/cpp/yson/json/CMakeLists.txt b/library/cpp/yson/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yson/json/CMakeLists.txt
+++ b/library/cpp/yson/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yson/node/CMakeLists.darwin-arm64.txt b/library/cpp/yson/node/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e9334e323e
--- /dev/null
+++ b/library/cpp/yson/node/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-yson-node)
+target_link_libraries(cpp-yson-node PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-yson
+ cpp-yson-json
+)
+target_sources(cpp-yson-node PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/node.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/node_io.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/node_builder.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/node_visitor.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/serialize.cpp
+)
+generate_enum_serilization(cpp-yson-node
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson/node/node.h
+ INCLUDE_HEADERS
+ library/cpp/yson/node/node.h
+)
diff --git a/library/cpp/yson/node/CMakeLists.txt b/library/cpp/yson/node/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yson/node/CMakeLists.txt
+++ b/library/cpp/yson/node/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yson_pull/CMakeLists.darwin-arm64.txt b/library/cpp/yson_pull/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5c4253641
--- /dev/null
+++ b/library/cpp/yson_pull/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,48 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yson_pull)
+target_link_libraries(yson_pull PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yson_pull PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/consumer.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/exceptions.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/input.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/read_ops.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/reader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/scalar.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/writer.cpp
+)
+generate_enum_serilization(yson_pull
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/event.h
+ INCLUDE_HEADERS
+ library/cpp/yson_pull/event.h
+)
+generate_enum_serilization(yson_pull
+ ${CMAKE_SOURCE_DIR}/library/cpp/yson_pull/scalar.h
+ INCLUDE_HEADERS
+ library/cpp/yson_pull/scalar.h
+)
diff --git a/library/cpp/yson_pull/CMakeLists.txt b/library/cpp/yson_pull/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yson_pull/CMakeLists.txt
+++ b/library/cpp/yson_pull/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/assert/CMakeLists.darwin-arm64.txt b/library/cpp/yt/assert/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c2ad57e3a0
--- /dev/null
+++ b/library/cpp/yt/assert/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-assert)
+target_compile_options(cpp-yt-assert PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-assert PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-assert PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/assert/assert.cpp
+)
diff --git a/library/cpp/yt/assert/CMakeLists.txt b/library/cpp/yt/assert/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/assert/CMakeLists.txt
+++ b/library/cpp/yt/assert/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/backtrace/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dbc5fa609f
--- /dev/null
+++ b/library/cpp/yt/backtrace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(cursors)
+
+add_library(cpp-yt-backtrace)
+target_compile_options(cpp-yt-backtrace PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-backtrace PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-string
+)
+target_sources(cpp-yt-backtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/backtrace/backtrace.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/backtrace/symbolizers/dynload/dynload_symbolizer.cpp
+)
diff --git a/library/cpp/yt/backtrace/CMakeLists.txt b/library/cpp/yt/backtrace/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/backtrace/CMakeLists.txt
+++ b/library/cpp/yt/backtrace/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..76c3eda332
--- /dev/null
+++ b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,11 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(frame_pointer)
+add_subdirectory(interop)
+add_subdirectory(libunwind)
diff --git a/library/cpp/yt/backtrace/cursors/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/backtrace/cursors/CMakeLists.txt
+++ b/library/cpp/yt/backtrace/cursors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9078cd7245
--- /dev/null
+++ b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(backtrace-cursors-frame_pointer)
+target_compile_options(backtrace-cursors-frame_pointer PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(backtrace-cursors-frame_pointer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(backtrace-cursors-frame_pointer PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.cpp
+)
diff --git a/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt
+++ b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8ddc8397b7
--- /dev/null
+++ b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(backtrace-cursors-interop)
+target_compile_options(backtrace-cursors-interop PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(backtrace-cursors-interop PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ backtrace-cursors-frame_pointer
+ contrib-libs-libunwind
+)
+target_sources(backtrace-cursors-interop PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/backtrace/cursors/interop/interop.cpp
+)
diff --git a/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt
+++ b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fdea07f78c
--- /dev/null
+++ b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(backtrace-cursors-libunwind)
+target_compile_options(backtrace-cursors-libunwind PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(backtrace-cursors-libunwind PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libunwind
+)
+target_sources(backtrace-cursors-libunwind PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/backtrace/cursors/libunwind/libunwind_cursor.cpp
+)
diff --git a/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt
+++ b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/coding/CMakeLists.darwin-arm64.txt b/library/cpp/yt/coding/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad79d9654f
--- /dev/null
+++ b/library/cpp/yt/coding/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-coding INTERFACE)
+target_link_libraries(cpp-yt-coding INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-exception
+)
diff --git a/library/cpp/yt/coding/CMakeLists.txt b/library/cpp/yt/coding/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/coding/CMakeLists.txt
+++ b/library/cpp/yt/coding/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/containers/CMakeLists.darwin-arm64.txt b/library/cpp/yt/containers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e570a542e4
--- /dev/null
+++ b/library/cpp/yt/containers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-containers INTERFACE)
+target_link_libraries(cpp-yt-containers INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+)
diff --git a/library/cpp/yt/containers/CMakeLists.txt b/library/cpp/yt/containers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/containers/CMakeLists.txt
+++ b/library/cpp/yt/containers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/cpu_clock/CMakeLists.darwin-arm64.txt b/library/cpp/yt/cpu_clock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b9afea23f7
--- /dev/null
+++ b/library/cpp/yt/cpu_clock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-cpu_clock)
+target_compile_options(cpp-yt-cpu_clock PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-cpu_clock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+)
+target_sources(cpp-yt-cpu_clock PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/cpu_clock/clock.cpp
+)
diff --git a/library/cpp/yt/cpu_clock/CMakeLists.txt b/library/cpp/yt/cpu_clock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/cpu_clock/CMakeLists.txt
+++ b/library/cpp/yt/cpu_clock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/exception/CMakeLists.darwin-arm64.txt b/library/cpp/yt/exception/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f40a29467d
--- /dev/null
+++ b/library/cpp/yt/exception/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-exception)
+target_compile_options(cpp-yt-exception PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-exception PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-exception PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/exception/exception.cpp
+)
diff --git a/library/cpp/yt/exception/CMakeLists.txt b/library/cpp/yt/exception/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/exception/CMakeLists.txt
+++ b/library/cpp/yt/exception/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/logging/CMakeLists.darwin-arm64.txt b/library/cpp/yt/logging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b9c4a4c7db
--- /dev/null
+++ b/library/cpp/yt/logging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(plain_text_formatter)
+
+add_library(cpp-yt-logging)
+target_compile_options(cpp-yt-logging PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-logging PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-memory
+ cpp-yt-misc
+ cpp-yt-yson_string
+)
+target_sources(cpp-yt-logging PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/logging/logger.cpp
+)
diff --git a/library/cpp/yt/logging/CMakeLists.txt b/library/cpp/yt/logging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/logging/CMakeLists.txt
+++ b/library/cpp/yt/logging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-arm64.txt b/library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3be59e00af
--- /dev/null
+++ b/library/cpp/yt/logging/plain_text_formatter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-logging-plain_text_formatter)
+target_compile_options(yt-logging-plain_text_formatter PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-logging-plain_text_formatter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-cpu_clock
+ cpp-yt-logging
+ cpp-yt-string
+ cpp-yt-misc
+)
+target_sources(yt-logging-plain_text_formatter PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/logging/plain_text_formatter/formatter.cpp
+)
diff --git a/library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt b/library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt
+++ b/library/cpp/yt/logging/plain_text_formatter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/malloc/CMakeLists.darwin-arm64.txt b/library/cpp/yt/malloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1d843305d9
--- /dev/null
+++ b/library/cpp/yt/malloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-malloc)
+target_compile_options(cpp-yt-malloc PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-malloc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-malloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/malloc/malloc.cpp
+)
diff --git a/library/cpp/yt/malloc/CMakeLists.txt b/library/cpp/yt/malloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/malloc/CMakeLists.txt
+++ b/library/cpp/yt/malloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/memory/CMakeLists.darwin-arm64.txt b/library/cpp/yt/memory/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2607597a9d
--- /dev/null
+++ b/library/cpp/yt/memory/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-memory)
+target_compile_options(cpp-yt-memory PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-memory PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-sanitizer-include
+ cpp-yt-assert
+ cpp-yt-misc
+ cpp-yt-malloc
+)
+target_sources(cpp-yt-memory PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/blob.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/chunked_input_stream.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/chunked_memory_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/chunked_memory_pool.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/chunked_memory_pool_output.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/chunked_output_stream.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/memory_tag.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/ref.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/ref_tracked.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/safe_memory_reader.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/memory/shared_range.cpp
+)
diff --git a/library/cpp/yt/memory/CMakeLists.txt b/library/cpp/yt/memory/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/memory/CMakeLists.txt
+++ b/library/cpp/yt/memory/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt b/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bb8ae6f368
--- /dev/null
+++ b/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-misc)
+target_compile_options(cpp-yt-misc PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-misc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-exception
+)
+target_sources(cpp-yt-misc PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/source_location.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/thread_name.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/variant.cpp
+)
diff --git a/library/cpp/yt/misc/CMakeLists.txt b/library/cpp/yt/misc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/misc/CMakeLists.txt
+++ b/library/cpp/yt/misc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/mlock/CMakeLists.darwin-arm64.txt b/library/cpp/yt/mlock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ca50021faf
--- /dev/null
+++ b/library/cpp/yt/mlock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-mlock)
+target_compile_options(cpp-yt-mlock PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-mlock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-mlock PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/mlock/mlock_other.cpp
+)
diff --git a/library/cpp/yt/mlock/CMakeLists.txt b/library/cpp/yt/mlock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/mlock/CMakeLists.txt
+++ b/library/cpp/yt/mlock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/small_containers/CMakeLists.darwin-arm64.txt b/library/cpp/yt/small_containers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e926e3a3d8
--- /dev/null
+++ b/library/cpp/yt/small_containers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-small_containers INTERFACE)
+target_link_libraries(cpp-yt-small_containers INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-malloc
+ cpp-yt-misc
+)
diff --git a/library/cpp/yt/small_containers/CMakeLists.txt b/library/cpp/yt/small_containers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/small_containers/CMakeLists.txt
+++ b/library/cpp/yt/small_containers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/stockpile/CMakeLists.darwin-arm64.txt b/library/cpp/yt/stockpile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8036bd5d7e
--- /dev/null
+++ b/library/cpp/yt/stockpile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-stockpile)
+target_compile_options(cpp-yt-stockpile PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-stockpile PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-stockpile PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/stockpile/stockpile_other.cpp
+)
diff --git a/library/cpp/yt/stockpile/CMakeLists.txt b/library/cpp/yt/stockpile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/stockpile/CMakeLists.txt
+++ b/library/cpp/yt/stockpile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/string/CMakeLists.darwin-arm64.txt b/library/cpp/yt/string/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77a9e8a268
--- /dev/null
+++ b/library/cpp/yt/string/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-string)
+target_compile_options(cpp-yt-string PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-string PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-exception
+ cpp-yt-misc
+ cpp-yt-small_containers
+)
+target_sources(cpp-yt-string PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/string/enum.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/string/guid.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/string/string.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/string/format.cpp
+)
diff --git a/library/cpp/yt/string/CMakeLists.txt b/library/cpp/yt/string/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/string/CMakeLists.txt
+++ b/library/cpp/yt/string/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/system/CMakeLists.darwin-arm64.txt b/library/cpp/yt/system/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad24a0da29
--- /dev/null
+++ b/library/cpp/yt/system/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-system)
+target_compile_options(cpp-yt-system PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-system PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(cpp-yt-system PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/system/thread_id.cpp
+)
diff --git a/library/cpp/yt/system/CMakeLists.txt b/library/cpp/yt/system/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/system/CMakeLists.txt
+++ b/library/cpp/yt/system/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/threading/CMakeLists.darwin-arm64.txt b/library/cpp/yt/threading/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..289553555a
--- /dev/null
+++ b/library/cpp/yt/threading/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-threading)
+target_compile_options(cpp-yt-threading PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-threading PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-cpu_clock
+ cpp-yt-system
+ cpp-yt-memory
+)
+target_sources(cpp-yt-threading PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/at_fork.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/count_down_latch.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/event_count.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/fork_aware_spin_lock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/fork_aware_rw_spin_lock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/futex.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/notification_handle.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/public.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/recursive_spin_lock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/rw_spin_lock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/spin_lock_base.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/spin_lock_count.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/spin_lock.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/spin_wait.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/threading/spin_wait_hook.cpp
+)
diff --git a/library/cpp/yt/threading/CMakeLists.txt b/library/cpp/yt/threading/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/threading/CMakeLists.txt
+++ b/library/cpp/yt/threading/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/yson/CMakeLists.darwin-arm64.txt b/library/cpp/yt/yson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68ae5dcaaf
--- /dev/null
+++ b/library/cpp/yt/yson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-yson)
+target_compile_options(cpp-yt-yson PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-yson PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-yson_string
+)
+target_sources(cpp-yt-yson PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/yson/consumer.cpp
+)
diff --git a/library/cpp/yt/yson/CMakeLists.txt b/library/cpp/yt/yson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/yson/CMakeLists.txt
+++ b/library/cpp/yt/yson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/yt/yson_string/CMakeLists.darwin-arm64.txt b/library/cpp/yt/yson_string/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..31253becd7
--- /dev/null
+++ b/library/cpp/yt/yson_string/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-yt-yson_string)
+target_compile_options(cpp-yt-yson_string PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-yt-yson_string PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-coding
+ cpp-yt-exception
+ cpp-yt-string
+ cpp-yt-memory
+ cpp-yt-misc
+)
+target_sources(cpp-yt-yson_string PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/yson_string/convert.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/yt/yson_string/string.cpp
+)
diff --git a/library/cpp/yt/yson_string/CMakeLists.txt b/library/cpp/yt/yson_string/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/yt/yson_string/CMakeLists.txt
+++ b/library/cpp/yt/yson_string/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt b/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a550e54f00
--- /dev/null
+++ b/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-ytalloc-api)
+target_link_libraries(cpp-ytalloc-api PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-misc
+)
+target_sources(cpp-ytalloc-api PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp
+)
diff --git a/library/cpp/ytalloc/api/CMakeLists.txt b/library/cpp/ytalloc/api/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/library/cpp/ytalloc/api/CMakeLists.txt
+++ b/library/cpp/ytalloc/api/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/tools/archiver/CMakeLists.darwin-arm64.txt b/tools/archiver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d89e924a55
--- /dev/null
+++ b/tools/archiver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(archiver)
+target_link_libraries(archiver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-archive
+ cpp-digest-md5
+ cpp-getopt-small
+)
+target_link_options(archiver PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(archiver PRIVATE
+ ${CMAKE_SOURCE_DIR}/tools/archiver/main.cpp
+)
+target_allocator(archiver
+ system_allocator
+)
+vcs_info(archiver)
diff --git a/tools/archiver/CMakeLists.txt b/tools/archiver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/tools/archiver/CMakeLists.txt
+++ b/tools/archiver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/tools/enum_parser/enum_parser/CMakeLists.darwin-arm64.txt b/tools/enum_parser/enum_parser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..979a500c87
--- /dev/null
+++ b/tools/enum_parser/enum_parser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(enum_parser)
+target_link_libraries(enum_parser PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-getopt-small
+ tools-enum_parser-parse_enum
+)
+target_link_options(enum_parser PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(enum_parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_parser/main.cpp
+)
+target_allocator(enum_parser
+ system_allocator
+)
+vcs_info(enum_parser)
diff --git a/tools/enum_parser/enum_parser/CMakeLists.txt b/tools/enum_parser/enum_parser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/tools/enum_parser/enum_parser/CMakeLists.txt
+++ b/tools/enum_parser/enum_parser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-arm64.txt b/tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae7cffeb5e
--- /dev/null
+++ b/tools/enum_parser/enum_serialization_runtime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tools-enum_parser-enum_serialization_runtime)
+target_link_libraries(tools-enum_parser-enum_serialization_runtime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(tools-enum_parser-enum_serialization_runtime PRIVATE
+ ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_serialization_runtime/dispatch_methods.cpp
+ ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp
+ ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_serialization_runtime/ordered_pairs.cpp
+)
diff --git a/tools/enum_parser/enum_serialization_runtime/CMakeLists.txt b/tools/enum_parser/enum_serialization_runtime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/tools/enum_parser/enum_serialization_runtime/CMakeLists.txt
+++ b/tools/enum_parser/enum_serialization_runtime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/tools/enum_parser/parse_enum/CMakeLists.darwin-arm64.txt b/tools/enum_parser/parse_enum/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6facd47e75
--- /dev/null
+++ b/tools/enum_parser/parse_enum/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tools-enum_parser-parse_enum)
+target_link_libraries(tools-enum_parser-parse_enum PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cppparser
+)
+target_sources(tools-enum_parser-parse_enum PRIVATE
+ ${CMAKE_SOURCE_DIR}/tools/enum_parser/parse_enum/parse_enum.cpp
+)
diff --git a/tools/enum_parser/parse_enum/CMakeLists.txt b/tools/enum_parser/parse_enum/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/tools/enum_parser/parse_enum/CMakeLists.txt
+++ b/tools/enum_parser/parse_enum/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/tools/rescompiler/bin/CMakeLists.darwin-arm64.txt b/tools/rescompiler/bin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f72f5b2d47
--- /dev/null
+++ b/tools/rescompiler/bin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(rescompiler)
+target_link_libraries(rescompiler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+)
+target_link_options(rescompiler PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(rescompiler PRIVATE
+ ${CMAKE_SOURCE_DIR}/tools/rescompiler/main.cpp
+)
+target_allocator(rescompiler
+ system_allocator
+)
+vcs_info(rescompiler)
diff --git a/tools/rescompiler/bin/CMakeLists.txt b/tools/rescompiler/bin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/tools/rescompiler/bin/CMakeLists.txt
+++ b/tools/rescompiler/bin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/util/CMakeLists.darwin-arm64.txt b/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b8de49365d
--- /dev/null
+++ b/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,301 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(charset)
+add_subdirectory(draft)
+
+add_library(yutil)
+target_compile_options(yutil PRIVATE
+ -Wnarrowing
+)
+target_link_libraries(yutil PUBLIC
+ contrib-libs-cxxsupp
+ util-charset
+ contrib-libs-zlib
+ contrib-libs-double-conversion
+ contrib-libs-libc_compat
+)
+target_sources(yutil PRIVATE
+ ${CMAKE_SOURCE_DIR}/util/system/compiler.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/city.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/random.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/cast.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/context_aarch64.S
+)
+target_joined_source(yutil
+ all_datetime.cpp
+ ${CMAKE_SOURCE_DIR}/util/datetime/base.cpp
+ ${CMAKE_SOURCE_DIR}/util/datetime/constants.cpp
+ ${CMAKE_SOURCE_DIR}/util/datetime/cputimer.cpp
+ ${CMAKE_SOURCE_DIR}/util/datetime/systime.cpp
+ ${CMAKE_SOURCE_DIR}/util/datetime/uptime.cpp
+)
+target_joined_source(yutil
+ all_digest.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/fnv.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/multi.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/murmur.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/numeric.cpp
+ ${CMAKE_SOURCE_DIR}/util/digest/sequence.cpp
+)
+target_joined_source(yutil
+ all_util.cpp
+ ${CMAKE_SOURCE_DIR}/util/ysafeptr.cpp
+ ${CMAKE_SOURCE_DIR}/util/ysaveload.cpp
+ ${CMAKE_SOURCE_DIR}/util/str_stl.cpp
+)
+target_joined_source(yutil
+ all_folder.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/dirut.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/filelist.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/fts.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/iterator.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/path.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/pathsplit.cpp
+ ${CMAKE_SOURCE_DIR}/util/folder/tempdir.cpp
+)
+target_joined_source(yutil
+ all_generic.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/adaptor.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/algorithm.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/array_ref.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/array_size.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/bitmap.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/bitops.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/bt_exception.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/buffer.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/cast.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/deque.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/explicit_type.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/fastqueue.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/flags.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/function.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/function_ref.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/guid.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hash.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hash_multi_map.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hash_table.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hash_primes.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hash_set.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/hide_ptr.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/intrlist.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/is_in.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/iterator.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/iterator_range.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/lazy_value.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/list.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/map.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/mapfindptr.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/maybe.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/mem_copy.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/noncopyable.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/object_counter.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/overloaded.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/ptr.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/queue.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/refcount.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/scope.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/serialized_enum.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/set.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/singleton.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/size_literals.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/stack.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/store_policy.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/strbuf.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/strfcpy.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/string.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/typelist.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/typetraits.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/utility.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/va_args.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/variant.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/vector.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/xrange.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/yexception.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/ylimits.cpp
+ ${CMAKE_SOURCE_DIR}/util/generic/ymath.cpp
+)
+target_joined_source(yutil
+ all_memory.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/addstorage.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/alloc.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/blob.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/mmapalloc.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/pool.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/segmented_string_pool.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/segpool_alloc.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/smallobj.cpp
+ ${CMAKE_SOURCE_DIR}/util/memory/tempbuf.cpp
+)
+target_joined_source(yutil
+ all_network.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/address.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/hostip.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/init.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/interface.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/iovec.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/ip.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/nonblock.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/pair.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/poller.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/pollerimpl.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/sock.cpp
+ ${CMAKE_SOURCE_DIR}/util/network/socket.cpp
+)
+target_joined_source(yutil
+ all_random.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/common_ops.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/easy.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/entropy.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/fast.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/lcg_engine.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/mersenne32.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/mersenne64.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/mersenne.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/normal.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/shuffle.cpp
+ ${CMAKE_SOURCE_DIR}/util/random/init_atfork.cpp
+)
+target_joined_source(yutil
+ all_stream.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/aligned.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/buffer.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/buffered.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/debug.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/direct_io.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/file.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/format.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/hex.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/holder.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/input.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/labeled.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/length.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/mem.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/multi.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/null.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/output.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/pipe.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/printf.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/str.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/tee.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/tempbuf.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/tokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/trace.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/walk.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/zerocopy.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/zerocopy_output.cpp
+ ${CMAKE_SOURCE_DIR}/util/stream/zlib.cpp
+)
+target_joined_source(yutil
+ all_string.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/ascii.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/builder.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/cstriter.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/escape.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/hex.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/join.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/printf.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/reverse.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/split.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/strip.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/strspn.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/subst.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/type.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/util.cpp
+ ${CMAKE_SOURCE_DIR}/util/string/vector.cpp
+)
+target_joined_source(yutil
+ all_system_1.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/atexit.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/backtrace.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/compat.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/condvar.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/context.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/daemon.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/datetime.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/defaults.c
+ ${CMAKE_SOURCE_DIR}/util/system/direct_io.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/dynlib.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/env.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/error.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/event.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/execpath.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/fasttime.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/file.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/file_lock.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/filemap.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/flock.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/fs.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/fstat.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/getpid.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/hi_lo.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/hostname.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/hp_timer.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/info.cpp
+)
+target_joined_source(yutil
+ all_system_2.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/align.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/byteorder.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/cpu_id.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/fhandle.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/guard.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/interrupt_signals.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/madvise.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/maxlen.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/mem_info.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/mincore.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/mktemp.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/mlock.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/mutex.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/nice.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/pipe.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/platform.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/progname.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/protect.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/rusage.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/rwlock.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/sanitizers.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/sem.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/shellcommand.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/shmat.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/sigset.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/spinlock.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/spin_wait.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/src_location.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/sys_alloc.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/sysstat.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/tempfile.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/thread.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/tls.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/types.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/type_name.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/unaligned_mem.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/user.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/utime.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/yassert.cpp
+ ${CMAKE_SOURCE_DIR}/util/system/yield.cpp
+)
+target_joined_source(yutil
+ all_thread.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/factory.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/lfqueue.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/lfstack.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/pool.cpp
+ ${CMAKE_SOURCE_DIR}/util/thread/singleton.cpp
+)
+target_ragel_lexers(yutil
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/util/datetime/parser.rl6
+ -CG2
+)
diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/util/CMakeLists.txt
+++ b/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/util/charset/CMakeLists.darwin-arm64.txt b/util/charset/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d6f3bdf292
--- /dev/null
+++ b/util/charset/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(util-charset)
+target_link_libraries(util-charset PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(util-charset PRIVATE
+ ${CMAKE_SOURCE_DIR}/util/charset/wide_sse41.cpp
+)
+set_property(
+ SOURCE
+ ${CMAKE_SOURCE_DIR}/util/charset/wide_sse41.cpp
+ APPEND
+ PROPERTY
+ COMPILE_OPTIONS
+ -DSSE41_STUB
+)
+target_joined_source(util-charset
+ all_charset.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/generated/unidata.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/recode_result.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/unicode_table.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/unidata.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/utf8.cpp
+ ${CMAKE_SOURCE_DIR}/util/charset/wide.cpp
+)
diff --git a/util/charset/CMakeLists.txt b/util/charset/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/util/charset/CMakeLists.txt
+++ b/util/charset/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/util/draft/CMakeLists.darwin-arm64.txt b/util/draft/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..08f23dc394
--- /dev/null
+++ b/util/draft/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(util-draft)
+target_link_libraries(util-draft PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(util-draft PRIVATE
+ ${CMAKE_SOURCE_DIR}/util/draft/date.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/datetime.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/enum.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/holder_vector.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/ip.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/matrix.cpp
+ ${CMAKE_SOURCE_DIR}/util/draft/memory.cpp
+)
diff --git a/util/draft/CMakeLists.txt b/util/draft/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/util/draft/CMakeLists.txt
+++ b/util/draft/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go b/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go
new file mode 100644
index 0000000000..84b1acd215
--- /dev/null
+++ b/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go
@@ -0,0 +1,121 @@
+// Copyright (c) 2020 Klaus Post, released under MIT License. See LICENSE file.
+
+package cpuid
+
+import (
+ "runtime"
+ "strings"
+
+ "golang.org/x/sys/unix"
+)
+
+func detectOS(c *CPUInfo) bool {
+ if runtime.GOOS != "ios" {
+ tryToFillCPUInfoFomSysctl(c)
+ }
+ // There are no hw.optional sysctl values for the below features on Mac OS 11.0
+ // to detect their supported state dynamically. Assume the CPU features that
+ // Apple Silicon M1 supports to be available as a minimal set of features
+ // to all Go programs running on darwin/arm64.
+ // TODO: Add more if we know them.
+ c.featureSet.setIf(runtime.GOOS != "ios", AESARM, PMULL, SHA1, SHA2)
+
+ return true
+}
+
+func sysctlGetBool(name string) bool {
+ value, err := unix.SysctlUint32(name)
+ if err != nil {
+ return false
+ }
+ return value != 0
+}
+
+func sysctlGetString(name string) string {
+ value, err := unix.Sysctl(name)
+ if err != nil {
+ return ""
+ }
+ return value
+}
+
+func sysctlGetInt(unknown int, names ...string) int {
+ for _, name := range names {
+ value, err := unix.SysctlUint32(name)
+ if err != nil {
+ continue
+ }
+ if value != 0 {
+ return int(value)
+ }
+ }
+ return unknown
+}
+
+func sysctlGetInt64(unknown int, names ...string) int {
+ for _, name := range names {
+ value64, err := unix.SysctlUint64(name)
+ if err != nil {
+ continue
+ }
+ if int(value64) != unknown {
+ return int(value64)
+ }
+ }
+ return unknown
+}
+
+func setFeature(c *CPUInfo, name string, feature FeatureID) {
+ c.featureSet.setIf(sysctlGetBool(name), feature)
+}
+func tryToFillCPUInfoFomSysctl(c *CPUInfo) {
+ c.BrandName = sysctlGetString("machdep.cpu.brand_string")
+
+ if len(c.BrandName) != 0 {
+ c.VendorString = strings.Fields(c.BrandName)[0]
+ }
+
+ c.PhysicalCores = sysctlGetInt(runtime.NumCPU(), "hw.physicalcpu")
+ c.ThreadsPerCore = sysctlGetInt(1, "machdep.cpu.thread_count", "kern.num_threads") /
+ sysctlGetInt(1, "hw.physicalcpu")
+ c.LogicalCores = sysctlGetInt(runtime.NumCPU(), "machdep.cpu.core_count")
+ c.Family = sysctlGetInt(0, "machdep.cpu.family", "hw.cpufamily")
+ c.Model = sysctlGetInt(0, "machdep.cpu.model")
+ c.CacheLine = sysctlGetInt64(0, "hw.cachelinesize")
+ c.Cache.L1I = sysctlGetInt64(-1, "hw.l1icachesize")
+ c.Cache.L1D = sysctlGetInt64(-1, "hw.l1dcachesize")
+ c.Cache.L2 = sysctlGetInt64(-1, "hw.l2cachesize")
+ c.Cache.L3 = sysctlGetInt64(-1, "hw.l3cachesize")
+
+ // from https://developer.arm.com/downloads/-/exploration-tools/feature-names-for-a-profile
+ setFeature(c, "hw.optional.arm.FEAT_AES", AESARM)
+ setFeature(c, "hw.optional.AdvSIMD", ASIMD)
+ setFeature(c, "hw.optional.arm.FEAT_DotProd", ASIMDDP)
+ setFeature(c, "hw.optional.arm.FEAT_RDM", ASIMDRDM)
+ setFeature(c, "hw.optional.FEAT_CRC32", CRC32)
+ setFeature(c, "hw.optional.arm.FEAT_DPB", DCPOP)
+ // setFeature(c, "", EVTSTRM)
+ setFeature(c, "hw.optional.arm.FEAT_FCMA", FCMA)
+ setFeature(c, "hw.optional.arm.FEAT_FP", FP)
+ setFeature(c, "hw.optional.arm.FEAT_FP16", FPHP)
+ setFeature(c, "hw.optional.arm.FEAT_PAuth", GPA)
+ setFeature(c, "hw.optional.arm.FEAT_JSCVT", JSCVT)
+ setFeature(c, "hw.optional.arm.FEAT_LRCPC", LRCPC)
+ setFeature(c, "hw.optional.arm.FEAT_PMULL", PMULL)
+ setFeature(c, "hw.optional.arm.FEAT_SHA1", SHA1)
+ setFeature(c, "hw.optional.arm.FEAT_SHA256", SHA2)
+ setFeature(c, "hw.optional.arm.FEAT_SHA3", SHA3)
+ setFeature(c, "hw.optional.arm.FEAT_SHA512", SHA512)
+ // setFeature(c, "", SM3)
+ // setFeature(c, "", SM4)
+ setFeature(c, "hw.optional.arm.FEAT_SVE", SVE)
+
+ // from empirical observation
+ setFeature(c, "hw.optional.AdvSIMD_HPFPCvt", ASIMDHP)
+ setFeature(c, "hw.optional.armv8_1_atomics", ATOMICS)
+ setFeature(c, "hw.optional.floatingpoint", FP)
+ setFeature(c, "hw.optional.armv8_2_sha3", SHA3)
+ setFeature(c, "hw.optional.armv8_2_sha512", SHA512)
+ setFeature(c, "hw.optional.armv8_3_compnum", FCMA)
+ setFeature(c, "hw.optional.armv8_crc32", CRC32)
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
new file mode 100644
index 0000000000..f3cde129b6
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
@@ -0,0 +1,10 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !linux && !netbsd && !openbsd && arm64
+// +build !linux,!netbsd,!openbsd,arm64
+
+package cpu
+
+func doinit() {}
diff --git a/vendor/modernc.org/libc/capi_darwin_arm64.go b/vendor/modernc.org/libc/capi_darwin_arm64.go
new file mode 100644
index 0000000000..12cddf4b46
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_darwin_arm64.go
@@ -0,0 +1,540 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_NSGetEnviron": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__assert_rtn": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_fabsf": {},
+ "__builtin_fabsl": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_isunordered": {},
+ "__builtin_llabs": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+ "__env_rm_add": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inline_isnand": {},
+ "__inline_isnanf": {},
+ "__inline_isnanl": {},
+ "__intscan": {},
+ "__isctype": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__istype": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__maskrune": {},
+ "__mb_cur_max": {},
+ "__putenv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__sincos_stret": {},
+ "__sincosf_stret": {},
+ "__sincospi_stret": {},
+ "__sincospif_stret": {},
+ "__srget": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__strchrnul": {},
+ "__strncasecmp_l": {},
+ "__svfscanf": {},
+ "__swbuf": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__tolower": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__toupper": {},
+ "__uflow": {},
+ "__wcwidth": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "arc4random_buf": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "bind": {},
+ "bsearch": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copyfile": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "digittoint": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "flock": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fsctl": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "futimes": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getattrlist": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "gethostuuid": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getprogname": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isblank": {},
+ "iscntrl": {},
+ "isdigit": {},
+ "isgraph": {},
+ "ishexnumber": {},
+ "isideogram": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isnumber": {},
+ "isphonogram": {},
+ "isprint": {},
+ "ispunct": {},
+ "isrune": {},
+ "issetugid": {},
+ "isspace": {},
+ "isspecial": {},
+ "isupper": {},
+ "iswalnum": {},
+ "iswspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "llabs": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "log2": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "mach_absolute_time": {},
+ "mach_timebase_info": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "pread": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "putenv": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setattrlist": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "srandomdev": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "statfs": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "toascii": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "truncate": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/errno/capi_darwin_arm64.go b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go
new file mode 100644
index 0000000000..ee647ccf83
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo errno/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o errno/errno_darwin_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/errno/errno_darwin_arm64.go b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go
new file mode 100644
index 0000000000..392f280f9a
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go
@@ -0,0 +1,680 @@
+// Code generated by 'ccgo errno/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o errno/errno_darwin_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7 // errno.h:94:1:
+ EACCES = 13 // errno.h:101:1:
+ EADDRINUSE = 48 // errno.h:161:1:
+ EADDRNOTAVAIL = 49 // errno.h:162:1:
+ EAFNOSUPPORT = 47 // errno.h:160:1:
+ EAGAIN = 35 // errno.h:129:1:
+ EALREADY = 37 // errno.h:132:1:
+ EAUTH = 80 // errno.h:213:1:
+ EBADARCH = 86 // errno.h:226:1:
+ EBADEXEC = 85 // errno.h:225:1:
+ EBADF = 9 // errno.h:96:1:
+ EBADMACHO = 88 // errno.h:228:1:
+ EBADMSG = 94 // errno.h:240:1:
+ EBADRPC = 72 // errno.h:201:1:
+ EBUSY = 16 // errno.h:106:1:
+ ECANCELED = 89 // errno.h:231:1:
+ ECHILD = 10 // errno.h:97:1:
+ ECONNABORTED = 53 // errno.h:168:1:
+ ECONNREFUSED = 61 // errno.h:178:1:
+ ECONNRESET = 54 // errno.h:169:1:
+ EDEADLK = 11 // errno.h:98:1:
+ EDESTADDRREQ = 39 // errno.h:136:1:
+ EDEVERR = 83 // errno.h:218:1:
+ EDOM = 33 // errno.h:125:1:
+ EDQUOT = 69 // errno.h:195:1:
+ EEXIST = 17 // errno.h:107:1:
+ EFAULT = 14 // errno.h:102:1:
+ EFBIG = 27 // errno.h:117:1:
+ EFTYPE = 79 // errno.h:212:1:
+ EHOSTDOWN = 64 // errno.h:185:1:
+ EHOSTUNREACH = 65 // errno.h:187:1:
+ EIDRM = 90 // errno.h:233:1:
+ EILSEQ = 92 // errno.h:235:1:
+ EINPROGRESS = 36 // errno.h:131:1:
+ EINTR = 4 // errno.h:91:1:
+ EINVAL = 22 // errno.h:112:1:
+ EIO = 5 // errno.h:92:1:
+ EISCONN = 56 // errno.h:171:1:
+ EISDIR = 21 // errno.h:111:1:
+ ELAST = 106 // errno.h:263:1:
+ ELOOP = 62 // errno.h:180:1:
+ EMFILE = 24 // errno.h:114:1:
+ EMLINK = 31 // errno.h:121:1:
+ EMSGSIZE = 40 // errno.h:137:1:
+ EMULTIHOP = 95 // errno.h:241:1:
+ ENAMETOOLONG = 63 // errno.h:181:1:
+ ENEEDAUTH = 81 // errno.h:214:1:
+ ENETDOWN = 50 // errno.h:165:1:
+ ENETRESET = 52 // errno.h:167:1:
+ ENETUNREACH = 51 // errno.h:166:1:
+ ENFILE = 23 // errno.h:113:1:
+ ENOATTR = 93 // errno.h:237:1:
+ ENOBUFS = 55 // errno.h:170:1:
+ ENODATA = 96 // errno.h:242:1:
+ ENODEV = 19 // errno.h:109:1:
+ ENOENT = 2 // errno.h:89:1:
+ ENOEXEC = 8 // errno.h:95:1:
+ ENOLCK = 77 // errno.h:208:1:
+ ENOLINK = 97 // errno.h:243:1:
+ ENOMEM = 12 // errno.h:100:1:
+ ENOMSG = 91 // errno.h:234:1:
+ ENOPOLICY = 103 // errno.h:254:1:
+ ENOPROTOOPT = 42 // errno.h:139:1:
+ ENOSPC = 28 // errno.h:118:1:
+ ENOSR = 98 // errno.h:244:1:
+ ENOSTR = 99 // errno.h:245:1:
+ ENOSYS = 78 // errno.h:209:1:
+ ENOTBLK = 15 // errno.h:104:1:
+ ENOTCONN = 57 // errno.h:172:1:
+ ENOTDIR = 20 // errno.h:110:1:
+ ENOTEMPTY = 66 // errno.h:188:1:
+ ENOTRECOVERABLE = 104 // errno.h:257:1:
+ ENOTSOCK = 38 // errno.h:135:1:
+ ENOTSUP = 45 // errno.h:144:1:
+ ENOTTY = 25 // errno.h:115:1:
+ ENXIO = 6 // errno.h:93:1:
+ EOPNOTSUPP = 102 // errno.h:251:1:
+ EOVERFLOW = 84 // errno.h:221:1:
+ EOWNERDEAD = 105 // errno.h:258:1:
+ EPERM = 1 // errno.h:88:1:
+ EPFNOSUPPORT = 46 // errno.h:158:1:
+ EPIPE = 32 // errno.h:122:1:
+ EPROCLIM = 67 // errno.h:192:1:
+ EPROCUNAVAIL = 76 // errno.h:205:1:
+ EPROGMISMATCH = 75 // errno.h:204:1:
+ EPROGUNAVAIL = 74 // errno.h:203:1:
+ EPROTO = 100 // errno.h:246:1:
+ EPROTONOSUPPORT = 43 // errno.h:140:1:
+ EPROTOTYPE = 41 // errno.h:138:1:
+ EPWROFF = 82 // errno.h:217:1:
+ EQFULL = 106 // errno.h:262:1:
+ ERANGE = 34 // errno.h:126:1:
+ EREMOTE = 71 // errno.h:200:1:
+ EROFS = 30 // errno.h:120:1:
+ ERPCMISMATCH = 73 // errno.h:202:1:
+ ESHLIBVERS = 87 // errno.h:227:1:
+ ESHUTDOWN = 58 // errno.h:174:1:
+ ESOCKTNOSUPPORT = 44 // errno.h:142:1:
+ ESPIPE = 29 // errno.h:119:1:
+ ESRCH = 3 // errno.h:90:1:
+ ESTALE = 70 // errno.h:198:1:
+ ETIME = 101 // errno.h:247:1:
+ ETIMEDOUT = 60 // errno.h:177:1:
+ ETOOMANYREFS = 59 // errno.h:175:1:
+ ETXTBSY = 26 // errno.h:116:1:
+ EUSERS = 68 // errno.h:193:1:
+ EWOULDBLOCK = 35 // errno.h:130:1:
+ EXDEV = 18 // errno.h:108:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_SYS_ERRNO_H_ = 0 // errno.h:70:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2012 Apple, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)errno.h 8.5 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// Error codes
+
+// 11 was EAGAIN
+
+// math software
+
+// non-blocking and interrupt i/o
+
+// ipc/network software -- argument errors
+
+// ipc/network software -- operational errors
+
+// should be rearranged
+
+// quotas & mush
+
+// Network File System
+
+// Intelligent device errors
+
+// Program loading errors
+
+// This value is only discrete when compiling __DARWIN_UNIX03, or KERNEL
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go
new file mode 100644
index 0000000000..ebab11fbc4
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo fcntl/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o fcntl/fcntl_darwin_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go
new file mode 100644
index 0000000000..4ddb88193c
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go
@@ -0,0 +1,2080 @@
+// Code generated by 'ccgo fcntl/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o fcntl/fcntl_darwin_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x0010 // fcntl.h:168:1:
+ AT_FDCWD = -2 // fcntl.h:163:1:
+ AT_FDONLY = 0x0400 // fcntl.h:174:1:
+ AT_REALDEV = 0x0200 // fcntl.h:173:1:
+ AT_REMOVEDIR = 0x0080 // fcntl.h:171:1:
+ AT_SYMLINK_FOLLOW = 0x0040 // fcntl.h:170:1:
+ AT_SYMLINK_NOFOLLOW = 0x0020 // fcntl.h:169:1:
+ AT_SYMLINK_NOFOLLOW_ANY = 0x0800 // fcntl.h:175:1:
+ CPF_IGNORE_MODE = 0x0002 // fcntl.h:208:1:
+ CPF_MASK = 3 // fcntl.h:209:1:
+ CPF_OVERWRITE = 0x0001 // fcntl.h:207:1:
+ FAPPEND = 8 // fcntl.h:193:1:
+ FASYNC = 64 // fcntl.h:194:1:
+ FCNTL_FS_SPECIFIC_BASE = 0x00010000 // fcntl.h:315:1:
+ FD_CLOEXEC = 1 // fcntl.h:324:1:
+ FFDSYNC = 4194304 // fcntl.h:196:1:
+ FFSYNC = 128 // fcntl.h:195:1:
+ FNDELAY = 4 // fcntl.h:198:1:
+ FNONBLOCK = 4 // fcntl.h:197:1:
+ FREAD = 0x00000001 // fcntl.h:110:1:
+ FWRITE = 0x00000002 // fcntl.h:111:1:
+ F_ADDFILESIGS = 61 // fcntl.h:253:1:
+ F_ADDFILESIGS_FOR_DYLD_SIM = 83 // fcntl.h:292:1:
+ F_ADDFILESIGS_INFO = 103 // fcntl.h:309:1:
+ F_ADDFILESIGS_RETURN = 97 // fcntl.h:298:1:
+ F_ADDFILESUPPL = 104 // fcntl.h:310:1:
+ F_ADDSIGS = 59 // fcntl.h:250:1:
+ F_ALLOCATEALL = 0x00000004 // fcntl.h:348:1:
+ F_ALLOCATECONTIG = 0x00000002 // fcntl.h:347:1:
+ F_BARRIERFSYNC = 85 // fcntl.h:295:1:
+ F_CHECK_LV = 98 // fcntl.h:299:1:
+ F_CHKCLEAN = 41 // fcntl.h:232:1:
+ F_DUPFD = 0 // fcntl.h:217:1:
+ F_DUPFD_CLOEXEC = 67 // fcntl.h:320:1:
+ F_FINDSIGS = 78 // fcntl.h:289:1:
+ F_FLUSH_DATA = 40 // fcntl.h:231:1:
+ F_FREEZE_FS = 53 // fcntl.h:245:1:
+ F_FSRESERVED = 106 // fcntl.h:312:1:
+ F_FULLFSYNC = 51 // fcntl.h:243:1:
+ F_GETCODEDIR = 72 // fcntl.h:277:1:
+ F_GETFD = 1 // fcntl.h:218:1:
+ F_GETFL = 3 // fcntl.h:220:1:
+ F_GETLK = 7 // fcntl.h:224:1:
+ F_GETLKPID = 66 // fcntl.h:263:1:
+ F_GETNOSIGPIPE = 74 // fcntl.h:280:1:
+ F_GETOWN = 5 // fcntl.h:222:1:
+ F_GETPATH = 50 // fcntl.h:242:1:
+ F_GETPATH_MTMINFO = 71 // fcntl.h:275:1:
+ F_GETPATH_NOFIRMLINK = 102 // fcntl.h:307:1:
+ F_GETPROTECTIONCLASS = 63 // fcntl.h:258:1:
+ F_GETPROTECTIONLEVEL = 77 // fcntl.h:287:1:
+ F_GETSIGSINFO = 105 // fcntl.h:311:1:
+ F_GLOBAL_NOCACHE = 55 // fcntl.h:247:1:
+ F_LOG2PHYS = 49 // fcntl.h:241:1:
+ F_LOG2PHYS_EXT = 65 // fcntl.h:261:1:
+ F_NOCACHE = 48 // fcntl.h:240:1:
+ F_NODIRECT = 62 // fcntl.h:255:1:
+ F_PATHPKG_CHECK = 52 // fcntl.h:244:1:
+ F_PEOFPOSMODE = 3 // fcntl.h:352:1:
+ F_PREALLOCATE = 42 // fcntl.h:233:1:
+ F_PUNCHHOLE = 99 // fcntl.h:301:1:
+ F_RDADVISE = 44 // fcntl.h:235:1:
+ F_RDAHEAD = 45 // fcntl.h:236:1:
+ F_RDLCK = 1 // fcntl.h:327:1:
+ F_SETBACKINGSTORE = 70 // fcntl.h:274:1:
+ F_SETFD = 2 // fcntl.h:219:1:
+ F_SETFL = 4 // fcntl.h:221:1:
+ F_SETLK = 8 // fcntl.h:225:1:
+ F_SETLKW = 9 // fcntl.h:226:1:
+ F_SETLKWTIMEOUT = 10 // fcntl.h:228:1:
+ F_SETNOSIGPIPE = 73 // fcntl.h:279:1:
+ F_SETOWN = 6 // fcntl.h:223:1:
+ F_SETPROTECTIONCLASS = 64 // fcntl.h:259:1:
+ F_SETSIZE = 43 // fcntl.h:234:1:
+ F_SINGLE_WRITER = 76 // fcntl.h:284:1:
+ F_SPECULATIVE_READ = 101 // fcntl.h:305:1:
+ F_THAW_FS = 54 // fcntl.h:246:1:
+ F_TRANSCODEKEY = 75 // fcntl.h:282:1:
+ F_TRIM_ACTIVE_FILE = 100 // fcntl.h:303:1:
+ F_UNLCK = 2 // fcntl.h:328:1:
+ F_VOLPOSMODE = 4 // fcntl.h:354:1:
+ F_WRLCK = 3 // fcntl.h:329:1:
+ GETSIGSINFO_PLATFORM_BINARY = 1 // fcntl.h:444:1:
+ LOCK_EX = 0x02 // fcntl.h:456:1:
+ LOCK_NB = 0x04 // fcntl.h:457:1:
+ LOCK_SH = 0x01 // fcntl.h:455:1:
+ LOCK_UN = 0x08 // fcntl.h:458:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ O_ACCMODE = 0x0003 // fcntl.h:99:1:
+ O_ALERT = 0x20000000 // fcntl.h:537:1:
+ O_APPEND = 0x00000008 // fcntl.h:114:1:
+ O_ASYNC = 0x00000040 // fcntl.h:121:1:
+ O_CLOEXEC = 0x01000000 // fcntl.h:150:1:
+ O_CREAT = 0x00000200 // fcntl.h:125:1:
+ O_DIRECTORY = 0x00100000 // fcntl.h:138:1:
+ O_DP_GETRAWENCRYPTED = 0x0001 // fcntl.h:181:1:
+ O_DP_GETRAWUNENCRYPTED = 0x0002 // fcntl.h:182:1:
+ O_DSYNC = 0x400000 // _o_dsync.h:29:1:
+ O_EVTONLY = 0x00008000 // fcntl.h:130:1:
+ O_EXCL = 0x00000800 // fcntl.h:127:1:
+ O_EXLOCK = 0x00000020 // fcntl.h:120:1:
+ O_FSYNC = 128 // fcntl.h:122:1:
+ O_NDELAY = 4 // fcntl.h:199:1:
+ O_NOCTTY = 0x00020000 // fcntl.h:134:1:
+ O_NOFOLLOW = 0x00000100 // fcntl.h:123:1:
+ O_NOFOLLOW_ANY = 0x20000000 // fcntl.h:155:1:
+ O_NONBLOCK = 0x00000004 // fcntl.h:113:1:
+ O_POPUP = 0x80000000 // fcntl.h:536:1:
+ O_RDONLY = 0x0000 // fcntl.h:96:1:
+ O_RDWR = 0x0002 // fcntl.h:98:1:
+ O_SHLOCK = 0x00000010 // fcntl.h:119:1:
+ O_SYMLINK = 0x00200000 // fcntl.h:142:1:
+ O_SYNC = 0x0080 // _o_sync.h:29:1:
+ O_TRUNC = 0x00000400 // fcntl.h:126:1:
+ O_WRONLY = 0x0001 // fcntl.h:97:1:
+ SEEK_CUR = 1 // _seek_set.h:34:1:
+ SEEK_DATA = 4 // _seek_set.h:44:1:
+ SEEK_END = 2 // _seek_set.h:35:1:
+ SEEK_HOLE = 3 // _seek_set.h:40:1:
+ SEEK_SET = 0 // _seek_set.h:33:1:
+ S_IEXEC = 64 // _s_ifmt.h:72:1:
+ S_IFBLK = 0060000 // _s_ifmt.h:39:1:
+ S_IFCHR = 0020000 // _s_ifmt.h:37:1:
+ S_IFDIR = 0040000 // _s_ifmt.h:38:1:
+ S_IFIFO = 0010000 // _s_ifmt.h:36:1:
+ S_IFLNK = 0120000 // _s_ifmt.h:41:1:
+ S_IFMT = 0170000 // _s_ifmt.h:35:1:
+ S_IFREG = 0100000 // _s_ifmt.h:40:1:
+ S_IFSOCK = 0140000 // _s_ifmt.h:42:1:
+ S_IFWHT = 0160000 // _s_ifmt.h:44:1:
+ S_IREAD = 256 // _s_ifmt.h:70:1:
+ S_IRGRP = 0000040 // _s_ifmt.h:55:1:
+ S_IROTH = 0000004 // _s_ifmt.h:60:1:
+ S_IRUSR = 0000400 // _s_ifmt.h:50:1:
+ S_IRWXG = 0000070 // _s_ifmt.h:54:1:
+ S_IRWXO = 0000007 // _s_ifmt.h:59:1:
+ S_IRWXU = 0000700 // _s_ifmt.h:49:1:
+ S_ISGID = 0002000 // _s_ifmt.h:65:1:
+ S_ISTXT = 512 // _s_ifmt.h:69:1:
+ S_ISUID = 0004000 // _s_ifmt.h:64:1:
+ S_ISVTX = 0001000 // _s_ifmt.h:66:1:
+ S_IWGRP = 0000020 // _s_ifmt.h:56:1:
+ S_IWOTH = 0000002 // _s_ifmt.h:61:1:
+ S_IWRITE = 128 // _s_ifmt.h:71:1:
+ S_IWUSR = 0000200 // _s_ifmt.h:51:1:
+ S_IXGRP = 0000010 // _s_ifmt.h:57:1:
+ S_IXOTH = 0000001 // _s_ifmt.h:62:1:
+ S_IXUSR = 0000100 // _s_ifmt.h:52:1:
+ USER_FSIGNATURES_CDHASH_LEN = 20 // fcntl.h:401:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILESEC_T = 0 // _filesec_t.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SYS_FCNTL_H_ = 0 // fcntl.h:71:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+)
+
+const ( /* fcntl.h:547:1: */
+ FILESEC_OWNER = 1
+ FILESEC_GROUP = 2
+ FILESEC_UUID = 3
+ FILESEC_MODE = 4
+ FILESEC_ACL = 5
+ FILESEC_GRPUUID = 6
+
+ // XXX these are private to the implementation
+ FILESEC_ACL_RAW = 100
+ FILESEC_ACL_ALLOCSIZE = 101
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1983, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// O_DSYNC 0x00400000 /* synch I/O data integrity */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Descriptor value for the current working directory
+
+// Flags for the at functions
+
+// Data Protection Flags
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flags field
+// and for backward compatibility for fcntl.
+
+// Flags used for copyfile(2)
+
+// Constants used for fcntl(2)
+
+// command values
+// 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+
+// should not be used (i.e. its ok to temporaily create cached pages)
+
+// See F_DUPFD_CLOEXEC below for 67
+
+// may be broken into smaller chunks with throttling in between
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// [XSI] The values used for l_whence shall be defined as described
+// in <unistd.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// whence values for lseek(2)
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// File type
+
+// File mode
+// Read, write, execute/search by owner
+// Read, write, execute/search by group
+// Read, write, execute/search by others
+
+// allocate flags (F_PREALLOCATE)
+
+// Position Modes (fst_posmode) for F_PREALLOCATE
+
+// we can keep them in sync should we desire
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:361:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Advisory file segment locking with time out -
+// Information passed to system by user for F_SETLKWTIMEOUT
+type Flocktimeout = struct {
+ Ffl struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ }
+ Ftimeout struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+} /* fcntl.h:376:1 */
+
+// advisory file read data type -
+// information passed by user to system
+
+type Radvisory = struct {
+ Fra_offset Off_t
+ Fra_count int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:389:1 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start uintptr
+ Ffs_blob_size Size_t
+ Ffs_fsignatures_size Size_t
+ Ffs_cdhash [20]int8
+ Ffs_hash_type int32
+} /* fcntl.h:402:9 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures_t = Fsignatures /* fcntl.h:412:3 */
+
+type Fsupplement = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start Off_t
+ Ffs_blob_size Size_t
+ Ffs_orig_fd int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:414:9 */
+
+type Fsupplement_t = Fsupplement /* fcntl.h:419:3 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv = struct {
+ Flv_file_start Off_t
+ Flv_error_message_size Size_t
+ Flv_error_message uintptr
+} /* fcntl.h:433:9 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv_t = Fchecklv /* fcntl.h:437:3 */
+
+// At this time F_GETSIGSINFO can only indicate platformness.
+// As additional requestable information is defined, new keys will be added and the
+// fgetsigsinfo_t structure will be lengthened to add space for the additional information
+
+// fgetsigsinfo_t used by F_GETSIGSINFO command
+type Fgetsigsinfo = struct {
+ Ffg_file_start Off_t
+ Ffg_info_request int32
+ Ffg_sig_is_platform int32
+} /* fcntl.h:447:9 */
+
+// At this time F_GETSIGSINFO can only indicate platformness.
+// As additional requestable information is defined, new keys will be added and the
+// fgetsigsinfo_t structure will be lengthened to add space for the additional information
+
+// fgetsigsinfo_t used by F_GETSIGSINFO command
+type Fgetsigsinfo_t = Fgetsigsinfo /* fcntl.h:451:3 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore = struct {
+ Ffst_flags uint32
+ Ffst_posmode int32
+ Ffst_offset Off_t
+ Ffst_length Off_t
+ Ffst_bytesalloc Off_t
+} /* fcntl.h:462:9 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore_t = Fstore /* fcntl.h:468:3 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole = struct {
+ Ffp_flags uint32
+ Freserved uint32
+ Ffp_offset Off_t
+ Ffp_length Off_t
+} /* fcntl.h:471:9 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole_t = Fpunchhole /* fcntl.h:476:3 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile = struct {
+ Ffta_offset Off_t
+ Ffta_length Off_t
+} /* fcntl.h:479:9 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile_t = Ftrimactivefile /* fcntl.h:482:3 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread = struct {
+ Ffsr_flags uint32
+ Freserved uint32
+ Ffsr_offset Off_t
+ Ffsr_length Off_t
+} /* fcntl.h:485:9 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread_t = Fspecread /* fcntl.h:490:3 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer = struct {
+ Ffbt_offset Off_t
+ Ffbt_length Size_t
+ Ffbt_buffer uintptr
+} /* fcntl.h:494:9 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer_t = Fbootstraptransfer /* fcntl.h:498:3 */
+
+// For F_LOG2PHYS this information is passed back to user
+// Currently only devoffset is returned - that is the VOP_BMAP
+// result - the disk device address corresponding to the
+// current file offset (likely set with an lseek).
+//
+// The flags could hold an indication of whether the # of
+// contiguous bytes reflects the true extent length on disk,
+// or is an advisory value that indicates there is at least that
+// many bytes contiguous. For some filesystems it might be too
+// inefficient to provide anything beyond the advisory value.
+// Flags and contiguous bytes return values are not yet implemented.
+// For them the fcntl will nedd to switch from using BMAP to CMAP
+// and a per filesystem type flag will be needed to interpret the
+// contiguous bytes count result from CMAP.
+//
+// F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+// file offset and length instead of the current file offset.
+// F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+// treats it as an in/out.
+
+type Log2phys = struct {
+ Fl2p_flags uint32
+ F__ccgo_pad1 [4]byte
+ Fl2p_contigbytes Off_t
+ Fl2p_devoffset Off_t
+} /* fcntl.h:524:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+type Filesec_property_t = uint32 /* fcntl.h:558:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fts/capi_darwin_arm64.go b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go
new file mode 100644
index 0000000000..35b9632f3f
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo fts/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o fts/fts_darwin_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/fts/fts_darwin_arm64.go b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go
new file mode 100644
index 0000000000..1a0232a8f8
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go
@@ -0,0 +1,5230 @@
+// Code generated by 'ccgo fts/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o fts/fts_darwin_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSPERMS = 511 // stat.h:297:1:
+ ALLPERMS = 4095 // stat.h:299:1:
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ DEFFILEMODE = 438 // stat.h:301:1:
+ EF_IS_PURGEABLE = 0x00000008 // stat.h:371:1:
+ EF_IS_SPARSE = 0x00000010 // stat.h:372:1:
+ EF_IS_SYNC_ROOT = 0x00000004 // stat.h:370:1:
+ EF_IS_SYNTHETIC = 0x00000020 // stat.h:373:1:
+ EF_MAY_SHARE_BLOCKS = 0x00000001 // stat.h:368:1:
+ EF_NO_XATTRS = 0x00000002 // stat.h:369:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ FTS_AGAIN = 1 // fts.h:157:1:
+ FTS_BLOCK_COMPAR = 0x80000000 // fts.h:108:1:
+ FTS_CHDIRFD = 0x08 // fts.h:154:1:
+ FTS_COMFOLLOW = 0x001 // fts.h:89:1:
+ FTS_COMFOLLOWDIR = 0x400 // fts.h:97:1:
+ FTS_D = 1 // fts.h:135:1:
+ FTS_DC = 2 // fts.h:136:1:
+ FTS_DEFAULT = 3 // fts.h:137:1:
+ FTS_DNR = 4 // fts.h:138:1:
+ FTS_DONTCHDIR = 0x01 // fts.h:151:1:
+ FTS_DOT = 5 // fts.h:139:1:
+ FTS_DP = 6 // fts.h:140:1:
+ FTS_ERR = 7 // fts.h:141:1:
+ FTS_F = 8 // fts.h:142:1:
+ FTS_FOLLOW = 2 // fts.h:158:1:
+ FTS_INIT = 9 // fts.h:143:1:
+ FTS_ISW = 0x04 // fts.h:153:1:
+ FTS_LOGICAL = 0x002 // fts.h:90:1:
+ FTS_MAXLEVEL = 0x7fffffff // fts.h:132:1:
+ FTS_NAMEONLY = 0x100 // fts.h:105:1:
+ FTS_NOCHDIR = 0x004 // fts.h:91:1:
+ FTS_NOINSTR = 3 // fts.h:159:1:
+ FTS_NOSTAT = 0x008 // fts.h:92:1:
+ FTS_NOSTAT_TYPE = 0x800 // fts.h:101:1:
+ FTS_NS = 10 // fts.h:144:1:
+ FTS_NSOK = 11 // fts.h:145:1:
+ FTS_OPTIONMASK = 0xcff // fts.h:102:1:
+ FTS_PHYSICAL = 0x010 // fts.h:93:1:
+ FTS_ROOTLEVEL = 0 // fts.h:131:1:
+ FTS_ROOTPARENTLEVEL = -1 // fts.h:130:1:
+ FTS_SEEDOT = 0x020 // fts.h:94:1:
+ FTS_SKIP = 4 // fts.h:160:1:
+ FTS_SL = 12 // fts.h:146:1:
+ FTS_SLNONE = 13 // fts.h:147:1:
+ FTS_STOP = 0x200 // fts.h:106:1:
+ FTS_SYMFOLLOW = 0x02 // fts.h:152:1:
+ FTS_W = 14 // fts.h:148:1:
+ FTS_WHITEOUT = 0x080 // fts.h:96:1:
+ FTS_XDEV = 0x040 // fts.h:95:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ NBBY = 8 // types.h:186:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ RSIZE_MAX = 9223372036854775807 // stdint.h:658:1:
+ SF_APPEND = 0x00040000 // stat.h:340:1:
+ SF_ARCHIVED = 0x00010000 // stat.h:338:1:
+ SF_DATALESS = 0x40000000 // stat.h:359:1:
+ SF_FIRMLINK = 0x00800000 // stat.h:351:1:
+ SF_IMMUTABLE = 0x00020000 // stat.h:339:1:
+ SF_NOUNLINK = 0x00100000 // stat.h:342:1:
+ SF_RESTRICTED = 0x00080000 // stat.h:341:1:
+ SF_SETTABLE = 0x3fff0000 // stat.h:336:1:
+ SF_SUPPORTED = 0x009f0000 // stat.h:335:1:
+ SF_SYNTHETIC = 0xc0000000 // stat.h:337:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ S_BLKSIZE = 512 // stat.h:303:1:
+ S_IEXEC = 64 // _s_ifmt.h:72:1:
+ S_IFBLK = 0060000 // _s_ifmt.h:39:1:
+ S_IFCHR = 0020000 // _s_ifmt.h:37:1:
+ S_IFDIR = 0040000 // _s_ifmt.h:38:1:
+ S_IFIFO = 0010000 // _s_ifmt.h:36:1:
+ S_IFLNK = 0120000 // _s_ifmt.h:41:1:
+ S_IFMT = 0170000 // _s_ifmt.h:35:1:
+ S_IFREG = 0100000 // _s_ifmt.h:40:1:
+ S_IFSOCK = 0140000 // _s_ifmt.h:42:1:
+ S_IFWHT = 0160000 // _s_ifmt.h:44:1:
+ S_IREAD = 256 // _s_ifmt.h:70:1:
+ S_IRGRP = 0000040 // _s_ifmt.h:55:1:
+ S_IROTH = 0000004 // _s_ifmt.h:60:1:
+ S_IRUSR = 0000400 // _s_ifmt.h:50:1:
+ S_IRWXG = 0000070 // _s_ifmt.h:54:1:
+ S_IRWXO = 0000007 // _s_ifmt.h:59:1:
+ S_IRWXU = 0000700 // _s_ifmt.h:49:1:
+ S_ISGID = 0002000 // _s_ifmt.h:65:1:
+ S_ISTXT = 512 // _s_ifmt.h:69:1:
+ S_ISUID = 0004000 // _s_ifmt.h:64:1:
+ S_ISVTX = 0001000 // _s_ifmt.h:66:1:
+ S_IWGRP = 0000020 // _s_ifmt.h:56:1:
+ S_IWOTH = 0000002 // _s_ifmt.h:61:1:
+ S_IWRITE = 128 // _s_ifmt.h:71:1:
+ S_IWUSR = 0000200 // _s_ifmt.h:51:1:
+ S_IXGRP = 0000010 // _s_ifmt.h:57:1:
+ S_IXOTH = 0000001 // _s_ifmt.h:62:1:
+ S_IXUSR = 0000100 // _s_ifmt.h:52:1:
+ UF_APPEND = 0x00000004 // stat.h:313:1:
+ UF_COMPRESSED = 0x00000020 // stat.h:320:1:
+ UF_DATAVAULT = 0x00000080 // stat.h:326:1:
+ UF_HIDDEN = 0x00008000 // stat.h:330:1:
+ UF_IMMUTABLE = 0x00000002 // stat.h:312:1:
+ UF_NODUMP = 0x00000001 // stat.h:311:1:
+ UF_OPAQUE = 0x00000008 // stat.h:314:1:
+ UF_SETTABLE = 0x0000ffff // stat.h:310:1:
+ UF_TRACKED = 0x00000040 // stat.h:324:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ UTIME_NOW = -1 // stat.h:395:1:
+ UTIME_OMIT = -2 // stat.h:396:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CADDR_T = 0 // _caddr_t.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILESEC_T = 0 // _filesec_t.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FSBLKCNT_T = 0 // _fsblkcnt_t.h:29:1:
+ X_FSFILCNT_T = 0 // _fsfilcnt_t.h:29:1:
+ X_FTS_H_ = 0 // fts.h:59:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_IN_ADDR_T = 0 // _in_addr_t.h:29:1:
+ X_IN_PORT_T = 0 // _in_port_t.h:29:1:
+ X_KEY_T = 0 // _key_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RSIZE_T = 0 // _rsize_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_STAT_H_ = 0 // stat.h:71:1:
+ X_SYS_TYPES_H_ = 0 // types.h:70:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_U_CHAR = 0 // _u_char.h:29:1:
+ X_U_INT = 0 // _u_int.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_U_LONG = 0 // types.h:89:1:
+ X_U_SHORT = 0 // _u_short.h:29:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ F__ccgo_pad1 [6]byte
+ Fst_ino Ino_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_uid X__uint16_t
+ Fst_gid X__uint16_t
+ Fst_rdev X__uint16_t
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ F__ccgo_pad2 [2]byte
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad3 [7]byte
+} /* fts.h:72:2 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ F__ccgo_pad1 [4]byte
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad2 [4]byte
+ F__56 struct{ Ffts_compar uintptr }
+ Ffts_options int32
+ F__ccgo_pad3 [4]byte
+} /* fts.h:111:3 */
+
+type FTSENT = X_ftsent /* fts.h:165:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/grp/capi_darwin_arm64.go b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go
new file mode 100644
index 0000000000..2299bebf91
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo grp/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o grp/grp_darwin_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/grp/grp_darwin_arm64.go b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go
new file mode 100644
index 0000000000..68ce5c7d5c
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go
@@ -0,0 +1,1003 @@
+// Code generated by 'ccgo grp/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o grp/grp_darwin_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_GRP_H_ = 0 // grp.h:43:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_PATH_GROUP = "/etc/group" // grp.h:50:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UUID_STRING_T = 0 // uuid.h:42:1:
+ X_UUID_T = 0 // _uuid_t.h:29:1:
+ X_UUID_UUID_H = 0 // uuid.h:36:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+/* Portions copyright (c) 2000-2018 Apple Inc. All rights reserved. */
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:53:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+// USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go
new file mode 100644
index 0000000000..a7a9ae844a
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo langinfo/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o langinfo/langinfo_darwin_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go
new file mode 100644
index 0000000000..be50647305
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go
@@ -0,0 +1,918 @@
+// Code generated by 'ccgo langinfo/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o langinfo/langinfo_darwin_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 14 // langinfo.h:53:1:
+ ABDAY_2 = 15 // langinfo.h:54:1:
+ ABDAY_3 = 16 // langinfo.h:55:1:
+ ABDAY_4 = 17 // langinfo.h:56:1:
+ ABDAY_5 = 18 // langinfo.h:57:1:
+ ABDAY_6 = 19 // langinfo.h:58:1:
+ ABDAY_7 = 20 // langinfo.h:59:1:
+ ABMON_1 = 33 // langinfo.h:76:1:
+ ABMON_10 = 42 // langinfo.h:85:1:
+ ABMON_11 = 43 // langinfo.h:86:1:
+ ABMON_12 = 44 // langinfo.h:87:1:
+ ABMON_2 = 34 // langinfo.h:77:1:
+ ABMON_3 = 35 // langinfo.h:78:1:
+ ABMON_4 = 36 // langinfo.h:79:1:
+ ABMON_5 = 37 // langinfo.h:80:1:
+ ABMON_6 = 38 // langinfo.h:81:1:
+ ABMON_7 = 39 // langinfo.h:82:1:
+ ABMON_8 = 40 // langinfo.h:83:1:
+ ABMON_9 = 41 // langinfo.h:84:1:
+ ALT_DIGITS = 49 // langinfo.h:93:1:
+ AM_STR = 5 // langinfo.h:40:1:
+ CODESET = 0 // langinfo.h:35:1:
+ CRNCYSTR = 56 // langinfo.h:106:1:
+ DAY_1 = 7 // langinfo.h:44:1:
+ DAY_2 = 8 // langinfo.h:45:1:
+ DAY_3 = 9 // langinfo.h:46:1:
+ DAY_4 = 10 // langinfo.h:47:1:
+ DAY_5 = 11 // langinfo.h:48:1:
+ DAY_6 = 12 // langinfo.h:49:1:
+ DAY_7 = 13 // langinfo.h:50:1:
+ D_FMT = 2 // langinfo.h:37:1:
+ D_MD_ORDER = 57 // langinfo.h:109:1:
+ D_T_FMT = 1 // langinfo.h:36:1:
+ ERA = 45 // langinfo.h:89:1:
+ ERA_D_FMT = 46 // langinfo.h:90:1:
+ ERA_D_T_FMT = 47 // langinfo.h:91:1:
+ ERA_T_FMT = 48 // langinfo.h:92:1:
+ MON_1 = 21 // langinfo.h:62:1:
+ MON_10 = 30 // langinfo.h:71:1:
+ MON_11 = 31 // langinfo.h:72:1:
+ MON_12 = 32 // langinfo.h:73:1:
+ MON_2 = 22 // langinfo.h:63:1:
+ MON_3 = 23 // langinfo.h:64:1:
+ MON_4 = 24 // langinfo.h:65:1:
+ MON_5 = 25 // langinfo.h:66:1:
+ MON_6 = 26 // langinfo.h:67:1:
+ MON_7 = 27 // langinfo.h:68:1:
+ MON_8 = 28 // langinfo.h:69:1:
+ MON_9 = 29 // langinfo.h:70:1:
+ NOEXPR = 53 // langinfo.h:99:1:
+ NOSTR = 55 // langinfo.h:103:1:
+ PM_STR = 6 // langinfo.h:41:1:
+ RADIXCHAR = 50 // langinfo.h:95:1:
+ THOUSEP = 51 // langinfo.h:96:1:
+ T_FMT = 3 // langinfo.h:38:1:
+ T_FMT_AMPM = 4 // langinfo.h:39:1:
+ YESEXPR = 52 // langinfo.h:98:1:
+ YESSTR = 54 // langinfo.h:102:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_LANGINFO_H_ = 0 // langinfo.h:30:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_NL_ITEM = 0 // _nl_item.h:30:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// $FreeBSD: /repoman/r/ncvs/src/include/langinfo.h,v 1.6 2002/09/18 05:54:25 mike Exp $
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Nl_item = X__darwin_nl_item /* _nl_item.h:32:26 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/libc_darwin_arm64.go b/vendor/modernc.org/libc/libc_darwin_arm64.go
new file mode 100644
index 0000000000..3864d31178
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_darwin_arm64.go
@@ -0,0 +1,450 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/utime"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(signal.X__sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).F__sigaction_u.F__sa_handler = (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_u.F__sa_handler
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).Fsa_flags = (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags
+ Xmemcpy(t, kact+unsafe.Offsetof(signal.X__sigaction{}.Fsa_mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(signal.Sigset_t(0))))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(signal.Sigset_t(0)), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) (r int32) {
+ var err error
+ var p uintptr
+ var i int
+ switch cmd {
+ case fcntl.F_GETLK, fcntl.F_SETLK, fcntl.F_SETLKW:
+ p = *(*uintptr)(unsafe.Pointer(args))
+ err = unix.FcntlFlock(uintptr(fd), int(cmd), (*unix.Flock_t)(unsafe.Pointer(p)))
+ case fcntl.F_GETFL, fcntl.F_FULLFSYNC:
+ i, err = unix.FcntlInt(uintptr(fd), int(cmd), 0)
+ r = int32(i)
+ case fcntl.F_SETFD, fcntl.F_SETFL:
+ arg := *(*int32)(unsafe.Pointer(args))
+ _, err = unix.FcntlInt(uintptr(fd), int(cmd), int(arg))
+ default:
+ panic(todo("%v: %v %v", origin(1), fd, cmd))
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v p %#x: %v FAIL", origin(1), fcntlCmdStr(fd), cmd, p, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: ok", origin(1), fd, fcntlCmdStr(cmd), p)
+ }
+ return r
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int fstatfs(int fd, struct statfs *buf);
+func Xfstatfs(t *TLS, fd int32, buf uintptr) int32 {
+ if err := unix.Fstatfs(int(fd), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %v: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// int statfs(const char *path, struct statfs *buf);
+func Xstatfs(t *TLS, path uintptr, buf uintptr) int32 {
+ if err := unix.Statfs(GoString(path), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n := time.Now().UTC().Unix()
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// // int getrlimit(int resource, struct rlimit *rlim);
+// func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
diff --git a/vendor/modernc.org/libc/limits/capi_darwin_arm64.go b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go
new file mode 100644
index 0000000000..4cf4ad2743
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo limits/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o limits/limits_darwin_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/limits/limits_darwin_arm64.go b/vendor/modernc.org/libc/limits/limits_darwin_arm64.go
new file mode 100644
index 0000000000..d27a72e288
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_darwin_arm64.go
@@ -0,0 +1,932 @@
+// Code generated by 'ccgo limits/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_darwin_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 1048576
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 266
+ CLK_TCK = 100
+ COLL_WEIGHTS_MAX = 2
+ EQUIV_CLASS_MAX = 2
+ EXPR_NEST_MAX = 32
+ GID_MAX = 2147483647
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_BIT = 64
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 1024
+ MAX_INPUT = 1024
+ MB_LEN_MAX = 6
+ NAME_MAX = 255
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ NZERO = 20
+ OFF_MAX = 9223372036854775807
+ OFF_MIN = -9223372036854775808
+ OPEN_MAX = 10240
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 512
+ PTHREAD_STACK_MIN = 16384
+ QUAD_MAX = 9223372036854775807
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UID_MAX = 2147483647
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ UQUAD_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ WORD_BIT = 32
+ X_ARM_LIMITS_H_ = 0
+ X_ARM__LIMITS_H_ = 0
+ X_BSD_MACHINE_LIMITS_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIMITS_H_ = 0
+ X_LIMITS_H___ = 0
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EQUIV_CLASS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_SS_REPL_MAX = 4
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TRACE_EVENT_NAME_MAX = 30
+ X_POSIX_TRACE_NAME_MAX = 8
+ X_POSIX_TRACE_SYS_MAX = 8
+ X_POSIX_TRACE_USER_EVENT_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_SYSLIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Copyright (C) 1992-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// Copyright (c) 2000, 2004-2007, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// $NetBSD: limits.h,v 1.8 1996/10/21 05:10:50 jtc Exp $
+
+// Copyright (c) 1988, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// This is the `system' limits.h, independent of any particular
+// compiler. GCC provides its own limits.h which can be found in
+// /usr/lib/gcc, although it is not very informative.
+// This file is public domain.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 1988, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+// These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values
+// are written as hex so that GCC will be quiet about large integer constants.
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// $NetBSD: syslimits.h,v 1.15 1997/06/25 00:48:09 lukem Exp $
+
+// Copyright (c) 1988, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// max bytes for an exec function
+
+// Note: CHILD_MAX *must* be less than hard_maxproc, which is set at
+// compile time; you *cannot* set it higher than the hard limit!!
+
+// = ((PRIO_MAX - PRIO_MIN) / 2) + 1
+// range: 0 - 39 [(2 * NZERO) - 1]
+// 0 is not actually used
+
+// Actually for XSI Visible
+
+// Removed in Issue 6
+
+// NZERO to be defined here. TBD. See also sys/param.h
+
+// Copyright (C) 1991-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/musl_darwin_arm64.go b/vendor/modernc.org/libc/musl_darwin_arm64.go
new file mode 100644
index 0000000000..e6fc642a81
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_darwin_arm64.go
@@ -0,0 +1,4732 @@
+// Code generated by 'ccgo -D__environ=environ -export-externs X -export-fields F -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -hide isascii,isspace,tolower,toupper -nostdinc -nostdlib -o ../musl_darwin_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../darwin/table.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// pthread opaque structures
+
+type __darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* table.c:1396:1 */
+
+type _opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* table.c:1402:1 */
+
+type _opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* table.c:1407:1 */
+
+type _opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* table.c:1412:1 */
+
+type _opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* table.c:1417:1 */
+
+type _opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* table.c:1422:1 */
+
+type _opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* table.c:1427:1 */
+
+type _opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* table.c:1432:1 */
+
+type _opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* table.c:1437:1 */
+
+type _opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* table.c:1442:1 */
+
+type ct_rune_t = int32 /* table.c:1527:28 */
+
+type rune_t = int32 /* table.c:1536:25 */
+
+type wint_t = int32 /* table.c:1558:25 */
+
+type _RuneEntry = struct {
+ F__min int32
+ F__max int32
+ F__map int32
+ F__ccgo_pad1 [4]byte
+ F__types uintptr
+} /* table.c:1575:3 */
+
+type _RuneRange = struct {
+ F__nranges int32
+ F__ccgo_pad1 [4]byte
+ F__ranges uintptr
+} /* table.c:1580:3 */
+
+type _RuneCharClass = struct {
+ F__name [14]int8
+ F__ccgo_pad1 [2]byte
+ F__mask uint32
+} /* table.c:1585:3 */
+
+type _RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune int32
+ F__runetype [256]uint32
+ F__maplower [256]int32
+ F__mapupper [256]int32
+ F__ccgo_pad1 [4]byte
+ F__runetype_ext _RuneRange
+ F__maplower_ext _RuneRange
+ F__mapupper_ext _RuneRange
+ F__variable uintptr
+ F__variable_len int32
+ F__ncharclasses int32
+ F__charclasses uintptr
+} /* table.c:1616:3 */
+
+func X__istype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1670:1: */
+
+ return func() int32 {
+ if Xisascii(tls, _c) != 0 {
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+ }
+ return BoolInt32(!!(X__maskrune(tls, _c, _f) != 0))
+ }()
+
+}
+
+func X__isctype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1681:1: */
+
+ if _c < 0 || _c >= int32(1)<<8 {
+ return 0
+ }
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+
+}
+
+func X__wcwidth(tls *TLS, _c int32) int32 { /* table.c:1700:1: */
+ var _x uint32
+
+ if _c == 0 {
+ return 0
+ }
+ _x = uint32(X__maskrune(tls, _c, uint64(0xe0000000|0x00040000)))
+ if int64(_x)&0xe0000000 != int64(0) {
+ return int32(int64(_x) & 0xe0000000 >> 30)
+ }
+ return func() int32 {
+ if int64(_x)&0x00040000 != int64(0) {
+ return 1
+ }
+ return -1
+ }()
+}
+
+func Xisalnum(tls *TLS, _c int32) int32 { /* table.c:1718:1: */
+ return X__istype(tls, _c, uint64(0x00000100|0x00000400))
+}
+
+func Xisalpha(tls *TLS, _c int32) int32 { /* table.c:1724:1: */
+ return X__istype(tls, _c, uint64(0x00000100))
+}
+
+func Xisblank(tls *TLS, _c int32) int32 { /* table.c:1730:1: */
+ return X__istype(tls, _c, uint64(0x00020000))
+}
+
+func Xiscntrl(tls *TLS, _c int32) int32 { /* table.c:1736:1: */
+ return X__istype(tls, _c, uint64(0x00000200))
+}
+
+func Xisdigit(tls *TLS, _c int32) int32 { /* table.c:1743:1: */
+ return X__isctype(tls, _c, uint64(0x00000400))
+}
+
+func Xisgraph(tls *TLS, _c int32) int32 { /* table.c:1749:1: */
+ return X__istype(tls, _c, uint64(0x00000800))
+}
+
+func Xislower(tls *TLS, _c int32) int32 { /* table.c:1755:1: */
+ return X__istype(tls, _c, uint64(0x00001000))
+}
+
+func Xisprint(tls *TLS, _c int32) int32 { /* table.c:1761:1: */
+ return X__istype(tls, _c, uint64(0x00040000))
+}
+
+func Xispunct(tls *TLS, _c int32) int32 { /* table.c:1767:1: */
+ return X__istype(tls, _c, uint64(0x00002000))
+}
+
+func Xisupper(tls *TLS, _c int32) int32 { /* table.c:1779:1: */
+ return X__istype(tls, _c, uint64(0x00008000))
+}
+
+func Xisxdigit(tls *TLS, _c int32) int32 { /* table.c:1786:1: */
+ return X__isctype(tls, _c, uint64(0x00010000))
+}
+
+func Xtoascii(tls *TLS, _c int32) int32 { /* table.c:1792:1: */
+ return _c & 0x7F
+}
+
+func Xdigittoint(tls *TLS, _c int32) int32 { /* table.c:1811:1: */
+ return X__maskrune(tls, _c, uint64(0x0F))
+}
+
+func Xishexnumber(tls *TLS, _c int32) int32 { /* table.c:1817:1: */
+ return X__istype(tls, _c, uint64(0x00010000))
+}
+
+func Xisideogram(tls *TLS, _c int32) int32 { /* table.c:1823:1: */
+ return X__istype(tls, _c, uint64(0x00080000))
+}
+
+func Xisnumber(tls *TLS, _c int32) int32 { /* table.c:1829:1: */
+ return X__istype(tls, _c, uint64(0x00000400))
+}
+
+func Xisphonogram(tls *TLS, _c int32) int32 { /* table.c:1835:1: */
+ return X__istype(tls, _c, uint64(0x00200000))
+}
+
+func Xisrune(tls *TLS, _c int32) int32 { /* table.c:1841:1: */
+ return X__istype(tls, _c, uint64(0xFFFFFFF0))
+}
+
+func Xisspecial(tls *TLS, _c int32) int32 { /* table.c:1847:1: */
+ return X__istype(tls, _c, uint64(0x00100000))
+}
+
+func X__maskrune(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1871:2: */
+ return int32(uint32(int32(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c&0xff)*4)))) & uint32(_f))
+}
+
+func X__toupper(tls *TLS, c int32) int32 { /* table.c:1876:20: */
+ return Xtoupper(tls, c)
+}
+
+func X__tolower(tls *TLS, c int32) int32 { /* table.c:1878:20: */
+ return Xtolower(tls, c)
+}
+
+var X_DefaultRuneLocale = _RuneLocale{F__magic: [8]int8{int8(82), int8(117), int8(110), int8(101), int8(77), int8(97), int8(103), int8(65)}, F__encoding: [32]int8{int8(78), int8(79), int8(78), int8(69), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}, F__invalid_rune: 0xfffd, F__runetype: [256]uint32{
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x24200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x200), uint32(0x200),
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200),
+ uint32(0x64000), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x50c00), uint32(0x50c01), uint32(0x50c02), uint32(0x50c03), uint32(0x50c04), uint32(0x50c05), uint32(0x50c06), uint32(0x50c07), uint32(0x50c08), uint32(0x50c09), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5890a), uint32(0x5890b), uint32(0x5890c), uint32(0x5890d), uint32(0x5890e), uint32(0x5890f), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900),
+ uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5190a), uint32(0x5190b), uint32(0x5190c), uint32(0x5190d), uint32(0x5190e), uint32(0x5190f), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900),
+ uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x200),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+}, F__maplower: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+}, F__mapupper: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+},
+} /* table.c:1879:13 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.c:1940:13 */
+
+type div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:64:41 */
+
+type locale_t = uintptr /* alltypes.h:351:32 */
+
+type ssize_t = int64 /* alltypes.h:73:15 */
+
+type intptr_t = int64 /* alltypes.h:78:15 */
+
+type off_t = int64 /* alltypes.h:170:16 */
+
+type pid_t = int32 /* alltypes.h:243:13 */
+
+type uid_t = uint32 /* alltypes.h:253:18 */
+
+type gid_t = uint32 /* alltypes.h:258:18 */
+
+type useconds_t = uint32 /* alltypes.h:268:18 */
+
+func X__putenv(tls *TLS, s uintptr, l size_t, r uintptr) int32 { /* putenv.c:8:5: */
+ var i size_t
+ var newenv uintptr
+ var tmp uintptr
+ //TODO for (char **e = __environ; *e; e++, i++)
+ var e uintptr
+ i = uint64(0)
+ if !(Environ() != 0) {
+ goto __1
+ }
+ //TODO for (char **e = __environ; *e; e++, i++)
+ e = Environ()
+__2:
+ if !(*(*uintptr)(unsafe.Pointer(e)) != 0) {
+ goto __4
+ }
+ if !!(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+uint64(1)) != 0) {
+ goto __5
+ }
+ tmp = *(*uintptr)(unsafe.Pointer(e))
+ *(*uintptr)(unsafe.Pointer(e)) = s
+ X__env_rm_add(tls, tmp, r)
+ return 0
+__5:
+ ;
+ goto __3
+__3:
+ e += 8
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+__1:
+ ;
+ if !(Environ() == _soldenv) {
+ goto __6
+ }
+ newenv = Xrealloc(tls, _soldenv, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __8
+ }
+ goto oom
+__8:
+ ;
+ goto __7
+__6:
+ newenv = Xmalloc(tls, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __9
+ }
+ goto oom
+__9:
+ ;
+ if !(i != 0) {
+ goto __10
+ }
+ Xmemcpy(tls, newenv, Environ(), uint64(unsafe.Sizeof(uintptr(0)))*i)
+__10:
+ ;
+ Xfree(tls, _soldenv)
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*8)) = s
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+uint64(1))*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(EnvironP())) = AssignPtrUintptr(uintptr(unsafe.Pointer(&_soldenv)), newenv)
+ if !(r != 0) {
+ goto __11
+ }
+ X__env_rm_add(tls, uintptr(0), r)
+__11:
+ ;
+ return 0
+oom:
+ Xfree(tls, r)
+ return -1
+}
+
+var _soldenv uintptr /* putenv.c:22:14: */
+
+func Xputenv(tls *TLS, s uintptr) int32 { /* putenv.c:43:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, s, '=')) - int64(s)) / 1)
+ if !(l != 0) || !(int32(*(*int8)(unsafe.Pointer(s + uintptr(l)))) != 0) {
+ return Xunsetenv(tls, s)
+ }
+ return X__putenv(tls, s, l, uintptr(0))
+}
+
+func X__env_rm_add(tls *TLS, old uintptr, new uintptr) { /* setenv.c:5:6: */
+ //TODO for (size_t i=0; i < env_alloced_n; i++)
+ var i size_t = uint64(0)
+ for ; i < _senv_alloced_n; i++ {
+ if *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) == old {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ Xfree(tls, old)
+ return
+ } else if !(int32(*(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8))) != 0) && new != 0 {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ new = uintptr(0)
+ }
+ }
+ if !(new != 0) {
+ return
+ }
+ var t uintptr = Xrealloc(tls, _senv_alloced, uint64(unsafe.Sizeof(uintptr(0)))*(_senv_alloced_n+uint64(1)))
+ if !(t != 0) {
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(AssignPtrUintptr(uintptr(unsafe.Pointer(&_senv_alloced)), t) + uintptr(PostIncUint64(&_senv_alloced_n, 1))*8)) = new
+}
+
+var _senv_alloced uintptr /* setenv.c:7:14: */
+var _senv_alloced_n size_t /* setenv.c:8:16: */
+
+func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) int32 { /* setenv.c:26:5: */
+ var s uintptr
+ var l1 size_t
+ var l2 size_t
+
+ if !(var1 != 0) || !(int32(AssignUint64(&l1, size_t((int64(X__strchrnul(tls, var1, '='))-int64(var1))/1))) != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if !(overwrite != 0) && Xgetenv(tls, var1) != 0 {
+ return 0
+ }
+
+ l2 = Xstrlen(tls, value)
+ s = Xmalloc(tls, l1+l2+uint64(2))
+ if !(s != 0) {
+ return -1
+ }
+ Xmemcpy(tls, s, var1, l1)
+ *(*int8)(unsafe.Pointer(s + uintptr(l1))) = int8('=')
+ Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+uint64(1))
+ return X__putenv(tls, s, l1, s)
+}
+
+func Xunsetenv(tls *TLS, name uintptr) int32 { /* unsetenv.c:9:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, name, '=')) - int64(name)) / 1)
+ if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if Environ() != 0 {
+ var e uintptr = Environ()
+ var eo uintptr = e
+ for ; *(*uintptr)(unsafe.Pointer(e)) != 0; e += 8 {
+ //TODO if (!strncmp(name, *e, l) && l[*e] == '=')
+ if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == '=' {
+ X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0))
+ } else if eo != e {
+ *(*uintptr)(unsafe.Pointer(PostIncUintptr(&eo, 8))) = *(*uintptr)(unsafe.Pointer(e))
+ } else {
+ eo += 8
+ }
+ }
+ if eo != e {
+ *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0)
+ }
+ }
+ return 0
+}
+
+type uintptr_t = uint64 /* alltypes.h:63:24 */
+
+type int8_t = int8 /* alltypes.h:104:25 */
+
+type int16_t = int16 /* alltypes.h:109:25 */
+
+type int32_t = int32 /* alltypes.h:114:25 */
+
+type int64_t = int64 /* alltypes.h:119:25 */
+
+type intmax_t = int64 /* alltypes.h:124:25 */
+
+type uint8_t = uint8 /* alltypes.h:129:25 */
+
+type uint16_t = uint16 /* alltypes.h:134:25 */
+
+type uint32_t = uint32 /* alltypes.h:139:25 */
+
+type uint64_t = uint64 /* alltypes.h:144:25 */
+
+type uintmax_t = uint64 /* alltypes.h:154:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ Fflags uint32
+ F__ccgo_pad1 [4]byte
+ Frpos uintptr
+ Frend uintptr
+ Fclose uintptr
+ Fwend uintptr
+ Fwpos uintptr
+ Fmustbezero_1 uintptr
+ Fwbase uintptr
+ Fread uintptr
+ Fwrite uintptr
+ Fseek uintptr
+ Fbuf uintptr
+ Fbuf_size size_t
+ Fprev uintptr
+ Fnext uintptr
+ Ffd int32
+ Fpipe_pid int32
+ Flockcount int64
+ Fmode int32
+ Flock int32
+ Flbf int32
+ F__ccgo_pad2 [4]byte
+ Fcookie uintptr
+ Foff off_t
+ Fgetln_buf uintptr
+ Fmustbezero_2 uintptr
+ Fshend uintptr
+ Fshlim off_t
+ Fshcnt off_t
+ Fprev_locked uintptr
+ Fnext_locked uintptr
+ Flocale uintptr
+} /* alltypes.h:328:9 */
+
+type FILE = _IO_FILE /* alltypes.h:328:25 */
+
+type va_list = uintptr /* alltypes.h:334:27 */
+
+type _G_fpos64_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:38:15 */
+
+type double_t = float64 /* alltypes.h:43:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {F__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {F__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).Frpos != (*FILE)(unsafe.Pointer(f)).Fshend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).Frpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).Fshlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).Frpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).Fshlim = lim
+ (*FILE)(unsafe.Pointer(f)).Fshcnt = (int64((*FILE)(unsafe.Pointer(f)).Fbuf) - int64((*FILE)(unsafe.Pointer(f)).Frpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).Frend)-int64((*FILE)(unsafe.Pointer(f)).Frpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).Fshend = (*FILE)(unsafe.Pointer(f)).Frpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).Fshend = (*FILE)(unsafe.Pointer(f)).Frend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).Fshcnt + (int64((*FILE)(unsafe.Pointer(f)).Frpos)-int64((*FILE)(unsafe.Pointer(f)).Fbuf))/1
+ if (*FILE)(unsafe.Pointer(f)).Fshlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).Fshlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).Fshcnt = (int64((*FILE)(unsafe.Pointer(f)).Fbuf)-int64((*FILE)(unsafe.Pointer(f)).Frpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).Fshend = (*FILE)(unsafe.Pointer(f)).Frpos
+ (*FILE)(unsafe.Pointer(f)).Fshlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).Fshlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).Frend)-int64((*FILE)(unsafe.Pointer(f)).Frpos))/1 > (*FILE)(unsafe.Pointer(f)).Fshlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).Fshend = (*FILE)(unsafe.Pointer(f)).Frpos + uintptr((*FILE)(unsafe.Pointer(f)).Fshlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).Fshend = (*FILE)(unsafe.Pointer(f)).Frend
+ }
+ (*FILE)(unsafe.Pointer(f)).Fshcnt = (int64((*FILE)(unsafe.Pointer(f)).Fbuf)-int64((*FILE)(unsafe.Pointer(f)).Frpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).Frpos <= (*FILE)(unsafe.Pointer(f)).Fbuf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).Frpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ Fdecimal_point uintptr
+ Fthousands_sep uintptr
+ Fgrouping uintptr
+ Fint_curr_symbol uintptr
+ Fcurrency_symbol uintptr
+ Fmon_decimal_point uintptr
+ Fmon_thousands_sep uintptr
+ Fmon_grouping uintptr
+ Fpositive_sign uintptr
+ Fnegative_sign uintptr
+ Fint_frac_digits int8
+ Ffrac_digits int8
+ Fp_cs_precedes int8
+ Fp_sep_by_space int8
+ Fn_cs_precedes int8
+ Fn_sep_by_space int8
+ Fp_sign_posn int8
+ Fn_sign_posn int8
+ Fint_p_cs_precedes int8
+ Fint_p_sep_by_space int8
+ Fint_n_cs_precedes int8
+ Fint_n_sep_by_space int8
+ Fint_p_sign_posn int8
+ Fint_n_sign_posn int8
+ F__ccgo_pad1 [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{Fdecimal_point: ts + 23, Fthousands_sep: ts + 13, Fgrouping: ts + 13, Fint_curr_symbol: ts + 13, Fcurrency_symbol: ts + 13, Fmon_decimal_point: ts + 13, Fmon_thousands_sep: ts + 13, Fmon_grouping: ts + 13, Fpositive_sign: ts + 13, Fnegative_sign: ts + 13, Fint_frac_digits: Int8FromInt32(255), Ffrac_digits: Int8FromInt32(255), Fp_cs_precedes: Int8FromInt32(255), Fp_sep_by_space: Int8FromInt32(255), Fn_cs_precedes: Int8FromInt32(255), Fn_sep_by_space: Int8FromInt32(255), Fp_sign_posn: Int8FromInt32(255), Fn_sign_posn: Int8FromInt32(255), Fint_p_cs_precedes: Int8FromInt32(255), Fint_p_sep_by_space: Int8FromInt32(255), Fint_n_cs_precedes: Int8FromInt32(255), Fint_n_sep_by_space: Int8FromInt32(255), Fint_p_sign_posn: Int8FromInt32(255), Fint_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ Ff float64 })(unsafe.Pointer(bp)) = func() (r struct{ Ff float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ Ff float32 })(unsafe.Pointer(bp)) = func() (r struct{ Ff float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ Ff float64 })(unsafe.Pointer(bp)) = func() (r struct{ Ff float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {Ff float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type max_align_t = struct {
+ F__ll int64
+ F__ld float64
+} /* alltypes.h:49:54 */
+
+type imaxdiv_t = struct {
+ Fquot intmax_t
+ Frem intmax_t
+} /* inttypes.h:14:40 */
+
+type iovec = struct {
+ Fiov_base uintptr
+ Fiov_len size_t
+} /* alltypes.h:363:1 */
+
+type socklen_t = uint32 /* alltypes.h:369:18 */
+
+type sa_family_t = uint16 /* alltypes.h:374:24 */
+
+type msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__pad1 int32
+ Fmsg_control uintptr
+ Fmsg_controllen socklen_t
+ F__pad2 int32
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ Fcmsg_len socklen_t
+ F__pad1 int32
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ Fsa_family sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ Fs_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ Fsin_family sa_family_t
+ Fsin_port in_port_t
+ Fsin_addr struct{ Fs_addr in_addr_t }
+ Fsin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ F__in6_union struct {
+ F__ccgo_pad1 [0]uint32
+ F__s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ Fsin6_family sa_family_t
+ Fsin6_port in_port_t
+ Fsin6_flowinfo uint32_t
+ Fsin6_addr struct {
+ F__in6_union struct {
+ F__ccgo_pad1 [0]uint32
+ F__s6_addr [16]uint8_t
+ }
+ }
+ Fsin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_union struct {
+ F__ccgo_pad1 [0]uint32
+ F__s6_addr [16]uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ Fip_dst struct{ Fs_addr in_addr_t }
+ Fip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr in_addr_t }
+ Fimr_interface struct{ Fs_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr in_addr_t }
+ Fimr_address struct{ Fs_addr in_addr_t }
+ Fimr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr in_addr_t }
+ Fimr_interface struct{ Fs_addr in_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr in_addr_t }
+ Fimsf_interface struct{ Fs_addr in_addr_t }
+ Fimsf_fmode uint32_t
+ Fimsf_numsrc uint32_t
+ Fimsf_slist [1]struct{ Fs_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ Fgr_interface uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ Fgsr_interface uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ Fgf_interface uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgf_fmode uint32_t
+ Fgf_numsrc uint32_t
+ Fgf_slist [1]struct {
+ Fss_family sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr in_addr_t }
+ Fipi_addr struct{ Fs_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__in6_union struct {
+ F__ccgo_pad1 [0]uint32
+ F__s6_addr [16]uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_family sa_family_t
+ Fsin6_port in_port_t
+ Fsin6_flowinfo uint32_t
+ Fsin6_addr struct {
+ F__in6_union struct {
+ F__ccgo_pad1 [0]uint32
+ F__s6_addr [16]uint8_t
+ }
+ }
+ Fsin6_scope_id uint32_t
+ }
+ Fip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ Fai struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+ }
+ Fsa struct {
+ Fsin struct {
+ Fsin_family sa_family_t
+ Fsin_port in_port_t
+ Fsin_addr struct{ Fs_addr in_addr_t }
+ Fsin_zero [8]uint8_t
+ }
+ F__ccgo_pad1 [12]byte
+ }
+ Flock [1]int32
+ Fslot int16
+ Fref int16
+ F__ccgo_pad1 [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ Fsin struct {
+ Fsin_family sa_family_t
+ Fsin_port in_port_t
+ Fsin_addr struct{ Fs_addr in_addr_t }
+ Fsin_zero [8]uint8_t
+ }
+ F__ccgo_pad1 [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ Ffamily int32
+ Fscopeid uint32
+ Faddr [16]uint8_t
+ Fsortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ Fport uint16_t
+ Fproto uint8
+ Fsocktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ Fns [3]struct {
+ Ffamily int32
+ Fscopeid uint32
+ Faddr [16]uint8_t
+ Fsortkey int32
+ }
+ Fnns uint32
+ Fattempts uint32
+ Fndots uint32
+ Ftimeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).Fai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).Fai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).Fslot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:93:16 */
+
+type clockid_t = int32 /* alltypes.h:222:13 */
+
+type timespec = struct {
+ Ftv_sec time_t
+ Ftv_nsec int64
+} /* alltypes.h:237:1 */
+
+type pthread_t = uintptr /* alltypes.h:281:26 */
+
+type pthread_once_t = int32 /* alltypes.h:287:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:292:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:297:13 */
+
+type pthread_mutexattr_t = struct{ F__attr uint32 } /* alltypes.h:302:37 */
+
+type pthread_condattr_t = struct{ F__attr uint32 } /* alltypes.h:307:37 */
+
+type pthread_barrierattr_t = struct{ F__attr uint32 } /* alltypes.h:312:37 */
+
+type pthread_rwlockattr_t = struct{ F__attr [2]uint32 } /* alltypes.h:317:40 */
+
+type __sigset_t = struct{ F__bits [16]uint64 } /* alltypes.h:357:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:357:71 */
+
+type pthread_attr_t = struct {
+ F__u struct {
+ F__ccgo_pad1 [0]uint64
+ F__i [14]int32
+ }
+} /* alltypes.h:380:147 */
+
+type pthread_mutex_t = struct {
+ F__u struct {
+ F__ccgo_pad1 [0]uint64
+ F__i [10]int32
+ }
+} /* alltypes.h:385:157 */
+
+type pthread_cond_t = struct {
+ F__u struct {
+ F__ccgo_pad1 [0]uint64
+ F__i [12]int32
+ }
+} /* alltypes.h:395:112 */
+
+type pthread_rwlock_t = struct {
+ F__u struct {
+ F__ccgo_pad1 [0]uint64
+ F__i [14]int32
+ }
+} /* alltypes.h:405:139 */
+
+type pthread_barrier_t = struct {
+ F__u struct {
+ F__ccgo_pad1 [0]uint64
+ F__i [8]int32
+ }
+} /* alltypes.h:410:137 */
+
+type sched_param = struct {
+ Fsched_priority int32
+ F__reserved1 int32
+ F__reserved2 [2]struct {
+ F__reserved1 time_t
+ F__reserved2 int64
+ }
+ F__reserved3 int32
+ F__ccgo_pad1 [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:217:14 */
+
+type clock_t = int64 /* alltypes.h:227:14 */
+
+type tm = struct {
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec time_t
+ Ftv_nsec int64
+ }
+ Fit_value struct {
+ Ftv_sec time_t
+ Ftv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ F__f uintptr
+ F__x uintptr
+ F__next uintptr
+} /* pthread.h:206:1 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).Fai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).Fai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).Fai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).Fai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fslot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).Ffamily
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).Fsocktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).Fproto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).Ffamily == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).Fai.Fai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).Fai.Fai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).Ffamily {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).Fsin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).Fsin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).Fport)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).Fsin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).Fsin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).Fport)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).Fsin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).Fscopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).Fref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ Fpid pid_t
+ Fuid uid_t
+ Fgid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ Fmsg_hdr struct {
+ Fmsg_name uintptr
+ Fmsg_namelen socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__pad1 int32
+ Fmsg_control uintptr
+ Fmsg_controllen socklen_t
+ F__pad2 int32
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fmsg_len uint32
+ F__ccgo_pad1 [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for __ccgo := true; __ccgo; __ccgo = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ Fsin sockaddr_in
+ F__ccgo_pad1 [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ Fsin sockaddr_in
+ F__ccgo_pad1 [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).Fsin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).Fh_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).Fh_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).Fh_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).Fh_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).Fh_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for __ccgo := true; __ccgo; __ccgo = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).Fh_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).Fh_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).Fh_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).Fh_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).Fh_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).Fh_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).Fh_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).Fh_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).Fh_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).Fh_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).Fh_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).Fh_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).Fh_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ Fif_index uint32
+ F__ccgo_pad1 [4]byte
+ Fif_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ Fifa_addr struct {
+ Fsa_family sa_family_t
+ Fsa_data [14]int8
+ }
+ Fifa_ifu struct {
+ Fifu_broadaddr struct {
+ Fsa_family sa_family_t
+ Fsa_data [14]int8
+ }
+ }
+ Fifa_ifp uintptr
+ Fifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ Fmem_start uint64
+ Fmem_end uint64
+ Fbase_addr uint16
+ Firq uint8
+ Fdma uint8
+ Fport uint8
+ F__ccgo_pad1 [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ Fifr_ifrn struct{ Fifrn_name [16]int8 }
+ Fifr_ifru struct {
+ F__ccgo_pad1 [0]uint64
+ Fifru_addr struct {
+ Fsa_family sa_family_t
+ Fsa_data [14]int8
+ }
+ F__ccgo_pad2 [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ Fifc_len int32
+ F__ccgo_pad1 [4]byte
+ Fifc_ifcu struct{ Fifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ F_msg uintptr
+ F_eom uintptr
+ F_id uint16_t
+ F_flags uint16_t
+ F_counts [4]uint16_t
+ F__ccgo_pad1 [4]byte
+ F_sections [4]uintptr
+ F_sect ns_sect
+ F_rrnum int32
+ F_msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ Fmask int32
+ Fshift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ Fname [1025]int8
+ F__ccgo_pad1 [1]byte
+ Ftype uint16_t
+ Frr_class uint16_t
+ F__ccgo_pad2 [2]byte
+ Fttl uint32_t
+ Frdlength uint16_t
+ F__ccgo_pad3 [2]byte
+ Frdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ Fname [1025]int8
+ Falg [1025]int8
+ F__ccgo_pad1 [6]byte
+ Fdata uintptr
+ Flen int32
+ F__ccgo_pad2 [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ Fcounter int32
+ F__ccgo_pad1 [4]byte
+ Fkey uintptr
+ Fctx uintptr
+ Fsig [512]uint8
+ Fsiglen int32
+ F__ccgo_pad2 [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ F__ccgo_pad1 [0]uint32
+ Fid uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ Fqdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ Fnscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ Fretrans int32
+ Fretry int32
+ Foptions uint64
+ Fnscount int32
+ Fnsaddr_list [3]struct {
+ Fsin_family sa_family_t
+ Fsin_port in_port_t
+ Fsin_addr struct{ Fs_addr in_addr_t }
+ Fsin_zero [8]uint8_t
+ }
+ Fid uint16
+ F__ccgo_pad1 [2]byte
+ Fdnsrch [7]uintptr
+ Fdefdname [256]int8
+ Fpfcode uint64
+ Fndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ F__ccgo_pad2 [4]byte
+ Fsort_list [10]struct {
+ Faddr struct{ Fs_addr in_addr_t }
+ Fmask uint32_t
+ }
+ Fqhook uintptr
+ Frhook uintptr
+ Fres_h_errno int32
+ F_vcsock int32
+ F_flags uint32
+ F__ccgo_pad3 [4]byte
+ F_u struct {
+ F__ccgo_pad1 [0]uint64
+ Fpad [52]int8
+ F__ccgo_pad2 [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ Fnumber int32
+ F__ccgo_pad1 [4]byte
+ Fname uintptr
+ Fhumanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for __ccgo := true; __ccgo; __ccgo = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).Ffamily == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).Fscopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).Fscopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]int8 at bp, 78
+
+ // var buf [256]int8 at bp+78, 256
+
+ // var num [13]int8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).Fsa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).Fsin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]int8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).Fsin_port))
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).Ffamily = 2
+ (*address)(unsafe.Pointer(buf)).Fscopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).Ffamily = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).Fscopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:160:18 */
+
+type flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ F__ccgo_pad1 [4]byte
+ Fl_start off_t
+ Fl_len off_t
+ Fl_pid pid_t
+ F__ccgo_pad2 [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.Ffamily = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.Ffamily = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ Faddrs uintptr
+ Fcanon uintptr
+ Fcnt int32
+ F__ccgo_pad1 [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ Faddr [16]uint8
+ Flen uint8
+ Fmask uint8
+ Fprec uint8
+ Flabel uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), Flen: uint8(15), Fmask: uint8(0xff), Fprec: uint8(50)},
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), Flen: uint8(11), Fmask: uint8(0xff), Fprec: uint8(35), Flabel: uint8(4)},
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), Flen: uint8(1), Fmask: uint8(0xff), Fprec: uint8(30), Flabel: uint8(2)},
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), Flen: uint8(3), Fmask: uint8(0xff), Fprec: uint8(5), Flabel: uint8(5)},
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), Fmask: uint8(0xfe), Fprec: uint8(3), Flabel: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {Faddr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), Fprec: uint8(40), Flabel: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].Flen)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].Flen))))&int32(defpolicy[i].Fmask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].Flen)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).Flabel)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).Fsortkey - (*address)(unsafe.Pointer(a)).Fsortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).Ffamily != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).Ffamily
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{Fsin6_family: sa_family_t(10), Fsin6_port: in_port_t(65535), Fsin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).Fscopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{Fsin_family: sa_family_t(2), Fsin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).Flabel)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).Fprec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).Fsortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).Fport = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).Fproto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).Fsocktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).Fport = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).Fsocktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).Fproto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).Fport = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).Fsocktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).Fproto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).Fmode - 1
+ if (*FILE)(unsafe.Pointer(f)).Fwpos != (*FILE)(unsafe.Pointer(f)).Fwbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).Fwrite})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).Fwpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).Fflags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).Frpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).Fbuf+uintptr((*FILE)(unsafe.Pointer(f)).Fbuf_size))
+ if (*FILE)(unsafe.Pointer(f)).Fflags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).Fread})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */
+ var try uintptr
+ var sign int32
+ for nel > uint64(0) {
+ try = base + uintptr(width*(nel/uint64(2)))
+ sign = (*struct {
+ f func(*TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try)
+ if sign < 0 {
+ nel = nel / uint64(2)
+ } else if sign > 0 {
+ base = try + uintptr(width)
+ nel = nel - (nel/uint64(2) + uint64(1))
+ } else {
+ return try
+ }
+ }
+ return uintptr(0)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).Fbuf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).Frend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).Fshcnt + (int64((*FILE)(unsafe.Pointer(bp)).Frpos)-int64((*FILE)(unsafe.Pointer(bp)).Fbuf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).Fbuf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).Frend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).Fshcnt + (int64((*FILE)(unsafe.Pointer(bp)).Frpos)-int64((*FILE)(unsafe.Pointer(bp)).Fbuf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func X__strchrnul(tls *TLS, s uintptr, c int32) uintptr { /* strchrnul.c:10:6: */
+ c = int32(uint8(c))
+ if !(c != 0) {
+ return s + uintptr(Xstrlen(tls, s))
+ }
+ var w uintptr
+ for ; uintptr_t(s)%uintptr_t(unsafe.Sizeof(size_t(0))) != 0; s++ {
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c {
+ return s
+ }
+ }
+ var k size_t = Uint64(Uint64FromInt32(-1)) / uint64(255) * size_t(c)
+ for w = s; !((*(*uint64)(unsafe.Pointer(w))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(w)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0); w += 8 {
+ }
+ s = w
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c; s++ {
+ }
+ return s
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*int8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*int8)(unsafe.Pointer(d)) = int8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*int8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = int8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*int8)(unsafe.Pointer(_sp)) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = int8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go
new file mode 100644
index 0000000000..8fa61c15fa
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netdb/netdb_darwin_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go
new file mode 100644
index 0000000000..ec46e2aae6
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go
@@ -0,0 +1,6323 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netdb/netdb_darwin_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16 // socket.h:379:1:
+ AF_CCITT = 10 // socket.h:373:1:
+ AF_CHAOS = 5 // socket.h:367:1:
+ AF_CNT = 21 // socket.h:384:1:
+ AF_COIP = 20 // socket.h:383:1:
+ AF_DATAKIT = 9 // socket.h:372:1:
+ AF_DECnet = 12 // socket.h:375:1:
+ AF_DLI = 13 // socket.h:376:1:
+ AF_E164 = 28 // socket.h:391:1:
+ AF_ECMA = 8 // socket.h:371:1:
+ AF_HYLINK = 15 // socket.h:378:1:
+ AF_IEEE80211 = 37 // socket.h:403:1:
+ AF_IMPLINK = 3 // socket.h:365:1:
+ AF_INET = 2 // socket.h:363:1:
+ AF_INET6 = 30 // socket.h:394:1:
+ AF_IPX = 23 // socket.h:386:1:
+ AF_ISDN = 28 // socket.h:390:1:
+ AF_ISO = 7 // socket.h:369:1:
+ AF_LAT = 14 // socket.h:377:1:
+ AF_LINK = 18 // socket.h:381:1:
+ AF_LOCAL = 1 // socket.h:361:1:
+ AF_MAX = 41 // socket.h:406:1:
+ AF_NATM = 31 // socket.h:396:1:
+ AF_NDRV = 27 // socket.h:389:1:
+ AF_NETBIOS = 33 // socket.h:398:1:
+ AF_NS = 6 // socket.h:368:1:
+ AF_OSI = 7 // socket.h:370:1:
+ AF_PPP = 34 // socket.h:399:1:
+ AF_PUP = 4 // socket.h:366:1:
+ AF_RESERVED_36 = 36 // socket.h:402:1:
+ AF_ROUTE = 17 // socket.h:380:1:
+ AF_SIP = 24 // socket.h:387:1:
+ AF_SNA = 11 // socket.h:374:1:
+ AF_SYSTEM = 32 // socket.h:397:1:
+ AF_UNIX = 1 // socket.h:359:1:
+ AF_UNSPEC = 0 // socket.h:358:1:
+ AF_UTUN = 38 // socket.h:404:1:
+ AF_VSOCK = 40 // socket.h:405:1:
+ AI_ADDRCONFIG = 0x00000400 // netdb.h:226:1:
+ AI_ALL = 0x00000100 // netdb.h:222:1:
+ AI_CANONNAME = 0x00000002 // netdb.h:212:1:
+ AI_DEFAULT = 1536 // netdb.h:230:1:
+ AI_MASK = 5127 // netdb.h:217:1:
+ AI_NUMERICHOST = 0x00000004 // netdb.h:213:1:
+ AI_NUMERICSERV = 0x00001000 // netdb.h:214:1:
+ AI_PASSIVE = 0x00000001 // netdb.h:211:1:
+ AI_UNUSABLE = 0x10000000 // netdb.h:234:1:
+ AI_V4MAPPED = 0x00000800 // netdb.h:227:1:
+ AI_V4MAPPED_CFG = 0x00000200 // netdb.h:224:1:
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ CONNECT_DATA_AUTHENTICATED = 0x4 // socket.h:304:1:
+ CONNECT_DATA_IDEMPOTENT = 0x2 // socket.h:303:1:
+ CONNECT_RESUME_ON_READ_WRITE = 0x1 // socket.h:302:1:
+ EAI_ADDRFAMILY = 1 // netdb.h:185:1:
+ EAI_AGAIN = 2 // netdb.h:187:1:
+ EAI_BADFLAGS = 3 // netdb.h:188:1:
+ EAI_BADHINTS = 12 // netdb.h:200:1:
+ EAI_FAIL = 4 // netdb.h:189:1:
+ EAI_FAMILY = 5 // netdb.h:190:1:
+ EAI_MAX = 15 // netdb.h:205:1:
+ EAI_MEMORY = 6 // netdb.h:191:1:
+ EAI_NODATA = 7 // netdb.h:193:1:
+ EAI_NONAME = 8 // netdb.h:195:1:
+ EAI_OVERFLOW = 14 // netdb.h:203:1:
+ EAI_PROTOCOL = 13 // netdb.h:201:1:
+ EAI_SERVICE = 9 // netdb.h:196:1:
+ EAI_SOCKTYPE = 10 // netdb.h:197:1:
+ EAI_SYSTEM = 11 // netdb.h:198:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ HOST_NOT_FOUND = 1 // netdb.h:174:1:
+ ICMP6_FILTER = 18 // in6.h:394:1:
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50 // in6.h:629:1:
+ INADDR_NONE = 0xffffffff // in.h:342:1:
+ INET6_ADDRSTRLEN = 46 // in6.h:162:1:
+ INET_ADDRSTRLEN = 16 // in.h:388:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ IN_CLASSA_HOST = 0x00ffffff // in.h:317:1:
+ IN_CLASSA_MAX = 128 // in.h:318:1:
+ IN_CLASSA_NET = 0xff000000 // in.h:315:1:
+ IN_CLASSA_NSHIFT = 24 // in.h:316:1:
+ IN_CLASSB_HOST = 0x0000ffff // in.h:323:1:
+ IN_CLASSB_MAX = 65536 // in.h:324:1:
+ IN_CLASSB_NET = 0xffff0000 // in.h:321:1:
+ IN_CLASSB_NSHIFT = 16 // in.h:322:1:
+ IN_CLASSC_HOST = 0x000000ff // in.h:329:1:
+ IN_CLASSC_NET = 0xffffff00 // in.h:327:1:
+ IN_CLASSC_NSHIFT = 8 // in.h:328:1:
+ IN_CLASSD_HOST = 0x0fffffff // in.h:334:1:
+ IN_CLASSD_NET = 0xf0000000 // in.h:332:1:
+ IN_CLASSD_NSHIFT = 28 // in.h:333:1:
+ IN_LOOPBACKNET = 127 // in.h:369:1:
+ IPCTL_ACCEPTSOURCEROUTE = 13 // in.h:650:1:
+ IPCTL_DEFTTL = 3 // in.h:638:1:
+ IPCTL_DIRECTEDBROADCAST = 9 // in.h:646:1:
+ IPCTL_FASTFORWARDING = 14 // in.h:651:1:
+ IPCTL_FORWARDING = 1 // in.h:636:1:
+ IPCTL_GIF_TTL = 16 // in.h:653:1:
+ IPCTL_INTRQDROPS = 11 // in.h:648:1:
+ IPCTL_INTRQMAXLEN = 10 // in.h:647:1:
+ IPCTL_KEEPFAITH = 15 // in.h:652:1:
+ IPCTL_MAXID = 17 // in.h:654:1:
+ IPCTL_RTEXPIRE = 5 // in.h:642:1:
+ IPCTL_RTMAXCACHE = 7 // in.h:644:1:
+ IPCTL_RTMINEXPIRE = 6 // in.h:643:1:
+ IPCTL_SENDREDIRECTS = 2 // in.h:637:1:
+ IPCTL_SOURCEROUTE = 8 // in.h:645:1:
+ IPCTL_STATS = 12 // in.h:649:1:
+ IPPORT_HIFIRSTAUTO = 49152 // in.h:286:1:
+ IPPORT_HILASTAUTO = 65535 // in.h:287:1:
+ IPPORT_RESERVED = 1024 // in.h:279:1:
+ IPPORT_RESERVEDSTART = 600 // in.h:295:1:
+ IPPORT_USERRESERVED = 5000 // in.h:281:1:
+ IPPROTO_3PC = 34 // in.h:139:1:
+ IPPROTO_ADFS = 68 // in.h:173:1:
+ IPPROTO_AH = 51 // in.h:158:1:
+ IPPROTO_AHIP = 61 // in.h:166:1:
+ IPPROTO_APES = 99 // in.h:204:1:
+ IPPROTO_ARGUS = 13 // in.h:116:1:
+ IPPROTO_AX25 = 93 // in.h:198:1:
+ IPPROTO_BHA = 49 // in.h:156:1:
+ IPPROTO_BLT = 30 // in.h:135:1:
+ IPPROTO_BRSATMON = 76 // in.h:181:1:
+ IPPROTO_CFTP = 62 // in.h:167:1:
+ IPPROTO_CHAOS = 16 // in.h:119:1:
+ IPPROTO_CMTP = 38 // in.h:143:1:
+ IPPROTO_CPHB = 73 // in.h:178:1:
+ IPPROTO_CPNX = 72 // in.h:177:1:
+ IPPROTO_DDP = 37 // in.h:142:1:
+ IPPROTO_DGP = 86 // in.h:191:1:
+ IPPROTO_DIVERT = 254 // in.h:213:1:
+ IPPROTO_DONE = 257 // in.h:221:1:
+ IPPROTO_DSTOPTS = 60 // in.h:165:1:
+ IPPROTO_EGP = 8 // in.h:111:1:
+ IPPROTO_EMCON = 14 // in.h:117:1:
+ IPPROTO_ENCAP = 98 // in.h:203:1:
+ IPPROTO_EON = 80 // in.h:185:1:
+ IPPROTO_ESP = 50 // in.h:157:1:
+ IPPROTO_ETHERIP = 97 // in.h:202:1:
+ IPPROTO_FRAGMENT = 44 // in.h:151:1:
+ IPPROTO_GGP = 3 // in.h:104:1:
+ IPPROTO_GMTP = 100 // in.h:205:1:
+ IPPROTO_GRE = 47 // in.h:154:1:
+ IPPROTO_HELLO = 63 // in.h:168:1:
+ IPPROTO_HMP = 20 // in.h:125:1:
+ IPPROTO_HOPOPTS = 0 // in.h:99:1:
+ IPPROTO_ICMP = 1 // in.h:101:1:
+ IPPROTO_ICMPV6 = 58 // in.h:163:1:
+ IPPROTO_IDP = 22 // in.h:127:1:
+ IPPROTO_IDPR = 35 // in.h:140:1:
+ IPPROTO_IDRP = 45 // in.h:152:1:
+ IPPROTO_IGMP = 2 // in.h:103:1:
+ IPPROTO_IGP = 85 // in.h:190:1:
+ IPPROTO_IGRP = 88 // in.h:193:1:
+ IPPROTO_IL = 40 // in.h:145:1:
+ IPPROTO_INLSP = 52 // in.h:159:1:
+ IPPROTO_INP = 32 // in.h:137:1:
+ IPPROTO_IP = 0 // in.h:97:1:
+ IPPROTO_IPCOMP = 108 // in.h:208:1:
+ IPPROTO_IPCV = 71 // in.h:176:1:
+ IPPROTO_IPEIP = 94 // in.h:199:1:
+ IPPROTO_IPIP = 4 // in.h:106:1:
+ IPPROTO_IPPC = 67 // in.h:172:1:
+ IPPROTO_IPV4 = 4 // in.h:105:1:
+ IPPROTO_IPV6 = 41 // in.h:147:1:
+ IPPROTO_IRTP = 28 // in.h:133:1:
+ IPPROTO_KRYPTOLAN = 65 // in.h:170:1:
+ IPPROTO_LARP = 91 // in.h:196:1:
+ IPPROTO_LEAF1 = 25 // in.h:130:1:
+ IPPROTO_LEAF2 = 26 // in.h:131:1:
+ IPPROTO_MAX = 256 // in.h:218:1:
+ IPPROTO_MAXID = 52 // in.h:630:1:
+ IPPROTO_MEAS = 19 // in.h:124:1:
+ IPPROTO_MHRP = 48 // in.h:155:1:
+ IPPROTO_MICP = 95 // in.h:200:1:
+ IPPROTO_MTP = 92 // in.h:197:1:
+ IPPROTO_MUX = 18 // in.h:123:1:
+ IPPROTO_ND = 77 // in.h:182:1:
+ IPPROTO_NHRP = 54 // in.h:161:1:
+ IPPROTO_NONE = 59 // in.h:164:1:
+ IPPROTO_NSP = 31 // in.h:136:1:
+ IPPROTO_NVPII = 11 // in.h:114:1:
+ IPPROTO_OSPFIGP = 89 // in.h:194:1:
+ IPPROTO_PGM = 113 // in.h:209:1:
+ IPPROTO_PIGP = 9 // in.h:112:1:
+ IPPROTO_PIM = 103 // in.h:207:1:
+ IPPROTO_PRM = 21 // in.h:126:1:
+ IPPROTO_PUP = 12 // in.h:115:1:
+ IPPROTO_PVP = 75 // in.h:180:1:
+ IPPROTO_RAW = 255 // in.h:215:1:
+ IPPROTO_RCCMON = 10 // in.h:113:1:
+ IPPROTO_RDP = 27 // in.h:132:1:
+ IPPROTO_ROUTING = 43 // in.h:150:1:
+ IPPROTO_RSVP = 46 // in.h:153:1:
+ IPPROTO_RVD = 66 // in.h:171:1:
+ IPPROTO_SATEXPAK = 64 // in.h:169:1:
+ IPPROTO_SATMON = 69 // in.h:174:1:
+ IPPROTO_SCCSP = 96 // in.h:201:1:
+ IPPROTO_SCTP = 132 // in.h:210:1:
+ IPPROTO_SDRP = 42 // in.h:149:1:
+ IPPROTO_SEP = 33 // in.h:138:1:
+ IPPROTO_SRPC = 90 // in.h:195:1:
+ IPPROTO_ST = 7 // in.h:110:1:
+ IPPROTO_SVMTP = 82 // in.h:187:1:
+ IPPROTO_SWIPE = 53 // in.h:160:1:
+ IPPROTO_TCF = 87 // in.h:192:1:
+ IPPROTO_TCP = 6 // in.h:108:1:
+ IPPROTO_TP = 29 // in.h:134:1:
+ IPPROTO_TPXX = 39 // in.h:144:1:
+ IPPROTO_TRUNK1 = 23 // in.h:128:1:
+ IPPROTO_TRUNK2 = 24 // in.h:129:1:
+ IPPROTO_TTP = 84 // in.h:189:1:
+ IPPROTO_UDP = 17 // in.h:121:1:
+ IPPROTO_VINES = 83 // in.h:188:1:
+ IPPROTO_VISA = 70 // in.h:175:1:
+ IPPROTO_VMTP = 81 // in.h:186:1:
+ IPPROTO_WBEXPAK = 79 // in.h:184:1:
+ IPPROTO_WBMON = 78 // in.h:183:1:
+ IPPROTO_WSN = 74 // in.h:179:1:
+ IPPROTO_XNET = 15 // in.h:118:1:
+ IPPROTO_XTP = 36 // in.h:141:1:
+ IPV6CTL_ACCEPT_RTADV = 12 // in6.h:594:1:
+ IPV6CTL_ADDRCTLPOLICY = 38 // in6.h:619:1:
+ IPV6CTL_AUTO_FLOWLABEL = 17 // in6.h:599:1:
+ IPV6CTL_AUTO_LINKLOCAL = 35 // in6.h:616:1:
+ IPV6CTL_DAD_COUNT = 16 // in6.h:598:1:
+ IPV6CTL_DEFHLIM = 3 // in6.h:583:1:
+ IPV6CTL_DEFMCASTHLIM = 18 // in6.h:600:1:
+ IPV6CTL_FORWARDING = 1 // in6.h:581:1:
+ IPV6CTL_FORWSRCRT = 5 // in6.h:587:1:
+ IPV6CTL_GIF_HLIM = 19 // in6.h:601:1:
+ IPV6CTL_HDRNESTLIMIT = 15 // in6.h:597:1:
+ IPV6CTL_KAME_VERSION = 20 // in6.h:602:1:
+ IPV6CTL_KEEPFAITH = 13 // in6.h:595:1:
+ IPV6CTL_LOG_INTERVAL = 14 // in6.h:596:1:
+ IPV6CTL_MAXDYNROUTES = 49 // in6.h:628:1:
+ IPV6CTL_MAXFRAGPACKETS = 9 // in6.h:591:1:
+ IPV6CTL_MAXFRAGS = 41 // in6.h:622:1:
+ IPV6CTL_MAXID = 51 // in6.h:635:1:
+ IPV6CTL_MAXIFDEFROUTERS = 48 // in6.h:627:1:
+ IPV6CTL_MAXIFPREFIXES = 47 // in6.h:626:1:
+ IPV6CTL_MCAST_PMTU = 44 // in6.h:623:1:
+ IPV6CTL_MRTPROTO = 8 // in6.h:590:1:
+ IPV6CTL_MRTSTATS = 7 // in6.h:589:1:
+ IPV6CTL_NEIGHBORGCTHRESH = 46 // in6.h:625:1:
+ IPV6CTL_PREFER_TEMPADDR = 37 // in6.h:618:1:
+ IPV6CTL_RIP6STATS = 36 // in6.h:617:1:
+ IPV6CTL_RR_PRUNE = 22 // in6.h:604:1:
+ IPV6CTL_RTEXPIRE = 25 // in6.h:609:1:
+ IPV6CTL_RTMAXCACHE = 27 // in6.h:611:1:
+ IPV6CTL_RTMINEXPIRE = 26 // in6.h:610:1:
+ IPV6CTL_SENDREDIRECTS = 2 // in6.h:582:1:
+ IPV6CTL_SOURCECHECK = 10 // in6.h:592:1:
+ IPV6CTL_SOURCECHECK_LOGINT = 11 // in6.h:593:1:
+ IPV6CTL_STATS = 6 // in6.h:588:1:
+ IPV6CTL_TEMPPLTIME = 33 // in6.h:614:1:
+ IPV6CTL_TEMPVLTIME = 34 // in6.h:615:1:
+ IPV6CTL_ULA_USETEMPADDR = 51 // in6.h:630:1:
+ IPV6CTL_USETEMPADDR = 32 // in6.h:613:1:
+ IPV6CTL_USE_DEFAULTZONE = 39 // in6.h:620:1:
+ IPV6CTL_USE_DEPRECATED = 21 // in6.h:603:1:
+ IPV6CTL_V6ONLY = 24 // in6.h:608:1:
+ IPV6PORT_ANONMAX = 65535 // in6.h:144:1:
+ IPV6PORT_ANONMIN = 49152 // in6.h:143:1:
+ IPV6PORT_RESERVED = 1024 // in6.h:142:1:
+ IPV6PORT_RESERVEDMAX = 1023 // in6.h:146:1:
+ IPV6PORT_RESERVEDMIN = 600 // in6.h:145:1:
+ IPV6PROTO_MAXID = 104 // in6.h:576:1:
+ IPV6_2292DSTOPTS = 23 // in6.h:399:1:
+ IPV6_2292HOPLIMIT = 20 // in6.h:396:1:
+ IPV6_2292HOPOPTS = 22 // in6.h:398:1:
+ IPV6_2292NEXTHOP = 21 // in6.h:397:1:
+ IPV6_2292PKTINFO = 19 // in6.h:395:1:
+ IPV6_2292PKTOPTIONS = 25 // in6.h:403:1:
+ IPV6_2292RTHDR = 24 // in6.h:400:1:
+ IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 // in6.h:306:1:
+ IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 // in6.h:305:1:
+ IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 48 // in6.h:307:1:
+ IPV6_BINDV6ONLY = 27 // in6.h:419:1:
+ IPV6_BOUND_IF = 125 // in6.h:508:1:
+ IPV6_CHECKSUM = 26 // in6.h:415:1:
+ IPV6_DEFAULT_MULTICAST_HOPS = 1 // in6.h:520:1:
+ IPV6_DEFAULT_MULTICAST_LOOP = 1 // in6.h:521:1:
+ IPV6_FAITH = 29 // in6.h:425:1:
+ IPV6_FW_ADD = 30 // in6.h:428:1:
+ IPV6_FW_DEL = 31 // in6.h:429:1:
+ IPV6_FW_FLUSH = 32 // in6.h:430:1:
+ IPV6_FW_GET = 34 // in6.h:432:1:
+ IPV6_FW_ZERO = 33 // in6.h:431:1:
+ IPV6_IPSEC_POLICY = 28 // in6.h:423:1:
+ IPV6_JOIN_GROUP = 12 // in6.h:389:1:
+ IPV6_LEAVE_GROUP = 13 // in6.h:390:1:
+ IPV6_MAX_GROUP_SRC_FILTER = 512 // in6.h:535:1:
+ IPV6_MAX_MEMBERSHIPS = 4095 // in6.h:529:1:
+ IPV6_MAX_SOCK_SRC_FILTER = 128 // in6.h:536:1:
+ IPV6_MIN_MEMBERSHIPS = 31 // in6.h:528:1:
+ IPV6_MULTICAST_HOPS = 10 // in6.h:387:1:
+ IPV6_MULTICAST_IF = 9 // in6.h:386:1:
+ IPV6_MULTICAST_LOOP = 11 // in6.h:388:1:
+ IPV6_PORTRANGE = 14 // in6.h:393:1:
+ IPV6_PORTRANGE_DEFAULT = 0 // in6.h:566:1:
+ IPV6_PORTRANGE_HIGH = 1 // in6.h:567:1:
+ IPV6_PORTRANGE_LOW = 2 // in6.h:568:1:
+ IPV6_RECVTCLASS = 35 // in6.h:440:1:
+ IPV6_RTHDR_LOOSE = 0 // in6.h:513:1:
+ IPV6_RTHDR_STRICT = 1 // in6.h:514:1:
+ IPV6_RTHDR_TYPE_0 = 0 // in6.h:515:1:
+ IPV6_SOCKOPT_RESERVED1 = 3 // in6.h:383:1:
+ IPV6_TCLASS = 36 // in6.h:441:1:
+ IPV6_UNICAST_HOPS = 4 // in6.h:385:1:
+ IPV6_V6ONLY = 27 // in6.h:417:1:
+ IP_ADD_MEMBERSHIP = 12 // in.h:418:1:
+ IP_ADD_SOURCE_MEMBERSHIP = 70 // in.h:465:1:
+ IP_BLOCK_SOURCE = 72 // in.h:467:1:
+ IP_BOUND_IF = 25 // in.h:434:1:
+ IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:486:1:
+ IP_DEFAULT_MULTICAST_TTL = 1 // in.h:485:1:
+ IP_DONTFRAG = 28 // in.h:438:1:
+ IP_DROP_MEMBERSHIP = 13 // in.h:419:1:
+ IP_DROP_SOURCE_MEMBERSHIP = 71 // in.h:466:1:
+ IP_DUMMYNET_CONFIGURE = 60 // in.h:456:1:
+ IP_DUMMYNET_DEL = 61 // in.h:457:1:
+ IP_DUMMYNET_FLUSH = 62 // in.h:458:1:
+ IP_DUMMYNET_GET = 64 // in.h:459:1:
+ IP_FAITH = 22 // in.h:429:1:
+ IP_FW_ADD = 40 // in.h:440:1:
+ IP_FW_DEL = 41 // in.h:441:1:
+ IP_FW_FLUSH = 42 // in.h:442:1:
+ IP_FW_GET = 44 // in.h:444:1:
+ IP_FW_RESETLOG = 45 // in.h:445:1:
+ IP_FW_ZERO = 43 // in.h:443:1:
+ IP_HDRINCL = 2 // in.h:408:1:
+ IP_IPSEC_POLICY = 21 // in.h:428:1:
+ IP_MAX_GROUP_SRC_FILTER = 512 // in.h:500:1:
+ IP_MAX_MEMBERSHIPS = 4095 // in.h:494:1:
+ IP_MAX_SOCK_MUTE_FILTER = 128 // in.h:502:1:
+ IP_MAX_SOCK_SRC_FILTER = 128 // in.h:501:1:
+ IP_MIN_MEMBERSHIPS = 31 // in.h:493:1:
+ IP_MSFILTER = 74 // in.h:471:1:
+ IP_MULTICAST_IF = 9 // in.h:415:1:
+ IP_MULTICAST_IFINDEX = 66 // in.h:462:1:
+ IP_MULTICAST_LOOP = 11 // in.h:417:1:
+ IP_MULTICAST_TTL = 10 // in.h:416:1:
+ IP_MULTICAST_VIF = 14 // in.h:420:1:
+ IP_NAT__XXX = 55 // in.h:453:1:
+ IP_OLD_FW_ADD = 50 // in.h:448:1:
+ IP_OLD_FW_DEL = 51 // in.h:449:1:
+ IP_OLD_FW_FLUSH = 52 // in.h:450:1:
+ IP_OLD_FW_GET = 54 // in.h:452:1:
+ IP_OLD_FW_RESETLOG = 56 // in.h:454:1:
+ IP_OLD_FW_ZERO = 53 // in.h:451:1:
+ IP_OPTIONS = 1 // in.h:407:1:
+ IP_PKTINFO = 26 // in.h:435:1:
+ IP_PORTRANGE = 19 // in.h:425:1:
+ IP_PORTRANGE_DEFAULT = 0 // in.h:594:1:
+ IP_PORTRANGE_HIGH = 1 // in.h:595:1:
+ IP_PORTRANGE_LOW = 2 // in.h:596:1:
+ IP_RECVDSTADDR = 7 // in.h:413:1:
+ IP_RECVIF = 20 // in.h:426:1:
+ IP_RECVOPTS = 5 // in.h:411:1:
+ IP_RECVPKTINFO = 26 // in.h:436:1:
+ IP_RECVRETOPTS = 6 // in.h:412:1:
+ IP_RECVTOS = 27 // in.h:437:1:
+ IP_RECVTTL = 24 // in.h:433:1:
+ IP_RETOPTS = 8 // in.h:414:1:
+ IP_RSVP_OFF = 16 // in.h:422:1:
+ IP_RSVP_ON = 15 // in.h:421:1:
+ IP_RSVP_VIF_OFF = 18 // in.h:424:1:
+ IP_RSVP_VIF_ON = 17 // in.h:423:1:
+ IP_STRIPHDR = 23 // in.h:431:1:
+ IP_TOS = 3 // in.h:409:1:
+ IP_TRAFFIC_MGT_BACKGROUND = 65 // in.h:461:1:
+ IP_TTL = 4 // in.h:410:1:
+ IP_UNBLOCK_SOURCE = 73 // in.h:468:1:
+ KEV_DL_ADDMULTI = 7 // net_kev.h:61:1:
+ KEV_DL_AWDL_RESTRICTED = 26 // net_kev.h:80:1:
+ KEV_DL_AWDL_UNRESTRICTED = 27 // net_kev.h:81:1:
+ KEV_DL_DELMULTI = 8 // net_kev.h:62:1:
+ KEV_DL_IFCAP_CHANGED = 19 // net_kev.h:73:1:
+ KEV_DL_IFDELEGATE_CHANGED = 25 // net_kev.h:79:1:
+ KEV_DL_IF_ATTACHED = 9 // net_kev.h:63:1:
+ KEV_DL_IF_DETACHED = 11 // net_kev.h:65:1:
+ KEV_DL_IF_DETACHING = 10 // net_kev.h:64:1:
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18 // net_kev.h:72:1:
+ KEV_DL_ISSUES = 24 // net_kev.h:78:1:
+ KEV_DL_LINK_ADDRESS_CHANGED = 16 // net_kev.h:70:1:
+ KEV_DL_LINK_OFF = 12 // net_kev.h:66:1:
+ KEV_DL_LINK_ON = 13 // net_kev.h:67:1:
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20 // net_kev.h:74:1:
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30 // net_kev.h:84:1:
+ KEV_DL_NODE_ABSENCE = 22 // net_kev.h:76:1:
+ KEV_DL_NODE_PRESENCE = 21 // net_kev.h:75:1:
+ KEV_DL_PRIMARY_ELECTED = 23 // net_kev.h:77:1:
+ KEV_DL_PROTO_ATTACHED = 14 // net_kev.h:68:1:
+ KEV_DL_PROTO_DETACHED = 15 // net_kev.h:69:1:
+ KEV_DL_QOS_MODE_CHANGED = 29 // net_kev.h:83:1:
+ KEV_DL_RRC_STATE_CHANGED = 28 // net_kev.h:82:1:
+ KEV_DL_SIFFLAGS = 1 // net_kev.h:55:1:
+ KEV_DL_SIFGENERIC = 6 // net_kev.h:60:1:
+ KEV_DL_SIFMEDIA = 5 // net_kev.h:59:1:
+ KEV_DL_SIFMETRICS = 2 // net_kev.h:56:1:
+ KEV_DL_SIFMTU = 3 // net_kev.h:57:1:
+ KEV_DL_SIFPHYS = 4 // net_kev.h:58:1:
+ KEV_DL_SUBCLASS = 2 // net_kev.h:50:1:
+ KEV_DL_WAKEFLAGS_CHANGED = 17 // net_kev.h:71:1:
+ KEV_INET6_ADDR_DELETED = 3 // net_kev.h:93:1:
+ KEV_INET6_CHANGED_ADDR = 2 // net_kev.h:92:1:
+ KEV_INET6_DEFROUTER = 6 // net_kev.h:96:1:
+ KEV_INET6_NEW_LL_ADDR = 4 // net_kev.h:94:1:
+ KEV_INET6_NEW_RTADV_ADDR = 5 // net_kev.h:95:1:
+ KEV_INET6_NEW_USER_ADDR = 1 // net_kev.h:91:1:
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7 // net_kev.h:97:1:
+ KEV_INET6_SUBCLASS = 6 // net_kev.h:89:1:
+ KEV_INET_ADDR_DELETED = 3 // net_kev.h:39:1:
+ KEV_INET_ARPCOLLISION = 7 // net_kev.h:43:1:
+ KEV_INET_ARPRTRALIVE = 10 // net_kev.h:48:1:
+ KEV_INET_ARPRTRFAILURE = 9 // net_kev.h:47:1:
+ KEV_INET_CHANGED_ADDR = 2 // net_kev.h:38:1:
+ KEV_INET_NEW_ADDR = 1 // net_kev.h:37:1:
+ KEV_INET_PORTINUSE = 8 // net_kev.h:45:1:
+ KEV_INET_SIFBRDADDR = 5 // net_kev.h:41:1:
+ KEV_INET_SIFDSTADDR = 4 // net_kev.h:40:1:
+ KEV_INET_SIFNETMASK = 6 // net_kev.h:42:1:
+ KEV_INET_SUBCLASS = 1 // net_kev.h:35:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ MCAST_BLOCK_SOURCE = 84 // in.h:478:1:
+ MCAST_EXCLUDE = 2 // in.h:588:1:
+ MCAST_INCLUDE = 1 // in.h:587:1:
+ MCAST_JOIN_GROUP = 80 // in.h:474:1:
+ MCAST_JOIN_SOURCE_GROUP = 82 // in.h:476:1:
+ MCAST_LEAVE_GROUP = 81 // in.h:475:1:
+ MCAST_LEAVE_SOURCE_GROUP = 83 // in.h:477:1:
+ MCAST_UNBLOCK_SOURCE = 85 // in.h:479:1:
+ MCAST_UNDEFINED = 0 // in.h:586:1:
+ MSG_CTRUNC = 0x20 // socket.h:569:1:
+ MSG_DONTROUTE = 0x4 // socket.h:566:1:
+ MSG_DONTWAIT = 0x80 // socket.h:572:1:
+ MSG_EOF = 0x100 // socket.h:573:1:
+ MSG_EOR = 0x8 // socket.h:567:1:
+ MSG_FLUSH = 0x400 // socket.h:578:1:
+ MSG_HAVEMORE = 0x2000 // socket.h:581:1:
+ MSG_HOLD = 0x800 // socket.h:579:1:
+ MSG_NEEDSA = 0x10000 // socket.h:584:1:
+ MSG_NOSIGNAL = 0x80000 // socket.h:588:1:
+ MSG_OOB = 0x1 // socket.h:564:1:
+ MSG_PEEK = 0x2 // socket.h:565:1:
+ MSG_RCVMORE = 0x4000 // socket.h:582:1:
+ MSG_SEND = 0x1000 // socket.h:580:1:
+ MSG_TRUNC = 0x10 // socket.h:568:1:
+ MSG_WAITALL = 0x40 // socket.h:570:1:
+ MSG_WAITSTREAM = 0x200 // socket.h:576:1:
+ NBBY = 8 // types.h:186:1:
+ NETDB_INTERNAL = -1 // netdb.h:171:1:
+ NETDB_SUCCESS = 0 // netdb.h:172:1:
+ NETSVC_MRKNG_LVL_L2 = 1 // socket.h:287:1:
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2 // socket.h:288:1:
+ NETSVC_MRKNG_LVL_L3L2_BK = 3 // socket.h:289:1:
+ NETSVC_MRKNG_UNKNOWN = 0 // socket.h:286:1:
+ NET_MAXID = 41 // socket.h:512:1:
+ NET_RT_DUMP = 1 // socket.h:525:1:
+ NET_RT_DUMP2 = 7 // socket.h:531:1:
+ NET_RT_FLAGS = 2 // socket.h:526:1:
+ NET_RT_FLAGS_PRIV = 10 // socket.h:536:1:
+ NET_RT_IFLIST = 3 // socket.h:527:1:
+ NET_RT_IFLIST2 = 6 // socket.h:530:1:
+ NET_RT_MAXID = 11 // socket.h:537:1:
+ NET_RT_STAT = 4 // socket.h:528:1:
+ NET_RT_TRASH = 5 // socket.h:529:1:
+ NET_SERVICE_TYPE_AV = 6 // socket.h:280:1:
+ NET_SERVICE_TYPE_BE = 0 // socket.h:274:1:
+ NET_SERVICE_TYPE_BK = 1 // socket.h:275:1:
+ NET_SERVICE_TYPE_OAM = 7 // socket.h:281:1:
+ NET_SERVICE_TYPE_RD = 8 // socket.h:282:1:
+ NET_SERVICE_TYPE_RV = 5 // socket.h:279:1:
+ NET_SERVICE_TYPE_SIG = 2 // socket.h:276:1:
+ NET_SERVICE_TYPE_VI = 3 // socket.h:277:1:
+ NET_SERVICE_TYPE_VO = 4 // socket.h:278:1:
+ NI_DGRAM = 0x00000010 // netdb.h:252:1:
+ NI_MAXHOST = 1025 // netdb.h:241:1:
+ NI_MAXSERV = 32 // netdb.h:242:1:
+ NI_NAMEREQD = 0x00000004 // netdb.h:249:1:
+ NI_NOFQDN = 0x00000001 // netdb.h:247:1:
+ NI_NUMERICHOST = 0x00000002 // netdb.h:248:1:
+ NI_NUMERICSCOPE = 0x00000100 // netdb.h:251:1:
+ NI_NUMERICSERV = 0x00000008 // netdb.h:250:1:
+ NI_WITHSCOPEID = 0x00000020 // netdb.h:254:1:
+ NO_ADDRESS = 4 // netdb.h:179:1:
+ NO_DATA = 4 // netdb.h:177:1:
+ NO_RECOVERY = 3 // netdb.h:176:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ PF_APPLETALK = 16 // socket.h:474:1:
+ PF_CCITT = 10 // socket.h:468:1:
+ PF_CHAOS = 5 // socket.h:462:1:
+ PF_CNT = 21 // socket.h:479:1:
+ PF_COIP = 20 // socket.h:478:1:
+ PF_DATAKIT = 9 // socket.h:467:1:
+ PF_DECnet = 12 // socket.h:470:1:
+ PF_DLI = 13 // socket.h:471:1:
+ PF_ECMA = 8 // socket.h:466:1:
+ PF_HYLINK = 15 // socket.h:473:1:
+ PF_IMPLINK = 3 // socket.h:460:1:
+ PF_INET = 2 // socket.h:459:1:
+ PF_INET6 = 30 // socket.h:487:1:
+ PF_IPX = 23 // socket.h:481:1:
+ PF_ISDN = 28 // socket.h:485:1:
+ PF_ISO = 7 // socket.h:464:1:
+ PF_KEY = 29 // socket.h:486:1:
+ PF_LAT = 14 // socket.h:472:1:
+ PF_LINK = 18 // socket.h:476:1:
+ PF_LOCAL = 1 // socket.h:457:1:
+ PF_MAX = 41 // socket.h:495:1:
+ PF_NATM = 31 // socket.h:488:1:
+ PF_NDRV = 27 // socket.h:484:1:
+ PF_NETBIOS = 33 // socket.h:490:1:
+ PF_NS = 6 // socket.h:463:1:
+ PF_OSI = 7 // socket.h:465:1:
+ PF_PIP = 25 // socket.h:483:1:
+ PF_PPP = 34 // socket.h:491:1:
+ PF_PUP = 4 // socket.h:461:1:
+ PF_RESERVED_36 = 36 // socket.h:492:1:
+ PF_ROUTE = 17 // socket.h:475:1:
+ PF_RTIP = 22 // socket.h:482:1:
+ PF_SIP = 24 // socket.h:480:1:
+ PF_SNA = 11 // socket.h:469:1:
+ PF_SYSTEM = 32 // socket.h:489:1:
+ PF_UNIX = 1 // socket.h:458:1:
+ PF_UNSPEC = 0 // socket.h:456:1:
+ PF_UTUN = 38 // socket.h:493:1:
+ PF_VSOCK = 40 // socket.h:494:1:
+ PF_XTP = 19 // socket.h:477:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ RSIZE_MAX = 9223372036854775807 // stdint.h:658:1:
+ SAE_ASSOCID_ANY = 0 // socket.h:294:1:
+ SAE_CONNID_ANY = 0 // socket.h:298:1:
+ SCM_CREDS = 0x03 // socket.h:674:1:
+ SCM_RIGHTS = 0x01 // socket.h:671:1:
+ SCM_TIMESTAMP = 0x02 // socket.h:673:1:
+ SCM_TIMESTAMP_MONOTONIC = 0x04 // socket.h:675:1:
+ SCOPE_DELIMITER = 37 // netdb.h:259:1:
+ SHUT_RD = 0 // socket.h:683:1:
+ SHUT_RDWR = 2 // socket.h:685:1:
+ SHUT_WR = 1 // socket.h:684:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIN6_LEN = 0 // in6.h:168:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ SOCK_DGRAM = 2 // socket.h:113:1:
+ SOCK_MAXADDRLEN = 255 // socket.h:419:1:
+ SOCK_RAW = 3 // socket.h:114:1:
+ SOCK_RDM = 4 // socket.h:116:1:
+ SOCK_SEQPACKET = 5 // socket.h:118:1:
+ SOCK_STREAM = 1 // socket.h:112:1:
+ SOL_SOCKET = 0xffff // socket.h:352:1:
+ SOMAXCONN = 128 // socket.h:546:1:
+ SONPX_SETOPTSHUT = 0x000000001 // socket.h:342:1:
+ SO_ACCEPTCONN = 0x0002 // socket.h:124:1:
+ SO_BROADCAST = 0x0020 // socket.h:128:1:
+ SO_DEBUG = 0x0001 // socket.h:123:1:
+ SO_DONTROUTE = 0x0010 // socket.h:127:1:
+ SO_DONTTRUNC = 0x2000 // socket.h:143:1:
+ SO_ERROR = 0x1007 // socket.h:161:1:
+ SO_KEEPALIVE = 0x0008 // socket.h:126:1:
+ SO_LABEL = 0x1010 // socket.h:164:1:
+ SO_LINGER = 0x0080 // socket.h:131:1:
+ SO_LINGER_SEC = 0x1080 // socket.h:177:1:
+ SO_NETSVC_MARKING_LEVEL = 0x1119 // socket.h:186:1:
+ SO_NET_SERVICE_TYPE = 0x1116 // socket.h:183:1:
+ SO_NKE = 0x1021 // socket.h:168:1:
+ SO_NOADDRERR = 0x1023 // socket.h:170:1:
+ SO_NOSIGPIPE = 0x1022 // socket.h:169:1:
+ SO_NOTIFYCONFLICT = 0x1026 // socket.h:174:1:
+ SO_NP_EXTENSIONS = 0x1083 // socket.h:179:1:
+ SO_NREAD = 0x1020 // socket.h:167:1:
+ SO_NUMRCVPKT = 0x1112 // socket.h:182:1:
+ SO_NWRITE = 0x1024 // socket.h:171:1:
+ SO_OOBINLINE = 0x0100 // socket.h:135:1:
+ SO_PEERLABEL = 0x1011 // socket.h:165:1:
+ SO_RANDOMPORT = 0x1082 // socket.h:178:1:
+ SO_RCVBUF = 0x1002 // socket.h:156:1:
+ SO_RCVLOWAT = 0x1004 // socket.h:158:1:
+ SO_RCVTIMEO = 0x1006 // socket.h:160:1:
+ SO_REUSEADDR = 0x0004 // socket.h:125:1:
+ SO_REUSEPORT = 0x0200 // socket.h:137:1:
+ SO_REUSESHAREUID = 0x1025 // socket.h:172:1:
+ SO_SNDBUF = 0x1001 // socket.h:155:1:
+ SO_SNDLOWAT = 0x1003 // socket.h:157:1:
+ SO_SNDTIMEO = 0x1005 // socket.h:159:1:
+ SO_TIMESTAMP = 0x0400 // socket.h:138:1:
+ SO_TIMESTAMP_MONOTONIC = 0x0800 // socket.h:139:1:
+ SO_TYPE = 0x1008 // socket.h:162:1:
+ SO_UPCALLCLOSEWAIT = 0x1027 // socket.h:175:1:
+ SO_USELOOPBACK = 0x0040 // socket.h:130:1:
+ SO_WANTMORE = 0x4000 // socket.h:145:1:
+ SO_WANTOOBFLAG = 0x8000 // socket.h:146:1:
+ TRY_AGAIN = 2 // netdb.h:175:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_ARM__PARAM_H_ = 0 // _param.h:6:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__PARAM_H_ = 0 // _param.h:29:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CADDR_T = 0 // _caddr_t.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_FSBLKCNT_T = 0 // _fsblkcnt_t.h:29:1:
+ X_FSFILCNT_T = 0 // _fsfilcnt_t.h:29:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_IN_ADDR_T = 0 // _in_addr_t.h:29:1:
+ X_IN_PORT_T = 0 // _in_port_t.h:29:1:
+ X_KEY_T = 0 // _key_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NETDB_H_ = 0 // netdb.h:84:1:
+ X_NETINET6_IN6_H_ = 0 // in6.h:99:1:
+ X_NETINET_IN_H_ = 0 // in.h:65:1:
+ X_NET_NETKEV_H_ = 0 // net_kev.h:30:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PATH_HEQUIV = "/etc/hosts.equiv" // netdb.h:94:1:
+ X_PATH_HOSTS = "/etc/hosts" // netdb.h:96:1:
+ X_PATH_NETWORKS = "/etc/networks" // netdb.h:97:1:
+ X_PATH_PROTOCOLS = "/etc/protocols" // netdb.h:98:1:
+ X_PATH_SERVICES = "/etc/services" // netdb.h:99:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RSIZE_T = 0 // _rsize_t.h:29:1:
+ X_SA_FAMILY_T = 0 // _sa_family_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SOCKLEN_T = 0 // _socklen_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SS_MAXSIZE = 128 // socket.h:434:1:
+ X_STRUCT_IOVEC = 0 // _iovec_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_SOCKET_H_ = 0 // socket.h:73:1:
+ X_SYS_TYPES_H_ = 0 // types.h:70:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_U_CHAR = 0 // _u_char.h:29:1:
+ X_U_INT = 0 // _u_int.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_U_LONG = 0 // types.h:89:1:
+ X_U_SHORT = 0 // _u_short.h:29:1:
+ Pseudo_AF_HDRCMPLT = 35 // socket.h:400:1:
+ Pseudo_AF_KEY = 29 // socket.h:392:1:
+ Pseudo_AF_PIP = 25 // socket.h:388:1:
+ Pseudo_AF_RTIP = 22 // socket.h:385:1:
+ Pseudo_AF_XTP = 19 // socket.h:382:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// ++Copyright++ 1980, 1983, 1988, 1993
+// -
+// Copyright (c) 1980, 1983, 1988, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// C99 7.18.4 Macros for minimum-width integer constants.
+//
+// The standard requires that integer constant macros be defined for all the
+// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width
+// types are required, the corresponding integer constant macros are defined
+// here. This implementation also defines minimum-width types for every other
+// integer width that the target implements, so corresponding macros are
+// defined below, too.
+//
+// These macros are defined using the same successive-shrinking approach as
+// the type definitions above. It is likewise important that macros are defined
+// in order of decending width.
+//
+// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// C99 7.18.2.1 Limits of exact-width integer types.
+// C99 7.18.2.2 Limits of minimum-width integer types.
+// C99 7.18.2.3 Limits of fastest minimum-width integer types.
+//
+// The presence of limit macros are completely optional in C99. This
+// implementation defines limits for all of the types (exact- and
+// minimum-width) that it defines above, using the limits of the minimum-width
+// type for any types that do not have exact-width representations.
+//
+// As in the type definitions, this section takes an approach of
+// successive-shrinking to determine which limits to use for the standard (8,
+// 16, 32, 64) bit widths when they don't have exact representations. It is
+// therefore important that the definitions be kept in order of decending
+// widths.
+//
+// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// Some utility macros
+
+// C99 7.18.2.4 Limits of integer types capable of holding object pointers.
+// C99 7.18.3 Limits of other integer types.
+
+// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__
+// is enabled.
+
+// C99 7.18.2.5 Limits of greatest-width integer types.
+
+// C99 7.18.3 Limits of other integer types.
+
+// 7.18.4.2 Macros for greatest-width integer constants.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+//===---- stdint.h - Standard header for sized integer types --------------===* *
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+// \*===----------------------------------------------------------------------===
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// PF_ROUTE - Routing table
+//
+// Three additional levels are defined:
+// Fourth: address family, 0 is wildcard
+// Fifth: type of info, defined below
+// Sixth: flag(s) to mask with for NET_RT_FLAGS
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// Header for ancillary data objects in msg_control buffer.
+// Used for additional information with/about a datagram
+// not expressible by flags. The format is a sequence
+// of message elements headed by cmsghdr structures.
+type Cmsghdr = struct {
+ Fcmsg_len Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1987, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:507:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:517:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:527:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:537:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:542:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:555:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1. Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2. Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:618:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the project nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:152:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the project nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:158:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:170:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:541:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:549:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:557:1 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:112:1 */
+
+// Assumption here is that a network number
+// fits in an unsigned long -- probably a poor one.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:127:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:134:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:141:1 */
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:147:1 */
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:159:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go
new file mode 100644
index 0000000000..b46f3a4423
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netinet/in/in_darwin_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go
new file mode 100644
index 0000000000..4f284bc6fe
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go
@@ -0,0 +1,5815 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netinet/in/in_darwin_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16 // socket.h:379:1:
+ AF_CCITT = 10 // socket.h:373:1:
+ AF_CHAOS = 5 // socket.h:367:1:
+ AF_CNT = 21 // socket.h:384:1:
+ AF_COIP = 20 // socket.h:383:1:
+ AF_DATAKIT = 9 // socket.h:372:1:
+ AF_DECnet = 12 // socket.h:375:1:
+ AF_DLI = 13 // socket.h:376:1:
+ AF_E164 = 28 // socket.h:391:1:
+ AF_ECMA = 8 // socket.h:371:1:
+ AF_HYLINK = 15 // socket.h:378:1:
+ AF_IEEE80211 = 37 // socket.h:403:1:
+ AF_IMPLINK = 3 // socket.h:365:1:
+ AF_INET = 2 // socket.h:363:1:
+ AF_INET6 = 30 // socket.h:394:1:
+ AF_IPX = 23 // socket.h:386:1:
+ AF_ISDN = 28 // socket.h:390:1:
+ AF_ISO = 7 // socket.h:369:1:
+ AF_LAT = 14 // socket.h:377:1:
+ AF_LINK = 18 // socket.h:381:1:
+ AF_LOCAL = 1 // socket.h:361:1:
+ AF_MAX = 41 // socket.h:406:1:
+ AF_NATM = 31 // socket.h:396:1:
+ AF_NDRV = 27 // socket.h:389:1:
+ AF_NETBIOS = 33 // socket.h:398:1:
+ AF_NS = 6 // socket.h:368:1:
+ AF_OSI = 7 // socket.h:370:1:
+ AF_PPP = 34 // socket.h:399:1:
+ AF_PUP = 4 // socket.h:366:1:
+ AF_RESERVED_36 = 36 // socket.h:402:1:
+ AF_ROUTE = 17 // socket.h:380:1:
+ AF_SIP = 24 // socket.h:387:1:
+ AF_SNA = 11 // socket.h:374:1:
+ AF_SYSTEM = 32 // socket.h:397:1:
+ AF_UNIX = 1 // socket.h:359:1:
+ AF_UNSPEC = 0 // socket.h:358:1:
+ AF_UTUN = 38 // socket.h:404:1:
+ AF_VSOCK = 40 // socket.h:405:1:
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ CONNECT_DATA_AUTHENTICATED = 0x4 // socket.h:304:1:
+ CONNECT_DATA_IDEMPOTENT = 0x2 // socket.h:303:1:
+ CONNECT_RESUME_ON_READ_WRITE = 0x1 // socket.h:302:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ ICMP6_FILTER = 18 // in6.h:394:1:
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50 // in6.h:629:1:
+ INADDR_NONE = 0xffffffff // in.h:342:1:
+ INET6_ADDRSTRLEN = 46 // in6.h:162:1:
+ INET_ADDRSTRLEN = 16 // in.h:388:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ IN_CLASSA_HOST = 0x00ffffff // in.h:317:1:
+ IN_CLASSA_MAX = 128 // in.h:318:1:
+ IN_CLASSA_NET = 0xff000000 // in.h:315:1:
+ IN_CLASSA_NSHIFT = 24 // in.h:316:1:
+ IN_CLASSB_HOST = 0x0000ffff // in.h:323:1:
+ IN_CLASSB_MAX = 65536 // in.h:324:1:
+ IN_CLASSB_NET = 0xffff0000 // in.h:321:1:
+ IN_CLASSB_NSHIFT = 16 // in.h:322:1:
+ IN_CLASSC_HOST = 0x000000ff // in.h:329:1:
+ IN_CLASSC_NET = 0xffffff00 // in.h:327:1:
+ IN_CLASSC_NSHIFT = 8 // in.h:328:1:
+ IN_CLASSD_HOST = 0x0fffffff // in.h:334:1:
+ IN_CLASSD_NET = 0xf0000000 // in.h:332:1:
+ IN_CLASSD_NSHIFT = 28 // in.h:333:1:
+ IN_LOOPBACKNET = 127 // in.h:369:1:
+ IPCTL_ACCEPTSOURCEROUTE = 13 // in.h:650:1:
+ IPCTL_DEFTTL = 3 // in.h:638:1:
+ IPCTL_DIRECTEDBROADCAST = 9 // in.h:646:1:
+ IPCTL_FASTFORWARDING = 14 // in.h:651:1:
+ IPCTL_FORWARDING = 1 // in.h:636:1:
+ IPCTL_GIF_TTL = 16 // in.h:653:1:
+ IPCTL_INTRQDROPS = 11 // in.h:648:1:
+ IPCTL_INTRQMAXLEN = 10 // in.h:647:1:
+ IPCTL_KEEPFAITH = 15 // in.h:652:1:
+ IPCTL_MAXID = 17 // in.h:654:1:
+ IPCTL_RTEXPIRE = 5 // in.h:642:1:
+ IPCTL_RTMAXCACHE = 7 // in.h:644:1:
+ IPCTL_RTMINEXPIRE = 6 // in.h:643:1:
+ IPCTL_SENDREDIRECTS = 2 // in.h:637:1:
+ IPCTL_SOURCEROUTE = 8 // in.h:645:1:
+ IPCTL_STATS = 12 // in.h:649:1:
+ IPPORT_HIFIRSTAUTO = 49152 // in.h:286:1:
+ IPPORT_HILASTAUTO = 65535 // in.h:287:1:
+ IPPORT_RESERVED = 1024 // in.h:279:1:
+ IPPORT_RESERVEDSTART = 600 // in.h:295:1:
+ IPPORT_USERRESERVED = 5000 // in.h:281:1:
+ IPPROTO_3PC = 34 // in.h:139:1:
+ IPPROTO_ADFS = 68 // in.h:173:1:
+ IPPROTO_AH = 51 // in.h:158:1:
+ IPPROTO_AHIP = 61 // in.h:166:1:
+ IPPROTO_APES = 99 // in.h:204:1:
+ IPPROTO_ARGUS = 13 // in.h:116:1:
+ IPPROTO_AX25 = 93 // in.h:198:1:
+ IPPROTO_BHA = 49 // in.h:156:1:
+ IPPROTO_BLT = 30 // in.h:135:1:
+ IPPROTO_BRSATMON = 76 // in.h:181:1:
+ IPPROTO_CFTP = 62 // in.h:167:1:
+ IPPROTO_CHAOS = 16 // in.h:119:1:
+ IPPROTO_CMTP = 38 // in.h:143:1:
+ IPPROTO_CPHB = 73 // in.h:178:1:
+ IPPROTO_CPNX = 72 // in.h:177:1:
+ IPPROTO_DDP = 37 // in.h:142:1:
+ IPPROTO_DGP = 86 // in.h:191:1:
+ IPPROTO_DIVERT = 254 // in.h:213:1:
+ IPPROTO_DONE = 257 // in.h:221:1:
+ IPPROTO_DSTOPTS = 60 // in.h:165:1:
+ IPPROTO_EGP = 8 // in.h:111:1:
+ IPPROTO_EMCON = 14 // in.h:117:1:
+ IPPROTO_ENCAP = 98 // in.h:203:1:
+ IPPROTO_EON = 80 // in.h:185:1:
+ IPPROTO_ESP = 50 // in.h:157:1:
+ IPPROTO_ETHERIP = 97 // in.h:202:1:
+ IPPROTO_FRAGMENT = 44 // in.h:151:1:
+ IPPROTO_GGP = 3 // in.h:104:1:
+ IPPROTO_GMTP = 100 // in.h:205:1:
+ IPPROTO_GRE = 47 // in.h:154:1:
+ IPPROTO_HELLO = 63 // in.h:168:1:
+ IPPROTO_HMP = 20 // in.h:125:1:
+ IPPROTO_HOPOPTS = 0 // in.h:99:1:
+ IPPROTO_ICMP = 1 // in.h:101:1:
+ IPPROTO_ICMPV6 = 58 // in.h:163:1:
+ IPPROTO_IDP = 22 // in.h:127:1:
+ IPPROTO_IDPR = 35 // in.h:140:1:
+ IPPROTO_IDRP = 45 // in.h:152:1:
+ IPPROTO_IGMP = 2 // in.h:103:1:
+ IPPROTO_IGP = 85 // in.h:190:1:
+ IPPROTO_IGRP = 88 // in.h:193:1:
+ IPPROTO_IL = 40 // in.h:145:1:
+ IPPROTO_INLSP = 52 // in.h:159:1:
+ IPPROTO_INP = 32 // in.h:137:1:
+ IPPROTO_IP = 0 // in.h:97:1:
+ IPPROTO_IPCOMP = 108 // in.h:208:1:
+ IPPROTO_IPCV = 71 // in.h:176:1:
+ IPPROTO_IPEIP = 94 // in.h:199:1:
+ IPPROTO_IPIP = 4 // in.h:106:1:
+ IPPROTO_IPPC = 67 // in.h:172:1:
+ IPPROTO_IPV4 = 4 // in.h:105:1:
+ IPPROTO_IPV6 = 41 // in.h:147:1:
+ IPPROTO_IRTP = 28 // in.h:133:1:
+ IPPROTO_KRYPTOLAN = 65 // in.h:170:1:
+ IPPROTO_LARP = 91 // in.h:196:1:
+ IPPROTO_LEAF1 = 25 // in.h:130:1:
+ IPPROTO_LEAF2 = 26 // in.h:131:1:
+ IPPROTO_MAX = 256 // in.h:218:1:
+ IPPROTO_MAXID = 52 // in.h:630:1:
+ IPPROTO_MEAS = 19 // in.h:124:1:
+ IPPROTO_MHRP = 48 // in.h:155:1:
+ IPPROTO_MICP = 95 // in.h:200:1:
+ IPPROTO_MTP = 92 // in.h:197:1:
+ IPPROTO_MUX = 18 // in.h:123:1:
+ IPPROTO_ND = 77 // in.h:182:1:
+ IPPROTO_NHRP = 54 // in.h:161:1:
+ IPPROTO_NONE = 59 // in.h:164:1:
+ IPPROTO_NSP = 31 // in.h:136:1:
+ IPPROTO_NVPII = 11 // in.h:114:1:
+ IPPROTO_OSPFIGP = 89 // in.h:194:1:
+ IPPROTO_PGM = 113 // in.h:209:1:
+ IPPROTO_PIGP = 9 // in.h:112:1:
+ IPPROTO_PIM = 103 // in.h:207:1:
+ IPPROTO_PRM = 21 // in.h:126:1:
+ IPPROTO_PUP = 12 // in.h:115:1:
+ IPPROTO_PVP = 75 // in.h:180:1:
+ IPPROTO_RAW = 255 // in.h:215:1:
+ IPPROTO_RCCMON = 10 // in.h:113:1:
+ IPPROTO_RDP = 27 // in.h:132:1:
+ IPPROTO_ROUTING = 43 // in.h:150:1:
+ IPPROTO_RSVP = 46 // in.h:153:1:
+ IPPROTO_RVD = 66 // in.h:171:1:
+ IPPROTO_SATEXPAK = 64 // in.h:169:1:
+ IPPROTO_SATMON = 69 // in.h:174:1:
+ IPPROTO_SCCSP = 96 // in.h:201:1:
+ IPPROTO_SCTP = 132 // in.h:210:1:
+ IPPROTO_SDRP = 42 // in.h:149:1:
+ IPPROTO_SEP = 33 // in.h:138:1:
+ IPPROTO_SRPC = 90 // in.h:195:1:
+ IPPROTO_ST = 7 // in.h:110:1:
+ IPPROTO_SVMTP = 82 // in.h:187:1:
+ IPPROTO_SWIPE = 53 // in.h:160:1:
+ IPPROTO_TCF = 87 // in.h:192:1:
+ IPPROTO_TCP = 6 // in.h:108:1:
+ IPPROTO_TP = 29 // in.h:134:1:
+ IPPROTO_TPXX = 39 // in.h:144:1:
+ IPPROTO_TRUNK1 = 23 // in.h:128:1:
+ IPPROTO_TRUNK2 = 24 // in.h:129:1:
+ IPPROTO_TTP = 84 // in.h:189:1:
+ IPPROTO_UDP = 17 // in.h:121:1:
+ IPPROTO_VINES = 83 // in.h:188:1:
+ IPPROTO_VISA = 70 // in.h:175:1:
+ IPPROTO_VMTP = 81 // in.h:186:1:
+ IPPROTO_WBEXPAK = 79 // in.h:184:1:
+ IPPROTO_WBMON = 78 // in.h:183:1:
+ IPPROTO_WSN = 74 // in.h:179:1:
+ IPPROTO_XNET = 15 // in.h:118:1:
+ IPPROTO_XTP = 36 // in.h:141:1:
+ IPV6CTL_ACCEPT_RTADV = 12 // in6.h:594:1:
+ IPV6CTL_ADDRCTLPOLICY = 38 // in6.h:619:1:
+ IPV6CTL_AUTO_FLOWLABEL = 17 // in6.h:599:1:
+ IPV6CTL_AUTO_LINKLOCAL = 35 // in6.h:616:1:
+ IPV6CTL_DAD_COUNT = 16 // in6.h:598:1:
+ IPV6CTL_DEFHLIM = 3 // in6.h:583:1:
+ IPV6CTL_DEFMCASTHLIM = 18 // in6.h:600:1:
+ IPV6CTL_FORWARDING = 1 // in6.h:581:1:
+ IPV6CTL_FORWSRCRT = 5 // in6.h:587:1:
+ IPV6CTL_GIF_HLIM = 19 // in6.h:601:1:
+ IPV6CTL_HDRNESTLIMIT = 15 // in6.h:597:1:
+ IPV6CTL_KAME_VERSION = 20 // in6.h:602:1:
+ IPV6CTL_KEEPFAITH = 13 // in6.h:595:1:
+ IPV6CTL_LOG_INTERVAL = 14 // in6.h:596:1:
+ IPV6CTL_MAXDYNROUTES = 49 // in6.h:628:1:
+ IPV6CTL_MAXFRAGPACKETS = 9 // in6.h:591:1:
+ IPV6CTL_MAXFRAGS = 41 // in6.h:622:1:
+ IPV6CTL_MAXID = 51 // in6.h:635:1:
+ IPV6CTL_MAXIFDEFROUTERS = 48 // in6.h:627:1:
+ IPV6CTL_MAXIFPREFIXES = 47 // in6.h:626:1:
+ IPV6CTL_MCAST_PMTU = 44 // in6.h:623:1:
+ IPV6CTL_MRTPROTO = 8 // in6.h:590:1:
+ IPV6CTL_MRTSTATS = 7 // in6.h:589:1:
+ IPV6CTL_NEIGHBORGCTHRESH = 46 // in6.h:625:1:
+ IPV6CTL_PREFER_TEMPADDR = 37 // in6.h:618:1:
+ IPV6CTL_RIP6STATS = 36 // in6.h:617:1:
+ IPV6CTL_RR_PRUNE = 22 // in6.h:604:1:
+ IPV6CTL_RTEXPIRE = 25 // in6.h:609:1:
+ IPV6CTL_RTMAXCACHE = 27 // in6.h:611:1:
+ IPV6CTL_RTMINEXPIRE = 26 // in6.h:610:1:
+ IPV6CTL_SENDREDIRECTS = 2 // in6.h:582:1:
+ IPV6CTL_SOURCECHECK = 10 // in6.h:592:1:
+ IPV6CTL_SOURCECHECK_LOGINT = 11 // in6.h:593:1:
+ IPV6CTL_STATS = 6 // in6.h:588:1:
+ IPV6CTL_TEMPPLTIME = 33 // in6.h:614:1:
+ IPV6CTL_TEMPVLTIME = 34 // in6.h:615:1:
+ IPV6CTL_ULA_USETEMPADDR = 51 // in6.h:630:1:
+ IPV6CTL_USETEMPADDR = 32 // in6.h:613:1:
+ IPV6CTL_USE_DEFAULTZONE = 39 // in6.h:620:1:
+ IPV6CTL_USE_DEPRECATED = 21 // in6.h:603:1:
+ IPV6CTL_V6ONLY = 24 // in6.h:608:1:
+ IPV6PORT_ANONMAX = 65535 // in6.h:144:1:
+ IPV6PORT_ANONMIN = 49152 // in6.h:143:1:
+ IPV6PORT_RESERVED = 1024 // in6.h:142:1:
+ IPV6PORT_RESERVEDMAX = 1023 // in6.h:146:1:
+ IPV6PORT_RESERVEDMIN = 600 // in6.h:145:1:
+ IPV6PROTO_MAXID = 104 // in6.h:576:1:
+ IPV6_2292DSTOPTS = 23 // in6.h:399:1:
+ IPV6_2292HOPLIMIT = 20 // in6.h:396:1:
+ IPV6_2292HOPOPTS = 22 // in6.h:398:1:
+ IPV6_2292NEXTHOP = 21 // in6.h:397:1:
+ IPV6_2292PKTINFO = 19 // in6.h:395:1:
+ IPV6_2292PKTOPTIONS = 25 // in6.h:403:1:
+ IPV6_2292RTHDR = 24 // in6.h:400:1:
+ IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 // in6.h:306:1:
+ IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 // in6.h:305:1:
+ IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 48 // in6.h:307:1:
+ IPV6_BINDV6ONLY = 27 // in6.h:419:1:
+ IPV6_BOUND_IF = 125 // in6.h:508:1:
+ IPV6_CHECKSUM = 26 // in6.h:415:1:
+ IPV6_DEFAULT_MULTICAST_HOPS = 1 // in6.h:520:1:
+ IPV6_DEFAULT_MULTICAST_LOOP = 1 // in6.h:521:1:
+ IPV6_FAITH = 29 // in6.h:425:1:
+ IPV6_FW_ADD = 30 // in6.h:428:1:
+ IPV6_FW_DEL = 31 // in6.h:429:1:
+ IPV6_FW_FLUSH = 32 // in6.h:430:1:
+ IPV6_FW_GET = 34 // in6.h:432:1:
+ IPV6_FW_ZERO = 33 // in6.h:431:1:
+ IPV6_IPSEC_POLICY = 28 // in6.h:423:1:
+ IPV6_JOIN_GROUP = 12 // in6.h:389:1:
+ IPV6_LEAVE_GROUP = 13 // in6.h:390:1:
+ IPV6_MAX_GROUP_SRC_FILTER = 512 // in6.h:535:1:
+ IPV6_MAX_MEMBERSHIPS = 4095 // in6.h:529:1:
+ IPV6_MAX_SOCK_SRC_FILTER = 128 // in6.h:536:1:
+ IPV6_MIN_MEMBERSHIPS = 31 // in6.h:528:1:
+ IPV6_MULTICAST_HOPS = 10 // in6.h:387:1:
+ IPV6_MULTICAST_IF = 9 // in6.h:386:1:
+ IPV6_MULTICAST_LOOP = 11 // in6.h:388:1:
+ IPV6_PORTRANGE = 14 // in6.h:393:1:
+ IPV6_PORTRANGE_DEFAULT = 0 // in6.h:566:1:
+ IPV6_PORTRANGE_HIGH = 1 // in6.h:567:1:
+ IPV6_PORTRANGE_LOW = 2 // in6.h:568:1:
+ IPV6_RECVTCLASS = 35 // in6.h:440:1:
+ IPV6_RTHDR_LOOSE = 0 // in6.h:513:1:
+ IPV6_RTHDR_STRICT = 1 // in6.h:514:1:
+ IPV6_RTHDR_TYPE_0 = 0 // in6.h:515:1:
+ IPV6_SOCKOPT_RESERVED1 = 3 // in6.h:383:1:
+ IPV6_TCLASS = 36 // in6.h:441:1:
+ IPV6_UNICAST_HOPS = 4 // in6.h:385:1:
+ IPV6_V6ONLY = 27 // in6.h:417:1:
+ IP_ADD_MEMBERSHIP = 12 // in.h:418:1:
+ IP_ADD_SOURCE_MEMBERSHIP = 70 // in.h:465:1:
+ IP_BLOCK_SOURCE = 72 // in.h:467:1:
+ IP_BOUND_IF = 25 // in.h:434:1:
+ IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:486:1:
+ IP_DEFAULT_MULTICAST_TTL = 1 // in.h:485:1:
+ IP_DONTFRAG = 28 // in.h:438:1:
+ IP_DROP_MEMBERSHIP = 13 // in.h:419:1:
+ IP_DROP_SOURCE_MEMBERSHIP = 71 // in.h:466:1:
+ IP_DUMMYNET_CONFIGURE = 60 // in.h:456:1:
+ IP_DUMMYNET_DEL = 61 // in.h:457:1:
+ IP_DUMMYNET_FLUSH = 62 // in.h:458:1:
+ IP_DUMMYNET_GET = 64 // in.h:459:1:
+ IP_FAITH = 22 // in.h:429:1:
+ IP_FW_ADD = 40 // in.h:440:1:
+ IP_FW_DEL = 41 // in.h:441:1:
+ IP_FW_FLUSH = 42 // in.h:442:1:
+ IP_FW_GET = 44 // in.h:444:1:
+ IP_FW_RESETLOG = 45 // in.h:445:1:
+ IP_FW_ZERO = 43 // in.h:443:1:
+ IP_HDRINCL = 2 // in.h:408:1:
+ IP_IPSEC_POLICY = 21 // in.h:428:1:
+ IP_MAX_GROUP_SRC_FILTER = 512 // in.h:500:1:
+ IP_MAX_MEMBERSHIPS = 4095 // in.h:494:1:
+ IP_MAX_SOCK_MUTE_FILTER = 128 // in.h:502:1:
+ IP_MAX_SOCK_SRC_FILTER = 128 // in.h:501:1:
+ IP_MIN_MEMBERSHIPS = 31 // in.h:493:1:
+ IP_MSFILTER = 74 // in.h:471:1:
+ IP_MULTICAST_IF = 9 // in.h:415:1:
+ IP_MULTICAST_IFINDEX = 66 // in.h:462:1:
+ IP_MULTICAST_LOOP = 11 // in.h:417:1:
+ IP_MULTICAST_TTL = 10 // in.h:416:1:
+ IP_MULTICAST_VIF = 14 // in.h:420:1:
+ IP_NAT__XXX = 55 // in.h:453:1:
+ IP_OLD_FW_ADD = 50 // in.h:448:1:
+ IP_OLD_FW_DEL = 51 // in.h:449:1:
+ IP_OLD_FW_FLUSH = 52 // in.h:450:1:
+ IP_OLD_FW_GET = 54 // in.h:452:1:
+ IP_OLD_FW_RESETLOG = 56 // in.h:454:1:
+ IP_OLD_FW_ZERO = 53 // in.h:451:1:
+ IP_OPTIONS = 1 // in.h:407:1:
+ IP_PKTINFO = 26 // in.h:435:1:
+ IP_PORTRANGE = 19 // in.h:425:1:
+ IP_PORTRANGE_DEFAULT = 0 // in.h:594:1:
+ IP_PORTRANGE_HIGH = 1 // in.h:595:1:
+ IP_PORTRANGE_LOW = 2 // in.h:596:1:
+ IP_RECVDSTADDR = 7 // in.h:413:1:
+ IP_RECVIF = 20 // in.h:426:1:
+ IP_RECVOPTS = 5 // in.h:411:1:
+ IP_RECVPKTINFO = 26 // in.h:436:1:
+ IP_RECVRETOPTS = 6 // in.h:412:1:
+ IP_RECVTOS = 27 // in.h:437:1:
+ IP_RECVTTL = 24 // in.h:433:1:
+ IP_RETOPTS = 8 // in.h:414:1:
+ IP_RSVP_OFF = 16 // in.h:422:1:
+ IP_RSVP_ON = 15 // in.h:421:1:
+ IP_RSVP_VIF_OFF = 18 // in.h:424:1:
+ IP_RSVP_VIF_ON = 17 // in.h:423:1:
+ IP_STRIPHDR = 23 // in.h:431:1:
+ IP_TOS = 3 // in.h:409:1:
+ IP_TRAFFIC_MGT_BACKGROUND = 65 // in.h:461:1:
+ IP_TTL = 4 // in.h:410:1:
+ IP_UNBLOCK_SOURCE = 73 // in.h:468:1:
+ KEV_DL_ADDMULTI = 7 // net_kev.h:61:1:
+ KEV_DL_AWDL_RESTRICTED = 26 // net_kev.h:80:1:
+ KEV_DL_AWDL_UNRESTRICTED = 27 // net_kev.h:81:1:
+ KEV_DL_DELMULTI = 8 // net_kev.h:62:1:
+ KEV_DL_IFCAP_CHANGED = 19 // net_kev.h:73:1:
+ KEV_DL_IFDELEGATE_CHANGED = 25 // net_kev.h:79:1:
+ KEV_DL_IF_ATTACHED = 9 // net_kev.h:63:1:
+ KEV_DL_IF_DETACHED = 11 // net_kev.h:65:1:
+ KEV_DL_IF_DETACHING = 10 // net_kev.h:64:1:
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18 // net_kev.h:72:1:
+ KEV_DL_ISSUES = 24 // net_kev.h:78:1:
+ KEV_DL_LINK_ADDRESS_CHANGED = 16 // net_kev.h:70:1:
+ KEV_DL_LINK_OFF = 12 // net_kev.h:66:1:
+ KEV_DL_LINK_ON = 13 // net_kev.h:67:1:
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20 // net_kev.h:74:1:
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30 // net_kev.h:84:1:
+ KEV_DL_NODE_ABSENCE = 22 // net_kev.h:76:1:
+ KEV_DL_NODE_PRESENCE = 21 // net_kev.h:75:1:
+ KEV_DL_PRIMARY_ELECTED = 23 // net_kev.h:77:1:
+ KEV_DL_PROTO_ATTACHED = 14 // net_kev.h:68:1:
+ KEV_DL_PROTO_DETACHED = 15 // net_kev.h:69:1:
+ KEV_DL_QOS_MODE_CHANGED = 29 // net_kev.h:83:1:
+ KEV_DL_RRC_STATE_CHANGED = 28 // net_kev.h:82:1:
+ KEV_DL_SIFFLAGS = 1 // net_kev.h:55:1:
+ KEV_DL_SIFGENERIC = 6 // net_kev.h:60:1:
+ KEV_DL_SIFMEDIA = 5 // net_kev.h:59:1:
+ KEV_DL_SIFMETRICS = 2 // net_kev.h:56:1:
+ KEV_DL_SIFMTU = 3 // net_kev.h:57:1:
+ KEV_DL_SIFPHYS = 4 // net_kev.h:58:1:
+ KEV_DL_SUBCLASS = 2 // net_kev.h:50:1:
+ KEV_DL_WAKEFLAGS_CHANGED = 17 // net_kev.h:71:1:
+ KEV_INET6_ADDR_DELETED = 3 // net_kev.h:93:1:
+ KEV_INET6_CHANGED_ADDR = 2 // net_kev.h:92:1:
+ KEV_INET6_DEFROUTER = 6 // net_kev.h:96:1:
+ KEV_INET6_NEW_LL_ADDR = 4 // net_kev.h:94:1:
+ KEV_INET6_NEW_RTADV_ADDR = 5 // net_kev.h:95:1:
+ KEV_INET6_NEW_USER_ADDR = 1 // net_kev.h:91:1:
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7 // net_kev.h:97:1:
+ KEV_INET6_SUBCLASS = 6 // net_kev.h:89:1:
+ KEV_INET_ADDR_DELETED = 3 // net_kev.h:39:1:
+ KEV_INET_ARPCOLLISION = 7 // net_kev.h:43:1:
+ KEV_INET_ARPRTRALIVE = 10 // net_kev.h:48:1:
+ KEV_INET_ARPRTRFAILURE = 9 // net_kev.h:47:1:
+ KEV_INET_CHANGED_ADDR = 2 // net_kev.h:38:1:
+ KEV_INET_NEW_ADDR = 1 // net_kev.h:37:1:
+ KEV_INET_PORTINUSE = 8 // net_kev.h:45:1:
+ KEV_INET_SIFBRDADDR = 5 // net_kev.h:41:1:
+ KEV_INET_SIFDSTADDR = 4 // net_kev.h:40:1:
+ KEV_INET_SIFNETMASK = 6 // net_kev.h:42:1:
+ KEV_INET_SUBCLASS = 1 // net_kev.h:35:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ MCAST_BLOCK_SOURCE = 84 // in.h:478:1:
+ MCAST_EXCLUDE = 2 // in.h:588:1:
+ MCAST_INCLUDE = 1 // in.h:587:1:
+ MCAST_JOIN_GROUP = 80 // in.h:474:1:
+ MCAST_JOIN_SOURCE_GROUP = 82 // in.h:476:1:
+ MCAST_LEAVE_GROUP = 81 // in.h:475:1:
+ MCAST_LEAVE_SOURCE_GROUP = 83 // in.h:477:1:
+ MCAST_UNBLOCK_SOURCE = 85 // in.h:479:1:
+ MCAST_UNDEFINED = 0 // in.h:586:1:
+ MSG_CTRUNC = 0x20 // socket.h:569:1:
+ MSG_DONTROUTE = 0x4 // socket.h:566:1:
+ MSG_DONTWAIT = 0x80 // socket.h:572:1:
+ MSG_EOF = 0x100 // socket.h:573:1:
+ MSG_EOR = 0x8 // socket.h:567:1:
+ MSG_FLUSH = 0x400 // socket.h:578:1:
+ MSG_HAVEMORE = 0x2000 // socket.h:581:1:
+ MSG_HOLD = 0x800 // socket.h:579:1:
+ MSG_NEEDSA = 0x10000 // socket.h:584:1:
+ MSG_NOSIGNAL = 0x80000 // socket.h:588:1:
+ MSG_OOB = 0x1 // socket.h:564:1:
+ MSG_PEEK = 0x2 // socket.h:565:1:
+ MSG_RCVMORE = 0x4000 // socket.h:582:1:
+ MSG_SEND = 0x1000 // socket.h:580:1:
+ MSG_TRUNC = 0x10 // socket.h:568:1:
+ MSG_WAITALL = 0x40 // socket.h:570:1:
+ MSG_WAITSTREAM = 0x200 // socket.h:576:1:
+ NBBY = 8 // types.h:186:1:
+ NETSVC_MRKNG_LVL_L2 = 1 // socket.h:287:1:
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2 // socket.h:288:1:
+ NETSVC_MRKNG_LVL_L3L2_BK = 3 // socket.h:289:1:
+ NETSVC_MRKNG_UNKNOWN = 0 // socket.h:286:1:
+ NET_MAXID = 41 // socket.h:512:1:
+ NET_RT_DUMP = 1 // socket.h:525:1:
+ NET_RT_DUMP2 = 7 // socket.h:531:1:
+ NET_RT_FLAGS = 2 // socket.h:526:1:
+ NET_RT_FLAGS_PRIV = 10 // socket.h:536:1:
+ NET_RT_IFLIST = 3 // socket.h:527:1:
+ NET_RT_IFLIST2 = 6 // socket.h:530:1:
+ NET_RT_MAXID = 11 // socket.h:537:1:
+ NET_RT_STAT = 4 // socket.h:528:1:
+ NET_RT_TRASH = 5 // socket.h:529:1:
+ NET_SERVICE_TYPE_AV = 6 // socket.h:280:1:
+ NET_SERVICE_TYPE_BE = 0 // socket.h:274:1:
+ NET_SERVICE_TYPE_BK = 1 // socket.h:275:1:
+ NET_SERVICE_TYPE_OAM = 7 // socket.h:281:1:
+ NET_SERVICE_TYPE_RD = 8 // socket.h:282:1:
+ NET_SERVICE_TYPE_RV = 5 // socket.h:279:1:
+ NET_SERVICE_TYPE_SIG = 2 // socket.h:276:1:
+ NET_SERVICE_TYPE_VI = 3 // socket.h:277:1:
+ NET_SERVICE_TYPE_VO = 4 // socket.h:278:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ PF_APPLETALK = 16 // socket.h:474:1:
+ PF_CCITT = 10 // socket.h:468:1:
+ PF_CHAOS = 5 // socket.h:462:1:
+ PF_CNT = 21 // socket.h:479:1:
+ PF_COIP = 20 // socket.h:478:1:
+ PF_DATAKIT = 9 // socket.h:467:1:
+ PF_DECnet = 12 // socket.h:470:1:
+ PF_DLI = 13 // socket.h:471:1:
+ PF_ECMA = 8 // socket.h:466:1:
+ PF_HYLINK = 15 // socket.h:473:1:
+ PF_IMPLINK = 3 // socket.h:460:1:
+ PF_INET = 2 // socket.h:459:1:
+ PF_INET6 = 30 // socket.h:487:1:
+ PF_IPX = 23 // socket.h:481:1:
+ PF_ISDN = 28 // socket.h:485:1:
+ PF_ISO = 7 // socket.h:464:1:
+ PF_KEY = 29 // socket.h:486:1:
+ PF_LAT = 14 // socket.h:472:1:
+ PF_LINK = 18 // socket.h:476:1:
+ PF_LOCAL = 1 // socket.h:457:1:
+ PF_MAX = 41 // socket.h:495:1:
+ PF_NATM = 31 // socket.h:488:1:
+ PF_NDRV = 27 // socket.h:484:1:
+ PF_NETBIOS = 33 // socket.h:490:1:
+ PF_NS = 6 // socket.h:463:1:
+ PF_OSI = 7 // socket.h:465:1:
+ PF_PIP = 25 // socket.h:483:1:
+ PF_PPP = 34 // socket.h:491:1:
+ PF_PUP = 4 // socket.h:461:1:
+ PF_RESERVED_36 = 36 // socket.h:492:1:
+ PF_ROUTE = 17 // socket.h:475:1:
+ PF_RTIP = 22 // socket.h:482:1:
+ PF_SIP = 24 // socket.h:480:1:
+ PF_SNA = 11 // socket.h:469:1:
+ PF_SYSTEM = 32 // socket.h:489:1:
+ PF_UNIX = 1 // socket.h:458:1:
+ PF_UNSPEC = 0 // socket.h:456:1:
+ PF_UTUN = 38 // socket.h:493:1:
+ PF_VSOCK = 40 // socket.h:494:1:
+ PF_XTP = 19 // socket.h:477:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ SAE_ASSOCID_ANY = 0 // socket.h:294:1:
+ SAE_CONNID_ANY = 0 // socket.h:298:1:
+ SCM_CREDS = 0x03 // socket.h:674:1:
+ SCM_RIGHTS = 0x01 // socket.h:671:1:
+ SCM_TIMESTAMP = 0x02 // socket.h:673:1:
+ SCM_TIMESTAMP_MONOTONIC = 0x04 // socket.h:675:1:
+ SHUT_RD = 0 // socket.h:683:1:
+ SHUT_RDWR = 2 // socket.h:685:1:
+ SHUT_WR = 1 // socket.h:684:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIN6_LEN = 0 // in6.h:168:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ SOCK_DGRAM = 2 // socket.h:113:1:
+ SOCK_MAXADDRLEN = 255 // socket.h:419:1:
+ SOCK_RAW = 3 // socket.h:114:1:
+ SOCK_RDM = 4 // socket.h:116:1:
+ SOCK_SEQPACKET = 5 // socket.h:118:1:
+ SOCK_STREAM = 1 // socket.h:112:1:
+ SOL_SOCKET = 0xffff // socket.h:352:1:
+ SOMAXCONN = 128 // socket.h:546:1:
+ SONPX_SETOPTSHUT = 0x000000001 // socket.h:342:1:
+ SO_ACCEPTCONN = 0x0002 // socket.h:124:1:
+ SO_BROADCAST = 0x0020 // socket.h:128:1:
+ SO_DEBUG = 0x0001 // socket.h:123:1:
+ SO_DONTROUTE = 0x0010 // socket.h:127:1:
+ SO_DONTTRUNC = 0x2000 // socket.h:143:1:
+ SO_ERROR = 0x1007 // socket.h:161:1:
+ SO_KEEPALIVE = 0x0008 // socket.h:126:1:
+ SO_LABEL = 0x1010 // socket.h:164:1:
+ SO_LINGER = 0x0080 // socket.h:131:1:
+ SO_LINGER_SEC = 0x1080 // socket.h:177:1:
+ SO_NETSVC_MARKING_LEVEL = 0x1119 // socket.h:186:1:
+ SO_NET_SERVICE_TYPE = 0x1116 // socket.h:183:1:
+ SO_NKE = 0x1021 // socket.h:168:1:
+ SO_NOADDRERR = 0x1023 // socket.h:170:1:
+ SO_NOSIGPIPE = 0x1022 // socket.h:169:1:
+ SO_NOTIFYCONFLICT = 0x1026 // socket.h:174:1:
+ SO_NP_EXTENSIONS = 0x1083 // socket.h:179:1:
+ SO_NREAD = 0x1020 // socket.h:167:1:
+ SO_NUMRCVPKT = 0x1112 // socket.h:182:1:
+ SO_NWRITE = 0x1024 // socket.h:171:1:
+ SO_OOBINLINE = 0x0100 // socket.h:135:1:
+ SO_PEERLABEL = 0x1011 // socket.h:165:1:
+ SO_RANDOMPORT = 0x1082 // socket.h:178:1:
+ SO_RCVBUF = 0x1002 // socket.h:156:1:
+ SO_RCVLOWAT = 0x1004 // socket.h:158:1:
+ SO_RCVTIMEO = 0x1006 // socket.h:160:1:
+ SO_REUSEADDR = 0x0004 // socket.h:125:1:
+ SO_REUSEPORT = 0x0200 // socket.h:137:1:
+ SO_REUSESHAREUID = 0x1025 // socket.h:172:1:
+ SO_SNDBUF = 0x1001 // socket.h:155:1:
+ SO_SNDLOWAT = 0x1003 // socket.h:157:1:
+ SO_SNDTIMEO = 0x1005 // socket.h:159:1:
+ SO_TIMESTAMP = 0x0400 // socket.h:138:1:
+ SO_TIMESTAMP_MONOTONIC = 0x0800 // socket.h:139:1:
+ SO_TYPE = 0x1008 // socket.h:162:1:
+ SO_UPCALLCLOSEWAIT = 0x1027 // socket.h:175:1:
+ SO_USELOOPBACK = 0x0040 // socket.h:130:1:
+ SO_WANTMORE = 0x4000 // socket.h:145:1:
+ SO_WANTOOBFLAG = 0x8000 // socket.h:146:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_ARM__PARAM_H_ = 0 // _param.h:6:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__PARAM_H_ = 0 // _param.h:29:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CADDR_T = 0 // _caddr_t.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FSBLKCNT_T = 0 // _fsblkcnt_t.h:29:1:
+ X_FSFILCNT_T = 0 // _fsfilcnt_t.h:29:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // stdint.h:251:1:
+ X_IN_ADDR_T = 0 // _in_addr_t.h:29:1:
+ X_IN_PORT_T = 0 // _in_port_t.h:29:1:
+ X_KEY_T = 0 // _key_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NETINET6_IN6_H_ = 0 // in6.h:99:1:
+ X_NETINET_IN_H_ = 0 // in.h:65:1:
+ X_NET_NETKEV_H_ = 0 // net_kev.h:30:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RSIZE_T = 0 // _rsize_t.h:29:1:
+ X_SA_FAMILY_T = 0 // _sa_family_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SOCKLEN_T = 0 // _socklen_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SS_MAXSIZE = 128 // socket.h:434:1:
+ X_STRUCT_IOVEC = 0 // _iovec_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_SOCKET_H_ = 0 // socket.h:73:1:
+ X_SYS_TYPES_H_ = 0 // types.h:70:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // stdint.h:257:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_U_CHAR = 0 // _u_char.h:29:1:
+ X_U_INT = 0 // _u_int.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_U_LONG = 0 // types.h:89:1:
+ X_U_SHORT = 0 // _u_short.h:29:1:
+ Pseudo_AF_HDRCMPLT = 35 // socket.h:400:1:
+ Pseudo_AF_KEY = 29 // socket.h:392:1:
+ Pseudo_AF_PIP = 25 // socket.h:388:1:
+ Pseudo_AF_RTIP = 22 // socket.h:385:1:
+ Pseudo_AF_XTP = 19 // socket.h:382:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+//===---- stdint.h - Standard header for sized integer types --------------===* *
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+// \*===----------------------------------------------------------------------===
+
+// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T
+// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
+// case the header guard macro is defined.
+
+// If we're hosted, fall back to the system's stdint.h, which might have
+// additional definitions.
+
+// C99 7.18.1.1 Exact-width integer types.
+// C99 7.18.1.2 Minimum-width integer types.
+// C99 7.18.1.3 Fastest minimum-width integer types.
+//
+// The standard requires that exact-width type be defined for 8-, 16-, 32-, and
+// 64-bit types if they are implemented. Other exact width types are optional.
+// This implementation defines an exact-width types for every integer width
+// that is represented in the standard integer types.
+//
+// The standard also requires minimum-width types be defined for 8-, 16-, 32-,
+// and 64-bit widths regardless of whether there are corresponding exact-width
+// types.
+//
+// To accommodate targets that are missing types that are exactly 8, 16, 32, or
+// 64 bits wide, this implementation takes an approach of cascading
+// redefinitions, redefining __int_leastN_t to successively smaller exact-width
+// types. It is therefore important that the types are defined in order of
+// descending widths.
+//
+// We currently assume that the minimum-width types and the fastest
+// minimum-width types are the same. This is allowed by the standard, but is
+// suboptimal.
+//
+// In violation of the standard, some targets do not implement a type that is
+// wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit).
+// To accommodate these targets, a required minimum-width type is only
+// defined if there exists an exact-width type of equal or greater width.
+
+type Int64_t = int64 /* stdint.h:96:24 */
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Int32_t = int32 /* stdint.h:167:24 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+
+type Int16_t = int16 /* stdint.h:205:24 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+
+type Int8_t = int8 /* stdint.h:224:23 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+type Intptr_t = int64 /* stdint.h:249:25 */
+
+type Uintptr_t = uint64 /* stdint.h:256:26 */
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// C99 7.18.4 Macros for minimum-width integer constants.
+//
+// The standard requires that integer constant macros be defined for all the
+// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width
+// types are required, the corresponding integer constant macros are defined
+// here. This implementation also defines minimum-width types for every other
+// integer width that the target implements, so corresponding macros are
+// defined below, too.
+//
+// These macros are defined using the same successive-shrinking approach as
+// the type definitions above. It is likewise important that macros are defined
+// in order of decending width.
+//
+// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// C99 7.18.2.1 Limits of exact-width integer types.
+// C99 7.18.2.2 Limits of minimum-width integer types.
+// C99 7.18.2.3 Limits of fastest minimum-width integer types.
+//
+// The presence of limit macros are completely optional in C99. This
+// implementation defines limits for all of the types (exact- and
+// minimum-width) that it defines above, using the limits of the minimum-width
+// type for any types that do not have exact-width representations.
+//
+// As in the type definitions, this section takes an approach of
+// successive-shrinking to determine which limits to use for the standard (8,
+// 16, 32, 64) bit widths when they don't have exact representations. It is
+// therefore important that the definitions be kept in order of decending
+// widths.
+//
+// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// Some utility macros
+
+// C99 7.18.2.4 Limits of integer types capable of holding object pointers.
+// C99 7.18.3 Limits of other integer types.
+
+// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__
+// is enabled.
+
+// C99 7.18.2.5 Limits of greatest-width integer types.
+
+// C99 7.18.3 Limits of other integer types.
+
+// 7.18.4.2 Macros for greatest-width integer constants.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// POSIX 1003.1-2003
+// "Inclusion of the <netinet/in.h> header may also make visible all
+// symbols from <inttypes.h> and <sys/socket.h>".
+// Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+// NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+// support for mandatory and extensible security protections. This notice
+// is included in support of clause 2.2 (b) of the Apple Public License,
+// Version 2.0.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// PF_ROUTE - Routing table
+//
+// Three additional levels are defined:
+// Fourth: address family, 0 is wildcard
+// Fifth: type of info, defined below
+// Sixth: flag(s) to mask with for NET_RT_FLAGS
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// Header for ancillary data objects in msg_control buffer.
+// Used for additional information with/about a datagram
+// not expressible by flags. The format is a sequence
+// of message elements headed by cmsghdr structures.
+type Cmsghdr = struct {
+ Fcmsg_len Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1987, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:507:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:517:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:527:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:537:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:542:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:555:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1. Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2. Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:618:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the project nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:152:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the project nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Copyright (c) 1982, 1986, 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:158:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:170:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:541:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:549:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:557:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/capi_darwin_arm64.go b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go
new file mode 100644
index 0000000000..b80fe99a86
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo poll/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o poll/poll_darwin_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/poll/poll_darwin_arm64.go b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go
new file mode 100644
index 0000000000..8c09550a92
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go
@@ -0,0 +1,159 @@
+// Code generated by 'ccgo poll/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o poll/poll_darwin_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLATTRIB = 0x0400 // poll.h:81:1:
+ POLLERR = 0x0008 // poll.h:89:1:
+ POLLEXTEND = 0x0200 // poll.h:80:1:
+ POLLHUP = 0x0010 // poll.h:90:1:
+ POLLIN = 0x0001 // poll.h:68:1:
+ POLLNLINK = 0x0800 // poll.h:82:1:
+ POLLNVAL = 0x0020 // poll.h:91:1:
+ POLLOUT = 0x0004 // poll.h:70:1:
+ POLLPRI = 0x0002 // poll.h:69:1:
+ POLLRDBAND = 0x0080 // poll.h:73:1:
+ POLLRDNORM = 0x0040 // poll.h:71:1:
+ POLLSTANDARD = 511 // poll.h:93:1:
+ POLLWRBAND = 0x0100 // poll.h:74:1:
+ POLLWRITE = 0x1000 // poll.h:83:1:
+ POLLWRNORM = 4 // poll.h:72:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_SYS_POLL_H_ = 0 // poll.h:58:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+
+// This file is intended to be compatible with the traditional poll.h.
+
+// Requestable events. If poll(2) finds any of these set, they are
+// copied to revents on return.
+
+// FreeBSD extensions: polling on a regular file might return one
+// of these events (currently only supported on local filesystems).
+
+// These events are set if they occur regardless of whether they were
+// requested.
+
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:96:1 */
+
+type Nfds_t = uint32 /* poll.h:102:22 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go
new file mode 100644
index 0000000000..e1e2a70cfa
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo pthread/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o pthread/pthread_darwin_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go
new file mode 100644
index 0000000000..b721feae8c
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go
@@ -0,0 +1,3068 @@
+// Code generated by 'ccgo pthread/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o pthread/pthread_darwin_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ PTHREAD_CANCEL_ASYNCHRONOUS = 0x00 // pthread.h:144:1:
+ PTHREAD_CANCEL_DEFERRED = 0x02 // pthread.h:143:1:
+ PTHREAD_CANCEL_DISABLE = 0x00 // pthread.h:142:1:
+ PTHREAD_CANCEL_ENABLE = 0x01 // pthread.h:141:1:
+ PTHREAD_CREATE_DETACHED = 2 // pthread.h:136:1:
+ PTHREAD_CREATE_JOINABLE = 1 // pthread.h:135:1:
+ PTHREAD_EXPLICIT_SCHED = 2 // pthread.h:139:1:
+ PTHREAD_INHERIT_SCHED = 1 // pthread.h:138:1:
+ PTHREAD_MUTEX_DEFAULT = 0 // pthread.h:169:1:
+ PTHREAD_MUTEX_ERRORCHECK = 1 // pthread.h:167:1:
+ PTHREAD_MUTEX_NORMAL = 0 // pthread.h:166:1:
+ PTHREAD_MUTEX_POLICY_FAIRSHARE_NP = 1 // pthread.h:174:1:
+ PTHREAD_MUTEX_POLICY_FIRSTFIT_NP = 3 // pthread.h:175:1:
+ PTHREAD_MUTEX_RECURSIVE = 2 // pthread.h:168:1:
+ PTHREAD_PRIO_INHERIT = 1 // pthread.h:160:1:
+ PTHREAD_PRIO_NONE = 0 // pthread.h:159:1:
+ PTHREAD_PRIO_PROTECT = 2 // pthread.h:161:1:
+ PTHREAD_PROCESS_PRIVATE = 2 // pthread.h:154:1:
+ PTHREAD_PROCESS_SHARED = 1 // pthread.h:153:1:
+ PTHREAD_SCOPE_PROCESS = 2 // pthread.h:151:1:
+ PTHREAD_SCOPE_SYSTEM = 1 // pthread.h:150:1:
+ QOS_MIN_RELATIVE_PRIORITY = -15 // qos.h:153:1:
+ SCHED_FIFO = 4 // pthread_impl.h:55:1:
+ SCHED_OTHER = 1 // pthread_impl.h:54:1:
+ SCHED_RR = 2 // pthread_impl.h:56:1:
+ TIME_UTC = 1 // time.h:197:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MACH_PORT_T = 0 // _mach_port_t.h:48:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_SIG_init = 0x3CB0B1BB // pthread_impl.h:47:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_ERRORCHECK_MUTEX_SIG_init = 0x32AAABA1 // pthread_impl.h:43:1:
+ X_PTHREAD_FIRSTFIT_MUTEX_SIG_init = 0x32AAABA3 // pthread_impl.h:45:1:
+ X_PTHREAD_H = 0 // pthread.h:53:1:
+ X_PTHREAD_IMPL_H_ = 0 // pthread_impl.h:25:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_SIG_init = 0x32AAABA7 // pthread_impl.h:41:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_SIG_init = 0x30B1BCBA // pthread_impl.h:48:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_QOS_H = 0 // qos.h:25:1:
+ X_PTHREAD_RECURSIVE_MUTEX_SIG_init = 0x32AAABA2 // pthread_impl.h:44:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_SIG_init = 0x2DA8B3B4 // pthread_impl.h:49:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_SCHED_H_ = 0 // sched.h:25:1:
+ X_SIGSET_T = 0 // _sigset_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SYS_QOS_H = 0 // qos.h:25:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_H_ = 0 // time.h:64:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+)
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// !
+// @typedef qos_class_t
+//
+// @abstract
+// An abstract thread quality of service (QOS) classification.
+//
+// @discussion
+// Thread quality of service (QOS) classes are ordered abstract representations
+// of the nature of work that is expected to be performed by a pthread, dispatch
+// queue, or NSOperation. Each class specifies a maximum thread scheduling
+// priority for that band (which may be used in combination with a relative
+// priority offset within the band), as well as quality of service
+// characteristics for timer latency, CPU throughput, I/O throughput, network
+// socket traffic management behavior and more.
+//
+// A best effort is made to allocate available system resources to every QOS
+// class. Quality of service degredation only occurs during system resource
+// contention, proportionally to the QOS class. That said, QOS classes
+// representing user-initiated work attempt to achieve peak throughput while
+// QOS classes for other work attempt to achieve peak energy and thermal
+// efficiency, even in the absence of contention. Finally, the use of QOS
+// classes does not allow threads to supersede any limits that may be applied
+// to the overall process.
+
+// !
+// @constant QOS_CLASS_USER_INTERACTIVE
+// @abstract A QOS class which indicates work performed by this thread
+// is interactive with the user.
+// @discussion Such work is requested to run at high priority relative to other
+// work on the system. Specifying this QOS class is a request to run with
+// nearly all available system CPU and I/O bandwidth even under contention.
+// This is not an energy-efficient QOS class to use for large tasks. The use of
+// this QOS class should be limited to critical interaction with the user such
+// as handling events on the main event loop, view drawing, animation, etc.
+//
+// @constant QOS_CLASS_USER_INITIATED
+// @abstract A QOS class which indicates work performed by this thread
+// was initiated by the user and that the user is likely waiting for the
+// results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive work, but relatively higher than other work on the system. This
+// is not an energy-efficient QOS class to use for large tasks. Its use
+// should be limited to operations of short enough duration that the user is
+// unlikely to switch tasks while waiting for the results. Typical
+// user-initiated work will have progress indicated by the display of
+// placeholder content or modal user interface.
+//
+// @constant QOS_CLASS_DEFAULT
+// @abstract A default QOS class used by the system in cases where more specific
+// QOS class information is not available.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than utility and
+// background tasks. Threads created by pthread_create() without an attribute
+// specifying a QOS class will default to QOS_CLASS_DEFAULT. This QOS class
+// value is not intended to be used as a work classification, it should only be
+// set when propagating or restoring QOS class values provided by the system.
+//
+// @constant QOS_CLASS_UTILITY
+// @abstract A QOS class which indicates work performed by this thread
+// may or may not be initiated by the user and that the user is unlikely to be
+// immediately waiting for the results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than low-level
+// system maintenance tasks. The use of this QOS class indicates the work
+// should be run in an energy and thermally-efficient manner. The progress of
+// utility work may or may not be indicated to the user, but the effect of such
+// work is user-visible.
+//
+// @constant QOS_CLASS_BACKGROUND
+// @abstract A QOS class which indicates work performed by this thread was not
+// initiated by the user and that the user may be unaware of the results.
+// @discussion Such work is requested to run at a priority below other work.
+// The use of this QOS class indicates the work should be run in the most energy
+// and thermally-efficient manner.
+//
+// @constant QOS_CLASS_UNSPECIFIED
+// @abstract A QOS class value which indicates the absence or removal of QOS
+// class information.
+// @discussion As an API return value, may indicate that threads or pthread
+// attributes were configured with legacy API incompatible or in conflict with
+// the QOS class system.
+
+const ( /* qos.h:130:1: */
+ QOS_CLASS_USER_INTERACTIVE = 33
+ QOS_CLASS_USER_INITIATED = 25
+ QOS_CLASS_DEFAULT = 21
+ QOS_CLASS_UTILITY = 17
+ QOS_CLASS_BACKGROUND = 9
+ QOS_CLASS_UNSPECIFIED = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
+// All Rights Reserved
+//
+// Permission to use, copy, modify, and distribute this software and
+// its documentation for any purpose and without fee is hereby granted,
+// provided that the above copyright notice appears in all copies and
+// that both the copyright notice and this permission notice appear in
+// supporting documentation.
+//
+// OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE.
+//
+// IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+// NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+//
+// MkLinux
+
+// POSIX Threads - IEEE 1003.1c
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Internal implementation details
+
+// This whole header file will disappear, so don't depend on it...
+
+// [Internal] data structure signatures
+
+// POSIX scheduling policies
+
+// Scheduling paramters
+type Sched_param = struct {
+ Fsched_priority int32
+ F__opaque [4]int8
+} /* sched.h:35:1 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)time.h 8.3 (Berkeley) 1/21/94
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+type Tm = struct {
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:75:1 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+type Qos_class_t = uint32 /* qos.h:130:1 */
+
+// !
+// @typedef pthread_override_t
+//
+// @abstract
+// An opaque object representing a QOS class override of a thread.
+//
+// @discussion
+// A QOS class override of a target thread expresses that an item of pending
+// work classified with a specific QOS class and relative priority depends on
+// the completion of the work currently being executed by the thread (e.g. due
+// to ordering requirements).
+//
+// While overrides are in effect, the target thread will execute at the maximum
+// QOS class and relative priority of all overrides and of the QOS class
+// requested by the thread itself.
+//
+// A QOS class override does not modify the target thread's requested QOS class
+// value and the effect of an override is not visible to the qos_class_self()
+// and pthread_get_qos_class_np() interfaces.
+
+type Pthread_override_t = uintptr /* qos.h:211:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// mach_port_t - a named port right
+//
+// In user-space, "rights" are represented by the name of the
+// right in the Mach port namespace. Even so, this type is
+// presented as a unique one to more clearly denote the presence
+// of a right coming along with the name.
+//
+// Often, various rights for a port held in a single name space
+// will coalesce and are, therefore, be identified by a single name
+// [this is the case for send and receive rights]. But not
+// always [send-once rights currently get a unique name for
+// each right].
+//
+// This definition of mach_port_t is only for user-space.
+//
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mach_port_t = X__darwin_mach_port_t /* _mach_port_t.h:50:30 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+// !
+// @typedef pthread_jit_write_callback_t
+// The type of a function that can be supplied to {@link
+// pthread_jit_write_with_callback_np} to write to the MAP_JIT region while it
+// is writeable.
+//
+// @param ctx
+// A pointer to context that will be passed through to the callback function.
+//
+// @result
+// A result code to be returned to the caller of @{link
+// pthread_jit_write_with_callback_np}. The system does not interpret/act on
+// the value of this result.
+type Pthread_jit_write_callback_t = uintptr /* pthread.h:581:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go
new file mode 100644
index 0000000000..53936762db
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo pwd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o pwd/pwd_darwin_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go
new file mode 100644
index 0000000000..4b43abc05a
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go
@@ -0,0 +1,1083 @@
+// Code generated by 'ccgo pwd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o pwd/pwd_darwin_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MASTERPASSWD = "master.passwd" // pwd.h:57:1:
+ X_MP_DB = "pwd.db" // pwd.h:60:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_PASSWD = "passwd" // pwd.h:54:1:
+ X_PASSWORD_CHGNOW = -1 // pwd.h:80:1:
+ X_PASSWORD_EFMT1 = 95 // pwd.h:70:1:
+ X_PASSWORD_LEN = 128 // pwd.h:72:1:
+ X_PASSWORD_NOCHG = 0x04 // pwd.h:76:1:
+ X_PASSWORD_NOEXP = 0x08 // pwd.h:77:1:
+ X_PASSWORD_NOGID = 0x02 // pwd.h:75:1:
+ X_PASSWORD_NOUID = 0x01 // pwd.h:74:1:
+ X_PASSWORD_WARNDAYS = 14 // pwd.h:79:1:
+ X_PATH_MASTERPASSWD = "/etc/master.passwd" // pwd.h:55:1:
+ X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp" // pwd.h:56:1:
+ X_PATH_MP_DB = "/etc/pwd.db" // pwd.h:59:1:
+ X_PATH_PASSWD = "/etc/passwd" // pwd.h:53:1:
+ X_PATH_PWD = "/etc" // pwd.h:52:1:
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb" // pwd.h:64:1:
+ X_PATH_SMP_DB = "/etc/spwd.db" // pwd.h:61:1:
+ X_PWD_H_ = 0 // pwd.h:44:1:
+ X_PW_KEYBYNAME = 49 // pwd.h:66:1:
+ X_PW_KEYBYNUM = 50 // pwd.h:67:1:
+ X_PW_KEYBYUID = 51 // pwd.h:68:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SMP_DB = "spwd.db" // pwd.h:62:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UUID_STRING_T = 0 // uuid.h:42:1:
+ X_UUID_T = 0 // _uuid_t.h:29:1:
+ X_UUID_UUID_H = 0 // uuid.h:36:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+// Portions Copyright(C) 1995, Jason Downs. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+// Portions copyright (c) 2000-2011 Apple Inc. All rights reserved.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change X__darwin_time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire X__darwin_time_t
+} /* pwd.h:84:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+// USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/capi_darwin_arm64.go b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go
new file mode 100644
index 0000000000..e203423e22
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go
@@ -0,0 +1,8 @@
+// Code generated by 'ccgo signal/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o signal/signal_darwin_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+ "__sigbits": {},
+}
diff --git a/vendor/modernc.org/libc/signal/more_darwin_arm64.go b/vendor/modernc.org/libc/signal/more_darwin_arm64.go
new file mode 100644
index 0000000000..25cc318bfb
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_darwin_arm64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/signal_darwin_arm64.go b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go
new file mode 100644
index 0000000000..2167de7ece
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go
@@ -0,0 +1,3132 @@
+// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o signal/signal_darwin_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUS_ADRALN = 1 // signal.h:241:1:
+ BUS_ADRERR = 2 // signal.h:242:1:
+ BUS_NOOP = 0 // signal.h:239:1:
+ BUS_OBJERR = 3 // signal.h:243:1:
+ CLD_CONTINUED = 6 // signal.h:258:1:
+ CLD_DUMPED = 3 // signal.h:255:1:
+ CLD_EXITED = 1 // signal.h:253:1:
+ CLD_KILLED = 2 // signal.h:254:1:
+ CLD_NOOP = 0 // signal.h:251:1:
+ CLD_STOPPED = 5 // signal.h:257:1:
+ CLD_TRAPPED = 4 // signal.h:256:1:
+ FPE_FLTDIV = 1 // signal.h:221:1:
+ FPE_FLTINV = 5 // signal.h:225:1:
+ FPE_FLTOVF = 2 // signal.h:222:1:
+ FPE_FLTRES = 4 // signal.h:224:1:
+ FPE_FLTSUB = 6 // signal.h:226:1:
+ FPE_FLTUND = 3 // signal.h:223:1:
+ FPE_INTDIV = 7 // signal.h:227:1:
+ FPE_INTOVF = 8 // signal.h:228:1:
+ FPE_NOOP = 0 // signal.h:219:1:
+ ILL_BADSTK = 8 // signal.h:215:1:
+ ILL_COPROC = 7 // signal.h:214:1:
+ ILL_ILLADR = 5 // signal.h:212:1:
+ ILL_ILLOPC = 1 // signal.h:208:1:
+ ILL_ILLOPN = 4 // signal.h:211:1:
+ ILL_ILLTRP = 2 // signal.h:209:1:
+ ILL_NOOP = 0 // signal.h:206:1:
+ ILL_PRVOPC = 3 // signal.h:210:1:
+ ILL_PRVREG = 6 // signal.h:213:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ MINSIGSTKSZ = 32768 // signal.h:340:1:
+ NSIG = 32 // signal.h:79:1:
+ POLL_ERR = 4 // signal.h:264:1:
+ POLL_HUP = 6 // signal.h:266:1:
+ POLL_IN = 1 // signal.h:261:1:
+ POLL_MSG = 3 // signal.h:263:1:
+ POLL_OUT = 2 // signal.h:262:1:
+ POLL_PRI = 5 // signal.h:265:1:
+ SA_64REGSET = 0x0200 // signal.h:308:1:
+ SA_NOCLDSTOP = 0x0008 // signal.h:301:1:
+ SA_NOCLDWAIT = 0x0020 // signal.h:303:1:
+ SA_NODEFER = 0x0010 // signal.h:302:1:
+ SA_ONSTACK = 0x0001 // signal.h:298:1:
+ SA_RESETHAND = 0x0004 // signal.h:300:1:
+ SA_RESTART = 0x0002 // signal.h:299:1:
+ SA_SIGINFO = 0x0040 // signal.h:304:1:
+ SA_USERSPACE_MASK = 127 // signal.h:314:1:
+ SA_USERTRAMP = 0x0100 // signal.h:306:1:
+ SEGV_ACCERR = 2 // signal.h:235:1:
+ SEGV_MAPERR = 1 // signal.h:234:1:
+ SEGV_NOOP = 0 // signal.h:232:1:
+ SIGABRT = 6 // signal.h:89:1:
+ SIGALRM = 14 // signal.h:102:1:
+ SIGBUS = 10 // signal.h:98:1:
+ SIGCHLD = 20 // signal.h:108:1:
+ SIGCONT = 19 // signal.h:107:1:
+ SIGEMT = 7 // signal.h:94:1:
+ SIGEV_NONE = 0 // signal.h:164:1:
+ SIGEV_SIGNAL = 1 // signal.h:165:1:
+ SIGEV_THREAD = 3 // signal.h:166:1:
+ SIGFPE = 8 // signal.h:96:1:
+ SIGHUP = 1 // signal.h:84:1:
+ SIGILL = 4 // signal.h:87:1:
+ SIGINFO = 29 // signal.h:120:1:
+ SIGINT = 2 // signal.h:85:1:
+ SIGIO = 23 // signal.h:112:1:
+ SIGIOT = 6 // signal.h:93:1:
+ SIGKILL = 9 // signal.h:97:1:
+ SIGPIPE = 13 // signal.h:101:1:
+ SIGPROF = 27 // signal.h:117:1:
+ SIGQUIT = 3 // signal.h:86:1:
+ SIGSEGV = 11 // signal.h:99:1:
+ SIGSTKSZ = 131072 // signal.h:341:1:
+ SIGSTOP = 17 // signal.h:105:1:
+ SIGSYS = 12 // signal.h:100:1:
+ SIGTERM = 15 // signal.h:103:1:
+ SIGTRAP = 5 // signal.h:88:1:
+ SIGTSTP = 18 // signal.h:106:1:
+ SIGTTIN = 21 // signal.h:109:1:
+ SIGTTOU = 22 // signal.h:110:1:
+ SIGURG = 16 // signal.h:104:1:
+ SIGUSR1 = 30 // signal.h:122:1:
+ SIGUSR2 = 31 // signal.h:123:1:
+ SIGVTALRM = 26 // signal.h:116:1:
+ SIGWINCH = 28 // signal.h:119:1:
+ SIGXCPU = 24 // signal.h:114:1:
+ SIGXFSZ = 25 // signal.h:115:1:
+ SIG_BLOCK = 1 // signal.h:319:1:
+ SIG_SETMASK = 3 // signal.h:321:1:
+ SIG_UNBLOCK = 2 // signal.h:320:1:
+ SI_ASYNCIO = 0x10004 // signal.h:327:1:
+ SI_MESGQ = 0x10005 // signal.h:328:1:
+ SI_QUEUE = 0x10002 // signal.h:325:1:
+ SI_TIMER = 0x10003 // signal.h:326:1:
+ SI_USER = 0x10001 // signal.h:324:1:
+ SS_DISABLE = 0x0004 // signal.h:339:1:
+ SS_ONSTACK = 0x0001 // signal.h:338:1:
+ SV_INTERRUPT = 2 // signal.h:355:1:
+ SV_NOCLDSTOP = 8 // signal.h:358:1:
+ SV_NODEFER = 16 // signal.h:357:1:
+ SV_ONSTACK = 1 // signal.h:354:1:
+ SV_RESETHAND = 4 // signal.h:356:1:
+ SV_SIGINFO = 64 // signal.h:359:1:
+ TRAP_BRKPT = 1 // signal.h:246:1:
+ TRAP_TRACE = 2 // signal.h:247:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM_SIGNAL_ = 1 // signal.h:10:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_SIGNAL_H_ = 0 // signal.h:29:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__MCONTEXT_H_ = 0 // _mcontext.h:29:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MACH_ARM__STRUCTS_H_ = 0 // _structs.h:32:1:
+ X_MACH_MACHINE__STRUCTS_H_ = 0 // _structs.h:30:1:
+ X_MCONTEXT_T = 0 // _mcontext.h:83:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_SIGSET_T = 0 // _sigset_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SYS_SIGNAL_H_ = 0 // signal.h:70:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USER_SIGNAL_H = 0 // signal.h:59:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)signal.h 8.3 (Berkeley) 3/30/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)signal.h 8.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2009 Apple, Inc. All rights reserved.
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+type Sig_atomic_t = int32 /* signal.h:17:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type X__darwin_arm_exception_state = struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+} /* _structs.h:41:1 */
+
+type X__darwin_arm_exception_state64 = struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+} /* _structs.h:59:1 */
+
+type X__darwin_arm_thread_state = struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+} /* _structs.h:77:1 */
+
+// By default, the pointer fields in the arm_thread_state64_t structure are
+// opaque on the arm64e architecture and require the use of accessor macros.
+// This mode can also be enabled on the arm64 architecture by building with
+// -D__DARWIN_OPAQUE_ARM_THREAD_STATE64=1.
+
+type X__darwin_arm_thread_state64 = struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+} /* _structs.h:136:1 */
+
+// Accessor macros for arm_thread_state64_t pointer fields
+
+// Return pc field of arm_thread_state64_t as a data pointer value
+// Return pc field of arm_thread_state64_t as a function pointer
+// Set pc field of arm_thread_state64_t to a function pointer
+// Return lr field of arm_thread_state64_t as a data pointer value
+// Return lr field of arm_thread_state64_t as a function pointer
+// Set lr field of arm_thread_state64_t to a function pointer
+// Return sp field of arm_thread_state64_t as a data pointer value
+// Set sp field of arm_thread_state64_t to a data pointer value
+// Return fp field of arm_thread_state64_t as a data pointer value
+// Set fp field of arm_thread_state64_t to a data pointer value
+// Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t
+
+type X__darwin_arm_vfp_state = struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+} /* _structs.h:433:1 */
+
+type X__darwin_arm_neon_state64 = struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:452:1 */
+
+type X__darwin_arm_neon_state = struct {
+ F__v [16]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:459:1 */
+
+type X__arm_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:523:1 */
+
+// Debug State
+
+// ARM's arm_debug_state is ARM64's arm_legacy_debug_state
+
+type X__arm_legacy_debug_state = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+} /* _structs.h:560:1 */
+
+type X__darwin_arm_debug_state32 = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:583:1 */
+
+type X__darwin_arm_debug_state64 = struct {
+ F__bvr [16]X__uint64_t
+ F__bcr [16]X__uint64_t
+ F__wvr [16]X__uint64_t
+ F__wcr [16]X__uint64_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:593:1 */
+
+type X__darwin_arm_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:625:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+ }
+ F__ss struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+ }
+ F__fs struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+ }
+} /* _mcontext.h:41:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+ }
+ F__ss struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+ }
+ F__ns struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+ }
+} /* _mcontext.h:64:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:85:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:43:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:57:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go
new file mode 100644
index 0000000000..fdc60c5efe
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo stdio/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o stdio/stdio_darwin_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go
new file mode 100644
index 0000000000..f0896f0c26
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go
@@ -0,0 +1,1944 @@
+// Code generated by 'ccgo stdio/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o stdio/stdio_darwin_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024 // stdio.h:103:1:
+ EOF = -1 // stdio.h:104:1:
+ FILENAME_MAX = 1024 // stdio.h:108:1:
+ FOPEN_MAX = 20 // stdio.h:107:1:
+ L_ctermid = 1024 // stdio.h:202:1:
+ L_tmpnam = 1024 // stdio.h:114:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ P_tmpdir = "/var/tmp/" // stdio.h:112:1:
+ RENAME_EXCL = 0x00000004 // stdio.h:37:1:
+ RENAME_NOFOLLOW_ANY = 0x00000010 // stdio.h:39:1:
+ RENAME_RESERVED1 = 0x00000008 // stdio.h:38:1:
+ RENAME_SECLUDE = 0x00000001 // stdio.h:35:1:
+ RENAME_SWAP = 0x00000002 // stdio.h:36:1:
+ SEEK_CUR = 1 // stdio.h:121:1:
+ SEEK_END = 2 // stdio.h:124:1:
+ SEEK_SET = 0 // stdio.h:118:1:
+ TMP_MAX = 308915776 // stdio.h:115:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CTERMID_H_ = 0 // _ctermid.h:25:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_FSTDIO = 0 // _stdio.h:83:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_IOFBF = 0 // stdio.h:99:1:
+ X_IOLBF = 1 // stdio.h:100:1:
+ X_IONBF = 2 // stdio.h:101:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_SECURE__COMMON_H_ = 0 // _common.h:25:1:
+ X_SECURE__STDIO_H_ = 0 // _stdio.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_STDIO_H_ = 0 // stdio.h:62:1:
+ X_SYS_STDIO_H_ = 0 // stdio.h:30:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USE_FORTIFY_LEVEL = 2 // _common.h:30:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_VA_LIST_T = 0 // _va_list.h:30:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Common header for stdio.h and xlocale/_stdio.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// __gnuc_va_list and include <stdarg.h>
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Va_list = X__darwin_va_list /* _va_list.h:32:26 */
+
+type Fpos_t = X__darwin_off_t /* _stdio.h:81:25 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* _stdio.h:92:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_extra uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+} /* _stdio.h:126:9 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type FILE = X__sFILE /* _stdio.h:157:3 */
+
+// Additional functionality provided by:
+// POSIX.1-2001
+// ISO C99
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+// Additional functionality provided by:
+// POSIX.1-2008
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go
new file mode 100644
index 0000000000..5a23d22707
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo stdlib/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o stdlib/stdlib_darwin_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go
new file mode 100644
index 0000000000..903127f655
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go
@@ -0,0 +1,4430 @@
+// Code generated by 'ccgo stdlib/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o stdlib/stdlib_darwin_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BUS_ADRALN = 1 // signal.h:241:1:
+ BUS_ADRERR = 2 // signal.h:242:1:
+ BUS_NOOP = 0 // signal.h:239:1:
+ BUS_OBJERR = 3 // signal.h:243:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ CLD_CONTINUED = 6 // signal.h:258:1:
+ CLD_DUMPED = 3 // signal.h:255:1:
+ CLD_EXITED = 1 // signal.h:253:1:
+ CLD_KILLED = 2 // signal.h:254:1:
+ CLD_NOOP = 0 // signal.h:251:1:
+ CLD_STOPPED = 5 // signal.h:257:1:
+ CLD_TRAPPED = 4 // signal.h:256:1:
+ CPUMON_MAKE_FATAL = 0x1000 // resource.h:439:1:
+ EXIT_FAILURE = 1 // stdlib.h:102:1:
+ EXIT_SUCCESS = 0 // stdlib.h:103:1:
+ FOOTPRINT_INTERVAL_RESET = 0x1 // resource.h:444:1:
+ FPE_FLTDIV = 1 // signal.h:221:1:
+ FPE_FLTINV = 5 // signal.h:225:1:
+ FPE_FLTOVF = 2 // signal.h:222:1:
+ FPE_FLTRES = 4 // signal.h:224:1:
+ FPE_FLTSUB = 6 // signal.h:226:1:
+ FPE_FLTUND = 3 // signal.h:223:1:
+ FPE_INTDIV = 7 // signal.h:227:1:
+ FPE_INTOVF = 8 // signal.h:228:1:
+ FPE_NOOP = 0 // signal.h:219:1:
+ ILL_BADSTK = 8 // signal.h:215:1:
+ ILL_COPROC = 7 // signal.h:214:1:
+ ILL_ILLADR = 5 // signal.h:212:1:
+ ILL_ILLOPC = 1 // signal.h:208:1:
+ ILL_ILLOPN = 4 // signal.h:211:1:
+ ILL_ILLTRP = 2 // signal.h:209:1:
+ ILL_NOOP = 0 // signal.h:206:1:
+ ILL_PRVOPC = 3 // signal.h:210:1:
+ ILL_PRVREG = 6 // signal.h:213:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ IOPOL_APPLICATION = 5 // resource.h:478:1:
+ IOPOL_ATIME_UPDATES_DEFAULT = 0 // resource.h:482:1:
+ IOPOL_ATIME_UPDATES_OFF = 1 // resource.h:483:1:
+ IOPOL_DEFAULT = 0 // resource.h:470:1:
+ IOPOL_IMPORTANT = 1 // resource.h:471:1:
+ IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT = 0 // resource.h:485:1:
+ IOPOL_MATERIALIZE_DATALESS_FILES_OFF = 1 // resource.h:486:1:
+ IOPOL_MATERIALIZE_DATALESS_FILES_ON = 2 // resource.h:487:1:
+ IOPOL_NORMAL = 1 // resource.h:479:1:
+ IOPOL_PASSIVE = 2 // resource.h:472:1:
+ IOPOL_SCOPE_DARWIN_BG = 2 // resource.h:467:1:
+ IOPOL_SCOPE_PROCESS = 0 // resource.h:465:1:
+ IOPOL_SCOPE_THREAD = 1 // resource.h:466:1:
+ IOPOL_STANDARD = 5 // resource.h:475:1:
+ IOPOL_THROTTLE = 3 // resource.h:473:1:
+ IOPOL_TYPE_DISK = 0 // resource.h:454:1:
+ IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES = 9 // resource.h:462:1:
+ IOPOL_TYPE_VFS_ATIME_UPDATES = 2 // resource.h:455:1:
+ IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION = 6 // resource.h:459:1:
+ IOPOL_TYPE_VFS_IGNORE_PERMISSIONS = 7 // resource.h:460:1:
+ IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES = 3 // resource.h:456:1:
+ IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE = 8 // resource.h:461:1:
+ IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME = 4 // resource.h:457:1:
+ IOPOL_TYPE_VFS_TRIGGER_RESOLVE = 5 // resource.h:458:1:
+ IOPOL_UTILITY = 4 // resource.h:474:1:
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF = 0 // resource.h:504:1:
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON = 1 // resource.h:505:1:
+ IOPOL_VFS_CONTENT_PROTECTION_DEFAULT = 0 // resource.h:495:1:
+ IOPOL_VFS_CONTENT_PROTECTION_IGNORE = 1 // resource.h:496:1:
+ IOPOL_VFS_IGNORE_PERMISSIONS_OFF = 0 // resource.h:498:1:
+ IOPOL_VFS_IGNORE_PERMISSIONS_ON = 1 // resource.h:499:1:
+ IOPOL_VFS_SKIP_MTIME_UPDATE_OFF = 0 // resource.h:501:1:
+ IOPOL_VFS_SKIP_MTIME_UPDATE_ON = 1 // resource.h:502:1:
+ IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME = 1 // resource.h:490:1:
+ IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT = 0 // resource.h:489:1:
+ IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT = 0 // resource.h:492:1:
+ IOPOL_VFS_TRIGGER_RESOLVE_OFF = 1 // resource.h:493:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ MINSIGSTKSZ = 32768 // signal.h:340:1:
+ NSIG = 32 // signal.h:79:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ POLL_ERR = 4 // signal.h:264:1:
+ POLL_HUP = 6 // signal.h:266:1:
+ POLL_IN = 1 // signal.h:261:1:
+ POLL_MSG = 3 // signal.h:263:1:
+ POLL_OUT = 2 // signal.h:262:1:
+ POLL_PRI = 5 // signal.h:265:1:
+ PRIO_DARWIN_BG = 0x1000 // resource.h:120:1:
+ PRIO_DARWIN_NONUI = 0x1001 // resource.h:126:1:
+ PRIO_DARWIN_PROCESS = 4 // resource.h:106:1:
+ PRIO_DARWIN_THREAD = 3 // resource.h:105:1:
+ PRIO_MAX = 20 // resource.h:113:1:
+ PRIO_MIN = -20 // resource.h:112:1:
+ PRIO_PGRP = 1 // resource.h:101:1:
+ PRIO_PROCESS = 0 // resource.h:100:1:
+ PRIO_USER = 2 // resource.h:102:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ RAND_MAX = 0x7fffffff // stdlib.h:105:1:
+ RLIMIT_AS = 5 // resource.h:395:1:
+ RLIMIT_CORE = 4 // resource.h:394:1:
+ RLIMIT_CPU = 0 // resource.h:390:1:
+ RLIMIT_CPU_USAGE_MONITOR = 0x2 // resource.h:423:1:
+ RLIMIT_DATA = 2 // resource.h:392:1:
+ RLIMIT_FOOTPRINT_INTERVAL = 0x4 // resource.h:425:1:
+ RLIMIT_FSIZE = 1 // resource.h:391:1:
+ RLIMIT_MEMLOCK = 6 // resource.h:398:1:
+ RLIMIT_NOFILE = 8 // resource.h:401:1:
+ RLIMIT_NPROC = 7 // resource.h:399:1:
+ RLIMIT_RSS = 5 // resource.h:397:1:
+ RLIMIT_STACK = 3 // resource.h:393:1:
+ RLIMIT_THREAD_CPULIMITS = 0x3 // resource.h:424:1:
+ RLIMIT_WAKEUPS_MONITOR = 0x1 // resource.h:422:1:
+ RLIM_NLIMITS = 9 // resource.h:403:1:
+ RSIZE_MAX = 9223372036854775807 // stdint.h:658:1:
+ RUSAGE_CHILDREN = -1 // resource.h:141:1:
+ RUSAGE_INFO_CURRENT = 5 // resource.h:192:1:
+ RUSAGE_INFO_V0 = 0 // resource.h:186:1:
+ RUSAGE_INFO_V1 = 1 // resource.h:187:1:
+ RUSAGE_INFO_V2 = 2 // resource.h:188:1:
+ RUSAGE_INFO_V3 = 3 // resource.h:189:1:
+ RUSAGE_INFO_V4 = 4 // resource.h:190:1:
+ RUSAGE_INFO_V5 = 5 // resource.h:191:1:
+ RUSAGE_SELF = 0 // resource.h:140:1:
+ RU_PROC_RUNS_RESLIDE = 0x00000001 // resource.h:197:1:
+ SA_64REGSET = 0x0200 // signal.h:308:1:
+ SA_NOCLDSTOP = 0x0008 // signal.h:301:1:
+ SA_NOCLDWAIT = 0x0020 // signal.h:303:1:
+ SA_NODEFER = 0x0010 // signal.h:302:1:
+ SA_ONSTACK = 0x0001 // signal.h:298:1:
+ SA_RESETHAND = 0x0004 // signal.h:300:1:
+ SA_RESTART = 0x0002 // signal.h:299:1:
+ SA_SIGINFO = 0x0040 // signal.h:304:1:
+ SA_USERSPACE_MASK = 127 // signal.h:314:1:
+ SA_USERTRAMP = 0x0100 // signal.h:306:1:
+ SEGV_ACCERR = 2 // signal.h:235:1:
+ SEGV_MAPERR = 1 // signal.h:234:1:
+ SEGV_NOOP = 0 // signal.h:232:1:
+ SIGABRT = 6 // signal.h:89:1:
+ SIGALRM = 14 // signal.h:102:1:
+ SIGBUS = 10 // signal.h:98:1:
+ SIGCHLD = 20 // signal.h:108:1:
+ SIGCONT = 19 // signal.h:107:1:
+ SIGEMT = 7 // signal.h:94:1:
+ SIGEV_NONE = 0 // signal.h:164:1:
+ SIGEV_SIGNAL = 1 // signal.h:165:1:
+ SIGEV_THREAD = 3 // signal.h:166:1:
+ SIGFPE = 8 // signal.h:96:1:
+ SIGHUP = 1 // signal.h:84:1:
+ SIGILL = 4 // signal.h:87:1:
+ SIGINFO = 29 // signal.h:120:1:
+ SIGINT = 2 // signal.h:85:1:
+ SIGIO = 23 // signal.h:112:1:
+ SIGIOT = 6 // signal.h:93:1:
+ SIGKILL = 9 // signal.h:97:1:
+ SIGPIPE = 13 // signal.h:101:1:
+ SIGPROF = 27 // signal.h:117:1:
+ SIGQUIT = 3 // signal.h:86:1:
+ SIGSEGV = 11 // signal.h:99:1:
+ SIGSTKSZ = 131072 // signal.h:341:1:
+ SIGSTOP = 17 // signal.h:105:1:
+ SIGSYS = 12 // signal.h:100:1:
+ SIGTERM = 15 // signal.h:103:1:
+ SIGTRAP = 5 // signal.h:88:1:
+ SIGTSTP = 18 // signal.h:106:1:
+ SIGTTIN = 21 // signal.h:109:1:
+ SIGTTOU = 22 // signal.h:110:1:
+ SIGURG = 16 // signal.h:104:1:
+ SIGUSR1 = 30 // signal.h:122:1:
+ SIGUSR2 = 31 // signal.h:123:1:
+ SIGVTALRM = 26 // signal.h:116:1:
+ SIGWINCH = 28 // signal.h:119:1:
+ SIGXCPU = 24 // signal.h:114:1:
+ SIGXFSZ = 25 // signal.h:115:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIG_BLOCK = 1 // signal.h:319:1:
+ SIG_SETMASK = 3 // signal.h:321:1:
+ SIG_UNBLOCK = 2 // signal.h:320:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ SI_ASYNCIO = 0x10004 // signal.h:327:1:
+ SI_MESGQ = 0x10005 // signal.h:328:1:
+ SI_QUEUE = 0x10002 // signal.h:325:1:
+ SI_TIMER = 0x10003 // signal.h:326:1:
+ SI_USER = 0x10001 // signal.h:324:1:
+ SS_DISABLE = 0x0004 // signal.h:339:1:
+ SS_ONSTACK = 0x0001 // signal.h:338:1:
+ SV_INTERRUPT = 2 // signal.h:355:1:
+ SV_NOCLDSTOP = 8 // signal.h:358:1:
+ SV_NODEFER = 16 // signal.h:357:1:
+ SV_ONSTACK = 1 // signal.h:354:1:
+ SV_RESETHAND = 4 // signal.h:356:1:
+ SV_SIGINFO = 64 // signal.h:359:1:
+ TRAP_BRKPT = 1 // signal.h:246:1:
+ TRAP_TRACE = 2 // signal.h:247:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ WAIT_ANY = -1 // wait.h:183:1:
+ WAIT_MYPGRP = 0 // wait.h:184:1:
+ WAKEMON_DISABLE = 0x02 // resource.h:431:1:
+ WAKEMON_ENABLE = 0x01 // resource.h:430:1:
+ WAKEMON_GET_PARAMS = 0x04 // resource.h:432:1:
+ WAKEMON_MAKE_FATAL = 0x10 // resource.h:434:1:
+ WAKEMON_SET_DEFAULTS = 0x08 // resource.h:433:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WCONTINUED = 0x00000010 // wait.h:173:1:
+ WCOREFLAG = 0200 // wait.h:132:1:
+ WEXITED = 0x00000004 // wait.h:168:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ WNOHANG = 0x00000001 // wait.h:121:1:
+ WNOWAIT = 0x00000020 // wait.h:174:1:
+ WSTOPPED = 0x00000008 // wait.h:171:1:
+ WUNTRACED = 0x00000002 // wait.h:122:1:
+ X_ALLOCA_H_ = 0 // alloca.h:25:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM_SIGNAL_ = 1 // signal.h:10:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_SIGNAL_H_ = 0 // signal.h:29:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__MCONTEXT_H_ = 0 // _mcontext.h:29:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CT_RUNE_T = 0 // _ct_rune_t.h:30:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MACH_ARM__STRUCTS_H_ = 0 // _structs.h:32:1:
+ X_MACH_MACHINE__STRUCTS_H_ = 0 // _structs.h:30:1:
+ X_MALLOC_UNDERSCORE_MALLOC_H_ = 0 // _malloc.h:25:1:
+ X_MCONTEXT_T = 0 // _mcontext.h:83:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RLIMIT_POSIX_FLAG = 0x1000 // resource.h:405:1:
+ X_RUNE_T = 0 // _rune_t.h:29:1:
+ X_SIGSET_T = 0 // _sigset_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_STDLIB_H_ = 0 // stdlib.h:59:1:
+ X_SYS_RESOURCE_H_ = 0 // resource.h:65:1:
+ X_SYS_SIGNAL_H_ = 0 // signal.h:70:1:
+ X_SYS_WAIT_H_ = 0 // wait.h:65:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINT32_T = 0 // _uint32_t.h:30:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_WCHAR_T = 0 // _wchar_t.h:32:1:
+ X_WSTOPPED = 0177 // wait.h:137:1:
+)
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+const ( /* wait.h:79:1: */
+ P_ALL = 0
+ P_PID = 1
+ P_PGID = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)stdlib.h 8.5 (Berkeley) 5/19/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+type Idtype_t = uint32 /* wait.h:83:3 */
+
+// [XSI] The id_t and pid_t types shall be defined as described
+// in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+
+// [XSI] The siginfo_t type shall be defined as described in <signal.h>
+// [XSI] The rusage structure shall be defined as described in <sys/resource.h>
+// [XSI] Inclusion of the <sys/wait.h> header may also make visible all
+// symbols from <signal.h> and <sys/resource.h>
+//
+// NOTE: This requirement is currently being satisfied by the direct
+// inclusion of <sys/signal.h> and <sys/resource.h>, below.
+//
+// Software should not depend on the exposure of anything other
+// than the types siginfo_t and struct rusage as a result of
+// this inclusion. If you depend on any types or manifest
+// values othe than siginfo_t and struct rusage from either of
+// those files, you should explicitly include them yourself, as
+// well, or in future releases your stware may not compile
+// without modification.
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)signal.h 8.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2009 Apple, Inc. All rights reserved.
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+type Sig_atomic_t = int32 /* signal.h:17:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type X__darwin_arm_exception_state = struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+} /* _structs.h:41:1 */
+
+type X__darwin_arm_exception_state64 = struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+} /* _structs.h:59:1 */
+
+type X__darwin_arm_thread_state = struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+} /* _structs.h:77:1 */
+
+// By default, the pointer fields in the arm_thread_state64_t structure are
+// opaque on the arm64e architecture and require the use of accessor macros.
+// This mode can also be enabled on the arm64 architecture by building with
+// -D__DARWIN_OPAQUE_ARM_THREAD_STATE64=1.
+
+type X__darwin_arm_thread_state64 = struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+} /* _structs.h:136:1 */
+
+// Accessor macros for arm_thread_state64_t pointer fields
+
+// Return pc field of arm_thread_state64_t as a data pointer value
+// Return pc field of arm_thread_state64_t as a function pointer
+// Set pc field of arm_thread_state64_t to a function pointer
+// Return lr field of arm_thread_state64_t as a data pointer value
+// Return lr field of arm_thread_state64_t as a function pointer
+// Set lr field of arm_thread_state64_t to a function pointer
+// Return sp field of arm_thread_state64_t as a data pointer value
+// Set sp field of arm_thread_state64_t to a data pointer value
+// Return fp field of arm_thread_state64_t as a data pointer value
+// Set fp field of arm_thread_state64_t to a data pointer value
+// Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t
+
+type X__darwin_arm_vfp_state = struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+} /* _structs.h:433:1 */
+
+type X__darwin_arm_neon_state64 = struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:452:1 */
+
+type X__darwin_arm_neon_state = struct {
+ F__v [16]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:459:1 */
+
+type X__arm_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:523:1 */
+
+// Debug State
+
+// ARM's arm_debug_state is ARM64's arm_legacy_debug_state
+
+type X__arm_legacy_debug_state = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+} /* _structs.h:560:1 */
+
+type X__darwin_arm_debug_state32 = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:583:1 */
+
+type X__darwin_arm_debug_state64 = struct {
+ F__bvr [16]X__uint64_t
+ F__bcr [16]X__uint64_t
+ F__wvr [16]X__uint64_t
+ F__wcr [16]X__uint64_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:593:1 */
+
+type X__darwin_arm_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:625:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+ }
+ F__ss struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+ }
+ F__fs struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+ }
+} /* _mcontext.h:41:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+ }
+ F__ss struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+ }
+ F__ns struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+ }
+} /* _mcontext.h:64:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:85:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:43:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:57:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// C99 7.18.4 Macros for minimum-width integer constants.
+//
+// The standard requires that integer constant macros be defined for all the
+// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width
+// types are required, the corresponding integer constant macros are defined
+// here. This implementation also defines minimum-width types for every other
+// integer width that the target implements, so corresponding macros are
+// defined below, too.
+//
+// These macros are defined using the same successive-shrinking approach as
+// the type definitions above. It is likewise important that macros are defined
+// in order of decending width.
+//
+// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// C99 7.18.2.1 Limits of exact-width integer types.
+// C99 7.18.2.2 Limits of minimum-width integer types.
+// C99 7.18.2.3 Limits of fastest minimum-width integer types.
+//
+// The presence of limit macros are completely optional in C99. This
+// implementation defines limits for all of the types (exact- and
+// minimum-width) that it defines above, using the limits of the minimum-width
+// type for any types that do not have exact-width representations.
+//
+// As in the type definitions, this section takes an approach of
+// successive-shrinking to determine which limits to use for the standard (8,
+// 16, 32, 64) bit widths when they don't have exact representations. It is
+// therefore important that the definitions be kept in order of decending
+// widths.
+//
+// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the
+// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+
+// Some utility macros
+
+// C99 7.18.2.4 Limits of integer types capable of holding object pointers.
+// C99 7.18.3 Limits of other integer types.
+
+// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__
+// is enabled.
+
+// C99 7.18.2.5 Limits of greatest-width integer types.
+
+// C99 7.18.3 Limits of other integer types.
+
+// 7.18.4.2 Macros for greatest-width integer constants.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timeval structure shall be defined as described in
+// <sys/time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The id_t type shall be defined as described in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Resource limit type (low 63 bits, excluding the sign bit)
+type Rlim_t = X__uint64_t /* resource.h:89:25 */
+
+// ****
+//
+// PRIORITY
+
+// Possible values of the first parameter to getpriority()/setpriority(),
+// used to indicate the type of the second parameter.
+
+// Range limitations for the value of the third parameter to setpriority().
+
+// use PRIO_DARWIN_BG to set the current thread into "background" state
+// which lowers CPU, disk IO, and networking priorites until thread terminates
+// or "background" state is revoked
+
+// use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to
+// the GPU. (deprecated)
+
+// ****
+//
+// RESOURCE USAGE
+
+// Possible values of the first parameter to getrusage(), used to indicate
+// the scope of the information to be returned.
+
+// A structure representing an accounting of resource utilization. The
+// address of an instance of this structure is the second parameter to
+// getrusage().
+//
+// Note: All values other than ru_utime and ru_stime are implementaiton
+//
+// defined and subject to change in a future release. Their use
+// is discouraged for standards compliant programs.
+type Rusage = struct {
+ Fru_utime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_stime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_maxrss int64
+ Fru_ixrss int64
+ Fru_idrss int64
+ Fru_isrss int64
+ Fru_minflt int64
+ Fru_majflt int64
+ Fru_nswap int64
+ Fru_inblock int64
+ Fru_oublock int64
+ Fru_msgsnd int64
+ Fru_msgrcv int64
+ Fru_nsignals int64
+ Fru_nvcsw int64
+ Fru_nivcsw int64
+} /* resource.h:152:1 */
+
+// Flavors for proc_pid_rusage().
+
+// Flags for RUSAGE_INFO_V5
+
+type Rusage_info_t = uintptr /* resource.h:199:14 */
+
+type Rusage_info_v0 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+} /* resource.h:201:1 */
+
+type Rusage_info_v1 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+} /* resource.h:215:1 */
+
+type Rusage_info_v2 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+} /* resource.h:235:1 */
+
+type Rusage_info_v3 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+} /* resource.h:257:1 */
+
+type Rusage_info_v4 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+} /* resource.h:288:1 */
+
+type Rusage_info_v5 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+ Fri_flags Uint64_t
+} /* resource.h:327:1 */
+
+type Rusage_info_current = Rusage_info_v5 /* resource.h:367:31 */
+
+// ****
+//
+// RESOURCE LIMITS
+
+// Symbolic constants for resource limits; since all limits are representable
+// as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of
+// RLIM_INFINITY.
+
+// Possible values of the first parameter to getrlimit()/setrlimit(), to
+// indicate for which resource the operation is being performed.
+
+// A structure representing a resource limit. The address of an instance
+// of this structure is the second parameter to getrlimit()/setrlimit().
+type Rlimit = struct {
+ Frlim_cur Rlim_t
+ Frlim_max Rlim_t
+} /* resource.h:411:1 */
+
+// proc_rlimit_control()
+//
+// Resource limit flavors
+
+// Flags for wakeups monitor control.
+
+// Flags for CPU usage monitor control.
+
+// Flags for memory footprint interval tracking.
+
+type Proc_rlimit_control_wakeupmon = struct {
+ Fwm_flags Uint32_t
+ Fwm_rate Int32_t
+} /* resource.h:446:1 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Deprecated:
+// Structure of the information in the status word returned by wait4.
+// If w_stopval==_WSTOPPED, then the second structure describes
+// the information returned, else the first.
+type Wait = struct{ Fw_status int32 } /* wait.h:194:1 */
+
+// built-in for gcc
+
+// built-in for gcc 3
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:86:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:91:3 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:97:3 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */ // getsubopt(3) external variable
+// valloc is now declared in _malloc.h
+
+// Poison the following routines if -fshort-wchar is set
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
new file mode 100644
index 0000000000..3bc6f25a08
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
new file mode 100644
index 0000000000..9db8373146
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
@@ -0,0 +1,5111 @@
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16 // socket.h:379:1:
+ AF_CCITT = 10 // socket.h:373:1:
+ AF_CHAOS = 5 // socket.h:367:1:
+ AF_CNT = 21 // socket.h:384:1:
+ AF_COIP = 20 // socket.h:383:1:
+ AF_DATAKIT = 9 // socket.h:372:1:
+ AF_DECnet = 12 // socket.h:375:1:
+ AF_DLI = 13 // socket.h:376:1:
+ AF_E164 = 28 // socket.h:391:1:
+ AF_ECMA = 8 // socket.h:371:1:
+ AF_HYLINK = 15 // socket.h:378:1:
+ AF_IEEE80211 = 37 // socket.h:403:1:
+ AF_IMPLINK = 3 // socket.h:365:1:
+ AF_INET = 2 // socket.h:363:1:
+ AF_INET6 = 30 // socket.h:394:1:
+ AF_IPX = 23 // socket.h:386:1:
+ AF_ISDN = 28 // socket.h:390:1:
+ AF_ISO = 7 // socket.h:369:1:
+ AF_LAT = 14 // socket.h:377:1:
+ AF_LINK = 18 // socket.h:381:1:
+ AF_LOCAL = 1 // socket.h:361:1:
+ AF_MAX = 41 // socket.h:406:1:
+ AF_NATM = 31 // socket.h:396:1:
+ AF_NDRV = 27 // socket.h:389:1:
+ AF_NETBIOS = 33 // socket.h:398:1:
+ AF_NS = 6 // socket.h:368:1:
+ AF_OSI = 7 // socket.h:370:1:
+ AF_PPP = 34 // socket.h:399:1:
+ AF_PUP = 4 // socket.h:366:1:
+ AF_RESERVED_36 = 36 // socket.h:402:1:
+ AF_ROUTE = 17 // socket.h:380:1:
+ AF_SIP = 24 // socket.h:387:1:
+ AF_SNA = 11 // socket.h:374:1:
+ AF_SYSTEM = 32 // socket.h:397:1:
+ AF_UNIX = 1 // socket.h:359:1:
+ AF_UNSPEC = 0 // socket.h:358:1:
+ AF_UTUN = 38 // socket.h:404:1:
+ AF_VSOCK = 40 // socket.h:405:1:
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ CONNECT_DATA_AUTHENTICATED = 0x4 // socket.h:304:1:
+ CONNECT_DATA_IDEMPOTENT = 0x2 // socket.h:303:1:
+ CONNECT_RESUME_ON_READ_WRITE = 0x1 // socket.h:302:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ KEV_DL_ADDMULTI = 7 // net_kev.h:61:1:
+ KEV_DL_AWDL_RESTRICTED = 26 // net_kev.h:80:1:
+ KEV_DL_AWDL_UNRESTRICTED = 27 // net_kev.h:81:1:
+ KEV_DL_DELMULTI = 8 // net_kev.h:62:1:
+ KEV_DL_IFCAP_CHANGED = 19 // net_kev.h:73:1:
+ KEV_DL_IFDELEGATE_CHANGED = 25 // net_kev.h:79:1:
+ KEV_DL_IF_ATTACHED = 9 // net_kev.h:63:1:
+ KEV_DL_IF_DETACHED = 11 // net_kev.h:65:1:
+ KEV_DL_IF_DETACHING = 10 // net_kev.h:64:1:
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18 // net_kev.h:72:1:
+ KEV_DL_ISSUES = 24 // net_kev.h:78:1:
+ KEV_DL_LINK_ADDRESS_CHANGED = 16 // net_kev.h:70:1:
+ KEV_DL_LINK_OFF = 12 // net_kev.h:66:1:
+ KEV_DL_LINK_ON = 13 // net_kev.h:67:1:
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20 // net_kev.h:74:1:
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30 // net_kev.h:84:1:
+ KEV_DL_NODE_ABSENCE = 22 // net_kev.h:76:1:
+ KEV_DL_NODE_PRESENCE = 21 // net_kev.h:75:1:
+ KEV_DL_PRIMARY_ELECTED = 23 // net_kev.h:77:1:
+ KEV_DL_PROTO_ATTACHED = 14 // net_kev.h:68:1:
+ KEV_DL_PROTO_DETACHED = 15 // net_kev.h:69:1:
+ KEV_DL_QOS_MODE_CHANGED = 29 // net_kev.h:83:1:
+ KEV_DL_RRC_STATE_CHANGED = 28 // net_kev.h:82:1:
+ KEV_DL_SIFFLAGS = 1 // net_kev.h:55:1:
+ KEV_DL_SIFGENERIC = 6 // net_kev.h:60:1:
+ KEV_DL_SIFMEDIA = 5 // net_kev.h:59:1:
+ KEV_DL_SIFMETRICS = 2 // net_kev.h:56:1:
+ KEV_DL_SIFMTU = 3 // net_kev.h:57:1:
+ KEV_DL_SIFPHYS = 4 // net_kev.h:58:1:
+ KEV_DL_SUBCLASS = 2 // net_kev.h:50:1:
+ KEV_DL_WAKEFLAGS_CHANGED = 17 // net_kev.h:71:1:
+ KEV_INET6_ADDR_DELETED = 3 // net_kev.h:93:1:
+ KEV_INET6_CHANGED_ADDR = 2 // net_kev.h:92:1:
+ KEV_INET6_DEFROUTER = 6 // net_kev.h:96:1:
+ KEV_INET6_NEW_LL_ADDR = 4 // net_kev.h:94:1:
+ KEV_INET6_NEW_RTADV_ADDR = 5 // net_kev.h:95:1:
+ KEV_INET6_NEW_USER_ADDR = 1 // net_kev.h:91:1:
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7 // net_kev.h:97:1:
+ KEV_INET6_SUBCLASS = 6 // net_kev.h:89:1:
+ KEV_INET_ADDR_DELETED = 3 // net_kev.h:39:1:
+ KEV_INET_ARPCOLLISION = 7 // net_kev.h:43:1:
+ KEV_INET_ARPRTRALIVE = 10 // net_kev.h:48:1:
+ KEV_INET_ARPRTRFAILURE = 9 // net_kev.h:47:1:
+ KEV_INET_CHANGED_ADDR = 2 // net_kev.h:38:1:
+ KEV_INET_NEW_ADDR = 1 // net_kev.h:37:1:
+ KEV_INET_PORTINUSE = 8 // net_kev.h:45:1:
+ KEV_INET_SIFBRDADDR = 5 // net_kev.h:41:1:
+ KEV_INET_SIFDSTADDR = 4 // net_kev.h:40:1:
+ KEV_INET_SIFNETMASK = 6 // net_kev.h:42:1:
+ KEV_INET_SUBCLASS = 1 // net_kev.h:35:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ MSG_CTRUNC = 0x20 // socket.h:569:1:
+ MSG_DONTROUTE = 0x4 // socket.h:566:1:
+ MSG_DONTWAIT = 0x80 // socket.h:572:1:
+ MSG_EOF = 0x100 // socket.h:573:1:
+ MSG_EOR = 0x8 // socket.h:567:1:
+ MSG_FLUSH = 0x400 // socket.h:578:1:
+ MSG_HAVEMORE = 0x2000 // socket.h:581:1:
+ MSG_HOLD = 0x800 // socket.h:579:1:
+ MSG_NEEDSA = 0x10000 // socket.h:584:1:
+ MSG_NOSIGNAL = 0x80000 // socket.h:588:1:
+ MSG_OOB = 0x1 // socket.h:564:1:
+ MSG_PEEK = 0x2 // socket.h:565:1:
+ MSG_RCVMORE = 0x4000 // socket.h:582:1:
+ MSG_SEND = 0x1000 // socket.h:580:1:
+ MSG_TRUNC = 0x10 // socket.h:568:1:
+ MSG_WAITALL = 0x40 // socket.h:570:1:
+ MSG_WAITSTREAM = 0x200 // socket.h:576:1:
+ NBBY = 8 // types.h:186:1:
+ NETSVC_MRKNG_LVL_L2 = 1 // socket.h:287:1:
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2 // socket.h:288:1:
+ NETSVC_MRKNG_LVL_L3L2_BK = 3 // socket.h:289:1:
+ NETSVC_MRKNG_UNKNOWN = 0 // socket.h:286:1:
+ NET_MAXID = 41 // socket.h:512:1:
+ NET_RT_DUMP = 1 // socket.h:525:1:
+ NET_RT_DUMP2 = 7 // socket.h:531:1:
+ NET_RT_FLAGS = 2 // socket.h:526:1:
+ NET_RT_FLAGS_PRIV = 10 // socket.h:536:1:
+ NET_RT_IFLIST = 3 // socket.h:527:1:
+ NET_RT_IFLIST2 = 6 // socket.h:530:1:
+ NET_RT_MAXID = 11 // socket.h:537:1:
+ NET_RT_STAT = 4 // socket.h:528:1:
+ NET_RT_TRASH = 5 // socket.h:529:1:
+ NET_SERVICE_TYPE_AV = 6 // socket.h:280:1:
+ NET_SERVICE_TYPE_BE = 0 // socket.h:274:1:
+ NET_SERVICE_TYPE_BK = 1 // socket.h:275:1:
+ NET_SERVICE_TYPE_OAM = 7 // socket.h:281:1:
+ NET_SERVICE_TYPE_RD = 8 // socket.h:282:1:
+ NET_SERVICE_TYPE_RV = 5 // socket.h:279:1:
+ NET_SERVICE_TYPE_SIG = 2 // socket.h:276:1:
+ NET_SERVICE_TYPE_VI = 3 // socket.h:277:1:
+ NET_SERVICE_TYPE_VO = 4 // socket.h:278:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ PF_APPLETALK = 16 // socket.h:474:1:
+ PF_CCITT = 10 // socket.h:468:1:
+ PF_CHAOS = 5 // socket.h:462:1:
+ PF_CNT = 21 // socket.h:479:1:
+ PF_COIP = 20 // socket.h:478:1:
+ PF_DATAKIT = 9 // socket.h:467:1:
+ PF_DECnet = 12 // socket.h:470:1:
+ PF_DLI = 13 // socket.h:471:1:
+ PF_ECMA = 8 // socket.h:466:1:
+ PF_HYLINK = 15 // socket.h:473:1:
+ PF_IMPLINK = 3 // socket.h:460:1:
+ PF_INET = 2 // socket.h:459:1:
+ PF_INET6 = 30 // socket.h:487:1:
+ PF_IPX = 23 // socket.h:481:1:
+ PF_ISDN = 28 // socket.h:485:1:
+ PF_ISO = 7 // socket.h:464:1:
+ PF_KEY = 29 // socket.h:486:1:
+ PF_LAT = 14 // socket.h:472:1:
+ PF_LINK = 18 // socket.h:476:1:
+ PF_LOCAL = 1 // socket.h:457:1:
+ PF_MAX = 41 // socket.h:495:1:
+ PF_NATM = 31 // socket.h:488:1:
+ PF_NDRV = 27 // socket.h:484:1:
+ PF_NETBIOS = 33 // socket.h:490:1:
+ PF_NS = 6 // socket.h:463:1:
+ PF_OSI = 7 // socket.h:465:1:
+ PF_PIP = 25 // socket.h:483:1:
+ PF_PPP = 34 // socket.h:491:1:
+ PF_PUP = 4 // socket.h:461:1:
+ PF_RESERVED_36 = 36 // socket.h:492:1:
+ PF_ROUTE = 17 // socket.h:475:1:
+ PF_RTIP = 22 // socket.h:482:1:
+ PF_SIP = 24 // socket.h:480:1:
+ PF_SNA = 11 // socket.h:469:1:
+ PF_SYSTEM = 32 // socket.h:489:1:
+ PF_UNIX = 1 // socket.h:458:1:
+ PF_UNSPEC = 0 // socket.h:456:1:
+ PF_UTUN = 38 // socket.h:493:1:
+ PF_VSOCK = 40 // socket.h:494:1:
+ PF_XTP = 19 // socket.h:477:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ RSIZE_MAX = 9223372036854775807 // stdint.h:658:1:
+ SAE_ASSOCID_ANY = 0 // socket.h:294:1:
+ SAE_CONNID_ANY = 0 // socket.h:298:1:
+ SCM_CREDS = 0x03 // socket.h:674:1:
+ SCM_RIGHTS = 0x01 // socket.h:671:1:
+ SCM_TIMESTAMP = 0x02 // socket.h:673:1:
+ SCM_TIMESTAMP_MONOTONIC = 0x04 // socket.h:675:1:
+ SHUT_RD = 0 // socket.h:683:1:
+ SHUT_RDWR = 2 // socket.h:685:1:
+ SHUT_WR = 1 // socket.h:684:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ SOCK_DGRAM = 2 // socket.h:113:1:
+ SOCK_MAXADDRLEN = 255 // socket.h:419:1:
+ SOCK_RAW = 3 // socket.h:114:1:
+ SOCK_RDM = 4 // socket.h:116:1:
+ SOCK_SEQPACKET = 5 // socket.h:118:1:
+ SOCK_STREAM = 1 // socket.h:112:1:
+ SOL_SOCKET = 0xffff // socket.h:352:1:
+ SOMAXCONN = 128 // socket.h:546:1:
+ SONPX_SETOPTSHUT = 0x000000001 // socket.h:342:1:
+ SO_ACCEPTCONN = 0x0002 // socket.h:124:1:
+ SO_BROADCAST = 0x0020 // socket.h:128:1:
+ SO_DEBUG = 0x0001 // socket.h:123:1:
+ SO_DONTROUTE = 0x0010 // socket.h:127:1:
+ SO_DONTTRUNC = 0x2000 // socket.h:143:1:
+ SO_ERROR = 0x1007 // socket.h:161:1:
+ SO_KEEPALIVE = 0x0008 // socket.h:126:1:
+ SO_LABEL = 0x1010 // socket.h:164:1:
+ SO_LINGER = 0x0080 // socket.h:131:1:
+ SO_LINGER_SEC = 0x1080 // socket.h:177:1:
+ SO_NETSVC_MARKING_LEVEL = 0x1119 // socket.h:186:1:
+ SO_NET_SERVICE_TYPE = 0x1116 // socket.h:183:1:
+ SO_NKE = 0x1021 // socket.h:168:1:
+ SO_NOADDRERR = 0x1023 // socket.h:170:1:
+ SO_NOSIGPIPE = 0x1022 // socket.h:169:1:
+ SO_NOTIFYCONFLICT = 0x1026 // socket.h:174:1:
+ SO_NP_EXTENSIONS = 0x1083 // socket.h:179:1:
+ SO_NREAD = 0x1020 // socket.h:167:1:
+ SO_NUMRCVPKT = 0x1112 // socket.h:182:1:
+ SO_NWRITE = 0x1024 // socket.h:171:1:
+ SO_OOBINLINE = 0x0100 // socket.h:135:1:
+ SO_PEERLABEL = 0x1011 // socket.h:165:1:
+ SO_RANDOMPORT = 0x1082 // socket.h:178:1:
+ SO_RCVBUF = 0x1002 // socket.h:156:1:
+ SO_RCVLOWAT = 0x1004 // socket.h:158:1:
+ SO_RCVTIMEO = 0x1006 // socket.h:160:1:
+ SO_REUSEADDR = 0x0004 // socket.h:125:1:
+ SO_REUSEPORT = 0x0200 // socket.h:137:1:
+ SO_REUSESHAREUID = 0x1025 // socket.h:172:1:
+ SO_SNDBUF = 0x1001 // socket.h:155:1:
+ SO_SNDLOWAT = 0x1003 // socket.h:157:1:
+ SO_SNDTIMEO = 0x1005 // socket.h:159:1:
+ SO_TIMESTAMP = 0x0400 // socket.h:138:1:
+ SO_TIMESTAMP_MONOTONIC = 0x0800 // socket.h:139:1:
+ SO_TYPE = 0x1008 // socket.h:162:1:
+ SO_UPCALLCLOSEWAIT = 0x1027 // socket.h:175:1:
+ SO_USELOOPBACK = 0x0040 // socket.h:130:1:
+ SO_WANTMORE = 0x4000 // socket.h:145:1:
+ SO_WANTOOBFLAG = 0x8000 // socket.h:146:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_ARM__PARAM_H_ = 0 // _param.h:6:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__PARAM_H_ = 0 // _param.h:29:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CADDR_T = 0 // _caddr_t.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FSBLKCNT_T = 0 // _fsblkcnt_t.h:29:1:
+ X_FSFILCNT_T = 0 // _fsfilcnt_t.h:29:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_IN_ADDR_T = 0 // _in_addr_t.h:29:1:
+ X_IN_PORT_T = 0 // _in_port_t.h:29:1:
+ X_KEY_T = 0 // _key_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NET_NETKEV_H_ = 0 // net_kev.h:30:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RSIZE_T = 0 // _rsize_t.h:29:1:
+ X_SA_FAMILY_T = 0 // _sa_family_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SOCKLEN_T = 0 // _socklen_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SS_MAXSIZE = 128 // socket.h:434:1:
+ X_STRUCT_IOVEC = 0 // _iovec_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_SOCKET_H_ = 0 // socket.h:73:1:
+ X_SYS_TYPES_H_ = 0 // types.h:70:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_U_CHAR = 0 // _u_char.h:29:1:
+ X_U_INT = 0 // _u_int.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_U_LONG = 0 // types.h:89:1:
+ X_U_SHORT = 0 // _u_short.h:29:1:
+ Pseudo_AF_HDRCMPLT = 35 // socket.h:400:1:
+ Pseudo_AF_KEY = 29 // socket.h:392:1:
+ Pseudo_AF_PIP = 25 // socket.h:388:1:
+ Pseudo_AF_RTIP = 22 // socket.h:385:1:
+ Pseudo_AF_XTP = 19 // socket.h:382:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+// NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+// support for mandatory and extensible security protections. This notice
+// is included in support of clause 2.2 (b) of the Apple Public License,
+// Version 2.0.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// PF_ROUTE - Routing table
+//
+// Three additional levels are defined:
+// Fourth: address family, 0 is wildcard
+// Fifth: type of info, defined below
+// Sixth: flag(s) to mask with for NET_RT_FLAGS
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// Header for ancillary data objects in msg_control buffer.
+// Used for additional information with/about a datagram
+// not expressible by flags. The format is a sequence
+// of message elements headed by cmsghdr structures.
+type Cmsghdr = struct {
+ Fcmsg_len Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
new file mode 100644
index 0000000000..934d8ff43c
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
new file mode 100644
index 0000000000..450a42ac98
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
@@ -0,0 +1,2332 @@
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSPERMS = 511 // stat.h:297:1:
+ ALLPERMS = 4095 // stat.h:299:1:
+ DEFFILEMODE = 438 // stat.h:301:1:
+ EF_IS_PURGEABLE = 0x00000008 // stat.h:371:1:
+ EF_IS_SPARSE = 0x00000010 // stat.h:372:1:
+ EF_IS_SYNC_ROOT = 0x00000004 // stat.h:370:1:
+ EF_IS_SYNTHETIC = 0x00000020 // stat.h:373:1:
+ EF_MAY_SHARE_BLOCKS = 0x00000001 // stat.h:368:1:
+ EF_NO_XATTRS = 0x00000002 // stat.h:369:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ SF_APPEND = 0x00040000 // stat.h:340:1:
+ SF_ARCHIVED = 0x00010000 // stat.h:338:1:
+ SF_DATALESS = 0x40000000 // stat.h:359:1:
+ SF_FIRMLINK = 0x00800000 // stat.h:351:1:
+ SF_IMMUTABLE = 0x00020000 // stat.h:339:1:
+ SF_NOUNLINK = 0x00100000 // stat.h:342:1:
+ SF_RESTRICTED = 0x00080000 // stat.h:341:1:
+ SF_SETTABLE = 0x3fff0000 // stat.h:336:1:
+ SF_SUPPORTED = 0x009f0000 // stat.h:335:1:
+ SF_SYNTHETIC = 0xc0000000 // stat.h:337:1:
+ S_BLKSIZE = 512 // stat.h:303:1:
+ S_IEXEC = 64 // _s_ifmt.h:72:1:
+ S_IFBLK = 0060000 // _s_ifmt.h:39:1:
+ S_IFCHR = 0020000 // _s_ifmt.h:37:1:
+ S_IFDIR = 0040000 // _s_ifmt.h:38:1:
+ S_IFIFO = 0010000 // _s_ifmt.h:36:1:
+ S_IFLNK = 0120000 // _s_ifmt.h:41:1:
+ S_IFMT = 0170000 // _s_ifmt.h:35:1:
+ S_IFREG = 0100000 // _s_ifmt.h:40:1:
+ S_IFSOCK = 0140000 // _s_ifmt.h:42:1:
+ S_IFWHT = 0160000 // _s_ifmt.h:44:1:
+ S_IREAD = 256 // _s_ifmt.h:70:1:
+ S_IRGRP = 0000040 // _s_ifmt.h:55:1:
+ S_IROTH = 0000004 // _s_ifmt.h:60:1:
+ S_IRUSR = 0000400 // _s_ifmt.h:50:1:
+ S_IRWXG = 0000070 // _s_ifmt.h:54:1:
+ S_IRWXO = 0000007 // _s_ifmt.h:59:1:
+ S_IRWXU = 0000700 // _s_ifmt.h:49:1:
+ S_ISGID = 0002000 // _s_ifmt.h:65:1:
+ S_ISTXT = 512 // _s_ifmt.h:69:1:
+ S_ISUID = 0004000 // _s_ifmt.h:64:1:
+ S_ISVTX = 0001000 // _s_ifmt.h:66:1:
+ S_IWGRP = 0000020 // _s_ifmt.h:56:1:
+ S_IWOTH = 0000002 // _s_ifmt.h:61:1:
+ S_IWRITE = 128 // _s_ifmt.h:71:1:
+ S_IWUSR = 0000200 // _s_ifmt.h:51:1:
+ S_IXGRP = 0000010 // _s_ifmt.h:57:1:
+ S_IXOTH = 0000001 // _s_ifmt.h:62:1:
+ S_IXUSR = 0000100 // _s_ifmt.h:52:1:
+ UF_APPEND = 0x00000004 // stat.h:313:1:
+ UF_COMPRESSED = 0x00000020 // stat.h:320:1:
+ UF_DATAVAULT = 0x00000080 // stat.h:326:1:
+ UF_HIDDEN = 0x00008000 // stat.h:330:1:
+ UF_IMMUTABLE = 0x00000002 // stat.h:312:1:
+ UF_NODUMP = 0x00000001 // stat.h:311:1:
+ UF_OPAQUE = 0x00000008 // stat.h:314:1:
+ UF_SETTABLE = 0x0000ffff // stat.h:310:1:
+ UF_TRACKED = 0x00000040 // stat.h:324:1:
+ UTIME_NOW = -1 // stat.h:395:1:
+ UTIME_OMIT = -2 // stat.h:396:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_FILESEC_T = 0 // _filesec_t.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_SYS_STAT_H_ = 0 // stat.h:71:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ F__ccgo_pad1 [6]byte
+ Fst_ino Ino_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_uid X__uint16_t
+ Fst_gid X__uint16_t
+ Fst_rdev X__uint16_t
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
new file mode 100644
index 0000000000..a5626d11a6
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
new file mode 100644
index 0000000000..02a8def174
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
@@ -0,0 +1,4136 @@
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321 // endian.h:72:1:
+ BYTE_ORDER = 1234 // endian.h:75:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ INT16_MAX = 32767 // stdint.h:599:1:
+ INT16_MIN = -32768 // stdint.h:600:1:
+ INT32_MAX = 2147483647 // stdint.h:555:1:
+ INT32_MIN = -2147483648 // stdint.h:556:1:
+ INT64_MAX = 9223372036854775807 // stdint.h:461:1:
+ INT64_MIN = -9223372036854775808 // stdint.h:462:1:
+ INT8_MAX = 127 // stdint.h:621:1:
+ INT8_MIN = -128 // stdint.h:622:1:
+ INTMAX_MAX = 9223372036854775807 // stdint.h:663:1:
+ INTMAX_MIN = -9223372036854775808 // stdint.h:662:1:
+ INTPTR_MAX = 9223372036854775807 // stdint.h:649:1:
+ INTPTR_MIN = -9223372036854775808 // stdint.h:648:1:
+ INT_FAST16_MAX = 32767 // stdint.h:615:1:
+ INT_FAST16_MIN = -32768 // stdint.h:614:1:
+ INT_FAST32_MAX = 2147483647 // stdint.h:574:1:
+ INT_FAST32_MIN = -2147483648 // stdint.h:573:1:
+ INT_FAST64_MAX = 9223372036854775807 // stdint.h:483:1:
+ INT_FAST64_MIN = -9223372036854775808 // stdint.h:482:1:
+ INT_FAST8_MAX = 127 // stdint.h:634:1:
+ INT_FAST8_MIN = -128 // stdint.h:633:1:
+ INT_LEAST16_MAX = 32767 // stdint.h:612:1:
+ INT_LEAST16_MIN = -32768 // stdint.h:611:1:
+ INT_LEAST32_MAX = 2147483647 // stdint.h:571:1:
+ INT_LEAST32_MIN = -2147483648 // stdint.h:570:1:
+ INT_LEAST64_MAX = 9223372036854775807 // stdint.h:480:1:
+ INT_LEAST64_MIN = -9223372036854775808 // stdint.h:479:1:
+ INT_LEAST8_MAX = 127 // stdint.h:631:1:
+ INT_LEAST8_MIN = -128 // stdint.h:630:1:
+ LITTLE_ENDIAN = 1234 // endian.h:71:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ NBBY = 8 // types.h:186:1:
+ PDP_ENDIAN = 3412 // endian.h:73:1:
+ PTRDIFF_MAX = 9223372036854775807 // stdint.h:652:1:
+ PTRDIFF_MIN = -9223372036854775808 // stdint.h:651:1:
+ RSIZE_MAX = 9223372036854775807 // stdint.h:658:1:
+ SIG_ATOMIC_MAX = 2147483647 // stdint.h:668:1:
+ SIG_ATOMIC_MIN = -2147483648 // stdint.h:667:1:
+ SIZE_MAX = 18446744073709551615 // stdint.h:653:1:
+ UINT16_MAX = 65535 // stdint.h:601:1:
+ UINT32_MAX = 4294967295 // stdint.h:557:1:
+ UINT64_MAX = 18446744073709551615 // stdint.h:463:1:
+ UINT8_MAX = 255 // stdint.h:623:1:
+ UINTMAX_MAX = 18446744073709551615 // stdint.h:664:1:
+ UINTPTR_MAX = 18446744073709551615 // stdint.h:650:1:
+ UINT_FAST16_MAX = 65535 // stdint.h:616:1:
+ UINT_FAST32_MAX = 4294967295 // stdint.h:575:1:
+ UINT_FAST64_MAX = 18446744073709551615 // stdint.h:484:1:
+ UINT_FAST8_MAX = 255 // stdint.h:635:1:
+ UINT_LEAST16_MAX = 65535 // stdint.h:613:1:
+ UINT_LEAST32_MAX = 4294967295 // stdint.h:572:1:
+ UINT_LEAST64_MAX = 18446744073709551615 // stdint.h:481:1:
+ UINT_LEAST8_MAX = 255 // stdint.h:632:1:
+ WCHAR_MAX = 2147483647 // stdint.h:678:1:
+ WCHAR_MIN = -2147483648 // stdint.h:682:1:
+ WINT_MAX = 2147483647 // stdint.h:674:1:
+ WINT_MIN = -2147483648 // stdint.h:673:1:
+ X_ARM_ARCH_H = 0 // arch.h:29:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_ARM__ENDIAN_H_ = 0 // endian.h:43:1:
+ X_BLKCNT_T = 0 // _blkcnt_t.h:29:1:
+ X_BLKSIZE_T = 0 // _blksize_t.h:29:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_ENDIAN_H_ = 0 // endian.h:32:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CADDR_T = 0 // _caddr_t.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CLOCK_T = 0 // _clock_t.h:29:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_ERRNO_T = 0 // _errno_t.h:29:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FSBLKCNT_T = 0 // _fsblkcnt_t.h:29:1:
+ X_FSFILCNT_T = 0 // _fsfilcnt_t.h:29:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_ID_T = 0 // _id_t.h:29:1:
+ X_INO64_T = 0 // _ino64_t.h:29:1:
+ X_INO_T = 0 // _ino_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_IN_ADDR_T = 0 // _in_addr_t.h:29:1:
+ X_IN_PORT_T = 0 // _in_port_t.h:29:1:
+ X_KEY_T = 0 // _key_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_NLINK_T = 0 // _nlink_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_OS_OSBYTEORDERARM_H = 0 // OSByteOrder.h:6:1:
+ X_OS__OSBYTEORDER_H = 0 // _OSByteOrder.h:30:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_PTHREAD_ATTR_T = 0 // _pthread_attr_t.h:29:1:
+ X_PTHREAD_CONDATTR_T = 0 // _pthread_condattr_t.h:29:1:
+ X_PTHREAD_COND_T = 0 // _pthread_cond_t.h:29:1:
+ X_PTHREAD_KEY_T = 0 // _pthread_key_t.h:29:1:
+ X_PTHREAD_MUTEXATTR_T = 0 // _pthread_mutexattr_t.h:29:1:
+ X_PTHREAD_MUTEX_T = 0 // _pthread_mutex_t.h:29:1:
+ X_PTHREAD_ONCE_T = 0 // _pthread_once_t.h:29:1:
+ X_PTHREAD_RWLOCKATTR_T = 0 // _pthread_rwlockattr_t.h:29:1:
+ X_PTHREAD_RWLOCK_T = 0 // _pthread_rwlock_t.h:29:1:
+ X_PTHREAD_T = 0 // _pthread_t.h:29:1:
+ X_QUAD_HIGHWORD = 1 // endian.h:56:1:
+ X_QUAD_LOWWORD = 0 // endian.h:57:1:
+ X_RSIZE_T = 0 // _rsize_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_TYPES_H_ = 0 // types.h:70:1:
+ X_SYS__ENDIAN_H_ = 0 // _endian.h:91:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_U_CHAR = 0 // _u_char.h:29:1:
+ X_U_INT = 0 // _u_int.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_U_LONG = 0 // types.h:89:1:
+ X_U_SHORT = 0 // _u_short.h:29:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+type Uint64_t = uint64 /* stdint.h:98:25 */
+
+type Int_least64_t = Int64_t /* stdint.h:110:25 */
+type Uint_least64_t = Uint64_t /* stdint.h:111:26 */
+type Int_fast64_t = Int64_t /* stdint.h:112:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */
+
+type Uint32_t = uint32 /* stdint.h:172:25 */
+
+type Int_least32_t = Int32_t /* stdint.h:184:25 */
+type Uint_least32_t = Uint32_t /* stdint.h:185:26 */
+type Int_fast32_t = Int32_t /* stdint.h:186:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */
+type Uint16_t = uint16 /* stdint.h:207:25 */
+
+type Int_least16_t = Int16_t /* stdint.h:215:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:216:26 */
+type Int_fast16_t = Int16_t /* stdint.h:217:25 */
+type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */
+type Uint8_t = uint8 /* stdint.h:226:24 */
+
+type Int_least8_t = Int8_t /* stdint.h:232:24 */
+type Uint_least8_t = Uint8_t /* stdint.h:233:25 */
+type Int_fast8_t = Int8_t /* stdint.h:234:24 */
+type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */
+
+// prevent glibc sys/types.h from defining conflicting types
+
+// C99 7.18.1.4 Integer types capable of holding object pointers.
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64 /* stdint.h:262:26 */
+type Uintmax_t = uint64 /* stdint.h:263:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/capi_darwin_arm64.go b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go
new file mode 100644
index 0000000000..f663be11de
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo termios/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o termios/termios_darwin_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/termios/termios_darwin_arm64.go b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go
new file mode 100644
index 0000000000..9235fb4604
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go
@@ -0,0 +1,1570 @@
+// Code generated by 'ccgo termios/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o termios/termios_darwin_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200 // termios.h:249:1:
+ B0 = 0 // termios.h:291:1:
+ B110 = 110 // termios.h:294:1:
+ B115200 = 115200 // termios.h:313:1:
+ B1200 = 1200 // termios.h:300:1:
+ B134 = 134 // termios.h:295:1:
+ B14400 = 14400 // termios.h:309:1:
+ B150 = 150 // termios.h:296:1:
+ B1800 = 1800 // termios.h:301:1:
+ B19200 = 19200 // termios.h:305:1:
+ B200 = 200 // termios.h:297:1:
+ B230400 = 230400 // termios.h:314:1:
+ B2400 = 2400 // termios.h:302:1:
+ B28800 = 28800 // termios.h:310:1:
+ B300 = 300 // termios.h:298:1:
+ B38400 = 38400 // termios.h:306:1:
+ B4800 = 4800 // termios.h:303:1:
+ B50 = 50 // termios.h:292:1:
+ B57600 = 57600 // termios.h:311:1:
+ B600 = 600 // termios.h:299:1:
+ B7200 = 7200 // termios.h:308:1:
+ B75 = 75 // termios.h:293:1:
+ B76800 = 76800 // termios.h:312:1:
+ B9600 = 9600 // termios.h:304:1:
+ BRKINT = 0x00000002 // termios.h:120:1:
+ BS0 = 0x00000000 // termios.h:190:1:
+ BS1 = 0x00008000 // termios.h:191:1:
+ BSDLY = 0x00008000 // termios.h:159:1:
+ CBRK = 255 // ttydefaults.h:107:1:
+ CCAR_OFLOW = 0x00100000 // termios.h:222:1:
+ CCTS_OFLOW = 0x00010000 // termios.h:217:1:
+ CDISCARD = 15 // ttydefaults.h:102:1:
+ CDSR_OFLOW = 0x00080000 // termios.h:221:1:
+ CDSUSP = 25 // ttydefaults.h:98:1:
+ CDTR_IFLOW = 0x00040000 // termios.h:220:1:
+ CEOF = 4 // ttydefaults.h:88:1:
+ CEOL = 0xff // ttydefaults.h:89:1:
+ CEOT = 4 // ttydefaults.h:105:1:
+ CERASE = 0177 // ttydefaults.h:90:1:
+ CFLUSH = 15 // ttydefaults.h:109:1:
+ CIGNORE = 0x00000001 // termios.h:203:1:
+ CINTR = 3 // ttydefaults.h:91:1:
+ CKILL = 21 // ttydefaults.h:93:1:
+ CLNEXT = 22 // ttydefaults.h:101:1:
+ CLOCAL = 0x00008000 // termios.h:215:1:
+ CMIN = 1 // ttydefaults.h:94:1:
+ CQUIT = 034 // ttydefaults.h:95:1:
+ CR0 = 0x00000000 // termios.h:184:1:
+ CR1 = 0x00001000 // termios.h:185:1:
+ CR2 = 0x00002000 // termios.h:186:1:
+ CR3 = 0x00003000 // termios.h:187:1:
+ CRDLY = 0x00003000 // termios.h:157:1:
+ CREAD = 0x00000800 // termios.h:211:1:
+ CREPRINT = 18 // ttydefaults.h:104:1:
+ CRPRNT = 18 // ttydefaults.h:108:1:
+ CRTSCTS = 196608 // termios.h:218:1:
+ CRTS_IFLOW = 0x00020000 // termios.h:219:1:
+ CS5 = 0x00000000 // termios.h:206:1:
+ CS6 = 0x00000100 // termios.h:207:1:
+ CS7 = 0x00000200 // termios.h:208:1:
+ CS8 = 0x00000300 // termios.h:209:1:
+ CSIZE = 0x00000300 // termios.h:205:1:
+ CSTART = 17 // ttydefaults.h:99:1:
+ CSTATUS = 20 // ttydefaults.h:92:1:
+ CSTOP = 19 // ttydefaults.h:100:1:
+ CSTOPB = 0x00000400 // termios.h:210:1:
+ CSUSP = 26 // ttydefaults.h:96:1:
+ CTIME = 0 // ttydefaults.h:97:1:
+ CWERASE = 23 // ttydefaults.h:103:1:
+ ECHO = 0x00000008 // termios.h:240:1:
+ ECHOCTL = 0x00000040 // termios.h:244:1:
+ ECHOE = 0x00000002 // termios.h:238:1:
+ ECHOK = 0x00000004 // termios.h:239:1:
+ ECHOKE = 0x00000001 // termios.h:236:1:
+ ECHONL = 0x00000010 // termios.h:241:1:
+ ECHOPRT = 0x00000020 // termios.h:243:1:
+ EXTA = 19200 // termios.h:315:1:
+ EXTB = 38400 // termios.h:316:1:
+ EXTPROC = 0x00000800 // termios.h:253:1:
+ FF0 = 0x00000000 // termios.h:188:1:
+ FF1 = 0x00004000 // termios.h:189:1:
+ FFDLY = 0x00004000 // termios.h:158:1:
+ FLUSHO = 0x00800000 // termios.h:257:1:
+ HUPCL = 0x00004000 // termios.h:214:1:
+ ICANON = 0x00000100 // termios.h:247:1:
+ ICRNL = 0x00000100 // termios.h:127:1:
+ IEXTEN = 0x00000400 // termios.h:251:1:
+ IGNBRK = 0x00000001 // termios.h:119:1:
+ IGNCR = 0x00000080 // termios.h:126:1:
+ IGNPAR = 0x00000004 // termios.h:121:1:
+ IMAXBEL = 0x00002000 // termios.h:132:1:
+ INLCR = 0x00000040 // termios.h:125:1:
+ INPCK = 0x00000010 // termios.h:123:1:
+ IOCPARM_MASK = 0x1fff // ioccom.h:74:1:
+ IOCPARM_MAX = 8192 // ioccom.h:79:1:
+ ISIG = 0x00000080 // termios.h:246:1:
+ ISTRIP = 0x00000020 // termios.h:124:1:
+ IUTF8 = 0x00004000 // termios.h:133:1:
+ IXANY = 0x00000800 // termios.h:130:1:
+ IXOFF = 0x00000400 // termios.h:129:1:
+ IXON = 0x00000200 // termios.h:128:1:
+ MDMBUF = 0x00100000 // termios.h:223:1:
+ NCCS = 20 // termios.h:108:1:
+ NL0 = 0x00000000 // termios.h:173:1:
+ NL1 = 0x00000100 // termios.h:174:1:
+ NL2 = 0x00000200 // termios.h:176:1:
+ NL3 = 0x00000300 // termios.h:177:1:
+ NLDLY = 0x00000300 // termios.h:155:1:
+ NOFLSH = 0x80000000 // termios.h:261:1:
+ NOKERNINFO = 0x02000000 // termios.h:258:1:
+ OCRNL = 0x00000010 // termios.h:151:1:
+ OFDEL = 0x00020000 // termios.h:161:1:
+ OFILL = 0x00000080 // termios.h:154:1:
+ ONLCR = 0x00000002 // termios.h:140:1:
+ ONLRET = 0x00000040 // termios.h:153:1:
+ ONOCR = 0x00000020 // termios.h:152:1:
+ ONOEOT = 0x00000008 // termios.h:143:1:
+ OPOST = 0x00000001 // termios.h:139:1:
+ OXTABS = 0x00000004 // termios.h:142:1:
+ PARENB = 0x00001000 // termios.h:212:1:
+ PARMRK = 0x00000008 // termios.h:122:1:
+ PARODD = 0x00002000 // termios.h:213:1:
+ PENDIN = 0x20000000 // termios.h:259:1:
+ PPPDISC = 5 // ttycom.h:171:1:
+ SLIPDISC = 4 // ttycom.h:170:1:
+ TAB0 = 0x00000000 // termios.h:179:1:
+ TAB1 = 0x00000400 // termios.h:180:1:
+ TAB2 = 0x00000800 // termios.h:181:1:
+ TAB3 = 0x00000004 // termios.h:183:1:
+ TABDLY = 0x00000c04 // termios.h:156:1:
+ TABLDISC = 3 // ttycom.h:169:1:
+ TCIFLUSH = 1 // termios.h:320:1:
+ TCIOFF = 3 // termios.h:325:1:
+ TCIOFLUSH = 3 // termios.h:322:1:
+ TCION = 4 // termios.h:326:1:
+ TCOFLUSH = 2 // termios.h:321:1:
+ TCOOFF = 1 // termios.h:323:1:
+ TCOON = 2 // termios.h:324:1:
+ TCSADRAIN = 1 // termios.h:282:1:
+ TCSAFLUSH = 2 // termios.h:283:1:
+ TCSANOW = 0 // termios.h:281:1:
+ TCSASOFT = 0x10 // termios.h:285:1:
+ TIOCM_CAR = 0100 // ttycom.h:97:1:
+ TIOCM_CD = 64 // ttycom.h:98:1:
+ TIOCM_CTS = 0040 // ttycom.h:96:1:
+ TIOCM_DSR = 0400 // ttycom.h:101:1:
+ TIOCM_DTR = 0002 // ttycom.h:92:1:
+ TIOCM_LE = 0001 // ttycom.h:91:1:
+ TIOCM_RI = 128 // ttycom.h:100:1:
+ TIOCM_RNG = 0200 // ttycom.h:99:1:
+ TIOCM_RTS = 0004 // ttycom.h:93:1:
+ TIOCM_SR = 0020 // ttycom.h:95:1:
+ TIOCM_ST = 0010 // ttycom.h:94:1:
+ TIOCPKT_DATA = 0x00 // ttycom.h:128:1:
+ TIOCPKT_DOSTOP = 0x20 // ttycom.h:134:1:
+ TIOCPKT_FLUSHREAD = 0x01 // ttycom.h:129:1:
+ TIOCPKT_FLUSHWRITE = 0x02 // ttycom.h:130:1:
+ TIOCPKT_IOCTL = 0x40 // ttycom.h:135:1:
+ TIOCPKT_NOSTOP = 0x10 // ttycom.h:133:1:
+ TIOCPKT_START = 0x08 // ttycom.h:132:1:
+ TIOCPKT_STOP = 0x04 // ttycom.h:131:1:
+ TOSTOP = 0x00400000 // termios.h:255:1:
+ TTYDEF_CFLAG = 19200 // ttydefaults.h:81:1:
+ TTYDEF_IFLAG = 11010 // ttydefaults.h:78:1:
+ TTYDEF_LFLAG = 1483 // ttydefaults.h:80:1:
+ TTYDEF_OFLAG = 3 // ttydefaults.h:79:1:
+ TTYDEF_SPEED = 9600 // ttydefaults.h:82:1:
+ TTYDISC = 0 // ttycom.h:168:1:
+ VDISCARD = 15 // termios.h:100:1:
+ VDSUSP = 11 // termios.h:94:1:
+ VEOF = 0 // termios.h:76:1:
+ VEOL = 1 // termios.h:77:1:
+ VEOL2 = 2 // termios.h:79:1:
+ VERASE = 3 // termios.h:81:1:
+ VINTR = 8 // termios.h:90:1:
+ VKILL = 5 // termios.h:85:1:
+ VLNEXT = 14 // termios.h:99:1:
+ VMIN = 16 // termios.h:102:1:
+ VQUIT = 9 // termios.h:91:1:
+ VREPRINT = 6 // termios.h:87:1:
+ VSTART = 12 // termios.h:96:1:
+ VSTATUS = 18 // termios.h:105:1:
+ VSTOP = 13 // termios.h:97:1:
+ VSUSP = 10 // termios.h:92:1:
+ VT0 = 0x00000000 // termios.h:192:1:
+ VT1 = 0x00010000 // termios.h:193:1:
+ VTDLY = 0x00010000 // termios.h:160:1:
+ VTIME = 17 // termios.h:103:1:
+ VWERASE = 4 // termios.h:83:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_SYS_IOCCOM_H_ = 0 // ioccom.h:65:1:
+ X_SYS_TERMIOS_H_ = 0 // termios.h:65:1:
+ X_SYS_TTYCOM_H_ = 0 // ttycom.h:70:1:
+ X_SYS_TTYDEFAULTS_H_ = 0 // ttydefaults.h:73:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1988, 1989, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 spare 1
+// 19 spare 2
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+// The following block of features is unimplemented. Use of these flags in
+// programs will currently result in unexpected behaviour.
+//
+// - Begin unimplemented features
+// These manifest constants have the same names as those in the header
+// <sys/ioctl_compat.h>, so you are not permitted to have both definitions
+// in scope simultaneously in the same compilation unit. Nevertheless,
+// they are required to be in scope when _POSIX_C_SOURCE is requested;
+// this means that including the <sys/ioctl_compat.h> header before this
+// one when _POSIX_C_SOURCE is in scope will result in redefintions. We
+// attempt to maintain these as the same values so as to avoid this being
+// an outright error in most compilers.
+// not in sys/ioctl_compat.h, use OXTABS value
+// + End unimplemented features
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+type Tcflag_t = uint64 /* termios.h:263:25 */
+type Cc_t = uint8 /* termios.h:264:25 */
+type Speed_t = uint64 /* termios.h:265:25 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ F__ccgo_pad1 [4]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios.h:267:1 */
+
+// Include tty ioctl's that aren't just for backwards compatibility
+// with the old tty driver. These ioctl definitions were previously
+// in <sys/ioctl.h>.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)ioccom.h 8.2 (Berkeley) 3/28/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Ioctl's have the command encoded in the lower word, and the size of
+// any in or out parameters in the upper word. The high 3 bits of the
+// upper word are used to encode the in/out status of the parameter.
+
+// no parameters
+// copy parameters out
+// copy parameters in
+// copy parameters in and out
+// mask for IN/OUT/VOID
+
+// this should be _IORW, but stdio got there first
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* ttycom.h:82:1 */
+
+// 8-10 compat
+// 15 unused
+// 17-18 compat
+// 127-124 compat
+// 117-116 compat
+// 105 unused
+
+// END OF PROTECTED INCLUDE.
+
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/capi_darwin_arm64.go b/vendor/modernc.org/libc/time/capi_darwin_arm64.go
new file mode 100644
index 0000000000..940f523be3
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo time/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o time/time_darwin_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/time/time_darwin_arm64.go b/vendor/modernc.org/libc/time/time_darwin_arm64.go
new file mode 100644
index 0000000000..eea0739c3a
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_darwin_arm64.go
@@ -0,0 +1,1768 @@
+// Code generated by 'ccgo time/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_darwin_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCKS_PER_SEC = 1000000
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ TIME_UTC = 1
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)time.h 8.3 (Berkeley) 1/21/94
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// Swift compiler version
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+type Tm = struct {
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:75:1 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go
new file mode 100644
index 0000000000..2e89f7bd1a
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go
@@ -0,0 +1,11 @@
+// Code generated by 'ccgo unistd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o unistd/unistd_darwin_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+}
diff --git a/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go
new file mode 100644
index 0000000000..ebc8384617
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go
@@ -0,0 +1,3489 @@
+// Code generated by 'ccgo unistd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o unistd/unistd_darwin_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSX_MAX_DESCRIPTORS = 100 // unistd.h:137:1:
+ ACCESSX_MAX_TABLESIZE = 16384 // unistd.h:138:1:
+ FD_SETSIZE = 1024 // _fd_setsize.h:29:1:
+ F_LOCK = 1 // unistd.h:528:1:
+ F_OK = 0 // unistd.h:89:1:
+ F_TEST = 3 // unistd.h:530:1:
+ F_TLOCK = 2 // unistd.h:529:1:
+ F_ULOCK = 0 // unistd.h:527:1:
+ L_INCR = 1 // unistd.h:127:1:
+ L_SET = 0 // unistd.h:126:1:
+ L_XTND = 2 // unistd.h:128:1:
+ MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1:
+ MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1:
+ MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1:
+ MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1:
+ MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1:
+ MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1:
+ MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1:
+ MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1:
+ MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1:
+ MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1:
+ MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1:
+ MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1:
+ MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1:
+ MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1:
+ MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1:
+ MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1:
+ MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1:
+ MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1:
+ MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1:
+ MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1:
+ MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1:
+ MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1:
+ MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1:
+ MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1:
+ MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1:
+ MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1:
+ MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1:
+ MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1:
+ MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1:
+ MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1:
+ MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1:
+ MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1:
+ MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1:
+ MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1:
+ R_OK = 4 // unistd.h:92:1:
+ SEEK_CUR = 1 // _seek_set.h:34:1:
+ SEEK_DATA = 4 // _seek_set.h:44:1:
+ SEEK_END = 2 // _seek_set.h:35:1:
+ SEEK_HOLE = 3 // _seek_set.h:40:1:
+ SEEK_SET = 0 // _seek_set.h:33:1:
+ STDERR_FILENO = 2 // unistd.h:88:1:
+ STDIN_FILENO = 0 // unistd.h:86:1:
+ STDOUT_FILENO = 1 // unistd.h:87:1:
+ SYNC_VOLUME_FULLSYNC = 0x01 // unistd.h:780:1:
+ SYNC_VOLUME_WAIT = 0x02 // unistd.h:781:1:
+ W_OK = 2 // unistd.h:91:1:
+ X_OK = 1 // unistd.h:90:1:
+ X_ACCESS_EXTENDED_MASK = 4193792 // unistd.h:114:1:
+ X_APPEND_OK = 8192 // unistd.h:104:1:
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CHOWN_OK = 2097152 // unistd.h:112:1:
+ X_CS_DARWIN_USER_CACHE_DIR = 65538 // unistd.h:415:1:
+ X_CS_DARWIN_USER_DIR = 65536 // unistd.h:413:1:
+ X_CS_DARWIN_USER_TEMP_DIR = 65537 // unistd.h:414:1:
+ X_CS_PATH = 1 // unistd.h:175:1:
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2 // unistd.h:377:1:
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3 // unistd.h:378:1:
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4 // unistd.h:379:1:
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5 // unistd.h:380:1:
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6 // unistd.h:381:1:
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7 // unistd.h:382:1:
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8 // unistd.h:383:1:
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9 // unistd.h:384:1:
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10 // unistd.h:385:1:
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11 // unistd.h:386:1:
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12 // unistd.h:387:1:
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13 // unistd.h:388:1:
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14 // unistd.h:389:1:
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 20 // unistd.h:394:1:
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 21 // unistd.h:395:1:
+ X_CS_XBS5_ILP32_OFF32_LIBS = 22 // unistd.h:396:1:
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 23 // unistd.h:397:1:
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 24 // unistd.h:398:1:
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 25 // unistd.h:399:1:
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 26 // unistd.h:400:1:
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 27 // unistd.h:401:1:
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 28 // unistd.h:402:1:
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 29 // unistd.h:403:1:
+ X_CS_XBS5_LP64_OFF64_LIBS = 30 // unistd.h:404:1:
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 31 // unistd.h:405:1:
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 32 // unistd.h:406:1:
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 33 // unistd.h:407:1:
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 34 // unistd.h:408:1:
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 35 // unistd.h:409:1:
+ X_CTERMID_H_ = 0 // _ctermid.h:25:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_DELETE_OK = 4096 // unistd.h:103:1:
+ X_DEV_T = 0 // _dev_t.h:29:1:
+ X_EXECUTE_OK = 2048 // unistd.h:102:1:
+ X_FD_SET = 0 // _fd_def.h:29:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_GID_T = 0 // _gid_t.h:29:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_MODE_T = 0 // _mode_t.h:29:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_OFF_T = 0 // _off_t.h:29:1:
+ X_PC_2_SYMLINKS = 15 // unistd.h:160:1:
+ X_PC_ALLOC_SIZE_MIN = 16 // unistd.h:161:1:
+ X_PC_ASYNC_IO = 17 // unistd.h:162:1:
+ X_PC_AUTH_OPAQUE_NP = 14 // unistd.h:157:1:
+ X_PC_CASE_PRESERVING = 12 // unistd.h:155:1:
+ X_PC_CASE_SENSITIVE = 11 // unistd.h:154:1:
+ X_PC_CHOWN_RESTRICTED = 7 // unistd.h:148:1:
+ X_PC_EXTENDED_SECURITY_NP = 13 // unistd.h:156:1:
+ X_PC_FILESIZEBITS = 18 // unistd.h:163:1:
+ X_PC_LINK_MAX = 1 // unistd.h:142:1:
+ X_PC_MAX_CANON = 2 // unistd.h:143:1:
+ X_PC_MAX_INPUT = 3 // unistd.h:144:1:
+ X_PC_MIN_HOLE_SIZE = 27 // unistd.h:172:1:
+ X_PC_NAME_CHARS_MAX = 10 // unistd.h:153:1:
+ X_PC_NAME_MAX = 4 // unistd.h:145:1:
+ X_PC_NO_TRUNC = 8 // unistd.h:149:1:
+ X_PC_PATH_MAX = 5 // unistd.h:146:1:
+ X_PC_PIPE_BUF = 6 // unistd.h:147:1:
+ X_PC_PRIO_IO = 19 // unistd.h:164:1:
+ X_PC_REC_INCR_XFER_SIZE = 20 // unistd.h:165:1:
+ X_PC_REC_MAX_XFER_SIZE = 21 // unistd.h:166:1:
+ X_PC_REC_MIN_XFER_SIZE = 22 // unistd.h:167:1:
+ X_PC_REC_XFER_ALIGN = 23 // unistd.h:168:1:
+ X_PC_SYMLINK_MAX = 24 // unistd.h:169:1:
+ X_PC_SYNC_IO = 25 // unistd.h:170:1:
+ X_PC_VDISABLE = 9 // unistd.h:150:1:
+ X_PC_XATTR_SIZE_BITS = 26 // unistd.h:171:1:
+ X_PID_T = 0 // _pid_t.h:29:1:
+ X_POSIX2_CHAR_TERM = 200112 // unistd.h:152:1:
+ X_POSIX2_C_BIND = 200112 // unistd.h:150:1:
+ X_POSIX2_C_DEV = 200112 // unistd.h:151:1:
+ X_POSIX2_FORT_DEV = -1 // unistd.h:153:1:
+ X_POSIX2_FORT_RUN = 200112 // unistd.h:154:1:
+ X_POSIX2_LOCALEDEF = 200112 // unistd.h:155:1:
+ X_POSIX2_PBS = -1 // unistd.h:156:1:
+ X_POSIX2_PBS_ACCOUNTING = -1 // unistd.h:157:1:
+ X_POSIX2_PBS_CHECKPOINT = -1 // unistd.h:158:1:
+ X_POSIX2_PBS_LOCATE = -1 // unistd.h:159:1:
+ X_POSIX2_PBS_MESSAGE = -1 // unistd.h:160:1:
+ X_POSIX2_PBS_TRACK = -1 // unistd.h:161:1:
+ X_POSIX2_SW_DEV = 200112 // unistd.h:162:1:
+ X_POSIX2_UPE = 200112 // unistd.h:163:1:
+ X_POSIX2_VERSION = 200112 // unistd.h:80:1:
+ X_POSIX_ADVISORY_INFO = -1 // unistd.h:98:1:
+ X_POSIX_ASYNCHRONOUS_IO = -1 // unistd.h:99:1:
+ X_POSIX_BARRIERS = -1 // unistd.h:100:1:
+ X_POSIX_CHOWN_RESTRICTED = 200112 // unistd.h:101:1:
+ X_POSIX_CLOCK_SELECTION = -1 // unistd.h:102:1:
+ X_POSIX_CPUTIME = -1 // unistd.h:103:1:
+ X_POSIX_FSYNC = 200112 // unistd.h:104:1:
+ X_POSIX_IPV6 = 200112 // unistd.h:105:1:
+ X_POSIX_JOB_CONTROL = 200112 // unistd.h:106:1:
+ X_POSIX_MAPPED_FILES = 200112 // unistd.h:107:1:
+ X_POSIX_MEMLOCK = -1 // unistd.h:108:1:
+ X_POSIX_MEMLOCK_RANGE = -1 // unistd.h:109:1:
+ X_POSIX_MEMORY_PROTECTION = 200112 // unistd.h:110:1:
+ X_POSIX_MESSAGE_PASSING = -1 // unistd.h:111:1:
+ X_POSIX_MONOTONIC_CLOCK = -1 // unistd.h:112:1:
+ X_POSIX_NO_TRUNC = 200112 // unistd.h:113:1:
+ X_POSIX_PRIORITIZED_IO = -1 // unistd.h:114:1:
+ X_POSIX_PRIORITY_SCHEDULING = -1 // unistd.h:115:1:
+ X_POSIX_RAW_SOCKETS = -1 // unistd.h:116:1:
+ X_POSIX_READER_WRITER_LOCKS = 200112 // unistd.h:117:1:
+ X_POSIX_REALTIME_SIGNALS = -1 // unistd.h:118:1:
+ X_POSIX_REGEXP = 200112 // unistd.h:119:1:
+ X_POSIX_SAVED_IDS = 200112 // unistd.h:120:1:
+ X_POSIX_SEMAPHORES = -1 // unistd.h:121:1:
+ X_POSIX_SHARED_MEMORY_OBJECTS = -1 // unistd.h:122:1:
+ X_POSIX_SHELL = 200112 // unistd.h:123:1:
+ X_POSIX_SPAWN = -1 // unistd.h:124:1:
+ X_POSIX_SPIN_LOCKS = -1 // unistd.h:125:1:
+ X_POSIX_SPORADIC_SERVER = -1 // unistd.h:126:1:
+ X_POSIX_SYNCHRONIZED_IO = -1 // unistd.h:127:1:
+ X_POSIX_THREADS = 200112 // unistd.h:137:1:
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112 // unistd.h:128:1:
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112 // unistd.h:129:1:
+ X_POSIX_THREAD_CPUTIME = -1 // unistd.h:130:1:
+ X_POSIX_THREAD_KEYS_MAX = 128 // unistd.h:86:1:
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = -1 // unistd.h:133:1:
+ X_POSIX_THREAD_PRIO_INHERIT = -1 // unistd.h:131:1:
+ X_POSIX_THREAD_PRIO_PROTECT = -1 // unistd.h:132:1:
+ X_POSIX_THREAD_PROCESS_SHARED = 200112 // unistd.h:134:1:
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112 // unistd.h:135:1:
+ X_POSIX_THREAD_SPORADIC_SERVER = -1 // unistd.h:136:1:
+ X_POSIX_TIMEOUTS = -1 // unistd.h:138:1:
+ X_POSIX_TIMERS = -1 // unistd.h:139:1:
+ X_POSIX_TRACE = -1 // unistd.h:140:1:
+ X_POSIX_TRACE_EVENT_FILTER = -1 // unistd.h:141:1:
+ X_POSIX_TRACE_INHERIT = -1 // unistd.h:142:1:
+ X_POSIX_TRACE_LOG = -1 // unistd.h:143:1:
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1 // unistd.h:144:1:
+ X_POSIX_V6_ILP32_OFF32 = -1 // unistd.h:173:1:
+ X_POSIX_V6_ILP32_OFFBIG = -1 // unistd.h:174:1:
+ X_POSIX_V6_LP64_OFF64 = 1 // unistd.h:175:1:
+ X_POSIX_V6_LPBIG_OFFBIG = 1 // unistd.h:176:1:
+ X_POSIX_V7_ILP32_OFF32 = -1 // unistd.h:180:1:
+ X_POSIX_V7_ILP32_OFFBIG = -1 // unistd.h:181:1:
+ X_POSIX_V7_LP64_OFF64 = 1 // unistd.h:182:1:
+ X_POSIX_V7_LPBIG_OFFBIG = 1 // unistd.h:183:1:
+ X_POSIX_VERSION = 200112 // unistd.h:79:1:
+ X_RATTR_OK = 32768 // unistd.h:106:1:
+ X_READ_OK = 512 // unistd.h:100:1:
+ X_REXT_OK = 131072 // unistd.h:108:1:
+ X_RMFILE_OK = 16384 // unistd.h:105:1:
+ X_RPERM_OK = 524288 // unistd.h:110:1:
+ X_SC_2_CHAR_TERM = 20 // unistd.h:232:1:
+ X_SC_2_C_BIND = 18 // unistd.h:230:1:
+ X_SC_2_C_DEV = 19 // unistd.h:231:1:
+ X_SC_2_FORT_DEV = 21 // unistd.h:233:1:
+ X_SC_2_FORT_RUN = 22 // unistd.h:234:1:
+ X_SC_2_LOCALEDEF = 23 // unistd.h:235:1:
+ X_SC_2_PBS = 59 // unistd.h:275:1:
+ X_SC_2_PBS_ACCOUNTING = 60 // unistd.h:276:1:
+ X_SC_2_PBS_CHECKPOINT = 61 // unistd.h:277:1:
+ X_SC_2_PBS_LOCATE = 62 // unistd.h:278:1:
+ X_SC_2_PBS_MESSAGE = 63 // unistd.h:279:1:
+ X_SC_2_PBS_TRACK = 64 // unistd.h:280:1:
+ X_SC_2_SW_DEV = 24 // unistd.h:236:1:
+ X_SC_2_UPE = 25 // unistd.h:237:1:
+ X_SC_2_VERSION = 17 // unistd.h:229:1:
+ X_SC_ADVISORY_INFO = 65 // unistd.h:281:1:
+ X_SC_AIO_LISTIO_MAX = 42 // unistd.h:256:1:
+ X_SC_AIO_MAX = 43 // unistd.h:257:1:
+ X_SC_AIO_PRIO_DELTA_MAX = 44 // unistd.h:258:1:
+ X_SC_ARG_MAX = 1 // unistd.h:213:1:
+ X_SC_ASYNCHRONOUS_IO = 28 // unistd.h:242:1:
+ X_SC_ATEXIT_MAX = 107 // unistd.h:329:1:
+ X_SC_BARRIERS = 66 // unistd.h:282:1:
+ X_SC_BC_BASE_MAX = 9 // unistd.h:221:1:
+ X_SC_BC_DIM_MAX = 10 // unistd.h:222:1:
+ X_SC_BC_SCALE_MAX = 11 // unistd.h:223:1:
+ X_SC_BC_STRING_MAX = 12 // unistd.h:224:1:
+ X_SC_CHILD_MAX = 2 // unistd.h:214:1:
+ X_SC_CLK_TCK = 3 // unistd.h:215:1:
+ X_SC_CLOCK_SELECTION = 67 // unistd.h:283:1:
+ X_SC_COLL_WEIGHTS_MAX = 13 // unistd.h:225:1:
+ X_SC_CPUTIME = 68 // unistd.h:284:1:
+ X_SC_DELAYTIMER_MAX = 45 // unistd.h:259:1:
+ X_SC_EXPR_NEST_MAX = 14 // unistd.h:226:1:
+ X_SC_FILE_LOCKING = 69 // unistd.h:285:1:
+ X_SC_FSYNC = 38 // unistd.h:252:1:
+ X_SC_GETGR_R_SIZE_MAX = 70 // unistd.h:286:1:
+ X_SC_GETPW_R_SIZE_MAX = 71 // unistd.h:287:1:
+ X_SC_HOST_NAME_MAX = 72 // unistd.h:288:1:
+ X_SC_IOV_MAX = 56 // unistd.h:330:1:
+ X_SC_IPV6 = 118 // unistd.h:323:1:
+ X_SC_JOB_CONTROL = 6 // unistd.h:218:1:
+ X_SC_LINE_MAX = 15 // unistd.h:227:1:
+ X_SC_LOGIN_NAME_MAX = 73 // unistd.h:289:1:
+ X_SC_MAPPED_FILES = 47 // unistd.h:261:1:
+ X_SC_MEMLOCK = 30 // unistd.h:244:1:
+ X_SC_MEMLOCK_RANGE = 31 // unistd.h:245:1:
+ X_SC_MEMORY_PROTECTION = 32 // unistd.h:246:1:
+ X_SC_MESSAGE_PASSING = 33 // unistd.h:247:1:
+ X_SC_MONOTONIC_CLOCK = 74 // unistd.h:290:1:
+ X_SC_MQ_OPEN_MAX = 46 // unistd.h:260:1:
+ X_SC_MQ_PRIO_MAX = 75 // unistd.h:291:1:
+ X_SC_NGROUPS_MAX = 4 // unistd.h:216:1:
+ X_SC_NPROCESSORS_CONF = 57 // unistd.h:270:1:
+ X_SC_NPROCESSORS_ONLN = 58 // unistd.h:271:1:
+ X_SC_OPEN_MAX = 5 // unistd.h:217:1:
+ X_SC_PAGESIZE = 29 // unistd.h:243:1:
+ X_SC_PAGE_SIZE = 29 // unistd.h:331:1:
+ X_SC_PASS_MAX = 131 // unistd.h:362:1:
+ X_SC_PHYS_PAGES = 200 // unistd.h:367:1:
+ X_SC_PRIORITIZED_IO = 34 // unistd.h:248:1:
+ X_SC_PRIORITY_SCHEDULING = 35 // unistd.h:249:1:
+ X_SC_RAW_SOCKETS = 119 // unistd.h:324:1:
+ X_SC_READER_WRITER_LOCKS = 76 // unistd.h:292:1:
+ X_SC_REALTIME_SIGNALS = 36 // unistd.h:250:1:
+ X_SC_REGEXP = 77 // unistd.h:293:1:
+ X_SC_RE_DUP_MAX = 16 // unistd.h:228:1:
+ X_SC_RTSIG_MAX = 48 // unistd.h:262:1:
+ X_SC_SAVED_IDS = 7 // unistd.h:219:1:
+ X_SC_SEMAPHORES = 37 // unistd.h:251:1:
+ X_SC_SEM_NSEMS_MAX = 49 // unistd.h:263:1:
+ X_SC_SEM_VALUE_MAX = 50 // unistd.h:264:1:
+ X_SC_SHARED_MEMORY_OBJECTS = 39 // unistd.h:253:1:
+ X_SC_SHELL = 78 // unistd.h:294:1:
+ X_SC_SIGQUEUE_MAX = 51 // unistd.h:265:1:
+ X_SC_SPAWN = 79 // unistd.h:295:1:
+ X_SC_SPIN_LOCKS = 80 // unistd.h:296:1:
+ X_SC_SPORADIC_SERVER = 81 // unistd.h:297:1:
+ X_SC_SS_REPL_MAX = 126 // unistd.h:353:1:
+ X_SC_STREAM_MAX = 26 // unistd.h:238:1:
+ X_SC_SYMLOOP_MAX = 120 // unistd.h:325:1:
+ X_SC_SYNCHRONIZED_IO = 40 // unistd.h:254:1:
+ X_SC_THREADS = 96 // unistd.h:312:1:
+ X_SC_THREAD_ATTR_STACKADDR = 82 // unistd.h:298:1:
+ X_SC_THREAD_ATTR_STACKSIZE = 83 // unistd.h:299:1:
+ X_SC_THREAD_CPUTIME = 84 // unistd.h:300:1:
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85 // unistd.h:301:1:
+ X_SC_THREAD_KEYS_MAX = 86 // unistd.h:302:1:
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89 // unistd.h:305:1:
+ X_SC_THREAD_PRIO_INHERIT = 87 // unistd.h:303:1:
+ X_SC_THREAD_PRIO_PROTECT = 88 // unistd.h:304:1:
+ X_SC_THREAD_PROCESS_SHARED = 90 // unistd.h:306:1:
+ X_SC_THREAD_SAFE_FUNCTIONS = 91 // unistd.h:307:1:
+ X_SC_THREAD_SPORADIC_SERVER = 92 // unistd.h:308:1:
+ X_SC_THREAD_STACK_MIN = 93 // unistd.h:309:1:
+ X_SC_THREAD_THREADS_MAX = 94 // unistd.h:310:1:
+ X_SC_TIMEOUTS = 95 // unistd.h:311:1:
+ X_SC_TIMERS = 41 // unistd.h:255:1:
+ X_SC_TIMER_MAX = 52 // unistd.h:266:1:
+ X_SC_TRACE = 97 // unistd.h:313:1:
+ X_SC_TRACE_EVENT_FILTER = 98 // unistd.h:314:1:
+ X_SC_TRACE_EVENT_NAME_MAX = 127 // unistd.h:354:1:
+ X_SC_TRACE_INHERIT = 99 // unistd.h:315:1:
+ X_SC_TRACE_LOG = 100 // unistd.h:316:1:
+ X_SC_TRACE_NAME_MAX = 128 // unistd.h:355:1:
+ X_SC_TRACE_SYS_MAX = 129 // unistd.h:356:1:
+ X_SC_TRACE_USER_EVENT_MAX = 130 // unistd.h:357:1:
+ X_SC_TTY_NAME_MAX = 101 // unistd.h:317:1:
+ X_SC_TYPED_MEMORY_OBJECTS = 102 // unistd.h:318:1:
+ X_SC_TZNAME_MAX = 27 // unistd.h:239:1:
+ X_SC_V6_ILP32_OFF32 = 103 // unistd.h:319:1:
+ X_SC_V6_ILP32_OFFBIG = 104 // unistd.h:320:1:
+ X_SC_V6_LP64_OFF64 = 105 // unistd.h:321:1:
+ X_SC_V6_LPBIG_OFFBIG = 106 // unistd.h:322:1:
+ X_SC_VERSION = 8 // unistd.h:220:1:
+ X_SC_XBS5_ILP32_OFF32 = 122 // unistd.h:346:1:
+ X_SC_XBS5_ILP32_OFFBIG = 123 // unistd.h:347:1:
+ X_SC_XBS5_LP64_OFF64 = 124 // unistd.h:348:1:
+ X_SC_XBS5_LPBIG_OFFBIG = 125 // unistd.h:349:1:
+ X_SC_XOPEN_CRYPT = 108 // unistd.h:332:1:
+ X_SC_XOPEN_ENH_I18N = 109 // unistd.h:333:1:
+ X_SC_XOPEN_LEGACY = 110 // unistd.h:334:1:
+ X_SC_XOPEN_REALTIME = 111 // unistd.h:335:1:
+ X_SC_XOPEN_REALTIME_THREADS = 112 // unistd.h:336:1:
+ X_SC_XOPEN_SHM = 113 // unistd.h:337:1:
+ X_SC_XOPEN_STREAMS = 114 // unistd.h:338:1:
+ X_SC_XOPEN_UNIX = 115 // unistd.h:339:1:
+ X_SC_XOPEN_VERSION = 116 // unistd.h:340:1:
+ X_SC_XOPEN_XCU_VERSION = 121 // unistd.h:341:1:
+ X_SIGSET_T = 0 // _sigset_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SSIZE_T = 0 // _ssize_t.h:29:1:
+ X_SUSECONDS_T = 0 // _suseconds_t.h:29:1:
+ X_SYS_SELECT_H_ = 0 // select.h:64:1:
+ X_SYS_UNISTD_H_ = 0 // unistd.h:65:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__SELECT_H_ = 0 // _select.h:37:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UID_T = 0 // _uid_t.h:29:1:
+ X_UINT32_T = 0 // _uint32_t.h:30:1:
+ X_UINT64_T = 0 // _uint64_t.h:30:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_UNISTD_H_ = 0 // unistd.h:69:1:
+ X_USECONDS_T = 0 // _useconds_t.h:29:1:
+ X_UUID_T = 0 // _uuid_t.h:29:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+ X_V6_ILP32_OFF32 = -1 // unistd.h:187:1:
+ X_V6_ILP32_OFFBIG = -1 // unistd.h:188:1:
+ X_V6_LP64_OFF64 = 1 // unistd.h:189:1:
+ X_V6_LPBIG_OFFBIG = 1 // unistd.h:190:1:
+ X_WATTR_OK = 65536 // unistd.h:107:1:
+ X_WEXT_OK = 262144 // unistd.h:109:1:
+ X_WPERM_OK = 1048576 // unistd.h:111:1:
+ X_WRITE_OK = 1024 // unistd.h:101:1:
+ X_XBS5_ILP32_OFF32 = -1 // unistd.h:195:1:
+ X_XBS5_ILP32_OFFBIG = -1 // unistd.h:196:1:
+ X_XBS5_LP64_OFF64 = 1 // unistd.h:197:1:
+ X_XBS5_LPBIG_OFFBIG = 1 // unistd.h:198:1:
+ X_XOPEN_CRYPT = 1 // unistd.h:202:1:
+ X_XOPEN_ENH_I18N = 1 // unistd.h:203:1:
+ X_XOPEN_LEGACY = -1 // unistd.h:204:1:
+ X_XOPEN_REALTIME = -1 // unistd.h:205:1:
+ X_XOPEN_REALTIME_THREADS = -1 // unistd.h:206:1:
+ X_XOPEN_SHM = 1 // unistd.h:207:1:
+ X_XOPEN_STREAMS = -1 // unistd.h:208:1:
+ X_XOPEN_UNIX = 1 // unistd.h:209:1:
+ X_XOPEN_VERSION = 600 // unistd.h:93:1:
+ X_XOPEN_XCU_VERSION = 4 // unistd.h:94:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)unistd.h 8.12 (Berkeley) 4/27/95
+//
+// Copyright (c) 1998 Apple Compter, Inc.
+// All Rights Reserved
+
+// History:
+// 7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
+// 3/26/98 CHW at Apple added real interface to searchfs call
+// 3/5/98 CHW at Apple added hfs semantic system calls headers
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)unistd.h 8.2 (Berkeley) 1/7/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Although we have saved user/group IDs, we do not use them in setuid
+// as described in POSIX 1003.1, because the feature does not work for
+// root. We use the saved IDs in seteuid/setegid, which are not currently
+// part of the POSIX 1003.1 specification.
+
+// execution-time symbolic constants
+// may disable terminal special characters
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// access function
+
+// Extended access functions.
+// Note that we depend on these matching the definitions in sys/kauth.h,
+// but with the bits shifted left by 8.
+
+// whence values for lseek(2)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// whence values for lseek(2)
+
+// whence values for lseek(2); renamed by POSIX 1003.1
+
+type Accessx_descriptor = struct {
+ Fad_name_offset uint32
+ Fad_flags int32
+ Fad_pad [2]int32
+} /* unistd.h:132:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)select.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)select.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The time_t and suseconds_t types shall be defined as described in
+// <sys/types.h>
+// The sigset_t type shall be defined as described in <signal.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/capi_darwin_arm64.go b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go
new file mode 100644
index 0000000000..a35118cd1d
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo utime/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o utime/utime_darwin_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/utime/utime_darwin_arm64.go b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go
new file mode 100644
index 0000000000..4705ddcf2d
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go
@@ -0,0 +1,1315 @@
+// Code generated by 'ccgo utime/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o utime/utime_darwin_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ARM_MACHTYPES_H_ = 0 // types.h:43:1:
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_INT16_T = 0 // _int16_t.h:29:1:
+ X_INT32_T = 0 // _int32_t.h:29:1:
+ X_INT64_T = 0 // _int64_t.h:29:1:
+ X_INT8_T = 0 // _int8_t.h:29:1:
+ X_INTPTR_T = 0 // _intptr_t.h:29:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_MACHTYPES_H_ = 0 // types.h:44:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_TIME_T = 0 // _time_t.h:29:1:
+ X_UINTPTR_T = 0 // _uintptr_t.h:29:1:
+ X_UTIME_H_ = 0 // utime.h:59:1:
+ X_U_INT16_T = 0 // _u_int16_t.h:29:1:
+ X_U_INT32_T = 0 // _u_int32_t.h:29:1:
+ X_U_INT64_T = 0 // _u_int64_t.h:29:1:
+ X_U_INT8_T = 0 // _u_int8_t.h:29:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)utime.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:64:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go
new file mode 100644
index 0000000000..7ea285a7a5
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo uuid/uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o uuid/uuid/uuid_darwin_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go
new file mode 100644
index 0000000000..c87a7b2552
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go
@@ -0,0 +1,820 @@
+// Code generated by 'ccgo uuid/uuid/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o uuid/uuid/uuid_darwin_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_UUID_STRING_T = 0 // uuid.h:42:1:
+ X_UUID_T = 0 // _uuid_t.h:29:1:
+ X_UUID_UUID_H = 0 // uuid.h:36:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+// USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go
new file mode 100644
index 0000000000..f6b707616d
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go
@@ -0,0 +1,55 @@
+// Code generated by 'ccgo wctype/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o wctype/wctype_darwin_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+ "__isctype": {},
+ "__istype": {},
+ "__wcwidth": {},
+ "digittoint": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isblank": {},
+ "iscntrl": {},
+ "isdigit": {},
+ "isgraph": {},
+ "ishexnumber": {},
+ "isideogram": {},
+ "islower": {},
+ "isnumber": {},
+ "isphonogram": {},
+ "isprint": {},
+ "ispunct": {},
+ "isrune": {},
+ "isspace": {},
+ "isspecial": {},
+ "isupper": {},
+ "iswalnum": {},
+ "iswalpha": {},
+ "iswascii": {},
+ "iswblank": {},
+ "iswcntrl": {},
+ "iswctype": {},
+ "iswdigit": {},
+ "iswgraph": {},
+ "iswhexnumber": {},
+ "iswideogram": {},
+ "iswlower": {},
+ "iswnumber": {},
+ "iswphonogram": {},
+ "iswprint": {},
+ "iswpunct": {},
+ "iswrune": {},
+ "iswspace": {},
+ "iswspecial": {},
+ "iswupper": {},
+ "iswxdigit": {},
+ "isxdigit": {},
+ "toascii": {},
+ "tolower": {},
+ "toupper": {},
+ "towlower": {},
+ "towupper": {},
+}
diff --git a/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go
new file mode 100644
index 0000000000..048dec12a4
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go
@@ -0,0 +1,1416 @@
+// Code generated by 'ccgo wctype/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o wctype/wctype_darwin_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1:
+ X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1:
+ X_CACHED_RUNES = 256 // runetype.h:54:1:
+ X_CDEFS_H_ = 0 // cdefs.h:68:1:
+ X_CRMASK = -256 // runetype.h:55:1:
+ X_CTYPE_A = 0x00000100 // _ctype.h:72:1:
+ X_CTYPE_B = 0x00020000 // _ctype.h:81:1:
+ X_CTYPE_C = 0x00000200 // _ctype.h:73:1:
+ X_CTYPE_D = 0x00000400 // _ctype.h:74:1:
+ X_CTYPE_G = 0x00000800 // _ctype.h:75:1:
+ X_CTYPE_H_ = 0 // ctype.h:67:1:
+ X_CTYPE_I = 0x00080000 // _ctype.h:83:1:
+ X_CTYPE_L = 0x00001000 // _ctype.h:76:1:
+ X_CTYPE_P = 0x00002000 // _ctype.h:77:1:
+ X_CTYPE_Q = 0x00200000 // _ctype.h:85:1:
+ X_CTYPE_R = 0x00040000 // _ctype.h:82:1:
+ X_CTYPE_S = 0x00004000 // _ctype.h:78:1:
+ X_CTYPE_SW0 = 0x20000000 // _ctype.h:86:1:
+ X_CTYPE_SW1 = 0x40000000 // _ctype.h:87:1:
+ X_CTYPE_SW2 = 0x80000000 // _ctype.h:88:1:
+ X_CTYPE_SW3 = 0xc0000000 // _ctype.h:89:1:
+ X_CTYPE_SWM = 0xe0000000 // _ctype.h:90:1:
+ X_CTYPE_SWS = 30 // _ctype.h:91:1:
+ X_CTYPE_T = 0x00100000 // _ctype.h:84:1:
+ X_CTYPE_U = 0x00008000 // _ctype.h:79:1:
+ X_CTYPE_X = 0x00010000 // _ctype.h:80:1:
+ X_CT_RUNE_T = 0 // _ct_rune_t.h:30:1:
+ X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1:
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1:
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1:
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1:
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1:
+ X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
+ X_FORTIFY_SOURCE = 2 // _types.h:65:1:
+ X_LP64 = 1 // <predefined>:1:1:
+ X_Nonnull = 0 // cdefs.h:268:1:
+ X_Null_unspecified = 0 // cdefs.h:271:1:
+ X_Nullable = 0 // cdefs.h:265:1:
+ X_RUNETYPE_H_ = 0 // runetype.h:40:1:
+ X_RUNE_MAGIC_A = "RuneMagA" // runetype.h:108:1:
+ X_RUNE_T = 0 // _rune_t.h:29:1:
+ X_SIZE_T = 0 // _size_t.h:29:1:
+ X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1:
+ X_SYS__TYPES_H_ = 0 // _types.h:30:1:
+ X_WCHAR_T = 0 // _wchar_t.h:32:1:
+ X_WCTRANS_T = 0 // _wctrans_t.h:30:1:
+ X_WCTYPE_H_ = 0 // wctype.h:32:1:
+ X_WCTYPE_T = 0 // _wctype_t.h:30:1:
+ X_WINT_T = 0 // _wint_t.h:30:1:
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
+// $FreeBSD: /repoman/r/ncvs/src/include/wctype.h,v 1.10 2002/08/21 16:19:55 mike Exp $
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// In non-ANSI C environments, new programs will want ANSI-only C keywords
+// deleted from the program and old programs will want them left alone.
+// When using a compiler other than gcc, programs using the ANSI C keywords
+// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+// When using "gcc -traditional", we assume that this is the intent; if
+// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// We intentionally define to nothing pointer attributes which do not have an
+// impact on the ABI. __indexable and __bidi_indexable are not defined because
+// of the ABI incompatibility that makes the diagnostic preferable.
+
+// Similarly, we intentionally define to nothing the
+// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+// macros because they do not lead to an ABI incompatibility. However, we do not
+// define the indexable and unsafe_indexable ones because the diagnostic is
+// better than the silent ABI break.
+
+// __unsafe_forge intrinsics are defined as regular C casts.
+
+// decay operates normally; attribute is meaningless without pointer checks.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctrans_t = X__darwin_wctrans_t /* _wctrans_t.h:32:28 */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+
+// Common header for wctype.h and wchar.h
+//
+// Contains everything required by wctype.h except:
+//
+// #include <_types/_wctrans_t.h>
+// int iswblank(wint_t);
+// wint_t towctrans(wint_t, wctrans_t);
+// wctrans_t wctrans(const char *);
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c)1999 Citrus Project,
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+
+// Common header for _wctype.h and xlocale/__wctype.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Wint_t = X__darwin_wint_t /* _wint_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctype_t = X__darwin_wctype_t /* _wctype_t.h:32:27 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// The lower 8 bits of runetype[] contain the digit value of the rune.
+type X_RuneEntry = struct {
+ F__min X__darwin_rune_t
+ F__max X__darwin_rune_t
+ F__map X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__types uintptr
+} /* runetype.h:65:3 */
+
+type X_RuneRange = struct {
+ F__nranges int32
+ F__ccgo_pad1 [4]byte
+ F__ranges uintptr
+} /* runetype.h:70:3 */
+
+type X_RuneCharClass = struct {
+ F__name [14]int8
+ F__ccgo_pad1 [2]byte
+ F__mask X__uint32_t
+} /* runetype.h:75:3 */
+
+type X_RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune X__darwin_rune_t
+ F__runetype [256]X__uint32_t
+ F__maplower [256]X__darwin_rune_t
+ F__mapupper [256]X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__runetype_ext X_RuneRange
+ F__maplower_ext X_RuneRange
+ F__mapupper_ext X_RuneRange
+ F__variable uintptr
+ F__variable_len int32
+ F__ncharclasses int32
+ F__charclasses uintptr
+} /* runetype.h:106:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/sqlite/lib/capi_darwin_arm64.go b/vendor/modernc.org/sqlite/lib/capi_darwin_arm64.go
new file mode 100644
index 0000000000..5b22e93152
--- /dev/null
+++ b/vendor/modernc.org/sqlite/lib/capi_darwin_arm64.go
@@ -0,0 +1,1383 @@
+// Code generated by 'ccgo -DSQLITE_PRIVATE= -export-defines -export-enums -export-externs X -export-fields F -export-typedefs -ignore-unsupported-alignment -pkgname sqlite3 -volatile=sqlite3_io_error_pending,sqlite3_open_file_count,sqlite3_pager_readdb_count,sqlite3_pager_writedb_count,sqlite3_pager_writej_count,sqlite3_search_count,sqlite3_sort_count,saved_cnt,randomnessPid -o lib/sqlite_darwin_arm64.go -trace-translation-units testdata/sqlite-amalgamation-3410000/sqlite3.c -full-path-comments -DNDEBUG -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DSQLITE_CORE -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_OS_UNIX=1 -DSQLITE_WITHOUT_ZONEMALLOC', DO NOT EDIT.
+
+package sqlite3
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+ "__inline_isfinited": {},
+ "__inline_isfinitef": {},
+ "__inline_isfinitel": {},
+ "__inline_isinfd": {},
+ "__inline_isinff": {},
+ "__inline_isinfl": {},
+ "__inline_isnand": {},
+ "__inline_isnanf": {},
+ "__inline_isnanl": {},
+ "__inline_isnormald": {},
+ "__inline_isnormalf": {},
+ "__inline_isnormall": {},
+ "__inline_signbitd": {},
+ "__inline_signbitf": {},
+ "__inline_signbitl": {},
+ "__sincos": {},
+ "__sincosf": {},
+ "__sincospi": {},
+ "__sincospif": {},
+ "sqlite3AbsInt32": {},
+ "sqlite3AddCheckConstraint": {},
+ "sqlite3AddCollateType": {},
+ "sqlite3AddColumn": {},
+ "sqlite3AddDefaultValue": {},
+ "sqlite3AddGenerated": {},
+ "sqlite3AddInt64": {},
+ "sqlite3AddNotNull": {},
+ "sqlite3AddPrimaryKey": {},
+ "sqlite3AddReturning": {},
+ "sqlite3AffinityType": {},
+ "sqlite3AggInfoPersistWalkerInit": {},
+ "sqlite3AllocateIndexObject": {},
+ "sqlite3AlterBeginAddColumn": {},
+ "sqlite3AlterDropColumn": {},
+ "sqlite3AlterFinishAddColumn": {},
+ "sqlite3AlterFunctions": {},
+ "sqlite3AlterRenameColumn": {},
+ "sqlite3AlterRenameTable": {},
+ "sqlite3AnalysisLoad": {},
+ "sqlite3Analyze": {},
+ "sqlite3ApiExit": {},
+ "sqlite3ArrayAllocate": {},
+ "sqlite3AtoF": {},
+ "sqlite3Atoi": {},
+ "sqlite3Atoi64": {},
+ "sqlite3Attach": {},
+ "sqlite3AuthCheck": {},
+ "sqlite3AuthContextPop": {},
+ "sqlite3AuthContextPush": {},
+ "sqlite3AuthRead": {},
+ "sqlite3AuthReadCol": {},
+ "sqlite3AutoLoadExtensions": {},
+ "sqlite3AutoincrementBegin": {},
+ "sqlite3AutoincrementEnd": {},
+ "sqlite3BackupRestart": {},
+ "sqlite3BackupUpdate": {},
+ "sqlite3BeginBenignMalloc": {},
+ "sqlite3BeginTransaction": {},
+ "sqlite3BeginTrigger": {},
+ "sqlite3BeginWriteOperation": {},
+ "sqlite3BenignMallocHooks": {},
+ "sqlite3BinaryCompareCollSeq": {},
+ "sqlite3BitvecBuiltinTest": {},
+ "sqlite3BitvecClear": {},
+ "sqlite3BitvecCreate": {},
+ "sqlite3BitvecDestroy": {},
+ "sqlite3BitvecSet": {},
+ "sqlite3BitvecSize": {},
+ "sqlite3BitvecTest": {},
+ "sqlite3BitvecTestNotNull": {},
+ "sqlite3BlobCompare": {},
+ "sqlite3BtreeBeginStmt": {},
+ "sqlite3BtreeBeginTrans": {},
+ "sqlite3BtreeCheckpoint": {},
+ "sqlite3BtreeClearCache": {},
+ "sqlite3BtreeClearCursor": {},
+ "sqlite3BtreeClearTable": {},
+ "sqlite3BtreeClearTableOfCursor": {},
+ "sqlite3BtreeClose": {},
+ "sqlite3BtreeCloseCursor": {},
+ "sqlite3BtreeCommit": {},
+ "sqlite3BtreeCommitPhaseOne": {},
+ "sqlite3BtreeCommitPhaseTwo": {},
+ "sqlite3BtreeConnectionCount": {},
+ "sqlite3BtreeCopyFile": {},
+ "sqlite3BtreeCount": {},
+ "sqlite3BtreeCreateTable": {},
+ "sqlite3BtreeCursor": {},
+ "sqlite3BtreeCursorHasHint": {},
+ "sqlite3BtreeCursorHasMoved": {},
+ "sqlite3BtreeCursorHintFlags": {},
+ "sqlite3BtreeCursorIsValidNN": {},
+ "sqlite3BtreeCursorPin": {},
+ "sqlite3BtreeCursorRestore": {},
+ "sqlite3BtreeCursorSize": {},
+ "sqlite3BtreeCursorUnpin": {},
+ "sqlite3BtreeCursorZero": {},
+ "sqlite3BtreeDelete": {},
+ "sqlite3BtreeDropTable": {},
+ "sqlite3BtreeEnter": {},
+ "sqlite3BtreeEnterAll": {},
+ "sqlite3BtreeEnterCursor": {},
+ "sqlite3BtreeEof": {},
+ "sqlite3BtreeFakeValidCursor": {},
+ "sqlite3BtreeFirst": {},
+ "sqlite3BtreeGetAutoVacuum": {},
+ "sqlite3BtreeGetFilename": {},
+ "sqlite3BtreeGetJournalname": {},
+ "sqlite3BtreeGetMeta": {},
+ "sqlite3BtreeGetPageSize": {},
+ "sqlite3BtreeGetRequestedReserve": {},
+ "sqlite3BtreeGetReserveNoMutex": {},
+ "sqlite3BtreeIncrVacuum": {},
+ "sqlite3BtreeIncrblobCursor": {},
+ "sqlite3BtreeIndexMoveto": {},
+ "sqlite3BtreeInsert": {},
+ "sqlite3BtreeIntegerKey": {},
+ "sqlite3BtreeIntegrityCheck": {},
+ "sqlite3BtreeIsInBackup": {},
+ "sqlite3BtreeIsReadonly": {},
+ "sqlite3BtreeLast": {},
+ "sqlite3BtreeLastPage": {},
+ "sqlite3BtreeLeave": {},
+ "sqlite3BtreeLeaveAll": {},
+ "sqlite3BtreeLeaveCursor": {},
+ "sqlite3BtreeLockTable": {},
+ "sqlite3BtreeMaxPageCount": {},
+ "sqlite3BtreeMaxRecordSize": {},
+ "sqlite3BtreeNewDb": {},
+ "sqlite3BtreeNext": {},
+ "sqlite3BtreeOffset": {},
+ "sqlite3BtreeOpen": {},
+ "sqlite3BtreePager": {},
+ "sqlite3BtreePayload": {},
+ "sqlite3BtreePayloadChecked": {},
+ "sqlite3BtreePayloadFetch": {},
+ "sqlite3BtreePayloadSize": {},
+ "sqlite3BtreePrevious": {},
+ "sqlite3BtreePutData": {},
+ "sqlite3BtreeRollback": {},
+ "sqlite3BtreeRowCountEst": {},
+ "sqlite3BtreeSavepoint": {},
+ "sqlite3BtreeSchema": {},
+ "sqlite3BtreeSchemaLocked": {},
+ "sqlite3BtreeSecureDelete": {},
+ "sqlite3BtreeSetAutoVacuum": {},
+ "sqlite3BtreeSetCacheSize": {},
+ "sqlite3BtreeSetMmapLimit": {},
+ "sqlite3BtreeSetPageSize": {},
+ "sqlite3BtreeSetPagerFlags": {},
+ "sqlite3BtreeSetSpillSize": {},
+ "sqlite3BtreeSetVersion": {},
+ "sqlite3BtreeSharable": {},
+ "sqlite3BtreeTableMoveto": {},
+ "sqlite3BtreeTransferRow": {},
+ "sqlite3BtreeTripAllCursors": {},
+ "sqlite3BtreeTxnState": {},
+ "sqlite3BtreeUpdateMeta": {},
+ "sqlite3BuiltinFunctions": {},
+ "sqlite3CantopenError": {},
+ "sqlite3ChangeCookie": {},
+ "sqlite3CheckCollSeq": {},
+ "sqlite3CheckObjectName": {},
+ "sqlite3Checkpoint": {},
+ "sqlite3ClearOnOrUsing": {},
+ "sqlite3ClearTempRegCache": {},
+ "sqlite3CloseExtensions": {},
+ "sqlite3CloseSavepoints": {},
+ "sqlite3CodeChangeCount": {},
+ "sqlite3CodeDropTable": {},
+ "sqlite3CodeRhsOfIN": {},
+ "sqlite3CodeRowTrigger": {},
+ "sqlite3CodeRowTriggerDirect": {},
+ "sqlite3CodeSubselect": {},
+ "sqlite3CodeVerifyNamedSchema": {},
+ "sqlite3CodeVerifySchema": {},
+ "sqlite3CollapseDatabaseArray": {},
+ "sqlite3ColumnColl": {},
+ "sqlite3ColumnDefault": {},
+ "sqlite3ColumnExpr": {},
+ "sqlite3ColumnIndex": {},
+ "sqlite3ColumnSetColl": {},
+ "sqlite3ColumnSetExpr": {},
+ "sqlite3ColumnType": {},
+ "sqlite3ColumnsFromExprList": {},
+ "sqlite3CommitInternalChanges": {},
+ "sqlite3CompareAffinity": {},
+ "sqlite3CompileOptions": {},
+ "sqlite3CompleteInsertion": {},
+ "sqlite3ComputeGeneratedColumns": {},
+ "sqlite3Config": {},
+ "sqlite3ConnectionBlocked": {},
+ "sqlite3ConnectionClosed": {},
+ "sqlite3ConnectionUnlocked": {},
+ "sqlite3CorruptError": {},
+ "sqlite3CreateColumnExpr": {},
+ "sqlite3CreateForeignKey": {},
+ "sqlite3CreateFunc": {},
+ "sqlite3CreateIndex": {},
+ "sqlite3CreateView": {},
+ "sqlite3CteDelete": {},
+ "sqlite3CteNew": {},
+ "sqlite3CtypeMap": {},
+ "sqlite3DbFree": {},
+ "sqlite3DbFreeNN": {},
+ "sqlite3DbIsNamed": {},
+ "sqlite3DbMallocRaw": {},
+ "sqlite3DbMallocRawNN": {},
+ "sqlite3DbMallocSize": {},
+ "sqlite3DbMallocZero": {},
+ "sqlite3DbNNFreeNN": {},
+ "sqlite3DbNameToBtree": {},
+ "sqlite3DbRealloc": {},
+ "sqlite3DbReallocOrFree": {},
+ "sqlite3DbSpanDup": {},
+ "sqlite3DbStrDup": {},
+ "sqlite3DbStrNDup": {},
+ "sqlite3DecOrHexToI64": {},
+ "sqlite3DefaultMutex": {},
+ "sqlite3DefaultRowEst": {},
+ "sqlite3DeferForeignKey": {},
+ "sqlite3DeleteColumnNames": {},
+ "sqlite3DeleteFrom": {},
+ "sqlite3DeleteIndexSamples": {},
+ "sqlite3DeleteTable": {},
+ "sqlite3DeleteTrigger": {},
+ "sqlite3DeleteTriggerStep": {},
+ "sqlite3Dequote": {},
+ "sqlite3DequoteExpr": {},
+ "sqlite3DequoteToken": {},
+ "sqlite3Detach": {},
+ "sqlite3DropIndex": {},
+ "sqlite3DropTable": {},
+ "sqlite3DropTrigger": {},
+ "sqlite3DropTriggerPtr": {},
+ "sqlite3EndBenignMalloc": {},
+ "sqlite3EndTable": {},
+ "sqlite3EndTransaction": {},
+ "sqlite3ErrStr": {},
+ "sqlite3Error": {},
+ "sqlite3ErrorClear": {},
+ "sqlite3ErrorMsg": {},
+ "sqlite3ErrorToParser": {},
+ "sqlite3ErrorWithMsg": {},
+ "sqlite3ExpandSubquery": {},
+ "sqlite3ExpirePreparedStatements": {},
+ "sqlite3Expr": {},
+ "sqlite3ExprAddCollateString": {},
+ "sqlite3ExprAddCollateToken": {},
+ "sqlite3ExprAffinity": {},
+ "sqlite3ExprAlloc": {},
+ "sqlite3ExprAnalyzeAggList": {},
+ "sqlite3ExprAnalyzeAggregates": {},
+ "sqlite3ExprAnd": {},
+ "sqlite3ExprAssignVarNumber": {},
+ "sqlite3ExprAttachSubtrees": {},
+ "sqlite3ExprCanBeNull": {},
+ "sqlite3ExprCheckHeight": {},
+ "sqlite3ExprCheckIN": {},
+ "sqlite3ExprCode": {},
+ "sqlite3ExprCodeCopy": {},
+ "sqlite3ExprCodeExprList": {},
+ "sqlite3ExprCodeFactorable": {},
+ "sqlite3ExprCodeGeneratedColumn": {},
+ "sqlite3ExprCodeGetColumn": {},
+ "sqlite3ExprCodeGetColumnOfTable": {},
+ "sqlite3ExprCodeLoadIndexColumn": {},
+ "sqlite3ExprCodeMove": {},
+ "sqlite3ExprCodeRunJustOnce": {},
+ "sqlite3ExprCodeTarget": {},
+ "sqlite3ExprCodeTemp": {},
+ "sqlite3ExprColUsed": {},
+ "sqlite3ExprCollSeq": {},
+ "sqlite3ExprCollSeqMatch": {},
+ "sqlite3ExprCompare": {},
+ "sqlite3ExprCompareCollSeq": {},
+ "sqlite3ExprCompareSkip": {},
+ "sqlite3ExprCoveredByIndex": {},
+ "sqlite3ExprDataType": {},
+ "sqlite3ExprDeferredDelete": {},
+ "sqlite3ExprDelete": {},
+ "sqlite3ExprDup": {},
+ "sqlite3ExprForVectorField": {},
+ "sqlite3ExprFunction": {},
+ "sqlite3ExprFunctionUsable": {},
+ "sqlite3ExprIdToTrueFalse": {},
+ "sqlite3ExprIfFalse": {},
+ "sqlite3ExprIfFalseDup": {},
+ "sqlite3ExprIfTrue": {},
+ "sqlite3ExprImpliesExpr": {},
+ "sqlite3ExprImpliesNonNullRow": {},
+ "sqlite3ExprIsConstant": {},
+ "sqlite3ExprIsConstantNotJoin": {},
+ "sqlite3ExprIsConstantOrFunction": {},
+ "sqlite3ExprIsConstantOrGroupBy": {},
+ "sqlite3ExprIsInteger": {},
+ "sqlite3ExprIsTableConstant": {},
+ "sqlite3ExprIsTableConstraint": {},
+ "sqlite3ExprIsVector": {},
+ "sqlite3ExprListAppend": {},
+ "sqlite3ExprListAppendGrow": {},
+ "sqlite3ExprListAppendNew": {},
+ "sqlite3ExprListAppendVector": {},
+ "sqlite3ExprListCheckLength": {},
+ "sqlite3ExprListCompare": {},
+ "sqlite3ExprListDelete": {},
+ "sqlite3ExprListDup": {},
+ "sqlite3ExprListFlags": {},
+ "sqlite3ExprListSetName": {},
+ "sqlite3ExprListSetSortOrder": {},
+ "sqlite3ExprListSetSpan": {},
+ "sqlite3ExprListToValues": {},
+ "sqlite3ExprNNCollSeq": {},
+ "sqlite3ExprNeedsNoAffinityChange": {},
+ "sqlite3ExprReferencesUpdatedColumn": {},
+ "sqlite3ExprSetHeightAndFlags": {},
+ "sqlite3ExprSimplifiedAndOr": {},
+ "sqlite3ExprSkipCollate": {},
+ "sqlite3ExprSkipCollateAndLikely": {},
+ "sqlite3ExprTruthValue": {},
+ "sqlite3ExprUnmapAndDelete": {},
+ "sqlite3ExprVectorSize": {},
+ "sqlite3ExprWalkNoop": {},
+ "sqlite3FaultSim": {},
+ "sqlite3FindCollSeq": {},
+ "sqlite3FindDb": {},
+ "sqlite3FindDbName": {},
+ "sqlite3FindFunction": {},
+ "sqlite3FindInIndex": {},
+ "sqlite3FindIndex": {},
+ "sqlite3FindTable": {},
+ "sqlite3FinishCoding": {},
+ "sqlite3FinishTrigger": {},
+ "sqlite3FixExpr": {},
+ "sqlite3FixInit": {},
+ "sqlite3FixSelect": {},
+ "sqlite3FixSrcList": {},
+ "sqlite3FixTriggerStep": {},
+ "sqlite3FkActions": {},
+ "sqlite3FkCheck": {},
+ "sqlite3FkClearTriggerCache": {},
+ "sqlite3FkDelete": {},
+ "sqlite3FkDropTable": {},
+ "sqlite3FkLocateIndex": {},
+ "sqlite3FkOldmask": {},
+ "sqlite3FkReferences": {},
+ "sqlite3FkRequired": {},
+ "sqlite3FreeIndex": {},
+ "sqlite3Fts5Init": {},
+ "sqlite3FunctionSearch": {},
+ "sqlite3GenerateColumnNames": {},
+ "sqlite3GenerateConstraintChecks": {},
+ "sqlite3GenerateIndexKey": {},
+ "sqlite3GenerateRowDelete": {},
+ "sqlite3GenerateRowIndexDelete": {},
+ "sqlite3Get4byte": {},
+ "sqlite3GetBoolean": {},
+ "sqlite3GetCollSeq": {},
+ "sqlite3GetInt32": {},
+ "sqlite3GetTempRange": {},
+ "sqlite3GetTempReg": {},
+ "sqlite3GetToken": {},
+ "sqlite3GetUInt32": {},
+ "sqlite3GetVTable": {},
+ "sqlite3GetVarint": {},
+ "sqlite3GetVarint32": {},
+ "sqlite3GetVdbe": {},
+ "sqlite3HaltConstraint": {},
+ "sqlite3HasExplicitNulls": {},
+ "sqlite3HashClear": {},
+ "sqlite3HashFind": {},
+ "sqlite3HashInit": {},
+ "sqlite3HashInsert": {},
+ "sqlite3HeaderSizeBtree": {},
+ "sqlite3HeaderSizePcache": {},
+ "sqlite3HeaderSizePcache1": {},
+ "sqlite3HeapNearlyFull": {},
+ "sqlite3HexToBlob": {},
+ "sqlite3HexToInt": {},
+ "sqlite3IdListAppend": {},
+ "sqlite3IdListDelete": {},
+ "sqlite3IdListDup": {},
+ "sqlite3IdListIndex": {},
+ "sqlite3IndexAffinityOk": {},
+ "sqlite3IndexAffinityStr": {},
+ "sqlite3IndexColumnAffinity": {},
+ "sqlite3IndexHasDuplicateRootPage": {},
+ "sqlite3IndexedByLookup": {},
+ "sqlite3Init": {},
+ "sqlite3InitCallback": {},
+ "sqlite3InitOne": {},
+ "sqlite3Insert": {},
+ "sqlite3InsertBuiltinFuncs": {},
+ "sqlite3Int64ToText": {},
+ "sqlite3IntFloatCompare": {},
+ "sqlite3InvokeBusyHandler": {},
+ "sqlite3IsBinary": {},
+ "sqlite3IsIdChar": {},
+ "sqlite3IsLikeFunction": {},
+ "sqlite3IsMemdb": {},
+ "sqlite3IsNaN": {},
+ "sqlite3IsReadOnly": {},
+ "sqlite3IsRowid": {},
+ "sqlite3IsShadowTableOf": {},
+ "sqlite3IsTrueOrFalse": {},
+ "sqlite3JoinType": {},
+ "sqlite3JournalIsInMemory": {},
+ "sqlite3JournalModename": {},
+ "sqlite3JournalOpen": {},
+ "sqlite3JournalSize": {},
+ "sqlite3JsonTableFunctions": {},
+ "sqlite3KeyInfoAlloc": {},
+ "sqlite3KeyInfoFromExprList": {},
+ "sqlite3KeyInfoOfIndex": {},
+ "sqlite3KeyInfoRef": {},
+ "sqlite3KeyInfoUnref": {},
+ "sqlite3KeywordCode": {},
+ "sqlite3LeaveMutexAndCloseZombie": {},
+ "sqlite3LocateCollSeq": {},
+ "sqlite3LocateTable": {},
+ "sqlite3LocateTableItem": {},
+ "sqlite3LogEst": {},
+ "sqlite3LogEstAdd": {},
+ "sqlite3LogEstFromDouble": {},
+ "sqlite3LogEstToInt": {},
+ "sqlite3LookasideUsed": {},
+ "sqlite3MPrintf": {},
+ "sqlite3Malloc": {},
+ "sqlite3MallocEnd": {},
+ "sqlite3MallocInit": {},
+ "sqlite3MallocMutex": {},
+ "sqlite3MallocSize": {},
+ "sqlite3MallocZero": {},
+ "sqlite3MarkAllShadowTablesOf": {},
+ "sqlite3MatchEName": {},
+ "sqlite3MaterializeView": {},
+ "sqlite3MayAbort": {},
+ "sqlite3MemCompare": {},
+ "sqlite3MemJournalOpen": {},
+ "sqlite3MemSetDefault": {},
+ "sqlite3MemdbInit": {},
+ "sqlite3MisuseError": {},
+ "sqlite3MulInt64": {},
+ "sqlite3MultiWrite": {},
+ "sqlite3MutexAlloc": {},
+ "sqlite3MutexEnd": {},
+ "sqlite3MutexInit": {},
+ "sqlite3NameFromToken": {},
+ "sqlite3NestedParse": {},
+ "sqlite3NoopDestructor": {},
+ "sqlite3NoopMutex": {},
+ "sqlite3NotPureFunc": {},
+ "sqlite3OomClear": {},
+ "sqlite3OomFault": {},
+ "sqlite3OpcodeName": {},
+ "sqlite3OpcodeProperty": {},
+ "sqlite3OpenSchemaTable": {},
+ "sqlite3OpenTable": {},
+ "sqlite3OpenTableAndIndices": {},
+ "sqlite3OpenTempDatabase": {},
+ "sqlite3OsAccess": {},
+ "sqlite3OsCheckReservedLock": {},
+ "sqlite3OsClose": {},
+ "sqlite3OsCloseFree": {},
+ "sqlite3OsCurrentTimeInt64": {},
+ "sqlite3OsDelete": {},
+ "sqlite3OsDeviceCharacteristics": {},
+ "sqlite3OsDlClose": {},
+ "sqlite3OsDlError": {},
+ "sqlite3OsDlOpen": {},
+ "sqlite3OsDlSym": {},
+ "sqlite3OsFetch": {},
+ "sqlite3OsFileControl": {},
+ "sqlite3OsFileControlHint": {},
+ "sqlite3OsFileSize": {},
+ "sqlite3OsFullPathname": {},
+ "sqlite3OsGetLastError": {},
+ "sqlite3OsInit": {},
+ "sqlite3OsLock": {},
+ "sqlite3OsOpen": {},
+ "sqlite3OsOpenMalloc": {},
+ "sqlite3OsRandomness": {},
+ "sqlite3OsRead": {},
+ "sqlite3OsSectorSize": {},
+ "sqlite3OsShmBarrier": {},
+ "sqlite3OsShmLock": {},
+ "sqlite3OsShmMap": {},
+ "sqlite3OsShmUnmap": {},
+ "sqlite3OsSleep": {},
+ "sqlite3OsSync": {},
+ "sqlite3OsTruncate": {},
+ "sqlite3OsUnfetch": {},
+ "sqlite3OsUnlock": {},
+ "sqlite3OsWrite": {},
+ "sqlite3PCacheBufferSetup": {},
+ "sqlite3PCachePercentDirty": {},
+ "sqlite3PCacheSetDefault": {},
+ "sqlite3PExpr": {},
+ "sqlite3PExprAddSelect": {},
+ "sqlite3PageFree": {},
+ "sqlite3PageMalloc": {},
+ "sqlite3PagerBackupPtr": {},
+ "sqlite3PagerBegin": {},
+ "sqlite3PagerCacheStat": {},
+ "sqlite3PagerCheckpoint": {},
+ "sqlite3PagerClearCache": {},
+ "sqlite3PagerClose": {},
+ "sqlite3PagerCloseWal": {},
+ "sqlite3PagerCommitPhaseOne": {},
+ "sqlite3PagerCommitPhaseTwo": {},
+ "sqlite3PagerDataVersion": {},
+ "sqlite3PagerDontWrite": {},
+ "sqlite3PagerExclusiveLock": {},
+ "sqlite3PagerFile": {},
+ "sqlite3PagerFilename": {},
+ "sqlite3PagerFlush": {},
+ "sqlite3PagerGet": {},
+ "sqlite3PagerGetData": {},
+ "sqlite3PagerGetExtra": {},
+ "sqlite3PagerGetJournalMode": {},
+ "sqlite3PagerIsMemdb": {},
+ "sqlite3PagerIsreadonly": {},
+ "sqlite3PagerJournalSizeLimit": {},
+ "sqlite3PagerJournalname": {},
+ "sqlite3PagerJrnlFile": {},
+ "sqlite3PagerLockingMode": {},
+ "sqlite3PagerLookup": {},
+ "sqlite3PagerMaxPageCount": {},
+ "sqlite3PagerMemUsed": {},
+ "sqlite3PagerMovepage": {},
+ "sqlite3PagerOkToChangeJournalMode": {},
+ "sqlite3PagerOpen": {},
+ "sqlite3PagerOpenSavepoint": {},
+ "sqlite3PagerOpenWal": {},
+ "sqlite3PagerPageRefcount": {},
+ "sqlite3PagerPagecount": {},
+ "sqlite3PagerReadFileheader": {},
+ "sqlite3PagerRef": {},
+ "sqlite3PagerRekey": {},
+ "sqlite3PagerRollback": {},
+ "sqlite3PagerSavepoint": {},
+ "sqlite3PagerSetBusyHandler": {},
+ "sqlite3PagerSetCachesize": {},
+ "sqlite3PagerSetFlags": {},
+ "sqlite3PagerSetJournalMode": {},
+ "sqlite3PagerSetMmapLimit": {},
+ "sqlite3PagerSetPagesize": {},
+ "sqlite3PagerSetSpillsize": {},
+ "sqlite3PagerSharedLock": {},
+ "sqlite3PagerShrink": {},
+ "sqlite3PagerSnapshotCheck": {},
+ "sqlite3PagerSnapshotGet": {},
+ "sqlite3PagerSnapshotOpen": {},
+ "sqlite3PagerSnapshotRecover": {},
+ "sqlite3PagerSnapshotUnlock": {},
+ "sqlite3PagerSync": {},
+ "sqlite3PagerTempSpace": {},
+ "sqlite3PagerTruncateImage": {},
+ "sqlite3PagerUnref": {},
+ "sqlite3PagerUnrefNotNull": {},
+ "sqlite3PagerUnrefPageOne": {},
+ "sqlite3PagerVfs": {},
+ "sqlite3PagerWalCallback": {},
+ "sqlite3PagerWalSupported": {},
+ "sqlite3PagerWrite": {},
+ "sqlite3ParseObjectInit": {},
+ "sqlite3ParseObjectReset": {},
+ "sqlite3ParseUri": {},
+ "sqlite3Parser": {},
+ "sqlite3ParserAddCleanup": {},
+ "sqlite3ParserFallback": {},
+ "sqlite3ParserFinalize": {},
+ "sqlite3ParserInit": {},
+ "sqlite3Pcache1Mutex": {},
+ "sqlite3PcacheCleanAll": {},
+ "sqlite3PcacheClear": {},
+ "sqlite3PcacheClearSyncFlags": {},
+ "sqlite3PcacheClearWritable": {},
+ "sqlite3PcacheClose": {},
+ "sqlite3PcacheDirtyList": {},
+ "sqlite3PcacheDrop": {},
+ "sqlite3PcacheFetch": {},
+ "sqlite3PcacheFetchFinish": {},
+ "sqlite3PcacheFetchStress": {},
+ "sqlite3PcacheInitialize": {},
+ "sqlite3PcacheMakeClean": {},
+ "sqlite3PcacheMakeDirty": {},
+ "sqlite3PcacheMove": {},
+ "sqlite3PcacheOpen": {},
+ "sqlite3PcachePageRefcount": {},
+ "sqlite3PcachePagecount": {},
+ "sqlite3PcacheRef": {},
+ "sqlite3PcacheRefCount": {},
+ "sqlite3PcacheRelease": {},
+ "sqlite3PcacheReleaseMemory": {},
+ "sqlite3PcacheSetCachesize": {},
+ "sqlite3PcacheSetPageSize": {},
+ "sqlite3PcacheSetSpillsize": {},
+ "sqlite3PcacheShrink": {},
+ "sqlite3PcacheShutdown": {},
+ "sqlite3PcacheSize": {},
+ "sqlite3PcacheTruncate": {},
+ "sqlite3PendingByte": {},
+ "sqlite3Pragma": {},
+ "sqlite3PragmaVtabRegister": {},
+ "sqlite3PreferredTableName": {},
+ "sqlite3PrimaryKeyIndex": {},
+ "sqlite3PrngRestoreState": {},
+ "sqlite3PrngSaveState": {},
+ "sqlite3ProgressCheck": {},
+ "sqlite3Put4byte": {},
+ "sqlite3PutVarint": {},
+ "sqlite3QuoteValue": {},
+ "sqlite3ReadOnlyShadowTables": {},
+ "sqlite3ReadSchema": {},
+ "sqlite3RealSameAsInt": {},
+ "sqlite3RealToI64": {},
+ "sqlite3Realloc": {},
+ "sqlite3RecordErrorByteOffset": {},
+ "sqlite3RecordErrorOffsetOfExpr": {},
+ "sqlite3ReferencesSrcList": {},
+ "sqlite3RegisterBuiltinFunctions": {},
+ "sqlite3RegisterDateTimeFunctions": {},
+ "sqlite3RegisterJsonFunctions": {},
+ "sqlite3RegisterLikeFunctions": {},
+ "sqlite3RegisterPerConnectionBuiltinFunctions": {},
+ "sqlite3Reindex": {},
+ "sqlite3ReleaseTempRange": {},
+ "sqlite3ReleaseTempReg": {},
+ "sqlite3RenameExprUnmap": {},
+ "sqlite3RenameExprlistUnmap": {},
+ "sqlite3RenameTokenMap": {},
+ "sqlite3RenameTokenRemap": {},
+ "sqlite3ReportError": {},
+ "sqlite3Reprepare": {},
+ "sqlite3ResetAllSchemasOfConnection": {},
+ "sqlite3ResetOneSchema": {},
+ "sqlite3ResolveExprListNames": {},
+ "sqlite3ResolveExprNames": {},
+ "sqlite3ResolveOrderGroupBy": {},
+ "sqlite3ResolvePartIdxLabel": {},
+ "sqlite3ResolveSelectNames": {},
+ "sqlite3ResolveSelfReference": {},
+ "sqlite3ResultIntReal": {},
+ "sqlite3ResultSetOfSelect": {},
+ "sqlite3ResultStrAccum": {},
+ "sqlite3RollbackAll": {},
+ "sqlite3RootPageMoved": {},
+ "sqlite3RowSetClear": {},
+ "sqlite3RowSetDelete": {},
+ "sqlite3RowSetInit": {},
+ "sqlite3RowSetInsert": {},
+ "sqlite3RowSetNext": {},
+ "sqlite3RowSetTest": {},
+ "sqlite3RowidConstraint": {},
+ "sqlite3RtreeInit": {},
+ "sqlite3RunParser": {},
+ "sqlite3RunVacuum": {},
+ "sqlite3SafetyCheckOk": {},
+ "sqlite3SafetyCheckSickOrOk": {},
+ "sqlite3Savepoint": {},
+ "sqlite3SchemaClear": {},
+ "sqlite3SchemaGet": {},
+ "sqlite3SchemaToIndex": {},
+ "sqlite3SectorSize": {},
+ "sqlite3Select": {},
+ "sqlite3SelectDelete": {},
+ "sqlite3SelectDestInit": {},
+ "sqlite3SelectDup": {},
+ "sqlite3SelectExprHeight": {},
+ "sqlite3SelectNew": {},
+ "sqlite3SelectOpName": {},
+ "sqlite3SelectPopWith": {},
+ "sqlite3SelectPrep": {},
+ "sqlite3SelectWalkFail": {},
+ "sqlite3SelectWalkNoop": {},
+ "sqlite3SelectWrongNumTermsError": {},
+ "sqlite3SetJoinExpr": {},
+ "sqlite3SetString": {},
+ "sqlite3SetTextEncoding": {},
+ "sqlite3ShadowTableName": {},
+ "sqlite3SmallTypeSizes": {},
+ "sqlite3SrcItemColumnUsed": {},
+ "sqlite3SrcListAppend": {},
+ "sqlite3SrcListAppendFromTerm": {},
+ "sqlite3SrcListAppendList": {},
+ "sqlite3SrcListAssignCursors": {},
+ "sqlite3SrcListDelete": {},
+ "sqlite3SrcListDup": {},
+ "sqlite3SrcListEnlarge": {},
+ "sqlite3SrcListFuncArgs": {},
+ "sqlite3SrcListIndexedBy": {},
+ "sqlite3SrcListLookup": {},
+ "sqlite3SrcListShiftJoinType": {},
+ "sqlite3StartTable": {},
+ "sqlite3Stat4Column": {},
+ "sqlite3Stat4ProbeFree": {},
+ "sqlite3Stat4ProbeSetValue": {},
+ "sqlite3Stat4ValueFromExpr": {},
+ "sqlite3StatusDown": {},
+ "sqlite3StatusHighwater": {},
+ "sqlite3StatusUp": {},
+ "sqlite3StatusValue": {},
+ "sqlite3StdType": {},
+ "sqlite3StdTypeAffinity": {},
+ "sqlite3StdTypeLen": {},
+ "sqlite3StmtCurrentTime": {},
+ "sqlite3StorageColumnToTable": {},
+ "sqlite3StrAccumEnlarge": {},
+ "sqlite3StrAccumFinish": {},
+ "sqlite3StrAccumInit": {},
+ "sqlite3StrAccumSetError": {},
+ "sqlite3StrBINARY": {},
+ "sqlite3StrICmp": {},
+ "sqlite3StrIHash": {},
+ "sqlite3Strlen30": {},
+ "sqlite3SubInt64": {},
+ "sqlite3SubqueryColumnTypes": {},
+ "sqlite3SubselectError": {},
+ "sqlite3SystemError": {},
+ "sqlite3TableAffinity": {},
+ "sqlite3TableAffinityStr": {},
+ "sqlite3TableColumnAffinity": {},
+ "sqlite3TableColumnToIndex": {},
+ "sqlite3TableColumnToStorage": {},
+ "sqlite3TableLock": {},
+ "sqlite3TempInMemory": {},
+ "sqlite3ThreadCreate": {},
+ "sqlite3ThreadJoin": {},
+ "sqlite3TokenInit": {},
+ "sqlite3TransferBindings": {},
+ "sqlite3TreeTrace": {},
+ "sqlite3TriggerColmask": {},
+ "sqlite3TriggerDeleteStep": {},
+ "sqlite3TriggerInsertStep": {},
+ "sqlite3TriggerList": {},
+ "sqlite3TriggerSelectStep": {},
+ "sqlite3TriggerStepSrc": {},
+ "sqlite3TriggerUpdateStep": {},
+ "sqlite3TriggersExist": {},
+ "sqlite3TwoPartName": {},
+ "sqlite3UniqueConstraint": {},
+ "sqlite3UnlinkAndDeleteIndex": {},
+ "sqlite3UnlinkAndDeleteTable": {},
+ "sqlite3UnlinkAndDeleteTrigger": {},
+ "sqlite3Update": {},
+ "sqlite3UpperToLower": {},
+ "sqlite3UpsertAnalyzeTarget": {},
+ "sqlite3UpsertDelete": {},
+ "sqlite3UpsertDoUpdate": {},
+ "sqlite3UpsertDup": {},
+ "sqlite3UpsertNew": {},
+ "sqlite3UpsertNextIsIPK": {},
+ "sqlite3UpsertOfIndex": {},
+ "sqlite3Utf16ByteLen": {},
+ "sqlite3Utf16to8": {},
+ "sqlite3Utf8CharLen": {},
+ "sqlite3Utf8Read": {},
+ "sqlite3VListAdd": {},
+ "sqlite3VListNameToNum": {},
+ "sqlite3VListNumToName": {},
+ "sqlite3VMPrintf": {},
+ "sqlite3Vacuum": {},
+ "sqlite3ValueApplyAffinity": {},
+ "sqlite3ValueBytes": {},
+ "sqlite3ValueFree": {},
+ "sqlite3ValueFromExpr": {},
+ "sqlite3ValueNew": {},
+ "sqlite3ValueSetNull": {},
+ "sqlite3ValueSetStr": {},
+ "sqlite3ValueText": {},
+ "sqlite3VarintLen": {},
+ "sqlite3VdbeAddFunctionCall": {},
+ "sqlite3VdbeAddOp0": {},
+ "sqlite3VdbeAddOp1": {},
+ "sqlite3VdbeAddOp2": {},
+ "sqlite3VdbeAddOp3": {},
+ "sqlite3VdbeAddOp4": {},
+ "sqlite3VdbeAddOp4Dup8": {},
+ "sqlite3VdbeAddOp4Int": {},
+ "sqlite3VdbeAddOpList": {},
+ "sqlite3VdbeAddParseSchemaOp": {},
+ "sqlite3VdbeAllocUnpackedRecord": {},
+ "sqlite3VdbeAppendP4": {},
+ "sqlite3VdbeBooleanValue": {},
+ "sqlite3VdbeChangeEncoding": {},
+ "sqlite3VdbeChangeOpcode": {},
+ "sqlite3VdbeChangeP1": {},
+ "sqlite3VdbeChangeP2": {},
+ "sqlite3VdbeChangeP3": {},
+ "sqlite3VdbeChangeP4": {},
+ "sqlite3VdbeChangeP5": {},
+ "sqlite3VdbeChangeToNoop": {},
+ "sqlite3VdbeCheckFk": {},
+ "sqlite3VdbeCloseStatement": {},
+ "sqlite3VdbeCountChanges": {},
+ "sqlite3VdbeCreate": {},
+ "sqlite3VdbeCurrentAddr": {},
+ "sqlite3VdbeCursorRestore": {},
+ "sqlite3VdbeDb": {},
+ "sqlite3VdbeDelete": {},
+ "sqlite3VdbeDeleteAuxData": {},
+ "sqlite3VdbeDeletePriorOpcode": {},
+ "sqlite3VdbeDisplayP4": {},
+ "sqlite3VdbeEndCoroutine": {},
+ "sqlite3VdbeEnter": {},
+ "sqlite3VdbeError": {},
+ "sqlite3VdbeExec": {},
+ "sqlite3VdbeExpandSql": {},
+ "sqlite3VdbeExplain": {},
+ "sqlite3VdbeExplainParent": {},
+ "sqlite3VdbeExplainPop": {},
+ "sqlite3VdbeFinalize": {},
+ "sqlite3VdbeFindCompare": {},
+ "sqlite3VdbeFinishMoveto": {},
+ "sqlite3VdbeFrameDelete": {},
+ "sqlite3VdbeFrameMemDel": {},
+ "sqlite3VdbeFrameRestore": {},
+ "sqlite3VdbeFreeCursor": {},
+ "sqlite3VdbeFreeCursorNN": {},
+ "sqlite3VdbeGetBoundValue": {},
+ "sqlite3VdbeGetLastOp": {},
+ "sqlite3VdbeGetOp": {},
+ "sqlite3VdbeGoto": {},
+ "sqlite3VdbeHalt": {},
+ "sqlite3VdbeHandleMovedCursor": {},
+ "sqlite3VdbeHasSubProgram": {},
+ "sqlite3VdbeIdxKeyCompare": {},
+ "sqlite3VdbeIdxRowid": {},
+ "sqlite3VdbeIntValue": {},
+ "sqlite3VdbeIntegerAffinity": {},
+ "sqlite3VdbeJumpHere": {},
+ "sqlite3VdbeJumpHereOrPopInst": {},
+ "sqlite3VdbeLeave": {},
+ "sqlite3VdbeLinkSubProgram": {},
+ "sqlite3VdbeList": {},
+ "sqlite3VdbeLoadString": {},
+ "sqlite3VdbeMakeLabel": {},
+ "sqlite3VdbeMakeReady": {},
+ "sqlite3VdbeMemAggValue": {},
+ "sqlite3VdbeMemCast": {},
+ "sqlite3VdbeMemClearAndResize": {},
+ "sqlite3VdbeMemCopy": {},
+ "sqlite3VdbeMemExpandBlob": {},
+ "sqlite3VdbeMemFinalize": {},
+ "sqlite3VdbeMemFromBtree": {},
+ "sqlite3VdbeMemFromBtreeZeroOffset": {},
+ "sqlite3VdbeMemGrow": {},
+ "sqlite3VdbeMemHandleBom": {},
+ "sqlite3VdbeMemInit": {},
+ "sqlite3VdbeMemIntegerify": {},
+ "sqlite3VdbeMemMakeWriteable": {},
+ "sqlite3VdbeMemMove": {},
+ "sqlite3VdbeMemNulTerminate": {},
+ "sqlite3VdbeMemNumerify": {},
+ "sqlite3VdbeMemRealify": {},
+ "sqlite3VdbeMemRelease": {},
+ "sqlite3VdbeMemReleaseMalloc": {},
+ "sqlite3VdbeMemSetDouble": {},
+ "sqlite3VdbeMemSetInt64": {},
+ "sqlite3VdbeMemSetNull": {},
+ "sqlite3VdbeMemSetPointer": {},
+ "sqlite3VdbeMemSetRowSet": {},
+ "sqlite3VdbeMemSetStr": {},
+ "sqlite3VdbeMemSetZeroBlob": {},
+ "sqlite3VdbeMemShallowCopy": {},
+ "sqlite3VdbeMemStringify": {},
+ "sqlite3VdbeMemTooBig": {},
+ "sqlite3VdbeMemTranslate": {},
+ "sqlite3VdbeMultiLoad": {},
+ "sqlite3VdbeNextOpcode": {},
+ "sqlite3VdbeOneByteSerialTypeLen": {},
+ "sqlite3VdbeParameterIndex": {},
+ "sqlite3VdbeParser": {},
+ "sqlite3VdbePreUpdateHook": {},
+ "sqlite3VdbePrepareFlags": {},
+ "sqlite3VdbeRealValue": {},
+ "sqlite3VdbeRecordCompare": {},
+ "sqlite3VdbeRecordCompareWithSkip": {},
+ "sqlite3VdbeRecordUnpack": {},
+ "sqlite3VdbeReset": {},
+ "sqlite3VdbeResetStepResult": {},
+ "sqlite3VdbeResolveLabel": {},
+ "sqlite3VdbeReusable": {},
+ "sqlite3VdbeRewind": {},
+ "sqlite3VdbeRunOnlyOnce": {},
+ "sqlite3VdbeSerialGet": {},
+ "sqlite3VdbeSerialTypeLen": {},
+ "sqlite3VdbeSetChanges": {},
+ "sqlite3VdbeSetColName": {},
+ "sqlite3VdbeSetNumCols": {},
+ "sqlite3VdbeSetP4KeyInfo": {},
+ "sqlite3VdbeSetSql": {},
+ "sqlite3VdbeSetVarmask": {},
+ "sqlite3VdbeSorterClose": {},
+ "sqlite3VdbeSorterCompare": {},
+ "sqlite3VdbeSorterInit": {},
+ "sqlite3VdbeSorterNext": {},
+ "sqlite3VdbeSorterReset": {},
+ "sqlite3VdbeSorterRewind": {},
+ "sqlite3VdbeSorterRowkey": {},
+ "sqlite3VdbeSorterWrite": {},
+ "sqlite3VdbeSwap": {},
+ "sqlite3VdbeTakeOpArray": {},
+ "sqlite3VdbeTransferError": {},
+ "sqlite3VdbeTypeofColumn": {},
+ "sqlite3VdbeUsesBtree": {},
+ "sqlite3VdbeValueListFree": {},
+ "sqlite3VectorErrorMsg": {},
+ "sqlite3VectorFieldSubexpr": {},
+ "sqlite3ViewGetColumnNames": {},
+ "sqlite3VtabArgExtend": {},
+ "sqlite3VtabArgInit": {},
+ "sqlite3VtabBegin": {},
+ "sqlite3VtabBeginParse": {},
+ "sqlite3VtabCallConnect": {},
+ "sqlite3VtabCallCreate": {},
+ "sqlite3VtabCallDestroy": {},
+ "sqlite3VtabClear": {},
+ "sqlite3VtabCommit": {},
+ "sqlite3VtabCreateModule": {},
+ "sqlite3VtabDisconnect": {},
+ "sqlite3VtabEponymousTableClear": {},
+ "sqlite3VtabEponymousTableInit": {},
+ "sqlite3VtabFinishParse": {},
+ "sqlite3VtabImportErrmsg": {},
+ "sqlite3VtabLock": {},
+ "sqlite3VtabMakeWritable": {},
+ "sqlite3VtabModuleUnref": {},
+ "sqlite3VtabOverloadFunction": {},
+ "sqlite3VtabRollback": {},
+ "sqlite3VtabSavepoint": {},
+ "sqlite3VtabSync": {},
+ "sqlite3VtabUnlock": {},
+ "sqlite3VtabUnlockList": {},
+ "sqlite3WalBeginReadTransaction": {},
+ "sqlite3WalBeginWriteTransaction": {},
+ "sqlite3WalCallback": {},
+ "sqlite3WalCheckpoint": {},
+ "sqlite3WalClose": {},
+ "sqlite3WalDbsize": {},
+ "sqlite3WalDefaultHook": {},
+ "sqlite3WalEndReadTransaction": {},
+ "sqlite3WalEndWriteTransaction": {},
+ "sqlite3WalExclusiveMode": {},
+ "sqlite3WalFile": {},
+ "sqlite3WalFindFrame": {},
+ "sqlite3WalFrames": {},
+ "sqlite3WalHeapMemory": {},
+ "sqlite3WalLimit": {},
+ "sqlite3WalOpen": {},
+ "sqlite3WalReadFrame": {},
+ "sqlite3WalSavepoint": {},
+ "sqlite3WalSavepointUndo": {},
+ "sqlite3WalSnapshotCheck": {},
+ "sqlite3WalSnapshotGet": {},
+ "sqlite3WalSnapshotOpen": {},
+ "sqlite3WalSnapshotRecover": {},
+ "sqlite3WalSnapshotUnlock": {},
+ "sqlite3WalUndo": {},
+ "sqlite3WalkExpr": {},
+ "sqlite3WalkExprList": {},
+ "sqlite3WalkSelect": {},
+ "sqlite3WalkSelectExpr": {},
+ "sqlite3WalkSelectFrom": {},
+ "sqlite3WalkWinDefnDummyCallback": {},
+ "sqlite3WalkerDepthDecrease": {},
+ "sqlite3WalkerDepthIncrease": {},
+ "sqlite3WhereAddLimit": {},
+ "sqlite3WhereBegin": {},
+ "sqlite3WhereBreakLabel": {},
+ "sqlite3WhereClauseClear": {},
+ "sqlite3WhereClauseInit": {},
+ "sqlite3WhereCodeOneLoopStart": {},
+ "sqlite3WhereContinueLabel": {},
+ "sqlite3WhereEnd": {},
+ "sqlite3WhereExplainBloomFilter": {},
+ "sqlite3WhereExplainOneScan": {},
+ "sqlite3WhereExprAnalyze": {},
+ "sqlite3WhereExprListUsage": {},
+ "sqlite3WhereExprUsage": {},
+ "sqlite3WhereExprUsageNN": {},
+ "sqlite3WhereFindTerm": {},
+ "sqlite3WhereGetMask": {},
+ "sqlite3WhereIsDistinct": {},
+ "sqlite3WhereIsOrdered": {},
+ "sqlite3WhereIsSorted": {},
+ "sqlite3WhereMalloc": {},
+ "sqlite3WhereMinMaxOptEarlyOut": {},
+ "sqlite3WhereOkOnePass": {},
+ "sqlite3WhereOrderByLimitOptLabel": {},
+ "sqlite3WhereOutputRowCount": {},
+ "sqlite3WhereRealloc": {},
+ "sqlite3WhereRightJoinLoop": {},
+ "sqlite3WhereSplit": {},
+ "sqlite3WhereTabFuncArgs": {},
+ "sqlite3WhereTrace": {},
+ "sqlite3WhereUsesDeferredSeek": {},
+ "sqlite3WindowAlloc": {},
+ "sqlite3WindowAssemble": {},
+ "sqlite3WindowAttach": {},
+ "sqlite3WindowChain": {},
+ "sqlite3WindowCodeInit": {},
+ "sqlite3WindowCodeStep": {},
+ "sqlite3WindowCompare": {},
+ "sqlite3WindowDelete": {},
+ "sqlite3WindowDup": {},
+ "sqlite3WindowFunctions": {},
+ "sqlite3WindowLink": {},
+ "sqlite3WindowListDelete": {},
+ "sqlite3WindowListDup": {},
+ "sqlite3WindowRewrite": {},
+ "sqlite3WindowUnlinkFromSelect": {},
+ "sqlite3WindowUpdate": {},
+ "sqlite3WithAdd": {},
+ "sqlite3WithDelete": {},
+ "sqlite3WithDup": {},
+ "sqlite3WithPush": {},
+ "sqlite3WritableSchema": {},
+ "sqlite3_aggregate_context": {},
+ "sqlite3_aggregate_count": {},
+ "sqlite3_auto_extension": {},
+ "sqlite3_autovacuum_pages": {},
+ "sqlite3_backup_finish": {},
+ "sqlite3_backup_init": {},
+ "sqlite3_backup_pagecount": {},
+ "sqlite3_backup_remaining": {},
+ "sqlite3_backup_step": {},
+ "sqlite3_bind_blob": {},
+ "sqlite3_bind_blob64": {},
+ "sqlite3_bind_double": {},
+ "sqlite3_bind_int": {},
+ "sqlite3_bind_int64": {},
+ "sqlite3_bind_null": {},
+ "sqlite3_bind_parameter_count": {},
+ "sqlite3_bind_parameter_index": {},
+ "sqlite3_bind_parameter_name": {},
+ "sqlite3_bind_pointer": {},
+ "sqlite3_bind_text": {},
+ "sqlite3_bind_text16": {},
+ "sqlite3_bind_text64": {},
+ "sqlite3_bind_value": {},
+ "sqlite3_bind_zeroblob": {},
+ "sqlite3_bind_zeroblob64": {},
+ "sqlite3_blob_bytes": {},
+ "sqlite3_blob_close": {},
+ "sqlite3_blob_open": {},
+ "sqlite3_blob_read": {},
+ "sqlite3_blob_reopen": {},
+ "sqlite3_blob_write": {},
+ "sqlite3_busy_handler": {},
+ "sqlite3_busy_timeout": {},
+ "sqlite3_cancel_auto_extension": {},
+ "sqlite3_changes": {},
+ "sqlite3_changes64": {},
+ "sqlite3_clear_bindings": {},
+ "sqlite3_close": {},
+ "sqlite3_close_v2": {},
+ "sqlite3_collation_needed": {},
+ "sqlite3_collation_needed16": {},
+ "sqlite3_column_blob": {},
+ "sqlite3_column_bytes": {},
+ "sqlite3_column_bytes16": {},
+ "sqlite3_column_count": {},
+ "sqlite3_column_database_name": {},
+ "sqlite3_column_database_name16": {},
+ "sqlite3_column_decltype": {},
+ "sqlite3_column_decltype16": {},
+ "sqlite3_column_double": {},
+ "sqlite3_column_int": {},
+ "sqlite3_column_int64": {},
+ "sqlite3_column_name": {},
+ "sqlite3_column_name16": {},
+ "sqlite3_column_origin_name": {},
+ "sqlite3_column_origin_name16": {},
+ "sqlite3_column_table_name": {},
+ "sqlite3_column_table_name16": {},
+ "sqlite3_column_text": {},
+ "sqlite3_column_text16": {},
+ "sqlite3_column_type": {},
+ "sqlite3_column_value": {},
+ "sqlite3_commit_hook": {},
+ "sqlite3_compileoption_get": {},
+ "sqlite3_compileoption_used": {},
+ "sqlite3_complete": {},
+ "sqlite3_complete16": {},
+ "sqlite3_config": {},
+ "sqlite3_context_db_handle": {},
+ "sqlite3_create_collation": {},
+ "sqlite3_create_collation16": {},
+ "sqlite3_create_collation_v2": {},
+ "sqlite3_create_filename": {},
+ "sqlite3_create_function": {},
+ "sqlite3_create_function16": {},
+ "sqlite3_create_function_v2": {},
+ "sqlite3_create_module": {},
+ "sqlite3_create_module_v2": {},
+ "sqlite3_create_window_function": {},
+ "sqlite3_data_count": {},
+ "sqlite3_data_directory": {},
+ "sqlite3_database_file_object": {},
+ "sqlite3_db_cacheflush": {},
+ "sqlite3_db_config": {},
+ "sqlite3_db_filename": {},
+ "sqlite3_db_handle": {},
+ "sqlite3_db_mutex": {},
+ "sqlite3_db_name": {},
+ "sqlite3_db_readonly": {},
+ "sqlite3_db_release_memory": {},
+ "sqlite3_db_status": {},
+ "sqlite3_declare_vtab": {},
+ "sqlite3_deserialize": {},
+ "sqlite3_drop_modules": {},
+ "sqlite3_enable_load_extension": {},
+ "sqlite3_enable_shared_cache": {},
+ "sqlite3_errcode": {},
+ "sqlite3_errmsg": {},
+ "sqlite3_errmsg16": {},
+ "sqlite3_error_offset": {},
+ "sqlite3_errstr": {},
+ "sqlite3_exec": {},
+ "sqlite3_expanded_sql": {},
+ "sqlite3_expired": {},
+ "sqlite3_extended_errcode": {},
+ "sqlite3_extended_result_codes": {},
+ "sqlite3_file_control": {},
+ "sqlite3_filename_database": {},
+ "sqlite3_filename_journal": {},
+ "sqlite3_filename_wal": {},
+ "sqlite3_finalize": {},
+ "sqlite3_free": {},
+ "sqlite3_free_filename": {},
+ "sqlite3_free_table": {},
+ "sqlite3_get_autocommit": {},
+ "sqlite3_get_auxdata": {},
+ "sqlite3_get_table": {},
+ "sqlite3_global_recover": {},
+ "sqlite3_hard_heap_limit64": {},
+ "sqlite3_initialize": {},
+ "sqlite3_interrupt": {},
+ "sqlite3_is_interrupted": {},
+ "sqlite3_keyword_check": {},
+ "sqlite3_keyword_count": {},
+ "sqlite3_keyword_name": {},
+ "sqlite3_last_insert_rowid": {},
+ "sqlite3_libversion": {},
+ "sqlite3_libversion_number": {},
+ "sqlite3_limit": {},
+ "sqlite3_load_extension": {},
+ "sqlite3_log": {},
+ "sqlite3_malloc": {},
+ "sqlite3_malloc64": {},
+ "sqlite3_memory_alarm": {},
+ "sqlite3_memory_highwater": {},
+ "sqlite3_memory_used": {},
+ "sqlite3_mprintf": {},
+ "sqlite3_msize": {},
+ "sqlite3_mutex_alloc": {},
+ "sqlite3_mutex_enter": {},
+ "sqlite3_mutex_free": {},
+ "sqlite3_mutex_leave": {},
+ "sqlite3_mutex_try": {},
+ "sqlite3_next_stmt": {},
+ "sqlite3_open": {},
+ "sqlite3_open16": {},
+ "sqlite3_open_v2": {},
+ "sqlite3_os_end": {},
+ "sqlite3_os_init": {},
+ "sqlite3_overload_function": {},
+ "sqlite3_prepare": {},
+ "sqlite3_prepare16": {},
+ "sqlite3_prepare16_v2": {},
+ "sqlite3_prepare16_v3": {},
+ "sqlite3_prepare_v2": {},
+ "sqlite3_prepare_v3": {},
+ "sqlite3_preupdate_blobwrite": {},
+ "sqlite3_preupdate_count": {},
+ "sqlite3_preupdate_depth": {},
+ "sqlite3_preupdate_hook": {},
+ "sqlite3_preupdate_new": {},
+ "sqlite3_preupdate_old": {},
+ "sqlite3_profile": {},
+ "sqlite3_progress_handler": {},
+ "sqlite3_randomness": {},
+ "sqlite3_realloc": {},
+ "sqlite3_realloc64": {},
+ "sqlite3_release_memory": {},
+ "sqlite3_reset": {},
+ "sqlite3_reset_auto_extension": {},
+ "sqlite3_result_blob": {},
+ "sqlite3_result_blob64": {},
+ "sqlite3_result_double": {},
+ "sqlite3_result_error": {},
+ "sqlite3_result_error16": {},
+ "sqlite3_result_error_code": {},
+ "sqlite3_result_error_nomem": {},
+ "sqlite3_result_error_toobig": {},
+ "sqlite3_result_int": {},
+ "sqlite3_result_int64": {},
+ "sqlite3_result_null": {},
+ "sqlite3_result_pointer": {},
+ "sqlite3_result_subtype": {},
+ "sqlite3_result_text": {},
+ "sqlite3_result_text16": {},
+ "sqlite3_result_text16be": {},
+ "sqlite3_result_text16le": {},
+ "sqlite3_result_text64": {},
+ "sqlite3_result_value": {},
+ "sqlite3_result_zeroblob": {},
+ "sqlite3_result_zeroblob64": {},
+ "sqlite3_rollback_hook": {},
+ "sqlite3_rtree_geometry_callback": {},
+ "sqlite3_rtree_query_callback": {},
+ "sqlite3_serialize": {},
+ "sqlite3_set_authorizer": {},
+ "sqlite3_set_auxdata": {},
+ "sqlite3_set_last_insert_rowid": {},
+ "sqlite3_shutdown": {},
+ "sqlite3_sleep": {},
+ "sqlite3_snapshot_cmp": {},
+ "sqlite3_snapshot_free": {},
+ "sqlite3_snapshot_get": {},
+ "sqlite3_snapshot_open": {},
+ "sqlite3_snapshot_recover": {},
+ "sqlite3_snprintf": {},
+ "sqlite3_soft_heap_limit": {},
+ "sqlite3_soft_heap_limit64": {},
+ "sqlite3_sourceid": {},
+ "sqlite3_sql": {},
+ "sqlite3_status": {},
+ "sqlite3_status64": {},
+ "sqlite3_step": {},
+ "sqlite3_stmt_busy": {},
+ "sqlite3_stmt_isexplain": {},
+ "sqlite3_stmt_readonly": {},
+ "sqlite3_stmt_status": {},
+ "sqlite3_str_append": {},
+ "sqlite3_str_appendall": {},
+ "sqlite3_str_appendchar": {},
+ "sqlite3_str_appendf": {},
+ "sqlite3_str_errcode": {},
+ "sqlite3_str_finish": {},
+ "sqlite3_str_length": {},
+ "sqlite3_str_new": {},
+ "sqlite3_str_reset": {},
+ "sqlite3_str_value": {},
+ "sqlite3_str_vappendf": {},
+ "sqlite3_strglob": {},
+ "sqlite3_stricmp": {},
+ "sqlite3_strlike": {},
+ "sqlite3_strnicmp": {},
+ "sqlite3_system_errno": {},
+ "sqlite3_table_column_metadata": {},
+ "sqlite3_temp_directory": {},
+ "sqlite3_test_control": {},
+ "sqlite3_thread_cleanup": {},
+ "sqlite3_threadsafe": {},
+ "sqlite3_total_changes": {},
+ "sqlite3_total_changes64": {},
+ "sqlite3_trace": {},
+ "sqlite3_trace_v2": {},
+ "sqlite3_transfer_bindings": {},
+ "sqlite3_txn_state": {},
+ "sqlite3_unlock_notify": {},
+ "sqlite3_update_hook": {},
+ "sqlite3_uri_boolean": {},
+ "sqlite3_uri_int64": {},
+ "sqlite3_uri_key": {},
+ "sqlite3_uri_parameter": {},
+ "sqlite3_user_data": {},
+ "sqlite3_value_blob": {},
+ "sqlite3_value_bytes": {},
+ "sqlite3_value_bytes16": {},
+ "sqlite3_value_double": {},
+ "sqlite3_value_dup": {},
+ "sqlite3_value_encoding": {},
+ "sqlite3_value_free": {},
+ "sqlite3_value_frombind": {},
+ "sqlite3_value_int": {},
+ "sqlite3_value_int64": {},
+ "sqlite3_value_nochange": {},
+ "sqlite3_value_numeric_type": {},
+ "sqlite3_value_pointer": {},
+ "sqlite3_value_subtype": {},
+ "sqlite3_value_text": {},
+ "sqlite3_value_text16": {},
+ "sqlite3_value_text16be": {},
+ "sqlite3_value_text16le": {},
+ "sqlite3_value_type": {},
+ "sqlite3_version": {},
+ "sqlite3_vfs_find": {},
+ "sqlite3_vfs_register": {},
+ "sqlite3_vfs_unregister": {},
+ "sqlite3_vmprintf": {},
+ "sqlite3_vsnprintf": {},
+ "sqlite3_vtab_collation": {},
+ "sqlite3_vtab_config": {},
+ "sqlite3_vtab_distinct": {},
+ "sqlite3_vtab_in": {},
+ "sqlite3_vtab_in_first": {},
+ "sqlite3_vtab_in_next": {},
+ "sqlite3_vtab_nochange": {},
+ "sqlite3_vtab_on_conflict": {},
+ "sqlite3_vtab_rhs_value": {},
+ "sqlite3_wal_autocheckpoint": {},
+ "sqlite3_wal_checkpoint": {},
+ "sqlite3_wal_checkpoint_v2": {},
+ "sqlite3_wal_hook": {},
+ "sqlite3aEQb": {},
+ "sqlite3aGTb": {},
+ "sqlite3aLTb": {},
+ "sqlite3changegroup_add": {},
+ "sqlite3changegroup_add_strm": {},
+ "sqlite3changegroup_delete": {},
+ "sqlite3changegroup_new": {},
+ "sqlite3changegroup_output": {},
+ "sqlite3changegroup_output_strm": {},
+ "sqlite3changeset_apply": {},
+ "sqlite3changeset_apply_strm": {},
+ "sqlite3changeset_apply_v2": {},
+ "sqlite3changeset_apply_v2_strm": {},
+ "sqlite3changeset_concat": {},
+ "sqlite3changeset_concat_strm": {},
+ "sqlite3changeset_conflict": {},
+ "sqlite3changeset_finalize": {},
+ "sqlite3changeset_fk_conflicts": {},
+ "sqlite3changeset_invert": {},
+ "sqlite3changeset_invert_strm": {},
+ "sqlite3changeset_new": {},
+ "sqlite3changeset_next": {},
+ "sqlite3changeset_old": {},
+ "sqlite3changeset_op": {},
+ "sqlite3changeset_pk": {},
+ "sqlite3changeset_start": {},
+ "sqlite3changeset_start_strm": {},
+ "sqlite3changeset_start_v2": {},
+ "sqlite3changeset_start_v2_strm": {},
+ "sqlite3rbu_bp_progress": {},
+ "sqlite3rbu_close": {},
+ "sqlite3rbu_create_vfs": {},
+ "sqlite3rbu_db": {},
+ "sqlite3rbu_destroy_vfs": {},
+ "sqlite3rbu_open": {},
+ "sqlite3rbu_progress": {},
+ "sqlite3rbu_rename_handler": {},
+ "sqlite3rbu_savestate": {},
+ "sqlite3rbu_state": {},
+ "sqlite3rbu_step": {},
+ "sqlite3rbu_temp_size": {},
+ "sqlite3rbu_temp_size_limit": {},
+ "sqlite3rbu_vacuum": {},
+ "sqlite3rebaser_configure": {},
+ "sqlite3rebaser_create": {},
+ "sqlite3rebaser_delete": {},
+ "sqlite3rebaser_rebase": {},
+ "sqlite3rebaser_rebase_strm": {},
+ "sqlite3session_attach": {},
+ "sqlite3session_changeset": {},
+ "sqlite3session_changeset_size": {},
+ "sqlite3session_changeset_strm": {},
+ "sqlite3session_config": {},
+ "sqlite3session_create": {},
+ "sqlite3session_delete": {},
+ "sqlite3session_diff": {},
+ "sqlite3session_enable": {},
+ "sqlite3session_indirect": {},
+ "sqlite3session_isempty": {},
+ "sqlite3session_memory_used": {},
+ "sqlite3session_object_config": {},
+ "sqlite3session_patchset": {},
+ "sqlite3session_patchset_strm": {},
+ "sqlite3session_table_filter": {},
+}
diff --git a/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go
new file mode 100644
index 0000000000..985e1aa290
--- /dev/null
+++ b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go
@@ -0,0 +1,157752 @@
+// Code generated by 'ccgo -DSQLITE_PRIVATE= -export-defines "" -export-enums "" -export-externs X -export-fields F -export-typedefs "" -ignore-unsupported-alignment -pkgname sqlite3 -volatile=sqlite3_io_error_pending,sqlite3_open_file_count,sqlite3_pager_readdb_count,sqlite3_pager_writedb_count,sqlite3_pager_writej_count,sqlite3_search_count,sqlite3_sort_count,saved_cnt,randomnessPid -o lib/sqlite_darwin_arm64.go -trace-translation-units testdata/sqlite-amalgamation-3410000/sqlite3.c -full-path-comments -DNDEBUG -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DSQLITE_CORE -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MUTEX_APPDEF=1 -DSQLITE_MUTEX_NOOP -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_OS_UNIX=1 -DSQLITE_WITHOUT_ZONEMALLOC', DO NOT EDIT.
+
+package sqlite3
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+
+ "modernc.org/libc"
+ "modernc.org/libc/sys/types"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+var _ *libc.TLS
+var _ types.Size_t
+
+const (
+ ACCESSPERMS = 511
+ ACCESSX_MAX_DESCRIPTORS = 100
+ ACCESSX_MAX_TABLESIZE = 16384
+ ALLPERMS = 4095
+ AQ_BUFSZ = 32767
+ AQ_HIWATER = 100
+ AQ_LOWATER = 10
+ AQ_MAXBUFSZ = 1048576
+ AQ_MAXHIGH = 10000
+ ARG_MAX = 1048576
+ ATTR_BIT_MAP_COUNT = 5
+ ATTR_BULK_REQUIRED = 2147483649
+ ATTR_CMNEXT_CLONEID = 0x00000100
+ ATTR_CMNEXT_EXT_FLAGS = 0x00000200
+ ATTR_CMNEXT_LINKID = 0x00000010
+ ATTR_CMNEXT_NOFIRMLINKPATH = 0x00000020
+ ATTR_CMNEXT_PRIVATESIZE = 0x00000008
+ ATTR_CMNEXT_REALDEVID = 0x00000040
+ ATTR_CMNEXT_REALFSID = 0x00000080
+ ATTR_CMNEXT_RECURSIVE_GENCOUNT = 0x00000400
+ ATTR_CMNEXT_RELPATH = 0x00000004
+ ATTR_CMNEXT_SETMASK = 0x00000000
+ ATTR_CMNEXT_VALIDMASK = 0x000007fc
+ ATTR_CMN_ACCESSMASK = 0x00020000
+ ATTR_CMN_ACCTIME = 0x00001000
+ ATTR_CMN_ADDEDTIME = 0x10000000
+ ATTR_CMN_BKUPTIME = 0x00002000
+ ATTR_CMN_CHGTIME = 0x00000800
+ ATTR_CMN_CRTIME = 0x00000200
+ ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
+ ATTR_CMN_DEVID = 0x00000002
+ ATTR_CMN_DOCUMENT_ID = 0x00100000
+ ATTR_CMN_ERROR = 0x20000000
+ ATTR_CMN_EXTENDED_SECURITY = 0x00400000
+ ATTR_CMN_FILEID = 0x02000000
+ ATTR_CMN_FLAGS = 0x00040000
+ ATTR_CMN_FNDRINFO = 0x00004000
+ ATTR_CMN_FSID = 0x00000004
+ ATTR_CMN_FULLPATH = 0x08000000
+ ATTR_CMN_GEN_COUNT = 0x00080000
+ ATTR_CMN_GRPID = 0x00010000
+ ATTR_CMN_GRPUUID = 0x01000000
+ ATTR_CMN_MODTIME = 0x00000400
+ ATTR_CMN_NAME = 0x00000001
+ ATTR_CMN_NAMEDATTRCOUNT = 0x00080000
+ ATTR_CMN_NAMEDATTRLIST = 0x00100000
+ ATTR_CMN_OBJID = 0x00000020
+ ATTR_CMN_OBJPERMANENTID = 0x00000040
+ ATTR_CMN_OBJTAG = 0x00000010
+ ATTR_CMN_OBJTYPE = 0x00000008
+ ATTR_CMN_OWNERID = 0x00008000
+ ATTR_CMN_PARENTID = 0x04000000
+ ATTR_CMN_PAROBJID = 0x00000080
+ ATTR_CMN_RETURNED_ATTRS = 0x80000000
+ ATTR_CMN_SCRIPT = 0x00000100
+ ATTR_CMN_SETMASK = 0x51C7FF00
+ ATTR_CMN_USERACCESS = 0x00200000
+ ATTR_CMN_UUID = 0x00800000
+ ATTR_CMN_VALIDMASK = 0xFFFFFFFF
+ ATTR_CMN_VOLSETMASK = 0x00006700
+ ATTR_DIR_ALLOCSIZE = 0x00000008
+ ATTR_DIR_DATALENGTH = 0x00000020
+ ATTR_DIR_ENTRYCOUNT = 0x00000002
+ ATTR_DIR_IOBLOCKSIZE = 0x00000010
+ ATTR_DIR_LINKCOUNT = 0x00000001
+ ATTR_DIR_MOUNTSTATUS = 0x00000004
+ ATTR_DIR_SETMASK = 0x00000000
+ ATTR_DIR_VALIDMASK = 0x0000003f
+ ATTR_FILE_ALLOCSIZE = 0x00000004
+ ATTR_FILE_CLUMPSIZE = 0x00000010
+ ATTR_FILE_DATAALLOCSIZE = 0x00000400
+ ATTR_FILE_DATAEXTENTS = 0x00000800
+ ATTR_FILE_DATALENGTH = 0x00000200
+ ATTR_FILE_DEVTYPE = 0x00000020
+ ATTR_FILE_FILETYPE = 0x00000040
+ ATTR_FILE_FORKCOUNT = 0x00000080
+ ATTR_FILE_FORKLIST = 0x00000100
+ ATTR_FILE_IOBLOCKSIZE = 0x00000008
+ ATTR_FILE_LINKCOUNT = 0x00000001
+ ATTR_FILE_RSRCALLOCSIZE = 0x00002000
+ ATTR_FILE_RSRCEXTENTS = 0x00004000
+ ATTR_FILE_RSRCLENGTH = 0x00001000
+ ATTR_FILE_SETMASK = 0x00000020
+ ATTR_FILE_TOTALSIZE = 0x00000002
+ ATTR_FILE_VALIDMASK = 0x000037FF
+ ATTR_FORK_ALLOCSIZE = 0x00000002
+ ATTR_FORK_RESERVED = 0xffffffff
+ ATTR_FORK_SETMASK = 0x00000000
+ ATTR_FORK_TOTALSIZE = 0x00000001
+ ATTR_FORK_VALIDMASK = 0x00000003
+ ATTR_MAX_BUFFER = 8192
+ ATTR_VOL_ALLOCATIONCLUMP = 0x00000040
+ ATTR_VOL_ATTRIBUTES = 0x40000000
+ ATTR_VOL_CAPABILITIES = 0x00020000
+ ATTR_VOL_DIRCOUNT = 0x00000400
+ ATTR_VOL_ENCODINGSUSED = 0x00010000
+ ATTR_VOL_FILECOUNT = 0x00000200
+ ATTR_VOL_FSTYPE = 0x00000001
+ ATTR_VOL_INFO = 0x80000000
+ ATTR_VOL_IOBLOCKSIZE = 0x00000080
+ ATTR_VOL_MAXOBJCOUNT = 0x00000800
+ ATTR_VOL_MINALLOCATION = 0x00000020
+ ATTR_VOL_MOUNTEDDEVICE = 0x00008000
+ ATTR_VOL_MOUNTFLAGS = 0x00004000
+ ATTR_VOL_MOUNTPOINT = 0x00001000
+ ATTR_VOL_NAME = 0x00002000
+ ATTR_VOL_OBJCOUNT = 0x00000100
+ ATTR_VOL_QUOTA_SIZE = 0x10000000
+ ATTR_VOL_RESERVED_SIZE = 0x20000000
+ ATTR_VOL_SETMASK = 0x80002000
+ ATTR_VOL_SIGNATURE = 0x00000002
+ ATTR_VOL_SIZE = 0x00000004
+ ATTR_VOL_SPACEAVAIL = 0x00000010
+ ATTR_VOL_SPACEFREE = 0x00000008
+ ATTR_VOL_SPACEUSED = 0x00800000
+ ATTR_VOL_UUID = 0x00040000
+ ATTR_VOL_VALIDMASK = 0xF087FFFF
+ AT_EACCESS = 0x0010
+ AT_FDCWD = -2
+ AT_FDONLY = 0x0400
+ AT_REALDEV = 0x0200
+ AT_REMOVEDIR = 0x0080
+ AT_SYMLINK_FOLLOW = 0x0040
+ AT_SYMLINK_NOFOLLOW = 0x0020
+ AT_SYMLINK_NOFOLLOW_ANY = 0x0800
+ AUC_AUDITING = 1
+ AUC_DISABLED = -1
+ AUC_NOAUDIT = 2
+ AUC_UNSET = 0
+ AUDITDEV_FILENAME = "audit"
+ AUDIT_AHLT = 0x0002
+ AUDIT_ARGE = 0x0008
+ AUDIT_ARGV = 0x0004
+ AUDIT_CNT = 0x0001
+ AUDIT_GROUP = 0x0080
+ AUDIT_HARD_LIMIT_FREE_BLOCKS = 4
+ AUDIT_PATH = 0x0200
+ AUDIT_PERZONE = 0x2000
+ AUDIT_PUBLIC = 0x0800
+ AUDIT_RECORD_MAGIC = 0x828a0f1b
+ AUDIT_SCNT = 0x0400
+ AUDIT_SEQ = 0x0010
+ AUDIT_TRAIL = 0x0100
+ AUDIT_TRIGGER_CLOSE_AND_DIE = 4
+ AUDIT_TRIGGER_EXPIRE_TRAILS = 8
+ AUDIT_TRIGGER_INITIALIZE = 7
+ AUDIT_TRIGGER_LOW_SPACE = 1
+ AUDIT_TRIGGER_MAX = 8
+ AUDIT_TRIGGER_MIN = 1
+ AUDIT_TRIGGER_NO_SPACE = 5
+ AUDIT_TRIGGER_READ_FILE = 3
+ AUDIT_TRIGGER_ROTATE_KERNEL = 2
+ AUDIT_TRIGGER_ROTATE_USER = 6
+ AUDIT_USER = 0x0040
+ AUDIT_WINDATA = 0x0020
+ AUDIT_ZONENAME = 0x1000
+ AUTH_OPEN_NOAUTHFD = -1
+ AU_ASSIGN_ASID = -1
+ AU_CLASS_MASK_RESERVED = 0x10000000
+ AU_DEFAUDITSID = 0
+ AU_FS_MINFREE = 20
+ AU_IPv4 = 4
+ AU_IPv6 = 16
+ A_GETCAR = 9
+ A_GETCLASS = 22
+ A_GETCOND = 37
+ A_GETCTLMODE = 41
+ A_GETCWD = 8
+ A_GETEXPAFTER = 43
+ A_GETFSIZE = 27
+ A_GETKAUDIT = 29
+ A_GETKMASK = 4
+ A_GETPINFO = 24
+ A_GETPINFO_ADDR = 28
+ A_GETPOLICY = 33
+ A_GETQCTRL = 35
+ A_GETSFLAGS = 39
+ A_GETSINFO_ADDR = 32
+ A_GETSTAT = 12
+ A_OLDGETCOND = 20
+ A_OLDGETPOLICY = 2
+ A_OLDGETQCTRL = 6
+ A_OLDSETCOND = 21
+ A_OLDSETPOLICY = 3
+ A_OLDSETQCTRL = 7
+ A_SENDTRIGGER = 31
+ A_SETCLASS = 23
+ A_SETCOND = 38
+ A_SETCTLMODE = 42
+ A_SETEXPAFTER = 44
+ A_SETFSIZE = 26
+ A_SETKAUDIT = 30
+ A_SETKMASK = 5
+ A_SETPMASK = 25
+ A_SETPOLICY = 34
+ A_SETQCTRL = 36
+ A_SETSFLAGS = 40
+ A_SETSMASK = 15
+ A_SETSTAT = 13
+ A_SETUMASK = 14
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ BIG_ENDIAN = 4321
+ BITVEC_SZ = 512
+ BITVEC_SZELEM = 8
+ BLKDEV_IOSIZE = 2048
+ BSD = 199506
+ BSD4_3 = 1
+ BSD4_4 = 1
+ BTALLOC_ANY = 0
+ BTALLOC_EXACT = 1
+ BTALLOC_LE = 2
+ BTCF_AtLast = 0x08
+ BTCF_Incrblob = 0x10
+ BTCF_Multiple = 0x20
+ BTCF_Pinned = 0x40
+ BTCF_ValidNKey = 0x02
+ BTCF_ValidOvfl = 0x04
+ BTCF_WriteFlag = 0x01
+ BTCURSOR_MAX_DEPTH = 20
+ BTREE_APPEND = 0x08
+ BTREE_APPLICATION_ID = 8
+ BTREE_AUTOVACUUM_FULL = 1
+ BTREE_AUTOVACUUM_INCR = 2
+ BTREE_AUTOVACUUM_NONE = 0
+ BTREE_AUXDELETE = 0x04
+ BTREE_BLOBKEY = 2
+ BTREE_BULKLOAD = 0x00000001
+ BTREE_DATA_VERSION = 15
+ BTREE_DEFAULT_CACHE_SIZE = 3
+ BTREE_FILE_FORMAT = 2
+ BTREE_FORDELETE = 0x00000008
+ BTREE_FREE_PAGE_COUNT = 0
+ BTREE_HINT_RANGE = 0
+ BTREE_INCR_VACUUM = 7
+ BTREE_INTKEY = 1
+ BTREE_LARGEST_ROOT_PAGE = 4
+ BTREE_MEMORY = 2
+ BTREE_OMIT_JOURNAL = 1
+ BTREE_PREFORMAT = 0x80
+ BTREE_SAVEPOSITION = 0x02
+ BTREE_SCHEMA_VERSION = 1
+ BTREE_SEEK_EQ = 0x00000002
+ BTREE_SINGLE = 4
+ BTREE_TEXT_ENCODING = 5
+ BTREE_UNORDERED = 8
+ BTREE_USER_VERSION = 6
+ BTREE_WRCSR = 0x00000004
+ BTS_EXCLUSIVE = 0x0040
+ BTS_FAST_SECURE = 0x000c
+ BTS_INITIALLY_EMPTY = 0x0010
+ BTS_NO_WAL = 0x0020
+ BTS_OVERWRITE = 0x0008
+ BTS_PAGESIZE_FIXED = 0x0002
+ BTS_PENDING = 0x0080
+ BTS_READ_ONLY = 0x0001
+ BTS_SECURE_DELETE = 0x0004
+ BUFSIZ = 1024
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_NOOP = 0
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CACHE_STALE = 0
+ CBLOCK = 64
+ CBQSIZE = 8
+ CC_AND = 24
+ CC_BANG = 15
+ CC_BOM = 30
+ CC_COMMA = 23
+ CC_DIGIT = 3
+ CC_DOLLAR = 4
+ CC_DOT = 26
+ CC_EQ = 14
+ CC_GT = 13
+ CC_ID = 27
+ CC_ILLEGAL = 28
+ CC_KYWD = 2
+ CC_KYWD0 = 1
+ CC_LP = 17
+ CC_LT = 12
+ CC_MINUS = 11
+ CC_NUL = 29
+ CC_PERCENT = 22
+ CC_PIPE = 10
+ CC_PLUS = 20
+ CC_QUOTE = 8
+ CC_QUOTE2 = 9
+ CC_RP = 18
+ CC_SEMI = 19
+ CC_SLASH = 16
+ CC_SPACE = 7
+ CC_STAR = 21
+ CC_TILDA = 25
+ CC_VARALPHA = 5
+ CC_VARNUM = 6
+ CC_X = 0
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 266
+ CKCNSTRNT_COLUMN = 0x01
+ CKCNSTRNT_ROWID = 0x02
+ CLBYTES = 4096
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_NOOP = 0
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ CLOFF = 4095
+ CLOFSET = 4095
+ CLSHIFT = 12
+ CLSIZE = 1
+ CLSIZELOG2 = 0
+ CMASK = 022
+ COLFLAG_BUSY = 0x0100
+ COLFLAG_GENERATED = 0x0060
+ COLFLAG_HASCOLL = 0x0200
+ COLFLAG_HASTYPE = 0x0004
+ COLFLAG_HIDDEN = 0x0002
+ COLFLAG_NOEXPAND = 0x0400
+ COLFLAG_NOINSERT = 0x0062
+ COLFLAG_NOTAVAIL = 0x0080
+ COLFLAG_PRIMKEY = 0x0001
+ COLFLAG_SORTERREF = 0x0010
+ COLFLAG_STORED = 0x0040
+ COLFLAG_UNIQUE = 0x0008
+ COLFLAG_VIRTUAL = 0x0020
+ COLL_WEIGHTS_MAX = 2
+ COLNAME_COLUMN = 4
+ COLNAME_DATABASE = 2
+ COLNAME_DECLTYPE = 1
+ COLNAME_N = 5
+ COLNAME_NAME = 0
+ COLNAME_TABLE = 3
+ COLTYPE_ANY = 1
+ COLTYPE_BLOB = 2
+ COLTYPE_CUSTOM = 0
+ COLTYPE_INT = 3
+ COLTYPE_INTEGER = 4
+ COLTYPE_REAL = 5
+ COLTYPE_TEXT = 6
+ CPF_IGNORE_MODE = 0x0002
+ CPF_MASK = 3
+ CPF_OVERWRITE = 0x0001
+ CPUMON_MAKE_FATAL = 0x1000
+ CRF_MAC_ENFORCE = 0x00000002
+ CRF_NOMEMBERD = 0x00000001
+ CROUND = 63
+ CURSOR_FAULT = 4
+ CURSOR_INVALID = 1
+ CURSOR_REQUIRESEEK = 3
+ CURSOR_SKIPNEXT = 2
+ CURSOR_VALID = 0
+ CURTYPE_BTREE = 0
+ CURTYPE_PSEUDO = 3
+ CURTYPE_SORTER = 1
+ CURTYPE_VTAB = 2
+ DBFLAG_EncodingFixed = 0x0040
+ DBFLAG_InternalFunc = 0x0020
+ DBFLAG_PreferBuiltin = 0x0002
+ DBFLAG_SchemaChange = 0x0001
+ DBFLAG_SchemaKnownOk = 0x0010
+ DBFLAG_Vacuum = 0x0004
+ DBFLAG_VacuumInto = 0x0008
+ DB_ResetWanted = 0x0008
+ DB_SchemaLoaded = 0x0001
+ DB_UnresetViews = 0x0002
+ DEFFILEMODE = 438
+ DEV_BSHIFT = 9
+ DEV_BSIZE = 512
+ DIRECT_MODE = 0
+ DIR_MNTSTATUS_MNTPOINT = 0x00000001
+ DIR_MNTSTATUS_TRIGGER = 0x00000002
+ DOMAIN = 1
+ DOTLOCK_SUFFIX = ".lock"
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ DYNAMIC_TARGETS_ENABLED = 0
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADARCH = 86
+ EBADEXEC = 85
+ EBADF = 9
+ EBADMACHO = 88
+ EBADMSG = 94
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 89
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDEVERR = 83
+ EDOM = 33
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EF_IS_PURGEABLE = 0x00000008
+ EF_IS_SPARSE = 0x00000010
+ EF_IS_SYNC_ROOT = 0x00000004
+ EF_IS_SYNTHETIC = 0x00000020
+ EF_MAY_SHARE_BLOCKS = 0x00000001
+ EF_NO_XATTRS = 0x00000002
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 90
+ EILSEQ = 92
+ EINPROGRESS = 36
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 106
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 95
+ ENAMETOOLONG = 63
+ ENAME_NAME = 0
+ ENAME_SPAN = 1
+ ENAME_TAB = 2
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 93
+ ENOBUFS = 55
+ ENODATA = 96
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 97
+ ENOMEM = 12
+ ENOMSG = 91
+ ENOPOLICY = 103
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSR = 98
+ ENOSTR = 99
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 104
+ ENOTSOCK = 38
+ ENOTSUP = 45
+ ENOTTY = 25
+ ENXIO = 6
+ EOF = -1
+ EOPNOTSUPP = 102
+ EOVERFLOW = 84
+ EOWNERDEAD = 105
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 100
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ EPWROFF = 82
+ EP_Agg = 0x000010
+ EP_CanBeNull = 0x200000
+ EP_Collate = 0x000200
+ EP_Commuted = 0x000400
+ EP_ConstFunc = 0x100000
+ EP_DblQuoted = 0x000080
+ EP_Distinct = 0x000004
+ EP_FixedCol = 0x000020
+ EP_FromDDL = 0x40000000
+ EP_HasFunc = 0x000008
+ EP_IfNullRow = 0x040000
+ EP_Immutable = 0x02
+ EP_InfixFunc = 0x000100
+ EP_InnerON = 0x000002
+ EP_IntValue = 0x000800
+ EP_IsFalse = 0x20000000
+ EP_IsTrue = 0x10000000
+ EP_Leaf = 0x800000
+ EP_NoReduce = 0x01
+ EP_OuterON = 0x000001
+ EP_Propagate = 4194824
+ EP_Quoted = 0x4000000
+ EP_Reduced = 0x004000
+ EP_Skip = 0x002000
+ EP_Static = 0x8000000
+ EP_Subquery = 0x400000
+ EP_Subrtn = 0x2000000
+ EP_TokenOnly = 0x010000
+ EP_Unlikely = 0x080000
+ EP_VarSelect = 0x000040
+ EP_Win = 0x008000
+ EP_WinFunc = 0x1000000
+ EP_xIsSelect = 0x001000
+ EQFULL = 106
+ EQUIV_CLASS_MAX = 2
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHLIBVERS = 87
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIME = 101
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EU4_EXPR = 2
+ EU4_IDX = 1
+ EU4_NONE = 0
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXCLUDED_TABLE_NUMBER = 2
+ EXCLUSIVE_LOCK = 4
+ EXDEV = 18
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ EXPRDUP_REDUCE = 0x0001
+ EXPR_NEST_MAX = 32
+ FALSE = 0
+ FAPPEND = 8
+ FASYNC = 64
+ FCNTL_FS_SPECIFIC_BASE = 0x00010000
+ FD_CLOEXEC = 1
+ FD_SETSIZE = 1024
+ FFDSYNC = 4194304
+ FFSYNC = 128
+ FILENAME_MAX = 1024
+ FLAG_SIGNED = 1
+ FLAG_STRING = 4
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FOOTPRINT_INTERVAL_RESET = 0x1
+ FOPEN_MAX = 20
+ FPE_FLTDIV = 1
+ FPE_FLTINV = 5
+ FPE_FLTOVF = 2
+ FPE_FLTRES = 4
+ FPE_FLTSUB = 6
+ FPE_FLTUND = 3
+ FPE_INTDIV = 7
+ FPE_INTOVF = 8
+ FPE_NOOP = 0
+ FP_FAST_FMA = 1
+ FP_FAST_FMAF = 1
+ FP_FAST_FMAL = 1
+ FP_ILOGB0 = -2147483648
+ FP_ILOGBNAN = -2147483648
+ FP_INFINITE = 2
+ FP_NAN = 1
+ FP_NORMAL = 4
+ FP_QNAN = 1
+ FP_SNAN = 1
+ FP_SUBNORMAL = 5
+ FP_SUPERNORMAL = 6
+ FP_ZERO = 3
+ FREAD = 0x00000001
+ FSCALE = 2048
+ FSHIFT = 11
+ FSOPT_ATTR_CMN_EXTENDED = 0x00000020
+ FSOPT_NOFOLLOW = 0x00000001
+ FSOPT_NOFOLLOW_ANY = 0x00000800
+ FSOPT_NOINMEMUPDATE = 0x00000002
+ FSOPT_PACK_INVAL_ATTRS = 0x00000008
+ FSOPT_REPORT_FULLSIZE = 0x00000004
+ FSOPT_RETURN_REALDEV = 0x00000200
+ FST_EOF = -1
+ FTS5CSR_EOF = 0x01
+ FTS5CSR_FREE_ZRANK = 0x10
+ FTS5CSR_REQUIRE_CONTENT = 0x02
+ FTS5CSR_REQUIRE_DOCSIZE = 0x04
+ FTS5CSR_REQUIRE_INST = 0x08
+ FTS5CSR_REQUIRE_POSLIST = 0x40
+ FTS5CSR_REQUIRE_RESEEK = 0x20
+ FTS5INDEX_QUERY_DESC = 0x0002
+ FTS5INDEX_QUERY_NOOUTPUT = 0x0020
+ FTS5INDEX_QUERY_PREFIX = 0x0001
+ FTS5INDEX_QUERY_SCAN = 0x0008
+ FTS5INDEX_QUERY_SKIPEMPTY = 0x0010
+ FTS5INDEX_QUERY_TEST_NOIDX = 0x0004
+ FTS5_AND = 2
+ FTS5_AVERAGES_ROWID = 1
+ FTS5_BI_MATCH = 0x0001
+ FTS5_BI_ORDER_DESC = 0x0080
+ FTS5_BI_ORDER_RANK = 0x0020
+ FTS5_BI_ORDER_ROWID = 0x0040
+ FTS5_BI_RANK = 0x0002
+ FTS5_BI_ROWID_EQ = 0x0004
+ FTS5_BI_ROWID_GE = 0x0010
+ FTS5_BI_ROWID_LE = 0x0008
+ FTS5_CARET = 12
+ FTS5_COLON = 5
+ FTS5_COMMA = 13
+ FTS5_CONTENT_EXTERNAL = 2
+ FTS5_CONTENT_NONE = 1
+ FTS5_CONTENT_NORMAL = 0
+ FTS5_CORRUPT = 267
+ FTS5_CURRENT_VERSION = 4
+ FTS5_DATA_DLI_B = 1
+ FTS5_DATA_HEIGHT_B = 5
+ FTS5_DATA_ID_B = 16
+ FTS5_DATA_PADDING = 20
+ FTS5_DATA_PAGE_B = 31
+ FTS5_DATA_ZERO_PADDING = 8
+ FTS5_DEFAULT_AUTOMERGE = 4
+ FTS5_DEFAULT_CRISISMERGE = 16
+ FTS5_DEFAULT_HASHSIZE = 1048576
+ FTS5_DEFAULT_NEARDIST = 10
+ FTS5_DEFAULT_PAGE_SIZE = 4050
+ FTS5_DEFAULT_RANK = "bm25"
+ FTS5_DEFAULT_USERMERGE = 4
+ FTS5_DETAIL_COLUMNS = 2
+ FTS5_DETAIL_FULL = 0
+ FTS5_DETAIL_NONE = 1
+ FTS5_EOF = 0
+ FTS5_LCP = 7
+ FTS5_LP = 10
+ FTS5_MAIN_PREFIX = 48
+ FTS5_MAX_LEVEL = 64
+ FTS5_MAX_PAGE_SIZE = 65536
+ FTS5_MAX_PREFIX_INDEXES = 31
+ FTS5_MAX_SEGMENT = 2000
+ FTS5_MAX_TOKEN_SIZE = 32768
+ FTS5_MERGE_NLIST = 16
+ FTS5_MINUS = 6
+ FTS5_MIN_DLIDX_SIZE = 4
+ FTS5_NOT = 3
+ FTS5_OPT_WORK_UNIT = 1000
+ FTS5_OR = 1
+ FTS5_PATTERN_GLOB = 66
+ FTS5_PATTERN_LIKE = 65
+ FTS5_PATTERN_NONE = 0
+ FTS5_PLAN_MATCH = 1
+ FTS5_PLAN_ROWID = 6
+ FTS5_PLAN_SCAN = 5
+ FTS5_PLAN_SORTED_MATCH = 4
+ FTS5_PLAN_SOURCE = 2
+ FTS5_PLAN_SPECIAL = 3
+ FTS5_PLUS = 14
+ FTS5_PORTER_MAX_TOKEN = 64
+ FTS5_RANK_NAME = "rank"
+ FTS5_RCP = 8
+ FTS5_REMOVE_DIACRITICS_COMPLEX = 2
+ FTS5_REMOVE_DIACRITICS_NONE = 0
+ FTS5_REMOVE_DIACRITICS_SIMPLE = 1
+ FTS5_ROWID_NAME = "rowid"
+ FTS5_RP = 11
+ FTS5_SEGITER_ONETERM = 0x01
+ FTS5_SEGITER_REVERSE = 0x02
+ FTS5_STAR = 15
+ FTS5_STMT_DELETE_CONTENT = 5
+ FTS5_STMT_DELETE_DOCSIZE = 7
+ FTS5_STMT_INSERT_CONTENT = 3
+ FTS5_STMT_LOOKUP = 2
+ FTS5_STMT_LOOKUP_DOCSIZE = 8
+ FTS5_STMT_REPLACE_CONFIG = 9
+ FTS5_STMT_REPLACE_CONTENT = 4
+ FTS5_STMT_REPLACE_DOCSIZE = 6
+ FTS5_STMT_SCAN = 10
+ FTS5_STMT_SCAN_ASC = 0
+ FTS5_STMT_SCAN_DESC = 1
+ FTS5_STRING = 9
+ FTS5_STRUCTURE_ROWID = 10
+ FTS5_TERM = 4
+ FTS5_TOKENIZE_AUX = 0x0008
+ FTS5_TOKENIZE_DOCUMENT = 0x0004
+ FTS5_TOKENIZE_PREFIX = 0x0002
+ FTS5_TOKENIZE_QUERY = 0x0001
+ FTS5_TOKEN_COLOCATED = 0x0001
+ FTS5_VOCAB_COL = 0
+ FTS5_VOCAB_COL_SCHEMA = "term, col, doc, cnt"
+ FTS5_VOCAB_INSTANCE = 2
+ FTS5_VOCAB_INST_SCHEMA = "term, doc, col, offset"
+ FTS5_VOCAB_ROW = 1
+ FTS5_VOCAB_ROW_SCHEMA = "term, doc, cnt"
+ FTS5_VOCAB_TERM_EQ = 0x01
+ FTS5_VOCAB_TERM_GE = 0x02
+ FTS5_VOCAB_TERM_LE = 0x04
+ FTS5_WORK_UNIT = 64
+ FULLY_WITHIN = 2
+ FUNC_PERFECT_MATCH = 6
+ FWRITE = 0x00000002
+ F_ADDFILESIGS = 61
+ F_ADDFILESIGS_FOR_DYLD_SIM = 83
+ F_ADDFILESIGS_INFO = 103
+ F_ADDFILESIGS_RETURN = 97
+ F_ADDFILESUPPL = 104
+ F_ADDSIGS = 59
+ F_ALLOCATEALL = 0x00000004
+ F_ALLOCATECONTIG = 0x00000002
+ F_ALLOCATEPERSIST = 0x00000008
+ F_BARRIERFSYNC = 85
+ F_CHECK_LV = 98
+ F_CHKCLEAN = 41
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 67
+ F_FINDSIGS = 78
+ F_FLUSH_DATA = 40
+ F_FREEZE_FS = 53
+ F_FULLFSYNC = 51
+ F_GETCODEDIR = 72
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLEASE = 107
+ F_GETLK = 7
+ F_GETLKPID = 66
+ F_GETNOSIGPIPE = 74
+ F_GETOWN = 5
+ F_GETPATH = 50
+ F_GETPATH_MTMINFO = 71
+ F_GETPATH_NOFIRMLINK = 102
+ F_GETPROTECTIONCLASS = 63
+ F_GETPROTECTIONLEVEL = 77
+ F_GETSIGSINFO = 105
+ F_GLOBAL_NOCACHE = 55
+ F_LOCK = 1
+ F_LOG2PHYS = 49
+ F_LOG2PHYS_EXT = 65
+ F_NOCACHE = 48
+ F_NODIRECT = 62
+ F_OK = 0
+ F_PATHPKG_CHECK = 52
+ F_PEOFPOSMODE = 3
+ F_PREALLOCATE = 42
+ F_PUNCHHOLE = 99
+ F_RDADVISE = 44
+ F_RDAHEAD = 45
+ F_RDLCK = 1
+ F_SETBACKINGSTORE = 70
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLEASE = 106
+ F_SETLK = 8
+ F_SETLKW = 9
+ F_SETLKWTIMEOUT = 10
+ F_SETNOSIGPIPE = 73
+ F_SETOWN = 6
+ F_SETPROTECTIONCLASS = 64
+ F_SETSIZE = 43
+ F_SINGLE_WRITER = 76
+ F_SPECULATIVE_READ = 101
+ F_TEST = 3
+ F_THAW_FS = 54
+ F_TLOCK = 2
+ F_TRANSCODEKEY = 75
+ F_TRANSFEREXTENTS = 110
+ F_TRIM_ACTIVE_FILE = 100
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_VOLPOSMODE = 4
+ F_WRLCK = 3
+ GCC_VERSION = 4002001
+ GEOPOLY_PI = 3.1415926535897932385
+ GETSIGSINFO_PLATFORM_BINARY = 1
+ GID_MAX = 2147483647
+ GRAFTDMG_SECURE_BOOT_CRYPTEX_ARGS_VERSION = 1
+ GUARD_TYPE_MACH_PORT = 0x1
+ HASHSIZE = 97
+ HASHTABLE_HASH_1 = 383
+ HASHTABLE_NPAGE = 4096
+ HASHTABLE_NSLOT = 8192
+ HAVE_FCHMOD = 0
+ HAVE_FCHOWN = 1
+ HAVE_FULLFSYNC = 1
+ HAVE_GETHOSTUUID = 1
+ HAVE_LSTAT = 1
+ HAVE_MREMAP = 0
+ HAVE_PREAD = 1
+ HAVE_PWRITE = 1
+ HAVE_READLINK = 1
+ HAVE_USLEEP = 1
+ HUGE = 0
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 5
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 4
+ ILL_ILLTRP = 2
+ ILL_NOOP = 0
+ ILL_PRVOPC = 3
+ ILL_PRVREG = 6
+ INCRINIT_NORMAL = 0
+ INCRINIT_ROOT = 2
+ INCRINIT_TASK = 1
+ INITFLAG_AlterAdd = 0x0003
+ INITFLAG_AlterDrop = 0x0002
+ INITFLAG_AlterMask = 0x0003
+ INITFLAG_AlterRename = 0x0001
+ INLINEFUNC_affinity = 4
+ INLINEFUNC_coalesce = 0
+ INLINEFUNC_expr_compare = 3
+ INLINEFUNC_expr_implies_expr = 2
+ INLINEFUNC_iif = 5
+ INLINEFUNC_implies_nonnull_row = 1
+ INLINEFUNC_sqlite_offset = 6
+ INLINEFUNC_unlikely = 99
+ INT16_MAX = 32767
+ INT16_MIN = -32768
+ INT32_MAX = 2147483647
+ INT32_MIN = -2147483648
+ INT64_MAX = 9223372036854775807
+ INT64_MIN = -9223372036854775808
+ INT8_MAX = 127
+ INT8_MIN = -128
+ INTERFACE = 1
+ INTMAX_MAX = 9223372036854775807
+ INTMAX_MIN = -9223372036854775808
+ INTPTR_MAX = 9223372036854775807
+ INTPTR_MIN = -9223372036854775808
+ INT_FAST16_MAX = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ INT_LEAST16_MAX = 32767
+ INT_LEAST16_MIN = -32768
+ INT_LEAST32_MAX = 2147483647
+ INT_LEAST32_MIN = -2147483648
+ INT_LEAST64_MAX = 9223372036854775807
+ INT_LEAST64_MIN = -9223372036854775808
+ INT_LEAST8_MAX = 127
+ INT_LEAST8_MIN = -128
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IN_INDEX_EPH = 2
+ IN_INDEX_INDEX_ASC = 3
+ IN_INDEX_INDEX_DESC = 4
+ IN_INDEX_LOOP = 0x0004
+ IN_INDEX_MEMBERSHIP = 0x0002
+ IN_INDEX_NOOP = 5
+ IN_INDEX_NOOP_OK = 0x0001
+ IN_INDEX_ROWID = 1
+ IOCPARM_MASK = 0x1fff
+ IOCPARM_MAX = 8192
+ IOPOL_APPLICATION = 5
+ IOPOL_ATIME_UPDATES_DEFAULT = 0
+ IOPOL_ATIME_UPDATES_OFF = 1
+ IOPOL_DEFAULT = 0
+ IOPOL_IMPORTANT = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT = 0
+ IOPOL_MATERIALIZE_DATALESS_FILES_OFF = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_ON = 2
+ IOPOL_NORMAL = 1
+ IOPOL_PASSIVE = 2
+ IOPOL_SCOPE_DARWIN_BG = 2
+ IOPOL_SCOPE_PROCESS = 0
+ IOPOL_SCOPE_THREAD = 1
+ IOPOL_STANDARD = 5
+ IOPOL_THROTTLE = 3
+ IOPOL_TYPE_DISK = 0
+ IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES = 9
+ IOPOL_TYPE_VFS_ATIME_UPDATES = 2
+ IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY = 10
+ IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION = 6
+ IOPOL_TYPE_VFS_IGNORE_PERMISSIONS = 7
+ IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES = 3
+ IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE = 8
+ IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME = 4
+ IOPOL_TYPE_VFS_TRIGGER_RESOLVE = 5
+ IOPOL_UTILITY = 4
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF = 0
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON = 1
+ IOPOL_VFS_CONTENT_PROTECTION_DEFAULT = 0
+ IOPOL_VFS_CONTENT_PROTECTION_IGNORE = 1
+ IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT = 0
+ IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON = 1
+ IOPOL_VFS_IGNORE_PERMISSIONS_OFF = 0
+ IOPOL_VFS_IGNORE_PERMISSIONS_ON = 1
+ IOPOL_VFS_SKIP_MTIME_UPDATE_OFF = 0
+ IOPOL_VFS_SKIP_MTIME_UPDATE_ON = 1
+ IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME = 1
+ IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT = 0
+ IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT = 0
+ IOPOL_VFS_TRIGGER_RESOLVE_OFF = 1
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ IsStat4 = 1
+ JEACH_ATOM = 3
+ JEACH_FULLKEY = 6
+ JEACH_ID = 4
+ JEACH_JSON = 8
+ JEACH_KEY = 0
+ JEACH_PARENT = 5
+ JEACH_PATH = 7
+ JEACH_ROOT = 9
+ JEACH_TYPE = 2
+ JEACH_VALUE = 1
+ JNODE_APPEND = 0x20
+ JNODE_ESCAPE = 0x02
+ JNODE_LABEL = 0x40
+ JNODE_PATCH = 0x10
+ JNODE_RAW = 0x01
+ JNODE_REMOVE = 0x04
+ JNODE_REPLACE = 0x08
+ JSON_ABPATH = 0x03
+ JSON_ARRAY = 6
+ JSON_CACHE_ID = -429938
+ JSON_CACHE_SZ = 4
+ JSON_FALSE = 2
+ JSON_INT = 3
+ JSON_ISSET = 0x04
+ JSON_JSON = 0x01
+ JSON_MAX_DEPTH = 2000
+ JSON_NULL = 0
+ JSON_OBJECT = 7
+ JSON_REAL = 4
+ JSON_SQL = 0x02
+ JSON_STRING = 5
+ JSON_SUBTYPE = 74
+ JSON_TRUE = 1
+ JT_CROSS = 0x02
+ JT_ERROR = 0x80
+ JT_INNER = 0x01
+ JT_LEFT = 0x08
+ JT_LTORJ = 0x40
+ JT_NATURAL = 0x04
+ JT_OUTER = 0x20
+ JT_RIGHT = 0x10
+ KEYINFO_ORDER_BIGNULL = 0x02
+ KEYINFO_ORDER_DESC = 0x01
+ LEGACY_SCHEMA_TABLE = "sqlite_master"
+ LEGACY_TEMP_SCHEMA_TABLE = "sqlite_temp_master"
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LITTLE_ENDIAN = 1234
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOCATE_NOERR = 0x02
+ LOCATE_VIEW = 0x01
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ LOOKASIDE_SMALL = 128
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ L_ctermid = 1024
+ L_tmpnam = 1024
+ M10d_Any = 1
+ M10d_No = 2
+ M10d_Yes = 0
+ M16KCLBYTES = 16384
+ M16KCLSHIFT = 14
+ MACH_PORT_DENAP_RECEIVER = 6
+ MACH_PORT_DNREQUESTS_SIZE = 3
+ MACH_PORT_DNREQUESTS_SIZE_COUNT = 1
+ MACH_PORT_GUARD_INFO = 8
+ MACH_PORT_IMPORTANCE_RECEIVER = 5
+ MACH_PORT_INFO_EXT = 7
+ MACH_PORT_LIMITS_INFO = 1
+ MACH_PORT_NULL = 0
+ MACH_PORT_QLIMIT_BASIC = 5
+ MACH_PORT_QLIMIT_DEFAULT = 5
+ MACH_PORT_QLIMIT_KERNEL = 65534
+ MACH_PORT_QLIMIT_LARGE = 1024
+ MACH_PORT_QLIMIT_MAX = 1024
+ MACH_PORT_QLIMIT_MIN = 0
+ MACH_PORT_QLIMIT_SMALL = 16
+ MACH_PORT_QLIMIT_ZERO = 0
+ MACH_PORT_RECEIVE_STATUS = 2
+ MACH_PORT_SRIGHTS_NONE = 0
+ MACH_PORT_SRIGHTS_PRESENT = 1
+ MACH_PORT_STATUS_FLAG_GUARDED = 0x02
+ MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE = 0x40
+ MACH_PORT_STATUS_FLAG_IMP_DONATION = 0x08
+ MACH_PORT_STATUS_FLAG_NO_GRANT = 0x80
+ MACH_PORT_STATUS_FLAG_REVIVE = 0x10
+ MACH_PORT_STATUS_FLAG_STRICT_GUARD = 0x04
+ MACH_PORT_STATUS_FLAG_TASKPTR = 0x20
+ MACH_PORT_STATUS_FLAG_TEMPOWNER = 0x01
+ MACH_PORT_TEMPOWNER = 4
+ MACH_PORT_TYPE_DNREQUEST = 0x80000000
+ MACH_PORT_TYPE_SPREQUEST = 0x40000000
+ MACH_PORT_TYPE_SPREQUEST_DELAYED = 0x20000000
+ MACH_SERVICE_PORT_INFO_STRING_NAME_MAX_BUF_LEN = 255
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_VERSION_13_0 = 130000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MADV_CAN_REUSE = 9
+ MADV_DONTNEED = 4
+ MADV_FREE = 5
+ MADV_FREE_REUSABLE = 7
+ MADV_FREE_REUSE = 8
+ MADV_NORMAL = 0
+ MADV_PAGEOUT = 10
+ MADV_RANDOM = 1
+ MADV_SEQUENTIAL = 2
+ MADV_WILLNEED = 3
+ MADV_ZERO_WIRED_PAGES = 6
+ MAP_32BIT = 0x8000
+ MAP_ANON = 0x1000
+ MAP_ANONYMOUS = 4096
+ MAP_COPY = 2
+ MAP_FILE = 0x0000
+ MAP_FIXED = 0x0010
+ MAP_HASSEMAPHORE = 0x0200
+ MAP_JIT = 0x0800
+ MAP_NOCACHE = 0x0400
+ MAP_NOEXTEND = 0x0100
+ MAP_NORESERVE = 0x0040
+ MAP_PRIVATE = 0x0002
+ MAP_RENAME = 0x0020
+ MAP_RESERVED0080 = 0x0080
+ MAP_RESILIENT_CODESIGN = 0x2000
+ MAP_RESILIENT_MEDIA = 0x4000
+ MAP_SHARED = 0x0001
+ MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000
+ MAP_UNIX03 = 0x40000
+ MATH_ERREXCEPT = 2
+ MATH_ERRNO = 1
+ MAXAUDITDATA = 32767
+ MAXBSIZE = 1048576
+ MAXCOMLEN = 16
+ MAXDOMNAMELEN = 256
+ MAXFLOAT = 0x1.fffffep+127
+ MAXFRAG = 8
+ MAXHOSTNAMELEN = 256
+ MAXINTERP = 64
+ MAXLOGNAME = 255
+ MAXPATHLEN = 1024
+ MAXPHYS = 65536
+ MAXPHYSIO = 65536
+ MAXPHYSIO_WIRED = 16777216
+ MAXPRI = 127
+ MAXSYMLINKS = 32
+ MAXUPRC = 266
+ MAX_AUDIT_RECORDS = 20
+ MAX_AUDIT_RECORD_SIZE = 32767
+ MAX_CANON = 1024
+ MAX_FATAL_kGUARD_EXC_CODE = 128
+ MAX_GRAFT_ARGS_SIZE = 512
+ MAX_INPUT = 1024
+ MAX_OPTIONAL_kGUARD_EXC_CODE = 524288
+ MAX_PATHNAME = 512
+ MAX_SECTOR_SIZE = 0x10000
+ MBIGCLBYTES = 4096
+ MBIGCLSHIFT = 12
+ MB_LEN_MAX = 1
+ MCLBYTES = 2048
+ MCLOFSET = 2047
+ MCLSHIFT = 11
+ MCL_CURRENT = 0x0001
+ MCL_FUTURE = 0x0002
+ MEMJOURNAL_DFLT_FILECHUNKSIZE = 1024
+ MEMTYPE_HEAP = 0x01
+ MEMTYPE_LOOKASIDE = 0x02
+ MEMTYPE_PCACHE = 0x04
+ MEM_AffMask = 0x003f
+ MEM_Agg = 0x8000
+ MEM_Blob = 0x0010
+ MEM_Cleared = 0x0100
+ MEM_Dyn = 0x1000
+ MEM_Ephem = 0x4000
+ MEM_FromBind = 0x0040
+ MEM_Int = 0x0004
+ MEM_IntReal = 0x0020
+ MEM_Null = 0x0001
+ MEM_Real = 0x0008
+ MEM_Static = 0x2000
+ MEM_Str = 0x0002
+ MEM_Subtype = 0x0800
+ MEM_Term = 0x0200
+ MEM_TypeMask = 0x0dbf
+ MEM_Undefined = 0x0000
+ MEM_Zero = 0x0400
+ MFSNAMELEN = 15
+ MFSTYPENAMELEN = 16
+ MINCORE_ANONYMOUS = 0x80
+ MINCORE_COPIED = 0x40
+ MINCORE_INCORE = 0x1
+ MINCORE_MODIFIED = 0x4
+ MINCORE_MODIFIED_OTHER = 0x10
+ MINCORE_PAGED_OUT = 0x20
+ MINCORE_REFERENCED = 0x2
+ MINCORE_REFERENCED_OTHER = 0x8
+ MINSIGSTKSZ = 32768
+ MIN_AUDIT_FILE_SIZE = 524288
+ MNAMELEN = 1024
+ MNT_ASYNC = 0x00000040
+ MNT_AUTOMOUNTED = 0x00400000
+ MNT_CMDFLAGS = 983040
+ MNT_CPROTECT = 0x00000080
+ MNT_DEFWRITE = 0x02000000
+ MNT_DONTBROWSE = 0x00100000
+ MNT_DOVOLFS = 0x00008000
+ MNT_DWAIT = 4
+ MNT_EXPORTED = 0x00000100
+ MNT_EXT_ROOT_DATA_VOL = 0x00000001
+ MNT_FORCE = 0x00080000
+ MNT_IGNORE_OWNERSHIP = 0x00200000
+ MNT_JOURNALED = 0x00800000
+ MNT_LOCAL = 0x00001000
+ MNT_MULTILABEL = 0x04000000
+ MNT_NOATIME = 0x10000000
+ MNT_NOBLOCK = 0x00020000
+ MNT_NODEV = 0x00000010
+ MNT_NOEXEC = 0x00000004
+ MNT_NOFOLLOW = 0x08000000
+ MNT_NOSUID = 0x00000008
+ MNT_NOUSERXATTR = 0x01000000
+ MNT_NOWAIT = 2
+ MNT_QUARANTINE = 0x00000400
+ MNT_QUOTA = 0x00002000
+ MNT_RDONLY = 0x00000001
+ MNT_RELOAD = 0x00040000
+ MNT_REMOVABLE = 0x00000200
+ MNT_ROOTFS = 0x00004000
+ MNT_SNAPSHOT = 0x40000000
+ MNT_STRICTATIME = 0x80000000
+ MNT_SYNCHRONOUS = 0x00000002
+ MNT_UNION = 0x00000020
+ MNT_UNKNOWNPERMISSIONS = 2097152
+ MNT_UPDATE = 0x00010000
+ MNT_VISFLAGMASK = 3757111295
+ MNT_WAIT = 1
+ MPG_FLAGS_IMMOVABLE_PINNED = 72057594037927936
+ MPG_FLAGS_MOD_REFS_PINNED_COPYIN = 288230376151711744
+ MPG_FLAGS_MOD_REFS_PINNED_DEALLOC = 72057594037927936
+ MPG_FLAGS_MOD_REFS_PINNED_DESTROY = 144115188075855872
+ MPG_FLAGS_NONE = 0
+ MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP = 72057594037927936
+ MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT = 144115188075855872
+ MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER = 288230376151711744
+ MPG_FLAGS_STRICT_REPLY_MASK = 18374686479671623680
+ MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA = 1152921504606846976
+ MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR = 576460752303423488
+ MPG_IMMOVABLE_RECEIVE = 0x02
+ MPG_STRICT = 0x01
+ MPO_CONNECTION_PORT = 0x800
+ MPO_CONTEXT_AS_GUARD = 0x01
+ MPO_DENAP_RECEIVER = 0x40
+ MPO_ENFORCE_REPLY_PORT_SEMANTICS = 0x2000
+ MPO_FILTER_MSG = 0x100
+ MPO_IMMOVABLE_RECEIVE = 0x80
+ MPO_IMPORTANCE_RECEIVER = 0x08
+ MPO_INSERT_SEND_RIGHT = 0x10
+ MPO_PROVISIONAL_REPLY_PORT = 0x4000
+ MPO_QLIMIT = 0x02
+ MPO_REPLY_PORT = 0x1000
+ MPO_SERVICE_PORT = 0x400
+ MPO_STRICT = 0x20
+ MPO_TEMPOWNER = 0x04
+ MPO_TG_BLOCK_TRACKING = 0x200
+ MSIZE = 256
+ MSIZESHIFT = 8
+ MSVC_VERSION = 0
+ MS_ASYNC = 0x0001
+ MS_DEACTIVATE = 0x0008
+ MS_INVALIDATE = 0x0002
+ MS_KILLPAGES = 0x0004
+ MS_SYNC = 0x0010
+ M_1_PI = 0.318309886183790671537767526745028724
+ M_2_PI = 0.636619772367581343075535053490057448
+ M_2_SQRTPI = 1.12837916709551257389615890312154517
+ M_E = 2.71828182845904523536028747135266250
+ M_LN10 = 2.30258509299404568401799145468436421
+ M_LN2 = 0.693147180559945309417232121458176568
+ M_LOG10E = 0.434294481903251827651128918916605082
+ M_LOG2E = 1.44269504088896340735992468100189214
+ M_PI = 3.14159265358979323846264338327950288
+ M_PI_2 = 1.57079632679489661923132169163975144
+ M_PI_4 = 0.785398163397448309615660845819875721
+ M_SQRT1_2 = 0.707106781186547524400844362104849039
+ M_SQRT2 = 1.41421356237309504880168872420969808
+ NAME_MAX = 255
+ NB = 3
+ NBBY = 8
+ NBPG = 4096
+ NCARGS = 1048576
+ NC_AllowAgg = 0x000001
+ NC_AllowWin = 0x004000
+ NC_Complex = 0x002000
+ NC_FromDDL = 0x040000
+ NC_GenCol = 0x000008
+ NC_HasAgg = 0x000010
+ NC_HasWin = 0x008000
+ NC_IdxExpr = 0x000020
+ NC_InAggFunc = 0x020000
+ NC_IsCheck = 0x000004
+ NC_IsDDL = 0x010000
+ NC_MinMaxAgg = 0x001000
+ NC_NoSelect = 0x080000
+ NC_OrderAgg = 0x8000000
+ NC_PartIdx = 0x000002
+ NC_SelfRef = 0x00002e
+ NC_UAggInfo = 0x000100
+ NC_UBaseReg = 0x000400
+ NC_UEList = 0x000080
+ NC_UUpsert = 0x000200
+ NC_VarSelect = 0x000040
+ NDEBUG = 1
+ NFSV2_MAX_FH_SIZE = 32
+ NFSV3_MAX_FH_SIZE = 64
+ NFSV4_MAX_FH_SIZE = 128
+ NFS_MAX_FH_SIZE = 128
+ NGROUPS = 16
+ NGROUPS_MAX = 16
+ NN = 1
+ NOFILE = 256
+ NOGROUP = 65535
+ NOT_WITHIN = 0
+ NO_LOCK = 0
+ NSIG = 32
+ NZERO = 20
+ N_OR_COST = 3
+ N_SORT_BUCKET = 32
+ N_STATEMENT = 8
+ NeXTBSD = 1995064
+ NeXTBSD4_0 = 0
+ OE_Abort = 2
+ OE_Cascade = 10
+ OE_Default = 11
+ OE_Fail = 3
+ OE_Ignore = 4
+ OE_None = 0
+ OE_Replace = 5
+ OE_Restrict = 7
+ OE_Rollback = 1
+ OE_SetDflt = 9
+ OE_SetNull = 8
+ OE_Update = 6
+ OMIT_TEMPDB = 0
+ ONEPASS_MULTI = 2
+ ONEPASS_OFF = 0
+ ONEPASS_SINGLE = 1
+ OPEN_MAX = 10240
+ OPFLAG_APPEND = 0x08
+ OPFLAG_AUXDELETE = 0x04
+ OPFLAG_BULKCSR = 0x01
+ OPFLAG_EPHEM = 0x01
+ OPFLAG_FORDELETE = 0x08
+ OPFLAG_ISNOOP = 0x40
+ OPFLAG_ISUPDATE = 0x04
+ OPFLAG_LASTROWID = 0x20
+ OPFLAG_LENGTHARG = 0x40
+ OPFLAG_NCHANGE = 0x01
+ OPFLAG_NOCHNG = 0x01
+ OPFLAG_NOCHNG_MAGIC = 0x6d
+ OPFLAG_P2ISREG = 0x10
+ OPFLAG_PERMUTE = 0x01
+ OPFLAG_PREFORMAT = 0x80
+ OPFLAG_SAVEPOSITION = 0x02
+ OPFLAG_SEEKEQ = 0x02
+ OPFLAG_TYPEOFARG = 0x80
+ OPFLAG_USESEEKRESULT = 0x10
+ OPFLG_IN1 = 0x02
+ OPFLG_IN2 = 0x04
+ OPFLG_IN3 = 0x08
+ OPFLG_JUMP = 0x01
+ OPFLG_NCYCLE = 0x40
+ OPFLG_OUT2 = 0x10
+ OPFLG_OUT3 = 0x20
+ OP_Abortable = 186
+ OP_Add = 106
+ OP_AddImm = 86
+ OP_Affinity = 96
+ OP_AggFinal = 165
+ OP_AggInverse = 161
+ OP_AggStep = 162
+ OP_AggStep1 = 163
+ OP_AggValue = 164
+ OP_And = 44
+ OP_AutoCommit = 1
+ OP_BeginSubrtn = 74
+ OP_BitAnd = 102
+ OP_BitNot = 114
+ OP_BitOr = 103
+ OP_Blob = 77
+ OP_Cast = 88
+ OP_Checkpoint = 3
+ OP_Clear = 145
+ OP_Close = 122
+ OP_ClrSubtype = 179
+ OP_CollSeq = 85
+ OP_Column = 94
+ OP_ColumnsUsed = 123
+ OP_Compare = 90
+ OP_Concat = 111
+ OP_Copy = 80
+ OP_Count = 98
+ OP_CreateBtree = 147
+ OP_CursorHint = 182
+ OP_CursorLock = 167
+ OP_CursorUnlock = 168
+ OP_DecrJumpZero = 61
+ OP_DeferredSeek = 141
+ OP_Delete = 130
+ OP_Destroy = 144
+ OP_Divide = 109
+ OP_DropIndex = 152
+ OP_DropTable = 151
+ OP_DropTrigger = 154
+ OP_ElseEq = 58
+ OP_EndCoroutine = 68
+ OP_Eq = 53
+ OP_Expire = 166
+ OP_Explain = 185
+ OP_Filter = 64
+ OP_FilterAdd = 180
+ OP_FinishSeek = 143
+ OP_FkCheck = 83
+ OP_FkCounter = 158
+ OP_FkIfZero = 49
+ OP_Found = 29
+ OP_Function = 66
+ OP_Ge = 57
+ OP_Gosub = 10
+ OP_Goto = 9
+ OP_Gt = 54
+ OP_Halt = 70
+ OP_HaltIfNull = 69
+ OP_IdxDelete = 140
+ OP_IdxGE = 45
+ OP_IdxGT = 41
+ OP_IdxInsert = 138
+ OP_IdxLE = 40
+ OP_IdxLT = 42
+ OP_IdxRowid = 142
+ OP_If = 16
+ OP_IfNoHope = 26
+ OP_IfNot = 17
+ OP_IfNotOpen = 25
+ OP_IfNotZero = 60
+ OP_IfNullRow = 20
+ OP_IfPos = 59
+ OP_IfSmaller = 33
+ OP_IncrVacuum = 62
+ OP_Init = 8
+ OP_InitCoroutine = 11
+ OP_Insert = 128
+ OP_Int64 = 72
+ OP_IntCopy = 82
+ OP_Integer = 71
+ OP_IntegrityCk = 155
+ OP_IsNull = 50
+ OP_IsTrue = 91
+ OP_IsType = 18
+ OP_JournalMode = 4
+ OP_Jump = 14
+ OP_Last = 32
+ OP_Le = 55
+ OP_LoadAnalysis = 150
+ OP_Lt = 56
+ OP_MakeRecord = 97
+ OP_MaxPgcnt = 178
+ OP_MemMax = 159
+ OP_Move = 79
+ OP_Multiply = 108
+ OP_MustBeInt = 13
+ OP_Ne = 52
+ OP_NewRowid = 127
+ OP_Next = 39
+ OP_NoConflict = 27
+ OP_Noop = 184
+ OP_Not = 19
+ OP_NotExists = 31
+ OP_NotFound = 28
+ OP_NotNull = 51
+ OP_Null = 75
+ OP_NullRow = 136
+ OP_Offset = 93
+ OP_OffsetLimit = 160
+ OP_Once = 15
+ OP_OpenAutoindex = 116
+ OP_OpenDup = 115
+ OP_OpenEphemeral = 118
+ OP_OpenPseudo = 121
+ OP_OpenRead = 112
+ OP_OpenWrite = 113
+ OP_Or = 43
+ OP_Pagecount = 177
+ OP_Param = 157
+ OP_ParseSchema = 149
+ OP_Permutation = 89
+ OP_Prev = 38
+ OP_Program = 48
+ OP_PureFunc = 65
+ OP_ReadCookie = 99
+ OP_Real = 153
+ OP_RealAffinity = 87
+ OP_ReleaseReg = 183
+ OP_Remainder = 110
+ OP_ReopenIdx = 101
+ OP_ResetCount = 131
+ OP_ResetSorter = 146
+ OP_ResultRow = 84
+ OP_Return = 67
+ OP_Rewind = 36
+ OP_RowCell = 129
+ OP_RowData = 134
+ OP_RowSetAdd = 156
+ OP_RowSetRead = 46
+ OP_RowSetTest = 47
+ OP_Rowid = 135
+ OP_SCopy = 81
+ OP_Savepoint = 0
+ OP_SeekEnd = 137
+ OP_SeekGE = 23
+ OP_SeekGT = 24
+ OP_SeekHit = 125
+ OP_SeekLE = 22
+ OP_SeekLT = 21
+ OP_SeekRowid = 30
+ OP_SeekScan = 124
+ OP_Sequence = 126
+ OP_SequenceTest = 120
+ OP_SetCookie = 100
+ OP_ShiftLeft = 104
+ OP_ShiftRight = 105
+ OP_SoftNull = 76
+ OP_Sort = 35
+ OP_SorterCompare = 132
+ OP_SorterData = 133
+ OP_SorterInsert = 139
+ OP_SorterNext = 37
+ OP_SorterOpen = 119
+ OP_SorterSort = 34
+ OP_SqlExec = 148
+ OP_String = 73
+ OP_String8 = 117
+ OP_Subtract = 107
+ OP_TableLock = 169
+ OP_Trace = 181
+ OP_Transaction = 2
+ OP_TypeCheck = 95
+ OP_VBegin = 170
+ OP_VColumn = 175
+ OP_VCreate = 171
+ OP_VDestroy = 172
+ OP_VFilter = 6
+ OP_VInitIn = 174
+ OP_VNext = 63
+ OP_VOpen = 173
+ OP_VRename = 176
+ OP_VUpdate = 7
+ OP_Vacuum = 5
+ OP_Variable = 78
+ OP_Yield = 12
+ OP_ZeroOrNull = 92
+ OS_ASSUME_NONNULL_BEGIN = 0
+ OS_ASSUME_NONNULL_END = 0
+ OS_ASSUME_PTR_ABI_SINGLE_BEGIN = 0
+ OS_ASSUME_PTR_ABI_SINGLE_END = 0
+ OS_FALLTHROUGH = 0
+ OS_HEADER_INDEXABLE = 0
+ OS_NOESCAPE = 0
+ OS_NOT_TAIL_CALLED = 0
+ OS_OVERLOADABLE = 0
+ OS_REFINED_FOR_SWIFT = 0
+ OS_UNSAFE_INDEXABLE = 0
+ OS_VXWORKS = 0
+ OVERFLOW = 3
+ O_ACCMODE = 0x0003
+ O_ALERT = 0x20000000
+ O_APPEND = 0x00000008
+ O_ASYNC = 0x00000040
+ O_BINARY = 0
+ O_CLOEXEC = 0x01000000
+ O_CREAT = 0x00000200
+ O_DIRECTORY = 0x00100000
+ O_DP_AUTHENTICATE = 0x0004
+ O_DP_GETRAWENCRYPTED = 0x0001
+ O_DP_GETRAWUNENCRYPTED = 0x0002
+ O_DSYNC = 0x400000
+ O_EVTONLY = 0x00008000
+ O_EXCL = 0x00000800
+ O_EXEC = 0x40000000
+ O_EXLOCK = 0x00000020
+ O_FSYNC = 128
+ O_LARGEFILE = 0
+ O_NDELAY = 4
+ O_NOCTTY = 0x00020000
+ O_NOFOLLOW = 0x00000100
+ O_NOFOLLOW_ANY = 0x20000000
+ O_NONBLOCK = 0x00000004
+ O_POPUP = 0x80000000
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_SEARCH = 1074790400
+ O_SHLOCK = 0x00000010
+ O_SYMLINK = 0x00200000
+ O_SYNC = 0x0080
+ O_TRUNC = 0x00000400
+ O_WRONLY = 0x0001
+ P4_COLLSEQ = -2
+ P4_DYNAMIC = -6
+ P4_EXPR = -9
+ P4_FREE_IF_LE = -6
+ P4_FUNCCTX = -15
+ P4_FUNCDEF = -7
+ P4_INT32 = -3
+ P4_INT64 = -13
+ P4_INTARRAY = -14
+ P4_KEYINFO = -8
+ P4_MEM = -10
+ P4_NOTUSED = 0
+ P4_REAL = -12
+ P4_STATIC = -1
+ P4_SUBPROGRAM = -4
+ P4_TABLE = -5
+ P4_TRANSIENT = 0
+ P4_VTAB = -11
+ P5_ConstraintCheck = 3
+ P5_ConstraintFK = 4
+ P5_ConstraintNotNull = 1
+ P5_ConstraintUnique = 2
+ PAGER_CACHESPILL = 0x20
+ PAGER_CKPT_FULLFSYNC = 0x10
+ PAGER_ERROR = 6
+ PAGER_FLAGS_MASK = 0x38
+ PAGER_FULLFSYNC = 0x08
+ PAGER_GET_NOCONTENT = 0x01
+ PAGER_GET_READONLY = 0x02
+ PAGER_JOURNALMODE_DELETE = 0
+ PAGER_JOURNALMODE_MEMORY = 4
+ PAGER_JOURNALMODE_OFF = 2
+ PAGER_JOURNALMODE_PERSIST = 1
+ PAGER_JOURNALMODE_QUERY = -1
+ PAGER_JOURNALMODE_TRUNCATE = 3
+ PAGER_JOURNALMODE_WAL = 5
+ PAGER_LOCKINGMODE_EXCLUSIVE = 1
+ PAGER_LOCKINGMODE_NORMAL = 0
+ PAGER_LOCKINGMODE_QUERY = -1
+ PAGER_MEMORY = 0x0002
+ PAGER_OMIT_JOURNAL = 0x0001
+ PAGER_OPEN = 0
+ PAGER_READER = 1
+ PAGER_STAT_HIT = 0
+ PAGER_STAT_MISS = 1
+ PAGER_STAT_SPILL = 3
+ PAGER_STAT_WRITE = 2
+ PAGER_SYNCHRONOUS_EXTRA = 0x04
+ PAGER_SYNCHRONOUS_FULL = 0x03
+ PAGER_SYNCHRONOUS_MASK = 0x07
+ PAGER_SYNCHRONOUS_NORMAL = 0x02
+ PAGER_SYNCHRONOUS_OFF = 0x01
+ PAGER_WRITER_CACHEMOD = 3
+ PAGER_WRITER_DBMOD = 4
+ PAGER_WRITER_FINISHED = 5
+ PAGER_WRITER_LOCKED = 2
+ PARSE_MODE_DECLARE_VTAB = 1
+ PARSE_MODE_NORMAL = 0
+ PARSE_MODE_RENAME = 2
+ PARSE_MODE_UNMAP = 3
+ PARTLY_WITHIN = 1
+ PATH_MAX = 1024
+ PCACHE1_MIGHT_USE_GROUP_MUTEX = 1
+ PCACHE_DIRTYLIST_ADD = 2
+ PCACHE_DIRTYLIST_FRONT = 3
+ PCACHE_DIRTYLIST_REMOVE = 1
+ PCATCH = 0x100
+ PDP_ENDIAN = 3412
+ PDROP = 0x400
+ PENDING_LOCK = 3
+ PGHDR_CLEAN = 0x001
+ PGHDR_DIRTY = 0x002
+ PGHDR_DONT_WRITE = 0x010
+ PGHDR_MMAP = 0x020
+ PGHDR_NEED_SYNC = 0x008
+ PGHDR_WAL_APPEND = 0x040
+ PGHDR_WRITEABLE = 0x004
+ PGOFSET = 4095
+ PGSHIFT = 12
+ PINOD = 8
+ PIPE_BUF = 512
+ PLOCK = 36
+ PLOSS = 6
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ POSIX_MADV_DONTNEED = 4
+ POSIX_MADV_NORMAL = 0
+ POSIX_MADV_RANDOM = 1
+ POSIX_MADV_SEQUENTIAL = 2
+ POSIX_MADV_WILLNEED = 3
+ PPAUSE = 40
+ PPPDISC = 5
+ PREFERRED_SCHEMA_TABLE = "sqlite_schema"
+ PREFERRED_TEMP_SCHEMA_TABLE = "sqlite_temp_schema"
+ PRIBIO = 16
+ PRIMASK = 0x0ff
+ PRIO_DARWIN_BG = 0x1000
+ PRIO_DARWIN_NONUI = 0x1001
+ PRIO_DARWIN_PROCESS = 4
+ PRIO_DARWIN_THREAD = 3
+ PRIO_MAX = 20
+ PRIO_MIN = -20
+ PRIO_PGRP = 1
+ PRIO_PROCESS = 0
+ PRIO_USER = 2
+ PROT_EXEC = 0x04
+ PROT_NONE = 0x00
+ PROT_READ = 0x01
+ PROT_WRITE = 0x02
+ PROXY_CONCHVERSION = 2
+ PROXY_HEADERLEN = 1
+ PROXY_HOSTIDLEN = 16
+ PROXY_MAXCONCHLEN = 1041
+ PROXY_PATHINDEX = 17
+ PSOCK = 24
+ PSPIN = 0x800
+ PSWP = 0
+ PTF_INTKEY = 0x01
+ PTF_LEAF = 0x08
+ PTF_LEAFDATA = 0x04
+ PTF_ZERODATA = 0x02
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ PTRMAP_BTREE = 5
+ PTRMAP_FREEPAGE = 2
+ PTRMAP_OVERFLOW1 = 3
+ PTRMAP_OVERFLOW2 = 4
+ PTRMAP_ROOTPAGE = 1
+ PTTYBLOCK = 0x200
+ PUSER = 50
+ PVFS = 20
+ PVM = 4
+ PWAIT = 32
+ PZERO = 22
+ P_tmpdir = "/var/tmp/"
+ PragFlg_NeedSchema = 0x01
+ PragFlg_NoColumns = 0x02
+ PragFlg_NoColumns1 = 0x04
+ PragFlg_ReadOnly = 0x08
+ PragFlg_Result0 = 0x10
+ PragFlg_Result1 = 0x20
+ PragFlg_SchemaOpt = 0x40
+ PragFlg_SchemaReq = 0x80
+ PragTyp_ACTIVATE_EXTENSIONS = 0
+ PragTyp_ANALYSIS_LIMIT = 1
+ PragTyp_AUTO_VACUUM = 3
+ PragTyp_BUSY_TIMEOUT = 5
+ PragTyp_CACHE_SIZE = 6
+ PragTyp_CACHE_SPILL = 7
+ PragTyp_CASE_SENSITIVE_LIKE = 8
+ PragTyp_COLLATION_LIST = 9
+ PragTyp_COMPILE_OPTIONS = 10
+ PragTyp_DATABASE_LIST = 12
+ PragTyp_DATA_STORE_DIRECTORY = 11
+ PragTyp_DEFAULT_CACHE_SIZE = 13
+ PragTyp_ENCODING = 14
+ PragTyp_FLAG = 4
+ PragTyp_FOREIGN_KEY_CHECK = 15
+ PragTyp_FOREIGN_KEY_LIST = 16
+ PragTyp_FUNCTION_LIST = 17
+ PragTyp_HARD_HEAP_LIMIT = 18
+ PragTyp_HEADER_VALUE = 2
+ PragTyp_INCREMENTAL_VACUUM = 19
+ PragTyp_INDEX_INFO = 20
+ PragTyp_INDEX_LIST = 21
+ PragTyp_INTEGRITY_CHECK = 22
+ PragTyp_JOURNAL_MODE = 23
+ PragTyp_JOURNAL_SIZE_LIMIT = 24
+ PragTyp_LOCKING_MODE = 26
+ PragTyp_LOCK_PROXY_FILE = 25
+ PragTyp_LOCK_STATUS = 44
+ PragTyp_MMAP_SIZE = 28
+ PragTyp_MODULE_LIST = 29
+ PragTyp_OPTIMIZE = 30
+ PragTyp_PAGE_COUNT = 27
+ PragTyp_PAGE_SIZE = 31
+ PragTyp_PRAGMA_LIST = 32
+ PragTyp_SECURE_DELETE = 33
+ PragTyp_SHRINK_MEMORY = 34
+ PragTyp_SOFT_HEAP_LIMIT = 35
+ PragTyp_STATS = 45
+ PragTyp_SYNCHRONOUS = 36
+ PragTyp_TABLE_INFO = 37
+ PragTyp_TABLE_LIST = 38
+ PragTyp_TEMP_STORE = 39
+ PragTyp_TEMP_STORE_DIRECTORY = 40
+ PragTyp_THREADS = 41
+ PragTyp_WAL_AUTOCHECKPOINT = 42
+ PragTyp_WAL_CHECKPOINT = 43
+ RAND_MAX = 0x7fffffff
+ RBU_CREATE_STATE = "CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)"
+ RBU_DELETE = 2
+ RBU_ENABLE_DELTA_CKSUM = 0
+ RBU_EXCLUSIVE_CHECKPOINT = "rbu_exclusive_checkpoint"
+ RBU_IDX_DELETE = 4
+ RBU_IDX_INSERT = 5
+ RBU_INSERT = 1
+ RBU_PK_EXTERNAL = 3
+ RBU_PK_IPK = 2
+ RBU_PK_NONE = 1
+ RBU_PK_NOTABLE = 0
+ RBU_PK_VTAB = 5
+ RBU_PK_WITHOUT_ROWID = 4
+ RBU_REPLACE = 3
+ RBU_STAGE_CAPTURE = 3
+ RBU_STAGE_CKPT = 4
+ RBU_STAGE_DONE = 5
+ RBU_STAGE_MOVE = 2
+ RBU_STAGE_OAL = 1
+ RBU_STATE_CKPT = 6
+ RBU_STATE_COOKIE = 7
+ RBU_STATE_DATATBL = 10
+ RBU_STATE_IDX = 3
+ RBU_STATE_OALSZ = 8
+ RBU_STATE_PHASEONESTEP = 9
+ RBU_STATE_PROGRESS = 5
+ RBU_STATE_ROW = 4
+ RBU_STATE_STAGE = 1
+ RBU_STATE_TBL = 2
+ RBU_UPDATE = 6
+ READMARK_NOT_USED = 0xffffffff
+ READ_LOCK = 1
+ RENAME_EXCL = 0x00000004
+ RENAME_NOFOLLOW_ANY = 0x00000010
+ RENAME_RESERVED1 = 0x00000008
+ RENAME_SECLUDE = 0x00000001
+ RENAME_SWAP = 0x00000002
+ RESERVED_LOCK = 2
+ RETURNING_TRIGGER_NAME = "sqlite_returning"
+ RE_DUP_MAX = 255
+ RLIMIT_AS = 5
+ RLIMIT_CORE = 4
+ RLIMIT_CPU = 0
+ RLIMIT_CPU_USAGE_MONITOR = 0x2
+ RLIMIT_DATA = 2
+ RLIMIT_FOOTPRINT_INTERVAL = 0x4
+ RLIMIT_FSIZE = 1
+ RLIMIT_MEMLOCK = 6
+ RLIMIT_NOFILE = 8
+ RLIMIT_NPROC = 7
+ RLIMIT_RSS = 5
+ RLIMIT_STACK = 3
+ RLIMIT_THREAD_CPULIMITS = 0x3
+ RLIMIT_WAKEUPS_MONITOR = 0x1
+ RLIM_NLIMITS = 9
+ RNDAWAY = 0
+ RNDTOWARDS = 0
+ ROWSET_ALLOCATION_SIZE = 1024
+ ROWSET_NEXT = 0x02
+ ROWSET_SORTED = 0x01
+ RSIZE_MAX = 9223372036854775807
+ RTLD_FIRST = 0x100
+ RTLD_GLOBAL = 0x8
+ RTLD_LAZY = 0x1
+ RTLD_LOCAL = 0x4
+ RTLD_NODELETE = 0x80
+ RTLD_NOLOAD = 0x10
+ RTLD_NOW = 0x2
+ RTREE_CACHE_SZ = 5
+ RTREE_CHECK_MAX_ERROR = 100
+ RTREE_COORD_INT32 = 1
+ RTREE_COORD_REAL32 = 0
+ RTREE_DEFAULT_ROWEST = 1048576
+ RTREE_EQ = 0x41
+ RTREE_FALSE = 0x40
+ RTREE_GE = 0x44
+ RTREE_GT = 0x45
+ RTREE_LE = 0x42
+ RTREE_LT = 0x43
+ RTREE_MATCH = 0x46
+ RTREE_MAXCELLS = 51
+ RTREE_MAX_AUX_COLUMN = 100
+ RTREE_MAX_DEPTH = 40
+ RTREE_MAX_DIMENSIONS = 5
+ RTREE_MIN_ROWEST = 100
+ RTREE_QUERY = 0x47
+ RTREE_TRUE = 0x3f
+ RTREE_ZERO = 0.0
+ RUSAGE_CHILDREN = -1
+ RUSAGE_INFO_CURRENT = 6
+ RUSAGE_INFO_V0 = 0
+ RUSAGE_INFO_V1 = 1
+ RUSAGE_INFO_V2 = 2
+ RUSAGE_INFO_V3 = 3
+ RUSAGE_INFO_V4 = 4
+ RUSAGE_INFO_V5 = 5
+ RUSAGE_INFO_V6 = 6
+ RUSAGE_SELF = 0
+ RU_PROC_RUNS_RESLIDE = 0x00000001
+ R_OK = 4
+ SAVEPOINT_BEGIN = 0
+ SAVEPOINT_RELEASE = 1
+ SAVEPOINT_ROLLBACK = 2
+ SA_64REGSET = 0x0200
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SA_USERSPACE_MASK = 127
+ SA_USERTRAMP = 0x0100
+ SBC_ALTERNATE_SHARED_REGION = 0x0002
+ SBC_PANIC_ON_AUTHFAIL = 0x0008
+ SBC_PRESERVE_GRAFT = 0x0020
+ SBC_PRESERVE_MOUNT = 0x0001
+ SBC_STRICT_AUTH = 0x0010
+ SBC_SYSTEM_CONTENT = 0x0004
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SCHEMA_ROOT = 1
+ SEARCHFS_MAX_SEARCHPARMS = 4096
+ SEEK_CUR = 1
+ SEEK_DATA = 4
+ SEEK_END = 2
+ SEEK_HOLE = 3
+ SEEK_SET = 0
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_NOOP = 0
+ SESSIONS_STRM_CHUNK_SIZE = 1024
+ SESSION_MAX_BUFFER_SZ = 2147483391
+ SESSION_UPDATE_CACHE_SZ = 12
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_Aggregate = 0x0000008
+ SF_All = 0x0000002
+ SF_ComplexResult = 0x0040000
+ SF_Compound = 0x0000100
+ SF_Converted = 0x0010000
+ SF_CopyCte = 0x4000000
+ SF_DATALESS = 0x40000000
+ SF_Distinct = 0x0000001
+ SF_Expanded = 0x0000040
+ SF_FIRMLINK = 0x00800000
+ SF_FixedLimit = 0x0004000
+ SF_HasAgg = 0x0000010
+ SF_HasTypeInfo = 0x0000080
+ SF_IMMUTABLE = 0x00020000
+ SF_IncludeHidden = 0x0020000
+ SF_MaybeConvert = 0x0008000
+ SF_MinMaxAgg = 0x0001000
+ SF_MultiPart = 0x2000000
+ SF_MultiValue = 0x0000400
+ SF_NOUNLINK = 0x00100000
+ SF_NestedFrom = 0x0000800
+ SF_NoopOrderBy = 0x0400000
+ SF_OrderByReqd = 0x8000000
+ SF_PushDown = 0x1000000
+ SF_RESTRICTED = 0x00080000
+ SF_Recursive = 0x0002000
+ SF_Resolved = 0x0000004
+ SF_SETTABLE = 0x3fff0000
+ SF_SUPPORTED = 0x009f0000
+ SF_SYNTHETIC = 0xc0000000
+ SF_UFSrcCheck = 0x0800000
+ SF_UpdateFrom = 0x10000000
+ SF_UsesEphemeral = 0x0000020
+ SF_Values = 0x0000200
+ SF_View = 0x0200000
+ SF_WhereBegin = 0x0080000
+ SF_WinRewrite = 0x0100000
+ SHARED_LOCK = 1
+ SHARED_SIZE = 510
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 3
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 131072
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SING = 2
+ SIZE_MAX = 18446744073709551615
+ SI_ASYNCIO = 0x10004
+ SI_MESGQ = 0x10005
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_USER = 0x10001
+ SLIPDISC = 4
+ SLOT_2_0 = 0x001fc07f
+ SLOT_4_2_0 = 0xf01fc07f
+ SORTER_MAX_MERGE_COUNT = 16
+ SORTER_TYPE_INTEGER = 0x01
+ SORTER_TYPE_TEXT = 0x02
+ SORTFLAG_UseSorter = 0x01
+ SPILLFLAG_NOSYNC = 0x04
+ SPILLFLAG_OFF = 0x01
+ SPILLFLAG_ROLLBACK = 0x02
+ SQLITE3EXT_H = 0
+ SQLITE3_H = 0
+ SQLITE3_TEXT = 3
+ SQLITEINT_H = 0
+ SQLITE_ABORT = 4
+ SQLITE_ABORT_ROLLBACK = 516
+ SQLITE_ACCESS_EXISTS = 0
+ SQLITE_ACCESS_READ = 2
+ SQLITE_ACCESS_READWRITE = 1
+ SQLITE_AFF_BLOB = 0x41
+ SQLITE_AFF_FLEXNUM = 0x46
+ SQLITE_AFF_INTEGER = 0x44
+ SQLITE_AFF_MASK = 0x47
+ SQLITE_AFF_NONE = 0x40
+ SQLITE_AFF_NUMERIC = 0x43
+ SQLITE_AFF_REAL = 0x45
+ SQLITE_AFF_TEXT = 0x42
+ SQLITE_ALLOW_COVERING_INDEX_SCAN = 1
+ SQLITE_ALTER_TABLE = 26
+ SQLITE_AMALGAMATION = 1
+ SQLITE_ANALYZE = 28
+ SQLITE_ANY = 5
+ SQLITE_API = 0
+ SQLITE_APICALL = 0
+ SQLITE_ASCII = 1
+ SQLITE_ATOMIC_INTRINSICS = 0
+ SQLITE_ATTACH = 24
+ SQLITE_AUTH = 23
+ SQLITE_AUTH_USER = 279
+ SQLITE_AllOpts = 0xffffffff
+ SQLITE_AutoIndex = 0x00008000
+ SQLITE_BIGENDIAN = 0
+ SQLITE_BIG_DBL = 0
+ SQLITE_BLDF1_INDEXED = 0x0001
+ SQLITE_BLDF1_UNIQUE = 0x0002
+ SQLITE_BLDF2_2NDPASS = 0x0004
+ SQLITE_BLOB = 4
+ SQLITE_BTREE_H = 0
+ SQLITE_BUSY = 5
+ SQLITE_BUSY_RECOVERY = 261
+ SQLITE_BUSY_SNAPSHOT = 517
+ SQLITE_BUSY_TIMEOUT = 773
+ SQLITE_BYTEORDER = 1234
+ SQLITE_BalancedMerge = 0x00200000
+ SQLITE_BloomFilter = 0x00080000
+ SQLITE_BloomPulldown = 0x00100000
+ SQLITE_CALLBACK = 0
+ SQLITE_CANTOPEN = 14
+ SQLITE_CANTOPEN_CONVPATH = 1038
+ SQLITE_CANTOPEN_DIRTYWAL = 1294
+ SQLITE_CANTOPEN_FULLPATH = 782
+ SQLITE_CANTOPEN_ISDIR = 526
+ SQLITE_CANTOPEN_NOTEMPDIR = 270
+ SQLITE_CANTOPEN_SYMLINK = 1550
+ SQLITE_CDECL = 0
+ SQLITE_CHANGESETAPPLY_INVERT = 0x0002
+ SQLITE_CHANGESETAPPLY_NOSAVEPOINT = 0x0001
+ SQLITE_CHANGESETSTART_INVERT = 0x0002
+ SQLITE_CHANGESET_ABORT = 2
+ SQLITE_CHANGESET_CONFLICT = 3
+ SQLITE_CHANGESET_CONSTRAINT = 4
+ SQLITE_CHANGESET_DATA = 1
+ SQLITE_CHANGESET_FOREIGN_KEY = 5
+ SQLITE_CHANGESET_NOTFOUND = 2
+ SQLITE_CHANGESET_OMIT = 0
+ SQLITE_CHANGESET_REPLACE = 1
+ SQLITE_CHECKPOINT_FULL = 1
+ SQLITE_CHECKPOINT_PASSIVE = 0
+ SQLITE_CHECKPOINT_RESTART = 2
+ SQLITE_CHECKPOINT_TRUNCATE = 3
+ SQLITE_CONFIG_COVERING_INDEX_SCAN = 20
+ SQLITE_CONFIG_GETMALLOC = 5
+ SQLITE_CONFIG_GETMUTEX = 11
+ SQLITE_CONFIG_GETPCACHE = 15
+ SQLITE_CONFIG_GETPCACHE2 = 19
+ SQLITE_CONFIG_HEAP = 8
+ SQLITE_CONFIG_LOG = 16
+ SQLITE_CONFIG_LOOKASIDE = 13
+ SQLITE_CONFIG_MALLOC = 4
+ SQLITE_CONFIG_MEMDB_MAXSIZE = 29
+ SQLITE_CONFIG_MEMSTATUS = 9
+ SQLITE_CONFIG_MMAP_SIZE = 22
+ SQLITE_CONFIG_MULTITHREAD = 2
+ SQLITE_CONFIG_MUTEX = 10
+ SQLITE_CONFIG_PAGECACHE = 7
+ SQLITE_CONFIG_PCACHE = 14
+ SQLITE_CONFIG_PCACHE2 = 18
+ SQLITE_CONFIG_PCACHE_HDRSZ = 24
+ SQLITE_CONFIG_PMASZ = 25
+ SQLITE_CONFIG_SCRATCH = 6
+ SQLITE_CONFIG_SERIALIZED = 3
+ SQLITE_CONFIG_SINGLETHREAD = 1
+ SQLITE_CONFIG_SMALL_MALLOC = 27
+ SQLITE_CONFIG_SORTERREF_SIZE = 28
+ SQLITE_CONFIG_SQLLOG = 21
+ SQLITE_CONFIG_STMTJRNL_SPILL = 26
+ SQLITE_CONFIG_URI = 17
+ SQLITE_CONFIG_WIN32_HEAPSIZE = 23
+ SQLITE_CONSTRAINT = 19
+ SQLITE_CONSTRAINT_CHECK = 275
+ SQLITE_CONSTRAINT_COMMITHOOK = 531
+ SQLITE_CONSTRAINT_DATATYPE = 3091
+ SQLITE_CONSTRAINT_FOREIGNKEY = 787
+ SQLITE_CONSTRAINT_FUNCTION = 1043
+ SQLITE_CONSTRAINT_NOTNULL = 1299
+ SQLITE_CONSTRAINT_PINNED = 2835
+ SQLITE_CONSTRAINT_PRIMARYKEY = 1555
+ SQLITE_CONSTRAINT_ROWID = 2579
+ SQLITE_CONSTRAINT_TRIGGER = 1811
+ SQLITE_CONSTRAINT_UNIQUE = 2067
+ SQLITE_CONSTRAINT_VTAB = 2323
+ SQLITE_COPY = 0
+ SQLITE_CORE = 1
+ SQLITE_CORRUPT = 11
+ SQLITE_CORRUPT_INDEX = 779
+ SQLITE_CORRUPT_SEQUENCE = 523
+ SQLITE_CORRUPT_VTAB = 267
+ SQLITE_CREATE_INDEX = 1
+ SQLITE_CREATE_TABLE = 2
+ SQLITE_CREATE_TEMP_INDEX = 3
+ SQLITE_CREATE_TEMP_TABLE = 4
+ SQLITE_CREATE_TEMP_TRIGGER = 5
+ SQLITE_CREATE_TEMP_VIEW = 6
+ SQLITE_CREATE_TRIGGER = 7
+ SQLITE_CREATE_VIEW = 8
+ SQLITE_CREATE_VTABLE = 29
+ SQLITE_CacheSpill = 0x00000020
+ SQLITE_CellSizeCk = 0x00200000
+ SQLITE_CkptFullFSync = 0x00000010
+ SQLITE_Coroutines = 0x02000000
+ SQLITE_CountOfView = 0x00000200
+ SQLITE_CoverIdxScan = 0x00000020
+ SQLITE_CursorHints = 0x00000400
+ SQLITE_DBCONFIG_DEFENSIVE = 1010
+ SQLITE_DBCONFIG_DQS_DDL = 1014
+ SQLITE_DBCONFIG_DQS_DML = 1013
+ SQLITE_DBCONFIG_ENABLE_FKEY = 1002
+ SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004
+ SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005
+ SQLITE_DBCONFIG_ENABLE_QPSG = 1007
+ SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003
+ SQLITE_DBCONFIG_ENABLE_VIEW = 1015
+ SQLITE_DBCONFIG_LEGACY_ALTER_TABLE = 1012
+ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT = 1016
+ SQLITE_DBCONFIG_LOOKASIDE = 1001
+ SQLITE_DBCONFIG_MAINDBNAME = 1000
+ SQLITE_DBCONFIG_MAX = 1017
+ SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006
+ SQLITE_DBCONFIG_RESET_DATABASE = 1009
+ SQLITE_DBCONFIG_TRIGGER_EQP = 1008
+ SQLITE_DBCONFIG_TRUSTED_SCHEMA = 1017
+ SQLITE_DBCONFIG_WRITABLE_SCHEMA = 1011
+ SQLITE_DBSTATUS_CACHE_HIT = 7
+ SQLITE_DBSTATUS_CACHE_MISS = 8
+ SQLITE_DBSTATUS_CACHE_SPILL = 12
+ SQLITE_DBSTATUS_CACHE_USED = 1
+ SQLITE_DBSTATUS_CACHE_USED_SHARED = 11
+ SQLITE_DBSTATUS_CACHE_WRITE = 9
+ SQLITE_DBSTATUS_DEFERRED_FKS = 10
+ SQLITE_DBSTATUS_LOOKASIDE_HIT = 4
+ SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6
+ SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5
+ SQLITE_DBSTATUS_LOOKASIDE_USED = 0
+ SQLITE_DBSTATUS_MAX = 12
+ SQLITE_DBSTATUS_SCHEMA_USED = 2
+ SQLITE_DBSTATUS_STMT_USED = 3
+ SQLITE_DEFAULT_AUTOVACUUM = 0
+ SQLITE_DEFAULT_CACHE_SIZE = -2000
+ SQLITE_DEFAULT_FILE_FORMAT = 4
+ SQLITE_DEFAULT_FILE_PERMISSIONS = 0644
+ SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1
+ SQLITE_DEFAULT_LOOKASIDE = 40
+ SQLITE_DEFAULT_MEMSTATUS = 0
+ SQLITE_DEFAULT_MMAP_SIZE = 0
+ SQLITE_DEFAULT_PAGE_SIZE = 4096
+ SQLITE_DEFAULT_PCACHE_INITSZ = 20
+ SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 0755
+ SQLITE_DEFAULT_RECURSIVE_TRIGGERS = 0
+ SQLITE_DEFAULT_SECTOR_SIZE = 4096
+ SQLITE_DEFAULT_SORTERREF_SIZE = 0x7fffffff
+ SQLITE_DEFAULT_SYNCHRONOUS = 2
+ SQLITE_DEFAULT_WAL_AUTOCHECKPOINT = 1000
+ SQLITE_DEFAULT_WAL_SYNCHRONOUS = 2
+ SQLITE_DEFAULT_WORKER_THREADS = 0
+ SQLITE_DELETE = 9
+ SQLITE_DENY = 1
+ SQLITE_DEPRECATED = 0
+ SQLITE_DESERIALIZE_FREEONCLOSE = 1
+ SQLITE_DESERIALIZE_READONLY = 4
+ SQLITE_DESERIALIZE_RESIZEABLE = 2
+ SQLITE_DETACH = 25
+ SQLITE_DETERMINISTIC = 0x000000800
+ SQLITE_DIRECTONLY = 0x000080000
+ SQLITE_DONE = 101
+ SQLITE_DQS = 3
+ SQLITE_DROP_INDEX = 10
+ SQLITE_DROP_TABLE = 11
+ SQLITE_DROP_TEMP_INDEX = 12
+ SQLITE_DROP_TEMP_TABLE = 13
+ SQLITE_DROP_TEMP_TRIGGER = 14
+ SQLITE_DROP_TEMP_VIEW = 15
+ SQLITE_DROP_TRIGGER = 16
+ SQLITE_DROP_VIEW = 17
+ SQLITE_DROP_VTABLE = 30
+ SQLITE_Defensive = 0x10000000
+ SQLITE_DeferFKs = 0x00080000
+ SQLITE_DistinctOpt = 0x00000010
+ SQLITE_DqsDDL = 0x20000000
+ SQLITE_DqsDML = 0x40000000
+ SQLITE_ECEL_DUP = 0x01
+ SQLITE_ECEL_FACTOR = 0x02
+ SQLITE_ECEL_OMITREF = 0x08
+ SQLITE_ECEL_REF = 0x04
+ SQLITE_EMPTY = 16
+ SQLITE_ENABLE_COLUMN_METADATA = 1
+ SQLITE_ENABLE_FTS5 = 1
+ SQLITE_ENABLE_GEOPOLY = 1
+ SQLITE_ENABLE_LOCKING_STYLE = 1
+ SQLITE_ENABLE_MATH_FUNCTIONS = 1
+ SQLITE_ENABLE_MEMORY_MANAGEMENT = 1
+ SQLITE_ENABLE_OFFSET_SQL_FUNC = 1
+ SQLITE_ENABLE_PREUPDATE_HOOK = 1
+ SQLITE_ENABLE_RBU = 1
+ SQLITE_ENABLE_RTREE = 1
+ SQLITE_ENABLE_SESSION = 1
+ SQLITE_ENABLE_SNAPSHOT = 1
+ SQLITE_ENABLE_STAT4 = 1
+ SQLITE_ENABLE_UNLOCK_NOTIFY = 1
+ SQLITE_ERROR = 1
+ SQLITE_ERROR_MISSING_COLLSEQ = 257
+ SQLITE_ERROR_RETRY = 513
+ SQLITE_ERROR_SNAPSHOT = 769
+ SQLITE_EXPERIMENTAL = 0
+ SQLITE_EXTENSION_INIT1 = 0
+ SQLITE_EXTENSION_INIT3 = 0
+ SQLITE_EnableQPSG = 0x00800000
+ SQLITE_EnableTrigger = 0x00040000
+ SQLITE_EnableView = 0x80000000
+ SQLITE_FAIL = 3
+ SQLITE_FAULTINJECTOR_COUNT = 1
+ SQLITE_FAULTINJECTOR_MALLOC = 0
+ SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31
+ SQLITE_FCNTL_BUSYHANDLER = 15
+ SQLITE_FCNTL_CHUNK_SIZE = 6
+ SQLITE_FCNTL_CKPT_DONE = 37
+ SQLITE_FCNTL_CKPT_START = 39
+ SQLITE_FCNTL_CKSM_FILE = 41
+ SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32
+ SQLITE_FCNTL_COMMIT_PHASETWO = 22
+ SQLITE_FCNTL_DATA_VERSION = 35
+ SQLITE_FCNTL_DB_UNCHANGED = 0xca093fa0
+ SQLITE_FCNTL_EXTERNAL_READER = 40
+ SQLITE_FCNTL_FILE_POINTER = 7
+ SQLITE_FCNTL_GET_LOCKPROXYFILE = 2
+ SQLITE_FCNTL_HAS_MOVED = 20
+ SQLITE_FCNTL_JOURNAL_POINTER = 28
+ SQLITE_FCNTL_LAST_ERRNO = 4
+ SQLITE_FCNTL_LOCKSTATE = 1
+ SQLITE_FCNTL_LOCK_TIMEOUT = 34
+ SQLITE_FCNTL_MMAP_SIZE = 18
+ SQLITE_FCNTL_OVERWRITE = 11
+ SQLITE_FCNTL_PDB = 30
+ SQLITE_FCNTL_PERSIST_WAL = 10
+ SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13
+ SQLITE_FCNTL_PRAGMA = 14
+ SQLITE_FCNTL_RBU = 26
+ SQLITE_FCNTL_RBUCNT = 5149216
+ SQLITE_FCNTL_RESERVE_BYTES = 38
+ SQLITE_FCNTL_RESET_CACHE = 42
+ SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33
+ SQLITE_FCNTL_SET_LOCKPROXYFILE = 3
+ SQLITE_FCNTL_SIZE_HINT = 5
+ SQLITE_FCNTL_SIZE_LIMIT = 36
+ SQLITE_FCNTL_SYNC = 21
+ SQLITE_FCNTL_SYNC_OMITTED = 8
+ SQLITE_FCNTL_TEMPFILENAME = 16
+ SQLITE_FCNTL_TRACE = 19
+ SQLITE_FCNTL_VFSNAME = 12
+ SQLITE_FCNTL_VFS_POINTER = 27
+ SQLITE_FCNTL_WAL_BLOCK = 24
+ SQLITE_FCNTL_WIN32_AV_RETRY = 9
+ SQLITE_FCNTL_WIN32_GET_HANDLE = 29
+ SQLITE_FCNTL_WIN32_SET_HANDLE = 23
+ SQLITE_FCNTL_ZIPVFS = 25
+ SQLITE_FILE_HEADER = "SQLite format 3"
+ SQLITE_FLOAT = 2
+ SQLITE_FORMAT = 24
+ SQLITE_FP_PRECISION_LIMIT = 100000000
+ SQLITE_FRAME_MAGIC = 0x879fb71e
+ SQLITE_FSFLAGS_IS_MSDOS = 0x1
+ SQLITE_FULL = 13
+ SQLITE_FUNCTION = 31
+ SQLITE_FUNC_ANYORDER = 0x08000000
+ SQLITE_FUNC_BUILTIN = 0x00800000
+ SQLITE_FUNC_CASE = 0x0008
+ SQLITE_FUNC_CONSTANT = 0x0800
+ SQLITE_FUNC_COUNT = 0x0100
+ SQLITE_FUNC_DIRECT = 0x00080000
+ SQLITE_FUNC_ENCMASK = 0x0003
+ SQLITE_FUNC_EPHEM = 0x0010
+ SQLITE_FUNC_HASH_SZ = 23
+ SQLITE_FUNC_INLINE = 0x00400000
+ SQLITE_FUNC_INTERNAL = 0x00040000
+ SQLITE_FUNC_LENGTH = 0x0040
+ SQLITE_FUNC_LIKE = 0x0004
+ SQLITE_FUNC_MINMAX = 0x1000
+ SQLITE_FUNC_NEEDCOLL = 0x0020
+ SQLITE_FUNC_SLOCHNG = 0x2000
+ SQLITE_FUNC_SUBTYPE = 0x00100000
+ SQLITE_FUNC_TEST = 0x4000
+ SQLITE_FUNC_TYPEOF = 0x0080
+ SQLITE_FUNC_UNLIKELY = 0x0400
+ SQLITE_FUNC_UNSAFE = 0x00200000
+ SQLITE_FUNC_WINDOW = 0x00010000
+ SQLITE_FactorOutConst = 0x00000008
+ SQLITE_FlttnUnionAll = 0x00800000
+ SQLITE_ForeignKeys = 0x00004000
+ SQLITE_Fts3Tokenizer = 0x00400000
+ SQLITE_FullColNames = 0x00000004
+ SQLITE_FullFSync = 0x00000008
+ SQLITE_GET_LOCKPROXYFILE = 2
+ SQLITE_GroupByOrder = 0x00000004
+ SQLITE_HASH_H = 0
+ SQLITE_HAVE_C99_MATH_FUNCS = 1
+ SQLITE_IDXTYPE_APPDEF = 0
+ SQLITE_IDXTYPE_IPK = 3
+ SQLITE_IDXTYPE_PRIMARYKEY = 2
+ SQLITE_IDXTYPE_UNIQUE = 1
+ SQLITE_IGNORE = 2
+ SQLITE_INDEX_CONSTRAINT_EQ = 2
+ SQLITE_INDEX_CONSTRAINT_FUNCTION = 150
+ SQLITE_INDEX_CONSTRAINT_GE = 32
+ SQLITE_INDEX_CONSTRAINT_GLOB = 66
+ SQLITE_INDEX_CONSTRAINT_GT = 4
+ SQLITE_INDEX_CONSTRAINT_IS = 72
+ SQLITE_INDEX_CONSTRAINT_ISNOT = 69
+ SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70
+ SQLITE_INDEX_CONSTRAINT_ISNULL = 71
+ SQLITE_INDEX_CONSTRAINT_LE = 8
+ SQLITE_INDEX_CONSTRAINT_LIKE = 65
+ SQLITE_INDEX_CONSTRAINT_LIMIT = 73
+ SQLITE_INDEX_CONSTRAINT_LT = 16
+ SQLITE_INDEX_CONSTRAINT_MATCH = 64
+ SQLITE_INDEX_CONSTRAINT_NE = 68
+ SQLITE_INDEX_CONSTRAINT_OFFSET = 74
+ SQLITE_INDEX_CONSTRAINT_REGEXP = 67
+ SQLITE_INDEX_SCAN_UNIQUE = 1
+ SQLITE_INNOCUOUS = 0x000200000
+ SQLITE_INSERT = 18
+ SQLITE_INTEGER = 1
+ SQLITE_INTEGRITY_CHECK_ERROR_MAX = 100
+ SQLITE_INTERNAL = 2
+ SQLITE_INTERRUPT = 9
+ SQLITE_IOCAP_ATOMIC = 0x00000001
+ SQLITE_IOCAP_ATOMIC16K = 0x00000040
+ SQLITE_IOCAP_ATOMIC1K = 0x00000004
+ SQLITE_IOCAP_ATOMIC2K = 0x00000008
+ SQLITE_IOCAP_ATOMIC32K = 0x00000080
+ SQLITE_IOCAP_ATOMIC4K = 0x00000010
+ SQLITE_IOCAP_ATOMIC512 = 0x00000002
+ SQLITE_IOCAP_ATOMIC64K = 0x00000100
+ SQLITE_IOCAP_ATOMIC8K = 0x00000020
+ SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000
+ SQLITE_IOCAP_IMMUTABLE = 0x00002000
+ SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000
+ SQLITE_IOCAP_SAFE_APPEND = 0x00000200
+ SQLITE_IOCAP_SEQUENTIAL = 0x00000400
+ SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800
+ SQLITE_IOERR = 10
+ SQLITE_IOERR_ACCESS = 3338
+ SQLITE_IOERR_AUTH = 7178
+ SQLITE_IOERR_BEGIN_ATOMIC = 7434
+ SQLITE_IOERR_BLOCKED = 2826
+ SQLITE_IOERR_CHECKRESERVEDLOCK = 3594
+ SQLITE_IOERR_CLOSE = 4106
+ SQLITE_IOERR_COMMIT_ATOMIC = 7690
+ SQLITE_IOERR_CONVPATH = 6666
+ SQLITE_IOERR_CORRUPTFS = 8458
+ SQLITE_IOERR_DATA = 8202
+ SQLITE_IOERR_DELETE = 2570
+ SQLITE_IOERR_DELETE_NOENT = 5898
+ SQLITE_IOERR_DIR_CLOSE = 4362
+ SQLITE_IOERR_DIR_FSYNC = 1290
+ SQLITE_IOERR_FSTAT = 1802
+ SQLITE_IOERR_FSYNC = 1034
+ SQLITE_IOERR_GETTEMPPATH = 6410
+ SQLITE_IOERR_LOCK = 3850
+ SQLITE_IOERR_MMAP = 6154
+ SQLITE_IOERR_NOMEM = 3082
+ SQLITE_IOERR_NOMEM_BKPT = 3082
+ SQLITE_IOERR_RDLOCK = 2314
+ SQLITE_IOERR_READ = 266
+ SQLITE_IOERR_ROLLBACK_ATOMIC = 7946
+ SQLITE_IOERR_SEEK = 5642
+ SQLITE_IOERR_SHMLOCK = 5130
+ SQLITE_IOERR_SHMMAP = 5386
+ SQLITE_IOERR_SHMOPEN = 4618
+ SQLITE_IOERR_SHMSIZE = 4874
+ SQLITE_IOERR_SHORT_READ = 522
+ SQLITE_IOERR_TRUNCATE = 1546
+ SQLITE_IOERR_UNLOCK = 2058
+ SQLITE_IOERR_VNODE = 6922
+ SQLITE_IOERR_WRITE = 778
+ SQLITE_IgnoreChecks = 0x00000200
+ SQLITE_IndexedExpr = 0x01000000
+ SQLITE_JUMPIFNULL = 0x10
+ SQLITE_LAST_ERRNO = 4
+ SQLITE_LIKE_DOESNT_MATCH_BLOBS = 1
+ SQLITE_LIMIT_ATTACHED = 7
+ SQLITE_LIMIT_COLUMN = 2
+ SQLITE_LIMIT_COMPOUND_SELECT = 4
+ SQLITE_LIMIT_EXPR_DEPTH = 3
+ SQLITE_LIMIT_FUNCTION_ARG = 6
+ SQLITE_LIMIT_LENGTH = 0
+ SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8
+ SQLITE_LIMIT_SQL_LENGTH = 1
+ SQLITE_LIMIT_TRIGGER_DEPTH = 10
+ SQLITE_LIMIT_VARIABLE_NUMBER = 9
+ SQLITE_LIMIT_VDBE_OP = 5
+ SQLITE_LIMIT_WORKER_THREADS = 11
+ SQLITE_LITTLEENDIAN = 1
+ SQLITE_LOCKED = 6
+ SQLITE_LOCKED_SHAREDCACHE = 262
+ SQLITE_LOCKED_VTAB = 518
+ SQLITE_LOCK_EXCLUSIVE = 4
+ SQLITE_LOCK_NONE = 0
+ SQLITE_LOCK_PENDING = 3
+ SQLITE_LOCK_RESERVED = 2
+ SQLITE_LOCK_SHARED = 1
+ SQLITE_LegacyAlter = 0x04000000
+ SQLITE_LegacyFileFmt = 0x00000002
+ SQLITE_LoadExtFunc = 0x00020000
+ SQLITE_LoadExtension = 0x00010000
+ SQLITE_MALLOC_SOFT_LIMIT = 1024
+ SQLITE_MATCH = 0
+ SQLITE_MAX_ALLOCATION_SIZE = 2147483391
+ SQLITE_MAX_ATTACHED = 10
+ SQLITE_MAX_COLUMN = 2000
+ SQLITE_MAX_COMPOUND_SELECT = 500
+ SQLITE_MAX_DB = 12
+ SQLITE_MAX_DEFAULT_PAGE_SIZE = 8192
+ SQLITE_MAX_EXPR_DEPTH = 1000
+ SQLITE_MAX_FILE_FORMAT = 4
+ SQLITE_MAX_FUNCTION_ARG = 127
+ SQLITE_MAX_LENGTH = 1000000000
+ SQLITE_MAX_LIKE_PATTERN_LENGTH = 50000
+ SQLITE_MAX_MEMORY = 0
+ SQLITE_MAX_MMAP_SIZE = 0x7fff0000
+ SQLITE_MAX_PAGE_COUNT = 1073741823
+ SQLITE_MAX_PAGE_SIZE = 65536
+ SQLITE_MAX_PATHLEN = 1024
+ SQLITE_MAX_PMASZ = 536870912
+ SQLITE_MAX_PREPARE_RETRY = 25
+ SQLITE_MAX_SCHEMA_RETRY = 50
+ SQLITE_MAX_SQL_LENGTH = 1000000000
+ SQLITE_MAX_SRCLIST = 200
+ SQLITE_MAX_SYMLINK = 200
+ SQLITE_MAX_SYMLINKS = 100
+ SQLITE_MAX_TRIGGER_DEPTH = 1000
+ SQLITE_MAX_VARIABLE_NUMBER = 32766
+ SQLITE_MAX_VDBE_OP = 250000000
+ SQLITE_MAX_WORKER_THREADS = 8
+ SQLITE_MEMDB_DEFAULT_MAXSIZE = 1073741824
+ SQLITE_MINIMUM_FILE_DESCRIPTOR = 3
+ SQLITE_MISMATCH = 20
+ SQLITE_MISUSE = 21
+ SQLITE_MSVC_H = 0
+ SQLITE_MUTEX_APPDEF = 1
+ SQLITE_MUTEX_FAST = 0
+ SQLITE_MUTEX_NOOP = 1
+ SQLITE_MUTEX_RECURSIVE = 1
+ SQLITE_MUTEX_STATIC_APP1 = 8
+ SQLITE_MUTEX_STATIC_APP2 = 9
+ SQLITE_MUTEX_STATIC_APP3 = 10
+ SQLITE_MUTEX_STATIC_LRU = 6
+ SQLITE_MUTEX_STATIC_LRU2 = 7
+ SQLITE_MUTEX_STATIC_MAIN = 2
+ SQLITE_MUTEX_STATIC_MASTER = 2
+ SQLITE_MUTEX_STATIC_MEM = 3
+ SQLITE_MUTEX_STATIC_MEM2 = 4
+ SQLITE_MUTEX_STATIC_OPEN = 4
+ SQLITE_MUTEX_STATIC_PMEM = 7
+ SQLITE_MUTEX_STATIC_PRNG = 5
+ SQLITE_MUTEX_STATIC_TEMPDIR = 11
+ SQLITE_MUTEX_STATIC_VFS1 = 11
+ SQLITE_MUTEX_STATIC_VFS2 = 12
+ SQLITE_MUTEX_STATIC_VFS3 = 13
+ SQLITE_MX_JUMP_OPCODE = 64
+ SQLITE_MinMaxOpt = 0x00010000
+ SQLITE_NOLFS = 22
+ SQLITE_NOMATCH = 1
+ SQLITE_NOMEM = 7
+ SQLITE_NOMEM_BKPT = 7
+ SQLITE_NOTADB = 26
+ SQLITE_NOTFOUND = 12
+ SQLITE_NOTICE = 27
+ SQLITE_NOTICE_RBU = 795
+ SQLITE_NOTICE_RECOVER_ROLLBACK = 539
+ SQLITE_NOTICE_RECOVER_WAL = 283
+ SQLITE_NOTNULL = 0x90
+ SQLITE_NOWILDCARDMATCH = 2
+ SQLITE_NTUNE = 6
+ SQLITE_NULL = 5
+ SQLITE_NULLEQ = 0x80
+ SQLITE_N_BTREE_META = 16
+ SQLITE_N_KEYWORD = 147
+ SQLITE_N_LIMIT = 12
+ SQLITE_N_STDTYPE = 6
+ SQLITE_NoCkptOnClose = 0x00000800
+ SQLITE_NoSchemaError = 0x08000000
+ SQLITE_NullCallback = 0x00000100
+ SQLITE_OK = 0
+ SQLITE_OK_LOAD_PERMANENTLY = 256
+ SQLITE_OK_SYMLINK = 512
+ SQLITE_OPEN_AUTOPROXY = 0x00000020
+ SQLITE_OPEN_CREATE = 0x00000004
+ SQLITE_OPEN_DELETEONCLOSE = 0x00000008
+ SQLITE_OPEN_EXCLUSIVE = 0x00000010
+ SQLITE_OPEN_EXRESCODE = 0x02000000
+ SQLITE_OPEN_FULLMUTEX = 0x00010000
+ SQLITE_OPEN_MAIN_DB = 0x00000100
+ SQLITE_OPEN_MAIN_JOURNAL = 0x00000800
+ SQLITE_OPEN_MASTER_JOURNAL = 0x00004000
+ SQLITE_OPEN_MEMORY = 0x00000080
+ SQLITE_OPEN_NOFOLLOW = 0x01000000
+ SQLITE_OPEN_NOMUTEX = 0x00008000
+ SQLITE_OPEN_PRIVATECACHE = 0x00040000
+ SQLITE_OPEN_READONLY = 0x00000001
+ SQLITE_OPEN_READWRITE = 0x00000002
+ SQLITE_OPEN_SHAREDCACHE = 0x00020000
+ SQLITE_OPEN_SUBJOURNAL = 0x00002000
+ SQLITE_OPEN_SUPER_JOURNAL = 0x00004000
+ SQLITE_OPEN_TEMP_DB = 0x00000200
+ SQLITE_OPEN_TEMP_JOURNAL = 0x00001000
+ SQLITE_OPEN_TRANSIENT_DB = 0x00000400
+ SQLITE_OPEN_URI = 0x00000040
+ SQLITE_OPEN_WAL = 0x00080000
+ SQLITE_OS_KV = 0
+ SQLITE_OS_OTHER = 0
+ SQLITE_OS_SETUP_H = 0
+ SQLITE_OS_UNIX = 1
+ SQLITE_OS_WIN = 0
+ SQLITE_OmitNoopJoin = 0x00000100
+ SQLITE_OmitOrderBy = 0x00040000
+ SQLITE_OrderByIdxJoin = 0x00000040
+ SQLITE_PAGER_H = 0
+ SQLITE_PERM = 3
+ SQLITE_POWERSAFE_OVERWRITE = 1
+ SQLITE_PRAGMA = 19
+ SQLITE_PREPARE_MASK = 0x0f
+ SQLITE_PREPARE_NORMALIZE = 0x02
+ SQLITE_PREPARE_NO_VTAB = 0x04
+ SQLITE_PREPARE_PERSISTENT = 0x01
+ SQLITE_PREPARE_SAVESQL = 0x80
+ SQLITE_PRINTF_INTERNAL = 0x01
+ SQLITE_PRINTF_MALLOCED = 0x04
+ SQLITE_PRINTF_SQLFUNC = 0x02
+ SQLITE_PRINT_BUF_SIZE = 70
+ SQLITE_PRIVATE = 0
+ SQLITE_PROTOCOL = 15
+ SQLITE_PTRSIZE = 8
+ SQLITE_PropagateConst = 0x00008000
+ SQLITE_PushDown = 0x00001000
+ SQLITE_QUERY_PLANNER_LIMIT = 20000
+ SQLITE_QUERY_PLANNER_LIMIT_INCR = 1000
+ SQLITE_QueryFlattener = 0x00000001
+ SQLITE_QueryOnly = 0x00100000
+ SQLITE_RANGE = 25
+ SQLITE_RBU_STATE_CHECKPOINT = 3
+ SQLITE_RBU_STATE_DONE = 4
+ SQLITE_RBU_STATE_ERROR = 5
+ SQLITE_RBU_STATE_MOVE = 2
+ SQLITE_RBU_STATE_OAL = 1
+ SQLITE_RBU_UPDATE_CACHESIZE = 16
+ SQLITE_READ = 20
+ SQLITE_READONLY = 8
+ SQLITE_READONLY_CANTINIT = 1288
+ SQLITE_READONLY_CANTLOCK = 520
+ SQLITE_READONLY_DBMOVED = 1032
+ SQLITE_READONLY_DIRECTORY = 1544
+ SQLITE_READONLY_RECOVERY = 264
+ SQLITE_READONLY_ROLLBACK = 776
+ SQLITE_RECURSIVE = 33
+ SQLITE_REINDEX = 27
+ SQLITE_REPLACE = 5
+ SQLITE_ROLLBACK = 1
+ SQLITE_ROW = 100
+ SQLITE_ReadUncommit = 0x00000400
+ SQLITE_RecTriggers = 0x00002000
+ SQLITE_ReleaseReg = 0x00400000
+ SQLITE_ResetDatabase = 0x02000000
+ SQLITE_ReverseOrder = 0x00001000
+ SQLITE_SAVEPOINT = 32
+ SQLITE_SCANSTAT_COMPLEX = 0x0001
+ SQLITE_SCANSTAT_EST = 2
+ SQLITE_SCANSTAT_EXPLAIN = 4
+ SQLITE_SCANSTAT_NAME = 3
+ SQLITE_SCANSTAT_NCYCLE = 7
+ SQLITE_SCANSTAT_NLOOP = 0
+ SQLITE_SCANSTAT_NVISIT = 1
+ SQLITE_SCANSTAT_PARENTID = 6
+ SQLITE_SCANSTAT_SELECTID = 5
+ SQLITE_SCHEMA = 17
+ SQLITE_SELECT = 21
+ SQLITE_SERIALIZE_NOCOPY = 0x001
+ SQLITE_SESSION_CONFIG_STRMSIZE = 1
+ SQLITE_SESSION_OBJCONFIG_SIZE = 1
+ SQLITE_SET_LOCKPROXYFILE = 3
+ SQLITE_SHM_EXCLUSIVE = 8
+ SQLITE_SHM_LOCK = 2
+ SQLITE_SHM_NLOCK = 8
+ SQLITE_SHM_SHARED = 4
+ SQLITE_SHM_UNLOCK = 1
+ SQLITE_SORTER_PMASZ = 250
+ SQLITE_SOUNDEX = 1
+ SQLITE_SOURCE_ID = "2023-02-21 18:09:37 05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d"
+ SQLITE_SO_ASC = 0
+ SQLITE_SO_DESC = 1
+ SQLITE_SO_UNDEFINED = -1
+ SQLITE_STAT4_SAMPLES = 24
+ SQLITE_STATE_BUSY = 0x6d
+ SQLITE_STATE_CLOSED = 0xce
+ SQLITE_STATE_ERROR = 0xd5
+ SQLITE_STATE_OPEN = 0x76
+ SQLITE_STATE_SICK = 0xba
+ SQLITE_STATE_ZOMBIE = 0xa7
+ SQLITE_STATUS_MALLOC_COUNT = 9
+ SQLITE_STATUS_MALLOC_SIZE = 5
+ SQLITE_STATUS_MEMORY_USED = 0
+ SQLITE_STATUS_PAGECACHE_OVERFLOW = 2
+ SQLITE_STATUS_PAGECACHE_SIZE = 7
+ SQLITE_STATUS_PAGECACHE_USED = 1
+ SQLITE_STATUS_PARSER_STACK = 6
+ SQLITE_STATUS_SCRATCH_OVERFLOW = 4
+ SQLITE_STATUS_SCRATCH_SIZE = 8
+ SQLITE_STATUS_SCRATCH_USED = 3
+ SQLITE_STDCALL = 0
+ SQLITE_STMTJRNL_SPILL = 65536
+ SQLITE_STMTSTATUS_AUTOINDEX = 3
+ SQLITE_STMTSTATUS_FILTER_HIT = 8
+ SQLITE_STMTSTATUS_FILTER_MISS = 7
+ SQLITE_STMTSTATUS_FULLSCAN_STEP = 1
+ SQLITE_STMTSTATUS_MEMUSED = 99
+ SQLITE_STMTSTATUS_REPREPARE = 5
+ SQLITE_STMTSTATUS_RUN = 6
+ SQLITE_STMTSTATUS_SORT = 2
+ SQLITE_STMTSTATUS_VM_STEP = 4
+ SQLITE_SUBTYPE = 0x000100000
+ SQLITE_SYNC_DATAONLY = 0x00010
+ SQLITE_SYNC_FULL = 0x00003
+ SQLITE_SYNC_NORMAL = 0x00002
+ SQLITE_SYSAPI = 0
+ SQLITE_SYSTEM_MALLOC = 1
+ SQLITE_SeekScan = 0x00020000
+ SQLITE_ShortColNames = 0x00000040
+ SQLITE_SimplifyJoin = 0x00002000
+ SQLITE_SkipScan = 0x00004000
+ SQLITE_Stat4 = 0x00000800
+ SQLITE_TCLAPI = 0
+ SQLITE_TEMP_FILE_PREFIX = "etilqs_"
+ SQLITE_TEMP_STORE = 1
+ SQLITE_TESTCTRL_ALWAYS = 13
+ SQLITE_TESTCTRL_ASSERT = 12
+ SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10
+ SQLITE_TESTCTRL_BITVEC_TEST = 8
+ SQLITE_TESTCTRL_BYTEORDER = 22
+ SQLITE_TESTCTRL_EXPLAIN_STMT = 19
+ SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS = 29
+ SQLITE_TESTCTRL_FAULT_INSTALL = 9
+ SQLITE_TESTCTRL_FIRST = 5
+ SQLITE_TESTCTRL_IMPOSTER = 25
+ SQLITE_TESTCTRL_INTERNAL_FUNCTIONS = 17
+ SQLITE_TESTCTRL_ISINIT = 23
+ SQLITE_TESTCTRL_ISKEYWORD = 16
+ SQLITE_TESTCTRL_LAST = 33
+ SQLITE_TESTCTRL_LOCALTIME_FAULT = 18
+ SQLITE_TESTCTRL_LOGEST = 33
+ SQLITE_TESTCTRL_NEVER_CORRUPT = 20
+ SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD = 19
+ SQLITE_TESTCTRL_OPTIMIZATIONS = 15
+ SQLITE_TESTCTRL_PARSER_COVERAGE = 26
+ SQLITE_TESTCTRL_PENDING_BYTE = 11
+ SQLITE_TESTCTRL_PRNG_RESET = 7
+ SQLITE_TESTCTRL_PRNG_RESTORE = 6
+ SQLITE_TESTCTRL_PRNG_SAVE = 5
+ SQLITE_TESTCTRL_PRNG_SEED = 28
+ SQLITE_TESTCTRL_RESERVE = 14
+ SQLITE_TESTCTRL_RESULT_INTREAL = 27
+ SQLITE_TESTCTRL_SCRATCHMALLOC = 17
+ SQLITE_TESTCTRL_SEEK_COUNT = 30
+ SQLITE_TESTCTRL_SORTER_MMAP = 24
+ SQLITE_TESTCTRL_TRACEFLAGS = 31
+ SQLITE_TESTCTRL_TUNE = 32
+ SQLITE_TESTCTRL_VDBE_COVERAGE = 21
+ SQLITE_TEXT = 3
+ SQLITE_THREADSAFE = 1
+ SQLITE_TOKEN_KEYWORD = 0x2
+ SQLITE_TOKEN_QUOTED = 0x1
+ SQLITE_TOOBIG = 18
+ SQLITE_TRACE_CLOSE = 0x08
+ SQLITE_TRACE_LEGACY = 0x40
+ SQLITE_TRACE_NONLEGACY_MASK = 0x0f
+ SQLITE_TRACE_PROFILE = 0x02
+ SQLITE_TRACE_ROW = 0x04
+ SQLITE_TRACE_STMT = 0x01
+ SQLITE_TRACE_XPROFILE = 0x80
+ SQLITE_TRANSACTION = 22
+ SQLITE_TXN_NONE = 0
+ SQLITE_TXN_READ = 1
+ SQLITE_TXN_WRITE = 2
+ SQLITE_Transitive = 0x00000080
+ SQLITE_TriggerEQP = 0x01000000
+ SQLITE_TrustedSchema = 0x00000080
+ SQLITE_UPDATE = 23
+ SQLITE_USE_URI = 0
+ SQLITE_UTF16 = 4
+ SQLITE_UTF16BE = 3
+ SQLITE_UTF16LE = 2
+ SQLITE_UTF16NATIVE = 2
+ SQLITE_UTF16_ALIGNED = 8
+ SQLITE_UTF8 = 1
+ SQLITE_VDBEINT_H = 0
+ SQLITE_VDBE_H = 0
+ SQLITE_VERSION = "3.41.0"
+ SQLITE_VERSION_NUMBER = 3041000
+ SQLITE_VTABRISK_High = 2
+ SQLITE_VTABRISK_Low = 0
+ SQLITE_VTABRISK_Normal = 1
+ SQLITE_VTAB_CONSTRAINT_SUPPORT = 1
+ SQLITE_VTAB_DIRECTONLY = 3
+ SQLITE_VTAB_INNOCUOUS = 2
+ SQLITE_WAL_H = 0
+ SQLITE_WARNING = 28
+ SQLITE_WARNING_AUTOINDEX = 284
+ SQLITE_WHEREINT_H = 0
+ SQLITE_WIN32_DATA_DIRECTORY_TYPE = 1
+ SQLITE_WIN32_TEMP_DIRECTORY_TYPE = 2
+ SQLITE_WITHOUT_ZONEMALLOC = 1
+ SQLITE_WSD = 0
+ SQLITE_WindowFunc = 0x00000002
+ SQLITE_WriteSchema = 0x00000001
+ SRCHFS_MATCHDIRS = 0x00000004
+ SRCHFS_MATCHFILES = 0x00000008
+ SRCHFS_MATCHPARTIALNAMES = 0x00000002
+ SRCHFS_NEGATEPARAMS = 0x80000000
+ SRCHFS_SKIPINAPPROPRIATE = 0x00000080
+ SRCHFS_SKIPINVISIBLE = 0x00000020
+ SRCHFS_SKIPLINKS = 0x00000010
+ SRCHFS_SKIPPACKAGES = 0x00000040
+ SRCHFS_START = 0x00000001
+ SRCHFS_VALIDOPTIONSMASK = 0x800000FF
+ SRT_Coroutine = 13
+ SRT_Discard = 4
+ SRT_DistFifo = 5
+ SRT_DistQueue = 6
+ SRT_EphemTab = 12
+ SRT_Except = 2
+ SRT_Exists = 3
+ SRT_Fifo = 8
+ SRT_Mem = 10
+ SRT_Output = 9
+ SRT_Queue = 7
+ SRT_Set = 11
+ SRT_Table = 14
+ SRT_Union = 1
+ SRT_Upfrom = 15
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ STAT_GET_NDLT = 4
+ STAT_GET_NEQ = 2
+ STAT_GET_NLT = 3
+ STAT_GET_ROWID = 1
+ STAT_GET_STAT1 = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ SYNC_VOLUME_FULLSYNC = 0x01
+ SYNC_VOLUME_WAIT = 0x02
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ S_IREAD = 256
+ S_IRGRP = 0000040
+ S_IROTH = 0000004
+ S_IRUSR = 0000400
+ S_IRWXG = 0000070
+ S_IRWXO = 0000007
+ S_IRWXU = 0000700
+ S_ISGID = 0002000
+ S_ISTXT = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ TABLDISC = 3
+ TABTYP_NORM = 0
+ TABTYP_VIEW = 2
+ TABTYP_VTAB = 1
+ TARGET_ABI_USES_IOS_VALUES = 1
+ TARGET_CPU_68K = 0
+ TARGET_CPU_ALPHA = 0
+ TARGET_CPU_ARM = 0
+ TARGET_CPU_ARM64 = 1
+ TARGET_CPU_MIPS = 0
+ TARGET_CPU_PPC = 0
+ TARGET_CPU_PPC64 = 0
+ TARGET_CPU_SPARC = 0
+ TARGET_CPU_X86 = 0
+ TARGET_CPU_X86_64 = 0
+ TARGET_IPHONE_SIMULATOR = 0
+ TARGET_OS_DRIVERKIT = 0
+ TARGET_OS_EMBEDDED = 0
+ TARGET_OS_IOS = 0
+ TARGET_OS_IPHONE = 0
+ TARGET_OS_LINUX = 0
+ TARGET_OS_MAC = 1
+ TARGET_OS_MACCATALYST = 0
+ TARGET_OS_NANO = 0
+ TARGET_OS_OSX = 1
+ TARGET_OS_RTKIT = 0
+ TARGET_OS_SIMULATOR = 0
+ TARGET_OS_TV = 0
+ TARGET_OS_UIKITFORMAC = 0
+ TARGET_OS_UNIX = 0
+ TARGET_OS_WATCH = 0
+ TARGET_OS_WIN32 = 0
+ TARGET_OS_WINDOWS = 0
+ TARGET_RT_64_BIT = 1
+ TARGET_RT_BIG_ENDIAN = 0
+ TARGET_RT_LITTLE_ENDIAN = 1
+ TARGET_RT_MAC_CFM = 0
+ TARGET_RT_MAC_MACHO = 1
+ TERM_ANDINFO = 0x0020
+ TERM_CODED = 0x0004
+ TERM_COPIED = 0x0008
+ TERM_DYNAMIC = 0x0001
+ TERM_HEURTRUTH = 0x2000
+ TERM_HIGHTRUTH = 0x4000
+ TERM_IS = 0x0800
+ TERM_LIKE = 0x0400
+ TERM_LIKECOND = 0x0200
+ TERM_LIKEOPT = 0x0100
+ TERM_OK = 0x0040
+ TERM_ORINFO = 0x0010
+ TERM_SLICE = 0x8000
+ TERM_VARSELECT = 0x1000
+ TERM_VIRTUAL = 0x0002
+ TERM_VNULL = 0x0080
+ TF_Autoincrement = 0x00000008
+ TF_Ephemeral = 0x00004000
+ TF_Eponymous = 0x00008000
+ TF_HasGenerated = 0x00000060
+ TF_HasHidden = 0x00000002
+ TF_HasNotNull = 0x00000800
+ TF_HasPrimaryKey = 0x00000004
+ TF_HasStat1 = 0x00000010
+ TF_HasStat4 = 0x00002000
+ TF_HasStored = 0x00000040
+ TF_HasVirtual = 0x00000020
+ TF_NoVisibleRowid = 0x00000200
+ TF_OOOHidden = 0x00000400
+ TF_Readonly = 0x00000001
+ TF_Shadow = 0x00001000
+ TF_StatsUsed = 0x00000100
+ TF_Strict = 0x00010000
+ TF_WithoutRowid = 0x00000080
+ TIMER_END = 0
+ TIMER_START = 0
+ TIME_UTC = 1
+ TIOCM_CAR = 0100
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 128
+ TIOCM_RNG = 0200
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TK_ABORT = 27
+ TK_ACTION = 28
+ TK_ADD = 163
+ TK_AFTER = 29
+ TK_AGG_COLUMN = 169
+ TK_AGG_FUNCTION = 168
+ TK_ALL = 135
+ TK_ALTER = 162
+ TK_ALWAYS = 96
+ TK_ANALYZE = 30
+ TK_AND = 44
+ TK_ANY = 101
+ TK_AS = 24
+ TK_ASC = 31
+ TK_ASTERISK = 180
+ TK_ATTACH = 32
+ TK_AUTOINCR = 126
+ TK_BEFORE = 33
+ TK_BEGIN = 5
+ TK_BETWEEN = 48
+ TK_BITAND = 102
+ TK_BITNOT = 114
+ TK_BITOR = 103
+ TK_BLOB = 154
+ TK_BY = 34
+ TK_CASCADE = 35
+ TK_CASE = 157
+ TK_CAST = 36
+ TK_CHECK = 124
+ TK_COLLATE = 113
+ TK_COLUMN = 167
+ TK_COLUMNKW = 60
+ TK_COMMA = 25
+ TK_COMMIT = 10
+ TK_CONCAT = 111
+ TK_CONFLICT = 37
+ TK_CONSTRAINT = 119
+ TK_CREATE = 17
+ TK_CTIME_KW = 100
+ TK_CURRENT = 85
+ TK_DATABASE = 38
+ TK_DEFAULT = 120
+ TK_DEFERRABLE = 131
+ TK_DEFERRED = 7
+ TK_DELETE = 128
+ TK_DESC = 39
+ TK_DETACH = 40
+ TK_DISTINCT = 140
+ TK_DO = 61
+ TK_DOT = 141
+ TK_DROP = 133
+ TK_EACH = 41
+ TK_ELSE = 160
+ TK_END = 11
+ TK_EQ = 53
+ TK_ERROR = 182
+ TK_ESCAPE = 58
+ TK_EXCEPT = 136
+ TK_EXCLUDE = 91
+ TK_EXCLUSIVE = 9
+ TK_EXISTS = 20
+ TK_EXPLAIN = 2
+ TK_FAIL = 42
+ TK_FILTER = 166
+ TK_FIRST = 83
+ TK_FLOAT = 153
+ TK_FOLLOWING = 86
+ TK_FOR = 62
+ TK_FOREIGN = 132
+ TK_FROM = 142
+ TK_FUNCTION = 172
+ TK_GE = 57
+ TK_GENERATED = 95
+ TK_GROUP = 146
+ TK_GROUPS = 92
+ TK_GT = 54
+ TK_HAVING = 147
+ TK_ID = 59
+ TK_IF = 18
+ TK_IF_NULL_ROW = 179
+ TK_IGNORE = 63
+ TK_ILLEGAL = 184
+ TK_IMMEDIATE = 8
+ TK_IN = 49
+ TK_INDEX = 161
+ TK_INDEXED = 116
+ TK_INITIALLY = 64
+ TK_INSERT = 127
+ TK_INSTEAD = 65
+ TK_INTEGER = 155
+ TK_INTERSECT = 137
+ TK_INTO = 151
+ TK_IS = 45
+ TK_ISNOT = 171
+ TK_ISNULL = 50
+ TK_JOIN = 143
+ TK_JOIN_KW = 118
+ TK_KEY = 67
+ TK_LAST = 84
+ TK_LE = 55
+ TK_LIKE_KW = 47
+ TK_LIMIT = 148
+ TK_LP = 22
+ TK_LSHIFT = 104
+ TK_LT = 56
+ TK_MATCH = 46
+ TK_MATERIALIZED = 97
+ TK_MINUS = 107
+ TK_NE = 52
+ TK_NO = 66
+ TK_NOT = 19
+ TK_NOTHING = 152
+ TK_NOTNULL = 51
+ TK_NULL = 121
+ TK_NULLS = 82
+ TK_OF = 68
+ TK_OFFSET = 69
+ TK_ON = 115
+ TK_OR = 43
+ TK_ORDER = 145
+ TK_OTHERS = 93
+ TK_OVER = 165
+ TK_PARTITION = 87
+ TK_PLAN = 4
+ TK_PLUS = 106
+ TK_PRAGMA = 70
+ TK_PRECEDING = 88
+ TK_PRIMARY = 122
+ TK_PTR = 112
+ TK_QUERY = 3
+ TK_RAISE = 71
+ TK_RANGE = 89
+ TK_RECURSIVE = 72
+ TK_REFERENCES = 125
+ TK_REGISTER = 176
+ TK_REINDEX = 98
+ TK_RELEASE = 14
+ TK_REM = 110
+ TK_RENAME = 99
+ TK_REPLACE = 73
+ TK_RESTRICT = 74
+ TK_RETURNING = 150
+ TK_ROLLBACK = 12
+ TK_ROW = 75
+ TK_ROWS = 76
+ TK_RP = 23
+ TK_RSHIFT = 105
+ TK_SAVEPOINT = 13
+ TK_SELECT = 138
+ TK_SELECT_COLUMN = 178
+ TK_SEMI = 1
+ TK_SET = 130
+ TK_SLASH = 109
+ TK_SPACE = 183
+ TK_SPAN = 181
+ TK_STAR = 108
+ TK_STRING = 117
+ TK_TABLE = 16
+ TK_TEMP = 21
+ TK_THEN = 159
+ TK_TIES = 94
+ TK_TO = 15
+ TK_TRANSACTION = 6
+ TK_TRIGGER = 77
+ TK_TRUEFALSE = 170
+ TK_TRUTH = 175
+ TK_UMINUS = 173
+ TK_UNBOUNDED = 90
+ TK_UNION = 134
+ TK_UNIQUE = 123
+ TK_UPDATE = 129
+ TK_UPLUS = 174
+ TK_USING = 144
+ TK_VACUUM = 78
+ TK_VALUES = 139
+ TK_VARIABLE = 156
+ TK_VECTOR = 177
+ TK_VIEW = 79
+ TK_VIRTUAL = 80
+ TK_WHEN = 158
+ TK_WHERE = 149
+ TK_WINDOW = 164
+ TK_WITH = 81
+ TK_WITHOUT = 26
+ TLOSS = 5
+ TMP_MAX = 308915776
+ TRACEBUF = 0
+ TRANS_NONE = 0
+ TRANS_READ = 1
+ TRANS_WRITE = 2
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ TREETRACE_ENABLED = 0
+ TRIGGER_AFTER = 2
+ TRIGGER_BEFORE = 1
+ TRUE = 1
+ TTYDISC = 0
+ UCHAR_MAX = 255
+ UF_APPEND = 0x00000004
+ UF_COMPRESSED = 0x00000020
+ UF_DATAVAULT = 0x00000080
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UF_TRACKED = 0x00000040
+ UID_MAX = 2147483647
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ UNDERFLOW = 4
+ UNIXFILE_DELETE = 0x20
+ UNIXFILE_DIRSYNC = 0x08
+ UNIXFILE_EXCL = 0x01
+ UNIXFILE_NOLOCK = 0x80
+ UNIXFILE_PERSIST_WAL = 0x04
+ UNIXFILE_PSOW = 0x10
+ UNIXFILE_RDONLY = 0x02
+ UNIXFILE_URI = 0x40
+ UNIX_SHM_BASE = 120
+ UNIX_SHM_DMS = 128
+ UNKNOWN_LOCK = 5
+ USER_FSIGNATURES_CDHASH_LEN = 20
+ USE_PREAD = 1
+ USHRT_MAX = 65535
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ VDBE_DISPLAY_P4 = 1
+ VDBE_HALT_STATE = 3
+ VDBE_INIT_STATE = 0
+ VDBE_READY_STATE = 1
+ VDBE_RUN_STATE = 2
+ VFS_CONF = 2
+ VFS_CTL_DISC = 0x00010008
+ VFS_CTL_NEWADDR = 0x00010004
+ VFS_CTL_NOLOCKS = 0x00010006
+ VFS_CTL_NSTATUS = 0x0001000A
+ VFS_CTL_OSTATFS = 0x00010001
+ VFS_CTL_QUERY = 0x00010003
+ VFS_CTL_SADDR = 0x00010007
+ VFS_CTL_SERVERINFO = 0x00010009
+ VFS_CTL_STATFS = 65547
+ VFS_CTL_STATFS64 = 0x0001000B
+ VFS_CTL_TIMEO = 0x00010005
+ VFS_CTL_UMOUNT = 0x00010002
+ VFS_CTL_VERS1 = 0x01
+ VFS_GENERIC = 0
+ VFS_MAXTYPENUM = 1
+ VFS_NUMMNTOPS = 1
+ VOL_CAPABILITIES_FORMAT = 0
+ VOL_CAPABILITIES_INTERFACES = 1
+ VOL_CAPABILITIES_RESERVED1 = 2
+ VOL_CAPABILITIES_RESERVED2 = 3
+ VOL_CAP_FMT_2TB_FILESIZE = 0x00000800
+ VOL_CAP_FMT_64BIT_OBJECT_IDS = 0x00020000
+ VOL_CAP_FMT_CASE_PRESERVING = 0x00000200
+ VOL_CAP_FMT_CASE_SENSITIVE = 0x00000100
+ VOL_CAP_FMT_DECMPFS_COMPRESSION = 0x00010000
+ VOL_CAP_FMT_DIR_HARDLINKS = 0x00040000
+ VOL_CAP_FMT_DOCUMENT_ID = 0x00080000
+ VOL_CAP_FMT_FAST_STATFS = 0x00000400
+ VOL_CAP_FMT_HARDLINKS = 0x00000004
+ VOL_CAP_FMT_HIDDEN_FILES = 0x00002000
+ VOL_CAP_FMT_JOURNAL = 0x00000008
+ VOL_CAP_FMT_JOURNAL_ACTIVE = 0x00000010
+ VOL_CAP_FMT_NO_IMMUTABLE_FILES = 0x00200000
+ VOL_CAP_FMT_NO_PERMISSIONS = 0x00400000
+ VOL_CAP_FMT_NO_ROOT_TIMES = 0x00000020
+ VOL_CAP_FMT_NO_VOLUME_SIZES = 0x00008000
+ VOL_CAP_FMT_OPENDENYMODES = 0x00001000
+ VOL_CAP_FMT_PATH_FROM_ID = 0x00004000
+ VOL_CAP_FMT_PERSISTENTOBJECTIDS = 0x00000001
+ VOL_CAP_FMT_SEALED = 0x02000000
+ VOL_CAP_FMT_SHARED_SPACE = 0x00800000
+ VOL_CAP_FMT_SPARSE_FILES = 0x00000040
+ VOL_CAP_FMT_SYMBOLICLINKS = 0x00000002
+ VOL_CAP_FMT_VOL_GROUPS = 0x01000000
+ VOL_CAP_FMT_WRITE_GENERATION_COUNT = 0x00100000
+ VOL_CAP_FMT_ZERO_RUNS = 0x00000080
+ VOL_CAP_INT_ADVLOCK = 0x00000100
+ VOL_CAP_INT_ALLOCATE = 0x00000040
+ VOL_CAP_INT_ATTRLIST = 0x00000002
+ VOL_CAP_INT_CLONE = 0x00010000
+ VOL_CAP_INT_COPYFILE = 0x00000020
+ VOL_CAP_INT_EXCHANGEDATA = 0x00000010
+ VOL_CAP_INT_EXTENDED_ATTR = 0x00004000
+ VOL_CAP_INT_EXTENDED_SECURITY = 0x00000400
+ VOL_CAP_INT_FLOCK = 0x00000200
+ VOL_CAP_INT_MANLOCK = 0x00001000
+ VOL_CAP_INT_NAMEDSTREAMS = 0x00002000
+ VOL_CAP_INT_NFSEXPORT = 0x00000004
+ VOL_CAP_INT_READDIRATTR = 0x00000008
+ VOL_CAP_INT_RENAME_EXCL = 0x00080000
+ VOL_CAP_INT_RENAME_OPENFAIL = 0x00100000
+ VOL_CAP_INT_RENAME_SWAP = 0x00040000
+ VOL_CAP_INT_SEARCHFS = 0x00000001
+ VOL_CAP_INT_SNAPSHOT = 0x00020000
+ VOL_CAP_INT_USERACCESS = 0x00000800
+ VOL_CAP_INT_VOL_RENAME = 0x00000080
+ VQ_ASSIST = 0x0040
+ VQ_DEAD = 0x0020
+ VQ_DESIRED_DISK = 0x4000
+ VQ_FLAG10000 = 0x10000
+ VQ_FREE_SPACE_CHANGE = 0x8000
+ VQ_LOWDISK = 0x0004
+ VQ_MOUNT = 0x0008
+ VQ_NEARLOWDISK = 0x2000
+ VQ_NEEDAUTH = 0x0002
+ VQ_NOTRESP = 0x0001
+ VQ_NOTRESPLOCK = 0x0080
+ VQ_QUOTA = 0x1000
+ VQ_SERVEREVENT = 0x0800
+ VQ_SYNCEVENT = 0x0400
+ VQ_UNMOUNT = 0x0010
+ VQ_UPDATE = 0x0100
+ VQ_VERYLOWDISK = 0x0200
+ WAIT_ANY = -1
+ WAIT_MYPGRP = 0
+ WAKEMON_DISABLE = 0x02
+ WAKEMON_ENABLE = 0x01
+ WAKEMON_GET_PARAMS = 0x04
+ WAKEMON_MAKE_FATAL = 0x10
+ WAKEMON_SET_DEFAULTS = 0x08
+ WALINDEX_MAX_VERSION = 3007000
+ WAL_ALL_BUT_WRITE = 1
+ WAL_CKPT_LOCK = 1
+ WAL_EXCLUSIVE_MODE = 1
+ WAL_FRAME_HDRSIZE = 24
+ WAL_HDRSIZE = 32
+ WAL_HEAPMEMORY_MODE = 2
+ WAL_LOCK_CKPT = 1
+ WAL_LOCK_READ0 = 3
+ WAL_LOCK_WRITE = 0
+ WAL_MAGIC = 0x377f0682
+ WAL_MAX_VERSION = 3007000
+ WAL_NORMAL_MODE = 0
+ WAL_NREADER = 5
+ WAL_RDONLY = 1
+ WAL_RDWR = 0
+ WAL_RECOVER_LOCK = 2
+ WAL_RETRY = -1
+ WAL_SAVEPOINT_NDATA = 4
+ WAL_SHM_RDONLY = 2
+ WAL_WRITE_LOCK = 0
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WCONTINUED = 0x00000010
+ WCOREFLAG = 0200
+ WEXITED = 0x00000004
+ WHERE_AGG_DISTINCT = 0x0400
+ WHERE_AUTO_INDEX = 0x00004000
+ WHERE_BIGNULL_SORT = 0x00080000
+ WHERE_BLOOMFILTER = 0x00400000
+ WHERE_BOTH_LIMIT = 0x00000030
+ WHERE_BTM_LIMIT = 0x00000020
+ WHERE_COLUMN_EQ = 0x00000001
+ WHERE_COLUMN_IN = 0x00000004
+ WHERE_COLUMN_NULL = 0x00000008
+ WHERE_COLUMN_RANGE = 0x00000002
+ WHERE_CONSTRAINT = 0x0000000f
+ WHERE_DISTINCTBY = 0x0080
+ WHERE_DISTINCT_NOOP = 0
+ WHERE_DISTINCT_ORDERED = 2
+ WHERE_DISTINCT_UNIQUE = 1
+ WHERE_DISTINCT_UNORDERED = 3
+ WHERE_DUPLICATES_OK = 0x0010
+ WHERE_EXPRIDX = 0x04000000
+ WHERE_GROUPBY = 0x0040
+ WHERE_IDX_ONLY = 0x00000040
+ WHERE_INDEXED = 0x00000200
+ WHERE_IN_ABLE = 0x00000800
+ WHERE_IN_EARLYOUT = 0x00040000
+ WHERE_IN_SEEKSCAN = 0x00100000
+ WHERE_IPK = 0x00000100
+ WHERE_MULTI_OR = 0x00002000
+ WHERE_OMIT_OFFSET = 0x01000000
+ WHERE_ONEPASS_DESIRED = 0x0004
+ WHERE_ONEPASS_MULTIROW = 0x0008
+ WHERE_ONEROW = 0x00001000
+ WHERE_ORDERBY_LIMIT = 0x0800
+ WHERE_ORDERBY_MAX = 0x0002
+ WHERE_ORDERBY_MIN = 0x0001
+ WHERE_ORDERBY_NORMAL = 0x0000
+ WHERE_OR_SUBCLAUSE = 0x0020
+ WHERE_PARTIALIDX = 0x00020000
+ WHERE_RIGHT_JOIN = 0x1000
+ WHERE_SELFCULL = 0x00800000
+ WHERE_SKIPSCAN = 0x00008000
+ WHERE_SORTBYGROUP = 0x0200
+ WHERE_TOP_LIMIT = 0x00000010
+ WHERE_TRANSCONS = 0x00200000
+ WHERE_UNQ_WANTED = 0x00010000
+ WHERE_USE_LIMIT = 0x4000
+ WHERE_VIEWSCAN = 0x02000000
+ WHERE_VIRTUALTABLE = 0x00000400
+ WHERE_WANT_DISTINCT = 0x0100
+ WINDOW_AGGINVERSE = 2
+ WINDOW_AGGSTEP = 3
+ WINDOW_ENDING_INT = 1
+ WINDOW_ENDING_NUM = 4
+ WINDOW_NTH_VALUE_INT = 2
+ WINDOW_RETURN_ROW = 1
+ WINDOW_STARTING_INT = 0
+ WINDOW_STARTING_NUM = 3
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ WNOHANG = 0x00000001
+ WNOWAIT = 0x00000020
+ WO_ALL = 0x3fff
+ WO_AND = 0x0400
+ WO_AUX = 0x0040
+ WO_EQ = 0x0002
+ WO_EQUIV = 0x0800
+ WO_GE = 32
+ WO_GT = 4
+ WO_IN = 0x0001
+ WO_IS = 0x0080
+ WO_ISNULL = 0x0100
+ WO_LE = 8
+ WO_LT = 16
+ WO_NOOP = 0x1000
+ WO_OR = 0x0200
+ WO_ROWVAL = 0x2000
+ WO_SINGLE = 0x01ff
+ WRC_Abort = 2
+ WRC_Continue = 0
+ WRC_Prune = 1
+ WRITE_LOCK = 2
+ WSTOPPED = 0x00000008
+ WUNTRACED = 0x00000002
+ W_OK = 2
+ XN_EXPR = -2
+ XN_ROWID = -1
+ XUCRED_VERSION = 0
+ X_OK = 1
+ X_TLOSS = 1.41484755040568800000e+16
+ YYFALLBACK = 1
+ YYNOCODE = 319
+ YYNOERRORRECOVERY = 1
+ YYNRULE = 405
+ YYNRULE_WITH_ACTION = 342
+ YYNSTATE = 576
+ YYNTOKEN = 185
+ YYPARSEFREENEVERNULL = 1
+ YYSTACKDEPTH = 100
+ YYWILDCARD = 101
+ YY_ACCEPT_ACTION = 1241
+ YY_ACTTAB_COUNT = 2098
+ YY_ERROR_ACTION = 1240
+ YY_MAX_REDUCE = 1647
+ YY_MAX_SHIFT = 575
+ YY_MAX_SHIFTREDUCE = 1239
+ YY_MIN_REDUCE = 1243
+ YY_MIN_SHIFTREDUCE = 835
+ YY_NO_ACTION = 1242
+ YY_REDUCE_COUNT = 408
+ YY_REDUCE_MAX = 1740
+ YY_REDUCE_MIN = -271
+ YY_SHIFT_COUNT = 575
+ YY_SHIFT_MAX = 2074
+ YY_SHIFT_MIN = 0
+ X_ACCESS_EXTENDED_MASK = 4193792
+ X_ALLOCA_H_ = 0
+ X_APPEND_OK = 8192
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM_PARAM_H_ = 0
+ X_ARM_SIGNAL_ = 1
+ X_ARM__ENDIAN_H_ = 0
+ X_ARM__PARAM_H_ = 0
+ X_ASSERT_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_PARAM_H_ = 0
+ X_BSD_MACHINE_SIGNAL_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__MCONTEXT_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_BSM_AUDIT_H = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CHOWN_OK = 2097152
+ X_CLOCK_T = 0
+ X_CS_DARWIN_USER_CACHE_DIR = 65538
+ X_CS_DARWIN_USER_DIR = 65536
+ X_CS_DARWIN_USER_TEMP_DIR = 65537
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 20
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 21
+ X_CS_XBS5_ILP32_OFF32_LIBS = 22
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 23
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 24
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 25
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 26
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 27
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 28
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 29
+ X_CS_XBS5_LP64_OFF64_LIBS = 30
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 31
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 32
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 33
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 34
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 35
+ X_CTERMID_H_ = 0
+ X_CT_RUNE_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DELETE_OK = 4096
+ X_DEV_T = 0
+ X_DLFCN_H_ = 0
+ X_ERRNO_T = 0
+ X_EXECUTE_OK = 2048
+ X_FD_SET = 0
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_FSID_T = 0
+ X_FSOBJ_ID_T = 0
+ X_FSTDIO = 0
+ X_FTS5INT_H = 0
+ X_FTS5_H = 0
+ X_FTSINT_H = 0
+ X_GCC_LIMITS_H_ = 0
+ X_GID_T = 0
+ X_GNU_SOURCE = 0
+ X_GRAFTDMG_UN_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_KAUTH_CRED_T = 0
+ X_KEY_T = 0
+ X_LARGEFILE_SOURCE = 1
+ X_LARGE_FILE = 1
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_ARM_BOOLEAN_H_ = 0
+ X_MACH_ARM_VM_TYPES_H_ = 0
+ X_MACH_ARM__STRUCTS_H_ = 0
+ X_MACH_BOOLEAN_H_ = 0
+ X_MACH_MACHINE_BOOLEAN_H_ = 0
+ X_MACH_MACHINE_VM_TYPES_H_ = 0
+ X_MACH_MACHINE__STRUCTS_H_ = 0
+ X_MACH_PORT_H_ = 0
+ X_MACH_PORT_T = 0
+ X_MALLOC_UNDERSCORE_MALLOC_H_ = 0
+ X_MCONTEXT_T = 0
+ X_MMAP = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_COMMON_H_ = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PC_2_SYMLINKS = 15
+ X_PC_ALLOC_SIZE_MIN = 16
+ X_PC_ASYNC_IO = 17
+ X_PC_AUTH_OPAQUE_NP = 14
+ X_PC_CASE_PRESERVING = 12
+ X_PC_CASE_SENSITIVE = 11
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_EXTENDED_SECURITY_NP = 13
+ X_PC_FILESIZEBITS = 18
+ X_PC_LINK_MAX = 1
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 27
+ X_PC_NAME_CHARS_MAX = 10
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 19
+ X_PC_REC_INCR_XFER_SIZE = 20
+ X_PC_REC_MAX_XFER_SIZE = 21
+ X_PC_REC_MIN_XFER_SIZE = 22
+ X_PC_REC_XFER_ALIGN = 23
+ X_PC_SYMLINK_MAX = 24
+ X_PC_SYNC_IO = 25
+ X_PC_VDISABLE = 9
+ X_PC_XATTR_SIZE_BITS = 26
+ X_PID_T = 0
+ X_POSIX2_CHAR_TERM = 200112
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = 200112
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = 200112
+ X_POSIX2_LOCALEDEF = 200112
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = 200112
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 200112
+ X_POSIX_ADVISORY_INFO = -1
+ X_POSIX_ASYNCHRONOUS_IO = -1
+ X_POSIX_BARRIERS = -1
+ X_POSIX_CHOWN_RESTRICTED = 200112
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = -1
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 200112
+ X_POSIX_JOB_CONTROL = 200112
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = -1
+ X_POSIX_MEMLOCK_RANGE = -1
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = -1
+ X_POSIX_MONOTONIC_CLOCK = -1
+ X_POSIX_NO_TRUNC = 200112
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = -1
+ X_POSIX_RAW_SOCKETS = -1
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = -1
+ X_POSIX_REGEXP = 200112
+ X_POSIX_SAVED_IDS = 200112
+ X_POSIX_SEMAPHORES = -1
+ X_POSIX_SHARED_MEMORY_OBJECTS = -1
+ X_POSIX_SHELL = 200112
+ X_POSIX_SPAWN = -1
+ X_POSIX_SPIN_LOCKS = -1
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = -1
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = -1
+ X_POSIX_THREAD_PRIO_INHERIT = -1
+ X_POSIX_THREAD_PRIO_PROTECT = -1
+ X_POSIX_THREAD_PROCESS_SHARED = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = -1
+ X_POSIX_TIMERS = -1
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = -1
+ X_POSIX_V6_ILP32_OFFBIG = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = 1
+ X_POSIX_V7_ILP32_OFF32 = -1
+ X_POSIX_V7_ILP32_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = 1
+ X_POSIX_VERSION = 200112
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_PTRDIFF_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RATTR_OK = 32768
+ X_READ_OK = 512
+ X_REXT_OK = 131072
+ X_RLIMIT_POSIX_FLAG = 0x1000
+ X_RMFILE_OK = 16384
+ X_RPERM_OK = 524288
+ X_RSIZE_T = 0
+ X_RUNE_T = 0
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 59
+ X_SC_2_PBS_ACCOUNTING = 60
+ X_SC_2_PBS_CHECKPOINT = 61
+ X_SC_2_PBS_LOCATE = 62
+ X_SC_2_PBS_MESSAGE = 63
+ X_SC_2_PBS_TRACK = 64
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 65
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 28
+ X_SC_ATEXIT_MAX = 107
+ X_SC_BARRIERS = 66
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 67
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUTIME = 68
+ X_SC_DELAYTIMER_MAX = 45
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FILE_LOCKING = 69
+ X_SC_FSYNC = 38
+ X_SC_GETGR_R_SIZE_MAX = 70
+ X_SC_GETPW_R_SIZE_MAX = 71
+ X_SC_HOST_NAME_MAX = 72
+ X_SC_IOV_MAX = 56
+ X_SC_IPV6 = 118
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 73
+ X_SC_MAPPED_FILES = 47
+ X_SC_MEMLOCK = 30
+ X_SC_MEMLOCK_RANGE = 31
+ X_SC_MEMORY_PROTECTION = 32
+ X_SC_MESSAGE_PASSING = 33
+ X_SC_MONOTONIC_CLOCK = 74
+ X_SC_MQ_OPEN_MAX = 46
+ X_SC_MQ_PRIO_MAX = 75
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 57
+ X_SC_NPROCESSORS_ONLN = 58
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 29
+ X_SC_PAGE_SIZE = 29
+ X_SC_PASS_MAX = 131
+ X_SC_PHYS_PAGES = 200
+ X_SC_PRIORITIZED_IO = 34
+ X_SC_PRIORITY_SCHEDULING = 35
+ X_SC_RAW_SOCKETS = 119
+ X_SC_READER_WRITER_LOCKS = 76
+ X_SC_REALTIME_SIGNALS = 36
+ X_SC_REGEXP = 77
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 48
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 37
+ X_SC_SEM_NSEMS_MAX = 49
+ X_SC_SEM_VALUE_MAX = 50
+ X_SC_SHARED_MEMORY_OBJECTS = 39
+ X_SC_SHELL = 78
+ X_SC_SIGQUEUE_MAX = 51
+ X_SC_SPAWN = 79
+ X_SC_SPIN_LOCKS = 80
+ X_SC_SPORADIC_SERVER = 81
+ X_SC_SS_REPL_MAX = 126
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 120
+ X_SC_SYNCHRONIZED_IO = 40
+ X_SC_THREADS = 96
+ X_SC_THREAD_ATTR_STACKADDR = 82
+ X_SC_THREAD_ATTR_STACKSIZE = 83
+ X_SC_THREAD_CPUTIME = 84
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85
+ X_SC_THREAD_KEYS_MAX = 86
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89
+ X_SC_THREAD_PRIO_INHERIT = 87
+ X_SC_THREAD_PRIO_PROTECT = 88
+ X_SC_THREAD_PROCESS_SHARED = 90
+ X_SC_THREAD_SAFE_FUNCTIONS = 91
+ X_SC_THREAD_SPORADIC_SERVER = 92
+ X_SC_THREAD_STACK_MIN = 93
+ X_SC_THREAD_THREADS_MAX = 94
+ X_SC_TIMEOUTS = 95
+ X_SC_TIMERS = 41
+ X_SC_TIMER_MAX = 52
+ X_SC_TRACE = 97
+ X_SC_TRACE_EVENT_FILTER = 98
+ X_SC_TRACE_EVENT_NAME_MAX = 127
+ X_SC_TRACE_INHERIT = 99
+ X_SC_TRACE_LOG = 100
+ X_SC_TRACE_NAME_MAX = 128
+ X_SC_TRACE_SYS_MAX = 129
+ X_SC_TRACE_USER_EVENT_MAX = 130
+ X_SC_TTY_NAME_MAX = 101
+ X_SC_TYPED_MEMORY_OBJECTS = 102
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 103
+ X_SC_V6_ILP32_OFFBIG = 104
+ X_SC_V6_LP64_OFF64 = 105
+ X_SC_V6_LPBIG_OFFBIG = 106
+ X_SC_VERSION = 8
+ X_SC_XBS5_ILP32_OFF32 = 122
+ X_SC_XBS5_ILP32_OFFBIG = 123
+ X_SC_XBS5_LP64_OFF64 = 124
+ X_SC_XBS5_LPBIG_OFFBIG = 125
+ X_SC_XOPEN_CRYPT = 108
+ X_SC_XOPEN_ENH_I18N = 109
+ X_SC_XOPEN_LEGACY = 110
+ X_SC_XOPEN_REALTIME = 111
+ X_SC_XOPEN_REALTIME_THREADS = 112
+ X_SC_XOPEN_SHM = 113
+ X_SC_XOPEN_STREAMS = 114
+ X_SC_XOPEN_UNIX = 115
+ X_SC_XOPEN_VERSION = 116
+ X_SC_XOPEN_XCU_VERSION = 121
+ X_SECURE__COMMON_H_ = 0
+ X_SECURE__STDIO_H_ = 0
+ X_SECURE__STRINGS_H_ = 0
+ X_SECURE__STRING_H_ = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SQLITE3RBU_H = 0
+ X_SQLITE3RTREE_H_ = 0
+ X_SQLITE_OS_H_ = 0
+ X_SSIZE_T = 0
+ X_STDIO_H_ = 0
+ X_STDLIB_H_ = 0
+ X_STRINGS_H_ = 0
+ X_STRING_H_ = 0
+ X_STRUCT_TIMEVAL64 = 0
+ X_SUSECONDS_T = 0
+ X_SYS_ATTR_H_ = 0
+ X_SYS_ERRNO_H_ = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS_FILE_H_ = 0
+ X_SYS_FILIO_H_ = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_IOCTL_H_ = 0
+ X_SYS_MMAN_H_ = 0
+ X_SYS_MOUNT_H_ = 0
+ X_SYS_PARAM_H_ = 0
+ X_SYS_QUEUE_H_ = 0
+ X_SYS_RESOURCE_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_SOCKIO_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_STDIO_H_ = 0
+ X_SYS_SYSLIMITS_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UCRED_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS_WAIT_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__SELECT_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINTPTR_T = 0
+ X_UNISTD_H_ = 0
+ X_USECONDS_T = 0
+ X_USE_FORTIFY_LEVEL = 2
+ X_UUID_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ X_V6_ILP32_OFF32 = -1
+ X_V6_ILP32_OFFBIG = -1
+ X_V6_LP64_OFF64 = 1
+ X_V6_LPBIG_OFFBIG = 1
+ X_VA_LIST = 0
+ X_VA_LIST_T = 0
+ X_WATTR_OK = 65536
+ X_WCHAR_T = 0
+ X_WEXT_OK = 262144
+ X_WPERM_OK = 1048576
+ X_WRITE_OK = 1024
+ X_WSTOPPED = 0177
+ X_XBS5_ILP32_OFF32 = -1
+ X_XBS5_ILP32_OFFBIG = -1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = 1
+ X_XOPEN_CRYPT = 1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 600
+ X_XOPEN_XCU_VERSION = 4
+ BBatch = 0
+ Deliberate_fall_through = 0
+ EtBUFSIZE = 70
+ EtCHARX = 8
+ EtDECIMAL = 16
+ EtDYNSTRING = 6
+ EtEXP = 2
+ EtFLOAT = 1
+ EtGENERIC = 3
+ EtINVALID = 17
+ EtORDINAL = 15
+ EtPERCENT = 7
+ EtPOINTER = 13
+ EtRADIX = 0
+ EtSIZE = 4
+ EtSQLESCAPE = 9
+ EtSQLESCAPE2 = 10
+ EtSQLESCAPE3 = 14
+ EtSRCITEM = 12
+ EtSTRING = 5
+ EtTOKEN = 11
+ False = 0
+ Fts5YYNFTS5TOKEN = 16
+ Fts5YYNOCODE = 27
+ Fts5YYNOERRORRECOVERY = 1
+ Fts5YYNRULE = 28
+ Fts5YYNRULE_WITH_ACTION = 28
+ Fts5YYNSTATE = 35
+ Fts5YYPARSEFREENOTNULL = 1
+ Fts5YYSTACKDEPTH = 100
+ Fts5YY_ACCEPT_ACTION = 81
+ Fts5YY_ACTTAB_COUNT = 105
+ Fts5YY_ERROR_ACTION = 80
+ Fts5YY_MAX_REDUCE = 110
+ Fts5YY_MAX_SHIFT = 34
+ Fts5YY_MAX_SHIFTREDUCE = 79
+ Fts5YY_MIN_REDUCE = 83
+ Fts5YY_MIN_SHIFTREDUCE = 52
+ Fts5YY_NO_ACTION = 82
+ Fts5YY_REDUCE_COUNT = 17
+ Fts5YY_REDUCE_MAX = 67
+ Fts5YY_REDUCE_MIN = -17
+ Fts5YY_SHIFT_COUNT = 34
+ Fts5YY_SHIFT_MAX = 93
+ Fts5YY_SHIFT_MIN = 0
+ Sqlite3Fts5ParserCTX_FETCH = 0
+ Sqlite3Fts5ParserCTX_PARAM = 0
+ Sqlite3Fts5ParserCTX_PDECL = 0
+ Sqlite3Fts5ParserCTX_SDECL = 0
+ Sqlite3Fts5ParserCTX_STORE = 0
+ Sqlite3ParserARG_FETCH = 0
+ Sqlite3ParserARG_PARAM = 0
+ Sqlite3ParserARG_PDECL = 0
+ Sqlite3ParserARG_SDECL = 0
+ Sqlite3ParserARG_STORE = 0
+ Sqlite3Parser_ENGINEALWAYSONSTACK = 1
+ TkCREATE = 4
+ TkEND = 7
+ TkEXPLAIN = 3
+ TkOTHER = 2
+ TkSEMI = 0
+ TkTEMP = 5
+ TkTRIGGER = 6
+ TkWS = 1
+ True = 1
+ WsdAutoextInit = 0
+ WsdHooksInit = 0
+ WsdStatInit = 0
+)
+
+const (
+ KGUARD_EXC_DESTROY = 1
+ KGUARD_EXC_MOD_REFS = 2
+ KGUARD_EXC_INVALID_OPTIONS = 3
+ KGUARD_EXC_SET_CONTEXT = 4
+ KGUARD_EXC_UNGUARDED = 8
+ KGUARD_EXC_INCORRECT_GUARD = 16
+ KGUARD_EXC_IMMOVABLE = 32
+ KGUARD_EXC_STRICT_REPLY = 64
+ KGUARD_EXC_MSG_FILTERED = 128
+
+ KGUARD_EXC_INVALID_RIGHT = 256
+ KGUARD_EXC_INVALID_NAME = 512
+ KGUARD_EXC_INVALID_VALUE = 1024
+ KGUARD_EXC_INVALID_ARGUMENT = 2048
+ KGUARD_EXC_RIGHT_EXISTS = 4096
+ KGUARD_EXC_KERN_NO_SPACE = 8192
+ KGUARD_EXC_KERN_FAILURE = 16384
+ KGUARD_EXC_KERN_RESOURCE = 32768
+ KGUARD_EXC_SEND_INVALID_REPLY = 65536
+ KGUARD_EXC_SEND_INVALID_VOUCHER = 131072
+ KGUARD_EXC_SEND_INVALID_RIGHT = 262144
+ KGUARD_EXC_RCV_INVALID_NAME = 524288
+
+ KGUARD_EXC_RCV_GUARDED_DESC = 1048576
+ KGUARD_EXC_MOD_REFS_NON_FATAL = 2097152
+ KGUARD_EXC_IMMOVABLE_NON_FATAL = 4194304
+ KGUARD_EXC_REQUIRE_REPLY_PORT_SEMANTICS = 8388608
+)
+
+const (
+ FILESEC_OWNER = 1
+ FILESEC_GROUP = 2
+ FILESEC_UUID = 3
+ FILESEC_MODE = 4
+ FILESEC_ACL = 5
+ FILESEC_GRPUUID = 6
+
+ FILESEC_ACL_RAW = 100
+ FILESEC_ACL_ALLOCSIZE = 101
+)
+const (
+ GRAFTDMG_CRYPTEX_BOOT = 1
+ GRAFTDMG_CRYPTEX_PREBOOT = 2
+ GRAFTDMG_CRYPTEX_DOWNLEVEL = 3
+)
+
+const (
+ P_ALL = 0
+ P_PID = 1
+ P_PGID = 2
+)
+
+const (
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+type Ptrdiff_t = int64
+
+type Size_t = uint64
+
+type Wchar_t = int32
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+}
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+}
+
+type X__builtin_va_list = uintptr
+type X__float128 = float64
+
+var X__darwin_check_fd_set_overflow uintptr
+
+type Va_list = X__builtin_va_list
+
+type X__gnuc_va_list = X__builtin_va_list
+
+// CAPI3REF: Run-Time Library Version Numbers
+// KEYWORDS: sqlite3_version sqlite3_sourceid
+//
+// These interfaces provide the same information as the [SQLITE_VERSION],
+// [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
+// but are associated with the library instead of the header file. ^(Cautious
+// programmers might include assert() statements in their application to
+// verify that values returned by these interfaces match the macros in
+// the header, and thus ensure that the application is
+// compiled with matching library and header files.
+//
+// assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER );
+// assert( strncmp(sqlite3_sourceid(),SQLITE_SOURCE_ID,80)==0 );
+// assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
+//
+// ^The sqlite3_version[] string constant contains the text of [SQLITE_VERSION]
+// macro. ^The sqlite3_libversion() function returns a pointer to the
+// to the sqlite3_version[] string constant. The sqlite3_libversion()
+// function is provided for use in DLLs since DLL users usually do not have
+// direct access to string constants within the DLL. ^The
+// sqlite3_libversion_number() function returns an integer equal to
+// [SQLITE_VERSION_NUMBER]. ^(The sqlite3_sourceid() function returns
+// a pointer to a string constant whose value is the same as the
+// [SQLITE_SOURCE_ID] C preprocessor macro. Except if SQLite is built
+// using an edited copy of [the amalgamation], then the last four characters
+// of the hash might be different from [SQLITE_SOURCE_ID].)^
+//
+// See also: [sqlite_version()] and [sqlite_source_id()].
+var Xsqlite3_version = *(*[7]int8)(unsafe.Pointer(ts))
+
+type sqlite3 = struct {
+ FpVfs uintptr
+ FpVdbe uintptr
+ FpDfltColl uintptr
+ Fmutex uintptr
+ FaDb uintptr
+ FnDb int32
+ FmDbFlags U32
+ Fflags U64
+ FlastRowid I64
+ FszMmap I64
+ FnSchemaLock U32
+ FopenFlags uint32
+ FerrCode int32
+ FerrByteOffset int32
+ FerrMask int32
+ FiSysErrno int32
+ FdbOptFlags U32
+ Fenc U8
+ FautoCommit U8
+ Ftemp_store U8
+ FmallocFailed U8
+ FbBenignMalloc U8
+ FdfltLockMode U8
+ FnextAutovac int8
+ FsuppressErr U8
+ FvtabOnConflict U8
+ FisTransactionSavepoint U8
+ FmTrace U8
+ FnoSharedCache U8
+ FnSqlExec U8
+ FeOpenState U8
+ F__ccgo_pad1 [2]byte
+ FnextPagesize int32
+ FnChange I64
+ FnTotalChange I64
+ FaLimit [12]int32
+ FnMaxSorterMmap int32
+ F__ccgo_pad2 [4]byte
+ Finit struct {
+ FnewTnum Pgno
+ FiDb U8
+ Fbusy U8
+ F__ccgo_pad1 [2]byte
+ ForphanTrigger uint8
+ F__ccgo_pad2 [7]byte
+ FazInit uintptr
+ }
+ FnVdbeActive int32
+ FnVdbeRead int32
+ FnVdbeWrite int32
+ FnVdbeExec int32
+ FnVDestroy int32
+ FnExtension int32
+ FaExtension uintptr
+ Ftrace struct{ FxLegacy uintptr }
+ FpTraceArg uintptr
+ FxProfile uintptr
+ FpProfileArg uintptr
+ FpCommitArg uintptr
+ FxCommitCallback uintptr
+ FpRollbackArg uintptr
+ FxRollbackCallback uintptr
+ FpUpdateArg uintptr
+ FxUpdateCallback uintptr
+ FpAutovacPagesArg uintptr
+ FxAutovacDestr uintptr
+ FxAutovacPages uintptr
+ FpParse uintptr
+ FpPreUpdateArg uintptr
+ FxPreUpdateCallback uintptr
+ FpPreUpdate uintptr
+ FxWalCallback uintptr
+ FpWalArg uintptr
+ FxCollNeeded uintptr
+ FxCollNeeded16 uintptr
+ FpCollNeededArg uintptr
+ FpErr uintptr
+ Fu1 struct {
+ F__ccgo_pad1 [0]uint64
+ FisInterrupted int32
+ F__ccgo_pad2 [4]byte
+ }
+ Flookaside Lookaside
+ FxAuth Sqlite3_xauth
+ FpAuthArg uintptr
+ FxProgress uintptr
+ FpProgressArg uintptr
+ FnProgressOps uint32
+ FnVTrans int32
+ FaModule Hash
+ FpVtabCtx uintptr
+ FaVTrans uintptr
+ FpDisconnect uintptr
+ FaFunc Hash
+ FaCollSeq Hash
+ FbusyHandler BusyHandler
+ FaDbStatic [2]Db
+ FpSavepoint uintptr
+ FnAnalysisLimit int32
+ FbusyTimeout int32
+ FnSavepoint int32
+ FnStatement int32
+ FnDeferredCons I64
+ FnDeferredImmCons I64
+ FpnBytesFreed uintptr
+ FpBlockingConnection uintptr
+ FpUnlockConnection uintptr
+ FpUnlockArg uintptr
+ FxUnlockNotify uintptr
+ FpNextBlocked uintptr
+}
+
+// CAPI3REF: Database Connection Handle
+// KEYWORDS: {database connection} {database connections}
+//
+// Each open SQLite database is represented by a pointer to an instance of
+// the opaque structure named "sqlite3". It is useful to think of an sqlite3
+// pointer as an object. The [sqlite3_open()], [sqlite3_open16()], and
+// [sqlite3_open_v2()] interfaces are its constructors, and [sqlite3_close()]
+// and [sqlite3_close_v2()] are its destructors. There are many other
+// interfaces (such as
+// [sqlite3_prepare_v2()], [sqlite3_create_function()], and
+// [sqlite3_busy_timeout()] to name but three) that are methods on an
+// sqlite3 object.
+type Sqlite3 = sqlite3
+
+// CAPI3REF: 64-Bit Integer Types
+// KEYWORDS: sqlite_int64 sqlite_uint64
+//
+// Because there is no cross-platform way to specify 64-bit integer types
+// SQLite includes typedefs for 64-bit signed and unsigned integers.
+//
+// The sqlite3_int64 and sqlite3_uint64 are the preferred type definitions.
+// The sqlite_int64 and sqlite_uint64 types are supported for backwards
+// compatibility only.
+//
+// ^The sqlite3_int64 and sqlite_int64 types can store integer values
+// between -9223372036854775808 and +9223372036854775807 inclusive. ^The
+// sqlite3_uint64 and sqlite_uint64 types can store integer values
+// between 0 and +18446744073709551615 inclusive.
+type Sqlite_int64 = int64
+type Sqlite_uint64 = uint64
+type Sqlite3_int64 = Sqlite_int64
+type Sqlite3_uint64 = Sqlite_uint64
+
+// The type for a callback function.
+// This is legacy and deprecated. It is included for historical
+// compatibility and is not documented.
+type Sqlite3_callback = uintptr
+
+type sqlite3_file = struct{ FpMethods uintptr }
+
+// CAPI3REF: OS Interface Open File Handle
+//
+// An [sqlite3_file] object represents an open file in the
+// [sqlite3_vfs | OS interface layer]. Individual OS interface
+// implementations will
+// want to subclass this object by appending additional fields
+// for their own use. The pMethods entry is a pointer to an
+// [sqlite3_io_methods] object that defines methods for performing
+// I/O operations on the open file.
+type Sqlite3_file = sqlite3_file
+type sqlite3_io_methods = struct {
+ FiVersion int32
+ F__ccgo_pad1 [4]byte
+ FxClose uintptr
+ FxRead uintptr
+ FxWrite uintptr
+ FxTruncate uintptr
+ FxSync uintptr
+ FxFileSize uintptr
+ FxLock uintptr
+ FxUnlock uintptr
+ FxCheckReservedLock uintptr
+ FxFileControl uintptr
+ FxSectorSize uintptr
+ FxDeviceCharacteristics uintptr
+ FxShmMap uintptr
+ FxShmLock uintptr
+ FxShmBarrier uintptr
+ FxShmUnmap uintptr
+ FxFetch uintptr
+ FxUnfetch uintptr
+}
+
+// CAPI3REF: OS Interface File Virtual Methods Object
+//
+// Every file opened by the [sqlite3_vfs.xOpen] method populates an
+// [sqlite3_file] object (or, more commonly, a subclass of the
+// [sqlite3_file] object) with a pointer to an instance of this object.
+// This object defines the methods used to perform various operations
+// against the open file represented by the [sqlite3_file] object.
+//
+// If the [sqlite3_vfs.xOpen] method sets the sqlite3_file.pMethods element
+// to a non-NULL pointer, then the sqlite3_io_methods.xClose method
+// may be invoked even if the [sqlite3_vfs.xOpen] reported that it failed. The
+// only way to prevent a call to xClose following a failed [sqlite3_vfs.xOpen]
+// is for the [sqlite3_vfs.xOpen] to set the sqlite3_file.pMethods element
+// to NULL.
+//
+// The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or
+// [SQLITE_SYNC_FULL]. The first choice is the normal fsync().
+// The second choice is a Mac OS X style fullsync. The [SQLITE_SYNC_DATAONLY]
+// flag may be ORed in to indicate that only the data of the file
+// and not its inode needs to be synced.
+//
+// The integer values to xLock() and xUnlock() are one of
+// <ul>
+// <li> [SQLITE_LOCK_NONE],
+// <li> [SQLITE_LOCK_SHARED],
+// <li> [SQLITE_LOCK_RESERVED],
+// <li> [SQLITE_LOCK_PENDING], or
+// <li> [SQLITE_LOCK_EXCLUSIVE].
+// </ul>
+// xLock() upgrades the database file lock. In other words, xLock() moves the
+// database file lock in the direction NONE toward EXCLUSIVE. The argument to
+// xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never
+// SQLITE_LOCK_NONE. If the database file lock is already at or above the
+// requested lock, then the call to xLock() is a no-op.
+// xUnlock() downgrades the database file lock to either SHARED or NONE.
+//
+// If the lock is already at or below the requested lock state, then the call
+//
+// to xUnlock() is a no-op.
+// The xCheckReservedLock() method checks whether any database connection,
+// either in this process or in some other process, is holding a RESERVED,
+// PENDING, or EXCLUSIVE lock on the file. It returns true
+// if such a lock exists and false otherwise.
+//
+// The xFileControl() method is a generic interface that allows custom
+// VFS implementations to directly control an open file using the
+// [sqlite3_file_control()] interface. The second "op" argument is an
+// integer opcode. The third argument is a generic pointer intended to
+// point to a structure that may contain arguments or space in which to
+// write return values. Potential uses for xFileControl() might be
+// functions to enable blocking locks with timeouts, to change the
+// locking strategy (for example to use dot-file locks), to inquire
+// about the status of a lock, or to break stale locks. The SQLite
+// core reserves all opcodes less than 100 for its own use.
+// A [file control opcodes | list of opcodes] less than 100 is available.
+// Applications that define a custom xFileControl method should use opcodes
+// greater than 100 to avoid conflicts. VFS implementations should
+// return [SQLITE_NOTFOUND] for file control opcodes that they do not
+// recognize.
+//
+// The xSectorSize() method returns the sector size of the
+// device that underlies the file. The sector size is the
+// minimum write that can be performed without disturbing
+// other bytes in the file. The xDeviceCharacteristics()
+// method returns a bit vector describing behaviors of the
+// underlying device:
+//
+// <ul>
+// <li> [SQLITE_IOCAP_ATOMIC]
+// <li> [SQLITE_IOCAP_ATOMIC512]
+// <li> [SQLITE_IOCAP_ATOMIC1K]
+// <li> [SQLITE_IOCAP_ATOMIC2K]
+// <li> [SQLITE_IOCAP_ATOMIC4K]
+// <li> [SQLITE_IOCAP_ATOMIC8K]
+// <li> [SQLITE_IOCAP_ATOMIC16K]
+// <li> [SQLITE_IOCAP_ATOMIC32K]
+// <li> [SQLITE_IOCAP_ATOMIC64K]
+// <li> [SQLITE_IOCAP_SAFE_APPEND]
+// <li> [SQLITE_IOCAP_SEQUENTIAL]
+// <li> [SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN]
+// <li> [SQLITE_IOCAP_POWERSAFE_OVERWRITE]
+// <li> [SQLITE_IOCAP_IMMUTABLE]
+// <li> [SQLITE_IOCAP_BATCH_ATOMIC]
+// </ul>
+//
+// The SQLITE_IOCAP_ATOMIC property means that all writes of
+// any size are atomic. The SQLITE_IOCAP_ATOMICnnn values
+// mean that writes of blocks that are nnn bytes in size and
+// are aligned to an address which is an integer multiple of
+// nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means
+// that when data is appended to a file, the data is appended
+// first then the size of the file is extended, never the other
+// way around. The SQLITE_IOCAP_SEQUENTIAL property means that
+// information is written to disk in the same order as calls
+// to xWrite().
+//
+// If xRead() returns SQLITE_IOERR_SHORT_READ it must also fill
+// in the unread portions of the buffer with zeros. A VFS that
+// fails to zero-fill short reads might seem to work. However,
+// failure to zero-fill short reads will eventually lead to
+// database corruption.
+type Sqlite3_io_methods = sqlite3_io_methods
+
+type sqlite3_api_routines = struct {
+ Faggregate_context uintptr
+ Faggregate_count uintptr
+ Fbind_blob uintptr
+ Fbind_double uintptr
+ Fbind_int uintptr
+ Fbind_int64 uintptr
+ Fbind_null uintptr
+ Fbind_parameter_count uintptr
+ Fbind_parameter_index uintptr
+ Fbind_parameter_name uintptr
+ Fbind_text uintptr
+ Fbind_text16 uintptr
+ Fbind_value uintptr
+ Fbusy_handler uintptr
+ Fbusy_timeout uintptr
+ Fchanges uintptr
+ Fclose uintptr
+ Fcollation_needed uintptr
+ Fcollation_needed16 uintptr
+ Fcolumn_blob uintptr
+ Fcolumn_bytes uintptr
+ Fcolumn_bytes16 uintptr
+ Fcolumn_count uintptr
+ Fcolumn_database_name uintptr
+ Fcolumn_database_name16 uintptr
+ Fcolumn_decltype uintptr
+ Fcolumn_decltype16 uintptr
+ Fcolumn_double uintptr
+ Fcolumn_int uintptr
+ Fcolumn_int64 uintptr
+ Fcolumn_name uintptr
+ Fcolumn_name16 uintptr
+ Fcolumn_origin_name uintptr
+ Fcolumn_origin_name16 uintptr
+ Fcolumn_table_name uintptr
+ Fcolumn_table_name16 uintptr
+ Fcolumn_text uintptr
+ Fcolumn_text16 uintptr
+ Fcolumn_type uintptr
+ Fcolumn_value uintptr
+ Fcommit_hook uintptr
+ Fcomplete uintptr
+ Fcomplete16 uintptr
+ Fcreate_collation uintptr
+ Fcreate_collation16 uintptr
+ Fcreate_function uintptr
+ Fcreate_function16 uintptr
+ Fcreate_module uintptr
+ Fdata_count uintptr
+ Fdb_handle uintptr
+ Fdeclare_vtab uintptr
+ Fenable_shared_cache uintptr
+ Ferrcode uintptr
+ Ferrmsg uintptr
+ Ferrmsg16 uintptr
+ Fexec uintptr
+ Fexpired uintptr
+ Ffinalize uintptr
+ Ffree uintptr
+ Ffree_table uintptr
+ Fget_autocommit uintptr
+ Fget_auxdata uintptr
+ Fget_table uintptr
+ Fglobal_recover uintptr
+ Finterruptx uintptr
+ Flast_insert_rowid uintptr
+ Flibversion uintptr
+ Flibversion_number uintptr
+ Fmalloc uintptr
+ Fmprintf uintptr
+ Fopen uintptr
+ Fopen16 uintptr
+ Fprepare uintptr
+ Fprepare16 uintptr
+ Fprofile uintptr
+ Fprogress_handler uintptr
+ Frealloc uintptr
+ Freset uintptr
+ Fresult_blob uintptr
+ Fresult_double uintptr
+ Fresult_error uintptr
+ Fresult_error16 uintptr
+ Fresult_int uintptr
+ Fresult_int64 uintptr
+ Fresult_null uintptr
+ Fresult_text uintptr
+ Fresult_text16 uintptr
+ Fresult_text16be uintptr
+ Fresult_text16le uintptr
+ Fresult_value uintptr
+ Frollback_hook uintptr
+ Fset_authorizer uintptr
+ Fset_auxdata uintptr
+ Fxsnprintf uintptr
+ Fstep uintptr
+ Ftable_column_metadata uintptr
+ Fthread_cleanup uintptr
+ Ftotal_changes uintptr
+ Ftrace uintptr
+ Ftransfer_bindings uintptr
+ Fupdate_hook uintptr
+ Fuser_data uintptr
+ Fvalue_blob uintptr
+ Fvalue_bytes uintptr
+ Fvalue_bytes16 uintptr
+ Fvalue_double uintptr
+ Fvalue_int uintptr
+ Fvalue_int64 uintptr
+ Fvalue_numeric_type uintptr
+ Fvalue_text uintptr
+ Fvalue_text16 uintptr
+ Fvalue_text16be uintptr
+ Fvalue_text16le uintptr
+ Fvalue_type uintptr
+ Fvmprintf uintptr
+ Foverload_function uintptr
+ Fprepare_v2 uintptr
+ Fprepare16_v2 uintptr
+ Fclear_bindings uintptr
+ Fcreate_module_v2 uintptr
+ Fbind_zeroblob uintptr
+ Fblob_bytes uintptr
+ Fblob_close uintptr
+ Fblob_open uintptr
+ Fblob_read uintptr
+ Fblob_write uintptr
+ Fcreate_collation_v2 uintptr
+ Ffile_control uintptr
+ Fmemory_highwater uintptr
+ Fmemory_used uintptr
+ Fmutex_alloc uintptr
+ Fmutex_enter uintptr
+ Fmutex_free uintptr
+ Fmutex_leave uintptr
+ Fmutex_try uintptr
+ Fopen_v2 uintptr
+ Frelease_memory uintptr
+ Fresult_error_nomem uintptr
+ Fresult_error_toobig uintptr
+ Fsleep uintptr
+ Fsoft_heap_limit uintptr
+ Fvfs_find uintptr
+ Fvfs_register uintptr
+ Fvfs_unregister uintptr
+ Fxthreadsafe uintptr
+ Fresult_zeroblob uintptr
+ Fresult_error_code uintptr
+ Ftest_control uintptr
+ Frandomness uintptr
+ Fcontext_db_handle uintptr
+ Fextended_result_codes uintptr
+ Flimit uintptr
+ Fnext_stmt uintptr
+ Fsql uintptr
+ Fstatus uintptr
+ Fbackup_finish uintptr
+ Fbackup_init uintptr
+ Fbackup_pagecount uintptr
+ Fbackup_remaining uintptr
+ Fbackup_step uintptr
+ Fcompileoption_get uintptr
+ Fcompileoption_used uintptr
+ Fcreate_function_v2 uintptr
+ Fdb_config uintptr
+ Fdb_mutex uintptr
+ Fdb_status uintptr
+ Fextended_errcode uintptr
+ Flog uintptr
+ Fsoft_heap_limit64 uintptr
+ Fsourceid uintptr
+ Fstmt_status uintptr
+ Fstrnicmp uintptr
+ Funlock_notify uintptr
+ Fwal_autocheckpoint uintptr
+ Fwal_checkpoint uintptr
+ Fwal_hook uintptr
+ Fblob_reopen uintptr
+ Fvtab_config uintptr
+ Fvtab_on_conflict uintptr
+ Fclose_v2 uintptr
+ Fdb_filename uintptr
+ Fdb_readonly uintptr
+ Fdb_release_memory uintptr
+ Ferrstr uintptr
+ Fstmt_busy uintptr
+ Fstmt_readonly uintptr
+ Fstricmp uintptr
+ Furi_boolean uintptr
+ Furi_int64 uintptr
+ Furi_parameter uintptr
+ Fxvsnprintf uintptr
+ Fwal_checkpoint_v2 uintptr
+ Fauto_extension uintptr
+ Fbind_blob64 uintptr
+ Fbind_text64 uintptr
+ Fcancel_auto_extension uintptr
+ Fload_extension uintptr
+ Fmalloc64 uintptr
+ Fmsize uintptr
+ Frealloc64 uintptr
+ Freset_auto_extension uintptr
+ Fresult_blob64 uintptr
+ Fresult_text64 uintptr
+ Fstrglob uintptr
+ Fvalue_dup uintptr
+ Fvalue_free uintptr
+ Fresult_zeroblob64 uintptr
+ Fbind_zeroblob64 uintptr
+ Fvalue_subtype uintptr
+ Fresult_subtype uintptr
+ Fstatus64 uintptr
+ Fstrlike uintptr
+ Fdb_cacheflush uintptr
+ Fsystem_errno uintptr
+ Ftrace_v2 uintptr
+ Fexpanded_sql uintptr
+ Fset_last_insert_rowid uintptr
+ Fprepare_v3 uintptr
+ Fprepare16_v3 uintptr
+ Fbind_pointer uintptr
+ Fresult_pointer uintptr
+ Fvalue_pointer uintptr
+ Fvtab_nochange uintptr
+ Fvalue_nochange uintptr
+ Fvtab_collation uintptr
+ Fkeyword_count uintptr
+ Fkeyword_name uintptr
+ Fkeyword_check uintptr
+ Fstr_new uintptr
+ Fstr_finish uintptr
+ Fstr_appendf uintptr
+ Fstr_vappendf uintptr
+ Fstr_append uintptr
+ Fstr_appendall uintptr
+ Fstr_appendchar uintptr
+ Fstr_reset uintptr
+ Fstr_errcode uintptr
+ Fstr_length uintptr
+ Fstr_value uintptr
+ Fcreate_window_function uintptr
+ Fnormalized_sql uintptr
+ Fstmt_isexplain uintptr
+ Fvalue_frombind uintptr
+ Fdrop_modules uintptr
+ Fhard_heap_limit64 uintptr
+ Furi_key uintptr
+ Ffilename_database uintptr
+ Ffilename_journal uintptr
+ Ffilename_wal uintptr
+ Fcreate_filename uintptr
+ Ffree_filename uintptr
+ Fdatabase_file_object uintptr
+ Ftxn_state uintptr
+ Fchanges64 uintptr
+ Ftotal_changes64 uintptr
+ Fautovacuum_pages uintptr
+ Ferror_offset uintptr
+ Fvtab_rhs_value uintptr
+ Fvtab_distinct uintptr
+ Fvtab_in uintptr
+ Fvtab_in_first uintptr
+ Fvtab_in_next uintptr
+ Fdeserialize uintptr
+ Fserialize uintptr
+ Fdb_name uintptr
+ Fvalue_encoding uintptr
+ Fis_interrupted uintptr
+}
+
+// CAPI3REF: Loadable Extension Thunk
+//
+// A pointer to the opaque sqlite3_api_routines structure is passed as
+// the third parameter to entry points of [loadable extensions]. This
+// structure must be typedefed in order to work around compiler warnings
+// on some platforms.
+type Sqlite3_api_routines = sqlite3_api_routines
+
+// CAPI3REF: File Name
+//
+// Type [sqlite3_filename] is used by SQLite to pass filenames to the
+// xOpen method of a [VFS]. It may be cast to (const char*) and treated
+// as a normal, nul-terminated, UTF-8 buffer containing the filename, but
+// may also be passed to special APIs such as:
+//
+// <ul>
+// <li> sqlite3_filename_database()
+// <li> sqlite3_filename_journal()
+// <li> sqlite3_filename_wal()
+// <li> sqlite3_uri_parameter()
+// <li> sqlite3_uri_boolean()
+// <li> sqlite3_uri_int64()
+// <li> sqlite3_uri_key()
+// </ul>
+type Sqlite3_filename = uintptr
+
+type sqlite3_vfs = struct {
+ FiVersion int32
+ FszOsFile int32
+ FmxPathname int32
+ F__ccgo_pad1 [4]byte
+ FpNext uintptr
+ FzName uintptr
+ FpAppData uintptr
+ FxOpen uintptr
+ FxDelete uintptr
+ FxAccess uintptr
+ FxFullPathname uintptr
+ FxDlOpen uintptr
+ FxDlError uintptr
+ FxDlSym uintptr
+ FxDlClose uintptr
+ FxRandomness uintptr
+ FxSleep uintptr
+ FxCurrentTime uintptr
+ FxGetLastError uintptr
+ FxCurrentTimeInt64 uintptr
+ FxSetSystemCall uintptr
+ FxGetSystemCall uintptr
+ FxNextSystemCall uintptr
+}
+
+// CAPI3REF: OS Interface Object
+//
+// An instance of the sqlite3_vfs object defines the interface between
+// the SQLite core and the underlying operating system. The "vfs"
+// in the name of the object stands for "virtual file system". See
+// the [VFS | VFS documentation] for further information.
+//
+// The VFS interface is sometimes extended by adding new methods onto
+// the end. Each time such an extension occurs, the iVersion field
+// is incremented. The iVersion value started out as 1 in
+// SQLite [version 3.5.0] on [dateof:3.5.0], then increased to 2
+// with SQLite [version 3.7.0] on [dateof:3.7.0], and then increased
+// to 3 with SQLite [version 3.7.6] on [dateof:3.7.6]. Additional fields
+// may be appended to the sqlite3_vfs object and the iVersion value
+// may increase again in future versions of SQLite.
+// Note that due to an oversight, the structure
+// of the sqlite3_vfs object changed in the transition from
+// SQLite [version 3.5.9] to [version 3.6.0] on [dateof:3.6.0]
+// and yet the iVersion field was not increased.
+//
+// The szOsFile field is the size of the subclassed [sqlite3_file]
+// structure used by this VFS. mxPathname is the maximum length of
+// a pathname in this VFS.
+//
+// Registered sqlite3_vfs objects are kept on a linked list formed by
+// the pNext pointer. The [sqlite3_vfs_register()]
+// and [sqlite3_vfs_unregister()] interfaces manage this list
+// in a thread-safe way. The [sqlite3_vfs_find()] interface
+// searches the list. Neither the application code nor the VFS
+// implementation should use the pNext pointer.
+//
+// The pNext field is the only field in the sqlite3_vfs
+// structure that SQLite will ever modify. SQLite will only access
+// or modify this field while holding a particular static mutex.
+// The application should never modify anything within the sqlite3_vfs
+// object once the object has been registered.
+//
+// The zName field holds the name of the VFS module. The name must
+// be unique across all VFS modules.
+//
+// [[sqlite3_vfs.xOpen]]
+// ^SQLite guarantees that the zFilename parameter to xOpen
+// is either a NULL pointer or string obtained
+// from xFullPathname() with an optional suffix added.
+// ^If a suffix is added to the zFilename parameter, it will
+// consist of a single "-" character followed by no more than
+// 11 alphanumeric and/or "-" characters.
+// ^SQLite further guarantees that
+// the string will be valid and unchanged until xClose() is
+// called. Because of the previous sentence,
+// the [sqlite3_file] can safely store a pointer to the
+// filename if it needs to remember the filename for some reason.
+// If the zFilename parameter to xOpen is a NULL pointer then xOpen
+// must invent its own temporary name for the file. ^Whenever the
+// xFilename parameter is NULL it will also be the case that the
+// flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
+//
+// The flags argument to xOpen() includes all bits set in
+// the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()]
+// or [sqlite3_open16()] is used, then flags includes at least
+// [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE].
+// If xOpen() opens a file read-only then it sets *pOutFlags to
+// include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set.
+//
+// ^(SQLite will also add one of the following flags to the xOpen()
+// call, depending on the object being opened:
+//
+// <ul>
+// <li> [SQLITE_OPEN_MAIN_DB]
+// <li> [SQLITE_OPEN_MAIN_JOURNAL]
+// <li> [SQLITE_OPEN_TEMP_DB]
+// <li> [SQLITE_OPEN_TEMP_JOURNAL]
+// <li> [SQLITE_OPEN_TRANSIENT_DB]
+// <li> [SQLITE_OPEN_SUBJOURNAL]
+// <li> [SQLITE_OPEN_SUPER_JOURNAL]
+// <li> [SQLITE_OPEN_WAL]
+// </ul>)^
+//
+// The file I/O implementation can use the object type flags to
+// change the way it deals with files. For example, an application
+// that does not care about crash recovery or rollback might make
+// the open of a journal file a no-op. Writes to this journal would
+// also be no-ops, and any attempt to read the journal would return
+// SQLITE_IOERR. Or the implementation might recognize that a database
+// file will be doing page-aligned sector reads and writes in a random
+// order and set up its I/O subsystem accordingly.
+//
+// SQLite might also add one of the following flags to the xOpen method:
+//
+// <ul>
+// <li> [SQLITE_OPEN_DELETEONCLOSE]
+// <li> [SQLITE_OPEN_EXCLUSIVE]
+// </ul>
+//
+// The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be
+// deleted when it is closed. ^The [SQLITE_OPEN_DELETEONCLOSE]
+// will be set for TEMP databases and their journals, transient
+// databases, and subjournals.
+//
+// ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
+// with the [SQLITE_OPEN_CREATE] flag, which are both directly
+// analogous to the O_EXCL and O_CREAT flags of the POSIX open()
+// API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
+// SQLITE_OPEN_CREATE, is used to indicate that file should always
+// be created, and that it is an error if it already exists.
+// It is <i>not</i> used to indicate the file should be opened
+// for exclusive access.
+//
+// ^At least szOsFile bytes of memory are allocated by SQLite
+// to hold the [sqlite3_file] structure passed as the third
+// argument to xOpen. The xOpen method does not have to
+// allocate the structure; it should just fill it in. Note that
+// the xOpen method must set the sqlite3_file.pMethods to either
+// a valid [sqlite3_io_methods] object or to NULL. xOpen must do
+// this even if the open fails. SQLite expects that the sqlite3_file.pMethods
+// element will be valid after xOpen returns regardless of the success
+// or failure of the xOpen call.
+//
+// [[sqlite3_vfs.xAccess]]
+// ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS]
+// to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to
+// test whether a file is readable and writable, or [SQLITE_ACCESS_READ]
+// to test whether a file is at least readable. The SQLITE_ACCESS_READ
+// flag is never actually used and is not implemented in the built-in
+// VFSes of SQLite. The file is named by the second argument and can be a
+// directory. The xAccess method returns [SQLITE_OK] on success or some
+// non-zero error code if there is an I/O error or if the name of
+// the file given in the second argument is illegal. If SQLITE_OK
+// is returned, then non-zero or zero is written into *pResOut to indicate
+// whether or not the file is accessible.
+//
+// ^SQLite will always allocate at least mxPathname+1 bytes for the
+// output buffer xFullPathname. The exact size of the output buffer
+// is also passed as a parameter to both methods. If the output buffer
+// is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is
+// handled as a fatal error by SQLite, vfs implementations should endeavor
+// to prevent this by setting mxPathname to a sufficiently large value.
+//
+// The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64()
+// interfaces are not strictly a part of the filesystem, but they are
+// included in the VFS structure for completeness.
+// The xRandomness() function attempts to return nBytes bytes
+// of good-quality randomness into zOut. The return value is
+// the actual number of bytes of randomness obtained.
+// The xSleep() method causes the calling thread to sleep for at
+// least the number of microseconds given. ^The xCurrentTime()
+// method returns a Julian Day Number for the current date and time as
+// a floating point value.
+// ^The xCurrentTimeInt64() method returns, as an integer, the Julian
+// Day Number multiplied by 86400000 (the number of milliseconds in
+// a 24-hour day).
+// ^SQLite will use the xCurrentTimeInt64() method to get the current
+// date and time if that method is available (if iVersion is 2 or
+// greater and the function pointer is not NULL) and will fall back
+// to xCurrentTime() if xCurrentTimeInt64() is unavailable.
+//
+// ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces
+// are not used by the SQLite core. These optional interfaces are provided
+// by some VFSes to facilitate testing of the VFS code. By overriding
+// system calls with functions under its control, a test program can
+// simulate faults and error conditions that would otherwise be difficult
+// or impossible to induce. The set of system calls that can be overridden
+// varies from one VFS to another, and from one version of the same VFS to the
+// next. Applications that use these interfaces must be prepared for any
+// or all of these interfaces to be NULL or for their behavior to change
+// from one release to the next. Applications must not attempt to access
+// any of these methods if the iVersion of the VFS is less than 3.
+type Sqlite3_vfs = sqlite3_vfs
+type Sqlite3_syscall_ptr = uintptr
+
+type sqlite3_mem_methods = struct {
+ FxMalloc uintptr
+ FxFree uintptr
+ FxRealloc uintptr
+ FxSize uintptr
+ FxRoundup uintptr
+ FxInit uintptr
+ FxShutdown uintptr
+ FpAppData uintptr
+}
+
+// CAPI3REF: Memory Allocation Routines
+//
+// An instance of this object defines the interface between SQLite
+// and low-level memory allocation routines.
+//
+// This object is used in only one place in the SQLite interface.
+// A pointer to an instance of this object is the argument to
+// [sqlite3_config()] when the configuration option is
+// [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC].
+// By creating an instance of this object
+// and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC])
+// during configuration, an application can specify an alternative
+// memory allocation subsystem for SQLite to use for all of its
+// dynamic memory needs.
+//
+// Note that SQLite comes with several [built-in memory allocators]
+// that are perfectly adequate for the overwhelming majority of applications
+// and that this object is only useful to a tiny minority of applications
+// with specialized memory allocation requirements. This object is
+// also used during testing of SQLite in order to specify an alternative
+// memory allocator that simulates memory out-of-memory conditions in
+// order to verify that SQLite recovers gracefully from such
+// conditions.
+//
+// The xMalloc, xRealloc, and xFree methods must work like the
+// malloc(), realloc() and free() functions from the standard C library.
+// ^SQLite guarantees that the second argument to
+// xRealloc is always a value returned by a prior call to xRoundup.
+//
+// xSize should return the allocated size of a memory allocation
+// previously obtained from xMalloc or xRealloc. The allocated size
+// is always at least as big as the requested size but may be larger.
+//
+// The xRoundup method returns what would be the allocated size of
+// a memory allocation given a particular requested size. Most memory
+// allocators round up memory allocations at least to the next multiple
+// of 8. Some allocators round up to a larger multiple or to a power of 2.
+// Every memory allocation request coming in through [sqlite3_malloc()]
+// or [sqlite3_realloc()] first calls xRoundup. If xRoundup returns 0,
+// that causes the corresponding memory allocation to fail.
+//
+// The xInit method initializes the memory allocator. For example,
+// it might allocate any required mutexes or initialize internal data
+// structures. The xShutdown method is invoked (indirectly) by
+// [sqlite3_shutdown()] and should deallocate any resources acquired
+// by xInit. The pAppData pointer is used as the only parameter to
+// xInit and xShutdown.
+//
+// SQLite holds the [SQLITE_MUTEX_STATIC_MAIN] mutex when it invokes
+// the xInit method, so the xInit method need not be threadsafe. The
+// xShutdown method is only called from [sqlite3_shutdown()] so it does
+// not need to be threadsafe either. For all other methods, SQLite
+// holds the [SQLITE_MUTEX_STATIC_MEM] mutex as long as the
+// [SQLITE_CONFIG_MEMSTATUS] configuration option is turned on (which
+// it is by default) and so the methods are automatically serialized.
+// However, if [SQLITE_CONFIG_MEMSTATUS] is disabled, then the other
+// methods must be threadsafe or else make their own arrangements for
+// serialization.
+//
+// SQLite will never invoke xInit() more than once without an intervening
+// call to xShutdown().
+type Sqlite3_mem_methods = sqlite3_mem_methods
+
+type sqlite3_value = struct {
+ Fu struct{ Fr float64 }
+ Fz uintptr
+ Fn int32
+ Fflags U16
+ Fenc U8
+ FeSubtype U8
+ Fdb uintptr
+ FszMalloc int32
+ FuTemp U32
+ FzMalloc uintptr
+ FxDel uintptr
+}
+
+// CAPI3REF: Dynamically Typed Value Object
+// KEYWORDS: {protected sqlite3_value} {unprotected sqlite3_value}
+//
+// SQLite uses the sqlite3_value object to represent all values
+// that can be stored in a database table. SQLite uses dynamic typing
+// for the values it stores. ^Values stored in sqlite3_value objects
+// can be integers, floating point values, strings, BLOBs, or NULL.
+//
+// An sqlite3_value object may be either "protected" or "unprotected".
+// Some interfaces require a protected sqlite3_value. Other interfaces
+// will accept either a protected or an unprotected sqlite3_value.
+// Every interface that accepts sqlite3_value arguments specifies
+// whether or not it requires a protected sqlite3_value. The
+// [sqlite3_value_dup()] interface can be used to construct a new
+// protected sqlite3_value from an unprotected sqlite3_value.
+//
+// The terms "protected" and "unprotected" refer to whether or not
+// a mutex is held. An internal mutex is held for a protected
+// sqlite3_value object but no mutex is held for an unprotected
+// sqlite3_value object. If SQLite is compiled to be single-threaded
+// (with [SQLITE_THREADSAFE=0] and with [sqlite3_threadsafe()] returning 0)
+// or if SQLite is run in one of reduced mutex modes
+// [SQLITE_CONFIG_SINGLETHREAD] or [SQLITE_CONFIG_MULTITHREAD]
+// then there is no distinction between protected and unprotected
+// sqlite3_value objects and they can be used interchangeably. However,
+// for maximum code portability it is recommended that applications
+// still make the distinction between protected and unprotected
+// sqlite3_value objects even when not strictly required.
+//
+// ^The sqlite3_value objects that are passed as parameters into the
+// implementation of [application-defined SQL functions] are protected.
+// ^The sqlite3_value objects returned by [sqlite3_vtab_rhs_value()]
+// are protected.
+// ^The sqlite3_value object returned by
+// [sqlite3_column_value()] is unprotected.
+// Unprotected sqlite3_value objects may only be used as arguments
+// to [sqlite3_result_value()], [sqlite3_bind_value()], and
+// [sqlite3_value_dup()].
+// The [sqlite3_value_blob | sqlite3_value_type()] family of
+// interfaces require protected sqlite3_value objects.
+type Sqlite3_value = sqlite3_value
+
+type sqlite3_context = struct {
+ FpOut uintptr
+ FpFunc uintptr
+ FpMem uintptr
+ FpVdbe uintptr
+ FiOp int32
+ FisError int32
+ Fenc U8
+ FskipFlag U8
+ Fargc U8
+ F__ccgo_pad1 [5]byte
+ Fargv [1]uintptr
+}
+
+// CAPI3REF: SQL Function Context Object
+//
+// The context in which an SQL function executes is stored in an
+// sqlite3_context object. ^A pointer to an sqlite3_context object
+// is always first parameter to [application-defined SQL functions].
+// The application-defined SQL function implementation will pass this
+// pointer through into calls to [sqlite3_result_int | sqlite3_result()],
+// [sqlite3_aggregate_context()], [sqlite3_user_data()],
+// [sqlite3_context_db_handle()], [sqlite3_get_auxdata()],
+// and/or [sqlite3_set_auxdata()].
+type Sqlite3_context = sqlite3_context
+
+// CAPI3REF: Constants Defining Special Destructor Behavior
+//
+// These are special values for the destructor that is passed in as the
+// final argument to routines like [sqlite3_result_blob()]. ^If the destructor
+// argument is SQLITE_STATIC, it means that the content pointer is constant
+// and will never change. It does not need to be destroyed. ^The
+// SQLITE_TRANSIENT value means that the content will likely change in
+// the near future and that SQLite should make its own private copy of
+// the content before returning.
+//
+// The typedef is necessary to work around problems in certain
+// C++ compilers.
+type Sqlite3_destructor_type = uintptr
+
+type sqlite3_vtab = struct {
+ FpModule uintptr
+ FnRef int32
+ F__ccgo_pad1 [4]byte
+ FzErrMsg uintptr
+}
+
+// Structures used by the virtual table interface
+type Sqlite3_vtab = sqlite3_vtab
+type sqlite3_index_info = struct {
+ FnConstraint int32
+ F__ccgo_pad1 [4]byte
+ FaConstraint uintptr
+ FnOrderBy int32
+ F__ccgo_pad2 [4]byte
+ FaOrderBy uintptr
+ FaConstraintUsage uintptr
+ FidxNum int32
+ F__ccgo_pad3 [4]byte
+ FidxStr uintptr
+ FneedToFreeIdxStr int32
+ ForderByConsumed int32
+ FestimatedCost float64
+ FestimatedRows Sqlite3_int64
+ FidxFlags int32
+ F__ccgo_pad4 [4]byte
+ FcolUsed Sqlite3_uint64
+}
+
+type Sqlite3_index_info = sqlite3_index_info
+type sqlite3_vtab_cursor = struct{ FpVtab uintptr }
+
+type Sqlite3_vtab_cursor = sqlite3_vtab_cursor
+type sqlite3_module = struct {
+ FiVersion int32
+ F__ccgo_pad1 [4]byte
+ FxCreate uintptr
+ FxConnect uintptr
+ FxBestIndex uintptr
+ FxDisconnect uintptr
+ FxDestroy uintptr
+ FxOpen uintptr
+ FxClose uintptr
+ FxFilter uintptr
+ FxNext uintptr
+ FxEof uintptr
+ FxColumn uintptr
+ FxRowid uintptr
+ FxUpdate uintptr
+ FxBegin uintptr
+ FxSync uintptr
+ FxCommit uintptr
+ FxRollback uintptr
+ FxFindFunction uintptr
+ FxRename uintptr
+ FxSavepoint uintptr
+ FxRelease uintptr
+ FxRollbackTo uintptr
+ FxShadowName uintptr
+}
+
+type Sqlite3_module = sqlite3_module
+
+type sqlite3_index_constraint = struct {
+ FiColumn int32
+ Fop uint8
+ Fusable uint8
+ F__ccgo_pad1 [2]byte
+ FiTermOffset int32
+}
+
+type sqlite3_index_orderby = struct {
+ FiColumn int32
+ Fdesc uint8
+ F__ccgo_pad1 [3]byte
+}
+
+type sqlite3_index_constraint_usage = struct {
+ FargvIndex int32
+ Fomit uint8
+ F__ccgo_pad1 [3]byte
+}
+
+type sqlite3_mutex_methods = struct {
+ FxMutexInit uintptr
+ FxMutexEnd uintptr
+ FxMutexAlloc uintptr
+ FxMutexFree uintptr
+ FxMutexEnter uintptr
+ FxMutexTry uintptr
+ FxMutexLeave uintptr
+ FxMutexHeld uintptr
+ FxMutexNotheld uintptr
+}
+
+// CAPI3REF: Mutex Methods Object
+//
+// An instance of this structure defines the low-level routines
+// used to allocate and use mutexes.
+//
+// Usually, the default mutex implementations provided by SQLite are
+// sufficient, however the application has the option of substituting a custom
+// implementation for specialized deployments or systems for which SQLite
+// does not provide a suitable implementation. In this case, the application
+// creates and populates an instance of this structure to pass
+// to sqlite3_config() along with the [SQLITE_CONFIG_MUTEX] option.
+// Additionally, an instance of this structure can be used as an
+// output variable when querying the system for the current mutex
+// implementation, using the [SQLITE_CONFIG_GETMUTEX] option.
+//
+// ^The xMutexInit method defined by this structure is invoked as
+// part of system initialization by the sqlite3_initialize() function.
+// ^The xMutexInit routine is called by SQLite exactly once for each
+// effective call to [sqlite3_initialize()].
+//
+// ^The xMutexEnd method defined by this structure is invoked as
+// part of system shutdown by the sqlite3_shutdown() function. The
+// implementation of this method is expected to release all outstanding
+// resources obtained by the mutex methods implementation, especially
+// those obtained by the xMutexInit method. ^The xMutexEnd()
+// interface is invoked exactly once for each call to [sqlite3_shutdown()].
+//
+// ^(The remaining seven methods defined by this structure (xMutexAlloc,
+// xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and
+// xMutexNotheld) implement the following interfaces (respectively):
+//
+// <ul>
+//
+// <li> [sqlite3_mutex_alloc()] </li>
+// <li> [sqlite3_mutex_free()] </li>
+// <li> [sqlite3_mutex_enter()] </li>
+// <li> [sqlite3_mutex_try()] </li>
+// <li> [sqlite3_mutex_leave()] </li>
+// <li> [sqlite3_mutex_held()] </li>
+// <li> [sqlite3_mutex_notheld()] </li>
+//
+// </ul>)^
+//
+// The only difference is that the public sqlite3_XXX functions enumerated
+// above silently ignore any invocations that pass a NULL pointer instead
+// of a valid mutex handle. The implementations of the methods defined
+// by this structure are not required to handle this case. The results
+// of passing a NULL pointer instead of a valid mutex handle are undefined
+// (i.e. it is acceptable to provide an implementation that segfaults if
+// it is passed a NULL pointer).
+//
+// The xMutexInit() method must be threadsafe. It must be harmless to
+// invoke xMutexInit() multiple times within the same process and without
+// intervening calls to xMutexEnd(). Second and subsequent calls to
+// xMutexInit() must be no-ops.
+//
+// xMutexInit() must not use SQLite memory allocation ([sqlite3_malloc()]
+// and its associates). Similarly, xMutexAlloc() must not use SQLite memory
+// allocation for a static mutex. ^However xMutexAlloc() may use SQLite
+// memory allocation for a fast or recursive mutex.
+//
+// ^SQLite will invoke the xMutexEnd() method when [sqlite3_shutdown()] is
+// called, but only if the prior call to xMutexInit returned SQLITE_OK.
+// If xMutexInit fails in any way, it is expected to clean up after itself
+// prior to returning.
+type Sqlite3_mutex_methods = sqlite3_mutex_methods
+
+type sqlite3_str = struct {
+ Fdb uintptr
+ FzText uintptr
+ FnAlloc U32
+ FmxAlloc U32
+ FnChar U32
+ FaccError U8
+ FprintfFlags U8
+ F__ccgo_pad1 [2]byte
+}
+
+// CAPI3REF: Dynamic String Object
+// KEYWORDS: {dynamic string}
+//
+// An instance of the sqlite3_str object contains a dynamically-sized
+// string under construction.
+//
+// The lifecycle of an sqlite3_str object is as follows:
+// <ol>
+// <li> ^The sqlite3_str object is created using [sqlite3_str_new()].
+// <li> ^Text is appended to the sqlite3_str object using various
+// methods, such as [sqlite3_str_appendf()].
+// <li> ^The sqlite3_str object is destroyed and the string it created
+// is returned using the [sqlite3_str_finish()] interface.
+// </ol>
+type Sqlite3_str = sqlite3_str
+
+type sqlite3_pcache_page = struct {
+ FpBuf uintptr
+ FpExtra uintptr
+}
+
+// CAPI3REF: Custom Page Cache Object
+//
+// The sqlite3_pcache_page object represents a single page in the
+// page cache. The page cache will allocate instances of this
+// object. Various methods of the page cache use pointers to instances
+// of this object as parameters or as their return value.
+//
+// See [sqlite3_pcache_methods2] for additional information.
+type Sqlite3_pcache_page = sqlite3_pcache_page
+
+type sqlite3_pcache_methods2 = struct {
+ FiVersion int32
+ F__ccgo_pad1 [4]byte
+ FpArg uintptr
+ FxInit uintptr
+ FxShutdown uintptr
+ FxCreate uintptr
+ FxCachesize uintptr
+ FxPagecount uintptr
+ FxFetch uintptr
+ FxUnpin uintptr
+ FxRekey uintptr
+ FxTruncate uintptr
+ FxDestroy uintptr
+ FxShrink uintptr
+}
+
+// CAPI3REF: Application Defined Page Cache.
+// KEYWORDS: {page cache}
+//
+// ^(The [sqlite3_config]([SQLITE_CONFIG_PCACHE2], ...) interface can
+// register an alternative page cache implementation by passing in an
+// instance of the sqlite3_pcache_methods2 structure.)^
+// In many applications, most of the heap memory allocated by
+// SQLite is used for the page cache.
+// By implementing a
+// custom page cache using this API, an application can better control
+// the amount of memory consumed by SQLite, the way in which
+// that memory is allocated and released, and the policies used to
+// determine exactly which parts of a database file are cached and for
+// how long.
+//
+// The alternative page cache mechanism is an
+// extreme measure that is only needed by the most demanding applications.
+// The built-in page cache is recommended for most uses.
+//
+// ^(The contents of the sqlite3_pcache_methods2 structure are copied to an
+// internal buffer by SQLite within the call to [sqlite3_config]. Hence
+// the application may discard the parameter after the call to
+// [sqlite3_config()] returns.)^
+//
+// [[the xInit() page cache method]]
+// ^(The xInit() method is called once for each effective
+// call to [sqlite3_initialize()])^
+// (usually only once during the lifetime of the process). ^(The xInit()
+// method is passed a copy of the sqlite3_pcache_methods2.pArg value.)^
+// The intent of the xInit() method is to set up global data structures
+// required by the custom page cache implementation.
+// ^(If the xInit() method is NULL, then the
+// built-in default page cache is used instead of the application defined
+// page cache.)^
+//
+// [[the xShutdown() page cache method]]
+// ^The xShutdown() method is called by [sqlite3_shutdown()].
+// It can be used to clean up
+// any outstanding resources before process shutdown, if required.
+// ^The xShutdown() method may be NULL.
+//
+// ^SQLite automatically serializes calls to the xInit method,
+// so the xInit method need not be threadsafe. ^The
+// xShutdown method is only called from [sqlite3_shutdown()] so it does
+// not need to be threadsafe either. All other methods must be threadsafe
+// in multithreaded applications.
+//
+// ^SQLite will never invoke xInit() more than once without an intervening
+// call to xShutdown().
+//
+// [[the xCreate() page cache methods]]
+// ^SQLite invokes the xCreate() method to construct a new cache instance.
+// SQLite will typically create one cache instance for each open database file,
+// though this is not guaranteed. ^The
+// first parameter, szPage, is the size in bytes of the pages that must
+// be allocated by the cache. ^szPage will always a power of two. ^The
+// second parameter szExtra is a number of bytes of extra storage
+// associated with each page cache entry. ^The szExtra parameter will
+// a number less than 250. SQLite will use the
+// extra szExtra bytes on each page to store metadata about the underlying
+// database page on disk. The value passed into szExtra depends
+// on the SQLite version, the target platform, and how SQLite was compiled.
+// ^The third argument to xCreate(), bPurgeable, is true if the cache being
+// created will be used to cache database pages of a file stored on disk, or
+// false if it is used for an in-memory database. The cache implementation
+// does not have to do anything special based with the value of bPurgeable;
+// it is purely advisory. ^On a cache where bPurgeable is false, SQLite will
+// never invoke xUnpin() except to deliberately delete a page.
+// ^In other words, calls to xUnpin() on a cache with bPurgeable set to
+// false will always have the "discard" flag set to true.
+// ^Hence, a cache created with bPurgeable false will
+// never contain any unpinned pages.
+//
+// [[the xCachesize() page cache method]]
+// ^(The xCachesize() method may be called at any time by SQLite to set the
+// suggested maximum cache-size (number of pages stored by) the cache
+// instance passed as the first argument. This is the value configured using
+// the SQLite "[PRAGMA cache_size]" command.)^ As with the bPurgeable
+// parameter, the implementation is not required to do anything with this
+// value; it is advisory only.
+//
+// [[the xPagecount() page cache methods]]
+// The xPagecount() method must return the number of pages currently
+// stored in the cache, both pinned and unpinned.
+//
+// [[the xFetch() page cache methods]]
+// The xFetch() method locates a page in the cache and returns a pointer to
+// an sqlite3_pcache_page object associated with that page, or a NULL pointer.
+// The pBuf element of the returned sqlite3_pcache_page object will be a
+// pointer to a buffer of szPage bytes used to store the content of a
+// single database page. The pExtra element of sqlite3_pcache_page will be
+// a pointer to the szExtra bytes of extra storage that SQLite has requested
+// for each entry in the page cache.
+//
+// The page to be fetched is determined by the key. ^The minimum key value
+// is 1. After it has been retrieved using xFetch, the page is considered
+// to be "pinned".
+//
+// If the requested page is already in the page cache, then the page cache
+// implementation must return a pointer to the page buffer with its content
+// intact. If the requested page is not already in the cache, then the
+// cache implementation should use the value of the createFlag
+// parameter to help it determined what action to take:
+//
+// <table border=1 width=85% align=center>
+// <tr><th> createFlag <th> Behavior when page is not already in cache
+// <tr><td> 0 <td> Do not allocate a new page. Return NULL.
+// <tr><td> 1 <td> Allocate a new page if it easy and convenient to do so.
+//
+// Otherwise return NULL.
+//
+// <tr><td> 2 <td> Make every effort to allocate a new page. Only return
+//
+// NULL if allocating a new page is effectively impossible.
+//
+// </table>
+//
+// ^(SQLite will normally invoke xFetch() with a createFlag of 0 or 1. SQLite
+// will only use a createFlag of 2 after a prior call with a createFlag of 1
+// failed.)^ In between the xFetch() calls, SQLite may
+// attempt to unpin one or more cache pages by spilling the content of
+// pinned pages to disk and synching the operating system disk cache.
+//
+// [[the xUnpin() page cache method]]
+// ^xUnpin() is called by SQLite with a pointer to a currently pinned page
+// as its second argument. If the third parameter, discard, is non-zero,
+// then the page must be evicted from the cache.
+// ^If the discard parameter is
+// zero, then the page may be discarded or retained at the discretion of
+// page cache implementation. ^The page cache implementation
+// may choose to evict unpinned pages at any time.
+//
+// The cache must not perform any reference counting. A single
+// call to xUnpin() unpins the page regardless of the number of prior calls
+// to xFetch().
+//
+// [[the xRekey() page cache methods]]
+// The xRekey() method is used to change the key value associated with the
+// page passed as the second argument. If the cache
+// previously contains an entry associated with newKey, it must be
+// discarded. ^Any prior cache entry associated with newKey is guaranteed not
+// to be pinned.
+//
+// When SQLite calls the xTruncate() method, the cache must discard all
+// existing cache entries with page numbers (keys) greater than or equal
+// to the value of the iLimit parameter passed to xTruncate(). If any
+// of these pages are pinned, they are implicitly unpinned, meaning that
+// they can be safely discarded.
+//
+// [[the xDestroy() page cache method]]
+// ^The xDestroy() method is used to delete a cache allocated by xCreate().
+// All resources associated with the specified cache should be freed. ^After
+// calling the xDestroy() method, SQLite considers the [sqlite3_pcache*]
+// handle invalid, and will not use it with any other sqlite3_pcache_methods2
+// functions.
+//
+// [[the xShrink() page cache method]]
+// ^SQLite invokes the xShrink() method when it wants the page cache to
+// free up as much of heap memory as possible. The page cache implementation
+// is not obligated to free any memory, but well-behaved implementations should
+// do their best.
+type Sqlite3_pcache_methods2 = sqlite3_pcache_methods2
+
+type sqlite3_pcache_methods = struct {
+ FpArg uintptr
+ FxInit uintptr
+ FxShutdown uintptr
+ FxCreate uintptr
+ FxCachesize uintptr
+ FxPagecount uintptr
+ FxFetch uintptr
+ FxUnpin uintptr
+ FxRekey uintptr
+ FxTruncate uintptr
+ FxDestroy uintptr
+}
+
+// This is the obsolete pcache_methods object that has now been replaced
+// by sqlite3_pcache_methods2. This object is not used by SQLite. It is
+// retained in the header file for backwards compatibility only.
+type Sqlite3_pcache_methods = sqlite3_pcache_methods
+
+type sqlite3_backup = struct {
+ FpDestDb uintptr
+ FpDest uintptr
+ FiDestSchema U32
+ FbDestLocked int32
+ FiNext Pgno
+ F__ccgo_pad1 [4]byte
+ FpSrcDb uintptr
+ FpSrc uintptr
+ Frc int32
+ FnRemaining Pgno
+ FnPagecount Pgno
+ FisAttached int32
+ FpNext uintptr
+}
+
+// CAPI3REF: Online Backup Object
+//
+// The sqlite3_backup object records state information about an ongoing
+// online backup operation. ^The sqlite3_backup object is created by
+// a call to [sqlite3_backup_init()] and is destroyed by a call to
+// [sqlite3_backup_finish()].
+//
+// See Also: [Using the SQLite Online Backup API]
+type Sqlite3_backup = sqlite3_backup
+
+type sqlite3_snapshot = struct{ Fhidden [48]uint8 }
+
+// CAPI3REF: Database Snapshot
+// KEYWORDS: {snapshot} {sqlite3_snapshot}
+//
+// An instance of the snapshot object records the state of a [WAL mode]
+// database for some specific point in history.
+//
+// In [WAL mode], multiple [database connections] that are open on the
+// same database file can each be reading a different historical version
+// of the database file. When a [database connection] begins a read
+// transaction, that connection sees an unchanging copy of the database
+// as it existed for the point in time when the transaction first started.
+// Subsequent changes to the database from other connections are not seen
+// by the reader until a new read transaction is started.
+//
+// The sqlite3_snapshot object records state information about an historical
+// version of the database file so that it is possible to later open a new read
+// transaction that sees that historical version of the database rather than
+// the most recent version.
+type Sqlite3_snapshot = sqlite3_snapshot
+
+type sqlite3_rtree_geometry = struct {
+ FpContext uintptr
+ FnParam int32
+ F__ccgo_pad1 [4]byte
+ FaParam uintptr
+ FpUser uintptr
+ FxDelUser uintptr
+}
+
+type Sqlite3_rtree_geometry = sqlite3_rtree_geometry
+type sqlite3_rtree_query_info = struct {
+ FpContext uintptr
+ FnParam int32
+ F__ccgo_pad1 [4]byte
+ FaParam uintptr
+ FpUser uintptr
+ FxDelUser uintptr
+ FaCoord uintptr
+ FanQueue uintptr
+ FnCoord int32
+ FiLevel int32
+ FmxLevel int32
+ F__ccgo_pad2 [4]byte
+ FiRowid Sqlite3_int64
+ FrParentScore Sqlite3_rtree_dbl
+ FeParentWithin int32
+ FeWithin int32
+ FrScore Sqlite3_rtree_dbl
+ FapSqlParam uintptr
+}
+
+type Sqlite3_rtree_query_info = sqlite3_rtree_query_info
+
+// The double-precision datatype used by RTree depends on the
+// SQLITE_RTREE_INT_ONLY compile-time option.
+type Sqlite3_rtree_dbl = float64
+
+type sqlite3_session = struct {
+ Fdb uintptr
+ FzDb uintptr
+ FbEnableSize int32
+ FbEnable int32
+ FbIndirect int32
+ FbAutoAttach int32
+ Frc int32
+ F__ccgo_pad1 [4]byte
+ FpFilterCtx uintptr
+ FxTableFilter uintptr
+ FnMalloc I64
+ FnMaxChangesetSize I64
+ FpZeroBlob uintptr
+ FpNext uintptr
+ FpTable uintptr
+ Fhook SessionHook
+}
+
+// CAPI3REF: Session Object Handle
+//
+// An instance of this object is a [session] that can be used to
+// record changes to a database.
+type Sqlite3_session = sqlite3_session
+
+type sqlite3_changeset_iter = struct {
+ Fin SessionInput
+ Ftblhdr SessionBuffer
+ FbPatchset int32
+ FbInvert int32
+ FbSkipEmpty int32
+ Frc int32
+ FpConflict uintptr
+ FzTab uintptr
+ FnCol int32
+ Fop int32
+ FbIndirect int32
+ F__ccgo_pad1 [4]byte
+ FabPK uintptr
+ FapValue uintptr
+}
+
+// CAPI3REF: Changeset Iterator Handle
+//
+// An instance of this object acts as a cursor for iterating
+// over the elements of a [changeset] or [patchset].
+type Sqlite3_changeset_iter = sqlite3_changeset_iter
+
+type sqlite3_changegroup = struct {
+ Frc int32
+ FbPatch int32
+ FpList uintptr
+}
+
+// CAPI3REF: Changegroup Handle
+//
+// A changegroup is an object used to combine two or more
+// [changesets] or [patchsets]
+type Sqlite3_changegroup = sqlite3_changegroup
+
+type sqlite3_rebaser = struct{ Fgrp Sqlite3_changegroup }
+
+// CAPI3REF: Rebasing changesets
+// EXPERIMENTAL
+//
+// Suppose there is a site hosting a database in state S0. And that
+// modifications are made that move that database to state S1 and a
+// changeset recorded (the "local" changeset). Then, a changeset based
+// on S0 is received from another site (the "remote" changeset) and
+// applied to the database. The database is then in state
+// (S1+"remote"), where the exact state depends on any conflict
+// resolution decisions (OMIT or REPLACE) made while applying "remote".
+// Rebasing a changeset is to update it to take those conflict
+// resolution decisions into account, so that the same conflicts
+// do not have to be resolved elsewhere in the network.
+//
+// For example, if both the local and remote changesets contain an
+// INSERT of the same key on "CREATE TABLE t1(a PRIMARY KEY, b)":
+//
+// local: INSERT INTO t1 VALUES(1, 'v1');
+// remote: INSERT INTO t1 VALUES(1, 'v2');
+//
+// and the conflict resolution is REPLACE, then the INSERT change is
+// removed from the local changeset (it was overridden). Or, if the
+// conflict resolution was "OMIT", then the local changeset is modified
+// to instead contain:
+//
+// UPDATE t1 SET b = 'v2' WHERE a=1;
+//
+// Changes within the local changeset are rebased as follows:
+//
+// <dl>
+// <dt>Local INSERT<dd>
+//
+// This may only conflict with a remote INSERT. If the conflict
+// resolution was OMIT, then add an UPDATE change to the rebased
+// changeset. Or, if the conflict resolution was REPLACE, add
+// nothing to the rebased changeset.
+//
+// <dt>Local DELETE<dd>
+//
+// This may conflict with a remote UPDATE or DELETE. In both cases the
+// only possible resolution is OMIT. If the remote operation was a
+// DELETE, then add no change to the rebased changeset. If the remote
+// operation was an UPDATE, then the old.* fields of change are updated
+// to reflect the new.* values in the UPDATE.
+//
+// <dt>Local UPDATE<dd>
+//
+// This may conflict with a remote UPDATE or DELETE. If it conflicts
+// with a DELETE, and the conflict resolution was OMIT, then the update
+// is changed into an INSERT. Any undefined values in the new.* record
+// from the update change are filled in using the old.* values from
+// the conflicting DELETE. Or, if the conflict resolution was REPLACE,
+// the UPDATE change is simply omitted from the rebased changeset.
+//
+// If conflict is with a remote UPDATE and the resolution is OMIT, then
+// the old.* values are rebased using the new.* values in the remote
+// change. Or, if the resolution is REPLACE, then the change is copied
+// into the rebased changeset with updates to columns also updated by
+// the conflicting remote UPDATE removed. If this means no columns would
+// be updated, the change is omitted.
+//
+// </dl>
+//
+// A local change may be rebased against multiple remote changes
+// simultaneously. If a single key is modified by multiple remote
+// changesets, they are combined as follows before the local changeset
+// is rebased:
+//
+// <ul>
+//
+// <li> If there has been one or more REPLACE resolutions on a
+// key, it is rebased according to a REPLACE.
+//
+// <li> If there have been no REPLACE resolutions on a key, then
+// the local changeset is rebased according to the most recent
+// of the OMIT resolutions.
+//
+// </ul>
+//
+// Note that conflict resolutions from multiple remote changesets are
+// combined on a per-field basis, not per-row. This means that in the
+// case of multiple remote UPDATE operations, some fields of a single
+// local change may be rebased for REPLACE while others are rebased for
+// OMIT.
+//
+// In order to rebase a local changeset, the remote changeset must first
+// be applied to the local database using sqlite3changeset_apply_v2() and
+// the buffer of rebase information captured. Then:
+//
+// <ol>
+//
+// <li> An sqlite3_rebaser object is created by calling
+// sqlite3rebaser_create().
+// <li> The new object is configured with the rebase buffer obtained from
+// sqlite3changeset_apply_v2() by calling sqlite3rebaser_configure().
+// If the local changeset is to be rebased against multiple remote
+// changesets, then sqlite3rebaser_configure() should be called
+// multiple times, in the same order that the multiple
+// sqlite3changeset_apply_v2() calls were made.
+// <li> Each local changeset is rebased by calling sqlite3rebaser_rebase().
+// <li> The sqlite3_rebaser object is deleted by calling
+// sqlite3rebaser_delete().
+//
+// </ol>
+type Sqlite3_rebaser = sqlite3_rebaser
+
+type Fts5ExtensionApi1 = struct {
+ FiVersion int32
+ F__ccgo_pad1 [4]byte
+ FxUserData uintptr
+ FxColumnCount uintptr
+ FxRowCount uintptr
+ FxColumnTotalSize uintptr
+ FxTokenize uintptr
+ FxPhraseCount uintptr
+ FxPhraseSize uintptr
+ FxInstCount uintptr
+ FxInst uintptr
+ FxRowid uintptr
+ FxColumnText uintptr
+ FxColumnSize uintptr
+ FxQueryPhrase uintptr
+ FxSetAuxdata uintptr
+ FxGetAuxdata uintptr
+ FxPhraseFirst uintptr
+ FxPhraseNext uintptr
+ FxPhraseFirstColumn uintptr
+ FxPhraseNextColumn uintptr
+}
+
+type Fts5ExtensionApi = Fts5ExtensionApi1
+type Fts5PhraseIter1 = struct {
+ Fa uintptr
+ Fb uintptr
+}
+
+type Fts5PhraseIter = Fts5PhraseIter1
+
+type Fts5_extension_function = uintptr
+type fts5_tokenizer = struct {
+ FxCreate uintptr
+ FxDelete uintptr
+ FxTokenize uintptr
+}
+
+type Fts5_tokenizer = fts5_tokenizer
+
+type fts5_api = struct {
+ FiVersion int32
+ F__ccgo_pad1 [4]byte
+ FxCreateTokenizer uintptr
+ FxFindTokenizer uintptr
+ FxCreateFunction uintptr
+}
+
+// ************************************************************************
+//
+// FTS5 EXTENSION REGISTRATION API
+type Fts5_api = fts5_api
+
+// Forward declarations of structures.
+type Hash1 = struct {
+ Fhtsize uint32
+ Fcount uint32
+ Ffirst uintptr
+ Fht uintptr
+}
+
+// Forward declarations of structures.
+type Hash = Hash1
+type HashElem1 = struct {
+ Fnext uintptr
+ Fprev uintptr
+ Fdata uintptr
+ FpKey uintptr
+}
+
+type HashElem = HashElem1
+
+type _ht = struct {
+ Fcount uint32
+ F__ccgo_pad1 [4]byte
+ Fchain uintptr
+}
+
+type X__int8_t = int8
+type X__uint8_t = uint8
+type X__int16_t = int16
+type X__uint16_t = uint16
+type X__int32_t = int32
+type X__uint32_t = uint32
+type X__int64_t = int64
+type X__uint64_t = uint64
+
+type X__darwin_intptr_t = int64
+type X__darwin_natural_t = uint32
+
+type X__darwin_ct_rune_t = int32
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+}
+
+type X__darwin_mbstate_t = X__mbstate_t
+
+type X__darwin_ptrdiff_t = int64
+
+type X__darwin_size_t = uint64
+
+type X__darwin_va_list = X__builtin_va_list
+
+type X__darwin_wchar_t = int32
+
+type X__darwin_rune_t = X__darwin_wchar_t
+
+type X__darwin_wint_t = int32
+
+type X__darwin_clock_t = uint64
+type X__darwin_socklen_t = X__uint32_t
+type X__darwin_ssize_t = int64
+type X__darwin_time_t = int64
+
+type X__darwin_blkcnt_t = X__int64_t
+type X__darwin_blksize_t = X__int32_t
+type X__darwin_dev_t = X__int32_t
+type X__darwin_fsblkcnt_t = uint32
+type X__darwin_fsfilcnt_t = uint32
+type X__darwin_gid_t = X__uint32_t
+type X__darwin_id_t = X__uint32_t
+type X__darwin_ino64_t = X__uint64_t
+type X__darwin_ino_t = X__darwin_ino64_t
+type X__darwin_mach_port_name_t = X__darwin_natural_t
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t
+type X__darwin_mode_t = X__uint16_t
+type X__darwin_off_t = X__int64_t
+type X__darwin_pid_t = X__int32_t
+type X__darwin_sigset_t = X__uint32_t
+type X__darwin_suseconds_t = X__int32_t
+type X__darwin_uid_t = X__uint32_t
+type X__darwin_useconds_t = X__uint32_t
+type X__darwin_uuid_t = [16]uint8
+type X__darwin_uuid_string_t = [37]int8
+
+type __darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+}
+
+type _opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+}
+
+type _opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+}
+
+type _opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+}
+
+type _opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+}
+
+type _opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+}
+
+type _opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+}
+
+type _opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+}
+
+type _opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+}
+
+type _opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+}
+
+type X__darwin_pthread_attr_t = _opaque_pthread_attr_t
+type X__darwin_pthread_cond_t = _opaque_pthread_cond_t
+type X__darwin_pthread_condattr_t = _opaque_pthread_condattr_t
+type X__darwin_pthread_key_t = uint64
+type X__darwin_pthread_mutex_t = _opaque_pthread_mutex_t
+type X__darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t
+type X__darwin_pthread_once_t = _opaque_pthread_once_t
+type X__darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t
+type X__darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t
+type X__darwin_pthread_t = uintptr
+
+type X__darwin_nl_item = int32
+type X__darwin_wctrans_t = int32
+type X__darwin_wctype_t = X__uint32_t
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64
+
+type Register_t = Int64_t
+
+type Intptr_t = X__darwin_intptr_t
+
+type Uintptr_t = uint64
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t
+type User_size_t = U_int64_t
+type User_ssize_t = Int64_t
+type User_long_t = Int64_t
+type User_ulong_t = U_int64_t
+type User_time_t = Int64_t
+type User_off_t = Int64_t
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t
+
+type Fpos_t = X__darwin_off_t
+
+type __sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+}
+
+type __sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_extra uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+}
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type FILE = __sFILE
+
+type Off_t = X__darwin_off_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+type Idtype_t = uint32
+
+type Pid_t = X__darwin_pid_t
+
+type Id_t = X__darwin_id_t
+
+type Sig_atomic_t = int32
+
+type __darwin_arm_exception_state = struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+}
+
+type __darwin_arm_exception_state64 = struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+}
+
+type __darwin_arm_thread_state = struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+}
+
+type __darwin_arm_thread_state64 = struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+}
+
+type __darwin_arm_vfp_state = struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+}
+
+type __darwin_arm_neon_state64 = struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+}
+
+type __darwin_arm_neon_state = struct {
+ F__v [16]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+}
+
+type __arm_pagein_state = struct{ F__pagein_error int32 }
+
+type __arm_legacy_debug_state = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+}
+
+type __darwin_arm_debug_state32 = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+ F__mdscr_el1 X__uint64_t
+}
+
+type __darwin_arm_debug_state64 = struct {
+ F__bvr [16]X__uint64_t
+ F__bcr [16]X__uint64_t
+ F__wvr [16]X__uint64_t
+ F__wcr [16]X__uint64_t
+ F__mdscr_el1 X__uint64_t
+}
+
+type __darwin_arm_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t }
+
+type __darwin_mcontext32 = struct {
+ F__es struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+ }
+ F__ss struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+ }
+ F__fs struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+ }
+}
+
+type __darwin_mcontext64 = struct {
+ F__es struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+ }
+ F__ss struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+ }
+ F__ns struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+ }
+}
+
+type Mcontext_t = uintptr
+
+type Pthread_attr_t = X__darwin_pthread_attr_t
+
+type __darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Stack_t = __darwin_sigaltstack
+
+type __darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+}
+
+// user context
+type Ucontext_t = __darwin_ucontext
+
+type Sigset_t = X__darwin_sigset_t
+
+type Uid_t = X__darwin_uid_t
+
+type sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+}
+
+type sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+}
+
+type __siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+}
+
+type Siginfo_t = __siginfo
+
+type __sigaction_u = struct{ F__sa_handler uintptr }
+
+type __sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+}
+
+type sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+}
+
+type Sig_t = uintptr
+
+type sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+}
+
+type sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Uint64_t = uint64
+
+type Int_least64_t = Int64_t
+type Uint_least64_t = Uint64_t
+type Int_fast64_t = Int64_t
+type Uint_fast64_t = Uint64_t
+
+type Uint32_t = uint32
+
+type Int_least32_t = Int32_t
+type Uint_least32_t = Uint32_t
+type Int_fast32_t = Int32_t
+type Uint_fast32_t = Uint32_t
+type Uint16_t = uint16
+
+type Int_least16_t = Int16_t
+type Uint_least16_t = Uint16_t
+type Int_fast16_t = Int16_t
+type Uint_fast16_t = Uint16_t
+type Uint8_t = uint8
+
+type Int_least8_t = Int8_t
+type Uint_least8_t = Uint8_t
+type Int_fast8_t = Int8_t
+type Uint_fast8_t = Uint8_t
+
+// C99 7.18.1.5 Greatest-width integer types.
+type Intmax_t = int64
+type Uintmax_t = uint64
+
+type timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+}
+
+// Resource limit type (low 63 bits, excluding the sign bit)
+type Rlim_t = X__uint64_t
+
+type rusage = struct {
+ Fru_utime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_stime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_maxrss int64
+ Fru_ixrss int64
+ Fru_idrss int64
+ Fru_isrss int64
+ Fru_minflt int64
+ Fru_majflt int64
+ Fru_nswap int64
+ Fru_inblock int64
+ Fru_oublock int64
+ Fru_msgsnd int64
+ Fru_msgrcv int64
+ Fru_nsignals int64
+ Fru_nvcsw int64
+ Fru_nivcsw int64
+}
+
+type Rusage_info_t = uintptr
+
+type rusage_info_v0 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+}
+
+type rusage_info_v1 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+}
+
+type rusage_info_v2 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+}
+
+type rusage_info_v3 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+}
+
+type rusage_info_v4 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+}
+
+type rusage_info_v5 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+ Fri_flags Uint64_t
+}
+
+type rusage_info_v6 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+ Fri_flags Uint64_t
+ Fri_user_ptime Uint64_t
+ Fri_system_ptime Uint64_t
+ Fri_pinstructions Uint64_t
+ Fri_pcycles Uint64_t
+ Fri_energy_nj Uint64_t
+ Fri_penergy_nj Uint64_t
+ Fri_reserved [14]Uint64_t
+}
+
+type Rusage_info_current = rusage_info_v6
+
+type rlimit = struct {
+ Frlim_cur Rlim_t
+ Frlim_max Rlim_t
+}
+
+type proc_rlimit_control_wakeupmon = struct {
+ Fwm_flags Uint32_t
+ Fwm_rate Int32_t
+}
+
+func _OSSwapInt16(tls *libc.TLS, _data Uint16_t) Uint16_t {
+ return Uint16_t(int32(_data)<<8 | int32(_data)>>8)
+}
+
+func _OSSwapInt32(tls *libc.TLS, _data Uint32_t) Uint32_t {
+ _data = libc.X__builtin_bswap32(tls, _data)
+
+ return _data
+}
+
+func _OSSwapInt64(tls *libc.TLS, _data Uint64_t) Uint64_t {
+ return libc.X__builtin_bswap64(tls, _data)
+}
+
+type _OSUnalignedU16 = struct{ F__val Uint16_t }
+
+type _OSUnalignedU32 = struct{ F__val Uint32_t }
+
+type _OSUnalignedU64 = struct{ F__val Uint64_t }
+
+type wait = struct{ Fw_status int32 }
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+}
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+}
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+}
+
+type Dev_t = X__darwin_dev_t
+
+type Mode_t = X__darwin_mode_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32
+
+type Max_align_t = float64
+
+// Integers of known sizes. These typedefs might change for architectures
+// where the sizes very. Preprocessor macros are available so that the
+// types can be conveniently redefined at compile-type. Like this:
+//
+// cc '-DUINTPTR_TYPE=long long int' ...
+type I64 = Sqlite_int64
+type U64 = Sqlite_uint64
+type U32 = uint32
+type U16 = uint16
+type I16 = int16
+type U8 = uint8
+type I8 = int8
+
+// The datatype used to store estimates of the number of rows in a
+// table or index.
+type TRowcnt = U64
+
+// Estimated quantities used for query planning are stored as 16-bit
+// logarithms. For quantity X, the value stored is 10*log2(X). This
+// gives a possible range of values of approximately 1.0e986 to 1e-986.
+// But the allowed values are "grainy". Not every value is representable.
+// For example, quantities 16 and 17 are both represented by a LogEst
+// of 40. However, since LogEst quantities are suppose to be estimates,
+// not exact values, this imprecision is not a problem.
+//
+// "LogEst" is short for "Logarithmic Estimate".
+//
+// Examples:
+//
+// 1 -> 0 20 -> 43 10000 -> 132
+// 2 -> 10 25 -> 46 25000 -> 146
+// 3 -> 16 100 -> 66 1000000 -> 199
+// 4 -> 20 1000 -> 99 1048576 -> 200
+// 10 -> 33 1024 -> 100 4294967296 -> 320
+//
+// The LogEst can be negative to indicate fractional values.
+// Examples:
+//
+// 0.5 -> -10 0.1 -> -33 0.0625 -> -40
+type LogEst = int16
+
+// The uptr type is an unsigned integer large enough to hold a pointer
+type Uptr = U64
+
+// An instance of the following structure is used to store the busy-handler
+// callback for a given sqlite handle.
+//
+// The sqlite.busyHandler member of the sqlite struct contains the busy
+// callback for the database handle. Each pager opened via the sqlite
+// handle is passed a pointer to sqlite.busyHandler. The busy-handler
+// callback is currently invoked only from within pager.c.
+type BusyHandler1 = struct {
+ FxBusyHandler uintptr
+ FpBusyArg uintptr
+ FnBusy int32
+ F__ccgo_pad1 [4]byte
+}
+
+// An instance of the following structure is used to store the busy-handler
+// callback for a given sqlite handle.
+//
+// The sqlite.busyHandler member of the sqlite struct contains the busy
+// callback for the database handle. Each pager opened via the sqlite
+// handle is passed a pointer to sqlite.busyHandler. The busy-handler
+// callback is currently invoked only from within pager.c.
+type BusyHandler = BusyHandler1
+
+// Forward references to structures
+type AggInfo1 = struct {
+ FdirectMode U8
+ FuseSortingIdx U8
+ FnSortingColumn U16
+ FsortingIdx int32
+ FsortingIdxPTab int32
+ FiFirstReg int32
+ FpGroupBy uintptr
+ FaCol uintptr
+ FnColumn int32
+ FnAccumulator int32
+ FaFunc uintptr
+ FnFunc int32
+ FselId U32
+}
+
+// Forward references to structures
+type AggInfo = AggInfo1
+type AuthContext1 = struct {
+ FzAuthContext uintptr
+ FpParse uintptr
+}
+
+type AuthContext = AuthContext1
+type AutoincInfo1 = struct {
+ FpNext uintptr
+ FpTab uintptr
+ FiDb int32
+ FregCtr int32
+}
+
+type AutoincInfo = AutoincInfo1
+type Bitvec1 = struct {
+ FiSize U32
+ FnSet U32
+ FiDivisor U32
+ F__ccgo_pad1 [4]byte
+ Fu struct {
+ F__ccgo_pad1 [0]uint64
+ FaBitmap [496]U8
+ }
+}
+
+type Bitvec = Bitvec1
+type CollSeq1 = struct {
+ FzName uintptr
+ Fenc U8
+ F__ccgo_pad1 [7]byte
+ FpUser uintptr
+ FxCmp uintptr
+ FxDel uintptr
+}
+
+type CollSeq = CollSeq1
+type Column1 = struct {
+ FzCnName uintptr
+ FnotNull uint8
+ F__ccgo_pad1 [1]byte
+ Faffinity int8
+ FszEst U8
+ FhName U8
+ F__ccgo_pad2 [1]byte
+ FiDflt U16
+ FcolFlags U16
+ F__ccgo_pad3 [6]byte
+}
+
+type Column = Column1
+type Cte1 = struct {
+ FzName uintptr
+ FpCols uintptr
+ FpSelect uintptr
+ FzCteErr uintptr
+ FpUse uintptr
+ FeM10d U8
+ F__ccgo_pad1 [7]byte
+}
+
+type Cte = Cte1
+type CteUse1 = struct {
+ FnUse int32
+ FaddrM9e int32
+ FregRtn int32
+ FiCur int32
+ FnRowEst LogEst
+ FeM10d U8
+ F__ccgo_pad1 [1]byte
+}
+
+type CteUse = CteUse1
+type Db1 = struct {
+ FzDbSName uintptr
+ FpBt uintptr
+ Fsafety_level U8
+ FbSyncSet U8
+ F__ccgo_pad1 [6]byte
+ FpSchema uintptr
+}
+
+type Db = Db1
+type DbFixer1 = struct {
+ FpParse uintptr
+ Fw Walker
+ FpSchema uintptr
+ FbTemp U8
+ F__ccgo_pad1 [7]byte
+ FzDb uintptr
+ FzType uintptr
+ FpName uintptr
+}
+
+type DbFixer = DbFixer1
+type Schema1 = struct {
+ Fschema_cookie int32
+ FiGeneration int32
+ FtblHash Hash
+ FidxHash Hash
+ FtrigHash Hash
+ FfkeyHash Hash
+ FpSeqTab uintptr
+ Ffile_format U8
+ Fenc U8
+ FschemaFlags U16
+ Fcache_size int32
+}
+
+type Schema = Schema1
+type Expr1 = struct {
+ Fop U8
+ FaffExpr int8
+ Fop2 U8
+ F__ccgo_pad1 [1]byte
+ Fflags U32
+ Fu struct{ FzToken uintptr }
+ FpLeft uintptr
+ FpRight uintptr
+ Fx struct{ FpList uintptr }
+ FnHeight int32
+ FiTable int32
+ FiColumn YnVar
+ FiAgg I16
+ Fw struct{ FiJoin int32 }
+ FpAggInfo uintptr
+ Fy struct{ FpTab uintptr }
+}
+
+type Expr = Expr1
+type ExprList1 = struct {
+ FnExpr int32
+ FnAlloc int32
+ Fa [1]struct {
+ FpExpr uintptr
+ FzEName uintptr
+ Ffg struct {
+ F__ccgo_pad1 [0]uint32
+ FsortFlags U8
+ F__ccgo_pad2 [3]byte
+ FeEName uint16
+ F__ccgo_pad3 [2]byte
+ }
+ Fu struct {
+ F__ccgo_pad1 [0]uint32
+ Fx struct {
+ FiOrderByCol U16
+ FiAlias U16
+ }
+ }
+ F__ccgo_pad1 [4]byte
+ }
+}
+
+type ExprList = ExprList1
+type FKey1 = struct {
+ FpFrom uintptr
+ FpNextFrom uintptr
+ FzTo uintptr
+ FpNextTo uintptr
+ FpPrevTo uintptr
+ FnCol int32
+ FisDeferred U8
+ FaAction [2]U8
+ F__ccgo_pad1 [1]byte
+ FapTrigger [2]uintptr
+ FaCol [1]struct {
+ FiFrom int32
+ F__ccgo_pad1 [4]byte
+ FzCol uintptr
+ }
+}
+
+type FKey = FKey1
+type FuncDestructor1 = struct {
+ FnRef int32
+ F__ccgo_pad1 [4]byte
+ FxDestroy uintptr
+ FpUserData uintptr
+}
+
+type FuncDestructor = FuncDestructor1
+type FuncDef1 = struct {
+ FnArg I8
+ F__ccgo_pad1 [3]byte
+ FfuncFlags U32
+ FpUserData uintptr
+ FpNext uintptr
+ FxSFunc uintptr
+ FxFinalize uintptr
+ FxValue uintptr
+ FxInverse uintptr
+ FzName uintptr
+ Fu struct{ FpHash uintptr }
+}
+
+type FuncDef = FuncDef1
+type FuncDefHash1 = struct{ Fa [23]uintptr }
+
+type FuncDefHash = FuncDefHash1
+type IdList1 = struct {
+ FnId int32
+ FeU4 U8
+ F__ccgo_pad1 [3]byte
+ Fa [1]struct {
+ FzName uintptr
+ Fu4 struct {
+ F__ccgo_pad1 [0]uint64
+ Fidx int32
+ F__ccgo_pad2 [4]byte
+ }
+ }
+}
+
+type IdList = IdList1
+type Index1 = struct {
+ FzName uintptr
+ FaiColumn uintptr
+ FaiRowLogEst uintptr
+ FpTable uintptr
+ FzColAff uintptr
+ FpNext uintptr
+ FpSchema uintptr
+ FaSortOrder uintptr
+ FazColl uintptr
+ FpPartIdxWhere uintptr
+ FaColExpr uintptr
+ Ftnum Pgno
+ FszIdxRow LogEst
+ FnKeyCol U16
+ FnColumn U16
+ FonError U8
+ F__ccgo_pad1 [1]byte
+ FidxType uint16
+ F__ccgo_pad2 [2]byte
+ FnSample int32
+ FnSampleCol int32
+ FaAvgEq uintptr
+ FaSample uintptr
+ FaiRowEst uintptr
+ FnRowEst0 TRowcnt
+ FcolNotIdxed Bitmask
+}
+
+type Index = Index1
+type IndexedExpr1 = struct {
+ FpExpr uintptr
+ FiDataCur int32
+ FiIdxCur int32
+ FiIdxCol int32
+ FbMaybeNullRow U8
+ F__ccgo_pad1 [3]byte
+ FpIENext uintptr
+}
+
+type IndexedExpr = IndexedExpr1
+type IndexSample1 = struct {
+ Fp uintptr
+ Fn int32
+ F__ccgo_pad1 [4]byte
+ FanEq uintptr
+ FanLt uintptr
+ FanDLt uintptr
+}
+
+type IndexSample = IndexSample1
+type KeyInfo1 = struct {
+ FnRef U32
+ Fenc U8
+ F__ccgo_pad1 [1]byte
+ FnKeyField U16
+ FnAllField U16
+ F__ccgo_pad2 [6]byte
+ Fdb uintptr
+ FaSortFlags uintptr
+ FaColl [1]uintptr
+}
+
+type KeyInfo = KeyInfo1
+type Lookaside1 = struct {
+ FbDisable U32
+ Fsz U16
+ FszTrue U16
+ FbMalloced U8
+ F__ccgo_pad1 [3]byte
+ FnSlot U32
+ FanStat [3]U32
+ F__ccgo_pad2 [4]byte
+ FpInit uintptr
+ FpFree uintptr
+ FpSmallInit uintptr
+ FpSmallFree uintptr
+ FpMiddle uintptr
+ FpStart uintptr
+ FpEnd uintptr
+ FpTrueEnd uintptr
+}
+
+type Lookaside = Lookaside1
+type LookasideSlot1 = struct{ FpNext uintptr }
+
+type LookasideSlot = LookasideSlot1
+type Module1 = struct {
+ FpModule uintptr
+ FzName uintptr
+ FnRefModule int32
+ F__ccgo_pad1 [4]byte
+ FpAux uintptr
+ FxDestroy uintptr
+ FpEpoTab uintptr
+}
+
+type Module = Module1
+type NameContext1 = struct {
+ FpParse uintptr
+ FpSrcList uintptr
+ FuNC struct{ FpEList uintptr }
+ FpNext uintptr
+ FnRef int32
+ FnNcErr int32
+ FncFlags int32
+ F__ccgo_pad1 [4]byte
+ FpWinSelect uintptr
+}
+
+type NameContext = NameContext1
+type OnOrUsing1 = struct {
+ FpOn uintptr
+ FpUsing uintptr
+}
+
+type OnOrUsing = OnOrUsing1
+type Parse1 = struct {
+ Fdb uintptr
+ FzErrMsg uintptr
+ FpVdbe uintptr
+ Frc int32
+ FcolNamesSet U8
+ FcheckSchema U8
+ Fnested U8
+ FnTempReg U8
+ FisMultiWrite U8
+ FmayAbort U8
+ FhasCompound U8
+ FokConstFactor U8
+ FdisableLookaside U8
+ FprepFlags U8
+ FwithinRJSubrtn U8
+ F__ccgo_pad1 [1]byte
+ FnRangeReg int32
+ FiRangeReg int32
+ FnErr int32
+ FnTab int32
+ FnMem int32
+ FszOpAlloc int32
+ FiSelfTab int32
+ FnLabel int32
+ FnLabelAlloc int32
+ F__ccgo_pad2 [4]byte
+ FaLabel uintptr
+ FpConstExpr uintptr
+ FpIdxEpr uintptr
+ FconstraintName Token
+ FwriteMask YDbMask
+ FcookieMask YDbMask
+ FregRowid int32
+ FregRoot int32
+ FnMaxArg int32
+ FnSelect int32
+ FnTableLock int32
+ F__ccgo_pad3 [4]byte
+ FaTableLock uintptr
+ FpAinc uintptr
+ FpToplevel uintptr
+ FpTriggerTab uintptr
+ FpTriggerPrg uintptr
+ FpCleanup uintptr
+ Fu1 struct {
+ F__ccgo_pad1 [0]uint64
+ FaddrCrTab int32
+ F__ccgo_pad2 [4]byte
+ }
+ FnQueryLoop U32
+ Foldmask U32
+ Fnewmask U32
+ FnProgressSteps U32
+ FeTriggerOp U8
+ FbReturning U8
+ FeOrconf U8
+ FdisableTriggers U8
+ FaTempReg [8]int32
+ F__ccgo_pad4 [4]byte
+ FpOuterParse uintptr
+ FsNameToken Token
+ FsLastToken Token
+ FnVar YnVar
+ FiPkSortOrder U8
+ Fexplain U8
+ FeParseMode U8
+ F__ccgo_pad5 [3]byte
+ FnVtabLock int32
+ FnHeight int32
+ FaddrExplain int32
+ F__ccgo_pad6 [4]byte
+ FpVList uintptr
+ FpReprepare uintptr
+ FzTail uintptr
+ FpNewTable uintptr
+ FpNewIndex uintptr
+ FpNewTrigger uintptr
+ FzAuthContext uintptr
+ FsArg Token
+ FapVtabLock uintptr
+ FpWith uintptr
+ FpRename uintptr
+}
+
+type Parse = Parse1
+type ParseCleanup1 = struct {
+ FpNext uintptr
+ FpPtr uintptr
+ FxCleanup uintptr
+}
+
+type ParseCleanup = ParseCleanup1
+type PreUpdate1 = struct {
+ Fv uintptr
+ FpCsr uintptr
+ Fop int32
+ F__ccgo_pad1 [4]byte
+ FaRecord uintptr
+ Fkeyinfo KeyInfo
+ FpUnpacked uintptr
+ FpNewUnpacked uintptr
+ FiNewReg int32
+ FiBlobWrite int32
+ FiKey1 I64
+ FiKey2 I64
+ FaNew uintptr
+ FpTab uintptr
+ FpPk uintptr
+}
+
+type PreUpdate = PreUpdate1
+type PrintfArguments1 = struct {
+ FnArg int32
+ FnUsed int32
+ FapArg uintptr
+}
+
+type PrintfArguments = PrintfArguments1
+type RenameToken1 = struct {
+ Fp uintptr
+ Ft Token
+ FpNext uintptr
+}
+
+type RenameToken = RenameToken1
+type Returning1 = struct {
+ FpParse uintptr
+ FpReturnEL uintptr
+ FretTrig Trigger
+ FretTStep TriggerStep
+ FiRetCur int32
+ FnRetCol int32
+ FiRetReg int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Returning = Returning1
+type RowSet1 = struct {
+ FpChunk uintptr
+ Fdb uintptr
+ FpEntry uintptr
+ FpLast uintptr
+ FpFresh uintptr
+ FpForest uintptr
+ FnFresh U16
+ FrsFlags U16
+ FiBatch int32
+}
+
+type RowSet = RowSet1
+type Savepoint1 = struct {
+ FzName uintptr
+ FnDeferredCons I64
+ FnDeferredImmCons I64
+ FpNext uintptr
+}
+
+type Savepoint = Savepoint1
+type Select1 = struct {
+ Fop U8
+ F__ccgo_pad1 [1]byte
+ FnSelectRow LogEst
+ FselFlags U32
+ FiLimit int32
+ FiOffset int32
+ FselId U32
+ FaddrOpenEphm [2]int32
+ F__ccgo_pad2 [4]byte
+ FpEList uintptr
+ FpSrc uintptr
+ FpWhere uintptr
+ FpGroupBy uintptr
+ FpHaving uintptr
+ FpOrderBy uintptr
+ FpPrior uintptr
+ FpNext uintptr
+ FpLimit uintptr
+ FpWith uintptr
+ FpWin uintptr
+ FpWinDefn uintptr
+}
+
+type Select = Select1
+type SQLiteThread1 = struct {
+ FxTask uintptr
+ FpIn uintptr
+ FpResult uintptr
+}
+
+type SQLiteThread = SQLiteThread1
+type SelectDest1 = struct {
+ FeDest U8
+ F__ccgo_pad1 [3]byte
+ FiSDParm int32
+ FiSDParm2 int32
+ FiSdst int32
+ FnSdst int32
+ F__ccgo_pad2 [4]byte
+ FzAffSdst uintptr
+ FpOrderBy uintptr
+}
+
+type SelectDest = SelectDest1
+type SrcItem1 = struct {
+ FpSchema uintptr
+ FzDatabase uintptr
+ FzName uintptr
+ FzAlias uintptr
+ FpTab uintptr
+ FpSelect uintptr
+ FaddrFillSub int32
+ FregReturn int32
+ FregResult int32
+ Ffg struct {
+ F__ccgo_pad1 [0]uint32
+ Fjointype U8
+ F__ccgo_pad2 [3]byte
+ FnotIndexed uint16
+ F__ccgo_pad3 [2]byte
+ }
+ FiCursor int32
+ Fu3 struct{ FpOn uintptr }
+ FcolUsed Bitmask
+ Fu1 struct{ FzIndexedBy uintptr }
+ Fu2 struct{ FpIBIndex uintptr }
+}
+
+type SrcItem = SrcItem1
+type SrcList1 = struct {
+ FnSrc int32
+ FnAlloc U32
+ Fa [1]SrcItem
+}
+
+type SrcList = SrcList1
+type StrAccum = sqlite3_str
+type Table1 = struct {
+ FzName uintptr
+ FaCol uintptr
+ FpIndex uintptr
+ FzColAff uintptr
+ FpCheck uintptr
+ Ftnum Pgno
+ FnTabRef U32
+ FtabFlags U32
+ FiPKey I16
+ FnCol I16
+ FnNVCol I16
+ FnRowLogEst LogEst
+ FszTabRow LogEst
+ FkeyConf U8
+ FeTabType U8
+ Fu struct {
+ Ftab struct {
+ FaddColOffset int32
+ F__ccgo_pad1 [4]byte
+ FpFKey uintptr
+ FpDfltList uintptr
+ }
+ }
+ FpTrigger uintptr
+ FpSchema uintptr
+}
+
+// Internal alias for sqlite3_str
+type Table = Table1
+type TableLock1 = struct {
+ FiDb int32
+ FiTab Pgno
+ FisWriteLock U8
+ F__ccgo_pad1 [7]byte
+ FzLockName uintptr
+}
+
+type TableLock = TableLock1
+type Token1 = struct {
+ Fz uintptr
+ Fn uint32
+ F__ccgo_pad1 [4]byte
+}
+
+type Token = Token1
+type Trigger1 = struct {
+ FzName uintptr
+ Ftable uintptr
+ Fop U8
+ Ftr_tm U8
+ FbReturning U8
+ F__ccgo_pad1 [5]byte
+ FpWhen uintptr
+ FpColumns uintptr
+ FpSchema uintptr
+ FpTabSchema uintptr
+ Fstep_list uintptr
+ FpNext uintptr
+}
+
+type Trigger = Trigger1
+type TriggerPrg1 = struct {
+ FpTrigger uintptr
+ FpNext uintptr
+ FpProgram uintptr
+ Forconf int32
+ FaColmask [2]U32
+ F__ccgo_pad1 [4]byte
+}
+
+type TriggerPrg = TriggerPrg1
+type TriggerStep1 = struct {
+ Fop U8
+ Forconf U8
+ F__ccgo_pad1 [6]byte
+ FpTrig uintptr
+ FpSelect uintptr
+ FzTarget uintptr
+ FpFrom uintptr
+ FpWhere uintptr
+ FpExprList uintptr
+ FpIdList uintptr
+ FpUpsert uintptr
+ FzSpan uintptr
+ FpNext uintptr
+ FpLast uintptr
+}
+
+type TriggerStep = TriggerStep1
+type UnpackedRecord1 = struct {
+ FpKeyInfo uintptr
+ FaMem uintptr
+ Fu struct{ Fz uintptr }
+ Fn int32
+ FnField U16
+ Fdefault_rc I8
+ FerrCode U8
+ Fr1 I8
+ Fr2 I8
+ FeqSeen U8
+ F__ccgo_pad1 [5]byte
+}
+
+type UnpackedRecord = UnpackedRecord1
+type Upsert1 = struct {
+ FpUpsertTarget uintptr
+ FpUpsertTargetWhere uintptr
+ FpUpsertSet uintptr
+ FpUpsertWhere uintptr
+ FpNextUpsert uintptr
+ FisDoUpdate U8
+ F__ccgo_pad1 [7]byte
+ FpToFree uintptr
+ FpUpsertIdx uintptr
+ FpUpsertSrc uintptr
+ FregData int32
+ FiDataCur int32
+ FiIdxCur int32
+ F__ccgo_pad2 [4]byte
+}
+
+type Upsert = Upsert1
+type VTable1 = struct {
+ Fdb uintptr
+ FpMod uintptr
+ FpVtab uintptr
+ FnRef int32
+ FbConstraint U8
+ FeVtabRisk U8
+ F__ccgo_pad1 [2]byte
+ FiSavepoint int32
+ F__ccgo_pad2 [4]byte
+ FpNext uintptr
+}
+
+type VTable = VTable1
+type VtabCtx1 = struct {
+ FpVTable uintptr
+ FpTab uintptr
+ FpPrior uintptr
+ FbDeclared int32
+ F__ccgo_pad1 [4]byte
+}
+
+type VtabCtx = VtabCtx1
+type Walker1 = struct {
+ FpParse uintptr
+ FxExprCallback uintptr
+ FxSelectCallback uintptr
+ FxSelectCallback2 uintptr
+ FwalkerDepth int32
+ FeCode U16
+ F__ccgo_pad1 [2]byte
+ Fu struct{ FpNC uintptr }
+}
+
+type Walker = Walker1
+type WhereInfo1 = struct {
+ FpParse uintptr
+ FpTabList uintptr
+ FpOrderBy uintptr
+ FpResultSet uintptr
+ FpSelect uintptr
+ FaiCurOnePass [2]int32
+ FiContinue int32
+ FiBreak int32
+ FsavedNQueryLoop int32
+ FwctrlFlags U16
+ FiLimit LogEst
+ FnLevel U8
+ FnOBSat I8
+ FeOnePass U8
+ FeDistinct U8
+ FbDeferredSeek uint8
+ F__ccgo_pad1 [1]byte
+ FnRowOut LogEst
+ FiTop int32
+ FiEndWhere int32
+ FpLoops uintptr
+ FpMemToFree uintptr
+ FrevMask Bitmask
+ FsWC WhereClause
+ FsMaskSet WhereMaskSet
+ Fa [1]WhereLevel
+}
+
+type WhereInfo = WhereInfo1
+type Window1 = struct {
+ FzName uintptr
+ FzBase uintptr
+ FpPartition uintptr
+ FpOrderBy uintptr
+ FeFrmType U8
+ FeStart U8
+ FeEnd U8
+ FbImplicitFrame U8
+ FeExclude U8
+ F__ccgo_pad1 [3]byte
+ FpStart uintptr
+ FpEnd uintptr
+ FppThis uintptr
+ FpNextWin uintptr
+ FpFilter uintptr
+ FpWFunc uintptr
+ FiEphCsr int32
+ FregAccum int32
+ FregResult int32
+ FcsrApp int32
+ FregApp int32
+ FregPart int32
+ FpOwner uintptr
+ FnBufferCol int32
+ FiArgCol int32
+ FregOne int32
+ FregStartRowid int32
+ FregEndRowid int32
+ FbExprArgs U8
+ F__ccgo_pad2 [3]byte
+}
+
+type Window = Window1
+type With1 = struct {
+ FnCte int32
+ FbView int32
+ FpOuter uintptr
+ Fa [1]Cte
+}
+
+type With = With1
+
+// The bitmask datatype defined below is used for various optimizations.
+//
+// Changing this from a 64-bit to a 32-bit type limits the number of
+// tables in a join to 32 instead of 64. But it also reduces the size
+// of the library by 738 bytes on ix86.
+type Bitmask = U64
+
+// A VList object records a mapping between parameters/variables/wildcards
+// in the SQL statement (such as $abc, @pqr, or :xyz) and the integer
+// variable number associated with that parameter. See the format description
+// on the sqlite3VListAdd() routine for more information. A VList is really
+// just an array of integers.
+type VList = int32
+
+// The type used to represent a page number. The first page in a file
+// is called page 1. 0 is used to represent "not a page".
+type Pgno = U32
+
+// Each open file is managed by a separate instance of the "Pager" structure.
+type Pager1 = struct {
+ FpVfs uintptr
+ FexclusiveMode U8
+ FjournalMode U8
+ FuseJournal U8
+ FnoSync U8
+ FfullSync U8
+ FextraSync U8
+ FsyncFlags U8
+ FwalSyncFlags U8
+ FtempFile U8
+ FnoLock U8
+ FreadOnly U8
+ FmemDb U8
+ FmemVfs U8
+ FeState U8
+ FeLock U8
+ FchangeCountDone U8
+ FsetSuper U8
+ FdoNotSpill U8
+ FsubjInMemory U8
+ FbUseFetch U8
+ FhasHeldSharedLock U8
+ F__ccgo_pad1 [3]byte
+ FdbSize Pgno
+ FdbOrigSize Pgno
+ FdbFileSize Pgno
+ FdbHintSize Pgno
+ FerrCode int32
+ FnRec int32
+ FcksumInit U32
+ FnSubRec U32
+ FpInJournal uintptr
+ Ffd uintptr
+ Fjfd uintptr
+ Fsjfd uintptr
+ FjournalOff I64
+ FjournalHdr I64
+ FpBackup uintptr
+ FaSavepoint uintptr
+ FnSavepoint int32
+ FiDataVersion U32
+ FdbFileVers [16]int8
+ FnMmapOut int32
+ F__ccgo_pad2 [4]byte
+ FszMmap Sqlite3_int64
+ FpMmapFreelist uintptr
+ FnExtra U16
+ FnReserve I16
+ FvfsFlags U32
+ FsectorSize U32
+ FmxPgno Pgno
+ FlckPgno Pgno
+ F__ccgo_pad3 [4]byte
+ FpageSize I64
+ FjournalSizeLimit I64
+ FzFilename uintptr
+ FzJournal uintptr
+ FxBusyHandler uintptr
+ FpBusyHandlerArg uintptr
+ FaStat [4]int32
+ FxReiniter uintptr
+ FxGet uintptr
+ FpTmpSpace uintptr
+ FpPCache uintptr
+ FpWal uintptr
+ FzWal uintptr
+}
+
+// Each open file is managed by a separate instance of the "Pager" structure.
+type Pager = Pager1
+
+// Handle type for pages.
+type PgHdr2 = struct {
+ FpPage uintptr
+ FpData uintptr
+ FpExtra uintptr
+ FpCache uintptr
+ FpDirty uintptr
+ FpPager uintptr
+ Fpgno Pgno
+ Fflags U16
+ FnRef I16
+ FpDirtyNext uintptr
+ FpDirtyPrev uintptr
+}
+
+// Handle type for pages.
+type DbPage = PgHdr2
+
+// Forward declarations of structure
+type Btree1 = struct {
+ Fdb uintptr
+ FpBt uintptr
+ FinTrans U8
+ Fsharable U8
+ Flocked U8
+ FhasIncrblobCur U8
+ FwantToLock int32
+ FnBackup int32
+ FiBDataVersion U32
+ FpNext uintptr
+ FpPrev uintptr
+ Flock BtLock
+}
+
+// Forward declarations of structure
+type Btree = Btree1
+type BtCursor1 = struct {
+ FeState U8
+ FcurFlags U8
+ FcurPagerFlags U8
+ Fhints U8
+ FskipNext int32
+ FpBtree uintptr
+ FaOverflow uintptr
+ FpKey uintptr
+ FpBt uintptr
+ FpNext uintptr
+ Finfo CellInfo
+ FnKey I64
+ FpgnoRoot Pgno
+ FiPage I8
+ FcurIntKey U8
+ Fix U16
+ FaiIdx [19]U16
+ F__ccgo_pad1 [2]byte
+ FpKeyInfo uintptr
+ FpPage uintptr
+ FapPage [19]uintptr
+}
+
+type BtCursor = BtCursor1
+type BtShared1 = struct {
+ FpPager uintptr
+ Fdb uintptr
+ FpCursor uintptr
+ FpPage1 uintptr
+ FopenFlags U8
+ FautoVacuum U8
+ FincrVacuum U8
+ FbDoTruncate U8
+ FinTransaction U8
+ Fmax1bytePayload U8
+ FnReserveWanted U8
+ F__ccgo_pad1 [1]byte
+ FbtsFlags U16
+ FmaxLocal U16
+ FminLocal U16
+ FmaxLeaf U16
+ FminLeaf U16
+ F__ccgo_pad2 [2]byte
+ FpageSize U32
+ FusableSize U32
+ FnTransaction int32
+ FnPage U32
+ F__ccgo_pad3 [4]byte
+ FpSchema uintptr
+ FxFreeSchema uintptr
+ Fmutex uintptr
+ FpHasContent uintptr
+ FnRef int32
+ F__ccgo_pad4 [4]byte
+ FpNext uintptr
+ FpLock uintptr
+ FpWriter uintptr
+ FpTmpSpace uintptr
+ FnPreformatSize int32
+ F__ccgo_pad5 [4]byte
+}
+
+type BtShared = BtShared1
+type BtreePayload1 = struct {
+ FpKey uintptr
+ FnKey Sqlite3_int64
+ FpData uintptr
+ FaMem uintptr
+ FnMem U16
+ F__ccgo_pad1 [2]byte
+ FnData int32
+ FnZero int32
+ F__ccgo_pad2 [4]byte
+}
+
+type BtreePayload = BtreePayload1
+
+// A single VDBE is an opaque structure named "Vdbe". Only routines
+// in the source file sqliteVdbe.c are allowed to see the insides
+// of this structure.
+type Vdbe1 = struct {
+ Fdb uintptr
+ FppVPrev uintptr
+ FpVNext uintptr
+ FpParse uintptr
+ FnVar YnVar
+ F__ccgo_pad1 [2]byte
+ FnMem int32
+ FnCursor int32
+ FcacheCtr U32
+ Fpc int32
+ Frc int32
+ FnChange I64
+ FiStatement int32
+ F__ccgo_pad2 [4]byte
+ FiCurrentTime I64
+ FnFkConstraint I64
+ FnStmtDefCons I64
+ FnStmtDefImmCons I64
+ FaMem uintptr
+ FapArg uintptr
+ FapCsr uintptr
+ FaVar uintptr
+ FaOp uintptr
+ FnOp int32
+ FnOpAlloc int32
+ FaColName uintptr
+ FpResultRow uintptr
+ FzErrMsg uintptr
+ FpVList uintptr
+ FstartTime I64
+ FnResColumn U16
+ FerrorAction U8
+ FminWriteFileFormat U8
+ FprepFlags U8
+ FeVdbeState U8
+ F__ccgo_pad3 [2]byte
+ Fexpired uint8
+ F__ccgo_pad4 [3]byte
+ FbtreeMask YDbMask
+ FlockMask YDbMask
+ FaCounter [9]U32
+ FzSql uintptr
+ FpFree uintptr
+ FpFrame uintptr
+ FpDelFrame uintptr
+ FnFrame int32
+ Fexpmask U32
+ FpProgram uintptr
+ FpAuxData uintptr
+}
+
+// A single VDBE is an opaque structure named "Vdbe". Only routines
+// in the source file sqliteVdbe.c are allowed to see the insides
+// of this structure.
+type Vdbe = Vdbe1
+
+// The names of the following types declared in vdbeInt.h are required
+// for the VdbeOp definition.
+type Mem = sqlite3_value
+type SubProgram1 = struct {
+ FaOp uintptr
+ FnOp int32
+ FnMem int32
+ FnCsr int32
+ F__ccgo_pad1 [4]byte
+ FaOnce uintptr
+ Ftoken uintptr
+ FpNext uintptr
+}
+
+type SubProgram = SubProgram1
+
+// A single instruction of the virtual machine has an opcode
+// and as many as three operands. The instruction is recorded
+// as an instance of the following structure:
+type VdbeOp1 = struct {
+ Fopcode U8
+ Fp4type int8
+ Fp5 U16
+ Fp1 int32
+ Fp2 int32
+ Fp3 int32
+ Fp4 struct {
+ F__ccgo_pad1 [0]uint64
+ Fi int32
+ F__ccgo_pad2 [4]byte
+ }
+}
+
+type p4union = struct {
+ F__ccgo_pad1 [0]uint64
+ Fi int32
+ F__ccgo_pad2 [4]byte
+}
+
+type VdbeOp = VdbeOp1
+
+// A smaller version of VdbeOp used for the VdbeAddOpList() function because
+// it takes up less space.
+type VdbeOpList1 = struct {
+ Fopcode U8
+ Fp1 int8
+ Fp2 int8
+ Fp3 int8
+}
+
+type VdbeOpList = VdbeOpList1
+
+type RecordCompare = uintptr
+
+type PgHdr = PgHdr2
+type PCache2 = struct {
+ FpDirty uintptr
+ FpDirtyTail uintptr
+ FpSynced uintptr
+ FnRefSum int32
+ FszCache int32
+ FszSpill int32
+ FszPage int32
+ FszExtra int32
+ FbPurgeable U8
+ FeCreate U8
+ F__ccgo_pad1 [2]byte
+ FxStress uintptr
+ FpStress uintptr
+ FpCache uintptr
+}
+
+type PCache = PCache2
+
+// typedef for the authorization callback function.
+type Sqlite3_xauth = uintptr
+
+type sqlite3InitInfo = struct {
+ FnewTnum Pgno
+ FiDb U8
+ Fbusy U8
+ F__ccgo_pad1 [2]byte
+ ForphanTrigger uint8
+ F__ccgo_pad2 [7]byte
+ FazInit uintptr
+}
+
+type sColMap = struct {
+ FiFrom int32
+ F__ccgo_pad1 [4]byte
+ FzCol uintptr
+}
+
+// An instance of this structure contains information needed to generate
+// code for a SELECT that contains aggregate functions.
+//
+// If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a
+// pointer to this structure. The Expr.iAgg field is the index in
+// AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate
+// code for that node.
+//
+// AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the
+// original Select structure that describes the SELECT statement. These
+// fields do not need to be freed when deallocating the AggInfo structure.
+type AggInfo_col = struct {
+ FpTab uintptr
+ FpCExpr uintptr
+ FiTable int32
+ FiColumn I16
+ FiSorterColumn I16
+}
+
+// An instance of this structure contains information needed to generate
+// code for a SELECT that contains aggregate functions.
+//
+// If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a
+// pointer to this structure. The Expr.iAgg field is the index in
+// AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate
+// code for that node.
+//
+// AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the
+// original Select structure that describes the SELECT statement. These
+// fields do not need to be freed when deallocating the AggInfo structure.
+type AggInfo_func = struct {
+ FpFExpr uintptr
+ FpFunc uintptr
+ FiDistinct int32
+ FiDistAddr int32
+}
+
+// The datatype ynVar is a signed integer, either 16-bit or 32-bit.
+// Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater
+// than 32767 we have to make it 32-bit. 16-bit is preferred because
+// it uses less memory in the Expr object, which is a big memory user
+// in systems with lots of prepared statements. And few applications
+// need more than about 10 or 20 variables. But some extreme users want
+// to have prepared statements with over 32766 variables, and for them
+// the option is available (at compile-time).
+type YnVar = I16
+
+// A list of expressions. Each expression may optionally have a
+// name. An expr/name combination can be used in several ways, such
+// as the list of "expr AS ID" fields following a "SELECT" or in the
+// list of "ID = expr" items in an UPDATE. A list of expressions can
+// also be used as the argument to a function, in which case the a.zName
+// field is not used.
+//
+// In order to try to keep memory usage down, the Expr.a.zEName field
+// is used for multiple purposes:
+//
+// eEName Usage
+// ---------- -------------------------
+// ENAME_NAME (1) the AS of result set column
+// (2) COLUMN= of an UPDATE
+//
+// ENAME_TAB DB.TABLE.NAME used to resolve names
+// of subqueries
+//
+// ENAME_SPAN Text of the original result set
+// expression.
+type ExprList_item = struct {
+ FpExpr uintptr
+ FzEName uintptr
+ Ffg struct {
+ F__ccgo_pad1 [0]uint32
+ FsortFlags U8
+ F__ccgo_pad2 [3]byte
+ FeEName uint16
+ F__ccgo_pad3 [2]byte
+ }
+ Fu struct {
+ F__ccgo_pad1 [0]uint32
+ Fx struct {
+ FiOrderByCol U16
+ FiAlias U16
+ }
+ }
+ F__ccgo_pad1 [4]byte
+}
+
+// An instance of this structure can hold a simple list of identifiers,
+// such as the list "a,b,c" in the following statements:
+//
+// INSERT INTO t(a,b,c) VALUES ...;
+// CREATE INDEX idx ON t(a,b,c);
+// CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...;
+//
+// The IdList.a.idx field is used when the IdList represents the list of
+// column names after a table name in an INSERT statement. In the statement
+//
+// INSERT INTO t(a,b,c) ...
+//
+// If "a" is the k-th column of table "t", then IdList.a[0].idx==k.
+type IdList_item = struct {
+ FzName uintptr
+ Fu4 struct {
+ F__ccgo_pad1 [0]uint64
+ Fidx int32
+ F__ccgo_pad2 [4]byte
+ }
+}
+
+// The yDbMask datatype for the bitmask of all attached databases.
+type YDbMask = uint32
+
+// A pointer to this structure is used to communicate information
+// from sqlite3Init and OP_ParseSchema into the sqlite3InitCallback.
+type InitData = struct {
+ Fdb uintptr
+ FpzErrMsg uintptr
+ FiDb int32
+ Frc int32
+ FmInitFlags U32
+ FnInitRow U32
+ FmxPage Pgno
+ F__ccgo_pad1 [4]byte
+}
+
+// Structure containing global configuration data for the SQLite library.
+//
+// This structure also contains some state information.
+type Sqlite3Config = struct {
+ FbMemstat int32
+ FbCoreMutex U8
+ FbFullMutex U8
+ FbOpenUri U8
+ FbUseCis U8
+ FbSmallMalloc U8
+ FbExtraSchemaChecks U8
+ F__ccgo_pad1 [2]byte
+ FmxStrlen int32
+ FneverCorrupt int32
+ FszLookaside int32
+ FnLookaside int32
+ FnStmtSpill int32
+ Fm Sqlite3_mem_methods
+ Fmutex Sqlite3_mutex_methods
+ Fpcache2 Sqlite3_pcache_methods2
+ FpHeap uintptr
+ FnHeap int32
+ FmnReq int32
+ FmxReq int32
+ F__ccgo_pad2 [4]byte
+ FszMmap Sqlite3_int64
+ FmxMmap Sqlite3_int64
+ FpPage uintptr
+ FszPage int32
+ FnPage int32
+ FmxParserStack int32
+ FsharedCacheEnabled int32
+ FszPma U32
+ FisInit int32
+ FinProgress int32
+ FisMutexInit int32
+ FisMallocInit int32
+ FisPCacheInit int32
+ FnRefInitMutex int32
+ F__ccgo_pad3 [4]byte
+ FpInitMutex uintptr
+ FxLog uintptr
+ FpLogArg uintptr
+ FmxMemdbSize Sqlite3_int64
+ FxTestCallback uintptr
+ FbLocaltimeFault int32
+ F__ccgo_pad4 [4]byte
+ FxAltLocaltime uintptr
+ FiOnceResetThreshold int32
+ FszSorterRef U32
+ FiPrngSeed uint32
+ F__ccgo_pad5 [4]byte
+}
+
+// Context pointer passed down through the tree-walk.
+type RefSrcList = struct {
+ Fdb uintptr
+ FpRef uintptr
+ FnExclude I64
+ FaiExclude uintptr
+}
+
+// Context pointer passed down through the tree-walk.
+type IdxCover = struct {
+ FpIdx uintptr
+ FiCur int32
+ F__ccgo_pad1 [4]byte
+}
+
+// Context pointer passed down through the tree-walk.
+type WindowRewrite1 = struct {
+ FpWin uintptr
+ FpSrc uintptr
+ FpSub uintptr
+ FpTab uintptr
+ FpSubSelect uintptr
+}
+
+// Context pointer passed down through the tree-walk.
+type WhereConst1 = struct {
+ FpParse uintptr
+ FpOomFault uintptr
+ FnConst int32
+ FnChng int32
+ FbHasAffBlob int32
+ FmExcludeOn U32
+ FapExpr uintptr
+}
+
+// Context pointer passed down through the tree-walk.
+type RenameCtx1 = struct {
+ FpList uintptr
+ FnList int32
+ FiCol int32
+ FpTab uintptr
+ FzOld uintptr
+}
+
+// Context pointer passed down through the tree-walk.
+type CoveringIndexCheck1 = struct {
+ FpIdx uintptr
+ FiTabCur int32
+ FbExpr U8
+ FbUnidx U8
+ F__ccgo_pad1 [2]byte
+}
+
+var sqlite3azCompileOpt = [52]uintptr{
+ ts + 7,
+ ts + 27,
+ ts + 49,
+ ts + 68,
+ ts + 93,
+ ts + 115,
+ ts + 145,
+ ts + 165,
+ ts + 185,
+ ts + 208,
+ ts + 233,
+ ts + 260,
+ ts + 285,
+ ts + 307,
+ ts + 339,
+ ts + 365,
+ ts + 390,
+ ts + 413,
+ ts + 425,
+ ts + 440,
+ ts + 462,
+ ts + 487,
+ ts + 510,
+ ts + 532,
+ ts + 543,
+ ts + 556,
+ ts + 571,
+ ts + 587,
+ ts + 600,
+ ts + 621,
+ ts + 645,
+ ts + 668,
+ ts + 684,
+ ts + 700,
+ ts + 724,
+ ts + 751,
+ ts + 771,
+ ts + 792,
+ ts + 814,
+ ts + 844,
+ ts + 869,
+ ts + 895,
+ ts + 915,
+ ts + 941,
+ ts + 964,
+ ts + 990,
+ ts + 1012,
+ ts + 1033,
+ ts + 1044,
+ ts + 1052,
+ ts + 1066,
+ ts + 1079,
+}
+
+func Xsqlite3CompileOptions(tls *libc.TLS, pnOpt uintptr) uintptr {
+ *(*int32)(unsafe.Pointer(pnOpt)) = int32(uint64(unsafe.Sizeof(sqlite3azCompileOpt)) / uint64(unsafe.Sizeof(uintptr(0))))
+ return uintptr(unsafe.Pointer(&sqlite3azCompileOpt))
+}
+
+// An array to map all upper-case characters into their corresponding
+// lower-case character.
+//
+// SQLite only considers US-ASCII (or EBCDIC) characters. We do not
+// handle case conversions for the UTF character set since the tables
+// involved are nearly as big or bigger than SQLite itself.
+var Xsqlite3UpperToLower = [274]uint8{
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17),
+ uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35),
+ uint8(36), uint8(37), uint8(38), uint8(39), uint8(40), uint8(41), uint8(42), uint8(43), uint8(44), uint8(45), uint8(46), uint8(47), uint8(48), uint8(49), uint8(50), uint8(51), uint8(52), uint8(53),
+ uint8(54), uint8(55), uint8(56), uint8(57), uint8(58), uint8(59), uint8(60), uint8(61), uint8(62), uint8(63), uint8(64), uint8(97), uint8(98), uint8(99), uint8(100), uint8(101), uint8(102), uint8(103),
+ uint8(104), uint8(105), uint8(106), uint8(107), uint8(108), uint8(109), uint8(110), uint8(111), uint8(112), uint8(113), uint8(114), uint8(115), uint8(116), uint8(117), uint8(118), uint8(119), uint8(120), uint8(121),
+ uint8(122), uint8(91), uint8(92), uint8(93), uint8(94), uint8(95), uint8(96), uint8(97), uint8(98), uint8(99), uint8(100), uint8(101), uint8(102), uint8(103), uint8(104), uint8(105), uint8(106), uint8(107),
+ uint8(108), uint8(109), uint8(110), uint8(111), uint8(112), uint8(113), uint8(114), uint8(115), uint8(116), uint8(117), uint8(118), uint8(119), uint8(120), uint8(121), uint8(122), uint8(123), uint8(124), uint8(125),
+ uint8(126), uint8(127), uint8(128), uint8(129), uint8(130), uint8(131), uint8(132), uint8(133), uint8(134), uint8(135), uint8(136), uint8(137), uint8(138), uint8(139), uint8(140), uint8(141), uint8(142), uint8(143),
+ uint8(144), uint8(145), uint8(146), uint8(147), uint8(148), uint8(149), uint8(150), uint8(151), uint8(152), uint8(153), uint8(154), uint8(155), uint8(156), uint8(157), uint8(158), uint8(159), uint8(160), uint8(161),
+ uint8(162), uint8(163), uint8(164), uint8(165), uint8(166), uint8(167), uint8(168), uint8(169), uint8(170), uint8(171), uint8(172), uint8(173), uint8(174), uint8(175), uint8(176), uint8(177), uint8(178), uint8(179),
+ uint8(180), uint8(181), uint8(182), uint8(183), uint8(184), uint8(185), uint8(186), uint8(187), uint8(188), uint8(189), uint8(190), uint8(191), uint8(192), uint8(193), uint8(194), uint8(195), uint8(196), uint8(197),
+ uint8(198), uint8(199), uint8(200), uint8(201), uint8(202), uint8(203), uint8(204), uint8(205), uint8(206), uint8(207), uint8(208), uint8(209), uint8(210), uint8(211), uint8(212), uint8(213), uint8(214), uint8(215),
+ uint8(216), uint8(217), uint8(218), uint8(219), uint8(220), uint8(221), uint8(222), uint8(223), uint8(224), uint8(225), uint8(226), uint8(227), uint8(228), uint8(229), uint8(230), uint8(231), uint8(232), uint8(233),
+ uint8(234), uint8(235), uint8(236), uint8(237), uint8(238), uint8(239), uint8(240), uint8(241), uint8(242), uint8(243), uint8(244), uint8(245), uint8(246), uint8(247), uint8(248), uint8(249), uint8(250), uint8(251),
+ uint8(252), uint8(253), uint8(254), uint8(255),
+ uint8(1), uint8(0), uint8(0), uint8(1), uint8(1), uint8(0),
+ uint8(0), uint8(1), uint8(0), uint8(1), uint8(0), uint8(1),
+ uint8(1), uint8(0), uint8(1), uint8(0), uint8(0), uint8(1),
+}
+var Xsqlite3aLTb uintptr = 0
+var Xsqlite3aEQb uintptr = 0
+var Xsqlite3aGTb uintptr = 0
+
+// The following 256 byte lookup table is used to support SQLites built-in
+// equivalents to the following standard library functions:
+//
+// isspace() 0x01
+// isalpha() 0x02
+// isdigit() 0x04
+// isalnum() 0x06
+// isxdigit() 0x08
+// toupper() 0x20
+// SQLite identifier character 0x40
+// Quote character 0x80
+//
+// Bit 0x20 is set if the mapped character requires translation to upper
+// case. i.e. if the character is a lower-case ASCII character.
+// If x is a lower-case ASCII character, then its upper-case equivalent
+// is (x - 0x20). Therefore toupper() can be implemented as:
+//
+// (x & ~(map[x]&0x20))
+//
+// The equivalent of tolower() is implemented using the sqlite3UpperToLower[]
+// array. tolower() is used more often than toupper() by SQLite.
+//
+// Bit 0x40 is set if the character is non-alphanumeric and can be used in an
+// SQLite identifier. Identifiers are alphanumerics, "_", "$", and any
+// non-ASCII UTF character. Hence the test for whether or not a character is
+// part of an identifier is 0x46.
+var Xsqlite3CtypeMap = [256]uint8{
+ uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x00), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x00), uint8(0x00),
+ uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x01), uint8(0x00), uint8(0x80), uint8(0x00), uint8(0x40), uint8(0x00), uint8(0x00), uint8(0x80),
+ uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x0c), uint8(0x0c), uint8(0x0c), uint8(0x0c), uint8(0x0c), uint8(0x0c), uint8(0x0c), uint8(0x0c),
+ uint8(0x0c), uint8(0x0c), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x00), uint8(0x0a), uint8(0x0a), uint8(0x0a), uint8(0x0a), uint8(0x0a), uint8(0x0a), uint8(0x02),
+ uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02),
+ uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x02),
+ uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x80), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x40),
+ uint8(0x80), uint8(0x2a), uint8(0x2a), uint8(0x2a), uint8(0x2a), uint8(0x2a), uint8(0x2a), uint8(0x22),
+ uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22),
+ uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x22),
+ uint8(0x22), uint8(0x22), uint8(0x22), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+ uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40), uint8(0x40),
+}
+
+// The following singleton contains the global configuration for
+// the SQLite library.
+var Xsqlite3Config = Sqlite3Config{
+ FbCoreMutex: U8(1),
+ FbFullMutex: U8(libc.Bool32(SQLITE_THREADSAFE == 1)),
+ FbUseCis: U8(SQLITE_ALLOW_COVERING_INDEX_SCAN),
+ FbExtraSchemaChecks: U8(1),
+ FmxStrlen: 0x7ffffffe,
+ FszLookaside: 1200, FnLookaside: 40,
+ FnStmtSpill: 64 * 1024,
+ FmxMmap: int64(SQLITE_MAX_MMAP_SIZE),
+ FnPage: SQLITE_DEFAULT_PCACHE_INITSZ,
+ FszPma: U32(SQLITE_SORTER_PMASZ),
+ FmxMemdbSize: int64(SQLITE_MEMDB_DEFAULT_MAXSIZE),
+ FiOnceResetThreshold: 0x7ffffffe,
+ FszSorterRef: U32(SQLITE_DEFAULT_SORTERREF_SIZE),
+}
+
+// Hash table for global functions - functions common to all
+// database connections. After initialization, this table is
+// read-only.
+var Xsqlite3BuiltinFunctions FuncDefHash
+
+// The value of the "pending" byte must be 0x40000000 (1 byte past the
+// 1-gibabyte boundary) in a compatible database. SQLite never uses
+// the database page that contains the pending byte. It never attempts
+// to read or write that page. The pending byte page is set aside
+// for use by the VFS layers as space for managing file locks.
+//
+// During testing, it is often desirable to move the pending byte to
+// a different position in the file. This allows code that has to
+// deal with the pending byte to run on files that are much smaller
+// than 1 GiB. The sqlite3_test_control() interface can be used to
+// move the pending byte.
+//
+// IMPORTANT: Changing the pending byte to any value other than
+// 0x40000000 results in an incompatible database file format!
+// Changing the pending byte during operation will result in undefined
+// and incorrect behavior.
+var Xsqlite3PendingByte int32 = 0x40000000
+
+// Tracing flags set by SQLITE_TESTCTRL_TRACEFLAGS.
+var Xsqlite3TreeTrace U32 = U32(0)
+var Xsqlite3WhereTrace U32 = U32(0)
+
+// #include "opcodes.h"
+// Properties of opcodes. The OPFLG_INITIALIZER macro is
+// created by mkopcodeh.awk during compilation. Data is obtained
+// from the comments following the "case OP_xxxx:" statements in
+// the vdbe.c file.
+var Xsqlite3OpcodeProperty = [187]uint8{uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x41), uint8(0x00), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x03), uint8(0x03), uint8(0x01), uint8(0x01), uint8(0x03), uint8(0x03), uint8(0x01), uint8(0x12), uint8(0x01), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x01), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x49), uint8(0x41), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x41), uint8(0x01), uint8(0x41), uint8(0x41), uint8(0x41), uint8(0x41), uint8(0x41), uint8(0x26), uint8(0x26), uint8(0x41), uint8(0x23), uint8(0x0b), uint8(0x01), uint8(0x01), uint8(0x03), uint8(0x03), uint8(0x0b), uint8(0x0b), uint8(0x0b), uint8(0x0b), uint8(0x0b), uint8(0x0b), uint8(0x01), uint8(0x03), uint8(0x03), uint8(0x03), uint8(0x01), uint8(0x41), uint8(0x01), uint8(0x00), uint8(0x00), uint8(0x02), uint8(0x02), uint8(0x08), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x02), uint8(0x02), uint8(0x02), uint8(0x00), uint8(0x00), uint8(0x12), uint8(0x1e), uint8(0x20), uint8(0x40), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x40), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x26), uint8(0x40), uint8(0x00), uint8(0x12), uint8(0x40), uint8(0x40), uint8(0x10), uint8(0x40), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x40), uint8(0x00), uint8(0x40), uint8(0x40), uint8(0x10), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x50), uint8(0x00), uint8(0x40), uint8(0x04), uint8(0x04), uint8(0x00), uint8(0x40), uint8(0x50), uint8(0x40), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x10), uint8(0x00), uint8(0x00), uint8(0x06), uint8(0x10), uint8(0x00), uint8(0x04), uint8(0x1a), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x40), uint8(0x50), uint8(0x40), uint8(0x00), uint8(0x10), uint8(0x10), uint8(0x02), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00), uint8(0x00)}
+
+// Name of the default collating sequence
+var Xsqlite3StrBINARY = *(*[7]int8)(unsafe.Pointer(ts + 1092))
+
+// Standard typenames. These names must match the COLTYPE_* definitions.
+// Adjust the SQLITE_N_STDTYPE value if adding or removing entries.
+//
+// sqlite3StdType[] The actual names of the datatypes.
+//
+// sqlite3StdTypeLen[] The length (in bytes) of each entry
+// in sqlite3StdType[].
+//
+// sqlite3StdTypeAffinity[] The affinity associated with each entry
+// in sqlite3StdType[].
+var Xsqlite3StdTypeLen = [6]uint8{uint8(3), uint8(4), uint8(3), uint8(7), uint8(4), uint8(4)}
+var Xsqlite3StdTypeAffinity = [6]int8{
+ int8(SQLITE_AFF_NUMERIC),
+ int8(SQLITE_AFF_BLOB),
+ int8(SQLITE_AFF_INTEGER),
+ int8(SQLITE_AFF_INTEGER),
+ int8(SQLITE_AFF_REAL),
+ int8(SQLITE_AFF_TEXT),
+}
+var Xsqlite3StdType = [6]uintptr{
+ ts + 1099,
+ ts + 1103,
+ ts + 1108,
+ ts + 1112,
+ ts + 1120,
+ ts + 1125,
+}
+
+// SQL is translated into a sequence of instructions to be
+// executed by a virtual machine. Each instruction is an instance
+// of the following structure.
+type Op = VdbeOp1
+
+// Boolean values
+type Bool = uint32
+
+// Opaque type used by code in vdbesort.c
+type VdbeSorter1 = struct {
+ FmnPmaSize int32
+ FmxPmaSize int32
+ FmxKeysize int32
+ Fpgsz int32
+ FpReader uintptr
+ FpMerger uintptr
+ Fdb uintptr
+ FpKeyInfo uintptr
+ FpUnpacked uintptr
+ Flist SorterList
+ FiMemory int32
+ FnMemory int32
+ FbUsePMA U8
+ FbUseThreads U8
+ FiPrev U8
+ FnTask U8
+ FtypeMask U8
+ F__ccgo_pad1 [3]byte
+ FaTask [1]SortSubtask
+}
+
+// Opaque type used by code in vdbesort.c
+type VdbeSorter = VdbeSorter1
+
+// Elements of the linked list at Vdbe.pAuxData
+type AuxData1 = struct {
+ FiAuxOp int32
+ FiAuxArg int32
+ FpAux uintptr
+ FxDeleteAux uintptr
+ FpNextAux uintptr
+}
+
+// Elements of the linked list at Vdbe.pAuxData
+type AuxData = AuxData1
+
+// A VdbeCursor is an superclass (a wrapper) for various cursor objects:
+//
+// - A b-tree cursor
+// - In the main database or in an ephemeral database
+// - On either an index or a table
+// - A sorter
+// - A virtual table
+// - A one-row "pseudotable" stored in a single register
+type VdbeCursor1 = struct {
+ FeCurType U8
+ FiDb I8
+ FnullRow U8
+ FdeferredMoveto U8
+ FisTable U8
+ F__ccgo_pad1 [3]byte
+ FisEphemeral uint8
+ F__ccgo_pad2 [1]byte
+ FseekHit U16
+ F__ccgo_pad3 [4]byte
+ Fub struct{ FpBtx uintptr }
+ FseqCount I64
+ FcacheStatus U32
+ FseekResult int32
+ FpAltCursor uintptr
+ Fuc struct{ FpCursor uintptr }
+ FpKeyInfo uintptr
+ FiHdrOffset U32
+ FpgnoRoot Pgno
+ FnField I16
+ FnHdrParsed U16
+ F__ccgo_pad4 [4]byte
+ FmovetoTarget I64
+ FaOffset uintptr
+ FaRow uintptr
+ FpayloadSize U32
+ FszRow U32
+ FaType [1]U32
+ F__ccgo_pad5 [4]byte
+}
+
+// A VdbeCursor is an superclass (a wrapper) for various cursor objects:
+//
+// - A b-tree cursor
+// - In the main database or in an ephemeral database
+// - On either an index or a table
+// - A sorter
+// - A virtual table
+// - A one-row "pseudotable" stored in a single register
+type VdbeCursor = VdbeCursor1
+
+// When a sub-program is executed (OP_Program), a structure of this type
+// is allocated to store the current value of the program counter, as
+// well as the current memory cell array and various other frame specific
+// values stored in the Vdbe struct. When the sub-program is finished,
+// these values are copied back to the Vdbe from the VdbeFrame structure,
+// restoring the state of the VM to as it was before the sub-program
+// began executing.
+//
+// The memory for a VdbeFrame object is allocated and managed by a memory
+// cell in the parent (calling) frame. When the memory cell is deleted or
+// overwritten, the VdbeFrame object is not freed immediately. Instead, it
+// is linked into the Vdbe.pDelFrame list. The contents of the Vdbe.pDelFrame
+// list is deleted when the VM is reset in VdbeHalt(). The reason for doing
+// this instead of deleting the VdbeFrame immediately is to avoid recursive
+// calls to sqlite3VdbeMemRelease() when the memory cells belonging to the
+// child frame are released.
+//
+// The currently executing frame is stored in Vdbe.pFrame. Vdbe.pFrame is
+// set to NULL if the currently executing frame is the main program.
+type VdbeFrame1 = struct {
+ Fv uintptr
+ FpParent uintptr
+ FaOp uintptr
+ FaMem uintptr
+ FapCsr uintptr
+ FaOnce uintptr
+ Ftoken uintptr
+ FlastRowid I64
+ FpAuxData uintptr
+ FnCursor int32
+ Fpc int32
+ FnOp int32
+ FnMem int32
+ FnChildMem int32
+ FnChildCsr int32
+ FnChange I64
+ FnDbChange I64
+}
+
+// When a sub-program is executed (OP_Program), a structure of this type
+// is allocated to store the current value of the program counter, as
+// well as the current memory cell array and various other frame specific
+// values stored in the Vdbe struct. When the sub-program is finished,
+// these values are copied back to the Vdbe from the VdbeFrame structure,
+// restoring the state of the VM to as it was before the sub-program
+// began executing.
+//
+// The memory for a VdbeFrame object is allocated and managed by a memory
+// cell in the parent (calling) frame. When the memory cell is deleted or
+// overwritten, the VdbeFrame object is not freed immediately. Instead, it
+// is linked into the Vdbe.pDelFrame list. The contents of the Vdbe.pDelFrame
+// list is deleted when the VM is reset in VdbeHalt(). The reason for doing
+// this instead of deleting the VdbeFrame immediately is to avoid recursive
+// calls to sqlite3VdbeMemRelease() when the memory cells belonging to the
+// child frame are released.
+//
+// The currently executing frame is stored in Vdbe.pFrame. Vdbe.pFrame is
+// set to NULL if the currently executing frame is the main program.
+type VdbeFrame = VdbeFrame1
+
+// Internally, the vdbe manipulates nearly all SQL values as Mem
+// structures. Each Mem struct may cache multiple representations (string,
+// integer etc.) of the same value.
+type MemValue = struct{ Fr float64 }
+
+// A bitfield type for use inside of structures. Always follow with :N where
+// N is the number of bits.
+type Bft = uint32
+
+// The ScanStatus object holds a single value for the
+// sqlite3_stmt_scanstatus() interface.
+//
+// aAddrRange[]:
+//
+// This array is used by ScanStatus elements associated with EQP
+// notes that make an SQLITE_SCANSTAT_NCYCLE value available. It is
+// an array of up to 3 ranges of VM addresses for which the Vdbe.anCycle[]
+// values should be summed to calculate the NCYCLE value. Each pair of
+// integer addresses is a start and end address (both inclusive) for a range
+// instructions. A start value of 0 indicates an empty range.
+type ScanStatus1 = struct {
+ FaddrExplain int32
+ FaAddrRange [6]int32
+ FaddrLoop int32
+ FaddrVisit int32
+ FiSelectID int32
+ FnEst LogEst
+ F__ccgo_pad1 [6]byte
+ FzName uintptr
+}
+
+// The ScanStatus object holds a single value for the
+// sqlite3_stmt_scanstatus() interface.
+//
+// aAddrRange[]:
+//
+// This array is used by ScanStatus elements associated with EQP
+// notes that make an SQLITE_SCANSTAT_NCYCLE value available. It is
+// an array of up to 3 ranges of VM addresses for which the Vdbe.anCycle[]
+// values should be summed to calculate the NCYCLE value. Each pair of
+// integer addresses is a start and end address (both inclusive) for a range
+// instructions. A start value of 0 indicates an empty range.
+type ScanStatus = ScanStatus1
+
+// The DblquoteStr object holds the text of a double-quoted
+// string for a prepared statement. A linked list of these objects
+// is constructed during statement parsing and is held on Vdbe.pDblStr.
+// When computing a normalized SQL statement for an SQL statement, that
+// list is consulted for each double-quoted identifier to see if the
+// identifier should really be a string literal.
+type DblquoteStr1 = struct {
+ FpNextStr uintptr
+ Fz [8]int8
+}
+
+// The DblquoteStr object holds the text of a double-quoted
+// string for a prepared statement. A linked list of these objects
+// is constructed during statement parsing and is held on Vdbe.pDblStr.
+// When computing a normalized SQL statement for an SQL statement, that
+// list is consulted for each double-quoted identifier to see if the
+// identifier should really be a string literal.
+type DblquoteStr = DblquoteStr1
+
+// An instance of this object is used to pass an vector of values into
+// OP_VFilter, the xFilter method of a virtual table. The vector is the
+// set of values on the right-hand side of an IN constraint.
+//
+// The value as passed into xFilter is an sqlite3_value with a "pointer"
+// type, such as is generated by sqlite3_result_pointer() and read by
+// sqlite3_value_pointer. Such values have MEM_Term|MEM_Subtype|MEM_Null
+// and a subtype of 'p'. The sqlite3_vtab_in_first() and _next() interfaces
+// know how to use this object to step through all the values in the
+// right operand of the IN constraint.
+type ValueList1 = struct {
+ FpCsr uintptr
+ FpOut uintptr
+}
+
+// An instance of this object is used to pass an vector of values into
+// OP_VFilter, the xFilter method of a virtual table. The vector is the
+// set of values on the right-hand side of an IN constraint.
+//
+// The value as passed into xFilter is an sqlite3_value with a "pointer"
+// type, such as is generated by sqlite3_result_pointer() and read by
+// sqlite3_value_pointer. Such values have MEM_Term|MEM_Subtype|MEM_Null
+// and a subtype of 'p'. The sqlite3_vtab_in_first() and _next() interfaces
+// know how to use this object to step through all the values in the
+// right operand of the IN constraint.
+type ValueList = ValueList1
+
+// Variables in which to record status information.
+type Sqlite3StatValueType = Sqlite3_int64
+type sqlite3StatType = struct {
+ FnowValue [10]Sqlite3StatValueType
+ FmxValue [10]Sqlite3StatValueType
+}
+
+type Sqlite3StatType = sqlite3StatType
+
+var sqlite3Stat = sqlite3StatType{}
+
+var statMutex = [10]int8{
+ int8(0),
+ int8(1),
+ int8(1),
+ int8(0),
+ int8(0),
+ int8(0),
+ int8(0),
+ int8(1),
+ int8(0),
+ int8(0),
+}
+
+// Return the current value of a status parameter. The caller must
+// be holding the appropriate mutex.
+func Xsqlite3StatusValue(tls *libc.TLS, op int32) Sqlite3_int64 {
+ return *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8))
+}
+
+// Add N to the value of a status record. The caller must hold the
+// appropriate mutex. (Locking is checked by assert()).
+//
+// The StatusUp() routine can accept positive or negative values for N.
+// The value of N is added to the current status value and the high-water
+// mark is adjusted if necessary.
+//
+// The StatusDown() routine lowers the current value by N. The highwater
+// mark is unchanged. N must be non-negative for StatusDown().
+func Xsqlite3StatusUp(tls *libc.TLS, op int32, N int32) {
+ *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8)) += Sqlite3StatValueType(N)
+ if *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8)) > *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8)) {
+ *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8)) = *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8))
+ }
+}
+
+func Xsqlite3StatusDown(tls *libc.TLS, op int32, N int32) {
+ *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8)) -= Sqlite3StatValueType(N)
+}
+
+// Adjust the highwater mark if necessary.
+// The caller must hold the appropriate mutex.
+func Xsqlite3StatusHighwater(tls *libc.TLS, op int32, X int32) {
+ var newValue Sqlite3StatValueType
+
+ newValue = Sqlite3StatValueType(X)
+
+ if newValue > *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8)) {
+ *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8)) = newValue
+ }
+}
+
+// Query status information.
+func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uintptr, resetFlag int32) int32 {
+ var pMutex uintptr
+ _ = pMutex
+
+ if op < 0 || op >= int32(uint64(unsafe.Sizeof([10]Sqlite3StatValueType{}))/uint64(unsafe.Sizeof(Sqlite3StatValueType(0)))) {
+ return Xsqlite3MisuseError(tls, 23229)
+ }
+ if statMutex[op] != 0 {
+ pMutex = Xsqlite3Pcache1Mutex(tls)
+ } else {
+ pMutex = Xsqlite3MallocMutex(tls)
+ }
+ Xsqlite3_mutex_enter(tls, pMutex)
+ *(*Sqlite3_int64)(unsafe.Pointer(pCurrent)) = *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8))
+ *(*Sqlite3_int64)(unsafe.Pointer(pHighwater)) = *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8))
+ if resetFlag != 0 {
+ *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + 80 + uintptr(op)*8)) = *(*Sqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Stat)) + uintptr(op)*8))
+ }
+ Xsqlite3_mutex_leave(tls, pMutex)
+ _ = pMutex
+ return SQLITE_OK
+}
+
+func Xsqlite3_status(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uintptr, resetFlag int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 8)) = int64(0)
+ var rc int32
+ rc = Xsqlite3_status64(tls, op, bp, bp+8, resetFlag)
+ if rc == 0 {
+ *(*int32)(unsafe.Pointer(pCurrent)) = int32(*(*Sqlite3_int64)(unsafe.Pointer(bp)))
+ *(*int32)(unsafe.Pointer(pHighwater)) = int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 8)))
+ }
+ return rc
+}
+
+func countLookasideSlots(tls *libc.TLS, p uintptr) U32 {
+ var cnt U32 = U32(0)
+ for p != 0 {
+ p = (*LookasideSlot)(unsafe.Pointer(p)).FpNext
+ cnt++
+ }
+ return cnt
+}
+
+// Count the number of slots of lookaside memory that are outstanding
+func Xsqlite3LookasideUsed(tls *libc.TLS, db uintptr, pHighwater uintptr) int32 {
+ var nInit U32 = countLookasideSlots(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit)
+ var nFree U32 = countLookasideSlots(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree)
+ nInit = nInit + countLookasideSlots(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit)
+ nFree = nFree + countLookasideSlots(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree)
+ if pHighwater != 0 {
+ *(*int32)(unsafe.Pointer(pHighwater)) = int32((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot - nInit)
+ }
+ return int32((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot - (nInit + nFree))
+}
+
+// Query status information for a single database connection
+func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, pHighwater uintptr, resetFlag int32) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var rc int32 = SQLITE_OK
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ switch op {
+ case SQLITE_DBSTATUS_LOOKASIDE_USED:
+ {
+ *(*int32)(unsafe.Pointer(pCurrent)) = Xsqlite3LookasideUsed(tls, db, pHighwater)
+ if resetFlag != 0 {
+ var p uintptr = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree
+ if p != 0 {
+ for (*LookasideSlot)(unsafe.Pointer(p)).FpNext != 0 {
+ p = (*LookasideSlot)(unsafe.Pointer(p)).FpNext
+ }
+ (*LookasideSlot)(unsafe.Pointer(p)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = uintptr(0)
+ }
+ p = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree
+ if p != 0 {
+ for (*LookasideSlot)(unsafe.Pointer(p)).FpNext != 0 {
+ p = (*LookasideSlot)(unsafe.Pointer(p)).FpNext
+ }
+ (*LookasideSlot)(unsafe.Pointer(p)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = uintptr(0)
+ }
+ }
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_LOOKASIDE_HIT:
+ fallthrough
+ case SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE:
+ fallthrough
+ case SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL:
+ {
+ *(*int32)(unsafe.Pointer(pCurrent)) = 0
+ *(*int32)(unsafe.Pointer(pHighwater)) = int32(*(*U32)(unsafe.Pointer(db + 440 + 16 + uintptr(op-SQLITE_DBSTATUS_LOOKASIDE_HIT)*4)))
+ if resetFlag != 0 {
+ *(*U32)(unsafe.Pointer(db + 440 + 16 + uintptr(op-SQLITE_DBSTATUS_LOOKASIDE_HIT)*4)) = U32(0)
+ }
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_CACHE_USED_SHARED:
+ fallthrough
+ case SQLITE_DBSTATUS_CACHE_USED:
+ {
+ var totalUsed int32 = 0
+ var i int32
+ Xsqlite3BtreeEnterAll(tls, db)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ var nByte int32 = Xsqlite3PagerMemUsed(tls, pPager)
+ if op == SQLITE_DBSTATUS_CACHE_USED_SHARED {
+ nByte = nByte / Xsqlite3BtreeConnectionCount(tls, pBt)
+ }
+ totalUsed = totalUsed + nByte
+ }
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+ *(*int32)(unsafe.Pointer(pCurrent)) = totalUsed
+ *(*int32)(unsafe.Pointer(pHighwater)) = 0
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_SCHEMA_USED:
+ {
+ var i int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ Xsqlite3BtreeEnterAll(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = bp
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pSchema uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpSchema
+ if pSchema != uintptr(0) {
+ var p uintptr
+
+ *(*int32)(unsafe.Pointer(bp)) += int32(uint32((*struct{ f func(*libc.TLS, int32) int32 })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRoundup})).f(tls, int32(unsafe.Sizeof(HashElem{})))) * ((*Schema)(unsafe.Pointer(pSchema)).FtblHash.Fcount +
+ (*Schema)(unsafe.Pointer(pSchema)).FtrigHash.Fcount +
+ (*Schema)(unsafe.Pointer(pSchema)).FidxHash.Fcount +
+ (*Schema)(unsafe.Pointer(pSchema)).FfkeyHash.Fcount))
+ *(*int32)(unsafe.Pointer(bp)) += int32(Xsqlite3_msize(tls, (*Schema)(unsafe.Pointer(pSchema)).FtblHash.Fht))
+ *(*int32)(unsafe.Pointer(bp)) += int32(Xsqlite3_msize(tls, (*Schema)(unsafe.Pointer(pSchema)).FtrigHash.Fht))
+ *(*int32)(unsafe.Pointer(bp)) += int32(Xsqlite3_msize(tls, (*Schema)(unsafe.Pointer(pSchema)).FidxHash.Fht))
+ *(*int32)(unsafe.Pointer(bp)) += int32(Xsqlite3_msize(tls, (*Schema)(unsafe.Pointer(pSchema)).FfkeyHash.Fht))
+
+ for p = (*Hash)(unsafe.Pointer(pSchema + 56)).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
+ Xsqlite3DeleteTrigger(tls, db, (*HashElem)(unsafe.Pointer(p)).Fdata)
+ }
+ for p = (*Hash)(unsafe.Pointer(pSchema + 8)).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
+ Xsqlite3DeleteTable(tls, db, (*HashElem)(unsafe.Pointer(p)).Fdata)
+ }
+ }
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd
+ Xsqlite3BtreeLeaveAll(tls, db)
+
+ *(*int32)(unsafe.Pointer(pHighwater)) = 0
+ *(*int32)(unsafe.Pointer(pCurrent)) = *(*int32)(unsafe.Pointer(bp))
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_STMT_USED:
+ {
+ var pVdbe uintptr
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = bp + 4
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart
+ for pVdbe = (*Sqlite3)(unsafe.Pointer(db)).FpVdbe; pVdbe != 0; pVdbe = (*Vdbe1)(unsafe.Pointer(pVdbe)).FpVNext {
+ Xsqlite3VdbeDelete(tls, pVdbe)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0)
+
+ *(*int32)(unsafe.Pointer(pHighwater)) = 0
+ *(*int32)(unsafe.Pointer(pCurrent)) = *(*int32)(unsafe.Pointer(bp + 4))
+
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_CACHE_SPILL:
+ op = SQLITE_DBSTATUS_CACHE_WRITE + 1
+ fallthrough
+
+ case SQLITE_DBSTATUS_CACHE_HIT:
+ fallthrough
+ case SQLITE_DBSTATUS_CACHE_MISS:
+ fallthrough
+ case SQLITE_DBSTATUS_CACHE_WRITE:
+ {
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpBt != 0 {
+ var pPager uintptr = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpBt)
+ Xsqlite3PagerCacheStat(tls, pPager, op, resetFlag, bp+8)
+ }
+ }
+ *(*int32)(unsafe.Pointer(pHighwater)) = 0
+
+ *(*int32)(unsafe.Pointer(pCurrent)) = *(*int32)(unsafe.Pointer(bp + 8))
+ break
+
+ }
+
+ case SQLITE_DBSTATUS_DEFERRED_FKS:
+ {
+ *(*int32)(unsafe.Pointer(pHighwater)) = 0
+ *(*int32)(unsafe.Pointer(pCurrent)) = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > int64(0) || (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons > int64(0))
+ break
+
+ }
+
+ default:
+ {
+ rc = SQLITE_ERROR
+
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t
+
+type timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+}
+
+type tm = struct {
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+}
+
+type Clockid_t = uint32
+
+// A structure for holding a single date and time.
+type DateTime1 = struct {
+ FiJD Sqlite3_int64
+ FY int32
+ FM int32
+ FD int32
+ Fh int32
+ Fm int32
+ Ftz int32
+ Fs float64
+ FvalidJD int8
+ FrawS int8
+ FvalidYMD int8
+ FvalidHMS int8
+ FvalidTZ int8
+ FtzSet int8
+ FisError int8
+ F__ccgo_pad1 [1]byte
+}
+
+// A structure for holding a single date and time.
+type DateTime = DateTime1
+
+func getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) int32 {
+ var ap Va_list
+ _ = ap
+ var cnt int32
+ var nextC int8
+ var N int8
+ var min int8
+ var val int32
+ var max U16
+ cnt = 0
+ ap = va
+__1:
+ N = int8(int32(*(*int8)(unsafe.Pointer(zFormat))) - '0')
+ min = int8(int32(*(*int8)(unsafe.Pointer(zFormat + 1))) - '0')
+ val = 0
+
+ max = aMx[int32(*(*int8)(unsafe.Pointer(zFormat + 2)))-'a']
+ nextC = *(*int8)(unsafe.Pointer(zFormat + 3))
+ val = 0
+__4:
+ if !(libc.PostDecInt8(&N, 1) != 0) {
+ goto __5
+ }
+ if !!(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&0x04 != 0) {
+ goto __6
+ }
+ goto end_getDigits
+__6:
+ ;
+ val = val*10 + int32(*(*int8)(unsafe.Pointer(zDate))) - '0'
+ zDate++
+ goto __4
+__5:
+ ;
+ if !(val < int32(min) || val > int32(max) || int32(nextC) != 0 && int32(nextC) != int32(*(*int8)(unsafe.Pointer(zDate)))) {
+ goto __7
+ }
+ goto end_getDigits
+__7:
+ ;
+ *(*int32)(unsafe.Pointer(libc.VaUintptr(&ap))) = val
+ zDate++
+ cnt++
+ zFormat += uintptr(4)
+ goto __2
+__2:
+ if nextC != 0 {
+ goto __1
+ }
+ goto __3
+__3:
+ ;
+end_getDigits:
+ _ = ap
+ return cnt
+}
+
+var aMx = [6]U16{U16(12), U16(14), U16(24), U16(31), U16(59), U16(9999)}
+
+func parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var sgn int32
+
+ var c int32
+ sgn = 0
+__1:
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&0x01 != 0) {
+ goto __2
+ }
+ zDate++
+ goto __1
+__2:
+ ;
+ (*DateTime)(unsafe.Pointer(p)).Ftz = 0
+ c = int32(*(*int8)(unsafe.Pointer(zDate)))
+ if !(c == '-') {
+ goto __3
+ }
+ sgn = -1
+ goto __4
+__3:
+ if !(c == '+') {
+ goto __5
+ }
+ sgn = +1
+ goto __6
+__5:
+ if !(c == 'Z' || c == 'z') {
+ goto __7
+ }
+ zDate++
+ goto zulu_time
+ goto __8
+__7:
+ return libc.Bool32(c != 0)
+__8:
+ ;
+__6:
+ ;
+__4:
+ ;
+ zDate++
+ if !(getDigits(tls, zDate, ts+1130, libc.VaList(bp, bp+16, bp+20)) != 2) {
+ goto __9
+ }
+ return 1
+__9:
+ ;
+ zDate += uintptr(5)
+ (*DateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 20)) + *(*int32)(unsafe.Pointer(bp + 16))*60)
+zulu_time:
+__10:
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&0x01 != 0) {
+ goto __11
+ }
+ zDate++
+ goto __10
+__11:
+ ;
+ (*DateTime)(unsafe.Pointer(p)).FtzSet = int8(1)
+ return libc.Bool32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0)
+}
+
+func parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var ms float64 = 0.0
+ if getDigits(tls, zDate, ts+1138, libc.VaList(bp, bp+24, bp+28)) != 2 {
+ return 1
+ }
+ zDate += uintptr(5)
+ if int32(*(*int8)(unsafe.Pointer(zDate))) == ':' {
+ zDate++
+ if getDigits(tls, zDate, ts+1146, libc.VaList(bp+16, bp+32)) != 1 {
+ return 1
+ }
+ zDate += uintptr(2)
+ if int32(*(*int8)(unsafe.Pointer(zDate))) == '.' && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate + 1)))])&0x04 != 0 {
+ var rScale float64 = 1.0
+ zDate++
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&0x04 != 0 {
+ ms = ms*10.0 + float64(*(*int8)(unsafe.Pointer(zDate))) - float64('0')
+ rScale = rScale * 10.0
+ zDate++
+ }
+ ms = ms / rScale
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 32)) = 0
+ }
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp + 24))
+ (*DateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 28))
+ (*DateTime)(unsafe.Pointer(p)).Fs = float64(*(*int32)(unsafe.Pointer(bp + 32))) + ms
+ if parseTimezone(tls, zDate, p) != 0 {
+ return 1
+ }
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = func() int8 {
+ if (*DateTime)(unsafe.Pointer(p)).Ftz != 0 {
+ return int8(1)
+ }
+ return int8(0)
+ }()
+ return 0
+}
+
+func datetimeError(tls *libc.TLS, p uintptr) {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(DateTime{})), libc.X__builtin_object_size(tls, p, 0))
+ (*DateTime)(unsafe.Pointer(p)).FisError = int8(1)
+}
+
+func computeJD(tls *libc.TLS, p uintptr) {
+ var Y int32
+ var M int32
+ var D int32
+ var A int32
+ var B int32
+ var X1 int32
+ var X2 int32
+
+ if (*DateTime)(unsafe.Pointer(p)).FvalidJD != 0 {
+ return
+ }
+ if (*DateTime)(unsafe.Pointer(p)).FvalidYMD != 0 {
+ Y = (*DateTime)(unsafe.Pointer(p)).FY
+ M = (*DateTime)(unsafe.Pointer(p)).FM
+ D = (*DateTime)(unsafe.Pointer(p)).FD
+ } else {
+ Y = 2000
+ M = 1
+ D = 1
+ }
+ if Y < -4713 || Y > 9999 || (*DateTime)(unsafe.Pointer(p)).FrawS != 0 {
+ datetimeError(tls, p)
+ return
+ }
+ if M <= 2 {
+ Y--
+ M = M + 12
+ }
+ A = Y / 100
+ B = 2 - A + A/4
+ X1 = 36525 * (Y + 4716) / 100
+ X2 = 306001 * (M + 1) / 10000
+ (*DateTime)(unsafe.Pointer(p)).FiJD = libc.Int64FromFloat64((float64(X1+X2+D+B) - 1524.5) * float64(86400000))
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ if (*DateTime)(unsafe.Pointer(p)).FvalidHMS != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) += Sqlite3_int64((*DateTime)(unsafe.Pointer(p)).Fh*3600000+(*DateTime)(unsafe.Pointer(p)).Fm*60000) + libc.Int64FromFloat64((*DateTime)(unsafe.Pointer(p)).Fs*float64(1000)+0.5)
+ if (*DateTime)(unsafe.Pointer(p)).FvalidTZ != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) -= Sqlite3_int64((*DateTime)(unsafe.Pointer(p)).Ftz * 60000)
+ (*DateTime)(unsafe.Pointer(p)).FvalidYMD = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
+ }
+ }
+}
+
+func parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var neg int32
+
+ if int32(*(*int8)(unsafe.Pointer(zDate))) == '-' {
+ zDate++
+ neg = 1
+ } else {
+ neg = 0
+ }
+ if getDigits(tls, zDate, ts+1150, libc.VaList(bp, bp+24, bp+28, bp+32)) != 3 {
+ return 1
+ }
+ zDate += uintptr(10)
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&0x01 != 0 || 'T' == int32(*(*U8)(unsafe.Pointer(zDate))) {
+ zDate++
+ }
+ if parseHhMmSs(tls, zDate, p) == 0 {
+ } else if int32(*(*int8)(unsafe.Pointer(zDate))) == 0 {
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(0)
+ } else {
+ return 1
+ }
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FY = func() int32 {
+ if neg != 0 {
+ return -*(*int32)(unsafe.Pointer(bp + 24))
+ }
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }()
+ (*DateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 28))
+ (*DateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 32))
+ if (*DateTime)(unsafe.Pointer(p)).FvalidTZ != 0 {
+ computeJD(tls, p)
+ }
+ return 0
+}
+
+func setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) int32 {
+ (*DateTime)(unsafe.Pointer(p)).FiJD = Xsqlite3StmtCurrentTime(tls, context)
+ if (*DateTime)(unsafe.Pointer(p)).FiJD > int64(0) {
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ return 0
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+func setRawDateNumber(tls *libc.TLS, p uintptr, r float64) {
+ (*DateTime)(unsafe.Pointer(p)).Fs = r
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(1)
+ if r >= 0.0 && r < 5373484.5 {
+ (*DateTime)(unsafe.Pointer(p)).FiJD = libc.Int64FromFloat64(r*86400000.0 + 0.5)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ }
+}
+
+func parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if parseYyyyMmDd(tls, zDate, p) == 0 {
+ return 0
+ } else if parseHhMmSs(tls, zDate, p) == 0 {
+ return 0
+ } else if Xsqlite3StrICmp(tls, zDate, ts+1162) == 0 && Xsqlite3NotPureFunc(tls, context) != 0 {
+ return setDateTimeToCurrent(tls, context, p)
+ } else if Xsqlite3AtoF(tls, zDate, bp, Xsqlite3Strlen30(tls, zDate), uint8(SQLITE_UTF8)) > 0 {
+ setRawDateNumber(tls, p, *(*float64)(unsafe.Pointer(bp)))
+ return 0
+ }
+ return 1
+}
+
+func validJulianDay(tls *libc.TLS, iJD Sqlite3_int64) int32 {
+ return libc.Bool32(iJD >= int64(0) && iJD <= int64(0x1a640)<<32|int64(0x1072fdff))
+}
+
+func computeYMD(tls *libc.TLS, p uintptr) {
+ var Z int32
+ var A int32
+ var B int32
+ var C int32
+ var D int32
+ var E int32
+ var X1 int32
+ if (*DateTime)(unsafe.Pointer(p)).FvalidYMD != 0 {
+ return
+ }
+ if !(int32((*DateTime)(unsafe.Pointer(p)).FvalidJD) != 0) {
+ (*DateTime)(unsafe.Pointer(p)).FY = 2000
+ (*DateTime)(unsafe.Pointer(p)).FM = 1
+ (*DateTime)(unsafe.Pointer(p)).FD = 1
+ } else if !(validJulianDay(tls, (*DateTime)(unsafe.Pointer(p)).FiJD) != 0) {
+ datetimeError(tls, p)
+ return
+ } else {
+ Z = int32(((*DateTime)(unsafe.Pointer(p)).FiJD + int64(43200000)) / int64(86400000))
+ A = libc.Int32FromFloat64((float64(Z) - 1867216.25) / 36524.25)
+ A = Z + 1 + A - A/4
+ B = A + 1524
+ C = libc.Int32FromFloat64((float64(B) - 122.1) / 365.25)
+ D = 36525 * (C & 32767) / 100
+ E = libc.Int32FromFloat64(float64(B-D) / 30.6001)
+ X1 = libc.Int32FromFloat64(30.6001 * float64(E))
+ (*DateTime)(unsafe.Pointer(p)).FD = B - D - X1
+ (*DateTime)(unsafe.Pointer(p)).FM = func() int32 {
+ if E < 14 {
+ return E - 1
+ }
+ return E - 13
+ }()
+ (*DateTime)(unsafe.Pointer(p)).FY = func() int32 {
+ if (*DateTime)(unsafe.Pointer(p)).FM > 2 {
+ return C - 4716
+ }
+ return C - 4715
+ }()
+ }
+ (*DateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1)
+}
+
+func computeHMS(tls *libc.TLS, p uintptr) {
+ var s int32
+ if (*DateTime)(unsafe.Pointer(p)).FvalidHMS != 0 {
+ return
+ }
+ computeJD(tls, p)
+ s = int32(((*DateTime)(unsafe.Pointer(p)).FiJD + int64(43200000)) % int64(86400000))
+ (*DateTime)(unsafe.Pointer(p)).Fs = float64(s) / 1000.0
+ s = libc.Int32FromFloat64((*DateTime)(unsafe.Pointer(p)).Fs)
+ *(*float64)(unsafe.Pointer(p + 32)) -= float64(s)
+ (*DateTime)(unsafe.Pointer(p)).Fh = s / 3600
+ s = s - (*DateTime)(unsafe.Pointer(p)).Fh*3600
+ (*DateTime)(unsafe.Pointer(p)).Fm = s / 60
+ *(*float64)(unsafe.Pointer(p + 32)) += float64(s - (*DateTime)(unsafe.Pointer(p)).Fm*60)
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1)
+}
+
+func computeYMD_HMS(tls *libc.TLS, p uintptr) {
+ computeYMD(tls, p)
+ computeHMS(tls, p)
+}
+
+func clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) {
+ (*DateTime)(unsafe.Pointer(p)).FvalidYMD = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
+}
+
+func osLocaltime(tls *libc.TLS, t uintptr, pTm uintptr) int32 {
+ var rc int32
+ var pX uintptr
+ var mutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, mutex)
+ pX = libc.Xlocaltime(tls, t)
+ if Xsqlite3Config.FbLocaltimeFault != 0 {
+ if Xsqlite3Config.FxAltLocaltime != uintptr(0) &&
+ 0 == (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.FxAltLocaltime})).f(tls, t, pTm) {
+ pX = pTm
+ } else {
+ pX = uintptr(0)
+ }
+ }
+ if pX != 0 {
+ *(*tm)(unsafe.Pointer(pTm)) = *(*tm)(unsafe.Pointer(pX))
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+ rc = libc.Bool32(pX == uintptr(0))
+ return rc
+}
+
+func toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) int32 {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var iYearDiff int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(tm{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ computeJD(tls, p)
+ if (*DateTime)(unsafe.Pointer(p)).FiJD < int64(2108667600)*int64(100000) ||
+ (*DateTime)(unsafe.Pointer(p)).FiJD > int64(2130141456)*int64(100000) {
+ *(*DateTime)(unsafe.Pointer(bp + 56)) = *(*DateTime)(unsafe.Pointer(p))
+ computeYMD_HMS(tls, bp+56)
+ iYearDiff = 2000 + (*DateTime)(unsafe.Pointer(bp+56)).FY%4 - (*DateTime)(unsafe.Pointer(bp+56)).FY
+ *(*int32)(unsafe.Pointer(bp + 56 + 8)) += iYearDiff
+ (*DateTime)(unsafe.Pointer(bp + 56)).FvalidJD = int8(0)
+ computeJD(tls, bp+56)
+ *(*Time_t)(unsafe.Pointer(bp + 104)) = (*DateTime)(unsafe.Pointer(bp+56)).FiJD/int64(1000) - int64(21086676)*int64(10000)
+ } else {
+ iYearDiff = 0
+ *(*Time_t)(unsafe.Pointer(bp + 104)) = (*DateTime)(unsafe.Pointer(p)).FiJD/int64(1000) - int64(21086676)*int64(10000)
+ }
+ if osLocaltime(tls, bp+104, bp) != 0 {
+ Xsqlite3_result_error(tls, pCtx, ts+1166, -1)
+ return SQLITE_ERROR
+ }
+ (*DateTime)(unsafe.Pointer(p)).FY = (*tm)(unsafe.Pointer(bp)).Ftm_year + 1900 - iYearDiff
+ (*DateTime)(unsafe.Pointer(p)).FM = (*tm)(unsafe.Pointer(bp)).Ftm_mon + 1
+ (*DateTime)(unsafe.Pointer(p)).FD = (*tm)(unsafe.Pointer(bp)).Ftm_mday
+ (*DateTime)(unsafe.Pointer(p)).Fh = (*tm)(unsafe.Pointer(bp)).Ftm_hour
+ (*DateTime)(unsafe.Pointer(p)).Fm = (*tm)(unsafe.Pointer(bp)).Ftm_min
+ (*DateTime)(unsafe.Pointer(p)).Fs = float64((*tm)(unsafe.Pointer(bp)).Ftm_sec) + float64((*DateTime)(unsafe.Pointer(p)).FiJD%int64(1000))*0.001
+ (*DateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FisError = int8(0)
+ return SQLITE_OK
+}
+
+var aXformType = [6]struct {
+ FnName U8
+ FzName [7]int8
+ FrLimit float32
+ FrXform float32
+}{
+ {FnName: U8(6), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1189)), FrLimit: 4.6427e+14, FrXform: 1.0},
+ {FnName: U8(6), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1196)), FrLimit: 7.7379e+12, FrXform: 60.0},
+ {FnName: U8(4), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1203)), FrLimit: 1.2897e+11, FrXform: 3600.0},
+ {FnName: U8(3), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1210)), FrLimit: 5373485.0, FrXform: 86400.0},
+ {FnName: U8(5), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1217)), FrLimit: 176546.0, FrXform: 2592000.0},
+ {FnName: U8(4), FzName: *(*[7]int8)(unsafe.Pointer(ts + 1224)), FrLimit: 14713.0, FrXform: 31536000.0},
+}
+
+func parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, idx int32) int32 {
+ bp := tls.Alloc(104)
+ defer tls.Free(104)
+
+ var rc int32 = 1
+
+ switch int32(Xsqlite3UpperToLower[U8(*(*int8)(unsafe.Pointer(z)))]) {
+ case 'a':
+ {
+ if Xsqlite3_stricmp(tls, z, ts+1231) == 0 {
+ if idx > 1 {
+ return 1
+ }
+ if !(int32((*DateTime)(unsafe.Pointer(p)).FrawS) != 0) || (*DateTime)(unsafe.Pointer(p)).FvalidJD != 0 {
+ rc = 0
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ } else if (*DateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-21086676)*int64(10000)) &&
+ (*DateTime)(unsafe.Pointer(p)).Fs <= float64(int64(25340230)*int64(10000)+int64(799)) {
+ *(*float64)(unsafe.Pointer(bp + 48)) = (*DateTime)(unsafe.Pointer(p)).Fs*1000.0 + 210866760000000.0
+ clearYMD_HMS_TZ(tls, p)
+ (*DateTime)(unsafe.Pointer(p)).FiJD = libc.Int64FromFloat64(*(*float64)(unsafe.Pointer(bp + 48)) + 0.5)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ rc = 0
+ }
+ }
+ break
+
+ }
+ case 'j':
+ {
+ if Xsqlite3_stricmp(tls, z, ts+1236) == 0 {
+ if idx > 1 {
+ return 1
+ }
+ if (*DateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*DateTime)(unsafe.Pointer(p)).FrawS != 0 {
+ rc = 0
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ }
+ }
+ break
+
+ }
+ case 'l':
+ {
+ if Xsqlite3_stricmp(tls, z, ts+1246) == 0 && Xsqlite3NotPureFunc(tls, pCtx) != 0 {
+ rc = toLocaltime(tls, p, pCtx)
+ }
+ break
+
+ }
+ case 'u':
+ {
+ if Xsqlite3_stricmp(tls, z, ts+1256) == 0 && (*DateTime)(unsafe.Pointer(p)).FrawS != 0 {
+ if idx > 1 {
+ return 1
+ }
+ *(*float64)(unsafe.Pointer(bp + 48)) = (*DateTime)(unsafe.Pointer(p)).Fs*1000.0 + 210866760000000.0
+ if *(*float64)(unsafe.Pointer(bp + 48)) >= 0.0 && *(*float64)(unsafe.Pointer(bp + 48)) < 464269060800000.0 {
+ clearYMD_HMS_TZ(tls, p)
+ (*DateTime)(unsafe.Pointer(p)).FiJD = libc.Int64FromFloat64(*(*float64)(unsafe.Pointer(bp + 48)) + 0.5)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ rc = 0
+ }
+ } else if Xsqlite3_stricmp(tls, z, ts+1266) == 0 && Xsqlite3NotPureFunc(tls, pCtx) != 0 {
+ if int32((*DateTime)(unsafe.Pointer(p)).FtzSet) == 0 {
+ var iOrigJD I64
+ var iGuess I64
+ var cnt int32 = 0
+ var iErr I64
+
+ computeJD(tls, p)
+ iGuess = libc.AssignInt64(&iOrigJD, (*DateTime)(unsafe.Pointer(p)).FiJD)
+ iErr = int64(0)
+ for __ccgo := true; __ccgo; __ccgo = iErr != 0 && libc.PostIncInt32(&cnt, 1) < 3 {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(DateTime{})), libc.X__builtin_object_size(tls, bp, 0))
+ iGuess = iGuess - iErr
+ (*DateTime)(unsafe.Pointer(bp)).FiJD = iGuess
+ (*DateTime)(unsafe.Pointer(bp)).FvalidJD = int8(1)
+ rc = toLocaltime(tls, bp, pCtx)
+ if rc != 0 {
+ return rc
+ }
+ computeJD(tls, bp)
+ iErr = (*DateTime)(unsafe.Pointer(bp)).FiJD - iOrigJD
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(DateTime{})), libc.X__builtin_object_size(tls, p, 0))
+ (*DateTime)(unsafe.Pointer(p)).FiJD = iGuess
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).FtzSet = int8(1)
+ }
+ rc = SQLITE_OK
+ }
+ break
+
+ }
+ case 'w':
+ {
+ if Xsqlite3_strnicmp(tls, z, ts+1270, 8) == 0 &&
+ Xsqlite3AtoF(tls, z+8, bp+48, Xsqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 &&
+ *(*float64)(unsafe.Pointer(bp + 48)) >= 0.0 && *(*float64)(unsafe.Pointer(bp + 48)) < 7.0 && float64(libc.AssignInt32(&n, int32(*(*float64)(unsafe.Pointer(bp + 48))))) == *(*float64)(unsafe.Pointer(bp + 48)) {
+ var Z Sqlite3_int64
+ computeYMD_HMS(tls, p)
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ computeJD(tls, p)
+ Z = ((*DateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7)
+ if Z > Sqlite3_int64(n) {
+ Z = Z - int64(7)
+ }
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) += (Sqlite3_int64(n) - Z) * int64(86400000)
+ clearYMD_HMS_TZ(tls, p)
+ rc = 0
+ }
+ break
+
+ }
+ case 's':
+ {
+ if Xsqlite3_strnicmp(tls, z, ts+1279, 9) != 0 {
+ break
+ }
+ if !(int32((*DateTime)(unsafe.Pointer(p)).FvalidJD) != 0) && !(int32((*DateTime)(unsafe.Pointer(p)).FvalidYMD) != 0) && !(int32((*DateTime)(unsafe.Pointer(p)).FvalidHMS) != 0) {
+ break
+ }
+ z += uintptr(9)
+ computeYMD(tls, p)
+ (*DateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1)
+ (*DateTime)(unsafe.Pointer(p)).Fh = libc.AssignPtrInt32(p+24, 0)
+ (*DateTime)(unsafe.Pointer(p)).Fs = 0.0
+ (*DateTime)(unsafe.Pointer(p)).FrawS = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidTZ = int8(0)
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ if Xsqlite3_stricmp(tls, z, ts+1289) == 0 {
+ (*DateTime)(unsafe.Pointer(p)).FD = 1
+ rc = 0
+ } else if Xsqlite3_stricmp(tls, z, ts+1295) == 0 {
+ (*DateTime)(unsafe.Pointer(p)).FM = 1
+ (*DateTime)(unsafe.Pointer(p)).FD = 1
+ rc = 0
+ } else if Xsqlite3_stricmp(tls, z, ts+1300) == 0 {
+ rc = 0
+ }
+ break
+
+ }
+ case '+':
+ fallthrough
+ case '-':
+ fallthrough
+ case '0':
+ fallthrough
+ case '1':
+ fallthrough
+ case '2':
+ fallthrough
+ case '3':
+ fallthrough
+ case '4':
+ fallthrough
+ case '5':
+ fallthrough
+ case '6':
+ fallthrough
+ case '7':
+ fallthrough
+ case '8':
+ fallthrough
+ case '9':
+ {
+ var rRounder float64
+ var i int32
+ for n = 1; *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) != ':' && !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n))))])&0x01 != 0); n++ {
+ }
+ if Xsqlite3AtoF(tls, z, bp+48, n, uint8(SQLITE_UTF8)) <= 0 {
+ rc = 1
+ break
+ }
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == ':' {
+ var z2 uintptr = z
+
+ var day Sqlite3_int64
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z2)))])&0x04 != 0) {
+ z2++
+ }
+ libc.X__builtin___memset_chk(tls, bp+56, 0, uint64(unsafe.Sizeof(DateTime{})), libc.X__builtin_object_size(tls, bp+56, 0))
+ if parseHhMmSs(tls, z2, bp+56) != 0 {
+ break
+ }
+ computeJD(tls, bp+56)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 56)) -= int64(43200000)
+ day = (*DateTime)(unsafe.Pointer(bp+56)).FiJD / int64(86400000)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 56)) -= day * int64(86400000)
+ if int32(*(*int8)(unsafe.Pointer(z))) == '-' {
+ (*DateTime)(unsafe.Pointer(bp + 56)).FiJD = -(*DateTime)(unsafe.Pointer(bp + 56)).FiJD
+ }
+ computeJD(tls, p)
+ clearYMD_HMS_TZ(tls, p)
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) += (*DateTime)(unsafe.Pointer(bp + 56)).FiJD
+ rc = 0
+ break
+ }
+
+ z += uintptr(n)
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x01 != 0 {
+ z++
+ }
+ n = Xsqlite3Strlen30(tls, z)
+ if n > 10 || n < 3 {
+ break
+ }
+ if int32(Xsqlite3UpperToLower[U8(*(*int8)(unsafe.Pointer(z + uintptr(n-1))))]) == 's' {
+ n--
+ }
+ computeJD(tls, p)
+ rc = 1
+ if *(*float64)(unsafe.Pointer(bp + 48)) < float64(0) {
+ rRounder = -0.5
+ } else {
+ rRounder = +0.5
+ }
+ for i = 0; i < int32(uint64(unsafe.Sizeof(aXformType))/uint64(unsafe.Sizeof(struct {
+ FnName U8
+ FzName [7]int8
+ FrLimit float32
+ FrXform float32
+ }{}))); i++ {
+ if int32(aXformType[i].FnName) == n &&
+ Xsqlite3_strnicmp(tls, uintptr(unsafe.Pointer(&aXformType))+uintptr(i)*16+1, z, n) == 0 &&
+ *(*float64)(unsafe.Pointer(bp + 48)) > float64(-aXformType[i].FrLimit) && *(*float64)(unsafe.Pointer(bp + 48)) < float64(aXformType[i].FrLimit) {
+ switch i {
+ case 4:
+ {
+ var x int32
+
+ computeYMD_HMS(tls, p)
+ *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp + 48)))
+ if (*DateTime)(unsafe.Pointer(p)).FM > 0 {
+ x = ((*DateTime)(unsafe.Pointer(p)).FM - 1) / 12
+ } else {
+ x = ((*DateTime)(unsafe.Pointer(p)).FM - 12) / 12
+ }
+ *(*int32)(unsafe.Pointer(p + 8)) += x
+ *(*int32)(unsafe.Pointer(p + 12)) -= x * 12
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ *(*float64)(unsafe.Pointer(bp + 48)) -= float64(int32(*(*float64)(unsafe.Pointer(bp + 48))))
+ break
+
+ }
+ fallthrough
+ case 5:
+ {
+ var y int32 = int32(*(*float64)(unsafe.Pointer(bp + 48)))
+
+ computeYMD_HMS(tls, p)
+ *(*int32)(unsafe.Pointer(p + 8)) += y
+ (*DateTime)(unsafe.Pointer(p)).FvalidJD = int8(0)
+ *(*float64)(unsafe.Pointer(bp + 48)) -= float64(int32(*(*float64)(unsafe.Pointer(bp + 48))))
+ break
+
+ }
+ }
+ computeJD(tls, p)
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) += libc.Int64FromFloat64(*(*float64)(unsafe.Pointer(bp + 48))*1000.0*float64(aXformType[i].FrXform) + rRounder)
+ rc = 0
+ break
+ }
+ }
+ clearYMD_HMS_TZ(tls, p)
+ break
+
+ }
+ default:
+ {
+ break
+
+ }
+ }
+ return rc
+}
+
+func isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr) int32 {
+ var i int32
+ var n int32
+ var z uintptr
+ var eType int32
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(DateTime{})), libc.X__builtin_object_size(tls, p, 0))
+ if argc == 0 {
+ if !(Xsqlite3NotPureFunc(tls, context) != 0) {
+ return 1
+ }
+ return setDateTimeToCurrent(tls, context, p)
+ }
+ if libc.AssignInt32(&eType, Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv)))) == SQLITE_FLOAT ||
+ eType == SQLITE_INTEGER {
+ setRawDateNumber(tls, p, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))))
+ } else {
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if !(z != 0) || parseDateOrTime(tls, context, z, p) != 0 {
+ return 1
+ }
+ }
+ for i = 1; i < argc; i++ {
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ if z == uintptr(0) || parseModifier(tls, context, z, n, p, i) != 0 {
+ return 1
+ }
+ }
+ computeJD(tls, p)
+ if (*DateTime)(unsafe.Pointer(p)).FisError != 0 || !(validJulianDay(tls, (*DateTime)(unsafe.Pointer(p)).FiJD) != 0) {
+ return 1
+ }
+ return 0
+}
+
+func juliandayFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if isDate(tls, context, argc, argv, bp) == 0 {
+ computeJD(tls, bp)
+ Xsqlite3_result_double(tls, context, float64((*DateTime)(unsafe.Pointer(bp)).FiJD)/86400000.0)
+ }
+}
+
+func unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if isDate(tls, context, argc, argv, bp) == 0 {
+ computeJD(tls, bp)
+ Xsqlite3_result_int64(tls, context, (*DateTime)(unsafe.Pointer(bp)).FiJD/int64(1000)-int64(21086676)*int64(10000))
+ }
+}
+
+func datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ if isDate(tls, context, argc, argv, bp) == 0 {
+ var Y int32
+ var s int32
+
+ computeYMD_HMS(tls, bp)
+ Y = (*DateTime)(unsafe.Pointer(bp)).FY
+ if Y < 0 {
+ Y = -Y
+ }
+ *(*int8)(unsafe.Pointer(bp + 48 + 1)) = int8('0' + Y/1000%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 2)) = int8('0' + Y/100%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 3)) = int8('0' + Y/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 4)) = int8('0' + Y%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 5)) = int8('-')
+ *(*int8)(unsafe.Pointer(bp + 48 + 6)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FM/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 7)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FM%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 8)) = int8('-')
+ *(*int8)(unsafe.Pointer(bp + 48 + 9)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FD/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 10)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FD%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 11)) = int8(' ')
+ *(*int8)(unsafe.Pointer(bp + 48 + 12)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fh/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 13)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fh%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 14)) = int8(':')
+ *(*int8)(unsafe.Pointer(bp + 48 + 15)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fm/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 16)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fm%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 17)) = int8(':')
+ s = libc.Int32FromFloat64((*DateTime)(unsafe.Pointer(bp)).Fs)
+ *(*int8)(unsafe.Pointer(bp + 48 + 18)) = int8('0' + s/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 19)) = int8('0' + s%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 20)) = int8(0)
+ if (*DateTime)(unsafe.Pointer(bp)).FY < 0 {
+ *(*int8)(unsafe.Pointer(bp + 48)) = int8('-')
+ Xsqlite3_result_text(tls, context, bp+48, 20, libc.UintptrFromInt32(-1))
+ } else {
+ Xsqlite3_result_text(tls, context, bp+48+1, 19, libc.UintptrFromInt32(-1))
+ }
+ }
+}
+
+func timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ if isDate(tls, context, argc, argv, bp) == 0 {
+ var s int32
+
+ computeHMS(tls, bp)
+ *(*int8)(unsafe.Pointer(bp + 48)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fh/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 1)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fh%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 2)) = int8(':')
+ *(*int8)(unsafe.Pointer(bp + 48 + 3)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fm/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 4)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).Fm%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 5)) = int8(':')
+ s = libc.Int32FromFloat64((*DateTime)(unsafe.Pointer(bp)).Fs)
+ *(*int8)(unsafe.Pointer(bp + 48 + 6)) = int8('0' + s/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 7)) = int8('0' + s%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 8)) = int8(0)
+ Xsqlite3_result_text(tls, context, bp+48, 8, libc.UintptrFromInt32(-1))
+ }
+}
+
+func dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ if isDate(tls, context, argc, argv, bp) == 0 {
+ var Y int32
+
+ computeYMD(tls, bp)
+ Y = (*DateTime)(unsafe.Pointer(bp)).FY
+ if Y < 0 {
+ Y = -Y
+ }
+ *(*int8)(unsafe.Pointer(bp + 48 + 1)) = int8('0' + Y/1000%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 2)) = int8('0' + Y/100%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 3)) = int8('0' + Y/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 4)) = int8('0' + Y%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 5)) = int8('-')
+ *(*int8)(unsafe.Pointer(bp + 48 + 6)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FM/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 7)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FM%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 8)) = int8('-')
+ *(*int8)(unsafe.Pointer(bp + 48 + 9)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FD/10%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 10)) = int8('0' + (*DateTime)(unsafe.Pointer(bp)).FD%10)
+ *(*int8)(unsafe.Pointer(bp + 48 + 11)) = int8(0)
+ if (*DateTime)(unsafe.Pointer(bp)).FY < 0 {
+ *(*int8)(unsafe.Pointer(bp + 48)) = int8('-')
+ Xsqlite3_result_text(tls, context, bp+48, 11, libc.UintptrFromInt32(-1))
+ } else {
+ Xsqlite3_result_text(tls, context, bp+48+1, 10, libc.UintptrFromInt32(-1))
+ }
+ }
+}
+
+func strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(216)
+ defer tls.Free(216)
+
+ var i Size_t
+ var j Size_t
+ var db uintptr
+ var zFmt uintptr
+
+ if argc == 0 {
+ return
+ }
+ zFmt = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zFmt == uintptr(0) || isDate(tls, context, argc-1, argv+uintptr(1)*8, bp+88) != 0 {
+ return
+ }
+ db = Xsqlite3_context_db_handle(tls, context)
+ Xsqlite3StrAccumInit(tls, bp+136, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer(db + 136)))
+
+ computeJD(tls, bp+88)
+ computeYMD_HMS(tls, bp+88)
+ for i = libc.AssignUint64(&j, uint64(0)); *(*int8)(unsafe.Pointer(zFmt + uintptr(i))) != 0; i++ {
+ if int32(*(*int8)(unsafe.Pointer(zFmt + uintptr(i)))) != '%' {
+ continue
+ }
+ if j < i {
+ Xsqlite3_str_append(tls, bp+136, zFmt+uintptr(j), int32(i-j))
+ }
+ i++
+ j = i + uint64(1)
+ switch int32(*(*int8)(unsafe.Pointer(zFmt + uintptr(i)))) {
+ case 'd':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp, (*DateTime)(unsafe.Pointer(bp+88)).FD))
+ break
+
+ }
+ case 'f':
+ {
+ var s float64 = (*DateTime)(unsafe.Pointer(bp + 88)).Fs
+ if s > 59.999 {
+ s = 59.999
+ }
+ Xsqlite3_str_appendf(tls, bp+136, ts+1309, libc.VaList(bp+8, s))
+ break
+
+ }
+ case 'H':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp+16, (*DateTime)(unsafe.Pointer(bp+88)).Fh))
+ break
+
+ }
+ case 'W':
+ fallthrough
+ case 'j':
+ {
+ var nDay int32
+ *(*DateTime)(unsafe.Pointer(bp + 168)) = *(*DateTime)(unsafe.Pointer(bp + 88))
+ (*DateTime)(unsafe.Pointer(bp + 168)).FvalidJD = int8(0)
+ (*DateTime)(unsafe.Pointer(bp + 168)).FM = 1
+ (*DateTime)(unsafe.Pointer(bp + 168)).FD = 1
+ computeJD(tls, bp+168)
+ nDay = int32(((*DateTime)(unsafe.Pointer(bp+88)).FiJD - (*DateTime)(unsafe.Pointer(bp+168)).FiJD + int64(43200000)) / int64(86400000))
+ if int32(*(*int8)(unsafe.Pointer(zFmt + uintptr(i)))) == 'W' {
+ var wd int32
+ wd = int32(((*DateTime)(unsafe.Pointer(bp+88)).FiJD + int64(43200000)) / int64(86400000) % int64(7))
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp+24, (nDay+7-wd)/7))
+ } else {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1316, libc.VaList(bp+32, nDay+1))
+ }
+ break
+
+ }
+ case 'J':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1321, libc.VaList(bp+40, float64((*DateTime)(unsafe.Pointer(bp+88)).FiJD)/86400000.0))
+ break
+
+ }
+ case 'm':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp+48, (*DateTime)(unsafe.Pointer(bp+88)).FM))
+ break
+
+ }
+ case 'M':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp+56, (*DateTime)(unsafe.Pointer(bp+88)).Fm))
+ break
+
+ }
+ case 's':
+ {
+ var iS I64 = (*DateTime)(unsafe.Pointer(bp+88)).FiJD/int64(1000) - int64(21086676)*int64(10000)
+ Xsqlite3_str_appendf(tls, bp+136, ts+1327, libc.VaList(bp+64, iS))
+ break
+
+ }
+ case 'S':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1304, libc.VaList(bp+72, libc.Int32FromFloat64((*DateTime)(unsafe.Pointer(bp+88)).Fs)))
+ break
+
+ }
+ case 'w':
+ {
+ Xsqlite3_str_appendchar(tls, bp+136, 1,
+ int8(int32(int8(((*DateTime)(unsafe.Pointer(bp+88)).FiJD+int64(129600000))/int64(86400000)%int64(7)))+'0'))
+ break
+
+ }
+ case 'Y':
+ {
+ Xsqlite3_str_appendf(tls, bp+136, ts+1332, libc.VaList(bp+80, (*DateTime)(unsafe.Pointer(bp+88)).FY))
+ break
+
+ }
+ case '%':
+ {
+ Xsqlite3_str_appendchar(tls, bp+136, 1, int8('%'))
+ break
+
+ }
+ default:
+ {
+ Xsqlite3_str_reset(tls, bp+136)
+ return
+
+ }
+ }
+ }
+ if j < i {
+ Xsqlite3_str_append(tls, bp+136, zFmt+uintptr(j), int32(i-j))
+ }
+ Xsqlite3ResultStrAccum(tls, context, bp+136)
+}
+
+func ctimeFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ _ = NotUsed
+ _ = NotUsed2
+ timeFunc(tls, context, 0, uintptr(0))
+}
+
+func cdateFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ _ = NotUsed
+ _ = NotUsed2
+ dateFunc(tls, context, 0, uintptr(0))
+}
+
+func ctimestampFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ _ = NotUsed
+ _ = NotUsed2
+ datetimeFunc(tls, context, 0, uintptr(0))
+}
+
+// This function registered all of the above C functions as SQL
+// functions. This should be the only routine in this file with
+// external linkage.
+func Xsqlite3RegisterDateTimeFunctions(tls *libc.TLS) {
+ Xsqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&aDateTimeFuncs)), int32(uint64(unsafe.Sizeof(aDateTimeFuncs))/uint64(unsafe.Sizeof(FuncDef{}))))
+}
+
+var aDateTimeFuncs = [9]FuncDef{
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1236},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1256},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1337},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1342},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1347},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FpUserData: 0, FxSFunc: 0, FzName: ts + 1356},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 1365},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 1378},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 1396}}
+
+// The following routines are convenience wrappers around methods
+// of the sqlite3_file object. This is mostly just syntactic sugar. All
+// of this would be completely automatic if SQLite were coded using
+// C++ instead of plain old C.
+func Xsqlite3OsClose(tls *libc.TLS, pId uintptr) {
+ if (*Sqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})).f(tls, pId)
+ (*Sqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0)
+ }
+}
+
+func Xsqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset I64) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})).f(tls, id, pBuf, amt, offset)
+}
+
+func Xsqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset I64) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})).f(tls, id, pBuf, amt, offset)
+}
+
+func Xsqlite3OsTruncate(tls *libc.TLS, id uintptr, size I64) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})).f(tls, id, size)
+}
+
+func Xsqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) int32 {
+ if flags != 0 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})).f(tls, id, flags)
+ }
+ return SQLITE_OK
+}
+
+func Xsqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})).f(tls, id, pSize)
+}
+
+func Xsqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})).f(tls, id, lockType)
+}
+
+func Xsqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})).f(tls, id, lockType)
+}
+
+func Xsqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})).f(tls, id, pResOut)
+}
+
+// Use sqlite3OsFileControl() when we are doing something that might fail
+// and we need to know about the failures. Use sqlite3OsFileControlHint()
+// when simply tossing information over the wall to the VFS and we do not
+// really care if the VFS receives and understands the information since it
+// is only a hint and can be safely ignored. The sqlite3OsFileControlHint()
+// routine has no return value since the return value would be meaningless.
+func Xsqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) int32 {
+ if (*Sqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) {
+ return SQLITE_NOTFOUND
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})).f(tls, id, op, pArg)
+}
+
+func Xsqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) {
+ if (*Sqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})).f(tls, id, op, pArg)
+ }
+}
+
+func Xsqlite3OsSectorSize(tls *libc.TLS, id uintptr) int32 {
+ var xSectorSize uintptr = (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize
+ return func() int32 {
+ if xSectorSize != 0 {
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xSectorSize})).f(tls, id)
+ }
+ return SQLITE_DEFAULT_SECTOR_SIZE
+ }()
+}
+
+func Xsqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) int32 {
+ if (*Sqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) {
+ return 0
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})).f(tls, id)
+}
+
+func Xsqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})).f(tls, id, offset, n, flags)
+}
+
+func Xsqlite3OsShmBarrier(tls *libc.TLS, id uintptr) {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})).f(tls, id)
+}
+
+func Xsqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})).f(tls, id, deleteFlag)
+}
+
+func Xsqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})).f(tls, id, iPage, pgsz, bExtend, pp)
+}
+
+// The real implementation of xFetch and xUnfetch
+func Xsqlite3OsFetch(tls *libc.TLS, id uintptr, iOff I64, iAmt int32, pp uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})).f(tls, id, iOff, iAmt, pp)
+}
+
+func Xsqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff I64, p uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})).f(tls, id, iOff, p)
+}
+
+// The next group of routines are convenience wrappers around the
+// VFS methods.
+func Xsqlite3OsOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags int32, pFlagsOut uintptr) int32 {
+ var rc int32
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_filename, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxOpen})).f(tls, pVfs, zPath, pFile, flags&0x1087f7f, pFlagsOut)
+
+ return rc
+}
+
+func Xsqlite3OsDelete(tls *libc.TLS, pVfs uintptr, zPath uintptr, dirSync int32) int32 {
+ if (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDelete != uintptr(0) {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDelete})).f(tls, pVfs, zPath, dirSync)
+ }
+ return SQLITE_OK
+}
+
+func Xsqlite3OsAccess(tls *libc.TLS, pVfs uintptr, zPath uintptr, flags int32, pResOut uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxAccess})).f(tls, pVfs, zPath, flags, pResOut)
+}
+
+func Xsqlite3OsFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nPathOut int32, zPathOut uintptr) int32 {
+ *(*int8)(unsafe.Pointer(zPathOut)) = int8(0)
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxFullPathname})).f(tls, pVfs, zPath, nPathOut, zPathOut)
+}
+
+func Xsqlite3OsDlOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr) uintptr {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDlOpen})).f(tls, pVfs, zPath)
+}
+
+func Xsqlite3OsDlError(tls *libc.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDlError})).f(tls, pVfs, nByte, zBufOut)
+}
+
+func Xsqlite3OsDlSym(tls *libc.TLS, pVfs uintptr, pHdle uintptr, zSym uintptr) uintptr {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDlSym})).f(tls, pVfs, pHdle, zSym)
+}
+
+func Xsqlite3OsDlClose(tls *libc.TLS, pVfs uintptr, pHandle uintptr) {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxDlClose})).f(tls, pVfs, pHandle)
+}
+
+func Xsqlite3OsRandomness(tls *libc.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) int32 {
+ if Xsqlite3Config.FiPrngSeed != 0 {
+ libc.X__builtin___memset_chk(tls, zBufOut, 0, uint64(nByte), libc.X__builtin_object_size(tls, zBufOut, 0))
+ if nByte > int32(unsafe.Sizeof(uint32(0))) {
+ nByte = int32(unsafe.Sizeof(uint32(0)))
+ }
+ libc.X__builtin___memcpy_chk(tls, zBufOut, uintptr(unsafe.Pointer(&Xsqlite3Config))+432, uint64(nByte), libc.X__builtin_object_size(tls, zBufOut, 0))
+ return SQLITE_OK
+ } else {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxRandomness})).f(tls, pVfs, nByte, zBufOut)
+ }
+ return int32(0)
+
+}
+
+func Xsqlite3OsSleep(tls *libc.TLS, pVfs uintptr, nMicro int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxSleep})).f(tls, pVfs, nMicro)
+}
+
+func Xsqlite3OsGetLastError(tls *libc.TLS, pVfs uintptr) int32 {
+ if (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxGetLastError != 0 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxGetLastError})).f(tls, pVfs, 0, uintptr(0))
+ }
+ return 0
+}
+
+func Xsqlite3OsCurrentTimeInt64(tls *libc.TLS, pVfs uintptr, pTimeOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ if (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FiVersion >= 2 && (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTimeInt64 != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTimeInt64})).f(tls, pVfs, pTimeOut)
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTime})).f(tls, pVfs, bp)
+ *(*Sqlite3_int64)(unsafe.Pointer(pTimeOut)) = libc.Int64FromFloat64(*(*float64)(unsafe.Pointer(bp)) * 86400000.0)
+ }
+ return rc
+}
+
+func Xsqlite3OsOpenMalloc(tls *libc.TLS, pVfs uintptr, zFile uintptr, ppFile uintptr, flags int32, pOutFlags uintptr) int32 {
+ var rc int32
+ var pFile uintptr
+ pFile = Xsqlite3MallocZero(tls, uint64((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile))
+ if pFile != 0 {
+ rc = Xsqlite3OsOpen(tls, pVfs, zFile, pFile, flags, pOutFlags)
+ if rc != SQLITE_OK {
+ Xsqlite3_free(tls, pFile)
+ *(*uintptr)(unsafe.Pointer(ppFile)) = uintptr(0)
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppFile)) = pFile
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppFile)) = uintptr(0)
+ rc = SQLITE_NOMEM
+ }
+
+ return rc
+}
+
+func Xsqlite3OsCloseFree(tls *libc.TLS, pFile uintptr) {
+ Xsqlite3OsClose(tls, pFile)
+ Xsqlite3_free(tls, pFile)
+}
+
+// This function is a wrapper around the OS specific implementation of
+// sqlite3_os_init(). The purpose of the wrapper is to provide the
+// ability to simulate a malloc failure, so that the handling of an
+// error in sqlite3_os_init() by the upper layers can be tested.
+func Xsqlite3OsInit(tls *libc.TLS) int32 {
+ var p uintptr = Xsqlite3_malloc(tls, 10)
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ Xsqlite3_free(tls, p)
+ return Xsqlite3_os_init(tls)
+}
+
+var vfsList uintptr = uintptr(0)
+
+// Locate a VFS by name. If no name is given, simply return the
+// first VFS on the list.
+func Xsqlite3_vfs_find(tls *libc.TLS, zVfs uintptr) uintptr {
+ var pVfs uintptr = uintptr(0)
+ var mutex uintptr
+ var rc int32 = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ mutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, mutex)
+ for pVfs = vfsList; pVfs != 0; pVfs = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpNext {
+ if zVfs == uintptr(0) {
+ break
+ }
+ if libc.Xstrcmp(tls, zVfs, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FzName) == 0 {
+ break
+ }
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+ return pVfs
+}
+
+func vfsUnlink(tls *libc.TLS, pVfs uintptr) {
+ if pVfs == uintptr(0) {
+ } else if vfsList == pVfs {
+ vfsList = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpNext
+ } else if vfsList != 0 {
+ var p uintptr = vfsList
+ for (*Sqlite3_vfs)(unsafe.Pointer(p)).FpNext != 0 && (*Sqlite3_vfs)(unsafe.Pointer(p)).FpNext != pVfs {
+ p = (*Sqlite3_vfs)(unsafe.Pointer(p)).FpNext
+ }
+ if (*Sqlite3_vfs)(unsafe.Pointer(p)).FpNext == pVfs {
+ (*Sqlite3_vfs)(unsafe.Pointer(p)).FpNext = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpNext
+ }
+ }
+}
+
+// Register a VFS with the system. It is harmless to register the same
+// VFS multiple times. The new VFS becomes the default if makeDflt is
+// true.
+func Xsqlite3_vfs_register(tls *libc.TLS, pVfs uintptr, makeDflt int32) int32 {
+ var mutex uintptr
+ var rc int32 = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+
+ mutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, mutex)
+ vfsUnlink(tls, pVfs)
+ if makeDflt != 0 || vfsList == uintptr(0) {
+ (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpNext = vfsList
+ vfsList = pVfs
+ } else {
+ (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpNext = (*Sqlite3_vfs)(unsafe.Pointer(vfsList)).FpNext
+ (*Sqlite3_vfs)(unsafe.Pointer(vfsList)).FpNext = pVfs
+ }
+
+ Xsqlite3_mutex_leave(tls, mutex)
+ return SQLITE_OK
+}
+
+// Unregister a VFS so that it is no longer accessible.
+func Xsqlite3_vfs_unregister(tls *libc.TLS, pVfs uintptr) int32 {
+ var mutex uintptr
+ var rc int32 = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+ mutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, mutex)
+ vfsUnlink(tls, pVfs)
+ Xsqlite3_mutex_leave(tls, mutex)
+ return SQLITE_OK
+}
+
+// Global variables.
+type BenignMallocHooks1 = struct {
+ FxBenignBegin uintptr
+ FxBenignEnd uintptr
+}
+
+// Global variables.
+type BenignMallocHooks = BenignMallocHooks1
+
+var sqlite3Hooks = BenignMallocHooks1{}
+
+// Register hooks to call when sqlite3BeginBenignMalloc() and
+// sqlite3EndBenignMalloc() are called, respectively.
+func Xsqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) {
+ sqlite3Hooks.FxBenignBegin = xBenignBegin
+ sqlite3Hooks.FxBenignEnd = xBenignEnd
+}
+
+// This (sqlite3EndBenignMalloc()) is called by SQLite code to indicate that
+// subsequent malloc failures are benign. A call to sqlite3EndBenignMalloc()
+// indicates that subsequent malloc failures are non-benign.
+func Xsqlite3BeginBenignMalloc(tls *libc.TLS) {
+ if sqlite3Hooks.FxBenignBegin != 0 {
+ (*struct{ f func(*libc.TLS) })(unsafe.Pointer(&struct{ uintptr }{sqlite3Hooks.FxBenignBegin})).f(tls)
+ }
+}
+
+func Xsqlite3EndBenignMalloc(tls *libc.TLS) {
+ if sqlite3Hooks.FxBenignEnd != 0 {
+ (*struct{ f func(*libc.TLS) })(unsafe.Pointer(&struct{ uintptr }{sqlite3Hooks.FxBenignEnd})).f(tls)
+ }
+}
+
+func sqlite3MemMalloc(tls *libc.TLS, nByte int32) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr
+
+ p = libc.Xmalloc(tls, uint64(nByte+8))
+ if p != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) = Sqlite3_int64(nByte)
+ p += 8
+ } else {
+ Xsqlite3_log(tls, SQLITE_NOMEM, ts+1409, libc.VaList(bp, nByte))
+ }
+ return p
+}
+
+func sqlite3MemFree(tls *libc.TLS, pPrior uintptr) {
+ var p uintptr = pPrior
+
+ p -= 8
+ libc.Xfree(tls, p)
+}
+
+func sqlite3MemSize(tls *libc.TLS, pPrior uintptr) int32 {
+ var p uintptr
+
+ p = pPrior
+ p -= 8
+ return int32(*(*Sqlite3_int64)(unsafe.Pointer(p)))
+}
+
+func sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr = pPrior
+
+ p -= 8
+ p = libc.Xrealloc(tls, p, uint64(nByte+8))
+ if p != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(p)) = Sqlite3_int64(nByte)
+ p += 8
+ } else {
+ Xsqlite3_log(tls, SQLITE_NOMEM,
+ ts+1447,
+ libc.VaList(bp, sqlite3MemSize(tls, pPrior), nByte))
+ }
+ return p
+}
+
+func sqlite3MemRoundup(tls *libc.TLS, n int32) int32 {
+ return (n + 7) & libc.CplInt32(7)
+}
+
+func sqlite3MemInit(tls *libc.TLS, NotUsed uintptr) int32 {
+ _ = NotUsed
+ return SQLITE_OK
+}
+
+func sqlite3MemShutdown(tls *libc.TLS, NotUsed uintptr) {
+ _ = NotUsed
+ return
+}
+
+// This routine is the only routine in this file with external linkage.
+//
+// Populate the low-level memory allocation function pointers in
+// sqlite3GlobalConfig.m with pointers to the routines in this file.
+func Xsqlite3MemSetDefault(tls *libc.TLS) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ Xsqlite3_config(tls, SQLITE_CONFIG_MALLOC, libc.VaList(bp, uintptr(unsafe.Pointer(&defaultMethods))))
+}
+
+var defaultMethods = Sqlite3_mem_methods{
+ FxMalloc: 0,
+ FxFree: 0,
+ FxRealloc: 0,
+ FxSize: 0,
+ FxRoundup: 0,
+ FxInit: 0,
+ FxShutdown: 0,
+}
+
+// Initialize the mutex system.
+func Xsqlite3MutexInit(tls *libc.TLS) int32 {
+ var rc int32 = SQLITE_OK
+ if !(int32(Xsqlite3Config.Fmutex.FxMutexAlloc) != 0) {
+ var pFrom uintptr
+ var pTo uintptr = uintptr(unsafe.Pointer(&Xsqlite3Config)) + 96
+
+ if Xsqlite3Config.FbCoreMutex != 0 {
+ pFrom = Xsqlite3DefaultMutex(tls)
+ } else {
+ pFrom = Xsqlite3NoopMutex(tls)
+ }
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexInit = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexInit
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexEnd = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexEnd
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexFree = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexFree
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexEnter = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexEnter
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexTry = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexTry
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexLeave = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexLeave
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexHeld = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexHeld
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexNotheld = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexNotheld
+
+ (*Sqlite3_mutex_methods)(unsafe.Pointer(pTo)).FxMutexAlloc = (*Sqlite3_mutex_methods)(unsafe.Pointer(pFrom)).FxMutexAlloc
+ }
+
+ rc = (*struct{ f func(*libc.TLS) int32 })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexInit})).f(tls)
+
+ return rc
+}
+
+// Shutdown the mutex system. This call frees resources allocated by
+// sqlite3MutexInit().
+func Xsqlite3MutexEnd(tls *libc.TLS) int32 {
+ var rc int32 = SQLITE_OK
+ if Xsqlite3Config.Fmutex.FxMutexEnd != 0 {
+ rc = (*struct{ f func(*libc.TLS) int32 })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexEnd})).f(tls)
+ }
+
+ return rc
+}
+
+// Retrieve a pointer to a static mutex or allocate a new dynamic one.
+func Xsqlite3_mutex_alloc(tls *libc.TLS, id int32) uintptr {
+ if id <= SQLITE_MUTEX_RECURSIVE && Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ if id > SQLITE_MUTEX_RECURSIVE && Xsqlite3MutexInit(tls) != 0 {
+ return uintptr(0)
+ }
+
+ return (*struct {
+ f func(*libc.TLS, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexAlloc})).f(tls, id)
+}
+
+func Xsqlite3MutexAlloc(tls *libc.TLS, id int32) uintptr {
+ if !(int32(Xsqlite3Config.FbCoreMutex) != 0) {
+ return uintptr(0)
+ }
+
+ return (*struct {
+ f func(*libc.TLS, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexAlloc})).f(tls, id)
+}
+
+// Free a dynamic mutex.
+func Xsqlite3_mutex_free(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexFree})).f(tls, p)
+ }
+}
+
+// Obtain the mutex p. If some other thread already has the mutex, block
+// until it can be obtained.
+func Xsqlite3_mutex_enter(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexEnter})).f(tls, p)
+ }
+}
+
+// Obtain the mutex p. If successful, return SQLITE_OK. Otherwise, if another
+// thread holds the mutex and it cannot be obtained, return SQLITE_BUSY.
+func Xsqlite3_mutex_try(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 {
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexTry})).f(tls, p)
+ }
+ return rc
+}
+
+// The sqlite3_mutex_leave() routine exits a mutex that was previously
+// entered by the same thread. The behavior is undefined if the mutex
+// is not currently entered. If a NULL pointer is passed as an argument
+// this function is a no-op.
+func Xsqlite3_mutex_leave(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fmutex.FxMutexLeave})).f(tls, p)
+ }
+}
+
+func noopMutexInit(tls *libc.TLS) int32 {
+ return SQLITE_OK
+}
+
+func noopMutexEnd(tls *libc.TLS) int32 {
+ return SQLITE_OK
+}
+
+func noopMutexAlloc(tls *libc.TLS, id int32) uintptr {
+ _ = id
+ return uintptr(8)
+}
+
+func noopMutexFree(tls *libc.TLS, p uintptr) {
+ _ = p
+ return
+}
+
+func noopMutexEnter(tls *libc.TLS, p uintptr) {
+ _ = p
+ return
+}
+
+func noopMutexTry(tls *libc.TLS, p uintptr) int32 {
+ _ = p
+ return SQLITE_OK
+}
+
+func noopMutexLeave(tls *libc.TLS, p uintptr) {
+ _ = p
+ return
+}
+
+func Xsqlite3NoopMutex(tls *libc.TLS) uintptr {
+ return uintptr(unsafe.Pointer(&sMutex))
+}
+
+var sMutex = Sqlite3_mutex_methods{
+ FxMutexInit: 0,
+ FxMutexEnd: 0,
+ FxMutexAlloc: 0,
+ FxMutexFree: 0,
+ FxMutexEnter: 0,
+ FxMutexTry: 0,
+ FxMutexLeave: 0,
+}
+
+// If compiled with SQLITE_MUTEX_NOOP, then the no-op mutex implementation
+// is used regardless of the run-time threadsafety setting.
+func Xsqlite3DefaultMutex(tls *libc.TLS) uintptr {
+ return Xsqlite3NoopMutex(tls)
+}
+
+// Attempt to release up to n bytes of non-essential memory currently
+// held by SQLite. An example of non-essential memory is memory used to
+// cache database pages that are not currently in use.
+func Xsqlite3_release_memory(tls *libc.TLS, n int32) int32 {
+ return Xsqlite3PcacheReleaseMemory(tls, n)
+}
+
+// State information local to the memory allocation subsystem.
+type Mem0Global = struct {
+ Fmutex uintptr
+ FalarmThreshold Sqlite3_int64
+ FhardLimit Sqlite3_int64
+ FnearlyFull int32
+ F__ccgo_pad1 [4]byte
+}
+
+var mem0 = Mem0Global{}
+
+// Return the memory allocator mutex. sqlite3_status() needs it.
+func Xsqlite3MallocMutex(tls *libc.TLS) uintptr {
+ return mem0.Fmutex
+}
+
+// Deprecated external interface. It used to set an alarm callback
+// that was invoked when memory usage grew too large. Now it is a
+// no-op.
+func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Sqlite3_int64) int32 {
+ _ = xCallback
+ _ = pArg
+ _ = iThreshold
+ return SQLITE_OK
+}
+
+// Set the soft heap-size limit for the library. An argument of
+// zero disables the limit. A negative argument is a no-op used to
+// obtain the return value.
+//
+// The return value is the value of the heap limit just before this
+// interface was called.
+//
+// If the hard heap limit is enabled, then the soft heap limit cannot
+// be disabled nor raised above the hard heap limit.
+func Xsqlite3_soft_heap_limit64(tls *libc.TLS, n Sqlite3_int64) Sqlite3_int64 {
+ var priorLimit Sqlite3_int64
+ var excess Sqlite3_int64
+ var nUsed Sqlite3_int64
+ var rc int32 = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return int64(-1)
+ }
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+ priorLimit = mem0.FalarmThreshold
+ if n < int64(0) {
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ return priorLimit
+ }
+ if mem0.FhardLimit > int64(0) && (n > mem0.FhardLimit || n == int64(0)) {
+ n = mem0.FhardLimit
+ }
+ mem0.FalarmThreshold = n
+ nUsed = Xsqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED)
+ *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&mem0)) + 24)) = libc.Bool32(n > int64(0) && n <= nUsed)
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ excess = Xsqlite3_memory_used(tls) - n
+ if excess > int64(0) {
+ Xsqlite3_release_memory(tls, int32(excess&int64(0x7fffffff)))
+ }
+ return priorLimit
+}
+
+func Xsqlite3_soft_heap_limit(tls *libc.TLS, n int32) {
+ if n < 0 {
+ n = 0
+ }
+ Xsqlite3_soft_heap_limit64(tls, int64(n))
+}
+
+// Set the hard heap-size limit for the library. An argument of zero
+// disables the hard heap limit. A negative argument is a no-op used
+// to obtain the return value without affecting the hard heap limit.
+//
+// The return value is the value of the hard heap limit just prior to
+// calling this interface.
+//
+// Setting the hard heap limit will also activate the soft heap limit
+// and constrain the soft heap limit to be no more than the hard heap
+// limit.
+func Xsqlite3_hard_heap_limit64(tls *libc.TLS, n Sqlite3_int64) Sqlite3_int64 {
+ var priorLimit Sqlite3_int64
+ var rc int32 = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return int64(-1)
+ }
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+ priorLimit = mem0.FhardLimit
+ if n >= int64(0) {
+ mem0.FhardLimit = n
+ if n < mem0.FalarmThreshold || mem0.FalarmThreshold == int64(0) {
+ mem0.FalarmThreshold = n
+ }
+ }
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ return priorLimit
+}
+
+// Initialize the memory allocation subsystem.
+func Xsqlite3MallocInit(tls *libc.TLS) int32 {
+ var rc int32
+ if Xsqlite3Config.Fm.FxMalloc == uintptr(0) {
+ Xsqlite3MemSetDefault(tls)
+ }
+ mem0.Fmutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MEM)
+ if Xsqlite3Config.FpPage == uintptr(0) || Xsqlite3Config.FszPage < 512 ||
+ Xsqlite3Config.FnPage <= 0 {
+ Xsqlite3Config.FpPage = uintptr(0)
+ Xsqlite3Config.FszPage = 0
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxInit})).f(tls, Xsqlite3Config.Fm.FpAppData)
+ if rc != SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&mem0)), 0, uint64(unsafe.Sizeof(mem0)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&mem0)), 0))
+ }
+ return rc
+}
+
+// Return true if the heap is currently under memory pressure - in other
+// words if the amount of heap used is close to the limit set by
+// sqlite3_soft_heap_limit().
+func Xsqlite3HeapNearlyFull(tls *libc.TLS) int32 {
+ return *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&mem0)) + 24))
+}
+
+// Deinitialize the memory allocation subsystem.
+func Xsqlite3MallocEnd(tls *libc.TLS) {
+ if Xsqlite3Config.Fm.FxShutdown != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxShutdown})).f(tls, Xsqlite3Config.Fm.FpAppData)
+ }
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&mem0)), 0, uint64(unsafe.Sizeof(mem0)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&mem0)), 0))
+}
+
+// Return the amount of memory currently checked out.
+func Xsqlite3_memory_used(tls *libc.TLS) Sqlite3_int64 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ Xsqlite3_status64(tls, SQLITE_STATUS_MEMORY_USED, bp, bp+8, 0)
+ return *(*Sqlite3_int64)(unsafe.Pointer(bp))
+}
+
+// Return the maximum amount of memory that has ever been
+// checked out since either the beginning of this process
+// or since the most recent reset.
+func Xsqlite3_memory_highwater(tls *libc.TLS, resetFlag int32) Sqlite3_int64 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ Xsqlite3_status64(tls, SQLITE_STATUS_MEMORY_USED, bp, bp+8, resetFlag)
+ return *(*Sqlite3_int64)(unsafe.Pointer(bp + 8))
+}
+
+func sqlite3MallocAlarm(tls *libc.TLS, nByte int32) {
+ if mem0.FalarmThreshold <= int64(0) {
+ return
+ }
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ Xsqlite3_release_memory(tls, nByte)
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+}
+
+func mallocWithAlarm(tls *libc.TLS, n int32, pp uintptr) {
+ var p uintptr
+ var nFull int32
+
+ nFull = (*struct{ f func(*libc.TLS, int32) int32 })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRoundup})).f(tls, n)
+
+ Xsqlite3StatusHighwater(tls, SQLITE_STATUS_MALLOC_SIZE, n)
+ if mem0.FalarmThreshold > int64(0) {
+ var nUsed Sqlite3_int64 = Xsqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED)
+ if nUsed >= mem0.FalarmThreshold-Sqlite3_int64(nFull) {
+ *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&mem0)) + 24)) = 1
+ sqlite3MallocAlarm(tls, nFull)
+ if mem0.FhardLimit != 0 {
+ nUsed = Xsqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED)
+ if nUsed >= mem0.FhardLimit-Sqlite3_int64(nFull) {
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ return
+ }
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&mem0)) + 24)) = 0
+ }
+ }
+ p = (*struct {
+ f func(*libc.TLS, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxMalloc})).f(tls, nFull)
+ if p == uintptr(0) && mem0.FalarmThreshold > int64(0) {
+ sqlite3MallocAlarm(tls, nFull)
+ p = (*struct {
+ f func(*libc.TLS, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxMalloc})).f(tls, nFull)
+ }
+ if p != 0 {
+ nFull = Xsqlite3MallocSize(tls, p)
+ Xsqlite3StatusUp(tls, SQLITE_STATUS_MEMORY_USED, nFull)
+ Xsqlite3StatusUp(tls, SQLITE_STATUS_MALLOC_COUNT, 1)
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+}
+
+// Allocate memory. This routine is like sqlite3_malloc() except that it
+// assumes the memory subsystem has already been initialized.
+func Xsqlite3Malloc(tls *libc.TLS, n U64) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if n == uint64(0) || n > uint64(SQLITE_MAX_ALLOCATION_SIZE) {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ } else if Xsqlite3Config.FbMemstat != 0 {
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+ mallocWithAlarm(tls, int32(n), bp)
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp)) = (*struct {
+ f func(*libc.TLS, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxMalloc})).f(tls, int32(n))
+ }
+
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+// This version of the memory allocation is for use by the application.
+// First make sure the memory subsystem is initialized, then do the
+// allocation.
+func Xsqlite3_malloc(tls *libc.TLS, n int32) uintptr {
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ if n <= 0 {
+ return uintptr(0)
+ }
+ return Xsqlite3Malloc(tls, uint64(n))
+}
+
+func Xsqlite3_malloc64(tls *libc.TLS, n Sqlite3_uint64) uintptr {
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ return Xsqlite3Malloc(tls, n)
+}
+
+func isLookaside(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ return libc.Bool32(Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) && Uptr(p) < Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd))
+}
+
+// Return the size of a memory allocation previously obtained from
+// sqlite3Malloc() or sqlite3_malloc().
+func Xsqlite3MallocSize(tls *libc.TLS, p uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxSize})).f(tls, p)
+}
+
+func lookasideMallocSize(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ if p < (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle {
+ return int32((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue)
+ }
+ return LOOKASIDE_SMALL
+}
+
+func Xsqlite3DbMallocSize(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ if db != 0 {
+ if Uptr(p) < Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd) {
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) {
+ return LOOKASIDE_SMALL
+ }
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) {
+ return int32((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue)
+ }
+ }
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxSize})).f(tls, p)
+}
+
+func Xsqlite3_msize(tls *libc.TLS, p uintptr) Sqlite3_uint64 {
+ if p != 0 {
+ return uint64((*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxSize})).f(tls, p))
+ }
+ return uint64(0)
+}
+
+// Free memory previously obtained from sqlite3Malloc().
+func Xsqlite3_free(tls *libc.TLS, p uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+
+ if Xsqlite3Config.FbMemstat != 0 {
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+ Xsqlite3StatusDown(tls, SQLITE_STATUS_MEMORY_USED, Xsqlite3MallocSize(tls, p))
+ Xsqlite3StatusDown(tls, SQLITE_STATUS_MALLOC_COUNT, 1)
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxFree})).f(tls, p)
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ } else {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxFree})).f(tls, p)
+ }
+}
+
+func measureAllocationSize(tls *libc.TLS, db uintptr, p uintptr) {
+ *(*int32)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed)) += Xsqlite3DbMallocSize(tls, db, p)
+}
+
+// Free memory that might be associated with a particular database
+// connection. Calling sqlite3DbFree(D,X) for X==0 is a harmless no-op.
+// The sqlite3DbFreeNN(D,X) version requires that X be non-NULL.
+func Xsqlite3DbFreeNN(tls *libc.TLS, db uintptr, p uintptr) {
+ if db != 0 {
+ if Uptr(p) < Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) {
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) {
+ var pBuf uintptr = p
+
+ (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = pBuf
+ return
+ }
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) {
+ var pBuf uintptr = p
+
+ (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = pBuf
+ return
+ }
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed != 0 {
+ measureAllocationSize(tls, db, p)
+ return
+ }
+ }
+
+ Xsqlite3_free(tls, p)
+}
+
+func Xsqlite3DbNNFreeNN(tls *libc.TLS, db uintptr, p uintptr) {
+ if Uptr(p) < Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) {
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) {
+ var pBuf uintptr = p
+
+ (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = pBuf
+ return
+ }
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) {
+ var pBuf uintptr = p
+
+ (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = pBuf
+ return
+ }
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed != 0 {
+ measureAllocationSize(tls, db, p)
+ return
+ }
+
+ Xsqlite3_free(tls, p)
+}
+
+func Xsqlite3DbFree(tls *libc.TLS, db uintptr, p uintptr) {
+ if p != 0 {
+ Xsqlite3DbFreeNN(tls, db, p)
+ }
+}
+
+// Change the size of an existing memory allocation
+func Xsqlite3Realloc(tls *libc.TLS, pOld uintptr, nBytes U64) uintptr {
+ var nOld int32
+ var nNew int32
+ var nDiff int32
+ var pNew uintptr
+
+ if pOld == uintptr(0) {
+ return Xsqlite3Malloc(tls, nBytes)
+ }
+ if nBytes == uint64(0) {
+ Xsqlite3_free(tls, pOld)
+ return uintptr(0)
+ }
+ if nBytes >= uint64(0x7fffff00) {
+ return uintptr(0)
+ }
+ nOld = Xsqlite3MallocSize(tls, pOld)
+
+ nNew = (*struct{ f func(*libc.TLS, int32) int32 })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRoundup})).f(tls, int32(nBytes))
+ if nOld == nNew {
+ pNew = pOld
+ } else if Xsqlite3Config.FbMemstat != 0 {
+ var nUsed Sqlite3_int64
+ Xsqlite3_mutex_enter(tls, mem0.Fmutex)
+ Xsqlite3StatusHighwater(tls, SQLITE_STATUS_MALLOC_SIZE, int32(nBytes))
+ nDiff = nNew - nOld
+ if nDiff > 0 && libc.AssignInt64(&nUsed, Xsqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED)) >= mem0.FalarmThreshold-Sqlite3_int64(nDiff) {
+ sqlite3MallocAlarm(tls, nDiff)
+ if mem0.FhardLimit > int64(0) && nUsed >= mem0.FhardLimit-Sqlite3_int64(nDiff) {
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ return uintptr(0)
+ }
+ }
+ pNew = (*struct {
+ f func(*libc.TLS, uintptr, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRealloc})).f(tls, pOld, nNew)
+ if pNew == uintptr(0) && mem0.FalarmThreshold > int64(0) {
+ sqlite3MallocAlarm(tls, int32(nBytes))
+ pNew = (*struct {
+ f func(*libc.TLS, uintptr, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRealloc})).f(tls, pOld, nNew)
+ }
+ if pNew != 0 {
+ nNew = Xsqlite3MallocSize(tls, pNew)
+ Xsqlite3StatusUp(tls, SQLITE_STATUS_MEMORY_USED, nNew-nOld)
+ }
+ Xsqlite3_mutex_leave(tls, mem0.Fmutex)
+ } else {
+ pNew = (*struct {
+ f func(*libc.TLS, uintptr, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fm.FxRealloc})).f(tls, pOld, nNew)
+ }
+
+ return pNew
+}
+
+// The public interface to sqlite3Realloc. Make sure that the memory
+// subsystem is initialized prior to invoking sqliteRealloc.
+func Xsqlite3_realloc(tls *libc.TLS, pOld uintptr, n int32) uintptr {
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ if n < 0 {
+ n = 0
+ }
+ return Xsqlite3Realloc(tls, pOld, uint64(n))
+}
+
+func Xsqlite3_realloc64(tls *libc.TLS, pOld uintptr, n Sqlite3_uint64) uintptr {
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ return Xsqlite3Realloc(tls, pOld, n)
+}
+
+// Allocate and zero memory.
+func Xsqlite3MallocZero(tls *libc.TLS, n U64) uintptr {
+ var p uintptr = Xsqlite3Malloc(tls, n)
+ if p != 0 {
+ libc.X__builtin___memset_chk(tls, p, 0, n, libc.X__builtin_object_size(tls, p, 0))
+ }
+ return p
+}
+
+// Allocate and zero memory. If the allocation fails, make
+// the mallocFailed flag in the connection pointer.
+func Xsqlite3DbMallocZero(tls *libc.TLS, db uintptr, n U64) uintptr {
+ var p uintptr
+
+ p = Xsqlite3DbMallocRaw(tls, db, n)
+ if p != 0 {
+ libc.X__builtin___memset_chk(tls, p, 0, n, libc.X__builtin_object_size(tls, p, 0))
+ }
+ return p
+}
+
+func dbMallocRawFinish(tls *libc.TLS, db uintptr, n U64) uintptr {
+ var p uintptr
+
+ p = Xsqlite3Malloc(tls, n)
+ if !(p != 0) {
+ Xsqlite3OomFault(tls, db)
+ }
+
+ return p
+}
+
+// Allocate memory, either lookaside (if possible) or heap.
+// If the allocation fails, set the mallocFailed flag in
+// the connection pointer.
+//
+// If db!=0 and db->mallocFailed is true (indicating a prior malloc
+// failure on the same database connection) then always return 0.
+// Hence for a particular database connection, once malloc starts
+// failing, it fails consistently until mallocFailed is reset.
+// This is an important assumption. There are many places in the
+// code that do things like this:
+//
+// int *a = (int*)sqlite3DbMallocRaw(db, 100);
+// int *b = (int*)sqlite3DbMallocRaw(db, 200);
+// if( b ) a[10] = 9;
+//
+// In other words, if a subsequent malloc (ex: "b") worked, it is assumed
+// that all prior mallocs (ex: "a") worked too.
+//
+// The sqlite3MallocRawNN() variant guarantees that the "db" parameter is
+// not a NULL pointer.
+func Xsqlite3DbMallocRaw(tls *libc.TLS, db uintptr, n U64) uintptr {
+ var p uintptr
+ if db != 0 {
+ return Xsqlite3DbMallocRawNN(tls, db, n)
+ }
+ p = Xsqlite3Malloc(tls, n)
+
+ return p
+}
+
+func Xsqlite3DbMallocRawNN(tls *libc.TLS, db uintptr, n U64) uintptr {
+ var pBuf uintptr
+
+ if n > U64((*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz) {
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable) != 0) {
+ *(*U32)(unsafe.Pointer(db + 440 + 16 + 1*4))++
+ } else if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return uintptr(0)
+ }
+ return dbMallocRawFinish(tls, db, n)
+ }
+ if n <= uint64(LOOKASIDE_SMALL) {
+ if libc.AssignUintptr(&pBuf, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree) != uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext
+ *(*U32)(unsafe.Pointer(db + 440 + 16))++
+ return pBuf
+ } else if libc.AssignUintptr(&pBuf, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit) != uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit = (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext
+ *(*U32)(unsafe.Pointer(db + 440 + 16))++
+ return pBuf
+ }
+ }
+ if libc.AssignUintptr(&pBuf, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree) != uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext
+ *(*U32)(unsafe.Pointer(db + 440 + 16))++
+ return pBuf
+ } else if libc.AssignUintptr(&pBuf, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit) != uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit = (*LookasideSlot)(unsafe.Pointer(pBuf)).FpNext
+ *(*U32)(unsafe.Pointer(db + 440 + 16))++
+ return pBuf
+ } else {
+ *(*U32)(unsafe.Pointer(db + 440 + 16 + 2*4))++
+ }
+ return dbMallocRawFinish(tls, db, n)
+}
+
+// Resize the block of memory pointed to by p to n bytes. If the
+// resize fails, set the mallocFailed flag in the connection object.
+func Xsqlite3DbRealloc(tls *libc.TLS, db uintptr, p uintptr, n U64) uintptr {
+ if p == uintptr(0) {
+ return Xsqlite3DbMallocRawNN(tls, db, n)
+ }
+
+ if Uptr(p) < Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) {
+ if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) {
+ if n <= uint64(LOOKASIDE_SMALL) {
+ return p
+ }
+ } else if Uptr(p) >= Uptr((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) {
+ if n <= U64((*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue) {
+ return p
+ }
+ }
+ }
+ return dbReallocFinish(tls, db, p, n)
+}
+
+func dbReallocFinish(tls *libc.TLS, db uintptr, p uintptr, n U64) uintptr {
+ var pNew uintptr = uintptr(0)
+
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ if isLookaside(tls, db, p) != 0 {
+ pNew = Xsqlite3DbMallocRawNN(tls, db, n)
+ if pNew != 0 {
+ libc.X__builtin___memcpy_chk(tls, pNew, p, uint64(lookasideMallocSize(tls, db, p)), libc.X__builtin_object_size(tls, pNew, 0))
+ Xsqlite3DbFree(tls, db, p)
+ }
+ } else {
+ pNew = Xsqlite3Realloc(tls, p, n)
+ if !(pNew != 0) {
+ Xsqlite3OomFault(tls, db)
+ }
+
+ }
+ }
+ return pNew
+}
+
+// Attempt to reallocate p. If the reallocation fails, then free p
+// and set the mallocFailed flag in the database connection.
+func Xsqlite3DbReallocOrFree(tls *libc.TLS, db uintptr, p uintptr, n U64) uintptr {
+ var pNew uintptr
+ pNew = Xsqlite3DbRealloc(tls, db, p, n)
+ if !(pNew != 0) {
+ Xsqlite3DbFree(tls, db, p)
+ }
+ return pNew
+}
+
+// Make a copy of a string in memory obtained from sqliteMalloc(). These
+// functions call sqlite3MallocRaw() directly instead of sqliteMalloc(). This
+// is because when memory debugging is turned on, these two functions are
+// called via macros that record the current file and line number in the
+// ThreadData structure.
+func Xsqlite3DbStrDup(tls *libc.TLS, db uintptr, z uintptr) uintptr {
+ var zNew uintptr
+ var n Size_t
+ if z == uintptr(0) {
+ return uintptr(0)
+ }
+ n = libc.Xstrlen(tls, z) + uint64(1)
+ zNew = Xsqlite3DbMallocRaw(tls, db, n)
+ if zNew != 0 {
+ libc.X__builtin___memcpy_chk(tls, zNew, z, n, libc.X__builtin_object_size(tls, zNew, 0))
+ }
+ return zNew
+}
+
+func Xsqlite3DbStrNDup(tls *libc.TLS, db uintptr, z uintptr, n U64) uintptr {
+ var zNew uintptr
+
+ if z != 0 {
+ zNew = Xsqlite3DbMallocRawNN(tls, db, n+uint64(1))
+ } else {
+ zNew = uintptr(0)
+ }
+ if zNew != 0 {
+ libc.X__builtin___memcpy_chk(tls, zNew, z, n, libc.X__builtin_object_size(tls, zNew, 0))
+ *(*int8)(unsafe.Pointer(zNew + uintptr(n))) = int8(0)
+ }
+ return zNew
+}
+
+// The text between zStart and zEnd represents a phrase within a larger
+// SQL statement. Make a copy of this phrase in space obtained form
+// sqlite3DbMalloc(). Omit leading and trailing whitespace.
+func Xsqlite3DbSpanDup(tls *libc.TLS, db uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var n int32
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zStart)))])&0x01 != 0 {
+ zStart++
+ }
+ n = int32((int64(zEnd) - int64(zStart)) / 1)
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zStart + uintptr(n-1))))])&0x01 != 0 {
+ n--
+ }
+ return Xsqlite3DbStrNDup(tls, db, zStart, uint64(n))
+}
+
+// Free any prior content in *pz and replace it with a copy of zNew.
+func Xsqlite3SetString(tls *libc.TLS, pz uintptr, db uintptr, zNew uintptr) {
+ var z uintptr = Xsqlite3DbStrDup(tls, db, zNew)
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pz)))
+ *(*uintptr)(unsafe.Pointer(pz)) = z
+}
+
+// Call this routine to record the fact that an OOM (out-of-memory) error
+// has happened. This routine will set db->mallocFailed, and also
+// temporarily disable the lookaside memory allocator and interrupt
+// any running VDBEs.
+//
+// Always return a NULL pointer so that this routine can be invoked using
+//
+// return sqlite3OomFault(db);
+//
+// and thereby avoid unnecessary stack frame allocations for the overwhelmingly
+// common case where no OOM occurs.
+func Xsqlite3OomFault(tls *libc.TLS, db uintptr) uintptr {
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 && int32((*Sqlite3)(unsafe.Pointer(db)).FbBenignMalloc) == 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed = U8(1)
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec > 0 {
+ *(*int32)(unsafe.Pointer(db + 432)) = 1
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FpParse != 0 {
+ var pParse uintptr
+ Xsqlite3ErrorMsg(tls, (*Sqlite3)(unsafe.Pointer(db)).FpParse, ts+1483, 0)
+ (*Parse)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpParse)).Frc = SQLITE_NOMEM
+ for pParse = (*Parse)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse; pParse != 0; pParse = (*Parse)(unsafe.Pointer(pParse)).FpOuterParse {
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ }
+ }
+ return uintptr(0)
+}
+
+// This routine reactivates the memory allocator and clears the
+// db->mallocFailed flag as necessary.
+//
+// The memory allocator is not restarted if there are running
+// VDBEs.
+func Xsqlite3OomClear(tls *libc.TLS, db uintptr) {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 && (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec == 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed = U8(0)
+ *(*int32)(unsafe.Pointer(db + 432)) = 0
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable--
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = func() uint16 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
+ return uint16(0)
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue
+ }()
+ }
+}
+
+func apiHandleError(tls *libc.TLS, db uintptr, rc int32) int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || rc == SQLITE_IOERR|int32(12)<<8 {
+ Xsqlite3OomClear(tls, db)
+ Xsqlite3Error(tls, db, SQLITE_NOMEM)
+ return SQLITE_NOMEM
+ }
+ return rc & (*Sqlite3)(unsafe.Pointer(db)).FerrMask
+}
+
+// This function must be called before exiting any API function (i.e.
+// returning control to the user) that has called sqlite3_malloc or
+// sqlite3_realloc.
+//
+// The returned value is normally a copy of the second argument to this
+// function. However, if a malloc() failure has occurred since the previous
+// invocation SQLITE_NOMEM is returned instead.
+//
+// If an OOM as occurred, then the connection error-code (the value
+// returned by sqlite3_errcode()) is set to SQLITE_NOMEM.
+func Xsqlite3ApiExit(tls *libc.TLS, db uintptr, rc int32) int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || rc != 0 {
+ return apiHandleError(tls, db, rc)
+ }
+ return rc & (*Sqlite3)(unsafe.Pointer(db)).FerrMask
+}
+
+// An "etByte" is an 8-bit unsigned value.
+type EtByte = uint8
+
+type et_info = struct {
+ Ffmttype int8
+ Fbase EtByte
+ Fflags EtByte
+ Ftype EtByte
+ Fcharset EtByte
+ Fprefix EtByte
+}
+
+// Each builtin conversion character (ex: the 'd' in "%d") is described
+// by an instance of the following structure
+type Et_info = et_info
+
+var aDigits = *(*[33]int8)(unsafe.Pointer(ts + 1497))
+var aPrefix = *(*[7]int8)(unsafe.Pointer(ts + 1530))
+var fmtinfo = [23]Et_info{
+ {Ffmttype: int8('d'), Fbase: EtByte(10), Fflags: EtByte(1), Ftype: EtByte(EtDECIMAL)},
+ {Ffmttype: int8('s'), Fflags: EtByte(4), Ftype: EtByte(EtSTRING)},
+ {Ffmttype: int8('g'), Fflags: EtByte(1), Ftype: EtByte(EtGENERIC), Fcharset: EtByte(30)},
+ {Ffmttype: int8('z'), Fflags: EtByte(4), Ftype: EtByte(EtDYNSTRING)},
+ {Ffmttype: int8('q'), Fflags: EtByte(4), Ftype: EtByte(EtSQLESCAPE)},
+ {Ffmttype: int8('Q'), Fflags: EtByte(4), Ftype: EtByte(EtSQLESCAPE2)},
+ {Ffmttype: int8('w'), Fflags: EtByte(4), Ftype: EtByte(EtSQLESCAPE3)},
+ {Ffmttype: int8('c'), Ftype: EtByte(EtCHARX)},
+ {Ffmttype: int8('o'), Fbase: EtByte(8), Fprefix: EtByte(2)},
+ {Ffmttype: int8('u'), Fbase: EtByte(10), Ftype: EtByte(EtDECIMAL)},
+ {Ffmttype: int8('x'), Fbase: EtByte(16), Fcharset: EtByte(16), Fprefix: EtByte(1)},
+ {Ffmttype: int8('X'), Fbase: EtByte(16), Fprefix: EtByte(4)},
+ {Ffmttype: int8('f'), Fflags: EtByte(1), Ftype: EtByte(EtFLOAT)},
+ {Ffmttype: int8('e'), Fflags: EtByte(1), Ftype: EtByte(EtEXP), Fcharset: EtByte(30)},
+ {Ffmttype: int8('E'), Fflags: EtByte(1), Ftype: EtByte(EtEXP), Fcharset: EtByte(14)},
+ {Ffmttype: int8('G'), Fflags: EtByte(1), Ftype: EtByte(EtGENERIC), Fcharset: EtByte(14)},
+ {Ffmttype: int8('i'), Fbase: EtByte(10), Fflags: EtByte(1), Ftype: EtByte(EtDECIMAL)},
+ {Ffmttype: int8('n'), Ftype: EtByte(EtSIZE)},
+ {Ffmttype: int8('%'), Ftype: EtByte(EtPERCENT)},
+ {Ffmttype: int8('p'), Fbase: EtByte(16), Ftype: EtByte(EtPOINTER), Fprefix: EtByte(1)},
+ {Ffmttype: int8('T'), Ftype: EtByte(EtTOKEN)},
+ {Ffmttype: int8('S'), Ftype: EtByte(EtSRCITEM)},
+ {Ffmttype: int8('r'), Fbase: EtByte(10), Fflags: EtByte(1), Ftype: EtByte(EtORDINAL)},
+}
+
+var arRound = [10]float64{
+ 5.0e-01, 5.0e-02, 5.0e-03, 5.0e-04, 5.0e-05,
+ 5.0e-06, 5.0e-07, 5.0e-08, 5.0e-09, 5.0e-10,
+}
+
+func et_getdigit(tls *libc.TLS, val uintptr, cnt uintptr) int8 {
+ var digit int32
+ var d float64
+ if *(*int32)(unsafe.Pointer(cnt)) <= 0 {
+ return int8('0')
+ }
+ *(*int32)(unsafe.Pointer(cnt))--
+ digit = int32(*(*float64)(unsafe.Pointer(val)))
+ d = float64(digit)
+ digit = digit + '0'
+ *(*float64)(unsafe.Pointer(val)) = (*(*float64)(unsafe.Pointer(val)) - d) * 10.0
+ return int8(digit)
+}
+
+// Set the StrAccum object to an error mode.
+func Xsqlite3StrAccumSetError(tls *libc.TLS, p uintptr, eError U8) {
+ (*StrAccum)(unsafe.Pointer(p)).FaccError = eError
+ if (*StrAccum)(unsafe.Pointer(p)).FmxAlloc != 0 {
+ Xsqlite3_str_reset(tls, p)
+ }
+ if int32(eError) == SQLITE_TOOBIG {
+ Xsqlite3ErrorToParser(tls, (*StrAccum)(unsafe.Pointer(p)).Fdb, int32(eError))
+ }
+}
+
+func getIntArg(tls *libc.TLS, p uintptr) Sqlite3_int64 {
+ if (*PrintfArguments)(unsafe.Pointer(p)).FnArg <= (*PrintfArguments)(unsafe.Pointer(p)).FnUsed {
+ return int64(0)
+ }
+ return Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer((*PrintfArguments)(unsafe.Pointer(p)).FapArg + uintptr(libc.PostIncInt32(&(*PrintfArguments)(unsafe.Pointer(p)).FnUsed, 1))*8)))
+}
+
+func getDoubleArg(tls *libc.TLS, p uintptr) float64 {
+ if (*PrintfArguments)(unsafe.Pointer(p)).FnArg <= (*PrintfArguments)(unsafe.Pointer(p)).FnUsed {
+ return 0.0
+ }
+ return Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer((*PrintfArguments)(unsafe.Pointer(p)).FapArg + uintptr(libc.PostIncInt32(&(*PrintfArguments)(unsafe.Pointer(p)).FnUsed, 1))*8)))
+}
+
+func getTextArg(tls *libc.TLS, p uintptr) uintptr {
+ if (*PrintfArguments)(unsafe.Pointer(p)).FnArg <= (*PrintfArguments)(unsafe.Pointer(p)).FnUsed {
+ return uintptr(0)
+ }
+ return Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer((*PrintfArguments)(unsafe.Pointer(p)).FapArg + uintptr(libc.PostIncInt32(&(*PrintfArguments)(unsafe.Pointer(p)).FnUsed, 1))*8)))
+}
+
+func printfTempBuf(tls *libc.TLS, pAccum uintptr, n Sqlite3_int64) uintptr {
+ var z uintptr
+ if (*Sqlite3_str)(unsafe.Pointer(pAccum)).FaccError != 0 {
+ return uintptr(0)
+ }
+ if n > Sqlite3_int64((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnAlloc) && n > Sqlite3_int64((*Sqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc) {
+ Xsqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_TOOBIG))
+ return uintptr(0)
+ }
+ z = Xsqlite3DbMallocRaw(tls, (*Sqlite3_str)(unsafe.Pointer(pAccum)).Fdb, uint64(n))
+ if z == uintptr(0) {
+ Xsqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_NOMEM))
+ }
+ return z
+}
+
+// Render a string given by "fmt" into the StrAccum object.
+func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Va_list) {
+ bp := tls.Alloc(116)
+ defer tls.Free(116)
+
+ var c int32
+ var bufpt uintptr
+ var precision int32
+ var length int32
+ var idx int32
+ var width int32
+ var flag_leftjustify EtByte
+ var flag_prefix EtByte
+ var flag_alternateform EtByte
+ var flag_altform2 EtByte
+ var flag_zeropad EtByte
+ var flag_long EtByte
+ var done EtByte
+ var cThousand EtByte
+ var xtype EtByte
+ var bArgList U8
+ var prefix int8
+ var longvalue Sqlite_uint64
+
+ var infop uintptr
+ var zOut uintptr
+ var nOut int32
+ var zExtra uintptr
+ var exp int32
+ var e2 int32
+
+ var rounder float64
+ var flag_dp EtByte
+ var flag_rtz EtByte
+ var pArgList uintptr
+
+ var wx uint32
+ var px uint32
+ var v I64
+ var n U64
+ var x int32
+ var cset uintptr
+ var base U8
+ var nn int32
+ var ix int32
+ var pre uintptr
+ var x1 int8
+
+ var ex int32
+ var scale float64
+ var szBufNeeded I64
+ var i int32
+ var nPad int32
+ var ch uint32
+ var nCopyBytes I64
+ var nPrior I64
+
+ var z uintptr
+
+ var ii int32
+ var i1 I64
+ var j I64
+ var k I64
+ var n1 I64
+ var needQuote int32
+ var isnull int32
+ var ch1 int8
+ var q int8
+ var escarg uintptr
+
+ var pExpr uintptr
+
+ var pToken uintptr
+ var pSel uintptr
+ var pItem uintptr
+ xtype = EtByte(EtINVALID)
+ zExtra = uintptr(0)
+ pArgList = uintptr(0)
+
+ bufpt = uintptr(0)
+ if !(int32((*Sqlite3_str)(unsafe.Pointer(pAccum)).FprintfFlags)&SQLITE_PRINTF_SQLFUNC != 0) {
+ goto __1
+ }
+ pArgList = libc.VaUintptr(&ap)
+ bArgList = U8(1)
+ goto __2
+__1:
+ bArgList = U8(0)
+__2:
+ ;
+__3:
+ if !(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(fmt)))) != 0) {
+ goto __5
+ }
+ if !(c != '%') {
+ goto __6
+ }
+ bufpt = fmt
+__7:
+ fmt++
+ goto __8
+__8:
+ if *(*int8)(unsafe.Pointer(fmt)) != 0 && int32(*(*int8)(unsafe.Pointer(fmt))) != '%' {
+ goto __7
+ }
+ goto __9
+__9:
+ ;
+ Xsqlite3_str_append(tls, pAccum, bufpt, int32((int64(fmt)-int64(bufpt))/1))
+ if !(int32(*(*int8)(unsafe.Pointer(fmt))) == 0) {
+ goto __10
+ }
+ goto __5
+__10:
+ ;
+__6:
+ ;
+ if !(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))) == 0) {
+ goto __11
+ }
+ Xsqlite3_str_append(tls, pAccum, ts+1537, 1)
+ goto __5
+__11:
+ ;
+ flag_leftjustify = libc.AssignUint8(&flag_prefix, libc.AssignUint8(&cThousand, libc.AssignUint8(&flag_alternateform, libc.AssignUint8(&flag_altform2, libc.AssignUint8(&flag_zeropad, EtByte(0))))))
+ done = EtByte(0)
+ width = 0
+ flag_long = EtByte(0)
+ precision = -1
+__12:
+ switch c {
+ case '-':
+ goto __16
+ case '+':
+ goto __17
+ case ' ':
+ goto __18
+ case '#':
+ goto __19
+ case '!':
+ goto __20
+ case '0':
+ goto __21
+ case ',':
+ goto __22
+ default:
+ goto __23
+ case 'l':
+ goto __24
+ case '1':
+ goto __25
+ case '2':
+ goto __26
+ case '3':
+ goto __27
+ case '4':
+ goto __28
+ case '5':
+ goto __29
+ case '6':
+ goto __30
+ case '7':
+ goto __31
+ case '8':
+ goto __32
+ case '9':
+ goto __33
+ case '*':
+ goto __34
+ case '.':
+ goto __35
+ }
+ goto __15
+__16:
+ flag_leftjustify = EtByte(1)
+ goto __15
+__17:
+ flag_prefix = EtByte('+')
+ goto __15
+__18:
+ flag_prefix = EtByte(' ')
+ goto __15
+__19:
+ flag_alternateform = EtByte(1)
+ goto __15
+__20:
+ flag_altform2 = EtByte(1)
+ goto __15
+__21:
+ flag_zeropad = EtByte(1)
+ goto __15
+__22:
+ cThousand = EtByte(',')
+ goto __15
+__23:
+ done = EtByte(1)
+ goto __15
+__24:
+ flag_long = EtByte(1)
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ if !(c == 'l') {
+ goto __36
+ }
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ flag_long = EtByte(2)
+__36:
+ ;
+ done = EtByte(1)
+ goto __15
+
+__25:
+__26:
+__27:
+__28:
+__29:
+__30:
+__31:
+__32:
+__33:
+ wx = uint32(c - '0')
+__37:
+ if !(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))) >= '0' && c <= '9') {
+ goto __38
+ }
+ wx = wx*uint32(10) + uint32(c) - uint32('0')
+ goto __37
+__38:
+ ;
+ width = int32(wx & uint32(0x7fffffff))
+ if !(c != '.' && c != 'l') {
+ goto __39
+ }
+ done = EtByte(1)
+ goto __40
+__39:
+ fmt--
+__40:
+ ;
+ goto __15
+
+__34:
+ if !(bArgList != 0) {
+ goto __41
+ }
+ width = int32(getIntArg(tls, pArgList))
+ goto __42
+__41:
+ width = libc.VaInt32(&ap)
+__42:
+ ;
+ if !(width < 0) {
+ goto __43
+ }
+ flag_leftjustify = EtByte(1)
+ if width >= -2147483647 {
+ width = -width
+ } else {
+ width = 0
+ }
+__43:
+ ;
+ if !(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(fmt + 1)))) != '.' && c != 'l') {
+ goto __44
+ }
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ done = EtByte(1)
+__44:
+ ;
+ goto __15
+
+__35:
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ if !(c == '*') {
+ goto __45
+ }
+ if !(bArgList != 0) {
+ goto __47
+ }
+ precision = int32(getIntArg(tls, pArgList))
+ goto __48
+__47:
+ precision = libc.VaInt32(&ap)
+__48:
+ ;
+ if !(precision < 0) {
+ goto __49
+ }
+ if precision >= -2147483647 {
+ precision = -precision
+ } else {
+ precision = -1
+ }
+__49:
+ ;
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ goto __46
+__45:
+ px = uint32(0)
+__50:
+ if !(c >= '0' && c <= '9') {
+ goto __51
+ }
+ px = px*uint32(10) + uint32(c) - uint32('0')
+ c = int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))
+ goto __50
+__51:
+ ;
+ precision = int32(px & uint32(0x7fffffff))
+__46:
+ ;
+ if !(c == 'l') {
+ goto __52
+ }
+ fmt--
+ goto __53
+__52:
+ done = EtByte(1)
+__53:
+ ;
+ goto __15
+
+__15:
+ ;
+ goto __13
+__13:
+ if !(done != 0) && libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PreIncUintptr(&fmt, 1))))) != 0 {
+ goto __12
+ }
+ goto __14
+__14:
+ ;
+ infop = uintptr(unsafe.Pointer(&fmtinfo))
+ xtype = EtByte(EtINVALID)
+ idx = 0
+__54:
+ if !(idx < int32(uint64(unsafe.Sizeof(fmtinfo))/uint64(unsafe.Sizeof(Et_info{})))) {
+ goto __56
+ }
+ if !(c == int32(fmtinfo[idx].Ffmttype)) {
+ goto __57
+ }
+ infop = uintptr(unsafe.Pointer(&fmtinfo)) + uintptr(idx)*6
+ xtype = (*Et_info)(unsafe.Pointer(infop)).Ftype
+ goto __56
+__57:
+ ;
+ goto __55
+__55:
+ idx++
+ goto __54
+ goto __56
+__56:
+ ;
+ switch int32(xtype) {
+ case EtPOINTER:
+ goto __59
+
+ case EtORDINAL:
+ goto __60
+ case EtRADIX:
+ goto __61
+
+ case EtDECIMAL:
+ goto __62
+ case EtFLOAT:
+ goto __63
+ case EtEXP:
+ goto __64
+ case EtGENERIC:
+ goto __65
+ case EtSIZE:
+ goto __66
+ case EtPERCENT:
+ goto __67
+ case EtCHARX:
+ goto __68
+ case EtSTRING:
+ goto __69
+ case EtDYNSTRING:
+ goto __70
+ case EtSQLESCAPE:
+ goto __71
+ case EtSQLESCAPE2:
+ goto __72
+ case EtSQLESCAPE3:
+ goto __73
+ case EtTOKEN:
+ goto __74
+ case EtSRCITEM:
+ goto __75
+ default:
+ goto __76
+ }
+ goto __58
+__59:
+ if uint64(unsafe.Sizeof(uintptr(0))) == uint64(unsafe.Sizeof(I64(0))) {
+ flag_long = uint8(2)
+ } else {
+ if uint64(unsafe.Sizeof(uintptr(0))) == uint64(unsafe.Sizeof(int64(0))) {
+ flag_long = uint8(1)
+ } else {
+ flag_long = uint8(0)
+ }
+ }
+
+__60:
+__61:
+ cThousand = EtByte(0)
+
+__62:
+ if !(int32((*Et_info)(unsafe.Pointer(infop)).Fflags)&FLAG_SIGNED != 0) {
+ goto __77
+ }
+ if !(bArgList != 0) {
+ goto __79
+ }
+ v = getIntArg(tls, pArgList)
+ goto __80
+__79:
+ if !(flag_long != 0) {
+ goto __81
+ }
+ if !(int32(flag_long) == 2) {
+ goto __83
+ }
+ v = libc.VaInt64(&ap)
+ goto __84
+__83:
+ v = libc.VaInt64(&ap)
+__84:
+ ;
+ goto __82
+__81:
+ v = I64(libc.VaInt32(&ap))
+__82:
+ ;
+__80:
+ ;
+ if !(v < int64(0)) {
+ goto __85
+ }
+
+ longvalue = Sqlite_uint64(^v)
+ longvalue++
+ prefix = int8('-')
+ goto __86
+__85:
+ longvalue = Sqlite_uint64(v)
+ prefix = int8(flag_prefix)
+__86:
+ ;
+ goto __78
+__77:
+ if !(bArgList != 0) {
+ goto __87
+ }
+ longvalue = U64(getIntArg(tls, pArgList))
+ goto __88
+__87:
+ if !(flag_long != 0) {
+ goto __89
+ }
+ if !(int32(flag_long) == 2) {
+ goto __91
+ }
+ longvalue = libc.VaUint64(&ap)
+ goto __92
+__91:
+ longvalue = libc.VaUint64(&ap)
+__92:
+ ;
+ goto __90
+__89:
+ longvalue = Sqlite_uint64(libc.VaUint32(&ap))
+__90:
+ ;
+__88:
+ ;
+ prefix = int8(0)
+__78:
+ ;
+ if !(longvalue == uint64(0)) {
+ goto __93
+ }
+ flag_alternateform = EtByte(0)
+__93:
+ ;
+ if !(flag_zeropad != 0 && precision < width-libc.Bool32(int32(prefix) != 0)) {
+ goto __94
+ }
+ precision = width - libc.Bool32(int32(prefix) != 0)
+__94:
+ ;
+ if !(precision < SQLITE_PRINT_BUF_SIZE-10-SQLITE_PRINT_BUF_SIZE/3) {
+ goto __95
+ }
+ nOut = SQLITE_PRINT_BUF_SIZE
+ zOut = bp + 16
+ goto __96
+__95:
+ n = U64(precision) + uint64(10)
+ if !(cThousand != 0) {
+ goto __97
+ }
+ n = n + U64(precision/3)
+__97:
+ ;
+ zOut = libc.AssignUintptr(&zExtra, printfTempBuf(tls, pAccum, int64(n)))
+ if !(zOut == uintptr(0)) {
+ goto __98
+ }
+ return
+__98:
+ ;
+ nOut = int32(n)
+__96:
+ ;
+ bufpt = zOut + uintptr(nOut-1)
+ if !(int32(xtype) == EtORDINAL) {
+ goto __99
+ }
+ x = int32(longvalue % uint64(10))
+ if !(x >= 4 || longvalue/uint64(10)%uint64(10) == uint64(1)) {
+ goto __100
+ }
+ x = 0
+__100:
+ ;
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = zOrd[x*2+1]
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = zOrd[x*2]
+__99:
+ ;
+ cset = uintptr(unsafe.Pointer(&aDigits)) + uintptr((*Et_info)(unsafe.Pointer(infop)).Fcharset)
+ base = (*Et_info)(unsafe.Pointer(infop)).Fbase
+__101:
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = *(*int8)(unsafe.Pointer(cset + uintptr(longvalue%Sqlite_uint64(base))))
+ longvalue = longvalue / Sqlite_uint64(base)
+ goto __102
+__102:
+ if longvalue > uint64(0) {
+ goto __101
+ }
+ goto __103
+__103:
+ ;
+ length = int32((int64(zOut+uintptr(nOut-1)) - int64(bufpt)) / 1)
+__104:
+ if !(precision > length) {
+ goto __105
+ }
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = int8('0')
+ length++
+ goto __104
+__105:
+ ;
+ if !(cThousand != 0) {
+ goto __106
+ }
+ nn = (length - 1) / 3
+ ix = (length-1)%3 + 1
+ bufpt -= uintptr(nn)
+ idx = 0
+__107:
+ if !(nn > 0) {
+ goto __109
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(idx))) = *(*int8)(unsafe.Pointer(bufpt + uintptr(idx+nn)))
+ ix--
+ if !(ix == 0) {
+ goto __110
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PreIncInt32(&idx, 1)))) = int8(cThousand)
+ nn--
+ ix = 3
+__110:
+ ;
+ goto __108
+__108:
+ idx++
+ goto __107
+ goto __109
+__109:
+ ;
+__106:
+ ;
+ if !(prefix != 0) {
+ goto __111
+ }
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = prefix
+__111:
+ ;
+ if !(flag_alternateform != 0 && (*Et_info)(unsafe.Pointer(infop)).Fprefix != 0) {
+ goto __112
+ }
+ pre = uintptr(unsafe.Pointer(&aPrefix)) + uintptr((*Et_info)(unsafe.Pointer(infop)).Fprefix)
+__113:
+ if !(int32(libc.AssignInt8(&x1, *(*int8)(unsafe.Pointer(pre)))) != 0) {
+ goto __115
+ }
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = x1
+ goto __114
+__114:
+ pre++
+ goto __113
+ goto __115
+__115:
+ ;
+__112:
+ ;
+ length = int32((int64(zOut+uintptr(nOut-1)) - int64(bufpt)) / 1)
+ goto __58
+__63:
+__64:
+__65:
+ if !(bArgList != 0) {
+ goto __116
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) = getDoubleArg(tls, pArgList)
+ goto __117
+__116:
+ *(*float64)(unsafe.Pointer(bp + 104)) = libc.VaFloat64(&ap)
+__117:
+ ;
+ if !(precision < 0) {
+ goto __118
+ }
+ precision = 6
+__118:
+ ;
+ if !(precision > SQLITE_FP_PRECISION_LIMIT) {
+ goto __119
+ }
+ precision = SQLITE_FP_PRECISION_LIMIT
+__119:
+ ;
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) < 0.0) {
+ goto __120
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) = -*(*float64)(unsafe.Pointer(bp + 104))
+ prefix = int8('-')
+ goto __121
+__120:
+ prefix = int8(flag_prefix)
+__121:
+ ;
+ if !(int32(xtype) == EtGENERIC && precision > 0) {
+ goto __122
+ }
+ precision--
+__122:
+ ;
+ idx = precision & 0xfff
+ rounder = arRound[idx%10]
+__123:
+ if !(idx >= 10) {
+ goto __124
+ }
+ rounder = rounder * 1.0e-10
+ idx = idx - 10
+ goto __123
+__124:
+ ;
+ if !(int32(xtype) == EtFLOAT) {
+ goto __125
+ }
+ *(*float64)(unsafe.Pointer(bp + 96)) = *(*float64)(unsafe.Pointer(bp + 104))
+ libc.X__builtin___memcpy_chk(tls, bp+88, bp+96, uint64(unsafe.Sizeof(Sqlite3_uint64(0))), libc.X__builtin_object_size(tls, bp+88, 0))
+ ex = -1023 + int32(*(*Sqlite3_uint64)(unsafe.Pointer(bp + 88))>>52&uint64(0x7ff))
+ if !(precision+ex/3 < 15) {
+ goto __126
+ }
+ rounder = rounder + *(*float64)(unsafe.Pointer(bp + 104))*3e-16
+__126:
+ ;
+ *(*float64)(unsafe.Pointer(bp + 104)) += rounder
+__125:
+ ;
+ exp = 0
+ if !(Xsqlite3IsNaN(tls, *(*float64)(unsafe.Pointer(bp + 104))) != 0) {
+ goto __127
+ }
+ bufpt = ts + 1539
+ length = 3
+ goto __58
+__127:
+ ;
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) > 0.0) {
+ goto __128
+ }
+ scale = 1.0
+__129:
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) >= 1e100*scale && exp <= 350) {
+ goto __130
+ }
+ scale = scale * 1e100
+ exp = exp + 100
+ goto __129
+__130:
+ ;
+__131:
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) >= 1e10*scale && exp <= 350) {
+ goto __132
+ }
+ scale = scale * 1e10
+ exp = exp + 10
+ goto __131
+__132:
+ ;
+__133:
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) >= 10.0*scale && exp <= 350) {
+ goto __134
+ }
+ scale = scale * 10.0
+ exp++
+ goto __133
+__134:
+ ;
+ *(*float64)(unsafe.Pointer(bp + 104)) /= scale
+__135:
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) < 1e-8) {
+ goto __136
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) *= 1e8
+ exp = exp - 8
+ goto __135
+__136:
+ ;
+__137:
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) < 1.0) {
+ goto __138
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) *= 10.0
+ exp--
+ goto __137
+__138:
+ ;
+ if !(exp > 350) {
+ goto __139
+ }
+ bufpt = bp + 16
+ *(*int8)(unsafe.Pointer(bp + 16)) = prefix
+ libc.X__builtin___memcpy_chk(tls, bp+16+uintptr(libc.Bool32(int32(prefix) != 0)), ts+1543, uint64(4), libc.X__builtin_object_size(tls, bp+16+uintptr(libc.Bool32(int32(prefix) != 0)), 0))
+ length = 3 + libc.Bool32(int32(prefix) != 0)
+ goto __58
+__139:
+ ;
+__128:
+ ;
+ bufpt = bp + 16
+
+ if !(int32(xtype) != EtFLOAT) {
+ goto __140
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) += rounder
+ if !(*(*float64)(unsafe.Pointer(bp + 104)) >= 10.0) {
+ goto __141
+ }
+ *(*float64)(unsafe.Pointer(bp + 104)) *= 0.1
+ exp++
+__141:
+ ;
+__140:
+ ;
+ if !(int32(xtype) == EtGENERIC) {
+ goto __142
+ }
+ flag_rtz = libc.BoolUint8(!(flag_alternateform != 0))
+ if !(exp < -4 || exp > precision) {
+ goto __144
+ }
+ xtype = EtByte(EtEXP)
+ goto __145
+__144:
+ precision = precision - exp
+ xtype = EtByte(EtFLOAT)
+__145:
+ ;
+ goto __143
+__142:
+ flag_rtz = flag_altform2
+__143:
+ ;
+ if !(int32(xtype) == EtEXP) {
+ goto __146
+ }
+ e2 = 0
+ goto __147
+__146:
+ e2 = exp
+__147:
+ ;
+ szBufNeeded = func() int64 {
+ if e2 > 0 {
+ return int64(e2)
+ }
+ return int64(0)
+ }() + I64(precision) + I64(width) + int64(15)
+ if !(szBufNeeded > int64(SQLITE_PRINT_BUF_SIZE)) {
+ goto __148
+ }
+ bufpt = libc.AssignUintptr(&zExtra, printfTempBuf(tls, pAccum, szBufNeeded))
+ if !(bufpt == uintptr(0)) {
+ goto __149
+ }
+ return
+__149:
+ ;
+__148:
+ ;
+ zOut = bufpt
+ *(*int32)(unsafe.Pointer(bp + 112)) = 16 + int32(flag_altform2)*10
+ flag_dp = EtByte(func() int32 {
+ if precision > 0 {
+ return 1
+ }
+ return 0
+ }() | int32(flag_alternateform) | int32(flag_altform2))
+
+ if !(prefix != 0) {
+ goto __150
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = prefix
+__150:
+ ;
+ if !(e2 < 0) {
+ goto __151
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('0')
+ goto __152
+__151:
+ ;
+__153:
+ if !(e2 >= 0) {
+ goto __155
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = et_getdigit(tls, bp+104, bp+112)
+ goto __154
+__154:
+ e2--
+ goto __153
+ goto __155
+__155:
+ ;
+__152:
+ ;
+ if !(flag_dp != 0) {
+ goto __156
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('.')
+__156:
+ ;
+ e2++
+__157:
+ if !(e2 < 0) {
+ goto __159
+ }
+
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('0')
+ goto __158
+__158:
+ precision--
+ e2++
+ goto __157
+ goto __159
+__159:
+ ;
+__160:
+ if !(libc.PostDecInt32(&precision, 1) > 0) {
+ goto __161
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = et_getdigit(tls, bp+104, bp+112)
+ goto __160
+__161:
+ ;
+ if !(flag_rtz != 0 && flag_dp != 0) {
+ goto __162
+ }
+__163:
+ if !(int32(*(*int8)(unsafe.Pointer(bufpt + libc.UintptrFromInt32(-1)))) == '0') {
+ goto __164
+ }
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = int8(0)
+ goto __163
+__164:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(bufpt + libc.UintptrFromInt32(-1)))) == '.') {
+ goto __165
+ }
+ if !(flag_altform2 != 0) {
+ goto __166
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('0')
+ goto __167
+__166:
+ *(*int8)(unsafe.Pointer(libc.PreDecUintptr(&bufpt, 1))) = int8(0)
+__167:
+ ;
+__165:
+ ;
+__162:
+ ;
+ if !(int32(xtype) == EtEXP) {
+ goto __168
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = aDigits[(*Et_info)(unsafe.Pointer(infop)).Fcharset]
+ if !(exp < 0) {
+ goto __169
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('-')
+ exp = -exp
+ goto __170
+__169:
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8('+')
+__170:
+ ;
+ if !(exp >= 100) {
+ goto __171
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8(exp/100 + '0')
+ exp = exp % 100
+__171:
+ ;
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8(exp/10 + '0')
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))) = int8(exp%10 + '0')
+__168:
+ ;
+ *(*int8)(unsafe.Pointer(bufpt)) = int8(0)
+
+ length = int32((int64(bufpt) - int64(zOut)) / 1)
+ bufpt = zOut
+
+ if !(flag_zeropad != 0 && !(flag_leftjustify != 0) && length < width) {
+ goto __172
+ }
+ nPad = width - length
+ i = width
+__173:
+ if !(i >= nPad) {
+ goto __175
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(i))) = *(*int8)(unsafe.Pointer(bufpt + uintptr(i-nPad)))
+ goto __174
+__174:
+ i--
+ goto __173
+ goto __175
+__175:
+ ;
+ i = libc.Bool32(int32(prefix) != 0)
+__176:
+ if !(libc.PostDecInt32(&nPad, 1) != 0) {
+ goto __177
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostIncInt32(&i, 1)))) = int8('0')
+ goto __176
+__177:
+ ;
+ length = width
+__172:
+ ;
+ goto __58
+__66:
+ if !!(bArgList != 0) {
+ goto __178
+ }
+ *(*int32)(unsafe.Pointer(libc.VaUintptr(&ap))) = int32((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnChar)
+__178:
+ ;
+ length = libc.AssignInt32(&width, 0)
+ goto __58
+__67:
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8('%')
+ bufpt = bp + 16
+ length = 1
+ goto __58
+__68:
+ if !(bArgList != 0) {
+ goto __179
+ }
+ bufpt = getTextArg(tls, pArgList)
+ length = 1
+ if !(bufpt != 0) {
+ goto __181
+ }
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1))))))
+ if !(c&0xc0 == 0xc0) {
+ goto __183
+ }
+__184:
+ if !(length < 4 && int32(*(*int8)(unsafe.Pointer(bufpt)))&0xc0 == 0x80) {
+ goto __185
+ }
+ *(*int8)(unsafe.Pointer(bp + 16 + uintptr(libc.PostIncInt32(&length, 1)))) = *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&bufpt, 1)))
+ goto __184
+__185:
+ ;
+__183:
+ ;
+ goto __182
+__181:
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(0)
+__182:
+ ;
+ goto __180
+__179:
+ ch = libc.VaUint32(&ap)
+ if !(ch < uint32(0x00080)) {
+ goto __186
+ }
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(ch & uint32(0xff))
+ length = 1
+ goto __187
+__186:
+ if !(ch < uint32(0x00800)) {
+ goto __188
+ }
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(0xc0 + int32(U8(ch>>6&uint32(0x1f))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 1)) = int8(0x80 + int32(U8(ch&uint32(0x3f))))
+ length = 2
+ goto __189
+__188:
+ if !(ch < uint32(0x10000)) {
+ goto __190
+ }
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(0xe0 + int32(U8(ch>>12&uint32(0x0f))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 1)) = int8(0x80 + int32(U8(ch>>6&uint32(0x3f))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 2)) = int8(0x80 + int32(U8(ch&uint32(0x3f))))
+ length = 3
+ goto __191
+__190:
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(0xf0 + int32(U8(ch>>18&uint32(0x07))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 1)) = int8(0x80 + int32(U8(ch>>12&uint32(0x3f))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 2)) = int8(0x80 + int32(U8(ch>>6&uint32(0x3f))))
+ *(*int8)(unsafe.Pointer(bp + 16 + 3)) = int8(0x80 + int32(U8(ch&uint32(0x3f))))
+ length = 4
+__191:
+ ;
+__189:
+ ;
+__187:
+ ;
+__180:
+ ;
+ if !(precision > 1) {
+ goto __192
+ }
+ nPrior = int64(1)
+ width = width - (precision - 1)
+ if !(width > 1 && !(flag_leftjustify != 0)) {
+ goto __193
+ }
+ Xsqlite3_str_appendchar(tls, pAccum, width-1, int8(' '))
+ width = 0
+__193:
+ ;
+ Xsqlite3_str_append(tls, pAccum, bp+16, length)
+ precision--
+__194:
+ if !(precision > 1) {
+ goto __195
+ }
+ if !(nPrior > I64(precision-1)) {
+ goto __196
+ }
+ nPrior = I64(precision - 1)
+__196:
+ ;
+ nCopyBytes = I64(length) * nPrior
+ if !(nCopyBytes+I64((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnChar) >= I64((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnAlloc)) {
+ goto __197
+ }
+ Xsqlite3StrAccumEnlarge(tls, pAccum, nCopyBytes)
+__197:
+ ;
+ if !((*Sqlite3_str)(unsafe.Pointer(pAccum)).FaccError != 0) {
+ goto __198
+ }
+ goto __195
+__198:
+ ;
+ Xsqlite3_str_append(tls, pAccum,
+ (*Sqlite3_str)(unsafe.Pointer(pAccum)).FzText+uintptr(I64((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnChar)-nCopyBytes), int32(nCopyBytes))
+ precision = int32(I64(precision) - nPrior)
+ nPrior = nPrior * int64(2)
+ goto __194
+__195:
+ ;
+__192:
+ ;
+ bufpt = bp + 16
+ flag_altform2 = EtByte(1)
+ goto adjust_width_for_utf8
+__69:
+__70:
+ if !(bArgList != 0) {
+ goto __199
+ }
+ bufpt = getTextArg(tls, pArgList)
+ xtype = EtByte(EtSTRING)
+ goto __200
+__199:
+ bufpt = libc.VaUintptr(&ap)
+__200:
+ ;
+ if !(bufpt == uintptr(0)) {
+ goto __201
+ }
+ bufpt = ts + 1547
+ goto __202
+__201:
+ if !(int32(xtype) == EtDYNSTRING) {
+ goto __203
+ }
+ if !((*Sqlite3_str)(unsafe.Pointer(pAccum)).FnChar == U32(0) &&
+ (*Sqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 &&
+ width == 0 &&
+ precision < 0 &&
+ int32((*Sqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0) {
+ goto __204
+ }
+
+ (*Sqlite3_str)(unsafe.Pointer(pAccum)).FzText = bufpt
+ (*Sqlite3_str)(unsafe.Pointer(pAccum)).FnAlloc = U32(Xsqlite3DbMallocSize(tls, (*Sqlite3_str)(unsafe.Pointer(pAccum)).Fdb, bufpt))
+ (*Sqlite3_str)(unsafe.Pointer(pAccum)).FnChar = U32(0x7fffffff & int32(libc.Xstrlen(tls, bufpt)))
+ *(*U8)(unsafe.Pointer(pAccum + 29)) |= U8(SQLITE_PRINTF_MALLOCED)
+ length = 0
+ goto __58
+__204:
+ ;
+ zExtra = bufpt
+__203:
+ ;
+__202:
+ ;
+ if !(precision >= 0) {
+ goto __205
+ }
+ if !(flag_altform2 != 0) {
+ goto __207
+ }
+
+ z = bufpt
+__209:
+ if !(libc.PostDecInt32(&precision, 1) > 0 && *(*uint8)(unsafe.Pointer(z)) != 0) {
+ goto __210
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) >= 0xc0) {
+ goto __211
+ }
+__212:
+ if !(int32(*(*uint8)(unsafe.Pointer(z)))&0xc0 == 0x80) {
+ goto __213
+ }
+ z++
+ goto __212
+__213:
+ ;
+__211:
+ ;
+ goto __209
+__210:
+ ;
+ length = int32((int64(z) - int64(bufpt)) / 1)
+ goto __208
+__207:
+ length = 0
+__214:
+ if !(length < precision && *(*int8)(unsafe.Pointer(bufpt + uintptr(length))) != 0) {
+ goto __216
+ }
+ goto __215
+__215:
+ length++
+ goto __214
+ goto __216
+__216:
+ ;
+__208:
+ ;
+ goto __206
+__205:
+ length = 0x7fffffff & int32(libc.Xstrlen(tls, bufpt))
+__206:
+ ;
+adjust_width_for_utf8:
+ if !(flag_altform2 != 0 && width > 0) {
+ goto __217
+ }
+
+ ii = length - 1
+__218:
+ if !(ii >= 0) {
+ goto __219
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostDecInt32(&ii, 1)))))&0xc0 == 0x80) {
+ goto __220
+ }
+ width++
+__220:
+ ;
+ goto __218
+__219:
+ ;
+__217:
+ ;
+ goto __58
+__71:
+__72:
+__73:
+ q = func() int8 {
+ if int32(xtype) == EtSQLESCAPE3 {
+ return int8('"')
+ }
+ return int8('\'')
+ }()
+
+ if !(bArgList != 0) {
+ goto __221
+ }
+ escarg = getTextArg(tls, pArgList)
+ goto __222
+__221:
+ escarg = libc.VaUintptr(&ap)
+__222:
+ ;
+ isnull = libc.Bool32(escarg == uintptr(0))
+ if !(isnull != 0) {
+ goto __223
+ }
+ escarg = func() uintptr {
+ if int32(xtype) == EtSQLESCAPE2 {
+ return ts + 1548
+ }
+ return ts + 1553
+ }()
+__223:
+ ;
+ k = I64(precision)
+ i1 = libc.AssignInt64(&n1, int64(0))
+__224:
+ if !(k != int64(0) && int32(libc.AssignInt8(&ch1, *(*int8)(unsafe.Pointer(escarg + uintptr(i1))))) != 0) {
+ goto __226
+ }
+ if !(int32(ch1) == int32(q)) {
+ goto __227
+ }
+ n1++
+__227:
+ ;
+ if !(flag_altform2 != 0 && int32(ch1)&0xc0 == 0xc0) {
+ goto __228
+ }
+__229:
+ if !(int32(*(*int8)(unsafe.Pointer(escarg + uintptr(i1+int64(1)))))&0xc0 == 0x80) {
+ goto __230
+ }
+ i1++
+ goto __229
+__230:
+ ;
+__228:
+ ;
+ goto __225
+__225:
+ i1++
+ k--
+ goto __224
+ goto __226
+__226:
+ ;
+ needQuote = libc.Bool32(!(isnull != 0) && int32(xtype) == EtSQLESCAPE2)
+ n1 = n1 + (i1 + int64(3))
+ if !(n1 > int64(SQLITE_PRINT_BUF_SIZE)) {
+ goto __231
+ }
+ bufpt = libc.AssignUintptr(&zExtra, printfTempBuf(tls, pAccum, n1))
+ if !(bufpt == uintptr(0)) {
+ goto __233
+ }
+ return
+__233:
+ ;
+ goto __232
+__231:
+ bufpt = bp + 16
+__232:
+ ;
+ j = int64(0)
+ if !(needQuote != 0) {
+ goto __234
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostIncInt64(&j, 1)))) = q
+__234:
+ ;
+ k = i1
+ i1 = int64(0)
+__235:
+ if !(i1 < k) {
+ goto __237
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostIncInt64(&j, 1)))) = libc.AssignInt8(&ch1, *(*int8)(unsafe.Pointer(escarg + uintptr(i1))))
+ if !(int32(ch1) == int32(q)) {
+ goto __238
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostIncInt64(&j, 1)))) = ch1
+__238:
+ ;
+ goto __236
+__236:
+ i1++
+ goto __235
+ goto __237
+__237:
+ ;
+ if !(needQuote != 0) {
+ goto __239
+ }
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(libc.PostIncInt64(&j, 1)))) = q
+__239:
+ ;
+ *(*int8)(unsafe.Pointer(bufpt + uintptr(j))) = int8(0)
+ length = int32(j)
+ goto adjust_width_for_utf8
+
+__74:
+ if !(int32((*Sqlite3_str)(unsafe.Pointer(pAccum)).FprintfFlags)&SQLITE_PRINTF_INTERNAL == 0) {
+ goto __240
+ }
+ return
+__240:
+ ;
+ if !(flag_alternateform != 0) {
+ goto __241
+ }
+
+ pExpr = libc.VaUintptr(&ap)
+ if !(pExpr != 0 && !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_IntValue) != U32(0))) {
+ goto __243
+ }
+ Xsqlite3_str_appendall(tls, pAccum, *(*uintptr)(unsafe.Pointer(pExpr + 8)))
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Sqlite3_str)(unsafe.Pointer(pAccum)).Fdb, pExpr)
+__243:
+ ;
+ goto __242
+__241:
+ pToken = libc.VaUintptr(&ap)
+
+ if !(pToken != 0 && (*Token)(unsafe.Pointer(pToken)).Fn != 0) {
+ goto __244
+ }
+ Xsqlite3_str_append(tls, pAccum, (*Token)(unsafe.Pointer(pToken)).Fz, int32((*Token)(unsafe.Pointer(pToken)).Fn))
+ Xsqlite3RecordErrorByteOffset(tls, (*Sqlite3_str)(unsafe.Pointer(pAccum)).Fdb, (*Token)(unsafe.Pointer(pToken)).Fz)
+__244:
+ ;
+__242:
+ ;
+ length = libc.AssignInt32(&width, 0)
+ goto __58
+
+__75:
+ if !(int32((*Sqlite3_str)(unsafe.Pointer(pAccum)).FprintfFlags)&SQLITE_PRINTF_INTERNAL == 0) {
+ goto __245
+ }
+ return
+__245:
+ ;
+ pItem = libc.VaUintptr(&ap)
+
+ if !((*SrcItem)(unsafe.Pointer(pItem)).FzAlias != 0 && !(flag_altform2 != 0)) {
+ goto __246
+ }
+ Xsqlite3_str_appendall(tls, pAccum, (*SrcItem)(unsafe.Pointer(pItem)).FzAlias)
+ goto __247
+__246:
+ if !((*SrcItem)(unsafe.Pointer(pItem)).FzName != 0) {
+ goto __248
+ }
+ if !((*SrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0) {
+ goto __250
+ }
+ Xsqlite3_str_appendall(tls, pAccum, (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase)
+ Xsqlite3_str_append(tls, pAccum, ts+1560, 1)
+__250:
+ ;
+ Xsqlite3_str_appendall(tls, pAccum, (*SrcItem)(unsafe.Pointer(pItem)).FzName)
+ goto __249
+__248:
+ if !((*SrcItem)(unsafe.Pointer(pItem)).FzAlias != 0) {
+ goto __251
+ }
+ Xsqlite3_str_appendall(tls, pAccum, (*SrcItem)(unsafe.Pointer(pItem)).FzAlias)
+ goto __252
+__251:
+ pSel = (*SrcItem)(unsafe.Pointer(pItem)).FpSelect
+
+ if !((*Select)(unsafe.Pointer(pSel)).FselFlags&U32(SF_NestedFrom) != 0) {
+ goto __253
+ }
+ Xsqlite3_str_appendf(tls, pAccum, ts+1562, libc.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
+ goto __254
+__253:
+ Xsqlite3_str_appendf(tls, pAccum, ts+1572, libc.VaList(bp+8, (*Select)(unsafe.Pointer(pSel)).FselId))
+__254:
+ ;
+__252:
+ ;
+__249:
+ ;
+__247:
+ ;
+ length = libc.AssignInt32(&width, 0)
+ goto __58
+
+__76:
+ ;
+ return
+
+__58:
+ ;
+ width = width - length
+ if !(width > 0) {
+ goto __255
+ }
+ if !!(flag_leftjustify != 0) {
+ goto __257
+ }
+ Xsqlite3_str_appendchar(tls, pAccum, width, int8(' '))
+__257:
+ ;
+ Xsqlite3_str_append(tls, pAccum, bufpt, length)
+ if !(flag_leftjustify != 0) {
+ goto __258
+ }
+ Xsqlite3_str_appendchar(tls, pAccum, width, int8(' '))
+__258:
+ ;
+ goto __256
+__255:
+ Xsqlite3_str_append(tls, pAccum, bufpt, length)
+__256:
+ ;
+ if !(zExtra != 0) {
+ goto __259
+ }
+ Xsqlite3DbFree(tls, (*Sqlite3_str)(unsafe.Pointer(pAccum)).Fdb, zExtra)
+ zExtra = uintptr(0)
+__259:
+ ;
+ goto __4
+__4:
+ fmt++
+ goto __3
+ goto __5
+__5:
+}
+
+var zOrd = *(*[9]int8)(unsafe.Pointer(ts + 1586))
+
+// The z string points to the first character of a token that is
+// associated with an error. If db does not already have an error
+// byte offset recorded, try to compute the error byte offset for
+// z and set the error byte offset in db.
+func Xsqlite3RecordErrorByteOffset(tls *libc.TLS, db uintptr, z uintptr) {
+ var pParse uintptr
+ var zText uintptr
+ var zEnd uintptr
+
+ if db == uintptr(0) {
+ return
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset != -2 {
+ return
+ }
+ pParse = (*Sqlite3)(unsafe.Pointer(db)).FpParse
+ if pParse == uintptr(0) {
+ return
+ }
+ zText = (*Parse)(unsafe.Pointer(pParse)).FzTail
+ if zText == uintptr(0) {
+ return
+ }
+ zEnd = zText + uintptr(libc.Xstrlen(tls, zText))
+ if Uptr(z) >= Uptr(zText) && Uptr(z) < Uptr(zEnd) {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = int32((int64(z) - int64(zText)) / 1)
+ }
+}
+
+// If pExpr has a byte offset for the start of a token, record that as
+// as the error offset.
+func Xsqlite3RecordErrorOffsetOfExpr(tls *libc.TLS, db uintptr, pExpr uintptr) {
+ for pExpr != 0 &&
+ ((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) || *(*int32)(unsafe.Pointer(pExpr + 52)) <= 0) {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ }
+ if pExpr == uintptr(0) {
+ return
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = *(*int32)(unsafe.Pointer(pExpr + 52))
+}
+
+// Enlarge the memory allocation on a StrAccum object so that it is
+// able to accept at least N more bytes of text.
+//
+// Return the number of bytes of text that StrAccum is able to accept
+// after the attempted enlargement. The value returned might be zero.
+func Xsqlite3StrAccumEnlarge(tls *libc.TLS, p uintptr, N I64) int32 {
+ var zNew uintptr
+
+ if (*StrAccum)(unsafe.Pointer(p)).FaccError != 0 {
+ return 0
+ }
+ if (*StrAccum)(unsafe.Pointer(p)).FmxAlloc == U32(0) {
+ Xsqlite3StrAccumSetError(tls, p, uint8(SQLITE_TOOBIG))
+ return int32((*StrAccum)(unsafe.Pointer(p)).FnAlloc - (*StrAccum)(unsafe.Pointer(p)).FnChar - U32(1))
+ } else {
+ var zOld uintptr
+ if int32((*StrAccum)(unsafe.Pointer(p)).FprintfFlags)&SQLITE_PRINTF_MALLOCED != 0 {
+ zOld = (*StrAccum)(unsafe.Pointer(p)).FzText
+ } else {
+ zOld = uintptr(0)
+ }
+ var szNew I64 = I64((*StrAccum)(unsafe.Pointer(p)).FnChar) + N + int64(1)
+ if szNew+I64((*StrAccum)(unsafe.Pointer(p)).FnChar) <= I64((*StrAccum)(unsafe.Pointer(p)).FmxAlloc) {
+ szNew = szNew + I64((*StrAccum)(unsafe.Pointer(p)).FnChar)
+ }
+ if szNew > I64((*StrAccum)(unsafe.Pointer(p)).FmxAlloc) {
+ Xsqlite3_str_reset(tls, p)
+ Xsqlite3StrAccumSetError(tls, p, uint8(SQLITE_TOOBIG))
+ return 0
+ } else {
+ (*StrAccum)(unsafe.Pointer(p)).FnAlloc = U32(int32(szNew))
+ }
+ if (*StrAccum)(unsafe.Pointer(p)).Fdb != 0 {
+ zNew = Xsqlite3DbRealloc(tls, (*StrAccum)(unsafe.Pointer(p)).Fdb, zOld, uint64((*StrAccum)(unsafe.Pointer(p)).FnAlloc))
+ } else {
+ zNew = Xsqlite3Realloc(tls, zOld, uint64((*StrAccum)(unsafe.Pointer(p)).FnAlloc))
+ }
+ if zNew != 0 {
+ if !(int32((*StrAccum)(unsafe.Pointer(p)).FprintfFlags)&SQLITE_PRINTF_MALLOCED != 0) && (*StrAccum)(unsafe.Pointer(p)).FnChar > U32(0) {
+ libc.X__builtin___memcpy_chk(tls, zNew, (*StrAccum)(unsafe.Pointer(p)).FzText, uint64((*StrAccum)(unsafe.Pointer(p)).FnChar), libc.X__builtin_object_size(tls, zNew, 0))
+ }
+ (*StrAccum)(unsafe.Pointer(p)).FzText = zNew
+ (*StrAccum)(unsafe.Pointer(p)).FnAlloc = U32(Xsqlite3DbMallocSize(tls, (*StrAccum)(unsafe.Pointer(p)).Fdb, zNew))
+ *(*U8)(unsafe.Pointer(p + 29)) |= U8(SQLITE_PRINTF_MALLOCED)
+ } else {
+ Xsqlite3_str_reset(tls, p)
+ Xsqlite3StrAccumSetError(tls, p, uint8(SQLITE_NOMEM))
+ return 0
+ }
+ }
+
+ return int32(N)
+}
+
+// Append N copies of character c to the given string buffer.
+func Xsqlite3_str_appendchar(tls *libc.TLS, p uintptr, N int32, c int8) {
+ if I64((*Sqlite3_str)(unsafe.Pointer(p)).FnChar)+I64(N) >= I64((*Sqlite3_str)(unsafe.Pointer(p)).FnAlloc) && libc.AssignInt32(&N, Xsqlite3StrAccumEnlarge(tls, p, int64(N))) <= 0 {
+ return
+ }
+ for libc.PostDecInt32(&N, 1) > 0 {
+ *(*int8)(unsafe.Pointer((*Sqlite3_str)(unsafe.Pointer(p)).FzText + uintptr(libc.PostIncUint32(&(*Sqlite3_str)(unsafe.Pointer(p)).FnChar, 1)))) = c
+ }
+}
+
+func enlargeAndAppend(tls *libc.TLS, p uintptr, z uintptr, N int32) {
+ N = Xsqlite3StrAccumEnlarge(tls, p, int64(N))
+ if N > 0 {
+ libc.X__builtin___memcpy_chk(tls, (*StrAccum)(unsafe.Pointer(p)).FzText+uintptr((*StrAccum)(unsafe.Pointer(p)).FnChar), z, uint64(N), libc.X__builtin_object_size(tls, (*StrAccum)(unsafe.Pointer(p)).FzText+uintptr((*StrAccum)(unsafe.Pointer(p)).FnChar), 0))
+ *(*U32)(unsafe.Pointer(p + 24)) += U32(N)
+ }
+}
+
+// Append N bytes of text from z to the StrAccum object. Increase the
+// size of the memory allocation for StrAccum if necessary.
+func Xsqlite3_str_append(tls *libc.TLS, p uintptr, z uintptr, N int32) {
+ if (*Sqlite3_str)(unsafe.Pointer(p)).FnChar+U32(N) >= (*Sqlite3_str)(unsafe.Pointer(p)).FnAlloc {
+ enlargeAndAppend(tls, p, z, N)
+ } else if N != 0 {
+ *(*U32)(unsafe.Pointer(p + 24)) += U32(N)
+ libc.X__builtin___memcpy_chk(tls, (*Sqlite3_str)(unsafe.Pointer(p)).FzText+uintptr((*Sqlite3_str)(unsafe.Pointer(p)).FnChar-U32(N)), z, uint64(N), libc.X__builtin_object_size(tls, (*Sqlite3_str)(unsafe.Pointer(p)).FzText+uintptr((*Sqlite3_str)(unsafe.Pointer(p)).FnChar-U32(N)), 0))
+ }
+}
+
+// Append the complete text of zero-terminated string z[] to the p string.
+func Xsqlite3_str_appendall(tls *libc.TLS, p uintptr, z uintptr) {
+ Xsqlite3_str_append(tls, p, z, Xsqlite3Strlen30(tls, z))
+}
+
+func strAccumFinishRealloc(tls *libc.TLS, p uintptr) uintptr {
+ var zText uintptr
+
+ zText = Xsqlite3DbMallocRaw(tls, (*StrAccum)(unsafe.Pointer(p)).Fdb, uint64((*StrAccum)(unsafe.Pointer(p)).FnChar+U32(1)))
+ if zText != 0 {
+ libc.X__builtin___memcpy_chk(tls, zText, (*StrAccum)(unsafe.Pointer(p)).FzText, uint64((*StrAccum)(unsafe.Pointer(p)).FnChar+U32(1)), libc.X__builtin_object_size(tls, zText, 0))
+ *(*U8)(unsafe.Pointer(p + 29)) |= U8(SQLITE_PRINTF_MALLOCED)
+ } else {
+ Xsqlite3StrAccumSetError(tls, p, uint8(SQLITE_NOMEM))
+ }
+ (*StrAccum)(unsafe.Pointer(p)).FzText = zText
+ return zText
+}
+
+func Xsqlite3StrAccumFinish(tls *libc.TLS, p uintptr) uintptr {
+ if (*StrAccum)(unsafe.Pointer(p)).FzText != 0 {
+ *(*int8)(unsafe.Pointer((*StrAccum)(unsafe.Pointer(p)).FzText + uintptr((*StrAccum)(unsafe.Pointer(p)).FnChar))) = int8(0)
+ if (*StrAccum)(unsafe.Pointer(p)).FmxAlloc > U32(0) && !(int32((*StrAccum)(unsafe.Pointer(p)).FprintfFlags)&SQLITE_PRINTF_MALLOCED != 0) {
+ return strAccumFinishRealloc(tls, p)
+ }
+ }
+ return (*StrAccum)(unsafe.Pointer(p)).FzText
+}
+
+// Use the content of the StrAccum passed as the second argument
+// as the result of an SQL function.
+func Xsqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) {
+ if (*StrAccum)(unsafe.Pointer(p)).FaccError != 0 {
+ Xsqlite3_result_error_code(tls, pCtx, int32((*StrAccum)(unsafe.Pointer(p)).FaccError))
+ Xsqlite3_str_reset(tls, p)
+ } else if int32((*StrAccum)(unsafe.Pointer(p)).FprintfFlags)&SQLITE_PRINTF_MALLOCED != 0 {
+ Xsqlite3_result_text(tls, pCtx, (*StrAccum)(unsafe.Pointer(p)).FzText, int32((*StrAccum)(unsafe.Pointer(p)).FnChar), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ } else {
+ Xsqlite3_result_text(tls, pCtx, ts+1547, 0, uintptr(0))
+ Xsqlite3_str_reset(tls, p)
+ }
+}
+
+var sqlite3OomStr = Sqlite3_str{FaccError: U8(SQLITE_NOMEM)}
+
+// Finalize a string created using sqlite3_str_new().
+func Xsqlite3_str_finish(tls *libc.TLS, p uintptr) uintptr {
+ var z uintptr
+ if p != uintptr(0) && p != uintptr(unsafe.Pointer(&sqlite3OomStr)) {
+ z = Xsqlite3StrAccumFinish(tls, p)
+ Xsqlite3_free(tls, p)
+ } else {
+ z = uintptr(0)
+ }
+ return z
+}
+
+// Return any error code associated with p
+func Xsqlite3_str_errcode(tls *libc.TLS, p uintptr) int32 {
+ if p != 0 {
+ return int32((*Sqlite3_str)(unsafe.Pointer(p)).FaccError)
+ }
+ return SQLITE_NOMEM
+}
+
+// Return the current length of p in bytes
+func Xsqlite3_str_length(tls *libc.TLS, p uintptr) int32 {
+ if p != 0 {
+ return int32((*Sqlite3_str)(unsafe.Pointer(p)).FnChar)
+ }
+ return 0
+}
+
+// Return the current value for p
+func Xsqlite3_str_value(tls *libc.TLS, p uintptr) uintptr {
+ if p == uintptr(0) || (*Sqlite3_str)(unsafe.Pointer(p)).FnChar == U32(0) {
+ return uintptr(0)
+ }
+ *(*int8)(unsafe.Pointer((*Sqlite3_str)(unsafe.Pointer(p)).FzText + uintptr((*Sqlite3_str)(unsafe.Pointer(p)).FnChar))) = int8(0)
+ return (*Sqlite3_str)(unsafe.Pointer(p)).FzText
+}
+
+// Reset an StrAccum string. Reclaim all malloced memory.
+func Xsqlite3_str_reset(tls *libc.TLS, p uintptr) {
+ if int32((*StrAccum)(unsafe.Pointer(p)).FprintfFlags)&SQLITE_PRINTF_MALLOCED != 0 {
+ Xsqlite3DbFree(tls, (*StrAccum)(unsafe.Pointer(p)).Fdb, (*StrAccum)(unsafe.Pointer(p)).FzText)
+ *(*U8)(unsafe.Pointer(p + 29)) &= libc.Uint8FromInt32(libc.CplInt32(SQLITE_PRINTF_MALLOCED))
+ }
+ (*StrAccum)(unsafe.Pointer(p)).FnAlloc = U32(0)
+ (*StrAccum)(unsafe.Pointer(p)).FnChar = U32(0)
+ (*StrAccum)(unsafe.Pointer(p)).FzText = uintptr(0)
+}
+
+// Initialize a string accumulator.
+//
+// p: The accumulator to be initialized.
+// db: Pointer to a database connection. May be NULL. Lookaside
+//
+// memory is used if not NULL. db->mallocFailed is set appropriately
+// when not NULL.
+//
+// zBase: An initial buffer. May be NULL in which case the initial buffer
+//
+// is malloced.
+//
+// n: Size of zBase in bytes. If total space requirements never exceed
+//
+// n then no memory allocations ever occur.
+//
+// mx: Maximum number of bytes to accumulate. If mx==0 then no memory
+//
+// allocations will ever occur.
+func Xsqlite3StrAccumInit(tls *libc.TLS, p uintptr, db uintptr, zBase uintptr, n int32, mx int32) {
+ (*StrAccum)(unsafe.Pointer(p)).FzText = zBase
+ (*StrAccum)(unsafe.Pointer(p)).Fdb = db
+ (*StrAccum)(unsafe.Pointer(p)).FnAlloc = U32(n)
+ (*StrAccum)(unsafe.Pointer(p)).FmxAlloc = U32(mx)
+ (*StrAccum)(unsafe.Pointer(p)).FnChar = U32(0)
+ (*StrAccum)(unsafe.Pointer(p)).FaccError = U8(0)
+ (*StrAccum)(unsafe.Pointer(p)).FprintfFlags = U8(0)
+}
+
+// Allocate and initialize a new dynamic string object
+func Xsqlite3_str_new(tls *libc.TLS, db uintptr) uintptr {
+ var p uintptr = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Sqlite3_str{})))
+ if p != 0 {
+ Xsqlite3StrAccumInit(tls, p, uintptr(0), uintptr(0), 0,
+ func() int32 {
+ if db != 0 {
+ return *(*int32)(unsafe.Pointer(db + 136))
+ }
+ return SQLITE_MAX_LENGTH
+ }())
+ } else {
+ p = uintptr(unsafe.Pointer(&sqlite3OomStr))
+ }
+ return p
+}
+
+// Print into memory obtained from sqliteMalloc(). Use the internal
+// %-conversion extensions.
+func Xsqlite3VMPrintf(tls *libc.TLS, db uintptr, zFormat uintptr, ap Va_list) uintptr {
+ bp := tls.Alloc(102)
+ defer tls.Free(102)
+
+ var z uintptr
+
+ Xsqlite3StrAccumInit(tls, bp, db, bp+32, int32(unsafe.Sizeof([70]int8{})),
+ *(*int32)(unsafe.Pointer(db + 136)))
+ (*StrAccum)(unsafe.Pointer(bp)).FprintfFlags = U8(SQLITE_PRINTF_INTERNAL)
+ Xsqlite3_str_vappendf(tls, bp, zFormat, ap)
+ z = Xsqlite3StrAccumFinish(tls, bp)
+ if int32((*StrAccum)(unsafe.Pointer(bp)).FaccError) == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ }
+ return z
+}
+
+// Print into memory obtained from sqliteMalloc(). Use the internal
+// %-conversion extensions.
+func Xsqlite3MPrintf(tls *libc.TLS, db uintptr, zFormat uintptr, va uintptr) uintptr {
+ var ap Va_list
+ _ = ap
+ var z uintptr
+ ap = va
+ z = Xsqlite3VMPrintf(tls, db, zFormat, ap)
+ _ = ap
+ return z
+}
+
+// Print into memory obtained from sqlite3_malloc(). Omit the internal
+// %-conversion extensions.
+func Xsqlite3_vmprintf(tls *libc.TLS, zFormat uintptr, ap Va_list) uintptr {
+ bp := tls.Alloc(102)
+ defer tls.Free(102)
+
+ var z uintptr
+
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ Xsqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(unsafe.Sizeof([70]int8{})), SQLITE_MAX_LENGTH)
+ Xsqlite3_str_vappendf(tls, bp, zFormat, ap)
+ z = Xsqlite3StrAccumFinish(tls, bp)
+ return z
+}
+
+// Print into memory obtained from sqlite3_malloc()(). Omit the internal
+// %-conversion extensions.
+func Xsqlite3_mprintf(tls *libc.TLS, zFormat uintptr, va uintptr) uintptr {
+ var ap Va_list
+ _ = ap
+ var z uintptr
+ if Xsqlite3_initialize(tls) != 0 {
+ return uintptr(0)
+ }
+ ap = va
+ z = Xsqlite3_vmprintf(tls, zFormat, ap)
+ _ = ap
+ return z
+}
+
+// sqlite3_snprintf() works like snprintf() except that it ignores the
+// current locale settings. This is important for SQLite because we
+// are not able to use a "," as the decimal point in place of "." as
+// specified by some locales.
+//
+// Oops: The first two arguments of sqlite3_snprintf() are backwards
+// from the snprintf() standard. Unfortunately, it is too late to change
+// this without breaking compatibility, so we just have to live with the
+// mistake.
+//
+// sqlite3_vsnprintf() is the varargs version.
+func Xsqlite3_vsnprintf(tls *libc.TLS, n int32, zBuf uintptr, zFormat uintptr, ap Va_list) uintptr {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ if n <= 0 {
+ return zBuf
+ }
+ Xsqlite3StrAccumInit(tls, bp, uintptr(0), zBuf, n, 0)
+ Xsqlite3_str_vappendf(tls, bp, zFormat, ap)
+ *(*int8)(unsafe.Pointer(zBuf + uintptr((*StrAccum)(unsafe.Pointer(bp)).FnChar))) = int8(0)
+ return zBuf
+}
+
+func Xsqlite3_snprintf(tls *libc.TLS, n int32, zBuf uintptr, zFormat uintptr, va uintptr) uintptr {
+ var z uintptr
+ var ap Va_list
+ _ = ap
+ ap = va
+ z = Xsqlite3_vsnprintf(tls, n, zBuf, zFormat, ap)
+ _ = ap
+ return z
+}
+
+func renderLogMsg(tls *libc.TLS, iErrCode int32, zFormat uintptr, ap Va_list) {
+ bp := tls.Alloc(242)
+ defer tls.Free(242)
+
+ Xsqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(unsafe.Sizeof([210]int8{})), 0)
+ Xsqlite3_str_vappendf(tls, bp, zFormat, ap)
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.FxLog})).f(tls, Xsqlite3Config.FpLogArg, iErrCode,
+ Xsqlite3StrAccumFinish(tls, bp))
+}
+
+// Format and write a message to the log if logging is enabled.
+func Xsqlite3_log(tls *libc.TLS, iErrCode int32, zFormat uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ if Xsqlite3Config.FxLog != 0 {
+ ap = va
+ renderLogMsg(tls, iErrCode, zFormat, ap)
+ _ = ap
+ }
+}
+
+// variable-argument wrapper around sqlite3_str_vappendf(). The bFlags argument
+// can contain the bit SQLITE_PRINTF_INTERNAL enable internal formats.
+func Xsqlite3_str_appendf(tls *libc.TLS, p uintptr, zFormat uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ ap = va
+ Xsqlite3_str_vappendf(tls, p, zFormat, ap)
+ _ = ap
+}
+
+type sqlite3PrngType = struct {
+ Fs [16]U32
+ Fout [64]U8
+ Fn U8
+ F__ccgo_pad1 [3]byte
+}
+
+var sqlite3Prng sqlite3PrngType
+
+func chacha_block(tls *libc.TLS, out uintptr, in uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+
+ libc.X__builtin___memcpy_chk(tls, bp, in, uint64(64), libc.X__builtin_object_size(tls, bp, 0))
+ for i = 0; i < 10; i++ {
+ *(*U32)(unsafe.Pointer(bp)) += *(*U32)(unsafe.Pointer(bp + 4*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) ^= *(*U32)(unsafe.Pointer(bp))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) = *(*U32)(unsafe.Pointer(bp + 12*4))<<16 | *(*U32)(unsafe.Pointer(bp + 12*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 8*4)) += *(*U32)(unsafe.Pointer(bp + 12*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) ^= *(*U32)(unsafe.Pointer(bp + 8*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) = *(*U32)(unsafe.Pointer(bp + 4*4))<<12 | *(*U32)(unsafe.Pointer(bp + 4*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp)) += *(*U32)(unsafe.Pointer(bp + 4*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) ^= *(*U32)(unsafe.Pointer(bp))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) = *(*U32)(unsafe.Pointer(bp + 12*4))<<8 | *(*U32)(unsafe.Pointer(bp + 12*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 8*4)) += *(*U32)(unsafe.Pointer(bp + 12*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) ^= *(*U32)(unsafe.Pointer(bp + 8*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) = *(*U32)(unsafe.Pointer(bp + 4*4))<<7 | *(*U32)(unsafe.Pointer(bp + 4*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 1*4)) += *(*U32)(unsafe.Pointer(bp + 5*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) ^= *(*U32)(unsafe.Pointer(bp + 1*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) = *(*U32)(unsafe.Pointer(bp + 13*4))<<16 | *(*U32)(unsafe.Pointer(bp + 13*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 9*4)) += *(*U32)(unsafe.Pointer(bp + 13*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) ^= *(*U32)(unsafe.Pointer(bp + 9*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) = *(*U32)(unsafe.Pointer(bp + 5*4))<<12 | *(*U32)(unsafe.Pointer(bp + 5*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 1*4)) += *(*U32)(unsafe.Pointer(bp + 5*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) ^= *(*U32)(unsafe.Pointer(bp + 1*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) = *(*U32)(unsafe.Pointer(bp + 13*4))<<8 | *(*U32)(unsafe.Pointer(bp + 13*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 9*4)) += *(*U32)(unsafe.Pointer(bp + 13*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) ^= *(*U32)(unsafe.Pointer(bp + 9*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) = *(*U32)(unsafe.Pointer(bp + 5*4))<<7 | *(*U32)(unsafe.Pointer(bp + 5*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 2*4)) += *(*U32)(unsafe.Pointer(bp + 6*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) ^= *(*U32)(unsafe.Pointer(bp + 2*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) = *(*U32)(unsafe.Pointer(bp + 14*4))<<16 | *(*U32)(unsafe.Pointer(bp + 14*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 10*4)) += *(*U32)(unsafe.Pointer(bp + 14*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) ^= *(*U32)(unsafe.Pointer(bp + 10*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) = *(*U32)(unsafe.Pointer(bp + 6*4))<<12 | *(*U32)(unsafe.Pointer(bp + 6*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 2*4)) += *(*U32)(unsafe.Pointer(bp + 6*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) ^= *(*U32)(unsafe.Pointer(bp + 2*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) = *(*U32)(unsafe.Pointer(bp + 14*4))<<8 | *(*U32)(unsafe.Pointer(bp + 14*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 10*4)) += *(*U32)(unsafe.Pointer(bp + 14*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) ^= *(*U32)(unsafe.Pointer(bp + 10*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) = *(*U32)(unsafe.Pointer(bp + 6*4))<<7 | *(*U32)(unsafe.Pointer(bp + 6*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 3*4)) += *(*U32)(unsafe.Pointer(bp + 7*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) ^= *(*U32)(unsafe.Pointer(bp + 3*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) = *(*U32)(unsafe.Pointer(bp + 15*4))<<16 | *(*U32)(unsafe.Pointer(bp + 15*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 11*4)) += *(*U32)(unsafe.Pointer(bp + 15*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) ^= *(*U32)(unsafe.Pointer(bp + 11*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) = *(*U32)(unsafe.Pointer(bp + 7*4))<<12 | *(*U32)(unsafe.Pointer(bp + 7*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 3*4)) += *(*U32)(unsafe.Pointer(bp + 7*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) ^= *(*U32)(unsafe.Pointer(bp + 3*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) = *(*U32)(unsafe.Pointer(bp + 15*4))<<8 | *(*U32)(unsafe.Pointer(bp + 15*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 11*4)) += *(*U32)(unsafe.Pointer(bp + 15*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) ^= *(*U32)(unsafe.Pointer(bp + 11*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) = *(*U32)(unsafe.Pointer(bp + 7*4))<<7 | *(*U32)(unsafe.Pointer(bp + 7*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp)) += *(*U32)(unsafe.Pointer(bp + 5*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) ^= *(*U32)(unsafe.Pointer(bp))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) = *(*U32)(unsafe.Pointer(bp + 15*4))<<16 | *(*U32)(unsafe.Pointer(bp + 15*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 10*4)) += *(*U32)(unsafe.Pointer(bp + 15*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) ^= *(*U32)(unsafe.Pointer(bp + 10*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) = *(*U32)(unsafe.Pointer(bp + 5*4))<<12 | *(*U32)(unsafe.Pointer(bp + 5*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp)) += *(*U32)(unsafe.Pointer(bp + 5*4))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) ^= *(*U32)(unsafe.Pointer(bp))
+ *(*U32)(unsafe.Pointer(bp + 15*4)) = *(*U32)(unsafe.Pointer(bp + 15*4))<<8 | *(*U32)(unsafe.Pointer(bp + 15*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 10*4)) += *(*U32)(unsafe.Pointer(bp + 15*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) ^= *(*U32)(unsafe.Pointer(bp + 10*4))
+ *(*U32)(unsafe.Pointer(bp + 5*4)) = *(*U32)(unsafe.Pointer(bp + 5*4))<<7 | *(*U32)(unsafe.Pointer(bp + 5*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 1*4)) += *(*U32)(unsafe.Pointer(bp + 6*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) ^= *(*U32)(unsafe.Pointer(bp + 1*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) = *(*U32)(unsafe.Pointer(bp + 12*4))<<16 | *(*U32)(unsafe.Pointer(bp + 12*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 11*4)) += *(*U32)(unsafe.Pointer(bp + 12*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) ^= *(*U32)(unsafe.Pointer(bp + 11*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) = *(*U32)(unsafe.Pointer(bp + 6*4))<<12 | *(*U32)(unsafe.Pointer(bp + 6*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 1*4)) += *(*U32)(unsafe.Pointer(bp + 6*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) ^= *(*U32)(unsafe.Pointer(bp + 1*4))
+ *(*U32)(unsafe.Pointer(bp + 12*4)) = *(*U32)(unsafe.Pointer(bp + 12*4))<<8 | *(*U32)(unsafe.Pointer(bp + 12*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 11*4)) += *(*U32)(unsafe.Pointer(bp + 12*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) ^= *(*U32)(unsafe.Pointer(bp + 11*4))
+ *(*U32)(unsafe.Pointer(bp + 6*4)) = *(*U32)(unsafe.Pointer(bp + 6*4))<<7 | *(*U32)(unsafe.Pointer(bp + 6*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 2*4)) += *(*U32)(unsafe.Pointer(bp + 7*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) ^= *(*U32)(unsafe.Pointer(bp + 2*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) = *(*U32)(unsafe.Pointer(bp + 13*4))<<16 | *(*U32)(unsafe.Pointer(bp + 13*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 8*4)) += *(*U32)(unsafe.Pointer(bp + 13*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) ^= *(*U32)(unsafe.Pointer(bp + 8*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) = *(*U32)(unsafe.Pointer(bp + 7*4))<<12 | *(*U32)(unsafe.Pointer(bp + 7*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 2*4)) += *(*U32)(unsafe.Pointer(bp + 7*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) ^= *(*U32)(unsafe.Pointer(bp + 2*4))
+ *(*U32)(unsafe.Pointer(bp + 13*4)) = *(*U32)(unsafe.Pointer(bp + 13*4))<<8 | *(*U32)(unsafe.Pointer(bp + 13*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 8*4)) += *(*U32)(unsafe.Pointer(bp + 13*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) ^= *(*U32)(unsafe.Pointer(bp + 8*4))
+ *(*U32)(unsafe.Pointer(bp + 7*4)) = *(*U32)(unsafe.Pointer(bp + 7*4))<<7 | *(*U32)(unsafe.Pointer(bp + 7*4))>>(32-7)
+ *(*U32)(unsafe.Pointer(bp + 3*4)) += *(*U32)(unsafe.Pointer(bp + 4*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) ^= *(*U32)(unsafe.Pointer(bp + 3*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) = *(*U32)(unsafe.Pointer(bp + 14*4))<<16 | *(*U32)(unsafe.Pointer(bp + 14*4))>>(32-16)
+ *(*U32)(unsafe.Pointer(bp + 9*4)) += *(*U32)(unsafe.Pointer(bp + 14*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) ^= *(*U32)(unsafe.Pointer(bp + 9*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) = *(*U32)(unsafe.Pointer(bp + 4*4))<<12 | *(*U32)(unsafe.Pointer(bp + 4*4))>>(32-12)
+ *(*U32)(unsafe.Pointer(bp + 3*4)) += *(*U32)(unsafe.Pointer(bp + 4*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) ^= *(*U32)(unsafe.Pointer(bp + 3*4))
+ *(*U32)(unsafe.Pointer(bp + 14*4)) = *(*U32)(unsafe.Pointer(bp + 14*4))<<8 | *(*U32)(unsafe.Pointer(bp + 14*4))>>(32-8)
+ *(*U32)(unsafe.Pointer(bp + 9*4)) += *(*U32)(unsafe.Pointer(bp + 14*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) ^= *(*U32)(unsafe.Pointer(bp + 9*4))
+ *(*U32)(unsafe.Pointer(bp + 4*4)) = *(*U32)(unsafe.Pointer(bp + 4*4))<<7 | *(*U32)(unsafe.Pointer(bp + 4*4))>>(32-7)
+ }
+ for i = 0; i < 16; i++ {
+ *(*U32)(unsafe.Pointer(out + uintptr(i)*4)) = *(*U32)(unsafe.Pointer(bp + uintptr(i)*4)) + *(*U32)(unsafe.Pointer(in + uintptr(i)*4))
+ }
+}
+
+// Return N random bytes.
+func Xsqlite3_randomness(tls *libc.TLS, N int32, pBuf uintptr) {
+ var zBuf uintptr = pBuf
+
+ var mutex uintptr
+
+ if Xsqlite3_initialize(tls) != 0 {
+ return
+ }
+
+ mutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_PRNG)
+
+ Xsqlite3_mutex_enter(tls, mutex)
+ if N <= 0 || pBuf == uintptr(0) {
+ *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)))) = U32(0)
+ Xsqlite3_mutex_leave(tls, mutex)
+ return
+ }
+
+ if *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)))) == U32(0) {
+ var pVfs uintptr = Xsqlite3_vfs_find(tls, uintptr(0))
+ libc.X__builtin___memcpy_chk(tls, uintptr(unsafe.Pointer(&sqlite3Prng)), uintptr(unsafe.Pointer(&chacha20_init)), uint64(16), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&sqlite3Prng)), 0))
+ if pVfs == uintptr(0) {
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&sqlite3Prng))+4*4, 0, uint64(44), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&sqlite3Prng))+4*4, 0))
+ } else {
+ Xsqlite3OsRandomness(tls, pVfs, 44, uintptr(unsafe.Pointer(&sqlite3Prng))+4*4)
+ }
+ *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)) + 15*4)) = *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)) + 12*4))
+ *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)) + 12*4)) = U32(0)
+ sqlite3Prng.Fn = U8(0)
+ }
+
+ for 1 != 0 {
+ if N <= int32(sqlite3Prng.Fn) {
+ libc.X__builtin___memcpy_chk(tls, zBuf, uintptr(unsafe.Pointer(&sqlite3Prng))+64+uintptr(int32(sqlite3Prng.Fn)-N), uint64(N), libc.X__builtin_object_size(tls, zBuf, 0))
+ *(*U8)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)) + 128)) -= U8(N)
+ break
+ }
+ if int32(sqlite3Prng.Fn) > 0 {
+ libc.X__builtin___memcpy_chk(tls, zBuf, uintptr(unsafe.Pointer(&sqlite3Prng))+64, uint64(sqlite3Prng.Fn), libc.X__builtin_object_size(tls, zBuf, 0))
+ N = N - int32(sqlite3Prng.Fn)
+ zBuf += uintptr(sqlite3Prng.Fn)
+ }
+ *(*U32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Prng)) + 12*4))++
+ chacha_block(tls, uintptr(unsafe.Pointer(&sqlite3Prng))+64, uintptr(unsafe.Pointer(&sqlite3Prng)))
+ sqlite3Prng.Fn = U8(64)
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+}
+
+var chacha20_init = [4]U32{
+ U32(0x61707865), U32(0x3320646e), U32(0x79622d32), U32(0x6b206574),
+}
+
+var sqlite3SavedPrng sqlite3PrngType
+
+func Xsqlite3PrngSaveState(tls *libc.TLS) {
+ libc.X__builtin___memcpy_chk(tls, uintptr(unsafe.Pointer(&sqlite3SavedPrng)), uintptr(unsafe.Pointer(&sqlite3Prng)), uint64(unsafe.Sizeof(sqlite3Prng)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&sqlite3SavedPrng)), 0))
+}
+
+func Xsqlite3PrngRestoreState(tls *libc.TLS) {
+ libc.X__builtin___memcpy_chk(tls, uintptr(unsafe.Pointer(&sqlite3Prng)), uintptr(unsafe.Pointer(&sqlite3SavedPrng)), uint64(unsafe.Sizeof(sqlite3Prng)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&sqlite3Prng)), 0))
+}
+
+// Create a new thread
+func Xsqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) int32 {
+ var p uintptr
+
+ *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0)
+ p = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(SQLiteThread{})))
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ if int32(p)/17&1 != 0 {
+ (*SQLiteThread)(unsafe.Pointer(p)).FxTask = xTask
+ (*SQLiteThread)(unsafe.Pointer(p)).FpIn = pIn
+ } else {
+ (*SQLiteThread)(unsafe.Pointer(p)).FxTask = uintptr(0)
+ (*SQLiteThread)(unsafe.Pointer(p)).FpResult = (*struct {
+ f func(*libc.TLS, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{xTask})).f(tls, pIn)
+ }
+ *(*uintptr)(unsafe.Pointer(ppThread)) = p
+ return SQLITE_OK
+}
+
+// Get the results of the thread
+func Xsqlite3ThreadJoin(tls *libc.TLS, p uintptr, ppOut uintptr) int32 {
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ if (*SQLiteThread)(unsafe.Pointer(p)).FxTask != 0 {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*struct {
+ f func(*libc.TLS, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*SQLiteThread)(unsafe.Pointer(p)).FxTask})).f(tls, (*SQLiteThread)(unsafe.Pointer(p)).FpIn)
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*SQLiteThread)(unsafe.Pointer(p)).FpResult
+ }
+ Xsqlite3_free(tls, p)
+
+ return SQLITE_OK
+}
+
+var sqlite3Utf8Trans1 = [64]uint8{
+ uint8(0x00), uint8(0x01), uint8(0x02), uint8(0x03), uint8(0x04), uint8(0x05), uint8(0x06), uint8(0x07),
+ uint8(0x08), uint8(0x09), uint8(0x0a), uint8(0x0b), uint8(0x0c), uint8(0x0d), uint8(0x0e), uint8(0x0f),
+ uint8(0x10), uint8(0x11), uint8(0x12), uint8(0x13), uint8(0x14), uint8(0x15), uint8(0x16), uint8(0x17),
+ uint8(0x18), uint8(0x19), uint8(0x1a), uint8(0x1b), uint8(0x1c), uint8(0x1d), uint8(0x1e), uint8(0x1f),
+ uint8(0x00), uint8(0x01), uint8(0x02), uint8(0x03), uint8(0x04), uint8(0x05), uint8(0x06), uint8(0x07),
+ uint8(0x08), uint8(0x09), uint8(0x0a), uint8(0x0b), uint8(0x0c), uint8(0x0d), uint8(0x0e), uint8(0x0f),
+ uint8(0x00), uint8(0x01), uint8(0x02), uint8(0x03), uint8(0x04), uint8(0x05), uint8(0x06), uint8(0x07),
+ uint8(0x00), uint8(0x01), uint8(0x02), uint8(0x03), uint8(0x00), uint8(0x01), uint8(0x00), uint8(0x00),
+}
+
+// Translate a single UTF-8 character. Return the unicode value.
+//
+// During translation, assume that the byte that zTerm points
+// is a 0x00.
+//
+// Write a pointer to the next unread byte back into *pzNext.
+//
+// Notes On Invalid UTF-8:
+//
+// - This routine never allows a 7-bit character (0x00 through 0x7f) to
+// be encoded as a multi-byte character. Any multi-byte character that
+// attempts to encode a value between 0x00 and 0x7f is rendered as 0xfffd.
+//
+// - This routine never allows a UTF16 surrogate value to be encoded.
+// If a multi-byte character attempts to encode a value between
+// 0xd800 and 0xe000 then it is rendered as 0xfffd.
+//
+// - Bytes in the range of 0x80 through 0xbf which occur as the first
+// byte of a character are interpreted as single-byte characters
+// and rendered as themselves even though they are technically
+// invalid characters.
+//
+// - This routine accepts over-length UTF8 encodings
+// for unicode values 0x80 and greater. It does not change over-length
+// encodings to 0xfffd as some systems recommend.
+func Xsqlite3Utf8Read(tls *libc.TLS, pz uintptr) U32 {
+ var c uint32
+
+ c = uint32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(pz)), 1))))
+ if c >= uint32(0xc0) {
+ c = uint32(sqlite3Utf8Trans1[c-uint32(0xc0)])
+ for int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pz)))))&0xc0 == 0x80 {
+ c = c<<6 + uint32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(pz)), 1)))))
+ }
+ if c < uint32(0x80) ||
+ c&0xFFFFF800 == uint32(0xD800) ||
+ c&0xFFFFFFFE == uint32(0xFFFE) {
+ c = uint32(0xFFFD)
+ }
+ }
+ return c
+}
+
+// This routine transforms the internal text encoding used by pMem to
+// desiredEnc. It is an error if the string is already of the desired
+// encoding, or if *pMem does not contain a string value.
+func Xsqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc U8) int32 {
+ var len Sqlite3_int64
+ var zOut uintptr
+ var zIn uintptr
+ var zTerm uintptr
+ var z uintptr
+ var c uint32
+ var temp U8
+ var rc int32
+ var c2 int32
+ var c21 int32
+
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fenc) != SQLITE_UTF8 && int32(desiredEnc) != SQLITE_UTF8) {
+ goto __1
+ }
+ rc = Xsqlite3VdbeMemMakeWriteable(tls, pMem)
+ if !(rc != SQLITE_OK) {
+ goto __2
+ }
+
+ return SQLITE_NOMEM
+__2:
+ ;
+ zIn = (*Mem)(unsafe.Pointer(pMem)).Fz
+ zTerm = zIn + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn&libc.CplInt32(1))
+__3:
+ if !(zIn < zTerm) {
+ goto __4
+ }
+ temp = *(*uint8)(unsafe.Pointer(zIn))
+ *(*uint8)(unsafe.Pointer(zIn)) = *(*uint8)(unsafe.Pointer(zIn + uintptr(1)))
+ zIn++
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))) = temp
+ goto __3
+__4:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = desiredEnc
+ goto translate_out
+__1:
+ ;
+ if !(int32(desiredEnc) == SQLITE_UTF8) {
+ goto __5
+ }
+
+ *(*int32)(unsafe.Pointer(pMem + 16)) &= libc.CplInt32(1)
+ len = int64(2)*Sqlite3_int64((*Mem)(unsafe.Pointer(pMem)).Fn) + int64(1)
+ goto __6
+__5:
+ len = int64(2)*Sqlite3_int64((*Mem)(unsafe.Pointer(pMem)).Fn) + int64(2)
+__6:
+ ;
+ zIn = (*Mem)(unsafe.Pointer(pMem)).Fz
+ zTerm = zIn + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn)
+ zOut = Xsqlite3DbMallocRaw(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, uint64(len))
+ if !!(zOut != 0) {
+ goto __7
+ }
+ return SQLITE_NOMEM
+__7:
+ ;
+ z = zOut
+
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == SQLITE_UTF8) {
+ goto __8
+ }
+ if !(int32(desiredEnc) == SQLITE_UTF16LE) {
+ goto __10
+ }
+
+__12:
+ if !(zIn < zTerm) {
+ goto __13
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if !(c >= uint32(0xc0)) {
+ goto __14
+ }
+ c = uint32(sqlite3Utf8Trans1[c-uint32(0xc0)])
+__15:
+ if !(zIn != zTerm && int32(*(*uint8)(unsafe.Pointer(zIn)))&0xc0 == 0x80) {
+ goto __16
+ }
+ c = c<<6 + uint32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))))
+ goto __15
+__16:
+ ;
+ if !(c < uint32(0x80) || c&0xFFFFF800 == uint32(0xD800) || c&0xFFFFFFFE == uint32(0xFFFE)) {
+ goto __17
+ }
+ c = uint32(0xFFFD)
+__17:
+ ;
+__14:
+ ;
+ if !(c <= uint32(0xFFFF)) {
+ goto __18
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0x00FF))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c >> 8 & uint32(0x00FF))
+ goto __19
+__18:
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c>>10&uint32(0x003F) + (c-uint32(0x10000))>>10&uint32(0x00C0))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(uint32(0x00D8) + (c-uint32(0x10000))>>18&uint32(0x03))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0x00FF))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(uint32(0x00DC) + c>>8&uint32(0x03))
+__19:
+ ;
+ goto __12
+__13:
+ ;
+ goto __11
+__10:
+ ;
+__20:
+ if !(zIn < zTerm) {
+ goto __21
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if !(c >= uint32(0xc0)) {
+ goto __22
+ }
+ c = uint32(sqlite3Utf8Trans1[c-uint32(0xc0)])
+__23:
+ if !(zIn != zTerm && int32(*(*uint8)(unsafe.Pointer(zIn)))&0xc0 == 0x80) {
+ goto __24
+ }
+ c = c<<6 + uint32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))))
+ goto __23
+__24:
+ ;
+ if !(c < uint32(0x80) || c&0xFFFFF800 == uint32(0xD800) || c&0xFFFFFFFE == uint32(0xFFFE)) {
+ goto __25
+ }
+ c = uint32(0xFFFD)
+__25:
+ ;
+__22:
+ ;
+ if !(c <= uint32(0xFFFF)) {
+ goto __26
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c >> 8 & uint32(0x00FF))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0x00FF))
+ goto __27
+__26:
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(uint32(0x00D8) + (c-uint32(0x10000))>>18&uint32(0x03))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c>>10&uint32(0x003F) + (c-uint32(0x10000))>>10&uint32(0x00C0))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(uint32(0x00DC) + c>>8&uint32(0x03))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0x00FF))
+__27:
+ ;
+ goto __20
+__21:
+ ;
+__11:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32((int64(z) - int64(zOut)) / 1)
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0)
+ goto __9
+__8:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == SQLITE_UTF16LE) {
+ goto __28
+ }
+
+__30:
+ if !(zIn < zTerm) {
+ goto __31
+ }
+ c = uint32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ c = c + uint32(int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))<<8)
+ if !(c >= uint32(0xd800) && c < uint32(0xe000)) {
+ goto __32
+ }
+ if !(zIn < zTerm) {
+ goto __33
+ }
+ c2 = int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ c2 = c2 + int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))<<8
+ c = uint32(c2&0x03FF) + c&uint32(0x003F)<<10 + (c&uint32(0x03C0)+uint32(0x0040))<<10
+__33:
+ ;
+__32:
+ ;
+ if !(c < uint32(0x00080)) {
+ goto __34
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0xFF))
+ goto __35
+__34:
+ if !(c < uint32(0x00800)) {
+ goto __36
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xC0 + int32(U8(c>>6&uint32(0x1F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ goto __37
+__36:
+ if !(c < uint32(0x10000)) {
+ goto __38
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xE0 + int32(U8(c>>12&uint32(0x0F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ goto __39
+__38:
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xF0 + int32(U8(c>>18&uint32(0x07))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>12&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+__39:
+ ;
+__37:
+ ;
+__35:
+ ;
+ goto __30
+__31:
+ ;
+ goto __29
+__28:
+__40:
+ if !(zIn < zTerm) {
+ goto __41
+ }
+ c = uint32(int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))) << 8)
+ c = c + uint32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if !(c >= uint32(0xd800) && c < uint32(0xe000)) {
+ goto __42
+ }
+ if !(zIn < zTerm) {
+ goto __43
+ }
+ c21 = int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))) << 8
+ c21 = c21 + int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ c = uint32(c21&0x03FF) + c&uint32(0x003F)<<10 + (c&uint32(0x03C0)+uint32(0x0040))<<10
+__43:
+ ;
+__42:
+ ;
+ if !(c < uint32(0x00080)) {
+ goto __44
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = U8(c & uint32(0xFF))
+ goto __45
+__44:
+ if !(c < uint32(0x00800)) {
+ goto __46
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xC0 + int32(U8(c>>6&uint32(0x1F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ goto __47
+__46:
+ if !(c < uint32(0x10000)) {
+ goto __48
+ }
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xE0 + int32(U8(c>>12&uint32(0x0F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ goto __49
+__48:
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0xF0 + int32(U8(c>>18&uint32(0x07))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>12&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+__49:
+ ;
+__47:
+ ;
+__45:
+ ;
+ goto __40
+__41:
+ ;
+__29:
+ ;
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32((int64(z) - int64(zOut)) / 1)
+__9:
+ ;
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+
+ c = uint32(MEM_Str | MEM_Term | int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_AffMask|MEM_Subtype))
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(c)
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = desiredEnc
+ (*Mem)(unsafe.Pointer(pMem)).Fz = zOut
+ (*Mem)(unsafe.Pointer(pMem)).FzMalloc = (*Mem)(unsafe.Pointer(pMem)).Fz
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = Xsqlite3DbMallocSize(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).Fz)
+
+translate_out:
+ return SQLITE_OK
+}
+
+// This routine checks for a byte-order mark at the beginning of the
+// UTF-16 string stored in *pMem. If one is present, it is removed and
+// the encoding of the Mem adjusted. This routine does not do any
+// byte-swapping, it just sets Mem.enc appropriately.
+//
+// The allocation (static, dynamic etc.) and encoding of the Mem may be
+// changed by this function.
+func Xsqlite3VdbeMemHandleBom(tls *libc.TLS, pMem uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var bom U8 = U8(0)
+
+ if (*Mem)(unsafe.Pointer(pMem)).Fn > 1 {
+ var b1 U8 = *(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz))
+ var b2 U8 = *(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr(1)))
+ if int32(b1) == 0xFE && int32(b2) == 0xFF {
+ bom = U8(SQLITE_UTF16BE)
+ }
+ if int32(b1) == 0xFF && int32(b2) == 0xFE {
+ bom = U8(SQLITE_UTF16LE)
+ }
+ }
+
+ if bom != 0 {
+ rc = Xsqlite3VdbeMemMakeWriteable(tls, pMem)
+ if rc == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pMem + 16)) -= 2
+ libc.X__builtin___memmove_chk(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, (*Mem)(unsafe.Pointer(pMem)).Fz+2, uint64((*Mem)(unsafe.Pointer(pMem)).Fn), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, 0))
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn+1))) = int8(0)
+ *(*U16)(unsafe.Pointer(pMem + 20)) |= U16(MEM_Term)
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = bom
+ }
+ }
+ return rc
+}
+
+// pZ is a UTF-8 encoded unicode string. If nByte is less than zero,
+// return the number of unicode characters in pZ up to (but not including)
+// the first 0x00 byte. If nByte is not less than zero, return the
+// number of unicode characters in the first nByte of pZ (or up to
+// the first 0x00, whichever comes first).
+func Xsqlite3Utf8CharLen(tls *libc.TLS, zIn uintptr, nByte int32) int32 {
+ var r int32 = 0
+ var z uintptr = zIn
+ var zTerm uintptr
+ if nByte >= 0 {
+ zTerm = z + uintptr(nByte)
+ } else {
+ zTerm = libc.UintptrFromInt32(-1)
+ }
+
+ for int32(*(*U8)(unsafe.Pointer(z))) != 0 && z < zTerm {
+ {
+ if int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) >= 0xc0 {
+ for int32(*(*U8)(unsafe.Pointer(z)))&0xc0 == 0x80 {
+ z++
+ }
+ }
+ }
+
+ r++
+ }
+ return r
+}
+
+// Convert a UTF-16 string in the native encoding into a UTF-8 string.
+// Memory to hold the UTF-8 string is obtained from sqlite3_malloc and must
+// be freed by the calling function.
+//
+// NULL is returned if there is an allocation error.
+func Xsqlite3Utf16to8(tls *libc.TLS, db uintptr, z uintptr, nByte int32, enc U8) uintptr {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Mem)(unsafe.Pointer(bp)).Fdb = db
+ Xsqlite3VdbeMemSetStr(tls, bp, z, int64(nByte), enc, uintptr(0))
+ Xsqlite3VdbeChangeEncoding(tls, bp, SQLITE_UTF8)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3VdbeMemRelease(tls, bp)
+ (*Mem)(unsafe.Pointer(bp)).Fz = uintptr(0)
+ }
+
+ return (*Mem)(unsafe.Pointer(bp)).Fz
+}
+
+// zIn is a UTF-16 encoded unicode string at least nChar characters long.
+// Return the number of bytes in the first nChar unicode characters
+// in pZ. nChar must be non-negative.
+func Xsqlite3Utf16ByteLen(tls *libc.TLS, zIn uintptr, nChar int32) int32 {
+ var c int32
+ var z uintptr = zIn
+ var n int32 = 0
+
+ if SQLITE_UTF16LE == SQLITE_UTF16LE {
+ z++
+ }
+ for n < nChar {
+ c = int32(*(*uint8)(unsafe.Pointer(z)))
+ z += uintptr(2)
+ if c >= 0xd8 && c < 0xdc && int32(*(*uint8)(unsafe.Pointer(z))) >= 0xdc && int32(*(*uint8)(unsafe.Pointer(z))) < 0xe0 {
+ z += uintptr(2)
+ }
+ n++
+ }
+ return int32((int64(z)-int64(zIn))/1) -
+ libc.Bool32(SQLITE_UTF16LE == SQLITE_UTF16LE)
+}
+
+// Define float_t and double_t per C standard, ISO/IEC 9899:2011 7.12 2,
+//
+// taking advantage of GCC's __FLT_EVAL_METHOD__ (which a compiler may
+// define anytime and GCC does) that shadows FLT_EVAL_METHOD (which a
+// compiler must define only in float.h).
+type Float_t = float32
+type Double_t = float64
+
+func X__inline_isfinitef(tls *libc.TLS, __x float32) int32 {
+ return libc.Bool32(__x == __x && libc.X__builtin_fabsf(tls, __x) != libc.X__builtin_inff(tls))
+}
+
+func X__inline_isfinited(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(__x == __x && libc.X__builtin_fabs(tls, __x) != libc.X__builtin_inf(tls))
+}
+
+func X__inline_isfinitel(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(__x == __x && libc.X__builtin_fabsl(tls, __x) != libc.X__builtin_infl(tls))
+}
+
+func X__inline_isinff(tls *libc.TLS, __x float32) int32 {
+ return libc.Bool32(libc.X__builtin_fabsf(tls, __x) == libc.X__builtin_inff(tls))
+}
+
+func X__inline_isinfd(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(libc.X__builtin_fabs(tls, __x) == libc.X__builtin_inf(tls))
+}
+
+func X__inline_isinfl(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(libc.X__builtin_fabsl(tls, __x) == libc.X__builtin_infl(tls))
+}
+
+func X__inline_isnanf(tls *libc.TLS, __x float32) int32 {
+ return libc.Bool32(__x != __x)
+}
+
+func X__inline_isnand(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(__x != __x)
+}
+
+func X__inline_isnanl(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(__x != __x)
+}
+
+func X__inline_signbitf(tls *libc.TLS, __x float32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*float32)(unsafe.Pointer(bp)) = __x
+ return int32(*(*uint32)(unsafe.Pointer(bp)) >> 31)
+}
+
+func X__inline_signbitd(tls *libc.TLS, __x float64) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*float64)(unsafe.Pointer(bp)) = __x
+ return int32(*(*uint64)(unsafe.Pointer(bp)) >> 63)
+}
+
+func X__inline_signbitl(tls *libc.TLS, __x float64) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*float64)(unsafe.Pointer(bp)) = __x
+ return int32(*(*uint64)(unsafe.Pointer(bp)) >> 63)
+}
+
+func X__inline_isnormalf(tls *libc.TLS, __x float32) int32 {
+ return libc.Bool32(X__inline_isfinitef(tls, __x) != 0 && libc.X__builtin_fabsf(tls, __x) >= 1.17549435e-38)
+}
+
+func X__inline_isnormald(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(X__inline_isfinited(tls, __x) != 0 && libc.X__builtin_fabs(tls, __x) >= 2.2250738585072014e-308)
+}
+
+func X__inline_isnormall(tls *libc.TLS, __x float64) int32 {
+ return libc.Bool32(X__inline_isfinitel(tls, __x) != 0 && libc.X__builtin_fabsl(tls, __x) >= 2.2250738585072014e-308)
+}
+
+type __float2 = struct {
+ F__sinval float32
+ F__cosval float32
+}
+
+type __double2 = struct {
+ F__sinval float64
+ F__cosval float64
+}
+
+func X__sincosf(tls *libc.TLS, __x float32, __sinp uintptr, __cosp uintptr) {
+ var __stret = libc.X__sincosf_stret(tls, __x)
+ *(*float32)(unsafe.Pointer(__sinp)) = __stret.F__sinval
+ *(*float32)(unsafe.Pointer(__cosp)) = __stret.F__cosval
+}
+
+func X__sincos(tls *libc.TLS, __x float64, __sinp uintptr, __cosp uintptr) {
+ var __stret = libc.X__sincos_stret(tls, __x)
+ *(*float64)(unsafe.Pointer(__sinp)) = __stret.F__sinval
+ *(*float64)(unsafe.Pointer(__cosp)) = __stret.F__cosval
+}
+
+func X__sincospif(tls *libc.TLS, __x float32, __sinp uintptr, __cosp uintptr) {
+ var __stret = libc.X__sincospif_stret(tls, __x)
+ *(*float32)(unsafe.Pointer(__sinp)) = __stret.F__sinval
+ *(*float32)(unsafe.Pointer(__cosp)) = __stret.F__cosval
+}
+
+func X__sincospi(tls *libc.TLS, __x float64, __sinp uintptr, __cosp uintptr) {
+ var __stret = libc.X__sincospi_stret(tls, __x)
+ *(*float64)(unsafe.Pointer(__sinp)) = __stret.F__sinval
+ *(*float64)(unsafe.Pointer(__cosp)) = __stret.F__cosval
+}
+
+type exception = struct {
+ Ftype int32
+ F__ccgo_pad1 [4]byte
+ Fname uintptr
+ Farg1 float64
+ Farg2 float64
+ Fretval float64
+}
+
+// Calls to sqlite3FaultSim() are used to simulate a failure during testing,
+// or to bypass normal error detection during testing in order to let
+// execute proceed futher downstream.
+//
+// In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The
+// sqlite3FaultSim() function only returns non-zero during testing.
+//
+// During testing, if the test harness has set a fault-sim callback using
+// a call to sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL), then
+// each call to sqlite3FaultSim() is relayed to that application-supplied
+// callback and the integer return value form the application-supplied
+// callback is returned by sqlite3FaultSim().
+//
+// The integer argument to sqlite3FaultSim() is a code to identify which
+// sqlite3FaultSim() instance is being invoked. Each call to sqlite3FaultSim()
+// should have a unique code. To prevent legacy testing applications from
+// breaking, the codes should not be changed or reused.
+func Xsqlite3FaultSim(tls *libc.TLS, iTest int32) int32 {
+ var xCallback uintptr = Xsqlite3Config.FxTestCallback
+ if xCallback != 0 {
+ return (*struct{ f func(*libc.TLS, int32) int32 })(unsafe.Pointer(&struct{ uintptr }{xCallback})).f(tls, iTest)
+ }
+ return SQLITE_OK
+}
+
+// Return true if the floating point value is Not a Number (NaN).
+//
+// Use the math library isnan() function if compiled with SQLITE_HAVE_ISNAN.
+// Otherwise, we have our own implementation that works on most systems.
+func Xsqlite3IsNaN(tls *libc.TLS, x float64) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+ *(*float64)(unsafe.Pointer(bp + 8)) = x
+
+ var rc int32
+
+ libc.X__builtin___memcpy_chk(tls, bp, bp+8, uint64(unsafe.Sizeof(U64(0))), libc.X__builtin_object_size(tls, bp, 0))
+ rc = libc.Bool32(*(*U64)(unsafe.Pointer(bp))&(uint64(0x7ff)<<52) == uint64(0x7ff)<<52 && *(*U64)(unsafe.Pointer(bp))&(uint64(1)<<52-uint64(1)) != uint64(0))
+
+ return rc
+}
+
+// Compute a string length that is limited to what can be stored in
+// lower 30 bits of a 32-bit signed integer.
+//
+// The value returned will never be negative. Nor will it ever be greater
+// than the actual length of the string. For very long strings (greater
+// than 1GiB) the value returned might be less than the true string length.
+func Xsqlite3Strlen30(tls *libc.TLS, z uintptr) int32 {
+ if z == uintptr(0) {
+ return 0
+ }
+ return 0x3fffffff & int32(libc.Xstrlen(tls, z))
+}
+
+// Return the declared type of a column. Or return zDflt if the column
+// has no declared type.
+//
+// The column type is an extra string stored after the zero-terminator on
+// the column name if and only if the COLFLAG_HASTYPE flag is set.
+func Xsqlite3ColumnType(tls *libc.TLS, pCol uintptr, zDflt uintptr) uintptr {
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_HASTYPE != 0 {
+ return (*Column)(unsafe.Pointer(pCol)).FzCnName + uintptr(libc.Xstrlen(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName)) + uintptr(1)
+ } else if uint32(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) != 0 {
+ return Xsqlite3StdType[(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)-1)&0xf<<28>>28]
+ } else {
+ return zDflt
+ }
+ return uintptr(0)
+}
+
+func sqlite3ErrorFinish(tls *libc.TLS, db uintptr, err_code int32) {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 {
+ Xsqlite3ValueSetNull(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ }
+ Xsqlite3SystemError(tls, db, err_code)
+}
+
+// Set the current error code to err_code and clear any prior error message.
+// Also set iSysErrno (by calling sqlite3System) if the err_code indicates
+// that would be appropriate.
+func Xsqlite3Error(tls *libc.TLS, db uintptr, err_code int32) {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = err_code
+ if err_code != 0 || (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 {
+ sqlite3ErrorFinish(tls, db, err_code)
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = -1
+ }
+}
+
+// The equivalent of sqlite3Error(db, SQLITE_OK). Clear the error state
+// and error message.
+func Xsqlite3ErrorClear(tls *libc.TLS, db uintptr) {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = SQLITE_OK
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = -1
+ if (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 {
+ Xsqlite3ValueSetNull(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ }
+}
+
+// Load the sqlite3.iSysErrno field if that is an appropriate thing
+// to do based on the SQLite error code in rc.
+func Xsqlite3SystemError(tls *libc.TLS, db uintptr, rc int32) {
+ if rc == SQLITE_IOERR|int32(12)<<8 {
+ return
+ }
+ rc = rc & 0xff
+ if rc == SQLITE_CANTOPEN || rc == SQLITE_IOERR {
+ (*Sqlite3)(unsafe.Pointer(db)).FiSysErrno = Xsqlite3OsGetLastError(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs)
+ }
+}
+
+// Set the most recent error code and error string for the sqlite
+// handle "db". The error code is set to "err_code".
+//
+// If it is not NULL, string zFormat specifies the format of the
+// error string. zFormat and any string tokens that follow it are
+// assumed to be encoded in UTF-8.
+//
+// To clear the most recent error for sqlite handle "db", sqlite3Error
+// should be called with err_code set to SQLITE_OK and zFormat set
+// to NULL.
+func Xsqlite3ErrorWithMsg(tls *libc.TLS, db uintptr, err_code int32, zFormat uintptr, va uintptr) {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = err_code
+ Xsqlite3SystemError(tls, db, err_code)
+ if zFormat == uintptr(0) {
+ Xsqlite3Error(tls, db, err_code)
+ } else if (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 || libc.AssignPtrUintptr(db+424, Xsqlite3ValueNew(tls, db)) != uintptr(0) {
+ var z uintptr
+ var ap Va_list
+ _ = ap
+ ap = va
+ z = Xsqlite3VMPrintf(tls, db, zFormat, ap)
+ _ = ap
+ Xsqlite3ValueSetStr(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr, -1, z, uint8(SQLITE_UTF8), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ }
+}
+
+// Check for interrupts and invoke progress callback.
+func Xsqlite3ProgressCheck(tls *libc.TLS, p uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(p)).Fdb
+ if *(*int32)(unsafe.Pointer(db + 432)) != 0 {
+ (*Parse)(unsafe.Pointer(p)).FnErr++
+ (*Parse)(unsafe.Pointer(p)).Frc = SQLITE_INTERRUPT
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FxProgress != 0 && libc.PreIncUint32(&(*Parse)(unsafe.Pointer(p)).FnProgressSteps, 1) >= (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps {
+ if (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxProgress})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0 {
+ (*Parse)(unsafe.Pointer(p)).FnErr++
+ (*Parse)(unsafe.Pointer(p)).Frc = SQLITE_INTERRUPT
+ }
+ (*Parse)(unsafe.Pointer(p)).FnProgressSteps = U32(0)
+ }
+}
+
+// Add an error message to pParse->zErrMsg and increment pParse->nErr.
+//
+// This function should be used to report any error that occurs while
+// compiling an SQL statement (i.e. within sqlite3_prepare()). The
+// last thing the sqlite3_prepare() function does is copy the error
+// stored by this function into the database handle using sqlite3Error().
+// Functions sqlite3Error() or sqlite3ErrorWithMsg() should be used
+// during statement execution (sqlite3_step() etc.).
+func Xsqlite3ErrorMsg(tls *libc.TLS, pParse uintptr, zFormat uintptr, va uintptr) {
+ var zMsg uintptr
+ var ap Va_list
+ _ = ap
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = -2
+ ap = va
+ zMsg = Xsqlite3VMPrintf(tls, db, zFormat, ap)
+ _ = ap
+ if (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset < -1 {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = -1
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr != 0 {
+ Xsqlite3DbFree(tls, db, zMsg)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ } else {
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ Xsqlite3DbFree(tls, db, (*Parse)(unsafe.Pointer(pParse)).FzErrMsg)
+ (*Parse)(unsafe.Pointer(pParse)).FzErrMsg = zMsg
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = uintptr(0)
+ }
+}
+
+// If database connection db is currently parsing SQL, then transfer
+// error code errCode to that parser if the parser has not already
+// encountered some other kind of error.
+func Xsqlite3ErrorToParser(tls *libc.TLS, db uintptr, errCode int32) int32 {
+ var pParse uintptr
+ if db == uintptr(0) || libc.AssignUintptr(&pParse, (*Sqlite3)(unsafe.Pointer(db)).FpParse) == uintptr(0) {
+ return errCode
+ }
+ (*Parse)(unsafe.Pointer(pParse)).Frc = errCode
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ return errCode
+}
+
+// Convert an SQL-style quoted string into a normal string by removing
+// the quote characters. The conversion is done in-place. If the
+// input does not begin with a quote character, then this routine
+// is a no-op.
+//
+// The input string must be zero-terminated. A new zero-terminator
+// is added to the dequoted string.
+//
+// The return value is -1 if no dequoting occurs or the length of the
+// dequoted string, exclusive of the zero terminator, if dequoting does
+// occur.
+//
+// 2002-02-14: This routine is extended to remove MS-Access style
+// brackets from around identifiers. For example: "[a-b-c]" becomes
+// "a-b-c".
+func Xsqlite3Dequote(tls *libc.TLS, z uintptr) {
+ var quote int8
+ var i int32
+ var j int32
+ if z == uintptr(0) {
+ return
+ }
+ quote = *(*int8)(unsafe.Pointer(z))
+ if !(int32(Xsqlite3CtypeMap[uint8(quote)])&0x80 != 0) {
+ return
+ }
+ if int32(quote) == '[' {
+ quote = int8(']')
+ }
+ i = 1
+ j = 0
+ for ; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32(quote) {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(i+1)))) == int32(quote) {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&j, 1)))) = quote
+ i++
+ } else {
+ break
+ }
+ } else {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&j, 1)))) = *(*int8)(unsafe.Pointer(z + uintptr(i)))
+ }
+ }
+ *(*int8)(unsafe.Pointer(z + uintptr(j))) = int8(0)
+}
+
+func Xsqlite3DequoteExpr(tls *libc.TLS, p uintptr) {
+ *(*U32)(unsafe.Pointer(p + 4)) |= func() uint32 {
+ if int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 8))))) == '"' {
+ return uint32(EP_Quoted | EP_DblQuoted)
+ }
+ return uint32(EP_Quoted)
+ }()
+ Xsqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8)))
+}
+
+// If the input token p is quoted, try to adjust the token to remove
+// the quotes. This is not always possible:
+//
+// "abc" -> abc
+// "ab""cd" -> (not possible because of the interior "")
+//
+// Remove the quotes if possible. This is a optimization. The overall
+// system should still return the correct answer even if this routine
+// is always a no-op.
+func Xsqlite3DequoteToken(tls *libc.TLS, p uintptr) {
+ var i uint32
+ if (*Token)(unsafe.Pointer(p)).Fn < uint32(2) {
+ return
+ }
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(p)).Fz)))])&0x80 != 0) {
+ return
+ }
+ for i = uint32(1); i < (*Token)(unsafe.Pointer(p)).Fn-uint32(1); i++ {
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(p)).Fz + uintptr(i))))])&0x80 != 0 {
+ return
+ }
+ }
+ *(*uint32)(unsafe.Pointer(p + 8)) -= uint32(2)
+ (*Token)(unsafe.Pointer(p)).Fz++
+}
+
+// Generate a Token object from a string
+func Xsqlite3TokenInit(tls *libc.TLS, p uintptr, z uintptr) {
+ (*Token)(unsafe.Pointer(p)).Fz = z
+ (*Token)(unsafe.Pointer(p)).Fn = uint32(Xsqlite3Strlen30(tls, z))
+}
+
+// Some systems have stricmp(). Others have strcasecmp(). Because
+// there is no consistency, we will define our own.
+//
+// IMPLEMENTATION-OF: R-30243-02494 The sqlite3_stricmp() and
+// sqlite3_strnicmp() APIs allow applications and extensions to compare
+// the contents of two buffers containing UTF-8 strings in a
+// case-independent fashion, using the same definition of "case
+// independence" that SQLite uses internally when comparing identifiers.
+func Xsqlite3_stricmp(tls *libc.TLS, zLeft uintptr, zRight uintptr) int32 {
+ if zLeft == uintptr(0) {
+ if zRight != 0 {
+ return -1
+ }
+ return 0
+ } else if zRight == uintptr(0) {
+ return 1
+ }
+ return Xsqlite3StrICmp(tls, zLeft, zRight)
+}
+
+func Xsqlite3StrICmp(tls *libc.TLS, zLeft uintptr, zRight uintptr) int32 {
+ var a uintptr
+ var b uintptr
+ var c int32
+ var x int32
+ a = zLeft
+ b = zRight
+ for {
+ c = int32(*(*uint8)(unsafe.Pointer(a)))
+ x = int32(*(*uint8)(unsafe.Pointer(b)))
+ if c == x {
+ if c == 0 {
+ break
+ }
+ } else {
+ c = int32(Xsqlite3UpperToLower[c]) - int32(Xsqlite3UpperToLower[x])
+ if c != 0 {
+ break
+ }
+ }
+ a++
+ b++
+ }
+ return c
+}
+
+func Xsqlite3_strnicmp(tls *libc.TLS, zLeft uintptr, zRight uintptr, N int32) int32 {
+ var a uintptr
+ var b uintptr
+ if zLeft == uintptr(0) {
+ if zRight != 0 {
+ return -1
+ }
+ return 0
+ } else if zRight == uintptr(0) {
+ return 1
+ }
+ a = zLeft
+ b = zRight
+ for libc.PostDecInt32(&N, 1) > 0 && int32(*(*uint8)(unsafe.Pointer(a))) != 0 && int32(Xsqlite3UpperToLower[*(*uint8)(unsafe.Pointer(a))]) == int32(Xsqlite3UpperToLower[*(*uint8)(unsafe.Pointer(b))]) {
+ a++
+ b++
+ }
+ if N < 0 {
+ return 0
+ }
+ return int32(Xsqlite3UpperToLower[*(*uint8)(unsafe.Pointer(a))]) - int32(Xsqlite3UpperToLower[*(*uint8)(unsafe.Pointer(b))])
+}
+
+// Compute an 8-bit hash on a string that is insensitive to case differences
+func Xsqlite3StrIHash(tls *libc.TLS, z uintptr) U8 {
+ var h U8 = U8(0)
+ if z == uintptr(0) {
+ return U8(0)
+ }
+ for *(*int8)(unsafe.Pointer(z)) != 0 {
+ h = U8(int32(h) + int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]))
+ z++
+ }
+ return h
+}
+
+func sqlite3Pow10(tls *libc.TLS, E int32) float64 {
+ var x float64 = 10.0
+ var r float64 = 1.0
+ for 1 != 0 {
+ if E&1 != 0 {
+ r = r * x
+ }
+ E >>= 1
+ if E == 0 {
+ break
+ }
+ x = x * x
+ }
+ return r
+}
+
+// The string z[] is an text representation of a real number.
+// Convert this string to a double and write it into *pResult.
+//
+// The string z[] is length bytes in length (bytes, not characters) and
+// uses the encoding enc. The string is not necessarily zero-terminated.
+//
+// Return TRUE if the result is a valid real number (or integer) and FALSE
+// if the string is empty or contains extraneous text. More specifically
+// return
+//
+// 1 => The input string is a pure integer
+// 2 or more => The input has a decimal point or eNNN clause
+// 0 or less => The input string is not a valid number
+// -1 => Not a valid number, but has a valid prefix which
+// includes a decimal point and/or an eNNN clause
+//
+// Valid numbers are in one of these formats:
+//
+// [+-]digits[E[+-]digits]
+// [+-]digits.[digits][E[+-]digits]
+// [+-].digits[E[+-]digits]
+//
+// Leading and trailing whitespace is ignored for the purpose of determining
+// validity.
+//
+// If some prefix of the input string is a valid number, this routine
+// returns FALSE but it still converts the prefix and writes the result
+// into *pResult.
+func Xsqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc U8) int32 {
+ var incr int32
+ var zEnd uintptr
+
+ var sign int32
+ var s I64
+ var d int32
+ var esign int32
+ var e int32
+ var eValid int32
+ var result float64
+ var nDigit int32
+ var eType int32
+ var i int32
+ var scale float64
+ var scale1 float64
+ sign = 1
+ s = int64(0)
+ d = 0
+ esign = 1
+ e = 0
+ eValid = 1
+ nDigit = 0
+ eType = 1
+
+ *(*float64)(unsafe.Pointer(pResult)) = 0.0
+ if !(length == 0) {
+ goto __1
+ }
+ return 0
+__1:
+ ;
+ if !(int32(enc) == SQLITE_UTF8) {
+ goto __2
+ }
+ incr = 1
+ zEnd = z + uintptr(length)
+ goto __3
+__2:
+ incr = 2
+ length = length & libc.CplInt32(1)
+
+ i = 3 - int32(enc)
+__4:
+ if !(i < length && int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == 0) {
+ goto __6
+ }
+ goto __5
+__5:
+ i = i + 2
+ goto __4
+ goto __6
+__6:
+ ;
+ if !(i < length) {
+ goto __7
+ }
+ eType = -100
+__7:
+ ;
+ zEnd = z + uintptr(i^1)
+ z += uintptr(int32(enc) & 1)
+__3:
+ ;
+__8:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x01 != 0) {
+ goto __9
+ }
+ z += uintptr(incr)
+ goto __8
+__9:
+ ;
+ if !(z >= zEnd) {
+ goto __10
+ }
+ return 0
+__10:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '-') {
+ goto __11
+ }
+ sign = -1
+ z += uintptr(incr)
+ goto __12
+__11:
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '+') {
+ goto __13
+ }
+ z += uintptr(incr)
+__13:
+ ;
+__12:
+ ;
+__14:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x04 != 0) {
+ goto __15
+ }
+ s = s*int64(10) + I64(int32(*(*int8)(unsafe.Pointer(z)))-'0')
+ z += uintptr(incr)
+ nDigit++
+ if !(s >= (int64(0xffffffff)|int64(0x7fffffff)<<32-int64(9))/int64(10)) {
+ goto __16
+ }
+
+__17:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x04 != 0) {
+ goto __18
+ }
+ z += uintptr(incr)
+ d++
+ goto __17
+__18:
+ ;
+__16:
+ ;
+ goto __14
+__15:
+ ;
+ if !(z >= zEnd) {
+ goto __19
+ }
+ goto do_atof_calc
+__19:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '.') {
+ goto __20
+ }
+ z += uintptr(incr)
+ eType++
+
+__21:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x04 != 0) {
+ goto __22
+ }
+ if !(s < (int64(0xffffffff)|int64(0x7fffffff)<<32-int64(9))/int64(10)) {
+ goto __23
+ }
+ s = s*int64(10) + I64(int32(*(*int8)(unsafe.Pointer(z)))-'0')
+ d--
+ nDigit++
+__23:
+ ;
+ z += uintptr(incr)
+ goto __21
+__22:
+ ;
+__20:
+ ;
+ if !(z >= zEnd) {
+ goto __24
+ }
+ goto do_atof_calc
+__24:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == 'e' || int32(*(*int8)(unsafe.Pointer(z))) == 'E') {
+ goto __25
+ }
+ z += uintptr(incr)
+ eValid = 0
+ eType++
+
+ if !(z >= zEnd) {
+ goto __26
+ }
+ goto do_atof_calc
+__26:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '-') {
+ goto __27
+ }
+ esign = -1
+ z += uintptr(incr)
+ goto __28
+__27:
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '+') {
+ goto __29
+ }
+ z += uintptr(incr)
+__29:
+ ;
+__28:
+ ;
+__30:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x04 != 0) {
+ goto __31
+ }
+ if e < 10000 {
+ e = e*10 + (int32(*(*int8)(unsafe.Pointer(z))) - '0')
+ } else {
+ e = 10000
+ }
+ z += uintptr(incr)
+ eValid = 1
+ goto __30
+__31:
+ ;
+__25:
+ ;
+__32:
+ if !(z < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x01 != 0) {
+ goto __33
+ }
+ z += uintptr(incr)
+ goto __32
+__33:
+ ;
+do_atof_calc:
+ e = e*esign + d
+ if !(e < 0) {
+ goto __34
+ }
+ esign = -1
+ e = e * -1
+ goto __35
+__34:
+ esign = 1
+__35:
+ ;
+ if !(s == int64(0)) {
+ goto __36
+ }
+
+ if sign < 0 {
+ result = -libc.Float64FromFloat64(float64(0))
+ } else {
+ result = float64(0)
+ }
+ goto __37
+__36:
+__38:
+ if !(e > 0) {
+ goto __39
+ }
+ if !(esign > 0) {
+ goto __40
+ }
+ if !(s >= (int64(0xffffffff)|int64(0x7fffffff)<<32)/int64(10)) {
+ goto __42
+ }
+ goto __39
+__42:
+ ;
+ s = s * int64(10)
+ goto __41
+__40:
+ if !(s%int64(10) != int64(0)) {
+ goto __43
+ }
+ goto __39
+__43:
+ ;
+ s = s / int64(10)
+__41:
+ ;
+ e--
+ goto __38
+__39:
+ ;
+ if sign < 0 {
+ s = -s
+ } else {
+ s = s
+ }
+
+ if !(e == 0) {
+ goto __44
+ }
+ result = float64(s)
+ goto __45
+__44:
+ if !(e > 307) {
+ goto __46
+ }
+ if !(e < 342) {
+ goto __48
+ }
+ scale = sqlite3Pow10(tls, e-308)
+ if !(esign < 0) {
+ goto __50
+ }
+ result = float64(s) / scale
+ result = result / 1.0e+308
+ goto __51
+__50:
+ result = float64(s) * scale
+ result = result * 1.0e+308
+__51:
+ ;
+ goto __49
+__48:
+ ;
+ if !(esign < 0) {
+ goto __52
+ }
+ result = 0.0 * float64(s)
+ goto __53
+__52:
+ result = float64(libc.X__builtin_huge_valf(tls) * float32(s))
+__53:
+ ;
+__49:
+ ;
+ goto __47
+__46:
+ scale1 = sqlite3Pow10(tls, e)
+ if !(esign < 0) {
+ goto __54
+ }
+ result = float64(s) / scale1
+ goto __55
+__54:
+ result = float64(s) * scale1
+__55:
+ ;
+__47:
+ ;
+__45:
+ ;
+__37:
+ ;
+ *(*float64)(unsafe.Pointer(pResult)) = result
+
+ if !(z == zEnd && nDigit > 0 && eValid != 0 && eType > 0) {
+ goto __56
+ }
+ return eType
+ goto __57
+__56:
+ if !(eType >= 2 && (eType == 3 || eValid != 0) && nDigit > 0) {
+ goto __58
+ }
+ return -1
+ goto __59
+__58:
+ return 0
+__59:
+ ;
+__57:
+ ;
+ return int32(0)
+}
+
+// Render an signed 64-bit integer as text. Store the result in zOut[] and
+// return the length of the string that was stored, in bytes. The value
+// returned does not include the zero terminator at the end of the output
+// string.
+//
+// The caller must ensure that zOut[] is at least 21 bytes in size.
+func Xsqlite3Int64ToText(tls *libc.TLS, v I64, zOut uintptr) int32 {
+ bp := tls.Alloc(22)
+ defer tls.Free(22)
+
+ var i int32
+ var x U64
+
+ if v < int64(0) {
+ if v == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ x = uint64(1) << 63
+ } else {
+ x = U64(-v)
+ }
+ } else {
+ x = U64(v)
+ }
+ i = int32(uint64(unsafe.Sizeof([22]int8{})) - uint64(2))
+ *(*int8)(unsafe.Pointer(bp + 21)) = int8(0)
+ for __ccgo := true; __ccgo; __ccgo = x != 0 {
+ *(*int8)(unsafe.Pointer(bp + uintptr(libc.PostDecInt32(&i, 1)))) = int8(x%uint64(10) + uint64('0'))
+ x = x / uint64(10)
+ }
+ if v < int64(0) {
+ *(*int8)(unsafe.Pointer(bp + uintptr(libc.PostDecInt32(&i, 1)))) = int8('-')
+ }
+ libc.X__builtin___memcpy_chk(tls, zOut, bp+uintptr(i+1), uint64(unsafe.Sizeof([22]int8{}))-uint64(1)-uint64(i), libc.X__builtin_object_size(tls, zOut, 0))
+ return int32(uint64(unsafe.Sizeof([22]int8{})) - uint64(2) - uint64(i))
+}
+
+func compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) int32 {
+ var c int32 = 0
+ var i int32
+
+ var pow63 uintptr = ts + 1595
+ for i = 0; c == 0 && i < 18; i++ {
+ c = (int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i*incr)))) - int32(*(*int8)(unsafe.Pointer(pow63 + uintptr(i))))) * 10
+ }
+ if c == 0 {
+ c = int32(*(*int8)(unsafe.Pointer(zNum + uintptr(18*incr)))) - '8'
+
+ }
+ return c
+}
+
+// Convert zNum to a 64-bit signed integer. zNum must be decimal. This
+// routine does *not* accept hexadecimal notation.
+//
+// Returns:
+//
+// -1 Not even a prefix of the input text looks like an integer
+// 0 Successful transformation. Fits in a 64-bit signed integer.
+// 1 Excess non-space text after the integer value
+// 2 Integer too large for a 64-bit signed integer or is malformed
+// 3 Special case of 9223372036854775808
+//
+// length is the number of bytes in the string (bytes, not characters).
+// The string is not necessarily zero-terminated. The encoding is
+// given by enc.
+func Xsqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc U8) int32 {
+ var incr int32
+ var u U64 = uint64(0)
+ var neg int32 = 0
+ var i int32
+ var c int32 = 0
+ var nonNum int32 = 0
+ var rc int32
+ var zStart uintptr
+ var zEnd uintptr = zNum + uintptr(length)
+
+ if int32(enc) == SQLITE_UTF8 {
+ incr = 1
+ } else {
+ incr = 2
+ length = length & libc.CplInt32(1)
+
+ for i = 3 - int32(enc); i < length && int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i)))) == 0; i = i + 2 {
+ }
+ nonNum = libc.Bool32(i < length)
+ zEnd = zNum + uintptr(i^1)
+ zNum += uintptr(int32(enc) & 1)
+ }
+ for zNum < zEnd && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum)))])&0x01 != 0 {
+ zNum += uintptr(incr)
+ }
+ if zNum < zEnd {
+ if int32(*(*int8)(unsafe.Pointer(zNum))) == '-' {
+ neg = 1
+ zNum += uintptr(incr)
+ } else if int32(*(*int8)(unsafe.Pointer(zNum))) == '+' {
+ zNum += uintptr(incr)
+ }
+ }
+ zStart = zNum
+ for zNum < zEnd && int32(*(*int8)(unsafe.Pointer(zNum))) == '0' {
+ zNum += uintptr(incr)
+ }
+ for i = 0; zNum+uintptr(i) < zEnd && libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i))))) >= '0' && c <= '9'; i = i + incr {
+ u = u*uint64(10) + U64(c) - uint64('0')
+ }
+
+ if u > uint64(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ *(*I64)(unsafe.Pointer(pNum)) = func() int64 {
+ if neg != 0 {
+ return int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ }
+ return int64(0xffffffff) | int64(0x7fffffff)<<32
+ }()
+ } else if neg != 0 {
+ *(*I64)(unsafe.Pointer(pNum)) = -I64(u)
+ } else {
+ *(*I64)(unsafe.Pointer(pNum)) = I64(u)
+ }
+ rc = 0
+ if i == 0 && zStart == zNum {
+ rc = -1
+ } else if nonNum != 0 {
+ rc = 1
+ } else if zNum+uintptr(i) < zEnd {
+ var jj int32 = i
+ for __ccgo := true; __ccgo; __ccgo = zNum+uintptr(jj) < zEnd {
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum + uintptr(jj))))])&0x01 != 0) {
+ rc = 1
+ break
+ }
+ jj = jj + incr
+ }
+ }
+ if i < 19*incr {
+ return rc
+ } else {
+ if i > 19*incr {
+ c = 1
+ } else {
+ c = compare2pow63(tls, zNum, incr)
+ }
+ if c < 0 {
+ return rc
+ } else {
+ *(*I64)(unsafe.Pointer(pNum)) = func() int64 {
+ if neg != 0 {
+ return int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ }
+ return int64(0xffffffff) | int64(0x7fffffff)<<32
+ }()
+ if c > 0 {
+ return 2
+ } else {
+ if neg != 0 {
+ return rc
+ }
+ return 3
+ }
+ }
+ }
+ return int32(0)
+}
+
+// Transform a UTF-8 integer literal, in either decimal or hexadecimal,
+// into a 64-bit signed integer. This routine accepts hexadecimal literals,
+// whereas sqlite3Atoi64() does not.
+//
+// Returns:
+//
+// 0 Successful transformation. Fits in a 64-bit signed integer.
+// 1 Excess text after the integer value
+// 2 Integer too large for a 64-bit signed integer or is malformed
+// 3 Special case of 9223372036854775808
+func Xsqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if int32(*(*int8)(unsafe.Pointer(z))) == '0' &&
+ (int32(*(*int8)(unsafe.Pointer(z + 1))) == 'x' || int32(*(*int8)(unsafe.Pointer(z + 1))) == 'X') {
+ *(*U64)(unsafe.Pointer(bp)) = uint64(0)
+ var i int32
+ var k int32
+ for i = 2; int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == '0'; i++ {
+ }
+ for k = i; int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(k))))])&0x08 != 0; k++ {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))*uint64(16) + U64(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + uintptr(k))))))
+ }
+ libc.X__builtin___memcpy_chk(tls, pOut, bp, uint64(8), libc.X__builtin_object_size(tls, pOut, 0))
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(k)))) == 0 && k-i <= 16 {
+ return 0
+ }
+ return 2
+ } else {
+ return Xsqlite3Atoi64(tls, z, pOut, Xsqlite3Strlen30(tls, z), uint8(SQLITE_UTF8))
+ }
+ return int32(0)
+}
+
+// If zNum represents an integer that will fit in 32-bits, then set
+// *pValue to that integer and return true. Otherwise return false.
+//
+// This routine accepts both decimal and hexadecimal notation for integers.
+//
+// Any non-numeric characters that following zNum are ignored.
+// This is different from sqlite3Atoi64() which requires the
+// input number to be zero-terminated.
+func Xsqlite3GetInt32(tls *libc.TLS, zNum uintptr, pValue uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var v Sqlite_int64 = int64(0)
+ var i int32
+ var c int32
+ var neg int32 = 0
+ if int32(*(*int8)(unsafe.Pointer(zNum))) == '-' {
+ neg = 1
+ zNum++
+ } else if int32(*(*int8)(unsafe.Pointer(zNum))) == '+' {
+ zNum++
+ } else if int32(*(*int8)(unsafe.Pointer(zNum))) == '0' &&
+ (int32(*(*int8)(unsafe.Pointer(zNum + 1))) == 'x' || int32(*(*int8)(unsafe.Pointer(zNum + 1))) == 'X') &&
+ int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum + 2)))])&0x08 != 0 {
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+ zNum += uintptr(2)
+ for int32(*(*int8)(unsafe.Pointer(zNum))) == '0' {
+ zNum++
+ }
+ for i = 0; int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum + uintptr(i))))])&0x08 != 0 && i < 8; i++ {
+ *(*U32)(unsafe.Pointer(bp)) = *(*U32)(unsafe.Pointer(bp))*U32(16) + U32(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i))))))
+ }
+ if *(*U32)(unsafe.Pointer(bp))&0x80000000 == U32(0) && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum + uintptr(i))))])&0x08 == 0 {
+ libc.X__builtin___memcpy_chk(tls, pValue, bp, uint64(4), libc.X__builtin_object_size(tls, pValue, 0))
+ return 1
+ } else {
+ return 0
+ }
+ }
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum)))])&0x04 != 0) {
+ return 0
+ }
+ for int32(*(*int8)(unsafe.Pointer(zNum))) == '0' {
+ zNum++
+ }
+ for i = 0; i < 11 && libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i))))-'0') >= 0 && c <= 9; i++ {
+ v = v*int64(10) + Sqlite_int64(c)
+ }
+
+ if i > 10 {
+ return 0
+ }
+
+ if v-Sqlite_int64(neg) > int64(2147483647) {
+ return 0
+ }
+ if neg != 0 {
+ v = -v
+ }
+ *(*int32)(unsafe.Pointer(pValue)) = int32(v)
+ return 1
+}
+
+// Return a 32-bit integer value extracted from a string. If the
+// string is not an integer, just return 0.
+func Xsqlite3Atoi(tls *libc.TLS, z uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ Xsqlite3GetInt32(tls, z, bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+// Try to convert z into an unsigned 32-bit integer. Return true on
+// success and false if there is an error.
+//
+// Only decimal notation is accepted.
+func Xsqlite3GetUInt32(tls *libc.TLS, z uintptr, pI uintptr) int32 {
+ var v U64 = uint64(0)
+ var i int32
+ for i = 0; int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&0x04 != 0; i++ {
+ v = v*uint64(10) + U64(*(*int8)(unsafe.Pointer(z + uintptr(i)))) - uint64('0')
+ if v > uint64(4294967296) {
+ *(*U32)(unsafe.Pointer(pI)) = U32(0)
+ return 0
+ }
+ }
+ if i == 0 || int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) != 0 {
+ *(*U32)(unsafe.Pointer(pI)) = U32(0)
+ return 0
+ }
+ *(*U32)(unsafe.Pointer(pI)) = U32(v)
+ return 1
+}
+
+func putVarint64(tls *libc.TLS, p uintptr, v U64) int32 {
+ bp := tls.Alloc(10)
+ defer tls.Free(10)
+
+ var i int32
+ var j int32
+ var n int32
+
+ if v&(uint64(0xff000000)<<32) != 0 {
+ *(*uint8)(unsafe.Pointer(p + 8)) = U8(v)
+ v >>= 8
+ for i = 7; i >= 0; i-- {
+ *(*uint8)(unsafe.Pointer(p + uintptr(i))) = U8(v&uint64(0x7f) | uint64(0x80))
+ v >>= 7
+ }
+ return 9
+ }
+ n = 0
+ for __ccgo := true; __ccgo; __ccgo = v != uint64(0) {
+ *(*U8)(unsafe.Pointer(bp + uintptr(libc.PostIncInt32(&n, 1)))) = U8(v&uint64(0x7f) | uint64(0x80))
+ v >>= 7
+ }
+ *(*U8)(unsafe.Pointer(bp)) &= U8(0x7f)
+
+ i = 0
+ j = n - 1
+__1:
+ if !(j >= 0) {
+ goto __3
+ }
+ {
+ *(*uint8)(unsafe.Pointer(p + uintptr(i))) = *(*U8)(unsafe.Pointer(bp + uintptr(j)))
+
+ }
+ goto __2
+__2:
+ j--
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ return n
+}
+
+func Xsqlite3PutVarint(tls *libc.TLS, p uintptr, v U64) int32 {
+ if v <= uint64(0x7f) {
+ *(*uint8)(unsafe.Pointer(p)) = uint8(v & uint64(0x7f))
+ return 1
+ }
+ if v <= uint64(0x3fff) {
+ *(*uint8)(unsafe.Pointer(p)) = uint8(v>>7&uint64(0x7f) | uint64(0x80))
+ *(*uint8)(unsafe.Pointer(p + 1)) = uint8(v & uint64(0x7f))
+ return 2
+ }
+ return putVarint64(tls, p, v)
+}
+
+// Read a 64-bit variable-length integer from memory starting at p[0].
+// Return the number of bytes read. The value is stored in *v.
+func Xsqlite3GetVarint(tls *libc.TLS, p uintptr, v uintptr) U8 {
+ var a U32
+ var b U32
+ var s U32
+
+ if int32(*(*int8)(unsafe.Pointer(p))) >= 0 {
+ *(*U64)(unsafe.Pointer(v)) = U64(*(*uint8)(unsafe.Pointer(p)))
+ return U8(1)
+ }
+ if int32(*(*int8)(unsafe.Pointer(p + 1))) >= 0 {
+ *(*U64)(unsafe.Pointer(v)) = U64(U32(int32(*(*uint8)(unsafe.Pointer(p)))&0x7f)<<7 | U32(*(*uint8)(unsafe.Pointer(p + 1))))
+ return U8(2)
+ }
+
+ a = U32(*(*uint8)(unsafe.Pointer(p))) << 14
+ b = U32(*(*uint8)(unsafe.Pointer(p + 1)))
+ p += uintptr(2)
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & U32(SLOT_2_0)
+ b = b & U32(0x7f)
+ b = b << 7
+ a = a | b
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(3)
+ }
+
+ a = a & U32(SLOT_2_0)
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ b = b & U32(SLOT_2_0)
+
+ a = a << 7
+ a = a | b
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(4)
+ }
+
+ b = b & U32(SLOT_2_0)
+ s = a
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ b = b << 7
+ a = a | b
+ s = s >> 18
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(5)
+ }
+
+ s = s << 7
+ s = s | b
+
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ a = a & U32(SLOT_2_0)
+ a = a << 7
+ a = a | b
+ s = s >> 18
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(6)
+ }
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & SLOT_4_2_0
+ b = b & U32(SLOT_2_0)
+ b = b << 7
+ a = a | b
+ s = s >> 11
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(7)
+ }
+
+ a = a & U32(SLOT_2_0)
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ b = b & SLOT_4_2_0
+
+ a = a << 7
+ a = a | b
+ s = s >> 4
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(8)
+ }
+
+ p++
+ a = a << 15
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ b = b & U32(SLOT_2_0)
+ b = b << 8
+ a = a | b
+
+ s = s << 4
+ b = U32(*(*uint8)(unsafe.Pointer(p + libc.UintptrFromInt32(-4))))
+ b = b & U32(0x7f)
+ b = b >> 3
+ s = s | b
+
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+
+ return U8(9)
+}
+
+// Read a 32-bit variable-length integer from memory starting at p[0].
+// Return the number of bytes read. The value is stored in *v.
+//
+// If the varint stored in p[0] is larger than can fit in a 32-bit unsigned
+// integer, then set *v to 0xffffffff.
+//
+// A MACRO version, getVarint32, is provided which inlines the
+// single-byte case. All code should use the MACRO version as
+// this function assumes the single-byte case has already been handled.
+func Xsqlite3GetVarint32(tls *libc.TLS, p uintptr, v uintptr) U8 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var a U32
+ var b U32
+
+ a = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ p++
+ b = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ a = a & U32(0x7f)
+ a = a << 7
+ *(*U32)(unsafe.Pointer(v)) = a | b
+ return U8(2)
+ }
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & U32(int32(0x7f)<<14|0x7f)
+ b = b & U32(0x7f)
+ b = b << 7
+ *(*U32)(unsafe.Pointer(v)) = a | b
+ return U8(3)
+ }
+
+ {
+ var n U8
+
+ n = Xsqlite3GetVarint(tls, p-uintptr(2), bp)
+
+ if *(*U64)(unsafe.Pointer(bp))&(uint64(1)<<32-uint64(1)) != *(*U64)(unsafe.Pointer(bp)) {
+ *(*U32)(unsafe.Pointer(v)) = 0xffffffff
+ } else {
+ *(*U32)(unsafe.Pointer(v)) = U32(*(*U64)(unsafe.Pointer(bp)))
+ }
+ return n
+
+ }
+ return U8(0)
+
+}
+
+// Return the number of bytes that will be needed to store the given
+// 64-bit integer.
+func Xsqlite3VarintLen(tls *libc.TLS, v U64) int32 {
+ var i int32
+ for i = 1; libc.AssignShrUint64(&v, int(uint64(7))) != uint64(0); i++ {
+ }
+ return i
+}
+
+// Read or write a four-byte big-endian integer value.
+func Xsqlite3Get4byte(tls *libc.TLS, p uintptr) U32 {
+ return uint32(*(*U8)(unsafe.Pointer(p)))<<24 | uint32(int32(*(*U8)(unsafe.Pointer(p + 1)))<<16) | uint32(int32(*(*U8)(unsafe.Pointer(p + 2)))<<8) | uint32(*(*U8)(unsafe.Pointer(p + 3)))
+}
+
+func Xsqlite3Put4byte(tls *libc.TLS, p uintptr, v U32) {
+ *(*uint8)(unsafe.Pointer(p)) = U8(v >> 24)
+ *(*uint8)(unsafe.Pointer(p + 1)) = U8(v >> 16)
+ *(*uint8)(unsafe.Pointer(p + 2)) = U8(v >> 8)
+ *(*uint8)(unsafe.Pointer(p + 3)) = U8(v)
+}
+
+// Translate a single byte of Hex into an integer.
+// This routine only works if h really is a valid hexadecimal
+// character: 0..9a..fA..F
+func Xsqlite3HexToInt(tls *libc.TLS, h int32) U8 {
+ h = h + 9*(1&(h>>6))
+ return U8(h & 0xf)
+}
+
+// Convert a BLOB literal of the form "x'hhhhhh'" into its binary
+// value. Return a pointer to its binary value. Space to hold the
+// binary value has been obtained from malloc and must be freed by
+// the calling routine.
+func Xsqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) uintptr {
+ var zBlob uintptr
+ var i int32
+
+ zBlob = Xsqlite3DbMallocRawNN(tls, db, uint64(n/2+1))
+ n--
+ if zBlob != 0 {
+ for i = 0; i < n; i = i + 2 {
+ *(*int8)(unsafe.Pointer(zBlob + uintptr(i/2))) = int8(int32(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + uintptr(i))))))<<4 | int32(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + uintptr(i+1)))))))
+ }
+ *(*int8)(unsafe.Pointer(zBlob + uintptr(i/2))) = int8(0)
+ }
+ return zBlob
+}
+
+func logBadConnection(tls *libc.TLS, zType uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ Xsqlite3_log(tls, SQLITE_MISUSE,
+ ts+1614,
+ libc.VaList(bp, zType))
+}
+
+// Check to make sure we have a valid db pointer. This test is not
+// foolproof but it does provide some measure of protection against
+// misuse of the interface such as passing in db pointers that are
+// NULL or which have been previously closed. If this routine returns
+// 1 it means that the db pointer is valid and 0 if it should not be
+// dereferenced for any reason. The calling function should invoke
+// SQLITE_MISUSE immediately.
+//
+// sqlite3SafetyCheckOk() requires that the db pointer be valid for
+// use. sqlite3SafetyCheckSickOrOk() allows a db pointer that failed to
+// open properly and is not fit for general use but which can be
+// used as an argument to sqlite3_errmsg() or sqlite3_close().
+func Xsqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) int32 {
+ var eOpenState U8
+ if db == uintptr(0) {
+ logBadConnection(tls, ts+1548)
+ return 0
+ }
+ eOpenState = (*Sqlite3)(unsafe.Pointer(db)).FeOpenState
+ if int32(eOpenState) != SQLITE_STATE_OPEN {
+ if Xsqlite3SafetyCheckSickOrOk(tls, db) != 0 {
+ logBadConnection(tls, ts+1659)
+ }
+ return 0
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+func Xsqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) int32 {
+ var eOpenState U8
+ eOpenState = (*Sqlite3)(unsafe.Pointer(db)).FeOpenState
+ if int32(eOpenState) != SQLITE_STATE_SICK && int32(eOpenState) != SQLITE_STATE_OPEN && int32(eOpenState) != SQLITE_STATE_BUSY {
+ logBadConnection(tls, ts+1668)
+ return 0
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+// Attempt to add, substract, or multiply the 64-bit signed value iB against
+// the other 64-bit signed integer at *pA and store the result in *pA.
+// Return 0 on success. Or if the operation would have resulted in an
+// overflow, leave *pA unchanged and return 1.
+func Xsqlite3AddInt64(tls *libc.TLS, pA uintptr, iB I64) int32 {
+ var iA I64 = *(*I64)(unsafe.Pointer(pA))
+
+ if iB >= int64(0) {
+ if iA > int64(0) && int64(0xffffffff)|int64(0x7fffffff)<<32-iA < iB {
+ return 1
+ }
+ } else {
+ if iA < int64(0) && -(iA+(int64(0xffffffff)|int64(0x7fffffff)<<32)) > iB+int64(1) {
+ return 1
+ }
+ }
+ *(*I64)(unsafe.Pointer(pA)) += iB
+ return 0
+}
+
+func Xsqlite3SubInt64(tls *libc.TLS, pA uintptr, iB I64) int32 {
+ if iB == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ if *(*I64)(unsafe.Pointer(pA)) >= int64(0) {
+ return 1
+ }
+ *(*I64)(unsafe.Pointer(pA)) -= iB
+ return 0
+ } else {
+ return Xsqlite3AddInt64(tls, pA, -iB)
+ }
+ return int32(0)
+}
+
+func Xsqlite3MulInt64(tls *libc.TLS, pA uintptr, iB I64) int32 {
+ var iA I64 = *(*I64)(unsafe.Pointer(pA))
+ if iB > int64(0) {
+ if iA > (int64(0xffffffff)|int64(0x7fffffff)<<32)/iB {
+ return 1
+ }
+ if iA < (int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32))/iB {
+ return 1
+ }
+ } else if iB < int64(0) {
+ if iA > int64(0) {
+ if iB < (int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32))/iA {
+ return 1
+ }
+ } else if iA < int64(0) {
+ if iB == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ return 1
+ }
+ if iA == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ return 1
+ }
+ if -iA > (int64(0xffffffff)|int64(0x7fffffff)<<32)/-iB {
+ return 1
+ }
+ }
+ }
+ *(*I64)(unsafe.Pointer(pA)) = iA * iB
+ return 0
+}
+
+// Compute the absolute value of a 32-bit signed integer, of possible. Or
+// if the integer has a value of -2147483648, return +2147483647
+func Xsqlite3AbsInt32(tls *libc.TLS, x int32) int32 {
+ if x >= 0 {
+ return x
+ }
+ if x == libc.Int32FromUint32(0x80000000) {
+ return 0x7fffffff
+ }
+ return -x
+}
+
+// Find (an approximate) sum of two LogEst values. This computation is
+// not a simple "+" operator because LogEst is stored as a logarithmic
+// value.
+func Xsqlite3LogEstAdd(tls *libc.TLS, a LogEst, b LogEst) LogEst {
+ if int32(a) >= int32(b) {
+ if int32(a) > int32(b)+49 {
+ return a
+ }
+ if int32(a) > int32(b)+31 {
+ return LogEst(int32(a) + 1)
+ }
+ return LogEst(int32(a) + int32(x[int32(a)-int32(b)]))
+ } else {
+ if int32(b) > int32(a)+49 {
+ return b
+ }
+ if int32(b) > int32(a)+31 {
+ return LogEst(int32(b) + 1)
+ }
+ return LogEst(int32(b) + int32(x[int32(b)-int32(a)]))
+ }
+ return LogEst(0)
+}
+
+var x = [32]uint8{
+ uint8(10), uint8(10),
+ uint8(9), uint8(9),
+ uint8(8), uint8(8),
+ uint8(7), uint8(7), uint8(7),
+ uint8(6), uint8(6), uint8(6),
+ uint8(5), uint8(5), uint8(5),
+ uint8(4), uint8(4), uint8(4), uint8(4),
+ uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3),
+ uint8(2), uint8(2), uint8(2), uint8(2), uint8(2), uint8(2), uint8(2),
+}
+
+// Convert an integer into a LogEst. In other words, compute an
+// approximation for 10*log2(x).
+func Xsqlite3LogEst(tls *libc.TLS, x U64) LogEst {
+ var y LogEst = int16(40)
+ if x < uint64(8) {
+ if x < uint64(2) {
+ return int16(0)
+ }
+ for x < uint64(8) {
+ y = int16(int32(y) - 10)
+ x <<= 1
+ }
+ } else {
+ for x > uint64(255) {
+ y = int16(int32(y) + 40)
+ x >>= 4
+ }
+ for x > uint64(15) {
+ y = int16(int32(y) + 10)
+ x >>= 1
+ }
+ }
+ return LogEst(int32(a[x&uint64(7)]) + int32(y) - 10)
+}
+
+var a = [8]LogEst{int16(0), int16(2), int16(3), int16(5), int16(6), int16(7), int16(8), int16(9)}
+
+// Convert a double into a LogEst
+// In other words, compute an approximation for 10*log2(x).
+func Xsqlite3LogEstFromDouble(tls *libc.TLS, x float64) LogEst {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+ *(*float64)(unsafe.Pointer(bp + 8)) = x
+
+ var e LogEst
+
+ if *(*float64)(unsafe.Pointer(bp + 8)) <= float64(1) {
+ return int16(0)
+ }
+ if *(*float64)(unsafe.Pointer(bp + 8)) <= float64(2000000000) {
+ return Xsqlite3LogEst(tls, U64(*(*float64)(unsafe.Pointer(bp + 8))))
+ }
+ libc.X__builtin___memcpy_chk(tls, bp, bp+8, uint64(8), libc.X__builtin_object_size(tls, bp, 0))
+ e = LogEst(*(*U64)(unsafe.Pointer(bp))>>52 - uint64(1022))
+ return LogEst(int32(e) * 10)
+}
+
+// Convert a LogEst into an integer.
+func Xsqlite3LogEstToInt(tls *libc.TLS, x LogEst) U64 {
+ var n U64
+ n = U64(int32(x) % 10)
+ x = int16(int32(x) / 10)
+ if n >= uint64(5) {
+ n = n - uint64(2)
+ } else if n >= uint64(1) {
+ n = n - uint64(1)
+ }
+ if int32(x) > 60 {
+ return uint64(int64(0xffffffff) | int64(0x7fffffff)<<32)
+ }
+ if int32(x) >= 3 {
+ return (n + uint64(8)) << (int32(x) - 3)
+ }
+ return (n + uint64(8)) >> (3 - int32(x))
+}
+
+// Add a new name/number pair to a VList. This might require that the
+// VList object be reallocated, so return the new VList. If an OOM
+// error occurs, the original VList returned and the
+// db->mallocFailed flag is set.
+//
+// A VList is really just an array of integers. To destroy a VList,
+// simply pass it to sqlite3DbFree().
+//
+// The first integer is the number of integers allocated for the whole
+// VList. The second integer is the number of integers actually used.
+// Each name/number pair is encoded by subsequent groups of 3 or more
+// integers.
+//
+// Each name/number pair starts with two integers which are the numeric
+// value for the pair and the size of the name/number pair, respectively.
+// The text name overlays one or more following integers. The text name
+// is always zero-terminated.
+//
+// Conceptually:
+//
+// struct VList {
+// int nAlloc; // Number of allocated slots
+// int nUsed; // Number of used slots
+// struct VListEntry {
+// int iValue; // Value for this entry
+// int nSlot; // Slots used by this entry
+// // ... variable name goes here
+// } a[0];
+// }
+//
+// During code generation, pointers to the variable names within the
+// VList are taken. When that happens, nAlloc is set to zero as an
+// indication that the VList may never again be enlarged, since the
+// accompanying realloc() would invalidate the pointers.
+func Xsqlite3VListAdd(tls *libc.TLS, db uintptr, pIn uintptr, zName uintptr, nName int32, iVal int32) uintptr {
+ var nInt int32
+ var z uintptr
+ var i int32
+
+ nInt = nName/4 + 3
+
+ if pIn == uintptr(0) || *(*VList)(unsafe.Pointer(pIn + 1*4))+nInt > *(*VList)(unsafe.Pointer(pIn)) {
+ var nAlloc Sqlite3_int64 = func() int64 {
+ if pIn != 0 {
+ return int64(2) * Sqlite3_int64(*(*VList)(unsafe.Pointer(pIn)))
+ }
+ return int64(10)
+ }() + Sqlite3_int64(nInt)
+ var pOut uintptr = Xsqlite3DbRealloc(tls, db, pIn, uint64(nAlloc)*uint64(unsafe.Sizeof(int32(0))))
+ if pOut == uintptr(0) {
+ return pIn
+ }
+ if pIn == uintptr(0) {
+ *(*VList)(unsafe.Pointer(pOut + 1*4)) = 2
+ }
+ pIn = pOut
+ *(*VList)(unsafe.Pointer(pIn)) = VList(nAlloc)
+ }
+ i = *(*VList)(unsafe.Pointer(pIn + 1*4))
+ *(*VList)(unsafe.Pointer(pIn + uintptr(i)*4)) = iVal
+ *(*VList)(unsafe.Pointer(pIn + uintptr(i+1)*4)) = nInt
+ z = pIn + uintptr(i+2)*4
+ *(*VList)(unsafe.Pointer(pIn + 1*4)) = i + nInt
+
+ libc.X__builtin___memcpy_chk(tls, z, zName, uint64(nName), libc.X__builtin_object_size(tls, z, 0))
+ *(*int8)(unsafe.Pointer(z + uintptr(nName))) = int8(0)
+ return pIn
+}
+
+// Return a pointer to the name of a variable in the given VList that
+// has the value iVal. Or return a NULL if there is no such variable in
+// the list
+func Xsqlite3VListNumToName(tls *libc.TLS, pIn uintptr, iVal int32) uintptr {
+ var i int32
+ var mx int32
+ if pIn == uintptr(0) {
+ return uintptr(0)
+ }
+ mx = *(*VList)(unsafe.Pointer(pIn + 1*4))
+ i = 2
+ for __ccgo := true; __ccgo; __ccgo = i < mx {
+ if *(*VList)(unsafe.Pointer(pIn + uintptr(i)*4)) == iVal {
+ return pIn + uintptr(i+2)*4
+ }
+ i = i + *(*VList)(unsafe.Pointer(pIn + uintptr(i+1)*4))
+ }
+ return uintptr(0)
+}
+
+// Return the number of the variable named zName, if it is in VList.
+// or return 0 if there is no such variable.
+func Xsqlite3VListNameToNum(tls *libc.TLS, pIn uintptr, zName uintptr, nName int32) int32 {
+ var i int32
+ var mx int32
+ if pIn == uintptr(0) {
+ return 0
+ }
+ mx = *(*VList)(unsafe.Pointer(pIn + 1*4))
+ i = 2
+ for __ccgo := true; __ccgo; __ccgo = i < mx {
+ var z uintptr = pIn + uintptr(i+2)*4
+ if libc.Xstrncmp(tls, z, zName, uint64(nName)) == 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(nName)))) == 0 {
+ return *(*VList)(unsafe.Pointer(pIn + uintptr(i)*4))
+ }
+ i = i + *(*VList)(unsafe.Pointer(pIn + uintptr(i+1)*4))
+ }
+ return 0
+}
+
+// Turn bulk memory into a hash table object by initializing the
+// fields of the Hash structure.
+//
+// "pNew" is a pointer to the hash table that is to be initialized.
+func Xsqlite3HashInit(tls *libc.TLS, pNew uintptr) {
+ (*Hash)(unsafe.Pointer(pNew)).Ffirst = uintptr(0)
+ (*Hash)(unsafe.Pointer(pNew)).Fcount = uint32(0)
+ (*Hash)(unsafe.Pointer(pNew)).Fhtsize = uint32(0)
+ (*Hash)(unsafe.Pointer(pNew)).Fht = uintptr(0)
+}
+
+// Remove all entries from a hash table. Reclaim all memory.
+// Call this routine to delete a hash table or to reset a hash table
+// to the empty state.
+func Xsqlite3HashClear(tls *libc.TLS, pH uintptr) {
+ var elem uintptr
+
+ elem = (*Hash)(unsafe.Pointer(pH)).Ffirst
+ (*Hash)(unsafe.Pointer(pH)).Ffirst = uintptr(0)
+ Xsqlite3_free(tls, (*Hash)(unsafe.Pointer(pH)).Fht)
+ (*Hash)(unsafe.Pointer(pH)).Fht = uintptr(0)
+ (*Hash)(unsafe.Pointer(pH)).Fhtsize = uint32(0)
+ for elem != 0 {
+ var next_elem uintptr = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ Xsqlite3_free(tls, elem)
+ elem = next_elem
+ }
+ (*Hash)(unsafe.Pointer(pH)).Fcount = uint32(0)
+}
+
+func strHash(tls *libc.TLS, z uintptr) uint32 {
+ var h uint32 = uint32(0)
+ var c uint8
+ for int32(libc.AssignUint8(&c, uint8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))))) != 0 {
+ h = h + uint32(Xsqlite3UpperToLower[c])
+ h = h * 0x9e3779b1
+ }
+ return h
+}
+
+func insertElement(tls *libc.TLS, pH uintptr, pEntry uintptr, pNew uintptr) {
+ var pHead uintptr
+ if pEntry != 0 {
+ if (*_ht)(unsafe.Pointer(pEntry)).Fcount != 0 {
+ pHead = (*_ht)(unsafe.Pointer(pEntry)).Fchain
+ } else {
+ pHead = uintptr(0)
+ }
+ (*_ht)(unsafe.Pointer(pEntry)).Fcount++
+ (*_ht)(unsafe.Pointer(pEntry)).Fchain = pNew
+ } else {
+ pHead = uintptr(0)
+ }
+ if pHead != 0 {
+ (*HashElem)(unsafe.Pointer(pNew)).Fnext = pHead
+ (*HashElem)(unsafe.Pointer(pNew)).Fprev = (*HashElem)(unsafe.Pointer(pHead)).Fprev
+ if (*HashElem)(unsafe.Pointer(pHead)).Fprev != 0 {
+ (*HashElem)(unsafe.Pointer((*HashElem)(unsafe.Pointer(pHead)).Fprev)).Fnext = pNew
+ } else {
+ (*Hash)(unsafe.Pointer(pH)).Ffirst = pNew
+ }
+ (*HashElem)(unsafe.Pointer(pHead)).Fprev = pNew
+ } else {
+ (*HashElem)(unsafe.Pointer(pNew)).Fnext = (*Hash)(unsafe.Pointer(pH)).Ffirst
+ if (*Hash)(unsafe.Pointer(pH)).Ffirst != 0 {
+ (*HashElem)(unsafe.Pointer((*Hash)(unsafe.Pointer(pH)).Ffirst)).Fprev = pNew
+ }
+ (*HashElem)(unsafe.Pointer(pNew)).Fprev = uintptr(0)
+ (*Hash)(unsafe.Pointer(pH)).Ffirst = pNew
+ }
+}
+
+func rehash(tls *libc.TLS, pH uintptr, new_size uint32) int32 {
+ var new_ht uintptr
+ var elem uintptr
+ var next_elem uintptr
+
+ if uint64(new_size)*uint64(unsafe.Sizeof(_ht{})) > uint64(SQLITE_MALLOC_SOFT_LIMIT) {
+ new_size = uint32(uint64(SQLITE_MALLOC_SOFT_LIMIT) / uint64(unsafe.Sizeof(_ht{})))
+ }
+ if new_size == (*Hash)(unsafe.Pointer(pH)).Fhtsize {
+ return 0
+ }
+
+ Xsqlite3BeginBenignMalloc(tls)
+ new_ht = Xsqlite3Malloc(tls, uint64(new_size)*uint64(unsafe.Sizeof(_ht{})))
+ Xsqlite3EndBenignMalloc(tls)
+
+ if new_ht == uintptr(0) {
+ return 0
+ }
+ Xsqlite3_free(tls, (*Hash)(unsafe.Pointer(pH)).Fht)
+ (*Hash)(unsafe.Pointer(pH)).Fht = new_ht
+ (*Hash)(unsafe.Pointer(pH)).Fhtsize = libc.AssignUint32(&new_size, uint32(uint64(Xsqlite3MallocSize(tls, new_ht))/uint64(unsafe.Sizeof(_ht{}))))
+ libc.X__builtin___memset_chk(tls, new_ht, 0, uint64(new_size)*uint64(unsafe.Sizeof(_ht{})), libc.X__builtin_object_size(tls, new_ht, 0))
+ elem = (*Hash)(unsafe.Pointer(pH)).Ffirst
+ (*Hash)(unsafe.Pointer(pH)).Ffirst = uintptr(0)
+ for ; elem != 0; elem = next_elem {
+ var h uint32 = strHash(tls, (*HashElem)(unsafe.Pointer(elem)).FpKey) % new_size
+ next_elem = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ insertElement(tls, pH, new_ht+uintptr(h)*16, elem)
+ }
+ return 1
+}
+
+func findElementWithHash(tls *libc.TLS, pH uintptr, pKey uintptr, pHash uintptr) uintptr {
+ var elem uintptr
+ var count uint32
+ var h uint32
+
+ if (*Hash)(unsafe.Pointer(pH)).Fht != 0 {
+ var pEntry uintptr
+ h = strHash(tls, pKey) % (*Hash)(unsafe.Pointer(pH)).Fhtsize
+ pEntry = (*Hash)(unsafe.Pointer(pH)).Fht + uintptr(h)*16
+ elem = (*_ht)(unsafe.Pointer(pEntry)).Fchain
+ count = (*_ht)(unsafe.Pointer(pEntry)).Fcount
+ } else {
+ h = uint32(0)
+ elem = (*Hash)(unsafe.Pointer(pH)).Ffirst
+ count = (*Hash)(unsafe.Pointer(pH)).Fcount
+ }
+ if pHash != 0 {
+ *(*uint32)(unsafe.Pointer(pHash)) = h
+ }
+ for count != 0 {
+ if Xsqlite3StrICmp(tls, (*HashElem)(unsafe.Pointer(elem)).FpKey, pKey) == 0 {
+ return elem
+ }
+ elem = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ count--
+ }
+ return uintptr(unsafe.Pointer(&nullElement))
+}
+
+var nullElement = HashElem{}
+
+func removeElementGivenHash(tls *libc.TLS, pH uintptr, elem uintptr, h uint32) {
+ var pEntry uintptr
+ if (*HashElem)(unsafe.Pointer(elem)).Fprev != 0 {
+ (*HashElem)(unsafe.Pointer((*HashElem)(unsafe.Pointer(elem)).Fprev)).Fnext = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ } else {
+ (*Hash)(unsafe.Pointer(pH)).Ffirst = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ }
+ if (*HashElem)(unsafe.Pointer(elem)).Fnext != 0 {
+ (*HashElem)(unsafe.Pointer((*HashElem)(unsafe.Pointer(elem)).Fnext)).Fprev = (*HashElem)(unsafe.Pointer(elem)).Fprev
+ }
+ if (*Hash)(unsafe.Pointer(pH)).Fht != 0 {
+ pEntry = (*Hash)(unsafe.Pointer(pH)).Fht + uintptr(h)*16
+ if (*_ht)(unsafe.Pointer(pEntry)).Fchain == elem {
+ (*_ht)(unsafe.Pointer(pEntry)).Fchain = (*HashElem)(unsafe.Pointer(elem)).Fnext
+ }
+
+ (*_ht)(unsafe.Pointer(pEntry)).Fcount--
+ }
+ Xsqlite3_free(tls, elem)
+ (*Hash)(unsafe.Pointer(pH)).Fcount--
+ if (*Hash)(unsafe.Pointer(pH)).Fcount == uint32(0) {
+ Xsqlite3HashClear(tls, pH)
+ }
+}
+
+// Attempt to locate an element of the hash table pH with a key
+// that matches pKey. Return the data for this element if it is
+// found, or NULL if there is no match.
+func Xsqlite3HashFind(tls *libc.TLS, pH uintptr, pKey uintptr) uintptr {
+ return (*HashElem)(unsafe.Pointer(findElementWithHash(tls, pH, pKey, uintptr(0)))).Fdata
+}
+
+// Insert an element into the hash table pH. The key is pKey
+// and the data is "data".
+//
+// If no element exists with a matching key, then a new
+// element is created and NULL is returned.
+//
+// If another element already exists with the same key, then the
+// new data replaces the old data and the old data is returned.
+// The key is not copied in this instance. If a malloc fails, then
+// the new data is returned and the hash table is unchanged.
+//
+// If the "data" parameter to this function is NULL, then the
+// element corresponding to "key" is removed from the hash table.
+func Xsqlite3HashInsert(tls *libc.TLS, pH uintptr, pKey uintptr, data uintptr) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var elem uintptr
+ var new_elem uintptr
+
+ elem = findElementWithHash(tls, pH, pKey, bp)
+ if (*HashElem)(unsafe.Pointer(elem)).Fdata != 0 {
+ var old_data uintptr = (*HashElem)(unsafe.Pointer(elem)).Fdata
+ if data == uintptr(0) {
+ removeElementGivenHash(tls, pH, elem, *(*uint32)(unsafe.Pointer(bp)))
+ } else {
+ (*HashElem)(unsafe.Pointer(elem)).Fdata = data
+ (*HashElem)(unsafe.Pointer(elem)).FpKey = pKey
+ }
+ return old_data
+ }
+ if data == uintptr(0) {
+ return uintptr(0)
+ }
+ new_elem = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(HashElem{})))
+ if new_elem == uintptr(0) {
+ return data
+ }
+ (*HashElem)(unsafe.Pointer(new_elem)).FpKey = pKey
+ (*HashElem)(unsafe.Pointer(new_elem)).Fdata = data
+ (*Hash)(unsafe.Pointer(pH)).Fcount++
+ if (*Hash)(unsafe.Pointer(pH)).Fcount >= uint32(10) && (*Hash)(unsafe.Pointer(pH)).Fcount > uint32(2)*(*Hash)(unsafe.Pointer(pH)).Fhtsize {
+ if rehash(tls, pH, (*Hash)(unsafe.Pointer(pH)).Fcount*uint32(2)) != 0 {
+ *(*uint32)(unsafe.Pointer(bp)) = strHash(tls, pKey) % (*Hash)(unsafe.Pointer(pH)).Fhtsize
+ }
+ }
+ insertElement(tls, pH, func() uintptr {
+ if (*Hash)(unsafe.Pointer(pH)).Fht != 0 {
+ return (*Hash)(unsafe.Pointer(pH)).Fht + uintptr(*(*uint32)(unsafe.Pointer(bp)))*16
+ }
+ return uintptr(0)
+ }(), new_elem)
+ return uintptr(0)
+}
+
+// ************* End of hash.c ***********************************************
+// ************* Begin file opcodes.c ****************************************
+// Automatically generated. Do not edit
+// See the tool/mkopcodec.tcl script for details.
+func Xsqlite3OpcodeName(tls *libc.TLS, i int32) uintptr {
+ return azName[i]
+}
+
+var azName = [187]uintptr{
+ ts + 1676,
+ ts + 1686,
+ ts + 1697,
+ ts + 1709,
+ ts + 1720,
+ ts + 1732,
+ ts + 1739,
+ ts + 1747,
+ ts + 1755,
+ ts + 1760,
+ ts + 1765,
+ ts + 1771,
+ ts + 1785,
+ ts + 1791,
+ ts + 1801,
+ ts + 1806,
+ ts + 1811,
+ ts + 1814,
+ ts + 1820,
+ ts + 1827,
+ ts + 1831,
+ ts + 1841,
+ ts + 1848,
+ ts + 1855,
+ ts + 1862,
+ ts + 1869,
+ ts + 1879,
+ ts + 1888,
+ ts + 1899,
+ ts + 1908,
+ ts + 1914,
+ ts + 1924,
+ ts + 1934,
+ ts + 1939,
+ ts + 1949,
+ ts + 1960,
+ ts + 1965,
+ ts + 1972,
+ ts + 1983,
+ ts + 1988,
+ ts + 1993,
+ ts + 1999,
+ ts + 2005,
+ ts + 2011,
+ ts + 2014,
+ ts + 2018,
+ ts + 2024,
+ ts + 2035,
+ ts + 2046,
+ ts + 2054,
+ ts + 2063,
+ ts + 2070,
+ ts + 2078,
+ ts + 2081,
+ ts + 2084,
+ ts + 2087,
+ ts + 2090,
+ ts + 2093,
+ ts + 2096,
+ ts + 2103,
+ ts + 2109,
+ ts + 2119,
+ ts + 2132,
+ ts + 2143,
+ ts + 2149,
+ ts + 2156,
+ ts + 2165,
+ ts + 2174,
+ ts + 2181,
+ ts + 2194,
+ ts + 2205,
+ ts + 2210,
+ ts + 2218,
+ ts + 2224,
+ ts + 2231,
+ ts + 2243,
+ ts + 2248,
+ ts + 2257,
+ ts + 2262,
+ ts + 2271,
+ ts + 2276,
+ ts + 2281,
+ ts + 2287,
+ ts + 2295,
+ ts + 2303,
+ ts + 2313,
+ ts + 2321,
+ ts + 2328,
+ ts + 2341,
+ ts + 2346,
+ ts + 2358,
+ ts + 2366,
+ ts + 2373,
+ ts + 2384,
+ ts + 2391,
+ ts + 2398,
+ ts + 2408,
+ ts + 2417,
+ ts + 2428,
+ ts + 2434,
+ ts + 2445,
+ ts + 2455,
+ ts + 2465,
+ ts + 2472,
+ ts + 2478,
+ ts + 2488,
+ ts + 2499,
+ ts + 2503,
+ ts + 2512,
+ ts + 2521,
+ ts + 2528,
+ ts + 2538,
+ ts + 2545,
+ ts + 2554,
+ ts + 2564,
+ ts + 2571,
+ ts + 2579,
+ ts + 2593,
+ ts + 2601,
+ ts + 2615,
+ ts + 2626,
+ ts + 2639,
+ ts + 2650,
+ ts + 2656,
+ ts + 2668,
+ ts + 2677,
+ ts + 2685,
+ ts + 2694,
+ ts + 2703,
+ ts + 2710,
+ ts + 2718,
+ ts + 2725,
+ ts + 2736,
+ ts + 2750,
+ ts + 2761,
+ ts + 2769,
+ ts + 2775,
+ ts + 2783,
+ ts + 2791,
+ ts + 2801,
+ ts + 2814,
+ ts + 2824,
+ ts + 2837,
+ ts + 2846,
+ ts + 2857,
+ ts + 2865,
+ ts + 2871,
+ ts + 2883,
+ ts + 2895,
+ ts + 2903,
+ ts + 2915,
+ ts + 2928,
+ ts + 2938,
+ ts + 2948,
+ ts + 2953,
+ ts + 2965,
+ ts + 2977,
+ ts + 2987,
+ ts + 2993,
+ ts + 3003,
+ ts + 3010,
+ ts + 3022,
+ ts + 3033,
+ ts + 3041,
+ ts + 3050,
+ ts + 3059,
+ ts + 3068,
+ ts + 3075,
+ ts + 3086,
+ ts + 3099,
+ ts + 3109,
+ ts + 3116,
+ ts + 3124,
+ ts + 3133,
+ ts + 3139,
+ ts + 3147,
+ ts + 3155,
+ ts + 3163,
+ ts + 3173,
+ ts + 3182,
+ ts + 3193,
+ ts + 3203,
+ ts + 3209,
+ ts + 3220,
+ ts + 3231,
+ ts + 3236,
+ ts + 3244,
+}
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32
+type U_long = uint64
+type Ushort = uint16
+type Uint = uint32
+
+type U_quad_t = U_int64_t
+type Quad_t = Int64_t
+type Qaddr_t = uintptr
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr
+
+type Daddr_t = Int32_t
+
+type Fixpt_t = U_int32_t
+
+type Blkcnt_t = X__darwin_blkcnt_t
+
+type Blksize_t = X__darwin_blksize_t
+
+type Gid_t = X__darwin_gid_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t
+
+type Ino_t = X__darwin_ino_t
+
+type Ino64_t = X__darwin_ino64_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t
+
+type Segsz_t = Int32_t
+type Swblk_t = Int32_t
+
+type Useconds_t = X__darwin_useconds_t
+
+type Suseconds_t = X__darwin_suseconds_t
+
+type fd_set = struct{ Ffds_bits [32]X__int32_t }
+
+type Fd_set = fd_set
+
+func X__darwin_check_fd_set(tls *libc.TLS, _a int32, _b uintptr) int32 {
+ if Uintptr_t(uintptr(unsafe.Pointer(&X__darwin_check_fd_set_overflow))) != uint64(0) {
+ return (*struct {
+ f func(*libc.TLS, int32, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{X__darwin_check_fd_set_overflow})).f(tls, _a, _b, 0)
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+// This inline avoids argument side-effect issues with FD_ISSET()
+func X__darwin_fd_isset(tls *libc.TLS, _fd int32, _p uintptr) int32 {
+ if X__darwin_check_fd_set(tls, _fd, _p) != 0 {
+ return *(*X__int32_t)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(X__int32_t(0)))*uint64(8)))*4)) & X__int32_t(uint64(1)<<(uint64(_fd)%(uint64(unsafe.Sizeof(X__int32_t(0)))*uint64(8))))
+ }
+
+ return 0
+}
+
+func X__darwin_fd_set(tls *libc.TLS, _fd int32, _p uintptr) {
+ if X__darwin_check_fd_set(tls, _fd, _p) != 0 {
+ *(*X__int32_t)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(X__int32_t(0)))*uint64(8)))*4)) |= X__int32_t(uint64(1) << (uint64(_fd) % (uint64(unsafe.Sizeof(X__int32_t(0))) * uint64(8))))
+ }
+}
+
+func X__darwin_fd_clr(tls *libc.TLS, _fd int32, _p uintptr) {
+ if X__darwin_check_fd_set(tls, _fd, _p) != 0 {
+ *(*X__int32_t)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(X__int32_t(0)))*uint64(8)))*4)) &= ^X__int32_t(uint64(1) << (uint64(_fd) % (uint64(unsafe.Sizeof(X__int32_t(0))) * uint64(8))))
+ }
+}
+
+type Fd_mask = X__int32_t
+
+type Pthread_cond_t = X__darwin_pthread_cond_t
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t
+
+type Pthread_once_t = X__darwin_pthread_once_t
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t
+
+type Pthread_t = X__darwin_pthread_t
+
+type Pthread_key_t = X__darwin_pthread_key_t
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t
+
+type ostat = struct {
+ Fst_dev X__uint16_t
+ F__ccgo_pad1 [6]byte
+ Fst_ino Ino_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_uid X__uint16_t
+ Fst_gid X__uint16_t
+ Fst_rdev X__uint16_t
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+}
+
+type stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+}
+
+type Filesec_t = uintptr
+
+type flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+}
+
+type flocktimeout = struct {
+ Ffl struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ }
+ Ftimeout struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+}
+
+type radvisory = struct {
+ Fra_offset Off_t
+ Fra_count int32
+ F__ccgo_pad1 [4]byte
+}
+
+type fsignatures = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start uintptr
+ Ffs_blob_size Size_t
+ Ffs_fsignatures_size Size_t
+ Ffs_cdhash [20]int8
+ Ffs_hash_type int32
+}
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures_t = fsignatures
+
+type fsupplement = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start Off_t
+ Ffs_blob_size Size_t
+ Ffs_orig_fd int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Fsupplement_t = fsupplement
+
+type fchecklv = struct {
+ Flv_file_start Off_t
+ Flv_error_message_size Size_t
+ Flv_error_message uintptr
+}
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv_t = fchecklv
+
+type fgetsigsinfo = struct {
+ Ffg_file_start Off_t
+ Ffg_info_request int32
+ Ffg_sig_is_platform int32
+}
+
+// fgetsigsinfo_t used by F_GETSIGSINFO command
+type Fgetsigsinfo_t = fgetsigsinfo
+
+type fstore = struct {
+ Ffst_flags uint32
+ Ffst_posmode int32
+ Ffst_offset Off_t
+ Ffst_length Off_t
+ Ffst_bytesalloc Off_t
+}
+
+type Fstore_t = fstore
+
+type fpunchhole = struct {
+ Ffp_flags uint32
+ Freserved uint32
+ Ffp_offset Off_t
+ Ffp_length Off_t
+}
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole_t = fpunchhole
+
+type ftrimactivefile = struct {
+ Ffta_offset Off_t
+ Ffta_length Off_t
+}
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile_t = ftrimactivefile
+
+type fspecread = struct {
+ Ffsr_flags uint32
+ Freserved uint32
+ Ffsr_offset Off_t
+ Ffsr_length Off_t
+}
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread_t = fspecread
+
+type log2phys = struct {
+ Fl2p_flags uint32
+ F__ccgo_pad1 [4]byte
+ Fl2p_contigbytes Off_t
+ Fl2p_devoffset Off_t
+}
+
+type Filesec_property_t = uint32
+
+type winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+}
+
+type ttysize = struct {
+ Fts_lines uint16
+ Fts_cols uint16
+ Fts_xxx uint16
+ Fts_yyy uint16
+}
+
+type accessx_descriptor = struct {
+ Fad_name_offset uint32
+ Fad_flags int32
+ Fad_pad [2]int32
+}
+
+type Uuid_t = X__darwin_uuid_t
+
+type fssearchblock = struct {
+ Freturnattrs uintptr
+ Freturnbuffer uintptr
+ Freturnbuffersize Size_t
+ Fmaxmatches U_long
+ Ftimelimit struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fsearchparams1 uintptr
+ Fsizeofsearchparams1 Size_t
+ Fsearchparams2 uintptr
+ Fsizeofsearchparams2 Size_t
+ Fsearchattrs struct {
+ Fbitmapcount U_short
+ Freserved U_int16_t
+ Fcommonattr Attrgroup_t
+ Fvolattr Attrgroup_t
+ Fdirattr Attrgroup_t
+ Ffileattr Attrgroup_t
+ Fforkattr Attrgroup_t
+ }
+}
+
+type searchstate = struct {
+ Fss_union_flags Uint32_t
+ Fss_union_layer Uint32_t
+ Fss_fsstate [548]U_char
+}
+
+type timeval64 = struct {
+ Ftv_sec X__int64_t
+ Ftv_usec X__int64_t
+}
+
+type itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+}
+
+type timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+}
+
+type clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Ftickadj int32
+ Fstathz int32
+ Fprofhz int32
+}
+
+type Kauth_cred_t = uintptr
+type Posix_cred_t = uintptr
+
+type Au_id_t = Uid_t
+type Au_asid_t = Pid_t
+type Au_event_t = U_int16_t
+type Au_emod_t = U_int16_t
+type Au_class_t = U_int32_t
+type Au_asflgs_t = U_int64_t
+type Au_ctlmode_t = uint8
+
+type au_tid = struct {
+ Fport Dev_t
+ Fmachine U_int32_t
+}
+
+type Au_tid_t = au_tid
+
+type au_tid_addr = struct {
+ Fat_port Dev_t
+ Fat_type U_int32_t
+ Fat_addr [4]U_int32_t
+}
+
+type Au_tid_addr_t = au_tid_addr
+
+type au_mask = struct {
+ Fam_success uint32
+ Fam_failure uint32
+}
+
+type Au_mask_t = au_mask
+
+type auditinfo = struct {
+ Fai_auid Au_id_t
+ Fai_mask Au_mask_t
+ Fai_termid Au_tid_t
+ Fai_asid Au_asid_t
+}
+
+type Auditinfo_t = auditinfo
+
+type auditinfo_addr = struct {
+ Fai_auid Au_id_t
+ Fai_mask Au_mask_t
+ Fai_termid Au_tid_addr_t
+ Fai_asid Au_asid_t
+ Fai_flags Au_asflgs_t
+}
+
+type Auditinfo_addr_t = auditinfo_addr
+
+type auditpinfo = struct {
+ Fap_pid Pid_t
+ Fap_auid Au_id_t
+ Fap_mask Au_mask_t
+ Fap_termid Au_tid_t
+ Fap_asid Au_asid_t
+}
+
+type Auditpinfo_t = auditpinfo
+
+type auditpinfo_addr = struct {
+ Fap_pid Pid_t
+ Fap_auid Au_id_t
+ Fap_mask Au_mask_t
+ Fap_termid Au_tid_addr_t
+ Fap_asid Au_asid_t
+ F__ccgo_pad1 [4]byte
+ Fap_flags Au_asflgs_t
+}
+
+type Auditpinfo_addr_t = auditpinfo_addr
+
+type au_session = struct {
+ Fas_aia_p uintptr
+ Fas_mask Au_mask_t
+}
+
+type Au_session_t = au_session
+
+type au_expire_after = struct {
+ Fage Time_t
+ Fsize Size_t
+ Fop_type uint8
+ F__ccgo_pad1 [7]byte
+}
+
+type Au_expire_after_t = au_expire_after
+
+type au_qctrl = struct {
+ Faq_hiwater int32
+ Faq_lowater int32
+ Faq_bufsz int32
+ Faq_delay int32
+ Faq_minfree int32
+}
+
+type Au_qctrl_t = au_qctrl
+
+type audit_stat = struct {
+ Fas_version uint32
+ Fas_numevent uint32
+ Fas_generated int32
+ Fas_nonattrib int32
+ Fas_kernel int32
+ Fas_audit int32
+ Fas_auditctl int32
+ Fas_enqueue int32
+ Fas_written int32
+ Fas_wblocked int32
+ Fas_rblocked int32
+ Fas_dropped int32
+ Fas_totalsize int32
+ Fas_memused uint32
+}
+
+type Au_stat_t = audit_stat
+
+type audit_fstat = struct {
+ Faf_filesz U_int64_t
+ Faf_currsz U_int64_t
+}
+
+type Au_fstat_t = audit_fstat
+
+type au_evclass_map = struct {
+ Fec_number Au_event_t
+ F__ccgo_pad1 [2]byte
+ Fec_class Au_class_t
+}
+
+type Au_evclass_map_t = au_evclass_map
+
+type Boolean_t = int32
+
+// natural_t and integer_t are Mach's legacy types for machine-
+// independent integer types (unsigned, and signed, respectively).
+// Their original purpose was to define other types in a machine/
+// compiler independent way.
+//
+// They also had an implicit "same size as pointer" characteristic
+// to them (i.e. Mach's traditional types are very ILP32 or ILP64
+// centric). We will likely support x86 ABIs that do not follow
+// either ofthese models (specifically LP64). Therefore, we had to
+// make a choice between making these types scale with pointers or stay
+// tied to integers. Because their use is predominantly tied to
+// to the size of an integer, we are keeping that association and
+// breaking free from pointer size guarantees.
+//
+// New use of these types is discouraged.
+type Natural_t = X__darwin_natural_t
+type Integer_t = int32
+
+// A vm_offset_t is a type-neutral pointer,
+// e.g. an offset into a virtual memory space.
+type Vm_offset_t = Uintptr_t
+type Vm_size_t = Uintptr_t
+
+type Mach_vm_address_t = Uint64_t
+type Mach_vm_offset_t = Uint64_t
+type Mach_vm_size_t = Uint64_t
+
+type Vm_map_offset_t = Uint64_t
+type Vm_map_address_t = Uint64_t
+type Vm_map_size_t = Uint64_t
+
+type Vm32_offset_t = Uint32_t
+type Vm32_address_t = Uint32_t
+type Vm32_size_t = Uint32_t
+
+type Mach_port_context_t = Vm_offset_t
+
+type Mach_port_name_t = Natural_t
+type Mach_port_name_array_t = uintptr
+
+type Mach_port_t = X__darwin_mach_port_t
+
+type Mach_port_array_t = uintptr
+
+type Mach_port_right_t = Natural_t
+
+type Mach_port_type_t = Natural_t
+type Mach_port_type_array_t = uintptr
+
+type Mach_port_urefs_t = Natural_t
+type Mach_port_delta_t = Integer_t
+
+type Mach_port_seqno_t = Natural_t
+type Mach_port_mscount_t = Natural_t
+type Mach_port_msgcount_t = Natural_t
+type Mach_port_rights_t = Natural_t
+
+// Are there outstanding send rights for a given port?
+type Mach_port_srights_t = uint32
+
+type mach_port_status = struct {
+ Fmps_pset Mach_port_rights_t
+ Fmps_seqno Mach_port_seqno_t
+ Fmps_mscount Mach_port_mscount_t
+ Fmps_qlimit Mach_port_msgcount_t
+ Fmps_msgcount Mach_port_msgcount_t
+ Fmps_sorights Mach_port_rights_t
+ Fmps_srights Boolean_t
+ Fmps_pdrequest Boolean_t
+ Fmps_nsrequest Boolean_t
+ Fmps_flags Natural_t
+}
+
+type Mach_port_status_t = mach_port_status
+
+type mach_port_limits = struct{ Fmpl_qlimit Mach_port_msgcount_t }
+
+type Mach_port_limits_t = mach_port_limits
+
+type mach_port_info_ext = struct {
+ Fmpie_status Mach_port_status_t
+ Fmpie_boost_cnt Mach_port_msgcount_t
+ Freserved [6]Uint32_t
+}
+
+type Mach_port_info_ext_t = mach_port_info_ext
+
+type mach_port_guard_info = struct{ Fmpgi_guard Uint64_t }
+
+type Mach_port_guard_info_t = mach_port_guard_info
+
+type Mach_port_info_t = uintptr
+
+// Flavors for mach_port_get/set/assert_attributes()
+type Mach_port_flavor_t = int32
+
+type mach_port_qos = struct {
+ Fname uint32
+ F__ccgo_pad1 [4]byte
+ Flen Natural_t
+}
+
+// Structure used to pass information about port allocation requests.
+// Must be padded to 64-bits total length.
+type Mach_port_qos_t = mach_port_qos
+
+type mach_service_port_info = struct {
+ Fmspi_string_name [255]int8
+ Fmspi_domain_type Uint8_t
+}
+
+type Mach_service_port_info_data_t = mach_service_port_info
+
+type Mach_service_port_info_t = uintptr
+
+type mach_port_options = struct {
+ Fflags Uint32_t
+ Fmpl Mach_port_limits_t
+ F__8 struct{ Freserved [2]Uint64_t }
+}
+
+// Structure to define optional attributes for a newly
+// constructed port.
+type Mach_port_options_t = mach_port_options
+
+type Mach_port_options_ptr_t = uintptr
+
+type xucred = struct {
+ Fcr_version U_int
+ Fcr_uid Uid_t
+ Fcr_ngroups int16
+ F__ccgo_pad1 [2]byte
+ Fcr_groups [16]Gid_t
+}
+
+type Text_encoding_t = U_int32_t
+
+type Fsobj_type_t = U_int32_t
+
+type Fsobj_tag_t = U_int32_t
+
+type Fsfile_type_t = U_int32_t
+
+type Fsvolid_t = U_int32_t
+
+type fsobj_id = struct {
+ Ffid_objno U_int32_t
+ Ffid_generation U_int32_t
+}
+
+type Fsobj_id_t = fsobj_id
+
+type Attrgroup_t = U_int32_t
+
+type attrlist = struct {
+ Fbitmapcount U_short
+ Freserved U_int16_t
+ Fcommonattr Attrgroup_t
+ Fvolattr Attrgroup_t
+ Fdirattr Attrgroup_t
+ Ffileattr Attrgroup_t
+ Fforkattr Attrgroup_t
+}
+
+type attribute_set = struct {
+ Fcommonattr Attrgroup_t
+ Fvolattr Attrgroup_t
+ Fdirattr Attrgroup_t
+ Ffileattr Attrgroup_t
+ Fforkattr Attrgroup_t
+}
+
+type Attribute_set_t = attribute_set
+
+type attrreference = struct {
+ Fattr_dataoffset Int32_t
+ Fattr_length U_int32_t
+}
+
+type Attrreference_t = attrreference
+
+type diskextent = struct {
+ Fstartblock U_int32_t
+ Fblockcount U_int32_t
+}
+
+type Extentrecord = [8]diskextent
+
+type Vol_capabilities_set_t = [4]U_int32_t
+
+type vol_capabilities_attr = struct {
+ Fcapabilities Vol_capabilities_set_t
+ Fvalid Vol_capabilities_set_t
+}
+
+type Vol_capabilities_attr_t = vol_capabilities_attr
+
+type vol_attributes_attr = struct {
+ Fvalidattr Attribute_set_t
+ Fnativeattr Attribute_set_t
+}
+
+type Vol_attributes_attr_t = vol_attributes_attr
+
+type Os_function_t = uintptr
+
+// !
+// @typedef os_block_t
+//
+// @abstract
+// Generic type for a block taking no arguments and returning no value.
+//
+// @discussion
+// When not building with Objective-C ARC, a block object allocated on or
+// copied to the heap must be released with a -[release] message or the
+// Block_release() function.
+//
+// The declaration of a block literal allocates storage on the stack.
+// Therefore, this is an invalid construct:
+// <code>
+// os_block_t block;
+//
+// if (x) {
+// block = ^{ printf("true\n"); };
+// } else {
+//
+// block = ^{ printf("false\n"); };
+// }
+//
+// block(); // unsafe!!!
+// </code>
+//
+// What is happening behind the scenes:
+// <code>
+//
+// if (x) {
+// struct Block __tmp_1 = ...; // setup details
+// block = &__tmp_1;
+// } else {
+//
+// struct Block __tmp_2 = ...; // setup details
+// block = &__tmp_2;
+// }
+//
+// </code>
+//
+// As the example demonstrates, the address of a stack variable is escaping the
+// scope in which it is allocated. That is a classic C bug.
+//
+// Instead, the block literal must be copied to the heap with the Block_copy()
+// function or by sending it a -[copy] message.
+type Os_block_t = uintptr
+
+type fsid = struct{ Fval [2]Int32_t }
+
+// Copyright (c) 2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Fsid_t = fsid
+
+type secure_boot_cryptex_args = struct {
+ Fsbc_version U_int32_t
+ Fsbc_4cc U_int32_t
+ Fsbc_authentic_manifest_fd int32
+ Fsbc_user_manifest_fd int32
+ Fsbc_payload_fd int32
+ F__ccgo_pad1 [4]byte
+ Fsbc_flags U_int64_t
+}
+
+type Secure_boot_cryptex_args_t = secure_boot_cryptex_args
+
+type graft_args = struct {
+ F__ccgo_pad1 [0]uint64
+ F__ccgo_pad2 [0]uint64
+ Fmax_size [512]U_int8_t
+}
+
+type Graftdmg_args_un = graft_args
+
+type statfs = struct {
+ Ff_bsize Uint32_t
+ Ff_iosize Int32_t
+ Ff_blocks Uint64_t
+ Ff_bfree Uint64_t
+ Ff_bavail Uint64_t
+ Ff_files Uint64_t
+ Ff_ffree Uint64_t
+ Ff_fsid Fsid_t
+ Ff_owner Uid_t
+ Ff_type Uint32_t
+ Ff_flags Uint32_t
+ Ff_fssubtype Uint32_t
+ Ff_fstypename [16]int8
+ Ff_mntonname [1024]int8
+ Ff_mntfromname [1024]int8
+ Ff_flags_ext Uint32_t
+ Ff_reserved [7]Uint32_t
+}
+
+type vfsstatfs = struct {
+ Ff_bsize Uint32_t
+ F__ccgo_pad1 [4]byte
+ Ff_iosize Size_t
+ Ff_blocks Uint64_t
+ Ff_bfree Uint64_t
+ Ff_bavail Uint64_t
+ Ff_bused Uint64_t
+ Ff_files Uint64_t
+ Ff_ffree Uint64_t
+ Ff_fsid Fsid_t
+ Ff_owner Uid_t
+ F__ccgo_pad2 [4]byte
+ Ff_flags Uint64_t
+ Ff_fstypename [16]int8
+ Ff_mntonname [1024]int8
+ Ff_mntfromname [1024]int8
+ Ff_fssubtype Uint32_t
+ F__ccgo_pad3 [4]byte
+ Ff_reserved [2]uintptr
+}
+
+type Mount_t = uintptr
+type Vnode_t = uintptr
+
+type vfsconf = struct {
+ Fvfc_reserved1 Uint32_t
+ Fvfc_name [15]int8
+ F__ccgo_pad1 [1]byte
+ Fvfc_typenum int32
+ Fvfc_refcount int32
+ Fvfc_flags int32
+ Fvfc_reserved2 Uint32_t
+ Fvfc_reserved3 Uint32_t
+}
+
+type vfsidctl = struct {
+ Fvc_vers int32
+ Fvc_fsid Fsid_t
+ F__ccgo_pad1 [4]byte
+ Fvc_ptr uintptr
+ Fvc_len Size_t
+ Fvc_spare [12]U_int32_t
+}
+
+type vfsquery = struct {
+ Fvq_flags U_int32_t
+ Fvq_spare [31]U_int32_t
+}
+
+type vfs_server = struct {
+ Fvs_minutes Int32_t
+ Fvs_server_name [768]U_int8_t
+}
+
+type netfs_status = struct {
+ F__ccgo_pad1 [0]uint64
+ Fns_status U_int32_t
+ Fns_mountopts [512]int8
+ Fns_waittime Uint32_t
+ Fns_threadcount Uint32_t
+ F__ccgo_pad2 [4]byte
+}
+
+type fhandle = struct {
+ Ffh_len uint32
+ Ffh_data [128]uint8
+}
+
+type Fhandle_t = fhandle
+
+type Graftdmg_type_t = Uint32_t
+
+type unixShm = struct {
+ FpShmNode uintptr
+ FpNext uintptr
+ FhasMutex U8
+ Fid U8
+ FsharedMask U16
+ FexclMask U16
+ F__ccgo_pad1 [2]byte
+}
+
+// Forward references
+type UnixShm = unixShm
+type unixShmNode = struct {
+ FpInode uintptr
+ FpShmMutex uintptr
+ FzFilename uintptr
+ FhShm int32
+ FszRegion int32
+ FnRegion U16
+ FisReadonly U8
+ FisUnlocked U8
+ F__ccgo_pad1 [4]byte
+ FapRegion uintptr
+ FnRef int32
+ F__ccgo_pad2 [4]byte
+ FpFirst uintptr
+ FaLock [8]int32
+}
+
+// Connection shared memory
+type UnixShmNode = unixShmNode
+type unixInodeInfo = struct {
+ FfileId struct {
+ Fdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fino U64
+ }
+ FpLockMutex uintptr
+ FnShared int32
+ FnLock int32
+ FeFileLock uint8
+ FbProcessLock uint8
+ F__ccgo_pad1 [6]byte
+ FpUnused uintptr
+ FnRef int32
+ F__ccgo_pad2 [4]byte
+ FpShmNode uintptr
+ FpNext uintptr
+ FpPrev uintptr
+ FsharedByte uint64
+}
+
+// Shared memory instance
+type UnixInodeInfo = unixInodeInfo
+type UnixUnusedFd1 = struct {
+ Ffd int32
+ Fflags int32
+ FpNext uintptr
+}
+
+// An i-node
+type UnixUnusedFd = UnixUnusedFd1
+
+type unixFile = struct {
+ FpMethod uintptr
+ FpVfs uintptr
+ FpInode uintptr
+ Fh int32
+ FeFileLock uint8
+ F__ccgo_pad1 [1]byte
+ FctrlFlags uint16
+ FlastErrno int32
+ F__ccgo_pad2 [4]byte
+ FlockingContext uintptr
+ FpPreallocatedUnused uintptr
+ FzPath uintptr
+ FpShm uintptr
+ FszChunk int32
+ FnFetchOut int32
+ FmmapSize Sqlite3_int64
+ FmmapSizeActual Sqlite3_int64
+ FmmapSizeMax Sqlite3_int64
+ FpMapRegion uintptr
+ FsectorSize int32
+ FdeviceCharacteristics int32
+ FopenFlags int32
+ FfsFlags uint32
+}
+
+// The unixFile structure is subclass of sqlite3_file specific to the unix
+// VFS implementations.
+type UnixFile = unixFile
+
+var randomnessPid Pid_t = 0
+
+func posixOpen(tls *libc.TLS, zFile uintptr, flags int32, mode int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ return libc.Xopen(tls, zFile, flags, libc.VaList(bp, mode))
+}
+
+type unix_syscall = struct {
+ FzName uintptr
+ FpCurrent Sqlite3_syscall_ptr
+ FpDefault Sqlite3_syscall_ptr
+}
+
+var aSyscall = [29]unix_syscall{
+ {FzName: ts + 3254, FpCurrent: 0},
+ {FzName: ts + 3259, FpCurrent: 0},
+ {FzName: ts + 3265, FpCurrent: 0},
+ {FzName: ts + 3272, FpCurrent: 0},
+ {FzName: ts + 3279, FpCurrent: 0},
+ {FzName: ts + 3284, FpCurrent: 0},
+ {FzName: ts + 3290, FpCurrent: 0},
+ {FzName: ts + 3300, FpCurrent: 0},
+ {FzName: ts + 3306, FpCurrent: 0},
+ {FzName: ts + 3311, FpCurrent: 0},
+ {FzName: ts + 3317},
+ {FzName: ts + 3325, FpCurrent: 0},
+ {FzName: ts + 3331, FpCurrent: 0},
+ {FzName: ts + 3338},
+ {FzName: ts + 3347, FpCurrent: 0},
+ {FzName: ts + 3354},
+ {FzName: ts + 3364, FpCurrent: 0},
+ {FzName: ts + 3371, FpCurrent: 0},
+ {FzName: ts + 3385, FpCurrent: 0},
+ {FzName: ts + 3391, FpCurrent: 0},
+ {FzName: ts + 3397, FpCurrent: 0},
+ {FzName: ts + 3404, FpCurrent: 0},
+ {FzName: ts + 3412, FpCurrent: 0},
+ {FzName: ts + 3417, FpCurrent: 0},
+ {FzName: ts + 3424},
+ {FzName: ts + 3431, FpCurrent: 0},
+ {FzName: ts + 3443, FpCurrent: 0},
+ {FzName: ts + 3452, FpCurrent: 0},
+ {FzName: ts + 3458},
+}
+
+func robustFchown(tls *libc.TLS, fd int32, uid Uid_t, gid Gid_t) int32 {
+ if (*(*func(*libc.TLS) Uid_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 21*24 + 8)))(tls) != 0 {
+ return 0
+ }
+ return (*(*func(*libc.TLS, int32, Uid_t, Gid_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 20*24 + 8)))(tls, fd, uid, gid)
+}
+
+func unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Sqlite3_syscall_ptr) int32 {
+ var i uint32
+ var rc int32 = SQLITE_NOTFOUND
+
+ _ = pNotUsed
+ if zName == uintptr(0) {
+ rc = SQLITE_OK
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aSyscall))/uint64(unsafe.Sizeof(unix_syscall{})); i++ {
+ if aSyscall[i].FpDefault != 0 {
+ aSyscall[i].FpCurrent = aSyscall[i].FpDefault
+ }
+ }
+ } else {
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aSyscall))/uint64(unsafe.Sizeof(unix_syscall{})); i++ {
+ if libc.Xstrcmp(tls, zName, aSyscall[i].FzName) == 0 {
+ if aSyscall[i].FpDefault == uintptr(0) {
+ aSyscall[i].FpDefault = aSyscall[i].FpCurrent
+ }
+ rc = SQLITE_OK
+ if pNewFunc == uintptr(0) {
+ pNewFunc = aSyscall[i].FpDefault
+ }
+ aSyscall[i].FpCurrent = pNewFunc
+ break
+ }
+ }
+ }
+ return rc
+}
+
+func unixGetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr) Sqlite3_syscall_ptr {
+ var i uint32
+
+ _ = pNotUsed
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aSyscall))/uint64(unsafe.Sizeof(unix_syscall{})); i++ {
+ if libc.Xstrcmp(tls, zName, aSyscall[i].FzName) == 0 {
+ return aSyscall[i].FpCurrent
+ }
+ }
+ return uintptr(0)
+}
+
+func unixNextSystemCall(tls *libc.TLS, p uintptr, zName uintptr) uintptr {
+ var i int32 = -1
+
+ _ = p
+ if zName != 0 {
+ for i = 0; i < int32(uint64(unsafe.Sizeof(aSyscall))/uint64(unsafe.Sizeof(unix_syscall{})))-1; i++ {
+ if libc.Xstrcmp(tls, zName, aSyscall[i].FzName) == 0 {
+ break
+ }
+ }
+ }
+ for i++; i < int32(uint64(unsafe.Sizeof(aSyscall))/uint64(unsafe.Sizeof(unix_syscall{}))); i++ {
+ if aSyscall[i].FpCurrent != uintptr(0) {
+ return aSyscall[i].FzName
+ }
+ }
+ return uintptr(0)
+}
+
+func robust_open(tls *libc.TLS, z uintptr, f int32, m Mode_t) int32 {
+ bp := tls.Alloc(160)
+ defer tls.Free(160)
+
+ var fd int32
+ var m2 Mode_t
+ if m != 0 {
+ m2 = m
+ } else {
+ m2 = uint16(SQLITE_DEFAULT_FILE_PERMISSIONS)
+ }
+ for 1 != 0 {
+ fd = (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 8)))(tls, z, f|O_CLOEXEC, int32(m2))
+ if fd < 0 {
+ if *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ continue
+ }
+ break
+ }
+ if fd >= SQLITE_MINIMUM_FILE_DESCRIPTOR {
+ break
+ }
+ if f&(O_EXCL|O_CREAT) == O_EXCL|O_CREAT {
+ (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 16*24 + 8)))(tls, z)
+ }
+ (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 1*24 + 8)))(tls, fd)
+ Xsqlite3_log(tls, SQLITE_WARNING,
+ ts+3464, libc.VaList(bp, z, fd))
+ fd = -1
+ if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 8)))(tls, ts+3507, O_RDONLY, int32(m)) < 0 {
+ break
+ }
+ }
+ if fd >= 0 {
+ if int32(m) != 0 {
+ if (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, fd, bp+16) == 0 &&
+ (*stat)(unsafe.Pointer(bp+16)).Fst_size == int64(0) &&
+ int32((*stat)(unsafe.Pointer(bp+16)).Fst_mode)&0777 != int32(m) {
+ (*(*func(*libc.TLS, int32, Mode_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 14*24 + 8)))(tls, fd, m)
+ }
+ }
+ }
+ return fd
+}
+
+var unixBigLock uintptr = uintptr(0)
+
+func unixEnterMutex(tls *libc.TLS) {
+ Xsqlite3_mutex_enter(tls, unixBigLock)
+}
+
+func unixLeaveMutex(tls *libc.TLS) {
+ Xsqlite3_mutex_leave(tls, unixBigLock)
+}
+
+func robust_ftruncate(tls *libc.TLS, h int32, sz Sqlite3_int64) int32 {
+ var rc int32
+ for __ccgo := true; __ccgo; __ccgo = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ rc = (*(*func(*libc.TLS, int32, Off_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 6*24 + 8)))(tls, h, sz)
+ }
+ return rc
+}
+
+func sqliteErrorFromPosixError(tls *libc.TLS, posixError int32, sqliteIOErr int32) int32 {
+ switch posixError {
+ case EACCES:
+ fallthrough
+ case EAGAIN:
+ fallthrough
+ case ETIMEDOUT:
+ fallthrough
+ case EBUSY:
+ fallthrough
+ case EINTR:
+ fallthrough
+ case ENOLCK:
+ return SQLITE_BUSY
+
+ case EPERM:
+ return SQLITE_PERM
+
+ default:
+ return sqliteIOErr
+ }
+ return int32(0)
+}
+
+type vxworksFileId = struct {
+ FpNext uintptr
+ FnRef int32
+ FnName int32
+ FzCanonicalName uintptr
+}
+
+type unixFileId = struct {
+ Fdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fino U64
+}
+
+var inodeList uintptr = uintptr(0)
+
+func unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uintptr, iLine int32) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var zErr uintptr
+ var iErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+
+ zErr = ts + 1547
+
+ if zPath == uintptr(0) {
+ zPath = ts + 1547
+ }
+ Xsqlite3_log(tls, errcode,
+ ts+3517,
+ libc.VaList(bp, iLine, iErrno, zFunc, zPath, zErr))
+
+ return errcode
+}
+
+func robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) {
+ if (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 1*24 + 8)))(tls, h) != 0 {
+ unixLogErrorAtLine(tls, SQLITE_IOERR|int32(16)<<8, ts+3259,
+ func() uintptr {
+ if pFile != 0 {
+ return (*UnixFile)(unsafe.Pointer(pFile)).FzPath
+ }
+ return uintptr(0)
+ }(), lineno)
+ }
+}
+
+func storeLastErrno(tls *libc.TLS, pFile uintptr, error int32) {
+ (*UnixFile)(unsafe.Pointer(pFile)).FlastErrno = error
+}
+
+func closePendingFds(tls *libc.TLS, pFile uintptr) {
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ var p uintptr
+ var pNext uintptr
+
+ for p = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpUnused; p != 0; p = pNext {
+ pNext = (*UnixUnusedFd)(unsafe.Pointer(p)).FpNext
+ robust_close(tls, pFile, (*UnixUnusedFd)(unsafe.Pointer(p)).Ffd, 38271)
+ Xsqlite3_free(tls, p)
+ }
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpUnused = uintptr(0)
+}
+
+func releaseInodeInfo(tls *libc.TLS, pFile uintptr) {
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+
+ if pInode != 0 {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnRef--
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnRef == 0 {
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ closePendingFds(tls, pFile)
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpPrev != 0 {
+ (*UnixInodeInfo)(unsafe.Pointer((*UnixInodeInfo)(unsafe.Pointer(pInode)).FpPrev)).FpNext = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext
+ } else {
+ inodeList = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext
+ }
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext != 0 {
+ (*UnixInodeInfo)(unsafe.Pointer((*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext)).FpPrev = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpPrev
+ }
+ Xsqlite3_mutex_free(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ Xsqlite3_free(tls, pInode)
+ }
+ }
+}
+
+func findInodeInfo(tls *libc.TLS, pFile uintptr, ppInode uintptr) int32 {
+ bp := tls.Alloc(160)
+ defer tls.Free(160)
+
+ var rc int32
+ var fd int32
+
+ var pInode uintptr = uintptr(0)
+
+ fd = (*UnixFile)(unsafe.Pointer(pFile)).Fh
+ rc = (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, fd, bp)
+ if rc != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR
+ }
+
+ if (*stat)(unsafe.Pointer(bp)).Fst_size == int64(0) && (*UnixFile)(unsafe.Pointer(pFile)).FfsFlags&uint32(SQLITE_FSFLAGS_IS_MSDOS) != uint32(0) {
+ for __ccgo := true; __ccgo; __ccgo = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ rc = int32((*(*func(*libc.TLS, int32, uintptr, Size_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 11*24 + 8)))(tls, fd, ts+3548, uint64(1)))
+ }
+ if rc != 1 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR
+ }
+ rc = (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, fd, bp)
+ if rc != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR
+ }
+ }
+
+ libc.X__builtin___memset_chk(tls, bp+144, 0, uint64(unsafe.Sizeof(unixFileId{})), libc.X__builtin_object_size(tls, bp+144, 0))
+ (*unixFileId)(unsafe.Pointer(bp + 144)).Fdev = (*stat)(unsafe.Pointer(bp)).Fst_dev
+ (*unixFileId)(unsafe.Pointer(bp + 144)).Fino = (*stat)(unsafe.Pointer(bp)).Fst_ino
+
+ pInode = inodeList
+ for pInode != 0 && libc.Xmemcmp(tls, bp+144, pInode, uint64(unsafe.Sizeof(unixFileId{}))) != 0 {
+ pInode = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext
+ }
+ if pInode == uintptr(0) {
+ pInode = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(UnixInodeInfo{})))
+ if pInode == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pInode, 0, uint64(unsafe.Sizeof(UnixInodeInfo{})), libc.X__builtin_object_size(tls, pInode, 0))
+ libc.X__builtin___memcpy_chk(tls, pInode, bp+144, uint64(unsafe.Sizeof(unixFileId{})), libc.X__builtin_object_size(tls, pInode, 0))
+ if Xsqlite3Config.FbCoreMutex != 0 {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex = Xsqlite3_mutex_alloc(tls, SQLITE_MUTEX_FAST)
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex == uintptr(0) {
+ Xsqlite3_free(tls, pInode)
+ return SQLITE_NOMEM
+ }
+ }
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnRef = 1
+
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext = inodeList
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpPrev = uintptr(0)
+ if inodeList != 0 {
+ (*UnixInodeInfo)(unsafe.Pointer(inodeList)).FpPrev = pInode
+ }
+ inodeList = pInode
+ } else {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnRef++
+ }
+ *(*uintptr)(unsafe.Pointer(ppInode)) = pInode
+ return SQLITE_OK
+}
+
+func fileHasMoved(tls *libc.TLS, pFile uintptr) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ return libc.Bool32((*UnixFile)(unsafe.Pointer(pFile)).FpInode != uintptr(0) && ((*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, bp) != 0 ||
+ (*stat)(unsafe.Pointer(bp)).Fst_ino != (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FfileId.Fino))
+}
+
+func verifyDbFile(tls *libc.TLS, pFile uintptr) {
+ bp := tls.Alloc(176)
+ defer tls.Free(176)
+
+ var rc int32
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FctrlFlags)&UNIXFILE_NOLOCK != 0 {
+ return
+ }
+
+ rc = (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, bp+32)
+ if rc != 0 {
+ Xsqlite3_log(tls, SQLITE_WARNING, ts+3550, libc.VaList(bp, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ return
+ }
+ if int32((*stat)(unsafe.Pointer(bp+32)).Fst_nlink) == 0 {
+ Xsqlite3_log(tls, SQLITE_WARNING, ts+3574, libc.VaList(bp+8, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ return
+ }
+ if int32((*stat)(unsafe.Pointer(bp+32)).Fst_nlink) > 1 {
+ Xsqlite3_log(tls, SQLITE_WARNING, ts+3603, libc.VaList(bp+16, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ return
+ }
+ if fileHasMoved(tls, pFile) != 0 {
+ Xsqlite3_log(tls, SQLITE_WARNING, ts+3630, libc.VaList(bp+24, (*UnixFile)(unsafe.Pointer(pFile)).FzPath))
+ return
+ }
+}
+
+func unixCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32 = SQLITE_OK
+ var reserved int32 = 0
+ var pFile uintptr = id
+
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpLockMutex)
+
+ if int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock) > SHARED_LOCK {
+ reserved = 1
+ }
+
+ if !(reserved != 0) && !(int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FbProcessLock) != 0) {
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_start = Off_t(Xsqlite3PendingByte + 1)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_len = int64(1)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_type = int16(F_WRLCK)
+ if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, F_GETLK, libc.VaList(bp, bp+8)) != 0 {
+ rc = SQLITE_IOERR | int32(14)<<8
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ } else if int32((*flock)(unsafe.Pointer(bp+8)).Fl_type) != F_UNLCK {
+ reserved = 1
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpLockMutex)
+
+ *(*int32)(unsafe.Pointer(pResOut)) = reserved
+ return rc
+}
+
+func unixFileLock(tls *libc.TLS, pFile uintptr, pLock uintptr) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var rc int32
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FctrlFlags)&(UNIXFILE_EXCL|UNIXFILE_RDONLY) == UNIXFILE_EXCL {
+ if int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FbProcessLock) == 0 {
+ (*flock)(unsafe.Pointer(bp + 16)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 16)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp + 16)).Fl_len = int64(SHARED_SIZE)
+ (*flock)(unsafe.Pointer(bp + 16)).Fl_type = int16(F_WRLCK)
+ rc = (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, F_SETLK, libc.VaList(bp, bp+16))
+ if rc < 0 {
+ return rc
+ }
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FbProcessLock = uint8(1)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock++
+ } else {
+ rc = 0
+ }
+ } else {
+ rc = (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, F_SETLK, libc.VaList(bp+8, pLock))
+ }
+ return rc
+}
+
+func unixLock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+ var pFile uintptr
+ var pInode uintptr
+
+ var tErrno int32
+ rc = SQLITE_OK
+ pFile = id
+ tErrno = 0
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) >= eFileLock) {
+ goto __1
+ }
+
+ return SQLITE_OK
+__1:
+ ;
+ pInode = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) != int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) && (int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) >= PENDING_LOCK || eFileLock > SHARED_LOCK)) {
+ goto __2
+ }
+ rc = SQLITE_BUSY
+ goto end_lock
+__2:
+ ;
+ if !(eFileLock == SHARED_LOCK && (int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) == SHARED_LOCK || int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) == RESERVED_LOCK)) {
+ goto __3
+ }
+
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(SHARED_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared++
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock++
+ goto end_lock
+__3:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_len = 1
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ if !(eFileLock == SHARED_LOCK ||
+ eFileLock == EXCLUSIVE_LOCK && int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) == RESERVED_LOCK) {
+ goto __4
+ }
+ (*flock)(unsafe.Pointer(bp)).Fl_type = func() int16 {
+ if eFileLock == SHARED_LOCK {
+ return int16(F_RDLCK)
+ }
+ return int16(F_WRLCK)
+ }()
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte)
+ if !(unixFileLock(tls, pFile, bp) != 0) {
+ goto __5
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+ if !(rc != SQLITE_BUSY) {
+ goto __7
+ }
+ storeLastErrno(tls, pFile, tErrno)
+__7:
+ ;
+ goto end_lock
+ goto __6
+__5:
+ if !(eFileLock == EXCLUSIVE_LOCK) {
+ goto __8
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(PENDING_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(PENDING_LOCK)
+__8:
+ ;
+__6:
+ ;
+__4:
+ ;
+ if !(eFileLock == SHARED_LOCK) {
+ goto __9
+ }
+
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = int64(SHARED_SIZE)
+ if !(unixFileLock(tls, pFile, bp) != 0) {
+ goto __11
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+__11:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = 1
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_UNLCK)
+ if !(unixFileLock(tls, pFile, bp) != 0 && rc == SQLITE_OK) {
+ goto __12
+ }
+
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = SQLITE_IOERR | int32(8)<<8
+__12:
+ ;
+ if !(rc != 0) {
+ goto __13
+ }
+ if !(rc != SQLITE_BUSY) {
+ goto __15
+ }
+ storeLastErrno(tls, pFile, tErrno)
+__15:
+ ;
+ goto end_lock
+ goto __14
+__13:
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(SHARED_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock++
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared = 1
+__14:
+ ;
+ goto __10
+__9:
+ if !(eFileLock == EXCLUSIVE_LOCK && (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared > 1) {
+ goto __16
+ }
+
+ rc = SQLITE_BUSY
+ goto __17
+__16:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_WRLCK)
+
+ if !(eFileLock == RESERVED_LOCK) {
+ goto __18
+ }
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 1)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = 1
+ goto __19
+__18:
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = int64(SHARED_SIZE)
+__19:
+ ;
+ if !(unixFileLock(tls, pFile, bp) != 0) {
+ goto __20
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+ if !(rc != SQLITE_BUSY) {
+ goto __21
+ }
+ storeLastErrno(tls, pFile, tErrno)
+__21:
+ ;
+__20:
+ ;
+__17:
+ ;
+__10:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock)
+__22:
+ ;
+end_lock:
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ return rc
+}
+
+func setPendingFd(tls *libc.TLS, pFile uintptr) {
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ var p uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused
+
+ (*UnixUnusedFd)(unsafe.Pointer(p)).FpNext = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpUnused
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpUnused = p
+ (*UnixFile)(unsafe.Pointer(pFile)).Fh = -1
+ (*UnixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused = uintptr(0)
+}
+
+func posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pFile uintptr
+ var pInode uintptr
+
+ var rc int32
+ var tErrno int32
+ var divSize Off_t
+ pFile = id
+ rc = SQLITE_OK
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) <= eFileLock) {
+ goto __1
+ }
+ return SQLITE_OK
+__1:
+ ;
+ pInode = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) > SHARED_LOCK) {
+ goto __2
+ }
+
+ if !(eFileLock == SHARED_LOCK) {
+ goto __3
+ }
+ if !(handleNFSUnlock != 0) {
+ goto __4
+ }
+ divSize = int64(SHARED_SIZE - 1)
+
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_UNLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = divSize
+ if !(unixFileLock(tls, pFile, bp) == -1) {
+ goto __6
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, tErrno)
+ goto end_unlock
+__6:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_RDLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = divSize
+ if !(unixFileLock(tls, pFile, bp) == -1) {
+ goto __7
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(9)<<8)
+ if !(rc != SQLITE_OK && rc != SQLITE_BUSY) {
+ goto __8
+ }
+ storeLastErrno(tls, pFile, tErrno)
+__8:
+ ;
+ goto end_unlock
+__7:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_UNLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte+2) + divSize
+ (*flock)(unsafe.Pointer(bp)).Fl_len = int64(SHARED_SIZE) - divSize
+ if !(unixFileLock(tls, pFile, bp) == -1) {
+ goto __9
+ }
+ tErrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ rc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, tErrno)
+ goto end_unlock
+__9:
+ ;
+ goto __5
+__4:
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_RDLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte + 2)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = int64(SHARED_SIZE)
+ if !(unixFileLock(tls, pFile, bp) != 0) {
+ goto __10
+ }
+
+ rc = SQLITE_IOERR | int32(9)<<8
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ goto end_unlock
+__10:
+ ;
+__5:
+ ;
+__3:
+ ;
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_UNLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = Off_t(Xsqlite3PendingByte)
+ (*flock)(unsafe.Pointer(bp)).Fl_len = 2
+ if !(unixFileLock(tls, pFile, bp) == 0) {
+ goto __11
+ }
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(SHARED_LOCK)
+ goto __12
+__11:
+ rc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ goto end_unlock
+__12:
+ ;
+__2:
+ ;
+ if !(eFileLock == NO_LOCK) {
+ goto __13
+ }
+
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared--
+ if !((*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared == 0) {
+ goto __14
+ }
+ (*flock)(unsafe.Pointer(bp)).Fl_type = int16(F_UNLCK)
+ (*flock)(unsafe.Pointer(bp)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp)).Fl_start = libc.AssignPtrInt64(bp+8, 0)
+ if !(unixFileLock(tls, pFile, bp) == 0) {
+ goto __15
+ }
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(NO_LOCK)
+ goto __16
+__15:
+ rc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(NO_LOCK)
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(NO_LOCK)
+__16:
+ ;
+__14:
+ ;
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock--
+
+ if !((*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock == 0) {
+ goto __17
+ }
+ closePendingFds(tls, pFile)
+__17:
+ ;
+__13:
+ ;
+end_unlock:
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ if !(rc == SQLITE_OK) {
+ goto __18
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+__18:
+ ;
+ return rc
+}
+
+func unixUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ return posixUnlock(tls, id, eFileLock, 0)
+}
+
+func closeUnixFile(tls *libc.TLS, id uintptr) int32 {
+ var pFile uintptr = id
+ unixUnmapfile(tls, pFile)
+ if (*UnixFile)(unsafe.Pointer(pFile)).Fh >= 0 {
+ robust_close(tls, pFile, (*UnixFile)(unsafe.Pointer(pFile)).Fh, 39055)
+ (*UnixFile)(unsafe.Pointer(pFile)).Fh = -1
+ }
+
+ Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused)
+ libc.X__builtin___memset_chk(tls, pFile, 0, uint64(unsafe.Sizeof(UnixFile{})), libc.X__builtin_object_size(tls, pFile, 0))
+ return SQLITE_OK
+}
+
+func unixClose(tls *libc.TLS, id uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pFile uintptr = id
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+
+ verifyDbFile(tls, pFile)
+ unixUnlock(tls, id, NO_LOCK)
+
+ unixEnterMutex(tls)
+
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock != 0 {
+ setPendingFd(tls, pFile)
+ }
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ releaseInodeInfo(tls, pFile)
+
+ rc = closeUnixFile(tls, id)
+ unixLeaveMutex(tls)
+ return rc
+}
+
+func nolockCheckReservedLock(tls *libc.TLS, NotUsed uintptr, pResOut uintptr) int32 {
+ _ = NotUsed
+ *(*int32)(unsafe.Pointer(pResOut)) = 0
+ return SQLITE_OK
+}
+
+func nolockLock(tls *libc.TLS, NotUsed uintptr, NotUsed2 int32) int32 {
+ _ = NotUsed
+ _ = NotUsed2
+ return SQLITE_OK
+}
+
+func nolockUnlock(tls *libc.TLS, NotUsed uintptr, NotUsed2 int32) int32 {
+ _ = NotUsed
+ _ = NotUsed2
+ return SQLITE_OK
+}
+
+func nolockClose(tls *libc.TLS, id uintptr) int32 {
+ return closeUnixFile(tls, id)
+}
+
+func dotlockCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var reserved int32 = 0
+ var pFile uintptr = id
+
+ reserved = libc.Bool32((*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 2*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext, 0) == 0)
+
+ *(*int32)(unsafe.Pointer(pResOut)) = reserved
+ return rc
+}
+
+func dotlockLock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var pFile uintptr = id
+ var zLockFile uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var rc int32 = SQLITE_OK
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) > NO_LOCK {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+
+ libc.Xutimes(tls, zLockFile, uintptr(0))
+ return SQLITE_OK
+ }
+
+ rc = (*(*func(*libc.TLS, uintptr, Mode_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 18*24 + 8)))(tls, zLockFile, uint16(0777))
+ if rc < 0 {
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if EEXIST == tErrno {
+ rc = SQLITE_BUSY
+ } else {
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+ if rc != SQLITE_BUSY {
+ storeLastErrno(tls, pFile, tErrno)
+ }
+ }
+ return rc
+ }
+
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ return rc
+}
+
+func dotlockUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var pFile uintptr = id
+ var zLockFile uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var rc int32
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) == eFileLock {
+ return SQLITE_OK
+ }
+
+ if eFileLock == SHARED_LOCK {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(SHARED_LOCK)
+ return SQLITE_OK
+ }
+
+ rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 19*24 + 8)))(tls, zLockFile)
+ if rc < 0 {
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if tErrno == ENOENT {
+ rc = SQLITE_OK
+ } else {
+ rc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, tErrno)
+ }
+ return rc
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(NO_LOCK)
+ return SQLITE_OK
+}
+
+func dotlockClose(tls *libc.TLS, id uintptr) int32 {
+ var pFile uintptr = id
+
+ dotlockUnlock(tls, id, NO_LOCK)
+ Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext)
+ return closeUnixFile(tls, id)
+}
+
+func robust_flock(tls *libc.TLS, fd int32, op int32) int32 {
+ var rc int32
+ for __ccgo := true; __ccgo; __ccgo = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ rc = libc.Xflock(tls, fd, op)
+ }
+ return rc
+}
+
+func flockCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var reserved int32 = 0
+ var pFile uintptr = id
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) > SHARED_LOCK {
+ reserved = 1
+ }
+
+ if !(reserved != 0) {
+ var lrc int32 = robust_flock(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, LOCK_EX|LOCK_NB)
+ if !(lrc != 0) {
+ lrc = robust_flock(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, LOCK_UN)
+ if lrc != 0 {
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+
+ lrc = SQLITE_IOERR | int32(8)<<8
+ storeLastErrno(tls, pFile, tErrno)
+ rc = lrc
+ }
+ } else {
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ reserved = 1
+
+ lrc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+ if lrc != SQLITE_OK && lrc != SQLITE_BUSY {
+ storeLastErrno(tls, pFile, tErrno)
+ rc = lrc
+ }
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pResOut)) = reserved
+ return rc
+}
+
+func flockLock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var rc int32 = SQLITE_OK
+ var pFile uintptr = id
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) > NO_LOCK {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ return SQLITE_OK
+ }
+
+ if robust_flock(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, LOCK_EX|LOCK_NB) != 0 {
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+
+ rc = sqliteErrorFromPosixError(tls, tErrno, SQLITE_IOERR|int32(15)<<8)
+ if rc != SQLITE_OK && rc != SQLITE_BUSY {
+ storeLastErrno(tls, pFile, tErrno)
+ }
+ } else {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ }
+
+ return rc
+}
+
+func flockUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var pFile uintptr = id
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) == eFileLock {
+ return SQLITE_OK
+ }
+
+ if eFileLock == SHARED_LOCK {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ return SQLITE_OK
+ }
+
+ if robust_flock(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, LOCK_UN) != 0 {
+ return SQLITE_IOERR | int32(8)<<8
+ } else {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(NO_LOCK)
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+func flockClose(tls *libc.TLS, id uintptr) int32 {
+ flockUnlock(tls, id, NO_LOCK)
+ return closeUnixFile(tls, id)
+}
+
+type afpLockingContext = struct {
+ Freserved int32
+ F__ccgo_pad1 [4]byte
+ FdbPath uintptr
+}
+
+// The afpLockingContext structure contains all afp lock specific state
+type AfpLockingContext = afpLockingContext
+
+type ByteRangeLockPB2 = struct {
+ Foffset uint64
+ Flength uint64
+ FretRangeStart uint64
+ FunLockFlag uint8
+ FstartEndFlag uint8
+ F__ccgo_pad1 [2]byte
+ Ffd int32
+}
+
+func afpSetLock(tls *libc.TLS, path uintptr, pFile uintptr, offset uint64, length uint64, setLockFlag int32) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var err int32
+
+ (*ByteRangeLockPB2)(unsafe.Pointer(bp)).FunLockFlag = func() uint8 {
+ if setLockFlag != 0 {
+ return uint8(0)
+ }
+ return uint8(1)
+ }()
+ (*ByteRangeLockPB2)(unsafe.Pointer(bp)).FstartEndFlag = uint8(0)
+ (*ByteRangeLockPB2)(unsafe.Pointer(bp)).Foffset = offset
+ (*ByteRangeLockPB2)(unsafe.Pointer(bp)).Flength = length
+ (*ByteRangeLockPB2)(unsafe.Pointer(bp)).Ffd = (*UnixFile)(unsafe.Pointer(pFile)).Fh
+
+ err = libc.Xfsctl(tls, path, uint64(0x80000000|X__uint32_t(0x40000000))|uint64(unsafe.Sizeof(ByteRangeLockPB2{}))&uint64(IOCPARM_MASK)<<16|uint64(int32('z')<<8)|uint64(23), bp, uint32(0))
+ if err == -1 {
+ var rc int32
+ var tErrno int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+
+ rc = sqliteErrorFromPosixError(tls, tErrno,
+ func() int32 {
+ if setLockFlag != 0 {
+ return SQLITE_IOERR | int32(15)<<8
+ }
+ return SQLITE_IOERR | int32(8)<<8
+ }())
+ if rc != SQLITE_OK && rc != SQLITE_BUSY {
+ storeLastErrno(tls, pFile, tErrno)
+ }
+ return rc
+ } else {
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+func afpCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var reserved int32 = 0
+ var pFile uintptr = id
+ var context uintptr
+
+ context = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ if (*AfpLockingContext)(unsafe.Pointer(context)).Freserved != 0 {
+ *(*int32)(unsafe.Pointer(pResOut)) = 1
+ return SQLITE_OK
+ }
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpLockMutex)
+
+ if int32((*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FeFileLock) > SHARED_LOCK {
+ reserved = 1
+ }
+
+ if !(reserved != 0) {
+ var lrc int32 = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+1), uint64(1), 1)
+ if SQLITE_OK == lrc {
+ lrc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+1), uint64(1), 0)
+ } else {
+ reserved = 1
+ }
+ if lrc != SQLITE_OK && lrc != SQLITE_BUSY {
+ rc = lrc
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpLockMutex)
+
+ *(*int32)(unsafe.Pointer(pResOut)) = reserved
+ return rc
+}
+
+func afpLock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var rc int32
+ var pFile uintptr
+ var pInode uintptr
+ var context uintptr
+ var failed int32
+ var lrc1 int32
+ var lrc2 int32
+ var lrc1Errno int32
+ var lk int64
+ var mask int64
+ var failed2 int32
+
+ var failed1 int32
+ rc = SQLITE_OK
+ pFile = id
+ pInode = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ context = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) >= eFileLock) {
+ goto __1
+ }
+
+ return SQLITE_OK
+__1:
+ ;
+ pInode = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ if !(int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) != int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) && (int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) >= PENDING_LOCK || eFileLock > SHARED_LOCK)) {
+ goto __2
+ }
+ rc = SQLITE_BUSY
+ goto afp_end_lock
+__2:
+ ;
+ if !(eFileLock == SHARED_LOCK && (int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) == SHARED_LOCK || int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock) == RESERVED_LOCK)) {
+ goto __3
+ }
+
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(SHARED_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared++
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock++
+ goto afp_end_lock
+__3:
+ ;
+ if !(eFileLock == SHARED_LOCK ||
+ eFileLock == EXCLUSIVE_LOCK && int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) < PENDING_LOCK) {
+ goto __4
+ }
+ failed = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte), uint64(1), 1)
+ if !(failed != 0) {
+ goto __5
+ }
+ rc = failed
+ goto afp_end_lock
+__5:
+ ;
+__4:
+ ;
+ if !(eFileLock == SHARED_LOCK) {
+ goto __6
+ }
+ lrc1Errno = 0
+
+ if uint64(unsafe.Sizeof(int64(0))) == uint64(8) {
+ mask = int64(0xffffffff) | int64(0x7fffffff)<<32
+ } else {
+ mask = int64(0x7fffffff)
+ }
+
+ lk = libc.Xrandom(tls)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte = uint64(lk & mask % int64(SHARED_SIZE-1))
+ lrc1 = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile,
+ uint64(Xsqlite3PendingByte+2)+(*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte, uint64(1), 1)
+ if !(lrc1 != SQLITE_OK && lrc1 != SQLITE_BUSY) {
+ goto __8
+ }
+ lrc1Errno = (*UnixFile)(unsafe.Pointer(pFile)).FlastErrno
+__8:
+ ;
+ lrc2 = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte), uint64(1), 0)
+
+ if !(lrc1 != SQLITE_OK && lrc1 != SQLITE_BUSY) {
+ goto __9
+ }
+ storeLastErrno(tls, pFile, lrc1Errno)
+ rc = lrc1
+ goto afp_end_lock
+ goto __10
+__9:
+ if !(lrc2 != SQLITE_OK && lrc2 != SQLITE_BUSY) {
+ goto __11
+ }
+ rc = lrc2
+ goto afp_end_lock
+ goto __12
+__11:
+ if !(lrc1 != SQLITE_OK) {
+ goto __13
+ }
+ rc = lrc1
+ goto __14
+__13:
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(SHARED_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock++
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared = 1
+__14:
+ ;
+__12:
+ ;
+__10:
+ ;
+ goto __7
+__6:
+ if !(eFileLock == EXCLUSIVE_LOCK && (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared > 1) {
+ goto __15
+ }
+
+ rc = SQLITE_BUSY
+ goto __16
+__15:
+ failed1 = 0
+
+ if !(eFileLock >= RESERVED_LOCK && int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) < RESERVED_LOCK) {
+ goto __17
+ }
+
+ failed1 = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+1), uint64(1), 1)
+ if !!(failed1 != 0) {
+ goto __18
+ }
+ (*AfpLockingContext)(unsafe.Pointer(context)).Freserved = 1
+__18:
+ ;
+__17:
+ ;
+ if !(!(failed1 != 0) && eFileLock == EXCLUSIVE_LOCK) {
+ goto __19
+ }
+
+ if !!(libc.AssignInt32(&failed1, afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+2)+(*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte, uint64(1), 0)) != 0) {
+ goto __20
+ }
+ failed2 = SQLITE_OK
+
+ failed1 = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+2),
+ uint64(SHARED_SIZE), 1)
+ if !(failed1 != 0 && libc.AssignInt32(&failed2, afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile,
+ uint64(Xsqlite3PendingByte+2)+(*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte, uint64(1), 1)) != 0) {
+ goto __22
+ }
+
+ if failed1&0xff == SQLITE_IOERR {
+ rc = failed2
+ } else {
+ rc = SQLITE_IOERR | int32(15)<<8
+ }
+ goto afp_end_lock
+__22:
+ ;
+ goto __21
+__20:
+ rc = failed1
+__21:
+ ;
+__19:
+ ;
+ if !(failed1 != 0) {
+ goto __23
+ }
+ rc = failed1
+__23:
+ ;
+__16:
+ ;
+__7:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __24
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock)
+ goto __25
+__24:
+ if !(eFileLock == EXCLUSIVE_LOCK) {
+ goto __26
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(PENDING_LOCK)
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(PENDING_LOCK)
+__26:
+ ;
+__25:
+ ;
+afp_end_lock:
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ return rc
+}
+
+func afpUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var rc int32 = SQLITE_OK
+ var pFile uintptr = id
+ var pInode uintptr
+ var context uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var skipShared int32 = 0
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) <= eFileLock {
+ return SQLITE_OK
+ }
+ pInode = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) > SHARED_LOCK {
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) == EXCLUSIVE_LOCK {
+ rc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+2), uint64(SHARED_SIZE), 0)
+ if rc == SQLITE_OK && (eFileLock == SHARED_LOCK || (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared > 1) {
+ var sharedLockByte int32 = int32(uint64(Xsqlite3PendingByte+2) + (*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte)
+ rc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(sharedLockByte), uint64(1), 1)
+ } else {
+ skipShared = 1
+ }
+ }
+ if rc == SQLITE_OK && int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) >= PENDING_LOCK {
+ rc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte), uint64(1), 0)
+ }
+ if rc == SQLITE_OK && int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) >= RESERVED_LOCK && (*AfpLockingContext)(unsafe.Pointer(context)).Freserved != 0 {
+ rc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, uint64(Xsqlite3PendingByte+1), uint64(1), 0)
+ if !(rc != 0) {
+ (*AfpLockingContext)(unsafe.Pointer(context)).Freserved = 0
+ }
+ }
+ if rc == SQLITE_OK && (eFileLock == SHARED_LOCK || (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared > 1) {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(SHARED_LOCK)
+ }
+ }
+ if rc == SQLITE_OK && eFileLock == NO_LOCK {
+ var sharedLockByte uint64 = uint64(Xsqlite3PendingByte+2) + (*UnixInodeInfo)(unsafe.Pointer(pInode)).FsharedByte
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared--
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnShared == 0 {
+ if !(skipShared != 0) {
+ rc = afpSetLock(tls, (*AfpLockingContext)(unsafe.Pointer(context)).FdbPath, pFile, sharedLockByte, uint64(1), 0)
+ }
+ if !(rc != 0) {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(NO_LOCK)
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(NO_LOCK)
+ }
+ }
+ if rc == SQLITE_OK {
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock--
+
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock == 0 {
+ closePendingFds(tls, pFile)
+ }
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ if rc == SQLITE_OK {
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock)
+ }
+ return rc
+}
+
+func afpClose(tls *libc.TLS, id uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pFile uintptr = id
+
+ afpUnlock(tls, id, NO_LOCK)
+
+ unixEnterMutex(tls)
+ if (*UnixFile)(unsafe.Pointer(pFile)).FpInode != 0 {
+ var pInode uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FpInode
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ if (*UnixInodeInfo)(unsafe.Pointer(pInode)).FnLock != 0 {
+ setPendingFd(tls, pFile)
+ }
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ }
+ releaseInodeInfo(tls, pFile)
+ Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext)
+ rc = closeUnixFile(tls, id)
+ unixLeaveMutex(tls)
+ return rc
+}
+
+func nfsUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ return posixUnlock(tls, id, eFileLock, 1)
+}
+
+func seekAndRead(tls *libc.TLS, id uintptr, offset Sqlite3_int64, pBuf uintptr, cnt int32) int32 {
+ var got int32
+ var prior int32 = 0
+
+ for __ccgo := true; __ccgo; __ccgo = got > 0 {
+ got = int32((*(*func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 9*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(id)).Fh, pBuf, uint64(cnt), offset))
+
+ if got == cnt {
+ break
+ }
+ if got < 0 {
+ if *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ got = 1
+ continue
+ }
+ prior = 0
+ storeLastErrno(tls, id, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ break
+ } else if got > 0 {
+ cnt = cnt - got
+ offset = offset + Sqlite3_int64(got)
+ prior = prior + got
+ pBuf = uintptr(got) + pBuf
+ }
+ }
+
+ return got + prior
+}
+
+func unixRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Sqlite3_int64) int32 {
+ var pFile uintptr = id
+ var got int32
+
+ if offset < (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize {
+ if offset+Sqlite3_int64(amt) <= (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize {
+ libc.X__builtin___memcpy_chk(tls, pBuf, (*UnixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(amt), libc.X__builtin_object_size(tls, pBuf, 0))
+ return SQLITE_OK
+ } else {
+ var nCopy int32 = int32((*UnixFile)(unsafe.Pointer(pFile)).FmmapSize - offset)
+ libc.X__builtin___memcpy_chk(tls, pBuf, (*UnixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(nCopy), libc.X__builtin_object_size(tls, pBuf, 0))
+ pBuf = pBuf + uintptr(nCopy)
+ amt = amt - nCopy
+ offset = offset + Sqlite3_int64(nCopy)
+ }
+ }
+
+ got = seekAndRead(tls, pFile, offset, pBuf, amt)
+ if got == amt {
+ return SQLITE_OK
+ } else if got < 0 {
+ switch (*UnixFile)(unsafe.Pointer(pFile)).FlastErrno {
+ case ERANGE:
+ fallthrough
+ case EIO:
+ fallthrough
+ case ENXIO:
+ fallthrough
+ case EDEVERR:
+ return SQLITE_IOERR | int32(33)<<8
+ }
+ return SQLITE_IOERR | int32(1)<<8
+ } else {
+ storeLastErrno(tls, pFile, 0)
+
+ libc.X__builtin___memset_chk(tls, pBuf+uintptr(got), 0, uint64(amt-got), libc.X__builtin_object_size(tls, pBuf+uintptr(got), 0))
+ return SQLITE_IOERR | int32(2)<<8
+ }
+ return int32(0)
+}
+
+func seekAndWriteFd(tls *libc.TLS, fd int32, iOff I64, pBuf uintptr, nBuf int32, piErrno uintptr) int32 {
+ var rc int32 = 0
+
+ nBuf = nBuf & 0x1ffff
+
+ for __ccgo := true; __ccgo; __ccgo = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ rc = int32((*(*func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 12*24 + 8)))(tls, fd, pBuf, uint64(nBuf), iOff))
+ }
+
+ if rc < 0 {
+ *(*int32)(unsafe.Pointer(piErrno)) = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ }
+ return rc
+}
+
+func seekAndWrite(tls *libc.TLS, id uintptr, offset I64, pBuf uintptr, cnt int32) int32 {
+ return seekAndWriteFd(tls, (*UnixFile)(unsafe.Pointer(id)).Fh, offset, pBuf, cnt, id+32)
+}
+
+func unixWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Sqlite3_int64) int32 {
+ var pFile uintptr = id
+ var wrote int32 = 0
+
+ for libc.AssignInt32(&wrote, seekAndWrite(tls, pFile, offset, pBuf, amt)) < amt && wrote > 0 {
+ amt = amt - wrote
+ offset = offset + Sqlite3_int64(wrote)
+ pBuf = pBuf + uintptr(wrote)
+ }
+
+ if amt > wrote {
+ if wrote < 0 && (*UnixFile)(unsafe.Pointer(pFile)).FlastErrno != ENOSPC {
+ return SQLITE_IOERR | int32(3)<<8
+ } else {
+ storeLastErrno(tls, pFile, 0)
+ return SQLITE_FULL
+ }
+ }
+
+ return SQLITE_OK
+}
+
+func full_fsync(tls *libc.TLS, fd int32, fullSync int32, dataOnly int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ _ = dataOnly
+
+ if fullSync != 0 {
+ rc = (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, fd, F_FULLFSYNC, libc.VaList(bp, 0))
+ } else {
+ rc = 1
+ }
+
+ if rc != 0 {
+ rc = libc.Xfsync(tls, fd)
+ }
+
+ if 0 != 0 && rc != -1 {
+ rc = 0
+ }
+ return rc
+}
+
+func openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) int32 {
+ bp := tls.Alloc(521)
+ defer tls.Free(521)
+
+ var ii int32
+ var fd int32 = -1
+
+ Xsqlite3_snprintf(tls, MAX_PATHNAME, bp+8, ts+3658, libc.VaList(bp, zFilename))
+ for ii = int32(libc.Xstrlen(tls, bp+8)); ii > 0 && int32(*(*int8)(unsafe.Pointer(bp + 8 + uintptr(ii)))) != '/'; ii-- {
+ }
+ if ii > 0 {
+ *(*int8)(unsafe.Pointer(bp + 8 + uintptr(ii))) = int8(0)
+ } else {
+ if int32(*(*int8)(unsafe.Pointer(bp + 8))) != '/' {
+ *(*int8)(unsafe.Pointer(bp + 8)) = int8('.')
+ }
+ *(*int8)(unsafe.Pointer(bp + 8 + 1)) = int8(0)
+ }
+ fd = robust_open(tls, bp+8, O_RDONLY|O_BINARY, uint16(0))
+ if fd >= 0 {
+ }
+ *(*int32)(unsafe.Pointer(pFd)) = fd
+ if fd >= 0 {
+ return SQLITE_OK
+ }
+ return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 40676), ts+3371, bp+8, 40676)
+}
+
+func unixSync(tls *libc.TLS, id uintptr, flags int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ var pFile uintptr = id
+
+ var isDataOnly int32 = flags & SQLITE_SYNC_DATAONLY
+ var isFullsync int32 = libc.Bool32(flags&0x0F == SQLITE_SYNC_FULL)
+
+ rc = full_fsync(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly)
+
+ if rc != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return unixLogErrorAtLine(tls, SQLITE_IOERR|int32(4)<<8, ts+3661, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 40717)
+ }
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FctrlFlags)&UNIXFILE_DIRSYNC != 0 {
+ rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 17*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, bp)
+ if rc == SQLITE_OK {
+ full_fsync(tls, *(*int32)(unsafe.Pointer(bp)), 0, 0)
+ robust_close(tls, pFile, *(*int32)(unsafe.Pointer(bp)), 40731)
+ } else {
+ rc = SQLITE_OK
+ }
+ *(*uint16)(unsafe.Pointer(pFile + 30)) &= libc.Uint16FromInt32(libc.CplInt32(UNIXFILE_DIRSYNC))
+ }
+ return rc
+}
+
+func unixTruncate(tls *libc.TLS, id uintptr, nByte I64) int32 {
+ var pFile uintptr = id
+ var rc int32
+
+ if (*UnixFile)(unsafe.Pointer(pFile)).FszChunk > 0 {
+ nByte = (nByte + I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk) - int64(1)) / I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk) * I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk)
+ }
+
+ rc = robust_ftruncate(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, nByte)
+ if rc != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return unixLogErrorAtLine(tls, SQLITE_IOERR|int32(6)<<8, ts+3290, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 40762)
+ } else {
+ if nByte < (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize {
+ (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize = nByte
+ }
+
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+func unixFileSize(tls *libc.TLS, id uintptr, pSize uintptr) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var rc int32
+
+ rc = (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(id)).Fh, bp)
+
+ if rc != 0 {
+ storeLastErrno(tls, id, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR | int32(7)<<8
+ }
+ *(*I64)(unsafe.Pointer(pSize)) = (*stat)(unsafe.Pointer(bp)).Fst_size
+
+ if *(*I64)(unsafe.Pointer(pSize)) == int64(1) {
+ *(*I64)(unsafe.Pointer(pSize)) = int64(0)
+ }
+
+ return SQLITE_OK
+}
+
+func fcntlSizeHint(tls *libc.TLS, pFile uintptr, nByte I64) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ if (*UnixFile)(unsafe.Pointer(pFile)).FszChunk > 0 {
+ var nSize I64
+
+ if (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, bp) != 0 {
+ return SQLITE_IOERR | int32(7)<<8
+ }
+
+ nSize = (nByte + I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk) - int64(1)) / I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk) * I64((*UnixFile)(unsafe.Pointer(pFile)).FszChunk)
+ if nSize > (*stat)(unsafe.Pointer(bp)).Fst_size {
+ var nBlk int32 = (*stat)(unsafe.Pointer(bp)).Fst_blksize
+ var nWrite int32 = 0
+ var iWrite I64
+
+ iWrite = (*stat)(unsafe.Pointer(bp)).Fst_size/Off_t(nBlk)*Off_t(nBlk) + Off_t(nBlk) - int64(1)
+
+ for ; iWrite < nSize+I64(nBlk)-int64(1); iWrite = iWrite + I64(nBlk) {
+ if iWrite >= nSize {
+ iWrite = nSize - int64(1)
+ }
+ nWrite = seekAndWrite(tls, pFile, iWrite, ts+1547, 1)
+ if nWrite != 1 {
+ return SQLITE_IOERR | int32(3)<<8
+ }
+ }
+ }
+ }
+
+ if (*UnixFile)(unsafe.Pointer(pFile)).FmmapSizeMax > int64(0) && nByte > (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize {
+ var rc int32
+ if (*UnixFile)(unsafe.Pointer(pFile)).FszChunk <= 0 {
+ if robust_ftruncate(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, nByte) != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return unixLogErrorAtLine(tls, SQLITE_IOERR|int32(6)<<8, ts+3290, (*UnixFile)(unsafe.Pointer(pFile)).FzPath, 40883)
+ }
+ }
+
+ rc = unixMapfile(tls, pFile, nByte)
+ return rc
+ }
+
+ return SQLITE_OK
+}
+
+func unixModeBit(tls *libc.TLS, pFile uintptr, mask uint8, pArg uintptr) {
+ if *(*int32)(unsafe.Pointer(pArg)) < 0 {
+ *(*int32)(unsafe.Pointer(pArg)) = libc.Bool32(int32((*UnixFile)(unsafe.Pointer(pFile)).FctrlFlags)&int32(mask) != 0)
+ } else if *(*int32)(unsafe.Pointer(pArg)) == 0 {
+ *(*uint16)(unsafe.Pointer(pFile + 30)) &= uint16(^int32(mask))
+ } else {
+ *(*uint16)(unsafe.Pointer(pFile + 30)) |= uint16(int32(mask))
+ }
+}
+
+func unixFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pFile uintptr = id
+ switch op {
+ case SQLITE_FCNTL_LOCKSTATE:
+ {
+ *(*int32)(unsafe.Pointer(pArg)) = int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock)
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_LAST_ERRNO:
+ {
+ *(*int32)(unsafe.Pointer(pArg)) = (*UnixFile)(unsafe.Pointer(pFile)).FlastErrno
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_CHUNK_SIZE:
+ {
+ (*UnixFile)(unsafe.Pointer(pFile)).FszChunk = *(*int32)(unsafe.Pointer(pArg))
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_SIZE_HINT:
+ {
+ var rc int32
+
+ rc = fcntlSizeHint(tls, pFile, *(*I64)(unsafe.Pointer(pArg)))
+
+ return rc
+
+ }
+ case SQLITE_FCNTL_PERSIST_WAL:
+ {
+ unixModeBit(tls, pFile, uint8(UNIXFILE_PERSIST_WAL), pArg)
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_POWERSAFE_OVERWRITE:
+ {
+ unixModeBit(tls, pFile, uint8(UNIXFILE_PSOW), pArg)
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_VFSNAME:
+ {
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, (*Sqlite3_vfs)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpVfs)).FzName))
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_TEMPFILENAME:
+ {
+ var zTFile uintptr = Xsqlite3_malloc64(tls, uint64((*Sqlite3_vfs)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpVfs)).FmxPathname))
+ if zTFile != 0 {
+ unixGetTempname(tls, (*Sqlite3_vfs)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpVfs)).FmxPathname, zTFile)
+ *(*uintptr)(unsafe.Pointer(pArg)) = zTFile
+ }
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_HAS_MOVED:
+ {
+ *(*int32)(unsafe.Pointer(pArg)) = fileHasMoved(tls, pFile)
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_MMAP_SIZE:
+ {
+ var newLimit I64 = *(*I64)(unsafe.Pointer(pArg))
+ var rc int32 = SQLITE_OK
+ if newLimit > Xsqlite3Config.FmxMmap {
+ newLimit = Xsqlite3Config.FmxMmap
+ }
+
+ if newLimit > int64(0) && uint64(unsafe.Sizeof(Size_t(0))) < uint64(8) {
+ newLimit = newLimit & int64(0x7FFFFFFF)
+ }
+
+ *(*I64)(unsafe.Pointer(pArg)) = (*UnixFile)(unsafe.Pointer(pFile)).FmmapSizeMax
+ if newLimit >= int64(0) && newLimit != (*UnixFile)(unsafe.Pointer(pFile)).FmmapSizeMax && (*UnixFile)(unsafe.Pointer(pFile)).FnFetchOut == 0 {
+ (*UnixFile)(unsafe.Pointer(pFile)).FmmapSizeMax = newLimit
+ if (*UnixFile)(unsafe.Pointer(pFile)).FmmapSize > int64(0) {
+ unixUnmapfile(tls, pFile)
+ rc = unixMapfile(tls, pFile, int64(-1))
+ }
+ }
+ return rc
+
+ }
+ case SQLITE_FCNTL_SET_LOCKPROXYFILE:
+ fallthrough
+ case SQLITE_FCNTL_GET_LOCKPROXYFILE:
+ {
+ return proxyFileControl(tls, id, op, pArg)
+
+ }
+
+ case SQLITE_FCNTL_EXTERNAL_READER:
+ {
+ return unixFcntlExternalReader(tls, id, pArg)
+
+ }
+ }
+ return SQLITE_NOTFOUND
+}
+
+func setDeviceCharacteristics(tls *libc.TLS, pFd uintptr) {
+ if (*UnixFile)(unsafe.Pointer(pFd)).FsectorSize == 0 {
+ if int32((*UnixFile)(unsafe.Pointer(pFd)).FctrlFlags)&UNIXFILE_PSOW != 0 {
+ *(*int32)(unsafe.Pointer(pFd + 116)) |= SQLITE_IOCAP_POWERSAFE_OVERWRITE
+ }
+
+ (*UnixFile)(unsafe.Pointer(pFd)).FsectorSize = SQLITE_DEFAULT_SECTOR_SIZE
+ }
+}
+
+func unixSectorSize(tls *libc.TLS, id uintptr) int32 {
+ var pFd uintptr = id
+ setDeviceCharacteristics(tls, pFd)
+ return (*UnixFile)(unsafe.Pointer(pFd)).FsectorSize
+}
+
+func unixDeviceCharacteristics(tls *libc.TLS, id uintptr) int32 {
+ var pFd uintptr = id
+ setDeviceCharacteristics(tls, pFd)
+ return (*UnixFile)(unsafe.Pointer(pFd)).FdeviceCharacteristics
+}
+
+func unixGetpagesize(tls *libc.TLS) int32 {
+ return int32(libc.Xsysconf(tls, X_SC_PAGESIZE))
+}
+
+func unixFcntlExternalReader(tls *libc.TLS, pFile uintptr, piOut uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32 = SQLITE_OK
+ *(*int32)(unsafe.Pointer(piOut)) = 0
+ if (*UnixFile)(unsafe.Pointer(pFile)).FpShm != 0 {
+ var pShmNode uintptr = (*UnixShm)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpShm)).FpShmNode
+
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(flock{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_type = int16(F_WRLCK)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_start = int64((22+SQLITE_SHM_NLOCK)*4 + 3)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_len = int64(SQLITE_SHM_NLOCK - 3)
+
+ Xsqlite3_mutex_enter(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, F_GETLK, libc.VaList(bp, bp+8)) < 0 {
+ rc = SQLITE_IOERR | int32(15)<<8
+ } else {
+ *(*int32)(unsafe.Pointer(piOut)) = libc.Bool32(int32((*flock)(unsafe.Pointer(bp+8)).Fl_type) != F_UNLCK)
+ }
+ Xsqlite3_mutex_leave(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ }
+
+ return rc
+}
+
+func unixShmSystemLock(tls *libc.TLS, pFile uintptr, lockType int32, ofst int32, n int32) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pShmNode uintptr
+
+ var rc int32 = SQLITE_OK
+
+ pShmNode = (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpInode)).FpShmNode
+
+ if (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm >= 0 {
+ var res int32
+
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_type = int16(lockType)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_start = Off_t(ofst)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_len = Off_t(n)
+ res = (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, F_SETLK, libc.VaList(bp, bp+8))
+ if res == -1 {
+ rc = SQLITE_BUSY
+ }
+ }
+
+ return rc
+}
+
+func unixShmRegionPerMap(tls *libc.TLS) int32 {
+ var shmsz int32 = 32 * 1024
+ var pgsz int32 = (*(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 25*24 + 8)))(tls)
+
+ if pgsz < shmsz {
+ return 1
+ }
+ return pgsz / shmsz
+}
+
+func unixShmPurge(tls *libc.TLS, pFd uintptr) {
+ var p uintptr = (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFd)).FpInode)).FpShmNode
+
+ if p != 0 && (*UnixShmNode)(unsafe.Pointer(p)).FnRef == 0 {
+ var nShmPerMap int32 = unixShmRegionPerMap(tls)
+ var i int32
+
+ Xsqlite3_mutex_free(tls, (*UnixShmNode)(unsafe.Pointer(p)).FpShmMutex)
+ for i = 0; i < int32((*UnixShmNode)(unsafe.Pointer(p)).FnRegion); i = i + nShmPerMap {
+ if (*UnixShmNode)(unsafe.Pointer(p)).FhShm >= 0 {
+ (*(*func(*libc.TLS, uintptr, Size_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 23*24 + 8)))(tls, *(*uintptr)(unsafe.Pointer((*UnixShmNode)(unsafe.Pointer(p)).FapRegion + uintptr(i)*8)), uint64((*UnixShmNode)(unsafe.Pointer(p)).FszRegion))
+ } else {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*UnixShmNode)(unsafe.Pointer(p)).FapRegion + uintptr(i)*8)))
+ }
+ }
+ Xsqlite3_free(tls, (*UnixShmNode)(unsafe.Pointer(p)).FapRegion)
+ if (*UnixShmNode)(unsafe.Pointer(p)).FhShm >= 0 {
+ robust_close(tls, pFd, (*UnixShmNode)(unsafe.Pointer(p)).FhShm, 41442)
+ (*UnixShmNode)(unsafe.Pointer(p)).FhShm = -1
+ }
+ (*UnixInodeInfo)(unsafe.Pointer((*UnixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0)
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32 = SQLITE_OK
+
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_start = int64((22+SQLITE_SHM_NLOCK)*4 + SQLITE_SHM_NLOCK)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_len = int64(1)
+ (*flock)(unsafe.Pointer(bp + 8)).Fl_type = int16(F_WRLCK)
+ if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, F_GETLK, libc.VaList(bp, bp+8)) != 0 {
+ rc = SQLITE_IOERR | int32(15)<<8
+ } else if int32((*flock)(unsafe.Pointer(bp+8)).Fl_type) == F_UNLCK {
+ if (*UnixShmNode)(unsafe.Pointer(pShmNode)).FisReadonly != 0 {
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FisUnlocked = U8(1)
+ rc = SQLITE_READONLY | int32(5)<<8
+ } else {
+ rc = unixShmSystemLock(tls, pDbFd, F_WRLCK, (22+SQLITE_SHM_NLOCK)*4+SQLITE_SHM_NLOCK, 1)
+
+ if rc == SQLITE_OK && robust_ftruncate(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 {
+ rc = unixLogErrorAtLine(tls, SQLITE_IOERR|int32(18)<<8, ts+3290, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 41499)
+ }
+ }
+ } else if int32((*flock)(unsafe.Pointer(bp+8)).Fl_type) == F_WRLCK {
+ rc = SQLITE_BUSY
+ }
+
+ if rc == SQLITE_OK {
+ rc = unixShmSystemLock(tls, pDbFd, F_RDLCK, (22+SQLITE_SHM_NLOCK)*4+SQLITE_SHM_NLOCK, 1)
+ }
+ return rc
+}
+
+func unixOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) int32 {
+ bp := tls.Alloc(152)
+ defer tls.Free(152)
+
+ var p uintptr
+ var pShmNode uintptr
+ var rc int32
+ var pInode uintptr
+ var zShm uintptr
+ var nShmFilename int32
+
+ var zBasePath uintptr
+ p = uintptr(0)
+ rc = SQLITE_OK
+
+ p = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(unixShm{})))
+ if !(p == uintptr(0)) {
+ goto __1
+ }
+ return SQLITE_NOMEM
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(unixShm{})), libc.X__builtin_object_size(tls, p, 0))
+
+ unixEnterMutex(tls)
+ pInode = (*UnixFile)(unsafe.Pointer(pDbFd)).FpInode
+ pShmNode = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpShmNode
+ if !(pShmNode == uintptr(0)) {
+ goto __2
+ }
+ zBasePath = (*UnixFile)(unsafe.Pointer(pDbFd)).FzPath
+
+ if !((*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pDbFd)).Fh, bp+8) != 0) {
+ goto __3
+ }
+ rc = SQLITE_IOERR | int32(7)<<8
+ goto shm_open_err
+__3:
+ ;
+ nShmFilename = 6 + int32(libc.Xstrlen(tls, zBasePath))
+ pShmNode = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(unixShmNode{}))+uint64(nShmFilename))
+ if !(pShmNode == uintptr(0)) {
+ goto __4
+ }
+ rc = SQLITE_NOMEM
+ goto shm_open_err
+__4:
+ ;
+ libc.X__builtin___memset_chk(tls, pShmNode, 0, uint64(unsafe.Sizeof(unixShmNode{}))+uint64(nShmFilename), libc.X__builtin_object_size(tls, pShmNode, 0))
+ zShm = libc.AssignPtrUintptr(pShmNode+16, pShmNode+1*96)
+ Xsqlite3_snprintf(tls, nShmFilename, zShm, ts+3672, libc.VaList(bp, zBasePath))
+
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm = -1
+ (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pDbFd)).FpInode)).FpShmNode = pShmNode
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FpInode = (*UnixFile)(unsafe.Pointer(pDbFd)).FpInode
+ if !(Xsqlite3Config.FbCoreMutex != 0) {
+ goto __5
+ }
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex = Xsqlite3_mutex_alloc(tls, SQLITE_MUTEX_FAST)
+ if !((*unixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex == uintptr(0)) {
+ goto __6
+ }
+ rc = SQLITE_NOMEM
+ goto shm_open_err
+__6:
+ ;
+__5:
+ ;
+ if !(int32((*UnixInodeInfo)(unsafe.Pointer(pInode)).FbProcessLock) == 0) {
+ goto __7
+ }
+ if !(0 == Xsqlite3_uri_boolean(tls, (*UnixFile)(unsafe.Pointer(pDbFd)).FzPath, ts+3679, 0)) {
+ goto __8
+ }
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm = robust_open(tls, zShm, O_RDWR|O_CREAT|O_NOFOLLOW,
+ uint16(int32((*stat)(unsafe.Pointer(bp+8)).Fst_mode)&0777))
+__8:
+ ;
+ if !((*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm < 0) {
+ goto __9
+ }
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm = robust_open(tls, zShm, O_RDONLY|O_NOFOLLOW,
+ uint16(int32((*stat)(unsafe.Pointer(bp+8)).Fst_mode)&0777))
+ if !((*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm < 0) {
+ goto __10
+ }
+ rc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 41624), ts+3254, zShm, 41624)
+ goto shm_open_err
+__10:
+ ;
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FisReadonly = U8(1)
+__9:
+ ;
+ robustFchown(tls, (*unixShmNode)(unsafe.Pointer(pShmNode)).FhShm, (*stat)(unsafe.Pointer(bp+8)).Fst_uid, (*stat)(unsafe.Pointer(bp+8)).Fst_gid)
+
+ rc = unixLockSharedMemory(tls, pDbFd, pShmNode)
+ if !(rc != SQLITE_OK && rc != SQLITE_READONLY|int32(5)<<8) {
+ goto __11
+ }
+ goto shm_open_err
+__11:
+ ;
+__7:
+ ;
+__2:
+ ;
+ (*unixShm)(unsafe.Pointer(p)).FpShmNode = pShmNode
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FnRef++
+ (*UnixFile)(unsafe.Pointer(pDbFd)).FpShm = p
+ unixLeaveMutex(tls)
+
+ Xsqlite3_mutex_enter(tls, (*unixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ (*unixShm)(unsafe.Pointer(p)).FpNext = (*unixShmNode)(unsafe.Pointer(pShmNode)).FpFirst
+ (*unixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p
+ Xsqlite3_mutex_leave(tls, (*unixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ return rc
+
+shm_open_err:
+ unixShmPurge(tls, pDbFd)
+ Xsqlite3_free(tls, p)
+ unixLeaveMutex(tls)
+ return rc
+}
+
+func unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExtend int32, pp uintptr) int32 {
+ bp := tls.Alloc(148)
+ defer tls.Free(148)
+
+ var pDbFd uintptr
+ var p uintptr
+ var pShmNode uintptr
+ var rc int32
+ var nShmPerMap int32
+ var nReqRegion int32
+ var zFile uintptr
+
+ var iPg int32
+ var nMap int32
+ var i int32
+ var pMem uintptr
+ var apNew uintptr
+ var nByte int32
+
+ pDbFd = fd
+ rc = SQLITE_OK
+ nShmPerMap = unixShmRegionPerMap(tls)
+
+ if !((*UnixFile)(unsafe.Pointer(pDbFd)).FpShm == uintptr(0)) {
+ goto __1
+ }
+ rc = unixOpenSharedMemory(tls, pDbFd)
+ if !(rc != SQLITE_OK) {
+ goto __2
+ }
+ return rc
+__2:
+ ;
+__1:
+ ;
+ p = (*UnixFile)(unsafe.Pointer(pDbFd)).FpShm
+ pShmNode = (*UnixShm)(unsafe.Pointer(p)).FpShmNode
+ Xsqlite3_mutex_enter(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ if !((*UnixShmNode)(unsafe.Pointer(pShmNode)).FisUnlocked != 0) {
+ goto __3
+ }
+ rc = unixLockSharedMemory(tls, pDbFd, pShmNode)
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto shmpage_out
+__4:
+ ;
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FisUnlocked = U8(0)
+__3:
+ ;
+ nReqRegion = (iRegion + nShmPerMap) / nShmPerMap * nShmPerMap
+
+ if !(int32((*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRegion) < nReqRegion) {
+ goto __5
+ }
+ nByte = nReqRegion * szRegion
+
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FszRegion = szRegion
+
+ if !((*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm >= 0) {
+ goto __6
+ }
+
+ if !((*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, bp) != 0) {
+ goto __7
+ }
+ rc = SQLITE_IOERR | int32(19)<<8
+ goto shmpage_out
+__7:
+ ;
+ if !((*stat)(unsafe.Pointer(bp)).Fst_size < Off_t(nByte)) {
+ goto __8
+ }
+
+ if !!(bExtend != 0) {
+ goto __9
+ }
+ goto shmpage_out
+ goto __10
+__9:
+ ;
+ iPg = int32((*stat)(unsafe.Pointer(bp)).Fst_size / Off_t(pgsz))
+__11:
+ if !(iPg < nByte/pgsz) {
+ goto __13
+ }
+ *(*int32)(unsafe.Pointer(bp + 144)) = 0
+ if !(seekAndWriteFd(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*pgsz+pgsz-1), ts+1547, 1, bp+144) != 1) {
+ goto __14
+ }
+ zFile = (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename
+ rc = unixLogErrorAtLine(tls, SQLITE_IOERR|int32(19)<<8, ts+3325, zFile, 41768)
+ goto shmpage_out
+__14:
+ ;
+ goto __12
+__12:
+ iPg++
+ goto __11
+ goto __13
+__13:
+ ;
+__10:
+ ;
+__8:
+ ;
+__6:
+ ;
+ apNew = Xsqlite3_realloc(tls,
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FapRegion, int32(uint64(nReqRegion)*uint64(unsafe.Sizeof(uintptr(0)))))
+ if !!(apNew != 0) {
+ goto __15
+ }
+ rc = SQLITE_IOERR | int32(12)<<8
+ goto shmpage_out
+__15:
+ ;
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FapRegion = apNew
+__16:
+ if !(int32((*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRegion) < nReqRegion) {
+ goto __17
+ }
+ nMap = szRegion * nShmPerMap
+ if !((*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm >= 0) {
+ goto __18
+ }
+ pMem = (*(*func(*libc.TLS, uintptr, Size_t, int32, int32, int32, Off_t) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 22*24 + 8)))(tls, uintptr(0), uint64(nMap),
+ func() int32 {
+ if (*UnixShmNode)(unsafe.Pointer(pShmNode)).FisReadonly != 0 {
+ return PROT_READ
+ }
+ return PROT_READ | PROT_WRITE
+ }(),
+ MAP_SHARED, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm, I64(szRegion)*I64((*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRegion))
+ if !(pMem == libc.UintptrFromInt32(-1)) {
+ goto __20
+ }
+ rc = unixLogErrorAtLine(tls, SQLITE_IOERR|int32(21)<<8, ts+3412, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename, 41795)
+ goto shmpage_out
+__20:
+ ;
+ goto __19
+__18:
+ pMem = Xsqlite3_malloc64(tls, uint64(nMap))
+ if !(pMem == uintptr(0)) {
+ goto __21
+ }
+ rc = SQLITE_NOMEM
+ goto shmpage_out
+__21:
+ ;
+ libc.X__builtin___memset_chk(tls, pMem, 0, uint64(nMap), libc.X__builtin_object_size(tls, pMem, 0))
+__19:
+ ;
+ i = 0
+__22:
+ if !(i < nShmPerMap) {
+ goto __24
+ }
+ *(*uintptr)(unsafe.Pointer((*UnixShmNode)(unsafe.Pointer(pShmNode)).FapRegion + uintptr(int32((*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRegion)+i)*8)) = pMem + uintptr(szRegion*i)
+ goto __23
+__23:
+ i++
+ goto __22
+ goto __24
+__24:
+ ;
+ *(*U16)(unsafe.Pointer(pShmNode + 32)) += U16(nShmPerMap)
+ goto __16
+__17:
+ ;
+__5:
+ ;
+shmpage_out:
+ if !(int32((*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRegion) > iRegion) {
+ goto __25
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = *(*uintptr)(unsafe.Pointer((*UnixShmNode)(unsafe.Pointer(pShmNode)).FapRegion + uintptr(iRegion)*8))
+ goto __26
+__25:
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+__26:
+ ;
+ if !((*UnixShmNode)(unsafe.Pointer(pShmNode)).FisReadonly != 0 && rc == SQLITE_OK) {
+ goto __27
+ }
+ rc = SQLITE_READONLY
+__27:
+ ;
+ Xsqlite3_mutex_leave(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ return rc
+}
+
+var pgsz int32 = 4096
+
+func unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) int32 {
+ var pDbFd uintptr = fd
+ var p uintptr
+ var pShmNode uintptr
+ var rc int32 = SQLITE_OK
+ var mask U16
+ var aLock uintptr
+
+ p = (*UnixFile)(unsafe.Pointer(pDbFd)).FpShm
+ if p == uintptr(0) {
+ return SQLITE_IOERR | int32(20)<<8
+ }
+ pShmNode = (*UnixShm)(unsafe.Pointer(p)).FpShmNode
+ if pShmNode == uintptr(0) {
+ return SQLITE_IOERR | int32(20)<<8
+ }
+ aLock = pShmNode + 64
+
+ mask = U16(int32(1)<<(ofst+n) - int32(1)<<ofst)
+
+ Xsqlite3_mutex_enter(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+
+ if flags&SQLITE_SHM_UNLOCK != 0 {
+ if (int32((*UnixShm)(unsafe.Pointer(p)).FexclMask)|int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask))&int32(mask) != 0 {
+ var ii int32
+ var bUnlock int32 = 1
+
+ for ii = ofst; ii < ofst+n; ii++ {
+ if *(*int32)(unsafe.Pointer(aLock + uintptr(ii)*4)) > func() int32 {
+ if int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask)&(int32(1)<<ii) != 0 {
+ return 1
+ }
+ return 0
+ }() {
+ bUnlock = 0
+ }
+ }
+
+ if bUnlock != 0 {
+ rc = unixShmSystemLock(tls, pDbFd, F_UNLCK, ofst+(22+SQLITE_SHM_NLOCK)*4, n)
+ if rc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, aLock+uintptr(ofst)*4, 0, uint64(unsafe.Sizeof(int32(0)))*uint64(n), libc.X__builtin_object_size(tls, aLock+uintptr(ofst)*4, 0))
+ }
+ } else if int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask)&(int32(1)<<ofst) != 0 {
+ *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4))--
+ }
+
+ if rc == SQLITE_OK {
+ *(*U16)(unsafe.Pointer(p + 20)) &= U16(^int32(mask))
+ *(*U16)(unsafe.Pointer(p + 18)) &= U16(^int32(mask))
+ }
+ }
+ } else if flags&SQLITE_SHM_SHARED != 0 {
+ if int32((*UnixShm)(unsafe.Pointer(p)).FsharedMask)&int32(mask) == 0 {
+ if *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4)) < 0 {
+ rc = SQLITE_BUSY
+ } else if *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4)) == 0 {
+ rc = unixShmSystemLock(tls, pDbFd, F_RDLCK, ofst+(22+SQLITE_SHM_NLOCK)*4, n)
+ }
+
+ if rc == SQLITE_OK {
+ *(*U16)(unsafe.Pointer(p + 18)) |= U16(int32(mask))
+ *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4))++
+ }
+ }
+ } else {
+ var ii int32
+ for ii = ofst; ii < ofst+n; ii++ {
+ if int32((*UnixShm)(unsafe.Pointer(p)).FexclMask)&(int32(1)<<ii) == 0 && *(*int32)(unsafe.Pointer(aLock + uintptr(ii)*4)) != 0 {
+ rc = SQLITE_BUSY
+ break
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = unixShmSystemLock(tls, pDbFd, F_WRLCK, ofst+(22+SQLITE_SHM_NLOCK)*4, n)
+ if rc == SQLITE_OK {
+ *(*U16)(unsafe.Pointer(p + 20)) |= U16(int32(mask))
+ for ii = ofst; ii < ofst+n; ii++ {
+ *(*int32)(unsafe.Pointer(aLock + uintptr(ii)*4)) = -1
+ }
+ }
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+
+ return rc
+}
+
+func unixShmBarrier(tls *libc.TLS, fd uintptr) {
+ _ = fd
+
+ unixEnterMutex(tls)
+ unixLeaveMutex(tls)
+}
+
+func unixShmUnmap(tls *libc.TLS, fd uintptr, deleteFlag int32) int32 {
+ var p uintptr
+ var pShmNode uintptr
+ var pp uintptr
+ var pDbFd uintptr
+
+ pDbFd = fd
+ p = (*UnixFile)(unsafe.Pointer(pDbFd)).FpShm
+ if p == uintptr(0) {
+ return SQLITE_OK
+ }
+ pShmNode = (*UnixShm)(unsafe.Pointer(p)).FpShmNode
+
+ Xsqlite3_mutex_enter(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+ for pp = pShmNode + 56; *(*uintptr)(unsafe.Pointer(pp)) != p; pp = *(*uintptr)(unsafe.Pointer(pp)) + 8 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*UnixShm)(unsafe.Pointer(p)).FpNext
+
+ Xsqlite3_free(tls, p)
+ (*UnixFile)(unsafe.Pointer(pDbFd)).FpShm = uintptr(0)
+ Xsqlite3_mutex_leave(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex)
+
+ unixEnterMutex(tls)
+
+ (*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRef--
+ if (*UnixShmNode)(unsafe.Pointer(pShmNode)).FnRef == 0 {
+ if deleteFlag != 0 && (*UnixShmNode)(unsafe.Pointer(pShmNode)).FhShm >= 0 {
+ (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 16*24 + 8)))(tls, (*UnixShmNode)(unsafe.Pointer(pShmNode)).FzFilename)
+ }
+ unixShmPurge(tls, pDbFd)
+ }
+ unixLeaveMutex(tls)
+
+ return SQLITE_OK
+}
+
+func unixUnmapfile(tls *libc.TLS, pFd uintptr) {
+ if (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion != 0 {
+ (*(*func(*libc.TLS, uintptr, Size_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 23*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion, uint64((*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeActual))
+ (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion = uintptr(0)
+ (*UnixFile)(unsafe.Pointer(pFd)).FmmapSize = int64(0)
+ (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeActual = int64(0)
+ }
+}
+
+func unixRemapfile(tls *libc.TLS, pFd uintptr, nNew I64) {
+ var zErr uintptr = ts + 3412
+ var h int32 = (*UnixFile)(unsafe.Pointer(pFd)).Fh
+ var pOrig uintptr = (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion
+ var nOrig I64 = (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeActual
+ var pNew uintptr = uintptr(0)
+ var flags int32 = PROT_READ
+
+ if pOrig != 0 {
+ var szSyspage int32 = (*(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 25*24 + 8)))(tls)
+ var nReuse I64 = (*UnixFile)(unsafe.Pointer(pFd)).FmmapSize & Sqlite3_int64(^(szSyspage - 1))
+ var pReq uintptr = pOrig + uintptr(nReuse)
+
+ if nReuse != nOrig {
+ (*(*func(*libc.TLS, uintptr, Size_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 23*24 + 8)))(tls, pReq, uint64(nOrig-nReuse))
+ }
+
+ pNew = (*(*func(*libc.TLS, uintptr, Size_t, int32, int32, int32, Off_t) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 22*24 + 8)))(tls, pReq, uint64(nNew-nReuse), flags, MAP_SHARED, h, nReuse)
+ if pNew != libc.UintptrFromInt32(-1) {
+ if pNew != pReq {
+ (*(*func(*libc.TLS, uintptr, Size_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 23*24 + 8)))(tls, pNew, uint64(nNew-nReuse))
+ pNew = uintptr(0)
+ } else {
+ pNew = pOrig
+ }
+ }
+
+ if pNew == libc.UintptrFromInt32(-1) || pNew == uintptr(0) {
+ (*(*func(*libc.TLS, uintptr, Size_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 23*24 + 8)))(tls, pOrig, uint64(nReuse))
+ }
+ }
+
+ if pNew == uintptr(0) {
+ pNew = (*(*func(*libc.TLS, uintptr, Size_t, int32, int32, int32, Off_t) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 22*24 + 8)))(tls, uintptr(0), uint64(nNew), flags, MAP_SHARED, h, int64(0))
+ }
+
+ if pNew == libc.UintptrFromInt32(-1) {
+ pNew = uintptr(0)
+ nNew = int64(0)
+ unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*UnixFile)(unsafe.Pointer(pFd)).FzPath, 42169)
+
+ (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeMax = int64(0)
+ }
+ (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion = pNew
+ (*UnixFile)(unsafe.Pointer(pFd)).FmmapSize = libc.AssignPtrInt64(pFd+88, nNew)
+}
+
+func unixMapfile(tls *libc.TLS, pFd uintptr, nMap I64) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ if (*UnixFile)(unsafe.Pointer(pFd)).FnFetchOut > 0 {
+ return SQLITE_OK
+ }
+
+ if nMap < int64(0) {
+ if (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFd)).Fh, bp) != 0 {
+ return SQLITE_IOERR | int32(7)<<8
+ }
+ nMap = (*stat)(unsafe.Pointer(bp)).Fst_size
+ }
+ if nMap > (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeMax {
+ nMap = (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeMax
+ }
+
+ if nMap != (*UnixFile)(unsafe.Pointer(pFd)).FmmapSize {
+ unixRemapfile(tls, pFd, nMap)
+ }
+
+ return SQLITE_OK
+}
+
+func unixFetch(tls *libc.TLS, fd uintptr, iOff I64, nAmt int32, pp uintptr) int32 {
+ var pFd uintptr = fd
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+
+ if (*UnixFile)(unsafe.Pointer(pFd)).FmmapSizeMax > int64(0) {
+ if (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion == uintptr(0) {
+ var rc int32 = unixMapfile(tls, pFd, int64(-1))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ if (*UnixFile)(unsafe.Pointer(pFd)).FmmapSize >= iOff+I64(nAmt) {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*UnixFile)(unsafe.Pointer(pFd)).FpMapRegion + uintptr(iOff)
+ (*UnixFile)(unsafe.Pointer(pFd)).FnFetchOut++
+ }
+ }
+ return SQLITE_OK
+}
+
+func unixUnfetch(tls *libc.TLS, fd uintptr, iOff I64, p uintptr) int32 {
+ var pFd uintptr = fd
+ _ = iOff
+
+ if p != 0 {
+ (*UnixFile)(unsafe.Pointer(pFd)).FnFetchOut--
+ } else {
+ unixUnmapfile(tls, pFd)
+ }
+
+ return SQLITE_OK
+}
+
+var posixIoMethods = Sqlite3_io_methods{FiVersion: 3, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmMap: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func posixIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&posixIoMethods))
+}
+
+var posixIoFinder uintptr = 0
+var nolockIoMethods = Sqlite3_io_methods{FiVersion: 3, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func nolockIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&nolockIoMethods))
+}
+
+var nolockIoFinder uintptr = 0
+var dotlockIoMethods = Sqlite3_io_methods{FiVersion: 1, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func dotlockIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&dotlockIoMethods))
+}
+
+var dotlockIoFinder uintptr = 0
+
+var flockIoMethods = Sqlite3_io_methods{FiVersion: 1, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func flockIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&flockIoMethods))
+}
+
+var flockIoFinder uintptr = 0
+
+var afpIoMethods = Sqlite3_io_methods{FiVersion: 1, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func afpIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&afpIoMethods))
+}
+
+var afpIoFinder uintptr = 0
+var proxyIoMethods = Sqlite3_io_methods{FiVersion: 1, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func proxyIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&proxyIoMethods))
+}
+
+var proxyIoFinder uintptr = 0
+
+var nfsIoMethods = Sqlite3_io_methods{FiVersion: 1, FxClose: 0, FxRead: 0, FxWrite: 0, FxTruncate: 0, FxSync: 0, FxFileSize: 0, FxLock: 0, FxUnlock: 0, FxCheckReservedLock: 0, FxFileControl: 0, FxSectorSize: 0, FxDeviceCharacteristics: 0, FxShmLock: 0, FxShmBarrier: 0, FxShmUnmap: 0, FxFetch: 0, FxUnfetch: 0}
+
+func nfsIoFinderImpl(tls *libc.TLS, z uintptr, p uintptr) uintptr {
+ _ = z
+ _ = p
+ return uintptr(unsafe.Pointer(&nfsIoMethods))
+}
+
+var nfsIoFinder uintptr = 0
+
+func autolockIoFinderImpl(tls *libc.TLS, filePath uintptr, pNew uintptr) uintptr {
+ bp := tls.Alloc(2200)
+ defer tls.Free(2200)
+
+ var i int32
+
+ if !(filePath != 0) {
+ return uintptr(unsafe.Pointer(&nolockIoMethods))
+ }
+ if libc.Xstatfs(tls, filePath, bp+8) != -1 {
+ if (*statfs)(unsafe.Pointer(bp+8)).Ff_flags&Uint32_t(MNT_RDONLY) != 0 {
+ return uintptr(unsafe.Pointer(&nolockIoMethods))
+ }
+ for i = 0; aMap[i].FzFilesystem != 0; i++ {
+ if libc.Xstrcmp(tls, bp+8+72, aMap[i].FzFilesystem) == 0 {
+ return aMap[i].FpMethods
+ }
+ }
+ }
+
+ (*flock)(unsafe.Pointer(bp + 2176)).Fl_len = int64(1)
+ (*flock)(unsafe.Pointer(bp + 2176)).Fl_start = int64(0)
+ (*flock)(unsafe.Pointer(bp + 2176)).Fl_whence = int16(SEEK_SET)
+ (*flock)(unsafe.Pointer(bp + 2176)).Fl_type = int16(F_RDLCK)
+ if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 7*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pNew)).Fh, F_GETLK, libc.VaList(bp, bp+2176)) != -1 {
+ if libc.Xstrcmp(tls, bp+8+72, ts+3692) == 0 {
+ return uintptr(unsafe.Pointer(&nfsIoMethods))
+ } else {
+ return uintptr(unsafe.Pointer(&posixIoMethods))
+ }
+ } else {
+ return uintptr(unsafe.Pointer(&dotlockIoMethods))
+ }
+ return uintptr(0)
+}
+
+type Mapping = struct {
+ FzFilesystem uintptr
+ FpMethods uintptr
+}
+
+var aMap = [6]Mapping{
+ {FzFilesystem: ts + 3696, FpMethods: 0},
+ {FzFilesystem: ts + 3700, FpMethods: 0},
+ {FzFilesystem: ts + 3704, FpMethods: 0},
+ {FzFilesystem: ts + 3710, FpMethods: 0},
+ {FzFilesystem: ts + 3716, FpMethods: 0},
+ {},
+}
+var autolockIoFinder uintptr = 0
+
+// An abstract type for a pointer to an IO method finder function:
+type Finder_type = uintptr
+
+func fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilename uintptr, ctrlFlags int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pLockingStyle uintptr
+ var pNew uintptr = pId
+ var rc int32 = SQLITE_OK
+
+ (*UnixFile)(unsafe.Pointer(pNew)).Fh = h
+ (*UnixFile)(unsafe.Pointer(pNew)).FpVfs = pVfs
+ (*UnixFile)(unsafe.Pointer(pNew)).FzPath = zFilename
+ (*UnixFile)(unsafe.Pointer(pNew)).FctrlFlags = uint16(U8(ctrlFlags))
+ (*UnixFile)(unsafe.Pointer(pNew)).FmmapSizeMax = Xsqlite3Config.FszMmap
+ if Xsqlite3_uri_boolean(tls, func() uintptr {
+ if ctrlFlags&UNIXFILE_URI != 0 {
+ return zFilename
+ }
+ return uintptr(0)
+ }(),
+ ts+3723, SQLITE_POWERSAFE_OVERWRITE) != 0 {
+ *(*uint16)(unsafe.Pointer(pNew + 30)) |= uint16(UNIXFILE_PSOW)
+ }
+ if libc.Xstrcmp(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, ts+3728) == 0 {
+ *(*uint16)(unsafe.Pointer(pNew + 30)) |= uint16(UNIXFILE_EXCL)
+ }
+
+ if ctrlFlags&UNIXFILE_NOLOCK != 0 {
+ pLockingStyle = uintptr(unsafe.Pointer(&nolockIoMethods))
+ } else {
+ pLockingStyle = (*(**struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData}))).f(tls, zFilename, pNew)
+
+ (*UnixFile)(unsafe.Pointer(pNew)).FlockingContext = zFilename
+ }
+
+ if pLockingStyle == uintptr(unsafe.Pointer(&posixIoMethods)) ||
+ pLockingStyle == uintptr(unsafe.Pointer(&nfsIoMethods)) {
+ unixEnterMutex(tls)
+ rc = findInodeInfo(tls, pNew, pNew+16)
+ if rc != SQLITE_OK {
+ robust_close(tls, pNew, h, 42672)
+ h = -1
+ }
+ unixLeaveMutex(tls)
+ } else if pLockingStyle == uintptr(unsafe.Pointer(&afpIoMethods)) {
+ var pCtx uintptr
+ (*UnixFile)(unsafe.Pointer(pNew)).FlockingContext = libc.AssignUintptr(&pCtx, Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(AfpLockingContext{}))))
+ if pCtx == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ (*AfpLockingContext)(unsafe.Pointer(pCtx)).FdbPath = zFilename
+ (*AfpLockingContext)(unsafe.Pointer(pCtx)).Freserved = 0
+ libc.Xsrandomdev(tls)
+ unixEnterMutex(tls)
+ rc = findInodeInfo(tls, pNew, pNew+16)
+ if rc != SQLITE_OK {
+ Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(pNew)).FlockingContext)
+ robust_close(tls, pNew, h, 42698)
+ h = -1
+ }
+ unixLeaveMutex(tls)
+ }
+ } else if pLockingStyle == uintptr(unsafe.Pointer(&dotlockIoMethods)) {
+ var zLockFile uintptr
+ var nFilename int32
+
+ nFilename = int32(libc.Xstrlen(tls, zFilename)) + 6
+ zLockFile = Xsqlite3_malloc64(tls, uint64(nFilename))
+ if zLockFile == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ Xsqlite3_snprintf(tls, nFilename, zLockFile, ts+3738, libc.VaList(bp, zFilename))
+ }
+ (*UnixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile
+ }
+
+ storeLastErrno(tls, pNew, 0)
+ if rc != SQLITE_OK {
+ if h >= 0 {
+ robust_close(tls, pNew, h, 42757)
+ }
+ } else {
+ (*Sqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle
+
+ verifyDbFile(tls, pNew)
+ }
+ return rc
+}
+
+var azTempDirs = [6]uintptr{
+ uintptr(0),
+ uintptr(0),
+ ts + 3746,
+ ts + 3755,
+ ts + 3764,
+ ts + 1560,
+}
+
+func unixTempFileInit(tls *libc.TLS) {
+ azTempDirs[0] = libc.Xgetenv(tls, ts+3769)
+ azTempDirs[1] = libc.Xgetenv(tls, ts+3783)
+}
+
+func unixTempFileDir(tls *libc.TLS) uintptr {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var i uint32 = uint32(0)
+
+ var zDir uintptr = Xsqlite3_temp_directory
+
+ for 1 != 0 {
+ if zDir != uintptr(0) &&
+ (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, zDir, bp) == 0 &&
+ int32((*stat)(unsafe.Pointer(bp)).Fst_mode)&S_IFMT == S_IFDIR &&
+ (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 2*24 + 8)))(tls, zDir, 03) == 0 {
+ return zDir
+ }
+ if uint64(i) >= uint64(unsafe.Sizeof(azTempDirs))/uint64(unsafe.Sizeof(uintptr(0))) {
+ break
+ }
+ zDir = azTempDirs[libc.PostIncUint32(&i, 1)]
+ }
+ return uintptr(0)
+}
+
+func unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var zDir uintptr
+ var iLimit int32 = 0
+ var rc int32 = SQLITE_OK
+
+ *(*int8)(unsafe.Pointer(zBuf)) = int8(0)
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1))
+ zDir = unixTempFileDir(tls)
+ if zDir == uintptr(0) {
+ rc = SQLITE_IOERR | int32(25)<<8
+ } else {
+ for __ccgo := true; __ccgo; __ccgo = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 2*24 + 8)))(tls, zBuf, 0) == 0 {
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U64(0))), bp+24)
+
+ *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-2))) = int8(0)
+ Xsqlite3_snprintf(tls, nBuf, zBuf, ts+3790,
+ libc.VaList(bp, zDir, *(*U64)(unsafe.Pointer(bp + 24)), 0))
+ if int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-2)))) != 0 || libc.PostIncInt32(&iLimit, 1) > 10 {
+ rc = SQLITE_ERROR
+ break
+ }
+ }
+ }
+ Xsqlite3_mutex_leave(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1))
+ return rc
+}
+
+func findReusableFd(tls *libc.TLS, zPath uintptr, flags int32) uintptr {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var pUnused uintptr = uintptr(0)
+
+ unixEnterMutex(tls)
+
+ if inodeList != uintptr(0) && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, zPath, bp) {
+ var pInode uintptr
+
+ pInode = inodeList
+ for pInode != 0 && ((*UnixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fdev != (*stat)(unsafe.Pointer(bp)).Fst_dev ||
+ (*UnixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fino != (*stat)(unsafe.Pointer(bp)).Fst_ino) {
+ pInode = (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpNext
+ }
+ if pInode != 0 {
+ var pp uintptr
+
+ Xsqlite3_mutex_enter(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ flags = flags & (SQLITE_OPEN_READONLY | SQLITE_OPEN_READWRITE)
+ for pp = pInode + 40; *(*uintptr)(unsafe.Pointer(pp)) != 0 && (*UnixUnusedFd)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fflags != flags; pp = *(*uintptr)(unsafe.Pointer(pp)) + 8 {
+ }
+ pUnused = *(*uintptr)(unsafe.Pointer(pp))
+ if pUnused != 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*UnixUnusedFd)(unsafe.Pointer(pUnused)).FpNext
+ }
+ Xsqlite3_mutex_leave(tls, (*UnixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex)
+ }
+ }
+ unixLeaveMutex(tls)
+ return pUnused
+}
+
+func getFileMode(tls *libc.TLS, zFile uintptr, pMode uintptr, pUid uintptr, pGid uintptr) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var rc int32 = SQLITE_OK
+ if 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, zFile, bp) {
+ *(*Mode_t)(unsafe.Pointer(pMode)) = Mode_t(int32((*stat)(unsafe.Pointer(bp)).Fst_mode) & 0777)
+ *(*Uid_t)(unsafe.Pointer(pUid)) = (*stat)(unsafe.Pointer(bp)).Fst_uid
+ *(*Gid_t)(unsafe.Pointer(pGid)) = (*stat)(unsafe.Pointer(bp)).Fst_gid
+ } else {
+ rc = SQLITE_IOERR | int32(7)<<8
+ }
+ return rc
+}
+
+func findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintptr, pUid uintptr, pGid uintptr) int32 {
+ bp := tls.Alloc(513)
+ defer tls.Free(513)
+
+ var rc int32 = SQLITE_OK
+ *(*Mode_t)(unsafe.Pointer(pMode)) = Mode_t(0)
+ *(*Uid_t)(unsafe.Pointer(pUid)) = Uid_t(0)
+ *(*Gid_t)(unsafe.Pointer(pGid)) = Gid_t(0)
+ if flags&(SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) != 0 {
+ var nDb int32
+
+ nDb = Xsqlite3Strlen30(tls, zPath) - 1
+ for nDb > 0 && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nDb)))) != '.' {
+ if int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nDb)))) == '-' {
+ libc.X__builtin___memcpy_chk(tls, bp, zPath, uint64(nDb), libc.X__builtin_object_size(tls, bp, 0))
+ *(*int8)(unsafe.Pointer(bp + uintptr(nDb))) = int8(0)
+ rc = getFileMode(tls, bp, pMode, pUid, pGid)
+ break
+ }
+ nDb--
+ }
+ } else if flags&SQLITE_OPEN_DELETEONCLOSE != 0 {
+ *(*Mode_t)(unsafe.Pointer(pMode)) = Mode_t(0600)
+ } else if flags&SQLITE_OPEN_URI != 0 {
+ var z uintptr = Xsqlite3_uri_parameter(tls, zPath, ts+3807)
+ if z != 0 {
+ rc = getFileMode(tls, z, pMode, pUid, pGid)
+ }
+ }
+ return rc
+}
+
+func unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags int32, pOutFlags uintptr) int32 {
+ bp := tls.Alloc(2696)
+ defer tls.Free(2696)
+
+ var p uintptr
+ var fd int32
+ var openFlags int32
+ var eType int32
+ var noLock int32
+ var rc int32
+ var ctrlFlags int32
+
+ var isExclusive int32
+ var isDelete int32
+ var isCreate int32
+ var isReadonly int32
+ var isReadWrite int32
+ var isAutoProxy int32
+
+ var isNewJrnl int32
+
+ var zName uintptr
+ var pUnused uintptr
+ var rc2 int32
+
+ var envforce uintptr
+ var useProxy int32
+ p = pFile
+ fd = -1
+ openFlags = 0
+ eType = flags & 0x0FFF00
+ rc = SQLITE_OK
+ ctrlFlags = 0
+ isExclusive = flags & SQLITE_OPEN_EXCLUSIVE
+ isDelete = flags & SQLITE_OPEN_DELETEONCLOSE
+ isCreate = flags & SQLITE_OPEN_CREATE
+ isReadonly = flags & SQLITE_OPEN_READONLY
+ isReadWrite = flags & SQLITE_OPEN_READWRITE
+ isAutoProxy = flags & SQLITE_OPEN_AUTOPROXY
+ isNewJrnl = libc.Bool32(isCreate != 0 && (eType == SQLITE_OPEN_SUPER_JOURNAL ||
+ eType == SQLITE_OPEN_MAIN_JOURNAL ||
+ eType == SQLITE_OPEN_WAL))
+ zName = zPath
+
+ if !(libc.AtomicLoadInt32(&randomnessPid) != libc.Xgetpid(tls)) {
+ goto __1
+ }
+ libc.AtomicStoreInt32(&randomnessPid, libc.Xgetpid(tls))
+ Xsqlite3_randomness(tls, 0, uintptr(0))
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(UnixFile{})), libc.X__builtin_object_size(tls, p, 0))
+
+ if !(eType == SQLITE_OPEN_MAIN_DB) {
+ goto __2
+ }
+ pUnused = findReusableFd(tls, zName, flags)
+ if !(pUnused != 0) {
+ goto __4
+ }
+ fd = (*UnixUnusedFd)(unsafe.Pointer(pUnused)).Ffd
+ goto __5
+__4:
+ pUnused = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(UnixUnusedFd{})))
+ if !!(pUnused != 0) {
+ goto __6
+ }
+ return SQLITE_NOMEM
+__6:
+ ;
+__5:
+ ;
+ (*UnixFile)(unsafe.Pointer(p)).FpPreallocatedUnused = pUnused
+
+ goto __3
+__2:
+ if !!(zName != 0) {
+ goto __7
+ }
+
+ rc = unixGetTempname(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname, bp)
+ if !(rc != SQLITE_OK) {
+ goto __8
+ }
+ return rc
+__8:
+ ;
+ zName = bp
+
+__7:
+ ;
+__3:
+ ;
+ if !(isReadonly != 0) {
+ goto __9
+ }
+ openFlags = openFlags | O_RDONLY
+__9:
+ ;
+ if !(isReadWrite != 0) {
+ goto __10
+ }
+ openFlags = openFlags | O_RDWR
+__10:
+ ;
+ if !(isCreate != 0) {
+ goto __11
+ }
+ openFlags = openFlags | O_CREAT
+__11:
+ ;
+ if !(isExclusive != 0) {
+ goto __12
+ }
+ openFlags = openFlags | (O_EXCL | O_NOFOLLOW)
+__12:
+ ;
+ openFlags = openFlags | (O_LARGEFILE | O_BINARY | O_NOFOLLOW)
+
+ if !(fd < 0) {
+ goto __13
+ }
+ rc = findCreateFileMode(tls, zName, flags, bp+514, bp+516, bp+520)
+ if !(rc != SQLITE_OK) {
+ goto __14
+ }
+
+ return rc
+__14:
+ ;
+ fd = robust_open(tls, zName, openFlags, *(*Mode_t)(unsafe.Pointer(bp + 514)))
+
+ if !(fd < 0) {
+ goto __15
+ }
+ if !(isNewJrnl != 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EACCES && (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 2*24 + 8)))(tls, zName, F_OK) != 0) {
+ goto __16
+ }
+
+ rc = SQLITE_READONLY | int32(6)<<8
+ goto __17
+__16:
+ if !(*(*int32)(unsafe.Pointer(libc.X__error(tls))) != EISDIR && isReadWrite != 0) {
+ goto __18
+ }
+
+ flags = flags & libc.CplInt32(SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE)
+ openFlags = openFlags & libc.CplInt32(O_RDWR|O_CREAT)
+ flags = flags | SQLITE_OPEN_READONLY
+ openFlags = openFlags | O_RDONLY
+ isReadonly = 1
+ fd = robust_open(tls, zName, openFlags, *(*Mode_t)(unsafe.Pointer(bp + 514)))
+__18:
+ ;
+__17:
+ ;
+__15:
+ ;
+ if !(fd < 0) {
+ goto __19
+ }
+ rc2 = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 43198), ts+3254, zName, 43198)
+ if !(rc == SQLITE_OK) {
+ goto __20
+ }
+ rc = rc2
+__20:
+ ;
+ goto open_finished
+__19:
+ ;
+ if !(*(*Mode_t)(unsafe.Pointer(bp + 514)) != 0 && flags&(SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) != 0) {
+ goto __21
+ }
+ robustFchown(tls, fd, *(*Uid_t)(unsafe.Pointer(bp + 516)), *(*Gid_t)(unsafe.Pointer(bp + 520)))
+__21:
+ ;
+__13:
+ ;
+ if !(pOutFlags != 0) {
+ goto __22
+ }
+ *(*int32)(unsafe.Pointer(pOutFlags)) = flags
+__22:
+ ;
+ if !((*UnixFile)(unsafe.Pointer(p)).FpPreallocatedUnused != 0) {
+ goto __23
+ }
+ (*UnixUnusedFd)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(p)).FpPreallocatedUnused)).Ffd = fd
+ (*UnixUnusedFd)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(p)).FpPreallocatedUnused)).Fflags = flags & (SQLITE_OPEN_READONLY | SQLITE_OPEN_READWRITE)
+__23:
+ ;
+ if !(isDelete != 0) {
+ goto __24
+ }
+ (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 16*24 + 8)))(tls, zName)
+ goto __25
+__24:
+ (*UnixFile)(unsafe.Pointer(p)).FopenFlags = openFlags
+__25:
+ ;
+ if !(libc.Xfstatfs(tls, fd, bp+528) == -1) {
+ goto __26
+ }
+ storeLastErrno(tls, p, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ robust_close(tls, p, fd, 43252)
+ return SQLITE_IOERR | int32(13)<<8
+__26:
+ ;
+ if !(0 == libc.Xstrncmp(tls, ts+3814, bp+528+72, uint64(5))) {
+ goto __27
+ }
+ *(*uint32)(unsafe.Pointer(pFile + 124)) |= uint32(SQLITE_FSFLAGS_IS_MSDOS)
+__27:
+ ;
+ if !(0 == libc.Xstrncmp(tls, ts+3820, bp+528+72, uint64(5))) {
+ goto __28
+ }
+ *(*uint32)(unsafe.Pointer(pFile + 124)) |= uint32(SQLITE_FSFLAGS_IS_MSDOS)
+__28:
+ ;
+ if !(isDelete != 0) {
+ goto __29
+ }
+ ctrlFlags = ctrlFlags | UNIXFILE_DELETE
+__29:
+ ;
+ if !(isReadonly != 0) {
+ goto __30
+ }
+ ctrlFlags = ctrlFlags | UNIXFILE_RDONLY
+__30:
+ ;
+ noLock = libc.Bool32(eType != SQLITE_OPEN_MAIN_DB)
+ if !(noLock != 0) {
+ goto __31
+ }
+ ctrlFlags = ctrlFlags | UNIXFILE_NOLOCK
+__31:
+ ;
+ if !(isNewJrnl != 0) {
+ goto __32
+ }
+ ctrlFlags = ctrlFlags | UNIXFILE_DIRSYNC
+__32:
+ ;
+ if !(flags&SQLITE_OPEN_URI != 0) {
+ goto __33
+ }
+ ctrlFlags = ctrlFlags | UNIXFILE_URI
+__33:
+ ;
+ if !(isAutoProxy != 0 && zPath != uintptr(0) && !(noLock != 0) && (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxOpen != 0) {
+ goto __34
+ }
+ envforce = libc.Xgetenv(tls, ts+3826)
+ useProxy = 0
+
+ if !(envforce != uintptr(0)) {
+ goto __35
+ }
+ useProxy = libc.Bool32(libc.Xatoi(tls, envforce) > 0)
+ goto __36
+__35:
+ useProxy = libc.BoolInt32(!((*statfs)(unsafe.Pointer(bp+528)).Ff_flags&Uint32_t(MNT_LOCAL) != 0))
+__36:
+ ;
+ if !(useProxy != 0) {
+ goto __37
+ }
+ rc = fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags)
+ if !(rc == SQLITE_OK) {
+ goto __38
+ }
+ rc = proxyTransformUnixFile(tls, pFile, ts+3853)
+ if !(rc != SQLITE_OK) {
+ goto __39
+ }
+
+ unixClose(tls, pFile)
+ return rc
+__39:
+ ;
+__38:
+ ;
+ goto open_finished
+__37:
+ ;
+__34:
+ ;
+ rc = fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags)
+
+open_finished:
+ if !(rc != SQLITE_OK) {
+ goto __40
+ }
+ Xsqlite3_free(tls, (*UnixFile)(unsafe.Pointer(p)).FpPreallocatedUnused)
+__40:
+ ;
+ return rc
+}
+
+func unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+ _ = NotUsed
+
+ if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 16*24 + 8)))(tls, zPath) == -1 {
+ if *(*int32)(unsafe.Pointer(libc.X__error(tls))) == ENOENT {
+ rc = SQLITE_IOERR | int32(23)<<8
+ } else {
+ rc = unixLogErrorAtLine(tls, SQLITE_IOERR|int32(10)<<8, ts+3364, zPath, 43337)
+ }
+ return rc
+ }
+ if dirSync&1 != 0 {
+ rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 17*24 + 8)))(tls, zPath, bp)
+ if rc == SQLITE_OK {
+ if full_fsync(tls, *(*int32)(unsafe.Pointer(bp)), 0, 0) != 0 {
+ rc = unixLogErrorAtLine(tls, SQLITE_IOERR|int32(5)<<8, ts+3860, zPath, 43347)
+ }
+ robust_close(tls, uintptr(0), *(*int32)(unsafe.Pointer(bp)), 43349)
+ } else {
+ rc = SQLITE_OK
+ }
+ }
+ return rc
+}
+
+func unixAccess(tls *libc.TLS, NotUsed uintptr, zPath uintptr, flags int32, pResOut uintptr) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ _ = NotUsed
+
+ if flags == SQLITE_ACCESS_EXISTS {
+ *(*int32)(unsafe.Pointer(pResOut)) = libc.Bool32(0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, zPath, bp) && (!(int32((*stat)(unsafe.Pointer(bp)).Fst_mode)&S_IFMT == S_IFREG) || (*stat)(unsafe.Pointer(bp)).Fst_size > int64(0)))
+ } else {
+ *(*int32)(unsafe.Pointer(pResOut)) = libc.Bool32((*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 2*24 + 8)))(tls, zPath, int32(1)<<1|int32(1)<<2) == 0)
+ }
+ return SQLITE_OK
+}
+
+// A pathname under construction
+type DbPath1 = struct {
+ Frc int32
+ FnSymlink int32
+ FzOut uintptr
+ FnOut int32
+ FnUsed int32
+}
+
+// A pathname under construction
+type DbPath = DbPath1
+
+func appendOnePathElement(tls *libc.TLS, pPath uintptr, zName uintptr, nName int32) {
+ bp := tls.Alloc(1170)
+ defer tls.Free(1170)
+
+ if int32(*(*int8)(unsafe.Pointer(zName))) == '.' {
+ if nName == 1 {
+ return
+ }
+ if int32(*(*int8)(unsafe.Pointer(zName + 1))) == '.' && nName == 2 {
+ if (*DbPath)(unsafe.Pointer(pPath)).FnUsed > 1 {
+ for int32(*(*int8)(unsafe.Pointer((*DbPath)(unsafe.Pointer(pPath)).FzOut + uintptr(libc.PreDecInt32(&(*DbPath)(unsafe.Pointer(pPath)).FnUsed, 1))))) != '/' {
+ }
+ }
+ return
+ }
+ }
+ if (*DbPath)(unsafe.Pointer(pPath)).FnUsed+nName+2 >= (*DbPath)(unsafe.Pointer(pPath)).FnOut {
+ (*DbPath)(unsafe.Pointer(pPath)).Frc = SQLITE_ERROR
+ return
+ }
+ *(*int8)(unsafe.Pointer((*DbPath)(unsafe.Pointer(pPath)).FzOut + uintptr(libc.PostIncInt32(&(*DbPath)(unsafe.Pointer(pPath)).FnUsed, 1)))) = int8('/')
+ libc.X__builtin___memcpy_chk(tls, (*DbPath)(unsafe.Pointer(pPath)).FzOut+uintptr((*DbPath)(unsafe.Pointer(pPath)).FnUsed), zName, uint64(nName), libc.X__builtin_object_size(tls, (*DbPath)(unsafe.Pointer(pPath)).FzOut+uintptr((*DbPath)(unsafe.Pointer(pPath)).FnUsed), 0))
+ *(*int32)(unsafe.Pointer(pPath + 20)) += nName
+ if (*DbPath)(unsafe.Pointer(pPath)).Frc == SQLITE_OK {
+ var zIn uintptr
+
+ *(*int8)(unsafe.Pointer((*DbPath)(unsafe.Pointer(pPath)).FzOut + uintptr((*DbPath)(unsafe.Pointer(pPath)).FnUsed))) = int8(0)
+ zIn = (*DbPath)(unsafe.Pointer(pPath)).FzOut
+ if (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 27*24 + 8)))(tls, zIn, bp) != 0 {
+ if *(*int32)(unsafe.Pointer(libc.X__error(tls))) != ENOENT {
+ (*DbPath)(unsafe.Pointer(pPath)).Frc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 43443), ts+3452, zIn, 43443)
+ }
+ } else if int32((*stat)(unsafe.Pointer(bp)).Fst_mode)&S_IFMT == S_IFLNK {
+ var got Ssize_t
+
+ if libc.PostIncInt32(&(*DbPath)(unsafe.Pointer(pPath)).FnSymlink, 1) > SQLITE_MAX_SYMLINK {
+ (*DbPath)(unsafe.Pointer(pPath)).Frc = Xsqlite3CantopenError(tls, 43449)
+ return
+ }
+ got = (*(*func(*libc.TLS, uintptr, uintptr, Size_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 26*24 + 8)))(tls, zIn, bp+144, uint64(unsafe.Sizeof([1026]int8{}))-uint64(2))
+ if got <= int64(0) || got >= Ssize_t(unsafe.Sizeof([1026]int8{}))-int64(2) {
+ (*DbPath)(unsafe.Pointer(pPath)).Frc = unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 43454), ts+3443, zIn, 43454)
+ return
+ }
+ *(*int8)(unsafe.Pointer(bp + 144 + uintptr(got))) = int8(0)
+ if int32(*(*int8)(unsafe.Pointer(bp + 144))) == '/' {
+ (*DbPath)(unsafe.Pointer(pPath)).FnUsed = 0
+ } else {
+ *(*int32)(unsafe.Pointer(pPath + 20)) -= nName + 1
+ }
+ appendAllPathElements(tls, pPath, bp+144)
+ }
+ }
+}
+
+func appendAllPathElements(tls *libc.TLS, pPath uintptr, zPath uintptr) {
+ var i int32 = 0
+ var j int32 = 0
+ for __ccgo := true; __ccgo; __ccgo = *(*int8)(unsafe.Pointer(zPath + uintptr(libc.PostIncInt32(&i, 1)))) != 0 {
+ for *(*int8)(unsafe.Pointer(zPath + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(i)))) != '/' {
+ i++
+ }
+ if i > j {
+ appendOnePathElement(tls, pPath, zPath+uintptr(j), i-j)
+ }
+ j = i + 1
+ }
+}
+
+func unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOut uintptr) int32 {
+ bp := tls.Alloc(1056)
+ defer tls.Free(1056)
+
+ _ = pVfs
+ (*DbPath)(unsafe.Pointer(bp + 1032)).Frc = 0
+ (*DbPath)(unsafe.Pointer(bp + 1032)).FnUsed = 0
+ (*DbPath)(unsafe.Pointer(bp + 1032)).FnSymlink = 0
+ (*DbPath)(unsafe.Pointer(bp + 1032)).FnOut = nOut
+ (*DbPath)(unsafe.Pointer(bp + 1032)).FzOut = zOut
+ if int32(*(*int8)(unsafe.Pointer(zPath))) != '/' {
+ if (*(*func(*libc.TLS, uintptr, Size_t) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 3*24 + 8)))(tls, bp, uint64(unsafe.Sizeof([1026]int8{}))-uint64(2)) == uintptr(0) {
+ return unixLogErrorAtLine(tls, Xsqlite3CantopenError(tls, 43512), ts+3272, zPath, 43512)
+ }
+ appendAllPathElements(tls, bp+1032, bp)
+ }
+ appendAllPathElements(tls, bp+1032, zPath)
+ *(*int8)(unsafe.Pointer(zOut + uintptr((*DbPath)(unsafe.Pointer(bp+1032)).FnUsed))) = int8(0)
+ if (*DbPath)(unsafe.Pointer(bp+1032)).Frc != 0 || (*DbPath)(unsafe.Pointer(bp+1032)).FnUsed < 2 {
+ return Xsqlite3CantopenError(tls, 43518)
+ }
+ if (*DbPath)(unsafe.Pointer(bp+1032)).FnSymlink != 0 {
+ return SQLITE_OK | int32(2)<<8
+ }
+ return SQLITE_OK
+}
+
+type dl_info = struct {
+ Fdli_fname uintptr
+ Fdli_fbase uintptr
+ Fdli_sname uintptr
+ Fdli_saddr uintptr
+}
+
+// Structure filled in by dladdr().
+type Dl_info = dl_info
+
+func unixDlOpen(tls *libc.TLS, NotUsed uintptr, zFilename uintptr) uintptr {
+ _ = NotUsed
+ return libc.Xdlopen(tls, zFilename, RTLD_NOW|RTLD_GLOBAL)
+}
+
+func unixDlError(tls *libc.TLS, NotUsed uintptr, nBuf int32, zBufOut uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zErr uintptr
+ _ = NotUsed
+ unixEnterMutex(tls)
+ zErr = libc.Xdlerror(tls)
+ if zErr != 0 {
+ Xsqlite3_snprintf(tls, nBuf, zBufOut, ts+3658, libc.VaList(bp, zErr))
+ }
+ unixLeaveMutex(tls)
+}
+
+func unixDlSym(tls *libc.TLS, NotUsed uintptr, p uintptr, zSym uintptr) uintptr {
+ var x uintptr
+ _ = NotUsed
+ x = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ }{libc.Xdlsym}))
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, p, zSym)
+}
+
+func unixDlClose(tls *libc.TLS, NotUsed uintptr, pHandle uintptr) {
+ _ = NotUsed
+ libc.Xdlclose(tls, pHandle)
+}
+
+func unixRandomness(tls *libc.TLS, NotUsed uintptr, nBuf int32, zBuf uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ _ = NotUsed
+
+ libc.X__builtin___memset_chk(tls, zBuf, 0, uint64(nBuf), libc.X__builtin_object_size(tls, zBuf, 0))
+ libc.AtomicStoreInt32(&randomnessPid, libc.Xgetpid(tls))
+ {
+ var fd int32
+ var got int32
+ fd = robust_open(tls, ts+3866, O_RDONLY, uint16(0))
+ if fd < 0 {
+ libc.Xtime(tls, bp)
+ libc.X__builtin___memcpy_chk(tls, zBuf, bp, uint64(unsafe.Sizeof(Time_t(0))), libc.X__builtin_object_size(tls, zBuf, 0))
+ libc.X__builtin___memcpy_chk(tls, zBuf+8, uintptr(unsafe.Pointer(&randomnessPid)), uint64(unsafe.Sizeof(randomnessPid)), libc.X__builtin_object_size(tls, zBuf+8, 0))
+
+ nBuf = int32(uint64(unsafe.Sizeof(Time_t(0))) + uint64(unsafe.Sizeof(randomnessPid)))
+ } else {
+ for __ccgo := true; __ccgo; __ccgo = got < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == EINTR {
+ got = int32((*(*func(*libc.TLS, int32, uintptr, Size_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 8*24 + 8)))(tls, fd, zBuf, uint64(nBuf)))
+ }
+ robust_close(tls, uintptr(0), fd, 43619)
+ }
+
+ }
+ return nBuf
+}
+
+func unixSleep(tls *libc.TLS, NotUsed uintptr, microseconds int32) int32 {
+ if microseconds >= 1000000 {
+ libc.Xsleep(tls, uint32(microseconds/1000000))
+ }
+ if microseconds%1000000 != 0 {
+ libc.Xusleep(tls, uint32(microseconds%1000000))
+ }
+ _ = NotUsed
+ return microseconds
+}
+
+func unixCurrentTimeInt64(tls *libc.TLS, NotUsed uintptr, piNow uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32 = SQLITE_OK
+
+ libc.Xgettimeofday(tls, bp, uintptr(0))
+ *(*Sqlite3_int64)(unsafe.Pointer(piNow)) = unixEpoch + int64(1000)*(*timeval)(unsafe.Pointer(bp)).Ftv_sec + Sqlite3_int64((*timeval)(unsafe.Pointer(bp)).Ftv_usec/1000)
+
+ _ = NotUsed
+ return rc
+}
+
+var unixEpoch Sqlite3_int64 = int64(24405875) * int64(8640000)
+
+func unixCurrentTime(tls *libc.TLS, NotUsed uintptr, prNow uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ var rc int32
+ _ = NotUsed
+ rc = unixCurrentTimeInt64(tls, uintptr(0), bp)
+ *(*float64)(unsafe.Pointer(prNow)) = float64(*(*Sqlite3_int64)(unsafe.Pointer(bp))) / 86400000.0
+ return rc
+}
+
+func unixGetLastError(tls *libc.TLS, NotUsed uintptr, NotUsed2 int32, NotUsed3 uintptr) int32 {
+ _ = NotUsed
+ _ = NotUsed2
+ _ = NotUsed3
+ return *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+}
+
+type proxyLockingContext = struct {
+ FconchFile uintptr
+ FconchFilePath uintptr
+ FlockProxy uintptr
+ FlockProxyPath uintptr
+ FdbPath uintptr
+ FconchHeld int32
+ FnFails int32
+ FoldLockingContext uintptr
+ FpOldMethod uintptr
+}
+
+// The proxyLockingContext has the path and file structures for the remote
+// and local proxy files in it
+type ProxyLockingContext = proxyLockingContext
+
+func proxyGetLockPath(tls *libc.TLS, dbPath uintptr, lPath uintptr, maxLen Size_t) int32 {
+ var len int32
+ var dbLen int32
+ var i int32
+
+ {
+ if !(libc.Xconfstr(tls, X_CS_DARWIN_USER_TEMP_DIR, lPath, maxLen) != 0) {
+ return SQLITE_IOERR | int32(15)<<8
+ }
+ len = int32(libc.Xstrlcat(tls, lPath, ts+3879, maxLen))
+
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(lPath + uintptr(len-1)))) != '/' {
+ len = int32(libc.Xstrlcat(tls, lPath, ts+3892, maxLen))
+ }
+
+ dbLen = int32(libc.Xstrlen(tls, dbPath))
+ for i = 0; i < dbLen && i+len+7 < int32(maxLen); i++ {
+ var c int8 = *(*int8)(unsafe.Pointer(dbPath + uintptr(i)))
+ *(*int8)(unsafe.Pointer(lPath + uintptr(i+len))) = func() int8 {
+ if int32(c) == '/' {
+ return int8('_')
+ }
+ return c
+ }()
+ }
+ *(*int8)(unsafe.Pointer(lPath + uintptr(i+len))) = int8(0)
+ libc.Xstrlcat(tls, lPath, ts+3853, maxLen)
+
+ return SQLITE_OK
+}
+
+func proxyCreateLockPath(tls *libc.TLS, lockPath uintptr) int32 {
+ bp := tls.Alloc(1024)
+ defer tls.Free(1024)
+
+ var i int32
+ var len int32
+
+ var start int32 = 0
+
+ len = int32(libc.Xstrlen(tls, lockPath))
+ *(*int8)(unsafe.Pointer(bp)) = *(*int8)(unsafe.Pointer(lockPath))
+ for i = 1; i < len; i++ {
+ if int32(*(*int8)(unsafe.Pointer(lockPath + uintptr(i)))) == '/' && i-start > 0 {
+ if i-start > 2 || i-start == 1 && int32(*(*int8)(unsafe.Pointer(bp + uintptr(start)))) != '.' && int32(*(*int8)(unsafe.Pointer(bp + uintptr(start)))) != '/' ||
+ i-start == 2 && int32(*(*int8)(unsafe.Pointer(bp + uintptr(start)))) != '.' && int32(*(*int8)(unsafe.Pointer(bp + uintptr(start+1)))) != '.' {
+ *(*int8)(unsafe.Pointer(bp + uintptr(i))) = int8(0)
+ if (*(*func(*libc.TLS, uintptr, Mode_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 18*24 + 8)))(tls, bp, uint16(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS)) != 0 {
+ var err int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if err != EEXIST {
+ return err
+ }
+ }
+ }
+ start = i + 1
+ }
+ *(*int8)(unsafe.Pointer(bp + uintptr(i))) = *(*int8)(unsafe.Pointer(lockPath + uintptr(i)))
+ }
+
+ return 0
+}
+
+func proxyCreateUnixFile(tls *libc.TLS, path uintptr, ppFile uintptr, islockfile int32) int32 {
+ bp := tls.Alloc(168)
+ defer tls.Free(168)
+
+ var fd int32
+ var pNew uintptr
+ var rc int32
+ var openFlags int32
+
+ var terrno int32
+ var pUnused uintptr
+ fd = -1
+ rc = SQLITE_OK
+ openFlags = O_RDWR | O_CREAT | O_NOFOLLOW
+ terrno = 0
+ pUnused = uintptr(0)
+
+ pUnused = findReusableFd(tls, path, openFlags)
+ if !(pUnused != 0) {
+ goto __1
+ }
+ fd = (*UnixUnusedFd)(unsafe.Pointer(pUnused)).Ffd
+ goto __2
+__1:
+ pUnused = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(UnixUnusedFd{})))
+ if !!(pUnused != 0) {
+ goto __3
+ }
+ return SQLITE_NOMEM
+__3:
+ ;
+__2:
+ ;
+ if !(fd < 0) {
+ goto __4
+ }
+ fd = robust_open(tls, path, openFlags, uint16(0))
+ terrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if !(fd < 0 && *(*int32)(unsafe.Pointer(libc.X__error(tls))) == ENOENT && islockfile != 0) {
+ goto __5
+ }
+ if !(proxyCreateLockPath(tls, path) == SQLITE_OK) {
+ goto __6
+ }
+ fd = robust_open(tls, path, openFlags, uint16(0))
+__6:
+ ;
+__5:
+ ;
+__4:
+ ;
+ if !(fd < 0) {
+ goto __7
+ }
+ openFlags = O_RDONLY | O_NOFOLLOW
+ fd = robust_open(tls, path, openFlags, uint16(0))
+ terrno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+__7:
+ ;
+ if !(fd < 0) {
+ goto __8
+ }
+ if !(islockfile != 0) {
+ goto __9
+ }
+ return SQLITE_BUSY
+__9:
+ ;
+ switch terrno {
+ case EACCES:
+ goto __11
+ case EIO:
+ goto __12
+ default:
+ goto __13
+ }
+ goto __10
+__11:
+ return SQLITE_PERM
+__12:
+ return SQLITE_IOERR | int32(15)<<8
+__13:
+ return Xsqlite3CantopenError(tls, 44048)
+__10:
+ ;
+__8:
+ ;
+ pNew = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(UnixFile{})))
+ if !(pNew == uintptr(0)) {
+ goto __14
+ }
+ rc = SQLITE_NOMEM
+ goto end_create_proxy
+__14:
+ ;
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(UnixFile{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*UnixFile)(unsafe.Pointer(pNew)).FopenFlags = openFlags
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Sqlite3_vfs{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Sqlite3_vfs)(unsafe.Pointer(bp)).FpAppData = uintptr(unsafe.Pointer(&autolockIoFinder))
+ (*Sqlite3_vfs)(unsafe.Pointer(bp)).FzName = ts + 3894
+ (*UnixUnusedFd)(unsafe.Pointer(pUnused)).Ffd = fd
+ (*UnixUnusedFd)(unsafe.Pointer(pUnused)).Fflags = openFlags
+ (*UnixFile)(unsafe.Pointer(pNew)).FpPreallocatedUnused = pUnused
+
+ rc = fillInUnixFile(tls, bp, fd, pNew, path, 0)
+ if !(rc == SQLITE_OK) {
+ goto __15
+ }
+ *(*uintptr)(unsafe.Pointer(ppFile)) = pNew
+ return SQLITE_OK
+__15:
+ ;
+end_create_proxy:
+ robust_close(tls, pNew, fd, 44072)
+ Xsqlite3_free(tls, pNew)
+ Xsqlite3_free(tls, pUnused)
+ return rc
+}
+
+func proxyGetHostID(tls *libc.TLS, pHostID uintptr, pError uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ libc.X__builtin___memset_chk(tls, pHostID, 0, uint64(PROXY_HOSTIDLEN), libc.X__builtin_object_size(tls, pHostID, 0))
+ {
+ *(*timespec)(unsafe.Pointer(bp)) = timespec{Ftv_sec: int64(1)}
+ if libc.Xgethostuuid(tls, pHostID, bp) != 0 {
+ var err int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if pError != 0 {
+ *(*int32)(unsafe.Pointer(pError)) = err
+ }
+ return SQLITE_IOERR
+ }
+
+ }
+
+ return SQLITE_OK
+}
+
+func proxyBreakConchLock(tls *libc.TLS, pFile uintptr, myHostID uintptr) int32 {
+ bp := tls.Alloc(2193)
+ defer tls.Free(2193)
+
+ var pCtx uintptr
+ var conchFile uintptr
+
+ var cPath uintptr
+ var readLen Size_t
+ var pathLen Size_t
+
+ var fd int32
+ var rc int32
+ pCtx = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ conchFile = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile
+ cPath = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFilePath
+ readLen = uint64(0)
+ pathLen = uint64(0)
+ *(*[64]int8)(unsafe.Pointer(bp + 1088)) = *(*[64]int8)(unsafe.Pointer(ts + 3900))
+ fd = -1
+ rc = -1
+ _ = myHostID
+
+ pathLen = libc.Xstrlcpy(tls, bp+64, cPath, uint64(PATH_MAX))
+ if !(pathLen > uint64(PATH_MAX) || pathLen < uint64(6) || libc.Xstrlcpy(tls, bp+64+uintptr(pathLen-uint64(5)), ts+3964, uint64(6)) != uint64(5)) {
+ goto __1
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+1088, ts+3970, libc.VaList(bp, int32(pathLen)))
+ goto end_breaklock
+__1:
+ ;
+ readLen = Size_t((*(*func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 9*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, bp+1152, uint64(PROXY_HEADERLEN+PROXY_HOSTIDLEN+PATH_MAX), int64(0)))
+ if !(readLen < uint64(PROXY_HEADERLEN+PROXY_HOSTIDLEN)) {
+ goto __2
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+1088, ts+3990, libc.VaList(bp+8, int32(readLen)))
+ goto end_breaklock
+__2:
+ ;
+ fd = robust_open(tls, bp+64, O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW, uint16(0))
+ if !(fd < 0) {
+ goto __3
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+1088, ts+4010, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(libc.X__error(tls)))))
+ goto end_breaklock
+__3:
+ ;
+ if !((*(*func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 12*24 + 8)))(tls, fd, bp+1152, readLen, int64(0)) != Ssize_t(readLen)) {
+ goto __4
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+1088, ts+4029, libc.VaList(bp+24, *(*int32)(unsafe.Pointer(libc.X__error(tls)))))
+ goto end_breaklock
+__4:
+ ;
+ if !(libc.Xrename(tls, bp+64, cPath) != 0) {
+ goto __5
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+1088, ts+4047, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(libc.X__error(tls)))))
+ goto end_breaklock
+__5:
+ ;
+ rc = 0
+ libc.Xfprintf(tls, libc.X__stderrp, ts+4066, libc.VaList(bp+40, cPath))
+ robust_close(tls, pFile, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, 44175)
+ (*UnixFile)(unsafe.Pointer(conchFile)).Fh = fd
+ (*UnixFile)(unsafe.Pointer(conchFile)).FopenFlags = O_RDWR | O_CREAT
+
+end_breaklock:
+ if !(rc != 0) {
+ goto __6
+ }
+ if !(fd >= 0) {
+ goto __7
+ }
+ (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 16*24 + 8)))(tls, bp+64)
+ robust_close(tls, pFile, fd, 44183)
+__7:
+ ;
+ libc.Xfprintf(tls, libc.X__stderrp, ts+4090, libc.VaList(bp+48, cPath, bp+1088))
+__6:
+ ;
+ return rc
+}
+
+func proxyConchLock(tls *libc.TLS, pFile uintptr, myHostID uintptr, lockType int32) int32 {
+ bp := tls.Alloc(1201)
+ defer tls.Free(1201)
+
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var conchFile uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile
+ var rc int32 = SQLITE_OK
+ var nTries int32 = 0
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(timespec{})), libc.X__builtin_object_size(tls, bp, 0))
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_BUSY && nTries < 3 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxLock})).f(tls, conchFile, lockType)
+ nTries++
+ if rc == SQLITE_BUSY {
+ if (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, bp+16) != 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR | int32(15)<<8
+ }
+
+ if nTries == 1 {
+ *(*timespec)(unsafe.Pointer(bp)) = (*stat)(unsafe.Pointer(bp + 16)).Fst_mtimespec
+ unixSleep(tls, uintptr(0), 500000)
+ continue
+ }
+
+ if (*timespec)(unsafe.Pointer(bp)).Ftv_sec != (*stat)(unsafe.Pointer(bp+16)).Fst_mtimespec.Ftv_sec || (*timespec)(unsafe.Pointer(bp)).Ftv_nsec != (*stat)(unsafe.Pointer(bp+16)).Fst_mtimespec.Ftv_nsec {
+ return SQLITE_BUSY
+ }
+
+ if nTries == 2 {
+ var len int32 = int32((*(*func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 9*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, bp+160, uint64(PROXY_HEADERLEN+PROXY_HOSTIDLEN+PATH_MAX), int64(0)))
+ if len < 0 {
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls))))
+ return SQLITE_IOERR | int32(15)<<8
+ }
+ if len > PROXY_HEADERLEN+PROXY_HOSTIDLEN && int32(*(*int8)(unsafe.Pointer(bp + 160))) == int32(int8(PROXY_CONCHVERSION)) {
+ if 0 != libc.Xmemcmp(tls, bp+160+1, myHostID, uint64(PROXY_HOSTIDLEN)) {
+ return SQLITE_BUSY
+ }
+ } else {
+ return SQLITE_BUSY
+ }
+ unixSleep(tls, uintptr(0), 10000000)
+ continue
+ }
+
+ if 0 == proxyBreakConchLock(tls, pFile, myHostID) {
+ rc = SQLITE_OK
+ if lockType == EXCLUSIVE_LOCK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxLock})).f(tls, conchFile, SHARED_LOCK)
+ }
+ if !(rc != 0) {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxLock})).f(tls, conchFile, lockType)
+ }
+ }
+ }
+ }
+
+ return rc
+}
+
+func proxyTakeConch(tls *libc.TLS, pFile uintptr) int32 {
+ bp := tls.Alloc(3272)
+ defer tls.Free(3272)
+
+ var pCtx uintptr
+ var pathLen Size_t
+ var cmode Mode_t
+
+ var err int32
+
+ var writeSize int32
+ var fd int32
+ var path uintptr
+ var afpCtx uintptr
+ var conchFile uintptr
+
+ var tempLockPath uintptr
+ var rc int32
+ var createConch int32
+ var hostIdMatch int32
+ var readLen int32
+ var tryOldLockPath int32
+ var forceNewLockPath int32
+ pCtx = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+
+ if !((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld != 0) {
+ goto __1
+ }
+ return SQLITE_OK
+ goto __2
+__1:
+ conchFile = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ tempLockPath = uintptr(0)
+ rc = SQLITE_OK
+ createConch = 0
+ hostIdMatch = 0
+ readLen = 0
+ tryOldLockPath = 0
+ forceNewLockPath = 0
+
+ rc = proxyGetHostID(tls, bp, bp+16)
+ if !(rc&0xff == SQLITE_IOERR) {
+ goto __3
+ }
+ storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(bp + 16)))
+ goto end_takeconch
+__3:
+ ;
+ rc = proxyConchLock(tls, pFile, bp, SHARED_LOCK)
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto end_takeconch
+__4:
+ ;
+ readLen = seekAndRead(tls, conchFile, int64(0), bp+20, PROXY_HEADERLEN+PROXY_HOSTIDLEN+PATH_MAX)
+ if !(readLen < 0) {
+ goto __5
+ }
+
+ storeLastErrno(tls, pFile, (*UnixFile)(unsafe.Pointer(conchFile)).FlastErrno)
+ rc = SQLITE_IOERR | int32(1)<<8
+ goto end_takeconch
+ goto __6
+__5:
+ if !(readLen <= PROXY_HEADERLEN+PROXY_HOSTIDLEN || int32(*(*int8)(unsafe.Pointer(bp + 20))) != int32(int8(PROXY_CONCHVERSION))) {
+ goto __7
+ }
+
+ createConch = 1
+__7:
+ ;
+__6:
+ ;
+__8:
+ if !(!(createConch != 0) && !(forceNewLockPath != 0)) {
+ goto __11
+ }
+ hostIdMatch = libc.BoolInt32(!(libc.Xmemcmp(tls, bp+20+1, bp,
+ uint64(PROXY_HOSTIDLEN)) != 0))
+
+ if !!(int32((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath) != 0) {
+ goto __12
+ }
+
+ if !(hostIdMatch != 0) {
+ goto __14
+ }
+ pathLen = Size_t(readLen - (PROXY_HEADERLEN + PROXY_HOSTIDLEN))
+
+ if !(pathLen >= uint64(PATH_MAX)) {
+ goto __15
+ }
+ pathLen = uint64(PATH_MAX - 1)
+__15:
+ ;
+ libc.X__builtin___memcpy_chk(tls, bp+1061, bp+20+17, pathLen, libc.X__builtin_object_size(tls, bp+1061, 0))
+ *(*int8)(unsafe.Pointer(bp + 1061 + uintptr(pathLen))) = int8(0)
+ tempLockPath = bp + 1061
+ tryOldLockPath = 1
+
+ goto end_takeconch
+__14:
+ ;
+ goto __13
+__12:
+ if !(hostIdMatch != 0 &&
+ !(libc.Xstrncmp(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath, bp+20+17,
+ uint64(readLen-(PROXY_HEADERLEN+PROXY_HOSTIDLEN))) != 0)) {
+ goto __16
+ }
+
+ goto end_takeconch
+__16:
+ ;
+__13:
+ ;
+__11:
+ ;
+ if !((*UnixFile)(unsafe.Pointer(conchFile)).FopenFlags&O_RDWR == 0) {
+ goto __17
+ }
+ rc = SQLITE_BUSY
+ goto end_takeconch
+__17:
+ ;
+ if !!(int32((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath) != 0) {
+ goto __18
+ }
+ proxyGetLockPath(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath, bp+1061, uint64(PATH_MAX))
+ tempLockPath = bp + 1061
+
+__18:
+ ;
+ libc.Xfutimes(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, uintptr(0))
+ if !(hostIdMatch != 0 && !(createConch != 0)) {
+ goto __19
+ }
+ if !((*UnixFile)(unsafe.Pointer(conchFile)).FpInode != 0 && (*UnixInodeInfo)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpInode)).FnShared > 1) {
+ goto __21
+ }
+
+ rc = SQLITE_BUSY
+ goto __22
+__21:
+ rc = proxyConchLock(tls, pFile, bp, EXCLUSIVE_LOCK)
+__22:
+ ;
+ goto __20
+__19:
+ rc = proxyConchLock(tls, pFile, bp, EXCLUSIVE_LOCK)
+__20:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __23
+ }
+ writeSize = 0
+
+ *(*int8)(unsafe.Pointer(bp + 2085)) = int8(PROXY_CONCHVERSION)
+ libc.X__builtin___memcpy_chk(tls, bp+2085+1, bp, uint64(PROXY_HOSTIDLEN), libc.X__builtin_object_size(tls, bp+2085+1, 0))
+ if !((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath != uintptr(0)) {
+ goto __24
+ }
+ libc.Xstrlcpy(tls, bp+2085+17, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath,
+ uint64(PATH_MAX))
+ goto __25
+__24:
+ libc.Xstrlcpy(tls, bp+2085+17, tempLockPath, uint64(PATH_MAX))
+__25:
+ ;
+ writeSize = int32(uint64(PROXY_HEADERLEN+PROXY_HOSTIDLEN) + libc.Xstrlen(tls, bp+2085+17))
+ robust_ftruncate(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, int64(writeSize))
+ rc = unixWrite(tls, conchFile, bp+2085, writeSize, int64(0))
+ full_fsync(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, 0, 0)
+
+ if !(rc == SQLITE_OK && createConch != 0) {
+ goto __26
+ }
+ err = (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 5*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(pFile)).Fh, bp+3128)
+ if !(err == 0) {
+ goto __27
+ }
+ cmode = Mode_t(int32((*stat)(unsafe.Pointer(bp+3128)).Fst_mode) & (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH))
+
+ (*(*func(*libc.TLS, int32, Mode_t) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 14*24 + 8)))(tls, (*UnixFile)(unsafe.Pointer(conchFile)).Fh, cmode)
+__27:
+ ;
+__26:
+ ;
+__23:
+ ;
+ (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxUnlock})).f(tls, conchFile, SHARED_LOCK)
+
+end_takeconch:
+ ;
+ if !(rc == SQLITE_OK && (*UnixFile)(unsafe.Pointer(pFile)).FopenFlags != 0) {
+ goto __28
+ }
+ if !((*UnixFile)(unsafe.Pointer(pFile)).Fh >= 0) {
+ goto __29
+ }
+ robust_close(tls, pFile, (*UnixFile)(unsafe.Pointer(pFile)).Fh, 44436)
+__29:
+ ;
+ (*UnixFile)(unsafe.Pointer(pFile)).Fh = -1
+ fd = robust_open(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath, (*UnixFile)(unsafe.Pointer(pFile)).FopenFlags, uint16(0))
+
+ if !(fd >= 0) {
+ goto __30
+ }
+ (*UnixFile)(unsafe.Pointer(pFile)).Fh = fd
+ goto __31
+__30:
+ rc = Xsqlite3CantopenError(tls, 44444)
+
+__31:
+ ;
+__28:
+ ;
+ if !(rc == SQLITE_OK && !(int32((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy) != 0)) {
+ goto __32
+ }
+ if tempLockPath != 0 {
+ path = tempLockPath
+ } else {
+ path = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath
+ }
+ rc = proxyCreateUnixFile(tls, path, pCtx+16, 1)
+ if !(rc != SQLITE_OK && rc != SQLITE_NOMEM && tryOldLockPath != 0) {
+ goto __33
+ }
+
+ forceNewLockPath = 1
+ tryOldLockPath = 0
+ goto __9
+__33:
+ ;
+__32:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __34
+ }
+
+ if !(tempLockPath != 0) {
+ goto __35
+ }
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath = Xsqlite3DbStrDup(tls, uintptr(0), tempLockPath)
+ if !!(int32((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath) != 0) {
+ goto __36
+ }
+ rc = SQLITE_NOMEM
+__36:
+ ;
+__35:
+ ;
+__34:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __37
+ }
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld = 1
+
+ if !((*UnixFile)(unsafe.Pointer((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy)).FpMethod == uintptr(unsafe.Pointer(&afpIoMethods))) {
+ goto __39
+ }
+ afpCtx = (*UnixFile)(unsafe.Pointer((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy)).FlockingContext
+ (*AfpLockingContext)(unsafe.Pointer(afpCtx)).FdbPath = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath
+__39:
+ ;
+ goto __38
+__37:
+ (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxUnlock})).f(tls, conchFile, NO_LOCK)
+__38:
+ ;
+ return rc
+ goto __9
+__9:
+ if 1 != 0 {
+ goto __8
+ }
+ goto __10
+__10:
+ ;
+__2:
+ ;
+ return int32(0)
+}
+
+func proxyReleaseConch(tls *libc.TLS, pFile uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pCtx uintptr
+ var conchFile uintptr
+
+ pCtx = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ conchFile = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile
+
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld > 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxUnlock})).f(tls, conchFile, NO_LOCK)
+ }
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld = 0
+
+ return rc
+}
+
+func proxyCreateConchPathname(tls *libc.TLS, dbPath uintptr, pConchPath uintptr) int32 {
+ var i int32
+ var len int32 = int32(libc.Xstrlen(tls, dbPath))
+ var conchPath uintptr
+
+ *(*uintptr)(unsafe.Pointer(pConchPath)) = libc.AssignUintptr(&conchPath, Xsqlite3_malloc64(tls, uint64(len+8)))
+ if conchPath == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, conchPath, dbPath, uint64(len+1), libc.X__builtin_object_size(tls, conchPath, 0))
+
+ for i = len - 1; i >= 0; i-- {
+ if int32(*(*int8)(unsafe.Pointer(conchPath + uintptr(i)))) == '/' {
+ i++
+ break
+ }
+ }
+ *(*int8)(unsafe.Pointer(conchPath + uintptr(i))) = int8('.')
+ for i < len {
+ *(*int8)(unsafe.Pointer(conchPath + uintptr(i+1))) = *(*int8)(unsafe.Pointer(dbPath + uintptr(i)))
+ i++
+ }
+
+ libc.X__builtin___memcpy_chk(tls, conchPath+uintptr(i+1), ts+4128, uint64(7), libc.X__builtin_object_size(tls, conchPath+uintptr(i+1), 0))
+
+ return SQLITE_OK
+}
+
+func switchLockProxyPath(tls *libc.TLS, pFile uintptr, path uintptr) int32 {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var oldPath uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath
+ var rc int32 = SQLITE_OK
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) != NO_LOCK {
+ return SQLITE_BUSY
+ }
+
+ if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == 0 || !(libc.Xstrcmp(tls, path, ts+3853) != 0) || oldPath != 0 && !(libc.Xstrncmp(tls, oldPath, path, uint64(PATH_MAX)) != 0) {
+ return SQLITE_OK
+ } else {
+ var lockProxy uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy = uintptr(0)
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld = 0
+ if lockProxy != uintptr(0) {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(lockProxy)).FpMethod)).FxClose})).f(tls, lockProxy)
+ if rc != 0 {
+ return rc
+ }
+ Xsqlite3_free(tls, lockProxy)
+ }
+ Xsqlite3_free(tls, oldPath)
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath = Xsqlite3DbStrDup(tls, uintptr(0), path)
+ }
+
+ return rc
+}
+
+func proxyGetDbPathForUnixFile(tls *libc.TLS, pFile uintptr, dbPath uintptr) int32 {
+ if (*UnixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&afpIoMethods)) {
+ libc.Xstrlcpy(tls, dbPath, (*AfpLockingContext)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FlockingContext)).FdbPath,
+ uint64(PATH_MAX))
+ } else if (*UnixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&dotlockIoMethods)) {
+ var len int32 = int32(libc.Xstrlen(tls, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext) - libc.Xstrlen(tls, ts+4135))
+ libc.X__builtin___memcpy_chk(tls, dbPath, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext, uint64(len+1), libc.X__builtin_object_size(tls, dbPath, 0))
+ } else {
+ libc.Xstrlcpy(tls, dbPath, (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext, uint64(PATH_MAX))
+ }
+ return SQLITE_OK
+}
+
+func proxyTransformUnixFile(tls *libc.TLS, pFile uintptr, path uintptr) int32 {
+ bp := tls.Alloc(3344)
+ defer tls.Free(3344)
+
+ var pCtx uintptr
+
+ var lockPath uintptr = uintptr(0)
+ var rc int32 = SQLITE_OK
+
+ if int32((*UnixFile)(unsafe.Pointer(pFile)).FeFileLock) != NO_LOCK {
+ return SQLITE_BUSY
+ }
+ proxyGetDbPathForUnixFile(tls, pFile, bp)
+ if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == 0 || !(libc.Xstrcmp(tls, path, ts+3853) != 0) {
+ lockPath = uintptr(0)
+ } else {
+ lockPath = path
+ }
+
+ pCtx = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(ProxyLockingContext{})))
+ if pCtx == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pCtx, 0, uint64(unsafe.Sizeof(ProxyLockingContext{})), libc.X__builtin_object_size(tls, pCtx, 0))
+
+ rc = proxyCreateConchPathname(tls, bp, pCtx+8)
+ if rc == SQLITE_OK {
+ rc = proxyCreateUnixFile(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFilePath, pCtx, 0)
+ if rc == SQLITE_CANTOPEN && (*UnixFile)(unsafe.Pointer(pFile)).FopenFlags&O_RDWR == 0 {
+ var goLockless int32 = 0
+
+ if (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 4*24 + 8)))(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFilePath, bp+1032) == -1 {
+ var err int32 = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
+ if err == ENOENT && libc.Xstatfs(tls, bp, bp+1176) != -1 {
+ goLockless = libc.Bool32((*statfs)(unsafe.Pointer(bp+1176)).Ff_flags&Uint32_t(MNT_RDONLY) == Uint32_t(MNT_RDONLY))
+ }
+ }
+ if goLockless != 0 {
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld = -1
+ rc = SQLITE_OK
+ }
+ }
+ }
+ if rc == SQLITE_OK && lockPath != 0 {
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath = Xsqlite3DbStrDup(tls, uintptr(0), lockPath)
+ }
+
+ if rc == SQLITE_OK {
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath = Xsqlite3DbStrDup(tls, uintptr(0), bp)
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ if rc == SQLITE_OK {
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FoldLockingContext = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext = pCtx
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FpOldMethod = (*UnixFile)(unsafe.Pointer(pFile)).FpMethod
+ (*UnixFile)(unsafe.Pointer(pFile)).FpMethod = uintptr(unsafe.Pointer(&proxyIoMethods))
+ } else {
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer((*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile)).FpMethod)).FxClose})).f(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile)
+ Xsqlite3_free(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile)
+ }
+ Xsqlite3DbFree(tls, uintptr(0), (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath)
+ Xsqlite3_free(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFilePath)
+ Xsqlite3_free(tls, pCtx)
+ }
+
+ return rc
+}
+
+func proxyFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) int32 {
+ switch op {
+ case SQLITE_FCNTL_GET_LOCKPROXYFILE:
+ {
+ var pFile uintptr = id
+ if (*UnixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&proxyIoMethods)) {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ proxyTakeConch(tls, pFile)
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath != 0 {
+ *(*uintptr)(unsafe.Pointer(pArg)) = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath
+ } else {
+ *(*uintptr)(unsafe.Pointer(pArg)) = ts + 4141
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pArg)) = uintptr(0)
+ }
+ return SQLITE_OK
+
+ }
+ case SQLITE_FCNTL_SET_LOCKPROXYFILE:
+ {
+ var pFile uintptr = id
+ var rc int32 = SQLITE_OK
+ var isProxyStyle int32 = libc.Bool32((*UnixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&proxyIoMethods)))
+ if pArg == uintptr(0) || pArg == uintptr(0) {
+ if isProxyStyle != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ rc = SQLITE_OK
+ }
+ } else {
+ var proxyPath uintptr = pArg
+ if isProxyStyle != 0 {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ if !(libc.Xstrcmp(tls, pArg, ts+3853) != 0) ||
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath != 0 && !(libc.Xstrncmp(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath, proxyPath, uint64(PATH_MAX)) != 0) {
+ rc = SQLITE_OK
+ } else {
+ rc = switchLockProxyPath(tls, pFile, proxyPath)
+ }
+ } else {
+ rc = proxyTransformUnixFile(tls, pFile, proxyPath)
+ }
+ }
+ return rc
+
+ }
+ default:
+ {
+ }
+ }
+
+ return SQLITE_ERROR
+}
+
+func proxyCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) int32 {
+ var pFile uintptr = id
+ var rc int32 = proxyTakeConch(tls, pFile)
+ if rc == SQLITE_OK {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld > 0 {
+ var proxy uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(proxy)).FpMethod)).FxCheckReservedLock})).f(tls, proxy, pResOut)
+ } else {
+ pResOut = uintptr(0)
+ }
+ }
+ return rc
+}
+
+func proxyLock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var pFile uintptr = id
+ var rc int32 = proxyTakeConch(tls, pFile)
+ if rc == SQLITE_OK {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld > 0 {
+ var proxy uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(proxy)).FpMethod)).FxLock})).f(tls, proxy, eFileLock)
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = (*UnixFile)(unsafe.Pointer(proxy)).FeFileLock
+ } else {
+ }
+ }
+ return rc
+}
+
+func proxyUnlock(tls *libc.TLS, id uintptr, eFileLock int32) int32 {
+ var pFile uintptr = id
+ var rc int32 = proxyTakeConch(tls, pFile)
+ if rc == SQLITE_OK {
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld > 0 {
+ var proxy uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(proxy)).FpMethod)).FxUnlock})).f(tls, proxy, eFileLock)
+ (*UnixFile)(unsafe.Pointer(pFile)).FeFileLock = (*UnixFile)(unsafe.Pointer(proxy)).FeFileLock
+ } else {
+ }
+ }
+ return rc
+}
+
+func proxyClose(tls *libc.TLS, id uintptr) int32 {
+ if id != 0 {
+ var pFile uintptr = id
+ var pCtx uintptr = (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext
+ var lockProxy uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy
+ var conchFile uintptr = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFile
+ var rc int32 = SQLITE_OK
+
+ if lockProxy != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(lockProxy)).FpMethod)).FxUnlock})).f(tls, lockProxy, NO_LOCK)
+ if rc != 0 {
+ return rc
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(lockProxy)).FpMethod)).FxClose})).f(tls, lockProxy)
+ if rc != 0 {
+ return rc
+ }
+ Xsqlite3_free(tls, lockProxy)
+ (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy = uintptr(0)
+ }
+ if conchFile != 0 {
+ if (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchHeld != 0 {
+ rc = proxyReleaseConch(tls, pFile)
+ if rc != 0 {
+ return rc
+ }
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxClose})).f(tls, conchFile)
+ if rc != 0 {
+ return rc
+ }
+ Xsqlite3_free(tls, conchFile)
+ }
+ Xsqlite3DbFree(tls, uintptr(0), (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath)
+ Xsqlite3_free(tls, (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FconchFilePath)
+ Xsqlite3DbFree(tls, uintptr(0), (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath)
+
+ (*UnixFile)(unsafe.Pointer(pFile)).FlockingContext = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FoldLockingContext
+ (*UnixFile)(unsafe.Pointer(pFile)).FpMethod = (*ProxyLockingContext)(unsafe.Pointer(pCtx)).FpOldMethod
+ Xsqlite3_free(tls, pCtx)
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer((*UnixFile)(unsafe.Pointer(pFile)).FpMethod)).FxClose})).f(tls, id)
+ }
+ return SQLITE_OK
+}
+
+// Initialize the operating system interface.
+//
+// This routine registers all VFS implementations for unix-like operating
+// systems. This routine, and the sqlite3_os_end() routine that follows,
+// should be the only routines in this file that are visible from other
+// files.
+//
+// This routine is called once during SQLite initialization and by a
+// single thread. The memory allocation and mutex subsystems have not
+// necessarily been initialized when this routine is called, and so they
+// should not be used.
+func Xsqlite3_os_init(tls *libc.TLS) int32 {
+ var i uint32
+
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aVfs))/uint64(unsafe.Sizeof(Sqlite3_vfs{})); i++ {
+ Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&aVfs))+uintptr(i)*168, libc.Bool32(i == uint32(0)))
+ }
+ unixBigLock = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1)
+
+ unixTempFileInit(tls)
+
+ return SQLITE_OK
+}
+
+var aVfs = [9]Sqlite3_vfs{
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4159, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4164, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4174, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 3728, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4187, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4198, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4209, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4218, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+ {FiVersion: 3, FszOsFile: int32(unsafe.Sizeof(UnixFile{})), FmxPathname: MAX_PATHNAME, FzName: ts + 4227, FpAppData: 0, FxOpen: 0, FxDelete: 0, FxAccess: 0, FxFullPathname: 0, FxDlOpen: 0, FxDlError: 0, FxDlSym: 0, FxDlClose: 0, FxRandomness: 0, FxSleep: 0, FxCurrentTime: 0, FxGetLastError: 0, FxCurrentTimeInt64: 0, FxSetSystemCall: 0, FxGetSystemCall: 0, FxNextSystemCall: 0},
+}
+
+// Shutdown the operating system interface.
+//
+// Some operating systems might need to do some cleanup in this routine,
+// to release dynamically allocated objects. But not on unix.
+// This routine is a no-op for unix.
+func Xsqlite3_os_end(tls *libc.TLS) int32 {
+ unixBigLock = uintptr(0)
+ return SQLITE_OK
+}
+
+// Forward declaration of objects used by this utility
+type MemVfs = sqlite3_vfs
+type MemFile1 = struct {
+ Fbase Sqlite3_file
+ FpStore uintptr
+ FeLock int32
+ F__ccgo_pad1 [4]byte
+}
+
+type MemFile = MemFile1
+type MemStore1 = struct {
+ Fsz Sqlite3_int64
+ FszAlloc Sqlite3_int64
+ FszMax Sqlite3_int64
+ FaData uintptr
+ FpMutex uintptr
+ FnMmap int32
+ FmFlags uint32
+ FnRdLock int32
+ FnWrLock int32
+ FnRef int32
+ F__ccgo_pad1 [4]byte
+ FzFName uintptr
+}
+
+type MemStore = MemStore1
+
+// File-scope variables for holding the memdb files that are accessible
+// to multiple database connections in separate threads.
+//
+// Must hold SQLITE_MUTEX_STATIC_VFS1 to access any part of this object.
+type MemFS = struct {
+ FnMemStore int32
+ F__ccgo_pad1 [4]byte
+ FapMemStore uintptr
+}
+
+var memdb_g MemFS
+
+var memdb_vfs = Sqlite3_vfs{
+ FiVersion: 2,
+ FmxPathname: 1024,
+ FzName: ts + 4238,
+ FxOpen: 0,
+ FxAccess: 0,
+ FxFullPathname: 0,
+ FxDlOpen: 0,
+ FxDlError: 0,
+ FxDlSym: 0,
+ FxDlClose: 0,
+ FxRandomness: 0,
+ FxSleep: 0,
+ FxGetLastError: 0,
+ FxCurrentTimeInt64: 0,
+}
+
+var memdb_io_methods = Sqlite3_io_methods{
+ FiVersion: 3,
+ FxClose: 0,
+ FxRead: 0,
+ FxWrite: 0,
+ FxTruncate: 0,
+ FxSync: 0,
+ FxFileSize: 0,
+ FxLock: 0,
+ FxUnlock: 0,
+ FxFileControl: 0,
+ FxDeviceCharacteristics: 0,
+ FxFetch: 0,
+ FxUnfetch: 0,
+}
+
+func memdbEnter(tls *libc.TLS, p uintptr) {
+ Xsqlite3_mutex_enter(tls, (*MemStore)(unsafe.Pointer(p)).FpMutex)
+}
+
+func memdbLeave(tls *libc.TLS, p uintptr) {
+ Xsqlite3_mutex_leave(tls, (*MemStore)(unsafe.Pointer(p)).FpMutex)
+}
+
+func memdbClose(tls *libc.TLS, pFile uintptr) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ if (*MemStore)(unsafe.Pointer(p)).FzFName != 0 {
+ var i int32
+ var pVfsMutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1)
+ Xsqlite3_mutex_enter(tls, pVfsMutex)
+ for i = 0; i < memdb_g.FnMemStore; i++ {
+ if *(*uintptr)(unsafe.Pointer(memdb_g.FapMemStore + uintptr(i)*8)) == p {
+ memdbEnter(tls, p)
+ if (*MemStore)(unsafe.Pointer(p)).FnRef == 1 {
+ *(*uintptr)(unsafe.Pointer(memdb_g.FapMemStore + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(memdb_g.FapMemStore + uintptr(libc.PreDecInt32(&memdb_g.FnMemStore, 1))*8))
+ if memdb_g.FnMemStore == 0 {
+ Xsqlite3_free(tls, memdb_g.FapMemStore)
+ memdb_g.FapMemStore = uintptr(0)
+ }
+ }
+ break
+ }
+ }
+ Xsqlite3_mutex_leave(tls, pVfsMutex)
+ } else {
+ memdbEnter(tls, p)
+ }
+ (*MemStore)(unsafe.Pointer(p)).FnRef--
+ if (*MemStore)(unsafe.Pointer(p)).FnRef <= 0 {
+ if (*MemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_FREEONCLOSE) != 0 {
+ Xsqlite3_free(tls, (*MemStore)(unsafe.Pointer(p)).FaData)
+ }
+ memdbLeave(tls, p)
+ Xsqlite3_mutex_free(tls, (*MemStore)(unsafe.Pointer(p)).FpMutex)
+ Xsqlite3_free(tls, p)
+ } else {
+ memdbLeave(tls, p)
+ }
+ return SQLITE_OK
+}
+
+func memdbRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ memdbEnter(tls, p)
+ if iOfst+Sqlite_int64(iAmt) > (*MemStore)(unsafe.Pointer(p)).Fsz {
+ libc.X__builtin___memset_chk(tls, zBuf, 0, uint64(iAmt), libc.X__builtin_object_size(tls, zBuf, 0))
+ if iOfst < (*MemStore)(unsafe.Pointer(p)).Fsz {
+ libc.X__builtin___memcpy_chk(tls, zBuf, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), uint64((*MemStore)(unsafe.Pointer(p)).Fsz-iOfst), libc.X__builtin_object_size(tls, zBuf, 0))
+ }
+ memdbLeave(tls, p)
+ return SQLITE_IOERR | int32(2)<<8
+ }
+ libc.X__builtin___memcpy_chk(tls, zBuf, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), uint64(iAmt), libc.X__builtin_object_size(tls, zBuf, 0))
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbEnlarge(tls *libc.TLS, p uintptr, newSz Sqlite3_int64) int32 {
+ var pNew uintptr
+ if (*MemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_RESIZEABLE) == uint32(0) || (*MemStore)(unsafe.Pointer(p)).FnMmap > 0 {
+ return SQLITE_FULL
+ }
+ if newSz > (*MemStore)(unsafe.Pointer(p)).FszMax {
+ return SQLITE_FULL
+ }
+ newSz = newSz * int64(2)
+ if newSz > (*MemStore)(unsafe.Pointer(p)).FszMax {
+ newSz = (*MemStore)(unsafe.Pointer(p)).FszMax
+ }
+ pNew = Xsqlite3Realloc(tls, (*MemStore)(unsafe.Pointer(p)).FaData, uint64(newSz))
+ if pNew == uintptr(0) {
+ return SQLITE_IOERR | int32(12)<<8
+ }
+ (*MemStore)(unsafe.Pointer(p)).FaData = pNew
+ (*MemStore)(unsafe.Pointer(p)).FszAlloc = newSz
+ return SQLITE_OK
+}
+
+func memdbWrite(tls *libc.TLS, pFile uintptr, z uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ memdbEnter(tls, p)
+ if (*MemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_READONLY) != 0 {
+ memdbLeave(tls, p)
+ return SQLITE_IOERR | int32(3)<<8
+ }
+ if iOfst+Sqlite_int64(iAmt) > (*MemStore)(unsafe.Pointer(p)).Fsz {
+ var rc int32
+ if iOfst+Sqlite_int64(iAmt) > (*MemStore)(unsafe.Pointer(p)).FszAlloc &&
+ libc.AssignInt32(&rc, memdbEnlarge(tls, p, iOfst+Sqlite_int64(iAmt))) != SQLITE_OK {
+ memdbLeave(tls, p)
+ return rc
+ }
+ if iOfst > (*MemStore)(unsafe.Pointer(p)).Fsz {
+ libc.X__builtin___memset_chk(tls, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr((*MemStore)(unsafe.Pointer(p)).Fsz), 0, uint64(iOfst-(*MemStore)(unsafe.Pointer(p)).Fsz), libc.X__builtin_object_size(tls, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr((*MemStore)(unsafe.Pointer(p)).Fsz), 0))
+ }
+ (*MemStore)(unsafe.Pointer(p)).Fsz = iOfst + Sqlite_int64(iAmt)
+ }
+ libc.X__builtin___memcpy_chk(tls, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), z, uint64(iAmt), libc.X__builtin_object_size(tls, (*MemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), 0))
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbTruncate(tls *libc.TLS, pFile uintptr, size Sqlite_int64) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ var rc int32 = SQLITE_OK
+ memdbEnter(tls, p)
+ if size > (*MemStore)(unsafe.Pointer(p)).Fsz {
+ rc = SQLITE_CORRUPT
+ } else {
+ (*MemStore)(unsafe.Pointer(p)).Fsz = size
+ }
+ memdbLeave(tls, p)
+ return rc
+}
+
+func memdbSync(tls *libc.TLS, pFile uintptr, flags int32) int32 {
+ _ = pFile
+ _ = flags
+ return SQLITE_OK
+}
+
+func memdbFileSize(tls *libc.TLS, pFile uintptr, pSize uintptr) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ memdbEnter(tls, p)
+ *(*Sqlite_int64)(unsafe.Pointer(pSize)) = (*MemStore)(unsafe.Pointer(p)).Fsz
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbLock(tls *libc.TLS, pFile uintptr, eLock int32) int32 {
+ var pThis uintptr = pFile
+ var p uintptr = (*MemFile)(unsafe.Pointer(pThis)).FpStore
+ var rc int32 = SQLITE_OK
+ if eLock <= (*MemFile)(unsafe.Pointer(pThis)).FeLock {
+ return SQLITE_OK
+ }
+ memdbEnter(tls, p)
+
+ if eLock > SQLITE_LOCK_SHARED && (*MemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_READONLY) != 0 {
+ rc = SQLITE_READONLY
+ } else {
+ switch eLock {
+ case SQLITE_LOCK_SHARED:
+ {
+ if (*MemStore)(unsafe.Pointer(p)).FnWrLock > 0 {
+ rc = SQLITE_BUSY
+ } else {
+ (*MemStore)(unsafe.Pointer(p)).FnRdLock++
+ }
+ break
+
+ }
+
+ fallthrough
+
+ case SQLITE_LOCK_RESERVED:
+ fallthrough
+ case SQLITE_LOCK_PENDING:
+ {
+ if (*MemFile)(unsafe.Pointer(pThis)).FeLock == SQLITE_LOCK_SHARED {
+ if (*MemStore)(unsafe.Pointer(p)).FnWrLock > 0 {
+ rc = SQLITE_BUSY
+ } else {
+ (*MemStore)(unsafe.Pointer(p)).FnWrLock = 1
+ }
+ }
+ break
+
+ }
+ fallthrough
+
+ default:
+ {
+ if (*MemStore)(unsafe.Pointer(p)).FnRdLock > 1 {
+ rc = SQLITE_BUSY
+ } else if (*MemFile)(unsafe.Pointer(pThis)).FeLock == SQLITE_LOCK_SHARED {
+ (*MemStore)(unsafe.Pointer(p)).FnWrLock = 1
+ }
+ break
+
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ (*MemFile)(unsafe.Pointer(pThis)).FeLock = eLock
+ }
+ memdbLeave(tls, p)
+ return rc
+}
+
+func memdbUnlock(tls *libc.TLS, pFile uintptr, eLock int32) int32 {
+ var pThis uintptr = pFile
+ var p uintptr = (*MemFile)(unsafe.Pointer(pThis)).FpStore
+ if eLock >= (*MemFile)(unsafe.Pointer(pThis)).FeLock {
+ return SQLITE_OK
+ }
+ memdbEnter(tls, p)
+
+ if eLock == SQLITE_LOCK_SHARED {
+ if (*MemFile)(unsafe.Pointer(pThis)).FeLock > SQLITE_LOCK_SHARED {
+ (*MemStore)(unsafe.Pointer(p)).FnWrLock--
+ }
+ } else {
+ if (*MemFile)(unsafe.Pointer(pThis)).FeLock > SQLITE_LOCK_SHARED {
+ (*MemStore)(unsafe.Pointer(p)).FnWrLock--
+ }
+ (*MemStore)(unsafe.Pointer(p)).FnRdLock--
+ }
+
+ (*MemFile)(unsafe.Pointer(pThis)).FeLock = eLock
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ var rc int32 = SQLITE_NOTFOUND
+ memdbEnter(tls, p)
+ if op == SQLITE_FCNTL_VFSNAME {
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, ts+4244, libc.VaList(bp, (*MemStore)(unsafe.Pointer(p)).FaData, (*MemStore)(unsafe.Pointer(p)).Fsz))
+ rc = SQLITE_OK
+ }
+ if op == SQLITE_FCNTL_SIZE_LIMIT {
+ var iLimit Sqlite3_int64 = *(*Sqlite3_int64)(unsafe.Pointer(pArg))
+ if iLimit < (*MemStore)(unsafe.Pointer(p)).Fsz {
+ if iLimit < int64(0) {
+ iLimit = (*MemStore)(unsafe.Pointer(p)).FszMax
+ } else {
+ iLimit = (*MemStore)(unsafe.Pointer(p)).Fsz
+ }
+ }
+ (*MemStore)(unsafe.Pointer(p)).FszMax = iLimit
+ *(*Sqlite3_int64)(unsafe.Pointer(pArg)) = iLimit
+ rc = SQLITE_OK
+ }
+ memdbLeave(tls, p)
+ return rc
+}
+
+func memdbDeviceCharacteristics(tls *libc.TLS, pFile uintptr) int32 {
+ _ = pFile
+ return SQLITE_IOCAP_ATOMIC | SQLITE_IOCAP_POWERSAFE_OVERWRITE | SQLITE_IOCAP_SAFE_APPEND | SQLITE_IOCAP_SEQUENTIAL
+}
+
+func memdbFetch(tls *libc.TLS, pFile uintptr, iOfst Sqlite3_int64, iAmt int32, pp uintptr) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ memdbEnter(tls, p)
+ if iOfst+Sqlite3_int64(iAmt) > (*MemStore)(unsafe.Pointer(p)).Fsz || (*MemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_RESIZEABLE) != uint32(0) {
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ } else {
+ (*MemStore)(unsafe.Pointer(p)).FnMmap++
+ *(*uintptr)(unsafe.Pointer(pp)) = (*MemStore)(unsafe.Pointer(p)).FaData + uintptr(iOfst)
+ }
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbUnfetch(tls *libc.TLS, pFile uintptr, iOfst Sqlite3_int64, pPage uintptr) int32 {
+ var p uintptr = (*MemFile)(unsafe.Pointer(pFile)).FpStore
+ _ = iOfst
+ _ = pPage
+ memdbEnter(tls, p)
+ (*MemStore)(unsafe.Pointer(p)).FnMmap--
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFd uintptr, flags int32, pOutFlags uintptr) int32 {
+ var pFile uintptr = pFd
+ var p uintptr = uintptr(0)
+ var szName int32
+ _ = pVfs
+
+ libc.X__builtin___memset_chk(tls, pFile, 0, uint64(unsafe.Sizeof(MemFile{})), libc.X__builtin_object_size(tls, pFile, 0))
+ szName = Xsqlite3Strlen30(tls, zName)
+ if szName > 1 && (int32(*(*int8)(unsafe.Pointer(zName))) == '/' || int32(*(*int8)(unsafe.Pointer(zName))) == '\\') {
+ var i int32
+ var pVfsMutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1)
+ Xsqlite3_mutex_enter(tls, pVfsMutex)
+ for i = 0; i < memdb_g.FnMemStore; i++ {
+ if libc.Xstrcmp(tls, (*MemStore)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(memdb_g.FapMemStore + uintptr(i)*8)))).FzFName, zName) == 0 {
+ p = *(*uintptr)(unsafe.Pointer(memdb_g.FapMemStore + uintptr(i)*8))
+ break
+ }
+ }
+ if p == uintptr(0) {
+ var apNew uintptr
+ p = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(MemStore{}))+uint64(szName)+uint64(3))
+ if p == uintptr(0) {
+ Xsqlite3_mutex_leave(tls, pVfsMutex)
+ return SQLITE_NOMEM
+ }
+ apNew = Xsqlite3Realloc(tls, memdb_g.FapMemStore,
+ uint64(unsafe.Sizeof(uintptr(0)))*uint64(memdb_g.FnMemStore+1))
+ if apNew == uintptr(0) {
+ Xsqlite3_free(tls, p)
+ Xsqlite3_mutex_leave(tls, pVfsMutex)
+ return SQLITE_NOMEM
+ }
+ *(*uintptr)(unsafe.Pointer(apNew + uintptr(libc.PostIncInt32(&memdb_g.FnMemStore, 1))*8)) = p
+ memdb_g.FapMemStore = apNew
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(MemStore{})), libc.X__builtin_object_size(tls, p, 0))
+ (*MemStore)(unsafe.Pointer(p)).FmFlags = uint32(SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE)
+ (*MemStore)(unsafe.Pointer(p)).FszMax = Xsqlite3Config.FmxMemdbSize
+ (*MemStore)(unsafe.Pointer(p)).FzFName = p + 1*72
+ libc.X__builtin___memcpy_chk(tls, (*MemStore)(unsafe.Pointer(p)).FzFName, zName, uint64(szName+1), libc.X__builtin_object_size(tls, (*MemStore)(unsafe.Pointer(p)).FzFName, 0))
+ (*MemStore)(unsafe.Pointer(p)).FpMutex = Xsqlite3_mutex_alloc(tls, SQLITE_MUTEX_FAST)
+ if (*MemStore)(unsafe.Pointer(p)).FpMutex == uintptr(0) {
+ memdb_g.FnMemStore--
+ Xsqlite3_free(tls, p)
+ Xsqlite3_mutex_leave(tls, pVfsMutex)
+ return SQLITE_NOMEM
+ }
+ (*MemStore)(unsafe.Pointer(p)).FnRef = 1
+ memdbEnter(tls, p)
+ } else {
+ memdbEnter(tls, p)
+ (*MemStore)(unsafe.Pointer(p)).FnRef++
+ }
+ Xsqlite3_mutex_leave(tls, pVfsMutex)
+ } else {
+ p = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(MemStore{})))
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(MemStore{})), libc.X__builtin_object_size(tls, p, 0))
+ (*MemStore)(unsafe.Pointer(p)).FmFlags = uint32(SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE)
+ (*MemStore)(unsafe.Pointer(p)).FszMax = Xsqlite3Config.FmxMemdbSize
+ }
+ (*MemFile)(unsafe.Pointer(pFile)).FpStore = p
+ if pOutFlags != uintptr(0) {
+ *(*int32)(unsafe.Pointer(pOutFlags)) = flags | SQLITE_OPEN_MEMORY
+ }
+ (*Sqlite3_file)(unsafe.Pointer(pFd)).FpMethods = uintptr(unsafe.Pointer(&memdb_io_methods))
+ memdbLeave(tls, p)
+ return SQLITE_OK
+}
+
+func memdbAccess(tls *libc.TLS, pVfs uintptr, zPath uintptr, flags int32, pResOut uintptr) int32 {
+ _ = pVfs
+ _ = zPath
+ _ = flags
+ *(*int32)(unsafe.Pointer(pResOut)) = 0
+ return SQLITE_OK
+}
+
+func memdbFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ _ = pVfs
+ Xsqlite3_snprintf(tls, nOut, zOut, ts+3658, libc.VaList(bp, zPath))
+ return SQLITE_OK
+}
+
+func memdbDlOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr) uintptr {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxDlOpen})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, zPath)
+}
+
+func memdbDlError(tls *libc.TLS, pVfs uintptr, nByte int32, zErrMsg uintptr) {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxDlError})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nByte, zErrMsg)
+}
+
+func memdbDlSym(tls *libc.TLS, pVfs uintptr, p uintptr, zSym uintptr) uintptr {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxDlSym})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, p, zSym)
+}
+
+func memdbDlClose(tls *libc.TLS, pVfs uintptr, pHandle uintptr) {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxDlClose})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, pHandle)
+}
+
+func memdbRandomness(tls *libc.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxRandomness})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nByte, zBufOut)
+}
+
+func memdbSleep(tls *libc.TLS, pVfs uintptr, nMicro int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxSleep})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, nMicro)
+}
+
+func memdbGetLastError(tls *libc.TLS, pVfs uintptr, a int32, b uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxGetLastError})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, a, b)
+}
+
+func memdbCurrentTimeInt64(tls *libc.TLS, pVfs uintptr, p uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData)).FxCurrentTimeInt64})).f(tls, (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FpAppData, p)
+}
+
+func memdbFromDbSchema(tls *libc.TLS, db uintptr, zSchema uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pStore uintptr
+ var rc int32 = Xsqlite3_file_control(tls, db, zSchema, SQLITE_FCNTL_FILE_POINTER, bp)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ if (*MemFile)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FpMethods != uintptr(unsafe.Pointer(&memdb_io_methods)) {
+ return uintptr(0)
+ }
+ pStore = (*MemFile)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpStore
+ memdbEnter(tls, pStore)
+ if (*MemStore)(unsafe.Pointer(pStore)).FzFName != uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ }
+ memdbLeave(tls, pStore)
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+// Return the serialization of a database
+func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintptr, mFlags uint32) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr
+ var iDb int32
+ var pBt uintptr
+ var sz Sqlite3_int64
+ var szPage int32 = 0
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var pOut uintptr
+ var zSql uintptr
+ var rc int32
+
+ if zSchema == uintptr(0) {
+ zSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FzDbSName
+ }
+ p = memdbFromDbSchema(tls, db, zSchema)
+ iDb = Xsqlite3FindDbName(tls, db, zSchema)
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = int64(-1)
+ }
+ if iDb < 0 {
+ return uintptr(0)
+ }
+ if p != 0 {
+ var pStore uintptr = (*MemFile)(unsafe.Pointer(p)).FpStore
+
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = (*MemStore)(unsafe.Pointer(pStore)).Fsz
+ }
+ if mFlags&uint32(SQLITE_SERIALIZE_NOCOPY) != 0 {
+ pOut = (*MemStore)(unsafe.Pointer(pStore)).FaData
+ } else {
+ pOut = Xsqlite3_malloc64(tls, uint64((*MemStore)(unsafe.Pointer(pStore)).Fsz))
+ if pOut != 0 {
+ libc.X__builtin___memcpy_chk(tls, pOut, (*MemStore)(unsafe.Pointer(pStore)).FaData, uint64((*MemStore)(unsafe.Pointer(pStore)).Fsz), libc.X__builtin_object_size(tls, pOut, 0))
+ }
+ }
+ return pOut
+ }
+ pBt = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if pBt == uintptr(0) {
+ return uintptr(0)
+ }
+ szPage = Xsqlite3BtreeGetPageSize(tls, pBt)
+ zSql = Xsqlite3_mprintf(tls, ts+4259, libc.VaList(bp, zSchema))
+ if zSql != 0 {
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp+8, uintptr(0))
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ Xsqlite3_free(tls, zSql)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if rc != SQLITE_ROW {
+ pOut = uintptr(0)
+ } else {
+ sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0) * Sqlite_int64(szPage)
+ if piSize != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piSize)) = sz
+ }
+ if mFlags&uint32(SQLITE_SERIALIZE_NOCOPY) != 0 {
+ pOut = uintptr(0)
+ } else {
+ pOut = Xsqlite3_malloc64(tls, uint64(sz))
+ if pOut != 0 {
+ var nPage int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0)
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ var pgno int32
+ for pgno = 1; pgno <= nPage; pgno++ {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var pTo uintptr = pOut + uintptr(Sqlite3_int64(szPage)*Sqlite3_int64(pgno-1))
+ rc = Xsqlite3PagerGet(tls, pPager, uint32(pgno), bp+16, 0)
+ if rc == SQLITE_OK {
+ libc.X__builtin___memcpy_chk(tls, pTo, Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 16))), uint64(szPage), libc.X__builtin_object_size(tls, pTo, 0))
+ } else {
+ libc.X__builtin___memset_chk(tls, pTo, 0, uint64(szPage), libc.X__builtin_object_size(tls, pTo, 0))
+ }
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ }
+ }
+ }
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ return pOut
+}
+
+// Convert zSchema to a MemDB and initialize its content.
+func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uintptr, szDb Sqlite3_int64, szBuf Sqlite3_int64, mFlags uint32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr
+ var zSql uintptr
+
+ var rc int32
+ var iDb int32
+ var pStore uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if !(zSchema == uintptr(0)) {
+ goto __1
+ }
+ zSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FzDbSName
+__1:
+ ;
+ iDb = Xsqlite3FindDbName(tls, db, zSchema)
+
+ if !(iDb < 2 && iDb != 0) {
+ goto __2
+ }
+ rc = SQLITE_ERROR
+ goto end_deserialize
+__2:
+ ;
+ zSql = Xsqlite3_mprintf(tls, ts+4282, libc.VaList(bp, zSchema))
+ if !(zSql == uintptr(0)) {
+ goto __3
+ }
+ rc = SQLITE_NOMEM
+ goto __4
+__3:
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp+8, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+__4:
+ ;
+ if !(rc != 0) {
+ goto __5
+ }
+ goto end_deserialize
+__5:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(iDb)
+ libc.SetBitFieldPtr8Uint32(db+192+8, uint32(1), 2, 0x4)
+ rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ libc.SetBitFieldPtr8Uint32(db+192+8, uint32(0), 2, 0x4)
+ if !(rc != SQLITE_DONE) {
+ goto __6
+ }
+ rc = SQLITE_ERROR
+ goto end_deserialize
+__6:
+ ;
+ p = memdbFromDbSchema(tls, db, zSchema)
+ if !(p == uintptr(0)) {
+ goto __7
+ }
+ rc = SQLITE_ERROR
+ goto __8
+__7:
+ pStore = (*MemFile)(unsafe.Pointer(p)).FpStore
+ (*MemStore)(unsafe.Pointer(pStore)).FaData = pData
+ pData = uintptr(0)
+ (*MemStore)(unsafe.Pointer(pStore)).Fsz = szDb
+ (*MemStore)(unsafe.Pointer(pStore)).FszAlloc = szBuf
+ (*MemStore)(unsafe.Pointer(pStore)).FszMax = szBuf
+ if !((*MemStore)(unsafe.Pointer(pStore)).FszMax < Xsqlite3Config.FmxMemdbSize) {
+ goto __9
+ }
+ (*MemStore)(unsafe.Pointer(pStore)).FszMax = Xsqlite3Config.FmxMemdbSize
+__9:
+ ;
+ (*MemStore)(unsafe.Pointer(pStore)).FmFlags = mFlags
+ rc = SQLITE_OK
+__8:
+ ;
+end_deserialize:
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if !(pData != 0 && mFlags&uint32(SQLITE_DESERIALIZE_FREEONCLOSE) != uint32(0)) {
+ goto __10
+ }
+ Xsqlite3_free(tls, pData)
+__10:
+ ;
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Return true if the VFS is the memvfs.
+func Xsqlite3IsMemdb(tls *libc.TLS, pVfs uintptr) int32 {
+ return libc.Bool32(pVfs == uintptr(unsafe.Pointer(&memdb_vfs)))
+}
+
+// This routine is called when the extension is loaded.
+// Register the new VFS.
+func Xsqlite3MemdbInit(tls *libc.TLS) int32 {
+ var pLower uintptr = Xsqlite3_vfs_find(tls, uintptr(0))
+ var sz uint32
+ if pLower == uintptr(0) {
+ return SQLITE_ERROR
+ }
+ sz = uint32((*Sqlite3_vfs)(unsafe.Pointer(pLower)).FszOsFile)
+ memdb_vfs.FpAppData = pLower
+
+ if uint64(sz) < uint64(unsafe.Sizeof(MemFile{})) {
+ sz = uint32(unsafe.Sizeof(MemFile{}))
+ }
+ memdb_vfs.FszOsFile = int32(sz)
+ return Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&memdb_vfs)), 0)
+}
+
+// Create a new bitmap object able to handle bits between 0 and iSize,
+// inclusive. Return a pointer to the new object. Return NULL if
+// malloc fails.
+func Xsqlite3BitvecCreate(tls *libc.TLS, iSize U32) uintptr {
+ var p uintptr
+
+ p = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Bitvec{})))
+ if p != 0 {
+ (*Bitvec)(unsafe.Pointer(p)).FiSize = iSize
+ }
+ return p
+}
+
+// Check to see if the i-th bit is set. Return true or false.
+// If p is NULL (if the bitmap has not been created) or if
+// i is out of range, then return false.
+func Xsqlite3BitvecTestNotNull(tls *libc.TLS, p uintptr, i U32) int32 {
+ i--
+ if i >= (*Bitvec)(unsafe.Pointer(p)).FiSize {
+ return 0
+ }
+ for (*Bitvec)(unsafe.Pointer(p)).FiDivisor != 0 {
+ var bin U32 = i / (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ i = i % (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ p = *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8))
+ if !(p != 0) {
+ return 0
+ }
+ }
+ if uint64((*Bitvec)(unsafe.Pointer(p)).FiSize) <= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U8(0)))*uint64(BITVEC_SZELEM) {
+ return libc.Bool32(int32(*(*U8)(unsafe.Pointer(p + 16 + uintptr(i/U32(BITVEC_SZELEM)))))&(int32(1)<<(i&U32(BITVEC_SZELEM-1))) != 0)
+ } else {
+ var h U32 = U32(uint64(libc.PostIncUint32(&i, 1)*U32(1)) % ((uint64(BITVEC_SZ) - uint64(3)*uint64(unsafe.Sizeof(U32(0)))) / uint64(unsafe.Sizeof(uintptr(0))) * uint64(unsafe.Sizeof(uintptr(0))) / uint64(unsafe.Sizeof(U32(0)))))
+ for *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) != 0 {
+ if *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) == i {
+ return 1
+ }
+ h = U32(uint64(h+U32(1)) % ((uint64(BITVEC_SZ) - uint64(3)*uint64(unsafe.Sizeof(U32(0)))) / uint64(unsafe.Sizeof(uintptr(0))) * uint64(unsafe.Sizeof(uintptr(0))) / uint64(unsafe.Sizeof(U32(0)))))
+ }
+ return 0
+ }
+ return int32(0)
+}
+
+func Xsqlite3BitvecTest(tls *libc.TLS, p uintptr, i U32) int32 {
+ return libc.Bool32(p != uintptr(0) && Xsqlite3BitvecTestNotNull(tls, p, i) != 0)
+}
+
+// Set the i-th bit. Return 0 on success and an error code if
+// anything goes wrong.
+//
+// This routine might cause sub-bitmaps to be allocated. Failing
+// to get the memory needed to hold the sub-bitmap is the only
+// that can go wrong with an insert, assuming p and i are valid.
+//
+// The calling function must ensure that p is a valid Bitvec object
+// and that the value for "i" is within range of the Bitvec object.
+// Otherwise the behavior is undefined.
+func Xsqlite3BitvecSet(tls *libc.TLS, p uintptr, i U32) int32 {
+ var h U32
+ var bin U32
+ var j uint32
+ var rc int32
+ var aiValues uintptr
+ if !(p == uintptr(0)) {
+ goto __1
+ }
+ return SQLITE_OK
+__1:
+ ;
+ i--
+__2:
+ if !(uint64((*Bitvec)(unsafe.Pointer(p)).FiSize) > (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U8(0)))*uint64(BITVEC_SZELEM) && (*Bitvec)(unsafe.Pointer(p)).FiDivisor != 0) {
+ goto __3
+ }
+ bin = i / (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ i = i % (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ if !(*(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8)) == uintptr(0)) {
+ goto __4
+ }
+ *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8)) = Xsqlite3BitvecCreate(tls, (*Bitvec)(unsafe.Pointer(p)).FiDivisor)
+ if !(*(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8)) == uintptr(0)) {
+ goto __5
+ }
+ return SQLITE_NOMEM
+__5:
+ ;
+__4:
+ ;
+ p = *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8))
+ goto __2
+__3:
+ ;
+ if !(uint64((*Bitvec)(unsafe.Pointer(p)).FiSize) <= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U8(0)))*uint64(BITVEC_SZELEM)) {
+ goto __6
+ }
+ *(*U8)(unsafe.Pointer(p + 16 + uintptr(i/U32(BITVEC_SZELEM)))) |= U8(int32(1) << (i & U32(BITVEC_SZELEM-1)))
+ return SQLITE_OK
+__6:
+ ;
+ h = U32(uint64(libc.PostIncUint32(&i, 1)*U32(1)) % ((uint64(BITVEC_SZ) - uint64(3)*uint64(unsafe.Sizeof(U32(0)))) / uint64(unsafe.Sizeof(uintptr(0))) * uint64(unsafe.Sizeof(uintptr(0))) / uint64(unsafe.Sizeof(U32(0)))))
+
+ if !!(int32(*(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4))) != 0) {
+ goto __7
+ }
+ if !(uint64((*Bitvec)(unsafe.Pointer(p)).FnSet) < (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0)))-uint64(1)) {
+ goto __8
+ }
+ goto bitvec_set_end
+ goto __9
+__8:
+ goto bitvec_set_rehash
+__9:
+ ;
+__7:
+ ;
+__10:
+ if !(*(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) == i) {
+ goto __13
+ }
+ return SQLITE_OK
+__13:
+ ;
+ h++
+ if !(uint64(h) >= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0)))) {
+ goto __14
+ }
+ h = U32(0)
+__14:
+ ;
+ goto __11
+__11:
+ if *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) != 0 {
+ goto __10
+ }
+ goto __12
+__12:
+ ;
+bitvec_set_rehash:
+ if !(uint64((*Bitvec)(unsafe.Pointer(p)).FnSet) >= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0)))/uint64(2)) {
+ goto __15
+ }
+ aiValues = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(unsafe.Sizeof([124]U32{})))
+ if !(aiValues == uintptr(0)) {
+ goto __16
+ }
+ return SQLITE_NOMEM
+ goto __17
+__16:
+ libc.X__builtin___memcpy_chk(tls, aiValues, p+16, uint64(unsafe.Sizeof([124]U32{})), libc.X__builtin_object_size(tls, aiValues, 0))
+ libc.X__builtin___memset_chk(tls, p+16, 0, uint64(unsafe.Sizeof([62]uintptr{})), libc.X__builtin_object_size(tls, p+16, 0))
+ (*Bitvec)(unsafe.Pointer(p)).FiDivisor = U32((uint64((*Bitvec)(unsafe.Pointer(p)).FiSize) + (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)) / ((uint64(BITVEC_SZ) - uint64(3)*uint64(unsafe.Sizeof(U32(0)))) / uint64(unsafe.Sizeof(uintptr(0))) * uint64(unsafe.Sizeof(uintptr(0))) / uint64(unsafe.Sizeof(uintptr(0)))))
+ rc = Xsqlite3BitvecSet(tls, p, i)
+ j = uint32(0)
+__18:
+ if !(uint64(j) < (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0)))) {
+ goto __20
+ }
+ if !(*(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != 0) {
+ goto __21
+ }
+ rc = rc | Xsqlite3BitvecSet(tls, p, *(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4)))
+__21:
+ ;
+ goto __19
+__19:
+ j++
+ goto __18
+ goto __20
+__20:
+ ;
+ Xsqlite3DbFree(tls, uintptr(0), aiValues)
+ return rc
+__17:
+ ;
+__15:
+ ;
+bitvec_set_end:
+ (*Bitvec)(unsafe.Pointer(p)).FnSet++
+ *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) = i
+ return SQLITE_OK
+}
+
+// Clear the i-th bit.
+//
+// pBuf must be a pointer to at least BITVEC_SZ bytes of temporary storage
+// that BitvecClear can use to rebuilt its hash table.
+func Xsqlite3BitvecClear(tls *libc.TLS, p uintptr, i U32, pBuf uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+
+ i--
+ for (*Bitvec)(unsafe.Pointer(p)).FiDivisor != 0 {
+ var bin U32 = i / (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ i = i % (*Bitvec)(unsafe.Pointer(p)).FiDivisor
+ p = *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(bin)*8))
+ if !(p != 0) {
+ return
+ }
+ }
+ if uint64((*Bitvec)(unsafe.Pointer(p)).FiSize) <= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U8(0)))*uint64(BITVEC_SZELEM) {
+ *(*U8)(unsafe.Pointer(p + 16 + uintptr(i/U32(BITVEC_SZELEM)))) &= U8(^(int32(1) << (i & U32(BITVEC_SZELEM-1))))
+ } else {
+ var j uint32
+ var aiValues uintptr = pBuf
+ libc.X__builtin___memcpy_chk(tls, aiValues, p+16, uint64(unsafe.Sizeof([124]U32{})), libc.X__builtin_object_size(tls, aiValues, 0))
+ libc.X__builtin___memset_chk(tls, p+16, 0, uint64(unsafe.Sizeof([124]U32{})), libc.X__builtin_object_size(tls, p+16, 0))
+ (*Bitvec)(unsafe.Pointer(p)).FnSet = U32(0)
+ for j = uint32(0); uint64(j) < (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0))); j++ {
+ if *(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != 0 && *(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != i+U32(1) {
+ var h U32 = U32(uint64((*(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4))-U32(1))*U32(1)) % ((uint64(BITVEC_SZ) - uint64(3)*uint64(unsafe.Sizeof(U32(0)))) / uint64(unsafe.Sizeof(uintptr(0))) * uint64(unsafe.Sizeof(uintptr(0))) / uint64(unsafe.Sizeof(U32(0)))))
+ (*Bitvec)(unsafe.Pointer(p)).FnSet++
+ for *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) != 0 {
+ h++
+ if uint64(h) >= (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(U32(0))) {
+ h = U32(0)
+ }
+ }
+ *(*U32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) = *(*U32)(unsafe.Pointer(aiValues + uintptr(j)*4))
+ }
+ }
+ }
+}
+
+// Destroy a bitmap object. Reclaim all memory used.
+func Xsqlite3BitvecDestroy(tls *libc.TLS, p uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+ if (*Bitvec)(unsafe.Pointer(p)).FiDivisor != 0 {
+ var i uint32
+ for i = uint32(0); uint64(i) < (uint64(BITVEC_SZ)-uint64(3)*uint64(unsafe.Sizeof(U32(0))))/uint64(unsafe.Sizeof(uintptr(0)))*uint64(unsafe.Sizeof(uintptr(0)))/uint64(unsafe.Sizeof(uintptr(0))); i++ {
+ Xsqlite3BitvecDestroy(tls, *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(i)*8)))
+ }
+ }
+ Xsqlite3_free(tls, p)
+}
+
+// Return the value of the iSize parameter specified when Bitvec *p
+// was created.
+func Xsqlite3BitvecSize(tls *libc.TLS, p uintptr) U32 {
+ return (*Bitvec)(unsafe.Pointer(p)).FiSize
+}
+
+// This routine runs an extensive test of the Bitvec code.
+//
+// The input is an array of integers that acts as a program
+// to test the Bitvec. The integers are opcodes followed
+// by 0, 1, or 3 operands, depending on the opcode. Another
+// opcode follows immediately after the last operand.
+//
+// There are 6 opcodes numbered from 0 through 5. 0 is the
+// "halt" opcode and causes the test to end.
+//
+// 0 Halt and return the number of errors
+// 1 N S X Set N bits beginning with S and incrementing by X
+// 2 N S X Clear N bits beginning with S and incrementing by X
+// 3 N Set N randomly chosen bits
+// 4 N Clear N randomly chosen bits
+// 5 N S X Set N bits from S increment X in array only, not in bitvec
+//
+// The opcodes 1 through 4 perform set and clear operations are performed
+// on both a Bitvec object and on a linear array of bits obtained from malloc.
+// Opcode 5 works on the linear array only, not on the Bitvec.
+// Opcode 5 is used to deliberately induce a fault in order to
+// confirm that error detection works.
+//
+// At the conclusion of the test the linear array is compared
+// against the Bitvec object. If there are any differences,
+// an error is returned. If they are the same, zero is returned.
+//
+// If a memory allocation error occurs, return -1.
+func Xsqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pBitvec uintptr
+ var pV uintptr
+ var rc int32
+
+ var nx int32
+ var pc int32
+ var op int32
+ var pTmpSpace uintptr
+ pBitvec = uintptr(0)
+ pV = uintptr(0)
+ rc = -1
+
+ pBitvec = Xsqlite3BitvecCreate(tls, uint32(sz))
+ pV = Xsqlite3MallocZero(tls, uint64((sz+7)/8+1))
+ pTmpSpace = Xsqlite3_malloc64(tls, uint64(BITVEC_SZ))
+ if !(pBitvec == uintptr(0) || pV == uintptr(0) || pTmpSpace == uintptr(0)) {
+ goto __1
+ }
+ goto bitvec_end
+__1:
+ ;
+ Xsqlite3BitvecSet(tls, uintptr(0), uint32(1))
+ Xsqlite3BitvecClear(tls, uintptr(0), uint32(1), pTmpSpace)
+
+ pc = libc.AssignPtrInt32(bp, 0)
+__2:
+ if !(libc.AssignInt32(&op, *(*int32)(unsafe.Pointer(aOp + uintptr(pc)*4))) != 0) {
+ goto __3
+ }
+ switch op {
+ case 1:
+ goto __5
+ case 2:
+ goto __6
+ case 5:
+ goto __7
+ case 3:
+ goto __8
+ case 4:
+ goto __9
+ default:
+ goto __10
+ }
+ goto __4
+__5:
+__6:
+__7:
+ nx = 4
+ *(*int32)(unsafe.Pointer(bp)) = *(*int32)(unsafe.Pointer(aOp + uintptr(pc+2)*4)) - 1
+ *(*int32)(unsafe.Pointer(aOp + uintptr(pc+2)*4)) += *(*int32)(unsafe.Pointer(aOp + uintptr(pc+3)*4))
+ goto __4
+
+__8:
+__9:
+__10:
+ nx = 2
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(int32(0))), bp)
+ goto __4
+
+__4:
+ ;
+ if !(libc.PreDecInt32(&*(*int32)(unsafe.Pointer(aOp + uintptr(pc+1)*4)), 1) > 0) {
+ goto __11
+ }
+ nx = 0
+__11:
+ ;
+ pc = pc + nx
+ *(*int32)(unsafe.Pointer(bp)) = *(*int32)(unsafe.Pointer(bp)) & 0x7fffffff % sz
+ if !(op&1 != 0) {
+ goto __12
+ }
+ *(*uint8)(unsafe.Pointer(pV + uintptr((*(*int32)(unsafe.Pointer(bp))+1)>>3))) |= uint8(int32(1) << ((*(*int32)(unsafe.Pointer(bp)) + 1) & 7))
+ if !(op != 5) {
+ goto __14
+ }
+ if !(Xsqlite3BitvecSet(tls, pBitvec, uint32(*(*int32)(unsafe.Pointer(bp))+1)) != 0) {
+ goto __15
+ }
+ goto bitvec_end
+__15:
+ ;
+__14:
+ ;
+ goto __13
+__12:
+ *(*uint8)(unsafe.Pointer(pV + uintptr((*(*int32)(unsafe.Pointer(bp))+1)>>3))) &= uint8(^(int32(1) << ((*(*int32)(unsafe.Pointer(bp)) + 1) & 7)))
+ Xsqlite3BitvecClear(tls, pBitvec, uint32(*(*int32)(unsafe.Pointer(bp))+1), pTmpSpace)
+__13:
+ ;
+ goto __2
+__3:
+ ;
+ rc = int32(U32(Xsqlite3BitvecTest(tls, uintptr(0), uint32(0))+Xsqlite3BitvecTest(tls, pBitvec, uint32(sz+1))+
+ Xsqlite3BitvecTest(tls, pBitvec, uint32(0))) +
+ (Xsqlite3BitvecSize(tls, pBitvec) - U32(sz)))
+ *(*int32)(unsafe.Pointer(bp)) = 1
+__16:
+ if !(*(*int32)(unsafe.Pointer(bp)) <= sz) {
+ goto __18
+ }
+ if !(libc.Bool32(int32(*(*uint8)(unsafe.Pointer(pV + uintptr(*(*int32)(unsafe.Pointer(bp))>>3))))&(int32(1)<<(*(*int32)(unsafe.Pointer(bp))&7)) != 0) != Xsqlite3BitvecTest(tls, pBitvec, uint32(*(*int32)(unsafe.Pointer(bp))))) {
+ goto __19
+ }
+ rc = *(*int32)(unsafe.Pointer(bp))
+ goto __18
+__19:
+ ;
+ goto __17
+__17:
+ *(*int32)(unsafe.Pointer(bp))++
+ goto __16
+ goto __18
+__18:
+ ;
+bitvec_end:
+ Xsqlite3_free(tls, pTmpSpace)
+ Xsqlite3_free(tls, pV)
+ Xsqlite3BitvecDestroy(tls, pBitvec)
+ return rc
+}
+
+func pcacheManageDirtyList(tls *libc.TLS, pPage uintptr, addRemove U8) {
+ var p uintptr = (*PgHdr)(unsafe.Pointer(pPage)).FpCache
+
+ if int32(addRemove)&PCACHE_DIRTYLIST_REMOVE != 0 {
+ if (*PCache)(unsafe.Pointer(p)).FpSynced == pPage {
+ (*PCache)(unsafe.Pointer(p)).FpSynced = (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
+ }
+
+ if (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext != 0 {
+ (*PgHdr)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext)).FpDirtyPrev = (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
+ } else {
+ (*PCache)(unsafe.Pointer(p)).FpDirtyTail = (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev
+ }
+ if (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev != 0 {
+ (*PgHdr)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev)).FpDirtyNext = (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext
+ } else {
+ (*PCache)(unsafe.Pointer(p)).FpDirty = (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext
+
+ if (*PCache)(unsafe.Pointer(p)).FpDirty == uintptr(0) {
+ (*PCache)(unsafe.Pointer(p)).FeCreate = U8(2)
+ }
+ }
+ }
+ if int32(addRemove)&PCACHE_DIRTYLIST_ADD != 0 {
+ (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev = uintptr(0)
+ (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext = (*PCache)(unsafe.Pointer(p)).FpDirty
+ if (*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext != 0 {
+ (*PgHdr)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(pPage)).FpDirtyNext)).FpDirtyPrev = pPage
+ } else {
+ (*PCache)(unsafe.Pointer(p)).FpDirtyTail = pPage
+ if (*PCache)(unsafe.Pointer(p)).FbPurgeable != 0 {
+ (*PCache)(unsafe.Pointer(p)).FeCreate = U8(1)
+ }
+ }
+ (*PCache)(unsafe.Pointer(p)).FpDirty = pPage
+
+ if !(int32((*PCache)(unsafe.Pointer(p)).FpSynced) != 0) &&
+ 0 == int32((*PgHdr)(unsafe.Pointer(pPage)).Fflags)&PGHDR_NEED_SYNC {
+ (*PCache)(unsafe.Pointer(p)).FpSynced = pPage
+ }
+ }
+
+}
+
+func pcacheUnpin(tls *libc.TLS, p uintptr) {
+ if (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FbPurgeable != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxUnpin})).f(tls, (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FpCache, (*PgHdr)(unsafe.Pointer(p)).FpPage, 0)
+
+ }
+}
+
+func numberOfCachePages(tls *libc.TLS, p uintptr) int32 {
+ if (*PCache)(unsafe.Pointer(p)).FszCache >= 0 {
+ return (*PCache)(unsafe.Pointer(p)).FszCache
+ } else {
+ var n I64
+
+ n = int64(-1024) * I64((*PCache)(unsafe.Pointer(p)).FszCache) / I64((*PCache)(unsafe.Pointer(p)).FszPage+(*PCache)(unsafe.Pointer(p)).FszExtra)
+ if n > int64(1000000000) {
+ n = int64(1000000000)
+ }
+ return int32(n)
+ }
+ return int32(0)
+}
+
+// ************************************************** General Interfaces ******
+//
+// Initialize and shutdown the page cache subsystem. Neither of these
+// functions are threadsafe.
+func Xsqlite3PcacheInitialize(tls *libc.TLS) int32 {
+ if Xsqlite3Config.Fpcache2.FxInit == uintptr(0) {
+ Xsqlite3PCacheSetDefault(tls)
+
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxInit})).f(tls, Xsqlite3Config.Fpcache2.FpArg)
+}
+
+func Xsqlite3PcacheShutdown(tls *libc.TLS) {
+ if Xsqlite3Config.Fpcache2.FxShutdown != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxShutdown})).f(tls, Xsqlite3Config.Fpcache2.FpArg)
+ }
+}
+
+// Return the size in bytes of a PCache object.
+func Xsqlite3PcacheSize(tls *libc.TLS) int32 {
+ return int32(unsafe.Sizeof(PCache{}))
+}
+
+// Create a new PCache object. Storage space to hold the object
+// has already been allocated and is passed in as the p pointer.
+// The caller discovers how much space needs to be allocated by
+// calling sqlite3PcacheSize().
+//
+// szExtra is some extra space allocated for each page. The first
+// 8 bytes of the extra space will be zeroed as the page is allocated,
+// but remaining content will be uninitialized. Though it is opaque
+// to this module, the extra space really ends up being the MemPage
+// structure in the pager.
+func Xsqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) int32 {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(PCache{})), libc.X__builtin_object_size(tls, p, 0))
+ (*PCache)(unsafe.Pointer(p)).FszPage = 1
+ (*PCache)(unsafe.Pointer(p)).FszExtra = szExtra
+
+ (*PCache)(unsafe.Pointer(p)).FbPurgeable = U8(bPurgeable)
+ (*PCache)(unsafe.Pointer(p)).FeCreate = U8(2)
+ (*PCache)(unsafe.Pointer(p)).FxStress = xStress
+ (*PCache)(unsafe.Pointer(p)).FpStress = pStress
+ (*PCache)(unsafe.Pointer(p)).FszCache = 100
+ (*PCache)(unsafe.Pointer(p)).FszSpill = 1
+
+ return Xsqlite3PcacheSetPageSize(tls, p, szPage)
+}
+
+// Change the page size for PCache object. The caller must ensure that there
+// are no outstanding page references when this function is called.
+func Xsqlite3PcacheSetPageSize(tls *libc.TLS, pCache uintptr, szPage int32) int32 {
+ if (*PCache)(unsafe.Pointer(pCache)).FszPage != 0 {
+ var pNew uintptr
+ pNew = (*struct {
+ f func(*libc.TLS, int32, int32, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxCreate})).f(tls,
+ szPage, int32(uint64((*PCache)(unsafe.Pointer(pCache)).FszExtra)+(uint64(unsafe.Sizeof(PgHdr{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7))),
+ int32((*PCache)(unsafe.Pointer(pCache)).FbPurgeable))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxCachesize})).f(tls, pNew, numberOfCachePages(tls, pCache))
+ if (*PCache)(unsafe.Pointer(pCache)).FpCache != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxDestroy})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache)
+ }
+ (*PCache)(unsafe.Pointer(pCache)).FpCache = pNew
+ (*PCache)(unsafe.Pointer(pCache)).FszPage = szPage
+
+ }
+ return SQLITE_OK
+}
+
+// Try to obtain a page from the cache.
+//
+// This routine returns a pointer to an sqlite3_pcache_page object if
+// such an object is already in cache, or if a new one is created.
+// This routine returns a NULL pointer if the object was not in cache
+// and could not be created.
+//
+// The createFlags should be 0 to check for existing pages and should
+// be 3 (not 1, but 3) to try to create a new page.
+//
+// If the createFlag is 0, then NULL is always returned if the page
+// is not already in the cache. If createFlag is 1, then a new page
+// is created only if that can be done without spilling dirty pages
+// and without exceeding the cache size limit.
+//
+// The caller needs to invoke sqlite3PcacheFetchFinish() to properly
+// initialize the sqlite3_pcache_page object and convert it into a
+// PgHdr object. The sqlite3PcacheFetch() and sqlite3PcacheFetchFinish()
+// routines are split this way for performance reasons. When separated
+// they can both (usually) operate without having to push values to
+// the stack on entry and pop them back off on exit, which saves a
+// lot of pushing and popping.
+func Xsqlite3PcacheFetch(tls *libc.TLS, pCache uintptr, pgno Pgno, createFlag int32) uintptr {
+ var eCreate int32
+ var pRes uintptr
+
+ eCreate = createFlag & int32((*PCache)(unsafe.Pointer(pCache)).FeCreate)
+
+ pRes = (*struct {
+ f func(*libc.TLS, uintptr, uint32, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxFetch})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, pgno, eCreate)
+
+ return pRes
+}
+
+// If the sqlite3PcacheFetch() routine is unable to allocate a new
+// page because no clean pages are available for reuse and the cache
+// size limit has been reached, then this routine can be invoked to
+// try harder to allocate a page. This routine might invoke the stress
+// callback to spill dirty pages to the journal. It will then try to
+// allocate the new page and will only fail to allocate a new page on
+// an OOM error.
+//
+// This routine should be invoked only after sqlite3PcacheFetch() fails.
+func Xsqlite3PcacheFetchStress(tls *libc.TLS, pCache uintptr, pgno Pgno, ppPage uintptr) int32 {
+ var pPg uintptr
+ if int32((*PCache)(unsafe.Pointer(pCache)).FeCreate) == 2 {
+ return 0
+ }
+
+ if Xsqlite3PcachePagecount(tls, pCache) > (*PCache)(unsafe.Pointer(pCache)).FszSpill {
+ for pPg = (*PCache)(unsafe.Pointer(pCache)).FpSynced; pPg != 0 && ((*PgHdr)(unsafe.Pointer(pPg)).FnRef != 0 || int32((*PgHdr)(unsafe.Pointer(pPg)).Fflags)&PGHDR_NEED_SYNC != 0); pPg = (*PgHdr)(unsafe.Pointer(pPg)).FpDirtyPrev {
+ }
+ (*PCache)(unsafe.Pointer(pCache)).FpSynced = pPg
+ if !(pPg != 0) {
+ for pPg = (*PCache)(unsafe.Pointer(pCache)).FpDirtyTail; pPg != 0 && (*PgHdr)(unsafe.Pointer(pPg)).FnRef != 0; pPg = (*PgHdr)(unsafe.Pointer(pPg)).FpDirtyPrev {
+ }
+ }
+ if pPg != 0 {
+ var rc int32
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*PCache)(unsafe.Pointer(pCache)).FxStress})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpStress, pPg)
+
+ if rc != SQLITE_OK && rc != SQLITE_BUSY {
+ return rc
+ }
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppPage)) = (*struct {
+ f func(*libc.TLS, uintptr, uint32, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxFetch})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, pgno, 2)
+ if *(*uintptr)(unsafe.Pointer(ppPage)) == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ return SQLITE_OK
+}
+
+func pcacheFetchFinishWithInit(tls *libc.TLS, pCache uintptr, pgno Pgno, pPage uintptr) uintptr {
+ var pPgHdr uintptr
+
+ pPgHdr = (*Sqlite3_pcache_page)(unsafe.Pointer(pPage)).FpExtra
+
+ libc.X__builtin___memset_chk(tls, pPgHdr+32, 0, uint64(unsafe.Sizeof(PgHdr{}))-uint64(uintptr(0)+32), libc.X__builtin_object_size(tls, pPgHdr+32, 0))
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).FpPage = pPage
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).FpData = (*Sqlite3_pcache_page)(unsafe.Pointer(pPage)).FpBuf
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).FpExtra = pPgHdr + 1*72
+ libc.X__builtin___memset_chk(tls, (*PgHdr)(unsafe.Pointer(pPgHdr)).FpExtra, 0, uint64(8), libc.X__builtin_object_size(tls, (*PgHdr)(unsafe.Pointer(pPgHdr)).FpExtra, 0))
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).FpCache = pCache
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).Fpgno = pgno
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).Fflags = U16(PGHDR_CLEAN)
+ return Xsqlite3PcacheFetchFinish(tls, pCache, pgno, pPage)
+}
+
+// This routine converts the sqlite3_pcache_page object returned by
+// sqlite3PcacheFetch() into an initialized PgHdr object. This routine
+// must be called after sqlite3PcacheFetch() in order to get a usable
+// result.
+func Xsqlite3PcacheFetchFinish(tls *libc.TLS, pCache uintptr, pgno Pgno, pPage uintptr) uintptr {
+ var pPgHdr uintptr
+
+ pPgHdr = (*Sqlite3_pcache_page)(unsafe.Pointer(pPage)).FpExtra
+
+ if !(int32((*PgHdr)(unsafe.Pointer(pPgHdr)).FpPage) != 0) {
+ return pcacheFetchFinishWithInit(tls, pCache, pgno, pPage)
+ }
+ (*PCache)(unsafe.Pointer(pCache)).FnRefSum++
+ (*PgHdr)(unsafe.Pointer(pPgHdr)).FnRef++
+
+ return pPgHdr
+}
+
+// Decrement the reference count on a page. If the page is clean and the
+// reference count drops to 0, then it is made eligible for recycling.
+func Xsqlite3PcacheRelease(tls *libc.TLS, p uintptr) {
+ (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FnRefSum--
+ if int32(libc.PreDecInt16(&(*PgHdr)(unsafe.Pointer(p)).FnRef, 1)) == 0 {
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_CLEAN != 0 {
+ pcacheUnpin(tls, p)
+ } else {
+ pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_FRONT))
+
+ }
+ }
+}
+
+// Increase the reference count of a supplied page by 1.
+func Xsqlite3PcacheRef(tls *libc.TLS, p uintptr) {
+ (*PgHdr)(unsafe.Pointer(p)).FnRef++
+ (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FnRefSum++
+}
+
+// Drop a page from the cache. There must be exactly one reference to the
+// page. This function deletes that reference, so after it returns the
+// page pointed to by p is invalid.
+func Xsqlite3PcacheDrop(tls *libc.TLS, p uintptr) {
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_DIRTY != 0 {
+ pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_REMOVE))
+ }
+ (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FnRefSum--
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxUnpin})).f(tls, (*PCache)(unsafe.Pointer((*PgHdr)(unsafe.Pointer(p)).FpCache)).FpCache, (*PgHdr)(unsafe.Pointer(p)).FpPage, 1)
+}
+
+// Make sure the page is marked as dirty. If it isn't dirty already,
+// make it so.
+func Xsqlite3PcacheMakeDirty(tls *libc.TLS, p uintptr) {
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&(PGHDR_CLEAN|PGHDR_DONT_WRITE) != 0 {
+ *(*U16)(unsafe.Pointer(p + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_DONT_WRITE))
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_CLEAN != 0 {
+ *(*U16)(unsafe.Pointer(p + 52)) ^= U16(PGHDR_DIRTY | PGHDR_CLEAN)
+
+ pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_ADD))
+
+ }
+
+ }
+}
+
+// Make sure the page is marked as clean. If it isn't clean already,
+// make it so.
+func Xsqlite3PcacheMakeClean(tls *libc.TLS, p uintptr) {
+ pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_REMOVE))
+ *(*U16)(unsafe.Pointer(p + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_DIRTY | PGHDR_NEED_SYNC | PGHDR_WRITEABLE))
+ *(*U16)(unsafe.Pointer(p + 52)) |= U16(PGHDR_CLEAN)
+
+ if int32((*PgHdr)(unsafe.Pointer(p)).FnRef) == 0 {
+ pcacheUnpin(tls, p)
+ }
+}
+
+// Make every page in the cache clean.
+func Xsqlite3PcacheCleanAll(tls *libc.TLS, pCache uintptr) {
+ var p uintptr
+
+ for libc.AssignUintptr(&p, (*PCache)(unsafe.Pointer(pCache)).FpDirty) != uintptr(0) {
+ Xsqlite3PcacheMakeClean(tls, p)
+ }
+}
+
+// Clear the PGHDR_NEED_SYNC and PGHDR_WRITEABLE flag from all dirty pages.
+func Xsqlite3PcacheClearWritable(tls *libc.TLS, pCache uintptr) {
+ var p uintptr
+
+ for p = (*PCache)(unsafe.Pointer(pCache)).FpDirty; p != 0; p = (*PgHdr)(unsafe.Pointer(p)).FpDirtyNext {
+ *(*U16)(unsafe.Pointer(p + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_NEED_SYNC | PGHDR_WRITEABLE))
+ }
+ (*PCache)(unsafe.Pointer(pCache)).FpSynced = (*PCache)(unsafe.Pointer(pCache)).FpDirtyTail
+}
+
+// Clear the PGHDR_NEED_SYNC flag from all dirty pages.
+func Xsqlite3PcacheClearSyncFlags(tls *libc.TLS, pCache uintptr) {
+ var p uintptr
+ for p = (*PCache)(unsafe.Pointer(pCache)).FpDirty; p != 0; p = (*PgHdr)(unsafe.Pointer(p)).FpDirtyNext {
+ *(*U16)(unsafe.Pointer(p + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_NEED_SYNC))
+ }
+ (*PCache)(unsafe.Pointer(pCache)).FpSynced = (*PCache)(unsafe.Pointer(pCache)).FpDirtyTail
+}
+
+// Change the page number of page p to newPgno.
+func Xsqlite3PcacheMove(tls *libc.TLS, p uintptr, newPgno Pgno) {
+ var pCache uintptr = (*PgHdr)(unsafe.Pointer(p)).FpCache
+ var pOther uintptr
+
+ pOther = (*struct {
+ f func(*libc.TLS, uintptr, uint32, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxFetch})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, newPgno, 0)
+ if pOther != 0 {
+ var pXPage uintptr = (*Sqlite3_pcache_page)(unsafe.Pointer(pOther)).FpExtra
+
+ (*PgHdr)(unsafe.Pointer(pXPage)).FnRef++
+ (*PCache)(unsafe.Pointer(pCache)).FnRefSum++
+ Xsqlite3PcacheDrop(tls, pXPage)
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uint32, uint32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxRekey})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, (*PgHdr)(unsafe.Pointer(p)).FpPage, (*PgHdr)(unsafe.Pointer(p)).Fpgno, newPgno)
+ (*PgHdr)(unsafe.Pointer(p)).Fpgno = newPgno
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_DIRTY != 0 && int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_NEED_SYNC != 0 {
+ pcacheManageDirtyList(tls, p, uint8(PCACHE_DIRTYLIST_FRONT))
+
+ }
+}
+
+// Drop every cache entry whose page number is greater than "pgno". The
+// caller must ensure that there are no outstanding references to any pages
+// other than page 1 with a page number greater than pgno.
+//
+// If there is a reference to page 1 and the pgno parameter passed to this
+// function is 0, then the data area associated with page 1 is zeroed, but
+// the page object is not dropped.
+func Xsqlite3PcacheTruncate(tls *libc.TLS, pCache uintptr, pgno Pgno) {
+ if (*PCache)(unsafe.Pointer(pCache)).FpCache != 0 {
+ var p uintptr
+ var pNext uintptr
+
+ for p = (*PCache)(unsafe.Pointer(pCache)).FpDirty; p != 0; p = pNext {
+ pNext = (*PgHdr)(unsafe.Pointer(p)).FpDirtyNext
+
+ if (*PgHdr)(unsafe.Pointer(p)).Fpgno > pgno {
+ Xsqlite3PcacheMakeClean(tls, p)
+ }
+ }
+ if pgno == Pgno(0) && (*PCache)(unsafe.Pointer(pCache)).FnRefSum != 0 {
+ var pPage1 uintptr
+ pPage1 = (*struct {
+ f func(*libc.TLS, uintptr, uint32, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxFetch})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, uint32(1), 0)
+ if pPage1 != 0 {
+ libc.X__builtin___memset_chk(tls, (*Sqlite3_pcache_page)(unsafe.Pointer(pPage1)).FpBuf, 0, uint64((*PCache)(unsafe.Pointer(pCache)).FszPage), libc.X__builtin_object_size(tls, (*Sqlite3_pcache_page)(unsafe.Pointer(pPage1)).FpBuf, 0))
+ pgno = Pgno(1)
+ }
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uint32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxTruncate})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache, pgno+Pgno(1))
+ }
+}
+
+// Close a cache.
+func Xsqlite3PcacheClose(tls *libc.TLS, pCache uintptr) {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxDestroy})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache)
+}
+
+// Discard the contents of the cache.
+func Xsqlite3PcacheClear(tls *libc.TLS, pCache uintptr) {
+ Xsqlite3PcacheTruncate(tls, pCache, uint32(0))
+}
+
+func pcacheMergeDirtyList(tls *libc.TLS, pA uintptr, pB uintptr) uintptr {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var pTail uintptr
+ pTail = bp
+
+ for {
+ if (*PgHdr)(unsafe.Pointer(pA)).Fpgno < (*PgHdr)(unsafe.Pointer(pB)).Fpgno {
+ (*PgHdr)(unsafe.Pointer(pTail)).FpDirty = pA
+ pTail = pA
+ pA = (*PgHdr)(unsafe.Pointer(pA)).FpDirty
+ if pA == uintptr(0) {
+ (*PgHdr)(unsafe.Pointer(pTail)).FpDirty = pB
+ break
+ }
+ } else {
+ (*PgHdr)(unsafe.Pointer(pTail)).FpDirty = pB
+ pTail = pB
+ pB = (*PgHdr)(unsafe.Pointer(pB)).FpDirty
+ if pB == uintptr(0) {
+ (*PgHdr)(unsafe.Pointer(pTail)).FpDirty = pA
+ break
+ }
+ }
+ }
+ return (*PgHdr)(unsafe.Pointer(bp)).FpDirty
+}
+
+func pcacheSortDirtyList(tls *libc.TLS, pIn uintptr) uintptr {
+ bp := tls.Alloc(256)
+ defer tls.Free(256)
+
+ var p uintptr
+ var i int32
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([32]uintptr{})), libc.X__builtin_object_size(tls, bp, 0))
+ for pIn != 0 {
+ p = pIn
+ pIn = (*PgHdr)(unsafe.Pointer(p)).FpDirty
+ (*PgHdr)(unsafe.Pointer(p)).FpDirty = uintptr(0)
+ for i = 0; i < N_SORT_BUCKET-1; i++ {
+ if *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = p
+ break
+ } else {
+ p = pcacheMergeDirtyList(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), p)
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = uintptr(0)
+ }
+ }
+ if i == N_SORT_BUCKET-1 {
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = pcacheMergeDirtyList(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), p)
+ }
+ }
+ p = *(*uintptr)(unsafe.Pointer(bp))
+ for i = 1; i < N_SORT_BUCKET; i++ {
+ if *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) == uintptr(0) {
+ continue
+ }
+ if p != 0 {
+ p = pcacheMergeDirtyList(tls, p, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)))
+ } else {
+ p = *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8))
+ }
+ }
+ return p
+}
+
+// Return a list of all dirty pages in the cache, sorted by page number.
+func Xsqlite3PcacheDirtyList(tls *libc.TLS, pCache uintptr) uintptr {
+ var p uintptr
+ for p = (*PCache)(unsafe.Pointer(pCache)).FpDirty; p != 0; p = (*PgHdr)(unsafe.Pointer(p)).FpDirtyNext {
+ (*PgHdr)(unsafe.Pointer(p)).FpDirty = (*PgHdr)(unsafe.Pointer(p)).FpDirtyNext
+ }
+ return pcacheSortDirtyList(tls, (*PCache)(unsafe.Pointer(pCache)).FpDirty)
+}
+
+// Return the total number of references to all pages held by the cache.
+//
+// This is not the total number of pages referenced, but the sum of the
+// reference count for all pages.
+func Xsqlite3PcacheRefCount(tls *libc.TLS, pCache uintptr) int32 {
+ return (*PCache)(unsafe.Pointer(pCache)).FnRefSum
+}
+
+// Return the number of references to the page supplied as an argument.
+func Xsqlite3PcachePageRefcount(tls *libc.TLS, p uintptr) int32 {
+ return int32((*PgHdr)(unsafe.Pointer(p)).FnRef)
+}
+
+// Return the total number of pages in the cache.
+func Xsqlite3PcachePagecount(tls *libc.TLS, pCache uintptr) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxPagecount})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache)
+}
+
+// Set the suggested cache-size value.
+func Xsqlite3PcacheSetCachesize(tls *libc.TLS, pCache uintptr, mxPage int32) {
+ (*PCache)(unsafe.Pointer(pCache)).FszCache = mxPage
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxCachesize})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache,
+ numberOfCachePages(tls, pCache))
+}
+
+// Set the suggested cache-spill value. Make no changes if if the
+// argument is zero. Return the effective cache-spill size, which will
+// be the larger of the szSpill and szCache.
+func Xsqlite3PcacheSetSpillsize(tls *libc.TLS, p uintptr, mxPage int32) int32 {
+ var res int32
+
+ if mxPage != 0 {
+ if mxPage < 0 {
+ mxPage = int32(int64(-1024) * I64(mxPage) / I64((*PCache)(unsafe.Pointer(p)).FszPage+(*PCache)(unsafe.Pointer(p)).FszExtra))
+ }
+ (*PCache)(unsafe.Pointer(p)).FszSpill = mxPage
+ }
+ res = numberOfCachePages(tls, p)
+ if res < (*PCache)(unsafe.Pointer(p)).FszSpill {
+ res = (*PCache)(unsafe.Pointer(p)).FszSpill
+ }
+ return res
+}
+
+// Free up as much memory as possible from the page cache.
+func Xsqlite3PcacheShrink(tls *libc.TLS, pCache uintptr) {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{Xsqlite3Config.Fpcache2.FxShrink})).f(tls, (*PCache)(unsafe.Pointer(pCache)).FpCache)
+}
+
+// Return the size of the header added by this middleware layer
+// in the page-cache hierarchy.
+func Xsqlite3HeaderSizePcache(tls *libc.TLS) int32 {
+ return int32((uint64(unsafe.Sizeof(PgHdr{})) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+}
+
+// Return the number of dirty pages currently in the cache, as a percentage
+// of the configured cache size.
+func Xsqlite3PCachePercentDirty(tls *libc.TLS, pCache uintptr) int32 {
+ var pDirty uintptr
+ var nDirty int32 = 0
+ var nCache int32 = numberOfCachePages(tls, pCache)
+ for pDirty = (*PCache)(unsafe.Pointer(pCache)).FpDirty; pDirty != 0; pDirty = (*PgHdr)(unsafe.Pointer(pDirty)).FpDirtyNext {
+ nDirty++
+ }
+ if nCache != 0 {
+ return int32(I64(nDirty) * int64(100) / I64(nCache))
+ }
+ return 0
+}
+
+type PCache11 = struct {
+ FpGroup uintptr
+ FpnPurgeable uintptr
+ FszPage int32
+ FszExtra int32
+ FszAlloc int32
+ FbPurgeable int32
+ FnMin uint32
+ FnMax uint32
+ Fn90pct uint32
+ FiMaxKey uint32
+ FnPurgeableDummy uint32
+ FnRecyclable uint32
+ FnPage uint32
+ FnHash uint32
+ FapHash uintptr
+ FpFree uintptr
+ FpBulk uintptr
+}
+
+type PCache1 = PCache11
+type PgHdr11 = struct {
+ Fpage Sqlite3_pcache_page
+ FiKey uint32
+ FisBulkLocal U16
+ FisAnchor U16
+ FpNext uintptr
+ FpCache uintptr
+ FpLruNext uintptr
+ FpLruPrev uintptr
+}
+
+type PgHdr1 = PgHdr11
+type PgFreeslot1 = struct{ FpNext uintptr }
+
+type PgFreeslot = PgFreeslot1
+type PGroup1 = struct {
+ Fmutex uintptr
+ FnMaxPage uint32
+ FnMinPage uint32
+ FmxPinned uint32
+ FnPurgeable uint32
+ Flru PgHdr1
+}
+
+type PGroup = PGroup1
+
+// Global data used by this cache.
+type PCacheGlobal = struct {
+ Fgrp PGroup
+ FisInit int32
+ FseparateCache int32
+ FnInitPage int32
+ FszSlot int32
+ FnSlot int32
+ FnReserve int32
+ FpStart uintptr
+ FpEnd uintptr
+ Fmutex uintptr
+ FpFree uintptr
+ FnFreeSlot int32
+ FbUnderPressure int32
+}
+
+var pcache1_g PCacheGlobal
+
+// This function is called during initialization if a static buffer is
+// supplied to use for the page-cache by passing the SQLITE_CONFIG_PAGECACHE
+// verb to sqlite3_config(). Parameter pBuf points to an allocation large
+// enough to contain 'n' buffers of 'sz' bytes each.
+//
+// This routine is called from sqlite3_initialize() and so it is guaranteed
+// to be serialized already. There is no need for further mutexing.
+func Xsqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) {
+ if pcache1_g.FisInit != 0 {
+ var p uintptr
+ if pBuf == uintptr(0) {
+ sz = libc.AssignInt32(&n, 0)
+ }
+ if n == 0 {
+ sz = 0
+ }
+ sz = sz & libc.CplInt32(7)
+ pcache1_g.FszSlot = sz
+ pcache1_g.FnSlot = libc.AssignPtrInt32(uintptr(unsafe.Pointer(&pcache1_g))+136, n)
+ pcache1_g.FnReserve = func() int32 {
+ if n > 90 {
+ return 10
+ }
+ return n/10 + 1
+ }()
+ pcache1_g.FpStart = pBuf
+ pcache1_g.FpFree = uintptr(0)
+ pcache1_g.FbUnderPressure = 0
+ for libc.PostDecInt32(&n, 1) != 0 {
+ p = pBuf
+ (*PgFreeslot)(unsafe.Pointer(p)).FpNext = pcache1_g.FpFree
+ pcache1_g.FpFree = p
+ pBuf = pBuf + uintptr(sz)
+ }
+ pcache1_g.FpEnd = pBuf
+ }
+}
+
+func pcache1InitBulk(tls *libc.TLS, pCache uintptr) int32 {
+ var szBulk I64
+ var zBulk uintptr
+ if pcache1_g.FnInitPage == 0 {
+ return 0
+ }
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FnMax < uint32(3) {
+ return 0
+ }
+ Xsqlite3BeginBenignMalloc(tls)
+ if pcache1_g.FnInitPage > 0 {
+ szBulk = I64((*PCache1)(unsafe.Pointer(pCache)).FszAlloc) * I64(pcache1_g.FnInitPage)
+ } else {
+ szBulk = int64(-1024) * I64(pcache1_g.FnInitPage)
+ }
+ if szBulk > I64((*PCache1)(unsafe.Pointer(pCache)).FszAlloc)*I64((*PCache1)(unsafe.Pointer(pCache)).FnMax) {
+ szBulk = I64((*PCache1)(unsafe.Pointer(pCache)).FszAlloc) * I64((*PCache1)(unsafe.Pointer(pCache)).FnMax)
+ }
+ zBulk = libc.AssignPtrUintptr(pCache+80, Xsqlite3Malloc(tls, uint64(szBulk)))
+ Xsqlite3EndBenignMalloc(tls)
+ if zBulk != 0 {
+ var nBulk int32 = Xsqlite3MallocSize(tls, zBulk) / (*PCache1)(unsafe.Pointer(pCache)).FszAlloc
+ for __ccgo := true; __ccgo; __ccgo = libc.PreDecInt32(&nBulk, 1) != 0 {
+ var pX uintptr = zBulk + uintptr((*PCache1)(unsafe.Pointer(pCache)).FszPage)
+ (*PgHdr1)(unsafe.Pointer(pX)).Fpage.FpBuf = zBulk
+ (*PgHdr1)(unsafe.Pointer(pX)).Fpage.FpExtra = pX + 1*56
+ (*PgHdr1)(unsafe.Pointer(pX)).FisBulkLocal = U16(1)
+ (*PgHdr1)(unsafe.Pointer(pX)).FisAnchor = U16(0)
+ (*PgHdr1)(unsafe.Pointer(pX)).FpNext = (*PCache1)(unsafe.Pointer(pCache)).FpFree
+ (*PgHdr1)(unsafe.Pointer(pX)).FpLruPrev = uintptr(0)
+ (*PCache1)(unsafe.Pointer(pCache)).FpFree = pX
+ zBulk += uintptr((*PCache1)(unsafe.Pointer(pCache)).FszAlloc)
+ }
+ }
+ return libc.Bool32((*PCache1)(unsafe.Pointer(pCache)).FpFree != uintptr(0))
+}
+
+func pcache1Alloc(tls *libc.TLS, nByte int32) uintptr {
+ var p uintptr = uintptr(0)
+
+ if nByte <= pcache1_g.FszSlot {
+ Xsqlite3_mutex_enter(tls, pcache1_g.Fmutex)
+ p = pcache1_g.FpFree
+ if p != 0 {
+ pcache1_g.FpFree = (*PgFreeslot)(unsafe.Pointer(pcache1_g.FpFree)).FpNext
+ pcache1_g.FnFreeSlot--
+ pcache1_g.FbUnderPressure = libc.Bool32(pcache1_g.FnFreeSlot < pcache1_g.FnReserve)
+
+ Xsqlite3StatusHighwater(tls, SQLITE_STATUS_PAGECACHE_SIZE, nByte)
+ Xsqlite3StatusUp(tls, SQLITE_STATUS_PAGECACHE_USED, 1)
+ }
+ Xsqlite3_mutex_leave(tls, pcache1_g.Fmutex)
+ }
+ if p == uintptr(0) {
+ p = Xsqlite3Malloc(tls, uint64(nByte))
+ if p != 0 {
+ var sz int32 = Xsqlite3MallocSize(tls, p)
+ Xsqlite3_mutex_enter(tls, pcache1_g.Fmutex)
+ Xsqlite3StatusHighwater(tls, SQLITE_STATUS_PAGECACHE_SIZE, nByte)
+ Xsqlite3StatusUp(tls, SQLITE_STATUS_PAGECACHE_OVERFLOW, sz)
+ Xsqlite3_mutex_leave(tls, pcache1_g.Fmutex)
+ }
+
+ }
+ return p
+}
+
+func pcache1Free(tls *libc.TLS, p uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+ if Uptr(p) >= Uptr(pcache1_g.FpStart) && Uptr(p) < Uptr(pcache1_g.FpEnd) {
+ var pSlot uintptr
+ Xsqlite3_mutex_enter(tls, pcache1_g.Fmutex)
+ Xsqlite3StatusDown(tls, SQLITE_STATUS_PAGECACHE_USED, 1)
+ pSlot = p
+ (*PgFreeslot)(unsafe.Pointer(pSlot)).FpNext = pcache1_g.FpFree
+ pcache1_g.FpFree = pSlot
+ pcache1_g.FnFreeSlot++
+ pcache1_g.FbUnderPressure = libc.Bool32(pcache1_g.FnFreeSlot < pcache1_g.FnReserve)
+
+ Xsqlite3_mutex_leave(tls, pcache1_g.Fmutex)
+ } else {
+ {
+ var nFreed int32 = 0
+ nFreed = Xsqlite3MallocSize(tls, p)
+ Xsqlite3_mutex_enter(tls, pcache1_g.Fmutex)
+ Xsqlite3StatusDown(tls, SQLITE_STATUS_PAGECACHE_OVERFLOW, nFreed)
+ Xsqlite3_mutex_leave(tls, pcache1_g.Fmutex)
+
+ }
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func pcache1MemSize(tls *libc.TLS, p uintptr) int32 {
+ if p >= pcache1_g.FpStart && p < pcache1_g.FpEnd {
+ return pcache1_g.FszSlot
+ } else {
+ var iSize int32
+
+ iSize = Xsqlite3MallocSize(tls, p)
+
+ return iSize
+ }
+ return int32(0)
+}
+
+func pcache1AllocPage(tls *libc.TLS, pCache uintptr, benignMalloc int32) uintptr {
+ var p uintptr = uintptr(0)
+ var pPg uintptr
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FpFree != 0 || (*PCache1)(unsafe.Pointer(pCache)).FnPage == uint32(0) && pcache1InitBulk(tls, pCache) != 0 {
+ p = (*PCache1)(unsafe.Pointer(pCache)).FpFree
+ (*PCache1)(unsafe.Pointer(pCache)).FpFree = (*PgHdr1)(unsafe.Pointer(p)).FpNext
+ (*PgHdr1)(unsafe.Pointer(p)).FpNext = uintptr(0)
+ } else {
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ if benignMalloc != 0 {
+ Xsqlite3BeginBenignMalloc(tls)
+ }
+ pPg = pcache1Alloc(tls, (*PCache1)(unsafe.Pointer(pCache)).FszAlloc)
+ if benignMalloc != 0 {
+ Xsqlite3EndBenignMalloc(tls)
+ }
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ if pPg == uintptr(0) {
+ return uintptr(0)
+ }
+ p = pPg + uintptr((*PCache1)(unsafe.Pointer(pCache)).FszPage)
+ (*PgHdr1)(unsafe.Pointer(p)).Fpage.FpBuf = pPg
+ (*PgHdr1)(unsafe.Pointer(p)).Fpage.FpExtra = p + 1*56
+ (*PgHdr1)(unsafe.Pointer(p)).FisBulkLocal = U16(0)
+ (*PgHdr1)(unsafe.Pointer(p)).FisAnchor = U16(0)
+ (*PgHdr1)(unsafe.Pointer(p)).FpLruPrev = uintptr(0)
+ }
+ *(*uint32)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpnPurgeable))++
+ return p
+}
+
+func pcache1FreePage(tls *libc.TLS, p uintptr) {
+ var pCache uintptr
+
+ pCache = (*PgHdr1)(unsafe.Pointer(p)).FpCache
+
+ if (*PgHdr1)(unsafe.Pointer(p)).FisBulkLocal != 0 {
+ (*PgHdr1)(unsafe.Pointer(p)).FpNext = (*PCache1)(unsafe.Pointer(pCache)).FpFree
+ (*PCache1)(unsafe.Pointer(pCache)).FpFree = p
+ } else {
+ pcache1Free(tls, (*PgHdr1)(unsafe.Pointer(p)).Fpage.FpBuf)
+ }
+ *(*uint32)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpnPurgeable))--
+}
+
+// Malloc function used by SQLite to obtain space from the buffer configured
+// using sqlite3_config(SQLITE_CONFIG_PAGECACHE) option. If no such buffer
+// exists, this function falls back to sqlite3Malloc().
+func Xsqlite3PageMalloc(tls *libc.TLS, sz int32) uintptr {
+ return pcache1Alloc(tls, sz)
+}
+
+// Free an allocated buffer obtained from sqlite3PageMalloc().
+func Xsqlite3PageFree(tls *libc.TLS, p uintptr) {
+ pcache1Free(tls, p)
+}
+
+func pcache1UnderMemoryPressure(tls *libc.TLS, pCache uintptr) int32 {
+ if pcache1_g.FnSlot != 0 && (*PCache1)(unsafe.Pointer(pCache)).FszPage+(*PCache1)(unsafe.Pointer(pCache)).FszExtra <= pcache1_g.FszSlot {
+ return pcache1_g.FbUnderPressure
+ } else {
+ return Xsqlite3HeapNearlyFull(tls)
+ }
+ return int32(0)
+}
+
+func pcache1ResizeHash(tls *libc.TLS, p uintptr) {
+ var apNew uintptr
+ var nNew uint32
+ var i uint32
+
+ nNew = (*PCache1)(unsafe.Pointer(p)).FnHash * uint32(2)
+ if nNew < uint32(256) {
+ nNew = uint32(256)
+ }
+
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(p)).FpGroup)).Fmutex)
+ if (*PCache1)(unsafe.Pointer(p)).FnHash != 0 {
+ Xsqlite3BeginBenignMalloc(tls)
+ }
+ apNew = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nNew))
+ if (*PCache1)(unsafe.Pointer(p)).FnHash != 0 {
+ Xsqlite3EndBenignMalloc(tls)
+ }
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(p)).FpGroup)).Fmutex)
+ if apNew != 0 {
+ for i = uint32(0); i < (*PCache1)(unsafe.Pointer(p)).FnHash; i++ {
+ var pPage uintptr
+ var pNext uintptr = *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(p)).FapHash + uintptr(i)*8))
+ for libc.AssignUintptr(&pPage, pNext) != uintptr(0) {
+ var h uint32 = (*PgHdr1)(unsafe.Pointer(pPage)).FiKey % nNew
+ pNext = (*PgHdr1)(unsafe.Pointer(pPage)).FpNext
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpNext = *(*uintptr)(unsafe.Pointer(apNew + uintptr(h)*8))
+ *(*uintptr)(unsafe.Pointer(apNew + uintptr(h)*8)) = pPage
+ }
+ }
+ Xsqlite3_free(tls, (*PCache1)(unsafe.Pointer(p)).FapHash)
+ (*PCache1)(unsafe.Pointer(p)).FapHash = apNew
+ (*PCache1)(unsafe.Pointer(p)).FnHash = nNew
+ }
+}
+
+func pcache1PinPage(tls *libc.TLS, pPage uintptr) uintptr {
+ (*PgHdr1)(unsafe.Pointer((*PgHdr1)(unsafe.Pointer(pPage)).FpLruPrev)).FpLruNext = (*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext
+ (*PgHdr1)(unsafe.Pointer((*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext)).FpLruPrev = (*PgHdr1)(unsafe.Pointer(pPage)).FpLruPrev
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext = uintptr(0)
+
+ (*PCache1)(unsafe.Pointer((*PgHdr1)(unsafe.Pointer(pPage)).FpCache)).FnRecyclable--
+ return pPage
+}
+
+func pcache1RemoveFromHash(tls *libc.TLS, pPage uintptr, freeFlag int32) {
+ var h uint32
+ var pCache uintptr = (*PgHdr1)(unsafe.Pointer(pPage)).FpCache
+ var pp uintptr
+
+ h = (*PgHdr1)(unsafe.Pointer(pPage)).FiKey % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ for pp = (*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(h)*8; *(*uintptr)(unsafe.Pointer(pp)) != pPage; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*PgHdr1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext
+
+ (*PCache1)(unsafe.Pointer(pCache)).FnPage--
+ if freeFlag != 0 {
+ pcache1FreePage(tls, pPage)
+ }
+}
+
+func pcache1EnforceMaxPage(tls *libc.TLS, pCache uintptr) {
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+ var p uintptr
+
+ for (*PGroup)(unsafe.Pointer(pGroup)).FnPurgeable > (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage &&
+ int32((*PgHdr1)(unsafe.Pointer(libc.AssignUintptr(&p, (*PGroup)(unsafe.Pointer(pGroup)).Flru.FpLruPrev))).FisAnchor) == 0 {
+ pcache1PinPage(tls, p)
+ pcache1RemoveFromHash(tls, p, 1)
+ }
+ if (*PCache1)(unsafe.Pointer(pCache)).FnPage == uint32(0) && (*PCache1)(unsafe.Pointer(pCache)).FpBulk != 0 {
+ Xsqlite3_free(tls, (*PCache1)(unsafe.Pointer(pCache)).FpBulk)
+ (*PCache1)(unsafe.Pointer(pCache)).FpBulk = libc.AssignPtrUintptr(pCache+72, uintptr(0))
+ }
+}
+
+func pcache1TruncateUnsafe(tls *libc.TLS, pCache uintptr, iLimit uint32) {
+ var h uint32
+ var iStop uint32
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey-iLimit < (*PCache1)(unsafe.Pointer(pCache)).FnHash {
+ h = iLimit % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ iStop = (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+
+ } else {
+ h = (*PCache1)(unsafe.Pointer(pCache)).FnHash / uint32(2)
+ iStop = h - uint32(1)
+ }
+ for {
+ var pp uintptr
+ var pPage uintptr
+
+ pp = (*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(h)*8
+ for libc.AssignUintptr(&pPage, *(*uintptr)(unsafe.Pointer(pp))) != uintptr(0) {
+ if (*PgHdr1)(unsafe.Pointer(pPage)).FiKey >= iLimit {
+ (*PCache1)(unsafe.Pointer(pCache)).FnPage--
+ *(*uintptr)(unsafe.Pointer(pp)) = (*PgHdr1)(unsafe.Pointer(pPage)).FpNext
+ if (*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext != uintptr(0) {
+ pcache1PinPage(tls, pPage)
+ }
+ pcache1FreePage(tls, pPage)
+ } else {
+ pp = pPage + 24
+
+ }
+ }
+ if h == iStop {
+ break
+ }
+ h = (h + uint32(1)) % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ }
+
+}
+
+func pcache1Init(tls *libc.TLS, NotUsed uintptr) int32 {
+ _ = NotUsed
+
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&pcache1_g)), 0, uint64(unsafe.Sizeof(pcache1_g)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&pcache1_g)), 0))
+
+ pcache1_g.FseparateCache = 0
+
+ if Xsqlite3Config.FbCoreMutex != 0 {
+ pcache1_g.Fgrp.Fmutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_LRU)
+ pcache1_g.Fmutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_PMEM)
+ }
+ if pcache1_g.FseparateCache != 0 &&
+ Xsqlite3Config.FnPage != 0 &&
+ Xsqlite3Config.FpPage == uintptr(0) {
+ pcache1_g.FnInitPage = Xsqlite3Config.FnPage
+ } else {
+ pcache1_g.FnInitPage = 0
+ }
+ pcache1_g.Fgrp.FmxPinned = uint32(10)
+ pcache1_g.FisInit = 1
+ return SQLITE_OK
+}
+
+func pcache1Shutdown(tls *libc.TLS, NotUsed uintptr) {
+ _ = NotUsed
+
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&pcache1_g)), 0, uint64(unsafe.Sizeof(pcache1_g)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&pcache1_g)), 0))
+}
+
+func pcache1Create(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32) uintptr {
+ var pCache uintptr
+ var pGroup uintptr
+ var sz int32
+
+ sz = int32(uint64(unsafe.Sizeof(PCache1{})) + uint64(unsafe.Sizeof(PGroup{}))*uint64(pcache1_g.FseparateCache))
+ pCache = Xsqlite3MallocZero(tls, uint64(sz))
+ if pCache != 0 {
+ if pcache1_g.FseparateCache != 0 {
+ pGroup = pCache + 1*88
+ (*PGroup)(unsafe.Pointer(pGroup)).FmxPinned = uint32(10)
+ } else {
+ pGroup = uintptr(unsafe.Pointer(&pcache1_g))
+ }
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ if int32((*PGroup)(unsafe.Pointer(pGroup)).Flru.FisAnchor) == 0 {
+ (*PGroup)(unsafe.Pointer(pGroup)).Flru.FisAnchor = U16(1)
+ (*PGroup)(unsafe.Pointer(pGroup)).Flru.FpLruPrev = libc.AssignPtrUintptr(pGroup+24+40, pGroup+24)
+ }
+ (*PCache1)(unsafe.Pointer(pCache)).FpGroup = pGroup
+ (*PCache1)(unsafe.Pointer(pCache)).FszPage = szPage
+ (*PCache1)(unsafe.Pointer(pCache)).FszExtra = szExtra
+ (*PCache1)(unsafe.Pointer(pCache)).FszAlloc = int32(uint64(szPage+szExtra) + (uint64(unsafe.Sizeof(PgHdr1{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)))
+ (*PCache1)(unsafe.Pointer(pCache)).FbPurgeable = func() int32 {
+ if bPurgeable != 0 {
+ return 1
+ }
+ return 0
+ }()
+ pcache1ResizeHash(tls, pCache)
+ if bPurgeable != 0 {
+ (*PCache1)(unsafe.Pointer(pCache)).FnMin = uint32(10)
+ *(*uint32)(unsafe.Pointer(pGroup + 12)) += (*PCache1)(unsafe.Pointer(pCache)).FnMin
+ (*PGroup)(unsafe.Pointer(pGroup)).FmxPinned = (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage + uint32(10) - (*PGroup)(unsafe.Pointer(pGroup)).FnMinPage
+ (*PCache1)(unsafe.Pointer(pCache)).FpnPurgeable = pGroup + 20
+ } else {
+ (*PCache1)(unsafe.Pointer(pCache)).FpnPurgeable = pCache + 48
+ }
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ if (*PCache1)(unsafe.Pointer(pCache)).FnHash == uint32(0) {
+ pcache1Destroy(tls, pCache)
+ pCache = uintptr(0)
+ }
+ }
+ return pCache
+}
+
+func pcache1Cachesize(tls *libc.TLS, p uintptr, nMax int32) {
+ var pCache uintptr = p
+ var n U32
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FbPurgeable != 0 {
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ n = U32(nMax)
+ if n > uint32(0x7fff0000)-(*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage+(*PCache1)(unsafe.Pointer(pCache)).FnMax {
+ n = uint32(0x7fff0000) - (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage + (*PCache1)(unsafe.Pointer(pCache)).FnMax
+ }
+ *(*uint32)(unsafe.Pointer(pGroup + 8)) += n - (*PCache1)(unsafe.Pointer(pCache)).FnMax
+ (*PGroup)(unsafe.Pointer(pGroup)).FmxPinned = (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage + uint32(10) - (*PGroup)(unsafe.Pointer(pGroup)).FnMinPage
+ (*PCache1)(unsafe.Pointer(pCache)).FnMax = n
+ (*PCache1)(unsafe.Pointer(pCache)).Fn90pct = (*PCache1)(unsafe.Pointer(pCache)).FnMax * uint32(9) / uint32(10)
+ pcache1EnforceMaxPage(tls, pCache)
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ }
+}
+
+func pcache1Shrink(tls *libc.TLS, p uintptr) {
+ var pCache uintptr = p
+ if (*PCache1)(unsafe.Pointer(pCache)).FbPurgeable != 0 {
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+ var savedMaxPage uint32
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ savedMaxPage = (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage
+ (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage = uint32(0)
+ pcache1EnforceMaxPage(tls, pCache)
+ (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage = savedMaxPage
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ }
+}
+
+func pcache1Pagecount(tls *libc.TLS, p uintptr) int32 {
+ var n int32
+ var pCache uintptr = p
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ n = int32((*PCache1)(unsafe.Pointer(pCache)).FnPage)
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ return n
+}
+
+func pcache1FetchStage2(tls *libc.TLS, pCache uintptr, iKey uint32, createFlag int32) uintptr {
+ var nPinned uint32
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+ var pPage uintptr = uintptr(0)
+
+ nPinned = (*PCache1)(unsafe.Pointer(pCache)).FnPage - (*PCache1)(unsafe.Pointer(pCache)).FnRecyclable
+
+ if createFlag == 1 && (nPinned >= (*PGroup)(unsafe.Pointer(pGroup)).FmxPinned ||
+ nPinned >= (*PCache1)(unsafe.Pointer(pCache)).Fn90pct ||
+ pcache1UnderMemoryPressure(tls, pCache) != 0 && (*PCache1)(unsafe.Pointer(pCache)).FnRecyclable < nPinned) {
+ return uintptr(0)
+ }
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FnPage >= (*PCache1)(unsafe.Pointer(pCache)).FnHash {
+ pcache1ResizeHash(tls, pCache)
+ }
+
+ if (*PCache1)(unsafe.Pointer(pCache)).FbPurgeable != 0 &&
+ !(int32((*PgHdr1)(unsafe.Pointer((*PGroup)(unsafe.Pointer(pGroup)).Flru.FpLruPrev)).FisAnchor) != 0) &&
+ ((*PCache1)(unsafe.Pointer(pCache)).FnPage+uint32(1) >= (*PCache1)(unsafe.Pointer(pCache)).FnMax || pcache1UnderMemoryPressure(tls, pCache) != 0) {
+ var pOther uintptr
+ pPage = (*PGroup)(unsafe.Pointer(pGroup)).Flru.FpLruPrev
+
+ pcache1RemoveFromHash(tls, pPage, 0)
+ pcache1PinPage(tls, pPage)
+ pOther = (*PgHdr1)(unsafe.Pointer(pPage)).FpCache
+ if (*PCache1)(unsafe.Pointer(pOther)).FszAlloc != (*PCache1)(unsafe.Pointer(pCache)).FszAlloc {
+ pcache1FreePage(tls, pPage)
+ pPage = uintptr(0)
+ } else {
+ *(*uint32)(unsafe.Pointer(pGroup + 20)) -= uint32((*PCache1)(unsafe.Pointer(pOther)).FbPurgeable - (*PCache1)(unsafe.Pointer(pCache)).FbPurgeable)
+ }
+ }
+
+ if !(pPage != 0) {
+ pPage = pcache1AllocPage(tls, pCache, libc.Bool32(createFlag == 1))
+ }
+
+ if pPage != 0 {
+ var h uint32 = iKey % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ (*PCache1)(unsafe.Pointer(pCache)).FnPage++
+ (*PgHdr1)(unsafe.Pointer(pPage)).FiKey = iKey
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpNext = *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(h)*8))
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpCache = pCache
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer((*PgHdr1)(unsafe.Pointer(pPage)).Fpage.FpExtra)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(h)*8)) = pPage
+ if iKey > (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey {
+ (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey = iKey
+ }
+ }
+ return pPage
+}
+
+func pcache1FetchNoMutex(tls *libc.TLS, p uintptr, iKey uint32, createFlag int32) uintptr {
+ var pCache uintptr = p
+ var pPage uintptr = uintptr(0)
+
+ pPage = *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(iKey%(*PCache1)(unsafe.Pointer(pCache)).FnHash)*8))
+ for pPage != 0 && (*PgHdr1)(unsafe.Pointer(pPage)).FiKey != iKey {
+ pPage = (*PgHdr1)(unsafe.Pointer(pPage)).FpNext
+ }
+
+ if pPage != 0 {
+ if (*PgHdr1)(unsafe.Pointer(pPage)).FpLruNext != uintptr(0) {
+ return pcache1PinPage(tls, pPage)
+ } else {
+ return pPage
+ }
+ } else if createFlag != 0 {
+ return pcache1FetchStage2(tls, pCache, iKey, createFlag)
+ } else {
+ return uintptr(0)
+ }
+ return uintptr(0)
+}
+
+func pcache1FetchWithMutex(tls *libc.TLS, p uintptr, iKey uint32, createFlag int32) uintptr {
+ var pCache uintptr = p
+ var pPage uintptr
+
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ pPage = pcache1FetchNoMutex(tls, p, iKey, createFlag)
+
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ return pPage
+}
+
+func pcache1Fetch(tls *libc.TLS, p uintptr, iKey uint32, createFlag int32) uintptr {
+ var pCache uintptr = p
+
+ if (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex != 0 {
+ return pcache1FetchWithMutex(tls, p, iKey, createFlag)
+ } else {
+ return pcache1FetchNoMutex(tls, p, iKey, createFlag)
+ }
+ return uintptr(0)
+}
+
+func pcache1Unpin(tls *libc.TLS, p uintptr, pPg uintptr, reuseUnlikely int32) {
+ var pCache uintptr = p
+ var pPage uintptr = pPg
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+
+ if reuseUnlikely != 0 || (*PGroup)(unsafe.Pointer(pGroup)).FnPurgeable > (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage {
+ pcache1RemoveFromHash(tls, pPage, 1)
+ } else {
+ var ppFirst uintptr = pGroup + 24 + 40
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpLruPrev = pGroup + 24
+ (*PgHdr1)(unsafe.Pointer(libc.AssignPtrUintptr(pPage+40, *(*uintptr)(unsafe.Pointer(ppFirst))))).FpLruPrev = pPage
+ *(*uintptr)(unsafe.Pointer(ppFirst)) = pPage
+ (*PCache1)(unsafe.Pointer(pCache)).FnRecyclable++
+ }
+
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+}
+
+func pcache1Rekey(tls *libc.TLS, p uintptr, pPg uintptr, iOld uint32, iNew uint32) {
+ var pCache uintptr = p
+ var pPage uintptr = pPg
+ var pp uintptr
+ var hOld uint32
+ var hNew uint32
+
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+
+ hOld = iOld % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ pp = (*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(hOld)*8
+ for *(*uintptr)(unsafe.Pointer(pp)) != pPage {
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 24
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*PgHdr1)(unsafe.Pointer(pPage)).FpNext
+
+ hNew = iNew % (*PCache1)(unsafe.Pointer(pCache)).FnHash
+ (*PgHdr1)(unsafe.Pointer(pPage)).FiKey = iNew
+ (*PgHdr1)(unsafe.Pointer(pPage)).FpNext = *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(hNew)*8))
+ *(*uintptr)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FapHash + uintptr(hNew)*8)) = pPage
+ if iNew > (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey {
+ (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey = iNew
+ }
+
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+}
+
+func pcache1Truncate(tls *libc.TLS, p uintptr, iLimit uint32) {
+ var pCache uintptr = p
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+ if iLimit <= (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey {
+ pcache1TruncateUnsafe(tls, pCache, iLimit)
+ (*PCache1)(unsafe.Pointer(pCache)).FiMaxKey = iLimit - uint32(1)
+ }
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer((*PCache1)(unsafe.Pointer(pCache)).FpGroup)).Fmutex)
+}
+
+func pcache1Destroy(tls *libc.TLS, p uintptr) {
+ var pCache uintptr = p
+ var pGroup uintptr = (*PCache1)(unsafe.Pointer(pCache)).FpGroup
+
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ if (*PCache1)(unsafe.Pointer(pCache)).FnPage != 0 {
+ pcache1TruncateUnsafe(tls, pCache, uint32(0))
+ }
+
+ *(*uint32)(unsafe.Pointer(pGroup + 8)) -= (*PCache1)(unsafe.Pointer(pCache)).FnMax
+
+ *(*uint32)(unsafe.Pointer(pGroup + 12)) -= (*PCache1)(unsafe.Pointer(pCache)).FnMin
+ (*PGroup)(unsafe.Pointer(pGroup)).FmxPinned = (*PGroup)(unsafe.Pointer(pGroup)).FnMaxPage + uint32(10) - (*PGroup)(unsafe.Pointer(pGroup)).FnMinPage
+ pcache1EnforceMaxPage(tls, pCache)
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer(pGroup)).Fmutex)
+ Xsqlite3_free(tls, (*PCache1)(unsafe.Pointer(pCache)).FpBulk)
+ Xsqlite3_free(tls, (*PCache1)(unsafe.Pointer(pCache)).FapHash)
+ Xsqlite3_free(tls, pCache)
+}
+
+// This function is called during initialization (sqlite3_initialize()) to
+// install the default pluggable cache module, assuming the user has not
+// already provided an alternative.
+func Xsqlite3PCacheSetDefault(tls *libc.TLS) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ Xsqlite3_config(tls, SQLITE_CONFIG_PCACHE2, libc.VaList(bp, uintptr(unsafe.Pointer(&defaultMethods1))))
+}
+
+var defaultMethods1 = Sqlite3_pcache_methods2{
+ FiVersion: 1,
+ FxInit: 0,
+ FxShutdown: 0,
+ FxCreate: 0,
+ FxCachesize: 0,
+ FxPagecount: 0,
+ FxFetch: 0,
+ FxUnpin: 0,
+ FxRekey: 0,
+ FxTruncate: 0,
+ FxDestroy: 0,
+ FxShrink: 0,
+}
+
+// Return the size of the header on each page of this PCACHE implementation.
+func Xsqlite3HeaderSizePcache1(tls *libc.TLS) int32 {
+ return int32((uint64(unsafe.Sizeof(PgHdr1{})) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+}
+
+// Return the global mutex used by this PCACHE implementation. The
+// sqlite3_status() routine needs access to this mutex.
+func Xsqlite3Pcache1Mutex(tls *libc.TLS) uintptr {
+ return pcache1_g.Fmutex
+}
+
+// This function is called to free superfluous dynamically allocated memory
+// held by the pager system. Memory in use by any SQLite pager allocated
+// by the current thread may be sqlite3_free()ed.
+//
+// nReq is the number of bytes of memory required. Once this much has
+// been released, the function returns. The return value is the total number
+// of bytes of memory released.
+func Xsqlite3PcacheReleaseMemory(tls *libc.TLS, nReq int32) int32 {
+ var nFree int32 = 0
+
+ if Xsqlite3Config.FpPage == uintptr(0) {
+ var p uintptr
+ Xsqlite3_mutex_enter(tls, (*PGroup)(unsafe.Pointer(uintptr(unsafe.Pointer(&pcache1_g)))).Fmutex)
+ for (nReq < 0 || nFree < nReq) &&
+ libc.AssignUintptr(&p, pcache1_g.Fgrp.Flru.FpLruPrev) != uintptr(0) &&
+ int32((*PgHdr1)(unsafe.Pointer(p)).FisAnchor) == 0 {
+ nFree = nFree + pcache1MemSize(tls, (*PgHdr1)(unsafe.Pointer(p)).Fpage.FpBuf)
+
+ pcache1PinPage(tls, p)
+ pcache1RemoveFromHash(tls, p, 1)
+ }
+ Xsqlite3_mutex_leave(tls, (*PGroup)(unsafe.Pointer(uintptr(unsafe.Pointer(&pcache1_g)))).Fmutex)
+ }
+ return nFree
+}
+
+// Each entry in a RowSet is an instance of the following object.
+//
+// This same object is reused to store a linked list of trees of RowSetEntry
+// objects. In that alternative use, pRight points to the next entry
+// in the list, pLeft points to the tree, and v is unused. The
+// RowSet.pForest value points to the head of this forest list.
+type RowSetEntry = struct {
+ Fv I64
+ FpRight uintptr
+ FpLeft uintptr
+}
+
+// RowSetEntry objects are allocated in large chunks (instances of the
+// following structure) to reduce memory allocation overhead. The
+// chunks are kept on a linked list so that they can be deallocated
+// when the RowSet is destroyed.
+type RowSetChunk = struct {
+ FpNextChunk uintptr
+ FaEntry [42]struct {
+ Fv I64
+ FpRight uintptr
+ FpLeft uintptr
+ }
+}
+
+// Allocate a RowSet object. Return NULL if a memory allocation
+// error occurs.
+func Xsqlite3RowSetInit(tls *libc.TLS, db uintptr) uintptr {
+ var p uintptr = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(RowSet{})))
+ if p != 0 {
+ var N int32 = Xsqlite3DbMallocSize(tls, db, p)
+ (*RowSet)(unsafe.Pointer(p)).FpChunk = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).Fdb = db
+ (*RowSet)(unsafe.Pointer(p)).FpEntry = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FpLast = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FpForest = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FpFresh = uintptr((uint64(unsafe.Sizeof(RowSet{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7))) + p
+ (*RowSet)(unsafe.Pointer(p)).FnFresh = U16((uint64(N) - (uint64(unsafe.Sizeof(RowSet{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7))) / uint64(unsafe.Sizeof(RowSetEntry{})))
+ (*RowSet)(unsafe.Pointer(p)).FrsFlags = U16(ROWSET_SORTED)
+ (*RowSet)(unsafe.Pointer(p)).FiBatch = 0
+ }
+ return p
+}
+
+// Deallocate all chunks from a RowSet. This frees all memory that
+// the RowSet has allocated over its lifetime. This routine is
+// the destructor for the RowSet.
+func Xsqlite3RowSetClear(tls *libc.TLS, pArg uintptr) {
+ var p uintptr = pArg
+ var pChunk uintptr
+ var pNextChunk uintptr
+ for pChunk = (*RowSet)(unsafe.Pointer(p)).FpChunk; pChunk != 0; pChunk = pNextChunk {
+ pNextChunk = (*RowSetChunk)(unsafe.Pointer(pChunk)).FpNextChunk
+ Xsqlite3DbFree(tls, (*RowSet)(unsafe.Pointer(p)).Fdb, pChunk)
+ }
+ (*RowSet)(unsafe.Pointer(p)).FpChunk = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FnFresh = U16(0)
+ (*RowSet)(unsafe.Pointer(p)).FpEntry = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FpLast = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FpForest = uintptr(0)
+ (*RowSet)(unsafe.Pointer(p)).FrsFlags = U16(ROWSET_SORTED)
+}
+
+// Deallocate all chunks from a RowSet. This frees all memory that
+// the RowSet has allocated over its lifetime. This routine is
+// the destructor for the RowSet.
+func Xsqlite3RowSetDelete(tls *libc.TLS, pArg uintptr) {
+ Xsqlite3RowSetClear(tls, pArg)
+ Xsqlite3DbFree(tls, (*RowSet)(unsafe.Pointer(pArg)).Fdb, pArg)
+}
+
+func rowSetEntryAlloc(tls *libc.TLS, p uintptr) uintptr {
+ if int32((*RowSet)(unsafe.Pointer(p)).FnFresh) == 0 {
+ var pNew uintptr
+ pNew = Xsqlite3DbMallocRawNN(tls, (*RowSet)(unsafe.Pointer(p)).Fdb, uint64(unsafe.Sizeof(RowSetChunk{})))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ (*RowSetChunk)(unsafe.Pointer(pNew)).FpNextChunk = (*RowSet)(unsafe.Pointer(p)).FpChunk
+ (*RowSet)(unsafe.Pointer(p)).FpChunk = pNew
+ (*RowSet)(unsafe.Pointer(p)).FpFresh = pNew + 8
+ (*RowSet)(unsafe.Pointer(p)).FnFresh = uint16(uint64(ROWSET_ALLOCATION_SIZE-8) / uint64(unsafe.Sizeof(RowSetEntry{})))
+ }
+ (*RowSet)(unsafe.Pointer(p)).FnFresh--
+ return libc.PostIncUintptr(&(*RowSet)(unsafe.Pointer(p)).FpFresh, 24)
+}
+
+// Insert a new value into a RowSet.
+//
+// The mallocFailed flag of the database connection is set if a
+// memory allocation fails.
+func Xsqlite3RowSetInsert(tls *libc.TLS, p uintptr, rowid I64) {
+ var pEntry uintptr
+ var pLast uintptr
+
+ pEntry = rowSetEntryAlloc(tls, p)
+ if pEntry == uintptr(0) {
+ return
+ }
+ (*RowSetEntry)(unsafe.Pointer(pEntry)).Fv = rowid
+ (*RowSetEntry)(unsafe.Pointer(pEntry)).FpRight = uintptr(0)
+ pLast = (*RowSet)(unsafe.Pointer(p)).FpLast
+ if pLast != 0 {
+ if rowid <= (*RowSetEntry)(unsafe.Pointer(pLast)).Fv {
+ *(*U16)(unsafe.Pointer(p + 50)) &= libc.Uint16FromInt32(libc.CplInt32(ROWSET_SORTED))
+ }
+ (*RowSetEntry)(unsafe.Pointer(pLast)).FpRight = pEntry
+ } else {
+ (*RowSet)(unsafe.Pointer(p)).FpEntry = pEntry
+ }
+ (*RowSet)(unsafe.Pointer(p)).FpLast = pEntry
+}
+
+func rowSetEntryMerge(tls *libc.TLS, pA uintptr, pB uintptr) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pTail uintptr
+
+ pTail = bp
+
+ for {
+ if (*RowSetEntry)(unsafe.Pointer(pA)).Fv <= (*RowSetEntry)(unsafe.Pointer(pB)).Fv {
+ if (*RowSetEntry)(unsafe.Pointer(pA)).Fv < (*RowSetEntry)(unsafe.Pointer(pB)).Fv {
+ pTail = libc.AssignPtrUintptr(pTail+8, pA)
+ }
+ pA = (*RowSetEntry)(unsafe.Pointer(pA)).FpRight
+ if pA == uintptr(0) {
+ (*RowSetEntry)(unsafe.Pointer(pTail)).FpRight = pB
+ break
+ }
+ } else {
+ pTail = libc.AssignPtrUintptr(pTail+8, pB)
+ pB = (*RowSetEntry)(unsafe.Pointer(pB)).FpRight
+ if pB == uintptr(0) {
+ (*RowSetEntry)(unsafe.Pointer(pTail)).FpRight = pA
+ break
+ }
+ }
+ }
+ return (*RowSetEntry)(unsafe.Pointer(bp)).FpRight
+}
+
+func rowSetEntrySort(tls *libc.TLS, pIn uintptr) uintptr {
+ bp := tls.Alloc(320)
+ defer tls.Free(320)
+
+ var i uint32
+ var pNext uintptr
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([40]uintptr{})), libc.X__builtin_object_size(tls, bp, 0))
+ for pIn != 0 {
+ pNext = (*RowSetEntry)(unsafe.Pointer(pIn)).FpRight
+ (*RowSetEntry)(unsafe.Pointer(pIn)).FpRight = uintptr(0)
+ for i = uint32(0); *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) != 0; i++ {
+ pIn = rowSetEntryMerge(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), pIn)
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = pIn
+ pIn = pNext
+ }
+ pIn = *(*uintptr)(unsafe.Pointer(bp))
+ for i = uint32(1); uint64(i) < uint64(unsafe.Sizeof([40]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0))); i++ {
+ if *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) == uintptr(0) {
+ continue
+ }
+ if pIn != 0 {
+ pIn = rowSetEntryMerge(tls, pIn, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)))
+ } else {
+ pIn = *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8))
+ }
+ }
+ return pIn
+}
+
+func rowSetTreeToList(tls *libc.TLS, pIn uintptr, ppFirst uintptr, ppLast uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*RowSetEntry)(unsafe.Pointer(pIn)).FpLeft != 0 {
+ rowSetTreeToList(tls, (*RowSetEntry)(unsafe.Pointer(pIn)).FpLeft, ppFirst, bp)
+ (*RowSetEntry)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpRight = pIn
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppFirst)) = pIn
+ }
+ if (*RowSetEntry)(unsafe.Pointer(pIn)).FpRight != 0 {
+ rowSetTreeToList(tls, (*RowSetEntry)(unsafe.Pointer(pIn)).FpRight, pIn+8, ppLast)
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppLast)) = pIn
+ }
+
+}
+
+func rowSetNDeepTree(tls *libc.TLS, ppList uintptr, iDepth int32) uintptr {
+ var p uintptr
+ var pLeft uintptr
+ if *(*uintptr)(unsafe.Pointer(ppList)) == uintptr(0) {
+ return uintptr(0)
+ }
+ if iDepth > 1 {
+ pLeft = rowSetNDeepTree(tls, ppList, iDepth-1)
+ p = *(*uintptr)(unsafe.Pointer(ppList))
+ if p == uintptr(0) {
+ return pLeft
+ }
+ (*RowSetEntry)(unsafe.Pointer(p)).FpLeft = pLeft
+ *(*uintptr)(unsafe.Pointer(ppList)) = (*RowSetEntry)(unsafe.Pointer(p)).FpRight
+ (*RowSetEntry)(unsafe.Pointer(p)).FpRight = rowSetNDeepTree(tls, ppList, iDepth-1)
+ } else {
+ p = *(*uintptr)(unsafe.Pointer(ppList))
+ *(*uintptr)(unsafe.Pointer(ppList)) = (*RowSetEntry)(unsafe.Pointer(p)).FpRight
+ (*RowSetEntry)(unsafe.Pointer(p)).FpLeft = libc.AssignPtrUintptr(p+8, uintptr(0))
+ }
+ return p
+}
+
+func rowSetListToTree(tls *libc.TLS, pList uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = pList
+
+ var iDepth int32
+ var p uintptr
+ var pLeft uintptr
+
+ p = *(*uintptr)(unsafe.Pointer(bp))
+ *(*uintptr)(unsafe.Pointer(bp)) = (*RowSetEntry)(unsafe.Pointer(p)).FpRight
+ (*RowSetEntry)(unsafe.Pointer(p)).FpLeft = libc.AssignPtrUintptr(p+8, uintptr(0))
+ for iDepth = 1; *(*uintptr)(unsafe.Pointer(bp)) != 0; iDepth++ {
+ pLeft = p
+ p = *(*uintptr)(unsafe.Pointer(bp))
+ *(*uintptr)(unsafe.Pointer(bp)) = (*RowSetEntry)(unsafe.Pointer(p)).FpRight
+ (*RowSetEntry)(unsafe.Pointer(p)).FpLeft = pLeft
+ (*RowSetEntry)(unsafe.Pointer(p)).FpRight = rowSetNDeepTree(tls, bp, iDepth)
+ }
+ return p
+}
+
+// Extract the smallest element from the RowSet.
+// Write the element into *pRowid. Return 1 on success. Return
+// 0 if the RowSet is already empty.
+//
+// After this routine has been called, the sqlite3RowSetInsert()
+// routine may not be called again.
+//
+// This routine may not be called after sqlite3RowSetTest() has
+// been used. Older versions of RowSet allowed that, but as the
+// capability was not used by the code generator, it was removed
+// for code economy.
+func Xsqlite3RowSetNext(tls *libc.TLS, p uintptr, pRowid uintptr) int32 {
+ if int32((*RowSet)(unsafe.Pointer(p)).FrsFlags)&ROWSET_NEXT == 0 {
+ if int32((*RowSet)(unsafe.Pointer(p)).FrsFlags)&ROWSET_SORTED == 0 {
+ (*RowSet)(unsafe.Pointer(p)).FpEntry = rowSetEntrySort(tls, (*RowSet)(unsafe.Pointer(p)).FpEntry)
+ }
+ *(*U16)(unsafe.Pointer(p + 50)) |= U16(ROWSET_SORTED | ROWSET_NEXT)
+ }
+
+ if (*RowSet)(unsafe.Pointer(p)).FpEntry != 0 {
+ *(*I64)(unsafe.Pointer(pRowid)) = (*RowSetEntry)(unsafe.Pointer((*RowSet)(unsafe.Pointer(p)).FpEntry)).Fv
+ (*RowSet)(unsafe.Pointer(p)).FpEntry = (*RowSetEntry)(unsafe.Pointer((*RowSet)(unsafe.Pointer(p)).FpEntry)).FpRight
+ if (*RowSet)(unsafe.Pointer(p)).FpEntry == uintptr(0) {
+ Xsqlite3RowSetClear(tls, p)
+ }
+ return 1
+ } else {
+ return 0
+ }
+ return int32(0)
+}
+
+// Check to see if element iRowid was inserted into the rowset as
+// part of any insert batch prior to iBatch. Return 1 or 0.
+//
+// If this is the first test of a new batch and if there exist entries
+// on pRowSet->pEntry, then sort those entries into the forest at
+// pRowSet->pForest so that they can be tested.
+func Xsqlite3RowSetTest(tls *libc.TLS, pRowSet uintptr, iBatch int32, iRowid Sqlite3_int64) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr
+ var pTree uintptr
+
+ if iBatch != (*RowSet)(unsafe.Pointer(pRowSet)).FiBatch {
+ p = (*RowSet)(unsafe.Pointer(pRowSet)).FpEntry
+ if p != 0 {
+ var ppPrevTree uintptr = pRowSet + 40
+ if int32((*RowSet)(unsafe.Pointer(pRowSet)).FrsFlags)&ROWSET_SORTED == 0 {
+ p = rowSetEntrySort(tls, p)
+ }
+ for pTree = (*RowSet)(unsafe.Pointer(pRowSet)).FpForest; pTree != 0; pTree = (*RowSetEntry)(unsafe.Pointer(pTree)).FpRight {
+ ppPrevTree = pTree + 8
+ if (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft == uintptr(0) {
+ (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft = rowSetListToTree(tls, p)
+ break
+ } else {
+ rowSetTreeToList(tls, (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft, bp, bp+8)
+ (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft = uintptr(0)
+ p = rowSetEntryMerge(tls, *(*uintptr)(unsafe.Pointer(bp)), p)
+ }
+ }
+ if pTree == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(ppPrevTree)) = libc.AssignUintptr(&pTree, rowSetEntryAlloc(tls, pRowSet))
+ if pTree != 0 {
+ (*RowSetEntry)(unsafe.Pointer(pTree)).Fv = int64(0)
+ (*RowSetEntry)(unsafe.Pointer(pTree)).FpRight = uintptr(0)
+ (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft = rowSetListToTree(tls, p)
+ }
+ }
+ (*RowSet)(unsafe.Pointer(pRowSet)).FpEntry = uintptr(0)
+ (*RowSet)(unsafe.Pointer(pRowSet)).FpLast = uintptr(0)
+ *(*U16)(unsafe.Pointer(pRowSet + 50)) |= U16(ROWSET_SORTED)
+ }
+ (*RowSet)(unsafe.Pointer(pRowSet)).FiBatch = iBatch
+ }
+
+ for pTree = (*RowSet)(unsafe.Pointer(pRowSet)).FpForest; pTree != 0; pTree = (*RowSetEntry)(unsafe.Pointer(pTree)).FpRight {
+ p = (*RowSetEntry)(unsafe.Pointer(pTree)).FpLeft
+ for p != 0 {
+ if (*RowSetEntry)(unsafe.Pointer(p)).Fv < iRowid {
+ p = (*RowSetEntry)(unsafe.Pointer(p)).FpRight
+ } else if (*RowSetEntry)(unsafe.Pointer(p)).Fv > iRowid {
+ p = (*RowSetEntry)(unsafe.Pointer(p)).FpLeft
+ } else {
+ return 1
+ }
+ }
+ }
+ return 0
+}
+
+// Connection to a write-ahead log (WAL) file.
+// There is one object of this type for each pager.
+type Wal1 = struct {
+ FpVfs uintptr
+ FpDbFd uintptr
+ FpWalFd uintptr
+ FiCallback U32
+ F__ccgo_pad1 [4]byte
+ FmxWalSize I64
+ FnWiData int32
+ FszFirstBlock int32
+ FapWiData uintptr
+ FszPage U32
+ FreadLock I16
+ FsyncFlags U8
+ FexclusiveMode U8
+ FwriteLock U8
+ FckptLock U8
+ FreadOnly U8
+ FtruncateOnCommit U8
+ FsyncHeader U8
+ FpadToSectorBoundary U8
+ FbShmUnreliable U8
+ F__ccgo_pad2 [1]byte
+ Fhdr WalIndexHdr
+ FminFrame U32
+ FiReCksum U32
+ FzWalName uintptr
+ FnCkpt U32
+ F__ccgo_pad3 [4]byte
+ FpSnapshot uintptr
+}
+
+// Connection to a write-ahead log (WAL) file.
+// There is one object of this type for each pager.
+type Wal = Wal1
+
+// An instance of the following structure is allocated for each active
+// savepoint and statement transaction in the system. All such structures
+// are stored in the Pager.aSavepoint[] array, which is allocated and
+// resized using sqlite3Realloc().
+//
+// When a savepoint is created, the PagerSavepoint.iHdrOffset field is
+// set to 0. If a journal-header is written into the main journal while
+// the savepoint is active, then iHdrOffset is set to the byte offset
+// immediately following the last journal record written into the main
+// journal before the journal-header. This is required during savepoint
+// rollback (see pagerPlaybackSavepoint()).
+type PagerSavepoint1 = struct {
+ FiOffset I64
+ FiHdrOffset I64
+ FpInSavepoint uintptr
+ FnOrig Pgno
+ FiSubRec Pgno
+ FbTruncateOnRelease int32
+ FaWalData [4]U32
+ F__ccgo_pad1 [4]byte
+}
+
+// An instance of the following structure is allocated for each active
+// savepoint and statement transaction in the system. All such structures
+// are stored in the Pager.aSavepoint[] array, which is allocated and
+// resized using sqlite3Realloc().
+//
+// When a savepoint is created, the PagerSavepoint.iHdrOffset field is
+// set to 0. If a journal-header is written into the main journal while
+// the savepoint is active, then iHdrOffset is set to the byte offset
+// immediately following the last journal record written into the main
+// journal before the journal-header. This is required during savepoint
+// rollback (see pagerPlaybackSavepoint()).
+type PagerSavepoint = PagerSavepoint1
+
+var aJournalMagic = [8]uint8{
+ uint8(0xd9), uint8(0xd5), uint8(0x05), uint8(0xf9), uint8(0x20), uint8(0xa1), uint8(0x63), uint8(0xd7),
+}
+
+func setGetterMethod(tls *libc.TLS, pPager uintptr) {
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FxGet = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Pgno, uintptr, int32) int32
+ }{getPageError}))
+ } else if (*Pager)(unsafe.Pointer(pPager)).FbUseFetch != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FxGet = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Pgno, uintptr, int32) int32
+ }{getPageMMap}))
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FxGet = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Pgno, uintptr, int32) int32
+ }{getPageNormal}))
+ }
+}
+
+func subjRequiresPage(tls *libc.TLS, pPg uintptr) int32 {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ var p uintptr
+ var pgno Pgno = (*PgHdr)(unsafe.Pointer(pPg)).Fpgno
+ var i int32
+ for i = 0; i < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; i++ {
+ p = (*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(i)*56
+ if (*PagerSavepoint)(unsafe.Pointer(p)).FnOrig >= pgno && 0 == Xsqlite3BitvecTestNotNull(tls, (*PagerSavepoint)(unsafe.Pointer(p)).FpInSavepoint, pgno) {
+ for i = i + 1; i < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; i++ {
+ (*PagerSavepoint)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(i)*56)).FbTruncateOnRelease = 0
+ }
+ return 1
+ }
+ }
+ return 0
+}
+
+func read32bits(tls *libc.TLS, fd uintptr, offset I64, pRes uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = Xsqlite3OsRead(tls, fd, bp, int32(unsafe.Sizeof([4]uint8{})), offset)
+ if rc == SQLITE_OK {
+ *(*U32)(unsafe.Pointer(pRes)) = Xsqlite3Get4byte(tls, bp)
+ }
+ return rc
+}
+
+func write32bits(tls *libc.TLS, fd uintptr, offset I64, val U32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ Xsqlite3Put4byte(tls, bp, val)
+ return Xsqlite3OsWrite(tls, fd, bp, 4, offset)
+}
+
+func pagerUnlockDb(tls *libc.TLS, pPager uintptr, eLock int32) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
+ if (*Pager)(unsafe.Pointer(pPager)).FnoLock != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = Xsqlite3OsUnlock(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, eLock)
+ }
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeLock) != EXCLUSIVE_LOCK+1 {
+ (*Pager)(unsafe.Pointer(pPager)).FeLock = U8(eLock)
+ }
+
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = (*Pager)(unsafe.Pointer(pPager)).FtempFile
+ return rc
+}
+
+func pagerLockDb(tls *libc.TLS, pPager uintptr, eLock int32) int32 {
+ var rc int32 = SQLITE_OK
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeLock) < eLock || int32((*Pager)(unsafe.Pointer(pPager)).FeLock) == EXCLUSIVE_LOCK+1 {
+ if (*Pager)(unsafe.Pointer(pPager)).FnoLock != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = Xsqlite3OsLock(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, eLock)
+ }
+ if rc == SQLITE_OK && (int32((*Pager)(unsafe.Pointer(pPager)).FeLock) != EXCLUSIVE_LOCK+1 || eLock == EXCLUSIVE_LOCK) {
+ (*Pager)(unsafe.Pointer(pPager)).FeLock = U8(eLock)
+
+ }
+ }
+ return rc
+}
+
+func jrnlBufferSize(tls *libc.TLS, pPager uintptr) int32 {
+ _ = pPager
+
+ return 0
+}
+
+func readSuperJournal(tls *libc.TLS, pJrnl uintptr, zSuper uintptr, nSuper U32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+
+ var u U32
+
+ *(*int8)(unsafe.Pointer(zSuper)) = int8(0)
+
+ if SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3OsFileSize(tls, pJrnl, bp)) ||
+ *(*I64)(unsafe.Pointer(bp)) < int64(16) ||
+ SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, pJrnl, *(*I64)(unsafe.Pointer(bp))-int64(16), bp+8)) ||
+ *(*U32)(unsafe.Pointer(bp + 8)) >= nSuper ||
+ I64(*(*U32)(unsafe.Pointer(bp + 8))) > *(*I64)(unsafe.Pointer(bp))-int64(16) ||
+ *(*U32)(unsafe.Pointer(bp + 8)) == U32(0) ||
+ SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, pJrnl, *(*I64)(unsafe.Pointer(bp))-int64(12), bp+12)) ||
+ SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3OsRead(tls, pJrnl, bp+16, 8, *(*I64)(unsafe.Pointer(bp))-int64(8))) ||
+ libc.Xmemcmp(tls, bp+16, uintptr(unsafe.Pointer(&aJournalMagic)), uint64(8)) != 0 ||
+ SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3OsRead(tls, pJrnl, zSuper, int32(*(*U32)(unsafe.Pointer(bp + 8))), *(*I64)(unsafe.Pointer(bp))-int64(16)-I64(*(*U32)(unsafe.Pointer(bp + 8))))) {
+ return rc
+ }
+
+ for u = U32(0); u < *(*U32)(unsafe.Pointer(bp + 8)); u++ {
+ *(*U32)(unsafe.Pointer(bp + 12)) -= U32(*(*int8)(unsafe.Pointer(zSuper + uintptr(u))))
+ }
+ if *(*U32)(unsafe.Pointer(bp + 12)) != 0 {
+ *(*U32)(unsafe.Pointer(bp + 8)) = U32(0)
+ }
+ *(*int8)(unsafe.Pointer(zSuper + uintptr(*(*U32)(unsafe.Pointer(bp + 8))))) = int8(0)
+ *(*int8)(unsafe.Pointer(zSuper + uintptr(*(*U32)(unsafe.Pointer(bp + 8))+U32(1)))) = int8(0)
+
+ return SQLITE_OK
+}
+
+func journalHdrOffset(tls *libc.TLS, pPager uintptr) I64 {
+ var offset I64 = int64(0)
+ var c I64 = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+ if c != 0 {
+ offset = ((c-int64(1))/I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize) + int64(1)) * I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize)
+ }
+
+ return offset
+}
+
+func zeroJournalHdr(tls *libc.TLS, pPager uintptr, doTruncate int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ if (*Pager)(unsafe.Pointer(pPager)).FjournalOff != 0 {
+ var iLimit I64 = (*Pager)(unsafe.Pointer(pPager)).FjournalSizeLimit
+
+ if doTruncate != 0 || iLimit == int64(0) {
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, int64(0))
+ } else {
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&zeroHdr)), int32(unsafe.Sizeof(zeroHdr)), int64(0))
+ }
+ if rc == SQLITE_OK && !(int32((*Pager)(unsafe.Pointer(pPager)).FnoSync) != 0) {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, SQLITE_SYNC_DATAONLY|int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags))
+ }
+
+ if rc == SQLITE_OK && iLimit > int64(0) {
+ rc = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp)
+ if rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp)) > iLimit {
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iLimit)
+ }
+ }
+ }
+ return rc
+}
+
+var zeroHdr = [28]int8{0: int8(0)}
+
+func writeJournalHdr(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var zHeader uintptr = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+ var nHeader U32 = U32((*Pager)(unsafe.Pointer(pPager)).FpageSize)
+ var nWrite U32
+ var ii int32
+
+ if nHeader > (*Pager)(unsafe.Pointer(pPager)).FsectorSize {
+ nHeader = (*Pager)(unsafe.Pointer(pPager)).FsectorSize
+ }
+
+ for ii = 0; ii < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; ii++ {
+ if (*PagerSavepoint)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FaSavepoint+uintptr(ii)*56)).FiHdrOffset == int64(0) {
+ (*PagerSavepoint)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(ii)*56)).FiHdrOffset = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+ }
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr = libc.AssignPtrInt64(pPager+96, journalHdrOffset(tls, pPager))
+
+ if (*Pager)(unsafe.Pointer(pPager)).FnoSync != 0 || int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_MEMORY ||
+ Xsqlite3OsDeviceCharacteristics(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd)&SQLITE_IOCAP_SAFE_APPEND != 0 {
+ libc.X__builtin___memcpy_chk(tls, zHeader, uintptr(unsafe.Pointer(&aJournalMagic)), uint64(unsafe.Sizeof(aJournalMagic)), libc.X__builtin_object_size(tls, zHeader, 0))
+ Xsqlite3Put4byte(tls, zHeader+8, 0xffffffff)
+ } else {
+ libc.X__builtin___memset_chk(tls, zHeader, 0, uint64(unsafe.Sizeof(aJournalMagic))+uint64(4), libc.X__builtin_object_size(tls, zHeader, 0))
+ }
+
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U32(0))), pPager+56)
+ Xsqlite3Put4byte(tls, zHeader+12, (*Pager)(unsafe.Pointer(pPager)).FcksumInit)
+
+ Xsqlite3Put4byte(tls, zHeader+16, (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize)
+
+ Xsqlite3Put4byte(tls, zHeader+20, (*Pager)(unsafe.Pointer(pPager)).FsectorSize)
+
+ Xsqlite3Put4byte(tls, zHeader+24, uint32((*Pager)(unsafe.Pointer(pPager)).FpageSize))
+
+ libc.X__builtin___memset_chk(tls, zHeader+28, 0, uint64(nHeader)-(uint64(unsafe.Sizeof(aJournalMagic))+uint64(20)), libc.X__builtin_object_size(tls, zHeader+28, 0))
+
+ for nWrite = U32(0); rc == SQLITE_OK && nWrite < (*Pager)(unsafe.Pointer(pPager)).FsectorSize; nWrite = nWrite + nHeader {
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, zHeader, int32(nHeader), (*Pager)(unsafe.Pointer(pPager)).FjournalOff)
+
+ *(*I64)(unsafe.Pointer(pPager + 96)) += I64(nHeader)
+ }
+
+ return rc
+}
+
+func readJournalHdr(tls *libc.TLS, pPager uintptr, isHot int32, journalSize I64, pNRec uintptr, pDbSize uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+
+ var iHdrOff I64
+
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = journalHdrOffset(tls, pPager)
+ if (*Pager)(unsafe.Pointer(pPager)).FjournalOff+I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize) > journalSize {
+ return SQLITE_DONE
+ }
+ iHdrOff = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+
+ if isHot != 0 || iHdrOff != (*Pager)(unsafe.Pointer(pPager)).FjournalHdr {
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp, int32(unsafe.Sizeof([8]uint8{})), iHdrOff)
+ if rc != 0 {
+ return rc
+ }
+ if libc.Xmemcmp(tls, bp, uintptr(unsafe.Pointer(&aJournalMagic)), uint64(unsafe.Sizeof([8]uint8{}))) != 0 {
+ return SQLITE_DONE
+ }
+ }
+
+ if SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(8), pNRec)) ||
+ SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(12), pPager+56)) ||
+ SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(16), pDbSize)) {
+ return rc
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FjournalOff == int64(0) {
+ if SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(20), bp+8)) ||
+ SQLITE_OK != libc.AssignInt32(&rc, read32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(24), bp+12)) {
+ return rc
+ }
+
+ if *(*U32)(unsafe.Pointer(bp + 12)) == U32(0) {
+ *(*U32)(unsafe.Pointer(bp + 12)) = U32((*Pager)(unsafe.Pointer(pPager)).FpageSize)
+ }
+
+ if *(*U32)(unsafe.Pointer(bp + 12)) < U32(512) || *(*U32)(unsafe.Pointer(bp + 8)) < U32(32) ||
+ *(*U32)(unsafe.Pointer(bp + 12)) > U32(SQLITE_MAX_PAGE_SIZE) || *(*U32)(unsafe.Pointer(bp + 8)) > U32(MAX_SECTOR_SIZE) ||
+ (*(*U32)(unsafe.Pointer(bp + 12))-U32(1))&*(*U32)(unsafe.Pointer(bp + 12)) != U32(0) || (*(*U32)(unsafe.Pointer(bp + 8))-U32(1))&*(*U32)(unsafe.Pointer(bp + 8)) != U32(0) {
+ return SQLITE_DONE
+ }
+
+ rc = Xsqlite3PagerSetPagesize(tls, pPager, bp+12, -1)
+
+ (*Pager)(unsafe.Pointer(pPager)).FsectorSize = *(*U32)(unsafe.Pointer(bp + 8))
+ }
+
+ *(*I64)(unsafe.Pointer(pPager + 96)) += I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize)
+ return rc
+}
+
+func writeSuperJournal(tls *libc.TLS, pPager uintptr, zSuper uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var nSuper int32
+ var iHdrOff I64
+
+ var cksum U32 = U32(0)
+
+ if !(zSuper != 0) ||
+ int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_MEMORY ||
+ !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)) {
+ return SQLITE_OK
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FsetSuper = U8(1)
+
+ for nSuper = 0; *(*int8)(unsafe.Pointer(zSuper + uintptr(nSuper))) != 0; nSuper++ {
+ cksum = cksum + U32(*(*int8)(unsafe.Pointer(zSuper + uintptr(nSuper))))
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FfullSync != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = journalHdrOffset(tls, pPager)
+ }
+ iHdrOff = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+
+ if 0 != libc.AssignInt32(&rc, write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff, (*Pager)(unsafe.Pointer(pPager)).FlckPgno)) ||
+ 0 != libc.AssignInt32(&rc, Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, zSuper, nSuper, iHdrOff+int64(4))) ||
+ 0 != libc.AssignInt32(&rc, write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+I64(nSuper), uint32(nSuper))) ||
+ 0 != libc.AssignInt32(&rc, write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+I64(nSuper)+int64(4), cksum)) ||
+ 0 != libc.AssignInt32(&rc, Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&aJournalMagic)), 8,
+ iHdrOff+int64(4)+I64(nSuper)+int64(8))) {
+ return rc
+ }
+ *(*I64)(unsafe.Pointer(pPager + 96)) += I64(nSuper + 20)
+
+ if SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp)) &&
+ *(*I64)(unsafe.Pointer(bp)) > (*Pager)(unsafe.Pointer(pPager)).FjournalOff {
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, (*Pager)(unsafe.Pointer(pPager)).FjournalOff)
+ }
+ return rc
+}
+
+func pager_reset(tls *libc.TLS, pPager uintptr) {
+ (*Pager)(unsafe.Pointer(pPager)).FiDataVersion++
+ Xsqlite3BackupRestart(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup)
+ Xsqlite3PcacheClear(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+}
+
+// Return the pPager->iDataVersion value
+func Xsqlite3PagerDataVersion(tls *libc.TLS, pPager uintptr) U32 {
+ return (*Pager)(unsafe.Pointer(pPager)).FiDataVersion
+}
+
+func releaseAllSavepoints(tls *libc.TLS, pPager uintptr) {
+ var ii int32
+ for ii = 0; ii < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; ii++ {
+ Xsqlite3BitvecDestroy(tls, (*PagerSavepoint)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FaSavepoint+uintptr(ii)*56)).FpInSavepoint)
+ }
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) || Xsqlite3JournalIsInMemory(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd) != 0 {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd)
+ }
+ Xsqlite3_free(tls, (*Pager)(unsafe.Pointer(pPager)).FaSavepoint)
+ (*Pager)(unsafe.Pointer(pPager)).FaSavepoint = uintptr(0)
+ (*Pager)(unsafe.Pointer(pPager)).FnSavepoint = 0
+ (*Pager)(unsafe.Pointer(pPager)).FnSubRec = U32(0)
+}
+
+func addToSavepointBitvecs(tls *libc.TLS, pPager uintptr, pgno Pgno) int32 {
+ var ii int32
+ var rc int32 = SQLITE_OK
+
+ for ii = 0; ii < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; ii++ {
+ var p uintptr = (*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(ii)*56
+ if pgno <= (*PagerSavepoint)(unsafe.Pointer(p)).FnOrig {
+ rc = rc | Xsqlite3BitvecSet(tls, (*PagerSavepoint)(unsafe.Pointer(p)).FpInSavepoint, pgno)
+
+ }
+ }
+ return rc
+}
+
+func pager_unlock(tls *libc.TLS, pPager uintptr) {
+ Xsqlite3BitvecDestroy(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal)
+ (*Pager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
+ releaseAllSavepoints(tls, pPager)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ Xsqlite3WalEndReadTransaction(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_OPEN)
+ } else if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) {
+ var rc int32
+ var iDc int32
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
+ iDc = Xsqlite3OsDeviceCharacteristics(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd)
+ } else {
+ iDc = 0
+ }
+
+ if 0 == iDc&SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN ||
+ 1 != int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode)&5 {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ }
+
+ rc = pagerUnlockDb(tls, pPager, NO_LOCK)
+ if rc != SQLITE_OK && int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_ERROR {
+ (*Pager)(unsafe.Pointer(pPager)).FeLock = U8(EXCLUSIVE_LOCK + 1)
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_OPEN)
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
+ pager_reset(tls, pPager)
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = U8(0)
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_OPEN)
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FeState = func() uint8 {
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
+ return uint8(PAGER_OPEN)
+ }
+ return uint8(PAGER_READER)
+ }()
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FbUseFetch != 0 {
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, int64(0), uintptr(0))
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FerrCode = SQLITE_OK
+ setGetterMethod(tls, pPager)
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr = int64(0)
+ (*Pager)(unsafe.Pointer(pPager)).FsetSuper = U8(0)
+}
+
+func pager_error(tls *libc.TLS, pPager uintptr, rc int32) int32 {
+ var rc2 int32 = rc & 0xff
+
+ if rc2 == SQLITE_FULL || rc2 == SQLITE_IOERR {
+ (*Pager)(unsafe.Pointer(pPager)).FerrCode = rc
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_ERROR)
+ setGetterMethod(tls, pPager)
+ }
+ return rc
+}
+
+func pagerFlushOnCommit(tls *libc.TLS, pPager uintptr, bCommit int32) int32 {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
+ return 1
+ }
+ if !(bCommit != 0) {
+ return 0
+ }
+ if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0)) {
+ return 0
+ }
+ return libc.Bool32(Xsqlite3PCachePercentDirty(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache) >= 25)
+}
+
+func pager_end_transaction(tls *libc.TLS, pPager uintptr, hasSuper int32, bCommit int32) int32 {
+ var rc int32 = SQLITE_OK
+ var rc2 int32 = SQLITE_OK
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) < PAGER_WRITER_LOCKED && int32((*Pager)(unsafe.Pointer(pPager)).FeLock) < RESERVED_LOCK {
+ return SQLITE_OK
+ }
+
+ releaseAllSavepoints(tls, pPager)
+
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
+ if Xsqlite3JournalIsInMemory(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd) != 0 {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ } else if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_TRUNCATE {
+ if (*Pager)(unsafe.Pointer(pPager)).FjournalOff == int64(0) {
+ rc = SQLITE_OK
+ } else {
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, int64(0))
+ if rc == SQLITE_OK && (*Pager)(unsafe.Pointer(pPager)).FfullSync != 0 {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags))
+ }
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ } else if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_PERSIST ||
+ (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 && int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) != PAGER_JOURNALMODE_WAL {
+ rc = zeroJournalHdr(tls, pPager, libc.Bool32(hasSuper != 0 || (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0))
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ } else {
+ var bDelete int32 = libc.BoolInt32(!((*Pager)(unsafe.Pointer(pPager)).FtempFile != 0))
+
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ if bDelete != 0 {
+ rc = Xsqlite3OsDelete(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, int32((*Pager)(unsafe.Pointer(pPager)).FextraSync))
+ }
+ }
+ }
+
+ Xsqlite3BitvecDestroy(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal)
+ (*Pager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
+ (*Pager)(unsafe.Pointer(pPager)).FnRec = 0
+ if rc == SQLITE_OK {
+ if (*Pager)(unsafe.Pointer(pPager)).FmemDb != 0 || pagerFlushOnCommit(tls, pPager, bCommit) != 0 {
+ Xsqlite3PcacheCleanAll(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+ } else {
+ Xsqlite3PcacheClearWritable(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+ }
+ Xsqlite3PcacheTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, (*Pager)(unsafe.Pointer(pPager)).FdbSize)
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ rc2 = Xsqlite3WalEndWriteTransaction(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+
+ } else if rc == SQLITE_OK && bCommit != 0 && (*Pager)(unsafe.Pointer(pPager)).FdbFileSize > (*Pager)(unsafe.Pointer(pPager)).FdbSize {
+ rc = pager_truncate(tls, pPager, (*Pager)(unsafe.Pointer(pPager)).FdbSize)
+ }
+
+ if rc == SQLITE_OK && bCommit != 0 {
+ rc = Xsqlite3OsFileControl(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_COMMIT_PHASETWO, uintptr(0))
+ if rc == SQLITE_NOTFOUND {
+ rc = SQLITE_OK
+ }
+ }
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) &&
+ (!((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) || Xsqlite3WalExclusiveMode(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, 0) != 0) {
+ rc2 = pagerUnlockDb(tls, pPager, SHARED_LOCK)
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_READER)
+ (*Pager)(unsafe.Pointer(pPager)).FsetSuper = U8(0)
+
+ return func() int32 {
+ if rc == SQLITE_OK {
+ return rc2
+ }
+ return rc
+ }()
+}
+
+func pagerUnlockAndRollback(tls *libc.TLS, pPager uintptr) {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) != PAGER_ERROR && int32((*Pager)(unsafe.Pointer(pPager)).FeState) != PAGER_OPEN {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) >= PAGER_WRITER_LOCKED {
+ Xsqlite3BeginBenignMalloc(tls)
+ Xsqlite3PagerRollback(tls, pPager)
+ Xsqlite3EndBenignMalloc(tls)
+ } else if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) {
+ pager_end_transaction(tls, pPager, 0, 0)
+ }
+ }
+ pager_unlock(tls, pPager)
+}
+
+func pager_cksum(tls *libc.TLS, pPager uintptr, aData uintptr) U32 {
+ var cksum U32 = (*Pager)(unsafe.Pointer(pPager)).FcksumInit
+ var i int32 = int32((*Pager)(unsafe.Pointer(pPager)).FpageSize - int64(200))
+ for i > 0 {
+ cksum = cksum + U32(*(*U8)(unsafe.Pointer(aData + uintptr(i))))
+ i = i - 200
+ }
+ return cksum
+}
+
+func pager_playback_one_page(tls *libc.TLS, pPager uintptr, pOffset uintptr, pDone uintptr, isMainJrnl int32, isSavepnt int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+
+ var aData uintptr
+ var jfd uintptr
+ var isSynced int32
+
+ aData = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+
+ if isMainJrnl != 0 {
+ jfd = (*Pager)(unsafe.Pointer(pPager)).Fjfd
+ } else {
+ jfd = (*Pager)(unsafe.Pointer(pPager)).Fsjfd
+ }
+ rc = read32bits(tls, jfd, *(*I64)(unsafe.Pointer(pOffset)), bp)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ rc = Xsqlite3OsRead(tls, jfd, aData, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), *(*I64)(unsafe.Pointer(pOffset))+int64(4))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ *(*I64)(unsafe.Pointer(pOffset)) += (*Pager)(unsafe.Pointer(pPager)).FpageSize + int64(4) + I64(isMainJrnl*4)
+
+ if *(*Pgno)(unsafe.Pointer(bp)) == Pgno(0) || *(*Pgno)(unsafe.Pointer(bp)) == (*Pager)(unsafe.Pointer(pPager)).FlckPgno {
+ return SQLITE_DONE
+ }
+ if *(*Pgno)(unsafe.Pointer(bp)) > (*Pager)(unsafe.Pointer(pPager)).FdbSize || Xsqlite3BitvecTest(tls, pDone, *(*Pgno)(unsafe.Pointer(bp))) != 0 {
+ return SQLITE_OK
+ }
+ if isMainJrnl != 0 {
+ rc = read32bits(tls, jfd, *(*I64)(unsafe.Pointer(pOffset))-int64(4), bp+4)
+ if rc != 0 {
+ return rc
+ }
+ if !(isSavepnt != 0) && pager_cksum(tls, pPager, aData) != *(*U32)(unsafe.Pointer(bp + 4)) {
+ return SQLITE_DONE
+ }
+ }
+
+ if pDone != 0 && libc.AssignInt32(&rc, Xsqlite3BitvecSet(tls, pDone, *(*Pgno)(unsafe.Pointer(bp)))) != SQLITE_OK {
+ return rc
+ }
+
+ if *(*Pgno)(unsafe.Pointer(bp)) == Pgno(1) && int32((*Pager)(unsafe.Pointer(pPager)).FnReserve) != int32(*(*U8)(unsafe.Pointer(aData + 20))) {
+ (*Pager)(unsafe.Pointer(pPager)).FnReserve = I16(*(*U8)(unsafe.Pointer(aData + 20)))
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = Xsqlite3PagerLookup(tls, pPager, *(*Pgno)(unsafe.Pointer(bp)))
+ }
+
+ if isMainJrnl != 0 {
+ isSynced = libc.Bool32((*Pager)(unsafe.Pointer(pPager)).FnoSync != 0 || *(*I64)(unsafe.Pointer(pOffset)) <= (*Pager)(unsafe.Pointer(pPager)).FjournalHdr)
+ } else {
+ isSynced = libc.Bool32(*(*uintptr)(unsafe.Pointer(bp + 8)) == uintptr(0) || 0 == int32((*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).Fflags)&PGHDR_NEED_SYNC)
+ }
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) &&
+ (int32((*Pager)(unsafe.Pointer(pPager)).FeState) >= PAGER_WRITER_DBMOD || int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN) &&
+ isSynced != 0 {
+ var ofst I64 = I64(*(*Pgno)(unsafe.Pointer(bp))-Pgno(1)) * (*Pager)(unsafe.Pointer(pPager)).FpageSize
+
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, aData, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), ofst)
+
+ if *(*Pgno)(unsafe.Pointer(bp)) > (*Pager)(unsafe.Pointer(pPager)).FdbFileSize {
+ (*Pager)(unsafe.Pointer(pPager)).FdbFileSize = *(*Pgno)(unsafe.Pointer(bp))
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FpBackup != 0 {
+ Xsqlite3BackupUpdate(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup, *(*Pgno)(unsafe.Pointer(bp)), aData)
+ }
+ } else if !(isMainJrnl != 0) && *(*uintptr)(unsafe.Pointer(bp + 8)) == uintptr(0) {
+ *(*U8)(unsafe.Pointer(pPager + 25)) |= U8(SPILLFLAG_ROLLBACK)
+ rc = Xsqlite3PagerGet(tls, pPager, *(*Pgno)(unsafe.Pointer(bp)), bp+8, 1)
+
+ *(*U8)(unsafe.Pointer(pPager + 25)) &= libc.Uint8FromInt32(libc.CplInt32(SPILLFLAG_ROLLBACK))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ Xsqlite3PcacheMakeDirty(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ var pData uintptr
+ pData = (*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpData
+ libc.X__builtin___memcpy_chk(tls, pData, aData, uint64((*Pager)(unsafe.Pointer(pPager)).FpageSize), libc.X__builtin_object_size(tls, pData, 0))
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Pager)(unsafe.Pointer(pPager)).FxReiniter})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+
+ if *(*Pgno)(unsafe.Pointer(bp)) == Pgno(1) {
+ libc.X__builtin___memcpy_chk(tls, pPager+136, pData+24, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, pPager+136, 0))
+ }
+ Xsqlite3PcacheRelease(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ return rc
+}
+
+func pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pVfs uintptr
+ var rc int32
+ var pSuper uintptr
+ var pJournal uintptr
+ var zSuperJournal uintptr
+
+ var zJournal uintptr
+ var zSuperPtr uintptr
+ var zFree uintptr
+ var nSuperPtr int32
+ var flags int32
+
+ var c int32
+ var flags1 int32
+
+ pVfs = (*Pager)(unsafe.Pointer(pPager)).FpVfs
+ zSuperJournal = uintptr(0)
+ zFree = uintptr(0)
+
+ pSuper = Xsqlite3MallocZero(tls, uint64((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile*2))
+ if !!(pSuper != 0) {
+ goto __1
+ }
+ rc = SQLITE_NOMEM
+ pJournal = uintptr(0)
+ goto __2
+__1:
+ flags = SQLITE_OPEN_READONLY | SQLITE_OPEN_SUPER_JOURNAL
+ rc = Xsqlite3OsOpen(tls, pVfs, zSuper, pSuper, flags, uintptr(0))
+ pJournal = pSuper + uintptr((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile)
+__2:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __3
+ }
+ goto delsuper_out
+__3:
+ ;
+ rc = Xsqlite3OsFileSize(tls, pSuper, bp)
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto delsuper_out
+__4:
+ ;
+ nSuperPtr = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname + 1
+ zFree = Xsqlite3Malloc(tls, uint64(int64(4)+*(*I64)(unsafe.Pointer(bp))+I64(nSuperPtr)+int64(2)))
+ if !!(zFree != 0) {
+ goto __5
+ }
+ rc = SQLITE_NOMEM
+ goto delsuper_out
+__5:
+ ;
+ *(*int8)(unsafe.Pointer(zFree)) = libc.AssignPtrInt8(zFree+1, libc.AssignPtrInt8(zFree+2, libc.AssignPtrInt8(zFree+3, int8(0))))
+ zSuperJournal = zFree + 4
+ zSuperPtr = zSuperJournal + uintptr(*(*I64)(unsafe.Pointer(bp))+int64(2))
+ rc = Xsqlite3OsRead(tls, pSuper, zSuperJournal, int32(*(*I64)(unsafe.Pointer(bp))), int64(0))
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ goto delsuper_out
+__6:
+ ;
+ *(*int8)(unsafe.Pointer(zSuperJournal + uintptr(*(*I64)(unsafe.Pointer(bp))))) = int8(0)
+ *(*int8)(unsafe.Pointer(zSuperJournal + uintptr(*(*I64)(unsafe.Pointer(bp))+int64(1)))) = int8(0)
+
+ zJournal = zSuperJournal
+__7:
+ if !((int64(zJournal)-int64(zSuperJournal))/1 < *(*I64)(unsafe.Pointer(bp))) {
+ goto __8
+ }
+ rc = Xsqlite3OsAccess(tls, pVfs, zJournal, SQLITE_ACCESS_EXISTS, bp+8)
+ if !(rc != SQLITE_OK) {
+ goto __9
+ }
+ goto delsuper_out
+__9:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) != 0) {
+ goto __10
+ }
+ flags1 = SQLITE_OPEN_READONLY | SQLITE_OPEN_SUPER_JOURNAL
+ rc = Xsqlite3OsOpen(tls, pVfs, zJournal, pJournal, flags1, uintptr(0))
+ if !(rc != SQLITE_OK) {
+ goto __11
+ }
+ goto delsuper_out
+__11:
+ ;
+ rc = readSuperJournal(tls, pJournal, zSuperPtr, uint32(nSuperPtr))
+ Xsqlite3OsClose(tls, pJournal)
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ goto delsuper_out
+__12:
+ ;
+ c = libc.Bool32(int32(*(*int8)(unsafe.Pointer(zSuperPtr))) != 0 && libc.Xstrcmp(tls, zSuperPtr, zSuper) == 0)
+ if !(c != 0) {
+ goto __13
+ }
+
+ goto delsuper_out
+__13:
+ ;
+__10:
+ ;
+ zJournal += uintptr(Xsqlite3Strlen30(tls, zJournal) + 1)
+ goto __7
+__8:
+ ;
+ Xsqlite3OsClose(tls, pSuper)
+ rc = Xsqlite3OsDelete(tls, pVfs, zSuper, 0)
+
+delsuper_out:
+ Xsqlite3_free(tls, zFree)
+ if !(pSuper != 0) {
+ goto __14
+ }
+ Xsqlite3OsClose(tls, pSuper)
+
+ Xsqlite3_free(tls, pSuper)
+__14:
+ ;
+ return rc
+}
+
+func pager_truncate(tls *libc.TLS, pPager uintptr, nPage Pgno) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32 = SQLITE_OK
+
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) &&
+ (int32((*Pager)(unsafe.Pointer(pPager)).FeState) >= PAGER_WRITER_DBMOD || int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN) {
+ var szPage int32 = int32((*Pager)(unsafe.Pointer(pPager)).FpageSize)
+
+ rc = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, bp)
+ *(*I64)(unsafe.Pointer(bp + 8)) = I64(szPage) * I64(nPage)
+ if rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp)) != *(*I64)(unsafe.Pointer(bp + 8)) {
+ if *(*I64)(unsafe.Pointer(bp)) > *(*I64)(unsafe.Pointer(bp + 8)) {
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, *(*I64)(unsafe.Pointer(bp + 8)))
+ } else if *(*I64)(unsafe.Pointer(bp))+I64(szPage) <= *(*I64)(unsafe.Pointer(bp + 8)) {
+ var pTmp uintptr = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+ libc.X__builtin___memset_chk(tls, pTmp, 0, uint64(szPage), libc.X__builtin_object_size(tls, pTmp, 0))
+
+ Xsqlite3OsFileControlHint(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_SIZE_HINT, bp+8)
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, pTmp, szPage, *(*I64)(unsafe.Pointer(bp + 8))-I64(szPage))
+ }
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FdbFileSize = nPage
+ }
+ }
+ }
+ return rc
+}
+
+// Return a sanitized version of the sector-size of OS file pFile. The
+// return value is guaranteed to lie between 32 and MAX_SECTOR_SIZE.
+func Xsqlite3SectorSize(tls *libc.TLS, pFile uintptr) int32 {
+ var iRet int32 = Xsqlite3OsSectorSize(tls, pFile)
+ if iRet < 32 {
+ iRet = 512
+ } else if iRet > MAX_SECTOR_SIZE {
+ iRet = MAX_SECTOR_SIZE
+ }
+ return iRet
+}
+
+func setSectorSize(tls *libc.TLS, pPager uintptr) {
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 ||
+ Xsqlite3OsDeviceCharacteristics(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd)&SQLITE_IOCAP_POWERSAFE_OVERWRITE != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FsectorSize = U32(512)
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FsectorSize = U32(Xsqlite3SectorSize(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd))
+ }
+}
+
+func pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var pVfs uintptr
+
+ var u U32
+
+ var rc int32
+
+ var zSuper uintptr
+ var needPagerReset int32
+ var nPlayback int32
+
+ pVfs = (*Pager)(unsafe.Pointer(pPager)).FpVfs
+ *(*Pgno)(unsafe.Pointer(bp + 32)) = Pgno(0)
+ *(*int32)(unsafe.Pointer(bp + 24)) = 1
+ zSuper = uintptr(0)
+ nPlayback = 0
+ *(*U32)(unsafe.Pointer(bp + 36)) = U32((*Pager)(unsafe.Pointer(pPager)).FpageSize)
+
+ rc = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp+16)
+ if !(rc != SQLITE_OK) {
+ goto __1
+ }
+ goto end_playback
+__1:
+ ;
+ zSuper = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+ rc = readSuperJournal(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, zSuper, uint32((*Sqlite3_vfs)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FpVfs)).FmxPathname+1))
+ if !(rc == SQLITE_OK && *(*int8)(unsafe.Pointer(zSuper)) != 0) {
+ goto __2
+ }
+ rc = Xsqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+24)
+__2:
+ ;
+ zSuper = uintptr(0)
+ if !(rc != SQLITE_OK || !(*(*int32)(unsafe.Pointer(bp + 24)) != 0)) {
+ goto __3
+ }
+ goto end_playback
+__3:
+ ;
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ needPagerReset = isHot
+
+__4:
+ if !(1 != 0) {
+ goto __5
+ }
+
+ rc = readJournalHdr(tls, pPager, isHot, *(*I64)(unsafe.Pointer(bp + 16)), bp+28, bp+32)
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ if !(rc == SQLITE_DONE) {
+ goto __7
+ }
+ rc = SQLITE_OK
+__7:
+ ;
+ goto end_playback
+__6:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 28)) == 0xffffffff) {
+ goto __8
+ }
+
+ *(*U32)(unsafe.Pointer(bp + 28)) = U32(int32((*(*I64)(unsafe.Pointer(bp + 16)) - I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize)) / ((*Pager)(unsafe.Pointer(pPager)).FpageSize + int64(8))))
+__8:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 28)) == U32(0) && !(isHot != 0) && (*Pager)(unsafe.Pointer(pPager)).FjournalHdr+I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize) == (*Pager)(unsafe.Pointer(pPager)).FjournalOff) {
+ goto __9
+ }
+ *(*U32)(unsafe.Pointer(bp + 28)) = U32(int32((*(*I64)(unsafe.Pointer(bp + 16)) - (*Pager)(unsafe.Pointer(pPager)).FjournalOff) / ((*Pager)(unsafe.Pointer(pPager)).FpageSize + int64(8))))
+__9:
+ ;
+ if !((*Pager)(unsafe.Pointer(pPager)).FjournalOff == I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize)) {
+ goto __10
+ }
+ rc = pager_truncate(tls, pPager, *(*Pgno)(unsafe.Pointer(bp + 32)))
+ if !(rc != SQLITE_OK) {
+ goto __11
+ }
+ goto end_playback
+__11:
+ ;
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = *(*Pgno)(unsafe.Pointer(bp + 32))
+ if !((*Pager)(unsafe.Pointer(pPager)).FmxPgno < *(*Pgno)(unsafe.Pointer(bp + 32))) {
+ goto __12
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FmxPgno = *(*Pgno)(unsafe.Pointer(bp + 32))
+__12:
+ ;
+__10:
+ ;
+ u = U32(0)
+__13:
+ if !(u < *(*U32)(unsafe.Pointer(bp + 28))) {
+ goto __15
+ }
+ if !(needPagerReset != 0) {
+ goto __16
+ }
+ pager_reset(tls, pPager)
+ needPagerReset = 0
+__16:
+ ;
+ rc = pager_playback_one_page(tls, pPager, pPager+96, uintptr(0), 1, 0)
+ if !(rc == SQLITE_OK) {
+ goto __17
+ }
+ nPlayback++
+ goto __18
+__17:
+ if !(rc == SQLITE_DONE) {
+ goto __19
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = *(*I64)(unsafe.Pointer(bp + 16))
+ goto __15
+ goto __20
+__19:
+ if !(rc == SQLITE_IOERR|int32(2)<<8) {
+ goto __21
+ }
+
+ rc = SQLITE_OK
+ goto end_playback
+ goto __22
+__21:
+ goto end_playback
+__22:
+ ;
+__20:
+ ;
+__18:
+ ;
+ goto __14
+__14:
+ u++
+ goto __13
+ goto __15
+__15:
+ ;
+ goto __4
+__5:
+ ;
+end_playback:
+ if !(rc == SQLITE_OK) {
+ goto __23
+ }
+ rc = Xsqlite3PagerSetPagesize(tls, pPager, bp+36, -1)
+__23:
+ ;
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = (*Pager)(unsafe.Pointer(pPager)).FtempFile
+
+ if !(rc == SQLITE_OK) {
+ goto __24
+ }
+
+ zSuper = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace + 4
+ rc = readSuperJournal(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, zSuper, uint32((*Sqlite3_vfs)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FpVfs)).FmxPathname+1))
+
+__24:
+ ;
+ if !(rc == SQLITE_OK &&
+ (int32((*Pager)(unsafe.Pointer(pPager)).FeState) >= PAGER_WRITER_DBMOD || int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN)) {
+ goto __25
+ }
+ rc = Xsqlite3PagerSync(tls, pPager, uintptr(0))
+__25:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __26
+ }
+ rc = pager_end_transaction(tls, pPager, libc.Bool32(int32(*(*int8)(unsafe.Pointer(zSuper))) != 0), 0)
+
+__26:
+ ;
+ if !(rc == SQLITE_OK && *(*int8)(unsafe.Pointer(zSuper)) != 0 && *(*int32)(unsafe.Pointer(bp + 24)) != 0) {
+ goto __27
+ }
+
+ libc.X__builtin___memset_chk(tls, (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace, 0, uint64(4), libc.X__builtin_object_size(tls, (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace, 0))
+ rc = pager_delsuper(tls, pPager, zSuper)
+
+__27:
+ ;
+ if !(isHot != 0 && nPlayback != 0) {
+ goto __28
+ }
+ Xsqlite3_log(tls, SQLITE_NOTICE|int32(2)<<8, ts+4297,
+ libc.VaList(bp, nPlayback, (*Pager)(unsafe.Pointer(pPager)).FzJournal))
+__28:
+ ;
+ setSectorSize(tls, pPager)
+ return rc
+}
+
+func readDbPage(tls *libc.TLS, pPg uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ var rc int32 = SQLITE_OK
+
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ rc = Xsqlite3WalFindFrame(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno, bp)
+ if rc != 0 {
+ return rc
+ }
+ }
+ if *(*U32)(unsafe.Pointer(bp)) != 0 {
+ rc = Xsqlite3WalReadFrame(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, *(*U32)(unsafe.Pointer(bp)), int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), (*PgHdr)(unsafe.Pointer(pPg)).FpData)
+ } else {
+ var iOffset I64 = I64((*PgHdr)(unsafe.Pointer(pPg)).Fpgno-Pgno(1)) * (*Pager)(unsafe.Pointer(pPager)).FpageSize
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, (*PgHdr)(unsafe.Pointer(pPg)).FpData, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), iOffset)
+ if rc == SQLITE_IOERR|int32(2)<<8 {
+ rc = SQLITE_OK
+ }
+ }
+
+ if (*PgHdr)(unsafe.Pointer(pPg)).Fpgno == Pgno(1) {
+ if rc != 0 {
+ libc.X__builtin___memset_chk(tls, pPager+136, 0xff, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, pPager+136, 0))
+ } else {
+ var dbFileVers uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpData + 24
+ libc.X__builtin___memcpy_chk(tls, pPager+136, dbFileVers, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, pPager+136, 0))
+ }
+ }
+
+ return rc
+}
+
+func pager_write_changecounter(tls *libc.TLS, pPg uintptr) {
+ var change_counter U32
+ if pPg == uintptr(0) {
+ return
+ }
+
+ change_counter = Xsqlite3Get4byte(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpPager+136) + U32(1)
+ Xsqlite3Put4byte(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpData+uintptr(24), change_counter)
+
+ Xsqlite3Put4byte(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpData+uintptr(92), change_counter)
+ Xsqlite3Put4byte(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpData+uintptr(96), uint32(SQLITE_VERSION_NUMBER))
+}
+
+func pagerUndoCallback(tls *libc.TLS, pCtx uintptr, iPg Pgno) int32 {
+ var rc int32 = SQLITE_OK
+ var pPager uintptr = pCtx
+ var pPg uintptr
+
+ pPg = Xsqlite3PagerLookup(tls, pPager, iPg)
+ if pPg != 0 {
+ if Xsqlite3PcachePageRefcount(tls, pPg) == 1 {
+ Xsqlite3PcacheDrop(tls, pPg)
+ } else {
+ rc = readDbPage(tls, pPg)
+ if rc == SQLITE_OK {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Pager)(unsafe.Pointer(pPager)).FxReiniter})).f(tls, pPg)
+ }
+ Xsqlite3PagerUnrefNotNull(tls, pPg)
+ }
+ }
+
+ Xsqlite3BackupRestart(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup)
+
+ return rc
+}
+
+func pagerRollbackWal(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32
+ var pList uintptr
+
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize
+ rc = Xsqlite3WalUndo(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Pgno) int32
+ }{pagerUndoCallback})), pPager)
+ pList = Xsqlite3PcacheDirtyList(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+ for pList != 0 && rc == SQLITE_OK {
+ var pNext uintptr = (*PgHdr)(unsafe.Pointer(pList)).FpDirty
+ rc = pagerUndoCallback(tls, pPager, (*PgHdr)(unsafe.Pointer(pList)).Fpgno)
+ pList = pNext
+ }
+
+ return rc
+}
+
+func pagerWalFrames(tls *libc.TLS, pPager uintptr, pList uintptr, nTruncate Pgno, isCommit int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = pList
+
+ var rc int32
+ var nList int32
+ var p uintptr
+
+ if isCommit != 0 {
+ var ppNext uintptr = bp
+ nList = 0
+ for p = *(*uintptr)(unsafe.Pointer(bp)); libc.AssignPtrUintptr(ppNext, p) != uintptr(0); p = (*PgHdr)(unsafe.Pointer(p)).FpDirty {
+ if (*PgHdr)(unsafe.Pointer(p)).Fpgno <= nTruncate {
+ ppNext = p + 32
+ nList++
+ }
+ }
+
+ } else {
+ nList = 1
+ }
+ *(*int32)(unsafe.Pointer(pPager + 248 + 2*4)) += nList
+
+ if (*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fpgno == Pgno(1) {
+ pager_write_changecounter(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ rc = Xsqlite3WalFrames(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal,
+ int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), *(*uintptr)(unsafe.Pointer(bp)), nTruncate, isCommit, int32((*Pager)(unsafe.Pointer(pPager)).FwalSyncFlags))
+ if rc == SQLITE_OK && (*Pager)(unsafe.Pointer(pPager)).FpBackup != 0 {
+ for p = *(*uintptr)(unsafe.Pointer(bp)); p != 0; p = (*PgHdr)(unsafe.Pointer(p)).FpDirty {
+ Xsqlite3BackupUpdate(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup, (*PgHdr)(unsafe.Pointer(p)).Fpgno, (*PgHdr)(unsafe.Pointer(p)).FpData)
+ }
+ }
+
+ return rc
+}
+
+func pagerBeginReadTransaction(tls *libc.TLS, pPager uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ Xsqlite3WalEndReadTransaction(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+
+ rc = Xsqlite3WalBeginReadTransaction(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, bp)
+ if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp)) != 0 {
+ pager_reset(tls, pPager)
+ if (*Pager)(unsafe.Pointer(pPager)).FbUseFetch != 0 {
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, int64(0), uintptr(0))
+ }
+ }
+
+ return rc
+}
+
+func pagerPagecount(tls *libc.TLS, pPager uintptr, pnPage uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var nPage Pgno
+
+ nPage = Xsqlite3WalDbsize(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+
+ if nPage == Pgno(0) && (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
+ *(*I64)(unsafe.Pointer(bp)) = int64(0)
+ var rc int32 = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, bp)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ nPage = Pgno((*(*I64)(unsafe.Pointer(bp)) + (*Pager)(unsafe.Pointer(pPager)).FpageSize - int64(1)) / (*Pager)(unsafe.Pointer(pPager)).FpageSize)
+ }
+
+ if nPage > (*Pager)(unsafe.Pointer(pPager)).FmxPgno {
+ (*Pager)(unsafe.Pointer(pPager)).FmxPgno = nPage
+ }
+
+ *(*Pgno)(unsafe.Pointer(pnPage)) = nPage
+ return SQLITE_OK
+}
+
+func pagerOpenWalIfPresent(tls *libc.TLS, pPager uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) != 0) {
+ rc = Xsqlite3OsAccess(tls,
+ (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzWal, SQLITE_ACCESS_EXISTS, bp)
+ if rc == SQLITE_OK {
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = pagerPagecount(tls, pPager, bp+4)
+ if rc != 0 {
+ return rc
+ }
+ if *(*Pgno)(unsafe.Pointer(bp + 4)) == Pgno(0) {
+ rc = Xsqlite3OsDelete(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzWal, 0)
+ } else {
+ rc = Xsqlite3PagerOpenWal(tls, pPager, uintptr(0))
+ }
+ } else if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_WAL {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalMode = U8(PAGER_JOURNALMODE_DELETE)
+ }
+ }
+ }
+ return rc
+}
+
+func pagerPlaybackSavepoint(tls *libc.TLS, pPager uintptr, pSavepoint uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var szJ I64
+ var iHdrOff I64
+ var rc int32 = SQLITE_OK
+ var pDone uintptr = uintptr(0)
+
+ if pSavepoint != 0 {
+ pDone = Xsqlite3BitvecCreate(tls, (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FnOrig)
+ if !(pDone != 0) {
+ return SQLITE_NOMEM
+ }
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = func() uint32 {
+ if pSavepoint != 0 {
+ return (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FnOrig
+ }
+ return (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize
+ }()
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = (*Pager)(unsafe.Pointer(pPager)).FtempFile
+
+ if !(pSavepoint != 0) && (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ return pagerRollbackWal(tls, pPager)
+ }
+
+ szJ = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+
+ if pSavepoint != 0 && !((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) {
+ if (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FiHdrOffset != 0 {
+ iHdrOff = (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FiHdrOffset
+ } else {
+ iHdrOff = szJ
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FiOffset
+ for rc == SQLITE_OK && (*Pager)(unsafe.Pointer(pPager)).FjournalOff < iHdrOff {
+ rc = pager_playback_one_page(tls, pPager, pPager+96, pDone, 1, 1)
+ }
+
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ }
+
+ for rc == SQLITE_OK && (*Pager)(unsafe.Pointer(pPager)).FjournalOff < szJ {
+ var ii U32
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+
+ rc = readJournalHdr(tls, pPager, 0, szJ, bp, bp+4)
+
+ if *(*U32)(unsafe.Pointer(bp)) == U32(0) &&
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr+I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize) == (*Pager)(unsafe.Pointer(pPager)).FjournalOff {
+ *(*U32)(unsafe.Pointer(bp)) = U32((szJ - (*Pager)(unsafe.Pointer(pPager)).FjournalOff) / ((*Pager)(unsafe.Pointer(pPager)).FpageSize + int64(8)))
+ }
+ for ii = U32(0); rc == SQLITE_OK && ii < *(*U32)(unsafe.Pointer(bp)) && (*Pager)(unsafe.Pointer(pPager)).FjournalOff < szJ; ii++ {
+ rc = pager_playback_one_page(tls, pPager, pPager+96, pDone, 1, 1)
+ }
+
+ }
+
+ if pSavepoint != 0 {
+ var ii U32
+ *(*I64)(unsafe.Pointer(bp + 8)) = I64((*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FiSubRec) * (int64(4) + (*Pager)(unsafe.Pointer(pPager)).FpageSize)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ rc = Xsqlite3WalSavepointUndo(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, pSavepoint+36)
+ }
+ for ii = (*PagerSavepoint)(unsafe.Pointer(pSavepoint)).FiSubRec; rc == SQLITE_OK && ii < (*Pager)(unsafe.Pointer(pPager)).FnSubRec; ii++ {
+ rc = pager_playback_one_page(tls, pPager, bp+8, pDone, 0, 1)
+ }
+
+ }
+
+ Xsqlite3BitvecDestroy(tls, pDone)
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = szJ
+ }
+
+ return rc
+}
+
+// Change the maximum number of in-memory pages that are allowed
+// before attempting to recycle clean and unused pages.
+func Xsqlite3PagerSetCachesize(tls *libc.TLS, pPager uintptr, mxPage int32) {
+ Xsqlite3PcacheSetCachesize(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, mxPage)
+}
+
+// Change the maximum number of in-memory pages that are allowed
+// before attempting to spill pages to journal.
+func Xsqlite3PagerSetSpillsize(tls *libc.TLS, pPager uintptr, mxPage int32) int32 {
+ return Xsqlite3PcacheSetSpillsize(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, mxPage)
+}
+
+func pagerFixMaplimit(tls *libc.TLS, pPager uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var fd uintptr = (*Pager)(unsafe.Pointer(pPager)).Ffd
+ if (*Sqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= 3 {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = (*Pager)(unsafe.Pointer(pPager)).FszMmap
+ (*Pager)(unsafe.Pointer(pPager)).FbUseFetch = U8(libc.Bool32(*(*Sqlite3_int64)(unsafe.Pointer(bp)) > int64(0)))
+ setGetterMethod(tls, pPager)
+ Xsqlite3OsFileControlHint(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_MMAP_SIZE, bp)
+ }
+}
+
+// Change the maximum size of any memory mapping made of the database file.
+func Xsqlite3PagerSetMmapLimit(tls *libc.TLS, pPager uintptr, szMmap Sqlite3_int64) {
+ (*Pager)(unsafe.Pointer(pPager)).FszMmap = szMmap
+ pagerFixMaplimit(tls, pPager)
+}
+
+// Free as much memory as possible from the pager.
+func Xsqlite3PagerShrink(tls *libc.TLS, pPager uintptr) {
+ Xsqlite3PcacheShrink(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+}
+
+// Adjust settings of the pager to those specified in the pgFlags parameter.
+//
+// The "level" in pgFlags & PAGER_SYNCHRONOUS_MASK sets the robustness
+// of the database to damage due to OS crashes or power failures by
+// changing the number of syncs()s when writing the journals.
+// There are four levels:
+//
+// OFF sqlite3OsSync() is never called. This is the default
+// for temporary and transient files.
+//
+// NORMAL The journal is synced once before writes begin on the
+// database. This is normally adequate protection, but
+// it is theoretically possible, though very unlikely,
+// that an inopertune power failure could leave the journal
+// in a state which would cause damage to the database
+// when it is rolled back.
+//
+// FULL The journal is synced twice before writes begin on the
+// database (with some additional information - the nRec field
+// of the journal header - being written in between the two
+// syncs). If we assume that writing a
+// single disk sector is atomic, then this mode provides
+// assurance that the journal will not be corrupted to the
+// point of causing damage to the database during rollback.
+//
+// EXTRA This is like FULL except that is also syncs the directory
+// that contains the rollback journal after the rollback
+// journal is unlinked.
+//
+// The above is for a rollback-journal mode. For WAL mode, OFF continues
+// to mean that no syncs ever occur. NORMAL means that the WAL is synced
+// prior to the start of checkpoint and that the database file is synced
+// at the conclusion of the checkpoint if the entire content of the WAL
+// was written back into the database. But no sync operations occur for
+// an ordinary commit in NORMAL mode with WAL. FULL means that the WAL
+// file is synced following each commit operation, in addition to the
+// syncs associated with NORMAL. There is no difference between FULL
+// and EXTRA for WAL mode.
+//
+// Do not confuse synchronous=FULL with SQLITE_SYNC_FULL. The
+// SQLITE_SYNC_FULL macro means to use the MacOSX-style full-fsync
+// using fcntl(F_FULLFSYNC). SQLITE_SYNC_NORMAL means to do an
+// ordinary fsync() call. There is no difference between SQLITE_SYNC_FULL
+// and SQLITE_SYNC_NORMAL on platforms other than MacOSX. But the
+// synchronous=FULL versus synchronous=NORMAL setting determines when
+// the xSync primitive is called and is relevant to all platforms.
+//
+// Numeric values associated with these states are OFF==1, NORMAL=2,
+// and FULL=3.
+func Xsqlite3PagerSetFlags(tls *libc.TLS, pPager uintptr, pgFlags uint32) {
+ var level uint32 = pgFlags & uint32(PAGER_SYNCHRONOUS_MASK)
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FnoSync = U8(1)
+ (*Pager)(unsafe.Pointer(pPager)).FfullSync = U8(0)
+ (*Pager)(unsafe.Pointer(pPager)).FextraSync = U8(0)
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FnoSync = func() uint8 {
+ if level == uint32(PAGER_SYNCHRONOUS_OFF) {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*Pager)(unsafe.Pointer(pPager)).FfullSync = func() uint8 {
+ if level >= uint32(PAGER_SYNCHRONOUS_FULL) {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*Pager)(unsafe.Pointer(pPager)).FextraSync = func() uint8 {
+ if level == uint32(PAGER_SYNCHRONOUS_EXTRA) {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FnoSync != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FsyncFlags = U8(0)
+ } else if pgFlags&uint32(PAGER_FULLFSYNC) != 0 {
+ (*Pager)(unsafe.Pointer(pPager)).FsyncFlags = U8(SQLITE_SYNC_FULL)
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FsyncFlags = U8(SQLITE_SYNC_NORMAL)
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FwalSyncFlags = U8(int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags) << 2)
+ if (*Pager)(unsafe.Pointer(pPager)).FfullSync != 0 {
+ *(*U8)(unsafe.Pointer(pPager + 15)) |= U8(int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags))
+ }
+ if pgFlags&uint32(PAGER_CKPT_FULLFSYNC) != 0 && !(int32((*Pager)(unsafe.Pointer(pPager)).FnoSync) != 0) {
+ *(*U8)(unsafe.Pointer(pPager + 15)) |= U8(int32(SQLITE_SYNC_FULL) << 2)
+ }
+ if pgFlags&uint32(PAGER_CACHESPILL) != 0 {
+ *(*U8)(unsafe.Pointer(pPager + 25)) &= libc.Uint8FromInt32(libc.CplInt32(SPILLFLAG_OFF))
+ } else {
+ *(*U8)(unsafe.Pointer(pPager + 25)) |= U8(SPILLFLAG_OFF)
+ }
+}
+
+func pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32) int32 {
+ var rc int32
+
+ vfsFlags = vfsFlags | (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE)
+ rc = Xsqlite3OsOpen(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, uintptr(0), pFile, vfsFlags, uintptr(0))
+
+ return rc
+}
+
+// Set the busy handler function.
+//
+// The pager invokes the busy-handler if sqlite3OsLock() returns
+// SQLITE_BUSY when trying to upgrade from no-lock to a SHARED lock,
+// or when trying to upgrade from a RESERVED lock to an EXCLUSIVE
+// lock. It does *not* invoke the busy handler when upgrading from
+// SHARED to RESERVED, or when upgrading from SHARED to EXCLUSIVE
+// (which occurs during hot-journal rollback). Summary:
+//
+// Transition | Invokes xBusyHandler
+// --------------------------------------------------------
+// NO_LOCK -> SHARED_LOCK | Yes
+// SHARED_LOCK -> RESERVED_LOCK | No
+// SHARED_LOCK -> EXCLUSIVE_LOCK | No
+// RESERVED_LOCK -> EXCLUSIVE_LOCK | Yes
+//
+// If the busy-handler callback returns non-zero, the lock is
+// retried. If it returns zero, then the SQLITE_BUSY error is
+// returned to the caller of the pager API function.
+func Xsqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) {
+ var ap uintptr
+ (*Pager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler
+ (*Pager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg
+ ap = pPager + 232
+
+ Xsqlite3OsFileControlHint(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_BUSYHANDLER, ap)
+}
+
+// Change the page size used by the Pager object. The new page size
+// is passed in *pPageSize.
+//
+// If the pager is in the error state when this function is called, it
+// is a no-op. The value returned is the error state error code (i.e.
+// one of SQLITE_IOERR, an SQLITE_IOERR_xxx sub-code or SQLITE_FULL).
+//
+// Otherwise, if all of the following are true:
+//
+// - the new page size (value of *pPageSize) is valid (a power
+// of two between 512 and SQLITE_MAX_PAGE_SIZE, inclusive), and
+//
+// - there are no outstanding page references, and
+//
+// - the database is either not an in-memory database or it is
+// an in-memory database that currently consists of zero pages.
+//
+// then the pager object page size is set to *pPageSize.
+//
+// If the page size is changed, then this function uses sqlite3PagerMalloc()
+// to obtain a new Pager.pTmpSpace buffer. If this allocation attempt
+// fails, SQLITE_NOMEM is returned and the page size remains unchanged.
+// In all other cases, SQLITE_OK is returned.
+//
+// If the page size is not changed, either because one of the enumerated
+// conditions above is not true, the pager was in error state when this
+// function was called, or because the memory allocation attempt failed,
+// then *pPageSize is set to the old, retained page size before returning.
+func Xsqlite3PagerSetPagesize(tls *libc.TLS, pPager uintptr, pPageSize uintptr, nReserve int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ var pageSize U32 = *(*U32)(unsafe.Pointer(pPageSize))
+
+ if (int32((*Pager)(unsafe.Pointer(pPager)).FmemDb) == 0 || (*Pager)(unsafe.Pointer(pPager)).FdbSize == Pgno(0)) &&
+ Xsqlite3PcacheRefCount(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache) == 0 &&
+ pageSize != 0 && pageSize != U32((*Pager)(unsafe.Pointer(pPager)).FpageSize) {
+ var pNew uintptr = uintptr(0)
+ *(*I64)(unsafe.Pointer(bp)) = int64(0)
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) > PAGER_OPEN && (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
+ rc = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, bp)
+ }
+ if rc == SQLITE_OK {
+ pNew = Xsqlite3PageMalloc(tls, int32(pageSize+U32(8)))
+ if !(pNew != 0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pNew+uintptr(pageSize), 0, uint64(8), libc.X__builtin_object_size(tls, pNew+uintptr(pageSize), 0))
+ }
+ }
+
+ if rc == SQLITE_OK {
+ pager_reset(tls, pPager)
+ rc = Xsqlite3PcacheSetPageSize(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, int32(pageSize))
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3PageFree(tls, (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace)
+ (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace = pNew
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = Pgno((*(*I64)(unsafe.Pointer(bp)) + I64(pageSize) - int64(1)) / I64(pageSize))
+ (*Pager)(unsafe.Pointer(pPager)).FpageSize = I64(pageSize)
+ (*Pager)(unsafe.Pointer(pPager)).FlckPgno = U32(Xsqlite3PendingByte)/pageSize + Pgno(1)
+ } else {
+ Xsqlite3PageFree(tls, pNew)
+ }
+ }
+
+ *(*U32)(unsafe.Pointer(pPageSize)) = U32((*Pager)(unsafe.Pointer(pPager)).FpageSize)
+ if rc == SQLITE_OK {
+ if nReserve < 0 {
+ nReserve = int32((*Pager)(unsafe.Pointer(pPager)).FnReserve)
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FnReserve = I16(nReserve)
+ pagerFixMaplimit(tls, pPager)
+ }
+ return rc
+}
+
+// Return a pointer to the "temporary page" buffer held internally
+// by the pager. This is a buffer that is big enough to hold the
+// entire content of a database page. This buffer is used internally
+// during rollback and will be overwritten whenever a rollback
+// occurs. But other modules are free to use it too, as long as
+// no rollbacks are happening.
+func Xsqlite3PagerTempSpace(tls *libc.TLS, pPager uintptr) uintptr {
+ return (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+}
+
+// Attempt to set the maximum database page count if mxPage is positive.
+// Make no changes if mxPage is zero or negative. And never reduce the
+// maximum page count below the current size of the database.
+//
+// Regardless of mxPage, return the current maximum page count.
+func Xsqlite3PagerMaxPageCount(tls *libc.TLS, pPager uintptr, mxPage Pgno) Pgno {
+ if mxPage > Pgno(0) {
+ (*Pager)(unsafe.Pointer(pPager)).FmxPgno = mxPage
+ }
+
+ return (*Pager)(unsafe.Pointer(pPager)).FmxPgno
+}
+
+// Read the first N bytes from the beginning of the file into memory
+// that pDest points to.
+//
+// If the pager was opened on a transient file (zFilename==""), or
+// opened on a file less than N bytes in size, the output buffer is
+// zeroed and SQLITE_OK returned. The rationale for this is that this
+// function is used to read database headers, and a new transient or
+// zero sized database has a header than consists entirely of zeroes.
+//
+// If any IO error apart from SQLITE_IOERR_SHORT_READ is encountered,
+// the error code is returned to the caller and the contents of the
+// output buffer undefined.
+func Xsqlite3PagerReadFileheader(tls *libc.TLS, pPager uintptr, N int32, pDest uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ libc.X__builtin___memset_chk(tls, pDest, 0, uint64(N), libc.X__builtin_object_size(tls, pDest, 0))
+
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0) {
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, pDest, N, int64(0))
+ if rc == SQLITE_IOERR|int32(2)<<8 {
+ rc = SQLITE_OK
+ }
+ }
+ return rc
+}
+
+// This function may only be called when a read-transaction is open on
+// the pager. It returns the total number of pages in the database.
+//
+// However, if the file is between 1 and <page-size> bytes in size, then
+// this is considered a 1 page file.
+func Xsqlite3PagerPagecount(tls *libc.TLS, pPager uintptr, pnPage uintptr) {
+ *(*int32)(unsafe.Pointer(pnPage)) = int32((*Pager)(unsafe.Pointer(pPager)).FdbSize)
+}
+
+func pager_wait_on_lock(tls *libc.TLS, pPager uintptr, locktype int32) int32 {
+ var rc int32
+
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_BUSY && (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Pager)(unsafe.Pointer(pPager)).FxBusyHandler})).f(tls, (*Pager)(unsafe.Pointer(pPager)).FpBusyHandlerArg) != 0 {
+ rc = pagerLockDb(tls, pPager, locktype)
+ }
+ return rc
+}
+
+// Truncate the in-memory database file image to nPage pages. This
+// function does not actually modify the database file on disk. It
+// just sets the internal state of the pager object so that the
+// truncation will be done when the current transaction is committed.
+//
+// This function is only called right before committing a transaction.
+// Once this function has been called, the transaction must either be
+// rolled back or committed. It is not safe to call this function and
+// then continue writing to the database.
+func Xsqlite3PagerTruncateImage(tls *libc.TLS, pPager uintptr, nPage Pgno) {
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = nPage
+
+}
+
+func pagerSyncHotJournal(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FnoSync) != 0) {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, SQLITE_SYNC_NORMAL)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsFileSize(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, pPager+104)
+ }
+ return rc
+}
+
+func pagerAcquireMapPage(tls *libc.TLS, pPager uintptr, pgno Pgno, pData uintptr, ppPage uintptr) int32 {
+ var p uintptr
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist != 0 {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = libc.AssignUintptr(&p, (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist)
+ (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist = (*PgHdr)(unsafe.Pointer(p)).FpDirty
+ (*PgHdr)(unsafe.Pointer(p)).FpDirty = uintptr(0)
+
+ libc.X__builtin___memset_chk(tls, (*PgHdr)(unsafe.Pointer(p)).FpExtra, 0, uint64(8), libc.X__builtin_object_size(tls, (*PgHdr)(unsafe.Pointer(p)).FpExtra, 0))
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = libc.AssignUintptr(&p, Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(PgHdr{}))+uint64((*Pager)(unsafe.Pointer(pPager)).FnExtra)))
+ if p == uintptr(0) {
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, I64(pgno-Pgno(1))*(*Pager)(unsafe.Pointer(pPager)).FpageSize, pData)
+ return SQLITE_NOMEM
+ }
+ (*PgHdr)(unsafe.Pointer(p)).FpExtra = p + 1*72
+ (*PgHdr)(unsafe.Pointer(p)).Fflags = U16(PGHDR_MMAP)
+ (*PgHdr)(unsafe.Pointer(p)).FnRef = int16(1)
+ (*PgHdr)(unsafe.Pointer(p)).FpPager = pPager
+ }
+
+ (*PgHdr)(unsafe.Pointer(p)).Fpgno = pgno
+ (*PgHdr)(unsafe.Pointer(p)).FpData = pData
+ (*Pager)(unsafe.Pointer(pPager)).FnMmapOut++
+
+ return SQLITE_OK
+}
+
+func pagerReleaseMapPage(tls *libc.TLS, pPg uintptr) {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ (*Pager)(unsafe.Pointer(pPager)).FnMmapOut--
+ (*PgHdr)(unsafe.Pointer(pPg)).FpDirty = (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist
+ (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist = pPg
+
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, I64((*PgHdr)(unsafe.Pointer(pPg)).Fpgno-Pgno(1))*(*Pager)(unsafe.Pointer(pPager)).FpageSize, (*PgHdr)(unsafe.Pointer(pPg)).FpData)
+}
+
+func pagerFreeMapHdrs(tls *libc.TLS, pPager uintptr) {
+ var p uintptr
+ var pNext uintptr
+ for p = (*Pager)(unsafe.Pointer(pPager)).FpMmapFreelist; p != 0; p = pNext {
+ pNext = (*PgHdr)(unsafe.Pointer(p)).FpDirty
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func databaseIsUnmoved(tls *libc.TLS, pPager uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var rc int32
+
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ return SQLITE_OK
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FdbSize == Pgno(0) {
+ return SQLITE_OK
+ }
+
+ rc = Xsqlite3OsFileControl(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_HAS_MOVED, bp)
+ if rc == SQLITE_NOTFOUND {
+ rc = SQLITE_OK
+ } else if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = SQLITE_READONLY | int32(4)<<8
+ }
+ return rc
+}
+
+// Shutdown the page cache. Free all memory and close all files.
+//
+// If a transaction was in progress when this routine is called, that
+// transaction is rolled back. All outstanding pages are invalidated
+// and their memory is freed. Any attempt to use a page associated
+// with this page cache after this function returns will likely
+// result in a coredump.
+//
+// This function always succeeds. If a transaction is active an attempt
+// is made to roll it back. If an error occurs during the rollback
+// a hot journal may be left in the filesystem but no error is returned
+// to the caller.
+func Xsqlite3PagerClose(tls *libc.TLS, pPager uintptr, db uintptr) int32 {
+ var pTmp uintptr = (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace
+
+ Xsqlite3BeginBenignMalloc(tls)
+ pagerFreeMapHdrs(tls, pPager)
+
+ (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode = U8(0)
+ {
+ var a uintptr = uintptr(0)
+
+ if db != 0 && uint64(0) == (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NoCkptOnClose) &&
+ SQLITE_OK == databaseIsUnmoved(tls, pPager) {
+ a = pTmp
+ }
+ Xsqlite3WalClose(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, db, int32((*Pager)(unsafe.Pointer(pPager)).FwalSyncFlags), int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), a)
+ (*Pager)(unsafe.Pointer(pPager)).FpWal = uintptr(0)
+
+ }
+ pager_reset(tls, pPager)
+ if (*Pager)(unsafe.Pointer(pPager)).FmemDb != 0 {
+ pager_unlock(tls, pPager)
+ } else {
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
+ pager_error(tls, pPager, pagerSyncHotJournal(tls, pPager))
+ }
+ pagerUnlockAndRollback(tls, pPager)
+ }
+ Xsqlite3EndBenignMalloc(tls)
+
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd)
+ Xsqlite3PageFree(tls, pTmp)
+ Xsqlite3PcacheClose(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+
+ Xsqlite3_free(tls, pPager)
+ return SQLITE_OK
+}
+
+// Increment the reference count for page pPg.
+func Xsqlite3PagerRef(tls *libc.TLS, pPg uintptr) {
+ Xsqlite3PcacheRef(tls, pPg)
+}
+
+func syncJournal(tls *libc.TLS, pPager uintptr, newHdr int32) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var rc int32
+
+ rc = Xsqlite3PagerExclusiveLock(tls, pPager)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FnoSync) != 0) {
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) && int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) != PAGER_JOURNALMODE_MEMORY {
+ var iDc int32 = Xsqlite3OsDeviceCharacteristics(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd)
+
+ if 0 == iDc&SQLITE_IOCAP_SAFE_APPEND {
+ var iNextHdrOffset I64
+
+ libc.X__builtin___memcpy_chk(tls, bp, uintptr(unsafe.Pointer(&aJournalMagic)), uint64(unsafe.Sizeof(aJournalMagic)), libc.X__builtin_object_size(tls, bp, 0))
+ Xsqlite3Put4byte(tls, bp+8, uint32((*Pager)(unsafe.Pointer(pPager)).FnRec))
+
+ iNextHdrOffset = journalHdrOffset(tls, pPager)
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp+12, 8, iNextHdrOffset)
+ if rc == SQLITE_OK && 0 == libc.Xmemcmp(tls, bp+12, uintptr(unsafe.Pointer(&aJournalMagic)), uint64(8)) {
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&zerobyte)), 1, iNextHdrOffset)
+ }
+ if rc != SQLITE_OK && rc != SQLITE_IOERR|int32(2)<<8 {
+ return rc
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FfullSync != 0 && 0 == iDc&SQLITE_IOCAP_SEQUENTIAL {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+
+ rc = Xsqlite3OsWrite(tls,
+ (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp, int32(unsafe.Sizeof([12]U8{})), (*Pager)(unsafe.Pointer(pPager)).FjournalHdr)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ if 0 == iDc&SQLITE_IOCAP_SEQUENTIAL {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags)|func() int32 {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags) == SQLITE_SYNC_FULL {
+ return SQLITE_SYNC_DATAONLY
+ }
+ return 0
+ }())
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+ if newHdr != 0 && 0 == iDc&SQLITE_IOCAP_SAFE_APPEND {
+ (*Pager)(unsafe.Pointer(pPager)).FnRec = 0
+ rc = writeJournalHdr(tls, pPager)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+ }
+ }
+
+ Xsqlite3PcacheClearSyncFlags(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_WRITER_DBMOD)
+
+ return SQLITE_OK
+}
+
+var zerobyte U8 = U8(0)
+
+func pager_write_pagelist(tls *libc.TLS, pPager uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0)) {
+ rc = pagerOpentemp(tls, pPager, (*Pager)(unsafe.Pointer(pPager)).Ffd, int32((*Pager)(unsafe.Pointer(pPager)).FvfsFlags))
+ }
+
+ if rc == SQLITE_OK &&
+ (*Pager)(unsafe.Pointer(pPager)).FdbHintSize < (*Pager)(unsafe.Pointer(pPager)).FdbSize &&
+ ((*PgHdr)(unsafe.Pointer(pList)).FpDirty != 0 || (*PgHdr)(unsafe.Pointer(pList)).Fpgno > (*Pager)(unsafe.Pointer(pPager)).FdbHintSize) {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = (*Pager)(unsafe.Pointer(pPager)).FpageSize * Sqlite3_int64((*Pager)(unsafe.Pointer(pPager)).FdbSize)
+ Xsqlite3OsFileControlHint(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_SIZE_HINT, bp)
+ (*Pager)(unsafe.Pointer(pPager)).FdbHintSize = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ }
+
+ for rc == SQLITE_OK && pList != 0 {
+ var pgno Pgno = (*PgHdr)(unsafe.Pointer(pList)).Fpgno
+
+ if pgno <= (*Pager)(unsafe.Pointer(pPager)).FdbSize && 0 == int32((*PgHdr)(unsafe.Pointer(pList)).Fflags)&PGHDR_DONT_WRITE {
+ var offset I64 = I64(pgno-Pgno(1)) * (*Pager)(unsafe.Pointer(pPager)).FpageSize
+ var pData uintptr
+
+ if (*PgHdr)(unsafe.Pointer(pList)).Fpgno == Pgno(1) {
+ pager_write_changecounter(tls, pList)
+ }
+
+ pData = (*PgHdr)(unsafe.Pointer(pList)).FpData
+
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, pData, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), offset)
+
+ if pgno == Pgno(1) {
+ libc.X__builtin___memcpy_chk(tls, pPager+136, pData+24, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, pPager+136, 0))
+ }
+ if pgno > (*Pager)(unsafe.Pointer(pPager)).FdbFileSize {
+ (*Pager)(unsafe.Pointer(pPager)).FdbFileSize = pgno
+ }
+ *(*int32)(unsafe.Pointer(pPager + 248 + 2*4))++
+
+ Xsqlite3BackupUpdate(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup, pgno, (*PgHdr)(unsafe.Pointer(pList)).FpData)
+
+ } else {
+ }
+
+ pList = (*PgHdr)(unsafe.Pointer(pList)).FpDirty
+ }
+
+ return rc
+}
+
+func openSubJournal(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fsjfd)).FpMethods != uintptr(0)) {
+ var flags int32 = SQLITE_OPEN_SUBJOURNAL | SQLITE_OPEN_READWRITE |
+ SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE |
+ SQLITE_OPEN_DELETEONCLOSE
+ var nStmtSpill int32 = Xsqlite3Config.FnStmtSpill
+ if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_MEMORY || (*Pager)(unsafe.Pointer(pPager)).FsubjInMemory != 0 {
+ nStmtSpill = -1
+ }
+ rc = Xsqlite3JournalOpen(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, uintptr(0), (*Pager)(unsafe.Pointer(pPager)).Fsjfd, flags, nStmtSpill)
+ }
+ return rc
+}
+
+func subjournalPage(tls *libc.TLS, pPg uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) != PAGER_JOURNALMODE_OFF {
+ rc = openSubJournal(tls, pPager)
+
+ if rc == SQLITE_OK {
+ var pData uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpData
+ var offset I64 = I64((*Pager)(unsafe.Pointer(pPager)).FnSubRec) * (int64(4) + (*Pager)(unsafe.Pointer(pPager)).FpageSize)
+ var pData2 uintptr
+ pData2 = pData
+
+ rc = write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd, offset, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd, pData2, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), offset+int64(4))
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FnSubRec++
+
+ rc = addToSavepointBitvecs(tls, pPager, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno)
+ }
+ return rc
+}
+
+func subjournalPageIfRequired(tls *libc.TLS, pPg uintptr) int32 {
+ if subjRequiresPage(tls, pPg) != 0 {
+ return subjournalPage(tls, pPg)
+ } else {
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+func pagerStress(tls *libc.TLS, p uintptr, pPg uintptr) int32 {
+ var pPager uintptr = p
+ var rc int32 = SQLITE_OK
+
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ return SQLITE_OK
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FdoNotSpill != 0 &&
+ (int32((*Pager)(unsafe.Pointer(pPager)).FdoNotSpill)&(SPILLFLAG_ROLLBACK|SPILLFLAG_OFF) != 0 ||
+ int32((*PgHdr)(unsafe.Pointer(pPg)).Fflags)&PGHDR_NEED_SYNC != 0) {
+ return SQLITE_OK
+ }
+
+ *(*int32)(unsafe.Pointer(pPager + 248 + 3*4))++
+ (*PgHdr)(unsafe.Pointer(pPg)).FpDirty = uintptr(0)
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ rc = subjournalPageIfRequired(tls, pPg)
+ if rc == SQLITE_OK {
+ rc = pagerWalFrames(tls, pPager, pPg, uint32(0), 0)
+ }
+ } else {
+ if int32((*PgHdr)(unsafe.Pointer(pPg)).Fflags)&PGHDR_NEED_SYNC != 0 ||
+ int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_WRITER_CACHEMOD {
+ rc = syncJournal(tls, pPager, 1)
+ }
+
+ if rc == SQLITE_OK {
+ rc = pager_write_pagelist(tls, pPager, pPg)
+ }
+ }
+
+ if rc == SQLITE_OK {
+ Xsqlite3PcacheMakeClean(tls, pPg)
+ }
+
+ return pager_error(tls, pPager, rc)
+}
+
+// Flush all unreferenced dirty pages to disk.
+func Xsqlite3PagerFlush(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FmemDb) != 0) {
+ var pList uintptr = Xsqlite3PcacheDirtyList(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+
+ for rc == SQLITE_OK && pList != 0 {
+ var pNext uintptr = (*PgHdr)(unsafe.Pointer(pList)).FpDirty
+ if int32((*PgHdr)(unsafe.Pointer(pList)).FnRef) == 0 {
+ rc = pagerStress(tls, pPager, pList)
+ }
+ pList = pNext
+ }
+ }
+
+ return rc
+}
+
+// Allocate and initialize a new Pager object and put a pointer to it
+// in *ppPager. The pager should eventually be freed by passing it
+// to sqlite3PagerClose().
+//
+// The zFilename argument is the path to the database file to open.
+// If zFilename is NULL then a randomly-named temporary file is created
+// and used as the file to be cached. Temporary files are be deleted
+// automatically when they are closed. If zFilename is ":memory:" then
+// all information is held in cache. It is never written to disk.
+// This can be used to implement an in-memory database.
+//
+// The nExtra parameter specifies the number of bytes of space allocated
+// along with each page reference. This space is available to the user
+// via the sqlite3PagerGetExtra() API. When a new page is allocated, the
+// first 8 bytes of this space are zeroed but the remainder is uninitialized.
+// (The extra space is used by btree as the MemPage object.)
+//
+// The flags argument is used to specify properties that affect the
+// operation of the pager. It should be passed some bitwise combination
+// of the PAGER_* flags.
+//
+// The vfsFlags parameter is a bitmask to pass to the flags parameter
+// of the xOpen() method of the supplied VFS when opening files.
+//
+// If the pager object is allocated and the specified file opened
+// successfully, SQLITE_OK is returned and *ppPager set to point to
+// the new pager object. If an error occurs, *ppPager is set to NULL
+// and error code returned. This function may return SQLITE_NOMEM
+// (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or
+// various SQLITE_IO_XXX errors.
+func Xsqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pPtr uintptr
+ _ = pPtr
+
+ var rc int32
+ var tempFile int32
+ var memDb int32
+ var memJM int32
+ var readOnly int32
+ var journalFileSize int32
+ var zPathname uintptr
+ var nPathname int32
+ var useJournal int32
+ var pcacheSize int32
+
+ var zUri uintptr
+ var nUriByte int32
+ var z uintptr
+ var iDc int32
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = SQLITE_OK
+ tempFile = 0
+ memDb = 0
+ memJM = 0
+ readOnly = 0
+ zPathname = uintptr(0)
+ nPathname = 0
+ useJournal = libc.Bool32(flags&PAGER_OMIT_JOURNAL == 0)
+ pcacheSize = Xsqlite3PcacheSize(tls)
+ *(*U32)(unsafe.Pointer(bp + 12)) = U32(SQLITE_DEFAULT_PAGE_SIZE)
+ zUri = uintptr(0)
+ nUriByte = 1
+
+ journalFileSize = (Xsqlite3JournalSize(tls, pVfs) + 7) & libc.CplInt32(7)
+
+ *(*uintptr)(unsafe.Pointer(ppPager)) = uintptr(0)
+
+ if !(flags&PAGER_MEMORY != 0) {
+ goto __1
+ }
+ memDb = 1
+ if !(zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0) {
+ goto __2
+ }
+ zPathname = Xsqlite3DbStrDup(tls, uintptr(0), zFilename)
+ if !(zPathname == uintptr(0)) {
+ goto __3
+ }
+ return SQLITE_NOMEM
+__3:
+ ;
+ nPathname = Xsqlite3Strlen30(tls, zPathname)
+ zFilename = uintptr(0)
+__2:
+ ;
+__1:
+ ;
+ if !(zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0) {
+ goto __4
+ }
+ nPathname = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname + 1
+ zPathname = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(nPathname*2))
+ if !(zPathname == uintptr(0)) {
+ goto __5
+ }
+ return SQLITE_NOMEM
+__5:
+ ;
+ *(*int8)(unsafe.Pointer(zPathname)) = int8(0)
+ rc = Xsqlite3OsFullPathname(tls, pVfs, zFilename, nPathname, zPathname)
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ if !(rc == SQLITE_OK|int32(2)<<8) {
+ goto __7
+ }
+ if !(vfsFlags&SQLITE_OPEN_NOFOLLOW != 0) {
+ goto __8
+ }
+ rc = SQLITE_CANTOPEN | int32(6)<<8
+ goto __9
+__8:
+ rc = SQLITE_OK
+__9:
+ ;
+__7:
+ ;
+__6:
+ ;
+ nPathname = Xsqlite3Strlen30(tls, zPathname)
+ z = libc.AssignUintptr(&zUri, zFilename+uintptr(Xsqlite3Strlen30(tls, zFilename)+1))
+__10:
+ if !(*(*int8)(unsafe.Pointer(z)) != 0) {
+ goto __11
+ }
+ z += uintptr(libc.Xstrlen(tls, z) + uint64(1))
+ z += uintptr(libc.Xstrlen(tls, z) + uint64(1))
+ goto __10
+__11:
+ ;
+ nUriByte = int32((int64(z+1) - int64(zUri)) / 1)
+
+ if !(rc == SQLITE_OK && nPathname+8 > (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname) {
+ goto __12
+ }
+
+ rc = Xsqlite3CantopenError(tls, 60235)
+__12:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __13
+ }
+ Xsqlite3DbFree(tls, uintptr(0), zPathname)
+ return rc
+__13:
+ ;
+__4:
+ ;
+ pPtr = Xsqlite3MallocZero(tls,
+ (uint64(unsafe.Sizeof(Pager{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7))+uint64((pcacheSize+7)&libc.CplInt32(7))+uint64(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile+7)&libc.CplInt32(7))+uint64(journalFileSize*2)+uint64(unsafe.Sizeof(uintptr(0)))+uint64(4)+uint64(nPathname)+uint64(1)+uint64(nUriByte)+uint64(nPathname)+uint64(8)+uint64(1)+uint64(nPathname)+uint64(4)+uint64(1)+uint64(3))
+
+ if !!(pPtr != 0) {
+ goto __14
+ }
+ Xsqlite3DbFree(tls, uintptr(0), zPathname)
+ return SQLITE_NOMEM
+__14:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp)) = pPtr
+ pPtr += uintptr((uint64(unsafe.Sizeof(Pager{})) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpPCache = pPtr
+ pPtr += uintptr((pcacheSize + 7) & libc.CplInt32(7))
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Ffd = pPtr
+ pPtr += uintptr(((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile + 7) & libc.CplInt32(7))
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fsjfd = pPtr
+ pPtr += uintptr(journalFileSize)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fjfd = pPtr
+ pPtr += uintptr(journalFileSize)
+
+ libc.X__builtin___memcpy_chk(tls, pPtr, bp, uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += unsafe.Sizeof(uintptr(0))
+
+ pPtr += uintptr(4)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename = pPtr
+ if !(nPathname > 0) {
+ goto __15
+ }
+ libc.X__builtin___memcpy_chk(tls, pPtr, zPathname, uint64(nPathname), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(nPathname + 1)
+ if !(zUri != 0) {
+ goto __16
+ }
+ libc.X__builtin___memcpy_chk(tls, pPtr, zUri, uint64(nUriByte), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(nUriByte)
+ goto __17
+__16:
+ pPtr++
+__17:
+ ;
+__15:
+ ;
+ if !(nPathname > 0) {
+ goto __18
+ }
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = pPtr
+ libc.X__builtin___memcpy_chk(tls, pPtr, zPathname, uint64(nPathname), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(nPathname)
+ libc.X__builtin___memcpy_chk(tls, pPtr, ts+4324, uint64(8), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(8 + 1)
+ goto __19
+__18:
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = uintptr(0)
+__19:
+ ;
+ if !(nPathname > 0) {
+ goto __20
+ }
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = pPtr
+ libc.X__builtin___memcpy_chk(tls, pPtr, zPathname, uint64(nPathname), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(nPathname)
+ libc.X__builtin___memcpy_chk(tls, pPtr, ts+4333, uint64(4), libc.X__builtin_object_size(tls, pPtr, 0))
+ pPtr += uintptr(4 + 1)
+ goto __21
+__20:
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = uintptr(0)
+__21:
+ ;
+ _ = pPtr
+
+ if !(nPathname != 0) {
+ goto __22
+ }
+ Xsqlite3DbFree(tls, uintptr(0), zPathname)
+__22:
+ ;
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpVfs = pVfs
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FvfsFlags = U32(vfsFlags)
+
+ if !(zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0) {
+ goto __23
+ }
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ rc = Xsqlite3OsOpen(tls, pVfs, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Ffd, vfsFlags, bp+8)
+
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmemVfs = U8(libc.AssignInt32(&memJM, libc.Bool32(*(*int32)(unsafe.Pointer(bp + 8))&SQLITE_OPEN_MEMORY != 0)))
+ readOnly = libc.Bool32(*(*int32)(unsafe.Pointer(bp + 8))&SQLITE_OPEN_READONLY != 0)
+
+ if !(rc == SQLITE_OK) {
+ goto __25
+ }
+ iDc = Xsqlite3OsDeviceCharacteristics(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Ffd)
+ if !!(readOnly != 0) {
+ goto __26
+ }
+ setSectorSize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ if !(*(*U32)(unsafe.Pointer(bp + 12)) < (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FsectorSize) {
+ goto __27
+ }
+ if !((*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FsectorSize > U32(SQLITE_MAX_DEFAULT_PAGE_SIZE)) {
+ goto __28
+ }
+ *(*U32)(unsafe.Pointer(bp + 12)) = U32(SQLITE_MAX_DEFAULT_PAGE_SIZE)
+ goto __29
+__28:
+ *(*U32)(unsafe.Pointer(bp + 12)) = (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FsectorSize
+__29:
+ ;
+__27:
+ ;
+__26:
+ ;
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = U8(Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, ts+4338, 0))
+ if !(iDc&SQLITE_IOCAP_IMMUTABLE != 0 ||
+ Xsqlite3_uri_boolean(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, ts+4345, 0) != 0) {
+ goto __30
+ }
+ vfsFlags = vfsFlags | SQLITE_OPEN_READONLY
+ goto act_like_temp_file
+__30:
+ ;
+__25:
+ ;
+ goto __24
+__23:
+act_like_temp_file:
+ tempFile = 1
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FeState = U8(PAGER_READER)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FeLock = U8(EXCLUSIVE_LOCK)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = U8(1)
+ readOnly = vfsFlags & SQLITE_OPEN_READONLY
+__24:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __31
+ }
+
+ rc = Xsqlite3PagerSetPagesize(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+12, -1)
+
+__31:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __32
+ }
+ nExtra = (nExtra + 7) & libc.CplInt32(7)
+
+ rc = Xsqlite3PcacheOpen(tls, int32(*(*U32)(unsafe.Pointer(bp + 12))), nExtra, libc.BoolInt32(!(memDb != 0)),
+ func() uintptr {
+ if !(memDb != 0) {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{pagerStress}))
+ }
+ return uintptr(0)
+ }(), *(*uintptr)(unsafe.Pointer(bp)), (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpPCache)
+__32:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __33
+ }
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Ffd)
+ Xsqlite3PageFree(tls, (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpTmpSpace)
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+__33:
+ ;
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FuseJournal = U8(useJournal)
+
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmxPgno = Pgno(SQLITE_MAX_PAGE_COUNT)
+
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FtempFile = U8(tempFile)
+
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FexclusiveMode = U8(tempFile)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FchangeCountDone = (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FtempFile
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmemDb = U8(memDb)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FreadOnly = U8(readOnly)
+
+ Xsqlite3PagerSetFlags(tls, *(*uintptr)(unsafe.Pointer(bp)), uint32(SQLITE_DEFAULT_SYNCHRONOUS+1|PAGER_CACHESPILL))
+
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnExtra = U16(nExtra)
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FjournalSizeLimit = int64(-1)
+
+ setSectorSize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if !!(useJournal != 0) {
+ goto __34
+ }
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FjournalMode = U8(PAGER_JOURNALMODE_OFF)
+ goto __35
+__34:
+ if !(memDb != 0 || memJM != 0) {
+ goto __36
+ }
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FjournalMode = U8(PAGER_JOURNALMODE_MEMORY)
+__36:
+ ;
+__35:
+ ;
+ (*Pager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit
+ setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ *(*uintptr)(unsafe.Pointer(ppPager)) = *(*uintptr)(unsafe.Pointer(bp))
+ return SQLITE_OK
+}
+
+// Return the sqlite3_file for the main database given the name
+// of the corresonding WAL or Journal name as passed into
+// xOpen.
+func Xsqlite3_database_file_object(tls *libc.TLS, zName uintptr) uintptr {
+ var pPager uintptr
+ for int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-1)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-2)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-3)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-4)))) != 0 {
+ zName--
+ }
+ pPager = *(*uintptr)(unsafe.Pointer(zName - uintptr(4) - uintptr(uint64(unsafe.Sizeof(uintptr(0))))))
+ return (*Pager)(unsafe.Pointer(pPager)).Ffd
+}
+
+func hasHotJournal(tls *libc.TLS, pPager uintptr, pExists uintptr) int32 {
+ bp := tls.Alloc(17)
+ defer tls.Free(17)
+
+ var pVfs uintptr = (*Pager)(unsafe.Pointer(pPager)).FpVfs
+ var rc int32 = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp)) = 1
+ var jrnlOpen int32 = libc.BoolInt32(!!((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)))
+
+ *(*int32)(unsafe.Pointer(pExists)) = 0
+ if !(jrnlOpen != 0) {
+ rc = Xsqlite3OsAccess(tls, pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, SQLITE_ACCESS_EXISTS, bp)
+ }
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) != 0 {
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+
+ rc = Xsqlite3OsCheckReservedLock(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, bp+4)
+ if rc == SQLITE_OK && !(*(*int32)(unsafe.Pointer(bp + 4)) != 0) {
+ rc = pagerPagecount(tls, pPager, bp+8)
+ if rc == SQLITE_OK {
+ if *(*Pgno)(unsafe.Pointer(bp + 8)) == Pgno(0) && !(jrnlOpen != 0) {
+ Xsqlite3BeginBenignMalloc(tls)
+ if pagerLockDb(tls, pPager, RESERVED_LOCK) == SQLITE_OK {
+ Xsqlite3OsDelete(tls, pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, 0)
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) {
+ pagerUnlockDb(tls, pPager, SHARED_LOCK)
+ }
+ }
+ Xsqlite3EndBenignMalloc(tls)
+ } else {
+ if !(jrnlOpen != 0) {
+ *(*int32)(unsafe.Pointer(bp + 12)) = SQLITE_OPEN_READONLY | SQLITE_OPEN_MAIN_JOURNAL
+ rc = Xsqlite3OsOpen(tls, pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, (*Pager)(unsafe.Pointer(pPager)).Fjfd, *(*int32)(unsafe.Pointer(bp + 12)), bp+12)
+ }
+ if rc == SQLITE_OK {
+ *(*U8)(unsafe.Pointer(bp + 16)) = U8(0)
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, bp+16, 1, int64(0))
+ if rc == SQLITE_IOERR|int32(2)<<8 {
+ rc = SQLITE_OK
+ }
+ if !(jrnlOpen != 0) {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ }
+ *(*int32)(unsafe.Pointer(pExists)) = libc.Bool32(int32(*(*U8)(unsafe.Pointer(bp + 16))) != 0)
+ } else if rc == SQLITE_CANTOPEN {
+ *(*int32)(unsafe.Pointer(pExists)) = 1
+ rc = SQLITE_OK
+ }
+ }
+ }
+ }
+ }
+
+ return rc
+}
+
+// This function is called to obtain a shared lock on the database file.
+// It is illegal to call sqlite3PagerGet() until after this function
+// has been successfully called. If a shared-lock is already held when
+// this function is called, it is a no-op.
+//
+// The following operations are also performed by this function.
+//
+// 1. If the pager is currently in PAGER_OPEN state (no lock held
+// on the database file), then an attempt is made to obtain a
+// SHARED lock on the database file. Immediately after obtaining
+// the SHARED lock, the file-system is checked for a hot-journal,
+// which is played back if present. Following any hot-journal
+// rollback, the contents of the cache are validated by checking
+// the 'change-counter' field of the database file header and
+// discarded if they are found to be invalid.
+//
+// 2. If the pager is running in exclusive-mode, and there are currently
+// no outstanding references to any pages, and is in the error state,
+// then an attempt is made to clear the error state by discarding
+// the contents of the page cache and rolling back any open journal
+// file.
+//
+// If everything is successful, SQLITE_OK is returned. If an IO error
+// occurs while locking the database, checking for a hot-journal file or
+// rolling back a journal file, the IO error code is returned.
+func Xsqlite3PagerSharedLock(tls *libc.TLS, pPager uintptr) int32 {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var rc int32
+
+ var f int32
+ var pVfs uintptr
+
+ rc = SQLITE_OK
+
+ if !(!((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) && int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(bp)) = 1
+
+ rc = pager_wait_on_lock(tls, pPager, SHARED_LOCK)
+ if !(rc != SQLITE_OK) {
+ goto __2
+ }
+
+ goto failed
+__2:
+ ;
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FeLock) <= SHARED_LOCK) {
+ goto __3
+ }
+ rc = hasHotJournal(tls, pPager, bp)
+__3:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto failed
+__4:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) != 0) {
+ goto __5
+ }
+ if !((*Pager)(unsafe.Pointer(pPager)).FreadOnly != 0) {
+ goto __6
+ }
+ rc = SQLITE_READONLY | int32(3)<<8
+ goto failed
+__6:
+ ;
+ rc = pagerLockDb(tls, pPager, EXCLUSIVE_LOCK)
+ if !(rc != SQLITE_OK) {
+ goto __7
+ }
+ goto failed
+__7:
+ ;
+ if !(!((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)) && int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) != PAGER_JOURNALMODE_OFF) {
+ goto __8
+ }
+ pVfs = (*Pager)(unsafe.Pointer(pPager)).FpVfs
+ rc = Xsqlite3OsAccess(tls,
+ pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, SQLITE_ACCESS_EXISTS, bp+4)
+ if !(rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 4)) != 0) {
+ goto __9
+ }
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ f = SQLITE_OPEN_READWRITE | SQLITE_OPEN_MAIN_JOURNAL
+
+ rc = Xsqlite3OsOpen(tls, pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, (*Pager)(unsafe.Pointer(pPager)).Fjfd, f, bp+8)
+
+ if !(rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8))&SQLITE_OPEN_READONLY != 0) {
+ goto __10
+ }
+ rc = Xsqlite3CantopenError(tls, 60754)
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+__10:
+ ;
+__9:
+ ;
+__8:
+ ;
+ if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)) {
+ goto __11
+ }
+
+ rc = pagerSyncHotJournal(tls, pPager)
+ if !(rc == SQLITE_OK) {
+ goto __13
+ }
+ rc = pager_playback(tls, pPager, libc.BoolInt32(!((*Pager)(unsafe.Pointer(pPager)).FtempFile != 0)))
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_OPEN)
+__13:
+ ;
+ goto __12
+__11:
+ if !!(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) {
+ goto __14
+ }
+ pagerUnlockDb(tls, pPager, SHARED_LOCK)
+__14:
+ ;
+__12:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __15
+ }
+
+ pager_error(tls, pPager, rc)
+ goto failed
+__15:
+ ;
+__5:
+ ;
+ if !(!(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) != 0) && (*Pager)(unsafe.Pointer(pPager)).FhasHeldSharedLock != 0) {
+ goto __16
+ }
+
+ rc = Xsqlite3OsRead(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, bp+12, int32(unsafe.Sizeof([16]int8{})), int64(24))
+ if !(rc != SQLITE_OK) {
+ goto __17
+ }
+ if !(rc != SQLITE_IOERR|int32(2)<<8) {
+ goto __18
+ }
+ goto failed
+__18:
+ ;
+ libc.X__builtin___memset_chk(tls, bp+12, 0, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, bp+12, 0))
+__17:
+ ;
+ if !(libc.Xmemcmp(tls, pPager+136, bp+12, uint64(unsafe.Sizeof([16]int8{}))) != 0) {
+ goto __19
+ }
+ pager_reset(tls, pPager)
+
+ if !((*Pager)(unsafe.Pointer(pPager)).FbUseFetch != 0) {
+ goto __20
+ }
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, int64(0), uintptr(0))
+__20:
+ ;
+__19:
+ ;
+__16:
+ ;
+ rc = pagerOpenWalIfPresent(tls, pPager)
+
+__1:
+ ;
+ if !((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) {
+ goto __21
+ }
+
+ rc = pagerBeginReadTransaction(tls, pPager)
+__21:
+ ;
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) == 0 && int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN && rc == SQLITE_OK) {
+ goto __22
+ }
+ rc = pagerPagecount(tls, pPager, pPager+32)
+__22:
+ ;
+failed:
+ if !(rc != SQLITE_OK) {
+ goto __23
+ }
+
+ pager_unlock(tls, pPager)
+
+ goto __24
+__23:
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_READER)
+ (*Pager)(unsafe.Pointer(pPager)).FhasHeldSharedLock = U8(1)
+__24:
+ ;
+ return rc
+}
+
+func pagerUnlockIfUnused(tls *libc.TLS, pPager uintptr) {
+ if Xsqlite3PcacheRefCount(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache) == 0 {
+ pagerUnlockAndRollback(tls, pPager)
+ }
+}
+
+func getPageNormal(tls *libc.TLS, pPager uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var pPg uintptr
+ var noContent U8
+
+ rc = SQLITE_OK
+
+ if !(pgno == Pgno(0)) {
+ goto __1
+ }
+ return Xsqlite3CorruptError(tls, 60967)
+__1:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3PcacheFetch(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, pgno, 3)
+ if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) {
+ goto __2
+ }
+ pPg = uintptr(0)
+ rc = Xsqlite3PcacheFetchStress(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, pgno, bp)
+ if !(rc != SQLITE_OK) {
+ goto __3
+ }
+ goto pager_acquire_err
+__3:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) {
+ goto __4
+ }
+ rc = SQLITE_NOMEM
+ goto pager_acquire_err
+__4:
+ ;
+__2:
+ ;
+ pPg = libc.AssignPtrUintptr(ppPage, Xsqlite3PcacheFetchFinish(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, pgno, *(*uintptr)(unsafe.Pointer(bp))))
+
+ noContent = U8(libc.Bool32(flags&PAGER_GET_NOCONTENT != 0))
+ if !((*PgHdr)(unsafe.Pointer(pPg)).FpPager != 0 && !(noContent != 0)) {
+ goto __5
+ }
+
+ *(*int32)(unsafe.Pointer(pPager + 248))++
+ return SQLITE_OK
+
+ goto __6
+__5:
+ if !(pgno == (*Pager)(unsafe.Pointer(pPager)).FlckPgno) {
+ goto __7
+ }
+ rc = Xsqlite3CorruptError(tls, 60999)
+ goto pager_acquire_err
+__7:
+ ;
+ (*PgHdr)(unsafe.Pointer(pPg)).FpPager = pPager
+
+ if !(!((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods != uintptr(0)) || (*Pager)(unsafe.Pointer(pPager)).FdbSize < pgno || noContent != 0) {
+ goto __8
+ }
+ if !(pgno > (*Pager)(unsafe.Pointer(pPager)).FmxPgno) {
+ goto __10
+ }
+ rc = SQLITE_FULL
+ goto pager_acquire_err
+__10:
+ ;
+ if !(noContent != 0) {
+ goto __11
+ }
+
+ Xsqlite3BeginBenignMalloc(tls)
+ if !(pgno <= (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize) {
+ goto __12
+ }
+ Xsqlite3BitvecSet(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal, pgno)
+
+__12:
+ ;
+ addToSavepointBitvecs(tls, pPager, pgno)
+
+ Xsqlite3EndBenignMalloc(tls)
+__11:
+ ;
+ libc.X__builtin___memset_chk(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpData, 0, uint64((*Pager)(unsafe.Pointer(pPager)).FpageSize), libc.X__builtin_object_size(tls, (*PgHdr)(unsafe.Pointer(pPg)).FpData, 0))
+
+ goto __9
+__8:
+ ;
+ *(*int32)(unsafe.Pointer(pPager + 248 + 1*4))++
+ rc = readDbPage(tls, pPg)
+ if !(rc != SQLITE_OK) {
+ goto __13
+ }
+ goto pager_acquire_err
+__13:
+ ;
+__9:
+ ;
+__6:
+ ;
+ return SQLITE_OK
+
+pager_acquire_err:
+ ;
+ if !(pPg != 0) {
+ goto __14
+ }
+ Xsqlite3PcacheDrop(tls, pPg)
+__14:
+ ;
+ pagerUnlockIfUnused(tls, pPager)
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return rc
+}
+
+func getPageMMap(tls *libc.TLS, pPager uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32 = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+
+ var bMmapOk int32 = libc.Bool32(pgno > Pgno(1) &&
+ (int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_READER || flags&PAGER_GET_READONLY != 0))
+
+ if pgno <= Pgno(1) && pgno == Pgno(0) {
+ return Xsqlite3CorruptError(tls, 61078)
+ }
+
+ if bMmapOk != 0 && (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ rc = Xsqlite3WalFindFrame(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, pgno, bp)
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return rc
+ }
+ }
+ if bMmapOk != 0 && *(*U32)(unsafe.Pointer(bp)) == U32(0) {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ rc = Xsqlite3OsFetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd,
+ I64(pgno-Pgno(1))*(*Pager)(unsafe.Pointer(pPager)).FpageSize, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), bp+8)
+ if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) > PAGER_READER || (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = Xsqlite3PagerLookup(tls, pPager, pgno)
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) {
+ rc = pagerAcquireMapPage(tls, pPager, pgno, *(*uintptr)(unsafe.Pointer(bp + 8)), bp+16)
+ } else {
+ Xsqlite3OsUnfetch(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, I64(pgno-Pgno(1))*(*Pager)(unsafe.Pointer(pPager)).FpageSize, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = *(*uintptr)(unsafe.Pointer(bp + 16))
+ return SQLITE_OK
+ }
+ }
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return rc
+ }
+ }
+ return getPageNormal(tls, pPager, pgno, ppPage, flags)
+}
+
+func getPageError(tls *libc.TLS, pPager uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ _ = pgno
+ _ = flags
+
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+}
+
+// Dispatch all page fetch requests to the appropriate getter method.
+func Xsqlite3PagerGet(tls *libc.TLS, pPager uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ return (*struct {
+ f func(*libc.TLS, uintptr, Pgno, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Pager)(unsafe.Pointer(pPager)).FxGet})).f(tls, pPager, pgno, ppPage, flags)
+}
+
+// Acquire a page if it is already in the in-memory cache. Do
+// not read the page from disk. Return a pointer to the page,
+// or 0 if the page is not in cache.
+//
+// See also sqlite3PagerGet(). The difference between this routine
+// and sqlite3PagerGet() is that _get() will go to the disk and read
+// in the page if the page is not already in cache. This routine
+// returns NULL if the page is not in cache or if a disk I/O error
+// has ever happened.
+func Xsqlite3PagerLookup(tls *libc.TLS, pPager uintptr, pgno Pgno) uintptr {
+ var pPage uintptr
+
+ pPage = Xsqlite3PcacheFetch(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, pgno, 0)
+
+ if pPage == uintptr(0) {
+ return uintptr(0)
+ }
+ return Xsqlite3PcacheFetchFinish(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache, pgno, pPage)
+}
+
+// Release a page reference.
+//
+// The sqlite3PagerUnref() and sqlite3PagerUnrefNotNull() may only be
+// used if we know that the page being released is not the last page.
+// The btree layer always holds page1 open until the end, so these first
+// to routines can be used to release any page other than BtShared.pPage1.
+//
+// Use sqlite3PagerUnrefPageOne() to release page1. This latter routine
+// checks the total number of outstanding pages and if the number of
+// pages reaches zero it drops the database lock.
+func Xsqlite3PagerUnrefNotNull(tls *libc.TLS, pPg uintptr) {
+ if int32((*DbPage)(unsafe.Pointer(pPg)).Fflags)&PGHDR_MMAP != 0 {
+ pagerReleaseMapPage(tls, pPg)
+ } else {
+ Xsqlite3PcacheRelease(tls, pPg)
+ }
+
+}
+
+func Xsqlite3PagerUnref(tls *libc.TLS, pPg uintptr) {
+ if pPg != 0 {
+ Xsqlite3PagerUnrefNotNull(tls, pPg)
+ }
+}
+
+func Xsqlite3PagerUnrefPageOne(tls *libc.TLS, pPg uintptr) {
+ var pPager uintptr
+
+ pPager = (*DbPage)(unsafe.Pointer(pPg)).FpPager
+ Xsqlite3PcacheRelease(tls, pPg)
+ pagerUnlockIfUnused(tls, pPager)
+}
+
+func pager_open_journal(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pVfs uintptr = (*Pager)(unsafe.Pointer(pPager)).FpVfs
+
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ }
+
+ if !((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) && int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) != PAGER_JOURNALMODE_OFF {
+ (*Pager)(unsafe.Pointer(pPager)).FpInJournal = Xsqlite3BitvecCreate(tls, (*Pager)(unsafe.Pointer(pPager)).FdbSize)
+ if (*Pager)(unsafe.Pointer(pPager)).FpInJournal == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+
+ if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)) {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_MEMORY {
+ Xsqlite3MemJournalOpen(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ } else {
+ var flags int32 = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE
+ var nSpill int32
+
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ flags = flags | (SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_TEMP_JOURNAL)
+ flags = flags | SQLITE_OPEN_EXCLUSIVE
+ nSpill = Xsqlite3Config.FnStmtSpill
+ } else {
+ flags = flags | SQLITE_OPEN_MAIN_JOURNAL
+ nSpill = jrnlBufferSize(tls, pPager)
+ }
+
+ rc = databaseIsUnmoved(tls, pPager)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3JournalOpen(tls,
+ pVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, (*Pager)(unsafe.Pointer(pPager)).Fjfd, flags, nSpill)
+ }
+ }
+
+ }
+
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FnRec = 0
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ (*Pager)(unsafe.Pointer(pPager)).FsetSuper = U8(0)
+ (*Pager)(unsafe.Pointer(pPager)).FjournalHdr = int64(0)
+ rc = writeJournalHdr(tls, pPager)
+ }
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3BitvecDestroy(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal)
+ (*Pager)(unsafe.Pointer(pPager)).FpInJournal = uintptr(0)
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_WRITER_CACHEMOD)
+ }
+
+ return rc
+}
+
+// Begin a write-transaction on the specified pager object. If a
+// write-transaction has already been opened, this function is a no-op.
+//
+// If the exFlag argument is false, then acquire at least a RESERVED
+// lock on the database file. If exFlag is true, then acquire at least
+// an EXCLUSIVE lock. If such a lock is already held, no locking
+// functions need be called.
+//
+// If the subjInMemory argument is non-zero, then any sub-journal opened
+// within this transaction will be opened as an in-memory file. This
+// has no effect if the sub-journal is already opened (as it may be when
+// running in exclusive mode) or if the transaction does not require a
+// sub-journal. If the subjInMemory argument is zero, then any required
+// sub-journal is implemented in-memory if pPager is an in-memory database,
+// or using a temporary file otherwise.
+func Xsqlite3PagerBegin(tls *libc.TLS, pPager uintptr, exFlag int32, subjInMemory int32) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ }
+
+ (*Pager)(unsafe.Pointer(pPager)).FsubjInMemory = U8(subjInMemory)
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_READER {
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ if (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 && Xsqlite3WalExclusiveMode(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, -1) != 0 {
+ rc = pagerLockDb(tls, pPager, EXCLUSIVE_LOCK)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ Xsqlite3WalExclusiveMode(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, 1)
+ }
+
+ rc = Xsqlite3WalBeginWriteTransaction(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+ } else {
+ rc = pagerLockDb(tls, pPager, RESERVED_LOCK)
+ if rc == SQLITE_OK && exFlag != 0 {
+ rc = pager_wait_on_lock(tls, pPager, EXCLUSIVE_LOCK)
+ }
+ }
+
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_WRITER_LOCKED)
+ (*Pager)(unsafe.Pointer(pPager)).FdbHintSize = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ (*Pager)(unsafe.Pointer(pPager)).FdbFileSize = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ (*Pager)(unsafe.Pointer(pPager)).FjournalOff = int64(0)
+ }
+
+ }
+
+ return rc
+}
+
+func pagerAddPageToRollbackJournal(tls *libc.TLS, pPg uintptr) int32 {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ var rc int32
+ var cksum U32
+ var pData2 uintptr
+ var iOff I64 = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+
+ pData2 = (*PgHdr)(unsafe.Pointer(pPg)).FpData
+ cksum = pager_cksum(tls, pPager, pData2)
+
+ *(*U16)(unsafe.Pointer(pPg + 52)) |= U16(PGHDR_NEED_SYNC)
+
+ rc = write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iOff, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, pData2, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), iOff+int64(4))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ rc = write32bits(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd, iOff+(*Pager)(unsafe.Pointer(pPager)).FpageSize+int64(4), cksum)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ *(*I64)(unsafe.Pointer(pPager + 96)) += int64(8) + (*Pager)(unsafe.Pointer(pPager)).FpageSize
+ (*Pager)(unsafe.Pointer(pPager)).FnRec++
+
+ rc = Xsqlite3BitvecSet(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno)
+
+ rc = rc | addToSavepointBitvecs(tls, pPager, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno)
+
+ return rc
+}
+
+func pager_write(tls *libc.TLS, pPg uintptr) int32 {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ var rc int32 = SQLITE_OK
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_WRITER_LOCKED {
+ rc = pager_open_journal(tls, pPager)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+
+ Xsqlite3PcacheMakeDirty(tls, pPg)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpInJournal != uintptr(0) &&
+ Xsqlite3BitvecTestNotNull(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal, (*PgHdr)(unsafe.Pointer(pPg)).Fpgno) == 0 {
+ if (*PgHdr)(unsafe.Pointer(pPg)).Fpgno <= (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize {
+ rc = pagerAddPageToRollbackJournal(tls, pPg)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ } else {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) != PAGER_WRITER_DBMOD {
+ *(*U16)(unsafe.Pointer(pPg + 52)) |= U16(PGHDR_NEED_SYNC)
+ }
+
+ }
+ }
+
+ *(*U16)(unsafe.Pointer(pPg + 52)) |= U16(PGHDR_WRITEABLE)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FnSavepoint > 0 {
+ rc = subjournalPageIfRequired(tls, pPg)
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FdbSize < (*PgHdr)(unsafe.Pointer(pPg)).Fpgno {
+ (*Pager)(unsafe.Pointer(pPager)).FdbSize = (*PgHdr)(unsafe.Pointer(pPg)).Fpgno
+ }
+ return rc
+}
+
+func pagerWriteLargeSector(tls *libc.TLS, pPg uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var nPageCount Pgno
+ var pg1 Pgno
+ var nPage int32 = 0
+ var ii int32
+ var needSync int32 = 0
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ var nPagePerSector Pgno = Pgno(I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize) / (*Pager)(unsafe.Pointer(pPager)).FpageSize)
+
+ *(*U8)(unsafe.Pointer(pPager + 25)) |= U8(SPILLFLAG_NOSYNC)
+
+ pg1 = ((*PgHdr)(unsafe.Pointer(pPg)).Fpgno-Pgno(1)) & ^(nPagePerSector-Pgno(1)) + Pgno(1)
+
+ nPageCount = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ if (*PgHdr)(unsafe.Pointer(pPg)).Fpgno > nPageCount {
+ nPage = int32((*PgHdr)(unsafe.Pointer(pPg)).Fpgno - pg1 + Pgno(1))
+ } else if pg1+nPagePerSector-Pgno(1) > nPageCount {
+ nPage = int32(nPageCount + Pgno(1) - pg1)
+ } else {
+ nPage = int32(nPagePerSector)
+ }
+
+ for ii = 0; ii < nPage && rc == SQLITE_OK; ii++ {
+ var pg Pgno = pg1 + Pgno(ii)
+
+ if pg == (*PgHdr)(unsafe.Pointer(pPg)).Fpgno || !(Xsqlite3BitvecTest(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal, pg) != 0) {
+ if pg != (*Pager)(unsafe.Pointer(pPager)).FlckPgno {
+ rc = Xsqlite3PagerGet(tls, pPager, pg, bp, 0)
+ if rc == SQLITE_OK {
+ rc = pager_write(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if int32((*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fflags)&PGHDR_NEED_SYNC != 0 {
+ needSync = 1
+ }
+ Xsqlite3PagerUnrefNotNull(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ } else if libc.AssignPtrUintptr(bp, Xsqlite3PagerLookup(tls, pPager, pg)) != uintptr(0) {
+ if int32((*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fflags)&PGHDR_NEED_SYNC != 0 {
+ needSync = 1
+ }
+ Xsqlite3PagerUnrefNotNull(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+
+ if rc == SQLITE_OK && needSync != 0 {
+ for ii = 0; ii < nPage; ii++ {
+ var pPage uintptr = Xsqlite3PagerLookup(tls, pPager, pg1+Pgno(ii))
+ if pPage != 0 {
+ *(*U16)(unsafe.Pointer(pPage + 52)) |= U16(PGHDR_NEED_SYNC)
+ Xsqlite3PagerUnrefNotNull(tls, pPage)
+ }
+ }
+ }
+
+ *(*U8)(unsafe.Pointer(pPager + 25)) &= libc.Uint8FromInt32(libc.CplInt32(SPILLFLAG_NOSYNC))
+ return rc
+}
+
+// Mark a data page as writeable. This routine must be called before
+// making changes to a page. The caller must check the return value
+// of this function and be careful not to change any page data unless
+// this routine returns SQLITE_OK.
+//
+// The difference between this function and pager_write() is that this
+// function also deals with the special case where 2 or more pages
+// fit on a single disk sector. In this case all co-resident pages
+// must have been written to the journal file before returning.
+//
+// If an error occurs, SQLITE_NOMEM or an IO error code is returned
+// as appropriate. Otherwise, SQLITE_OK.
+func Xsqlite3PagerWrite(tls *libc.TLS, pPg uintptr) int32 {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+
+ if int32((*PgHdr)(unsafe.Pointer(pPg)).Fflags)&PGHDR_WRITEABLE != 0 && (*Pager)(unsafe.Pointer(pPager)).FdbSize >= (*PgHdr)(unsafe.Pointer(pPg)).Fpgno {
+ if (*Pager)(unsafe.Pointer(pPager)).FnSavepoint != 0 {
+ return subjournalPageIfRequired(tls, pPg)
+ }
+ return SQLITE_OK
+ } else if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ } else if (*Pager)(unsafe.Pointer(pPager)).FsectorSize > U32((*Pager)(unsafe.Pointer(pPager)).FpageSize) {
+ return pagerWriteLargeSector(tls, pPg)
+ } else {
+ return pager_write(tls, pPg)
+ }
+ return int32(0)
+}
+
+// A call to this routine tells the pager that it is not necessary to
+// write the information on page pPg back to the disk, even though
+// that page might be marked as dirty. This happens, for example, when
+// the page has been added as a leaf of the freelist and so its
+// content no longer matters.
+//
+// The overlying software layer calls this routine when all of the data
+// on the given page is unused. The pager marks the page as clean so
+// that it does not get written to disk.
+//
+// Tests show that this optimization can quadruple the speed of large
+// DELETE operations.
+//
+// This optimization cannot be used with a temp-file, as the page may
+// have been dirty at the start of the transaction. In that case, if
+// memory pressure forces page pPg out of the cache, the data does need
+// to be written out to disk so that it may be read back in if the
+// current transaction is rolled back.
+func Xsqlite3PagerDontWrite(tls *libc.TLS, pPg uintptr) {
+ var pPager uintptr = (*PgHdr)(unsafe.Pointer(pPg)).FpPager
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) != 0) && int32((*PgHdr)(unsafe.Pointer(pPg)).Fflags)&PGHDR_DIRTY != 0 && (*Pager)(unsafe.Pointer(pPager)).FnSavepoint == 0 {
+ *(*U16)(unsafe.Pointer(pPg + 52)) |= U16(PGHDR_DONT_WRITE)
+ *(*U16)(unsafe.Pointer(pPg + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_WRITEABLE))
+
+ }
+}
+
+func pager_incr_changecounter(tls *libc.TLS, pPager uintptr, isDirectMode int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ _ = isDirectMode
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FchangeCountDone) != 0) && (*Pager)(unsafe.Pointer(pPager)).FdbSize > Pgno(0) {
+ rc = Xsqlite3PagerGet(tls, pPager, uint32(1), bp, 0)
+
+ if !(0 != 0) && rc == SQLITE_OK {
+ rc = Xsqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ if rc == SQLITE_OK {
+ pager_write_changecounter(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ if 0 != 0 {
+ var zBuf uintptr
+
+ zBuf = (*PgHdr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpData
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsWrite(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, zBuf, int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), int64(0))
+ *(*int32)(unsafe.Pointer(pPager + 248 + 2*4))++
+ }
+ if rc == SQLITE_OK {
+ var pCopy uintptr = zBuf + 24
+ libc.X__builtin___memcpy_chk(tls, pPager+136, pCopy, uint64(unsafe.Sizeof([16]int8{})), libc.X__builtin_object_size(tls, pPager+136, 0))
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = U8(1)
+ }
+ } else {
+ (*Pager)(unsafe.Pointer(pPager)).FchangeCountDone = U8(1)
+ }
+ }
+
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return rc
+}
+
+// Sync the database file to disk. This is a no-op for in-memory databases
+// or pages with the Pager.noSync flag set.
+//
+// If successful, or if called on a pager for which it is a no-op, this
+// function returns SQLITE_OK. Otherwise, an IO error code is returned.
+func Xsqlite3PagerSync(tls *libc.TLS, pPager uintptr, zSuper uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pArg uintptr = zSuper
+ rc = Xsqlite3OsFileControl(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, SQLITE_FCNTL_SYNC, pArg)
+ if rc == SQLITE_NOTFOUND {
+ rc = SQLITE_OK
+ }
+ if rc == SQLITE_OK && !(int32((*Pager)(unsafe.Pointer(pPager)).FnoSync) != 0) {
+ rc = Xsqlite3OsSync(tls, (*Pager)(unsafe.Pointer(pPager)).Ffd, int32((*Pager)(unsafe.Pointer(pPager)).FsyncFlags))
+ }
+ return rc
+}
+
+// This function may only be called while a write-transaction is active in
+// rollback. If the connection is in WAL mode, this call is a no-op.
+// Otherwise, if the connection does not already have an EXCLUSIVE lock on
+// the database file, an attempt is made to obtain one.
+//
+// If the EXCLUSIVE lock is already held or the attempt to obtain it is
+// successful, or the connection is in WAL mode, SQLITE_OK is returned.
+// Otherwise, either SQLITE_BUSY or an SQLITE_IOERR_XXX error code is
+// returned.
+func Xsqlite3PagerExclusiveLock(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = (*Pager)(unsafe.Pointer(pPager)).FerrCode
+
+ if rc == SQLITE_OK {
+ if 0 == libc.Bool32((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) {
+ rc = pager_wait_on_lock(tls, pPager, EXCLUSIVE_LOCK)
+ }
+ }
+ return rc
+}
+
+// Sync the database file for the pager pPager. zSuper points to the name
+// of a super-journal file that should be written into the individual
+// journal file. zSuper may be NULL, which is interpreted as no
+// super-journal (a single database transaction).
+//
+// This routine ensures that:
+//
+// - The database file change-counter is updated,
+// - the journal is synced (unless the atomic-write optimization is used),
+// - all dirty pages are written to the database file,
+// - the database file is truncated (if required), and
+// - the database file synced.
+//
+// The only thing that remains to commit the transaction is to finalize
+// (delete, truncate or zero the first part of) the journal file (or
+// delete the super-journal file if specified).
+//
+// Note that if zSuper==NULL, this does not overwrite a previous value
+// passed to an sqlite3PagerCommitPhaseOne() call.
+//
+// If the final parameter - noSync - is true, then the database file itself
+// is not synced. The caller must call sqlite3PagerSync() directly to
+// sync the database file before calling CommitPhaseTwo() to delete the
+// journal file in this case.
+func Xsqlite3PagerCommitPhaseOne(tls *libc.TLS, pPager uintptr, zSuper uintptr, noSync int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ var nNew Pgno
+ var pList uintptr
+ rc = SQLITE_OK
+
+ if !((*Pager)(unsafe.Pointer(pPager)).FerrCode != 0) {
+ goto __1
+ }
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+__1:
+ ;
+ if !(Xsqlite3FaultSim(tls, 400) != 0) {
+ goto __2
+ }
+ return SQLITE_IOERR
+__2:
+ ;
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FeState) < PAGER_WRITER_CACHEMOD) {
+ goto __3
+ }
+ return SQLITE_OK
+__3:
+ ;
+ if !(0 == pagerFlushOnCommit(tls, pPager, 1)) {
+ goto __4
+ }
+
+ Xsqlite3BackupRestart(tls, (*Pager)(unsafe.Pointer(pPager)).FpBackup)
+ goto __5
+__4:
+ if !((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0)) {
+ goto __6
+ }
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ pList = Xsqlite3PcacheDirtyList(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+ if !(pList == uintptr(0)) {
+ goto __8
+ }
+
+ rc = Xsqlite3PagerGet(tls, pPager, uint32(1), bp, 0)
+ pList = *(*uintptr)(unsafe.Pointer(bp))
+ (*PgHdr)(unsafe.Pointer(pList)).FpDirty = uintptr(0)
+__8:
+ ;
+ if !(pList != 0) {
+ goto __9
+ }
+ rc = pagerWalFrames(tls, pPager, pList, (*Pager)(unsafe.Pointer(pPager)).FdbSize, 1)
+__9:
+ ;
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if !(rc == SQLITE_OK) {
+ goto __10
+ }
+ Xsqlite3PcacheCleanAll(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+__10:
+ ;
+ goto __7
+__6:
+ rc = pager_incr_changecounter(tls, pPager, 0)
+ if !(rc != SQLITE_OK) {
+ goto __11
+ }
+ goto commit_phase_one_exit
+__11:
+ ;
+ rc = writeSuperJournal(tls, pPager, zSuper)
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ goto commit_phase_one_exit
+__12:
+ ;
+ rc = syncJournal(tls, pPager, 0)
+ if !(rc != SQLITE_OK) {
+ goto __13
+ }
+ goto commit_phase_one_exit
+__13:
+ ;
+ pList = Xsqlite3PcacheDirtyList(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+
+ if !(BBatch == 0) {
+ goto __14
+ }
+ rc = pager_write_pagelist(tls, pPager, pList)
+__14:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __15
+ }
+
+ goto commit_phase_one_exit
+__15:
+ ;
+ Xsqlite3PcacheCleanAll(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)
+
+ if !((*Pager)(unsafe.Pointer(pPager)).FdbSize > (*Pager)(unsafe.Pointer(pPager)).FdbFileSize) {
+ goto __16
+ }
+ nNew = (*Pager)(unsafe.Pointer(pPager)).FdbSize - Pgno(libc.Bool32((*Pager)(unsafe.Pointer(pPager)).FdbSize == (*Pager)(unsafe.Pointer(pPager)).FlckPgno))
+
+ rc = pager_truncate(tls, pPager, nNew)
+ if !(rc != SQLITE_OK) {
+ goto __17
+ }
+ goto commit_phase_one_exit
+__17:
+ ;
+__16:
+ ;
+ if !!(noSync != 0) {
+ goto __18
+ }
+ rc = Xsqlite3PagerSync(tls, pPager, zSuper)
+__18:
+ ;
+__7:
+ ;
+__5:
+ ;
+commit_phase_one_exit:
+ if !(rc == SQLITE_OK && !((*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0))) {
+ goto __19
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_WRITER_FINISHED)
+__19:
+ ;
+ return rc
+}
+
+// When this function is called, the database file has been completely
+// updated to reflect the changes made by the current transaction and
+// synced to disk. The journal file still exists in the file-system
+// though, and if a failure occurs at this point it will eventually
+// be used as a hot-journal and the current transaction rolled back.
+//
+// This function finalizes the journal file, either by deleting,
+// truncating or partially zeroing it, so that it cannot be used
+// for hot-journal rollback. Once this is done the transaction is
+// irrevocably committed.
+//
+// If an error occurs, an IO error code is returned and the pager
+// moves into the error state. Otherwise, SQLITE_OK is returned.
+func Xsqlite3PagerCommitPhaseTwo(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Pager)(unsafe.Pointer(pPager)).FerrCode != 0 {
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FiDataVersion++
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_WRITER_LOCKED &&
+ (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 &&
+ int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_PERSIST {
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_READER)
+ return SQLITE_OK
+ }
+
+ rc = pager_end_transaction(tls, pPager, int32((*Pager)(unsafe.Pointer(pPager)).FsetSuper), 1)
+ return pager_error(tls, pPager, rc)
+}
+
+// If a write transaction is open, then all changes made within the
+// transaction are reverted and the current write-transaction is closed.
+// The pager falls back to PAGER_READER state if successful, or PAGER_ERROR
+// state if an error occurs.
+//
+// If the pager is already in PAGER_ERROR state when this function is called,
+// it returns Pager.errCode immediately. No work is performed in this case.
+//
+// Otherwise, in rollback mode, this function performs two functions:
+//
+// 1. It rolls back the journal file, restoring all database file and
+// in-memory cache pages to the state they were in when the transaction
+// was opened, and
+//
+// 2. It finalizes the journal file, so that it is not used for hot
+// rollback at any point in the future.
+//
+// Finalization of the journal file (task 2) is only performed if the
+// rollback is successful.
+//
+// In WAL mode, all cache-entries containing data modified within the
+// current transaction are either expelled from the cache or reverted to
+// their pre-transaction state by re-reading data from the database or
+// WAL files. The WAL transaction is then closed.
+func Xsqlite3PagerRollback(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_ERROR {
+ return (*Pager)(unsafe.Pointer(pPager)).FerrCode
+ }
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) <= PAGER_READER {
+ return SQLITE_OK
+ }
+
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ var rc2 int32
+ rc = Xsqlite3PagerSavepoint(tls, pPager, SAVEPOINT_ROLLBACK, -1)
+ rc2 = pager_end_transaction(tls, pPager, int32((*Pager)(unsafe.Pointer(pPager)).FsetSuper), 0)
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ } else if !((*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0)) || int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_WRITER_LOCKED {
+ var eState int32 = int32((*Pager)(unsafe.Pointer(pPager)).FeState)
+ rc = pager_end_transaction(tls, pPager, 0, 0)
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FmemDb) != 0) && eState > PAGER_WRITER_LOCKED {
+ (*Pager)(unsafe.Pointer(pPager)).FerrCode = SQLITE_ABORT
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_ERROR)
+ setGetterMethod(tls, pPager)
+ return rc
+ }
+ } else {
+ rc = pager_playback(tls, pPager, 0)
+ }
+
+ return pager_error(tls, pPager, rc)
+}
+
+// Return TRUE if the database file is opened read-only. Return FALSE
+// if the database is (in theory) writable.
+func Xsqlite3PagerIsreadonly(tls *libc.TLS, pPager uintptr) U8 {
+ return (*Pager)(unsafe.Pointer(pPager)).FreadOnly
+}
+
+// Return the approximate number of bytes of memory currently
+// used by the pager and its associated cache.
+func Xsqlite3PagerMemUsed(tls *libc.TLS, pPager uintptr) int32 {
+ var perPageSize int32 = int32((*Pager)(unsafe.Pointer(pPager)).FpageSize + I64((*Pager)(unsafe.Pointer(pPager)).FnExtra) +
+ I64(int32(uint64(unsafe.Sizeof(PgHdr{}))+uint64(5)*uint64(unsafe.Sizeof(uintptr(0))))))
+ return int32(I64(perPageSize*Xsqlite3PcachePagecount(tls, (*Pager)(unsafe.Pointer(pPager)).FpPCache)+
+ Xsqlite3MallocSize(tls, pPager)) +
+ (*Pager)(unsafe.Pointer(pPager)).FpageSize)
+}
+
+// Return the number of references to the specified page.
+func Xsqlite3PagerPageRefcount(tls *libc.TLS, pPage uintptr) int32 {
+ return Xsqlite3PcachePageRefcount(tls, pPage)
+}
+
+// Parameter eStat must be one of SQLITE_DBSTATUS_CACHE_HIT, _MISS, _WRITE,
+// or _WRITE+1. The SQLITE_DBSTATUS_CACHE_WRITE+1 case is a translation
+// of SQLITE_DBSTATUS_CACHE_SPILL. The _SPILL case is not contiguous because
+// it was added later.
+//
+// Before returning, *pnVal is incremented by the
+// current cache hit or miss count, according to the value of eStat. If the
+// reset parameter is non-zero, the cache hit or miss count is zeroed before
+// returning.
+func Xsqlite3PagerCacheStat(tls *libc.TLS, pPager uintptr, eStat int32, reset int32, pnVal uintptr) {
+ eStat = eStat - SQLITE_DBSTATUS_CACHE_HIT
+ *(*int32)(unsafe.Pointer(pnVal)) += *(*int32)(unsafe.Pointer(pPager + 248 + uintptr(eStat)*4))
+ if reset != 0 {
+ *(*int32)(unsafe.Pointer(pPager + 248 + uintptr(eStat)*4)) = 0
+ }
+}
+
+// Return true if this is an in-memory or temp-file backed pager.
+func Xsqlite3PagerIsMemdb(tls *libc.TLS, pPager uintptr) int32 {
+ return libc.Bool32((*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 || (*Pager)(unsafe.Pointer(pPager)).FmemVfs != 0)
+}
+
+func pagerOpenSavepoint(tls *libc.TLS, pPager uintptr, nSavepoint int32) int32 {
+ var rc int32 = SQLITE_OK
+ var nCurrent int32 = (*Pager)(unsafe.Pointer(pPager)).FnSavepoint
+ var ii int32
+ var aNew uintptr
+
+ aNew = Xsqlite3Realloc(tls,
+ (*Pager)(unsafe.Pointer(pPager)).FaSavepoint, uint64(unsafe.Sizeof(PagerSavepoint{}))*uint64(nSavepoint))
+ if !(aNew != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, aNew+uintptr(nCurrent)*56, 0, uint64(nSavepoint-nCurrent)*uint64(unsafe.Sizeof(PagerSavepoint{})), libc.X__builtin_object_size(tls, aNew+uintptr(nCurrent)*56, 0))
+ (*Pager)(unsafe.Pointer(pPager)).FaSavepoint = aNew
+
+ for ii = nCurrent; ii < nSavepoint; ii++ {
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FnOrig = (*Pager)(unsafe.Pointer(pPager)).FdbSize
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) && (*Pager)(unsafe.Pointer(pPager)).FjournalOff > int64(0) {
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FiOffset = (*Pager)(unsafe.Pointer(pPager)).FjournalOff
+ } else {
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FiOffset = I64((*Pager)(unsafe.Pointer(pPager)).FsectorSize)
+ }
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FiSubRec = (*Pager)(unsafe.Pointer(pPager)).FnSubRec
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FpInSavepoint = Xsqlite3BitvecCreate(tls, (*Pager)(unsafe.Pointer(pPager)).FdbSize)
+ (*PagerSavepoint)(unsafe.Pointer(aNew + uintptr(ii)*56)).FbTruncateOnRelease = 1
+ if !(int32((*PagerSavepoint)(unsafe.Pointer(aNew+uintptr(ii)*56)).FpInSavepoint) != 0) {
+ return SQLITE_NOMEM
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) {
+ Xsqlite3WalSavepoint(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, aNew+uintptr(ii)*56+36)
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FnSavepoint = ii + 1
+ }
+
+ return rc
+}
+
+func Xsqlite3PagerOpenSavepoint(tls *libc.TLS, pPager uintptr, nSavepoint int32) int32 {
+ if nSavepoint > (*Pager)(unsafe.Pointer(pPager)).FnSavepoint && (*Pager)(unsafe.Pointer(pPager)).FuseJournal != 0 {
+ return pagerOpenSavepoint(tls, pPager, nSavepoint)
+ } else {
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+// This function is called to rollback or release (commit) a savepoint.
+// The savepoint to release or rollback need not be the most recently
+// created savepoint.
+//
+// Parameter op is always either SAVEPOINT_ROLLBACK or SAVEPOINT_RELEASE.
+// If it is SAVEPOINT_RELEASE, then release and destroy the savepoint with
+// index iSavepoint. If it is SAVEPOINT_ROLLBACK, then rollback all changes
+// that have occurred since the specified savepoint was created.
+//
+// The savepoint to rollback or release is identified by parameter
+// iSavepoint. A value of 0 means to operate on the outermost savepoint
+// (the first created). A value of (Pager.nSavepoint-1) means operate
+// on the most recently created savepoint. If iSavepoint is greater than
+// (Pager.nSavepoint-1), then this function is a no-op.
+//
+// If a negative value is passed to this function, then the current
+// transaction is rolled back. This is different to calling
+// sqlite3PagerRollback() because this function does not terminate
+// the transaction or unlock the database, it just restores the
+// contents of the database to its original state.
+//
+// In any case, all savepoints with an index greater than iSavepoint
+// are destroyed. If this is a release operation (op==SAVEPOINT_RELEASE),
+// then savepoint iSavepoint is also destroyed.
+//
+// This function may return SQLITE_NOMEM if a memory allocation fails,
+// or an IO error code if an IO error occurs while rolling back a
+// savepoint. If no errors occur, SQLITE_OK is returned.
+func Xsqlite3PagerSavepoint(tls *libc.TLS, pPager uintptr, op int32, iSavepoint int32) int32 {
+ var rc int32 = (*Pager)(unsafe.Pointer(pPager)).FerrCode
+
+ if rc == SQLITE_OK && iSavepoint < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint {
+ var ii int32
+ var nNew int32
+
+ nNew = iSavepoint + func() int32 {
+ if op == SAVEPOINT_RELEASE {
+ return 0
+ }
+ return 1
+ }()
+ for ii = nNew; ii < (*Pager)(unsafe.Pointer(pPager)).FnSavepoint; ii++ {
+ Xsqlite3BitvecDestroy(tls, (*PagerSavepoint)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).FaSavepoint+uintptr(ii)*56)).FpInSavepoint)
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FnSavepoint = nNew
+
+ if op == SAVEPOINT_RELEASE {
+ var pRel uintptr = (*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(nNew)*56
+ if (*PagerSavepoint)(unsafe.Pointer(pRel)).FbTruncateOnRelease != 0 && (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fsjfd)).FpMethods != uintptr(0) {
+ if Xsqlite3JournalIsInMemory(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd) != 0 {
+ var sz I64 = ((*Pager)(unsafe.Pointer(pPager)).FpageSize + int64(4)) * I64((*PagerSavepoint)(unsafe.Pointer(pRel)).FiSubRec)
+ rc = Xsqlite3OsTruncate(tls, (*Pager)(unsafe.Pointer(pPager)).Fsjfd, sz)
+
+ }
+ (*Pager)(unsafe.Pointer(pPager)).FnSubRec = (*PagerSavepoint)(unsafe.Pointer(pRel)).FiSubRec
+ }
+ } else if (*Pager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) || (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) {
+ var pSavepoint uintptr
+ if nNew == 0 {
+ pSavepoint = uintptr(0)
+ } else {
+ pSavepoint = (*Pager)(unsafe.Pointer(pPager)).FaSavepoint + uintptr(nNew-1)*56
+ }
+ rc = pagerPlaybackSavepoint(tls, pPager, pSavepoint)
+
+ }
+
+ }
+
+ return rc
+}
+
+// Return the full pathname of the database file.
+//
+// Except, if the pager is in-memory only, then return an empty string if
+// nullIfMemDb is true. This routine is called with nullIfMemDb==1 when
+// used to report the filename to the user, for compatibility with legacy
+// behavior. But when the Btree needs to know the filename for matching to
+// shared cache, it uses nullIfMemDb==0 so that in-memory databases can
+// participate in shared-cache.
+//
+// The return value to this routine is always safe to use with
+// sqlite3_uri_parameter() and sqlite3_filename_database() and friends.
+func Xsqlite3PagerFilename(tls *libc.TLS, pPager uintptr, nullIfMemDb int32) uintptr {
+ if nullIfMemDb != 0 && ((*Pager)(unsafe.Pointer(pPager)).FmemDb != 0 || Xsqlite3IsMemdb(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs) != 0) {
+ return uintptr(unsafe.Pointer(&zFake)) + 4
+ } else {
+ return (*Pager)(unsafe.Pointer(pPager)).FzFilename
+ }
+ return uintptr(0)
+}
+
+var zFake = [8]int8{int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}
+
+// Return the VFS structure for the pager.
+func Xsqlite3PagerVfs(tls *libc.TLS, pPager uintptr) uintptr {
+ return (*Pager)(unsafe.Pointer(pPager)).FpVfs
+}
+
+// Return the file handle for the database file associated
+// with the pager. This might return NULL if the file has
+// not yet been opened.
+func Xsqlite3PagerFile(tls *libc.TLS, pPager uintptr) uintptr {
+ return (*Pager)(unsafe.Pointer(pPager)).Ffd
+}
+
+// Return the file handle for the journal file (if it exists).
+// This will be either the rollback journal or the WAL file.
+func Xsqlite3PagerJrnlFile(tls *libc.TLS, pPager uintptr) uintptr {
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ return Xsqlite3WalFile(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+ }
+ return (*Pager)(unsafe.Pointer(pPager)).Fjfd
+}
+
+// Return the full pathname of the journal file.
+func Xsqlite3PagerJournalname(tls *libc.TLS, pPager uintptr) uintptr {
+ return (*Pager)(unsafe.Pointer(pPager)).FzJournal
+}
+
+// Move the page pPg to location pgno in the file.
+//
+// There must be no references to the page previously located at
+// pgno (which we call pPgOld) though that page is allowed to be
+// in cache. If the page previously located at pgno is not already
+// in the rollback journal, it is not put there by by this routine.
+//
+// References to the page pPg remain valid. Updating any
+// meta-data associated with pPg (i.e. data stored in the nExtra bytes
+// allocated along with the page) is the responsibility of the caller.
+//
+// A transaction must be active when this routine is called. It used to be
+// required that a statement transaction was not active, but this restriction
+// has been removed (CREATE INDEX needs to move a page when a statement
+// transaction is active).
+//
+// If the fourth argument, isCommit, is non-zero, then this page is being
+// moved as part of a database reorganization just before the transaction
+// is being committed. In this case, it is guaranteed that the database page
+// pPg refers to will not be written to again within this transaction.
+//
+// This function may return SQLITE_NOMEM or an IO error code if an error
+// occurs. Otherwise, it returns SQLITE_OK.
+func Xsqlite3PagerMovepage(tls *libc.TLS, pPager uintptr, pPg uintptr, pgno Pgno, isCommit int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pPgOld uintptr
+ var needSyncPgno Pgno = Pgno(0)
+ var rc int32
+ var origPgno Pgno
+
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ rc = Xsqlite3PagerWrite(tls, pPg)
+ if rc != 0 {
+ return rc
+ }
+ }
+
+ if int32((*DbPage)(unsafe.Pointer(pPg)).Fflags)&PGHDR_DIRTY != 0 &&
+ SQLITE_OK != libc.AssignInt32(&rc, subjournalPageIfRequired(tls, pPg)) {
+ return rc
+ }
+
+ if int32((*DbPage)(unsafe.Pointer(pPg)).Fflags)&PGHDR_NEED_SYNC != 0 && !(isCommit != 0) {
+ needSyncPgno = (*DbPage)(unsafe.Pointer(pPg)).Fpgno
+
+ }
+
+ *(*U16)(unsafe.Pointer(pPg + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_NEED_SYNC))
+ pPgOld = Xsqlite3PagerLookup(tls, pPager, pgno)
+
+ if pPgOld != 0 {
+ if int32((*PgHdr)(unsafe.Pointer(pPgOld)).FnRef) > 1 {
+ Xsqlite3PagerUnrefNotNull(tls, pPgOld)
+ return Xsqlite3CorruptError(tls, 62623)
+ }
+ *(*U16)(unsafe.Pointer(pPg + 52)) |= U16(int32((*PgHdr)(unsafe.Pointer(pPgOld)).Fflags) & PGHDR_NEED_SYNC)
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 {
+ Xsqlite3PcacheMove(tls, pPgOld, (*Pager)(unsafe.Pointer(pPager)).FdbSize+Pgno(1))
+ } else {
+ Xsqlite3PcacheDrop(tls, pPgOld)
+ }
+ }
+
+ origPgno = (*DbPage)(unsafe.Pointer(pPg)).Fpgno
+ Xsqlite3PcacheMove(tls, pPg, pgno)
+ Xsqlite3PcacheMakeDirty(tls, pPg)
+
+ if (*Pager)(unsafe.Pointer(pPager)).FtempFile != 0 && pPgOld != 0 {
+ Xsqlite3PcacheMove(tls, pPgOld, origPgno)
+ Xsqlite3PagerUnrefNotNull(tls, pPgOld)
+ }
+
+ if needSyncPgno != 0 {
+ rc = Xsqlite3PagerGet(tls, pPager, needSyncPgno, bp, 0)
+ if rc != SQLITE_OK {
+ if needSyncPgno <= (*Pager)(unsafe.Pointer(pPager)).FdbOrigSize {
+ Xsqlite3BitvecClear(tls, (*Pager)(unsafe.Pointer(pPager)).FpInJournal, needSyncPgno, (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace)
+ }
+ return rc
+ }
+ *(*U16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 52)) |= U16(PGHDR_NEED_SYNC)
+ Xsqlite3PcacheMakeDirty(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3PagerUnrefNotNull(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return SQLITE_OK
+}
+
+// The page handle passed as the first argument refers to a dirty page
+// with a page number other than iNew. This function changes the page's
+// page number to iNew and sets the value of the PgHdr.flags field to
+// the value passed as the third parameter.
+func Xsqlite3PagerRekey(tls *libc.TLS, pPg uintptr, iNew Pgno, flags U16) {
+ (*DbPage)(unsafe.Pointer(pPg)).Fflags = flags
+ Xsqlite3PcacheMove(tls, pPg, iNew)
+}
+
+// Return a pointer to the data for the specified page.
+func Xsqlite3PagerGetData(tls *libc.TLS, pPg uintptr) uintptr {
+ return (*DbPage)(unsafe.Pointer(pPg)).FpData
+}
+
+// Return a pointer to the Pager.nExtra bytes of "extra" space
+// allocated along with the specified page.
+func Xsqlite3PagerGetExtra(tls *libc.TLS, pPg uintptr) uintptr {
+ return (*DbPage)(unsafe.Pointer(pPg)).FpExtra
+}
+
+// Get/set the locking-mode for this pager. Parameter eMode must be one
+// of PAGER_LOCKINGMODE_QUERY, PAGER_LOCKINGMODE_NORMAL or
+// PAGER_LOCKINGMODE_EXCLUSIVE. If the parameter is not _QUERY, then
+// the locking-mode is set to the value specified.
+//
+// The returned value is either PAGER_LOCKINGMODE_NORMAL or
+// PAGER_LOCKINGMODE_EXCLUSIVE, indicating the current (possibly updated)
+// locking-mode.
+func Xsqlite3PagerLockingMode(tls *libc.TLS, pPager uintptr, eMode int32) int32 {
+ if eMode >= 0 && !(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) != 0) && !(Xsqlite3WalHeapMemory(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal) != 0) {
+ (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode = U8(eMode)
+ }
+ return int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode)
+}
+
+// Set the journal-mode for this pager. Parameter eMode must be one of:
+//
+// PAGER_JOURNALMODE_DELETE
+// PAGER_JOURNALMODE_TRUNCATE
+// PAGER_JOURNALMODE_PERSIST
+// PAGER_JOURNALMODE_OFF
+// PAGER_JOURNALMODE_MEMORY
+// PAGER_JOURNALMODE_WAL
+//
+// The journalmode is set to the value specified if the change is allowed.
+// The change may be disallowed for the following reasons:
+//
+// - An in-memory database can only have its journal_mode set to _OFF
+// or _MEMORY.
+//
+// - Temporary databases cannot have _WAL journalmode.
+//
+// The returned indicate the current (possibly updated) journal-mode.
+func Xsqlite3PagerSetJournalMode(tls *libc.TLS, pPager uintptr, eMode int32) int32 {
+ var eOld U8 = (*Pager)(unsafe.Pointer(pPager)).FjournalMode
+
+ if (*Pager)(unsafe.Pointer(pPager)).FmemDb != 0 {
+ if eMode != PAGER_JOURNALMODE_MEMORY && eMode != PAGER_JOURNALMODE_OFF {
+ eMode = int32(eOld)
+ }
+ }
+
+ if eMode != int32(eOld) {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalMode = U8(eMode)
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) && int32(eOld)&5 == 1 && eMode&1 == 0 {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeLock) >= RESERVED_LOCK {
+ Xsqlite3OsDelete(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, 0)
+ } else {
+ var rc int32 = SQLITE_OK
+ var state int32 = int32((*Pager)(unsafe.Pointer(pPager)).FeState)
+
+ if state == PAGER_OPEN {
+ rc = Xsqlite3PagerSharedLock(tls, pPager)
+ }
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) == PAGER_READER {
+ rc = pagerLockDb(tls, pPager, RESERVED_LOCK)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3OsDelete(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzJournal, 0)
+ }
+ if rc == SQLITE_OK && state == PAGER_READER {
+ pagerUnlockDb(tls, pPager, SHARED_LOCK)
+ } else if state == PAGER_OPEN {
+ pager_unlock(tls, pPager)
+ }
+
+ }
+ } else if eMode == PAGER_JOURNALMODE_OFF {
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+ }
+ }
+
+ return int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode)
+}
+
+// Return the current journal mode.
+func Xsqlite3PagerGetJournalMode(tls *libc.TLS, pPager uintptr) int32 {
+ return int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode)
+}
+
+// Return TRUE if the pager is in a state where it is OK to change the
+// journalmode. Journalmode changes can only happen when the database
+// is unmodified.
+func Xsqlite3PagerOkToChangeJournalMode(tls *libc.TLS, pPager uintptr) int32 {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FeState) >= PAGER_WRITER_CACHEMOD {
+ return 0
+ }
+ if (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Fjfd)).FpMethods != uintptr(0) && (*Pager)(unsafe.Pointer(pPager)).FjournalOff > int64(0) {
+ return 0
+ }
+ return 1
+}
+
+// Get/set the size-limit used for persistent journal files.
+//
+// Setting the size limit to -1 means no limit is enforced.
+// An attempt to set a limit smaller than -1 is a no-op.
+func Xsqlite3PagerJournalSizeLimit(tls *libc.TLS, pPager uintptr, iLimit I64) I64 {
+ if iLimit >= int64(-1) {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalSizeLimit = iLimit
+ Xsqlite3WalLimit(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, iLimit)
+ }
+ return (*Pager)(unsafe.Pointer(pPager)).FjournalSizeLimit
+}
+
+// Return a pointer to the pPager->pBackup variable. The backup module
+// in backup.c maintains the content of this variable. This module
+// uses it opaquely as an argument to sqlite3BackupRestart() and
+// sqlite3BackupUpdate() only.
+func Xsqlite3PagerBackupPtr(tls *libc.TLS, pPager uintptr) uintptr {
+ return pPager + 112
+}
+
+// Unless this is an in-memory or temporary database, clear the pager cache.
+func Xsqlite3PagerClearCache(tls *libc.TLS, pPager uintptr) {
+ if int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) == 0 {
+ pager_reset(tls, pPager)
+ }
+}
+
+// This function is called when the user invokes "PRAGMA wal_checkpoint",
+// "PRAGMA wal_blocking_checkpoint" or calls the sqlite3_wal_checkpoint()
+// or wal_blocking_checkpoint() API functions.
+//
+// Parameter eMode is one of SQLITE_CHECKPOINT_PASSIVE, FULL or RESTART.
+func Xsqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode int32, pnLog uintptr, pnCkpt uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal == uintptr(0) && int32((*Pager)(unsafe.Pointer(pPager)).FjournalMode) == PAGER_JOURNALMODE_WAL {
+ Xsqlite3_exec(tls, db, ts+4355, uintptr(0), uintptr(0), uintptr(0))
+ }
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ rc = Xsqlite3WalCheckpoint(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, db, eMode,
+ func() uintptr {
+ if eMode == SQLITE_CHECKPOINT_PASSIVE {
+ return uintptr(0)
+ }
+ return (*Pager)(unsafe.Pointer(pPager)).FxBusyHandler
+ }(),
+ (*Pager)(unsafe.Pointer(pPager)).FpBusyHandlerArg,
+ int32((*Pager)(unsafe.Pointer(pPager)).FwalSyncFlags), int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace,
+ pnLog, pnCkpt)
+ }
+ return rc
+}
+
+func Xsqlite3PagerWalCallback(tls *libc.TLS, pPager uintptr) int32 {
+ return Xsqlite3WalCallback(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+}
+
+// Return true if the underlying VFS for the given pager supports the
+// primitives necessary for write-ahead logging.
+func Xsqlite3PagerWalSupported(tls *libc.TLS, pPager uintptr) int32 {
+ var pMethods uintptr = (*Sqlite3_file)(unsafe.Pointer((*Pager)(unsafe.Pointer(pPager)).Ffd)).FpMethods
+ if (*Pager)(unsafe.Pointer(pPager)).FnoLock != 0 {
+ return 0
+ }
+ return libc.Bool32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 || (*Sqlite3_io_methods)(unsafe.Pointer(pMethods)).FiVersion >= 2 && (*Sqlite3_io_methods)(unsafe.Pointer(pMethods)).FxShmMap != 0)
+}
+
+func pagerExclusiveLock(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32
+
+ rc = pagerLockDb(tls, pPager, EXCLUSIVE_LOCK)
+ if rc != SQLITE_OK {
+ pagerUnlockDb(tls, pPager, SHARED_LOCK)
+ }
+
+ return rc
+}
+
+func pagerOpenWal(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Pager)(unsafe.Pointer(pPager)).FexclusiveMode != 0 {
+ rc = pagerExclusiveLock(tls, pPager)
+ }
+
+ if rc == SQLITE_OK {
+ rc = Xsqlite3WalOpen(tls, (*Pager)(unsafe.Pointer(pPager)).FpVfs,
+ (*Pager)(unsafe.Pointer(pPager)).Ffd, (*Pager)(unsafe.Pointer(pPager)).FzWal, int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode),
+ (*Pager)(unsafe.Pointer(pPager)).FjournalSizeLimit, pPager+296)
+ }
+ pagerFixMaplimit(tls, pPager)
+
+ return rc
+}
+
+// The caller must be holding a SHARED lock on the database file to call
+// this function.
+//
+// If the pager passed as the first argument is open on a real database
+// file (not a temp file or an in-memory database), and the WAL file
+// is not already open, make an attempt to open it now. If successful,
+// return SQLITE_OK. If an error occurs or the VFS used by the pager does
+// not support the xShmXXX() methods, return an error code. *pbOpen is
+// not modified in either case.
+//
+// If the pager is open on a temp-file (or in-memory database), or if
+// the WAL file is already open, set *pbOpen to 1 and return SQLITE_OK
+// without doing anything.
+func Xsqlite3PagerOpenWal(tls *libc.TLS, pPager uintptr, pbOpen uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FtempFile) != 0) && !(int32((*Pager)(unsafe.Pointer(pPager)).FpWal) != 0) {
+ if !(Xsqlite3PagerWalSupported(tls, pPager) != 0) {
+ return SQLITE_CANTOPEN
+ }
+
+ Xsqlite3OsClose(tls, (*Pager)(unsafe.Pointer(pPager)).Fjfd)
+
+ rc = pagerOpenWal(tls, pPager)
+ if rc == SQLITE_OK {
+ (*Pager)(unsafe.Pointer(pPager)).FjournalMode = U8(PAGER_JOURNALMODE_WAL)
+ (*Pager)(unsafe.Pointer(pPager)).FeState = U8(PAGER_OPEN)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(pbOpen)) = 1
+ }
+
+ return rc
+}
+
+// This function is called to close the connection to the log file prior
+// to switching from WAL to rollback mode.
+//
+// Before closing the log file, this function attempts to take an
+// EXCLUSIVE lock on the database file. If this cannot be obtained, an
+// error (SQLITE_BUSY) is returned and the log connection is not closed.
+// If successful, the EXCLUSIVE lock is not released before returning.
+func Xsqlite3PagerCloseWal(tls *libc.TLS, pPager uintptr, db uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+
+ if !(int32((*Pager)(unsafe.Pointer(pPager)).FpWal) != 0) {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ rc = pagerLockDb(tls, pPager, SHARED_LOCK)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsAccess(tls,
+ (*Pager)(unsafe.Pointer(pPager)).FpVfs, (*Pager)(unsafe.Pointer(pPager)).FzWal, SQLITE_ACCESS_EXISTS, bp)
+ }
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = pagerOpenWal(tls, pPager)
+ }
+ }
+
+ if rc == SQLITE_OK && (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ rc = pagerExclusiveLock(tls, pPager)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3WalClose(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, db, int32((*Pager)(unsafe.Pointer(pPager)).FwalSyncFlags),
+ int32((*Pager)(unsafe.Pointer(pPager)).FpageSize), (*Pager)(unsafe.Pointer(pPager)).FpTmpSpace)
+ (*Pager)(unsafe.Pointer(pPager)).FpWal = uintptr(0)
+ pagerFixMaplimit(tls, pPager)
+ if rc != 0 && !(int32((*Pager)(unsafe.Pointer(pPager)).FexclusiveMode) != 0) {
+ pagerUnlockDb(tls, pPager, SHARED_LOCK)
+ }
+ }
+ }
+ return rc
+}
+
+// If this is a WAL database, obtain a snapshot handle for the snapshot
+// currently open. Otherwise, return an error.
+func Xsqlite3PagerSnapshotGet(tls *libc.TLS, pPager uintptr, ppSnapshot uintptr) int32 {
+ var rc int32 = SQLITE_ERROR
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ rc = Xsqlite3WalSnapshotGet(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, ppSnapshot)
+ }
+ return rc
+}
+
+// If this is a WAL database, store a pointer to pSnapshot. Next time a
+// read transaction is opened, attempt to read from the snapshot it
+// identifies. If this is not a WAL database, return an error.
+func Xsqlite3PagerSnapshotOpen(tls *libc.TLS, pPager uintptr, pSnapshot uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ Xsqlite3WalSnapshotOpen(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, pSnapshot)
+ } else {
+ rc = SQLITE_ERROR
+ }
+ return rc
+}
+
+// If this is a WAL database, call sqlite3WalSnapshotRecover(). If this
+// is not a WAL database, return an error.
+func Xsqlite3PagerSnapshotRecover(tls *libc.TLS, pPager uintptr) int32 {
+ var rc int32
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ rc = Xsqlite3WalSnapshotRecover(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+ } else {
+ rc = SQLITE_ERROR
+ }
+ return rc
+}
+
+// The caller currently has a read transaction open on the database.
+// If this is not a WAL database, SQLITE_ERROR is returned. Otherwise,
+// this function takes a SHARED lock on the CHECKPOINTER slot and then
+// checks if the snapshot passed as the second argument is still
+// available. If so, SQLITE_OK is returned.
+//
+// If the snapshot is not available, SQLITE_ERROR is returned. Or, if
+// the CHECKPOINTER lock cannot be obtained, SQLITE_BUSY. If any error
+// occurs (any value other than SQLITE_OK is returned), the CHECKPOINTER
+// lock is released before returning.
+func Xsqlite3PagerSnapshotCheck(tls *libc.TLS, pPager uintptr, pSnapshot uintptr) int32 {
+ var rc int32
+ if (*Pager)(unsafe.Pointer(pPager)).FpWal != 0 {
+ rc = Xsqlite3WalSnapshotCheck(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal, pSnapshot)
+ } else {
+ rc = SQLITE_ERROR
+ }
+ return rc
+}
+
+// Release a lock obtained by an earlier successful call to
+// sqlite3PagerSnapshotCheck().
+func Xsqlite3PagerSnapshotUnlock(tls *libc.TLS, pPager uintptr) {
+ Xsqlite3WalSnapshotUnlock(tls, (*Pager)(unsafe.Pointer(pPager)).FpWal)
+}
+
+// Object declarations
+type WalIndexHdr1 = struct {
+ FiVersion U32
+ Funused U32
+ FiChange U32
+ FisInit U8
+ FbigEndCksum U8
+ FszPage U16
+ FmxFrame U32
+ FnPage U32
+ FaFrameCksum [2]U32
+ FaSalt [2]U32
+ FaCksum [2]U32
+}
+
+// Object declarations
+type WalIndexHdr = WalIndexHdr1
+type WalIterator1 = struct {
+ FiPrior U32
+ FnSegment int32
+ FaSegment [1]struct {
+ FiNext int32
+ F__ccgo_pad1 [4]byte
+ FaIndex uintptr
+ FaPgno uintptr
+ FnEntry int32
+ FiZero int32
+ }
+}
+
+type WalIterator = WalIterator1
+type WalCkptInfo1 = struct {
+ FnBackfill U32
+ FaReadMark [5]U32
+ FaLock [8]U8
+ FnBackfillAttempted U32
+ FnotUsed0 U32
+}
+
+type WalCkptInfo = WalCkptInfo1
+
+// Each page of the wal-index mapping contains a hash-table made up of
+// an array of HASHTABLE_NSLOT elements of the following type.
+type Ht_slot = U16
+
+// This structure is used to implement an iterator that loops through
+// all frames in the WAL in database page order. Where two or more frames
+// correspond to the same database page, the iterator visits only the
+// frame most recently written to the WAL (in other words, the frame with
+// the largest index).
+//
+// The internals of this structure are only accessed by:
+//
+// walIteratorInit() - Create a new iterator,
+// walIteratorNext() - Step an iterator,
+// walIteratorFree() - Free an iterator.
+//
+// This functionality is used by the checkpoint code (see walCheckpoint()).
+type WalSegment = struct {
+ FiNext int32
+ F__ccgo_pad1 [4]byte
+ FaIndex uintptr
+ FaPgno uintptr
+ FnEntry int32
+ FiZero int32
+}
+
+func walIndexPageRealloc(tls *libc.TLS, pWal uintptr, iPage int32, ppPage uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Wal)(unsafe.Pointer(pWal)).FnWiData <= iPage {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64(iPage+1))
+ var apNew uintptr
+ libc.AtomicStoreUintptr(&apNew, Xsqlite3Realloc(tls, (*Wal)(unsafe.Pointer(pWal)).FapWiData, uint64(nByte)))
+ if !(apNew != 0) {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, apNew+uintptr((*Wal)(unsafe.Pointer(pWal)).FnWiData)*8, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(iPage+1-(*Wal)(unsafe.Pointer(pWal)).FnWiData), libc.X__builtin_object_size(tls, apNew+uintptr((*Wal)(unsafe.Pointer(pWal)).FnWiData)*8, 0))
+ (*Wal)(unsafe.Pointer(pWal)).FapWiData = apNew
+ (*Wal)(unsafe.Pointer(pWal)).FnWiData = iPage + 1
+ }
+
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_HEAPMEMORY_MODE {
+ *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8)) = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(HASHTABLE_NPAGE*2)+uint64(HASHTABLE_NPAGE)*uint64(unsafe.Sizeof(U32(0))))
+ if !(int32(*(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8))) != 0) {
+ rc = SQLITE_NOMEM
+ }
+ } else {
+ rc = Xsqlite3OsShmMap(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, iPage, int32(uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(HASHTABLE_NPAGE*2)+uint64(HASHTABLE_NPAGE)*uint64(unsafe.Sizeof(U32(0)))),
+ int32((*Wal)(unsafe.Pointer(pWal)).FwriteLock), (*Wal)(unsafe.Pointer(pWal)).FapWiData+uintptr(iPage)*8)
+
+ if rc == SQLITE_OK {
+ if iPage > 0 && Xsqlite3FaultSim(tls, 600) != 0 {
+ rc = SQLITE_NOMEM
+ }
+ } else if rc&0xff == SQLITE_READONLY {
+ *(*U8)(unsafe.Pointer(pWal + 66)) |= U8(WAL_SHM_RDONLY)
+ if rc == SQLITE_READONLY {
+ rc = SQLITE_OK
+ }
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppPage)) = *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8))
+
+ return rc
+}
+
+func walIndexPage(tls *libc.TLS, pWal uintptr, iPage int32, ppPage uintptr) int32 {
+ if (*Wal)(unsafe.Pointer(pWal)).FnWiData <= iPage || libc.AssignPtrUintptr(ppPage, *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8))) == uintptr(0) {
+ return walIndexPageRealloc(tls, pWal, iPage, ppPage)
+ }
+ return SQLITE_OK
+}
+
+func walCkptInfo(tls *libc.TLS, pWal uintptr) uintptr {
+ return *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData)) + 24*4
+}
+
+func walIndexHdr(tls *libc.TLS, pWal uintptr) uintptr {
+ return *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData))
+}
+
+func walChecksumBytes(tls *libc.TLS, nativeCksum int32, a uintptr, nByte int32, aIn uintptr, aOut uintptr) {
+ var s1 U32
+ var s2 U32
+ var aData uintptr = a
+ var aEnd uintptr = a + uintptr(nByte)
+
+ if aIn != 0 {
+ s1 = *(*U32)(unsafe.Pointer(aIn))
+ s2 = *(*U32)(unsafe.Pointer(aIn + 1*4))
+ } else {
+ s1 = libc.AssignUint32(&s2, U32(0))
+ }
+
+ if nativeCksum != 0 {
+ for __ccgo := true; __ccgo; __ccgo = aData < aEnd {
+ s1 = s1 + (*(*U32)(unsafe.Pointer(libc.PostIncUintptr(&aData, 4))) + s2)
+ s2 = s2 + (*(*U32)(unsafe.Pointer(libc.PostIncUintptr(&aData, 4))) + s1)
+ }
+ } else {
+ for __ccgo1 := true; __ccgo1; __ccgo1 = aData < aEnd {
+ s1 = s1 + (*(*U32)(unsafe.Pointer(aData))&U32(0x000000FF)<<24 + *(*U32)(unsafe.Pointer(aData))&U32(0x0000FF00)<<8 + *(*U32)(unsafe.Pointer(aData))&U32(0x00FF0000)>>8 + *(*U32)(unsafe.Pointer(aData))&0xFF000000>>24 + s2)
+ s2 = s2 + (*(*U32)(unsafe.Pointer(aData + 1*4))&U32(0x000000FF)<<24 + *(*U32)(unsafe.Pointer(aData + 1*4))&U32(0x0000FF00)<<8 + *(*U32)(unsafe.Pointer(aData + 1*4))&U32(0x00FF0000)>>8 + *(*U32)(unsafe.Pointer(aData + 1*4))&0xFF000000>>24 + s1)
+ aData += 4 * uintptr(2)
+ }
+ }
+
+ *(*U32)(unsafe.Pointer(aOut)) = s1
+ *(*U32)(unsafe.Pointer(aOut + 1*4)) = s2
+}
+
+func walShmBarrier(tls *libc.TLS, pWal uintptr) {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) != WAL_HEAPMEMORY_MODE {
+ Xsqlite3OsShmBarrier(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd)
+ }
+}
+
+func walIndexWriteHdr(tls *libc.TLS, pWal uintptr) {
+ var aHdr uintptr = walIndexHdr(tls, pWal)
+ var nCksum int32 = int32(uintptr(0) + 40)
+
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FisInit = U8(1)
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FiVersion = U32(WALINDEX_MAX_VERSION)
+ walChecksumBytes(tls, 1, pWal+72, nCksum, uintptr(0), pWal+72+40)
+
+ libc.X__builtin___memcpy_chk(tls, aHdr+1*48, pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, aHdr+1*48, 0))
+ walShmBarrier(tls, pWal)
+ libc.X__builtin___memcpy_chk(tls, aHdr, pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, aHdr, 0))
+}
+
+func walEncodeFrame(tls *libc.TLS, pWal uintptr, iPage U32, nTruncate U32, aData uintptr, aFrame uintptr) {
+ var nativeCksum int32
+ var aCksum uintptr = pWal + 72 + 24
+
+ Xsqlite3Put4byte(tls, aFrame, iPage)
+ Xsqlite3Put4byte(tls, aFrame+4, nTruncate)
+ if (*Wal)(unsafe.Pointer(pWal)).FiReCksum == U32(0) {
+ libc.X__builtin___memcpy_chk(tls, aFrame+8, pWal+72+32, uint64(8), libc.X__builtin_object_size(tls, aFrame+8, 0))
+
+ nativeCksum = libc.Bool32(int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum) == SQLITE_BIGENDIAN)
+ walChecksumBytes(tls, nativeCksum, aFrame, 8, aCksum, aCksum)
+ walChecksumBytes(tls, nativeCksum, aData, int32((*Wal)(unsafe.Pointer(pWal)).FszPage), aCksum, aCksum)
+
+ Xsqlite3Put4byte(tls, aFrame+16, *(*U32)(unsafe.Pointer(aCksum)))
+ Xsqlite3Put4byte(tls, aFrame+20, *(*U32)(unsafe.Pointer(aCksum + 1*4)))
+ } else {
+ libc.X__builtin___memset_chk(tls, aFrame+8, 0, uint64(16), libc.X__builtin_object_size(tls, aFrame+8, 0))
+ }
+}
+
+func walDecodeFrame(tls *libc.TLS, pWal uintptr, piPage uintptr, pnTruncate uintptr, aData uintptr, aFrame uintptr) int32 {
+ var nativeCksum int32
+ var aCksum uintptr = pWal + 72 + 24
+ var pgno U32
+
+ if libc.Xmemcmp(tls, pWal+72+32, aFrame+8, uint64(8)) != 0 {
+ return 0
+ }
+
+ pgno = Xsqlite3Get4byte(tls, aFrame)
+ if pgno == U32(0) {
+ return 0
+ }
+
+ nativeCksum = libc.Bool32(int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum) == SQLITE_BIGENDIAN)
+ walChecksumBytes(tls, nativeCksum, aFrame, 8, aCksum, aCksum)
+ walChecksumBytes(tls, nativeCksum, aData, int32((*Wal)(unsafe.Pointer(pWal)).FszPage), aCksum, aCksum)
+ if *(*U32)(unsafe.Pointer(aCksum)) != Xsqlite3Get4byte(tls, aFrame+16) ||
+ *(*U32)(unsafe.Pointer(aCksum + 1*4)) != Xsqlite3Get4byte(tls, aFrame+20) {
+ return 0
+ }
+
+ *(*U32)(unsafe.Pointer(piPage)) = pgno
+ *(*U32)(unsafe.Pointer(pnTruncate)) = Xsqlite3Get4byte(tls, aFrame+4)
+ return 1
+}
+
+func walLockShared(tls *libc.TLS, pWal uintptr, lockIdx int32) int32 {
+ var rc int32
+ if (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode != 0 {
+ return SQLITE_OK
+ }
+ rc = Xsqlite3OsShmLock(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, lockIdx, 1,
+ SQLITE_SHM_LOCK|SQLITE_SHM_SHARED)
+
+ return rc
+}
+
+func walUnlockShared(tls *libc.TLS, pWal uintptr, lockIdx int32) {
+ if (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode != 0 {
+ return
+ }
+ Xsqlite3OsShmLock(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, lockIdx, 1,
+ SQLITE_SHM_UNLOCK|SQLITE_SHM_SHARED)
+
+}
+
+func walLockExclusive(tls *libc.TLS, pWal uintptr, lockIdx int32, n int32) int32 {
+ var rc int32
+ if (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode != 0 {
+ return SQLITE_OK
+ }
+ rc = Xsqlite3OsShmLock(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, lockIdx, n,
+ SQLITE_SHM_LOCK|SQLITE_SHM_EXCLUSIVE)
+
+ return rc
+}
+
+func walUnlockExclusive(tls *libc.TLS, pWal uintptr, lockIdx int32, n int32) {
+ if (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode != 0 {
+ return
+ }
+ Xsqlite3OsShmLock(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, lockIdx, n,
+ SQLITE_SHM_UNLOCK|SQLITE_SHM_EXCLUSIVE)
+
+}
+
+func walHash(tls *libc.TLS, iPage U32) int32 {
+ return int32(iPage * U32(HASHTABLE_HASH_1) & U32(HASHTABLE_NPAGE*2-1))
+}
+
+func walNextHash(tls *libc.TLS, iPriorHash int32) int32 {
+ return (iPriorHash + 1) & (HASHTABLE_NPAGE*2 - 1)
+}
+
+// An instance of the WalHashLoc object is used to describe the location
+// of a page hash table in the wal-index. This becomes the return value
+// from walHashGet().
+type WalHashLoc1 = struct {
+ FaHash uintptr
+ FaPgno uintptr
+ FiZero U32
+ F__ccgo_pad1 [4]byte
+}
+
+// An instance of the WalHashLoc object is used to describe the location
+// of a page hash table in the wal-index. This becomes the return value
+// from walHashGet().
+type WalHashLoc = WalHashLoc1
+
+func walHashGet(tls *libc.TLS, pWal uintptr, iHash int32, pLoc uintptr) int32 {
+ var rc int32
+
+ rc = walIndexPage(tls, pWal, iHash, pLoc+8)
+
+ if (*WalHashLoc)(unsafe.Pointer(pLoc)).FaPgno != 0 {
+ (*WalHashLoc)(unsafe.Pointer(pLoc)).FaHash = (*WalHashLoc)(unsafe.Pointer(pLoc)).FaPgno + 4096*4
+ if iHash == 0 {
+ (*WalHashLoc)(unsafe.Pointer(pLoc)).FaPgno = (*WalHashLoc)(unsafe.Pointer(pLoc)).FaPgno + 34*4
+ (*WalHashLoc)(unsafe.Pointer(pLoc)).FiZero = U32(0)
+ } else {
+ (*WalHashLoc)(unsafe.Pointer(pLoc)).FiZero = U32(uint64(HASHTABLE_NPAGE) - (uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0))) + uint64((iHash-1)*HASHTABLE_NPAGE))
+ }
+ } else if rc == SQLITE_OK {
+ rc = SQLITE_ERROR
+ }
+ return rc
+}
+
+func walFramePage(tls *libc.TLS, iFrame U32) int32 {
+ var iHash int32 = int32((uint64(iFrame+U32(HASHTABLE_NPAGE)) - (uint64(HASHTABLE_NPAGE) - (uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0)))) - uint64(1)) / uint64(HASHTABLE_NPAGE))
+
+ return iHash
+}
+
+func walFramePgno(tls *libc.TLS, pWal uintptr, iFrame U32) U32 {
+ var iHash int32 = walFramePage(tls, iFrame)
+ if iHash == 0 {
+ return *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData)) + uintptr((uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0)))+uint64(iFrame)-uint64(1))*4))
+ }
+ return *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iHash)*8)) + uintptr((uint64(iFrame-U32(1))-(uint64(HASHTABLE_NPAGE)-(uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0)))))%uint64(HASHTABLE_NPAGE))*4))
+}
+
+func walCleanupHash(tls *libc.TLS, pWal uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var iLimit int32 = 0
+ var nByte int32
+ var i int32
+
+ if (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame == U32(0) {
+ return
+ }
+
+ i = walHashGet(tls, pWal, walFramePage(tls, (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame), bp)
+ if i != 0 {
+ return
+ }
+
+ iLimit = int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame - (*WalHashLoc)(unsafe.Pointer(bp)).FiZero)
+
+ for i = 0; i < HASHTABLE_NPAGE*2; i++ {
+ if int32(*(*Ht_slot)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaHash + uintptr(i)*2))) > iLimit {
+ *(*Ht_slot)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaHash + uintptr(i)*2)) = Ht_slot(0)
+ }
+ }
+
+ nByte = int32((int64((*WalHashLoc)(unsafe.Pointer(bp)).FaHash) - int64((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno+uintptr(iLimit)*4)) / 1)
+
+ libc.X__builtin___memset_chk(tls, (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno+uintptr(iLimit)*4, 0, uint64(nByte), libc.X__builtin_object_size(tls, (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno+uintptr(iLimit)*4, 0))
+
+}
+
+func walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame U32, iPage U32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+
+ rc = walHashGet(tls, pWal, walFramePage(tls, iFrame), bp)
+
+ if rc == SQLITE_OK {
+ var iKey int32
+ var idx int32
+ var nCollide int32
+
+ idx = int32(iFrame - (*WalHashLoc)(unsafe.Pointer(bp)).FiZero)
+
+ if idx == 1 {
+ var nByte int32 = int32((int64((*WalHashLoc)(unsafe.Pointer(bp)).FaHash+8192*2) - int64((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno)) / 1)
+
+ libc.X__builtin___memset_chk(tls, (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno, 0, uint64(nByte), libc.X__builtin_object_size(tls, (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno, 0))
+ }
+
+ if *(*U32)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno + uintptr(idx-1)*4)) != 0 {
+ walCleanupHash(tls, pWal)
+
+ }
+
+ nCollide = idx
+ for iKey = walHash(tls, iPage); *(*Ht_slot)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaHash + uintptr(iKey)*2)) != 0; iKey = walNextHash(tls, iKey) {
+ if libc.PostDecInt32(&nCollide, 1) == 0 {
+ return Xsqlite3CorruptError(tls, 64387)
+ }
+ }
+ *(*U32)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno + uintptr(idx-1)*4)) = iPage
+ *(*Ht_slot)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaHash + uintptr(iKey)*2)) = Ht_slot(idx)
+
+ }
+
+ return rc
+}
+
+func walIndexRecover(tls *libc.TLS, pWal uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var rc int32
+
+ var iLock int32
+ var iOffset I64
+
+ var iFrame U32
+ var iLast U32
+ var iFirst U32
+ var nHdr U32
+ var nHdr32 U32
+
+ var aPrivate uintptr
+ var aFrame uintptr
+ var szFrame int32
+ var aData uintptr
+ var szPage int32
+ var magic U32
+ var version U32
+ var isValid int32
+ var iPg U32
+ var iLastFrame U32
+ var pInfo uintptr
+ var i int32
+ *(*[2]U32)(unsafe.Pointer(bp + 72)) = [2]U32{U32(0), U32(0)}
+
+ iLock = WAL_ALL_BUT_WRITE + int32((*Wal)(unsafe.Pointer(pWal)).FckptLock)
+ rc = walLockExclusive(tls, pWal, iLock, 3+0-iLock)
+ if !(rc != 0) {
+ goto __1
+ }
+ return rc
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, pWal+72, 0, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+
+ rc = Xsqlite3OsFileSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp+16)
+ if !(rc != SQLITE_OK) {
+ goto __2
+ }
+ goto recovery_error
+__2:
+ ;
+ if !(*(*I64)(unsafe.Pointer(bp + 16)) > int64(WAL_HDRSIZE)) {
+ goto __3
+ }
+ aPrivate = uintptr(0)
+ aFrame = uintptr(0)
+
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp+24, WAL_HDRSIZE, int64(0))
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto recovery_error
+__4:
+ ;
+ magic = Xsqlite3Get4byte(tls, bp+24)
+ szPage = int32(Xsqlite3Get4byte(tls, bp+24+8))
+ if !(magic&0xFFFFFFFE != U32(WAL_MAGIC) ||
+ szPage&(szPage-1) != 0 ||
+ szPage > SQLITE_MAX_PAGE_SIZE ||
+ szPage < 512) {
+ goto __5
+ }
+ goto finished
+__5:
+ ;
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum = U8(magic & U32(0x00000001))
+ (*Wal)(unsafe.Pointer(pWal)).FszPage = U32(szPage)
+ (*Wal)(unsafe.Pointer(pWal)).FnCkpt = Xsqlite3Get4byte(tls, bp+24+12)
+ libc.X__builtin___memcpy_chk(tls, pWal+72+32, bp+24+16, uint64(8), libc.X__builtin_object_size(tls, pWal+72+32, 0))
+
+ walChecksumBytes(tls, libc.Bool32(int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum) == SQLITE_BIGENDIAN),
+ bp+24, WAL_HDRSIZE-2*4, uintptr(0), pWal+72+24)
+ if !(*(*U32)(unsafe.Pointer(pWal + 72 + 24)) != Xsqlite3Get4byte(tls, bp+24+24) ||
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) != Xsqlite3Get4byte(tls, bp+24+28)) {
+ goto __6
+ }
+ goto finished
+__6:
+ ;
+ version = Xsqlite3Get4byte(tls, bp+24+4)
+ if !(version != U32(WAL_MAX_VERSION)) {
+ goto __7
+ }
+ rc = Xsqlite3CantopenError(tls, 64519)
+ goto finished
+__7:
+ ;
+ szFrame = szPage + WAL_FRAME_HDRSIZE
+ aFrame = Xsqlite3_malloc64(tls, uint64(szFrame)+(uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(HASHTABLE_NPAGE*2)+uint64(HASHTABLE_NPAGE)*uint64(unsafe.Sizeof(U32(0)))))
+ if !!(aFrame != 0) {
+ goto __8
+ }
+ rc = SQLITE_NOMEM
+ goto recovery_error
+__8:
+ ;
+ aData = aFrame + 24
+ aPrivate = aData + uintptr(szPage)
+
+ iLastFrame = U32((*(*I64)(unsafe.Pointer(bp + 16)) - int64(WAL_HDRSIZE)) / I64(szFrame))
+ iPg = U32(0)
+__9:
+ if !(iPg <= U32(walFramePage(tls, iLastFrame))) {
+ goto __11
+ }
+ iLast = func() uint32 {
+ if uint64(iLastFrame) < uint64(HASHTABLE_NPAGE)-(uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0)))+uint64(iPg*U32(HASHTABLE_NPAGE)) {
+ return iLastFrame
+ }
+ return uint32(uint64(HASHTABLE_NPAGE) - (uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0))) + uint64(iPg*U32(HASHTABLE_NPAGE)))
+ }()
+ iFirst = U32(uint64(1) + func() uint64 {
+ if iPg == U32(0) {
+ return uint64(0)
+ }
+ return uint64(HASHTABLE_NPAGE) - (uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2)+uint64(unsafe.Sizeof(WalCkptInfo{})))/uint64(unsafe.Sizeof(U32(0))) + uint64((iPg-U32(1))*U32(HASHTABLE_NPAGE))
+ }())
+ rc = walIndexPage(tls, pWal, int32(iPg), bp+56)
+
+ if !(*(*uintptr)(unsafe.Pointer(bp + 56)) == uintptr(0)) {
+ goto __12
+ }
+ goto __11
+__12:
+ ;
+ *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPg)*8)) = aPrivate
+
+ iFrame = iFirst
+__13:
+ if !(iFrame <= iLast) {
+ goto __15
+ }
+ iOffset = int64(WAL_HDRSIZE) + I64(iFrame-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE)
+
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, aFrame, szFrame, iOffset)
+ if !(rc != SQLITE_OK) {
+ goto __16
+ }
+ goto __15
+__16:
+ ;
+ isValid = walDecodeFrame(tls, pWal, bp+64, bp+68, aData, aFrame)
+ if !!(isValid != 0) {
+ goto __17
+ }
+ goto __15
+__17:
+ ;
+ rc = walIndexAppend(tls, pWal, iFrame, *(*U32)(unsafe.Pointer(bp + 64)))
+ if !(rc != SQLITE_OK) {
+ goto __18
+ }
+ goto __15
+__18:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 68)) != 0) {
+ goto __19
+ }
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame = iFrame
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage = *(*U32)(unsafe.Pointer(bp + 68))
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage = U16(szPage&0xff00 | szPage>>16)
+
+ *(*U32)(unsafe.Pointer(bp + 72)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24))
+ *(*U32)(unsafe.Pointer(bp + 72 + 1*4)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4))
+__19:
+ ;
+ goto __14
+__14:
+ iFrame++
+ goto __13
+ goto __15
+__15:
+ ;
+ *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPg)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56))
+ nHdr = func() uint32 {
+ if iPg == U32(0) {
+ return uint32(uint64(unsafe.Sizeof(WalIndexHdr{}))*uint64(2) + uint64(unsafe.Sizeof(WalCkptInfo{})))
+ }
+ return uint32(0)
+ }()
+ nHdr32 = U32(uint64(nHdr) / uint64(unsafe.Sizeof(U32(0))))
+
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp + 56))+uintptr(nHdr32)*4, aPrivate+uintptr(nHdr32)*4, uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(HASHTABLE_NPAGE*2)+uint64(HASHTABLE_NPAGE)*uint64(unsafe.Sizeof(U32(0)))-uint64(nHdr), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp + 56))+uintptr(nHdr32)*4, 0))
+ if !(iFrame <= iLast) {
+ goto __20
+ }
+ goto __11
+__20:
+ ;
+ goto __10
+__10:
+ iPg++
+ goto __9
+ goto __11
+__11:
+ ;
+ Xsqlite3_free(tls, aFrame)
+__3:
+ ;
+finished:
+ if !(rc == SQLITE_OK) {
+ goto __21
+ }
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24)) = *(*U32)(unsafe.Pointer(bp + 72))
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = *(*U32)(unsafe.Pointer(bp + 72 + 1*4))
+ walIndexWriteHdr(tls, pWal)
+
+ libc.AtomicStoreUintptr(&pInfo, walCkptInfo(tls, pWal))
+ (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill = U32(0)
+ (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ *(*U32)(unsafe.Pointer(pInfo + 4)) = U32(0)
+ i = 1
+__22:
+ if !(i < SQLITE_SHM_NLOCK-3) {
+ goto __24
+ }
+ rc = walLockExclusive(tls, pWal, 3+i, 1)
+ if !(rc == SQLITE_OK) {
+ goto __25
+ }
+ if !(i == 1 && (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame != 0) {
+ goto __27
+ }
+ *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ goto __28
+__27:
+ *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) = READMARK_NOT_USED
+__28:
+ ;
+ walUnlockExclusive(tls, pWal, 3+i, 1)
+ goto __26
+__25:
+ if !(rc != SQLITE_BUSY) {
+ goto __29
+ }
+ goto recovery_error
+__29:
+ ;
+__26:
+ ;
+ goto __23
+__23:
+ i++
+ goto __22
+ goto __24
+__24:
+ ;
+ if !((*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0) {
+ goto __30
+ }
+ Xsqlite3_log(tls, SQLITE_NOTICE|int32(1)<<8,
+ ts+4373,
+ libc.VaList(bp, (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame, (*Wal)(unsafe.Pointer(pWal)).FzWalName))
+__30:
+ ;
+__21:
+ ;
+recovery_error:
+ ;
+ walUnlockExclusive(tls, pWal, iLock, 3+0-iLock)
+ return rc
+}
+
+func walIndexClose(tls *libc.TLS, pWal uintptr, isDelete int32) {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_HEAPMEMORY_MODE || (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 {
+ var i int32
+ for i = 0; i < (*Wal)(unsafe.Pointer(pWal)).FnWiData; i++ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(i)*8)) = uintptr(0)
+ }
+ }
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) != WAL_HEAPMEMORY_MODE {
+ Xsqlite3OsShmUnmap(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, isDelete)
+ }
+}
+
+// Open a connection to the WAL file zWalName. The database file must
+// already be opened on connection pDbFd. The buffer that zWalName points
+// to must remain valid for the lifetime of the returned Wal* handle.
+//
+// A SHARED lock should be held on the database file when this function
+// is called. The purpose of this SHARED lock is to prevent any other
+// client from unlinking the WAL or wal-index file. If another process
+// were to do this just after this client opened one of these files, the
+// system would be badly broken.
+//
+// If the log file is successfully opened, SQLITE_OK is returned and
+// *ppWal is set to point to a new WAL handle. If an error occurs,
+// an SQLite error code is returned and *ppWal is left unmodified.
+func Xsqlite3WalOpen(tls *libc.TLS, pVfs uintptr, pDbFd uintptr, zWalName uintptr, bNoShm int32, mxWalSize I64, ppWal uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ var pRet uintptr
+
+ *(*uintptr)(unsafe.Pointer(ppWal)) = uintptr(0)
+ pRet = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Wal{}))+uint64((*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile))
+ if !(pRet != 0) {
+ return SQLITE_NOMEM
+ }
+
+ (*Wal)(unsafe.Pointer(pRet)).FpVfs = pVfs
+ (*Wal)(unsafe.Pointer(pRet)).FpWalFd = pRet + 1*152
+ (*Wal)(unsafe.Pointer(pRet)).FpDbFd = pDbFd
+ (*Wal)(unsafe.Pointer(pRet)).FreadLock = int16(-1)
+ (*Wal)(unsafe.Pointer(pRet)).FmxWalSize = mxWalSize
+ (*Wal)(unsafe.Pointer(pRet)).FzWalName = zWalName
+ (*Wal)(unsafe.Pointer(pRet)).FsyncHeader = U8(1)
+ (*Wal)(unsafe.Pointer(pRet)).FpadToSectorBoundary = U8(1)
+ (*Wal)(unsafe.Pointer(pRet)).FexclusiveMode = func() uint8 {
+ if bNoShm != 0 {
+ return uint8(WAL_HEAPMEMORY_MODE)
+ }
+ return uint8(WAL_NORMAL_MODE)
+ }()
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_WAL
+ rc = Xsqlite3OsOpen(tls, pVfs, zWalName, (*Wal)(unsafe.Pointer(pRet)).FpWalFd, *(*int32)(unsafe.Pointer(bp)), bp)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp))&SQLITE_OPEN_READONLY != 0 {
+ (*Wal)(unsafe.Pointer(pRet)).FreadOnly = U8(WAL_RDONLY)
+ }
+
+ if rc != SQLITE_OK {
+ walIndexClose(tls, pRet, 0)
+ Xsqlite3OsClose(tls, (*Wal)(unsafe.Pointer(pRet)).FpWalFd)
+ Xsqlite3_free(tls, pRet)
+ } else {
+ var iDC int32 = Xsqlite3OsDeviceCharacteristics(tls, pDbFd)
+ if iDC&SQLITE_IOCAP_SEQUENTIAL != 0 {
+ (*Wal)(unsafe.Pointer(pRet)).FsyncHeader = U8(0)
+ }
+ if iDC&SQLITE_IOCAP_POWERSAFE_OVERWRITE != 0 {
+ (*Wal)(unsafe.Pointer(pRet)).FpadToSectorBoundary = U8(0)
+ }
+ *(*uintptr)(unsafe.Pointer(ppWal)) = pRet
+
+ }
+ return rc
+}
+
+// Change the size to which the WAL file is trucated on each reset.
+func Xsqlite3WalLimit(tls *libc.TLS, pWal uintptr, iLimit I64) {
+ if pWal != 0 {
+ (*Wal)(unsafe.Pointer(pWal)).FmxWalSize = iLimit
+ }
+}
+
+func walIteratorNext(tls *libc.TLS, p uintptr, piPage uintptr, piFrame uintptr) int32 {
+ var iMin U32
+ var iRet U32 = 0xFFFFFFFF
+ var i int32
+
+ iMin = (*WalIterator)(unsafe.Pointer(p)).FiPrior
+
+ for i = (*WalIterator)(unsafe.Pointer(p)).FnSegment - 1; i >= 0; i-- {
+ var pSegment uintptr = p + 8 + uintptr(i)*32
+ for (*WalSegment)(unsafe.Pointer(pSegment)).FiNext < (*WalSegment)(unsafe.Pointer(pSegment)).FnEntry {
+ var iPg U32 = *(*U32)(unsafe.Pointer((*WalSegment)(unsafe.Pointer(pSegment)).FaPgno + uintptr(*(*Ht_slot)(unsafe.Pointer((*WalSegment)(unsafe.Pointer(pSegment)).FaIndex + uintptr((*WalSegment)(unsafe.Pointer(pSegment)).FiNext)*2)))*4))
+ if iPg > iMin {
+ if iPg < iRet {
+ iRet = iPg
+ *(*U32)(unsafe.Pointer(piFrame)) = U32((*WalSegment)(unsafe.Pointer(pSegment)).FiZero + int32(*(*Ht_slot)(unsafe.Pointer((*WalSegment)(unsafe.Pointer(pSegment)).FaIndex + uintptr((*WalSegment)(unsafe.Pointer(pSegment)).FiNext)*2))))
+ }
+ break
+ }
+ (*WalSegment)(unsafe.Pointer(pSegment)).FiNext++
+ }
+ }
+
+ *(*U32)(unsafe.Pointer(piPage)) = libc.AssignPtrUint32(p, iRet)
+ return libc.Bool32(iRet == 0xFFFFFFFF)
+}
+
+func walMerge(tls *libc.TLS, aContent uintptr, aLeft uintptr, nLeft int32, paRight uintptr, pnRight uintptr, aTmp uintptr) {
+ var iLeft int32 = 0
+ var iRight int32 = 0
+ var iOut int32 = 0
+ var nRight int32 = *(*int32)(unsafe.Pointer(pnRight))
+ var aRight uintptr = *(*uintptr)(unsafe.Pointer(paRight))
+
+ for iRight < nRight || iLeft < nLeft {
+ var logpage Ht_slot
+ var dbpage Pgno
+
+ if iLeft < nLeft &&
+ (iRight >= nRight || *(*U32)(unsafe.Pointer(aContent + uintptr(*(*Ht_slot)(unsafe.Pointer(aLeft + uintptr(iLeft)*2)))*4)) < *(*U32)(unsafe.Pointer(aContent + uintptr(*(*Ht_slot)(unsafe.Pointer(aRight + uintptr(iRight)*2)))*4))) {
+ logpage = *(*Ht_slot)(unsafe.Pointer(aLeft + uintptr(libc.PostIncInt32(&iLeft, 1))*2))
+ } else {
+ logpage = *(*Ht_slot)(unsafe.Pointer(aRight + uintptr(libc.PostIncInt32(&iRight, 1))*2))
+ }
+ dbpage = *(*U32)(unsafe.Pointer(aContent + uintptr(logpage)*4))
+
+ *(*Ht_slot)(unsafe.Pointer(aTmp + uintptr(libc.PostIncInt32(&iOut, 1))*2)) = logpage
+ if iLeft < nLeft && *(*U32)(unsafe.Pointer(aContent + uintptr(*(*Ht_slot)(unsafe.Pointer(aLeft + uintptr(iLeft)*2)))*4)) == dbpage {
+ iLeft++
+ }
+
+ }
+
+ *(*uintptr)(unsafe.Pointer(paRight)) = aLeft
+ *(*int32)(unsafe.Pointer(pnRight)) = iOut
+ libc.X__builtin___memcpy_chk(tls, aLeft, aTmp, uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(iOut), libc.X__builtin_object_size(tls, aLeft, 0))
+}
+
+func walMergesort(tls *libc.TLS, aContent uintptr, aBuffer uintptr, aList uintptr, pnList uintptr) {
+ bp := tls.Alloc(220)
+ defer tls.Free(220)
+
+ var nList int32 = *(*int32)(unsafe.Pointer(pnList))
+ *(*int32)(unsafe.Pointer(bp + 216)) = 0
+ *(*uintptr)(unsafe.Pointer(bp + 208)) = uintptr(0)
+ var iList int32
+ var iSub U32 = U32(0)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([13]Sublist{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ for iList = 0; iList < nList; iList++ {
+ *(*int32)(unsafe.Pointer(bp + 216)) = 1
+ *(*uintptr)(unsafe.Pointer(bp + 208)) = aList + uintptr(iList)*2
+ for iSub = U32(0); iList&(int32(1)<<iSub) != 0; iSub++ {
+ var p uintptr
+
+ p = bp + uintptr(iSub)*16
+
+ walMerge(tls, aContent, (*Sublist)(unsafe.Pointer(p)).FaList, (*Sublist)(unsafe.Pointer(p)).FnList, bp+208, bp+216, aBuffer)
+ }
+ (*Sublist)(unsafe.Pointer(bp + uintptr(iSub)*16)).FaList = *(*uintptr)(unsafe.Pointer(bp + 208))
+ (*Sublist)(unsafe.Pointer(bp + uintptr(iSub)*16)).FnList = *(*int32)(unsafe.Pointer(bp + 216))
+ }
+
+ for iSub++; iSub < U32(int32(uint64(unsafe.Sizeof([13]Sublist{}))/uint64(unsafe.Sizeof(Sublist{})))); iSub++ {
+ if nList&(int32(1)<<iSub) != 0 {
+ var p uintptr
+
+ p = bp + uintptr(iSub)*16
+
+ walMerge(tls, aContent, (*Sublist)(unsafe.Pointer(p)).FaList, (*Sublist)(unsafe.Pointer(p)).FnList, bp+208, bp+216, aBuffer)
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pnList)) = *(*int32)(unsafe.Pointer(bp + 216))
+
+}
+
+type Sublist = struct {
+ FnList int32
+ F__ccgo_pad1 [4]byte
+ FaList uintptr
+}
+
+func walIteratorFree(tls *libc.TLS, p uintptr) {
+ Xsqlite3_free(tls, p)
+}
+
+func walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill U32, pp uintptr) int32 {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var p uintptr
+ var nSegment int32
+ var iLast U32
+ var nByte Sqlite3_int64
+ var i int32
+ var aTmp uintptr
+ var rc int32 = SQLITE_OK
+
+ iLast = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+
+ nSegment = walFramePage(tls, iLast) + 1
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(WalIterator{})) +
+ uint64(nSegment-1)*uint64(unsafe.Sizeof(WalSegment{})) +
+ uint64(iLast)*uint64(unsafe.Sizeof(Ht_slot(0))))
+ p = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(p != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(nByte), libc.X__builtin_object_size(tls, p, 0))
+ (*WalIterator)(unsafe.Pointer(p)).FnSegment = nSegment
+
+ aTmp = Xsqlite3_malloc64(tls,
+ uint64(unsafe.Sizeof(Ht_slot(0)))*func() uint64 {
+ if iLast > U32(HASHTABLE_NPAGE) {
+ return uint64(HASHTABLE_NPAGE)
+ }
+ return uint64(iLast)
+ }())
+ if !(aTmp != 0) {
+ rc = SQLITE_NOMEM
+ }
+
+ for i = walFramePage(tls, nBackfill+U32(1)); rc == SQLITE_OK && i < nSegment; i++ {
+ rc = walHashGet(tls, pWal, i, bp)
+ if rc == SQLITE_OK {
+ var j int32
+
+ var aIndex uintptr
+
+ if i+1 == nSegment {
+ *(*int32)(unsafe.Pointer(bp + 24)) = int32(iLast - (*WalHashLoc)(unsafe.Pointer(bp)).FiZero)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 24)) = int32((int64((*WalHashLoc)(unsafe.Pointer(bp)).FaHash) - int64((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno)) / 4)
+ }
+ aIndex = p + 8 + uintptr((*WalIterator)(unsafe.Pointer(p)).FnSegment)*32 + uintptr((*WalHashLoc)(unsafe.Pointer(bp)).FiZero)*2
+ (*WalHashLoc)(unsafe.Pointer(bp)).FiZero++
+
+ for j = 0; j < *(*int32)(unsafe.Pointer(bp + 24)); j++ {
+ *(*Ht_slot)(unsafe.Pointer(aIndex + uintptr(j)*2)) = Ht_slot(j)
+ }
+ walMergesort(tls, (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno, aTmp, aIndex, bp+24)
+ (*WalSegment)(unsafe.Pointer(p + 8 + uintptr(i)*32)).FiZero = int32((*WalHashLoc)(unsafe.Pointer(bp)).FiZero)
+ (*WalSegment)(unsafe.Pointer(p + 8 + uintptr(i)*32)).FnEntry = *(*int32)(unsafe.Pointer(bp + 24))
+ (*WalSegment)(unsafe.Pointer(p + 8 + uintptr(i)*32)).FaIndex = aIndex
+ (*WalSegment)(unsafe.Pointer(p + 8 + uintptr(i)*32)).FaPgno = (*WalHashLoc)(unsafe.Pointer(bp)).FaPgno
+ }
+ }
+ Xsqlite3_free(tls, aTmp)
+
+ if rc != SQLITE_OK {
+ walIteratorFree(tls, p)
+ p = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+ return rc
+}
+
+func walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) int32 {
+ var rc int32
+ for __ccgo := true; __ccgo; __ccgo = xBusy != 0 && rc == SQLITE_BUSY && (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xBusy})).f(tls, pBusyArg) != 0 {
+ rc = walLockExclusive(tls, pWal, lockIdx, n)
+ }
+ return rc
+}
+
+func walPagesize(tls *libc.TLS, pWal uintptr) int32 {
+ return int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&0xfe00 + int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&0x0001<<16
+}
+
+func walRestartHdr(tls *libc.TLS, pWal uintptr, salt1 U32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+ *(*U32)(unsafe.Pointer(bp)) = salt1
+
+ var pInfo uintptr = walCkptInfo(tls, pWal)
+ var i int32
+ var aSalt uintptr = pWal + 72 + 32
+ (*Wal)(unsafe.Pointer(pWal)).FnCkpt++
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame = U32(0)
+ Xsqlite3Put4byte(tls, aSalt, U32(1)+Xsqlite3Get4byte(tls, aSalt))
+ libc.X__builtin___memcpy_chk(tls, pWal+72+32+1*4, bp, uint64(4), libc.X__builtin_object_size(tls, pWal+72+32+1*4, 0))
+ walIndexWriteHdr(tls, pWal)
+ *(*U32)(unsafe.Pointer(pInfo)) = U32(0)
+ (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted = U32(0)
+ *(*U32)(unsafe.Pointer(pInfo + 4 + 1*4)) = U32(0)
+ for i = 2; i < SQLITE_SHM_NLOCK-3; i++ {
+ *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) = READMARK_NOT_USED
+ }
+
+}
+
+func walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var rc int32
+ var szPage int32
+
+ var mxSafeFrame U32
+ var mxPage U32
+ var i int32
+ var pInfo uintptr
+ var iMark U32
+ var y U32
+
+ var iOffset I64
+ var szDb I64
+ var nBackfill U32
+
+ rc = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*U32)(unsafe.Pointer(bp + 24)) = U32(0)
+ *(*U32)(unsafe.Pointer(bp + 28)) = U32(0)
+
+ szPage = walPagesize(tls, pWal)
+
+ libc.AtomicStoreUintptr(&pInfo, walCkptInfo(tls, pWal))
+ if !((*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill < (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame) {
+ goto __1
+ }
+
+ mxSafeFrame = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ mxPage = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage
+ i = 1
+__2:
+ if !(i < SQLITE_SHM_NLOCK-3) {
+ goto __4
+ }
+ y = *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4))
+ if !(mxSafeFrame > y) {
+ goto __5
+ }
+
+ rc = walBusyLock(tls, pWal, xBusy, pBusyArg, 3+i, 1)
+ if !(rc == SQLITE_OK) {
+ goto __6
+ }
+ iMark = func() uint32 {
+ if i == 1 {
+ return mxSafeFrame
+ }
+ return READMARK_NOT_USED
+ }()
+ *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) = iMark
+ walUnlockExclusive(tls, pWal, 3+i, 1)
+ goto __7
+__6:
+ if !(rc == SQLITE_BUSY) {
+ goto __8
+ }
+ mxSafeFrame = y
+ xBusy = uintptr(0)
+ goto __9
+__8:
+ goto walcheckpoint_out
+__9:
+ ;
+__7:
+ ;
+__5:
+ ;
+ goto __3
+__3:
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+ if !((*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill < mxSafeFrame) {
+ goto __10
+ }
+ rc = walIteratorInit(tls, pWal, (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp)
+
+__10:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp)) != 0 &&
+ libc.AssignInt32(&rc, walBusyLock(tls, pWal, xBusy, pBusyArg, 3+0, 1)) == SQLITE_OK) {
+ goto __11
+ }
+ nBackfill = (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill
+
+ (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted = mxSafeFrame
+
+ rc = Xsqlite3OsSync(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, sync_flags>>2&0x03)
+
+ if !(rc == SQLITE_OK) {
+ goto __12
+ }
+ *(*I64)(unsafe.Pointer(bp + 16)) = I64(mxPage) * I64(szPage)
+ Xsqlite3OsFileControl(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, SQLITE_FCNTL_CKPT_START, uintptr(0))
+ rc = Xsqlite3OsFileSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, bp+8)
+ if !(rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp + 8)) < *(*I64)(unsafe.Pointer(bp + 16))) {
+ goto __13
+ }
+ if !(*(*I64)(unsafe.Pointer(bp + 8))+int64(65536)+I64((*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame)*I64(szPage) < *(*I64)(unsafe.Pointer(bp + 16))) {
+ goto __14
+ }
+
+ rc = Xsqlite3CorruptError(tls, 65333)
+ goto __15
+__14:
+ Xsqlite3OsFileControlHint(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, SQLITE_FCNTL_SIZE_HINT, bp+16)
+__15:
+ ;
+__13:
+ ;
+__12:
+ ;
+__16:
+ if !(rc == SQLITE_OK && 0 == walIteratorNext(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+24, bp+28)) {
+ goto __17
+ }
+
+ if !(*(*int32)(unsafe.Pointer(db + 432)) != 0) {
+ goto __18
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = SQLITE_INTERRUPT
+ }
+ goto __17
+__18:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 28)) <= nBackfill || *(*U32)(unsafe.Pointer(bp + 28)) > mxSafeFrame || *(*U32)(unsafe.Pointer(bp + 24)) > mxPage) {
+ goto __19
+ }
+ goto __16
+__19:
+ ;
+ iOffset = int64(WAL_HDRSIZE) + I64(*(*U32)(unsafe.Pointer(bp + 28))-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE) + int64(WAL_FRAME_HDRSIZE)
+
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, zBuf, szPage, iOffset)
+ if !(rc != SQLITE_OK) {
+ goto __20
+ }
+ goto __17
+__20:
+ ;
+ iOffset = I64(*(*U32)(unsafe.Pointer(bp + 24))-U32(1)) * I64(szPage)
+
+ rc = Xsqlite3OsWrite(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, zBuf, szPage, iOffset)
+ if !(rc != SQLITE_OK) {
+ goto __21
+ }
+ goto __17
+__21:
+ ;
+ goto __16
+__17:
+ ;
+ Xsqlite3OsFileControl(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, SQLITE_FCNTL_CKPT_DONE, uintptr(0))
+
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ if !(mxSafeFrame == (*WalIndexHdr)(unsafe.Pointer(walIndexHdr(tls, pWal))).FmxFrame) {
+ goto __23
+ }
+ szDb = I64((*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage) * I64(szPage)
+
+ rc = Xsqlite3OsTruncate(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, szDb)
+ if !(rc == SQLITE_OK) {
+ goto __24
+ }
+ rc = Xsqlite3OsSync(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, sync_flags>>2&0x03)
+__24:
+ ;
+__23:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __25
+ }
+ *(*U32)(unsafe.Pointer(pInfo)) = mxSafeFrame
+__25:
+ ;
+__22:
+ ;
+ walUnlockExclusive(tls, pWal, 3+0, 1)
+__11:
+ ;
+ if !(rc == SQLITE_BUSY) {
+ goto __26
+ }
+
+ rc = SQLITE_OK
+__26:
+ ;
+__1:
+ ;
+ if !(rc == SQLITE_OK && eMode != SQLITE_CHECKPOINT_PASSIVE) {
+ goto __27
+ }
+
+ if !((*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill < (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame) {
+ goto __28
+ }
+ rc = SQLITE_BUSY
+ goto __29
+__28:
+ if !(eMode >= SQLITE_CHECKPOINT_RESTART) {
+ goto __30
+ }
+ Xsqlite3_randomness(tls, 4, bp+32)
+
+ rc = walBusyLock(tls, pWal, xBusy, pBusyArg, 3+1, SQLITE_SHM_NLOCK-3-1)
+ if !(rc == SQLITE_OK) {
+ goto __31
+ }
+ if !(eMode == SQLITE_CHECKPOINT_TRUNCATE) {
+ goto __32
+ }
+
+ walRestartHdr(tls, pWal, *(*U32)(unsafe.Pointer(bp + 32)))
+ rc = Xsqlite3OsTruncate(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, int64(0))
+__32:
+ ;
+ walUnlockExclusive(tls, pWal, 3+1, SQLITE_SHM_NLOCK-3-1)
+__31:
+ ;
+__30:
+ ;
+__29:
+ ;
+__27:
+ ;
+walcheckpoint_out:
+ walIteratorFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+func walLimitSize(tls *libc.TLS, pWal uintptr, nMax I64) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rx int32
+ Xsqlite3BeginBenignMalloc(tls)
+ rx = Xsqlite3OsFileSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp+8)
+ if rx == SQLITE_OK && *(*I64)(unsafe.Pointer(bp + 8)) > nMax {
+ rx = Xsqlite3OsTruncate(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, nMax)
+ }
+ Xsqlite3EndBenignMalloc(tls)
+ if rx != 0 {
+ Xsqlite3_log(tls, rx, ts+4410, libc.VaList(bp, (*Wal)(unsafe.Pointer(pWal)).FzWalName))
+ }
+}
+
+// Close a connection to a log file.
+func Xsqlite3WalClose(tls *libc.TLS, pWal uintptr, db uintptr, sync_flags int32, nBuf int32, zBuf uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+ if pWal != 0 {
+ var isDelete int32 = 0
+
+ if zBuf != uintptr(0) &&
+ SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3OsLock(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, SQLITE_LOCK_EXCLUSIVE)) {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE {
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_EXCLUSIVE_MODE)
+ }
+ rc = Xsqlite3WalCheckpoint(tls, pWal, db,
+ SQLITE_CHECKPOINT_PASSIVE, uintptr(0), uintptr(0), sync_flags, nBuf, zBuf, uintptr(0), uintptr(0))
+ if rc == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = -1
+ Xsqlite3OsFileControlHint(tls,
+ (*Wal)(unsafe.Pointer(pWal)).FpDbFd, SQLITE_FCNTL_PERSIST_WAL, bp)
+ if *(*int32)(unsafe.Pointer(bp)) != 1 {
+ isDelete = 1
+ } else if (*Wal)(unsafe.Pointer(pWal)).FmxWalSize >= int64(0) {
+ walLimitSize(tls, pWal, int64(0))
+ }
+ }
+ }
+
+ walIndexClose(tls, pWal, isDelete)
+ Xsqlite3OsClose(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd)
+ if isDelete != 0 {
+ Xsqlite3BeginBenignMalloc(tls)
+ Xsqlite3OsDelete(tls, (*Wal)(unsafe.Pointer(pWal)).FpVfs, (*Wal)(unsafe.Pointer(pWal)).FzWalName, 0)
+ Xsqlite3EndBenignMalloc(tls)
+ }
+
+ Xsqlite3_free(tls, (*Wal)(unsafe.Pointer(pWal)).FapWiData)
+ Xsqlite3_free(tls, pWal)
+ }
+ return rc
+}
+
+func walIndexTryHdr(tls *libc.TLS, pWal uintptr, pChanged uintptr) int32 {
+ bp := tls.Alloc(104)
+ defer tls.Free(104)
+
+ var aHdr uintptr
+
+ libc.AtomicStoreUintptr(&aHdr, walIndexHdr(tls, pWal))
+ libc.X__builtin___memcpy_chk(tls, bp, aHdr, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, bp, 0))
+ walShmBarrier(tls, pWal)
+ libc.X__builtin___memcpy_chk(tls, bp+48, aHdr+1*48, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, bp+48, 0))
+
+ if libc.Xmemcmp(tls, bp, bp+48, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ return 1
+ }
+ if int32((*WalIndexHdr)(unsafe.Pointer(bp)).FisInit) == 0 {
+ return 1
+ }
+ walChecksumBytes(tls, 1, bp, int32(uint64(unsafe.Sizeof(WalIndexHdr{}))-uint64(unsafe.Sizeof([2]U32{}))), uintptr(0), bp+96)
+ if *(*U32)(unsafe.Pointer(bp + 96)) != *(*U32)(unsafe.Pointer(bp + 40)) || *(*U32)(unsafe.Pointer(bp + 96 + 1*4)) != *(*U32)(unsafe.Pointer(bp + 40 + 1*4)) {
+ return 1
+ }
+
+ if libc.Xmemcmp(tls, pWal+72, bp, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ *(*int32)(unsafe.Pointer(pChanged)) = 1
+ libc.X__builtin___memcpy_chk(tls, pWal+72, bp, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+ (*Wal)(unsafe.Pointer(pWal)).FszPage = U32(int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&0xfe00 + int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage)&0x0001<<16)
+
+ }
+
+ return 0
+}
+
+func walIndexReadHdr(tls *libc.TLS, pWal uintptr, pChanged uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var badHdr int32
+
+ rc = walIndexPage(tls, pWal, 0, bp)
+ if rc != SQLITE_OK {
+ if rc == SQLITE_READONLY|int32(5)<<8 {
+ (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable = U8(1)
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_HEAPMEMORY_MODE)
+ *(*int32)(unsafe.Pointer(pChanged)) = 1
+ } else {
+ return rc
+ }
+ } else {
+ }
+
+ badHdr = func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ return walIndexTryHdr(tls, pWal, pChanged)
+ }
+ return 1
+ }()
+
+ if badHdr != 0 {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable) == 0 && int32((*Wal)(unsafe.Pointer(pWal)).FreadOnly)&WAL_SHM_RDONLY != 0 {
+ if SQLITE_OK == libc.AssignInt32(&rc, walLockShared(tls, pWal, WAL_WRITE_LOCK)) {
+ walUnlockShared(tls, pWal, WAL_WRITE_LOCK)
+ rc = SQLITE_READONLY | int32(1)<<8
+ }
+ } else {
+ var bWriteLock int32 = int32((*Wal)(unsafe.Pointer(pWal)).FwriteLock)
+ if bWriteLock != 0 || SQLITE_OK == libc.AssignInt32(&rc, walLockExclusive(tls, pWal, WAL_WRITE_LOCK, 1)) {
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(1)
+ if SQLITE_OK == libc.AssignInt32(&rc, walIndexPage(tls, pWal, 0, bp)) {
+ badHdr = walIndexTryHdr(tls, pWal, pChanged)
+ if badHdr != 0 {
+ rc = walIndexRecover(tls, pWal)
+ *(*int32)(unsafe.Pointer(pChanged)) = 1
+ }
+ }
+ if bWriteLock == 0 {
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(0)
+ walUnlockExclusive(tls, pWal, WAL_WRITE_LOCK, 1)
+ }
+ }
+ }
+ }
+
+ if badHdr == 0 && (*Wal)(unsafe.Pointer(pWal)).Fhdr.FiVersion != U32(WALINDEX_MAX_VERSION) {
+ rc = Xsqlite3CantopenError(tls, 65682)
+ }
+ if (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 {
+ if rc != SQLITE_OK {
+ walIndexClose(tls, pWal, 0)
+ (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable = U8(0)
+
+ if rc == SQLITE_IOERR|int32(2)<<8 {
+ rc = -1
+ }
+ }
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_NORMAL_MODE)
+ }
+
+ return rc
+}
+
+func walBeginShmUnreliable(tls *libc.TLS, pWal uintptr, pChanged uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var iOffset I64
+
+ var aFrame uintptr
+ var szFrame int32
+ var aData uintptr
+
+ var rc int32
+
+ var i int32
+ aFrame = uintptr(0)
+
+ rc = walLockShared(tls, pWal, 3+0)
+ if !(rc != SQLITE_OK) {
+ goto __1
+ }
+ if !(rc == SQLITE_BUSY) {
+ goto __2
+ }
+ rc = -1
+__2:
+ ;
+ goto begin_unreliable_shm_out
+__1:
+ ;
+ (*Wal)(unsafe.Pointer(pWal)).FreadLock = int16(0)
+
+ rc = Xsqlite3OsShmMap(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, 0, int32(uint64(unsafe.Sizeof(Ht_slot(0)))*uint64(HASHTABLE_NPAGE*2)+uint64(HASHTABLE_NPAGE)*uint64(unsafe.Sizeof(U32(0)))), 0, bp)
+
+ if !(rc != SQLITE_READONLY|int32(5)<<8) {
+ goto __3
+ }
+ rc = func() int32 {
+ if rc == SQLITE_READONLY {
+ return -1
+ }
+ return rc
+ }()
+ goto begin_unreliable_shm_out
+__3:
+ ;
+ libc.X__builtin___memcpy_chk(tls, pWal+72, walIndexHdr(tls, pWal), uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+
+ rc = Xsqlite3OsFileSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp+8)
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto begin_unreliable_shm_out
+__4:
+ ;
+ if !(*(*I64)(unsafe.Pointer(bp + 8)) < int64(WAL_HDRSIZE)) {
+ goto __5
+ }
+
+ *(*int32)(unsafe.Pointer(pChanged)) = 1
+ rc = func() int32 {
+ if (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame == U32(0) {
+ return SQLITE_OK
+ }
+ return -1
+ }()
+ goto begin_unreliable_shm_out
+__5:
+ ;
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp+16, WAL_HDRSIZE, int64(0))
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ goto begin_unreliable_shm_out
+__6:
+ ;
+ if !(libc.Xmemcmp(tls, pWal+72+32, bp+16+16, uint64(8)) != 0) {
+ goto __7
+ }
+
+ rc = -1
+ goto begin_unreliable_shm_out
+__7:
+ ;
+ szFrame = int32((*Wal)(unsafe.Pointer(pWal)).FszPage + U32(WAL_FRAME_HDRSIZE))
+ aFrame = Xsqlite3_malloc64(tls, uint64(szFrame))
+ if !(aFrame == uintptr(0)) {
+ goto __8
+ }
+ rc = SQLITE_NOMEM
+ goto begin_unreliable_shm_out
+__8:
+ ;
+ aData = aFrame + 24
+
+ *(*U32)(unsafe.Pointer(bp + 48)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24))
+ *(*U32)(unsafe.Pointer(bp + 48 + 1*4)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4))
+ iOffset = int64(WAL_HDRSIZE) + I64((*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame+U32(1)-U32(1))*I64((*Wal)(unsafe.Pointer(pWal)).FszPage+U32(WAL_FRAME_HDRSIZE))
+__9:
+ if !(iOffset+I64(szFrame) <= *(*I64)(unsafe.Pointer(bp + 8))) {
+ goto __11
+ }
+
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, aFrame, szFrame, iOffset)
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ goto __11
+__12:
+ ;
+ if !!(walDecodeFrame(tls, pWal, bp+56, bp+60, aData, aFrame) != 0) {
+ goto __13
+ }
+ goto __11
+__13:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 60)) != 0) {
+ goto __14
+ }
+ rc = -1
+ goto __11
+__14:
+ ;
+ goto __10
+__10:
+ iOffset = iOffset + I64(szFrame)
+ goto __9
+ goto __11
+__11:
+ ;
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24)) = *(*U32)(unsafe.Pointer(bp + 48))
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = *(*U32)(unsafe.Pointer(bp + 48 + 1*4))
+
+begin_unreliable_shm_out:
+ Xsqlite3_free(tls, aFrame)
+ if !(rc != SQLITE_OK) {
+ goto __15
+ }
+ i = 0
+__16:
+ if !(i < (*Wal)(unsafe.Pointer(pWal)).FnWiData) {
+ goto __18
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData + uintptr(i)*8)) = uintptr(0)
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable = U8(0)
+ Xsqlite3WalEndReadTransaction(tls, pWal)
+ *(*int32)(unsafe.Pointer(pChanged)) = 1
+__15:
+ ;
+ return rc
+}
+
+func walTryBeginRead(tls *libc.TLS, pWal uintptr, pChanged uintptr, useWal int32, cnt int32) int32 {
+ var pInfo uintptr
+ var mxReadMark U32
+ var mxI int32
+ var i int32
+ var rc int32 = SQLITE_OK
+ var mxFrame U32
+
+ if cnt > 5 {
+ var nDelay int32 = 1
+ if cnt > 100 {
+ return SQLITE_PROTOCOL
+ }
+ if cnt >= 10 {
+ nDelay = (cnt - 9) * (cnt - 9) * 39
+ }
+ Xsqlite3OsSleep(tls, (*Wal)(unsafe.Pointer(pWal)).FpVfs, nDelay)
+ }
+
+ if !(useWal != 0) {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable) == 0 {
+ rc = walIndexReadHdr(tls, pWal, pChanged)
+ }
+ if rc == SQLITE_BUSY {
+ if *(*uintptr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FapWiData)) == uintptr(0) {
+ rc = -1
+ } else if SQLITE_OK == libc.AssignInt32(&rc, walLockShared(tls, pWal, WAL_RECOVER_LOCK)) {
+ walUnlockShared(tls, pWal, WAL_RECOVER_LOCK)
+ rc = -1
+ } else if rc == SQLITE_BUSY {
+ rc = SQLITE_BUSY | int32(1)<<8
+ }
+ }
+ if rc != SQLITE_OK {
+ return rc
+ } else if (*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 {
+ return walBeginShmUnreliable(tls, pWal, pChanged)
+ }
+ }
+
+ libc.AtomicStoreUintptr(&pInfo, walCkptInfo(tls, pWal))
+ if !(useWal != 0) && *(*U32)(unsafe.Pointer(pInfo)) == (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame &&
+ ((*Wal)(unsafe.Pointer(pWal)).FpSnapshot == uintptr(0) || (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame == U32(0)) {
+ rc = walLockShared(tls, pWal, 3+0)
+ walShmBarrier(tls, pWal)
+ if rc == SQLITE_OK {
+ if libc.Xmemcmp(tls, walIndexHdr(tls, pWal), pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ walUnlockShared(tls, pWal, 3+0)
+ return -1
+ }
+ (*Wal)(unsafe.Pointer(pWal)).FreadLock = int16(0)
+ return SQLITE_OK
+ } else if rc != SQLITE_BUSY {
+ return rc
+ }
+ }
+
+ mxReadMark = U32(0)
+ mxI = 0
+ mxFrame = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ if (*Wal)(unsafe.Pointer(pWal)).FpSnapshot != 0 && (*WalIndexHdr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FpSnapshot)).FmxFrame < mxFrame {
+ mxFrame = (*WalIndexHdr)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FpSnapshot)).FmxFrame
+ }
+ for i = 1; i < SQLITE_SHM_NLOCK-3; i++ {
+ var thisMark U32 = *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4))
+ if mxReadMark <= thisMark && thisMark <= mxFrame {
+ mxReadMark = thisMark
+ mxI = i
+ }
+ }
+ if int32((*Wal)(unsafe.Pointer(pWal)).FreadOnly)&WAL_SHM_RDONLY == 0 &&
+ (mxReadMark < mxFrame || mxI == 0) {
+ for i = 1; i < SQLITE_SHM_NLOCK-3; i++ {
+ rc = walLockExclusive(tls, pWal, 3+i, 1)
+ if rc == SQLITE_OK {
+ *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) = mxFrame
+ mxReadMark = mxFrame
+ mxI = i
+ walUnlockExclusive(tls, pWal, 3+i, 1)
+ break
+ } else if rc != SQLITE_BUSY {
+ return rc
+ }
+ }
+ }
+ if mxI == 0 {
+ if rc == SQLITE_BUSY {
+ return -1
+ }
+ return SQLITE_READONLY | int32(5)<<8
+ }
+
+ rc = walLockShared(tls, pWal, 3+mxI)
+ if rc != 0 {
+ if rc == SQLITE_BUSY {
+ return -1
+ }
+ return rc
+ }
+
+ (*Wal)(unsafe.Pointer(pWal)).FminFrame = *(*U32)(unsafe.Pointer(pInfo)) + U32(1)
+ walShmBarrier(tls, pWal)
+ if *(*U32)(unsafe.Pointer(pInfo + 4 + uintptr(mxI)*4)) != mxReadMark ||
+ libc.Xmemcmp(tls, walIndexHdr(tls, pWal), pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ walUnlockShared(tls, pWal, 3+mxI)
+ return -1
+ } else {
+ (*Wal)(unsafe.Pointer(pWal)).FreadLock = I16(mxI)
+ }
+ return rc
+}
+
+// Attempt to reduce the value of the WalCkptInfo.nBackfillAttempted
+// variable so that older snapshots can be accessed. To do this, loop
+// through all wal frames from nBackfillAttempted to (nBackfill+1),
+// comparing their content to the corresponding page with the database
+// file, if any. Set nBackfillAttempted to the frame number of the
+// first frame for which the wal file content matches the db file.
+//
+// This is only really safe if the file-system is such that any page
+// writes made by earlier checkpointers were atomic operations, which
+// is not always true. It is also possible that nBackfillAttempted
+// may be left set to a value larger than expected, if a wal frame
+// contains content that duplicate of an earlier version of the same
+// page.
+//
+// SQLITE_OK is returned if successful, or an SQLite error code if an
+// error occurs. It is not an error if nBackfillAttempted cannot be
+// decreased at all.
+func Xsqlite3WalSnapshotRecover(tls *libc.TLS, pWal uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32
+
+ rc = walLockExclusive(tls, pWal, WAL_CKPT_LOCK, 1)
+ if rc == SQLITE_OK {
+ var pInfo uintptr = walCkptInfo(tls, pWal)
+ var szPage int32 = int32((*Wal)(unsafe.Pointer(pWal)).FszPage)
+
+ rc = Xsqlite3OsFileSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, bp)
+ if rc == SQLITE_OK {
+ var pBuf1 uintptr = Xsqlite3_malloc(tls, szPage)
+ var pBuf2 uintptr = Xsqlite3_malloc(tls, szPage)
+ if pBuf1 == uintptr(0) || pBuf2 == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var i U32 = (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted
+ for i = (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted; i > *(*U32)(unsafe.Pointer(pInfo)); i-- {
+ var pgno U32
+ var iDbOff I64
+ var iWalOff I64
+
+ rc = walHashGet(tls, pWal, walFramePage(tls, i), bp+8)
+ if rc != SQLITE_OK {
+ break
+ }
+
+ pgno = *(*U32)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp+8)).FaPgno + uintptr(i-(*WalHashLoc)(unsafe.Pointer(bp+8)).FiZero-U32(1))*4))
+ iDbOff = I64(pgno-U32(1)) * I64(szPage)
+
+ if iDbOff+I64(szPage) <= *(*I64)(unsafe.Pointer(bp)) {
+ iWalOff = int64(WAL_HDRSIZE) + I64(i-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE) + int64(WAL_FRAME_HDRSIZE)
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, pBuf1, szPage, iWalOff)
+
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, pBuf2, szPage, iDbOff)
+ }
+
+ if rc != SQLITE_OK || 0 == libc.Xmemcmp(tls, pBuf1, pBuf2, uint64(szPage)) {
+ break
+ }
+ }
+
+ (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted = i - U32(1)
+ }
+ }
+
+ Xsqlite3_free(tls, pBuf1)
+ Xsqlite3_free(tls, pBuf2)
+ }
+ walUnlockExclusive(tls, pWal, WAL_CKPT_LOCK, 1)
+ }
+
+ return rc
+}
+
+// Begin a read transaction on the database.
+//
+// This routine used to be called sqlite3OpenSnapshot() and with good reason:
+// it takes a snapshot of the state of the WAL and wal-index for the current
+// instant in time. The current thread will continue to use this snapshot.
+// Other threads might append new content to the WAL and wal-index but
+// that extra content is ignored by the current thread.
+//
+// If the database contents have changes since the previous read
+// transaction, then *pChanged is set to 1 before returning. The
+// Pager layer will use this to know that its cache is stale and
+// needs to be flushed.
+func Xsqlite3WalBeginReadTransaction(tls *libc.TLS, pWal uintptr, pChanged uintptr) int32 {
+ var rc int32
+ var cnt int32 = 0
+ var bChanged int32 = 0
+ var pSnapshot uintptr = (*Wal)(unsafe.Pointer(pWal)).FpSnapshot
+
+ if pSnapshot != 0 {
+ if libc.Xmemcmp(tls, pSnapshot, pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ bChanged = 1
+ }
+
+ rc = walLockShared(tls, pWal, WAL_CKPT_LOCK)
+
+ if rc != SQLITE_OK {
+ return rc
+ }
+ (*Wal)(unsafe.Pointer(pWal)).FckptLock = U8(1)
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = rc == -1 {
+ rc = walTryBeginRead(tls, pWal, pChanged, 0, libc.PreIncInt32(&cnt, 1))
+ }
+
+ if rc == SQLITE_OK {
+ if pSnapshot != 0 && libc.Xmemcmp(tls, pSnapshot, pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ var pInfo uintptr = walCkptInfo(tls, pWal)
+
+ if !(libc.Xmemcmp(tls, pSnapshot+32, pWal+72+32, uint64(unsafe.Sizeof([2]U32{}))) != 0) &&
+ (*WalIndexHdr)(unsafe.Pointer(pSnapshot)).FmxFrame >= (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfillAttempted {
+ libc.X__builtin___memcpy_chk(tls, pWal+72, pSnapshot, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+ *(*int32)(unsafe.Pointer(pChanged)) = bChanged
+ } else {
+ rc = SQLITE_ERROR | int32(3)<<8
+ }
+
+ (*Wal)(unsafe.Pointer(pWal)).FminFrame = U32(1)
+
+ if rc != SQLITE_OK {
+ Xsqlite3WalEndReadTransaction(tls, pWal)
+ }
+ }
+ }
+
+ if (*Wal)(unsafe.Pointer(pWal)).FckptLock != 0 {
+ walUnlockShared(tls, pWal, WAL_CKPT_LOCK)
+ (*Wal)(unsafe.Pointer(pWal)).FckptLock = U8(0)
+ }
+ return rc
+}
+
+// Finish with a read transaction. All this does is release the
+// read-lock.
+func Xsqlite3WalEndReadTransaction(tls *libc.TLS, pWal uintptr) {
+ Xsqlite3WalEndWriteTransaction(tls, pWal)
+ if int32((*Wal)(unsafe.Pointer(pWal)).FreadLock) >= 0 {
+ walUnlockShared(tls, pWal, 3+int32((*Wal)(unsafe.Pointer(pWal)).FreadLock))
+ (*Wal)(unsafe.Pointer(pWal)).FreadLock = int16(-1)
+ }
+}
+
+// Search the wal file for page pgno. If found, set *piRead to the frame that
+// contains the page. Otherwise, if pgno is not in the wal file, set *piRead
+// to zero.
+//
+// Return SQLITE_OK if successful, or an error code if an error occurs. If an
+// error does occur, the final value of *piRead is undefined.
+func Xsqlite3WalFindFrame(tls *libc.TLS, pWal uintptr, pgno Pgno, piRead uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var iRead U32 = U32(0)
+ var iLast U32 = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ var iHash int32
+ var iMinHash int32
+
+ if iLast == U32(0) || int32((*Wal)(unsafe.Pointer(pWal)).FreadLock) == 0 && int32((*Wal)(unsafe.Pointer(pWal)).FbShmUnreliable) == 0 {
+ *(*U32)(unsafe.Pointer(piRead)) = U32(0)
+ return SQLITE_OK
+ }
+
+ iMinHash = walFramePage(tls, (*Wal)(unsafe.Pointer(pWal)).FminFrame)
+ for iHash = walFramePage(tls, iLast); iHash >= iMinHash; iHash-- {
+ var iKey int32
+ var nCollide int32
+ var rc int32
+ var iH U32
+
+ rc = walHashGet(tls, pWal, iHash, bp)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ nCollide = HASHTABLE_NPAGE * 2
+ iKey = walHash(tls, pgno)
+ for libc.AssignUint32(&iH, U32(*(*Ht_slot)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaHash + uintptr(iKey)*2)))) != U32(0) {
+ var iFrame U32 = iH + (*WalHashLoc)(unsafe.Pointer(bp)).FiZero
+ if iFrame <= iLast && iFrame >= (*Wal)(unsafe.Pointer(pWal)).FminFrame && *(*U32)(unsafe.Pointer((*WalHashLoc)(unsafe.Pointer(bp)).FaPgno + uintptr(iH-U32(1))*4)) == pgno {
+ iRead = iFrame
+ }
+ if libc.PostDecInt32(&nCollide, 1) == 0 {
+ return Xsqlite3CorruptError(tls, 66419)
+ }
+ iKey = walNextHash(tls, iKey)
+ }
+ if iRead != 0 {
+ break
+ }
+ }
+
+ *(*U32)(unsafe.Pointer(piRead)) = iRead
+ return SQLITE_OK
+}
+
+// Read the contents of frame iRead from the wal file into buffer pOut
+// (which is nOut bytes in size). Return SQLITE_OK if successful, or an
+// error code otherwise.
+func Xsqlite3WalReadFrame(tls *libc.TLS, pWal uintptr, iRead U32, nOut int32, pOut uintptr) int32 {
+ var sz int32
+ var iOffset I64
+ sz = int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage)
+ sz = sz&0xfe00 + sz&0x0001<<16
+
+ iOffset = int64(WAL_HDRSIZE) + I64(iRead-U32(1))*I64(sz+WAL_FRAME_HDRSIZE) + int64(WAL_FRAME_HDRSIZE)
+
+ return Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, pOut, func() int32 {
+ if nOut > sz {
+ return sz
+ }
+ return nOut
+ }(), iOffset)
+}
+
+// Return the size of the database in pages (or zero, if unknown).
+func Xsqlite3WalDbsize(tls *libc.TLS, pWal uintptr) Pgno {
+ if pWal != 0 && int32((*Wal)(unsafe.Pointer(pWal)).FreadLock) >= 0 {
+ return (*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage
+ }
+ return Pgno(0)
+}
+
+// This function starts a write transaction on the WAL.
+//
+// A read transaction must have already been started by a prior call
+// to sqlite3WalBeginReadTransaction().
+//
+// If another thread or process has written into the database since
+// the read transaction was started, then it is not possible for this
+// thread to write as doing so would cause a fork. So this routine
+// returns SQLITE_BUSY in that case and no write transaction is started.
+//
+// There can only be a single writer active at a time.
+func Xsqlite3WalBeginWriteTransaction(tls *libc.TLS, pWal uintptr) int32 {
+ var rc int32
+
+ if (*Wal)(unsafe.Pointer(pWal)).FreadOnly != 0 {
+ return SQLITE_READONLY
+ }
+
+ rc = walLockExclusive(tls, pWal, WAL_WRITE_LOCK, 1)
+ if rc != 0 {
+ return rc
+ }
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(1)
+
+ if libc.Xmemcmp(tls, pWal+72, walIndexHdr(tls, pWal), uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ walUnlockExclusive(tls, pWal, WAL_WRITE_LOCK, 1)
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(0)
+ rc = SQLITE_BUSY | int32(2)<<8
+ }
+
+ return rc
+}
+
+// End a write transaction. The commit has already been done. This
+// routine merely releases the lock.
+func Xsqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) int32 {
+ if (*Wal)(unsafe.Pointer(pWal)).FwriteLock != 0 {
+ walUnlockExclusive(tls, pWal, WAL_WRITE_LOCK, 1)
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(0)
+ (*Wal)(unsafe.Pointer(pWal)).FiReCksum = U32(0)
+ (*Wal)(unsafe.Pointer(pWal)).FtruncateOnCommit = U8(0)
+ }
+ return SQLITE_OK
+}
+
+// If any data has been written (but not committed) to the log file, this
+// function moves the write-pointer back to the start of the transaction.
+//
+// Additionally, the callback function is invoked for each frame written
+// to the WAL since the start of the transaction. If the callback returns
+// other than SQLITE_OK, it is not invoked again and the error code is
+// returned to the caller.
+//
+// Otherwise, if the callback function does not return an error, this
+// function returns SQLITE_OK.
+func Xsqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*Wal)(unsafe.Pointer(pWal)).FwriteLock != 0 {
+ var iMax Pgno = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ var iFrame Pgno
+
+ libc.X__builtin___memcpy_chk(tls, pWal+72, walIndexHdr(tls, pWal), uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+
+ for iFrame = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame + U32(1); rc == SQLITE_OK && iFrame <= iMax; iFrame++ {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, Pgno) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xUndo})).f(tls, pUndoCtx, walFramePgno(tls, pWal, iFrame))
+ }
+ if iMax != (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame {
+ walCleanupHash(tls, pWal)
+ }
+ }
+ return rc
+}
+
+// Argument aWalData must point to an array of WAL_SAVEPOINT_NDATA u32
+// values. This function populates the array with values required to
+// "rollback" the write position of the WAL handle back to the current
+// point in the event of a savepoint rollback (via WalSavepointUndo()).
+func Xsqlite3WalSavepoint(tls *libc.TLS, pWal uintptr, aWalData uintptr) {
+ *(*U32)(unsafe.Pointer(aWalData)) = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ *(*U32)(unsafe.Pointer(aWalData + 1*4)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24))
+ *(*U32)(unsafe.Pointer(aWalData + 2*4)) = *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4))
+ *(*U32)(unsafe.Pointer(aWalData + 3*4)) = (*Wal)(unsafe.Pointer(pWal)).FnCkpt
+}
+
+// Move the write position of the WAL back to the point identified by
+// the values in the aWalData[] array. aWalData must point to an array
+// of WAL_SAVEPOINT_NDATA u32 values that has been previously populated
+// by a call to WalSavepoint().
+func Xsqlite3WalSavepointUndo(tls *libc.TLS, pWal uintptr, aWalData uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if *(*U32)(unsafe.Pointer(aWalData + 3*4)) != (*Wal)(unsafe.Pointer(pWal)).FnCkpt {
+ *(*U32)(unsafe.Pointer(aWalData)) = U32(0)
+ *(*U32)(unsafe.Pointer(aWalData + 3*4)) = (*Wal)(unsafe.Pointer(pWal)).FnCkpt
+ }
+
+ if *(*U32)(unsafe.Pointer(aWalData)) < (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame {
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame = *(*U32)(unsafe.Pointer(aWalData))
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24)) = *(*U32)(unsafe.Pointer(aWalData + 1*4))
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = *(*U32)(unsafe.Pointer(aWalData + 2*4))
+ walCleanupHash(tls, pWal)
+ }
+
+ return rc
+}
+
+func walRestartLog(tls *libc.TLS, pWal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var cnt int32
+
+ if int32((*Wal)(unsafe.Pointer(pWal)).FreadLock) == 0 {
+ var pInfo uintptr = walCkptInfo(tls, pWal)
+
+ if (*WalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill > U32(0) {
+ Xsqlite3_randomness(tls, 4, bp)
+ rc = walLockExclusive(tls, pWal, 3+1, SQLITE_SHM_NLOCK-3-1)
+ if rc == SQLITE_OK {
+ walRestartHdr(tls, pWal, *(*U32)(unsafe.Pointer(bp)))
+ walUnlockExclusive(tls, pWal, 3+1, SQLITE_SHM_NLOCK-3-1)
+ } else if rc != SQLITE_BUSY {
+ return rc
+ }
+ }
+ walUnlockShared(tls, pWal, 3+0)
+ (*Wal)(unsafe.Pointer(pWal)).FreadLock = int16(-1)
+ cnt = 0
+ for __ccgo := true; __ccgo; __ccgo = rc == -1 {
+ rc = walTryBeginRead(tls, pWal, bp+4, 1, libc.PreIncInt32(&cnt, 1))
+ }
+
+ }
+ return rc
+}
+
+// Information about the current state of the WAL file and where
+// the next fsync should occur - passed from sqlite3WalFrames() into
+// walWriteToLog().
+type WalWriter1 = struct {
+ FpWal uintptr
+ FpFd uintptr
+ FiSyncPoint Sqlite3_int64
+ FsyncFlags int32
+ FszPage int32
+}
+
+// Information about the current state of the WAL file and where
+// the next fsync should occur - passed from sqlite3WalFrames() into
+// walWriteToLog().
+type WalWriter = WalWriter1
+
+func walWriteToLog(tls *libc.TLS, p uintptr, pContent uintptr, iAmt int32, iOffset Sqlite3_int64) int32 {
+ var rc int32
+ if iOffset < (*WalWriter)(unsafe.Pointer(p)).FiSyncPoint && iOffset+Sqlite3_int64(iAmt) >= (*WalWriter)(unsafe.Pointer(p)).FiSyncPoint {
+ var iFirstAmt int32 = int32((*WalWriter)(unsafe.Pointer(p)).FiSyncPoint - iOffset)
+ rc = Xsqlite3OsWrite(tls, (*WalWriter)(unsafe.Pointer(p)).FpFd, pContent, iFirstAmt, iOffset)
+ if rc != 0 {
+ return rc
+ }
+ iOffset = iOffset + Sqlite3_int64(iFirstAmt)
+ iAmt = iAmt - iFirstAmt
+ pContent = uintptr(iFirstAmt) + pContent
+
+ rc = Xsqlite3OsSync(tls, (*WalWriter)(unsafe.Pointer(p)).FpFd, (*WalWriter)(unsafe.Pointer(p)).FsyncFlags&0x03)
+ if iAmt == 0 || rc != 0 {
+ return rc
+ }
+ }
+ rc = Xsqlite3OsWrite(tls, (*WalWriter)(unsafe.Pointer(p)).FpFd, pContent, iAmt, iOffset)
+ return rc
+}
+
+func walWriteOneFrame(tls *libc.TLS, p uintptr, pPage uintptr, nTruncate int32, iOffset Sqlite3_int64) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+ var pData uintptr
+
+ pData = (*PgHdr)(unsafe.Pointer(pPage)).FpData
+ walEncodeFrame(tls, (*WalWriter)(unsafe.Pointer(p)).FpWal, (*PgHdr)(unsafe.Pointer(pPage)).Fpgno, uint32(nTruncate), pData, bp)
+ rc = walWriteToLog(tls, p, bp, int32(unsafe.Sizeof([24]U8{})), iOffset)
+ if rc != 0 {
+ return rc
+ }
+
+ rc = walWriteToLog(tls, p, pData, (*WalWriter)(unsafe.Pointer(p)).FszPage, int64(uint64(iOffset)+uint64(unsafe.Sizeof([24]U8{}))))
+ return rc
+}
+
+func walRewriteChecksums(tls *libc.TLS, pWal uintptr, iLast U32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var szPage int32 = int32((*Wal)(unsafe.Pointer(pWal)).FszPage)
+ var rc int32 = SQLITE_OK
+ var aBuf uintptr
+
+ var iRead U32
+ var iCksumOff I64
+
+ aBuf = Xsqlite3_malloc(tls, szPage+WAL_FRAME_HDRSIZE)
+ if aBuf == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+
+ if (*Wal)(unsafe.Pointer(pWal)).FiReCksum == U32(1) {
+ iCksumOff = int64(24)
+ } else {
+ iCksumOff = int64(WAL_HDRSIZE) + I64((*Wal)(unsafe.Pointer(pWal)).FiReCksum-U32(1)-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE) + int64(16)
+ }
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, aBuf, int32(uint64(unsafe.Sizeof(U32(0)))*uint64(2)), iCksumOff)
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24)) = Xsqlite3Get4byte(tls, aBuf)
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = Xsqlite3Get4byte(tls, aBuf+4)
+
+ iRead = (*Wal)(unsafe.Pointer(pWal)).FiReCksum
+ (*Wal)(unsafe.Pointer(pWal)).FiReCksum = U32(0)
+ for ; rc == SQLITE_OK && iRead <= iLast; iRead++ {
+ var iOff I64 = int64(WAL_HDRSIZE) + I64(iRead-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE)
+ rc = Xsqlite3OsRead(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, aBuf, szPage+WAL_FRAME_HDRSIZE, iOff)
+ if rc == SQLITE_OK {
+ var iPgno U32
+ var nDbSize U32
+ iPgno = Xsqlite3Get4byte(tls, aBuf)
+ nDbSize = Xsqlite3Get4byte(tls, aBuf+4)
+
+ walEncodeFrame(tls, pWal, iPgno, nDbSize, aBuf+24, bp)
+ rc = Xsqlite3OsWrite(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp, int32(unsafe.Sizeof([24]U8{})), iOff)
+ }
+ }
+
+ Xsqlite3_free(tls, aBuf)
+ return rc
+}
+
+// Write a set of frames to the log. The caller must hold the write-lock
+// on the log file (obtained using sqlite3WalBeginWriteTransaction()).
+func Xsqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTruncate Pgno, isCommit int32, sync_flags int32) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var rc int32
+ var iFrame U32
+ var p uintptr
+ var pLast uintptr = uintptr(0)
+ var nExtra int32 = 0
+ var szFrame int32
+ var iOffset I64
+
+ var iFirst U32 = U32(0)
+ var pLive uintptr
+
+ pLive = walIndexHdr(tls, pWal)
+ if libc.Xmemcmp(tls, pWal+72, pLive, uint64(unsafe.Sizeof(WalIndexHdr{}))) != 0 {
+ iFirst = (*WalIndexHdr)(unsafe.Pointer(pLive)).FmxFrame + U32(1)
+ }
+
+ if SQLITE_OK != libc.AssignInt32(&rc, walRestartLog(tls, pWal)) {
+ return rc
+ }
+
+ iFrame = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ if iFrame == U32(0) {
+ Xsqlite3Put4byte(tls, bp, uint32(WAL_MAGIC|SQLITE_BIGENDIAN))
+ Xsqlite3Put4byte(tls, bp+4, uint32(WAL_MAX_VERSION))
+ Xsqlite3Put4byte(tls, bp+8, uint32(szPage))
+ Xsqlite3Put4byte(tls, bp+12, (*Wal)(unsafe.Pointer(pWal)).FnCkpt)
+ if (*Wal)(unsafe.Pointer(pWal)).FnCkpt == U32(0) {
+ Xsqlite3_randomness(tls, 8, pWal+72+32)
+ }
+ libc.X__builtin___memcpy_chk(tls, bp+16, pWal+72+32, uint64(8), libc.X__builtin_object_size(tls, bp+16, 0))
+ walChecksumBytes(tls, 1, bp, WAL_HDRSIZE-2*4, uintptr(0), bp+32)
+ Xsqlite3Put4byte(tls, bp+24, *(*U32)(unsafe.Pointer(bp + 32)))
+ Xsqlite3Put4byte(tls, bp+28, *(*U32)(unsafe.Pointer(bp + 32 + 1*4)))
+
+ (*Wal)(unsafe.Pointer(pWal)).FszPage = U32(szPage)
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum = U8(SQLITE_BIGENDIAN)
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24)) = *(*U32)(unsafe.Pointer(bp + 32))
+ *(*U32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = *(*U32)(unsafe.Pointer(bp + 32 + 1*4))
+ (*Wal)(unsafe.Pointer(pWal)).FtruncateOnCommit = U8(1)
+
+ rc = Xsqlite3OsWrite(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, bp, int32(unsafe.Sizeof([32]U8{})), int64(0))
+
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ if (*Wal)(unsafe.Pointer(pWal)).FsyncHeader != 0 {
+ rc = Xsqlite3OsSync(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, sync_flags>>2&0x03)
+ if rc != 0 {
+ return rc
+ }
+ }
+ }
+
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FpWal = pWal
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FpFd = (*Wal)(unsafe.Pointer(pWal)).FpWalFd
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FiSyncPoint = int64(0)
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FsyncFlags = sync_flags
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FszPage = szPage
+ iOffset = int64(WAL_HDRSIZE) + I64(iFrame+U32(1)-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE)
+ szFrame = szPage + WAL_FRAME_HDRSIZE
+
+ for p = pList; p != 0; p = (*PgHdr)(unsafe.Pointer(p)).FpDirty {
+ var nDbSize int32
+
+ if iFirst != 0 && ((*PgHdr)(unsafe.Pointer(p)).FpDirty != 0 || isCommit == 0) {
+ *(*U32)(unsafe.Pointer(bp + 40)) = U32(0)
+ Xsqlite3WalFindFrame(tls, pWal, (*PgHdr)(unsafe.Pointer(p)).Fpgno, bp+40)
+
+ if *(*U32)(unsafe.Pointer(bp + 40)) >= iFirst {
+ var iOff I64 = int64(WAL_HDRSIZE) + I64(*(*U32)(unsafe.Pointer(bp + 40))-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE) + int64(WAL_FRAME_HDRSIZE)
+ var pData uintptr
+ if (*Wal)(unsafe.Pointer(pWal)).FiReCksum == U32(0) || *(*U32)(unsafe.Pointer(bp + 40)) < (*Wal)(unsafe.Pointer(pWal)).FiReCksum {
+ (*Wal)(unsafe.Pointer(pWal)).FiReCksum = *(*U32)(unsafe.Pointer(bp + 40))
+ }
+ pData = (*PgHdr)(unsafe.Pointer(p)).FpData
+ rc = Xsqlite3OsWrite(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd, pData, szPage, iOff)
+ if rc != 0 {
+ return rc
+ }
+ *(*U16)(unsafe.Pointer(p + 52)) &= libc.Uint16FromInt32(libc.CplInt32(PGHDR_WAL_APPEND))
+ continue
+ }
+ }
+
+ iFrame++
+
+ if isCommit != 0 && (*PgHdr)(unsafe.Pointer(p)).FpDirty == uintptr(0) {
+ nDbSize = int32(nTruncate)
+ } else {
+ nDbSize = 0
+ }
+ rc = walWriteOneFrame(tls, bp+48, p, nDbSize, iOffset)
+ if rc != 0 {
+ return rc
+ }
+ pLast = p
+ iOffset = iOffset + I64(szFrame)
+ *(*U16)(unsafe.Pointer(p + 52)) |= U16(PGHDR_WAL_APPEND)
+ }
+
+ if isCommit != 0 && (*Wal)(unsafe.Pointer(pWal)).FiReCksum != 0 {
+ rc = walRewriteChecksums(tls, pWal, iFrame)
+ if rc != 0 {
+ return rc
+ }
+ }
+
+ if isCommit != 0 && sync_flags&0x03 != 0 {
+ var bSync int32 = 1
+ if (*Wal)(unsafe.Pointer(pWal)).FpadToSectorBoundary != 0 {
+ var sectorSize int32 = Xsqlite3SectorSize(tls, (*Wal)(unsafe.Pointer(pWal)).FpWalFd)
+ (*WalWriter)(unsafe.Pointer(bp + 48)).FiSyncPoint = (iOffset + I64(sectorSize) - int64(1)) / I64(sectorSize) * I64(sectorSize)
+ bSync = libc.Bool32((*WalWriter)(unsafe.Pointer(bp+48)).FiSyncPoint == iOffset)
+
+ for iOffset < (*WalWriter)(unsafe.Pointer(bp+48)).FiSyncPoint {
+ rc = walWriteOneFrame(tls, bp+48, pLast, int32(nTruncate), iOffset)
+ if rc != 0 {
+ return rc
+ }
+ iOffset = iOffset + I64(szFrame)
+ nExtra++
+
+ }
+ }
+ if bSync != 0 {
+ rc = Xsqlite3OsSync(tls, (*WalWriter)(unsafe.Pointer(bp+48)).FpFd, sync_flags&0x03)
+ }
+ }
+
+ if isCommit != 0 && (*Wal)(unsafe.Pointer(pWal)).FtruncateOnCommit != 0 && (*Wal)(unsafe.Pointer(pWal)).FmxWalSize >= int64(0) {
+ var sz I64 = (*Wal)(unsafe.Pointer(pWal)).FmxWalSize
+ if int64(WAL_HDRSIZE)+I64(iFrame+U32(nExtra)+U32(1)-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE) > (*Wal)(unsafe.Pointer(pWal)).FmxWalSize {
+ sz = int64(WAL_HDRSIZE) + I64(iFrame+U32(nExtra)+U32(1)-U32(1))*I64(szPage+WAL_FRAME_HDRSIZE)
+ }
+ walLimitSize(tls, pWal, sz)
+ (*Wal)(unsafe.Pointer(pWal)).FtruncateOnCommit = U8(0)
+ }
+
+ iFrame = (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame
+ for p = pList; p != 0 && rc == SQLITE_OK; p = (*PgHdr)(unsafe.Pointer(p)).FpDirty {
+ if int32((*PgHdr)(unsafe.Pointer(p)).Fflags)&PGHDR_WAL_APPEND == 0 {
+ continue
+ }
+ iFrame++
+ rc = walIndexAppend(tls, pWal, iFrame, (*PgHdr)(unsafe.Pointer(p)).Fpgno)
+ }
+
+ for rc == SQLITE_OK && nExtra > 0 {
+ iFrame++
+ nExtra--
+ rc = walIndexAppend(tls, pWal, iFrame, (*PgHdr)(unsafe.Pointer(pLast)).Fpgno)
+ }
+
+ if rc == SQLITE_OK {
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FszPage = U16(szPage&0xff00 | szPage>>16)
+
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame = iFrame
+ if isCommit != 0 {
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FiChange++
+ (*Wal)(unsafe.Pointer(pWal)).Fhdr.FnPage = nTruncate
+ }
+
+ if isCommit != 0 {
+ walIndexWriteHdr(tls, pWal)
+ (*Wal)(unsafe.Pointer(pWal)).FiCallback = iFrame
+ }
+ }
+
+ return rc
+}
+
+// This routine is called to implement sqlite3_wal_checkpoint() and
+// related interfaces.
+//
+// Obtain a CHECKPOINT lock and then backfill as much information as
+// we can from WAL into the database.
+//
+// If parameter xBusy is not NULL, it is a pointer to a busy-handler
+// callback. In this case this function runs a blocking checkpoint.
+func Xsqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var eMode2 int32 = eMode
+ var xBusy2 uintptr = xBusy
+
+ if (*Wal)(unsafe.Pointer(pWal)).FreadOnly != 0 {
+ return SQLITE_READONLY
+ }
+
+ rc = walLockExclusive(tls, pWal, WAL_CKPT_LOCK, 1)
+
+ if rc == SQLITE_OK {
+ (*Wal)(unsafe.Pointer(pWal)).FckptLock = U8(1)
+
+ if eMode != SQLITE_CHECKPOINT_PASSIVE {
+ rc = walBusyLock(tls, pWal, xBusy2, pBusyArg, WAL_WRITE_LOCK, 1)
+ if rc == SQLITE_OK {
+ (*Wal)(unsafe.Pointer(pWal)).FwriteLock = U8(1)
+ } else if rc == SQLITE_BUSY {
+ eMode2 = SQLITE_CHECKPOINT_PASSIVE
+ xBusy2 = uintptr(0)
+ rc = SQLITE_OK
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = walIndexReadHdr(tls, pWal, bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) != 0 && (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Wal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= 3 {
+ Xsqlite3OsUnfetch(tls, (*Wal)(unsafe.Pointer(pWal)).FpDbFd, int64(0), uintptr(0))
+ }
+ }
+
+ if rc == SQLITE_OK {
+ if (*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame != 0 && walPagesize(tls, pWal) != nBuf {
+ rc = Xsqlite3CorruptError(tls, 67138)
+ } else {
+ rc = walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf)
+ }
+
+ if rc == SQLITE_OK || rc == SQLITE_BUSY {
+ if pnLog != 0 {
+ *(*int32)(unsafe.Pointer(pnLog)) = int32((*Wal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame)
+ }
+ if pnCkpt != 0 {
+ *(*int32)(unsafe.Pointer(pnCkpt)) = int32((*WalCkptInfo)(unsafe.Pointer(walCkptInfo(tls, pWal))).FnBackfill)
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ libc.X__builtin___memset_chk(tls, pWal+72, 0, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pWal+72, 0))
+ }
+
+ Xsqlite3WalEndWriteTransaction(tls, pWal)
+ if (*Wal)(unsafe.Pointer(pWal)).FckptLock != 0 {
+ walUnlockExclusive(tls, pWal, WAL_CKPT_LOCK, 1)
+ (*Wal)(unsafe.Pointer(pWal)).FckptLock = U8(0)
+ }
+
+ return func() int32 {
+ if rc == SQLITE_OK && eMode != eMode2 {
+ return SQLITE_BUSY
+ }
+ return rc
+ }()
+}
+
+// Return the value to pass to a sqlite3_wal_hook callback, the
+// number of frames in the WAL at the point of the last commit since
+// sqlite3WalCallback() was called. If no commits have occurred since
+// the last call, then return 0.
+func Xsqlite3WalCallback(tls *libc.TLS, pWal uintptr) int32 {
+ var ret U32 = U32(0)
+ if pWal != 0 {
+ ret = (*Wal)(unsafe.Pointer(pWal)).FiCallback
+ (*Wal)(unsafe.Pointer(pWal)).FiCallback = U32(0)
+ }
+ return int32(ret)
+}
+
+// This function is called to change the WAL subsystem into or out
+// of locking_mode=EXCLUSIVE.
+//
+// If op is zero, then attempt to change from locking_mode=EXCLUSIVE
+// into locking_mode=NORMAL. This means that we must acquire a lock
+// on the pWal->readLock byte. If the WAL is already in locking_mode=NORMAL
+// or if the acquisition of the lock fails, then return 0. If the
+// transition out of exclusive-mode is successful, return 1. This
+// operation must occur while the pager is still holding the exclusive
+// lock on the main database file.
+//
+// If op is one, then change from locking_mode=NORMAL into
+// locking_mode=EXCLUSIVE. This means that the pWal->readLock must
+// be released. Return 1 if the transition is made and 0 if the
+// WAL is already in exclusive-locking mode - meaning that this
+// routine is a no-op. The pager must already hold the exclusive lock
+// on the main database file before invoking this operation.
+//
+// If op is negative, then do a dry-run of the op==1 case but do
+// not actually change anything. The pager uses this to see if it
+// should acquire the database exclusive lock prior to invoking
+// the op==1 case.
+func Xsqlite3WalExclusiveMode(tls *libc.TLS, pWal uintptr, op int32) int32 {
+ var rc int32
+
+ if op == 0 {
+ if int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) != WAL_NORMAL_MODE {
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_NORMAL_MODE)
+ if walLockShared(tls, pWal, 3+int32((*Wal)(unsafe.Pointer(pWal)).FreadLock)) != SQLITE_OK {
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_EXCLUSIVE_MODE)
+ }
+ rc = libc.Bool32(int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE)
+ } else {
+ rc = 0
+ }
+ } else if op > 0 {
+ walUnlockShared(tls, pWal, 3+int32((*Wal)(unsafe.Pointer(pWal)).FreadLock))
+ (*Wal)(unsafe.Pointer(pWal)).FexclusiveMode = U8(WAL_EXCLUSIVE_MODE)
+ rc = 1
+ } else {
+ rc = libc.Bool32(int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_NORMAL_MODE)
+ }
+ return rc
+}
+
+// Return true if the argument is non-NULL and the WAL module is using
+// heap-memory for the wal-index. Otherwise, if the argument is NULL or the
+// WAL module is using shared-memory, return false.
+func Xsqlite3WalHeapMemory(tls *libc.TLS, pWal uintptr) int32 {
+ return libc.Bool32(pWal != 0 && int32((*Wal)(unsafe.Pointer(pWal)).FexclusiveMode) == WAL_HEAPMEMORY_MODE)
+}
+
+// Create a snapshot object. The content of a snapshot is opaque to
+// every other subsystem, so the WAL module can put whatever it needs
+// in the object.
+func Xsqlite3WalSnapshotGet(tls *libc.TLS, pWal uintptr, ppSnapshot uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pRet uintptr
+
+ if libc.Xmemcmp(tls, pWal+72+24, uintptr(unsafe.Pointer(&aZero)), uint64(16)) == 0 {
+ *(*uintptr)(unsafe.Pointer(ppSnapshot)) = uintptr(0)
+ return SQLITE_ERROR
+ }
+ pRet = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(WalIndexHdr{})))
+ if pRet == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pRet, pWal+72, uint64(unsafe.Sizeof(WalIndexHdr{})), libc.X__builtin_object_size(tls, pRet, 0))
+ *(*uintptr)(unsafe.Pointer(ppSnapshot)) = pRet
+ }
+
+ return rc
+}
+
+var aZero = [4]U32{U32(0), U32(0), U32(0), U32(0)}
+
+// Try to open on pSnapshot when the next read-transaction starts
+func Xsqlite3WalSnapshotOpen(tls *libc.TLS, pWal uintptr, pSnapshot uintptr) {
+ (*Wal)(unsafe.Pointer(pWal)).FpSnapshot = pSnapshot
+}
+
+// Return a +ve value if snapshot p1 is newer than p2. A -ve value if
+// p1 is older than p2 and zero if p1 and p2 are the same snapshot.
+func Xsqlite3_snapshot_cmp(tls *libc.TLS, p1 uintptr, p2 uintptr) int32 {
+ var pHdr1 uintptr = p1
+ var pHdr2 uintptr = p2
+
+ if *(*U32)(unsafe.Pointer(pHdr1 + 32)) < *(*U32)(unsafe.Pointer(pHdr2 + 32)) {
+ return -1
+ }
+ if *(*U32)(unsafe.Pointer(pHdr1 + 32)) > *(*U32)(unsafe.Pointer(pHdr2 + 32)) {
+ return +1
+ }
+ if (*WalIndexHdr)(unsafe.Pointer(pHdr1)).FmxFrame < (*WalIndexHdr)(unsafe.Pointer(pHdr2)).FmxFrame {
+ return -1
+ }
+ if (*WalIndexHdr)(unsafe.Pointer(pHdr1)).FmxFrame > (*WalIndexHdr)(unsafe.Pointer(pHdr2)).FmxFrame {
+ return +1
+ }
+ return 0
+}
+
+// The caller currently has a read transaction open on the database.
+// This function takes a SHARED lock on the CHECKPOINTER slot and then
+// checks if the snapshot passed as the second argument is still
+// available. If so, SQLITE_OK is returned.
+//
+// If the snapshot is not available, SQLITE_ERROR is returned. Or, if
+// the CHECKPOINTER lock cannot be obtained, SQLITE_BUSY. If any error
+// occurs (any value other than SQLITE_OK is returned), the CHECKPOINTER
+// lock is released before returning.
+func Xsqlite3WalSnapshotCheck(tls *libc.TLS, pWal uintptr, pSnapshot uintptr) int32 {
+ var rc int32
+ rc = walLockShared(tls, pWal, WAL_CKPT_LOCK)
+ if rc == SQLITE_OK {
+ var pNew uintptr = pSnapshot
+ if libc.Xmemcmp(tls, pNew+32, pWal+72+32, uint64(unsafe.Sizeof([2]U32{}))) != 0 ||
+ (*WalIndexHdr)(unsafe.Pointer(pNew)).FmxFrame < (*WalCkptInfo)(unsafe.Pointer(walCkptInfo(tls, pWal))).FnBackfillAttempted {
+ rc = SQLITE_ERROR | int32(3)<<8
+ walUnlockShared(tls, pWal, WAL_CKPT_LOCK)
+ }
+ }
+ return rc
+}
+
+// Release a lock obtained by an earlier successful call to
+// sqlite3WalSnapshotCheck().
+func Xsqlite3WalSnapshotUnlock(tls *libc.TLS, pWal uintptr) {
+ walUnlockShared(tls, pWal, WAL_CKPT_LOCK)
+}
+
+// Return the sqlite3_file object for the WAL file
+func Xsqlite3WalFile(tls *libc.TLS, pWal uintptr) uintptr {
+ return (*Wal)(unsafe.Pointer(pWal)).FpWalFd
+}
+
+// Forward declarations
+type MemPage1 = struct {
+ FisInit U8
+ FintKey U8
+ FintKeyLeaf U8
+ F__ccgo_pad1 [1]byte
+ Fpgno Pgno
+ Fleaf U8
+ FhdrOffset U8
+ FchildPtrSize U8
+ Fmax1bytePayload U8
+ FnOverflow U8
+ F__ccgo_pad2 [1]byte
+ FmaxLocal U16
+ FminLocal U16
+ FcellOffset U16
+ FnFree int32
+ FnCell U16
+ FmaskPage U16
+ FaiOvfl [4]U16
+ F__ccgo_pad3 [4]byte
+ FapOvfl [4]uintptr
+ FpBt uintptr
+ FaData uintptr
+ FaDataEnd uintptr
+ FaCellIdx uintptr
+ FaDataOfst uintptr
+ FpDbPage uintptr
+ FxCellSize uintptr
+ FxParseCell uintptr
+}
+
+// Forward declarations
+type MemPage = MemPage1
+type BtLock1 = struct {
+ FpBtree uintptr
+ FiTable Pgno
+ FeLock U8
+ F__ccgo_pad1 [3]byte
+ FpNext uintptr
+}
+
+type BtLock = BtLock1
+type CellInfo1 = struct {
+ FnKey I64
+ FpPayload uintptr
+ FnPayload U32
+ FnLocal U16
+ FnSize U16
+}
+
+type CellInfo = CellInfo1
+
+// This structure is passed around through all the PRAGMA integrity_check
+// checking routines in order to keep track of some global state information.
+//
+// The aRef[] array is allocated so that there is 1 bit for each page in
+// the database. As the integrity-check proceeds, for each page used in
+// the database the corresponding bit is set. This allows integrity-check to
+// detect pages that are used twice and orphaned pages (both of which
+// indicate corruption).
+type IntegrityCk1 = struct {
+ FpBt uintptr
+ FpPager uintptr
+ FaPgRef uintptr
+ FnPage Pgno
+ FmxErr int32
+ FnErr int32
+ Frc int32
+ FnStep U32
+ F__ccgo_pad1 [4]byte
+ FzPfx uintptr
+ Fv1 Pgno
+ Fv2 int32
+ FerrMsg StrAccum
+ Fheap uintptr
+ Fdb uintptr
+}
+
+// This structure is passed around through all the PRAGMA integrity_check
+// checking routines in order to keep track of some global state information.
+//
+// The aRef[] array is allocated so that there is 1 bit for each page in
+// the database. As the integrity-check proceeds, for each page used in
+// the database the corresponding bit is set. This allows integrity-check to
+// detect pages that are used twice and orphaned pages (both of which
+// indicate corruption).
+type IntegrityCk = IntegrityCk1
+
+func lockBtreeMutex(tls *libc.TLS, p uintptr) {
+ Xsqlite3_mutex_enter(tls, (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).Fmutex)
+ (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).Fdb = (*Btree)(unsafe.Pointer(p)).Fdb
+ (*Btree)(unsafe.Pointer(p)).Flocked = U8(1)
+}
+
+func unlockBtreeMutex(tls *libc.TLS, p uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3_mutex_leave(tls, (*BtShared)(unsafe.Pointer(pBt)).Fmutex)
+ (*Btree)(unsafe.Pointer(p)).Flocked = U8(0)
+}
+
+// Enter a mutex on the given BTree object.
+//
+// If the object is not sharable, then no mutex is ever required
+// and this routine is a no-op. The underlying mutex is non-recursive.
+// But we keep a reference count in Btree.wantToLock so the behavior
+// of this interface is recursive.
+//
+// To avoid deadlocks, multiple Btrees are locked in the same order
+// by all database connections. The p->pNext is a list of other
+// Btrees belonging to the same database connection as the p Btree
+// which need to be locked after p. If we cannot get a lock on
+// p, then first unlock all of the others on p->pNext, then wait
+// for the lock to become available on p, then relock all of the
+// subsequent Btrees that desire a lock.
+func Xsqlite3BtreeEnter(tls *libc.TLS, p uintptr) {
+ if !(int32((*Btree)(unsafe.Pointer(p)).Fsharable) != 0) {
+ return
+ }
+ (*Btree)(unsafe.Pointer(p)).FwantToLock++
+ if (*Btree)(unsafe.Pointer(p)).Flocked != 0 {
+ return
+ }
+ btreeLockCarefully(tls, p)
+}
+
+func btreeLockCarefully(tls *libc.TLS, p uintptr) {
+ var pLater uintptr
+
+ if Xsqlite3_mutex_try(tls, (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).Fmutex) == SQLITE_OK {
+ (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).Fdb = (*Btree)(unsafe.Pointer(p)).Fdb
+ (*Btree)(unsafe.Pointer(p)).Flocked = U8(1)
+ return
+ }
+
+ for pLater = (*Btree)(unsafe.Pointer(p)).FpNext; pLater != 0; pLater = (*Btree)(unsafe.Pointer(pLater)).FpNext {
+ if (*Btree)(unsafe.Pointer(pLater)).Flocked != 0 {
+ unlockBtreeMutex(tls, pLater)
+ }
+ }
+ lockBtreeMutex(tls, p)
+ for pLater = (*Btree)(unsafe.Pointer(p)).FpNext; pLater != 0; pLater = (*Btree)(unsafe.Pointer(pLater)).FpNext {
+ if (*Btree)(unsafe.Pointer(pLater)).FwantToLock != 0 {
+ lockBtreeMutex(tls, pLater)
+ }
+ }
+}
+
+// Exit the recursive mutex on a Btree.
+func Xsqlite3BtreeLeave(tls *libc.TLS, p uintptr) {
+ if (*Btree)(unsafe.Pointer(p)).Fsharable != 0 {
+ (*Btree)(unsafe.Pointer(p)).FwantToLock--
+ if (*Btree)(unsafe.Pointer(p)).FwantToLock == 0 {
+ unlockBtreeMutex(tls, p)
+ }
+ }
+}
+
+func btreeEnterAll(tls *libc.TLS, db uintptr) {
+ var i int32
+ var skipOk int32 = 1
+ var p uintptr
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ p = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if p != 0 && (*Btree)(unsafe.Pointer(p)).Fsharable != 0 {
+ Xsqlite3BtreeEnter(tls, p)
+ skipOk = 0
+ }
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache = U8(skipOk)
+}
+
+func Xsqlite3BtreeEnterAll(tls *libc.TLS, db uintptr) {
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache) == 0 {
+ btreeEnterAll(tls, db)
+ }
+}
+
+func btreeLeaveAll(tls *libc.TLS, db uintptr) {
+ var i int32
+ var p uintptr
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ p = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if p != 0 {
+ Xsqlite3BtreeLeave(tls, p)
+ }
+ }
+}
+
+func Xsqlite3BtreeLeaveAll(tls *libc.TLS, db uintptr) {
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache) == 0 {
+ btreeLeaveAll(tls, db)
+ }
+}
+
+// Enter a mutex on a Btree given a cursor owned by that Btree.
+//
+// These entry points are used by incremental I/O only. Enter() is required
+// any time OMIT_SHARED_CACHE is not defined, regardless of whether or not
+// the build is threadsafe. Leave() is only required by threadsafe builds.
+func Xsqlite3BtreeEnterCursor(tls *libc.TLS, pCur uintptr) {
+ Xsqlite3BtreeEnter(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpBtree)
+}
+
+func Xsqlite3BtreeLeaveCursor(tls *libc.TLS, pCur uintptr) {
+ Xsqlite3BtreeLeave(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpBtree)
+}
+
+var zMagicHeader = *(*[16]int8)(unsafe.Pointer(ts + 4436))
+
+var sqlite3SharedCacheList uintptr = uintptr(0)
+
+// Enable or disable the shared pager and schema features.
+//
+// This routine has no effect on existing database connections.
+// The shared cache setting effects only future calls to
+// sqlite3_open(), sqlite3_open16(), or sqlite3_open_v2().
+func Xsqlite3_enable_shared_cache(tls *libc.TLS, enable int32) int32 {
+ Xsqlite3Config.FsharedCacheEnabled = enable
+ return SQLITE_OK
+}
+
+func querySharedCacheTableLock(tls *libc.TLS, p uintptr, iTab Pgno, eLock U8) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var pIter uintptr
+
+ if !(int32((*Btree)(unsafe.Pointer(p)).Fsharable) != 0) {
+ return SQLITE_OK
+ }
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FpWriter != p && int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_EXCLUSIVE != 0 {
+ Xsqlite3ConnectionBlocked(tls, (*Btree)(unsafe.Pointer(p)).Fdb, (*Btree)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpWriter)).Fdb)
+ return SQLITE_LOCKED | int32(1)<<8
+ }
+
+ for pIter = (*BtShared)(unsafe.Pointer(pBt)).FpLock; pIter != 0; pIter = (*BtLock)(unsafe.Pointer(pIter)).FpNext {
+ if (*BtLock)(unsafe.Pointer(pIter)).FpBtree != p && (*BtLock)(unsafe.Pointer(pIter)).FiTable == iTab && int32((*BtLock)(unsafe.Pointer(pIter)).FeLock) != int32(eLock) {
+ Xsqlite3ConnectionBlocked(tls, (*Btree)(unsafe.Pointer(p)).Fdb, (*Btree)(unsafe.Pointer((*BtLock)(unsafe.Pointer(pIter)).FpBtree)).Fdb)
+ if int32(eLock) == WRITE_LOCK {
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_PENDING)
+ }
+ return SQLITE_LOCKED | int32(1)<<8
+ }
+ }
+ return SQLITE_OK
+}
+
+func setSharedCacheTableLock(tls *libc.TLS, p uintptr, iTable Pgno, eLock U8) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var pLock uintptr = uintptr(0)
+ var pIter uintptr
+
+ for pIter = (*BtShared)(unsafe.Pointer(pBt)).FpLock; pIter != 0; pIter = (*BtLock)(unsafe.Pointer(pIter)).FpNext {
+ if (*BtLock)(unsafe.Pointer(pIter)).FiTable == iTable && (*BtLock)(unsafe.Pointer(pIter)).FpBtree == p {
+ pLock = pIter
+ break
+ }
+ }
+
+ if !(pLock != 0) {
+ pLock = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(BtLock{})))
+ if !(pLock != 0) {
+ return SQLITE_NOMEM
+ }
+ (*BtLock)(unsafe.Pointer(pLock)).FiTable = iTable
+ (*BtLock)(unsafe.Pointer(pLock)).FpBtree = p
+ (*BtLock)(unsafe.Pointer(pLock)).FpNext = (*BtShared)(unsafe.Pointer(pBt)).FpLock
+ (*BtShared)(unsafe.Pointer(pBt)).FpLock = pLock
+ }
+
+ if int32(eLock) > int32((*BtLock)(unsafe.Pointer(pLock)).FeLock) {
+ (*BtLock)(unsafe.Pointer(pLock)).FeLock = eLock
+ }
+
+ return SQLITE_OK
+}
+
+func clearAllSharedCacheTableLocks(tls *libc.TLS, p uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var ppIter uintptr = pBt + 120
+
+ for *(*uintptr)(unsafe.Pointer(ppIter)) != 0 {
+ var pLock uintptr = *(*uintptr)(unsafe.Pointer(ppIter))
+
+ if (*BtLock)(unsafe.Pointer(pLock)).FpBtree == p {
+ *(*uintptr)(unsafe.Pointer(ppIter)) = (*BtLock)(unsafe.Pointer(pLock)).FpNext
+
+ if (*BtLock)(unsafe.Pointer(pLock)).FiTable != Pgno(1) {
+ Xsqlite3_free(tls, pLock)
+ }
+ } else {
+ ppIter = pLock + 16
+ }
+ }
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FpWriter == p {
+ (*BtShared)(unsafe.Pointer(pBt)).FpWriter = uintptr(0)
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_EXCLUSIVE | BTS_PENDING))
+ } else if (*BtShared)(unsafe.Pointer(pBt)).FnTransaction == 2 {
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_PENDING))
+ }
+}
+
+func downgradeAllSharedCacheTableLocks(tls *libc.TLS, p uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ if (*BtShared)(unsafe.Pointer(pBt)).FpWriter == p {
+ var pLock uintptr
+ (*BtShared)(unsafe.Pointer(pBt)).FpWriter = uintptr(0)
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_EXCLUSIVE | BTS_PENDING))
+ for pLock = (*BtShared)(unsafe.Pointer(pBt)).FpLock; pLock != 0; pLock = (*BtLock)(unsafe.Pointer(pLock)).FpNext {
+ (*BtLock)(unsafe.Pointer(pLock)).FeLock = U8(READ_LOCK)
+ }
+ }
+}
+
+func invalidateAllOverflowCache(tls *libc.TLS, pBt uintptr) {
+ var p uintptr
+
+ for p = (*BtShared)(unsafe.Pointer(pBt)).FpCursor; p != 0; p = (*BtCursor)(unsafe.Pointer(p)).FpNext {
+ *(*U8)(unsafe.Pointer(p + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidOvfl))
+ }
+}
+
+func invalidateIncrblobCursors(tls *libc.TLS, pBtree uintptr, pgnoRoot Pgno, iRow I64, isClearTable int32) {
+ var p uintptr
+
+ (*Btree)(unsafe.Pointer(pBtree)).FhasIncrblobCur = U8(0)
+ for p = (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(pBtree)).FpBt)).FpCursor; p != 0; p = (*BtCursor)(unsafe.Pointer(p)).FpNext {
+ if int32((*BtCursor)(unsafe.Pointer(p)).FcurFlags)&BTCF_Incrblob != 0 {
+ (*Btree)(unsafe.Pointer(pBtree)).FhasIncrblobCur = U8(1)
+ if (*BtCursor)(unsafe.Pointer(p)).FpgnoRoot == pgnoRoot && (isClearTable != 0 || (*BtCursor)(unsafe.Pointer(p)).Finfo.FnKey == iRow) {
+ (*BtCursor)(unsafe.Pointer(p)).FeState = U8(CURSOR_INVALID)
+ }
+ }
+ }
+}
+
+func btreeSetHasContent(tls *libc.TLS, pBt uintptr, pgno Pgno) int32 {
+ var rc int32 = SQLITE_OK
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FpHasContent) != 0) {
+ (*BtShared)(unsafe.Pointer(pBt)).FpHasContent = Xsqlite3BitvecCreate(tls, (*BtShared)(unsafe.Pointer(pBt)).FnPage)
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FpHasContent) != 0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ if rc == SQLITE_OK && pgno <= Xsqlite3BitvecSize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpHasContent) {
+ rc = Xsqlite3BitvecSet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpHasContent, pgno)
+ }
+ return rc
+}
+
+func btreeGetHasContent(tls *libc.TLS, pBt uintptr, pgno Pgno) int32 {
+ var p uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpHasContent
+ return libc.Bool32(p != 0 && (pgno > Xsqlite3BitvecSize(tls, p) || Xsqlite3BitvecTestNotNull(tls, p, pgno) != 0))
+}
+
+func btreeClearHasContent(tls *libc.TLS, pBt uintptr) {
+ Xsqlite3BitvecDestroy(tls, (*BtShared)(unsafe.Pointer(pBt)).FpHasContent)
+ (*BtShared)(unsafe.Pointer(pBt)).FpHasContent = uintptr(0)
+}
+
+func btreeReleaseAllCursorPages(tls *libc.TLS, pCur uintptr) {
+ var i int32
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) >= 0 {
+ for i = 0; i < int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage); i++ {
+ releasePageNotNull(tls, *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(i)*8)))
+ }
+ releasePageNotNull(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpPage)
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage = int8(-1)
+ }
+}
+
+func saveCursorKey(tls *libc.TLS, pCur uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*BtCursor)(unsafe.Pointer(pCur)).FcurIntKey != 0 {
+ (*BtCursor)(unsafe.Pointer(pCur)).FnKey = Xsqlite3BtreeIntegerKey(tls, pCur)
+ } else {
+ var pKey uintptr
+ (*BtCursor)(unsafe.Pointer(pCur)).FnKey = I64(Xsqlite3BtreePayloadSize(tls, pCur))
+ pKey = Xsqlite3Malloc(tls, uint64((*BtCursor)(unsafe.Pointer(pCur)).FnKey+int64(9)+int64(8)))
+ if pKey != 0 {
+ rc = Xsqlite3BtreePayload(tls, pCur, uint32(0), uint32(int32((*BtCursor)(unsafe.Pointer(pCur)).FnKey)), pKey)
+ if rc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, pKey+uintptr((*BtCursor)(unsafe.Pointer(pCur)).FnKey), 0, uint64(9+8), libc.X__builtin_object_size(tls, pKey+uintptr((*BtCursor)(unsafe.Pointer(pCur)).FnKey), 0))
+ (*BtCursor)(unsafe.Pointer(pCur)).FpKey = pKey
+ } else {
+ Xsqlite3_free(tls, pKey)
+ }
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+
+ return rc
+}
+
+func saveCursorPosition(tls *libc.TLS, pCur uintptr) int32 {
+ var rc int32
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_Pinned != 0 {
+ return SQLITE_CONSTRAINT | int32(11)<<8
+ }
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_SKIPNEXT {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_VALID)
+ } else {
+ (*BtCursor)(unsafe.Pointer(pCur)).FskipNext = 0
+ }
+
+ rc = saveCursorKey(tls, pCur)
+ if rc == SQLITE_OK {
+ btreeReleaseAllCursorPages(tls, pCur)
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_REQUIRESEEK)
+ }
+
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey | BTCF_ValidOvfl | BTCF_AtLast))
+ return rc
+}
+
+func saveAllCursors(tls *libc.TLS, pBt uintptr, iRoot Pgno, pExcept uintptr) int32 {
+ var p uintptr
+
+ for p = (*BtShared)(unsafe.Pointer(pBt)).FpCursor; p != 0; p = (*BtCursor)(unsafe.Pointer(p)).FpNext {
+ if p != pExcept && (Pgno(0) == iRoot || (*BtCursor)(unsafe.Pointer(p)).FpgnoRoot == iRoot) {
+ break
+ }
+ }
+ if p != 0 {
+ return saveCursorsOnList(tls, p, iRoot, pExcept)
+ }
+ if pExcept != 0 {
+ *(*U8)(unsafe.Pointer(pExcept + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_Multiple))
+ }
+ return SQLITE_OK
+}
+
+func saveCursorsOnList(tls *libc.TLS, p uintptr, iRoot Pgno, pExcept uintptr) int32 {
+ for __ccgo := true; __ccgo; __ccgo = p != 0 {
+ if p != pExcept && (Pgno(0) == iRoot || (*BtCursor)(unsafe.Pointer(p)).FpgnoRoot == iRoot) {
+ if int32((*BtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_VALID || int32((*BtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_SKIPNEXT {
+ var rc int32 = saveCursorPosition(tls, p)
+ if SQLITE_OK != rc {
+ return rc
+ }
+ } else {
+ btreeReleaseAllCursorPages(tls, p)
+ }
+ }
+ p = (*BtCursor)(unsafe.Pointer(p)).FpNext
+ }
+ return SQLITE_OK
+}
+
+// Clear the current cursor position.
+func Xsqlite3BtreeClearCursor(tls *libc.TLS, pCur uintptr) {
+ Xsqlite3_free(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpKey)
+ (*BtCursor)(unsafe.Pointer(pCur)).FpKey = uintptr(0)
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+}
+
+func btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey I64, bias int32, pRes uintptr) int32 {
+ var rc int32
+ var pIdxKey uintptr
+
+ if pKey != 0 {
+ var pKeyInfo uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo
+
+ pIdxKey = Xsqlite3VdbeAllocUnpackedRecord(tls, pKeyInfo)
+ if pIdxKey == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ Xsqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey)
+ if int32((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || int32((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) {
+ rc = Xsqlite3CorruptError(tls, 69249)
+ } else {
+ rc = Xsqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes)
+ }
+ Xsqlite3DbFree(tls, (*KeyInfo1)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey)
+ } else {
+ pIdxKey = uintptr(0)
+ rc = Xsqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes)
+ }
+ return rc
+}
+
+func btreeRestoreCursorPosition(tls *libc.TLS, pCur uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_FAULT {
+ return (*BtCursor)(unsafe.Pointer(pCur)).FskipNext
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ if Xsqlite3FaultSim(tls, 410) != 0 {
+ rc = SQLITE_IOERR
+ } else {
+ rc = btreeMoveto(tls, pCur, (*BtCursor)(unsafe.Pointer(pCur)).FpKey, (*BtCursor)(unsafe.Pointer(pCur)).FnKey, 0, bp)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3_free(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpKey)
+ (*BtCursor)(unsafe.Pointer(pCur)).FpKey = uintptr(0)
+
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ (*BtCursor)(unsafe.Pointer(pCur)).FskipNext = *(*int32)(unsafe.Pointer(bp))
+ }
+ if (*BtCursor)(unsafe.Pointer(pCur)).FskipNext != 0 && int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_SKIPNEXT)
+ }
+ }
+ return rc
+}
+
+// Determine whether or not a cursor has moved from the position where
+// it was last placed, or has been invalidated for any other reason.
+// Cursors can move when the row they are pointing at is deleted out
+// from under them, for example. Cursor might also move if a btree
+// is rebalanced.
+//
+// Calling this routine with a NULL cursor pointer returns false.
+//
+// Use the separate sqlite3BtreeCursorRestore() routine to restore a cursor
+// back to where it ought to be if this routine returns true.
+func Xsqlite3BtreeCursorHasMoved(tls *libc.TLS, pCur uintptr) int32 {
+ return libc.Bool32(CURSOR_VALID != int32(*(*U8)(unsafe.Pointer(pCur))))
+}
+
+// Return a pointer to a fake BtCursor object that will always answer
+// false to the sqlite3BtreeCursorHasMoved() routine above. The fake
+// cursor returned must not be used with any other Btree interface.
+func Xsqlite3BtreeFakeValidCursor(tls *libc.TLS) uintptr {
+ return uintptr(unsafe.Pointer(&fakeCursor))
+}
+
+var fakeCursor U8 = U8(CURSOR_VALID)
+
+// This routine restores a cursor back to its original position after it
+// has been moved by some outside activity (such as a btree rebalance or
+// a row having been deleted out from under the cursor).
+//
+// On success, the *pDifferentRow parameter is false if the cursor is left
+// pointing at exactly the same row. *pDifferntRow is the row the cursor
+// was pointing to has been deleted, forcing the cursor to point to some
+// nearby row.
+//
+// This routine should only be called for a cursor that just returned
+// TRUE from sqlite3BtreeCursorHasMoved().
+func Xsqlite3BtreeCursorRestore(tls *libc.TLS, pCur uintptr, pDifferentRow uintptr) int32 {
+ var rc int32
+
+ rc = func() int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK {
+ return btreeRestoreCursorPosition(tls, pCur)
+ }
+ return SQLITE_OK
+ }()
+ if rc != 0 {
+ *(*int32)(unsafe.Pointer(pDifferentRow)) = 1
+ return rc
+ }
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ *(*int32)(unsafe.Pointer(pDifferentRow)) = 1
+ } else {
+ *(*int32)(unsafe.Pointer(pDifferentRow)) = 0
+ }
+ return SQLITE_OK
+}
+
+// Provide flag hints to the cursor.
+func Xsqlite3BtreeCursorHintFlags(tls *libc.TLS, pCur uintptr, x uint32) {
+ (*BtCursor)(unsafe.Pointer(pCur)).Fhints = U8(x)
+}
+
+func ptrmapPageno(tls *libc.TLS, pBt uintptr, pgno Pgno) Pgno {
+ var nPagesPerMapPage int32
+ var iPtrMap Pgno
+ var ret Pgno
+
+ if pgno < Pgno(2) {
+ return Pgno(0)
+ }
+ nPagesPerMapPage = int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize/U32(5) + U32(1))
+ iPtrMap = (pgno - Pgno(2)) / Pgno(nPagesPerMapPage)
+ ret = iPtrMap*Pgno(nPagesPerMapPage) + Pgno(2)
+ if ret == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ ret++
+ }
+ return ret
+}
+
+func ptrmapPut(tls *libc.TLS, pBt uintptr, key Pgno, eType U8, parent Pgno, pRC uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pPtrmap uintptr
+ var iPtrmap Pgno
+ var offset int32
+ var rc int32
+
+ if !(*(*int32)(unsafe.Pointer(pRC)) != 0) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(key == Pgno(0)) {
+ goto __2
+ }
+ *(*int32)(unsafe.Pointer(pRC)) = Xsqlite3CorruptError(tls, 69430)
+ return
+__2:
+ ;
+ iPtrmap = ptrmapPageno(tls, pBt, key)
+ rc = Xsqlite3PagerGet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, iPtrmap, bp, 0)
+ if !(rc != SQLITE_OK) {
+ goto __3
+ }
+ *(*int32)(unsafe.Pointer(pRC)) = rc
+ return
+__3:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(Xsqlite3PagerGetExtra(tls, *(*uintptr)(unsafe.Pointer(bp)))))) != 0) {
+ goto __4
+ }
+
+ *(*int32)(unsafe.Pointer(pRC)) = Xsqlite3CorruptError(tls, 69443)
+ goto ptrmap_exit
+__4:
+ ;
+ offset = int32(Pgno(5) * (key - iPtrmap - Pgno(1)))
+ if !(offset < 0) {
+ goto __5
+ }
+ *(*int32)(unsafe.Pointer(pRC)) = Xsqlite3CorruptError(tls, 69448)
+ goto ptrmap_exit
+__5:
+ ;
+ pPtrmap = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ if !(int32(eType) != int32(*(*U8)(unsafe.Pointer(pPtrmap + uintptr(offset)))) || Xsqlite3Get4byte(tls, pPtrmap+uintptr(offset+1)) != parent) {
+ goto __6
+ }
+
+ *(*int32)(unsafe.Pointer(pRC)) = libc.AssignInt32(&rc, Xsqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp))))
+ if !(rc == SQLITE_OK) {
+ goto __7
+ }
+ *(*U8)(unsafe.Pointer(pPtrmap + uintptr(offset))) = eType
+ Xsqlite3Put4byte(tls, pPtrmap+uintptr(offset+1), parent)
+__7:
+ ;
+__6:
+ ;
+ptrmap_exit:
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+}
+
+func ptrmapGet(tls *libc.TLS, pBt uintptr, key Pgno, pEType uintptr, pPgno uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iPtrmap int32
+ var pPtrmap uintptr
+ var offset int32
+ var rc int32
+
+ iPtrmap = int32(ptrmapPageno(tls, pBt, key))
+ rc = Xsqlite3PagerGet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, uint32(iPtrmap), bp, 0)
+ if rc != 0 {
+ return rc
+ }
+ pPtrmap = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ offset = int32(Pgno(5) * (key - Pgno(iPtrmap) - Pgno(1)))
+ if offset < 0 {
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return Xsqlite3CorruptError(tls, 69493)
+ }
+
+ *(*U8)(unsafe.Pointer(pEType)) = *(*U8)(unsafe.Pointer(pPtrmap + uintptr(offset)))
+ if pPgno != 0 {
+ *(*Pgno)(unsafe.Pointer(pPgno)) = Xsqlite3Get4byte(tls, pPtrmap+uintptr(offset+1))
+ }
+
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if int32(*(*U8)(unsafe.Pointer(pEType))) < 1 || int32(*(*U8)(unsafe.Pointer(pEType))) > 5 {
+ return Xsqlite3CorruptError(tls, 69501)
+ }
+ return SQLITE_OK
+}
+
+func btreeParseCellAdjustSizeForOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) {
+ var minLocal int32
+ var maxLocal int32
+ var surplus int32
+
+ minLocal = int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal)
+ maxLocal = int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal)
+ surplus = int32(U32(minLocal) + ((*CellInfo)(unsafe.Pointer(pInfo)).FnPayload-U32(minLocal))%((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4)))
+
+ if surplus <= maxLocal {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnLocal = U16(surplus)
+ } else {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnLocal = U16(minLocal)
+ }
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(int32(U16((int64((*CellInfo)(unsafe.Pointer(pInfo)).FpPayload+uintptr((*CellInfo)(unsafe.Pointer(pInfo)).FnLocal))-int64(pCell))/1)) + 4)
+}
+
+func btreePayloadToLocal(tls *libc.TLS, pPage uintptr, nPayload I64) int32 {
+ var maxLocal int32
+ maxLocal = int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal)
+ if nPayload <= I64(maxLocal) {
+ return int32(nPayload)
+ } else {
+ var minLocal int32
+ var surplus int32
+ minLocal = int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal)
+ surplus = int32(I64(minLocal) + (nPayload-I64(minLocal))%I64((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4)))
+ if surplus <= maxLocal {
+ return surplus
+ }
+ return minLocal
+ }
+ return int32(0)
+}
+
+func btreeParseCellPtrNoPayload(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) {
+ _ = pPage
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(4 + int32(Xsqlite3GetVarint(tls, pCell+4, pInfo)))
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnPayload = U32(0)
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnLocal = U16(0)
+ (*CellInfo)(unsafe.Pointer(pInfo)).FpPayload = uintptr(0)
+ return
+}
+
+func btreeParseCellPtr(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pIter uintptr
+ var nPayload U32
+
+ pIter = pCell
+
+ nPayload = U32(*(*U8)(unsafe.Pointer(pIter)))
+ if nPayload >= U32(0x80) {
+ var pEnd uintptr = pIter + 8
+ nPayload = nPayload & U32(0x7f)
+ for __ccgo := true; __ccgo; __ccgo = int32(*(*U8)(unsafe.Pointer(pIter))) >= 0x80 && pIter < pEnd {
+ nPayload = nPayload<<7 | U32(int32(*(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1))))&0x7f)
+ }
+ }
+ pIter++
+
+ *(*U64)(unsafe.Pointer(bp)) = U64(*(*U8)(unsafe.Pointer(pIter)))
+ if *(*U64)(unsafe.Pointer(bp)) >= uint64(0x80) {
+ var x U8
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))&uint64(0x7f)<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<7 | U64(int32(libc.AssignUint8(&x, *(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1)))))&0x7f)
+ if int32(x) >= 0x80 {
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<8 | U64(*(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1))))
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ pIter++
+
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnKey = *(*I64)(unsafe.Pointer(bp))
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnPayload = nPayload
+ (*CellInfo)(unsafe.Pointer(pInfo)).FpPayload = pIter
+
+ if nPayload <= U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(nPayload + U32(U16((int64(pIter)-int64(pCell))/1)))
+ if int32((*CellInfo)(unsafe.Pointer(pInfo)).FnSize) < 4 {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(4)
+ }
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnLocal = U16(nPayload)
+ } else {
+ btreeParseCellAdjustSizeForOverflow(tls, pPage, pCell, pInfo)
+ }
+}
+
+func btreeParseCellPtrIndex(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) {
+ var pIter uintptr
+ var nPayload U32
+
+ pIter = pCell + uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+ nPayload = U32(*(*U8)(unsafe.Pointer(pIter)))
+ if nPayload >= U32(0x80) {
+ var pEnd uintptr = pIter + 8
+ nPayload = nPayload & U32(0x7f)
+ for __ccgo := true; __ccgo; __ccgo = int32(*(*U8)(unsafe.Pointer(pIter))) >= 0x80 && pIter < pEnd {
+ nPayload = nPayload<<7 | U32(int32(*(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1))))&0x7f)
+ }
+ }
+ pIter++
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnKey = I64(nPayload)
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnPayload = nPayload
+ (*CellInfo)(unsafe.Pointer(pInfo)).FpPayload = pIter
+
+ if nPayload <= U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(nPayload + U32(U16((int64(pIter)-int64(pCell))/1)))
+ if int32((*CellInfo)(unsafe.Pointer(pInfo)).FnSize) < 4 {
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnSize = U16(4)
+ }
+ (*CellInfo)(unsafe.Pointer(pInfo)).FnLocal = U16(nPayload)
+ } else {
+ btreeParseCellAdjustSizeForOverflow(tls, pPage, pCell, pInfo)
+ }
+}
+
+func btreeParseCell(tls *libc.TLS, pPage uintptr, iCell int32, pInfo uintptr) {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iCell))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iCell) + 1))))), pInfo)
+}
+
+func cellSizePtr(tls *libc.TLS, pPage uintptr, pCell uintptr) U16 {
+ var pIter uintptr = pCell + uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+ var pEnd uintptr
+ var nSize U32
+
+ nSize = U32(*(*U8)(unsafe.Pointer(pIter)))
+ if nSize >= U32(0x80) {
+ pEnd = pIter + 8
+ nSize = nSize & U32(0x7f)
+ for __ccgo := true; __ccgo; __ccgo = int32(*(*U8)(unsafe.Pointer(pIter))) >= 0x80 && pIter < pEnd {
+ nSize = nSize<<7 | U32(int32(*(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1))))&0x7f)
+ }
+ }
+ pIter++
+
+ if nSize <= U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ nSize = nSize + U32((int64(pIter)-int64(pCell))/1)
+ if nSize < U32(4) {
+ nSize = U32(4)
+ }
+ } else {
+ var minLocal int32 = int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal)
+ nSize = U32(minLocal) + (nSize-U32(minLocal))%((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4))
+
+ if nSize > U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ nSize = U32(minLocal)
+ }
+ nSize = nSize + U32(4+int32(U16((int64(pIter)-int64(pCell))/1)))
+ }
+
+ return U16(nSize)
+}
+
+func cellSizePtrNoPayload(tls *libc.TLS, pPage uintptr, pCell uintptr) U16 {
+ var pIter uintptr = pCell + uintptr(4)
+ var pEnd uintptr
+
+ _ = pPage
+
+ pEnd = pIter + uintptr(9)
+ for int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 && pIter < pEnd {
+ }
+
+ return U16((int64(pIter) - int64(pCell)) / 1)
+}
+
+func cellSizePtrTableLeaf(tls *libc.TLS, pPage uintptr, pCell uintptr) U16 {
+ var pIter uintptr = pCell
+ var pEnd uintptr
+ var nSize U32
+
+ nSize = U32(*(*U8)(unsafe.Pointer(pIter)))
+ if nSize >= U32(0x80) {
+ pEnd = pIter + 8
+ nSize = nSize & U32(0x7f)
+ for __ccgo := true; __ccgo; __ccgo = int32(*(*U8)(unsafe.Pointer(pIter))) >= 0x80 && pIter < pEnd {
+ nSize = nSize<<7 | U32(int32(*(*U8)(unsafe.Pointer(libc.PreIncUintptr(&pIter, 1))))&0x7f)
+ }
+ }
+ pIter++
+
+ if int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 &&
+ int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pIter, 1))))&0x80 != 0 {
+ pIter++
+ }
+
+ if nSize <= U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ nSize = nSize + U32((int64(pIter)-int64(pCell))/1)
+ if nSize < U32(4) {
+ nSize = U32(4)
+ }
+ } else {
+ var minLocal int32 = int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal)
+ nSize = U32(minLocal) + (nSize-U32(minLocal))%((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4))
+
+ if nSize > U32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ nSize = U32(minLocal)
+ }
+ nSize = nSize + U32(4+int32(U16((int64(pIter)-int64(pCell))/1)))
+ }
+
+ return U16(nSize)
+}
+
+func ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr, pRC uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if *(*int32)(unsafe.Pointer(pRC)) != 0 {
+ return
+ }
+
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, pCell, bp)
+ if U32((*CellInfo)(unsafe.Pointer(bp)).FnLocal) < (*CellInfo)(unsafe.Pointer(bp)).FnPayload {
+ var ovfl Pgno
+ if Uptr((*MemPage)(unsafe.Pointer(pSrc)).FaDataEnd) >= Uptr(pCell) && Uptr((*MemPage)(unsafe.Pointer(pSrc)).FaDataEnd) < Uptr(pCell+uintptr((*CellInfo)(unsafe.Pointer(bp)).FnLocal)) {
+ *(*int32)(unsafe.Pointer(pRC)) = Xsqlite3CorruptError(tls, 69893)
+ return
+ }
+ ovfl = Xsqlite3Get4byte(tls, pCell+uintptr(int32((*CellInfo)(unsafe.Pointer(bp)).FnSize)-4))
+ ptrmapPut(tls, (*MemPage)(unsafe.Pointer(pPage)).FpBt, ovfl, uint8(PTRMAP_OVERFLOW1), (*MemPage)(unsafe.Pointer(pPage)).Fpgno, pRC)
+ }
+}
+
+func defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) int32 {
+ var i int32
+ var pc int32
+ var hdr int32
+ var size int32
+ var usableSize int32
+ var cellOffset int32
+ var cbrk int32
+ var nCell int32
+ var data uintptr
+ var temp uintptr
+ var src uintptr
+ var iCellFirst int32
+ var iCellLast int32
+ var iCellStart int32
+ var pEnd uintptr
+ var pAddr uintptr
+ var sz2 int32
+ var sz int32
+ var top int32
+ var iFree2 int32
+ var iFree int32
+ var pAddr1 uintptr
+
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ hdr = int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)
+ cellOffset = int32((*MemPage)(unsafe.Pointer(pPage)).FcellOffset)
+ nCell = int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+
+ iCellFirst = cellOffset + 2*nCell
+ usableSize = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
+
+ if !(int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+7)))) <= nMaxFrag) {
+ goto __1
+ }
+ iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+1))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+1) + 1)))
+ if !(iFree > usableSize-4) {
+ goto __2
+ }
+ return Xsqlite3CorruptError(tls, 69951)
+__2:
+ ;
+ if !(iFree != 0) {
+ goto __3
+ }
+ iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree) + 1)))
+ if !(iFree2 > usableSize-4) {
+ goto __4
+ }
+ return Xsqlite3CorruptError(tls, 69954)
+__4:
+ ;
+ if !(0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+1)))) == 0) {
+ goto __5
+ }
+ pEnd = data + uintptr(cellOffset+nCell*2)
+ sz2 = 0
+ sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+2))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+2) + 1)))
+ top = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+5))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)))
+ if !(top >= iFree) {
+ goto __6
+ }
+ return Xsqlite3CorruptError(tls, 69962)
+__6:
+ ;
+ if !(iFree2 != 0) {
+ goto __7
+ }
+ if !(iFree+sz > iFree2) {
+ goto __9
+ }
+ return Xsqlite3CorruptError(tls, 69965)
+__9:
+ ;
+ sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+2))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+2) + 1)))
+ if !(iFree2+sz2 > usableSize) {
+ goto __10
+ }
+ return Xsqlite3CorruptError(tls, 69967)
+__10:
+ ;
+ libc.X__builtin___memmove_chk(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz)), libc.X__builtin_object_size(tls, data+uintptr(iFree+sz+sz2), 0))
+ sz = sz + sz2
+ goto __8
+__7:
+ if !(iFree+sz > usableSize) {
+ goto __11
+ }
+ return Xsqlite3CorruptError(tls, 69971)
+__11:
+ ;
+__8:
+ ;
+ cbrk = top + sz
+
+ libc.X__builtin___memmove_chk(tls, data+uintptr(cbrk), data+uintptr(top), uint64(iFree-top), libc.X__builtin_object_size(tls, data+uintptr(cbrk), 0))
+ pAddr = data + uintptr(cellOffset)
+__12:
+ if !(pAddr < pEnd) {
+ goto __14
+ }
+ pc = int32(*(*U8)(unsafe.Pointer(pAddr)))<<8 | int32(*(*U8)(unsafe.Pointer(pAddr + 1)))
+ if !(pc < iFree) {
+ goto __15
+ }
+ *(*U8)(unsafe.Pointer(pAddr)) = U8((pc + sz) >> 8)
+ *(*U8)(unsafe.Pointer(pAddr + 1)) = U8(pc + sz)
+ goto __16
+__15:
+ if !(pc < iFree2) {
+ goto __17
+ }
+ *(*U8)(unsafe.Pointer(pAddr)) = U8((pc + sz2) >> 8)
+ *(*U8)(unsafe.Pointer(pAddr + 1)) = U8(pc + sz2)
+__17:
+ ;
+__16:
+ ;
+ goto __13
+__13:
+ pAddr += uintptr(2)
+ goto __12
+ goto __14
+__14:
+ ;
+ goto defragment_out
+__5:
+ ;
+__3:
+ ;
+__1:
+ ;
+ cbrk = usableSize
+ iCellLast = usableSize - 4
+ iCellStart = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+5))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)))
+ if !(nCell > 0) {
+ goto __18
+ }
+ temp = Xsqlite3PagerTempSpace(tls, (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FpPager)
+ libc.X__builtin___memcpy_chk(tls, temp+uintptr(iCellStart), data+uintptr(iCellStart), uint64(usableSize-iCellStart), libc.X__builtin_object_size(tls, temp+uintptr(iCellStart), 0))
+ src = temp
+ i = 0
+__19:
+ if !(i < nCell) {
+ goto __21
+ }
+ pAddr1 = data + uintptr(cellOffset+i*2)
+ pc = int32(*(*U8)(unsafe.Pointer(pAddr1)))<<8 | int32(*(*U8)(unsafe.Pointer(pAddr1 + 1)))
+
+ if !(pc < iCellStart || pc > iCellLast) {
+ goto __22
+ }
+ return Xsqlite3CorruptError(tls, 70004)
+__22:
+ ;
+ size = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxCellSize})).f(tls, pPage, src+uintptr(pc)))
+ cbrk = cbrk - size
+ if !(cbrk < iCellStart || pc+size > usableSize) {
+ goto __23
+ }
+ return Xsqlite3CorruptError(tls, 70010)
+__23:
+ ;
+ *(*U8)(unsafe.Pointer(pAddr1)) = U8(cbrk >> 8)
+ *(*U8)(unsafe.Pointer(pAddr1 + 1)) = U8(cbrk)
+ libc.X__builtin___memcpy_chk(tls, data+uintptr(cbrk), src+uintptr(pc), uint64(size), libc.X__builtin_object_size(tls, data+uintptr(cbrk), 0))
+ goto __20
+__20:
+ i++
+ goto __19
+ goto __21
+__21:
+ ;
+__18:
+ ;
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr+7))) = uint8(0)
+
+defragment_out:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+7))))+cbrk-iCellFirst != (*MemPage)(unsafe.Pointer(pPage)).FnFree) {
+ goto __24
+ }
+ return Xsqlite3CorruptError(tls, 70024)
+__24:
+ ;
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr+5))) = U8(cbrk >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)) = U8(cbrk)
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr+1))) = uint8(0)
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr+2))) = uint8(0)
+ libc.X__builtin___memset_chk(tls, data+uintptr(iCellFirst), 0, uint64(cbrk-iCellFirst), libc.X__builtin_object_size(tls, data+uintptr(iCellFirst), 0))
+
+ return SQLITE_OK
+}
+
+func pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) uintptr {
+ var hdr int32 = int32((*MemPage)(unsafe.Pointer(pPg)).FhdrOffset)
+ var aData uintptr = (*MemPage)(unsafe.Pointer(pPg)).FaData
+ var iAddr int32 = hdr + 1
+ var pTmp uintptr = aData + uintptr(iAddr)
+ var pc int32 = int32(*(*U8)(unsafe.Pointer(pTmp)))<<8 | int32(*(*U8)(unsafe.Pointer(pTmp + 1)))
+ var x int32
+ var maxPC int32 = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPg)).FpBt)).FusableSize - U32(nByte))
+ var size int32
+
+ for pc <= maxPC {
+ pTmp = aData + uintptr(pc+2)
+ size = int32(*(*U8)(unsafe.Pointer(pTmp)))<<8 | int32(*(*U8)(unsafe.Pointer(pTmp + 1)))
+ if libc.AssignInt32(&x, size-nByte) >= 0 {
+ if x < 4 {
+ if int32(*(*U8)(unsafe.Pointer(aData + uintptr(hdr+7)))) > 57 {
+ return uintptr(0)
+ }
+
+ libc.X__builtin___memcpy_chk(tls, aData+uintptr(iAddr), aData+uintptr(pc), uint64(2), libc.X__builtin_object_size(tls, aData+uintptr(iAddr), 0))
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+7))) += U8(int32(U8(x)))
+ return aData + uintptr(pc)
+ } else if x+pc > maxPC {
+ *(*int32)(unsafe.Pointer(pRc)) = Xsqlite3CorruptError(tls, 70081)
+ return uintptr(0)
+ } else {
+ *(*U8)(unsafe.Pointer(aData + uintptr(pc+2))) = U8(x >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(pc+2) + 1)) = U8(x)
+ }
+ return aData + uintptr(pc+x)
+ }
+ iAddr = pc
+ pTmp = aData + uintptr(pc)
+ pc = int32(*(*U8)(unsafe.Pointer(pTmp)))<<8 | int32(*(*U8)(unsafe.Pointer(pTmp + 1)))
+ if pc <= iAddr {
+ if pc != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = Xsqlite3CorruptError(tls, 70096)
+ }
+ return uintptr(0)
+ }
+ }
+ if pc > maxPC+nByte-4 {
+ *(*int32)(unsafe.Pointer(pRc)) = Xsqlite3CorruptError(tls, 70103)
+ }
+ return uintptr(0)
+}
+
+func allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var hdr int32 = int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)
+ var data uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ var top int32
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var pTmp uintptr
+ var gap int32
+
+ gap = int32((*MemPage)(unsafe.Pointer(pPage)).FcellOffset) + 2*int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+
+ pTmp = data + uintptr(hdr+5)
+ top = int32(*(*U8)(unsafe.Pointer(pTmp)))<<8 | int32(*(*U8)(unsafe.Pointer(pTmp + 1)))
+
+ if gap > top {
+ if top == 0 && (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == U32(65536) {
+ top = 65536
+ } else {
+ return Xsqlite3CorruptError(tls, 70152)
+ }
+ }
+
+ if (*(*U8)(unsafe.Pointer(data + uintptr(hdr+2))) != 0 || *(*U8)(unsafe.Pointer(data + uintptr(hdr+1))) != 0) && gap+2 <= top {
+ var pSpace uintptr = pageFindSlot(tls, pPage, nByte, bp)
+ if pSpace != 0 {
+ var g2 int32
+
+ *(*int32)(unsafe.Pointer(pIdx)) = libc.AssignInt32(&g2, int32((int64(pSpace)-int64(data))/1))
+ if g2 <= gap {
+ return Xsqlite3CorruptError(tls, 70170)
+ } else {
+ return SQLITE_OK
+ }
+ } else if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+
+ if gap+2+nByte > top {
+ *(*int32)(unsafe.Pointer(bp)) = defragmentPage(tls, pPage, func() int32 {
+ if 4 < (*MemPage)(unsafe.Pointer(pPage)).FnFree-(2+nByte) {
+ return 4
+ }
+ return (*MemPage)(unsafe.Pointer(pPage)).FnFree - (2 + nByte)
+ }())
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ top = (int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+5))))<<8|int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)))-1)&0xffff + 1
+
+ }
+
+ top = top - nByte
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+5))) = U8(top >> 8)
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)) = U8(top)
+
+ *(*int32)(unsafe.Pointer(pIdx)) = top
+ return SQLITE_OK
+}
+
+func freeSpace(tls *libc.TLS, pPage uintptr, iStart U16, iSize U16) int32 {
+ var iPtr U16
+ var iFreeBlk U16
+ var hdr U8
+ var nFrag U8 = U8(0)
+ var iOrigSize U16 = iSize
+ var x U16
+ var iEnd U32 = U32(int32(iStart) + int32(iSize))
+ var data uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ var pTmp uintptr
+
+ hdr = (*MemPage)(unsafe.Pointer(pPage)).FhdrOffset
+ iPtr = U16(int32(hdr) + 1)
+ if int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iPtr)+1)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr)))) == 0 {
+ iFreeBlk = U16(0)
+ } else {
+ for int32(libc.AssignUint16(&iFreeBlk, U16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr))))<<8|int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr) + 1)))))) < int32(iStart) {
+ if int32(iFreeBlk) <= int32(iPtr) {
+ if int32(iFreeBlk) == 0 {
+ break
+ }
+ return Xsqlite3CorruptError(tls, 70249)
+ }
+ iPtr = iFreeBlk
+ }
+ if U32(iFreeBlk) > (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4) {
+ return Xsqlite3CorruptError(tls, 70254)
+ }
+
+ if iFreeBlk != 0 && iEnd+U32(3) >= U32(iFreeBlk) {
+ nFrag = U8(U32(iFreeBlk) - iEnd)
+ if iEnd > U32(iFreeBlk) {
+ return Xsqlite3CorruptError(tls, 70266)
+ }
+ iEnd = U32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+2))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+2) + 1)))))
+ if iEnd > (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize {
+ return Xsqlite3CorruptError(tls, 70269)
+ }
+ iSize = U16(iEnd - U32(iStart))
+ iFreeBlk = U16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk) + 1))))
+ }
+
+ if int32(iPtr) > int32(hdr)+1 {
+ var iPtrEnd int32 = int32(iPtr) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iPtr)+2))))<<8 | int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iPtr)+2) + 1))))
+ if iPtrEnd+3 >= int32(iStart) {
+ if iPtrEnd > int32(iStart) {
+ return Xsqlite3CorruptError(tls, 70282)
+ }
+ nFrag = U8(int32(nFrag) + (int32(iStart) - iPtrEnd))
+ iSize = U16(iEnd - U32(iPtr))
+ iStart = iPtr
+ }
+ }
+ if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+7)))) {
+ return Xsqlite3CorruptError(tls, 70288)
+ }
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+7))) -= uint8(int32(nFrag))
+ }
+ pTmp = data + uintptr(int32(hdr)+5)
+ x = U16(int32(*(*U8)(unsafe.Pointer(pTmp)))<<8 | int32(*(*U8)(unsafe.Pointer(pTmp + 1))))
+ if int32(iStart) <= int32(x) {
+ if int32(iStart) < int32(x) {
+ return Xsqlite3CorruptError(tls, 70297)
+ }
+ if int32(iPtr) != int32(hdr)+1 {
+ return Xsqlite3CorruptError(tls, 70298)
+ }
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+1))) = U8(int32(iFreeBlk) >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+1) + 1)) = U8(iFreeBlk)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+5))) = U8(iEnd >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+5) + 1)) = U8(iEnd)
+ } else {
+ *(*uint8)(unsafe.Pointer(data + uintptr(iPtr))) = U8(int32(iStart) >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(iPtr) + 1)) = U8(iStart)
+ }
+ if int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FbtsFlags)&BTS_FAST_SECURE != 0 {
+ libc.X__builtin___memset_chk(tls, data+uintptr(iStart), 0, uint64(iSize), libc.X__builtin_object_size(tls, data+uintptr(iStart), 0))
+ }
+ *(*uint8)(unsafe.Pointer(data + uintptr(iStart))) = U8(int32(iFreeBlk) >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(iStart) + 1)) = U8(iFreeBlk)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(iStart)+2))) = U8(int32(iSize) >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(iStart)+2) + 1)) = U8(iSize)
+ *(*int32)(unsafe.Pointer(pPage + 20)) += int32(iOrigSize)
+ return SQLITE_OK
+}
+
+func decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) int32 {
+ var pBt uintptr
+
+ pBt = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+ (*MemPage)(unsafe.Pointer(pPage)).Fmax1bytePayload = (*BtShared)(unsafe.Pointer(pBt)).Fmax1bytePayload
+ if flagByte >= PTF_ZERODATA|PTF_LEAF {
+ (*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).Fleaf = U8(1)
+ if flagByte == PTF_LEAFDATA|PTF_INTKEY|PTF_LEAF {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(1)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtrTableLeaf}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtr}))
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(1)
+ (*MemPage)(unsafe.Pointer(pPage)).FmaxLocal = (*BtShared)(unsafe.Pointer(pBt)).FmaxLeaf
+ (*MemPage)(unsafe.Pointer(pPage)).FminLocal = (*BtShared)(unsafe.Pointer(pBt)).FminLeaf
+ } else if flagByte == PTF_ZERODATA|PTF_LEAF {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtr}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtrIndex}))
+ (*MemPage)(unsafe.Pointer(pPage)).FmaxLocal = (*BtShared)(unsafe.Pointer(pBt)).FmaxLocal
+ (*MemPage)(unsafe.Pointer(pPage)).FminLocal = (*BtShared)(unsafe.Pointer(pBt)).FminLocal
+ } else {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtr}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtrIndex}))
+ return Xsqlite3CorruptError(tls, 70357)
+ }
+ } else {
+ (*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize = U8(4)
+ (*MemPage)(unsafe.Pointer(pPage)).Fleaf = U8(0)
+ if flagByte == PTF_ZERODATA {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtr}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtrIndex}))
+ (*MemPage)(unsafe.Pointer(pPage)).FmaxLocal = (*BtShared)(unsafe.Pointer(pBt)).FmaxLocal
+ (*MemPage)(unsafe.Pointer(pPage)).FminLocal = (*BtShared)(unsafe.Pointer(pBt)).FminLocal
+ } else if flagByte == PTF_LEAFDATA|PTF_INTKEY {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtrNoPayload}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtrNoPayload}))
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(1)
+ (*MemPage)(unsafe.Pointer(pPage)).FmaxLocal = (*BtShared)(unsafe.Pointer(pBt)).FmaxLeaf
+ (*MemPage)(unsafe.Pointer(pPage)).FminLocal = (*BtShared)(unsafe.Pointer(pBt)).FminLeaf
+ } else {
+ (*MemPage)(unsafe.Pointer(pPage)).FintKey = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FxCellSize = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ }{cellSizePtr}))
+ (*MemPage)(unsafe.Pointer(pPage)).FxParseCell = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{btreeParseCellPtrIndex}))
+ return Xsqlite3CorruptError(tls, 70381)
+ }
+ }
+ return SQLITE_OK
+}
+
+func btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) int32 {
+ var pc int32
+ var hdr U8
+ var data uintptr
+ var usableSize int32
+ var nFree int32
+ var top int32
+ var iCellFirst int32
+ var iCellLast int32
+
+ usableSize = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
+ hdr = (*MemPage)(unsafe.Pointer(pPage)).FhdrOffset
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData
+
+ top = (int32(*(*U8)(unsafe.Pointer(data + uintptr(int32(hdr)+5))))<<8|int32(*(*U8)(unsafe.Pointer(data + uintptr(int32(hdr)+5) + 1)))-1)&0xffff + 1
+ iCellFirst = int32(hdr) + 8 + int32((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize) + 2*int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+ iCellLast = usableSize - 4
+
+ pc = int32(*(*U8)(unsafe.Pointer(data + uintptr(int32(hdr)+1))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(int32(hdr)+1) + 1)))
+ nFree = int32(*(*U8)(unsafe.Pointer(data + uintptr(int32(hdr)+7)))) + top
+ if pc > 0 {
+ var next U32
+ var size U32
+ if pc < top {
+ return Xsqlite3CorruptError(tls, 70432)
+ }
+ for 1 != 0 {
+ if pc > iCellLast {
+ return Xsqlite3CorruptError(tls, 70437)
+ }
+ next = U32(int32(*(*U8)(unsafe.Pointer(data + uintptr(pc))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(pc) + 1))))
+ size = U32(int32(*(*U8)(unsafe.Pointer(data + uintptr(pc+2))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(pc+2) + 1))))
+ nFree = int32(U32(nFree) + size)
+ if next <= U32(pc)+size+U32(3) {
+ break
+ }
+ pc = int32(next)
+ }
+ if next > U32(0) {
+ return Xsqlite3CorruptError(tls, 70447)
+ }
+ if U32(pc)+size > uint32(usableSize) {
+ return Xsqlite3CorruptError(tls, 70451)
+ }
+ }
+
+ if nFree > usableSize || nFree < iCellFirst {
+ return Xsqlite3CorruptError(tls, 70463)
+ }
+ (*MemPage)(unsafe.Pointer(pPage)).FnFree = int32(U16(nFree - iCellFirst))
+ return SQLITE_OK
+}
+
+func btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) int32 {
+ var iCellFirst int32
+ var iCellLast int32
+ var i int32
+ var sz int32
+ var pc int32
+ var data uintptr
+ var usableSize int32
+ var cellOffset int32
+
+ iCellFirst = int32((*MemPage)(unsafe.Pointer(pPage)).FcellOffset) + 2*int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+ usableSize = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
+ iCellLast = usableSize - 4
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ cellOffset = int32((*MemPage)(unsafe.Pointer(pPage)).FcellOffset)
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ iCellLast--
+ }
+ for i = 0; i < int32((*MemPage)(unsafe.Pointer(pPage)).FnCell); i++ {
+ pc = int32(*(*U8)(unsafe.Pointer(data + uintptr(cellOffset+i*2))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(cellOffset+i*2) + 1)))
+
+ if pc < iCellFirst || pc > iCellLast {
+ return Xsqlite3CorruptError(tls, 70494)
+ }
+ sz = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxCellSize})).f(tls, pPage, data+uintptr(pc)))
+
+ if pc+sz > usableSize {
+ return Xsqlite3CorruptError(tls, 70499)
+ }
+ }
+ return SQLITE_OK
+}
+
+func btreeInitPage(tls *libc.TLS, pPage uintptr) int32 {
+ var data uintptr
+ var pBt uintptr
+
+ pBt = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)
+
+ if decodeFlags(tls, pPage, int32(*(*U8)(unsafe.Pointer(data)))) != 0 {
+ return Xsqlite3CorruptError(tls, 70531)
+ }
+
+ (*MemPage)(unsafe.Pointer(pPage)).FmaskPage = U16((*BtShared)(unsafe.Pointer(pBt)).FpageSize - U32(1))
+ (*MemPage)(unsafe.Pointer(pPage)).FnOverflow = U8(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FcellOffset = U16(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset) + 8 + int32((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize))
+ (*MemPage)(unsafe.Pointer(pPage)).FaCellIdx = data + uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize) + uintptr(8)
+ (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*BtShared)(unsafe.Pointer(pBt)).FpageSize)
+ (*MemPage)(unsafe.Pointer(pPage)).FaDataOfst = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+
+ (*MemPage)(unsafe.Pointer(pPage)).FnCell = U16(int32(*(*U8)(unsafe.Pointer(data + 3)))<<8 | int32(*(*U8)(unsafe.Pointer(data + 3 + 1))))
+ if U32((*MemPage)(unsafe.Pointer(pPage)).FnCell) > ((*BtShared)(unsafe.Pointer(pBt)).FpageSize-U32(8))/U32(6) {
+ return Xsqlite3CorruptError(tls, 70545)
+ }
+
+ (*MemPage)(unsafe.Pointer(pPage)).FnFree = -1
+ (*MemPage)(unsafe.Pointer(pPage)).FisInit = U8(1)
+ if (*Sqlite3)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags&uint64(SQLITE_CellSizeCk) != 0 {
+ return btreeCellSizeCheck(tls, pPage)
+ }
+ return SQLITE_OK
+}
+
+func zeroPage(tls *libc.TLS, pPage uintptr, flags int32) {
+ var data uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ var pBt uintptr = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+ var hdr U8 = (*MemPage)(unsafe.Pointer(pPage)).FhdrOffset
+ var first U16
+
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_FAST_SECURE != 0 {
+ libc.X__builtin___memset_chk(tls, data+uintptr(hdr), 0, uint64((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(hdr)), libc.X__builtin_object_size(tls, data+uintptr(hdr), 0))
+ }
+ *(*uint8)(unsafe.Pointer(data + uintptr(hdr))) = uint8(int8(flags))
+ first = U16(int32(hdr) + func() int32 {
+ if flags&PTF_LEAF == 0 {
+ return 12
+ }
+ return 8
+ }())
+ libc.X__builtin___memset_chk(tls, data+uintptr(int32(hdr)+1), 0, uint64(4), libc.X__builtin_object_size(tls, data+uintptr(int32(hdr)+1), 0))
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+7))) = uint8(0)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+5))) = U8((*BtShared)(unsafe.Pointer(pBt)).FusableSize >> 8)
+ *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+5) + 1)) = U8((*BtShared)(unsafe.Pointer(pBt)).FusableSize)
+ (*MemPage)(unsafe.Pointer(pPage)).FnFree = int32(U16((*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(first)))
+ decodeFlags(tls, pPage, flags)
+ (*MemPage)(unsafe.Pointer(pPage)).FcellOffset = first
+ (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd = data + uintptr((*BtShared)(unsafe.Pointer(pBt)).FpageSize)
+ (*MemPage)(unsafe.Pointer(pPage)).FaCellIdx = data + uintptr(first)
+ (*MemPage)(unsafe.Pointer(pPage)).FaDataOfst = data + uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+ (*MemPage)(unsafe.Pointer(pPage)).FnOverflow = U8(0)
+
+ (*MemPage)(unsafe.Pointer(pPage)).FmaskPage = U16((*BtShared)(unsafe.Pointer(pBt)).FpageSize - U32(1))
+ (*MemPage)(unsafe.Pointer(pPage)).FnCell = U16(0)
+ (*MemPage)(unsafe.Pointer(pPage)).FisInit = U8(1)
+}
+
+func btreePageFromDbPage(tls *libc.TLS, pDbPage uintptr, pgno Pgno, pBt uintptr) uintptr {
+ var pPage uintptr = Xsqlite3PagerGetExtra(tls, pDbPage)
+ if pgno != (*MemPage)(unsafe.Pointer(pPage)).Fpgno {
+ (*MemPage)(unsafe.Pointer(pPage)).FaData = Xsqlite3PagerGetData(tls, pDbPage)
+ (*MemPage)(unsafe.Pointer(pPage)).FpDbPage = pDbPage
+ (*MemPage)(unsafe.Pointer(pPage)).FpBt = pBt
+ (*MemPage)(unsafe.Pointer(pPage)).Fpgno = pgno
+ (*MemPage)(unsafe.Pointer(pPage)).FhdrOffset = func() uint8 {
+ if pgno == Pgno(1) {
+ return uint8(100)
+ }
+ return uint8(0)
+ }()
+ }
+
+ return pPage
+}
+
+func btreeGetPage(tls *libc.TLS, pBt uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3PagerGet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, flags)
+ if rc != 0 {
+ return rc
+ }
+ *(*uintptr)(unsafe.Pointer(ppPage)) = btreePageFromDbPage(tls, *(*uintptr)(unsafe.Pointer(bp)), pgno, pBt)
+ return SQLITE_OK
+}
+
+func btreePageLookup(tls *libc.TLS, pBt uintptr, pgno Pgno) uintptr {
+ var pDbPage uintptr
+
+ pDbPage = Xsqlite3PagerLookup(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pgno)
+ if pDbPage != 0 {
+ return btreePageFromDbPage(tls, pDbPage, pgno, pBt)
+ }
+ return uintptr(0)
+}
+
+func btreePagecount(tls *libc.TLS, pBt uintptr) Pgno {
+ return (*BtShared)(unsafe.Pointer(pBt)).FnPage
+}
+
+func Xsqlite3BtreeLastPage(tls *libc.TLS, p uintptr) Pgno {
+ return btreePagecount(tls, (*Btree)(unsafe.Pointer(p)).FpBt)
+}
+
+func getAndInitPage(tls *libc.TLS, pBt uintptr, pgno Pgno, ppPage uintptr, pCur uintptr, bReadOnly int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ if !(pgno > btreePagecount(tls, pBt)) {
+ goto __1
+ }
+ rc = Xsqlite3CorruptError(tls, 70700)
+ goto getAndInitPage_error1
+__1:
+ ;
+ rc = Xsqlite3PagerGet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly)
+ if !(rc != 0) {
+ goto __2
+ }
+ goto getAndInitPage_error1
+__2:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppPage)) = Xsqlite3PagerGetExtra(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if !(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit) == 0) {
+ goto __3
+ }
+ btreePageFromDbPage(tls, *(*uintptr)(unsafe.Pointer(bp)), pgno, pBt)
+ rc = btreeInitPage(tls, *(*uintptr)(unsafe.Pointer(ppPage)))
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ goto getAndInitPage_error2
+__4:
+ ;
+__3:
+ ;
+ if !(pCur != 0 && (int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FnCell) < 1 || int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FintKey) != int32((*BtCursor)(unsafe.Pointer(pCur)).FcurIntKey))) {
+ goto __5
+ }
+ rc = Xsqlite3CorruptError(tls, 70721)
+ goto getAndInitPage_error2
+__5:
+ ;
+ return SQLITE_OK
+
+getAndInitPage_error2:
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage)))
+getAndInitPage_error1:
+ if !(pCur != 0) {
+ goto __6
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage--
+ (*BtCursor)(unsafe.Pointer(pCur)).FpPage = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*8))
+__6:
+ ;
+ return rc
+}
+
+func releasePageNotNull(tls *libc.TLS, pPage uintptr) {
+ Xsqlite3PagerUnrefNotNull(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+}
+
+func releasePage(tls *libc.TLS, pPage uintptr) {
+ if pPage != 0 {
+ releasePageNotNull(tls, pPage)
+ }
+}
+
+func releasePageOne(tls *libc.TLS, pPage uintptr) {
+ Xsqlite3PagerUnrefPageOne(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+}
+
+func btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno Pgno, ppPage uintptr, flags int32) int32 {
+ var rc int32 = btreeGetPage(tls, pBt, pgno, ppPage, flags)
+ if rc == SQLITE_OK {
+ if Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > 1 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage)))
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ return Xsqlite3CorruptError(tls, 70787)
+ }
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = U8(0)
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+ }
+ return rc
+}
+
+func pageReinit(tls *libc.TLS, pData uintptr) {
+ var pPage uintptr
+ pPage = Xsqlite3PagerGetExtra(tls, pData)
+
+ if (*MemPage)(unsafe.Pointer(pPage)).FisInit != 0 {
+ (*MemPage)(unsafe.Pointer(pPage)).FisInit = U8(0)
+ if Xsqlite3PagerPageRefcount(tls, pData) > 1 {
+ btreeInitPage(tls, pPage)
+ }
+ }
+}
+
+func btreeInvokeBusyHandler(tls *libc.TLS, pArg uintptr) int32 {
+ var pBt uintptr = pArg
+
+ return Xsqlite3InvokeBusyHandler(tls, (*BtShared)(unsafe.Pointer(pBt)).Fdb+672)
+}
+
+// Open a database file.
+//
+// zFilename is the name of the database file. If zFilename is NULL
+// then an ephemeral database is created. The ephemeral database might
+// be exclusively in memory, or it might use a disk-based memory cache.
+// Either way, the ephemeral database will be automatically deleted
+// when sqlite3BtreeClose() is called.
+//
+// If zFilename is ":memory:" then an in-memory database is created
+// that is automatically destroyed when it is closed.
+//
+// The "flags" parameter is a bitmask that might contain bits like
+// BTREE_OMIT_JOURNAL and/or BTREE_MEMORY.
+//
+// If the database is already opened in the same database connection
+// and we are in shared cache mode, then the open will fail with an
+// SQLITE_CONSTRAINT error. We cannot allow two or more BtShared
+// objects in the same database connection since doing so will lead
+// to problems with locking.
+func Xsqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintptr, ppBtree uintptr, flags int32, vfsFlags int32) int32 {
+ bp := tls.Alloc(100)
+ defer tls.Free(100)
+
+ var pBt uintptr
+ var p uintptr
+ var mutexOpen uintptr
+ var rc int32
+ var nReserve U8
+
+ var isTempDb int32
+
+ var isMemdb int32
+ var pExisting uintptr
+ var iDb int32
+ var nFilename int32
+ var nFullPathname int32
+ var zFullPathname uintptr
+ var mutexShared uintptr
+ var mutexShared1 uintptr
+ var i int32
+ var pSib uintptr
+ var pFile uintptr
+ pBt = uintptr(0)
+ mutexOpen = uintptr(0)
+ rc = SQLITE_OK
+ isTempDb = libc.Bool32(zFilename == uintptr(0) || int32(*(*int8)(unsafe.Pointer(zFilename))) == 0)
+ isMemdb = libc.Bool32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, ts+4452) == 0 ||
+ isTempDb != 0 && Xsqlite3TempInMemory(tls, db) != 0 ||
+ vfsFlags&SQLITE_OPEN_MEMORY != 0)
+
+ if !(isMemdb != 0) {
+ goto __1
+ }
+ flags = flags | BTREE_MEMORY
+__1:
+ ;
+ if !(vfsFlags&SQLITE_OPEN_MAIN_DB != 0 && (isMemdb != 0 || isTempDb != 0)) {
+ goto __2
+ }
+ vfsFlags = vfsFlags&libc.CplInt32(SQLITE_OPEN_MAIN_DB) | SQLITE_OPEN_TEMP_DB
+__2:
+ ;
+ p = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Btree{})))
+ if !!(p != 0) {
+ goto __3
+ }
+ return SQLITE_NOMEM
+__3:
+ ;
+ (*Btree)(unsafe.Pointer(p)).FinTrans = U8(TRANS_NONE)
+ (*Btree)(unsafe.Pointer(p)).Fdb = db
+ (*Btree)(unsafe.Pointer(p)).Flock.FpBtree = p
+ (*Btree)(unsafe.Pointer(p)).Flock.FiTable = Pgno(1)
+
+ if !(isTempDb == 0 && (isMemdb == 0 || vfsFlags&SQLITE_OPEN_URI != 0)) {
+ goto __4
+ }
+ if !(vfsFlags&SQLITE_OPEN_SHAREDCACHE != 0) {
+ goto __5
+ }
+ nFilename = Xsqlite3Strlen30(tls, zFilename) + 1
+ nFullPathname = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname + 1
+ zFullPathname = Xsqlite3Malloc(tls, func() uint64 {
+ if nFullPathname > nFilename {
+ return uint64(nFullPathname)
+ }
+ return uint64(nFilename)
+ }())
+
+ (*Btree)(unsafe.Pointer(p)).Fsharable = U8(1)
+ if !!(zFullPathname != 0) {
+ goto __6
+ }
+ Xsqlite3_free(tls, p)
+ return SQLITE_NOMEM
+__6:
+ ;
+ if !(isMemdb != 0) {
+ goto __7
+ }
+ libc.X__builtin___memcpy_chk(tls, zFullPathname, zFilename, uint64(nFilename), libc.X__builtin_object_size(tls, zFullPathname, 0))
+ goto __8
+__7:
+ rc = Xsqlite3OsFullPathname(tls, pVfs, zFilename,
+ nFullPathname, zFullPathname)
+ if !(rc != 0) {
+ goto __9
+ }
+ if !(rc == SQLITE_OK|int32(2)<<8) {
+ goto __10
+ }
+ rc = SQLITE_OK
+ goto __11
+__10:
+ Xsqlite3_free(tls, zFullPathname)
+ Xsqlite3_free(tls, p)
+ return rc
+__11:
+ ;
+__9:
+ ;
+__8:
+ ;
+ mutexOpen = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_OPEN)
+ Xsqlite3_mutex_enter(tls, mutexOpen)
+ mutexShared = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, mutexShared)
+ pBt = sqlite3SharedCacheList
+__12:
+ if !(pBt != 0) {
+ goto __14
+ }
+
+ if !(0 == libc.Xstrcmp(tls, zFullPathname, Xsqlite3PagerFilename(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, 0)) &&
+ Xsqlite3PagerVfs(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager) == pVfs) {
+ goto __15
+ }
+ iDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+__16:
+ if !(iDb >= 0) {
+ goto __18
+ }
+ pExisting = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if !(pExisting != 0 && (*Btree)(unsafe.Pointer(pExisting)).FpBt == pBt) {
+ goto __19
+ }
+ Xsqlite3_mutex_leave(tls, mutexShared)
+ Xsqlite3_mutex_leave(tls, mutexOpen)
+ Xsqlite3_free(tls, zFullPathname)
+ Xsqlite3_free(tls, p)
+ return SQLITE_CONSTRAINT
+__19:
+ ;
+ goto __17
+__17:
+ iDb--
+ goto __16
+ goto __18
+__18:
+ ;
+ (*Btree)(unsafe.Pointer(p)).FpBt = pBt
+ (*BtShared)(unsafe.Pointer(pBt)).FnRef++
+ goto __14
+__15:
+ ;
+ goto __13
+__13:
+ pBt = (*BtShared)(unsafe.Pointer(pBt)).FpNext
+ goto __12
+ goto __14
+__14:
+ ;
+ Xsqlite3_mutex_leave(tls, mutexShared)
+ Xsqlite3_free(tls, zFullPathname)
+__5:
+ ;
+__4:
+ ;
+ if !(pBt == uintptr(0)) {
+ goto __20
+ }
+
+ pBt = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(BtShared{})))
+ if !(pBt == uintptr(0)) {
+ goto __21
+ }
+ rc = SQLITE_NOMEM
+ goto btree_open_out
+__21:
+ ;
+ rc = Xsqlite3PagerOpen(tls, pVfs, pBt, zFilename,
+ int32(unsafe.Sizeof(MemPage{})), flags, vfsFlags, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{pageReinit})))
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ Xsqlite3PagerSetMmapLimit(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, (*Sqlite3)(unsafe.Pointer(db)).FszMmap)
+ rc = Xsqlite3PagerReadFileheader(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, int32(unsafe.Sizeof([100]uint8{})), bp)
+__22:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __23
+ }
+ goto btree_open_out
+__23:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FopenFlags = U8(flags)
+ (*BtShared)(unsafe.Pointer(pBt)).Fdb = db
+ Xsqlite3PagerSetBusyHandler(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{btreeInvokeBusyHandler})), pBt)
+ (*Btree)(unsafe.Pointer(p)).FpBt = pBt
+
+ (*BtShared)(unsafe.Pointer(pBt)).FpCursor = uintptr(0)
+ (*BtShared)(unsafe.Pointer(pBt)).FpPage1 = uintptr(0)
+ if !(Xsqlite3PagerIsreadonly(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager) != 0) {
+ goto __24
+ }
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_READ_ONLY)
+__24:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize = U32(int32(*(*uint8)(unsafe.Pointer(bp + 16)))<<8 | int32(*(*uint8)(unsafe.Pointer(bp + 17)))<<16)
+ if !((*BtShared)(unsafe.Pointer(pBt)).FpageSize < U32(512) || (*BtShared)(unsafe.Pointer(pBt)).FpageSize > U32(SQLITE_MAX_PAGE_SIZE) ||
+ ((*BtShared)(unsafe.Pointer(pBt)).FpageSize-U32(1))&(*BtShared)(unsafe.Pointer(pBt)).FpageSize != U32(0)) {
+ goto __25
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize = U32(0)
+
+ if !(zFilename != 0 && !(isMemdb != 0)) {
+ goto __27
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum = func() uint8 {
+ if 0 != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*BtShared)(unsafe.Pointer(pBt)).FincrVacuum = func() uint8 {
+ if SQLITE_DEFAULT_AUTOVACUUM == 2 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+__27:
+ ;
+ nReserve = U8(0)
+ goto __26
+__25:
+ nReserve = *(*uint8)(unsafe.Pointer(bp + 20))
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_PAGESIZE_FIXED)
+ (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum = func() uint8 {
+ if Xsqlite3Get4byte(tls, bp+52) != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*BtShared)(unsafe.Pointer(pBt)).FincrVacuum = func() uint8 {
+ if Xsqlite3Get4byte(tls, bp+64) != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+__26:
+ ;
+ rc = Xsqlite3PagerSetPagesize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52, int32(nReserve))
+ if !(rc != 0) {
+ goto __28
+ }
+ goto btree_open_out
+__28:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FusableSize = (*BtShared)(unsafe.Pointer(pBt)).FpageSize - U32(nReserve)
+
+ (*BtShared)(unsafe.Pointer(pBt)).FnRef = 1
+ if !((*Btree)(unsafe.Pointer(p)).Fsharable != 0) {
+ goto __29
+ }
+ mutexShared1 = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ if !(1 != 0 && Xsqlite3Config.FbCoreMutex != 0) {
+ goto __30
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).Fmutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_FAST)
+ if !((*BtShared)(unsafe.Pointer(pBt)).Fmutex == uintptr(0)) {
+ goto __31
+ }
+ rc = SQLITE_NOMEM
+ goto btree_open_out
+__31:
+ ;
+__30:
+ ;
+ Xsqlite3_mutex_enter(tls, mutexShared1)
+ (*BtShared)(unsafe.Pointer(pBt)).FpNext = sqlite3SharedCacheList
+ sqlite3SharedCacheList = pBt
+ Xsqlite3_mutex_leave(tls, mutexShared1)
+__29:
+ ;
+__20:
+ ;
+ if !((*Btree)(unsafe.Pointer(p)).Fsharable != 0) {
+ goto __32
+ }
+ i = 0
+__33:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __35
+ }
+ if !(libc.AssignUintptr(&pSib, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpBt) != uintptr(0) && (*Btree)(unsafe.Pointer(pSib)).Fsharable != 0) {
+ goto __36
+ }
+__37:
+ if !((*Btree)(unsafe.Pointer(pSib)).FpPrev != 0) {
+ goto __38
+ }
+ pSib = (*Btree)(unsafe.Pointer(pSib)).FpPrev
+ goto __37
+__38:
+ ;
+ if !(Uptr((*Btree)(unsafe.Pointer(p)).FpBt) < Uptr((*Btree)(unsafe.Pointer(pSib)).FpBt)) {
+ goto __39
+ }
+ (*Btree)(unsafe.Pointer(p)).FpNext = pSib
+ (*Btree)(unsafe.Pointer(p)).FpPrev = uintptr(0)
+ (*Btree)(unsafe.Pointer(pSib)).FpPrev = p
+ goto __40
+__39:
+__41:
+ if !((*Btree)(unsafe.Pointer(pSib)).FpNext != 0 && Uptr((*Btree)(unsafe.Pointer((*Btree)(unsafe.Pointer(pSib)).FpNext)).FpBt) < Uptr((*Btree)(unsafe.Pointer(p)).FpBt)) {
+ goto __42
+ }
+ pSib = (*Btree)(unsafe.Pointer(pSib)).FpNext
+ goto __41
+__42:
+ ;
+ (*Btree)(unsafe.Pointer(p)).FpNext = (*Btree)(unsafe.Pointer(pSib)).FpNext
+ (*Btree)(unsafe.Pointer(p)).FpPrev = pSib
+ if !((*Btree)(unsafe.Pointer(p)).FpNext != 0) {
+ goto __43
+ }
+ (*Btree)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpNext)).FpPrev = p
+__43:
+ ;
+ (*Btree)(unsafe.Pointer(pSib)).FpNext = p
+__40:
+ ;
+ goto __35
+__36:
+ ;
+ goto __34
+__34:
+ i++
+ goto __33
+ goto __35
+__35:
+ ;
+__32:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppBtree)) = p
+
+btree_open_out:
+ if !(rc != SQLITE_OK) {
+ goto __44
+ }
+ if !(pBt != 0 && (*BtShared)(unsafe.Pointer(pBt)).FpPager != 0) {
+ goto __46
+ }
+ Xsqlite3PagerClose(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, uintptr(0))
+__46:
+ ;
+ Xsqlite3_free(tls, pBt)
+ Xsqlite3_free(tls, p)
+ *(*uintptr)(unsafe.Pointer(ppBtree)) = uintptr(0)
+ goto __45
+__44:
+ if !(Xsqlite3BtreeSchema(tls, p, 0, uintptr(0)) == uintptr(0)) {
+ goto __47
+ }
+ Xsqlite3BtreeSetCacheSize(tls, p, -2000)
+__47:
+ ;
+ pFile = Xsqlite3PagerFile(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager)
+ if !((*Sqlite3_file)(unsafe.Pointer(pFile)).FpMethods != 0) {
+ goto __48
+ }
+ Xsqlite3OsFileControlHint(tls, pFile, SQLITE_FCNTL_PDB, pBt+8)
+__48:
+ ;
+__45:
+ ;
+ if !(mutexOpen != 0) {
+ goto __49
+ }
+
+ Xsqlite3_mutex_leave(tls, mutexOpen)
+__49:
+ ;
+ return rc
+}
+
+func removeFromSharingList(tls *libc.TLS, pBt uintptr) int32 {
+ var pMainMtx uintptr
+ var pList uintptr
+ var removed int32 = 0
+
+ pMainMtx = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, pMainMtx)
+ (*BtShared)(unsafe.Pointer(pBt)).FnRef--
+ if (*BtShared)(unsafe.Pointer(pBt)).FnRef <= 0 {
+ if sqlite3SharedCacheList == pBt {
+ sqlite3SharedCacheList = (*BtShared)(unsafe.Pointer(pBt)).FpNext
+ } else {
+ pList = sqlite3SharedCacheList
+ for pList != 0 && (*BtShared)(unsafe.Pointer(pList)).FpNext != pBt {
+ pList = (*BtShared)(unsafe.Pointer(pList)).FpNext
+ }
+ if pList != 0 {
+ (*BtShared)(unsafe.Pointer(pList)).FpNext = (*BtShared)(unsafe.Pointer(pBt)).FpNext
+ }
+ }
+ if 1 != 0 {
+ Xsqlite3_mutex_free(tls, (*BtShared)(unsafe.Pointer(pBt)).Fmutex)
+ }
+ removed = 1
+ }
+ Xsqlite3_mutex_leave(tls, pMainMtx)
+ return removed
+}
+
+func allocateTempSpace(tls *libc.TLS, pBt uintptr) int32 {
+ (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace = Xsqlite3PageMalloc(tls, int32((*BtShared)(unsafe.Pointer(pBt)).FpageSize))
+ if (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace == uintptr(0) {
+ var pCur uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpCursor
+ (*BtShared)(unsafe.Pointer(pBt)).FpCursor = (*BtCursor)(unsafe.Pointer(pCur)).FpNext
+ libc.X__builtin___memset_chk(tls, pCur, 0, uint64(unsafe.Sizeof(BtCursor{})), libc.X__builtin_object_size(tls, pCur, 0))
+ return SQLITE_NOMEM
+ }
+
+ libc.X__builtin___memset_chk(tls, (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace, 0, uint64(8), libc.X__builtin_object_size(tls, (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace, 0))
+ *(*uintptr)(unsafe.Pointer(pBt + 136)) += uintptr(4)
+ return SQLITE_OK
+}
+
+func freeTempSpace(tls *libc.TLS, pBt uintptr) {
+ if (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace != 0 {
+ *(*uintptr)(unsafe.Pointer(pBt + 136)) -= uintptr(4)
+ Xsqlite3PageFree(tls, (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace)
+ (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace = uintptr(0)
+ }
+}
+
+// Close an open database and invalidate all cursors.
+func Xsqlite3BtreeClose(tls *libc.TLS, p uintptr) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+
+ Xsqlite3BtreeRollback(tls, p, SQLITE_OK, 0)
+ Xsqlite3BtreeLeave(tls, p)
+
+ if !(int32((*Btree)(unsafe.Pointer(p)).Fsharable) != 0) || removeFromSharingList(tls, pBt) != 0 {
+ Xsqlite3PagerClose(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, (*Btree)(unsafe.Pointer(p)).Fdb)
+ if (*BtShared)(unsafe.Pointer(pBt)).FxFreeSchema != 0 && (*BtShared)(unsafe.Pointer(pBt)).FpSchema != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*BtShared)(unsafe.Pointer(pBt)).FxFreeSchema})).f(tls, (*BtShared)(unsafe.Pointer(pBt)).FpSchema)
+ }
+ Xsqlite3DbFree(tls, uintptr(0), (*BtShared)(unsafe.Pointer(pBt)).FpSchema)
+ freeTempSpace(tls, pBt)
+ Xsqlite3_free(tls, pBt)
+ }
+
+ if (*Btree)(unsafe.Pointer(p)).FpPrev != 0 {
+ (*Btree)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpPrev)).FpNext = (*Btree)(unsafe.Pointer(p)).FpNext
+ }
+ if (*Btree)(unsafe.Pointer(p)).FpNext != 0 {
+ (*Btree)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpNext)).FpPrev = (*Btree)(unsafe.Pointer(p)).FpPrev
+ }
+
+ Xsqlite3_free(tls, p)
+ return SQLITE_OK
+}
+
+// Change the "soft" limit on the number of pages in the cache.
+// Unused and unmodified pages will be recycled when the number of
+// pages in the cache exceeds this soft limit. But the size of the
+// cache is allowed to grow larger than this limit if it contains
+// dirty pages or pages still in active use.
+func Xsqlite3BtreeSetCacheSize(tls *libc.TLS, p uintptr, mxPage int32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ Xsqlite3PagerSetCachesize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, mxPage)
+ Xsqlite3BtreeLeave(tls, p)
+ return SQLITE_OK
+}
+
+// Change the "spill" limit on the number of pages in the cache.
+// If the number of pages exceeds this limit during a write transaction,
+// the pager might attempt to "spill" pages to the journal early in
+// order to free up memory.
+//
+// The value returned is the current spill size. If zero is passed
+// as an argument, no changes are made to the spill size setting, so
+// using mxPage of 0 is a way to query the current spill size.
+func Xsqlite3BtreeSetSpillSize(tls *libc.TLS, p uintptr, mxPage int32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var res int32
+
+ Xsqlite3BtreeEnter(tls, p)
+ res = Xsqlite3PagerSetSpillsize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, mxPage)
+ Xsqlite3BtreeLeave(tls, p)
+ return res
+}
+
+// Change the limit on the amount of the database file that may be
+// memory mapped.
+func Xsqlite3BtreeSetMmapLimit(tls *libc.TLS, p uintptr, szMmap Sqlite3_int64) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ Xsqlite3PagerSetMmapLimit(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, szMmap)
+ Xsqlite3BtreeLeave(tls, p)
+ return SQLITE_OK
+}
+
+// Change the way data is synced to disk in order to increase or decrease
+// how well the database resists damage due to OS crashes and power
+// failures. Level 1 is the same as asynchronous (no syncs() occur and
+// there is a high probability of damage) Level 2 is the default. There
+// is a very low but non-zero probability of damage. Level 3 reduces the
+// probability of damage to near zero but with a write performance reduction.
+func Xsqlite3BtreeSetPagerFlags(tls *libc.TLS, p uintptr, pgFlags uint32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ Xsqlite3PagerSetFlags(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pgFlags)
+ Xsqlite3BtreeLeave(tls, p)
+ return SQLITE_OK
+}
+
+// Change the default pages size and the number of reserved bytes per page.
+// Or, if the page size has already been fixed, return SQLITE_READONLY
+// without changing anything.
+//
+// The page size must be a power of 2 between 512 and 65536. If the page
+// size supplied does not meet this constraint then the page size is not
+// changed.
+//
+// Page sizes are constrained to be a power of two so that the region
+// of the database file used for locking (beginning at PENDING_BYTE,
+// the first byte past the 1GB boundary, 0x40000000) needs to occur
+// at the beginning of a page.
+//
+// If parameter nReserve is less than zero, then the number of reserved
+// bytes per page is left unchanged.
+//
+// If the iFix!=0 then the BTS_PAGESIZE_FIXED flag is set so that the page size
+// and autovacuum mode can no longer be changed.
+func Xsqlite3BtreeSetPageSize(tls *libc.TLS, p uintptr, pageSize int32, nReserve int32, iFix int32) int32 {
+ var rc int32 = SQLITE_OK
+ var x int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ (*BtShared)(unsafe.Pointer(pBt)).FnReserveWanted = U8(nReserve)
+ x = int32((*BtShared)(unsafe.Pointer(pBt)).FpageSize - (*BtShared)(unsafe.Pointer(pBt)).FusableSize)
+ if nReserve < x {
+ nReserve = x
+ }
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_PAGESIZE_FIXED != 0 {
+ Xsqlite3BtreeLeave(tls, p)
+ return SQLITE_READONLY
+ }
+
+ if pageSize >= 512 && pageSize <= SQLITE_MAX_PAGE_SIZE && (pageSize-1)&pageSize == 0 {
+ if nReserve > 32 && pageSize == 512 {
+ pageSize = 1024
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize = U32(pageSize)
+ freeTempSpace(tls, pBt)
+ }
+ rc = Xsqlite3PagerSetPagesize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52, nReserve)
+ (*BtShared)(unsafe.Pointer(pBt)).FusableSize = (*BtShared)(unsafe.Pointer(pBt)).FpageSize - U32(U16(nReserve))
+ if iFix != 0 {
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_PAGESIZE_FIXED)
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Return the currently defined page size
+func Xsqlite3BtreeGetPageSize(tls *libc.TLS, p uintptr) int32 {
+ return int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpageSize)
+}
+
+// This function is similar to sqlite3BtreeGetReserve(), except that it
+// may only be called if it is guaranteed that the b-tree mutex is already
+// held.
+//
+// This is useful in one special case in the backup API code where it is
+// known that the shared b-tree mutex is held, but the mutex on the
+// database handle that owns *p is not. In this case if sqlite3BtreeEnter()
+// were to be called, it might collide with some other operation on the
+// database handle that owns *p, causing undefined behavior.
+func Xsqlite3BtreeGetReserveNoMutex(tls *libc.TLS, p uintptr) int32 {
+ var n int32
+
+ n = int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpageSize - (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FusableSize)
+ return n
+}
+
+// Return the number of bytes of space at the end of every page that
+// are intentually left unused. This is the "reserved" space that is
+// sometimes used by extensions.
+//
+// The value returned is the larger of the current reserve size and
+// the latest reserve size requested by SQLITE_FILECTRL_RESERVE_BYTES.
+// The amount of reserve can only grow - never shrink.
+func Xsqlite3BtreeGetRequestedReserve(tls *libc.TLS, p uintptr) int32 {
+ var n1 int32
+ var n2 int32
+ Xsqlite3BtreeEnter(tls, p)
+ n1 = int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FnReserveWanted)
+ n2 = Xsqlite3BtreeGetReserveNoMutex(tls, p)
+ Xsqlite3BtreeLeave(tls, p)
+ if n1 > n2 {
+ return n1
+ }
+ return n2
+}
+
+// Set the maximum page count for a database if mxPage is positive.
+// No changes are made if mxPage is 0 or negative.
+// Regardless of the value of mxPage, return the maximum page count.
+func Xsqlite3BtreeMaxPageCount(tls *libc.TLS, p uintptr, mxPage Pgno) Pgno {
+ var n Pgno
+ Xsqlite3BtreeEnter(tls, p)
+ n = Xsqlite3PagerMaxPageCount(tls, (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpPager, mxPage)
+ Xsqlite3BtreeLeave(tls, p)
+ return n
+}
+
+// Change the values for the BTS_SECURE_DELETE and BTS_OVERWRITE flags:
+//
+// newFlag==0 Both BTS_SECURE_DELETE and BTS_OVERWRITE are cleared
+// newFlag==1 BTS_SECURE_DELETE set and BTS_OVERWRITE is cleared
+// newFlag==2 BTS_SECURE_DELETE cleared and BTS_OVERWRITE is set
+// newFlag==(-1) No changes
+//
+// # This routine acts as a query if newFlag is less than zero
+//
+// With BTS_OVERWRITE set, deleted content is overwritten by zeros, but
+// freelist leaf pages are not written back to the database. Thus in-page
+// deleted content is cleared, but freelist deleted content is not.
+//
+// With BTS_SECURE_DELETE, operation is like BTS_OVERWRITE with the addition
+// that freelist leaf pages are written back into the database, increasing
+// the amount of disk I/O.
+func Xsqlite3BtreeSecureDelete(tls *libc.TLS, p uintptr, newFlag int32) int32 {
+ var b int32
+ if p == uintptr(0) {
+ return 0
+ }
+ Xsqlite3BtreeEnter(tls, p)
+
+ if newFlag >= 0 {
+ *(*U16)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_FAST_SECURE))
+ *(*U16)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt + 40)) |= U16(BTS_SECURE_DELETE * newFlag)
+ }
+ b = int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FbtsFlags) & BTS_FAST_SECURE / BTS_SECURE_DELETE
+ Xsqlite3BtreeLeave(tls, p)
+ return b
+}
+
+// Change the 'auto-vacuum' property of the database. If the 'autoVacuum'
+// parameter is non-zero, then auto-vacuum mode is enabled. If zero, it
+// is disabled. The default value for the auto-vacuum property is
+// determined by the SQLITE_DEFAULT_AUTOVACUUM macro.
+func Xsqlite3BtreeSetAutoVacuum(tls *libc.TLS, p uintptr, autoVacuum int32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var rc int32 = SQLITE_OK
+ var av U8 = U8(autoVacuum)
+
+ Xsqlite3BtreeEnter(tls, p)
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_PAGESIZE_FIXED != 0 && func() int32 {
+ if av != 0 {
+ return 1
+ }
+ return 0
+ }() != int32((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum) {
+ rc = SQLITE_READONLY
+ } else {
+ (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum = func() uint8 {
+ if av != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*BtShared)(unsafe.Pointer(pBt)).FincrVacuum = func() uint8 {
+ if int32(av) == 2 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Return the value of the 'auto-vacuum' property. If auto-vacuum is
+// enabled 1 is returned. Otherwise 0.
+func Xsqlite3BtreeGetAutoVacuum(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ rc = func() int32 {
+ if !(int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FautoVacuum) != 0) {
+ return BTREE_AUTOVACUUM_NONE
+ }
+ return func() int32 {
+ if !(int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FincrVacuum) != 0) {
+ return BTREE_AUTOVACUUM_FULL
+ }
+ return BTREE_AUTOVACUUM_INCR
+ }()
+ }()
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+func lockBtree(tls *libc.TLS, pBt uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+
+ var nPage U32
+
+ var pageSize U32
+ var usableSize U32
+ var page1 uintptr
+ *(*U32)(unsafe.Pointer(bp + 8)) = U32(0)
+
+ rc = Xsqlite3PagerSharedLock(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager)
+ if !(rc != SQLITE_OK) {
+ goto __1
+ }
+ return rc
+__1:
+ ;
+ rc = btreeGetPage(tls, pBt, uint32(1), bp, 0)
+ if !(rc != SQLITE_OK) {
+ goto __2
+ }
+ return rc
+__2:
+ ;
+ nPage = Xsqlite3Get4byte(tls, uintptr(28)+(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData)
+ Xsqlite3PagerPagecount(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, bp+8)
+ if !(nPage == U32(0) || libc.Xmemcmp(tls, uintptr(24)+(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData, uintptr(92)+(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData, uint64(4)) != 0) {
+ goto __3
+ }
+ nPage = *(*U32)(unsafe.Pointer(bp + 8))
+__3:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags&uint64(SQLITE_ResetDatabase) != uint64(0)) {
+ goto __4
+ }
+ nPage = U32(0)
+__4:
+ ;
+ if !(nPage > U32(0)) {
+ goto __5
+ }
+ page1 = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData
+ rc = SQLITE_NOTADB
+
+ if !(libc.Xmemcmp(tls, page1, uintptr(unsafe.Pointer(&zMagicHeader)), uint64(16)) != 0) {
+ goto __6
+ }
+ goto page1_init_failed
+__6:
+ ;
+ if !(int32(*(*U8)(unsafe.Pointer(page1 + 18))) > 2) {
+ goto __7
+ }
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_READ_ONLY)
+__7:
+ ;
+ if !(int32(*(*U8)(unsafe.Pointer(page1 + 19))) > 2) {
+ goto __8
+ }
+ goto page1_init_failed
+__8:
+ ;
+ if !(int32(*(*U8)(unsafe.Pointer(page1 + 19))) == 2 && int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_NO_WAL == 0) {
+ goto __9
+ }
+ *(*int32)(unsafe.Pointer(bp + 12)) = 0
+ rc = Xsqlite3PagerOpenWal(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, bp+12)
+ if !(rc != SQLITE_OK) {
+ goto __11
+ }
+ goto page1_init_failed
+ goto __12
+__11:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 12)) == 0) {
+ goto __13
+ }
+ releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return SQLITE_OK
+__13:
+ ;
+__12:
+ ;
+ rc = SQLITE_NOTADB
+ goto __10
+__9:
+ ;
+__10:
+ ;
+ if !(libc.Xmemcmp(tls, page1+21, ts+4461, uint64(3)) != 0) {
+ goto __14
+ }
+ goto page1_init_failed
+__14:
+ ;
+ pageSize = U32(int32(*(*U8)(unsafe.Pointer(page1 + 16)))<<8 | int32(*(*U8)(unsafe.Pointer(page1 + 17)))<<16)
+
+ if !((pageSize-U32(1))&pageSize != U32(0) ||
+ pageSize > U32(SQLITE_MAX_PAGE_SIZE) ||
+ pageSize <= U32(256)) {
+ goto __15
+ }
+ goto page1_init_failed
+__15:
+ ;
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_PAGESIZE_FIXED)
+
+ usableSize = pageSize - U32(*(*U8)(unsafe.Pointer(page1 + 20)))
+ if !(pageSize != (*BtShared)(unsafe.Pointer(pBt)).FpageSize) {
+ goto __16
+ }
+
+ releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ (*BtShared)(unsafe.Pointer(pBt)).FusableSize = usableSize
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize = pageSize
+ freeTempSpace(tls, pBt)
+ rc = Xsqlite3PagerSetPagesize(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52,
+ int32(pageSize-usableSize))
+ return rc
+__16:
+ ;
+ if !(nPage > *(*U32)(unsafe.Pointer(bp + 8))) {
+ goto __17
+ }
+ if !(Xsqlite3WritableSchema(tls, (*BtShared)(unsafe.Pointer(pBt)).Fdb) == 0) {
+ goto __18
+ }
+ rc = Xsqlite3CorruptError(tls, 71722)
+ goto page1_init_failed
+ goto __19
+__18:
+ nPage = *(*U32)(unsafe.Pointer(bp + 8))
+__19:
+ ;
+__17:
+ ;
+ if !(usableSize < U32(480)) {
+ goto __20
+ }
+ goto page1_init_failed
+__20:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize = pageSize
+ (*BtShared)(unsafe.Pointer(pBt)).FusableSize = usableSize
+ (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum = func() uint8 {
+ if Xsqlite3Get4byte(tls, page1+52) != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*BtShared)(unsafe.Pointer(pBt)).FincrVacuum = func() uint8 {
+ if Xsqlite3Get4byte(tls, page1+64) != 0 {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+__5:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FmaxLocal = U16(((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(12))*U32(64)/U32(255) - U32(23))
+ (*BtShared)(unsafe.Pointer(pBt)).FminLocal = U16(((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(12))*U32(32)/U32(255) - U32(23))
+ (*BtShared)(unsafe.Pointer(pBt)).FmaxLeaf = U16((*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(35))
+ (*BtShared)(unsafe.Pointer(pBt)).FminLeaf = U16(((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(12))*U32(32)/U32(255) - U32(23))
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FmaxLocal) > 127) {
+ goto __21
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).Fmax1bytePayload = U8(127)
+ goto __22
+__21:
+ (*BtShared)(unsafe.Pointer(pBt)).Fmax1bytePayload = U8((*BtShared)(unsafe.Pointer(pBt)).FmaxLocal)
+__22:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp))
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = nPage
+ return SQLITE_OK
+
+page1_init_failed:
+ releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ (*BtShared)(unsafe.Pointer(pBt)).FpPage1 = uintptr(0)
+ return rc
+}
+
+func unlockBtreeIfUnused(tls *libc.TLS, pBt uintptr) {
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE && (*BtShared)(unsafe.Pointer(pBt)).FpPage1 != uintptr(0) {
+ var pPage1 uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpPage1
+
+ (*BtShared)(unsafe.Pointer(pBt)).FpPage1 = uintptr(0)
+ releasePageOne(tls, pPage1)
+ }
+}
+
+func newDatabase(tls *libc.TLS, pBt uintptr) int32 {
+ var pP1 uintptr
+ var data uintptr
+ var rc int32
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FnPage > U32(0) {
+ return SQLITE_OK
+ }
+ pP1 = (*BtShared)(unsafe.Pointer(pBt)).FpPage1
+
+ data = (*MemPage)(unsafe.Pointer(pP1)).FaData
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pP1)).FpDbPage)
+ if rc != 0 {
+ return rc
+ }
+ libc.X__builtin___memcpy_chk(tls, data, uintptr(unsafe.Pointer(&zMagicHeader)), uint64(unsafe.Sizeof(zMagicHeader)), libc.X__builtin_object_size(tls, data, 0))
+
+ *(*uint8)(unsafe.Pointer(data + 16)) = U8((*BtShared)(unsafe.Pointer(pBt)).FpageSize >> 8 & U32(0xff))
+ *(*uint8)(unsafe.Pointer(data + 17)) = U8((*BtShared)(unsafe.Pointer(pBt)).FpageSize >> 16 & U32(0xff))
+ *(*uint8)(unsafe.Pointer(data + 18)) = uint8(1)
+ *(*uint8)(unsafe.Pointer(data + 19)) = uint8(1)
+
+ *(*uint8)(unsafe.Pointer(data + 20)) = U8((*BtShared)(unsafe.Pointer(pBt)).FpageSize - (*BtShared)(unsafe.Pointer(pBt)).FusableSize)
+ *(*uint8)(unsafe.Pointer(data + 21)) = uint8(64)
+ *(*uint8)(unsafe.Pointer(data + 22)) = uint8(32)
+ *(*uint8)(unsafe.Pointer(data + 23)) = uint8(32)
+ libc.X__builtin___memset_chk(tls, data+24, 0, uint64(100-24), libc.X__builtin_object_size(tls, data+24, 0))
+ zeroPage(tls, pP1, PTF_INTKEY|PTF_LEAF|PTF_LEAFDATA)
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_PAGESIZE_FIXED)
+
+ Xsqlite3Put4byte(tls, data+52, uint32((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum))
+ Xsqlite3Put4byte(tls, data+64, uint32((*BtShared)(unsafe.Pointer(pBt)).FincrVacuum))
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = U32(1)
+ *(*uint8)(unsafe.Pointer(data + 31)) = uint8(1)
+ return SQLITE_OK
+}
+
+// Initialize the first page of the database file (creating a database
+// consisting of a single page and no schema objects). Return SQLITE_OK
+// if successful, or an SQLite error code otherwise.
+func Xsqlite3BtreeNewDb(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FnPage = U32(0)
+ rc = newDatabase(tls, (*Btree)(unsafe.Pointer(p)).FpBt)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Attempt to start a new transaction. A write-transaction
+// is started if the second argument is nonzero, otherwise a read-
+// transaction. If the second argument is 2 or more and exclusive
+// transaction is started, meaning that no other process is allowed
+// to access the database. A preexisting transaction may not be
+// upgraded to exclusive by calling this routine a second time - the
+// exclusivity flag only works for a new transaction.
+//
+// A write-transaction must be started before attempting any
+// changes to the database. None of the following routines
+// will work unless a transaction is started first:
+//
+// sqlite3BtreeCreateTable()
+// sqlite3BtreeCreateIndex()
+// sqlite3BtreeClearTable()
+// sqlite3BtreeDropTable()
+// sqlite3BtreeInsert()
+// sqlite3BtreeDelete()
+// sqlite3BtreeUpdateMeta()
+//
+// If an initial attempt to acquire the lock fails because of lock contention
+// and the database was previously unlocked, then invoke the busy handler
+// if there is one. But if there was previously a read-lock, do not
+// invoke the busy handler - just return SQLITE_BUSY. SQLITE_BUSY is
+// returned when there is already a read-lock in order to avoid a deadlock.
+//
+// Suppose there are two processes A and B. A has a read lock and B has
+// a reserved lock. B tries to promote to exclusive but is blocked because
+// of A's read lock. A tries to promote to reserved but is blocked by B.
+// One or the other of the two processes must give way or there can be
+// no progress. By returning SQLITE_BUSY and not invoking the busy callback
+// when A already has a read lock, we encourage A to give up and let B
+// proceed.
+func Xsqlite3BtreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uintptr) int32 {
+ var pBt uintptr
+ var pPager uintptr
+ var rc int32
+ var pIter uintptr
+ var pBlock uintptr
+ var pPage1 uintptr
+ pBt = (*Btree)(unsafe.Pointer(p)).FpBt
+ pPager = (*BtShared)(unsafe.Pointer(pBt)).FpPager
+ rc = SQLITE_OK
+
+ Xsqlite3BtreeEnter(tls, p)
+
+ if !(int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_WRITE || int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_READ && !(wrflag != 0)) {
+ goto __1
+ }
+ goto trans_begun
+__1:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).Fdb)).Fflags&uint64(SQLITE_ResetDatabase) != 0 &&
+ int32(Xsqlite3PagerIsreadonly(tls, pPager)) == 0) {
+ goto __2
+ }
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_READ_ONLY))
+__2:
+ ;
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_READ_ONLY != 0 && wrflag != 0) {
+ goto __3
+ }
+ rc = SQLITE_READONLY
+ goto trans_begun
+__3:
+ ;
+ pBlock = uintptr(0)
+
+ if !(wrflag != 0 && int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_WRITE ||
+ int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_PENDING != 0) {
+ goto __4
+ }
+ pBlock = (*Btree)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpWriter)).Fdb
+ goto __5
+__4:
+ if !(wrflag > 1) {
+ goto __6
+ }
+ pIter = (*BtShared)(unsafe.Pointer(pBt)).FpLock
+__7:
+ if !(pIter != 0) {
+ goto __9
+ }
+ if !((*BtLock)(unsafe.Pointer(pIter)).FpBtree != p) {
+ goto __10
+ }
+ pBlock = (*Btree)(unsafe.Pointer((*BtLock)(unsafe.Pointer(pIter)).FpBtree)).Fdb
+ goto __9
+__10:
+ ;
+ goto __8
+__8:
+ pIter = (*BtLock)(unsafe.Pointer(pIter)).FpNext
+ goto __7
+ goto __9
+__9:
+ ;
+__6:
+ ;
+__5:
+ ;
+ if !(pBlock != 0) {
+ goto __11
+ }
+ Xsqlite3ConnectionBlocked(tls, (*Btree)(unsafe.Pointer(p)).Fdb, pBlock)
+ rc = SQLITE_LOCKED | int32(1)<<8
+ goto trans_begun
+__11:
+ ;
+ rc = querySharedCacheTableLock(tls, p, uint32(SCHEMA_ROOT), uint8(READ_LOCK))
+ if !(SQLITE_OK != rc) {
+ goto __12
+ }
+ goto trans_begun
+__12:
+ ;
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_INITIALLY_EMPTY))
+ if !((*BtShared)(unsafe.Pointer(pBt)).FnPage == U32(0)) {
+ goto __13
+ }
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_INITIALLY_EMPTY)
+__13:
+ ;
+__14:
+ ;
+__17:
+ if !((*BtShared)(unsafe.Pointer(pBt)).FpPage1 == uintptr(0) && SQLITE_OK == libc.AssignInt32(&rc, lockBtree(tls, pBt))) {
+ goto __18
+ }
+ goto __17
+__18:
+ ;
+ if !(rc == SQLITE_OK && wrflag != 0) {
+ goto __19
+ }
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_READ_ONLY != 0) {
+ goto __20
+ }
+ rc = SQLITE_READONLY
+ goto __21
+__20:
+ rc = Xsqlite3PagerBegin(tls, pPager, libc.Bool32(wrflag > 1), Xsqlite3TempInMemory(tls, (*Btree)(unsafe.Pointer(p)).Fdb))
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ rc = newDatabase(tls, pBt)
+ goto __23
+__22:
+ if !(rc == SQLITE_BUSY|int32(2)<<8 && int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE) {
+ goto __24
+ }
+
+ rc = SQLITE_BUSY
+__24:
+ ;
+__23:
+ ;
+__21:
+ ;
+__19:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __25
+ }
+
+ unlockBtreeIfUnused(tls, pBt)
+__25:
+ ;
+ goto __15
+__15:
+ if rc&0xFF == SQLITE_BUSY && int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE && btreeInvokeBusyHandler(tls, pBt) != 0 {
+ goto __14
+ }
+ goto __16
+__16:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __26
+ }
+ if !(int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_NONE) {
+ goto __27
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FnTransaction++
+ if !((*Btree)(unsafe.Pointer(p)).Fsharable != 0) {
+ goto __28
+ }
+
+ (*Btree)(unsafe.Pointer(p)).Flock.FeLock = U8(READ_LOCK)
+ (*Btree)(unsafe.Pointer(p)).Flock.FpNext = (*BtShared)(unsafe.Pointer(pBt)).FpLock
+ (*BtShared)(unsafe.Pointer(pBt)).FpLock = p + 48
+__28:
+ ;
+__27:
+ ;
+ (*Btree)(unsafe.Pointer(p)).FinTrans = func() uint8 {
+ if wrflag != 0 {
+ return uint8(TRANS_WRITE)
+ }
+ return uint8(TRANS_READ)
+ }()
+ if !(int32((*Btree)(unsafe.Pointer(p)).FinTrans) > int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction)) {
+ goto __29
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FinTransaction = (*Btree)(unsafe.Pointer(p)).FinTrans
+__29:
+ ;
+ if !(wrflag != 0) {
+ goto __30
+ }
+ pPage1 = (*BtShared)(unsafe.Pointer(pBt)).FpPage1
+
+ (*BtShared)(unsafe.Pointer(pBt)).FpWriter = p
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_EXCLUSIVE))
+ if !(wrflag > 1) {
+ goto __31
+ }
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_EXCLUSIVE)
+__31:
+ ;
+ if !((*BtShared)(unsafe.Pointer(pBt)).FnPage != Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+28)) {
+ goto __32
+ }
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage1)).FpDbPage)
+ if !(rc == SQLITE_OK) {
+ goto __33
+ }
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+28, (*BtShared)(unsafe.Pointer(pBt)).FnPage)
+__33:
+ ;
+__32:
+ ;
+__30:
+ ;
+__26:
+ ;
+trans_begun:
+ if !(rc == SQLITE_OK) {
+ goto __34
+ }
+ if !(pSchemaVersion != 0) {
+ goto __35
+ }
+ *(*int32)(unsafe.Pointer(pSchemaVersion)) = int32(Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+40))
+__35:
+ ;
+ if !(wrflag != 0) {
+ goto __36
+ }
+
+ rc = Xsqlite3PagerOpenSavepoint(tls, pPager, (*Sqlite3)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).Fdb)).FnSavepoint)
+__36:
+ ;
+__34:
+ ;
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+func setChildPtrmaps(tls *libc.TLS, pPage uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32
+ var nCell int32
+
+ var pBt uintptr = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+ var pgno Pgno = (*MemPage)(unsafe.Pointer(pPage)).Fpgno
+
+ if (*MemPage)(unsafe.Pointer(pPage)).FisInit != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = btreeInitPage(tls, pPage)
+ }
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ nCell = int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+
+ for i = 0; i < nCell; i++ {
+ var pCell uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*i))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*i) + 1)))))
+
+ ptrmapPutOvflPtr(tls, pPage, pPage, pCell, bp)
+
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ var childPgno Pgno = Xsqlite3Get4byte(tls, pCell)
+ ptrmapPut(tls, pBt, childPgno, uint8(PTRMAP_BTREE), pgno, bp)
+ }
+ }
+
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ var childPgno Pgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8))
+ ptrmapPut(tls, pBt, childPgno, uint8(PTRMAP_BTREE), pgno, bp)
+ }
+
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom Pgno, iTo Pgno, eType U8) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if int32(eType) == PTRMAP_OVERFLOW2 {
+ if Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData) != iFrom {
+ return Xsqlite3CorruptError(tls, 72143)
+ }
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData, iTo)
+ } else {
+ var i int32
+ var nCell int32
+ var rc int32
+
+ if (*MemPage)(unsafe.Pointer(pPage)).FisInit != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = btreeInitPage(tls, pPage)
+ }
+ if rc != 0 {
+ return rc
+ }
+ nCell = int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+
+ for i = 0; i < nCell; i++ {
+ var pCell uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*i))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*i) + 1)))))
+ if int32(eType) == PTRMAP_OVERFLOW1 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, pCell, bp)
+ if U32((*CellInfo)(unsafe.Pointer(bp)).FnLocal) < (*CellInfo)(unsafe.Pointer(bp)).FnPayload {
+ if pCell+uintptr((*CellInfo)(unsafe.Pointer(bp)).FnSize) > (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) {
+ return Xsqlite3CorruptError(tls, 72162)
+ }
+ if iFrom == Xsqlite3Get4byte(tls, pCell+uintptr((*CellInfo)(unsafe.Pointer(bp)).FnSize)-uintptr(4)) {
+ Xsqlite3Put4byte(tls, pCell+uintptr((*CellInfo)(unsafe.Pointer(bp)).FnSize)-uintptr(4), iTo)
+ break
+ }
+ }
+ } else {
+ if pCell+uintptr(4) > (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) {
+ return Xsqlite3CorruptError(tls, 72171)
+ }
+ if Xsqlite3Get4byte(tls, pCell) == iFrom {
+ Xsqlite3Put4byte(tls, pCell, iTo)
+ break
+ }
+ }
+ }
+
+ if i == nCell {
+ if int32(eType) != PTRMAP_BTREE || Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8)) != iFrom {
+ return Xsqlite3CorruptError(tls, 72183)
+ }
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8), iTo)
+ }
+ }
+ return SQLITE_OK
+}
+
+func relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType U8, iPtrPage Pgno, iFreePage Pgno, isCommit int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var iDbPage Pgno = (*MemPage)(unsafe.Pointer(pDbPage)).Fpgno
+ var pPager uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpPager
+
+ if iDbPage < Pgno(3) {
+ return Xsqlite3CorruptError(tls, 72218)
+ }
+
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3PagerMovepage(tls, pPager, (*MemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit)
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ (*MemPage)(unsafe.Pointer(pDbPage)).Fpgno = iFreePage
+
+ if int32(eType) == PTRMAP_BTREE || int32(eType) == PTRMAP_ROOTPAGE {
+ *(*int32)(unsafe.Pointer(bp)) = setChildPtrmaps(tls, pDbPage)
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ } else {
+ var nextOvfl Pgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pDbPage)).FaData)
+ if nextOvfl != Pgno(0) {
+ ptrmapPut(tls, pBt, nextOvfl, uint8(PTRMAP_OVERFLOW2), iFreePage, bp)
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ }
+
+ if int32(eType) != PTRMAP_ROOTPAGE {
+ *(*int32)(unsafe.Pointer(bp)) = btreeGetPage(tls, pBt, iPtrPage, bp+8, 0)
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpDbPage)
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ *(*int32)(unsafe.Pointer(bp)) = modifyPagePointer(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), iDbPage, iFreePage, eType)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ ptrmapPut(tls, pBt, iFreePage, eType, iPtrPage, bp)
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin Pgno, iLastPg Pgno, bCommit int32) int32 {
+ bp := tls.Alloc(44)
+ defer tls.Free(44)
+
+ var nFreeList Pgno
+ var rc int32
+
+ if !(ptrmapPageno(tls, pBt, iLastPg) == iLastPg) && iLastPg != U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ nFreeList = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)
+ if nFreeList == Pgno(0) {
+ return SQLITE_DONE
+ }
+
+ rc = ptrmapGet(tls, pBt, iLastPg, bp, bp+4)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ if int32(*(*U8)(unsafe.Pointer(bp))) == PTRMAP_ROOTPAGE {
+ return Xsqlite3CorruptError(tls, 72316)
+ }
+
+ if int32(*(*U8)(unsafe.Pointer(bp))) == PTRMAP_FREEPAGE {
+ if bCommit == 0 {
+ rc = allocateBtreePage(tls, pBt, bp+8, bp+16, iLastPg, uint8(BTALLOC_EXACT))
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ } else {
+ var eMode U8 = U8(BTALLOC_ANY)
+ var iNear Pgno = Pgno(0)
+
+ rc = btreeGetPage(tls, pBt, iLastPg, bp+24, 0)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ if bCommit == 0 {
+ eMode = U8(BTALLOC_LE)
+ iNear = nFin
+ }
+ for __ccgo := true; __ccgo; __ccgo = bCommit != 0 && *(*Pgno)(unsafe.Pointer(bp + 40)) > nFin {
+ var dbSize Pgno = btreePagecount(tls, pBt)
+ rc = allocateBtreePage(tls, pBt, bp+32, bp+40, iNear, eMode)
+ if rc != SQLITE_OK {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return rc
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ if *(*Pgno)(unsafe.Pointer(bp + 40)) > dbSize {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return Xsqlite3CorruptError(tls, 72368)
+ }
+ }
+
+ rc = relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*U8)(unsafe.Pointer(bp)), *(*Pgno)(unsafe.Pointer(bp + 4)), *(*Pgno)(unsafe.Pointer(bp + 40)), bCommit)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ }
+
+ if bCommit == 0 {
+ for __ccgo1 := true; __ccgo1; __ccgo1 = iLastPg == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) || ptrmapPageno(tls, pBt, iLastPg) == iLastPg {
+ iLastPg--
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FbDoTruncate = U8(1)
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = iLastPg
+ }
+ return SQLITE_OK
+}
+
+func finalDbSize(tls *libc.TLS, pBt uintptr, nOrig Pgno, nFree Pgno) Pgno {
+ var nEntry int32
+ var nPtrmap Pgno
+ var nFin Pgno
+
+ nEntry = int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize / U32(5))
+ nPtrmap = (nFree - nOrig + ptrmapPageno(tls, pBt, nOrig) + Pgno(nEntry)) / Pgno(nEntry)
+ nFin = nOrig - nFree - nPtrmap
+ if nOrig > U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) && nFin < U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ nFin--
+ }
+ for ptrmapPageno(tls, pBt, nFin) == nFin || nFin == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ nFin--
+ }
+
+ return nFin
+}
+
+// A write-transaction must be opened before calling this function.
+// It performs a single unit of work towards an incremental vacuum.
+//
+// If the incremental vacuum is finished after this function has run,
+// SQLITE_DONE is returned. If it is not finished, but no error occurred,
+// SQLITE_OK is returned. Otherwise an SQLite error code.
+func Xsqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum) != 0) {
+ rc = SQLITE_DONE
+ } else {
+ var nOrig Pgno = btreePagecount(tls, pBt)
+ var nFree Pgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)
+ var nFin Pgno = finalDbSize(tls, pBt, nOrig, nFree)
+
+ if nOrig < nFin || nFree >= nOrig {
+ rc = Xsqlite3CorruptError(tls, 72436)
+ } else if nFree > Pgno(0) {
+ rc = saveAllCursors(tls, pBt, uint32(0), uintptr(0))
+ if rc == SQLITE_OK {
+ invalidateAllOverflowCache(tls, pBt)
+ rc = incrVacuumStep(tls, pBt, nFin, nOrig, 0)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FpDbPage)
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+28, (*BtShared)(unsafe.Pointer(pBt)).FnPage)
+ }
+ } else {
+ rc = SQLITE_DONE
+ }
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+func autoVacuumCommit(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pPager uintptr
+ var pBt uintptr
+ var db uintptr
+
+ pBt = (*Btree)(unsafe.Pointer(p)).FpBt
+ pPager = (*BtShared)(unsafe.Pointer(pBt)).FpPager
+
+ invalidateAllOverflowCache(tls, pBt)
+
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FincrVacuum) != 0) {
+ var nFin Pgno
+ var nFree Pgno
+ var nVac Pgno
+ var iFree Pgno
+ var nOrig Pgno
+
+ nOrig = btreePagecount(tls, pBt)
+ if ptrmapPageno(tls, pBt, nOrig) == nOrig || nOrig == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ return Xsqlite3CorruptError(tls, 72487)
+ }
+
+ nFree = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)
+ db = (*Btree)(unsafe.Pointer(p)).Fdb
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAutovacPages != 0 {
+ var iDb int32
+ for iDb = 0; iDb < (*Sqlite3)(unsafe.Pointer(db)).FnDb; iDb++ {
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpBt == p {
+ break
+ }
+ }
+ nVac = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, U32, U32, U32) uint32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxAutovacPages})).f(tls,
+ (*Sqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg,
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName,
+ nOrig,
+ nFree,
+ (*BtShared)(unsafe.Pointer(pBt)).FpageSize)
+ if nVac > nFree {
+ nVac = nFree
+ }
+ if nVac == Pgno(0) {
+ return SQLITE_OK
+ }
+ } else {
+ nVac = nFree
+ }
+ nFin = finalDbSize(tls, pBt, nOrig, nVac)
+ if nFin > nOrig {
+ return Xsqlite3CorruptError(tls, 72514)
+ }
+ if nFin < nOrig {
+ rc = saveAllCursors(tls, pBt, uint32(0), uintptr(0))
+ }
+ for iFree = nOrig; iFree > nFin && rc == SQLITE_OK; iFree-- {
+ rc = incrVacuumStep(tls, pBt, nFin, iFree, libc.Bool32(nVac == nFree))
+ }
+ if (rc == SQLITE_DONE || rc == SQLITE_OK) && nFree > Pgno(0) {
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FpDbPage)
+ if nVac == nFree {
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32, uint32(0))
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36, uint32(0))
+ }
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+28, nFin)
+ (*BtShared)(unsafe.Pointer(pBt)).FbDoTruncate = U8(1)
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = nFin
+ }
+ if rc != SQLITE_OK {
+ Xsqlite3PagerRollback(tls, pPager)
+ }
+ }
+
+ return rc
+}
+
+// This routine does the first phase of a two-phase commit. This routine
+// causes a rollback journal to be created (if it does not already exist)
+// and populated with enough information so that if a power loss occurs
+// the database can be restored to its original state by playing back
+// the journal. Then the contents of the journal are flushed out to
+// the disk. After the journal is safely on oxide, the changes to the
+// database are written into the database file and flushed to oxide.
+// At the end of this call, the rollback journal still exists on the
+// disk and we are still holding all locks, so the transaction has not
+// committed. See sqlite3BtreeCommitPhaseTwo() for the second phase of the
+// commit process.
+//
+// This call is a no-op if no write-transaction is currently active on pBt.
+//
+// Otherwise, sync the database file for the btree pBt. zSuperJrnl points to
+// the name of a super-journal file that should be written into the
+// individual journal file, or is NULL, indicating no super-journal file
+// (single database transaction).
+//
+// When this is called, the super-journal should already have been
+// created, populated with this journal pointer and synced to disk.
+//
+// Once this is routine has returned, the only thing required to commit
+// the write-transaction for this database file is to delete the journal.
+func Xsqlite3BtreeCommitPhaseOne(tls *libc.TLS, p uintptr, zSuperJrnl uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_WRITE {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ Xsqlite3BtreeEnter(tls, p)
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ rc = autoVacuumCommit(tls, p)
+ if rc != SQLITE_OK {
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+ }
+ }
+ if (*BtShared)(unsafe.Pointer(pBt)).FbDoTruncate != 0 {
+ Xsqlite3PagerTruncateImage(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, (*BtShared)(unsafe.Pointer(pBt)).FnPage)
+ }
+ rc = Xsqlite3PagerCommitPhaseOne(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, zSuperJrnl, 0)
+ Xsqlite3BtreeLeave(tls, p)
+ }
+ return rc
+}
+
+func btreeEndTransaction(tls *libc.TLS, p uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var db uintptr = (*Btree)(unsafe.Pointer(p)).Fdb
+
+ (*BtShared)(unsafe.Pointer(pBt)).FbDoTruncate = U8(0)
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) > TRANS_NONE && (*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > 1 {
+ downgradeAllSharedCacheTableLocks(tls, p)
+ (*Btree)(unsafe.Pointer(p)).FinTrans = U8(TRANS_READ)
+ } else {
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) != TRANS_NONE {
+ clearAllSharedCacheTableLocks(tls, p)
+ (*BtShared)(unsafe.Pointer(pBt)).FnTransaction--
+ if 0 == (*BtShared)(unsafe.Pointer(pBt)).FnTransaction {
+ (*BtShared)(unsafe.Pointer(pBt)).FinTransaction = U8(TRANS_NONE)
+ }
+ }
+
+ (*Btree)(unsafe.Pointer(p)).FinTrans = U8(TRANS_NONE)
+ unlockBtreeIfUnused(tls, pBt)
+ }
+
+}
+
+// Commit the transaction currently in progress.
+//
+// This routine implements the second phase of a 2-phase commit. The
+// sqlite3BtreeCommitPhaseOne() routine does the first phase and should
+// be invoked prior to calling this routine. The sqlite3BtreeCommitPhaseOne()
+// routine did all the work of writing information out to disk and flushing the
+// contents so that they are written onto the disk platter. All this
+// routine has to do is delete or truncate or zero the header in the
+// the rollback journal (which causes the transaction to commit) and
+// drop locks.
+//
+// Normally, if an error occurs while the pager layer is attempting to
+// finalize the underlying journal file, this function returns an error and
+// the upper layer will attempt a rollback. However, if the second argument
+// is non-zero then this b-tree transaction is part of a multi-file
+// transaction. In this case, the transaction has already been committed
+// (by deleting a super-journal file) and the caller will ignore this
+// functions return code. So, even if an error occurs in the pager layer,
+// reset the b-tree objects internal state to indicate that the write
+// transaction has been closed. This is quite safe, as the pager will have
+// transitioned to the error state.
+//
+// This will release the write lock on the database file. If there
+// are no active cursors, it also releases the read lock.
+func Xsqlite3BtreeCommitPhaseTwo(tls *libc.TLS, p uintptr, bCleanup int32) int32 {
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_NONE {
+ return SQLITE_OK
+ }
+ Xsqlite3BtreeEnter(tls, p)
+
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_WRITE {
+ var rc int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ rc = Xsqlite3PagerCommitPhaseTwo(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager)
+ if rc != SQLITE_OK && bCleanup == 0 {
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+ }
+ (*Btree)(unsafe.Pointer(p)).FiBDataVersion--
+ (*BtShared)(unsafe.Pointer(pBt)).FinTransaction = U8(TRANS_READ)
+ btreeClearHasContent(tls, pBt)
+ }
+
+ btreeEndTransaction(tls, p)
+ Xsqlite3BtreeLeave(tls, p)
+ return SQLITE_OK
+}
+
+// Do both phases of a commit.
+func Xsqlite3BtreeCommit(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ rc = Xsqlite3BtreeCommitPhaseOne(tls, p, uintptr(0))
+ if rc == SQLITE_OK {
+ rc = Xsqlite3BtreeCommitPhaseTwo(tls, p, 0)
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// This routine sets the state to CURSOR_FAULT and the error
+// code to errCode for every cursor on any BtShared that pBtree
+// references. Or if the writeOnly flag is set to 1, then only
+// trip write cursors and leave read cursors unchanged.
+//
+// Every cursor is a candidate to be tripped, including cursors
+// that belong to other database connections that happen to be
+// sharing the cache with pBtree.
+//
+// This routine gets called when a rollback occurs. If the writeOnly
+// flag is true, then only write-cursors need be tripped - read-only
+// cursors save their current positions so that they may continue
+// following the rollback. Or, if writeOnly is false, all cursors are
+// tripped. In general, writeOnly is false if the transaction being
+// rolled back modified the database schema. In this case b-tree root
+// pages may be moved or deleted from the database altogether, making
+// it unsafe for read cursors to continue.
+//
+// If the writeOnly flag is true and an error is encountered while
+// saving the current position of a read-only cursor, all cursors,
+// including all read-cursors are tripped.
+//
+// SQLITE_OK is returned if successful, or if an error occurs while
+// saving a cursor position, an SQLite error code.
+func Xsqlite3BtreeTripAllCursors(tls *libc.TLS, pBtree uintptr, errCode int32, writeOnly int32) int32 {
+ var p uintptr
+ var rc int32 = SQLITE_OK
+
+ if pBtree != 0 {
+ Xsqlite3BtreeEnter(tls, pBtree)
+ for p = (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(pBtree)).FpBt)).FpCursor; p != 0; p = (*BtCursor)(unsafe.Pointer(p)).FpNext {
+ if writeOnly != 0 && int32((*BtCursor)(unsafe.Pointer(p)).FcurFlags)&BTCF_WriteFlag == 0 {
+ if int32((*BtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_VALID || int32((*BtCursor)(unsafe.Pointer(p)).FeState) == CURSOR_SKIPNEXT {
+ rc = saveCursorPosition(tls, p)
+ if rc != SQLITE_OK {
+ Xsqlite3BtreeTripAllCursors(tls, pBtree, rc, 0)
+ break
+ }
+ }
+ } else {
+ Xsqlite3BtreeClearCursor(tls, p)
+ (*BtCursor)(unsafe.Pointer(p)).FeState = U8(CURSOR_FAULT)
+ (*BtCursor)(unsafe.Pointer(p)).FskipNext = errCode
+ }
+ btreeReleaseAllCursorPages(tls, p)
+ }
+ Xsqlite3BtreeLeave(tls, pBtree)
+ }
+ return rc
+}
+
+func btreeSetNPage(tls *libc.TLS, pBt uintptr, pPage1 uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = int32(Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+28))
+
+ if *(*int32)(unsafe.Pointer(bp)) == 0 {
+ Xsqlite3PagerPagecount(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, bp)
+ }
+
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = U32(*(*int32)(unsafe.Pointer(bp)))
+}
+
+// Rollback the transaction in progress.
+//
+// If tripCode is not SQLITE_OK then cursors will be invalidated (tripped).
+// Only write cursors are tripped if writeOnly is true but all cursors are
+// tripped if writeOnly is false. Any attempt to use
+// a tripped cursor will result in an error.
+//
+// This will release the write lock on the database file. If there
+// are no active cursors, it also releases the read lock.
+func Xsqlite3BtreeRollback(tls *libc.TLS, p uintptr, tripCode int32, writeOnly int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ if tripCode == SQLITE_OK {
+ rc = libc.AssignInt32(&tripCode, saveAllCursors(tls, pBt, uint32(0), uintptr(0)))
+ if rc != 0 {
+ writeOnly = 0
+ }
+ } else {
+ rc = SQLITE_OK
+ }
+ if tripCode != 0 {
+ var rc2 int32 = Xsqlite3BtreeTripAllCursors(tls, p, tripCode, writeOnly)
+
+ if rc2 != SQLITE_OK {
+ rc = rc2
+ }
+ }
+
+ if int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_WRITE {
+ var rc2 int32
+
+ rc2 = Xsqlite3PagerRollback(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager)
+ if rc2 != SQLITE_OK {
+ rc = rc2
+ }
+
+ if btreeGetPage(tls, pBt, uint32(1), bp, 0) == SQLITE_OK {
+ btreeSetNPage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp)))
+ releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ (*BtShared)(unsafe.Pointer(pBt)).FinTransaction = U8(TRANS_READ)
+ btreeClearHasContent(tls, pBt)
+ }
+
+ btreeEndTransaction(tls, p)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Start a statement subtransaction. The subtransaction can be rolled
+// back independently of the main transaction. You must start a transaction
+// before starting a subtransaction. The subtransaction is ended automatically
+// if the main transaction commits or rolls back.
+//
+// Statement subtransactions are used around individual SQL statements
+// that are contained within a BEGIN...COMMIT block. If a constraint
+// error occurs within the statement, the effect of that one statement
+// can be rolled back without having to rollback the entire transaction.
+//
+// A statement sub-transaction is implemented as an anonymous savepoint. The
+// value passed as the second parameter is the total number of savepoints,
+// including the new anonymous savepoint, open on the B-Tree. i.e. if there
+// are no active savepoints and no other statement-transactions open,
+// iStatement is 1. This anonymous savepoint can be released or rolled back
+// using the sqlite3BtreeSavepoint() function.
+func Xsqlite3BtreeBeginStmt(tls *libc.TLS, p uintptr, iStatement int32) int32 {
+ var rc int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ Xsqlite3BtreeEnter(tls, p)
+
+ rc = Xsqlite3PagerOpenSavepoint(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, iStatement)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// The second argument to this function, op, is always SAVEPOINT_ROLLBACK
+// or SAVEPOINT_RELEASE. This function either releases or rolls back the
+// savepoint identified by parameter iSavepoint, depending on the value
+// of op.
+//
+// Normally, iSavepoint is greater than or equal to zero. However, if op is
+// SAVEPOINT_ROLLBACK, then iSavepoint may also be -1. In this case the
+// contents of the entire transaction are rolled back. This is different
+// from a normal transaction rollback, as no locks are released and the
+// transaction remains open.
+func Xsqlite3BtreeSavepoint(tls *libc.TLS, p uintptr, op int32, iSavepoint int32) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 && int32((*Btree)(unsafe.Pointer(p)).FinTrans) == TRANS_WRITE {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+ if op == SAVEPOINT_ROLLBACK {
+ rc = saveAllCursors(tls, pBt, uint32(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerSavepoint(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, op, iSavepoint)
+ }
+ if rc == SQLITE_OK {
+ if iSavepoint < 0 && int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_INITIALLY_EMPTY != 0 {
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage = U32(0)
+ }
+ rc = newDatabase(tls, pBt)
+ btreeSetNPage(tls, pBt, (*BtShared)(unsafe.Pointer(pBt)).FpPage1)
+
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ }
+ return rc
+}
+
+func btreeCursor(tls *libc.TLS, p uintptr, iTable Pgno, wrFlag int32, pKeyInfo uintptr, pCur uintptr) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var pX uintptr
+
+ if iTable <= Pgno(1) {
+ if iTable < Pgno(1) {
+ return Xsqlite3CorruptError(tls, 72978)
+ } else if btreePagecount(tls, pBt) == Pgno(0) {
+ iTable = Pgno(0)
+ }
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot = iTable
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage = int8(-1)
+ (*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo = pKeyInfo
+ (*BtCursor)(unsafe.Pointer(pCur)).FpBtree = p
+ (*BtCursor)(unsafe.Pointer(pCur)).FpBt = pBt
+ (*BtCursor)(unsafe.Pointer(pCur)).FcurFlags = U8(0)
+
+ for pX = (*BtShared)(unsafe.Pointer(pBt)).FpCursor; pX != 0; pX = (*BtCursor)(unsafe.Pointer(pX)).FpNext {
+ if (*BtCursor)(unsafe.Pointer(pX)).FpgnoRoot == iTable {
+ *(*U8)(unsafe.Pointer(pX + 1)) |= U8(BTCF_Multiple)
+ (*BtCursor)(unsafe.Pointer(pCur)).FcurFlags = U8(BTCF_Multiple)
+ }
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ (*BtCursor)(unsafe.Pointer(pCur)).FpNext = (*BtShared)(unsafe.Pointer(pBt)).FpCursor
+ (*BtShared)(unsafe.Pointer(pBt)).FpCursor = pCur
+ if wrFlag != 0 {
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_WriteFlag)
+ (*BtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags = U8(0)
+ if (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace == uintptr(0) {
+ return allocateTempSpace(tls, pBt)
+ }
+ } else {
+ (*BtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags = U8(PAGER_GET_READONLY)
+ }
+ return SQLITE_OK
+}
+
+func btreeCursorWithLock(tls *libc.TLS, p uintptr, iTable Pgno, wrFlag int32, pKeyInfo uintptr, pCur uintptr) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ rc = btreeCursor(tls, p, iTable, wrFlag, pKeyInfo, pCur)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+func Xsqlite3BtreeCursor(tls *libc.TLS, p uintptr, iTable Pgno, wrFlag int32, pKeyInfo uintptr, pCur uintptr) int32 {
+ if (*Btree)(unsafe.Pointer(p)).Fsharable != 0 {
+ return btreeCursorWithLock(tls, p, iTable, wrFlag, pKeyInfo, pCur)
+ } else {
+ return btreeCursor(tls, p, iTable, wrFlag, pKeyInfo, pCur)
+ }
+ return int32(0)
+}
+
+// Return the size of a BtCursor object in bytes.
+//
+// This interfaces is needed so that users of cursors can preallocate
+// sufficient storage to hold a cursor. The BtCursor object is opaque
+// to users so they cannot do the sizeof() themselves - they must call
+// this routine.
+func Xsqlite3BtreeCursorSize(tls *libc.TLS) int32 {
+ return int32((uint64(unsafe.Sizeof(BtCursor{})) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+}
+
+// Initialize memory that will be converted into a BtCursor object.
+//
+// The simple approach here would be to memset() the entire object
+// to zero. But it turns out that the apPage[] and aiIdx[] arrays
+// do not need to be zeroed and they are large, so we can save a lot
+// of run-time by skipping the initialization of those elements.
+func Xsqlite3BtreeCursorZero(tls *libc.TLS, p uintptr) {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(uintptr(0)+32), libc.X__builtin_object_size(tls, p, 0))
+}
+
+// Close a cursor. The read lock on the database file is released
+// when the last cursor is closed.
+func Xsqlite3BtreeCloseCursor(tls *libc.TLS, pCur uintptr) int32 {
+ var pBtree uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpBtree
+ if pBtree != 0 {
+ var pBt uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpBt
+ Xsqlite3BtreeEnter(tls, pBtree)
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FpCursor == pCur {
+ (*BtShared)(unsafe.Pointer(pBt)).FpCursor = (*BtCursor)(unsafe.Pointer(pCur)).FpNext
+ } else {
+ var pPrev uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpCursor
+ for __ccgo := true; __ccgo; __ccgo = pPrev != 0 {
+ if (*BtCursor)(unsafe.Pointer(pPrev)).FpNext == pCur {
+ (*BtCursor)(unsafe.Pointer(pPrev)).FpNext = (*BtCursor)(unsafe.Pointer(pCur)).FpNext
+ break
+ }
+ pPrev = (*BtCursor)(unsafe.Pointer(pPrev)).FpNext
+ }
+ }
+ btreeReleaseAllCursorPages(tls, pCur)
+ unlockBtreeIfUnused(tls, pBt)
+ Xsqlite3_free(tls, (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow)
+ Xsqlite3_free(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpKey)
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FopenFlags)&BTREE_SINGLE != 0 && (*BtShared)(unsafe.Pointer(pBt)).FpCursor == uintptr(0) {
+ Xsqlite3BtreeClose(tls, pBtree)
+ } else {
+ Xsqlite3BtreeLeave(tls, pBtree)
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FpBtree = uintptr(0)
+ }
+ return SQLITE_OK
+}
+
+func getCellInfo(tls *libc.TLS, pCur uintptr) {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize) == 0 {
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_ValidNKey)
+ btreeParseCell(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpPage, int32((*BtCursor)(unsafe.Pointer(pCur)).Fix), pCur+48)
+ } else {
+ }
+}
+
+func Xsqlite3BtreeCursorIsValidNN(tls *libc.TLS, pCur uintptr) int32 {
+ return libc.Bool32(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID)
+}
+
+// Return the value of the integer key or "rowid" for a table btree.
+// This routine is only valid for a cursor that is pointing into a
+// ordinary table btree. If the cursor points to an index btree or
+// is invalid, the result of this routine is undefined.
+func Xsqlite3BtreeIntegerKey(tls *libc.TLS, pCur uintptr) I64 {
+ getCellInfo(tls, pCur)
+ return (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey
+}
+
+// Pin or unpin a cursor.
+func Xsqlite3BtreeCursorPin(tls *libc.TLS, pCur uintptr) {
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_Pinned)
+}
+
+func Xsqlite3BtreeCursorUnpin(tls *libc.TLS, pCur uintptr) {
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_Pinned))
+}
+
+// Return the offset into the database file for the start of the
+// payload to which the cursor is pointing.
+func Xsqlite3BtreeOffset(tls *libc.TLS, pCur uintptr) I64 {
+ getCellInfo(tls, pCur)
+ return I64((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize)*(I64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).Fpgno)-int64(1)) + (int64((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload)-int64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FaData))/1
+}
+
+// Return the number of bytes of payload for the entry that pCur is
+// currently pointing to. For table btrees, this will be the amount
+// of data. For index btrees, this will be the size of the key.
+//
+// The caller must guarantee that the cursor is pointing to a non-NULL
+// valid entry. In other words, the calling procedure must guarantee
+// that the cursor has Cursor.eState==CURSOR_VALID.
+func Xsqlite3BtreePayloadSize(tls *libc.TLS, pCur uintptr) U32 {
+ getCellInfo(tls, pCur)
+ return (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload
+}
+
+// Return an upper bound on the size of any record for the table
+// that the cursor is pointing into.
+//
+// This is an optimization. Everything will still work if this
+// routine always returns 2147483647 (which is the largest record
+// that SQLite can handle) or more. But returning a smaller value might
+// prevent large memory allocations when trying to interpret a
+// corrupt datrabase.
+//
+// The current implementation merely returns the size of the underlying
+// database file.
+func Xsqlite3BtreeMaxRecordSize(tls *libc.TLS, pCur uintptr) Sqlite3_int64 {
+ return Sqlite3_int64((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize) * Sqlite3_int64((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage)
+}
+
+func getOverflowPage(tls *libc.TLS, pBt uintptr, ovfl Pgno, ppPage uintptr, pPgnoNext uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var next Pgno = Pgno(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var rc int32 = SQLITE_OK
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ var iGuess Pgno = ovfl + Pgno(1)
+
+ for ptrmapPageno(tls, pBt, iGuess) == iGuess || iGuess == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ iGuess++
+ }
+
+ if iGuess <= btreePagecount(tls, pBt) {
+ rc = ptrmapGet(tls, pBt, iGuess, bp, bp+4)
+ if rc == SQLITE_OK && int32(*(*U8)(unsafe.Pointer(bp))) == PTRMAP_OVERFLOW2 && *(*Pgno)(unsafe.Pointer(bp + 4)) == ovfl {
+ next = iGuess
+ rc = SQLITE_DONE
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = btreeGetPage(tls, pBt, ovfl, bp+8, func() int32 {
+ if ppPage == uintptr(0) {
+ return PAGER_GET_READONLY
+ }
+ return 0
+ }())
+
+ if rc == SQLITE_OK {
+ next = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData)
+ }
+ }
+
+ *(*Pgno)(unsafe.Pointer(pPgnoNext)) = next
+ if ppPage != 0 {
+ *(*uintptr)(unsafe.Pointer(ppPage)) = *(*uintptr)(unsafe.Pointer(bp + 8))
+ } else {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ return func() int32 {
+ if rc == SQLITE_DONE {
+ return SQLITE_OK
+ }
+ return rc
+ }()
+}
+
+func copyPayload(tls *libc.TLS, pPayload uintptr, pBuf uintptr, nByte int32, eOp int32, pDbPage uintptr) int32 {
+ if eOp != 0 {
+ var rc int32 = Xsqlite3PagerWrite(tls, pDbPage)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ libc.X__builtin___memcpy_chk(tls, pPayload, pBuf, uint64(nByte), libc.X__builtin_object_size(tls, pPayload, 0))
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pBuf, pPayload, uint64(nByte), libc.X__builtin_object_size(tls, pBuf, 0))
+ }
+ return SQLITE_OK
+}
+
+func accessPayload(tls *libc.TLS, pCur uintptr, offset U32, amt U32, pBuf uintptr, eOp int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var aPayload uintptr
+ var rc int32 = SQLITE_OK
+ var iIdx int32 = 0
+ var pPage uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ var pBt uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpBt
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ return Xsqlite3CorruptError(tls, 73385)
+ }
+
+ getCellInfo(tls, pCur)
+ aPayload = (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload
+
+ if Uptr((int64(aPayload)-int64((*MemPage)(unsafe.Pointer(pPage)).FaData))/1) > Uptr((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)) {
+ return Xsqlite3CorruptError(tls, 73400)
+ }
+
+ if offset < U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) {
+ var a int32 = int32(amt)
+ if U32(a)+offset > U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) {
+ a = int32(U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) - offset)
+ }
+ rc = copyPayload(tls, aPayload+uintptr(offset), pBuf, a, eOp, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ offset = U32(0)
+ pBuf += uintptr(a)
+ amt = amt - U32(a)
+ } else {
+ offset = offset - U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)
+ }
+
+ if rc == SQLITE_OK && amt > U32(0) {
+ var ovflSize U32 = (*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(4)
+
+ *(*Pgno)(unsafe.Pointer(bp)) = Xsqlite3Get4byte(tls, aPayload+uintptr((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal))
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_ValidOvfl == 0 {
+ var nOvfl int32 = int32(((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - U32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - U32(1)) / ovflSize)
+ if (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) ||
+ nOvfl*int32(unsafe.Sizeof(Pgno(0))) > Xsqlite3MallocSize(tls, (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow) {
+ var aNew uintptr = Xsqlite3Realloc(tls,
+ (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*2)*uint64(unsafe.Sizeof(Pgno(0))))
+ if aNew == uintptr(0) {
+ return SQLITE_NOMEM
+ } else {
+ (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow = aNew
+ }
+ }
+ libc.X__builtin___memset_chk(tls, (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow, 0, uint64(nOvfl)*uint64(unsafe.Sizeof(Pgno(0))), libc.X__builtin_object_size(tls, (*BtCursor)(unsafe.Pointer(pCur)).FaOverflow, 0))
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_ValidOvfl)
+ } else {
+ if *(*Pgno)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(offset/ovflSize)*4)) != 0 {
+ iIdx = int32(offset / ovflSize)
+ *(*Pgno)(unsafe.Pointer(bp)) = *(*Pgno)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4))
+ offset = offset % ovflSize
+ }
+ }
+
+ for *(*Pgno)(unsafe.Pointer(bp)) != 0 {
+ if *(*Pgno)(unsafe.Pointer(bp)) > (*BtShared)(unsafe.Pointer(pBt)).FnPage {
+ return Xsqlite3CorruptError(tls, 73462)
+ }
+
+ *(*Pgno)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*Pgno)(unsafe.Pointer(bp))
+
+ if offset >= ovflSize {
+ if *(*Pgno)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx+1)*4)) != 0 {
+ *(*Pgno)(unsafe.Pointer(bp)) = *(*Pgno)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx+1)*4))
+ } else {
+ rc = getOverflowPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp)), uintptr(0), bp)
+ }
+ offset = offset - ovflSize
+ } else {
+ var a int32 = int32(amt)
+ if U32(a)+offset > ovflSize {
+ a = int32(ovflSize - offset)
+ }
+
+ {
+ rc = Xsqlite3PagerGet(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, *(*Pgno)(unsafe.Pointer(bp)), bp+8,
+ func() int32 {
+ if eOp == 0 {
+ return PAGER_GET_READONLY
+ }
+ return 0
+ }())
+ if rc == SQLITE_OK {
+ aPayload = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ *(*Pgno)(unsafe.Pointer(bp)) = Xsqlite3Get4byte(tls, aPayload)
+ rc = copyPayload(tls, aPayload+uintptr(offset+U32(4)), pBuf, a, eOp, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ offset = U32(0)
+ }
+
+ }
+ amt = amt - U32(a)
+ if amt == U32(0) {
+ return rc
+ }
+ pBuf += uintptr(a)
+ }
+ if rc != 0 {
+ break
+ }
+ iIdx++
+ }
+ }
+
+ if rc == SQLITE_OK && amt > U32(0) {
+ return Xsqlite3CorruptError(tls, 73547)
+ }
+ return rc
+}
+
+// Read part of the payload for the row at which that cursor pCur is currently
+// pointing. "amt" bytes will be transferred into pBuf[]. The transfer
+// begins at "offset".
+//
+// pCur can be pointing to either a table or an index b-tree.
+// If pointing to a table btree, then the content section is read. If
+// pCur is pointing to an index b-tree then the key section is read.
+//
+// For sqlite3BtreePayload(), the caller must ensure that pCur is pointing
+// to a valid row in the table. For sqlite3BtreePayloadChecked(), the
+// cursor might be invalid or might need to be restored before being read.
+//
+// Return SQLITE_OK on success or an error code if anything goes
+// wrong. An error is returned if "offset+amt" is larger than
+// the available payload.
+func Xsqlite3BtreePayload(tls *libc.TLS, pCur uintptr, offset U32, amt U32, pBuf uintptr) int32 {
+ return accessPayload(tls, pCur, offset, amt, pBuf, 0)
+}
+
+func accessPayloadChecked(tls *libc.TLS, pCur uintptr, offset U32, amt U32, pBuf uintptr) int32 {
+ var rc int32
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_INVALID {
+ return SQLITE_ABORT
+ }
+
+ rc = btreeRestoreCursorPosition(tls, pCur)
+ if rc != 0 {
+ return rc
+ }
+ return accessPayload(tls, pCur, offset, amt, pBuf, 0)
+}
+
+func Xsqlite3BtreePayloadChecked(tls *libc.TLS, pCur uintptr, offset U32, amt U32, pBuf uintptr) int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID {
+ return accessPayload(tls, pCur, offset, amt, pBuf, 0)
+ } else {
+ return accessPayloadChecked(tls, pCur, offset, amt, pBuf)
+ }
+ return int32(0)
+}
+
+func fetchPayload(tls *libc.TLS, pCur uintptr, pAmt uintptr) uintptr {
+ var amt int32
+
+ amt = int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)
+ if amt > int32((int64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FaDataEnd)-int64((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload))/1) {
+ amt = func() int32 {
+ if 0 > int32((int64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FaDataEnd)-int64((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload))/1) {
+ return 0
+ }
+ return int32((int64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FaDataEnd) - int64((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload)) / 1)
+ }()
+ }
+ *(*U32)(unsafe.Pointer(pAmt)) = U32(amt)
+ return (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload
+}
+
+// For the entry that cursor pCur is point to, return as
+// many bytes of the key or data as are available on the local
+// b-tree page. Write the number of available bytes into *pAmt.
+//
+// The pointer returned is ephemeral. The key/data may move
+// or be destroyed on the next call to any Btree routine,
+// including calls from other threads against the same cache.
+// Hence, a mutex on the BtShared should be held prior to calling
+// this routine.
+//
+// These routines is used to get quick access to key and data
+// in the common case where no overflow pages are used.
+func Xsqlite3BtreePayloadFetch(tls *libc.TLS, pCur uintptr, pAmt uintptr) uintptr {
+ return fetchPayload(tls, pCur, pAmt)
+}
+
+func moveToChild(tls *libc.TLS, pCur uintptr, newPgno U32) int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) >= BTCURSOR_MAX_DEPTH-1 {
+ return Xsqlite3CorruptError(tls, 73684)
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey | BTCF_ValidOvfl))
+ *(*U16)(unsafe.Pointer(pCur + 88 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = (*BtCursor)(unsafe.Pointer(pCur)).Fix
+ *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(0)
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage++
+ return getAndInitPage(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, pCur,
+ int32((*BtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags))
+}
+
+func moveToParent(tls *libc.TLS, pCur uintptr) {
+ var pLeaf uintptr
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey | BTCF_ValidOvfl))
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = *(*U16)(unsafe.Pointer(pCur + 88 + uintptr(int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage)-1)*2))
+ pLeaf = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ (*BtCursor)(unsafe.Pointer(pCur)).FpPage = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(libc.PreDecInt8(&(*BtCursor)(unsafe.Pointer(pCur)).FiPage, 1))*8))
+ releasePageNotNull(tls, pLeaf)
+}
+
+func moveToRoot(tls *libc.TLS, pCur uintptr) int32 {
+ var pRoot uintptr
+ var rc int32
+ var subpage Pgno
+ rc = SQLITE_OK
+
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) >= 0) {
+ goto __1
+ }
+ if !((*BtCursor)(unsafe.Pointer(pCur)).FiPage != 0) {
+ goto __3
+ }
+ releasePageNotNull(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpPage)
+__4:
+ if !(libc.PreDecInt8(&(*BtCursor)(unsafe.Pointer(pCur)).FiPage, 1) != 0) {
+ goto __5
+ }
+ releasePageNotNull(tls, *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*8)))
+ goto __4
+__5:
+ ;
+ pRoot = libc.AssignPtrUintptr(pCur+136, *(*uintptr)(unsafe.Pointer(pCur + 144)))
+ goto skip_init
+__3:
+ ;
+ goto __2
+__1:
+ if !((*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot == Pgno(0)) {
+ goto __6
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ return SQLITE_EMPTY
+ goto __7
+__6:
+ ;
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK) {
+ goto __8
+ }
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_FAULT) {
+ goto __9
+ }
+
+ return (*BtCursor)(unsafe.Pointer(pCur)).FskipNext
+__9:
+ ;
+ Xsqlite3BtreeClearCursor(tls, pCur)
+__8:
+ ;
+ rc = getAndInitPage(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpBt, (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot, pCur+136,
+ uintptr(0), int32((*BtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags))
+ if !(rc != SQLITE_OK) {
+ goto __10
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ return rc
+__10:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage = int8(0)
+ (*BtCursor)(unsafe.Pointer(pCur)).FcurIntKey = (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey
+__7:
+ ;
+__2:
+ ;
+ pRoot = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ if !(int32((*MemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.Bool32((*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*MemPage)(unsafe.Pointer(pRoot)).FintKey)) {
+ goto __11
+ }
+ return Xsqlite3CorruptError(tls, 73823)
+__11:
+ ;
+skip_init:
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(0)
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_AtLast | BTCF_ValidNKey | BTCF_ValidOvfl))
+
+ if !(int32((*MemPage)(unsafe.Pointer(pRoot)).FnCell) > 0) {
+ goto __12
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_VALID)
+ goto __13
+__12:
+ if !!(int32((*MemPage)(unsafe.Pointer(pRoot)).Fleaf) != 0) {
+ goto __14
+ }
+ if !((*MemPage)(unsafe.Pointer(pRoot)).Fpgno != Pgno(1)) {
+ goto __16
+ }
+ return Xsqlite3CorruptError(tls, 73835)
+__16:
+ ;
+ subpage = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+8))
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_VALID)
+ rc = moveToChild(tls, pCur, subpage)
+ goto __15
+__14:
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ rc = SQLITE_EMPTY
+__15:
+ ;
+__13:
+ ;
+ return rc
+}
+
+func moveToLeftmost(tls *libc.TLS, pCur uintptr) int32 {
+ var pgno Pgno
+ var rc int32 = SQLITE_OK
+ var pPage uintptr
+
+ for rc == SQLITE_OK && !(int32((*MemPage)(unsafe.Pointer(libc.AssignUintptr(&pPage, (*BtCursor)(unsafe.Pointer(pCur)).FpPage))).Fleaf) != 0) {
+ pgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)) + 1))))))
+ rc = moveToChild(tls, pCur, pgno)
+ }
+ return rc
+}
+
+func moveToRightmost(tls *libc.TLS, pCur uintptr) int32 {
+ var pgno Pgno
+ var rc int32 = SQLITE_OK
+ var pPage uintptr = uintptr(0)
+
+ for !(int32((*MemPage)(unsafe.Pointer(libc.AssignUintptr(&pPage, (*BtCursor)(unsafe.Pointer(pCur)).FpPage))).Fleaf) != 0) {
+ pgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8))
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = (*MemPage)(unsafe.Pointer(pPage)).FnCell
+ rc = moveToChild(tls, pCur, pgno)
+ if rc != 0 {
+ return rc
+ }
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) - 1)
+
+ return SQLITE_OK
+}
+
+// Move the cursor to the first entry in the table. Return SQLITE_OK
+// on success. Set *pRes to 0 if the cursor actually points to something
+// or set *pRes to 1 if the table is empty.
+func Xsqlite3BtreeFirst(tls *libc.TLS, pCur uintptr, pRes uintptr) int32 {
+ var rc int32
+
+ rc = moveToRoot(tls, pCur)
+ if rc == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ rc = moveToLeftmost(tls, pCur)
+ } else if rc == SQLITE_EMPTY {
+ *(*int32)(unsafe.Pointer(pRes)) = 1
+ rc = SQLITE_OK
+ }
+ return rc
+}
+
+func btreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) int32 {
+ var rc int32 = moveToRoot(tls, pCur)
+ if rc == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ rc = moveToRightmost(tls, pCur)
+ if rc == SQLITE_OK {
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_AtLast)
+ } else {
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_AtLast))
+ }
+ } else if rc == SQLITE_EMPTY {
+ *(*int32)(unsafe.Pointer(pRes)) = 1
+ rc = SQLITE_OK
+ }
+ return rc
+}
+
+func Xsqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) int32 {
+ if CURSOR_VALID == int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_AtLast != 0 {
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ return SQLITE_OK
+ }
+ return btreeLast(tls, pCur, pRes)
+}
+
+// Move the cursor so that it points to an entry in a table (a.k.a INTKEY)
+// table near the key intKey. Return a success code.
+//
+// If an exact match is not found, then the cursor is always
+// left pointing at a leaf page which would hold the entry if it
+// were present. The cursor might point to an entry that comes
+// before or after the key.
+//
+// An integer is written into *pRes which is the result of
+// comparing the key with the entry to which the cursor is
+// pointing. The meaning of the integer written into
+// *pRes is as follows:
+//
+// *pRes<0 The cursor is left pointing at an entry that
+// is smaller than intKey or if the table is empty
+// and the cursor is therefore left point to nothing.
+//
+// *pRes==0 The cursor is left pointing at an entry that
+// exactly matches intKey.
+//
+// *pRes>0 The cursor is left pointing at an entry that
+// is larger than intKey.
+func Xsqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey I64, biasRight int32, pRes uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ var lwr int32
+ var upr int32
+ var idx int32
+ var c int32
+ var chldPg Pgno
+ var pPage uintptr
+ var pCell uintptr
+
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID && int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_ValidNKey != 0) {
+ goto __1
+ }
+ if !((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey == intKey) {
+ goto __2
+ }
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ return SQLITE_OK
+__2:
+ ;
+ if !((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey) {
+ goto __3
+ }
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_AtLast != 0) {
+ goto __4
+ }
+ *(*int32)(unsafe.Pointer(pRes)) = -1
+ return SQLITE_OK
+__4:
+ ;
+ if !((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey+int64(1) == intKey) {
+ goto __5
+ }
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ rc = Xsqlite3BtreeNext(tls, pCur, 0)
+ if !(rc == SQLITE_OK) {
+ goto __6
+ }
+ getCellInfo(tls, pCur)
+ if !((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey == intKey) {
+ goto __8
+ }
+ return SQLITE_OK
+__8:
+ ;
+ goto __7
+__6:
+ if !(rc != SQLITE_DONE) {
+ goto __9
+ }
+ return rc
+__9:
+ ;
+__7:
+ ;
+__5:
+ ;
+__3:
+ ;
+__1:
+ ;
+ rc = moveToRoot(tls, pCur)
+ if !(rc != 0) {
+ goto __10
+ }
+ if !(rc == SQLITE_EMPTY) {
+ goto __11
+ }
+
+ *(*int32)(unsafe.Pointer(pRes)) = -1
+ return SQLITE_OK
+__11:
+ ;
+ return rc
+__10:
+ ;
+__12:
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ lwr = 0
+ upr = int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) - 1
+
+ idx = upr >> (1 - biasRight)
+__15:
+ pCell = (*MemPage)(unsafe.Pointer(pPage)).FaDataOfst + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx) + 1)))))
+ if !((*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf != 0) {
+ goto __18
+ }
+__19:
+ if !(0x80 <= int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pCell, 1))))) {
+ goto __20
+ }
+ if !(pCell >= (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd) {
+ goto __21
+ }
+ return Xsqlite3CorruptError(tls, 74077)
+__21:
+ ;
+ goto __19
+__20:
+ ;
+__18:
+ ;
+ Xsqlite3GetVarint(tls, pCell, bp)
+ if !(*(*I64)(unsafe.Pointer(bp)) < intKey) {
+ goto __22
+ }
+ lwr = idx + 1
+ if !(lwr > upr) {
+ goto __24
+ }
+ c = -1
+ goto __17
+__24:
+ ;
+ goto __23
+__22:
+ if !(*(*I64)(unsafe.Pointer(bp)) > intKey) {
+ goto __25
+ }
+ upr = idx - 1
+ if !(lwr > upr) {
+ goto __27
+ }
+ c = +1
+ goto __17
+__27:
+ ;
+ goto __26
+__25:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(idx)
+ if !!(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ goto __28
+ }
+ lwr = idx
+ goto moveto_table_next_layer
+ goto __29
+__28:
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_ValidNKey)
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey = *(*I64)(unsafe.Pointer(bp))
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ return SQLITE_OK
+__29:
+ ;
+__26:
+ ;
+__23:
+ ;
+ idx = (lwr + upr) >> 1
+ goto __16
+__16:
+ goto __15
+ goto __17
+__17:
+ ;
+ if !((*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
+ goto __30
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(idx)
+ *(*int32)(unsafe.Pointer(pRes)) = c
+ rc = SQLITE_OK
+ goto moveto_table_finish
+__30:
+ ;
+moveto_table_next_layer:
+ if !(lwr >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)) {
+ goto __31
+ }
+ chldPg = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8))
+ goto __32
+__31:
+ chldPg = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*lwr))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*lwr) + 1))))))
+__32:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(lwr)
+ rc = moveToChild(tls, pCur, chldPg)
+ if !(rc != 0) {
+ goto __33
+ }
+ goto __14
+__33:
+ ;
+ goto __13
+__13:
+ goto __12
+ goto __14
+__14:
+ ;
+moveto_table_finish:
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+
+ return rc
+}
+
+func indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare RecordCompare) int32 {
+ var pPage uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ var c int32
+ var nCell int32
+ var pCell uintptr = (*MemPage)(unsafe.Pointer(pPage)).FaDataOfst + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx) + 1)))))
+
+ nCell = int32(*(*U8)(unsafe.Pointer(pCell)))
+ if nCell <= int32((*MemPage)(unsafe.Pointer(pPage)).Fmax1bytePayload) {
+ c = (*struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})).f(tls, nCell, pCell+1, pIdxKey)
+ } else if !(int32(*(*U8)(unsafe.Pointer(pCell + 1)))&0x80 != 0) &&
+ libc.AssignInt32(&nCell, nCell&0x7f<<7+int32(*(*U8)(unsafe.Pointer(pCell + 1)))) <= int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ c = (*struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})).f(tls, nCell, pCell+2, pIdxKey)
+ } else {
+ c = 99
+ }
+ return c
+}
+
+func cursorOnLastPage(tls *libc.TLS, pCur uintptr) int32 {
+ var i int32
+
+ for i = 0; i < int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage); i++ {
+ var pPage uintptr = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(i)*8))
+ if int32(*(*U16)(unsafe.Pointer(pCur + 88 + uintptr(i)*2))) < int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ return 0
+ }
+ }
+ return 1
+}
+
+// Move the cursor so that it points to an entry in an index table
+// near the key pIdxKey. Return a success code.
+//
+// If an exact match is not found, then the cursor is always
+// left pointing at a leaf page which would hold the entry if it
+// were present. The cursor might point to an entry that comes
+// before or after the key.
+//
+// An integer is written into *pRes which is the result of
+// comparing the key with the entry to which the cursor is
+// pointing. The meaning of the integer written into
+// *pRes is as follows:
+//
+// *pRes<0 The cursor is left pointing at an entry that
+// is smaller than pIdxKey or if the table is empty
+// and the cursor is therefore left point to nothing.
+//
+// *pRes==0 The cursor is left pointing at an entry that
+// exactly matches pIdxKey.
+//
+// *pRes>0 The cursor is left pointing at an entry that
+// is larger than pIdxKey.
+//
+// The pIdxKey->eqSeen field is set to 1 if there
+// exists an entry in the table that exactly matches pIdxKey.
+func Xsqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes uintptr) int32 {
+ var rc int32
+ var xRecordCompare RecordCompare
+ var c int32
+
+ var pCellKey uintptr
+ var pCellBody uintptr
+ var nOverrun int32
+ var nCell int32
+ var lwr int32
+ var upr int32
+ var idx int32
+ var c1 int32
+ var chldPg Pgno
+ var pPage uintptr
+ var pCell uintptr
+
+ xRecordCompare = Xsqlite3VdbeFindCompare(tls, pIdxKey)
+ (*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode = U8(0)
+
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_VALID &&
+ (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf != 0 &&
+ cursorOnLastPage(tls, pCur) != 0) {
+ goto __1
+ }
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) == int32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell)-1 &&
+ libc.AssignInt32(&c, indexCellCompare(tls, pCur, int32((*BtCursor)(unsafe.Pointer(pCur)).Fix), pIdxKey, xRecordCompare)) <= 0 &&
+ int32((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode) == SQLITE_OK) {
+ goto __2
+ }
+ *(*int32)(unsafe.Pointer(pRes)) = c
+ return SQLITE_OK
+__2:
+ ;
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) > 0 &&
+ indexCellCompare(tls, pCur, 0, pIdxKey, xRecordCompare) <= 0 &&
+ int32((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode) == SQLITE_OK) {
+ goto __3
+ }
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidOvfl))
+ if !!(int32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit) != 0) {
+ goto __4
+ }
+ return Xsqlite3CorruptError(tls, 74273)
+__4:
+ ;
+ goto bypass_moveto_root
+__3:
+ ;
+ (*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode = U8(SQLITE_OK)
+__1:
+ ;
+ rc = moveToRoot(tls, pCur)
+ if !(rc != 0) {
+ goto __5
+ }
+ if !(rc == SQLITE_EMPTY) {
+ goto __6
+ }
+
+ *(*int32)(unsafe.Pointer(pRes)) = -1
+ return SQLITE_OK
+__6:
+ ;
+ return rc
+__5:
+ ;
+bypass_moveto_root:
+ ;
+__7:
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ lwr = 0
+ upr = int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) - 1
+ idx = upr >> 1
+__10:
+ pCell = (*MemPage)(unsafe.Pointer(pPage)).FaDataOfst + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx) + 1)))))
+
+ nCell = int32(*(*U8)(unsafe.Pointer(pCell)))
+ if !(nCell <= int32((*MemPage)(unsafe.Pointer(pPage)).Fmax1bytePayload)) {
+ goto __13
+ }
+
+ c1 = (*struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})).f(tls, nCell, pCell+1, pIdxKey)
+ goto __14
+__13:
+ if !(!(int32(*(*U8)(unsafe.Pointer(pCell + 1)))&0x80 != 0) &&
+ libc.AssignInt32(&nCell, nCell&0x7f<<7+int32(*(*U8)(unsafe.Pointer(pCell + 1)))) <= int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal)) {
+ goto __15
+ }
+
+ c1 = (*struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})).f(tls, nCell, pCell+2, pIdxKey)
+ goto __16
+__15:
+ pCellBody = pCell - uintptr((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+ nOverrun = 18
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, pCellBody, pCur+48)
+ nCell = int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey)
+
+ if !(nCell < 2 || U32(nCell)/(*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage) {
+ goto __17
+ }
+ rc = Xsqlite3CorruptError(tls, 74360)
+ goto moveto_index_finish
+__17:
+ ;
+ pCellKey = Xsqlite3Malloc(tls, uint64(nCell+nOverrun))
+ if !(pCellKey == uintptr(0)) {
+ goto __18
+ }
+ rc = SQLITE_NOMEM
+ goto moveto_index_finish
+__18:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(idx)
+ rc = accessPayload(tls, pCur, uint32(0), uint32(nCell), pCellKey, 0)
+ libc.X__builtin___memset_chk(tls, pCellKey+uintptr(nCell), 0, uint64(nOverrun), libc.X__builtin_object_size(tls, pCellKey+uintptr(nCell), 0))
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidOvfl))
+ if !(rc != 0) {
+ goto __19
+ }
+ Xsqlite3_free(tls, pCellKey)
+ goto moveto_index_finish
+__19:
+ ;
+ c1 = Xsqlite3VdbeRecordCompare(tls, nCell, pCellKey, pIdxKey)
+ Xsqlite3_free(tls, pCellKey)
+__16:
+ ;
+__14:
+ ;
+ if !(c1 < 0) {
+ goto __20
+ }
+ lwr = idx + 1
+ goto __21
+__20:
+ if !(c1 > 0) {
+ goto __22
+ }
+ upr = idx - 1
+ goto __23
+__22:
+ ;
+ *(*int32)(unsafe.Pointer(pRes)) = 0
+ rc = SQLITE_OK
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(idx)
+ if !((*UnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0) {
+ goto __24
+ }
+ rc = Xsqlite3CorruptError(tls, 74392)
+__24:
+ ;
+ goto moveto_index_finish
+__23:
+ ;
+__21:
+ ;
+ if !(lwr > upr) {
+ goto __25
+ }
+ goto __12
+__25:
+ ;
+ idx = (lwr + upr) >> 1
+ goto __11
+__11:
+ goto __10
+ goto __12
+__12:
+ ;
+ if !((*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0) {
+ goto __26
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(idx)
+ *(*int32)(unsafe.Pointer(pRes)) = c1
+ rc = SQLITE_OK
+ goto moveto_index_finish
+__26:
+ ;
+ if !(lwr >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)) {
+ goto __27
+ }
+ chldPg = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8))
+ goto __28
+__27:
+ chldPg = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*lwr))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*lwr) + 1))))))
+__28:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(lwr)
+ rc = moveToChild(tls, pCur, chldPg)
+ if !(rc != 0) {
+ goto __29
+ }
+ goto __9
+__29:
+ ;
+ goto __8
+__8:
+ goto __7
+ goto __9
+__9:
+ ;
+moveto_index_finish:
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+
+ return rc
+}
+
+// Return TRUE if the cursor is not pointing at an entry of the table.
+//
+// TRUE will be returned after a call to sqlite3BtreeNext() moves
+// past the last entry in the table or sqlite3BtreePrev() moves past
+// the first entry. TRUE is also returned if the table is empty.
+func Xsqlite3BtreeEof(tls *libc.TLS, pCur uintptr) int32 {
+ return libc.Bool32(CURSOR_VALID != int32((*BtCursor)(unsafe.Pointer(pCur)).FeState))
+}
+
+// Return an estimate for the number of rows in the table that pCur is
+// pointing to. Return a negative number if no estimate is currently
+// available.
+func Xsqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) I64 {
+ var n I64
+ var i U8
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ return int64(-1)
+ }
+ if int32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 {
+ return int64(-1)
+ }
+
+ n = I64((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell)
+ for i = U8(0); int32(i) < int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage); i++ {
+ n = n * I64((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(i)*8)))).FnCell)
+ }
+ return n
+}
+
+func btreeNext(tls *libc.TLS, pCur uintptr) int32 {
+ var rc int32
+ var idx int32
+ var pPage uintptr
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ rc = func() int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK {
+ return btreeRestoreCursorPosition(tls, pCur)
+ }
+ return SQLITE_OK
+ }()
+ if rc != SQLITE_OK {
+ return rc
+ }
+ if CURSOR_INVALID == int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) {
+ return SQLITE_DONE
+ }
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) == CURSOR_SKIPNEXT {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_VALID)
+ if (*BtCursor)(unsafe.Pointer(pCur)).FskipNext > 0 {
+ return SQLITE_OK
+ }
+ }
+ }
+
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ idx = int32(libc.PreIncUint16(&(*BtCursor)(unsafe.Pointer(pCur)).Fix, 1))
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).FisInit) != 0) || Xsqlite3FaultSim(tls, 412) != 0 {
+ return Xsqlite3CorruptError(tls, 74508)
+ }
+
+ if idx >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ rc = moveToChild(tls, pCur, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8)))
+ if rc != 0 {
+ return rc
+ }
+ return moveToLeftmost(tls, pCur)
+ }
+ for __ccgo := true; __ccgo; __ccgo = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) == 0 {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ return SQLITE_DONE
+ }
+ moveToParent(tls, pCur)
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ }
+ if (*MemPage)(unsafe.Pointer(pPage)).FintKey != 0 {
+ return Xsqlite3BtreeNext(tls, pCur, 0)
+ } else {
+ return SQLITE_OK
+ }
+ }
+ if (*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0 {
+ return SQLITE_OK
+ } else {
+ return moveToLeftmost(tls, pCur)
+ }
+ return int32(0)
+}
+
+func Xsqlite3BtreeNext(tls *libc.TLS, pCur uintptr, flags int32) int32 {
+ var pPage uintptr
+ _ = flags
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey | BTCF_ValidOvfl))
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ return btreeNext(tls, pCur)
+ }
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ if int32(libc.PreIncUint16(&(*BtCursor)(unsafe.Pointer(pCur)).Fix, 1)) >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix--
+ return btreeNext(tls, pCur)
+ }
+ if (*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0 {
+ return SQLITE_OK
+ } else {
+ return moveToLeftmost(tls, pCur)
+ }
+ return int32(0)
+}
+
+func btreePrevious(tls *libc.TLS, pCur uintptr) int32 {
+ var rc int32
+ var pPage uintptr
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ rc = func() int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK {
+ return btreeRestoreCursorPosition(tls, pCur)
+ }
+ return SQLITE_OK
+ }()
+ if rc != SQLITE_OK {
+ return rc
+ }
+ if CURSOR_INVALID == int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) {
+ return SQLITE_DONE
+ }
+ if CURSOR_SKIPNEXT == int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_VALID)
+ if (*BtCursor)(unsafe.Pointer(pCur)).FskipNext < 0 {
+ return SQLITE_OK
+ }
+ }
+ }
+
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ var idx int32 = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)
+ rc = moveToChild(tls, pCur, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx) + 1)))))))
+ if rc != 0 {
+ return rc
+ }
+ rc = moveToRightmost(tls, pCur)
+ } else {
+ for int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) == 0 {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) == 0 {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ return SQLITE_DONE
+ }
+ moveToParent(tls, pCur)
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix--
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ if (*MemPage)(unsafe.Pointer(pPage)).FintKey != 0 && !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ rc = Xsqlite3BtreePrevious(tls, pCur, 0)
+ } else {
+ rc = SQLITE_OK
+ }
+ }
+ return rc
+}
+
+func Xsqlite3BtreePrevious(tls *libc.TLS, pCur uintptr, flags int32) int32 {
+ _ = flags
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_AtLast | BTCF_ValidOvfl | BTCF_ValidNKey))
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID ||
+ int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) == 0 ||
+ int32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 {
+ return btreePrevious(tls, pCur)
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix--
+ return SQLITE_OK
+}
+
+func allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintptr, nearby Pgno, eMode U8) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pPage1 uintptr
+ var rc int32
+ var n U32
+ var k U32
+
+ var pPrevTrunk uintptr
+ var mxPage Pgno
+
+ var iNewTrunk Pgno
+ var d2 int32
+ var dist int32
+ var i U32
+ var noContent int32
+
+ var closest U32
+ var iPage Pgno
+ var aData uintptr
+
+ var iTrunk Pgno
+ var searchList U8
+ var nSearch U32
+
+ var bNoContent int32
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ pPrevTrunk = uintptr(0)
+
+ pPage1 = (*BtShared)(unsafe.Pointer(pBt)).FpPage1
+ mxPage = btreePagecount(tls, pBt)
+
+ n = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+36)
+
+ if !(n >= mxPage) {
+ goto __1
+ }
+ return Xsqlite3CorruptError(tls, 74688)
+__1:
+ ;
+ if !(n > U32(0)) {
+ goto __2
+ }
+ searchList = U8(0)
+ nSearch = U32(0)
+
+ if !(int32(eMode) == BTALLOC_EXACT) {
+ goto __4
+ }
+ if !(nearby <= mxPage) {
+ goto __6
+ }
+
+ rc = ptrmapGet(tls, pBt, nearby, bp, uintptr(0))
+ if !(rc != 0) {
+ goto __7
+ }
+ return rc
+__7:
+ ;
+ if !(int32(*(*U8)(unsafe.Pointer(bp))) == PTRMAP_FREEPAGE) {
+ goto __8
+ }
+ searchList = U8(1)
+__8:
+ ;
+__6:
+ ;
+ goto __5
+__4:
+ if !(int32(eMode) == BTALLOC_LE) {
+ goto __9
+ }
+ searchList = U8(1)
+__9:
+ ;
+__5:
+ ;
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage1)).FpDbPage)
+ if !(rc != 0) {
+ goto __10
+ }
+ return rc
+__10:
+ ;
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+36, n-U32(1))
+
+__11:
+ pPrevTrunk = *(*uintptr)(unsafe.Pointer(bp + 8))
+ if !(pPrevTrunk != 0) {
+ goto __14
+ }
+
+ iTrunk = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FaData)
+ goto __15
+__14:
+ iTrunk = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32)
+__15:
+ ;
+ if !(iTrunk > mxPage || libc.PostIncUint32(&nSearch, 1) > n) {
+ goto __16
+ }
+ rc = Xsqlite3CorruptError(tls, 74744)
+ goto __17
+__16:
+ rc = btreeGetUnusedPage(tls, pBt, iTrunk, bp+8, 0)
+__17:
+ ;
+ if !(rc != 0) {
+ goto __18
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ goto end_allocate_page
+__18:
+ ;
+ k = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4)
+ if !(k == U32(0) && !(searchList != 0)) {
+ goto __19
+ }
+
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpDbPage)
+ if !(rc != 0) {
+ goto __21
+ }
+ goto end_allocate_page
+__21:
+ ;
+ *(*Pgno)(unsafe.Pointer(pPgno)) = iTrunk
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, 0))
+ *(*uintptr)(unsafe.Pointer(ppPage)) = *(*uintptr)(unsafe.Pointer(bp + 8))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ goto __20
+__19:
+ if !(k > (*BtShared)(unsafe.Pointer(pBt)).FusableSize/U32(4)-U32(2)) {
+ goto __22
+ }
+
+ rc = Xsqlite3CorruptError(tls, 74773)
+ goto end_allocate_page
+ goto __23
+__22:
+ if !(searchList != 0 &&
+ (nearby == iTrunk || iTrunk < nearby && int32(eMode) == BTALLOC_LE)) {
+ goto __24
+ }
+
+ *(*Pgno)(unsafe.Pointer(pPgno)) = iTrunk
+ *(*uintptr)(unsafe.Pointer(ppPage)) = *(*uintptr)(unsafe.Pointer(bp + 8))
+ searchList = U8(0)
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpDbPage)
+ if !(rc != 0) {
+ goto __26
+ }
+ goto end_allocate_page
+__26:
+ ;
+ if !(k == U32(0)) {
+ goto __27
+ }
+ if !!(pPrevTrunk != 0) {
+ goto __29
+ }
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, 0))
+ goto __30
+__29:
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FpDbPage)
+ if !(rc != SQLITE_OK) {
+ goto __31
+ }
+ goto end_allocate_page
+__31:
+ ;
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FaData, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FaData, 0))
+__30:
+ ;
+ goto __28
+__27:
+ iNewTrunk = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+8)
+ if !(iNewTrunk > mxPage) {
+ goto __32
+ }
+ rc = Xsqlite3CorruptError(tls, 74807)
+ goto end_allocate_page
+__32:
+ ;
+ rc = btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0)
+ if !(rc != SQLITE_OK) {
+ goto __33
+ }
+ goto end_allocate_page
+__33:
+ ;
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpDbPage)
+ if !(rc != SQLITE_OK) {
+ goto __34
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ goto end_allocate_page
+__34:
+ ;
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData, 0))
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+4, k-U32(1))
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+8, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+12, uint64((k-U32(1))*U32(4)), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+8, 0))
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if !!(pPrevTrunk != 0) {
+ goto __35
+ }
+
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, iNewTrunk)
+ goto __36
+__35:
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FpDbPage)
+ if !(rc != 0) {
+ goto __37
+ }
+ goto end_allocate_page
+__37:
+ ;
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPrevTrunk)).FaData, iNewTrunk)
+__36:
+ ;
+__28:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ goto __25
+__24:
+ if !(k > U32(0)) {
+ goto __38
+ }
+ aData = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData
+ if !(nearby > Pgno(0)) {
+ goto __39
+ }
+ closest = U32(0)
+ if !(int32(eMode) == BTALLOC_LE) {
+ goto __41
+ }
+ i = U32(0)
+__43:
+ if !(i < k) {
+ goto __45
+ }
+ iPage = Xsqlite3Get4byte(tls, aData+uintptr(U32(8)+i*U32(4)))
+ if !(iPage <= nearby) {
+ goto __46
+ }
+ closest = i
+ goto __45
+__46:
+ ;
+ goto __44
+__44:
+ i++
+ goto __43
+ goto __45
+__45:
+ ;
+ goto __42
+__41:
+ dist = Xsqlite3AbsInt32(tls, int32(Xsqlite3Get4byte(tls, aData+8)-nearby))
+ i = U32(1)
+__47:
+ if !(i < k) {
+ goto __49
+ }
+ d2 = Xsqlite3AbsInt32(tls, int32(Xsqlite3Get4byte(tls, aData+uintptr(U32(8)+i*U32(4)))-nearby))
+ if !(d2 < dist) {
+ goto __50
+ }
+ closest = i
+ dist = d2
+__50:
+ ;
+ goto __48
+__48:
+ i++
+ goto __47
+ goto __49
+__49:
+ ;
+__42:
+ ;
+ goto __40
+__39:
+ closest = U32(0)
+__40:
+ ;
+ iPage = Xsqlite3Get4byte(tls, aData+uintptr(U32(8)+closest*U32(4)))
+
+ if !(iPage > mxPage || iPage < Pgno(2)) {
+ goto __51
+ }
+ rc = Xsqlite3CorruptError(tls, 74872)
+ goto end_allocate_page
+__51:
+ ;
+ if !(!(searchList != 0) ||
+ (iPage == nearby || iPage < nearby && int32(eMode) == BTALLOC_LE)) {
+ goto __52
+ }
+ *(*Pgno)(unsafe.Pointer(pPgno)) = iPage
+
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpDbPage)
+ if !(rc != 0) {
+ goto __53
+ }
+ goto end_allocate_page
+__53:
+ ;
+ if !(closest < k-U32(1)) {
+ goto __54
+ }
+ libc.X__builtin___memcpy_chk(tls, aData+uintptr(U32(8)+closest*U32(4)), aData+uintptr(U32(4)+k*U32(4)), uint64(4), libc.X__builtin_object_size(tls, aData+uintptr(U32(8)+closest*U32(4)), 0))
+__54:
+ ;
+ Xsqlite3Put4byte(tls, aData+4, k-U32(1))
+ if !(btreeGetHasContent(tls, pBt, *(*Pgno)(unsafe.Pointer(pPgno))) != 0) {
+ noContent = PAGER_GET_NOCONTENT
+ } else {
+ noContent = 0
+ }
+ rc = btreeGetUnusedPage(tls, pBt, *(*Pgno)(unsafe.Pointer(pPgno)), ppPage, noContent)
+ if !(rc == SQLITE_OK) {
+ goto __55
+ }
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage)
+ if !(rc != SQLITE_OK) {
+ goto __56
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage)))
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+__56:
+ ;
+__55:
+ ;
+ searchList = U8(0)
+__52:
+ ;
+__38:
+ ;
+__25:
+ ;
+__23:
+ ;
+__20:
+ ;
+ releasePage(tls, pPrevTrunk)
+ pPrevTrunk = uintptr(0)
+ goto __12
+__12:
+ if searchList != 0 {
+ goto __11
+ }
+ goto __13
+__13:
+ ;
+ goto __3
+__2:
+ if 0 == int32((*BtShared)(unsafe.Pointer(pBt)).FbDoTruncate) {
+ bNoContent = PAGER_GET_NOCONTENT
+ } else {
+ bNoContent = 0
+ }
+
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FpDbPage)
+ if !(rc != 0) {
+ goto __57
+ }
+ return rc
+__57:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage++
+ if !((*BtShared)(unsafe.Pointer(pBt)).FnPage == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1)) {
+ goto __58
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage++
+__58:
+ ;
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && ptrmapPageno(tls, pBt, (*BtShared)(unsafe.Pointer(pBt)).FnPage) == (*BtShared)(unsafe.Pointer(pBt)).FnPage) {
+ goto __59
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+
+ rc = btreeGetUnusedPage(tls, pBt, (*BtShared)(unsafe.Pointer(pBt)).FnPage, bp+24, bNoContent)
+ if !(rc == SQLITE_OK) {
+ goto __60
+ }
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FpDbPage)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+__60:
+ ;
+ if !(rc != 0) {
+ goto __61
+ }
+ return rc
+__61:
+ ;
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage++
+ if !((*BtShared)(unsafe.Pointer(pBt)).FnPage == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1)) {
+ goto __62
+ }
+ (*BtShared)(unsafe.Pointer(pBt)).FnPage++
+__62:
+ ;
+__59:
+ ;
+ Xsqlite3Put4byte(tls, uintptr(28)+(*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData, (*BtShared)(unsafe.Pointer(pBt)).FnPage)
+ *(*Pgno)(unsafe.Pointer(pPgno)) = (*BtShared)(unsafe.Pointer(pBt)).FnPage
+
+ rc = btreeGetUnusedPage(tls, pBt, *(*Pgno)(unsafe.Pointer(pPgno)), ppPage, bNoContent)
+ if !(rc != 0) {
+ goto __63
+ }
+ return rc
+__63:
+ ;
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage)
+ if !(rc != SQLITE_OK) {
+ goto __64
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage)))
+ *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0)
+__64:
+ ;
+__3:
+ ;
+end_allocate_page:
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ releasePage(tls, pPrevTrunk)
+
+ return rc
+}
+
+func freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage Pgno) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var iTrunk Pgno
+ var pPage1 uintptr
+
+ var nFree U32
+ var nLeaf U32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ iTrunk = Pgno(0)
+ pPage1 = (*BtShared)(unsafe.Pointer(pBt)).FpPage1
+
+ if !(iPage < Pgno(2) || iPage > (*BtShared)(unsafe.Pointer(pBt)).FnPage) {
+ goto __1
+ }
+ return Xsqlite3CorruptError(tls, 74999)
+__1:
+ ;
+ if !(pMemPage != 0) {
+ goto __2
+ }
+ *(*uintptr)(unsafe.Pointer(bp)) = pMemPage
+ Xsqlite3PagerRef(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)
+ goto __3
+__2:
+ *(*uintptr)(unsafe.Pointer(bp)) = btreePageLookup(tls, pBt, iPage)
+__3:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage1)).FpDbPage)
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) != 0) {
+ goto __4
+ }
+ goto freepage_out
+__4:
+ ;
+ nFree = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+36)
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+36, nFree+U32(1))
+
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_SECURE_DELETE != 0) {
+ goto __5
+ }
+
+ if !(!(*(*uintptr)(unsafe.Pointer(bp)) != 0) && libc.AssignPtrInt32(bp+8, btreeGetPage(tls, pBt, iPage, bp, 0)) != 0 ||
+ libc.AssignPtrInt32(bp+8, Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)) != 0) {
+ goto __6
+ }
+ goto freepage_out
+__6:
+ ;
+ libc.X__builtin___memset_chk(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData, 0, uint64((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpBt)).FpageSize), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData, 0))
+__5:
+ ;
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __7
+ }
+ ptrmapPut(tls, pBt, iPage, uint8(PTRMAP_FREEPAGE), uint32(0), bp+8)
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) != 0) {
+ goto __8
+ }
+ goto freepage_out
+__8:
+ ;
+__7:
+ ;
+ if !(nFree != U32(0)) {
+ goto __9
+ }
+
+ iTrunk = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32)
+ if !(iTrunk > btreePagecount(tls, pBt)) {
+ goto __10
+ }
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3CorruptError(tls, 75046)
+ goto freepage_out
+__10:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 8)) = btreeGetPage(tls, pBt, iTrunk, bp+16, 0)
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK) {
+ goto __11
+ }
+ goto freepage_out
+__11:
+ ;
+ nLeaf = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+4)
+
+ if !(nLeaf > (*BtShared)(unsafe.Pointer(pBt)).FusableSize/U32(4)-U32(2)) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3CorruptError(tls, 75057)
+ goto freepage_out
+__12:
+ ;
+ if !(nLeaf < (*BtShared)(unsafe.Pointer(pBt)).FusableSize/U32(4)-U32(8)) {
+ goto __13
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpDbPage)
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK) {
+ goto __14
+ }
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+4, nLeaf+U32(1))
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaData+uintptr(U32(8)+nLeaf*U32(4)), iPage)
+ if !(*(*uintptr)(unsafe.Pointer(bp)) != 0 && int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_SECURE_DELETE == 0) {
+ goto __15
+ }
+ Xsqlite3PagerDontWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)
+__15:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 8)) = btreeSetHasContent(tls, pBt, iPage)
+__14:
+ ;
+ goto freepage_out
+__13:
+ ;
+__9:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) && SQLITE_OK != libc.AssignPtrInt32(bp+8, btreeGetPage(tls, pBt, iPage, bp, 0))) {
+ goto __16
+ }
+ goto freepage_out
+__16:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)
+ if !(*(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK) {
+ goto __17
+ }
+ goto freepage_out
+__17:
+ ;
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData, iTrunk)
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4, uint32(0))
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage)
+
+freepage_out:
+ if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) {
+ goto __18
+ }
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit = U8(0)
+__18:
+ ;
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func freePage(tls *libc.TLS, pPage uintptr, pRC uintptr) {
+ if *(*int32)(unsafe.Pointer(pRC)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRC)) = freePage2(tls, (*MemPage)(unsafe.Pointer(pPage)).FpBt, pPage, (*MemPage)(unsafe.Pointer(pPage)).Fpgno)
+ }
+}
+
+func clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pBt uintptr
+ var ovflPgno Pgno
+ var rc int32
+ var nOvfl int32
+ var ovflPageSize U32
+
+ if pCell+uintptr((*CellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd {
+ return Xsqlite3CorruptError(tls, 75146)
+ }
+ ovflPgno = Xsqlite3Get4byte(tls, pCell+uintptr((*CellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4))
+ pBt = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+
+ ovflPageSize = (*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(4)
+ nOvfl = int32(((*CellInfo)(unsafe.Pointer(pInfo)).FnPayload - U32((*CellInfo)(unsafe.Pointer(pInfo)).FnLocal) + ovflPageSize - U32(1)) / ovflPageSize)
+
+ for libc.PostDecInt32(&nOvfl, 1) != 0 {
+ *(*Pgno)(unsafe.Pointer(bp + 8)) = Pgno(0)
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ if ovflPgno < Pgno(2) || ovflPgno > btreePagecount(tls, pBt) {
+ return Xsqlite3CorruptError(tls, 75163)
+ }
+ if nOvfl != 0 {
+ rc = getOverflowPage(tls, pBt, ovflPgno, bp, bp+8)
+ if rc != 0 {
+ return rc
+ }
+ }
+
+ if (*(*uintptr)(unsafe.Pointer(bp)) != 0 || libc.AssignPtrUintptr(bp, btreePageLookup(tls, pBt, ovflPgno)) != uintptr(0)) &&
+ Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != 1 {
+ rc = Xsqlite3CorruptError(tls, 75183)
+ } else {
+ rc = freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp)), ovflPgno)
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ Xsqlite3PagerUnref(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)
+ }
+ if rc != 0 {
+ return rc
+ }
+ ovflPgno = *(*Pgno)(unsafe.Pointer(bp + 8))
+ }
+ return SQLITE_OK
+}
+
+func fillInCell(tls *libc.TLS, pPage uintptr, pCell uintptr, pX uintptr, pnSize uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var nPayload int32
+ var pSrc uintptr
+ var nSrc int32
+ var n int32
+
+ var mn int32
+ var spaceLeft int32
+ var pToRelease uintptr
+ var pPrior uintptr
+ var pPayload uintptr
+ var pBt uintptr
+
+ var nHeader int32
+
+ nHeader = int32((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize)
+ if (*MemPage)(unsafe.Pointer(pPage)).FintKey != 0 {
+ nPayload = (*BtreePayload)(unsafe.Pointer(pX)).FnData + (*BtreePayload)(unsafe.Pointer(pX)).FnZero
+ pSrc = (*BtreePayload)(unsafe.Pointer(pX)).FpData
+ nSrc = (*BtreePayload)(unsafe.Pointer(pX)).FnData
+
+ nHeader = nHeader + int32(func() uint8 {
+ if U32(nPayload) < U32(0x80) {
+ return uint8(func() int32 { *(*uint8)(unsafe.Pointer(pCell + uintptr(nHeader))) = uint8(nPayload); return 1 }())
+ }
+ return uint8(Xsqlite3PutVarint(tls, pCell+uintptr(nHeader), uint64(nPayload)))
+ }())
+ nHeader = nHeader + Xsqlite3PutVarint(tls, pCell+uintptr(nHeader), *(*U64)(unsafe.Pointer(pX + 8)))
+ } else {
+ nSrc = libc.AssignInt32(&nPayload, int32((*BtreePayload)(unsafe.Pointer(pX)).FnKey))
+ pSrc = (*BtreePayload)(unsafe.Pointer(pX)).FpKey
+ nHeader = nHeader + int32(func() uint8 {
+ if U32(nPayload) < U32(0x80) {
+ return uint8(func() int32 { *(*uint8)(unsafe.Pointer(pCell + uintptr(nHeader))) = uint8(nPayload); return 1 }())
+ }
+ return uint8(Xsqlite3PutVarint(tls, pCell+uintptr(nHeader), uint64(nPayload)))
+ }())
+ }
+
+ pPayload = pCell + uintptr(nHeader)
+ if nPayload <= int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ n = nHeader + nPayload
+
+ if n < 4 {
+ n = 4
+ }
+ *(*int32)(unsafe.Pointer(pnSize)) = n
+
+ libc.X__builtin___memcpy_chk(tls, pPayload, pSrc, uint64(nSrc), libc.X__builtin_object_size(tls, pPayload, 0))
+ libc.X__builtin___memset_chk(tls, pPayload+uintptr(nSrc), 0, uint64(nPayload-nSrc), libc.X__builtin_object_size(tls, pPayload+uintptr(nSrc), 0))
+ return SQLITE_OK
+ }
+
+ mn = int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal)
+ n = int32(U32(mn) + U32(nPayload-mn)%((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-U32(4)))
+
+ if n > int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal) {
+ n = mn
+ }
+ spaceLeft = n
+ *(*int32)(unsafe.Pointer(pnSize)) = n + nHeader + 4
+ pPrior = pCell + uintptr(nHeader+n)
+ pToRelease = uintptr(0)
+ *(*Pgno)(unsafe.Pointer(bp + 8)) = Pgno(0)
+ pBt = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+
+ for 1 != 0 {
+ n = nPayload
+ if n > spaceLeft {
+ n = spaceLeft
+ }
+
+ if nSrc >= n {
+ libc.X__builtin___memcpy_chk(tls, pPayload, pSrc, uint64(n), libc.X__builtin_object_size(tls, pPayload, 0))
+ } else if nSrc > 0 {
+ n = nSrc
+ libc.X__builtin___memcpy_chk(tls, pPayload, pSrc, uint64(n), libc.X__builtin_object_size(tls, pPayload, 0))
+ } else {
+ libc.X__builtin___memset_chk(tls, pPayload, 0, uint64(n), libc.X__builtin_object_size(tls, pPayload, 0))
+ }
+ nPayload = nPayload - n
+ if nPayload <= 0 {
+ break
+ }
+ pPayload += uintptr(n)
+ pSrc += uintptr(n)
+ nSrc = nSrc - n
+ spaceLeft = spaceLeft - n
+ if spaceLeft == 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pgnoPtrmap Pgno = *(*Pgno)(unsafe.Pointer(bp + 8))
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ for __ccgo := true; __ccgo; __ccgo = ptrmapPageno(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8))) == *(*Pgno)(unsafe.Pointer(bp + 8)) || *(*Pgno)(unsafe.Pointer(bp + 8)) == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ *(*Pgno)(unsafe.Pointer(bp + 8))++
+ }
+ }
+ *(*int32)(unsafe.Pointer(bp + 12)) = allocateBtreePage(tls, pBt, bp, bp+8, *(*Pgno)(unsafe.Pointer(bp + 8)), uint8(0))
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK {
+ var eType U8 = func() uint8 {
+ if pgnoPtrmap != 0 {
+ return uint8(PTRMAP_OVERFLOW2)
+ }
+ return uint8(PTRMAP_OVERFLOW1)
+ }()
+ ptrmapPut(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8)), eType, pgnoPtrmap, bp+12)
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ releasePage(tls, pToRelease)
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+
+ Xsqlite3Put4byte(tls, pPrior, *(*Pgno)(unsafe.Pointer(bp + 8)))
+ releasePage(tls, pToRelease)
+ pToRelease = *(*uintptr)(unsafe.Pointer(bp))
+ pPrior = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData
+ Xsqlite3Put4byte(tls, pPrior, uint32(0))
+ pPayload = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + 4
+ spaceLeft = int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(4))
+ }
+ }
+ releasePage(tls, pToRelease)
+ return SQLITE_OK
+}
+
+func dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) {
+ var pc U32
+ var data uintptr
+ var ptr uintptr
+ var rc int32
+ var hdr int32
+
+ if *(*int32)(unsafe.Pointer(pRC)) != 0 {
+ return
+ }
+
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData
+ ptr = (*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx)
+
+ pc = U32(int32(*(*U8)(unsafe.Pointer(ptr)))<<8 | int32(*(*U8)(unsafe.Pointer(ptr + 1))))
+ hdr = int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)
+
+ if pc+U32(sz) > (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize {
+ *(*int32)(unsafe.Pointer(pRC)) = Xsqlite3CorruptError(tls, 75436)
+ return
+ }
+ rc = freeSpace(tls, pPage, uint16(pc), uint16(sz))
+ if rc != 0 {
+ *(*int32)(unsafe.Pointer(pRC)) = rc
+ return
+ }
+ (*MemPage)(unsafe.Pointer(pPage)).FnCell--
+ if int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) == 0 {
+ libc.X__builtin___memset_chk(tls, data+uintptr(hdr+1), 0, uint64(4), libc.X__builtin_object_size(tls, data+uintptr(hdr+1), 0))
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+7))) = U8(0)
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+5))) = U8((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize >> 8)
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)) = U8((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)
+ (*MemPage)(unsafe.Pointer(pPage)).FnFree = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize - U32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset) -
+ U32((*MemPage)(unsafe.Pointer(pPage)).FchildPtrSize) - U32(8))
+ } else {
+ libc.X__builtin___memmove_chk(tls, ptr, ptr+uintptr(2), uint64(2*(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)-idx)), libc.X__builtin_object_size(tls, ptr, 0))
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+3))) = U8(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) >> 8)
+ *(*U8)(unsafe.Pointer(data + uintptr(hdr+3) + 1)) = U8((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+ *(*int32)(unsafe.Pointer(pPage + 20)) += 2
+ }
+}
+
+func insertCell(tls *libc.TLS, pPage uintptr, i int32, pCell uintptr, sz int32, pTemp uintptr, iChild Pgno) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var j int32
+ var data uintptr
+ var pIns uintptr
+
+ if (*MemPage)(unsafe.Pointer(pPage)).FnOverflow != 0 || sz+2 > (*MemPage)(unsafe.Pointer(pPage)).FnFree {
+ if pTemp != 0 {
+ libc.X__builtin___memcpy_chk(tls, pTemp, pCell, uint64(sz), libc.X__builtin_object_size(tls, pTemp, 0))
+ pCell = pTemp
+ }
+ if iChild != 0 {
+ Xsqlite3Put4byte(tls, pCell, iChild)
+ }
+ j = int32(libc.PostIncUint8(&(*MemPage)(unsafe.Pointer(pPage)).FnOverflow, 1))
+
+ *(*uintptr)(unsafe.Pointer(pPage + 40 + uintptr(j)*8)) = pCell
+ *(*U16)(unsafe.Pointer(pPage + 28 + uintptr(j)*2)) = U16(i)
+
+ } else {
+ var rc int32 = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ data = (*MemPage)(unsafe.Pointer(pPage)).FaData
+
+ rc = allocateSpace(tls, pPage, sz, bp)
+ if rc != 0 {
+ return rc
+ }
+
+ *(*int32)(unsafe.Pointer(pPage + 20)) -= int32(U16(2 + sz))
+ if iChild != 0 {
+ libc.X__builtin___memcpy_chk(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))+4), pCell+uintptr(4), uint64(sz-4), libc.X__builtin_object_size(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))+4), 0))
+ Xsqlite3Put4byte(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))), iChild)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))), pCell, uint64(sz), libc.X__builtin_object_size(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))), 0))
+ }
+ pIns = (*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(i*2)
+ libc.X__builtin___memmove_chk(tls, pIns+uintptr(2), pIns, uint64(2*(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)-i)), libc.X__builtin_object_size(tls, pIns+uintptr(2), 0))
+ *(*U8)(unsafe.Pointer(pIns)) = U8(*(*int32)(unsafe.Pointer(bp)) >> 8)
+ *(*U8)(unsafe.Pointer(pIns + 1)) = U8(*(*int32)(unsafe.Pointer(bp)))
+ (*MemPage)(unsafe.Pointer(pPage)).FnCell++
+
+ if int32(libc.PreIncUint8(&*(*U8)(unsafe.Pointer(data + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+4))), 1)) == 0 {
+ *(*U8)(unsafe.Pointer(data + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+3)))++
+ }
+
+ if (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FpBt)).FautoVacuum != 0 {
+ *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_OK
+
+ ptrmapPutOvflPtr(tls, pPage, pPage, pCell, bp+4)
+ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 4))
+ }
+ }
+ }
+ return SQLITE_OK
+}
+
+// A CellArray object contains a cache of pointers and sizes for a
+// consecutive sequence of cells that might be held on multiple pages.
+//
+// The cells in this array are the divider cell or cells from the pParent
+// page plus up to three child pages. There are a total of nCell cells.
+//
+// pRef is a pointer to one of the pages that contributes cells. This is
+// used to access information such as MemPage.intKey and MemPage.pBt->pageSize
+// which should be common to all pages that contribute cells to this array.
+//
+// apCell[] and szCell[] hold, respectively, pointers to the start of each
+// cell and the size of each cell. Some of the apCell[] pointers might refer
+// to overflow cells. In other words, some apCel[] pointers might not point
+// to content area of the pages.
+//
+// A szCell[] of zero means the size of that cell has not yet been computed.
+//
+// The cells come from as many as four different pages:
+//
+// -----------
+// | Parent |
+// -----------
+// / | ** / | ** --------- --------- ---------
+// |Child-1| |Child-2| |Child-3|
+// --------- --------- ---------
+//
+// The order of cells is in the array is for an index btree is:
+//
+// 1. All cells from Child-1 in order
+// 2. The first divider cell from Parent
+// 3. All cells from Child-2 in order
+// 4. The second divider cell from Parent
+// 5. All cells from Child-3 in order
+//
+// For a table-btree (with rowids) the items 2 and 4 are empty because
+// content exists only in leaves and there are no divider cells.
+//
+// For an index btree, the apEnd[] array holds pointer to the end of page
+// for Child-1, the Parent, Child-2, the Parent (again), and Child-3,
+// respectively. The ixNx[] array holds the number of cells contained in
+// each of these 5 stages, and all stages to the left. Hence:
+//
+// ixNx[0] = Number of cells in Child-1.
+// ixNx[1] = Number of cells in Child-1 plus 1 for first divider.
+// ixNx[2] = Number of cells in Child-1 and Child-2 + 1 for 1st divider.
+// ixNx[3] = Number of cells in Child-1 and Child-2 + both divider cells
+// ixNx[4] = Total number of cells.
+//
+// For a table-btree, the concept is similar, except only apEnd[0]..apEnd[2]
+// are used and they point to the leaf pages only, and the ixNx value are:
+//
+// ixNx[0] = Number of cells in Child-1.
+// ixNx[1] = Number of cells in Child-1 and Child-2.
+// ixNx[2] = Total number of cells.
+//
+// Sometimes when deleting, a child page can have zero cells. In those
+// cases, ixNx[] entries with higher indexes, and the corresponding apEnd[]
+// entries, shift down. The end result is that each ixNx[] entry should
+// be larger than the previous
+type CellArray1 = struct {
+ FnCell int32
+ F__ccgo_pad1 [4]byte
+ FpRef uintptr
+ FapCell uintptr
+ FszCell uintptr
+ FapEnd [6]uintptr
+ FixNx [6]int32
+}
+
+// A CellArray object contains a cache of pointers and sizes for a
+// consecutive sequence of cells that might be held on multiple pages.
+//
+// The cells in this array are the divider cell or cells from the pParent
+// page plus up to three child pages. There are a total of nCell cells.
+//
+// pRef is a pointer to one of the pages that contributes cells. This is
+// used to access information such as MemPage.intKey and MemPage.pBt->pageSize
+// which should be common to all pages that contribute cells to this array.
+//
+// apCell[] and szCell[] hold, respectively, pointers to the start of each
+// cell and the size of each cell. Some of the apCell[] pointers might refer
+// to overflow cells. In other words, some apCel[] pointers might not point
+// to content area of the pages.
+//
+// A szCell[] of zero means the size of that cell has not yet been computed.
+//
+// The cells come from as many as four different pages:
+//
+// -----------
+// | Parent |
+// -----------
+// / | ** / | ** --------- --------- ---------
+// |Child-1| |Child-2| |Child-3|
+// --------- --------- ---------
+//
+// The order of cells is in the array is for an index btree is:
+//
+// 1. All cells from Child-1 in order
+// 2. The first divider cell from Parent
+// 3. All cells from Child-2 in order
+// 4. The second divider cell from Parent
+// 5. All cells from Child-3 in order
+//
+// For a table-btree (with rowids) the items 2 and 4 are empty because
+// content exists only in leaves and there are no divider cells.
+//
+// For an index btree, the apEnd[] array holds pointer to the end of page
+// for Child-1, the Parent, Child-2, the Parent (again), and Child-3,
+// respectively. The ixNx[] array holds the number of cells contained in
+// each of these 5 stages, and all stages to the left. Hence:
+//
+// ixNx[0] = Number of cells in Child-1.
+// ixNx[1] = Number of cells in Child-1 plus 1 for first divider.
+// ixNx[2] = Number of cells in Child-1 and Child-2 + 1 for 1st divider.
+// ixNx[3] = Number of cells in Child-1 and Child-2 + both divider cells
+// ixNx[4] = Total number of cells.
+//
+// For a table-btree, the concept is similar, except only apEnd[0]..apEnd[2]
+// are used and they point to the leaf pages only, and the ixNx value are:
+//
+// ixNx[0] = Number of cells in Child-1.
+// ixNx[1] = Number of cells in Child-1 and Child-2.
+// ixNx[2] = Total number of cells.
+//
+// Sometimes when deleting, a child page can have zero cells. In those
+// cases, ixNx[] entries with higher indexes, and the corresponding apEnd[]
+// entries, shift down. The end result is that each ixNx[] entry should
+// be larger than the previous
+type CellArray = CellArray1
+
+func populateCellCache(tls *libc.TLS, p uintptr, idx int32, N int32) {
+ var pRef uintptr = (*CellArray)(unsafe.Pointer(p)).FpRef
+ var szCell uintptr = (*CellArray)(unsafe.Pointer(p)).FszCell
+
+ for N > 0 {
+ if int32(*(*U16)(unsafe.Pointer(szCell + uintptr(idx)*2))) == 0 {
+ *(*U16)(unsafe.Pointer(szCell + uintptr(idx)*2)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pRef)).FxCellSize})).f(tls, pRef, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FapCell + uintptr(idx)*8)))
+ } else {
+ }
+ idx++
+ N--
+ }
+}
+
+func computeCellSize(tls *libc.TLS, p uintptr, N int32) U16 {
+ *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FszCell + uintptr(N)*2)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FpRef)).FxCellSize})).f(tls, (*CellArray)(unsafe.Pointer(p)).FpRef, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FapCell + uintptr(N)*8)))
+ return *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FszCell + uintptr(N)*2))
+}
+
+func cachedCellSize(tls *libc.TLS, p uintptr, N int32) U16 {
+ if *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FszCell + uintptr(N)*2)) != 0 {
+ return *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(p)).FszCell + uintptr(N)*2))
+ }
+ return computeCellSize(tls, p, N)
+}
+
+func rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg uintptr) int32 {
+ var hdr int32 = int32((*MemPage)(unsafe.Pointer(pPg)).FhdrOffset)
+ var aData uintptr = (*MemPage)(unsafe.Pointer(pPg)).FaData
+ var usableSize int32 = int32((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPg)).FpBt)).FusableSize)
+ var pEnd uintptr = aData + uintptr(usableSize)
+ var i int32 = iFirst
+ var j U32
+ var iEnd int32 = i + nCell
+ var pCellptr uintptr = (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx
+ var pTmp uintptr = Xsqlite3PagerTempSpace(tls, (*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPg)).FpBt)).FpPager)
+ var pData uintptr
+ var k int32
+ var pSrcEnd uintptr
+
+ j = U32(int32(*(*U8)(unsafe.Pointer(aData + uintptr(hdr+5))))<<8 | int32(*(*U8)(unsafe.Pointer(aData + uintptr(hdr+5) + 1))))
+ if j > U32(usableSize) {
+ j = U32(0)
+ }
+ libc.X__builtin___memcpy_chk(tls, pTmp+uintptr(j), aData+uintptr(j), uint64(U32(usableSize)-j), libc.X__builtin_object_size(tls, pTmp+uintptr(j), 0))
+
+ for k = 0; *(*int32)(unsafe.Pointer(pCArray + 80 + uintptr(k)*4)) <= i && k < NB*2; k++ {
+ }
+ pSrcEnd = *(*uintptr)(unsafe.Pointer(pCArray + 32 + uintptr(k)*8))
+
+ pData = pEnd
+ for 1 != 0 {
+ var pCell uintptr = *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))
+ var sz U16 = *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2))
+
+ if Uptr(pCell) >= Uptr(aData+uintptr(j)) && Uptr(pCell) < Uptr(pEnd) {
+ if Uptr(pCell+uintptr(sz)) > Uptr(pEnd) {
+ return Xsqlite3CorruptError(tls, 75737)
+ }
+ pCell = pTmp + uintptr((int64(pCell)-int64(aData))/1)
+ } else if Uptr(pCell+uintptr(sz)) > Uptr(pSrcEnd) &&
+ Uptr(pCell) < Uptr(pSrcEnd) {
+ return Xsqlite3CorruptError(tls, 75742)
+ }
+
+ pData -= uintptr(sz)
+ *(*U8)(unsafe.Pointer(pCellptr)) = U8((int64(pData) - int64(aData)) / 1 >> 8)
+ *(*U8)(unsafe.Pointer(pCellptr + 1)) = U8((int64(pData) - int64(aData)) / 1)
+ pCellptr += uintptr(2)
+ if pData < pCellptr {
+ return Xsqlite3CorruptError(tls, 75748)
+ }
+ libc.X__builtin___memmove_chk(tls, pData, pCell, uint64(sz), libc.X__builtin_object_size(tls, pData, 0))
+
+ i++
+ if i >= iEnd {
+ break
+ }
+ if *(*int32)(unsafe.Pointer(pCArray + 80 + uintptr(k)*4)) <= i {
+ k++
+ pSrcEnd = *(*uintptr)(unsafe.Pointer(pCArray + 32 + uintptr(k)*8))
+ }
+ }
+
+ (*MemPage)(unsafe.Pointer(pPg)).FnCell = U16(nCell)
+ (*MemPage)(unsafe.Pointer(pPg)).FnOverflow = U8(0)
+
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+1))) = U8(int32(0) >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+1) + 1)) = U8(0)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+3))) = U8(int32((*MemPage)(unsafe.Pointer(pPg)).FnCell) >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+3) + 1)) = U8((*MemPage)(unsafe.Pointer(pPg)).FnCell)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+5))) = U8((int64(pData) - int64(aData)) / 1 >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+5) + 1)) = U8((int64(pData) - int64(aData)) / 1)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+7))) = U8(0x00)
+ return SQLITE_OK
+}
+
+func pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr, pCellptr uintptr, iFirst int32, nCell int32, pCArray uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32 = iFirst
+ var aData uintptr = (*MemPage)(unsafe.Pointer(pPg)).FaData
+ var pData uintptr = *(*uintptr)(unsafe.Pointer(ppData))
+ var iEnd int32 = iFirst + nCell
+ var k int32
+ var pEnd uintptr
+
+ if iEnd <= iFirst {
+ return 0
+ }
+ for k = 0; *(*int32)(unsafe.Pointer(pCArray + 80 + uintptr(k)*4)) <= i && k < NB*2; k++ {
+ }
+ pEnd = *(*uintptr)(unsafe.Pointer(pCArray + 32 + uintptr(k)*8))
+ for 1 != 0 {
+ var sz int32
+
+ var pSlot uintptr
+
+ sz = int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)))
+ if int32(*(*U8)(unsafe.Pointer(aData + 1))) == 0 && int32(*(*U8)(unsafe.Pointer(aData + 2))) == 0 || libc.AssignUintptr(&pSlot, pageFindSlot(tls, pPg, sz, bp)) == uintptr(0) {
+ if (int64(pData)-int64(pBegin))/1 < int64(sz) {
+ return 1
+ }
+ pData -= uintptr(sz)
+ pSlot = pData
+ }
+
+ if Uptr(*(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > Uptr(pEnd) &&
+ Uptr(*(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < Uptr(pEnd) {
+ Xsqlite3CorruptError(tls, 75833)
+ return 1
+ }
+ libc.X__builtin___memmove_chk(tls, pSlot, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz), libc.X__builtin_object_size(tls, pSlot, 0))
+ *(*U8)(unsafe.Pointer(pCellptr)) = U8((int64(pSlot) - int64(aData)) / 1 >> 8)
+ *(*U8)(unsafe.Pointer(pCellptr + 1)) = U8((int64(pSlot) - int64(aData)) / 1)
+ pCellptr += uintptr(2)
+ i++
+ if i >= iEnd {
+ break
+ }
+ if *(*int32)(unsafe.Pointer(pCArray + 80 + uintptr(k)*4)) <= i {
+ k++
+ pEnd = *(*uintptr)(unsafe.Pointer(pCArray + 32 + uintptr(k)*8))
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppData)) = pData
+ return 0
+}
+
+func pageFreeArray(tls *libc.TLS, pPg uintptr, iFirst int32, nCell int32, pCArray uintptr) int32 {
+ var aData uintptr = (*MemPage)(unsafe.Pointer(pPg)).FaData
+ var pEnd uintptr = aData + uintptr((*BtShared)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPg)).FpBt)).FusableSize)
+ var pStart uintptr = aData + uintptr(int32((*MemPage)(unsafe.Pointer(pPg)).FhdrOffset)+8+int32((*MemPage)(unsafe.Pointer(pPg)).FchildPtrSize))
+ var nRet int32 = 0
+ var i int32
+ var iEnd int32 = iFirst + nCell
+ var pFree uintptr = uintptr(0)
+ var szFree int32 = 0
+
+ for i = iFirst; i < iEnd; i++ {
+ var pCell uintptr = *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))
+ if Uptr(pCell) >= Uptr(pStart) && Uptr(pCell) < Uptr(pEnd) {
+ var sz int32
+
+ sz = int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)))
+ if pFree != pCell+uintptr(sz) {
+ if pFree != 0 {
+ freeSpace(tls, pPg, U16((int64(pFree)-int64(aData))/1), uint16(szFree))
+ }
+ pFree = pCell
+ szFree = sz
+ if pFree+uintptr(sz) > pEnd {
+ return 0
+ }
+ } else {
+ pFree = pCell
+ szFree = szFree + sz
+ }
+ nRet++
+ }
+ }
+ if pFree != 0 {
+ freeSpace(tls, pPg, U16((int64(pFree)-int64(aData))/1), uint16(szFree))
+ }
+ return nRet
+}
+
+func editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, pCArray uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var aData uintptr
+ var hdr int32
+ var pBegin uintptr
+ var nCell int32
+
+ var pCellptr uintptr
+ var i int32
+ var iOldEnd int32
+ var iNewEnd int32
+ var nShift int32
+ var nTail int32
+ var nAdd int32
+ var iCell int32
+ aData = (*MemPage)(unsafe.Pointer(pPg)).FaData
+ hdr = int32((*MemPage)(unsafe.Pointer(pPg)).FhdrOffset)
+ pBegin = (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx + uintptr(nNew*2)
+ nCell = int32((*MemPage)(unsafe.Pointer(pPg)).FnCell)
+ iOldEnd = iOld + int32((*MemPage)(unsafe.Pointer(pPg)).FnCell) + int32((*MemPage)(unsafe.Pointer(pPg)).FnOverflow)
+ iNewEnd = iNew + nNew
+
+ if !(iOld < iNew) {
+ goto __1
+ }
+ nShift = pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray)
+ if !(nShift > nCell) {
+ goto __2
+ }
+ return Xsqlite3CorruptError(tls, 75947)
+__2:
+ ;
+ libc.X__builtin___memmove_chk(tls, (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*2), uint64(nCell*2), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx, 0))
+ nCell = nCell - nShift
+__1:
+ ;
+ if !(iNewEnd < iOldEnd) {
+ goto __3
+ }
+ nTail = pageFreeArray(tls, pPg, iNewEnd, iOldEnd-iNewEnd, pCArray)
+
+ nCell = nCell - nTail
+__3:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp)) = aData + uintptr((int32(*(*U8)(unsafe.Pointer(aData + uintptr(hdr+5))))<<8|int32(*(*U8)(unsafe.Pointer(aData + uintptr(hdr+5) + 1)))-1)&0xffff+1)
+ if !(*(*uintptr)(unsafe.Pointer(bp)) < pBegin) {
+ goto __4
+ }
+ goto editpage_fail
+__4:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp)) > (*MemPage)(unsafe.Pointer(pPg)).FaDataEnd) {
+ goto __5
+ }
+ goto editpage_fail
+__5:
+ ;
+ if !(iNew < iOld) {
+ goto __6
+ }
+ nAdd = func() int32 {
+ if nNew < iOld-iNew {
+ return nNew
+ }
+ return iOld - iNew
+ }()
+
+ pCellptr = (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx
+ libc.X__builtin___memmove_chk(tls, pCellptr+uintptr(nAdd*2), pCellptr, uint64(nCell*2), libc.X__builtin_object_size(tls, pCellptr+uintptr(nAdd*2), 0))
+ if !(pageInsertArray(tls,
+ pPg, pBegin, bp, pCellptr,
+ iNew, nAdd, pCArray) != 0) {
+ goto __7
+ }
+ goto editpage_fail
+__7:
+ ;
+ nCell = nCell + nAdd
+__6:
+ ;
+ i = 0
+__8:
+ if !(i < int32((*MemPage)(unsafe.Pointer(pPg)).FnOverflow)) {
+ goto __10
+ }
+ iCell = iOld + int32(*(*U16)(unsafe.Pointer(pPg + 28 + uintptr(i)*2))) - iNew
+ if !(iCell >= 0 && iCell < nNew) {
+ goto __11
+ }
+ pCellptr = (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx + uintptr(iCell*2)
+ if !(nCell > iCell) {
+ goto __12
+ }
+ libc.X__builtin___memmove_chk(tls, pCellptr+2, pCellptr, uint64((nCell-iCell)*2), libc.X__builtin_object_size(tls, pCellptr+2, 0))
+__12:
+ ;
+ nCell++
+ cachedCellSize(tls, pCArray, iCell+iNew)
+ if !(pageInsertArray(tls,
+ pPg, pBegin, bp, pCellptr,
+ iCell+iNew, 1, pCArray) != 0) {
+ goto __13
+ }
+ goto editpage_fail
+__13:
+ ;
+__11:
+ ;
+ goto __9
+__9:
+ i++
+ goto __8
+ goto __10
+__10:
+ ;
+ pCellptr = (*MemPage)(unsafe.Pointer(pPg)).FaCellIdx + uintptr(nCell*2)
+ if !(pageInsertArray(tls,
+ pPg, pBegin, bp, pCellptr,
+ iNew+nCell, nNew-nCell, pCArray) != 0) {
+ goto __14
+ }
+ goto editpage_fail
+__14:
+ ;
+ (*MemPage)(unsafe.Pointer(pPg)).FnCell = U16(nNew)
+ (*MemPage)(unsafe.Pointer(pPg)).FnOverflow = U8(0)
+
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+3))) = U8(int32((*MemPage)(unsafe.Pointer(pPg)).FnCell) >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+3) + 1)) = U8((*MemPage)(unsafe.Pointer(pPg)).FnCell)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+5))) = U8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) / 1 >> 8)
+ *(*U8)(unsafe.Pointer(aData + uintptr(hdr+5) + 1)) = U8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) / 1)
+
+ return SQLITE_OK
+editpage_fail:
+ populateCellCache(tls, pCArray, iNew, nNew)
+ return rebuildPage(tls, pCArray, iNew, nNew, pPg)
+}
+
+func balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintptr) int32 {
+ bp := tls.Alloc(140)
+ defer tls.Free(140)
+
+ var pBt uintptr = (*MemPage)(unsafe.Pointer(pPage)).FpBt
+
+ if int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) == 0 {
+ return Xsqlite3CorruptError(tls, 76060)
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 136)) = allocateBtreePage(tls, pBt, bp, bp+8, uint32(0), uint8(0))
+
+ if *(*int32)(unsafe.Pointer(bp + 136)) == SQLITE_OK {
+ var pOut uintptr = pSpace + 4
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = *(*uintptr)(unsafe.Pointer(pPage + 40))
+ *(*U16)(unsafe.Pointer(bp + 24)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxCellSize})).f(tls, pPage, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ var pStop uintptr
+
+ zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), PTF_INTKEY|PTF_LEAFDATA|PTF_LEAF)
+ (*CellArray)(unsafe.Pointer(bp + 32)).FnCell = 1
+ (*CellArray)(unsafe.Pointer(bp + 32)).FpRef = pPage
+ (*CellArray)(unsafe.Pointer(bp + 32)).FapCell = bp + 16
+ (*CellArray)(unsafe.Pointer(bp + 32)).FszCell = bp + 24
+ *(*uintptr)(unsafe.Pointer(bp + 32 + 32)) = (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd
+ *(*int32)(unsafe.Pointer(bp + 32 + 80)) = 2
+ *(*int32)(unsafe.Pointer(bp + 136)) = rebuildPage(tls, bp+32, 0, 1, *(*uintptr)(unsafe.Pointer(bp)))
+ if *(*int32)(unsafe.Pointer(bp + 136)) != 0 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return *(*int32)(unsafe.Pointer(bp + 136))
+ }
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnFree = int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FcellOffset) - U32(2) - U32(*(*U16)(unsafe.Pointer(bp + 24))))
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ ptrmapPut(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8)), uint8(PTRMAP_BTREE), (*MemPage)(unsafe.Pointer(pParent)).Fpgno, bp+136)
+ if int32(*(*U16)(unsafe.Pointer(bp + 24))) > int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FminLocal) {
+ ptrmapPutOvflPtr(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 16)), bp+136)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)-1)))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)-1)) + 1)))))
+ pStop = *(*uintptr)(unsafe.Pointer(bp + 16)) + 9
+ for int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 16)), 1))))&0x80 != 0 && *(*uintptr)(unsafe.Pointer(bp + 16)) < pStop {
+ }
+ pStop = *(*uintptr)(unsafe.Pointer(bp + 16)) + 9
+ for int32(libc.AssignPtrUint8(libc.PostIncUintptr(&pOut, 1), *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 16)), 1)))))&0x80 != 0 && *(*uintptr)(unsafe.Pointer(bp + 16)) < pStop {
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 136)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 136)) = insertCell(tls, pParent, int32((*MemPage)(unsafe.Pointer(pParent)).FnCell), pSpace, int32((int64(pOut)-int64(pSpace))/1),
+ uintptr(0), (*MemPage)(unsafe.Pointer(pPage)).Fpgno)
+ }
+
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pParent)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pParent)).FhdrOffset)+8), *(*Pgno)(unsafe.Pointer(bp + 8)))
+
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 136))
+}
+
+func copyNodeContent(tls *libc.TLS, pFrom uintptr, pTo uintptr, pRC uintptr) {
+ if *(*int32)(unsafe.Pointer(pRC)) == SQLITE_OK {
+ var pBt uintptr = (*MemPage)(unsafe.Pointer(pFrom)).FpBt
+ var aFrom uintptr = (*MemPage)(unsafe.Pointer(pFrom)).FaData
+ var aTo uintptr = (*MemPage)(unsafe.Pointer(pTo)).FaData
+ var iFromHdr int32 = int32((*MemPage)(unsafe.Pointer(pFrom)).FhdrOffset)
+ var iToHdr int32 = func() int32 {
+ if (*MemPage)(unsafe.Pointer(pTo)).Fpgno == Pgno(1) {
+ return 100
+ }
+ return 0
+ }()
+ var rc int32
+ var iData int32
+
+ iData = int32(*(*U8)(unsafe.Pointer(aFrom + uintptr(iFromHdr+5))))<<8 | int32(*(*U8)(unsafe.Pointer(aFrom + uintptr(iFromHdr+5) + 1)))
+ libc.X__builtin___memcpy_chk(tls, aTo+uintptr(iData), aFrom+uintptr(iData), uint64((*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(iData)), libc.X__builtin_object_size(tls, aTo+uintptr(iData), 0))
+ libc.X__builtin___memcpy_chk(tls, aTo+uintptr(iToHdr), aFrom+uintptr(iFromHdr), uint64(int32((*MemPage)(unsafe.Pointer(pFrom)).FcellOffset)+2*int32((*MemPage)(unsafe.Pointer(pFrom)).FnCell)), libc.X__builtin_object_size(tls, aTo+uintptr(iToHdr), 0))
+
+ (*MemPage)(unsafe.Pointer(pTo)).FisInit = U8(0)
+ rc = btreeInitPage(tls, pTo)
+ if rc == SQLITE_OK {
+ rc = btreeComputeFreeSpace(tls, pTo)
+ }
+ if rc != SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRC)) = rc
+ return
+ }
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ *(*int32)(unsafe.Pointer(pRC)) = setChildPtrmaps(tls, pTo)
+ }
+ }
+}
+
+func balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpace uintptr, isRoot int32, bBulk int32) int32 {
+ bp := tls.Alloc(312)
+ defer tls.Free(312)
+
+ var pBt uintptr
+ var nMaxCells int32
+ var nNew int32
+ var nOld int32
+ var i int32
+ var j int32
+ var k int32
+ var nxDiv int32
+
+ var leafCorrection U16
+ var leafData int32
+ var usableSpace int32
+ var pageFlags int32
+ var iSpace1 int32
+ var iOvflSpace int32
+ var szScratch int32
+
+ var pRight uintptr
+
+ var aSpace1 uintptr
+
+ var iOff int32
+ var sz U16
+ var pTemp uintptr
+ var pOld uintptr
+ var limit int32
+ var aData uintptr
+ var maskPage U16
+ var piCell uintptr
+ var piEnd uintptr
+ var p uintptr
+ var sz1 int32
+ var szR int32
+ var szD int32
+ var szRight int32
+ var szLeft int32
+ var r int32
+ var d int32
+
+ var pgnoA Pgno
+ var pgnoB Pgno
+ var pgnoTemp Pgno
+ var fgA U16
+ var fgB U16
+ var iB int32
+ var pOld1 uintptr
+ var pCell uintptr
+ var pOld2 uintptr
+ var pNew1 uintptr
+ var cntOldNext int32
+ var iNew int32
+ var iOld int32
+
+ var pCell1 uintptr
+ var pTemp1 uintptr
+ var sz2 int32
+ var pSrcEnd uintptr
+ var pNew2 uintptr
+ var iNew1 int32
+ var iOld1 int32
+ var nNewCell int32
+ var iPg int32
+ var key U32
+ nMaxCells = 0
+ nNew = 0
+ *(*int32)(unsafe.Pointer(bp + 172)) = SQLITE_OK
+ iSpace1 = 0
+ iOvflSpace = 0
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([5]U8{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(CellArray{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ pBt = (*MemPage)(unsafe.Pointer(pParent)).FpBt
+
+ if !!(aOvflSpace != 0) {
+ goto __1
+ }
+ return SQLITE_NOMEM
+__1:
+ ;
+ i = int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow) + int32((*MemPage)(unsafe.Pointer(pParent)).FnCell)
+ if !(i < 2) {
+ goto __2
+ }
+ nxDiv = 0
+ goto __3
+__2:
+ ;
+ if !(iParentIdx == 0) {
+ goto __4
+ }
+ nxDiv = 0
+ goto __5
+__4:
+ if !(iParentIdx == i) {
+ goto __6
+ }
+ nxDiv = i - 2 + bBulk
+ goto __7
+__6:
+ nxDiv = iParentIdx - 1
+__7:
+ ;
+__5:
+ ;
+ i = 2 - bBulk
+__3:
+ ;
+ nOld = i + 1
+ if !(i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow) == int32((*MemPage)(unsafe.Pointer(pParent)).FnCell)) {
+ goto __8
+ }
+ pRight = (*MemPage)(unsafe.Pointer(pParent)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pParent)).FhdrOffset)+8)
+ goto __9
+__8:
+ pRight = (*MemPage)(unsafe.Pointer(pParent)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pParent)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pParent)).FaCellIdx + uintptr(2*(i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow))))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pParent)).FaCellIdx + uintptr(2*(i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow))) + 1)))))
+__9:
+ ;
+ *(*Pgno)(unsafe.Pointer(bp + 264)) = Xsqlite3Get4byte(tls, pRight)
+__10:
+ if !(1 != 0) {
+ goto __11
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) == SQLITE_OK) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = getAndInitPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 264)), bp+112+uintptr(i)*8, uintptr(0), 0)
+__12:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __13
+ }
+ libc.X__builtin___memset_chk(tls, bp+112, 0, uint64(i+1)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, bp+112, 0))
+ goto balance_cleanup
+__13:
+ ;
+ if !((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)))).FnFree < 0) {
+ goto __14
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = btreeComputeFreeSpace(tls, *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)))
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __15
+ }
+ libc.X__builtin___memset_chk(tls, bp+112, 0, uint64(i)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, bp+112, 0))
+ goto balance_cleanup
+__15:
+ ;
+__14:
+ ;
+ nMaxCells = nMaxCells + (int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)))).FnCell) + int32(uint64(unsafe.Sizeof([4]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))))
+ if !(libc.PostDecInt32(&i, 1) == 0) {
+ goto __16
+ }
+ goto __11
+__16:
+ ;
+ if !((*MemPage)(unsafe.Pointer(pParent)).FnOverflow != 0 && i+nxDiv == int32(*(*U16)(unsafe.Pointer(pParent + 28)))) {
+ goto __17
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(pParent + 40))
+ *(*Pgno)(unsafe.Pointer(bp + 264)) = Xsqlite3Get4byte(tls, *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)))
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pParent)).FxCellSize})).f(tls, pParent, *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8))))
+ (*MemPage)(unsafe.Pointer(pParent)).FnOverflow = U8(0)
+ goto __18
+__17:
+ *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)) = (*MemPage)(unsafe.Pointer(pParent)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pParent)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pParent)).FaCellIdx + uintptr(2*(i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow))))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pParent)).FaCellIdx + uintptr(2*(i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow))) + 1)))))
+ *(*Pgno)(unsafe.Pointer(bp + 264)) = Xsqlite3Get4byte(tls, *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)))
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pParent)).FxCellSize})).f(tls, pParent, *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8))))
+
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FbtsFlags)&BTS_FAST_SECURE != 0) {
+ goto __19
+ }
+
+ iOff = int32(*(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8))) - int32((*MemPage)(unsafe.Pointer(pParent)).FaData)
+ if !(iOff+*(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) <= int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize)) {
+ goto __20
+ }
+ libc.X__builtin___memcpy_chk(tls, aOvflSpace+uintptr(iOff), *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)), uint64(*(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4))), libc.X__builtin_object_size(tls, aOvflSpace+uintptr(iOff), 0))
+ *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)) = aOvflSpace + uintptr((int64(*(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)))-int64((*MemPage)(unsafe.Pointer(pParent)).FaData))/1)
+__20:
+ ;
+__19:
+ ;
+ dropCell(tls, pParent, i+nxDiv-int32((*MemPage)(unsafe.Pointer(pParent)).FnOverflow), *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)), bp+172)
+__18:
+ ;
+ goto __10
+__11:
+ ;
+ nMaxCells = (nMaxCells + 3) & libc.CplInt32(3)
+
+ szScratch = int32(uint64(nMaxCells)*uint64(unsafe.Sizeof(uintptr(0))) +
+ uint64(nMaxCells)*uint64(unsafe.Sizeof(U16(0))) +
+ uint64((*BtShared)(unsafe.Pointer(pBt)).FpageSize))
+
+ (*CellArray)(unsafe.Pointer(bp + 8)).FapCell = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(szScratch))
+ if !((*CellArray)(unsafe.Pointer(bp+8)).FapCell == uintptr(0)) {
+ goto __21
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = SQLITE_NOMEM
+ goto balance_cleanup
+__21:
+ ;
+ (*CellArray)(unsafe.Pointer(bp + 8)).FszCell = (*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr(nMaxCells)*8
+ aSpace1 = (*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr(nMaxCells)*2
+
+ (*CellArray)(unsafe.Pointer(bp + 8)).FpRef = *(*uintptr)(unsafe.Pointer(bp + 112))
+ leafCorrection = U16(int32((*MemPage)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FpRef)).Fleaf) * 4)
+ leafData = int32((*MemPage)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp + 8)).FpRef)).FintKeyLeaf)
+ i = 0
+__22:
+ if !(i < nOld) {
+ goto __24
+ }
+ pOld = *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8))
+ limit = int32((*MemPage)(unsafe.Pointer(pOld)).FnCell)
+ aData = (*MemPage)(unsafe.Pointer(pOld)).FaData
+ maskPage = (*MemPage)(unsafe.Pointer(pOld)).FmaskPage
+ piCell = aData + uintptr((*MemPage)(unsafe.Pointer(pOld)).FcellOffset)
+
+ if !(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112)))).FaData)))) {
+ goto __25
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76481)
+ goto balance_cleanup
+__25:
+ ;
+ libc.X__builtin___memset_chk(tls, (*CellArray)(unsafe.Pointer(bp+8)).FszCell+uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2, 0, uint64(unsafe.Sizeof(U16(0)))*uint64(limit+int32((*MemPage)(unsafe.Pointer(pOld)).FnOverflow)), libc.X__builtin_object_size(tls, (*CellArray)(unsafe.Pointer(bp+8)).FszCell+uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2, 0))
+ if !(int32((*MemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0) {
+ goto __26
+ }
+ if !(limit < int32(*(*U16)(unsafe.Pointer(pOld + 28)))) {
+ goto __27
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76505)
+ goto balance_cleanup
+__27:
+ ;
+ limit = int32(*(*U16)(unsafe.Pointer(pOld + 28)))
+ j = 0
+__28:
+ if !(j < limit) {
+ goto __30
+ }
+ *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)) = aData + uintptr(int32(maskPage)&(int32(*(*U8)(unsafe.Pointer(piCell)))<<8|int32(*(*U8)(unsafe.Pointer(piCell + 1)))))
+ piCell += uintptr(2)
+ (*CellArray)(unsafe.Pointer(bp+8)).FnCell++
+ goto __29
+__29:
+ j++
+ goto __28
+ goto __30
+__30:
+ ;
+ k = 0
+__31:
+ if !(k < int32((*MemPage)(unsafe.Pointer(pOld)).FnOverflow)) {
+ goto __33
+ }
+
+ *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)) = *(*uintptr)(unsafe.Pointer(pOld + 40 + uintptr(k)*8))
+ (*CellArray)(unsafe.Pointer(bp+8)).FnCell++
+ goto __32
+__32:
+ k++
+ goto __31
+ goto __33
+__33:
+ ;
+__26:
+ ;
+ piEnd = aData + uintptr((*MemPage)(unsafe.Pointer(pOld)).FcellOffset) + uintptr(2*int32((*MemPage)(unsafe.Pointer(pOld)).FnCell))
+__34:
+ if !(piCell < piEnd) {
+ goto __35
+ }
+
+ *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)) = aData + uintptr(int32(maskPage)&(int32(*(*U8)(unsafe.Pointer(piCell)))<<8|int32(*(*U8)(unsafe.Pointer(piCell + 1)))))
+ piCell += uintptr(2)
+ (*CellArray)(unsafe.Pointer(bp+8)).FnCell++
+ goto __34
+__35:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 176 + uintptr(i)*4)) = (*CellArray)(unsafe.Pointer(bp + 8)).FnCell
+ if !(i < nOld-1 && !(leafData != 0)) {
+ goto __36
+ }
+ sz = U16(*(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)))
+
+ *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2)) = sz
+ pTemp = aSpace1 + uintptr(iSpace1)
+ iSpace1 = iSpace1 + int32(sz)
+
+ libc.X__builtin___memcpy_chk(tls, pTemp, *(*uintptr)(unsafe.Pointer(bp + 136 + uintptr(i)*8)), uint64(sz), libc.X__builtin_object_size(tls, pTemp, 0))
+ *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)) = pTemp + uintptr(leafCorrection)
+
+ *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2)) = U16(int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2))) - int32(leafCorrection))
+ if !!(int32((*MemPage)(unsafe.Pointer(pOld)).Fleaf) != 0) {
+ goto __37
+ }
+
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)), (*MemPage)(unsafe.Pointer(pOld)).FaData+8, uint64(4), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*8)), 0))
+ goto __38
+__37:
+ ;
+__39:
+ if !(int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2))) < 4) {
+ goto __40
+ }
+
+ *(*U8)(unsafe.Pointer(aSpace1 + uintptr(libc.PostIncInt32(&iSpace1, 1)))) = U8(0x00)
+ *(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr((*CellArray)(unsafe.Pointer(bp+8)).FnCell)*2))++
+ goto __39
+__40:
+ ;
+__38:
+ ;
+ (*CellArray)(unsafe.Pointer(bp+8)).FnCell++
+__36:
+ ;
+ goto __23
+__23:
+ i++
+ goto __22
+ goto __24
+__24:
+ ;
+ usableSpace = int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(12) + U32(leafCorrection))
+ i = libc.AssignInt32(&k, 0)
+__41:
+ if !(i < nOld) {
+ goto __43
+ }
+ p = *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8))
+ *(*uintptr)(unsafe.Pointer(bp + 8 + 32 + uintptr(k)*8)) = (*MemPage)(unsafe.Pointer(p)).FaDataEnd
+ *(*int32)(unsafe.Pointer(bp + 8 + 80 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(bp + 176 + uintptr(i)*4))
+ if !(k != 0 && *(*int32)(unsafe.Pointer(bp + 8 + 80 + uintptr(k)*4)) == *(*int32)(unsafe.Pointer(bp + 8 + 80 + uintptr(k-1)*4))) {
+ goto __44
+ }
+ k--
+__44:
+ ;
+ if !!(leafData != 0) {
+ goto __45
+ }
+ k++
+ *(*uintptr)(unsafe.Pointer(bp + 8 + 32 + uintptr(k)*8)) = (*MemPage)(unsafe.Pointer(pParent)).FaDataEnd
+ *(*int32)(unsafe.Pointer(bp + 8 + 80 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(bp + 176 + uintptr(i)*4)) + 1
+__45:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) = usableSpace - (*MemPage)(unsafe.Pointer(p)).FnFree
+ j = 0
+__46:
+ if !(j < int32((*MemPage)(unsafe.Pointer(p)).FnOverflow)) {
+ goto __48
+ }
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) += 2 + int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(p)).FxCellSize})).f(tls, p, *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(j)*8))))
+ goto __47
+__47:
+ j++
+ goto __46
+ goto __48
+__48:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) = *(*int32)(unsafe.Pointer(bp + 176 + uintptr(i)*4))
+ goto __42
+__42:
+ i++
+ k++
+ goto __41
+ goto __43
+__43:
+ ;
+ k = nOld
+ i = 0
+__49:
+ if !(i < k) {
+ goto __51
+ }
+__52:
+ if !(*(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) > usableSpace) {
+ goto __53
+ }
+ if !(i+1 >= k) {
+ goto __54
+ }
+ k = i + 2
+ if !(k > NB+2) {
+ goto __55
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76606)
+ goto balance_cleanup
+__55:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(k-1)*4)) = 0
+ *(*int32)(unsafe.Pointer(bp + 196 + uintptr(k-1)*4)) = (*CellArray)(unsafe.Pointer(bp + 8)).FnCell
+__54:
+ ;
+ sz1 = 2 + int32(cachedCellSize(tls, bp+8, *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))-1))
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) -= sz1
+ if !!(leafData != 0) {
+ goto __56
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) < (*CellArray)(unsafe.Pointer(bp+8)).FnCell) {
+ goto __57
+ }
+ sz1 = 2 + int32(cachedCellSize(tls, bp+8, *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))))
+ goto __58
+__57:
+ sz1 = 0
+__58:
+ ;
+__56:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i+1)*4)) += sz1
+ *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))--
+ goto __52
+__53:
+ ;
+__59:
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) < (*CellArray)(unsafe.Pointer(bp+8)).FnCell) {
+ goto __60
+ }
+ sz1 = 2 + int32(cachedCellSize(tls, bp+8, *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))))
+ if !(*(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4))+sz1 > usableSpace) {
+ goto __61
+ }
+ goto __60
+__61:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) += sz1
+ *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))++
+ if !!(leafData != 0) {
+ goto __62
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) < (*CellArray)(unsafe.Pointer(bp+8)).FnCell) {
+ goto __63
+ }
+ sz1 = 2 + int32(cachedCellSize(tls, bp+8, *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))))
+ goto __64
+__63:
+ sz1 = 0
+__64:
+ ;
+__62:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i+1)*4)) -= sz1
+ goto __59
+__60:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) >= (*CellArray)(unsafe.Pointer(bp+8)).FnCell) {
+ goto __65
+ }
+ k = i + 1
+ goto __66
+__65:
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4)) <= func() int32 {
+ if i > 0 {
+ return *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i-1)*4))
+ }
+ return 0
+ }()) {
+ goto __67
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76639)
+ goto balance_cleanup
+__67:
+ ;
+__66:
+ ;
+ goto __50
+__50:
+ i++
+ goto __49
+ goto __51
+__51:
+ ;
+ i = k - 1
+__68:
+ if !(i > 0) {
+ goto __70
+ }
+ szRight = *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4))
+ szLeft = *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i-1)*4))
+
+ r = *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i-1)*4)) - 1
+ d = r + 1 - leafData
+ cachedCellSize(tls, bp+8, d)
+__71:
+ ;
+ szR = int32(cachedCellSize(tls, bp+8, r))
+ szD = int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr(d)*2)))
+ if !(szRight != 0 &&
+ (bBulk != 0 || szRight+szD+2 > szLeft-(szR+func() int32 {
+ if i == k-1 {
+ return 0
+ }
+ return 2
+ }()))) {
+ goto __74
+ }
+ goto __73
+__74:
+ ;
+ szRight = szRight + (szD + 2)
+ szLeft = szLeft - (szR + 2)
+ *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i-1)*4)) = r
+ r--
+ d--
+ goto __72
+__72:
+ if r >= 0 {
+ goto __71
+ }
+ goto __73
+__73:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i)*4)) = szRight
+ *(*int32)(unsafe.Pointer(bp + 152 + uintptr(i-1)*4)) = szLeft
+ if !(*(*int32)(unsafe.Pointer(bp + 196 + uintptr(i-1)*4)) <= func() int32 {
+ if i > 1 {
+ return *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i-2)*4))
+ }
+ return 0
+ }()) {
+ goto __75
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76683)
+ goto balance_cleanup
+__75:
+ ;
+ goto __69
+__69:
+ i--
+ goto __68
+ goto __70
+__70:
+ ;
+ pageFlags = int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112)))).FaData)))
+ i = 0
+__76:
+ if !(i < k) {
+ goto __78
+ }
+ if !(i < nOld) {
+ goto __79
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 256)) = libc.AssignPtrUintptr(bp+216+uintptr(i)*8, *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 256)))).FpDbPage)
+ nNew++
+ if !(Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 256)))).FpDbPage) != 1+libc.Bool32(i == iParentIdx-nxDiv) &&
+ *(*int32)(unsafe.Pointer(bp + 172)) == SQLITE_OK) {
+ goto __81
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76716)
+__81:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __82
+ }
+ goto balance_cleanup
+__82:
+ ;
+ goto __80
+__79:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 172)) = allocateBtreePage(tls, pBt, bp+256, bp+264, func() uint32 {
+ if bBulk != 0 {
+ return uint32(1)
+ }
+ return *(*Pgno)(unsafe.Pointer(bp + 264))
+ }(), uint8(0))
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __83
+ }
+ goto balance_cleanup
+__83:
+ ;
+ zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp + 256)), pageFlags)
+ *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(bp + 256))
+ nNew++
+ *(*int32)(unsafe.Pointer(bp + 176 + uintptr(i)*4)) = (*CellArray)(unsafe.Pointer(bp + 8)).FnCell
+
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __84
+ }
+ ptrmapPut(tls, pBt, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 256)))).Fpgno, uint8(PTRMAP_BTREE), (*MemPage)(unsafe.Pointer(pParent)).Fpgno, bp+172)
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != SQLITE_OK) {
+ goto __85
+ }
+ goto balance_cleanup
+__85:
+ ;
+__84:
+ ;
+__80:
+ ;
+ goto __77
+__77:
+ i++
+ goto __76
+ goto __78
+__78:
+ ;
+ i = 0
+__86:
+ if !(i < nNew) {
+ goto __88
+ }
+ *(*Pgno)(unsafe.Pointer(bp + 268 + uintptr(i)*4)) = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).Fpgno
+
+ goto __87
+__87:
+ i++
+ goto __86
+ goto __88
+__88:
+ ;
+ i = 0
+__89:
+ if !(i < nNew-1) {
+ goto __91
+ }
+ iB = i
+ j = i + 1
+__92:
+ if !(j < nNew) {
+ goto __94
+ }
+ if !((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(j)*8)))).Fpgno < (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iB)*8)))).Fpgno) {
+ goto __95
+ }
+ iB = j
+__95:
+ ;
+ goto __93
+__93:
+ j++
+ goto __92
+ goto __94
+__94:
+ ;
+ if !(iB != i) {
+ goto __96
+ }
+ pgnoA = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).Fpgno
+ pgnoB = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iB)*8)))).Fpgno
+ pgnoTemp = U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize + U32(1)
+ fgA = (*DbPage)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).FpDbPage)).Fflags
+ fgB = (*DbPage)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iB)*8)))).FpDbPage)).Fflags
+ Xsqlite3PagerRekey(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).FpDbPage, pgnoTemp, fgB)
+ Xsqlite3PagerRekey(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iB)*8)))).FpDbPage, pgnoA, fgA)
+ Xsqlite3PagerRekey(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).FpDbPage, pgnoB, fgB)
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).Fpgno = pgnoB
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iB)*8)))).Fpgno = pgnoA
+__96:
+ ;
+ goto __90
+__90:
+ i++
+ goto __89
+ goto __91
+__91:
+ ;
+ Xsqlite3Put4byte(tls, pRight, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(nNew-1)*8)))).Fpgno)
+
+ if !(pageFlags&PTF_LEAF == 0 && nOld != nNew) {
+ goto __97
+ }
+ pOld1 = *(*uintptr)(unsafe.Pointer(func() uintptr {
+ if nNew > nOld {
+ return bp + 216
+ }
+ return bp + 112
+ }() + uintptr(nOld-1)*8))
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(nNew-1)*8)))).FaData+8, (*MemPage)(unsafe.Pointer(pOld1)).FaData+8, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(nNew-1)*8)))).FaData+8, 0))
+__97:
+ ;
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __98
+ }
+ pNew1 = libc.AssignUintptr(&pOld2, *(*uintptr)(unsafe.Pointer(bp + 216)))
+ cntOldNext = int32((*MemPage)(unsafe.Pointer(pNew1)).FnCell) + int32((*MemPage)(unsafe.Pointer(pNew1)).FnOverflow)
+ iNew = 0
+ iOld = 0
+
+ i = 0
+__99:
+ if !(i < (*CellArray)(unsafe.Pointer(bp+8)).FnCell) {
+ goto __101
+ }
+ pCell = *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr(i)*8))
+__102:
+ if !(i == cntOldNext) {
+ goto __103
+ }
+ iOld++
+
+ if iOld < nNew {
+ pOld2 = *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iOld)*8))
+ } else {
+ pOld2 = *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(iOld)*8))
+ }
+ cntOldNext = cntOldNext + (int32((*MemPage)(unsafe.Pointer(pOld2)).FnCell) + int32((*MemPage)(unsafe.Pointer(pOld2)).FnOverflow) + libc.BoolInt32(!(leafData != 0)))
+ goto __102
+__103:
+ ;
+ if !(i == *(*int32)(unsafe.Pointer(bp + 196 + uintptr(iNew)*4))) {
+ goto __104
+ }
+ pNew1 = *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(libc.PreIncInt32(&iNew, 1))*8))
+ if !!(leafData != 0) {
+ goto __105
+ }
+ goto __100
+__105:
+ ;
+__104:
+ ;
+ if !(iOld >= nNew ||
+ (*MemPage)(unsafe.Pointer(pNew1)).Fpgno != *(*Pgno)(unsafe.Pointer(bp + 268 + uintptr(iOld)*4)) ||
+ !(Uptr(pCell) >= Uptr((*MemPage)(unsafe.Pointer(pOld2)).FaData) && Uptr(pCell) < Uptr((*MemPage)(unsafe.Pointer(pOld2)).FaDataEnd))) {
+ goto __106
+ }
+ if !!(leafCorrection != 0) {
+ goto __107
+ }
+ ptrmapPut(tls, pBt, Xsqlite3Get4byte(tls, pCell), uint8(PTRMAP_BTREE), (*MemPage)(unsafe.Pointer(pNew1)).Fpgno, bp+172)
+__107:
+ ;
+ if !(int32(cachedCellSize(tls, bp+8, i)) > int32((*MemPage)(unsafe.Pointer(pNew1)).FminLocal)) {
+ goto __108
+ }
+ ptrmapPutOvflPtr(tls, pNew1, pOld2, pCell, bp+172)
+__108:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __109
+ }
+ goto balance_cleanup
+__109:
+ ;
+__106:
+ ;
+ goto __100
+__100:
+ i++
+ goto __99
+ goto __101
+__101:
+ ;
+__98:
+ ;
+ i = 0
+__110:
+ if !(i < nNew-1) {
+ goto __112
+ }
+ pNew2 = *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8))
+ j = *(*int32)(unsafe.Pointer(bp + 196 + uintptr(i)*4))
+
+ pCell1 = *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr(j)*8))
+ sz2 = int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr(j)*2))) + int32(leafCorrection)
+ pTemp1 = aOvflSpace + uintptr(iOvflSpace)
+ if !!(int32((*MemPage)(unsafe.Pointer(pNew2)).Fleaf) != 0) {
+ goto __113
+ }
+ libc.X__builtin___memcpy_chk(tls, (*MemPage)(unsafe.Pointer(pNew2)).FaData+8, pCell1, uint64(4), libc.X__builtin_object_size(tls, (*MemPage)(unsafe.Pointer(pNew2)).FaData+8, 0))
+ goto __114
+__113:
+ if !(leafData != 0) {
+ goto __115
+ }
+ j--
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pNew2)).FxParseCell})).f(tls, pNew2, *(*uintptr)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FapCell + uintptr(j)*8)), bp+288)
+ pCell1 = pTemp1
+ sz2 = 4 + Xsqlite3PutVarint(tls, pCell1+4, uint64((*CellInfo)(unsafe.Pointer(bp+288)).FnKey))
+ pTemp1 = uintptr(0)
+ goto __116
+__115:
+ pCell1 -= uintptr(4)
+
+ if !(int32(*(*U16)(unsafe.Pointer((*CellArray)(unsafe.Pointer(bp+8)).FszCell + uintptr(j)*2))) == 4) {
+ goto __117
+ }
+
+ sz2 = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pParent)).FxCellSize})).f(tls, pParent, pCell1))
+__117:
+ ;
+__116:
+ ;
+__114:
+ ;
+ iOvflSpace = iOvflSpace + sz2
+
+ k = 0
+__118:
+ if !(*(*int32)(unsafe.Pointer(bp + 8 + 80 + uintptr(k)*4)) <= j && k < NB*2) {
+ goto __120
+ }
+ goto __119
+__119:
+ k++
+ goto __118
+ goto __120
+__120:
+ ;
+ pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 8 + 32 + uintptr(k)*8))
+ if !(Uptr(pSrcEnd) >= Uptr(pCell1) && Uptr(pSrcEnd) < Uptr(pCell1+uintptr(sz2))) {
+ goto __121
+ }
+ *(*int32)(unsafe.Pointer(bp + 172)) = Xsqlite3CorruptError(tls, 76916)
+ goto balance_cleanup
+__121:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 172)) = insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*MemPage)(unsafe.Pointer(pNew2)).Fpgno)
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != SQLITE_OK) {
+ goto __122
+ }
+ goto balance_cleanup
+__122:
+ ;
+ goto __111
+__111:
+ i++
+ goto __110
+ goto __112
+__112:
+ ;
+ i = 1 - nNew
+__123:
+ if !(i < nNew) {
+ goto __125
+ }
+ if i < 0 {
+ iPg = -i
+ } else {
+ iPg = i
+ }
+
+ if !(*(*U8)(unsafe.Pointer(bp + uintptr(iPg))) != 0) {
+ goto __126
+ }
+ goto __124
+__126:
+ ;
+ if !(i >= 0 ||
+ *(*int32)(unsafe.Pointer(bp + 176 + uintptr(iPg-1)*4)) >= *(*int32)(unsafe.Pointer(bp + 196 + uintptr(iPg-1)*4))) {
+ goto __127
+ }
+
+ if !(iPg == 0) {
+ goto __128
+ }
+ iNew1 = libc.AssignInt32(&iOld1, 0)
+ nNewCell = *(*int32)(unsafe.Pointer(bp + 196))
+ goto __129
+__128:
+ if iPg < nOld {
+ iOld1 = *(*int32)(unsafe.Pointer(bp + 176 + uintptr(iPg-1)*4)) + libc.BoolInt32(!(leafData != 0))
+ } else {
+ iOld1 = (*CellArray)(unsafe.Pointer(bp + 8)).FnCell
+ }
+ iNew1 = *(*int32)(unsafe.Pointer(bp + 196 + uintptr(iPg-1)*4)) + libc.BoolInt32(!(leafData != 0))
+ nNewCell = *(*int32)(unsafe.Pointer(bp + 196 + uintptr(iPg)*4)) - iNew1
+__129:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 172)) = editPage(tls, *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iPg)*8)), iOld1, iNew1, nNewCell, bp+8)
+ if !(*(*int32)(unsafe.Pointer(bp + 172)) != 0) {
+ goto __130
+ }
+ goto balance_cleanup
+__130:
+ ;
+ *(*U8)(unsafe.Pointer(bp + uintptr(iPg)))++
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(iPg)*8)))).FnFree = usableSpace - *(*int32)(unsafe.Pointer(bp + 152 + uintptr(iPg)*4))
+
+__127:
+ ;
+ goto __124
+__124:
+ i++
+ goto __123
+ goto __125
+__125:
+ ;
+ if !(isRoot != 0 && int32((*MemPage)(unsafe.Pointer(pParent)).FnCell) == 0 && int32((*MemPage)(unsafe.Pointer(pParent)).FhdrOffset) <= (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FnFree) {
+ goto __131
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 172)) = defragmentPage(tls, *(*uintptr)(unsafe.Pointer(bp + 216)), -1)
+
+ copyNodeContent(tls, *(*uintptr)(unsafe.Pointer(bp + 216)), pParent, bp+172)
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp + 216)), bp+172)
+ goto __132
+__131:
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && !(leafCorrection != 0)) {
+ goto __133
+ }
+
+ i = 0
+__134:
+ if !(i < nNew) {
+ goto __136
+ }
+ key = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).FaData+8)
+ ptrmapPut(tls, pBt, key, uint8(PTRMAP_BTREE), (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))).Fpgno, bp+172)
+ goto __135
+__135:
+ i++
+ goto __134
+ goto __136
+__136:
+ ;
+__133:
+ ;
+__132:
+ ;
+ i = nNew
+__137:
+ if !(i < nOld) {
+ goto __139
+ }
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)), bp+172)
+ goto __138
+__138:
+ i++
+ goto __137
+ goto __139
+__139:
+ ;
+balance_cleanup:
+ Xsqlite3DbFree(tls, uintptr(0), (*CellArray)(unsafe.Pointer(bp+8)).FapCell)
+ i = 0
+__140:
+ if !(i < nOld) {
+ goto __142
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 112 + uintptr(i)*8)))
+ goto __141
+__141:
+ i++
+ goto __140
+ goto __142
+__142:
+ ;
+ i = 0
+__143:
+ if !(i < nNew) {
+ goto __145
+ }
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 216 + uintptr(i)*8)))
+ goto __144
+__144:
+ i++
+ goto __143
+ goto __145
+__145:
+ ;
+ return *(*int32)(unsafe.Pointer(bp + 172))
+}
+
+func balance_deeper(tls *libc.TLS, pRoot uintptr, ppChild uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*Pgno)(unsafe.Pointer(bp + 8)) = Pgno(0)
+ var pBt uintptr = (*MemPage)(unsafe.Pointer(pRoot)).FpBt
+
+ *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pRoot)).FpDbPage)
+ if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 12)) = allocateBtreePage(tls, pBt, bp, bp+8, (*MemPage)(unsafe.Pointer(pRoot)).Fpgno, uint8(0))
+ copyNodeContent(tls, pRoot, *(*uintptr)(unsafe.Pointer(bp)), bp+12)
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ ptrmapPut(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8)), uint8(PTRMAP_BTREE), (*MemPage)(unsafe.Pointer(pRoot)).Fpgno, bp+12)
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ *(*uintptr)(unsafe.Pointer(ppChild)) = uintptr(0)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp))+28, pRoot+28, uint64((*MemPage)(unsafe.Pointer(pRoot)).FnOverflow)*uint64(unsafe.Sizeof(U16(0))), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp))+28, 0))
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp))+40, pRoot+40, uint64((*MemPage)(unsafe.Pointer(pRoot)).FnOverflow)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp))+40, 0))
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnOverflow = (*MemPage)(unsafe.Pointer(pRoot)).FnOverflow
+
+ zeroPage(tls, pRoot, int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData)))&libc.CplInt32(PTF_LEAF))
+ Xsqlite3Put4byte(tls, (*MemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+8), *(*Pgno)(unsafe.Pointer(bp + 8)))
+
+ *(*uintptr)(unsafe.Pointer(ppChild)) = *(*uintptr)(unsafe.Pointer(bp))
+ return SQLITE_OK
+}
+
+func anotherValidCursor(tls *libc.TLS, pCur uintptr) int32 {
+ var pOther uintptr
+ for pOther = (*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FpCursor; pOther != 0; pOther = (*BtCursor)(unsafe.Pointer(pOther)).FpNext {
+ if pOther != pCur &&
+ int32((*BtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID &&
+ (*BtCursor)(unsafe.Pointer(pOther)).FpPage == (*BtCursor)(unsafe.Pointer(pCur)).FpPage {
+ return Xsqlite3CorruptError(tls, 77146)
+ }
+ }
+ return SQLITE_OK
+}
+
+func balance(tls *libc.TLS, pCur uintptr) int32 {
+ bp := tls.Alloc(13)
+ defer tls.Free(13)
+
+ var rc int32 = SQLITE_OK
+
+ var pFree uintptr = uintptr(0)
+
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_OK {
+ var iPage int32
+ var pPage uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ if (*MemPage)(unsafe.Pointer(pPage)).FnFree < 0 && btreeComputeFreeSpace(tls, pPage) != 0 {
+ break
+ }
+ if int32((*MemPage)(unsafe.Pointer(pPage)).FnOverflow) == 0 && (*MemPage)(unsafe.Pointer(pPage)).FnFree*3 <= int32((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize)*2 {
+ break
+ } else if libc.AssignInt32(&iPage, int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage)) == 0 {
+ if (*MemPage)(unsafe.Pointer(pPage)).FnOverflow != 0 && libc.AssignInt32(&rc, anotherValidCursor(tls, pCur)) == SQLITE_OK {
+ rc = balance_deeper(tls, pPage, pCur+144+1*8)
+ if rc == SQLITE_OK {
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage = int8(1)
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(0)
+ *(*U16)(unsafe.Pointer(pCur + 88)) = U16(0)
+ *(*uintptr)(unsafe.Pointer(pCur + 144)) = pPage
+ (*BtCursor)(unsafe.Pointer(pCur)).FpPage = *(*uintptr)(unsafe.Pointer(pCur + 144 + 1*8))
+
+ }
+ } else {
+ break
+ }
+ } else if Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage) > 1 {
+ rc = Xsqlite3CorruptError(tls, 77206)
+ } else {
+ var pParent uintptr = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-1)*8))
+ var iIdx int32 = int32(*(*U16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-1)*2)))
+
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pParent)).FpDbPage)
+ if rc == SQLITE_OK && (*MemPage)(unsafe.Pointer(pParent)).FnFree < 0 {
+ rc = btreeComputeFreeSpace(tls, pParent)
+ }
+ if rc == SQLITE_OK {
+ if (*MemPage)(unsafe.Pointer(pPage)).FintKeyLeaf != 0 &&
+ int32((*MemPage)(unsafe.Pointer(pPage)).FnOverflow) == 1 &&
+ int32(*(*U16)(unsafe.Pointer(pPage + 28))) == int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) &&
+ (*MemPage)(unsafe.Pointer(pParent)).Fpgno != Pgno(1) &&
+ int32((*MemPage)(unsafe.Pointer(pParent)).FnCell) == iIdx {
+ rc = balance_quick(tls, pParent, pPage, bp)
+ } else {
+ var pSpace uintptr = Xsqlite3PageMalloc(tls, int32((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize))
+ rc = balance_nonroot(tls, pParent, iIdx, pSpace, libc.Bool32(iPage == 1),
+ int32((*BtCursor)(unsafe.Pointer(pCur)).Fhints)&BTREE_BULKLOAD)
+ if pFree != 0 {
+ Xsqlite3PageFree(tls, pFree)
+ }
+
+ pFree = pSpace
+ }
+ }
+
+ (*MemPage)(unsafe.Pointer(pPage)).FnOverflow = U8(0)
+
+ releasePage(tls, pPage)
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage--
+
+ (*BtCursor)(unsafe.Pointer(pCur)).FpPage = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*8))
+ }
+ }
+
+ if pFree != 0 {
+ Xsqlite3PageFree(tls, pFree)
+ }
+ return rc
+}
+
+func btreeOverwriteContent(tls *libc.TLS, pPage uintptr, pDest uintptr, pX uintptr, iOffset int32, iAmt int32) int32 {
+ var nData int32 = (*BtreePayload)(unsafe.Pointer(pX)).FnData - iOffset
+ if nData <= 0 {
+ var i int32
+ for i = 0; i < iAmt && int32(*(*U8)(unsafe.Pointer(pDest + uintptr(i)))) == 0; i++ {
+ }
+ if i < iAmt {
+ var rc int32 = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ if rc != 0 {
+ return rc
+ }
+ libc.X__builtin___memset_chk(tls, pDest+uintptr(i), 0, uint64(iAmt-i), libc.X__builtin_object_size(tls, pDest+uintptr(i), 0))
+ }
+ } else {
+ if nData < iAmt {
+ var rc int32 = btreeOverwriteContent(tls, pPage, pDest+uintptr(nData), pX, iOffset+nData,
+ iAmt-nData)
+ if rc != 0 {
+ return rc
+ }
+ iAmt = nData
+ }
+ if libc.Xmemcmp(tls, pDest, (*BtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(iAmt)) != 0 {
+ var rc int32 = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ if rc != 0 {
+ return rc
+ }
+
+ libc.X__builtin___memmove_chk(tls, pDest, (*BtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(iAmt), libc.X__builtin_object_size(tls, pDest, 0))
+ }
+ }
+ return SQLITE_OK
+}
+
+func btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iOffset int32
+ var nTotal int32 = (*BtreePayload)(unsafe.Pointer(pX)).FnData + (*BtreePayload)(unsafe.Pointer(pX)).FnZero
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp)) = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ var pBt uintptr
+ var ovflPgno Pgno
+ var ovflPageSize U32
+
+ rc = btreeOverwriteContent(tls, *(*uintptr)(unsafe.Pointer(bp)), (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload, pX,
+ 0, int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal))
+ if rc != 0 {
+ return rc
+ }
+
+ iOffset = int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)
+
+ ovflPgno = Xsqlite3Get4byte(tls, (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr(iOffset))
+ pBt = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpBt
+ ovflPageSize = (*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(4)
+ for __ccgo := true; __ccgo; __ccgo = iOffset < nTotal {
+ rc = btreeGetPage(tls, pBt, ovflPgno, bp, 0)
+ if rc != 0 {
+ return rc
+ }
+ if Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != 1 || (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 {
+ rc = Xsqlite3CorruptError(tls, 77370)
+ } else {
+ if U32(iOffset)+ovflPageSize < U32(nTotal) {
+ ovflPgno = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData)
+ } else {
+ ovflPageSize = U32(nTotal - iOffset)
+ }
+ rc = btreeOverwriteContent(tls, *(*uintptr)(unsafe.Pointer(bp)), (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+uintptr(4), pX,
+ iOffset, int32(ovflPageSize))
+ }
+ Xsqlite3PagerUnref(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)
+ if rc != 0 {
+ return rc
+ }
+ iOffset = int32(U32(iOffset) + ovflPageSize)
+ }
+ return SQLITE_OK
+}
+
+func btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) int32 {
+ var nTotal int32 = (*BtreePayload)(unsafe.Pointer(pX)).FnData + (*BtreePayload)(unsafe.Pointer(pX)).FnZero
+ var pPage uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ if (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd ||
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*MemPage)(unsafe.Pointer(pPage)).FcellOffset) {
+ return Xsqlite3CorruptError(tls, 77398)
+ }
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal {
+ return btreeOverwriteContent(tls, pPage, (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload, pX,
+ 0, int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal))
+ } else {
+ return btreeOverwriteOverflowCell(tls, pCur, pX)
+ }
+ return int32(0)
+}
+
+// Insert a new record into the BTree. The content of the new record
+// is described by the pX object. The pCur cursor is used only to
+// define what table the record should be inserted into, and is left
+// pointing at a random location.
+//
+// For a table btree (used for rowid tables), only the pX.nKey value of
+// the key is used. The pX.pKey value must be NULL. The pX.nKey is the
+// rowid or INTEGER PRIMARY KEY of the row. The pX.nData,pData,nZero fields
+// hold the content of the row.
+//
+// For an index btree (used for indexes and WITHOUT ROWID tables), the
+// key is an arbitrary byte sequence stored in pX.pKey,nKey. The
+// pX.pData,nData,nZero fields must be zero.
+//
+// If the seekResult parameter is non-zero, then a successful call to
+// sqlite3BtreeIndexMoveto() to seek cursor pCur to (pKey,nKey) has already
+// been performed. In other words, if seekResult!=0 then the cursor
+// is currently pointing to a cell that will be adjacent to the cell
+// to be inserted. If seekResult<0 then pCur points to a cell that is
+// smaller then (pKey,nKey). If seekResult>0 then pCur points to a cell
+// that is larger than (pKey,nKey).
+//
+// If seekResult==0, that means pCur is pointing at some unknown location.
+// In that case, this routine must seek the cursor to the correct insertion
+// point for (pKey,nKey) before doing the insertion. For index btrees,
+// if pX->nMem is non-zero, then pX->aMem contains pointers to the unpacked
+// key values and pX->aMem can be used instead of pX->pKey to avoid having
+// to decode the key.
+func Xsqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, seekResult int32) int32 {
+ bp := tls.Alloc(152)
+ defer tls.Free(152)
+
+ var idx int32
+ var pPage uintptr
+ var p uintptr
+ var oldCell uintptr
+ var newCell uintptr
+
+ var ovfl Pgno
+
+ *(*int32)(unsafe.Pointer(bp)) = seekResult
+ *(*int32)(unsafe.Pointer(bp + 124)) = 0
+ p = (*BtCursor)(unsafe.Pointer(pCur)).FpBtree
+ newCell = uintptr(0)
+
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_Multiple != 0) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(bp + 120)) = saveAllCursors(tls, (*Btree)(unsafe.Pointer(p)).FpBt, (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot, pCur)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __2
+ }
+ return *(*int32)(unsafe.Pointer(bp + 120))
+__2:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) != 0 && int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) < 0) {
+ goto __3
+ }
+
+ return Xsqlite3CorruptError(tls, 77479)
+__3:
+ ;
+__1:
+ ;
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK) {
+ goto __4
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 120)) = moveToRoot(tls, pCur)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0 && *(*int32)(unsafe.Pointer(bp + 120)) != SQLITE_EMPTY) {
+ goto __5
+ }
+ return *(*int32)(unsafe.Pointer(bp + 120))
+__5:
+ ;
+__4:
+ ;
+ if !((*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) {
+ goto __6
+ }
+
+ if !((*Btree)(unsafe.Pointer(p)).FhasIncrblobCur != 0) {
+ goto __8
+ }
+ invalidateIncrblobCursors(tls, p, (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot, (*BtreePayload)(unsafe.Pointer(pX)).FnKey, 0)
+__8:
+ ;
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_ValidNKey != 0 && (*BtreePayload)(unsafe.Pointer(pX)).FnKey == (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey) {
+ goto __9
+ }
+
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize) != 0 &&
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload == U32((*BtreePayload)(unsafe.Pointer(pX)).FnData)+U32((*BtreePayload)(unsafe.Pointer(pX)).FnZero)) {
+ goto __11
+ }
+
+ return btreeOverwriteCell(tls, pCur, pX)
+__11:
+ ;
+ goto __10
+__9:
+ if !(*(*int32)(unsafe.Pointer(bp)) == 0) {
+ goto __12
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 120)) = Xsqlite3BtreeTableMoveto(tls, pCur, (*BtreePayload)(unsafe.Pointer(pX)).FnKey,
+ libc.Bool32(flags&BTREE_APPEND != 0), bp)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __13
+ }
+ return *(*int32)(unsafe.Pointer(bp + 120))
+__13:
+ ;
+__12:
+ ;
+__10:
+ ;
+ goto __7
+__6:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) == 0 && flags&BTREE_SAVEPOSITION == 0) {
+ goto __14
+ }
+ if !((*BtreePayload)(unsafe.Pointer(pX)).FnMem != 0) {
+ goto __15
+ }
+ (*UnpackedRecord)(unsafe.Pointer(bp + 8)).FpKeyInfo = (*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 8)).FaMem = (*BtreePayload)(unsafe.Pointer(pX)).FaMem
+ (*UnpackedRecord)(unsafe.Pointer(bp + 8)).FnField = (*BtreePayload)(unsafe.Pointer(pX)).FnMem
+ (*UnpackedRecord)(unsafe.Pointer(bp + 8)).Fdefault_rc = int8(0)
+ (*UnpackedRecord)(unsafe.Pointer(bp + 8)).FeqSeen = U8(0)
+ *(*int32)(unsafe.Pointer(bp + 120)) = Xsqlite3BtreeIndexMoveto(tls, pCur, bp+8, bp)
+ goto __16
+__15:
+ *(*int32)(unsafe.Pointer(bp + 120)) = btreeMoveto(tls, pCur, (*BtreePayload)(unsafe.Pointer(pX)).FpKey, (*BtreePayload)(unsafe.Pointer(pX)).FnKey,
+ libc.Bool32(flags&BTREE_APPEND != 0), bp)
+__16:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __17
+ }
+ return *(*int32)(unsafe.Pointer(bp + 120))
+__17:
+ ;
+__14:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) == 0) {
+ goto __18
+ }
+ getCellInfo(tls, pCur)
+ if !((*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey == (*BtreePayload)(unsafe.Pointer(pX)).FnKey) {
+ goto __19
+ }
+ (*BtreePayload)(unsafe.Pointer(bp + 48)).FpData = (*BtreePayload)(unsafe.Pointer(pX)).FpKey
+ (*BtreePayload)(unsafe.Pointer(bp + 48)).FnData = int32((*BtreePayload)(unsafe.Pointer(pX)).FnKey)
+ (*BtreePayload)(unsafe.Pointer(bp + 48)).FnZero = 0
+ return btreeOverwriteCell(tls, pCur, bp+48)
+__19:
+ ;
+__18:
+ ;
+__7:
+ ;
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+
+ if !((*MemPage)(unsafe.Pointer(pPage)).FnFree < 0) {
+ goto __20
+ }
+ if !(int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) > CURSOR_INVALID) {
+ goto __21
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 120)) = Xsqlite3CorruptError(tls, 77602)
+ goto __22
+__21:
+ *(*int32)(unsafe.Pointer(bp + 120)) = btreeComputeFreeSpace(tls, pPage)
+__22:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __23
+ }
+ return *(*int32)(unsafe.Pointer(bp + 120))
+__23:
+ ;
+__20:
+ ;
+ newCell = (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpTmpSpace
+
+ if !(flags&BTREE_PREFORMAT != 0) {
+ goto __24
+ }
+ *(*int32)(unsafe.Pointer(bp + 120)) = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 124)) = (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FnPreformatSize
+ if !(*(*int32)(unsafe.Pointer(bp + 124)) < 4) {
+ goto __26
+ }
+ *(*int32)(unsafe.Pointer(bp + 124)) = 4
+__26:
+ ;
+ if !((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FautoVacuum != 0 && *(*int32)(unsafe.Pointer(bp + 124)) > int32((*MemPage)(unsafe.Pointer(pPage)).FmaxLocal)) {
+ goto __27
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, newCell, bp+96)
+ if !((*CellInfo)(unsafe.Pointer(bp+96)).FnPayload != U32((*CellInfo)(unsafe.Pointer(bp+96)).FnLocal)) {
+ goto __28
+ }
+ ovfl = Xsqlite3Get4byte(tls, newCell+uintptr(*(*int32)(unsafe.Pointer(bp + 124))-4))
+ ptrmapPut(tls, (*Btree)(unsafe.Pointer(p)).FpBt, ovfl, uint8(PTRMAP_OVERFLOW1), (*MemPage)(unsafe.Pointer(pPage)).Fpgno, bp+120)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __29
+ }
+ goto end_insert
+__29:
+ ;
+__28:
+ ;
+__27:
+ ;
+ goto __25
+__24:
+ *(*int32)(unsafe.Pointer(bp + 120)) = fillInCell(tls, pPage, newCell, pX, bp+124)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __30
+ }
+ goto end_insert
+__30:
+ ;
+__25:
+ ;
+ idx = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)
+ if !(*(*int32)(unsafe.Pointer(bp)) == 0) {
+ goto __31
+ }
+
+ if !(idx >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell)) {
+ goto __33
+ }
+ return Xsqlite3CorruptError(tls, 77640)
+__33:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 120)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __34
+ }
+ goto end_insert
+__34:
+ ;
+ oldCell = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*idx) + 1)))))
+ if !!(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ goto __35
+ }
+ libc.X__builtin___memcpy_chk(tls, newCell, oldCell, uint64(4), libc.X__builtin_object_size(tls, newCell, 0))
+__35:
+ ;
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, oldCell, bp+128)
+ if !(U32((*CellInfo)(unsafe.Pointer(bp+128)).FnLocal) != (*CellInfo)(unsafe.Pointer(bp+128)).FnPayload) {
+ goto __36
+ }
+ *(*int32)(unsafe.Pointer(bp + 120)) = clearCellOverflow(tls, pPage, oldCell, bp+128)
+ goto __37
+__36:
+ *(*int32)(unsafe.Pointer(bp + 120)) = SQLITE_OK
+__37:
+ ;
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidOvfl))
+ if !(int32((*CellInfo)(unsafe.Pointer(bp+128)).FnSize) == *(*int32)(unsafe.Pointer(bp + 124)) && U32((*CellInfo)(unsafe.Pointer(bp+128)).FnLocal) == (*CellInfo)(unsafe.Pointer(bp+128)).FnPayload &&
+ (!(int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FautoVacuum) != 0) || *(*int32)(unsafe.Pointer(bp + 124)) < int32((*MemPage)(unsafe.Pointer(pPage)).FminLocal))) {
+ goto __38
+ }
+
+ if !(oldCell < (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10)) {
+ goto __39
+ }
+ return Xsqlite3CorruptError(tls, 77667)
+__39:
+ ;
+ if !(oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 124))) > (*MemPage)(unsafe.Pointer(pPage)).FaDataEnd) {
+ goto __40
+ }
+ return Xsqlite3CorruptError(tls, 77670)
+__40:
+ ;
+ libc.X__builtin___memcpy_chk(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 124))), libc.X__builtin_object_size(tls, oldCell, 0))
+ return SQLITE_OK
+__38:
+ ;
+ dropCell(tls, pPage, idx, int32((*CellInfo)(unsafe.Pointer(bp+128)).FnSize), bp+120)
+ if !(*(*int32)(unsafe.Pointer(bp + 120)) != 0) {
+ goto __41
+ }
+ goto end_insert
+__41:
+ ;
+ goto __32
+__31:
+ if !(*(*int32)(unsafe.Pointer(bp)) < 0 && int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) > 0) {
+ goto __42
+ }
+
+ idx = int32(libc.PreIncUint16(&(*BtCursor)(unsafe.Pointer(pCur)).Fix, 1))
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey))
+ goto __43
+__42:
+ ;
+__43:
+ ;
+__32:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 120)) = insertCell(tls, pPage, idx, newCell, *(*int32)(unsafe.Pointer(bp + 124)), uintptr(0), uint32(0))
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = U16(0)
+ if !((*MemPage)(unsafe.Pointer(pPage)).FnOverflow != 0) {
+ goto __44
+ }
+
+ *(*U8)(unsafe.Pointer(pCur + 1)) &= libc.Uint8FromInt32(libc.CplInt32(BTCF_ValidNKey))
+ *(*int32)(unsafe.Pointer(bp + 120)) = balance(tls, pCur)
+
+ (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FnOverflow = U8(0)
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_INVALID)
+ if !(flags&BTREE_SAVEPOSITION != 0 && *(*int32)(unsafe.Pointer(bp + 120)) == SQLITE_OK) {
+ goto __45
+ }
+ btreeReleaseAllCursorPages(tls, pCur)
+ if !((*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo != 0) {
+ goto __46
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).FpKey = Xsqlite3Malloc(tls, uint64((*BtreePayload)(unsafe.Pointer(pX)).FnKey))
+ if !((*BtCursor)(unsafe.Pointer(pCur)).FpKey == uintptr(0)) {
+ goto __47
+ }
+ *(*int32)(unsafe.Pointer(bp + 120)) = SQLITE_NOMEM
+ goto __48
+__47:
+ libc.X__builtin___memcpy_chk(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpKey, (*BtreePayload)(unsafe.Pointer(pX)).FpKey, uint64((*BtreePayload)(unsafe.Pointer(pX)).FnKey), libc.X__builtin_object_size(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpKey, 0))
+__48:
+ ;
+__46:
+ ;
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_REQUIRESEEK)
+ (*BtCursor)(unsafe.Pointer(pCur)).FnKey = (*BtreePayload)(unsafe.Pointer(pX)).FnKey
+__45:
+ ;
+__44:
+ ;
+end_insert:
+ return *(*int32)(unsafe.Pointer(bp + 120))
+}
+
+// This function is used as part of copying the current row from cursor
+// pSrc into cursor pDest. If the cursors are open on intkey tables, then
+// parameter iKey is used as the rowid value when the record is copied
+// into pDest. Otherwise, the record is copied verbatim.
+//
+// This function does not actually write the new value to cursor pDest.
+// Instead, it creates and populates any required overflow pages and
+// writes the data for the new cell into the BtShared.pTmpSpace buffer
+// for the destination database. The size of the cell, in bytes, is left
+// in BtShared.nPreformatSize. The caller completes the insertion by
+// calling sqlite3BtreeInsert() with the BTREE_PREFORMAT flag specified.
+//
+// SQLITE_OK is returned if successful, or an SQLite error code otherwise.
+func Xsqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey I64) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pBt uintptr = (*BtCursor)(unsafe.Pointer(pDest)).FpBt
+ var aOut uintptr = (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace
+ var aIn uintptr
+ var nIn U32
+ var nRem U32
+
+ getCellInfo(tls, pSrc)
+ if (*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload < U32(0x80) {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&aOut, 1))) = U8((*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload)
+ } else {
+ aOut += uintptr(Xsqlite3PutVarint(tls, aOut, uint64((*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload)))
+ }
+ if (*BtCursor)(unsafe.Pointer(pDest)).FpKeyInfo == uintptr(0) {
+ aOut += uintptr(Xsqlite3PutVarint(tls, aOut, uint64(iKey)))
+ }
+ nIn = U32((*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal)
+ aIn = (*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload
+ if aIn+uintptr(nIn) > (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd {
+ return Xsqlite3CorruptError(tls, 77773)
+ }
+ nRem = (*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload
+ if nIn == nRem && nIn < U32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) {
+ libc.X__builtin___memcpy_chk(tls, aOut, aIn, uint64(nIn), libc.X__builtin_object_size(tls, aOut, 0))
+ (*BtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(nIn) + (int64(aOut)-int64((*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace))/1)
+ return SQLITE_OK
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 20)) = SQLITE_OK
+ var pSrcPager uintptr = (*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pSrc)).FpBt)).FpPager
+ var pPgnoOut uintptr = uintptr(0)
+ var ovflIn Pgno = Pgno(0)
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pPageOut uintptr = uintptr(0)
+ var nOut U32
+
+ nOut = U32(btreePayloadToLocal(tls, (*BtCursor)(unsafe.Pointer(pDest)).FpPage, int64((*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload)))
+ (*BtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(nOut) + (int64(aOut)-int64((*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace))/1)
+ if nOut < (*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload {
+ pPgnoOut = aOut + uintptr(nOut)
+ *(*int32)(unsafe.Pointer(pBt + 144)) += 4
+ }
+
+ if nRem > nIn {
+ if aIn+uintptr(nIn)+uintptr(4) > (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd {
+ return Xsqlite3CorruptError(tls, 77798)
+ }
+ ovflIn = Xsqlite3Get4byte(tls, (*BtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn))
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = nRem > U32(0) && *(*int32)(unsafe.Pointer(bp + 20)) == SQLITE_OK {
+ nRem = nRem - nOut
+ for __ccgo1 := true; __ccgo1; __ccgo1 = *(*int32)(unsafe.Pointer(bp + 20)) == SQLITE_OK && nOut > U32(0) {
+ if nIn > U32(0) {
+ var nCopy int32 = func() int32 {
+ if nOut < nIn {
+ return int32(nOut)
+ }
+ return int32(nIn)
+ }()
+ libc.X__builtin___memcpy_chk(tls, aOut, aIn, uint64(nCopy), libc.X__builtin_object_size(tls, aOut, 0))
+ nOut = nOut - U32(nCopy)
+ nIn = nIn - U32(nCopy)
+ aOut += uintptr(nCopy)
+ aIn += uintptr(nCopy)
+ }
+ if nOut > U32(0) {
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 20)) = Xsqlite3PagerGet(tls, pSrcPager, ovflIn, bp, PAGER_GET_READONLY)
+ if *(*int32)(unsafe.Pointer(bp + 20)) == SQLITE_OK {
+ aIn = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ ovflIn = Xsqlite3Get4byte(tls, aIn)
+ aIn += uintptr(4)
+ nIn = (*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pSrc)).FpBt)).FusableSize - U32(4)
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 20)) == SQLITE_OK && nRem > U32(0) && pPgnoOut != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 20)) = allocateBtreePage(tls, pBt, bp+8, bp+16, uint32(0), uint8(0))
+ Xsqlite3Put4byte(tls, pPgnoOut, *(*Pgno)(unsafe.Pointer(bp + 16)))
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && pPageOut != 0 {
+ ptrmapPut(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 16)), uint8(PTRMAP_OVERFLOW2), (*MemPage)(unsafe.Pointer(pPageOut)).Fpgno, bp+20)
+ }
+ releasePage(tls, pPageOut)
+ pPageOut = *(*uintptr)(unsafe.Pointer(bp + 8))
+ if pPageOut != 0 {
+ pPgnoOut = (*MemPage)(unsafe.Pointer(pPageOut)).FaData
+ Xsqlite3Put4byte(tls, pPgnoOut, uint32(0))
+ aOut = pPgnoOut + 4
+ nOut = func() uint32 {
+ if (*BtShared)(unsafe.Pointer(pBt)).FusableSize-U32(4) < nRem {
+ return (*BtShared)(unsafe.Pointer(pBt)).FusableSize - U32(4)
+ }
+ return nRem
+ }()
+ }
+ }
+ }
+
+ releasePage(tls, pPageOut)
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return *(*int32)(unsafe.Pointer(bp + 20))
+ }
+ return int32(0)
+}
+
+// Delete the entry that the cursor is pointing to.
+//
+// If the BTREE_SAVEPOSITION bit of the flags parameter is zero, then
+// the cursor is left pointing at an arbitrary location after the delete.
+// But if that bit is set, then the cursor is left in a state such that
+// the next call to BtreeNext() or BtreePrev() moves it to the same row
+// as it would have been on if the call to BtreeDelete() had been omitted.
+//
+// The BTREE_AUXDELETE bit of flags indicates that is one of several deletes
+// associated with a single table entry and its indexes. Only one of those
+// deletes is considered the "primary" delete. The primary delete occurs
+// on a cursor that is not a BTREE_FORDELETE cursor. All but one delete
+// operation on non-FORDELETE cursors is tagged with the AUXDELETE flag.
+// The BTREE_AUXDELETE bit is a hint that is not used by this implementation,
+// but which might be used by alternative storage engines.
+func Xsqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags U8) int32 {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var p uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpBtree
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ var pPage uintptr
+ var pCell uintptr
+ var iCellIdx int32
+ var iCellDepth int32
+
+ var bPreserve U8
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) >= CURSOR_REQUIRESEEK {
+ *(*int32)(unsafe.Pointer(bp + 24)) = btreeRestoreCursorPosition(tls, pCur)
+
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 || int32((*BtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ } else {
+ return Xsqlite3CorruptError(tls, 77894)
+ }
+ }
+
+ iCellDepth = int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage)
+ iCellIdx = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ if int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx {
+ return Xsqlite3CorruptError(tls, 77903)
+ }
+ pCell = (*MemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iCellIdx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iCellIdx) + 1)))))
+ if (*MemPage)(unsafe.Pointer(pPage)).FnFree < 0 && btreeComputeFreeSpace(tls, pPage) != 0 {
+ return Xsqlite3CorruptError(tls, 77907)
+ }
+
+ bPreserve = U8(libc.Bool32(int32(flags)&BTREE_SAVEPOSITION != 0))
+ if bPreserve != 0 {
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) ||
+ (*MemPage)(unsafe.Pointer(pPage)).FnFree+int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxCellSize})).f(tls, pPage, pCell))+2 > int32((*BtShared)(unsafe.Pointer(pBt)).FusableSize*U32(2)/U32(3)) ||
+ int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) == 1 {
+ *(*int32)(unsafe.Pointer(bp + 24)) = saveCursorKey(tls, pCur)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ } else {
+ bPreserve = U8(2)
+ }
+ }
+
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ *(*int32)(unsafe.Pointer(bp + 24)) = Xsqlite3BtreePrevious(tls, pCur, 0)
+
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ }
+
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FcurFlags)&BTCF_Multiple != 0 {
+ *(*int32)(unsafe.Pointer(bp + 24)) = saveAllCursors(tls, pBt, (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot, pCur)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ }
+
+ if (*BtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0) && (*Btree)(unsafe.Pointer(p)).FhasIncrblobCur != 0 {
+ invalidateIncrblobCursors(tls, p, (*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot, (*BtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey, 0)
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 24)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pPage)).FpDbPage)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pPage)).FxParseCell})).f(tls, pPage, pCell, bp)
+ if U32((*CellInfo)(unsafe.Pointer(bp)).FnLocal) != (*CellInfo)(unsafe.Pointer(bp)).FnPayload {
+ *(*int32)(unsafe.Pointer(bp + 24)) = clearCellOverflow(tls, pPage, pCell, bp)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ }
+
+ dropCell(tls, pPage, iCellIdx, int32((*CellInfo)(unsafe.Pointer(bp)).FnSize), bp+24)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+
+ if !(int32((*MemPage)(unsafe.Pointer(pPage)).Fleaf) != 0) {
+ var pLeaf uintptr = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ var nCell int32
+ var n Pgno
+ var pTmp uintptr
+
+ if (*MemPage)(unsafe.Pointer(pLeaf)).FnFree < 0 {
+ *(*int32)(unsafe.Pointer(bp + 24)) = btreeComputeFreeSpace(tls, pLeaf)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ }
+ if iCellDepth < int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage)-1 {
+ n = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iCellDepth+1)*8)))).Fpgno
+ } else {
+ n = (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).Fpgno
+ }
+ pCell = (*MemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(2*(int32((*MemPage)(unsafe.Pointer(pLeaf)).FnCell)-1)))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(2*(int32((*MemPage)(unsafe.Pointer(pLeaf)).FnCell)-1)) + 1)))))
+ if pCell < (*MemPage)(unsafe.Pointer(pLeaf)).FaData+4 {
+ return Xsqlite3CorruptError(tls, 77998)
+ }
+ nCell = int32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(pLeaf)).FxCellSize})).f(tls, pLeaf, pCell))
+
+ pTmp = (*BtShared)(unsafe.Pointer(pBt)).FpTmpSpace
+
+ *(*int32)(unsafe.Pointer(bp + 24)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(pLeaf)).FpDbPage)
+ if *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 24)) = insertCell(tls, pPage, iCellIdx, pCell-uintptr(4), nCell+4, pTmp, n)
+ }
+ dropCell(tls, pLeaf, int32((*MemPage)(unsafe.Pointer(pLeaf)).FnCell)-1, nCell, bp+24)
+ if *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 24))
+ }
+ }
+
+ if (*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FnFree*3 <= int32((*BtShared)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize)*2 {
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 24)) = balance(tls, pCur)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK && int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) > iCellDepth {
+ releasePageNotNull(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpPage)
+ (*BtCursor)(unsafe.Pointer(pCur)).FiPage--
+ for int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) > iCellDepth {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(libc.PostDecInt8(&(*BtCursor)(unsafe.Pointer(pCur)).FiPage, 1))*8)))
+ }
+ (*BtCursor)(unsafe.Pointer(pCur)).FpPage = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*BtCursor)(unsafe.Pointer(pCur)).FiPage)*8))
+ *(*int32)(unsafe.Pointer(bp + 24)) = balance(tls, pCur)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK {
+ if int32(bPreserve) > 1 {
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_SKIPNEXT)
+ if iCellIdx >= int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ (*BtCursor)(unsafe.Pointer(pCur)).FskipNext = -1
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix = U16(int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) - 1)
+ } else {
+ (*BtCursor)(unsafe.Pointer(pCur)).FskipNext = 1
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 24)) = moveToRoot(tls, pCur)
+ if bPreserve != 0 {
+ btreeReleaseAllCursorPages(tls, pCur)
+ (*BtCursor)(unsafe.Pointer(pCur)).FeState = U8(CURSOR_REQUIRESEEK)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_EMPTY {
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ }
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp + 24))
+}
+
+func btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags int32) int32 {
+ bp := tls.Alloc(44)
+ defer tls.Free(44)
+
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ var ptfFlags int32
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ invalidateAllOverflowCache(tls, pBt)
+
+ Xsqlite3BtreeGetMeta(tls, p, BTREE_LARGEST_ROOT_PAGE, bp)
+ if *(*Pgno)(unsafe.Pointer(bp)) > btreePagecount(tls, pBt) {
+ return Xsqlite3CorruptError(tls, 78114)
+ }
+ *(*Pgno)(unsafe.Pointer(bp))++
+
+ for *(*Pgno)(unsafe.Pointer(bp)) == ptrmapPageno(tls, pBt, *(*Pgno)(unsafe.Pointer(bp))) || *(*Pgno)(unsafe.Pointer(bp)) == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) {
+ *(*Pgno)(unsafe.Pointer(bp))++
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = allocateBtreePage(tls, pBt, bp+8, bp+16, *(*Pgno)(unsafe.Pointer(bp)), uint8(BTALLOC_EXACT))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if *(*Pgno)(unsafe.Pointer(bp + 16)) != *(*Pgno)(unsafe.Pointer(bp)) {
+ *(*U8)(unsafe.Pointer(bp + 32)) = U8(0)
+ *(*Pgno)(unsafe.Pointer(bp + 36)) = Pgno(0)
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = saveAllCursors(tls, pBt, uint32(0), uintptr(0))
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = btreeGetPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp)), bp+24, 0)
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = ptrmapGet(tls, pBt, *(*Pgno)(unsafe.Pointer(bp)), bp+32, bp+36)
+ if int32(*(*U8)(unsafe.Pointer(bp + 32))) == PTRMAP_ROOTPAGE || int32(*(*U8)(unsafe.Pointer(bp + 32))) == PTRMAP_FREEPAGE {
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3CorruptError(tls, 78162)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*U8)(unsafe.Pointer(bp + 32)), *(*Pgno)(unsafe.Pointer(bp + 36)), *(*Pgno)(unsafe.Pointer(bp + 16)), 0)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = btreeGetPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp)), bp+24, 0)
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FpDbPage)
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = *(*uintptr)(unsafe.Pointer(bp + 8))
+ }
+
+ ptrmapPut(tls, pBt, *(*Pgno)(unsafe.Pointer(bp)), uint8(PTRMAP_ROOTPAGE), uint32(0), bp+40)
+ if *(*int32)(unsafe.Pointer(bp + 40)) != 0 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3BtreeUpdateMeta(tls, p, 4, *(*Pgno)(unsafe.Pointer(bp)))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != 0 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 40)) = allocateBtreePage(tls, pBt, bp+24, bp, uint32(1), uint8(0))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ }
+
+ if createTabFlags&BTREE_INTKEY != 0 {
+ ptfFlags = PTF_INTKEY | PTF_LEAFDATA | PTF_LEAF
+ } else {
+ ptfFlags = PTF_ZERODATA | PTF_LEAF
+ }
+ zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), ptfFlags)
+ Xsqlite3PagerUnref(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FpDbPage)
+
+ *(*Pgno)(unsafe.Pointer(piTable)) = *(*Pgno)(unsafe.Pointer(bp))
+ return SQLITE_OK
+}
+
+func Xsqlite3BtreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, flags int32) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ rc = btreeCreateTable(tls, p, piTable, flags)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+func clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno Pgno, freePageFlag int32, pnChange uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var pCell uintptr
+ var i int32
+ var hdr int32
+
+ if !(pgno > btreePagecount(tls, pBt)) {
+ goto __1
+ }
+ return Xsqlite3CorruptError(tls, 78252)
+__1:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 32)) = getAndInitPage(tls, pBt, pgno, bp, uintptr(0), 0)
+ if !(*(*int32)(unsafe.Pointer(bp + 32)) != 0) {
+ goto __2
+ }
+ return *(*int32)(unsafe.Pointer(bp + 32))
+__2:
+ ;
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FopenFlags)&BTREE_SINGLE == 0 &&
+ Xsqlite3PagerPageRefcount(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != 1+libc.Bool32(pgno == Pgno(1))) {
+ goto __3
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = Xsqlite3CorruptError(tls, 78259)
+ goto cleardatabasepage_out
+__3:
+ ;
+ hdr = int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset)
+ i = 0
+__4:
+ if !(i < int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnCell)) {
+ goto __6
+ }
+ pCell = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaCellIdx + uintptr(2*i))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaCellIdx + uintptr(2*i) + 1)))))
+ if !!(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fleaf) != 0) {
+ goto __7
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = clearDatabasePage(tls, pBt, Xsqlite3Get4byte(tls, pCell), 1, pnChange)
+ if !(*(*int32)(unsafe.Pointer(bp + 32)) != 0) {
+ goto __8
+ }
+ goto cleardatabasepage_out
+__8:
+ ;
+__7:
+ ;
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxParseCell})).f(tls, *(*uintptr)(unsafe.Pointer(bp)), pCell, bp+8)
+ if !(U32((*CellInfo)(unsafe.Pointer(bp+8)).FnLocal) != (*CellInfo)(unsafe.Pointer(bp+8)).FnPayload) {
+ goto __9
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = clearCellOverflow(tls, *(*uintptr)(unsafe.Pointer(bp)), pCell, bp+8)
+ goto __10
+__9:
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_OK
+__10:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 32)) != 0) {
+ goto __11
+ }
+ goto cleardatabasepage_out
+__11:
+ ;
+ goto __5
+__5:
+ i++
+ goto __4
+ goto __6
+__6:
+ ;
+ if !!(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fleaf) != 0) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = clearDatabasePage(tls, pBt, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+uintptr(hdr+8)), 1, pnChange)
+ if !(*(*int32)(unsafe.Pointer(bp + 32)) != 0) {
+ goto __13
+ }
+ goto cleardatabasepage_out
+__13:
+ ;
+ if !((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FintKey != 0) {
+ goto __14
+ }
+ pnChange = uintptr(0)
+__14:
+ ;
+__12:
+ ;
+ if !(pnChange != 0) {
+ goto __15
+ }
+
+ *(*I64)(unsafe.Pointer(pnChange)) += I64((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnCell)
+__15:
+ ;
+ if !(freePageFlag != 0) {
+ goto __16
+ }
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+32)
+ goto __17
+__16:
+ if !(libc.AssignPtrInt32(bp+32, Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage)) == 0) {
+ goto __18
+ }
+ zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|PTF_LEAF)
+__18:
+ ;
+__17:
+ ;
+cleardatabasepage_out:
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return *(*int32)(unsafe.Pointer(bp + 32))
+}
+
+// Delete all information from a single table in the database. iTable is
+// the page number of the root of the table. After this routine returns,
+// the root page is empty, but still exists.
+//
+// This routine will fail with SQLITE_LOCKED if there are any open
+// read cursors on the table. Open write cursors are moved to the
+// root of the table.
+//
+// If pnChange is not NULL, then the integer value pointed to by pnChange
+// is incremented by the number of entries in the table.
+func Xsqlite3BtreeClearTable(tls *libc.TLS, p uintptr, iTable int32, pnChange uintptr) int32 {
+ var rc int32
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ Xsqlite3BtreeEnter(tls, p)
+
+ rc = saveAllCursors(tls, pBt, Pgno(iTable), uintptr(0))
+
+ if SQLITE_OK == rc {
+ if (*Btree)(unsafe.Pointer(p)).FhasIncrblobCur != 0 {
+ invalidateIncrblobCursors(tls, p, Pgno(iTable), int64(0), 1)
+ }
+ rc = clearDatabasePage(tls, pBt, Pgno(iTable), 0, pnChange)
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Delete all information from the single table that pCur is open on.
+//
+// This routine only work for pCur on an ephemeral table.
+func Xsqlite3BtreeClearTableOfCursor(tls *libc.TLS, pCur uintptr) int32 {
+ return Xsqlite3BtreeClearTable(tls, (*BtCursor)(unsafe.Pointer(pCur)).FpBtree, int32((*BtCursor)(unsafe.Pointer(pCur)).FpgnoRoot), uintptr(0))
+}
+
+func btreeDropTable(tls *libc.TLS, p uintptr, iTable Pgno, piMoved uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ if iTable > btreePagecount(tls, pBt) {
+ return Xsqlite3CorruptError(tls, 78363)
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ *(*int32)(unsafe.Pointer(bp + 12)) = btreeGetPage(tls, pBt, iTable, bp, 0)
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+
+ *(*int32)(unsafe.Pointer(piMoved)) = 0
+
+ if (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 {
+ Xsqlite3BtreeGetMeta(tls, p, BTREE_LARGEST_ROOT_PAGE, bp+8)
+
+ if iTable == *(*Pgno)(unsafe.Pointer(bp + 8)) {
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+12)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ } else {
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*int32)(unsafe.Pointer(bp + 12)) = btreeGetPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8)), bp+16, 0)
+ if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ *(*int32)(unsafe.Pointer(bp + 12)) = relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 16)), uint8(PTRMAP_ROOTPAGE), uint32(0), iTable, 0)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 12)) = btreeGetPage(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8)), bp+16, 0)
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bp+12)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ *(*int32)(unsafe.Pointer(piMoved)) = int32(*(*Pgno)(unsafe.Pointer(bp + 8)))
+ }
+
+ *(*Pgno)(unsafe.Pointer(bp + 8))--
+ for *(*Pgno)(unsafe.Pointer(bp + 8)) == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize+U32(1) ||
+ ptrmapPageno(tls, pBt, *(*Pgno)(unsafe.Pointer(bp + 8))) == *(*Pgno)(unsafe.Pointer(bp + 8)) {
+ *(*Pgno)(unsafe.Pointer(bp + 8))--
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3BtreeUpdateMeta(tls, p, 4, *(*Pgno)(unsafe.Pointer(bp + 8)))
+ } else {
+ freePage(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+12)
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return *(*int32)(unsafe.Pointer(bp + 12))
+}
+
+func Xsqlite3BtreeDropTable(tls *libc.TLS, p uintptr, iTable int32, piMoved uintptr) int32 {
+ var rc int32
+ Xsqlite3BtreeEnter(tls, p)
+ rc = btreeDropTable(tls, p, uint32(iTable), piMoved)
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// This function may only be called if the b-tree connection already
+// has a read or write transaction open on the database.
+//
+// Read the meta-information out of a database file. Meta[0]
+// is the number of free pages currently in the database. Meta[1]
+// through meta[15] are available for use by higher layers. Meta[0]
+// is read-only, the others are read/write.
+//
+// The schema layer numbers meta values differently. At the schema
+// layer (and the SetCookie and ReadCookie opcodes) the number of
+// free pages is not visible. So Cookie[0] is the same as Meta[1].
+//
+// This routine treats Meta[BTREE_DATA_VERSION] as a special case. Instead
+// of reading the value out of the header, it instead loads the "DataVersion"
+// from the pager. The BTREE_DATA_VERSION value is not actually stored in the
+// database file. It is a number computed by the pager. But its access
+// pattern is the same as header meta values, and so it is convenient to
+// read it from this routine.
+func Xsqlite3BtreeGetMeta(tls *libc.TLS, p uintptr, idx int32, pMeta uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+
+ Xsqlite3BtreeEnter(tls, p)
+
+ if idx == BTREE_DATA_VERSION {
+ *(*U32)(unsafe.Pointer(pMeta)) = Xsqlite3PagerDataVersion(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager) + (*Btree)(unsafe.Pointer(p)).FiBDataVersion
+ } else {
+ *(*U32)(unsafe.Pointer(pMeta)) = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+uintptr(36+idx*4))
+ }
+
+ Xsqlite3BtreeLeave(tls, p)
+}
+
+// Write meta-information back into the database. Meta[0] is
+// read-only and may not be written.
+func Xsqlite3BtreeUpdateMeta(tls *libc.TLS, p uintptr, idx int32, iMeta U32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ var pP1 uintptr
+ var rc int32
+
+ Xsqlite3BtreeEnter(tls, p)
+
+ pP1 = (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FpDbPage)
+ if rc == SQLITE_OK {
+ Xsqlite3Put4byte(tls, pP1+uintptr(36+idx*4), iMeta)
+ if idx == BTREE_INCR_VACUUM {
+ (*BtShared)(unsafe.Pointer(pBt)).FincrVacuum = U8(iMeta)
+ }
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// The first argument, pCur, is a cursor opened on some b-tree. Count the
+// number of entries in the b-tree and write the result to *pnEntry.
+//
+// SQLITE_OK is returned if the operation is successfully executed.
+// Otherwise, if an error is encountered (i.e. an IO error or database
+// corruption) an SQLite error code is returned.
+func Xsqlite3BtreeCount(tls *libc.TLS, db uintptr, pCur uintptr, pnEntry uintptr) int32 {
+ var nEntry I64 = int64(0)
+ var rc int32
+
+ rc = moveToRoot(tls, pCur)
+ if rc == SQLITE_EMPTY {
+ *(*I64)(unsafe.Pointer(pnEntry)) = int64(0)
+ return SQLITE_OK
+ }
+
+ for rc == SQLITE_OK && !(*(*int32)(unsafe.Pointer(db + 432)) != 0) {
+ var iIdx int32
+ var pPage uintptr
+
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ if (*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0 || !(int32((*MemPage)(unsafe.Pointer(pPage)).FintKey) != 0) {
+ nEntry = nEntry + I64((*MemPage)(unsafe.Pointer(pPage)).FnCell)
+ }
+
+ if (*MemPage)(unsafe.Pointer(pPage)).Fleaf != 0 {
+ for __ccgo := true; __ccgo; __ccgo = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*MemPage)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) {
+ if int32((*BtCursor)(unsafe.Pointer(pCur)).FiPage) == 0 {
+ *(*I64)(unsafe.Pointer(pnEntry)) = nEntry
+ return moveToRoot(tls, pCur)
+ }
+ moveToParent(tls, pCur)
+ }
+
+ (*BtCursor)(unsafe.Pointer(pCur)).Fix++
+ pPage = (*BtCursor)(unsafe.Pointer(pCur)).FpPage
+ }
+
+ iIdx = int32((*BtCursor)(unsafe.Pointer(pCur)).Fix)
+ if iIdx == int32((*MemPage)(unsafe.Pointer(pPage)).FnCell) {
+ rc = moveToChild(tls, pCur, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FhdrOffset)+8)))
+ } else {
+ rc = moveToChild(tls, pCur, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*MemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iIdx))))<<8|int32(*(*U8)(unsafe.Pointer((*MemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(2*iIdx) + 1)))))))
+ }
+ }
+
+ return rc
+}
+
+// Return the pager associated with a BTree. This routine is used for
+// testing and debugging only.
+func Xsqlite3BtreePager(tls *libc.TLS, p uintptr) uintptr {
+ return (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpPager
+}
+
+func checkOom(tls *libc.TLS, pCheck uintptr) {
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Frc = SQLITE_NOMEM
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr = 0
+ if (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr == 0 {
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr++
+ }
+}
+
+func checkProgress(tls *libc.TLS, pCheck uintptr) {
+ var db uintptr = (*IntegrityCk)(unsafe.Pointer(pCheck)).Fdb
+ if *(*int32)(unsafe.Pointer(db + 432)) != 0 {
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Frc = SQLITE_INTERRUPT
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr++
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr = 0
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FxProgress != 0 {
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FnStep++
+ if (*IntegrityCk)(unsafe.Pointer(pCheck)).FnStep%(*Sqlite3)(unsafe.Pointer(db)).FnProgressOps == U32(0) &&
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxProgress})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0 {
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Frc = SQLITE_INTERRUPT
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr++
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr = 0
+ }
+ }
+}
+
+func checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var ap Va_list
+ _ = ap
+ checkProgress(tls, pCheck)
+ if !((*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr != 0) {
+ return
+ }
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr--
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr++
+ ap = va
+ if (*IntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 {
+ Xsqlite3_str_append(tls, pCheck+64, ts+4465, 1)
+ }
+ if (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 {
+ Xsqlite3_str_appendf(tls, pCheck+64, (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp, (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv2))
+ }
+ Xsqlite3_str_vappendf(tls, pCheck+64, zFormat, ap)
+ _ = ap
+ if int32((*IntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FaccError) == SQLITE_NOMEM {
+ checkOom(tls, pCheck)
+ }
+}
+
+func getPageReferenced(tls *libc.TLS, pCheck uintptr, iPg Pgno) int32 {
+ return int32(*(*U8)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FaPgRef + uintptr(iPg/Pgno(8))))) & (int32(1) << (iPg & Pgno(0x07)))
+}
+
+func setPageReferenced(tls *libc.TLS, pCheck uintptr, iPg Pgno) {
+ *(*U8)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FaPgRef + uintptr(iPg/Pgno(8)))) |= U8(int32(1) << (iPg & Pgno(0x07)))
+}
+
+func checkRef(tls *libc.TLS, pCheck uintptr, iPage Pgno) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if iPage > (*IntegrityCk)(unsafe.Pointer(pCheck)).FnPage || iPage == Pgno(0) {
+ checkAppendMsg(tls, pCheck, ts+4467, libc.VaList(bp, iPage))
+ return 1
+ }
+ if getPageReferenced(tls, pCheck, iPage) != 0 {
+ checkAppendMsg(tls, pCheck, ts+4490, libc.VaList(bp+8, iPage))
+ return 1
+ }
+ setPageReferenced(tls, pCheck, iPage)
+ return 0
+}
+
+func checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild Pgno, eType U8, iParent Pgno) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32
+
+ rc = ptrmapGet(tls, (*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt, iChild, bp+48, bp+52)
+ if rc != SQLITE_OK {
+ if rc == SQLITE_NOMEM || rc == SQLITE_IOERR|int32(12)<<8 {
+ checkOom(tls, pCheck)
+ }
+ checkAppendMsg(tls, pCheck, ts+4515, libc.VaList(bp, iChild))
+ return
+ }
+
+ if int32(*(*U8)(unsafe.Pointer(bp + 48))) != int32(eType) || *(*Pgno)(unsafe.Pointer(bp + 52)) != iParent {
+ checkAppendMsg(tls, pCheck,
+ ts+4544,
+ libc.VaList(bp+8, iChild, int32(eType), iParent, int32(*(*U8)(unsafe.Pointer(bp + 48))), *(*Pgno)(unsafe.Pointer(bp + 52))))
+ }
+}
+
+func checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage Pgno, N U32) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var i int32
+ var expected U32 = N
+ var nErrAtStart int32 = (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr
+ for iPage != Pgno(0) && (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr != 0 {
+ var pOvflData uintptr
+ if checkRef(tls, pCheck, iPage) != 0 {
+ break
+ }
+ N--
+ if Xsqlite3PagerGet(tls, (*IntegrityCk)(unsafe.Pointer(pCheck)).FpPager, iPage, bp+40, 0) != 0 {
+ checkAppendMsg(tls, pCheck, ts+4598, libc.VaList(bp, iPage))
+ break
+ }
+ pOvflData = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ if isFreeList != 0 {
+ var n U32 = Xsqlite3Get4byte(tls, pOvflData+4)
+ if (*BtShared)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 {
+ checkPtrmap(tls, pCheck, iPage, uint8(PTRMAP_FREEPAGE), uint32(0))
+ }
+ if n > (*BtShared)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/U32(4)-U32(2) {
+ checkAppendMsg(tls, pCheck,
+ ts+4620, libc.VaList(bp+8, iPage))
+ N--
+ } else {
+ for i = 0; i < int32(n); i++ {
+ var iFreePage Pgno = Xsqlite3Get4byte(tls, pOvflData+uintptr(8+i*4))
+ if (*BtShared)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 {
+ checkPtrmap(tls, pCheck, iFreePage, uint8(PTRMAP_FREEPAGE), uint32(0))
+ }
+ checkRef(tls, pCheck, iFreePage)
+ }
+ N = N - n
+ }
+ } else {
+ if (*BtShared)(unsafe.Pointer((*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 && N > U32(0) {
+ i = int32(Xsqlite3Get4byte(tls, pOvflData))
+ checkPtrmap(tls, pCheck, uint32(i), uint8(PTRMAP_OVERFLOW2), iPage)
+ }
+ }
+ iPage = Xsqlite3Get4byte(tls, pOvflData)
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ }
+ if N != 0 && nErrAtStart == (*IntegrityCk)(unsafe.Pointer(pCheck)).FnErr {
+ checkAppendMsg(tls, pCheck,
+ ts+4659,
+ libc.VaList(bp+16, func() uintptr {
+ if isFreeList != 0 {
+ return ts + 4685
+ }
+ return ts + 4690
+ }(),
+ expected-N, expected))
+ }
+}
+
+func btreeHeapInsert(tls *libc.TLS, aHeap uintptr, x U32) {
+ var j U32
+ var i U32
+
+ i = libc.PreIncUint32(&*(*U32)(unsafe.Pointer(aHeap)), 1)
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4)) = x
+ for libc.AssignUint32(&j, i/U32(2)) > U32(0) && *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4)) > *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4)) {
+ x = *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4))
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4)) = *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4))
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4)) = x
+ i = j
+ }
+}
+
+func btreeHeapPull(tls *libc.TLS, aHeap uintptr, pOut uintptr) int32 {
+ var j U32
+ var i U32
+ var x U32
+ if libc.AssignUint32(&x, *(*U32)(unsafe.Pointer(aHeap))) == U32(0) {
+ return 0
+ }
+ *(*U32)(unsafe.Pointer(pOut)) = *(*U32)(unsafe.Pointer(aHeap + 1*4))
+ *(*U32)(unsafe.Pointer(aHeap + 1*4)) = *(*U32)(unsafe.Pointer(aHeap + uintptr(x)*4))
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(x)*4)) = 0xffffffff
+ *(*U32)(unsafe.Pointer(aHeap))--
+ i = U32(1)
+ for libc.AssignUint32(&j, i*U32(2)) <= *(*U32)(unsafe.Pointer(aHeap)) {
+ if *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4)) > *(*U32)(unsafe.Pointer(aHeap + uintptr(j+U32(1))*4)) {
+ j++
+ }
+ if *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4)) < *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4)) {
+ break
+ }
+ x = *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4))
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(i)*4)) = *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4))
+ *(*U32)(unsafe.Pointer(aHeap + uintptr(j)*4)) = x
+ i = j
+ }
+ return 1
+}
+
+func checkTreePage(tls *libc.TLS, pCheck uintptr, iPage Pgno, piMinKey uintptr, maxKey I64) int32 {
+ bp := tls.Alloc(140)
+ defer tls.Free(140)
+ *(*I64)(unsafe.Pointer(bp + 104)) = maxKey
+
+ var i int32
+ var rc int32
+ var depth int32
+ var d2 int32
+ var pgno int32
+ var nFrag int32
+ var hdr int32
+ var cellStart int32
+ var nCell int32
+ var doCoverageCheck int32
+ var keyCanBeEqual int32
+
+ var data uintptr
+ var pCell uintptr
+ var pCellIdx uintptr
+ var pBt uintptr
+ var pc U32
+ var usableSize U32
+ var contentOffset U32
+ var heap uintptr
+
+ var prev U32
+ var saved_zPfx uintptr
+ var saved_v1 int32
+ var saved_v2 int32
+ var savedIsInit U8
+ var nPage U32
+ var pgnoOvfl Pgno
+
+ var size U32
+ var size1 int32
+ var j int32
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+ depth = -1
+ doCoverageCheck = 1
+ keyCanBeEqual = 1
+ heap = uintptr(0)
+ prev = U32(0)
+ saved_zPfx = (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx
+ saved_v1 = int32((*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1)
+ saved_v2 = (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv2
+ savedIsInit = U8(0)
+
+ checkProgress(tls, pCheck)
+ if !((*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr == 0) {
+ goto __1
+ }
+ goto end_of_check
+__1:
+ ;
+ pBt = (*IntegrityCk)(unsafe.Pointer(pCheck)).FpBt
+ usableSize = (*BtShared)(unsafe.Pointer(pBt)).FusableSize
+ if !(iPage == Pgno(0)) {
+ goto __2
+ }
+ return 0
+__2:
+ ;
+ if !(checkRef(tls, pCheck, iPage) != 0) {
+ goto __3
+ }
+ return 0
+__3:
+ ;
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 4711
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage
+ if !(libc.AssignInt32(&rc, btreeGetPage(tls, pBt, iPage, bp+96, 0)) != 0) {
+ goto __4
+ }
+ checkAppendMsg(tls, pCheck,
+ ts+4721, libc.VaList(bp, rc))
+ goto end_of_check
+__4:
+ ;
+ savedIsInit = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FisInit
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FisInit = U8(0)
+ if !(libc.AssignInt32(&rc, btreeInitPage(tls, *(*uintptr)(unsafe.Pointer(bp + 96)))) != 0) {
+ goto __5
+ }
+
+ checkAppendMsg(tls, pCheck,
+ ts+4759, libc.VaList(bp+8, rc))
+ goto end_of_check
+__5:
+ ;
+ if !(libc.AssignInt32(&rc, btreeComputeFreeSpace(tls, *(*uintptr)(unsafe.Pointer(bp + 96)))) != 0) {
+ goto __6
+ }
+
+ checkAppendMsg(tls, pCheck, ts+4797, libc.VaList(bp+16, rc))
+ goto end_of_check
+__6:
+ ;
+ data = (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FaData
+ hdr = int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FhdrOffset)
+
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 4819
+ contentOffset = U32((int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+5))))<<8|int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+5) + 1)))-1)&0xffff + 1)
+
+ nCell = int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+3))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+3) + 1)))
+
+ cellStart = hdr + 12 - 4*int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fleaf)
+
+ pCellIdx = data + uintptr(cellStart+2*(nCell-1))
+
+ if !!(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fleaf) != 0) {
+ goto __7
+ }
+
+ pgno = int32(Xsqlite3Get4byte(tls, data+uintptr(hdr+8)))
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __9
+ }
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = ts + 4845
+ checkPtrmap(tls, pCheck, uint32(pgno), uint8(PTRMAP_BTREE), iPage)
+__9:
+ ;
+ depth = checkTreePage(tls, pCheck, uint32(pgno), bp+104, *(*I64)(unsafe.Pointer(bp + 104)))
+ keyCanBeEqual = 0
+ goto __8
+__7:
+ heap = (*IntegrityCk)(unsafe.Pointer(pCheck)).Fheap
+ *(*U32)(unsafe.Pointer(heap)) = U32(0)
+__8:
+ ;
+ i = nCell - 1
+__10:
+ if !(i >= 0 && (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr != 0) {
+ goto __12
+ }
+
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv2 = i
+
+ pc = U32(int32(*(*U8)(unsafe.Pointer(pCellIdx)))<<8 | int32(*(*U8)(unsafe.Pointer(pCellIdx + 1))))
+ pCellIdx -= uintptr(2)
+ if !(pc < contentOffset || pc > usableSize-U32(4)) {
+ goto __13
+ }
+ checkAppendMsg(tls, pCheck, ts+4873,
+ libc.VaList(bp+24, pc, contentOffset, usableSize-U32(4)))
+ doCoverageCheck = 0
+ goto __11
+__13:
+ ;
+ pCell = data + uintptr(pc)
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FxParseCell})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 96)), pCell, bp+112)
+ if !(pc+U32((*CellInfo)(unsafe.Pointer(bp+112)).FnSize) > usableSize) {
+ goto __14
+ }
+ checkAppendMsg(tls, pCheck, ts+4903, 0)
+ doCoverageCheck = 0
+ goto __11
+__14:
+ ;
+ if !((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FintKey != 0) {
+ goto __15
+ }
+ if !(func() int32 {
+ if keyCanBeEqual != 0 {
+ return libc.Bool32((*CellInfo)(unsafe.Pointer(bp+112)).FnKey > *(*I64)(unsafe.Pointer(bp + 104)))
+ }
+ return libc.Bool32((*CellInfo)(unsafe.Pointer(bp+112)).FnKey >= *(*I64)(unsafe.Pointer(bp + 104)))
+ }() != 0) {
+ goto __16
+ }
+ checkAppendMsg(tls, pCheck, ts+4927, libc.VaList(bp+48, (*CellInfo)(unsafe.Pointer(bp+112)).FnKey))
+__16:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 104)) = (*CellInfo)(unsafe.Pointer(bp + 112)).FnKey
+ keyCanBeEqual = 0
+__15:
+ ;
+ if !((*CellInfo)(unsafe.Pointer(bp+112)).FnPayload > U32((*CellInfo)(unsafe.Pointer(bp+112)).FnLocal)) {
+ goto __17
+ }
+
+ nPage = ((*CellInfo)(unsafe.Pointer(bp+112)).FnPayload - U32((*CellInfo)(unsafe.Pointer(bp+112)).FnLocal) + usableSize - U32(5)) / (usableSize - U32(4))
+ pgnoOvfl = Xsqlite3Get4byte(tls, pCell+uintptr(int32((*CellInfo)(unsafe.Pointer(bp+112)).FnSize)-4))
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __18
+ }
+ checkPtrmap(tls, pCheck, pgnoOvfl, uint8(PTRMAP_OVERFLOW1), iPage)
+__18:
+ ;
+ checkList(tls, pCheck, 0, pgnoOvfl, nPage)
+__17:
+ ;
+ if !!(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fleaf) != 0) {
+ goto __19
+ }
+
+ pgno = int32(Xsqlite3Get4byte(tls, pCell))
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __21
+ }
+ checkPtrmap(tls, pCheck, uint32(pgno), uint8(PTRMAP_BTREE), iPage)
+__21:
+ ;
+ d2 = checkTreePage(tls, pCheck, uint32(pgno), bp+104, *(*I64)(unsafe.Pointer(bp + 104)))
+ keyCanBeEqual = 0
+ if !(d2 != depth) {
+ goto __22
+ }
+ checkAppendMsg(tls, pCheck, ts+4951, 0)
+ depth = d2
+__22:
+ ;
+ goto __20
+__19:
+ btreeHeapInsert(tls, heap, pc<<16|(pc+U32((*CellInfo)(unsafe.Pointer(bp+112)).FnSize)-U32(1)))
+__20:
+ ;
+ goto __11
+__11:
+ i--
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*I64)(unsafe.Pointer(piMinKey)) = *(*I64)(unsafe.Pointer(bp + 104))
+
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = uintptr(0)
+ if !(doCoverageCheck != 0 && (*IntegrityCk)(unsafe.Pointer(pCheck)).FmxErr > 0) {
+ goto __23
+ }
+
+ if !!(int32((*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fleaf) != 0) {
+ goto __24
+ }
+ heap = (*IntegrityCk)(unsafe.Pointer(pCheck)).Fheap
+ *(*U32)(unsafe.Pointer(heap)) = U32(0)
+ i = nCell - 1
+__25:
+ if !(i >= 0) {
+ goto __27
+ }
+ pc = U32(int32(*(*U8)(unsafe.Pointer(data + uintptr(cellStart+i*2))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(cellStart+i*2) + 1))))
+ size = U32((*struct {
+ f func(*libc.TLS, uintptr, uintptr) U16
+ })(unsafe.Pointer(&struct{ uintptr }{(*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FxCellSize})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 96)), data+uintptr(pc)))
+ btreeHeapInsert(tls, heap, pc<<16|(pc+size-U32(1)))
+ goto __26
+__26:
+ i--
+ goto __25
+ goto __27
+__27:
+ ;
+__24:
+ ;
+ i = int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+1))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+1) + 1)))
+__28:
+ if !(i > 0) {
+ goto __29
+ }
+
+ size1 = int32(*(*U8)(unsafe.Pointer(data + uintptr(i+2))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(i+2) + 1)))
+
+ btreeHeapInsert(tls, heap, U32(i)<<16|U32(i+size1-1))
+
+ j = int32(*(*U8)(unsafe.Pointer(data + uintptr(i))))<<8 | int32(*(*U8)(unsafe.Pointer(data + uintptr(i) + 1)))
+
+ i = j
+ goto __28
+__29:
+ ;
+ nFrag = 0
+ prev = contentOffset - U32(1)
+__30:
+ if !(btreeHeapPull(tls, heap, bp+136) != 0) {
+ goto __31
+ }
+ if !(prev&U32(0xffff) >= *(*U32)(unsafe.Pointer(bp + 136))>>16) {
+ goto __32
+ }
+ checkAppendMsg(tls, pCheck,
+ ts+4976, libc.VaList(bp+56, *(*U32)(unsafe.Pointer(bp + 136))>>16, iPage))
+ goto __31
+ goto __33
+__32:
+ nFrag = int32(U32(nFrag) + (*(*U32)(unsafe.Pointer(bp + 136))>>16 - prev&U32(0xffff) - U32(1)))
+ prev = *(*U32)(unsafe.Pointer(bp + 136))
+__33:
+ ;
+ goto __30
+__31:
+ ;
+ nFrag = int32(U32(nFrag) + (usableSize - prev&U32(0xffff) - U32(1)))
+
+ if !(*(*U32)(unsafe.Pointer(heap)) == U32(0) && nFrag != int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+7))))) {
+ goto __34
+ }
+ checkAppendMsg(tls, pCheck,
+ ts+5013,
+ libc.VaList(bp+72, nFrag, int32(*(*U8)(unsafe.Pointer(data + uintptr(hdr+7)))), iPage))
+__34:
+ ;
+__23:
+ ;
+end_of_check:
+ if !!(doCoverageCheck != 0) {
+ goto __35
+ }
+ (*MemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FisInit = savedIsInit
+__35:
+ ;
+ releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = saved_zPfx
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = Pgno(saved_v1)
+ (*IntegrityCk)(unsafe.Pointer(pCheck)).Fv2 = saved_v2
+ return depth + 1
+}
+
+// This routine does a complete check of the given BTree file. aRoot[] is
+// an array of pages numbers were each page number is the root page of
+// a table. nRoot is the number of entries in aRoot.
+//
+// A read-only or read-write transaction must be opened before calling
+// this function.
+//
+// Write the number of error seen in *pnErr. Except for some memory
+// allocation errors, an error message held in memory obtained from
+// malloc is returned if *pnErr is non-zero. If *pnErr==0 then NULL is
+// returned. If a memory allocation error occurs, NULL is returned.
+//
+// If the first entry in aRoot[] is 0, that indicates that the list of
+// root pages is incomplete. This is a "partial integrity-check". This
+// happens when performing an integrity check on a single table. The
+// zero is skipped, of course. But in addition, the freelist checks
+// and the checks to make sure every page is referenced are also skipped,
+// since obviously it is not possible to know which pages are covered by
+// the unverified btrees. Except, if aRoot[1] is 1, then the freelist
+// checks are still performed.
+func Xsqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) int32 {
+ bp := tls.Alloc(256)
+ defer tls.Free(256)
+
+ var i Pgno
+
+ var pBt uintptr
+ var savedDbFlags U64
+
+ var bPartial int32
+ var bCkFreelist int32
+ var mx Pgno
+ var mxInHdr Pgno
+
+ pBt = (*Btree)(unsafe.Pointer(p)).FpBt
+ savedDbFlags = (*Sqlite3)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags
+ bPartial = 0
+ bCkFreelist = 1
+
+ if !(*(*Pgno)(unsafe.Pointer(aRoot)) == Pgno(0)) {
+ goto __1
+ }
+
+ bPartial = 1
+ if !(*(*Pgno)(unsafe.Pointer(aRoot + 1*4)) != Pgno(1)) {
+ goto __2
+ }
+ bCkFreelist = 0
+__2:
+ ;
+__1:
+ ;
+ Xsqlite3BtreeEnter(tls, p)
+
+ libc.X__builtin___memset_chk(tls, bp+32, 0, uint64(unsafe.Sizeof(IntegrityCk{})), libc.X__builtin_object_size(tls, bp+32, 0))
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).Fdb = db
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FpBt = pBt
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FpPager = (*BtShared)(unsafe.Pointer(pBt)).FpPager
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FnPage = btreePagecount(tls, (*IntegrityCk)(unsafe.Pointer(bp+32)).FpBt)
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FmxErr = mxErr
+ Xsqlite3StrAccumInit(tls, bp+32+64, uintptr(0), bp+144, int32(unsafe.Sizeof([100]int8{})), SQLITE_MAX_LENGTH)
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FerrMsg.FprintfFlags = U8(SQLITE_PRINTF_INTERNAL)
+ if !((*IntegrityCk)(unsafe.Pointer(bp+32)).FnPage == Pgno(0)) {
+ goto __3
+ }
+ goto integrity_ck_cleanup
+__3:
+ ;
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FaPgRef = Xsqlite3MallocZero(tls, uint64((*IntegrityCk)(unsafe.Pointer(bp+32)).FnPage/Pgno(8)+Pgno(1)))
+ if !!(int32((*IntegrityCk)(unsafe.Pointer(bp+32)).FaPgRef) != 0) {
+ goto __4
+ }
+ checkOom(tls, bp+32)
+ goto integrity_ck_cleanup
+__4:
+ ;
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).Fheap = Xsqlite3PageMalloc(tls, int32((*BtShared)(unsafe.Pointer(pBt)).FpageSize))
+ if !((*IntegrityCk)(unsafe.Pointer(bp+32)).Fheap == uintptr(0)) {
+ goto __5
+ }
+ checkOom(tls, bp+32)
+ goto integrity_ck_cleanup
+__5:
+ ;
+ i = U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer(pBt)).FpageSize + U32(1)
+ if !(i <= (*IntegrityCk)(unsafe.Pointer(bp+32)).FnPage) {
+ goto __6
+ }
+ setPageReferenced(tls, bp+32, i)
+__6:
+ ;
+ if !(bCkFreelist != 0) {
+ goto __7
+ }
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FzPfx = ts + 5065
+ checkList(tls, bp+32, 1, Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32),
+ Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36))
+ (*IntegrityCk)(unsafe.Pointer(bp + 32)).FzPfx = uintptr(0)
+__7:
+ ;
+ if !!(bPartial != 0) {
+ goto __8
+ }
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) {
+ goto __9
+ }
+ mx = Pgno(0)
+ i = Pgno(0)
+__11:
+ if !(int32(i) < nRoot) {
+ goto __13
+ }
+ if !(mx < *(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4))) {
+ goto __14
+ }
+ mx = *(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4))
+__14:
+ ;
+ goto __12
+__12:
+ i++
+ goto __11
+ goto __13
+__13:
+ ;
+ mxInHdr = Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52)
+ if !(mx != mxInHdr) {
+ goto __15
+ }
+ checkAppendMsg(tls, bp+32,
+ ts+5081,
+ libc.VaList(bp, mx, mxInHdr))
+__15:
+ ;
+ goto __10
+__9:
+ if !(Xsqlite3Get4byte(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != U32(0)) {
+ goto __16
+ }
+ checkAppendMsg(tls, bp+32,
+ ts+5126, 0)
+__16:
+ ;
+__10:
+ ;
+__8:
+ ;
+ *(*U64)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).Fdb + 48)) &= libc.CplUint64(uint64(SQLITE_CellSizeCk))
+ i = Pgno(0)
+__17:
+ if !(int32(i) < nRoot && (*IntegrityCk)(unsafe.Pointer(bp+32)).FmxErr != 0) {
+ goto __19
+ }
+ if !(*(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == Pgno(0)) {
+ goto __20
+ }
+ goto __18
+__20:
+ ;
+ if !((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > Pgno(1) && !(bPartial != 0)) {
+ goto __21
+ }
+ checkPtrmap(tls, bp+32, *(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0))
+__21:
+ ;
+ checkTreePage(tls, bp+32, *(*Pgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+248, int64(0xffffffff)|int64(0x7fffffff)<<32)
+ goto __18
+__18:
+ i++
+ goto __17
+ goto __19
+__19:
+ ;
+ (*Sqlite3)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags = savedDbFlags
+
+ if !!(bPartial != 0) {
+ goto __22
+ }
+ i = Pgno(1)
+__23:
+ if !(i <= (*IntegrityCk)(unsafe.Pointer(bp+32)).FnPage && (*IntegrityCk)(unsafe.Pointer(bp+32)).FmxErr != 0) {
+ goto __25
+ }
+
+ if !(getPageReferenced(tls, bp+32, i) == 0 && (ptrmapPageno(tls, pBt, i) != i || !(int32((*BtShared)(unsafe.Pointer(pBt)).FautoVacuum) != 0))) {
+ goto __26
+ }
+ checkAppendMsg(tls, bp+32, ts+5181, libc.VaList(bp+16, i))
+__26:
+ ;
+ if !(getPageReferenced(tls, bp+32, i) != 0 && (ptrmapPageno(tls, pBt, i) == i && (*BtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0)) {
+ goto __27
+ }
+ checkAppendMsg(tls, bp+32, ts+5203, libc.VaList(bp+24, i))
+__27:
+ ;
+ goto __24
+__24:
+ i++
+ goto __23
+ goto __25
+__25:
+ ;
+__22:
+ ;
+integrity_ck_cleanup:
+ Xsqlite3PageFree(tls, (*IntegrityCk)(unsafe.Pointer(bp+32)).Fheap)
+ Xsqlite3_free(tls, (*IntegrityCk)(unsafe.Pointer(bp+32)).FaPgRef)
+ *(*int32)(unsafe.Pointer(pnErr)) = (*IntegrityCk)(unsafe.Pointer(bp + 32)).FnErr
+ if !((*IntegrityCk)(unsafe.Pointer(bp+32)).FnErr == 0) {
+ goto __28
+ }
+ Xsqlite3_str_reset(tls, bp+32+64)
+ *(*uintptr)(unsafe.Pointer(pzOut)) = uintptr(0)
+ goto __29
+__28:
+ *(*uintptr)(unsafe.Pointer(pzOut)) = Xsqlite3StrAccumFinish(tls, bp+32+64)
+__29:
+ ;
+ Xsqlite3BtreeLeave(tls, p)
+ return (*IntegrityCk)(unsafe.Pointer(bp + 32)).Frc
+}
+
+// Return the full pathname of the underlying database file. Return
+// an empty string if the database is in-memory or a TEMP database.
+//
+// The pager filename is invariant as long as the pager is
+// open so it is safe to access without the BtShared mutex.
+func Xsqlite3BtreeGetFilename(tls *libc.TLS, p uintptr) uintptr {
+ return Xsqlite3PagerFilename(tls, (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpPager, 1)
+}
+
+// Return the pathname of the journal file for this database. The return
+// value of this routine is the same regardless of whether the journal file
+// has been created or not.
+//
+// The pager journal filename is invariant as long as the pager is
+// open so it is safe to access without the BtShared mutex.
+func Xsqlite3BtreeGetJournalname(tls *libc.TLS, p uintptr) uintptr {
+ return Xsqlite3PagerJournalname(tls, (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FpPager)
+}
+
+// Return one of SQLITE_TXN_NONE, SQLITE_TXN_READ, or SQLITE_TXN_WRITE
+// to describe the current transaction state of Btree p.
+func Xsqlite3BtreeTxnState(tls *libc.TLS, p uintptr) int32 {
+ if p != 0 {
+ return int32((*Btree)(unsafe.Pointer(p)).FinTrans)
+ }
+ return 0
+}
+
+// Run a checkpoint on the Btree passed as the first argument.
+//
+// Return SQLITE_LOCKED if this or any other connection has an open
+// transaction on the shared-cache the argument Btree is connected to.
+//
+// Parameter eMode is one of SQLITE_CHECKPOINT_PASSIVE, FULL or RESTART.
+func Xsqlite3BtreeCheckpoint(tls *libc.TLS, p uintptr, eMode int32, pnLog uintptr, pnCkpt uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ Xsqlite3BtreeEnter(tls, p)
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) != TRANS_NONE {
+ rc = SQLITE_LOCKED
+ } else {
+ rc = Xsqlite3PagerCheckpoint(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager, (*Btree)(unsafe.Pointer(p)).Fdb, eMode, pnLog, pnCkpt)
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ }
+ return rc
+}
+
+// Return true if there is currently a backup running on Btree p.
+func Xsqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) int32 {
+ return libc.Bool32((*Btree)(unsafe.Pointer(p)).FnBackup != 0)
+}
+
+// This function returns a pointer to a blob of memory associated with
+// a single shared-btree. The memory is used by client code for its own
+// purposes (for example, to store a high-level schema associated with
+// the shared-btree). The btree layer manages reference counting issues.
+//
+// The first time this is called on a shared-btree, nBytes bytes of memory
+// are allocated, zeroed, and returned to the caller. For each subsequent
+// call the nBytes parameter is ignored and a pointer to the same blob
+// of memory returned.
+//
+// If the nBytes parameter is 0 and the blob of memory has not yet been
+// allocated, a null pointer is returned. If the blob has already been
+// allocated, it is returned as normal.
+//
+// Just before the shared-btree is closed, the function passed as the
+// xFree argument when the memory allocation was made is invoked on the
+// blob of allocated memory. The xFree function should not call sqlite3_free()
+// on the memory, the btree layer does that.
+func Xsqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) uintptr {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ Xsqlite3BtreeEnter(tls, p)
+ if !(int32((*BtShared)(unsafe.Pointer(pBt)).FpSchema) != 0) && nBytes != 0 {
+ (*BtShared)(unsafe.Pointer(pBt)).FpSchema = Xsqlite3DbMallocZero(tls, uintptr(0), uint64(nBytes))
+ (*BtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ return (*BtShared)(unsafe.Pointer(pBt)).FpSchema
+}
+
+// Return SQLITE_LOCKED_SHAREDCACHE if another user of the same shared
+// btree as the argument handle holds an exclusive lock on the
+// sqlite_schema table. Otherwise SQLITE_OK.
+func Xsqlite3BtreeSchemaLocked(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+
+ Xsqlite3BtreeEnter(tls, p)
+ rc = querySharedCacheTableLock(tls, p, uint32(SCHEMA_ROOT), uint8(READ_LOCK))
+
+ Xsqlite3BtreeLeave(tls, p)
+ return rc
+}
+
+// Obtain a lock on the table whose root page is iTab. The
+// lock is a write lock if isWritelock is true or a read lock
+// if it is false.
+func Xsqlite3BtreeLockTable(tls *libc.TLS, p uintptr, iTab int32, isWriteLock U8) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Btree)(unsafe.Pointer(p)).Fsharable != 0 {
+ var lockType U8 = U8(READ_LOCK + int32(isWriteLock))
+
+ Xsqlite3BtreeEnter(tls, p)
+ rc = querySharedCacheTableLock(tls, p, uint32(iTab), lockType)
+ if rc == SQLITE_OK {
+ rc = setSharedCacheTableLock(tls, p, uint32(iTab), lockType)
+ }
+ Xsqlite3BtreeLeave(tls, p)
+ }
+ return rc
+}
+
+// Argument pCsr must be a cursor opened for writing on an
+// INTKEY table currently pointing at a valid table entry.
+// This function modifies the data stored as part of that entry.
+//
+// Only the data content may only be modified, it is not possible to
+// change the length of the data stored. If this function is called with
+// parameters that attempt to write past the end of the existing data,
+// no modifications are made and SQLITE_CORRUPT is returned.
+func Xsqlite3BtreePutData(tls *libc.TLS, pCsr uintptr, offset U32, amt U32, z uintptr) int32 {
+ var rc int32
+
+ rc = func() int32 {
+ if int32((*BtCursor)(unsafe.Pointer(pCsr)).FeState) >= CURSOR_REQUIRESEEK {
+ return btreeRestoreCursorPosition(tls, pCsr)
+ }
+ return SQLITE_OK
+ }()
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ if int32((*BtCursor)(unsafe.Pointer(pCsr)).FeState) != CURSOR_VALID {
+ return SQLITE_ABORT
+ }
+
+ saveAllCursors(tls, (*BtCursor)(unsafe.Pointer(pCsr)).FpBt, (*BtCursor)(unsafe.Pointer(pCsr)).FpgnoRoot, pCsr)
+
+ if int32((*BtCursor)(unsafe.Pointer(pCsr)).FcurFlags)&BTCF_WriteFlag == 0 {
+ return SQLITE_READONLY
+ }
+
+ return accessPayload(tls, pCsr, offset, amt, z, 1)
+}
+
+// Mark this cursor as an incremental blob cursor.
+func Xsqlite3BtreeIncrblobCursor(tls *libc.TLS, pCur uintptr) {
+ *(*U8)(unsafe.Pointer(pCur + 1)) |= U8(BTCF_Incrblob)
+ (*Btree)(unsafe.Pointer((*BtCursor)(unsafe.Pointer(pCur)).FpBtree)).FhasIncrblobCur = U8(1)
+}
+
+// Set both the "read version" (single byte at byte offset 18) and
+// "write version" (single byte at byte offset 19) fields in the database
+// header to iVersion.
+func Xsqlite3BtreeSetVersion(tls *libc.TLS, pBtree uintptr, iVersion int32) int32 {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(pBtree)).FpBt
+ var rc int32
+
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_NO_WAL))
+ if iVersion == 1 {
+ *(*U16)(unsafe.Pointer(pBt + 40)) |= U16(BTS_NO_WAL)
+ }
+
+ rc = Xsqlite3BtreeBeginTrans(tls, pBtree, 0, uintptr(0))
+ if rc == SQLITE_OK {
+ var aData uintptr = (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData
+ if int32(*(*U8)(unsafe.Pointer(aData + 18))) != int32(U8(iVersion)) || int32(*(*U8)(unsafe.Pointer(aData + 19))) != int32(U8(iVersion)) {
+ rc = Xsqlite3BtreeBeginTrans(tls, pBtree, 2, uintptr(0))
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerWrite(tls, (*MemPage)(unsafe.Pointer((*BtShared)(unsafe.Pointer(pBt)).FpPage1)).FpDbPage)
+ if rc == SQLITE_OK {
+ *(*U8)(unsafe.Pointer(aData + 18)) = U8(iVersion)
+ *(*U8)(unsafe.Pointer(aData + 19)) = U8(iVersion)
+ }
+ }
+ }
+ }
+
+ *(*U16)(unsafe.Pointer(pBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_NO_WAL))
+ return rc
+}
+
+// Return true if the cursor has a hint specified. This routine is
+// only used from within assert() statements
+func Xsqlite3BtreeCursorHasHint(tls *libc.TLS, pCsr uintptr, mask uint32) int32 {
+ return libc.Bool32(uint32((*BtCursor)(unsafe.Pointer(pCsr)).Fhints)&mask != uint32(0))
+}
+
+// Return true if the given Btree is read-only.
+func Xsqlite3BtreeIsReadonly(tls *libc.TLS, p uintptr) int32 {
+ return libc.Bool32(int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FbtsFlags)&BTS_READ_ONLY != 0)
+}
+
+// Return the size of the header added to each page by this module.
+func Xsqlite3HeaderSizeBtree(tls *libc.TLS) int32 {
+ return int32((uint64(unsafe.Sizeof(MemPage{})) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+}
+
+// If no transaction is active and the database is not a temp-db, clear
+// the in-memory pager cache.
+func Xsqlite3BtreeClearCache(tls *libc.TLS, p uintptr) {
+ var pBt uintptr = (*Btree)(unsafe.Pointer(p)).FpBt
+ if int32((*BtShared)(unsafe.Pointer(pBt)).FinTransaction) == TRANS_NONE {
+ Xsqlite3PagerClearCache(tls, (*BtShared)(unsafe.Pointer(pBt)).FpPager)
+ }
+}
+
+// Return true if the Btree passed as the only argument is sharable.
+func Xsqlite3BtreeSharable(tls *libc.TLS, p uintptr) int32 {
+ return int32((*Btree)(unsafe.Pointer(p)).Fsharable)
+}
+
+// Return the number of connections to the BtShared object accessed by
+// the Btree handle passed as the only argument. For private caches
+// this is always 1. For shared caches it may be 1 or greater.
+func Xsqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) int32 {
+ return (*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer(p)).FpBt)).FnRef
+}
+
+func findBtree(tls *libc.TLS, pErrorDb uintptr, pDb uintptr, zDb uintptr) uintptr {
+ bp := tls.Alloc(440)
+ defer tls.Free(440)
+
+ var i int32 = Xsqlite3FindDbName(tls, pDb, zDb)
+
+ if i == 1 {
+ var rc int32 = 0
+ Xsqlite3ParseObjectInit(tls, bp+16, pDb)
+ if Xsqlite3OpenTempDatabase(tls, bp+16) != 0 {
+ Xsqlite3ErrorWithMsg(tls, pErrorDb, (*Parse)(unsafe.Pointer(bp+16)).Frc, ts+3658, libc.VaList(bp, (*Parse)(unsafe.Pointer(bp+16)).FzErrMsg))
+ rc = SQLITE_ERROR
+ }
+ Xsqlite3DbFree(tls, pErrorDb, (*Parse)(unsafe.Pointer(bp+16)).FzErrMsg)
+ Xsqlite3ParseObjectReset(tls, bp+16)
+ if rc != 0 {
+ return uintptr(0)
+ }
+ }
+
+ if i < 0 {
+ Xsqlite3ErrorWithMsg(tls, pErrorDb, SQLITE_ERROR, ts+5237, libc.VaList(bp+8, zDb))
+ return uintptr(0)
+ }
+
+ return (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(pDb)).FaDb + uintptr(i)*32)).FpBt
+}
+
+func setDestPgsz(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ rc = Xsqlite3BtreeSetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, Xsqlite3BtreeGetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc), 0, 0)
+ return rc
+}
+
+func checkReadTransaction(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ if Xsqlite3BtreeTxnState(tls, p) != SQLITE_TXN_NONE {
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_ERROR, ts+5257, 0)
+ return SQLITE_ERROR
+ }
+ return SQLITE_OK
+}
+
+// Create an sqlite3_backup process to copy the contents of zSrcDb from
+// connection handle pSrcDb to zDestDb in pDestDb. If successful, return
+// a pointer to the new sqlite3_backup object.
+//
+// If an error occurs, NULL is returned and an error code and error message
+// stored in database handle pDestDb.
+func Xsqlite3_backup_init(tls *libc.TLS, pDestDb uintptr, zDestDb uintptr, pSrcDb uintptr, zSrcDb uintptr) uintptr {
+ var p uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(pSrcDb)).Fmutex)
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(pDestDb)).Fmutex)
+
+ if pSrcDb == pDestDb {
+ Xsqlite3ErrorWithMsg(tls,
+ pDestDb, SQLITE_ERROR, ts+5288, 0)
+ p = uintptr(0)
+ } else {
+ p = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Sqlite3_backup{})))
+ if !(p != 0) {
+ Xsqlite3Error(tls, pDestDb, SQLITE_NOMEM)
+ }
+ }
+
+ if p != 0 {
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc = findBtree(tls, pDestDb, pSrcDb, zSrcDb)
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest = findBtree(tls, pDestDb, pDestDb, zDestDb)
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb = pDestDb
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrcDb = pSrcDb
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext = Pgno(1)
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FisAttached = 0
+
+ if uintptr(0) == (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc || uintptr(0) == (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest ||
+ checkReadTransaction(tls, pDestDb, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest) != SQLITE_OK {
+ Xsqlite3_free(tls, p)
+ p = uintptr(0)
+ }
+ }
+ if p != 0 {
+ (*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)).FnBackup++
+ }
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(pDestDb)).Fmutex)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(pSrcDb)).Fmutex)
+ return p
+}
+
+func isFatalError(tls *libc.TLS, rc int32) int32 {
+ return libc.Bool32(rc != SQLITE_OK && rc != SQLITE_BUSY && rc != SQLITE_LOCKED)
+}
+
+func backupOnePage(tls *libc.TLS, p uintptr, iSrcPg Pgno, zSrcData uintptr, bUpdate int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pDestPager uintptr = Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)
+ var nSrcPgsz int32 = Xsqlite3BtreeGetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ var nDestPgsz int32 = Xsqlite3BtreeGetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)
+ var nCopy int32 = func() int32 {
+ if nSrcPgsz < nDestPgsz {
+ return nSrcPgsz
+ }
+ return nDestPgsz
+ }()
+ var iEnd I64 = I64(iSrcPg) * I64(nSrcPgsz)
+ var rc int32 = SQLITE_OK
+ var iOff I64
+
+ if nSrcPgsz != nDestPgsz && Xsqlite3PagerIsMemdb(tls, pDestPager) != 0 {
+ rc = SQLITE_READONLY
+ }
+
+ for iOff = iEnd - I64(nSrcPgsz); rc == SQLITE_OK && iOff < iEnd; iOff = iOff + I64(nDestPgsz) {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var iDest Pgno = Pgno(iOff/I64(nDestPgsz)) + Pgno(1)
+ if iDest == U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+U32(1) {
+ continue
+ }
+ if SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3PagerGet(tls, pDestPager, iDest, bp, 0)) &&
+ SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp)))) {
+ var zIn uintptr = zSrcData + uintptr(iOff%I64(nSrcPgsz))
+ var zDestData uintptr = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ var zOut uintptr = zDestData + uintptr(iOff%I64(nDestPgsz))
+
+ libc.X__builtin___memcpy_chk(tls, zOut, zIn, uint64(nCopy), libc.X__builtin_object_size(tls, zOut, 0))
+ *(*U8)(unsafe.Pointer(Xsqlite3PagerGetExtra(tls, *(*uintptr)(unsafe.Pointer(bp))))) = U8(0)
+ if iOff == int64(0) && bUpdate == 0 {
+ Xsqlite3Put4byte(tls, zOut+28, Xsqlite3BtreeLastPage(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc))
+ }
+ }
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return rc
+}
+
+func backupTruncateFile(tls *libc.TLS, pFile uintptr, iSize I64) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = Xsqlite3OsFileSize(tls, pFile, bp)
+ if rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp)) > iSize {
+ rc = Xsqlite3OsTruncate(tls, pFile, iSize)
+ }
+ return rc
+}
+
+func attachBackupObject(tls *libc.TLS, p uintptr) {
+ var pp uintptr
+
+ pp = Xsqlite3PagerBackupPtr(tls, Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc))
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FpNext = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FisAttached = 1
+}
+
+// Copy nPage pages from the source b-tree to the destination.
+func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32
+ var destMode int32
+ var pgszSrc int32 = 0
+ var pgszDest int32 = 0
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrcDb)).Fmutex)
+ Xsqlite3BtreeEnter(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)).Fmutex)
+ }
+
+ rc = (*Sqlite3_backup)(unsafe.Pointer(p)).Frc
+ if !(isFatalError(tls, rc) != 0) {
+ var pSrcPager uintptr = Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ var pDestPager uintptr = Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)
+ var ii int32
+ var nSrcPage int32 = -1
+ var bCloseTrans int32 = 0
+
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 && int32((*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)).FpBt)).FinTransaction) == TRANS_WRITE {
+ rc = SQLITE_BUSY
+ } else {
+ rc = SQLITE_OK
+ }
+
+ if rc == SQLITE_OK && SQLITE_TXN_NONE == Xsqlite3BtreeTxnState(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc) {
+ rc = Xsqlite3BtreeBeginTrans(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc, 0, uintptr(0))
+ bCloseTrans = 1
+ }
+
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FbDestLocked == 0 && rc == SQLITE_OK && setDestPgsz(tls, p) == SQLITE_NOMEM {
+ rc = SQLITE_NOMEM
+ }
+
+ if SQLITE_OK == rc && (*Sqlite3_backup)(unsafe.Pointer(p)).FbDestLocked == 0 &&
+ SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3BtreeBeginTrans(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, 2,
+ p+16)) {
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FbDestLocked = 1
+ }
+
+ pgszSrc = Xsqlite3BtreeGetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ pgszDest = Xsqlite3BtreeGetPageSize(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)
+ destMode = Xsqlite3PagerGetJournalMode(tls, Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest))
+ if SQLITE_OK == rc && destMode == PAGER_JOURNALMODE_WAL && pgszSrc != pgszDest {
+ rc = SQLITE_READONLY
+ }
+
+ nSrcPage = int32(Xsqlite3BtreeLastPage(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc))
+
+ for ii = 0; (nPage < 0 || ii < nPage) && (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext <= Pgno(nSrcPage) && !(rc != 0); ii++ {
+ var iSrcPg Pgno = (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext
+ if iSrcPg != U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)).FpBt)).FpageSize+U32(1) {
+ rc = Xsqlite3PagerGet(tls, pSrcPager, iSrcPg, bp, PAGER_GET_READONLY)
+ if rc == SQLITE_OK {
+ rc = backupOnePage(tls, p, iSrcPg, Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))), 0)
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext++
+ }
+ if rc == SQLITE_OK {
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FnPagecount = Pgno(nSrcPage)
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FnRemaining = Pgno(nSrcPage+1) - (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext > Pgno(nSrcPage) {
+ rc = SQLITE_DONE
+ } else if !((*Sqlite3_backup)(unsafe.Pointer(p)).FisAttached != 0) {
+ attachBackupObject(tls, p)
+ }
+ }
+
+ if rc == SQLITE_DONE {
+ if nSrcPage == 0 {
+ rc = Xsqlite3BtreeNewDb(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)
+ nSrcPage = 1
+ }
+ if rc == SQLITE_OK || rc == SQLITE_DONE {
+ rc = Xsqlite3BtreeUpdateMeta(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, 1, (*Sqlite3_backup)(unsafe.Pointer(p)).FiDestSchema+U32(1))
+ }
+ if rc == SQLITE_OK {
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3ResetAllSchemasOfConnection(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)
+ }
+ if destMode == PAGER_JOURNALMODE_WAL {
+ rc = Xsqlite3BtreeSetVersion(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, 2)
+ }
+ }
+ if rc == SQLITE_OK {
+ var nDestTruncate int32
+
+ if pgszSrc < pgszDest {
+ var ratio int32 = pgszDest / pgszSrc
+ nDestTruncate = (nSrcPage + ratio - 1) / ratio
+ if nDestTruncate == int32(U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+U32(1)) {
+ nDestTruncate--
+ }
+ } else {
+ nDestTruncate = nSrcPage * (pgszSrc / pgszDest)
+ }
+
+ if pgszSrc < pgszDest {
+ var iSize I64 = I64(pgszSrc) * I64(nSrcPage)
+ var pFile uintptr = Xsqlite3PagerFile(tls, pDestPager)
+ var iPg Pgno
+
+ var iOff I64
+ var iEnd I64
+
+ Xsqlite3PagerPagecount(tls, pDestPager, bp+8)
+ for iPg = Pgno(nDestTruncate); rc == SQLITE_OK && iPg <= Pgno(*(*int32)(unsafe.Pointer(bp + 8))); iPg++ {
+ if iPg != U32(Xsqlite3PendingByte)/(*BtShared)(unsafe.Pointer((*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+U32(1) {
+ rc = Xsqlite3PagerGet(tls, pDestPager, iPg, bp+16, 0)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerCommitPhaseOne(tls, pDestPager, uintptr(0), 1)
+ }
+
+ iEnd = func() int64 {
+ if I64(Xsqlite3PendingByte+pgszDest) < iSize {
+ return int64(Xsqlite3PendingByte + pgszDest)
+ }
+ return iSize
+ }()
+ for iOff = I64(Xsqlite3PendingByte + pgszSrc); rc == SQLITE_OK && iOff < iEnd; iOff = iOff + I64(pgszSrc) {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ var iSrcPg Pgno = Pgno(iOff/I64(pgszSrc) + int64(1))
+ rc = Xsqlite3PagerGet(tls, pSrcPager, iSrcPg, bp+24, 0)
+ if rc == SQLITE_OK {
+ var zData uintptr = Xsqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ rc = Xsqlite3OsWrite(tls, pFile, zData, pgszSrc, iOff)
+ }
+ Xsqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ }
+ if rc == SQLITE_OK {
+ rc = backupTruncateFile(tls, pFile, iSize)
+ }
+
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerSync(tls, pDestPager, uintptr(0))
+ }
+ } else {
+ Xsqlite3PagerTruncateImage(tls, pDestPager, uint32(nDestTruncate))
+ rc = Xsqlite3PagerCommitPhaseOne(tls, pDestPager, uintptr(0), 0)
+ }
+
+ if SQLITE_OK == rc &&
+ SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3BtreeCommitPhaseTwo(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, 0)) {
+ rc = SQLITE_DONE
+ }
+ }
+ }
+
+ if bCloseTrans != 0 {
+ Xsqlite3BtreeCommitPhaseOne(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc, uintptr(0))
+ Xsqlite3BtreeCommitPhaseTwo(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc, 0)
+
+ }
+
+ if rc == SQLITE_IOERR|int32(12)<<8 {
+ rc = SQLITE_NOMEM
+ }
+ (*Sqlite3_backup)(unsafe.Pointer(p)).Frc = rc
+ }
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)).Fmutex)
+ }
+ Xsqlite3BtreeLeave(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrcDb)).Fmutex)
+ return rc
+}
+
+// Release all resources associated with an sqlite3_backup* handle.
+func Xsqlite3_backup_finish(tls *libc.TLS, p uintptr) int32 {
+ var pp uintptr
+ var pSrcDb uintptr
+ var rc int32
+
+ if p == uintptr(0) {
+ return SQLITE_OK
+ }
+ pSrcDb = (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrcDb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(pSrcDb)).Fmutex)
+ Xsqlite3BtreeEnter(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)).Fmutex)
+ }
+
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ (*Btree)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)).FnBackup--
+ }
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FisAttached != 0 {
+ pp = Xsqlite3PagerBackupPtr(tls, Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc))
+
+ for *(*uintptr)(unsafe.Pointer(pp)) != p {
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 64
+
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3_backup)(unsafe.Pointer(p)).FpNext
+ }
+
+ Xsqlite3BtreeRollback(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDest, SQLITE_OK, 0)
+
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).Frc == SQLITE_DONE {
+ rc = SQLITE_OK
+ } else {
+ rc = (*Sqlite3_backup)(unsafe.Pointer(p)).Frc
+ }
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3Error(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb, rc)
+
+ Xsqlite3LeaveMutexAndCloseZombie(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)
+ }
+ Xsqlite3BtreeLeave(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).FpSrc)
+ if (*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb != 0 {
+ Xsqlite3_free(tls, p)
+ }
+ Xsqlite3LeaveMutexAndCloseZombie(tls, pSrcDb)
+ return rc
+}
+
+// Return the number of pages still to be backed up as of the most recent
+// call to sqlite3_backup_step().
+func Xsqlite3_backup_remaining(tls *libc.TLS, p uintptr) int32 {
+ return int32((*Sqlite3_backup)(unsafe.Pointer(p)).FnRemaining)
+}
+
+// Return the total number of pages in the source database as of the most
+// recent call to sqlite3_backup_step().
+func Xsqlite3_backup_pagecount(tls *libc.TLS, p uintptr) int32 {
+ return int32((*Sqlite3_backup)(unsafe.Pointer(p)).FnPagecount)
+}
+
+func backupUpdate(tls *libc.TLS, p uintptr, iPage Pgno, aData uintptr) {
+ for __ccgo := true; __ccgo; __ccgo = libc.AssignUintptr(&p, (*Sqlite3_backup)(unsafe.Pointer(p)).FpNext) != uintptr(0) {
+ if !(isFatalError(tls, (*Sqlite3_backup)(unsafe.Pointer(p)).Frc) != 0) && iPage < (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext {
+ var rc int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)).Fmutex)
+ rc = backupOnePage(tls, p, iPage, aData, 1)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Sqlite3_backup)(unsafe.Pointer(p)).FpDestDb)).Fmutex)
+
+ if rc != SQLITE_OK {
+ (*Sqlite3_backup)(unsafe.Pointer(p)).Frc = rc
+ }
+ }
+ }
+}
+
+func Xsqlite3BackupUpdate(tls *libc.TLS, pBackup uintptr, iPage Pgno, aData uintptr) {
+ if pBackup != 0 {
+ backupUpdate(tls, pBackup, iPage, aData)
+ }
+}
+
+// Restart the backup process. This is called when the pager layer
+// detects that the database has been modified by an external database
+// connection. In this case there is no way of knowing which of the
+// pages that have been copied into the destination database are still
+// valid and which are not, so the entire process needs to be restarted.
+//
+// It is assumed that the mutex associated with the BtShared object
+// corresponding to the source database is held when this function is
+// called.
+func Xsqlite3BackupRestart(tls *libc.TLS, pBackup uintptr) {
+ var p uintptr
+ for p = pBackup; p != 0; p = (*Sqlite3_backup)(unsafe.Pointer(p)).FpNext {
+ (*Sqlite3_backup)(unsafe.Pointer(p)).FiNext = Pgno(1)
+ }
+}
+
+// Copy the complete content of pBtFrom into pBtTo. A transaction
+// must be active for both files.
+//
+// The size of file pTo may be reduced by this operation. If anything
+// goes wrong, the transaction on pTo is rolled back. If successful, the
+// transaction is committed before returning.
+func Xsqlite3BtreeCopyFile(tls *libc.TLS, pTo uintptr, pFrom uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var rc int32
+ var pFd uintptr
+
+ Xsqlite3BtreeEnter(tls, pTo)
+ Xsqlite3BtreeEnter(tls, pFrom)
+
+ pFd = Xsqlite3PagerFile(tls, Xsqlite3BtreePager(tls, pTo))
+ if !((*Sqlite3_file)(unsafe.Pointer(pFd)).FpMethods != 0) {
+ goto __1
+ }
+ *(*I64)(unsafe.Pointer(bp)) = I64(Xsqlite3BtreeGetPageSize(tls, pFrom)) * I64(Xsqlite3BtreeLastPage(tls, pFrom))
+ rc = Xsqlite3OsFileControl(tls, pFd, SQLITE_FCNTL_OVERWRITE, bp)
+ if !(rc == SQLITE_NOTFOUND) {
+ goto __2
+ }
+ rc = SQLITE_OK
+__2:
+ ;
+ if !(rc != 0) {
+ goto __3
+ }
+ goto copy_finished
+__3:
+ ;
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(Sqlite3_backup{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ (*Sqlite3_backup)(unsafe.Pointer(bp + 8)).FpSrcDb = (*Btree)(unsafe.Pointer(pFrom)).Fdb
+ (*Sqlite3_backup)(unsafe.Pointer(bp + 8)).FpSrc = pFrom
+ (*Sqlite3_backup)(unsafe.Pointer(bp + 8)).FpDest = pTo
+ (*Sqlite3_backup)(unsafe.Pointer(bp + 8)).FiNext = Pgno(1)
+
+ Xsqlite3_backup_step(tls, bp+8, 0x7FFFFFFF)
+
+ rc = Xsqlite3_backup_finish(tls, bp+8)
+ if !(rc == SQLITE_OK) {
+ goto __4
+ }
+ *(*U16)(unsafe.Pointer((*Btree)(unsafe.Pointer(pTo)).FpBt + 40)) &= libc.Uint16FromInt32(libc.CplInt32(BTS_PAGESIZE_FIXED))
+ goto __5
+__4:
+ Xsqlite3PagerClearCache(tls, Xsqlite3BtreePager(tls, (*Sqlite3_backup)(unsafe.Pointer(bp+8)).FpDest))
+__5:
+ ;
+copy_finished:
+ Xsqlite3BtreeLeave(tls, pFrom)
+ Xsqlite3BtreeLeave(tls, pTo)
+ return rc
+}
+
+func vdbeMemRenderNum(tls *libc.TLS, sz int32, zBuf uintptr, p uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Int != 0 {
+ (*Mem)(unsafe.Pointer(p)).Fn = Xsqlite3Int64ToText(tls, *(*I64)(unsafe.Pointer(p)), zBuf)
+ } else {
+ Xsqlite3StrAccumInit(tls, bp+8, uintptr(0), zBuf, sz, 0)
+ Xsqlite3_str_appendf(tls, bp+8, ts+5328,
+ libc.VaList(bp, func() float64 {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_IntReal != 0 {
+ return float64(*(*I64)(unsafe.Pointer(p)))
+ }
+ return *(*float64)(unsafe.Pointer(p))
+ }()))
+
+ *(*int8)(unsafe.Pointer(zBuf + uintptr((*StrAccum)(unsafe.Pointer(bp+8)).FnChar))) = int8(0)
+ (*Mem)(unsafe.Pointer(p)).Fn = int32((*StrAccum)(unsafe.Pointer(bp + 8)).FnChar)
+ }
+}
+
+// If pMem is an object with a valid string representation, this routine
+// ensures the internal encoding for the string representation is
+// 'desiredEnc', one of SQLITE_UTF8, SQLITE_UTF16LE or SQLITE_UTF16BE.
+//
+// If pMem is not a string object, or the encoding of the string
+// representation is already stored using the requested encoding, then this
+// routine is a no-op.
+//
+// SQLITE_OK is returned if the conversion is successful (or not required).
+// SQLITE_NOMEM may be returned if a malloc() fails during conversion
+// between formats.
+func Xsqlite3VdbeChangeEncoding(tls *libc.TLS, pMem uintptr, desiredEnc int32) int32 {
+ var rc int32
+
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Str != 0) {
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = U8(desiredEnc)
+ return SQLITE_OK
+ }
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fenc) == desiredEnc {
+ return SQLITE_OK
+ }
+
+ rc = Xsqlite3VdbeMemTranslate(tls, pMem, U8(desiredEnc))
+
+ return rc
+}
+
+// Make sure pMem->z points to a writable allocation of at least n bytes.
+//
+// If the bPreserve argument is true, then copy of the content of
+// pMem->z into the new allocation. pMem must be either a string or
+// blob if bPreserve is true. If bPreserve is false, any prior content
+// in pMem->z is discarded.
+func Xsqlite3VdbeMemGrow(tls *libc.TLS, pMem uintptr, n int32, bPreserve int32) int32 {
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc > 0 && bPreserve != 0 && (*Mem)(unsafe.Pointer(pMem)).Fz == (*Mem)(unsafe.Pointer(pMem)).FzMalloc {
+ if (*Mem)(unsafe.Pointer(pMem)).Fdb != 0 {
+ (*Mem)(unsafe.Pointer(pMem)).Fz = libc.AssignPtrUintptr(pMem+40, Xsqlite3DbReallocOrFree(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).Fz, uint64(n)))
+ } else {
+ (*Mem)(unsafe.Pointer(pMem)).FzMalloc = Xsqlite3Realloc(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, uint64(n))
+ if (*Mem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) {
+ Xsqlite3_free(tls, (*Mem)(unsafe.Pointer(pMem)).Fz)
+ }
+ (*Mem)(unsafe.Pointer(pMem)).Fz = (*Mem)(unsafe.Pointer(pMem)).FzMalloc
+ }
+ bPreserve = 0
+ } else {
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc > 0 {
+ Xsqlite3DbFreeNN(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ }
+ (*Mem)(unsafe.Pointer(pMem)).FzMalloc = Xsqlite3DbMallocRaw(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, uint64(n))
+ }
+ if (*Mem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) {
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fz = uintptr(0)
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = 0
+ return SQLITE_NOMEM
+ } else {
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = Xsqlite3DbMallocSize(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ }
+
+ if bPreserve != 0 && (*Mem)(unsafe.Pointer(pMem)).Fz != 0 {
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pMem)).FzMalloc, (*Mem)(unsafe.Pointer(pMem)).Fz, uint64((*Mem)(unsafe.Pointer(pMem)).Fn), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pMem)).FzMalloc, 0))
+ }
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Dyn != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Mem)(unsafe.Pointer(pMem)).FxDel})).f(tls, (*Mem)(unsafe.Pointer(pMem)).Fz)
+ }
+
+ (*Mem)(unsafe.Pointer(pMem)).Fz = (*Mem)(unsafe.Pointer(pMem)).FzMalloc
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Dyn | MEM_Ephem | MEM_Static))
+ return SQLITE_OK
+}
+
+// Change the pMem->zMalloc allocation to be at least szNew bytes.
+// If pMem->zMalloc already meets or exceeds the requested size, this
+// routine is a no-op.
+//
+// Any prior string or blob content in the pMem object may be discarded.
+// The pMem->xDel destructor is called, if it exists. Though MEM_Str
+// and MEM_Blob values may be discarded, MEM_Int, MEM_Real, MEM_IntReal,
+// and MEM_Null values are preserved.
+//
+// Return SQLITE_OK on success or an error code (probably SQLITE_NOMEM)
+// if unable to complete the resizing.
+func Xsqlite3VdbeMemClearAndResize(tls *libc.TLS, pMem uintptr, szNew int32) int32 {
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc < szNew {
+ return Xsqlite3VdbeMemGrow(tls, pMem, szNew, 0)
+ }
+
+ (*Mem)(unsafe.Pointer(pMem)).Fz = (*Mem)(unsafe.Pointer(pMem)).FzMalloc
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= U16(MEM_Null | MEM_Int | MEM_Real | MEM_IntReal)
+ return SQLITE_OK
+}
+
+func vdbeMemAddTerminator(tls *libc.TLS, pMem uintptr) int32 {
+ if Xsqlite3VdbeMemGrow(tls, pMem, (*Mem)(unsafe.Pointer(pMem)).Fn+3, 1) != 0 {
+ return SQLITE_NOMEM
+ }
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn+1))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr((*Mem)(unsafe.Pointer(pMem)).Fn+2))) = int8(0)
+ *(*U16)(unsafe.Pointer(pMem + 20)) |= U16(MEM_Term)
+ return SQLITE_OK
+}
+
+// Change pMem so that its MEM_Str or MEM_Blob value is stored in
+// MEM.zMalloc, where it can be safely written.
+//
+// Return SQLITE_OK on success or SQLITE_NOMEM if malloc fails.
+func Xsqlite3VdbeMemMakeWriteable(tls *libc.TLS, pMem uintptr) int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ if func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pMem)
+ }
+ return 0
+ }() != 0 {
+ return SQLITE_NOMEM
+ }
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc == 0 || (*Mem)(unsafe.Pointer(pMem)).Fz != (*Mem)(unsafe.Pointer(pMem)).FzMalloc {
+ var rc int32 = vdbeMemAddTerminator(tls, pMem)
+ if rc != 0 {
+ return rc
+ }
+ }
+ }
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Ephem))
+
+ return SQLITE_OK
+}
+
+// If the given Mem* has a zero-filled tail, turn it into an ordinary
+// blob stored in dynamically allocated space.
+func Xsqlite3VdbeMemExpandBlob(tls *libc.TLS, pMem uintptr) int32 {
+ var nByte int32
+
+ nByte = (*Mem)(unsafe.Pointer(pMem)).Fn + *(*int32)(unsafe.Pointer(pMem))
+ if nByte <= 0 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Blob == 0 {
+ return SQLITE_OK
+ }
+ nByte = 1
+ }
+ if Xsqlite3VdbeMemGrow(tls, pMem, nByte, 1) != 0 {
+ return SQLITE_NOMEM
+ }
+
+ libc.X__builtin___memset_chk(tls, (*Mem)(unsafe.Pointer(pMem)).Fz+uintptr((*Mem)(unsafe.Pointer(pMem)).Fn), 0, uint64(*(*int32)(unsafe.Pointer(pMem))), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pMem)).Fz+uintptr((*Mem)(unsafe.Pointer(pMem)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pMem + 16)) += *(*int32)(unsafe.Pointer(pMem))
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Zero | MEM_Term))
+ return SQLITE_OK
+}
+
+// Make sure the given Mem is \u0000 terminated.
+func Xsqlite3VdbeMemNulTerminate(tls *libc.TLS, pMem uintptr) int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Term|MEM_Str) != MEM_Str {
+ return SQLITE_OK
+ } else {
+ return vdbeMemAddTerminator(tls, pMem)
+ }
+ return int32(0)
+}
+
+// Add MEM_Str to the set of representations for the given Mem. This
+// routine is only called if pMem is a number of some kind, not a NULL
+// or a BLOB.
+//
+// Existing representations MEM_Int, MEM_Real, or MEM_IntReal are invalidated
+// if bForce is true but are retained if bForce is false.
+//
+// A MEM_Null value will never be passed to this function. This function is
+// used for converting values to text for returning to the user (i.e. via
+// sqlite3_value_text()), or for ensuring that values to be used as btree
+// keys are strings. In the former case a NULL pointer is returned the
+// user and the latter is an internal programming error.
+func Xsqlite3VdbeMemStringify(tls *libc.TLS, pMem uintptr, enc U8, bForce U8) int32 {
+ var nByte int32 = 32
+
+ if Xsqlite3VdbeMemClearAndResize(tls, pMem, nByte) != 0 {
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = U8(0)
+ return SQLITE_NOMEM
+ }
+
+ vdbeMemRenderNum(tls, nByte, (*Mem)(unsafe.Pointer(pMem)).Fz, pMem)
+
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = U8(SQLITE_UTF8)
+ *(*U16)(unsafe.Pointer(pMem + 20)) |= U16(MEM_Str | MEM_Term)
+ if bForce != 0 {
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int | MEM_Real | MEM_IntReal))
+ }
+ Xsqlite3VdbeChangeEncoding(tls, pMem, int32(enc))
+ return SQLITE_OK
+}
+
+// Memory cell pMem contains the context of an aggregate function.
+// This routine calls the finalize method for that function. The
+// result of the aggregate is stored back into pMem.
+//
+// Return SQLITE_ERROR if the finalizer reports an error. SQLITE_OK
+// otherwise.
+func Xsqlite3VdbeMemFinalize(tls *libc.TLS, pMem uintptr, pFunc uintptr) int32 {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Sqlite3_context{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+56, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp+56, 0))
+ (*Mem)(unsafe.Pointer(bp + 56)).Fflags = U16(MEM_Null)
+ (*Mem)(unsafe.Pointer(bp + 56)).Fdb = (*Mem)(unsafe.Pointer(pMem)).Fdb
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpOut = bp + 56
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpMem = pMem
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpFunc = pFunc
+ (*Sqlite3_context)(unsafe.Pointer(bp)).Fenc = (*Sqlite3)(unsafe.Pointer((*Mem)(unsafe.Pointer(bp + 56)).Fdb)).Fenc
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer(pFunc)).FxFinalize})).f(tls, bp)
+
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc > 0 {
+ Xsqlite3DbFreeNN(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ }
+ libc.X__builtin___memcpy_chk(tls, pMem, bp+56, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, pMem, 0))
+ return (*Sqlite3_context)(unsafe.Pointer(bp)).FisError
+}
+
+// Memory cell pAccum contains the context of an aggregate function.
+// This routine calls the xValue method for that function and stores
+// the results in memory cell pMem.
+//
+// SQLITE_ERROR is returned if xValue() reports an error. SQLITE_OK
+// otherwise.
+func Xsqlite3VdbeMemAggValue(tls *libc.TLS, pAccum uintptr, pOut uintptr, pFunc uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Sqlite3_context{})), libc.X__builtin_object_size(tls, bp, 0))
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpOut = pOut
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpMem = pAccum
+ (*Sqlite3_context)(unsafe.Pointer(bp)).FpFunc = pFunc
+ (*Sqlite3_context)(unsafe.Pointer(bp)).Fenc = (*Sqlite3)(unsafe.Pointer((*Mem)(unsafe.Pointer(pAccum)).Fdb)).Fenc
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer(pFunc)).FxValue})).f(tls, bp)
+ return (*Sqlite3_context)(unsafe.Pointer(bp)).FisError
+}
+
+func vdbeMemClearExternAndSetNull(tls *libc.TLS, p uintptr) {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Agg != 0 {
+ Xsqlite3VdbeMemFinalize(tls, p, *(*uintptr)(unsafe.Pointer(p)))
+
+ }
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Dyn != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Mem)(unsafe.Pointer(p)).FxDel})).f(tls, (*Mem)(unsafe.Pointer(p)).Fz)
+ }
+ (*Mem)(unsafe.Pointer(p)).Fflags = U16(MEM_Null)
+}
+
+func vdbeMemClear(tls *libc.TLS, p uintptr) {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ vdbeMemClearExternAndSetNull(tls, p)
+ }
+ if (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ Xsqlite3DbFreeNN(tls, (*Mem)(unsafe.Pointer(p)).Fdb, (*Mem)(unsafe.Pointer(p)).FzMalloc)
+ (*Mem)(unsafe.Pointer(p)).FszMalloc = 0
+ }
+ (*Mem)(unsafe.Pointer(p)).Fz = uintptr(0)
+}
+
+// Release any memory resources held by the Mem. Both the memory that is
+// free by Mem.xDel and the Mem.zMalloc allocation are freed.
+//
+// Use this routine prior to clean up prior to abandoning a Mem, or to
+// reset a Mem back to its minimum memory utilization.
+//
+// Use sqlite3VdbeMemSetNull() to release just the Mem.xDel space
+// prior to inserting new content into the Mem.
+func Xsqlite3VdbeMemRelease(tls *libc.TLS, p uintptr) {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 || (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ vdbeMemClear(tls, p)
+ }
+}
+
+// Like sqlite3VdbeMemRelease() but faster for cases where we
+// know in advance that the Mem is not MEM_Dyn or MEM_Agg.
+func Xsqlite3VdbeMemReleaseMalloc(tls *libc.TLS, p uintptr) {
+ if (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ vdbeMemClear(tls, p)
+ }
+}
+
+func doubleToInt64(tls *libc.TLS, r float64) I64 {
+ if r <= float64(minInt) {
+ return minInt
+ } else if r >= float64(maxInt) {
+ return maxInt
+ } else {
+ return I64(r)
+ }
+ return I64(0)
+}
+
+var maxInt I64 = int64(0xffffffff) | int64(0x7fffffff)<<32
+var minInt I64 = int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+
+func memIntValue(tls *libc.TLS, pMem uintptr) I64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*I64)(unsafe.Pointer(bp)) = int64(0)
+ Xsqlite3Atoi64(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, bp, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc)
+ return *(*I64)(unsafe.Pointer(bp))
+}
+
+func Xsqlite3VdbeIntValue(tls *libc.TLS, pMem uintptr) I64 {
+ var flags int32
+
+ flags = int32((*Mem)(unsafe.Pointer(pMem)).Fflags)
+ if flags&(MEM_Int|MEM_IntReal) != 0 {
+ return *(*I64)(unsafe.Pointer(pMem))
+ } else if flags&MEM_Real != 0 {
+ return doubleToInt64(tls, *(*float64)(unsafe.Pointer(pMem)))
+ } else if flags&(MEM_Str|MEM_Blob) != 0 && (*Mem)(unsafe.Pointer(pMem)).Fz != uintptr(0) {
+ return memIntValue(tls, pMem)
+ } else {
+ return int64(0)
+ }
+ return I64(0)
+}
+
+func memRealValue(tls *libc.TLS, pMem uintptr) float64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*float64)(unsafe.Pointer(bp)) = float64(0)
+ Xsqlite3AtoF(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, bp, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc)
+ return *(*float64)(unsafe.Pointer(bp))
+}
+
+func Xsqlite3VdbeRealValue(tls *libc.TLS, pMem uintptr) float64 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Real != 0 {
+ return *(*float64)(unsafe.Pointer(pMem))
+ } else if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ return float64(*(*I64)(unsafe.Pointer(pMem)))
+ } else if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ return memRealValue(tls, pMem)
+ } else {
+ return float64(0)
+ }
+ return float64(0)
+}
+
+// Return 1 if pMem represents true, and return 0 if pMem represents false.
+// Return the value ifNull if pMem is NULL.
+func Xsqlite3VdbeBooleanValue(tls *libc.TLS, pMem uintptr, ifNull int32) int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ return libc.Bool32(*(*I64)(unsafe.Pointer(pMem)) != int64(0))
+ }
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Null != 0 {
+ return ifNull
+ }
+ return libc.Bool32(Xsqlite3VdbeRealValue(tls, pMem) != 0.0)
+}
+
+// The MEM structure is already a MEM_Real or MEM_IntReal. Try to
+// make it a MEM_Int if we can.
+func Xsqlite3VdbeIntegerAffinity(tls *libc.TLS, pMem uintptr) {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_IntReal != 0 {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ } else {
+ var ix I64 = doubleToInt64(tls, *(*float64)(unsafe.Pointer(pMem)))
+
+ if *(*float64)(unsafe.Pointer(pMem)) == float64(ix) && ix > int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) && ix < int64(0xffffffff)|int64(0x7fffffff)<<32 {
+ *(*I64)(unsafe.Pointer(pMem)) = ix
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ }
+ }
+}
+
+// Convert pMem to type integer. Invalidate any prior representations.
+func Xsqlite3VdbeMemIntegerify(tls *libc.TLS, pMem uintptr) int32 {
+ *(*I64)(unsafe.Pointer(pMem)) = Xsqlite3VdbeIntValue(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ return SQLITE_OK
+}
+
+// Convert pMem so that it is of type MEM_Real.
+// Invalidate any prior representations.
+func Xsqlite3VdbeMemRealify(tls *libc.TLS, pMem uintptr) int32 {
+ *(*float64)(unsafe.Pointer(pMem)) = Xsqlite3VdbeRealValue(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Real)
+ return SQLITE_OK
+}
+
+// Compare a floating point value to an integer. Return true if the two
+// values are the same within the precision of the floating point value.
+//
+// This function assumes that i was obtained by assignment from r1.
+//
+// For some versions of GCC on 32-bit machines, if you do the more obvious
+// comparison of "r1==(double)i" you sometimes get an answer of false even
+// though the r1 and (double)i values are bit-for-bit the same.
+func Xsqlite3RealSameAsInt(tls *libc.TLS, r1 float64, i Sqlite3_int64) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+ *(*float64)(unsafe.Pointer(bp)) = r1
+
+ *(*float64)(unsafe.Pointer(bp + 8)) = float64(i)
+ return libc.Bool32(*(*float64)(unsafe.Pointer(bp)) == 0.0 ||
+ libc.Xmemcmp(tls, bp, bp+8, uint64(unsafe.Sizeof(float64(0)))) == 0 &&
+ i >= -2251799813685248 && i < 2251799813685248)
+}
+
+// Convert a floating point value to its closest integer. Do so in
+// a way that avoids 'outside the range of representable values' warnings
+// from UBSAN.
+func Xsqlite3RealToI64(tls *libc.TLS, r float64) I64 {
+ if r <= float64(int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32)) {
+ return int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ }
+ if r >= float64(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ return int64(0xffffffff) | int64(0x7fffffff)<<32
+ }
+ return I64(r)
+}
+
+// Convert pMem so that it has type MEM_Real or MEM_Int.
+// Invalidate any prior representations.
+//
+// Every effort is made to force the conversion, even if the input
+// is a string that does not look completely like a number. Convert
+// as much of the string as we can and ignore the rest.
+func Xsqlite3VdbeMemNumerify(tls *libc.TLS, pMem uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_Real|MEM_IntReal|MEM_Null) == 0 {
+ var rc int32
+
+ rc = Xsqlite3AtoF(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, pMem, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc)
+ if (rc == 0 || rc == 1) && Xsqlite3Atoi64(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, bp, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc) <= 1 ||
+ Xsqlite3RealSameAsInt(tls, *(*float64)(unsafe.Pointer(pMem)), libc.AssignPtrInt64(bp, Xsqlite3RealToI64(tls, *(*float64)(unsafe.Pointer(pMem))))) != 0 {
+ *(*I64)(unsafe.Pointer(pMem)) = *(*Sqlite3_int64)(unsafe.Pointer(bp))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ } else {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Real)
+ }
+ }
+
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Str | MEM_Blob | MEM_Zero))
+ return SQLITE_OK
+}
+
+// Cast the datatype of the value in pMem according to the affinity
+// "aff". Casting is different from applying affinity in that a cast
+// is forced. In other words, the value is converted into the desired
+// affinity even if that results in loss of data. This routine is
+// used (for example) to implement the SQL "cast()" operator.
+func Xsqlite3VdbeMemCast(tls *libc.TLS, pMem uintptr, aff U8, encoding U8) int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Null != 0 {
+ return SQLITE_OK
+ }
+ switch int32(aff) {
+ case SQLITE_AFF_BLOB:
+ {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Blob == 0 {
+ Xsqlite3ValueApplyAffinity(tls, pMem, uint8(SQLITE_AFF_TEXT), encoding)
+
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Str != 0 {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Blob)
+ }
+ } else {
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_TypeMask & libc.CplInt32(MEM_Blob)))
+ }
+ break
+
+ }
+ case SQLITE_AFF_NUMERIC:
+ {
+ Xsqlite3VdbeMemNumerify(tls, pMem)
+ break
+
+ }
+ case SQLITE_AFF_INTEGER:
+ {
+ Xsqlite3VdbeMemIntegerify(tls, pMem)
+ break
+
+ }
+ case SQLITE_AFF_REAL:
+ {
+ Xsqlite3VdbeMemRealify(tls, pMem)
+ break
+
+ }
+ default:
+ {
+ *(*U16)(unsafe.Pointer(pMem + 20)) |= U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & MEM_Blob >> 3)
+ Xsqlite3ValueApplyAffinity(tls, pMem, uint8(SQLITE_AFF_TEXT), encoding)
+
+ *(*U16)(unsafe.Pointer(pMem + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int | MEM_Real | MEM_IntReal | MEM_Blob | MEM_Zero))
+ if int32(encoding) != SQLITE_UTF8 {
+ *(*int32)(unsafe.Pointer(pMem + 16)) &= libc.CplInt32(1)
+ }
+ return Xsqlite3VdbeChangeEncoding(tls, pMem, int32(encoding))
+
+ }
+ }
+ return SQLITE_OK
+}
+
+// Initialize bulk memory to be a consistent Mem object.
+//
+// The minimum amount of initialization feasible is performed.
+func Xsqlite3VdbeMemInit(tls *libc.TLS, pMem uintptr, db uintptr, flags U16) {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = flags
+ (*Mem)(unsafe.Pointer(pMem)).Fdb = db
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = 0
+}
+
+// Delete any previous value and set the value stored in *pMem to NULL.
+//
+// This routine calls the Mem.xDel destructor to dispose of values that
+// require the destructor. But it preserves the Mem.zMalloc memory allocation.
+// To free all resources, use sqlite3VdbeMemRelease(), which both calls this
+// routine to invoke the destructor and deallocates Mem.zMalloc.
+//
+// Use this routine to reset the Mem prior to insert a new value.
+//
+// Use sqlite3VdbeMemRelease() to complete erase the Mem prior to abandoning it.
+func Xsqlite3VdbeMemSetNull(tls *libc.TLS, pMem uintptr) {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ vdbeMemClearExternAndSetNull(tls, pMem)
+ } else {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Null)
+ }
+}
+
+func Xsqlite3ValueSetNull(tls *libc.TLS, p uintptr) {
+ Xsqlite3VdbeMemSetNull(tls, p)
+}
+
+// Delete any previous value and set the value to be a BLOB of length
+// n containing all zeros.
+func Xsqlite3VdbeMemSetZeroBlob(tls *libc.TLS, pMem uintptr, n int32) {
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Blob | MEM_Zero)
+ (*Mem)(unsafe.Pointer(pMem)).Fn = 0
+ if n < 0 {
+ n = 0
+ }
+ *(*int32)(unsafe.Pointer(pMem)) = n
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = U8(SQLITE_UTF8)
+ (*Mem)(unsafe.Pointer(pMem)).Fz = uintptr(0)
+}
+
+func vdbeReleaseAndSetInt64(tls *libc.TLS, pMem uintptr, val I64) {
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ *(*I64)(unsafe.Pointer(pMem)) = val
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+}
+
+// Delete any previous value and set the value stored in *pMem to val,
+// manifest type INTEGER.
+func Xsqlite3VdbeMemSetInt64(tls *libc.TLS, pMem uintptr, val I64) {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ vdbeReleaseAndSetInt64(tls, pMem, val)
+ } else {
+ *(*I64)(unsafe.Pointer(pMem)) = val
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+ }
+}
+
+// A no-op destructor
+func Xsqlite3NoopDestructor(tls *libc.TLS, p uintptr) {
+ _ = p
+}
+
+// Set the value stored in *pMem should already be a NULL.
+// Also store a pointer to go with it.
+func Xsqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) {
+ vdbeMemClear(tls, pMem)
+ *(*uintptr)(unsafe.Pointer(pMem)) = func() uintptr {
+ if zPType != 0 {
+ return zPType
+ }
+ return ts + 1547
+ }()
+ (*Mem)(unsafe.Pointer(pMem)).Fz = pPtr
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Null | MEM_Dyn | MEM_Subtype | MEM_Term)
+ (*Mem)(unsafe.Pointer(pMem)).FeSubtype = U8('p')
+ (*Mem)(unsafe.Pointer(pMem)).FxDel = func() uintptr {
+ if xDestructor != 0 {
+ return xDestructor
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3NoopDestructor}))
+ }()
+}
+
+// Delete any previous value and set the value stored in *pMem to val,
+// manifest type REAL.
+func Xsqlite3VdbeMemSetDouble(tls *libc.TLS, pMem uintptr, val float64) {
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ if !(Xsqlite3IsNaN(tls, val) != 0) {
+ *(*float64)(unsafe.Pointer(pMem)) = val
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Real)
+ }
+}
+
+// Delete any previous value and set the value of pMem to be an
+// empty boolean index.
+//
+// Return SQLITE_OK on success and SQLITE_NOMEM if a memory allocation
+// error occurs.
+func Xsqlite3VdbeMemSetRowSet(tls *libc.TLS, pMem uintptr) int32 {
+ var db uintptr = (*Mem)(unsafe.Pointer(pMem)).Fdb
+ var p uintptr
+
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ p = Xsqlite3RowSetInit(tls, db)
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Mem)(unsafe.Pointer(pMem)).Fz = p
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Blob | MEM_Dyn)
+ (*Mem)(unsafe.Pointer(pMem)).FxDel = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3RowSetDelete}))
+ return SQLITE_OK
+}
+
+// Return true if the Mem object contains a TEXT or BLOB that is
+// too large - whose size exceeds SQLITE_MAX_LENGTH.
+func Xsqlite3VdbeMemTooBig(tls *libc.TLS, p uintptr) int32 {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ var n int32 = (*Mem)(unsafe.Pointer(p)).Fn
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Zero != 0 {
+ n = n + *(*int32)(unsafe.Pointer(p))
+ }
+ return libc.Bool32(n > *(*int32)(unsafe.Pointer((*Mem)(unsafe.Pointer(p)).Fdb + 136)))
+ }
+ return 0
+}
+
+func vdbeClrCopy(tls *libc.TLS, pTo uintptr, pFrom uintptr, eType int32) {
+ vdbeMemClearExternAndSetNull(tls, pTo)
+
+ Xsqlite3VdbeMemShallowCopy(tls, pTo, pFrom, eType)
+}
+
+func Xsqlite3VdbeMemShallowCopy(tls *libc.TLS, pTo uintptr, pFrom uintptr, srcType int32) {
+ if int32((*Mem)(unsafe.Pointer(pTo)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ vdbeClrCopy(tls, pTo, pFrom, srcType)
+ return
+ }
+ libc.X__builtin___memcpy_chk(tls, pTo, pFrom, uint64(uintptr(0)+24), libc.X__builtin_object_size(tls, pTo, 0))
+ if int32((*Mem)(unsafe.Pointer(pFrom)).Fflags)&MEM_Static == 0 {
+ *(*U16)(unsafe.Pointer(pTo + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Dyn | MEM_Static | MEM_Ephem))
+
+ *(*U16)(unsafe.Pointer(pTo + 20)) |= U16(srcType)
+ }
+}
+
+// Make a full copy of pFrom into pTo. Prior contents of pTo are
+// freed before the copy is made.
+func Xsqlite3VdbeMemCopy(tls *libc.TLS, pTo uintptr, pFrom uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if int32((*Mem)(unsafe.Pointer(pTo)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ vdbeMemClearExternAndSetNull(tls, pTo)
+ }
+ libc.X__builtin___memcpy_chk(tls, pTo, pFrom, uint64(uintptr(0)+24), libc.X__builtin_object_size(tls, pTo, 0))
+ *(*U16)(unsafe.Pointer(pTo + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Dyn))
+ if int32((*Mem)(unsafe.Pointer(pTo)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ if 0 == int32((*Mem)(unsafe.Pointer(pFrom)).Fflags)&MEM_Static {
+ *(*U16)(unsafe.Pointer(pTo + 20)) |= U16(MEM_Ephem)
+ rc = Xsqlite3VdbeMemMakeWriteable(tls, pTo)
+ }
+ }
+
+ return rc
+}
+
+// Transfer the contents of pFrom to pTo. Any existing value in pTo is
+// freed. If pFrom contains ephemeral data, a copy is made.
+//
+// pFrom contains an SQL NULL when this routine returns.
+func Xsqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) {
+ Xsqlite3VdbeMemRelease(tls, pTo)
+ libc.X__builtin___memcpy_chk(tls, pTo, pFrom, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, pTo, 0))
+ (*Mem)(unsafe.Pointer(pFrom)).Fflags = U16(MEM_Null)
+ (*Mem)(unsafe.Pointer(pFrom)).FszMalloc = 0
+}
+
+// Change the value of a Mem to be a string or a BLOB.
+//
+// The memory management strategy depends on the value of the xDel
+// parameter. If the value passed is SQLITE_TRANSIENT, then the
+// string is copied into a (possibly existing) buffer managed by the
+// Mem structure. Otherwise, any existing buffer is freed and the
+// pointer copied.
+//
+// If the string is too large (if it exceeds the SQLITE_LIMIT_LENGTH
+// size limit) then no memory allocation occurs. If the string can be
+// stored without allocating memory, then it is. If a memory allocation
+// is required to store the string, then value of pMem is unchanged. In
+// either case, SQLITE_TOOBIG is returned.
+//
+// The "enc" parameter is the text encoding for the string, or zero
+// to store a blob.
+//
+// If n is negative, then the string consists of all bytes up to but
+// excluding the first zero character. The n parameter must be
+// non-negative for blobs.
+func Xsqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n I64, enc U8, xDel uintptr) int32 {
+ var nByte I64 = n
+ var iLimit int32
+ var flags U16
+
+ if !(z != 0) {
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ return SQLITE_OK
+ }
+
+ if (*Mem)(unsafe.Pointer(pMem)).Fdb != 0 {
+ iLimit = *(*int32)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fdb + 136))
+ } else {
+ iLimit = SQLITE_MAX_LENGTH
+ }
+ if nByte < int64(0) {
+ if int32(enc) == SQLITE_UTF8 {
+ nByte = I64(libc.Xstrlen(tls, z))
+ } else {
+ for nByte = int64(0); nByte <= I64(iLimit) && int32(*(*int8)(unsafe.Pointer(z + uintptr(nByte))))|int32(*(*int8)(unsafe.Pointer(z + uintptr(nByte+int64(1))))) != 0; nByte = nByte + int64(2) {
+ }
+ }
+ flags = U16(MEM_Str | MEM_Term)
+ } else if int32(enc) == 0 {
+ flags = U16(MEM_Blob)
+ enc = U8(SQLITE_UTF8)
+ } else {
+ flags = U16(MEM_Str)
+ }
+ if nByte > I64(iLimit) {
+ if xDel != 0 && xDel != libc.UintptrFromInt32(-1) {
+ if xDel == *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})) {
+ Xsqlite3DbFree(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, z)
+ } else {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDel})).f(tls, z)
+ }
+ }
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ return Xsqlite3ErrorToParser(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, SQLITE_TOOBIG)
+ }
+
+ if xDel == libc.UintptrFromInt32(-1) {
+ var nAlloc I64 = nByte
+ if int32(flags)&MEM_Term != 0 {
+ nAlloc = nAlloc + func() int64 {
+ if int32(enc) == SQLITE_UTF8 {
+ return int64(1)
+ }
+ return int64(2)
+ }()
+ }
+
+ if Xsqlite3VdbeMemClearAndResize(tls, pMem, func() int32 {
+ if nAlloc > int64(32) {
+ return int32(nAlloc)
+ }
+ return 32
+ }()) != 0 {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, z, uint64(nAlloc), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, 0))
+ } else {
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fz = z
+ if xDel == *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})) {
+ (*Mem)(unsafe.Pointer(pMem)).FzMalloc = (*Mem)(unsafe.Pointer(pMem)).Fz
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = Xsqlite3DbMallocSize(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ } else {
+ (*Mem)(unsafe.Pointer(pMem)).FxDel = xDel
+ flags = U16(int32(flags) | func() int32 {
+ if xDel == uintptr(0) {
+ return MEM_Static
+ }
+ return MEM_Dyn
+ }())
+ }
+ }
+
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32(nByte & int64(0x7fffffff))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = flags
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = enc
+
+ if int32(enc) > SQLITE_UTF8 && Xsqlite3VdbeMemHandleBom(tls, pMem) != 0 {
+ return SQLITE_NOMEM
+ }
+
+ return SQLITE_OK
+}
+
+// Move data out of a btree key or data field and into a Mem structure.
+// The data is payload from the entry that pCur is currently pointing
+// to. offset and amt determine what portion of the data or key to retrieve.
+// The result is written into the pMem element.
+//
+// The pMem object must have been initialized. This routine will use
+// pMem->zMalloc to hold the content from the btree, if possible. New
+// pMem->zMalloc space will be allocated if necessary. The calling routine
+// is responsible for making sure that the pMem object is eventually
+// destroyed.
+//
+// If this routine fails for any reason (malloc returns NULL or unable
+// to read from the disk) then the pMem is left in an inconsistent state.
+func Xsqlite3VdbeMemFromBtree(tls *libc.TLS, pCur uintptr, offset U32, amt U32, pMem uintptr) int32 {
+ var rc int32
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Null)
+ if Xsqlite3BtreeMaxRecordSize(tls, pCur) < Sqlite3_int64(offset+amt) {
+ return Xsqlite3CorruptError(tls, 81630)
+ }
+ if SQLITE_OK == libc.AssignInt32(&rc, Xsqlite3VdbeMemClearAndResize(tls, pMem, int32(amt+U32(1)))) {
+ rc = Xsqlite3BtreePayload(tls, pCur, offset, amt, (*Mem)(unsafe.Pointer(pMem)).Fz)
+ if rc == SQLITE_OK {
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pMem)).Fz + uintptr(amt))) = int8(0)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Blob)
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32(amt)
+ } else {
+ Xsqlite3VdbeMemRelease(tls, pMem)
+ }
+ }
+ return rc
+}
+
+func Xsqlite3VdbeMemFromBtreeZeroOffset(tls *libc.TLS, pCur uintptr, amt U32, pMem uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+ var rc int32 = SQLITE_OK
+
+ (*Mem)(unsafe.Pointer(pMem)).Fz = Xsqlite3BtreePayloadFetch(tls, pCur, bp)
+
+ if amt <= *(*U32)(unsafe.Pointer(bp)) {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Blob | MEM_Ephem)
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32(amt)
+ } else {
+ rc = Xsqlite3VdbeMemFromBtree(tls, pCur, uint32(0), amt, pMem)
+ }
+
+ return rc
+}
+
+func valueToText(tls *libc.TLS, pVal uintptr, enc U8) uintptr {
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(MEM_Blob|MEM_Str) != 0 {
+ if func() int32 {
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pVal)
+ }
+ return 0
+ }() != 0 {
+ return uintptr(0)
+ }
+ *(*U16)(unsafe.Pointer(pVal + 20)) |= U16(MEM_Str)
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(enc)&libc.CplInt32(SQLITE_UTF16_ALIGNED) {
+ Xsqlite3VdbeChangeEncoding(tls, pVal, int32(enc)&libc.CplInt32(SQLITE_UTF16_ALIGNED))
+ }
+ if int32(enc)&SQLITE_UTF16_ALIGNED != 0 && 1 == 1&int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fz) {
+ if Xsqlite3VdbeMemMakeWriteable(tls, pVal) != SQLITE_OK {
+ return uintptr(0)
+ }
+ }
+ Xsqlite3VdbeMemNulTerminate(tls, pVal)
+ } else {
+ Xsqlite3VdbeMemStringify(tls, pVal, enc, uint8(0))
+
+ }
+
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc)&libc.CplInt32(SQLITE_UTF16_ALIGNED) {
+ return (*Sqlite3_value)(unsafe.Pointer(pVal)).Fz
+ } else {
+ return uintptr(0)
+ }
+ return uintptr(0)
+}
+
+// This function is only available internally, it is not part of the
+// external API. It works in a similar way to sqlite3_value_text(),
+// except the data returned is in the encoding specified by the second
+// parameter, which must be one of SQLITE_UTF16BE, SQLITE_UTF16LE or
+// SQLITE_UTF8.
+//
+// (2006-02-16:) The enc value can be or-ed with SQLITE_UTF16_ALIGNED.
+// If that is the case, then the result must be aligned on an even byte
+// boundary.
+func Xsqlite3ValueText(tls *libc.TLS, pVal uintptr, enc U8) uintptr {
+ if !(pVal != 0) {
+ return uintptr(0)
+ }
+
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(MEM_Str|MEM_Term) == MEM_Str|MEM_Term && int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) {
+ return (*Sqlite3_value)(unsafe.Pointer(pVal)).Fz
+ }
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&MEM_Null != 0 {
+ return uintptr(0)
+ }
+ return valueToText(tls, pVal, enc)
+}
+
+// Create a new sqlite3_value object.
+func Xsqlite3ValueNew(tls *libc.TLS, db uintptr) uintptr {
+ var p uintptr = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Mem{})))
+ if p != 0 {
+ (*Mem)(unsafe.Pointer(p)).Fflags = U16(MEM_Null)
+ (*Mem)(unsafe.Pointer(p)).Fdb = db
+ }
+ return p
+}
+
+// Context object passed by sqlite3Stat4ProbeSetValue() through to
+// valueNew(). See comments above valueNew() for details.
+type ValueNewStat4Ctx = struct {
+ FpParse uintptr
+ FpIdx uintptr
+ FppRec uintptr
+ FiVal int32
+ F__ccgo_pad1 [4]byte
+}
+
+func valueNew(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ if p != 0 {
+ var pRec uintptr = *(*uintptr)(unsafe.Pointer((*ValueNewStat4Ctx)(unsafe.Pointer(p)).FppRec))
+
+ if pRec == uintptr(0) {
+ var pIdx uintptr = (*ValueNewStat4Ctx)(unsafe.Pointer(p)).FpIdx
+ var nByte int32
+ var i int32
+ var nCol int32 = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+
+ nByte = int32(uint64(unsafe.Sizeof(Mem{}))*uint64(nCol) + (uint64(unsafe.Sizeof(UnpackedRecord{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)))
+ pRec = Xsqlite3DbMallocZero(tls, db, uint64(nByte))
+ if pRec != 0 {
+ (*UnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo = Xsqlite3KeyInfoOfIndex(tls, (*ValueNewStat4Ctx)(unsafe.Pointer(p)).FpParse, pIdx)
+ if (*UnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo != 0 {
+ (*UnpackedRecord)(unsafe.Pointer(pRec)).FaMem = pRec + uintptr((uint64(unsafe.Sizeof(UnpackedRecord{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)))
+ for i = 0; i < nCol; i++ {
+ (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(pRec)).FaMem + uintptr(i)*56)).Fflags = U16(MEM_Null)
+ (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(pRec)).FaMem + uintptr(i)*56)).Fdb = db
+ }
+ } else {
+ Xsqlite3DbFreeNN(tls, db, pRec)
+ pRec = uintptr(0)
+ }
+ }
+ if pRec == uintptr(0) {
+ return uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer((*ValueNewStat4Ctx)(unsafe.Pointer(p)).FppRec)) = pRec
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(pRec)).FnField = U16((*ValueNewStat4Ctx)(unsafe.Pointer(p)).FiVal + 1)
+ return (*UnpackedRecord)(unsafe.Pointer(pRec)).FaMem + uintptr((*ValueNewStat4Ctx)(unsafe.Pointer(p)).FiVal)*56
+ }
+ return Xsqlite3ValueNew(tls, db)
+}
+
+func valueFromFunction(tls *libc.TLS, db uintptr, p uintptr, enc U8, aff U8, ppVal uintptr, pCtx uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var apVal uintptr
+ var nVal int32
+ var pFunc uintptr
+ var pVal uintptr
+ var rc int32
+ var pList uintptr
+ var i int32
+ apVal = uintptr(0)
+ nVal = 0
+ pFunc = uintptr(0)
+ pVal = uintptr(0)
+ rc = SQLITE_OK
+ pList = uintptr(0)
+
+ pList = *(*uintptr)(unsafe.Pointer(p + 32))
+ if !(pList != 0) {
+ goto __1
+ }
+ nVal = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+__1:
+ ;
+ pFunc = Xsqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(p + 8)), nVal, enc, uint8(0))
+
+ if !((*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG) == U32(0) ||
+ (*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0) {
+ goto __2
+ }
+ return SQLITE_OK
+__2:
+ ;
+ if !(pList != 0) {
+ goto __3
+ }
+ apVal = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nVal))
+ if !(apVal == uintptr(0)) {
+ goto __4
+ }
+ rc = SQLITE_NOMEM
+ goto value_from_function_out
+__4:
+ ;
+ i = 0
+__5:
+ if !(i < nVal) {
+ goto __7
+ }
+ rc = Xsqlite3ValueFromExpr(tls, db, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr, enc, aff, apVal+uintptr(i)*8)
+ if !(*(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)) == uintptr(0) || rc != SQLITE_OK) {
+ goto __8
+ }
+ goto value_from_function_out
+__8:
+ ;
+ goto __6
+__6:
+ i++
+ goto __5
+ goto __7
+__7:
+ ;
+__3:
+ ;
+ pVal = valueNew(tls, db, pCtx)
+ if !(pVal == uintptr(0)) {
+ goto __9
+ }
+ rc = SQLITE_NOMEM
+ goto value_from_function_out
+__9:
+ ;
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(Sqlite3_context{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ (*Sqlite3_context)(unsafe.Pointer(bp + 8)).FpOut = pVal
+ (*Sqlite3_context)(unsafe.Pointer(bp + 8)).FpFunc = pFunc
+ (*Sqlite3_context)(unsafe.Pointer(bp + 8)).Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer(pFunc)).FxSFunc})).f(tls, bp+8, nVal, apVal)
+ if !((*Sqlite3_context)(unsafe.Pointer(bp+8)).FisError != 0) {
+ goto __10
+ }
+ rc = (*Sqlite3_context)(unsafe.Pointer(bp + 8)).FisError
+ Xsqlite3ErrorMsg(tls, (*ValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse, ts+3658, libc.VaList(bp, Xsqlite3_value_text(tls, pVal)))
+ goto __11
+__10:
+ Xsqlite3ValueApplyAffinity(tls, pVal, aff, uint8(SQLITE_UTF8))
+
+__11:
+ ;
+value_from_function_out:
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ pVal = uintptr(0)
+ (*Parse)(unsafe.Pointer((*ValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse)).Frc = rc
+__12:
+ ;
+ if !(apVal != 0) {
+ goto __13
+ }
+ i = 0
+__14:
+ if !(i < nVal) {
+ goto __16
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)))
+ goto __15
+__15:
+ i++
+ goto __14
+ goto __16
+__16:
+ ;
+ Xsqlite3DbFreeNN(tls, db, apVal)
+__13:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppVal)) = pVal
+ return rc
+}
+
+func valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc U8, affinity U8, ppVal uintptr, pCtx uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var op int32
+ var zVal uintptr
+
+ var negInt int32
+ var zNeg uintptr
+ var rc int32
+ var aff U8
+ var nVal int32
+ zVal = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ negInt = 1
+ zNeg = ts + 1547
+ rc = SQLITE_OK
+
+__1:
+ if !(libc.AssignInt32(&op, int32((*Expr)(unsafe.Pointer(pExpr)).Fop)) == TK_UPLUS || op == TK_SPAN) {
+ goto __2
+ }
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ goto __1
+__2:
+ ;
+ if !(op == TK_REGISTER) {
+ goto __3
+ }
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop2)
+__3:
+ ;
+ if !(op == TK_CAST) {
+ goto __4
+ }
+
+ aff = U8(Xsqlite3AffinityType(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), uintptr(0)))
+ rc = valueFromExpr(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, enc, aff, ppVal, pCtx)
+
+ if !(*(*uintptr)(unsafe.Pointer(ppVal)) != 0) {
+ goto __5
+ }
+ Xsqlite3VdbeMemCast(tls, *(*uintptr)(unsafe.Pointer(ppVal)), aff, enc)
+ Xsqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(ppVal)), affinity, enc)
+__5:
+ ;
+ return rc
+__4:
+ ;
+ if !(op == TK_UMINUS &&
+ (int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_INTEGER || int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_FLOAT)) {
+ goto __6
+ }
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ negInt = -1
+ zNeg = ts + 5335
+__6:
+ ;
+ if !(op == TK_STRING || op == TK_FLOAT || op == TK_INTEGER) {
+ goto __7
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = valueNew(tls, db, pCtx)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0)) {
+ goto __9
+ }
+ goto no_mem
+__9:
+ ;
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_IntValue) != U32(0)) {
+ goto __10
+ }
+ Xsqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), I64(*(*int32)(unsafe.Pointer(pExpr + 8)))*I64(negInt))
+ goto __11
+__10:
+ zVal = Xsqlite3MPrintf(tls, db, ts+5337, libc.VaList(bp, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8))))
+ if !(zVal == uintptr(0)) {
+ goto __12
+ }
+ goto no_mem
+__12:
+ ;
+ Xsqlite3ValueSetStr(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), -1, zVal, uint8(SQLITE_UTF8), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+__11:
+ ;
+ if !((op == TK_INTEGER || op == TK_FLOAT) && int32(affinity) == SQLITE_AFF_BLOB) {
+ goto __13
+ }
+ Xsqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), uint8(SQLITE_AFF_NUMERIC), uint8(SQLITE_UTF8))
+ goto __14
+__13:
+ Xsqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), affinity, uint8(SQLITE_UTF8))
+__14:
+ ;
+ if !(int32((*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fflags)&(MEM_Int|MEM_IntReal|MEM_Real) != 0) {
+ goto __15
+ }
+
+ *(*U16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Str))
+__15:
+ ;
+ if !(int32(enc) != SQLITE_UTF8) {
+ goto __16
+ }
+ rc = Xsqlite3VdbeChangeEncoding(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), int32(enc))
+__16:
+ ;
+ goto __8
+__7:
+ if !(op == TK_UMINUS) {
+ goto __17
+ }
+
+ if !(SQLITE_OK == valueFromExpr(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, enc, affinity, bp+16, pCtx) &&
+ *(*uintptr)(unsafe.Pointer(bp + 16)) != uintptr(0)) {
+ goto __19
+ }
+ Xsqlite3VdbeMemNumerify(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if !(int32((*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fflags)&MEM_Real != 0) {
+ goto __20
+ }
+ *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = -*(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))
+ goto __21
+__20:
+ if !(*(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32)) {
+ goto __22
+ }
+ *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = -float64(int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32))
+ (*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fflags = U16(int32((*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Real)
+ goto __23
+__22:
+ *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = -*(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))
+__23:
+ ;
+__21:
+ ;
+ Xsqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), affinity, enc)
+__19:
+ ;
+ goto __18
+__17:
+ if !(op == TK_NULL) {
+ goto __24
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = valueNew(tls, db, pCtx)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0)) {
+ goto __26
+ }
+ goto no_mem
+__26:
+ ;
+ Xsqlite3VdbeMemSetNull(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ goto __25
+__24:
+ if !(op == TK_BLOB) {
+ goto __27
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = valueNew(tls, db, pCtx)
+ if !!(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0) {
+ goto __29
+ }
+ goto no_mem
+__29:
+ ;
+ zVal = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + 2
+ nVal = Xsqlite3Strlen30(tls, zVal) - 1
+
+ Xsqlite3VdbeMemSetStr(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), Xsqlite3HexToBlob(tls, db, zVal, nVal), int64(nVal/2),
+ uint8(0), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ goto __28
+__27:
+ if !(op == TK_FUNCTION && pCtx != uintptr(0)) {
+ goto __30
+ }
+ rc = valueFromFunction(tls, db, pExpr, enc, affinity, bp+16, pCtx)
+ goto __31
+__30:
+ if !(op == TK_TRUEFALSE) {
+ goto __32
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = valueNew(tls, db, pCtx)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0) {
+ goto __33
+ }
+ (*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fflags = U16(MEM_Int)
+ *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = I64(libc.Bool32(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 8)) + 4))) == 0))
+__33:
+ ;
+__32:
+ ;
+__31:
+ ;
+__28:
+ ;
+__25:
+ ;
+__18:
+ ;
+__8:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppVal)) = *(*uintptr)(unsafe.Pointer(bp + 16))
+ return rc
+
+no_mem:
+ if !(pCtx == uintptr(0) || (*Parse)(unsafe.Pointer((*ValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse)).FnErr == 0) {
+ goto __34
+ }
+ Xsqlite3OomFault(tls, db)
+__34:
+ ;
+ Xsqlite3DbFree(tls, db, zVal)
+
+ if !(pCtx == uintptr(0)) {
+ goto __35
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+__35:
+ ;
+ return SQLITE_NOMEM
+}
+
+// Create a new sqlite3_value object, containing the value of pExpr.
+//
+// This only works for very simple expressions that consist of one constant
+// token (i.e. "5", "5.1", "'a string'"). If the expression can
+// be converted directly into a value, then the value is allocated and
+// a pointer written to *ppVal. The caller is responsible for deallocating
+// the value by passing it to sqlite3ValueFree() later on. If the expression
+// cannot be converted to a value, then *ppVal is set to NULL.
+func Xsqlite3ValueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc U8, affinity U8, ppVal uintptr) int32 {
+ if pExpr != 0 {
+ return valueFromExpr(tls, db, pExpr, enc, affinity, ppVal, uintptr(0))
+ }
+ return 0
+}
+
+func stat4ValueFromExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr, affinity U8, pAlloc uintptr, ppVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ pExpr = Xsqlite3ExprSkipCollate(tls, pExpr)
+
+ if !(pExpr != 0) {
+ *(*uintptr)(unsafe.Pointer(bp)) = valueNew(tls, db, pAlloc)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ Xsqlite3VdbeMemSetNull(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_VARIABLE && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableQPSG) == uint64(0) {
+ var v uintptr
+ var iBindVar int32 = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ Xsqlite3VdbeSetVarmask(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, iBindVar)
+ if libc.AssignUintptr(&v, (*Parse)(unsafe.Pointer(pParse)).FpReprepare) != uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp)) = valueNew(tls, db, pAlloc)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ rc = Xsqlite3VdbeMemCopy(tls, *(*uintptr)(unsafe.Pointer(bp)), (*Vdbe)(unsafe.Pointer(v)).FaVar+uintptr(iBindVar-1)*56)
+ Xsqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp)), affinity, (*Sqlite3)(unsafe.Pointer(db)).Fenc)
+ (*Sqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fdb = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ }
+ }
+ } else {
+ rc = valueFromExpr(tls, db, pExpr, (*Sqlite3)(unsafe.Pointer(db)).Fenc, affinity, bp, pAlloc)
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppVal)) = *(*uintptr)(unsafe.Pointer(bp))
+ return rc
+}
+
+// This function is used to allocate and populate UnpackedRecord
+// structures intended to be compared against sample index keys stored
+// in the sqlite_stat4 table.
+//
+// A single call to this function populates zero or more fields of the
+// record starting with field iVal (fields are numbered from left to
+// right starting with 0). A single field is populated if:
+//
+// - (pExpr==0). In this case the value is assumed to be an SQL NULL,
+//
+// - The expression is a bound variable, and this is a reprepare, or
+//
+// - The sqlite3ValueFromExpr() function is able to extract a value
+// from the expression (i.e. the expression is a literal value).
+//
+// Or, if pExpr is a TK_VECTOR, one field is populated for each of the
+// vector components that match either of the two latter criteria listed
+// above.
+//
+// Before any value is appended to the record, the affinity of the
+// corresponding column within index pIdx is applied to it. Before
+// this function returns, output parameter *pnExtract is set to the
+// number of values appended to the record.
+//
+// When this function is called, *ppRec must either point to an object
+// allocated by an earlier call to this function, or must be NULL. If it
+// is NULL and a value can be successfully extracted, a new UnpackedRecord
+// is allocated (and *ppRec set to point to it) before returning.
+//
+// Unless an error is encountered, SQLITE_OK is returned. It is not an
+// error if a value cannot be extracted from pExpr. If an error does
+// occur, an SQLite error code is returned.
+func Xsqlite3Stat4ProbeSetValue(tls *libc.TLS, pParse uintptr, pIdx uintptr, ppRec uintptr, pExpr uintptr, nElem int32, iVal int32, pnExtract uintptr) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var rc int32 = SQLITE_OK
+ var nExtract int32 = 0
+
+ if pExpr == uintptr(0) || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_SELECT {
+ var i int32
+
+ (*ValueNewStat4Ctx)(unsafe.Pointer(bp)).FpParse = pParse
+ (*ValueNewStat4Ctx)(unsafe.Pointer(bp)).FpIdx = pIdx
+ (*ValueNewStat4Ctx)(unsafe.Pointer(bp)).FppRec = ppRec
+
+ for i = 0; i < nElem; i++ {
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0)
+ var pElem uintptr = func() uintptr {
+ if pExpr != 0 {
+ return Xsqlite3VectorFieldSubexpr(tls, pExpr, i)
+ }
+ return uintptr(0)
+ }()
+ var aff U8 = U8(Xsqlite3IndexColumnAffinity(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pIdx, iVal+i))
+ (*ValueNewStat4Ctx)(unsafe.Pointer(bp)).FiVal = iVal + i
+ rc = stat4ValueFromExpr(tls, pParse, pElem, aff, bp, bp+32)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 32)) != 0) {
+ break
+ }
+ nExtract++
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pnExtract)) = nExtract
+ return rc
+}
+
+// Attempt to extract a value from expression pExpr using the methods
+// as described for sqlite3Stat4ProbeSetValue() above.
+//
+// If successful, set *ppVal to point to a new value object and return
+// SQLITE_OK. If no value can be extracted, but no other error occurs
+// (e.g. OOM), return SQLITE_OK and set *ppVal to NULL. Or, if an error
+// does occur, return an SQLite error code. The final value of *ppVal
+// is undefined in this case.
+func Xsqlite3Stat4ValueFromExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr, affinity U8, ppVal uintptr) int32 {
+ return stat4ValueFromExpr(tls, pParse, pExpr, affinity, uintptr(0), ppVal)
+}
+
+// Extract the iCol-th column from the nRec-byte record in pRec. Write
+// the column value into *ppVal. If *ppVal is initially NULL then a new
+// sqlite3_value object is allocated.
+//
+// If *ppVal is initially NULL then the caller is responsible for
+// ensuring that the value written into *ppVal is eventually freed.
+func Xsqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iCol int32, ppVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(0)
+
+ var iHdr int32
+ var iField int32
+ var szField int32 = 0
+ var i int32
+ var a uintptr = pRec
+ var pMem uintptr = *(*uintptr)(unsafe.Pointer(ppVal))
+
+ iHdr = int32(func() uint8 {
+ if int32(*(*U8)(unsafe.Pointer(a))) < int32(U8(0x80)) {
+ return uint8(func() int32 { *(*int32)(unsafe.Pointer(bp)) = int32(U32(*(*U8)(unsafe.Pointer(a)))); return 1 }())
+ }
+ return Xsqlite3GetVarint32(tls, a, bp)
+ }())
+ if *(*int32)(unsafe.Pointer(bp)) > nRec || iHdr >= *(*int32)(unsafe.Pointer(bp)) {
+ return Xsqlite3CorruptError(tls, 82270)
+ }
+ iField = *(*int32)(unsafe.Pointer(bp))
+ for i = 0; i <= iCol; i++ {
+ iHdr = iHdr + int32(func() uint8 {
+ if int32(*(*U8)(unsafe.Pointer(a + uintptr(iHdr)))) < int32(U8(0x80)) {
+ return uint8(func() int32 {
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(iHdr))))
+ return 1
+ }())
+ }
+ return Xsqlite3GetVarint32(tls, a+uintptr(iHdr), bp+4)
+ }())
+
+ if iHdr > *(*int32)(unsafe.Pointer(bp)) {
+ return Xsqlite3CorruptError(tls, 82276)
+ }
+ szField = int32(Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 4))))
+ iField = iField + szField
+ }
+
+ if iField > nRec {
+ return Xsqlite3CorruptError(tls, 82282)
+ }
+ if pMem == uintptr(0) {
+ pMem = libc.AssignPtrUintptr(ppVal, Xsqlite3ValueNew(tls, db))
+ if pMem == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ }
+ Xsqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*U32)(unsafe.Pointer(bp + 4)), pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ return SQLITE_OK
+}
+
+// Unless it is NULL, the argument must be an UnpackedRecord object returned
+// by an earlier call to sqlite3Stat4ProbeSetValue(). This call deletes
+// the object.
+func Xsqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) {
+ if pRec != 0 {
+ var i int32
+ var nCol int32 = int32((*KeyInfo)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo)).FnAllField)
+ var aMem uintptr = (*UnpackedRecord)(unsafe.Pointer(pRec)).FaMem
+ var db uintptr = (*Mem)(unsafe.Pointer(aMem)).Fdb
+ for i = 0; i < nCol; i++ {
+ Xsqlite3VdbeMemRelease(tls, aMem+uintptr(i)*56)
+ }
+ Xsqlite3KeyInfoUnref(tls, (*UnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo)
+ Xsqlite3DbFreeNN(tls, db, pRec)
+ }
+}
+
+// Change the string value of an sqlite3_value object
+func Xsqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc U8, xDel uintptr) {
+ if v != 0 {
+ Xsqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel)
+ }
+}
+
+// Free an sqlite3_value object
+func Xsqlite3ValueFree(tls *libc.TLS, v uintptr) {
+ if !(v != 0) {
+ return
+ }
+ Xsqlite3VdbeMemRelease(tls, v)
+ Xsqlite3DbFreeNN(tls, (*Mem)(unsafe.Pointer(v)).Fdb, v)
+}
+
+func valueBytes(tls *libc.TLS, pVal uintptr, enc U8) int32 {
+ if valueToText(tls, pVal, enc) != uintptr(0) {
+ return (*Sqlite3_value)(unsafe.Pointer(pVal)).Fn
+ }
+ return 0
+}
+
+func Xsqlite3ValueBytes(tls *libc.TLS, pVal uintptr, enc U8) int32 {
+ var p uintptr = pVal
+
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Str != 0 && int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) {
+ return (*Mem)(unsafe.Pointer(p)).Fn
+ }
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Str != 0 && int32(enc) != SQLITE_UTF8 && int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc) != SQLITE_UTF8 {
+ return (*Mem)(unsafe.Pointer(p)).Fn
+ }
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Blob != 0 {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Zero != 0 {
+ return (*Mem)(unsafe.Pointer(p)).Fn + *(*int32)(unsafe.Pointer(p))
+ } else {
+ return (*Mem)(unsafe.Pointer(p)).Fn
+ }
+ }
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Null != 0 {
+ return 0
+ }
+ return valueBytes(tls, pVal, enc)
+}
+
+// Create a new virtual database engine.
+func Xsqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var p uintptr
+ p = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Vdbe{})))
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ libc.X__builtin___memset_chk(tls, p+136, 0, uint64(unsafe.Sizeof(Vdbe{}))-uint64(uintptr(0)+136), libc.X__builtin_object_size(tls, p+136, 0))
+ (*Vdbe)(unsafe.Pointer(p)).Fdb = db
+ if (*Sqlite3)(unsafe.Pointer(db)).FpVdbe != 0 {
+ (*Vdbe1)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FpVNext = (*Sqlite3)(unsafe.Pointer(db)).FpVdbe
+ (*Vdbe)(unsafe.Pointer(p)).FppVPrev = db + 8
+ (*Sqlite3)(unsafe.Pointer(db)).FpVdbe = p
+
+ (*Vdbe)(unsafe.Pointer(p)).FpParse = pParse
+ (*Parse)(unsafe.Pointer(pParse)).FpVdbe = p
+
+ Xsqlite3VdbeAddOp2(tls, p, OP_Init, 0, 1)
+ return p
+}
+
+// Return the Parse object that owns a Vdbe object.
+func Xsqlite3VdbeParser(tls *libc.TLS, p uintptr) uintptr {
+ return (*Vdbe)(unsafe.Pointer(p)).FpParse
+}
+
+// Change the error string stored in Vdbe.zErrMsg
+func Xsqlite3VdbeError(tls *libc.TLS, p uintptr, zFormat uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ Xsqlite3DbFree(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
+ ap = va
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3VMPrintf(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, zFormat, ap)
+ _ = ap
+}
+
+// Remember the SQL string for a prepared statement.
+func Xsqlite3VdbeSetSql(tls *libc.TLS, p uintptr, z uintptr, n int32, prepFlags U8) {
+ if p == uintptr(0) {
+ return
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FprepFlags = prepFlags
+ if int32(prepFlags)&SQLITE_PREPARE_SAVESQL == 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Fexpmask = U32(0)
+ }
+
+ (*Vdbe)(unsafe.Pointer(p)).FzSql = Xsqlite3DbStrNDup(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, z, uint64(n))
+}
+
+// Swap byte-code between two VDBE structures.
+//
+// This happens after pB was previously run and returned
+// SQLITE_SCHEMA. The statement was then reprepared in pA.
+// This routine transfers the new bytecode in pA over to pB
+// so that pB can be run again. The old pB byte code is
+// moved back to pA so that it will be cleaned up when pA is
+// finalized.
+func Xsqlite3VdbeSwap(tls *libc.TLS, pA uintptr, pB uintptr) {
+ var tmp Vdbe
+ var pTmp uintptr
+ var ppTmp uintptr
+ var zTmp uintptr
+
+ tmp = *(*Vdbe)(unsafe.Pointer(pA))
+ *(*Vdbe)(unsafe.Pointer(pA)) = *(*Vdbe)(unsafe.Pointer(pB))
+ *(*Vdbe)(unsafe.Pointer(pB)) = tmp
+ pTmp = (*Vdbe)(unsafe.Pointer(pA)).FpVNext
+ (*Vdbe)(unsafe.Pointer(pA)).FpVNext = (*Vdbe)(unsafe.Pointer(pB)).FpVNext
+ (*Vdbe)(unsafe.Pointer(pB)).FpVNext = pTmp
+ ppTmp = (*Vdbe)(unsafe.Pointer(pA)).FppVPrev
+ (*Vdbe)(unsafe.Pointer(pA)).FppVPrev = (*Vdbe)(unsafe.Pointer(pB)).FppVPrev
+ (*Vdbe)(unsafe.Pointer(pB)).FppVPrev = ppTmp
+ zTmp = (*Vdbe)(unsafe.Pointer(pA)).FzSql
+ (*Vdbe)(unsafe.Pointer(pA)).FzSql = (*Vdbe)(unsafe.Pointer(pB)).FzSql
+ (*Vdbe)(unsafe.Pointer(pB)).FzSql = zTmp
+ (*Vdbe)(unsafe.Pointer(pB)).Fexpmask = (*Vdbe)(unsafe.Pointer(pA)).Fexpmask
+ (*Vdbe)(unsafe.Pointer(pB)).FprepFlags = (*Vdbe)(unsafe.Pointer(pA)).FprepFlags
+ libc.X__builtin___memcpy_chk(tls, pB+212, pA+212, uint64(unsafe.Sizeof([9]U32{})), libc.X__builtin_object_size(tls, pB+212, 0))
+ *(*U32)(unsafe.Pointer(pB + 212 + 5*4))++
+}
+
+func growOpArray(tls *libc.TLS, v uintptr, nOp int32) int32 {
+ var pNew uintptr
+ var p uintptr = (*Vdbe)(unsafe.Pointer(v)).FpParse
+
+ var nNew Sqlite3_int64 = func() int64 {
+ if (*Vdbe)(unsafe.Pointer(v)).FnOpAlloc != 0 {
+ return int64(2) * Sqlite3_int64((*Vdbe)(unsafe.Pointer(v)).FnOpAlloc)
+ }
+ return int64(uint64(1024) / uint64(unsafe.Sizeof(Op{})))
+ }()
+ _ = nOp
+
+ if nNew > Sqlite3_int64(*(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(p)).Fdb + 136 + 5*4))) {
+ Xsqlite3OomFault(tls, (*Parse)(unsafe.Pointer(p)).Fdb)
+ return SQLITE_NOMEM
+ }
+
+ pNew = Xsqlite3DbRealloc(tls, (*Parse)(unsafe.Pointer(p)).Fdb, (*Vdbe)(unsafe.Pointer(v)).FaOp, uint64(nNew)*uint64(unsafe.Sizeof(Op{})))
+ if pNew != 0 {
+ (*Parse)(unsafe.Pointer(p)).FszOpAlloc = Xsqlite3DbMallocSize(tls, (*Parse)(unsafe.Pointer(p)).Fdb, pNew)
+ (*Vdbe)(unsafe.Pointer(v)).FnOpAlloc = int32(uint64((*Parse)(unsafe.Pointer(p)).FszOpAlloc) / uint64(unsafe.Sizeof(Op{})))
+ (*Vdbe)(unsafe.Pointer(v)).FaOp = pNew
+ }
+ return func() int32 {
+ if pNew != 0 {
+ return SQLITE_OK
+ }
+ return SQLITE_NOMEM
+ }()
+}
+
+func growOp3(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, p3 int32) int32 {
+ if growOpArray(tls, p, 1) != 0 {
+ return 1
+ }
+
+ return Xsqlite3VdbeAddOp3(tls, p, op, p1, p2, p3)
+}
+
+func Xsqlite3VdbeAddOp3(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, p3 int32) int32 {
+ var i int32
+ var pOp uintptr
+
+ i = (*Vdbe)(unsafe.Pointer(p)).FnOp
+
+ if (*Vdbe)(unsafe.Pointer(p)).FnOpAlloc <= i {
+ return growOp3(tls, p, op, p1, p2, p3)
+ }
+
+ (*Vdbe)(unsafe.Pointer(p)).FnOp++
+ pOp = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(i)*24
+
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(op)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp5 = U16(0)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = p1
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 = p2
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 = p3
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = uintptr(0)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(P4_NOTUSED)
+ return i
+}
+
+func Xsqlite3VdbeAddOp0(tls *libc.TLS, p uintptr, op int32) int32 {
+ return Xsqlite3VdbeAddOp3(tls, p, op, 0, 0, 0)
+}
+
+func Xsqlite3VdbeAddOp1(tls *libc.TLS, p uintptr, op int32, p1 int32) int32 {
+ return Xsqlite3VdbeAddOp3(tls, p, op, p1, 0, 0)
+}
+
+func Xsqlite3VdbeAddOp2(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32) int32 {
+ return Xsqlite3VdbeAddOp3(tls, p, op, p1, p2, 0)
+}
+
+// Generate code for an unconditional jump to instruction iDest
+func Xsqlite3VdbeGoto(tls *libc.TLS, p uintptr, iDest int32) int32 {
+ return Xsqlite3VdbeAddOp3(tls, p, OP_Goto, 0, iDest, 0)
+}
+
+// Generate code to cause the string zStr to be loaded into
+// register iDest
+func Xsqlite3VdbeLoadString(tls *libc.TLS, p uintptr, iDest int32, zStr uintptr) int32 {
+ return Xsqlite3VdbeAddOp4(tls, p, OP_String8, 0, iDest, 0, zStr, 0)
+}
+
+// Generate code that initializes multiple registers to string or integer
+// constants. The registers begin with iDest and increase consecutively.
+// One register is initialized for each characgter in zTypes[]. For each
+// "s" character in zTypes[], the register is a string if the argument is
+// not NULL, or OP_Null if the value is a null pointer. For each "i" character
+// in zTypes[], the register is initialized to an integer.
+//
+// If the input string does not end with "X" then an OP_ResultRow instruction
+// is generated for the values inserted.
+func Xsqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ var i int32
+ var c int8
+ var z uintptr
+ ap = va
+ i = 0
+__1:
+ if !(int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(zTypes + uintptr(i))))) != 0) {
+ goto __3
+ }
+ if !(int32(c) == 's') {
+ goto __4
+ }
+ z = libc.VaUintptr(&ap)
+ Xsqlite3VdbeAddOp4(tls, p, func() int32 {
+ if z == uintptr(0) {
+ return OP_Null
+ }
+ return OP_String8
+ }(), 0, iDest+i, 0, z, 0)
+ goto __5
+__4:
+ if !(int32(c) == 'i') {
+ goto __6
+ }
+ Xsqlite3VdbeAddOp2(tls, p, OP_Integer, libc.VaInt32(&ap), iDest+i)
+ goto __7
+__6:
+ goto skip_op_resultrow
+__7:
+ ;
+__5:
+ ;
+ goto __2
+__2:
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ Xsqlite3VdbeAddOp2(tls, p, OP_ResultRow, iDest, i)
+skip_op_resultrow:
+ _ = ap
+}
+
+// Add an opcode that includes the p4 value as a pointer.
+func Xsqlite3VdbeAddOp4(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, p3 int32, zP4 uintptr, p4type int32) int32 {
+ var addr int32 = Xsqlite3VdbeAddOp3(tls, p, op, p1, p2, p3)
+ Xsqlite3VdbeChangeP4(tls, p, addr, zP4, p4type)
+ return addr
+}
+
+// Add an OP_Function or OP_PureFunc opcode.
+//
+// The eCallCtx argument is information (typically taken from Expr.op2)
+// that describes the calling context of the function. 0 means a general
+// function call. NC_IsCheck means called by a check constraint,
+// NC_IdxExpr means called as part of an index expression. NC_PartIdx
+// means in the WHERE clause of a partial index. NC_GenCol means called
+// while computing a generated column value. 0 is the usual case.
+func Xsqlite3VdbeAddFunctionCall(tls *libc.TLS, pParse uintptr, p1 int32, p2 int32, p3 int32, nArg int32, pFunc uintptr, eCallCtx int32) int32 {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var nByte int32
+ var addr int32
+ var pCtx uintptr
+
+ nByte = int32(uint64(unsafe.Sizeof(Sqlite3_context{})) + uint64(nArg-1)*uint64(unsafe.Sizeof(uintptr(0))))
+ pCtx = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(nByte))
+ if pCtx == uintptr(0) {
+ freeEphemeralFunction(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pFunc)
+ return 0
+ }
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut = uintptr(0)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpFunc = pFunc
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe = uintptr(0)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = 0
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).Fargc = U8(nArg)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp = Xsqlite3VdbeCurrentAddr(tls, v)
+ addr = Xsqlite3VdbeAddOp4(tls, v, func() int32 {
+ if eCallCtx != 0 {
+ return OP_PureFunc
+ }
+ return OP_Function
+ }(),
+ p1, p2, p3, pCtx, -15)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(eCallCtx&NC_SelfRef))
+ Xsqlite3MayAbort(tls, pParse)
+ return addr
+}
+
+// Add an opcode that includes the p4 value with a P4_INT64 or
+// P4_REAL type.
+func Xsqlite3VdbeAddOp4Dup8(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, p3 int32, zP4 uintptr, p4type int32) int32 {
+ var p4copy uintptr = Xsqlite3DbMallocRawNN(tls, Xsqlite3VdbeDb(tls, p), uint64(8))
+ if p4copy != 0 {
+ libc.X__builtin___memcpy_chk(tls, p4copy, zP4, uint64(8), libc.X__builtin_object_size(tls, p4copy, 0))
+ }
+ return Xsqlite3VdbeAddOp4(tls, p, op, p1, p2, p3, p4copy, p4type)
+}
+
+// Return the address of the current EXPLAIN QUERY PLAN baseline.
+// 0 means "none".
+func Xsqlite3VdbeExplainParent(tls *libc.TLS, pParse uintptr) int32 {
+ var pOp uintptr
+ if (*Parse)(unsafe.Pointer(pParse)).FaddrExplain == 0 {
+ return 0
+ }
+ pOp = Xsqlite3VdbeGetOp(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, (*Parse)(unsafe.Pointer(pParse)).FaddrExplain)
+ return (*VdbeOp)(unsafe.Pointer(pOp)).Fp2
+}
+
+// Add a new OP_Explain opcode.
+//
+// If the bPush flag is true, then make this opcode the parent for
+// subsequent Explains until sqlite3VdbeExplainPop() is called.
+func Xsqlite3VdbeExplain(tls *libc.TLS, pParse uintptr, bPush U8, zFmt uintptr, va uintptr) int32 {
+ var addr int32 = 0
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fexplain) == 2 {
+ var zMsg uintptr
+ var v uintptr
+ var ap Va_list
+ _ = ap
+ var iThis int32
+ ap = va
+ zMsg = Xsqlite3VMPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zFmt, ap)
+ _ = ap
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ iThis = (*Vdbe)(unsafe.Pointer(v)).FnOp
+ addr = Xsqlite3VdbeAddOp4(tls, v, OP_Explain, iThis, (*Parse)(unsafe.Pointer(pParse)).FaddrExplain, 0,
+ zMsg, -6)
+
+ if bPush != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FaddrExplain = iThis
+ }
+
+ }
+ return addr
+}
+
+// Pop the EXPLAIN QUERY PLAN stack one level.
+func Xsqlite3VdbeExplainPop(tls *libc.TLS, pParse uintptr) {
+ (*Parse)(unsafe.Pointer(pParse)).FaddrExplain = Xsqlite3VdbeExplainParent(tls, pParse)
+}
+
+// Add an OP_ParseSchema opcode. This routine is broken out from
+// sqlite3VdbeAddOp4() since it needs to also needs to mark all btrees
+// as having been used.
+//
+// The zWhere string must have been obtained from sqlite3_malloc().
+// This routine will take ownership of the allocated memory.
+func Xsqlite3VdbeAddParseSchemaOp(tls *libc.TLS, p uintptr, iDb int32, zWhere uintptr, p5 U16) {
+ var j int32
+ Xsqlite3VdbeAddOp4(tls, p, OP_ParseSchema, iDb, 0, 0, zWhere, -6)
+ Xsqlite3VdbeChangeP5(tls, p, p5)
+ for j = 0; j < (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FnDb; j++ {
+ Xsqlite3VdbeUsesBtree(tls, p, j)
+ }
+ Xsqlite3MayAbort(tls, (*Vdbe)(unsafe.Pointer(p)).FpParse)
+}
+
+// Add an opcode that includes the p4 value as an integer.
+func Xsqlite3VdbeAddOp4Int(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, p3 int32, p4 int32) int32 {
+ var addr int32 = Xsqlite3VdbeAddOp3(tls, p, op, p1, p2, p3)
+ if int32((*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FmallocFailed) == 0 {
+ var pOp uintptr = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(addr)*24
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(-3)
+ *(*int32)(unsafe.Pointer(pOp + 16)) = p4
+ }
+ return addr
+}
+
+// Insert the end of a co-routine
+func Xsqlite3VdbeEndCoroutine(tls *libc.TLS, v uintptr, regYield int32) {
+ Xsqlite3VdbeAddOp1(tls, v, OP_EndCoroutine, regYield)
+
+ (*Parse)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FpParse)).FnTempReg = U8(0)
+ (*Parse)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FpParse)).FnRangeReg = 0
+}
+
+// Create a new symbolic label for an instruction that has yet to be
+// coded. The symbolic label is really just a negative number. The
+// label can be used as the P2 value of an operation. Later, when
+// the label is resolved to a specific address, the VDBE will scan
+// through its operation list and change all values of P2 which match
+// the label into the resolved address.
+//
+// The VDBE knows that a P2 value is a label because labels are
+// always negative and P2 values are suppose to be non-negative.
+// Hence, a negative P2 value is a label that has yet to be resolved.
+// (Later:) This is only true for opcodes that have the OPFLG_JUMP
+// property.
+//
+// Variable usage notes:
+//
+// Parse.aLabel[x] Stores the address that the x-th label resolves
+// into. For testing (SQLITE_DEBUG), unresolved
+// labels stores -1, but that is not required.
+// Parse.nLabelAlloc Number of slots allocated to Parse.aLabel[]
+// Parse.nLabel The *negative* of the number of labels that have
+// been issued. The negative is stored because
+// that gives a performance improvement over storing
+// the equivalent positive value.
+func Xsqlite3VdbeMakeLabel(tls *libc.TLS, pParse uintptr) int32 {
+ return libc.PreDecInt32(&(*Parse)(unsafe.Pointer(pParse)).FnLabel, 1)
+}
+
+func resizeResolveLabel(tls *libc.TLS, p uintptr, v uintptr, j int32) {
+ var nNewSize int32 = 10 - (*Parse)(unsafe.Pointer(p)).FnLabel
+ (*Parse)(unsafe.Pointer(p)).FaLabel = Xsqlite3DbReallocOrFree(tls, (*Parse)(unsafe.Pointer(p)).Fdb, (*Parse)(unsafe.Pointer(p)).FaLabel,
+ uint64(nNewSize)*uint64(unsafe.Sizeof(int32(0))))
+ if (*Parse)(unsafe.Pointer(p)).FaLabel == uintptr(0) {
+ (*Parse)(unsafe.Pointer(p)).FnLabelAlloc = 0
+ } else {
+ if nNewSize >= 100 && nNewSize/100 > (*Parse)(unsafe.Pointer(p)).FnLabelAlloc/100 {
+ Xsqlite3ProgressCheck(tls, p)
+ }
+ (*Parse)(unsafe.Pointer(p)).FnLabelAlloc = nNewSize
+ *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(p)).FaLabel + uintptr(j)*4)) = (*Vdbe)(unsafe.Pointer(v)).FnOp
+ }
+}
+
+func Xsqlite3VdbeResolveLabel(tls *libc.TLS, v uintptr, x int32) {
+ var p uintptr = (*Vdbe)(unsafe.Pointer(v)).FpParse
+ var j int32 = ^x
+
+ if (*Parse)(unsafe.Pointer(p)).FnLabelAlloc+(*Parse)(unsafe.Pointer(p)).FnLabel < 0 {
+ resizeResolveLabel(tls, p, v, j)
+ } else {
+ *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(p)).FaLabel + uintptr(j)*4)) = (*Vdbe)(unsafe.Pointer(v)).FnOp
+ }
+}
+
+// Mark the VDBE as one that can only be run one time.
+func Xsqlite3VdbeRunOnlyOnce(tls *libc.TLS, p uintptr) {
+ Xsqlite3VdbeAddOp2(tls, p, OP_Expire, 1, 1)
+}
+
+// Mark the VDBE as one that can be run multiple times.
+func Xsqlite3VdbeReusable(tls *libc.TLS, p uintptr) {
+ var i int32
+ for i = 1; i < (*Vdbe)(unsafe.Pointer(p)).FnOp; i++ {
+ if int32((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(i)*24)).Fopcode) == OP_Expire {
+ (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp + 1*24)).Fopcode = U8(OP_Noop)
+ break
+ }
+ }
+}
+
+func resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) {
+ var nMaxArgs int32
+ var pOp uintptr
+ var pParse uintptr
+ var aLabel uintptr
+ var n int32
+ nMaxArgs = *(*int32)(unsafe.Pointer(pMaxFuncArgs))
+ pParse = (*Vdbe)(unsafe.Pointer(p)).FpParse
+ aLabel = (*Parse)(unsafe.Pointer(pParse)).FaLabel
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 6, 0x40)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 7, 0x80)
+ pOp = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr((*Vdbe)(unsafe.Pointer(p)).FnOp-1)*24
+
+__1:
+ if !(1 != 0) {
+ goto __2
+ }
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) <= SQLITE_MX_JUMP_OPCODE) {
+ goto __3
+ }
+
+ switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
+ case OP_Transaction:
+ goto __5
+ case OP_AutoCommit:
+ goto __6
+ case OP_Savepoint:
+ goto __7
+ case OP_Checkpoint:
+ goto __8
+ case OP_Vacuum:
+ goto __9
+ case OP_JournalMode:
+ goto __10
+ case OP_Init:
+ goto __11
+ case OP_VUpdate:
+ goto __12
+ case OP_VFilter:
+ goto __13
+ default:
+ goto __14
+ }
+ goto __4
+__5:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 != 0) {
+ goto __15
+ }
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 6, 0x40)
+__15:
+ ;
+__6:
+__7:
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 7, 0x80)
+ goto __4
+
+__8:
+__9:
+__10:
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 6, 0x40)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 7, 0x80)
+ goto __4
+
+__11:
+ ;
+ goto resolve_p2_values_loop_exit
+
+__12:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 > nMaxArgs) {
+ goto __16
+ }
+ nMaxArgs = (*Op)(unsafe.Pointer(pOp)).Fp2
+__16:
+ ;
+ goto __4
+
+__13:
+ ;
+ n = (*Op)(unsafe.Pointer(pOp + libc.UintptrFromInt32(-1)*24)).Fp1
+ if !(n > nMaxArgs) {
+ goto __17
+ }
+ nMaxArgs = n
+__17:
+ ;
+__14:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 < 0) {
+ goto __18
+ }
+
+ (*Op)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*Op)(unsafe.Pointer(pOp)).Fp2)*4))
+__18:
+ ;
+ goto __4
+
+__4:
+ ;
+__3:
+ ;
+ pOp -= 24
+ goto __1
+__2:
+ ;
+resolve_p2_values_loop_exit:
+ if !(aLabel != 0) {
+ goto __19
+ }
+ Xsqlite3DbNNFreeNN(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, (*Parse)(unsafe.Pointer(pParse)).FaLabel)
+ (*Parse)(unsafe.Pointer(pParse)).FaLabel = uintptr(0)
+__19:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FnLabel = 0
+ *(*int32)(unsafe.Pointer(pMaxFuncArgs)) = nMaxArgs
+
+}
+
+// Return the address of the next instruction to be inserted.
+func Xsqlite3VdbeCurrentAddr(tls *libc.TLS, p uintptr) int32 {
+ return (*Vdbe)(unsafe.Pointer(p)).FnOp
+}
+
+// This function returns a pointer to the array of opcodes associated with
+// the Vdbe passed as the first argument. It is the callers responsibility
+// to arrange for the returned array to be eventually freed using the
+// vdbeFreeOpArray() function.
+//
+// Before returning, *pnOp is set to the number of entries in the returned
+// array. Also, *pnMaxArg is set to the larger of its current value and
+// the number of entries in the Vdbe.apArg[] array required to execute the
+// returned program.
+func Xsqlite3VdbeTakeOpArray(tls *libc.TLS, p uintptr, pnOp uintptr, pnMaxArg uintptr) uintptr {
+ var aOp uintptr = (*Vdbe)(unsafe.Pointer(p)).FaOp
+
+ resolveP2Values(tls, p, pnMaxArg)
+ *(*int32)(unsafe.Pointer(pnOp)) = (*Vdbe)(unsafe.Pointer(p)).FnOp
+ (*Vdbe)(unsafe.Pointer(p)).FaOp = uintptr(0)
+ return aOp
+}
+
+// Add a whole list of operations to the operation stack. Return a
+// pointer to the first operation inserted.
+//
+// Non-zero P2 arguments to jump instructions are automatically adjusted
+// so that the jump target is relative to the first operation inserted.
+func Xsqlite3VdbeAddOpList(tls *libc.TLS, p uintptr, nOp int32, aOp uintptr, iLineno int32) uintptr {
+ var i int32
+ var pOut uintptr
+ var pFirst uintptr
+
+ if (*Vdbe)(unsafe.Pointer(p)).FnOp+nOp > (*Vdbe)(unsafe.Pointer(p)).FnOpAlloc && growOpArray(tls, p, nOp) != 0 {
+ return uintptr(0)
+ }
+ pFirst = libc.AssignUintptr(&pOut, (*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr((*Vdbe)(unsafe.Pointer(p)).FnOp)*24)
+ i = 0
+__1:
+ if !(i < nOp) {
+ goto __3
+ }
+ {
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fopcode = (*VdbeOpList)(unsafe.Pointer(aOp)).Fopcode
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fp1 = int32((*VdbeOpList)(unsafe.Pointer(aOp)).Fp1)
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fp2 = int32((*VdbeOpList)(unsafe.Pointer(aOp)).Fp2)
+
+ if int32(Xsqlite3OpcodeProperty[(*VdbeOpList)(unsafe.Pointer(aOp)).Fopcode])&OPFLG_JUMP != 0 && int32((*VdbeOpList)(unsafe.Pointer(aOp)).Fp2) > 0 {
+ *(*int32)(unsafe.Pointer(pOut + 8)) += (*Vdbe)(unsafe.Pointer(p)).FnOp
+ }
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fp3 = int32((*VdbeOpList)(unsafe.Pointer(aOp)).Fp3)
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fp4type = int8(P4_NOTUSED)
+ *(*uintptr)(unsafe.Pointer(pOut + 16)) = uintptr(0)
+ (*VdbeOp)(unsafe.Pointer(pOut)).Fp5 = U16(0)
+ _ = iLineno
+
+ }
+ goto __2
+__2:
+ i++
+ aOp += 4
+ pOut += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ *(*int32)(unsafe.Pointer(p + 144)) += nOp
+ return pFirst
+}
+
+// Change the value of the opcode, or P1, P2, P3, or P5 operands
+// for a specific instruction.
+func Xsqlite3VdbeChangeOpcode(tls *libc.TLS, p uintptr, addr int32, iNewOpcode U8) {
+ (*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, p, addr))).Fopcode = iNewOpcode
+}
+
+func Xsqlite3VdbeChangeP1(tls *libc.TLS, p uintptr, addr int32, val int32) {
+ (*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, p, addr))).Fp1 = val
+}
+
+func Xsqlite3VdbeChangeP2(tls *libc.TLS, p uintptr, addr int32, val int32) {
+ (*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, p, addr))).Fp2 = val
+}
+
+func Xsqlite3VdbeChangeP3(tls *libc.TLS, p uintptr, addr int32, val int32) {
+ (*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, p, addr))).Fp3 = val
+}
+
+func Xsqlite3VdbeChangeP5(tls *libc.TLS, p uintptr, p5 U16) {
+ if (*Vdbe)(unsafe.Pointer(p)).FnOp > 0 {
+ (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr((*Vdbe)(unsafe.Pointer(p)).FnOp-1)*24)).Fp5 = p5
+ }
+}
+
+// If the previous opcode is an OP_Column that delivers results
+// into register iDest, then add the OPFLAG_TYPEOFARG flag to that
+// opcode.
+func Xsqlite3VdbeTypeofColumn(tls *libc.TLS, p uintptr, iDest int32) {
+ var pOp uintptr = Xsqlite3VdbeGetLastOp(tls, p)
+ if (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 == iDest && int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column {
+ *(*U16)(unsafe.Pointer(pOp + 2)) |= U16(OPFLAG_TYPEOFARG)
+ }
+}
+
+// Change the P2 operand of instruction addr so that it points to
+// the address of the next instruction to be coded.
+func Xsqlite3VdbeJumpHere(tls *libc.TLS, p uintptr, addr int32) {
+ Xsqlite3VdbeChangeP2(tls, p, addr, (*Vdbe)(unsafe.Pointer(p)).FnOp)
+}
+
+// Change the P2 operand of the jump instruction at addr so that
+// the jump lands on the next opcode. Or if the jump instruction was
+// the previous opcode (and is thus a no-op) then simply back up
+// the next instruction counter by one slot so that the jump is
+// overwritten by the next inserted opcode.
+//
+// This routine is an optimization of sqlite3VdbeJumpHere() that
+// strives to omit useless byte-code like this:
+//
+// 7 Once 0 8 0
+// 8 ...
+func Xsqlite3VdbeJumpHereOrPopInst(tls *libc.TLS, p uintptr, addr int32) {
+ if addr == (*Vdbe)(unsafe.Pointer(p)).FnOp-1 {
+ (*Vdbe)(unsafe.Pointer(p)).FnOp--
+ } else {
+ Xsqlite3VdbeChangeP2(tls, p, addr, (*Vdbe)(unsafe.Pointer(p)).FnOp)
+ }
+}
+
+func freeEphemeralFunction(tls *libc.TLS, db uintptr, pDef uintptr) {
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_EPHEM) != U32(0) {
+ Xsqlite3DbNNFreeNN(tls, db, pDef)
+ }
+}
+
+func freeP4Mem(tls *libc.TLS, db uintptr, p uintptr) {
+ if (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ Xsqlite3DbFree(tls, db, (*Mem)(unsafe.Pointer(p)).FzMalloc)
+ }
+ Xsqlite3DbNNFreeNN(tls, db, p)
+}
+
+func freeP4FuncCtx(tls *libc.TLS, db uintptr, p uintptr) {
+ freeEphemeralFunction(tls, db, (*Sqlite3_context)(unsafe.Pointer(p)).FpFunc)
+ Xsqlite3DbNNFreeNN(tls, db, p)
+}
+
+func freeP4(tls *libc.TLS, db uintptr, p4type int32, p4 uintptr) {
+ switch p4type {
+ case -15:
+ {
+ freeP4FuncCtx(tls, db, p4)
+ break
+
+ }
+ case -12:
+ fallthrough
+ case -13:
+ fallthrough
+ case -6:
+ fallthrough
+ case -14:
+ {
+ if p4 != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, p4)
+ }
+ break
+
+ }
+ case -8:
+ {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ Xsqlite3KeyInfoUnref(tls, p4)
+ }
+ break
+
+ }
+ case -7:
+ {
+ freeEphemeralFunction(tls, db, p4)
+ break
+
+ }
+ case -10:
+ {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ Xsqlite3ValueFree(tls, p4)
+ } else {
+ freeP4Mem(tls, db, p4)
+ }
+ break
+
+ }
+ case -11:
+ {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ Xsqlite3VtabUnlock(tls, p4)
+ }
+ break
+
+ }
+ }
+}
+
+func vdbeFreeOpArray(tls *libc.TLS, db uintptr, aOp uintptr, nOp int32) {
+ if aOp != 0 {
+ var pOp uintptr = aOp + uintptr(nOp-1)*24
+ for 1 != 0 {
+ if int32((*Op)(unsafe.Pointer(pOp)).Fp4type) <= -6 {
+ freeP4(tls, db, int32((*Op)(unsafe.Pointer(pOp)).Fp4type), *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ }
+ if pOp == aOp {
+ break
+ }
+ pOp -= 24
+ }
+ Xsqlite3DbNNFreeNN(tls, db, aOp)
+ }
+}
+
+// Link the SubProgram object passed as the second argument into the linked
+// list at Vdbe.pSubProgram. This list is used to delete all sub-program
+// objects when the VM is no longer required.
+func Xsqlite3VdbeLinkSubProgram(tls *libc.TLS, pVdbe uintptr, p uintptr) {
+ (*SubProgram)(unsafe.Pointer(p)).FpNext = (*Vdbe)(unsafe.Pointer(pVdbe)).FpProgram
+ (*Vdbe)(unsafe.Pointer(pVdbe)).FpProgram = p
+}
+
+// Return true if the given Vdbe has any SubPrograms.
+func Xsqlite3VdbeHasSubProgram(tls *libc.TLS, pVdbe uintptr) int32 {
+ return libc.Bool32((*Vdbe)(unsafe.Pointer(pVdbe)).FpProgram != uintptr(0))
+}
+
+// Change the opcode at addr into OP_Noop
+func Xsqlite3VdbeChangeToNoop(tls *libc.TLS, p uintptr, addr int32) int32 {
+ var pOp uintptr
+ if (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FmallocFailed != 0 {
+ return 0
+ }
+
+ pOp = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(addr)*24
+ freeP4(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp4type), *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(P4_NOTUSED)
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = uintptr(0)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(OP_Noop)
+ return 1
+}
+
+// If the last opcode is "op" and it is not a jump destination,
+// then remove it. Return true if and only if an opcode was removed.
+func Xsqlite3VdbeDeletePriorOpcode(tls *libc.TLS, p uintptr, op U8) int32 {
+ if (*Vdbe)(unsafe.Pointer(p)).FnOp > 0 && int32((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr((*Vdbe)(unsafe.Pointer(p)).FnOp-1)*24)).Fopcode) == int32(op) {
+ return Xsqlite3VdbeChangeToNoop(tls, p, (*Vdbe)(unsafe.Pointer(p)).FnOp-1)
+ } else {
+ return 0
+ }
+ return int32(0)
+}
+
+func vdbeChangeP4Full(tls *libc.TLS, p uintptr, pOp uintptr, zP4 uintptr, n int32) {
+ if (*Op)(unsafe.Pointer(pOp)).Fp4type != 0 {
+ freeP4(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, int32((*Op)(unsafe.Pointer(pOp)).Fp4type), *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(0)
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = uintptr(0)
+ }
+ if n < 0 {
+ Xsqlite3VdbeChangeP4(tls, p, int32((int64(pOp)-int64((*Vdbe)(unsafe.Pointer(p)).FaOp))/24), zP4, n)
+ } else {
+ if n == 0 {
+ n = Xsqlite3Strlen30(tls, zP4)
+ }
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = Xsqlite3DbStrNDup(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, zP4, uint64(n))
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(-6)
+ }
+}
+
+func Xsqlite3VdbeChangeP4(tls *libc.TLS, p uintptr, addr int32, zP4 uintptr, n int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = zP4
+
+ var pOp uintptr
+ var db uintptr
+
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ if n != -11 {
+ freeP4(tls, db, n, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return
+ }
+
+ if addr < 0 {
+ addr = (*Vdbe)(unsafe.Pointer(p)).FnOp - 1
+ }
+ pOp = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(addr)*24
+ if n >= 0 || (*Op)(unsafe.Pointer(pOp)).Fp4type != 0 {
+ vdbeChangeP4Full(tls, p, pOp, *(*uintptr)(unsafe.Pointer(bp)), n)
+ return
+ }
+ if n == -3 {
+ *(*int32)(unsafe.Pointer(pOp + 16)) = int32(*(*uintptr)(unsafe.Pointer(bp)))
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(-3)
+ } else if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = *(*uintptr)(unsafe.Pointer(bp))
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(n)
+ if n == -11 {
+ Xsqlite3VtabLock(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+}
+
+// Change the P4 operand of the most recently coded instruction
+// to the value defined by the arguments. This is a high-speed
+// version of sqlite3VdbeChangeP4().
+//
+// The P4 operand must not have been previously defined. And the new
+// P4 must not be P4_INT32. Use sqlite3VdbeChangeP4() in either of
+// those cases.
+func Xsqlite3VdbeAppendP4(tls *libc.TLS, p uintptr, pP4 uintptr, n int32) {
+ var pOp uintptr
+
+ if (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FmallocFailed != 0 {
+ freeP4(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, n, pP4)
+ } else {
+ pOp = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr((*Vdbe)(unsafe.Pointer(p)).FnOp-1)*24
+
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(n)
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = pP4
+ }
+}
+
+// Set the P4 on the most recently added opcode to the KeyInfo for the
+// index given.
+func Xsqlite3VdbeSetP4KeyInfo(tls *libc.TLS, pParse uintptr, pIdx uintptr) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pKeyInfo uintptr
+
+ pKeyInfo = Xsqlite3KeyInfoOfIndex(tls, pParse, pIdx)
+ if pKeyInfo != 0 {
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+ }
+}
+
+// Return the opcode for a given address. The address must be non-negative.
+// See sqlite3VdbeGetLastOp() to get the most recently added opcode.
+//
+// If a memory allocation error has occurred prior to the calling of this
+// routine, then a pointer to a dummy VdbeOp will be returned. That opcode
+// is readable but not writable, though it is cast to a writable value.
+// The return of a dummy opcode allows the call to continue functioning
+// after an OOM fault without having to check to see if the return from
+// this routine is a valid pointer. But because the dummy.opcode is 0,
+// dummy will never be written to. This is verified by code inspection and
+// by running with Valgrind.
+func Xsqlite3VdbeGetOp(tls *libc.TLS, p uintptr, addr int32) uintptr {
+ if (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FmallocFailed != 0 {
+ return uintptr(unsafe.Pointer(&dummy))
+ } else {
+ return (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(addr)*24
+ }
+ return uintptr(0)
+}
+
+var dummy VdbeOp
+
+// Return the most recently added opcode
+func Xsqlite3VdbeGetLastOp(tls *libc.TLS, p uintptr) uintptr {
+ return Xsqlite3VdbeGetOp(tls, p, (*Vdbe)(unsafe.Pointer(p)).FnOp-1)
+}
+
+// Compute a string that describes the P4 parameter for an opcode.
+// Use zTemp for any required temporary buffer space.
+func Xsqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) uintptr {
+ bp := tls.Alloc(176)
+ defer tls.Free(176)
+
+ var zP4 uintptr = uintptr(0)
+
+ Xsqlite3StrAccumInit(tls, bp+144, uintptr(0), uintptr(0), 0, SQLITE_MAX_LENGTH)
+ switch int32((*Op)(unsafe.Pointer(pOp)).Fp4type) {
+ case -8:
+ {
+ var j int32
+ var pKeyInfo uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ Xsqlite3_str_appendf(tls, bp+144, ts+5342, libc.VaList(bp, int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)))
+ for j = 0; j < int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField); j++ {
+ var pColl uintptr = *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(j)*8))
+ var zColl uintptr
+ if pColl != 0 {
+ zColl = (*CollSeq)(unsafe.Pointer(pColl)).FzName
+ } else {
+ zColl = ts + 1547
+ }
+ if libc.Xstrcmp(tls, zColl, ts+1092) == 0 {
+ zColl = ts + 5347
+ }
+ Xsqlite3_str_appendf(tls, bp+144, ts+5349,
+ libc.VaList(bp+8, func() uintptr {
+ if int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&KEYINFO_ORDER_DESC != 0 {
+ return ts + 5335
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&KEYINFO_ORDER_BIGNULL != 0 {
+ return ts + 5357
+ }
+ return ts + 1547
+ }(),
+ zColl))
+ }
+ Xsqlite3_str_append(tls, bp+144, ts+5360, 1)
+ break
+
+ }
+ case -2:
+ {
+ var pColl uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ Xsqlite3_str_appendf(tls, bp+144, ts+5362, libc.VaList(bp+32, (*CollSeq)(unsafe.Pointer(pColl)).FzName,
+ encnames[(*CollSeq)(unsafe.Pointer(pColl)).Fenc]))
+ break
+
+ }
+ case -7:
+ {
+ var pDef uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ Xsqlite3_str_appendf(tls, bp+144, ts+5371, libc.VaList(bp+48, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
+ break
+
+ }
+ case -15:
+ {
+ var pDef uintptr = (*Sqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc
+ Xsqlite3_str_appendf(tls, bp+144, ts+5371, libc.VaList(bp+64, (*FuncDef)(unsafe.Pointer(pDef)).FzName, int32((*FuncDef)(unsafe.Pointer(pDef)).FnArg)))
+ break
+
+ }
+ case -13:
+ {
+ Xsqlite3_str_appendf(tls, bp+144, ts+1327, libc.VaList(bp+80, *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16))))))
+ break
+
+ }
+ case -3:
+ {
+ Xsqlite3_str_appendf(tls, bp+144, ts+5378, libc.VaList(bp+88, *(*int32)(unsafe.Pointer(pOp + 16))))
+ break
+
+ }
+ case -12:
+ {
+ Xsqlite3_str_appendf(tls, bp+144, ts+1321, libc.VaList(bp+96, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16))))))
+ break
+
+ }
+ case -10:
+ {
+ var pMem uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Str != 0 {
+ zP4 = (*Mem)(unsafe.Pointer(pMem)).Fz
+ } else if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ Xsqlite3_str_appendf(tls, bp+144, ts+1327, libc.VaList(bp+104, *(*I64)(unsafe.Pointer(pMem))))
+ } else if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Real != 0 {
+ Xsqlite3_str_appendf(tls, bp+144, ts+1321, libc.VaList(bp+112, *(*float64)(unsafe.Pointer(pMem))))
+ } else if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Null != 0 {
+ zP4 = ts + 1548
+ } else {
+ zP4 = ts + 5381
+ }
+ break
+
+ }
+ case -11:
+ {
+ var pVtab uintptr = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab
+ Xsqlite3_str_appendf(tls, bp+144, ts+5388, libc.VaList(bp+120, pVtab))
+ break
+
+ }
+ case -14:
+ {
+ var i U32
+ var ai uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ var n U32 = *(*U32)(unsafe.Pointer(ai))
+
+ for i = U32(1); i <= n; i++ {
+ Xsqlite3_str_appendf(tls, bp+144, ts+5396, libc.VaList(bp+128, func() int32 {
+ if i == U32(1) {
+ return '['
+ }
+ return ','
+ }(), *(*U32)(unsafe.Pointer(ai + uintptr(i)*4))))
+ }
+ Xsqlite3_str_append(tls, bp+144, ts+5401, 1)
+ break
+
+ }
+ case -4:
+ {
+ zP4 = ts + 5403
+ break
+
+ }
+ case -5:
+ {
+ zP4 = (*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName
+ break
+
+ }
+ default:
+ {
+ zP4 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ }
+ }
+ if zP4 != 0 {
+ Xsqlite3_str_appendall(tls, bp+144, zP4)
+ }
+ if int32((*StrAccum)(unsafe.Pointer(bp+144)).FaccError)&SQLITE_NOMEM != 0 {
+ Xsqlite3OomFault(tls, db)
+ }
+ return Xsqlite3StrAccumFinish(tls, bp+144)
+}
+
+var encnames = [4]uintptr{ts + 5411, ts + 5413, ts + 5415, ts + 5420}
+
+// Declare to the Vdbe that the BTree object at db->aDb[i] is used.
+//
+// The prepared statements need to know in advance the complete set of
+// attached databases that will be use. A mask of these databases
+// is maintained in p->btreeMask. The p->lockMask value is the subset of
+// p->btreeMask of databases that will require a lock.
+func Xsqlite3VdbeUsesBtree(tls *libc.TLS, p uintptr, i int32) {
+ *(*YDbMask)(unsafe.Pointer(p + 204)) |= YDbMask(1) << i
+ if i != 1 && Xsqlite3BtreeSharable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FaDb+uintptr(i)*32)).FpBt) != 0 {
+ *(*YDbMask)(unsafe.Pointer(p + 208)) |= YDbMask(1) << i
+ }
+}
+
+// If SQLite is compiled to support shared-cache mode and to be threadsafe,
+// this routine obtains the mutex associated with each BtShared structure
+// that may be accessed by the VM passed as an argument. In doing so it also
+// sets the BtShared.db member of each of the BtShared structures, ensuring
+// that the correct busy-handler callback is invoked if required.
+//
+// If SQLite is not threadsafe but does support shared-cache mode, then
+// sqlite3BtreeEnter() is invoked to set the BtShared.db variables
+// of all of BtShared structures accessible via the database handle
+// associated with the VM.
+//
+// If SQLite is not threadsafe and does not support shared-cache mode, this
+// function is a no-op.
+//
+// The p->btreeMask field is a bitmask of all btrees that the prepared
+// statement p will ever use. Let N be the number of bits in p->btreeMask
+// corresponding to btrees that use shared cache. Then the runtime of
+// this routine is N*N. But as N is rarely more than 1, this should not
+// be a problem.
+func Xsqlite3VdbeEnter(tls *libc.TLS, p uintptr) {
+ var i int32
+ var db uintptr
+ var aDb uintptr
+ var nDb int32
+ if (*Vdbe)(unsafe.Pointer(p)).FlockMask == YDbMask(0) {
+ return
+ }
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ aDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb
+ nDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb
+ for i = 0; i < nDb; i++ {
+ if i != 1 && (*Vdbe)(unsafe.Pointer(p)).FlockMask&(YDbMask(1)<<i) != YDbMask(0) && (*Db)(unsafe.Pointer(aDb+uintptr(i)*32)).FpBt != uintptr(0) {
+ Xsqlite3BtreeEnter(tls, (*Db)(unsafe.Pointer(aDb+uintptr(i)*32)).FpBt)
+ }
+ }
+}
+
+func vdbeLeave(tls *libc.TLS, p uintptr) {
+ var i int32
+ var db uintptr
+ var aDb uintptr
+ var nDb int32
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ aDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb
+ nDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb
+ for i = 0; i < nDb; i++ {
+ if i != 1 && (*Vdbe)(unsafe.Pointer(p)).FlockMask&(YDbMask(1)<<i) != YDbMask(0) && (*Db)(unsafe.Pointer(aDb+uintptr(i)*32)).FpBt != uintptr(0) {
+ Xsqlite3BtreeLeave(tls, (*Db)(unsafe.Pointer(aDb+uintptr(i)*32)).FpBt)
+ }
+ }
+}
+
+func Xsqlite3VdbeLeave(tls *libc.TLS, p uintptr) {
+ if (*Vdbe)(unsafe.Pointer(p)).FlockMask == YDbMask(0) {
+ return
+ }
+ vdbeLeave(tls, p)
+}
+
+func initMemArray(tls *libc.TLS, p uintptr, N int32, db uintptr, flags U16) {
+ if N > 0 {
+ for __ccgo := true; __ccgo; __ccgo = libc.PreDecInt32(&N, 1) > 0 {
+ (*Mem)(unsafe.Pointer(p)).Fflags = flags
+ (*Mem)(unsafe.Pointer(p)).Fdb = db
+ (*Mem)(unsafe.Pointer(p)).FszMalloc = 0
+ p += 56
+ }
+ }
+}
+
+func releaseMemArray(tls *libc.TLS, p uintptr, N int32) {
+ if p != 0 && N != 0 {
+ var pEnd uintptr = p + uintptr(N)*56
+ var db uintptr = (*Mem)(unsafe.Pointer(p)).Fdb
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed != 0 {
+ for __ccgo := true; __ccgo; __ccgo = libc.PreIncUintptr(&p, 56) < pEnd {
+ if (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ Xsqlite3DbFree(tls, db, (*Mem)(unsafe.Pointer(p)).FzMalloc)
+ }
+ }
+ return
+ }
+ for __ccgo1 := true; __ccgo1; __ccgo1 = libc.PreIncUintptr(&p, 56) < pEnd {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ Xsqlite3VdbeMemRelease(tls, p)
+ (*Mem)(unsafe.Pointer(p)).Fflags = U16(MEM_Undefined)
+ } else if (*Mem)(unsafe.Pointer(p)).FszMalloc != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Mem)(unsafe.Pointer(p)).FzMalloc)
+ (*Mem)(unsafe.Pointer(p)).FszMalloc = 0
+ (*Mem)(unsafe.Pointer(p)).Fflags = U16(MEM_Undefined)
+ }
+ }
+ }
+}
+
+// This is a destructor on a Mem object (which is really an sqlite3_value)
+// that deletes the Frame object that is attached to it as a blob.
+//
+// This routine does not delete the Frame right away. It merely adds the
+// frame to a list of frames to be deleted when the Vdbe halts.
+func Xsqlite3VdbeFrameMemDel(tls *libc.TLS, pArg uintptr) {
+ var pFrame uintptr = pArg
+
+ (*VdbeFrame)(unsafe.Pointer(pFrame)).FpParent = (*Vdbe)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(pFrame)).Fv)).FpDelFrame
+ (*Vdbe)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(pFrame)).Fv)).FpDelFrame = pFrame
+}
+
+// Locate the next opcode to be displayed in EXPLAIN or EXPLAIN
+// QUERY PLAN output.
+//
+// Return SQLITE_ROW on success. Return SQLITE_DONE if there are no
+// more opcodes to be displayed.
+func Xsqlite3VdbeNextOpcode(tls *libc.TLS, p uintptr, pSub uintptr, eMode int32, piPc uintptr, piAddr uintptr, paOp uintptr) int32 {
+ var nRow int32
+ var nSub int32 = 0
+ var apSub uintptr = uintptr(0)
+ var i int32
+ var rc int32 = SQLITE_OK
+ var aOp uintptr = uintptr(0)
+ var iPc int32
+
+ nRow = (*Vdbe)(unsafe.Pointer(p)).FnOp
+ if pSub != uintptr(0) {
+ if int32((*Mem)(unsafe.Pointer(pSub)).Fflags)&MEM_Blob != 0 {
+ nSub = int32(uint64((*Mem)(unsafe.Pointer(pSub)).Fn) / uint64(unsafe.Sizeof(uintptr(0))))
+ apSub = (*Mem)(unsafe.Pointer(pSub)).Fz
+ }
+ for i = 0; i < nSub; i++ {
+ nRow = nRow + (*SubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apSub + uintptr(i)*8)))).FnOp
+ }
+ }
+ iPc = *(*int32)(unsafe.Pointer(piPc))
+ for 1 != 0 {
+ i = libc.PostIncInt32(&iPc, 1)
+ if i >= nRow {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_OK
+ rc = SQLITE_DONE
+ break
+ }
+ if i < (*Vdbe)(unsafe.Pointer(p)).FnOp {
+ aOp = (*Vdbe)(unsafe.Pointer(p)).FaOp
+ } else {
+ var j int32
+ i = i - (*Vdbe)(unsafe.Pointer(p)).FnOp
+
+ for j = 0; i >= (*SubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apSub + uintptr(j)*8)))).FnOp; j++ {
+ i = i - (*SubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apSub + uintptr(j)*8)))).FnOp
+
+ }
+ aOp = (*SubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apSub + uintptr(j)*8)))).FaOp
+ }
+
+ if pSub != uintptr(0) && int32((*Op)(unsafe.Pointer(aOp+uintptr(i)*24)).Fp4type) == -4 {
+ var nByte int32 = int32(uint64(nSub+1) * uint64(unsafe.Sizeof(uintptr(0))))
+ var j int32
+ for j = 0; j < nSub; j++ {
+ if *(*uintptr)(unsafe.Pointer(apSub + uintptr(j)*8)) == *(*uintptr)(unsafe.Pointer(aOp + uintptr(i)*24 + 16)) {
+ break
+ }
+ }
+ if j == nSub {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = Xsqlite3VdbeMemGrow(tls, pSub, nByte, libc.Bool32(nSub != 0))
+ if (*Vdbe)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ rc = SQLITE_ERROR
+ break
+ }
+ apSub = (*Mem)(unsafe.Pointer(pSub)).Fz
+ *(*uintptr)(unsafe.Pointer(apSub + uintptr(libc.PostIncInt32(&nSub, 1))*8)) = *(*uintptr)(unsafe.Pointer(aOp + uintptr(i)*24 + 16))
+ (*Mem)(unsafe.Pointer(pSub)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pSub)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Blob)
+ (*Mem)(unsafe.Pointer(pSub)).Fn = int32(uint64(nSub) * uint64(unsafe.Sizeof(uintptr(0))))
+ nRow = nRow + (*SubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aOp + uintptr(i)*24 + 16)))).FnOp
+ }
+ }
+ if eMode == 0 {
+ break
+ }
+ {
+ if int32((*Op)(unsafe.Pointer(aOp+uintptr(i)*24)).Fopcode) == OP_Explain {
+ break
+ }
+ if int32((*Op)(unsafe.Pointer(aOp+uintptr(i)*24)).Fopcode) == OP_Init && iPc > 1 {
+ break
+ }
+
+ }
+ }
+ *(*int32)(unsafe.Pointer(piPc)) = iPc
+ *(*int32)(unsafe.Pointer(piAddr)) = i
+ *(*uintptr)(unsafe.Pointer(paOp)) = aOp
+ return rc
+}
+
+// Delete a VdbeFrame object and its contents. VdbeFrame objects are
+// allocated by the OP_Program opcode in sqlite3VdbeExec().
+func Xsqlite3VdbeFrameDelete(tls *libc.TLS, p uintptr) {
+ var i int32
+ var aMem uintptr = p + 112
+ var apCsr uintptr = aMem + uintptr((*VdbeFrame)(unsafe.Pointer(p)).FnChildMem)*56
+
+ for i = 0; i < (*VdbeFrame)(unsafe.Pointer(p)).FnChildCsr; i++ {
+ if *(*uintptr)(unsafe.Pointer(apCsr + uintptr(i)*8)) != 0 {
+ Xsqlite3VdbeFreeCursorNN(tls, (*VdbeFrame)(unsafe.Pointer(p)).Fv, *(*uintptr)(unsafe.Pointer(apCsr + uintptr(i)*8)))
+ }
+ }
+ releaseMemArray(tls, aMem, (*VdbeFrame)(unsafe.Pointer(p)).FnChildMem)
+ Xsqlite3VdbeDeleteAuxData(tls, (*Vdbe)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(p)).Fv)).Fdb, p+64, -1, 0)
+ Xsqlite3DbFree(tls, (*Vdbe)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(p)).Fv)).Fdb, p)
+}
+
+// Give a listing of the program in the virtual machine.
+//
+// The interface is the same as sqlite3VdbeExec(). But instead of
+// running the code, it invokes the callback once for each instruction.
+// This feature is used to implement "EXPLAIN".
+//
+// When p->explain==1, each instruction is listed. When
+// p->explain==2, only OP_Explain instructions are listed and these
+// are shown in a different format. p->explain==2 is used to implement
+// EXPLAIN QUERY PLAN.
+// 2018-04-24: In p->explain==2 mode, the OP_Init opcodes of triggers
+// are also shown, so that the boundaries between the main program and
+// each trigger are clear.
+//
+// When p->explain==1, first the main program is listed, then each of
+// the trigger subprograms are listed one by one.
+func Xsqlite3VdbeList(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pSub uintptr = uintptr(0)
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ var rc int32 = SQLITE_OK
+ var pMem uintptr = (*Vdbe)(unsafe.Pointer(p)).FaMem + 1*56
+ var bListSubprogs int32 = libc.Bool32(int32(*(*uint8)(unsafe.Pointer(p + 200))&0xc>>2) == 1 || (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TriggerEQP) != uint64(0))
+
+ var pOp uintptr
+
+ releaseMemArray(tls, pMem, 8)
+
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ return SQLITE_ERROR
+ }
+
+ if bListSubprogs != 0 {
+ pSub = (*Vdbe)(unsafe.Pointer(p)).FaMem + 9*56
+ } else {
+ pSub = uintptr(0)
+ }
+
+ rc = Xsqlite3VdbeNextOpcode(tls, p, pSub, libc.Bool32(int32(*(*uint8)(unsafe.Pointer(p + 200))&0xc>>2) == 2), p+48, bp, bp+8)
+
+ if rc == SQLITE_OK {
+ pOp = *(*uintptr)(unsafe.Pointer(bp + 8)) + uintptr(*(*int32)(unsafe.Pointer(bp)))*24
+ if *(*int32)(unsafe.Pointer(db + 432)) != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_INTERRUPT
+ rc = SQLITE_ERROR
+ Xsqlite3VdbeError(tls, p, Xsqlite3ErrStr(tls, (*Vdbe)(unsafe.Pointer(p)).Frc), 0)
+ } else {
+ var zP4 uintptr = Xsqlite3VdbeDisplayP4(tls, db, pOp)
+ if int32(*(*uint8)(unsafe.Pointer(p + 200))&0xc>>2) == 2 {
+ Xsqlite3VdbeMemSetInt64(tls, pMem, int64((*Op)(unsafe.Pointer(pOp)).Fp1))
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(1)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp2))
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(2)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp3))
+ Xsqlite3VdbeMemSetStr(tls, pMem+uintptr(3)*56, zP4, int64(-1), uint8(SQLITE_UTF8), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ (*Vdbe)(unsafe.Pointer(p)).FnResColumn = U16(4)
+ } else {
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(0)*56, int64(*(*int32)(unsafe.Pointer(bp))))
+ Xsqlite3VdbeMemSetStr(tls, pMem+uintptr(1)*56, Xsqlite3OpcodeName(tls, int32((*Op)(unsafe.Pointer(pOp)).Fopcode)),
+ int64(-1), uint8(SQLITE_UTF8), uintptr(0))
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(2)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp1))
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(3)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp2))
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(4)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp3))
+
+ Xsqlite3VdbeMemSetInt64(tls, pMem+uintptr(6)*56, int64((*Op)(unsafe.Pointer(pOp)).Fp5))
+ Xsqlite3VdbeMemSetNull(tls, pMem+uintptr(7)*56)
+ Xsqlite3VdbeMemSetStr(tls, pMem+uintptr(5)*56, zP4, int64(-1), uint8(SQLITE_UTF8), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ (*Vdbe)(unsafe.Pointer(p)).FnResColumn = U16(8)
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FpResultRow = pMem
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ rc = SQLITE_ERROR
+ } else {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_OK
+ rc = SQLITE_ROW
+ }
+ }
+ }
+ return rc
+}
+
+// An instance of this object describes bulk memory available for use
+// by subcomponents of a prepared statement. Space is allocated out
+// of a ReusableSpace object by the allocSpace() routine below.
+type ReusableSpace = struct {
+ FpSpace uintptr
+ FnFree Sqlite3_int64
+ FnNeeded Sqlite3_int64
+}
+
+func allocSpace(tls *libc.TLS, p uintptr, pBuf uintptr, nByte Sqlite3_int64) uintptr {
+ if pBuf == uintptr(0) {
+ nByte = nByte
+ if nByte <= (*ReusableSpace)(unsafe.Pointer(p)).FnFree {
+ *(*Sqlite3_int64)(unsafe.Pointer(p + 8)) -= nByte
+ pBuf = (*ReusableSpace)(unsafe.Pointer(p)).FpSpace + uintptr((*ReusableSpace)(unsafe.Pointer(p)).FnFree)
+ } else {
+ *(*Sqlite3_int64)(unsafe.Pointer(p + 16)) += nByte
+ }
+ }
+
+ return pBuf
+}
+
+// Rewind the VDBE back to the beginning in preparation for
+// running it.
+func Xsqlite3VdbeRewind(tls *libc.TLS, p uintptr) {
+ (*Vdbe)(unsafe.Pointer(p)).FeVdbeState = U8(VDBE_READY_STATE)
+
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = -1
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_OK
+ (*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8(OE_Abort)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ (*Vdbe)(unsafe.Pointer(p)).FcacheCtr = U32(1)
+ (*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat = U8(255)
+ (*Vdbe)(unsafe.Pointer(p)).FiStatement = 0
+ (*Vdbe)(unsafe.Pointer(p)).FnFkConstraint = int64(0)
+}
+
+// Prepare a virtual machine for execution for the first time after
+// creating the virtual machine. This involves things such
+// as allocating registers and initializing the program counter.
+// After the VDBE has be prepped, it can be executed by one or more
+// calls to sqlite3VdbeExec().
+//
+// This function may be called exactly once on each virtual machine.
+// After this routine is called the VM has been "packaged" and is ready
+// to run. After this routine is called, further calls to
+// sqlite3VdbeAddOp() functions are prohibited. This routine disconnects
+// the Vdbe from the Parse object that helped generate it so that the
+// the Vdbe becomes an independent entity and the Parse object can be
+// destroyed.
+//
+// Use the sqlite3VdbeRewind() procedure to restore a virtual machine back
+// to its initial state after it has been run.
+func Xsqlite3VdbeMakeReady(tls *libc.TLS, p uintptr, pParse uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var db uintptr
+ var nVar int32
+ var nMem int32
+ var nCursor int32
+
+ var n int32
+
+ (*Vdbe)(unsafe.Pointer(p)).FpVList = (*Parse)(unsafe.Pointer(pParse)).FpVList
+ (*Parse)(unsafe.Pointer(pParse)).FpVList = uintptr(0)
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ nVar = int32((*Parse)(unsafe.Pointer(pParse)).FnVar)
+ nMem = (*Parse)(unsafe.Pointer(pParse)).FnMem
+ nCursor = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ *(*int32)(unsafe.Pointer(bp)) = (*Parse)(unsafe.Pointer(pParse)).FnMaxArg
+
+ nMem = nMem + nCursor
+ if nCursor == 0 && nMem > 0 {
+ nMem++
+ }
+
+ n = int32(uint64(unsafe.Sizeof(Op{})) * uint64((*Vdbe)(unsafe.Pointer(p)).FnOp))
+ (*ReusableSpace)(unsafe.Pointer(bp + 8)).FpSpace = (*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(n)
+
+ (*ReusableSpace)(unsafe.Pointer(bp + 8)).FnFree = Sqlite3_int64(((*Parse)(unsafe.Pointer(pParse)).FszOpAlloc - n) & libc.CplInt32(7))
+
+ resolveP2Values(tls, p, bp)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(U8(libc.Bool32((*Parse)(unsafe.Pointer(pParse)).FisMultiWrite != 0 && (*Parse)(unsafe.Pointer(pParse)).FmayAbort != 0))), 5, 0x20)
+ if (*Parse)(unsafe.Pointer(pParse)).Fexplain != 0 {
+ var iFirst int32
+ var mx int32
+ var i int32
+ if nMem < 10 {
+ nMem = 10
+ }
+ libc.SetBitFieldPtr8Uint32(p+200, Bft((*Parse)(unsafe.Pointer(pParse)).Fexplain), 2, 0xc)
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fexplain) == 2 {
+ Xsqlite3VdbeSetNumCols(tls, p, 4)
+ iFirst = 8
+ mx = 12
+ } else {
+ Xsqlite3VdbeSetNumCols(tls, p, 8)
+ iFirst = 0
+ mx = 8
+ }
+ for i = iFirst; i < mx; i++ {
+ Xsqlite3VdbeSetColName(tls, p, i-iFirst, COLNAME_NAME,
+ azColName[i], uintptr(0))
+ }
+ }
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 0, 0x3)
+
+ (*ReusableSpace)(unsafe.Pointer(bp + 8)).FnNeeded = int64(0)
+ (*Vdbe)(unsafe.Pointer(p)).FaMem = allocSpace(tls, bp+8, uintptr(0), int64(uint64(nMem)*uint64(unsafe.Sizeof(Mem{}))))
+ (*Vdbe)(unsafe.Pointer(p)).FaVar = allocSpace(tls, bp+8, uintptr(0), int64(uint64(nVar)*uint64(unsafe.Sizeof(Mem{}))))
+ (*Vdbe)(unsafe.Pointer(p)).FapArg = allocSpace(tls, bp+8, uintptr(0), int64(uint64(*(*int32)(unsafe.Pointer(bp)))*uint64(unsafe.Sizeof(uintptr(0)))))
+ (*Vdbe)(unsafe.Pointer(p)).FapCsr = allocSpace(tls, bp+8, uintptr(0), int64(uint64(nCursor)*uint64(unsafe.Sizeof(uintptr(0)))))
+ if (*ReusableSpace)(unsafe.Pointer(bp+8)).FnNeeded != 0 {
+ (*ReusableSpace)(unsafe.Pointer(bp + 8)).FpSpace = libc.AssignPtrUintptr(p+256, Xsqlite3DbMallocRawNN(tls, db, uint64((*ReusableSpace)(unsafe.Pointer(bp+8)).FnNeeded)))
+ (*ReusableSpace)(unsafe.Pointer(bp + 8)).FnFree = (*ReusableSpace)(unsafe.Pointer(bp + 8)).FnNeeded
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ (*Vdbe)(unsafe.Pointer(p)).FaMem = allocSpace(tls, bp+8, (*Vdbe)(unsafe.Pointer(p)).FaMem, int64(uint64(nMem)*uint64(unsafe.Sizeof(Mem{}))))
+ (*Vdbe)(unsafe.Pointer(p)).FaVar = allocSpace(tls, bp+8, (*Vdbe)(unsafe.Pointer(p)).FaVar, int64(uint64(nVar)*uint64(unsafe.Sizeof(Mem{}))))
+ (*Vdbe)(unsafe.Pointer(p)).FapArg = allocSpace(tls, bp+8, (*Vdbe)(unsafe.Pointer(p)).FapArg, int64(uint64(*(*int32)(unsafe.Pointer(bp)))*uint64(unsafe.Sizeof(uintptr(0)))))
+ (*Vdbe)(unsafe.Pointer(p)).FapCsr = allocSpace(tls, bp+8, (*Vdbe)(unsafe.Pointer(p)).FapCsr, int64(uint64(nCursor)*uint64(unsafe.Sizeof(uintptr(0)))))
+ }
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).FnVar = int16(0)
+ (*Vdbe)(unsafe.Pointer(p)).FnCursor = 0
+ (*Vdbe)(unsafe.Pointer(p)).FnMem = 0
+ } else {
+ (*Vdbe)(unsafe.Pointer(p)).FnCursor = nCursor
+ (*Vdbe)(unsafe.Pointer(p)).FnVar = YnVar(nVar)
+ initMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar, nVar, db, uint16(MEM_Null))
+ (*Vdbe)(unsafe.Pointer(p)).FnMem = nMem
+ initMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaMem, nMem, db, uint16(MEM_Undefined))
+ libc.X__builtin___memset_chk(tls, (*Vdbe)(unsafe.Pointer(p)).FapCsr, 0, uint64(nCursor)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, (*Vdbe)(unsafe.Pointer(p)).FapCsr, 0))
+ }
+ Xsqlite3VdbeRewind(tls, p)
+}
+
+var azColName = [12]uintptr{
+ ts + 5425, ts + 5430, ts + 5437, ts + 5440, ts + 5443, ts + 5446, ts + 5449, ts + 5452,
+ ts + 5460, ts + 5463, ts + 5470, ts + 5478,
+}
+
+// Close a VDBE cursor and release all the resources that cursor
+// happens to hold.
+func Xsqlite3VdbeFreeCursor(tls *libc.TLS, p uintptr, pCx uintptr) {
+ if pCx != 0 {
+ Xsqlite3VdbeFreeCursorNN(tls, p, pCx)
+ }
+}
+
+func Xsqlite3VdbeFreeCursorNN(tls *libc.TLS, p uintptr, pCx uintptr) {
+ switch int32((*VdbeCursor)(unsafe.Pointer(pCx)).FeCurType) {
+ case CURTYPE_SORTER:
+ {
+ Xsqlite3VdbeSorterClose(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, pCx)
+ break
+
+ }
+ case CURTYPE_BTREE:
+ {
+ Xsqlite3BtreeCloseCursor(tls, *(*uintptr)(unsafe.Pointer(pCx + 48)))
+ break
+
+ }
+ case CURTYPE_VTAB:
+ {
+ var pVCur uintptr = *(*uintptr)(unsafe.Pointer(pCx + 48))
+ var pModule uintptr = (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(pVCur)).FpVtab)).FpModule
+
+ (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(pVCur)).FpVtab)).FnRef--
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule)).FxClose})).f(tls, pVCur)
+ break
+
+ }
+ }
+}
+
+func closeCursorsInFrame(tls *libc.TLS, p uintptr) {
+ var i int32
+ for i = 0; i < (*Vdbe)(unsafe.Pointer(p)).FnCursor; i++ {
+ var pC uintptr = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(i)*8))
+ if pC != 0 {
+ Xsqlite3VdbeFreeCursorNN(tls, p, pC)
+ *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(i)*8)) = uintptr(0)
+ }
+ }
+}
+
+// Copy the values stored in the VdbeFrame structure to its Vdbe. This
+// is used, for example, when a trigger sub-program is halted to restore
+// control to the main program.
+func Xsqlite3VdbeFrameRestore(tls *libc.TLS, pFrame uintptr) int32 {
+ var v uintptr = (*VdbeFrame)(unsafe.Pointer(pFrame)).Fv
+ closeCursorsInFrame(tls, v)
+ (*Vdbe)(unsafe.Pointer(v)).FaOp = (*VdbeFrame)(unsafe.Pointer(pFrame)).FaOp
+ (*Vdbe)(unsafe.Pointer(v)).FnOp = (*VdbeFrame)(unsafe.Pointer(pFrame)).FnOp
+ (*Vdbe)(unsafe.Pointer(v)).FaMem = (*VdbeFrame)(unsafe.Pointer(pFrame)).FaMem
+ (*Vdbe)(unsafe.Pointer(v)).FnMem = (*VdbeFrame)(unsafe.Pointer(pFrame)).FnMem
+ (*Vdbe)(unsafe.Pointer(v)).FapCsr = (*VdbeFrame)(unsafe.Pointer(pFrame)).FapCsr
+ (*Vdbe)(unsafe.Pointer(v)).FnCursor = (*VdbeFrame)(unsafe.Pointer(pFrame)).FnCursor
+ (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).Fdb)).FlastRowid = (*VdbeFrame)(unsafe.Pointer(pFrame)).FlastRowid
+ (*Vdbe)(unsafe.Pointer(v)).FnChange = (*VdbeFrame)(unsafe.Pointer(pFrame)).FnChange
+ (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).Fdb)).FnChange = (*VdbeFrame)(unsafe.Pointer(pFrame)).FnDbChange
+ Xsqlite3VdbeDeleteAuxData(tls, (*Vdbe)(unsafe.Pointer(v)).Fdb, v+296, -1, 0)
+ (*Vdbe)(unsafe.Pointer(v)).FpAuxData = (*VdbeFrame)(unsafe.Pointer(pFrame)).FpAuxData
+ (*VdbeFrame)(unsafe.Pointer(pFrame)).FpAuxData = uintptr(0)
+ return (*VdbeFrame)(unsafe.Pointer(pFrame)).Fpc
+}
+
+func closeAllCursors(tls *libc.TLS, p uintptr) {
+ if (*Vdbe)(unsafe.Pointer(p)).FpFrame != 0 {
+ var pFrame uintptr
+ for pFrame = (*Vdbe)(unsafe.Pointer(p)).FpFrame; (*VdbeFrame)(unsafe.Pointer(pFrame)).FpParent != 0; pFrame = (*VdbeFrame)(unsafe.Pointer(pFrame)).FpParent {
+ }
+ Xsqlite3VdbeFrameRestore(tls, pFrame)
+ (*Vdbe)(unsafe.Pointer(p)).FpFrame = uintptr(0)
+ (*Vdbe)(unsafe.Pointer(p)).FnFrame = 0
+ }
+
+ closeCursorsInFrame(tls, p)
+ releaseMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaMem, (*Vdbe)(unsafe.Pointer(p)).FnMem)
+ for (*Vdbe)(unsafe.Pointer(p)).FpDelFrame != 0 {
+ var pDel uintptr = (*Vdbe)(unsafe.Pointer(p)).FpDelFrame
+ (*Vdbe)(unsafe.Pointer(p)).FpDelFrame = (*VdbeFrame)(unsafe.Pointer(pDel)).FpParent
+ Xsqlite3VdbeFrameDelete(tls, pDel)
+ }
+
+ if (*Vdbe)(unsafe.Pointer(p)).FpAuxData != 0 {
+ Xsqlite3VdbeDeleteAuxData(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, p+296, -1, 0)
+ }
+
+}
+
+// Set the number of result columns that will be returned by this SQL
+// statement. This is now set at compile time, rather than during
+// execution of the vdbe program so that sqlite3_column_count() can
+// be called on an SQL statement before sqlite3_step().
+func Xsqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) {
+ var n int32
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ if (*Vdbe)(unsafe.Pointer(p)).FnResColumn != 0 {
+ releaseMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaColName, int32((*Vdbe)(unsafe.Pointer(p)).FnResColumn)*COLNAME_N)
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FaColName)
+ }
+ n = nResColumn * COLNAME_N
+ (*Vdbe)(unsafe.Pointer(p)).FnResColumn = U16(nResColumn)
+ (*Vdbe)(unsafe.Pointer(p)).FaColName = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Mem{}))*uint64(n))
+ if (*Vdbe)(unsafe.Pointer(p)).FaColName == uintptr(0) {
+ return
+ }
+ initMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaColName, n, db, uint16(MEM_Null))
+}
+
+// Set the name of the idx'th column to be returned by the SQL statement.
+// zName must be a pointer to a nul terminated string.
+//
+// This call must be made after a call to sqlite3VdbeSetNumCols().
+//
+// The final parameter, xDel, must be one of SQLITE_DYNAMIC, SQLITE_STATIC
+// or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed
+// to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed.
+func Xsqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) int32 {
+ var rc int32
+ var pColName uintptr
+
+ if (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FmallocFailed != 0 {
+ return SQLITE_NOMEM
+ }
+
+ pColName = (*Vdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*int32((*Vdbe)(unsafe.Pointer(p)).FnResColumn))*56
+ rc = Xsqlite3VdbeMemSetStr(tls, pColName, zName, int64(-1), uint8(SQLITE_UTF8), xDel)
+
+ return rc
+}
+
+func vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var i int32
+ var nTrans int32 = 0
+
+ var rc int32 = SQLITE_OK
+ var needXcommit int32 = 0
+
+ rc = Xsqlite3VtabSync(tls, db, p)
+
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if Xsqlite3BtreeTxnState(tls, pBt) == SQLITE_TXN_WRITE {
+ var pPager uintptr
+ needXcommit = 1
+ Xsqlite3BtreeEnter(tls, pBt)
+ pPager = Xsqlite3BtreePager(tls, pBt)
+ if int32((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).Fsafety_level) != PAGER_SYNCHRONOUS_OFF &&
+ aMJNeeded[Xsqlite3PagerGetJournalMode(tls, pPager)] != 0 &&
+ Xsqlite3PagerIsMemdb(tls, pPager) == 0 {
+ nTrans++
+ }
+ rc = Xsqlite3PagerExclusiveLock(tls, pPager)
+ Xsqlite3BtreeLeave(tls, pBt)
+ }
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ if needXcommit != 0 && (*Sqlite3)(unsafe.Pointer(db)).FxCommitCallback != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxCommitCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpCommitArg)
+ if rc != 0 {
+ return SQLITE_CONSTRAINT | int32(2)<<8
+ }
+ }
+
+ if 0 == Xsqlite3Strlen30(tls, Xsqlite3BtreeGetFilename(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt)) ||
+ nTrans <= 1 {
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ rc = Xsqlite3BtreeCommitPhaseOne(tls, pBt, uintptr(0))
+ }
+ }
+
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ rc = Xsqlite3BtreeCommitPhaseTwo(tls, pBt, 0)
+ }
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3VtabCommit(tls, db)
+ }
+ } else {
+ var pVfs uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpVfs
+ var zSuper uintptr = uintptr(0)
+ var zMainFile uintptr = Xsqlite3BtreeGetFilename(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ var offset I64 = int64(0)
+
+ var retryCount int32 = 0
+ var nMainFile int32
+
+ nMainFile = Xsqlite3Strlen30(tls, zMainFile)
+ zSuper = Xsqlite3MPrintf(tls, db, ts+5485, libc.VaList(bp, 0, zMainFile, 0))
+ if zSuper == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ zSuper += uintptr(4)
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 60)) != 0 {
+ if retryCount != 0 {
+ if retryCount > 100 {
+ Xsqlite3_log(tls, SQLITE_FULL, ts+5497, libc.VaList(bp+24, zSuper))
+ Xsqlite3OsDelete(tls, pVfs, zSuper, 0)
+ break
+ } else if retryCount == 1 {
+ Xsqlite3_log(tls, SQLITE_FULL, ts+5511, libc.VaList(bp+32, zSuper))
+ }
+ }
+ retryCount++
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U32(0))), bp+56)
+ Xsqlite3_snprintf(tls, 13, zSuper+uintptr(nMainFile), ts+5526,
+ libc.VaList(bp+40, *(*U32)(unsafe.Pointer(bp + 56))>>8&U32(0xffffff), *(*U32)(unsafe.Pointer(bp + 56))&U32(0xff)))
+
+ rc = Xsqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+60)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsOpenMalloc(tls, pVfs, zSuper, bp+64,
+ SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_EXCLUSIVE|SQLITE_OPEN_SUPER_JOURNAL, uintptr(0))
+ }
+ if rc != SQLITE_OK {
+ Xsqlite3DbFree(tls, db, zSuper-uintptr(4))
+ return rc
+ }
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if Xsqlite3BtreeTxnState(tls, pBt) == SQLITE_TXN_WRITE {
+ var zFile uintptr = Xsqlite3BtreeGetJournalname(tls, pBt)
+ if zFile == uintptr(0) {
+ continue
+ }
+
+ rc = Xsqlite3OsWrite(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), zFile, Xsqlite3Strlen30(tls, zFile)+1, offset)
+ offset = offset + I64(Xsqlite3Strlen30(tls, zFile)+1)
+ if rc != SQLITE_OK {
+ Xsqlite3OsCloseFree(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ Xsqlite3OsDelete(tls, pVfs, zSuper, 0)
+ Xsqlite3DbFree(tls, db, zSuper-uintptr(4))
+ return rc
+ }
+ }
+ }
+
+ if 0 == Xsqlite3OsDeviceCharacteristics(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))&SQLITE_IOCAP_SEQUENTIAL &&
+ SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3OsSync(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), SQLITE_SYNC_NORMAL)) {
+ Xsqlite3OsCloseFree(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ Xsqlite3OsDelete(tls, pVfs, zSuper, 0)
+ Xsqlite3DbFree(tls, db, zSuper-uintptr(4))
+ return rc
+ }
+
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ rc = Xsqlite3BtreeCommitPhaseOne(tls, pBt, zSuper)
+ }
+ }
+ Xsqlite3OsCloseFree(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+
+ if rc != SQLITE_OK {
+ Xsqlite3DbFree(tls, db, zSuper-uintptr(4))
+ return rc
+ }
+
+ rc = Xsqlite3OsDelete(tls, pVfs, zSuper, 1)
+ Xsqlite3DbFree(tls, db, zSuper-uintptr(4))
+ zSuper = uintptr(0)
+ if rc != 0 {
+ return rc
+ }
+
+ Xsqlite3BeginBenignMalloc(tls)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ Xsqlite3BtreeCommitPhaseTwo(tls, pBt, 1)
+ }
+ }
+ Xsqlite3EndBenignMalloc(tls)
+
+ Xsqlite3VtabCommit(tls, db)
+ }
+
+ return rc
+}
+
+var aMJNeeded = [6]U8{
+ U8(1),
+ U8(1),
+ U8(0),
+ U8(1),
+ U8(0),
+ U8(0),
+}
+
+func vdbeCloseStatement(tls *libc.TLS, p uintptr, eOp int32) int32 {
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ var rc int32 = SQLITE_OK
+ var i int32
+ var iSavepoint int32 = (*Vdbe)(unsafe.Pointer(p)).FiStatement - 1
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var rc2 int32 = SQLITE_OK
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ if eOp == SAVEPOINT_ROLLBACK {
+ rc2 = Xsqlite3BtreeSavepoint(tls, pBt, SAVEPOINT_ROLLBACK, iSavepoint)
+ }
+ if rc2 == SQLITE_OK {
+ rc2 = Xsqlite3BtreeSavepoint(tls, pBt, SAVEPOINT_RELEASE, iSavepoint)
+ }
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnStatement--
+ (*Vdbe)(unsafe.Pointer(p)).FiStatement = 0
+
+ if rc == SQLITE_OK {
+ if eOp == SAVEPOINT_ROLLBACK {
+ rc = Xsqlite3VtabSavepoint(tls, db, SAVEPOINT_ROLLBACK, iSavepoint)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3VtabSavepoint(tls, db, SAVEPOINT_RELEASE, iSavepoint)
+ }
+ }
+
+ if eOp == SAVEPOINT_ROLLBACK {
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons = (*Vdbe)(unsafe.Pointer(p)).FnStmtDefCons
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = (*Vdbe)(unsafe.Pointer(p)).FnStmtDefImmCons
+ }
+ return rc
+}
+
+func Xsqlite3VdbeCloseStatement(tls *libc.TLS, p uintptr, eOp int32) int32 {
+ if (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FnStatement != 0 && (*Vdbe)(unsafe.Pointer(p)).FiStatement != 0 {
+ return vdbeCloseStatement(tls, p, eOp)
+ }
+ return SQLITE_OK
+}
+
+// This function is called when a transaction opened by the database
+// handle associated with the VM passed as an argument is about to be
+// committed. If there are outstanding deferred foreign key constraint
+// violations, return SQLITE_ERROR. Otherwise, SQLITE_OK.
+//
+// If there are outstanding FK violations and this function returns
+// SQLITE_ERROR, set the result of the VM to SQLITE_CONSTRAINT_FOREIGNKEY
+// and write an error message to it. Then return SQLITE_ERROR.
+func Xsqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) int32 {
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ if deferred != 0 && (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > int64(0) ||
+ !(deferred != 0) && (*Vdbe)(unsafe.Pointer(p)).FnFkConstraint > int64(0) {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_CONSTRAINT | int32(3)<<8
+ (*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8(OE_Abort)
+ Xsqlite3VdbeError(tls, p, ts+5539, 0)
+ if int32((*Vdbe)(unsafe.Pointer(p)).FprepFlags)&SQLITE_PREPARE_SAVESQL == 0 {
+ return SQLITE_ERROR
+ }
+ return SQLITE_CONSTRAINT | int32(3)<<8
+ }
+ return SQLITE_OK
+}
+
+// This routine is called the when a VDBE tries to halt. If the VDBE
+// has made changes and is in autocommit mode, then commit those
+// changes. If a rollback is needed, then do the rollback.
+//
+// This routine is the only way to move the sqlite3eOpenState of a VM from
+// SQLITE_STATE_RUN to SQLITE_STATE_HALT. It is harmless to
+// call this on a VM that is in the SQLITE_STATE_HALT state.
+//
+// Return an error code. If the commit could not complete because of
+// lock contention, return SQLITE_BUSY. If SQLITE_BUSY is returned, it
+// means the close did not happen and needs to be repeated.
+func Xsqlite3VdbeHalt(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ }
+ closeAllCursors(tls, p)
+
+ if Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x80>>7)) != 0 {
+ var mrc int32
+ var eStatementOp int32 = 0
+ var isSpecialError int32
+
+ Xsqlite3VdbeEnter(tls, p)
+
+ if (*Vdbe)(unsafe.Pointer(p)).Frc != 0 {
+ mrc = (*Vdbe)(unsafe.Pointer(p)).Frc & 0xff
+ isSpecialError = libc.Bool32(mrc == SQLITE_NOMEM ||
+ mrc == SQLITE_IOERR ||
+ mrc == SQLITE_INTERRUPT ||
+ mrc == SQLITE_FULL)
+ } else {
+ mrc = libc.AssignInt32(&isSpecialError, 0)
+ }
+ if isSpecialError != 0 {
+ if !(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6) != 0) || mrc != SQLITE_INTERRUPT {
+ if (mrc == SQLITE_NOMEM || mrc == SQLITE_FULL) && Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x20>>5)) != 0 {
+ eStatementOp = SAVEPOINT_ROLLBACK
+ } else {
+ Xsqlite3RollbackAll(tls, db, SQLITE_ABORT|int32(2)<<8)
+ Xsqlite3CloseSavepoints(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ }
+ }
+ }
+
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_OK || int32((*Vdbe)(unsafe.Pointer(p)).FerrorAction) == OE_Fail && !(isSpecialError != 0) {
+ Xsqlite3VdbeCheckFk(tls, p, 0)
+ }
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVTrans > 0 && (*Sqlite3)(unsafe.Pointer(db)).FaVTrans == uintptr(0)) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0 &&
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite == libc.Bool32(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6) == 0) {
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_OK || int32((*Vdbe)(unsafe.Pointer(p)).FerrorAction) == OE_Fail && !(isSpecialError != 0) {
+ rc = Xsqlite3VdbeCheckFk(tls, p, 1)
+ if rc != SQLITE_OK {
+ if Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6)) != 0 {
+ Xsqlite3VdbeLeave(tls, p)
+ return SQLITE_ERROR
+ }
+ rc = SQLITE_CONSTRAINT | int32(3)<<8
+ } else if (*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(0x00002)<<32) != 0 {
+ rc = SQLITE_CORRUPT
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(0x00002) << 32)
+ } else {
+ rc = vdbeCommit(tls, db, p)
+ }
+ if rc == SQLITE_BUSY && Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6)) != 0 {
+ Xsqlite3VdbeLeave(tls, p)
+ return SQLITE_BUSY
+ } else if rc != SQLITE_OK {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = rc
+ Xsqlite3RollbackAll(tls, db, SQLITE_OK)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons = int64(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = int64(0)
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_DeferFKs))
+ Xsqlite3CommitInternalChanges(tls, db)
+ }
+ } else {
+ Xsqlite3RollbackAll(tls, db, SQLITE_OK)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnStatement = 0
+ } else if eStatementOp == 0 {
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_OK || int32((*Vdbe)(unsafe.Pointer(p)).FerrorAction) == OE_Fail {
+ eStatementOp = SAVEPOINT_RELEASE
+ } else if int32((*Vdbe)(unsafe.Pointer(p)).FerrorAction) == OE_Abort {
+ eStatementOp = SAVEPOINT_ROLLBACK
+ } else {
+ Xsqlite3RollbackAll(tls, db, SQLITE_ABORT|int32(2)<<8)
+ Xsqlite3CloseSavepoints(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ }
+ }
+
+ if eStatementOp != 0 {
+ rc = Xsqlite3VdbeCloseStatement(tls, p, eStatementOp)
+ if rc != 0 {
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_OK || (*Vdbe)(unsafe.Pointer(p)).Frc&0xff == SQLITE_CONSTRAINT {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = rc
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = uintptr(0)
+ }
+ Xsqlite3RollbackAll(tls, db, SQLITE_ABORT|int32(2)<<8)
+ Xsqlite3CloseSavepoints(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ }
+ }
+
+ if Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x10>>4)) != 0 {
+ if eStatementOp != SAVEPOINT_ROLLBACK {
+ Xsqlite3VdbeSetChanges(tls, db, (*Vdbe)(unsafe.Pointer(p)).FnChange)
+ } else {
+ Xsqlite3VdbeSetChanges(tls, db, int64(0))
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ }
+
+ Xsqlite3VdbeLeave(tls, p)
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive--
+ if !(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6) != 0) {
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite--
+ }
+ if Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x80>>7)) != 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead--
+ }
+
+ (*Vdbe)(unsafe.Pointer(p)).FeVdbeState = U8(VDBE_HALT_STATE)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0 {
+ Xsqlite3ConnectionUnlocked(tls, db)
+ }
+
+ return func() int32 {
+ if (*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_BUSY {
+ return SQLITE_BUSY
+ }
+ return SQLITE_OK
+ }()
+}
+
+// Each VDBE holds the result of the most recent sqlite3_step() call
+// in p->rc. This routine sets that result back to SQLITE_OK.
+func Xsqlite3VdbeResetStepResult(tls *libc.TLS, p uintptr) {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_OK
+}
+
+// Copy the error code and error message belonging to the VDBE passed
+// as the first argument to its database handle (so that they will be
+// returned by calls to sqlite3_errcode() and sqlite3_errmsg()).
+//
+// This function does not clear the VDBE error code or message, just
+// copies them to the database handle.
+func Xsqlite3VdbeTransferError(tls *libc.TLS, p uintptr) int32 {
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ var rc int32 = (*Vdbe)(unsafe.Pointer(p)).Frc
+ if (*Vdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FbBenignMalloc++
+ Xsqlite3BeginBenignMalloc(tls)
+ if (*Sqlite3)(unsafe.Pointer(db)).FpErr == uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).FpErr = Xsqlite3ValueNew(tls, db)
+ }
+ Xsqlite3ValueSetStr(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr, -1, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg, uint8(SQLITE_UTF8), libc.UintptrFromInt32(-1))
+ Xsqlite3EndBenignMalloc(tls)
+ (*Sqlite3)(unsafe.Pointer(db)).FbBenignMalloc--
+ } else if (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 {
+ Xsqlite3ValueSetNull(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = rc
+ (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset = -1
+ return rc
+}
+
+// Clean up a VDBE after execution but do not delete the VDBE just yet.
+// Write any error messages into *pzErrMsg. Return the result code.
+//
+// After this routine is run, the VDBE should be ready to be executed
+// again.
+//
+// To look at it another way, this routine resets the state of the
+// virtual machine from VDBE_RUN_STATE or VDBE_HALT_STATE back to
+// VDBE_READY_STATE.
+func Xsqlite3VdbeReset(tls *libc.TLS, p uintptr) int32 {
+ var db uintptr
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ if int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) == VDBE_RUN_STATE {
+ Xsqlite3VdbeHalt(tls, p)
+ }
+
+ if (*Vdbe)(unsafe.Pointer(p)).Fpc >= 0 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpErr != 0 || (*Vdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
+ Xsqlite3VdbeTransferError(tls, p)
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = (*Vdbe)(unsafe.Pointer(p)).Frc
+ }
+ }
+
+ if (*Vdbe)(unsafe.Pointer(p)).FzErrMsg != 0 {
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = uintptr(0)
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FpResultRow = uintptr(0)
+
+ return (*Vdbe)(unsafe.Pointer(p)).Frc & (*Sqlite3)(unsafe.Pointer(db)).FerrMask
+}
+
+// Clean up and delete a VDBE after execution. Return an integer which is
+// the result code. Write any error message text into *pzErrMsg.
+func Xsqlite3VdbeFinalize(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) >= VDBE_READY_STATE {
+ rc = Xsqlite3VdbeReset(tls, p)
+
+ }
+ Xsqlite3VdbeDelete(tls, p)
+ return rc
+}
+
+// If parameter iOp is less than zero, then invoke the destructor for
+// all auxiliary data pointers currently cached by the VM passed as
+// the first argument.
+//
+// Or, if iOp is greater than or equal to zero, then the destructor is
+// only invoked for those auxiliary data pointers created by the user
+// function invoked by the OP_Function opcode at instruction iOp of
+// VM pVdbe, and only then if:
+//
+// - the associated function parameter is the 32nd or later (counting
+// from left to right), or
+//
+// - the corresponding bit in argument mask is clear (where the first
+// function parameter corresponds to bit 0 etc.).
+func Xsqlite3VdbeDeleteAuxData(tls *libc.TLS, db uintptr, pp uintptr, iOp int32, mask int32) {
+ for *(*uintptr)(unsafe.Pointer(pp)) != 0 {
+ var pAux uintptr = *(*uintptr)(unsafe.Pointer(pp))
+ if iOp < 0 ||
+ (*AuxData)(unsafe.Pointer(pAux)).FiAuxOp == iOp &&
+ (*AuxData)(unsafe.Pointer(pAux)).FiAuxArg >= 0 &&
+ ((*AuxData)(unsafe.Pointer(pAux)).FiAuxArg > 31 || !(uint32(mask)&(uint32(1)<<(*AuxData)(unsafe.Pointer(pAux)).FiAuxArg) != 0)) {
+ if (*AuxData)(unsafe.Pointer(pAux)).FxDeleteAux != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*AuxData)(unsafe.Pointer(pAux)).FxDeleteAux})).f(tls, (*AuxData)(unsafe.Pointer(pAux)).FpAux)
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*AuxData)(unsafe.Pointer(pAux)).FpNextAux
+ Xsqlite3DbFree(tls, db, pAux)
+ } else {
+ pp = pAux + 24
+ }
+ }
+}
+
+func sqlite3VdbeClearObject(tls *libc.TLS, db uintptr, p uintptr) {
+ var pSub uintptr
+ var pNext uintptr
+
+ if (*Vdbe)(unsafe.Pointer(p)).FaColName != 0 {
+ releaseMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaColName, int32((*Vdbe)(unsafe.Pointer(p)).FnResColumn)*COLNAME_N)
+ Xsqlite3DbNNFreeNN(tls, db, (*Vdbe)(unsafe.Pointer(p)).FaColName)
+ }
+ for pSub = (*Vdbe)(unsafe.Pointer(p)).FpProgram; pSub != 0; pSub = pNext {
+ pNext = (*SubProgram)(unsafe.Pointer(pSub)).FpNext
+ vdbeFreeOpArray(tls, db, (*SubProgram)(unsafe.Pointer(pSub)).FaOp, (*SubProgram)(unsafe.Pointer(pSub)).FnOp)
+ Xsqlite3DbFree(tls, db, pSub)
+ }
+ if int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) != VDBE_INIT_STATE {
+ releaseMemArray(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar, int32((*Vdbe)(unsafe.Pointer(p)).FnVar))
+ if (*Vdbe)(unsafe.Pointer(p)).FpVList != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Vdbe)(unsafe.Pointer(p)).FpVList)
+ }
+ if (*Vdbe)(unsafe.Pointer(p)).FpFree != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Vdbe)(unsafe.Pointer(p)).FpFree)
+ }
+ }
+ vdbeFreeOpArray(tls, db, (*Vdbe)(unsafe.Pointer(p)).FaOp, (*Vdbe)(unsafe.Pointer(p)).FnOp)
+ if (*Vdbe)(unsafe.Pointer(p)).FzSql != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzSql)
+ }
+}
+
+// Delete an entire VDBE.
+func Xsqlite3VdbeDelete(tls *libc.TLS, p uintptr) {
+ var db uintptr
+
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ sqlite3VdbeClearObject(tls, db, p)
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FppVPrev)) = (*Vdbe)(unsafe.Pointer(p)).FpVNext
+ if (*Vdbe)(unsafe.Pointer(p)).FpVNext != 0 {
+ (*Vdbe)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FpVNext)).FppVPrev = (*Vdbe)(unsafe.Pointer(p)).FppVPrev
+ }
+ }
+ Xsqlite3DbNNFreeNN(tls, db, p)
+}
+
+// The cursor "p" has a pending seek operation that has not yet been
+// carried out. Seek the cursor now. If an error occurs, return
+// the appropriate error code.
+func Xsqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+
+ rc = Xsqlite3BtreeTableMoveto(tls, *(*uintptr)(unsafe.Pointer(p + 48)), (*VdbeCursor)(unsafe.Pointer(p)).FmovetoTarget, 0, bp)
+ if rc != 0 {
+ return rc
+ }
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return Xsqlite3CorruptError(tls, 86058)
+ }
+ (*VdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(p)).FcacheStatus = U32(CACHE_STALE)
+ return SQLITE_OK
+}
+
+// Something has moved cursor "p" out of place. Maybe the row it was
+// pointed to was deleted out from under it. Or maybe the btree was
+// rebalanced. Whatever the cause, try to restore "p" to the place it
+// is supposed to be pointing. If the row was deleted out from under the
+// cursor, set the cursor to point to a NULL row.
+func Xsqlite3VdbeHandleMovedCursor(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+
+ rc = Xsqlite3BtreeCursorRestore(tls, *(*uintptr)(unsafe.Pointer(p + 48)), bp)
+ (*VdbeCursor)(unsafe.Pointer(p)).FcacheStatus = U32(CACHE_STALE)
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ (*VdbeCursor)(unsafe.Pointer(p)).FnullRow = U8(1)
+ }
+ return rc
+}
+
+// Check to ensure that the cursor is valid. Restore the cursor
+// if need be. Return any I/O error from the restore operation.
+func Xsqlite3VdbeCursorRestore(tls *libc.TLS, p uintptr) int32 {
+ if Xsqlite3BtreeCursorHasMoved(tls, *(*uintptr)(unsafe.Pointer(p + 48))) != 0 {
+ return Xsqlite3VdbeHandleMovedCursor(tls, p)
+ }
+ return SQLITE_OK
+}
+
+// The sizes for serial types less than 128
+var Xsqlite3SmallTypeSizes = [128]U8{
+ U8(0), U8(1), U8(2), U8(3), U8(4), U8(6), U8(8), U8(8), U8(0), U8(0),
+ U8(0), U8(0), U8(0), U8(0), U8(1), U8(1), U8(2), U8(2), U8(3), U8(3),
+ U8(4), U8(4), U8(5), U8(5), U8(6), U8(6), U8(7), U8(7), U8(8), U8(8),
+ U8(9), U8(9), U8(10), U8(10), U8(11), U8(11), U8(12), U8(12), U8(13), U8(13),
+ U8(14), U8(14), U8(15), U8(15), U8(16), U8(16), U8(17), U8(17), U8(18), U8(18),
+ U8(19), U8(19), U8(20), U8(20), U8(21), U8(21), U8(22), U8(22), U8(23), U8(23),
+ U8(24), U8(24), U8(25), U8(25), U8(26), U8(26), U8(27), U8(27), U8(28), U8(28),
+ U8(29), U8(29), U8(30), U8(30), U8(31), U8(31), U8(32), U8(32), U8(33), U8(33),
+ U8(34), U8(34), U8(35), U8(35), U8(36), U8(36), U8(37), U8(37), U8(38), U8(38),
+ U8(39), U8(39), U8(40), U8(40), U8(41), U8(41), U8(42), U8(42), U8(43), U8(43),
+ U8(44), U8(44), U8(45), U8(45), U8(46), U8(46), U8(47), U8(47), U8(48), U8(48),
+ U8(49), U8(49), U8(50), U8(50), U8(51), U8(51), U8(52), U8(52), U8(53), U8(53),
+ U8(54), U8(54), U8(55), U8(55), U8(56), U8(56), U8(57), U8(57),
+}
+
+// Return the length of the data corresponding to the supplied serial-type.
+func Xsqlite3VdbeSerialTypeLen(tls *libc.TLS, serial_type U32) U32 {
+ if serial_type >= U32(128) {
+ return (serial_type - U32(12)) / U32(2)
+ } else {
+ return U32(Xsqlite3SmallTypeSizes[serial_type])
+ }
+ return U32(0)
+}
+
+func Xsqlite3VdbeOneByteSerialTypeLen(tls *libc.TLS, serial_type U8) U8 {
+ return Xsqlite3SmallTypeSizes[serial_type]
+}
+
+func serialGet(tls *libc.TLS, buf uintptr, serial_type U32, pMem uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*U64)(unsafe.Pointer(bp)) = U64(U32(*(*uint8)(unsafe.Pointer(buf)))<<24 | U32(int32(*(*uint8)(unsafe.Pointer(buf + 1)))<<16) | U32(int32(*(*uint8)(unsafe.Pointer(buf + 2)))<<8) | U32(*(*uint8)(unsafe.Pointer(buf + 3))))
+ var y U32 = U32(*(*uint8)(unsafe.Pointer(buf + uintptr(4))))<<24 | U32(int32(*(*uint8)(unsafe.Pointer(buf + uintptr(4) + 1)))<<16) | U32(int32(*(*uint8)(unsafe.Pointer(buf + uintptr(4) + 2)))<<8) | U32(*(*uint8)(unsafe.Pointer(buf + uintptr(4) + 3)))
+ *(*U64)(unsafe.Pointer(bp)) = *(*U64)(unsafe.Pointer(bp))<<32 + U64(y)
+ if serial_type == U32(6) {
+ *(*I64)(unsafe.Pointer(pMem)) = *(*I64)(unsafe.Pointer(bp))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pMem, bp, uint64(unsafe.Sizeof(U64(0))), libc.X__builtin_object_size(tls, pMem, 0))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = func() uint16 {
+ if *(*U64)(unsafe.Pointer(bp))&(uint64(0x7ff)<<52) == uint64(0x7ff)<<52 && *(*U64)(unsafe.Pointer(bp))&(uint64(1)<<52-uint64(1)) != uint64(0) {
+ return uint16(MEM_Null)
+ }
+ return uint16(MEM_Real)
+ }()
+ }
+}
+
+func Xsqlite3VdbeSerialGet(tls *libc.TLS, buf uintptr, serial_type U32, pMem uintptr) {
+ switch serial_type {
+ case U32(10):
+ {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Null | MEM_Zero)
+ (*Mem)(unsafe.Pointer(pMem)).Fn = 0
+ *(*int32)(unsafe.Pointer(pMem)) = 0
+ return
+
+ }
+ case U32(11):
+ fallthrough
+ case U32(0):
+ {
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Null)
+ return
+
+ }
+ case U32(1):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(I8(*(*uint8)(unsafe.Pointer(buf))))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ return
+
+ }
+ case U32(2):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(256*int32(I8(*(*uint8)(unsafe.Pointer(buf)))) | int32(*(*uint8)(unsafe.Pointer(buf + 1))))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ return
+
+ }
+ case U32(3):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(65536*int32(I8(*(*uint8)(unsafe.Pointer(buf)))) | int32(*(*uint8)(unsafe.Pointer(buf + 1)))<<8 | int32(*(*uint8)(unsafe.Pointer(buf + 2))))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ return
+
+ }
+ case U32(4):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(16777216*int32(I8(*(*uint8)(unsafe.Pointer(buf)))) | int32(*(*uint8)(unsafe.Pointer(buf + 1)))<<16 | int32(*(*uint8)(unsafe.Pointer(buf + 2)))<<8 | int32(*(*uint8)(unsafe.Pointer(buf + 3))))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ return
+
+ }
+ case U32(5):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(U32(*(*uint8)(unsafe.Pointer(buf + uintptr(2))))<<24|U32(int32(*(*uint8)(unsafe.Pointer(buf + uintptr(2) + 1)))<<16)|U32(int32(*(*uint8)(unsafe.Pointer(buf + uintptr(2) + 2)))<<8)|U32(*(*uint8)(unsafe.Pointer(buf + uintptr(2) + 3)))) + int64(1)<<32*I64(256*int32(I8(*(*uint8)(unsafe.Pointer(buf))))|int32(*(*uint8)(unsafe.Pointer(buf + 1))))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+
+ return
+
+ }
+ case U32(6):
+ fallthrough
+ case U32(7):
+ {
+ serialGet(tls, buf, serial_type, pMem)
+ return
+
+ }
+ case U32(8):
+ fallthrough
+ case U32(9):
+ {
+ *(*I64)(unsafe.Pointer(pMem)) = I64(serial_type - U32(8))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Int)
+ return
+
+ }
+ default:
+ {
+ (*Mem)(unsafe.Pointer(pMem)).Fz = buf
+ (*Mem)(unsafe.Pointer(pMem)).Fn = int32((serial_type - U32(12)) / U32(2))
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = aFlag[serial_type&U32(1)]
+ return
+
+ }
+ }
+ return
+}
+
+var aFlag = [2]U16{U16(MEM_Blob | MEM_Ephem), U16(MEM_Str | MEM_Ephem)}
+
+// This routine is used to allocate sufficient space for an UnpackedRecord
+// structure large enough to be used with sqlite3VdbeRecordUnpack() if
+// the first argument is a pointer to KeyInfo structure pKeyInfo.
+//
+// The space is either allocated using sqlite3DbMallocRaw() or from within
+// the unaligned buffer passed via the second and third arguments (presumably
+// stack space). If the former, then *ppFree is set to a pointer that should
+// be eventually freed by the caller using sqlite3DbFree(). Or, if the
+// allocation comes from the pSpace/szSpace buffer, *ppFree is set to NULL
+// before returning.
+//
+// If an OOM error occurs, NULL is returned.
+func Xsqlite3VdbeAllocUnpackedRecord(tls *libc.TLS, pKeyInfo uintptr) uintptr {
+ var p uintptr
+ var nByte int32
+ nByte = int32(uint64(unsafe.Sizeof(UnpackedRecord{})) + uint64(unsafe.Sizeof(Mem{}))*uint64(int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)+1))
+ p = Xsqlite3DbMallocRaw(tls, (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fdb, uint64(nByte))
+ if !(p != 0) {
+ return uintptr(0)
+ }
+ (*UnpackedRecord)(unsafe.Pointer(p)).FaMem = p + 40
+
+ (*UnpackedRecord)(unsafe.Pointer(p)).FpKeyInfo = pKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(p)).FnField = U16(int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField) + 1)
+ return p
+}
+
+// Given the nKey-byte encoding of a record in pKey[], populate the
+// UnpackedRecord structure indicated by the fourth argument with the
+// contents of the decoded record.
+func Xsqlite3VdbeRecordUnpack(tls *libc.TLS, pKeyInfo uintptr, nKey int32, pKey uintptr, p uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var aKey uintptr = pKey
+ var d U32
+ var idx U32
+ var u U16
+
+ var pMem uintptr = (*UnpackedRecord)(unsafe.Pointer(p)).FaMem
+
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fdefault_rc = int8(0)
+
+ idx = U32(func() uint8 {
+ if int32(*(*uint8)(unsafe.Pointer(aKey))) < int32(U8(0x80)) {
+ return uint8(func() int32 { *(*U32)(unsafe.Pointer(bp)) = U32(*(*uint8)(unsafe.Pointer(aKey))); return 1 }())
+ }
+ return Xsqlite3GetVarint32(tls, aKey, bp)
+ }())
+ d = *(*U32)(unsafe.Pointer(bp))
+ u = U16(0)
+ for idx < *(*U32)(unsafe.Pointer(bp)) && d <= U32(nKey) {
+ idx = idx + U32(func() uint8 {
+ if int32(*(*uint8)(unsafe.Pointer(aKey + uintptr(idx)))) < int32(U8(0x80)) {
+ return uint8(func() int32 {
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(*(*uint8)(unsafe.Pointer(aKey + uintptr(idx))))
+ return 1
+ }())
+ }
+ return Xsqlite3GetVarint32(tls, aKey+uintptr(idx), bp+4)
+ }())
+ (*Mem)(unsafe.Pointer(pMem)).Fenc = (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fenc
+ (*Mem)(unsafe.Pointer(pMem)).Fdb = (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fdb
+
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = 0
+ (*Mem)(unsafe.Pointer(pMem)).Fz = uintptr(0)
+ Xsqlite3VdbeSerialGet(tls, aKey+uintptr(d), *(*U32)(unsafe.Pointer(bp + 4)), pMem)
+ d = d + Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 4)))
+ pMem += 56
+ if int32(libc.PreIncUint16(&u, 1)) >= int32((*UnpackedRecord)(unsafe.Pointer(p)).FnField) {
+ break
+ }
+ }
+ if d > U32(nKey) && u != 0 {
+ Xsqlite3VdbeMemSetNull(tls, pMem-uintptr(1)*56)
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(p)).FnField = u
+}
+
+func vdbeCompareMemString(tls *libc.TLS, pMem1 uintptr, pMem2 uintptr, pColl uintptr, prcErr uintptr) int32 {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ if int32((*Mem)(unsafe.Pointer(pMem1)).Fenc) == int32((*CollSeq)(unsafe.Pointer(pColl)).Fenc) {
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*CollSeq)(unsafe.Pointer(pColl)).FxCmp})).f(tls, (*CollSeq)(unsafe.Pointer(pColl)).FpUser, (*Mem)(unsafe.Pointer(pMem1)).Fn, (*Mem)(unsafe.Pointer(pMem1)).Fz, (*Mem)(unsafe.Pointer(pMem2)).Fn, (*Mem)(unsafe.Pointer(pMem2)).Fz)
+ } else {
+ var rc int32
+ var v1 uintptr
+ var v2 uintptr
+
+ Xsqlite3VdbeMemInit(tls, bp, (*Mem)(unsafe.Pointer(pMem1)).Fdb, uint16(MEM_Null))
+ Xsqlite3VdbeMemInit(tls, bp+56, (*Mem)(unsafe.Pointer(pMem1)).Fdb, uint16(MEM_Null))
+ Xsqlite3VdbeMemShallowCopy(tls, bp, pMem1, MEM_Ephem)
+ Xsqlite3VdbeMemShallowCopy(tls, bp+56, pMem2, MEM_Ephem)
+ v1 = Xsqlite3ValueText(tls, bp, (*CollSeq)(unsafe.Pointer(pColl)).Fenc)
+ v2 = Xsqlite3ValueText(tls, bp+56, (*CollSeq)(unsafe.Pointer(pColl)).Fenc)
+ if v1 == uintptr(0) || v2 == uintptr(0) {
+ if prcErr != 0 {
+ *(*U8)(unsafe.Pointer(prcErr)) = U8(SQLITE_NOMEM)
+ }
+ rc = 0
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*CollSeq)(unsafe.Pointer(pColl)).FxCmp})).f(tls, (*CollSeq)(unsafe.Pointer(pColl)).FpUser, (*Mem)(unsafe.Pointer(bp)).Fn, v1, (*Mem)(unsafe.Pointer(bp+56)).Fn, v2)
+ }
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp)
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp+56)
+ return rc
+ }
+ return int32(0)
+}
+
+func isAllZero(tls *libc.TLS, z uintptr, n int32) int32 {
+ var i int32
+ for i = 0; i < n; i++ {
+ if *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0 {
+ return 0
+ }
+ }
+ return 1
+}
+
+// Compare two blobs. Return negative, zero, or positive if the first
+// is less than, equal to, or greater than the second, respectively.
+// If one blob is a prefix of the other, then the shorter is the lessor.
+func Xsqlite3BlobCompare(tls *libc.TLS, pB1 uintptr, pB2 uintptr) int32 {
+ var c int32
+ var n1 int32 = (*Mem)(unsafe.Pointer(pB1)).Fn
+ var n2 int32 = (*Mem)(unsafe.Pointer(pB2)).Fn
+
+ if (int32((*Mem)(unsafe.Pointer(pB1)).Fflags)|int32((*Mem)(unsafe.Pointer(pB2)).Fflags))&MEM_Zero != 0 {
+ if int32((*Mem)(unsafe.Pointer(pB1)).Fflags)&int32((*Mem)(unsafe.Pointer(pB2)).Fflags)&MEM_Zero != 0 {
+ return *(*int32)(unsafe.Pointer(pB1)) - *(*int32)(unsafe.Pointer(pB2))
+ } else if int32((*Mem)(unsafe.Pointer(pB1)).Fflags)&MEM_Zero != 0 {
+ if !(isAllZero(tls, (*Mem)(unsafe.Pointer(pB2)).Fz, (*Mem)(unsafe.Pointer(pB2)).Fn) != 0) {
+ return -1
+ }
+ return *(*int32)(unsafe.Pointer(pB1)) - n2
+ } else {
+ if !(isAllZero(tls, (*Mem)(unsafe.Pointer(pB1)).Fz, (*Mem)(unsafe.Pointer(pB1)).Fn) != 0) {
+ return +1
+ }
+ return n1 - *(*int32)(unsafe.Pointer(pB2))
+ }
+ }
+ c = libc.Xmemcmp(tls, (*Mem)(unsafe.Pointer(pB1)).Fz, (*Mem)(unsafe.Pointer(pB2)).Fz, func() uint64 {
+ if n1 > n2 {
+ return uint64(n2)
+ }
+ return uint64(n1)
+ }())
+ if c != 0 {
+ return c
+ }
+ return n1 - n2
+}
+
+// Do a comparison between a 64-bit signed integer and a 64-bit floating-point
+// number. Return negative, zero, or positive if the first (i64) is less than,
+// equal to, or greater than the second (double).
+func Xsqlite3IntFloatCompare(tls *libc.TLS, i I64, r float64) int32 {
+ if uint64(unsafe.Sizeof(float64(0))) > uint64(8) {
+ var x float64 = float64(i)
+
+ if x < r {
+ return -1
+ }
+ if x > r {
+ return +1
+ }
+ return 0
+ } else {
+ var y I64
+ var s float64
+ if r < -9223372036854775808.0 {
+ return +1
+ }
+ if r >= 9223372036854775808.0 {
+ return -1
+ }
+ y = I64(r)
+ if i < y {
+ return -1
+ }
+ if i > y {
+ return +1
+ }
+ s = float64(i)
+ if s < r {
+ return -1
+ }
+ if s > r {
+ return +1
+ }
+ return 0
+ }
+ return int32(0)
+}
+
+// Compare the values contained by the two memory cells, returning
+// negative, zero or positive if pMem1 is less than, equal to, or greater
+// than pMem2. Sorting order is NULL's first, followed by numbers (integers
+// and reals) sorted numerically, followed by text ordered by the collating
+// sequence pColl and finally blob's ordered by memcmp().
+//
+// Two NULL values are considered equal by this function.
+func Xsqlite3MemCompare(tls *libc.TLS, pMem1 uintptr, pMem2 uintptr, pColl uintptr) int32 {
+ var f1 int32
+ var f2 int32
+ var combined_flags int32
+
+ f1 = int32((*Mem)(unsafe.Pointer(pMem1)).Fflags)
+ f2 = int32((*Mem)(unsafe.Pointer(pMem2)).Fflags)
+ combined_flags = f1 | f2
+
+ if combined_flags&MEM_Null != 0 {
+ return f2&MEM_Null - f1&MEM_Null
+ }
+
+ if combined_flags&(MEM_Int|MEM_Real|MEM_IntReal) != 0 {
+ if f1&f2&(MEM_Int|MEM_IntReal) != 0 {
+ if *(*I64)(unsafe.Pointer(pMem1)) < *(*I64)(unsafe.Pointer(pMem2)) {
+ return -1
+ }
+ if *(*I64)(unsafe.Pointer(pMem1)) > *(*I64)(unsafe.Pointer(pMem2)) {
+ return +1
+ }
+ return 0
+ }
+ if f1&f2&MEM_Real != 0 {
+ if *(*float64)(unsafe.Pointer(pMem1)) < *(*float64)(unsafe.Pointer(pMem2)) {
+ return -1
+ }
+ if *(*float64)(unsafe.Pointer(pMem1)) > *(*float64)(unsafe.Pointer(pMem2)) {
+ return +1
+ }
+ return 0
+ }
+ if f1&(MEM_Int|MEM_IntReal) != 0 {
+ if f2&MEM_Real != 0 {
+ return Xsqlite3IntFloatCompare(tls, *(*I64)(unsafe.Pointer(pMem1)), *(*float64)(unsafe.Pointer(pMem2)))
+ } else if f2&(MEM_Int|MEM_IntReal) != 0 {
+ if *(*I64)(unsafe.Pointer(pMem1)) < *(*I64)(unsafe.Pointer(pMem2)) {
+ return -1
+ }
+ if *(*I64)(unsafe.Pointer(pMem1)) > *(*I64)(unsafe.Pointer(pMem2)) {
+ return +1
+ }
+ return 0
+ } else {
+ return -1
+ }
+ }
+ if f1&MEM_Real != 0 {
+ if f2&(MEM_Int|MEM_IntReal) != 0 {
+ return -Xsqlite3IntFloatCompare(tls, *(*I64)(unsafe.Pointer(pMem2)), *(*float64)(unsafe.Pointer(pMem1)))
+ } else {
+ return -1
+ }
+ }
+ return +1
+ }
+
+ if combined_flags&MEM_Str != 0 {
+ if f1&MEM_Str == 0 {
+ return 1
+ }
+ if f2&MEM_Str == 0 {
+ return -1
+ }
+
+ if pColl != 0 {
+ return vdbeCompareMemString(tls, pMem1, pMem2, pColl, uintptr(0))
+ }
+
+ }
+
+ return Xsqlite3BlobCompare(tls, pMem1, pMem2)
+}
+
+func vdbeRecordDecodeInt(tls *libc.TLS, serial_type U32, aKey uintptr) I64 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ switch serial_type {
+ case U32(0):
+ fallthrough
+ case U32(1):
+ return I64(I8(*(*U8)(unsafe.Pointer(aKey))))
+ case U32(2):
+ return I64(256*int32(I8(*(*U8)(unsafe.Pointer(aKey)))) | int32(*(*U8)(unsafe.Pointer(aKey + 1))))
+ case U32(3):
+ return I64(65536*int32(I8(*(*U8)(unsafe.Pointer(aKey)))) | int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<8 | int32(*(*U8)(unsafe.Pointer(aKey + 2))))
+ case U32(4):
+ {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*U8)(unsafe.Pointer(aKey)))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aKey + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aKey + 3)))
+ return I64(*(*int32)(unsafe.Pointer(bp)))
+
+ }
+ case U32(5):
+ {
+ return I64(U32(*(*U8)(unsafe.Pointer(aKey + uintptr(2))))<<24|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 1)))<<16)|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 2)))<<8)|U32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 3)))) + int64(1)<<32*I64(256*int32(I8(*(*U8)(unsafe.Pointer(aKey))))|int32(*(*U8)(unsafe.Pointer(aKey + 1))))
+
+ }
+ case U32(6):
+ {
+ *(*U64)(unsafe.Pointer(bp + 8)) = U64(U32(*(*U8)(unsafe.Pointer(aKey)))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aKey + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aKey + 3))))
+
+ *(*U64)(unsafe.Pointer(bp + 8)) = *(*U64)(unsafe.Pointer(bp + 8))<<32 | U64(U32(*(*U8)(unsafe.Pointer(aKey + uintptr(4))))<<24|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 1)))<<16)|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 2)))<<8)|U32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 3))))
+ return *(*I64)(unsafe.Pointer(bp + 8))
+
+ }
+ }
+
+ return I64(serial_type - U32(8))
+}
+
+// This function compares the two table rows or index records
+// specified by {nKey1, pKey1} and pPKey2. It returns a negative, zero
+// or positive integer if key1 is less than, equal to or
+// greater than key2. The {nKey1, pKey1} key must be a blob
+// created by the OP_MakeRecord opcode of the VDBE. The pPKey2
+// key must be a parsed key such as obtained from
+// sqlite3VdbeParseRecord.
+//
+// If argument bSkip is non-zero, it is assumed that the caller has already
+// determined that the first fields of the keys are equal.
+//
+// Key1 and Key2 do not have to contain the same number of fields. If all
+// fields that appear in both keys are equal, then pPKey2->default_rc is
+// returned.
+//
+// If database corruption is discovered, set pPKey2->errCode to
+// SQLITE_CORRUPT and return 0. If an OOM error is encountered,
+// pPKey2->errCode is set to SQLITE_NOMEM and, if it is not NULL, the
+// malloc-failed flag set on database handle (pPKey2->pKeyInfo->db).
+func Xsqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 uintptr, bSkip int32) int32 {
+ bp := tls.Alloc(68)
+ defer tls.Free(68)
+
+ var d1 U32
+ var i int32
+
+ var idx1 U32
+ var rc int32 = 0
+ var pRhs uintptr = (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FaMem
+ var pKeyInfo uintptr
+ var aKey1 uintptr = pKey1
+
+ if bSkip != 0 {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + 1)))
+ if *(*U32)(unsafe.Pointer(bp)) < U32(0x80) {
+ idx1 = U32(2)
+ } else {
+ idx1 = U32(1 + int32(Xsqlite3GetVarint32(tls, aKey1+1, bp)))
+ }
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(*(*uint8)(unsafe.Pointer(aKey1)))
+ d1 = *(*U32)(unsafe.Pointer(bp + 4)) + Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp)))
+ i = 1
+ pRhs += 56
+ } else {
+ if libc.AssignPtrUint32(bp+4, U32(*(*uint8)(unsafe.Pointer(aKey1)))) < U32(0x80) {
+ idx1 = U32(1)
+ } else {
+ idx1 = U32(Xsqlite3GetVarint32(tls, aKey1, bp+4))
+ }
+ d1 = *(*U32)(unsafe.Pointer(bp + 4))
+ i = 0
+ }
+ if d1 > uint32(nKey1) {
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = U8(Xsqlite3CorruptError(tls, 86985))
+ return 0
+ }
+
+ for 1 != 0 {
+ if int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + uintptr(idx1))))
+
+ if *(*U32)(unsafe.Pointer(bp + 64)) >= U32(10) {
+ if *(*U32)(unsafe.Pointer(bp + 64)) == U32(10) {
+ rc = -1
+ } else {
+ rc = +1
+ }
+ } else if *(*U32)(unsafe.Pointer(bp + 64)) == U32(0) {
+ rc = -1
+ } else if *(*U32)(unsafe.Pointer(bp + 64)) == U32(7) {
+ Xsqlite3VdbeSerialGet(tls, aKey1+uintptr(d1), *(*U32)(unsafe.Pointer(bp + 64)), bp+8)
+ rc = -Xsqlite3IntFloatCompare(tls, *(*I64)(unsafe.Pointer(pRhs)), *(*float64)(unsafe.Pointer(bp + 8)))
+ } else {
+ var lhs I64 = vdbeRecordDecodeInt(tls, *(*U32)(unsafe.Pointer(bp + 64)), aKey1+uintptr(d1))
+ var rhs I64 = *(*I64)(unsafe.Pointer(pRhs))
+ if lhs < rhs {
+ rc = -1
+ } else if lhs > rhs {
+ rc = +1
+ }
+ }
+ } else if int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&MEM_Real != 0 {
+ *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + uintptr(idx1))))
+ if *(*U32)(unsafe.Pointer(bp + 64)) >= U32(10) {
+ if *(*U32)(unsafe.Pointer(bp + 64)) == U32(10) {
+ rc = -1
+ } else {
+ rc = +1
+ }
+ } else if *(*U32)(unsafe.Pointer(bp + 64)) == U32(0) {
+ rc = -1
+ } else {
+ Xsqlite3VdbeSerialGet(tls, aKey1+uintptr(d1), *(*U32)(unsafe.Pointer(bp + 64)), bp+8)
+ if *(*U32)(unsafe.Pointer(bp + 64)) == U32(7) {
+ if *(*float64)(unsafe.Pointer(bp + 8)) < *(*float64)(unsafe.Pointer(pRhs)) {
+ rc = -1
+ } else if *(*float64)(unsafe.Pointer(bp + 8)) > *(*float64)(unsafe.Pointer(pRhs)) {
+ rc = +1
+ }
+ } else {
+ rc = Xsqlite3IntFloatCompare(tls, *(*I64)(unsafe.Pointer(bp + 8)), *(*float64)(unsafe.Pointer(pRhs)))
+ }
+ }
+ } else if int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&MEM_Str != 0 {
+ *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + uintptr(idx1))))
+ if *(*U32)(unsafe.Pointer(bp + 64)) >= U32(0x80) {
+ Xsqlite3GetVarint32(tls, aKey1+uintptr(idx1), bp+64)
+ }
+
+ if *(*U32)(unsafe.Pointer(bp + 64)) < U32(12) {
+ rc = -1
+ } else if !(*(*U32)(unsafe.Pointer(bp + 64))&U32(0x01) != 0) {
+ rc = +1
+ } else {
+ (*Mem)(unsafe.Pointer(bp + 8)).Fn = int32((*(*U32)(unsafe.Pointer(bp + 64)) - U32(12)) / U32(2))
+
+ if d1+U32((*Mem)(unsafe.Pointer(bp+8)).Fn) > uint32(nKey1) ||
+ int32((*KeyInfo)(unsafe.Pointer(libc.AssignUintptr(&pKeyInfo, (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FpKeyInfo))).FnAllField) <= i {
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = U8(Xsqlite3CorruptError(tls, 87062))
+ return 0
+ } else if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 {
+ (*Mem)(unsafe.Pointer(bp + 8)).Fenc = (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fenc
+ (*Mem)(unsafe.Pointer(bp + 8)).Fdb = (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fdb
+ (*Mem)(unsafe.Pointer(bp + 8)).Fflags = U16(MEM_Str)
+ (*Mem)(unsafe.Pointer(bp + 8)).Fz = aKey1 + uintptr(d1)
+ rc = vdbeCompareMemString(tls,
+ bp+8, pRhs, *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)), pPKey2+31)
+ } else {
+ var nCmp int32 = func() int32 {
+ if (*Mem)(unsafe.Pointer(bp+8)).Fn < (*Mem)(unsafe.Pointer(pRhs)).Fn {
+ return (*Mem)(unsafe.Pointer(bp + 8)).Fn
+ }
+ return (*Mem)(unsafe.Pointer(pRhs)).Fn
+ }()
+ rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*Mem)(unsafe.Pointer(pRhs)).Fz, uint64(nCmp))
+ if rc == 0 {
+ rc = (*Mem)(unsafe.Pointer(bp+8)).Fn - (*Mem)(unsafe.Pointer(pRhs)).Fn
+ }
+ }
+ }
+ } else if int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&MEM_Blob != 0 {
+ *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + uintptr(idx1))))
+ if *(*U32)(unsafe.Pointer(bp + 64)) >= U32(0x80) {
+ Xsqlite3GetVarint32(tls, aKey1+uintptr(idx1), bp+64)
+ }
+
+ if *(*U32)(unsafe.Pointer(bp + 64)) < U32(12) || *(*U32)(unsafe.Pointer(bp + 64))&U32(0x01) != 0 {
+ rc = -1
+ } else {
+ var nStr int32 = int32((*(*U32)(unsafe.Pointer(bp + 64)) - U32(12)) / U32(2))
+
+ if d1+U32(nStr) > uint32(nKey1) {
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = U8(Xsqlite3CorruptError(tls, 87092))
+ return 0
+ } else if int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&MEM_Zero != 0 {
+ if !(isAllZero(tls, aKey1+uintptr(d1), nStr) != 0) {
+ rc = 1
+ } else {
+ rc = nStr - *(*int32)(unsafe.Pointer(pRhs))
+ }
+ } else {
+ var nCmp int32 = func() int32 {
+ if nStr < (*Mem)(unsafe.Pointer(pRhs)).Fn {
+ return nStr
+ }
+ return (*Mem)(unsafe.Pointer(pRhs)).Fn
+ }()
+ rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*Mem)(unsafe.Pointer(pRhs)).Fz, uint64(nCmp))
+ if rc == 0 {
+ rc = nStr - (*Mem)(unsafe.Pointer(pRhs)).Fn
+ }
+ }
+ }
+ } else {
+ *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*uint8)(unsafe.Pointer(aKey1 + uintptr(idx1))))
+ rc = libc.Bool32(*(*U32)(unsafe.Pointer(bp + 64)) != U32(0) && *(*U32)(unsafe.Pointer(bp + 64)) != U32(10))
+ }
+
+ if rc != 0 {
+ var sortFlags int32 = int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(pPKey2)).FpKeyInfo)).FaSortFlags + uintptr(i))))
+ if sortFlags != 0 {
+ if sortFlags&KEYINFO_ORDER_BIGNULL == 0 ||
+ sortFlags&KEYINFO_ORDER_DESC !=
+ libc.Bool32(*(*U32)(unsafe.Pointer(bp + 64)) == U32(0) || int32((*Mem)(unsafe.Pointer(pRhs)).Fflags)&MEM_Null != 0) {
+ rc = -rc
+ }
+ }
+
+ return rc
+ }
+
+ i++
+ if i == int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).FnField) {
+ break
+ }
+ pRhs += 56
+ d1 = d1 + Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 64)))
+ if d1 > uint32(nKey1) {
+ break
+ }
+ idx1 = idx1 + U32(Xsqlite3VarintLen(tls, uint64(*(*U32)(unsafe.Pointer(bp + 64)))))
+ if idx1 >= *(*U32)(unsafe.Pointer(bp + 4)) {
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = U8(Xsqlite3CorruptError(tls, 87136))
+ return 0
+ }
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FeqSeen = U8(1)
+ return int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fdefault_rc)
+}
+
+func Xsqlite3VdbeRecordCompare(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 uintptr) int32 {
+ return Xsqlite3VdbeRecordCompareWithSkip(tls, nKey1, pKey1, pPKey2, 0)
+}
+
+func vdbeRecordCompareInt(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var aKey uintptr = pKey1 + uintptr(int32(*(*U8)(unsafe.Pointer(pKey1)))&0x3F)
+ var serial_type int32 = int32(*(*U8)(unsafe.Pointer(pKey1 + 1)))
+ var res int32
+
+ var v I64
+ var lhs I64
+
+ switch serial_type {
+ case 1:
+ {
+ lhs = I64(I8(*(*U8)(unsafe.Pointer(aKey))))
+
+ break
+
+ }
+ case 2:
+ {
+ lhs = I64(256*int32(I8(*(*U8)(unsafe.Pointer(aKey)))) | int32(*(*U8)(unsafe.Pointer(aKey + 1))))
+
+ break
+
+ }
+ case 3:
+ {
+ lhs = I64(65536*int32(I8(*(*U8)(unsafe.Pointer(aKey)))) | int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<8 | int32(*(*U8)(unsafe.Pointer(aKey + 2))))
+
+ break
+
+ }
+ case 4:
+ {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*U8)(unsafe.Pointer(aKey)))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aKey + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aKey + 3)))
+ lhs = I64(*(*int32)(unsafe.Pointer(bp)))
+
+ break
+
+ }
+ case 5:
+ {
+ lhs = I64(U32(*(*U8)(unsafe.Pointer(aKey + uintptr(2))))<<24|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 1)))<<16)|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 2)))<<8)|U32(*(*U8)(unsafe.Pointer(aKey + uintptr(2) + 3)))) + int64(1)<<32*I64(256*int32(I8(*(*U8)(unsafe.Pointer(aKey))))|int32(*(*U8)(unsafe.Pointer(aKey + 1))))
+
+ break
+
+ }
+ case 6:
+ {
+ *(*U64)(unsafe.Pointer(bp + 8)) = U64(U32(*(*U8)(unsafe.Pointer(aKey)))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aKey + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aKey + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aKey + 3))))
+ *(*U64)(unsafe.Pointer(bp + 8)) = *(*U64)(unsafe.Pointer(bp + 8))<<32 | U64(U32(*(*U8)(unsafe.Pointer(aKey + uintptr(4))))<<24|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 1)))<<16)|U32(int32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 2)))<<8)|U32(*(*U8)(unsafe.Pointer(aKey + uintptr(4) + 3))))
+ lhs = *(*I64)(unsafe.Pointer(bp + 8))
+
+ break
+
+ }
+ case 8:
+ lhs = int64(0)
+ break
+ case 9:
+ lhs = int64(1)
+ break
+
+ case 0:
+ fallthrough
+ case 7:
+ return Xsqlite3VdbeRecordCompare(tls, nKey1, pKey1, pPKey2)
+
+ default:
+ return Xsqlite3VdbeRecordCompare(tls, nKey1, pKey1, pPKey2)
+ }
+
+ v = *(*I64)(unsafe.Pointer(pPKey2 + 16))
+ if v > lhs {
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr1)
+ } else if v < lhs {
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr2)
+ } else if int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).FnField) > 1 {
+ res = Xsqlite3VdbeRecordCompareWithSkip(tls, nKey1, pKey1, pPKey2, 1)
+ } else {
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fdefault_rc)
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FeqSeen = U8(1)
+ }
+
+ return res
+}
+
+func vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var aKey1 uintptr
+
+ var res int32
+ var nCmp int32
+ var nStr int32
+ var szHdr int32
+ aKey1 = pKey1
+
+ *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*U8)(unsafe.Pointer(aKey1 + 1))))
+
+vrcs_restart:
+ if !(*(*int32)(unsafe.Pointer(bp)) < 12) {
+ goto __1
+ }
+ if !(*(*int32)(unsafe.Pointer(bp)) < 0) {
+ goto __3
+ }
+ Xsqlite3GetVarint32(tls, aKey1+1, bp)
+ if !(*(*int32)(unsafe.Pointer(bp)) >= 12) {
+ goto __4
+ }
+ goto vrcs_restart
+__4:
+ ;
+__3:
+ ;
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr1)
+ goto __2
+__1:
+ if !!(*(*int32)(unsafe.Pointer(bp))&0x01 != 0) {
+ goto __5
+ }
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr2)
+ goto __6
+__5:
+ szHdr = int32(*(*U8)(unsafe.Pointer(aKey1)))
+
+ nStr = (*(*int32)(unsafe.Pointer(bp)) - 12) / 2
+ if !(szHdr+nStr > nKey1) {
+ goto __7
+ }
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = U8(Xsqlite3CorruptError(tls, 87299))
+ return 0
+__7:
+ ;
+ nCmp = func() int32 {
+ if (*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr {
+ return (*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fn
+ }
+ return nStr
+ }()
+ res = libc.Xmemcmp(tls, aKey1+uintptr(szHdr), *(*uintptr)(unsafe.Pointer(pPKey2 + 16)), uint64(nCmp))
+
+ if !(res > 0) {
+ goto __8
+ }
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr2)
+ goto __9
+__8:
+ if !(res < 0) {
+ goto __10
+ }
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr1)
+ goto __11
+__10:
+ res = nStr - (*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fn
+ if !(res == 0) {
+ goto __12
+ }
+ if !(int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).FnField) > 1) {
+ goto __14
+ }
+ res = Xsqlite3VdbeRecordCompareWithSkip(tls, nKey1, pKey1, pPKey2, 1)
+ goto __15
+__14:
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fdefault_rc)
+ (*UnpackedRecord)(unsafe.Pointer(pPKey2)).FeqSeen = U8(1)
+__15:
+ ;
+ goto __13
+__12:
+ if !(res > 0) {
+ goto __16
+ }
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr2)
+ goto __17
+__16:
+ res = int32((*UnpackedRecord)(unsafe.Pointer(pPKey2)).Fr1)
+__17:
+ ;
+__13:
+ ;
+__11:
+ ;
+__9:
+ ;
+__6:
+ ;
+__2:
+ ;
+ return res
+}
+
+// Return a pointer to an sqlite3VdbeRecordCompare() compatible function
+// suitable for comparing serialized records to the unpacked record passed
+// as the only argument.
+func Xsqlite3VdbeFindCompare(tls *libc.TLS, p uintptr) RecordCompare {
+ if int32((*KeyInfo)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FpKeyInfo)).FnAllField) <= 13 {
+ var flags int32 = int32((*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FaMem)).Fflags)
+ if *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FpKeyInfo)).FaSortFlags)) != 0 {
+ if int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FpKeyInfo)).FaSortFlags)))&KEYINFO_ORDER_BIGNULL != 0 {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ }{Xsqlite3VdbeRecordCompare}))
+ }
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fr1 = int8(1)
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fr2 = int8(-1)
+ } else {
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fr1 = int8(-1)
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fr2 = int8(1)
+ }
+ if flags&MEM_Int != 0 {
+ *(*I64)(unsafe.Pointer(p + 16)) = *(*I64)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FaMem))
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ }{vdbeRecordCompareInt}))
+ }
+
+ if flags&(MEM_Real|MEM_IntReal|MEM_Null|MEM_Blob) == 0 &&
+ *(*uintptr)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FpKeyInfo + 32)) == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(p + 16)) = (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FaMem)).Fz
+ (*UnpackedRecord)(unsafe.Pointer(p)).Fn = (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(p)).FaMem)).Fn
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ }{vdbeRecordCompareString}))
+ }
+ }
+
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, uintptr) int32
+ }{Xsqlite3VdbeRecordCompare}))
+}
+
+// pCur points at an index entry created using the OP_MakeRecord opcode.
+// Read the rowid (the last field in the record) and store it in *rowid.
+// Return SQLITE_OK if everything works, or an error code otherwise.
+//
+// pCur might be pointing to text obtained from a corrupt database file.
+// So the content cannot be trusted. Do appropriate checks on the content.
+func Xsqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr) int32 {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var nCellKey I64
+ var rc int32
+
+ var lenRowid U32
+
+ nCellKey = int64(0)
+
+ nCellKey = I64(Xsqlite3BtreePayloadSize(tls, pCur))
+
+ Xsqlite3VdbeMemInit(tls, bp, db, uint16(0))
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, U32(nCellKey), bp)
+ if !(rc != 0) {
+ goto __1
+ }
+ return rc
+__1:
+ ;
+ *(*U32)(unsafe.Pointer(bp + 56)) = U32(*(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(bp)).Fz)))
+ if !(*(*U32)(unsafe.Pointer(bp + 56)) >= U32(0x80)) {
+ goto __2
+ }
+ Xsqlite3GetVarint32(tls, (*Mem)(unsafe.Pointer(bp)).Fz, bp+56)
+__2:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 56)) < U32(3) || *(*U32)(unsafe.Pointer(bp + 56)) > uint32((*Mem)(unsafe.Pointer(bp)).Fn)) {
+ goto __3
+ }
+ goto idx_rowid_corruption
+__3:
+ ;
+ *(*U32)(unsafe.Pointer(bp + 60)) = U32(*(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(bp)).Fz + uintptr(*(*U32)(unsafe.Pointer(bp + 56))-U32(1)))))
+ if !(*(*U32)(unsafe.Pointer(bp + 60)) >= U32(0x80)) {
+ goto __4
+ }
+ Xsqlite3GetVarint32(tls, (*Mem)(unsafe.Pointer(bp)).Fz+uintptr(*(*U32)(unsafe.Pointer(bp + 56))-U32(1)), bp+60)
+__4:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 60)) < U32(1) || *(*U32)(unsafe.Pointer(bp + 60)) > U32(9) || *(*U32)(unsafe.Pointer(bp + 60)) == U32(7)) {
+ goto __5
+ }
+ goto idx_rowid_corruption
+__5:
+ ;
+ lenRowid = U32(Xsqlite3SmallTypeSizes[*(*U32)(unsafe.Pointer(bp + 60))])
+
+ if !(U32((*Mem)(unsafe.Pointer(bp)).Fn) < *(*U32)(unsafe.Pointer(bp + 56))+lenRowid) {
+ goto __6
+ }
+ goto idx_rowid_corruption
+__6:
+ ;
+ Xsqlite3VdbeSerialGet(tls, (*Mem)(unsafe.Pointer(bp)).Fz+uintptr(U32((*Mem)(unsafe.Pointer(bp)).Fn)-lenRowid), *(*U32)(unsafe.Pointer(bp + 60)), bp+64)
+ *(*I64)(unsafe.Pointer(rowid)) = *(*I64)(unsafe.Pointer(bp + 64))
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp)
+ return SQLITE_OK
+
+idx_rowid_corruption:
+ ;
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp)
+ return Xsqlite3CorruptError(tls, 87457)
+}
+
+// Compare the key of the index entry that cursor pC is pointing to against
+// the key string in pUnpacked. Write into *pRes a number
+// that is negative, zero, or positive if pC is less than, equal to,
+// or greater than pUnpacked. Return SQLITE_OK on success.
+//
+// pUnpacked is either created without a rowid or is truncated so that it
+// omits the rowid at the end. The rowid at the end of the index entry
+// is ignored as well. Hence, this routine only compares the prefixes
+// of the keys prior to the final rowid, not the entire key.
+func Xsqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked uintptr, res uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var nCellKey I64 = int64(0)
+ var rc int32
+ var pCur uintptr
+
+ pCur = *(*uintptr)(unsafe.Pointer(pC + 48))
+
+ nCellKey = I64(Xsqlite3BtreePayloadSize(tls, pCur))
+
+ if nCellKey <= int64(0) || nCellKey > int64(0x7fffffff) {
+ *(*int32)(unsafe.Pointer(res)) = 0
+ return Xsqlite3CorruptError(tls, 87490)
+ }
+ Xsqlite3VdbeMemInit(tls, bp, db, uint16(0))
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, U32(nCellKey), bp)
+ if rc != 0 {
+ return rc
+ }
+ *(*int32)(unsafe.Pointer(res)) = Xsqlite3VdbeRecordCompareWithSkip(tls, (*Mem)(unsafe.Pointer(bp)).Fn, (*Mem)(unsafe.Pointer(bp)).Fz, pUnpacked, 0)
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp)
+ return SQLITE_OK
+}
+
+// This routine sets the value to be returned by subsequent calls to
+// sqlite3_changes() on the database handle 'db'.
+func Xsqlite3VdbeSetChanges(tls *libc.TLS, db uintptr, nChange I64) {
+ (*Sqlite3)(unsafe.Pointer(db)).FnChange = nChange
+ *(*I64)(unsafe.Pointer(db + 128)) += nChange
+}
+
+// Set a flag in the vdbe to update the change counter when it is finalised
+// or reset.
+func Xsqlite3VdbeCountChanges(tls *libc.TLS, v uintptr) {
+ libc.SetBitFieldPtr8Uint32(v+200, Bft(1), 4, 0x10)
+}
+
+// Mark every prepared statement associated with a database connection
+// as expired.
+//
+// An expired statement means that recompilation of the statement is
+// recommend. Statements expire when things happen that make their
+// programs obsolete. Removing user-defined functions or collating
+// sequences, or changing an authorization function are the types of
+// things that make prepared statements obsolete.
+//
+// If iCode is 1, then expiration is advisory. The statement should
+// be reprepared before being restarted, but if it is already running
+// it is allowed to run to completion.
+//
+// Internally, this function just sets the Vdbe.expired flag on all
+// prepared statements. The flag is set to 1 for an immediate expiration
+// and set to 2 for an advisory expiration.
+func Xsqlite3ExpirePreparedStatements(tls *libc.TLS, db uintptr, iCode int32) {
+ var p uintptr
+ for p = (*Sqlite3)(unsafe.Pointer(db)).FpVdbe; p != 0; p = (*Vdbe)(unsafe.Pointer(p)).FpVNext {
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(iCode+1), 0, 0x3)
+ }
+}
+
+// Return the database associated with the Vdbe.
+func Xsqlite3VdbeDb(tls *libc.TLS, v uintptr) uintptr {
+ return (*Vdbe)(unsafe.Pointer(v)).Fdb
+}
+
+// Return the SQLITE_PREPARE flags for a Vdbe.
+func Xsqlite3VdbePrepareFlags(tls *libc.TLS, v uintptr) U8 {
+ return (*Vdbe)(unsafe.Pointer(v)).FprepFlags
+}
+
+// Return a pointer to an sqlite3_value structure containing the value bound
+// parameter iVar of VM v. Except, if the value is an SQL NULL, return
+// 0 instead. Unless it is NULL, apply affinity aff (one of the SQLITE_AFF_*
+// constants) to the value before returning it.
+//
+// The returned value must be freed by the caller using sqlite3ValueFree().
+func Xsqlite3VdbeGetBoundValue(tls *libc.TLS, v uintptr, iVar int32, aff U8) uintptr {
+ if v != 0 {
+ var pMem uintptr = (*Vdbe)(unsafe.Pointer(v)).FaVar + uintptr(iVar-1)*56
+
+ if 0 == int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Null {
+ var pRet uintptr = Xsqlite3ValueNew(tls, (*Vdbe)(unsafe.Pointer(v)).Fdb)
+ if pRet != 0 {
+ Xsqlite3VdbeMemCopy(tls, pRet, pMem)
+ Xsqlite3ValueApplyAffinity(tls, pRet, aff, uint8(SQLITE_UTF8))
+ }
+ return pRet
+ }
+ }
+ return uintptr(0)
+}
+
+// Configure SQL variable iVar so that binding a new value to it signals
+// to sqlite3_reoptimize() that re-preparing the statement may result
+// in a better query plan.
+func Xsqlite3VdbeSetVarmask(tls *libc.TLS, v uintptr, iVar int32) {
+ if iVar >= 32 {
+ *(*U32)(unsafe.Pointer(v + 284)) |= 0x80000000
+ } else {
+ *(*U32)(unsafe.Pointer(v + 284)) |= U32(1) << (iVar - 1)
+ }
+}
+
+// Cause a function to throw an error if it was call from OP_PureFunc
+// rather than OP_Function.
+//
+// OP_PureFunc means that the function must be deterministic, and should
+// throw an error if it is given inputs that would make it non-deterministic.
+// This routine is invoked by date/time functions that use non-deterministic
+// features such as 'now'.
+func Xsqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pOp uintptr
+ if (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe == uintptr(0) {
+ return 1
+ }
+ pOp = (*Vdbe)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_PureFunc {
+ var zContext uintptr
+ var zMsg uintptr
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp5)&NC_IsCheck != 0 {
+ zContext = ts + 5569
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp5)&NC_GenCol != 0 {
+ zContext = ts + 5588
+ } else {
+ zContext = ts + 5607
+ }
+ zMsg = Xsqlite3_mprintf(tls, ts+5616,
+ libc.VaList(bp, (*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext))
+ Xsqlite3_result_error(tls, pCtx, zMsg, -1)
+ Xsqlite3_free(tls, zMsg)
+ return 0
+ }
+ return 1
+}
+
+// Transfer error message text from an sqlite3_vtab.zErrMsg (text stored
+// in memory obtained from sqlite3_malloc) into a Vdbe.zErrMsg (text stored
+// in memory obtained from sqlite3DbMalloc).
+func Xsqlite3VtabImportErrmsg(tls *libc.TLS, p uintptr, pVtab uintptr) {
+ if (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0 {
+ var db uintptr = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3DbStrDup(tls, db, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)
+ Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)
+ (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = uintptr(0)
+ }
+}
+
+func vdbeFreeUnpacked(tls *libc.TLS, db uintptr, nField int32, p uintptr) {
+ if p != 0 {
+ var i int32
+ for i = 0; i < nField; i++ {
+ var pMem uintptr = (*UnpackedRecord)(unsafe.Pointer(p)).FaMem + uintptr(i)*56
+ if (*Mem)(unsafe.Pointer(pMem)).FzMalloc != 0 {
+ Xsqlite3VdbeMemReleaseMalloc(tls, pMem)
+ }
+ }
+ Xsqlite3DbNNFreeNN(tls, db, p)
+ }
+}
+
+// Invoke the pre-update hook. If this is an UPDATE or DELETE pre-update call,
+// then cursor passed as the second argument should point to the row about
+// to be update or deleted. If the application calls sqlite3_preupdate_old(),
+// the required value will be read from the row the cursor points to.
+func Xsqlite3VdbePreUpdateHook(tls *libc.TLS, v uintptr, pCsr uintptr, op int32, zDb uintptr, pTab uintptr, iKey1 I64, iReg int32, iBlobWrite int32) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var db uintptr = (*Vdbe)(unsafe.Pointer(v)).Fdb
+ var iKey2 I64
+
+ var zTbl uintptr = (*Table)(unsafe.Pointer(pTab)).FzName
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(PreUpdate{})), libc.X__builtin_object_size(tls, bp, 0))
+ if libc.Bool32((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) == 0 {
+ iKey1 = libc.AssignInt64(&iKey2, int64(0))
+ (*PreUpdate)(unsafe.Pointer(bp)).FpPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ } else {
+ if op == SQLITE_UPDATE {
+ iKey2 = *(*I64)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FaMem + uintptr(iReg)*56))
+ } else {
+ iKey2 = iKey1
+ }
+ }
+
+ (*PreUpdate)(unsafe.Pointer(bp)).Fv = v
+ (*PreUpdate)(unsafe.Pointer(bp)).FpCsr = pCsr
+ (*PreUpdate)(unsafe.Pointer(bp)).Fop = op
+ (*PreUpdate)(unsafe.Pointer(bp)).FiNewReg = iReg
+ (*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.Fdb = db
+ (*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ (*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.FnKeyField = U16((*Table)(unsafe.Pointer(pTab)).FnCol)
+ (*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.FaSortFlags = uintptr(unsafe.Pointer(&fakeSortOrder))
+ (*PreUpdate)(unsafe.Pointer(bp)).FiKey1 = iKey1
+ (*PreUpdate)(unsafe.Pointer(bp)).FiKey2 = iKey2
+ (*PreUpdate)(unsafe.Pointer(bp)).FpTab = pTab
+ (*PreUpdate)(unsafe.Pointer(bp)).FiBlobWrite = iBlobWrite
+
+ (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate = bp
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, Sqlite3_int64, Sqlite3_int64)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdateArg, db, op, zDb, zTbl, iKey1, iKey2)
+ (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate = uintptr(0)
+ Xsqlite3DbFree(tls, db, (*PreUpdate)(unsafe.Pointer(bp)).FaRecord)
+ vdbeFreeUnpacked(tls, db, int32((*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.FnKeyField)+1, (*PreUpdate)(unsafe.Pointer(bp)).FpUnpacked)
+ vdbeFreeUnpacked(tls, db, int32((*PreUpdate)(unsafe.Pointer(bp)).Fkeyinfo.FnKeyField)+1, (*PreUpdate)(unsafe.Pointer(bp)).FpNewUnpacked)
+ if (*PreUpdate)(unsafe.Pointer(bp)).FaNew != 0 {
+ var i int32
+ for i = 0; i < int32((*VdbeCursor)(unsafe.Pointer(pCsr)).FnField); i++ {
+ Xsqlite3VdbeMemRelease(tls, (*PreUpdate)(unsafe.Pointer(bp)).FaNew+uintptr(i)*56)
+ }
+ Xsqlite3DbNNFreeNN(tls, db, (*PreUpdate)(unsafe.Pointer(bp)).FaNew)
+ }
+}
+
+var fakeSortOrder U8 = U8(0)
+
+// Return TRUE (non-zero) of the statement supplied as an argument needs
+// to be recompiled. A statement needs to be recompiled whenever the
+// execution environment changes in a way that would alter the program
+// that sqlite3_prepare() generates. For example, if new functions or
+// collating sequences are registered or if an authorizer function is
+// added or changed.
+func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) int32 {
+ var p uintptr = pStmt
+ return libc.Bool32(p == uintptr(0) || Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x3>>0)) != 0)
+}
+
+func vdbeSafety(tls *libc.TLS, p uintptr) int32 {
+ if (*Vdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) {
+ Xsqlite3_log(tls, SQLITE_MISUSE, ts+5652, 0)
+ return 1
+ } else {
+ return 0
+ }
+ return int32(0)
+}
+
+func vdbeSafetyNotNull(tls *libc.TLS, p uintptr) int32 {
+ if p == uintptr(0) {
+ Xsqlite3_log(tls, SQLITE_MISUSE, ts+5697, 0)
+ return 1
+ } else {
+ return vdbeSafety(tls, p)
+ }
+ return int32(0)
+}
+
+func invokeProfileCallback(tls *libc.TLS, db uintptr, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ Xsqlite3OsCurrentTimeInt64(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, bp)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 8)) = (*(*Sqlite3_int64)(unsafe.Pointer(bp)) - (*Vdbe)(unsafe.Pointer(p)).FstartTime) * int64(1000000)
+ if (*Sqlite3)(unsafe.Pointer(db)).FxProfile != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, U64)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxProfile})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProfileArg, (*Vdbe)(unsafe.Pointer(p)).FzSql, uint64(*(*Sqlite3_int64)(unsafe.Pointer(bp + 8))))
+ }
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&SQLITE_TRACE_PROFILE != 0 {
+ (*struct {
+ f func(*libc.TLS, U32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, uint32(SQLITE_TRACE_PROFILE), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, bp+8)
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FstartTime = int64(0)
+}
+
+// The following routine destroys a virtual machine that is created by
+// the sqlite3_compile() routine. The integer returned is an SQLITE_
+// success/failure code that describes the result of executing the virtual
+// machine.
+//
+// This routine sets the error code and string returned by
+// sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
+func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) int32 {
+ var rc int32
+ if pStmt == uintptr(0) {
+ rc = SQLITE_OK
+ } else {
+ var v uintptr = pStmt
+ var db uintptr = (*Vdbe)(unsafe.Pointer(v)).Fdb
+ if vdbeSafety(tls, v) != 0 {
+ return Xsqlite3MisuseError(tls, 87854)
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Vdbe)(unsafe.Pointer(v)).FstartTime > int64(0) {
+ invokeProfileCallback(tls, db, v)
+ }
+
+ rc = Xsqlite3VdbeReset(tls, v)
+ Xsqlite3VdbeDelete(tls, v)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3LeaveMutexAndCloseZombie(tls, db)
+ }
+ return rc
+}
+
+// Terminate the current execution of an SQL statement and reset it
+// back to its starting state so that it can be reused. A success code from
+// the prior execution is returned.
+//
+// This routine sets the error code and string returned by
+// sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
+func Xsqlite3_reset(tls *libc.TLS, pStmt uintptr) int32 {
+ var rc int32
+ if pStmt == uintptr(0) {
+ rc = SQLITE_OK
+ } else {
+ var v uintptr = pStmt
+ var db uintptr = (*Vdbe)(unsafe.Pointer(v)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Vdbe)(unsafe.Pointer(v)).FstartTime > int64(0) {
+ invokeProfileCallback(tls, db, v)
+ }
+
+ rc = Xsqlite3VdbeReset(tls, v)
+ Xsqlite3VdbeRewind(tls, v)
+
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ }
+ return rc
+}
+
+// Set all the parameters in the compiled SQL statement to NULL.
+func Xsqlite3_clear_bindings(tls *libc.TLS, pStmt uintptr) int32 {
+ var i int32
+ var rc int32 = SQLITE_OK
+ var p uintptr = pStmt
+ var mutex uintptr = (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(pStmt)).Fdb)).Fmutex
+ Xsqlite3_mutex_enter(tls, mutex)
+ for i = 0; i < int32((*Vdbe)(unsafe.Pointer(p)).FnVar); i++ {
+ Xsqlite3VdbeMemRelease(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar+uintptr(i)*56)
+ (*Mem)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr(i)*56)).Fflags = U16(MEM_Null)
+ }
+
+ if (*Vdbe)(unsafe.Pointer(p)).Fexpmask != 0 {
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 0, 0x3)
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+ return rc
+}
+
+// *************************** sqlite3_value_ *******************************
+//
+// The following routines extract information from a Mem or sqlite3_value
+// structure.
+func Xsqlite3_value_blob(tls *libc.TLS, pVal uintptr) uintptr {
+ var p uintptr = pVal
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Blob|MEM_Str) != 0 {
+ if func() int32 {
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, p)
+ }
+ return 0
+ }() != SQLITE_OK {
+ return uintptr(0)
+ }
+ *(*U16)(unsafe.Pointer(p + 20)) |= U16(MEM_Blob)
+ if (*Mem)(unsafe.Pointer(p)).Fn != 0 {
+ return (*Mem)(unsafe.Pointer(p)).Fz
+ }
+ return uintptr(0)
+ } else {
+ return Xsqlite3_value_text(tls, pVal)
+ }
+ return uintptr(0)
+}
+
+func Xsqlite3_value_bytes(tls *libc.TLS, pVal uintptr) int32 {
+ return Xsqlite3ValueBytes(tls, pVal, uint8(SQLITE_UTF8))
+}
+
+func Xsqlite3_value_bytes16(tls *libc.TLS, pVal uintptr) int32 {
+ return Xsqlite3ValueBytes(tls, pVal, uint8(SQLITE_UTF16LE))
+}
+
+func Xsqlite3_value_double(tls *libc.TLS, pVal uintptr) float64 {
+ return Xsqlite3VdbeRealValue(tls, pVal)
+}
+
+func Xsqlite3_value_int(tls *libc.TLS, pVal uintptr) int32 {
+ return int32(Xsqlite3VdbeIntValue(tls, pVal))
+}
+
+func Xsqlite3_value_int64(tls *libc.TLS, pVal uintptr) Sqlite_int64 {
+ return Xsqlite3VdbeIntValue(tls, pVal)
+}
+
+func Xsqlite3_value_subtype(tls *libc.TLS, pVal uintptr) uint32 {
+ var pMem uintptr = pVal
+ return func() uint32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Subtype != 0 {
+ return uint32((*Mem)(unsafe.Pointer(pMem)).FeSubtype)
+ }
+ return uint32(0)
+ }()
+}
+
+func Xsqlite3_value_pointer(tls *libc.TLS, pVal uintptr, zPType uintptr) uintptr {
+ var p uintptr = pVal
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_TypeMask|MEM_Term|MEM_Subtype) == MEM_Null|MEM_Term|MEM_Subtype &&
+ zPType != uintptr(0) &&
+ int32((*Mem)(unsafe.Pointer(p)).FeSubtype) == 'p' &&
+ libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(p)), zPType) == 0 {
+ return (*Mem)(unsafe.Pointer(p)).Fz
+ } else {
+ return uintptr(0)
+ }
+ return uintptr(0)
+}
+
+func Xsqlite3_value_text(tls *libc.TLS, pVal uintptr) uintptr {
+ return Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF8))
+}
+
+func Xsqlite3_value_text16(tls *libc.TLS, pVal uintptr) uintptr {
+ return Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF16LE))
+}
+
+func Xsqlite3_value_text16be(tls *libc.TLS, pVal uintptr) uintptr {
+ return Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF16BE))
+}
+
+func Xsqlite3_value_text16le(tls *libc.TLS, pVal uintptr) uintptr {
+ return Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF16LE))
+}
+
+// EVIDENCE-OF: R-12793-43283 Every value in SQLite has one of five
+// fundamental datatypes: 64-bit signed integer 64-bit IEEE floating
+// point number string BLOB NULL
+func Xsqlite3_value_type(tls *libc.TLS, pVal uintptr) int32 {
+ return int32(aType[int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&MEM_AffMask])
+}
+
+var aType = [64]U8{
+ U8(SQLITE_BLOB),
+ U8(SQLITE_NULL),
+ U8(SQLITE_TEXT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_BLOB),
+ U8(SQLITE_NULL),
+ U8(SQLITE_TEXT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_INTEGER),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_TEXT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_BLOB),
+ U8(SQLITE_NULL),
+ U8(SQLITE_TEXT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+ U8(SQLITE_FLOAT),
+ U8(SQLITE_NULL),
+}
+
+func Xsqlite3_value_encoding(tls *libc.TLS, pVal uintptr) int32 {
+ return int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fenc)
+}
+
+// Return true if a parameter to xUpdate represents an unchanged column
+func Xsqlite3_value_nochange(tls *libc.TLS, pVal uintptr) int32 {
+ return libc.Bool32(int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(MEM_Null|MEM_Zero) == MEM_Null|MEM_Zero)
+}
+
+// Return true if a parameter value originated from an sqlite3_bind()
+func Xsqlite3_value_frombind(tls *libc.TLS, pVal uintptr) int32 {
+ return libc.Bool32(int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&MEM_FromBind != 0)
+}
+
+// Make a copy of an sqlite3_value object
+func Xsqlite3_value_dup(tls *libc.TLS, pOrig uintptr) uintptr {
+ var pNew uintptr
+ if pOrig == uintptr(0) {
+ return uintptr(0)
+ }
+ pNew = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Sqlite3_value{})))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Sqlite3_value{})), libc.X__builtin_object_size(tls, pNew, 0))
+ libc.X__builtin___memcpy_chk(tls, pNew, pOrig, uint64(uintptr(0)+24), libc.X__builtin_object_size(tls, pNew, 0))
+ *(*U16)(unsafe.Pointer(pNew + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Dyn))
+ (*Sqlite3_value)(unsafe.Pointer(pNew)).Fdb = uintptr(0)
+ if int32((*Sqlite3_value)(unsafe.Pointer(pNew)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ *(*U16)(unsafe.Pointer(pNew + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Static | MEM_Dyn))
+ *(*U16)(unsafe.Pointer(pNew + 20)) |= U16(MEM_Ephem)
+ if Xsqlite3VdbeMemMakeWriteable(tls, pNew) != SQLITE_OK {
+ Xsqlite3ValueFree(tls, pNew)
+ pNew = uintptr(0)
+ }
+ } else if int32((*Sqlite3_value)(unsafe.Pointer(pNew)).Fflags)&MEM_Null != 0 {
+ *(*U16)(unsafe.Pointer(pNew + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Term | MEM_Subtype))
+ }
+ return pNew
+}
+
+// Destroy an sqlite3_value object previously obtained from
+// sqlite3_value_dup().
+func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) {
+ Xsqlite3ValueFree(tls, pOld)
+}
+
+func setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc U8, xDel uintptr) {
+ var pOut uintptr = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut
+ var rc int32 = Xsqlite3VdbeMemSetStr(tls, pOut, z, int64(n), enc, xDel)
+ if rc != 0 {
+ if rc == SQLITE_TOOBIG {
+ Xsqlite3_result_error_toobig(tls, pCtx)
+ } else {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ }
+ return
+ }
+ Xsqlite3VdbeChangeEncoding(tls, pOut, int32((*Sqlite3_context)(unsafe.Pointer(pCtx)).Fenc))
+ if Xsqlite3VdbeMemTooBig(tls, pOut) != 0 {
+ Xsqlite3_result_error_toobig(tls, pCtx)
+ }
+}
+
+func invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) int32 {
+ if xDel == uintptr(0) {
+ } else if xDel == libc.UintptrFromInt32(-1) {
+ } else {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDel})).f(tls, p)
+ }
+ Xsqlite3_result_error_toobig(tls, pCtx)
+ return SQLITE_TOOBIG
+}
+
+func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) {
+ setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel)
+}
+
+func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Sqlite3_uint64, xDel uintptr) {
+ if n > uint64(0x7fffffff) {
+ invokeValueDestructor(tls, z, xDel, pCtx)
+ } else {
+ setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), xDel)
+ }
+}
+
+func Xsqlite3_result_double(tls *libc.TLS, pCtx uintptr, rVal float64) {
+ Xsqlite3VdbeMemSetDouble(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, rVal)
+}
+
+func Xsqlite3_result_error(tls *libc.TLS, pCtx uintptr, z uintptr, n int32) {
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = SQLITE_ERROR
+ Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(n), uint8(SQLITE_UTF8), libc.UintptrFromInt32(-1))
+}
+
+func Xsqlite3_result_error16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32) {
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = SQLITE_ERROR
+ Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(n), uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(-1))
+}
+
+func Xsqlite3_result_int(tls *libc.TLS, pCtx uintptr, iVal int32) {
+ Xsqlite3VdbeMemSetInt64(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, I64(iVal))
+}
+
+func Xsqlite3_result_int64(tls *libc.TLS, pCtx uintptr, iVal I64) {
+ Xsqlite3VdbeMemSetInt64(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, iVal)
+}
+
+func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) {
+ Xsqlite3VdbeMemSetNull(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut)
+}
+
+func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) {
+ var pOut uintptr = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut
+
+ Xsqlite3VdbeMemRelease(tls, pOut)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Null)
+ Xsqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor)
+}
+
+func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) {
+ var pOut uintptr = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut
+
+ (*Mem)(unsafe.Pointer(pOut)).FeSubtype = U8(eSubtype & uint32(0xff))
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Subtype)
+}
+
+func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) {
+ setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel)
+}
+
+func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Sqlite3_uint64, xDel uintptr, enc uint8) {
+ if int32(enc) != SQLITE_UTF8 {
+ if int32(enc) == SQLITE_UTF16 {
+ enc = uint8(SQLITE_UTF16LE)
+ }
+ n = n & libc.CplUint64(uint64(1))
+ }
+ if n > uint64(0x7fffffff) {
+ invokeValueDestructor(tls, z, xDel, pCtx)
+ } else {
+ setResultStrOrError(tls, pCtx, z, int32(n), enc, xDel)
+ }
+}
+
+func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) {
+ setResultStrOrError(tls, pCtx, z, int32(U64(n)&libc.CplUint64(uint64(1))), uint8(SQLITE_UTF16LE), xDel)
+}
+
+func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) {
+ setResultStrOrError(tls, pCtx, z, int32(U64(n)&libc.CplUint64(uint64(1))), uint8(SQLITE_UTF16BE), xDel)
+}
+
+func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) {
+ setResultStrOrError(tls, pCtx, z, int32(U64(n)&libc.CplUint64(uint64(1))), uint8(SQLITE_UTF16LE), xDel)
+}
+
+func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) {
+ var pOut uintptr = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut
+
+ Xsqlite3VdbeMemCopy(tls, pOut, pValue)
+ Xsqlite3VdbeChangeEncoding(tls, pOut, int32((*Sqlite3_context)(unsafe.Pointer(pCtx)).Fenc))
+ if Xsqlite3VdbeMemTooBig(tls, pOut) != 0 {
+ Xsqlite3_result_error_toobig(tls, pCtx)
+ }
+}
+
+func Xsqlite3_result_zeroblob(tls *libc.TLS, pCtx uintptr, n int32) {
+ Xsqlite3_result_zeroblob64(tls, pCtx, func() uint64 {
+ if n > 0 {
+ return uint64(n)
+ }
+ return uint64(0)
+ }())
+}
+
+func Xsqlite3_result_zeroblob64(tls *libc.TLS, pCtx uintptr, n U64) int32 {
+ var pOut uintptr = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut
+
+ if n > U64(*(*int32)(unsafe.Pointer((*Mem)(unsafe.Pointer(pOut)).Fdb + 136))) {
+ Xsqlite3_result_error_toobig(tls, pCtx)
+ return SQLITE_TOOBIG
+ }
+ Xsqlite3VdbeMemSetZeroBlob(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, int32(n))
+ return SQLITE_OK
+}
+
+func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) {
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = func() int32 {
+ if errCode != 0 {
+ return errCode
+ }
+ return -1
+ }()
+ if int32((*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut)).Fflags)&MEM_Null != 0 {
+ setResultStrOrError(tls, pCtx, Xsqlite3ErrStr(tls, errCode), -1, uint8(SQLITE_UTF8),
+ uintptr(0))
+ }
+}
+
+// Force an SQLITE_TOOBIG error.
+func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) {
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = SQLITE_TOOBIG
+ Xsqlite3VdbeMemSetStr(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, ts+5737, int64(-1),
+ uint8(SQLITE_UTF8), uintptr(0))
+}
+
+// An SQLITE_NOMEM error.
+func Xsqlite3_result_error_nomem(tls *libc.TLS, pCtx uintptr) {
+ Xsqlite3VdbeMemSetNull(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = SQLITE_NOMEM
+ Xsqlite3OomFault(tls, (*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut)).Fdb)
+}
+
+// Force the INT64 value currently stored as the result to be
+// a MEM_IntReal value. See the SQLITE_TESTCTRL_RESULT_INTREAL
+// test-control.
+func Xsqlite3ResultIntReal(tls *libc.TLS, pCtx uintptr) {
+ if int32((*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut)).Fflags)&MEM_Int != 0 {
+ *(*U16)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+ *(*U16)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut + 20)) |= U16(MEM_IntReal)
+ }
+}
+
+func doWalCallbacks(tls *libc.TLS, db uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var i int32
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ var nEntry int32
+ Xsqlite3BtreeEnter(tls, pBt)
+ nEntry = Xsqlite3PagerWalCallback(tls, Xsqlite3BtreePager(tls, pBt))
+ Xsqlite3BtreeLeave(tls, pBt)
+ if nEntry > 0 && (*Sqlite3)(unsafe.Pointer(db)).FxWalCallback != 0 && rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxWalCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpWalArg, db, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FzDbSName, nEntry)
+ }
+ }
+ }
+ return rc
+}
+
+func sqlite3Step(tls *libc.TLS, p uintptr) int32 {
+ var db uintptr
+ var rc int32
+
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) != VDBE_RUN_STATE) {
+ goto __1
+ }
+restart_step:
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) == VDBE_READY_STATE) {
+ goto __2
+ }
+ if !(Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x3>>0)) != 0) {
+ goto __4
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_SCHEMA
+ rc = SQLITE_ERROR
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FprepFlags)&SQLITE_PREPARE_SAVESQL != 0) {
+ goto __5
+ }
+
+ rc = Xsqlite3VdbeTransferError(tls, p)
+__5:
+ ;
+ goto end_of_step
+__4:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive == 0) {
+ goto __6
+ }
+ *(*int32)(unsafe.Pointer(db + 432)) = 0
+__6:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&(SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE) != 0 &&
+ !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) && (*Vdbe)(unsafe.Pointer(p)).FzSql != 0) {
+ goto __7
+ }
+ Xsqlite3OsCurrentTimeInt64(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, p+184)
+ goto __8
+__7:
+ ;
+__8:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive++
+ if !(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x40>>6) == 0) {
+ goto __9
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite++
+__9:
+ ;
+ if !(Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x80>>7)) != 0) {
+ goto __10
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead++
+__10:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = 0
+ (*Vdbe)(unsafe.Pointer(p)).FeVdbeState = U8(VDBE_RUN_STATE)
+ goto __3
+__2:
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) == VDBE_HALT_STATE) {
+ goto __11
+ }
+
+ Xsqlite3_reset(tls, p)
+
+ goto restart_step
+__11:
+ ;
+__3:
+ ;
+__1:
+ ;
+ if !(Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0xc>>2)) != 0) {
+ goto __12
+ }
+ rc = Xsqlite3VdbeList(tls, p)
+ goto __13
+__12:
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec++
+ rc = Xsqlite3VdbeExec(tls, p)
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec--
+__13:
+ ;
+ if !(rc == SQLITE_ROW) {
+ goto __14
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = SQLITE_ROW
+ return SQLITE_ROW
+ goto __15
+__14:
+ if !((*Vdbe)(unsafe.Pointer(p)).FstartTime > int64(0)) {
+ goto __16
+ }
+ invokeProfileCallback(tls, db, p)
+__16:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).FpResultRow = uintptr(0)
+ if !(rc == SQLITE_DONE && (*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0) {
+ goto __17
+ }
+
+ (*Vdbe)(unsafe.Pointer(p)).Frc = doWalCallbacks(tls, db)
+ if !((*Vdbe)(unsafe.Pointer(p)).Frc != SQLITE_OK) {
+ goto __19
+ }
+ rc = SQLITE_ERROR
+__19:
+ ;
+ goto __18
+__17:
+ if !(rc != SQLITE_DONE && int32((*Vdbe)(unsafe.Pointer(p)).FprepFlags)&SQLITE_PREPARE_SAVESQL != 0) {
+ goto __20
+ }
+
+ rc = Xsqlite3VdbeTransferError(tls, p)
+__20:
+ ;
+__18:
+ ;
+__15:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = rc
+ if !(SQLITE_NOMEM == Xsqlite3ApiExit(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, (*Vdbe)(unsafe.Pointer(p)).Frc)) {
+ goto __21
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FprepFlags)&SQLITE_PREPARE_SAVESQL != 0) {
+ goto __22
+ }
+ rc = (*Vdbe)(unsafe.Pointer(p)).Frc
+__22:
+ ;
+__21:
+ ;
+end_of_step:
+ ;
+ return rc & (*Sqlite3)(unsafe.Pointer(db)).FerrMask
+}
+
+// This is the top-level implementation of sqlite3_step(). Call
+// sqlite3Step() to do most of the work. If a schema error occurs,
+// call sqlite3Reprepare() and try again.
+func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var v uintptr = pStmt
+ var cnt int32 = 0
+ var db uintptr
+
+ if vdbeSafetyNotNull(tls, v) != 0 {
+ return Xsqlite3MisuseError(tls, 88544)
+ }
+ db = (*Vdbe)(unsafe.Pointer(v)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ for libc.AssignInt32(&rc, sqlite3Step(tls, v)) == SQLITE_SCHEMA &&
+ libc.PostIncInt32(&cnt, 1) < SQLITE_MAX_SCHEMA_RETRY {
+ var savedPc int32 = (*Vdbe)(unsafe.Pointer(v)).Fpc
+ rc = Xsqlite3Reprepare(tls, v)
+ if rc != SQLITE_OK {
+ var zErr uintptr = Xsqlite3_value_text(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(v)).FzErrMsg)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ (*Vdbe)(unsafe.Pointer(v)).FzErrMsg = Xsqlite3DbStrDup(tls, db, zErr)
+ (*Vdbe)(unsafe.Pointer(v)).Frc = libc.AssignInt32(&rc, Xsqlite3ApiExit(tls, db, rc))
+ } else {
+ (*Vdbe)(unsafe.Pointer(v)).FzErrMsg = uintptr(0)
+ (*Vdbe)(unsafe.Pointer(v)).Frc = libc.AssignInt32(&rc, SQLITE_NOMEM)
+ }
+ break
+ }
+ Xsqlite3_reset(tls, pStmt)
+ if savedPc >= 0 {
+ (*Vdbe)(unsafe.Pointer(v)).FminWriteFileFormat = U8(254)
+ }
+
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Extract the user data from a sqlite3_context structure and return a
+// pointer to it.
+func Xsqlite3_user_data(tls *libc.TLS, p uintptr) uintptr {
+ return (*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpFunc)).FpUserData
+}
+
+// Extract the user data from a sqlite3_context structure and return a
+// pointer to it.
+//
+// IMPLEMENTATION-OF: R-46798-50301 The sqlite3_context_db_handle() interface
+// returns a copy of the pointer to the database connection (the 1st
+// parameter) of the sqlite3_create_function() and
+// sqlite3_create_function16() routines that originally registered the
+// application defined function.
+func Xsqlite3_context_db_handle(tls *libc.TLS, p uintptr) uintptr {
+ return (*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpOut)).Fdb
+}
+
+// If this routine is invoked from within an xColumn method of a virtual
+// table, then it returns true if and only if the the call is during an
+// UPDATE operation and the value of the column will not be modified
+// by the UPDATE.
+//
+// If this routine is called from any context other than within the
+// xColumn method of a virtual table, then the return value is meaningless
+// and arbitrary.
+//
+// Virtual table implements might use this routine to optimize their
+// performance by substituting a NULL result, or some other light-weight
+// value, as a signal to the xUpdate routine that the column is unchanged.
+func Xsqlite3_vtab_nochange(tls *libc.TLS, p uintptr) int32 {
+ return Xsqlite3_value_nochange(tls, (*Sqlite3_context)(unsafe.Pointer(p)).FpOut)
+}
+
+// The destructor function for a ValueList object. This needs to be
+// a separate function, unknowable to the application, to ensure that
+// calls to sqlite3_vtab_in_first()/sqlite3_vtab_in_next() that are not
+// preceeded by activation of IN processing via sqlite3_vtab_int() do not
+// try to access a fake ValueList object inserted by a hostile extension.
+func Xsqlite3VdbeValueListFree(tls *libc.TLS, pToDelete uintptr) {
+ Xsqlite3_free(tls, pToDelete)
+}
+
+func valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32) int32 {
+ bp := tls.Alloc(68)
+ defer tls.Free(68)
+
+ var rc int32
+ var pRhs uintptr
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+ if pVal == uintptr(0) {
+ return SQLITE_MISUSE
+ }
+ if int32((*Sqlite3_value)(unsafe.Pointer(pVal)).Fflags)&MEM_Dyn == 0 || (*Sqlite3_value)(unsafe.Pointer(pVal)).FxDel != *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3VdbeValueListFree})) {
+ return SQLITE_ERROR
+ } else {
+ pRhs = (*Sqlite3_value)(unsafe.Pointer(pVal)).Fz
+ }
+ if bNext != 0 {
+ rc = Xsqlite3BtreeNext(tls, (*ValueList)(unsafe.Pointer(pRhs)).FpCsr, 0)
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ rc = Xsqlite3BtreeFirst(tls, (*ValueList)(unsafe.Pointer(pRhs)).FpCsr, bp)
+
+ if Xsqlite3BtreeEof(tls, (*ValueList)(unsafe.Pointer(pRhs)).FpCsr) != 0 {
+ rc = SQLITE_DONE
+ }
+ }
+ if rc == SQLITE_OK {
+ var sz U32
+
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ sz = Xsqlite3BtreePayloadSize(tls, (*ValueList)(unsafe.Pointer(pRhs)).FpCsr)
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, (*ValueList)(unsafe.Pointer(pRhs)).FpCsr, uint32(int32(sz)), bp+8)
+ if rc == SQLITE_OK {
+ var zBuf uintptr = (*Mem)(unsafe.Pointer(bp + 8)).Fz
+
+ var pOut uintptr = (*ValueList)(unsafe.Pointer(pRhs)).FpOut
+ var iOff int32 = 1 + int32(func() uint8 {
+ if int32(*(*U8)(unsafe.Pointer(zBuf + 1))) < int32(U8(0x80)) {
+ return uint8(func() int32 { *(*U32)(unsafe.Pointer(bp + 64)) = U32(*(*U8)(unsafe.Pointer(zBuf + 1))); return 1 }())
+ }
+ return Xsqlite3GetVarint32(tls, zBuf+1, bp+64)
+ }())
+ Xsqlite3VdbeSerialGet(tls, zBuf+uintptr(iOff), *(*U32)(unsafe.Pointer(bp + 64)), pOut)
+ (*Sqlite3_value)(unsafe.Pointer(pOut)).Fenc = (*Sqlite3)(unsafe.Pointer((*Sqlite3_value)(unsafe.Pointer(pOut)).Fdb)).Fenc
+ if int32((*Sqlite3_value)(unsafe.Pointer(pOut)).Fflags)&MEM_Ephem != 0 && Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0 {
+ rc = SQLITE_NOMEM
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pOut
+ }
+ }
+ Xsqlite3VdbeMemRelease(tls, bp+8)
+ }
+ return rc
+}
+
+// Set the iterator value pVal to point to the first value in the set.
+// Set (*ppOut) to point to this value before returning.
+func Xsqlite3_vtab_in_first(tls *libc.TLS, pVal uintptr, ppOut uintptr) int32 {
+ return valueFromValueList(tls, pVal, ppOut, 0)
+}
+
+// Set the iterator value pVal to point to the next value in the set.
+// Set (*ppOut) to point to this value before returning.
+func Xsqlite3_vtab_in_next(tls *libc.TLS, pVal uintptr, ppOut uintptr) int32 {
+ return valueFromValueList(tls, pVal, ppOut, 1)
+}
+
+// Return the current time for a statement. If the current time
+// is requested more than once within the same run of a single prepared
+// statement, the exact same time is returned for each invocation regardless
+// of the amount of time that elapses between invocations. In other words,
+// the time returned is always the time of the first call.
+func Xsqlite3StmtCurrentTime(tls *libc.TLS, p uintptr) Sqlite3_int64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ var piTime uintptr
+ if (*Sqlite3_context)(unsafe.Pointer(p)).FpVdbe != uintptr(0) {
+ piTime = (*Sqlite3_context)(unsafe.Pointer(p)).FpVdbe + 72
+ } else {
+ piTime = bp
+ }
+ if *(*Sqlite3_int64)(unsafe.Pointer(piTime)) == int64(0) {
+ rc = Xsqlite3OsCurrentTimeInt64(tls, (*Sqlite3)(unsafe.Pointer((*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpOut)).Fdb)).FpVfs, piTime)
+ if rc != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piTime)) = int64(0)
+ }
+ }
+ return *(*Sqlite3_int64)(unsafe.Pointer(piTime))
+}
+
+func createAggContext(tls *libc.TLS, p uintptr, nByte int32) uintptr {
+ var pMem uintptr = (*Sqlite3_context)(unsafe.Pointer(p)).FpMem
+
+ if nByte <= 0 {
+ Xsqlite3VdbeMemSetNull(tls, pMem)
+ (*Mem)(unsafe.Pointer(pMem)).Fz = uintptr(0)
+ } else {
+ Xsqlite3VdbeMemClearAndResize(tls, pMem, nByte)
+ (*Mem)(unsafe.Pointer(pMem)).Fflags = U16(MEM_Agg)
+ *(*uintptr)(unsafe.Pointer(pMem)) = (*Sqlite3_context)(unsafe.Pointer(p)).FpFunc
+ if (*Mem)(unsafe.Pointer(pMem)).Fz != 0 {
+ libc.X__builtin___memset_chk(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, 0, uint64(nByte), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, 0))
+ }
+ }
+ return (*Mem)(unsafe.Pointer(pMem)).Fz
+}
+
+// Allocate or return the aggregate context for a user function. A new
+// context is allocated on the first call. Subsequent calls return the
+// same context that was returned on prior calls.
+func Xsqlite3_aggregate_context(tls *libc.TLS, p uintptr, nByte int32) uintptr {
+ if int32((*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpMem)).Fflags)&MEM_Agg == 0 {
+ return createAggContext(tls, p, nByte)
+ } else {
+ return (*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpMem)).Fz
+ }
+ return uintptr(0)
+}
+
+// Return the auxiliary data pointer, if any, for the iArg'th argument to
+// the user-function defined by pCtx.
+//
+// The left-most argument is 0.
+//
+// Undocumented behavior: If iArg is negative then access a cache of
+// auxiliary data pointers that is available to all functions within a
+// single prepared statement. The iArg values must match.
+func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) uintptr {
+ var pAuxData uintptr
+
+ if (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe == uintptr(0) {
+ return uintptr(0)
+ }
+ for pAuxData = (*Vdbe)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FpAuxData; pAuxData != 0; pAuxData = (*AuxData)(unsafe.Pointer(pAuxData)).FpNextAux {
+ if (*AuxData)(unsafe.Pointer(pAuxData)).FiAuxArg == iArg && ((*AuxData)(unsafe.Pointer(pAuxData)).FiAuxOp == (*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp || iArg < 0) {
+ return (*AuxData)(unsafe.Pointer(pAuxData)).FpAux
+ }
+ }
+ return uintptr(0)
+}
+
+// Set the auxiliary data pointer and delete function, for the iArg'th
+// argument to the user-function defined by pCtx. Any previous value is
+// deleted by calling the delete function specified when it was set.
+//
+// The left-most argument is 0.
+//
+// Undocumented behavior: If iArg is negative then make the data available
+// to all functions within the current prepared statement using iArg as an
+// access code.
+func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) {
+ var pAuxData uintptr
+ var pVdbe uintptr
+ pVdbe = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe
+
+ if !(pVdbe == uintptr(0)) {
+ goto __1
+ }
+ goto failed
+__1:
+ ;
+ pAuxData = (*Vdbe)(unsafe.Pointer(pVdbe)).FpAuxData
+__2:
+ if !(pAuxData != 0) {
+ goto __4
+ }
+ if !((*AuxData)(unsafe.Pointer(pAuxData)).FiAuxArg == iArg && ((*AuxData)(unsafe.Pointer(pAuxData)).FiAuxOp == (*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp || iArg < 0)) {
+ goto __5
+ }
+ goto __4
+__5:
+ ;
+ goto __3
+__3:
+ pAuxData = (*AuxData)(unsafe.Pointer(pAuxData)).FpNextAux
+ goto __2
+ goto __4
+__4:
+ ;
+ if !(pAuxData == uintptr(0)) {
+ goto __6
+ }
+ pAuxData = Xsqlite3DbMallocZero(tls, (*Vdbe)(unsafe.Pointer(pVdbe)).Fdb, uint64(unsafe.Sizeof(AuxData{})))
+ if !!(pAuxData != 0) {
+ goto __8
+ }
+ goto failed
+__8:
+ ;
+ (*AuxData)(unsafe.Pointer(pAuxData)).FiAuxOp = (*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp
+ (*AuxData)(unsafe.Pointer(pAuxData)).FiAuxArg = iArg
+ (*AuxData)(unsafe.Pointer(pAuxData)).FpNextAux = (*Vdbe)(unsafe.Pointer(pVdbe)).FpAuxData
+ (*Vdbe)(unsafe.Pointer(pVdbe)).FpAuxData = pAuxData
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError == 0) {
+ goto __9
+ }
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = -1
+__9:
+ ;
+ goto __7
+__6:
+ if !((*AuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux != 0) {
+ goto __10
+ }
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*AuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux})).f(tls, (*AuxData)(unsafe.Pointer(pAuxData)).FpAux)
+__10:
+ ;
+__7:
+ ;
+ (*AuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux
+ (*AuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete
+ return
+
+failed:
+ if !(xDelete != 0) {
+ goto __11
+ }
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDelete})).f(tls, pAux)
+__11:
+}
+
+// Return the number of times the Step function of an aggregate has been
+// called.
+//
+// This function is deprecated. Do not use it for new code. It is
+// provide only to avoid breaking legacy code. New aggregate function
+// implementations should keep their own counts within their aggregate
+// context.
+func Xsqlite3_aggregate_count(tls *libc.TLS, p uintptr) int32 {
+ return (*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(p)).FpMem)).Fn
+}
+
+// Return the number of columns in the result set for the statement pStmt.
+func Xsqlite3_column_count(tls *libc.TLS, pStmt uintptr) int32 {
+ var pVm uintptr = pStmt
+ if pVm != 0 {
+ return int32((*Vdbe)(unsafe.Pointer(pVm)).FnResColumn)
+ }
+ return 0
+}
+
+// Return the number of values available from the current row of the
+// currently executing statement pStmt.
+func Xsqlite3_data_count(tls *libc.TLS, pStmt uintptr) int32 {
+ var pVm uintptr = pStmt
+ if pVm == uintptr(0) || (*Vdbe)(unsafe.Pointer(pVm)).FpResultRow == uintptr(0) {
+ return 0
+ }
+ return int32((*Vdbe)(unsafe.Pointer(pVm)).FnResColumn)
+}
+
+func columnNullValue(tls *libc.TLS) uintptr {
+ return uintptr(unsafe.Pointer(&nullMem))
+}
+
+var nullMem = Mem{
+ Fflags: U16(MEM_Null),
+}
+
+func columnMem(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var pVm uintptr
+ var pOut uintptr
+
+ pVm = pStmt
+ if pVm == uintptr(0) {
+ return columnNullValue(tls)
+ }
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(pVm)).Fdb)).Fmutex)
+ if (*Vdbe)(unsafe.Pointer(pVm)).FpResultRow != uintptr(0) && i < int32((*Vdbe)(unsafe.Pointer(pVm)).FnResColumn) && i >= 0 {
+ pOut = (*Vdbe)(unsafe.Pointer(pVm)).FpResultRow + uintptr(i)*56
+ } else {
+ Xsqlite3Error(tls, (*Vdbe)(unsafe.Pointer(pVm)).Fdb, SQLITE_RANGE)
+ pOut = columnNullValue(tls)
+ }
+ return pOut
+}
+
+func columnMallocFailure(tls *libc.TLS, pStmt uintptr) {
+ var p uintptr = pStmt
+ if p != 0 {
+ (*Vdbe)(unsafe.Pointer(p)).Frc = Xsqlite3ApiExit(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, (*Vdbe)(unsafe.Pointer(p)).Frc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+}
+
+// *************************** sqlite3_column_ *******************************
+//
+// The following routines are used to access elements of the current row
+// in the result set.
+func Xsqlite3_column_blob(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var val uintptr
+ val = Xsqlite3_value_blob(tls, columnMem(tls, pStmt, i))
+
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_bytes(tls *libc.TLS, pStmt uintptr, i int32) int32 {
+ var val int32 = Xsqlite3_value_bytes(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_bytes16(tls *libc.TLS, pStmt uintptr, i int32) int32 {
+ var val int32 = Xsqlite3_value_bytes16(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_double(tls *libc.TLS, pStmt uintptr, i int32) float64 {
+ var val float64 = Xsqlite3_value_double(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_int(tls *libc.TLS, pStmt uintptr, i int32) int32 {
+ var val int32 = Xsqlite3_value_int(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_int64(tls *libc.TLS, pStmt uintptr, i int32) Sqlite_int64 {
+ var val Sqlite_int64 = Xsqlite3_value_int64(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_text(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var val uintptr = Xsqlite3_value_text(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_value(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var pOut uintptr = columnMem(tls, pStmt, i)
+ if int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&MEM_Static != 0 {
+ *(*U16)(unsafe.Pointer(pOut + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Static))
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Ephem)
+ }
+ columnMallocFailure(tls, pStmt)
+ return pOut
+}
+
+func Xsqlite3_column_text16(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var val uintptr = Xsqlite3_value_text16(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return val
+}
+
+func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) int32 {
+ var iType int32 = Xsqlite3_value_type(tls, columnMem(tls, pStmt, i))
+ columnMallocFailure(tls, pStmt)
+ return iType
+}
+
+func columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType int32) uintptr {
+ var ret uintptr
+ var p uintptr
+ var n int32
+ var db uintptr
+ ret = uintptr(0)
+ p = pStmt
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+
+ n = Xsqlite3_column_count(tls, pStmt)
+ if N < n && N >= 0 {
+ N = N + useType*n
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ if useUtf16 != 0 {
+ ret = Xsqlite3_value_text16(tls, (*Vdbe)(unsafe.Pointer(p)).FaColName+uintptr(N)*56)
+ } else {
+ ret = Xsqlite3_value_text(tls, (*Vdbe)(unsafe.Pointer(p)).FaColName+uintptr(N)*56)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3OomClear(tls, db)
+ ret = uintptr(0)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ }
+ return ret
+}
+
+// Return the name of the Nth column of the result set returned by SQL
+// statement pStmt.
+func Xsqlite3_column_name(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 0, COLNAME_NAME)
+}
+
+func Xsqlite3_column_name16(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 1, COLNAME_NAME)
+}
+
+// Return the column declaration type (if applicable) of the 'i'th column
+// of the result set of SQL statement pStmt.
+func Xsqlite3_column_decltype(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 0, COLNAME_DECLTYPE)
+}
+
+func Xsqlite3_column_decltype16(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 1, COLNAME_DECLTYPE)
+}
+
+// Return the name of the database from which a result column derives.
+// NULL is returned if the result column is an expression or constant or
+// anything else which is not an unambiguous reference to a database column.
+func Xsqlite3_column_database_name(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 0, COLNAME_DATABASE)
+}
+
+func Xsqlite3_column_database_name16(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 1, COLNAME_DATABASE)
+}
+
+// Return the name of the table from which a result column derives.
+// NULL is returned if the result column is an expression or constant or
+// anything else which is not an unambiguous reference to a database column.
+func Xsqlite3_column_table_name(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 0, COLNAME_TABLE)
+}
+
+func Xsqlite3_column_table_name16(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 1, COLNAME_TABLE)
+}
+
+// Return the name of the table column from which a result column derives.
+// NULL is returned if the result column is an expression or constant or
+// anything else which is not an unambiguous reference to a database column.
+func Xsqlite3_column_origin_name(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 0, COLNAME_COLUMN)
+}
+
+func Xsqlite3_column_origin_name16(tls *libc.TLS, pStmt uintptr, N int32) uintptr {
+ return columnName(tls, pStmt, N, 1, COLNAME_COLUMN)
+}
+
+func vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pVar uintptr
+ if vdbeSafetyNotNull(tls, p) != 0 {
+ return Xsqlite3MisuseError(tls, 89208)
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ if int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) != VDBE_READY_STATE {
+ Xsqlite3Error(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, SQLITE_MISUSE)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ Xsqlite3_log(tls, SQLITE_MISUSE,
+ ts+5760, libc.VaList(bp, (*Vdbe)(unsafe.Pointer(p)).FzSql))
+ return Xsqlite3MisuseError(tls, 89216)
+ }
+ if i >= uint32((*Vdbe)(unsafe.Pointer(p)).FnVar) {
+ Xsqlite3Error(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, SQLITE_RANGE)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ return SQLITE_RANGE
+ }
+ pVar = (*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr(i)*56
+ Xsqlite3VdbeMemRelease(tls, pVar)
+ (*Mem)(unsafe.Pointer(pVar)).Fflags = U16(MEM_Null)
+ (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FerrCode = SQLITE_OK
+
+ if (*Vdbe)(unsafe.Pointer(p)).Fexpmask != U32(0) && (*Vdbe)(unsafe.Pointer(p)).Fexpmask&func() uint32 {
+ if i >= uint32(31) {
+ return 0x80000000
+ }
+ return U32(1) << i
+ }() != U32(0) {
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 0, 0x3)
+ }
+ return SQLITE_OK
+}
+
+func bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData I64, xDel uintptr, encoding U8) int32 {
+ var p uintptr = pStmt
+ var pVar uintptr
+ var rc int32
+
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ if zData != uintptr(0) {
+ pVar = (*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-1)*56
+ rc = Xsqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel)
+ if rc == SQLITE_OK && int32(encoding) != 0 {
+ rc = Xsqlite3VdbeChangeEncoding(tls, pVar, int32((*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fenc))
+ }
+ if rc != 0 {
+ Xsqlite3Error(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, rc)
+ rc = Xsqlite3ApiExit(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, rc)
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ } else if xDel != uintptr(0) && xDel != libc.UintptrFromInt32(-1) {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDel})).f(tls, zData)
+ }
+ return rc
+}
+
+// Bind a blob value to an SQL statement variable.
+func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, xDel uintptr) int32 {
+ return bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(0))
+}
+
+func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Sqlite3_uint64, xDel uintptr) int32 {
+ return bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(0))
+}
+
+func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ Xsqlite3VdbeMemSetDouble(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-1)*56, rValue)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+ return rc
+}
+
+func Xsqlite3_bind_int(tls *libc.TLS, p uintptr, i int32, iValue int32) int32 {
+ return Xsqlite3_bind_int64(tls, p, i, I64(iValue))
+}
+
+func Xsqlite3_bind_int64(tls *libc.TLS, pStmt uintptr, i int32, iValue Sqlite_int64) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ Xsqlite3VdbeMemSetInt64(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-1)*56, iValue)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+ return rc
+}
+
+func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+ return rc
+}
+
+func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ Xsqlite3VdbeMemSetPointer(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-1)*56, pPtr, zPTtype, xDestructor)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ } else if xDestructor != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDestructor})).f(tls, pPtr)
+ }
+ return rc
+}
+
+func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, xDel uintptr) int32 {
+ return bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(SQLITE_UTF8))
+}
+
+func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Sqlite3_uint64, xDel uintptr, enc uint8) int32 {
+ if int32(enc) != SQLITE_UTF8 {
+ if int32(enc) == SQLITE_UTF16 {
+ enc = uint8(SQLITE_UTF16LE)
+ }
+ nData = nData & libc.Uint64FromInt32(libc.CplInt32(int32(U16(1))))
+ }
+ return bindText(tls, pStmt, i, zData, int64(nData), xDel, enc)
+}
+
+func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, xDel uintptr) int32 {
+ return bindText(tls, pStmt, i, zData, int64(U64(n)&libc.CplUint64(uint64(1))), xDel, uint8(SQLITE_UTF16LE))
+}
+
+func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) int32 {
+ var rc int32
+ switch Xsqlite3_value_type(tls, pValue) {
+ case SQLITE_INTEGER:
+ {
+ rc = Xsqlite3_bind_int64(tls, pStmt, i, *(*I64)(unsafe.Pointer(pValue)))
+ break
+
+ }
+ case SQLITE_FLOAT:
+ {
+ rc = Xsqlite3_bind_double(tls, pStmt, i,
+ func() float64 {
+ if int32((*Sqlite3_value)(unsafe.Pointer(pValue)).Fflags)&MEM_Real != 0 {
+ return *(*float64)(unsafe.Pointer(pValue))
+ }
+ return float64(*(*I64)(unsafe.Pointer(pValue)))
+ }())
+ break
+
+ }
+ case SQLITE_BLOB:
+ {
+ if int32((*Sqlite3_value)(unsafe.Pointer(pValue)).Fflags)&MEM_Zero != 0 {
+ rc = Xsqlite3_bind_zeroblob(tls, pStmt, i, *(*int32)(unsafe.Pointer(pValue)))
+ } else {
+ rc = Xsqlite3_bind_blob(tls, pStmt, i, (*Sqlite3_value)(unsafe.Pointer(pValue)).Fz, (*Sqlite3_value)(unsafe.Pointer(pValue)).Fn, libc.UintptrFromInt32(-1))
+ }
+ break
+
+ }
+ case SQLITE_TEXT:
+ {
+ rc = bindText(tls, pStmt, i, (*Sqlite3_value)(unsafe.Pointer(pValue)).Fz, int64((*Sqlite3_value)(unsafe.Pointer(pValue)).Fn), libc.UintptrFromInt32(-1),
+ (*Sqlite3_value)(unsafe.Pointer(pValue)).Fenc)
+ break
+
+ }
+ default:
+ {
+ rc = Xsqlite3_bind_null(tls, pStmt, i)
+ break
+
+ }
+ }
+ return rc
+}
+
+func Xsqlite3_bind_zeroblob(tls *libc.TLS, pStmt uintptr, i int32, n int32) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ rc = vdbeUnbind(tls, p, U32(i-1))
+ if rc == SQLITE_OK {
+ Xsqlite3VdbeMemSetZeroBlob(tls, (*Vdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-1)*56, n)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+ return rc
+}
+
+func Xsqlite3_bind_zeroblob64(tls *libc.TLS, pStmt uintptr, i int32, n Sqlite3_uint64) int32 {
+ var rc int32
+ var p uintptr = pStmt
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ if n > U64(*(*int32)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb + 136))) {
+ rc = SQLITE_TOOBIG
+ } else {
+ rc = Xsqlite3_bind_zeroblob(tls, pStmt, i, int32(n))
+ }
+ rc = Xsqlite3ApiExit(tls, (*Vdbe)(unsafe.Pointer(p)).Fdb, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ return rc
+}
+
+// Return the number of wildcards that can be potentially bound to.
+// This routine is added to support DBD::SQLite.
+func Xsqlite3_bind_parameter_count(tls *libc.TLS, pStmt uintptr) int32 {
+ var p uintptr = pStmt
+ if p != 0 {
+ return int32((*Vdbe)(unsafe.Pointer(p)).FnVar)
+ }
+ return 0
+}
+
+// Return the name of a wildcard parameter. Return NULL if the index
+// is out of range or if the wildcard is unnamed.
+//
+// The result is always UTF-8.
+func Xsqlite3_bind_parameter_name(tls *libc.TLS, pStmt uintptr, i int32) uintptr {
+ var p uintptr = pStmt
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ return Xsqlite3VListNumToName(tls, (*Vdbe)(unsafe.Pointer(p)).FpVList, i)
+}
+
+// Given a wildcard parameter name, return the index of the variable
+// with that name. If there is no variable with the given name,
+// return 0.
+func Xsqlite3VdbeParameterIndex(tls *libc.TLS, p uintptr, zName uintptr, nName int32) int32 {
+ if p == uintptr(0) || zName == uintptr(0) {
+ return 0
+ }
+ return Xsqlite3VListNameToNum(tls, (*Vdbe)(unsafe.Pointer(p)).FpVList, zName, nName)
+}
+
+func Xsqlite3_bind_parameter_index(tls *libc.TLS, pStmt uintptr, zName uintptr) int32 {
+ return Xsqlite3VdbeParameterIndex(tls, pStmt, zName, Xsqlite3Strlen30(tls, zName))
+}
+
+// Transfer all bindings from the first statement over to the second.
+func Xsqlite3TransferBindings(tls *libc.TLS, pFromStmt uintptr, pToStmt uintptr) int32 {
+ var pFrom uintptr = pFromStmt
+ var pTo uintptr = pToStmt
+ var i int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(pTo)).Fdb)).Fmutex)
+ for i = 0; i < int32((*Vdbe)(unsafe.Pointer(pFrom)).FnVar); i++ {
+ Xsqlite3VdbeMemMove(tls, (*Vdbe)(unsafe.Pointer(pTo)).FaVar+uintptr(i)*56, (*Vdbe)(unsafe.Pointer(pFrom)).FaVar+uintptr(i)*56)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(pTo)).Fdb)).Fmutex)
+ return SQLITE_OK
+}
+
+// Deprecated external interface. Internal/core SQLite code
+// should call sqlite3TransferBindings.
+//
+// It is misuse to call this routine with statements from different
+// database connections. But as this is a deprecated interface, we
+// will not bother to check for that condition.
+//
+// If the two statements contain a different number of bindings, then
+// an SQLITE_ERROR is returned. Nothing else can go wrong, so otherwise
+// SQLITE_OK is returned.
+func Xsqlite3_transfer_bindings(tls *libc.TLS, pFromStmt uintptr, pToStmt uintptr) int32 {
+ var pFrom uintptr = pFromStmt
+ var pTo uintptr = pToStmt
+ if int32((*Vdbe)(unsafe.Pointer(pFrom)).FnVar) != int32((*Vdbe)(unsafe.Pointer(pTo)).FnVar) {
+ return SQLITE_ERROR
+ }
+
+ if (*Vdbe)(unsafe.Pointer(pTo)).Fexpmask != 0 {
+ libc.SetBitFieldPtr8Uint32(pTo+200, Bft(1), 0, 0x3)
+ }
+
+ if (*Vdbe)(unsafe.Pointer(pFrom)).Fexpmask != 0 {
+ libc.SetBitFieldPtr8Uint32(pFrom+200, Bft(1), 0, 0x3)
+ }
+ return Xsqlite3TransferBindings(tls, pFromStmt, pToStmt)
+}
+
+// Return the sqlite3* database handle to which the prepared statement given
+// in the argument belongs. This is the same database handle that was
+// the first argument to the sqlite3_prepare() that was used to create
+// the statement in the first place.
+func Xsqlite3_db_handle(tls *libc.TLS, pStmt uintptr) uintptr {
+ if pStmt != 0 {
+ return (*Vdbe)(unsafe.Pointer(pStmt)).Fdb
+ }
+ return uintptr(0)
+}
+
+// Return true if the prepared statement is guaranteed to not modify the
+// database.
+func Xsqlite3_stmt_readonly(tls *libc.TLS, pStmt uintptr) int32 {
+ if pStmt != 0 {
+ return int32(*(*uint8)(unsafe.Pointer(pStmt + 200)) & 0x40 >> 6)
+ }
+ return 1
+}
+
+// Return 1 if the statement is an EXPLAIN and return 2 if the
+// statement is an EXPLAIN QUERY PLAN
+func Xsqlite3_stmt_isexplain(tls *libc.TLS, pStmt uintptr) int32 {
+ if pStmt != 0 {
+ return int32(*(*uint8)(unsafe.Pointer(pStmt + 200)) & 0xc >> 2)
+ }
+ return 0
+}
+
+// Return true if the prepared statement is in need of being reset.
+func Xsqlite3_stmt_busy(tls *libc.TLS, pStmt uintptr) int32 {
+ var v uintptr = pStmt
+ return libc.Bool32(v != uintptr(0) && int32((*Vdbe)(unsafe.Pointer(v)).FeVdbeState) == VDBE_RUN_STATE)
+}
+
+// Return a pointer to the next prepared statement after pStmt associated
+// with database connection pDb. If pStmt is NULL, return the first
+// prepared statement for the database connection. Return NULL if there
+// are no more.
+func Xsqlite3_next_stmt(tls *libc.TLS, pDb uintptr, pStmt uintptr) uintptr {
+ var pNext uintptr
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(pDb)).Fmutex)
+ if pStmt == uintptr(0) {
+ pNext = (*Sqlite3)(unsafe.Pointer(pDb)).FpVdbe
+ } else {
+ pNext = (*Vdbe)(unsafe.Pointer(pStmt)).FpVNext
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(pDb)).Fmutex)
+ return pNext
+}
+
+// Return the value of a status counter for a prepared statement
+func Xsqlite3_stmt_status(tls *libc.TLS, pStmt uintptr, op int32, resetFlag int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pVdbe uintptr = pStmt
+
+ if op == SQLITE_STMTSTATUS_MEMUSED {
+ var db uintptr = (*Vdbe)(unsafe.Pointer(pVdbe)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ *(*U32)(unsafe.Pointer(bp)) = U32(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = bp
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart
+ Xsqlite3VdbeDelete(tls, pVdbe)
+ (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ } else {
+ *(*U32)(unsafe.Pointer(bp)) = *(*U32)(unsafe.Pointer(pVdbe + 212 + uintptr(op)*4))
+ if resetFlag != 0 {
+ *(*U32)(unsafe.Pointer(pVdbe + 212 + uintptr(op)*4)) = U32(0)
+ }
+ }
+ return int32(*(*U32)(unsafe.Pointer(bp)))
+}
+
+// Return the SQL associated with a prepared statement
+func Xsqlite3_sql(tls *libc.TLS, pStmt uintptr) uintptr {
+ var p uintptr = pStmt
+ if p != 0 {
+ return (*Vdbe)(unsafe.Pointer(p)).FzSql
+ }
+ return uintptr(0)
+}
+
+// Return the SQL associated with a prepared statement with
+// bound parameters expanded. Space to hold the returned string is
+// obtained from sqlite3_malloc(). The caller is responsible for
+// freeing the returned string by passing it to sqlite3_free().
+//
+// The SQLITE_TRACE_SIZE_LIMIT puts an upper bound on the size of
+// expanded bound parameters.
+func Xsqlite3_expanded_sql(tls *libc.TLS, pStmt uintptr) uintptr {
+ var z uintptr = uintptr(0)
+ var zSql uintptr = Xsqlite3_sql(tls, pStmt)
+ if zSql != 0 {
+ var p uintptr = pStmt
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ z = Xsqlite3VdbeExpandSql(tls, p, zSql)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).Fmutex)
+ }
+ return z
+}
+
+func vdbeUnpackRecord(tls *libc.TLS, pKeyInfo uintptr, nKey int32, pKey uintptr) uintptr {
+ var pRet uintptr
+
+ pRet = Xsqlite3VdbeAllocUnpackedRecord(tls, pKeyInfo)
+ if pRet != 0 {
+ libc.X__builtin___memset_chk(tls, (*UnpackedRecord)(unsafe.Pointer(pRet)).FaMem, 0, uint64(unsafe.Sizeof(Mem{}))*uint64(int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)+1), libc.X__builtin_object_size(tls, (*UnpackedRecord)(unsafe.Pointer(pRet)).FaMem, 0))
+ Xsqlite3VdbeRecordUnpack(tls, pKeyInfo, nKey, pKey, pRet)
+ }
+ return pRet
+}
+
+// This function is called from within a pre-update callback to retrieve
+// a field of the row currently being updated or deleted.
+func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintptr) int32 {
+ var p uintptr
+ var pMem uintptr
+ var rc int32
+ var nRec U32
+ var aRec uintptr
+ p = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate
+ rc = SQLITE_OK
+
+ if !(!(p != 0) || (*PreUpdate)(unsafe.Pointer(p)).Fop == SQLITE_INSERT) {
+ goto __1
+ }
+ rc = Xsqlite3MisuseError(tls, 89707)
+ goto preupdate_old_out
+__1:
+ ;
+ if !((*PreUpdate)(unsafe.Pointer(p)).FpPk != 0) {
+ goto __2
+ }
+ iIdx = int32(Xsqlite3TableColumnToIndex(tls, (*PreUpdate)(unsafe.Pointer(p)).FpPk, int16(iIdx)))
+__2:
+ ;
+ if !(iIdx >= int32((*VdbeCursor)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField) || iIdx < 0) {
+ goto __3
+ }
+ rc = SQLITE_RANGE
+ goto preupdate_old_out
+__3:
+ ;
+ if !((*PreUpdate)(unsafe.Pointer(p)).FpUnpacked == uintptr(0)) {
+ goto __4
+ }
+
+ nRec = Xsqlite3BtreePayloadSize(tls, *(*uintptr)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpCsr + 48)))
+ aRec = Xsqlite3DbMallocRaw(tls, db, uint64(nRec))
+ if !!(aRec != 0) {
+ goto __5
+ }
+ goto preupdate_old_out
+__5:
+ ;
+ rc = Xsqlite3BtreePayload(tls, *(*uintptr)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpCsr + 48)), uint32(0), nRec, aRec)
+ if !(rc == SQLITE_OK) {
+ goto __6
+ }
+ (*PreUpdate)(unsafe.Pointer(p)).FpUnpacked = vdbeUnpackRecord(tls, p+32, int32(nRec), aRec)
+ if !!(int32((*PreUpdate)(unsafe.Pointer(p)).FpUnpacked) != 0) {
+ goto __7
+ }
+ rc = SQLITE_NOMEM
+__7:
+ ;
+__6:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __8
+ }
+ Xsqlite3DbFree(tls, db, aRec)
+ goto preupdate_old_out
+__8:
+ ;
+ (*PreUpdate)(unsafe.Pointer(p)).FaRecord = aRec
+__4:
+ ;
+ pMem = libc.AssignPtrUintptr(ppValue, (*UnpackedRecord)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpUnpacked)).FaMem+uintptr(iIdx)*56)
+ if !(iIdx == int32((*Table)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpTab)).FiPKey)) {
+ goto __9
+ }
+ Xsqlite3VdbeMemSetInt64(tls, pMem, (*PreUpdate)(unsafe.Pointer(p)).FiKey1)
+ goto __10
+__9:
+ if !(iIdx >= int32((*UnpackedRecord)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpUnpacked)).FnField)) {
+ goto __11
+ }
+ *(*uintptr)(unsafe.Pointer(ppValue)) = columnNullValue(tls)
+ goto __12
+__11:
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpTab)).FaCol+uintptr(iIdx)*24)).Faffinity) == SQLITE_AFF_REAL) {
+ goto __13
+ }
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_IntReal) != 0) {
+ goto __14
+ }
+
+ Xsqlite3VdbeMemRealify(tls, pMem)
+__14:
+ ;
+__13:
+ ;
+__12:
+ ;
+__10:
+ ;
+preupdate_old_out:
+ Xsqlite3Error(tls, db, rc)
+ return Xsqlite3ApiExit(tls, db, rc)
+}
+
+// This function is called from within a pre-update callback to retrieve
+// the number of columns in the row being updated, deleted or inserted.
+func Xsqlite3_preupdate_count(tls *libc.TLS, db uintptr) int32 {
+ var p uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate
+ return func() int32 {
+ if p != 0 {
+ return int32((*PreUpdate)(unsafe.Pointer(p)).Fkeyinfo.FnKeyField)
+ }
+ return 0
+ }()
+}
+
+// This function is designed to be called from within a pre-update callback
+// only. It returns zero if the change that caused the callback was made
+// immediately by a user SQL statement. Or, if the change was made by a
+// trigger program, it returns the number of trigger programs currently
+// on the stack (1 for a top-level trigger, 2 for a trigger fired by a
+// top-level trigger etc.).
+//
+// For the purposes of the previous paragraph, a foreign key CASCADE, SET NULL
+// or SET DEFAULT action is considered a trigger.
+func Xsqlite3_preupdate_depth(tls *libc.TLS, db uintptr) int32 {
+ var p uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate
+ return func() int32 {
+ if p != 0 {
+ return (*Vdbe)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).Fv)).FnFrame
+ }
+ return 0
+ }()
+}
+
+// This function is designed to be called from within a pre-update callback
+// only.
+func Xsqlite3_preupdate_blobwrite(tls *libc.TLS, db uintptr) int32 {
+ var p uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate
+ return func() int32 {
+ if p != 0 {
+ return (*PreUpdate)(unsafe.Pointer(p)).FiBlobWrite
+ }
+ return -1
+ }()
+}
+
+// This function is called from within a pre-update callback to retrieve
+// a field of the row currently being updated or inserted.
+func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintptr) int32 {
+ var p uintptr
+ var rc int32
+ var pMem uintptr
+ var pData uintptr
+
+ var pUnpack uintptr
+ p = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdate
+ rc = SQLITE_OK
+
+ if !(!(p != 0) || (*PreUpdate)(unsafe.Pointer(p)).Fop == SQLITE_DELETE) {
+ goto __1
+ }
+ rc = Xsqlite3MisuseError(tls, 89809)
+ goto preupdate_new_out
+__1:
+ ;
+ if !((*PreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*PreUpdate)(unsafe.Pointer(p)).Fop != SQLITE_UPDATE) {
+ goto __2
+ }
+ iIdx = int32(Xsqlite3TableColumnToIndex(tls, (*PreUpdate)(unsafe.Pointer(p)).FpPk, int16(iIdx)))
+__2:
+ ;
+ if !(iIdx >= int32((*VdbeCursor)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField) || iIdx < 0) {
+ goto __3
+ }
+ rc = SQLITE_RANGE
+ goto preupdate_new_out
+__3:
+ ;
+ if !((*PreUpdate)(unsafe.Pointer(p)).Fop == SQLITE_INSERT) {
+ goto __4
+ }
+
+ pUnpack = (*PreUpdate)(unsafe.Pointer(p)).FpNewUnpacked
+ if !!(pUnpack != 0) {
+ goto __6
+ }
+ pData = (*Vdbe)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).Fv)).FaMem + uintptr((*PreUpdate)(unsafe.Pointer(p)).FiNewReg)*56
+ rc = func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pData)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pData)
+ }
+ return 0
+ }()
+ if !(rc != SQLITE_OK) {
+ goto __7
+ }
+ goto preupdate_new_out
+__7:
+ ;
+ pUnpack = vdbeUnpackRecord(tls, p+32, (*Mem)(unsafe.Pointer(pData)).Fn, (*Mem)(unsafe.Pointer(pData)).Fz)
+ if !!(pUnpack != 0) {
+ goto __8
+ }
+ rc = SQLITE_NOMEM
+ goto preupdate_new_out
+__8:
+ ;
+ (*PreUpdate)(unsafe.Pointer(p)).FpNewUnpacked = pUnpack
+__6:
+ ;
+ pMem = (*UnpackedRecord)(unsafe.Pointer(pUnpack)).FaMem + uintptr(iIdx)*56
+ if !(iIdx == int32((*Table)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpTab)).FiPKey)) {
+ goto __9
+ }
+ Xsqlite3VdbeMemSetInt64(tls, pMem, (*PreUpdate)(unsafe.Pointer(p)).FiKey2)
+ goto __10
+__9:
+ if !(iIdx >= int32((*UnpackedRecord)(unsafe.Pointer(pUnpack)).FnField)) {
+ goto __11
+ }
+ pMem = columnNullValue(tls)
+__11:
+ ;
+__10:
+ ;
+ goto __5
+__4:
+ ;
+ if !!(int32((*PreUpdate)(unsafe.Pointer(p)).FaNew) != 0) {
+ goto __12
+ }
+ (*PreUpdate)(unsafe.Pointer(p)).FaNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Mem{}))*uint64((*VdbeCursor)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField))
+ if !!(int32((*PreUpdate)(unsafe.Pointer(p)).FaNew) != 0) {
+ goto __13
+ }
+ rc = SQLITE_NOMEM
+ goto preupdate_new_out
+__13:
+ ;
+__12:
+ ;
+ pMem = (*PreUpdate)(unsafe.Pointer(p)).FaNew + uintptr(iIdx)*56
+ if !(int32((*Mem)(unsafe.Pointer(pMem)).Fflags) == 0) {
+ goto __14
+ }
+ if !(iIdx == int32((*Table)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).FpTab)).FiPKey)) {
+ goto __15
+ }
+ Xsqlite3VdbeMemSetInt64(tls, pMem, (*PreUpdate)(unsafe.Pointer(p)).FiKey2)
+ goto __16
+__15:
+ rc = Xsqlite3VdbeMemCopy(tls, pMem, (*Vdbe)(unsafe.Pointer((*PreUpdate)(unsafe.Pointer(p)).Fv)).FaMem+uintptr((*PreUpdate)(unsafe.Pointer(p)).FiNewReg+1+iIdx)*56)
+ if !(rc != SQLITE_OK) {
+ goto __17
+ }
+ goto preupdate_new_out
+__17:
+ ;
+__16:
+ ;
+__14:
+ ;
+__5:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppValue)) = pMem
+
+preupdate_new_out:
+ Xsqlite3Error(tls, db, rc)
+ return Xsqlite3ApiExit(tls, db, rc)
+}
+
+func findNextHostParameter(tls *libc.TLS, zSql uintptr, pnToken uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var nTotal int32 = 0
+ var n int32
+
+ *(*int32)(unsafe.Pointer(pnToken)) = 0
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 {
+ n = Xsqlite3GetToken(tls, zSql, bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) == TK_VARIABLE {
+ *(*int32)(unsafe.Pointer(pnToken)) = n
+ break
+ }
+ nTotal = nTotal + n
+ zSql += uintptr(n)
+ }
+ return nTotal
+}
+
+// This function returns a pointer to a nul-terminated string in memory
+// obtained from sqlite3DbMalloc(). If sqlite3.nVdbeExec is 1, then the
+// string contains a copy of zRawSql but with host parameters expanded to
+// their current bindings. Or, if sqlite3.nVdbeExec is greater than 1,
+// then the returned string holds a copy of zRawSql with "-- " prepended
+// to each line of text.
+//
+// If the SQLITE_TRACE_SIZE_LIMIT macro is defined to an integer, then
+// then long strings and blobs are truncated to that many bytes. This
+// can be used to prevent unreasonably large trace strings when dealing
+// with large (multi-megabyte) strings and blobs.
+//
+// The calling function is responsible for making sure the memory returned
+// is eventually freed.
+//
+// ALGORITHM: Scan the input string looking for host parameters in any of
+// these forms: ?, ?N, $A, @A, :A. Take care to avoid text within
+// string literals, quoted identifier names, and comments. For text forms,
+// the host parameter index is found by scanning the prepared
+// statement for the corresponding OP_Variable opcode. Once the host
+// parameter index is known, locate the value in p->aVar[]. Then render
+// the value as a literal in place of the host parameter name.
+func Xsqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) uintptr {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var db uintptr
+ *(*int32)(unsafe.Pointer(bp + 84)) = 0
+ var nextIndex int32 = 1
+ var n int32
+
+ var i int32
+ var pVar uintptr
+
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ Xsqlite3StrAccumInit(tls, bp+48, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer(db + 136)))
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec > 1 {
+ for *(*int8)(unsafe.Pointer(zRawSql)) != 0 {
+ var zStart uintptr = zRawSql
+ for int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zRawSql, 1)))) != '\n' && *(*int8)(unsafe.Pointer(zRawSql)) != 0 {
+ }
+ Xsqlite3_str_append(tls, bp+48, ts+5800, 3)
+
+ Xsqlite3_str_append(tls, bp+48, zStart, int32((int64(zRawSql)-int64(zStart))/1))
+ }
+ } else if int32((*Vdbe)(unsafe.Pointer(p)).FnVar) == 0 {
+ Xsqlite3_str_append(tls, bp+48, zRawSql, Xsqlite3Strlen30(tls, zRawSql))
+ } else {
+ for *(*int8)(unsafe.Pointer(zRawSql)) != 0 {
+ n = findNextHostParameter(tls, zRawSql, bp+80)
+
+ Xsqlite3_str_append(tls, bp+48, zRawSql, n)
+ zRawSql += uintptr(n)
+
+ if *(*int32)(unsafe.Pointer(bp + 80)) == 0 {
+ break
+ }
+ if int32(*(*int8)(unsafe.Pointer(zRawSql))) == '?' {
+ if *(*int32)(unsafe.Pointer(bp + 80)) > 1 {
+ Xsqlite3GetInt32(tls, zRawSql+1, bp+84)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 84)) = nextIndex
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 84)) = Xsqlite3VdbeParameterIndex(tls, p, zRawSql, *(*int32)(unsafe.Pointer(bp + 80)))
+
+ }
+ zRawSql += uintptr(*(*int32)(unsafe.Pointer(bp + 80)))
+ nextIndex = func() int32 {
+ if *(*int32)(unsafe.Pointer(bp + 84))+1 > nextIndex {
+ return *(*int32)(unsafe.Pointer(bp + 84)) + 1
+ }
+ return nextIndex
+ }()
+
+ pVar = (*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp + 84))-1)*56
+ if int32((*Mem)(unsafe.Pointer(pVar)).Fflags)&MEM_Null != 0 {
+ Xsqlite3_str_append(tls, bp+48, ts+1548, 4)
+ } else if int32((*Mem)(unsafe.Pointer(pVar)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ Xsqlite3_str_appendf(tls, bp+48, ts+1327, libc.VaList(bp, *(*I64)(unsafe.Pointer(pVar))))
+ } else if int32((*Mem)(unsafe.Pointer(pVar)).Fflags)&MEM_Real != 0 {
+ Xsqlite3_str_appendf(tls, bp+48, ts+5328, libc.VaList(bp+8, *(*float64)(unsafe.Pointer(pVar))))
+ } else if int32((*Mem)(unsafe.Pointer(pVar)).Fflags)&MEM_Str != 0 {
+ var nOut int32
+ var enc U8 = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ if int32(enc) != SQLITE_UTF8 {
+ libc.X__builtin___memset_chk(tls, bp+88, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp+88, 0))
+ (*Mem)(unsafe.Pointer(bp + 88)).Fdb = db
+ Xsqlite3VdbeMemSetStr(tls, bp+88, (*Mem)(unsafe.Pointer(pVar)).Fz, int64((*Mem)(unsafe.Pointer(pVar)).Fn), enc, uintptr(0))
+ if SQLITE_NOMEM == Xsqlite3VdbeChangeEncoding(tls, bp+88, SQLITE_UTF8) {
+ (*StrAccum)(unsafe.Pointer(bp + 48)).FaccError = U8(SQLITE_NOMEM)
+ (*StrAccum)(unsafe.Pointer(bp + 48)).FnAlloc = U32(0)
+ }
+ pVar = bp + 88
+ }
+ nOut = (*Mem)(unsafe.Pointer(pVar)).Fn
+ Xsqlite3_str_appendf(tls, bp+48, ts+5804, libc.VaList(bp+16, nOut, (*Mem)(unsafe.Pointer(pVar)).Fz))
+ if int32(enc) != SQLITE_UTF8 {
+ Xsqlite3VdbeMemRelease(tls, bp+88)
+ }
+ } else if int32((*Mem)(unsafe.Pointer(pVar)).Fflags)&MEM_Zero != 0 {
+ Xsqlite3_str_appendf(tls, bp+48, ts+5811, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(pVar))))
+ } else {
+ var nOut int32
+
+ Xsqlite3_str_append(tls, bp+48, ts+5824, 2)
+ nOut = (*Mem)(unsafe.Pointer(pVar)).Fn
+ for i = 0; i < nOut; i++ {
+ Xsqlite3_str_appendf(tls, bp+48, ts+5827, libc.VaList(bp+40, int32(*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&0xff))
+ }
+ Xsqlite3_str_append(tls, bp+48, ts+5832, 1)
+ }
+ }
+ }
+ if (*StrAccum)(unsafe.Pointer(bp+48)).FaccError != 0 {
+ Xsqlite3_str_reset(tls, bp+48)
+ }
+ return Xsqlite3StrAccumFinish(tls, bp+48)
+}
+
+func allocateCursor(tls *libc.TLS, p uintptr, iCur int32, nField int32, eCurType U8) uintptr {
+ var pMem uintptr
+ if iCur > 0 {
+ pMem = (*Vdbe)(unsafe.Pointer(p)).FaMem + uintptr((*Vdbe)(unsafe.Pointer(p)).FnMem-iCur)*56
+ } else {
+ pMem = (*Vdbe)(unsafe.Pointer(p)).FaMem
+ }
+ var nByte int32
+ var pCx uintptr = uintptr(0)
+ nByte = int32(uint64(unsafe.Sizeof(VdbeCursor{})) + uint64(2)*uint64(unsafe.Sizeof(U32(0)))*uint64(nField) + func() uint64 {
+ if int32(eCurType) == CURTYPE_BTREE {
+ return uint64(Xsqlite3BtreeCursorSize(tls))
+ }
+ return uint64(0)
+ }())
+
+ if *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) != 0 {
+ Xsqlite3VdbeFreeCursorNN(tls, p, *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)))
+ *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) = uintptr(0)
+ }
+
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc < nByte {
+ if (*Mem)(unsafe.Pointer(pMem)).FszMalloc > 0 {
+ Xsqlite3DbFreeNN(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ }
+ (*Mem)(unsafe.Pointer(pMem)).Fz = libc.AssignPtrUintptr(pMem+40, Xsqlite3DbMallocRaw(tls, (*Mem)(unsafe.Pointer(pMem)).Fdb, uint64(nByte)))
+ if (*Mem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) {
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = 0
+ return uintptr(0)
+ }
+ (*Mem)(unsafe.Pointer(pMem)).FszMalloc = nByte
+ }
+
+ *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) = libc.AssignUintptr(&pCx, (*Mem)(unsafe.Pointer(pMem)).FzMalloc)
+ libc.X__builtin___memset_chk(tls, pCx, 0, uint64(uintptr(0)+40), libc.X__builtin_object_size(tls, pCx, 0))
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FeCurType = eCurType
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FnField = I16(nField)
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FaOffset = pCx + 112 + uintptr(nField)*4
+ if int32(eCurType) == CURTYPE_BTREE {
+ *(*uintptr)(unsafe.Pointer(pCx + 48)) = (*Mem)(unsafe.Pointer(pMem)).Fz + uintptr(uint64(unsafe.Sizeof(VdbeCursor{}))+uint64(2)*uint64(unsafe.Sizeof(U32(0)))*uint64(nField))
+ Xsqlite3BtreeCursorZero(tls, *(*uintptr)(unsafe.Pointer(pCx + 48)))
+ }
+ return pCx
+}
+
+func alsoAnInt(tls *libc.TLS, pRec uintptr, rValue float64, piValue uintptr) int32 {
+ var iValue I64
+ iValue = Xsqlite3RealToI64(tls, rValue)
+ if Xsqlite3RealSameAsInt(tls, rValue, iValue) != 0 {
+ *(*I64)(unsafe.Pointer(piValue)) = iValue
+ return 1
+ }
+ return libc.Bool32(0 == Xsqlite3Atoi64(tls, (*Mem)(unsafe.Pointer(pRec)).Fz, piValue, (*Mem)(unsafe.Pointer(pRec)).Fn, (*Mem)(unsafe.Pointer(pRec)).Fenc))
+}
+
+func applyNumericAffinity(tls *libc.TLS, pRec uintptr, bTryForInt int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var enc U8 = (*Mem)(unsafe.Pointer(pRec)).Fenc
+ var rc int32
+
+ rc = Xsqlite3AtoF(tls, (*Mem)(unsafe.Pointer(pRec)).Fz, bp, (*Mem)(unsafe.Pointer(pRec)).Fn, enc)
+ if rc <= 0 {
+ return
+ }
+ if rc == 1 && alsoAnInt(tls, pRec, *(*float64)(unsafe.Pointer(bp)), pRec) != 0 {
+ *(*U16)(unsafe.Pointer(pRec + 20)) |= U16(MEM_Int)
+ } else {
+ *(*float64)(unsafe.Pointer(pRec)) = *(*float64)(unsafe.Pointer(bp))
+ *(*U16)(unsafe.Pointer(pRec + 20)) |= U16(MEM_Real)
+ if bTryForInt != 0 {
+ Xsqlite3VdbeIntegerAffinity(tls, pRec)
+ }
+ }
+
+ *(*U16)(unsafe.Pointer(pRec + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Str))
+}
+
+func applyAffinity(tls *libc.TLS, pRec uintptr, affinity int8, enc U8) {
+ if int32(affinity) >= SQLITE_AFF_NUMERIC {
+ if int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Int == 0 {
+ if int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&(MEM_Real|MEM_IntReal) == 0 {
+ if int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Str != 0 {
+ applyNumericAffinity(tls, pRec, 1)
+ }
+ } else if int32(affinity) <= SQLITE_AFF_REAL {
+ Xsqlite3VdbeIntegerAffinity(tls, pRec)
+ }
+ }
+ } else if int32(affinity) == SQLITE_AFF_TEXT {
+ if 0 == int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Str {
+ if int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&(MEM_Real|MEM_Int|MEM_IntReal) != 0 {
+ Xsqlite3VdbeMemStringify(tls, pRec, enc, uint8(1))
+ }
+ }
+ *(*U16)(unsafe.Pointer(pRec + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Real | MEM_Int | MEM_IntReal))
+ }
+}
+
+// Try to convert the type of a function argument or a result column
+// into a numeric representation. Use either INTEGER or REAL whichever
+// is appropriate. But only do the conversion if it is possible without
+// loss of information and return the revised type of the argument.
+func Xsqlite3_value_numeric_type(tls *libc.TLS, pVal uintptr) int32 {
+ var eType int32 = Xsqlite3_value_type(tls, pVal)
+ if eType == SQLITE_TEXT {
+ var pMem uintptr = pVal
+ applyNumericAffinity(tls, pMem, 0)
+ eType = Xsqlite3_value_type(tls, pVal)
+ }
+ return eType
+}
+
+// Exported version of applyAffinity(). This one works on sqlite3_value*,
+// not the internal Mem* type.
+func Xsqlite3ValueApplyAffinity(tls *libc.TLS, pVal uintptr, affinity U8, enc U8) {
+ applyAffinity(tls, pVal, int8(affinity), enc)
+}
+
+func computeNumericType(tls *libc.TLS, pMem uintptr) U16 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ if func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pMem)
+ }
+ return 0
+ }() != 0 {
+ *(*I64)(unsafe.Pointer(pMem)) = int64(0)
+ return U16(MEM_Int)
+ }
+ rc = Xsqlite3AtoF(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, pMem, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc)
+ if rc <= 0 {
+ if rc == 0 && Xsqlite3Atoi64(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, bp, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc) <= 1 {
+ *(*I64)(unsafe.Pointer(pMem)) = *(*Sqlite3_int64)(unsafe.Pointer(bp))
+ return U16(MEM_Int)
+ } else {
+ return U16(MEM_Real)
+ }
+ } else if rc == 1 && Xsqlite3Atoi64(tls, (*Mem)(unsafe.Pointer(pMem)).Fz, bp, (*Mem)(unsafe.Pointer(pMem)).Fn, (*Mem)(unsafe.Pointer(pMem)).Fenc) == 0 {
+ *(*I64)(unsafe.Pointer(pMem)) = *(*Sqlite3_int64)(unsafe.Pointer(bp))
+ return U16(MEM_Int)
+ }
+ return U16(MEM_Real)
+}
+
+func numericType(tls *libc.TLS, pMem uintptr) U16 {
+ if int32((*Mem)(unsafe.Pointer(pMem)).Fflags)&(MEM_Int|MEM_Real|MEM_IntReal|MEM_Null) != 0 {
+ return U16(int32((*Mem)(unsafe.Pointer(pMem)).Fflags) & (MEM_Int | MEM_Real | MEM_IntReal | MEM_Null))
+ }
+
+ return computeNumericType(tls, pMem)
+ return U16(0)
+}
+
+func out2PrereleaseWithClear(tls *libc.TLS, pOut uintptr) uintptr {
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Int)
+ return pOut
+}
+
+func out2Prerelease(tls *libc.TLS, p uintptr, pOp uintptr) uintptr {
+ var pOut uintptr
+
+ pOut = (*Vdbe)(unsafe.Pointer(p)).FaMem + uintptr((*VdbeOp)(unsafe.Pointer(pOp)).Fp2)*56
+
+ if int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&(MEM_Agg|MEM_Dyn) != 0 {
+ return out2PrereleaseWithClear(tls, pOut)
+ } else {
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Int)
+ return pOut
+ }
+ return uintptr(0)
+}
+
+func filterHash(tls *libc.TLS, aMem uintptr, pOp uintptr) U64 {
+ var i int32
+ var mx int32
+ var h U64 = uint64(0)
+
+ i = (*Op)(unsafe.Pointer(pOp)).Fp3
+ mx = i + *(*int32)(unsafe.Pointer(pOp + 16))
+ for ; i < mx; i++ {
+ var p uintptr = aMem + uintptr(i)*56
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Int|MEM_IntReal) != 0 {
+ h = h + U64(*(*I64)(unsafe.Pointer(p)))
+ } else if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Real != 0 {
+ h = h + U64(Xsqlite3VdbeIntValue(tls, p))
+ } else if int32((*Mem)(unsafe.Pointer(p)).Fflags)&(MEM_Str|MEM_Blob) != 0 {
+ h = h + U64((*Mem)(unsafe.Pointer(p)).Fn)
+ if int32((*Mem)(unsafe.Pointer(p)).Fflags)&MEM_Zero != 0 {
+ h = h + U64(*(*int32)(unsafe.Pointer(p)))
+ }
+ }
+ }
+ return h
+}
+
+func vdbeMemTypeName(tls *libc.TLS, pMem uintptr) uintptr {
+ return azTypes[Xsqlite3_value_type(tls, pMem)-1]
+}
+
+var azTypes = [5]uintptr{
+ ts + 1108,
+ ts + 1120,
+ ts + 1125,
+ ts + 1103,
+ ts + 1548,
+}
+
+// Execute as much of a VDBE program as we can.
+// This is the core of sqlite3_step().
+func Xsqlite3VdbeExec(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(1048)
+ defer tls.Free(1048)
+
+ var aOp uintptr
+ var pOp uintptr
+ var rc int32
+ var db uintptr
+ var resetSchemaOnFault U8
+ var encoding U8
+ var iCompare int32
+ var nVmStep U64
+ var nProgressLimit U64
+ var aMem uintptr
+ var pIn1 uintptr
+ var pIn2 uintptr
+ var pIn3 uintptr
+ var pOut uintptr
+ var iPrior U32
+ var pCaller uintptr
+ var pcDest int32
+ var pFrame uintptr
+ var pcx int32
+ var cnt int32
+ var nullFlag U16
+ var pVar uintptr
+ var n int32
+ var p1 int32
+ var p2 int32
+ var n1 int32
+ var nByte I64
+ var flags1 U16
+ var flags2 U16
+ var type1 U16
+ var type2 U16
+ var iA I64
+
+ var rA float64
+ var rB float64
+
+ var iB1 I64
+ var op U8
+ var res int32
+ var res2 int32
+ var affinity int8
+ var flags11 U16
+ var flags3 U16
+ var n2 int32
+ var i int32
+ var p11 int32
+ var p21 int32
+ var pKeyInfo uintptr
+ var idx U32
+ var pColl uintptr
+ var bRev int32
+ var aPermute uintptr
+ var v1 int32
+ var v2 int32
+ var iAddr U32
+ var c int32
+ var c1 int32
+ var pC uintptr
+ var typeMask U16
+ var serialType U32
+ var pC1 uintptr
+ var pC2 uintptr
+ var iMap U32
+ var p22 U32
+ var pC3 uintptr
+ var pCrsr uintptr
+ var aOffset uintptr
+ var len int32
+ var i1 int32
+ var pDest uintptr
+
+ var zData uintptr
+ var zHdr uintptr
+ var zEndHdr uintptr
+ var offset64 U64
+
+ var pReg uintptr
+ var pTab uintptr
+ var aCol uintptr
+ var i2 int32
+ var zAffinity uintptr
+
+ var i3 I64
+ var uu U64
+
+ var i4 U32
+ var pRec uintptr
+ var nData U64
+ var nHdr int32
+ var nByte1 I64
+ var nZero I64
+ var nVarint int32
+ var serial_type U32
+ var pData0 uintptr
+ var pLast uintptr
+ var nField int32
+ var zAffinity1 uintptr
+ var len1 U32
+ var zHdr1 uintptr
+ var zPayload uintptr
+
+ var pCrsr1 uintptr
+ var isSchemaChange int32
+
+ var isTransaction int32
+ var p12 int32
+ var zName uintptr
+ var nName int32
+ var pNew uintptr
+ var pSavepoint uintptr
+ var pTmp uintptr
+ var iSavepoint int32
+ var ii int32
+ var desiredAutoCommit int32
+ var iRollback int32
+ var pBt uintptr
+ var pDb uintptr
+
+ var iDb int32
+ var iCookie int32
+ var pDb1 uintptr
+ var nField1 int32
+ var pKeyInfo1 uintptr
+ var p23 U32
+ var iDb1 int32
+ var wrFlag int32
+ var pX uintptr
+ var pCur uintptr
+ var pDb2 uintptr
+ var pOrig uintptr
+ var pCx uintptr
+ var pCx1 uintptr
+ var pKeyInfo2 uintptr
+ var pCx2 uintptr
+ var pC4 uintptr
+ var pCx3 uintptr
+ var c2 int32
+ var flags31 U16
+ var newType U16
+
+ var oc int32
+ var pC5 uintptr
+
+ var nField2 int32
+ var iKey I64
+ var eqOnly int32
+ var pC6 uintptr
+
+ var nStep int32
+
+ var pC7 uintptr
+ var pCur1 uintptr
+ var pC8 uintptr
+ var alreadyExists int32
+ var ii1 int32
+ var pC9 uintptr
+ var pIdxKey uintptr
+
+ var pC10 uintptr
+ var pCrsr2 uintptr
+
+ var iKey1 U64
+
+ var pC11 uintptr
+
+ var cnt1 int32
+ var pMem uintptr
+ var pFrame1 uintptr
+ var pData uintptr
+ var pKey uintptr
+ var pC12 uintptr
+ var seekResult int32
+ var zDb uintptr
+ var pTab1 uintptr
+
+ var pDest1 uintptr
+ var pSrc uintptr
+ var iKey2 I64
+ var pC13 uintptr
+ var zDb1 uintptr
+ var pTab2 uintptr
+ var opflags int32
+ var pC14 uintptr
+
+ var nKeyCol int32
+ var pC15 uintptr
+ var pC16 uintptr
+ var pCrsr3 uintptr
+ var n3 U32
+ var pC17 uintptr
+
+ var pVtab uintptr
+ var pModule uintptr
+ var pC18 uintptr
+ var pC19 uintptr
+ var pCrsr4 uintptr
+
+ var pC20 uintptr
+ var pCrsr5 uintptr
+
+ var sz I64
+ var pC21 uintptr
+ var pCrsr6 uintptr
+
+ var pC22 uintptr
+ var pC23 uintptr
+
+ var pC24 uintptr
+ var pC25 uintptr
+ var pCrsr7 uintptr
+
+ var pC26 uintptr
+ var pTabCur uintptr
+
+ var pC27 uintptr
+ var nCellKey I64
+ var pCur2 uintptr
+
+ var pC28 uintptr
+ var res11 int32
+
+ var iDb2 int32
+
+ var pC29 uintptr
+
+ var pDb3 uintptr
+ var iDb3 int32
+ var zSchema uintptr
+ var zSql uintptr
+
+ var nRoot int32
+ var aRoot uintptr
+
+ var pnErr uintptr
+
+ var iSet int32
+ var exists int32
+ var nMem int32
+ var nByte2 int32
+ var pRt uintptr
+ var pMem1 uintptr
+ var pEnd uintptr
+ var pFrame2 uintptr
+ var pProgram uintptr
+ var t1 uintptr
+ var pFrame3 uintptr
+ var pIn uintptr
+ var pFrame4 uintptr
+
+ var n4 int32
+ var pCtx uintptr
+ var i5 int32
+ var pCtx1 uintptr
+ var pMem2 uintptr
+ var pMem3 uintptr
+ var i6 int32
+
+ var pMem4 uintptr
+ var pBt1 uintptr
+ var pPager uintptr
+ var eNew int32
+ var eOld int32
+ var zFilename uintptr
+ var pBt2 uintptr
+ var pC30 uintptr
+ var pC31 uintptr
+ var z1 uintptr
+ var p13 int32
+ var isWriteLock U8
+ var pVTab uintptr
+
+ var zTab uintptr
+ var pCur3 uintptr
+
+ var pVtab1 uintptr
+ var pModule1 uintptr
+ var pC32 uintptr
+ var pRhs uintptr
+ var nArg int32
+ var iQuery int32
+ var pModule2 uintptr
+ var pQuery uintptr
+ var pArgc uintptr
+ var pVCur1 uintptr
+ var pVtab2 uintptr
+ var pCur4 uintptr
+ var res12 int32
+ var i7 int32
+ var apArg uintptr
+ var pVtab3 uintptr
+ var pModule3 uintptr
+ var pDest2 uintptr
+
+ var pCur5 uintptr
+ var pVtab4 uintptr
+ var pModule4 uintptr
+ var res13 int32
+ var pCur6 uintptr
+ var pVtab5 uintptr
+ var pName uintptr
+ var isLegacy int32
+ var vtabOnConflict U8
+ var pVtab6 uintptr
+ var pModule5 uintptr
+ var nArg1 int32
+ var i8 int32
+
+ var apArg1 uintptr
+ var pX1 uintptr
+ var newMax uint32
+ var pBt3 uintptr
+ var i9 int32
+ var pCtx2 uintptr
+ var h U64
+ var h1 U64
+ var z2 uintptr
+ var z3 uintptr
+ var i10 int32
+ var zTrace uintptr
+ aOp = (*Vdbe)(unsafe.Pointer(p)).FaOp
+ pOp = aOp
+ rc = SQLITE_OK
+ db = (*Vdbe)(unsafe.Pointer(p)).Fdb
+ resetSchemaOnFault = U8(0)
+ encoding = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ iCompare = 0
+ nVmStep = uint64(0)
+ aMem = (*Vdbe)(unsafe.Pointer(p)).FaMem
+ pIn1 = uintptr(0)
+ pIn2 = uintptr(0)
+ pIn3 = uintptr(0)
+ pOut = uintptr(0)
+
+ if !((*Vdbe)(unsafe.Pointer(p)).FlockMask != YDbMask(0)) {
+ goto __1
+ }
+ Xsqlite3VdbeEnter(tls, p)
+__1:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxProgress != 0) {
+ goto __2
+ }
+ iPrior = *(*U32)(unsafe.Pointer(p + 212 + 4*4))
+
+ nProgressLimit = U64((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps - iPrior%(*Sqlite3)(unsafe.Pointer(db)).FnProgressOps)
+ goto __3
+__2:
+ nProgressLimit = uint64(0xffffffff) | uint64(0xffffffff)<<32
+__3:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_NOMEM) {
+ goto __4
+ }
+
+ goto no_mem
+__4:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_OK
+
+ (*Vdbe)(unsafe.Pointer(p)).FiCurrentTime = int64(0)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
+ if !(*(*int32)(unsafe.Pointer(db + 432)) != 0) {
+ goto __5
+ }
+ goto abort_due_to_interrupt
+__5:
+ ;
+ pOp = aOp + uintptr((*Vdbe)(unsafe.Pointer(p)).Fpc)*24
+__6:
+ if !(1 != 0) {
+ goto __8
+ }
+
+ nVmStep++
+
+ switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
+ case OP_Goto:
+ goto __10
+
+ case OP_Gosub:
+ goto __11
+
+ case OP_Return:
+ goto __12
+
+ case OP_InitCoroutine:
+ goto __13
+
+ case OP_EndCoroutine:
+ goto __14
+
+ case OP_Yield:
+ goto __15
+
+ case OP_HaltIfNull:
+ goto __16
+
+ case OP_Halt:
+ goto __17
+
+ case OP_Integer:
+ goto __18
+
+ case OP_Int64:
+ goto __19
+
+ case OP_Real:
+ goto __20
+
+ case OP_String8:
+ goto __21
+
+ case OP_String:
+ goto __22
+
+ case OP_BeginSubrtn:
+ goto __23
+ case OP_Null:
+ goto __24
+
+ case OP_SoftNull:
+ goto __25
+
+ case OP_Blob:
+ goto __26
+
+ case OP_Variable:
+ goto __27
+
+ case OP_Move:
+ goto __28
+
+ case OP_Copy:
+ goto __29
+
+ case OP_SCopy:
+ goto __30
+
+ case OP_IntCopy:
+ goto __31
+
+ case OP_FkCheck:
+ goto __32
+
+ case OP_ResultRow:
+ goto __33
+
+ case OP_Concat:
+ goto __34
+
+ case OP_Add:
+ goto __35
+ case OP_Subtract:
+ goto __36
+ case OP_Multiply:
+ goto __37
+ case OP_Divide:
+ goto __38
+ case OP_Remainder:
+ goto __39
+
+ case OP_CollSeq:
+ goto __40
+
+ case OP_BitAnd:
+ goto __41
+ case OP_BitOr:
+ goto __42
+ case OP_ShiftLeft:
+ goto __43
+ case OP_ShiftRight:
+ goto __44
+
+ case OP_AddImm:
+ goto __45
+
+ case OP_MustBeInt:
+ goto __46
+
+ case OP_RealAffinity:
+ goto __47
+
+ case OP_Cast:
+ goto __48
+
+ case OP_Eq:
+ goto __49
+ case OP_Ne:
+ goto __50
+ case OP_Lt:
+ goto __51
+ case OP_Le:
+ goto __52
+ case OP_Gt:
+ goto __53
+ case OP_Ge:
+ goto __54
+
+ case OP_ElseEq:
+ goto __55
+
+ case OP_Permutation:
+ goto __56
+
+ case OP_Compare:
+ goto __57
+
+ case OP_Jump:
+ goto __58
+
+ case OP_And:
+ goto __59
+ case OP_Or:
+ goto __60
+
+ case OP_IsTrue:
+ goto __61
+
+ case OP_Not:
+ goto __62
+
+ case OP_BitNot:
+ goto __63
+
+ case OP_Once:
+ goto __64
+
+ case OP_If:
+ goto __65
+
+ case OP_IfNot:
+ goto __66
+
+ case OP_IsNull:
+ goto __67
+
+ case OP_IsType:
+ goto __68
+
+ case OP_ZeroOrNull:
+ goto __69
+
+ case OP_NotNull:
+ goto __70
+
+ case OP_IfNullRow:
+ goto __71
+
+ case OP_Offset:
+ goto __72
+
+ case OP_Column:
+ goto __73
+
+ case OP_TypeCheck:
+ goto __74
+
+ case OP_Affinity:
+ goto __75
+
+ case OP_MakeRecord:
+ goto __76
+
+ case OP_Count:
+ goto __77
+
+ case OP_Savepoint:
+ goto __78
+
+ case OP_AutoCommit:
+ goto __79
+
+ case OP_Transaction:
+ goto __80
+
+ case OP_ReadCookie:
+ goto __81
+
+ case OP_SetCookie:
+ goto __82
+
+ case OP_ReopenIdx:
+ goto __83
+
+ case OP_OpenRead:
+ goto __84
+ case OP_OpenWrite:
+ goto __85
+
+ case OP_OpenDup:
+ goto __86
+
+ case OP_OpenAutoindex:
+ goto __87
+ case OP_OpenEphemeral:
+ goto __88
+
+ case OP_SorterOpen:
+ goto __89
+
+ case OP_SequenceTest:
+ goto __90
+
+ case OP_OpenPseudo:
+ goto __91
+
+ case OP_Close:
+ goto __92
+
+ case OP_SeekLT:
+ goto __93
+ case OP_SeekLE:
+ goto __94
+ case OP_SeekGE:
+ goto __95
+ case OP_SeekGT:
+ goto __96
+
+ case OP_SeekScan:
+ goto __97
+
+ case OP_SeekHit:
+ goto __98
+
+ case OP_IfNotOpen:
+ goto __99
+
+ case OP_IfNoHope:
+ goto __100
+ case OP_NoConflict:
+ goto __101
+ case OP_NotFound:
+ goto __102
+ case OP_Found:
+ goto __103
+
+ case OP_SeekRowid:
+ goto __104
+
+ case OP_NotExists:
+ goto __105
+
+ case OP_Sequence:
+ goto __106
+
+ case OP_NewRowid:
+ goto __107
+
+ case OP_Insert:
+ goto __108
+
+ case OP_RowCell:
+ goto __109
+
+ case OP_Delete:
+ goto __110
+
+ case OP_ResetCount:
+ goto __111
+
+ case OP_SorterCompare:
+ goto __112
+
+ case OP_SorterData:
+ goto __113
+
+ case OP_RowData:
+ goto __114
+
+ case OP_Rowid:
+ goto __115
+
+ case OP_NullRow:
+ goto __116
+
+ case OP_SeekEnd:
+ goto __117
+ case OP_Last:
+ goto __118
+
+ case OP_IfSmaller:
+ goto __119
+
+ case OP_SorterSort:
+ goto __120
+ case OP_Sort:
+ goto __121
+
+ case OP_Rewind:
+ goto __122
+
+ case OP_SorterNext:
+ goto __123
+
+ case OP_Prev:
+ goto __124
+
+ case OP_Next:
+ goto __125
+
+ case OP_IdxInsert:
+ goto __126
+
+ case OP_SorterInsert:
+ goto __127
+
+ case OP_IdxDelete:
+ goto __128
+
+ case OP_DeferredSeek:
+ goto __129
+ case OP_IdxRowid:
+ goto __130
+
+ case OP_FinishSeek:
+ goto __131
+
+ case OP_IdxLE:
+ goto __132
+ case OP_IdxGT:
+ goto __133
+ case OP_IdxLT:
+ goto __134
+ case OP_IdxGE:
+ goto __135
+
+ case OP_Destroy:
+ goto __136
+
+ case OP_Clear:
+ goto __137
+
+ case OP_ResetSorter:
+ goto __138
+
+ case OP_CreateBtree:
+ goto __139
+
+ case OP_SqlExec:
+ goto __140
+
+ case OP_ParseSchema:
+ goto __141
+
+ case OP_LoadAnalysis:
+ goto __142
+
+ case OP_DropTable:
+ goto __143
+
+ case OP_DropIndex:
+ goto __144
+
+ case OP_DropTrigger:
+ goto __145
+
+ case OP_IntegrityCk:
+ goto __146
+
+ case OP_RowSetAdd:
+ goto __147
+
+ case OP_RowSetRead:
+ goto __148
+
+ case OP_RowSetTest:
+ goto __149
+
+ case OP_Program:
+ goto __150
+
+ case OP_Param:
+ goto __151
+
+ case OP_FkCounter:
+ goto __152
+
+ case OP_FkIfZero:
+ goto __153
+
+ case OP_MemMax:
+ goto __154
+
+ case OP_IfPos:
+ goto __155
+
+ case OP_OffsetLimit:
+ goto __156
+
+ case OP_IfNotZero:
+ goto __157
+
+ case OP_DecrJumpZero:
+ goto __158
+
+ case OP_AggInverse:
+ goto __159
+ case OP_AggStep:
+ goto __160
+ case OP_AggStep1:
+ goto __161
+
+ case OP_AggValue:
+ goto __162
+ case OP_AggFinal:
+ goto __163
+
+ case OP_Checkpoint:
+ goto __164
+
+ case OP_JournalMode:
+ goto __165
+
+ case OP_Vacuum:
+ goto __166
+
+ case OP_IncrVacuum:
+ goto __167
+
+ case OP_Expire:
+ goto __168
+
+ case OP_CursorLock:
+ goto __169
+
+ case OP_CursorUnlock:
+ goto __170
+
+ case OP_TableLock:
+ goto __171
+
+ case OP_VBegin:
+ goto __172
+
+ case OP_VCreate:
+ goto __173
+
+ case OP_VDestroy:
+ goto __174
+
+ case OP_VOpen:
+ goto __175
+
+ case OP_VInitIn:
+ goto __176
+
+ case OP_VFilter:
+ goto __177
+
+ case OP_VColumn:
+ goto __178
+
+ case OP_VNext:
+ goto __179
+
+ case OP_VRename:
+ goto __180
+
+ case OP_VUpdate:
+ goto __181
+
+ case OP_Pagecount:
+ goto __182
+
+ case OP_MaxPgcnt:
+ goto __183
+
+ case OP_PureFunc:
+ goto __184
+ case OP_Function:
+ goto __185
+
+ case OP_ClrSubtype:
+ goto __186
+
+ case OP_FilterAdd:
+ goto __187
+
+ case OP_Filter:
+ goto __188
+
+ case OP_Trace:
+ goto __189
+ case OP_Init:
+ goto __190
+
+ default:
+ goto __191
+ }
+ goto __9
+
+__10:
+jump_to_p2_and_check_for_interrupt:
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2-1)*24
+
+check_for_interrupt:
+ if !(*(*int32)(unsafe.Pointer(db + 432)) != 0) {
+ goto __192
+ }
+ goto abort_due_to_interrupt
+__192:
+ ;
+__193:
+ if !(nVmStep >= nProgressLimit && (*Sqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0)) {
+ goto __194
+ }
+
+ nProgressLimit = nProgressLimit + U64((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps)
+ if !((*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxProgress})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0) {
+ goto __195
+ }
+ nProgressLimit = uint64(0xffffffff) | uint64(0xffffffff)<<32
+ rc = SQLITE_INTERRUPT
+ goto abort_due_to_error
+__195:
+ ;
+ goto __193
+__194:
+ ;
+ goto __9
+
+__11:
+ ;
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(MEM_Int)
+ *(*I64)(unsafe.Pointer(pIn1)) = I64(int32((int64(pOp) - int64(aOp)) / 24))
+
+ goto jump_to_p2_and_check_for_interrupt
+
+__12:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int != 0) {
+ goto __196
+ }
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __198
+ }
+__198:
+ ;
+ pOp = aOp + uintptr(*(*I64)(unsafe.Pointer(pIn1)))*24
+ goto __197
+__196:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __199
+ }
+
+__199:
+ ;
+__197:
+ ;
+ goto __9
+
+__13:
+ ;
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ *(*I64)(unsafe.Pointer(pOut)) = I64((*Op)(unsafe.Pointer(pOp)).Fp3 - 1)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Int)
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 0) {
+ goto __200
+ }
+ goto __9
+__200:
+ ;
+jump_to_p2:
+ ;
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2-1)*24
+ goto __9
+
+__14:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ pCaller = aOp + uintptr(*(*I64)(unsafe.Pointer(pIn1)))*24
+
+ pOp = aOp + uintptr((*VdbeOp)(unsafe.Pointer(pCaller)).Fp2-1)*24
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(MEM_Undefined)
+ goto __9
+
+__15:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(MEM_Int)
+ pcDest = int32(*(*I64)(unsafe.Pointer(pIn1)))
+ *(*I64)(unsafe.Pointer(pIn1)) = I64(int32((int64(pOp) - int64(aOp)) / 24))
+
+ pOp = aOp + uintptr(pcDest)*24
+ goto __9
+
+__16:
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !(int32((*Mem)(unsafe.Pointer(pIn3)).Fflags)&MEM_Null == 0) {
+ goto __201
+ }
+ goto __9
+__201:
+ ;
+__17:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0 && (*Op)(unsafe.Pointer(pOp)).Fp1 == SQLITE_OK) {
+ goto __202
+ }
+
+ pFrame = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+ (*Vdbe)(unsafe.Pointer(p)).FpFrame = (*VdbeFrame)(unsafe.Pointer(pFrame)).FpParent
+ (*Vdbe)(unsafe.Pointer(p)).FnFrame--
+ Xsqlite3VdbeSetChanges(tls, db, (*Vdbe)(unsafe.Pointer(p)).FnChange)
+ pcx = Xsqlite3VdbeFrameRestore(tls, pFrame)
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == OE_Ignore) {
+ goto __203
+ }
+
+ pcx = (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(pcx)*24)).Fp2 - 1
+__203:
+ ;
+ aOp = (*Vdbe)(unsafe.Pointer(p)).FaOp
+ aMem = (*Vdbe)(unsafe.Pointer(p)).FaMem
+ pOp = aOp + uintptr(pcx)*24
+ goto __9
+__202:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).Frc = (*Op)(unsafe.Pointer(pOp)).Fp1
+ (*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8((*Op)(unsafe.Pointer(pOp)).Fp2)
+
+ if !((*Vdbe)(unsafe.Pointer(p)).Frc != 0) {
+ goto __204
+ }
+ if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) {
+ goto __205
+ }
+
+ Xsqlite3VdbeError(tls, p, ts+5834, libc.VaList(bp, azType[int32((*Op)(unsafe.Pointer(pOp)).Fp5)-1]))
+ if !(*(*uintptr)(unsafe.Pointer(pOp + 16)) != 0) {
+ goto __207
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+5855, libc.VaList(bp+8, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16))))
+__207:
+ ;
+ goto __206
+__205:
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(pOp + 16))))
+__206:
+ ;
+ pcx = int32((int64(pOp) - int64(aOp)) / 24)
+ Xsqlite3_log(tls, (*Op)(unsafe.Pointer(pOp)).Fp1, ts+5862, libc.VaList(bp+32, pcx, (*Vdbe)(unsafe.Pointer(p)).FzSql, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
+__204:
+ ;
+ rc = Xsqlite3VdbeHalt(tls, p)
+
+ if !(rc == SQLITE_BUSY) {
+ goto __208
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Frc = SQLITE_BUSY
+ goto __209
+__208:
+ ;
+ if (*Vdbe)(unsafe.Pointer(p)).Frc != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ rc = SQLITE_DONE
+ }
+__209:
+ ;
+ goto vdbe_return
+
+__18:
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = I64((*Op)(unsafe.Pointer(pOp)).Fp1)
+ goto __9
+
+__19:
+ pOut = out2Prerelease(tls, p, pOp)
+
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16))))
+ goto __9
+
+__20:
+ pOut = out2Prerelease(tls, p, pOp)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Real)
+
+ *(*float64)(unsafe.Pointer(pOut)) = *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16))))
+ goto __9
+
+__21:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ (*Op)(unsafe.Pointer(pOp)).Fp1 = Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+
+ if !(int32(encoding) != SQLITE_UTF8) {
+ goto __210
+ }
+ rc = Xsqlite3VdbeMemSetStr(tls, pOut, *(*uintptr)(unsafe.Pointer(pOp + 16)), int64(-1), uint8(SQLITE_UTF8), uintptr(0))
+
+ if !(rc != 0) {
+ goto __211
+ }
+ goto too_big
+__211:
+ ;
+ if !(SQLITE_OK != Xsqlite3VdbeChangeEncoding(tls, pOut, int32(encoding))) {
+ goto __212
+ }
+ goto no_mem
+__212:
+ ;
+ (*Mem)(unsafe.Pointer(pOut)).FszMalloc = 0
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Static)
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -6) {
+ goto __213
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+__213:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(-6)
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = (*Mem)(unsafe.Pointer(pOut)).Fz
+ (*Op)(unsafe.Pointer(pOp)).Fp1 = (*Mem)(unsafe.Pointer(pOut)).Fn
+__210:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 > *(*int32)(unsafe.Pointer(db + 136))) {
+ goto __214
+ }
+ goto too_big
+__214:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fopcode = U8(OP_String)
+
+__22:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Str | MEM_Static | MEM_Term)
+ (*Mem)(unsafe.Pointer(pOut)).Fz = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ (*Mem)(unsafe.Pointer(pOut)).Fn = (*Op)(unsafe.Pointer(pOp)).Fp1
+ (*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
+
+ goto __9
+
+__23:
+__24:
+ pOut = out2Prerelease(tls, p, pOp)
+ cnt = (*Op)(unsafe.Pointer(pOp)).Fp3 - (*Op)(unsafe.Pointer(pOp)).Fp2
+
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = libc.AssignUint16(&nullFlag, func() uint16 {
+ if (*Op)(unsafe.Pointer(pOp)).Fp1 != 0 {
+ return uint16(MEM_Null | MEM_Cleared)
+ }
+ return uint16(MEM_Null)
+ }())
+ (*Mem)(unsafe.Pointer(pOut)).Fn = 0
+__215:
+ if !(cnt > 0) {
+ goto __216
+ }
+ pOut += 56
+
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = nullFlag
+ (*Mem)(unsafe.Pointer(pOut)).Fn = 0
+ cnt--
+ goto __215
+__216:
+ ;
+ goto __9
+
+__25:
+ ;
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_Undefined|MEM_AffMask) | MEM_Null)
+ goto __9
+
+__26:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ if !(*(*uintptr)(unsafe.Pointer(pOp + 16)) == uintptr(0)) {
+ goto __217
+ }
+ Xsqlite3VdbeMemSetZeroBlob(tls, pOut, (*Op)(unsafe.Pointer(pOp)).Fp1)
+ if !(Xsqlite3VdbeMemExpandBlob(tls, pOut) != 0) {
+ goto __219
+ }
+ goto no_mem
+__219:
+ ;
+ goto __218
+__217:
+ Xsqlite3VdbeMemSetStr(tls, pOut, *(*uintptr)(unsafe.Pointer(pOp + 16)), int64((*Op)(unsafe.Pointer(pOp)).Fp1), uint8(0), uintptr(0))
+__218:
+ ;
+ (*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
+
+ goto __9
+
+__27:
+ ;
+ pVar = (*Vdbe)(unsafe.Pointer(p)).FaVar + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1-1)*56
+ if !(Xsqlite3VdbeMemTooBig(tls, pVar) != 0) {
+ goto __220
+ }
+ goto too_big
+__220:
+ ;
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ if !(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&(MEM_Agg|MEM_Dyn) != 0) {
+ goto __221
+ }
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+__221:
+ ;
+ libc.X__builtin___memcpy_chk(tls, pOut, pVar, uint64(uintptr(0)+24), libc.X__builtin_object_size(tls, pOut, 0))
+ *(*U16)(unsafe.Pointer(pOut + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Dyn | MEM_Ephem))
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Static | MEM_FromBind)
+
+ goto __9
+
+__28:
+ n = (*Op)(unsafe.Pointer(pOp)).Fp3
+ p1 = (*Op)(unsafe.Pointer(pOp)).Fp1
+ p2 = (*Op)(unsafe.Pointer(pOp)).Fp2
+
+ pIn1 = aMem + uintptr(p1)*56
+ pOut = aMem + uintptr(p2)*56
+__222:
+ ;
+ Xsqlite3VdbeMemMove(tls, pOut, pIn1)
+ if !(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&MEM_Ephem != 0 && Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0) {
+ goto __225
+ }
+ goto no_mem
+__225:
+ ;
+ pIn1 += 56
+ pOut += 56
+ goto __223
+__223:
+ if libc.PreDecInt32(&n, 1) != 0 {
+ goto __222
+ }
+ goto __224
+__224:
+ ;
+ goto __9
+
+__29:
+ n1 = (*Op)(unsafe.Pointer(pOp)).Fp3
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+__226:
+ if !(1 != 0) {
+ goto __227
+ }
+
+ Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn1, MEM_Ephem)
+ if !(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&MEM_Ephem != 0 && Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0) {
+ goto __228
+ }
+ goto no_mem
+__228:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&MEM_Subtype != 0 && int32((*Op)(unsafe.Pointer(pOp)).Fp5)&0x0002 != 0) {
+ goto __229
+ }
+ *(*U16)(unsafe.Pointer(pOut + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Subtype))
+__229:
+ ;
+ if !(libc.PostDecInt32(&n1, 1) == 0) {
+ goto __230
+ }
+ goto __227
+__230:
+ ;
+ pOut += 56
+ pIn1 += 56
+ goto __226
+__227:
+ ;
+ goto __9
+
+__30:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+ Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn1, MEM_Ephem)
+ goto __9
+
+__31:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ Xsqlite3VdbeMemSetInt64(tls, pOut, *(*I64)(unsafe.Pointer(pIn1)))
+ goto __9
+
+__32:
+ if !(libc.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 0)) != SQLITE_OK) {
+ goto __231
+ }
+ goto abort_due_to_error
+__231:
+ ;
+ goto __9
+
+__33:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).FcacheCtr = (*Vdbe)(unsafe.Pointer(p)).FcacheCtr + U32(2) | U32(1)
+ (*Vdbe)(unsafe.Pointer(p)).FpResultRow = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __232
+ }
+ goto no_mem
+__232:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&SQLITE_TRACE_ROW != 0) {
+ goto __233
+ }
+ (*struct {
+ f func(*libc.TLS, U32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, uint32(SQLITE_TRACE_ROW), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, uintptr(0))
+__233:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp)-int64(aOp))/24) + 1
+ rc = SQLITE_ROW
+ goto vdbe_return
+
+__34:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ flags1 = (*Mem)(unsafe.Pointer(pIn1)).Fflags
+
+ if !((int32(flags1)|int32((*Mem)(unsafe.Pointer(pIn2)).Fflags))&MEM_Null != 0) {
+ goto __234
+ }
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ goto __9
+__234:
+ ;
+ if !(int32(flags1)&(MEM_Str|MEM_Blob) == 0) {
+ goto __235
+ }
+ if !(Xsqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(0)) != 0) {
+ goto __237
+ }
+ goto no_mem
+__237:
+ ;
+ flags1 = U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & libc.CplInt32(MEM_Str))
+ goto __236
+__235:
+ if !(int32(flags1)&MEM_Zero != 0) {
+ goto __238
+ }
+ if !(Xsqlite3VdbeMemExpandBlob(tls, pIn1) != 0) {
+ goto __239
+ }
+ goto no_mem
+__239:
+ ;
+ flags1 = U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags) & libc.CplInt32(MEM_Str))
+__238:
+ ;
+__236:
+ ;
+ flags2 = (*Mem)(unsafe.Pointer(pIn2)).Fflags
+ if !(int32(flags2)&(MEM_Str|MEM_Blob) == 0) {
+ goto __240
+ }
+ if !(Xsqlite3VdbeMemStringify(tls, pIn2, encoding, uint8(0)) != 0) {
+ goto __242
+ }
+ goto no_mem
+__242:
+ ;
+ flags2 = U16(int32((*Mem)(unsafe.Pointer(pIn2)).Fflags) & libc.CplInt32(MEM_Str))
+ goto __241
+__240:
+ if !(int32(flags2)&MEM_Zero != 0) {
+ goto __243
+ }
+ if !(Xsqlite3VdbeMemExpandBlob(tls, pIn2) != 0) {
+ goto __244
+ }
+ goto no_mem
+__244:
+ ;
+ flags2 = U16(int32((*Mem)(unsafe.Pointer(pIn2)).Fflags) & libc.CplInt32(MEM_Str))
+__243:
+ ;
+__241:
+ ;
+ nByte = I64((*Mem)(unsafe.Pointer(pIn1)).Fn + (*Mem)(unsafe.Pointer(pIn2)).Fn)
+ if !(nByte > I64(*(*int32)(unsafe.Pointer(db + 136)))) {
+ goto __245
+ }
+ goto too_big
+__245:
+ ;
+ if !(Xsqlite3VdbeMemGrow(tls, pOut, int32(nByte)+2, libc.Bool32(pOut == pIn2)) != 0) {
+ goto __246
+ }
+ goto no_mem
+__246:
+ ;
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Str)
+ if !(pOut != pIn2) {
+ goto __247
+ }
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pOut)).Fz, (*Mem)(unsafe.Pointer(pIn2)).Fz, uint64((*Mem)(unsafe.Pointer(pIn2)).Fn), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pOut)).Fz, 0))
+
+ (*Mem)(unsafe.Pointer(pIn2)).Fflags = flags2
+__247:
+ ;
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pOut)).Fz+uintptr((*Mem)(unsafe.Pointer(pIn2)).Fn), (*Mem)(unsafe.Pointer(pIn1)).Fz, uint64((*Mem)(unsafe.Pointer(pIn1)).Fn), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pOut)).Fz+uintptr((*Mem)(unsafe.Pointer(pIn2)).Fn), 0))
+
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = flags1
+ if !(int32(encoding) > SQLITE_UTF8) {
+ goto __248
+ }
+ nByte = nByte & int64(libc.CplInt32(1))
+__248:
+ ;
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pOut)).Fz + uintptr(nByte))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pOut)).Fz + uintptr(nByte+int64(1)))) = int8(0)
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Term)
+ (*Mem)(unsafe.Pointer(pOut)).Fn = int32(nByte)
+ (*Mem)(unsafe.Pointer(pOut)).Fenc = encoding
+
+ goto __9
+
+__35:
+__36:
+__37:
+__38:
+__39:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ type1 = (*Mem)(unsafe.Pointer(pIn1)).Fflags
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ type2 = (*Mem)(unsafe.Pointer(pIn2)).Fflags
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !(int32(type1)&int32(type2)&MEM_Int != 0) {
+ goto __249
+ }
+int_math:
+ iA = *(*I64)(unsafe.Pointer(pIn1))
+ *(*I64)(unsafe.Pointer(bp + 208)) = *(*I64)(unsafe.Pointer(pIn2))
+ switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
+ case OP_Add:
+ goto __252
+ case OP_Subtract:
+ goto __253
+ case OP_Multiply:
+ goto __254
+ case OP_Divide:
+ goto __255
+ default:
+ goto __256
+ }
+ goto __251
+__252:
+ if !(Xsqlite3AddInt64(tls, bp+208, iA) != 0) {
+ goto __257
+ }
+ goto fp_math
+__257:
+ ;
+ goto __251
+__253:
+ if !(Xsqlite3SubInt64(tls, bp+208, iA) != 0) {
+ goto __258
+ }
+ goto fp_math
+__258:
+ ;
+ goto __251
+__254:
+ if !(Xsqlite3MulInt64(tls, bp+208, iA) != 0) {
+ goto __259
+ }
+ goto fp_math
+__259:
+ ;
+ goto __251
+__255:
+ if !(iA == int64(0)) {
+ goto __260
+ }
+ goto arithmetic_result_is_null
+__260:
+ ;
+ if !(iA == int64(-1) && *(*I64)(unsafe.Pointer(bp + 208)) == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32)) {
+ goto __261
+ }
+ goto fp_math
+__261:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 208)) /= iA
+ goto __251
+
+__256:
+ if !(iA == int64(0)) {
+ goto __262
+ }
+ goto arithmetic_result_is_null
+__262:
+ ;
+ if !(iA == int64(-1)) {
+ goto __263
+ }
+ iA = int64(1)
+__263:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 208)) %= iA
+ goto __251
+
+__251:
+ ;
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 208))
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ goto __250
+__249:
+ if !((int32(type1)|int32(type2))&MEM_Null != 0) {
+ goto __264
+ }
+ goto arithmetic_result_is_null
+ goto __265
+__264:
+ type1 = numericType(tls, pIn1)
+ type2 = numericType(tls, pIn2)
+ if !(int32(type1)&int32(type2)&MEM_Int != 0) {
+ goto __266
+ }
+ goto int_math
+__266:
+ ;
+fp_math:
+ rA = Xsqlite3VdbeRealValue(tls, pIn1)
+ rB = Xsqlite3VdbeRealValue(tls, pIn2)
+ switch int32((*Op)(unsafe.Pointer(pOp)).Fopcode) {
+ case OP_Add:
+ goto __268
+ case OP_Subtract:
+ goto __269
+ case OP_Multiply:
+ goto __270
+ case OP_Divide:
+ goto __271
+ default:
+ goto __272
+ }
+ goto __267
+__268:
+ rB = rB + rA
+ goto __267
+__269:
+ rB = rB - rA
+ goto __267
+__270:
+ rB = rB * rA
+ goto __267
+__271:
+ if !(rA == float64(0)) {
+ goto __273
+ }
+ goto arithmetic_result_is_null
+__273:
+ ;
+ rB = rB / rA
+ goto __267
+
+__272:
+ iA = Xsqlite3VdbeIntValue(tls, pIn1)
+ *(*I64)(unsafe.Pointer(bp + 208)) = Xsqlite3VdbeIntValue(tls, pIn2)
+ if !(iA == int64(0)) {
+ goto __274
+ }
+ goto arithmetic_result_is_null
+__274:
+ ;
+ if !(iA == int64(-1)) {
+ goto __275
+ }
+ iA = int64(1)
+__275:
+ ;
+ rB = float64(*(*I64)(unsafe.Pointer(bp + 208)) % iA)
+ goto __267
+
+__267:
+ ;
+ if !(Xsqlite3IsNaN(tls, rB) != 0) {
+ goto __276
+ }
+ goto arithmetic_result_is_null
+__276:
+ ;
+ *(*float64)(unsafe.Pointer(pOut)) = rB
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Real)
+__265:
+ ;
+__250:
+ ;
+ goto __9
+
+arithmetic_result_is_null:
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ goto __9
+
+__40:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __277
+ }
+ Xsqlite3VdbeMemSetInt64(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56, int64(0))
+__277:
+ ;
+ goto __9
+
+__41:
+__42:
+__43:
+__44:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !((int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)|int32((*Mem)(unsafe.Pointer(pIn2)).Fflags))&MEM_Null != 0) {
+ goto __278
+ }
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ goto __9
+__278:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 224)) = Xsqlite3VdbeIntValue(tls, pIn2)
+ iB1 = Xsqlite3VdbeIntValue(tls, pIn1)
+ op = (*Op)(unsafe.Pointer(pOp)).Fopcode
+ if !(int32(op) == OP_BitAnd) {
+ goto __279
+ }
+ *(*I64)(unsafe.Pointer(bp + 224)) &= iB1
+ goto __280
+__279:
+ if !(int32(op) == OP_BitOr) {
+ goto __281
+ }
+ *(*I64)(unsafe.Pointer(bp + 224)) |= iB1
+ goto __282
+__281:
+ if !(iB1 != int64(0)) {
+ goto __283
+ }
+
+ if !(iB1 < int64(0)) {
+ goto __284
+ }
+
+ op = U8(2*OP_ShiftLeft + 1 - int32(op))
+ if iB1 > int64(-64) {
+ iB1 = -iB1
+ } else {
+ iB1 = int64(64)
+ }
+__284:
+ ;
+ if !(iB1 >= int64(64)) {
+ goto __285
+ }
+ if *(*I64)(unsafe.Pointer(bp + 224)) >= int64(0) || int32(op) == OP_ShiftLeft {
+ *(*I64)(unsafe.Pointer(bp + 224)) = int64(0)
+ } else {
+ *(*I64)(unsafe.Pointer(bp + 224)) = int64(-1)
+ }
+ goto __286
+__285:
+ libc.X__builtin___memcpy_chk(tls, bp+216, bp+224, uint64(unsafe.Sizeof(U64(0))), libc.X__builtin_object_size(tls, bp+216, 0))
+ if !(int32(op) == OP_ShiftLeft) {
+ goto __287
+ }
+ *(*U64)(unsafe.Pointer(bp + 216)) <<= iB1
+ goto __288
+__287:
+ *(*U64)(unsafe.Pointer(bp + 216)) >>= iB1
+
+ if !(*(*I64)(unsafe.Pointer(bp + 224)) < int64(0)) {
+ goto __289
+ }
+ *(*U64)(unsafe.Pointer(bp + 216)) |= (uint64(0xffffffff)<<32 | uint64(0xffffffff)) << (int64(64) - iB1)
+__289:
+ ;
+__288:
+ ;
+ libc.X__builtin___memcpy_chk(tls, bp+224, bp+216, uint64(unsafe.Sizeof(I64(0))), libc.X__builtin_object_size(tls, bp+224, 0))
+__286:
+ ;
+__283:
+ ;
+__282:
+ ;
+__280:
+ ;
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 224))
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ goto __9
+
+__45:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ Xsqlite3VdbeMemIntegerify(tls, pIn1)
+ *(*I64)(unsafe.Pointer(pIn1)) += I64((*Op)(unsafe.Pointer(pOp)).Fp2)
+ goto __9
+
+__46:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int == 0) {
+ goto __290
+ }
+ applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding)
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int == 0) {
+ goto __291
+ }
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 0) {
+ goto __292
+ }
+ rc = SQLITE_MISMATCH
+ goto abort_due_to_error
+ goto __293
+__292:
+ goto jump_to_p2
+__293:
+ ;
+__291:
+ ;
+__290:
+ ;
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+ goto __9
+
+__47:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&(MEM_Int|MEM_IntReal) != 0) {
+ goto __294
+ }
+
+ Xsqlite3VdbeMemRealify(tls, pIn1)
+
+__294:
+ ;
+ goto __9
+
+__48:
+ ;
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ rc = func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pIn1)
+ }
+ return 0
+ }()
+ if !(rc != 0) {
+ goto __295
+ }
+ goto abort_due_to_error
+__295:
+ ;
+ rc = Xsqlite3VdbeMemCast(tls, pIn1, uint8((*Op)(unsafe.Pointer(pOp)).Fp2), encoding)
+ if !(rc != 0) {
+ goto __296
+ }
+ goto abort_due_to_error
+__296:
+ ;
+ goto __9
+
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ flags11 = (*Mem)(unsafe.Pointer(pIn1)).Fflags
+ flags3 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
+ if !(int32(flags11)&int32(flags3)&MEM_Int != 0) {
+ goto __297
+ }
+
+ if !(*(*I64)(unsafe.Pointer(pIn3)) > *(*I64)(unsafe.Pointer(pIn1))) {
+ goto __298
+ }
+ if !(*(*uint8)(unsafe.Pointer(Xsqlite3aGTb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))) != 0) {
+ goto __300
+ }
+
+ goto jump_to_p2
+__300:
+ ;
+ iCompare = +1
+
+ goto __299
+__298:
+ if !(*(*I64)(unsafe.Pointer(pIn3)) < *(*I64)(unsafe.Pointer(pIn1))) {
+ goto __301
+ }
+ if !(*(*uint8)(unsafe.Pointer(Xsqlite3aLTb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))) != 0) {
+ goto __303
+ }
+
+ goto jump_to_p2
+__303:
+ ;
+ iCompare = -1
+
+ goto __302
+__301:
+ if !(*(*uint8)(unsafe.Pointer(Xsqlite3aEQb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))) != 0) {
+ goto __304
+ }
+
+ goto jump_to_p2
+__304:
+ ;
+ iCompare = 0
+
+__302:
+ ;
+__299:
+ ;
+ goto __9
+__297:
+ ;
+ if !((int32(flags11)|int32(flags3))&MEM_Null != 0) {
+ goto __305
+ }
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&SQLITE_NULLEQ != 0) {
+ goto __307
+ }
+
+ if !(int32(flags11)&int32(flags3)&MEM_Null != 0 &&
+ int32(flags3)&MEM_Cleared == 0) {
+ goto __309
+ }
+ res = 0
+ goto __310
+__309:
+ res = func() int32 {
+ if int32(flags3)&MEM_Null != 0 {
+ return -1
+ }
+ return +1
+ }()
+__310:
+ ;
+ goto __308
+__307:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&SQLITE_JUMPIFNULL != 0) {
+ goto __311
+ }
+ goto jump_to_p2
+__311:
+ ;
+ iCompare = 1
+
+ goto __9
+__308:
+ ;
+ goto __306
+__305:
+ affinity = int8(int32((*Op)(unsafe.Pointer(pOp)).Fp5) & SQLITE_AFF_MASK)
+ if !(int32(affinity) >= SQLITE_AFF_NUMERIC) {
+ goto __312
+ }
+ if !((int32(flags11)|int32(flags3))&MEM_Str != 0) {
+ goto __314
+ }
+ if !(int32(flags11)&(MEM_Int|MEM_IntReal|MEM_Real|MEM_Str) == MEM_Str) {
+ goto __315
+ }
+ applyNumericAffinity(tls, pIn1, 0)
+
+ flags3 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
+__315:
+ ;
+ if !(int32(flags3)&(MEM_Int|MEM_IntReal|MEM_Real|MEM_Str) == MEM_Str) {
+ goto __316
+ }
+ applyNumericAffinity(tls, pIn3, 0)
+__316:
+ ;
+__314:
+ ;
+ goto __313
+__312:
+ if !(int32(affinity) == SQLITE_AFF_TEXT && (int32(flags11)|int32(flags3))&MEM_Str != 0) {
+ goto __317
+ }
+ if !(int32(flags11)&MEM_Str == 0 && int32(flags11)&(MEM_Int|MEM_Real|MEM_IntReal) != 0) {
+ goto __318
+ }
+
+ Xsqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(1))
+
+ flags11 = U16(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&libc.CplInt32(MEM_TypeMask) | int32(flags11)&MEM_TypeMask)
+ if !(pIn1 == pIn3) {
+ goto __319
+ }
+ flags3 = U16(int32(flags11) | MEM_Str)
+__319:
+ ;
+__318:
+ ;
+ if !(int32(flags3)&MEM_Str == 0 && int32(flags3)&(MEM_Int|MEM_Real|MEM_IntReal) != 0) {
+ goto __320
+ }
+
+ Xsqlite3VdbeMemStringify(tls, pIn3, encoding, uint8(1))
+
+ flags3 = U16(int32((*Mem)(unsafe.Pointer(pIn3)).Fflags)&libc.CplInt32(MEM_TypeMask) | int32(flags3)&MEM_TypeMask)
+__320:
+ ;
+__317:
+ ;
+__313:
+ ;
+ res = Xsqlite3MemCompare(tls, pIn3, pIn1, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+__306:
+ ;
+ if !(res < 0) {
+ goto __321
+ }
+ res2 = int32(*(*uint8)(unsafe.Pointer(Xsqlite3aLTb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))))
+ goto __322
+__321:
+ if !(res == 0) {
+ goto __323
+ }
+ res2 = int32(*(*uint8)(unsafe.Pointer(Xsqlite3aEQb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))))
+ goto __324
+__323:
+ res2 = int32(*(*uint8)(unsafe.Pointer(Xsqlite3aGTb + uintptr((*Op)(unsafe.Pointer(pOp)).Fopcode))))
+__324:
+ ;
+__322:
+ ;
+ iCompare = res
+
+ (*Mem)(unsafe.Pointer(pIn3)).Fflags = flags3
+
+ (*Mem)(unsafe.Pointer(pIn1)).Fflags = flags11
+
+ if !(res2 != 0) {
+ goto __325
+ }
+ goto jump_to_p2
+__325:
+ ;
+ goto __9
+
+__55:
+ ;
+ if !(iCompare == 0) {
+ goto __326
+ }
+ goto jump_to_p2
+__326:
+ ;
+ goto __9
+
+__56:
+ ;
+ goto __9
+
+__57:
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_PERMUTE == 0) {
+ goto __327
+ }
+ aPermute = uintptr(0)
+ goto __328
+__327:
+ ;
+ aPermute = *(*uintptr)(unsafe.Pointer(pOp + libc.UintptrFromInt32(-1)*24 + 16)) + uintptr(1)*4
+
+__328:
+ ;
+ n2 = (*Op)(unsafe.Pointer(pOp)).Fp3
+ pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ p11 = (*Op)(unsafe.Pointer(pOp)).Fp1
+ p21 = (*Op)(unsafe.Pointer(pOp)).Fp2
+ i = 0
+__329:
+ if !(i < n2) {
+ goto __331
+ }
+ if aPermute != 0 {
+ idx = *(*U32)(unsafe.Pointer(aPermute + uintptr(i)*4))
+ } else {
+ idx = U32(i)
+ }
+
+ pColl = *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8))
+ bRev = int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i)))) & KEYINFO_ORDER_DESC
+ iCompare = Xsqlite3MemCompare(tls, aMem+uintptr(U32(p11)+idx)*56, aMem+uintptr(U32(p21)+idx)*56, pColl)
+
+ if !(iCompare != 0) {
+ goto __332
+ }
+ if !(int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i))))&KEYINFO_ORDER_BIGNULL != 0 &&
+ (int32((*Mem)(unsafe.Pointer(aMem+uintptr(U32(p11)+idx)*56)).Fflags)&MEM_Null != 0 || int32((*Mem)(unsafe.Pointer(aMem+uintptr(U32(p21)+idx)*56)).Fflags)&MEM_Null != 0)) {
+ goto __333
+ }
+ iCompare = -iCompare
+__333:
+ ;
+ if !(bRev != 0) {
+ goto __334
+ }
+ iCompare = -iCompare
+__334:
+ ;
+ goto __331
+__332:
+ ;
+ goto __330
+__330:
+ i++
+ goto __329
+ goto __331
+__331:
+ ;
+ goto __9
+
+__58:
+ ;
+ if !(iCompare < 0) {
+ goto __335
+ }
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1-1)*24
+ goto __336
+__335:
+ if !(iCompare == 0) {
+ goto __337
+ }
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2-1)*24
+ goto __338
+__337:
+ ;
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3-1)*24
+__338:
+ ;
+__336:
+ ;
+ goto __9
+
+__59:
+__60:
+ v1 = Xsqlite3VdbeBooleanValue(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56, 2)
+ v2 = Xsqlite3VdbeBooleanValue(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56, 2)
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_And) {
+ goto __339
+ }
+ v1 = int32(and_logic[v1*3+v2])
+ goto __340
+__339:
+ v1 = int32(or_logic[v1*3+v2])
+__340:
+ ;
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !(v1 == 2) {
+ goto __341
+ }
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Null)
+ goto __342
+__341:
+ *(*I64)(unsafe.Pointer(pOut)) = I64(v1)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Int)
+__342:
+ ;
+ goto __9
+
+__61:
+ ;
+ Xsqlite3VdbeMemSetInt64(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56,
+ int64(Xsqlite3VdbeBooleanValue(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56, (*Op)(unsafe.Pointer(pOp)).Fp3)^*(*int32)(unsafe.Pointer(pOp + 16))))
+ goto __9
+
+__62:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Null == 0) {
+ goto __343
+ }
+ Xsqlite3VdbeMemSetInt64(tls, pOut, libc.BoolInt64(!(Xsqlite3VdbeBooleanValue(tls, pIn1, 0) != 0)))
+ goto __344
+__343:
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+__344:
+ ;
+ goto __9
+
+__63:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Null == 0) {
+ goto __345
+ }
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Int)
+ *(*I64)(unsafe.Pointer(pOut)) = ^Xsqlite3VdbeIntValue(tls, pIn1)
+__345:
+ ;
+ goto __9
+
+__64:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
+ goto __346
+ }
+ iAddr = U32(int32((int64(pOp) - int64((*Vdbe)(unsafe.Pointer(p)).FaOp)) / 24))
+ if !(int32(*(*U8)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FpFrame)).FaOnce + uintptr(iAddr/U32(8)))))&(int32(1)<<(iAddr&U32(7))) != 0) {
+ goto __348
+ }
+
+ goto jump_to_p2
+__348:
+ ;
+ *(*U8)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FpFrame)).FaOnce + uintptr(iAddr/U32(8)))) |= U8(int32(1) << (iAddr & U32(7)))
+ goto __347
+__346:
+ if !((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp)).Fp1 == (*Op)(unsafe.Pointer(pOp)).Fp1) {
+ goto __349
+ }
+
+ goto jump_to_p2
+__349:
+ ;
+__347:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fp1 = (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp)).Fp1
+ goto __9
+
+__65:
+ c = Xsqlite3VdbeBooleanValue(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56, (*Op)(unsafe.Pointer(pOp)).Fp3)
+
+ if !(c != 0) {
+ goto __350
+ }
+ goto jump_to_p2
+__350:
+ ;
+ goto __9
+
+__66:
+ c1 = libc.BoolInt32(!(Xsqlite3VdbeBooleanValue(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56, libc.BoolInt32(!((*Op)(unsafe.Pointer(pOp)).Fp3 != 0))) != 0))
+
+ if !(c1 != 0) {
+ goto __351
+ }
+ goto jump_to_p2
+__351:
+ ;
+ goto __9
+
+__67:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Null != 0) {
+ goto __352
+ }
+ goto jump_to_p2
+__352:
+ ;
+ goto __9
+
+__68:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 >= 0) {
+ goto __353
+ }
+ pC = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 < int32((*VdbeCursor)(unsafe.Pointer(pC)).FnHdrParsed)) {
+ goto __355
+ }
+ serialType = *(*U32)(unsafe.Pointer(pC + 112 + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*4))
+ if !(serialType >= U32(12)) {
+ goto __357
+ }
+ if !(serialType&U32(1) != 0) {
+ goto __359
+ }
+ typeMask = U16(0x04)
+ goto __360
+__359:
+ typeMask = U16(0x08)
+__360:
+ ;
+ goto __358
+__357:
+ ;
+ typeMask = U16(aMask[serialType])
+__358:
+ ;
+ goto __356
+__355:
+ typeMask = U16(int32(1) << (*(*int32)(unsafe.Pointer(pOp + 16)) - 1))
+
+__356:
+ ;
+ goto __354
+__353:
+ ;
+ typeMask = U16(int32(1) << (Xsqlite3_value_type(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56) - 1))
+
+__354:
+ ;
+ if !(int32(typeMask)&int32((*Op)(unsafe.Pointer(pOp)).Fp5) != 0) {
+ goto __361
+ }
+ goto jump_to_p2
+__361:
+ ;
+ goto __9
+
+__69:
+ if !(int32((*Mem)(unsafe.Pointer(aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56)).Fflags)&MEM_Null != 0 ||
+ int32((*Mem)(unsafe.Pointer(aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)).Fflags)&MEM_Null != 0) {
+ goto __362
+ }
+ Xsqlite3VdbeMemSetNull(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
+ goto __363
+__362:
+ Xsqlite3VdbeMemSetInt64(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56, int64(0))
+__363:
+ ;
+ goto __9
+
+__70:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Null == 0) {
+ goto __364
+ }
+ goto jump_to_p2
+__364:
+ ;
+ goto __9
+
+__71:
+ ;
+ pC1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ if !(pC1 != 0 && (*VdbeCursor)(unsafe.Pointer(pC1)).FnullRow != 0) {
+ goto __365
+ }
+ Xsqlite3VdbeMemSetNull(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)
+ goto jump_to_p2
+__365:
+ ;
+ goto __9
+
+__72:
+ ;
+ pC2 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ pOut = (*Vdbe)(unsafe.Pointer(p)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !(pC2 == uintptr(0) || int32((*VdbeCursor)(unsafe.Pointer(pC2)).FeCurType) != CURTYPE_BTREE) {
+ goto __366
+ }
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ goto __367
+__366:
+ if !((*VdbeCursor)(unsafe.Pointer(pC2)).FdeferredMoveto != 0) {
+ goto __368
+ }
+ rc = Xsqlite3VdbeFinishMoveto(tls, pC2)
+ if !(rc != 0) {
+ goto __369
+ }
+ goto abort_due_to_error
+__369:
+ ;
+__368:
+ ;
+ if !(Xsqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC2 + 48))) != 0) {
+ goto __370
+ }
+ Xsqlite3VdbeMemSetNull(tls, pOut)
+ goto __371
+__370:
+ Xsqlite3VdbeMemSetInt64(tls, pOut, Xsqlite3BtreeOffset(tls, *(*uintptr)(unsafe.Pointer(pC2 + 48))))
+__371:
+ ;
+__367:
+ ;
+ goto __9
+
+__73:
+ ;
+ pC3 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ p22 = U32((*Op)(unsafe.Pointer(pOp)).Fp2)
+
+op_column_restart:
+ ;
+ aOffset = (*VdbeCursor)(unsafe.Pointer(pC3)).FaOffset
+
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FcacheStatus != (*Vdbe)(unsafe.Pointer(p)).FcacheCtr) {
+ goto __372
+ }
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FnullRow != 0) {
+ goto __374
+ }
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC3)).FeCurType) == CURTYPE_PSEUDO && (*VdbeCursor)(unsafe.Pointer(pC3)).FseekResult > 0) {
+ goto __376
+ }
+
+ pReg = aMem + uintptr((*VdbeCursor)(unsafe.Pointer(pC3)).FseekResult)*56
+
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FpayloadSize = libc.AssignPtrUint32(pC3+108, U32((*Mem)(unsafe.Pointer(pReg)).Fn))
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow = (*Mem)(unsafe.Pointer(pReg)).Fz
+ goto __377
+__376:
+ pDest = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ Xsqlite3VdbeMemSetNull(tls, pDest)
+ goto op_column_out
+__377:
+ ;
+ goto __375
+__374:
+ pCrsr = *(*uintptr)(unsafe.Pointer(pC3 + 48))
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FdeferredMoveto != 0) {
+ goto __378
+ }
+
+ if !(*(*uintptr)(unsafe.Pointer(pC3 + 16)) != 0 && libc.AssignUint32(&iMap, *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pC3 + 16)) + uintptr(U32(1)+p22)*4))) > U32(0)) {
+ goto __380
+ }
+ pC3 = (*VdbeCursor)(unsafe.Pointer(pC3)).FpAltCursor
+ p22 = iMap - U32(1)
+ goto op_column_restart
+__380:
+ ;
+ rc = Xsqlite3VdbeFinishMoveto(tls, pC3)
+ if !(rc != 0) {
+ goto __381
+ }
+ goto abort_due_to_error
+__381:
+ ;
+ goto __379
+__378:
+ if !(Xsqlite3BtreeCursorHasMoved(tls, pCrsr) != 0) {
+ goto __382
+ }
+ rc = Xsqlite3VdbeHandleMovedCursor(tls, pC3)
+ if !(rc != 0) {
+ goto __383
+ }
+ goto abort_due_to_error
+__383:
+ ;
+ goto op_column_restart
+__382:
+ ;
+__379:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FpayloadSize = Xsqlite3BtreePayloadSize(tls, pCrsr)
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow = Xsqlite3BtreePayloadFetch(tls, pCrsr, pC3+108)
+
+__375:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FcacheStatus = (*Vdbe)(unsafe.Pointer(p)).FcacheCtr
+ if !(libc.AssignPtrUint32(aOffset, U32(*(*U8)(unsafe.Pointer((*VdbeCursor)(unsafe.Pointer(pC3)).FaRow)))) < U32(0x80)) {
+ goto __384
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset = U32(1)
+ goto __385
+__384:
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset = U32(Xsqlite3GetVarint32(tls, (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow, aOffset))
+__385:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed = U16(0)
+
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FszRow < *(*U32)(unsafe.Pointer(aOffset))) {
+ goto __386
+ }
+
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow = uintptr(0)
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FszRow = U32(0)
+
+ if !(*(*U32)(unsafe.Pointer(aOffset)) > U32(98307) || *(*U32)(unsafe.Pointer(aOffset)) > (*VdbeCursor)(unsafe.Pointer(pC3)).FpayloadSize) {
+ goto __388
+ }
+ goto op_column_corrupt
+__388:
+ ;
+ goto __387
+__386:
+ zData = (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow
+
+ goto op_column_read_header
+__387:
+ ;
+ goto __373
+__372:
+ if !(Xsqlite3BtreeCursorHasMoved(tls, *(*uintptr)(unsafe.Pointer(pC3 + 48))) != 0) {
+ goto __389
+ }
+ rc = Xsqlite3VdbeHandleMovedCursor(tls, pC3)
+ if !(rc != 0) {
+ goto __390
+ }
+ goto abort_due_to_error
+__390:
+ ;
+ goto op_column_restart
+__389:
+ ;
+__373:
+ ;
+ if !(U32((*VdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) <= p22) {
+ goto __391
+ }
+
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset < *(*U32)(unsafe.Pointer(aOffset))) {
+ goto __393
+ }
+
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FaRow == uintptr(0)) {
+ goto __395
+ }
+ libc.X__builtin___memset_chk(tls, bp+232, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp+232, 0))
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, *(*uintptr)(unsafe.Pointer(pC3 + 48)), *(*U32)(unsafe.Pointer(aOffset)), bp+232)
+ if !(rc != SQLITE_OK) {
+ goto __397
+ }
+ goto abort_due_to_error
+__397:
+ ;
+ zData = (*Mem)(unsafe.Pointer(bp + 232)).Fz
+ goto __396
+__395:
+ zData = (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow
+__396:
+ ;
+op_column_read_header:
+ i1 = int32((*VdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed)
+ offset64 = U64(*(*U32)(unsafe.Pointer(aOffset + uintptr(i1)*4)))
+ zHdr = zData + uintptr((*VdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset)
+ zEndHdr = zData + uintptr(*(*U32)(unsafe.Pointer(aOffset)))
+
+__398:
+ if !(libc.AssignPtrUint32(pC3+112+uintptr(i1)*4, libc.AssignPtrUint32(bp+288, U32(*(*U8)(unsafe.Pointer(zHdr))))) < U32(0x80)) {
+ goto __401
+ }
+ zHdr++
+ offset64 = offset64 + U64(Xsqlite3VdbeOneByteSerialTypeLen(tls, uint8(*(*U32)(unsafe.Pointer(bp + 288)))))
+ goto __402
+__401:
+ zHdr += uintptr(Xsqlite3GetVarint32(tls, zHdr, bp+288))
+ *(*U32)(unsafe.Pointer(pC3 + 112 + uintptr(i1)*4)) = *(*U32)(unsafe.Pointer(bp + 288))
+ offset64 = offset64 + U64(Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 288))))
+__402:
+ ;
+ *(*U32)(unsafe.Pointer(aOffset + uintptr(libc.PreIncInt32(&i1, 1))*4)) = U32(offset64 & uint64(0xffffffff))
+ goto __399
+__399:
+ if U32(i1) <= p22 && zHdr < zEndHdr {
+ goto __398
+ }
+ goto __400
+__400:
+ ;
+ if !(zHdr >= zEndHdr && (zHdr > zEndHdr || offset64 != U64((*VdbeCursor)(unsafe.Pointer(pC3)).FpayloadSize)) ||
+ offset64 > U64((*VdbeCursor)(unsafe.Pointer(pC3)).FpayloadSize)) {
+ goto __403
+ }
+ if !(*(*U32)(unsafe.Pointer(aOffset)) == U32(0)) {
+ goto __404
+ }
+ i1 = 0
+ zHdr = zEndHdr
+ goto __405
+__404:
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FaRow == uintptr(0)) {
+ goto __406
+ }
+ Xsqlite3VdbeMemRelease(tls, bp+232)
+__406:
+ ;
+ goto op_column_corrupt
+__405:
+ ;
+__403:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed = U16(i1)
+ (*VdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset = U32((int64(zHdr) - int64(zData)) / 1)
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FaRow == uintptr(0)) {
+ goto __407
+ }
+ Xsqlite3VdbeMemRelease(tls, bp+232)
+__407:
+ ;
+ goto __394
+__393:
+ *(*U32)(unsafe.Pointer(bp + 288)) = U32(0)
+__394:
+ ;
+ if !(U32((*VdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) <= p22) {
+ goto __408
+ }
+ pDest = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -10) {
+ goto __409
+ }
+ Xsqlite3VdbeMemShallowCopy(tls, pDest, *(*uintptr)(unsafe.Pointer(pOp + 16)), MEM_Static)
+ goto __410
+__409:
+ Xsqlite3VdbeMemSetNull(tls, pDest)
+__410:
+ ;
+ goto op_column_out
+__408:
+ ;
+ goto __392
+__391:
+ *(*U32)(unsafe.Pointer(bp + 288)) = *(*U32)(unsafe.Pointer(pC3 + 112 + uintptr(p22)*4))
+__392:
+ ;
+ pDest = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pDest)).Fflags)&(MEM_Agg|MEM_Dyn) != 0) {
+ goto __411
+ }
+ Xsqlite3VdbeMemSetNull(tls, pDest)
+__411:
+ ;
+ if !((*VdbeCursor)(unsafe.Pointer(pC3)).FszRow >= *(*U32)(unsafe.Pointer(aOffset + uintptr(p22+U32(1))*4))) {
+ goto __412
+ }
+
+ zData = (*VdbeCursor)(unsafe.Pointer(pC3)).FaRow + uintptr(*(*U32)(unsafe.Pointer(aOffset + uintptr(p22)*4)))
+ if !(*(*U32)(unsafe.Pointer(bp + 288)) < U32(12)) {
+ goto __414
+ }
+ Xsqlite3VdbeSerialGet(tls, zData, *(*U32)(unsafe.Pointer(bp + 288)), pDest)
+ goto __415
+__414:
+ (*Mem)(unsafe.Pointer(pDest)).Fn = libc.AssignInt32(&len, int32((*(*U32)(unsafe.Pointer(bp + 288))-U32(12))/U32(2)))
+ (*Mem)(unsafe.Pointer(pDest)).Fenc = encoding
+ if !((*Mem)(unsafe.Pointer(pDest)).FszMalloc < len+2) {
+ goto __416
+ }
+ if !(len > *(*int32)(unsafe.Pointer(db + 136))) {
+ goto __418
+ }
+ goto too_big
+__418:
+ ;
+ (*Mem)(unsafe.Pointer(pDest)).Fflags = U16(MEM_Null)
+ if !(Xsqlite3VdbeMemGrow(tls, pDest, len+2, 0) != 0) {
+ goto __419
+ }
+ goto no_mem
+__419:
+ ;
+ goto __417
+__416:
+ (*Mem)(unsafe.Pointer(pDest)).Fz = (*Mem)(unsafe.Pointer(pDest)).FzMalloc
+__417:
+ ;
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pDest)).Fz, zData, uint64(len), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pDest)).Fz, 0))
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pDest)).Fz + uintptr(len))) = int8(0)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pDest)).Fz + uintptr(len+1))) = int8(0)
+ (*Mem)(unsafe.Pointer(pDest)).Fflags = aFlag1[*(*U32)(unsafe.Pointer(bp + 288))&U32(1)]
+__415:
+ ;
+ goto __413
+__412:
+ (*Mem)(unsafe.Pointer(pDest)).Fenc = encoding
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&(OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG) != 0 &&
+ (*(*U32)(unsafe.Pointer(bp + 288)) >= U32(12) && *(*U32)(unsafe.Pointer(bp + 288))&U32(1) == U32(0) || int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_TYPEOFARG != 0) ||
+ libc.AssignInt32(&len, int32(Xsqlite3VdbeSerialTypeLen(tls, *(*U32)(unsafe.Pointer(bp + 288))))) == 0) {
+ goto __420
+ }
+
+ Xsqlite3VdbeSerialGet(tls, uintptr(unsafe.Pointer(&Xsqlite3CtypeMap)), *(*U32)(unsafe.Pointer(bp + 288)), pDest)
+ goto __421
+__420:
+ if !(len > *(*int32)(unsafe.Pointer(db + 136))) {
+ goto __422
+ }
+ goto too_big
+__422:
+ ;
+ rc = Xsqlite3VdbeMemFromBtree(tls, *(*uintptr)(unsafe.Pointer(pC3 + 48)), *(*U32)(unsafe.Pointer(aOffset + uintptr(p22)*4)), uint32(len), pDest)
+ if !(rc != SQLITE_OK) {
+ goto __423
+ }
+ goto abort_due_to_error
+__423:
+ ;
+ Xsqlite3VdbeSerialGet(tls, (*Mem)(unsafe.Pointer(pDest)).Fz, *(*U32)(unsafe.Pointer(bp + 288)), pDest)
+ *(*U16)(unsafe.Pointer(pDest + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Ephem))
+__421:
+ ;
+__413:
+ ;
+op_column_out:
+ ;
+ goto __9
+
+op_column_corrupt:
+ if !((*Op)(unsafe.Pointer(aOp)).Fp3 > 0) {
+ goto __424
+ }
+ pOp = aOp + uintptr((*Op)(unsafe.Pointer(aOp)).Fp3-1)*24
+ goto __9
+ goto __425
+__424:
+ rc = Xsqlite3CorruptError(tls, 93317)
+ goto abort_due_to_error
+__425:
+ ;
+__74:
+ ;
+ pTab = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ aCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ i2 = 0
+__426:
+ if !(i2 < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __428
+ }
+ if !(int32((*Column)(unsafe.Pointer(aCol+uintptr(i2)*24)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __429
+ }
+ if !(int32((*Column)(unsafe.Pointer(aCol+uintptr(i2)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __430
+ }
+ goto __427
+__430:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __431
+ }
+ pIn1 += 56
+ goto __427
+__431:
+ ;
+__429:
+ ;
+ applyAffinity(tls, pIn1, (*Column)(unsafe.Pointer(aCol+uintptr(i2)*24)).Faffinity, encoding)
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Null == 0) {
+ goto __432
+ }
+ switch int32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*24 + 8)) & 0xf0 >> 4) {
+ case COLTYPE_BLOB:
+ goto __434
+ case COLTYPE_INTEGER:
+ goto __435
+ case COLTYPE_INT:
+ goto __436
+ case COLTYPE_TEXT:
+ goto __437
+ case COLTYPE_REAL:
+ goto __438
+ default:
+ goto __439
+ }
+ goto __433
+__434:
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Blob == 0) {
+ goto __440
+ }
+ goto vdbe_type_error
+__440:
+ ;
+ goto __433
+
+__435:
+__436:
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int == 0) {
+ goto __441
+ }
+ goto vdbe_type_error
+__441:
+ ;
+ goto __433
+
+__437:
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Str == 0) {
+ goto __442
+ }
+ goto vdbe_type_error
+__442:
+ ;
+ goto __433
+
+__438:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int != 0) {
+ goto __443
+ }
+
+ if !(*(*I64)(unsafe.Pointer(pIn1)) <= 140737488355327 && *(*I64)(unsafe.Pointer(pIn1)) >= -140737488355328) {
+ goto __445
+ }
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) |= U16(MEM_IntReal)
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+ goto __446
+__445:
+ *(*float64)(unsafe.Pointer(pIn1)) = float64(*(*I64)(unsafe.Pointer(pIn1)))
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) |= U16(MEM_Real)
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+__446:
+ ;
+ goto __444
+__443:
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&(MEM_Real|MEM_IntReal) == 0) {
+ goto __447
+ }
+ goto vdbe_type_error
+__447:
+ ;
+__444:
+ ;
+ goto __433
+
+__439:
+ goto __433
+
+__433:
+ ;
+__432:
+ ;
+ pIn1 += 56
+ goto __427
+__427:
+ i2++
+ goto __426
+ goto __428
+__428:
+ ;
+ goto __9
+
+vdbe_type_error:
+ Xsqlite3VdbeError(tls, p, ts+5886,
+ libc.VaList(bp+56, vdbeMemTypeName(tls, pIn1), Xsqlite3StdType[(int32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*24 + 8))&0xf0>>4)-1)&0xf<<28>>28],
+ (*Table)(unsafe.Pointer(pTab)).FzName, (*Column)(unsafe.Pointer(aCol+uintptr(i2)*24)).FzCnName))
+ rc = SQLITE_CONSTRAINT | int32(12)<<8
+ goto abort_due_to_error
+
+__75:
+ zAffinity = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+__448:
+ if !(1 != 0) {
+ goto __449
+ }
+
+ applyAffinity(tls, pIn1, *(*int8)(unsafe.Pointer(zAffinity)), encoding)
+ if !(int32(*(*int8)(unsafe.Pointer(zAffinity))) == SQLITE_AFF_REAL && int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Int != 0) {
+ goto __450
+ }
+
+ if !(*(*I64)(unsafe.Pointer(pIn1)) <= 140737488355327 && *(*I64)(unsafe.Pointer(pIn1)) >= -140737488355328) {
+ goto __451
+ }
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) |= U16(MEM_IntReal)
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+ goto __452
+__451:
+ *(*float64)(unsafe.Pointer(pIn1)) = float64(*(*I64)(unsafe.Pointer(pIn1)))
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) |= U16(MEM_Real)
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+__452:
+ ;
+__450:
+ ;
+ zAffinity++
+ if !(int32(*(*int8)(unsafe.Pointer(zAffinity))) == 0) {
+ goto __453
+ }
+ goto __449
+__453:
+ ;
+ pIn1 += 56
+ goto __448
+__449:
+ ;
+ goto __9
+
+__76:
+ nData = uint64(0)
+ nHdr = 0
+ nZero = int64(0)
+ nField = (*Op)(unsafe.Pointer(pOp)).Fp1
+ zAffinity1 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ pData0 = aMem + uintptr(nField)*56
+ nField = (*Op)(unsafe.Pointer(pOp)).Fp2
+ pLast = pData0 + uintptr(nField-1)*56
+
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !(zAffinity1 != 0) {
+ goto __454
+ }
+ pRec = pData0
+__455:
+ applyAffinity(tls, pRec, *(*int8)(unsafe.Pointer(zAffinity1)), encoding)
+ if !(int32(*(*int8)(unsafe.Pointer(zAffinity1))) == SQLITE_AFF_REAL && int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Int != 0) {
+ goto __458
+ }
+ *(*U16)(unsafe.Pointer(pRec + 20)) |= U16(MEM_IntReal)
+ *(*U16)(unsafe.Pointer(pRec + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Int))
+__458:
+ ;
+ zAffinity1++
+ pRec += 56
+
+ goto __456
+__456:
+ if *(*int8)(unsafe.Pointer(zAffinity1)) != 0 {
+ goto __455
+ }
+ goto __457
+__457:
+ ;
+__454:
+ ;
+ pRec = pLast
+__459:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Null != 0) {
+ goto __462
+ }
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Zero != 0) {
+ goto __464
+ }
+
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(10)
+ goto __465
+__464:
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(0)
+__465:
+ ;
+ nHdr++
+ goto __463
+__462:
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&(MEM_Int|MEM_IntReal) != 0) {
+ goto __466
+ }
+
+ i3 = *(*I64)(unsafe.Pointer(pRec))
+
+ if !(i3 < int64(0)) {
+ goto __468
+ }
+ uu = U64(^i3)
+ goto __469
+__468:
+ uu = U64(i3)
+__469:
+ ;
+ nHdr++
+
+ if !(uu <= uint64(127)) {
+ goto __470
+ }
+ if !(i3&int64(1) == i3 && int32((*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat) >= 4) {
+ goto __472
+ }
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(8) + U32(uu)
+ goto __473
+__472:
+ nData++
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(1)
+__473:
+ ;
+ goto __471
+__470:
+ if !(uu <= uint64(32767)) {
+ goto __474
+ }
+ nData = nData + uint64(2)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(2)
+ goto __475
+__474:
+ if !(uu <= uint64(8388607)) {
+ goto __476
+ }
+ nData = nData + uint64(3)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(3)
+ goto __477
+__476:
+ if !(uu <= uint64(2147483647)) {
+ goto __478
+ }
+ nData = nData + uint64(4)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(4)
+ goto __479
+__478:
+ if !(uu <= uint64(140737488355327)) {
+ goto __480
+ }
+ nData = nData + uint64(6)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(5)
+ goto __481
+__480:
+ nData = nData + uint64(8)
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_IntReal != 0) {
+ goto __482
+ }
+
+ *(*float64)(unsafe.Pointer(pRec)) = float64(*(*I64)(unsafe.Pointer(pRec)))
+ *(*U16)(unsafe.Pointer(pRec + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_IntReal))
+ *(*U16)(unsafe.Pointer(pRec + 20)) |= U16(MEM_Real)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(7)
+ goto __483
+__482:
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(6)
+__483:
+ ;
+__481:
+ ;
+__479:
+ ;
+__477:
+ ;
+__475:
+ ;
+__471:
+ ;
+ goto __467
+__466:
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Real != 0) {
+ goto __484
+ }
+ nHdr++
+ nData = nData + uint64(8)
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = U32(7)
+ goto __485
+__484:
+ ;
+ len1 = U32((*Mem)(unsafe.Pointer(pRec)).Fn)
+ serial_type = len1*U32(2) + U32(12) + U32(libc.Bool32(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Str != 0))
+ if !(int32((*Mem)(unsafe.Pointer(pRec)).Fflags)&MEM_Zero != 0) {
+ goto __486
+ }
+ serial_type = serial_type + U32(*(*int32)(unsafe.Pointer(pRec))*2)
+ if !(nData != 0) {
+ goto __487
+ }
+ if !(Xsqlite3VdbeMemExpandBlob(tls, pRec) != 0) {
+ goto __489
+ }
+ goto no_mem
+__489:
+ ;
+ len1 = len1 + U32(*(*int32)(unsafe.Pointer(pRec)))
+ goto __488
+__487:
+ nZero = nZero + I64(*(*int32)(unsafe.Pointer(pRec)))
+__488:
+ ;
+__486:
+ ;
+ nData = nData + U64(len1)
+ nHdr = nHdr + Xsqlite3VarintLen(tls, uint64(serial_type))
+ (*Mem)(unsafe.Pointer(pRec)).FuTemp = serial_type
+__485:
+ ;
+__467:
+ ;
+__463:
+ ;
+ if !(pRec == pData0) {
+ goto __490
+ }
+ goto __461
+__490:
+ ;
+ pRec -= 56
+ goto __460
+__460:
+ if 1 != 0 {
+ goto __459
+ }
+ goto __461
+__461:
+ ;
+ if !(nHdr <= 126) {
+ goto __491
+ }
+
+ nHdr = nHdr + 1
+ goto __492
+__491:
+ nVarint = Xsqlite3VarintLen(tls, uint64(nHdr))
+ nHdr = nHdr + nVarint
+ if !(nVarint < Xsqlite3VarintLen(tls, uint64(nHdr))) {
+ goto __493
+ }
+ nHdr++
+__493:
+ ;
+__492:
+ ;
+ nByte1 = I64(U64(nHdr) + nData)
+
+ if !(nByte1+nZero <= I64((*Mem)(unsafe.Pointer(pOut)).FszMalloc)) {
+ goto __494
+ }
+
+ (*Mem)(unsafe.Pointer(pOut)).Fz = (*Mem)(unsafe.Pointer(pOut)).FzMalloc
+ goto __495
+__494:
+ if !(nByte1+nZero > I64(*(*int32)(unsafe.Pointer(db + 136)))) {
+ goto __496
+ }
+ goto too_big
+__496:
+ ;
+ if !(Xsqlite3VdbeMemClearAndResize(tls, pOut, int32(nByte1)) != 0) {
+ goto __497
+ }
+ goto no_mem
+__497:
+ ;
+__495:
+ ;
+ (*Mem)(unsafe.Pointer(pOut)).Fn = int32(nByte1)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Blob)
+ if !(nZero != 0) {
+ goto __498
+ }
+ *(*int32)(unsafe.Pointer(pOut)) = int32(nZero)
+ *(*U16)(unsafe.Pointer(pOut + 20)) |= U16(MEM_Zero)
+__498:
+ ;
+ zHdr1 = (*Mem)(unsafe.Pointer(pOut)).Fz
+ zPayload = zHdr1 + uintptr(nHdr)
+
+ if !(nHdr < 0x80) {
+ goto __499
+ }
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&zHdr1, 1))) = U8(nHdr)
+ goto __500
+__499:
+ zHdr1 += uintptr(Xsqlite3PutVarint(tls, zHdr1, uint64(nHdr)))
+__500:
+ ;
+ pRec = pData0
+__501:
+ if !(1 != 0) {
+ goto __502
+ }
+ serial_type = (*Mem)(unsafe.Pointer(pRec)).FuTemp
+
+ if !(serial_type <= U32(7)) {
+ goto __503
+ }
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&zHdr1, 1))) = U8(serial_type)
+ if !(serial_type == U32(0)) {
+ goto __505
+ }
+
+ goto __506
+__505:
+ if !(serial_type == U32(7)) {
+ goto __507
+ }
+
+ libc.X__builtin___memcpy_chk(tls, bp+296, pRec, uint64(unsafe.Sizeof(U64(0))), libc.X__builtin_object_size(tls, bp+296, 0))
+
+ goto __508
+__507:
+ *(*U64)(unsafe.Pointer(bp + 296)) = U64(*(*I64)(unsafe.Pointer(pRec)))
+__508:
+ ;
+ len1 = libc.AssignUint32(&i4, U32(Xsqlite3SmallTypeSizes[serial_type]))
+
+__509:
+ if !(1 != 0) {
+ goto __510
+ }
+ *(*U8)(unsafe.Pointer(zPayload + uintptr(libc.PreDecUint32(&i4, 1)))) = U8(*(*U64)(unsafe.Pointer(bp + 296)) & uint64(0xFF))
+ if !(i4 == U32(0)) {
+ goto __511
+ }
+ goto __510
+__511:
+ ;
+ *(*U64)(unsafe.Pointer(bp + 296)) >>= 8
+ goto __509
+__510:
+ ;
+ zPayload += uintptr(len1)
+__506:
+ ;
+ goto __504
+__503:
+ if !(serial_type < U32(0x80)) {
+ goto __512
+ }
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&zHdr1, 1))) = U8(serial_type)
+ if !(serial_type >= U32(14) && (*Mem)(unsafe.Pointer(pRec)).Fn > 0) {
+ goto __514
+ }
+
+ libc.X__builtin___memcpy_chk(tls, zPayload, (*Mem)(unsafe.Pointer(pRec)).Fz, uint64((*Mem)(unsafe.Pointer(pRec)).Fn), libc.X__builtin_object_size(tls, zPayload, 0))
+ zPayload += uintptr((*Mem)(unsafe.Pointer(pRec)).Fn)
+__514:
+ ;
+ goto __513
+__512:
+ zHdr1 += uintptr(Xsqlite3PutVarint(tls, zHdr1, uint64(serial_type)))
+ if !((*Mem)(unsafe.Pointer(pRec)).Fn != 0) {
+ goto __515
+ }
+
+ libc.X__builtin___memcpy_chk(tls, zPayload, (*Mem)(unsafe.Pointer(pRec)).Fz, uint64((*Mem)(unsafe.Pointer(pRec)).Fn), libc.X__builtin_object_size(tls, zPayload, 0))
+ zPayload += uintptr((*Mem)(unsafe.Pointer(pRec)).Fn)
+__515:
+ ;
+__513:
+ ;
+__504:
+ ;
+ if !(pRec == pLast) {
+ goto __516
+ }
+ goto __502
+__516:
+ ;
+ pRec += 56
+ goto __501
+__502:
+ ;
+ goto __9
+
+__77:
+ ;
+ pCrsr1 = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)) + 48))
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __517
+ }
+ *(*I64)(unsafe.Pointer(bp + 304)) = Xsqlite3BtreeRowCountEst(tls, pCrsr1)
+ goto __518
+__517:
+ *(*I64)(unsafe.Pointer(bp + 304)) = int64(0)
+ rc = Xsqlite3BtreeCount(tls, db, pCrsr1, bp+304)
+ if !(rc != 0) {
+ goto __519
+ }
+ goto abort_due_to_error
+__519:
+ ;
+__518:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 304))
+ goto check_for_interrupt
+
+__78:
+ p12 = (*Op)(unsafe.Pointer(pOp)).Fp1
+ zName = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ if !(p12 == SAVEPOINT_BEGIN) {
+ goto __520
+ }
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0) {
+ goto __522
+ }
+
+ Xsqlite3VdbeError(tls, p, ts+5927, 0)
+ rc = SQLITE_BUSY
+ goto __523
+__522:
+ nName = Xsqlite3Strlen30(tls, zName)
+
+ rc = Xsqlite3VtabSavepoint(tls, db, SAVEPOINT_BEGIN,
+ (*Sqlite3)(unsafe.Pointer(db)).FnStatement+(*Sqlite3)(unsafe.Pointer(db)).FnSavepoint)
+ if !(rc != SQLITE_OK) {
+ goto __524
+ }
+ goto abort_due_to_error
+__524:
+ ;
+ pNew = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Savepoint{}))+uint64(nName)+uint64(1))
+ if !(pNew != 0) {
+ goto __525
+ }
+ (*Savepoint)(unsafe.Pointer(pNew)).FzName = pNew + 1*32
+ libc.X__builtin___memcpy_chk(tls, (*Savepoint)(unsafe.Pointer(pNew)).FzName, zName, uint64(nName+1), libc.X__builtin_object_size(tls, (*Savepoint)(unsafe.Pointer(pNew)).FzName, 0))
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0) {
+ goto __526
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint = U8(1)
+ goto __527
+__526:
+ (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint++
+__527:
+ ;
+ (*Savepoint)(unsafe.Pointer(pNew)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
+ (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = pNew
+ (*Savepoint)(unsafe.Pointer(pNew)).FnDeferredCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons
+ (*Savepoint)(unsafe.Pointer(pNew)).FnDeferredImmCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons
+__525:
+ ;
+__523:
+ ;
+ goto __521
+__520:
+ ;
+ iSavepoint = 0
+
+ pSavepoint = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
+__528:
+ if !(pSavepoint != 0 && Xsqlite3StrICmp(tls, (*Savepoint)(unsafe.Pointer(pSavepoint)).FzName, zName) != 0) {
+ goto __530
+ }
+ iSavepoint++
+ goto __529
+__529:
+ pSavepoint = (*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext
+ goto __528
+ goto __530
+__530:
+ ;
+ if !!(pSavepoint != 0) {
+ goto __531
+ }
+ Xsqlite3VdbeError(tls, p, ts+5978, libc.VaList(bp+88, zName))
+ rc = SQLITE_ERROR
+ goto __532
+__531:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0 && p12 == SAVEPOINT_RELEASE) {
+ goto __533
+ }
+
+ Xsqlite3VdbeError(tls, p,
+ ts+6000, 0)
+ rc = SQLITE_BUSY
+ goto __534
+__533:
+ isTransaction = libc.Bool32((*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext == uintptr(0) && (*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint != 0)
+ if !(isTransaction != 0 && p12 == SAVEPOINT_RELEASE) {
+ goto __535
+ }
+ if !(libc.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 1)) != SQLITE_OK) {
+ goto __537
+ }
+ goto vdbe_return
+__537:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ if !(Xsqlite3VdbeHalt(tls, p) == SQLITE_BUSY) {
+ goto __538
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
+ (*Vdbe)(unsafe.Pointer(p)).Frc = libc.AssignInt32(&rc, SQLITE_BUSY)
+ goto vdbe_return
+__538:
+ ;
+ rc = (*Vdbe)(unsafe.Pointer(p)).Frc
+ if !(rc != 0) {
+ goto __539
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(0)
+ goto __540
+__539:
+ (*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint = U8(0)
+__540:
+ ;
+ goto __536
+__535:
+ iSavepoint = (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint - iSavepoint - 1
+ if !(p12 == SAVEPOINT_ROLLBACK) {
+ goto __541
+ }
+ isSchemaChange = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_SchemaChange) != U32(0))
+ ii = 0
+__543:
+ if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __545
+ }
+ rc = Xsqlite3BtreeTripAllCursors(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt,
+ SQLITE_ABORT|int32(2)<<8,
+ libc.Bool32(isSchemaChange == 0))
+ if !(rc != SQLITE_OK) {
+ goto __546
+ }
+ goto abort_due_to_error
+__546:
+ ;
+ goto __544
+__544:
+ ii++
+ goto __543
+ goto __545
+__545:
+ ;
+ goto __542
+__541:
+ ;
+ isSchemaChange = 0
+__542:
+ ;
+ ii = 0
+__547:
+ if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __549
+ }
+ rc = Xsqlite3BtreeSavepoint(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt, p12, iSavepoint)
+ if !(rc != SQLITE_OK) {
+ goto __550
+ }
+ goto abort_due_to_error
+__550:
+ ;
+ goto __548
+__548:
+ ii++
+ goto __547
+ goto __549
+__549:
+ ;
+ if !(isSchemaChange != 0) {
+ goto __551
+ }
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+__551:
+ ;
+__536:
+ ;
+ if !(rc != 0) {
+ goto __552
+ }
+ goto abort_due_to_error
+__552:
+ ;
+__553:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FpSavepoint != pSavepoint) {
+ goto __554
+ }
+ pTmp = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
+ (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = (*Savepoint)(unsafe.Pointer(pTmp)).FpNext
+ Xsqlite3DbFree(tls, db, pTmp)
+ (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint--
+ goto __553
+__554:
+ ;
+ if !(p12 == SAVEPOINT_RELEASE) {
+ goto __555
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = (*Savepoint)(unsafe.Pointer(pSavepoint)).FpNext
+ Xsqlite3DbFree(tls, db, pSavepoint)
+ if !!(isTransaction != 0) {
+ goto __557
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint--
+__557:
+ ;
+ goto __556
+__555:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons = (*Savepoint)(unsafe.Pointer(pSavepoint)).FnDeferredCons
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = (*Savepoint)(unsafe.Pointer(pSavepoint)).FnDeferredImmCons
+__556:
+ ;
+ if !(!(isTransaction != 0) || p12 == SAVEPOINT_ROLLBACK) {
+ goto __558
+ }
+ rc = Xsqlite3VtabSavepoint(tls, db, p12, iSavepoint)
+ if !(rc != SQLITE_OK) {
+ goto __559
+ }
+ goto abort_due_to_error
+__559:
+ ;
+__558:
+ ;
+__534:
+ ;
+__532:
+ ;
+__521:
+ ;
+ if !(rc != 0) {
+ goto __560
+ }
+ goto abort_due_to_error
+__560:
+ ;
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) == VDBE_HALT_STATE) {
+ goto __561
+ }
+ rc = SQLITE_DONE
+ goto vdbe_return
+__561:
+ ;
+ goto __9
+
+__79:
+ desiredAutoCommit = (*Op)(unsafe.Pointer(pOp)).Fp1
+ iRollback = (*Op)(unsafe.Pointer(pOp)).Fp2
+
+ if !(desiredAutoCommit != int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit)) {
+ goto __562
+ }
+ if !(iRollback != 0) {
+ goto __564
+ }
+
+ Xsqlite3RollbackAll(tls, db, SQLITE_ABORT|int32(2)<<8)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ goto __565
+__564:
+ if !(desiredAutoCommit != 0 && (*Sqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0) {
+ goto __566
+ }
+
+ Xsqlite3VdbeError(tls, p,
+ ts+6054, 0)
+ rc = SQLITE_BUSY
+ goto abort_due_to_error
+ goto __567
+__566:
+ if !(libc.AssignInt32(&rc, Xsqlite3VdbeCheckFk(tls, p, 1)) != SQLITE_OK) {
+ goto __568
+ }
+ goto vdbe_return
+ goto __569
+__568:
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(desiredAutoCommit)
+__569:
+ ;
+__567:
+ ;
+__565:
+ ;
+ if !(Xsqlite3VdbeHalt(tls, p) == SQLITE_BUSY) {
+ goto __570
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24)
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1 - desiredAutoCommit)
+ (*Vdbe)(unsafe.Pointer(p)).Frc = libc.AssignInt32(&rc, SQLITE_BUSY)
+ goto vdbe_return
+__570:
+ ;
+ Xsqlite3CloseSavepoints(tls, db)
+ if !((*Vdbe)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __571
+ }
+ rc = SQLITE_DONE
+ goto __572
+__571:
+ rc = SQLITE_ERROR
+__572:
+ ;
+ goto vdbe_return
+ goto __563
+__562:
+ Xsqlite3VdbeError(tls, p,
+ func() uintptr {
+ if !(desiredAutoCommit != 0) {
+ return ts + 6109
+ }
+ return func() uintptr {
+ if iRollback != 0 {
+ return ts + 6157
+ }
+ return ts + 6200
+ }()
+ }(), 0)
+
+ rc = SQLITE_ERROR
+ goto abort_due_to_error
+__563:
+ ;
+__80:
+ *(*int32)(unsafe.Pointer(bp + 312)) = 0
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 != 0 && (*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(SQLITE_QueryOnly)|uint64(0x00002)<<32) != uint64(0)) {
+ goto __573
+ }
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_QueryOnly) != 0) {
+ goto __574
+ }
+
+ rc = SQLITE_READONLY
+ goto __575
+__574:
+ rc = SQLITE_CORRUPT
+__575:
+ ;
+ goto abort_due_to_error
+__573:
+ ;
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32
+ pBt = (*Db)(unsafe.Pointer(pDb)).FpBt
+
+ if !(pBt != 0) {
+ goto __576
+ }
+ rc = Xsqlite3BtreeBeginTrans(tls, pBt, (*Op)(unsafe.Pointer(pOp)).Fp2, bp+312)
+
+ if !(rc != SQLITE_OK) {
+ goto __577
+ }
+ if !(rc&0xff == SQLITE_BUSY) {
+ goto __578
+ }
+ (*Vdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24)
+ (*Vdbe)(unsafe.Pointer(p)).Frc = rc
+ goto vdbe_return
+__578:
+ ;
+ goto abort_due_to_error
+__577:
+ ;
+ if !(Bft(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x20>>5)) != 0 &&
+ (*Op)(unsafe.Pointer(pOp)).Fp2 != 0 &&
+ (int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0 || (*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > 1)) {
+ goto __579
+ }
+
+ if !((*Vdbe)(unsafe.Pointer(p)).FiStatement == 0) {
+ goto __580
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FnStatement++
+ (*Vdbe)(unsafe.Pointer(p)).FiStatement = (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint + (*Sqlite3)(unsafe.Pointer(db)).FnStatement
+__580:
+ ;
+ rc = Xsqlite3VtabSavepoint(tls, db, SAVEPOINT_BEGIN, (*Vdbe)(unsafe.Pointer(p)).FiStatement-1)
+ if !(rc == SQLITE_OK) {
+ goto __581
+ }
+ rc = Xsqlite3BtreeBeginStmt(tls, pBt, (*Vdbe)(unsafe.Pointer(p)).FiStatement)
+__581:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).FnStmtDefCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons
+ (*Vdbe)(unsafe.Pointer(p)).FnStmtDefImmCons = (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons
+__579:
+ ;
+__576:
+ ;
+ if !(rc == SQLITE_OK &&
+ (*Op)(unsafe.Pointer(pOp)).Fp5 != 0 &&
+ (*(*int32)(unsafe.Pointer(bp + 312)) != (*Op)(unsafe.Pointer(pOp)).Fp3 || (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).FiGeneration != *(*int32)(unsafe.Pointer(pOp + 16)))) {
+ goto __582
+ }
+
+ Xsqlite3DbFree(tls, db, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg)
+ (*Vdbe)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3DbStrDup(tls, db, ts+6241)
+
+ if !((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpSchema)).Fschema_cookie != *(*int32)(unsafe.Pointer(bp + 312))) {
+ goto __583
+ }
+ Xsqlite3ResetOneSchema(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1)
+__583:
+ ;
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(1), 0, 0x3)
+ rc = SQLITE_SCHEMA
+
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 4, 0x10)
+__582:
+ ;
+ if !(rc != 0) {
+ goto __584
+ }
+ goto abort_due_to_error
+__584:
+ ;
+ goto __9
+
+__81:
+ ;
+ iDb = (*Op)(unsafe.Pointer(pOp)).Fp1
+ iCookie = (*Op)(unsafe.Pointer(pOp)).Fp3
+
+ Xsqlite3BtreeGetMeta(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpBt, iCookie, bp+316)
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = I64(*(*int32)(unsafe.Pointer(bp + 316)))
+ goto __9
+
+__82:
+ ;
+ pDb1 = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32
+
+ rc = Xsqlite3BtreeUpdateMeta(tls, (*Db)(unsafe.Pointer(pDb1)).FpBt, (*Op)(unsafe.Pointer(pOp)).Fp2, uint32((*Op)(unsafe.Pointer(pOp)).Fp3))
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == BTREE_SCHEMA_VERSION) {
+ goto __585
+ }
+
+ *(*U32)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb1)).FpSchema)) = *(*U32)(unsafe.Pointer(pOp + 12)) - U32((*Op)(unsafe.Pointer(pOp)).Fp5)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+ Xsqlite3FkClearTriggerCache(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1)
+ goto __586
+__585:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == BTREE_FILE_FORMAT) {
+ goto __587
+ }
+
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb1)).FpSchema)).Ffile_format = U8((*Op)(unsafe.Pointer(pOp)).Fp3)
+__587:
+ ;
+__586:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 == 1) {
+ goto __588
+ }
+
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 0, 0x3)
+__588:
+ ;
+ if !(rc != 0) {
+ goto __589
+ }
+ goto abort_due_to_error
+__589:
+ ;
+ goto __9
+
+__83:
+ ;
+ pCur = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ if !(pCur != 0 && (*VdbeCursor)(unsafe.Pointer(pCur)).FpgnoRoot == U32((*Op)(unsafe.Pointer(pOp)).Fp2)) {
+ goto __590
+ }
+
+ Xsqlite3BtreeClearCursor(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)))
+ goto open_cursor_set_hints
+__590:
+ ;
+__84:
+__85:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p + 200))&0x3>>0) == 1) {
+ goto __591
+ }
+ rc = SQLITE_ABORT | int32(2)<<8
+ goto abort_due_to_error
+__591:
+ ;
+ nField1 = 0
+ pKeyInfo1 = uintptr(0)
+ p23 = U32((*Op)(unsafe.Pointer(pOp)).Fp2)
+ iDb1 = (*Op)(unsafe.Pointer(pOp)).Fp3
+
+ pDb2 = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb1)*32
+ pX = (*Db)(unsafe.Pointer(pDb2)).FpBt
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_OpenWrite) {
+ goto __592
+ }
+
+ wrFlag = BTREE_WRCSR | int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_FORDELETE
+
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb2)).FpSchema)).Ffile_format) < int32((*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat)) {
+ goto __594
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat = (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb2)).FpSchema)).Ffile_format
+__594:
+ ;
+ goto __593
+__592:
+ wrFlag = 0
+__593:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_P2ISREG != 0) {
+ goto __595
+ }
+
+ pIn2 = aMem + uintptr(p23)*56
+
+ Xsqlite3VdbeMemIntegerify(tls, pIn2)
+ p23 = U32(int32(*(*I64)(unsafe.Pointer(pIn2))))
+
+__595:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -8) {
+ goto __596
+ }
+ pKeyInfo1 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ nField1 = int32((*KeyInfo)(unsafe.Pointer(pKeyInfo1)).FnAllField)
+ goto __597
+__596:
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -3) {
+ goto __598
+ }
+ nField1 = *(*int32)(unsafe.Pointer(pOp + 16))
+__598:
+ ;
+__597:
+ ;
+ pCur = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, nField1, uint8(CURTYPE_BTREE))
+ if !(pCur == uintptr(0)) {
+ goto __599
+ }
+ goto no_mem
+__599:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCur)).FiDb = I8(iDb1)
+ (*VdbeCursor)(unsafe.Pointer(pCur)).FnullRow = U8(1)
+ libc.SetBitFieldPtr8Uint32(pCur+8, Bool(1), 2, 0x4)
+ (*VdbeCursor)(unsafe.Pointer(pCur)).FpgnoRoot = p23
+ rc = Xsqlite3BtreeCursor(tls, pX, p23, wrFlag, pKeyInfo1, *(*uintptr)(unsafe.Pointer(pCur + 48)))
+ (*VdbeCursor)(unsafe.Pointer(pCur)).FpKeyInfo = pKeyInfo1
+
+ (*VdbeCursor)(unsafe.Pointer(pCur)).FisTable = U8(libc.Bool32(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) != -8))
+
+open_cursor_set_hints:
+ ;
+ Xsqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)),
+ uint32(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&(OPFLAG_BULKCSR|OPFLAG_SEEKEQ)))
+ if !(rc != 0) {
+ goto __600
+ }
+ goto abort_due_to_error
+__600:
+ ;
+ goto __9
+
+__86:
+ pOrig = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*8))
+
+ pCx = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, int32((*VdbeCursor)(unsafe.Pointer(pOrig)).FnField), uint8(CURTYPE_BTREE))
+ if !(pCx == uintptr(0)) {
+ goto __601
+ }
+ goto no_mem
+__601:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FnullRow = U8(1)
+ libc.SetBitFieldPtr8Uint32(pCx+8, Bool(1), 0, 0x1)
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pOrig)).FpKeyInfo
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FisTable = (*VdbeCursor)(unsafe.Pointer(pOrig)).FisTable
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FpgnoRoot = (*VdbeCursor)(unsafe.Pointer(pOrig)).FpgnoRoot
+ libc.SetBitFieldPtr8Uint32(pCx+8, Bool(int32(*(*uint8)(unsafe.Pointer(pOrig + 8))&0x4>>2)), 2, 0x4)
+ *(*uintptr)(unsafe.Pointer(pCx + 16)) = *(*uintptr)(unsafe.Pointer(pOrig + 16))
+ libc.SetBitFieldPtr8Uint32(pCx+8, Bool(1), 3, 0x8)
+ libc.SetBitFieldPtr8Uint32(pOrig+8, Bool(1), 3, 0x8)
+ rc = Xsqlite3BtreeCursor(tls, *(*uintptr)(unsafe.Pointer(pCx + 16)), (*VdbeCursor)(unsafe.Pointer(pCx)).FpgnoRoot, BTREE_WRCSR,
+ (*VdbeCursor)(unsafe.Pointer(pCx)).FpKeyInfo, *(*uintptr)(unsafe.Pointer(pCx + 48)))
+
+ goto __9
+
+__87:
+__88:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 > 0) {
+ goto __602
+ }
+
+ (*Mem)(unsafe.Pointer(aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)).Fn = 0
+ (*Mem)(unsafe.Pointer(aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)).Fz = ts + 1547
+__602:
+ ;
+ pCx1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ if !(pCx1 != 0 && !(int32(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3) != 0) && (*Op)(unsafe.Pointer(pOp)).Fp2 <= int32((*VdbeCursor)(unsafe.Pointer(pCx1)).FnField)) {
+ goto __603
+ }
+
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FseqCount = int64(0)
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FcacheStatus = U32(CACHE_STALE)
+ rc = Xsqlite3BtreeClearTable(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)), int32((*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot), uintptr(0))
+ goto __604
+__603:
+ pCx1 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, uint8(CURTYPE_BTREE))
+ if !(pCx1 == uintptr(0)) {
+ goto __605
+ }
+ goto no_mem
+__605:
+ ;
+ libc.SetBitFieldPtr8Uint32(pCx1+8, Bool(1), 0, 0x1)
+ rc = Xsqlite3BtreeOpen(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, pCx1+16,
+ BTREE_OMIT_JOURNAL|BTREE_SINGLE|int32((*Op)(unsafe.Pointer(pOp)).Fp5),
+ vfsFlags)
+ if !(rc == SQLITE_OK) {
+ goto __606
+ }
+ rc = Xsqlite3BtreeBeginTrans(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)), 1, uintptr(0))
+ if !(rc == SQLITE_OK) {
+ goto __607
+ }
+
+ if !(libc.AssignPtrUintptr(pCx1+56, libc.AssignUintptr(&pKeyInfo2, *(*uintptr)(unsafe.Pointer(pOp + 16)))) != uintptr(0)) {
+ goto __608
+ }
+
+ rc = Xsqlite3BtreeCreateTable(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)), pCx1+68,
+ BTREE_BLOBKEY|int32((*Op)(unsafe.Pointer(pOp)).Fp5))
+ if !(rc == SQLITE_OK) {
+ goto __610
+ }
+
+ rc = Xsqlite3BtreeCursor(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)), (*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot, BTREE_WRCSR,
+ pKeyInfo2, *(*uintptr)(unsafe.Pointer(pCx1 + 48)))
+__610:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FisTable = U8(0)
+ goto __609
+__608:
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FpgnoRoot = Pgno(SCHEMA_ROOT)
+ rc = Xsqlite3BtreeCursor(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)), uint32(SCHEMA_ROOT), BTREE_WRCSR,
+ uintptr(0), *(*uintptr)(unsafe.Pointer(pCx1 + 48)))
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FisTable = U8(1)
+__609:
+ ;
+__607:
+ ;
+ libc.SetBitFieldPtr8Uint32(pCx1+8, Bool(libc.Bool32(int32((*Op)(unsafe.Pointer(pOp)).Fp5) != BTREE_UNORDERED)), 2, 0x4)
+ if !(rc != 0) {
+ goto __611
+ }
+ Xsqlite3BtreeClose(tls, *(*uintptr)(unsafe.Pointer(pCx1 + 16)))
+__611:
+ ;
+__606:
+ ;
+__604:
+ ;
+ if !(rc != 0) {
+ goto __612
+ }
+ goto abort_due_to_error
+__612:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCx1)).FnullRow = U8(1)
+ goto __9
+
+__89:
+ ;
+ pCx2 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, uint8(CURTYPE_SORTER))
+ if !(pCx2 == uintptr(0)) {
+ goto __613
+ }
+ goto no_mem
+__613:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCx2)).FpKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ rc = Xsqlite3VdbeSorterInit(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp3, pCx2)
+ if !(rc != 0) {
+ goto __614
+ }
+ goto abort_due_to_error
+__614:
+ ;
+ goto __9
+
+__90:
+ ;
+ pC4 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(libc.PostIncInt64(&(*VdbeCursor)(unsafe.Pointer(pC4)).FseqCount, 1) == int64(0)) {
+ goto __615
+ }
+ goto jump_to_p2
+__615:
+ ;
+ goto __9
+
+__91:
+ ;
+ pCx3 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp3, uint8(CURTYPE_PSEUDO))
+ if !(pCx3 == uintptr(0)) {
+ goto __616
+ }
+ goto no_mem
+__616:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pCx3)).FnullRow = U8(1)
+ (*VdbeCursor)(unsafe.Pointer(pCx3)).FseekResult = (*Op)(unsafe.Pointer(pOp)).Fp2
+ (*VdbeCursor)(unsafe.Pointer(pCx3)).FisTable = U8(1)
+
+ *(*uintptr)(unsafe.Pointer(pCx3 + 48)) = Xsqlite3BtreeFakeValidCursor(tls)
+
+ goto __9
+
+__92:
+ ;
+ Xsqlite3VdbeFreeCursor(tls, p, *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)))
+ *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)) = uintptr(0)
+ goto __9
+
+__93:
+__94:
+__95:
+__96:
+ ;
+ pC5 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ oc = int32((*Op)(unsafe.Pointer(pOp)).Fopcode)
+ eqOnly = 0
+ (*VdbeCursor)(unsafe.Pointer(pC5)).FnullRow = U8(0)
+
+ (*VdbeCursor)(unsafe.Pointer(pC5)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC5)).FcacheStatus = U32(CACHE_STALE)
+ if !((*VdbeCursor)(unsafe.Pointer(pC5)).FisTable != 0) {
+ goto __617
+ }
+
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ flags31 = (*Mem)(unsafe.Pointer(pIn3)).Fflags
+ if !(int32(flags31)&(MEM_Int|MEM_Real|MEM_IntReal|MEM_Str) == MEM_Str) {
+ goto __619
+ }
+ applyNumericAffinity(tls, pIn3, 0)
+__619:
+ ;
+ iKey = Xsqlite3VdbeIntValue(tls, pIn3)
+ newType = (*Mem)(unsafe.Pointer(pIn3)).Fflags
+ (*Mem)(unsafe.Pointer(pIn3)).Fflags = flags31
+
+ if !(int32(newType)&(MEM_Int|MEM_IntReal) == 0) {
+ goto __620
+ }
+ if !(int32(newType)&MEM_Real == 0) {
+ goto __621
+ }
+ if !(int32(newType)&MEM_Null != 0 || oc >= OP_SeekGE) {
+ goto __622
+ }
+
+ goto jump_to_p2
+ goto __623
+__622:
+ rc = Xsqlite3BtreeLast(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), bp+320)
+ if !(rc != SQLITE_OK) {
+ goto __624
+ }
+ goto abort_due_to_error
+__624:
+ ;
+ goto seek_not_found
+__623:
+ ;
+__621:
+ ;
+ c2 = Xsqlite3IntFloatCompare(tls, iKey, *(*float64)(unsafe.Pointer(pIn3)))
+
+ if !(c2 > 0) {
+ goto __625
+ }
+
+ if !(oc&0x0001 == OP_SeekGT&0x0001) {
+ goto __627
+ }
+ oc--
+__627:
+ ;
+ goto __626
+__625:
+ if !(c2 < 0) {
+ goto __628
+ }
+
+ if !(oc&0x0001 == OP_SeekLT&0x0001) {
+ goto __629
+ }
+ oc++
+__629:
+ ;
+__628:
+ ;
+__626:
+ ;
+__620:
+ ;
+ rc = Xsqlite3BtreeTableMoveto(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), int64(U64(iKey)), 0, bp+320)
+ (*VdbeCursor)(unsafe.Pointer(pC5)).FmovetoTarget = iKey
+ if !(rc != SQLITE_OK) {
+ goto __630
+ }
+ goto abort_due_to_error
+__630:
+ ;
+ goto __618
+__617:
+ if !(Xsqlite3BtreeCursorHasHint(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), uint32(BTREE_SEEK_EQ)) != 0) {
+ goto __631
+ }
+ eqOnly = 1
+
+__631:
+ ;
+ nField2 = *(*int32)(unsafe.Pointer(pOp + 16))
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 328)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC5)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 328)).FnField = U16(nField2)
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 328)).Fdefault_rc = func() int8 {
+ if 1&(oc-OP_SeekLT) != 0 {
+ return int8(-1)
+ }
+ return +int8(1)
+ }()
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 328)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ (*UnpackedRecord)(unsafe.Pointer(bp + 328)).FeqSeen = U8(0)
+ rc = Xsqlite3BtreeIndexMoveto(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), bp+328, bp+320)
+ if !(rc != SQLITE_OK) {
+ goto __632
+ }
+ goto abort_due_to_error
+__632:
+ ;
+ if !(eqOnly != 0 && int32((*UnpackedRecord)(unsafe.Pointer(bp+328)).FeqSeen) == 0) {
+ goto __633
+ }
+
+ goto seek_not_found
+__633:
+ ;
+__618:
+ ;
+ if !(oc >= OP_SeekGE) {
+ goto __634
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 320)) < 0 || *(*int32)(unsafe.Pointer(bp + 320)) == 0 && oc == OP_SeekGT) {
+ goto __636
+ }
+ *(*int32)(unsafe.Pointer(bp + 320)) = 0
+ rc = Xsqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), 0)
+ if !(rc != SQLITE_OK) {
+ goto __638
+ }
+ if !(rc == SQLITE_DONE) {
+ goto __639
+ }
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 320)) = 1
+ goto __640
+__639:
+ goto abort_due_to_error
+__640:
+ ;
+__638:
+ ;
+ goto __637
+__636:
+ *(*int32)(unsafe.Pointer(bp + 320)) = 0
+__637:
+ ;
+ goto __635
+__634:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 320)) > 0 || *(*int32)(unsafe.Pointer(bp + 320)) == 0 && oc == OP_SeekLT) {
+ goto __641
+ }
+ *(*int32)(unsafe.Pointer(bp + 320)) = 0
+ rc = Xsqlite3BtreePrevious(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), 0)
+ if !(rc != SQLITE_OK) {
+ goto __643
+ }
+ if !(rc == SQLITE_DONE) {
+ goto __644
+ }
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 320)) = 1
+ goto __645
+__644:
+ goto abort_due_to_error
+__645:
+ ;
+__643:
+ ;
+ goto __642
+__641:
+ *(*int32)(unsafe.Pointer(bp + 320)) = Xsqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)))
+__642:
+ ;
+__635:
+ ;
+seek_not_found:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 320)) != 0) {
+ goto __646
+ }
+ goto jump_to_p2
+ goto __647
+__646:
+ if !(eqOnly != 0) {
+ goto __648
+ }
+
+ pOp += 24
+__648:
+ ;
+__647:
+ ;
+ goto __9
+
+__97:
+ ;
+ pC6 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp+1*24)).Fp1)*8))
+
+ if !!(Xsqlite3BtreeCursorIsValidNN(tls, *(*uintptr)(unsafe.Pointer(pC6 + 48))) != 0) {
+ goto __649
+ }
+ goto __9
+__649:
+ ;
+ nStep = (*Op)(unsafe.Pointer(pOp)).Fp1
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 368)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC6)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 368)).FnField = U16(*(*int32)(unsafe.Pointer(pOp + 1*24 + 16)))
+ (*UnpackedRecord)(unsafe.Pointer(bp + 368)).Fdefault_rc = int8(0)
+ (*UnpackedRecord)(unsafe.Pointer(bp + 368)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp+1*24)).Fp3)*56
+ *(*int32)(unsafe.Pointer(bp + 408)) = 0
+__650:
+ if !(1 != 0) {
+ goto __651
+ }
+ rc = Xsqlite3VdbeIdxKeyCompare(tls, db, pC6, bp+368, bp+408)
+ if !(rc != 0) {
+ goto __652
+ }
+ goto abort_due_to_error
+__652:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 408)) > 0 && int32((*Op)(unsafe.Pointer(pOp)).Fp5) == 0) {
+ goto __653
+ }
+seekscan_search_fail:
+ ;
+ pOp += 24
+ goto jump_to_p2
+__653:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 408)) >= 0) {
+ goto __654
+ }
+
+ goto jump_to_p2
+ goto __651
+__654:
+ ;
+ if !(nStep <= 0) {
+ goto __655
+ }
+
+ goto __651
+__655:
+ ;
+ nStep--
+ rc = Xsqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC6 + 48)), 0)
+ if !(rc != 0) {
+ goto __656
+ }
+ if !(rc == SQLITE_DONE) {
+ goto __657
+ }
+ rc = SQLITE_OK
+ goto seekscan_search_fail
+ goto __658
+__657:
+ goto abort_due_to_error
+__658:
+ ;
+__656:
+ ;
+ goto __650
+__651:
+ ;
+ goto __9
+
+__98:
+ ;
+ pC7 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC7)).FseekHit) < (*Op)(unsafe.Pointer(pOp)).Fp2) {
+ goto __659
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC7)).FseekHit = U16((*Op)(unsafe.Pointer(pOp)).Fp2)
+ goto __660
+__659:
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC7)).FseekHit) > (*Op)(unsafe.Pointer(pOp)).Fp3) {
+ goto __661
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC7)).FseekHit = U16((*Op)(unsafe.Pointer(pOp)).Fp3)
+__661:
+ ;
+__660:
+ ;
+ goto __9
+
+__99:
+ ;
+ pCur1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(pCur1 == uintptr(0) || (*VdbeCursor)(unsafe.Pointer(pCur1)).FnullRow != 0) {
+ goto __662
+ }
+ goto jump_to_p2_and_check_for_interrupt
+__662:
+ ;
+ goto __9
+
+__100:
+ ;
+ pC8 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC8)).FseekHit) >= *(*int32)(unsafe.Pointer(pOp + 16))) {
+ goto __663
+ }
+ goto __9
+__663:
+ ;
+__101:
+__102:
+__103:
+ ;
+ pC9 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 416)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 416)).FnField = U16(*(*int32)(unsafe.Pointer(pOp + 16)))
+ if !(int32((*UnpackedRecord)(unsafe.Pointer(bp+416)).FnField) > 0) {
+ goto __664
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 416)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC9)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 416)).Fdefault_rc = int8(0)
+ rc = Xsqlite3BtreeIndexMoveto(tls, *(*uintptr)(unsafe.Pointer(pC9 + 48)), bp+416, pC9+36)
+ goto __665
+__664:
+ ;
+ rc = func() int32 {
+ if int32((*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(bp+416)).FaMem)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, (*UnpackedRecord)(unsafe.Pointer(bp+416)).FaMem)
+ }
+ return 0
+ }()
+
+ if !(rc != 0) {
+ goto __666
+ }
+ goto no_mem
+__666:
+ ;
+ pIdxKey = Xsqlite3VdbeAllocUnpackedRecord(tls, (*VdbeCursor)(unsafe.Pointer(pC9)).FpKeyInfo)
+ if !(pIdxKey == uintptr(0)) {
+ goto __667
+ }
+ goto no_mem
+__667:
+ ;
+ Xsqlite3VdbeRecordUnpack(tls, (*VdbeCursor)(unsafe.Pointer(pC9)).FpKeyInfo, (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(bp+416)).FaMem)).Fn, (*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(bp+416)).FaMem)).Fz, pIdxKey)
+ (*UnpackedRecord)(unsafe.Pointer(pIdxKey)).Fdefault_rc = int8(0)
+ rc = Xsqlite3BtreeIndexMoveto(tls, *(*uintptr)(unsafe.Pointer(pC9 + 48)), pIdxKey, pC9+36)
+ Xsqlite3DbFreeNN(tls, db, pIdxKey)
+__665:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __668
+ }
+ goto abort_due_to_error
+__668:
+ ;
+ alreadyExists = libc.Bool32((*VdbeCursor)(unsafe.Pointer(pC9)).FseekResult == 0)
+ (*VdbeCursor)(unsafe.Pointer(pC9)).FnullRow = U8(1 - alreadyExists)
+ (*VdbeCursor)(unsafe.Pointer(pC9)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC9)).FcacheStatus = U32(CACHE_STALE)
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_Found) {
+ goto __669
+ }
+
+ if !(alreadyExists != 0) {
+ goto __671
+ }
+ goto jump_to_p2
+__671:
+ ;
+ goto __670
+__669:
+ if !!(alreadyExists != 0) {
+ goto __672
+ }
+
+ goto jump_to_p2
+__672:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_NoConflict) {
+ goto __673
+ }
+
+ ii1 = 0
+__674:
+ if !(ii1 < int32((*UnpackedRecord)(unsafe.Pointer(bp+416)).FnField)) {
+ goto __676
+ }
+ if !(int32((*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(bp+416)).FaMem+uintptr(ii1)*56)).Fflags)&MEM_Null != 0) {
+ goto __677
+ }
+
+ goto jump_to_p2
+__677:
+ ;
+ goto __675
+__675:
+ ii1++
+ goto __674
+ goto __676
+__676:
+ ;
+__673:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_IfNoHope) {
+ goto __678
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC9)).FseekHit = U16(*(*int32)(unsafe.Pointer(pOp + 16)))
+__678:
+ ;
+__670:
+ ;
+ goto __9
+
+__104:
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn3)).Fflags)&(MEM_Int|MEM_IntReal) == 0) {
+ goto __679
+ }
+
+ *(*Mem)(unsafe.Pointer(bp + 456)) = *(*Mem)(unsafe.Pointer(pIn3))
+ applyAffinity(tls, bp+456, int8(SQLITE_AFF_NUMERIC), encoding)
+ if !(int32((*Mem)(unsafe.Pointer(bp+456)).Fflags)&MEM_Int == 0) {
+ goto __680
+ }
+ goto jump_to_p2
+__680:
+ ;
+ iKey1 = U64(*(*I64)(unsafe.Pointer(bp + 456)))
+ goto notExistsWithKey
+__679:
+ ;
+__105:
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ iKey1 = U64(*(*I64)(unsafe.Pointer(pIn3)))
+notExistsWithKey:
+ pC10 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pCrsr2 = *(*uintptr)(unsafe.Pointer(pC10 + 48))
+
+ *(*int32)(unsafe.Pointer(bp + 512)) = 0
+ rc = Xsqlite3BtreeTableMoveto(tls, pCrsr2, int64(iKey1), 0, bp+512)
+
+ (*VdbeCursor)(unsafe.Pointer(pC10)).FmovetoTarget = I64(iKey1)
+ (*VdbeCursor)(unsafe.Pointer(pC10)).FnullRow = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC10)).FcacheStatus = U32(CACHE_STALE)
+ (*VdbeCursor)(unsafe.Pointer(pC10)).FdeferredMoveto = U8(0)
+
+ (*VdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 512))
+ if !(*(*int32)(unsafe.Pointer(bp + 512)) != 0) {
+ goto __681
+ }
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 == 0) {
+ goto __682
+ }
+ rc = Xsqlite3CorruptError(tls, 95560)
+ goto __683
+__682:
+ goto jump_to_p2
+__683:
+ ;
+__681:
+ ;
+ if !(rc != 0) {
+ goto __684
+ }
+ goto abort_due_to_error
+__684:
+ ;
+ goto __9
+
+__106:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = libc.PostIncInt64(&(*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8)))).FseqCount, 1)
+ goto __9
+
+__107:
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(0)
+ *(*int32)(unsafe.Pointer(bp + 516)) = 0
+ pOut = out2Prerelease(tls, p, pOp)
+
+ pC11 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !!(int32(*(*uint8)(unsafe.Pointer(pC11 + 8))&0x2>>1) != 0) {
+ goto __685
+ }
+ rc = Xsqlite3BtreeLast(tls, *(*uintptr)(unsafe.Pointer(pC11 + 48)), bp+516)
+ if !(rc != SQLITE_OK) {
+ goto __686
+ }
+ goto abort_due_to_error
+__686:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 516)) != 0) {
+ goto __687
+ }
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(1)
+ goto __688
+__687:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 520)) = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC11 + 48)))
+ if !(*(*I64)(unsafe.Pointer(bp + 520)) >= int64(uint64(0x7fffffff)<<32|uint64(0xffffffff))) {
+ goto __689
+ }
+ libc.SetBitFieldPtr8Uint32(pC11+8, Bool(1), 1, 0x2)
+ goto __690
+__689:
+ *(*I64)(unsafe.Pointer(bp + 520))++
+__690:
+ ;
+__688:
+ ;
+__685:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __691
+ }
+
+ if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
+ goto __692
+ }
+ pFrame1 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+__694:
+ if !((*VdbeFrame)(unsafe.Pointer(pFrame1)).FpParent != 0) {
+ goto __696
+ }
+ goto __695
+__695:
+ pFrame1 = (*VdbeFrame)(unsafe.Pointer(pFrame1)).FpParent
+ goto __694
+ goto __696
+__696:
+ ;
+ pMem = (*VdbeFrame)(unsafe.Pointer(pFrame1)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ goto __693
+__692:
+ ;
+ pMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+__693:
+ ;
+ Xsqlite3VdbeMemIntegerify(tls, pMem)
+
+ if !(*(*I64)(unsafe.Pointer(pMem)) == int64(uint64(0x7fffffff)<<32|uint64(0xffffffff)) || Bool(int32(*(*uint8)(unsafe.Pointer(pC11 + 8))&0x2>>1)) != 0) {
+ goto __697
+ }
+ rc = SQLITE_FULL
+ goto abort_due_to_error
+__697:
+ ;
+ if !(*(*I64)(unsafe.Pointer(bp + 520)) < *(*I64)(unsafe.Pointer(pMem))+int64(1)) {
+ goto __698
+ }
+ *(*I64)(unsafe.Pointer(bp + 520)) = *(*I64)(unsafe.Pointer(pMem)) + int64(1)
+__698:
+ ;
+ *(*I64)(unsafe.Pointer(pMem)) = *(*I64)(unsafe.Pointer(bp + 520))
+__691:
+ ;
+ if !(Bool(int32(*(*uint8)(unsafe.Pointer(pC11 + 8))&0x2>>1)) != 0) {
+ goto __699
+ }
+
+ cnt1 = 0
+__700:
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(I64(0))), bp+520)
+ *(*I64)(unsafe.Pointer(bp + 520)) &= int64(uint64(0x7fffffff)<<32|uint64(0xffffffff)) >> 1
+ *(*I64)(unsafe.Pointer(bp + 520))++
+ goto __701
+__701:
+ if libc.AssignInt32(&rc, Xsqlite3BtreeTableMoveto(tls, *(*uintptr)(unsafe.Pointer(pC11 + 48)), int64(U64(*(*I64)(unsafe.Pointer(bp + 520)))),
+ 0, bp+516)) == SQLITE_OK &&
+ *(*int32)(unsafe.Pointer(bp + 516)) == 0 &&
+ libc.PreIncInt32(&cnt1, 1) < 100 {
+ goto __700
+ }
+ goto __702
+__702:
+ ;
+ if !(rc != 0) {
+ goto __703
+ }
+ goto abort_due_to_error
+__703:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 516)) == 0) {
+ goto __704
+ }
+ rc = SQLITE_FULL
+ goto abort_due_to_error
+__704:
+ ;
+__699:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC11)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC11)).FcacheStatus = U32(CACHE_STALE)
+
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 520))
+ goto __9
+
+__108:
+ pData = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+ pC12 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pKey = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FnKey = *(*I64)(unsafe.Pointer(pKey))
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -5 && ((*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 || (*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0)) {
+ goto __705
+ }
+
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*VdbeCursor)(unsafe.Pointer(pC12)).FiDb)*32)).FzDbSName
+ pTab1 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ goto __706
+__705:
+ pTab1 = uintptr(0)
+ zDb = uintptr(0)
+__706:
+ ;
+ if !(pTab1 != 0) {
+ goto __707
+ }
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 && !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_ISUPDATE != 0)) {
+ goto __708
+ }
+ Xsqlite3VdbePreUpdateHook(tls, p, pC12, SQLITE_INSERT, zDb, pTab1, (*BtreePayload)(unsafe.Pointer(bp+528)).FnKey, (*Op)(unsafe.Pointer(pOp)).Fp2, -1)
+__708:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback == uintptr(0) || (*Table)(unsafe.Pointer(pTab1)).FaCol == uintptr(0)) {
+ goto __709
+ }
+
+ pTab1 = uintptr(0)
+__709:
+ ;
+__707:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_ISNOOP != 0) {
+ goto __710
+ }
+ goto __9
+__710:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_NCHANGE != 0) {
+ goto __711
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FnChange++
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_LASTROWID != 0) {
+ goto __712
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FlastRowid = (*BtreePayload)(unsafe.Pointer(bp + 528)).FnKey
+__712:
+ ;
+__711:
+ ;
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FpData = (*Mem)(unsafe.Pointer(pData)).Fz
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FnData = (*Mem)(unsafe.Pointer(pData)).Fn
+ seekResult = func() int32 {
+ if int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_USESEEKRESULT != 0 {
+ return (*VdbeCursor)(unsafe.Pointer(pC12)).FseekResult
+ }
+ return 0
+ }()
+ if !(int32((*Mem)(unsafe.Pointer(pData)).Fflags)&MEM_Zero != 0) {
+ goto __713
+ }
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FnZero = *(*int32)(unsafe.Pointer(pData))
+ goto __714
+__713:
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FnZero = 0
+__714:
+ ;
+ (*BtreePayload)(unsafe.Pointer(bp + 528)).FpKey = uintptr(0)
+
+ rc = Xsqlite3BtreeInsert(tls, *(*uintptr)(unsafe.Pointer(pC12 + 48)), bp+528,
+ int32((*Op)(unsafe.Pointer(pOp)).Fp5)&(OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT),
+ seekResult)
+ (*VdbeCursor)(unsafe.Pointer(pC12)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC12)).FcacheStatus = U32(CACHE_STALE)
+
+ if !(rc != 0) {
+ goto __715
+ }
+ goto abort_due_to_error
+__715:
+ ;
+ if !(pTab1 != 0) {
+ goto __716
+ }
+
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, Sqlite_int64)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg,
+ func() int32 {
+ if int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_ISUPDATE != 0 {
+ return SQLITE_UPDATE
+ }
+ return SQLITE_INSERT
+ }(),
+ zDb, (*Table)(unsafe.Pointer(pTab1)).FzName, (*BtreePayload)(unsafe.Pointer(bp+528)).FnKey)
+__716:
+ ;
+ goto __9
+
+__109:
+ ;
+ pDest1 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ pSrc = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*8))
+ if (*Op)(unsafe.Pointer(pOp)).Fp3 != 0 {
+ iKey2 = *(*I64)(unsafe.Pointer(aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56))
+ } else {
+ iKey2 = int64(0)
+ }
+ rc = Xsqlite3BtreeTransferRow(tls, *(*uintptr)(unsafe.Pointer(pDest1 + 48)), *(*uintptr)(unsafe.Pointer(pSrc + 48)), iKey2)
+ if !(rc != SQLITE_OK) {
+ goto __717
+ }
+ goto abort_due_to_error
+__717:
+ ;
+ goto __9
+
+__110:
+ opflags = (*Op)(unsafe.Pointer(pOp)).Fp2
+
+ pC13 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp4type) == -5 && ((*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 || (*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0)) {
+ goto __718
+ }
+
+ zDb1 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*VdbeCursor)(unsafe.Pointer(pC13)).FiDb)*32)).FzDbSName
+ pTab2 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_SAVEPOSITION != 0 && (*VdbeCursor)(unsafe.Pointer(pC13)).FisTable != 0) {
+ goto __720
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC13)).FmovetoTarget = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC13 + 48)))
+__720:
+ ;
+ goto __719
+__718:
+ zDb1 = uintptr(0)
+ pTab2 = uintptr(0)
+__719:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 && pTab2 != 0) {
+ goto __721
+ }
+
+ Xsqlite3VdbePreUpdateHook(tls, p, pC13,
+ func() int32 {
+ if opflags&OPFLAG_ISUPDATE != 0 {
+ return SQLITE_UPDATE
+ }
+ return SQLITE_DELETE
+ }(),
+ zDb1, pTab2, (*VdbeCursor)(unsafe.Pointer(pC13)).FmovetoTarget,
+ (*Op)(unsafe.Pointer(pOp)).Fp3, -1)
+__721:
+ ;
+ if !(opflags&OPFLAG_ISNOOP != 0) {
+ goto __722
+ }
+ goto __9
+__722:
+ ;
+ rc = Xsqlite3BtreeDelete(tls, *(*uintptr)(unsafe.Pointer(pC13 + 48)), uint8((*Op)(unsafe.Pointer(pOp)).Fp5))
+ (*VdbeCursor)(unsafe.Pointer(pC13)).FcacheStatus = U32(CACHE_STALE)
+ (*VdbeCursor)(unsafe.Pointer(pC13)).FseekResult = 0
+ if !(rc != 0) {
+ goto __723
+ }
+ goto abort_due_to_error
+__723:
+ ;
+ if !(opflags&OPFLAG_NCHANGE != 0) {
+ goto __724
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FnChange++
+ if !((*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback != 0 && pTab2 != uintptr(0) && (*Table)(unsafe.Pointer(pTab2)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __725
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, Sqlite_int64)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg, SQLITE_DELETE, zDb1, (*Table)(unsafe.Pointer(pTab2)).FzName,
+ (*VdbeCursor)(unsafe.Pointer(pC13)).FmovetoTarget)
+
+__725:
+ ;
+__724:
+ ;
+ goto __9
+
+__111:
+ Xsqlite3VdbeSetChanges(tls, db, (*Vdbe)(unsafe.Pointer(p)).FnChange)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ goto __9
+
+__112:
+ pC14 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ nKeyCol = *(*int32)(unsafe.Pointer(pOp + 16))
+ *(*int32)(unsafe.Pointer(bp + 576)) = 0
+ rc = Xsqlite3VdbeSorterCompare(tls, pC14, pIn3, nKeyCol, bp+576)
+
+ if !(rc != 0) {
+ goto __726
+ }
+ goto abort_due_to_error
+__726:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 576)) != 0) {
+ goto __727
+ }
+ goto jump_to_p2
+__727:
+ ;
+ goto __9
+
+__113:
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ pC15 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ rc = Xsqlite3VdbeSorterRowkey(tls, pC15, pOut)
+
+ if !(rc != 0) {
+ goto __728
+ }
+ goto abort_due_to_error
+__728:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*8)))).FcacheStatus = U32(CACHE_STALE)
+ goto __9
+
+__114:
+ pOut = out2Prerelease(tls, p, pOp)
+
+ pC16 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pCrsr3 = *(*uintptr)(unsafe.Pointer(pC16 + 48))
+
+ n3 = Xsqlite3BtreePayloadSize(tls, pCrsr3)
+ if !(n3 > U32(*(*int32)(unsafe.Pointer(db + 136)))) {
+ goto __729
+ }
+ goto too_big
+__729:
+ ;
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, pCrsr3, n3, pOut)
+ if !(rc != 0) {
+ goto __730
+ }
+ goto abort_due_to_error
+__730:
+ ;
+ if !!((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __731
+ }
+ if !(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&MEM_Ephem != 0 && Xsqlite3VdbeMemMakeWriteable(tls, pOut) != 0) {
+ goto __732
+ }
+ goto no_mem
+__732:
+ ;
+__731:
+ ;
+ goto __9
+
+__115:
+ pOut = out2Prerelease(tls, p, pOp)
+
+ pC17 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !((*VdbeCursor)(unsafe.Pointer(pC17)).FnullRow != 0) {
+ goto __733
+ }
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Null)
+ goto __9
+ goto __734
+__733:
+ if !((*VdbeCursor)(unsafe.Pointer(pC17)).FdeferredMoveto != 0) {
+ goto __735
+ }
+ *(*I64)(unsafe.Pointer(bp + 584)) = (*VdbeCursor)(unsafe.Pointer(pC17)).FmovetoTarget
+ goto __736
+__735:
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC17)).FeCurType) == CURTYPE_VTAB) {
+ goto __737
+ }
+
+ pVtab = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pC17 + 48)))).FpVtab
+ pModule = (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FpModule
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule)).FxRowid})).f(tls, *(*uintptr)(unsafe.Pointer(pC17 + 48)), bp+584)
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab)
+ if !(rc != 0) {
+ goto __739
+ }
+ goto abort_due_to_error
+__739:
+ ;
+ goto __738
+__737:
+ ;
+ rc = Xsqlite3VdbeCursorRestore(tls, pC17)
+ if !(rc != 0) {
+ goto __740
+ }
+ goto abort_due_to_error
+__740:
+ ;
+ if !((*VdbeCursor)(unsafe.Pointer(pC17)).FnullRow != 0) {
+ goto __741
+ }
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Null)
+ goto __9
+__741:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 584)) = Xsqlite3BtreeIntegerKey(tls, *(*uintptr)(unsafe.Pointer(pC17 + 48)))
+__738:
+ ;
+__736:
+ ;
+__734:
+ ;
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 584))
+ goto __9
+
+__116:
+ ;
+ pC18 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ if !(pC18 == uintptr(0)) {
+ goto __742
+ }
+
+ pC18 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, 1, uint8(CURTYPE_PSEUDO))
+ if !(pC18 == uintptr(0)) {
+ goto __743
+ }
+ goto no_mem
+__743:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC18)).FseekResult = 0
+ (*VdbeCursor)(unsafe.Pointer(pC18)).FisTable = U8(1)
+ libc.SetBitFieldPtr8Uint32(pC18+8, Bool(1), 3, 0x8)
+ *(*uintptr)(unsafe.Pointer(pC18 + 48)) = Xsqlite3BtreeFakeValidCursor(tls)
+__742:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC18)).FnullRow = U8(1)
+ (*VdbeCursor)(unsafe.Pointer(pC18)).FcacheStatus = U32(CACHE_STALE)
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC18)).FeCurType) == CURTYPE_BTREE) {
+ goto __744
+ }
+
+ Xsqlite3BtreeClearCursor(tls, *(*uintptr)(unsafe.Pointer(pC18 + 48)))
+__744:
+ ;
+ goto __9
+
+__117:
+__118:
+ ;
+ pC19 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pCrsr4 = *(*uintptr)(unsafe.Pointer(pC19 + 48))
+ *(*int32)(unsafe.Pointer(bp + 592)) = 0
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_SeekEnd) {
+ goto __745
+ }
+
+ (*VdbeCursor)(unsafe.Pointer(pC19)).FseekResult = -1
+ if !(Xsqlite3BtreeCursorIsValidNN(tls, pCrsr4) != 0) {
+ goto __746
+ }
+ goto __9
+__746:
+ ;
+__745:
+ ;
+ rc = Xsqlite3BtreeLast(tls, pCrsr4, bp+592)
+ (*VdbeCursor)(unsafe.Pointer(pC19)).FnullRow = U8(*(*int32)(unsafe.Pointer(bp + 592)))
+ (*VdbeCursor)(unsafe.Pointer(pC19)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC19)).FcacheStatus = U32(CACHE_STALE)
+ if !(rc != 0) {
+ goto __747
+ }
+ goto abort_due_to_error
+__747:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 > 0) {
+ goto __748
+ }
+
+ if !(*(*int32)(unsafe.Pointer(bp + 592)) != 0) {
+ goto __749
+ }
+ goto jump_to_p2
+__749:
+ ;
+__748:
+ ;
+ goto __9
+
+__119:
+ ;
+ pC20 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 48))
+
+ rc = Xsqlite3BtreeFirst(tls, pCrsr5, bp+596)
+ if !(rc != 0) {
+ goto __750
+ }
+ goto abort_due_to_error
+__750:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 596)) == 0) {
+ goto __751
+ }
+ sz = Xsqlite3BtreeRowCountEst(tls, pCrsr5)
+ if !(sz >= int64(0) && int32(Xsqlite3LogEst(tls, U64(sz))) < (*Op)(unsafe.Pointer(pOp)).Fp3) {
+ goto __752
+ }
+ *(*int32)(unsafe.Pointer(bp + 596)) = 1
+__752:
+ ;
+__751:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 596)) != 0) {
+ goto __753
+ }
+ goto jump_to_p2
+__753:
+ ;
+ goto __9
+
+__120:
+__121:
+ *(*U32)(unsafe.Pointer(p + 212 + 2*4))++
+
+__122:
+ ;
+ pC21 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ *(*int32)(unsafe.Pointer(bp + 600)) = 1
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC21)).FeCurType) == CURTYPE_SORTER) {
+ goto __754
+ }
+ rc = Xsqlite3VdbeSorterRewind(tls, pC21, bp+600)
+ goto __755
+__754:
+ ;
+ pCrsr6 = *(*uintptr)(unsafe.Pointer(pC21 + 48))
+
+ rc = Xsqlite3BtreeFirst(tls, pCrsr6, bp+600)
+ (*VdbeCursor)(unsafe.Pointer(pC21)).FdeferredMoveto = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pC21)).FcacheStatus = U32(CACHE_STALE)
+__755:
+ ;
+ if !(rc != 0) {
+ goto __756
+ }
+ goto abort_due_to_error
+__756:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC21)).FnullRow = U8(*(*int32)(unsafe.Pointer(bp + 600)))
+ if !((*Op)(unsafe.Pointer(pOp)).Fp2 > 0) {
+ goto __757
+ }
+
+ if !(*(*int32)(unsafe.Pointer(bp + 600)) != 0) {
+ goto __758
+ }
+ goto jump_to_p2
+__758:
+ ;
+__757:
+ ;
+ goto __9
+
+__123:
+ pC22 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ rc = Xsqlite3VdbeSorterNext(tls, db, pC22)
+ goto next_tail
+
+__124:
+ ;
+ pC22 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ rc = Xsqlite3BtreePrevious(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*Op)(unsafe.Pointer(pOp)).Fp3)
+ goto next_tail
+
+__125:
+ ;
+ pC22 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ rc = Xsqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*Op)(unsafe.Pointer(pOp)).Fp3)
+
+next_tail:
+ (*VdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = U32(CACHE_STALE)
+
+ if !(rc == SQLITE_OK) {
+ goto __759
+ }
+ (*VdbeCursor)(unsafe.Pointer(pC22)).FnullRow = U8(0)
+ *(*U32)(unsafe.Pointer(p + 212 + uintptr((*Op)(unsafe.Pointer(pOp)).Fp5)*4))++
+ goto jump_to_p2_and_check_for_interrupt
+__759:
+ ;
+ if !(rc != SQLITE_DONE) {
+ goto __760
+ }
+ goto abort_due_to_error
+__760:
+ ;
+ rc = SQLITE_OK
+ (*VdbeCursor)(unsafe.Pointer(pC22)).FnullRow = U8(1)
+ goto check_for_interrupt
+
+__126:
+ ;
+ pC23 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_NCHANGE != 0) {
+ goto __761
+ }
+ (*Vdbe)(unsafe.Pointer(p)).FnChange++
+__761:
+ ;
+ rc = func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pIn2)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pIn2)
+ }
+ return 0
+ }()
+ if !(rc != 0) {
+ goto __762
+ }
+ goto abort_due_to_error
+__762:
+ ;
+ (*BtreePayload)(unsafe.Pointer(bp + 608)).FnKey = Sqlite3_int64((*Mem)(unsafe.Pointer(pIn2)).Fn)
+ (*BtreePayload)(unsafe.Pointer(bp + 608)).FpKey = (*Mem)(unsafe.Pointer(pIn2)).Fz
+ (*BtreePayload)(unsafe.Pointer(bp + 608)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ (*BtreePayload)(unsafe.Pointer(bp + 608)).FnMem = U16(*(*int32)(unsafe.Pointer(pOp + 16)))
+ rc = Xsqlite3BtreeInsert(tls, *(*uintptr)(unsafe.Pointer(pC23 + 48)), bp+608,
+ int32((*Op)(unsafe.Pointer(pOp)).Fp5)&(OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT),
+ func() int32 {
+ if int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_USESEEKRESULT != 0 {
+ return (*VdbeCursor)(unsafe.Pointer(pC23)).FseekResult
+ }
+ return 0
+ }())
+
+ (*VdbeCursor)(unsafe.Pointer(pC23)).FcacheStatus = U32(CACHE_STALE)
+ if !(rc != 0) {
+ goto __763
+ }
+ goto abort_due_to_error
+__763:
+ ;
+ goto __9
+
+__127:
+ ;
+ pC24 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+ rc = func() int32 {
+ if int32((*Mem)(unsafe.Pointer(pIn2)).Fflags)&MEM_Zero != 0 {
+ return Xsqlite3VdbeMemExpandBlob(tls, pIn2)
+ }
+ return 0
+ }()
+ if !(rc != 0) {
+ goto __764
+ }
+ goto abort_due_to_error
+__764:
+ ;
+ rc = Xsqlite3VdbeSorterWrite(tls, pC24, pIn2)
+ if !(rc != 0) {
+ goto __765
+ }
+ goto abort_due_to_error
+__765:
+ ;
+ goto __9
+
+__128:
+ ;
+ pC25 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pCrsr7 = *(*uintptr)(unsafe.Pointer(pC25 + 48))
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 656)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC25)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 656)).FnField = U16((*Op)(unsafe.Pointer(pOp)).Fp3)
+ (*UnpackedRecord)(unsafe.Pointer(bp + 656)).Fdefault_rc = int8(0)
+ (*UnpackedRecord)(unsafe.Pointer(bp + 656)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ rc = Xsqlite3BtreeIndexMoveto(tls, pCrsr7, bp+656, bp+696)
+ if !(rc != 0) {
+ goto __766
+ }
+ goto abort_due_to_error
+__766:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 696)) == 0) {
+ goto __767
+ }
+ rc = Xsqlite3BtreeDelete(tls, pCrsr7, uint8(BTREE_AUXDELETE))
+ if !(rc != 0) {
+ goto __769
+ }
+ goto abort_due_to_error
+__769:
+ ;
+ goto __768
+__767:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0 && !(Xsqlite3WritableSchema(tls, db) != 0)) {
+ goto __770
+ }
+ rc = Xsqlite3ReportError(tls, SQLITE_CORRUPT|int32(3)<<8, 96635, ts+6269)
+ goto abort_due_to_error
+__770:
+ ;
+__768:
+ ;
+ (*VdbeCursor)(unsafe.Pointer(pC25)).FcacheStatus = U32(CACHE_STALE)
+ (*VdbeCursor)(unsafe.Pointer(pC25)).FseekResult = 0
+ goto __9
+
+__129:
+__130:
+ ;
+ pC26 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ rc = Xsqlite3VdbeCursorRestore(tls, pC26)
+
+ if !(rc != SQLITE_OK) {
+ goto __771
+ }
+ goto abort_due_to_error
+__771:
+ ;
+ if !!(int32((*VdbeCursor)(unsafe.Pointer(pC26)).FnullRow) != 0) {
+ goto __772
+ }
+ *(*I64)(unsafe.Pointer(bp + 704)) = int64(0)
+ rc = Xsqlite3VdbeIdxRowid(tls, db, *(*uintptr)(unsafe.Pointer(pC26 + 48)), bp+704)
+ if !(rc != SQLITE_OK) {
+ goto __774
+ }
+ goto abort_due_to_error
+__774:
+ ;
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_DeferredSeek) {
+ goto __775
+ }
+
+ pTabCur = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*8))
+
+ (*VdbeCursor)(unsafe.Pointer(pTabCur)).FnullRow = U8(0)
+ (*VdbeCursor)(unsafe.Pointer(pTabCur)).FmovetoTarget = *(*I64)(unsafe.Pointer(bp + 704))
+ (*VdbeCursor)(unsafe.Pointer(pTabCur)).FdeferredMoveto = U8(1)
+ (*VdbeCursor)(unsafe.Pointer(pTabCur)).FcacheStatus = U32(CACHE_STALE)
+
+ *(*uintptr)(unsafe.Pointer(pTabCur + 16)) = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ (*VdbeCursor)(unsafe.Pointer(pTabCur)).FpAltCursor = pC26
+ goto __776
+__775:
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 704))
+__776:
+ ;
+ goto __773
+__772:
+ ;
+ Xsqlite3VdbeMemSetNull(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
+__773:
+ ;
+ goto __9
+
+__131:
+ ;
+ pC27 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ if !((*VdbeCursor)(unsafe.Pointer(pC27)).FdeferredMoveto != 0) {
+ goto __777
+ }
+ rc = Xsqlite3VdbeFinishMoveto(tls, pC27)
+ if !(rc != 0) {
+ goto __778
+ }
+ goto abort_due_to_error
+__778:
+ ;
+__777:
+ ;
+ goto __9
+
+__132:
+__133:
+__134:
+__135:
+ ;
+ pC28 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 768)).FpKeyInfo = (*VdbeCursor)(unsafe.Pointer(pC28)).FpKeyInfo
+ (*UnpackedRecord)(unsafe.Pointer(bp + 768)).FnField = U16(*(*int32)(unsafe.Pointer(pOp + 16)))
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) < OP_IdxLT) {
+ goto __779
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(bp + 768)).Fdefault_rc = int8(-1)
+ goto __780
+__779:
+ ;
+ (*UnpackedRecord)(unsafe.Pointer(bp + 768)).Fdefault_rc = int8(0)
+__780:
+ ;
+ (*UnpackedRecord)(unsafe.Pointer(bp + 768)).FaMem = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ nCellKey = int64(0)
+
+ pCur2 = *(*uintptr)(unsafe.Pointer(pC28 + 48))
+
+ nCellKey = I64(Xsqlite3BtreePayloadSize(tls, pCur2))
+
+ if !(nCellKey <= int64(0) || nCellKey > int64(0x7fffffff)) {
+ goto __781
+ }
+ rc = Xsqlite3CorruptError(tls, 96840)
+ goto abort_due_to_error
+__781:
+ ;
+ Xsqlite3VdbeMemInit(tls, bp+712, db, uint16(0))
+ rc = Xsqlite3VdbeMemFromBtreeZeroOffset(tls, pCur2, U32(nCellKey), bp+712)
+ if !(rc != 0) {
+ goto __782
+ }
+ goto abort_due_to_error
+__782:
+ ;
+ res11 = Xsqlite3VdbeRecordCompareWithSkip(tls, (*Mem)(unsafe.Pointer(bp+712)).Fn, (*Mem)(unsafe.Pointer(bp+712)).Fz, bp+768, 0)
+ Xsqlite3VdbeMemReleaseMalloc(tls, bp+712)
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode)&1 == OP_IdxLT&1) {
+ goto __783
+ }
+
+ res11 = -res11
+ goto __784
+__783:
+ ;
+ res11++
+__784:
+ ;
+ if !(res11 > 0) {
+ goto __785
+ }
+ goto jump_to_p2
+__785:
+ ;
+ goto __9
+
+__136:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Null)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > (*Sqlite3)(unsafe.Pointer(db)).FnVDestroy+1) {
+ goto __786
+ }
+ rc = SQLITE_LOCKED
+ (*Vdbe)(unsafe.Pointer(p)).FerrorAction = U8(OE_Abort)
+ goto abort_due_to_error
+ goto __787
+__786:
+ iDb2 = (*Op)(unsafe.Pointer(pOp)).Fp3
+
+ *(*int32)(unsafe.Pointer(bp + 808)) = 0
+ rc = Xsqlite3BtreeDropTable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb2)*32)).FpBt, (*Op)(unsafe.Pointer(pOp)).Fp1, bp+808)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Int)
+ *(*I64)(unsafe.Pointer(pOut)) = I64(*(*int32)(unsafe.Pointer(bp + 808)))
+ if !(rc != 0) {
+ goto __788
+ }
+ goto abort_due_to_error
+__788:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 808)) != 0) {
+ goto __789
+ }
+ Xsqlite3RootPageMoved(tls, db, iDb2, uint32(*(*int32)(unsafe.Pointer(bp + 808))), uint32((*Op)(unsafe.Pointer(pOp)).Fp1))
+
+ resetSchemaOnFault = U8(iDb2 + 1)
+__789:
+ ;
+__787:
+ ;
+ goto __9
+
+__137:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 816)) = int64(0)
+
+ rc = Xsqlite3BtreeClearTable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*32)).FpBt, int32(U32((*Op)(unsafe.Pointer(pOp)).Fp1)), bp+816)
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __790
+ }
+ *(*I64)(unsafe.Pointer(p + 56)) += *(*I64)(unsafe.Pointer(bp + 816))
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 > 0) {
+ goto __791
+ }
+
+ *(*I64)(unsafe.Pointer(aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56)) += *(*I64)(unsafe.Pointer(bp + 816))
+__791:
+ ;
+__790:
+ ;
+ if !(rc != 0) {
+ goto __792
+ }
+ goto abort_due_to_error
+__792:
+ ;
+ goto __9
+
+__138:
+ ;
+ pC29 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !(int32((*VdbeCursor)(unsafe.Pointer(pC29)).FeCurType) == CURTYPE_SORTER) {
+ goto __793
+ }
+ Xsqlite3VdbeSorterReset(tls, db, *(*uintptr)(unsafe.Pointer(pC29 + 48)))
+ goto __794
+__793:
+ ;
+ rc = Xsqlite3BtreeClearTableOfCursor(tls, *(*uintptr)(unsafe.Pointer(pC29 + 48)))
+ if !(rc != 0) {
+ goto __795
+ }
+ goto abort_due_to_error
+__795:
+ ;
+__794:
+ ;
+ goto __9
+
+__139:
+ ;
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*Pgno)(unsafe.Pointer(bp + 824)) = Pgno(0)
+
+ pDb3 = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32
+
+ rc = Xsqlite3BtreeCreateTable(tls, (*Db)(unsafe.Pointer(pDb3)).FpBt, bp+824, (*Op)(unsafe.Pointer(pOp)).Fp3)
+ if !(rc != 0) {
+ goto __796
+ }
+ goto abort_due_to_error
+__796:
+ ;
+ *(*I64)(unsafe.Pointer(pOut)) = I64(*(*Pgno)(unsafe.Pointer(bp + 824)))
+ goto __9
+
+__140:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FnSqlExec++
+ rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), uintptr(0))
+ (*Sqlite3)(unsafe.Pointer(db)).FnSqlExec--
+ if !(rc != 0) {
+ goto __797
+ }
+ goto abort_due_to_error
+__797:
+ ;
+ goto __9
+
+__141:
+ iDb3 = (*Op)(unsafe.Pointer(pOp)).Fp1
+
+ if !(*(*uintptr)(unsafe.Pointer(pOp + 16)) == uintptr(0)) {
+ goto __798
+ }
+ Xsqlite3SchemaClear(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb3)*32)).FpSchema)
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_SchemaKnownOk))
+ rc = Xsqlite3InitOne(tls, db, iDb3, p+168, uint32((*Op)(unsafe.Pointer(pOp)).Fp5))
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 0, 0x3)
+ goto __799
+__798:
+ zSchema = ts + 6286
+ (*InitData)(unsafe.Pointer(bp + 832)).Fdb = db
+ (*InitData)(unsafe.Pointer(bp + 832)).FiDb = iDb3
+ (*InitData)(unsafe.Pointer(bp + 832)).FpzErrMsg = p + 168
+ (*InitData)(unsafe.Pointer(bp + 832)).FmInitFlags = U32(0)
+ (*InitData)(unsafe.Pointer(bp + 832)).FmxPage = Xsqlite3BtreeLastPage(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb3)*32)).FpBt)
+ zSql = Xsqlite3MPrintf(tls, db,
+ ts+6300,
+ libc.VaList(bp+96, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb3)*32)).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16))))
+ if !(zSql == uintptr(0)) {
+ goto __800
+ }
+ rc = SQLITE_NOMEM
+ goto __801
+__800:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(1)
+ (*InitData)(unsafe.Pointer(bp + 832)).Frc = SQLITE_OK
+ (*InitData)(unsafe.Pointer(bp + 832)).FnInitRow = U32(0)
+
+ rc = Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ }{Xsqlite3InitCallback})), bp+832, uintptr(0))
+ if !(rc == SQLITE_OK) {
+ goto __802
+ }
+ rc = (*InitData)(unsafe.Pointer(bp + 832)).Frc
+__802:
+ ;
+ if !(rc == SQLITE_OK && (*InitData)(unsafe.Pointer(bp+832)).FnInitRow == U32(0)) {
+ goto __803
+ }
+
+ rc = Xsqlite3CorruptError(tls, 97092)
+__803:
+ ;
+ Xsqlite3DbFreeNN(tls, db, zSql)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(0)
+__801:
+ ;
+__799:
+ ;
+ if !(rc != 0) {
+ goto __804
+ }
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ if !(rc == SQLITE_NOMEM) {
+ goto __805
+ }
+ goto no_mem
+__805:
+ ;
+ goto abort_due_to_error
+__804:
+ ;
+ goto __9
+
+__142:
+ ;
+ rc = Xsqlite3AnalysisLoad(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1)
+ if !(rc != 0) {
+ goto __806
+ }
+ goto abort_due_to_error
+__806:
+ ;
+ goto __9
+
+__143:
+ ;
+ Xsqlite3UnlinkAndDeleteTable(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ goto __9
+
+__144:
+ ;
+ Xsqlite3UnlinkAndDeleteIndex(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ goto __9
+
+__145:
+ ;
+ Xsqlite3UnlinkAndDeleteTrigger(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ goto __9
+
+__146:
+ ;
+ nRoot = (*Op)(unsafe.Pointer(pOp)).Fp2
+ aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ pnErr = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ rc = Xsqlite3BtreeIntegrityCheck(tls, db, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp5)*32)).FpBt, aRoot+1*4, nRoot,
+ int32(*(*I64)(unsafe.Pointer(pnErr)))+1, bp+872, bp+880)
+ Xsqlite3VdbeMemSetNull(tls, pIn1)
+ if !(*(*int32)(unsafe.Pointer(bp + 872)) == 0) {
+ goto __807
+ }
+
+ goto __808
+__807:
+ if !(rc != 0) {
+ goto __809
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 880)))
+ goto abort_due_to_error
+ goto __810
+__809:
+ *(*I64)(unsafe.Pointer(pnErr)) -= I64(*(*int32)(unsafe.Pointer(bp + 872)) - 1)
+ Xsqlite3VdbeMemSetStr(tls, pIn1, *(*uintptr)(unsafe.Pointer(bp + 880)), int64(-1), uint8(SQLITE_UTF8), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+__810:
+ ;
+__808:
+ ;
+ Xsqlite3VdbeChangeEncoding(tls, pIn1, int32(encoding))
+ goto check_for_interrupt
+
+__147:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Blob == 0) {
+ goto __811
+ }
+ if !(Xsqlite3VdbeMemSetRowSet(tls, pIn1) != 0) {
+ goto __812
+ }
+ goto no_mem
+__812:
+ ;
+__811:
+ ;
+ Xsqlite3RowSetInsert(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, *(*I64)(unsafe.Pointer(pIn2)))
+ goto __9
+
+__148:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Blob == 0 ||
+ Xsqlite3RowSetNext(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, bp+888) == 0) {
+ goto __813
+ }
+
+ Xsqlite3VdbeMemSetNull(tls, pIn1)
+
+ goto jump_to_p2_and_check_for_interrupt
+ goto __814
+__813:
+ ;
+ Xsqlite3VdbeMemSetInt64(tls, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56, *(*I64)(unsafe.Pointer(bp + 888)))
+__814:
+ ;
+ goto check_for_interrupt
+
+__149:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ iSet = *(*int32)(unsafe.Pointer(pOp + 16))
+
+ if !(int32((*Mem)(unsafe.Pointer(pIn1)).Fflags)&MEM_Blob == 0) {
+ goto __815
+ }
+ if !(Xsqlite3VdbeMemSetRowSet(tls, pIn1) != 0) {
+ goto __816
+ }
+ goto no_mem
+__816:
+ ;
+__815:
+ ;
+ if !(iSet != 0) {
+ goto __817
+ }
+ exists = Xsqlite3RowSetTest(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, iSet, *(*I64)(unsafe.Pointer(pIn3)))
+
+ if !(exists != 0) {
+ goto __818
+ }
+ goto jump_to_p2
+__818:
+ ;
+__817:
+ ;
+ if !(iSet >= 0) {
+ goto __819
+ }
+ Xsqlite3RowSetInsert(tls, (*Mem)(unsafe.Pointer(pIn1)).Fz, *(*I64)(unsafe.Pointer(pIn3)))
+__819:
+ ;
+ goto __9
+
+__150:
+ pProgram = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ pRt = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp5 != 0) {
+ goto __820
+ }
+ t1 = (*SubProgram)(unsafe.Pointer(pProgram)).Ftoken
+ pFrame2 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+__821:
+ if !(pFrame2 != 0 && (*VdbeFrame)(unsafe.Pointer(pFrame2)).Ftoken != t1) {
+ goto __823
+ }
+ goto __822
+__822:
+ pFrame2 = (*VdbeFrame)(unsafe.Pointer(pFrame2)).FpParent
+ goto __821
+ goto __823
+__823:
+ ;
+ if !(pFrame2 != 0) {
+ goto __824
+ }
+ goto __9
+__824:
+ ;
+__820:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4))) {
+ goto __825
+ }
+ rc = SQLITE_ERROR
+ Xsqlite3VdbeError(tls, p, ts+6343, 0)
+ goto abort_due_to_error
+__825:
+ ;
+ if !(int32((*Mem)(unsafe.Pointer(pRt)).Fflags)&MEM_Blob == 0) {
+ goto __826
+ }
+
+ nMem = (*SubProgram)(unsafe.Pointer(pProgram)).FnMem + (*SubProgram)(unsafe.Pointer(pProgram)).FnCsr
+
+ if !((*SubProgram)(unsafe.Pointer(pProgram)).FnCsr == 0) {
+ goto __828
+ }
+ nMem++
+__828:
+ ;
+ nByte2 = int32((uint64(unsafe.Sizeof(VdbeFrame{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)) +
+ uint64(nMem)*uint64(unsafe.Sizeof(Mem{})) +
+ uint64((*SubProgram)(unsafe.Pointer(pProgram)).FnCsr)*uint64(unsafe.Sizeof(uintptr(0))) +
+ uint64(((*SubProgram)(unsafe.Pointer(pProgram)).FnOp+7)/8))
+ pFrame2 = Xsqlite3DbMallocZero(tls, db, uint64(nByte2))
+ if !!(pFrame2 != 0) {
+ goto __829
+ }
+ goto no_mem
+__829:
+ ;
+ Xsqlite3VdbeMemRelease(tls, pRt)
+ (*Mem)(unsafe.Pointer(pRt)).Fflags = U16(MEM_Blob | MEM_Dyn)
+ (*Mem)(unsafe.Pointer(pRt)).Fz = pFrame2
+ (*Mem)(unsafe.Pointer(pRt)).Fn = nByte2
+ (*Mem)(unsafe.Pointer(pRt)).FxDel = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3VdbeFrameMemDel}))
+
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).Fv = p
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildMem = nMem
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildCsr = (*SubProgram)(unsafe.Pointer(pProgram)).FnCsr
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).Fpc = int32((int64(pOp) - int64(aOp)) / 24)
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FaMem = (*Vdbe)(unsafe.Pointer(p)).FaMem
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnMem = (*Vdbe)(unsafe.Pointer(p)).FnMem
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FapCsr = (*Vdbe)(unsafe.Pointer(p)).FapCsr
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnCursor = (*Vdbe)(unsafe.Pointer(p)).FnCursor
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FaOp = (*Vdbe)(unsafe.Pointer(p)).FaOp
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnOp = (*Vdbe)(unsafe.Pointer(p)).FnOp
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).Ftoken = (*SubProgram)(unsafe.Pointer(pProgram)).Ftoken
+
+ pEnd = pFrame2 + 112 + uintptr((*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildMem)*56
+ pMem1 = pFrame2 + 112
+__830:
+ if !(pMem1 != pEnd) {
+ goto __832
+ }
+ (*Mem)(unsafe.Pointer(pMem1)).Fflags = U16(MEM_Undefined)
+ (*Mem)(unsafe.Pointer(pMem1)).Fdb = db
+ goto __831
+__831:
+ pMem1 += 56
+ goto __830
+ goto __832
+__832:
+ ;
+ goto __827
+__826:
+ pFrame2 = (*Mem)(unsafe.Pointer(pRt)).Fz
+
+__827:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).FnFrame++
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FpParent = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FlastRowid = (*Sqlite3)(unsafe.Pointer(db)).FlastRowid
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChange = (*Vdbe)(unsafe.Pointer(p)).FnChange
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnDbChange = (*Sqlite3)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).Fdb)).FnChange
+
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FpAuxData = (*Vdbe)(unsafe.Pointer(p)).FpAuxData
+ (*Vdbe)(unsafe.Pointer(p)).FpAuxData = uintptr(0)
+ (*Vdbe)(unsafe.Pointer(p)).FnChange = int64(0)
+ (*Vdbe)(unsafe.Pointer(p)).FpFrame = pFrame2
+ (*Vdbe)(unsafe.Pointer(p)).FaMem = libc.AssignUintptr(&aMem, pFrame2+112)
+ (*Vdbe)(unsafe.Pointer(p)).FnMem = (*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildMem
+ (*Vdbe)(unsafe.Pointer(p)).FnCursor = int32(U16((*VdbeFrame)(unsafe.Pointer(pFrame2)).FnChildCsr))
+ (*Vdbe)(unsafe.Pointer(p)).FapCsr = aMem + uintptr((*Vdbe)(unsafe.Pointer(p)).FnMem)*56
+ (*VdbeFrame)(unsafe.Pointer(pFrame2)).FaOnce = (*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*SubProgram)(unsafe.Pointer(pProgram)).FnCsr)*8
+ libc.X__builtin___memset_chk(tls, (*VdbeFrame)(unsafe.Pointer(pFrame2)).FaOnce, 0, uint64(((*SubProgram)(unsafe.Pointer(pProgram)).FnOp+7)/8), libc.X__builtin_object_size(tls, (*VdbeFrame)(unsafe.Pointer(pFrame2)).FaOnce, 0))
+ (*Vdbe)(unsafe.Pointer(p)).FaOp = libc.AssignUintptr(&aOp, (*SubProgram)(unsafe.Pointer(pProgram)).FaOp)
+ (*Vdbe)(unsafe.Pointer(p)).FnOp = (*SubProgram)(unsafe.Pointer(pProgram)).FnOp
+ pOp = aOp + libc.UintptrFromInt32(-1)*24
+ goto check_for_interrupt
+
+__151:
+ pOut = out2Prerelease(tls, p, pOp)
+ pFrame3 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+ pIn = (*VdbeFrame)(unsafe.Pointer(pFrame3)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1+(*Op)(unsafe.Pointer((*VdbeFrame)(unsafe.Pointer(pFrame3)).FaOp+uintptr((*VdbeFrame)(unsafe.Pointer(pFrame3)).Fpc)*24)).Fp1)*56
+ Xsqlite3VdbeMemShallowCopy(tls, pOut, pIn, MEM_Ephem)
+ goto __9
+
+__152:
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DeferFKs) != 0) {
+ goto __833
+ }
+ *(*I64)(unsafe.Pointer(db + 792)) += I64((*Op)(unsafe.Pointer(pOp)).Fp2)
+ goto __834
+__833:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __835
+ }
+ *(*I64)(unsafe.Pointer(db + 784)) += I64((*Op)(unsafe.Pointer(pOp)).Fp2)
+ goto __836
+__835:
+ *(*I64)(unsafe.Pointer(p + 80)) += I64((*Op)(unsafe.Pointer(pOp)).Fp2)
+__836:
+ ;
+__834:
+ ;
+ goto __9
+
+__153:
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __837
+ }
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons == int64(0) && (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons == int64(0)) {
+ goto __839
+ }
+ goto jump_to_p2
+__839:
+ ;
+ goto __838
+__837:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).FnFkConstraint == int64(0) && (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons == int64(0)) {
+ goto __840
+ }
+ goto jump_to_p2
+__840:
+ ;
+__838:
+ ;
+ goto __9
+
+__154:
+ if !((*Vdbe)(unsafe.Pointer(p)).FpFrame != 0) {
+ goto __841
+ }
+ pFrame4 = (*Vdbe)(unsafe.Pointer(p)).FpFrame
+__843:
+ if !((*VdbeFrame)(unsafe.Pointer(pFrame4)).FpParent != 0) {
+ goto __845
+ }
+ goto __844
+__844:
+ pFrame4 = (*VdbeFrame)(unsafe.Pointer(pFrame4)).FpParent
+ goto __843
+ goto __845
+__845:
+ ;
+ pIn1 = (*VdbeFrame)(unsafe.Pointer(pFrame4)).FaMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ goto __842
+__841:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+__842:
+ ;
+ Xsqlite3VdbeMemIntegerify(tls, pIn1)
+ pIn2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ Xsqlite3VdbeMemIntegerify(tls, pIn2)
+ if !(*(*I64)(unsafe.Pointer(pIn1)) < *(*I64)(unsafe.Pointer(pIn2))) {
+ goto __846
+ }
+ *(*I64)(unsafe.Pointer(pIn1)) = *(*I64)(unsafe.Pointer(pIn2))
+__846:
+ ;
+ goto __9
+
+__155:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(*(*I64)(unsafe.Pointer(pIn1)) > int64(0)) {
+ goto __847
+ }
+ *(*I64)(unsafe.Pointer(pIn1)) -= I64((*Op)(unsafe.Pointer(pOp)).Fp3)
+ goto jump_to_p2
+__847:
+ ;
+ goto __9
+
+__156:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ pIn3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ pOut = out2Prerelease(tls, p, pOp)
+
+ *(*I64)(unsafe.Pointer(bp + 896)) = *(*I64)(unsafe.Pointer(pIn1))
+ if !(*(*I64)(unsafe.Pointer(bp + 896)) <= int64(0) || Xsqlite3AddInt64(tls, bp+896, func() int64 {
+ if *(*I64)(unsafe.Pointer(pIn3)) > int64(0) {
+ return *(*I64)(unsafe.Pointer(pIn3))
+ }
+ return int64(0)
+ }()) != 0) {
+ goto __848
+ }
+
+ *(*I64)(unsafe.Pointer(pOut)) = int64(-1)
+ goto __849
+__848:
+ *(*I64)(unsafe.Pointer(pOut)) = *(*I64)(unsafe.Pointer(bp + 896))
+__849:
+ ;
+ goto __9
+
+__157:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(*(*I64)(unsafe.Pointer(pIn1)) != 0) {
+ goto __850
+ }
+ if !(*(*I64)(unsafe.Pointer(pIn1)) > int64(0)) {
+ goto __851
+ }
+ *(*I64)(unsafe.Pointer(pIn1))--
+__851:
+ ;
+ goto jump_to_p2
+__850:
+ ;
+ goto __9
+
+__158:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !(*(*I64)(unsafe.Pointer(pIn1)) > int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32)) {
+ goto __852
+ }
+ *(*I64)(unsafe.Pointer(pIn1))--
+__852:
+ ;
+ if !(*(*I64)(unsafe.Pointer(pIn1)) == int64(0)) {
+ goto __853
+ }
+ goto jump_to_p2
+__853:
+ ;
+ goto __9
+
+__159:
+__160:
+ ;
+ n4 = int32((*Op)(unsafe.Pointer(pOp)).Fp5)
+
+ pCtx = Xsqlite3DbMallocRawNN(tls, db, uint64(n4)*uint64(unsafe.Sizeof(uintptr(0)))+(uint64(unsafe.Sizeof(Sqlite3_context{}))+uint64(unsafe.Sizeof(Mem{}))-uint64(unsafe.Sizeof(uintptr(0)))))
+ if !(pCtx == uintptr(0)) {
+ goto __854
+ }
+ goto no_mem
+__854:
+ ;
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpMem = uintptr(0)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut = pCtx + 48 + uintptr(n4)*8
+ Xsqlite3VdbeMemInit(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpOut, db, uint16(MEM_Null))
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpFunc = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FiOp = int32((int64(pOp) - int64(aOp)) / 24)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe = p
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FskipFlag = U8(0)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).FisError = 0
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).Fenc = encoding
+ (*Sqlite3_context)(unsafe.Pointer(pCtx)).Fargc = U8(n4)
+ (*Op)(unsafe.Pointer(pOp)).Fp4type = int8(-15)
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = pCtx
+
+ (*Op)(unsafe.Pointer(pOp)).Fopcode = U8(OP_AggStep1)
+
+__161:
+ ;
+ pCtx1 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ pMem2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpMem != pMem2) {
+ goto __855
+ }
+ (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpMem = pMem2
+ i5 = int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc) - 1
+__856:
+ if !(i5 >= 0) {
+ goto __858
+ }
+ *(*uintptr)(unsafe.Pointer(pCtx1 + 48 + uintptr(i5)*8)) = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2+i5)*56
+ goto __857
+__857:
+ i5--
+ goto __856
+ goto __858
+__858:
+ ;
+__855:
+ ;
+ (*Mem)(unsafe.Pointer(pMem2)).Fn++
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __859
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpFunc)).FxInverse})).f(tls, pCtx1, int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc), pCtx1+48)
+ goto __860
+__859:
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpFunc)).FxSFunc})).f(tls, pCtx1, int32((*Sqlite3_context)(unsafe.Pointer(pCtx1)).Fargc), pCtx1+48)
+__860:
+ ;
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0) {
+ goto __861
+ }
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0) {
+ goto __862
+ }
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+120, Xsqlite3_value_text(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)))
+ rc = (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError
+__862:
+ ;
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0) {
+ goto __863
+ }
+
+ i5 = (*Op)(unsafe.Pointer(pOp + libc.UintptrFromInt32(-1)*24)).Fp1
+ if !(i5 != 0) {
+ goto __864
+ }
+ Xsqlite3VdbeMemSetInt64(tls, aMem+uintptr(i5)*56, int64(1))
+__864:
+ ;
+ (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag = U8(0)
+__863:
+ ;
+ Xsqlite3VdbeMemRelease(tls, (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)
+ (*Mem)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx1)).FpOut)).Fflags = U16(MEM_Null)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx1)).FisError = 0
+ if !(rc != 0) {
+ goto __865
+ }
+ goto abort_due_to_error
+__865:
+ ;
+__861:
+ ;
+ goto __9
+
+__162:
+__163:
+ ;
+ pMem3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __866
+ }
+
+ rc = Xsqlite3VdbeMemAggValue(tls, pMem3, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ pMem3 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ goto __867
+__866:
+ rc = Xsqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+__867:
+ ;
+ if !(rc != 0) {
+ goto __868
+ }
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+128, Xsqlite3_value_text(tls, pMem3)))
+ goto abort_due_to_error
+__868:
+ ;
+ Xsqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding))
+
+ goto __9
+
+__164:
+ ;
+ *(*int32)(unsafe.Pointer(bp + 904)) = 0
+ *(*int32)(unsafe.Pointer(bp + 904 + 1*4)) = libc.AssignPtrInt32(bp+904+2*4, -1)
+
+ rc = Xsqlite3Checkpoint(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, (*Op)(unsafe.Pointer(pOp)).Fp2, bp+904+1*4, bp+904+2*4)
+ if !(rc != 0) {
+ goto __869
+ }
+ if !(rc != SQLITE_BUSY) {
+ goto __870
+ }
+ goto abort_due_to_error
+__870:
+ ;
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 904)) = 1
+__869:
+ ;
+ i6 = 0
+ pMem4 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+__871:
+ if !(i6 < 3) {
+ goto __873
+ }
+ Xsqlite3VdbeMemSetInt64(tls, pMem4, I64(*(*int32)(unsafe.Pointer(bp + 904 + uintptr(i6)*4))))
+ goto __872
+__872:
+ i6++
+ pMem4 += 56
+ goto __871
+ goto __873
+__873:
+ ;
+ goto __9
+
+__165:
+ pOut = out2Prerelease(tls, p, pOp)
+ eNew = (*Op)(unsafe.Pointer(pOp)).Fp3
+
+ pBt1 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
+ pPager = Xsqlite3BtreePager(tls, pBt1)
+ eOld = Xsqlite3PagerGetJournalMode(tls, pPager)
+ if !(eNew == -1) {
+ goto __874
+ }
+ eNew = eOld
+__874:
+ ;
+ if !!(Xsqlite3PagerOkToChangeJournalMode(tls, pPager) != 0) {
+ goto __875
+ }
+ eNew = eOld
+__875:
+ ;
+ zFilename = Xsqlite3PagerFilename(tls, pPager, 1)
+
+ if !(eNew == PAGER_JOURNALMODE_WAL &&
+ (Xsqlite3Strlen30(tls, zFilename) == 0 ||
+ !(Xsqlite3PagerWalSupported(tls, pPager) != 0))) {
+ goto __876
+ }
+ eNew = eOld
+__876:
+ ;
+ if !(eNew != eOld &&
+ (eOld == PAGER_JOURNALMODE_WAL || eNew == PAGER_JOURNALMODE_WAL)) {
+ goto __877
+ }
+ if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) || (*Sqlite3)(unsafe.Pointer(db)).FnVdbeRead > 1) {
+ goto __878
+ }
+ rc = SQLITE_ERROR
+ Xsqlite3VdbeError(tls, p,
+ ts+6380,
+ libc.VaList(bp+136, func() uintptr {
+ if eNew == PAGER_JOURNALMODE_WAL {
+ return ts + 6432
+ }
+ return ts + 6437
+ }()))
+ goto abort_due_to_error
+ goto __879
+__878:
+ if !(eOld == PAGER_JOURNALMODE_WAL) {
+ goto __880
+ }
+
+ rc = Xsqlite3PagerCloseWal(tls, pPager, db)
+ if !(rc == SQLITE_OK) {
+ goto __882
+ }
+ Xsqlite3PagerSetJournalMode(tls, pPager, eNew)
+__882:
+ ;
+ goto __881
+__880:
+ if !(eOld == PAGER_JOURNALMODE_MEMORY) {
+ goto __883
+ }
+
+ Xsqlite3PagerSetJournalMode(tls, pPager, PAGER_JOURNALMODE_OFF)
+__883:
+ ;
+__881:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __884
+ }
+ rc = Xsqlite3BtreeSetVersion(tls, pBt1, func() int32 {
+ if eNew == PAGER_JOURNALMODE_WAL {
+ return 2
+ }
+ return 1
+ }())
+__884:
+ ;
+__879:
+ ;
+__877:
+ ;
+ if !(rc != 0) {
+ goto __885
+ }
+ eNew = eOld
+__885:
+ ;
+ eNew = Xsqlite3PagerSetJournalMode(tls, pPager, eNew)
+
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Str | MEM_Static | MEM_Term)
+ (*Mem)(unsafe.Pointer(pOut)).Fz = Xsqlite3JournalModename(tls, eNew)
+ (*Mem)(unsafe.Pointer(pOut)).Fn = Xsqlite3Strlen30(tls, (*Mem)(unsafe.Pointer(pOut)).Fz)
+ (*Mem)(unsafe.Pointer(pOut)).Fenc = U8(SQLITE_UTF8)
+ Xsqlite3VdbeChangeEncoding(tls, pOut, int32(encoding))
+ if !(rc != 0) {
+ goto __886
+ }
+ goto abort_due_to_error
+__886:
+ ;
+ goto __9
+
+__166:
+ ;
+ rc = Xsqlite3RunVacuum(tls, p+168, db, (*Op)(unsafe.Pointer(pOp)).Fp1,
+ func() uintptr {
+ if (*Op)(unsafe.Pointer(pOp)).Fp2 != 0 {
+ return aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56
+ }
+ return uintptr(0)
+ }())
+ if !(rc != 0) {
+ goto __887
+ }
+ goto abort_due_to_error
+__887:
+ ;
+ goto __9
+
+__167:
+ ;
+ pBt2 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
+ rc = Xsqlite3BtreeIncrVacuum(tls, pBt2)
+
+ if !(rc != 0) {
+ goto __888
+ }
+ if !(rc != SQLITE_DONE) {
+ goto __889
+ }
+ goto abort_due_to_error
+__889:
+ ;
+ rc = SQLITE_OK
+ goto jump_to_p2
+__888:
+ ;
+ goto __9
+
+__168:
+ ;
+ if !!((*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __890
+ }
+ Xsqlite3ExpirePreparedStatements(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp2)
+ goto __891
+__890:
+ libc.SetBitFieldPtr8Uint32(p+200, Bft((*Op)(unsafe.Pointer(pOp)).Fp2+1), 0, 0x3)
+__891:
+ ;
+ goto __9
+
+__169:
+ ;
+ pC30 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ Xsqlite3BtreeCursorPin(tls, *(*uintptr)(unsafe.Pointer(pC30 + 48)))
+ goto __9
+
+__170:
+ ;
+ pC31 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ Xsqlite3BtreeCursorUnpin(tls, *(*uintptr)(unsafe.Pointer(pC31 + 48)))
+ goto __9
+
+__171:
+ isWriteLock = U8((*Op)(unsafe.Pointer(pOp)).Fp3)
+ if !(isWriteLock != 0 || uint64(0) == (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ReadUncommit)) {
+ goto __892
+ }
+ p13 = (*Op)(unsafe.Pointer(pOp)).Fp1
+
+ rc = Xsqlite3BtreeLockTable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(p13)*32)).FpBt, (*Op)(unsafe.Pointer(pOp)).Fp2, isWriteLock)
+ if !(rc != 0) {
+ goto __893
+ }
+ if !(rc&0xFF == SQLITE_LOCKED) {
+ goto __894
+ }
+ z1 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ Xsqlite3VdbeError(tls, p, ts+6444, libc.VaList(bp+144, z1))
+__894:
+ ;
+ goto abort_due_to_error
+__893:
+ ;
+__892:
+ ;
+ goto __9
+
+__172:
+ pVTab = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ rc = Xsqlite3VtabBegin(tls, db, pVTab)
+ if !(pVTab != 0) {
+ goto __895
+ }
+ Xsqlite3VtabImportErrmsg(tls, p, (*VTable)(unsafe.Pointer(pVTab)).FpVtab)
+__895:
+ ;
+ if !(rc != 0) {
+ goto __896
+ }
+ goto abort_due_to_error
+__896:
+ ;
+ goto __9
+
+__173:
+ libc.X__builtin___memset_chk(tls, bp+920, 0, uint64(unsafe.Sizeof(Mem{})), libc.X__builtin_object_size(tls, bp+920, 0))
+ (*Mem)(unsafe.Pointer(bp + 920)).Fdb = db
+
+ rc = Xsqlite3VdbeMemCopy(tls, bp+920, aMem+uintptr((*Op)(unsafe.Pointer(pOp)).Fp2)*56)
+
+ zTab = Xsqlite3_value_text(tls, bp+920)
+
+ if !(zTab != 0) {
+ goto __897
+ }
+ rc = Xsqlite3VtabCallCreate(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, zTab, p+168)
+__897:
+ ;
+ Xsqlite3VdbeMemRelease(tls, bp+920)
+ if !(rc != 0) {
+ goto __898
+ }
+ goto abort_due_to_error
+__898:
+ ;
+ goto __9
+
+__174:
+ (*Sqlite3)(unsafe.Pointer(db)).FnVDestroy++
+ rc = Xsqlite3VtabCallDestroy(tls, db, (*Op)(unsafe.Pointer(pOp)).Fp1, *(*uintptr)(unsafe.Pointer(pOp + 16)))
+ (*Sqlite3)(unsafe.Pointer(db)).FnVDestroy--
+
+ if !(rc != 0) {
+ goto __899
+ }
+ goto abort_due_to_error
+__899:
+ ;
+ goto __9
+
+__175:
+ ;
+ pCur3 = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 976)) = uintptr(0)
+ pVtab1 = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab
+ if !(pVtab1 == uintptr(0) || (*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FpModule == uintptr(0)) {
+ goto __900
+ }
+ rc = SQLITE_LOCKED
+ goto abort_due_to_error
+__900:
+ ;
+ pModule1 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FpModule
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule1)).FxOpen})).f(tls, pVtab1, bp+976)
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab1)
+ if !(rc != 0) {
+ goto __901
+ }
+ goto abort_due_to_error
+__901:
+ ;
+ (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 976)))).FpVtab = pVtab1
+
+ pCur3 = allocateCursor(tls, p, (*Op)(unsafe.Pointer(pOp)).Fp1, 0, uint8(CURTYPE_VTAB))
+ if !(pCur3 != 0) {
+ goto __902
+ }
+ *(*uintptr)(unsafe.Pointer(pCur3 + 48)) = *(*uintptr)(unsafe.Pointer(bp + 976))
+ (*Sqlite3_vtab)(unsafe.Pointer(pVtab1)).FnRef++
+ goto __903
+__902:
+ ;
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule1)).FxClose})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 976)))
+ goto no_mem
+__903:
+ ;
+ goto __9
+
+__176:
+ pC32 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+ pRhs = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(ValueList{})))
+ if !(pRhs == uintptr(0)) {
+ goto __904
+ }
+ goto no_mem
+__904:
+ ;
+ (*ValueList)(unsafe.Pointer(pRhs)).FpCsr = *(*uintptr)(unsafe.Pointer(pC32 + 48))
+ (*ValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ pOut = out2Prerelease(tls, p, pOp)
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(MEM_Null)
+ Xsqlite3VdbeMemSetPointer(tls, pOut, pRhs, ts+6473, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3VdbeValueListFree})))
+ goto __9
+
+__177:
+ pQuery = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ pArgc = pQuery + 1*56
+ pCur4 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pVCur1 = *(*uintptr)(unsafe.Pointer(pCur4 + 48))
+ pVtab2 = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVCur1)).FpVtab
+ pModule2 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab2)).FpModule
+
+ nArg = int32(*(*I64)(unsafe.Pointer(pArgc)))
+ iQuery = int32(*(*I64)(unsafe.Pointer(pQuery)))
+
+ apArg = (*Vdbe)(unsafe.Pointer(p)).FapArg
+ i7 = 0
+__905:
+ if !(i7 < nArg) {
+ goto __907
+ }
+ *(*uintptr)(unsafe.Pointer(apArg + uintptr(i7)*8)) = pArgc + uintptr(i7+1)*56
+ goto __906
+__906:
+ i7++
+ goto __905
+ goto __907
+__907:
+ ;
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule2)).FxFilter})).f(tls, pVCur1, iQuery, *(*uintptr)(unsafe.Pointer(pOp + 16)), nArg, apArg)
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab2)
+ if !(rc != 0) {
+ goto __908
+ }
+ goto abort_due_to_error
+__908:
+ ;
+ res12 = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule2)).FxEof})).f(tls, pVCur1)
+ (*VdbeCursor)(unsafe.Pointer(pCur4)).FnullRow = U8(0)
+
+ if !(res12 != 0) {
+ goto __909
+ }
+ goto jump_to_p2
+__909:
+ ;
+ goto __9
+
+__178:
+ pCur5 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ pDest2 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+
+ if !((*VdbeCursor)(unsafe.Pointer(pCur5)).FnullRow != 0) {
+ goto __910
+ }
+ Xsqlite3VdbeMemSetNull(tls, pDest2)
+ goto __9
+__910:
+ ;
+ pVtab3 = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur5 + 48)))).FpVtab
+ pModule3 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab3)).FpModule
+
+ libc.X__builtin___memset_chk(tls, bp+984, 0, uint64(unsafe.Sizeof(Sqlite3_context{})), libc.X__builtin_object_size(tls, bp+984, 0))
+ (*Sqlite3_context)(unsafe.Pointer(bp + 984)).FpOut = pDest2
+ (*Sqlite3_context)(unsafe.Pointer(bp + 984)).Fenc = encoding
+
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5)&OPFLAG_NOCHNG != 0) {
+ goto __911
+ }
+ Xsqlite3VdbeMemSetNull(tls, pDest2)
+ (*Mem)(unsafe.Pointer(pDest2)).Fflags = U16(MEM_Null | MEM_Zero)
+ *(*int32)(unsafe.Pointer(pDest2)) = 0
+ goto __912
+__911:
+ (*Mem)(unsafe.Pointer(pDest2)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pDest2)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Null)
+__912:
+ ;
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule3)).FxColumn})).f(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+984, (*Op)(unsafe.Pointer(pOp)).Fp2)
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab3)
+ if !((*Sqlite3_context)(unsafe.Pointer(bp+984)).FisError > 0) {
+ goto __913
+ }
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+152, Xsqlite3_value_text(tls, pDest2)))
+ rc = (*Sqlite3_context)(unsafe.Pointer(bp + 984)).FisError
+__913:
+ ;
+ Xsqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding))
+
+ if !(rc != 0) {
+ goto __914
+ }
+ goto abort_due_to_error
+__914:
+ ;
+ goto __9
+
+__179:
+ pCur6 = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*8))
+
+ if !((*VdbeCursor)(unsafe.Pointer(pCur6)).FnullRow != 0) {
+ goto __915
+ }
+ goto __9
+__915:
+ ;
+ pVtab4 = (*Sqlite3_vtab_cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur6 + 48)))).FpVtab
+ pModule4 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab4)).FpModule
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule4)).FxNext})).f(tls, *(*uintptr)(unsafe.Pointer(pCur6 + 48)))
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab4)
+ if !(rc != 0) {
+ goto __916
+ }
+ goto abort_due_to_error
+__916:
+ ;
+ res13 = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule4)).FxEof})).f(tls, *(*uintptr)(unsafe.Pointer(pCur6 + 48)))
+
+ if !!(res13 != 0) {
+ goto __917
+ }
+
+ goto jump_to_p2_and_check_for_interrupt
+__917:
+ ;
+ goto check_for_interrupt
+
+__180:
+ isLegacy = int32((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(SQLITE_LegacyAlter))
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(SQLITE_LegacyAlter)
+ pVtab5 = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab
+ pName = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ rc = Xsqlite3VdbeChangeEncoding(tls, pName, SQLITE_UTF8)
+ if !(rc != 0) {
+ goto __918
+ }
+ goto abort_due_to_error
+__918:
+ ;
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer(pVtab5)).FpModule)).FxRename})).f(tls, pVtab5, (*Mem)(unsafe.Pointer(pName)).Fz)
+ if !(isLegacy == 0) {
+ goto __919
+ }
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_LegacyAlter))
+__919:
+ ;
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab5)
+ libc.SetBitFieldPtr8Uint32(p+200, Bft(0), 0, 0x3)
+ if !(rc != 0) {
+ goto __920
+ }
+ goto abort_due_to_error
+__920:
+ ;
+ goto __9
+
+__181:
+ *(*Sqlite_int64)(unsafe.Pointer(bp + 1040)) = int64(0)
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __921
+ }
+ goto no_mem
+__921:
+ ;
+ pVtab6 = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab
+ if !(pVtab6 == uintptr(0) || (*Sqlite3_vtab)(unsafe.Pointer(pVtab6)).FpModule == uintptr(0)) {
+ goto __922
+ }
+ rc = SQLITE_LOCKED
+ goto abort_due_to_error
+__922:
+ ;
+ pModule5 = (*Sqlite3_vtab)(unsafe.Pointer(pVtab6)).FpModule
+ nArg1 = (*Op)(unsafe.Pointer(pOp)).Fp2
+
+ if !((*Sqlite3_module)(unsafe.Pointer(pModule5)).FxUpdate != 0) {
+ goto __923
+ }
+ vtabOnConflict = (*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict
+ apArg1 = (*Vdbe)(unsafe.Pointer(p)).FapArg
+ pX1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ i8 = 0
+__924:
+ if !(i8 < nArg1) {
+ goto __926
+ }
+
+ *(*uintptr)(unsafe.Pointer(apArg1 + uintptr(i8)*8)) = pX1
+ pX1 += 56
+ goto __925
+__925:
+ i8++
+ goto __924
+ goto __926
+__926:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict = U8((*Op)(unsafe.Pointer(pOp)).Fp5)
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule5)).FxUpdate})).f(tls, pVtab6, nArg1, apArg1, bp+1040)
+ (*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict = vtabOnConflict
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab6)
+ if !(rc == SQLITE_OK && (*Op)(unsafe.Pointer(pOp)).Fp1 != 0) {
+ goto __927
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FlastRowid = *(*Sqlite_int64)(unsafe.Pointer(bp + 1040))
+__927:
+ ;
+ if !(rc&0xff == SQLITE_CONSTRAINT && (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FbConstraint != 0) {
+ goto __928
+ }
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fp5) == OE_Ignore) {
+ goto __930
+ }
+ rc = SQLITE_OK
+ goto __931
+__930:
+ (*Vdbe)(unsafe.Pointer(p)).FerrorAction = func() uint8 {
+ if int32((*Op)(unsafe.Pointer(pOp)).Fp5) == OE_Replace {
+ return uint8(OE_Abort)
+ }
+ return uint8((*Op)(unsafe.Pointer(pOp)).Fp5)
+ }()
+__931:
+ ;
+ goto __929
+__928:
+ (*Vdbe)(unsafe.Pointer(p)).FnChange++
+__929:
+ ;
+ if !(rc != 0) {
+ goto __932
+ }
+ goto abort_due_to_error
+__932:
+ ;
+__923:
+ ;
+ goto __9
+
+__182:
+ pOut = out2Prerelease(tls, p, pOp)
+ *(*I64)(unsafe.Pointer(pOut)) = I64(Xsqlite3BtreeLastPage(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt))
+ goto __9
+
+__183:
+ pOut = out2Prerelease(tls, p, pOp)
+ pBt3 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*32)).FpBt
+ newMax = uint32(0)
+ if !((*Op)(unsafe.Pointer(pOp)).Fp3 != 0) {
+ goto __933
+ }
+ newMax = Xsqlite3BtreeLastPage(tls, pBt3)
+ if !(newMax < uint32((*Op)(unsafe.Pointer(pOp)).Fp3)) {
+ goto __934
+ }
+ newMax = uint32((*Op)(unsafe.Pointer(pOp)).Fp3)
+__934:
+ ;
+__933:
+ ;
+ *(*I64)(unsafe.Pointer(pOut)) = I64(Xsqlite3BtreeMaxPageCount(tls, pBt3, newMax))
+ goto __9
+
+__184:
+__185:
+ ;
+ pCtx2 = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ pOut = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp3)*56
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpOut != pOut) {
+ goto __935
+ }
+ (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpVdbe = p
+ (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpOut = pOut
+ (*Sqlite3_context)(unsafe.Pointer(pCtx2)).Fenc = encoding
+ i9 = int32((*Sqlite3_context)(unsafe.Pointer(pCtx2)).Fargc) - 1
+__936:
+ if !(i9 >= 0) {
+ goto __938
+ }
+ *(*uintptr)(unsafe.Pointer(pCtx2 + 48 + uintptr(i9)*8)) = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp2+i9)*56
+ goto __937
+__937:
+ i9--
+ goto __936
+ goto __938
+__938:
+ ;
+__935:
+ ;
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Null)
+
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*FuncDef)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FpFunc)).FxSFunc})).f(tls, pCtx2, int32((*Sqlite3_context)(unsafe.Pointer(pCtx2)).Fargc), pCtx2+48)
+
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0) {
+ goto __939
+ }
+ if !((*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0) {
+ goto __940
+ }
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+160, Xsqlite3_value_text(tls, pOut)))
+ rc = (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError
+__940:
+ ;
+ Xsqlite3VdbeDeleteAuxData(tls, db, p+296, (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*Op)(unsafe.Pointer(pOp)).Fp1)
+ (*Sqlite3_context)(unsafe.Pointer(pCtx2)).FisError = 0
+ if !(rc != 0) {
+ goto __941
+ }
+ goto abort_due_to_error
+__941:
+ ;
+__939:
+ ;
+ goto __9
+
+__186:
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+ *(*U16)(unsafe.Pointer(pIn1 + 20)) &= libc.Uint16FromInt32(libc.CplInt32(MEM_Subtype))
+ goto __9
+
+__187:
+ ;
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ h = filterHash(tls, aMem, pOp)
+ h = h % U64((*Mem)(unsafe.Pointer(pIn1)).Fn)
+ *(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pIn1)).Fz + uintptr(h/uint64(8)))) |= int8(int32(1) << (h & uint64(7)))
+ goto __9
+
+__188:
+ ;
+ pIn1 = aMem + uintptr((*Op)(unsafe.Pointer(pOp)).Fp1)*56
+
+ h1 = filterHash(tls, aMem, pOp)
+ h1 = h1 % U64((*Mem)(unsafe.Pointer(pIn1)).Fn)
+ if !(int32(*(*int8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pIn1)).Fz + uintptr(h1/uint64(8)))))&(int32(1)<<(h1&uint64(7))) == 0) {
+ goto __942
+ }
+
+ *(*U32)(unsafe.Pointer(p + 212 + 8*4))++
+ goto jump_to_p2
+ goto __943
+__942:
+ *(*U32)(unsafe.Pointer(p + 212 + 7*4))++
+
+__943:
+ ;
+ goto __9
+
+__189:
+__190:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&(SQLITE_TRACE_STMT|SQLITE_TRACE_LEGACY) != 0 &&
+ int32((*Vdbe)(unsafe.Pointer(p)).FminWriteFileFormat) != 254 &&
+ libc.AssignUintptr(&zTrace, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 {
+ return *(*uintptr)(unsafe.Pointer(pOp + 16))
+ }
+ return (*Vdbe)(unsafe.Pointer(p)).FzSql
+ }()) != uintptr(0)) {
+ goto __944
+ }
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&SQLITE_TRACE_LEGACY != 0) {
+ goto __945
+ }
+ z2 = Xsqlite3VdbeExpandSql(tls, p, zTrace)
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, z2)
+ Xsqlite3_free(tls, z2)
+ goto __946
+__945:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec > 1) {
+ goto __947
+ }
+ z3 = Xsqlite3MPrintf(tls, db, ts+6483, libc.VaList(bp+168, zTrace))
+ (*struct {
+ f func(*libc.TLS, U32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, uint32(SQLITE_TRACE_STMT), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3)
+ Xsqlite3DbFree(tls, db, z3)
+ goto __948
+__947:
+ (*struct {
+ f func(*libc.TLS, U32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, uint32(SQLITE_TRACE_STMT), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, p, zTrace)
+__948:
+ ;
+__946:
+ ;
+__944:
+ ;
+ if !((*Op)(unsafe.Pointer(pOp)).Fp1 >= Xsqlite3Config.FiOnceResetThreshold) {
+ goto __949
+ }
+ if !(int32((*Op)(unsafe.Pointer(pOp)).Fopcode) == OP_Trace) {
+ goto __950
+ }
+ goto __9
+__950:
+ ;
+ i10 = 1
+__951:
+ if !(i10 < (*Vdbe)(unsafe.Pointer(p)).FnOp) {
+ goto __953
+ }
+ if !(int32((*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp+uintptr(i10)*24)).Fopcode) == OP_Once) {
+ goto __954
+ }
+ (*Op)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(p)).FaOp + uintptr(i10)*24)).Fp1 = 0
+__954:
+ ;
+ goto __952
+__952:
+ i10++
+ goto __951
+ goto __953
+__953:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fp1 = 0
+__949:
+ ;
+ (*Op)(unsafe.Pointer(pOp)).Fp1++
+ *(*U32)(unsafe.Pointer(p + 212 + 6*4))++
+ goto jump_to_p2
+
+__191:
+ ;
+ goto __9
+
+__9:
+ ;
+ goto __7
+__7:
+ pOp += 24
+ goto __6
+ goto __8
+__8:
+ ;
+abort_due_to_error:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __955
+ }
+ rc = SQLITE_NOMEM
+ goto __956
+__955:
+ if !(rc == SQLITE_IOERR|int32(33)<<8) {
+ goto __957
+ }
+ rc = Xsqlite3CorruptError(tls, 99031)
+__957:
+ ;
+__956:
+ ;
+ if !((*Vdbe)(unsafe.Pointer(p)).FzErrMsg == uintptr(0) && rc != SQLITE_IOERR|int32(12)<<8) {
+ goto __958
+ }
+ Xsqlite3VdbeError(tls, p, ts+3658, libc.VaList(bp+176, Xsqlite3ErrStr(tls, rc)))
+__958:
+ ;
+ (*Vdbe)(unsafe.Pointer(p)).Frc = rc
+ Xsqlite3SystemError(tls, db, rc)
+
+ Xsqlite3_log(tls, rc, ts+6489,
+ libc.VaList(bp+184, int32((int64(pOp)-int64(aOp))/24), (*Vdbe)(unsafe.Pointer(p)).FzSql, (*Vdbe)(unsafe.Pointer(p)).FzErrMsg))
+ if !(int32((*Vdbe)(unsafe.Pointer(p)).FeVdbeState) == VDBE_RUN_STATE) {
+ goto __959
+ }
+ Xsqlite3VdbeHalt(tls, p)
+__959:
+ ;
+ if !(rc == SQLITE_IOERR|int32(12)<<8) {
+ goto __960
+ }
+ Xsqlite3OomFault(tls, db)
+__960:
+ ;
+ if !(rc == SQLITE_CORRUPT && int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0) {
+ goto __961
+ }
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(0x00002) << 32
+__961:
+ ;
+ rc = SQLITE_ERROR
+ if !(int32(resetSchemaOnFault) > 0) {
+ goto __962
+ }
+ Xsqlite3ResetOneSchema(tls, db, int32(resetSchemaOnFault)-1)
+__962:
+ ;
+vdbe_return:
+__963:
+ if !(nVmStep >= nProgressLimit && (*Sqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0)) {
+ goto __964
+ }
+ nProgressLimit = nProgressLimit + U64((*Sqlite3)(unsafe.Pointer(db)).FnProgressOps)
+ if !((*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxProgress})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg) != 0) {
+ goto __965
+ }
+ nProgressLimit = uint64(0xffffffff) | uint64(0xffffffff)<<32
+ rc = SQLITE_INTERRUPT
+ goto abort_due_to_error
+__965:
+ ;
+ goto __963
+__964:
+ ;
+ *(*U32)(unsafe.Pointer(p + 212 + 4*4)) += U32(int32(nVmStep))
+ if !((*Vdbe)(unsafe.Pointer(p)).FlockMask != YDbMask(0)) {
+ goto __966
+ }
+ Xsqlite3VdbeLeave(tls, p)
+__966:
+ ;
+ return rc
+
+too_big:
+ Xsqlite3VdbeError(tls, p, ts+5737, 0)
+ rc = SQLITE_TOOBIG
+ goto abort_due_to_error
+
+no_mem:
+ Xsqlite3OomFault(tls, db)
+ Xsqlite3VdbeError(tls, p, ts+1483, 0)
+ rc = SQLITE_NOMEM
+ goto abort_due_to_error
+
+abort_due_to_interrupt:
+ ;
+ rc = SQLITE_INTERRUPT
+ goto abort_due_to_error
+ return int32(0)
+}
+
+var azType = [4]uintptr{ts + 6521, ts + 6530, ts + 6537,
+ ts + 6543}
+var and_logic = [9]uint8{uint8(0), uint8(0), uint8(0), uint8(0), uint8(1), uint8(2), uint8(0), uint8(2), uint8(2)}
+var or_logic = [9]uint8{uint8(0), uint8(1), uint8(2), uint8(1), uint8(1), uint8(1), uint8(2), uint8(1), uint8(2)}
+var aMask = [12]uint8{
+ uint8(0x10), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x01), uint8(0x2),
+ uint8(0x01), uint8(0x01), uint8(0x10), uint8(0x10),
+}
+var aFlag1 = [2]U16{U16(MEM_Blob), U16(MEM_Str | MEM_Term)}
+var vfsFlags int32 = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_TRANSIENT_DB
+
+// Valid sqlite3_blob* handles point to Incrblob structures.
+type Incrblob1 = struct {
+ FnByte int32
+ FiOffset int32
+ FiCol U16
+ F__ccgo_pad1 [6]byte
+ FpCsr uintptr
+ FpStmt uintptr
+ Fdb uintptr
+ FzDb uintptr
+ FpTab uintptr
+}
+
+// Valid sqlite3_blob* handles point to Incrblob structures.
+type Incrblob = Incrblob1
+
+func blobSeekToRow(tls *libc.TLS, p uintptr, iRow Sqlite3_int64, pzErr uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+ var zErr uintptr = uintptr(0)
+ var v uintptr = (*Incrblob)(unsafe.Pointer(p)).FpStmt
+
+ (*Mem)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FaMem + 1*56)).Fflags = U16(MEM_Int)
+ *(*I64)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FaMem + 1*56)) = iRow
+
+ if (*Vdbe)(unsafe.Pointer(v)).Fpc > 4 {
+ (*Vdbe)(unsafe.Pointer(v)).Fpc = 4
+
+ rc = Xsqlite3VdbeExec(tls, v)
+ } else {
+ rc = Xsqlite3_step(tls, (*Incrblob)(unsafe.Pointer(p)).FpStmt)
+ }
+ if rc == SQLITE_ROW {
+ var pC uintptr = *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FapCsr))
+ var type1 U32
+
+ if int32((*VdbeCursor)(unsafe.Pointer(pC)).FnHdrParsed) > int32((*Incrblob)(unsafe.Pointer(p)).FiCol) {
+ type1 = *(*U32)(unsafe.Pointer(pC + 112 + uintptr((*Incrblob)(unsafe.Pointer(p)).FiCol)*4))
+ } else {
+ type1 = uint32(0)
+ }
+
+ if type1 < U32(12) {
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+6555,
+ libc.VaList(bp, func() uintptr {
+ if type1 == U32(0) {
+ return ts + 6584
+ }
+ return func() uintptr {
+ if type1 == U32(7) {
+ return ts + 6589
+ }
+ return ts + 6594
+ }()
+ }()))
+ rc = SQLITE_ERROR
+ Xsqlite3_finalize(tls, (*Incrblob)(unsafe.Pointer(p)).FpStmt)
+ (*Incrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0)
+ } else {
+ (*Incrblob)(unsafe.Pointer(p)).FiOffset = int32(*(*U32)(unsafe.Pointer(pC + 112 + uintptr(int32((*Incrblob)(unsafe.Pointer(p)).FiCol)+int32((*VdbeCursor)(unsafe.Pointer(pC)).FnField))*4)))
+ (*Incrblob)(unsafe.Pointer(p)).FnByte = int32(Xsqlite3VdbeSerialTypeLen(tls, type1))
+ (*Incrblob)(unsafe.Pointer(p)).FpCsr = *(*uintptr)(unsafe.Pointer(pC + 48))
+ Xsqlite3BtreeIncrblobCursor(tls, (*Incrblob)(unsafe.Pointer(p)).FpCsr)
+ }
+ }
+
+ if rc == SQLITE_ROW {
+ rc = SQLITE_OK
+ } else if (*Incrblob)(unsafe.Pointer(p)).FpStmt != 0 {
+ rc = Xsqlite3_finalize(tls, (*Incrblob)(unsafe.Pointer(p)).FpStmt)
+ (*Incrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0)
+ if rc == SQLITE_OK {
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+6602, libc.VaList(bp+8, iRow))
+ rc = SQLITE_ERROR
+ } else {
+ zErr = Xsqlite3MPrintf(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb, ts+3658, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*Incrblob)(unsafe.Pointer(p)).Fdb)))
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zErr
+ return rc
+}
+
+// Open a blob handle.
+func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, zColumn uintptr, iRow Sqlite_int64, wrFlag int32, ppBlob uintptr) int32 {
+ bp := tls.Alloc(480)
+ defer tls.Free(480)
+
+ var nAttempt int32
+ var iCol int32
+ var rc int32
+
+ var pTab uintptr
+ var pBlob uintptr
+
+ var j int32
+
+ var pFKey uintptr
+ var j1 int32
+ var zFault uintptr
+ var pIdx uintptr
+ var v uintptr
+ var iDb int32
+ var aOp uintptr
+ nAttempt = 0
+ rc = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp + 472)) = uintptr(0)
+ pBlob = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(ppBlob)) = uintptr(0)
+ wrFlag = libc.BoolInt32(!!(wrFlag != 0))
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ pBlob = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Incrblob{})))
+__1:
+ if !(1 != 0) {
+ goto __2
+ }
+ Xsqlite3ParseObjectInit(tls, bp+48, db)
+ if !!(pBlob != 0) {
+ goto __3
+ }
+ goto blob_open_out
+__3:
+ ;
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472)))
+ *(*uintptr)(unsafe.Pointer(bp + 472)) = uintptr(0)
+
+ Xsqlite3BtreeEnterAll(tls, db)
+ pTab = Xsqlite3LocateTable(tls, bp+48, uint32(0), zTable, zDb)
+ if !(pTab != 0 && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __4
+ }
+ pTab = uintptr(0)
+ Xsqlite3ErrorMsg(tls, bp+48, ts+6622, libc.VaList(bp, zTable))
+__4:
+ ;
+ if !(pTab != 0 && !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0))) {
+ goto __5
+ }
+ pTab = uintptr(0)
+ Xsqlite3ErrorMsg(tls, bp+48, ts+6652, libc.VaList(bp+8, zTable))
+__5:
+ ;
+ if !(pTab != 0 && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __6
+ }
+ pTab = uintptr(0)
+ Xsqlite3ErrorMsg(tls, bp+48, ts+6688, libc.VaList(bp+16, zTable))
+__6:
+ ;
+ if !!(pTab != 0) {
+ goto __7
+ }
+ if !((*Parse)(unsafe.Pointer(bp+48)).FzErrMsg != 0) {
+ goto __8
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472)))
+ *(*uintptr)(unsafe.Pointer(bp + 472)) = (*Parse)(unsafe.Pointer(bp + 48)).FzErrMsg
+ (*Parse)(unsafe.Pointer(bp + 48)).FzErrMsg = uintptr(0)
+__8:
+ ;
+ rc = SQLITE_ERROR
+ Xsqlite3BtreeLeaveAll(tls, db)
+ goto blob_open_out
+__7:
+ ;
+ (*Incrblob)(unsafe.Pointer(pBlob)).FpTab = pTab
+ (*Incrblob)(unsafe.Pointer(pBlob)).FzDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema))*32)).FzDbSName
+
+ iCol = 0
+__9:
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __11
+ }
+ if !(Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FzCnName, zColumn) == 0) {
+ goto __12
+ }
+ goto __11
+__12:
+ ;
+ goto __10
+__10:
+ iCol++
+ goto __9
+ goto __11
+__11:
+ ;
+ if !(iCol == int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __13
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472)))
+ *(*uintptr)(unsafe.Pointer(bp + 472)) = Xsqlite3MPrintf(tls, db, ts+6709, libc.VaList(bp+24, zColumn))
+ rc = SQLITE_ERROR
+ Xsqlite3BtreeLeaveAll(tls, db)
+ goto blob_open_out
+__13:
+ ;
+ if !(wrFlag != 0) {
+ goto __14
+ }
+ zFault = uintptr(0)
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0) {
+ goto __15
+ }
+
+ pFKey = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8))
+__16:
+ if !(pFKey != 0) {
+ goto __18
+ }
+ j = 0
+__19:
+ if !(j < (*FKey)(unsafe.Pointer(pFKey)).FnCol) {
+ goto __21
+ }
+ if !((*sColMap)(unsafe.Pointer(pFKey+64+uintptr(j)*16)).FiFrom == iCol) {
+ goto __22
+ }
+ zFault = ts + 6730
+__22:
+ ;
+ goto __20
+__20:
+ j++
+ goto __19
+ goto __21
+__21:
+ ;
+ goto __17
+__17:
+ pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom
+ goto __16
+ goto __18
+__18:
+ ;
+__15:
+ ;
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__23:
+ if !(pIdx != 0) {
+ goto __25
+ }
+ j1 = 0
+__26:
+ if !(j1 < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)) {
+ goto __28
+ }
+
+ if !(int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -2) {
+ goto __29
+ }
+ zFault = ts + 6742
+__29:
+ ;
+ goto __27
+__27:
+ j1++
+ goto __26
+ goto __28
+__28:
+ ;
+ goto __24
+__24:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __23
+ goto __25
+__25:
+ ;
+ if !(zFault != 0) {
+ goto __30
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472)))
+ *(*uintptr)(unsafe.Pointer(bp + 472)) = Xsqlite3MPrintf(tls, db, ts+6750, libc.VaList(bp+32, zFault))
+ rc = SQLITE_ERROR
+ Xsqlite3BtreeLeaveAll(tls, db)
+ goto blob_open_out
+__30:
+ ;
+__14:
+ ;
+ (*Incrblob)(unsafe.Pointer(pBlob)).FpStmt = Xsqlite3VdbeCreate(tls, bp+48)
+
+ if !((*Incrblob)(unsafe.Pointer(pBlob)).FpStmt != 0) {
+ goto __31
+ }
+ v = (*Incrblob)(unsafe.Pointer(pBlob)).FpStmt
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Transaction, iDb, wrFlag,
+ (*Schema)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FpSchema)).Fschema_cookie,
+ (*Schema)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FpSchema)).FiGeneration)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(1))
+
+ aOp = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(openBlob))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&openBlob)), iLn)
+
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
+ goto __32
+ }
+
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp2 = int32((*Table)(unsafe.Pointer(pTab)).Ftnum)
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp3 = wrFlag
+ Xsqlite3VdbeChangeP4(tls, v, 2, (*Table)(unsafe.Pointer(pTab)).FzName, P4_TRANSIENT)
+__32:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
+ goto __33
+ }
+
+ if !(wrFlag != 0) {
+ goto __34
+ }
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fopcode = U8(OP_OpenWrite)
+__34:
+ ;
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fp2 = int32((*Table)(unsafe.Pointer(pTab)).Ftnum)
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fp3 = iDb
+
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fp4type = int8(-3)
+ *(*int32)(unsafe.Pointer(aOp + 1*24 + 16)) = int32((*Table)(unsafe.Pointer(pTab)).FnCol) + 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp2 = int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+
+ (*Parse)(unsafe.Pointer(bp + 48)).FnVar = int16(0)
+ (*Parse)(unsafe.Pointer(bp + 48)).FnMem = 1
+ (*Parse)(unsafe.Pointer(bp + 48)).FnTab = 1
+ Xsqlite3VdbeMakeReady(tls, v, bp+48)
+__33:
+ ;
+__31:
+ ;
+ (*Incrblob)(unsafe.Pointer(pBlob)).FiCol = U16(iCol)
+ (*Incrblob)(unsafe.Pointer(pBlob)).Fdb = db
+ Xsqlite3BtreeLeaveAll(tls, db)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __35
+ }
+ goto blob_open_out
+__35:
+ ;
+ rc = blobSeekToRow(tls, pBlob, iRow, bp+472)
+ if !(libc.PreIncInt32(&nAttempt, 1) >= SQLITE_MAX_SCHEMA_RETRY || rc != SQLITE_SCHEMA) {
+ goto __36
+ }
+ goto __2
+__36:
+ ;
+ Xsqlite3ParseObjectReset(tls, bp+48)
+ goto __1
+__2:
+ ;
+blob_open_out:
+ if !(rc == SQLITE_OK && int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
+ goto __37
+ }
+ *(*uintptr)(unsafe.Pointer(ppBlob)) = pBlob
+ goto __38
+__37:
+ if !(pBlob != 0 && (*Incrblob)(unsafe.Pointer(pBlob)).FpStmt != 0) {
+ goto __39
+ }
+ Xsqlite3VdbeFinalize(tls, (*Incrblob)(unsafe.Pointer(pBlob)).FpStmt)
+__39:
+ ;
+ Xsqlite3DbFree(tls, db, pBlob)
+__38:
+ ;
+ Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 472)) != 0 {
+ return ts + 3658
+ }
+ return uintptr(0)
+ }(), libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(bp + 472))))
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 472)))
+ Xsqlite3ParseObjectReset(tls, bp+48)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+var iLn int32 = 0
+var openBlob = [6]VdbeOpList{
+ {Fopcode: U8(OP_TableLock)},
+ {Fopcode: U8(OP_OpenRead)},
+ {Fopcode: U8(OP_NotExists), Fp2: int8(5), Fp3: int8(1)},
+ {Fopcode: U8(OP_Column), Fp3: int8(1)},
+ {Fopcode: U8(OP_ResultRow), Fp1: int8(1)},
+ {Fopcode: U8(OP_Halt)},
+}
+
+// Close a blob handle that was previously created using
+// sqlite3_blob_open().
+func Xsqlite3_blob_close(tls *libc.TLS, pBlob uintptr) int32 {
+ var p uintptr = pBlob
+ var rc int32
+ var db uintptr
+
+ if p != 0 {
+ var pStmt uintptr = (*Incrblob)(unsafe.Pointer(p)).FpStmt
+ db = (*Incrblob)(unsafe.Pointer(p)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3DbFree(tls, db, p)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ rc = Xsqlite3_finalize(tls, pStmt)
+ } else {
+ rc = SQLITE_OK
+ }
+ return rc
+}
+
+func blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset int32, xCall uintptr) int32 {
+ var rc int32
+ var p uintptr = pBlob
+ var v uintptr
+ var db uintptr
+
+ if p == uintptr(0) {
+ return Xsqlite3MisuseError(tls, 99516)
+ }
+ db = (*Incrblob)(unsafe.Pointer(p)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ v = (*Incrblob)(unsafe.Pointer(p)).FpStmt
+
+ if n < 0 || iOffset < 0 || Sqlite3_int64(iOffset)+Sqlite3_int64(n) > Sqlite3_int64((*Incrblob)(unsafe.Pointer(p)).FnByte) {
+ rc = SQLITE_ERROR
+ } else if v == uintptr(0) {
+ rc = SQLITE_ABORT
+ } else {
+ Xsqlite3BtreeEnterCursor(tls, (*Incrblob)(unsafe.Pointer(p)).FpCsr)
+
+ if xCall == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, U32, U32, uintptr) int32
+ }{Xsqlite3BtreePutData})) && (*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 {
+ var iKey Sqlite3_int64
+ iKey = Xsqlite3BtreeIntegerKey(tls, (*Incrblob)(unsafe.Pointer(p)).FpCsr)
+
+ Xsqlite3VdbePreUpdateHook(tls,
+ v, *(*uintptr)(unsafe.Pointer((*Vdbe)(unsafe.Pointer(v)).FapCsr)), SQLITE_DELETE, (*Incrblob)(unsafe.Pointer(p)).FzDb, (*Incrblob)(unsafe.Pointer(p)).FpTab, iKey, -1, int32((*Incrblob)(unsafe.Pointer(p)).FiCol))
+ }
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, U32, U32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xCall})).f(tls, (*Incrblob)(unsafe.Pointer(p)).FpCsr, uint32(iOffset+(*Incrblob)(unsafe.Pointer(p)).FiOffset), uint32(n), z)
+ Xsqlite3BtreeLeaveCursor(tls, (*Incrblob)(unsafe.Pointer(p)).FpCsr)
+ if rc == SQLITE_ABORT {
+ Xsqlite3VdbeFinalize(tls, v)
+ (*Incrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0)
+ } else {
+ (*Vdbe)(unsafe.Pointer(v)).Frc = rc
+ }
+ }
+ Xsqlite3Error(tls, db, rc)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Read data from a blob handle.
+func Xsqlite3_blob_read(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset int32) int32 {
+ return blobReadWrite(tls, pBlob, z, n, iOffset, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, U32, U32, uintptr) int32
+ }{Xsqlite3BtreePayloadChecked})))
+}
+
+// Write data to a blob handle.
+func Xsqlite3_blob_write(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset int32) int32 {
+ return blobReadWrite(tls, pBlob, z, n, iOffset, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, U32, U32, uintptr) int32
+ }{Xsqlite3BtreePutData})))
+}
+
+// Query a blob handle for the size of the data.
+//
+// The Incrblob.nByte field is fixed for the lifetime of the Incrblob
+// so no mutex is required for access.
+func Xsqlite3_blob_bytes(tls *libc.TLS, pBlob uintptr) int32 {
+ var p uintptr = pBlob
+ if p != 0 && (*Incrblob)(unsafe.Pointer(p)).FpStmt != 0 {
+ return (*Incrblob)(unsafe.Pointer(p)).FnByte
+ }
+ return 0
+}
+
+// Move an existing blob handle to point to a different row of the same
+// database table.
+//
+// If an error occurs, or if the specified row does not exist or does not
+// contain a blob or text value, then an error code is returned and the
+// database handle error code and message set. If this happens, then all
+// subsequent calls to sqlite3_blob_xxx() functions (except blob_close())
+// immediately return SQLITE_ABORT.
+func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Sqlite3_int64) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+ var p uintptr = pBlob
+ var db uintptr
+
+ if p == uintptr(0) {
+ return Xsqlite3MisuseError(tls, 99616)
+ }
+ db = (*Incrblob)(unsafe.Pointer(p)).Fdb
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ if (*Incrblob)(unsafe.Pointer(p)).FpStmt == uintptr(0) {
+ rc = SQLITE_ABORT
+ } else {
+ (*Vdbe)(unsafe.Pointer((*Incrblob)(unsafe.Pointer(p)).FpStmt)).Frc = SQLITE_OK
+ rc = blobSeekToRow(tls, p, iRow, bp+8)
+ if rc != SQLITE_OK {
+ Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ return ts + 3658
+ }
+ return uintptr(0)
+ }(), libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8))))
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+
+ }
+
+ rc = Xsqlite3ApiExit(tls, db, rc)
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Private objects used by the sorter
+type MergeEngine1 = struct {
+ FnTree int32
+ F__ccgo_pad1 [4]byte
+ FpTask uintptr
+ FaTree uintptr
+ FaReadr uintptr
+}
+
+// Private objects used by the sorter
+type MergeEngine = MergeEngine1
+type PmaReader1 = struct {
+ FiReadOff I64
+ FiEof I64
+ FnAlloc int32
+ FnKey int32
+ FpFd uintptr
+ FaAlloc uintptr
+ FaKey uintptr
+ FaBuffer uintptr
+ FnBuffer int32
+ F__ccgo_pad1 [4]byte
+ FaMap uintptr
+ FpIncr uintptr
+}
+
+// Merge PMAs together
+type PmaReader = PmaReader1
+type PmaWriter1 = struct {
+ FeFWErr int32
+ F__ccgo_pad1 [4]byte
+ FaBuffer uintptr
+ FnBuffer int32
+ FiBufStart int32
+ FiBufEnd int32
+ F__ccgo_pad2 [4]byte
+ FiWriteOff I64
+ FpFd uintptr
+}
+
+// Incrementally read one PMA
+type PmaWriter = PmaWriter1
+type SorterRecord1 = struct {
+ FnVal int32
+ F__ccgo_pad1 [4]byte
+ Fu struct{ FpNext uintptr }
+}
+
+// Incrementally write one PMA
+type SorterRecord = SorterRecord1
+type SortSubtask1 = struct {
+ FpThread uintptr
+ FbDone int32
+ F__ccgo_pad1 [4]byte
+ FpSorter uintptr
+ FpUnpacked uintptr
+ Flist SorterList
+ FnPMA int32
+ F__ccgo_pad2 [4]byte
+ FxCompare SorterCompare
+ Ffile SorterFile
+ Ffile2 SorterFile
+}
+
+// A record being sorted
+type SortSubtask = SortSubtask1
+type SorterFile1 = struct {
+ FpFd uintptr
+ FiEof I64
+}
+
+// A sub-task in the sort process
+type SorterFile = SorterFile1
+type SorterList1 = struct {
+ FpList uintptr
+ FaMemory uintptr
+ FszPMA int32
+ F__ccgo_pad1 [4]byte
+}
+
+// Temporary file object wrapper
+type SorterList = SorterList1
+type IncrMerger1 = struct {
+ FpTask uintptr
+ FpMerger uintptr
+ FiStartOff I64
+ FmxSz int32
+ FbEof int32
+ FbUseThread int32
+ F__ccgo_pad1 [4]byte
+ FaFile [2]SorterFile
+}
+
+// In-memory list of records
+type IncrMerger = IncrMerger1
+
+// This object represents a single thread of control in a sort operation.
+// Exactly VdbeSorter.nTask instances of this object are allocated
+// as part of each VdbeSorter object. Instances are never allocated any
+// other way. VdbeSorter.nTask is set to the number of worker threads allowed
+// (see SQLITE_CONFIG_WORKER_THREADS) plus one (the main thread). Thus for
+// single-threaded operation, there is exactly one instance of this object
+// and for multi-threaded operation there are two or more instances.
+//
+// Essentially, this structure contains all those fields of the VdbeSorter
+// structure for which each thread requires a separate instance. For example,
+// each thread requries its own UnpackedRecord object to unpack records in
+// as part of comparison operations.
+//
+// Before a background thread is launched, variable bDone is set to 0. Then,
+// right before it exits, the thread itself sets bDone to 1. This is used for
+// two purposes:
+//
+// 1. When flushing the contents of memory to a level-0 PMA on disk, to
+// attempt to select a SortSubtask for which there is not already an
+// active background thread (since doing so causes the main thread
+// to block until it finishes).
+//
+// 2. If SQLITE_DEBUG_SORTER_THREADS is defined, to determine if a call
+// to sqlite3ThreadJoin() is likely to block. Cases that are likely to
+// block provoke debugging output.
+//
+// In both cases, the effects of the main thread seeing (bDone==0) even
+// after the thread has finished are not dire. So we don't worry about
+// memory barriers and such here.
+type SorterCompare = uintptr
+
+func vdbePmaReaderClear(tls *libc.TLS, pReadr uintptr) {
+ Xsqlite3_free(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FaAlloc)
+ Xsqlite3_free(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FaBuffer)
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FaMap != 0 {
+ Xsqlite3OsUnfetch(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FpFd, int64(0), (*PmaReader)(unsafe.Pointer(pReadr)).FaMap)
+ }
+ vdbeIncrFree(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr)
+ libc.X__builtin___memset_chk(tls, pReadr, 0, uint64(unsafe.Sizeof(PmaReader{})), libc.X__builtin_object_size(tls, pReadr, 0))
+}
+
+func vdbePmaReadBlob(tls *libc.TLS, p uintptr, nByte int32, ppOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iBuf int32
+ var nAvail int32
+
+ if (*PmaReader)(unsafe.Pointer(p)).FaMap != 0 {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*PmaReader)(unsafe.Pointer(p)).FaMap + uintptr((*PmaReader)(unsafe.Pointer(p)).FiReadOff)
+ *(*I64)(unsafe.Pointer(p)) += I64(nByte)
+ return SQLITE_OK
+ }
+
+ iBuf = int32((*PmaReader)(unsafe.Pointer(p)).FiReadOff % I64((*PmaReader)(unsafe.Pointer(p)).FnBuffer))
+ if iBuf == 0 {
+ var nRead int32
+ var rc int32
+
+ if (*PmaReader)(unsafe.Pointer(p)).FiEof-(*PmaReader)(unsafe.Pointer(p)).FiReadOff > I64((*PmaReader)(unsafe.Pointer(p)).FnBuffer) {
+ nRead = (*PmaReader)(unsafe.Pointer(p)).FnBuffer
+ } else {
+ nRead = int32((*PmaReader)(unsafe.Pointer(p)).FiEof - (*PmaReader)(unsafe.Pointer(p)).FiReadOff)
+ }
+
+ rc = Xsqlite3OsRead(tls, (*PmaReader)(unsafe.Pointer(p)).FpFd, (*PmaReader)(unsafe.Pointer(p)).FaBuffer, nRead, (*PmaReader)(unsafe.Pointer(p)).FiReadOff)
+
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ nAvail = (*PmaReader)(unsafe.Pointer(p)).FnBuffer - iBuf
+
+ if nByte <= nAvail {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*PmaReader)(unsafe.Pointer(p)).FaBuffer + uintptr(iBuf)
+ *(*I64)(unsafe.Pointer(p)) += I64(nByte)
+ } else {
+ var nRem int32
+
+ if (*PmaReader)(unsafe.Pointer(p)).FnAlloc < nByte {
+ var aNew uintptr
+ var nNew Sqlite3_int64 = func() int64 {
+ if int64(128) > int64(2)*Sqlite3_int64((*PmaReader)(unsafe.Pointer(p)).FnAlloc) {
+ return int64(128)
+ }
+ return int64(2) * Sqlite3_int64((*PmaReader)(unsafe.Pointer(p)).FnAlloc)
+ }()
+ for Sqlite3_int64(nByte) > nNew {
+ nNew = nNew * int64(2)
+ }
+ aNew = Xsqlite3Realloc(tls, (*PmaReader)(unsafe.Pointer(p)).FaAlloc, uint64(nNew))
+ if !(aNew != 0) {
+ return SQLITE_NOMEM
+ }
+ (*PmaReader)(unsafe.Pointer(p)).FnAlloc = int32(nNew)
+ (*PmaReader)(unsafe.Pointer(p)).FaAlloc = aNew
+ }
+
+ libc.X__builtin___memcpy_chk(tls, (*PmaReader)(unsafe.Pointer(p)).FaAlloc, (*PmaReader)(unsafe.Pointer(p)).FaBuffer+uintptr(iBuf), uint64(nAvail), libc.X__builtin_object_size(tls, (*PmaReader)(unsafe.Pointer(p)).FaAlloc, 0))
+ *(*I64)(unsafe.Pointer(p)) += I64(nAvail)
+ nRem = nByte - nAvail
+
+ for nRem > 0 {
+ var rc int32
+ var nCopy int32
+
+ nCopy = nRem
+ if nRem > (*PmaReader)(unsafe.Pointer(p)).FnBuffer {
+ nCopy = (*PmaReader)(unsafe.Pointer(p)).FnBuffer
+ }
+ rc = vdbePmaReadBlob(tls, p, nCopy, bp)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ libc.X__builtin___memcpy_chk(tls, (*PmaReader)(unsafe.Pointer(p)).FaAlloc+uintptr(nByte-nRem), *(*uintptr)(unsafe.Pointer(bp)), uint64(nCopy), libc.X__builtin_object_size(tls, (*PmaReader)(unsafe.Pointer(p)).FaAlloc+uintptr(nByte-nRem), 0))
+ nRem = nRem - nCopy
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*PmaReader)(unsafe.Pointer(p)).FaAlloc
+ }
+
+ return SQLITE_OK
+}
+
+func vdbePmaReadVarint(tls *libc.TLS, p uintptr, pnOut uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var iBuf int32
+
+ if (*PmaReader)(unsafe.Pointer(p)).FaMap != 0 {
+ *(*I64)(unsafe.Pointer(p)) += I64(Xsqlite3GetVarint(tls, (*PmaReader)(unsafe.Pointer(p)).FaMap+uintptr((*PmaReader)(unsafe.Pointer(p)).FiReadOff), pnOut))
+ } else {
+ iBuf = int32((*PmaReader)(unsafe.Pointer(p)).FiReadOff % I64((*PmaReader)(unsafe.Pointer(p)).FnBuffer))
+ if iBuf != 0 && (*PmaReader)(unsafe.Pointer(p)).FnBuffer-iBuf >= 9 {
+ *(*I64)(unsafe.Pointer(p)) += I64(Xsqlite3GetVarint(tls, (*PmaReader)(unsafe.Pointer(p)).FaBuffer+uintptr(iBuf), pnOut))
+ } else {
+ var i int32 = 0
+ var rc int32
+ for __ccgo := true; __ccgo; __ccgo = int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))))&0x80 != 0 {
+ rc = vdbePmaReadBlob(tls, p, 1, bp)
+ if rc != 0 {
+ return rc
+ }
+ *(*U8)(unsafe.Pointer(bp + 8 + uintptr(libc.PostIncInt32(&i, 1)&0xf))) = *(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))
+ }
+ Xsqlite3GetVarint(tls, bp+8, pnOut)
+ }
+ }
+
+ return SQLITE_OK
+}
+
+func vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*SorterFile)(unsafe.Pointer(pFile)).FiEof <= I64((*Sqlite3)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) {
+ var pFd uintptr = (*SorterFile)(unsafe.Pointer(pFile)).FpFd
+ if (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= 3 {
+ rc = Xsqlite3OsFetch(tls, pFd, int64(0), int32((*SorterFile)(unsafe.Pointer(pFile)).FiEof), pp)
+
+ }
+ }
+ return rc
+}
+
+func vdbePmaReaderSeek(tls *libc.TLS, pTask uintptr, pReadr uintptr, pFile uintptr, iOff I64) int32 {
+ var rc int32 = SQLITE_OK
+
+ if Xsqlite3FaultSim(tls, 201) != 0 {
+ return SQLITE_IOERR | int32(1)<<8
+ }
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FaMap != 0 {
+ Xsqlite3OsUnfetch(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FpFd, int64(0), (*PmaReader)(unsafe.Pointer(pReadr)).FaMap)
+ (*PmaReader)(unsafe.Pointer(pReadr)).FaMap = uintptr(0)
+ }
+ (*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff = iOff
+ (*PmaReader)(unsafe.Pointer(pReadr)).FiEof = (*SorterFile)(unsafe.Pointer(pFile)).FiEof
+ (*PmaReader)(unsafe.Pointer(pReadr)).FpFd = (*SorterFile)(unsafe.Pointer(pFile)).FpFd
+
+ rc = vdbeSorterMapFile(tls, pTask, pFile, pReadr+64)
+ if rc == SQLITE_OK && (*PmaReader)(unsafe.Pointer(pReadr)).FaMap == uintptr(0) {
+ var pgsz int32 = (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fpgsz
+ var iBuf int32 = int32((*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff % I64(pgsz))
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FaBuffer == uintptr(0) {
+ (*PmaReader)(unsafe.Pointer(pReadr)).FaBuffer = Xsqlite3Malloc(tls, uint64(pgsz))
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FaBuffer == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ (*PmaReader)(unsafe.Pointer(pReadr)).FnBuffer = pgsz
+ }
+ if rc == SQLITE_OK && iBuf != 0 {
+ var nRead int32 = pgsz - iBuf
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff+I64(nRead) > (*PmaReader)(unsafe.Pointer(pReadr)).FiEof {
+ nRead = int32((*PmaReader)(unsafe.Pointer(pReadr)).FiEof - (*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff)
+ }
+ rc = Xsqlite3OsRead(tls,
+ (*PmaReader)(unsafe.Pointer(pReadr)).FpFd, (*PmaReader)(unsafe.Pointer(pReadr)).FaBuffer+uintptr(iBuf), nRead, (*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff)
+
+ }
+ }
+
+ return rc
+}
+
+func vdbePmaReaderNext(tls *libc.TLS, pReadr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ *(*U64)(unsafe.Pointer(bp)) = uint64(0)
+
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff >= (*PmaReader)(unsafe.Pointer(pReadr)).FiEof {
+ var pIncr uintptr = (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr
+ var bEof int32 = 1
+ if pIncr != 0 {
+ rc = vdbeIncrSwap(tls, pIncr)
+ if rc == SQLITE_OK && (*IncrMerger)(unsafe.Pointer(pIncr)).FbEof == 0 {
+ rc = vdbePmaReaderSeek(tls,
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask, pReadr, pIncr+40, (*IncrMerger)(unsafe.Pointer(pIncr)).FiStartOff)
+ bEof = 0
+ }
+ }
+
+ if bEof != 0 {
+ vdbePmaReaderClear(tls, pReadr)
+
+ return rc
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = vdbePmaReadVarint(tls, pReadr, bp)
+ }
+ if rc == SQLITE_OK {
+ (*PmaReader)(unsafe.Pointer(pReadr)).FnKey = int32(*(*U64)(unsafe.Pointer(bp)))
+ rc = vdbePmaReadBlob(tls, pReadr, int32(*(*U64)(unsafe.Pointer(bp))), pReadr+40)
+
+ }
+
+ return rc
+}
+
+func vdbePmaReaderInit(tls *libc.TLS, pTask uintptr, pFile uintptr, iStart I64, pReadr uintptr, pnByte uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = vdbePmaReaderSeek(tls, pTask, pReadr, pFile, iStart)
+ if rc == SQLITE_OK {
+ *(*U64)(unsafe.Pointer(bp)) = uint64(0)
+ rc = vdbePmaReadVarint(tls, pReadr, bp)
+ (*PmaReader)(unsafe.Pointer(pReadr)).FiEof = I64(U64((*PmaReader)(unsafe.Pointer(pReadr)).FiReadOff) + *(*U64)(unsafe.Pointer(bp)))
+ *(*I64)(unsafe.Pointer(pnByte)) += I64(*(*U64)(unsafe.Pointer(bp)))
+ }
+
+ if rc == SQLITE_OK {
+ rc = vdbePmaReaderNext(tls, pReadr)
+ }
+ return rc
+}
+
+func vdbeSorterCompareTail(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, pKey1 uintptr, nKey1 int32, pKey2 uintptr, nKey2 int32) int32 {
+ var r2 uintptr = (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked
+ if *(*int32)(unsafe.Pointer(pbKey2Cached)) == 0 {
+ Xsqlite3VdbeRecordUnpack(tls, (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo, nKey2, pKey2, r2)
+ *(*int32)(unsafe.Pointer(pbKey2Cached)) = 1
+ }
+ return Xsqlite3VdbeRecordCompareWithSkip(tls, nKey1, pKey1, r2, 1)
+}
+
+func vdbeSorterCompare(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, pKey1 uintptr, nKey1 int32, pKey2 uintptr, nKey2 int32) int32 {
+ var r2 uintptr = (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked
+ if !(*(*int32)(unsafe.Pointer(pbKey2Cached)) != 0) {
+ Xsqlite3VdbeRecordUnpack(tls, (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo, nKey2, pKey2, r2)
+ *(*int32)(unsafe.Pointer(pbKey2Cached)) = 1
+ }
+ return Xsqlite3VdbeRecordCompare(tls, nKey1, pKey1, r2)
+}
+
+func vdbeSorterCompareText(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, pKey1 uintptr, nKey1 int32, pKey2 uintptr, nKey2 int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p1 uintptr = pKey1
+ var p2 uintptr = pKey2
+ var v1 uintptr = p1 + uintptr(*(*U8)(unsafe.Pointer(p1)))
+ var v2 uintptr = p2 + uintptr(*(*U8)(unsafe.Pointer(p2)))
+
+ var res int32
+
+ *(*int32)(unsafe.Pointer(bp)) = int32(U32(*(*U8)(unsafe.Pointer(p1 + 1))))
+ if *(*int32)(unsafe.Pointer(bp)) >= 0x80 {
+ Xsqlite3GetVarint32(tls, p1+1, bp)
+ }
+ *(*int32)(unsafe.Pointer(bp + 4)) = int32(U32(*(*U8)(unsafe.Pointer(p2 + 1))))
+ if *(*int32)(unsafe.Pointer(bp + 4)) >= 0x80 {
+ Xsqlite3GetVarint32(tls, p2+1, bp+4)
+ }
+ res = libc.Xmemcmp(tls, v1, v2, uint64((func() int32 {
+ if *(*int32)(unsafe.Pointer(bp)) < *(*int32)(unsafe.Pointer(bp + 4)) {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ return *(*int32)(unsafe.Pointer(bp + 4))
+ }()-13)/2))
+ if res == 0 {
+ res = *(*int32)(unsafe.Pointer(bp)) - *(*int32)(unsafe.Pointer(bp + 4))
+ }
+
+ if res == 0 {
+ if int32((*KeyInfo)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FnKeyField) > 1 {
+ res = vdbeSorterCompareTail(tls,
+ pTask, pbKey2Cached, pKey1, nKey1, pKey2, nKey2)
+ }
+ } else {
+ if *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FaSortFlags)) != 0 {
+ res = res * -1
+ }
+ }
+
+ return res
+}
+
+func vdbeSorterCompareInt(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, pKey1 uintptr, nKey1 int32, pKey2 uintptr, nKey2 int32) int32 {
+ var p1 uintptr = pKey1
+ var p2 uintptr = pKey2
+ var s1 int32 = int32(*(*U8)(unsafe.Pointer(p1 + 1)))
+ var s2 int32 = int32(*(*U8)(unsafe.Pointer(p2 + 1)))
+ var v1 uintptr = p1 + uintptr(*(*U8)(unsafe.Pointer(p1)))
+ var v2 uintptr = p2 + uintptr(*(*U8)(unsafe.Pointer(p2)))
+ var res int32
+
+ if s1 == s2 {
+ var n U8 = aLen[s1]
+ var i int32
+ res = 0
+ for i = 0; i < int32(n); i++ {
+ if libc.AssignInt32(&res, int32(*(*U8)(unsafe.Pointer(v1 + uintptr(i))))-int32(*(*U8)(unsafe.Pointer(v2 + uintptr(i))))) != 0 {
+ if (int32(*(*U8)(unsafe.Pointer(v1)))^int32(*(*U8)(unsafe.Pointer(v2))))&0x80 != 0 {
+ if int32(*(*U8)(unsafe.Pointer(v1)))&0x80 != 0 {
+ res = -1
+ } else {
+ res = +1
+ }
+ }
+ break
+ }
+ }
+ } else if s1 > 7 && s2 > 7 {
+ res = s1 - s2
+ } else {
+ if s2 > 7 {
+ res = +1
+ } else if s1 > 7 {
+ res = -1
+ } else {
+ res = s1 - s2
+ }
+
+ if res > 0 {
+ if int32(*(*U8)(unsafe.Pointer(v1)))&0x80 != 0 {
+ res = -1
+ }
+ } else {
+ if int32(*(*U8)(unsafe.Pointer(v2)))&0x80 != 0 {
+ res = +1
+ }
+ }
+ }
+
+ if res == 0 {
+ if int32((*KeyInfo)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FnKeyField) > 1 {
+ res = vdbeSorterCompareTail(tls,
+ pTask, pbKey2Cached, pKey1, nKey1, pKey2, nKey2)
+ }
+ } else if *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FaSortFlags)) != 0 {
+ res = res * -1
+ }
+
+ return res
+}
+
+var aLen = [10]U8{U8(0), U8(1), U8(2), U8(3), U8(4), U8(6), U8(8), U8(0), U8(0), U8(0)}
+
+// Initialize the temporary index cursor just opened as a sorter cursor.
+//
+// Usually, the sorter module uses the value of (pCsr->pKeyInfo->nKeyField)
+// to determine the number of fields that should be compared from the
+// records being sorted. However, if the value passed as argument nField
+// is non-zero and the sorter is able to guarantee a stable sort, nField
+// is used instead. This is used when sorting records for a CREATE INDEX
+// statement. In this case, keys are always delivered to the sorter in
+// order of the primary key, which happens to be make up the final part
+// of the records being sorted. So if the sort is stable, there is never
+// any reason to compare PK fields and they can be ignored for a small
+// performance boost.
+//
+// The sorter can guarantee a stable sort when running in single-threaded
+// mode, but not in multi-threaded mode.
+//
+// SQLITE_OK is returned if successful, or an SQLite error code otherwise.
+func Xsqlite3VdbeSorterInit(tls *libc.TLS, db uintptr, nField int32, pCsr uintptr) int32 {
+ var pgsz int32
+ var i int32
+ var pSorter uintptr
+ var pKeyInfo uintptr
+ var szKeyInfo int32
+ var sz int32
+ var rc int32 = SQLITE_OK
+ var nWorker int32
+
+ if Xsqlite3TempInMemory(tls, db) != 0 || int32(Xsqlite3Config.FbCoreMutex) == 0 {
+ nWorker = 0
+ } else {
+ nWorker = *(*int32)(unsafe.Pointer(db + 136 + 11*4))
+ }
+
+ szKeyInfo = int32(uint64(unsafe.Sizeof(KeyInfo{})) + uint64(int32((*KeyInfo)(unsafe.Pointer((*VdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo)).FnKeyField)-1)*uint64(unsafe.Sizeof(uintptr(0))))
+ sz = int32(uint64(unsafe.Sizeof(VdbeSorter{})) + uint64(nWorker)*uint64(unsafe.Sizeof(SortSubtask{})))
+
+ pSorter = Xsqlite3DbMallocZero(tls, db, uint64(sz+szKeyInfo))
+ *(*uintptr)(unsafe.Pointer(pCsr + 48)) = pSorter
+ if pSorter == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpKeyInfo = libc.AssignUintptr(&pKeyInfo, pSorter+uintptr(sz))
+ libc.X__builtin___memcpy_chk(tls, pKeyInfo, (*VdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo, uint64(szKeyInfo), libc.X__builtin_object_size(tls, pKeyInfo, 0))
+ (*KeyInfo)(unsafe.Pointer(pKeyInfo)).Fdb = uintptr(0)
+ if nField != 0 && nWorker == 0 {
+ (*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField = U16(nField)
+ }
+ Xsqlite3BtreeEnter(tls, pBt)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Fpgsz = libc.AssignInt32(&pgsz, Xsqlite3BtreeGetPageSize(tls, pBt))
+ Xsqlite3BtreeLeave(tls, pBt)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask = U8(nWorker + 1)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FiPrev = U8(nWorker - 1)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUseThreads = U8(libc.Bool32(int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask) > 1))
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Fdb = db
+ for i = 0; i < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask); i++ {
+ var pTask uintptr = pSorter + 96 + uintptr(i)*104
+ (*SortSubtask)(unsafe.Pointer(pTask)).FpSorter = pSorter
+ }
+
+ if !(Xsqlite3TempInMemory(tls, db) != 0) {
+ var mxCache I64
+ var szPma U32 = Xsqlite3Config.FszPma
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize = int32(szPma * U32(pgsz))
+
+ mxCache = I64((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).Fcache_size)
+ if mxCache < int64(0) {
+ mxCache = mxCache * int64(-1024)
+ } else {
+ mxCache = mxCache * I64(pgsz)
+ }
+ mxCache = func() int64 {
+ if mxCache < int64(int32(1)<<29) {
+ return mxCache
+ }
+ return int64(int32(1) << 29)
+ }()
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize = func() int32 {
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize > int32(mxCache) {
+ return (*VdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize
+ }
+ return int32(mxCache)
+ }()
+
+ if int32(Xsqlite3Config.FbSmallMalloc) == 0 {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = pgsz
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = Xsqlite3Malloc(tls, uint64(pgsz))
+ if !(int32((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory) != 0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ }
+
+ if int32((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) < 13 &&
+ (*(*uintptr)(unsafe.Pointer(pKeyInfo + 32)) == uintptr(0) || *(*uintptr)(unsafe.Pointer(pKeyInfo + 32)) == (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl) &&
+ int32(*(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags)))&KEYINFO_ORDER_BIGNULL == 0 {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FtypeMask = U8(SORTER_TYPE_INTEGER | SORTER_TYPE_TEXT)
+ }
+ }
+
+ return rc
+}
+
+func vdbeSorterRecordFree(tls *libc.TLS, db uintptr, pRecord uintptr) {
+ var p uintptr
+ var pNext uintptr
+ for p = pRecord; p != 0; p = pNext {
+ pNext = *(*uintptr)(unsafe.Pointer(p + 8))
+ Xsqlite3DbFree(tls, db, p)
+ }
+}
+
+func vdbeSortSubtaskCleanup(tls *libc.TLS, db uintptr, pTask uintptr) {
+ Xsqlite3DbFree(tls, db, (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)
+
+ if (*SortSubtask)(unsafe.Pointer(pTask)).Flist.FaMemory != 0 {
+ Xsqlite3_free(tls, (*SortSubtask)(unsafe.Pointer(pTask)).Flist.FaMemory)
+ } else {
+ vdbeSorterRecordFree(tls, uintptr(0), (*SortSubtask)(unsafe.Pointer(pTask)).Flist.FpList)
+ }
+ if (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FpFd != 0 {
+ Xsqlite3OsCloseFree(tls, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FpFd)
+ }
+ if (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FpFd != 0 {
+ Xsqlite3OsCloseFree(tls, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FpFd)
+ }
+ libc.X__builtin___memset_chk(tls, pTask, 0, uint64(unsafe.Sizeof(SortSubtask{})), libc.X__builtin_object_size(tls, pTask, 0))
+}
+
+func vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FpThread != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(int64(SQLITE_ERROR))
+
+ Xsqlite3ThreadJoin(tls, (*SortSubtask)(unsafe.Pointer(pTask)).FpThread, bp)
+
+ rc = int32(*(*uintptr)(unsafe.Pointer(bp)))
+
+ (*SortSubtask)(unsafe.Pointer(pTask)).FbDone = 0
+ (*SortSubtask)(unsafe.Pointer(pTask)).FpThread = uintptr(0)
+ }
+ return rc
+}
+
+func vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) int32 {
+ return Xsqlite3ThreadCreate(tls, pTask, xTask, pIn)
+}
+
+func vdbeSorterJoinAll(tls *libc.TLS, pSorter uintptr, rcin int32) int32 {
+ var rc int32 = rcin
+ var i int32
+
+ for i = int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask) - 1; i >= 0; i-- {
+ var pTask uintptr = pSorter + 96 + uintptr(i)*104
+ var rc2 int32 = vdbeSorterJoinThread(tls, pTask)
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+ return rc
+}
+
+func vdbeMergeEngineNew(tls *libc.TLS, nReader int32) uintptr {
+ var N int32 = 2
+ var nByte int32
+ var pNew uintptr
+
+ for N < nReader {
+ N = N + N
+ }
+ nByte = int32(uint64(unsafe.Sizeof(MergeEngine{})) + uint64(N)*(uint64(unsafe.Sizeof(int32(0)))+uint64(unsafe.Sizeof(PmaReader{}))))
+
+ if Xsqlite3FaultSim(tls, 100) != 0 {
+ pNew = uintptr(0)
+ } else {
+ pNew = Xsqlite3MallocZero(tls, uint64(nByte))
+ }
+ if pNew != 0 {
+ (*MergeEngine)(unsafe.Pointer(pNew)).FnTree = N
+ (*MergeEngine)(unsafe.Pointer(pNew)).FpTask = uintptr(0)
+ (*MergeEngine)(unsafe.Pointer(pNew)).FaReadr = pNew + 1*32
+ (*MergeEngine)(unsafe.Pointer(pNew)).FaTree = (*MergeEngine)(unsafe.Pointer(pNew)).FaReadr + uintptr(N)*80
+ }
+ return pNew
+}
+
+func vdbeMergeEngineFree(tls *libc.TLS, pMerger uintptr) {
+ var i int32
+ if pMerger != 0 {
+ for i = 0; i < (*MergeEngine)(unsafe.Pointer(pMerger)).FnTree; i++ {
+ vdbePmaReaderClear(tls, (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr+uintptr(i)*80)
+ }
+ }
+ Xsqlite3_free(tls, pMerger)
+}
+
+func vdbeIncrFree(tls *libc.TLS, pIncr uintptr) {
+ if pIncr != 0 {
+ if (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 {
+ vdbeSorterJoinThread(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask)
+ if (*SorterFile)(unsafe.Pointer(pIncr+40)).FpFd != 0 {
+ Xsqlite3OsCloseFree(tls, (*SorterFile)(unsafe.Pointer(pIncr+40)).FpFd)
+ }
+ if (*SorterFile)(unsafe.Pointer(pIncr+40+1*16)).FpFd != 0 {
+ Xsqlite3OsCloseFree(tls, (*SorterFile)(unsafe.Pointer(pIncr+40+1*16)).FpFd)
+ }
+ }
+ vdbeMergeEngineFree(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpMerger)
+ Xsqlite3_free(tls, pIncr)
+ }
+}
+
+// Reset a sorting cursor back to its original empty state.
+func Xsqlite3VdbeSorterReset(tls *libc.TLS, db uintptr, pSorter uintptr) {
+ var i int32
+ vdbeSorterJoinAll(tls, pSorter, SQLITE_OK)
+
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader != 0 {
+ vdbePmaReaderClear(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader)
+ Xsqlite3DbFree(tls, db, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader = uintptr(0)
+ }
+ vdbeMergeEngineFree(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger = uintptr(0)
+ for i = 0; i < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask); i++ {
+ var pTask uintptr = pSorter + 96 + uintptr(i)*104
+ vdbeSortSubtaskCleanup(tls, db, pTask)
+ (*SortSubtask)(unsafe.Pointer(pTask)).FpSorter = pSorter
+ }
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory == uintptr(0) {
+ vdbeSorterRecordFree(tls, uintptr(0), (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList)
+ }
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = uintptr(0)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FszPMA = 0
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUsePMA = U8(0)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory = 0
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize = 0
+ Xsqlite3DbFree(tls, db, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpUnpacked)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpUnpacked = uintptr(0)
+}
+
+// Free any cursor components allocated by sqlite3VdbeSorterXXX routines.
+func Xsqlite3VdbeSorterClose(tls *libc.TLS, db uintptr, pCsr uintptr) {
+ var pSorter uintptr
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+ if pSorter != 0 {
+ Xsqlite3VdbeSorterReset(tls, db, pSorter)
+ Xsqlite3_free(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory)
+ Xsqlite3DbFree(tls, db, pSorter)
+ *(*uintptr)(unsafe.Pointer(pCsr + 48)) = uintptr(0)
+ }
+}
+
+func vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, nByte I64) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+ *(*I64)(unsafe.Pointer(bp + 8)) = nByte
+
+ if *(*I64)(unsafe.Pointer(bp + 8)) <= I64((*Sqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= 3 {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp)) = 4 * 1024
+ Xsqlite3OsFileControlHint(tls, pFd, SQLITE_FCNTL_CHUNK_SIZE, bp)
+ Xsqlite3OsFileControlHint(tls, pFd, SQLITE_FCNTL_SIZE_HINT, bp+8)
+ Xsqlite3OsFetch(tls, pFd, int64(0), int32(*(*I64)(unsafe.Pointer(bp + 8))), bp+16)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 {
+ Xsqlite3OsUnfetch(tls, pFd, int64(0), *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ }
+}
+
+func vdbeSorterOpenTempFile(tls *libc.TLS, db uintptr, nExtend I64, ppFd uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if Xsqlite3FaultSim(tls, 202) != 0 {
+ return SQLITE_IOERR | int32(13)<<8
+ }
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3OsOpenMalloc(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), ppFd,
+ SQLITE_OPEN_TEMP_JOURNAL|SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_EXCLUSIVE|SQLITE_OPEN_DELETEONCLOSE, bp)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*I64)(unsafe.Pointer(bp + 8)) = int64(SQLITE_MAX_MMAP_SIZE)
+ Xsqlite3OsFileControlHint(tls, *(*uintptr)(unsafe.Pointer(ppFd)), SQLITE_FCNTL_MMAP_SIZE, bp+8)
+ if nExtend > int64(0) {
+ vdbeSorterExtendFile(tls, db, *(*uintptr)(unsafe.Pointer(ppFd)), nExtend)
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func vdbeSortAllocUnpacked(tls *libc.TLS, pTask uintptr) int32 {
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked == uintptr(0) {
+ (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked = Xsqlite3VdbeAllocUnpackedRecord(tls, (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*UnpackedRecord)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)).FnField = (*KeyInfo)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FpKeyInfo)).FnKeyField
+ (*UnpackedRecord)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)).FerrCode = U8(0)
+ }
+ return SQLITE_OK
+}
+
+func vdbeSorterMerge(tls *libc.TLS, pTask uintptr, p1 uintptr, p2 uintptr) uintptr {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pp uintptr = bp
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+
+ for {
+ var res int32
+ res = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SortSubtask)(unsafe.Pointer(pTask)).FxCompare})).f(tls,
+ pTask, bp+8, p1+uintptr(1)*16, (*SorterRecord)(unsafe.Pointer(p1)).FnVal, p2+uintptr(1)*16, (*SorterRecord)(unsafe.Pointer(p2)).FnVal)
+
+ if res <= 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = p1
+ pp = p1 + 8
+ p1 = *(*uintptr)(unsafe.Pointer(p1 + 8))
+ if p1 == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pp)) = p2
+ break
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pp)) = p2
+ pp = p2 + 8
+ p2 = *(*uintptr)(unsafe.Pointer(p2 + 8))
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ if p2 == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pp)) = p1
+ break
+ }
+ }
+ }
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+func vdbeSorterGetCompare(tls *libc.TLS, p uintptr) SorterCompare {
+ if int32((*VdbeSorter)(unsafe.Pointer(p)).FtypeMask) == SORTER_TYPE_INTEGER {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ }{vdbeSorterCompareInt}))
+ } else if int32((*VdbeSorter)(unsafe.Pointer(p)).FtypeMask) == SORTER_TYPE_TEXT {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ }{vdbeSorterCompareText}))
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ }{vdbeSorterCompare}))
+}
+
+func vdbeSorterSort(tls *libc.TLS, pTask uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ var i int32
+ var p uintptr
+ var rc int32
+
+ rc = vdbeSortAllocUnpacked(tls, pTask)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ p = (*SorterList)(unsafe.Pointer(pList)).FpList
+ (*SortSubtask)(unsafe.Pointer(pTask)).FxCompare = vdbeSorterGetCompare(tls, (*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([64]uintptr{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ for p != 0 {
+ var pNext uintptr
+ if (*SorterList)(unsafe.Pointer(pList)).FaMemory != 0 {
+ if p == (*SorterList)(unsafe.Pointer(pList)).FaMemory {
+ pNext = uintptr(0)
+ } else {
+ pNext = (*SorterList)(unsafe.Pointer(pList)).FaMemory + uintptr(*(*int32)(unsafe.Pointer(p + 8)))
+ }
+ } else {
+ pNext = *(*uintptr)(unsafe.Pointer(p + 8))
+ }
+
+ *(*uintptr)(unsafe.Pointer(p + 8)) = uintptr(0)
+ for i = 0; *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) != 0; i++ {
+ p = vdbeSorterMerge(tls, pTask, p, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = p
+ p = pNext
+ }
+
+ p = uintptr(0)
+ for i = 0; i < int32(uint64(unsafe.Sizeof([64]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))); i++ {
+ if *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) == uintptr(0) {
+ continue
+ }
+ if p != 0 {
+ p = vdbeSorterMerge(tls, pTask, p, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)))
+ } else {
+ p = *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8))
+ }
+ }
+ (*SorterList)(unsafe.Pointer(pList)).FpList = p
+
+ return int32((*UnpackedRecord)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)).FerrCode)
+}
+
+func vdbePmaWriterInit(tls *libc.TLS, pFd uintptr, p uintptr, nBuf int32, iStart I64) {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(PmaWriter{})), libc.X__builtin_object_size(tls, p, 0))
+ (*PmaWriter)(unsafe.Pointer(p)).FaBuffer = Xsqlite3Malloc(tls, uint64(nBuf))
+ if !(int32((*PmaWriter)(unsafe.Pointer(p)).FaBuffer) != 0) {
+ (*PmaWriter)(unsafe.Pointer(p)).FeFWErr = SQLITE_NOMEM
+ } else {
+ (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd = libc.AssignPtrInt32(p+20, int32(iStart%I64(nBuf)))
+ (*PmaWriter)(unsafe.Pointer(p)).FiWriteOff = iStart - I64((*PmaWriter)(unsafe.Pointer(p)).FiBufStart)
+ (*PmaWriter)(unsafe.Pointer(p)).FnBuffer = nBuf
+ (*PmaWriter)(unsafe.Pointer(p)).FpFd = pFd
+ }
+}
+
+func vdbePmaWriteBlob(tls *libc.TLS, p uintptr, pData uintptr, nData int32) {
+ var nRem int32 = nData
+ for nRem > 0 && (*PmaWriter)(unsafe.Pointer(p)).FeFWErr == 0 {
+ var nCopy int32 = nRem
+ if nCopy > (*PmaWriter)(unsafe.Pointer(p)).FnBuffer-(*PmaWriter)(unsafe.Pointer(p)).FiBufEnd {
+ nCopy = (*PmaWriter)(unsafe.Pointer(p)).FnBuffer - (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd
+ }
+
+ libc.X__builtin___memcpy_chk(tls, (*PmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*PmaWriter)(unsafe.Pointer(p)).FiBufEnd), pData+uintptr(nData-nRem), uint64(nCopy), libc.X__builtin_object_size(tls, (*PmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*PmaWriter)(unsafe.Pointer(p)).FiBufEnd), 0))
+ *(*int32)(unsafe.Pointer(p + 24)) += nCopy
+ if (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd == (*PmaWriter)(unsafe.Pointer(p)).FnBuffer {
+ (*PmaWriter)(unsafe.Pointer(p)).FeFWErr = Xsqlite3OsWrite(tls, (*PmaWriter)(unsafe.Pointer(p)).FpFd,
+ (*PmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*PmaWriter)(unsafe.Pointer(p)).FiBufStart), (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd-(*PmaWriter)(unsafe.Pointer(p)).FiBufStart,
+ (*PmaWriter)(unsafe.Pointer(p)).FiWriteOff+I64((*PmaWriter)(unsafe.Pointer(p)).FiBufStart))
+ (*PmaWriter)(unsafe.Pointer(p)).FiBufStart = libc.AssignPtrInt32(p+24, 0)
+ *(*I64)(unsafe.Pointer(p + 32)) += I64((*PmaWriter)(unsafe.Pointer(p)).FnBuffer)
+ }
+
+ nRem = nRem - nCopy
+ }
+}
+
+func vdbePmaWriterFinish(tls *libc.TLS, p uintptr, piEof uintptr) int32 {
+ var rc int32
+ if (*PmaWriter)(unsafe.Pointer(p)).FeFWErr == 0 && (*PmaWriter)(unsafe.Pointer(p)).FaBuffer != 0 && (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd > (*PmaWriter)(unsafe.Pointer(p)).FiBufStart {
+ (*PmaWriter)(unsafe.Pointer(p)).FeFWErr = Xsqlite3OsWrite(tls, (*PmaWriter)(unsafe.Pointer(p)).FpFd,
+ (*PmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*PmaWriter)(unsafe.Pointer(p)).FiBufStart), (*PmaWriter)(unsafe.Pointer(p)).FiBufEnd-(*PmaWriter)(unsafe.Pointer(p)).FiBufStart,
+ (*PmaWriter)(unsafe.Pointer(p)).FiWriteOff+I64((*PmaWriter)(unsafe.Pointer(p)).FiBufStart))
+ }
+ *(*I64)(unsafe.Pointer(piEof)) = (*PmaWriter)(unsafe.Pointer(p)).FiWriteOff + I64((*PmaWriter)(unsafe.Pointer(p)).FiBufEnd)
+ Xsqlite3_free(tls, (*PmaWriter)(unsafe.Pointer(p)).FaBuffer)
+ rc = (*PmaWriter)(unsafe.Pointer(p)).FeFWErr
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(PmaWriter{})), libc.X__builtin_object_size(tls, p, 0))
+ return rc
+}
+
+func vdbePmaWriteVarint(tls *libc.TLS, p uintptr, iVal U64) {
+ bp := tls.Alloc(10)
+ defer tls.Free(10)
+
+ var nByte int32
+
+ nByte = Xsqlite3PutVarint(tls, bp, iVal)
+ vdbePmaWriteBlob(tls, p, bp, nByte)
+}
+
+func vdbeSorterListToPMA(tls *libc.TLS, pTask uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var db uintptr = (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb
+ var rc int32 = SQLITE_OK
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(PmaWriter{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ if (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FpFd == uintptr(0) {
+ rc = vdbeSorterOpenTempFile(tls, db, int64(0), pTask+72)
+
+ }
+
+ if rc == SQLITE_OK {
+ vdbeSorterExtendFile(tls, db, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FpFd, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FiEof+I64((*SorterList)(unsafe.Pointer(pList)).FszPMA)+int64(9))
+ }
+
+ if rc == SQLITE_OK {
+ rc = vdbeSorterSort(tls, pTask, pList)
+ }
+
+ if rc == SQLITE_OK {
+ var p uintptr
+ var pNext uintptr = uintptr(0)
+
+ vdbePmaWriterInit(tls, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FpFd, bp, (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fpgsz,
+ (*SortSubtask)(unsafe.Pointer(pTask)).Ffile.FiEof)
+ (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA++
+ vdbePmaWriteVarint(tls, bp, uint64((*SorterList)(unsafe.Pointer(pList)).FszPMA))
+ for p = (*SorterList)(unsafe.Pointer(pList)).FpList; p != 0; p = pNext {
+ pNext = *(*uintptr)(unsafe.Pointer(p + 8))
+ vdbePmaWriteVarint(tls, bp, uint64((*SorterRecord)(unsafe.Pointer(p)).FnVal))
+ vdbePmaWriteBlob(tls, bp, p+uintptr(1)*16, (*SorterRecord)(unsafe.Pointer(p)).FnVal)
+ if (*SorterList)(unsafe.Pointer(pList)).FaMemory == uintptr(0) {
+ Xsqlite3_free(tls, p)
+ }
+ }
+ (*SorterList)(unsafe.Pointer(pList)).FpList = p
+ rc = vdbePmaWriterFinish(tls, bp, pTask+72+8)
+ }
+
+ return rc
+}
+
+func vdbeMergeEngineStep(tls *libc.TLS, pMerger uintptr, pbEof uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ var iPrev int32 = *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + 1*4))
+ var pTask uintptr = (*MergeEngine)(unsafe.Pointer(pMerger)).FpTask
+
+ rc = vdbePmaReaderNext(tls, (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr+uintptr(iPrev)*80)
+
+ if rc == SQLITE_OK {
+ var i int32
+ var pReadr1 uintptr
+ var pReadr2 uintptr
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ pReadr1 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(iPrev&0xFFFE)*80
+ pReadr2 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(iPrev|0x0001)*80
+
+ for i = ((*MergeEngine)(unsafe.Pointer(pMerger)).FnTree + iPrev) / 2; i > 0; i = i / 2 {
+ var iRes int32
+ if (*PmaReader)(unsafe.Pointer(pReadr1)).FpFd == uintptr(0) {
+ iRes = +1
+ } else if (*PmaReader)(unsafe.Pointer(pReadr2)).FpFd == uintptr(0) {
+ iRes = -1
+ } else {
+ iRes = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SortSubtask)(unsafe.Pointer(pTask)).FxCompare})).f(tls, pTask, bp,
+ (*PmaReader)(unsafe.Pointer(pReadr1)).FaKey, (*PmaReader)(unsafe.Pointer(pReadr1)).FnKey, (*PmaReader)(unsafe.Pointer(pReadr2)).FaKey, (*PmaReader)(unsafe.Pointer(pReadr2)).FnKey)
+ }
+
+ if iRes < 0 || iRes == 0 && pReadr1 < pReadr2 {
+ *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(i)*4)) = int32((int64(pReadr1) - int64((*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr)) / 80)
+ pReadr2 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(*(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(i^0x0001)*4)))*80
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ } else {
+ if (*PmaReader)(unsafe.Pointer(pReadr1)).FpFd != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ }
+ *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(i)*4)) = int32((int64(pReadr2) - int64((*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr)) / 80)
+ pReadr1 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(*(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(i^0x0001)*4)))*80
+ }
+ }
+ *(*int32)(unsafe.Pointer(pbEof)) = libc.Bool32((*PmaReader)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr+uintptr(*(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + 1*4)))*80)).FpFd == uintptr(0))
+ }
+
+ return func() int32 {
+ if rc == SQLITE_OK {
+ return int32((*UnpackedRecord)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)).FerrCode)
+ }
+ return rc
+ }()
+}
+
+func vdbeSorterFlushThread(tls *libc.TLS, pCtx uintptr) uintptr {
+ var pTask uintptr = pCtx
+ var rc int32
+
+ rc = vdbeSorterListToPMA(tls, pTask, pTask+32)
+ (*SortSubtask)(unsafe.Pointer(pTask)).FbDone = 1
+ return uintptr(int64(rc))
+}
+
+func vdbeSorterFlushPMA(tls *libc.TLS, pSorter uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var i int32
+ var pTask uintptr = uintptr(0)
+ var nWorker int32 = int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask) - 1
+
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUsePMA = U8(1)
+
+ for i = 0; i < nWorker; i++ {
+ var iTest int32 = (int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FiPrev) + i + 1) % nWorker
+ pTask = pSorter + 96 + uintptr(iTest)*104
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FbDone != 0 {
+ rc = vdbeSorterJoinThread(tls, pTask)
+ }
+ if rc != SQLITE_OK || (*SortSubtask)(unsafe.Pointer(pTask)).FpThread == uintptr(0) {
+ break
+ }
+ }
+
+ if rc == SQLITE_OK {
+ if i == nWorker {
+ rc = vdbeSorterListToPMA(tls, pSorter+96+uintptr(nWorker)*104, pSorter+56)
+ } else {
+ var aMem uintptr
+ var pCtx uintptr
+
+ aMem = (*SortSubtask)(unsafe.Pointer(pTask)).Flist.FaMemory
+ pCtx = pTask
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FiPrev = U8(int64((pTask - (pSorter + 96)) / 104))
+ (*SortSubtask)(unsafe.Pointer(pTask)).Flist = (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = uintptr(0)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FszPMA = 0
+ if aMem != 0 {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = aMem
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = Xsqlite3MallocSize(tls, aMem)
+ } else if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory != 0 {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = Xsqlite3Malloc(tls, uint64((*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory))
+ if !(int32((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory) != 0) {
+ return SQLITE_NOMEM
+ }
+ }
+
+ rc = vdbeSorterCreateThread(tls, pTask, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) uintptr
+ }{vdbeSorterFlushThread})), pCtx)
+ }
+ }
+
+ return rc
+}
+
+// Add a record to the sorter.
+func Xsqlite3VdbeSorterWrite(tls *libc.TLS, pCsr uintptr, pVal uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pSorter uintptr
+ var rc int32 = SQLITE_OK
+ var pNew uintptr
+ var bFlush int32
+ var nReq int32
+ var nPMA int32
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+ *(*int32)(unsafe.Pointer(bp)) = int32(U32(*(*U8)(unsafe.Pointer((*Mem)(unsafe.Pointer(pVal)).Fz + 1))))
+ if *(*int32)(unsafe.Pointer(bp)) >= 0x80 {
+ Xsqlite3GetVarint32(tls, (*Mem)(unsafe.Pointer(pVal)).Fz+1, bp)
+ }
+ if *(*int32)(unsafe.Pointer(bp)) > 0 && *(*int32)(unsafe.Pointer(bp)) < 10 && *(*int32)(unsafe.Pointer(bp)) != 7 {
+ *(*U8)(unsafe.Pointer(pSorter + 92)) &= U8(SORTER_TYPE_INTEGER)
+ } else if *(*int32)(unsafe.Pointer(bp)) > 10 && *(*int32)(unsafe.Pointer(bp))&0x01 != 0 {
+ *(*U8)(unsafe.Pointer(pSorter + 92)) &= U8(SORTER_TYPE_TEXT)
+ } else {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FtypeMask = U8(0)
+ }
+
+ nReq = int32(uint64((*Mem)(unsafe.Pointer(pVal)).Fn) + uint64(unsafe.Sizeof(SorterRecord{})))
+ nPMA = (*Mem)(unsafe.Pointer(pVal)).Fn + Xsqlite3VarintLen(tls, uint64((*Mem)(unsafe.Pointer(pVal)).Fn))
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize != 0 {
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory != 0 {
+ bFlush = libc.Bool32((*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory != 0 && (*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory+nReq > (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize)
+ } else {
+ bFlush = libc.Bool32((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FszPMA > (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize ||
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FszPMA > (*VdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize && Xsqlite3HeapNearlyFull(tls) != 0)
+ }
+ if bFlush != 0 {
+ rc = vdbeSorterFlushPMA(tls, pSorter)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FszPMA = 0
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory = 0
+
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pSorter + 56 + 16)) += nPMA
+ if nPMA > (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize = nPMA
+ }
+
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory != 0 {
+ var nMin int32 = (*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory + nReq
+
+ if nMin > (*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory {
+ var aNew uintptr
+ var nNew Sqlite3_int64 = int64(2) * Sqlite3_int64((*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory)
+ var iListOff int32 = -1
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList != 0 {
+ iListOff = int32((int64((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList) - int64((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory)) / 1)
+ }
+ for nNew < Sqlite3_int64(nMin) {
+ nNew = nNew * int64(2)
+ }
+ if nNew > Sqlite3_int64((*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize) {
+ nNew = Sqlite3_int64((*VdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize)
+ }
+ if nNew < Sqlite3_int64(nMin) {
+ nNew = Sqlite3_int64(nMin)
+ }
+ aNew = Xsqlite3Realloc(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory, uint64(nNew))
+ if !(aNew != 0) {
+ return SQLITE_NOMEM
+ }
+ if iListOff >= 0 {
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = aNew + uintptr(iListOff)
+ }
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = aNew
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = int32(nNew)
+ }
+
+ pNew = (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory + uintptr((*VdbeSorter)(unsafe.Pointer(pSorter)).FiMemory)
+ *(*int32)(unsafe.Pointer(pSorter + 80)) += (nReq + 7) & libc.CplInt32(7)
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList != 0 {
+ *(*int32)(unsafe.Pointer(pNew + 8)) = int32((int64((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList) - int64((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory)) / 1)
+ }
+ } else {
+ pNew = Xsqlite3Malloc(tls, uint64(nReq))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ *(*uintptr)(unsafe.Pointer(pNew + 8)) = (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList
+ }
+
+ libc.X__builtin___memcpy_chk(tls, pNew+uintptr(1)*16, (*Mem)(unsafe.Pointer(pVal)).Fz, uint64((*Mem)(unsafe.Pointer(pVal)).Fn), libc.X__builtin_object_size(tls, pNew+uintptr(1)*16, 0))
+ (*SorterRecord)(unsafe.Pointer(pNew)).FnVal = (*Mem)(unsafe.Pointer(pVal)).Fn
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = pNew
+
+ return rc
+}
+
+func vdbeIncrPopulate(tls *libc.TLS, pIncr uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var rc int32 = SQLITE_OK
+ var rc2 int32
+ var iStart I64 = (*IncrMerger)(unsafe.Pointer(pIncr)).FiStartOff
+ var pOut uintptr = pIncr + 40 + 1*16
+ var pTask uintptr = (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask
+ var pMerger uintptr = (*IncrMerger)(unsafe.Pointer(pIncr)).FpMerger
+
+ vdbePmaWriterInit(tls, (*SorterFile)(unsafe.Pointer(pOut)).FpFd, bp, (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fpgsz, iStart)
+ for rc == SQLITE_OK {
+ var pReader uintptr = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(*(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + 1*4)))*80
+ var nKey int32 = (*PmaReader)(unsafe.Pointer(pReader)).FnKey
+ var iEof I64 = (*PmaWriter)(unsafe.Pointer(bp)).FiWriteOff + I64((*PmaWriter)(unsafe.Pointer(bp)).FiBufEnd)
+
+ if (*PmaReader)(unsafe.Pointer(pReader)).FpFd == uintptr(0) {
+ break
+ }
+ if iEof+I64(nKey)+I64(Xsqlite3VarintLen(tls, uint64(nKey))) > iStart+I64((*IncrMerger)(unsafe.Pointer(pIncr)).FmxSz) {
+ break
+ }
+
+ vdbePmaWriteVarint(tls, bp, uint64(nKey))
+ vdbePmaWriteBlob(tls, bp, (*PmaReader)(unsafe.Pointer(pReader)).FaKey, nKey)
+
+ rc = vdbeMergeEngineStep(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpMerger, bp+48)
+ }
+
+ rc2 = vdbePmaWriterFinish(tls, bp, pOut+8)
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+
+ return rc
+}
+
+func vdbeIncrPopulateThread(tls *libc.TLS, pCtx uintptr) uintptr {
+ var pIncr uintptr = pCtx
+ var pRet uintptr = uintptr(int64(vdbeIncrPopulate(tls, pIncr)))
+ (*SortSubtask)(unsafe.Pointer((*IncrMerger)(unsafe.Pointer(pIncr)).FpTask)).FbDone = 1
+ return pRet
+}
+
+func vdbeIncrBgPopulate(tls *libc.TLS, pIncr uintptr) int32 {
+ var p uintptr = pIncr
+
+ return vdbeSorterCreateThread(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) uintptr
+ }{vdbeIncrPopulateThread})), p)
+}
+
+func vdbeIncrSwap(tls *libc.TLS, pIncr uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 {
+ rc = vdbeSorterJoinThread(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask)
+
+ if rc == SQLITE_OK {
+ var f0 = *(*SorterFile)(unsafe.Pointer(pIncr + 40))
+ *(*SorterFile)(unsafe.Pointer(pIncr + 40)) = *(*SorterFile)(unsafe.Pointer(pIncr + 40 + 1*16))
+ *(*SorterFile)(unsafe.Pointer(pIncr + 40 + 1*16)) = f0
+ }
+
+ if rc == SQLITE_OK {
+ if (*SorterFile)(unsafe.Pointer(pIncr+40)).FiEof == (*IncrMerger)(unsafe.Pointer(pIncr)).FiStartOff {
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FbEof = 1
+ } else {
+ rc = vdbeIncrBgPopulate(tls, pIncr)
+ }
+ }
+ } else {
+ rc = vdbeIncrPopulate(tls, pIncr)
+ *(*SorterFile)(unsafe.Pointer(pIncr + 40)) = *(*SorterFile)(unsafe.Pointer(pIncr + 40 + 1*16))
+ if (*SorterFile)(unsafe.Pointer(pIncr+40)).FiEof == (*IncrMerger)(unsafe.Pointer(pIncr)).FiStartOff {
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FbEof = 1
+ }
+ }
+
+ return rc
+}
+
+func vdbeIncrMergerNew(tls *libc.TLS, pTask uintptr, pMerger uintptr, ppOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pIncr uintptr = libc.AssignPtrUintptr(ppOut, func() uintptr {
+ if Xsqlite3FaultSim(tls, 100) != 0 {
+ return uintptr(0)
+ }
+ return Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(IncrMerger{})))
+ }())
+ if pIncr != 0 {
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FpMerger = pMerger
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask = pTask
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FmxSz = func() int32 {
+ if (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FmxKeysize+9 > (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FmxPmaSize/2 {
+ return (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FmxKeysize + 9
+ }
+ return (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).FmxPmaSize / 2
+ }()
+ *(*I64)(unsafe.Pointer(pTask + 88 + 8)) += I64((*IncrMerger)(unsafe.Pointer(pIncr)).FmxSz)
+ } else {
+ vdbeMergeEngineFree(tls, pMerger)
+ rc = SQLITE_NOMEM
+ }
+
+ return rc
+}
+
+func vdbeIncrMergerSetThreads(tls *libc.TLS, pIncr uintptr) {
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread = 1
+ *(*I64)(unsafe.Pointer((*IncrMerger)(unsafe.Pointer(pIncr)).FpTask + 88 + 8)) -= I64((*IncrMerger)(unsafe.Pointer(pIncr)).FmxSz)
+}
+
+func vdbeMergeEngineCompare(tls *libc.TLS, pMerger uintptr, iOut int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i1 int32
+ var i2 int32
+ var iRes int32
+ var p1 uintptr
+ var p2 uintptr
+
+ if iOut >= (*MergeEngine)(unsafe.Pointer(pMerger)).FnTree/2 {
+ i1 = (iOut - (*MergeEngine)(unsafe.Pointer(pMerger)).FnTree/2) * 2
+ i2 = i1 + 1
+ } else {
+ i1 = *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(iOut*2)*4))
+ i2 = *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(iOut*2+1)*4))
+ }
+
+ p1 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(i1)*80
+ p2 = (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr + uintptr(i2)*80
+
+ if (*PmaReader)(unsafe.Pointer(p1)).FpFd == uintptr(0) {
+ iRes = i2
+ } else if (*PmaReader)(unsafe.Pointer(p2)).FpFd == uintptr(0) {
+ iRes = i1
+ } else {
+ var pTask uintptr = (*MergeEngine)(unsafe.Pointer(pMerger)).FpTask
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var res int32
+
+ res = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SortSubtask)(unsafe.Pointer(pTask)).FxCompare})).f(tls,
+ pTask, bp, (*PmaReader)(unsafe.Pointer(p1)).FaKey, (*PmaReader)(unsafe.Pointer(p1)).FnKey, (*PmaReader)(unsafe.Pointer(p2)).FaKey, (*PmaReader)(unsafe.Pointer(p2)).FnKey)
+ if res <= 0 {
+ iRes = i1
+ } else {
+ iRes = i2
+ }
+ }
+
+ *(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(pMerger)).FaTree + uintptr(iOut)*4)) = iRes
+}
+
+func vdbeMergeEngineInit(tls *libc.TLS, pTask uintptr, pMerger uintptr, eMode int32) int32 {
+ var rc int32 = SQLITE_OK
+ var i int32
+ var nTree int32
+
+ (*MergeEngine)(unsafe.Pointer(pMerger)).FpTask = pTask
+
+ nTree = (*MergeEngine)(unsafe.Pointer(pMerger)).FnTree
+ for i = 0; i < nTree; i++ {
+ if SQLITE_MAX_WORKER_THREADS > 0 && eMode == INCRINIT_ROOT {
+ rc = vdbePmaReaderNext(tls, (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr+uintptr(nTree-i-1)*80)
+ } else {
+ rc = vdbePmaReaderIncrInit(tls, (*MergeEngine)(unsafe.Pointer(pMerger)).FaReadr+uintptr(i)*80, INCRINIT_NORMAL)
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+
+ for i = (*MergeEngine)(unsafe.Pointer(pMerger)).FnTree - 1; i > 0; i-- {
+ vdbeMergeEngineCompare(tls, pMerger, i)
+ }
+ return int32((*UnpackedRecord)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpUnpacked)).FerrCode)
+}
+
+func vdbePmaReaderIncrMergeInit(tls *libc.TLS, pReadr uintptr, eMode int32) int32 {
+ var rc int32 = SQLITE_OK
+ var pIncr uintptr = (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr
+ var pTask uintptr = (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask
+ var db uintptr = (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb
+
+ rc = vdbeMergeEngineInit(tls, pTask, (*IncrMerger)(unsafe.Pointer(pIncr)).FpMerger, eMode)
+
+ if rc == SQLITE_OK {
+ var mxSz int32 = (*IncrMerger)(unsafe.Pointer(pIncr)).FmxSz
+ if (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 {
+ rc = vdbeSorterOpenTempFile(tls, db, int64(mxSz), pIncr+40)
+ if rc == SQLITE_OK {
+ rc = vdbeSorterOpenTempFile(tls, db, int64(mxSz), pIncr+40+1*16)
+ }
+ } else {
+ if (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FpFd == uintptr(0) {
+ rc = vdbeSorterOpenTempFile(tls, db, (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof, pTask+88)
+ (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof = int64(0)
+ }
+ if rc == SQLITE_OK {
+ (*SorterFile)(unsafe.Pointer(pIncr + 40 + 1*16)).FpFd = (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FpFd
+ (*IncrMerger)(unsafe.Pointer(pIncr)).FiStartOff = (*SortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof
+ *(*I64)(unsafe.Pointer(pTask + 88 + 8)) += I64(mxSz)
+ }
+ }
+ }
+
+ if rc == SQLITE_OK && (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 {
+ rc = vdbeIncrPopulate(tls, pIncr)
+ }
+
+ if rc == SQLITE_OK && (SQLITE_MAX_WORKER_THREADS == 0 || eMode != INCRINIT_TASK) {
+ rc = vdbePmaReaderNext(tls, pReadr)
+ }
+
+ return rc
+}
+
+func vdbePmaReaderBgIncrInit(tls *libc.TLS, pCtx uintptr) uintptr {
+ var pReader uintptr = pCtx
+ var pRet uintptr = uintptr(int64(vdbePmaReaderIncrMergeInit(tls, pReader, INCRINIT_TASK)))
+ (*SortSubtask)(unsafe.Pointer((*IncrMerger)(unsafe.Pointer((*PmaReader)(unsafe.Pointer(pReader)).FpIncr)).FpTask)).FbDone = 1
+ return pRet
+}
+
+func vdbePmaReaderIncrInit(tls *libc.TLS, pReadr uintptr, eMode int32) int32 {
+ var pIncr uintptr = (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr
+ var rc int32 = SQLITE_OK
+ if pIncr != 0 {
+ if (*IncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 {
+ var pCtx uintptr = pReadr
+ rc = vdbeSorterCreateThread(tls, (*IncrMerger)(unsafe.Pointer(pIncr)).FpTask, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) uintptr
+ }{vdbePmaReaderBgIncrInit})), pCtx)
+ } else {
+ rc = vdbePmaReaderIncrMergeInit(tls, pReadr, eMode)
+ }
+ }
+ return rc
+}
+
+func vdbeMergeEngineLevel0(tls *libc.TLS, pTask uintptr, nPMA int32, piOffset uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNew uintptr
+ var iOff I64 = *(*I64)(unsafe.Pointer(piOffset))
+ var i int32
+ var rc int32 = SQLITE_OK
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = libc.AssignUintptr(&pNew, vdbeMergeEngineNew(tls, nPMA))
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+
+ for i = 0; i < nPMA && rc == SQLITE_OK; i++ {
+ *(*I64)(unsafe.Pointer(bp)) = int64(0)
+ var pReadr uintptr = (*MergeEngine)(unsafe.Pointer(pNew)).FaReadr + uintptr(i)*80
+ rc = vdbePmaReaderInit(tls, pTask, pTask+72, iOff, pReadr, bp)
+ iOff = (*PmaReader)(unsafe.Pointer(pReadr)).FiEof
+ }
+
+ if rc != SQLITE_OK {
+ vdbeMergeEngineFree(tls, pNew)
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+ }
+ *(*I64)(unsafe.Pointer(piOffset)) = iOff
+ return rc
+}
+
+func vdbeSorterTreeDepth(tls *libc.TLS, nPMA int32) int32 {
+ var nDepth int32 = 0
+ var nDiv I64 = int64(SORTER_MAX_MERGE_COUNT)
+ for nDiv < I64(nPMA) {
+ nDiv = nDiv * int64(SORTER_MAX_MERGE_COUNT)
+ nDepth++
+ }
+ return nDepth
+}
+
+func vdbeSorterAddToTree(tls *libc.TLS, pTask uintptr, nDepth int32, iSeq int32, pRoot uintptr, pLeaf uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var nDiv int32 = 1
+ var i int32
+ var p uintptr = pRoot
+
+ rc = vdbeIncrMergerNew(tls, pTask, pLeaf, bp)
+
+ for i = 1; i < nDepth; i++ {
+ nDiv = nDiv * SORTER_MAX_MERGE_COUNT
+ }
+
+ for i = 1; i < nDepth && rc == SQLITE_OK; i++ {
+ var iIter int32 = iSeq / nDiv % SORTER_MAX_MERGE_COUNT
+ var pReadr uintptr = (*MergeEngine)(unsafe.Pointer(p)).FaReadr + uintptr(iIter)*80
+
+ if (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr == uintptr(0) {
+ var pNew uintptr = vdbeMergeEngineNew(tls, SORTER_MAX_MERGE_COUNT)
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = vdbeIncrMergerNew(tls, pTask, pNew, pReadr+72)
+ }
+ }
+ if rc == SQLITE_OK {
+ p = (*IncrMerger)(unsafe.Pointer((*PmaReader)(unsafe.Pointer(pReadr)).FpIncr)).FpMerger
+ nDiv = nDiv / SORTER_MAX_MERGE_COUNT
+ }
+ }
+
+ if rc == SQLITE_OK {
+ (*PmaReader)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(p)).FaReadr + uintptr(iSeq%SORTER_MAX_MERGE_COUNT)*80)).FpIncr = *(*uintptr)(unsafe.Pointer(bp))
+ } else {
+ vdbeIncrFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return rc
+}
+
+func vdbeSorterMergeTreeBuild(tls *libc.TLS, pSorter uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pMain uintptr = uintptr(0)
+ var rc int32 = SQLITE_OK
+ var iTask int32
+
+ if int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask) > 1 {
+ pMain = vdbeMergeEngineNew(tls, int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask))
+ if pMain == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+
+ for iTask = 0; rc == SQLITE_OK && iTask < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask); iTask++ {
+ var pTask uintptr = pSorter + 96 + uintptr(iTask)*104
+
+ if SQLITE_MAX_WORKER_THREADS == 0 || (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var nDepth int32 = vdbeSorterTreeDepth(tls, (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA)
+ *(*I64)(unsafe.Pointer(bp)) = int64(0)
+
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA <= SORTER_MAX_MERGE_COUNT {
+ rc = vdbeMergeEngineLevel0(tls, pTask, (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA, bp, bp+8)
+ } else {
+ var i int32
+ var iSeq int32 = 0
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = vdbeMergeEngineNew(tls, SORTER_MAX_MERGE_COUNT)
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ for i = 0; i < (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA && rc == SQLITE_OK; i = i + SORTER_MAX_MERGE_COUNT {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var nReader int32
+
+ nReader = func() int32 {
+ if (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA-i < SORTER_MAX_MERGE_COUNT {
+ return (*SortSubtask)(unsafe.Pointer(pTask)).FnPMA - i
+ }
+ return SORTER_MAX_MERGE_COUNT
+ }()
+ rc = vdbeMergeEngineLevel0(tls, pTask, nReader, bp, bp+16)
+ if rc == SQLITE_OK {
+ rc = vdbeSorterAddToTree(tls, pTask, nDepth, libc.PostIncInt32(&iSeq, 1), *(*uintptr)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ if pMain != uintptr(0) {
+ rc = vdbeIncrMergerNew(tls, pTask, *(*uintptr)(unsafe.Pointer(bp + 8)), (*MergeEngine)(unsafe.Pointer(pMain)).FaReadr+uintptr(iTask)*80+72)
+ } else {
+ pMain = *(*uintptr)(unsafe.Pointer(bp + 8))
+ }
+ } else {
+ vdbeMergeEngineFree(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ }
+ }
+
+ if rc != SQLITE_OK {
+ vdbeMergeEngineFree(tls, pMain)
+ pMain = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pMain
+ return rc
+}
+
+func vdbeSorterSetupMerge(tls *libc.TLS, pSorter uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var pTask0 uintptr = pSorter + 96
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var db uintptr = (*VdbeSorter)(unsafe.Pointer((*SortSubtask)(unsafe.Pointer(pTask0)).FpSorter)).Fdb
+ var i int32
+ var xCompare SorterCompare = vdbeSorterGetCompare(tls, pSorter)
+ for i = 0; i < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask); i++ {
+ (*SortSubtask)(unsafe.Pointer(pSorter + 96 + uintptr(i)*104)).FxCompare = xCompare
+ }
+
+ rc = vdbeSorterMergeTreeBuild(tls, pSorter, bp)
+ if rc == SQLITE_OK {
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUseThreads != 0 {
+ var iTask int32
+ var pReadr uintptr = uintptr(0)
+ var pLast uintptr = pSorter + 96 + uintptr(int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask)-1)*104
+ rc = vdbeSortAllocUnpacked(tls, pLast)
+ if rc == SQLITE_OK {
+ pReadr = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(PmaReader{})))
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader = pReadr
+ if pReadr == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ if rc == SQLITE_OK {
+ rc = vdbeIncrMergerNew(tls, pLast, *(*uintptr)(unsafe.Pointer(bp)), pReadr+72)
+ if rc == SQLITE_OK {
+ vdbeIncrMergerSetThreads(tls, (*PmaReader)(unsafe.Pointer(pReadr)).FpIncr)
+ for iTask = 0; iTask < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask)-1; iTask++ {
+ var pIncr uintptr
+ if libc.AssignUintptr(&pIncr, (*PmaReader)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaReadr+uintptr(iTask)*80)).FpIncr) != 0 {
+ vdbeIncrMergerSetThreads(tls, pIncr)
+
+ }
+ }
+ for iTask = 0; rc == SQLITE_OK && iTask < int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FnTask); iTask++ {
+ var p uintptr = (*MergeEngine)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaReadr + uintptr(iTask)*80
+
+ rc = vdbePmaReaderIncrInit(tls, p, INCRINIT_TASK)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ }
+ if rc == SQLITE_OK {
+ rc = vdbePmaReaderIncrMergeInit(tls, pReadr, INCRINIT_ROOT)
+ }
+ } else {
+ rc = vdbeMergeEngineInit(tls, pTask0, *(*uintptr)(unsafe.Pointer(bp)), INCRINIT_NORMAL)
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger = *(*uintptr)(unsafe.Pointer(bp))
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ }
+ }
+
+ if rc != SQLITE_OK {
+ vdbeMergeEngineFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return rc
+}
+
+// Once the sorter has been populated by calls to sqlite3VdbeSorterWrite,
+// this function is called to prepare for iterating through the records
+// in sorted order.
+func Xsqlite3VdbeSorterRewind(tls *libc.TLS, pCsr uintptr, pbEof uintptr) int32 {
+ var pSorter uintptr
+ var rc int32 = SQLITE_OK
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+
+ if int32((*VdbeSorter)(unsafe.Pointer(pSorter)).FbUsePMA) == 0 {
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList != 0 {
+ *(*int32)(unsafe.Pointer(pbEof)) = 0
+ rc = vdbeSorterSort(tls, pSorter+96, pSorter+56)
+ } else {
+ *(*int32)(unsafe.Pointer(pbEof)) = 1
+ }
+ return rc
+ }
+
+ rc = vdbeSorterFlushPMA(tls, pSorter)
+
+ rc = vdbeSorterJoinAll(tls, pSorter, rc)
+
+ if rc == SQLITE_OK {
+ rc = vdbeSorterSetupMerge(tls, pSorter)
+ *(*int32)(unsafe.Pointer(pbEof)) = 0
+ }
+
+ return rc
+}
+
+// Advance to the next element in the sorter. Return value:
+//
+// SQLITE_OK success
+// SQLITE_DONE end of data
+// otherwise some kind of error.
+func Xsqlite3VdbeSorterNext(tls *libc.TLS, db uintptr, pCsr uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pSorter uintptr
+ var rc int32
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUsePMA != 0 {
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUseThreads != 0 {
+ rc = vdbePmaReaderNext(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader)
+ if rc == SQLITE_OK && (*PmaReader)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader)).FpFd == uintptr(0) {
+ rc = SQLITE_DONE
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ rc = vdbeMergeEngineStep(tls, (*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger, bp)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = SQLITE_DONE
+ }
+ }
+ } else {
+ var pFree uintptr = (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList
+ (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = *(*uintptr)(unsafe.Pointer(pFree + 8))
+ *(*uintptr)(unsafe.Pointer(pFree + 8)) = uintptr(0)
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory == uintptr(0) {
+ vdbeSorterRecordFree(tls, db, pFree)
+ }
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = SQLITE_DONE
+ }
+ }
+ return rc
+}
+
+func vdbeSorterRowkey(tls *libc.TLS, pSorter uintptr, pnKey uintptr) uintptr {
+ var pKey uintptr
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUsePMA != 0 {
+ var pReader uintptr
+ if (*VdbeSorter)(unsafe.Pointer(pSorter)).FbUseThreads != 0 {
+ pReader = (*VdbeSorter)(unsafe.Pointer(pSorter)).FpReader
+ } else {
+ pReader = (*MergeEngine)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger)).FaReadr + uintptr(*(*int32)(unsafe.Pointer((*MergeEngine)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer(pSorter)).FpMerger)).FaTree + 1*4)))*80
+ }
+ *(*int32)(unsafe.Pointer(pnKey)) = (*PmaReader)(unsafe.Pointer(pReader)).FnKey
+ pKey = (*PmaReader)(unsafe.Pointer(pReader)).FaKey
+ } else {
+ *(*int32)(unsafe.Pointer(pnKey)) = (*SorterRecord)(unsafe.Pointer((*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList)).FnVal
+ pKey = (*VdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList + uintptr(1)*16
+ }
+ return pKey
+}
+
+// Copy the current sorter key into the memory cell pOut.
+func Xsqlite3VdbeSorterRowkey(tls *libc.TLS, pCsr uintptr, pOut uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pSorter uintptr
+ var pKey uintptr
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+ pKey = vdbeSorterRowkey(tls, pSorter, bp)
+ if Xsqlite3VdbeMemClearAndResize(tls, pOut, *(*int32)(unsafe.Pointer(bp))) != 0 {
+ return SQLITE_NOMEM
+ }
+ (*Mem)(unsafe.Pointer(pOut)).Fn = *(*int32)(unsafe.Pointer(bp))
+ (*Mem)(unsafe.Pointer(pOut)).Fflags = U16(int32((*Mem)(unsafe.Pointer(pOut)).Fflags)&libc.CplInt32(MEM_TypeMask|MEM_Zero) | MEM_Blob)
+ libc.X__builtin___memcpy_chk(tls, (*Mem)(unsafe.Pointer(pOut)).Fz, pKey, uint64(*(*int32)(unsafe.Pointer(bp))), libc.X__builtin_object_size(tls, (*Mem)(unsafe.Pointer(pOut)).Fz, 0))
+
+ return SQLITE_OK
+}
+
+// Compare the key in memory cell pVal with the key that the sorter cursor
+// passed as the first argument currently points to. For the purposes of
+// the comparison, ignore the rowid field at the end of each record.
+//
+// If the sorter cursor key contains any NULL values, consider it to be
+// less than pVal. Even if pVal also contains NULL values.
+//
+// If an error occurs, return an SQLite error code (i.e. SQLITE_NOMEM).
+// Otherwise, set *pRes to a negative, zero or positive value if the
+// key in pVal is smaller than, equal to or larger than the current sorter
+// key.
+//
+// This routine forms the core of the OP_SorterCompare opcode, which in
+// turn is used to verify uniqueness when constructing a UNIQUE INDEX.
+func Xsqlite3VdbeSorterCompare(tls *libc.TLS, pCsr uintptr, pVal uintptr, nKeyCol int32, pRes uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pSorter uintptr
+ var r2 uintptr
+ var pKeyInfo uintptr
+ var i int32
+ var pKey uintptr
+
+ pSorter = *(*uintptr)(unsafe.Pointer(pCsr + 48))
+ r2 = (*VdbeSorter)(unsafe.Pointer(pSorter)).FpUnpacked
+ pKeyInfo = (*VdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo
+ if r2 == uintptr(0) {
+ r2 = libc.AssignPtrUintptr(pSorter+48, Xsqlite3VdbeAllocUnpackedRecord(tls, pKeyInfo))
+ if r2 == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*UnpackedRecord)(unsafe.Pointer(r2)).FnField = U16(nKeyCol)
+ }
+
+ pKey = vdbeSorterRowkey(tls, pSorter, bp)
+ Xsqlite3VdbeRecordUnpack(tls, pKeyInfo, *(*int32)(unsafe.Pointer(bp)), pKey, r2)
+ for i = 0; i < nKeyCol; i++ {
+ if int32((*Mem)(unsafe.Pointer((*UnpackedRecord)(unsafe.Pointer(r2)).FaMem+uintptr(i)*56)).Fflags)&MEM_Null != 0 {
+ *(*int32)(unsafe.Pointer(pRes)) = -1
+ return SQLITE_OK
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pRes)) = Xsqlite3VdbeRecordCompare(tls, (*Mem)(unsafe.Pointer(pVal)).Fn, (*Mem)(unsafe.Pointer(pVal)).Fz, r2)
+ return SQLITE_OK
+}
+
+// Forward references to internal structures
+type MemJournal1 = struct {
+ FpMethod uintptr
+ FnChunkSize int32
+ FnSpill int32
+ FpFirst uintptr
+ Fendpoint FilePoint
+ Freadpoint FilePoint
+ Fflags int32
+ F__ccgo_pad1 [4]byte
+ FpVfs uintptr
+ FzJournal uintptr
+}
+
+// Forward references to internal structures
+type MemJournal = MemJournal1
+type FilePoint1 = struct {
+ FiOffset Sqlite3_int64
+ FpChunk uintptr
+}
+
+type FilePoint = FilePoint1
+type FileChunk1 = struct {
+ FpNext uintptr
+ FzChunk [8]U8
+}
+
+type FileChunk = FileChunk1
+
+func memjrnlRead(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = pJfd
+ var zOut uintptr = zBuf
+ var nRead int32 = iAmt
+ var iChunkOffset int32
+ var pChunk uintptr
+
+ if Sqlite_int64(iAmt)+iOfst > (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset {
+ return SQLITE_IOERR | int32(2)<<8
+ }
+
+ if (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FiOffset != iOfst || iOfst == int64(0) {
+ var iOff Sqlite3_int64 = int64(0)
+ for pChunk = (*MemJournal)(unsafe.Pointer(p)).FpFirst; pChunk != 0 && iOff+Sqlite3_int64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize) <= iOfst; pChunk = (*FileChunk)(unsafe.Pointer(pChunk)).FpNext {
+ iOff = iOff + Sqlite3_int64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize)
+ }
+ } else {
+ pChunk = (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FpChunk
+
+ }
+
+ iChunkOffset = int32(iOfst % Sqlite_int64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize))
+ for __ccgo := true; __ccgo; __ccgo = nRead >= 0 && libc.AssignUintptr(&pChunk, (*FileChunk)(unsafe.Pointer(pChunk)).FpNext) != uintptr(0) && nRead > 0 {
+ var iSpace int32 = (*MemJournal)(unsafe.Pointer(p)).FnChunkSize - iChunkOffset
+ var nCopy int32 = func() int32 {
+ if nRead < (*MemJournal)(unsafe.Pointer(p)).FnChunkSize-iChunkOffset {
+ return nRead
+ }
+ return (*MemJournal)(unsafe.Pointer(p)).FnChunkSize - iChunkOffset
+ }()
+ libc.X__builtin___memcpy_chk(tls, zOut, pChunk+8+uintptr(iChunkOffset), uint64(nCopy), libc.X__builtin_object_size(tls, zOut, 0))
+ zOut += uintptr(nCopy)
+ nRead = nRead - iSpace
+ iChunkOffset = 0
+ }
+ (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FiOffset = func() int64 {
+ if pChunk != 0 {
+ return iOfst + Sqlite_int64(iAmt)
+ }
+ return int64(0)
+ }()
+ (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FpChunk = pChunk
+
+ return SQLITE_OK
+}
+
+func memjrnlFreeChunks(tls *libc.TLS, pFirst uintptr) {
+ var pIter uintptr
+ var pNext uintptr
+ for pIter = pFirst; pIter != 0; pIter = pNext {
+ pNext = (*FileChunk)(unsafe.Pointer(pIter)).FpNext
+ Xsqlite3_free(tls, pIter)
+ }
+}
+
+func memjrnlCreateFile(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ var pReal uintptr = p
+ var copy = *(*MemJournal)(unsafe.Pointer(p))
+
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(MemJournal{})), libc.X__builtin_object_size(tls, p, 0))
+ rc = Xsqlite3OsOpen(tls, copy.FpVfs, copy.FzJournal, pReal, copy.Fflags, uintptr(0))
+ if rc == SQLITE_OK {
+ var nChunk int32 = copy.FnChunkSize
+ var iOff I64 = int64(0)
+ var pIter uintptr
+ for pIter = copy.FpFirst; pIter != 0; pIter = (*FileChunk)(unsafe.Pointer(pIter)).FpNext {
+ if iOff+I64(nChunk) > copy.Fendpoint.FiOffset {
+ nChunk = int32(copy.Fendpoint.FiOffset - iOff)
+ }
+ rc = Xsqlite3OsWrite(tls, pReal, pIter+8, nChunk, iOff)
+ if rc != 0 {
+ break
+ }
+ iOff = iOff + I64(nChunk)
+ }
+ if rc == SQLITE_OK {
+ memjrnlFreeChunks(tls, copy.FpFirst)
+ }
+ }
+ if rc != SQLITE_OK {
+ Xsqlite3OsClose(tls, pReal)
+ *(*MemJournal)(unsafe.Pointer(p)) = copy
+ }
+ return rc
+}
+
+func memjrnlWrite(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = pJfd
+ var nWrite int32 = iAmt
+ var zWrite uintptr = zBuf
+
+ if (*MemJournal)(unsafe.Pointer(p)).FnSpill > 0 && Sqlite_int64(iAmt)+iOfst > Sqlite_int64((*MemJournal)(unsafe.Pointer(p)).FnSpill) {
+ var rc int32 = memjrnlCreateFile(tls, p)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3OsWrite(tls, pJfd, zBuf, iAmt, iOfst)
+ }
+ return rc
+ } else {
+ if iOfst > int64(0) && iOfst != (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset {
+ memjrnlTruncate(tls, pJfd, iOfst)
+ }
+ if iOfst == int64(0) && (*MemJournal)(unsafe.Pointer(p)).FpFirst != 0 {
+ libc.X__builtin___memcpy_chk(tls, (*MemJournal)(unsafe.Pointer(p)).FpFirst+8, zBuf, uint64(iAmt), libc.X__builtin_object_size(tls, (*MemJournal)(unsafe.Pointer(p)).FpFirst+8, 0))
+ } else {
+ for nWrite > 0 {
+ var pChunk uintptr = (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FpChunk
+ var iChunkOffset int32 = int32((*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset % Sqlite3_int64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize))
+ var iSpace int32 = func() int32 {
+ if nWrite < (*MemJournal)(unsafe.Pointer(p)).FnChunkSize-iChunkOffset {
+ return nWrite
+ }
+ return (*MemJournal)(unsafe.Pointer(p)).FnChunkSize - iChunkOffset
+ }()
+
+ if iChunkOffset == 0 {
+ var pNew uintptr = Xsqlite3_malloc(tls, int32(uint64(unsafe.Sizeof(FileChunk{}))+uint64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize-8)))
+ if !(pNew != 0) {
+ return SQLITE_IOERR | int32(12)<<8
+ }
+ (*FileChunk)(unsafe.Pointer(pNew)).FpNext = uintptr(0)
+ if pChunk != 0 {
+ (*FileChunk)(unsafe.Pointer(pChunk)).FpNext = pNew
+ } else {
+ (*MemJournal)(unsafe.Pointer(p)).FpFirst = pNew
+ }
+ pChunk = libc.AssignPtrUintptr(p+24+8, pNew)
+ }
+
+ libc.X__builtin___memcpy_chk(tls, pChunk+8+uintptr(iChunkOffset), zWrite, uint64(iSpace), libc.X__builtin_object_size(tls, pChunk+8+uintptr(iChunkOffset), 0))
+ zWrite += uintptr(iSpace)
+ nWrite = nWrite - iSpace
+ *(*Sqlite3_int64)(unsafe.Pointer(p + 24)) += Sqlite3_int64(iSpace)
+ }
+ }
+ }
+
+ return SQLITE_OK
+}
+
+func memjrnlTruncate(tls *libc.TLS, pJfd uintptr, size Sqlite_int64) int32 {
+ var p uintptr = pJfd
+
+ if size < (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset {
+ var pIter uintptr = uintptr(0)
+ if size == int64(0) {
+ memjrnlFreeChunks(tls, (*MemJournal)(unsafe.Pointer(p)).FpFirst)
+ (*MemJournal)(unsafe.Pointer(p)).FpFirst = uintptr(0)
+ } else {
+ var iOff I64 = I64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize)
+ for pIter = (*MemJournal)(unsafe.Pointer(p)).FpFirst; pIter != 0 && iOff < size; pIter = (*FileChunk)(unsafe.Pointer(pIter)).FpNext {
+ iOff = iOff + I64((*MemJournal)(unsafe.Pointer(p)).FnChunkSize)
+ }
+ if pIter != 0 {
+ memjrnlFreeChunks(tls, (*FileChunk)(unsafe.Pointer(pIter)).FpNext)
+ (*FileChunk)(unsafe.Pointer(pIter)).FpNext = uintptr(0)
+ }
+ }
+
+ (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FpChunk = pIter
+ (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset = size
+ (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FpChunk = uintptr(0)
+ (*MemJournal)(unsafe.Pointer(p)).Freadpoint.FiOffset = int64(0)
+ }
+ return SQLITE_OK
+}
+
+func memjrnlClose(tls *libc.TLS, pJfd uintptr) int32 {
+ var p uintptr = pJfd
+ memjrnlFreeChunks(tls, (*MemJournal)(unsafe.Pointer(p)).FpFirst)
+ return SQLITE_OK
+}
+
+func memjrnlSync(tls *libc.TLS, pJfd uintptr, flags int32) int32 {
+ _ = pJfd
+ _ = flags
+ return SQLITE_OK
+}
+
+func memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) int32 {
+ var p uintptr = pJfd
+ *(*Sqlite_int64)(unsafe.Pointer(pSize)) = (*MemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset
+ return SQLITE_OK
+}
+
+var sMemJournalMethods = sqlite3_io_methods{
+ FiVersion: 1,
+ FxClose: 0,
+ FxRead: 0,
+ FxWrite: 0,
+ FxTruncate: 0,
+ FxSync: 0,
+ FxFileSize: 0,
+}
+
+// Open a journal file.
+//
+// The behaviour of the journal file depends on the value of parameter
+// nSpill. If nSpill is 0, then the journal file is always create and
+// accessed using the underlying VFS. If nSpill is less than zero, then
+// all content is always stored in main-memory. Finally, if nSpill is a
+// positive value, then the journal file is initially created in-memory
+// but may be flushed to disk later on. In this case the journal file is
+// flushed to disk either when it grows larger than nSpill bytes in size,
+// or when sqlite3JournalCreate() is called.
+func Xsqlite3JournalOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pJfd uintptr, flags int32, nSpill int32) int32 {
+ var p uintptr = pJfd
+
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(MemJournal{})), libc.X__builtin_object_size(tls, p, 0))
+ if nSpill == 0 {
+ return Xsqlite3OsOpen(tls, pVfs, zName, pJfd, flags, uintptr(0))
+ }
+
+ if nSpill > 0 {
+ (*MemJournal)(unsafe.Pointer(p)).FnChunkSize = nSpill
+ } else {
+ (*MemJournal)(unsafe.Pointer(p)).FnChunkSize = int32(uint64(8+MEMJOURNAL_DFLT_FILECHUNKSIZE) - uint64(unsafe.Sizeof(FileChunk{})))
+
+ }
+
+ (*Sqlite3_file)(unsafe.Pointer(pJfd)).FpMethods = uintptr(unsafe.Pointer(&sMemJournalMethods))
+ (*MemJournal)(unsafe.Pointer(p)).FnSpill = nSpill
+ (*MemJournal)(unsafe.Pointer(p)).Fflags = flags
+ (*MemJournal)(unsafe.Pointer(p)).FzJournal = zName
+ (*MemJournal)(unsafe.Pointer(p)).FpVfs = pVfs
+ return SQLITE_OK
+}
+
+// Open an in-memory journal file.
+func Xsqlite3MemJournalOpen(tls *libc.TLS, pJfd uintptr) {
+ Xsqlite3JournalOpen(tls, uintptr(0), uintptr(0), pJfd, 0, -1)
+}
+
+// The file-handle passed as the only argument is open on a journal file.
+// Return true if this "journal file" is currently stored in heap memory,
+// or false otherwise.
+func Xsqlite3JournalIsInMemory(tls *libc.TLS, p uintptr) int32 {
+ return libc.Bool32((*Sqlite3_file)(unsafe.Pointer(p)).FpMethods == uintptr(unsafe.Pointer(&sMemJournalMethods)))
+}
+
+// Return the number of bytes required to store a JournalFile that uses vfs
+// pVfs to create the underlying on-disk files.
+func Xsqlite3JournalSize(tls *libc.TLS, pVfs uintptr) int32 {
+ return func() int32 {
+ if (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile > int32(unsafe.Sizeof(MemJournal{})) {
+ return (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile
+ }
+ return int32(unsafe.Sizeof(MemJournal{}))
+ }()
+}
+
+func walkWindowList(tls *libc.TLS, pWalker uintptr, pList uintptr, bOneOnly int32) int32 {
+ var pWin uintptr
+ for pWin = pList; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var rc int32
+ rc = Xsqlite3WalkExprList(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpOrderBy)
+ if rc != 0 {
+ return WRC_Abort
+ }
+ rc = Xsqlite3WalkExprList(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpPartition)
+ if rc != 0 {
+ return WRC_Abort
+ }
+ rc = Xsqlite3WalkExpr(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpFilter)
+ if rc != 0 {
+ return WRC_Abort
+ }
+ rc = Xsqlite3WalkExpr(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpStart)
+ if rc != 0 {
+ return WRC_Abort
+ }
+ rc = Xsqlite3WalkExpr(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpEnd)
+ if rc != 0 {
+ return WRC_Abort
+ }
+ if bOneOnly != 0 {
+ break
+ }
+ }
+ return WRC_Continue
+}
+
+func walkExpr(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var rc int32
+
+ for 1 != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Walker)(unsafe.Pointer(pWalker)).FxExprCallback})).f(tls, pWalker, pExpr)
+ if rc != 0 {
+ return rc & WRC_Abort
+ }
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0)) {
+ if (*Expr)(unsafe.Pointer(pExpr)).FpLeft != 0 && walkExpr(tls, pWalker, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) != 0 {
+ return WRC_Abort
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).FpRight != 0 {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+ continue
+ } else if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ if Xsqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) != 0 {
+ return WRC_Abort
+ }
+ } else {
+ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 {
+ if Xsqlite3WalkExprList(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) != 0 {
+ return WRC_Abort
+ }
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ if walkWindowList(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 64)), 1) != 0 {
+ return WRC_Abort
+ }
+ }
+ }
+ }
+ break
+ }
+ return WRC_Continue
+}
+
+func Xsqlite3WalkExpr(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if pExpr != 0 {
+ return walkExpr(tls, pWalker, pExpr)
+ }
+ return WRC_Continue
+}
+
+// Call sqlite3WalkExpr() for every expression in list p or until
+// an abort request is seen.
+func Xsqlite3WalkExprList(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ var i int32
+ var pItem uintptr
+ if p != 0 {
+ i = (*ExprList)(unsafe.Pointer(p)).FnExpr
+ pItem = p + 8
+ __1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ if Xsqlite3WalkExpr(tls, pWalker, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr) != 0 {
+ return WRC_Abort
+ }
+
+ }
+ goto __2
+ __2:
+ i--
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ }
+ return WRC_Continue
+}
+
+// This is a no-op callback for Walker->xSelectCallback2. If this
+// callback is set, then the Select->pWinDefn list is traversed.
+func Xsqlite3WalkWinDefnDummyCallback(tls *libc.TLS, pWalker uintptr, p uintptr) {
+ _ = pWalker
+ _ = p
+
+}
+
+// Walk all expressions associated with SELECT statement p. Do
+// not invoke the SELECT callback on p, but do (of course) invoke
+// any expr callbacks and SELECT callbacks that come from subqueries.
+// Return WRC_Abort or WRC_Continue.
+func Xsqlite3WalkSelectExpr(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ if Xsqlite3WalkExprList(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpEList) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3WalkExpr(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpWhere) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3WalkExprList(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpGroupBy) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3WalkExpr(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpHaving) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3WalkExprList(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpOrderBy) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3WalkExpr(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpLimit) != 0 {
+ return WRC_Abort
+ }
+ if (*Select)(unsafe.Pointer(p)).FpWinDefn != 0 {
+ var pParse uintptr
+ if (*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback2 == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3WalkWinDefnDummyCallback})) ||
+ libc.AssignUintptr(&pParse, (*Walker)(unsafe.Pointer(pWalker)).FpParse) != uintptr(0) && int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME ||
+ (*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback2 == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3SelectPopWith})) {
+ var rc int32 = walkWindowList(tls, pWalker, (*Select)(unsafe.Pointer(p)).FpWinDefn, 0)
+ return rc
+ }
+ }
+ return WRC_Continue
+}
+
+// Walk the parse trees associated with all subqueries in the
+// FROM clause of SELECT statement p. Do not invoke the select
+// callback on p, but do invoke it on each FROM clause subquery
+// and on any subqueries further down in the tree. Return
+// WRC_Abort or WRC_Continue;
+func Xsqlite3WalkSelectFrom(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ var pSrc uintptr
+ var i int32
+ var pItem uintptr
+
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+ if pSrc != 0 {
+ i = (*SrcList)(unsafe.Pointer(pSrc)).FnSrc
+ pItem = pSrc + 8
+ __1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && Xsqlite3WalkSelect(tls, pWalker, (*SrcItem)(unsafe.Pointer(pItem)).FpSelect) != 0 {
+ return WRC_Abort
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x4>>2)) != 0 &&
+ Xsqlite3WalkExprList(tls, pWalker, *(*uintptr)(unsafe.Pointer(pItem + 88))) != 0 {
+ return WRC_Abort
+ }
+
+ }
+ goto __2
+ __2:
+ i--
+ pItem += 104
+ goto __1
+ goto __3
+ __3:
+ }
+ return WRC_Continue
+}
+
+// Call sqlite3WalkExpr() for every expression in Select statement p.
+// Invoke sqlite3WalkSelect() for subqueries in the FROM clause and
+// on the compound select chain, p->pPrior.
+//
+// If it is not NULL, the xSelectCallback() callback is invoked before
+// the walk of the expressions and FROM clause. The xSelectCallback2()
+// method is invoked following the walk of the expressions and FROM clause,
+// but only if both xSelectCallback and xSelectCallback2 are both non-NULL
+// and if the expressions and FROM clause both return WRC_Continue;
+//
+// Return WRC_Continue under normal conditions. Return WRC_Abort if
+// there is an abort request.
+//
+// If the Walker does not have an xSelectCallback() then this routine
+// is a no-op returning WRC_Continue.
+func Xsqlite3WalkSelect(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ var rc int32
+ if p == uintptr(0) {
+ return WRC_Continue
+ }
+ if (*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback == uintptr(0) {
+ return WRC_Continue
+ }
+ for __ccgo := true; __ccgo; __ccgo = p != uintptr(0) {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback})).f(tls, pWalker, p)
+ if rc != 0 {
+ return rc & WRC_Abort
+ }
+ if Xsqlite3WalkSelectExpr(tls, pWalker, p) != 0 ||
+ Xsqlite3WalkSelectFrom(tls, pWalker, p) != 0 {
+ return WRC_Abort
+ }
+ if (*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback2 != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback2})).f(tls, pWalker, p)
+ }
+ p = (*Select)(unsafe.Pointer(p)).FpPrior
+ }
+ return WRC_Continue
+}
+
+// Increase the walkerDepth when entering a subquery, and
+// descrease when leaving the subquery.
+func Xsqlite3WalkerDepthIncrease(tls *libc.TLS, pWalker uintptr, pSelect uintptr) int32 {
+ _ = pSelect
+ (*Walker)(unsafe.Pointer(pWalker)).FwalkerDepth++
+ return WRC_Continue
+}
+
+func Xsqlite3WalkerDepthDecrease(tls *libc.TLS, pWalker uintptr, pSelect uintptr) {
+ _ = pSelect
+ (*Walker)(unsafe.Pointer(pWalker)).FwalkerDepth--
+}
+
+// No-op routine for the parse-tree walker.
+//
+// When this routine is the Walker.xExprCallback then expression trees
+// are walked without any actions being taken at each node. Presumably,
+// when this routine is used for Walker.xExprCallback then
+// Walker.xSelectCallback is set to do something useful for every
+// subquery in the parser tree.
+func Xsqlite3ExprWalkNoop(tls *libc.TLS, NotUsed uintptr, NotUsed2 uintptr) int32 {
+ _ = NotUsed
+ _ = NotUsed2
+ return WRC_Continue
+}
+
+// No-op routine for the parse-tree walker for SELECT statements.
+// subquery in the parser tree.
+func Xsqlite3SelectWalkNoop(tls *libc.TLS, NotUsed uintptr, NotUsed2 uintptr) int32 {
+ _ = NotUsed
+ _ = NotUsed2
+ return WRC_Continue
+}
+
+func incrAggDepth(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_FUNCTION {
+ *(*U8)(unsafe.Pointer(pExpr + 2)) += U8(*(*int32)(unsafe.Pointer(pWalker + 40)))
+ }
+ return WRC_Continue
+}
+
+func incrAggFunctionDepth(tls *libc.TLS, pExpr uintptr, N int32) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if N > 0 {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{incrAggDepth}))
+ *(*int32)(unsafe.Pointer(bp + 40)) = N
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ }
+}
+
+func resolveAlias(tls *libc.TLS, pParse uintptr, pEList uintptr, iCol int32, pExpr uintptr, nSubquery int32) {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var pOrig uintptr
+ var pDup uintptr
+ var db uintptr
+
+ pOrig = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(iCol)*32)).FpExpr
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pDup = Xsqlite3ExprDup(tls, db, pOrig, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ExprDelete(tls, db, pDup)
+ pDup = uintptr(0)
+ } else {
+ incrAggFunctionDepth(tls, pDup, nSubquery)
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLLATE {
+ pDup = Xsqlite3ExprAddCollateString(tls, pParse, pDup, *(*uintptr)(unsafe.Pointer(pExpr + 8)))
+ }
+ libc.X__builtin___memcpy_chk(tls, bp, pDup, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memcpy_chk(tls, pDup, pExpr, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, pDup, 0))
+ libc.X__builtin___memcpy_chk(tls, pExpr, bp, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, pExpr, 0))
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ if *(*uintptr)(unsafe.Pointer(pExpr + 64)) != uintptr(0) {
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FpOwner = pExpr
+ }
+ }
+ Xsqlite3ExprDeferredDelete(tls, pParse, pDup)
+ }
+}
+
+// Subqueries stores the original database, table and column names for their
+// result sets in ExprList.a[].zSpan, in the form "DATABASE.TABLE.COLUMN".
+// Check to see if the zSpan given to this routine matches the zDb, zTab,
+// and zCol. If any of zDb, zTab, and zCol are NULL then those fields will
+// match anything.
+func Xsqlite3MatchEName(tls *libc.TLS, pItem uintptr, zCol uintptr, zTab uintptr, zDb uintptr) int32 {
+ var n int32
+ var zSpan uintptr
+ if int32(*(*uint16)(unsafe.Pointer(pItem + 16 + 4))&0x3>>0) != ENAME_TAB {
+ return 0
+ }
+ zSpan = (*ExprList_item)(unsafe.Pointer(pItem)).FzEName
+ for n = 0; *(*int8)(unsafe.Pointer(zSpan + uintptr(n))) != 0 && int32(*(*int8)(unsafe.Pointer(zSpan + uintptr(n)))) != '.'; n++ {
+ }
+ if zDb != 0 && (Xsqlite3_strnicmp(tls, zSpan, zDb, n) != 0 || int32(*(*int8)(unsafe.Pointer(zDb + uintptr(n)))) != 0) {
+ return 0
+ }
+ zSpan += uintptr(n + 1)
+ for n = 0; *(*int8)(unsafe.Pointer(zSpan + uintptr(n))) != 0 && int32(*(*int8)(unsafe.Pointer(zSpan + uintptr(n)))) != '.'; n++ {
+ }
+ if zTab != 0 && (Xsqlite3_strnicmp(tls, zSpan, zTab, n) != 0 || int32(*(*int8)(unsafe.Pointer(zTab + uintptr(n)))) != 0) {
+ return 0
+ }
+ zSpan += uintptr(n + 1)
+ if zCol != 0 && Xsqlite3StrICmp(tls, zSpan, zCol) != 0 {
+ return 0
+ }
+ return 1
+}
+
+func areDoubleQuotedStringsEnabled(tls *libc.TLS, db uintptr, pTopNC uintptr) int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ return 1
+ }
+ if (*NameContext)(unsafe.Pointer(pTopNC)).FncFlags&NC_IsDDL != 0 {
+ if Xsqlite3WritableSchema(tls, db) != 0 && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DqsDML) != uint64(0) {
+ return 1
+ }
+ return libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DqsDDL) != uint64(0))
+ } else {
+ return libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DqsDML) != uint64(0))
+ }
+ return int32(0)
+}
+
+// The argument is guaranteed to be a non-NULL Expr node of type TK_COLUMN.
+// return the appropriate colUsed mask.
+func Xsqlite3ExprColUsed(tls *libc.TLS, pExpr uintptr) Bitmask {
+ var n int32
+ var pExTab uintptr
+
+ n = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+
+ pExTab = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+
+ if (*Table)(unsafe.Pointer(pExTab)).FtabFlags&U32(TF_HasGenerated) != U32(0) &&
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pExTab)).FaCol+uintptr(n)*24)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ if int32((*Table)(unsafe.Pointer(pExTab)).FnCol) >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ return libc.Uint64(libc.Uint64FromInt32(-1))
+ }
+ return uint64(1)<<int32((*Table)(unsafe.Pointer(pExTab)).FnCol) - uint64(1)
+ } else {
+ if n >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ n = int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1
+ }
+ return uint64(1) << n
+ }
+ return Bitmask(0)
+}
+
+func extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintptr, iColumn I16) {
+ var pNew uintptr = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_COLUMN, uintptr(0), 0)
+ if pNew != 0 {
+ (*Expr)(unsafe.Pointer(pNew)).FiTable = (*SrcItem)(unsafe.Pointer(pMatch)).FiCursor
+ (*Expr)(unsafe.Pointer(pNew)).FiColumn = iColumn
+ *(*uintptr)(unsafe.Pointer(pNew + 64)) = (*SrcItem)(unsafe.Pointer(pMatch)).FpTab
+
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_CanBeNull)
+ *(*uintptr)(unsafe.Pointer(ppList)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(ppList)), pNew)
+ }
+}
+
+func isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) int32 {
+ var zLegacy uintptr
+
+ if Xsqlite3_strnicmp(tls, zTab, ts+6784, 7) != 0 {
+ return 0
+ }
+ zLegacy = (*Table)(unsafe.Pointer(pTab)).FzName
+ if libc.Xstrcmp(tls, zLegacy+uintptr(7), ts+6792+7) == 0 {
+ if Xsqlite3StrICmp(tls, zTab+uintptr(7), ts+6811+7) == 0 {
+ return 1
+ }
+ if pSchema == uintptr(0) {
+ return 0
+ }
+ if Xsqlite3StrICmp(tls, zTab+uintptr(7), ts+6286+7) == 0 {
+ return 1
+ }
+ if Xsqlite3StrICmp(tls, zTab+uintptr(7), ts+6830+7) == 0 {
+ return 1
+ }
+ } else {
+ if Xsqlite3StrICmp(tls, zTab+uintptr(7), ts+6830+7) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(104)
+ defer tls.Free(104)
+
+ var i int32
+ var j int32
+ var cnt int32
+ var cntTab int32
+ var nSubquery int32
+ var db uintptr
+ var pItem uintptr
+ var pMatch uintptr
+ var pTopNC uintptr
+ var pSchema uintptr
+ var eNewExprOp int32
+ var pTab uintptr
+ var pCol uintptr
+
+ var hit int32
+ var hCol U8
+ var op int32
+ var pUpsert uintptr
+ var iCol int32
+ var hCol1 U8
+ var pOrig uintptr
+ var zAs uintptr
+ var pEList uintptr
+ var pSrcList uintptr
+ var zErr uintptr
+ cnt = 0
+ cntTab = 0
+ nSubquery = 0
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pMatch = uintptr(0)
+ pTopNC = pNC
+ pSchema = uintptr(0)
+ eNewExprOp = TK_COLUMN
+ pTab = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = -1
+
+ if !(zDb != 0) {
+ goto __1
+ }
+
+ if !((*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_PartIdx|NC_IsCheck) != 0) {
+ goto __2
+ }
+
+ zDb = uintptr(0)
+ goto __3
+__2:
+ i = 0
+__4:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __6
+ }
+
+ if !(Xsqlite3StrICmp(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FzDbSName, zDb) == 0) {
+ goto __7
+ }
+ pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpSchema
+ goto __6
+__7:
+ ;
+ goto __5
+__5:
+ i++
+ goto __4
+ goto __6
+__6:
+ ;
+ if !(i == (*Sqlite3)(unsafe.Pointer(db)).FnDb && Xsqlite3StrICmp(tls, ts+6844, zDb) == 0) {
+ goto __8
+ }
+
+ pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FzDbSName
+__8:
+ ;
+__3:
+ ;
+__1:
+ ;
+__9:
+ pSrcList = (*NameContext)(unsafe.Pointer(pNC)).FpSrcList
+
+ if !(pSrcList != 0) {
+ goto __12
+ }
+ i = 0
+ pItem = pSrcList + 8
+__13:
+ if !(i < (*SrcList)(unsafe.Pointer(pSrcList)).FnSrc) {
+ goto __15
+ }
+ pTab = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2000>>13)) != 0) {
+ goto __16
+ }
+
+ hit = 0
+
+ pEList = (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList
+
+ j = 0
+__17:
+ if !(j < (*ExprList)(unsafe.Pointer(pEList)).FnExpr) {
+ goto __19
+ }
+ if !!(Xsqlite3MatchEName(tls, pEList+8+uintptr(j)*32, zCol, zTab, zDb) != 0) {
+ goto __20
+ }
+ goto __18
+__20:
+ ;
+ if !(cnt > 0) {
+ goto __21
+ }
+ if !(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x400>>10) == 0 ||
+ Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pItem + 72)), zCol) < 0) {
+ goto __22
+ }
+
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+ goto __23
+__22:
+ if !(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_RIGHT == 0) {
+ goto __24
+ }
+
+ goto __18
+ goto __25
+__24:
+ if !(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_LEFT == 0) {
+ goto __26
+ }
+
+ cnt = 0
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+ goto __27
+__26:
+ extendFJMatch(tls, pParse, bp+96, pMatch, (*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+__27:
+ ;
+__25:
+ ;
+__23:
+ ;
+__21:
+ ;
+ cnt++
+ cntTab = 2
+ pMatch = pItem
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = YnVar(j)
+ libc.SetBitFieldPtr16Uint32(pEList+8+uintptr(j)*32+16+4, uint32(1), 6, 0x40)
+ hit = 1
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x80>>7)) != 0) {
+ goto __28
+ }
+ goto __19
+__28:
+ ;
+ goto __18
+__18:
+ j++
+ goto __17
+ goto __19
+__19:
+ ;
+ if !(hit != 0 || zTab == uintptr(0)) {
+ goto __29
+ }
+ goto __14
+__29:
+ ;
+__16:
+ ;
+ if !(zTab != 0) {
+ goto __30
+ }
+ if !(zDb != 0) {
+ goto __31
+ }
+ if !((*Table)(unsafe.Pointer(pTab)).FpSchema != pSchema) {
+ goto __32
+ }
+ goto __14
+__32:
+ ;
+ if !(pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, ts+6849) != 0) {
+ goto __33
+ }
+ goto __14
+__33:
+ ;
+__31:
+ ;
+ if !((*SrcItem)(unsafe.Pointer(pItem)).FzAlias != uintptr(0)) {
+ goto __34
+ }
+ if !(Xsqlite3StrICmp(tls, zTab, (*SrcItem)(unsafe.Pointer(pItem)).FzAlias) != 0) {
+ goto __36
+ }
+ goto __14
+__36:
+ ;
+ goto __35
+__34:
+ if !(Xsqlite3StrICmp(tls, zTab, (*Table)(unsafe.Pointer(pTab)).FzName) != 0) {
+ goto __37
+ }
+ if !((*Table)(unsafe.Pointer(pTab)).Ftnum != Pgno(1)) {
+ goto __38
+ }
+ goto __14
+__38:
+ ;
+ if !!(isValidSchemaTableName(tls, zTab, pTab, pSchema) != 0) {
+ goto __39
+ }
+ goto __14
+__39:
+ ;
+__37:
+ ;
+__35:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && (*SrcItem)(unsafe.Pointer(pItem)).FzAlias != 0) {
+ goto __40
+ }
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), pExpr+64)
+__40:
+ ;
+__30:
+ ;
+ hCol = Xsqlite3StrIHash(tls, zCol)
+ j = 0
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+__41:
+ if !(j < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __43
+ }
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FhName) == int32(hCol) &&
+ Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0) {
+ goto __44
+ }
+ if !(cnt > 0) {
+ goto __45
+ }
+ if !(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x400>>10) == 0 ||
+ Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pItem + 72)), zCol) < 0) {
+ goto __46
+ }
+
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+ goto __47
+__46:
+ if !(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_RIGHT == 0) {
+ goto __48
+ }
+
+ goto __42
+ goto __49
+__48:
+ if !(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_LEFT == 0) {
+ goto __50
+ }
+
+ cnt = 0
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+ goto __51
+__50:
+ extendFJMatch(tls, pParse, bp+96, pMatch, (*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+__51:
+ ;
+__49:
+ ;
+__47:
+ ;
+__45:
+ ;
+ cnt++
+ pMatch = pItem
+
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = func() int16 {
+ if j == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ return int16(-1)
+ }
+ return I16(j)
+ }()
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2000>>13)) != 0) {
+ goto __52
+ }
+ Xsqlite3SrcItemColumnUsed(tls, pItem, j)
+__52:
+ ;
+ goto __43
+__44:
+ ;
+ goto __42
+__42:
+ j++
+ pCol += 24
+ goto __41
+ goto __43
+__43:
+ ;
+ if !(0 == cnt && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_NoVisibleRowid) == U32(0)) {
+ goto __53
+ }
+ cntTab++
+ pMatch = pItem
+__53:
+ ;
+ goto __14
+__14:
+ i++
+ pItem += 104
+ goto __13
+ goto __15
+__15:
+ ;
+ if !(pMatch != 0) {
+ goto __54
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*SrcItem)(unsafe.Pointer(pMatch)).FiCursor
+
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*SrcItem)(unsafe.Pointer(pMatch)).FpTab
+ if !(int32((*SrcItem)(unsafe.Pointer(pMatch)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ) != 0) {
+ goto __55
+ }
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_CanBeNull)
+__55:
+ ;
+ pSchema = (*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FpSchema
+__54:
+ ;
+__12:
+ ;
+ if !(cnt == 0 && zDb == uintptr(0)) {
+ goto __56
+ }
+ pTab = uintptr(0)
+ if !((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0)) {
+ goto __57
+ }
+ op = int32((*Parse)(unsafe.Pointer(pParse)).FeTriggerOp)
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FbReturning != 0) {
+ goto __58
+ }
+ if !((*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_UBaseReg != 0 &&
+ (zTab == uintptr(0) || Xsqlite3StrICmp(tls, zTab, (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0)) {
+ goto __60
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = libc.Bool32(op != TK_DELETE)
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab
+__60:
+ ;
+ goto __59
+__58:
+ if !(op != TK_DELETE && zTab != 0 && Xsqlite3StrICmp(tls, ts+6851, zTab) == 0) {
+ goto __61
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = 1
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab
+ goto __62
+__61:
+ if !(op != TK_INSERT && zTab != 0 && Xsqlite3StrICmp(tls, ts+6855, zTab) == 0) {
+ goto __63
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = 0
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab
+__63:
+ ;
+__62:
+ ;
+__59:
+ ;
+__57:
+ ;
+ if !((*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_UUpsert != 0 && zTab != uintptr(0)) {
+ goto __64
+ }
+ pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16))
+ if !(pUpsert != 0 && Xsqlite3StrICmp(tls, ts+6859, zTab) == 0) {
+ goto __65
+ }
+ pTab = (*SrcItem)(unsafe.Pointer((*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8)).FpTab
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = EXCLUDED_TABLE_NUMBER
+__65:
+ ;
+__64:
+ ;
+ if !(pTab != 0) {
+ goto __66
+ }
+ hCol1 = Xsqlite3StrIHash(tls, zCol)
+ pSchema = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ cntTab++
+ iCol = 0
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+__67:
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __69
+ }
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FhName) == int32(hCol1) &&
+ Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0) {
+ goto __70
+ }
+ if !(iCol == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __71
+ }
+ iCol = -1
+__71:
+ ;
+ goto __69
+__70:
+ ;
+ goto __68
+__68:
+ iCol++
+ pCol += 24
+ goto __67
+ goto __69
+__69:
+ ;
+ if !(iCol >= int32((*Table)(unsafe.Pointer(pTab)).FnCol) && Xsqlite3IsRowid(tls, zCol) != 0 && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_NoVisibleRowid) == U32(0)) {
+ goto __72
+ }
+
+ iCol = -1
+__72:
+ ;
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __73
+ }
+ cnt++
+ pMatch = uintptr(0)
+ if !((*Expr)(unsafe.Pointer(pExpr)).FiTable == EXCLUDED_TABLE_NUMBER) {
+ goto __74
+ }
+
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __76
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = YnVar(iCol)
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = pTab
+ eNewExprOp = TK_COLUMN
+ goto __77
+__76:
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*Upsert)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNC + 16)))).FregData + int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(iCol)))
+ eNewExprOp = TK_REGISTER
+__77:
+ ;
+ goto __75
+__74:
+ ;
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = pTab
+ if !((*Parse)(unsafe.Pointer(pParse)).FbReturning != 0) {
+ goto __78
+ }
+ eNewExprOp = TK_REGISTER
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2 = U8(TK_COLUMN)
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = YnVar(iCol)
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = *(*int32)(unsafe.Pointer(pNC + 16)) + (int32((*Table)(unsafe.Pointer(pTab)).FnCol)+1)*(*Expr)(unsafe.Pointer(pExpr)).FiTable + int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(iCol))) + 1
+ goto __79
+__78:
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = I16(iCol)
+ eNewExprOp = TK_TRIGGER
+ if !(iCol < 0) {
+ goto __80
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FaffExpr = int8(SQLITE_AFF_INTEGER)
+ goto __81
+__80:
+ if !((*Expr)(unsafe.Pointer(pExpr)).FiTable == 0) {
+ goto __82
+ }
+
+ *(*U32)(unsafe.Pointer(pParse + 212)) |= func() uint32 {
+ if iCol >= 32 {
+ return 0xffffffff
+ }
+ return U32(1) << iCol
+ }()
+ goto __83
+__82:
+ ;
+ *(*U32)(unsafe.Pointer(pParse + 216)) |= func() uint32 {
+ if iCol >= 32 {
+ return 0xffffffff
+ }
+ return U32(1) << iCol
+ }()
+__83:
+ ;
+__81:
+ ;
+__79:
+ ;
+__75:
+ ;
+__73:
+ ;
+__66:
+ ;
+__56:
+ ;
+ if !(cnt == 0 &&
+ cntTab == 1 &&
+ pMatch != 0 &&
+ (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_IdxExpr|NC_GenCol) == 0 &&
+ Xsqlite3IsRowid(tls, zCol) != 0 &&
+ (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pMatch)).FpTab)).FtabFlags&U32(TF_NoVisibleRowid) == U32(0)) {
+ goto __84
+ }
+ cnt = 1
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = int16(-1)
+ (*Expr)(unsafe.Pointer(pExpr)).FaffExpr = int8(SQLITE_AFF_INTEGER)
+__84:
+ ;
+ if !(cnt == 0 &&
+ (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_UEList != 0 &&
+ zTab == uintptr(0)) {
+ goto __85
+ }
+ pEList = *(*uintptr)(unsafe.Pointer(pNC + 16))
+
+ j = 0
+__86:
+ if !(j < (*ExprList)(unsafe.Pointer(pEList)).FnExpr) {
+ goto __88
+ }
+ zAs = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32)).FzEName
+ if !(int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0) == ENAME_NAME &&
+ Xsqlite3_stricmp(tls, zAs, zCol) == 0) {
+ goto __89
+ }
+
+ pOrig = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32)).FpExpr
+ if !((*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_AllowAgg == 0 && (*Expr)(unsafe.Pointer(pOrig)).Fflags&U32(EP_Agg) != U32(0)) {
+ goto __90
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+6868, libc.VaList(bp, zAs))
+ return WRC_Abort
+__90:
+ ;
+ if !((*Expr)(unsafe.Pointer(pOrig)).Fflags&U32(EP_Win) != U32(0) &&
+ ((*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_AllowWin == 0 || pNC != pTopNC)) {
+ goto __91
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+6899, libc.VaList(bp+8, zAs))
+ return WRC_Abort
+__91:
+ ;
+ if !(Xsqlite3ExprVectorSize(tls, pOrig) != 1) {
+ goto __92
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+6936, 0)
+ return WRC_Abort
+__92:
+ ;
+ resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery)
+ cnt = 1
+ pMatch = uintptr(0)
+
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __93
+ }
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), pExpr)
+__93:
+ ;
+ goto lookupname_end
+__89:
+ ;
+ goto __87
+__87:
+ j++
+ goto __86
+ goto __88
+__88:
+ ;
+__85:
+ ;
+ if !(cnt != 0) {
+ goto __94
+ }
+ goto __11
+__94:
+ ;
+ pNC = (*NameContext)(unsafe.Pointer(pNC)).FpNext
+ nSubquery++
+ goto __10
+__10:
+ if pNC != 0 {
+ goto __9
+ }
+ goto __11
+__11:
+ ;
+ if !(cnt == 0 && zTab == uintptr(0)) {
+ goto __95
+ }
+
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_DblQuoted) != U32(0) &&
+ areDoubleQuotedStringsEnabled(tls, db, pTopNC) != 0) {
+ goto __96
+ }
+
+ Xsqlite3_log(tls, SQLITE_WARNING,
+ ts+6954, libc.VaList(bp+16, zCol))
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_STRING)
+ libc.X__builtin___memset_chk(tls, pExpr+64, 0, uint64(unsafe.Sizeof(struct{ FpTab uintptr }{})), libc.X__builtin_object_size(tls, pExpr+64, 0))
+ return WRC_Prune
+__96:
+ ;
+ if !(Xsqlite3ExprIdToTrueFalse(tls, pExpr) != 0) {
+ goto __97
+ }
+ return WRC_Prune
+__97:
+ ;
+__95:
+ ;
+ if !(cnt != 1) {
+ goto __98
+ }
+ if !(*(*uintptr)(unsafe.Pointer(bp + 96)) != 0) {
+ goto __99
+ }
+ if !((*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).FnExpr == cnt-1) {
+ goto __100
+ }
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Leaf) != U32(0)) {
+ goto __102
+ }
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Leaf))
+ goto __103
+__102:
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = uintptr(0)
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ (*Expr)(unsafe.Pointer(pExpr)).FpRight = uintptr(0)
+__103:
+ ;
+ extendFJMatch(tls, pParse, bp+96, pMatch, (*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_FUNCTION)
+ *(*uintptr)(unsafe.Pointer(pExpr + 8)) = ts + 6989
+ *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp + 96))
+ cnt = 1
+ goto lookupname_end
+ goto __101
+__100:
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96)))
+ *(*uintptr)(unsafe.Pointer(bp + 96)) = uintptr(0)
+__101:
+ ;
+__99:
+ ;
+ if cnt == 0 {
+ zErr = ts + 6998
+ } else {
+ zErr = ts + 7013
+ }
+ if !(zDb != 0) {
+ goto __104
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+7035, libc.VaList(bp+24, zErr, zDb, zTab, zCol))
+ goto __105
+__104:
+ if !(zTab != 0) {
+ goto __106
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+7048, libc.VaList(bp+56, zErr, zTab, zCol))
+ goto __107
+__106:
+ Xsqlite3ErrorMsg(tls, pParse, ts+7058, libc.VaList(bp+80, zErr, zCol))
+__107:
+ ;
+__105:
+ ;
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ (*NameContext)(unsafe.Pointer(pTopNC)).FnNcErr++
+__98:
+ ;
+ if !!((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0)) {
+ goto __108
+ }
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = uintptr(0)
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ (*Expr)(unsafe.Pointer(pExpr)).FpRight = uintptr(0)
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_Leaf)
+__108:
+ ;
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && pMatch != uintptr(0)) {
+ goto __109
+ }
+ *(*Bitmask)(unsafe.Pointer(pMatch + 80)) |= Xsqlite3ExprColUsed(tls, pExpr)
+__109:
+ ;
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(eNewExprOp)
+lookupname_end:
+ if !(cnt == 1) {
+ goto __110
+ }
+
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FxAuth != 0 &&
+ (int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_TRIGGER)) {
+ goto __112
+ }
+ Xsqlite3AuthRead(tls, pParse, pExpr, pSchema, (*NameContext)(unsafe.Pointer(pNC)).FpSrcList)
+__112:
+ ;
+__113:
+ ;
+ (*NameContext)(unsafe.Pointer(pTopNC)).FnRef++
+ if !(pTopNC == pNC) {
+ goto __116
+ }
+ goto __115
+__116:
+ ;
+ pTopNC = (*NameContext)(unsafe.Pointer(pTopNC)).FpNext
+ goto __114
+__114:
+ goto __113
+ goto __115
+__115:
+ ;
+ return WRC_Prune
+ goto __111
+__110:
+ return WRC_Abort
+__111:
+ ;
+ return int32(0)
+}
+
+// Allocate and return a pointer to an expression to load the column iCol
+// from datasource iSrc in SrcList pSrc.
+func Xsqlite3CreateColumnExpr(tls *libc.TLS, db uintptr, pSrc uintptr, iSrc int32, iCol int32) uintptr {
+ var p uintptr = Xsqlite3ExprAlloc(tls, db, TK_COLUMN, uintptr(0), 0)
+ if p != 0 {
+ var pItem uintptr = pSrc + 8 + uintptr(iSrc)*104
+ var pTab uintptr
+
+ pTab = libc.AssignPtrUintptr(p+64, (*SrcItem)(unsafe.Pointer(pItem)).FpTab)
+ (*Expr)(unsafe.Pointer(p)).FiTable = (*SrcItem)(unsafe.Pointer(pItem)).FiCursor
+ if int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FiPKey) == iCol {
+ (*Expr)(unsafe.Pointer(p)).FiColumn = int16(-1)
+ } else {
+ (*Expr)(unsafe.Pointer(p)).FiColumn = YnVar(iCol)
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != U32(0) &&
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ (*SrcItem)(unsafe.Pointer(pItem)).FcolUsed = func() uint64 {
+ if int32((*Table)(unsafe.Pointer(pTab)).FnCol) >= 64 {
+ return libc.Uint64(libc.Uint64FromInt32(-1))
+ }
+ return uint64(1)<<int32((*Table)(unsafe.Pointer(pTab)).FnCol) - uint64(1)
+ }()
+ } else {
+ *(*Bitmask)(unsafe.Pointer(pItem + 80)) |= uint64(1) << func() int32 {
+ if iCol >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ return int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1
+ }
+ return iCol
+ }()
+ }
+ }
+ }
+ return p
+}
+
+func notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pExpr uintptr, pError uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var zIn uintptr = ts + 7065
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_IdxExpr != 0 {
+ zIn = ts + 7093
+ } else if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_IsCheck != 0 {
+ zIn = ts + 7111
+ } else if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_GenCol != 0 {
+ zIn = ts + 7129
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+7147, libc.VaList(bp, zMsg, zIn))
+ if pExpr != 0 {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_NULL)
+ }
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pError)
+}
+
+func exprProbability(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*float64)(unsafe.Pointer(bp)) = -1.0
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) != TK_FLOAT {
+ return -1
+ }
+
+ Xsqlite3AtoF(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp, Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(p + 8))), uint8(SQLITE_UTF8))
+
+ if *(*float64)(unsafe.Pointer(bp)) > 1.0 {
+ return -1
+ }
+ return libc.Int32FromFloat64(*(*float64)(unsafe.Pointer(bp)) * 134217728.0)
+}
+
+func resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ var pNC uintptr
+ var pParse uintptr
+
+ pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+
+ pParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_ROW:
+ {
+ var pSrcList uintptr = (*NameContext)(unsafe.Pointer(pNC)).FpSrcList
+ var pItem uintptr
+
+ pItem = pSrcList + 8
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_COLUMN)
+
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*SrcItem)(unsafe.Pointer(pItem)).FiCursor
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn--
+ (*Expr)(unsafe.Pointer(pExpr)).FaffExpr = int8(SQLITE_AFF_INTEGER)
+ break
+
+ }
+
+ case TK_NOTNULL:
+ fallthrough
+ case TK_ISNULL:
+ {
+ var p uintptr
+ var i int32
+ i = 0
+ p = pNC
+ __1:
+ if !(p != 0 && i < int32(uint64(unsafe.Sizeof([8]int32{}))/uint64(unsafe.Sizeof(int32(0))))) {
+ goto __3
+ }
+ {
+ *(*int32)(unsafe.Pointer(bp + 64 + uintptr(i)*4)) = (*NameContext)(unsafe.Pointer(p)).FnRef
+
+ }
+ goto __2
+ __2:
+ p = (*NameContext)(unsafe.Pointer(p)).FpNext
+ i++
+ goto __1
+ goto __3
+ __3:
+ ;
+ Xsqlite3WalkExpr(tls, pWalker, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if 0 == Xsqlite3ExprCanBeNull(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NOTNULL {
+ *(*uintptr)(unsafe.Pointer(pExpr + 8)) = ts + 7167
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_IsTrue)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pExpr + 8)) = ts + 7172
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_IsFalse)
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_TRUEFALSE)
+ i = 0
+ p = pNC
+ __4:
+ if !(p != 0 && i < int32(uint64(unsafe.Sizeof([8]int32{}))/uint64(unsafe.Sizeof(int32(0))))) {
+ goto __6
+ }
+ {
+ (*NameContext)(unsafe.Pointer(p)).FnRef = *(*int32)(unsafe.Pointer(bp + 64 + uintptr(i)*4))
+
+ }
+ goto __5
+ __5:
+ p = (*NameContext)(unsafe.Pointer(p)).FpNext
+ i++
+ goto __4
+ goto __6
+ __6:
+ ;
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = uintptr(0)
+ }
+ return WRC_Prune
+
+ }
+
+ case TK_ID:
+ fallthrough
+ case TK_DOT:
+ {
+ var zColumn uintptr
+ var zTable uintptr
+ var zDb uintptr
+ var pRight uintptr
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_ID {
+ zDb = uintptr(0)
+ zTable = uintptr(0)
+
+ zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8))
+ } else {
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_IdxExpr|NC_GenCol) != 0 {
+ notValidImpl(tls, pParse, pNC, ts+7178, uintptr(0), pExpr)
+ }
+
+ pRight = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+ if int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_ID {
+ zDb = uintptr(0)
+ } else {
+ zDb = *(*uintptr)(unsafe.Pointer(pLeft + 8))
+ pLeft = (*Expr)(unsafe.Pointer(pRight)).FpLeft
+ pRight = (*Expr)(unsafe.Pointer(pRight)).FpRight
+ }
+
+ zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8))
+ zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8))
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenRemap(tls, pParse, pExpr, pRight)
+ Xsqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft)
+ }
+ }
+ return lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr)
+
+ }
+
+ case TK_FUNCTION:
+ {
+ var pList uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ var n int32
+ if pList != 0 {
+ n = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ } else {
+ n = 0
+ }
+ var no_such_func int32 = 0
+ var wrong_num_args int32 = 0
+ var is_agg int32 = 0
+ var zId uintptr
+ var pDef uintptr
+ var enc U8 = (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fenc
+ var savedAllowFlags int32 = (*NameContext)(unsafe.Pointer(pNC)).FncFlags & (NC_AllowAgg | NC_AllowWin)
+ var pWin uintptr = func() uintptr {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) && int32((*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FeFrmType) != TK_FILTER {
+ return *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ }
+ return uintptr(0)
+ }()
+
+ zId = *(*uintptr)(unsafe.Pointer(pExpr + 8))
+ pDef = Xsqlite3FindFunction(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zId, n, enc, uint8(0))
+ if pDef == uintptr(0) {
+ pDef = Xsqlite3FindFunction(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zId, -2, enc, uint8(0))
+ if pDef == uintptr(0) {
+ no_such_func = 1
+ } else {
+ wrong_num_args = 1
+ }
+ } else {
+ is_agg = libc.Bool32((*FuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0))
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_UNLIKELY) != 0 {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_Unlikely)
+ if n == 2 {
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = exprProbability(tls, (*ExprList_item)(unsafe.Pointer(pList+8+1*32)).FpExpr)
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable < 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7195, libc.VaList(bp, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ }
+ } else {
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = func() int32 {
+ if int32(*(*int8)(unsafe.Pointer((*FuncDef)(unsafe.Pointer(pDef)).FzName))) == 'u' {
+ return 8388608
+ }
+ return 125829120
+ }()
+ }
+ }
+ {
+ var auth int32 = Xsqlite3AuthCheck(tls, pParse, SQLITE_FUNCTION, uintptr(0), (*FuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0))
+ if auth != SQLITE_OK {
+ if auth == SQLITE_DENY {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7259,
+ libc.VaList(bp+8, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_NULL)
+ return WRC_Prune
+ }
+
+ }
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG) != 0 {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_ConstFunc)
+ }
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_CONSTANT) == U32(0) {
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_IdxExpr|NC_PartIdx|NC_GenCol) != 0 {
+ notValidImpl(tls, pParse, pNC, ts+7295, uintptr(0), pExpr)
+ }
+
+ } else {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2 = U8((*NameContext)(unsafe.Pointer(pNC)).FncFlags & NC_SelfRef)
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_FromDDL != 0 {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_FromDDL)
+ }
+ }
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_INTERNAL) != U32(0) &&
+ int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&U32(DBFLAG_InternalFunc) == U32(0) {
+ no_such_func = 1
+ pDef = uintptr(0)
+ } else if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE) != U32(0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ Xsqlite3ExprFunctionUsable(tls, pParse, pExpr, pDef)
+ }
+ }
+
+ if 0 == libc.Bool32(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ if pDef != 0 && (*FuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7323, libc.VaList(bp+16, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ } else if is_agg != 0 && (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_AllowAgg == 0 ||
+ is_agg != 0 && (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) ||
+ is_agg != 0 && pWin != 0 && (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_AllowWin == 0 {
+ var zType uintptr
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 {
+ zType = ts + 7366
+ } else {
+ zType = ts + 7373
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+7383, libc.VaList(bp+24, zType, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ is_agg = 0
+ } else if no_such_func != 0 && int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Finit.Fbusy) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7411, libc.VaList(bp+40, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ } else if wrong_num_args != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7433,
+ libc.VaList(bp+48, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ } else if is_agg == 0 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7477,
+ libc.VaList(bp+56, pExpr))
+ (*NameContext)(unsafe.Pointer(pNC)).FnNcErr++
+ }
+ if is_agg != 0 {
+ *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(NC_AllowWin | func() int32 {
+ if !(pWin != 0) {
+ return NC_AllowAgg
+ }
+ return 0
+ }())
+ }
+ } else if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ is_agg = 1
+ }
+ Xsqlite3WalkExprList(tls, pWalker, pList)
+ if is_agg != 0 {
+ if pWin != 0 {
+ var pSel uintptr = (*NameContext)(unsafe.Pointer(pNC)).FpWinSelect
+
+ if libc.Bool32(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) == 0 {
+ Xsqlite3WindowUpdate(tls, pParse, func() uintptr {
+ if pSel != 0 {
+ return (*Select)(unsafe.Pointer(pSel)).FpWinDefn
+ }
+ return uintptr(0)
+ }(), pWin, pDef)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ break
+ }
+ }
+ Xsqlite3WalkExprList(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpPartition)
+ Xsqlite3WalkExprList(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpOrderBy)
+ Xsqlite3WalkExpr(tls, pWalker, (*Window)(unsafe.Pointer(pWin)).FpFilter)
+ Xsqlite3WindowLink(tls, pSel, pWin)
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= NC_HasWin
+ } else {
+ var pNC2 uintptr
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_AGG_FUNCTION)
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2 = U8(0)
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ Xsqlite3WalkExpr(tls, pWalker, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FpFilter)
+ }
+ pNC2 = pNC
+ for pNC2 != 0 &&
+ Xsqlite3ReferencesSrcList(tls, pParse, pExpr, (*NameContext)(unsafe.Pointer(pNC2)).FpSrcList) == 0 {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2++
+ pNC2 = (*NameContext)(unsafe.Pointer(pNC2)).FpNext
+ }
+
+ if pNC2 != 0 && pDef != 0 {
+ *(*int32)(unsafe.Pointer(pNC2 + 40)) |= int32(U32(NC_HasAgg) |
+ ((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags^U32(SQLITE_FUNC_ANYORDER))&
+ U32(SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER))
+ }
+ }
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= savedAllowFlags
+ }
+
+ return WRC_Prune
+
+ }
+ case TK_SELECT:
+ fallthrough
+ case TK_EXISTS:
+ fallthrough
+ case TK_IN:
+ {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ var nRef int32 = (*NameContext)(unsafe.Pointer(pNC)).FnRef
+
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_SelfRef != 0 {
+ notValidImpl(tls, pParse, pNC, ts+7525, pExpr, pExpr)
+ } else {
+ Xsqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+ }
+
+ if nRef != (*NameContext)(unsafe.Pointer(pNC)).FnRef {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_VarSelect)
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= NC_VarSelect
+ }
+ }
+ break
+
+ }
+ case TK_VARIABLE:
+ {
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_IsCheck|NC_PartIdx|NC_IdxExpr|NC_GenCol) != 0 {
+ notValidImpl(tls, pParse, pNC, ts+7536, pExpr, pExpr)
+ }
+
+ break
+
+ }
+ case TK_IS:
+ fallthrough
+ case TK_ISNOT:
+ {
+ var pRight uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+
+ if pRight != 0 && (int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_ID || int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_TRUEFALSE) {
+ var rc int32 = resolveExprStep(tls, pWalker, pRight)
+ if rc == WRC_Abort {
+ return WRC_Abort
+ }
+ if int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_TRUEFALSE {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2 = (*Expr)(unsafe.Pointer(pExpr)).Fop
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_TRUTH)
+ return WRC_Continue
+ }
+ }
+
+ }
+ fallthrough
+ case TK_BETWEEN:
+ fallthrough
+ case TK_EQ:
+ fallthrough
+ case TK_NE:
+ fallthrough
+ case TK_LT:
+ fallthrough
+ case TK_LE:
+ fallthrough
+ case TK_GT:
+ fallthrough
+ case TK_GE:
+ {
+ var nLeft int32
+ var nRight int32
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ break
+ }
+
+ nLeft = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_BETWEEN {
+ nRight = Xsqlite3ExprVectorSize(tls, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32))+8)).FpExpr)
+ if nRight == nLeft {
+ nRight = Xsqlite3ExprVectorSize(tls, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32))+8+1*32)).FpExpr)
+ }
+ } else {
+ nRight = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ }
+ if nLeft != nRight {
+ Xsqlite3ErrorMsg(tls, pParse, ts+6936, 0)
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ }
+ break
+
+ }
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return WRC_Abort
+ }
+ return WRC_Continue
+}
+
+func resolveAsName(tls *libc.TLS, pParse uintptr, pEList uintptr, pE uintptr) int32 {
+ var i int32
+
+ _ = pParse
+
+ if int32((*Expr)(unsafe.Pointer(pE)).Fop) == TK_ID {
+ var zCol uintptr
+
+ zCol = *(*uintptr)(unsafe.Pointer(pE + 8))
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ if int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0) == ENAME_NAME &&
+ Xsqlite3_stricmp(tls, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FzEName, zCol) == 0 {
+ return i + 1
+ }
+ }
+ }
+ return 0
+}
+
+func resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintptr, pE uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var i int32
+ var pEList uintptr
+
+ var db uintptr
+ var rc int32
+ var savedSuppErr U8
+
+ pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = pEList
+ (*NameContext)(unsafe.Pointer(bp)).FncFlags = NC_AllowAgg | NC_UEList | NC_NoSelect
+ (*NameContext)(unsafe.Pointer(bp)).FnNcErr = 0
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ savedSuppErr = (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr
+ (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr = U8(1)
+ rc = Xsqlite3ResolveExprNames(tls, bp, pE)
+ (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr = savedSuppErr
+ if rc != 0 {
+ return 0
+ }
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FpExpr, pE, -1) < 2 {
+ return i + 1
+ }
+ }
+
+ return 0
+}
+
+func resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7547, libc.VaList(bp, i, zType, mx))
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pError)
+}
+
+func resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var i int32
+ var pOrderBy uintptr
+ var pEList uintptr
+ var db uintptr
+ var moreToDo int32 = 1
+
+ pOrderBy = (*Select)(unsafe.Pointer(pSelect)).FpOrderBy
+ if pOrderBy == uintptr(0) {
+ return 0
+ }
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7603, 0)
+ return 1
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
+ libc.SetBitFieldPtr16Uint32(pOrderBy+8+uintptr(i)*32+16+4, uint32(0), 2, 0x4)
+ }
+ (*Select)(unsafe.Pointer(pSelect)).FpNext = uintptr(0)
+ for (*Select)(unsafe.Pointer(pSelect)).FpPrior != 0 {
+ (*Select)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpPrior)).FpNext = pSelect
+ pSelect = (*Select)(unsafe.Pointer(pSelect)).FpPrior
+ }
+ for pSelect != 0 && moreToDo != 0 {
+ var pItem uintptr
+ moreToDo = 0
+ pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ i = 0
+ pItem = pOrderBy + 8
+ __1:
+ if !(i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr) {
+ goto __3
+ }
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) = -1
+ var pE uintptr
+ var pDup uintptr
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 16 + 4))&0x4>>2)) != 0 {
+ goto __2
+ }
+ pE = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
+ if pE == uintptr(0) {
+ goto __2
+ }
+ if Xsqlite3ExprIsInteger(tls, pE, bp+8) != 0 {
+ if *(*int32)(unsafe.Pointer(bp + 8)) <= 0 || *(*int32)(unsafe.Pointer(bp + 8)) > (*ExprList)(unsafe.Pointer(pEList)).FnExpr {
+ resolveOutOfRangeError(tls, pParse, ts+7637, i+1, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, pE)
+ return 1
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 8)) = resolveAsName(tls, pParse, pEList, pE)
+ if *(*int32)(unsafe.Pointer(bp + 8)) == 0 {
+ pDup = Xsqlite3ExprDup(tls, db, pE, 0)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ *(*int32)(unsafe.Pointer(bp + 8)) = resolveOrderByTermToExprList(tls, pParse, pSelect, pDup)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && *(*int32)(unsafe.Pointer(bp + 8)) > 0 {
+ resolveOrderByTermToExprList(tls, pParse, pSelect, pE)
+ }
+ }
+ Xsqlite3ExprDelete(tls, db, pDup)
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 8)) > 0 {
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ var pNew uintptr = Xsqlite3Expr(tls, db, TK_INTEGER, uintptr(0))
+ if pNew == uintptr(0) {
+ return 1
+ }
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_IntValue)
+ *(*int32)(unsafe.Pointer(pNew + 8)) = *(*int32)(unsafe.Pointer(bp + 8))
+ if (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr == pE {
+ (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr = pNew
+ } else {
+ var pParent uintptr = (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr
+
+ for int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pParent)).FpLeft)).Fop) == TK_COLLATE {
+ pParent = (*Expr)(unsafe.Pointer(pParent)).FpLeft
+ }
+
+ (*Expr)(unsafe.Pointer(pParent)).FpLeft = pNew
+ }
+ Xsqlite3ExprDelete(tls, db, pE)
+ *(*U16)(unsafe.Pointer(pItem + 24)) = U16(*(*int32)(unsafe.Pointer(bp + 8)))
+ }
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(1), 2, 0x4)
+ } else {
+ moreToDo = 1
+ }
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ ;
+ pSelect = (*Select)(unsafe.Pointer(pSelect)).FpNext
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
+ if int32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7643, libc.VaList(bp, i+1))
+ return 1
+ }
+ }
+ return 0
+}
+
+// Check every term in the ORDER BY or GROUP BY clause pOrderBy of
+// the SELECT statement pSelect. If any term is reference to a
+// result set expression (as determined by the ExprList.a.u.x.iOrderByCol
+// field) then convert that term into a copy of the corresponding result set
+// column.
+//
+// If any errors are detected, add an error message to pParse and
+// return non-zero. Return zero if no errors are seen.
+func Xsqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, pOrderBy uintptr, zType uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var i int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pEList uintptr
+ var pItem uintptr
+
+ if pOrderBy == uintptr(0) || (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 || int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ return 0
+ }
+ if (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7704, libc.VaList(bp, zType))
+ return 1
+ }
+ pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ i = 0
+ pItem = pOrderBy + 8
+__1:
+ if !(i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr) {
+ goto __3
+ }
+ {
+ if *(*U16)(unsafe.Pointer(pItem + 24)) != 0 {
+ if int32(*(*U16)(unsafe.Pointer(pItem + 24))) > (*ExprList)(unsafe.Pointer(pEList)).FnExpr {
+ resolveOutOfRangeError(tls, pParse, zType, i+1, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, uintptr(0))
+ return 1
+ }
+ resolveAlias(tls, pParse, pEList, int32(*(*U16)(unsafe.Pointer(pItem + 24)))-1, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr, 0)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+__3:
+ ;
+ return 0
+}
+
+func resolveRemoveWindowsCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ _ = pWalker
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ var pWin uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ Xsqlite3WindowUnlinkFromSelect(tls, pWin)
+ }
+ return WRC_Continue
+}
+
+func windowRemoveExprFromSelect(tls *libc.TLS, pSelect uintptr, pExpr uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if (*Select)(unsafe.Pointer(pSelect)).FpWin != 0 {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveRemoveWindowsCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pSelect
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ }
+}
+
+func resolveOrderGroupBy(tls *libc.TLS, pNC uintptr, pSelect uintptr, pOrderBy uintptr, zType uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32
+ var j int32
+
+ var pItem uintptr
+ var pParse uintptr
+ var nResult int32
+
+ nResult = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpEList)).FnExpr
+ pParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ i = 0
+ pItem = pOrderBy + 8
+__1:
+ if !(i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr) {
+ goto __3
+ }
+ {
+ var pE uintptr = (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr
+ var pE2 uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, pE)
+ if pE2 == uintptr(0) {
+ goto __2
+ }
+ if int32(*(*int8)(unsafe.Pointer(zType))) != 'G' {
+ *(*int32)(unsafe.Pointer(bp)) = resolveAsName(tls, pParse, (*Select)(unsafe.Pointer(pSelect)).FpEList, pE2)
+ if *(*int32)(unsafe.Pointer(bp)) > 0 {
+ *(*U16)(unsafe.Pointer(pItem + 24)) = U16(*(*int32)(unsafe.Pointer(bp)))
+ goto __2
+ }
+ }
+ if Xsqlite3ExprIsInteger(tls, pE2, bp) != 0 {
+ if *(*int32)(unsafe.Pointer(bp)) < 1 || *(*int32)(unsafe.Pointer(bp)) > 0xffff {
+ resolveOutOfRangeError(tls, pParse, zType, i+1, nResult, pE2)
+ return 1
+ }
+ *(*U16)(unsafe.Pointer(pItem + 24)) = U16(*(*int32)(unsafe.Pointer(bp)))
+ goto __2
+ }
+
+ *(*U16)(unsafe.Pointer(pItem + 24)) = U16(0)
+ if Xsqlite3ResolveExprNames(tls, pNC, pE) != 0 {
+ return 1
+ }
+ for j = 0; j < (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpEList)).FnExpr; j++ {
+ if Xsqlite3ExprCompare(tls, uintptr(0), pE, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpEList+8+uintptr(j)*32)).FpExpr, -1) == 0 {
+ windowRemoveExprFromSelect(tls, pSelect, pE)
+ *(*U16)(unsafe.Pointer(pItem + 24)) = U16(j + 1)
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xsqlite3ResolveOrderGroupBy(tls, pParse, pSelect, pOrderBy, zType)
+}
+
+func resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var pOuterNC uintptr
+
+ var isCompound int32
+ var nCompound int32
+ var pParse uintptr
+ var i int32
+ var pGroupBy uintptr
+ var pLeftmost uintptr
+ var db uintptr
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Resolved) != 0 {
+ return WRC_Prune
+ }
+ pOuterNC = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ pParse = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Expanded) == U32(0) {
+ Xsqlite3SelectPrep(tls, pParse, p, pOuterNC)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return WRC_Abort
+ }
+ return WRC_Prune
+ }
+
+ isCompound = libc.Bool32((*Select)(unsafe.Pointer(p)).FpPrior != uintptr(0))
+ nCompound = 0
+ pLeftmost = p
+ for p != 0 {
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_Resolved)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp)).FpWinSelect = p
+ if Xsqlite3ResolveExprNames(tls, bp, (*Select)(unsafe.Pointer(p)).FpLimit) != 0 {
+ return WRC_Abort
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Converted) != 0 {
+ var pSub uintptr = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpSelect
+
+ (*Select)(unsafe.Pointer(pSub)).FpOrderBy = (*Select)(unsafe.Pointer(p)).FpOrderBy
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+ }
+
+ for i = 0; i < (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc)).FnSrc; i++ {
+ var pItem uintptr = (*Select)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&U32(SF_Resolved) == U32(0) {
+ var nRef int32
+ if pOuterNC != 0 {
+ nRef = (*NameContext)(unsafe.Pointer(pOuterNC)).FnRef
+ } else {
+ nRef = 0
+ }
+ var zSavedContext uintptr = (*Parse)(unsafe.Pointer(pParse)).FzAuthContext
+
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzName != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = (*SrcItem)(unsafe.Pointer(pItem)).FzName
+ }
+ Xsqlite3ResolveSelectNames(tls, pParse, (*SrcItem)(unsafe.Pointer(pItem)).FpSelect, pOuterNC)
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = zSavedContext
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return WRC_Abort
+ }
+
+ if pOuterNC != 0 {
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(libc.Bool32((*NameContext)(unsafe.Pointer(pOuterNC)).FnRef > nRef)), 3, 0x8)
+ }
+ }
+ }
+
+ (*NameContext)(unsafe.Pointer(bp)).FncFlags = NC_AllowAgg | NC_AllowWin
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = (*Select)(unsafe.Pointer(p)).FpSrc
+ (*NameContext)(unsafe.Pointer(bp)).FpNext = pOuterNC
+
+ if Xsqlite3ResolveExprListNames(tls, bp, (*Select)(unsafe.Pointer(p)).FpEList) != 0 {
+ return WRC_Abort
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) &= libc.CplInt32(NC_AllowWin)
+
+ pGroupBy = (*Select)(unsafe.Pointer(p)).FpGroupBy
+ if pGroupBy != 0 || (*NameContext)(unsafe.Pointer(bp)).FncFlags&NC_HasAgg != 0 {
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_Aggregate | (*NameContext)(unsafe.Pointer(bp)).FncFlags&(NC_MinMaxAgg|NC_OrderAgg))
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 40)) &= libc.CplInt32(NC_AllowAgg)
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = (*Select)(unsafe.Pointer(p)).FpEList
+ *(*int32)(unsafe.Pointer(bp + 40)) |= NC_UEList
+ if (*Select)(unsafe.Pointer(p)).FpHaving != 0 {
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Aggregate) == U32(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7735, 0)
+ return WRC_Abort
+ }
+ if Xsqlite3ResolveExprNames(tls, bp, (*Select)(unsafe.Pointer(p)).FpHaving) != 0 {
+ return WRC_Abort
+ }
+ }
+ if Xsqlite3ResolveExprNames(tls, bp, (*Select)(unsafe.Pointer(p)).FpWhere) != 0 {
+ return WRC_Abort
+ }
+
+ for i = 0; i < (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc)).FnSrc; i++ {
+ var pItem uintptr = (*Select)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x4>>2)) != 0 &&
+ Xsqlite3ResolveExprListNames(tls, bp, *(*uintptr)(unsafe.Pointer(pItem + 88))) != 0 {
+ return WRC_Abort
+ }
+ }
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ var pWin uintptr
+ for pWin = (*Select)(unsafe.Pointer(p)).FpWinDefn; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ if Xsqlite3ResolveExprListNames(tls, bp, (*Window)(unsafe.Pointer(pWin)).FpOrderBy) != 0 ||
+ Xsqlite3ResolveExprListNames(tls, bp, (*Window)(unsafe.Pointer(pWin)).FpPartition) != 0 {
+ return WRC_Abort
+ }
+ }
+ }
+
+ (*NameContext)(unsafe.Pointer(bp)).FpNext = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 40)) |= NC_AllowAgg | NC_AllowWin
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Converted) != 0 {
+ var pSub uintptr = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpSelect
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = (*Select)(unsafe.Pointer(pSub)).FpOrderBy
+ (*Select)(unsafe.Pointer(pSub)).FpOrderBy = uintptr(0)
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) &&
+ isCompound <= nCompound &&
+ resolveOrderGroupBy(tls, bp, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+7637) != 0 {
+ return WRC_Abort
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return WRC_Abort
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) &= libc.CplInt32(NC_AllowWin)
+
+ if pGroupBy != 0 {
+ var pItem uintptr
+
+ if resolveOrderGroupBy(tls, bp, p, pGroupBy, ts+7774) != 0 || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return WRC_Abort
+ }
+ i = 0
+ pItem = pGroupBy + 8
+ __1:
+ if !(i < (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr) {
+ goto __3
+ }
+ {
+ if (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)).Fflags&U32(EP_Agg) != U32(0) {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7780, 0)
+ return WRC_Abort
+ }
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FpNext != 0 && (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr != (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpNext)).FpEList)).FnExpr {
+ Xsqlite3SelectWrongNumTermsError(tls, pParse, (*Select)(unsafe.Pointer(p)).FpNext)
+ return WRC_Abort
+ }
+
+ p = (*Select)(unsafe.Pointer(p)).FpPrior
+ nCompound++
+ }
+
+ if isCompound != 0 && resolveCompoundOrderBy(tls, pParse, pLeftmost) != 0 {
+ return WRC_Abort
+ }
+
+ return WRC_Prune
+}
+
+// This routine walks an expression tree and resolves references to
+// table columns and result-set columns. At the same time, do error
+// checking on function usage and set a flag if any aggregate functions
+// are seen.
+//
+// To resolve table columns references we look for nodes (or subtrees) of the
+// form X.Y.Z or Y.Z or just Z where
+//
+// X: The name of a database. Ex: "main" or "temp" or
+// the symbolic name assigned to an ATTACH-ed database.
+//
+// Y: The name of a table in a FROM clause. Or in a trigger
+// one of the special names "old" or "new".
+//
+// Z: The name of a column in table Y.
+//
+// The node at the root of the subtree is modified as follows:
+//
+// Expr.op Changed to TK_COLUMN
+// Expr.pTab Points to the Table object for X.Y
+// Expr.iColumn The column index in X.Y. -1 for the rowid.
+// Expr.iTable The VDBE cursor number for X.Y
+//
+// To resolve result-set references, look for expression nodes of the
+// form Z (with no X and Y prefix) where the Z matches the right-hand
+// size of an AS clause in the result-set of a SELECT. The Z expression
+// is replaced by a copy of the left-hand side of the result-set expression.
+// Table-name and function resolution occurs on the substituted expression
+// tree. For example, in:
+//
+// SELECT a+b AS x, c+d AS y FROM t1 ORDER BY x;
+//
+// The "x" term of the order by is replaced by "a+b" to render:
+//
+// SELECT a+b AS x, c+d AS y FROM t1 ORDER BY a+b;
+//
+// Function calls are checked to make sure that the function is
+// defined and that the correct number of arguments are specified.
+// If the function is an aggregate function, then the NC_HasAgg flag is
+// set and the opcode is changed from TK_FUNCTION to TK_AGG_FUNCTION.
+// If an expression contains aggregate functions then the EP_Agg
+// property on the expression is set.
+//
+// An error message is left in pParse if anything is amiss. The number
+// if errors is returned.
+func Xsqlite3ResolveExprNames(tls *libc.TLS, pNC uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var savedHasAgg int32
+
+ if pExpr == uintptr(0) {
+ return SQLITE_OK
+ }
+ savedHasAgg = (*NameContext)(unsafe.Pointer(pNC)).FncFlags & (NC_HasAgg | NC_MinMaxAgg | NC_HasWin | NC_OrderAgg)
+ *(*int32)(unsafe.Pointer(pNC + 40)) &= libc.CplInt32(NC_HasAgg | NC_MinMaxAgg | NC_HasWin | NC_OrderAgg)
+ (*Walker)(unsafe.Pointer(bp)).FpParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveExprStep}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = func() uintptr {
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_NoSelect != 0 {
+ return uintptr(0)
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveSelectStep}))
+ }()
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pNC
+ *(*int32)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse + 316)) += (*Expr)(unsafe.Pointer(pExpr)).FnHeight
+ if Xsqlite3ExprCheckHeight(tls, (*Walker)(unsafe.Pointer(bp)).FpParse, (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse)).FnHeight) != 0 {
+ return SQLITE_ERROR
+ }
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ *(*int32)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse + 316)) -= (*Expr)(unsafe.Pointer(pExpr)).FnHeight
+
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32((*NameContext)(unsafe.Pointer(pNC)).FncFlags & (NC_HasAgg | NC_HasWin))
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= savedHasAgg
+ return libc.Bool32((*NameContext)(unsafe.Pointer(pNC)).FnNcErr > 0 || (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse)).FnErr > 0)
+}
+
+// Resolve all names for all expression in an expression list. This is
+// just like sqlite3ResolveExprNames() except that it works for an expression
+// list rather than a single expression.
+func Xsqlite3ResolveExprListNames(tls *libc.TLS, pNC uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var i int32
+ var savedHasAgg int32 = 0
+
+ if pList == uintptr(0) {
+ return WRC_Continue
+ }
+ (*Walker)(unsafe.Pointer(bp)).FpParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveExprStep}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveSelectStep}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pNC
+ savedHasAgg = (*NameContext)(unsafe.Pointer(pNC)).FncFlags & (NC_HasAgg | NC_MinMaxAgg | NC_HasWin | NC_OrderAgg)
+ *(*int32)(unsafe.Pointer(pNC + 40)) &= libc.CplInt32(NC_HasAgg | NC_MinMaxAgg | NC_HasWin | NC_OrderAgg)
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).FpExpr
+ if pExpr == uintptr(0) {
+ continue
+ }
+ *(*int32)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse + 316)) += (*Expr)(unsafe.Pointer(pExpr)).FnHeight
+ if Xsqlite3ExprCheckHeight(tls, (*Walker)(unsafe.Pointer(bp)).FpParse, (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse)).FnHeight) != 0 {
+ return WRC_Abort
+ }
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ *(*int32)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse + 316)) -= (*Expr)(unsafe.Pointer(pExpr)).FnHeight
+
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg) != 0 {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32((*NameContext)(unsafe.Pointer(pNC)).FncFlags & (NC_HasAgg | NC_HasWin))
+ savedHasAgg = savedHasAgg | (*NameContext)(unsafe.Pointer(pNC)).FncFlags&(NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg)
+ *(*int32)(unsafe.Pointer(pNC + 40)) &= libc.CplInt32(NC_HasAgg | NC_MinMaxAgg | NC_HasWin | NC_OrderAgg)
+ }
+ if (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(bp)).FpParse)).FnErr > 0 {
+ return WRC_Abort
+ }
+ }
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= savedHasAgg
+ return WRC_Continue
+}
+
+// Resolve all names in all expressions of a SELECT and in all
+// decendents of the SELECT, including compounds off of p->pPrior,
+// subqueries in expressions, and subqueries used as FROM clause
+// terms.
+//
+// See sqlite3ResolveExprNames() for a description of the kinds of
+// transformations that occur.
+//
+// All SELECT statements should have been expanded using
+// sqlite3SelectExpand() prior to invoking this routine.
+func Xsqlite3ResolveSelectNames(tls *libc.TLS, pParse uintptr, p uintptr, pOuterNC uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveExprStep}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{resolveSelectStep}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pOuterNC
+ Xsqlite3WalkSelect(tls, bp, p)
+}
+
+// Resolve names in expressions that can only reference a single table
+// or which cannot reference any tables at all. Examples:
+//
+// "type" flag
+// ------------
+// (1) CHECK constraints NC_IsCheck
+// (2) WHERE clauses on partial indices NC_PartIdx
+// (3) Expressions in indexes on expressions NC_IdxExpr
+// (4) Expression arguments to VACUUM INTO. 0
+// (5) GENERATED ALWAYS as expressions NC_GenCol
+//
+// In all cases except (4), the Expr.iTable value for Expr.op==TK_COLUMN
+// nodes of the expression is set to -1 and the Expr.iColumn value is
+// set to the column number. In case (4), TK_COLUMN nodes cause an error.
+//
+// Any errors cause an error message to be set in pParse.
+func Xsqlite3ResolveSelfReference(tls *libc.TLS, pParse uintptr, pTab uintptr, type1 int32, pExpr uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(168)
+ defer tls.Free(168)
+
+ var rc int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+56, 0, uint64(unsafe.Sizeof(SrcList{})), libc.X__builtin_object_size(tls, bp+56, 0))
+ if pTab != 0 {
+ (*SrcList)(unsafe.Pointer(bp + 56)).FnSrc = 1
+ (*SrcItem)(unsafe.Pointer(bp + 56 + 8)).FzName = (*Table)(unsafe.Pointer(pTab)).FzName
+ (*SrcItem)(unsafe.Pointer(bp + 56 + 8)).FpTab = pTab
+ (*SrcItem)(unsafe.Pointer(bp + 56 + 8)).FiCursor = -1
+ if (*Table)(unsafe.Pointer(pTab)).FpSchema != (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+1*32)).FpSchema {
+ type1 = type1 | NC_FromDDL
+ }
+ }
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = bp + 56
+ (*NameContext)(unsafe.Pointer(bp)).FncFlags = type1 | NC_IsDDL
+ if libc.AssignInt32(&rc, Xsqlite3ResolveExprNames(tls, bp, pExpr)) != SQLITE_OK {
+ return rc
+ }
+ if pList != 0 {
+ rc = Xsqlite3ResolveExprListNames(tls, bp, pList)
+ }
+ return rc
+}
+
+// Return the affinity character for a single column of a table.
+func Xsqlite3TableColumnAffinity(tls *libc.TLS, pTab uintptr, iCol int32) int8 {
+ if iCol < 0 || iCol >= int32((*Table)(unsafe.Pointer(pTab)).FnCol) {
+ return int8(SQLITE_AFF_INTEGER)
+ }
+ return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).Faffinity
+}
+
+// Return the 'affinity' of the expression pExpr if any.
+//
+// If pExpr is a column, a reference to a column via an 'AS' alias,
+// or a sub-select with a column as the return value, then the
+// affinity of that column is returned. Otherwise, 0x00 is returned,
+// indicating no affinity for the expression.
+//
+// i.e. the WHERE clause expressions in the following statements all
+// have an affinity:
+//
+// CREATE TABLE t1(a);
+// SELECT * FROM t1 WHERE a;
+// SELECT a AS b FROM t1 WHERE b;
+// SELECT * FROM t1 WHERE (select a from t1);
+func Xsqlite3ExprAffinity(tls *libc.TLS, pExpr uintptr) int8 {
+ var op int32
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ for 1 != 0 {
+ if op == TK_COLUMN || op == TK_AGG_COLUMN && *(*uintptr)(unsafe.Pointer(pExpr + 64)) != uintptr(0) {
+ return Xsqlite3TableColumnAffinity(tls, *(*uintptr)(unsafe.Pointer(pExpr + 64)), int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn))
+ }
+ if op == TK_SELECT {
+ return Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList+8)).FpExpr)
+ }
+ if op == TK_CAST {
+ return Xsqlite3AffinityType(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), uintptr(0))
+ }
+ if op == TK_SELECT_COLUMN {
+ return Xsqlite3ExprAffinity(tls,
+ (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft + 32)))).FpEList+8+uintptr((*Expr)(unsafe.Pointer(pExpr)).FiColumn)*32)).FpExpr)
+ }
+ if op == TK_VECTOR {
+ return Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32))+8)).FpExpr)
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Skip|EP_IfNullRow) != U32(0) {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ continue
+ }
+ if op != TK_REGISTER || libc.AssignInt32(&op, int32((*Expr)(unsafe.Pointer(pExpr)).Fop2)) == TK_REGISTER {
+ break
+ }
+ }
+ return (*Expr)(unsafe.Pointer(pExpr)).FaffExpr
+}
+
+// Make a guess at all the possible datatypes of the result that could
+// be returned by an expression. Return a bitmask indicating the answer:
+//
+// 0x01 Numeric
+// 0x02 Text
+// 0x04 Blob
+//
+// If the expression must return NULL, then 0x00 is returned.
+func Xsqlite3ExprDataType(tls *libc.TLS, pExpr uintptr) int32 {
+ for pExpr != 0 {
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_COLLATE:
+ fallthrough
+ case TK_IF_NULL_ROW:
+ fallthrough
+ case TK_UPLUS:
+ {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ break
+
+ }
+ case TK_NULL:
+ {
+ pExpr = uintptr(0)
+ break
+
+ }
+ case TK_STRING:
+ {
+ return 0x02
+
+ }
+ case TK_BLOB:
+ {
+ return 0x04
+
+ }
+ case TK_CONCAT:
+ {
+ return 0x06
+
+ }
+ case TK_VARIABLE:
+ fallthrough
+ case TK_AGG_FUNCTION:
+ fallthrough
+ case TK_FUNCTION:
+ {
+ return 0x07
+
+ }
+ case TK_COLUMN:
+ fallthrough
+ case TK_AGG_COLUMN:
+ fallthrough
+ case TK_SELECT:
+ fallthrough
+ case TK_CAST:
+ fallthrough
+ case TK_SELECT_COLUMN:
+ fallthrough
+ case TK_VECTOR:
+ {
+ var aff int32 = int32(Xsqlite3ExprAffinity(tls, pExpr))
+ if aff >= SQLITE_AFF_NUMERIC {
+ return 0x05
+ }
+ if aff == SQLITE_AFF_TEXT {
+ return 0x06
+ }
+ return 0x07
+
+ }
+ case TK_CASE:
+ {
+ var res int32 = 0
+ var ii int32
+ var pList uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+
+ for ii = 1; ii < (*ExprList)(unsafe.Pointer(pList)).FnExpr; ii = ii + 2 {
+ res = res | Xsqlite3ExprDataType(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ii)*32)).FpExpr)
+ }
+ if (*ExprList)(unsafe.Pointer(pList)).FnExpr%2 != 0 {
+ res = res | Xsqlite3ExprDataType(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr((*ExprList)(unsafe.Pointer(pList)).FnExpr-1)*32)).FpExpr)
+ }
+ return res
+
+ }
+ default:
+ {
+ return 0x01
+
+ }
+ }
+ }
+ return 0x00
+}
+
+// Set the collating sequence for expression pExpr to be the collating
+// sequence named by pToken. Return a pointer to a new Expr node that
+// implements the COLLATE operator.
+//
+// If a memory allocation error occurs, that fact is recorded in pParse->db
+// and the pExpr parameter is returned unchanged.
+func Xsqlite3ExprAddCollateToken(tls *libc.TLS, pParse uintptr, pExpr uintptr, pCollName uintptr, dequote int32) uintptr {
+ if (*Token)(unsafe.Pointer(pCollName)).Fn > uint32(0) {
+ var pNew uintptr = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_COLLATE, pCollName, dequote)
+ if pNew != 0 {
+ (*Expr)(unsafe.Pointer(pNew)).FpLeft = pExpr
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_Collate | EP_Skip)
+ pExpr = pNew
+ }
+ }
+ return pExpr
+}
+
+func Xsqlite3ExprAddCollateString(tls *libc.TLS, pParse uintptr, pExpr uintptr, zC uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ Xsqlite3TokenInit(tls, bp, zC)
+ return Xsqlite3ExprAddCollateToken(tls, pParse, pExpr, bp, 0)
+}
+
+// Skip over any TK_COLLATE operators.
+func Xsqlite3ExprSkipCollate(tls *libc.TLS, pExpr uintptr) uintptr {
+ for pExpr != 0 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Skip) != U32(0) {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ }
+ return pExpr
+}
+
+// Skip over any TK_COLLATE operators and/or any unlikely()
+// or likelihood() or likely() functions at the root of an
+// expression.
+func Xsqlite3ExprSkipCollateAndLikely(tls *libc.TLS, pExpr uintptr) uintptr {
+ for pExpr != 0 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Skip|EP_Unlikely) != U32(0) {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Unlikely) != U32(0) {
+ pExpr = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8)).FpExpr
+ } else {
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ }
+ }
+ return pExpr
+}
+
+// Return the collation sequence for the expression pExpr. If
+// there is no defined collating sequence, return NULL.
+//
+// See also: sqlite3ExprNNCollSeq()
+//
+// The sqlite3ExprNNCollSeq() works the same exact that it returns the
+// default collation if pExpr has no defined collation.
+//
+// The collating sequence might be determined by a COLLATE operator
+// or by the presence of a column with a defined collating sequence.
+// COLLATE operators take first precedence. Left operands take
+// precedence over right operands.
+func Xsqlite3ExprCollSeq(tls *libc.TLS, pParse uintptr, pExpr uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pColl uintptr = uintptr(0)
+ var p uintptr = pExpr
+ for p != 0 {
+ var op int32 = int32((*Expr)(unsafe.Pointer(p)).Fop)
+ if op == TK_REGISTER {
+ op = int32((*Expr)(unsafe.Pointer(p)).Fop2)
+ }
+ if op == TK_AGG_COLUMN && *(*uintptr)(unsafe.Pointer(p + 64)) != uintptr(0) ||
+ op == TK_COLUMN || op == TK_TRIGGER {
+ var j int32
+
+ if libc.AssignInt32(&j, int32((*Expr)(unsafe.Pointer(p)).FiColumn)) >= 0 {
+ var zColl uintptr = Xsqlite3ColumnColl(tls, (*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FaCol+uintptr(j)*24)
+ pColl = Xsqlite3FindCollSeq(tls, db, (*Sqlite3)(unsafe.Pointer(db)).Fenc, zColl, 0)
+ }
+ break
+ }
+ if op == TK_CAST || op == TK_UPLUS {
+ p = (*Expr)(unsafe.Pointer(p)).FpLeft
+ continue
+ }
+ if op == TK_VECTOR {
+ p = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32)) + 8)).FpExpr
+ continue
+ }
+ if op == TK_COLLATE {
+ pColl = Xsqlite3GetCollSeq(tls, pParse, (*Sqlite3)(unsafe.Pointer(db)).Fenc, uintptr(0), *(*uintptr)(unsafe.Pointer(p + 8)))
+ break
+ }
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Collate) != 0 {
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 && (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpLeft)).Fflags&U32(EP_Collate) != U32(0) {
+ p = (*Expr)(unsafe.Pointer(p)).FpLeft
+ } else {
+ var pNext uintptr = (*Expr)(unsafe.Pointer(p)).FpRight
+
+ if *(*uintptr)(unsafe.Pointer(p + 32)) != uintptr(0) && !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32)))).FnExpr; i++ {
+ if (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32))+8+uintptr(i)*32)).FpExpr)).Fflags&U32(EP_Collate) != U32(0) {
+ pNext = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32)) + 8 + uintptr(i)*32)).FpExpr
+ break
+ }
+ }
+ }
+ p = pNext
+ }
+ } else {
+ break
+ }
+ }
+ if Xsqlite3CheckCollSeq(tls, pParse, pColl) != 0 {
+ pColl = uintptr(0)
+ }
+ return pColl
+}
+
+// Return the collation sequence for the expression pExpr. If
+// there is no defined collating sequence, return a pointer to the
+// defautl collation sequence.
+//
+// See also: sqlite3ExprCollSeq()
+//
+// The sqlite3ExprCollSeq() routine works the same except that it
+// returns NULL if there is no defined collation.
+func Xsqlite3ExprNNCollSeq(tls *libc.TLS, pParse uintptr, pExpr uintptr) uintptr {
+ var p uintptr = Xsqlite3ExprCollSeq(tls, pParse, pExpr)
+ if p == uintptr(0) {
+ p = (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl
+ }
+
+ return p
+}
+
+// Return TRUE if the two expressions have equivalent collating sequences.
+func Xsqlite3ExprCollSeqMatch(tls *libc.TLS, pParse uintptr, pE1 uintptr, pE2 uintptr) int32 {
+ var pColl1 uintptr = Xsqlite3ExprNNCollSeq(tls, pParse, pE1)
+ var pColl2 uintptr = Xsqlite3ExprNNCollSeq(tls, pParse, pE2)
+ return libc.Bool32(Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl1)).FzName, (*CollSeq)(unsafe.Pointer(pColl2)).FzName) == 0)
+}
+
+// pExpr is an operand of a comparison operator. aff2 is the
+// type affinity of the other operand. This routine returns the
+// type affinity that should be used for the comparison operator.
+func Xsqlite3CompareAffinity(tls *libc.TLS, pExpr uintptr, aff2 int8) int8 {
+ var aff1 int8 = Xsqlite3ExprAffinity(tls, pExpr)
+ if int32(aff1) > SQLITE_AFF_NONE && int32(aff2) > SQLITE_AFF_NONE {
+ if int32(aff1) >= SQLITE_AFF_NUMERIC || int32(aff2) >= SQLITE_AFF_NUMERIC {
+ return int8(SQLITE_AFF_NUMERIC)
+ } else {
+ return int8(SQLITE_AFF_BLOB)
+ }
+ } else {
+ return int8(func() int32 {
+ if int32(aff1) <= SQLITE_AFF_NONE {
+ return int32(aff2)
+ }
+ return int32(aff1)
+ }() | SQLITE_AFF_NONE)
+ }
+ return int8(0)
+}
+
+func comparisonAffinity(tls *libc.TLS, pExpr uintptr) int8 {
+ var aff int8
+
+ aff = Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if (*Expr)(unsafe.Pointer(pExpr)).FpRight != 0 {
+ aff = Xsqlite3CompareAffinity(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight, aff)
+ } else if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ aff = Xsqlite3CompareAffinity(tls, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList+8)).FpExpr, aff)
+ } else if int32(aff) == 0 {
+ aff = int8(SQLITE_AFF_BLOB)
+ }
+ return aff
+}
+
+// pExpr is a comparison expression, eg. '=', '<', IN(...) etc.
+// idx_affinity is the affinity of an indexed column. Return true
+// if the index with affinity idx_affinity may be used to implement
+// the comparison in pExpr.
+func Xsqlite3IndexAffinityOk(tls *libc.TLS, pExpr uintptr, idx_affinity int8) int32 {
+ var aff int8 = comparisonAffinity(tls, pExpr)
+ if int32(aff) < SQLITE_AFF_TEXT {
+ return 1
+ }
+ if int32(aff) == SQLITE_AFF_TEXT {
+ return libc.Bool32(int32(idx_affinity) == SQLITE_AFF_TEXT)
+ }
+ return libc.Bool32(int32(idx_affinity) >= SQLITE_AFF_NUMERIC)
+}
+
+func binaryCompareP5(tls *libc.TLS, pExpr1 uintptr, pExpr2 uintptr, jumpIfNull int32) U8 {
+ var aff U8 = U8(Xsqlite3ExprAffinity(tls, pExpr2))
+ aff = U8(int32(U8(Xsqlite3CompareAffinity(tls, pExpr1, int8(aff)))) | int32(U8(jumpIfNull)))
+ return aff
+}
+
+// Return a pointer to the collation sequence that should be used by
+// a binary comparison operator comparing pLeft and pRight.
+//
+// If the left hand expression has a collating sequence type, then it is
+// used. Otherwise the collation sequence for the right hand expression
+// is used, or the default (BINARY) if neither expression has a collating
+// type.
+//
+// Argument pRight (but not pLeft) may be a null pointer. In this case,
+// it is not considered.
+func Xsqlite3BinaryCompareCollSeq(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr) uintptr {
+ var pColl uintptr
+
+ if (*Expr)(unsafe.Pointer(pLeft)).Fflags&U32(EP_Collate) != 0 {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, pLeft)
+ } else if pRight != 0 && (*Expr)(unsafe.Pointer(pRight)).Fflags&U32(EP_Collate) != U32(0) {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, pRight)
+ } else {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, pLeft)
+ if !(pColl != 0) {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, pRight)
+ }
+ }
+ return pColl
+}
+
+// Expresssion p is a comparison operator. Return a collation sequence
+// appropriate for the comparison operator.
+//
+// This is normally just a wrapper around sqlite3BinaryCompareCollSeq().
+// However, if the OP_Commuted flag is set, then the order of the operands
+// is reversed in the sqlite3BinaryCompareCollSeq() call so that the
+// correct collating sequence is found.
+func Xsqlite3ExprCompareCollSeq(tls *libc.TLS, pParse uintptr, p uintptr) uintptr {
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Commuted) != U32(0) {
+ return Xsqlite3BinaryCompareCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpRight, (*Expr)(unsafe.Pointer(p)).FpLeft)
+ } else {
+ return Xsqlite3BinaryCompareCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, (*Expr)(unsafe.Pointer(p)).FpRight)
+ }
+ return uintptr(0)
+}
+
+func codeCompare(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr, opcode int32, in1 int32, in2 int32, dest int32, jumpIfNull int32, isCommuted int32) int32 {
+ var p5 int32
+ var addr int32
+ var p4 uintptr
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return 0
+ }
+ if isCommuted != 0 {
+ p4 = Xsqlite3BinaryCompareCollSeq(tls, pParse, pRight, pLeft)
+ } else {
+ p4 = Xsqlite3BinaryCompareCollSeq(tls, pParse, pLeft, pRight)
+ }
+ p5 = int32(binaryCompareP5(tls, pLeft, pRight, jumpIfNull))
+ addr = Xsqlite3VdbeAddOp4(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, opcode, in2, dest, in1,
+ p4, -2)
+ Xsqlite3VdbeChangeP5(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, uint16(U8(p5)))
+ return addr
+}
+
+// Return true if expression pExpr is a vector, or false otherwise.
+//
+// A vector is defined as any expression that results in two or more
+// columns of result. Every TK_VECTOR node is an vector because the
+// parser will not generate a TK_VECTOR with fewer than two entries.
+// But a TK_SELECT might be either a vector or a scalar. It is only
+// considered a vector if it has two or more result columns.
+func Xsqlite3ExprIsVector(tls *libc.TLS, pExpr uintptr) int32 {
+ return libc.Bool32(Xsqlite3ExprVectorSize(tls, pExpr) > 1)
+}
+
+// If the expression passed as the only argument is of type TK_VECTOR
+// return the number of expressions in the vector. Or, if the expression
+// is a sub-select, return the number of columns in the sub-select. For
+// any other type of expression, return 1.
+func Xsqlite3ExprVectorSize(tls *libc.TLS, pExpr uintptr) int32 {
+ var op U8 = (*Expr)(unsafe.Pointer(pExpr)).Fop
+ if int32(op) == TK_REGISTER {
+ op = (*Expr)(unsafe.Pointer(pExpr)).Fop2
+ }
+ if int32(op) == TK_VECTOR {
+ return (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr
+ } else if int32(op) == TK_SELECT {
+ return (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList)).FnExpr
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+// Return a pointer to a subexpression of pVector that is the i-th
+// column of the vector (numbered starting with 0). The caller must
+// ensure that i is within range.
+//
+// If pVector is really a scalar (and "scalar" here includes subqueries
+// that return a single column!) then return pVector unmodified.
+//
+// pVector retains ownership of the returned subexpression.
+//
+// If the vector is a (SELECT ...) then the expression returned is
+// just the expression for the i-th term of the result set, and may
+// not be ready for evaluation because the table cursor has not yet
+// been positioned.
+func Xsqlite3VectorFieldSubexpr(tls *libc.TLS, pVector uintptr, i int32) uintptr {
+ if Xsqlite3ExprIsVector(tls, pVector) != 0 {
+ if int32((*Expr)(unsafe.Pointer(pVector)).Fop) == TK_SELECT || int32((*Expr)(unsafe.Pointer(pVector)).Fop2) == TK_SELECT {
+ return (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)))).FpEList + 8 + uintptr(i)*32)).FpExpr
+ } else {
+ return (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)) + 8 + uintptr(i)*32)).FpExpr
+ }
+ }
+ return pVector
+}
+
+// Compute and return a new Expr object which when passed to
+// sqlite3ExprCode() will generate all necessary code to compute
+// the iField-th column of the vector expression pVector.
+//
+// It is ok for pVector to be a scalar (as long as iField==0).
+// In that case, this routine works like sqlite3ExprDup().
+//
+// The caller owns the returned Expr object and is responsible for
+// ensuring that the returned value eventually gets freed.
+//
+// The caller retains ownership of pVector. If pVector is a TK_SELECT,
+// then the returned object will reference pVector and so pVector must remain
+// valid for the life of the returned object. If pVector is a TK_VECTOR
+// or a scalar expression, then it can be deleted as soon as this routine
+// returns.
+//
+// A trick to cause a TK_SELECT pVector to be deleted together with
+// the returned Expr object is to attach the pVector to the pRight field
+// of the returned TK_SELECT_COLUMN Expr object.
+func Xsqlite3ExprForVectorField(tls *libc.TLS, pParse uintptr, pVector uintptr, iField int32, nField int32) uintptr {
+ var pRet uintptr
+ if int32((*Expr)(unsafe.Pointer(pVector)).Fop) == TK_SELECT {
+ pRet = Xsqlite3PExpr(tls, pParse, TK_SELECT_COLUMN, uintptr(0), uintptr(0))
+ if pRet != 0 {
+ (*Expr)(unsafe.Pointer(pRet)).FiTable = nField
+ (*Expr)(unsafe.Pointer(pRet)).FiColumn = YnVar(iField)
+ (*Expr)(unsafe.Pointer(pRet)).FpLeft = pVector
+ }
+ } else {
+ if int32((*Expr)(unsafe.Pointer(pVector)).Fop) == TK_VECTOR {
+ var ppVector uintptr
+
+ ppVector = *(*uintptr)(unsafe.Pointer(pVector + 32)) + 8 + uintptr(iField)*32
+ pVector = *(*uintptr)(unsafe.Pointer(ppVector))
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ *(*uintptr)(unsafe.Pointer(ppVector)) = uintptr(0)
+ return pVector
+ }
+ }
+ pRet = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pVector, 0)
+ }
+ return pRet
+}
+
+func exprCodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) int32 {
+ var reg int32 = 0
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_SELECT {
+ reg = Xsqlite3CodeSubselect(tls, pParse, pExpr)
+ }
+ return reg
+}
+
+func exprVectorRegister(tls *libc.TLS, pParse uintptr, pVector uintptr, iField int32, regSelect int32, ppExpr uintptr, pRegFree uintptr) int32 {
+ var op U8 = (*Expr)(unsafe.Pointer(pVector)).Fop
+
+ if int32(op) == TK_REGISTER {
+ *(*uintptr)(unsafe.Pointer(ppExpr)) = Xsqlite3VectorFieldSubexpr(tls, pVector, iField)
+ return (*Expr)(unsafe.Pointer(pVector)).FiTable + iField
+ }
+ if int32(op) == TK_SELECT {
+ *(*uintptr)(unsafe.Pointer(ppExpr)) = (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)))).FpEList + 8 + uintptr(iField)*32)).FpExpr
+ return regSelect + iField
+ }
+ if int32(op) == TK_VECTOR {
+ *(*uintptr)(unsafe.Pointer(ppExpr)) = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)) + 8 + uintptr(iField)*32)).FpExpr
+ return Xsqlite3ExprCodeTemp(tls, pParse, *(*uintptr)(unsafe.Pointer(ppExpr)), pRegFree)
+ }
+ return 0
+}
+
+func codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, op U8, p5 U8) {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ var pRight uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+ var nLeft int32 = Xsqlite3ExprVectorSize(tls, pLeft)
+ var i int32
+ var regLeft int32 = 0
+ var regRight int32 = 0
+ var opx U8 = op
+ var addrCmp int32 = 0
+ var addrDone int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var isCommuted int32 = libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Commuted) != U32(0))
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ if nLeft != Xsqlite3ExprVectorSize(tls, pRight) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+6936, 0)
+ return
+ }
+
+ if int32(op) == TK_LE {
+ opx = U8(TK_LT)
+ }
+ if int32(op) == TK_GE {
+ opx = U8(TK_GT)
+ }
+ if int32(op) == TK_NE {
+ opx = U8(TK_EQ)
+ }
+
+ regLeft = exprCodeSubselect(tls, pParse, pLeft)
+ regRight = exprCodeSubselect(tls, pParse, pRight)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, dest)
+ for i = 0; 1 != 0; i++ {
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ *(*int32)(unsafe.Pointer(bp + 24)) = 0
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var r1 int32
+ var r2 int32
+
+ if addrCmp != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrCmp)
+ }
+ r1 = exprVectorRegister(tls, pParse, pLeft, i, regLeft, bp, bp+8)
+ r2 = exprVectorRegister(tls, pParse, pRight, i, regRight, bp+16, bp+24)
+ addrCmp = Xsqlite3VdbeCurrentAddr(tls, v)
+ codeCompare(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 16)), int32(opx), r1, r2, addrDone, int32(p5), isCommuted)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 8)))
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 24)))
+ if (int32(opx) == TK_LT || int32(opx) == TK_GT) && i < nLeft-1 {
+ addrCmp = Xsqlite3VdbeAddOp0(tls, v, OP_ElseEq)
+
+ }
+ if int32(p5) == SQLITE_NULLEQ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, dest)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_ZeroOrNull, r1, dest, r2)
+ }
+ if i == nLeft-1 {
+ break
+ }
+ if int32(opx) == TK_EQ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_NotNull, dest, addrDone)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrDone)
+ if i == nLeft-2 {
+ opx = op
+ }
+ }
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrCmp)
+ Xsqlite3VdbeResolveLabel(tls, v, addrDone)
+ if int32(op) == TK_NE {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Not, dest, dest)
+ }
+}
+
+// Check that argument nHeight is less than or equal to the maximum
+// expression depth allowed. If it is not, leave an error message in
+// pParse.
+func Xsqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var mxHeight int32 = *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4))
+ if nHeight > mxHeight {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+7839, libc.VaList(bp, mxHeight))
+ rc = SQLITE_ERROR
+ }
+ return rc
+}
+
+func heightOfExpr(tls *libc.TLS, p uintptr, pnHeight uintptr) {
+ if p != 0 {
+ if (*Expr)(unsafe.Pointer(p)).FnHeight > *(*int32)(unsafe.Pointer(pnHeight)) {
+ *(*int32)(unsafe.Pointer(pnHeight)) = (*Expr)(unsafe.Pointer(p)).FnHeight
+ }
+ }
+}
+
+func heightOfExprList(tls *libc.TLS, p uintptr, pnHeight uintptr) {
+ if p != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(p)).FnExpr; i++ {
+ heightOfExpr(tls, (*ExprList_item)(unsafe.Pointer(p+8+uintptr(i)*32)).FpExpr, pnHeight)
+ }
+ }
+}
+
+func heightOfSelect(tls *libc.TLS, pSelect uintptr, pnHeight uintptr) {
+ var p uintptr
+ for p = pSelect; p != 0; p = (*Select)(unsafe.Pointer(p)).FpPrior {
+ heightOfExpr(tls, (*Select)(unsafe.Pointer(p)).FpWhere, pnHeight)
+ heightOfExpr(tls, (*Select)(unsafe.Pointer(p)).FpHaving, pnHeight)
+ heightOfExpr(tls, (*Select)(unsafe.Pointer(p)).FpLimit, pnHeight)
+ heightOfExprList(tls, (*Select)(unsafe.Pointer(p)).FpEList, pnHeight)
+ heightOfExprList(tls, (*Select)(unsafe.Pointer(p)).FpGroupBy, pnHeight)
+ heightOfExprList(tls, (*Select)(unsafe.Pointer(p)).FpOrderBy, pnHeight)
+ }
+}
+
+func exprSetHeight(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpLeft)).FnHeight
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ }
+ if (*Expr)(unsafe.Pointer(p)).FpRight != 0 && (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpRight)).FnHeight > *(*int32)(unsafe.Pointer(bp)) {
+ *(*int32)(unsafe.Pointer(bp)) = (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpRight)).FnHeight
+ }
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ heightOfSelect(tls, *(*uintptr)(unsafe.Pointer(p + 32)), bp)
+ } else if *(*uintptr)(unsafe.Pointer(p + 32)) != 0 {
+ heightOfExprList(tls, *(*uintptr)(unsafe.Pointer(p + 32)), bp)
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(EP_Collate|EP_Subquery|EP_HasFunc) & Xsqlite3ExprListFlags(tls, *(*uintptr)(unsafe.Pointer(p + 32)))
+ }
+ (*Expr)(unsafe.Pointer(p)).FnHeight = *(*int32)(unsafe.Pointer(bp)) + 1
+}
+
+// Set the Expr.nHeight variable using the exprSetHeight() function. If
+// the height is greater than the maximum allowed expression depth,
+// leave an error in pParse.
+//
+// Also propagate all EP_Propagate flags from the Expr.x.pList into
+// Expr.flags.
+func Xsqlite3ExprSetHeightAndFlags(tls *libc.TLS, pParse uintptr, p uintptr) {
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ exprSetHeight(tls, p)
+ Xsqlite3ExprCheckHeight(tls, pParse, (*Expr)(unsafe.Pointer(p)).FnHeight)
+}
+
+// Return the maximum height of any expression tree referenced
+// by the select statement passed as an argument.
+func Xsqlite3SelectExprHeight(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ heightOfSelect(tls, p, bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+// This routine is the core allocator for Expr nodes.
+//
+// Construct a new expression node and return a pointer to it. Memory
+// for this node and for the pToken argument is a single allocation
+// obtained from sqlite3DbMalloc(). The calling function
+// is responsible for making sure the node eventually gets freed.
+//
+// If dequote is true, then the token (if it exists) is dequoted.
+// If dequote is false, no dequoting is performed. The deQuote
+// parameter is ignored if pToken is NULL or if the token does not
+// appear to be quoted. If the quotes were of the form "..." (double-quotes)
+// then the EP_DblQuoted flag is set on the expression node.
+//
+// Special case: If op==TK_INTEGER and pToken points to a string that
+// can be translated into a 32-bit integer, then the token is not
+// stored in u.zToken. Instead, the integer values is written
+// into u.iValue and the EP_IntValue flag is set. No extra storage
+// is allocated to hold the integer text and the dequote flag is ignored.
+func Xsqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pNew uintptr
+ var nExtra int32 = 0
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if pToken != 0 {
+ if op != TK_INTEGER || (*Token)(unsafe.Pointer(pToken)).Fz == uintptr(0) ||
+ Xsqlite3GetInt32(tls, (*Token)(unsafe.Pointer(pToken)).Fz, bp) == 0 {
+ nExtra = int32((*Token)(unsafe.Pointer(pToken)).Fn + uint32(1))
+
+ }
+ }
+ pNew = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Expr{}))+uint64(nExtra))
+ if pNew != 0 {
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*Expr)(unsafe.Pointer(pNew)).Fop = U8(op)
+ (*Expr)(unsafe.Pointer(pNew)).FiAgg = int16(-1)
+ if pToken != 0 {
+ if nExtra == 0 {
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_IntValue | EP_Leaf | func() int32 {
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return EP_IsTrue
+ }
+ return EP_IsFalse
+ }())
+ *(*int32)(unsafe.Pointer(pNew + 8)) = *(*int32)(unsafe.Pointer(bp))
+ } else {
+ *(*uintptr)(unsafe.Pointer(pNew + 8)) = pNew + 1*72
+
+ if (*Token)(unsafe.Pointer(pToken)).Fn != 0 {
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(pNew + 8)), (*Token)(unsafe.Pointer(pToken)).Fz, uint64((*Token)(unsafe.Pointer(pToken)).Fn), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(pNew + 8)), 0))
+ }
+ *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNew + 8)) + uintptr((*Token)(unsafe.Pointer(pToken)).Fn))) = int8(0)
+ if dequote != 0 && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNew + 8)))))])&0x80 != 0 {
+ Xsqlite3DequoteExpr(tls, pNew)
+ }
+ }
+ }
+ (*Expr)(unsafe.Pointer(pNew)).FnHeight = 1
+ }
+ return pNew
+}
+
+// Allocate a new expression node from a zero-terminated token that has
+// already been dequoted.
+func Xsqlite3Expr(tls *libc.TLS, db uintptr, op int32, zToken uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ (*Token)(unsafe.Pointer(bp)).Fz = zToken
+ (*Token)(unsafe.Pointer(bp)).Fn = uint32(Xsqlite3Strlen30(tls, zToken))
+ return Xsqlite3ExprAlloc(tls, db, op, bp, 0)
+}
+
+// Attach subtrees pLeft and pRight to the Expr node pRoot.
+//
+// If pRoot==NULL that means that a memory allocation error has occurred.
+// In that case, delete the subtrees pLeft and pRight.
+func Xsqlite3ExprAttachSubtrees(tls *libc.TLS, db uintptr, pRoot uintptr, pLeft uintptr, pRight uintptr) {
+ if pRoot == uintptr(0) {
+ Xsqlite3ExprDelete(tls, db, pLeft)
+ Xsqlite3ExprDelete(tls, db, pRight)
+ } else {
+ if pRight != 0 {
+ (*Expr)(unsafe.Pointer(pRoot)).FpRight = pRight
+ *(*U32)(unsafe.Pointer(pRoot + 4)) |= U32(EP_Collate|EP_Subquery|EP_HasFunc) & (*Expr)(unsafe.Pointer(pRight)).Fflags
+ (*Expr)(unsafe.Pointer(pRoot)).FnHeight = (*Expr)(unsafe.Pointer(pRight)).FnHeight + 1
+ } else {
+ (*Expr)(unsafe.Pointer(pRoot)).FnHeight = 1
+ }
+ if pLeft != 0 {
+ (*Expr)(unsafe.Pointer(pRoot)).FpLeft = pLeft
+ *(*U32)(unsafe.Pointer(pRoot + 4)) |= U32(EP_Collate|EP_Subquery|EP_HasFunc) & (*Expr)(unsafe.Pointer(pLeft)).Fflags
+ if (*Expr)(unsafe.Pointer(pLeft)).FnHeight >= (*Expr)(unsafe.Pointer(pRoot)).FnHeight {
+ (*Expr)(unsafe.Pointer(pRoot)).FnHeight = (*Expr)(unsafe.Pointer(pLeft)).FnHeight + 1
+ }
+ }
+ }
+}
+
+// Allocate an Expr node which joins as many as two subtrees.
+//
+// One or both of the subtrees can be NULL. Return a pointer to the new
+// Expr node. Or, if an OOM error occurs, set pParse->db->mallocFailed,
+// free the subtrees and return NULL.
+func Xsqlite3PExpr(tls *libc.TLS, pParse uintptr, op int32, pLeft uintptr, pRight uintptr) uintptr {
+ var p uintptr
+ p = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Expr{})))
+ if p != 0 {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, p, 0))
+ (*Expr)(unsafe.Pointer(p)).Fop = U8(op & 0xff)
+ (*Expr)(unsafe.Pointer(p)).FiAgg = int16(-1)
+ Xsqlite3ExprAttachSubtrees(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p, pLeft, pRight)
+ Xsqlite3ExprCheckHeight(tls, pParse, (*Expr)(unsafe.Pointer(p)).FnHeight)
+ } else {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pLeft)
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pRight)
+ }
+ return p
+}
+
+// Add pSelect to the Expr.x.pSelect field. Or, if pExpr is NULL (due
+// do a memory allocation failure) then delete the pSelect object.
+func Xsqlite3PExprAddSelect(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSelect uintptr) {
+ if pExpr != 0 {
+ *(*uintptr)(unsafe.Pointer(pExpr + 32)) = pSelect
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_xIsSelect | EP_Subquery)
+ Xsqlite3ExprSetHeightAndFlags(tls, pParse, pExpr)
+ } else {
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSelect)
+ }
+}
+
+// Expression list pEList is a list of vector values. This function
+// converts the contents of pEList to a VALUES(...) Select statement
+// returning 1 row for each element of the list. For example, the
+// expression list:
+//
+// ( (1,2), (3,4) (5,6) )
+//
+// is translated to the equivalent of:
+//
+// VALUES(1,2), (3,4), (5,6)
+//
+// Each of the vector values in pEList must contain exactly nElem terms.
+// If a list element that is not a vector or does not contain nElem terms,
+// an error message is left in pParse.
+//
+// This is used as part of processing IN(...) expressions with a list
+// of vectors on the RHS. e.g. "... IN ((1,2), (3,4), (5,6))".
+func Xsqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList uintptr) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var ii int32
+ var pRet uintptr = uintptr(0)
+
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; ii++ {
+ var pSel uintptr
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(ii)*32)).FpExpr
+ var nExprElem int32
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_VECTOR {
+ nExprElem = (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr
+ } else {
+ nExprElem = 1
+ }
+ if nExprElem != nElem {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7887,
+ libc.VaList(bp, nExprElem, func() uintptr {
+ if nExprElem > 1 {
+ return ts + 7931
+ }
+ return ts + 1547
+ }(), nElem))
+ break
+ }
+
+ pSel = Xsqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0))
+ *(*uintptr)(unsafe.Pointer(pExpr + 32)) = uintptr(0)
+ if pSel != 0 {
+ if pRet != 0 {
+ (*Select)(unsafe.Pointer(pSel)).Fop = U8(TK_ALL)
+ (*Select)(unsafe.Pointer(pSel)).FpPrior = pRet
+ }
+ pRet = pSel
+ }
+ }
+
+ if pRet != 0 && (*Select)(unsafe.Pointer(pRet)).FpPrior != 0 {
+ *(*U32)(unsafe.Pointer(pRet + 4)) |= U32(SF_MultiValue)
+ }
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pEList)
+ return pRet
+}
+
+// Join two expressions using an AND operator. If either expression is
+// NULL, then just return the other expression.
+//
+// If one side or the other of the AND is known to be false, then instead
+// of returning an AND expression, just return a constant expression with
+// a value of false.
+func Xsqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if pLeft == uintptr(0) {
+ return pRight
+ } else if pRight == uintptr(0) {
+ return pLeft
+ } else if ((*Expr)(unsafe.Pointer(pLeft)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse) || (*Expr)(unsafe.Pointer(pRight)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse)) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ Xsqlite3ExprDeferredDelete(tls, pParse, pLeft)
+ Xsqlite3ExprDeferredDelete(tls, pParse, pRight)
+ return Xsqlite3Expr(tls, db, TK_INTEGER, ts+7933)
+ } else {
+ return Xsqlite3PExpr(tls, pParse, TK_AND, pLeft, pRight)
+ }
+ return uintptr(0)
+}
+
+// Construct a new expression node for a function with multiple
+// arguments.
+func Xsqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken uintptr, eDistinct int32) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNew uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ pNew = Xsqlite3ExprAlloc(tls, db, TK_FUNCTION, pToken, 1)
+ if pNew == uintptr(0) {
+ Xsqlite3ExprListDelete(tls, db, pList)
+ return uintptr(0)
+ }
+
+ *(*int32)(unsafe.Pointer(pNew + 52)) = int32((int64((*Token)(unsafe.Pointer(pToken)).Fz) - int64((*Parse)(unsafe.Pointer(pParse)).FzTail)) / 1)
+ if pList != 0 &&
+ (*ExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7935, libc.VaList(bp, pToken))
+ }
+ *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_HasFunc)
+
+ Xsqlite3ExprSetHeightAndFlags(tls, pParse, pNew)
+ if eDistinct == SF_Distinct {
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_Distinct)
+ }
+ return pNew
+}
+
+// Check to see if a function is usable according to current access
+// rules:
+//
+// SQLITE_FUNC_DIRECT - Only usable from top-level SQL
+//
+// SQLITE_FUNC_UNSAFE - Usable if TRUSTED_SCHEMA or from
+// top-level SQL
+//
+// If the function is not usable, create an error.
+func Xsqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pDef uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_FromDDL) != U32(0) {
+ if (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_DIRECT) != U32(0) ||
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) == uint64(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7969, libc.VaList(bp, pExpr))
+ }
+ }
+}
+
+// Assign a variable number to an expression that encodes a wildcard
+// in the original SQL statement.
+//
+// Wildcards consisting of a single "?" are assigned the next sequential
+// variable number.
+//
+// Wildcards of the form "?nnn" are assigned the number "nnn". We make
+// sure "nnn" is not too big to avoid a denial of service attack when
+// the SQL statement comes from an external source.
+//
+// Wildcards of the form ":aaa", "@aaa", or "$aaa" are assigned the same number
+// as the previous instance of the same wildcard. Or if this is the first
+// instance of the wildcard, the next sequential variable number is
+// assigned.
+func Xsqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n U32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var z uintptr
+ var x YnVar
+
+ if pExpr == uintptr(0) {
+ return
+ }
+
+ z = *(*uintptr)(unsafe.Pointer(pExpr + 8))
+
+ if int32(*(*int8)(unsafe.Pointer(z + 1))) == 0 {
+ x = libc.PreIncInt16(&(*Parse)(unsafe.Pointer(pParse)).FnVar, 1)
+ } else {
+ var doAdd int32 = 0
+ if int32(*(*int8)(unsafe.Pointer(z))) == '?' {
+ var bOk int32
+ if n == U32(2) {
+ *(*I64)(unsafe.Pointer(bp + 8)) = I64(int32(*(*int8)(unsafe.Pointer(z + 1))) - '0')
+ bOk = 1
+ } else {
+ bOk = libc.Bool32(0 == Xsqlite3Atoi64(tls, z+1, bp+8, int32(n-U32(1)), uint8(SQLITE_UTF8)))
+ }
+
+ if bOk == 0 || *(*I64)(unsafe.Pointer(bp + 8)) < int64(1) || *(*I64)(unsafe.Pointer(bp + 8)) > I64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7989,
+ libc.VaList(bp, *(*int32)(unsafe.Pointer(db + 136 + 9*4))))
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ return
+ }
+ x = YnVar(*(*I64)(unsafe.Pointer(bp + 8)))
+ if int32(x) > int32((*Parse)(unsafe.Pointer(pParse)).FnVar) {
+ (*Parse)(unsafe.Pointer(pParse)).FnVar = YnVar(int32(x))
+ doAdd = 1
+ } else if Xsqlite3VListNumToName(tls, (*Parse)(unsafe.Pointer(pParse)).FpVList, int32(x)) == uintptr(0) {
+ doAdd = 1
+ }
+ } else {
+ x = YnVar(Xsqlite3VListNameToNum(tls, (*Parse)(unsafe.Pointer(pParse)).FpVList, z, int32(n)))
+ if int32(x) == 0 {
+ x = libc.PreIncInt16(&(*Parse)(unsafe.Pointer(pParse)).FnVar, 1)
+ doAdd = 1
+ }
+ }
+ if doAdd != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FpVList = Xsqlite3VListAdd(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpVList, z, int32(n), int32(x))
+ }
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = x
+ if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8032, 0)
+ Xsqlite3RecordErrorOffsetOfExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ }
+}
+
+func sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) {
+ if !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0)) {
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*Expr)(unsafe.Pointer(p)).Fop) != TK_SELECT_COLUMN {
+ sqlite3ExprDeleteNN(tls, db, (*Expr)(unsafe.Pointer(p)).FpLeft)
+ }
+ if (*Expr)(unsafe.Pointer(p)).FpRight != 0 {
+ sqlite3ExprDeleteNN(tls, db, (*Expr)(unsafe.Pointer(p)).FpRight)
+ } else if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ Xsqlite3SelectDelete(tls, db, *(*uintptr)(unsafe.Pointer(p + 32)))
+ } else {
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(p + 32)))
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_WinFunc) != U32(0) {
+ Xsqlite3WindowDelete(tls, db, *(*uintptr)(unsafe.Pointer(p + 64)))
+ }
+ }
+ }
+ if !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Static) != U32(0)) {
+ Xsqlite3DbNNFreeNN(tls, db, p)
+ }
+}
+
+func Xsqlite3ExprDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ if p != 0 {
+ sqlite3ExprDeleteNN(tls, db, p)
+ }
+}
+
+// Clear both elements of an OnOrUsing object
+func Xsqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) {
+ if p == uintptr(0) {
+ } else if (*OnOrUsing)(unsafe.Pointer(p)).FpOn != 0 {
+ sqlite3ExprDeleteNN(tls, db, (*OnOrUsing)(unsafe.Pointer(p)).FpOn)
+ } else if (*OnOrUsing)(unsafe.Pointer(p)).FpUsing != 0 {
+ Xsqlite3IdListDelete(tls, db, (*OnOrUsing)(unsafe.Pointer(p)).FpUsing)
+ }
+}
+
+// Arrange to cause pExpr to be deleted when the pParse is deleted.
+// This is similar to sqlite3ExprDelete() except that the delete is
+// deferred untilthe pParse is deleted.
+//
+// The pExpr might be deleted immediately on an OOM error.
+//
+// The deferred delete is (currently) implemented by adding the
+// pExpr to the pParse->pConstExpr list with a register number of 0.
+func Xsqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) {
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3ExprDelete})),
+ pExpr)
+}
+
+// Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the
+// expression.
+func Xsqlite3ExprUnmapAndDelete(tls *libc.TLS, pParse uintptr, p uintptr) {
+ if p != 0 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameExprUnmap(tls, pParse, p)
+ }
+ sqlite3ExprDeleteNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p)
+ }
+}
+
+func exprStructSize(tls *libc.TLS, p uintptr) int32 {
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_TokenOnly) != U32(0) {
+ return int32(uintptr(0) + 16)
+ }
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Reduced) != U32(0) {
+ return int32(uintptr(0) + 44)
+ }
+ return int32(unsafe.Sizeof(Expr{}))
+}
+
+func dupedExprStructSize(tls *libc.TLS, p uintptr, flags int32) int32 {
+ var nSize int32
+
+ if 0 == flags || int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_SELECT_COLUMN ||
+ (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_WinFunc) != U32(0) {
+ nSize = int32(unsafe.Sizeof(Expr{}))
+ } else {
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 || *(*uintptr)(unsafe.Pointer(p + 32)) != 0 {
+ nSize = int32(uint64(uintptr(0)+44) | uint64(EP_Reduced))
+ } else {
+ nSize = int32(uint64(uintptr(0)+16) | uint64(EP_TokenOnly))
+ }
+ }
+ return nSize
+}
+
+func dupedExprNodeSize(tls *libc.TLS, p uintptr, flags int32) int32 {
+ var nByte int32 = dupedExprStructSize(tls, p, flags) & 0xfff
+ if !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_IntValue) != U32(0)) && *(*uintptr)(unsafe.Pointer(p + 8)) != 0 {
+ nByte = int32(Size_t(nByte) + (libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(p + 8)))&uint64(0x3fffffff) + uint64(1)))
+ }
+ return (nByte + 7) & libc.CplInt32(7)
+}
+
+func dupedExprSize(tls *libc.TLS, p uintptr, flags int32) int32 {
+ var nByte int32 = 0
+ if p != 0 {
+ nByte = dupedExprNodeSize(tls, p, flags)
+ if flags&EXPRDUP_REDUCE != 0 {
+ nByte = nByte + (dupedExprSize(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, flags) + dupedExprSize(tls, (*Expr)(unsafe.Pointer(p)).FpRight, flags))
+ }
+ }
+ return nByte
+}
+
+func exprDup(tls *libc.TLS, db uintptr, p uintptr, dupFlags int32, pzBuffer uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNew uintptr
+
+ var staticFlag U32
+
+ if pzBuffer != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(pzBuffer))
+ staticFlag = U32(EP_Static)
+
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3DbMallocRawNN(tls, db, uint64(dupedExprSize(tls, p, dupFlags)))
+ staticFlag = U32(0)
+ }
+ pNew = *(*uintptr)(unsafe.Pointer(bp))
+
+ if pNew != 0 {
+ var nStructSize uint32 = uint32(dupedExprStructSize(tls, p, dupFlags))
+ var nNewSize int32 = int32(nStructSize & uint32(0xfff))
+ var nToken int32
+ if !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_IntValue) != U32(0)) && *(*uintptr)(unsafe.Pointer(p + 8)) != 0 {
+ nToken = Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(p + 8))) + 1
+ } else {
+ nToken = 0
+ }
+ if dupFlags != 0 {
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp)), p, uint64(nNewSize), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp)), 0))
+ } else {
+ var nSize U32 = U32(exprStructSize(tls, p))
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp)), p, uint64(nSize), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp)), 0))
+ if uint64(nSize) < uint64(unsafe.Sizeof(Expr{})) {
+ libc.X__builtin___memset_chk(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(nSize), 0, uint64(unsafe.Sizeof(Expr{}))-uint64(nSize), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(nSize), 0))
+ }
+ }
+
+ *(*U32)(unsafe.Pointer(pNew + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Reduced | EP_TokenOnly | EP_Static))
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= nStructSize & uint32(EP_Reduced|EP_TokenOnly)
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= staticFlag
+
+ if dupFlags != 0 {
+ }
+
+ if nToken != 0 {
+ var zToken uintptr = libc.AssignPtrUintptr(pNew+8, *(*uintptr)(unsafe.Pointer(bp))+uintptr(nNewSize))
+ libc.X__builtin___memcpy_chk(tls, zToken, *(*uintptr)(unsafe.Pointer(p + 8)), uint64(nToken), libc.X__builtin_object_size(tls, zToken, 0))
+ }
+
+ if U32(0) == ((*Expr)(unsafe.Pointer(p)).Fflags|(*Expr)(unsafe.Pointer(pNew)).Fflags)&U32(EP_TokenOnly|EP_Leaf) {
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ *(*uintptr)(unsafe.Pointer(pNew + 32)) = Xsqlite3SelectDup(tls, db, *(*uintptr)(unsafe.Pointer(p + 32)), dupFlags)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pNew + 32)) = Xsqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(p + 32)), dupFlags)
+ }
+ }
+
+ if (*Expr)(unsafe.Pointer(pNew)).Fflags&U32(EP_Reduced|EP_TokenOnly|EP_WinFunc) != U32(0) {
+ *(*uintptr)(unsafe.Pointer(bp)) += uintptr(dupedExprNodeSize(tls, p, dupFlags))
+ if !((*Expr)(unsafe.Pointer(pNew)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0)) {
+ (*Expr)(unsafe.Pointer(pNew)).FpLeft = func() uintptr {
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 {
+ return exprDup(tls, db, (*Expr)(unsafe.Pointer(p)).FpLeft, EXPRDUP_REDUCE, bp)
+ }
+ return uintptr(0)
+ }()
+ (*Expr)(unsafe.Pointer(pNew)).FpRight = func() uintptr {
+ if (*Expr)(unsafe.Pointer(p)).FpRight != 0 {
+ return exprDup(tls, db, (*Expr)(unsafe.Pointer(p)).FpRight, EXPRDUP_REDUCE, bp)
+ }
+ return uintptr(0)
+ }()
+ }
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_WinFunc) != U32(0) {
+ *(*uintptr)(unsafe.Pointer(pNew + 64)) = Xsqlite3WindowDup(tls, db, pNew, *(*uintptr)(unsafe.Pointer(p + 64)))
+
+ }
+ if pzBuffer != 0 {
+ *(*uintptr)(unsafe.Pointer(pzBuffer)) = *(*uintptr)(unsafe.Pointer(bp))
+ }
+ } else {
+ if !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0)) {
+ if int32((*Expr)(unsafe.Pointer(pNew)).Fop) == TK_SELECT_COLUMN {
+ (*Expr)(unsafe.Pointer(pNew)).FpLeft = (*Expr)(unsafe.Pointer(p)).FpLeft
+
+ } else {
+ (*Expr)(unsafe.Pointer(pNew)).FpLeft = Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer(p)).FpLeft, 0)
+ }
+ (*Expr)(unsafe.Pointer(pNew)).FpRight = Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer(p)).FpRight, 0)
+ }
+ }
+ }
+ return pNew
+}
+
+// Create and return a deep copy of the object passed as the second
+// argument. If an OOM condition is encountered, NULL is returned
+// and the db->mallocFailed flag set.
+func Xsqlite3WithDup(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ var pRet uintptr = uintptr(0)
+ if p != 0 {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(With{})) + uint64(unsafe.Sizeof(Cte{}))*uint64((*With)(unsafe.Pointer(p)).FnCte-1))
+ pRet = Xsqlite3DbMallocZero(tls, db, uint64(nByte))
+ if pRet != 0 {
+ var i int32
+ (*With)(unsafe.Pointer(pRet)).FnCte = (*With)(unsafe.Pointer(p)).FnCte
+ for i = 0; i < (*With)(unsafe.Pointer(p)).FnCte; i++ {
+ (*Cte)(unsafe.Pointer(pRet + 16 + uintptr(i)*48)).FpSelect = Xsqlite3SelectDup(tls, db, (*Cte)(unsafe.Pointer(p+16+uintptr(i)*48)).FpSelect, 0)
+ (*Cte)(unsafe.Pointer(pRet + 16 + uintptr(i)*48)).FpCols = Xsqlite3ExprListDup(tls, db, (*Cte)(unsafe.Pointer(p+16+uintptr(i)*48)).FpCols, 0)
+ (*Cte)(unsafe.Pointer(pRet + 16 + uintptr(i)*48)).FzName = Xsqlite3DbStrDup(tls, db, (*Cte)(unsafe.Pointer(p+16+uintptr(i)*48)).FzName)
+ (*Cte)(unsafe.Pointer(pRet + 16 + uintptr(i)*48)).FeM10d = (*Cte)(unsafe.Pointer(p + 16 + uintptr(i)*48)).FeM10d
+ }
+ }
+ }
+ return pRet
+}
+
+func gatherSelectWindowsCallback(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_FUNCTION && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ var pSelect uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pWin uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+
+ Xsqlite3WindowLink(tls, pSelect, pWin)
+ }
+ return WRC_Continue
+}
+
+func gatherSelectWindowsSelectCallback(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ if p == *(*uintptr)(unsafe.Pointer(pWalker + 40)) {
+ return WRC_Continue
+ }
+ return WRC_Prune
+}
+
+func gatherSelectWindows(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{gatherSelectWindowsCallback}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{gatherSelectWindowsSelectCallback}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp)).FpParse = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = p
+ Xsqlite3WalkSelect(tls, bp, p)
+}
+
+// The following group of routines make deep copies of expressions,
+// expression lists, ID lists, and select statements. The copies can
+// be deleted (by being passed to their respective ...Delete() routines)
+// without effecting the originals.
+//
+// The expression list, ID, and source lists return by sqlite3ExprListDup(),
+// sqlite3IdListDup(), and sqlite3SrcListDup() can not be further expanded
+// by subsequent calls to sqlite*ListAppend() routines.
+//
+// Any tables that the SrcList might point to are not duplicated.
+//
+// The flags parameter contains a combination of the EXPRDUP_XXX flags.
+// If the EXPRDUP_REDUCE flag is set, then the structure returned is a
+// truncated version of the usual Expr structure that will be stored as
+// part of the in-memory representation of the database schema.
+func Xsqlite3ExprDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) uintptr {
+ if p != 0 {
+ return exprDup(tls, db, p, flags, uintptr(0))
+ }
+ return uintptr(0)
+}
+
+func Xsqlite3ExprListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) uintptr {
+ var pNew uintptr
+ var pItem uintptr
+ var pOldItem uintptr
+ var i int32
+ var pPriorSelectColOld uintptr = uintptr(0)
+ var pPriorSelectColNew uintptr = uintptr(0)
+
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ pNew = Xsqlite3DbMallocRawNN(tls, db, uint64(Xsqlite3DbMallocSize(tls, db, p)))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ (*ExprList)(unsafe.Pointer(pNew)).FnExpr = (*ExprList)(unsafe.Pointer(p)).FnExpr
+ (*ExprList)(unsafe.Pointer(pNew)).FnAlloc = (*ExprList)(unsafe.Pointer(p)).FnAlloc
+ pItem = pNew + 8
+ pOldItem = p + 8
+ i = 0
+__1:
+ if !(i < (*ExprList)(unsafe.Pointer(p)).FnExpr) {
+ goto __3
+ }
+ {
+ var pOldExpr uintptr = (*ExprList_item)(unsafe.Pointer(pOldItem)).FpExpr
+ var pNewExpr uintptr
+ (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr = Xsqlite3ExprDup(tls, db, pOldExpr, flags)
+ if pOldExpr != 0 &&
+ int32((*Expr)(unsafe.Pointer(pOldExpr)).Fop) == TK_SELECT_COLUMN &&
+ libc.AssignUintptr(&pNewExpr, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr) != uintptr(0) {
+ if (*Expr)(unsafe.Pointer(pNewExpr)).FpRight != 0 {
+ pPriorSelectColOld = (*Expr)(unsafe.Pointer(pOldExpr)).FpRight
+ pPriorSelectColNew = (*Expr)(unsafe.Pointer(pNewExpr)).FpRight
+ (*Expr)(unsafe.Pointer(pNewExpr)).FpLeft = (*Expr)(unsafe.Pointer(pNewExpr)).FpRight
+ } else {
+ if (*Expr)(unsafe.Pointer(pOldExpr)).FpLeft != pPriorSelectColOld {
+ pPriorSelectColOld = (*Expr)(unsafe.Pointer(pOldExpr)).FpLeft
+ pPriorSelectColNew = Xsqlite3ExprDup(tls, db, pPriorSelectColOld, flags)
+ (*Expr)(unsafe.Pointer(pNewExpr)).FpRight = pPriorSelectColNew
+ }
+ (*Expr)(unsafe.Pointer(pNewExpr)).FpLeft = pPriorSelectColNew
+ }
+ }
+ (*ExprList_item)(unsafe.Pointer(pItem)).FzEName = Xsqlite3DbStrDup(tls, db, (*ExprList_item)(unsafe.Pointer(pOldItem)).FzEName)
+ (*ExprList_item)(unsafe.Pointer(pItem)).Ffg = (*ExprList_item)(unsafe.Pointer(pOldItem)).Ffg
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(0), 2, 0x4)
+ (*ExprList_item)(unsafe.Pointer(pItem)).Fu = (*ExprList_item)(unsafe.Pointer(pOldItem)).Fu
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 32
+ pOldItem += 32
+ goto __1
+ goto __3
+__3:
+ ;
+ return pNew
+}
+
+// If cursors, triggers, views and subqueries are all omitted from
+// the build, then none of the following routines, except for
+// sqlite3SelectDup(), can be called. sqlite3SelectDup() is sometimes
+// called with a NULL argument.
+func Xsqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) uintptr {
+ var pNew uintptr
+ var i int32
+ var nByte int32
+
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ nByte = int32(uint64(unsafe.Sizeof(SrcList{})) + func() uint64 {
+ if (*SrcList)(unsafe.Pointer(p)).FnSrc > 0 {
+ return uint64(unsafe.Sizeof(SrcItem{})) * uint64((*SrcList)(unsafe.Pointer(p)).FnSrc-1)
+ }
+ return uint64(0)
+ }())
+ pNew = Xsqlite3DbMallocRawNN(tls, db, uint64(nByte))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ (*SrcList)(unsafe.Pointer(pNew)).FnSrc = int32(libc.AssignPtrUint32(pNew+4, U32((*SrcList)(unsafe.Pointer(p)).FnSrc)))
+ for i = 0; i < (*SrcList)(unsafe.Pointer(p)).FnSrc; i++ {
+ var pNewItem uintptr = pNew + 8 + uintptr(i)*104
+ var pOldItem uintptr = p + 8 + uintptr(i)*104
+ var pTab uintptr
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FpSchema = (*SrcItem)(unsafe.Pointer(pOldItem)).FpSchema
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FzDatabase = Xsqlite3DbStrDup(tls, db, (*SrcItem)(unsafe.Pointer(pOldItem)).FzDatabase)
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FzName = Xsqlite3DbStrDup(tls, db, (*SrcItem)(unsafe.Pointer(pOldItem)).FzName)
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FzAlias = Xsqlite3DbStrDup(tls, db, (*SrcItem)(unsafe.Pointer(pOldItem)).FzAlias)
+ (*SrcItem)(unsafe.Pointer(pNewItem)).Ffg = (*SrcItem)(unsafe.Pointer(pOldItem)).Ffg
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*SrcItem)(unsafe.Pointer(pOldItem)).FiCursor
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*SrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*SrcItem)(unsafe.Pointer(pOldItem)).FregReturn
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = Xsqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)))
+ }
+ (*SrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*SrcItem)(unsafe.Pointer(pOldItem)).Fu2
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 {
+ (*CteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = Xsqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags)
+ }
+ pTab = libc.AssignPtrUintptr(pNewItem+32, (*SrcItem)(unsafe.Pointer(pOldItem)).FpTab)
+ if pTab != 0 {
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef++
+ }
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FpSelect = Xsqlite3SelectDup(tls, db, (*SrcItem)(unsafe.Pointer(pOldItem)).FpSelect, flags)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pOldItem + 60 + 4))&0x400>>10)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pNewItem + 72)) = Xsqlite3IdListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 72)))
+ } else {
+ *(*uintptr)(unsafe.Pointer(pNewItem + 72)) = Xsqlite3ExprDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 72)), flags)
+ }
+ (*SrcItem)(unsafe.Pointer(pNewItem)).FcolUsed = (*SrcItem)(unsafe.Pointer(pOldItem)).FcolUsed
+ }
+ return pNew
+}
+
+func Xsqlite3IdListDup(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ var pNew uintptr
+ var i int32
+
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+
+ pNew = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(IdList{}))+uint64((*IdList)(unsafe.Pointer(p)).FnId-1)*uint64(unsafe.Sizeof(IdList_item{})))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ (*IdList)(unsafe.Pointer(pNew)).FnId = (*IdList)(unsafe.Pointer(p)).FnId
+ (*IdList)(unsafe.Pointer(pNew)).FeU4 = (*IdList)(unsafe.Pointer(p)).FeU4
+ for i = 0; i < (*IdList)(unsafe.Pointer(p)).FnId; i++ {
+ var pNewItem uintptr = pNew + 8 + uintptr(i)*16
+ var pOldItem uintptr = p + 8 + uintptr(i)*16
+ (*IdList_item)(unsafe.Pointer(pNewItem)).FzName = Xsqlite3DbStrDup(tls, db, (*IdList_item)(unsafe.Pointer(pOldItem)).FzName)
+ (*IdList_item)(unsafe.Pointer(pNewItem)).Fu4 = (*IdList_item)(unsafe.Pointer(pOldItem)).Fu4
+ }
+ return pNew
+}
+
+func Xsqlite3SelectDup(tls *libc.TLS, db uintptr, pDup uintptr, flags int32) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pNext uintptr = uintptr(0)
+ var pp uintptr = bp
+ var p uintptr
+
+ for p = pDup; p != 0; p = (*Select)(unsafe.Pointer(p)).FpPrior {
+ var pNew uintptr = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Select{})))
+ if pNew == uintptr(0) {
+ break
+ }
+ (*Select)(unsafe.Pointer(pNew)).FpEList = Xsqlite3ExprListDup(tls, db, (*Select)(unsafe.Pointer(p)).FpEList, flags)
+ (*Select)(unsafe.Pointer(pNew)).FpSrc = Xsqlite3SrcListDup(tls, db, (*Select)(unsafe.Pointer(p)).FpSrc, flags)
+ (*Select)(unsafe.Pointer(pNew)).FpWhere = Xsqlite3ExprDup(tls, db, (*Select)(unsafe.Pointer(p)).FpWhere, flags)
+ (*Select)(unsafe.Pointer(pNew)).FpGroupBy = Xsqlite3ExprListDup(tls, db, (*Select)(unsafe.Pointer(p)).FpGroupBy, flags)
+ (*Select)(unsafe.Pointer(pNew)).FpHaving = Xsqlite3ExprDup(tls, db, (*Select)(unsafe.Pointer(p)).FpHaving, flags)
+ (*Select)(unsafe.Pointer(pNew)).FpOrderBy = Xsqlite3ExprListDup(tls, db, (*Select)(unsafe.Pointer(p)).FpOrderBy, flags)
+ (*Select)(unsafe.Pointer(pNew)).Fop = (*Select)(unsafe.Pointer(p)).Fop
+ (*Select)(unsafe.Pointer(pNew)).FpNext = pNext
+ (*Select)(unsafe.Pointer(pNew)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpLimit = Xsqlite3ExprDup(tls, db, (*Select)(unsafe.Pointer(p)).FpLimit, flags)
+ (*Select)(unsafe.Pointer(pNew)).FiLimit = 0
+ (*Select)(unsafe.Pointer(pNew)).FiOffset = 0
+ (*Select)(unsafe.Pointer(pNew)).FselFlags = (*Select)(unsafe.Pointer(p)).FselFlags & libc.Uint32FromInt32(libc.CplInt32(SF_UsesEphemeral))
+ *(*int32)(unsafe.Pointer(pNew + 20)) = -1
+ *(*int32)(unsafe.Pointer(pNew + 20 + 1*4)) = -1
+ (*Select)(unsafe.Pointer(pNew)).FnSelectRow = (*Select)(unsafe.Pointer(p)).FnSelectRow
+ (*Select)(unsafe.Pointer(pNew)).FpWith = Xsqlite3WithDup(tls, db, (*Select)(unsafe.Pointer(p)).FpWith)
+ (*Select)(unsafe.Pointer(pNew)).FpWin = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpWinDefn = Xsqlite3WindowListDup(tls, db, (*Select)(unsafe.Pointer(p)).FpWinDefn)
+ if (*Select)(unsafe.Pointer(p)).FpWin != 0 && int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ gatherSelectWindows(tls, pNew)
+ }
+ (*Select)(unsafe.Pointer(pNew)).FselId = (*Select)(unsafe.Pointer(p)).FselId
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Select)(unsafe.Pointer(pNew)).FpNext = uintptr(0)
+ Xsqlite3SelectDelete(tls, db, pNew)
+ break
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = pNew
+ pp = pNew + 80
+ pNext = pNew
+ }
+
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+var zeroItem = ExprList_item{}
+
+func Xsqlite3ExprListAppendNew(tls *libc.TLS, db uintptr, pExpr uintptr) uintptr {
+ var pItem uintptr
+ var pList uintptr
+
+ pList = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(ExprList{}))+uint64(unsafe.Sizeof(ExprList_item{}))*uint64(4))
+ if pList == uintptr(0) {
+ Xsqlite3ExprDelete(tls, db, pExpr)
+ return uintptr(0)
+ }
+ (*ExprList)(unsafe.Pointer(pList)).FnAlloc = 4
+ (*ExprList)(unsafe.Pointer(pList)).FnExpr = 1
+ pItem = pList + 8
+ *(*ExprList_item)(unsafe.Pointer(pItem)) = zeroItem
+ (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr = pExpr
+ return pList
+}
+
+func Xsqlite3ExprListAppendGrow(tls *libc.TLS, db uintptr, pList uintptr, pExpr uintptr) uintptr {
+ var pItem uintptr
+ var pNew uintptr
+ *(*int32)(unsafe.Pointer(pList + 4)) *= 2
+ pNew = Xsqlite3DbRealloc(tls, db, pList,
+ uint64(unsafe.Sizeof(ExprList{}))+uint64((*ExprList)(unsafe.Pointer(pList)).FnAlloc-1)*uint64(unsafe.Sizeof(ExprList_item{})))
+ if pNew == uintptr(0) {
+ Xsqlite3ExprListDelete(tls, db, pList)
+ Xsqlite3ExprDelete(tls, db, pExpr)
+ return uintptr(0)
+ } else {
+ pList = pNew
+ }
+ pItem = pList + 8 + uintptr(libc.PostIncInt32(&(*ExprList)(unsafe.Pointer(pList)).FnExpr, 1))*32
+ *(*ExprList_item)(unsafe.Pointer(pItem)) = zeroItem
+ (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr = pExpr
+ return pList
+}
+
+func Xsqlite3ExprListAppend(tls *libc.TLS, pParse uintptr, pList uintptr, pExpr uintptr) uintptr {
+ var pItem uintptr
+ if pList == uintptr(0) {
+ return Xsqlite3ExprListAppendNew(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ }
+ if (*ExprList)(unsafe.Pointer(pList)).FnAlloc < (*ExprList)(unsafe.Pointer(pList)).FnExpr+1 {
+ return Xsqlite3ExprListAppendGrow(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pList, pExpr)
+ }
+ pItem = pList + 8 + uintptr(libc.PostIncInt32(&(*ExprList)(unsafe.Pointer(pList)).FnExpr, 1))*32
+ *(*ExprList_item)(unsafe.Pointer(pItem)) = zeroItem
+ (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr = pExpr
+ return pList
+}
+
+// pColumns and pExpr form a vector assignment which is part of the SET
+// clause of an UPDATE statement. Like this:
+//
+// (a,b,c) = (expr1,expr2,expr3)
+//
+// Or: (a,b,c) = (SELECT x,y,z FROM ....)
+//
+// For each term of the vector assignment, append new entries to the
+// expression list pList. In the case of a subquery on the RHS, append
+// TK_SELECT_COLUMN expressions.
+func Xsqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, pColumns uintptr, pExpr uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var db uintptr
+ var n int32
+ var i int32
+ var iFirst int32
+ var pSubExpr uintptr
+ var pFirst uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if pList != 0 {
+ iFirst = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ } else {
+ iFirst = 0
+ }
+
+ if !(pColumns == uintptr(0)) {
+ goto __1
+ }
+ goto vector_append_error
+__1:
+ ;
+ if !(pExpr == uintptr(0)) {
+ goto __2
+ }
+ goto vector_append_error
+__2:
+ ;
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_SELECT && (*IdList)(unsafe.Pointer(pColumns)).FnId != libc.AssignInt32(&n, Xsqlite3ExprVectorSize(tls, pExpr))) {
+ goto __3
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+8055,
+ libc.VaList(bp, (*IdList)(unsafe.Pointer(pColumns)).FnId, n))
+ goto vector_append_error
+__3:
+ ;
+ i = 0
+__4:
+ if !(i < (*IdList)(unsafe.Pointer(pColumns)).FnId) {
+ goto __6
+ }
+ pSubExpr = Xsqlite3ExprForVectorField(tls, pParse, pExpr, i, (*IdList)(unsafe.Pointer(pColumns)).FnId)
+
+ if !(pSubExpr == uintptr(0)) {
+ goto __7
+ }
+ goto __5
+__7:
+ ;
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, pSubExpr)
+ if !(pList != 0) {
+ goto __8
+ }
+
+ (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr((*ExprList)(unsafe.Pointer(pList)).FnExpr-1)*32)).FzEName = (*IdList_item)(unsafe.Pointer(pColumns + 8 + uintptr(i)*16)).FzName
+ (*IdList_item)(unsafe.Pointer(pColumns + 8 + uintptr(i)*16)).FzName = uintptr(0)
+__8:
+ ;
+ goto __5
+__5:
+ i++
+ goto __4
+ goto __6
+__6:
+ ;
+ if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_SELECT && pList != uintptr(0)) {
+ goto __9
+ }
+ pFirst = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(iFirst)*32)).FpExpr
+
+ (*Expr)(unsafe.Pointer(pFirst)).FpRight = pExpr
+ pExpr = uintptr(0)
+
+ (*Expr)(unsafe.Pointer(pFirst)).FiTable = (*IdList)(unsafe.Pointer(pColumns)).FnId
+__9:
+ ;
+vector_append_error:
+ Xsqlite3ExprUnmapAndDelete(tls, pParse, pExpr)
+ Xsqlite3IdListDelete(tls, db, pColumns)
+ return pList
+}
+
+// Set the sort order for the last element on the given ExprList.
+func Xsqlite3ExprListSetSortOrder(tls *libc.TLS, p uintptr, iSortOrder int32, eNulls int32) {
+ var pItem uintptr
+ if p == uintptr(0) {
+ return
+ }
+
+ pItem = p + 8 + uintptr((*ExprList)(unsafe.Pointer(p)).FnExpr-1)*32
+
+ if iSortOrder == -1 {
+ iSortOrder = SQLITE_SO_ASC
+ }
+ (*ExprList_item)(unsafe.Pointer(pItem)).Ffg.FsortFlags = U8(iSortOrder)
+
+ if eNulls != -1 {
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(1), 5, 0x20)
+ if iSortOrder != eNulls {
+ *(*U8)(unsafe.Pointer(pItem + 16)) |= U8(KEYINFO_ORDER_BIGNULL)
+ }
+ }
+}
+
+// Set the ExprList.a[].zEName element of the most recently added item
+// on the expression list.
+//
+// pList might be NULL following an OOM error. But pName should never be
+// NULL. If a memory allocation fails, the pParse->db->mallocFailed flag
+// is set.
+func Xsqlite3ExprListSetName(tls *libc.TLS, pParse uintptr, pList uintptr, pName uintptr, dequote int32) {
+ if pList != 0 {
+ var pItem uintptr
+
+ pItem = pList + 8 + uintptr((*ExprList)(unsafe.Pointer(pList)).FnExpr-1)*32
+
+ (*ExprList_item)(unsafe.Pointer(pItem)).FzEName = Xsqlite3DbStrNDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Token)(unsafe.Pointer(pName)).Fz, uint64((*Token)(unsafe.Pointer(pName)).Fn))
+ if dequote != 0 {
+ Xsqlite3Dequote(tls, (*ExprList_item)(unsafe.Pointer(pItem)).FzEName)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenMap(tls, pParse, (*ExprList_item)(unsafe.Pointer(pItem)).FzEName, pName)
+ }
+ }
+ }
+}
+
+// Set the ExprList.a[].zSpan element of the most recently added item
+// on the expression list.
+//
+// pList might be NULL following an OOM error. But pSpan should never be
+// NULL. If a memory allocation fails, the pParse->db->mallocFailed flag
+// is set.
+func Xsqlite3ExprListSetSpan(tls *libc.TLS, pParse uintptr, pList uintptr, zStart uintptr, zEnd uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if pList != 0 {
+ var pItem uintptr = pList + 8 + uintptr((*ExprList)(unsafe.Pointer(pList)).FnExpr-1)*32
+
+ if (*ExprList_item)(unsafe.Pointer(pItem)).FzEName == uintptr(0) {
+ (*ExprList_item)(unsafe.Pointer(pItem)).FzEName = Xsqlite3DbSpanDup(tls, db, zStart, zEnd)
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(ENAME_SPAN), 0, 0x3)
+ }
+ }
+}
+
+// If the expression list pEList contains more than iLimit elements,
+// leave an error message in pParse.
+func Xsqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, zObject uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var mx int32 = *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4))
+
+ if pEList != 0 && (*ExprList)(unsafe.Pointer(pEList)).FnExpr > mx {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8085, libc.VaList(bp, zObject))
+ }
+}
+
+func exprListDeleteNN(tls *libc.TLS, db uintptr, pList uintptr) {
+ var i int32 = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ var pItem uintptr = pList + 8
+
+ for __ccgo := true; __ccgo; __ccgo = libc.PreDecInt32(&i, 1) > 0 {
+ Xsqlite3ExprDelete(tls, db, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
+ if (*ExprList_item)(unsafe.Pointer(pItem)).FzEName != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*ExprList_item)(unsafe.Pointer(pItem)).FzEName)
+ }
+ pItem += 32
+ }
+ Xsqlite3DbNNFreeNN(tls, db, pList)
+}
+
+func Xsqlite3ExprListDelete(tls *libc.TLS, db uintptr, pList uintptr) {
+ if pList != 0 {
+ exprListDeleteNN(tls, db, pList)
+ }
+}
+
+// Return the bitwise-OR of all Expr.flags fields in the given
+// ExprList.
+func Xsqlite3ExprListFlags(tls *libc.TLS, pList uintptr) U32 {
+ var i int32
+ var m U32 = U32(0)
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).FpExpr
+
+ m = m | (*Expr)(unsafe.Pointer(pExpr)).Fflags
+ }
+ return m
+}
+
+// This is a SELECT-node callback for the expression walker that
+// always "fails". By "fail" in this case, we mean set
+// pWalker->eCode to zero and abort.
+//
+// This callback is used by multiple expression walkers.
+func Xsqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) int32 {
+ _ = NotUsed
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+}
+
+// Check the input string to see if it is "true" or "false" (in any case).
+//
+// If the string is.... Return
+// "true" EP_IsTrue
+// "false" EP_IsFalse
+// anything else 0
+func Xsqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) U32 {
+ if Xsqlite3StrICmp(tls, zIn, ts+7167) == 0 {
+ return U32(EP_IsTrue)
+ }
+ if Xsqlite3StrICmp(tls, zIn, ts+7172) == 0 {
+ return U32(EP_IsFalse)
+ }
+ return U32(0)
+}
+
+// If the input expression is an ID with the name "true" or "false"
+// then convert it into an TK_TRUEFALSE term. Return non-zero if
+// the conversion happened, and zero if the expression is unaltered.
+func Xsqlite3ExprIdToTrueFalse(tls *libc.TLS, pExpr uintptr) int32 {
+ var v U32
+
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Quoted|EP_IntValue) != U32(0)) &&
+ libc.AssignUint32(&v, Xsqlite3IsTrueOrFalse(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) != U32(0) {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_TRUEFALSE)
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= v
+ return 1
+ }
+ return 0
+}
+
+// The argument must be a TK_TRUEFALSE Expr node. Return 1 if it is TRUE
+// and 0 if it is FALSE.
+func Xsqlite3ExprTruthValue(tls *libc.TLS, pExpr uintptr) int32 {
+ pExpr = Xsqlite3ExprSkipCollate(tls, pExpr)
+
+ return libc.Bool32(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 8)) + 4))) == 0)
+}
+
+// If pExpr is an AND or OR expression, try to simplify it by eliminating
+// terms that are always true or false. Return the simplified expression.
+// Or return the original expression if no simplification is possible.
+//
+// Examples:
+//
+// (x<10) AND true => (x<10)
+// (x<10) AND false => false
+// (x<10) AND (y=22 OR false) => (x<10) AND (y=22)
+// (x<10) AND (y=22 OR true) => (x<10)
+// (y=22) OR true => true
+func Xsqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) uintptr {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AND || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_OR {
+ var pRight uintptr = Xsqlite3ExprSimplifiedAndOr(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ var pLeft uintptr = Xsqlite3ExprSimplifiedAndOr(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if (*Expr)(unsafe.Pointer(pLeft)).Fflags&U32(EP_OuterON|EP_IsTrue) == U32(EP_IsTrue) || (*Expr)(unsafe.Pointer(pRight)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse) {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AND {
+ pExpr = pRight
+ } else {
+ pExpr = pLeft
+ }
+ } else if (*Expr)(unsafe.Pointer(pRight)).Fflags&U32(EP_OuterON|EP_IsTrue) == U32(EP_IsTrue) || (*Expr)(unsafe.Pointer(pLeft)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse) {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AND {
+ pExpr = pLeft
+ } else {
+ pExpr = pRight
+ }
+ }
+ }
+ return pExpr
+}
+
+func exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 2 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ }
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_FUNCTION:
+ if (int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) >= 4 || (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_ConstFunc) != U32(0)) &&
+ !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0)) {
+ if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 5 {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_FromDDL)
+ }
+ return WRC_Continue
+ } else {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ }
+ fallthrough
+ case TK_ID:
+ if Xsqlite3ExprIdToTrueFalse(tls, pExpr) != 0 {
+ return WRC_Prune
+ }
+ fallthrough
+
+ case TK_COLUMN:
+ fallthrough
+ case TK_AGG_FUNCTION:
+ fallthrough
+ case TK_AGG_COLUMN:
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_FixedCol) != U32(0) && int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) != 2 {
+ return WRC_Continue
+ }
+ if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 3 && (*Expr)(unsafe.Pointer(pExpr)).FiTable == *(*int32)(unsafe.Pointer(pWalker + 40)) {
+ return WRC_Continue
+ }
+ fallthrough
+
+ case TK_IF_NULL_ROW:
+ fallthrough
+ case TK_REGISTER:
+ fallthrough
+ case TK_DOT:
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ case TK_VARIABLE:
+ if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 5 {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_NULL)
+ } else if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 4 {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ }
+ fallthrough
+
+ default:
+ return WRC_Continue
+ }
+ return int32(0)
+}
+
+func exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(initFlag)
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprNodeIsConstant}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkFail}))
+ *(*int32)(unsafe.Pointer(bp + 40)) = iCur
+ Xsqlite3WalkExpr(tls, bp, p)
+ return int32((*Walker)(unsafe.Pointer(bp)).FeCode)
+}
+
+// Walk an expression tree. Return non-zero if the expression is constant
+// and 0 if it involves variables or function calls.
+//
+// For the purposes of this function, a double-quoted string (ex: "abc")
+// is considered a variable but a single-quoted string (ex: 'abc') is
+// a constant.
+func Xsqlite3ExprIsConstant(tls *libc.TLS, p uintptr) int32 {
+ return exprIsConst(tls, p, 1, 0)
+}
+
+// Walk an expression tree. Return non-zero if
+//
+// (1) the expression is constant, and
+// (2) the expression does originate in the ON or USING clause
+// of a LEFT JOIN, and
+// (3) the expression does not contain any EP_FixedCol TK_COLUMN
+// operands created by the constant propagation optimization.
+//
+// When this routine returns true, it indicates that the expression
+// can be added to the pParse->pConstExpr list and evaluated once when
+// the prepared statement starts up. See sqlite3ExprCodeRunJustOnce().
+func Xsqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) int32 {
+ return exprIsConst(tls, p, 2, 0)
+}
+
+// Walk an expression tree. Return non-zero if the expression is constant
+// for any single row of the table with cursor iCur. In other words, the
+// expression must not refer to any non-deterministic function nor any
+// table other than iCur.
+func Xsqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) int32 {
+ return exprIsConst(tls, p, 3, iCur)
+}
+
+// Check pExpr to see if it is an invariant constraint on data source pSrc.
+// This is an optimization. False negatives will perhaps cause slower
+// queries, but false positives will yield incorrect answers. So when in
+// doubt, return 0.
+//
+// To be an invariant constraint, the following must be true:
+//
+// (1) pExpr cannot refer to any table other than pSrc->iCursor.
+//
+// (2) pExpr cannot use subqueries or non-deterministic functions.
+//
+// (3) pSrc cannot be part of the left operand for a RIGHT JOIN.
+// (Is there some way to relax this constraint?)
+//
+// (4) If pSrc is the right operand of a LEFT JOIN, then...
+// (4a) pExpr must come from an ON clause..
+// (4b) and specifically the ON clause associated with the LEFT JOIN.
+//
+// **
+// ** (5) If pSrc is not the right operand of a LEFT JOIN or the left
+// ** operand of a RIGHT JOIN, then pExpr must be from the WHERE
+// ** clause, not an ON clause.
+func Xsqlite3ExprIsTableConstraint(tls *libc.TLS, pExpr uintptr, pSrc uintptr) int32 {
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ return 0
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&JT_LEFT != 0 {
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0)) {
+ return 0
+ }
+ if *(*int32)(unsafe.Pointer(pExpr + 52)) != (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ return 0
+ }
+ } else {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ return 0
+ }
+ }
+ return Xsqlite3ExprIsTableConstant(tls, pExpr, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor)
+}
+
+func exprNodeIsConstantOrGroupBy(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var pGroupBy uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var i int32
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr; i++ {
+ var p uintptr = (*ExprList_item)(unsafe.Pointer(pGroupBy + 8 + uintptr(i)*32)).FpExpr
+ if Xsqlite3ExprCompare(tls, uintptr(0), pExpr, p, -1) < 2 {
+ var pColl uintptr = Xsqlite3ExprNNCollSeq(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, p)
+ if Xsqlite3IsBinary(tls, pColl) != 0 {
+ return WRC_Prune
+ }
+ }
+ }
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ }
+
+ return exprNodeIsConstant(tls, pWalker, pExpr)
+}
+
+// Walk the expression tree passed as the first argument. Return non-zero
+// if the expression consists entirely of constants or copies of terms
+// in pGroupBy that sort with the BINARY collation sequence.
+//
+// This routine is used to determine if a term of the HAVING clause can
+// be promoted into the WHERE clause. In order for such a promotion to work,
+// the value of the HAVING clause term must be the same for all members of
+// a "group". The requirement that the GROUP BY term must be BINARY
+// assumes that no other collating sequence will have a finer-grained
+// grouping than binary. In other words (A=B COLLATE binary) implies
+// A=B in every other collating sequence. The requirement that the
+// GROUP BY be BINARY is stricter than necessary. It would also work
+// to promote HAVING clauses that use the same alternative collating
+// sequence as the GROUP BY term, but that is much harder to check,
+// alternative collating sequences are uncommon, and this is only an
+// optimization, so we take the easy way out and simply require the
+// GROUP BY to use the BINARY collating sequence.
+func Xsqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, pGroupBy uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(1)
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprNodeIsConstantOrGroupBy}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pGroupBy
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ Xsqlite3WalkExpr(tls, bp, p)
+ return int32((*Walker)(unsafe.Pointer(bp)).FeCode)
+}
+
+// Walk an expression tree for the DEFAULT field of a column definition
+// in a CREATE TABLE statement. Return non-zero if the expression is
+// acceptable for use as a DEFAULT. That is to say, return non-zero if
+// the expression is constant or a function call with constant arguments.
+// Return and 0 if there are any variables.
+//
+// isInit is true when parsing from sqlite_schema. isInit is false when
+// processing a new CREATE TABLE statement. When isInit is true, parameters
+// (such as ? or $abc) in the expression are converted into NULL. When
+// isInit is false, parameters raise an error. Parameters should not be
+// allowed in a CREATE TABLE statement, but some legacy versions of SQLite
+// allowed it, so we need to support it when reading sqlite_schema for
+// backwards compatibility.
+//
+// If isInit is true, set EP_FromDDL on every TK_FUNCTION node.
+//
+// For the purposes of this function, a double-quoted string (ex: "abc")
+// is considered a variable but a single-quoted string (ex: 'abc') is
+// a constant.
+func Xsqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit U8) int32 {
+ return exprIsConst(tls, p, 4+int32(isInit), 0)
+}
+
+// If the expression p codes a constant integer that is small enough
+// to fit in a 32-bit integer, return 1 and put the value of the integer
+// in *pValue. If the expression is not an integer or if it is too big
+// to fit in a signed 32-bit integer, return 0 and leave *pValue unchanged.
+func Xsqlite3ExprIsInteger(tls *libc.TLS, p uintptr, pValue uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = 0
+ if p == uintptr(0) {
+ return 0
+ }
+
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_IntValue) != 0 {
+ *(*int32)(unsafe.Pointer(pValue)) = *(*int32)(unsafe.Pointer(p + 8))
+ return 1
+ }
+ switch int32((*Expr)(unsafe.Pointer(p)).Fop) {
+ case TK_UPLUS:
+ {
+ rc = Xsqlite3ExprIsInteger(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, pValue)
+ break
+
+ }
+ case TK_UMINUS:
+ {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ if Xsqlite3ExprIsInteger(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, bp) != 0 {
+ *(*int32)(unsafe.Pointer(pValue)) = -*(*int32)(unsafe.Pointer(bp))
+ rc = 1
+ }
+ break
+
+ }
+ default:
+ break
+ }
+ return rc
+}
+
+// Return FALSE if there is no chance that the expression can be NULL.
+//
+// If the expression might be NULL or if the expression is too complex
+// to tell return TRUE.
+//
+// This routine is used as an optimization, to skip OP_IsNull opcodes
+// when we know that a value cannot be NULL. Hence, a false positive
+// (returning TRUE when in fact the expression can never be NULL) might
+// be a small performance hit but is otherwise harmless. On the other
+// hand, a false negative (returning FALSE when the result could be NULL)
+// will likely result in an incorrect answer. So when in doubt, return
+// TRUE.
+func Xsqlite3ExprCanBeNull(tls *libc.TLS, p uintptr) int32 {
+ var op U8
+
+ for int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_UPLUS || int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_UMINUS {
+ p = (*Expr)(unsafe.Pointer(p)).FpLeft
+
+ }
+ op = (*Expr)(unsafe.Pointer(p)).Fop
+ if int32(op) == TK_REGISTER {
+ op = (*Expr)(unsafe.Pointer(p)).Fop2
+ }
+ switch int32(op) {
+ case TK_INTEGER:
+ fallthrough
+ case TK_STRING:
+ fallthrough
+ case TK_FLOAT:
+ fallthrough
+ case TK_BLOB:
+ return 0
+ case TK_COLUMN:
+ return libc.Bool32((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_CanBeNull) != U32(0) || *(*uintptr)(unsafe.Pointer(p + 64)) == uintptr(0) || int32((*Expr)(unsafe.Pointer(p)).FiColumn) >= 0 &&
+ (*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FaCol != uintptr(0) &&
+ int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FaCol + uintptr((*Expr)(unsafe.Pointer(p)).FiColumn)*24 + 8))&0xf>>0) == 0)
+ default:
+ return 1
+ }
+ return int32(0)
+}
+
+// Return TRUE if the given expression is a constant which would be
+// unchanged by OP_Affinity with the affinity given in the second
+// argument.
+//
+// This routine is used to determine if the OP_Affinity operation
+// can be omitted. When in doubt return FALSE. A false negative
+// is harmless. A false positive, however, can result in the wrong
+// answer.
+func Xsqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) int32 {
+ var op U8
+ var unaryMinus int32 = 0
+ if int32(aff) == SQLITE_AFF_BLOB {
+ return 1
+ }
+ for int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_UPLUS || int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_UMINUS {
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_UMINUS {
+ unaryMinus = 1
+ }
+ p = (*Expr)(unsafe.Pointer(p)).FpLeft
+ }
+ op = (*Expr)(unsafe.Pointer(p)).Fop
+ if int32(op) == TK_REGISTER {
+ op = (*Expr)(unsafe.Pointer(p)).Fop2
+ }
+ switch int32(op) {
+ case TK_INTEGER:
+ {
+ return libc.Bool32(int32(aff) >= SQLITE_AFF_NUMERIC)
+
+ }
+ case TK_FLOAT:
+ {
+ return libc.Bool32(int32(aff) >= SQLITE_AFF_NUMERIC)
+
+ }
+ case TK_STRING:
+ {
+ return libc.Bool32(!(unaryMinus != 0) && int32(aff) == SQLITE_AFF_TEXT)
+
+ }
+ case TK_BLOB:
+ {
+ return libc.BoolInt32(!(unaryMinus != 0))
+
+ }
+ case TK_COLUMN:
+ {
+ return libc.Bool32(int32(aff) >= SQLITE_AFF_NUMERIC && int32((*Expr)(unsafe.Pointer(p)).FiColumn) < 0)
+
+ }
+ default:
+ {
+ return 0
+
+ }
+ }
+ return int32(0)
+}
+
+// Return TRUE if the given string is a row-id column name.
+func Xsqlite3IsRowid(tls *libc.TLS, z uintptr) int32 {
+ if Xsqlite3StrICmp(tls, z, ts+8108) == 0 {
+ return 1
+ }
+ if Xsqlite3StrICmp(tls, z, ts+8116) == 0 {
+ return 1
+ }
+ if Xsqlite3StrICmp(tls, z, ts+8122) == 0 {
+ return 1
+ }
+ return 0
+}
+
+func isCandidateForInOpt(tls *libc.TLS, pX uintptr) uintptr {
+ var p uintptr
+ var pSrc uintptr
+ var pEList uintptr
+ var pTab uintptr
+ var i int32
+ if !((*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_xIsSelect) != U32(0)) {
+ return uintptr(0)
+ }
+ if (*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_VarSelect) != U32(0) {
+ return uintptr(0)
+ }
+ p = *(*uintptr)(unsafe.Pointer(pX + 32))
+ if (*Select)(unsafe.Pointer(p)).FpPrior != 0 {
+ return uintptr(0)
+ }
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct|SF_Aggregate) != 0 {
+ return uintptr(0)
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FpLimit != 0 {
+ return uintptr(0)
+ }
+ if (*Select)(unsafe.Pointer(p)).FpWhere != 0 {
+ return uintptr(0)
+ }
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc != 1 {
+ return uintptr(0)
+ }
+ if (*SrcItem)(unsafe.Pointer(pSrc+8)).FpSelect != 0 {
+ return uintptr(0)
+ }
+ pTab = (*SrcItem)(unsafe.Pointer(pSrc + 8)).FpTab
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ return uintptr(0)
+ }
+ pEList = (*Select)(unsafe.Pointer(p)).FpEList
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ var pRes uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pRes)).Fop) != TK_COLUMN {
+ return uintptr(0)
+ }
+
+ }
+ return p
+}
+
+func sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int32) {
+ var addr1 int32
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regHasNull)
+ addr1 = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iCur)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iCur, 0, regHasNull)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_TYPEOFARG))
+
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+}
+
+func sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) int32 {
+ var pLHS uintptr
+ var res int32
+
+ pLHS = (*Expr)(unsafe.Pointer(pIn)).FpLeft
+ (*Expr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0)
+ res = Xsqlite3ExprIsConstant(tls, pIn)
+ (*Expr)(unsafe.Pointer(pIn)).FpLeft = pLHS
+ return res
+}
+
+// This function is used by the implementation of the IN (...) operator.
+// The pX parameter is the expression on the RHS of the IN operator, which
+// might be either a list of expressions or a subquery.
+//
+// The job of this routine is to find or create a b-tree object that can
+// be used either to test for membership in the RHS set or to iterate through
+// all members of the RHS set, skipping duplicates.
+//
+// A cursor is opened on the b-tree object that is the RHS of the IN operator
+// and the *piTab parameter is set to the index of that cursor.
+//
+// The returned value of this function indicates the b-tree type, as follows:
+//
+// IN_INDEX_ROWID - The cursor was opened on a database table.
+// IN_INDEX_INDEX_ASC - The cursor was opened on an ascending index.
+// IN_INDEX_INDEX_DESC - The cursor was opened on a descending index.
+// IN_INDEX_EPH - The cursor was opened on a specially created and
+// populated epheremal table.
+// IN_INDEX_NOOP - No cursor was allocated. The IN operator must be
+// implemented as a sequence of comparisons.
+//
+// An existing b-tree might be used if the RHS expression pX is a simple
+// subquery such as:
+//
+// SELECT <column1>, <column2>... FROM <table>
+//
+// If the RHS of the IN operator is a list or a more complex subquery, then
+// an ephemeral table might need to be generated from the RHS and then
+// pX->iTable made to point to the ephemeral table instead of an
+// existing table. In this case, the creation and initialization of the
+// ephmeral table might be put inside of a subroutine, the EP_Subrtn flag
+// will be set on pX and the pX->y.sub fields will be set to show where
+// the subroutine is coded.
+//
+// The inFlags parameter must contain, at a minimum, one of the bits
+// IN_INDEX_MEMBERSHIP or IN_INDEX_LOOP but not both. If inFlags contains
+// IN_INDEX_MEMBERSHIP, then the generated table will be used for a fast
+// membership test. When the IN_INDEX_LOOP bit is set, the IN index will
+// be used to loop over all values of the RHS of the IN operator.
+//
+// When IN_INDEX_LOOP is used (and the b-tree will be used to iterate
+// through the set members) then the b-tree must not contain duplicates.
+// An epheremal table will be created unless the selected columns are guaranteed
+// to be unique - either because it is an INTEGER PRIMARY KEY or due to
+// a UNIQUE constraint or index.
+//
+// When IN_INDEX_MEMBERSHIP is used (and the b-tree will be used
+// for fast set membership tests) then an epheremal table must
+// be used unless <columns> is a single INTEGER PRIMARY KEY column or an
+// index can be found with the specified <columns> as its left-most.
+//
+// If the IN_INDEX_NOOP_OK and IN_INDEX_MEMBERSHIP are both set and
+// if the RHS of the IN operator is a list (not a subquery) then this
+// routine might decide that creating an ephemeral b-tree for membership
+// testing is too expensive and return IN_INDEX_NOOP. In that case, the
+// calling routine should implement the IN operator using a sequence
+// of Eq or Ne comparison operations.
+//
+// When the b-tree is being used for membership tests, the calling function
+// might need to know whether or not the RHS side of the IN operator
+// contains a NULL. If prRhsHasNull is not a NULL pointer and
+// if there is any chance that the (...) might contain a NULL value at
+// runtime, then a register is allocated and the register number written
+// to *prRhsHasNull. If there is no chance that the (...) contains a
+// NULL value, then *prRhsHasNull is left unchanged.
+//
+// If a register is allocated and its location stored in *prRhsHasNull, then
+// the value in that register will be NULL if the b-tree contains one or more
+// NULL values, and it will be some non-NULL value if the b-tree contains no
+// NULL values.
+//
+// If the aiMap parameter is not NULL, it must point to an array containing
+// one element for each column returned by the SELECT statement on the RHS
+// of the IN(...) operator. The i'th entry of the array is populated with the
+// offset of the index column that matches the i'th column returned by the
+// SELECT. For example, if the expression and selected index are:
+//
+// (?,?,?) IN (SELECT a, b, c FROM t1)
+// CREATE INDEX i1 ON t1(b, c, a);
+//
+// then aiMap[] is populated with {2, 0, 1}.
+func Xsqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags U32, prRhsHasNull uintptr, aiMap uintptr, piTab uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr
+ var eType int32 = 0
+ var iTab int32
+ var mustBeUnique int32
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ mustBeUnique = libc.Bool32(inFlags&U32(IN_INDEX_LOOP) != U32(0))
+ iTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+
+ if prRhsHasNull != 0 && (*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ var i int32
+ var pEList uintptr = (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ if Xsqlite3ExprCanBeNull(tls, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FpExpr) != 0 {
+ break
+ }
+ }
+ if i == (*ExprList)(unsafe.Pointer(pEList)).FnExpr {
+ prRhsHasNull = uintptr(0)
+ }
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 && libc.AssignUintptr(&p, isCandidateForInOpt(tls, pX)) != uintptr(0) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTab uintptr
+ var iDb int32
+ var pEList uintptr = (*Select)(unsafe.Pointer(p)).FpEList
+ var nExpr int32 = (*ExprList)(unsafe.Pointer(pEList)).FnExpr
+
+ pTab = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpTab
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab)).FzName)
+
+ if nExpr == 1 && int32((*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pEList+8)).FpExpr)).FiColumn) < 0 {
+ var iAddr int32 = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+
+ Xsqlite3OpenTable(tls, pParse, iTab, iDb, pTab, OP_OpenRead)
+ eType = IN_INDEX_ROWID
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+8126, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3VdbeJumpHere(tls, v, iAddr)
+ } else {
+ var pIdx uintptr
+ var affinity_ok int32 = 1
+ var i int32
+
+ for i = 0; i < nExpr && affinity_ok != 0; i++ {
+ var pLhs uintptr = Xsqlite3VectorFieldSubexpr(tls, (*Expr)(unsafe.Pointer(pX)).FpLeft, i)
+ var iCol int32 = int32((*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FpExpr)).FiColumn)
+ var idxaff int8 = Xsqlite3TableColumnAffinity(tls, pTab, iCol)
+ var cmpaff int8 = Xsqlite3CompareAffinity(tls, pLhs, idxaff)
+
+ switch int32(cmpaff) {
+ case SQLITE_AFF_BLOB:
+ break
+ fallthrough
+ case SQLITE_AFF_TEXT:
+ break
+ fallthrough
+ default:
+ affinity_ok = libc.Bool32(int32(idxaff) >= SQLITE_AFF_NUMERIC)
+ }
+ }
+
+ if affinity_ok != 0 {
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0 && eType == 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var colUsed Bitmask
+ var mCol Bitmask
+ if int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) < nExpr {
+ continue
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != uintptr(0) {
+ continue
+ }
+
+ if int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1 {
+ continue
+ }
+ if mustBeUnique != 0 {
+ if int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) > nExpr ||
+ int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) > nExpr && !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None) {
+ continue
+ }
+ }
+
+ colUsed = uint64(0)
+ for i = 0; i < nExpr; i++ {
+ var pLhs uintptr = Xsqlite3VectorFieldSubexpr(tls, (*Expr)(unsafe.Pointer(pX)).FpLeft, i)
+ var pRhs uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FpExpr
+ var pReq uintptr = Xsqlite3BinaryCompareCollSeq(tls, pParse, pLhs, pRhs)
+ var j int32
+
+ for j = 0; j < nExpr; j++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2))) != int32((*Expr)(unsafe.Pointer(pRhs)).FiColumn) {
+ continue
+ }
+
+ if pReq != uintptr(0) && Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pReq)).FzName, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(j)*8))) != 0 {
+ continue
+ }
+ break
+ }
+ if j == nExpr {
+ break
+ }
+ mCol = uint64(1) << j
+ if mCol&colUsed != 0 {
+ break
+ }
+ colUsed = colUsed | mCol
+ if aiMap != 0 {
+ *(*int32)(unsafe.Pointer(aiMap + uintptr(i)*4)) = j
+ }
+ }
+
+ if colUsed == uint64(1)<<nExpr-uint64(1) {
+ var iAddr int32 = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+8173, libc.VaList(bp+8, (*Index)(unsafe.Pointer(pIdx)).FzName))
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenRead, iTab, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
+
+ eType = IN_INDEX_INDEX_ASC + int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder)))
+
+ if prRhsHasNull != 0 {
+ *(*int32)(unsafe.Pointer(prRhsHasNull)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if nExpr == 1 {
+ sqlite3SetHasNullFlag(tls, v, iTab, *(*int32)(unsafe.Pointer(prRhsHasNull)))
+ }
+ }
+ Xsqlite3VdbeJumpHere(tls, v, iAddr)
+ }
+ }
+ }
+ }
+ }
+
+ if eType == 0 &&
+ inFlags&U32(IN_INDEX_NOOP_OK) != 0 &&
+ (*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_xIsSelect) == U32(0) &&
+ (!(sqlite3InRhsIsConstant(tls, pX) != 0) || (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FnExpr <= 2) {
+ (*Parse)(unsafe.Pointer(pParse)).FnTab--
+ iTab = -1
+ eType = IN_INDEX_NOOP
+ }
+
+ if eType == 0 {
+ var savedNQueryLoop U32 = (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop
+ var rMayHaveNull int32 = 0
+ eType = IN_INDEX_EPH
+ if inFlags&U32(IN_INDEX_LOOP) != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop = U32(0)
+ } else if prRhsHasNull != 0 {
+ *(*int32)(unsafe.Pointer(prRhsHasNull)) = libc.AssignInt32(&rMayHaveNull, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ }
+
+ Xsqlite3CodeRhsOfIN(tls, pParse, pX, iTab)
+ if rMayHaveNull != 0 {
+ sqlite3SetHasNullFlag(tls, v, iTab, rMayHaveNull)
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop = savedNQueryLoop
+ }
+
+ if aiMap != 0 && eType != IN_INDEX_INDEX_ASC && eType != IN_INDEX_INDEX_DESC {
+ var i int32
+ var n int32
+ n = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pX)).FpLeft)
+ for i = 0; i < n; i++ {
+ *(*int32)(unsafe.Pointer(aiMap + uintptr(i)*4)) = i
+ }
+ }
+ *(*int32)(unsafe.Pointer(piTab)) = iTab
+ return eType
+}
+
+func exprINAffinity(tls *libc.TLS, pParse uintptr, pExpr uintptr) uintptr {
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ var nVal int32 = Xsqlite3ExprVectorSize(tls, pLeft)
+ var pSelect uintptr
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ pSelect = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ } else {
+ pSelect = uintptr(0)
+ }
+ var zRet uintptr
+
+ zRet = Xsqlite3DbMallocRaw(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(nVal+1))
+ if zRet != 0 {
+ var i int32
+ for i = 0; i < nVal; i++ {
+ var pA uintptr = Xsqlite3VectorFieldSubexpr(tls, pLeft, i)
+ var a int8 = Xsqlite3ExprAffinity(tls, pA)
+ if pSelect != 0 {
+ *(*int8)(unsafe.Pointer(zRet + uintptr(i))) = Xsqlite3CompareAffinity(tls, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpEList+8+uintptr(i)*32)).FpExpr, a)
+ } else {
+ *(*int8)(unsafe.Pointer(zRet + uintptr(i))) = a
+ }
+ }
+ *(*int8)(unsafe.Pointer(zRet + uintptr(nVal))) = int8(0)
+ }
+ return zRet
+}
+
+// Load the Parse object passed as the first argument with an error
+// message of the form:
+//
+// "sub-select returns N columns - expected M"
+func Xsqlite3SubselectError(tls *libc.TLS, pParse uintptr, nActual int32, nExpect int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ var zFmt uintptr = ts + 8204
+ Xsqlite3ErrorMsg(tls, pParse, zFmt, libc.VaList(bp, nActual, nExpect))
+ }
+}
+
+// Expression pExpr is a vector that has been used in a context where
+// it is not permitted. If pExpr is a sub-select vector, this routine
+// loads the Parse object with a message of the form:
+//
+// "sub-select returns N columns - expected 1"
+//
+// Or, if it is a regular scalar vector:
+//
+// "row value misused"
+func Xsqlite3VectorErrorMsg(tls *libc.TLS, pParse uintptr, pExpr uintptr) {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ Xsqlite3SubselectError(tls, pParse, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList)).FnExpr, 1)
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+6936, 0)
+ }
+}
+
+// Generate code that will construct an ephemeral table containing all terms
+// in the RHS of an IN operator. The IN operator can be in either of two
+// forms:
+//
+// x IN (4,5,11) -- IN operator with list on right-hand side
+// x IN (SELECT a FROM b) -- IN operator with subquery on the right
+//
+// The pExpr parameter is the IN operator. The cursor number for the
+// constructed ephermeral table is returned. The first time the ephemeral
+// table is computed, the cursor number is also stored in pExpr->iTable,
+// however the cursor number returned might not be the same, as it might
+// have been duplicated using OP_OpenDup.
+//
+// If the LHS expression ("x" in the examples) is a column value, or
+// the SELECT statement returns a column value, then the affinity of that
+// column is used to build the index keys. If both 'x' and the
+// SELECT... statement are columns, then numeric affinity is used
+// if either column has NUMERIC or INTEGER affinity. If neither
+// 'x' nor the SELECT... statement are columns, then numeric affinity
+// is used.
+func Xsqlite3CodeRhsOfIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, iTab int32) {
+ bp := tls.Alloc(65)
+ defer tls.Free(65)
+
+ var addrOnce int32 = 0
+ var addr int32
+ var pLeft uintptr
+ var pKeyInfo uintptr = uintptr(0)
+ var nVal int32
+ var v uintptr
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_VarSelect) != U32(0)) && (*Parse)(unsafe.Pointer(pParse)).FiSelfTab == 0 {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Subrtn) != U32(0) {
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+8248, libc.VaList(bp, (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselId))
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, *(*int32)(unsafe.Pointer(pExpr + 64 + 4)),
+ *(*int32)(unsafe.Pointer(pExpr + 64)))
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, iTab, (*Expr)(unsafe.Pointer(pExpr)).FiTable)
+ Xsqlite3VdbeJumpHere(tls, v, addrOnce)
+ return
+ }
+
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_Subrtn)
+
+ *(*int32)(unsafe.Pointer(pExpr + 64 + 4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pExpr + 64)) = Xsqlite3VdbeAddOp2(tls, v, OP_BeginSubrtn, 0, *(*int32)(unsafe.Pointer(pExpr + 64 + 4))) + 1
+
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ }
+
+ pLeft = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ nVal = Xsqlite3ExprVectorSize(tls, pLeft)
+
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = iTab
+ addr = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*Expr)(unsafe.Pointer(pExpr)).FiTable, nVal)
+ pKeyInfo = Xsqlite3KeyInfoAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, nVal, 1)
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ var pSelect uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ var pEList uintptr = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+8271, libc.VaList(bp+8, func() uintptr {
+ if addrOnce != 0 {
+ return ts + 1547
+ }
+ return ts + 8290
+ }(), (*Select)(unsafe.Pointer(pSelect)).FselId))
+
+ if (*ExprList)(unsafe.Pointer(pEList)).FnExpr == nVal {
+ var pCopy uintptr
+
+ var i int32
+ var rc int32
+ Xsqlite3SelectDestInit(tls, bp+24, SRT_Set, iTab)
+ (*SelectDest)(unsafe.Pointer(bp + 24)).FzAffSdst = exprINAffinity(tls, pParse, pExpr)
+ (*Select)(unsafe.Pointer(pSelect)).FiLimit = 0
+
+ pCopy = Xsqlite3SelectDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSelect, 0)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ rc = 1
+ } else {
+ rc = Xsqlite3Select(tls, pParse, pCopy, bp+24)
+ }
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pCopy)
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*SelectDest)(unsafe.Pointer(bp+24)).FzAffSdst)
+ if rc != 0 {
+ Xsqlite3KeyInfoUnref(tls, pKeyInfo)
+ return
+ }
+
+ for i = 0; i < nVal; i++ {
+ var p uintptr = Xsqlite3VectorFieldSubexpr(tls, pLeft, i)
+ *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) = Xsqlite3BinaryCompareCollSeq(tls,
+ pParse, p, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FpExpr)
+ }
+ }
+ } else if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) {
+ var i int32
+ var pList uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ var pItem uintptr
+ var r1 int32
+ var r2 int32
+ *(*int8)(unsafe.Pointer(bp + 64)) = Xsqlite3ExprAffinity(tls, pLeft)
+ if int32(*(*int8)(unsafe.Pointer(bp + 64))) <= SQLITE_AFF_NONE {
+ *(*int8)(unsafe.Pointer(bp + 64)) = int8(SQLITE_AFF_BLOB)
+ } else if int32(*(*int8)(unsafe.Pointer(bp + 64))) == SQLITE_AFF_REAL {
+ *(*int8)(unsafe.Pointer(bp + 64)) = int8(SQLITE_AFF_NUMERIC)
+ }
+ if pKeyInfo != 0 {
+ *(*uintptr)(unsafe.Pointer(pKeyInfo + 32)) = Xsqlite3ExprCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ }
+
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ r2 = Xsqlite3GetTempReg(tls, pParse)
+ i = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ pItem = pList + 8
+ __1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ var pE2 uintptr = (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr
+
+ if addrOnce != 0 && !(Xsqlite3ExprIsConstant(tls, pE2) != 0) {
+ Xsqlite3VdbeChangeToNoop(tls, v, addrOnce-1)
+ Xsqlite3VdbeChangeToNoop(tls, v, addrOnce)
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Subrtn))
+ addrOnce = 0
+ }
+
+ Xsqlite3ExprCode(tls, pParse, pE2, r1)
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, r1, 1, r2, bp+64, 1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iTab, r2, r1, 1)
+
+ }
+ goto __2
+ __2:
+ i--
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ ;
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ Xsqlite3ReleaseTempReg(tls, pParse, r2)
+ }
+ if pKeyInfo != 0 {
+ Xsqlite3VdbeChangeP4(tls, v, addr, pKeyInfo, -8)
+ }
+ if addrOnce != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, iTab)
+ Xsqlite3VdbeJumpHere(tls, v, addrOnce)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Return, *(*int32)(unsafe.Pointer(pExpr + 64 + 4)),
+ *(*int32)(unsafe.Pointer(pExpr + 64)), 1)
+
+ Xsqlite3ClearTempRegCache(tls, pParse)
+ }
+}
+
+// Generate code for scalar subqueries used as a subquery expression
+// or EXISTS operator:
+//
+// (SELECT a FROM b) -- subquery
+// EXISTS (SELECT a FROM b) -- EXISTS subquery
+//
+// The pExpr parameter is the SELECT or EXISTS operator to be coded.
+//
+// Return the register that holds the result. For a multi-column SELECT,
+// the result is stored in a contiguous array of registers and the
+// return value is the register of the left-most result column.
+// Return 0 if an error occurs.
+func Xsqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var addrOnce int32 = 0
+ var rReg int32 = 0
+ var pSel uintptr
+
+ var nReg int32
+ var pLimit uintptr
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return 0
+ }
+
+ pSel = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Subrtn) != U32(0) {
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+8302, libc.VaList(bp, (*Select)(unsafe.Pointer(pSel)).FselId))
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, *(*int32)(unsafe.Pointer(pExpr + 64 + 4)),
+ *(*int32)(unsafe.Pointer(pExpr + 64)))
+ return (*Expr)(unsafe.Pointer(pExpr)).FiTable
+ }
+
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_Subrtn)
+ *(*int32)(unsafe.Pointer(pExpr + 64 + 4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pExpr + 64)) = Xsqlite3VdbeAddOp2(tls, v, OP_BeginSubrtn, 0, *(*int32)(unsafe.Pointer(pExpr + 64 + 4))) + 1
+
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_VarSelect) != U32(0)) {
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ }
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+8320, libc.VaList(bp+8, func() uintptr {
+ if addrOnce != 0 {
+ return ts + 1547
+ }
+ return ts + 8290
+ }(), (*Select)(unsafe.Pointer(pSel)).FselId))
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_SELECT {
+ nReg = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpEList)).FnExpr
+ } else {
+ nReg = 1
+ }
+ Xsqlite3SelectDestInit(tls, bp+24, 0, (*Parse)(unsafe.Pointer(pParse)).FnMem+1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nReg
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_SELECT {
+ (*SelectDest)(unsafe.Pointer(bp + 24)).FeDest = U8(SRT_Mem)
+ (*SelectDest)(unsafe.Pointer(bp + 24)).FiSdst = (*SelectDest)(unsafe.Pointer(bp + 24)).FiSDParm
+ (*SelectDest)(unsafe.Pointer(bp + 24)).FnSdst = nReg
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, (*SelectDest)(unsafe.Pointer(bp+24)).FiSDParm, (*SelectDest)(unsafe.Pointer(bp+24)).FiSDParm+nReg-1)
+
+ } else {
+ (*SelectDest)(unsafe.Pointer(bp + 24)).FeDest = U8(SRT_Exists)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*SelectDest)(unsafe.Pointer(bp+24)).FiSDParm)
+
+ }
+ if (*Select)(unsafe.Pointer(pSel)).FpLimit != 0 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pLimit = Xsqlite3Expr(tls, db, TK_INTEGER, ts+7933)
+ if pLimit != 0 {
+ (*Expr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC)
+ pLimit = Xsqlite3PExpr(tls, pParse, TK_NE,
+ Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit)
+ }
+ Xsqlite3ExprDeferredDelete(tls, pParse, (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpLimit)).FpLeft)
+ (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit
+ } else {
+ pLimit = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_INTEGER, ts+8341)
+ (*Select)(unsafe.Pointer(pSel)).FpLimit = Xsqlite3PExpr(tls, pParse, TK_LIMIT, pLimit, uintptr(0))
+ }
+ (*Select)(unsafe.Pointer(pSel)).FiLimit = 0
+ if Xsqlite3Select(tls, pParse, pSel, bp+24) != 0 {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2 = (*Expr)(unsafe.Pointer(pExpr)).Fop
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_ERROR)
+ return 0
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = libc.AssignInt32(&rReg, (*SelectDest)(unsafe.Pointer(bp+24)).FiSDParm)
+
+ if addrOnce != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrOnce)
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Return, *(*int32)(unsafe.Pointer(pExpr + 64 + 4)),
+ *(*int32)(unsafe.Pointer(pExpr + 64)), 1)
+
+ Xsqlite3ClearTempRegCache(tls, pParse)
+ return rReg
+}
+
+// Expr pIn is an IN(...) expression. This function checks that the
+// sub-select on the RHS of the IN() operator has the same number of
+// columns as the vector on the LHS. Or, if the RHS of the IN() is not
+// a sub-query, that the LHS is a vector of size 1.
+func Xsqlite3ExprCheckIN(tls *libc.TLS, pParse uintptr, pIn uintptr) int32 {
+ var nVector int32 = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pIn)).FpLeft)
+ if (*Expr)(unsafe.Pointer(pIn)).Fflags&U32(EP_xIsSelect) != U32(0) && !(int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed) != 0) {
+ if nVector != (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIn + 32)))).FpEList)).FnExpr {
+ Xsqlite3SubselectError(tls, pParse, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIn + 32)))).FpEList)).FnExpr, nVector)
+ return 1
+ }
+ } else if nVector != 1 {
+ Xsqlite3VectorErrorMsg(tls, pParse, (*Expr)(unsafe.Pointer(pIn)).FpLeft)
+ return 1
+ }
+ return 0
+}
+
+func sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFalse int32, destIfNull int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var eType int32
+ var rLhs int32
+ var rLhsOrig int32
+ var v uintptr
+ var aiMap uintptr
+ var zAff uintptr
+ var nVector int32
+
+ var pLeft uintptr
+ var i int32
+ var destStep2 int32
+ var destStep6 int32
+ var addrTruthOp int32
+ var destNotNull int32
+ var addrTop int32
+
+ var okConstFactor U8
+ var op int32
+ var op1 int32
+ var pList uintptr
+ var pColl uintptr
+ var labelOk int32
+ var r2 int32
+
+ var regCkNull int32
+ var ii int32
+ var p uintptr
+ var p1 uintptr
+ var pColl1 uintptr
+ var r3 int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ aiMap = uintptr(0)
+ zAff = uintptr(0)
+ destStep6 = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+ okConstFactor = (*Parse)(unsafe.Pointer(pParse)).FokConstFactor
+
+ pLeft = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ if !(Xsqlite3ExprCheckIN(tls, pParse, pExpr) != 0) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ zAff = exprINAffinity(tls, pParse, pExpr)
+ nVector = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ aiMap = Xsqlite3DbMallocZero(tls,
+ (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(nVector)*(uint64(unsafe.Sizeof(int32(0)))+uint64(unsafe.Sizeof(int8(0))))+uint64(1))
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0) {
+ goto __2
+ }
+ goto sqlite3ExprCodeIN_oom_error
+__2:
+ ;
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ eType = Xsqlite3FindInIndex(tls, pParse, pExpr,
+ uint32(IN_INDEX_MEMBERSHIP|IN_INDEX_NOOP_OK),
+ func() uintptr {
+ if destIfFalse == destIfNull {
+ return uintptr(0)
+ }
+ return bp
+ }(),
+ aiMap, bp+4)
+
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(0)
+ rLhsOrig = exprCodeVector(tls, pParse, pLeft, bp+8)
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = okConstFactor
+ i = 0
+__3:
+ if !(i < nVector && *(*int32)(unsafe.Pointer(aiMap + uintptr(i)*4)) == i) {
+ goto __5
+ }
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(i == nVector) {
+ goto __6
+ }
+
+ rLhs = rLhsOrig
+ goto __7
+__6:
+ rLhs = Xsqlite3GetTempRange(tls, pParse, nVector)
+ i = 0
+__8:
+ if !(i < nVector) {
+ goto __10
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, rLhsOrig+i, rLhs+*(*int32)(unsafe.Pointer(aiMap + uintptr(i)*4)), 0)
+ goto __9
+__9:
+ i++
+ goto __8
+ goto __10
+__10:
+ ;
+__7:
+ ;
+ if !(eType == IN_INDEX_NOOP) {
+ goto __11
+ }
+ labelOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ regCkNull = 0
+
+ pList = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if !(destIfNull != destIfFalse) {
+ goto __12
+ }
+ regCkNull = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_BitAnd, rLhs, rLhs, regCkNull)
+__12:
+ ;
+ ii = 0
+__13:
+ if !(ii < (*ExprList)(unsafe.Pointer(pList)).FnExpr) {
+ goto __15
+ }
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ii)*32)).FpExpr, bp+12)
+ if !(regCkNull != 0 && Xsqlite3ExprCanBeNull(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ii)*32)).FpExpr) != 0) {
+ goto __16
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_BitAnd, regCkNull, r2, regCkNull)
+__16:
+ ;
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 12)))
+ if !(ii < (*ExprList)(unsafe.Pointer(pList)).FnExpr-1 || destIfNull != destIfFalse) {
+ goto __17
+ }
+ if rLhs != r2 {
+ op = OP_Eq
+ } else {
+ op = OP_NotNull
+ }
+ Xsqlite3VdbeAddOp4(tls, v, op, rLhs, labelOk, r2,
+ pColl, -2)
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(*(*int8)(unsafe.Pointer(zAff))))
+ goto __18
+__17:
+ if rLhs != r2 {
+ op1 = OP_Ne
+ } else {
+ op1 = OP_IsNull
+ }
+
+ Xsqlite3VdbeAddOp4(tls, v, op1, rLhs, destIfFalse, r2,
+ pColl, -2)
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(int32(*(*int8)(unsafe.Pointer(zAff)))|SQLITE_JUMPIFNULL))
+__18:
+ ;
+ goto __14
+__14:
+ ii++
+ goto __13
+ goto __15
+__15:
+ ;
+ if !(regCkNull != 0) {
+ goto __19
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regCkNull, destIfNull)
+ Xsqlite3VdbeGoto(tls, v, destIfFalse)
+__19:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, labelOk)
+ Xsqlite3ReleaseTempReg(tls, pParse, regCkNull)
+ goto sqlite3ExprCodeIN_finished
+__11:
+ ;
+ if !(destIfNull == destIfFalse) {
+ goto __20
+ }
+ destStep2 = destIfFalse
+ goto __21
+__20:
+ destStep2 = libc.AssignInt32(&destStep6, Xsqlite3VdbeMakeLabel(tls, pParse))
+__21:
+ ;
+ i = 0
+__22:
+ if !(i < nVector) {
+ goto __24
+ }
+ p = Xsqlite3VectorFieldSubexpr(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, i)
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __25
+ }
+ goto sqlite3ExprCodeIN_oom_error
+__25:
+ ;
+ if !(Xsqlite3ExprCanBeNull(tls, p) != 0) {
+ goto __26
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, rLhs+i, destStep2)
+
+__26:
+ ;
+ goto __23
+__23:
+ i++
+ goto __22
+ goto __24
+__24:
+ ;
+ if !(eType == IN_INDEX_ROWID) {
+ goto __27
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, *(*int32)(unsafe.Pointer(bp + 4)), destIfFalse, rLhs)
+
+ addrTruthOp = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ goto __28
+__27:
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, rLhs, nVector, 0, zAff, nVector)
+ if !(destIfFalse == destIfNull) {
+ goto __29
+ }
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, *(*int32)(unsafe.Pointer(bp + 4)), destIfFalse,
+ rLhs, nVector)
+ goto sqlite3ExprCodeIN_finished
+__29:
+ ;
+ addrTruthOp = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, *(*int32)(unsafe.Pointer(bp + 4)), 0,
+ rLhs, nVector)
+__28:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) != 0 && nVector == 1) {
+ goto __30
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_NotNull, *(*int32)(unsafe.Pointer(bp)), destIfFalse)
+
+__30:
+ ;
+ if !(destIfFalse == destIfNull) {
+ goto __31
+ }
+ Xsqlite3VdbeGoto(tls, v, destIfFalse)
+__31:
+ ;
+ if !(destStep6 != 0) {
+ goto __32
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, destStep6)
+__32:
+ ;
+ addrTop = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, *(*int32)(unsafe.Pointer(bp + 4)), destIfFalse)
+
+ if !(nVector > 1) {
+ goto __33
+ }
+ destNotNull = Xsqlite3VdbeMakeLabel(tls, pParse)
+ goto __34
+__33:
+ destNotNull = destIfFalse
+__34:
+ ;
+ i = 0
+__35:
+ if !(i < nVector) {
+ goto __37
+ }
+ r3 = Xsqlite3GetTempReg(tls, pParse)
+ p1 = Xsqlite3VectorFieldSubexpr(tls, pLeft, i)
+ pColl1 = Xsqlite3ExprCollSeq(tls, pParse, p1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, *(*int32)(unsafe.Pointer(bp + 4)), i, r3)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Ne, rLhs+i, destNotNull, r3,
+ pColl1, -2)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, r3)
+ goto __36
+__36:
+ i++
+ goto __35
+ goto __37
+__37:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, destIfNull)
+ if !(nVector > 1) {
+ goto __38
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, destNotNull)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, *(*int32)(unsafe.Pointer(bp + 4)), addrTop+1)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, destIfFalse)
+__38:
+ ;
+ Xsqlite3VdbeJumpHere(tls, v, addrTruthOp)
+
+sqlite3ExprCodeIN_finished:
+ if !(rLhs != rLhsOrig) {
+ goto __39
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, rLhs)
+__39:
+ ;
+sqlite3ExprCodeIN_oom_error:
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, aiMap)
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zAff)
+}
+
+func codeReal(tls *libc.TLS, v uintptr, z uintptr, negateFlag int32, iMem int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if z != uintptr(0) {
+ Xsqlite3AtoF(tls, z, bp, Xsqlite3Strlen30(tls, z), uint8(SQLITE_UTF8))
+
+ if negateFlag != 0 {
+ *(*float64)(unsafe.Pointer(bp)) = -*(*float64)(unsafe.Pointer(bp))
+ }
+ Xsqlite3VdbeAddOp4Dup8(tls, v, OP_Real, 0, iMem, 0, bp, -12)
+ }
+}
+
+func codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, iMem int32) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_IntValue) != 0 {
+ var i int32 = *(*int32)(unsafe.Pointer(pExpr + 8))
+
+ if negFlag != 0 {
+ i = -i
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, i, iMem)
+ } else {
+ var c int32
+
+ var z uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 8))
+
+ c = Xsqlite3DecOrHexToI64(tls, z, bp+16)
+ if c == 3 && !(negFlag != 0) || c == 2 || negFlag != 0 && *(*I64)(unsafe.Pointer(bp + 16)) == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ if Xsqlite3_strnicmp(tls, z, ts+8343, 2) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8346,
+ libc.VaList(bp, func() uintptr {
+ if negFlag != 0 {
+ return ts + 5335
+ }
+ return ts + 1547
+ }(), pExpr))
+ } else {
+ codeReal(tls, v, z, negFlag, iMem)
+ }
+ } else {
+ if negFlag != 0 {
+ if c == 3 {
+ *(*I64)(unsafe.Pointer(bp + 16)) = int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ } else {
+ *(*I64)(unsafe.Pointer(bp + 16)) = -*(*I64)(unsafe.Pointer(bp + 16))
+ }
+ }
+ Xsqlite3VdbeAddOp4Dup8(tls, v, OP_Int64, 0, iMem, 0, bp+16, -13)
+ }
+ }
+}
+
+// Generate code that will load into register regOut a value that is
+// appropriate for the iIdxCol-th column of index pIdx.
+func Xsqlite3ExprCodeLoadIndexColumn(tls *libc.TLS, pParse uintptr, pIdx uintptr, iTabCur int32, iIdxCol int32, regOut int32) {
+ var iTabCol I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(iIdxCol)*2))
+ if int32(iTabCol) == -2 {
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = iTabCur + 1
+ Xsqlite3ExprCodeCopy(tls, pParse, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(iIdxCol)*32)).FpExpr, regOut)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+ } else {
+ Xsqlite3ExprCodeGetColumnOfTable(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, (*Index)(unsafe.Pointer(pIdx)).FpTable, iTabCur,
+ int32(iTabCol), regOut)
+ }
+}
+
+// Generate code that will compute the value of generated column pCol
+// and store the result in register regOut
+func Xsqlite3ExprCodeGeneratedColumn(tls *libc.TLS, pParse uintptr, pTab uintptr, pCol uintptr, regOut int32) {
+ var iAddr int32
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if (*Parse)(unsafe.Pointer(pParse)).FiSelfTab > 0 {
+ iAddr = Xsqlite3VdbeAddOp3(tls, v, OP_IfNullRow, (*Parse)(unsafe.Pointer(pParse)).FiSelfTab-1, 0, regOut)
+ } else {
+ iAddr = 0
+ }
+ Xsqlite3ExprCodeCopy(tls, pParse, Xsqlite3ColumnExpr(tls, pTab, pCol), regOut)
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) >= SQLITE_AFF_TEXT {
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, regOut, 1, 0, pCol+10, 1)
+ }
+ if iAddr != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, iAddr)
+ }
+}
+
+// Generate code to extract the value of the iCol-th column of a table.
+func Xsqlite3ExprCodeGetColumnOfTable(tls *libc.TLS, v uintptr, pTab uintptr, iTabCur int32, iCol int32, regOut int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCol uintptr
+
+ if iCol < 0 || iCol == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iTabCur, regOut)
+
+ } else {
+ var op int32
+ var x int32
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ op = OP_VColumn
+ x = iCol
+ } else if int32((*Column)(unsafe.Pointer(libc.AssignUintptr(&pCol, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24))).FcolFlags)&COLFLAG_VIRTUAL != 0 {
+ var pParse uintptr = Xsqlite3VdbeParser(tls, v)
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_BUSY != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8373,
+ libc.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzCnName))
+ } else {
+ var savedSelfTab int32 = (*Parse)(unsafe.Pointer(pParse)).FiSelfTab
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_BUSY)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = iTabCur + 1
+ Xsqlite3ExprCodeGeneratedColumn(tls, pParse, pTab, pCol, regOut)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = savedSelfTab
+ *(*U16)(unsafe.Pointer(pCol + 16)) &= libc.Uint16FromInt32(libc.CplInt32(COLFLAG_BUSY))
+ }
+ return
+ } else if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ x = int32(Xsqlite3TableColumnToIndex(tls, Xsqlite3PrimaryKeyIndex(tls, pTab), int16(iCol)))
+ op = OP_Column
+ } else {
+ x = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(iCol)))
+
+ op = OP_Column
+ }
+ Xsqlite3VdbeAddOp3(tls, v, op, iTabCur, x, regOut)
+ Xsqlite3ColumnDefault(tls, v, pTab, iCol, regOut)
+ }
+}
+
+// Generate code that will extract the iColumn-th column from
+// table pTab and store the column value in register iReg.
+//
+// There must be an open cursor to pTab in iTable when this routine
+// is called. If iColumn<0 then code is generated that extracts the rowid.
+func Xsqlite3ExprCodeGetColumn(tls *libc.TLS, pParse uintptr, pTab uintptr, iColumn int32, iTable int32, iReg int32, p5 U8) int32 {
+ Xsqlite3ExprCodeGetColumnOfTable(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, pTab, iTable, iColumn, iReg)
+ if p5 != 0 {
+ var pOp uintptr = Xsqlite3VdbeGetLastOp(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe)
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp5 = U16(p5)
+ }
+ }
+ return iReg
+}
+
+// Generate code to move content from registers iFrom...iFrom+nReg-1
+// over to iTo..iTo+nReg-1.
+func Xsqlite3ExprCodeMove(tls *libc.TLS, pParse uintptr, iFrom int32, iTo int32, nReg int32) {
+ Xsqlite3VdbeAddOp3(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_Move, iFrom, iTo, nReg)
+}
+
+func exprToRegister(tls *libc.TLS, pExpr uintptr, iReg int32) {
+ var p uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, pExpr)
+ if p == uintptr(0) {
+ return
+ }
+ (*Expr)(unsafe.Pointer(p)).Fop2 = (*Expr)(unsafe.Pointer(p)).Fop
+ (*Expr)(unsafe.Pointer(p)).Fop = U8(TK_REGISTER)
+ (*Expr)(unsafe.Pointer(p)).FiTable = iReg
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Skip))
+}
+
+func exprCodeVector(tls *libc.TLS, pParse uintptr, p uintptr, piFreeable uintptr) int32 {
+ var iResult int32
+ var nResult int32 = Xsqlite3ExprVectorSize(tls, p)
+ if nResult == 1 {
+ iResult = Xsqlite3ExprCodeTemp(tls, pParse, p, piFreeable)
+ } else {
+ *(*int32)(unsafe.Pointer(piFreeable)) = 0
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_SELECT {
+ iResult = Xsqlite3CodeSubselect(tls, pParse, p)
+ } else {
+ var i int32
+ iResult = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nResult
+
+ for i = 0; i < nResult; i++ {
+ Xsqlite3ExprCodeFactorable(tls, pParse, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32))+8+uintptr(i)*32)).FpExpr, i+iResult)
+ }
+ }
+ }
+ return iResult
+}
+
+func setDoNotMergeFlagOnCopy(tls *libc.TLS, v uintptr) {
+ if int32((*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetLastOp(tls, v))).Fopcode) == OP_Copy {
+ Xsqlite3VdbeChangeP5(tls, v, uint16(1))
+ }
+}
+
+func exprCodeInlineFunction(tls *libc.TLS, pParse uintptr, pFarg uintptr, iFuncId int32, target int32) int32 {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var nFarg int32
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ nFarg = (*ExprList)(unsafe.Pointer(pFarg)).FnExpr
+
+ switch iFuncId {
+ case INLINEFUNC_coalesce:
+ {
+ var endCoalesce int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var i int32
+
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr, target)
+ for i = 1; i < nFarg; i++ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_NotNull, target, endCoalesce)
+
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pFarg+8+uintptr(i)*32)).FpExpr, target)
+ }
+ setDoNotMergeFlagOnCopy(tls, v)
+ Xsqlite3VdbeResolveLabel(tls, v, endCoalesce)
+ break
+
+ }
+ case INLINEFUNC_iif:
+ {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Expr)(unsafe.Pointer(bp)).Fop = U8(TK_CASE)
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = pFarg
+ return Xsqlite3ExprCodeTarget(tls, pParse, bp, target)
+
+ }
+ case INLINEFUNC_sqlite_offset:
+ {
+ var pArg uintptr = (*ExprList_item)(unsafe.Pointer(pFarg + 8)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pArg)).Fop) == TK_COLUMN && (*Expr)(unsafe.Pointer(pArg)).FiTable >= 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Offset, (*Expr)(unsafe.Pointer(pArg)).FiTable, int32((*Expr)(unsafe.Pointer(pArg)).FiColumn), target)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, target)
+ }
+ break
+
+ }
+ default:
+ {
+ target = Xsqlite3ExprCodeTarget(tls, pParse, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr, target)
+ break
+
+ }
+
+ case INLINEFUNC_expr_compare:
+ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer,
+ Xsqlite3ExprCompare(tls, uintptr(0), (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr, (*ExprList_item)(unsafe.Pointer(pFarg+8+1*32)).FpExpr, -1),
+ target)
+ break
+
+ }
+
+ case INLINEFUNC_expr_implies_expr:
+ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer,
+ Xsqlite3ExprImpliesExpr(tls, pParse, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr, (*ExprList_item)(unsafe.Pointer(pFarg+8+1*32)).FpExpr, -1),
+ target)
+ break
+
+ }
+
+ case INLINEFUNC_implies_nonnull_row:
+ {
+ var pA1 uintptr
+
+ pA1 = (*ExprList_item)(unsafe.Pointer(pFarg + 8 + 1*32)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pA1)).Fop) == TK_COLUMN {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer,
+ Xsqlite3ExprImpliesNonNullRow(tls, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr, (*Expr)(unsafe.Pointer(pA1)).FiTable),
+ target)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, target)
+ }
+ break
+
+ }
+
+ case INLINEFUNC_affinity:
+ {
+ *(*[6]uintptr)(unsafe.Pointer(bp + 72)) = [6]uintptr{ts + 8403, ts + 8408, ts + 8413, ts + 6594,
+ ts + 6589, ts + 8421}
+ var aff int8
+
+ aff = Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr)
+
+ Xsqlite3VdbeLoadString(tls, v, target,
+ func() uintptr {
+ if int32(aff) <= SQLITE_AFF_NONE {
+ return ts + 8429
+ }
+ return *(*uintptr)(unsafe.Pointer(bp + 72 + uintptr(int32(aff)-SQLITE_AFF_BLOB)*8))
+ }())
+ break
+
+ }
+ }
+ return target
+}
+
+func sqlite3IndexedExprLookup(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) int32 {
+ var p uintptr
+ var v uintptr
+ for p = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr; p != 0; p = (*IndexedExpr)(unsafe.Pointer(p)).FpIENext {
+ var iDataCur int32 = (*IndexedExpr)(unsafe.Pointer(p)).FiDataCur
+ if iDataCur < 0 {
+ continue
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FiSelfTab != 0 {
+ if (*IndexedExpr)(unsafe.Pointer(p)).FiDataCur != (*Parse)(unsafe.Pointer(pParse)).FiSelfTab-1 {
+ continue
+ }
+ iDataCur = -1
+ }
+ if Xsqlite3ExprCompare(tls, uintptr(0), pExpr, (*IndexedExpr)(unsafe.Pointer(p)).FpExpr, iDataCur) != 0 {
+ continue
+ }
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if (*IndexedExpr)(unsafe.Pointer(p)).FbMaybeNullRow != 0 {
+ var addr int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp3(tls, v, OP_IfNullRow, (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur, addr+3, target)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur, (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCol, target)
+
+ Xsqlite3VdbeGoto(tls, v, 0)
+ p = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr
+ (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr = uintptr(0)
+ Xsqlite3ExprCode(tls, pParse, pExpr, target)
+ (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr = p
+ Xsqlite3VdbeJumpHere(tls, v, addr+2)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur, (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCol, target)
+
+ }
+ return target
+ }
+ return -1
+}
+
+// Generate code into the current Vdbe to evaluate the given
+// expression. Attempt to store the results in register "target".
+// Return the register where results are stored.
+//
+// With this routine, there is no guarantee that results will
+// be stored in target. The result might be stored in some other
+// register if it is convenient to do so. The calling function
+// must check the return code and move the results to the desired
+// register.
+func Xsqlite3ExprCodeTarget(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) int32 {
+ bp := tls.Alloc(192)
+ defer tls.Free(192)
+
+ var v uintptr
+ var op int32
+ var inReg int32
+
+ var r1 int32
+ var r2 int32
+
+ var p5 int32
+ var pTab uintptr
+ var pAggInfo uintptr
+ var pCol uintptr
+
+ var aff int32
+
+ var pCol1 uintptr
+ var pTab1 uintptr
+ var iSrc int32
+ var iCol int32
+ var iTab int32
+ var iReg int32
+ var n int32
+ var z uintptr
+ var zBlob uintptr
+ var z1 uintptr
+ var pLeft uintptr
+ var pLeft1 uintptr
+ var isTrue int32
+ var bNormal int32
+ var addr int32
+ var pInfo uintptr
+ var exprOp U8
+ var pFarg uintptr
+ var nFarg int32
+ var pDef uintptr
+ var zId uintptr
+ var constMask U32
+ var i int32
+ var db uintptr
+ var enc U8
+ var pColl uintptr
+ var nCol int32
+ var n1 int32
+ var pLeft2 uintptr
+ var destIfFalse int32
+ var destIfNull int32
+
+ var pTab2 uintptr
+ var iCol1 int32
+ var p1 int32
+ var addrINR int32
+ var okConstFactor U8
+ var pAggInfo1 uintptr
+ var endLabel int32
+ var nextCase int32
+ var nExpr int32
+ var i1 int32
+ var pEList uintptr
+ var aListelem uintptr
+
+ var pX uintptr
+ var pTest uintptr
+ var pDel uintptr
+ var db1 uintptr
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ inReg = target
+ *(*int32)(unsafe.Pointer(bp + 40)) = 0
+ *(*int32)(unsafe.Pointer(bp + 44)) = 0
+ p5 = 0
+
+expr_code_doover:
+ if !(pExpr == uintptr(0)) {
+ goto __1
+ }
+ op = TK_NULL
+ goto __2
+__1:
+ if !((*Parse)(unsafe.Pointer(pParse)).FpIdxEpr != uintptr(0) &&
+ !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Leaf) != U32(0)) &&
+ libc.AssignInt32(&r1, sqlite3IndexedExprLookup(tls, pParse, pExpr, target)) >= 0) {
+ goto __3
+ }
+ return r1
+ goto __4
+__3:
+ ;
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+__4:
+ ;
+__2:
+ ;
+ switch op {
+ case TK_AGG_COLUMN:
+ goto __6
+ case TK_COLUMN:
+ goto __7
+ case TK_INTEGER:
+ goto __8
+ case TK_TRUEFALSE:
+ goto __9
+ case TK_FLOAT:
+ goto __10
+ case TK_STRING:
+ goto __11
+ default:
+ goto __12
+ case TK_BLOB:
+ goto __13
+ case TK_VARIABLE:
+ goto __14
+ case TK_REGISTER:
+ goto __15
+ case TK_CAST:
+ goto __16
+ case TK_IS:
+ goto __17
+ case TK_ISNOT:
+ goto __18
+
+ case TK_LT:
+ goto __19
+ case TK_LE:
+ goto __20
+ case TK_GT:
+ goto __21
+ case TK_GE:
+ goto __22
+ case TK_NE:
+ goto __23
+ case TK_EQ:
+ goto __24
+ case TK_AND:
+ goto __25
+ case TK_OR:
+ goto __26
+ case TK_PLUS:
+ goto __27
+ case TK_STAR:
+ goto __28
+ case TK_MINUS:
+ goto __29
+ case TK_REM:
+ goto __30
+ case TK_BITAND:
+ goto __31
+ case TK_BITOR:
+ goto __32
+ case TK_SLASH:
+ goto __33
+ case TK_LSHIFT:
+ goto __34
+ case TK_RSHIFT:
+ goto __35
+ case TK_CONCAT:
+ goto __36
+ case TK_UMINUS:
+ goto __37
+ case TK_BITNOT:
+ goto __38
+ case TK_NOT:
+ goto __39
+ case TK_TRUTH:
+ goto __40
+ case TK_ISNULL:
+ goto __41
+ case TK_NOTNULL:
+ goto __42
+ case TK_AGG_FUNCTION:
+ goto __43
+ case TK_FUNCTION:
+ goto __44
+ case TK_EXISTS:
+ goto __45
+ case TK_SELECT:
+ goto __46
+ case TK_SELECT_COLUMN:
+ goto __47
+ case TK_IN:
+ goto __48
+
+ case TK_BETWEEN:
+ goto __49
+ case TK_COLLATE:
+ goto __50
+ case TK_SPAN:
+ goto __51
+ case TK_UPLUS:
+ goto __52
+
+ case TK_TRIGGER:
+ goto __53
+
+ case TK_VECTOR:
+ goto __54
+
+ case TK_IF_NULL_ROW:
+ goto __55
+
+ case TK_CASE:
+ goto __56
+ case TK_RAISE:
+ goto __57
+ }
+ goto __5
+__6:
+ pAggInfo = (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo
+
+ pCol = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr((*Expr)(unsafe.Pointer(pExpr)).FiAgg)*24
+ if !!(int32((*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode) != 0) {
+ goto __58
+ }
+ return func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg + int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg)
+ }()
+ goto __59
+__58:
+ if !((*AggInfo)(unsafe.Pointer(pAggInfo)).FuseSortingIdx != 0) {
+ goto __60
+ }
+ pTab = (*AggInfo_col)(unsafe.Pointer(pCol)).FpTab
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdxPTab,
+ int32((*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn), target)
+ if !(pTab == uintptr(0)) {
+ goto __62
+ }
+
+ goto __63
+__62:
+ if !(int32((*AggInfo_col)(unsafe.Pointer(pCol)).FiColumn) < 0) {
+ goto __64
+ }
+
+ goto __65
+__64:
+ ;
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*AggInfo_col)(unsafe.Pointer(pCol)).FiColumn)*24)).Faffinity) == SQLITE_AFF_REAL) {
+ goto __66
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, target)
+__66:
+ ;
+__65:
+ ;
+__63:
+ ;
+ return target
+ goto __61
+__60:
+ if !(*(*uintptr)(unsafe.Pointer(pExpr + 64)) == uintptr(0)) {
+ goto __67
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*Expr)(unsafe.Pointer(pExpr)).FiTable, int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn), target)
+ return target
+__67:
+ ;
+__61:
+ ;
+__59:
+ ;
+__7:
+ iTab = (*Expr)(unsafe.Pointer(pExpr)).FiTable
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_FixedCol) != U32(0)) {
+ goto __68
+ }
+ iReg = Xsqlite3ExprCodeTarget(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, target)
+
+ aff = int32(Xsqlite3TableColumnAffinity(tls, *(*uintptr)(unsafe.Pointer(pExpr + 64)), int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)))
+ if !(aff > SQLITE_AFF_BLOB) {
+ goto __69
+ }
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, iReg, 1, 0,
+ uintptr(unsafe.Pointer(&zAff))+uintptr((aff-'B')*2), -1)
+__69:
+ ;
+ return iReg
+__68:
+ ;
+ if !(iTab < 0) {
+ goto __70
+ }
+ if !((*Parse)(unsafe.Pointer(pParse)).FiSelfTab < 0) {
+ goto __71
+ }
+ iCol = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+
+ pTab1 = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+
+ if !(iCol < 0) {
+ goto __73
+ }
+ return -1 - (*Parse)(unsafe.Pointer(pParse)).FiSelfTab
+__73:
+ ;
+ pCol1 = (*Table)(unsafe.Pointer(pTab1)).FaCol + uintptr(iCol)*24
+
+ iSrc = int32(Xsqlite3TableColumnToStorage(tls, pTab1, int16(iCol))) - (*Parse)(unsafe.Pointer(pParse)).FiSelfTab
+ if !(int32((*Column)(unsafe.Pointer(pCol1)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __74
+ }
+ if !(int32((*Column)(unsafe.Pointer(pCol1)).FcolFlags)&COLFLAG_BUSY != 0) {
+ goto __76
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+8373,
+ libc.VaList(bp, (*Column)(unsafe.Pointer(pCol1)).FzCnName))
+ return 0
+__76:
+ ;
+ *(*U16)(unsafe.Pointer(pCol1 + 16)) |= U16(COLFLAG_BUSY)
+ if !(int32((*Column)(unsafe.Pointer(pCol1)).FcolFlags)&COLFLAG_NOTAVAIL != 0) {
+ goto __77
+ }
+ Xsqlite3ExprCodeGeneratedColumn(tls, pParse, pTab1, pCol1, iSrc)
+__77:
+ ;
+ *(*U16)(unsafe.Pointer(pCol1 + 16)) &= libc.Uint16FromInt32(libc.CplInt32(COLFLAG_BUSY | COLFLAG_NOTAVAIL))
+ return iSrc
+ goto __75
+__74:
+ if !(int32((*Column)(unsafe.Pointer(pCol1)).Faffinity) == SQLITE_AFF_REAL) {
+ goto __78
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, iSrc, target)
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, target)
+ return target
+ goto __79
+__78:
+ return iSrc
+__79:
+ ;
+__75:
+ ;
+ goto __72
+__71:
+ iTab = (*Parse)(unsafe.Pointer(pParse)).FiSelfTab - 1
+__72:
+ ;
+__70:
+ ;
+ iReg = Xsqlite3ExprCodeGetColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 64)),
+ int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn), iTab, target,
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2)
+ return iReg
+
+__8:
+ codeInteger(tls, pParse, pExpr, 0, target)
+ return target
+
+__9:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, Xsqlite3ExprTruthValue(tls, pExpr), target)
+ return target
+
+__10:
+ ;
+ codeReal(tls, v, *(*uintptr)(unsafe.Pointer(pExpr + 8)), 0, target)
+ return target
+
+__11:
+ ;
+ Xsqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8)))
+ return target
+
+__12:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, target)
+ return target
+
+__13:
+ ;
+ z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + 2
+ n = Xsqlite3Strlen30(tls, z) - 1
+
+ zBlob = Xsqlite3HexToBlob(tls, Xsqlite3VdbeDb(tls, v), z, n)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Blob, n/2, target, 0, zBlob, -6)
+ return target
+
+__14:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Variable, int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn), target)
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 8)) + 1))) != 0) {
+ goto __80
+ }
+ z1 = Xsqlite3VListNumToName(tls, (*Parse)(unsafe.Pointer(pParse)).FpVList, int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn))
+
+ *(*VList)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).FpVList)) = 0
+ Xsqlite3VdbeAppendP4(tls, v, z1, -1)
+__80:
+ ;
+ return target
+
+__15:
+ return (*Expr)(unsafe.Pointer(pExpr)).FiTable
+
+__16:
+ inReg = Xsqlite3ExprCodeTarget(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, target)
+ if !(inReg != target) {
+ goto __81
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, inReg, target)
+ inReg = target
+__81:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Cast, target,
+ int32(Xsqlite3AffinityType(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), uintptr(0))))
+ return inReg
+
+__17:
+__18:
+ if op == TK_IS {
+ op = TK_EQ
+ } else {
+ op = TK_NE
+ }
+ p5 = SQLITE_NULLEQ
+
+__19:
+__20:
+__21:
+__22:
+__23:
+__24:
+ pLeft = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ if !(Xsqlite3ExprIsVector(tls, pLeft) != 0) {
+ goto __82
+ }
+ codeVectorCompare(tls, pParse, pExpr, target, uint8(op), uint8(p5))
+ goto __83
+__82:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, pLeft, bp+40)
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, bp+44)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, inReg)
+ codeCompare(tls, pParse, pLeft, (*Expr)(unsafe.Pointer(pExpr)).FpRight, op, r1, r2,
+ Xsqlite3VdbeCurrentAddr(tls, v)+2, p5,
+ libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Commuted) != U32(0)))
+
+ if !(p5 == SQLITE_NULLEQ) {
+ goto __84
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, inReg)
+ goto __85
+__84:
+ Xsqlite3VdbeAddOp3(tls, v, OP_ZeroOrNull, r1, inReg, r2)
+__85:
+ ;
+__83:
+ ;
+ goto __5
+
+__25:
+__26:
+__27:
+__28:
+__29:
+__30:
+__31:
+__32:
+__33:
+__34:
+__35:
+__36:
+ ;
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp+40)
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, bp+44)
+ Xsqlite3VdbeAddOp3(tls, v, op, r2, r1, target)
+
+ goto __5
+
+__37:
+ pLeft1 = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+
+ if !(int32((*Expr)(unsafe.Pointer(pLeft1)).Fop) == TK_INTEGER) {
+ goto __86
+ }
+ codeInteger(tls, pParse, pLeft1, 1, target)
+ return target
+ goto __87
+__86:
+ if !(int32((*Expr)(unsafe.Pointer(pLeft1)).Fop) == TK_FLOAT) {
+ goto __88
+ }
+
+ codeReal(tls, v, *(*uintptr)(unsafe.Pointer(pLeft1 + 8)), 1, target)
+ return target
+ goto __89
+__88:
+ (*Expr)(unsafe.Pointer(bp + 48)).Fop = U8(TK_INTEGER)
+ (*Expr)(unsafe.Pointer(bp + 48)).Fflags = U32(EP_IntValue | EP_TokenOnly)
+ *(*int32)(unsafe.Pointer(bp + 48 + 8)) = 0
+
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, bp+48, bp+40)
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp+44)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Subtract, r2, r1, target)
+
+__89:
+ ;
+__87:
+ ;
+ goto __5
+
+__38:
+__39:
+ ;
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp+40)
+
+ Xsqlite3VdbeAddOp2(tls, v, op, r1, inReg)
+ goto __5
+
+__40:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp+40)
+
+ isTrue = Xsqlite3ExprTruthValue(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ bNormal = libc.Bool32(int32((*Expr)(unsafe.Pointer(pExpr)).Fop2) == TK_IS)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IsTrue, r1, inReg, libc.BoolInt32(!(isTrue != 0)), isTrue^bNormal)
+ goto __5
+
+__41:
+__42:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, target)
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp+40)
+
+ addr = Xsqlite3VdbeAddOp1(tls, v, op, r1)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, target)
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ goto __5
+
+__43:
+ pInfo = (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo
+ if !(pInfo == uintptr(0) ||
+ int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg) < 0 ||
+ int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg) >= (*AggInfo)(unsafe.Pointer(pInfo)).FnFunc) {
+ goto __90
+ }
+
+ Xsqlite3ErrorMsg(tls, pParse, ts+8434, libc.VaList(bp+8, pExpr))
+ goto __91
+__90:
+ return func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*AggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg)
+ }()
+__91:
+ ;
+ goto __5
+
+__44:
+ constMask = U32(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ enc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ pColl = uintptr(0)
+
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0)) {
+ goto __92
+ }
+ return (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult
+__92:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && Xsqlite3ExprIsConstantNotJoin(tls, pExpr) != 0) {
+ goto __93
+ }
+
+ return Xsqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -1)
+__93:
+ ;
+ pFarg = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ if pFarg != 0 {
+ nFarg = (*ExprList)(unsafe.Pointer(pFarg)).FnExpr
+ } else {
+ nFarg = 0
+ }
+
+ zId = *(*uintptr)(unsafe.Pointer(pExpr + 8))
+ pDef = Xsqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0))
+ if !(pDef == uintptr(0) || (*FuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0)) {
+ goto __94
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+8461, libc.VaList(bp+16, pExpr))
+ goto __5
+__94:
+ ;
+ if !((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_INLINE) != 0) {
+ goto __95
+ }
+
+ return exprCodeInlineFunction(tls, pParse, pFarg,
+ int32((*FuncDef)(unsafe.Pointer(pDef)).FpUserData), target)
+ goto __96
+__95:
+ if !((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE) != 0) {
+ goto __97
+ }
+ Xsqlite3ExprFunctionUsable(tls, pParse, pExpr, pDef)
+__97:
+ ;
+__96:
+ ;
+ i = 0
+__98:
+ if !(i < nFarg) {
+ goto __100
+ }
+ if !(i < 32 && Xsqlite3ExprIsConstant(tls, (*ExprList_item)(unsafe.Pointer(pFarg+8+uintptr(i)*32)).FpExpr) != 0) {
+ goto __101
+ }
+
+ constMask = constMask | uint32(1)<<i
+__101:
+ ;
+ if !((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != U32(0) && !(pColl != 0)) {
+ goto __102
+ }
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pFarg+8+uintptr(i)*32)).FpExpr)
+__102:
+ ;
+ goto __99
+__99:
+ i++
+ goto __98
+ goto __100
+__100:
+ ;
+ if !(pFarg != 0) {
+ goto __103
+ }
+ if !(constMask != 0) {
+ goto __105
+ }
+ r1 = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nFarg
+ goto __106
+__105:
+ r1 = Xsqlite3GetTempRange(tls, pParse, nFarg)
+__106:
+ ;
+ if !((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF) != U32(0)) {
+ goto __107
+ }
+
+ exprOp = (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pFarg + 8)).FpExpr)).Fop
+ if !(int32(exprOp) == TK_COLUMN || int32(exprOp) == TK_AGG_COLUMN) {
+ goto __108
+ }
+
+ (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pFarg + 8)).FpExpr)).Fop2 = U8((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags & U32(OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))
+__108:
+ ;
+__107:
+ ;
+ Xsqlite3ExprCodeExprList(tls, pParse, pFarg, r1, 0,
+ uint8(SQLITE_ECEL_DUP|SQLITE_ECEL_FACTOR))
+ goto __104
+__103:
+ r1 = 0
+__104:
+ ;
+ if !(nFarg >= 2 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_InfixFunc) != U32(0)) {
+ goto __109
+ }
+ pDef = Xsqlite3VtabOverloadFunction(tls, db, pDef, nFarg, (*ExprList_item)(unsafe.Pointer(pFarg+8+1*32)).FpExpr)
+ goto __110
+__109:
+ if !(nFarg > 0) {
+ goto __111
+ }
+ pDef = Xsqlite3VtabOverloadFunction(tls, db, pDef, nFarg, (*ExprList_item)(unsafe.Pointer(pFarg+8)).FpExpr)
+__111:
+ ;
+__110:
+ ;
+ if !((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0) {
+ goto __112
+ }
+ if !!(pColl != 0) {
+ goto __113
+ }
+ pColl = (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl
+__113:
+ ;
+ Xsqlite3VdbeAddOp4(tls, v, OP_CollSeq, 0, 0, 0, pColl, -2)
+__112:
+ ;
+ Xsqlite3VdbeAddFunctionCall(tls, pParse, int32(constMask), r1, target, nFarg,
+ pDef, int32((*Expr)(unsafe.Pointer(pExpr)).Fop2))
+ if !(nFarg != 0) {
+ goto __114
+ }
+ if !(constMask == U32(0)) {
+ goto __115
+ }
+ Xsqlite3ReleaseTempRange(tls, pParse, r1, nFarg)
+ goto __116
+__115:
+ ;
+__116:
+ ;
+__114:
+ ;
+ return target
+
+__45:
+__46:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0) {
+ goto __117
+ }
+ return 0
+ goto __118
+__117:
+ if !(op == TK_SELECT &&
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) &&
+ libc.AssignInt32(&nCol, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList)).FnExpr) != 1) {
+ goto __119
+ }
+ Xsqlite3SubselectError(tls, pParse, nCol, 1)
+ goto __120
+__119:
+ return Xsqlite3CodeSubselect(tls, pParse, pExpr)
+__120:
+ ;
+__118:
+ ;
+ goto __5
+
+__47:
+ pLeft2 = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ if !((*Expr)(unsafe.Pointer(pLeft2)).FiTable == 0 || int32((*Parse)(unsafe.Pointer(pParse)).FwithinRJSubrtn) > int32((*Expr)(unsafe.Pointer(pLeft2)).Fop2)) {
+ goto __121
+ }
+ (*Expr)(unsafe.Pointer(pLeft2)).FiTable = Xsqlite3CodeSubselect(tls, pParse, pLeft2)
+ (*Expr)(unsafe.Pointer(pLeft2)).Fop2 = (*Parse)(unsafe.Pointer(pParse)).FwithinRJSubrtn
+__121:
+ ;
+ n1 = Xsqlite3ExprVectorSize(tls, pLeft2)
+ if !((*Expr)(unsafe.Pointer(pExpr)).FiTable != n1) {
+ goto __122
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+8055,
+ libc.VaList(bp+24, (*Expr)(unsafe.Pointer(pExpr)).FiTable, n1))
+__122:
+ ;
+ return (*Expr)(unsafe.Pointer(pLeft2)).FiTable + int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+
+__48:
+ destIfFalse = Xsqlite3VdbeMakeLabel(tls, pParse)
+ destIfNull = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, target)
+ sqlite3ExprCodeIN(tls, pParse, pExpr, destIfFalse, destIfNull)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, target)
+ Xsqlite3VdbeResolveLabel(tls, v, destIfFalse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, target, 0)
+ Xsqlite3VdbeResolveLabel(tls, v, destIfNull)
+ return target
+
+__49:
+ exprCodeBetween(tls, pParse, pExpr, target, uintptr(0), 0)
+ return target
+
+__50:
+ if !(!((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Collate) != U32(0)) &&
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft != 0 &&
+ int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_FUNCTION) {
+ goto __123
+ }
+ inReg = Xsqlite3ExprCodeTarget(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, target)
+ if !(inReg != target) {
+ goto __125
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, inReg, target)
+ inReg = target
+__125:
+ ;
+ Xsqlite3VdbeAddOp1(tls, v, OP_ClrSubtype, inReg)
+ return inReg
+ goto __124
+__123:
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ goto expr_code_doover
+__124:
+ ;
+__51:
+__52:
+ pExpr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ goto expr_code_doover
+
+__53:
+ ;
+ pTab2 = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ iCol1 = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ p1 = (*Expr)(unsafe.Pointer(pExpr)).FiTable*(int32((*Table)(unsafe.Pointer(pTab2)).FnCol)+1) + 1 +
+ int32(Xsqlite3TableColumnToStorage(tls, pTab2, int16(iCol1)))
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Param, p1, target)
+
+ if !(iCol1 >= 0 && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab2)).FaCol+uintptr(iCol1)*24)).Faffinity) == SQLITE_AFF_REAL) {
+ goto __126
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, target)
+__126:
+ ;
+ goto __5
+
+__54:
+ Xsqlite3ErrorMsg(tls, pParse, ts+6936, 0)
+ goto __5
+
+__55:
+ okConstFactor = (*Parse)(unsafe.Pointer(pParse)).FokConstFactor
+ pAggInfo1 = (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo
+ if !(pAggInfo1 != 0) {
+ goto __127
+ }
+
+ if !!(int32((*AggInfo)(unsafe.Pointer(pAggInfo1)).FdirectMode) != 0) {
+ goto __128
+ }
+ inReg = func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pAggInfo1)).FiFirstReg + int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg)
+ }()
+ goto __5
+__128:
+ ;
+ if !((*AggInfo)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpAggInfo)).FuseSortingIdx != 0) {
+ goto __129
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*AggInfo)(unsafe.Pointer(pAggInfo1)).FsortingIdxPTab,
+ int32((*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo1)).FaCol+uintptr((*Expr)(unsafe.Pointer(pExpr)).FiAgg)*24)).FiSorterColumn),
+ target)
+ inReg = target
+ goto __5
+__129:
+ ;
+__127:
+ ;
+ addrINR = Xsqlite3VdbeAddOp1(tls, v, OP_IfNullRow, (*Expr)(unsafe.Pointer(pExpr)).FiTable)
+
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(0)
+ inReg = Xsqlite3ExprCodeTarget(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, target)
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = okConstFactor
+ Xsqlite3VdbeJumpHere(tls, v, addrINR)
+ Xsqlite3VdbeChangeP3(tls, v, addrINR, inReg)
+ goto __5
+
+__56:
+ pTest = uintptr(0)
+ pDel = uintptr(0)
+ db1 = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ pEList = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ aListelem = pEList + 8
+ nExpr = (*ExprList)(unsafe.Pointer(pEList)).FnExpr
+ endLabel = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if !(libc.AssignUintptr(&pX, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) != uintptr(0)) {
+ goto __130
+ }
+ pDel = Xsqlite3ExprDup(tls, db1, pX, 0)
+ if !((*Sqlite3)(unsafe.Pointer(db1)).FmallocFailed != 0) {
+ goto __131
+ }
+ Xsqlite3ExprDelete(tls, db1, pDel)
+ goto __5
+__131:
+ ;
+ exprToRegister(tls, pDel, exprCodeVector(tls, pParse, pDel, bp+40))
+
+ libc.X__builtin___memset_chk(tls, bp+120, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp+120, 0))
+ (*Expr)(unsafe.Pointer(bp + 120)).Fop = U8(TK_EQ)
+ (*Expr)(unsafe.Pointer(bp + 120)).FpLeft = pDel
+ pTest = bp + 120
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = 0
+__130:
+ ;
+ i1 = 0
+__132:
+ if !(i1 < nExpr-1) {
+ goto __134
+ }
+ if !(pX != 0) {
+ goto __135
+ }
+
+ (*Expr)(unsafe.Pointer(bp + 120)).FpRight = (*ExprList_item)(unsafe.Pointer(aListelem + uintptr(i1)*32)).FpExpr
+ goto __136
+__135:
+ pTest = (*ExprList_item)(unsafe.Pointer(aListelem + uintptr(i1)*32)).FpExpr
+__136:
+ ;
+ nextCase = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ Xsqlite3ExprIfFalse(tls, pParse, pTest, nextCase, SQLITE_JUMPIFNULL)
+
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(aListelem+uintptr(i1+1)*32)).FpExpr, target)
+ Xsqlite3VdbeGoto(tls, v, endLabel)
+ Xsqlite3VdbeResolveLabel(tls, v, nextCase)
+ goto __133
+__133:
+ i1 = i1 + 2
+ goto __132
+ goto __134
+__134:
+ ;
+ if !(nExpr&1 != 0) {
+ goto __137
+ }
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(nExpr-1)*32)).FpExpr, target)
+ goto __138
+__137:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, target)
+__138:
+ ;
+ Xsqlite3ExprDelete(tls, db1, pDel)
+ setDoNotMergeFlagOnCopy(tls, v)
+ Xsqlite3VdbeResolveLabel(tls, v, endLabel)
+ goto __5
+
+__57:
+ ;
+ if !(!(int32((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab) != 0) && !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0)) {
+ goto __139
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+8485, 0)
+ return 0
+__139:
+ ;
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).FaffExpr) == OE_Abort) {
+ goto __140
+ }
+ Xsqlite3MayAbort(tls, pParse)
+__140:
+ ;
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).FaffExpr) == OE_Ignore) {
+ goto __141
+ }
+ Xsqlite3VdbeAddOp4(tls,
+ v, OP_Halt, SQLITE_OK, OE_Ignore, 0, *(*uintptr)(unsafe.Pointer(pExpr + 8)), 0)
+
+ goto __142
+__141:
+ Xsqlite3HaltConstraint(tls, pParse,
+ func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab != 0 {
+ return SQLITE_CONSTRAINT | int32(7)<<8
+ }
+ return SQLITE_ERROR
+ }(),
+ int32((*Expr)(unsafe.Pointer(pExpr)).FaffExpr), *(*uintptr)(unsafe.Pointer(pExpr + 8)), int8(0), uint8(0))
+__142:
+ ;
+ goto __5
+
+__5:
+ ;
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 40)))
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 44)))
+ return inReg
+}
+
+var zAff = *(*[10]int8)(unsafe.Pointer(ts + 8535))
+
+// Generate code that will evaluate expression pExpr just one time
+// per prepared statement execution.
+//
+// If the expression uses functions (that might throw an exception) then
+// guard them with an OP_Once opcode to ensure that the code is only executed
+// once. If no functions are involved, then factor the code out and put it at
+// the end of the prepared statement in the initialization section.
+//
+// If regDest>=0 then the result is always stored in that register and the
+// result is not reusable. If regDest<0 then this routine is free to
+// store the value whereever it wants. The register where the expression
+// is stored is returned. When regDest<0, two identical expressions might
+// code to the same register, if they do not contain function calls and hence
+// are factored out into the initialization section at the end of the
+// prepared statement.
+func Xsqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, regDest int32) int32 {
+ var p uintptr
+
+ p = (*Parse)(unsafe.Pointer(pParse)).FpConstExpr
+ if regDest < 0 && p != 0 {
+ var pItem uintptr
+ var i int32
+ pItem = p + 8
+ i = (*ExprList)(unsafe.Pointer(p)).FnExpr
+ __1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 16 + 4))&0x8>>3)) != 0 &&
+ Xsqlite3ExprCompare(tls, uintptr(0), (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr, pExpr, -1) == 0 {
+ return *(*int32)(unsafe.Pointer(pItem + 24))
+ }
+
+ }
+ goto __2
+ __2:
+ pItem += 32
+ i--
+ goto __1
+ goto __3
+ __3:
+ }
+ pExpr = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)
+ if pExpr != uintptr(0) && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_HasFunc) != U32(0) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var addr int32
+
+ addr = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(0)
+ if !(int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed) != 0) {
+ if regDest < 0 {
+ regDest = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+ Xsqlite3ExprCode(tls, pParse, pExpr, regDest)
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(1)
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ } else {
+ p = Xsqlite3ExprListAppend(tls, pParse, p, pExpr)
+ if p != 0 {
+ var pItem uintptr = p + 8 + uintptr((*ExprList)(unsafe.Pointer(p)).FnExpr-1)*32
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(libc.Bool32(regDest < 0)), 3, 0x8)
+ if regDest < 0 {
+ regDest = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+ *(*int32)(unsafe.Pointer(pItem + 24)) = regDest
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FpConstExpr = p
+ }
+ return regDest
+}
+
+// Generate code to evaluate an expression and store the results
+// into a register. Return the register number where the results
+// are stored.
+//
+// If the register is a temporary register that can be deallocated,
+// then write its number into *pReg. If the result register is not
+// a temporary, then set *pReg to zero.
+//
+// If pExpr is a constant, then this routine might generate this
+// code to fill the register in the initialization section of the
+// VDBE program, in order to factor it out of the evaluation loop.
+func Xsqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uintptr) int32 {
+ var r2 int32
+ pExpr = Xsqlite3ExprSkipCollateAndLikely(tls, pExpr)
+ if (*Parse)(unsafe.Pointer(pParse)).FokConstFactor != 0 &&
+ pExpr != uintptr(0) &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_REGISTER &&
+ Xsqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 {
+ *(*int32)(unsafe.Pointer(pReg)) = 0
+ r2 = Xsqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -1)
+ } else {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ r2 = Xsqlite3ExprCodeTarget(tls, pParse, pExpr, r1)
+ if r2 == r1 {
+ *(*int32)(unsafe.Pointer(pReg)) = r1
+ } else {
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ *(*int32)(unsafe.Pointer(pReg)) = 0
+ }
+ }
+ return r2
+}
+
+// Generate code that will evaluate expression pExpr and store the
+// results in register target. The results are guaranteed to appear
+// in register target.
+func Xsqlite3ExprCode(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) {
+ var inReg int32
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpVdbe == uintptr(0) {
+ return
+ }
+ inReg = Xsqlite3ExprCodeTarget(tls, pParse, pExpr, target)
+ if inReg != target {
+ var op U8
+ if pExpr != 0 && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Subquery) != U32(0) {
+ op = U8(OP_Copy)
+ } else {
+ op = U8(OP_SCopy)
+ }
+ Xsqlite3VdbeAddOp2(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, int32(op), inReg, target)
+ }
+}
+
+// Make a transient copy of expression pExpr and then code it using
+// sqlite3ExprCode(). This routine works just like sqlite3ExprCode()
+// except that the input expression is guaranteed to be unchanged.
+func Xsqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pExpr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ Xsqlite3ExprCode(tls, pParse, pExpr, target)
+ }
+ Xsqlite3ExprDelete(tls, db, pExpr)
+}
+
+// Generate code that will evaluate expression pExpr and store the
+// results in register target. The results are guaranteed to appear
+// in register target. If the expression is constant, then this routine
+// might choose to code the expression at initialization time.
+func Xsqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) {
+ if (*Parse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && Xsqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 {
+ Xsqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target)
+ } else {
+ Xsqlite3ExprCodeCopy(tls, pParse, pExpr, target)
+ }
+}
+
+// Generate code that pushes the value of every element of the given
+// expression list into a sequence of registers beginning at target.
+//
+// Return the number of elements evaluated. The number returned will
+// usually be pList->nExpr but might be reduced if SQLITE_ECEL_OMITREF
+// is defined.
+//
+// The SQLITE_ECEL_DUP flag prevents the arguments from being
+// filled using OP_SCopy. OP_Copy must be used instead.
+//
+// The SQLITE_ECEL_FACTOR argument allows constant arguments to be
+// factored out into initialization code.
+//
+// The SQLITE_ECEL_REF flag means that expressions in the list with
+// ExprList.a[].u.x.iOrderByCol>0 have already been evaluated and stored
+// in registers at srcReg, and so the value can be copied from there.
+// If SQLITE_ECEL_OMITREF is also set, then the values with u.x.iOrderByCol>0
+// are simply omitted rather than being copied from srcReg.
+func Xsqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, target int32, srcReg int32, flags U8) int32 {
+ var pItem uintptr
+ var i int32
+ var j int32
+ var n int32
+ var copyOp U8
+ if int32(flags)&SQLITE_ECEL_DUP != 0 {
+ copyOp = uint8(OP_Copy)
+ } else {
+ copyOp = uint8(OP_SCopy)
+ }
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ n = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FokConstFactor) != 0) {
+ flags = libc.Uint8FromInt32(int32(flags) & libc.CplInt32(SQLITE_ECEL_FACTOR))
+ }
+ pItem = pList + 8
+ i = 0
+__1:
+ if !(i < n) {
+ goto __3
+ }
+ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr
+ if int32(flags)&SQLITE_ECEL_REF != 0 && libc.AssignInt32(&j, int32(*(*U16)(unsafe.Pointer(pItem + 24)))) > 0 {
+ if int32(flags)&SQLITE_ECEL_OMITREF != 0 {
+ i--
+ n--
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-1, target+i)
+ }
+ } else if int32(flags)&SQLITE_ECEL_FACTOR != 0 &&
+ Xsqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 {
+ Xsqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i)
+ } else {
+ var inReg int32 = Xsqlite3ExprCodeTarget(tls, pParse, pExpr, target+i)
+ if inReg != target+i {
+ var pOp uintptr
+ if int32(copyOp) == OP_Copy &&
+ int32((*VdbeOp)(unsafe.Pointer(libc.AssignUintptr(&pOp, Xsqlite3VdbeGetLastOp(tls, v)))).Fopcode) == OP_Copy &&
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1+(*VdbeOp)(unsafe.Pointer(pOp)).Fp3+1 == inReg &&
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2+(*VdbeOp)(unsafe.Pointer(pOp)).Fp3+1 == target+i &&
+ int32((*VdbeOp)(unsafe.Pointer(pOp)).Fp5) == 0 {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp3++
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, int32(copyOp), inReg, target+i)
+ }
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+__3:
+ ;
+ return n
+}
+
+func exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) {
+ bp := tls.Alloc(220)
+ defer tls.Free(220)
+
+ *(*int32)(unsafe.Pointer(bp + 216)) = 0
+ var pDel uintptr = uintptr(0)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+72, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp+72, 0))
+ libc.X__builtin___memset_chk(tls, bp+144, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp+144, 0))
+
+ pDel = Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, 0)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ (*Expr)(unsafe.Pointer(bp + 144)).Fop = U8(TK_AND)
+ (*Expr)(unsafe.Pointer(bp + 144)).FpLeft = bp
+ (*Expr)(unsafe.Pointer(bp + 144)).FpRight = bp + 72
+ (*Expr)(unsafe.Pointer(bp)).Fop = U8(TK_GE)
+ (*Expr)(unsafe.Pointer(bp)).FpLeft = pDel
+ (*Expr)(unsafe.Pointer(bp)).FpRight = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8)).FpExpr
+ (*Expr)(unsafe.Pointer(bp + 72)).Fop = U8(TK_LE)
+ (*Expr)(unsafe.Pointer(bp + 72)).FpLeft = pDel
+ (*Expr)(unsafe.Pointer(bp + 72)).FpRight = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32)).FpExpr
+ exprToRegister(tls, pDel, exprCodeVector(tls, pParse, pDel, bp+216))
+ if xJump != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xJump})).f(tls, pParse, bp+144, dest, jumpIfNull)
+ } else {
+ *(*U32)(unsafe.Pointer(pDel + 4)) |= U32(EP_OuterON)
+ Xsqlite3ExprCodeTarget(tls, pParse, bp+144, dest)
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 216)))
+ }
+ Xsqlite3ExprDelete(tls, db, pDel)
+
+}
+
+// Generate code for a boolean expression such that a jump is made
+// to the label "dest" if the expression is true but execution
+// continues straight thru if the expression is false.
+//
+// If the expression evaluates to NULL (neither true nor false), then
+// take the jump if the jumpIfNull flag is SQLITE_JUMPIFNULL.
+//
+// This code depends on the fact that certain token values (ex: TK_EQ)
+// are the same as opcode values (ex: OP_Eq) that implement the corresponding
+// operation. Special comments in vdbe.c and the mkopcodeh.awk script in
+// the make process cause these values to align. Assert()s in the code
+// below verify that the numbers are aligned correctly.
+func Xsqlite3ExprIfTrue(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr
+ var op int32
+
+ var r1 int32
+ var r2 int32
+ var d2 int32
+ var pAlt uintptr
+ var isNot int32
+ var isTrue int32
+ var destIfFalse int32
+ var destIfNull int32
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ op = 0
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+
+ if !(v == uintptr(0)) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(pExpr == uintptr(0)) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ switch op {
+ case TK_AND:
+ goto __4
+ case TK_OR:
+ goto __5
+ case TK_NOT:
+ goto __6
+ case TK_TRUTH:
+ goto __7
+ case TK_IS:
+ goto __8
+ case TK_ISNOT:
+ goto __9
+
+ case TK_LT:
+ goto __10
+ case TK_LE:
+ goto __11
+ case TK_GT:
+ goto __12
+ case TK_GE:
+ goto __13
+ case TK_NE:
+ goto __14
+ case TK_EQ:
+ goto __15
+ case TK_ISNULL:
+ goto __16
+ case TK_NOTNULL:
+ goto __17
+ case TK_BETWEEN:
+ goto __18
+ case TK_IN:
+ goto __19
+ default:
+ goto __20
+ }
+ goto __3
+__4:
+__5:
+ pAlt = Xsqlite3ExprSimplifiedAndOr(tls, pExpr)
+ if !(pAlt != pExpr) {
+ goto __21
+ }
+ Xsqlite3ExprIfTrue(tls, pParse, pAlt, dest, jumpIfNull)
+ goto __22
+__21:
+ if !(op == TK_AND) {
+ goto __23
+ }
+ d2 = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, d2,
+ jumpIfNull^SQLITE_JUMPIFNULL)
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, dest, jumpIfNull)
+ Xsqlite3VdbeResolveLabel(tls, v, d2)
+ goto __24
+__23:
+ ;
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, dest, jumpIfNull)
+__24:
+ ;
+__22:
+ ;
+ goto __3
+
+__6:
+ ;
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
+ goto __3
+
+__7:
+ ;
+ isNot = libc.Bool32(int32((*Expr)(unsafe.Pointer(pExpr)).Fop2) == TK_ISNOT)
+ isTrue = Xsqlite3ExprTruthValue(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+
+ if !(isTrue^isNot != 0) {
+ goto __25
+ }
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest,
+ func() int32 {
+ if isNot != 0 {
+ return SQLITE_JUMPIFNULL
+ }
+ return 0
+ }())
+ goto __26
+__25:
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest,
+ func() int32 {
+ if isNot != 0 {
+ return SQLITE_JUMPIFNULL
+ }
+ return 0
+ }())
+__26:
+ ;
+ goto __3
+
+__8:
+__9:
+ ;
+ if op == TK_IS {
+ op = TK_EQ
+ } else {
+ op = TK_NE
+ }
+ jumpIfNull = SQLITE_NULLEQ
+
+__10:
+__11:
+__12:
+__13:
+__14:
+__15:
+ if !(Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) != 0) {
+ goto __27
+ }
+ goto default_expr
+__27:
+ ;
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp)
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, bp+4)
+ codeCompare(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, (*Expr)(unsafe.Pointer(pExpr)).FpRight, op,
+ r1, r2, dest, jumpIfNull, libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Commuted) != U32(0)))
+
+ goto __3
+
+__16:
+__17:
+ ;
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp)
+ Xsqlite3VdbeTypeofColumn(tls, v, r1)
+ Xsqlite3VdbeAddOp2(tls, v, op, r1, dest)
+
+ goto __3
+
+__18:
+ ;
+ exprCodeBetween(tls, pParse, pExpr, dest, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, int32)
+ }{Xsqlite3ExprIfTrue})), jumpIfNull)
+ goto __3
+
+__19:
+ destIfFalse = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if jumpIfNull != 0 {
+ destIfNull = dest
+ } else {
+ destIfNull = destIfFalse
+ }
+ sqlite3ExprCodeIN(tls, pParse, pExpr, destIfFalse, destIfNull)
+ Xsqlite3VdbeGoto(tls, v, dest)
+ Xsqlite3VdbeResolveLabel(tls, v, destIfFalse)
+ goto __3
+
+__20:
+default_expr:
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_IsTrue) == U32(EP_IsTrue)) {
+ goto __28
+ }
+ Xsqlite3VdbeGoto(tls, v, dest)
+ goto __29
+__28:
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse)) {
+ goto __30
+ }
+
+ goto __31
+__30:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, pExpr, bp)
+ Xsqlite3VdbeAddOp3(tls, v, OP_If, r1, dest, libc.Bool32(jumpIfNull != 0))
+
+__31:
+ ;
+__29:
+ ;
+ goto __3
+
+__3:
+ ;
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp)))
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 4)))
+}
+
+// Generate code for a boolean expression such that a jump is made
+// to the label "dest" if the expression is false but execution
+// continues straight thru if the expression is true.
+//
+// If the expression evaluates to NULL (neither true nor false) then
+// jump if jumpIfNull is SQLITE_JUMPIFNULL or fall through if jumpIfNull
+// is 0.
+func Xsqlite3ExprIfFalse(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr
+ var op int32
+
+ var r1 int32
+ var r2 int32
+ var d2 int32
+ var pAlt uintptr
+ var isNot int32
+ var isTrue int32
+ var destIfNull int32
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ op = 0
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+
+ if !(v == uintptr(0)) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(pExpr == uintptr(0)) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop) + TK_ISNULL&1 ^ 1 - TK_ISNULL&1
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_AND:
+ goto __4
+ case TK_OR:
+ goto __5
+ case TK_NOT:
+ goto __6
+ case TK_TRUTH:
+ goto __7
+ case TK_IS:
+ goto __8
+ case TK_ISNOT:
+ goto __9
+
+ case TK_LT:
+ goto __10
+ case TK_LE:
+ goto __11
+ case TK_GT:
+ goto __12
+ case TK_GE:
+ goto __13
+ case TK_NE:
+ goto __14
+ case TK_EQ:
+ goto __15
+ case TK_ISNULL:
+ goto __16
+ case TK_NOTNULL:
+ goto __17
+ case TK_BETWEEN:
+ goto __18
+ case TK_IN:
+ goto __19
+ default:
+ goto __20
+ }
+ goto __3
+__4:
+__5:
+ pAlt = Xsqlite3ExprSimplifiedAndOr(tls, pExpr)
+ if !(pAlt != pExpr) {
+ goto __21
+ }
+ Xsqlite3ExprIfFalse(tls, pParse, pAlt, dest, jumpIfNull)
+ goto __22
+__21:
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AND) {
+ goto __23
+ }
+
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, dest, jumpIfNull)
+ goto __24
+__23:
+ d2 = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, d2,
+ jumpIfNull^SQLITE_JUMPIFNULL)
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, dest, jumpIfNull)
+ Xsqlite3VdbeResolveLabel(tls, v, d2)
+__24:
+ ;
+__22:
+ ;
+ goto __3
+
+__6:
+ ;
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest, jumpIfNull)
+ goto __3
+
+__7:
+ ;
+ isNot = libc.Bool32(int32((*Expr)(unsafe.Pointer(pExpr)).Fop2) == TK_ISNOT)
+ isTrue = Xsqlite3ExprTruthValue(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+
+ if !(isTrue^isNot != 0) {
+ goto __25
+ }
+
+ Xsqlite3ExprIfFalse(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest,
+ func() int32 {
+ if isNot != 0 {
+ return 0
+ }
+ return SQLITE_JUMPIFNULL
+ }())
+
+ goto __26
+__25:
+ Xsqlite3ExprIfTrue(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, dest,
+ func() int32 {
+ if isNot != 0 {
+ return 0
+ }
+ return SQLITE_JUMPIFNULL
+ }())
+__26:
+ ;
+ goto __3
+
+__8:
+__9:
+ ;
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IS {
+ op = TK_NE
+ } else {
+ op = TK_EQ
+ }
+ jumpIfNull = SQLITE_NULLEQ
+
+__10:
+__11:
+__12:
+__13:
+__14:
+__15:
+ if !(Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) != 0) {
+ goto __27
+ }
+ goto default_expr
+__27:
+ ;
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp)
+ r2 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, bp+4)
+ codeCompare(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, (*Expr)(unsafe.Pointer(pExpr)).FpRight, op,
+ r1, r2, dest, jumpIfNull, libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Commuted) != U32(0)))
+
+ goto __3
+
+__16:
+__17:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, bp)
+ Xsqlite3VdbeTypeofColumn(tls, v, r1)
+ Xsqlite3VdbeAddOp2(tls, v, op, r1, dest)
+
+ goto __3
+
+__18:
+ ;
+ exprCodeBetween(tls, pParse, pExpr, dest, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, int32)
+ }{Xsqlite3ExprIfFalse})), jumpIfNull)
+ goto __3
+
+__19:
+ if !(jumpIfNull != 0) {
+ goto __28
+ }
+ sqlite3ExprCodeIN(tls, pParse, pExpr, dest, dest)
+ goto __29
+__28:
+ destIfNull = Xsqlite3VdbeMakeLabel(tls, pParse)
+ sqlite3ExprCodeIN(tls, pParse, pExpr, dest, destIfNull)
+ Xsqlite3VdbeResolveLabel(tls, v, destIfNull)
+__29:
+ ;
+ goto __3
+
+__20:
+default_expr:
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse)) {
+ goto __30
+ }
+ Xsqlite3VdbeGoto(tls, v, dest)
+ goto __31
+__30:
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_IsTrue) == U32(EP_IsTrue)) {
+ goto __32
+ }
+
+ goto __33
+__32:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, pExpr, bp)
+ Xsqlite3VdbeAddOp3(tls, v, OP_IfNot, r1, dest, libc.Bool32(jumpIfNull != 0))
+
+__33:
+ ;
+__31:
+ ;
+ goto __3
+
+__3:
+ ;
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp)))
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 4)))
+}
+
+// Like sqlite3ExprIfFalse() except that a copy is made of pExpr before
+// code generation, and that copy is deleted after code generation. This
+// ensures that the original pExpr is unchanged.
+func Xsqlite3ExprIfFalseDup(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, jumpIfNull int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pCopy uintptr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ Xsqlite3ExprIfFalse(tls, pParse, pCopy, dest, jumpIfNull)
+ }
+ Xsqlite3ExprDelete(tls, db, pCopy)
+}
+
+func exprCompareVariable(tls *libc.TLS, pParse uintptr, pVar uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var res int32 = 0
+ var iVar int32
+ var pL uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ Xsqlite3ValueFromExpr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr, uint8(SQLITE_UTF8), uint8(SQLITE_AFF_BLOB), bp)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ iVar = int32((*Expr)(unsafe.Pointer(pVar)).FiColumn)
+ Xsqlite3VdbeSetVarmask(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, iVar)
+ pL = Xsqlite3VdbeGetBoundValue(tls, (*Parse)(unsafe.Pointer(pParse)).FpReprepare, iVar, uint8(SQLITE_AFF_BLOB))
+ if pL != 0 {
+ if Xsqlite3_value_type(tls, pL) == SQLITE_TEXT {
+ Xsqlite3_value_text(tls, pL)
+ }
+ res = libc.Bool32(0 == Xsqlite3MemCompare(tls, pL, *(*uintptr)(unsafe.Pointer(bp)), uintptr(0)))
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3ValueFree(tls, pL)
+ }
+
+ return res
+}
+
+// Do a deep comparison of two expression trees. Return 0 if the two
+// expressions are completely identical. Return 1 if they differ only
+// by a COLLATE operator at the top level. Return 2 if there are differences
+// other than the top-level COLLATE operator.
+//
+// If any subelement of pB has Expr.iTable==(-1) then it is allowed
+// to compare equal to an equivalent element in pA with Expr.iTable==iTab.
+//
+// The pA side might be using TK_REGISTER. If that is the case and pB is
+// not using TK_REGISTER but is otherwise equivalent, then still return 0.
+//
+// Sometimes this routine will return 2 even if the two expressions
+// really are equivalent. If we cannot prove that the expressions are
+// identical, we return 2 just to be safe. So if this routine
+// returns 2, then you do not really know for certain if the two
+// expressions are the same. But if you get a 0 or 1 return, then you
+// can be sure the expressions are the same. In the places where
+// this routine is used, it does not hurt to get an extra 2 - that
+// just might result in some slightly slower code. But returning
+// an incorrect 0 or 1 could lead to a malfunction.
+//
+// If pParse is not NULL then TK_VARIABLE terms in pA with bindings in
+// pParse->pReprepare can be matched against literals in pB. The
+// pParse->pVdbe->expmask bitmask is updated for each variable referenced.
+// If pParse is NULL (the normal case) then any TK_VARIABLE term in
+// Argument pParse should normally be NULL. If it is not NULL and pA or
+// pB causes a return value of 2.
+func Xsqlite3ExprCompare(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, iTab int32) int32 {
+ var combinedFlags U32
+ if pA == uintptr(0) || pB == uintptr(0) {
+ if pB == pA {
+ return 0
+ }
+ return 2
+ }
+ if pParse != 0 && int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_VARIABLE && exprCompareVariable(tls, pParse, pA, pB) != 0 {
+ return 0
+ }
+ combinedFlags = (*Expr)(unsafe.Pointer(pA)).Fflags | (*Expr)(unsafe.Pointer(pB)).Fflags
+ if combinedFlags&U32(EP_IntValue) != 0 {
+ if (*Expr)(unsafe.Pointer(pA)).Fflags&(*Expr)(unsafe.Pointer(pB)).Fflags&U32(EP_IntValue) != U32(0) && *(*int32)(unsafe.Pointer(pA + 8)) == *(*int32)(unsafe.Pointer(pB + 8)) {
+ return 0
+ }
+ return 2
+ }
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) != int32((*Expr)(unsafe.Pointer(pB)).Fop) || int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_RAISE {
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_COLLATE && Xsqlite3ExprCompare(tls, pParse, (*Expr)(unsafe.Pointer(pA)).FpLeft, pB, iTab) < 2 {
+ return 1
+ }
+ if int32((*Expr)(unsafe.Pointer(pB)).Fop) == TK_COLLATE && Xsqlite3ExprCompare(tls, pParse, pA, (*Expr)(unsafe.Pointer(pB)).FpLeft, iTab) < 2 {
+ return 1
+ }
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_AGG_COLUMN && int32((*Expr)(unsafe.Pointer(pB)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pB)).FiTable < 0 && (*Expr)(unsafe.Pointer(pA)).FiTable == iTab {
+ } else {
+ return 2
+ }
+ }
+
+ if *(*uintptr)(unsafe.Pointer(pA + 8)) != 0 {
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_FUNCTION || int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_AGG_FUNCTION {
+ if Xsqlite3StrICmp(tls, *(*uintptr)(unsafe.Pointer(pA + 8)), *(*uintptr)(unsafe.Pointer(pB + 8))) != 0 {
+ return 2
+ }
+
+ if libc.Bool32((*Expr)(unsafe.Pointer(pA)).Fflags&U32(EP_WinFunc) != U32(0)) != libc.Bool32((*Expr)(unsafe.Pointer(pB)).Fflags&U32(EP_WinFunc) != U32(0)) {
+ return 2
+ }
+ if (*Expr)(unsafe.Pointer(pA)).Fflags&U32(EP_WinFunc) != U32(0) {
+ if Xsqlite3WindowCompare(tls, pParse, *(*uintptr)(unsafe.Pointer(pA + 64)), *(*uintptr)(unsafe.Pointer(pB + 64)), 1) != 0 {
+ return 2
+ }
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_NULL {
+ return 0
+ } else if int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_COLLATE {
+ if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pA + 8)), *(*uintptr)(unsafe.Pointer(pB + 8))) != 0 {
+ return 2
+ }
+ } else if *(*uintptr)(unsafe.Pointer(pB + 8)) != uintptr(0) &&
+ int32((*Expr)(unsafe.Pointer(pA)).Fop) != TK_COLUMN &&
+ int32((*Expr)(unsafe.Pointer(pA)).Fop) != TK_AGG_COLUMN &&
+ libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(pA + 8)), *(*uintptr)(unsafe.Pointer(pB + 8))) != 0 {
+ return 2
+ }
+ }
+ if (*Expr)(unsafe.Pointer(pA)).Fflags&U32(EP_Distinct|EP_Commuted) !=
+ (*Expr)(unsafe.Pointer(pB)).Fflags&U32(EP_Distinct|EP_Commuted) {
+ return 2
+ }
+ if combinedFlags&U32(EP_TokenOnly) == U32(0) {
+ if combinedFlags&U32(EP_xIsSelect) != 0 {
+ return 2
+ }
+ if combinedFlags&U32(EP_FixedCol) == U32(0) &&
+ Xsqlite3ExprCompare(tls, pParse, (*Expr)(unsafe.Pointer(pA)).FpLeft, (*Expr)(unsafe.Pointer(pB)).FpLeft, iTab) != 0 {
+ return 2
+ }
+ if Xsqlite3ExprCompare(tls, pParse, (*Expr)(unsafe.Pointer(pA)).FpRight, (*Expr)(unsafe.Pointer(pB)).FpRight, iTab) != 0 {
+ return 2
+ }
+ if Xsqlite3ExprListCompare(tls, *(*uintptr)(unsafe.Pointer(pA + 32)), *(*uintptr)(unsafe.Pointer(pB + 32)), iTab) != 0 {
+ return 2
+ }
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) != TK_STRING &&
+ int32((*Expr)(unsafe.Pointer(pA)).Fop) != TK_TRUEFALSE &&
+ combinedFlags&U32(EP_Reduced) == U32(0) {
+ if int32((*Expr)(unsafe.Pointer(pA)).FiColumn) != int32((*Expr)(unsafe.Pointer(pB)).FiColumn) {
+ return 2
+ }
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop2) != int32((*Expr)(unsafe.Pointer(pB)).Fop2) && int32((*Expr)(unsafe.Pointer(pA)).Fop) == TK_TRUTH {
+ return 2
+ }
+ if int32((*Expr)(unsafe.Pointer(pA)).Fop) != TK_IN && (*Expr)(unsafe.Pointer(pA)).FiTable != (*Expr)(unsafe.Pointer(pB)).FiTable && (*Expr)(unsafe.Pointer(pA)).FiTable != iTab {
+ return 2
+ }
+ }
+ }
+ return 0
+}
+
+// Compare two ExprList objects. Return 0 if they are identical, 1
+// if they are certainly different, or 2 if it is not possible to
+// determine if they are identical or not.
+//
+// If any subelement of pB has Expr.iTable==(-1) then it is allowed
+// to compare equal to an equivalent element in pA with Expr.iTable==iTab.
+//
+// This routine might return non-zero for equivalent ExprLists. The
+// only consequence will be disabled optimizations. But this routine
+// must never return 0 if the two ExprList objects are different, or
+// a malfunction will result.
+//
+// Two NULL pointers are considered to be the same. But a NULL pointer
+// always differs from a non-NULL pointer.
+func Xsqlite3ExprListCompare(tls *libc.TLS, pA uintptr, pB uintptr, iTab int32) int32 {
+ var i int32
+ if pA == uintptr(0) && pB == uintptr(0) {
+ return 0
+ }
+ if pA == uintptr(0) || pB == uintptr(0) {
+ return 1
+ }
+ if (*ExprList)(unsafe.Pointer(pA)).FnExpr != (*ExprList)(unsafe.Pointer(pB)).FnExpr {
+ return 1
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pA)).FnExpr; i++ {
+ var res int32
+ var pExprA uintptr = (*ExprList_item)(unsafe.Pointer(pA + 8 + uintptr(i)*32)).FpExpr
+ var pExprB uintptr = (*ExprList_item)(unsafe.Pointer(pB + 8 + uintptr(i)*32)).FpExpr
+ if int32((*ExprList_item)(unsafe.Pointer(pA+8+uintptr(i)*32)).Ffg.FsortFlags) != int32((*ExprList_item)(unsafe.Pointer(pB+8+uintptr(i)*32)).Ffg.FsortFlags) {
+ return 1
+ }
+ if libc.AssignInt32(&res, Xsqlite3ExprCompare(tls, uintptr(0), pExprA, pExprB, iTab)) != 0 {
+ return res
+ }
+ }
+ return 0
+}
+
+// Like sqlite3ExprCompare() except COLLATE operators at the top-level
+// are ignored.
+func Xsqlite3ExprCompareSkip(tls *libc.TLS, pA uintptr, pB uintptr, iTab int32) int32 {
+ return Xsqlite3ExprCompare(tls, uintptr(0),
+ Xsqlite3ExprSkipCollateAndLikely(tls, pA),
+ Xsqlite3ExprSkipCollateAndLikely(tls, pB),
+ iTab)
+}
+
+func exprImpliesNotNull(tls *libc.TLS, pParse uintptr, p uintptr, pNN uintptr, iTab int32, seenNot int32) int32 {
+ if Xsqlite3ExprCompare(tls, pParse, p, pNN, iTab) == 0 {
+ return libc.Bool32(int32((*Expr)(unsafe.Pointer(pNN)).Fop) != TK_NULL)
+ }
+ switch int32((*Expr)(unsafe.Pointer(p)).Fop) {
+ case TK_IN:
+ {
+ if seenNot != 0 && (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ return 0
+ }
+
+ return exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, pNN, iTab, 1)
+
+ }
+ case TK_BETWEEN:
+ {
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer(p + 32))
+
+ if seenNot != 0 {
+ return 0
+ }
+ if exprImpliesNotNull(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8)).FpExpr, pNN, iTab, 1) != 0 ||
+ exprImpliesNotNull(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+1*32)).FpExpr, pNN, iTab, 1) != 0 {
+ return 1
+ }
+ return exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, pNN, iTab, 1)
+
+ }
+ case TK_EQ:
+ fallthrough
+ case TK_NE:
+ fallthrough
+ case TK_LT:
+ fallthrough
+ case TK_LE:
+ fallthrough
+ case TK_GT:
+ fallthrough
+ case TK_GE:
+ fallthrough
+ case TK_PLUS:
+ fallthrough
+ case TK_MINUS:
+ fallthrough
+ case TK_BITOR:
+ fallthrough
+ case TK_LSHIFT:
+ fallthrough
+ case TK_RSHIFT:
+ fallthrough
+ case TK_CONCAT:
+ seenNot = 1
+ fallthrough
+
+ case TK_STAR:
+ fallthrough
+ case TK_REM:
+ fallthrough
+ case TK_BITAND:
+ fallthrough
+ case TK_SLASH:
+ {
+ if exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpRight, pNN, iTab, seenNot) != 0 {
+ return 1
+ }
+
+ }
+ fallthrough
+ case TK_SPAN:
+ fallthrough
+ case TK_COLLATE:
+ fallthrough
+ case TK_UPLUS:
+ fallthrough
+ case TK_UMINUS:
+ {
+ return exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, pNN, iTab, seenNot)
+
+ }
+ case TK_TRUTH:
+ {
+ if seenNot != 0 {
+ return 0
+ }
+ if int32((*Expr)(unsafe.Pointer(p)).Fop2) != TK_IS {
+ return 0
+ }
+ return exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, pNN, iTab, 1)
+
+ }
+ case TK_BITNOT:
+ fallthrough
+ case TK_NOT:
+ {
+ return exprImpliesNotNull(tls, pParse, (*Expr)(unsafe.Pointer(p)).FpLeft, pNN, iTab, 1)
+
+ }
+ }
+ return 0
+}
+
+// Return true if we can prove the pE2 will always be true if pE1 is
+// true. Return false if we cannot complete the proof or if pE2 might
+// be false. Examples:
+//
+// pE1: x==5 pE2: x==5 Result: true
+// pE1: x>0 pE2: x==5 Result: false
+// pE1: x=21 pE2: x=21 OR y=43 Result: true
+// pE1: x!=123 pE2: x IS NOT NULL Result: true
+// pE1: x!=?1 pE2: x IS NOT NULL Result: true
+// pE1: x IS NULL pE2: x IS NOT NULL Result: false
+// pE1: x IS ?2 pE2: x IS NOT NULL Reuslt: false
+//
+// When comparing TK_COLUMN nodes between pE1 and pE2, if pE2 has
+// Expr.iTable<0 then assume a table number given by iTab.
+//
+// If pParse is not NULL, then the values of bound variables in pE1 are
+// compared against literal values in pE2 and pParse->pVdbe->expmask is
+// modified to record which bound variables are referenced. If pParse
+// is NULL, then false will be returned if pE1 contains any bound variables.
+//
+// When in doubt, return false. Returning true might give a performance
+// improvement. Returning false might cause a performance reduction, but
+// it will always give the correct answer and is hence always safe.
+func Xsqlite3ExprImpliesExpr(tls *libc.TLS, pParse uintptr, pE1 uintptr, pE2 uintptr, iTab int32) int32 {
+ if Xsqlite3ExprCompare(tls, pParse, pE1, pE2, iTab) == 0 {
+ return 1
+ }
+ if int32((*Expr)(unsafe.Pointer(pE2)).Fop) == TK_OR &&
+ (Xsqlite3ExprImpliesExpr(tls, pParse, pE1, (*Expr)(unsafe.Pointer(pE2)).FpLeft, iTab) != 0 ||
+ Xsqlite3ExprImpliesExpr(tls, pParse, pE1, (*Expr)(unsafe.Pointer(pE2)).FpRight, iTab) != 0) {
+ return 1
+ }
+ if int32((*Expr)(unsafe.Pointer(pE2)).Fop) == TK_NOTNULL &&
+ exprImpliesNotNull(tls, pParse, pE1, (*Expr)(unsafe.Pointer(pE2)).FpLeft, iTab, 0) != 0 {
+ return 1
+ }
+ return 0
+}
+
+func impliesNotNullRow(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ return WRC_Prune
+ }
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_ISNOT:
+ fallthrough
+ case TK_ISNULL:
+ fallthrough
+ case TK_NOTNULL:
+ fallthrough
+ case TK_IS:
+ fallthrough
+ case TK_OR:
+ fallthrough
+ case TK_VECTOR:
+ fallthrough
+ case TK_CASE:
+ fallthrough
+ case TK_IN:
+ fallthrough
+ case TK_FUNCTION:
+ fallthrough
+ case TK_TRUTH:
+ return WRC_Prune
+ case TK_COLUMN:
+ if *(*int32)(unsafe.Pointer(pWalker + 40)) == (*Expr)(unsafe.Pointer(pExpr)).FiTable {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(1)
+ return WRC_Abort
+ }
+ return WRC_Prune
+
+ case TK_AND:
+ if int32((*Walker)(unsafe.Pointer(pWalker)).FeCode) == 0 {
+ Xsqlite3WalkExpr(tls, pWalker, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ if (*Walker)(unsafe.Pointer(pWalker)).FeCode != 0 {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ Xsqlite3WalkExpr(tls, pWalker, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ }
+ }
+ return WRC_Prune
+
+ case TK_BETWEEN:
+ if Xsqlite3WalkExpr(tls, pWalker, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) == WRC_Abort {
+ return WRC_Abort
+ }
+ return WRC_Prune
+
+ case TK_EQ:
+ fallthrough
+ case TK_NE:
+ fallthrough
+ case TK_LT:
+ fallthrough
+ case TK_LE:
+ fallthrough
+ case TK_GT:
+ fallthrough
+ case TK_GE:
+ {
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ var pRight uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+
+ if int32((*Expr)(unsafe.Pointer(pLeft)).Fop) == TK_COLUMN &&
+ *(*uintptr)(unsafe.Pointer(pLeft + 64)) != uintptr(0) &&
+ int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 64)))).FeTabType) == TABTYP_VTAB ||
+ int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_COLUMN &&
+ *(*uintptr)(unsafe.Pointer(pRight + 64)) != uintptr(0) &&
+ int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pRight + 64)))).FeTabType) == TABTYP_VTAB {
+ return WRC_Prune
+ }
+
+ }
+ fallthrough
+ default:
+ return WRC_Continue
+ }
+ return int32(0)
+}
+
+// Return true (non-zero) if expression p can only be true if at least
+// one column of table iTab is non-null. In other words, return true
+// if expression p will always be NULL or false if every column of iTab
+// is NULL.
+//
+// False negatives are acceptable. In other words, it is ok to return
+// zero even if expression p will never be true of every column of iTab
+// is NULL. A false negative is merely a missed optimization opportunity.
+//
+// False positives are not allowed, however. A false positive may result
+// in an incorrect answer.
+//
+// Terms of p that are marked with EP_OuterON (and hence that come from
+// the ON or USING clauses of OUTER JOINS) are excluded from the analysis.
+//
+// This routine is used to check if a LEFT JOIN can be converted into
+// an ordinary JOIN. The p argument is the WHERE clause. If the WHERE
+// clause requires that some column of the right table of the LEFT JOIN
+// be non-NULL, then the LEFT JOIN can be safely converted into an
+// ordinary join.
+func Xsqlite3ExprImpliesNonNullRow(tls *libc.TLS, p uintptr, iTab int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ p = Xsqlite3ExprSkipCollateAndLikely(tls, p)
+ if p == uintptr(0) {
+ return 0
+ }
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_NOTNULL {
+ p = (*Expr)(unsafe.Pointer(p)).FpLeft
+ } else {
+ for int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_AND {
+ if Xsqlite3ExprImpliesNonNullRow(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, iTab) != 0 {
+ return 1
+ }
+ p = (*Expr)(unsafe.Pointer(p)).FpRight
+ }
+ }
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{impliesNotNullRow}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = iTab
+ Xsqlite3WalkExpr(tls, bp, p)
+ return int32((*Walker)(unsafe.Pointer(bp)).FeCode)
+}
+
+func exprIdxCover(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*IdxCover)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FiCur &&
+ int32(Xsqlite3TableColumnToIndex(tls, (*IdxCover)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FpIdx, (*Expr)(unsafe.Pointer(pExpr)).FiColumn)) < 0 {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(1)
+ return WRC_Abort
+ }
+ return WRC_Continue
+}
+
+// Determine if an index pIdx on table with cursor iCur contains will
+// the expression pExpr. Return true if the index does cover the
+// expression and false if the pExpr expression references table columns
+// that are not found in the index pIdx.
+//
+// An index covering an expression means that the expression can be
+// evaluated using only the index and without having to lookup the
+// corresponding table entry.
+func Xsqlite3ExprCoveredByIndex(tls *libc.TLS, pExpr uintptr, iCur int32, pIdx uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*IdxCover)(unsafe.Pointer(bp + 48)).FiCur = iCur
+ (*IdxCover)(unsafe.Pointer(bp + 48)).FpIdx = pIdx
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprIdxCover}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = bp + 48
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ return libc.BoolInt32(!((*Walker)(unsafe.Pointer(bp)).FeCode != 0))
+}
+
+func selectRefEnter(tls *libc.TLS, pWalker uintptr, pSelect uintptr) int32 {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pSrc uintptr = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ var i I64
+ var j I64
+ var piNew uintptr
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc == 0 {
+ return WRC_Continue
+ }
+ j = (*RefSrcList)(unsafe.Pointer(p)).FnExclude
+ *(*I64)(unsafe.Pointer(p + 16)) += I64((*SrcList)(unsafe.Pointer(pSrc)).FnSrc)
+ piNew = Xsqlite3DbRealloc(tls, (*RefSrcList)(unsafe.Pointer(p)).Fdb, (*RefSrcList)(unsafe.Pointer(p)).FaiExclude, uint64((*RefSrcList)(unsafe.Pointer(p)).FnExclude)*uint64(unsafe.Sizeof(int32(0))))
+ if piNew == uintptr(0) {
+ (*RefSrcList)(unsafe.Pointer(p)).FnExclude = int64(0)
+ return WRC_Abort
+ } else {
+ (*RefSrcList)(unsafe.Pointer(p)).FaiExclude = piNew
+ }
+ i = int64(0)
+__1:
+ if !(i < I64((*SrcList)(unsafe.Pointer(pSrc)).FnSrc)) {
+ goto __3
+ }
+ {
+ *(*int32)(unsafe.Pointer((*RefSrcList)(unsafe.Pointer(p)).FaiExclude + uintptr(j)*4)) = (*SrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104)).FiCursor
+
+ }
+ goto __2
+__2:
+ i++
+ j++
+ goto __1
+ goto __3
+__3:
+ ;
+ return WRC_Continue
+}
+
+func selectRefLeave(tls *libc.TLS, pWalker uintptr, pSelect uintptr) {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pSrc uintptr = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ if (*RefSrcList)(unsafe.Pointer(p)).FnExclude != 0 {
+ *(*I64)(unsafe.Pointer(p + 16)) -= I64((*SrcList)(unsafe.Pointer(pSrc)).FnSrc)
+ }
+}
+
+func exprRefToSrcList(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN ||
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_COLUMN {
+ var i int32
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pSrc uintptr = (*RefSrcList)(unsafe.Pointer(p)).FpRef
+ var nSrc int32
+ if pSrc != 0 {
+ nSrc = (*SrcList)(unsafe.Pointer(pSrc)).FnSrc
+ } else {
+ nSrc = 0
+ }
+ for i = 0; i < nSrc; i++ {
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(i)*104)).FiCursor {
+ *(*U16)(unsafe.Pointer(pWalker + 36)) |= U16(1)
+ return WRC_Continue
+ }
+ }
+ for i = 0; I64(i) < (*RefSrcList)(unsafe.Pointer(p)).FnExclude && *(*int32)(unsafe.Pointer((*RefSrcList)(unsafe.Pointer(p)).FaiExclude + uintptr(i)*4)) != (*Expr)(unsafe.Pointer(pExpr)).FiTable; i++ {
+ }
+ if I64(i) >= (*RefSrcList)(unsafe.Pointer(p)).FnExclude {
+ *(*U16)(unsafe.Pointer(pWalker + 36)) |= U16(2)
+ }
+ }
+ return WRC_Continue
+}
+
+// Check to see if pExpr references any tables in pSrcList.
+// Possible return values:
+//
+// 1 pExpr does references a table in pSrcList.
+//
+// 0 pExpr references some table that is not defined in either
+// pSrcList or in subqueries of pExpr itself.
+//
+// -1 pExpr only references no tables at all, or it only
+// references tables defined in subqueries of pExpr itself.
+//
+// As currently used, pExpr is always an aggregate function call. That
+// fact is exploited for efficiency.
+func Xsqlite3ReferencesSrcList(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSrcList uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+48, 0, uint64(unsafe.Sizeof(RefSrcList{})), libc.X__builtin_object_size(tls, bp+48, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprRefToSrcList}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{selectRefEnter}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{selectRefLeave}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = bp + 48
+ (*RefSrcList)(unsafe.Pointer(bp + 48)).Fdb = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ (*RefSrcList)(unsafe.Pointer(bp + 48)).FpRef = pSrcList
+
+ Xsqlite3WalkExprList(tls, bp, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ Xsqlite3WalkExpr(tls, bp, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FpFilter)
+ }
+ if (*RefSrcList)(unsafe.Pointer(bp+48)).FaiExclude != 0 {
+ Xsqlite3DbNNFreeNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*RefSrcList)(unsafe.Pointer(bp+48)).FaiExclude)
+ }
+ if int32((*Walker)(unsafe.Pointer(bp)).FeCode)&0x01 != 0 {
+ return 1
+ } else if (*Walker)(unsafe.Pointer(bp)).FeCode != 0 {
+ return 0
+ } else {
+ return -1
+ }
+ return int32(0)
+}
+
+func agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_TokenOnly|EP_Reduced) != U32(0)) &&
+ (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo != uintptr(0) {
+ var pAggInfo uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo
+ var iAgg int32 = int32((*Expr)(unsafe.Pointer(pExpr)).FiAgg)
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_AGG_FUNCTION {
+ if (*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol+uintptr(iAgg)*24)).FpCExpr == pExpr {
+ pExpr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if pExpr != 0 {
+ (*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24)).FpCExpr = pExpr
+ Xsqlite3ExprDeferredDelete(tls, pParse, pExpr)
+ }
+ }
+ } else {
+ if (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc+uintptr(iAgg)*24)).FpFExpr == pExpr {
+ pExpr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if pExpr != 0 {
+ (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*24)).FpFExpr = pExpr
+ Xsqlite3ExprDeferredDelete(tls, pParse, pExpr)
+ }
+ }
+ }
+ }
+ return WRC_Continue
+}
+
+// Initialize a Walker object so that will persist AggInfo entries referenced
+// by the tree that is walked.
+func Xsqlite3AggInfoPersistWalkerInit(tls *libc.TLS, pWalker uintptr, pParse uintptr) {
+ libc.X__builtin___memset_chk(tls, pWalker, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, pWalker, 0))
+ (*Walker)(unsafe.Pointer(pWalker)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(pWalker)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{agginfoPersistExprCb}))
+ (*Walker)(unsafe.Pointer(pWalker)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+}
+
+func addAggInfoColumn(tls *libc.TLS, db uintptr, pInfo uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ (*AggInfo)(unsafe.Pointer(pInfo)).FaCol = Xsqlite3ArrayAllocate(tls,
+ db,
+ (*AggInfo)(unsafe.Pointer(pInfo)).FaCol,
+ int32(unsafe.Sizeof(AggInfo_col{})),
+ pInfo+32,
+ bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func addAggInfoFunc(tls *libc.TLS, db uintptr, pInfo uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ (*AggInfo)(unsafe.Pointer(pInfo)).FaFunc = Xsqlite3ArrayAllocate(tls,
+ db,
+ (*AggInfo)(unsafe.Pointer(pInfo)).FaFunc,
+ int32(unsafe.Sizeof(AggInfo_func{})),
+ pInfo+48,
+ bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, pExpr uintptr) {
+ var pCol uintptr
+ var k int32
+ var pE uintptr
+ var j int32
+ var n int32
+ var pGB uintptr
+ var pTerm uintptr
+
+ pCol = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol
+ k = 0
+__1:
+ if !(k < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn) {
+ goto __3
+ }
+ if !((*AggInfo_col)(unsafe.Pointer(pCol)).FiTable == (*Expr)(unsafe.Pointer(pExpr)).FiTable &&
+ int32((*AggInfo_col)(unsafe.Pointer(pCol)).FiColumn) == int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_IF_NULL_ROW) {
+ goto __4
+ }
+ goto fix_up_expr
+__4:
+ ;
+ goto __2
+__2:
+ k++
+ pCol += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ k = addAggInfoColumn(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pAggInfo)
+ if !(k < 0) {
+ goto __5
+ }
+
+ return
+__5:
+ ;
+ pCol = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(k)*24
+
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FpTab = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FiTable = (*Expr)(unsafe.Pointer(pExpr)).FiTable
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FiColumn = (*Expr)(unsafe.Pointer(pExpr)).FiColumn
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(-1)
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FpCExpr = pExpr
+ if !((*AggInfo)(unsafe.Pointer(pAggInfo)).FpGroupBy != 0 && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_IF_NULL_ROW) {
+ goto __6
+ }
+ pGB = (*AggInfo)(unsafe.Pointer(pAggInfo)).FpGroupBy
+ pTerm = pGB + 8
+ n = (*ExprList)(unsafe.Pointer(pGB)).FnExpr
+ j = 0
+__7:
+ if !(j < n) {
+ goto __9
+ }
+ pE = (*ExprList_item)(unsafe.Pointer(pTerm)).FpExpr
+ if !(int32((*Expr)(unsafe.Pointer(pE)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pE)).FiTable == (*Expr)(unsafe.Pointer(pExpr)).FiTable &&
+ int32((*Expr)(unsafe.Pointer(pE)).FiColumn) == int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)) {
+ goto __10
+ }
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = I16(j)
+ goto __9
+__10:
+ ;
+ goto __8
+__8:
+ j++
+ pTerm += 32
+ goto __7
+ goto __9
+__9:
+ ;
+__6:
+ ;
+ if !(int32((*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn) < 0) {
+ goto __11
+ }
+ (*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = I16(libc.PostIncUint16(&(*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn, 1))
+__11:
+ ;
+fix_up_expr:
+ ;
+ (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN) {
+ goto __12
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_AGG_COLUMN)
+__12:
+ ;
+ (*Expr)(unsafe.Pointer(pExpr)).FiAgg = I16(k)
+}
+
+func analyzeAggregate(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var i int32
+ var pNC uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pParse uintptr = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ var pSrcList uintptr = (*NameContext)(unsafe.Pointer(pNC)).FpSrcList
+ var pAggInfo uintptr = *(*uintptr)(unsafe.Pointer(pNC + 16))
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ default:
+ {
+ var pIEpr uintptr
+
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_InAggFunc == 0 {
+ break
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr == uintptr(0) {
+ break
+ }
+ for pIEpr = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr; pIEpr != 0; pIEpr = (*IndexedExpr)(unsafe.Pointer(pIEpr)).FpIENext {
+ var iDataCur int32 = (*IndexedExpr)(unsafe.Pointer(pIEpr)).FiDataCur
+ if iDataCur < 0 {
+ continue
+ }
+ if Xsqlite3ExprCompare(tls, uintptr(0), pExpr, (*IndexedExpr)(unsafe.Pointer(pIEpr)).FpExpr, iDataCur) == 0 {
+ break
+ }
+ }
+ if pIEpr == uintptr(0) {
+ break
+ }
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0)) {
+ break
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo != uintptr(0) {
+ break
+ }
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Expr)(unsafe.Pointer(bp)).Fop = U8(TK_AGG_COLUMN)
+ (*Expr)(unsafe.Pointer(bp)).FiTable = (*IndexedExpr)(unsafe.Pointer(pIEpr)).FiIdxCur
+ (*Expr)(unsafe.Pointer(bp)).FiColumn = YnVar((*IndexedExpr)(unsafe.Pointer(pIEpr)).FiIdxCol)
+ findOrCreateAggInfoColumn(tls, pParse, pAggInfo, bp)
+ (*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr((*Expr)(unsafe.Pointer(bp)).FiAgg)*24)).FpCExpr = pExpr
+ (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo
+ (*Expr)(unsafe.Pointer(pExpr)).FiAgg = (*Expr)(unsafe.Pointer(bp)).FiAgg
+ return WRC_Prune
+
+ }
+ case TK_IF_NULL_ROW:
+ fallthrough
+ case TK_AGG_COLUMN:
+ fallthrough
+ case TK_COLUMN:
+ {
+ if pSrcList != uintptr(0) {
+ var pItem uintptr = pSrcList + 8
+ i = 0
+ __1:
+ if !(i < (*SrcList)(unsafe.Pointer(pSrcList)).FnSrc) {
+ goto __3
+ }
+ {
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SrcItem)(unsafe.Pointer(pItem)).FiCursor {
+ findOrCreateAggInfoColumn(tls, pParse, pAggInfo, pExpr)
+ goto __3
+ }
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 104
+ goto __1
+ goto __3
+ __3:
+ }
+ return WRC_Prune
+
+ }
+ case TK_AGG_FUNCTION:
+ {
+ if (*NameContext)(unsafe.Pointer(pNC)).FncFlags&NC_InAggFunc == 0 &&
+ (*Walker)(unsafe.Pointer(pWalker)).FwalkerDepth == int32((*Expr)(unsafe.Pointer(pExpr)).Fop2) {
+ var pItem uintptr = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+ i = 0
+ __4:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __6
+ }
+ {
+ if (*AggInfo_func)(unsafe.Pointer(pItem)).FpFExpr == pExpr {
+ goto __6
+ }
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*AggInfo_func)(unsafe.Pointer(pItem)).FpFExpr, pExpr, -1) == 0 {
+ goto __6
+ }
+
+ }
+ goto __5
+ __5:
+ i++
+ pItem += 24
+ goto __4
+ goto __6
+ __6:
+ ;
+ if i >= (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc {
+ var enc U8 = (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fenc
+ i = addAggInfoFunc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pAggInfo)
+ if i >= 0 {
+ pItem = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(i)*24
+ (*AggInfo_func)(unsafe.Pointer(pItem)).FpFExpr = pExpr
+
+ (*AggInfo_func)(unsafe.Pointer(pItem)).FpFunc = Xsqlite3FindFunction(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb,
+ *(*uintptr)(unsafe.Pointer(pExpr + 8)),
+ func() int32 {
+ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 {
+ return (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr
+ }
+ return 0
+ }(), enc, uint8(0))
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Distinct) != 0 {
+ (*AggInfo_func)(unsafe.Pointer(pItem)).FiDistinct = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ } else {
+ (*AggInfo_func)(unsafe.Pointer(pItem)).FiDistinct = -1
+ }
+ }
+ }
+
+ (*Expr)(unsafe.Pointer(pExpr)).FiAgg = I16(i)
+ (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo
+ return WRC_Prune
+ } else {
+ return WRC_Continue
+ }
+
+ }
+ }
+ return WRC_Continue
+}
+
+// Analyze the pExpr expression looking for aggregate functions and
+// for variables that need to be added to AggInfo object that pNC->pAggInfo
+// points to. Additional entries are made on the AggInfo object as
+// necessary.
+//
+// This routine should only be called after the expression has been
+// analyzed by sqlite3ResolveExprNames().
+func Xsqlite3ExprAnalyzeAggregates(tls *libc.TLS, pNC uintptr, pExpr uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{analyzeAggregate}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3WalkerDepthIncrease}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3WalkerDepthDecrease}))
+ (*Walker)(unsafe.Pointer(bp)).FwalkerDepth = 0
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pNC
+ (*Walker)(unsafe.Pointer(bp)).FpParse = uintptr(0)
+
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+}
+
+// Call sqlite3ExprAnalyzeAggregates() for every expression in an
+// expression list. Return the number of errors.
+//
+// If an error is found, the analysis is cut short.
+func Xsqlite3ExprAnalyzeAggList(tls *libc.TLS, pNC uintptr, pList uintptr) {
+ var pItem uintptr
+ var i int32
+ if pList != 0 {
+ pItem = pList + 8
+ i = 0
+ __1:
+ if !(i < (*ExprList)(unsafe.Pointer(pList)).FnExpr) {
+ goto __3
+ }
+ {
+ Xsqlite3ExprAnalyzeAggregates(tls, pNC, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ }
+}
+
+// Allocate a single new register for use to hold some intermediate result.
+func Xsqlite3GetTempReg(tls *libc.TLS, pParse uintptr) int32 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FnTempReg) == 0 {
+ return libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+ return *(*int32)(unsafe.Pointer(pParse + 228 + uintptr(libc.PreDecUint8(&(*Parse)(unsafe.Pointer(pParse)).FnTempReg, 1))*4))
+}
+
+// Deallocate a register, making available for reuse for some other
+// purpose.
+func Xsqlite3ReleaseTempReg(tls *libc.TLS, pParse uintptr, iReg int32) {
+ if iReg != 0 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FnTempReg) < int32(uint64(unsafe.Sizeof([8]int32{}))/uint64(unsafe.Sizeof(int32(0)))) {
+ *(*int32)(unsafe.Pointer(pParse + 228 + uintptr(libc.PostIncUint8(&(*Parse)(unsafe.Pointer(pParse)).FnTempReg, 1))*4)) = iReg
+ }
+ }
+}
+
+// Allocate or deallocate a block of nReg consecutive registers.
+func Xsqlite3GetTempRange(tls *libc.TLS, pParse uintptr, nReg int32) int32 {
+ var i int32
+ var n int32
+ if nReg == 1 {
+ return Xsqlite3GetTempReg(tls, pParse)
+ }
+ i = (*Parse)(unsafe.Pointer(pParse)).FiRangeReg
+ n = (*Parse)(unsafe.Pointer(pParse)).FnRangeReg
+ if nReg <= n {
+ *(*int32)(unsafe.Pointer(pParse + 44)) += nReg
+ *(*int32)(unsafe.Pointer(pParse + 40)) -= nReg
+ } else {
+ i = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nReg
+ }
+ return i
+}
+
+func Xsqlite3ReleaseTempRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) {
+ if nReg == 1 {
+ Xsqlite3ReleaseTempReg(tls, pParse, iReg)
+ return
+ }
+
+ if nReg > (*Parse)(unsafe.Pointer(pParse)).FnRangeReg {
+ (*Parse)(unsafe.Pointer(pParse)).FnRangeReg = nReg
+ (*Parse)(unsafe.Pointer(pParse)).FiRangeReg = iReg
+ }
+}
+
+// Mark all temporary registers as being unavailable for reuse.
+//
+// Always invoke this procedure after coding a subroutine or co-routine
+// that might be invoked from other parts of the code, to ensure that
+// the sub/co-routine does not use registers in common with the code that
+// invokes the sub/co-routine.
+func Xsqlite3ClearTempRegCache(tls *libc.TLS, pParse uintptr) {
+ (*Parse)(unsafe.Pointer(pParse)).FnTempReg = U8(0)
+ (*Parse)(unsafe.Pointer(pParse)).FnRangeReg = 0
+}
+
+func isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if 0 == Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+6784, 7) ||
+ (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Eponymous) != U32(0) ||
+ (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Shadow) != U32(0) &&
+ Xsqlite3ReadOnlyShadowTables(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8545, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ return 1
+ }
+ return 0
+}
+
+func renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, zWhen uintptr, bNoDQS int32) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ (*Parse)(unsafe.Pointer(pParse)).FcolNamesSet = U8(1)
+ Xsqlite3NestedParse(tls, pParse,
+ ts+8573,
+ libc.VaList(bp, zDb,
+ zDb, bTemp, zWhen, bNoDQS))
+
+ if bTemp == 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+8748,
+ libc.VaList(bp+40, zDb, zWhen, bNoDQS))
+ }
+}
+
+func renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+8922, libc.VaList(bp, zDb, zDb))
+ if bTemp == 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+9069, 0)
+ }
+}
+
+func renameReloadSchema(tls *libc.TLS, pParse uintptr, iDb int32, p5 U16) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ if v != 0 {
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ Xsqlite3VdbeAddParseSchemaOp(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, iDb, uintptr(0), p5)
+ if iDb != 1 {
+ Xsqlite3VdbeAddParseSchemaOp(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, 1, uintptr(0), p5)
+ }
+ }
+}
+
+// Generate code to implement the "ALTER TABLE xxx RENAME TO yyy"
+// command.
+func Xsqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName uintptr) {
+ bp := tls.Alloc(184)
+ defer tls.Free(184)
+
+ var iDb int32
+ var zDb uintptr
+ var pTab uintptr
+ var zName uintptr
+ var db uintptr
+ var nTabName int32
+ var zTabName uintptr
+ var v uintptr
+ var pVTab uintptr
+ var i int32
+ zName = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pVTab = uintptr(0)
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto exit_rename_table
+__1:
+ ;
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pSrc+8)
+ if !!(pTab != 0) {
+ goto __2
+ }
+ goto exit_rename_table
+__2:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+
+ zName = Xsqlite3NameFromToken(tls, db, pName)
+ if !!(zName != 0) {
+ goto __3
+ }
+ goto exit_rename_table
+__3:
+ ;
+ if !(Xsqlite3FindTable(tls, db, zName, zDb) != 0 ||
+ Xsqlite3FindIndex(tls, db, zName, zDb) != 0 ||
+ Xsqlite3IsShadowTableOf(tls, db, pTab, zName) != 0) {
+ goto __4
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+9220, libc.VaList(bp, zName))
+ goto exit_rename_table
+__4:
+ ;
+ if !(SQLITE_OK != isAlterableTable(tls, pParse, pTab)) {
+ goto __5
+ }
+ goto exit_rename_table
+__5:
+ ;
+ if !(SQLITE_OK != Xsqlite3CheckObjectName(tls, pParse, zName, ts+9279, zName)) {
+ goto __6
+ }
+ goto exit_rename_table
+__6:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __7
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+9285, libc.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_rename_table
+__7:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_ALTER_TABLE, zDb, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0)) != 0) {
+ goto __8
+ }
+ goto exit_rename_table
+__8:
+ ;
+ if !(Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0) {
+ goto __9
+ }
+ goto exit_rename_table
+__9:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __10
+ }
+ pVTab = Xsqlite3GetVTable(tls, db, pTab)
+ if !((*Sqlite3_module)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer((*VTable)(unsafe.Pointer(pVTab)).FpVtab)).FpModule)).FxRename == uintptr(0)) {
+ goto __11
+ }
+ pVTab = uintptr(0)
+__11:
+ ;
+__10:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __12
+ }
+ goto exit_rename_table
+__12:
+ ;
+ Xsqlite3MayAbort(tls, pParse)
+
+ zTabName = (*Table)(unsafe.Pointer(pTab)).FzName
+ nTabName = Xsqlite3Utf8CharLen(tls, zTabName, -1)
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+9312, libc.VaList(bp+16, zDb, zDb, zTabName, zName, libc.Bool32(iDb == 1), zTabName))
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+9496,
+ libc.VaList(bp+64, zDb,
+ zName, zName, zName,
+ nTabName, zTabName))
+
+ if !(Xsqlite3FindTable(tls, db, ts+9801, zDb) != 0) {
+ goto __13
+ }
+ Xsqlite3NestedParse(tls, pParse,
+ ts+9817,
+ libc.VaList(bp+112, zDb, zName, (*Table)(unsafe.Pointer(pTab)).FzName))
+__13:
+ ;
+ if !(iDb != 1) {
+ goto __14
+ }
+ Xsqlite3NestedParse(tls, pParse,
+ ts+9875, libc.VaList(bp+136, zDb, zTabName, zName, zTabName, zDb, zName))
+__14:
+ ;
+ if !(pVTab != 0) {
+ goto __15
+ }
+ i = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeLoadString(tls, v, i, zName)
+ Xsqlite3VdbeAddOp4(tls, v, OP_VRename, i, 0, 0, pVTab, -11)
+__15:
+ ;
+ renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename))
+ renameTestSchema(tls, pParse, zDb, libc.Bool32(iDb == 1), ts+10140, 0)
+
+exit_rename_table:
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+ Xsqlite3DbFree(tls, db, zName)
+}
+
+func sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+10153,
+ libc.VaList(bp, zErr, zDb, zTab))
+}
+
+// This function is called after an "ALTER TABLE ... ADD" statement
+// has been parsed. Argument pColDef contains the text of the new
+// column definition.
+//
+// The Table structure pParse->pNewTable was extended to include
+// the new column during parsing.
+func Xsqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pNew uintptr
+ var pTab uintptr
+ var iDb int32
+ var zDb uintptr
+ var zTab uintptr
+ var zCol uintptr
+ var pCol uintptr
+ var pDflt uintptr
+ var db uintptr
+ var v uintptr
+ var r1 int32
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+
+ pNew = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pNew)).FpSchema)
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ zTab = (*Table)(unsafe.Pointer(pNew)).FzName + 16
+ pCol = (*Table)(unsafe.Pointer(pNew)).FaCol + uintptr(int32((*Table)(unsafe.Pointer(pNew)).FnCol)-1)*24
+ pDflt = Xsqlite3ColumnExpr(tls, pNew, pCol)
+ pTab = Xsqlite3FindTable(tls, db, zTab, zDb)
+
+ if Xsqlite3AuthCheck(tls, pParse, SQLITE_ALTER_TABLE, zDb, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0)) != 0 {
+ return
+ }
+
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+10191, 0)
+ return
+ }
+ if (*Table)(unsafe.Pointer(pNew)).FpIndex != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+10223, 0)
+ return
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_GENERATED == 0 {
+ if pDflt != 0 && int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pDflt)).FpLeft)).Fop) == TK_NULL {
+ pDflt = uintptr(0)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0 && *(*uintptr)(unsafe.Pointer(pNew + 64 + 8)) != 0 && pDflt != 0 {
+ sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
+ ts+10250)
+ }
+ if uint32(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) {
+ sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
+ ts+10309)
+ }
+
+ if pDflt != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ var rc int32
+ rc = Xsqlite3ValueFromExpr(tls, db, pDflt, uint8(SQLITE_UTF8), uint8(SQLITE_AFF_BLOB), bp+56)
+
+ if rc != SQLITE_OK {
+ return
+ }
+ if !(*(*uintptr)(unsafe.Pointer(bp + 56)) != 0) {
+ sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab,
+ ts+10362)
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 56)))
+ }
+ } else if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_STORED != 0 {
+ sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, ts+10408)
+ }
+
+ zCol = Xsqlite3DbStrNDup(tls, db, (*Token)(unsafe.Pointer(pColDef)).Fz, uint64((*Token)(unsafe.Pointer(pColDef)).Fn))
+ if zCol != 0 {
+ var zEnd uintptr = zCol + uintptr((*Token)(unsafe.Pointer(pColDef)).Fn-uint32(1))
+ for zEnd > zCol && (int32(*(*int8)(unsafe.Pointer(zEnd))) == ';' || int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zEnd)))])&0x01 != 0) {
+ *(*int8)(unsafe.Pointer(libc.PostDecUintptr(&zEnd, 1))) = int8(0)
+ }
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+10435,
+ libc.VaList(bp, zDb, *(*int32)(unsafe.Pointer(pNew + 64)), zCol, *(*int32)(unsafe.Pointer(pNew + 64)),
+ zTab))
+ Xsqlite3DbFree(tls, db, zCol)
+ }
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v != 0 {
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_ReadCookie, iDb, r1, BTREE_FILE_FORMAT)
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, r1, -2)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfPos, r1, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, 3)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+
+ renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd))
+
+ if (*Table)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) ||
+ uint32(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+10581,
+ libc.VaList(bp+40, zTab, zDb))
+ }
+ }
+}
+
+// This function is called by the parser after the table-name in
+// an "ALTER TABLE <table-name> ADD" statement is parsed. Argument
+// pSrc is the full-name of the table being altered.
+//
+// This routine makes a (partial) copy of the Table structure
+// for the table being altered and sets Parse.pNewTable to point
+// to it. Routines called by the parser as the column definition
+// is parsed (i.e. sqlite3AddColumn()) add the new Column data to
+// the copy. The copy of the Table structure is deleted by tokenize.c
+// after parsing is finished.
+//
+// Routine sqlite3AlterFinishAddColumn() will be called to complete
+// coding the "ALTER TABLE ... ADD" statement.
+func Xsqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNew uintptr
+ var pTab uintptr
+ var iDb int32
+ var i int32
+ var nAlloc int32
+ var db uintptr
+ var pCol uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto exit_begin_add_column
+__1:
+ ;
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pSrc+8)
+ if !!(pTab != 0) {
+ goto __2
+ }
+ goto exit_begin_add_column
+__2:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __3
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+10811, 0)
+ goto exit_begin_add_column
+__3:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __4
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+10845, 0)
+ goto exit_begin_add_column
+__4:
+ ;
+ if !(SQLITE_OK != isAlterableTable(tls, pParse, pTab)) {
+ goto __5
+ }
+ goto exit_begin_add_column
+__5:
+ ;
+ Xsqlite3MayAbort(tls, pParse)
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if !!(pNew != 0) {
+ goto __6
+ }
+ goto exit_begin_add_column
+__6:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTable = pNew
+ (*Table)(unsafe.Pointer(pNew)).FnTabRef = U32(1)
+ (*Table)(unsafe.Pointer(pNew)).FnCol = (*Table)(unsafe.Pointer(pTab)).FnCol
+
+ nAlloc = (int32((*Table)(unsafe.Pointer(pNew)).FnCol)-1)/8*8 + 8
+
+ (*Table)(unsafe.Pointer(pNew)).FaCol = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Column{}))*uint64(nAlloc))
+ (*Table)(unsafe.Pointer(pNew)).FzName = Xsqlite3MPrintf(tls, db, ts+10875, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ if !(!(int32((*Table)(unsafe.Pointer(pNew)).FaCol) != 0) || !(int32((*Table)(unsafe.Pointer(pNew)).FzName) != 0)) {
+ goto __7
+ }
+
+ goto exit_begin_add_column
+__7:
+ ;
+ libc.X__builtin___memcpy_chk(tls, (*Table)(unsafe.Pointer(pNew)).FaCol, (*Table)(unsafe.Pointer(pTab)).FaCol, uint64(unsafe.Sizeof(Column{}))*uint64((*Table)(unsafe.Pointer(pNew)).FnCol), libc.X__builtin_object_size(tls, (*Table)(unsafe.Pointer(pNew)).FaCol, 0))
+ i = 0
+__8:
+ if !(i < int32((*Table)(unsafe.Pointer(pNew)).FnCol)) {
+ goto __10
+ }
+ pCol = (*Table)(unsafe.Pointer(pNew)).FaCol + uintptr(i)*24
+ (*Column)(unsafe.Pointer(pCol)).FzCnName = Xsqlite3DbStrDup(tls, db, (*Column)(unsafe.Pointer(pCol)).FzCnName)
+ (*Column)(unsafe.Pointer(pCol)).FhName = Xsqlite3StrIHash(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName)
+ goto __9
+__9:
+ i++
+ goto __8
+ goto __10
+__10:
+ ;
+ *(*uintptr)(unsafe.Pointer(pNew + 64 + 16)) = Xsqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)), 0)
+ (*Table)(unsafe.Pointer(pNew)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ *(*int32)(unsafe.Pointer(pNew + 64)) = *(*int32)(unsafe.Pointer(pTab + 64))
+ (*Table)(unsafe.Pointer(pNew)).FnTabRef = U32(1)
+
+exit_begin_add_column:
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+ return
+}
+
+func isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var zType uintptr = uintptr(0)
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ zType = ts + 10894
+ }
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ zType = ts + 10899
+ }
+ if zType != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+10913,
+ libc.VaList(bp, func() uintptr {
+ if bDrop != 0 {
+ return ts + 10931
+ }
+ return ts + 10948
+ }(),
+ zType, (*Table)(unsafe.Pointer(pTab)).FzName))
+ return 1
+ }
+ return 0
+}
+
+// Handles the following parser reduction:
+//
+// cmd ::= ALTER TABLE pSrc RENAME COLUMN pOld TO pNew
+func Xsqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld uintptr, pNew uintptr) {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var db uintptr
+ var pTab uintptr
+ var iCol int32
+ var zOld uintptr
+ var zNew uintptr
+ var zDb uintptr
+ var iSchema int32
+ var bQuote int32
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ zOld = uintptr(0)
+ zNew = uintptr(0)
+
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pSrc+8)
+ if !!(pTab != 0) {
+ goto __1
+ }
+ goto exit_rename_column
+__1:
+ ;
+ if !(SQLITE_OK != isAlterableTable(tls, pParse, pTab)) {
+ goto __2
+ }
+ goto exit_rename_column
+__2:
+ ;
+ if !(SQLITE_OK != isRealTable(tls, pParse, pTab, 0)) {
+ goto __3
+ }
+ goto exit_rename_column
+__3:
+ ;
+ iSchema = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iSchema)*32)).FzDbSName
+
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_ALTER_TABLE, zDb, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0)) != 0) {
+ goto __4
+ }
+ goto exit_rename_column
+__4:
+ ;
+ zOld = Xsqlite3NameFromToken(tls, db, pOld)
+ if !!(zOld != 0) {
+ goto __5
+ }
+ goto exit_rename_column
+__5:
+ ;
+ iCol = 0
+__6:
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __8
+ }
+ if !(0 == Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FzCnName, zOld)) {
+ goto __9
+ }
+ goto __8
+__9:
+ ;
+ goto __7
+__7:
+ iCol++
+ goto __6
+ goto __8
+__8:
+ ;
+ if !(iCol == int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __10
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+10966, libc.VaList(bp, pOld))
+ goto exit_rename_column
+__10:
+ ;
+ renameTestSchema(tls, pParse, zDb, libc.Bool32(iSchema == 1), ts+1547, 0)
+ renameFixQuotes(tls, pParse, zDb, libc.Bool32(iSchema == 1))
+
+ Xsqlite3MayAbort(tls, pParse)
+ zNew = Xsqlite3NameFromToken(tls, db, pNew)
+ if !!(zNew != 0) {
+ goto __11
+ }
+ goto exit_rename_column
+__11:
+ ;
+ bQuote = int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(pNew)).Fz)))]) & 0x80
+ Xsqlite3NestedParse(tls, pParse,
+ ts+10987,
+ libc.VaList(bp+8, zDb,
+ zDb, (*Table)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.Bool32(iSchema == 1),
+ (*Table)(unsafe.Pointer(pTab)).FzName))
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+11169,
+ libc.VaList(bp+72, zDb, (*Table)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote))
+
+ renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename))
+ renameTestSchema(tls, pParse, zDb, libc.Bool32(iSchema == 1), ts+10140, 1)
+
+exit_rename_column:
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+ Xsqlite3DbFree(tls, db, zOld)
+ Xsqlite3DbFree(tls, db, zNew)
+ return
+}
+
+// The context of an ALTER TABLE RENAME COLUMN operation that gets passed
+// down into the Walker.
+type RenameCtx = RenameCtx1
+
+// Remember that the parser tree element pPtr was created using
+// the token pToken.
+//
+// In other words, construct a new RenameToken object and add it
+// to the list of RenameToken objects currently being built up
+// in pParse->pRename.
+//
+// The pPtr argument is returned so that this routine can be used
+// with tail recursion in tokenExpr() routine, for a small performance
+// improvement.
+func Xsqlite3RenameTokenMap(tls *libc.TLS, pParse uintptr, pPtr uintptr, pToken uintptr) uintptr {
+ var pNew uintptr
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_UNMAP {
+ pNew = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(RenameToken{})))
+ if pNew != 0 {
+ (*RenameToken)(unsafe.Pointer(pNew)).Fp = pPtr
+ (*RenameToken)(unsafe.Pointer(pNew)).Ft = *(*Token)(unsafe.Pointer(pToken))
+ (*RenameToken)(unsafe.Pointer(pNew)).FpNext = (*Parse)(unsafe.Pointer(pParse)).FpRename
+ (*Parse)(unsafe.Pointer(pParse)).FpRename = pNew
+ }
+ }
+
+ return pPtr
+}
+
+// It is assumed that there is already a RenameToken object associated
+// with parse tree element pFrom. This function remaps the associated token
+// to parse tree element pTo.
+func Xsqlite3RenameTokenRemap(tls *libc.TLS, pParse uintptr, pTo uintptr, pFrom uintptr) {
+ var p uintptr
+
+ for p = (*Parse)(unsafe.Pointer(pParse)).FpRename; p != 0; p = (*RenameToken)(unsafe.Pointer(p)).FpNext {
+ if (*RenameToken)(unsafe.Pointer(p)).Fp == pFrom {
+ (*RenameToken)(unsafe.Pointer(p)).Fp = pTo
+ break
+ }
+ }
+}
+
+func renameUnmapExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), pExpr)
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0) {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), pExpr+64)
+ }
+ return WRC_Continue
+}
+
+func renameWalkWith(tls *libc.TLS, pWalker uintptr, pSelect uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var pWith uintptr = (*Select)(unsafe.Pointer(pSelect)).FpWith
+ if pWith != 0 {
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ var i int32
+ var pCopy uintptr = uintptr(0)
+
+ if (*Select)(unsafe.Pointer((*Cte)(unsafe.Pointer(pWith+16)).FpSelect)).FselFlags&U32(SF_Expanded) == U32(0) {
+ pCopy = Xsqlite3WithDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pWith)
+ pCopy = Xsqlite3WithPush(tls, pParse, pCopy, uint8(1))
+ }
+ for i = 0; i < (*With)(unsafe.Pointer(pWith)).FnCte; i++ {
+ var p uintptr = (*Cte)(unsafe.Pointer(pWith + 16 + uintptr(i)*48)).FpSelect
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ if pCopy != 0 {
+ Xsqlite3SelectPrep(tls, (*NameContext)(unsafe.Pointer(bp)).FpParse, p, bp)
+ }
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*NameContext)(unsafe.Pointer(bp)).FpParse)).Fdb)).FmallocFailed != 0 {
+ return
+ }
+ Xsqlite3WalkSelect(tls, pWalker, p)
+ Xsqlite3RenameExprlistUnmap(tls, pParse, (*Cte)(unsafe.Pointer(pWith+16+uintptr(i)*48)).FpCols)
+ }
+ if pCopy != 0 && (*Parse)(unsafe.Pointer(pParse)).FpWith == pCopy {
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = (*With)(unsafe.Pointer(pCopy)).FpOuter
+ }
+ }
+}
+
+func unmapColumnIdlistNames(tls *libc.TLS, pParse uintptr, pIdList uintptr) {
+ var ii int32
+
+ for ii = 0; ii < (*IdList)(unsafe.Pointer(pIdList)).FnId; ii++ {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), (*IdList_item)(unsafe.Pointer(pIdList+8+uintptr(ii)*16)).FzName)
+ }
+}
+
+func renameUnmapSelectCb(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ var i int32
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return WRC_Abort
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_View|SF_CopyCte) != 0 {
+ return WRC_Prune
+ }
+ if (*Select)(unsafe.Pointer(p)).FpEList != 0 {
+ var pList uintptr = (*Select)(unsafe.Pointer(p)).FpEList
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ if (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FzEName != 0 && int32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0) == ENAME_NAME {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FzEName)
+ }
+ }
+ }
+ if (*Select)(unsafe.Pointer(p)).FpSrc != 0 {
+ var pSrc uintptr = (*Select)(unsafe.Pointer(p)).FpSrc
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc; i++ {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), (*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(i)*104)).FzName)
+ if int32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 60 + 4))&0x400>>10) == 0 {
+ Xsqlite3WalkExpr(tls, pWalker, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 72)))
+ } else {
+ unmapColumnIdlistNames(tls, pParse, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 72)))
+ }
+ }
+ }
+
+ renameWalkWith(tls, pWalker, p)
+ return WRC_Continue
+}
+
+// Remove all nodes that are part of expression pExpr from the rename list.
+func Xsqlite3RenameExprUnmap(tls *libc.TLS, pParse uintptr, pExpr uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var eMode U8 = (*Parse)(unsafe.Pointer(pParse)).FeParseMode
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameUnmapExprCb}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameUnmapSelectCb}))
+ (*Parse)(unsafe.Pointer(pParse)).FeParseMode = U8(PARSE_MODE_UNMAP)
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ (*Parse)(unsafe.Pointer(pParse)).FeParseMode = eMode
+}
+
+// Remove all nodes that are part of expression-list pEList from the
+// rename list.
+func Xsqlite3RenameExprlistUnmap(tls *libc.TLS, pParse uintptr, pEList uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if pEList != 0 {
+ var i int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameUnmapExprCb}))
+ Xsqlite3WalkExprList(tls, bp, pEList)
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ if int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0) == ENAME_NAME {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FzEName)
+ }
+ }
+ }
+}
+
+func renameTokenFree(tls *libc.TLS, db uintptr, pToken uintptr) {
+ var pNext uintptr
+ var p uintptr
+ for p = pToken; p != 0; p = pNext {
+ pNext = (*RenameToken)(unsafe.Pointer(p)).FpNext
+ Xsqlite3DbFree(tls, db, p)
+ }
+}
+
+func renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) uintptr {
+ var pp uintptr
+ if pPtr == uintptr(0) {
+ return uintptr(0)
+ }
+ for pp = pParse + 416; *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 {
+ if (*RenameToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fp == pPtr {
+ var pToken uintptr = *(*uintptr)(unsafe.Pointer(pp))
+ if pCtx != 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*RenameToken)(unsafe.Pointer(pToken)).FpNext
+ (*RenameToken)(unsafe.Pointer(pToken)).FpNext = (*RenameCtx1)(unsafe.Pointer(pCtx)).FpList
+ (*RenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken
+ (*RenameCtx1)(unsafe.Pointer(pCtx)).FnList++
+ }
+ return pToken
+ }
+ }
+ return uintptr(0)
+}
+
+func renameColumnSelectCb(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_View|SF_CopyCte) != 0 {
+ return WRC_Prune
+ }
+ renameWalkWith(tls, pWalker, p)
+ return WRC_Continue
+}
+
+func renameColumnExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_TRIGGER &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) == (*RenameCtx)(unsafe.Pointer(p)).FiCol &&
+ (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(pWalker)).FpParse)).FpTriggerTab == (*RenameCtx)(unsafe.Pointer(p)).FpTab {
+ renameTokenFind(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, p, pExpr)
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) == (*RenameCtx)(unsafe.Pointer(p)).FiCol &&
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0) &&
+ (*RenameCtx)(unsafe.Pointer(p)).FpTab == *(*uintptr)(unsafe.Pointer(pExpr + 64)) {
+ renameTokenFind(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, p, pExpr)
+ }
+ return WRC_Continue
+}
+
+func renameColumnTokenNext(tls *libc.TLS, pCtx uintptr) uintptr {
+ var pBest uintptr = (*RenameCtx)(unsafe.Pointer(pCtx)).FpList
+ var pToken uintptr
+ var pp uintptr
+
+ for pToken = (*RenameToken)(unsafe.Pointer(pBest)).FpNext; pToken != 0; pToken = (*RenameToken)(unsafe.Pointer(pToken)).FpNext {
+ if (*RenameToken)(unsafe.Pointer(pToken)).Ft.Fz > (*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz {
+ pBest = pToken
+ }
+ }
+ for pp = pCtx; *(*uintptr)(unsafe.Pointer(pp)) != pBest; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*RenameToken)(unsafe.Pointer(pBest)).FpNext
+
+ return pBest
+}
+
+func renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType uintptr, pObject uintptr, pParse uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var zT uintptr = Xsqlite3_value_text(tls, pType)
+ var zN uintptr = Xsqlite3_value_text(tls, pObject)
+ var zErr uintptr
+
+ zErr = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+11300,
+ libc.VaList(bp, zT, zN, func() uintptr {
+ if *(*int8)(unsafe.Pointer(zWhen)) != 0 {
+ return ts + 11323
+ }
+ return ts + 1547
+ }(), zWhen,
+ (*Parse)(unsafe.Pointer(pParse)).FzErrMsg))
+ Xsqlite3_result_error(tls, pCtx, zErr, -1)
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zErr)
+}
+
+func renameColumnElistNames(tls *libc.TLS, pParse uintptr, pCtx uintptr, pEList uintptr, zOld uintptr) {
+ if pEList != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ var zName uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FzEName
+ if int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0) == ENAME_NAME &&
+ zName != uintptr(0) &&
+ 0 == Xsqlite3_stricmp(tls, zName, zOld) {
+ renameTokenFind(tls, pParse, pCtx, zName)
+ }
+ }
+ }
+}
+
+func renameColumnIdlistNames(tls *libc.TLS, pParse uintptr, pCtx uintptr, pIdList uintptr, zOld uintptr) {
+ if pIdList != 0 {
+ var i int32
+ for i = 0; i < (*IdList)(unsafe.Pointer(pIdList)).FnId; i++ {
+ var zName uintptr = (*IdList_item)(unsafe.Pointer(pIdList + 8 + uintptr(i)*16)).FzName
+ if 0 == Xsqlite3_stricmp(tls, zName, zOld) {
+ renameTokenFind(tls, pParse, pCtx, zName)
+ }
+ }
+ }
+}
+
+func renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uintptr, bTemp int32) int32 {
+ var rc int32
+
+ Xsqlite3ParseObjectInit(tls, p, db)
+ if zSql == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ if Xsqlite3_strnicmp(tls, zSql, ts+11325, 7) != 0 {
+ return Xsqlite3CorruptError(tls, 113494)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = func() uint8 {
+ if bTemp != 0 {
+ return uint8(1)
+ }
+ return uint8(Xsqlite3FindDbName(tls, db, zDb))
+ }()
+ (*Parse)(unsafe.Pointer(p)).FeParseMode = U8(PARSE_MODE_RENAME)
+ (*Parse)(unsafe.Pointer(p)).Fdb = db
+ (*Parse)(unsafe.Pointer(p)).FnQueryLoop = U32(1)
+ rc = Xsqlite3RunParser(tls, p, zSql)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ rc = SQLITE_NOMEM
+ }
+ if rc == SQLITE_OK &&
+ ((*Parse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*Parse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*Parse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) {
+ rc = Xsqlite3CorruptError(tls, 113505)
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(0)
+ return rc
+}
+
+func renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, zNew uintptr, bQuote int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var nNew I64 = I64(Xsqlite3Strlen30(tls, zNew))
+ var nSql I64 = I64(Xsqlite3Strlen30(tls, zSql))
+ var db uintptr = Xsqlite3_context_db_handle(tls, pCtx)
+ var rc int32 = SQLITE_OK
+ var zQuot uintptr = uintptr(0)
+ var zOut uintptr
+ var nQuot I64 = int64(0)
+ var zBuf1 uintptr = uintptr(0)
+ var zBuf2 uintptr = uintptr(0)
+
+ if zNew != 0 {
+ zQuot = Xsqlite3MPrintf(tls, db, ts+11333, libc.VaList(bp, zNew))
+ if zQuot == uintptr(0) {
+ return SQLITE_NOMEM
+ } else {
+ nQuot = I64(Xsqlite3Strlen30(tls, zQuot) - 1)
+ }
+
+ zOut = Xsqlite3DbMallocZero(tls, db, uint64(nSql+I64((*RenameCtx)(unsafe.Pointer(pRename)).FnList)*nQuot+int64(1)))
+ } else {
+ zOut = Xsqlite3DbMallocZero(tls, db, uint64((nSql*int64(2)+int64(1))*int64(3)))
+ if zOut != 0 {
+ zBuf1 = zOut + uintptr(nSql*int64(2)+int64(1))
+ zBuf2 = zOut + uintptr(nSql*int64(4)+int64(2))
+ }
+ }
+
+ if zOut != 0 {
+ var nOut int32 = int32(nSql)
+ libc.X__builtin___memcpy_chk(tls, zOut, zSql, uint64(nSql), libc.X__builtin_object_size(tls, zOut, 0))
+ for (*RenameCtx)(unsafe.Pointer(pRename)).FpList != 0 {
+ var iOff int32
+ var nReplace U32
+ var zReplace uintptr
+ var pBest uintptr = renameColumnTokenNext(tls, pRename)
+
+ if zNew != 0 {
+ if bQuote == 0 && Xsqlite3IsIdChar(tls, uint8(*(*int8)(unsafe.Pointer((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz)))) != 0 {
+ nReplace = U32(nNew)
+ zReplace = zNew
+ } else {
+ nReplace = U32(nQuot)
+ zReplace = zQuot
+ if int32(*(*int8)(unsafe.Pointer((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == '"' {
+ nReplace++
+ }
+ }
+ } else {
+ libc.X__builtin___memcpy_chk(tls, zBuf1, (*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz, uint64((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn), libc.X__builtin_object_size(tls, zBuf1, 0))
+ *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = int8(0)
+ Xsqlite3Dequote(tls, zBuf1)
+ Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, ts+11339, libc.VaList(bp+8, zBuf1,
+ func() uintptr {
+ if int32(*(*int8)(unsafe.Pointer((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == '\'' {
+ return ts + 11323
+ }
+ return ts + 1547
+ }()))
+ zReplace = zBuf2
+ nReplace = U32(Xsqlite3Strlen30(tls, zReplace))
+ }
+
+ iOff = int32((int64((*RenameToken)(unsafe.Pointer(pBest)).Ft.Fz) - int64(zSql)) / 1)
+ if (*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn != nReplace {
+ libc.X__builtin___memmove_chk(tls, zOut+uintptr(U32(iOff)+nReplace), zOut+uintptr(uint32(iOff)+(*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn), uint64(uint32(nOut)-(uint32(iOff)+(*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn)), libc.X__builtin_object_size(tls, zOut+uintptr(U32(iOff)+nReplace), 0))
+ nOut = int32(U32(nOut) + (nReplace - (*RenameToken)(unsafe.Pointer(pBest)).Ft.Fn))
+ *(*int8)(unsafe.Pointer(zOut + uintptr(nOut))) = int8(0)
+ }
+ libc.X__builtin___memcpy_chk(tls, zOut+uintptr(iOff), zReplace, uint64(nReplace), libc.X__builtin_object_size(tls, zOut+uintptr(iOff), 0))
+ Xsqlite3DbFree(tls, db, pBest)
+ }
+
+ Xsqlite3_result_text(tls, pCtx, zOut, -1, libc.UintptrFromInt32(-1))
+ Xsqlite3DbFree(tls, db, zOut)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+
+ Xsqlite3_free(tls, zQuot)
+ return rc
+}
+
+func renameResolveTrigger(tls *libc.TLS, pParse uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pNew uintptr = (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger
+ var pStep uintptr
+
+ var rc int32 = SQLITE_OK
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+
+ (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab = Xsqlite3FindTable(tls, db, (*Trigger)(unsafe.Pointer(pNew)).Ftable,
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(Xsqlite3SchemaToIndex(tls, db, (*Trigger)(unsafe.Pointer(pNew)).FpTabSchema))*32)).FzDbSName)
+ (*Parse)(unsafe.Pointer(pParse)).FeTriggerOp = (*Trigger)(unsafe.Pointer(pNew)).Fop
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab != 0 {
+ rc = Xsqlite3ViewGetColumnNames(tls, pParse, (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab)
+ }
+
+ if rc == SQLITE_OK && (*Trigger)(unsafe.Pointer(pNew)).FpWhen != 0 {
+ rc = Xsqlite3ResolveExprNames(tls, bp, (*Trigger)(unsafe.Pointer(pNew)).FpWhen)
+ }
+
+ for pStep = (*Trigger)(unsafe.Pointer(pNew)).Fstep_list; rc == SQLITE_OK && pStep != 0; pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext {
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect != 0 {
+ Xsqlite3SelectPrep(tls, pParse, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect, bp)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ rc = (*Parse)(unsafe.Pointer(pParse)).Frc
+ }
+ }
+ if rc == SQLITE_OK && (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget != 0 {
+ var pSrc uintptr = Xsqlite3TriggerStepSrc(tls, pParse, pStep)
+ if pSrc != 0 {
+ var pSel uintptr = Xsqlite3SelectNew(tls,
+ pParse, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList, pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0))
+ if pSel == uintptr(0) {
+ (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList = uintptr(0)
+ pSrc = uintptr(0)
+ rc = SQLITE_NOMEM
+ } else {
+ Xsqlite3SelectPrep(tls, pParse, pSel, uintptr(0))
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ rc = SQLITE_OK
+ }
+
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList != 0 {
+ (*Select)(unsafe.Pointer(pSel)).FpEList = uintptr(0)
+ }
+ (*Select)(unsafe.Pointer(pSel)).FpSrc = uintptr(0)
+ Xsqlite3SelectDelete(tls, db, pSel)
+ }
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom != 0 {
+ var i int32
+ for i = 0; i < (*SrcList)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpFrom)).FnSrc && rc == SQLITE_OK; i++ {
+ var p uintptr = (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom + 8 + uintptr(i)*104
+ if (*SrcItem)(unsafe.Pointer(p)).FpSelect != 0 {
+ Xsqlite3SelectPrep(tls, pParse, (*SrcItem)(unsafe.Pointer(p)).FpSelect, uintptr(0))
+ }
+ }
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ rc = SQLITE_NOMEM
+ }
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = pSrc
+ if rc == SQLITE_OK && (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere != 0 {
+ rc = Xsqlite3ResolveExprNames(tls, bp, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3ResolveExprListNames(tls, bp, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList)
+ }
+
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert != 0 && rc == SQLITE_OK {
+ var pUpsert uintptr = (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert
+ (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc = pSrc
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = pUpsert
+ (*NameContext)(unsafe.Pointer(bp)).FncFlags = NC_UUpsert
+ rc = Xsqlite3ResolveExprListNames(tls, bp, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget)
+ if rc == SQLITE_OK {
+ var pUpsertSet uintptr = (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSet
+ rc = Xsqlite3ResolveExprListNames(tls, bp, pUpsertSet)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3ResolveExprNames(tls, bp, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertWhere)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3ResolveExprNames(tls, bp, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTargetWhere)
+ }
+ (*NameContext)(unsafe.Pointer(bp)).FncFlags = 0
+ }
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = uintptr(0)
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+ }
+ return rc
+}
+
+func renameWalkTrigger(tls *libc.TLS, pWalker uintptr, pTrigger uintptr) {
+ var pStep uintptr
+
+ Xsqlite3WalkExpr(tls, pWalker, (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen)
+
+ for pStep = (*Trigger)(unsafe.Pointer(pTrigger)).Fstep_list; pStep != 0; pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext {
+ Xsqlite3WalkSelect(tls, pWalker, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect)
+ Xsqlite3WalkExpr(tls, pWalker, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere)
+ Xsqlite3WalkExprList(tls, pWalker, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList)
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert != 0 {
+ var pUpsert uintptr = (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert
+ Xsqlite3WalkExprList(tls, pWalker, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget)
+ Xsqlite3WalkExprList(tls, pWalker, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSet)
+ Xsqlite3WalkExpr(tls, pWalker, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertWhere)
+ Xsqlite3WalkExpr(tls, pWalker, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTargetWhere)
+ }
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom != 0 {
+ var i int32
+ for i = 0; i < (*SrcList)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpFrom)).FnSrc; i++ {
+ Xsqlite3WalkSelect(tls, pWalker, (*SrcItem)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpFrom+8+uintptr(i)*104)).FpSelect)
+ }
+ }
+ }
+}
+
+func renameParseCleanup(tls *libc.TLS, pParse uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pIdx uintptr
+ if (*Parse)(unsafe.Pointer(pParse)).FpVdbe != 0 {
+ Xsqlite3VdbeFinalize(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe)
+ }
+ Xsqlite3DeleteTable(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpNewTable)
+ for libc.AssignUintptr(&pIdx, (*Parse)(unsafe.Pointer(pParse)).FpNewIndex) != uintptr(0) {
+ (*Parse)(unsafe.Pointer(pParse)).FpNewIndex = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ Xsqlite3FreeIndex(tls, db, pIdx)
+ }
+ Xsqlite3DeleteTrigger(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger)
+ Xsqlite3DbFree(tls, db, (*Parse)(unsafe.Pointer(pParse)).FzErrMsg)
+ renameTokenFree(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpRename)
+ Xsqlite3ParseObjectReset(tls, pParse)
+}
+
+func renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(504)
+ defer tls.Free(504)
+
+ var db uintptr
+
+ var zSql uintptr
+ var zDb uintptr
+ var zTable uintptr
+ var iCol int32
+ var zNew uintptr
+ var bQuote int32
+ var bTemp int32
+ var zOld uintptr
+ var rc int32
+
+ var pIdx uintptr
+ var i int32
+ var pTab uintptr
+ var xAuth Sqlite3_xauth
+ var pSelect uintptr
+ var pExpr uintptr
+
+ var bFKOnly int32
+ var pFKey uintptr
+ var pUpsertSet uintptr
+ var pTarget uintptr
+
+ var pStep uintptr
+ db = Xsqlite3_context_db_handle(tls, context)
+ zSql = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)))
+ zTable = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 4*8)))
+ iCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 5*8)))
+ zNew = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 6*8)))
+ bQuote = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 7*8)))
+ bTemp = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 8*8)))
+ xAuth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+
+ _ = NotUsed
+ if !(zSql == uintptr(0)) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(zTable == uintptr(0)) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ if !(zNew == uintptr(0)) {
+ goto __3
+ }
+ return
+__3:
+ ;
+ if !(iCol < 0) {
+ goto __4
+ }
+ return
+__4:
+ ;
+ Xsqlite3BtreeEnterAll(tls, db)
+ pTab = Xsqlite3FindTable(tls, db, zTable, zDb)
+ if !(pTab == uintptr(0) || iCol >= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __5
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+ return
+__5:
+ ;
+ zOld = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).FzCnName
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(RenameCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*RenameCtx)(unsafe.Pointer(bp)).FiCol = func() int32 {
+ if iCol == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ return -1
+ }
+ return iCol
+ }()
+
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+ rc = renameParseSql(tls, bp+32, zDb, db, zSql, bTemp)
+
+ libc.X__builtin___memset_chk(tls, bp+456, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp+456, 0))
+ (*Walker)(unsafe.Pointer(bp + 456)).FpParse = bp + 32
+ (*Walker)(unsafe.Pointer(bp + 456)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameColumnExprCb}))
+ (*Walker)(unsafe.Pointer(bp + 456)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameColumnSelectCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 456 + 40)) = bp
+
+ (*RenameCtx)(unsafe.Pointer(bp)).FpTab = pTab
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ goto renameColumnFunc_done
+__6:
+ ;
+ if !((*Parse)(unsafe.Pointer(bp+32)).FpNewTable != 0) {
+ goto __7
+ }
+ if !(int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FeTabType) == TABTYP_VIEW) {
+ goto __9
+ }
+ pSelect = *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable + 64))
+ *(*U32)(unsafe.Pointer(pSelect + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_View))
+ (*Parse)(unsafe.Pointer(bp + 32)).Frc = SQLITE_OK
+ Xsqlite3SelectPrep(tls, bp+32, pSelect, uintptr(0))
+ rc = func() int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return SQLITE_NOMEM
+ }
+ return (*Parse)(unsafe.Pointer(bp + 32)).Frc
+ }()
+ if !(rc == SQLITE_OK) {
+ goto __11
+ }
+ Xsqlite3WalkSelect(tls, bp+456, pSelect)
+__11:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ goto renameColumnFunc_done
+__12:
+ ;
+ goto __10
+__9:
+ if !(int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FeTabType) == TABTYP_NORM) {
+ goto __13
+ }
+
+ bFKOnly = Xsqlite3_stricmp(tls, zTable, (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FzName)
+ (*RenameCtx)(unsafe.Pointer(bp)).FpTab = (*Parse)(unsafe.Pointer(bp + 32)).FpNewTable
+ if !(bFKOnly == 0) {
+ goto __14
+ }
+ if !(iCol < int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FnCol)) {
+ goto __15
+ }
+ renameTokenFind(tls,
+ bp+32, bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FaCol+uintptr(iCol)*24)).FzCnName)
+__15:
+ ;
+ if !((*RenameCtx)(unsafe.Pointer(bp)).FiCol < 0) {
+ goto __16
+ }
+ renameTokenFind(tls, bp+32, bp, (*Parse)(unsafe.Pointer(bp+32)).FpNewTable+52)
+__16:
+ ;
+ Xsqlite3WalkExprList(tls, bp+456, (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FpCheck)
+ pIdx = (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp + 32)).FpNewTable)).FpIndex
+__17:
+ if !(pIdx != 0) {
+ goto __19
+ }
+ Xsqlite3WalkExprList(tls, bp+456, (*Index)(unsafe.Pointer(pIdx)).FaColExpr)
+ goto __18
+__18:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __17
+ goto __19
+__19:
+ ;
+ pIdx = (*Parse)(unsafe.Pointer(bp + 32)).FpNewIndex
+__20:
+ if !(pIdx != 0) {
+ goto __22
+ }
+ Xsqlite3WalkExprList(tls, bp+456, (*Index)(unsafe.Pointer(pIdx)).FaColExpr)
+ goto __21
+__21:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __20
+ goto __22
+__22:
+ ;
+ i = 0
+__23:
+ if !(i < int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FnCol)) {
+ goto __25
+ }
+ pExpr = Xsqlite3ColumnExpr(tls, (*Parse)(unsafe.Pointer(bp+32)).FpNewTable,
+ (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable)).FaCol+uintptr(i)*24)
+ Xsqlite3WalkExpr(tls, bp+456, pExpr)
+ goto __24
+__24:
+ i++
+ goto __23
+ goto __25
+__25:
+ ;
+__14:
+ ;
+ pFKey = *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTable + 64 + 8))
+__26:
+ if !(pFKey != 0) {
+ goto __28
+ }
+ i = 0
+__29:
+ if !(i < (*FKey)(unsafe.Pointer(pFKey)).FnCol) {
+ goto __31
+ }
+ if !(bFKOnly == 0 && (*sColMap)(unsafe.Pointer(pFKey+64+uintptr(i)*16)).FiFrom == iCol) {
+ goto __32
+ }
+ renameTokenFind(tls, bp+32, bp, pFKey+64+uintptr(i)*16)
+__32:
+ ;
+ if !(0 == Xsqlite3_stricmp(tls, (*FKey)(unsafe.Pointer(pFKey)).FzTo, zTable) &&
+ 0 == Xsqlite3_stricmp(tls, (*sColMap)(unsafe.Pointer(pFKey+64+uintptr(i)*16)).FzCol, zOld)) {
+ goto __33
+ }
+ renameTokenFind(tls, bp+32, bp, (*sColMap)(unsafe.Pointer(pFKey+64+uintptr(i)*16)).FzCol)
+__33:
+ ;
+ goto __30
+__30:
+ i++
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __27
+__27:
+ pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom
+ goto __26
+ goto __28
+__28:
+ ;
+__13:
+ ;
+__10:
+ ;
+ goto __8
+__7:
+ if !((*Parse)(unsafe.Pointer(bp+32)).FpNewIndex != 0) {
+ goto __34
+ }
+ Xsqlite3WalkExprList(tls, bp+456, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewIndex)).FaColExpr)
+ Xsqlite3WalkExpr(tls, bp+456, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewIndex)).FpPartIdxWhere)
+ goto __35
+__34:
+ rc = renameResolveTrigger(tls, bp+32)
+ if !(rc != SQLITE_OK) {
+ goto __36
+ }
+ goto renameColumnFunc_done
+__36:
+ ;
+ pStep = (*Trigger)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp + 32)).FpNewTrigger)).Fstep_list
+__37:
+ if !(pStep != 0) {
+ goto __39
+ }
+ if !((*TriggerStep)(unsafe.Pointer(pStep)).FzTarget != 0) {
+ goto __40
+ }
+ pTarget = Xsqlite3LocateTable(tls, bp+32, uint32(0), (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget, zDb)
+ if !(pTarget == pTab) {
+ goto __41
+ }
+ if !((*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert != 0) {
+ goto __42
+ }
+ pUpsertSet = (*Upsert)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert)).FpUpsertSet
+ renameColumnElistNames(tls, bp+32, bp, pUpsertSet, zOld)
+__42:
+ ;
+ renameColumnIdlistNames(tls, bp+32, bp, (*TriggerStep)(unsafe.Pointer(pStep)).FpIdList, zOld)
+ renameColumnElistNames(tls, bp+32, bp, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList, zOld)
+__41:
+ ;
+__40:
+ ;
+ goto __38
+__38:
+ pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext
+ goto __37
+ goto __39
+__39:
+ ;
+ if !((*Parse)(unsafe.Pointer(bp+32)).FpTriggerTab == pTab) {
+ goto __43
+ }
+ renameColumnIdlistNames(tls, bp+32, bp, (*Trigger)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+32)).FpNewTrigger)).FpColumns, zOld)
+__43:
+ ;
+ renameWalkTrigger(tls, bp+456, (*Parse)(unsafe.Pointer(bp+32)).FpNewTrigger)
+__35:
+ ;
+__8:
+ ;
+ rc = renameEditSql(tls, context, bp, zSql, zNew, bQuote)
+
+renameColumnFunc_done:
+ if !(rc != SQLITE_OK) {
+ goto __44
+ }
+ if !(rc == SQLITE_ERROR && Xsqlite3WritableSchema(tls, db) != 0) {
+ goto __45
+ }
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv)))
+ goto __46
+__45:
+ if !((*Parse)(unsafe.Pointer(bp+32)).FzErrMsg != 0) {
+ goto __47
+ }
+ renameColumnParseError(tls, context, ts+1547, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32)
+ goto __48
+__47:
+ Xsqlite3_result_error_code(tls, context, rc)
+__48:
+ ;
+__46:
+ ;
+__44:
+ ;
+ renameParseCleanup(tls, bp+32)
+ renameTokenFree(tls, db, (*RenameCtx)(unsafe.Pointer(bp)).FpList)
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+ Xsqlite3BtreeLeaveAll(tls, db)
+}
+
+func renameTableExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0) &&
+ (*RenameCtx)(unsafe.Pointer(p)).FpTab == *(*uintptr)(unsafe.Pointer(pExpr + 64)) {
+ renameTokenFind(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, p, pExpr+64)
+ }
+ return WRC_Continue
+}
+
+func renameTableSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintptr) int32 {
+ var i int32
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pSrc uintptr = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ if (*Select)(unsafe.Pointer(pSelect)).FselFlags&U32(SF_View|SF_CopyCte) != 0 {
+ return WRC_Prune
+ }
+ if pSrc == uintptr(0) {
+ return WRC_Abort
+ }
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc; i++ {
+ var pItem uintptr = pSrc + 8 + uintptr(i)*104
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpTab == (*RenameCtx)(unsafe.Pointer(p)).FpTab {
+ renameTokenFind(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, p, (*SrcItem)(unsafe.Pointer(pItem)).FzName)
+ }
+ }
+ renameWalkWith(tls, pWalker, pSelect)
+
+ return WRC_Continue
+}
+
+func renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(560)
+ defer tls.Free(560)
+
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var zDb uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var zInput uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)))
+ var zOld uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 4*8)))
+ var zNew uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 5*8)))
+ var bTemp int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 6*8)))
+ _ = NotUsed
+
+ if zInput != 0 && zOld != 0 && zNew != 0 {
+ var rc int32
+ var bQuote int32 = 1
+
+ var xAuth Sqlite3_xauth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+
+ Xsqlite3BtreeEnterAll(tls, db)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(RenameCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*RenameCtx)(unsafe.Pointer(bp)).FpTab = Xsqlite3FindTable(tls, db, zOld, zDb)
+ libc.X__builtin___memset_chk(tls, bp+32, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp+32, 0))
+ (*Walker)(unsafe.Pointer(bp + 32)).FpParse = bp + 80
+ (*Walker)(unsafe.Pointer(bp + 32)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameTableExprCb}))
+ (*Walker)(unsafe.Pointer(bp + 32)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameTableSelectCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 32 + 40)) = bp
+
+ rc = renameParseSql(tls, bp+80, zDb, db, zInput, bTemp)
+
+ if rc == SQLITE_OK {
+ var isLegacy int32 = int32((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(SQLITE_LegacyAlter))
+ if (*Parse)(unsafe.Pointer(bp+80)).FpNewTable != 0 {
+ var pTab uintptr = (*Parse)(unsafe.Pointer(bp + 80)).FpNewTable
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ if isLegacy == 0 {
+ var pSelect uintptr = *(*uintptr)(unsafe.Pointer(pTab + 64))
+
+ libc.X__builtin___memset_chk(tls, bp+504, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+504, 0))
+ (*NameContext)(unsafe.Pointer(bp + 504)).FpParse = bp + 80
+
+ *(*U32)(unsafe.Pointer(pSelect + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_View))
+ Xsqlite3SelectPrep(tls, bp+80, *(*uintptr)(unsafe.Pointer(pTab + 64)), bp+504)
+ if (*Parse)(unsafe.Pointer(bp+80)).FnErr != 0 {
+ rc = (*Parse)(unsafe.Pointer(bp + 80)).Frc
+ } else {
+ Xsqlite3WalkSelect(tls, bp+32, *(*uintptr)(unsafe.Pointer(pTab + 64)))
+ }
+ }
+ } else {
+ if (isLegacy == 0 || (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0) &&
+ !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ var pFKey uintptr
+
+ for pFKey = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); pFKey != 0; pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom {
+ if Xsqlite3_stricmp(tls, (*FKey)(unsafe.Pointer(pFKey)).FzTo, zOld) == 0 {
+ renameTokenFind(tls, bp+80, bp, (*FKey)(unsafe.Pointer(pFKey)).FzTo)
+ }
+ }
+ }
+
+ if Xsqlite3_stricmp(tls, zOld, (*Table)(unsafe.Pointer(pTab)).FzName) == 0 {
+ (*RenameCtx)(unsafe.Pointer(bp)).FpTab = pTab
+ if isLegacy == 0 {
+ Xsqlite3WalkExprList(tls, bp+32, (*Table)(unsafe.Pointer(pTab)).FpCheck)
+ }
+ renameTokenFind(tls, bp+80, bp, (*Table)(unsafe.Pointer(pTab)).FzName)
+ }
+ }
+ } else if (*Parse)(unsafe.Pointer(bp+80)).FpNewIndex != 0 {
+ renameTokenFind(tls, bp+80, bp, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+80)).FpNewIndex)).FzName)
+ if isLegacy == 0 {
+ Xsqlite3WalkExpr(tls, bp+32, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+80)).FpNewIndex)).FpPartIdxWhere)
+ }
+ } else {
+ var pTrigger uintptr = (*Parse)(unsafe.Pointer(bp + 80)).FpNewTrigger
+ var pStep uintptr
+ if 0 == Xsqlite3_stricmp(tls, (*Trigger)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+80)).FpNewTrigger)).Ftable, zOld) &&
+ (*Table)(unsafe.Pointer((*RenameCtx)(unsafe.Pointer(bp)).FpTab)).FpSchema == (*Trigger)(unsafe.Pointer(pTrigger)).FpTabSchema {
+ renameTokenFind(tls, bp+80, bp, (*Trigger)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+80)).FpNewTrigger)).Ftable)
+ }
+
+ if isLegacy == 0 {
+ rc = renameResolveTrigger(tls, bp+80)
+ if rc == SQLITE_OK {
+ renameWalkTrigger(tls, bp+32, pTrigger)
+ for pStep = (*Trigger)(unsafe.Pointer(pTrigger)).Fstep_list; pStep != 0; pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext {
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget != 0 && 0 == Xsqlite3_stricmp(tls, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget, zOld) {
+ renameTokenFind(tls, bp+80, bp, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget)
+ }
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom != 0 {
+ var i int32
+ for i = 0; i < (*SrcList)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpFrom)).FnSrc; i++ {
+ var pItem uintptr = (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom + 8 + uintptr(i)*104
+ if 0 == Xsqlite3_stricmp(tls, (*SrcItem)(unsafe.Pointer(pItem)).FzName, zOld) {
+ renameTokenFind(tls, bp+80, bp, (*SrcItem)(unsafe.Pointer(pItem)).FzName)
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = renameEditSql(tls, context, bp, zInput, zNew, bQuote)
+ }
+ if rc != SQLITE_OK {
+ if rc == SQLITE_ERROR && Xsqlite3WritableSchema(tls, db) != 0 {
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8)))
+ } else if (*Parse)(unsafe.Pointer(bp+80)).FzErrMsg != 0 {
+ renameColumnParseError(tls, context, ts+1547, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+80)
+ } else {
+ Xsqlite3_result_error_code(tls, context, rc)
+ }
+ }
+
+ renameParseCleanup(tls, bp+80)
+ renameTokenFree(tls, db, (*RenameCtx)(unsafe.Pointer(bp)).FpList)
+ Xsqlite3BtreeLeaveAll(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+ }
+
+ return
+}
+
+func renameQuotefixExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_STRING && (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_DblQuoted) != 0 {
+ renameTokenFind(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, *(*uintptr)(unsafe.Pointer(pWalker + 40)), pExpr)
+ }
+ return WRC_Continue
+}
+
+func renameQuotefixFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(504)
+ defer tls.Free(504)
+
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var zDb uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var zInput uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ var xAuth Sqlite3_xauth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+
+ Xsqlite3BtreeEnterAll(tls, db)
+
+ _ = NotUsed
+ if zDb != 0 && zInput != 0 {
+ var rc int32
+
+ rc = renameParseSql(tls, bp, zDb, db, zInput, 0)
+
+ if rc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, bp+424, 0, uint64(unsafe.Sizeof(RenameCtx{})), libc.X__builtin_object_size(tls, bp+424, 0))
+ libc.X__builtin___memset_chk(tls, bp+456, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp+456, 0))
+ (*Walker)(unsafe.Pointer(bp + 456)).FpParse = bp
+ (*Walker)(unsafe.Pointer(bp + 456)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameQuotefixExprCb}))
+ (*Walker)(unsafe.Pointer(bp + 456)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renameColumnSelectCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 456 + 40)) = bp + 424
+
+ if (*Parse)(unsafe.Pointer(bp)).FpNewTable != 0 {
+ if int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable)).FeTabType) == TABTYP_VIEW {
+ var pSelect uintptr = *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable + 64))
+ *(*U32)(unsafe.Pointer(pSelect + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_View))
+ (*Parse)(unsafe.Pointer(bp)).Frc = SQLITE_OK
+ Xsqlite3SelectPrep(tls, bp, pSelect, uintptr(0))
+ rc = func() int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return SQLITE_NOMEM
+ }
+ return (*Parse)(unsafe.Pointer(bp)).Frc
+ }()
+ if rc == SQLITE_OK {
+ Xsqlite3WalkSelect(tls, bp+456, pSelect)
+ }
+ } else {
+ var i int32
+ Xsqlite3WalkExprList(tls, bp+456, (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable)).FpCheck)
+ for i = 0; i < int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable)).FnCol); i++ {
+ Xsqlite3WalkExpr(tls, bp+456,
+ Xsqlite3ColumnExpr(tls, (*Parse)(unsafe.Pointer(bp)).FpNewTable,
+ (*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable)).FaCol+uintptr(i)*24))
+ }
+ }
+ } else if (*Parse)(unsafe.Pointer(bp)).FpNewIndex != 0 {
+ Xsqlite3WalkExprList(tls, bp+456, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewIndex)).FaColExpr)
+ Xsqlite3WalkExpr(tls, bp+456, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewIndex)).FpPartIdxWhere)
+ } else {
+ rc = renameResolveTrigger(tls, bp)
+ if rc == SQLITE_OK {
+ renameWalkTrigger(tls, bp+456, (*Parse)(unsafe.Pointer(bp)).FpNewTrigger)
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = renameEditSql(tls, context, bp+424, zInput, uintptr(0), 0)
+ }
+ renameTokenFree(tls, db, (*RenameCtx)(unsafe.Pointer(bp+424)).FpList)
+ }
+ if rc != SQLITE_OK {
+ if Xsqlite3WritableSchema(tls, db) != 0 && rc == SQLITE_ERROR {
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ } else {
+ Xsqlite3_result_error_code(tls, context, rc)
+ }
+ }
+ renameParseCleanup(tls, bp)
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+
+ Xsqlite3BtreeLeaveAll(tls, db)
+}
+
+func renameTableTest(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(480)
+ defer tls.Free(480)
+
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var zDb uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var zInput uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ var bTemp int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 4*8)))
+ var isLegacy int32 = int32((*Sqlite3)(unsafe.Pointer(db)).Fflags & uint64(SQLITE_LegacyAlter))
+ var zWhen uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 5*8)))
+ var bNoDQS int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 6*8)))
+
+ var xAuth Sqlite3_xauth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+
+ _ = NotUsed
+
+ if zDb != 0 && zInput != 0 {
+ var rc int32
+
+ var flags int32 = int32((*Sqlite3)(unsafe.Pointer(db)).Fflags)
+ if bNoDQS != 0 {
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.Uint64FromInt32(libc.CplInt32(SQLITE_DqsDML | SQLITE_DqsDDL))
+ }
+ rc = renameParseSql(tls, bp, zDb, db, zInput, bTemp)
+ *(*U64)(unsafe.Pointer(db + 48)) |= U64(flags & (SQLITE_DqsDML | SQLITE_DqsDDL))
+ if rc == SQLITE_OK {
+ if isLegacy == 0 && (*Parse)(unsafe.Pointer(bp)).FpNewTable != 0 && int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable)).FeTabType) == TABTYP_VIEW {
+ libc.X__builtin___memset_chk(tls, bp+424, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+424, 0))
+ (*NameContext)(unsafe.Pointer(bp + 424)).FpParse = bp
+ Xsqlite3SelectPrep(tls, bp, *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTable + 64)), bp+424)
+ if (*Parse)(unsafe.Pointer(bp)).FnErr != 0 {
+ rc = (*Parse)(unsafe.Pointer(bp)).Frc
+ }
+ } else if (*Parse)(unsafe.Pointer(bp)).FpNewTrigger != 0 {
+ if isLegacy == 0 {
+ rc = renameResolveTrigger(tls, bp)
+ }
+ if rc == SQLITE_OK {
+ var i1 int32 = Xsqlite3SchemaToIndex(tls, db, (*Trigger)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp)).FpNewTrigger)).FpTabSchema)
+ var i2 int32 = Xsqlite3FindDbName(tls, db, zDb)
+ if i1 == i2 {
+ Xsqlite3_result_int(tls, context, 1)
+ }
+ }
+ }
+ }
+
+ if rc != SQLITE_OK && zWhen != 0 && !(Xsqlite3WritableSchema(tls, db) != 0) {
+ renameColumnParseError(tls, context, zWhen, *(*uintptr)(unsafe.Pointer(argv + 2*8)), *(*uintptr)(unsafe.Pointer(argv + 3*8)), bp)
+ }
+ renameParseCleanup(tls, bp)
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+}
+
+func dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(448)
+ defer tls.Free(448)
+
+ var db uintptr
+ var iSchema int32
+ var zSql uintptr
+ var iCol int32
+ var zDb uintptr
+ var rc int32
+
+ var pCol uintptr
+ var pTab uintptr
+ var zEnd uintptr
+ var zNew uintptr
+ var xAuth Sqlite3_xauth
+ var pEnd uintptr
+ db = Xsqlite3_context_db_handle(tls, context)
+ iSchema = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zSql = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ iCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iSchema)*32)).FzDbSName
+ zNew = uintptr(0)
+ xAuth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+
+ _ = NotUsed
+ rc = renameParseSql(tls, bp+24, zDb, db, zSql, libc.Bool32(iSchema == 1))
+ if !(rc != SQLITE_OK) {
+ goto __1
+ }
+ goto drop_column_done
+__1:
+ ;
+ pTab = (*Parse)(unsafe.Pointer(bp + 24)).FpNewTable
+ if !(pTab == uintptr(0) || int32((*Table)(unsafe.Pointer(pTab)).FnCol) == 1 || iCol >= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __2
+ }
+
+ rc = Xsqlite3CorruptError(tls, 114441)
+ goto drop_column_done
+__2:
+ ;
+ pCol = renameTokenFind(tls, bp+24, uintptr(0), (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FzCnName)
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)-1) {
+ goto __3
+ }
+ pEnd = renameTokenFind(tls, bp+24, uintptr(0), (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol+1)*24)).FzCnName)
+ zEnd = (*RenameToken)(unsafe.Pointer(pEnd)).Ft.Fz
+ goto __4
+__3:
+ ;
+ zEnd = zSql + uintptr(*(*int32)(unsafe.Pointer(pTab + 64)))
+__5:
+ if !(int32(*(*int8)(unsafe.Pointer((*RenameToken)(unsafe.Pointer(pCol)).Ft.Fz))) != 0 && int32(*(*int8)(unsafe.Pointer((*RenameToken)(unsafe.Pointer(pCol)).Ft.Fz))) != ',') {
+ goto __6
+ }
+ (*RenameToken)(unsafe.Pointer(pCol)).Ft.Fz--
+ goto __5
+__6:
+ ;
+__4:
+ ;
+ zNew = Xsqlite3MPrintf(tls, db, ts+11344, libc.VaList(bp, (int64((*RenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql))/1, zSql, zEnd))
+ Xsqlite3_result_text(tls, context, zNew, -1, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, zNew)
+
+drop_column_done:
+ renameParseCleanup(tls, bp+24)
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+ if !(rc != SQLITE_OK) {
+ goto __7
+ }
+ Xsqlite3_result_error_code(tls, context, rc)
+__7:
+}
+
+// This function is called by the parser upon parsing an
+//
+// ALTER TABLE pSrc DROP COLUMN pName
+//
+// statement. Argument pSrc contains the possibly qualified name of the
+// table being edited, and token pName the name of the column to drop.
+func Xsqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var db uintptr
+ var pTab uintptr
+ var iDb int32
+ var zDb uintptr
+ var zCol uintptr
+ var iCol int32
+ var iPos int32
+ var iColPos int32
+ var regOut int32
+ var i int32
+ var addr int32
+ var reg int32
+ var regRec int32
+ var pPk uintptr
+ var nField int32
+ var iCur int32
+ var v uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ zCol = uintptr(0)
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto exit_drop_column
+__1:
+ ;
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pSrc+8)
+ if !!(pTab != 0) {
+ goto __2
+ }
+ goto exit_drop_column
+__2:
+ ;
+ if !(SQLITE_OK != isAlterableTable(tls, pParse, pTab)) {
+ goto __3
+ }
+ goto exit_drop_column
+__3:
+ ;
+ if !(SQLITE_OK != isRealTable(tls, pParse, pTab, 1)) {
+ goto __4
+ }
+ goto exit_drop_column
+__4:
+ ;
+ zCol = Xsqlite3NameFromToken(tls, db, pName)
+ if !(zCol == uintptr(0)) {
+ goto __5
+ }
+
+ goto exit_drop_column
+__5:
+ ;
+ iCol = Xsqlite3ColumnIndex(tls, pTab, zCol)
+ if !(iCol < 0) {
+ goto __6
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+10966, libc.VaList(bp, pName))
+ goto exit_drop_column
+__6:
+ ;
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FcolFlags)&(COLFLAG_PRIMKEY|COLFLAG_UNIQUE) != 0) {
+ goto __7
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+11351,
+ libc.VaList(bp+8, func() uintptr {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FcolFlags)&COLFLAG_PRIMKEY != 0 {
+ return ts + 11379
+ }
+ return ts + 6530
+ }(),
+ zCol))
+ goto exit_drop_column
+__7:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FnCol) <= 1) {
+ goto __8
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+11391, libc.VaList(bp+24, zCol))
+ goto exit_drop_column
+__8:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_ALTER_TABLE, zDb, (*Table)(unsafe.Pointer(pTab)).FzName, zCol) != 0) {
+ goto __9
+ }
+ goto exit_drop_column
+__9:
+ ;
+ renameTestSchema(tls, pParse, zDb, libc.Bool32(iDb == 1), ts+1547, 0)
+ renameFixQuotes(tls, pParse, zDb, libc.Bool32(iDb == 1))
+ Xsqlite3NestedParse(tls, pParse,
+ ts+11439, libc.VaList(bp+32, zDb, iDb, iCol, (*Table)(unsafe.Pointer(pTab)).FzName))
+
+ renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop))
+ renameTestSchema(tls, pParse, zDb, libc.Bool32(iDb == 1), ts+11560, 1)
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0) {
+ goto __10
+ }
+ pPk = uintptr(0)
+ nField = 0
+ v = Xsqlite3GetVdbe(tls, pParse)
+ iCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3OpenTable(tls, pParse, iCur, iDb, pTab, OP_OpenWrite)
+ addr = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iCur)
+ reg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __11
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iCur, reg)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ goto __12
+__11:
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Index)(unsafe.Pointer(pPk)).FnColumn)
+ i = 0
+__13:
+ if !(i < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)) {
+ goto __15
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iCur, i, reg+i+1)
+ goto __14
+__14:
+ i++
+ goto __13
+ goto __15
+__15:
+ ;
+ nField = int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+__12:
+ ;
+ regRec = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ i = 0
+__16:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __18
+ }
+ if !(i != iCol && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0) {
+ goto __19
+ }
+ if !(pPk != 0) {
+ goto __20
+ }
+ iPos = int32(Xsqlite3TableColumnToIndex(tls, pPk, int16(i)))
+ iColPos = int32(Xsqlite3TableColumnToIndex(tls, pPk, int16(iCol)))
+ if !(iPos < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)) {
+ goto __22
+ }
+ goto __17
+__22:
+ ;
+ regOut = reg + 1 + iPos - libc.Bool32(iPos > iColPos)
+ goto __21
+__20:
+ regOut = reg + 1 + nField
+__21:
+ ;
+ if !(i == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __23
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regOut)
+ goto __24
+__23:
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut)
+__24:
+ ;
+ nField++
+__19:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ if !(nField == 0) {
+ goto __25
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FnMem++
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, reg+1)
+ nField = 1
+__25:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, reg+1, nField, regRec)
+ if !(pPk != 0) {
+ goto __26
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iCur, regRec, reg+1, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+ goto __27
+__26:
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iCur, regRec, reg)
+__27:
+ ;
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_SAVEPOSITION))
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iCur, addr+1)
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+__10:
+ ;
+exit_drop_column:
+ Xsqlite3DbFree(tls, db, zCol)
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+}
+
+// Register built-in functions used to help implement ALTER TABLE
+func Xsqlite3AlterFunctions(tls *libc.TLS) {
+ Xsqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&aAlterTableFuncs)), int32(uint64(unsafe.Sizeof(aAlterTableFuncs))/uint64(unsafe.Sizeof(FuncDef{}))))
+}
+
+var aAlterTableFuncs = [5]FuncDef{
+ {FnArg: int8(9), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_INTERNAL | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FxSFunc: 0, FzName: ts + 11578},
+ {FnArg: int8(7), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_INTERNAL | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FxSFunc: 0, FzName: ts + 11599},
+ {FnArg: int8(7), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_INTERNAL | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FxSFunc: 0, FzName: ts + 11619},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_INTERNAL | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FxSFunc: 0, FzName: ts + 11638},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_INTERNAL | SQLITE_UTF8 | SQLITE_FUNC_CONSTANT), FxSFunc: 0, FzName: ts + 11657}}
+
+func openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zWhere uintptr, zWhereType uintptr) {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var i int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pDb uintptr
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ var nToOpen int32
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ nToOpen = 2
+ } else {
+ nToOpen = 1
+ }
+
+ if v == uintptr(0) {
+ return
+ }
+
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+
+ for i = 0; i < int32(uint64(unsafe.Sizeof(aTable))/uint64(unsafe.Sizeof(struct {
+ FzName uintptr
+ FzCols uintptr
+ }{}))); i++ {
+ var zTab uintptr = aTable[i].FzName
+ var pStat uintptr
+ *(*U8)(unsafe.Pointer(bp + 72 + uintptr(i))) = U8(0)
+ if libc.AssignUintptr(&pStat, Xsqlite3FindTable(tls, db, zTab, (*Db)(unsafe.Pointer(pDb)).FzDbSName)) == uintptr(0) {
+ if i < nToOpen {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+11680, libc.VaList(bp, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab, aTable[i].FzCols))
+ *(*U32)(unsafe.Pointer(bp + 76 + uintptr(i)*4)) = U32((*Parse)(unsafe.Pointer(pParse)).FregRoot)
+ *(*U8)(unsafe.Pointer(bp + 72 + uintptr(i))) = U8(OPFLAG_P2ISREG)
+ }
+ } else {
+ *(*U32)(unsafe.Pointer(bp + 76 + uintptr(i)*4)) = (*Table)(unsafe.Pointer(pStat)).Ftnum
+ Xsqlite3TableLock(tls, pParse, iDb, *(*U32)(unsafe.Pointer(bp + 76 + uintptr(i)*4)), uint8(1), zTab)
+ if zWhere != 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+11703,
+ libc.VaList(bp+24, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere))
+ } else if (*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 {
+ Xsqlite3NestedParse(tls, pParse, ts+11733, libc.VaList(bp+56, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zTab))
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Clear, int32(*(*U32)(unsafe.Pointer(bp + 76 + uintptr(i)*4))), iDb)
+ }
+ }
+ }
+
+ for i = 0; i < nToOpen; i++ {
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_OpenWrite, iStatCur+i, int32(*(*U32)(unsafe.Pointer(bp + 76 + uintptr(i)*4))), iDb, 3)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(*(*U8)(unsafe.Pointer(bp + 72 + uintptr(i)))))
+
+ }
+}
+
+var aTable = [3]struct {
+ FzName uintptr
+ FzCols uintptr
+}{
+ {FzName: ts + 11751, FzCols: ts + 11764},
+ {FzName: ts + 11777, FzCols: ts + 11790},
+ {FzName: ts + 11818},
+}
+
+// Three SQL functions - stat_init(), stat_push(), and stat_get() -
+// share an instance of the following structure to hold their state
+// information.
+type StatAccum1 = struct {
+ Fdb uintptr
+ FnEst TRowcnt
+ FnRow TRowcnt
+ FnLimit int32
+ FnCol int32
+ FnKeyCol int32
+ FnSkipAhead U8
+ F__ccgo_pad1 [3]byte
+ Fcurrent StatSample
+ FnPSample TRowcnt
+ FmxSample int32
+ FiPrn U32
+ FaBest uintptr
+ FiMin int32
+ FnSample int32
+ FnMaxEqZero int32
+ FiGet int32
+ Fa uintptr
+}
+
+// Three SQL functions - stat_init(), stat_push(), and stat_get() -
+// share an instance of the following structure to hold their state
+// information.
+type StatAccum = StatAccum1
+type StatSample1 = struct {
+ FanEq uintptr
+ FanDLt uintptr
+ FanLt uintptr
+ Fu struct{ FiRowid I64 }
+ FnRowid U32
+ FisPSample U8
+ F__ccgo_pad1 [3]byte
+ FiCol int32
+ FiHash U32
+}
+
+type StatSample = StatSample1
+
+func sampleClear(tls *libc.TLS, db uintptr, p uintptr) {
+ if (*StatSample)(unsafe.Pointer(p)).FnRowid != 0 {
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(p + 24)))
+ (*StatSample)(unsafe.Pointer(p)).FnRowid = U32(0)
+ }
+}
+
+func sampleSetRowid(tls *libc.TLS, db uintptr, p uintptr, n int32, pData uintptr) {
+ if (*StatSample)(unsafe.Pointer(p)).FnRowid != 0 {
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(p + 24)))
+ }
+ *(*uintptr)(unsafe.Pointer(p + 24)) = Xsqlite3DbMallocRawNN(tls, db, uint64(n))
+ if *(*uintptr)(unsafe.Pointer(p + 24)) != 0 {
+ (*StatSample)(unsafe.Pointer(p)).FnRowid = U32(n)
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(p + 24)), pData, uint64(n), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(p + 24)), 0))
+ } else {
+ (*StatSample)(unsafe.Pointer(p)).FnRowid = U32(0)
+ }
+}
+
+func sampleSetRowidInt64(tls *libc.TLS, db uintptr, p uintptr, iRowid I64) {
+ if (*StatSample)(unsafe.Pointer(p)).FnRowid != 0 {
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(p + 24)))
+ }
+ (*StatSample)(unsafe.Pointer(p)).FnRowid = U32(0)
+ *(*I64)(unsafe.Pointer(p + 24)) = iRowid
+}
+
+func sampleCopy(tls *libc.TLS, p uintptr, pTo uintptr, pFrom uintptr) {
+ (*StatSample)(unsafe.Pointer(pTo)).FisPSample = (*StatSample)(unsafe.Pointer(pFrom)).FisPSample
+ (*StatSample)(unsafe.Pointer(pTo)).FiCol = (*StatSample)(unsafe.Pointer(pFrom)).FiCol
+ (*StatSample)(unsafe.Pointer(pTo)).FiHash = (*StatSample)(unsafe.Pointer(pFrom)).FiHash
+ libc.X__builtin___memcpy_chk(tls, (*StatSample)(unsafe.Pointer(pTo)).FanEq, (*StatSample)(unsafe.Pointer(pFrom)).FanEq, uint64(unsafe.Sizeof(TRowcnt(0)))*uint64((*StatAccum)(unsafe.Pointer(p)).FnCol), libc.X__builtin_object_size(tls, (*StatSample)(unsafe.Pointer(pTo)).FanEq, 0))
+ libc.X__builtin___memcpy_chk(tls, (*StatSample)(unsafe.Pointer(pTo)).FanLt, (*StatSample)(unsafe.Pointer(pFrom)).FanLt, uint64(unsafe.Sizeof(TRowcnt(0)))*uint64((*StatAccum)(unsafe.Pointer(p)).FnCol), libc.X__builtin_object_size(tls, (*StatSample)(unsafe.Pointer(pTo)).FanLt, 0))
+ libc.X__builtin___memcpy_chk(tls, (*StatSample)(unsafe.Pointer(pTo)).FanDLt, (*StatSample)(unsafe.Pointer(pFrom)).FanDLt, uint64(unsafe.Sizeof(TRowcnt(0)))*uint64((*StatAccum)(unsafe.Pointer(p)).FnCol), libc.X__builtin_object_size(tls, (*StatSample)(unsafe.Pointer(pTo)).FanDLt, 0))
+ if (*StatSample)(unsafe.Pointer(pFrom)).FnRowid != 0 {
+ sampleSetRowid(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, pTo, int32((*StatSample)(unsafe.Pointer(pFrom)).FnRowid), *(*uintptr)(unsafe.Pointer(pFrom + 24)))
+ } else {
+ sampleSetRowidInt64(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, pTo, *(*I64)(unsafe.Pointer(pFrom + 24)))
+ }
+}
+
+func statAccumDestructor(tls *libc.TLS, pOld uintptr) {
+ var p uintptr = pOld
+ if (*StatAccum)(unsafe.Pointer(p)).FmxSample != 0 {
+ var i int32
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnCol; i++ {
+ sampleClear(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, (*StatAccum)(unsafe.Pointer(p)).FaBest+uintptr(i)*48)
+ }
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FmxSample; i++ {
+ sampleClear(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, (*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(i)*48)
+ }
+ sampleClear(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, p+40)
+ }
+ Xsqlite3DbFree(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, p)
+}
+
+func statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ var nCol int32
+ var nKeyCol int32
+ var nColUp int32
+ var n int32
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+
+ var mxSample int32
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ mxSample = SQLITE_STAT4_SAMPLES
+ } else {
+ mxSample = 0
+ }
+
+ _ = argc
+ nCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if uint64(unsafe.Sizeof(TRowcnt(0))) < uint64(8) {
+ nColUp = (nCol + 1) & libc.CplInt32(1)
+ } else {
+ nColUp = nCol
+ }
+ nKeyCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ n = int32(uint64(unsafe.Sizeof(StatAccum{})) +
+ uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nColUp) +
+ uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nColUp))
+ if mxSample != 0 {
+ n = int32(uint64(n) + (uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nColUp) +
+ uint64(unsafe.Sizeof(StatSample{}))*uint64(nCol+mxSample) +
+ uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(3)*uint64(nColUp)*uint64(nCol+mxSample)))
+ }
+ p = Xsqlite3DbMallocZero(tls, db, uint64(n))
+ if p == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ return
+ }
+
+ (*StatAccum)(unsafe.Pointer(p)).Fdb = db
+ (*StatAccum)(unsafe.Pointer(p)).FnEst = TRowcnt(Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ (*StatAccum)(unsafe.Pointer(p)).FnRow = uint64(0)
+ (*StatAccum)(unsafe.Pointer(p)).FnLimit = int32(Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))))
+ (*StatAccum)(unsafe.Pointer(p)).FnCol = nCol
+ (*StatAccum)(unsafe.Pointer(p)).FnKeyCol = nKeyCol
+ (*StatAccum)(unsafe.Pointer(p)).FnSkipAhead = U8(0)
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt = p + 1*136
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq = (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt + uintptr(nColUp)*8
+
+ (*StatAccum)(unsafe.Pointer(p)).FmxSample = func() int32 {
+ if (*StatAccum)(unsafe.Pointer(p)).FnLimit == 0 {
+ return mxSample
+ }
+ return 0
+ }()
+ if mxSample != 0 {
+ var pSpace uintptr
+ var i int32
+
+ (*StatAccum)(unsafe.Pointer(p)).FiGet = -1
+ (*StatAccum)(unsafe.Pointer(p)).FnPSample = (*StatAccum)(unsafe.Pointer(p)).FnEst/TRowcnt(mxSample/3+1) + uint64(1)
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt = (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(nColUp)*8
+ (*StatAccum)(unsafe.Pointer(p)).FiPrn = U32(0x689e962d)*U32(nCol) ^ 0xd0944565*U32(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+
+ (*StatAccum)(unsafe.Pointer(p)).Fa = (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt + uintptr(nColUp)*8
+ (*StatAccum)(unsafe.Pointer(p)).FaBest = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(mxSample)*48
+ pSpace = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(mxSample+nCol)*48
+ for i = 0; i < mxSample+nCol; i++ {
+ (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48)).FanEq = pSpace
+ pSpace += uintptr(uint64(unsafe.Sizeof(TRowcnt(0))) * uint64(nColUp))
+ (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48)).FanLt = pSpace
+ pSpace += uintptr(uint64(unsafe.Sizeof(TRowcnt(0))) * uint64(nColUp))
+ (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48)).FanDLt = pSpace
+ pSpace += uintptr(uint64(unsafe.Sizeof(TRowcnt(0))) * uint64(nColUp))
+ }
+
+ for i = 0; i < nCol; i++ {
+ (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).FaBest + uintptr(i)*48)).FiCol = i
+ }
+ }
+
+ Xsqlite3_result_blob(tls, context, p, int32(unsafe.Sizeof(StatAccum{})), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{statAccumDestructor})))
+}
+
+var statInitFuncdef = FuncDef{
+ FnArg: int8(4),
+ FfuncFlags: U32(SQLITE_UTF8),
+ FxSFunc: 0,
+ FzName: ts + 11831}
+
+func sampleIsBetterPost(tls *libc.TLS, pAccum uintptr, pNew uintptr, pOld uintptr) int32 {
+ var nCol int32 = (*StatAccum)(unsafe.Pointer(pAccum)).FnCol
+ var i int32
+
+ for i = (*StatSample)(unsafe.Pointer(pNew)).FiCol + 1; i < nCol; i++ {
+ if *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pNew)).FanEq + uintptr(i)*8)) > *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pOld)).FanEq + uintptr(i)*8)) {
+ return 1
+ }
+ if *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pNew)).FanEq + uintptr(i)*8)) < *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pOld)).FanEq + uintptr(i)*8)) {
+ return 0
+ }
+ }
+ if (*StatSample)(unsafe.Pointer(pNew)).FiHash > (*StatSample)(unsafe.Pointer(pOld)).FiHash {
+ return 1
+ }
+ return 0
+}
+
+func sampleIsBetter(tls *libc.TLS, pAccum uintptr, pNew uintptr, pOld uintptr) int32 {
+ var nEqNew TRowcnt = *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pNew)).FanEq + uintptr((*StatSample)(unsafe.Pointer(pNew)).FiCol)*8))
+ var nEqOld TRowcnt = *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pOld)).FanEq + uintptr((*StatSample)(unsafe.Pointer(pOld)).FiCol)*8))
+
+ if nEqNew > nEqOld {
+ return 1
+ }
+ if nEqNew == nEqOld {
+ if (*StatSample)(unsafe.Pointer(pNew)).FiCol < (*StatSample)(unsafe.Pointer(pOld)).FiCol {
+ return 1
+ }
+ return libc.Bool32((*StatSample)(unsafe.Pointer(pNew)).FiCol == (*StatSample)(unsafe.Pointer(pOld)).FiCol && sampleIsBetterPost(tls, pAccum, pNew, pOld) != 0)
+ }
+ return 0
+}
+
+func sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) {
+ var pSample uintptr
+ var i int32
+ var pOld uintptr
+ var pUpgrade uintptr
+ var pMin uintptr
+ var anEq uintptr
+ var anLt uintptr
+ var anDLt uintptr
+ var iMin int32
+ pSample = uintptr(0)
+
+ if !(nEqZero > (*StatAccum)(unsafe.Pointer(p)).FnMaxEqZero) {
+ goto __1
+ }
+ (*StatAccum)(unsafe.Pointer(p)).FnMaxEqZero = nEqZero
+__1:
+ ;
+ if !(int32((*StatSample)(unsafe.Pointer(pNew)).FisPSample) == 0) {
+ goto __2
+ }
+ pUpgrade = uintptr(0)
+
+ i = (*StatAccum)(unsafe.Pointer(p)).FnSample - 1
+__3:
+ if !(i >= 0) {
+ goto __5
+ }
+ pOld = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48
+ if !(*(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pOld)).FanEq + uintptr((*StatSample)(unsafe.Pointer(pNew)).FiCol)*8)) == uint64(0)) {
+ goto __6
+ }
+ if !((*StatSample)(unsafe.Pointer(pOld)).FisPSample != 0) {
+ goto __7
+ }
+ return
+__7:
+ ;
+ if !(pUpgrade == uintptr(0) || sampleIsBetter(tls, p, pOld, pUpgrade) != 0) {
+ goto __8
+ }
+ pUpgrade = pOld
+__8:
+ ;
+__6:
+ ;
+ goto __4
+__4:
+ i--
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(pUpgrade != 0) {
+ goto __9
+ }
+ (*StatSample)(unsafe.Pointer(pUpgrade)).FiCol = (*StatSample)(unsafe.Pointer(pNew)).FiCol
+ *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pUpgrade)).FanEq + uintptr((*StatSample)(unsafe.Pointer(pUpgrade)).FiCol)*8)) = *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pNew)).FanEq + uintptr((*StatSample)(unsafe.Pointer(pUpgrade)).FiCol)*8))
+ goto find_new_min
+__9:
+ ;
+__2:
+ ;
+ if !((*StatAccum)(unsafe.Pointer(p)).FnSample >= (*StatAccum)(unsafe.Pointer(p)).FmxSample) {
+ goto __10
+ }
+ pMin = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FiMin)*48
+ anEq = (*StatSample)(unsafe.Pointer(pMin)).FanEq
+ anLt = (*StatSample)(unsafe.Pointer(pMin)).FanLt
+ anDLt = (*StatSample)(unsafe.Pointer(pMin)).FanDLt
+ sampleClear(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, pMin)
+ libc.X__builtin___memmove_chk(tls, pMin, pMin+1*48, uint64(unsafe.Sizeof(StatSample{}))*uint64((*StatAccum)(unsafe.Pointer(p)).FnSample-(*StatAccum)(unsafe.Pointer(p)).FiMin-1), libc.X__builtin_object_size(tls, pMin, 0))
+ pSample = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FnSample-1)*48
+ (*StatSample)(unsafe.Pointer(pSample)).FnRowid = U32(0)
+ (*StatSample)(unsafe.Pointer(pSample)).FanEq = anEq
+ (*StatSample)(unsafe.Pointer(pSample)).FanDLt = anDLt
+ (*StatSample)(unsafe.Pointer(pSample)).FanLt = anLt
+ (*StatAccum)(unsafe.Pointer(p)).FnSample = (*StatAccum)(unsafe.Pointer(p)).FmxSample - 1
+__10:
+ ;
+ pSample = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FnSample)*48
+ sampleCopy(tls, p, pSample, pNew)
+ (*StatAccum)(unsafe.Pointer(p)).FnSample++
+
+ libc.X__builtin___memset_chk(tls, (*StatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nEqZero), libc.X__builtin_object_size(tls, (*StatSample)(unsafe.Pointer(pSample)).FanEq, 0))
+
+find_new_min:
+ if !((*StatAccum)(unsafe.Pointer(p)).FnSample >= (*StatAccum)(unsafe.Pointer(p)).FmxSample) {
+ goto __11
+ }
+ iMin = -1
+ i = 0
+__12:
+ if !(i < (*StatAccum)(unsafe.Pointer(p)).FmxSample) {
+ goto __14
+ }
+ if !((*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(i)*48)).FisPSample != 0) {
+ goto __15
+ }
+ goto __13
+__15:
+ ;
+ if !(iMin < 0 || sampleIsBetter(tls, p, (*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(iMin)*48, (*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(i)*48) != 0) {
+ goto __16
+ }
+ iMin = i
+__16:
+ ;
+ goto __13
+__13:
+ i++
+ goto __12
+ goto __14
+__14:
+ ;
+ (*StatAccum)(unsafe.Pointer(p)).FiMin = iMin
+__11:
+}
+
+func samplePushPrevious(tls *libc.TLS, p uintptr, iChng int32) {
+ var i int32
+
+ for i = (*StatAccum)(unsafe.Pointer(p)).FnCol - 2; i >= iChng; i-- {
+ var pBest uintptr = (*StatAccum)(unsafe.Pointer(p)).FaBest + uintptr(i)*48
+ *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer(pBest)).FanEq + uintptr(i)*8)) = *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(i)*8))
+ if (*StatAccum)(unsafe.Pointer(p)).FnSample < (*StatAccum)(unsafe.Pointer(p)).FmxSample || sampleIsBetter(tls, p, pBest, (*StatAccum)(unsafe.Pointer(p)).Fa+uintptr((*StatAccum)(unsafe.Pointer(p)).FiMin)*48) != 0 {
+ sampleInsert(tls, p, pBest, i)
+ }
+ }
+
+ for i = (*StatAccum)(unsafe.Pointer(p)).FnSample - 1; i >= 0; i-- {
+ var j int32
+ for j = (*StatAccum)(unsafe.Pointer(p)).FnMaxEqZero; j < (*StatAccum)(unsafe.Pointer(p)).FnCol; j++ {
+ }
+ }
+
+ if iChng < (*StatAccum)(unsafe.Pointer(p)).FnMaxEqZero {
+ for i = (*StatAccum)(unsafe.Pointer(p)).FnSample - 1; i >= 0; i-- {
+ var j int32
+ for j = iChng; j < (*StatAccum)(unsafe.Pointer(p)).FnCol; j++ {
+ if *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(i)*48)).FanEq + uintptr(j)*8)) == uint64(0) {
+ *(*TRowcnt)(unsafe.Pointer((*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa+uintptr(i)*48)).FanEq + uintptr(j)*8)) = *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(j)*8))
+ }
+ }
+ }
+ (*StatAccum)(unsafe.Pointer(p)).FnMaxEqZero = iChng
+ }
+}
+
+func statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var i int32
+
+ var p uintptr = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var iChng int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ _ = argc
+ _ = context
+
+ if (*StatAccum)(unsafe.Pointer(p)).FnRow == uint64(0) {
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnCol; i++ {
+ *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(i)*8)) = uint64(1)
+ }
+ } else {
+ if (*StatAccum)(unsafe.Pointer(p)).FmxSample != 0 {
+ samplePushPrevious(tls, p, iChng)
+ }
+
+ for i = 0; i < iChng; i++ {
+ *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(i)*8))++
+ }
+ for i = iChng; i < (*StatAccum)(unsafe.Pointer(p)).FnCol; i++ {
+ *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt + uintptr(i)*8))++
+ if (*StatAccum)(unsafe.Pointer(p)).FmxSample != 0 {
+ *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt + uintptr(i)*8)) += *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(i)*8))
+ }
+ *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(i)*8)) = uint64(1)
+ }
+ }
+
+ (*StatAccum)(unsafe.Pointer(p)).FnRow++
+ if (*StatAccum)(unsafe.Pointer(p)).FmxSample != 0 {
+ var nLt TRowcnt
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))) == SQLITE_INTEGER {
+ sampleSetRowidInt64(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, p+40, Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ } else {
+ sampleSetRowid(tls, (*StatAccum)(unsafe.Pointer(p)).Fdb, p+40, Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))),
+ Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ }
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FiHash = libc.AssignPtrUint32(p+100, (*StatAccum)(unsafe.Pointer(p)).FiPrn*U32(1103515245)+U32(12345))
+
+ nLt = *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt + uintptr((*StatAccum)(unsafe.Pointer(p)).FnCol-1)*8))
+
+ if nLt/(*StatAccum)(unsafe.Pointer(p)).FnPSample != (nLt+uint64(1))/(*StatAccum)(unsafe.Pointer(p)).FnPSample {
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FisPSample = U8(1)
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FiCol = 0
+ sampleInsert(tls, p, p+40, (*StatAccum)(unsafe.Pointer(p)).FnCol-1)
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FisPSample = U8(0)
+ }
+
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnCol-1; i++ {
+ (*StatAccum)(unsafe.Pointer(p)).Fcurrent.FiCol = i
+ if i >= iChng || sampleIsBetterPost(tls, p, p+40, (*StatAccum)(unsafe.Pointer(p)).FaBest+uintptr(i)*48) != 0 {
+ sampleCopy(tls, p, (*StatAccum)(unsafe.Pointer(p)).FaBest+uintptr(i)*48, p+40)
+ }
+ }
+ } else if (*StatAccum)(unsafe.Pointer(p)).FnLimit != 0 && (*StatAccum)(unsafe.Pointer(p)).FnRow > TRowcnt((*StatAccum)(unsafe.Pointer(p)).FnLimit)*TRowcnt(int32((*StatAccum)(unsafe.Pointer(p)).FnSkipAhead)+1) {
+ (*StatAccum)(unsafe.Pointer(p)).FnSkipAhead++
+ Xsqlite3_result_int(tls, context, libc.Bool32(*(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt)) > uint64(0)))
+ }
+}
+
+var statPushFuncdef = FuncDef{
+ FnArg: int8(2 + IsStat4),
+ FfuncFlags: U32(SQLITE_UTF8),
+ FxSFunc: 0,
+ FzName: ts + 11841}
+
+func statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var p uintptr = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ var eCall int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ if eCall == STAT_GET_STAT1 {
+ var i int32
+
+ Xsqlite3StrAccumInit(tls, bp+24, uintptr(0), uintptr(0), 0, ((*StatAccum)(unsafe.Pointer(p)).FnKeyCol+1)*100)
+ Xsqlite3_str_appendf(tls, bp+24, ts+11851,
+ libc.VaList(bp, func() uint64 {
+ if (*StatAccum)(unsafe.Pointer(p)).FnSkipAhead != 0 {
+ return (*StatAccum)(unsafe.Pointer(p)).FnEst
+ }
+ return (*StatAccum)(unsafe.Pointer(p)).FnRow
+ }()))
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnKeyCol; i++ {
+ var nDistinct U64 = *(*TRowcnt)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fcurrent.FanDLt + uintptr(i)*8)) + uint64(1)
+ var iVal U64 = ((*StatAccum)(unsafe.Pointer(p)).FnRow + nDistinct - uint64(1)) / nDistinct
+ if iVal == uint64(2) && (*StatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) {
+ iVal = uint64(1)
+ }
+ Xsqlite3_str_appendf(tls, bp+24, ts+11856, libc.VaList(bp+8, iVal))
+
+ }
+ Xsqlite3ResultStrAccum(tls, context, bp+24)
+ } else if eCall == STAT_GET_ROWID {
+ if (*StatAccum)(unsafe.Pointer(p)).FiGet < 0 {
+ samplePushPrevious(tls, p, 0)
+ (*StatAccum)(unsafe.Pointer(p)).FiGet = 0
+ }
+ if (*StatAccum)(unsafe.Pointer(p)).FiGet < (*StatAccum)(unsafe.Pointer(p)).FnSample {
+ var pS uintptr = (*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FiGet)*48
+ if (*StatSample)(unsafe.Pointer(pS)).FnRowid == U32(0) {
+ Xsqlite3_result_int64(tls, context, *(*I64)(unsafe.Pointer(pS + 24)))
+ } else {
+ Xsqlite3_result_blob(tls, context, *(*uintptr)(unsafe.Pointer(pS + 24)), int32((*StatSample)(unsafe.Pointer(pS)).FnRowid),
+ libc.UintptrFromInt32(-1))
+ }
+ }
+ } else {
+ var aCnt uintptr = uintptr(0)
+
+ var i int32
+
+ switch eCall {
+ case STAT_GET_NEQ:
+ aCnt = (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FiGet)*48)).FanEq
+ break
+ fallthrough
+ case STAT_GET_NLT:
+ aCnt = (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FiGet)*48)).FanLt
+ break
+ fallthrough
+ default:
+ {
+ aCnt = (*StatSample)(unsafe.Pointer((*StatAccum)(unsafe.Pointer(p)).Fa + uintptr((*StatAccum)(unsafe.Pointer(p)).FiGet)*48)).FanDLt
+ (*StatAccum)(unsafe.Pointer(p)).FiGet++
+ break
+
+ }
+ }
+ Xsqlite3StrAccumInit(tls, bp+56, uintptr(0), uintptr(0), 0, (*StatAccum)(unsafe.Pointer(p)).FnCol*100)
+ for i = 0; i < (*StatAccum)(unsafe.Pointer(p)).FnCol; i++ {
+ Xsqlite3_str_appendf(tls, bp+56, ts+11862, libc.VaList(bp+16, *(*TRowcnt)(unsafe.Pointer(aCnt + uintptr(i)*8))))
+ }
+ if (*Sqlite3_str)(unsafe.Pointer(bp+56)).FnChar != 0 {
+ (*Sqlite3_str)(unsafe.Pointer(bp+56)).FnChar--
+ }
+ Xsqlite3ResultStrAccum(tls, context, bp+56)
+ }
+ _ = argc
+}
+
+var statGetFuncdef = FuncDef{
+ FnArg: int8(1 + IsStat4),
+ FfuncFlags: U32(SQLITE_UTF8),
+ FxSFunc: 0,
+ FzName: ts + 11868}
+
+func callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, regOut int32) {
+ Xsqlite3VdbeAddOp2(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_Integer, iParam, regStat+1)
+
+ Xsqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat, regOut, 1+IsStat4,
+ uintptr(unsafe.Pointer(&statGetFuncdef)), 0)
+}
+
+func analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pIdx uintptr
+ var iIdxCur int32
+ var iTabCur int32
+ var v uintptr
+ var i int32
+ var jZeroRows int32 = -1
+ var iDb int32
+ var needTableCnt U8 = U8(1)
+ var regNewRowid int32 = libc.PostIncInt32(&iMem, 1)
+ var regStat int32 = libc.PostIncInt32(&iMem, 1)
+ var regChng int32 = libc.PostIncInt32(&iMem, 1)
+ var regRowid int32 = libc.PostIncInt32(&iMem, 1)
+ var regTemp int32 = libc.PostIncInt32(&iMem, 1)
+ var regTemp2 int32 = libc.PostIncInt32(&iMem, 1)
+ var regTabname int32 = libc.PostIncInt32(&iMem, 1)
+ var regIdxname int32 = libc.PostIncInt32(&iMem, 1)
+ var regStat1 int32 = libc.PostIncInt32(&iMem, 1)
+ var regPrev int32 = iMem
+ var pStat1 uintptr = uintptr(0)
+
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnMem > iMem {
+ return (*Parse)(unsafe.Pointer(pParse)).FnMem
+ }
+ return iMem
+ }()
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v == uintptr(0) || pTab == uintptr(0) {
+ return
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ return
+ }
+ if Xsqlite3_strlike(tls, ts+11877, (*Table)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 {
+ return
+ }
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ if Xsqlite3AuthCheck(tls, pParse, SQLITE_ANALYZE, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0),
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName) != 0 {
+ return
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 {
+ pStat1 = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{}))+uint64(13))
+ if pStat1 == uintptr(0) {
+ return
+ }
+ (*Table)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104
+ libc.X__builtin___memcpy_chk(tls, (*Table)(unsafe.Pointer(pStat1)).FzName, ts+11751, uint64(13), libc.X__builtin_object_size(tls, (*Table)(unsafe.Pointer(pStat1)).FzName, 0))
+ (*Table)(unsafe.Pointer(pStat1)).FnCol = int16(3)
+ (*Table)(unsafe.Pointer(pStat1)).FiPKey = int16(-1)
+ Xsqlite3VdbeAddOp4(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_Noop, 0, 0, 0, pStat1, -6)
+ }
+
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab)).FzName)
+ iTabCur = libc.PostIncInt32(&iTab, 1)
+ iIdxCur = libc.PostIncInt32(&iTab, 1)
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnTab > iTab {
+ return (*Parse)(unsafe.Pointer(pParse)).FnTab
+ }
+ return iTab
+ }()
+ Xsqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab, OP_OpenRead)
+ Xsqlite3VdbeLoadString(tls, v, regTabname, (*Table)(unsafe.Pointer(pTab)).FzName)
+
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var nCol int32
+ var addrRewind int32
+ var addrNextRow int32
+ var zIdxName uintptr
+ var nColTest int32
+
+ if pOnlyIdx != 0 && pOnlyIdx != pIdx {
+ continue
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere == uintptr(0) {
+ needTableCnt = U8(0)
+ }
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) && int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ nCol = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ zIdxName = (*Table)(unsafe.Pointer(pTab)).FzName
+ nColTest = nCol - 1
+ } else {
+ nCol = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ zIdxName = (*Index)(unsafe.Pointer(pIdx)).FzName
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ nColTest = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) - 1
+ } else {
+ nColTest = nCol - 1
+ }
+ }
+
+ Xsqlite3VdbeLoadString(tls, v, regIdxname, zIdxName)
+
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnMem > regPrev+nColTest {
+ return (*Parse)(unsafe.Pointer(pParse)).FnMem
+ }
+ return regPrev + nColTest
+ }()
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenRead, iIdxCur, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, nCol, regStat+1)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid)
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Count, iIdxCur, regTemp)
+ addrRewind = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iIdxCur)
+
+ } else {
+ addrRewind = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iIdxCur)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Count, iIdxCur, regTemp, 1)
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2)
+ Xsqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+1, regStat, 4,
+ uintptr(unsafe.Pointer(&statInitFuncdef)), 0)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regChng)
+ addrNextRow = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ if nColTest > 0 {
+ var endDistinctTest int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var aGotoChng uintptr
+ aGotoChng = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(int32(0)))*uint64(nColTest))
+ if aGotoChng == uintptr(0) {
+ continue
+ }
+
+ Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ addrNextRow = Xsqlite3VdbeCurrentAddr(tls, v)
+ if nColTest == 1 && int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) == 1 && int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None {
+ Xsqlite3VdbeAddOp2(tls, v, OP_NotNull, regPrev, endDistinctTest)
+
+ }
+ for i = 0; i < nColTest; i++ {
+ var pColl uintptr = Xsqlite3LocateCollSeq(tls, pParse, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i)*8)))
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, i, regChng)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iIdxCur, i, regTemp)
+
+ *(*int32)(unsafe.Pointer(aGotoChng + uintptr(i)*4)) = Xsqlite3VdbeAddOp4(tls, v, OP_Ne, regTemp, 0, regPrev+i, pColl, -2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NULLEQ))
+
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, nColTest, regChng)
+ Xsqlite3VdbeGoto(tls, v, endDistinctTest)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrNextRow-1)
+ for i = 0; i < nColTest; i++ {
+ Xsqlite3VdbeJumpHere(tls, v, *(*int32)(unsafe.Pointer(aGotoChng + uintptr(i)*4)))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iIdxCur, i, regPrev+i)
+
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, endDistinctTest)
+ Xsqlite3DbFree(tls, db, aGotoChng)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxRowid, iIdxCur, regRowid)
+ } else {
+ var pPk uintptr = Xsqlite3PrimaryKeyIndex(tls, (*Index)(unsafe.Pointer(pIdx)).FpTable)
+ var j int32
+ var k int32
+ var regKey int32
+ regKey = Xsqlite3GetTempRange(tls, pParse, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+ for j = 0; j < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol); j++ {
+ k = int32(Xsqlite3TableColumnToIndex(tls, pIdx, *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2))))
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iIdxCur, k, regKey+j)
+
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regKey, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol), regRowid)
+ Xsqlite3ReleaseTempRange(tls, pParse, regKey, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+ }
+ }
+
+ {
+ Xsqlite3VdbeAddFunctionCall(tls, pParse, 1, regStat, regTemp, 2+IsStat4,
+ uintptr(unsafe.Pointer(&statPushFuncdef)), 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit != 0 {
+ var j1 int32
+ var j2 int32
+ var j3 int32
+ j1 = Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, regTemp)
+ j2 = Xsqlite3VdbeAddOp1(tls, v, OP_If, regTemp)
+ j3 = Xsqlite3VdbeAddOp4Int(tls, v, OP_SeekGT, iIdxCur, 0, regPrev, 1)
+
+ Xsqlite3VdbeJumpHere(tls, v, j1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iIdxCur, addrNextRow)
+ Xsqlite3VdbeJumpHere(tls, v, j2)
+ Xsqlite3VdbeJumpHere(tls, v, j3)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iIdxCur, addrNextRow)
+ }
+
+ }
+
+ callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1)
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, regTabname, 3, regTemp, ts+11887, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iStatCur, regNewRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iStatCur, regTemp, regNewRowid)
+ Xsqlite3VdbeChangeP4(tls, v, -1, pStat1, -5)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) && (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit == 0 {
+ var regEq int32 = regStat1
+ var regLt int32 = regStat1 + 1
+ var regDLt int32 = regStat1 + 2
+ var regSample int32 = regStat1 + 3
+ var regCol int32 = regStat1 + 4
+ var regSampleRowid int32 = regCol + nCol
+ var addrNext int32
+ var addrIsNull int32
+ var seekOp U8
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ seekOp = uint8(OP_NotExists)
+ } else {
+ seekOp = uint8(OP_NotFound)
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnMem > regCol+nCol {
+ return (*Parse)(unsafe.Pointer(pParse)).FnMem
+ }
+ return regCol + nCol
+ }()
+
+ addrNext = Xsqlite3VdbeCurrentAddr(tls, v)
+ callStatGet(tls, pParse, regStat, STAT_GET_ROWID, regSampleRowid)
+ addrIsNull = Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, regSampleRowid)
+
+ callStatGet(tls, pParse, regStat, STAT_GET_NEQ, regEq)
+ callStatGet(tls, pParse, regStat, STAT_GET_NLT, regLt)
+ callStatGet(tls, pParse, regStat, STAT_GET_NDLT, regDLt)
+ Xsqlite3VdbeAddOp4Int(tls, v, int32(seekOp), iTabCur, addrNext, regSampleRowid, 0)
+
+ for i = 0; i < nCol; i++ {
+ Xsqlite3ExprCodeLoadIndexColumn(tls, pParse, pIdx, iTabCur, i, regCol+i)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regCol, nCol, regSample)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regTabname, 6, regTemp)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iStatCur+1, regNewRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iStatCur+1, regTemp, regNewRowid)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 1, addrNext)
+ Xsqlite3VdbeJumpHere(tls, v, addrIsNull)
+ }
+
+ Xsqlite3VdbeJumpHere(tls, v, addrRewind)
+ }
+
+ if pOnlyIdx == uintptr(0) && needTableCnt != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Count, iTabCur, regStat1)
+ jZeroRows = Xsqlite3VdbeAddOp1(tls, v, OP_IfNot, regStat1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regIdxname)
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, regTabname, 3, regTemp, ts+11887, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iStatCur, regNewRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iStatCur, regTemp, regNewRowid)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+ Xsqlite3VdbeChangeP4(tls, v, -1, pStat1, -5)
+ Xsqlite3VdbeJumpHere(tls, v, jZeroRows)
+ }
+}
+
+func loadAnalysis(tls *libc.TLS, pParse uintptr, iDb int32) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ if v != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_LoadAnalysis, iDb)
+ }
+}
+
+func analyzeDatabase(tls *libc.TLS, pParse uintptr, iDb int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pSchema uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ var k uintptr
+ var iStatCur int32
+ var iMem int32
+ var iTab int32
+
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ iStatCur = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ *(*int32)(unsafe.Pointer(pParse + 52)) += 3
+ openStatTable(tls, pParse, iDb, iStatCur, uintptr(0), uintptr(0))
+ iMem = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ iTab = (*Parse)(unsafe.Pointer(pParse)).FnTab
+
+ for k = (*Hash)(unsafe.Pointer(pSchema + 8)).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(k)).Fdata
+ analyzeOneTable(tls, pParse, pTab, uintptr(0), iStatCur, iMem, iTab)
+ }
+ loadAnalysis(tls, pParse, iDb)
+}
+
+func analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr) {
+ var iDb int32
+ var iStatCur int32
+
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ iStatCur = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ *(*int32)(unsafe.Pointer(pParse + 52)) += 3
+ if pOnlyIdx != 0 {
+ openStatTable(tls, pParse, iDb, iStatCur, (*Index)(unsafe.Pointer(pOnlyIdx)).FzName, ts+11891)
+ } else {
+ openStatTable(tls, pParse, iDb, iStatCur, (*Table)(unsafe.Pointer(pTab)).FzName, ts+11895)
+ }
+ analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*Parse)(unsafe.Pointer(pParse)).FnMem+1, (*Parse)(unsafe.Pointer(pParse)).FnTab)
+ loadAnalysis(tls, pParse, iDb)
+}
+
+// Generate code for the ANALYZE command. The parser calls this routine
+// when it recognizes an ANALYZE command.
+//
+// ANALYZE -- 1
+// ANALYZE <database> -- 2
+// ANALYZE ?<database>.?<tablename> -- 3
+//
+// Form 1 causes all indices in all attached databases to be analyzed.
+// Form 2 analyzes all indices the single database named.
+// Form 3 analyzes all indices associated with the named table.
+func Xsqlite3Analyze(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32
+ var i int32
+ var z uintptr
+ var zDb uintptr
+ var pTab uintptr
+ var pIdx uintptr
+
+ var v uintptr
+
+ if SQLITE_OK != Xsqlite3ReadSchema(tls, pParse) {
+ return
+ }
+
+ if pName1 == uintptr(0) {
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ if i == 1 {
+ continue
+ }
+ analyzeDatabase(tls, pParse, i)
+ }
+ } else if (*Token)(unsafe.Pointer(pName2)).Fn == uint32(0) && libc.AssignInt32(&iDb, Xsqlite3FindDb(tls, db, pName1)) >= 0 {
+ analyzeDatabase(tls, pParse, iDb)
+ } else {
+ iDb = Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp)
+ if iDb >= 0 {
+ if (*Token)(unsafe.Pointer(pName2)).Fn != 0 {
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ } else {
+ zDb = uintptr(0)
+ }
+ z = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp)))
+ if z != 0 {
+ if libc.AssignUintptr(&pIdx, Xsqlite3FindIndex(tls, db, z, zDb)) != uintptr(0) {
+ analyzeTable(tls, pParse, (*Index)(unsafe.Pointer(pIdx)).FpTable, pIdx)
+ } else if libc.AssignUintptr(&pTab, Xsqlite3LocateTable(tls, pParse, uint32(0), z, zDb)) != uintptr(0) {
+ analyzeTable(tls, pParse, pTab, uintptr(0))
+ }
+ Xsqlite3DbFree(tls, db, z)
+ }
+ }
+ }
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FnSqlExec) == 0 && libc.AssignUintptr(&v, Xsqlite3GetVdbe(tls, pParse)) != uintptr(0) {
+ Xsqlite3VdbeAddOp0(tls, v, OP_Expire)
+ }
+}
+
+type analysisInfo = struct {
+ Fdb uintptr
+ FzDatabase uintptr
+}
+
+// Used to pass information from the analyzer reader through to the
+// callback routine.
+type AnalysisInfo = analysisInfo
+
+func decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, aLog uintptr, pIndex uintptr) {
+ var z uintptr = zIntArray
+ var c int32
+ var i int32
+ var v TRowcnt
+
+ if z == uintptr(0) {
+ z = ts + 1547
+ }
+ for i = 0; *(*int8)(unsafe.Pointer(z)) != 0 && i < nOut; i++ {
+ v = uint64(0)
+ for libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(z)))) >= '0' && c <= '9' {
+ v = v*uint64(10) + TRowcnt(c) - uint64('0')
+ z++
+ }
+ if aOut != 0 {
+ *(*TRowcnt)(unsafe.Pointer(aOut + uintptr(i)*8)) = v
+ }
+ if aLog != 0 {
+ *(*LogEst)(unsafe.Pointer(aLog + uintptr(i)*2)) = Xsqlite3LogEst(tls, v)
+ }
+ if int32(*(*int8)(unsafe.Pointer(z))) == ' ' {
+ z++
+ }
+ }
+ if pIndex != 0 {
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 2, 0x4)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 6, 0x40)
+ for *(*int8)(unsafe.Pointer(z)) != 0 {
+ if Xsqlite3_strglob(tls, ts+11899, z) == 0 {
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 2, 0x4)
+ } else if Xsqlite3_strglob(tls, ts+11910, z) == 0 {
+ var sz int32 = Xsqlite3Atoi(tls, z+uintptr(3))
+ if sz < 2 {
+ sz = 2
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FszIdxRow = Xsqlite3LogEst(tls, uint64(sz))
+ } else if Xsqlite3_strglob(tls, ts+11920, z) == 0 {
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 6, 0x40)
+ }
+ for int32(*(*int8)(unsafe.Pointer(z))) != 0 && int32(*(*int8)(unsafe.Pointer(z))) != ' ' {
+ z++
+ }
+ for int32(*(*int8)(unsafe.Pointer(z))) == ' ' {
+ z++
+ }
+ }
+ }
+}
+
+func analysisLoader(tls *libc.TLS, pData uintptr, argc int32, argv uintptr, NotUsed uintptr) int32 {
+ bp := tls.Alloc(152)
+ defer tls.Free(152)
+
+ var pInfo uintptr = pData
+ var pIndex uintptr
+ var pTable uintptr
+ var z uintptr
+
+ _ = NotUsed
+ _ = argc
+
+ if argv == uintptr(0) || *(*uintptr)(unsafe.Pointer(argv)) == uintptr(0) || *(*uintptr)(unsafe.Pointer(argv + 2*8)) == uintptr(0) {
+ return 0
+ }
+ pTable = Xsqlite3FindTable(tls, (*AnalysisInfo)(unsafe.Pointer(pInfo)).Fdb, *(*uintptr)(unsafe.Pointer(argv)), (*AnalysisInfo)(unsafe.Pointer(pInfo)).FzDatabase)
+ if pTable == uintptr(0) {
+ return 0
+ }
+ if *(*uintptr)(unsafe.Pointer(argv + 1*8)) == uintptr(0) {
+ pIndex = uintptr(0)
+ } else if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(argv)), *(*uintptr)(unsafe.Pointer(argv + 1*8))) == 0 {
+ pIndex = Xsqlite3PrimaryKeyIndex(tls, pTable)
+ } else {
+ pIndex = Xsqlite3FindIndex(tls, (*AnalysisInfo)(unsafe.Pointer(pInfo)).Fdb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*AnalysisInfo)(unsafe.Pointer(pInfo)).FzDatabase)
+ }
+ z = *(*uintptr)(unsafe.Pointer(argv + 2*8))
+
+ if pIndex != 0 {
+ var aiRowEst uintptr = uintptr(0)
+ var nCol int32 = int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol) + 1
+
+ if (*Index)(unsafe.Pointer(pIndex)).FaiRowEst == uintptr(0) {
+ (*Index)(unsafe.Pointer(pIndex)).FaiRowEst = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nCol))
+ if (*Index)(unsafe.Pointer(pIndex)).FaiRowEst == uintptr(0) {
+ Xsqlite3OomFault(tls, (*AnalysisInfo)(unsafe.Pointer(pInfo)).Fdb)
+ }
+ }
+ aiRowEst = (*Index)(unsafe.Pointer(pIndex)).FaiRowEst
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 2, 0x4)
+ decodeIntArray(tls, z, nCol, aiRowEst, (*Index)(unsafe.Pointer(pIndex)).FaiRowLogEst, pIndex)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 7, 0x80)
+ if (*Index)(unsafe.Pointer(pIndex)).FpPartIdxWhere == uintptr(0) {
+ (*Table)(unsafe.Pointer(pTable)).FnRowLogEst = *(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiRowLogEst))
+ *(*U32)(unsafe.Pointer(pTable + 48)) |= U32(TF_HasStat1)
+ }
+ } else {
+ (*Index)(unsafe.Pointer(bp)).FszIdxRow = (*Table)(unsafe.Pointer(pTable)).FszTabRow
+ decodeIntArray(tls, z, 1, uintptr(0), pTable+58, bp)
+ (*Table)(unsafe.Pointer(pTable)).FszTabRow = (*Index)(unsafe.Pointer(bp)).FszIdxRow
+ *(*U32)(unsafe.Pointer(pTable + 48)) |= U32(TF_HasStat1)
+ }
+
+ return 0
+}
+
+// If the Index.aSample variable is not NULL, delete the aSample[] array
+// and its contents.
+func Xsqlite3DeleteIndexSamples(tls *libc.TLS, db uintptr, pIdx uintptr) {
+ if (*Index)(unsafe.Pointer(pIdx)).FaSample != 0 {
+ var j int32
+ for j = 0; j < (*Index)(unsafe.Pointer(pIdx)).FnSample; j++ {
+ var p uintptr = (*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr(j)*40
+ Xsqlite3DbFree(tls, db, (*IndexSample)(unsafe.Pointer(p)).Fp)
+ }
+ Xsqlite3DbFree(tls, db, (*Index)(unsafe.Pointer(pIdx)).FaSample)
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ (*Index)(unsafe.Pointer(pIdx)).FnSample = 0
+ (*Index)(unsafe.Pointer(pIdx)).FaSample = uintptr(0)
+ }
+}
+
+func initAvgEq(tls *libc.TLS, pIdx uintptr) {
+ if pIdx != 0 {
+ var aSample uintptr = (*Index)(unsafe.Pointer(pIdx)).FaSample
+ var pFinal uintptr = aSample + uintptr((*Index)(unsafe.Pointer(pIdx)).FnSample-1)*40
+ var iCol int32
+ var nCol int32 = 1
+ if (*Index)(unsafe.Pointer(pIdx)).FnSampleCol > 1 {
+ nCol = (*Index)(unsafe.Pointer(pIdx)).FnSampleCol - 1
+ *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaAvgEq + uintptr(nCol)*8)) = uint64(1)
+ }
+ for iCol = 0; iCol < nCol; iCol++ {
+ var nSample int32 = (*Index)(unsafe.Pointer(pIdx)).FnSample
+ var i int32
+ var sumEq TRowcnt = uint64(0)
+ var avgEq TRowcnt = uint64(0)
+ var nRow TRowcnt
+ var nSum100 I64 = int64(0)
+ var nDist100 I64
+
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FaiRowEst) != 0) || iCol >= int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) || *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowEst + uintptr(iCol+1)*8)) == uint64(0) {
+ nRow = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(pFinal)).FanLt + uintptr(iCol)*8))
+ nDist100 = I64(TRowcnt(int64(100)) * *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(pFinal)).FanDLt + uintptr(iCol)*8)))
+ nSample--
+ } else {
+ nRow = *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowEst))
+ nDist100 = I64(TRowcnt(int64(100)) * *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowEst)) / *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowEst + uintptr(iCol+1)*8)))
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FnRowEst0 = nRow
+
+ for i = 0; i < nSample; i++ {
+ if i == (*Index)(unsafe.Pointer(pIdx)).FnSample-1 ||
+ *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i)*40)).FanDLt + uintptr(iCol)*8)) != *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i+1)*40)).FanDLt + uintptr(iCol)*8)) {
+ sumEq = sumEq + *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i)*40)).FanEq + uintptr(iCol)*8))
+ nSum100 = nSum100 + int64(100)
+ }
+ }
+
+ if nDist100 > nSum100 && sumEq < nRow {
+ avgEq = TRowcnt(int64(100)) * (nRow - sumEq) / TRowcnt(nDist100-nSum100)
+ }
+ if avgEq == uint64(0) {
+ avgEq = uint64(1)
+ }
+ *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaAvgEq + uintptr(iCol)*8)) = avgEq
+ }
+ }
+}
+
+func findIndexOrPrimaryKey(tls *libc.TLS, db uintptr, zName uintptr, zDb uintptr) uintptr {
+ var pIdx uintptr = Xsqlite3FindIndex(tls, db, zName, zDb)
+ if pIdx == uintptr(0) {
+ var pTab uintptr = Xsqlite3FindTable(tls, db, zName, zDb)
+ if pTab != 0 && !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ pIdx = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ }
+ }
+ return pIdx
+}
+
+func loadStatTbl(tls *libc.TLS, db uintptr, zSql1 uintptr, zSql2 uintptr, zDb uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var zSql uintptr
+ var pPrevIdx uintptr = uintptr(0)
+ var pSample uintptr
+
+ zSql = Xsqlite3MPrintf(tls, db, zSql1, libc.VaList(bp, zDb))
+ if !(zSql != 0) {
+ return SQLITE_NOMEM
+ }
+ rc = Xsqlite3_prepare(tls, db, zSql, -1, bp+16, uintptr(0))
+ Xsqlite3DbFree(tls, db, zSql)
+ if rc != 0 {
+ return rc
+ }
+
+ for Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) == SQLITE_ROW {
+ var nIdxCol int32 = 1
+
+ var zIndex uintptr
+ var pIdx uintptr
+ var nSample int32
+ var nByte int32
+ var i int32
+ var pSpace uintptr
+
+ zIndex = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 0)
+ if zIndex == uintptr(0) {
+ continue
+ }
+ nSample = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1)
+ pIdx = findIndexOrPrimaryKey(tls, db, zIndex, zDb)
+
+ if pIdx == uintptr(0) {
+ continue
+ }
+
+ if !((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) && int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ nIdxCol = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ } else {
+ nIdxCol = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FnSampleCol = nIdxCol
+ nByte = int32(uint64(unsafe.Sizeof(IndexSample{})) * uint64(nSample))
+ nByte = int32(uint64(nByte) + uint64(unsafe.Sizeof(TRowcnt(0)))*uint64(nIdxCol)*uint64(3)*uint64(nSample))
+ nByte = int32(uint64(nByte) + uint64(nIdxCol)*uint64(unsafe.Sizeof(TRowcnt(0))))
+
+ (*Index)(unsafe.Pointer(pIdx)).FaSample = Xsqlite3DbMallocZero(tls, db, uint64(nByte))
+ if (*Index)(unsafe.Pointer(pIdx)).FaSample == uintptr(0) {
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ return SQLITE_NOMEM
+ }
+ pSpace = (*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr(nSample)*40
+ (*Index)(unsafe.Pointer(pIdx)).FaAvgEq = pSpace
+ pSpace += 8 * uintptr(nIdxCol)
+ *(*U32)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable + 48)) |= U32(TF_HasStat4)
+ for i = 0; i < nSample; i++ {
+ (*IndexSample)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr(i)*40)).FanEq = pSpace
+ pSpace += 8 * uintptr(nIdxCol)
+ (*IndexSample)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr(i)*40)).FanLt = pSpace
+ pSpace += 8 * uintptr(nIdxCol)
+ (*IndexSample)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr(i)*40)).FanDLt = pSpace
+ pSpace += 8 * uintptr(nIdxCol)
+ }
+
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if rc != 0 {
+ return rc
+ }
+
+ zSql = Xsqlite3MPrintf(tls, db, zSql2, libc.VaList(bp+8, zDb))
+ if !(zSql != 0) {
+ return SQLITE_NOMEM
+ }
+ rc = Xsqlite3_prepare(tls, db, zSql, -1, bp+16, uintptr(0))
+ Xsqlite3DbFree(tls, db, zSql)
+ if rc != 0 {
+ return rc
+ }
+
+ for Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) == SQLITE_ROW {
+ var zIndex uintptr
+ var pIdx uintptr
+ var nCol int32 = 1
+
+ zIndex = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 0)
+ if zIndex == uintptr(0) {
+ continue
+ }
+ pIdx = findIndexOrPrimaryKey(tls, db, zIndex, zDb)
+ if pIdx == uintptr(0) {
+ continue
+ }
+
+ nCol = (*Index)(unsafe.Pointer(pIdx)).FnSampleCol
+ if pIdx != pPrevIdx {
+ initAvgEq(tls, pPrevIdx)
+ pPrevIdx = pIdx
+ }
+ pSample = (*Index)(unsafe.Pointer(pIdx)).FaSample + uintptr((*Index)(unsafe.Pointer(pIdx)).FnSample)*40
+ decodeIntArray(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1), nCol, (*IndexSample)(unsafe.Pointer(pSample)).FanEq, uintptr(0), uintptr(0))
+ decodeIntArray(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 2), nCol, (*IndexSample)(unsafe.Pointer(pSample)).FanLt, uintptr(0), uintptr(0))
+ decodeIntArray(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 3), nCol, (*IndexSample)(unsafe.Pointer(pSample)).FanDLt, uintptr(0), uintptr(0))
+
+ (*IndexSample)(unsafe.Pointer(pSample)).Fn = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 4)
+ (*IndexSample)(unsafe.Pointer(pSample)).Fp = Xsqlite3DbMallocZero(tls, db, uint64((*IndexSample)(unsafe.Pointer(pSample)).Fn+2))
+ if (*IndexSample)(unsafe.Pointer(pSample)).Fp == uintptr(0) {
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ return SQLITE_NOMEM
+ }
+ if (*IndexSample)(unsafe.Pointer(pSample)).Fn != 0 {
+ libc.X__builtin___memcpy_chk(tls, (*IndexSample)(unsafe.Pointer(pSample)).Fp, Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 4), uint64((*IndexSample)(unsafe.Pointer(pSample)).Fn), libc.X__builtin_object_size(tls, (*IndexSample)(unsafe.Pointer(pSample)).Fp, 0))
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FnSample++
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if rc == SQLITE_OK {
+ initAvgEq(tls, pPrevIdx)
+ }
+ return rc
+}
+
+func loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pStat4 uintptr
+
+ if libc.AssignUintptr(&pStat4, Xsqlite3FindTable(tls, db, ts+11777, zDb)) != uintptr(0) &&
+ int32((*Table)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM {
+ rc = loadStatTbl(tls, db,
+ ts+11932,
+ ts+11986,
+ zDb)
+ }
+ return rc
+}
+
+// Load the content of the sqlite_stat1 and sqlite_stat4 tables. The
+// contents of sqlite_stat1 are used to populate the Index.aiRowEst[]
+// arrays. The contents of sqlite_stat4 are used to populate the
+// Index.aSample[] arrays.
+//
+// If the sqlite_stat1 table is not present in the database, SQLITE_ERROR
+// is returned. In this case, even if SQLITE_ENABLE_STAT4 was defined
+// during compilation and the sqlite_stat4 table is present, no data is
+// read from it.
+//
+// If SQLITE_ENABLE_STAT4 was defined during compilation and the
+// sqlite_stat4 table is not present in the database, SQLITE_ERROR is
+// returned. However, in this case, data is read from the sqlite_stat1
+// table (if it is present) before returning.
+//
+// If an OOM error occurs, this function always sets db->mallocFailed.
+// This means if the caller does not care about other errors, the return
+// code may be ignored.
+func Xsqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var i uintptr
+ var zSql uintptr
+ var rc int32 = SQLITE_OK
+ var pSchema uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ var pStat1 uintptr
+
+ for i = (*Hash)(unsafe.Pointer(pSchema + 8)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ *(*U32)(unsafe.Pointer(pTab + 48)) &= libc.Uint32FromInt32(libc.CplInt32(TF_HasStat1))
+ }
+ for i = (*Hash)(unsafe.Pointer(pSchema + 32)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pIdx uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(0), 7, 0x80)
+ Xsqlite3DeleteIndexSamples(tls, db, pIdx)
+ (*Index)(unsafe.Pointer(pIdx)).FaSample = uintptr(0)
+ }
+
+ (*AnalysisInfo)(unsafe.Pointer(bp + 8)).Fdb = db
+ (*AnalysisInfo)(unsafe.Pointer(bp + 8)).FzDatabase = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ if libc.AssignUintptr(&pStat1, Xsqlite3FindTable(tls, db, ts+11751, (*AnalysisInfo)(unsafe.Pointer(bp+8)).FzDatabase)) != 0 &&
+ int32((*Table)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM {
+ zSql = Xsqlite3MPrintf(tls, db,
+ ts+12038, libc.VaList(bp, (*AnalysisInfo)(unsafe.Pointer(bp+8)).FzDatabase))
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ }{analysisLoader})), bp+8, uintptr(0))
+ Xsqlite3DbFree(tls, db, zSql)
+ }
+ }
+
+ for i = (*Hash)(unsafe.Pointer(pSchema + 32)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pIdx uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ if !(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x80>>7) != 0) {
+ Xsqlite3DefaultRowEst(tls, pIdx)
+ }
+ }
+
+ if rc == SQLITE_OK {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+ rc = loadStat4(tls, db, (*AnalysisInfo)(unsafe.Pointer(bp+8)).FzDatabase)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable--
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = func() uint16 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
+ return uint16(0)
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue
+ }()
+ }
+ for i = (*Hash)(unsafe.Pointer(pSchema + 32)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pIdx uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ Xsqlite3_free(tls, (*Index)(unsafe.Pointer(pIdx)).FaiRowEst)
+ (*Index)(unsafe.Pointer(pIdx)).FaiRowEst = uintptr(0)
+ }
+
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ }
+ return rc
+}
+
+func resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if pExpr != 0 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_ID {
+ rc = Xsqlite3ResolveExprNames(tls, pName, pExpr)
+ } else {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_STRING)
+ }
+ }
+ return rc
+}
+
+// Return true if zName points to a name that may be used to refer to
+// database iDb attached to handle db.
+func Xsqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) int32 {
+ return libc.Bool32(Xsqlite3StrICmp(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, zName) == 0 ||
+ iDb == 0 && Xsqlite3StrICmp(tls, ts+6844, zName) == 0)
+}
+
+func attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var i int32
+ var rc int32
+ var db uintptr
+ var zName uintptr
+ var zFile uintptr
+
+ var aNew uintptr
+ var pNew uintptr
+
+ var pNewSchema uintptr
+
+ var pPager uintptr
+ var iDb int32
+ rc = 0
+ db = Xsqlite3_context_db_handle(tls, context)
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ pNew = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+
+ _ = NotUsed
+ zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if !(zFile == uintptr(0)) {
+ goto __1
+ }
+ zFile = ts + 1547
+__1:
+ ;
+ if !(zName == uintptr(0)) {
+ goto __2
+ }
+ zName = ts + 1547
+__2:
+ ;
+ if !(uint32(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0) {
+ goto __3
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3_vfs_find(tls, ts+4238)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 40)) == uintptr(0)) {
+ goto __5
+ }
+ return
+__5:
+ ;
+ rc = Xsqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), ts+12079, db, bp+24, 0, SQLITE_OPEN_MAIN_DB)
+ if !(rc == SQLITE_OK) {
+ goto __6
+ }
+ pNewSchema = Xsqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ if !(pNewSchema != 0) {
+ goto __7
+ }
+
+ pNew = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb)*32
+ if !((*Db)(unsafe.Pointer(pNew)).FpBt != 0) {
+ goto __9
+ }
+ Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer(pNew)).FpBt)
+__9:
+ ;
+ (*Db)(unsafe.Pointer(pNew)).FpBt = *(*uintptr)(unsafe.Pointer(bp + 24))
+ (*Db)(unsafe.Pointer(pNew)).FpSchema = pNewSchema
+ goto __8
+__7:
+ Xsqlite3BtreeClose(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ rc = SQLITE_NOMEM
+__8:
+ ;
+__6:
+ ;
+ if !(rc != 0) {
+ goto __10
+ }
+ goto attach_error
+__10:
+ ;
+ goto __4
+__3:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+2) {
+ goto __11
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db, ts+12082,
+ libc.VaList(bp, *(*int32)(unsafe.Pointer(db + 136 + 7*4))))
+ goto attach_error
+__11:
+ ;
+ i = 0
+__12:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __14
+ }
+
+ if !(Xsqlite3DbIsNamed(tls, db, i, zName) != 0) {
+ goto __15
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db, ts+12119, libc.VaList(bp+8, zName))
+ goto attach_error
+__15:
+ ;
+ goto __13
+__13:
+ i++
+ goto __12
+ goto __14
+__14:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FaDb == db+696) {
+ goto __16
+ }
+ aNew = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(Db{}))*uint64(3))
+ if !(aNew == uintptr(0)) {
+ goto __18
+ }
+ return
+__18:
+ ;
+ libc.X__builtin___memcpy_chk(tls, aNew, (*Sqlite3)(unsafe.Pointer(db)).FaDb, uint64(unsafe.Sizeof(Db{}))*uint64(2), libc.X__builtin_object_size(tls, aNew, 0))
+ goto __17
+__16:
+ aNew = Xsqlite3DbRealloc(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaDb, uint64(unsafe.Sizeof(Db{}))*uint64((*Sqlite3)(unsafe.Pointer(db)).FnDb+1))
+ if !(aNew == uintptr(0)) {
+ goto __19
+ }
+ return
+__19:
+ ;
+__17:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FaDb = aNew
+ pNew = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*Sqlite3)(unsafe.Pointer(db)).FnDb)*32
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Db{})), libc.X__builtin_object_size(tls, pNew, 0))
+
+ *(*uint32)(unsafe.Pointer(bp + 32)) = (*Sqlite3)(unsafe.Pointer(db)).FopenFlags
+ rc = Xsqlite3ParseUri(tls, (*Sqlite3_vfs)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpVfs)).FzName, zFile, bp+32, bp+40, bp+48, bp+56)
+ if !(rc != SQLITE_OK) {
+ goto __20
+ }
+ if !(rc == SQLITE_NOMEM) {
+ goto __21
+ }
+ Xsqlite3OomFault(tls, db)
+__21:
+ ;
+ Xsqlite3_result_error(tls, context, *(*uintptr)(unsafe.Pointer(bp + 56)), -1)
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 56)))
+ return
+__20:
+ ;
+ *(*uint32)(unsafe.Pointer(bp + 32)) |= uint32(SQLITE_OPEN_MAIN_DB)
+ rc = Xsqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 48)), db, pNew+8, 0, int32(*(*uint32)(unsafe.Pointer(bp + 32))))
+ (*Sqlite3)(unsafe.Pointer(db)).FnDb++
+ (*Db)(unsafe.Pointer(pNew)).FzDbSName = Xsqlite3DbStrDup(tls, db, zName)
+__4:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache = U8(0)
+ if !(rc == SQLITE_CONSTRAINT) {
+ goto __22
+ }
+ rc = SQLITE_ERROR
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db, ts+12149, 0)
+ goto __23
+__22:
+ if !(rc == SQLITE_OK) {
+ goto __24
+ }
+ (*Db)(unsafe.Pointer(pNew)).FpSchema = Xsqlite3SchemaGet(tls, db, (*Db)(unsafe.Pointer(pNew)).FpBt)
+ if !!(int32((*Db)(unsafe.Pointer(pNew)).FpSchema) != 0) {
+ goto __25
+ }
+ rc = SQLITE_NOMEM
+ goto __26
+__25:
+ if !((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Sqlite3)(unsafe.Pointer(db)).Fenc)) {
+ goto __27
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db,
+ ts+12178, 0)
+ rc = SQLITE_ERROR
+__27:
+ ;
+__26:
+ ;
+ Xsqlite3BtreeEnter(tls, (*Db)(unsafe.Pointer(pNew)).FpBt)
+ pPager = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pNew)).FpBt)
+ Xsqlite3PagerLockingMode(tls, pPager, int32((*Sqlite3)(unsafe.Pointer(db)).FdfltLockMode))
+ Xsqlite3BtreeSecureDelete(tls, (*Db)(unsafe.Pointer(pNew)).FpBt,
+ Xsqlite3BtreeSecureDelete(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt, -1))
+ Xsqlite3BtreeSetPagerFlags(tls, (*Db)(unsafe.Pointer(pNew)).FpBt,
+ uint32(uint64(PAGER_SYNCHRONOUS_FULL)|(*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(PAGER_FLAGS_MASK)))
+ Xsqlite3BtreeLeave(tls, (*Db)(unsafe.Pointer(pNew)).FpBt)
+__24:
+ ;
+__23:
+ ;
+ (*Db)(unsafe.Pointer(pNew)).Fsafety_level = U8(SQLITE_DEFAULT_SYNCHRONOUS + 1)
+ if !(rc == SQLITE_OK && (*Db)(unsafe.Pointer(pNew)).FzDbSName == uintptr(0)) {
+ goto __28
+ }
+ rc = SQLITE_NOMEM
+__28:
+ ;
+ Xsqlite3_free_filename(tls, *(*uintptr)(unsafe.Pointer(bp + 48)))
+
+ if !(rc == SQLITE_OK) {
+ goto __29
+ }
+ Xsqlite3BtreeEnterAll(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(0)
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_SchemaKnownOk))
+ if !!(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2) != 0) {
+ goto __30
+ }
+ rc = Xsqlite3Init(tls, db, bp+64)
+__30:
+ ;
+ Xsqlite3BtreeLeaveAll(tls, db)
+
+__29:
+ ;
+ if !(rc != 0) {
+ goto __31
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2) != 0) {
+ goto __32
+ }
+ iDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+
+ if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpBt != 0) {
+ goto __33
+ }
+ Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpBt)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt = uintptr(0)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema = uintptr(0)
+__33:
+ ;
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FnDb = iDb
+ if !(rc == SQLITE_NOMEM || rc == SQLITE_IOERR|int32(12)<<8) {
+ goto __34
+ }
+ Xsqlite3OomFault(tls, db)
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db, ts+1483, 0)
+ goto __35
+__34:
+ if !(*(*uintptr)(unsafe.Pointer(bp + 64)) == uintptr(0)) {
+ goto __36
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = Xsqlite3MPrintf(tls, db, ts+12246, libc.VaList(bp+16, zFile))
+__36:
+ ;
+__35:
+ ;
+__32:
+ ;
+ goto attach_error
+__31:
+ ;
+ return
+
+attach_error:
+ if !(*(*uintptr)(unsafe.Pointer(bp + 64)) != 0) {
+ goto __37
+ }
+ Xsqlite3_result_error(tls, context, *(*uintptr)(unsafe.Pointer(bp + 64)), -1)
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64)))
+__37:
+ ;
+ if !(rc != 0) {
+ goto __38
+ }
+ Xsqlite3_result_error_code(tls, context, rc)
+__38:
+}
+
+func detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ bp := tls.Alloc(152)
+ defer tls.Free(152)
+
+ var zName uintptr
+ var db uintptr
+ var i int32
+ var pDb uintptr
+ var pEntry uintptr
+
+ var pTrig uintptr
+ zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ db = Xsqlite3_context_db_handle(tls, context)
+ pDb = uintptr(0)
+
+ _ = NotUsed
+
+ if !(zName == uintptr(0)) {
+ goto __1
+ }
+ zName = ts + 1547
+__1:
+ ;
+ i = 0
+__2:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __4
+ }
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32
+ if !((*Db)(unsafe.Pointer(pDb)).FpBt == uintptr(0)) {
+ goto __5
+ }
+ goto __3
+__5:
+ ;
+ if !(Xsqlite3DbIsNamed(tls, db, i, zName) != 0) {
+ goto __6
+ }
+ goto __4
+__6:
+ ;
+ goto __3
+__3:
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+ if !(i >= (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __7
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24, ts+12274, libc.VaList(bp, zName))
+ goto detach_error
+__7:
+ ;
+ if !(i < 2) {
+ goto __8
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24, ts+12295, libc.VaList(bp+8, zName))
+ goto detach_error
+__8:
+ ;
+ if !(Xsqlite3BtreeTxnState(tls, (*Db)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE ||
+ Xsqlite3BtreeIsInBackup(tls, (*Db)(unsafe.Pointer(pDb)).FpBt) != 0) {
+ goto __9
+ }
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([128]int8{})), bp+24, ts+12321, libc.VaList(bp+16, zName))
+ goto detach_error
+__9:
+ ;
+ pEntry = (*Hash)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema + 56)).Ffirst
+__10:
+ if !(pEntry != 0) {
+ goto __11
+ }
+ pTrig = (*HashElem)(unsafe.Pointer(pEntry)).Fdata
+ if !((*Trigger)(unsafe.Pointer(pTrig)).FpTabSchema == (*Db)(unsafe.Pointer(pDb)).FpSchema) {
+ goto __12
+ }
+ (*Trigger)(unsafe.Pointer(pTrig)).FpTabSchema = (*Trigger)(unsafe.Pointer(pTrig)).FpSchema
+__12:
+ ;
+ pEntry = (*HashElem)(unsafe.Pointer(pEntry)).Fnext
+ goto __10
+__11:
+ ;
+ Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ (*Db)(unsafe.Pointer(pDb)).FpBt = uintptr(0)
+ (*Db)(unsafe.Pointer(pDb)).FpSchema = uintptr(0)
+ Xsqlite3CollapseDatabaseArray(tls, db)
+ return
+
+detach_error:
+ Xsqlite3_result_error(tls, context, bp+24, -1)
+}
+
+func codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAuthArg uintptr, pFilename uintptr, pDbname uintptr, pKey uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32
+
+ var v uintptr
+ var db uintptr
+ var regArgs int32
+ var zAuthArg uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !(SQLITE_OK != Xsqlite3ReadSchema(tls, pParse)) {
+ goto __1
+ }
+ goto attach_end
+__1:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __2
+ }
+ goto attach_end
+__2:
+ ;
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+
+ if !(SQLITE_OK != resolveAttachExpr(tls, bp, pFilename) || SQLITE_OK != resolveAttachExpr(tls, bp, pDbname) || SQLITE_OK != resolveAttachExpr(tls, bp, pKey)) {
+ goto __3
+ }
+ goto attach_end
+__3:
+ ;
+ if !(pAuthArg != 0) {
+ goto __4
+ }
+ if !(int32((*Expr)(unsafe.Pointer(pAuthArg)).Fop) == TK_STRING) {
+ goto __5
+ }
+
+ zAuthArg = *(*uintptr)(unsafe.Pointer(pAuthArg + 8))
+ goto __6
+__5:
+ zAuthArg = uintptr(0)
+__6:
+ ;
+ rc = Xsqlite3AuthCheck(tls, pParse, type1, zAuthArg, uintptr(0), uintptr(0))
+ if !(rc != SQLITE_OK) {
+ goto __7
+ }
+ goto attach_end
+__7:
+ ;
+__4:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ regArgs = Xsqlite3GetTempRange(tls, pParse, 4)
+ Xsqlite3ExprCode(tls, pParse, pFilename, regArgs)
+ Xsqlite3ExprCode(tls, pParse, pDbname, regArgs+1)
+ Xsqlite3ExprCode(tls, pParse, pKey, regArgs+2)
+
+ if !(v != 0) {
+ goto __8
+ }
+ Xsqlite3VdbeAddFunctionCall(tls, pParse, 0, regArgs+3-int32((*FuncDef)(unsafe.Pointer(pFunc)).FnArg), regArgs+3,
+ int32((*FuncDef)(unsafe.Pointer(pFunc)).FnArg), pFunc, 0)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Expire, libc.Bool32(type1 == SQLITE_ATTACH))
+__8:
+ ;
+attach_end:
+ Xsqlite3ExprDelete(tls, db, pFilename)
+ Xsqlite3ExprDelete(tls, db, pDbname)
+ Xsqlite3ExprDelete(tls, db, pKey)
+}
+
+// Called by the parser to compile a DETACH statement.
+//
+// DETACH pDbname
+func Xsqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) {
+ codeAttach(tls, pParse, SQLITE_DETACH, uintptr(unsafe.Pointer(&detach_func)), pDbname, uintptr(0), uintptr(0), pDbname)
+}
+
+var detach_func = FuncDef{
+ FnArg: int8(1),
+ FfuncFlags: U32(SQLITE_UTF8),
+ FxSFunc: 0,
+ FzName: ts + 12343}
+
+// Called by the parser to compile an ATTACH statement.
+//
+// ATTACH p AS pDbname KEY pKey
+func Xsqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, pKey uintptr) {
+ codeAttach(tls, pParse, SQLITE_ATTACH, uintptr(unsafe.Pointer(&attach_func)), p, p, pDbname, pKey)
+}
+
+var attach_func = FuncDef{
+ FnArg: int8(3),
+ FfuncFlags: U32(SQLITE_UTF8),
+ FxSFunc: 0,
+ FzName: ts + 12357}
+
+func fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pFix uintptr = *(*uintptr)(unsafe.Pointer(p + 40))
+ if !(int32((*DbFixer)(unsafe.Pointer(pFix)).FbTemp) != 0) {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_FromDDL)
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_VARIABLE {
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*DbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit.Fbusy != 0 {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_NULL)
+ } else {
+ Xsqlite3ErrorMsg(tls, (*DbFixer)(unsafe.Pointer(pFix)).FpParse, ts+12371, libc.VaList(bp, (*DbFixer)(unsafe.Pointer(pFix)).FzType))
+ return WRC_Abort
+ }
+ }
+ return WRC_Continue
+}
+
+func fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pFix uintptr = *(*uintptr)(unsafe.Pointer(p + 40))
+ var i int32
+ var pItem uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer((*DbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb
+ var iDb int32 = Xsqlite3FindDbName(tls, db, (*DbFixer)(unsafe.Pointer(pFix)).FzDb)
+ var pList uintptr = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+
+ if pList == uintptr(0) {
+ return WRC_Continue
+ }
+ i = 0
+ pItem = pList + 8
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pList)).FnSrc) {
+ goto __3
+ }
+ {
+ if int32((*DbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 {
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 {
+ if iDb != Xsqlite3FindDbName(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase) {
+ Xsqlite3ErrorMsg(tls, (*DbFixer)(unsafe.Pointer(pFix)).FpParse,
+ ts+12395,
+ libc.VaList(bp, (*DbFixer)(unsafe.Pointer(pFix)).FzType, (*DbFixer)(unsafe.Pointer(pFix)).FpName, (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase))
+ return WRC_Abort
+ }
+ Xsqlite3DbFree(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase)
+ (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase = uintptr(0)
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 9, 0x200)
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FpSchema = (*DbFixer)(unsafe.Pointer(pFix)).FpSchema
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 7, 0x80)
+ }
+ if int32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*104 + 60 + 4))&0x400>>10) == 0 &&
+ Xsqlite3WalkExpr(tls, pFix+8, *(*uintptr)(unsafe.Pointer(pList + 8 + uintptr(i)*104 + 72))) != 0 {
+ return WRC_Abort
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 104
+ goto __1
+ goto __3
+__3:
+ ;
+ if (*Select)(unsafe.Pointer(pSelect)).FpWith != 0 {
+ for i = 0; i < (*With)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpWith)).FnCte; i++ {
+ if Xsqlite3WalkSelect(tls, p, (*Cte)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpWith+16+uintptr(i)*48)).FpSelect) != 0 {
+ return WRC_Abort
+ }
+ }
+ }
+ return WRC_Continue
+}
+
+// Initialize a DbFixer structure. This routine must be called prior
+// to passing the structure to one of the sqliteFixAAAA() routines below.
+func Xsqlite3FixInit(tls *libc.TLS, pFix uintptr, pParse uintptr, iDb int32, zType uintptr, pName uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ (*DbFixer)(unsafe.Pointer(pFix)).FpParse = pParse
+ (*DbFixer)(unsafe.Pointer(pFix)).FzDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ (*DbFixer)(unsafe.Pointer(pFix)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ (*DbFixer)(unsafe.Pointer(pFix)).FzType = zType
+ (*DbFixer)(unsafe.Pointer(pFix)).FpName = pName
+ (*DbFixer)(unsafe.Pointer(pFix)).FbTemp = U8(libc.Bool32(iDb == 1))
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FpParse = pParse
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{fixExprCb}))
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{fixSelectCb}))
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3WalkWinDefnDummyCallback}))
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FwalkerDepth = 0
+ (*DbFixer)(unsafe.Pointer(pFix)).Fw.FeCode = U16(0)
+ *(*uintptr)(unsafe.Pointer(pFix + 8 + 40)) = pFix
+}
+
+// The following set of routines walk through the parse tree and assign
+// a specific database to all table references where the database name
+// was left unspecified in the original SQL statement. The pFix structure
+// must have been initialized by a prior call to sqlite3FixInit().
+//
+// These routines are used to make sure that an index, trigger, or
+// view in one database does not refer to objects in a different database.
+// (Exception: indices, triggers, and views in the TEMP database are
+// allowed to refer to anything.) If a reference is explicitly made
+// to an object in a different database, an error message is added to
+// pParse->zErrMsg and these routines return non-zero. If everything
+// checks out, these routines return 0.
+func Xsqlite3FixSrcList(tls *libc.TLS, pFix uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(128)
+ defer tls.Free(128)
+
+ var res int32 = 0
+ if pList != 0 {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Select{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Select)(unsafe.Pointer(bp)).FpSrc = pList
+ res = Xsqlite3WalkSelect(tls, pFix+8, bp)
+ }
+ return res
+}
+
+func Xsqlite3FixSelect(tls *libc.TLS, pFix uintptr, pSelect uintptr) int32 {
+ return Xsqlite3WalkSelect(tls, pFix+8, pSelect)
+}
+
+func Xsqlite3FixExpr(tls *libc.TLS, pFix uintptr, pExpr uintptr) int32 {
+ return Xsqlite3WalkExpr(tls, pFix+8, pExpr)
+}
+
+func Xsqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) int32 {
+ for pStep != 0 {
+ if Xsqlite3WalkSelect(tls, pFix+8, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect) != 0 ||
+ Xsqlite3WalkExpr(tls, pFix+8, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere) != 0 ||
+ Xsqlite3WalkExprList(tls, pFix+8, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList) != 0 ||
+ Xsqlite3FixSrcList(tls, pFix, (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom) != 0 {
+ return 1
+ }
+ {
+ var pUp uintptr
+ for pUp = (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert; pUp != 0; pUp = (*Upsert)(unsafe.Pointer(pUp)).FpNextUpsert {
+ if Xsqlite3WalkExprList(tls, pFix+8, (*Upsert)(unsafe.Pointer(pUp)).FpUpsertTarget) != 0 ||
+ Xsqlite3WalkExpr(tls, pFix+8, (*Upsert)(unsafe.Pointer(pUp)).FpUpsertTargetWhere) != 0 ||
+ Xsqlite3WalkExprList(tls, pFix+8, (*Upsert)(unsafe.Pointer(pUp)).FpUpsertSet) != 0 ||
+ Xsqlite3WalkExpr(tls, pFix+8, (*Upsert)(unsafe.Pointer(pUp)).FpUpsertWhere) != 0 {
+ return 1
+ }
+ }
+
+ }
+ pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext
+ }
+
+ return 0
+}
+
+// Set or clear the access authorization function.
+//
+// The access authorization function is be called during the compilation
+// phase to verify that the user has read and/or write access permission on
+// various fields of the database. The first argument to the auth function
+// is a copy of the 3rd argument to this routine. The second argument
+// to the auth function is one of these constants:
+//
+// SQLITE_CREATE_INDEX
+// SQLITE_CREATE_TABLE
+// SQLITE_CREATE_TEMP_INDEX
+// SQLITE_CREATE_TEMP_TABLE
+// SQLITE_CREATE_TEMP_TRIGGER
+// SQLITE_CREATE_TEMP_VIEW
+// SQLITE_CREATE_TRIGGER
+// SQLITE_CREATE_VIEW
+// SQLITE_DELETE
+// SQLITE_DROP_INDEX
+// SQLITE_DROP_TABLE
+// SQLITE_DROP_TEMP_INDEX
+// SQLITE_DROP_TEMP_TABLE
+// SQLITE_DROP_TEMP_TRIGGER
+// SQLITE_DROP_TEMP_VIEW
+// SQLITE_DROP_TRIGGER
+// SQLITE_DROP_VIEW
+// SQLITE_INSERT
+// SQLITE_PRAGMA
+// SQLITE_READ
+// SQLITE_SELECT
+// SQLITE_TRANSACTION
+// SQLITE_UPDATE
+//
+// The third and fourth arguments to the auth function are the name of
+// the table and the column that are being accessed. The auth function
+// should return either SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE. If
+// SQLITE_OK is returned, it means that access is allowed. SQLITE_DENY
+// means that the SQL statement will never-run - the sqlite3_exec() call
+// will return with an error. SQLITE_IGNORE means that the SQL statement
+// should run but attempts to read the specified column will return NULL
+// and attempts to write the column will be ignored.
+//
+// Setting the auth function to NULL disables this hook. The default
+// setting of the auth function is NULL.
+func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAuth != 0 {
+ Xsqlite3ExpirePreparedStatements(tls, db, 1)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+func sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12441, 0)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+}
+
+// Invoke the authorization callback for permission to read column zCol from
+// table zTab in database zDb. This function assumes that an authorization
+// callback has been registered (i.e. that sqlite3.xAuth is not NULL).
+//
+// If SQLITE_IGNORE is returned and pExpr is not NULL, then pExpr is changed
+// to an SQL NULL expression. Otherwise, if pExpr is NULL, then SQLITE_IGNORE
+// is treated as SQLITE_DENY. In this case an error is left in pParse.
+func Xsqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintptr, iDb int32) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var zDb uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ var rc int32
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ return SQLITE_OK
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxAuth})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAuthArg, SQLITE_READ, zTab, zCol, zDb, (*Parse)(unsafe.Pointer(pParse)).FzAuthContext)
+ if rc == SQLITE_DENY {
+ var z uintptr = Xsqlite3_mprintf(tls, ts+12464, libc.VaList(bp, zTab, zCol))
+ if (*Sqlite3)(unsafe.Pointer(db)).FnDb > 2 || iDb != 0 {
+ z = Xsqlite3_mprintf(tls, ts+12470, libc.VaList(bp+16, zDb, z))
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+12476, libc.VaList(bp+32, z))
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_AUTH
+ } else if rc != SQLITE_IGNORE && rc != SQLITE_OK {
+ sqliteAuthBadReturnCode(tls, pParse)
+ }
+ return rc
+}
+
+// The pExpr should be a TK_COLUMN expression. The table referred to
+// is in pTabList or else it is the NEW or OLD table of a trigger.
+// Check to see if it is OK to read this particular column.
+//
+// If the auth function returns SQLITE_IGNORE, change the TK_COLUMN
+// instruction into a TK_NULL. If the auth function returns SQLITE_DENY,
+// then generate an error.
+func Xsqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uintptr, pTabList uintptr) {
+ var pTab uintptr = uintptr(0)
+ var zCol uintptr
+ var iSrc int32
+ var iDb int32
+ var iCol int32
+
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSchema)
+ if iDb < 0 {
+ return
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_TRIGGER {
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab
+ } else {
+ for iSrc = 0; iSrc < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc; iSrc++ {
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SrcItem)(unsafe.Pointer(pTabList+8+uintptr(iSrc)*104)).FiCursor {
+ pTab = (*SrcItem)(unsafe.Pointer(pTabList + 8 + uintptr(iSrc)*104)).FpTab
+ break
+ }
+ }
+ }
+ iCol = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ if pTab == uintptr(0) {
+ return
+ }
+
+ if iCol >= 0 {
+ zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).FzCnName
+ } else if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) >= 0 {
+ zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*24)).FzCnName
+ } else {
+ zCol = ts + 8116
+ }
+
+ if SQLITE_IGNORE == Xsqlite3AuthReadCol(tls, pParse, (*Table)(unsafe.Pointer(pTab)).FzName, zCol, iDb) {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_NULL)
+ }
+}
+
+// Do an authorization check using the code and arguments given. Return
+// either SQLITE_OK (zero) or SQLITE_IGNORE or SQLITE_DENY. If SQLITE_DENY
+// is returned, then the error count and error message in pParse are
+// modified appropriately.
+func Xsqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, zArg2 uintptr, zArg3 uintptr) int32 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var rc int32
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAuth == uintptr(0) || (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 || int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL {
+ return SQLITE_OK
+ }
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxAuth})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*Parse)(unsafe.Pointer(pParse)).FzAuthContext)
+ if rc == SQLITE_DENY {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12503, 0)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_AUTH
+ } else if rc != SQLITE_OK && rc != SQLITE_IGNORE {
+ rc = SQLITE_DENY
+ sqliteAuthBadReturnCode(tls, pParse)
+ }
+ return rc
+}
+
+// Push an authorization context. After this routine is called, the
+// zArg3 argument to authorization callbacks will be zContext until
+// popped. Or if pParse==0, this routine is a no-op.
+func Xsqlite3AuthContextPush(tls *libc.TLS, pParse uintptr, pContext uintptr, zContext uintptr) {
+ (*AuthContext)(unsafe.Pointer(pContext)).FpParse = pParse
+ (*AuthContext)(unsafe.Pointer(pContext)).FzAuthContext = (*Parse)(unsafe.Pointer(pParse)).FzAuthContext
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = zContext
+}
+
+// Pop an authorization context that was previously pushed
+// by sqlite3AuthContextPush
+func Xsqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) {
+ if (*AuthContext)(unsafe.Pointer(pContext)).FpParse != 0 {
+ (*Parse)(unsafe.Pointer((*AuthContext)(unsafe.Pointer(pContext)).FpParse)).FzAuthContext = (*AuthContext)(unsafe.Pointer(pContext)).FzAuthContext
+ (*AuthContext)(unsafe.Pointer(pContext)).FpParse = uintptr(0)
+ }
+}
+
+func lockTable(tls *libc.TLS, pParse uintptr, iDb int32, iTab Pgno, isWriteLock U8, zName uintptr) {
+ var pToplevel uintptr
+ var i int32
+ var nBytes int32
+ var p uintptr
+
+ pToplevel = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ for i = 0; i < (*Parse)(unsafe.Pointer(pToplevel)).FnTableLock; i++ {
+ p = (*Parse)(unsafe.Pointer(pToplevel)).FaTableLock + uintptr(i)*24
+ if (*TableLock)(unsafe.Pointer(p)).FiDb == iDb && (*TableLock)(unsafe.Pointer(p)).FiTab == iTab {
+ (*TableLock)(unsafe.Pointer(p)).FisWriteLock = U8(libc.Bool32((*TableLock)(unsafe.Pointer(p)).FisWriteLock != 0 || isWriteLock != 0))
+ return
+ }
+ }
+
+ nBytes = int32(uint64(unsafe.Sizeof(TableLock{})) * uint64((*Parse)(unsafe.Pointer(pToplevel)).FnTableLock+1))
+ (*Parse)(unsafe.Pointer(pToplevel)).FaTableLock = Xsqlite3DbReallocOrFree(tls, (*Parse)(unsafe.Pointer(pToplevel)).Fdb, (*Parse)(unsafe.Pointer(pToplevel)).FaTableLock, uint64(nBytes))
+ if (*Parse)(unsafe.Pointer(pToplevel)).FaTableLock != 0 {
+ p = (*Parse)(unsafe.Pointer(pToplevel)).FaTableLock + uintptr(libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pToplevel)).FnTableLock, 1))*24
+ (*TableLock)(unsafe.Pointer(p)).FiDb = iDb
+ (*TableLock)(unsafe.Pointer(p)).FiTab = iTab
+ (*TableLock)(unsafe.Pointer(p)).FisWriteLock = isWriteLock
+ (*TableLock)(unsafe.Pointer(p)).FzLockName = zName
+ } else {
+ (*Parse)(unsafe.Pointer(pToplevel)).FnTableLock = 0
+ Xsqlite3OomFault(tls, (*Parse)(unsafe.Pointer(pToplevel)).Fdb)
+ }
+}
+
+func Xsqlite3TableLock(tls *libc.TLS, pParse uintptr, iDb int32, iTab Pgno, isWriteLock U8, zName uintptr) {
+ if iDb == 1 {
+ return
+ }
+ if !(Xsqlite3BtreeSharable(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+uintptr(iDb)*32)).FpBt) != 0) {
+ return
+ }
+ lockTable(tls, pParse, iDb, iTab, isWriteLock, zName)
+}
+
+func codeTableLocks(tls *libc.TLS, pParse uintptr) {
+ var i int32
+ var pVdbe uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ for i = 0; i < (*Parse)(unsafe.Pointer(pParse)).FnTableLock; i++ {
+ var p uintptr = (*Parse)(unsafe.Pointer(pParse)).FaTableLock + uintptr(i)*24
+ var p1 int32 = (*TableLock)(unsafe.Pointer(p)).FiDb
+ Xsqlite3VdbeAddOp4(tls, pVdbe, OP_TableLock, p1, int32((*TableLock)(unsafe.Pointer(p)).FiTab), int32((*TableLock)(unsafe.Pointer(p)).FisWriteLock),
+ (*TableLock)(unsafe.Pointer(p)).FzLockName, -1)
+ }
+}
+
+// This routine is called after a single SQL statement has been
+// parsed and a VDBE program to execute that statement has been
+// prepared. This routine puts the finishing touches on the
+// VDBE program and resets the pParse structure for the next
+// parse.
+//
+// Note that if an error occurred, it might be the case that
+// no VDBE code was generated.
+func Xsqlite3FinishCoding(tls *libc.TLS, pParse uintptr) {
+ var db uintptr
+ var v uintptr
+ var iDb int32
+ var i int32
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Parse)(unsafe.Pointer(pParse)).Fnested != 0 {
+ return
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ return
+ }
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ if v == uintptr(0) {
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_DONE
+ return
+ }
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v == uintptr(0) {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+ }
+ }
+
+ if v != 0 {
+ if (*Parse)(unsafe.Pointer(pParse)).FbReturning != 0 {
+ var pReturning uintptr = *(*uintptr)(unsafe.Pointer(pParse + 200))
+ var addrRewind int32
+ var reg int32
+
+ if (*Returning)(unsafe.Pointer(pReturning)).FnRetCol != 0 {
+ Xsqlite3VdbeAddOp0(tls, v, OP_FkCheck)
+ addrRewind = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*Returning)(unsafe.Pointer(pReturning)).FiRetCur)
+
+ reg = (*Returning)(unsafe.Pointer(pReturning)).FiRetReg
+ for i = 0; i < (*Returning)(unsafe.Pointer(pReturning)).FnRetCol; i++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*Returning)(unsafe.Pointer(pReturning)).FiRetCur, i, reg+i)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, reg, i)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, (*Returning)(unsafe.Pointer(pReturning)).FiRetCur, addrRewind+1)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrRewind)
+ }
+ }
+ Xsqlite3VdbeAddOp0(tls, v, OP_Halt)
+
+ Xsqlite3VdbeJumpHere(tls, v, 0)
+
+ iDb = 0
+ for __ccgo := true; __ccgo; __ccgo = libc.PreIncInt32(&iDb, 1) < (*Sqlite3)(unsafe.Pointer(db)).FnDb {
+ var pSchema uintptr
+ if libc.Bool32((*Parse)(unsafe.Pointer(pParse)).FcookieMask&(YDbMask(1)<<iDb) != YDbMask(0)) == 0 {
+ continue
+ }
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+ pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ Xsqlite3VdbeAddOp4Int(tls, v,
+ OP_Transaction,
+ iDb,
+ libc.Bool32((*Parse)(unsafe.Pointer(pParse)).FwriteMask&(YDbMask(1)<<iDb) != YDbMask(0)),
+ (*Schema)(unsafe.Pointer(pSchema)).Fschema_cookie,
+ (*Schema)(unsafe.Pointer(pSchema)).FiGeneration)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0 {
+ Xsqlite3VdbeChangeP5(tls, v, uint16(1))
+ }
+
+ }
+ for i = 0; i < (*Parse)(unsafe.Pointer(pParse)).FnVtabLock; i++ {
+ var vtab uintptr = Xsqlite3GetVTable(tls, db, *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).FapVtabLock + uintptr(i)*8)))
+ Xsqlite3VdbeAddOp4(tls, v, OP_VBegin, 0, 0, 0, vtab, -11)
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnVtabLock = 0
+
+ codeTableLocks(tls, pParse)
+
+ Xsqlite3AutoincrementBegin(tls, pParse)
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpConstExpr != 0 {
+ var pEL uintptr = (*Parse)(unsafe.Pointer(pParse)).FpConstExpr
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(0)
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEL)).FnExpr; i++ {
+ var iReg int32 = *(*int32)(unsafe.Pointer(pEL + 8 + uintptr(i)*32 + 24))
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pEL+8+uintptr(i)*32)).FpExpr, iReg)
+ }
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FbReturning != 0 {
+ var pRet uintptr = *(*uintptr)(unsafe.Pointer(pParse + 200))
+ if (*Returning)(unsafe.Pointer(pRet)).FnRetCol != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*Returning)(unsafe.Pointer(pRet)).FiRetCur, (*Returning)(unsafe.Pointer(pRet)).FnRetCol)
+ }
+ }
+
+ Xsqlite3VdbeGoto(tls, v, 1)
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ Xsqlite3VdbeMakeReady(tls, v, pParse)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_DONE
+ } else {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+ }
+}
+
+// Run the parser and code generator recursively in order to generate
+// code for the SQL statement given onto the end of the pParse context
+// currently under construction. Notes:
+//
+// - The final OP_Halt is not appended and other initialization
+// and finalization steps are omitted because those are handling by the
+// outermost parser.
+//
+// - Built-in SQL functions always take precedence over application-defined
+// SQL functions. In other words, it is not possible to override a
+// built-in function.
+func Xsqlite3NestedParse(tls *libc.TLS, pParse uintptr, zFormat uintptr, va uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var ap Va_list
+ _ = ap
+ var zSql uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var savedDbFlags U32 = (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FeParseMode != 0 {
+ return
+ }
+
+ ap = va
+ zSql = Xsqlite3VMPrintf(tls, db, zFormat, ap)
+ _ = ap
+ if zSql == uintptr(0) {
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_TOOBIG
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ return
+ }
+ (*Parse)(unsafe.Pointer(pParse)).Fnested++
+ libc.X__builtin___memcpy_chk(tls, bp, pParse+uintptr(uint64(uintptr(0)+288)), uint64(unsafe.Sizeof(Parse{}))-uint64(uintptr(0)+288), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, pParse+uintptr(uint64(uintptr(0)+288)), 0, uint64(unsafe.Sizeof(Parse{}))-uint64(uintptr(0)+288), libc.X__builtin_object_size(tls, pParse+uintptr(uint64(uintptr(0)+288)), 0))
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_PreferBuiltin)
+ Xsqlite3RunParser(tls, pParse, zSql)
+ (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags = savedDbFlags
+ Xsqlite3DbFree(tls, db, zSql)
+ libc.X__builtin___memcpy_chk(tls, pParse+uintptr(uint64(uintptr(0)+288)), bp, uint64(unsafe.Sizeof(Parse{}))-uint64(uintptr(0)+288), libc.X__builtin_object_size(tls, pParse+uintptr(uint64(uintptr(0)+288)), 0))
+ (*Parse)(unsafe.Pointer(pParse)).Fnested--
+}
+
+// Locate the in-memory structure that describes a particular database
+// table given the name of that table and (optionally) the name of the
+// database containing the table. Return NULL if not found.
+//
+// If zDatabase is 0, all databases are searched for the table and the
+// first matching table is returned. (No checking for duplicate table
+// names is done.) The search order is TEMP first, then MAIN, then any
+// auxiliary databases added using the ATTACH command.
+//
+// See also sqlite3LocateTable().
+func Xsqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintptr) uintptr {
+ var p uintptr = uintptr(0)
+ var i int32
+
+ if zDatabase != 0 {
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ if Xsqlite3StrICmp(tls, zDatabase, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FzDbSName) == 0 {
+ break
+ }
+ }
+ if i >= (*Sqlite3)(unsafe.Pointer(db)).FnDb {
+ if Xsqlite3StrICmp(tls, zDatabase, ts+6844) == 0 {
+ i = 0
+ } else {
+ return uintptr(0)
+ }
+ }
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema+8, zName)
+ if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, ts+6784, 7) == 0 {
+ if i == 1 {
+ if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6811+7) == 0 ||
+ Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6830+7) == 0 ||
+ Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6286+7) == 0 {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema+8,
+ ts+6792)
+ }
+ } else {
+ if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6830+7) == 0 {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema+8,
+ ts+6286)
+ }
+ }
+ }
+ } else {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema+8, zName)
+ if p != 0 {
+ return p
+ }
+
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema+8, zName)
+ if p != 0 {
+ return p
+ }
+
+ for i = 2; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema+8, zName)
+ if p != 0 {
+ break
+ }
+ }
+ if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, ts+6784, 7) == 0 {
+ if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6830+7) == 0 {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema+8, ts+6286)
+ } else if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6811+7) == 0 {
+ p = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema+8,
+ ts+6792)
+ }
+ }
+ }
+ return p
+}
+
+// Locate the in-memory structure that describes a particular database
+// table given the name of that table and (optionally) the name of the
+// database containing the table. Return NULL if not found. Also leave an
+// error message in pParse->zErrMsg.
+//
+// The difference between this routine and sqlite3FindTable() is that this
+// routine leaves an error message in pParse->zErrMsg where
+// sqlite3FindTable() does not.
+func Xsqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags U32, zName uintptr, zDbase uintptr) uintptr {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var p uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_SchemaKnownOk) == U32(0) &&
+ SQLITE_OK != Xsqlite3ReadSchema(tls, pParse) {
+ return uintptr(0)
+ }
+
+ p = Xsqlite3FindTable(tls, db, zName, zDbase)
+ if p == uintptr(0) {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FprepFlags)&SQLITE_PREPARE_NO_VTAB == 0 && int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0 {
+ var pMod uintptr = Xsqlite3HashFind(tls, db+576, zName)
+ if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, ts+12518, 7) == 0 {
+ pMod = Xsqlite3PragmaVtabRegister(tls, db, zName)
+ }
+ if pMod != 0 && Xsqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 {
+ return (*Module)(unsafe.Pointer(pMod)).FpEpoTab
+ }
+ }
+ if flags&U32(LOCATE_NOERR) != 0 {
+ return uintptr(0)
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ } else if int32((*Table)(unsafe.Pointer(p)).FeTabType) == TABTYP_VTAB && int32((*Parse)(unsafe.Pointer(pParse)).FprepFlags)&SQLITE_PREPARE_NO_VTAB != 0 {
+ p = uintptr(0)
+ }
+
+ if p == uintptr(0) {
+ var zMsg uintptr
+ if flags&U32(LOCATE_VIEW) != 0 {
+ zMsg = ts + 12526
+ } else {
+ zMsg = ts + 12539
+ }
+ if zDbase != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7048, libc.VaList(bp, zMsg, zDbase, zName))
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+7058, libc.VaList(bp+24, zMsg, zName))
+ }
+ } else {
+ }
+
+ return p
+}
+
+// Locate the table identified by *p.
+//
+// This is a wrapper around sqlite3LocateTable(). The difference between
+// sqlite3LocateTable() and this function is that this function restricts
+// the search to schema (p->pSchema) if it is not NULL. p->pSchema may be
+// non-NULL if it is part of a view or trigger program definition. See
+// sqlite3FixSrcList() for details.
+func Xsqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags U32, p uintptr) uintptr {
+ var zDb uintptr
+
+ if (*SrcItem)(unsafe.Pointer(p)).FpSchema != 0 {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*SrcItem)(unsafe.Pointer(p)).FpSchema)
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32)).FzDbSName
+ } else {
+ zDb = (*SrcItem)(unsafe.Pointer(p)).FzDatabase
+ }
+ return Xsqlite3LocateTable(tls, pParse, flags, (*SrcItem)(unsafe.Pointer(p)).FzName, zDb)
+}
+
+// Return the preferred table name for system tables. Translate legacy
+// names into the new preferred names, as appropriate.
+func Xsqlite3PreferredTableName(tls *libc.TLS, zName uintptr) uintptr {
+ if Xsqlite3_strnicmp(tls, zName, ts+6784, 7) == 0 {
+ if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6286+7) == 0 {
+ return ts + 6830
+ }
+ if Xsqlite3StrICmp(tls, zName+uintptr(7), ts+6792+7) == 0 {
+ return ts + 6811
+ }
+ }
+ return zName
+}
+
+// Locate the in-memory structure that describes
+// a particular index given the name of that index
+// and the name of the database that contains the index.
+// Return NULL if not found.
+//
+// If zDatabase is 0, all databases are searched for the
+// table and the first matching index is returned. (No checking
+// for duplicate index names is done.) The search order is
+// TEMP first, then MAIN, then any auxiliary databases added
+// using the ATTACH command.
+func Xsqlite3FindIndex(tls *libc.TLS, db uintptr, zName uintptr, zDb uintptr) uintptr {
+ var p uintptr = uintptr(0)
+ var i int32
+
+ for i = OMIT_TEMPDB; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var j int32
+ if i < 2 {
+ j = i ^ 1
+ } else {
+ j = i
+ }
+ var pSchema uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(j)*32)).FpSchema
+
+ if zDb != 0 && Xsqlite3DbIsNamed(tls, db, j, zDb) == 0 {
+ continue
+ }
+
+ p = Xsqlite3HashFind(tls, pSchema+32, zName)
+ if p != 0 {
+ break
+ }
+ }
+ return p
+}
+
+// Reclaim the memory used by an index
+func Xsqlite3FreeIndex(tls *libc.TLS, db uintptr, p uintptr) {
+ Xsqlite3DeleteIndexSamples(tls, db, p)
+ Xsqlite3ExprDelete(tls, db, (*Index)(unsafe.Pointer(p)).FpPartIdxWhere)
+ Xsqlite3ExprListDelete(tls, db, (*Index)(unsafe.Pointer(p)).FaColExpr)
+ Xsqlite3DbFree(tls, db, (*Index)(unsafe.Pointer(p)).FzColAff)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(p + 100))&0x10>>4)) != 0 {
+ Xsqlite3DbFree(tls, db, (*Index)(unsafe.Pointer(p)).FazColl)
+ }
+ Xsqlite3_free(tls, (*Index)(unsafe.Pointer(p)).FaiRowEst)
+ Xsqlite3DbFree(tls, db, p)
+}
+
+// For the index called zIdxName which is found in the database iDb,
+// unlike that index from its Table then remove the index from
+// the index hash table and free all memory structures associated
+// with the index.
+func Xsqlite3UnlinkAndDeleteIndex(tls *libc.TLS, db uintptr, iDb int32, zIdxName uintptr) {
+ var pIndex uintptr
+ var pHash uintptr
+
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 32
+ pIndex = Xsqlite3HashInsert(tls, pHash, zIdxName, uintptr(0))
+ if pIndex != 0 {
+ if (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FpIndex == pIndex {
+ (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FpIndex = (*Index)(unsafe.Pointer(pIndex)).FpNext
+ } else {
+ var p uintptr
+
+ p = (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FpIndex
+ for p != 0 && (*Index)(unsafe.Pointer(p)).FpNext != pIndex {
+ p = (*Index)(unsafe.Pointer(p)).FpNext
+ }
+ if p != 0 && (*Index)(unsafe.Pointer(p)).FpNext == pIndex {
+ (*Index)(unsafe.Pointer(p)).FpNext = (*Index)(unsafe.Pointer(pIndex)).FpNext
+ }
+ }
+ Xsqlite3FreeIndex(tls, db, pIndex)
+ }
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+}
+
+// Look through the list of open database files in db->aDb[] and if
+// any have been closed, remove them from the list. Reallocate the
+// db->aDb[] structure to a smaller size, if possible.
+//
+// Entry 0 (the "main" database) and entry 1 (the "temp" database)
+// are never candidates for being collapsed.
+func Xsqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) {
+ var i int32
+ var j int32
+ for i = libc.AssignInt32(&j, 2); i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32
+ if (*Db1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) {
+ Xsqlite3DbFree(tls, db, (*Db1)(unsafe.Pointer(pDb)).FzDbSName)
+ (*Db1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0)
+ continue
+ }
+ if j < i {
+ *(*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(j)*32)) = *(*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))
+ }
+ j++
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnDb = j
+ if (*Sqlite3)(unsafe.Pointer(db)).FnDb <= 2 && (*Sqlite3)(unsafe.Pointer(db)).FaDb != db+696 {
+ libc.X__builtin___memcpy_chk(tls, db+696, (*Sqlite3)(unsafe.Pointer(db)).FaDb, uint64(2)*uint64(unsafe.Sizeof(Db{})), libc.X__builtin_object_size(tls, db+696, 0))
+ Xsqlite3DbFree(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaDb)
+ (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 696
+ }
+}
+
+// Reset the schema for the database at index iDb. Also reset the
+// TEMP schema. The reset is deferred if db->nSchemaLock is not zero.
+// Deferred resets may be run by calling with iDb<0.
+func Xsqlite3ResetOneSchema(tls *libc.TLS, db uintptr, iDb int32) {
+ var i int32
+
+ if iDb >= 0 {
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 114)) |= U16(DB_ResetWanted)
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema + 114)) |= U16(DB_ResetWanted)
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_SchemaKnownOk))
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FnSchemaLock == U32(0) {
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ if int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema)).FschemaFlags)&DB_ResetWanted == DB_ResetWanted {
+ Xsqlite3SchemaClear(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema)
+ }
+ }
+ }
+}
+
+// Erase all schema information from all attached databases (including
+// "main" and "temp") for a single database connection.
+func Xsqlite3ResetAllSchemasOfConnection(tls *libc.TLS, db uintptr) {
+ var i int32
+ Xsqlite3BtreeEnterAll(tls, db)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32
+ if (*Db)(unsafe.Pointer(pDb)).FpSchema != 0 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FnSchemaLock == U32(0) {
+ Xsqlite3SchemaClear(tls, (*Db)(unsafe.Pointer(pDb)).FpSchema)
+ } else {
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema + 114)) |= U16(DB_ResetWanted)
+ }
+ }
+ }
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_SchemaChange | DBFLAG_SchemaKnownOk))
+ Xsqlite3VtabUnlockList(tls, db)
+ Xsqlite3BtreeLeaveAll(tls, db)
+ if (*Sqlite3)(unsafe.Pointer(db)).FnSchemaLock == U32(0) {
+ Xsqlite3CollapseDatabaseArray(tls, db)
+ }
+}
+
+// This routine is called when a commit occurs.
+func Xsqlite3CommitInternalChanges(tls *libc.TLS, db uintptr) {
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_SchemaChange))
+}
+
+// Set the expression associated with a column. This is usually
+// the DEFAULT value, but might also be the expression that computes
+// the value for a generated column.
+func Xsqlite3ColumnSetExpr(tls *libc.TLS, pParse uintptr, pTab uintptr, pCol uintptr, pExpr uintptr) {
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer(pTab + 64 + 16))
+ if int32((*Column)(unsafe.Pointer(pCol)).FiDflt) == 0 ||
+ pList == uintptr(0) ||
+ (*ExprList)(unsafe.Pointer(pList)).FnExpr < int32((*Column)(unsafe.Pointer(pCol)).FiDflt) {
+ (*Column)(unsafe.Pointer(pCol)).FiDflt = func() uint16 {
+ if pList == uintptr(0) {
+ return uint16(1)
+ }
+ return uint16((*ExprList)(unsafe.Pointer(pList)).FnExpr + 1)
+ }()
+ *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) = Xsqlite3ExprListAppend(tls, pParse, pList, pExpr)
+ } else {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(int32((*Column)(unsafe.Pointer(pCol)).FiDflt)-1)*32)).FpExpr)
+ (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(int32((*Column)(unsafe.Pointer(pCol)).FiDflt)-1)*32)).FpExpr = pExpr
+ }
+}
+
+// Return the expression associated with a column. The expression might be
+// the DEFAULT clause or the AS clause of a generated column.
+// Return NULL if the column has no associated expression.
+func Xsqlite3ColumnExpr(tls *libc.TLS, pTab uintptr, pCol uintptr) uintptr {
+ if int32((*Column)(unsafe.Pointer(pCol)).FiDflt) == 0 {
+ return uintptr(0)
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ return uintptr(0)
+ }
+ if *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) == uintptr(0) {
+ return uintptr(0)
+ }
+ if (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 16)))).FnExpr < int32((*Column)(unsafe.Pointer(pCol)).FiDflt) {
+ return uintptr(0)
+ }
+ return (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) + 8 + uintptr(int32((*Column)(unsafe.Pointer(pCol)).FiDflt)-1)*32)).FpExpr
+}
+
+// Set the collating sequence name for a column.
+func Xsqlite3ColumnSetColl(tls *libc.TLS, db uintptr, pCol uintptr, zColl uintptr) {
+ var nColl I64
+ var n I64
+ var zNew uintptr
+
+ n = I64(Xsqlite3Strlen30(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName) + 1)
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_HASTYPE != 0 {
+ n = n + I64(Xsqlite3Strlen30(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName+uintptr(n))+1)
+ }
+ nColl = I64(Xsqlite3Strlen30(tls, zColl) + 1)
+ zNew = Xsqlite3DbRealloc(tls, db, (*Column)(unsafe.Pointer(pCol)).FzCnName, uint64(nColl+n))
+ if zNew != 0 {
+ (*Column)(unsafe.Pointer(pCol)).FzCnName = zNew
+ libc.X__builtin___memcpy_chk(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName+uintptr(n), zColl, uint64(nColl), libc.X__builtin_object_size(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName+uintptr(n), 0))
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_HASCOLL)
+ }
+}
+
+// Return the collating squence name for a column
+func Xsqlite3ColumnColl(tls *libc.TLS, pCol uintptr) uintptr {
+ var z uintptr
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_HASCOLL == 0 {
+ return uintptr(0)
+ }
+ z = (*Column)(unsafe.Pointer(pCol)).FzCnName
+ for *(*int8)(unsafe.Pointer(z)) != 0 {
+ z++
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_HASTYPE != 0 {
+ for __ccgo := true; __ccgo; __ccgo = *(*int8)(unsafe.Pointer(z)) != 0 {
+ z++
+ }
+ }
+ return z + uintptr(1)
+}
+
+// Delete memory allocated for the column names of a table or view (the
+// Table.aCol[] array).
+func Xsqlite3DeleteColumnNames(tls *libc.TLS, db uintptr, pTable uintptr) {
+ var i int32
+ var pCol uintptr
+
+ if libc.AssignUintptr(&pCol, (*Table)(unsafe.Pointer(pTable)).FaCol) != uintptr(0) {
+ i = 0
+ __1:
+ if !(i < int32((*Table)(unsafe.Pointer(pTable)).FnCol)) {
+ goto __3
+ }
+ {
+ Xsqlite3DbFree(tls, db, (*Column)(unsafe.Pointer(pCol)).FzCnName)
+
+ }
+ goto __2
+ __2:
+ i++
+ pCol += 24
+ goto __1
+ goto __3
+ __3:
+ ;
+ Xsqlite3DbNNFreeNN(tls, db, (*Table)(unsafe.Pointer(pTable)).FaCol)
+ if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_NORM {
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(pTable + 64 + 16)))
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ (*Table)(unsafe.Pointer(pTable)).FaCol = uintptr(0)
+ (*Table)(unsafe.Pointer(pTable)).FnCol = int16(0)
+ if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_NORM {
+ *(*uintptr)(unsafe.Pointer(pTable + 64 + 16)) = uintptr(0)
+ }
+ }
+ }
+}
+
+func deleteTable(tls *libc.TLS, db uintptr, pTable uintptr) {
+ var pIndex uintptr
+ var pNext uintptr
+
+ for pIndex = (*Table)(unsafe.Pointer(pTable)).FpIndex; pIndex != 0; pIndex = pNext {
+ pNext = (*Index)(unsafe.Pointer(pIndex)).FpNext
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) && !(int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_VTAB) {
+ var zName uintptr = (*Index)(unsafe.Pointer(pIndex)).FzName
+ Xsqlite3HashInsert(tls,
+ (*Index)(unsafe.Pointer(pIndex)).FpSchema+32, zName, uintptr(0))
+
+ }
+ Xsqlite3FreeIndex(tls, db, pIndex)
+ }
+
+ if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_NORM {
+ Xsqlite3FkDelete(tls, db, pTable)
+ } else if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_VTAB {
+ Xsqlite3VtabClear(tls, db, pTable)
+ } else {
+ Xsqlite3SelectDelete(tls, db, *(*uintptr)(unsafe.Pointer(pTable + 64)))
+ }
+
+ Xsqlite3DeleteColumnNames(tls, db, pTable)
+ Xsqlite3DbFree(tls, db, (*Table)(unsafe.Pointer(pTable)).FzName)
+ Xsqlite3DbFree(tls, db, (*Table)(unsafe.Pointer(pTable)).FzColAff)
+ Xsqlite3ExprListDelete(tls, db, (*Table)(unsafe.Pointer(pTable)).FpCheck)
+ Xsqlite3DbFree(tls, db, pTable)
+
+}
+
+func Xsqlite3DeleteTable(tls *libc.TLS, db uintptr, pTable uintptr) {
+ if !(pTable != 0) {
+ return
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) && libc.PreDecUint32(&(*Table)(unsafe.Pointer(pTable)).FnTabRef, 1) > U32(0) {
+ return
+ }
+ deleteTable(tls, db, pTable)
+}
+
+// Unlink the given table from the hash tables and the delete the
+// table structure with all its indices and foreign keys.
+func Xsqlite3UnlinkAndDeleteTable(tls *libc.TLS, db uintptr, iDb int32, zTabName uintptr) {
+ var p uintptr
+ var pDb uintptr
+
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+ p = Xsqlite3HashInsert(tls, (*Db)(unsafe.Pointer(pDb)).FpSchema+8, zTabName, uintptr(0))
+ Xsqlite3DeleteTable(tls, db, p)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+}
+
+// Given a token, return a string that consists of the text of that
+// token. Space to hold the returned string
+// is obtained from sqliteMalloc() and must be freed by the calling
+// function.
+//
+// Any quotation marks (ex: "name", 'name', [name], or `name`) that
+// surround the body of the token are removed.
+//
+// Tokens are often just pointers into the original SQL text and so
+// are not \000 terminated and are not persistent. The returned string
+// is \000 terminated and is persistent.
+func Xsqlite3NameFromToken(tls *libc.TLS, db uintptr, pName uintptr) uintptr {
+ var zName uintptr
+ if pName != 0 {
+ zName = Xsqlite3DbStrNDup(tls, db, (*Token)(unsafe.Pointer(pName)).Fz, uint64((*Token)(unsafe.Pointer(pName)).Fn))
+ Xsqlite3Dequote(tls, zName)
+ } else {
+ zName = uintptr(0)
+ }
+ return zName
+}
+
+// Open the sqlite_schema table stored in database number iDb for
+// writing. The table is opened using cursor 0.
+func Xsqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) {
+ var v uintptr = Xsqlite3GetVdbe(tls, p)
+ Xsqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), ts+6286)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_OpenWrite, 0, SCHEMA_ROOT, iDb, 5)
+ if (*Parse)(unsafe.Pointer(p)).FnTab == 0 {
+ (*Parse)(unsafe.Pointer(p)).FnTab = 1
+ }
+}
+
+// Parameter zName points to a nul-terminated buffer containing the name
+// of a database ("main", "temp" or the name of an attached db). This
+// function returns the index of the named database in db->aDb[], or
+// -1 if the named db cannot be found.
+func Xsqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) int32 {
+ var i int32 = -1
+ if zName != 0 {
+ var pDb uintptr
+ i = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32
+ __1:
+ if !(i >= 0) {
+ goto __3
+ }
+ {
+ if 0 == Xsqlite3_stricmp(tls, (*Db)(unsafe.Pointer(pDb)).FzDbSName, zName) {
+ goto __3
+ }
+
+ if i == 0 && 0 == Xsqlite3_stricmp(tls, ts+6844, zName) {
+ goto __3
+ }
+
+ }
+ goto __2
+ __2:
+ i--
+ pDb -= 32
+ goto __1
+ goto __3
+ __3:
+ }
+ return i
+}
+
+// The token *pName contains the name of a database (either "main" or
+// "temp" or the name of an attached db). This routine returns the
+// index of the named database in db->aDb[], or -1 if the named db
+// does not exist.
+func Xsqlite3FindDb(tls *libc.TLS, db uintptr, pName uintptr) int32 {
+ var i int32
+ var zName uintptr
+ zName = Xsqlite3NameFromToken(tls, db, pName)
+ i = Xsqlite3FindDbName(tls, db, zName)
+ Xsqlite3DbFree(tls, db, zName)
+ return i
+}
+
+// The table or view or trigger name is passed to this routine via tokens
+// pName1 and pName2. If the table name was fully qualified, for example:
+//
+// CREATE TABLE xxx.yyy (...);
+//
+// Then pName1 is set to "xxx" and pName2 "yyy". On the other hand if
+// the table name is not fully qualified, i.e.:
+//
+// CREATE TABLE yyy(...);
+//
+// Then pName1 is set to "yyy" and pName2 is "".
+//
+// This routine sets the *ppUnqual pointer to point at the token (pName1 or
+// pName2) that stores the unqualified table name. The index of the
+// database "xxx" is returned.
+func Xsqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, pUnqual uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iDb int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Token)(unsafe.Pointer(pName2)).Fn > uint32(0) {
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12553, 0)
+ return -1
+ }
+ *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2
+ iDb = Xsqlite3FindDb(tls, db, pName1)
+ if iDb < 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12570, libc.VaList(bp, pName1))
+ return -1
+ }
+ } else {
+ iDb = int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb)
+ *(*uintptr)(unsafe.Pointer(pUnqual)) = pName1
+ }
+ return iDb
+}
+
+// True if PRAGMA writable_schema is ON
+func Xsqlite3WritableSchema(tls *libc.TLS, db uintptr) int32 {
+ return libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema|SQLITE_Defensive) == uint64(SQLITE_WriteSchema))
+}
+
+// This routine is used to check if the UTF-8 string zName is a legal
+// unqualified name for a new schema object (table, index, view or
+// trigger). All names are legal except those that begin with the string
+// "sqlite_" (in upper, lower or mixed case). This portion of the namespace
+// is reserved for internal use.
+//
+// When parsing the sqlite_schema table, this routine also checks to
+// make sure the "type", "name", and "tbl_name" columns are consistent
+// with the SQL.
+func Xsqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType uintptr, zTblName uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if Xsqlite3WritableSchema(tls, db) != 0 ||
+ uint32(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x2>>1)) != 0 ||
+ !(int32(Xsqlite3Config.FbExtraSchemaChecks) != 0) {
+ return SQLITE_OK
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit))) != 0 ||
+ Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit + 1*8))) != 0 ||
+ Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit + 2*8))) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+1547, 0)
+ return SQLITE_ERROR
+ }
+ } else {
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, ts+6784, 7) ||
+ Xsqlite3ReadOnlyShadowTables(tls, db) != 0 && Xsqlite3ShadowTableName(tls, db, zName) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12590,
+ libc.VaList(bp, zName))
+ return SQLITE_ERROR
+ }
+
+ }
+ return SQLITE_OK
+}
+
+// Return the PRIMARY KEY index of a table
+func Xsqlite3PrimaryKeyIndex(tls *libc.TLS, pTab uintptr) uintptr {
+ var p uintptr
+ for p = (*Table)(unsafe.Pointer(pTab)).FpIndex; p != 0 && !(int32(*(*uint16)(unsafe.Pointer(p + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY); p = (*Index)(unsafe.Pointer(p)).FpNext {
+ }
+ return p
+}
+
+// Convert an table column number into a index column number. That is,
+// for the column iCol in the table (as defined by the CREATE TABLE statement)
+// find the (first) offset of that column in index pIdx. Or return -1
+// if column iCol is not used in index pIdx.
+func Xsqlite3TableColumnToIndex(tls *libc.TLS, pIdx uintptr, iCol I16) I16 {
+ var i int32
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ if int32(iCol) == int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) {
+ return I16(i)
+ }
+ }
+ return int16(-1)
+}
+
+// Convert a storage column number into a table column number.
+//
+// The storage column number (0,1,2,....) is the index of the value
+// as it appears in the record on disk. The true column number
+// is the index (0,1,2,...) of the column in the CREATE TABLE statement.
+//
+// The storage column number is less than the table column number if
+// and only there are VIRTUAL columns to the left.
+//
+// If SQLITE_OMIT_GENERATED_COLUMNS, this routine is a no-op macro.
+func Xsqlite3StorageColumnToTable(tls *libc.TLS, pTab uintptr, iCol I16) I16 {
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasVirtual) != 0 {
+ var i int32
+ for i = 0; i <= int32(iCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0 {
+ iCol++
+ }
+ }
+ }
+ return iCol
+}
+
+// Convert a table column number into a storage column number.
+//
+// The storage column number (0,1,2,....) is the index of the value
+// as it appears in the record on disk. Or, if the input column is
+// the N-th virtual column (zero-based) then the storage number is
+// the number of non-virtual columns in the table plus N.
+//
+// The true column number is the index (0,1,2,...) of the column in
+// the CREATE TABLE statement.
+//
+// If the input column is a VIRTUAL column, then it should not appear
+// in storage. But the value sometimes is cached in registers that
+// follow the range of registers used to construct storage. This
+// avoids computing the same VIRTUAL column multiple times, and provides
+// values for use by OP_Param opcodes in triggers. Hence, if the
+// input column is a VIRTUAL table, put it after all the other columns.
+//
+// In the following, N means "normal column", S means STORED, and
+// V means VIRTUAL. Suppose the CREATE TABLE has columns like this:
+//
+// CREATE TABLE ex(N,S,V,N,S,V,N,S,V);
+// -- 0 1 2 3 4 5 6 7 8
+//
+// Then the mapping from this function is as follows:
+//
+// INPUTS: 0 1 2 3 4 5 6 7 8
+// OUTPUTS: 0 1 6 2 3 7 4 5 8
+//
+// So, in other words, this routine shifts all the virtual columns to
+// the end.
+//
+// If SQLITE_OMIT_GENERATED_COLUMNS then there are no virtual columns and
+// this routine is a no-op macro. If the pTab does not have any virtual
+// columns, then this routine is no-op that always return iCol. If iCol
+// is negative (indicating the ROWID column) then this routine return iCol.
+func Xsqlite3TableColumnToStorage(tls *libc.TLS, pTab uintptr, iCol I16) I16 {
+ var i int32
+ var n I16
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasVirtual) == U32(0) || int32(iCol) < 0 {
+ return iCol
+ }
+ i = 0
+ n = int16(0)
+ for ; i < int32(iCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0 {
+ n++
+ }
+ }
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0 {
+ return I16(int32((*Table)(unsafe.Pointer(pTab)).FnNVCol) + i - int32(n))
+ } else {
+ return n
+ }
+ return I16(0)
+}
+
+func sqlite3ForceNotReadOnly(tls *libc.TLS, pParse uintptr) {
+ var iReg int32 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ if v != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_JournalMode, 0, iReg, -1)
+ Xsqlite3VdbeUsesBtree(tls, v, 0)
+ }
+}
+
+// Begin constructing a new table representation in memory. This is
+// the first of several action routines that get called in response
+// to a CREATE TABLE statement. In particular, this routine is called
+// after seeing tokens "CREATE" and "TABLE" and the table name. The isTemp
+// flag is true if the table should be stored in the auxiliary database
+// file instead of in the main database file. This is normally the case
+// when the "TEMP" or "TEMPORARY" keyword occurs in between
+// CREATE and TABLE.
+//
+// The new table record is initialized and put in pParse->pNewTable.
+// As more of the CREATE TABLE statement is parsed, additional action
+// routines will be called to add more information to this record.
+// At the end of the CREATE TABLE statement, the sqlite3EndTable() routine
+// is called to complete the construction of the new table record.
+func Xsqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, isTemp int32, isView int32, isVirtual int32, noErr int32) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pTable uintptr
+ var zName uintptr
+ var db uintptr
+ var v uintptr
+ var iDb int32
+
+ var zDb uintptr
+ var zDb1 uintptr
+ var addr1 int32
+ var fileFormat int32
+ var reg1 int32
+ var reg2 int32
+ var reg3 int32
+ zName = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 && (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum == Pgno(1)) {
+ goto __1
+ }
+
+ iDb = int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb)
+ zName = Xsqlite3DbStrDup(tls, db, func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }())
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = pName1
+ goto __2
+__1:
+ iDb = Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp+24)
+ if !(iDb < 0) {
+ goto __3
+ }
+ return
+__3:
+ ;
+ if !(!(0 != 0) && isTemp != 0 && (*Token)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != 1) {
+ goto __4
+ }
+
+ Xsqlite3ErrorMsg(tls, pParse, ts+12632, 0)
+ return
+__4:
+ ;
+ if !(!(0 != 0) && isTemp != 0) {
+ goto __5
+ }
+ iDb = 1
+__5:
+ ;
+ zName = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __6
+ }
+ Xsqlite3RenameTokenMap(tls, pParse, zName, *(*uintptr)(unsafe.Pointer(bp + 24)))
+__6:
+ ;
+__2:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FsNameToken = *(*Token)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))
+ if !(zName == uintptr(0)) {
+ goto __7
+ }
+ return
+__7:
+ ;
+ if !(Xsqlite3CheckObjectName(tls, pParse, zName, func() uintptr {
+ if isView != 0 {
+ return ts + 10894
+ }
+ return ts + 9279
+ }(), zName) != 0) {
+ goto __8
+ }
+ goto begin_table_error
+__8:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb) == 1) {
+ goto __9
+ }
+ isTemp = 1
+__9:
+ ;
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_INSERT, func() uintptr {
+ if !(0 != 0) && isTemp == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }(), uintptr(0), zDb) != 0) {
+ goto __10
+ }
+ goto begin_table_error
+__10:
+ ;
+ if !(!(isVirtual != 0) && Xsqlite3AuthCheck(tls, pParse, int32(aCode[isTemp+2*isView]),
+ zName, uintptr(0), zDb) != 0) {
+ goto __11
+ }
+ goto begin_table_error
+__11:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL) {
+ goto __12
+ }
+ zDb1 = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ if !(SQLITE_OK != Xsqlite3ReadSchema(tls, pParse)) {
+ goto __13
+ }
+ goto begin_table_error
+__13:
+ ;
+ pTable = Xsqlite3FindTable(tls, db, zName, zDb1)
+ if !(pTable != 0) {
+ goto __14
+ }
+ if !!(noErr != 0) {
+ goto __15
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+12673,
+ libc.VaList(bp, func() uintptr {
+ if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_VIEW {
+ return ts + 10894
+ }
+ return ts + 9279
+ }(), *(*uintptr)(unsafe.Pointer(bp + 24))))
+ goto __16
+__15:
+ ;
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ sqlite3ForceNotReadOnly(tls, pParse)
+__16:
+ ;
+ goto begin_table_error
+__14:
+ ;
+ if !(Xsqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0)) {
+ goto __17
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+12694, libc.VaList(bp+16, zName))
+ goto begin_table_error
+__17:
+ ;
+__12:
+ ;
+ pTable = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if !(pTable == uintptr(0)) {
+ goto __18
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ goto begin_table_error
+__18:
+ ;
+ (*Table)(unsafe.Pointer(pTable)).FzName = zName
+ (*Table)(unsafe.Pointer(pTable)).FiPKey = int16(-1)
+ (*Table)(unsafe.Pointer(pTable)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ (*Table)(unsafe.Pointer(pTable)).FnTabRef = U32(1)
+ (*Table)(unsafe.Pointer(pTable)).FnRowLogEst = int16(200)
+
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTable = pTable
+
+ if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) && libc.AssignUintptr(&v, Xsqlite3GetVdbe(tls, pParse)) != uintptr(0)) {
+ goto __19
+ }
+ Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
+
+ if !(isVirtual != 0) {
+ goto __20
+ }
+ Xsqlite3VdbeAddOp0(tls, v, OP_VBegin)
+__20:
+ ;
+ reg1 = libc.AssignPtrInt32(pParse+128, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ reg2 = libc.AssignPtrInt32(pParse+132, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ reg3 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_ReadCookie, iDb, reg3, BTREE_FILE_FORMAT)
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+ addr1 = Xsqlite3VdbeAddOp1(tls, v, OP_If, reg3)
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_LegacyFileFmt) != uint64(0) {
+ fileFormat = 1
+ } else {
+ fileFormat = SQLITE_MAX_FILE_FORMAT
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, fileFormat)
+ Xsqlite3VdbeAddOp3(tls, v, OP_SetCookie, iDb, BTREE_TEXT_ENCODING, int32((*Sqlite3)(unsafe.Pointer(db)).Fenc))
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+
+ if !(isView != 0 || isVirtual != 0) {
+ goto __21
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, reg2)
+ goto __22
+__21:
+ ;
+ *(*int32)(unsafe.Pointer(pParse + 200)) = Xsqlite3VdbeAddOp3(tls, v, OP_CreateBtree, iDb, reg2, BTREE_INTKEY)
+__22:
+ ;
+ Xsqlite3OpenSchemaTable(tls, pParse, iDb)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, 0, reg1)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Blob, 6, reg3, 0, uintptr(unsafe.Pointer(&nullRow)), -1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, 0, reg3, reg1)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+ Xsqlite3VdbeAddOp0(tls, v, OP_Close)
+__19:
+ ;
+ return
+
+begin_table_error:
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ Xsqlite3DbFree(tls, db, zName)
+ return
+}
+
+var aCode = [4]U8{
+ U8(SQLITE_CREATE_TABLE),
+ U8(SQLITE_CREATE_TEMP_TABLE),
+ U8(SQLITE_CREATE_VIEW),
+ U8(SQLITE_CREATE_TEMP_VIEW),
+}
+var nullRow = [6]int8{int8(6), int8(0), int8(0), int8(0), int8(0), int8(0)}
+
+func sqlite3DeleteReturning(tls *libc.TLS, db uintptr, pRet uintptr) {
+ var pHash uintptr
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema + 56
+ Xsqlite3HashInsert(tls, pHash, ts+12729, uintptr(0))
+ Xsqlite3ExprListDelete(tls, db, (*Returning)(unsafe.Pointer(pRet)).FpReturnEL)
+ Xsqlite3DbFree(tls, db, pRet)
+}
+
+// Add the RETURNING clause to the parse currently underway.
+//
+// This routine creates a special TEMP trigger that will fire for each row
+// of the DML statement. That TEMP trigger contains a single SELECT
+// statement with a result set that is the argument of the RETURNING clause.
+// The trigger has the Trigger.bReturning flag and an opcode of
+// TK_RETURNING instead of TK_SELECT, so that the trigger code generator
+// knows to handle it specially. The TEMP trigger is automatically
+// removed at the end of the parse.
+//
+// When this routine is called, we do not yet know if the RETURNING clause
+// is attached to a DELETE, INSERT, or UPDATE, so construct it as a
+// RETURNING trigger instead. It will then be converted into the appropriate
+// type on the first call to sqlite3TriggersExist().
+func Xsqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) {
+ var pRet uintptr
+ var pHash uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12746, 0)
+ } else {
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FbReturning = U8(1)
+ pRet = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Returning{})))
+ if pRet == uintptr(0) {
+ Xsqlite3ExprListDelete(tls, db, pList)
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(pParse + 200)) = pRet
+ (*Returning)(unsafe.Pointer(pRet)).FpParse = pParse
+ (*Returning)(unsafe.Pointer(pRet)).FpReturnEL = pList
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{sqlite3DeleteReturning})), pRet)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.FzName = ts + 12729
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.Fop = U8(TK_RETURNING)
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = U8(TRIGGER_AFTER)
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.FbReturning = U8(1)
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FpSchema
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.FpTabSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FpSchema
+ (*Returning)(unsafe.Pointer(pRet)).FretTrig.Fstep_list = pRet + 88
+ (*Returning)(unsafe.Pointer(pRet)).FretTStep.Fop = U8(TK_RETURNING)
+ (*Returning)(unsafe.Pointer(pRet)).FretTStep.FpTrig = pRet + 16
+ (*Returning)(unsafe.Pointer(pRet)).FretTStep.FpExprList = pList
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema + 56
+
+ if Xsqlite3HashInsert(tls, pHash, ts+12729, pRet+16) ==
+ pRet+16 {
+ Xsqlite3OomFault(tls, db)
+ }
+}
+
+// Add a new column to the table currently being constructed.
+//
+// The parser calls this routine once for each column declaration
+// in a CREATE TABLE statement. sqlite3StartTable() gets called
+// first to get things going. Then this routine is called for each
+// column.
+func Xsqlite3AddColumn(tls *libc.TLS, pParse uintptr, sName Token, sType Token) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+ *(*Token)(unsafe.Pointer(bp + 16)) = sName
+ *(*Token)(unsafe.Pointer(bp + 32)) = sType
+
+ var p uintptr
+ var i int32
+ var z uintptr
+ var zType uintptr
+ var pCol uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var hName U8
+ var aNew uintptr
+ var eType U8 = U8(COLTYPE_CUSTOM)
+ var szEst U8 = U8(1)
+ var affinity int8 = int8(SQLITE_AFF_BLOB)
+
+ if libc.AssignUintptr(&p, (*Parse)(unsafe.Pointer(pParse)).FpNewTable) == uintptr(0) {
+ return
+ }
+ if int32((*Table)(unsafe.Pointer(p)).FnCol)+1 > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12780, libc.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName))
+ return
+ }
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ Xsqlite3DequoteToken(tls, bp+16)
+ }
+
+ if (*Token)(unsafe.Pointer(bp+32)).Fn >= uint32(16) &&
+ Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(bp+32)).Fz+uintptr((*Token)(unsafe.Pointer(bp+32)).Fn-uint32(6)), ts+12803, 6) == 0 {
+ *(*uint32)(unsafe.Pointer(bp + 32 + 8)) -= uint32(6)
+ for (*Token)(unsafe.Pointer(bp+32)).Fn > uint32(0) && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(bp+32)).Fz + uintptr((*Token)(unsafe.Pointer(bp+32)).Fn-uint32(1)))))])&0x01 != 0 {
+ (*Token)(unsafe.Pointer(bp+32)).Fn--
+ }
+ if (*Token)(unsafe.Pointer(bp+32)).Fn >= uint32(9) &&
+ Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(bp+32)).Fz+uintptr((*Token)(unsafe.Pointer(bp+32)).Fn-uint32(9)), ts+12810, 9) == 0 {
+ *(*uint32)(unsafe.Pointer(bp + 32 + 8)) -= uint32(9)
+ for (*Token)(unsafe.Pointer(bp+32)).Fn > uint32(0) && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(bp+32)).Fz + uintptr((*Token)(unsafe.Pointer(bp+32)).Fn-uint32(1)))))])&0x01 != 0 {
+ (*Token)(unsafe.Pointer(bp+32)).Fn--
+ }
+ }
+ }
+
+ if (*Token)(unsafe.Pointer(bp+32)).Fn >= uint32(3) {
+ Xsqlite3DequoteToken(tls, bp+32)
+ for i = 0; i < SQLITE_N_STDTYPE; i++ {
+ if (*Token)(unsafe.Pointer(bp+32)).Fn == uint32(Xsqlite3StdTypeLen[i]) &&
+ Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(bp+32)).Fz, Xsqlite3StdType[i], int32((*Token)(unsafe.Pointer(bp+32)).Fn)) == 0 {
+ (*Token)(unsafe.Pointer(bp + 32)).Fn = uint32(0)
+ eType = U8(i + 1)
+ affinity = Xsqlite3StdTypeAffinity[i]
+ if int32(affinity) <= SQLITE_AFF_TEXT {
+ szEst = U8(5)
+ }
+ break
+ }
+ }
+ }
+
+ z = Xsqlite3DbMallocRaw(tls, db, uint64(I64((*Token)(unsafe.Pointer(bp+16)).Fn)+int64(1)+I64((*Token)(unsafe.Pointer(bp+32)).Fn)+I64(libc.Bool32((*Token)(unsafe.Pointer(bp+32)).Fn > uint32(0)))))
+ if z == uintptr(0) {
+ return
+ }
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenMap(tls, pParse, z, bp+16)
+ }
+ libc.X__builtin___memcpy_chk(tls, z, (*Token)(unsafe.Pointer(bp+16)).Fz, uint64((*Token)(unsafe.Pointer(bp+16)).Fn), libc.X__builtin_object_size(tls, z, 0))
+ *(*int8)(unsafe.Pointer(z + uintptr((*Token)(unsafe.Pointer(bp+16)).Fn))) = int8(0)
+ Xsqlite3Dequote(tls, z)
+ hName = Xsqlite3StrIHash(tls, z)
+ for i = 0; i < int32((*Table)(unsafe.Pointer(p)).FnCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(i)*24)).FhName) == int32(hName) && Xsqlite3StrICmp(tls, z, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(i)*24)).FzCnName) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12820, libc.VaList(bp+8, z))
+ Xsqlite3DbFree(tls, db, z)
+ return
+ }
+ }
+ aNew = Xsqlite3DbRealloc(tls, db, (*Table)(unsafe.Pointer(p)).FaCol, uint64(I64((*Table)(unsafe.Pointer(p)).FnCol)+int64(1))*uint64(unsafe.Sizeof(Column{})))
+ if aNew == uintptr(0) {
+ Xsqlite3DbFree(tls, db, z)
+ return
+ }
+ (*Table)(unsafe.Pointer(p)).FaCol = aNew
+ pCol = (*Table)(unsafe.Pointer(p)).FaCol + uintptr((*Table)(unsafe.Pointer(p)).FnCol)*24
+ libc.X__builtin___memset_chk(tls, pCol, 0, uint64(unsafe.Sizeof(Column{})), libc.X__builtin_object_size(tls, pCol, 0))
+ (*Column)(unsafe.Pointer(pCol)).FzCnName = z
+ (*Column)(unsafe.Pointer(pCol)).FhName = hName
+
+ if (*Token)(unsafe.Pointer(bp+32)).Fn == uint32(0) {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = affinity
+ libc.SetBitFieldPtr8Uint32(pCol+8, uint32(eType), 4, 0xf0)
+ (*Column)(unsafe.Pointer(pCol)).FszEst = szEst
+ } else {
+ zType = z + uintptr(Xsqlite3Strlen30(tls, z)) + uintptr(1)
+ libc.X__builtin___memcpy_chk(tls, zType, (*Token)(unsafe.Pointer(bp+32)).Fz, uint64((*Token)(unsafe.Pointer(bp+32)).Fn), libc.X__builtin_object_size(tls, zType, 0))
+ *(*int8)(unsafe.Pointer(zType + uintptr((*Token)(unsafe.Pointer(bp+32)).Fn))) = int8(0)
+ Xsqlite3Dequote(tls, zType)
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = Xsqlite3AffinityType(tls, zType, pCol)
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_HASTYPE)
+ }
+ (*Table)(unsafe.Pointer(p)).FnCol++
+ (*Table)(unsafe.Pointer(p)).FnNVCol++
+ (*Parse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0)
+}
+
+// This routine is called by the parser while in the middle of
+// parsing a CREATE TABLE statement. A "NOT NULL" constraint has
+// been seen on a column. This routine sets the notNull flag on
+// the column currently under construction.
+func Xsqlite3AddNotNull(tls *libc.TLS, pParse uintptr, onError int32) {
+ var p uintptr
+ var pCol uintptr
+ p = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if p == uintptr(0) || int32((*Table)(unsafe.Pointer(p)).FnCol) < 1 {
+ return
+ }
+ pCol = (*Table)(unsafe.Pointer(p)).FaCol + uintptr(int32((*Table)(unsafe.Pointer(p)).FnCol)-1)*24
+ libc.SetBitFieldPtr8Uint32(pCol+8, uint32(U8(onError)), 0, 0xf)
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_HasNotNull)
+
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_UNIQUE != 0 {
+ var pIdx uintptr
+ for pIdx = (*Table)(unsafe.Pointer(p)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn))) == int32((*Table)(unsafe.Pointer(p)).FnCol)-1 {
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(1), 3, 0x8)
+ }
+ }
+ }
+}
+
+// Scan the column type name zType (length nType) and return the
+// associated affinity type.
+//
+// This routine does a case-independent search of zType for the
+// substrings in the following table. If one of the substrings is
+// found, the corresponding affinity is returned. If zType contains
+// more than one of the substrings, entries toward the top of
+// the table take priority. For example, if zType is 'BLOBINT',
+// SQLITE_AFF_INTEGER is returned.
+//
+// Substring | Affinity
+// --------------------------------
+// 'INT' | SQLITE_AFF_INTEGER
+// 'CHAR' | SQLITE_AFF_TEXT
+// 'CLOB' | SQLITE_AFF_TEXT
+// 'TEXT' | SQLITE_AFF_TEXT
+// 'BLOB' | SQLITE_AFF_BLOB
+// 'REAL' | SQLITE_AFF_REAL
+// 'FLOA' | SQLITE_AFF_REAL
+// 'DOUB' | SQLITE_AFF_REAL
+//
+// If none of the substrings in the above table are found,
+// SQLITE_AFF_NUMERIC is returned.
+func Xsqlite3AffinityType(tls *libc.TLS, zIn uintptr, pCol uintptr) int8 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var h U32 = U32(0)
+ var aff int8 = int8(SQLITE_AFF_NUMERIC)
+ var zChar uintptr = uintptr(0)
+
+ for *(*int8)(unsafe.Pointer(zIn)) != 0 {
+ h = h<<8 + U32(Xsqlite3UpperToLower[int32(*(*int8)(unsafe.Pointer(zIn)))&0xff])
+ zIn++
+ if h == U32(int32('c')<<24+int32('h')<<16+int32('a')<<8+'r') {
+ aff = int8(SQLITE_AFF_TEXT)
+ zChar = zIn
+ } else if h == U32(int32('c')<<24+int32('l')<<16+int32('o')<<8+'b') {
+ aff = int8(SQLITE_AFF_TEXT)
+ } else if h == U32(int32('t')<<24+int32('e')<<16+int32('x')<<8+'t') {
+ aff = int8(SQLITE_AFF_TEXT)
+ } else if h == U32(int32('b')<<24+int32('l')<<16+int32('o')<<8+'b') &&
+ (int32(aff) == SQLITE_AFF_NUMERIC || int32(aff) == SQLITE_AFF_REAL) {
+ aff = int8(SQLITE_AFF_BLOB)
+ if int32(*(*int8)(unsafe.Pointer(zIn))) == '(' {
+ zChar = zIn
+ }
+ } else if h == U32(int32('r')<<24+int32('e')<<16+int32('a')<<8+'l') &&
+ int32(aff) == SQLITE_AFF_NUMERIC {
+ aff = int8(SQLITE_AFF_REAL)
+ } else if h == U32(int32('f')<<24+int32('l')<<16+int32('o')<<8+'a') &&
+ int32(aff) == SQLITE_AFF_NUMERIC {
+ aff = int8(SQLITE_AFF_REAL)
+ } else if h == U32(int32('d')<<24+int32('o')<<16+int32('u')<<8+'b') &&
+ int32(aff) == SQLITE_AFF_NUMERIC {
+ aff = int8(SQLITE_AFF_REAL)
+ } else if h&U32(0x00FFFFFF) == U32(int32('i')<<16+int32('n')<<8+'t') {
+ aff = int8(SQLITE_AFF_INTEGER)
+ break
+ }
+ }
+
+ if pCol != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ if int32(aff) < SQLITE_AFF_NUMERIC {
+ if zChar != 0 {
+ for *(*int8)(unsafe.Pointer(zChar)) != 0 {
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zChar)))])&0x04 != 0 {
+ Xsqlite3GetInt32(tls, zChar, bp)
+ break
+ }
+ zChar++
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 16
+ }
+ }
+ *(*int32)(unsafe.Pointer(bp)) = *(*int32)(unsafe.Pointer(bp))/4 + 1
+ if *(*int32)(unsafe.Pointer(bp)) > 255 {
+ *(*int32)(unsafe.Pointer(bp)) = 255
+ }
+ (*Column)(unsafe.Pointer(pCol)).FszEst = U8(*(*int32)(unsafe.Pointer(bp)))
+ }
+ return aff
+}
+
+// The expression is the default value for the most recently added column
+// of the table currently under construction.
+//
+// Default value expressions must be constant. Raise an exception if this
+// is not the case.
+//
+// This routine is called by the parser while in the middle of
+// parsing a CREATE TABLE statement.
+func Xsqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStart uintptr, zEnd uintptr) {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var p uintptr
+ var pCol uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ p = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if p != uintptr(0) {
+ var isInit int32 = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 && int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb) != 1)
+ pCol = (*Table)(unsafe.Pointer(p)).FaCol + uintptr(int32((*Table)(unsafe.Pointer(p)).FnCol)-1)*24
+ if !(Xsqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12846,
+ libc.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzCnName))
+ } else if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12891, 0)
+ } else {
+ var pDfltExpr uintptr
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ (*Expr)(unsafe.Pointer(bp + 8)).Fop = U8(TK_SPAN)
+ *(*uintptr)(unsafe.Pointer(bp + 8 + 8)) = Xsqlite3DbSpanDup(tls, db, zStart, zEnd)
+ (*Expr)(unsafe.Pointer(bp + 8)).FpLeft = pExpr
+ (*Expr)(unsafe.Pointer(bp + 8)).Fflags = U32(EP_Skip)
+ pDfltExpr = Xsqlite3ExprDup(tls, db, bp+8, EXPRDUP_REDUCE)
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8 + 8)))
+ Xsqlite3ColumnSetExpr(tls, pParse, p, pCol, pDfltExpr)
+ }
+ }
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameExprUnmap(tls, pParse, pExpr)
+ }
+ Xsqlite3ExprDelete(tls, db, pExpr)
+}
+
+func sqlite3StringToId(tls *libc.TLS, p uintptr) {
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_STRING {
+ (*Expr)(unsafe.Pointer(p)).Fop = U8(TK_ID)
+ } else if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLLATE && int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpLeft)).Fop) == TK_STRING {
+ (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(p)).FpLeft)).Fop = U8(TK_ID)
+ }
+}
+
+func makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) {
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_PRIMKEY)
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+12932, 0)
+ }
+}
+
+// Designate the PRIMARY KEY for the table. pList is a list of names
+// of columns that form the primary key. If pList is NULL, then the
+// most recently added column of the table is the primary key.
+//
+// A table can have at most one primary key. If the table already has
+// a primary key (and this is the second primary key) then create an
+// error.
+//
+// If the PRIMARY KEY is on a single column whose datatype is INTEGER,
+// then we will try to use that column as the rowid. Set the Table.iPKey
+// field of the table under construction to be the index of the
+// INTEGER PRIMARY KEY column. Table.iPKey is set to -1 if there is
+// no INTEGER PRIMARY KEY.
+//
+// If the key is not an INTEGER PRIMARY KEY, then create a unique
+// index for the key. No index is created for INTEGER PRIMARY KEYs.
+func Xsqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError int32, autoInc int32, sortOrder int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pTab uintptr
+ var pCol uintptr
+ var iCol int32
+ var i int32
+ var nTerm int32
+ var zCName uintptr
+ var pCExpr uintptr
+ var pCExpr1 uintptr
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ pCol = uintptr(0)
+ iCol = -1
+ if !(pTab == uintptr(0)) {
+ goto __1
+ }
+ goto primary_key_exit
+__1:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasPrimaryKey) != 0) {
+ goto __2
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+12984, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto primary_key_exit
+__2:
+ ;
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_HasPrimaryKey)
+ if !(pList == uintptr(0)) {
+ goto __3
+ }
+ iCol = int32((*Table)(unsafe.Pointer(pTab)).FnCol) - 1
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24
+ makeColumnPartOfPrimaryKey(tls, pParse, pCol)
+ nTerm = 1
+ goto __4
+__3:
+ nTerm = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ i = 0
+__5:
+ if !(i < nTerm) {
+ goto __7
+ }
+ pCExpr = Xsqlite3ExprSkipCollate(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr)
+
+ sqlite3StringToId(tls, pCExpr)
+ if !(int32((*Expr)(unsafe.Pointer(pCExpr)).Fop) == TK_ID) {
+ goto __8
+ }
+
+ zCName = *(*uintptr)(unsafe.Pointer(pCExpr + 8))
+ iCol = 0
+__9:
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __11
+ }
+ if !(Xsqlite3StrICmp(tls, zCName, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FzCnName) == 0) {
+ goto __12
+ }
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24
+ makeColumnPartOfPrimaryKey(tls, pParse, pCol)
+ goto __11
+__12:
+ ;
+ goto __10
+__10:
+ iCol++
+ goto __9
+ goto __11
+__11:
+ ;
+__8:
+ ;
+ goto __6
+__6:
+ i++
+ goto __5
+ goto __7
+__7:
+ ;
+__4:
+ ;
+ if !(nTerm == 1 &&
+ pCol != 0 &&
+ int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4) == COLTYPE_INTEGER &&
+ sortOrder != SQLITE_SO_DESC) {
+ goto __13
+ }
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && pList != 0) {
+ goto __15
+ }
+ pCExpr1 = Xsqlite3ExprSkipCollate(tls, (*ExprList_item)(unsafe.Pointer(pList+8)).FpExpr)
+ Xsqlite3RenameTokenRemap(tls, pParse, pTab+52, pCExpr1)
+__15:
+ ;
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = I16(iCol)
+ (*Table)(unsafe.Pointer(pTab)).FkeyConf = U8(onError)
+
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(autoInc * TF_Autoincrement)
+ if !(pList != 0) {
+ goto __16
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FiPkSortOrder = (*ExprList_item)(unsafe.Pointer(pList + 8)).Ffg.FsortFlags
+__16:
+ ;
+ Xsqlite3HasExplicitNulls(tls, pParse, pList)
+ goto __14
+__13:
+ if !(autoInc != 0) {
+ goto __17
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+13025, 0)
+ goto __18
+__17:
+ Xsqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0),
+ uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY))
+ pList = uintptr(0)
+__18:
+ ;
+__14:
+ ;
+primary_key_exit:
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pList)
+ return
+}
+
+// Add a new CHECK constraint to the table currently under construction.
+func Xsqlite3AddCheckConstraint(tls *libc.TLS, pParse uintptr, pCheckExpr uintptr, zStart uintptr, zEnd uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if pTab != 0 && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) == PARSE_MODE_DECLARE_VTAB) &&
+ !(Xsqlite3BtreeIsReadonly(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb)*32)).FpBt) != 0) {
+ (*Table)(unsafe.Pointer(pTab)).FpCheck = Xsqlite3ExprListAppend(tls, pParse, (*Table)(unsafe.Pointer(pTab)).FpCheck, pCheckExpr)
+ if (*Parse)(unsafe.Pointer(pParse)).FconstraintName.Fn != 0 {
+ Xsqlite3ExprListSetName(tls, pParse, (*Table)(unsafe.Pointer(pTab)).FpCheck, pParse+104, 1)
+ } else {
+ for zStart++; int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zStart)))])&0x01 != 0; zStart++ {
+ }
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zEnd + libc.UintptrFromInt32(-1))))])&0x01 != 0 {
+ zEnd--
+ }
+ (*Token)(unsafe.Pointer(bp)).Fz = zStart
+ (*Token)(unsafe.Pointer(bp)).Fn = uint32(int32((int64(zEnd) - int64((*Token)(unsafe.Pointer(bp)).Fz)) / 1))
+ Xsqlite3ExprListSetName(tls, pParse, (*Table)(unsafe.Pointer(pTab)).FpCheck, bp, 1)
+ }
+ } else {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pCheckExpr)
+ }
+}
+
+// Set the collation function of the most recently parsed table column
+// to the CollSeq given.
+func Xsqlite3AddCollateType(tls *libc.TLS, pParse uintptr, pToken uintptr) {
+ var p uintptr
+ var i int32
+ var zColl uintptr
+ var db uintptr
+
+ if libc.AssignUintptr(&p, (*Parse)(unsafe.Pointer(pParse)).FpNewTable) == uintptr(0) || int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ return
+ }
+ i = int32((*Table)(unsafe.Pointer(p)).FnCol) - 1
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ zColl = Xsqlite3NameFromToken(tls, db, pToken)
+ if !(zColl != 0) {
+ return
+ }
+
+ if Xsqlite3LocateCollSeq(tls, pParse, zColl) != 0 {
+ var pIdx uintptr
+ Xsqlite3ColumnSetColl(tls, db, (*Table)(unsafe.Pointer(p)).FaCol+uintptr(i)*24, zColl)
+
+ for pIdx = (*Table)(unsafe.Pointer(p)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn))) == i {
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl)) = Xsqlite3ColumnColl(tls, (*Table)(unsafe.Pointer(p)).FaCol+uintptr(i)*24)
+ }
+ }
+ }
+ Xsqlite3DbFree(tls, db, zColl)
+}
+
+// Change the most recently parsed column to be a GENERATED ALWAYS AS
+// column.
+func Xsqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var eType U8
+ var pTab uintptr
+ var pCol uintptr
+ eType = U8(COLFLAG_VIRTUAL)
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if !(pTab == uintptr(0)) {
+ goto __1
+ }
+
+ goto generated_done
+__1:
+ ;
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*Table)(unsafe.Pointer(pTab)).FnCol)-1)*24
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) == PARSE_MODE_DECLARE_VTAB) {
+ goto __2
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+13081, 0)
+ goto generated_done
+__2:
+ ;
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FiDflt) > 0) {
+ goto __3
+ }
+ goto generated_error
+__3:
+ ;
+ if !(pType != 0) {
+ goto __4
+ }
+ if !((*Token)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, ts+13124, (*Token)(unsafe.Pointer(pType)).Fz, 7) == 0) {
+ goto __5
+ }
+
+ goto __6
+__5:
+ if !((*Token)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, ts+13132, (*Token)(unsafe.Pointer(pType)).Fz, 6) == 0) {
+ goto __7
+ }
+ eType = U8(COLFLAG_STORED)
+ goto __8
+__7:
+ goto generated_error
+__8:
+ ;
+__6:
+ ;
+__4:
+ ;
+ if !(int32(eType) == COLFLAG_VIRTUAL) {
+ goto __9
+ }
+ (*Table)(unsafe.Pointer(pTab)).FnNVCol--
+__9:
+ ;
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(int32(eType))
+
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(eType)
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY != 0) {
+ goto __10
+ }
+ makeColumnPartOfPrimaryKey(tls, pParse, pCol)
+__10:
+ ;
+ if !(pExpr != 0 && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_ID) {
+ goto __11
+ }
+
+ pExpr = Xsqlite3PExpr(tls, pParse, TK_UPLUS, pExpr, uintptr(0))
+__11:
+ ;
+ Xsqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr)
+ pExpr = uintptr(0)
+ goto generated_done
+
+generated_error:
+ Xsqlite3ErrorMsg(tls, pParse, ts+13139,
+ libc.VaList(bp, (*Column)(unsafe.Pointer(pCol)).FzCnName))
+generated_done:
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+}
+
+// Generate code that will increment the schema cookie.
+//
+// The schema cookie is used to determine when the schema for the
+// database changes. After each schema change, the cookie value
+// changes. When a process first reads the schema it records the
+// cookie. Thereafter, whenever it goes to access the database,
+// it checks the cookie to make sure the schema has not changed
+// since it was last read.
+//
+// This plan is not completely bullet-proof. It is possible for
+// the schema to change multiple times and for the cookie to be
+// set back to prior value. But schema changes are infrequent
+// and the probability of hitting the same cookie value is only
+// 1 chance in 2^32. So we're safe enough.
+//
+// IMPLEMENTATION-OF: R-34230-56049 SQLite automatically increments
+// the schema-version whenever the schema changes.
+func Xsqlite3ChangeCookie(tls *libc.TLS, pParse uintptr, iDb int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION,
+ int32(uint32(1)+uint32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema)).Fschema_cookie)))
+}
+
+func identLength(tls *libc.TLS, z uintptr) int32 {
+ var n int32
+ n = 0
+__1:
+ if !(*(*int8)(unsafe.Pointer(z)) != 0) {
+ goto __3
+ }
+ {
+ if int32(*(*int8)(unsafe.Pointer(z))) == '"' {
+ n++
+ }
+
+ }
+ goto __2
+__2:
+ n++
+ z++
+ goto __1
+ goto __3
+__3:
+ ;
+ return n + 2
+}
+
+func identPut(tls *libc.TLS, z uintptr, pIdx uintptr, zSignedIdent uintptr) {
+ var zIdent uintptr = zSignedIdent
+ var i int32
+ var j int32
+ var needQuote int32
+ i = *(*int32)(unsafe.Pointer(pIdx))
+
+ for j = 0; *(*uint8)(unsafe.Pointer(zIdent + uintptr(j))) != 0; j++ {
+ if !(int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zIdent + uintptr(j)))])&0x06 != 0) && int32(*(*uint8)(unsafe.Pointer(zIdent + uintptr(j)))) != '_' {
+ break
+ }
+ }
+ needQuote = libc.Bool32(int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zIdent))])&0x04 != 0 ||
+ Xsqlite3KeywordCode(tls, zIdent, j) != TK_ID ||
+ int32(*(*uint8)(unsafe.Pointer(zIdent + uintptr(j)))) != 0 ||
+ j == 0)
+
+ if needQuote != 0 {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&i, 1)))) = int8('"')
+ }
+ for j = 0; *(*uint8)(unsafe.Pointer(zIdent + uintptr(j))) != 0; j++ {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&i, 1)))) = int8(*(*uint8)(unsafe.Pointer(zIdent + uintptr(j))))
+ if int32(*(*uint8)(unsafe.Pointer(zIdent + uintptr(j)))) == '"' {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&i, 1)))) = int8('"')
+ }
+ }
+ if needQuote != 0 {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&i, 1)))) = int8('"')
+ }
+ *(*int8)(unsafe.Pointer(z + uintptr(i))) = int8(0)
+ *(*int32)(unsafe.Pointer(pIdx)) = i
+}
+
+func createTableStmt(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var i int32
+
+ var n int32
+ var zStmt uintptr
+ var zSep uintptr
+ var zSep2 uintptr
+ var zEnd uintptr
+ var pCol uintptr
+ n = 0
+ pCol = (*Table)(unsafe.Pointer(p)).FaCol
+ i = 0
+__1:
+ if !(i < int32((*Table)(unsafe.Pointer(p)).FnCol)) {
+ goto __3
+ }
+ {
+ n = n + (identLength(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName) + 5)
+
+ }
+ goto __2
+__2:
+ i++
+ pCol += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ n = n + identLength(tls, (*Table)(unsafe.Pointer(p)).FzName)
+ if n < 50 {
+ zSep = ts + 1547
+ zSep2 = ts + 13170
+ zEnd = ts + 5360
+ } else {
+ zSep = ts + 13172
+ zSep2 = ts + 13176
+ zEnd = ts + 13181
+ }
+ n = n + (35 + 6*int32((*Table)(unsafe.Pointer(p)).FnCol))
+ zStmt = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(n))
+ if zStmt == uintptr(0) {
+ Xsqlite3OomFault(tls, db)
+ return uintptr(0)
+ }
+ Xsqlite3_snprintf(tls, n, zStmt, ts+13184, 0)
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3Strlen30(tls, zStmt)
+ identPut(tls, zStmt, bp+8, (*Table)(unsafe.Pointer(p)).FzName)
+ *(*int8)(unsafe.Pointer(zStmt + uintptr(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(bp + 8)), 1)))) = int8('(')
+ pCol = (*Table)(unsafe.Pointer(p)).FaCol
+ i = 0
+__4:
+ if !(i < int32((*Table)(unsafe.Pointer(p)).FnCol)) {
+ goto __6
+ }
+ {
+ var len int32
+ var zType uintptr
+
+ Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp + 8)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp + 8))), zSep, 0)
+ *(*int32)(unsafe.Pointer(bp + 8)) += Xsqlite3Strlen30(tls, zStmt+uintptr(*(*int32)(unsafe.Pointer(bp + 8))))
+ zSep = zSep2
+ identPut(tls, zStmt, bp+8, (*Column)(unsafe.Pointer(pCol)).FzCnName)
+
+ zType = azType1[int32((*Column)(unsafe.Pointer(pCol)).Faffinity)-SQLITE_AFF_BLOB]
+ len = Xsqlite3Strlen30(tls, zType)
+
+ libc.X__builtin___memcpy_chk(tls, zStmt+uintptr(*(*int32)(unsafe.Pointer(bp + 8))), zType, uint64(len), libc.X__builtin_object_size(tls, zStmt+uintptr(*(*int32)(unsafe.Pointer(bp + 8))), 0))
+ *(*int32)(unsafe.Pointer(bp + 8)) += len
+
+ }
+ goto __5
+__5:
+ i++
+ pCol += 24
+ goto __4
+ goto __6
+__6:
+ ;
+ Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp + 8)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp + 8))), ts+3658, libc.VaList(bp, zEnd))
+ return zStmt
+}
+
+var azType1 = [6]uintptr{
+ ts + 1547,
+ ts + 13198,
+ ts + 13204,
+ ts + 13209,
+ ts + 13214,
+ ts + 13204,
+}
+
+func resizeIndexObject(tls *libc.TLS, db uintptr, pIdx uintptr, N int32) int32 {
+ var zExtra uintptr
+ var nByte int32
+ if int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) >= N {
+ return SQLITE_OK
+ }
+
+ nByte = int32((uint64(unsafe.Sizeof(uintptr(0))) + uint64(unsafe.Sizeof(LogEst(0))) + uint64(unsafe.Sizeof(I16(0))) + uint64(1)) * uint64(N))
+ zExtra = Xsqlite3DbMallocZero(tls, db, uint64(nByte))
+ if zExtra == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, zExtra, (*Index)(unsafe.Pointer(pIdx)).FazColl, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*Index)(unsafe.Pointer(pIdx)).FnColumn), libc.X__builtin_object_size(tls, zExtra, 0))
+ (*Index)(unsafe.Pointer(pIdx)).FazColl = zExtra
+ zExtra += uintptr(uint64(unsafe.Sizeof(uintptr(0))) * uint64(N))
+ libc.X__builtin___memcpy_chk(tls, zExtra, (*Index)(unsafe.Pointer(pIdx)).FaiRowLogEst, uint64(unsafe.Sizeof(LogEst(0)))*uint64(int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)+1), libc.X__builtin_object_size(tls, zExtra, 0))
+ (*Index)(unsafe.Pointer(pIdx)).FaiRowLogEst = zExtra
+ zExtra += uintptr(uint64(unsafe.Sizeof(LogEst(0))) * uint64(N))
+ libc.X__builtin___memcpy_chk(tls, zExtra, (*Index)(unsafe.Pointer(pIdx)).FaiColumn, uint64(unsafe.Sizeof(I16(0)))*uint64((*Index)(unsafe.Pointer(pIdx)).FnColumn), libc.X__builtin_object_size(tls, zExtra, 0))
+ (*Index)(unsafe.Pointer(pIdx)).FaiColumn = zExtra
+ zExtra += uintptr(uint64(unsafe.Sizeof(I16(0))) * uint64(N))
+ libc.X__builtin___memcpy_chk(tls, zExtra, (*Index)(unsafe.Pointer(pIdx)).FaSortOrder, uint64((*Index)(unsafe.Pointer(pIdx)).FnColumn), libc.X__builtin_object_size(tls, zExtra, 0))
+ (*Index)(unsafe.Pointer(pIdx)).FaSortOrder = zExtra
+ (*Index)(unsafe.Pointer(pIdx)).FnColumn = U16(N)
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(1), 4, 0x10)
+ return SQLITE_OK
+}
+
+func estimateTableWidth(tls *libc.TLS, pTab uintptr) {
+ var wTable uint32 = uint32(0)
+ var pTabCol uintptr
+ var i int32
+ i = int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ pTabCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+__1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ wTable = wTable + uint32((*Column)(unsafe.Pointer(pTabCol)).FszEst)
+
+ }
+ goto __2
+__2:
+ i--
+ pTabCol += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) < 0 {
+ wTable++
+ }
+ (*Table)(unsafe.Pointer(pTab)).FszTabRow = Xsqlite3LogEst(tls, uint64(wTable*uint32(4)))
+}
+
+func estimateIndexWidth(tls *libc.TLS, pIdx uintptr) {
+ var wIndex uint32 = uint32(0)
+ var i int32
+ var aCol uintptr = (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ var x I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))
+
+ wIndex = wIndex + func() uint32 {
+ if int32(x) < 0 {
+ return uint32(1)
+ }
+ return uint32((*Column)(unsafe.Pointer(aCol + uintptr(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))*24)).FszEst)
+ }()
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FszIdxRow = Xsqlite3LogEst(tls, uint64(wIndex*uint32(4)))
+}
+
+func hasColumn(tls *libc.TLS, aiCol uintptr, nCol int32, x int32) int32 {
+ for libc.PostDecInt32(&nCol, 1) > 0 {
+ if x == int32(*(*I16)(unsafe.Pointer(libc.PostIncUintptr(&aiCol, 2)))) {
+ return 1
+ }
+ }
+ return 0
+}
+
+func isDupColumn(tls *libc.TLS, pIdx uintptr, nKey int32, pPk uintptr, iCol int32) int32 {
+ var i int32
+ var j int32
+
+ j = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(iCol)*2)))
+
+ for i = 0; i < nKey; i++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) == j &&
+ Xsqlite3StrICmp(tls, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(iCol)*8))) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func recomputeColumnsNotIndexed(tls *libc.TLS, pIdx uintptr) {
+ var m Bitmask = uint64(0)
+ var j int32
+ var pTab uintptr = (*Index)(unsafe.Pointer(pIdx)).FpTable
+ for j = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) - 1; j >= 0; j-- {
+ var x int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))
+ if x >= 0 && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(x)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0 {
+ if x < int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1 {
+ m = m | uint64(1)<<x
+ }
+ }
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FcolNotIdxed = ^m
+
+}
+
+func convertToWithoutRowidTable(tls *libc.TLS, pParse uintptr, pTab uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pIdx uintptr
+ var pPk uintptr
+ var nPk int32
+ var nExtra int32
+ var i int32
+ var j int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if !(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x2>>1) != 0) {
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_PRIMKEY != 0 &&
+ int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24 + 8))&0xf>>0) == OE_None {
+ libc.SetBitFieldPtr8Uint32((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24+8, uint32(OE_Abort), 0, 0xf)
+ }
+ }
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_HasNotNull)
+ }
+
+ if *(*int32)(unsafe.Pointer(pParse + 200)) != 0 {
+ Xsqlite3VdbeChangeP3(tls, v, *(*int32)(unsafe.Pointer(pParse + 200)), BTREE_BLOBKEY)
+ }
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) >= 0 {
+ var pList uintptr
+
+ Xsqlite3TokenInit(tls, bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*24)).FzCnName)
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp, 0))
+ if pList == uintptr(0) {
+ *(*U32)(unsafe.Pointer(pTab + 48)) &= libc.Uint32FromInt32(libc.CplInt32(TF_WithoutRowid))
+ return
+ }
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenRemap(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8)).FpExpr, pTab+52)
+ }
+ (*ExprList_item)(unsafe.Pointer(pList + 8)).Ffg.FsortFlags = (*Parse)(unsafe.Pointer(pParse)).FiPkSortOrder
+
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = int16(-1)
+ Xsqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, int32((*Table)(unsafe.Pointer(pTab)).FkeyConf), uintptr(0), uintptr(0), 0, 0,
+ uint8(SQLITE_IDXTYPE_PRIMARYKEY))
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ *(*U32)(unsafe.Pointer(pTab + 48)) &= libc.Uint32FromInt32(libc.CplInt32(TF_WithoutRowid))
+ return
+ }
+
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ } else {
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ for i = libc.AssignInt32(&j, 1); i < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol); i++ {
+ if isDupColumn(tls, pPk, j, pPk, i) != 0 {
+ (*Index)(unsafe.Pointer(pPk)).FnColumn--
+ } else {
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(j)*8)) = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(i)*8))
+ *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaSortOrder + uintptr(j))) = *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaSortOrder + uintptr(i)))
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(libc.PostIncInt32(&j, 1))*2)) = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))
+ }
+ }
+ (*Index)(unsafe.Pointer(pPk)).FnKeyCol = U16(j)
+ }
+
+ libc.SetBitFieldPtr16Uint32(pPk+100, uint32(1), 5, 0x20)
+ if !(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x2>>1) != 0) {
+ libc.SetBitFieldPtr16Uint32(pPk+100, uint32(1), 3, 0x8)
+ }
+ nPk = int32(libc.AssignPtrUint16(pPk+96, (*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+
+ if v != 0 && (*Index)(unsafe.Pointer(pPk)).Ftnum > Pgno(0) {
+ Xsqlite3VdbeChangeOpcode(tls, v, int32((*Index)(unsafe.Pointer(pPk)).Ftnum), uint8(OP_Goto))
+ }
+
+ (*Index)(unsafe.Pointer(pPk)).Ftnum = (*Table)(unsafe.Pointer(pTab)).Ftnum
+
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var n int32
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ continue
+ }
+ for i = libc.AssignInt32(&n, 0); i < nPk; i++ {
+ if !(isDupColumn(tls, pIdx, int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol), pPk, i) != 0) {
+ n++
+ }
+ }
+ if n == 0 {
+ (*Index)(unsafe.Pointer(pIdx)).FnColumn = (*Index)(unsafe.Pointer(pIdx)).FnKeyCol
+ continue
+ }
+ if resizeIndexObject(tls, db, pIdx, int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)+n) != 0 {
+ return
+ }
+ i = 0
+ j = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ for ; i < nPk; i++ {
+ if !(isDupColumn(tls, pIdx, int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol), pPk, i) != 0) {
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)) = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(j)*8)) = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(i)*8))
+ if *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaSortOrder + uintptr(i))) != 0 {
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(1), 9, 0x200)
+ }
+ j++
+ }
+ }
+
+ }
+
+ nExtra = 0
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if !(hasColumn(tls, (*Index)(unsafe.Pointer(pPk)).FaiColumn, nPk, i) != 0) &&
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0 {
+ nExtra++
+ }
+ }
+ if resizeIndexObject(tls, db, pPk, nPk+nExtra) != 0 {
+ return
+ }
+ i = 0
+ j = nPk
+ for ; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if !(hasColumn(tls, (*Index)(unsafe.Pointer(pPk)).FaiColumn, j, i) != 0) &&
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0 {
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2)) = I16(i)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(j)*8)) = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ j++
+ }
+ }
+
+ recomputeColumnsNotIndexed(tls, pPk)
+}
+
+// Return true if pTab is a virtual table and zName is a shadow table name
+// for that virtual table.
+func Xsqlite3IsShadowTableOf(tls *libc.TLS, db uintptr, pTab uintptr, zName uintptr) int32 {
+ var nName int32
+ var pMod uintptr
+
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ return 0
+ }
+ nName = Xsqlite3Strlen30(tls, (*Table)(unsafe.Pointer(pTab)).FzName)
+ if Xsqlite3_strnicmp(tls, zName, (*Table)(unsafe.Pointer(pTab)).FzName, nName) != 0 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(zName + uintptr(nName)))) != '_' {
+ return 0
+ }
+ pMod = Xsqlite3HashFind(tls, db+576, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8)))))
+ if pMod == uintptr(0) {
+ return 0
+ }
+ if (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FiVersion < 3 {
+ return 0
+ }
+ if (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxShadowName == uintptr(0) {
+ return 0
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxShadowName})).f(tls, zName+uintptr(nName)+uintptr(1))
+}
+
+// Table pTab is a virtual table. If it the virtual table implementation
+// exists and has an xShadowName method, then loop over all other ordinary
+// tables within the same schema looking for shadow tables of pTab, and mark
+// any shadow tables seen using the TF_Shadow flag.
+func Xsqlite3MarkAllShadowTablesOf(tls *libc.TLS, db uintptr, pTab uintptr) {
+ var nName int32
+ var pMod uintptr
+ var k uintptr
+
+ pMod = Xsqlite3HashFind(tls, db+576, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8)))))
+ if pMod == uintptr(0) {
+ return
+ }
+ if (*Module)(unsafe.Pointer(pMod)).FpModule == uintptr(0) {
+ return
+ }
+ if (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FiVersion < 3 {
+ return
+ }
+ if (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxShadowName == uintptr(0) {
+ return
+ }
+
+ nName = Xsqlite3Strlen30(tls, (*Table)(unsafe.Pointer(pTab)).FzName)
+ for k = (*Hash)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FpSchema + 8)).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ var pOther uintptr = (*HashElem)(unsafe.Pointer(k)).Fdata
+
+ if !(int32((*Table)(unsafe.Pointer(pOther)).FeTabType) == TABTYP_NORM) {
+ continue
+ }
+ if (*Table)(unsafe.Pointer(pOther)).FtabFlags&U32(TF_Shadow) != 0 {
+ continue
+ }
+ if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pOther)).FzName, (*Table)(unsafe.Pointer(pTab)).FzName, nName) == 0 &&
+ int32(*(*int8)(unsafe.Pointer((*Table)(unsafe.Pointer(pOther)).FzName + uintptr(nName)))) == '_' &&
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxShadowName})).f(tls, (*Table)(unsafe.Pointer(pOther)).FzName+uintptr(nName)+uintptr(1)) != 0 {
+ *(*U32)(unsafe.Pointer(pOther + 48)) |= U32(TF_Shadow)
+ }
+ }
+}
+
+// Return true if zName is a shadow table name in the current database
+// connection.
+//
+// zName is temporarily modified while this routine is running, but is
+// restored to its original value prior to this routine returning.
+func Xsqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) int32 {
+ var zTail uintptr
+ var pTab uintptr
+ zTail = libc.Xstrrchr(tls, zName, '_')
+ if zTail == uintptr(0) {
+ return 0
+ }
+ *(*int8)(unsafe.Pointer(zTail)) = int8(0)
+ pTab = Xsqlite3FindTable(tls, db, zName, uintptr(0))
+ *(*int8)(unsafe.Pointer(zTail)) = int8('_')
+ if pTab == uintptr(0) {
+ return 0
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ return 0
+ }
+ return Xsqlite3IsShadowTableOf(tls, db, pTab, zName)
+}
+
+// This routine is called to report the final ")" that terminates
+// a CREATE TABLE statement.
+//
+// The table structure that other action routines have been building
+// is added to the internal hash tables, assuming no errors have
+// occurred.
+//
+// An entry for the table is made in the schema table on disk, unless
+// this is a temporary table or db->init.busy==1. When db->init.busy==1
+// it means we are reading the sqlite_schema table because we just
+// connected to the database or because the sqlite_schema table has
+// recently changed, so the entry for this table already exists in
+// the sqlite_schema table. We do not want to create it again.
+//
+// If the pSelect argument is not NULL, it means that this routine
+// was called to create a table generated from a
+// "CREATE TABLE ... AS SELECT ..." statement. The column names of
+// the new table will match the result set of the SELECT.
+func Xsqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts U32, pSelect uintptr) {
+ bp := tls.Alloc(184)
+ defer tls.Free(184)
+
+ var p uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32
+ var pIdx uintptr
+
+ if pEnd == uintptr(0) && pSelect == uintptr(0) {
+ return
+ }
+ p = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if p == uintptr(0) {
+ return
+ }
+
+ if pSelect == uintptr(0) && Xsqlite3ShadowTableName(tls, db, (*Table)(unsafe.Pointer(p)).FzName) != 0 {
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_Shadow)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ if pSelect != 0 || !(int32((*Table)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM) && (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+1547, 0)
+ return
+ }
+ (*Table)(unsafe.Pointer(p)).Ftnum = (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum
+ if (*Table)(unsafe.Pointer(p)).Ftnum == Pgno(1) {
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_Readonly)
+ }
+ }
+
+ if tabOpts&U32(TF_Strict) != 0 {
+ var ii int32
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_Strict)
+ for ii = 0; ii < int32((*Table)(unsafe.Pointer(p)).FnCol); ii++ {
+ var pCol uintptr = (*Table)(unsafe.Pointer(p)).FaCol + uintptr(ii)*24
+ if int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4) == COLTYPE_CUSTOM {
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_HASTYPE != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+13220,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(p)).FzName, (*Column)(unsafe.Pointer(pCol)).FzCnName, Xsqlite3ColumnType(tls, pCol, ts+1547)))
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+13253,
+ libc.VaList(bp+24, (*Table)(unsafe.Pointer(p)).FzName, (*Column)(unsafe.Pointer(pCol)).FzCnName))
+ }
+ return
+ } else if int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4) == COLTYPE_ANY {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = int8(SQLITE_AFF_BLOB)
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY != 0 &&
+ int32((*Table)(unsafe.Pointer(p)).FiPKey) != ii &&
+ int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0) == OE_None {
+ libc.SetBitFieldPtr8Uint32(pCol+8, uint32(OE_Abort), 0, 0xf)
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_HasNotNull)
+ }
+ }
+ }
+
+ if tabOpts&U32(TF_WithoutRowid) != 0 {
+ if (*Table)(unsafe.Pointer(p)).FtabFlags&U32(TF_Autoincrement) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+13280, 0)
+ return
+ }
+ if (*Table)(unsafe.Pointer(p)).FtabFlags&U32(TF_HasPrimaryKey) == U32(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+13330, libc.VaList(bp+40, (*Table)(unsafe.Pointer(p)).FzName))
+ return
+ }
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_WithoutRowid | TF_NoVisibleRowid)
+ convertToWithoutRowidTable(tls, pParse, p)
+ }
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(p)).FpSchema)
+
+ if (*Table)(unsafe.Pointer(p)).FpCheck != 0 {
+ Xsqlite3ResolveSelfReference(tls, pParse, p, NC_IsCheck, uintptr(0), (*Table)(unsafe.Pointer(p)).FpCheck)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ Xsqlite3ExprListDelete(tls, db, (*Table)(unsafe.Pointer(p)).FpCheck)
+ (*Table)(unsafe.Pointer(p)).FpCheck = uintptr(0)
+ } else {
+ }
+ }
+ if (*Table)(unsafe.Pointer(p)).FtabFlags&U32(TF_HasGenerated) != 0 {
+ var ii int32
+ var nNG int32 = 0
+
+ for ii = 0; ii < int32((*Table)(unsafe.Pointer(p)).FnCol); ii++ {
+ var colFlags U32 = U32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol + uintptr(ii)*24)).FcolFlags)
+ if colFlags&U32(COLFLAG_GENERATED) != U32(0) {
+ var pX uintptr = Xsqlite3ColumnExpr(tls, p, (*Table)(unsafe.Pointer(p)).FaCol+uintptr(ii)*24)
+
+ if Xsqlite3ResolveSelfReference(tls, pParse, p, NC_GenCol, pX, uintptr(0)) != 0 {
+ Xsqlite3ColumnSetExpr(tls, pParse, p, (*Table)(unsafe.Pointer(p)).FaCol+uintptr(ii)*24,
+ Xsqlite3ExprAlloc(tls, db, TK_NULL, uintptr(0), 0))
+ }
+ } else {
+ nNG++
+ }
+ }
+ if nNG == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+13362, 0)
+ return
+ }
+ }
+
+ estimateTableWidth(tls, p)
+ for pIdx = (*Table)(unsafe.Pointer(p)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ estimateIndexWidth(tls, pIdx)
+ }
+
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ var n int32
+ var v uintptr
+ var zType uintptr
+ var zType2 uintptr
+ var zStmt uintptr
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v == uintptr(0) {
+ return
+ }
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, 0)
+
+ if int32((*Table)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM {
+ zType = ts + 9279
+ zType2 = ts + 13406
+ } else {
+ zType = ts + 10894
+ zType2 = ts + 13412
+ }
+
+ if pSelect != 0 {
+ var regYield int32
+ var addrTop int32
+ var regRec int32
+ var regRowid int32
+ var addrInsLoop int32
+ var pSelTab uintptr
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ return
+ }
+ regYield = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regRec = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ Xsqlite3MayAbort(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenWrite, 1, (*Parse)(unsafe.Pointer(pParse)).FregRoot, iDb)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG))
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = 2
+ addrTop = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+ Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regYield, 0, addrTop)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ pSelTab = Xsqlite3ResultSetOfSelect(tls, pParse, pSelect, int8(SQLITE_AFF_BLOB))
+ if pSelTab == uintptr(0) {
+ return
+ }
+
+ (*Table)(unsafe.Pointer(p)).FnCol = libc.AssignPtrInt16(p+56, (*Table)(unsafe.Pointer(pSelTab)).FnCol)
+ (*Table)(unsafe.Pointer(p)).FaCol = (*Table)(unsafe.Pointer(pSelTab)).FaCol
+ (*Table)(unsafe.Pointer(pSelTab)).FnCol = int16(0)
+ (*Table)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0)
+ Xsqlite3DeleteTable(tls, db, pSelTab)
+ Xsqlite3SelectDestInit(tls, bp+144, SRT_Coroutine, regYield)
+ Xsqlite3Select(tls, pParse, pSelect, bp+144)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ Xsqlite3VdbeEndCoroutine(tls, v, regYield)
+ Xsqlite3VdbeJumpHere(tls, v, addrTop-1)
+ addrInsLoop = Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(bp+144)).FiSDParm)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, (*SelectDest)(unsafe.Pointer(bp+144)).FiSdst, (*SelectDest)(unsafe.Pointer(bp+144)).FnSdst, regRec)
+ Xsqlite3TableAffinity(tls, v, p, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, 1, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, 1, regRec, regRowid)
+ Xsqlite3VdbeGoto(tls, v, addrInsLoop)
+ Xsqlite3VdbeJumpHere(tls, v, addrInsLoop)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, 1)
+ }
+
+ if pSelect != 0 {
+ zStmt = createTableStmt(tls, db, p)
+ } else {
+ var pEnd2 uintptr
+ if tabOpts != 0 {
+ pEnd2 = pParse + 288
+ } else {
+ pEnd2 = pEnd
+ }
+ n = int32((int64((*Token)(unsafe.Pointer(pEnd2)).Fz) - int64((*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) / 1)
+ if int32(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(pEnd2)).Fz))) != ';' {
+ n = int32(uint32(n) + (*Token)(unsafe.Pointer(pEnd2)).Fn)
+ }
+ zStmt = Xsqlite3MPrintf(tls, db,
+ ts+13417, libc.VaList(bp+48, zType2, n, (*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz))
+ }
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+13432,
+ libc.VaList(bp+72, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName,
+ zType,
+ (*Table)(unsafe.Pointer(p)).FzName,
+ (*Table)(unsafe.Pointer(p)).FzName,
+ (*Parse)(unsafe.Pointer(pParse)).FregRoot,
+ zStmt,
+ (*Parse)(unsafe.Pointer(pParse)).FregRowid))
+ Xsqlite3DbFree(tls, db, zStmt)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+
+ if (*Table)(unsafe.Pointer(p)).FtabFlags&U32(TF_Autoincrement) != U32(0) && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL) {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+
+ if (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+13530,
+ libc.VaList(bp+128, (*Db)(unsafe.Pointer(pDb)).FzDbSName))
+ }
+ }
+
+ Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
+ Xsqlite3MPrintf(tls, db, ts+13572, libc.VaList(bp+136, (*Table)(unsafe.Pointer(p)).FzName)), uint16(0))
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 {
+ var pOld uintptr
+ var pSchema uintptr = (*Table)(unsafe.Pointer(p)).FpSchema
+
+ pOld = Xsqlite3HashInsert(tls, pSchema+8, (*Table)(unsafe.Pointer(p)).FzName, p)
+ if pOld != 0 {
+ Xsqlite3OomFault(tls, db)
+ return
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTable = uintptr(0)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+
+ if libc.Xstrcmp(tls, (*Table)(unsafe.Pointer(p)).FzName, ts+9801) == 0 {
+ (*Schema)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p
+ }
+ }
+
+ if !(pSelect != 0) && int32((*Table)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM {
+ if (*Token)(unsafe.Pointer(pCons)).Fz == uintptr(0) {
+ pCons = pEnd
+ }
+ *(*int32)(unsafe.Pointer(p + 64)) = 13 + int32((int64((*Token)(unsafe.Pointer(pCons)).Fz)-int64((*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz))/1)
+ }
+}
+
+// The parser calls this routine in order to create a new VIEW
+func Xsqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 uintptr, pName2 uintptr, pCNames uintptr, pSelect uintptr, isTemp int32, noErr int32) {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var p uintptr
+ var n int32
+ var z uintptr
+
+ var iDb int32
+ var db uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FnVar) > 0) {
+ goto __1
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+13606, 0)
+ goto create_view_fail
+__1:
+ ;
+ Xsqlite3StartTable(tls, pParse, pName1, pName2, isTemp, 1, 0, noErr)
+ p = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if !(p == uintptr(0) || (*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __2
+ }
+ goto create_view_fail
+__2:
+ ;
+ *(*U32)(unsafe.Pointer(p + 48)) |= U32(TF_NoVisibleRowid)
+
+ Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp)
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(p)).FpSchema)
+ Xsqlite3FixInit(tls, bp+8, pParse, iDb, ts+10894, *(*uintptr)(unsafe.Pointer(bp)))
+ if !(Xsqlite3FixSelect(tls, bp+8, pSelect) != 0) {
+ goto __3
+ }
+ goto create_view_fail
+__3:
+ ;
+ *(*U32)(unsafe.Pointer(pSelect + 4)) |= U32(SF_View)
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __4
+ }
+ *(*uintptr)(unsafe.Pointer(p + 64)) = pSelect
+ pSelect = uintptr(0)
+ goto __5
+__4:
+ *(*uintptr)(unsafe.Pointer(p + 64)) = Xsqlite3SelectDup(tls, db, pSelect, EXPRDUP_REDUCE)
+__5:
+ ;
+ (*Table)(unsafe.Pointer(p)).FpCheck = Xsqlite3ExprListDup(tls, db, pCNames, EXPRDUP_REDUCE)
+ (*Table)(unsafe.Pointer(p)).FeTabType = U8(TABTYP_VIEW)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __6
+ }
+ goto create_view_fail
+__6:
+ ;
+ *(*Token)(unsafe.Pointer(bp + 104)) = (*Parse)(unsafe.Pointer(pParse)).FsLastToken
+
+ if !(int32(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(bp + 104)).Fz))) != ';') {
+ goto __7
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 104)) += uintptr((*Token)(unsafe.Pointer(bp + 104)).Fn)
+__7:
+ ;
+ (*Token)(unsafe.Pointer(bp + 104)).Fn = uint32(0)
+ n = int32((int64((*Token)(unsafe.Pointer(bp+104)).Fz) - int64((*Token)(unsafe.Pointer(pBegin)).Fz)) / 1)
+
+ z = (*Token)(unsafe.Pointer(pBegin)).Fz
+__8:
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-1))))])&0x01 != 0) {
+ goto __9
+ }
+ n--
+ goto __8
+__9:
+ ;
+ (*Token)(unsafe.Pointer(bp + 104)).Fz = z + uintptr(n-1)
+ (*Token)(unsafe.Pointer(bp + 104)).Fn = uint32(1)
+
+ Xsqlite3EndTable(tls, pParse, uintptr(0), bp+104, uint32(0), uintptr(0))
+
+create_view_fail:
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __10
+ }
+ Xsqlite3RenameExprlistUnmap(tls, pParse, pCNames)
+__10:
+ ;
+ Xsqlite3ExprListDelete(tls, db, pCNames)
+ return
+}
+
+func viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pSelTab uintptr
+ var pSel uintptr
+ var nErr int32 = 0
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var rc int32
+ var xAuth Sqlite3_xauth
+
+ if int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_VTAB {
+ (*Sqlite3)(unsafe.Pointer(db)).FnSchemaLock++
+ rc = Xsqlite3VtabCallConnect(tls, pParse, pTable)
+ (*Sqlite3)(unsafe.Pointer(db)).FnSchemaLock--
+ return rc
+ }
+
+ if int32((*Table)(unsafe.Pointer(pTable)).FnCol) < 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+13642, libc.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
+ return 1
+ }
+
+ pSel = Xsqlite3SelectDup(tls, db, *(*uintptr)(unsafe.Pointer(pTable + 64)), 0)
+ if pSel != 0 {
+ var eParseMode U8 = (*Parse)(unsafe.Pointer(pParse)).FeParseMode
+ var nTab int32 = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ var nSelect int32 = (*Parse)(unsafe.Pointer(pParse)).FnSelect
+ (*Parse)(unsafe.Pointer(pParse)).FeParseMode = U8(PARSE_MODE_NORMAL)
+ Xsqlite3SrcListAssignCursors(tls, pParse, (*Select)(unsafe.Pointer(pSel)).FpSrc)
+ (*Table)(unsafe.Pointer(pTable)).FnCol = int16(-1)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+ xAuth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+ pSelTab = Xsqlite3ResultSetOfSelect(tls, pParse, pSel, int8(SQLITE_AFF_NONE))
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = nTab
+ (*Parse)(unsafe.Pointer(pParse)).FnSelect = nSelect
+ if pSelTab == uintptr(0) {
+ (*Table)(unsafe.Pointer(pTable)).FnCol = int16(0)
+ nErr++
+ } else if (*Table)(unsafe.Pointer(pTable)).FpCheck != 0 {
+ Xsqlite3ColumnsFromExprList(tls, pParse, (*Table)(unsafe.Pointer(pTable)).FpCheck,
+ pTable+54, pTable+8)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 &&
+ int32((*Table)(unsafe.Pointer(pTable)).FnCol) == (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpEList)).FnExpr {
+ Xsqlite3SubqueryColumnTypes(tls, pParse, pTable, pSel, int8(SQLITE_AFF_NONE))
+ }
+ } else {
+ (*Table)(unsafe.Pointer(pTable)).FnCol = (*Table)(unsafe.Pointer(pSelTab)).FnCol
+ (*Table)(unsafe.Pointer(pTable)).FaCol = (*Table)(unsafe.Pointer(pSelTab)).FaCol
+ *(*U32)(unsafe.Pointer(pTable + 48)) |= (*Table)(unsafe.Pointer(pSelTab)).FtabFlags & U32(COLFLAG_NOINSERT)
+ (*Table)(unsafe.Pointer(pSelTab)).FnCol = int16(0)
+ (*Table)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0)
+
+ }
+ (*Table)(unsafe.Pointer(pTable)).FnNVCol = (*Table)(unsafe.Pointer(pTable)).FnCol
+ Xsqlite3DeleteTable(tls, db, pSelTab)
+ Xsqlite3SelectDelete(tls, db, pSel)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable--
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = func() uint16 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
+ return uint16(0)
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue
+ }()
+ (*Parse)(unsafe.Pointer(pParse)).FeParseMode = eParseMode
+ } else {
+ nErr++
+ }
+ *(*U16)(unsafe.Pointer((*Table)(unsafe.Pointer(pTable)).FpSchema + 114)) |= U16(DB_UnresetViews)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3DeleteColumnNames(tls, db, pTable)
+ }
+ return nErr
+}
+
+func Xsqlite3ViewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) int32 {
+ if !(int32((*Table)(unsafe.Pointer(pTable)).FeTabType) == TABTYP_VTAB) && int32((*Table)(unsafe.Pointer(pTable)).FnCol) > 0 {
+ return 0
+ }
+ return viewGetColumnNames(tls, pParse, pTable)
+}
+
+func sqliteViewResetAll(tls *libc.TLS, db uintptr, idx int32) {
+ var i uintptr
+
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(idx)*32)).FpSchema)).FschemaFlags)&DB_UnresetViews == DB_UnresetViews) {
+ return
+ }
+ for i = (*Hash)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(idx)*32)).FpSchema + 8)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ Xsqlite3DeleteColumnNames(tls, db, pTab)
+ }
+ }
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(idx)*32)).FpSchema + 114)) &= libc.Uint16FromInt32(libc.CplInt32(DB_UnresetViews))
+}
+
+// This function is called by the VDBE to adjust the internal schema
+// used by SQLite when the btree layer moves a table root page. The
+// root-page of a table or index in database iDb has changed from iFrom
+// to iTo.
+//
+// Ticket #1728: The symbol table might still contain information
+// on tables and/or indices that are the process of being deleted.
+// If you are unlucky, one of those deleted indices or tables might
+// have the same rootpage number as the real table or index that is
+// being moved. So we cannot stop searching after the first match
+// because the first match might be for one of the deleted indices
+// or tables and not the table/index that is actually being moved.
+// We must continue looping until all tables and indices with
+// rootpage==iFrom have been converted to have a rootpage of iTo
+// in order to be certain that we got the right one.
+func Xsqlite3RootPageMoved(tls *libc.TLS, db uintptr, iDb int32, iFrom Pgno, iTo Pgno) {
+ var pElem uintptr
+ var pHash uintptr
+ var pDb uintptr
+
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+ pHash = (*Db)(unsafe.Pointer(pDb)).FpSchema + 8
+ for pElem = (*Hash)(unsafe.Pointer(pHash)).Ffirst; pElem != 0; pElem = (*HashElem)(unsafe.Pointer(pElem)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(pElem)).Fdata
+ if (*Table)(unsafe.Pointer(pTab)).Ftnum == iFrom {
+ (*Table)(unsafe.Pointer(pTab)).Ftnum = iTo
+ }
+ }
+ pHash = (*Db)(unsafe.Pointer(pDb)).FpSchema + 32
+ for pElem = (*Hash)(unsafe.Pointer(pHash)).Ffirst; pElem != 0; pElem = (*HashElem)(unsafe.Pointer(pElem)).Fnext {
+ var pIdx uintptr = (*HashElem)(unsafe.Pointer(pElem)).Fdata
+ if (*Index)(unsafe.Pointer(pIdx)).Ftnum == iFrom {
+ (*Index)(unsafe.Pointer(pIdx)).Ftnum = iTo
+ }
+ }
+}
+
+func destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ if iTable < 2 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+13672, 0)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Destroy, iTable, r1, iDb)
+ Xsqlite3MayAbort(tls, pParse)
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+13687,
+ libc.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+uintptr(iDb)*32)).FzDbSName, iTable, r1, r1))
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+}
+
+func destroyTable(tls *libc.TLS, pParse uintptr, pTab uintptr) {
+ var iTab Pgno = (*Table)(unsafe.Pointer(pTab)).Ftnum
+ var iDestroyed Pgno = Pgno(0)
+
+ for 1 != 0 {
+ var pIdx uintptr
+ var iLargest Pgno = Pgno(0)
+
+ if iDestroyed == Pgno(0) || iTab < iDestroyed {
+ iLargest = iTab
+ }
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var iIdx Pgno = (*Index)(unsafe.Pointer(pIdx)).Ftnum
+
+ if (iDestroyed == Pgno(0) || iIdx < iDestroyed) && iIdx > iLargest {
+ iLargest = iIdx
+ }
+ }
+ if iLargest == Pgno(0) {
+ return
+ } else {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ destroyRootPage(tls, pParse, int32(iLargest), iDb)
+ iDestroyed = iLargest
+ }
+ }
+}
+
+func sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uintptr, zName uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+ var zDbName uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32)).FzDbSName
+ for i = 1; i <= 4; i++ {
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([24]int8{})), bp+40, ts+13754, libc.VaList(bp, i))
+ if Xsqlite3FindTable(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, bp+40, zDbName) != 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+11703,
+ libc.VaList(bp+8, zDbName, bp+40, zType, zName))
+ }
+ }
+}
+
+// Generate code to drop a table.
+func Xsqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int32, isView int32) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var v uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTrigger uintptr
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+
+ Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ Xsqlite3VdbeAddOp0(tls, v, OP_VBegin)
+ }
+
+ pTrigger = Xsqlite3TriggerList(tls, pParse, pTab)
+ for pTrigger != 0 {
+ Xsqlite3DropTriggerPtr(tls, pParse, pTrigger)
+ pTrigger = (*Trigger)(unsafe.Pointer(pTrigger)).FpNext
+ }
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Autoincrement) != 0 {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+13768,
+ libc.VaList(bp, (*Db)(unsafe.Pointer(pDb)).FzDbSName, (*Table)(unsafe.Pointer(pTab)).FzName))
+ }
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+13813,
+ libc.VaList(bp+16, (*Db)(unsafe.Pointer(pDb)).FzDbSName, (*Table)(unsafe.Pointer(pTab)).FzName))
+ if !(isView != 0) && !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ destroyTable(tls, pParse, pTab)
+ }
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ Xsqlite3VdbeAddOp4(tls, v, OP_VDestroy, iDb, 0, 0, (*Table)(unsafe.Pointer(pTab)).FzName, 0)
+ Xsqlite3MayAbort(tls, pParse)
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_DropTable, iDb, 0, 0, (*Table)(unsafe.Pointer(pTab)).FzName, 0)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ sqliteViewResetAll(tls, db, iDb)
+}
+
+// Return TRUE if shadow tables should be read-only in the current
+// context.
+func Xsqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) int32 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_Defensive) != uint64(0) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx == uintptr(0) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FnVdbeExec == 0 &&
+ !((*Sqlite3)(unsafe.Pointer(db)).FnVTrans > 0 && (*Sqlite3)(unsafe.Pointer(db)).FaVTrans == uintptr(0)) {
+ return 1
+ }
+ return 0
+}
+
+func tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) int32 {
+ if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+6784, 7) == 0 {
+ if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7), ts+3279, 4) == 0 {
+ return 0
+ }
+ if Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName+uintptr(7), ts+7536, 10) == 0 {
+ return 0
+ }
+ return 1
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Shadow) != U32(0) && Xsqlite3ReadOnlyShadowTables(tls, db) != 0 {
+ return 1
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Eponymous) != 0 {
+ return 1
+ }
+ return 0
+}
+
+// This routine is called to do the work of a DROP TABLE statement.
+// pName is the name of the table to be dropped.
+func Xsqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int32, noErr int32) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pTab uintptr
+ var v uintptr
+ var db uintptr
+ var iDb int32
+ var code int32
+ var zTab uintptr
+ var zDb uintptr
+ var zArg2 uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto exit_drop_table
+__1:
+ ;
+ if !(Xsqlite3ReadSchema(tls, pParse) != 0) {
+ goto __2
+ }
+ goto exit_drop_table
+__2:
+ ;
+ if !(noErr != 0) {
+ goto __3
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr++
+__3:
+ ;
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(isView), pName+8)
+ if !(noErr != 0) {
+ goto __4
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FsuppressErr--
+__4:
+ ;
+ if !(pTab == uintptr(0)) {
+ goto __5
+ }
+ if !(noErr != 0) {
+ goto __6
+ }
+ Xsqlite3CodeVerifyNamedSchema(tls, pParse, (*SrcItem)(unsafe.Pointer(pName+8)).FzDatabase)
+ sqlite3ForceNotReadOnly(tls, pParse)
+__6:
+ ;
+ goto exit_drop_table
+__5:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB && Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0) {
+ goto __7
+ }
+ goto exit_drop_table
+__7:
+ ;
+ zTab = func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }()
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ zArg2 = uintptr(0)
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_DELETE, zTab, uintptr(0), zDb) != 0) {
+ goto __8
+ }
+ goto exit_drop_table
+__8:
+ ;
+ if !(isView != 0) {
+ goto __9
+ }
+ if !(!(0 != 0) && iDb == 1) {
+ goto __11
+ }
+ code = SQLITE_DROP_TEMP_VIEW
+ goto __12
+__11:
+ code = SQLITE_DROP_VIEW
+__12:
+ ;
+ goto __10
+__9:
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __13
+ }
+ code = SQLITE_DROP_VTABLE
+ zArg2 = (*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer(Xsqlite3GetVTable(tls, db, pTab))).FpMod)).FzName
+ goto __14
+__13:
+ if !(!(0 != 0) && iDb == 1) {
+ goto __15
+ }
+ code = SQLITE_DROP_TEMP_TABLE
+ goto __16
+__15:
+ code = SQLITE_DROP_TABLE
+__16:
+ ;
+__14:
+ ;
+__10:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, code, (*Table)(unsafe.Pointer(pTab)).FzName, zArg2, zDb) != 0) {
+ goto __17
+ }
+ goto exit_drop_table
+__17:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_DELETE, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0), zDb) != 0) {
+ goto __18
+ }
+ goto exit_drop_table
+__18:
+ ;
+ if !(tableMayNotBeDropped(tls, db, pTab) != 0) {
+ goto __19
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+13880, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_drop_table
+__19:
+ ;
+ if !(isView != 0 && !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW)) {
+ goto __20
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+13908, libc.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_drop_table
+__20:
+ ;
+ if !(!(isView != 0) && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __21
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+13942, libc.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_drop_table
+__21:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v != 0) {
+ goto __22
+ }
+ Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
+ if !!(isView != 0) {
+ goto __23
+ }
+ sqlite3ClearStatTables(tls, pParse, iDb, ts+11895, (*Table)(unsafe.Pointer(pTab)).FzName)
+ Xsqlite3FkDropTable(tls, pParse, pName, pTab)
+__23:
+ ;
+ Xsqlite3CodeDropTable(tls, pParse, pTab, iDb, isView)
+__22:
+ ;
+exit_drop_table:
+ Xsqlite3SrcListDelete(tls, db, pName)
+}
+
+// This routine is called to create a new foreign key on the table
+// currently under construction. pFromCol determines which columns
+// in the current table point to the foreign key. If pFromCol==0 then
+// connect the key to the last column inserted. pTo is the name of
+// the table referred to (a.k.a the "parent" table). pToCol is a list
+// of tables in the parent pTo table. flags contains all
+// information about the conflict resolution algorithms specified
+// in the ON DELETE, ON UPDATE and ON INSERT clauses.
+//
+// An FKey structure is created and added to the table currently
+// under construction in the pParse->pNewTable field.
+//
+// The foreign key is set for IMMEDIATE processing. A subsequent call
+// to sqlite3DeferForeignKey() might change this to DEFERRED.
+func Xsqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, pTo uintptr, pToCol uintptr, flags int32) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var db uintptr
+ var pFKey uintptr
+ var pNextTo uintptr
+ var p uintptr
+ var nByte I64
+ var i int32
+ var nCol int32
+ var z uintptr
+ var iCol int32
+ var j int32
+ var n int32
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pFKey = uintptr(0)
+ p = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+
+ if !(p == uintptr(0) || int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) == PARSE_MODE_DECLARE_VTAB) {
+ goto __1
+ }
+ goto fk_end
+__1:
+ ;
+ if !(pFromCol == uintptr(0)) {
+ goto __2
+ }
+ iCol = int32((*Table)(unsafe.Pointer(p)).FnCol) - 1
+ if !(iCol < 0) {
+ goto __4
+ }
+ goto fk_end
+__4:
+ ;
+ if !(pToCol != 0 && (*ExprList)(unsafe.Pointer(pToCol)).FnExpr != 1) {
+ goto __5
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+13974,
+ libc.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(iCol)*24)).FzCnName, pTo))
+ goto fk_end
+__5:
+ ;
+ nCol = 1
+ goto __3
+__2:
+ if !(pToCol != 0 && (*ExprList)(unsafe.Pointer(pToCol)).FnExpr != (*ExprList)(unsafe.Pointer(pFromCol)).FnExpr) {
+ goto __6
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14037, 0)
+ goto fk_end
+ goto __7
+__6:
+ nCol = (*ExprList)(unsafe.Pointer(pFromCol)).FnExpr
+__7:
+ ;
+__3:
+ ;
+ nByte = I64(uint64(unsafe.Sizeof(FKey{})) + uint64(nCol-1)*uint64(unsafe.Sizeof(sColMap{})) + uint64((*Token)(unsafe.Pointer(pTo)).Fn) + uint64(1))
+ if !(pToCol != 0) {
+ goto __8
+ }
+ i = 0
+__9:
+ if !(i < (*ExprList)(unsafe.Pointer(pToCol)).FnExpr) {
+ goto __11
+ }
+ nByte = nByte + I64(Xsqlite3Strlen30(tls, (*ExprList_item)(unsafe.Pointer(pToCol+8+uintptr(i)*32)).FzEName)+1)
+ goto __10
+__10:
+ i++
+ goto __9
+ goto __11
+__11:
+ ;
+__8:
+ ;
+ pFKey = Xsqlite3DbMallocZero(tls, db, uint64(nByte))
+ if !(pFKey == uintptr(0)) {
+ goto __12
+ }
+ goto fk_end
+__12:
+ ;
+ (*FKey)(unsafe.Pointer(pFKey)).FpFrom = p
+
+ (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom = *(*uintptr)(unsafe.Pointer(p + 64 + 8))
+ z = pFKey + 64 + uintptr(nCol)*16
+ (*FKey)(unsafe.Pointer(pFKey)).FzTo = z
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __13
+ }
+ Xsqlite3RenameTokenMap(tls, pParse, z, pTo)
+__13:
+ ;
+ libc.X__builtin___memcpy_chk(tls, z, (*Token)(unsafe.Pointer(pTo)).Fz, uint64((*Token)(unsafe.Pointer(pTo)).Fn), libc.X__builtin_object_size(tls, z, 0))
+ *(*int8)(unsafe.Pointer(z + uintptr((*Token)(unsafe.Pointer(pTo)).Fn))) = int8(0)
+ Xsqlite3Dequote(tls, z)
+ z += uintptr((*Token)(unsafe.Pointer(pTo)).Fn + uint32(1))
+ (*FKey)(unsafe.Pointer(pFKey)).FnCol = nCol
+ if !(pFromCol == uintptr(0)) {
+ goto __14
+ }
+ (*sColMap)(unsafe.Pointer(pFKey + 64)).FiFrom = int32((*Table)(unsafe.Pointer(p)).FnCol) - 1
+ goto __15
+__14:
+ i = 0
+__16:
+ if !(i < nCol) {
+ goto __18
+ }
+ j = 0
+__19:
+ if !(j < int32((*Table)(unsafe.Pointer(p)).FnCol)) {
+ goto __21
+ }
+ if !(Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(p)).FaCol+uintptr(j)*24)).FzCnName, (*ExprList_item)(unsafe.Pointer(pFromCol+8+uintptr(i)*32)).FzEName) == 0) {
+ goto __22
+ }
+ (*sColMap)(unsafe.Pointer(pFKey + 64 + uintptr(i)*16)).FiFrom = j
+ goto __21
+__22:
+ ;
+ goto __20
+__20:
+ j++
+ goto __19
+ goto __21
+__21:
+ ;
+ if !(j >= int32((*Table)(unsafe.Pointer(p)).FnCol)) {
+ goto __23
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14131,
+ libc.VaList(bp+16, (*ExprList_item)(unsafe.Pointer(pFromCol+8+uintptr(i)*32)).FzEName))
+ goto fk_end
+__23:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __24
+ }
+ Xsqlite3RenameTokenRemap(tls, pParse, pFKey+64+uintptr(i)*16, (*ExprList_item)(unsafe.Pointer(pFromCol+8+uintptr(i)*32)).FzEName)
+__24:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+__15:
+ ;
+ if !(pToCol != 0) {
+ goto __25
+ }
+ i = 0
+__26:
+ if !(i < nCol) {
+ goto __28
+ }
+ n = Xsqlite3Strlen30(tls, (*ExprList_item)(unsafe.Pointer(pToCol+8+uintptr(i)*32)).FzEName)
+ (*sColMap)(unsafe.Pointer(pFKey + 64 + uintptr(i)*16)).FzCol = z
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __29
+ }
+ Xsqlite3RenameTokenRemap(tls, pParse, z, (*ExprList_item)(unsafe.Pointer(pToCol+8+uintptr(i)*32)).FzEName)
+__29:
+ ;
+ libc.X__builtin___memcpy_chk(tls, z, (*ExprList_item)(unsafe.Pointer(pToCol+8+uintptr(i)*32)).FzEName, uint64(n), libc.X__builtin_object_size(tls, z, 0))
+ *(*int8)(unsafe.Pointer(z + uintptr(n))) = int8(0)
+ z += uintptr(n + 1)
+ goto __27
+__27:
+ i++
+ goto __26
+ goto __28
+__28:
+ ;
+__25:
+ ;
+ (*FKey)(unsafe.Pointer(pFKey)).FisDeferred = U8(0)
+ *(*U8)(unsafe.Pointer(pFKey + 45)) = U8(flags & 0xff)
+ *(*U8)(unsafe.Pointer(pFKey + 45 + 1)) = U8(flags >> 8 & 0xff)
+
+ pNextTo = Xsqlite3HashInsert(tls, (*Table)(unsafe.Pointer(p)).FpSchema+80,
+ (*FKey)(unsafe.Pointer(pFKey)).FzTo, pFKey)
+ if !(pNextTo == pFKey) {
+ goto __30
+ }
+ Xsqlite3OomFault(tls, db)
+ goto fk_end
+__30:
+ ;
+ if !(pNextTo != 0) {
+ goto __31
+ }
+
+ (*FKey)(unsafe.Pointer(pFKey)).FpNextTo = pNextTo
+ (*FKey)(unsafe.Pointer(pNextTo)).FpPrevTo = pFKey
+__31:
+ ;
+ *(*uintptr)(unsafe.Pointer(p + 64 + 8)) = pFKey
+ pFKey = uintptr(0)
+
+fk_end:
+ Xsqlite3DbFree(tls, db, pFKey)
+ Xsqlite3ExprListDelete(tls, db, pFromCol)
+ Xsqlite3ExprListDelete(tls, db, pToCol)
+}
+
+// This routine is called when an INITIALLY IMMEDIATE or INITIALLY DEFERRED
+// clause is seen as part of a foreign key definition. The isDeferred
+// parameter is 1 for INITIALLY DEFERRED and 0 for INITIALLY IMMEDIATE.
+// The behavior of the most recently created foreign key is adjusted
+// accordingly.
+func Xsqlite3DeferForeignKey(tls *libc.TLS, pParse uintptr, isDeferred int32) {
+ var pTab uintptr
+ var pFKey uintptr
+ if libc.AssignUintptr(&pTab, (*Parse)(unsafe.Pointer(pParse)).FpNewTable) == uintptr(0) {
+ return
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ return
+ }
+ if libc.AssignUintptr(&pFKey, *(*uintptr)(unsafe.Pointer(pTab + 64 + 8))) == uintptr(0) {
+ return
+ }
+
+ (*FKey)(unsafe.Pointer(pFKey)).FisDeferred = U8(isDeferred)
+}
+
+func sqlite3RefillIndex(tls *libc.TLS, pParse uintptr, pIndex uintptr, memRootPage int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pTab uintptr = (*Index)(unsafe.Pointer(pIndex)).FpTable
+ var iTab int32 = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ var iIdx int32 = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ var iSorter int32
+ var addr1 int32
+ var addr2 int32
+ var tnum Pgno
+
+ var v uintptr
+ var pKey uintptr
+ var regRecord int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, db, (*Index)(unsafe.Pointer(pIndex)).FpSchema)
+
+ if Xsqlite3AuthCheck(tls, pParse, SQLITE_REINDEX, (*Index)(unsafe.Pointer(pIndex)).FzName, uintptr(0),
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName) != 0 {
+ return
+ }
+
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(1), (*Table)(unsafe.Pointer(pTab)).FzName)
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v == uintptr(0) {
+ return
+ }
+ if memRootPage >= 0 {
+ tnum = Pgno(memRootPage)
+ } else {
+ tnum = (*Index)(unsafe.Pointer(pIndex)).Ftnum
+ }
+ pKey = Xsqlite3KeyInfoOfIndex(tls, pParse, pIndex)
+
+ iSorter = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3VdbeAddOp4(tls, v, OP_SorterOpen, iSorter, 0, int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol), Xsqlite3KeyInfoRef(tls, pKey), -8)
+
+ Xsqlite3OpenTable(tls, pParse, iTab, iDb, pTab, OP_OpenRead)
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iTab, 0)
+ regRecord = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3MultiWrite(tls, pParse)
+
+ Xsqlite3GenerateIndexKey(tls, pParse, pIndex, iTab, regRecord, 0, bp, uintptr(0), 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterInsert, iSorter, regRecord)
+ Xsqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp)))
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iTab, addr1+1)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ if memRootPage < 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Clear, int32(tnum), iDb)
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_OpenWrite, iIdx, int32(tnum), iDb,
+ pKey, -8)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_BULKCSR|func() int32 {
+ if memRootPage >= 0 {
+ return OPFLAG_P2ISREG
+ }
+ return 0
+ }()))
+
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_SorterSort, iSorter, 0)
+ if int32((*Index)(unsafe.Pointer(pIndex)).FonError) != OE_None {
+ var j2 int32 = Xsqlite3VdbeGoto(tls, v, 1)
+ addr2 = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_SorterCompare, iSorter, j2, regRecord,
+ int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol))
+ Xsqlite3UniqueConstraint(tls, pParse, OE_Abort, pIndex)
+ Xsqlite3VdbeJumpHere(tls, v, j2)
+ } else {
+ Xsqlite3MayAbort(tls, pParse)
+ addr2 = Xsqlite3VdbeCurrentAddr(tls, v)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_SorterData, iSorter, regRecord, iIdx)
+ if !(int32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x200>>9) != 0) {
+ Xsqlite3VdbeAddOp1(tls, v, OP_SeekEnd, iIdx)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxInsert, iIdx, regRecord)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+ Xsqlite3ReleaseTempReg(tls, pParse, regRecord)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterNext, iSorter, addr2)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iTab)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iIdx)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iSorter)
+}
+
+// Allocate heap space to hold an Index object with nCol columns.
+//
+// Increase the allocation size to provide an extra nExtra bytes
+// of 8-byte aligned space after the Index object and return a
+// pointer to this extra space in *ppExtra.
+func Xsqlite3AllocateIndexObject(tls *libc.TLS, db uintptr, nCol I16, nExtra int32, ppExtra uintptr) uintptr {
+ var p uintptr
+ var nByte int32
+
+ nByte = int32((uint64(unsafe.Sizeof(Index{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)) + (uint64(unsafe.Sizeof(uintptr(0)))*uint64(nCol)+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)) + (uint64(unsafe.Sizeof(LogEst(0)))*uint64(int32(nCol)+1)+uint64(unsafe.Sizeof(I16(0)))*uint64(nCol)+uint64(unsafe.Sizeof(U8(0)))*uint64(nCol)+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)))
+ p = Xsqlite3DbMallocZero(tls, db, uint64(nByte+nExtra))
+ if p != 0 {
+ var pExtra uintptr = p + uintptr((uint64(unsafe.Sizeof(Index{}))+uint64(7))&libc.Uint64FromInt32(libc.CplInt32(7)))
+ (*Index)(unsafe.Pointer(p)).FazColl = pExtra
+ pExtra += uintptr((uint64(unsafe.Sizeof(uintptr(0)))*uint64(nCol) + uint64(7)) & libc.Uint64FromInt32(libc.CplInt32(7)))
+ (*Index)(unsafe.Pointer(p)).FaiRowLogEst = pExtra
+ pExtra += uintptr(uint64(unsafe.Sizeof(LogEst(0))) * uint64(int32(nCol)+1))
+ (*Index)(unsafe.Pointer(p)).FaiColumn = pExtra
+ pExtra += uintptr(uint64(unsafe.Sizeof(I16(0))) * uint64(nCol))
+ (*Index)(unsafe.Pointer(p)).FaSortOrder = pExtra
+ (*Index)(unsafe.Pointer(p)).FnColumn = U16(nCol)
+ (*Index)(unsafe.Pointer(p)).FnKeyCol = U16(int32(nCol) - 1)
+ *(*uintptr)(unsafe.Pointer(ppExtra)) = p + uintptr(nByte)
+ }
+ return p
+}
+
+// If expression list pList contains an expression that was parsed with
+// an explicit "NULLS FIRST" or "NULLS LAST" clause, leave an error in
+// pParse and return non-zero. Otherwise, return zero.
+func Xsqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if pList != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 {
+ var sf U8 = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).Ffg.FsortFlags
+ Xsqlite3ErrorMsg(tls, pParse, ts+14177,
+ libc.VaList(bp, func() uintptr {
+ if int32(sf) == 0 || int32(sf) == 3 {
+ return ts + 14205
+ }
+ return ts + 14211
+ }()))
+ return 1
+ }
+ }
+ }
+ return 0
+}
+
+// Create a new index for an SQL table. pName1.pName2 is the name of the index
+// and pTblList is the name of the table that is to be indexed. Both will
+// be NULL for a primary key or an index that is created to satisfy a
+// UNIQUE constraint. If pTable and pIndex are NULL, use pParse->pNewTable
+// as the table to be indexed. pParse->pNewTable is a table that is
+// currently being constructed by a CREATE TABLE statement.
+//
+// pList is a list of columns to be indexed. pList will be NULL if this
+// is a primary key or unique-constraint on the most recent column added
+// to the table currently under construction.
+func Xsqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, pTblName uintptr, pList uintptr, onError int32, pStart uintptr, pPIWhere uintptr, sortOrder int32, ifNotExist int32, idxType U8) {
+ bp := tls.Alloc(256)
+ defer tls.Free(256)
+
+ var pTab uintptr
+ var pIndex uintptr
+ var zName uintptr
+ var nName int32
+ var i int32
+ var j int32
+
+ var sortOrderMask int32
+ var db uintptr
+ var pDb uintptr
+ var iDb int32
+
+ var pListItem uintptr
+ var nExtra int32
+ var nExtraCol int32
+
+ var pPk uintptr
+ var n int32
+ var pLoop uintptr
+ var zDb uintptr
+
+ var pCol uintptr
+ var pExpr uintptr
+ var nColl int32
+ var pCExpr uintptr
+ var requestedSortOrder int32
+ var zColl uintptr
+ var x int32
+ var z1 uintptr
+ var z2 uintptr
+ var k int32
+
+ var pIdx uintptr
+ var p uintptr
+ var n1 int32
+ var v uintptr
+ var zStmt uintptr
+ var iMem int32
+ var pNext uintptr
+
+ var ppFrom uintptr
+ var pThis uintptr
+ pTab = uintptr(0)
+ pIndex = uintptr(0)
+ zName = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ *(*uintptr)(unsafe.Pointer(bp + 128)) = uintptr(0)
+ nExtra = 0
+ *(*uintptr)(unsafe.Pointer(bp + 248)) = uintptr(0)
+ pPk = uintptr(0)
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __1
+ }
+ goto exit_create_index
+__1:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) == PARSE_MODE_DECLARE_VTAB && int32(idxType) != SQLITE_IDXTYPE_PRIMARYKEY) {
+ goto __2
+ }
+ goto exit_create_index
+__2:
+ ;
+ if !(SQLITE_OK != Xsqlite3ReadSchema(tls, pParse)) {
+ goto __3
+ }
+ goto exit_create_index
+__3:
+ ;
+ if !(Xsqlite3HasExplicitNulls(tls, pParse, pList) != 0) {
+ goto __4
+ }
+ goto exit_create_index
+__4:
+ ;
+ if !(pTblName != uintptr(0)) {
+ goto __5
+ }
+
+ iDb = Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp+128)
+ if !(iDb < 0) {
+ goto __7
+ }
+ goto exit_create_index
+__7:
+ ;
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ goto __8
+ }
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTblName)
+ if !((*Token)(unsafe.Pointer(pName2)).Fn == uint32(0) && pTab != 0 && (*Table)(unsafe.Pointer(pTab)).FpSchema == (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema) {
+ goto __9
+ }
+ iDb = 1
+__9:
+ ;
+__8:
+ ;
+ Xsqlite3FixInit(tls, bp+136, pParse, iDb, ts+14216, *(*uintptr)(unsafe.Pointer(bp + 128)))
+ if !(Xsqlite3FixSrcList(tls, bp+136, pTblName) != 0) {
+ goto __10
+ }
+
+__10:
+ ;
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pTblName+8)
+
+ if !(pTab == uintptr(0)) {
+ goto __11
+ }
+ goto exit_create_index
+__11:
+ ;
+ if !(iDb == 1 && (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema != (*Table)(unsafe.Pointer(pTab)).FpSchema) {
+ goto __12
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14222,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_create_index
+__12:
+ ;
+ if !!((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __13
+ }
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+__13:
+ ;
+ goto __6
+__5:
+ ;
+ pTab = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if !!(pTab != 0) {
+ goto __14
+ }
+ goto exit_create_index
+__14:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+__6:
+ ;
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+
+ if !(Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+6784, 7) == 0 &&
+ int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0 &&
+ pTblName != uintptr(0)) {
+ goto __15
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14272, libc.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto exit_create_index
+__15:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __16
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14300, 0)
+ goto exit_create_index
+__16:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __17
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14325, 0)
+ goto exit_create_index
+__17:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp + 128)) != 0) {
+ goto __18
+ }
+ zName = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 128)))
+ if !(zName == uintptr(0)) {
+ goto __20
+ }
+ goto exit_create_index
+__20:
+ ;
+ if !(SQLITE_OK != Xsqlite3CheckObjectName(tls, pParse, zName, ts+14216, (*Table)(unsafe.Pointer(pTab)).FzName)) {
+ goto __21
+ }
+ goto exit_create_index
+__21:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __22
+ }
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ goto __23
+ }
+ if !(Xsqlite3FindTable(tls, db, zName, (*Db)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0)) {
+ goto __24
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14359, libc.VaList(bp+16, zName))
+ goto exit_create_index
+__24:
+ ;
+__23:
+ ;
+ if !(Xsqlite3FindIndex(tls, db, zName, (*Db)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0)) {
+ goto __25
+ }
+ if !!(ifNotExist != 0) {
+ goto __26
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14393, libc.VaList(bp+24, zName))
+ goto __27
+__26:
+ ;
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ sqlite3ForceNotReadOnly(tls, pParse)
+__27:
+ ;
+ goto exit_create_index
+__25:
+ ;
+__22:
+ ;
+ goto __19
+__18:
+ pLoop = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ n = 1
+__28:
+ if !(pLoop != 0) {
+ goto __30
+ }
+ goto __29
+__29:
+ pLoop = (*Index)(unsafe.Pointer(pLoop)).FpNext
+ n++
+ goto __28
+ goto __30
+__30:
+ ;
+ zName = Xsqlite3MPrintf(tls, db, ts+14417, libc.VaList(bp+32, (*Table)(unsafe.Pointer(pTab)).FzName, n))
+ if !(zName == uintptr(0)) {
+ goto __31
+ }
+ goto exit_create_index
+__31:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL) {
+ goto __32
+ }
+ *(*int8)(unsafe.Pointer(zName + 7))++
+__32:
+ ;
+__19:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __33
+ }
+ zDb = (*Db)(unsafe.Pointer(pDb)).FzDbSName
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_INSERT, func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }(), uintptr(0), zDb) != 0) {
+ goto __34
+ }
+ goto exit_create_index
+__34:
+ ;
+ i = SQLITE_CREATE_INDEX
+ if !(!(0 != 0) && iDb == 1) {
+ goto __35
+ }
+ i = SQLITE_CREATE_TEMP_INDEX
+__35:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, i, zName, (*Table)(unsafe.Pointer(pTab)).FzName, zDb) != 0) {
+ goto __36
+ }
+ goto exit_create_index
+__36:
+ ;
+__33:
+ ;
+ if !(pList == uintptr(0)) {
+ goto __37
+ }
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*Table)(unsafe.Pointer(pTab)).FnCol)-1)*24
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_UNIQUE)
+ Xsqlite3TokenInit(tls, bp+232, (*Column)(unsafe.Pointer(pCol)).FzCnName)
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+232, 0))
+ if !(pList == uintptr(0)) {
+ goto __39
+ }
+ goto exit_create_index
+__39:
+ ;
+ Xsqlite3ExprListSetSortOrder(tls, pList, sortOrder, -1)
+ goto __38
+__37:
+ Xsqlite3ExprListCheckLength(tls, pParse, pList, ts+14216)
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __40
+ }
+ goto exit_create_index
+__40:
+ ;
+__38:
+ ;
+ i = 0
+__41:
+ if !(i < (*ExprList)(unsafe.Pointer(pList)).FnExpr) {
+ goto __43
+ }
+ pExpr = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).FpExpr
+
+ if !(int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLLATE) {
+ goto __44
+ }
+
+ nExtra = nExtra + (1 + Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8))))
+__44:
+ ;
+ goto __42
+__42:
+ i++
+ goto __41
+ goto __43
+__43:
+ ;
+ nName = Xsqlite3Strlen30(tls, zName)
+ if pPk != 0 {
+ nExtraCol = int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ } else {
+ nExtraCol = 1
+ }
+
+ pIndex = Xsqlite3AllocateIndexObject(tls, db, int16((*ExprList)(unsafe.Pointer(pList)).FnExpr+nExtraCol),
+ nName+nExtra+1, bp+248)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __45
+ }
+ goto exit_create_index
+__45:
+ ;
+ (*Index)(unsafe.Pointer(pIndex)).FzName = *(*uintptr)(unsafe.Pointer(bp + 248))
+ *(*uintptr)(unsafe.Pointer(bp + 248)) += uintptr(nName + 1)
+ libc.X__builtin___memcpy_chk(tls, (*Index)(unsafe.Pointer(pIndex)).FzName, zName, uint64(nName+1), libc.X__builtin_object_size(tls, (*Index)(unsafe.Pointer(pIndex)).FzName, 0))
+ (*Index)(unsafe.Pointer(pIndex)).FpTable = pTab
+ (*Index)(unsafe.Pointer(pIndex)).FonError = U8(onError)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(libc.Bool32(onError != OE_None)), 3, 0x8)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(idxType), 0, 0x3)
+ (*Index)(unsafe.Pointer(pIndex)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ (*Index)(unsafe.Pointer(pIndex)).FnKeyCol = U16((*ExprList)(unsafe.Pointer(pList)).FnExpr)
+ if !(pPIWhere != 0) {
+ goto __46
+ }
+ Xsqlite3ResolveSelfReference(tls, pParse, pTab, NC_PartIdx, pPIWhere, uintptr(0))
+ (*Index)(unsafe.Pointer(pIndex)).FpPartIdxWhere = pPIWhere
+ pPIWhere = uintptr(0)
+__46:
+ ;
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) >= 4) {
+ goto __47
+ }
+ sortOrderMask = -1
+ goto __48
+__47:
+ sortOrderMask = 0
+__48:
+ ;
+ pListItem = pList + 8
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __49
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FaColExpr = pList
+ pList = uintptr(0)
+__49:
+ ;
+ i = 0
+__50:
+ if !(i < int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol)) {
+ goto __52
+ }
+
+ sqlite3StringToId(tls, (*ExprList_item)(unsafe.Pointer(pListItem)).FpExpr)
+ Xsqlite3ResolveSelfReference(tls, pParse, pTab, NC_IdxExpr, (*ExprList_item)(unsafe.Pointer(pListItem)).FpExpr, uintptr(0))
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __53
+ }
+ goto exit_create_index
+__53:
+ ;
+ pCExpr = Xsqlite3ExprSkipCollate(tls, (*ExprList_item)(unsafe.Pointer(pListItem)).FpExpr)
+ if !(int32((*Expr)(unsafe.Pointer(pCExpr)).Fop) != TK_COLUMN) {
+ goto __54
+ }
+ if !(pTab == (*Parse)(unsafe.Pointer(pParse)).FpNewTable) {
+ goto __56
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14440, 0)
+ goto exit_create_index
+__56:
+ ;
+ if !((*Index)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0)) {
+ goto __57
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FaColExpr = pList
+ pList = uintptr(0)
+__57:
+ ;
+ j = -2
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(-2)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 3, 0x8)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 11, 0x800)
+ goto __55
+__54:
+ j = int32((*Expr)(unsafe.Pointer(pCExpr)).FiColumn)
+
+ if !(j < 0) {
+ goto __58
+ }
+ j = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ goto __59
+__58:
+ if !(int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*24 + 8))&0xf>>0) == 0) {
+ goto __60
+ }
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 3, 0x8)
+__60:
+ ;
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __61
+ }
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 10, 0x400)
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 11, 0x800)
+__61:
+ ;
+__59:
+ ;
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = I16(j)
+__55:
+ ;
+ zColl = uintptr(0)
+ if !(int32((*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pListItem)).FpExpr)).Fop) == TK_COLLATE) {
+ goto __62
+ }
+
+ zColl = *(*uintptr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pListItem)).FpExpr + 8))
+ nColl = Xsqlite3Strlen30(tls, zColl) + 1
+
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp + 248)), zColl, uint64(nColl), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp + 248)), 0))
+ zColl = *(*uintptr)(unsafe.Pointer(bp + 248))
+ *(*uintptr)(unsafe.Pointer(bp + 248)) += uintptr(nColl)
+ nExtra = nExtra - nColl
+ goto __63
+__62:
+ if !(j >= 0) {
+ goto __64
+ }
+ zColl = Xsqlite3ColumnColl(tls, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)
+__64:
+ ;
+__63:
+ ;
+ if !!(zColl != 0) {
+ goto __65
+ }
+ zColl = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+__65:
+ ;
+ if !(!(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) && !(Xsqlite3LocateCollSeq(tls, pParse, zColl) != 0)) {
+ goto __66
+ }
+ goto exit_create_index
+__66:
+ ;
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8)) = zColl
+ requestedSortOrder = int32((*ExprList_item)(unsafe.Pointer(pListItem)).Ffg.FsortFlags) & sortOrderMask
+ *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(i))) = U8(requestedSortOrder)
+ goto __51
+__51:
+ i++
+ pListItem += 32
+ goto __50
+ goto __52
+__52:
+ ;
+ if !(pPk != 0) {
+ goto __67
+ }
+ j = 0
+__69:
+ if !(j < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)) {
+ goto __71
+ }
+ x = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2)))
+
+ if !(isDupColumn(tls, pIndex, int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol), pPk, j) != 0) {
+ goto __72
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FnColumn--
+ goto __73
+__72:
+ ;
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = I16(x)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(j)*8))
+ *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(i))) = *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaSortOrder + uintptr(j)))
+ i++
+__73:
+ ;
+ goto __70
+__70:
+ j++
+ goto __69
+ goto __71
+__71:
+ ;
+ goto __68
+__67:
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(-1)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8)) = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+__68:
+ ;
+ Xsqlite3DefaultRowEst(tls, pIndex)
+ if !((*Parse)(unsafe.Pointer(pParse)).FpNewTable == uintptr(0)) {
+ goto __74
+ }
+ estimateIndexWidth(tls, pIndex)
+__74:
+ ;
+ recomputeColumnsNotIndexed(tls, pIndex)
+ if !(pTblName != uintptr(0) && int32((*Index)(unsafe.Pointer(pIndex)).FnColumn) >= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __75
+ }
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(1), 5, 0x20)
+ j = 0
+__76:
+ if !(j < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __78
+ }
+ if !(j == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __79
+ }
+ goto __77
+__79:
+ ;
+ if !(int32(Xsqlite3TableColumnToIndex(tls, pIndex, int16(j))) >= 0) {
+ goto __80
+ }
+ goto __77
+__80:
+ ;
+ libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(0), 5, 0x20)
+ goto __78
+ goto __77
+__77:
+ j++
+ goto __76
+ goto __78
+__78:
+ ;
+__75:
+ ;
+ if !(pTab == (*Parse)(unsafe.Pointer(pParse)).FpNewTable) {
+ goto __81
+ }
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__82:
+ if !(pIdx != 0) {
+ goto __84
+ }
+
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) != int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol)) {
+ goto __85
+ }
+ goto __83
+__85:
+ ;
+ k = 0
+__86:
+ if !(k < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)) {
+ goto __88
+ }
+
+ if !(int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(k)*2))) != int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(k)*2)))) {
+ goto __89
+ }
+ goto __88
+__89:
+ ;
+ z1 = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(k)*8))
+ z2 = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(k)*8))
+ if !(Xsqlite3StrICmp(tls, z1, z2) != 0) {
+ goto __90
+ }
+ goto __88
+__90:
+ ;
+ goto __87
+__87:
+ k++
+ goto __86
+ goto __88
+__88:
+ ;
+ if !(k == int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)) {
+ goto __91
+ }
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) != int32((*Index)(unsafe.Pointer(pIndex)).FonError)) {
+ goto __92
+ }
+
+ if !!(int32((*Index)(unsafe.Pointer(pIdx)).FonError) == OE_Default || int32((*Index)(unsafe.Pointer(pIndex)).FonError) == OE_Default) {
+ goto __93
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14501, libc.VaList(bp+48, 0))
+__93:
+ ;
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) == OE_Default) {
+ goto __94
+ }
+ (*Index)(unsafe.Pointer(pIdx)).FonError = (*Index)(unsafe.Pointer(pIndex)).FonError
+__94:
+ ;
+__92:
+ ;
+ if !(int32(idxType) == SQLITE_IDXTYPE_PRIMARYKEY) {
+ goto __95
+ }
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(idxType), 0, 0x3)
+__95:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __96
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FpNext = (*Parse)(unsafe.Pointer(pParse)).FpNewIndex
+ (*Parse)(unsafe.Pointer(pParse)).FpNewIndex = pIndex
+ pIndex = uintptr(0)
+__96:
+ ;
+ goto exit_create_index
+__91:
+ ;
+ goto __83
+__83:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __82
+ goto __84
+__84:
+ ;
+__81:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __97
+ }
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0) {
+ goto __98
+ }
+
+ if !(pTblName != uintptr(0)) {
+ goto __100
+ }
+ (*Index)(unsafe.Pointer(pIndex)).Ftnum = (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum
+ if !(Xsqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0) {
+ goto __101
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14543, 0)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = Xsqlite3CorruptError(tls, 121835)
+ goto exit_create_index
+__101:
+ ;
+__100:
+ ;
+ p = Xsqlite3HashInsert(tls, (*Index)(unsafe.Pointer(pIndex)).FpSchema+32,
+ (*Index)(unsafe.Pointer(pIndex)).FzName, pIndex)
+ if !(p != 0) {
+ goto __102
+ }
+
+ Xsqlite3OomFault(tls, db)
+ goto exit_create_index
+__102:
+ ;
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+ goto __99
+__98:
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) || pTblName != uintptr(0)) {
+ goto __103
+ }
+ iMem = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __104
+ }
+ goto exit_create_index
+__104:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
+
+ (*Index)(unsafe.Pointer(pIndex)).Ftnum = Pgno(Xsqlite3VdbeAddOp0(tls, v, OP_Noop))
+ Xsqlite3VdbeAddOp3(tls, v, OP_CreateBtree, iDb, iMem, BTREE_BLOBKEY)
+
+ if !(pStart != 0) {
+ goto __105
+ }
+ n1 = int32(uint32(int32((int64((*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64((*Token)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)))).Fz))/1)) + (*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fn)
+ if !(int32(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)))).Fz + uintptr(n1-1)))) == ';') {
+ goto __107
+ }
+ n1--
+__107:
+ ;
+ zStmt = Xsqlite3MPrintf(tls, db, ts+14560,
+ libc.VaList(bp+56, func() uintptr {
+ if onError == OE_None {
+ return ts + 1547
+ }
+ return ts + 14580
+ }(), n1, (*Token)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)))).Fz))
+ goto __106
+__105:
+ zStmt = uintptr(0)
+__106:
+ ;
+ Xsqlite3NestedParse(tls, pParse,
+ ts+14588,
+ libc.VaList(bp+80, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName,
+ (*Index)(unsafe.Pointer(pIndex)).FzName,
+ (*Table)(unsafe.Pointer(pTab)).FzName,
+ iMem,
+ zStmt))
+ Xsqlite3DbFree(tls, db, zStmt)
+
+ if !(pTblName != 0) {
+ goto __108
+ }
+ sqlite3RefillIndex(tls, pParse, pIndex, iMem)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
+ Xsqlite3MPrintf(tls, db, ts+14647, libc.VaList(bp+120, (*Index)(unsafe.Pointer(pIndex)).FzName)), uint16(0))
+ Xsqlite3VdbeAddOp2(tls, v, OP_Expire, 0, 1)
+__108:
+ ;
+ Xsqlite3VdbeJumpHere(tls, v, int32((*Index)(unsafe.Pointer(pIndex)).Ftnum))
+__103:
+ ;
+__99:
+ ;
+__97:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 || pTblName == uintptr(0)) {
+ goto __109
+ }
+ (*Index)(unsafe.Pointer(pIndex)).FpNext = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ (*Table)(unsafe.Pointer(pTab)).FpIndex = pIndex
+ pIndex = uintptr(0)
+ goto __110
+__109:
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __111
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FpNewIndex = pIndex
+ pIndex = uintptr(0)
+__111:
+ ;
+__110:
+ ;
+exit_create_index:
+ if !(pIndex != 0) {
+ goto __112
+ }
+ Xsqlite3FreeIndex(tls, db, pIndex)
+__112:
+ ;
+ if !(pTab != 0) {
+ goto __113
+ }
+ ppFrom = pTab + 16
+__114:
+ if !(libc.AssignUintptr(&pThis, *(*uintptr)(unsafe.Pointer(ppFrom))) != uintptr(0)) {
+ goto __116
+ }
+ if !(int32((*Index)(unsafe.Pointer(pThis)).FonError) != OE_Replace) {
+ goto __117
+ }
+ goto __115
+__117:
+ ;
+__118:
+ if !(libc.AssignUintptr(&pNext, (*Index)(unsafe.Pointer(pThis)).FpNext) != uintptr(0) && int32((*Index)(unsafe.Pointer(pNext)).FonError) != OE_Replace) {
+ goto __119
+ }
+ *(*uintptr)(unsafe.Pointer(ppFrom)) = pNext
+ (*Index)(unsafe.Pointer(pThis)).FpNext = (*Index)(unsafe.Pointer(pNext)).FpNext
+ (*Index)(unsafe.Pointer(pNext)).FpNext = pThis
+ ppFrom = pNext + 40
+ goto __118
+__119:
+ ;
+ goto __116
+ goto __115
+__115:
+ ppFrom = pThis + 40
+ goto __114
+ goto __116
+__116:
+ ;
+__113:
+ ;
+ Xsqlite3ExprDelete(tls, db, pPIWhere)
+ Xsqlite3ExprListDelete(tls, db, pList)
+ Xsqlite3SrcListDelete(tls, db, pTblName)
+ Xsqlite3DbFree(tls, db, zName)
+}
+
+// Fill the Index.aiRowEst[] array with default information - information
+// to be used when we have not run the ANALYZE command.
+//
+// aiRowEst[0] is supposed to contain the number of elements in the index.
+// Since we do not know, guess 1 million. aiRowEst[1] is an estimate of the
+// number of rows in the table that match any particular value of the
+// first column of the index. aiRowEst[2] is an estimate of the number
+// of rows that match any particular combination of the first 2 columns
+// of the index. And so forth. It must always be the case that
+//
+// aiRowEst[N]<=aiRowEst[N-1]
+// aiRowEst[N]>=1
+//
+// Apart from that, we have little to go on besides intuition as to
+// how aiRowEst[] should be initialized. The numbers generated here
+// are based on typical values found in actual indices.
+func Xsqlite3DefaultRowEst(tls *libc.TLS, pIdx uintptr) {
+ var a uintptr = (*Index)(unsafe.Pointer(pIdx)).FaiRowLogEst
+ var x LogEst
+ var nCopy int32 = func() int32 {
+ if int32(uint64(unsafe.Sizeof(aVal))/uint64(unsafe.Sizeof(LogEst(0)))) < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) {
+ return int32(uint64(unsafe.Sizeof(aVal)) / uint64(unsafe.Sizeof(LogEst(0))))
+ }
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ }()
+ var i int32
+
+ x = (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FnRowLogEst
+
+ if int32(x) < 99 {
+ (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FnRowLogEst = libc.AssignInt16(&x, int16(99))
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != uintptr(0) {
+ x = int16(int32(x) - 10)
+ }
+ *(*LogEst)(unsafe.Pointer(a)) = x
+
+ libc.X__builtin___memcpy_chk(tls, a+1*2, uintptr(unsafe.Pointer(&aVal)), uint64(nCopy)*uint64(unsafe.Sizeof(LogEst(0))), libc.X__builtin_object_size(tls, a+1*2, 0))
+ for i = nCopy + 1; i <= int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); i++ {
+ *(*LogEst)(unsafe.Pointer(a + uintptr(i)*2)) = int16(23)
+ }
+
+ if int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None {
+ *(*LogEst)(unsafe.Pointer(a + uintptr((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)*2)) = int16(0)
+ }
+}
+
+var aVal = [5]LogEst{int16(33), int16(32), int16(30), int16(28), int16(26)}
+
+// This routine will drop an existing named index. This routine
+// implements the DROP INDEX statement.
+func Xsqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists int32) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pIndex uintptr
+ var v uintptr
+ var db uintptr
+ var iDb int32
+ var code int32
+ var pTab uintptr
+ var zDb uintptr
+ var zTab uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto exit_drop_index
+__1:
+ ;
+ if !(SQLITE_OK != Xsqlite3ReadSchema(tls, pParse)) {
+ goto __2
+ }
+ goto exit_drop_index
+__2:
+ ;
+ pIndex = Xsqlite3FindIndex(tls, db, (*SrcItem)(unsafe.Pointer(pName+8)).FzName, (*SrcItem)(unsafe.Pointer(pName+8)).FzDatabase)
+ if !(pIndex == uintptr(0)) {
+ goto __3
+ }
+ if !!(ifExists != 0) {
+ goto __4
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14674, libc.VaList(bp, pName+8))
+ goto __5
+__4:
+ Xsqlite3CodeVerifyNamedSchema(tls, pParse, (*SrcItem)(unsafe.Pointer(pName+8)).FzDatabase)
+ sqlite3ForceNotReadOnly(tls, pParse)
+__5:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ goto exit_drop_index
+__3:
+ ;
+ if !(int32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0) != SQLITE_IDXTYPE_APPDEF) {
+ goto __6
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14692, libc.VaList(bp+8, 0))
+ goto exit_drop_index
+__6:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Index)(unsafe.Pointer(pIndex)).FpSchema)
+
+ code = SQLITE_DROP_INDEX
+ pTab = (*Index)(unsafe.Pointer(pIndex)).FpTable
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ zTab = func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }()
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_DELETE, zTab, uintptr(0), zDb) != 0) {
+ goto __7
+ }
+ goto exit_drop_index
+__7:
+ ;
+ if !(!(0 != 0) && iDb == 1) {
+ goto __8
+ }
+ code = SQLITE_DROP_TEMP_INDEX
+__8:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, code, (*Index)(unsafe.Pointer(pIndex)).FzName, (*Table)(unsafe.Pointer(pTab)).FzName, zDb) != 0) {
+ goto __9
+ }
+ goto exit_drop_index
+__9:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v != 0) {
+ goto __10
+ }
+ Xsqlite3BeginWriteOperation(tls, pParse, 1, iDb)
+ Xsqlite3NestedParse(tls, pParse,
+ ts+14765,
+ libc.VaList(bp+16, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, (*Index)(unsafe.Pointer(pIndex)).FzName))
+ sqlite3ClearStatTables(tls, pParse, iDb, ts+11891, (*Index)(unsafe.Pointer(pIndex)).FzName)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ destroyRootPage(tls, pParse, int32((*Index)(unsafe.Pointer(pIndex)).Ftnum), iDb)
+ Xsqlite3VdbeAddOp4(tls, v, OP_DropIndex, iDb, 0, 0, (*Index)(unsafe.Pointer(pIndex)).FzName, 0)
+__10:
+ ;
+exit_drop_index:
+ Xsqlite3SrcListDelete(tls, db, pName)
+}
+
+// pArray is a pointer to an array of objects. Each object in the
+// array is szEntry bytes in size. This routine uses sqlite3DbRealloc()
+// to extend the array so that there is space for a new object at the end.
+//
+// When this function is called, *pnEntry contains the current size of
+// the array (in entries - so the allocation is ((*pnEntry) * szEntry) bytes
+// in total).
+//
+// If the realloc() is successful (i.e. if no OOM condition occurs), the
+// space allocated for the new object is zeroed, *pnEntry updated to
+// reflect the new size of the array and a pointer to the new allocation
+// returned. *pIdx is set to the index of the new array entry in this case.
+//
+// Otherwise, if the realloc() fails, *pIdx is set to -1, *pnEntry remains
+// unchanged and a copy of pArray returned.
+func Xsqlite3ArrayAllocate(tls *libc.TLS, db uintptr, pArray uintptr, szEntry int32, pnEntry uintptr, pIdx uintptr) uintptr {
+ var z uintptr
+ var n Sqlite3_int64 = Sqlite3_int64(libc.AssignPtrInt32(pIdx, *(*int32)(unsafe.Pointer(pnEntry))))
+ if n&(n-int64(1)) == int64(0) {
+ var sz Sqlite3_int64
+ if n == int64(0) {
+ sz = int64(1)
+ } else {
+ sz = int64(2) * n
+ }
+ var pNew uintptr = Xsqlite3DbRealloc(tls, db, pArray, uint64(sz*Sqlite3_int64(szEntry)))
+ if pNew == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pIdx)) = -1
+ return pArray
+ }
+ pArray = pNew
+ }
+ z = pArray
+ libc.X__builtin___memset_chk(tls, z+uintptr(n*Sqlite3_int64(szEntry)), 0, uint64(szEntry), libc.X__builtin_object_size(tls, z+uintptr(n*Sqlite3_int64(szEntry)), 0))
+ *(*int32)(unsafe.Pointer(pnEntry))++
+ return pArray
+}
+
+// Append a new element to the given IdList. Create a new IdList if
+// need be.
+//
+// A new IdList is returned, or NULL if malloc() fails.
+func Xsqlite3IdListAppend(tls *libc.TLS, pParse uintptr, pList uintptr, pToken uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+ if pList == uintptr(0) {
+ pList = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(IdList{})))
+ if pList == uintptr(0) {
+ return uintptr(0)
+ }
+ } else {
+ var pNew uintptr
+ pNew = Xsqlite3DbRealloc(tls, db, pList,
+ uint64(unsafe.Sizeof(IdList{}))+uint64((*IdList)(unsafe.Pointer(pList)).FnId)*uint64(unsafe.Sizeof([1]IdList_item{})))
+ if pNew == uintptr(0) {
+ Xsqlite3IdListDelete(tls, db, pList)
+ return uintptr(0)
+ }
+ pList = pNew
+ }
+ i = libc.PostIncInt32(&(*IdList)(unsafe.Pointer(pList)).FnId, 1)
+ (*IdList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*16)).FzName = Xsqlite3NameFromToken(tls, db, pToken)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && (*IdList_item)(unsafe.Pointer(pList+8+uintptr(i)*16)).FzName != 0 {
+ Xsqlite3RenameTokenMap(tls, pParse, (*IdList_item)(unsafe.Pointer(pList+8+uintptr(i)*16)).FzName, pToken)
+ }
+ return pList
+}
+
+// Delete an IdList.
+func Xsqlite3IdListDelete(tls *libc.TLS, db uintptr, pList uintptr) {
+ var i int32
+
+ if pList == uintptr(0) {
+ return
+ }
+
+ for i = 0; i < (*IdList)(unsafe.Pointer(pList)).FnId; i++ {
+ Xsqlite3DbFree(tls, db, (*IdList_item)(unsafe.Pointer(pList+8+uintptr(i)*16)).FzName)
+ }
+ Xsqlite3DbNNFreeNN(tls, db, pList)
+}
+
+// Return the index in pList of the identifier named zId. Return -1
+// if not found.
+func Xsqlite3IdListIndex(tls *libc.TLS, pList uintptr, zName uintptr) int32 {
+ var i int32
+
+ for i = 0; i < (*IdList)(unsafe.Pointer(pList)).FnId; i++ {
+ if Xsqlite3StrICmp(tls, (*IdList_item)(unsafe.Pointer(pList+8+uintptr(i)*16)).FzName, zName) == 0 {
+ return i
+ }
+ }
+ return -1
+}
+
+// Expand the space allocated for the given SrcList object by
+// creating nExtra new slots beginning at iStart. iStart is zero based.
+// New slots are zeroed.
+//
+// For example, suppose a SrcList initially contains two entries: A,B.
+// To append 3 new entries onto the end, do this:
+//
+// sqlite3SrcListEnlarge(db, pSrclist, 3, 2);
+//
+// After the call above it would contain: A, B, nil, nil, nil.
+// If the iStart argument had been 1 instead of 2, then the result
+// would have been: A, nil, nil, nil, B. To prepend the new slots,
+// the iStart value would be 0. The result then would
+// be: nil, nil, nil, A, B.
+//
+// If a memory allocation fails or the SrcList becomes too large, leave
+// the original SrcList unchanged, return NULL, and leave an error message
+// in pParse.
+func Xsqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra int32, iStart int32) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var i int32
+
+ if U32((*SrcList)(unsafe.Pointer(pSrc)).FnSrc)+U32(nExtra) > (*SrcList)(unsafe.Pointer(pSrc)).FnAlloc {
+ var pNew uintptr
+ var nAlloc Sqlite3_int64 = int64(2)*Sqlite3_int64((*SrcList)(unsafe.Pointer(pSrc)).FnSrc) + Sqlite3_int64(nExtra)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= SQLITE_MAX_SRCLIST {
+ Xsqlite3ErrorMsg(tls, pParse, ts+14825,
+ libc.VaList(bp, SQLITE_MAX_SRCLIST))
+ return uintptr(0)
+ }
+ if nAlloc > int64(SQLITE_MAX_SRCLIST) {
+ nAlloc = int64(SQLITE_MAX_SRCLIST)
+ }
+ pNew = Xsqlite3DbRealloc(tls, db, pSrc,
+ uint64(unsafe.Sizeof(SrcList{}))+uint64(nAlloc-int64(1))*uint64(unsafe.Sizeof(SrcItem{})))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ pSrc = pNew
+ (*SrcList)(unsafe.Pointer(pSrc)).FnAlloc = U32(nAlloc)
+ }
+
+ for i = (*SrcList)(unsafe.Pointer(pSrc)).FnSrc - 1; i >= iStart; i-- {
+ *(*SrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i+nExtra)*104)) = *(*SrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))
+ }
+ *(*int32)(unsafe.Pointer(pSrc)) += nExtra
+
+ libc.X__builtin___memset_chk(tls, pSrc+8+uintptr(iStart)*104, 0, uint64(unsafe.Sizeof(SrcItem{}))*uint64(nExtra), libc.X__builtin_object_size(tls, pSrc+8+uintptr(iStart)*104, 0))
+ for i = iStart; i < iStart+nExtra; i++ {
+ (*SrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104)).FiCursor = -1
+ }
+
+ return pSrc
+}
+
+// Append a new table name to the given SrcList. Create a new SrcList if
+// need be. A new entry is created in the SrcList even if pTable is NULL.
+//
+// A SrcList is returned, or NULL if there is an OOM error or if the
+// SrcList grows to large. The returned
+// SrcList might be the same as the SrcList that was input or it might be
+// a new one. If an OOM error does occurs, then the prior value of pList
+// that is input to this routine is automatically freed.
+//
+// If pDatabase is not null, it means that the table has an optional
+// database name prefix. Like this: "database.table". The pDatabase
+// points to the table name and the pTable points to the database name.
+// The SrcList.a[].zName field is filled with the table name which might
+// come from pTable (if pDatabase is NULL) or from pDatabase.
+// SrcList.a[].zDatabase is filled with the database name from pTable,
+// or with NULL if no database is specified.
+//
+// In other words, if call like this:
+//
+// sqlite3SrcListAppend(D,A,B,0);
+//
+// Then B is a table name and the database name is unspecified. If called
+// like this:
+//
+// sqlite3SrcListAppend(D,A,B,C);
+//
+// Then C is the table name and B is the database name. If C is defined
+// then so is B. In other words, we never have a case where:
+//
+// sqlite3SrcListAppend(D,A,0,C);
+//
+// Both pTable and pDatabase are assumed to be quoted. They are dequoted
+// before being added to the SrcList.
+func Xsqlite3SrcListAppend(tls *libc.TLS, pParse uintptr, pList uintptr, pTable uintptr, pDatabase uintptr) uintptr {
+ var pItem uintptr
+ var db uintptr
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if pList == uintptr(0) {
+ pList = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(SrcList{})))
+ if pList == uintptr(0) {
+ return uintptr(0)
+ }
+ (*SrcList)(unsafe.Pointer(pList)).FnAlloc = U32(1)
+ (*SrcList)(unsafe.Pointer(pList)).FnSrc = 1
+ libc.X__builtin___memset_chk(tls, pList+8, 0, uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, pList+8, 0))
+ (*SrcItem)(unsafe.Pointer(pList + 8)).FiCursor = -1
+ } else {
+ var pNew uintptr = Xsqlite3SrcListEnlarge(tls, pParse, pList, 1, (*SrcList)(unsafe.Pointer(pList)).FnSrc)
+ if pNew == uintptr(0) {
+ Xsqlite3SrcListDelete(tls, db, pList)
+ return uintptr(0)
+ } else {
+ pList = pNew
+ }
+ }
+ pItem = pList + 8 + uintptr((*SrcList)(unsafe.Pointer(pList)).FnSrc-1)*104
+ if pDatabase != 0 && (*Token)(unsafe.Pointer(pDatabase)).Fz == uintptr(0) {
+ pDatabase = uintptr(0)
+ }
+ if pDatabase != 0 {
+ (*SrcItem)(unsafe.Pointer(pItem)).FzName = Xsqlite3NameFromToken(tls, db, pDatabase)
+ (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase = Xsqlite3NameFromToken(tls, db, pTable)
+ } else {
+ (*SrcItem)(unsafe.Pointer(pItem)).FzName = Xsqlite3NameFromToken(tls, db, pTable)
+ (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase = uintptr(0)
+ }
+ return pList
+}
+
+// Assign VdbeCursor index numbers to all tables in a SrcList
+func Xsqlite3SrcListAssignCursors(tls *libc.TLS, pParse uintptr, pList uintptr) {
+ var i int32
+ var pItem uintptr
+
+ if pList != 0 {
+ i = 0
+ pItem = pList + 8
+ __1:
+ if !(i < (*SrcList)(unsafe.Pointer(pList)).FnSrc) {
+ goto __3
+ }
+ {
+ if (*SrcItem)(unsafe.Pointer(pItem)).FiCursor >= 0 {
+ goto __2
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FiCursor = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 {
+ Xsqlite3SrcListAssignCursors(tls, pParse, (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpSrc)
+ }
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 104
+ goto __1
+ goto __3
+ __3:
+ }
+}
+
+// Delete an entire SrcList including all its substructure.
+func Xsqlite3SrcListDelete(tls *libc.TLS, db uintptr, pList uintptr) {
+ var i int32
+ var pItem uintptr
+
+ if pList == uintptr(0) {
+ return
+ }
+ pItem = pList + 8
+ i = 0
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pList)).FnSrc) {
+ goto __3
+ }
+ {
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase)
+ }
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzName != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FzName)
+ }
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzAlias != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FzAlias)
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2>>1)) != 0 {
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 88)))
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x4>>2)) != 0 {
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 88)))
+ }
+ Xsqlite3DeleteTable(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FpTab)
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 {
+ Xsqlite3SelectDelete(tls, db, (*SrcItem)(unsafe.Pointer(pItem)).FpSelect)
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x400>>10)) != 0 {
+ Xsqlite3IdListDelete(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 72)))
+ } else if *(*uintptr)(unsafe.Pointer(pItem + 72)) != 0 {
+ Xsqlite3ExprDelete(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 72)))
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 104
+ goto __1
+ goto __3
+__3:
+ ;
+ Xsqlite3DbNNFreeNN(tls, db, pList)
+}
+
+// This routine is called by the parser to add a new term to the
+// end of a growing FROM clause. The "p" parameter is the part of
+// the FROM clause that has already been constructed. "p" is NULL
+// if this is the first term of the FROM clause. pTable and pDatabase
+// are the name of the table and database named in the FROM clause term.
+// pDatabase is NULL if the database name qualifier is missing - the
+// usual case. If the term has an alias, then pAlias points to the
+// alias token. If the term is a subquery, then pSubquery is the
+// SELECT statement that the subquery encodes. The pTable and
+// pDatabase parameters are NULL for subqueries. The pOn and pUsing
+// parameters are the content of the ON and USING clauses.
+//
+// Return a new SrcList which encodes is the FROM with the new
+// term added.
+func Xsqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTable uintptr, pDatabase uintptr, pAlias uintptr, pSubquery uintptr, pOnUsing uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pItem uintptr
+ var db uintptr
+ var pToken uintptr
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if !(!(p != 0) && pOnUsing != uintptr(0) && ((*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0)) {
+ goto __1
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+14861,
+ libc.VaList(bp, func() uintptr {
+ if (*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 {
+ return ts + 14897
+ }
+ return ts + 14900
+ }()))
+ goto append_from_error
+__1:
+ ;
+ p = Xsqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase)
+ if !(p == uintptr(0)) {
+ goto __2
+ }
+ goto append_from_error
+__2:
+ ;
+ pItem = p + 8 + uintptr((*SrcList)(unsafe.Pointer(p)).FnSrc-1)*104
+
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && (*SrcItem)(unsafe.Pointer(pItem)).FzName != 0) {
+ goto __3
+ }
+ if pDatabase != 0 && (*Token)(unsafe.Pointer(pDatabase)).Fz != 0 {
+ pToken = pDatabase
+ } else {
+ pToken = pTable
+ }
+ Xsqlite3RenameTokenMap(tls, pParse, (*SrcItem)(unsafe.Pointer(pItem)).FzName, pToken)
+__3:
+ ;
+ if !((*Token)(unsafe.Pointer(pAlias)).Fn != 0) {
+ goto __4
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FzAlias = Xsqlite3NameFromToken(tls, db, pAlias)
+__4:
+ ;
+ if !(pSubquery != 0) {
+ goto __5
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FpSelect = pSubquery
+ if !((*Select)(unsafe.Pointer(pSubquery)).FselFlags&U32(SF_NestedFrom) != 0) {
+ goto __6
+ }
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 13, 0x2000)
+__6:
+ ;
+__5:
+ ;
+ if !(pOnUsing == uintptr(0)) {
+ goto __7
+ }
+ *(*uintptr)(unsafe.Pointer(pItem + 72)) = uintptr(0)
+ goto __8
+__7:
+ if !((*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) {
+ goto __9
+ }
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 10, 0x400)
+ *(*uintptr)(unsafe.Pointer(pItem + 72)) = (*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing
+ goto __10
+__9:
+ *(*uintptr)(unsafe.Pointer(pItem + 72)) = (*OnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn
+__10:
+ ;
+__8:
+ ;
+ return p
+
+append_from_error:
+ ;
+ Xsqlite3ClearOnOrUsing(tls, db, pOnUsing)
+ Xsqlite3SelectDelete(tls, db, pSubquery)
+ return uintptr(0)
+}
+
+// Add an INDEXED BY or NOT INDEXED clause to the most recently added
+// element of the source-list passed as the second argument.
+func Xsqlite3SrcListIndexedBy(tls *libc.TLS, pParse uintptr, p uintptr, pIndexedBy uintptr) {
+ if p != 0 && (*Token)(unsafe.Pointer(pIndexedBy)).Fn > uint32(0) {
+ var pItem uintptr
+
+ pItem = p + 8 + uintptr((*SrcList)(unsafe.Pointer(p)).FnSrc-1)*104
+
+ if (*Token)(unsafe.Pointer(pIndexedBy)).Fn == uint32(1) && !(int32((*Token)(unsafe.Pointer(pIndexedBy)).Fz) != 0) {
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 0, 0x1)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pItem + 88)) = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pIndexedBy)
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 1, 0x2)
+
+ }
+ }
+}
+
+// Append the contents of SrcList p2 to SrcList p1 and return the resulting
+// SrcList. Or, if an error occurs, return NULL. In all cases, p1 and p2
+// are deleted by this function.
+func Xsqlite3SrcListAppendList(tls *libc.TLS, pParse uintptr, p1 uintptr, p2 uintptr) uintptr {
+ if p2 != 0 {
+ var pNew uintptr = Xsqlite3SrcListEnlarge(tls, pParse, p1, (*SrcList)(unsafe.Pointer(p2)).FnSrc, 1)
+ if pNew == uintptr(0) {
+ Xsqlite3SrcListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p2)
+ } else {
+ p1 = pNew
+ libc.X__builtin___memcpy_chk(tls, p1+8+1*104, p2+8, uint64((*SrcList)(unsafe.Pointer(p2)).FnSrc)*uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, p1+8+1*104, 0))
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p2)
+ *(*U8)(unsafe.Pointer(p1 + 8 + 60)) |= U8(JT_LTORJ & int32((*SrcItem)(unsafe.Pointer(p1+8+1*104)).Ffg.Fjointype))
+ }
+ }
+ return p1
+}
+
+// Add the list of function arguments to the SrcList entry for a
+// table-valued-function.
+func Xsqlite3SrcListFuncArgs(tls *libc.TLS, pParse uintptr, p uintptr, pList uintptr) {
+ if p != 0 {
+ var pItem uintptr = p + 8 + uintptr((*SrcList)(unsafe.Pointer(p)).FnSrc-1)*104
+
+ *(*uintptr)(unsafe.Pointer(pItem + 88)) = pList
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 2, 0x4)
+ } else {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pList)
+ }
+}
+
+// When building up a FROM clause in the parser, the join operator
+// is initially attached to the left operand. But the code generator
+// expects the join operator to be on the right operand. This routine
+// Shifts all join operators from left to right for an entire FROM
+// clause.
+//
+// Example: Suppose the join is like this:
+//
+// A natural cross join B
+//
+// The operator is "natural cross join". The A and B operands are stored
+// in p->a[0] and p->a[1], respectively. The parser initially stores the
+// operator with A. This routine shifts that operator over to B.
+//
+// Additional changes:
+//
+// - All tables to the left of the right-most RIGHT JOIN are tagged with
+// JT_LTORJ (mnemonic: Left Table Of Right Join) so that the
+// code generator can easily tell that the table is part of
+// the left operand of at least one RIGHT JOIN.
+func Xsqlite3SrcListShiftJoinType(tls *libc.TLS, pParse uintptr, p uintptr) {
+ _ = pParse
+ if p != 0 && (*SrcList)(unsafe.Pointer(p)).FnSrc > 1 {
+ var i int32 = (*SrcList)(unsafe.Pointer(p)).FnSrc - 1
+ var allFlags U8 = U8(0)
+ for __ccgo := true; __ccgo; __ccgo = libc.PreDecInt32(&i, 1) > 0 {
+ allFlags = U8(int32(allFlags) | int32(libc.AssignPtrUint8(p+8+uintptr(i)*104+60, (*SrcItem)(unsafe.Pointer(p+8+uintptr(i-1)*104)).Ffg.Fjointype)))
+ }
+ (*SrcItem)(unsafe.Pointer(p + 8)).Ffg.Fjointype = U8(0)
+
+ if int32(allFlags)&JT_RIGHT != 0 {
+ for i = (*SrcList)(unsafe.Pointer(p)).FnSrc - 1; i > 0 && int32((*SrcItem)(unsafe.Pointer(p+8+uintptr(i)*104)).Ffg.Fjointype)&JT_RIGHT == 0; i-- {
+ }
+ i--
+
+ for __ccgo1 := true; __ccgo1; __ccgo1 = libc.PreDecInt32(&i, 1) >= 0 {
+ *(*U8)(unsafe.Pointer(p + 8 + uintptr(i)*104 + 60)) |= U8(JT_LTORJ)
+ }
+ }
+ }
+}
+
+// Generate VDBE code for a BEGIN statement.
+func Xsqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) {
+ var db uintptr
+ var v uintptr
+ var i int32
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if Xsqlite3AuthCheck(tls, pParse, SQLITE_TRANSACTION, ts+14906, uintptr(0), uintptr(0)) != 0 {
+ return
+ }
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v != 0) {
+ return
+ }
+ if type1 != TK_DEFERRED {
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var eTxnType int32
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 && Xsqlite3BtreeIsReadonly(tls, pBt) != 0 {
+ eTxnType = 0
+ } else if type1 == TK_EXCLUSIVE {
+ eTxnType = 2
+ } else {
+ eTxnType = 1
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Transaction, i, eTxnType)
+ Xsqlite3VdbeUsesBtree(tls, v, i)
+ }
+ }
+ Xsqlite3VdbeAddOp0(tls, v, OP_AutoCommit)
+}
+
+// Generate VDBE code for a COMMIT or ROLLBACK statement.
+// Code for ROLLBACK is generated if eType==TK_ROLLBACK. Otherwise
+// code is generated for a COMMIT.
+func Xsqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) {
+ var v uintptr
+ var isRollback int32
+
+ isRollback = libc.Bool32(eType == TK_ROLLBACK)
+ if Xsqlite3AuthCheck(tls, pParse, SQLITE_TRANSACTION,
+ func() uintptr {
+ if isRollback != 0 {
+ return ts + 14912
+ }
+ return ts + 14921
+ }(), uintptr(0), uintptr(0)) != 0 {
+ return
+ }
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if v != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AutoCommit, 1, isRollback)
+ }
+}
+
+// This function is called by the parser when it parses a command to create,
+// release or rollback an SQL savepoint.
+func Xsqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) {
+ var zName uintptr = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pName)
+ if zName != 0 {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ if !(v != 0) || Xsqlite3AuthCheck(tls, pParse, SQLITE_SAVEPOINT, az[op], zName, uintptr(0)) != 0 {
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zName)
+ return
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_Savepoint, op, 0, 0, zName, -6)
+ }
+}
+
+var az = [3]uintptr{ts + 14906, ts + 14928, ts + 14912}
+
+// Make sure the TEMP database is open and available for use. Return
+// the number of errors. Leave any error messages in the pParse structure.
+func Xsqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpBt == uintptr(0) && !(int32((*Parse)(unsafe.Pointer(pParse)).Fexplain) != 0) {
+ var rc int32
+
+ rc = Xsqlite3BtreeOpen(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, flags)
+ if rc != SQLITE_OK {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+14936, 0)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = rc
+ return 1
+ }
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FpBt = *(*uintptr)(unsafe.Pointer(bp))
+
+ if SQLITE_NOMEM == Xsqlite3BtreeSetPageSize(tls, *(*uintptr)(unsafe.Pointer(bp)), (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize, 0, 0) {
+ Xsqlite3OomFault(tls, db)
+ return 1
+ }
+ }
+ return 0
+}
+
+var flags int32 = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_TEMP_DB
+
+func sqlite3CodeVerifySchemaAtToplevel(tls *libc.TLS, pToplevel uintptr, iDb int32) {
+ if libc.Bool32((*Parse)(unsafe.Pointer(pToplevel)).FcookieMask&(YDbMask(1)<<iDb) != YDbMask(0)) == 0 {
+ *(*YDbMask)(unsafe.Pointer(pToplevel + 124)) |= YDbMask(1) << iDb
+ if !(0 != 0) && iDb == 1 {
+ Xsqlite3OpenTempDatabase(tls, pToplevel)
+ }
+ }
+}
+
+func Xsqlite3CodeVerifySchema(tls *libc.TLS, pParse uintptr, iDb int32) {
+ sqlite3CodeVerifySchemaAtToplevel(tls, func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }(), iDb)
+}
+
+// If argument zDb is NULL, then call sqlite3CodeVerifySchema() for each
+// attached database. Otherwise, invoke it for the database named zDb only.
+func Xsqlite3CodeVerifyNamedSchema(tls *libc.TLS, pParse uintptr, zDb uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32
+ if (*Db)(unsafe.Pointer(pDb)).FpBt != 0 && (!(zDb != 0) || 0 == Xsqlite3StrICmp(tls, zDb, (*Db)(unsafe.Pointer(pDb)).FzDbSName)) {
+ Xsqlite3CodeVerifySchema(tls, pParse, i)
+ }
+ }
+}
+
+// Generate VDBE code that prepares for doing an operation that
+// might change the database.
+//
+// This routine starts a new transaction if we are not already within
+// a transaction. If we are already within a transaction, then a checkpoint
+// is set if the setStatement parameter is true. A checkpoint should
+// be set for operations that might fail (due to a constraint) part of
+// the way through and which will need to undo some writes without having to
+// rollback the whole transaction. For operations where all constraints
+// can be checked before any changes are made to the database, it is never
+// necessary to undo a write and the checkpoint should not be set.
+func Xsqlite3BeginWriteOperation(tls *libc.TLS, pParse uintptr, setStatement int32, iDb int32) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ sqlite3CodeVerifySchemaAtToplevel(tls, pToplevel, iDb)
+ *(*YDbMask)(unsafe.Pointer(pToplevel + 120)) |= YDbMask(1) << iDb
+ *(*U8)(unsafe.Pointer(pToplevel + 32)) |= U8(setStatement)
+}
+
+// Indicate that the statement currently under construction might write
+// more than one entry (example: deleting one row then inserting another,
+// inserting multiple rows in a table, or inserting a row and index entries.)
+// If an abort occurs after some of these writes have completed, then it will
+// be necessary to undo the completed writes.
+func Xsqlite3MultiWrite(tls *libc.TLS, pParse uintptr) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ (*Parse)(unsafe.Pointer(pToplevel)).FisMultiWrite = U8(1)
+}
+
+// The code generator calls this routine if is discovers that it is
+// possible to abort a statement prior to completion. In order to
+// perform this abort without corrupting the database, we need to make
+// sure that the statement is protected by a statement transaction.
+//
+// Technically, we only need to set the mayAbort flag if the
+// isMultiWrite flag was previously set. There is a time dependency
+// such that the abort must occur after the multiwrite. This makes
+// some statements involving the REPLACE conflict resolution algorithm
+// go a little faster. But taking advantage of this time dependency
+// makes it more difficult to prove that the code is correct (in
+// particular, it prevents us from writing an effective
+// implementation of sqlite3AssertMayAbort()) and so we have chosen
+// to take the safe route and skip the optimization.
+func Xsqlite3MayAbort(tls *libc.TLS, pParse uintptr) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ (*Parse)(unsafe.Pointer(pToplevel)).FmayAbort = U8(1)
+}
+
+// Code an OP_Halt that causes the vdbe to return an SQLITE_CONSTRAINT
+// error. The onError parameter determines which (if any) of the statement
+// and/or current transaction is rolled back.
+func Xsqlite3HaltConstraint(tls *libc.TLS, pParse uintptr, errCode int32, onError int32, p4 uintptr, p4type I8, p5Errmsg U8) {
+ var v uintptr
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+
+ if onError == OE_Abort {
+ Xsqlite3MayAbort(tls, pParse)
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_Halt, errCode, onError, 0, p4, int32(p4type))
+ Xsqlite3VdbeChangeP5(tls, v, uint16(p5Errmsg))
+}
+
+// Code an OP_Halt due to UNIQUE or PRIMARY KEY constraint violation.
+func Xsqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var zErr uintptr
+ var j int32
+
+ var pTab uintptr = (*Index)(unsafe.Pointer(pIdx)).FpTable
+
+ Xsqlite3StrAccumInit(tls, bp+8, (*Parse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0,
+ *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb + 136)))
+ if (*Index)(unsafe.Pointer(pIdx)).FaColExpr != 0 {
+ Xsqlite3_str_appendf(tls, bp+8, ts+15006, libc.VaList(bp, (*Index)(unsafe.Pointer(pIdx)).FzName))
+ } else {
+ for j = 0; j < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); j++ {
+ var zCol uintptr
+
+ zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*24)).FzCnName
+ if j != 0 {
+ Xsqlite3_str_append(tls, bp+8, ts+15017, 2)
+ }
+ Xsqlite3_str_appendall(tls, bp+8, (*Table)(unsafe.Pointer(pTab)).FzName)
+ Xsqlite3_str_append(tls, bp+8, ts+1560, 1)
+ Xsqlite3_str_appendall(tls, bp+8, zCol)
+ }
+ }
+ zErr = Xsqlite3StrAccumFinish(tls, bp+8)
+ Xsqlite3HaltConstraint(tls, pParse,
+ func() int32 {
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ return SQLITE_CONSTRAINT | int32(6)<<8
+ }
+ return SQLITE_CONSTRAINT | int32(8)<<8
+ }(),
+ onError, zErr, int8(-6), uint8(P5_ConstraintUnique))
+}
+
+// Code an OP_Halt due to non-unique rowid.
+func Xsqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var zMsg uintptr
+ var rc int32
+ if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) >= 0 {
+ zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+12464, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
+ (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*24)).FzCnName))
+ rc = SQLITE_CONSTRAINT | int32(6)<<8
+ } else {
+ zMsg = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+15020, libc.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
+ rc = SQLITE_CONSTRAINT | int32(10)<<8
+ }
+ Xsqlite3HaltConstraint(tls, pParse, rc, onError, zMsg, int8(-6),
+ uint8(P5_ConstraintUnique))
+}
+
+func collationMatch(tls *libc.TLS, zColl uintptr, pIndex uintptr) int32 {
+ var i int32
+
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIndex)).FnColumn); i++ {
+ var z uintptr = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8))
+
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2))) >= 0 && 0 == Xsqlite3StrICmp(tls, z, zColl) {
+ return 1
+ }
+ }
+ return 0
+}
+
+func reindexTable(tls *libc.TLS, pParse uintptr, pTab uintptr, zColl uintptr) {
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ var pIndex uintptr
+
+ for pIndex = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIndex != 0; pIndex = (*Index)(unsafe.Pointer(pIndex)).FpNext {
+ if zColl == uintptr(0) || collationMatch(tls, zColl, pIndex) != 0 {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ sqlite3RefillIndex(tls, pParse, pIndex, -1)
+ }
+ }
+ }
+}
+
+func reindexDatabases(tls *libc.TLS, pParse uintptr, zColl uintptr) {
+ var pDb uintptr
+ var iDb int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var k uintptr
+ var pTab uintptr
+
+ iDb = 0
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb
+__1:
+ if !(iDb < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __3
+ }
+ {
+ for k = (*Hash)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema + 8)).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ pTab = (*HashElem)(unsafe.Pointer(k)).Fdata
+ reindexTable(tls, pParse, pTab, zColl)
+ }
+
+ }
+ goto __2
+__2:
+ iDb++
+ pDb += 32
+ goto __1
+ goto __3
+__3:
+}
+
+// Generate code for the REINDEX command.
+//
+// REINDEX -- 1
+// REINDEX <collation> -- 2
+// REINDEX ?<database>.?<tablename> -- 3
+// REINDEX ?<database>.?<indexname> -- 4
+//
+// Form 1 causes all indices in all attached databases to be rebuilt.
+// Form 2 rebuilds all indices in all databases that use the named
+// collating function. Forms 3 and 4 rebuild the named index or all
+// indices associated with the named table.
+func Xsqlite3Reindex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pColl uintptr
+ var z uintptr
+ var zDb uintptr
+ var pTab uintptr
+ var pIndex uintptr
+ var iDb int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if SQLITE_OK != Xsqlite3ReadSchema(tls, pParse) {
+ return
+ }
+
+ if pName1 == uintptr(0) {
+ reindexDatabases(tls, pParse, uintptr(0))
+ return
+ } else if pName2 == uintptr(0) || (*Token)(unsafe.Pointer(pName2)).Fz == uintptr(0) {
+ var zColl uintptr
+
+ zColl = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pName1)
+ if !(zColl != 0) {
+ return
+ }
+ pColl = Xsqlite3FindCollSeq(tls, db, (*Sqlite3)(unsafe.Pointer(db)).Fenc, zColl, 0)
+ if pColl != 0 {
+ reindexDatabases(tls, pParse, zColl)
+ Xsqlite3DbFree(tls, db, zColl)
+ return
+ }
+ Xsqlite3DbFree(tls, db, zColl)
+ }
+ iDb = Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp)
+ if iDb < 0 {
+ return
+ }
+ z = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp)))
+ if z == uintptr(0) {
+ return
+ }
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ pTab = Xsqlite3FindTable(tls, db, z, zDb)
+ if pTab != 0 {
+ reindexTable(tls, pParse, pTab, uintptr(0))
+ Xsqlite3DbFree(tls, db, z)
+ return
+ }
+ pIndex = Xsqlite3FindIndex(tls, db, z, zDb)
+ Xsqlite3DbFree(tls, db, z)
+ if pIndex != 0 {
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ sqlite3RefillIndex(tls, pParse, pIndex, -1)
+ return
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+15029, 0)
+}
+
+// Return a KeyInfo structure that is appropriate for the given Index.
+//
+// The caller should invoke sqlite3KeyInfoUnref() on the returned object
+// when it has finished using it.
+func Xsqlite3KeyInfoOfIndex(tls *libc.TLS, pParse uintptr, pIdx uintptr) uintptr {
+ var i int32
+ var nCol int32 = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ var nKey int32 = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ var pKey uintptr
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return uintptr(0)
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ pKey = Xsqlite3KeyInfoAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, nKey, nCol-nKey)
+ } else {
+ pKey = Xsqlite3KeyInfoAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, nCol, 0)
+ }
+ if pKey != 0 {
+ for i = 0; i < nCol; i++ {
+ var zColl uintptr = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i)*8))
+ *(*uintptr)(unsafe.Pointer(pKey + 32 + uintptr(i)*8)) = func() uintptr {
+ if zColl == uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)) {
+ return uintptr(0)
+ }
+ return Xsqlite3LocateCollSeq(tls, pParse, zColl)
+ }()
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKey)).FaSortFlags + uintptr(i))) = *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i)))
+
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x100>>8) == 0 {
+ libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(1), 8, 0x100)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR | int32(2)<<8
+ }
+ Xsqlite3KeyInfoUnref(tls, pKey)
+ pKey = uintptr(0)
+ }
+ }
+ return pKey
+}
+
+// Create a new CTE object
+func Xsqlite3CteNew(tls *libc.TLS, pParse uintptr, pName uintptr, pArglist uintptr, pQuery uintptr, eM10d U8) uintptr {
+ var pNew uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Cte{})))
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ExprListDelete(tls, db, pArglist)
+ Xsqlite3SelectDelete(tls, db, pQuery)
+ } else {
+ (*Cte)(unsafe.Pointer(pNew)).FpSelect = pQuery
+ (*Cte)(unsafe.Pointer(pNew)).FpCols = pArglist
+ (*Cte)(unsafe.Pointer(pNew)).FzName = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pName)
+ (*Cte)(unsafe.Pointer(pNew)).FeM10d = eM10d
+ }
+ return pNew
+}
+
+func cteClear(tls *libc.TLS, db uintptr, pCte uintptr) {
+ Xsqlite3ExprListDelete(tls, db, (*Cte)(unsafe.Pointer(pCte)).FpCols)
+ Xsqlite3SelectDelete(tls, db, (*Cte)(unsafe.Pointer(pCte)).FpSelect)
+ Xsqlite3DbFree(tls, db, (*Cte)(unsafe.Pointer(pCte)).FzName)
+}
+
+// Free the contents of the CTE object passed as the second argument.
+func Xsqlite3CteDelete(tls *libc.TLS, db uintptr, pCte uintptr) {
+ cteClear(tls, db, pCte)
+ Xsqlite3DbFree(tls, db, pCte)
+}
+
+// This routine is invoked once per CTE by the parser while parsing a
+// WITH clause. The CTE described by teh third argument is added to
+// the WITH clause of the second argument. If the second argument is
+// NULL, then a new WITH argument is created.
+func Xsqlite3WithAdd(tls *libc.TLS, pParse uintptr, pWith uintptr, pCte uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pNew uintptr
+ var zName uintptr
+
+ if pCte == uintptr(0) {
+ return pWith
+ }
+
+ zName = (*Cte)(unsafe.Pointer(pCte)).FzName
+ if zName != 0 && pWith != 0 {
+ var i int32
+ for i = 0; i < (*With)(unsafe.Pointer(pWith)).FnCte; i++ {
+ if Xsqlite3StrICmp(tls, zName, (*Cte)(unsafe.Pointer(pWith+16+uintptr(i)*48)).FzName) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15075, libc.VaList(bp, zName))
+ }
+ }
+ }
+
+ if pWith != 0 {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(With{})) + uint64(unsafe.Sizeof(Cte{}))*uint64((*With)(unsafe.Pointer(pWith)).FnCte))
+ pNew = Xsqlite3DbRealloc(tls, db, pWith, uint64(nByte))
+ } else {
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(With{})))
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3CteDelete(tls, db, pCte)
+ pNew = pWith
+ } else {
+ *(*Cte)(unsafe.Pointer(pNew + 16 + uintptr(libc.PostIncInt32(&(*With)(unsafe.Pointer(pNew)).FnCte, 1))*48)) = *(*Cte)(unsafe.Pointer(pCte))
+ Xsqlite3DbFree(tls, db, pCte)
+ }
+
+ return pNew
+}
+
+// Free the contents of the With object passed as the second argument.
+func Xsqlite3WithDelete(tls *libc.TLS, db uintptr, pWith uintptr) {
+ if pWith != 0 {
+ var i int32
+ for i = 0; i < (*With)(unsafe.Pointer(pWith)).FnCte; i++ {
+ cteClear(tls, db, pWith+16+uintptr(i)*48)
+ }
+ Xsqlite3DbFree(tls, db, pWith)
+ }
+}
+
+func callCollNeeded(tls *libc.TLS, db uintptr, enc int32, zName uintptr) {
+ if (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded != 0 {
+ var zExternal uintptr = Xsqlite3DbStrDup(tls, db, zName)
+ if !(zExternal != 0) {
+ return
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, enc, zExternal)
+ Xsqlite3DbFree(tls, db, zExternal)
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16 != 0 {
+ var zExternal uintptr
+ var pTmp uintptr = Xsqlite3ValueNew(tls, db)
+ Xsqlite3ValueSetStr(tls, pTmp, -1, zName, uint8(SQLITE_UTF8), uintptr(0))
+ zExternal = Xsqlite3ValueText(tls, pTmp, uint8(SQLITE_UTF16LE))
+ if zExternal != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg, db, int32((*Sqlite3)(unsafe.Pointer(db)).Fenc), zExternal)
+ }
+ Xsqlite3ValueFree(tls, pTmp)
+ }
+}
+
+func synthCollSeq(tls *libc.TLS, db uintptr, pColl uintptr) int32 {
+ var pColl2 uintptr
+ var z uintptr = (*CollSeq)(unsafe.Pointer(pColl)).FzName
+ var i int32
+ for i = 0; i < 3; i++ {
+ pColl2 = Xsqlite3FindCollSeq(tls, db, aEnc[i], z, 0)
+ if (*CollSeq)(unsafe.Pointer(pColl2)).FxCmp != uintptr(0) {
+ libc.X__builtin___memcpy_chk(tls, pColl, pColl2, uint64(unsafe.Sizeof(CollSeq{})), libc.X__builtin_object_size(tls, pColl, 0))
+ (*CollSeq)(unsafe.Pointer(pColl)).FxDel = uintptr(0)
+ return SQLITE_OK
+ }
+ }
+ return SQLITE_ERROR
+}
+
+var aEnc = [3]U8{U8(SQLITE_UTF16BE), U8(SQLITE_UTF16LE), U8(SQLITE_UTF8)}
+
+// This routine is called on a collation sequence before it is used to
+// check that it is defined. An undefined collation sequence exists when
+// a database is loaded that contains references to collation sequences
+// that have not been defined by sqlite3_create_collation() etc.
+//
+// If required, this routine calls the 'collation needed' callback to
+// request a definition of the collating sequence. If this doesn't work,
+// an equivalent collating sequence that uses a text encoding different
+// from the main database is substituted, if one is available.
+func Xsqlite3CheckCollSeq(tls *libc.TLS, pParse uintptr, pColl uintptr) int32 {
+ if pColl != 0 && (*CollSeq)(unsafe.Pointer(pColl)).FxCmp == uintptr(0) {
+ var zName uintptr = (*CollSeq)(unsafe.Pointer(pColl)).FzName
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var p uintptr = Xsqlite3GetCollSeq(tls, pParse, (*Sqlite3)(unsafe.Pointer(db)).Fenc, pColl, zName)
+ if !(p != 0) {
+ return SQLITE_ERROR
+ }
+
+ }
+ return SQLITE_OK
+}
+
+func findCollSeqEntry(tls *libc.TLS, db uintptr, zName uintptr, create int32) uintptr {
+ var pColl uintptr
+ pColl = Xsqlite3HashFind(tls, db+648, zName)
+
+ if uintptr(0) == pColl && create != 0 {
+ var nName int32 = Xsqlite3Strlen30(tls, zName) + 1
+ pColl = Xsqlite3DbMallocZero(tls, db, uint64(3)*uint64(unsafe.Sizeof(CollSeq{}))+uint64(nName))
+ if pColl != 0 {
+ var pDel uintptr = uintptr(0)
+ (*CollSeq)(unsafe.Pointer(pColl)).FzName = pColl + 3*40
+ (*CollSeq)(unsafe.Pointer(pColl)).Fenc = U8(SQLITE_UTF8)
+ (*CollSeq)(unsafe.Pointer(pColl + 1*40)).FzName = pColl + 3*40
+ (*CollSeq)(unsafe.Pointer(pColl + 1*40)).Fenc = U8(SQLITE_UTF16LE)
+ (*CollSeq)(unsafe.Pointer(pColl + 2*40)).FzName = pColl + 3*40
+ (*CollSeq)(unsafe.Pointer(pColl + 2*40)).Fenc = U8(SQLITE_UTF16BE)
+ libc.X__builtin___memcpy_chk(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, zName, uint64(nName), libc.X__builtin_object_size(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, 0))
+ pDel = Xsqlite3HashInsert(tls, db+648, (*CollSeq)(unsafe.Pointer(pColl)).FzName, pColl)
+
+ if pDel != uintptr(0) {
+ Xsqlite3OomFault(tls, db)
+ Xsqlite3DbFree(tls, db, pDel)
+ pColl = uintptr(0)
+ }
+ }
+ }
+ return pColl
+}
+
+// Parameter zName points to a UTF-8 encoded string nName bytes long.
+// Return the CollSeq* pointer for the collation sequence named zName
+// for the encoding 'enc' from the database 'db'.
+//
+// If the entry specified is not found and 'create' is true, then create a
+// new entry. Otherwise return NULL.
+//
+// A separate function sqlite3LocateCollSeq() is a wrapper around
+// this routine. sqlite3LocateCollSeq() invokes the collation factory
+// if necessary and generates an error message if the collating sequence
+// cannot be found.
+//
+// See also: sqlite3LocateCollSeq(), sqlite3GetCollSeq()
+func Xsqlite3FindCollSeq(tls *libc.TLS, db uintptr, enc U8, zName uintptr, create int32) uintptr {
+ var pColl uintptr
+
+ if zName != 0 {
+ pColl = findCollSeqEntry(tls, db, zName, create)
+ if pColl != 0 {
+ pColl += 40 * uintptr(int32(enc)-1)
+ }
+ } else {
+ pColl = (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl
+ }
+ return pColl
+}
+
+// Change the text encoding for a database connection. This means that
+// the pDfltColl must change as well.
+func Xsqlite3SetTextEncoding(tls *libc.TLS, db uintptr, enc U8) {
+ (*Sqlite3)(unsafe.Pointer(db)).Fenc = enc
+
+ (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl = Xsqlite3FindCollSeq(tls, db, enc, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), 0)
+}
+
+// This function is responsible for invoking the collation factory callback
+// or substituting a collation sequence of a different encoding when the
+// requested collation sequence is not available in the desired encoding.
+//
+// If it is not NULL, then pColl must point to the database native encoding
+// collation sequence with name zName, length nName.
+//
+// The return value is either the collation sequence to be used in database
+// db for collation type name zName, length nName, or NULL, if no collation
+// sequence can be found. If no collation is found, leave an error message.
+//
+// See also: sqlite3LocateCollSeq(), sqlite3FindCollSeq()
+func Xsqlite3GetCollSeq(tls *libc.TLS, pParse uintptr, enc U8, pColl uintptr, zName uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ p = pColl
+ if !(p != 0) {
+ p = Xsqlite3FindCollSeq(tls, db, enc, zName, 0)
+ }
+ if !(p != 0) || !(int32((*CollSeq)(unsafe.Pointer(p)).FxCmp) != 0) {
+ callCollNeeded(tls, db, int32(enc), zName)
+ p = Xsqlite3FindCollSeq(tls, db, enc, zName, 0)
+ }
+ if p != 0 && !(int32((*CollSeq)(unsafe.Pointer(p)).FxCmp) != 0) && synthCollSeq(tls, db, p) != 0 {
+ p = uintptr(0)
+ }
+
+ if p == uintptr(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15105, libc.VaList(bp, zName))
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR | int32(1)<<8
+ }
+ return p
+}
+
+// This function returns the collation sequence for database native text
+// encoding identified by the string zName.
+//
+// If the requested collation sequence is not available, or not available
+// in the database native encoding, the collation factory is invoked to
+// request it. If the collation factory does not supply such a sequence,
+// and the sequence is available in another text encoding, then that is
+// returned instead.
+//
+// If no versions of the requested collations sequence are available, or
+// another error occurs, NULL is returned and an error message written into
+// pParse.
+//
+// This routine is a wrapper around sqlite3FindCollSeq(). This routine
+// invokes the collation factory if the named collation cannot be found
+// and generates an error message.
+//
+// See also: sqlite3FindCollSeq(), sqlite3GetCollSeq()
+func Xsqlite3LocateCollSeq(tls *libc.TLS, pParse uintptr, zName uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var enc U8 = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ var initbusy U8 = (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy
+ var pColl uintptr
+
+ pColl = Xsqlite3FindCollSeq(tls, db, enc, zName, int32(initbusy))
+ if !(initbusy != 0) && (!(pColl != 0) || !(int32((*CollSeq)(unsafe.Pointer(pColl)).FxCmp) != 0)) {
+ pColl = Xsqlite3GetCollSeq(tls, pParse, enc, pColl, zName)
+ }
+
+ return pColl
+}
+
+func matchQuality(tls *libc.TLS, p uintptr, nArg int32, enc U8) int32 {
+ var match int32
+
+ if int32((*FuncDef)(unsafe.Pointer(p)).FnArg) != nArg {
+ if nArg == -2 {
+ if (*FuncDef)(unsafe.Pointer(p)).FxSFunc == uintptr(0) {
+ return 0
+ }
+ return FUNC_PERFECT_MATCH
+ }
+ if int32((*FuncDef)(unsafe.Pointer(p)).FnArg) >= 0 {
+ return 0
+ }
+ }
+
+ if int32((*FuncDef)(unsafe.Pointer(p)).FnArg) == nArg {
+ match = 4
+ } else {
+ match = 1
+ }
+
+ if U32(enc) == (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_ENCMASK) {
+ match = match + 2
+ } else if U32(enc)&(*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(2) != U32(0) {
+ match = match + 1
+ }
+
+ return match
+}
+
+// Search a FuncDefHash for a function with the given name. Return
+// a pointer to the matching FuncDef if found, or 0 if there is no match.
+func Xsqlite3FunctionSearch(tls *libc.TLS, h int32, zFunc uintptr) uintptr {
+ var p uintptr
+ for p = *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)) + uintptr(h)*8)); p != 0; p = *(*uintptr)(unsafe.Pointer(p + 64)) {
+ if Xsqlite3StrICmp(tls, (*FuncDef)(unsafe.Pointer(p)).FzName, zFunc) == 0 {
+ return p
+ }
+ }
+ return uintptr(0)
+}
+
+// Insert a new FuncDef into a FuncDefHash hash table.
+func Xsqlite3InsertBuiltinFuncs(tls *libc.TLS, aDef uintptr, nDef int32) {
+ var i int32
+ for i = 0; i < nDef; i++ {
+ var pOther uintptr
+ var zName uintptr = (*FuncDef)(unsafe.Pointer(aDef + uintptr(i)*72)).FzName
+ var nName int32 = Xsqlite3Strlen30(tls, zName)
+ var h int32 = (int32(*(*int8)(unsafe.Pointer(zName))) + nName) % SQLITE_FUNC_HASH_SZ
+
+ pOther = Xsqlite3FunctionSearch(tls, h, zName)
+ if pOther != 0 {
+ (*FuncDef)(unsafe.Pointer(aDef + uintptr(i)*72)).FpNext = (*FuncDef)(unsafe.Pointer(pOther)).FpNext
+ (*FuncDef)(unsafe.Pointer(pOther)).FpNext = aDef + uintptr(i)*72
+ } else {
+ (*FuncDef)(unsafe.Pointer(aDef + uintptr(i)*72)).FpNext = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(aDef + uintptr(i)*72 + 64)) = *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)) + uintptr(h)*8))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)) + uintptr(h)*8)) = aDef + uintptr(i)*72
+ }
+ }
+}
+
+// Locate a user function given a name, a number of arguments and a flag
+// indicating whether the function prefers UTF-16 over UTF-8. Return a
+// pointer to the FuncDef structure that defines that function, or return
+// NULL if the function does not exist.
+//
+// If the createFlag argument is true, then a new (blank) FuncDef
+// structure is created and liked into the "db" structure if a
+// no matching function previously existed.
+//
+// If nArg is -2, then the first valid function found is returned. A
+// function is valid if xSFunc is non-zero. The nArg==(-2)
+// case is used to see if zName is a valid function name for some number
+// of arguments. If nArg is -2, then createFlag must be 0.
+//
+// If createFlag is false, then a function with the required name and
+// number of arguments may be returned even if the eTextRep flag does not
+// match that requested.
+func Xsqlite3FindFunction(tls *libc.TLS, db uintptr, zName uintptr, nArg int32, enc U8, createFlag U8) uintptr {
+ var p uintptr
+ var pBest uintptr = uintptr(0)
+ var bestScore int32 = 0
+ var h int32
+ var nName int32
+
+ nName = Xsqlite3Strlen30(tls, zName)
+
+ p = Xsqlite3HashFind(tls, db+624, zName)
+ for p != 0 {
+ var score int32 = matchQuality(tls, p, nArg, enc)
+ if score > bestScore {
+ pBest = p
+ bestScore = score
+ }
+ p = (*FuncDef)(unsafe.Pointer(p)).FpNext
+ }
+
+ if !(createFlag != 0) && (pBest == uintptr(0) || (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_PreferBuiltin) != U32(0)) {
+ bestScore = 0
+ h = (int32(Xsqlite3UpperToLower[U8(*(*int8)(unsafe.Pointer(zName)))]) + nName) % SQLITE_FUNC_HASH_SZ
+ p = Xsqlite3FunctionSearch(tls, h, zName)
+ for p != 0 {
+ var score int32 = matchQuality(tls, p, nArg, enc)
+ if score > bestScore {
+ pBest = p
+ bestScore = score
+ }
+ p = (*FuncDef)(unsafe.Pointer(p)).FpNext
+ }
+ }
+
+ if createFlag != 0 && bestScore < FUNC_PERFECT_MATCH && libc.AssignUintptr(&pBest, Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(FuncDef{}))+uint64(nName)+uint64(1))) != uintptr(0) {
+ var pOther uintptr
+ var z uintptr
+ (*FuncDef)(unsafe.Pointer(pBest)).FzName = pBest + 1*72
+ (*FuncDef)(unsafe.Pointer(pBest)).FnArg = I8(U16(nArg))
+ (*FuncDef)(unsafe.Pointer(pBest)).FfuncFlags = U32(enc)
+ libc.X__builtin___memcpy_chk(tls, pBest+1*72, zName, uint64(nName+1), libc.X__builtin_object_size(tls, pBest+1*72, 0))
+ for z = (*FuncDef)(unsafe.Pointer(pBest)).FzName; *(*U8)(unsafe.Pointer(z)) != 0; z++ {
+ *(*U8)(unsafe.Pointer(z)) = Xsqlite3UpperToLower[*(*U8)(unsafe.Pointer(z))]
+ }
+ pOther = Xsqlite3HashInsert(tls, db+624, (*FuncDef)(unsafe.Pointer(pBest)).FzName, pBest)
+ if pOther == pBest {
+ Xsqlite3DbFree(tls, db, pBest)
+ Xsqlite3OomFault(tls, db)
+ return uintptr(0)
+ } else {
+ (*FuncDef)(unsafe.Pointer(pBest)).FpNext = pOther
+ }
+ }
+
+ if pBest != 0 && ((*FuncDef)(unsafe.Pointer(pBest)).FxSFunc != 0 || createFlag != 0) {
+ return pBest
+ }
+ return uintptr(0)
+}
+
+// Free all resources held by the schema structure. The void* argument points
+// at a Schema struct. This function does not call sqlite3DbFree(db, ) on the
+// pointer itself, it just cleans up subsidiary resources (i.e. the contents
+// of the schema hash tables).
+//
+// The Schema.cache_size variable is not cleared.
+func Xsqlite3SchemaClear(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(896)
+ defer tls.Free(896)
+
+ var pElem uintptr
+ var pSchema uintptr = p
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Sqlite3{})), libc.X__builtin_object_size(tls, bp, 0))
+ *(*Hash)(unsafe.Pointer(bp + 872)) = (*Schema)(unsafe.Pointer(pSchema)).FtblHash
+ *(*Hash)(unsafe.Pointer(bp + 848)) = (*Schema)(unsafe.Pointer(pSchema)).FtrigHash
+ Xsqlite3HashInit(tls, pSchema+56)
+ Xsqlite3HashClear(tls, pSchema+32)
+ for pElem = (*Hash)(unsafe.Pointer(bp + 848)).Ffirst; pElem != 0; pElem = (*HashElem)(unsafe.Pointer(pElem)).Fnext {
+ Xsqlite3DeleteTrigger(tls, bp, (*HashElem)(unsafe.Pointer(pElem)).Fdata)
+ }
+ Xsqlite3HashClear(tls, bp+848)
+ Xsqlite3HashInit(tls, pSchema+8)
+ for pElem = (*Hash)(unsafe.Pointer(bp + 872)).Ffirst; pElem != 0; pElem = (*HashElem)(unsafe.Pointer(pElem)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(pElem)).Fdata
+ Xsqlite3DeleteTable(tls, bp, pTab)
+ }
+ Xsqlite3HashClear(tls, bp+872)
+ Xsqlite3HashClear(tls, pSchema+80)
+ (*Schema)(unsafe.Pointer(pSchema)).FpSeqTab = uintptr(0)
+ if int32((*Schema)(unsafe.Pointer(pSchema)).FschemaFlags)&DB_SchemaLoaded != 0 {
+ (*Schema)(unsafe.Pointer(pSchema)).FiGeneration++
+ }
+ *(*U16)(unsafe.Pointer(pSchema + 114)) &= libc.Uint16FromInt32(libc.CplInt32(DB_SchemaLoaded | DB_ResetWanted))
+}
+
+// Find and return the schema associated with a BTree. Create
+// a new one if necessary.
+func Xsqlite3SchemaGet(tls *libc.TLS, db uintptr, pBt uintptr) uintptr {
+ var p uintptr
+ if pBt != 0 {
+ p = Xsqlite3BtreeSchema(tls, pBt, int32(unsafe.Sizeof(Schema{})), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3SchemaClear})))
+ } else {
+ p = Xsqlite3DbMallocZero(tls, uintptr(0), uint64(unsafe.Sizeof(Schema{})))
+ }
+ if !(p != 0) {
+ Xsqlite3OomFault(tls, db)
+ } else if 0 == int32((*Schema)(unsafe.Pointer(p)).Ffile_format) {
+ Xsqlite3HashInit(tls, p+8)
+ Xsqlite3HashInit(tls, p+32)
+ Xsqlite3HashInit(tls, p+56)
+ Xsqlite3HashInit(tls, p+80)
+ (*Schema)(unsafe.Pointer(p)).Fenc = U8(SQLITE_UTF8)
+ }
+ return p
+}
+
+// While a SrcList can in general represent multiple tables and subqueries
+// (as in the FROM clause of a SELECT statement) in this case it contains
+// the name of a single table, as one might find in an INSERT, DELETE,
+// or UPDATE statement. Look up that table in the symbol table and
+// return a pointer. Set an error message and return NULL if the table
+// name is not found or if any other error occurs.
+//
+// The following fields are initialized appropriate in pSrc:
+//
+// pSrc->a[0].pTab Pointer to the Table object
+// pSrc->a[0].pIndex Pointer to the INDEXED BY index, if there is one
+func Xsqlite3SrcListLookup(tls *libc.TLS, pParse uintptr, pSrc uintptr) uintptr {
+ var pItem uintptr = pSrc + 8
+ var pTab uintptr
+
+ pTab = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pItem)
+ Xsqlite3DeleteTable(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*SrcItem)(unsafe.Pointer(pItem)).FpTab)
+ (*SrcItem)(unsafe.Pointer(pItem)).FpTab = pTab
+ if pTab != 0 {
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef++
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2>>1)) != 0 && Xsqlite3IndexedByLookup(tls, pParse, pItem) != 0 {
+ pTab = uintptr(0)
+ }
+ }
+ return pTab
+}
+
+// Generate byte-code that will report the number of rows modified
+// by a DELETE, INSERT, or UPDATE statement.
+func Xsqlite3CodeChangeCount(tls *libc.TLS, v uintptr, regCounter int32, zColName uintptr) {
+ Xsqlite3VdbeAddOp0(tls, v, OP_FkCheck)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, regCounter, 1)
+ Xsqlite3VdbeSetNumCols(tls, v, 1)
+ Xsqlite3VdbeSetColName(tls, v, 0, COLNAME_NAME, zColName, uintptr(0))
+}
+
+func vtabIsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer(Xsqlite3GetVTable(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pTab))).FpMod)).FpModule)).FxUpdate == uintptr(0) {
+ return 1
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != uintptr(0) &&
+ int32((*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 16)))).FeVtabRisk) > libc.Bool32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15136,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ }
+ return 0
+}
+
+func tabIsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr) int32 {
+ var db uintptr
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ return vtabIsReadOnly(tls, pParse, pTab)
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Readonly|TF_Shadow) == U32(0) {
+ return 0
+ }
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Readonly) != U32(0) {
+ return libc.Bool32(Xsqlite3WritableSchema(tls, db) == 0 && int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0)
+ }
+
+ return Xsqlite3ReadOnlyShadowTables(tls, db)
+}
+
+// Check to make sure the given table is writable.
+//
+// If pTab is not writable -> generate an error message and return 1.
+// If pTab is writable but other errors have occurred -> return 1.
+// If pTab is writable and no prior errors -> return 0;
+func Xsqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, viewOk int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if tabIsReadOnly(tls, pParse, pTab) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15169, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ return 1
+ }
+ if !(viewOk != 0) && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15198, libc.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ return 1
+ }
+ return 0
+}
+
+// Evaluate a view and store its result in an ephemeral table. The
+// pWhere argument is an optional WHERE clause that restricts the
+// set of rows in the view that are to be added to the ephemeral table.
+func Xsqlite3MaterializeView(tls *libc.TLS, pParse uintptr, pView uintptr, pWhere uintptr, pOrderBy uintptr, pLimit uintptr, iCur int32) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var pSel uintptr
+ var pFrom uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pView)).FpSchema)
+ pWhere = Xsqlite3ExprDup(tls, db, pWhere, 0)
+ pFrom = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0))
+ if pFrom != 0 {
+ (*SrcItem)(unsafe.Pointer(pFrom + 8)).FzName = Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pView)).FzName)
+ (*SrcItem)(unsafe.Pointer(pFrom + 8)).FzDatabase = Xsqlite3DbStrDup(tls, db, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+
+ }
+ pSel = Xsqlite3SelectNew(tls, pParse, uintptr(0), pFrom, pWhere, uintptr(0), uintptr(0), pOrderBy,
+ uint32(SF_IncludeHidden), pLimit)
+ Xsqlite3SelectDestInit(tls, bp, SRT_EphemTab, iCur)
+ Xsqlite3Select(tls, pParse, pSel, bp)
+ Xsqlite3SelectDelete(tls, db, pSel)
+}
+
+// Generate code for a DELETE FROM statement.
+//
+// DELETE FROM table_wxyz WHERE a<5 AND b NOT NULL;
+// \________/ \________________/
+// pTabList pWhere
+func Xsqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere uintptr, pOrderBy uintptr, pLimit uintptr) {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var v uintptr
+ var pTab uintptr
+ var i int32
+ var pWInfo uintptr
+ var pIdx uintptr
+ var iTabCur int32
+
+ var nIdx int32
+ var db uintptr
+
+ var iDb int32
+ var memCnt int32
+ var rcauth int32
+ var eOnePass int32
+
+ var aToOpen uintptr
+ var pPk uintptr
+ var iPk int32
+ var nPk I16
+ var iKey int32
+ var nKey I16
+ var iEphCur int32
+ var iRowSet int32
+ var addrBypass int32
+ var addrLoop int32
+ var addrEphOpen int32
+ var bComplex int32
+
+ var isView int32
+ var pTrigger uintptr
+ var iAddrOnce int32
+ var pVTab uintptr
+ var count int32
+ var wcf U16
+ *(*int32)(unsafe.Pointer(bp + 80)) = 0
+ *(*int32)(unsafe.Pointer(bp + 84)) = 0
+ memCnt = 0
+ aToOpen = uintptr(0)
+ iPk = 0
+ nPk = int16(1)
+ iEphCur = 0
+ iRowSet = 0
+ addrBypass = 0
+ addrLoop = 0
+ addrEphOpen = 0
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(AuthContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __1
+ }
+ goto delete_from_cleanup
+__1:
+ ;
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTabList)
+ if !(pTab == uintptr(0)) {
+ goto __2
+ }
+ goto delete_from_cleanup
+__2:
+ ;
+ pTrigger = Xsqlite3TriggersExist(tls, pParse, pTab, TK_DELETE, uintptr(0), uintptr(0))
+ isView = libc.Bool32(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW)
+ bComplex = libc.Bool32(pTrigger != 0 || Xsqlite3FkRequired(tls, pParse, pTab, uintptr(0), 0) != 0)
+
+ if !(Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0) {
+ goto __3
+ }
+ goto delete_from_cleanup
+__3:
+ ;
+ if !(Xsqlite3IsReadOnly(tls, pParse, pTab, func() int32 {
+ if pTrigger != 0 {
+ return 1
+ }
+ return 0
+ }()) != 0) {
+ goto __4
+ }
+ goto delete_from_cleanup
+__4:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ rcauth = Xsqlite3AuthCheck(tls, pParse, SQLITE_DELETE, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0),
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+
+ if !(rcauth == SQLITE_DENY) {
+ goto __5
+ }
+ goto delete_from_cleanup
+__5:
+ ;
+ iTabCur = libc.AssignPtrInt32(pTabList+8+68, libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1))
+ nIdx = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__6:
+ if !(pIdx != 0) {
+ goto __8
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnTab++
+ goto __7
+__7:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ nIdx++
+ goto __6
+ goto __8
+__8:
+ ;
+ if !(isView != 0) {
+ goto __9
+ }
+ Xsqlite3AuthContextPush(tls, pParse, bp, (*Table)(unsafe.Pointer(pTab)).FzName)
+__9:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __10
+ }
+ goto delete_from_cleanup
+__10:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) {
+ goto __11
+ }
+ Xsqlite3VdbeCountChanges(tls, v)
+__11:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, bComplex, iDb)
+
+ if !(isView != 0) {
+ goto __12
+ }
+ Xsqlite3MaterializeView(tls, pParse, pTab,
+ pWhere, pOrderBy, pLimit, iTabCur)
+ *(*int32)(unsafe.Pointer(bp + 80)) = libc.AssignPtrInt32(bp+84, iTabCur)
+ pOrderBy = uintptr(0)
+ pLimit = uintptr(0)
+__12:
+ ;
+ libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+16, 0))
+ (*NameContext)(unsafe.Pointer(bp + 16)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp + 16)).FpSrcList = pTabList
+ if !(Xsqlite3ResolveExprNames(tls, bp+16, pWhere) != 0) {
+ goto __13
+ }
+ goto delete_from_cleanup
+__13:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(0x00001)<<32) != uint64(0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FbReturning) != 0)) {
+ goto __14
+ }
+ memCnt = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, memCnt)
+__14:
+ ;
+ if !(rcauth == SQLITE_OK &&
+ pWhere == uintptr(0) &&
+ !(bComplex != 0) &&
+ !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback == uintptr(0)) {
+ goto __15
+ }
+
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(1), (*Table)(unsafe.Pointer(pTab)).FzName)
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __17
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_Clear, int32((*Table)(unsafe.Pointer(pTab)).Ftnum), iDb, func() int32 {
+ if memCnt != 0 {
+ return memCnt
+ }
+ return -1
+ }(),
+ (*Table)(unsafe.Pointer(pTab)).FzName, -1)
+__17:
+ ;
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__18:
+ if !(pIdx != 0) {
+ goto __20
+ }
+
+ if !(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY && !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0))) {
+ goto __21
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Clear, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb, func() int32 {
+ if memCnt != 0 {
+ return memCnt
+ }
+ return -1
+ }())
+ goto __22
+__21:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Clear, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb)
+__22:
+ ;
+ goto __19
+__19:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __18
+ goto __20
+__20:
+ ;
+ goto __16
+__15:
+ wcf = U16(WHERE_ONEPASS_DESIRED | WHERE_DUPLICATES_OK)
+ if !((*NameContext)(unsafe.Pointer(bp+16)).FncFlags&NC_VarSelect != 0) {
+ goto __23
+ }
+ bComplex = 1
+__23:
+ ;
+ wcf = U16(int32(wcf) | func() int32 {
+ if bComplex != 0 {
+ return 0
+ }
+ return WHERE_ONEPASS_MULTIROW
+ }())
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __24
+ }
+
+ pPk = uintptr(0)
+ nPk = int16(1)
+ iRowSet = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, iRowSet)
+ goto __25
+__24:
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ nPk = I16((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ iPk = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32(nPk)
+ iEphCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ addrEphOpen = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, iEphCur, int32(nPk))
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pPk)
+__25:
+ ;
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pTabList, pWhere, uintptr(0), uintptr(0), uintptr(0), wcf, iTabCur+1)
+ if !(pWInfo == uintptr(0)) {
+ goto __26
+ }
+ goto delete_from_cleanup
+__26:
+ ;
+ eOnePass = Xsqlite3WhereOkOnePass(tls, pWInfo, bp+72)
+
+ if !(eOnePass != ONEPASS_SINGLE) {
+ goto __27
+ }
+ Xsqlite3MultiWrite(tls, pParse)
+__27:
+ ;
+ if !(Xsqlite3WhereUsesDeferredSeek(tls, pWInfo) != 0) {
+ goto __28
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_FinishSeek, iTabCur)
+__28:
+ ;
+ if !(memCnt != 0) {
+ goto __29
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, memCnt, 1)
+__29:
+ ;
+ if !(pPk != 0) {
+ goto __30
+ }
+ i = 0
+__32:
+ if !(i < int32(nPk)) {
+ goto __34
+ }
+
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iTabCur,
+ int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))), iPk+i)
+ goto __33
+__33:
+ i++
+ goto __32
+ goto __34
+__34:
+ ;
+ iKey = iPk
+ goto __31
+__30:
+ iKey = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iTabCur, -1, iKey)
+__31:
+ ;
+ if !(eOnePass != ONEPASS_OFF) {
+ goto __35
+ }
+
+ nKey = nPk
+ aToOpen = Xsqlite3DbMallocRawNN(tls, db, uint64(nIdx+2))
+ if !(aToOpen == uintptr(0)) {
+ goto __37
+ }
+ Xsqlite3WhereEnd(tls, pWInfo)
+ goto delete_from_cleanup
+__37:
+ ;
+ libc.X__builtin___memset_chk(tls, aToOpen, 1, uint64(nIdx+1), libc.X__builtin_object_size(tls, aToOpen, 0))
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(nIdx+1))) = U8(0)
+ if !(*(*int32)(unsafe.Pointer(bp + 72)) >= 0) {
+ goto __38
+ }
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp + 72))-iTabCur))) = U8(0)
+__38:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 72 + 1*4)) >= 0) {
+ goto __39
+ }
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp + 72 + 1*4))-iTabCur))) = U8(0)
+__39:
+ ;
+ if !(addrEphOpen != 0) {
+ goto __40
+ }
+ Xsqlite3VdbeChangeToNoop(tls, v, addrEphOpen)
+__40:
+ ;
+ addrBypass = Xsqlite3VdbeMakeLabel(tls, pParse)
+ goto __36
+__35:
+ if !(pPk != 0) {
+ goto __41
+ }
+
+ iKey = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ nKey = int16(0)
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, iPk, int32(nPk), iKey,
+ Xsqlite3IndexAffinityStr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pPk), int32(nPk))
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iEphCur, iKey, iPk, int32(nPk))
+ goto __42
+__41:
+ nKey = int16(1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_RowSetAdd, iRowSet, iKey)
+__42:
+ ;
+ Xsqlite3WhereEnd(tls, pWInfo)
+__36:
+ ;
+ if !!(isView != 0) {
+ goto __43
+ }
+ iAddrOnce = 0
+ if !(eOnePass == ONEPASS_MULTI) {
+ goto __44
+ }
+ iAddrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+__44:
+ ;
+ Xsqlite3OpenTableAndIndices(tls, pParse, pTab, OP_OpenWrite, uint8(OPFLAG_FORDELETE),
+ iTabCur, aToOpen, bp+80, bp+84)
+
+ if !(eOnePass == ONEPASS_MULTI) {
+ goto __45
+ }
+ Xsqlite3VdbeJumpHereOrPopInst(tls, v, iAddrOnce)
+__45:
+ ;
+__43:
+ ;
+ if !(eOnePass != ONEPASS_OFF) {
+ goto __46
+ }
+
+ if !(!(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) && *(*U8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp + 80))-iTabCur))) != 0) {
+ goto __48
+ }
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, *(*int32)(unsafe.Pointer(bp + 80)), addrBypass, iKey, int32(nKey))
+
+__48:
+ ;
+ goto __47
+__46:
+ if !(pPk != 0) {
+ goto __49
+ }
+ addrLoop = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iEphCur)
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __51
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEphCur, 0, iKey)
+ goto __52
+__51:
+ Xsqlite3VdbeAddOp2(tls, v, OP_RowData, iEphCur, iKey)
+__52:
+ ;
+ goto __50
+__49:
+ addrLoop = Xsqlite3VdbeAddOp3(tls, v, OP_RowSetRead, iRowSet, 0, iKey)
+
+__50:
+ ;
+__47:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __53
+ }
+ pVTab = Xsqlite3GetVTable(tls, db, pTab)
+ Xsqlite3VtabMakeWritable(tls, pParse, pTab)
+
+ Xsqlite3MayAbort(tls, pParse)
+ if !(eOnePass == ONEPASS_SINGLE) {
+ goto __55
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iTabCur)
+ if !((*Parse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0)) {
+ goto __56
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FisMultiWrite = U8(0)
+__56:
+ ;
+__55:
+ ;
+ Xsqlite3VdbeAddOp4(tls, v, OP_VUpdate, 0, 1, iKey, pVTab, -11)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OE_Abort))
+ goto __54
+__53:
+ count = libc.Bool32(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0)
+ Xsqlite3GenerateRowDelete(tls, pParse, pTab, pTrigger, *(*int32)(unsafe.Pointer(bp + 80)), *(*int32)(unsafe.Pointer(bp + 84)),
+ iKey, nKey, uint8(count), uint8(OE_Default), uint8(eOnePass), *(*int32)(unsafe.Pointer(bp + 72 + 1*4)))
+__54:
+ ;
+ if !(eOnePass != ONEPASS_OFF) {
+ goto __57
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, addrBypass)
+ Xsqlite3WhereEnd(tls, pWInfo)
+ goto __58
+__57:
+ if !(pPk != 0) {
+ goto __59
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iEphCur, addrLoop+1)
+ Xsqlite3VdbeJumpHere(tls, v, addrLoop)
+ goto __60
+__59:
+ Xsqlite3VdbeGoto(tls, v, addrLoop)
+ Xsqlite3VdbeJumpHere(tls, v, addrLoop)
+__60:
+ ;
+__58:
+ ;
+__16:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 && (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab == uintptr(0)) {
+ goto __61
+ }
+ Xsqlite3AutoincrementEnd(tls, pParse)
+__61:
+ ;
+ if !(memCnt != 0) {
+ goto __62
+ }
+ Xsqlite3CodeChangeCount(tls, v, memCnt, ts+15236)
+__62:
+ ;
+delete_from_cleanup:
+ Xsqlite3AuthContextPop(tls, bp)
+ Xsqlite3SrcListDelete(tls, db, pTabList)
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ if !(aToOpen != 0) {
+ goto __63
+ }
+ Xsqlite3DbNNFreeNN(tls, db, aToOpen)
+__63:
+ ;
+ return
+}
+
+// This routine generates VDBE code that causes a single row of a
+// single table to be deleted. Both the original table entry and
+// all indices are removed.
+//
+// Preconditions:
+//
+// 1. iDataCur is an open cursor on the btree that is the canonical data
+// store for the table. (This will be either the table itself,
+// in the case of a rowid table, or the PRIMARY KEY index in the case
+// of a WITHOUT ROWID table.)
+//
+// 2. Read/write cursors for all indices of pTab must be open as
+// cursor number iIdxCur+i for the i-th index.
+//
+// 3. The primary key for the row to be deleted must be stored in a
+// sequence of nPk memory cells starting at iPk. If nPk==0 that means
+// that a search record formed from OP_MakeRecord is contained in the
+// single memory location iPk.
+//
+// eMode:
+//
+// Parameter eMode may be passed either ONEPASS_OFF (0), ONEPASS_SINGLE, or
+// ONEPASS_MULTI. If eMode is not ONEPASS_OFF, then the cursor
+// iDataCur already points to the row to delete. If eMode is ONEPASS_OFF
+// then this function must seek iDataCur to the entry identified by iPk
+// and nPk before reading from it.
+//
+// If eMode is ONEPASS_MULTI, then this call is being made as part
+// of a ONEPASS delete that affects multiple rows. In this case, if
+// iIdxNoSeek is a valid cursor number (>=0) and is not the same as
+// iDataCur, then its position should be preserved following the delete
+// operation. Or, if iIdxNoSeek is not a valid cursor number, the
+// position of iDataCur should be preserved instead.
+//
+// iIdxNoSeek:
+//
+// If iIdxNoSeek is a valid cursor number (>=0) not equal to iDataCur,
+// then it identifies an index cursor (from within array of cursors
+// starting at iIdxCur) that already points to the index entry to be deleted.
+// Except, this optimization is disabled if there are BEFORE triggers since
+// the trigger body might have moved the cursor.
+func Xsqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger uintptr, iDataCur int32, iIdxCur int32, iPk int32, nPk I16, count U8, onconf U8, eMode U8, iIdxNoSeek int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var iOld int32 = 0
+ var iLabel int32
+ var opSeek U8
+
+ iLabel = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ opSeek = uint8(OP_NotExists)
+ } else {
+ opSeek = uint8(OP_NotFound)
+ }
+ if int32(eMode) == ONEPASS_OFF {
+ Xsqlite3VdbeAddOp4Int(tls, v, int32(opSeek), iDataCur, iLabel, iPk, int32(nPk))
+
+ }
+
+ if Xsqlite3FkRequired(tls, pParse, pTab, uintptr(0), 0) != 0 || pTrigger != 0 {
+ var mask U32
+ var iCol int32
+ var addrStart int32
+
+ mask = Xsqlite3TriggerColmask(tls,
+ pParse, pTrigger, uintptr(0), 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, int32(onconf))
+ mask = mask | Xsqlite3FkOldmask(tls, pParse, pTab)
+ iOld = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += 1 + int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, iPk, iOld)
+ for iCol = 0; iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol); iCol++ {
+ if mask == 0xffffffff || iCol <= 31 && mask&(uint32(1)<<iCol) != U32(0) {
+ var kk int32 = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(iCol)))
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur, iCol, iOld+kk+1)
+ }
+ }
+
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger,
+ TK_DELETE, uintptr(0), TRIGGER_BEFORE, pTab, iOld, int32(onconf), iLabel)
+
+ if addrStart < Xsqlite3VdbeCurrentAddr(tls, v) {
+ Xsqlite3VdbeAddOp4Int(tls, v, int32(opSeek), iDataCur, iLabel, iPk, int32(nPk))
+
+ iIdxNoSeek = -1
+ }
+
+ Xsqlite3FkCheck(tls, pParse, pTab, iOld, 0, uintptr(0), 0)
+ }
+
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ var p5 U8 = U8(0)
+ Xsqlite3GenerateRowIndexDelete(tls, pParse, pTab, iDataCur, iIdxCur, uintptr(0), iIdxNoSeek)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Delete, iDataCur, func() int32 {
+ if count != 0 {
+ return OPFLAG_NCHANGE
+ }
+ return 0
+ }())
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+11751) {
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+ }
+ if int32(eMode) != ONEPASS_OFF {
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_AUXDELETE))
+ }
+ if iIdxNoSeek >= 0 && iIdxNoSeek != iDataCur {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Delete, iIdxNoSeek)
+ }
+ if int32(eMode) == ONEPASS_MULTI {
+ p5 = U8(int32(p5) | OPFLAG_SAVEPOSITION)
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(p5))
+ }
+
+ Xsqlite3FkActions(tls, pParse, pTab, uintptr(0), iOld, uintptr(0), 0)
+
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger,
+ TK_DELETE, uintptr(0), TRIGGER_AFTER, pTab, iOld, int32(onconf), iLabel)
+
+ Xsqlite3VdbeResolveLabel(tls, v, iLabel)
+
+}
+
+// This routine generates VDBE code that causes the deletion of all
+// index entries associated with a single row of a single table, pTab
+//
+// Preconditions:
+//
+// 1. A read/write cursor "iDataCur" must be open on the canonical storage
+// btree for the table pTab. (This will be either the table itself
+// for rowid tables or to the primary key index for WITHOUT ROWID
+// tables.)
+//
+// 2. Read/write cursors for all indices of pTab must be open as
+// cursor number iIdxCur+i for the i-th index. (The pTab->pIndex
+// index is the 0-th index.)
+//
+// 3. The "iDataCur" cursor must be already be positioned on the row
+// that is to be deleted.
+func Xsqlite3GenerateRowIndexDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, iDataCur int32, iIdxCur int32, aRegIdx uintptr, iIdxNoSeek int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32
+ var r1 int32 = -1
+
+ var pIdx uintptr
+ var pPrior uintptr = uintptr(0)
+ var v uintptr
+ var pPk uintptr
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ pPk = uintptr(0)
+ } else {
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ }
+ i = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__1:
+ if !(pIdx != 0) {
+ goto __3
+ }
+ {
+ if aRegIdx != uintptr(0) && *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)) == 0 {
+ goto __2
+ }
+ if pIdx == pPk {
+ goto __2
+ }
+ if iIdxCur+i == iIdxNoSeek {
+ goto __2
+ }
+
+ r1 = Xsqlite3GenerateIndexKey(tls, pParse, pIdx, iDataCur, 0, 1,
+ bp, pPrior, r1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_IdxDelete, iIdxCur+i, r1,
+ func() int32 {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ }
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ }())
+ Xsqlite3VdbeChangeP5(tls, v, uint16(1))
+ Xsqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp)))
+ pPrior = pIdx
+
+ }
+ goto __2
+__2:
+ i++
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __1
+ goto __3
+__3:
+}
+
+// Generate code that will assemble an index key and stores it in register
+// regOut. The key with be for index pIdx which is an index on pTab.
+// iCur is the index of a cursor open on the pTab table and pointing to
+// the entry that needs indexing. If pTab is a WITHOUT ROWID table, then
+// iCur must be the cursor of the PRIMARY KEY index.
+//
+// Return a register number which is the first in a block of
+// registers that holds the elements of the index key. The
+// block of registers has already been deallocated by the time
+// this routine returns.
+//
+// If *piPartIdxLabel is not NULL, fill it in with a label and jump
+// to that label if pIdx is a partial index that should be skipped.
+// The label should be resolved using sqlite3ResolvePartIdxLabel().
+// A partial index should be skipped if its WHERE clause evaluates
+// to false or null. If pIdx is not a partial index, *piPartIdxLabel
+// will be set to zero which is an empty label that is ignored by
+// sqlite3ResolvePartIdxLabel().
+//
+// The pPrior and regPrior parameters are used to implement a cache to
+// avoid unnecessary register loads. If pPrior is not NULL, then it is
+// a pointer to a different index for which an index key has just been
+// computed into register regPrior. If the current pIdx index is generating
+// its key into the same sequence of registers and if pPrior and pIdx share
+// a column in common, then the register corresponding to that column already
+// holds the correct value and the loading of that register is skipped.
+// This optimization is helpful when doing a DELETE or an INTEGRITY_CHECK
+// on a table with multiple indices, and especially with the ROWID or
+// PRIMARY KEY columns of the index.
+func Xsqlite3GenerateIndexKey(tls *libc.TLS, pParse uintptr, pIdx uintptr, iDataCur int32, regOut int32, prefixOnly int32, piPartIdxLabel uintptr, pPrior uintptr, regPrior int32) int32 {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var j int32
+ var regBase int32
+ var nCol int32
+
+ if piPartIdxLabel != 0 {
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ *(*int32)(unsafe.Pointer(piPartIdxLabel)) = Xsqlite3VdbeMakeLabel(tls, pParse)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = iDataCur + 1
+ Xsqlite3ExprIfFalseDup(tls, pParse, (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere, *(*int32)(unsafe.Pointer(piPartIdxLabel)),
+ SQLITE_JUMPIFNULL)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+ pPrior = uintptr(0)
+
+ } else {
+ *(*int32)(unsafe.Pointer(piPartIdxLabel)) = 0
+ }
+ }
+ if prefixOnly != 0 && uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ nCol = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ } else {
+ nCol = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ }
+ regBase = Xsqlite3GetTempRange(tls, pParse, nCol)
+ if pPrior != 0 && (regBase != regPrior || (*Index)(unsafe.Pointer(pPrior)).FpPartIdxWhere != 0) {
+ pPrior = uintptr(0)
+ }
+ for j = 0; j < nCol; j++ {
+ if pPrior != 0 &&
+ int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPrior)).FaiColumn + uintptr(j)*2))) == int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2))) &&
+ int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPrior)).FaiColumn + uintptr(j)*2))) != -2 {
+ continue
+ }
+ Xsqlite3ExprCodeLoadIndexColumn(tls, pParse, pIdx, iDataCur, j, regBase+j)
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2))) >= 0 {
+ Xsqlite3VdbeDeletePriorOpcode(tls, v, uint8(OP_RealAffinity))
+ }
+ }
+ if regOut != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regBase, nCol, regOut)
+ }
+ Xsqlite3ReleaseTempRange(tls, pParse, regBase, nCol)
+ return regBase
+}
+
+// If a prior call to sqlite3GenerateIndexKey() generated a jump-over label
+// because it was a partial index, then this routine should be called to
+// resolve that label.
+func Xsqlite3ResolvePartIdxLabel(tls *libc.TLS, pParse uintptr, iLabel int32) {
+ if iLabel != 0 {
+ Xsqlite3VdbeResolveLabel(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, iLabel)
+ }
+}
+
+func sqlite3GetFuncCollSeq(tls *libc.TLS, context uintptr) uintptr {
+ var pOp uintptr
+
+ pOp = (*Vdbe)(unsafe.Pointer((*Sqlite3_context)(unsafe.Pointer(context)).FpVdbe)).FaOp + uintptr((*Sqlite3_context)(unsafe.Pointer(context)).FiOp-1)*24
+
+ return *(*uintptr)(unsafe.Pointer(pOp + 16))
+}
+
+func sqlite3SkipAccumulatorLoad(tls *libc.TLS, context uintptr) {
+ (*Sqlite3_context)(unsafe.Pointer(context)).FisError = -1
+ (*Sqlite3_context)(unsafe.Pointer(context)).FskipFlag = U8(1)
+}
+
+func minmaxFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var i int32
+ var mask int32
+ var iBest int32
+ var pColl uintptr
+
+ if Xsqlite3_user_data(tls, context) == uintptr(0) {
+ mask = 0
+ } else {
+ mask = -1
+ }
+ pColl = sqlite3GetFuncCollSeq(tls, context)
+
+ iBest = 0
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_NULL {
+ return
+ }
+ for i = 1; i < argc; i++ {
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == SQLITE_NULL {
+ return
+ }
+ if Xsqlite3MemCompare(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(iBest)*8)), *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)), pColl)^mask >= 0 {
+ iBest = i
+ }
+ }
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + uintptr(iBest)*8)))
+}
+
+func typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ var i int32 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - 1
+ _ = NotUsed
+
+ Xsqlite3_result_text(tls, context, azType2[i], -1, uintptr(0))
+}
+
+var azType2 = [5]uintptr{ts + 6594, ts + 6589, ts + 8408, ts + 8403, ts + 6584}
+
+func subtypeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ _ = argc
+ Xsqlite3_result_int(tls, context, int32(Xsqlite3_value_subtype(tls, *(*uintptr)(unsafe.Pointer(argv)))))
+}
+
+func lengthFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ _ = argc
+ switch Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) {
+ case SQLITE_BLOB:
+ fallthrough
+ case SQLITE_INTEGER:
+ fallthrough
+ case SQLITE_FLOAT:
+ {
+ Xsqlite3_result_int(tls, context, Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))))
+ break
+
+ }
+ case SQLITE_TEXT:
+ {
+ var z uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var z0 uintptr
+ var c uint8
+ if z == uintptr(0) {
+ return
+ }
+ z0 = z
+ for int32(libc.AssignUint8(&c, *(*uint8)(unsafe.Pointer(z)))) != 0 {
+ z++
+ if int32(c) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z)))&0xc0 == 0x80 {
+ z++
+ z0++
+ }
+ }
+ }
+ Xsqlite3_result_int(tls, context, int32((int64(z)-int64(z0))/1))
+ break
+
+ }
+ default:
+ {
+ Xsqlite3_result_null(tls, context)
+ break
+
+ }
+ }
+}
+
+func absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ _ = argc
+ switch Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) {
+ case SQLITE_INTEGER:
+ {
+ var iVal I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if iVal < int64(0) {
+ if iVal == int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32) {
+ Xsqlite3_result_error(tls, context, ts+15249, -1)
+ return
+ }
+ iVal = -iVal
+ }
+ Xsqlite3_result_int64(tls, context, iVal)
+ break
+
+ }
+ case SQLITE_NULL:
+ {
+ Xsqlite3_result_null(tls, context)
+ break
+
+ }
+ default:
+ {
+ var rVal float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if rVal < float64(0) {
+ rVal = -rVal
+ }
+ Xsqlite3_result_double(tls, context, rVal)
+ break
+
+ }
+ }
+}
+
+func instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var zHaystack uintptr
+ var zNeedle uintptr
+ var nHaystack int32
+ var nNeedle int32
+ var typeHaystack int32
+ var typeNeedle int32
+ var N int32
+ var isText int32
+ var firstChar uint8
+ var pC1 uintptr
+ var pC2 uintptr
+ N = 1
+ pC1 = uintptr(0)
+ pC2 = uintptr(0)
+
+ _ = argc
+ typeHaystack = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ typeNeedle = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if !(typeHaystack == SQLITE_NULL || typeNeedle == SQLITE_NULL) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ nHaystack = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ nNeedle = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if !(nNeedle > 0) {
+ goto __2
+ }
+ if !(typeHaystack == SQLITE_BLOB && typeNeedle == SQLITE_BLOB) {
+ goto __3
+ }
+ zHaystack = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zNeedle = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ isText = 0
+ goto __4
+__3:
+ if !(typeHaystack != SQLITE_BLOB && typeNeedle != SQLITE_BLOB) {
+ goto __5
+ }
+ zHaystack = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zNeedle = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ isText = 1
+ goto __6
+__5:
+ pC1 = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zHaystack = Xsqlite3_value_text(tls, pC1)
+ if !(zHaystack == uintptr(0)) {
+ goto __7
+ }
+ goto endInstrOOM
+__7:
+ ;
+ nHaystack = Xsqlite3_value_bytes(tls, pC1)
+ pC2 = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ zNeedle = Xsqlite3_value_text(tls, pC2)
+ if !(zNeedle == uintptr(0)) {
+ goto __8
+ }
+ goto endInstrOOM
+__8:
+ ;
+ nNeedle = Xsqlite3_value_bytes(tls, pC2)
+ isText = 1
+__6:
+ ;
+__4:
+ ;
+ if !(zNeedle == uintptr(0) || nHaystack != 0 && zHaystack == uintptr(0)) {
+ goto __9
+ }
+ goto endInstrOOM
+__9:
+ ;
+ firstChar = *(*uint8)(unsafe.Pointer(zNeedle))
+__10:
+ if !(nNeedle <= nHaystack &&
+ (int32(*(*uint8)(unsafe.Pointer(zHaystack))) != int32(firstChar) || libc.Xmemcmp(tls, zHaystack, zNeedle, uint64(nNeedle)) != 0)) {
+ goto __11
+ }
+ N++
+__12:
+ nHaystack--
+ zHaystack++
+ goto __13
+__13:
+ if isText != 0 && int32(*(*uint8)(unsafe.Pointer(zHaystack)))&0xc0 == 0x80 {
+ goto __12
+ }
+ goto __14
+__14:
+ ;
+ goto __10
+__11:
+ ;
+ if !(nNeedle > nHaystack) {
+ goto __15
+ }
+ N = 0
+__15:
+ ;
+__2:
+ ;
+ Xsqlite3_result_int(tls, context, N)
+endInstr:
+ Xsqlite3_value_free(tls, pC1)
+ Xsqlite3_value_free(tls, pC2)
+ return
+endInstrOOM:
+ Xsqlite3_result_error_nomem(tls, context)
+ goto endInstr
+}
+
+func printfFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var zFormat uintptr
+ var n int32
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+
+ if argc >= 1 && libc.AssignUintptr(&zFormat, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != uintptr(0) {
+ (*PrintfArguments)(unsafe.Pointer(bp + 40)).FnArg = argc - 1
+ (*PrintfArguments)(unsafe.Pointer(bp + 40)).FnUsed = 0
+ (*PrintfArguments)(unsafe.Pointer(bp + 40)).FapArg = argv + uintptr(1)*8
+ Xsqlite3StrAccumInit(tls, bp+8, db, uintptr(0), 0, *(*int32)(unsafe.Pointer(db + 136)))
+ (*StrAccum)(unsafe.Pointer(bp + 8)).FprintfFlags = U8(SQLITE_PRINTF_SQLFUNC)
+ Xsqlite3_str_appendf(tls, bp+8, zFormat, libc.VaList(bp, bp+40))
+ n = int32((*StrAccum)(unsafe.Pointer(bp + 8)).FnChar)
+ Xsqlite3_result_text(tls, context, Xsqlite3StrAccumFinish(tls, bp+8), n,
+ *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ }
+}
+
+func substrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var z uintptr
+ var z2 uintptr
+ var len int32
+ var p0type int32
+ var p1 I64
+ var p2 I64
+ var negP2 int32 = 0
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == SQLITE_NULL ||
+ argc == 3 && Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))) == SQLITE_NULL {
+ return
+ }
+ p0type = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ p1 = I64(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))
+ if p0type == SQLITE_BLOB {
+ len = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ z = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if z == uintptr(0) {
+ return
+ }
+
+ } else {
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if z == uintptr(0) {
+ return
+ }
+ len = 0
+ if p1 < int64(0) {
+ for z2 = z; *(*uint8)(unsafe.Pointer(z2)) != 0; len++ {
+ {
+ if int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z2, 1)))) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z2)))&0xc0 == 0x80 {
+ z2++
+ }
+ }
+ }
+
+ }
+ }
+ }
+ if argc == 3 {
+ p2 = I64(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ if p2 < int64(0) {
+ p2 = -p2
+ negP2 = 1
+ }
+ } else {
+ p2 = I64(*(*int32)(unsafe.Pointer(Xsqlite3_context_db_handle(tls, context) + 136)))
+ }
+ if p1 < int64(0) {
+ p1 = p1 + I64(len)
+ if p1 < int64(0) {
+ p2 = p2 + p1
+ if p2 < int64(0) {
+ p2 = int64(0)
+ }
+ p1 = int64(0)
+ }
+ } else if p1 > int64(0) {
+ p1--
+ } else if p2 > int64(0) {
+ p2--
+ }
+ if negP2 != 0 {
+ p1 = p1 - p2
+ if p1 < int64(0) {
+ p2 = p2 + p1
+ p1 = int64(0)
+ }
+ }
+
+ if p0type != SQLITE_BLOB {
+ for *(*uint8)(unsafe.Pointer(z)) != 0 && p1 != 0 {
+ {
+ if int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z)))&0xc0 == 0x80 {
+ z++
+ }
+ }
+ }
+
+ p1--
+ }
+ for z2 = z; *(*uint8)(unsafe.Pointer(z2)) != 0 && p2 != 0; p2-- {
+ {
+ if int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z2, 1)))) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z2)))&0xc0 == 0x80 {
+ z2++
+ }
+ }
+ }
+
+ }
+ Xsqlite3_result_text64(tls, context, z, uint64((int64(z2)-int64(z))/1), libc.UintptrFromInt32(-1),
+ uint8(SQLITE_UTF8))
+ } else {
+ if p1+p2 > I64(len) {
+ p2 = I64(len) - p1
+ if p2 < int64(0) {
+ p2 = int64(0)
+ }
+ }
+ Xsqlite3_result_blob64(tls, context, z+uintptr(p1), U64(p2), libc.UintptrFromInt32(-1))
+ }
+}
+
+func roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var n int32 = 0
+
+ var zBuf uintptr
+
+ if argc == 2 {
+ if SQLITE_NULL == Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) {
+ return
+ }
+ n = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if n > 30 {
+ n = 30
+ }
+ if n < 0 {
+ n = 0
+ }
+ }
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_NULL {
+ return
+ }
+ *(*float64)(unsafe.Pointer(bp + 16)) = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if *(*float64)(unsafe.Pointer(bp + 16)) < -4503599627370496.0 || *(*float64)(unsafe.Pointer(bp + 16)) > +4503599627370496.0 {
+ } else if n == 0 {
+ *(*float64)(unsafe.Pointer(bp + 16)) = float64(libc.Int64FromFloat64(*(*float64)(unsafe.Pointer(bp + 16)) + func() float64 {
+ if *(*float64)(unsafe.Pointer(bp + 16)) < float64(0) {
+ return -0.5
+ }
+ return +0.5
+ }()))
+ } else {
+ zBuf = Xsqlite3_mprintf(tls, ts+15266, libc.VaList(bp, n, *(*float64)(unsafe.Pointer(bp + 16))))
+ if zBuf == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ return
+ }
+ Xsqlite3AtoF(tls, zBuf, bp+16, Xsqlite3Strlen30(tls, zBuf), uint8(SQLITE_UTF8))
+ Xsqlite3_free(tls, zBuf)
+ }
+ Xsqlite3_result_double(tls, context, *(*float64)(unsafe.Pointer(bp + 16)))
+}
+
+func contextMalloc(tls *libc.TLS, context uintptr, nByte I64) uintptr {
+ var z uintptr
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+
+ if nByte > I64(*(*int32)(unsafe.Pointer(db + 136))) {
+ Xsqlite3_result_error_toobig(tls, context)
+ z = uintptr(0)
+ } else {
+ z = Xsqlite3Malloc(tls, uint64(nByte))
+ if !(z != 0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ }
+ }
+ return z
+}
+
+func upperFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var z1 uintptr
+ var z2 uintptr
+ var i int32
+ var n int32
+ _ = argc
+ z2 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if z2 != 0 {
+ z1 = contextMalloc(tls, context, I64(n)+int64(1))
+ if z1 != 0 {
+ for i = 0; i < n; i++ {
+ *(*int8)(unsafe.Pointer(z1 + uintptr(i))) = int8(int32(*(*int8)(unsafe.Pointer(z2 + uintptr(i)))) & ^(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z2 + uintptr(i))))]) & 0x20))
+ }
+ Xsqlite3_result_text(tls, context, z1, n, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+ }
+}
+
+func lowerFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var z1 uintptr
+ var z2 uintptr
+ var i int32
+ var n int32
+ _ = argc
+ z2 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if z2 != 0 {
+ z1 = contextMalloc(tls, context, I64(n)+int64(1))
+ if z1 != 0 {
+ for i = 0; i < n; i++ {
+ *(*int8)(unsafe.Pointer(z1 + uintptr(i))) = int8(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z2 + uintptr(i))))])
+ }
+ Xsqlite3_result_text(tls, context, z1, n, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+ }
+}
+
+func randomFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ _ = NotUsed
+ _ = NotUsed2
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(Sqlite_int64(0))), bp)
+ if *(*Sqlite_int64)(unsafe.Pointer(bp)) < int64(0) {
+ *(*Sqlite_int64)(unsafe.Pointer(bp)) = -(*(*Sqlite_int64)(unsafe.Pointer(bp)) & (int64(0xffffffff) | int64(0x7fffffff)<<32))
+ }
+ Xsqlite3_result_int64(tls, context, *(*Sqlite_int64)(unsafe.Pointer(bp)))
+}
+
+func randomBlob(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var n Sqlite3_int64
+ var p uintptr
+
+ _ = argc
+ n = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if n < int64(1) {
+ n = int64(1)
+ }
+ p = contextMalloc(tls, context, n)
+ if p != 0 {
+ Xsqlite3_randomness(tls, int32(n), p)
+ Xsqlite3_result_blob(tls, context, p, int32(n), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+}
+
+func last_insert_rowid(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ _ = NotUsed
+ _ = NotUsed2
+
+ Xsqlite3_result_int64(tls, context, Xsqlite3_last_insert_rowid(tls, db))
+}
+
+func changes(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ _ = NotUsed
+ _ = NotUsed2
+ Xsqlite3_result_int64(tls, context, Xsqlite3_changes64(tls, db))
+}
+
+func total_changes(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ _ = NotUsed
+ _ = NotUsed2
+
+ Xsqlite3_result_int64(tls, context, Xsqlite3_total_changes64(tls, db))
+}
+
+type compareInfo = struct {
+ FmatchAll U8
+ FmatchOne U8
+ FmatchSet U8
+ FnoCase U8
+}
+
+var globInfo = compareInfo{FmatchAll: U8('*'), FmatchOne: U8('?'), FmatchSet: U8('[')}
+
+var likeInfoNorm = compareInfo{FmatchAll: U8('%'), FmatchOne: U8('_'), FnoCase: U8(1)}
+
+var likeInfoAlt = compareInfo{FmatchAll: U8('%'), FmatchOne: U8('_')}
+
+func patternCompare(tls *libc.TLS, zPattern uintptr, zString uintptr, pInfo uintptr, matchOther U32) int32 {
+ bp := tls.Alloc(19)
+ defer tls.Free(19)
+ *(*uintptr)(unsafe.Pointer(bp)) = zPattern
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = zString
+
+ var c U32
+ var c2 U32
+ var matchOne U32 = U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchOne)
+ var matchAll U32 = U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchAll)
+ var noCase U8 = (*compareInfo)(unsafe.Pointer(pInfo)).FnoCase
+ var zEscaped uintptr = uintptr(0)
+
+ for libc.AssignUint32(&c, func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp)
+ }()) != U32(0) {
+ if c == matchAll {
+ for libc.AssignUint32(&c, func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp)
+ }()) == matchAll ||
+ c == matchOne && matchOne != U32(0) {
+ if c == matchOne && Xsqlite3Utf8Read(tls, bp+8) == U32(0) {
+ return SQLITE_NOWILDCARDMATCH
+ }
+ }
+ if c == U32(0) {
+ return SQLITE_MATCH
+ } else if c == matchOther {
+ if int32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchSet) == 0 {
+ c = Xsqlite3Utf8Read(tls, bp)
+ if c == U32(0) {
+ return SQLITE_NOWILDCARDMATCH
+ }
+ } else {
+ for *(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != 0 {
+ var bMatch int32 = patternCompare(tls, *(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(-1), *(*uintptr)(unsafe.Pointer(bp + 8)), pInfo, matchOther)
+ if bMatch != SQLITE_NOMATCH {
+ return bMatch
+ }
+ {
+ if int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 8)), 1)))) >= 0xc0 {
+ for int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))))&0xc0 == 0x80 {
+ *(*uintptr)(unsafe.Pointer(bp + 8))++
+ }
+ }
+ }
+
+ }
+ return SQLITE_NOWILDCARDMATCH
+ }
+ }
+
+ if c < U32(0x80) {
+ var bMatch int32
+ if noCase != 0 {
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(c & U32(^(int32(Xsqlite3CtypeMap[uint8(c)]) & 0x20)))
+ *(*int8)(unsafe.Pointer(bp + 16 + 1)) = int8(Xsqlite3UpperToLower[uint8(c)])
+ *(*int8)(unsafe.Pointer(bp + 16 + 2)) = int8(0)
+ } else {
+ *(*int8)(unsafe.Pointer(bp + 16)) = int8(c)
+ *(*int8)(unsafe.Pointer(bp + 16 + 1)) = int8(0)
+ }
+ for 1 != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(libc.Xstrcspn(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp+16))
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))) == 0 {
+ break
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 8))++
+ bMatch = patternCompare(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)), pInfo, matchOther)
+ if bMatch != SQLITE_NOMATCH {
+ return bMatch
+ }
+ }
+ } else {
+ var bMatch int32
+ for libc.AssignUint32(&c2, func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 8)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp+8)
+ }()) != U32(0) {
+ if c2 != c {
+ continue
+ }
+ bMatch = patternCompare(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)), pInfo, matchOther)
+ if bMatch != SQLITE_NOMATCH {
+ return bMatch
+ }
+ }
+ }
+ return SQLITE_NOWILDCARDMATCH
+ }
+ if c == matchOther {
+ if int32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchSet) == 0 {
+ c = Xsqlite3Utf8Read(tls, bp)
+ if c == U32(0) {
+ return SQLITE_NOMATCH
+ }
+ zEscaped = *(*uintptr)(unsafe.Pointer(bp))
+ } else {
+ var prior_c U32 = U32(0)
+ var seen int32 = 0
+ var invert int32 = 0
+ c = Xsqlite3Utf8Read(tls, bp+8)
+ if c == U32(0) {
+ return SQLITE_NOMATCH
+ }
+ c2 = Xsqlite3Utf8Read(tls, bp)
+ if c2 == U32('^') {
+ invert = 1
+ c2 = Xsqlite3Utf8Read(tls, bp)
+ }
+ if c2 == U32(']') {
+ if c == U32(']') {
+ seen = 1
+ }
+ c2 = Xsqlite3Utf8Read(tls, bp)
+ }
+ for c2 != 0 && c2 != U32(']') {
+ if c2 == U32('-') && int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != ']' && int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0 && prior_c > U32(0) {
+ c2 = Xsqlite3Utf8Read(tls, bp)
+ if c >= prior_c && c <= c2 {
+ seen = 1
+ }
+ prior_c = U32(0)
+ } else {
+ if c == c2 {
+ seen = 1
+ }
+ prior_c = c2
+ }
+ c2 = Xsqlite3Utf8Read(tls, bp)
+ }
+ if c2 == U32(0) || seen^invert == 0 {
+ return SQLITE_NOMATCH
+ }
+ continue
+ }
+ }
+ c2 = func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 8)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp+8)
+ }()
+ if c == c2 {
+ continue
+ }
+ if noCase != 0 && int32(Xsqlite3UpperToLower[uint8(c)]) == int32(Xsqlite3UpperToLower[uint8(c2)]) && c < U32(0x80) && c2 < U32(0x80) {
+ continue
+ }
+ if c == matchOne && *(*uintptr)(unsafe.Pointer(bp)) != zEscaped && c2 != U32(0) {
+ continue
+ }
+ return SQLITE_NOMATCH
+ }
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))) == 0 {
+ return SQLITE_MATCH
+ }
+ return SQLITE_NOMATCH
+}
+
+// The sqlite3_strglob() interface. Return 0 on a match (like strcmp()) and
+// non-zero if there is no match.
+func Xsqlite3_strglob(tls *libc.TLS, zGlobPattern uintptr, zString uintptr) int32 {
+ if zString == uintptr(0) {
+ return libc.Bool32(zGlobPattern != uintptr(0))
+ } else if zGlobPattern == uintptr(0) {
+ return 1
+ } else {
+ return patternCompare(tls, zGlobPattern, zString, uintptr(unsafe.Pointer(&globInfo)), uint32('['))
+ }
+ return int32(0)
+}
+
+// The sqlite3_strlike() interface. Return 0 on a match and non-zero for
+// a miss - like strcmp().
+func Xsqlite3_strlike(tls *libc.TLS, zPattern uintptr, zStr uintptr, esc uint32) int32 {
+ if zStr == uintptr(0) {
+ return libc.Bool32(zPattern != uintptr(0))
+ } else if zPattern == uintptr(0) {
+ return 1
+ } else {
+ return patternCompare(tls, zPattern, zStr, uintptr(unsafe.Pointer(&likeInfoNorm)), esc)
+ }
+ return int32(0)
+}
+
+func likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var zA uintptr
+ var zB uintptr
+ var escape U32
+ var nPat int32
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var pInfo uintptr = Xsqlite3_user_data(tls, context)
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_BLOB ||
+ Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == SQLITE_BLOB {
+ Xsqlite3_result_int(tls, context, 0)
+ return
+ }
+
+ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) {
+ Xsqlite3_result_error(tls, context, ts+15271, -1)
+ return
+ }
+ if argc == 3 {
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) {
+ return
+ }
+ if Xsqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp)), -1) != 1 {
+ Xsqlite3_result_error(tls, context,
+ ts+15304, -1)
+ return
+ }
+ escape = Xsqlite3Utf8Read(tls, bp)
+ if escape == U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchAll) || escape == U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchOne) {
+ libc.X__builtin___memcpy_chk(tls, bp+8, pInfo, uint64(unsafe.Sizeof(compareInfo{})), libc.X__builtin_object_size(tls, bp+8, 0))
+ pInfo = bp + 8
+ if escape == U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchAll) {
+ (*compareInfo)(unsafe.Pointer(pInfo)).FmatchAll = U8(0)
+ }
+ if escape == U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchOne) {
+ (*compareInfo)(unsafe.Pointer(pInfo)).FmatchOne = U8(0)
+ }
+ }
+ } else {
+ escape = U32((*compareInfo)(unsafe.Pointer(pInfo)).FmatchSet)
+ }
+ zB = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ zA = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if zA != 0 && zB != 0 {
+ Xsqlite3_result_int(tls, context,
+ libc.Bool32(patternCompare(tls, zB, zA, pInfo, escape) == SQLITE_MATCH))
+ }
+}
+
+func nullifFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ var pColl uintptr = sqlite3GetFuncCollSeq(tls, context)
+ _ = NotUsed
+ if Xsqlite3MemCompare(tls, *(*uintptr)(unsafe.Pointer(argv)), *(*uintptr)(unsafe.Pointer(argv + 1*8)), pColl) != 0 {
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv)))
+ }
+}
+
+func versionFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ _ = NotUsed
+ _ = NotUsed2
+
+ Xsqlite3_result_text(tls, context, Xsqlite3_libversion(tls), -1, uintptr(0))
+}
+
+func sourceidFunc(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ _ = NotUsed
+ _ = NotUsed2
+
+ Xsqlite3_result_text(tls, context, Xsqlite3_sourceid(tls), -1, uintptr(0))
+}
+
+func errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ _ = argc
+ _ = context
+ Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), ts+3658, libc.VaList(bp, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))))
+}
+
+func compileoptionusedFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var zOptName uintptr
+
+ _ = argc
+
+ if libc.AssignUintptr(&zOptName, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != uintptr(0) {
+ Xsqlite3_result_int(tls, context, Xsqlite3_compileoption_used(tls, zOptName))
+ }
+}
+
+func compileoptiongetFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var n int32
+
+ _ = argc
+
+ n = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ Xsqlite3_result_text(tls, context, Xsqlite3_compileoption_get(tls, n), -1, uintptr(0))
+}
+
+var hexdigits = [16]int8{
+ int8('0'), int8('1'), int8('2'), int8('3'), int8('4'), int8('5'), int8('6'), int8('7'),
+ int8('8'), int8('9'), int8('A'), int8('B'), int8('C'), int8('D'), int8('E'), int8('F'),
+}
+
+// Append to pStr text that is the SQL literal representation of the
+// value contained in pValue.
+func Xsqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ switch Xsqlite3_value_type(tls, pValue) {
+ case SQLITE_FLOAT:
+ {
+ var r1 float64
+
+ var zVal uintptr
+ r1 = Xsqlite3_value_double(tls, pValue)
+ Xsqlite3_str_appendf(tls, pStr, ts+5328, libc.VaList(bp, r1))
+ zVal = Xsqlite3_str_value(tls, pStr)
+ if zVal != 0 {
+ Xsqlite3AtoF(tls, zVal, bp+32, int32((*StrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8))
+ if r1 != *(*float64)(unsafe.Pointer(bp + 32)) {
+ Xsqlite3_str_reset(tls, pStr)
+ Xsqlite3_str_appendf(tls, pStr, ts+15349, libc.VaList(bp+8, r1))
+ }
+ }
+ break
+
+ }
+ case SQLITE_INTEGER:
+ {
+ Xsqlite3_str_appendf(tls, pStr, ts+1327, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue)))
+ break
+
+ }
+ case SQLITE_BLOB:
+ {
+ var zBlob uintptr = Xsqlite3_value_blob(tls, pValue)
+ var nBlob I64 = I64(Xsqlite3_value_bytes(tls, pValue))
+
+ Xsqlite3StrAccumEnlarge(tls, pStr, nBlob*int64(2)+int64(4))
+ if int32((*StrAccum)(unsafe.Pointer(pStr)).FaccError) == 0 {
+ var zText uintptr = (*StrAccum)(unsafe.Pointer(pStr)).FzText
+ var i int32
+ for i = 0; I64(i) < nBlob; i++ {
+ *(*int8)(unsafe.Pointer(zText + uintptr(i*2+2))) = hexdigits[int32(*(*int8)(unsafe.Pointer(zBlob + uintptr(i))))>>4&0x0F]
+ *(*int8)(unsafe.Pointer(zText + uintptr(i*2+3))) = hexdigits[int32(*(*int8)(unsafe.Pointer(zBlob + uintptr(i))))&0x0F]
+ }
+ *(*int8)(unsafe.Pointer(zText + uintptr(nBlob*int64(2)+int64(2)))) = int8('\'')
+ *(*int8)(unsafe.Pointer(zText + uintptr(nBlob*int64(2)+int64(3)))) = int8(0)
+ *(*int8)(unsafe.Pointer(zText)) = int8('X')
+ *(*int8)(unsafe.Pointer(zText + 1)) = int8('\'')
+ (*StrAccum)(unsafe.Pointer(pStr)).FnChar = U32(nBlob*int64(2) + int64(3))
+ }
+ break
+
+ }
+ case SQLITE_TEXT:
+ {
+ var zArg uintptr = Xsqlite3_value_text(tls, pValue)
+ Xsqlite3_str_appendf(tls, pStr, ts+15356, libc.VaList(bp+24, zArg))
+ break
+
+ }
+ default:
+ {
+ Xsqlite3_str_append(tls, pStr, ts+1548, 4)
+ break
+
+ }
+ }
+}
+
+func quoteFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+
+ _ = argc
+ Xsqlite3StrAccumInit(tls, bp, db, uintptr(0), 0, *(*int32)(unsafe.Pointer(db + 136)))
+ Xsqlite3QuoteValue(tls, bp, *(*uintptr)(unsafe.Pointer(argv)))
+ Xsqlite3_result_text(tls, context, Xsqlite3StrAccumFinish(tls, bp), int32((*Sqlite3_str)(unsafe.Pointer(bp)).FnChar),
+ *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ if int32((*Sqlite3_str)(unsafe.Pointer(bp)).FaccError) != SQLITE_OK {
+ Xsqlite3_result_null(tls, context)
+ Xsqlite3_result_error_code(tls, context, int32((*Sqlite3_str)(unsafe.Pointer(bp)).FaccError))
+ }
+}
+
+func unicodeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ _ = argc
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 && *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0 {
+ Xsqlite3_result_int(tls, context, int32(Xsqlite3Utf8Read(tls, bp)))
+ }
+}
+
+func charFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var z uintptr
+ var zOut uintptr
+ var i int32
+ zOut = libc.AssignUintptr(&z, Xsqlite3_malloc64(tls, uint64(argc*4+1)))
+ if z == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ return
+ }
+ for i = 0; i < argc; i++ {
+ var x Sqlite3_int64
+ var c uint32
+ x = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ if x < int64(0) || x > int64(0x10ffff) {
+ x = int64(0xfffd)
+ }
+ c = uint32(x & int64(0x1fffff))
+ if c < uint32(0x00080) {
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = U8(c & uint32(0xFF))
+ } else if c < uint32(0x00800) {
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0xC0 + int32(U8(c>>6&uint32(0x1F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ } else if c < uint32(0x10000) {
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0xE0 + int32(U8(c>>12&uint32(0x0F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ } else {
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0xF0 + int32(U8(c>>18&uint32(0x07))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c>>12&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c>>6&uint32(0x3F))))
+ *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = uint8(0x80 + int32(U8(c&uint32(0x3F))))
+ }
+ }
+ Xsqlite3_result_text64(tls, context, z, uint64((int64(zOut)-int64(z))/1), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})), uint8(SQLITE_UTF8))
+}
+
+func hexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var i int32
+ var n int32
+ var pBlob uintptr
+ var zHex uintptr
+ var z uintptr
+
+ _ = argc
+ pBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ z = libc.AssignUintptr(&zHex, contextMalloc(tls, context, I64(n)*int64(2)+int64(1)))
+ if zHex != 0 {
+ i = 0
+ __1:
+ if !(i < n) {
+ goto __3
+ }
+ {
+ var c uint8 = *(*uint8)(unsafe.Pointer(pBlob))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = hexdigits[int32(c)>>4&0xf]
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))) = hexdigits[int32(c)&0xf]
+
+ }
+ goto __2
+ __2:
+ i++
+ pBlob++
+ goto __1
+ goto __3
+ __3:
+ ;
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ Xsqlite3_result_text(tls, context, zHex, n*2, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+}
+
+func strContainsChar(tls *libc.TLS, zStr uintptr, nStr int32, ch U32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zEnd uintptr = zStr + uintptr(nStr)
+ *(*uintptr)(unsafe.Pointer(bp)) = zStr
+ for *(*uintptr)(unsafe.Pointer(bp)) < zEnd {
+ var tst U32 = func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp)
+ }()
+ if tst == ch {
+ return 1
+ }
+ }
+ return 0
+}
+
+func unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zPass uintptr
+ var nPass int32
+
+ var nHex int32
+ var pBlob uintptr
+ var p uintptr
+ var ch U32
+ var c U8
+ var d U8
+ zPass = ts + 1547
+ nPass = 0
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ pBlob = uintptr(0)
+ p = uintptr(0)
+
+ if !(argc == 2) {
+ goto __1
+ }
+ zPass = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ nPass = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+__1:
+ ;
+ if !(!(*(*uintptr)(unsafe.Pointer(bp)) != 0) || !(zPass != 0)) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ p = libc.AssignUintptr(&pBlob, contextMalloc(tls, pCtx, int64(nHex/2+1)))
+ if !(pBlob != 0) {
+ goto __3
+ }
+
+__4:
+ if !(int32(libc.AssignUint8(&c, *(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))))) != 0x00) {
+ goto __5
+ }
+__6:
+ if !!(int32(Xsqlite3CtypeMap[c])&0x08 != 0) {
+ goto __7
+ }
+ ch = func() uint32 {
+ if int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) < 0x80 {
+ return uint32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 1))))
+ }
+ return Xsqlite3Utf8Read(tls, bp)
+ }()
+
+ if !!(strContainsChar(tls, zPass, nPass, ch) != 0) {
+ goto __8
+ }
+ goto unhex_null
+__8:
+ ;
+ c = *(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))
+ if !(int32(c) == 0x00) {
+ goto __9
+ }
+ goto unhex_done
+__9:
+ ;
+ goto __6
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp))++
+
+ d = *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 1)))
+ if !!(int32(Xsqlite3CtypeMap[d])&0x08 != 0) {
+ goto __10
+ }
+ goto unhex_null
+__10:
+ ;
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = U8(int32(Xsqlite3HexToInt(tls, int32(c)))<<4 | int32(Xsqlite3HexToInt(tls, int32(d))))
+ goto __4
+__5:
+ ;
+__3:
+ ;
+unhex_done:
+ Xsqlite3_result_blob(tls, pCtx, pBlob, int32((int64(p)-int64(pBlob))/1), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ return
+
+unhex_null:
+ Xsqlite3_free(tls, pBlob)
+ return
+}
+
+func zeroblobFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var n I64
+ var rc int32
+
+ _ = argc
+ n = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if n < int64(0) {
+ n = int64(0)
+ }
+ rc = Xsqlite3_result_zeroblob64(tls, context, uint64(n))
+ if rc != 0 {
+ Xsqlite3_result_error_code(tls, context, rc)
+ }
+}
+
+func replaceFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var zStr uintptr
+ var zPattern uintptr
+ var zRep uintptr
+ var zOut uintptr
+ var nStr int32
+ var nPattern int32
+ var nRep int32
+ var nOut I64
+ var loopLimit int32
+ var i int32
+ var j int32
+ var cntExpand uint32
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+
+ _ = argc
+ zStr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zStr == uintptr(0) {
+ return
+ }
+ nStr = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ zPattern = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if zPattern == uintptr(0) {
+ return
+ }
+ if int32(*(*uint8)(unsafe.Pointer(zPattern))) == 0 {
+ Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv)))
+ return
+ }
+ nPattern = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ zRep = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ if zRep == uintptr(0) {
+ return
+ }
+ nRep = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+
+ nOut = I64(nStr + 1)
+
+ zOut = contextMalloc(tls, context, nOut)
+ if zOut == uintptr(0) {
+ return
+ }
+ loopLimit = nStr - nPattern
+ cntExpand = uint32(0)
+ for i = libc.AssignInt32(&j, 0); i <= loopLimit; i++ {
+ if int32(*(*uint8)(unsafe.Pointer(zStr + uintptr(i)))) != int32(*(*uint8)(unsafe.Pointer(zPattern))) || libc.Xmemcmp(tls, zStr+uintptr(i), zPattern, uint64(nPattern)) != 0 {
+ *(*uint8)(unsafe.Pointer(zOut + uintptr(libc.PostIncInt32(&j, 1)))) = *(*uint8)(unsafe.Pointer(zStr + uintptr(i)))
+ } else {
+ if nRep > nPattern {
+ nOut = nOut + I64(nRep-nPattern)
+
+ if nOut-int64(1) > I64(*(*int32)(unsafe.Pointer(db + 136))) {
+ Xsqlite3_result_error_toobig(tls, context)
+ Xsqlite3_free(tls, zOut)
+ return
+ }
+ cntExpand++
+ if cntExpand&(cntExpand-uint32(1)) == uint32(0) {
+ var zOld uintptr
+ zOld = zOut
+ zOut = Xsqlite3Realloc(tls, zOut, uint64(I64(int32(nOut))+(nOut-I64(nStr)-int64(1))))
+ if zOut == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ Xsqlite3_free(tls, zOld)
+ return
+ }
+ }
+ }
+ libc.X__builtin___memcpy_chk(tls, zOut+uintptr(j), zRep, uint64(nRep), libc.X__builtin_object_size(tls, zOut+uintptr(j), 0))
+ j = j + nRep
+ i = i + (nPattern - 1)
+ }
+ }
+
+ libc.X__builtin___memcpy_chk(tls, zOut+uintptr(j), zStr+uintptr(i), uint64(nStr-i), libc.X__builtin_object_size(tls, zOut+uintptr(j), 0))
+ j = j + (nStr - i)
+
+ *(*uint8)(unsafe.Pointer(zOut + uintptr(j))) = uint8(0)
+ Xsqlite3_result_text(tls, context, zOut, j, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+}
+
+func trimFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var zIn uintptr
+ var zCharSet uintptr
+ var nIn uint32
+ var flags int32
+ var i int32
+ var aLen uintptr = uintptr(0)
+ var azChar uintptr = uintptr(0)
+ var nChar int32
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_NULL {
+ return
+ }
+ zIn = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zIn == uintptr(0) {
+ return
+ }
+ nIn = uint32(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))))
+
+ if argc == 1 {
+ nChar = 1
+ aLen = uintptr(unsafe.Pointer(&lenOne))
+ azChar = uintptr(unsafe.Pointer(&azOne))
+ zCharSet = uintptr(0)
+ } else if libc.AssignUintptr(&zCharSet, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))) == uintptr(0) {
+ return
+ } else {
+ var z uintptr
+ z = zCharSet
+ nChar = 0
+ for ; *(*uint8)(unsafe.Pointer(z)) != 0; nChar++ {
+ {
+ if int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z)))&0xc0 == 0x80 {
+ z++
+ }
+ }
+ }
+
+ }
+ if nChar > 0 {
+ azChar = contextMalloc(tls, context,
+ int64(uint64(I64(nChar))*(uint64(unsafe.Sizeof(uintptr(0)))+uint64(unsafe.Sizeof(uint32(0))))))
+ if azChar == uintptr(0) {
+ return
+ }
+ aLen = azChar + uintptr(nChar)*8
+ z = zCharSet
+ nChar = 0
+ for ; *(*uint8)(unsafe.Pointer(z)) != 0; nChar++ {
+ *(*uintptr)(unsafe.Pointer(azChar + uintptr(nChar)*8)) = z
+ {
+ if int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) >= 0xc0 {
+ for int32(*(*uint8)(unsafe.Pointer(z)))&0xc0 == 0x80 {
+ z++
+ }
+ }
+ }
+
+ *(*uint32)(unsafe.Pointer(aLen + uintptr(nChar)*4)) = uint32((int64(z) - int64(*(*uintptr)(unsafe.Pointer(azChar + uintptr(nChar)*8)))) / 1)
+ }
+ }
+ }
+ if nChar > 0 {
+ flags = int32(Xsqlite3_user_data(tls, context))
+ if flags&1 != 0 {
+ for nIn > uint32(0) {
+ var len uint32 = uint32(0)
+ for i = 0; i < nChar; i++ {
+ len = *(*uint32)(unsafe.Pointer(aLen + uintptr(i)*4))
+ if len <= nIn && libc.Xmemcmp(tls, zIn, *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(len)) == 0 {
+ break
+ }
+ }
+ if i >= nChar {
+ break
+ }
+ zIn += uintptr(len)
+ nIn = nIn - len
+ }
+ }
+ if flags&2 != 0 {
+ for nIn > uint32(0) {
+ var len uint32 = uint32(0)
+ for i = 0; i < nChar; i++ {
+ len = *(*uint32)(unsafe.Pointer(aLen + uintptr(i)*4))
+ if len <= nIn && libc.Xmemcmp(tls, zIn+uintptr(nIn-len), *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(len)) == 0 {
+ break
+ }
+ }
+ if i >= nChar {
+ break
+ }
+ nIn = nIn - len
+ }
+ }
+ if zCharSet != 0 {
+ Xsqlite3_free(tls, azChar)
+ }
+ }
+ Xsqlite3_result_text(tls, context, zIn, int32(nIn), libc.UintptrFromInt32(-1))
+}
+
+var lenOne = [1]uint32{uint32(1)}
+var azOne = [1]uintptr{ts + 11323}
+
+func soundexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zIn uintptr
+ var i int32
+ var j int32
+
+ zIn = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zIn == uintptr(0) {
+ zIn = ts + 1547
+ }
+ for i = 0; *(*U8)(unsafe.Pointer(zIn + uintptr(i))) != 0 && !(int32(Xsqlite3CtypeMap[*(*U8)(unsafe.Pointer(zIn + uintptr(i)))])&0x02 != 0); i++ {
+ }
+ if *(*U8)(unsafe.Pointer(zIn + uintptr(i))) != 0 {
+ var prevcode U8 = iCode[int32(*(*U8)(unsafe.Pointer(zIn + uintptr(i))))&0x7f]
+ *(*int8)(unsafe.Pointer(bp)) = int8(int32(*(*U8)(unsafe.Pointer(zIn + uintptr(i)))) & ^(int32(Xsqlite3CtypeMap[*(*U8)(unsafe.Pointer(zIn + uintptr(i)))]) & 0x20))
+ for j = 1; j < 4 && *(*U8)(unsafe.Pointer(zIn + uintptr(i))) != 0; i++ {
+ var code int32 = int32(iCode[int32(*(*U8)(unsafe.Pointer(zIn + uintptr(i))))&0x7f])
+ if code > 0 {
+ if code != int32(prevcode) {
+ prevcode = U8(code)
+ *(*int8)(unsafe.Pointer(bp + uintptr(libc.PostIncInt32(&j, 1)))) = int8(code + '0')
+ }
+ } else {
+ prevcode = U8(0)
+ }
+ }
+ for j < 4 {
+ *(*int8)(unsafe.Pointer(bp + uintptr(libc.PostIncInt32(&j, 1)))) = int8('0')
+ }
+ *(*int8)(unsafe.Pointer(bp + uintptr(j))) = int8(0)
+ Xsqlite3_result_text(tls, context, bp, 4, libc.UintptrFromInt32(-1))
+ } else {
+ Xsqlite3_result_text(tls, context, ts+15359, 4, uintptr(0))
+ }
+}
+
+var iCode = [128]uint8{
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(1), uint8(2), uint8(3), uint8(0), uint8(1), uint8(2), uint8(0), uint8(0), uint8(2), uint8(2), uint8(4), uint8(5), uint8(5), uint8(0),
+ uint8(1), uint8(2), uint8(6), uint8(2), uint8(3), uint8(0), uint8(1), uint8(0), uint8(2), uint8(0), uint8(2), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(1), uint8(2), uint8(3), uint8(0), uint8(1), uint8(2), uint8(0), uint8(0), uint8(2), uint8(2), uint8(4), uint8(5), uint8(5), uint8(0),
+ uint8(1), uint8(2), uint8(6), uint8(2), uint8(3), uint8(0), uint8(1), uint8(0), uint8(2), uint8(0), uint8(2), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+}
+
+func loadExt(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zFile uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var zProc uintptr
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_LoadExtFunc) == uint64(0) {
+ Xsqlite3_result_error(tls, context, ts+12503, -1)
+ return
+ }
+
+ if argc == 2 {
+ zProc = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ } else {
+ zProc = uintptr(0)
+ }
+ if zFile != 0 && Xsqlite3_load_extension(tls, db, zFile, zProc, bp) != 0 {
+ Xsqlite3_result_error(tls, context, *(*uintptr)(unsafe.Pointer(bp)), -1)
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+}
+
+// An instance of the following structure holds the context of a
+// sum() or avg() aggregate computation.
+type SumCtx1 = struct {
+ FrSum float64
+ FiSum I64
+ Fcnt I64
+ Foverflow U8
+ Fapprox U8
+ F__ccgo_pad1 [6]byte
+}
+
+// An instance of the following structure holds the context of a
+// sum() or avg() aggregate computation.
+type SumCtx = SumCtx1
+
+func sumStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ var type1 int32
+
+ _ = argc
+ p = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(SumCtx{})))
+ type1 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if p != 0 && type1 != SQLITE_NULL {
+ (*SumCtx)(unsafe.Pointer(p)).Fcnt++
+ if type1 == SQLITE_INTEGER {
+ var v I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ *(*float64)(unsafe.Pointer(p)) += float64(v)
+ if int32((*SumCtx)(unsafe.Pointer(p)).Fapprox)|int32((*SumCtx)(unsafe.Pointer(p)).Foverflow) == 0 && Xsqlite3AddInt64(tls, p+8, v) != 0 {
+ (*SumCtx)(unsafe.Pointer(p)).Fapprox = libc.AssignPtrUint8(p+24, U8(1))
+ }
+ } else {
+ *(*float64)(unsafe.Pointer(p)) += Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ (*SumCtx)(unsafe.Pointer(p)).Fapprox = U8(1)
+ }
+ }
+}
+
+func sumInverse(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ var type1 int32
+
+ _ = argc
+ p = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(SumCtx{})))
+ type1 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ if p != 0 && type1 != SQLITE_NULL {
+ (*SumCtx)(unsafe.Pointer(p)).Fcnt--
+
+ if type1 == SQLITE_INTEGER && int32((*SumCtx)(unsafe.Pointer(p)).Fapprox) == 0 {
+ var v I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ *(*float64)(unsafe.Pointer(p)) -= float64(v)
+ *(*I64)(unsafe.Pointer(p + 8)) -= v
+ } else {
+ *(*float64)(unsafe.Pointer(p)) -= Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ }
+ }
+}
+
+func sumFinalize(tls *libc.TLS, context uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, context, 0)
+ if p != 0 && (*SumCtx)(unsafe.Pointer(p)).Fcnt > int64(0) {
+ if (*SumCtx)(unsafe.Pointer(p)).Foverflow != 0 {
+ Xsqlite3_result_error(tls, context, ts+15249, -1)
+ } else if (*SumCtx)(unsafe.Pointer(p)).Fapprox != 0 {
+ Xsqlite3_result_double(tls, context, (*SumCtx)(unsafe.Pointer(p)).FrSum)
+ } else {
+ Xsqlite3_result_int64(tls, context, (*SumCtx)(unsafe.Pointer(p)).FiSum)
+ }
+ }
+}
+
+func avgFinalize(tls *libc.TLS, context uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, context, 0)
+ if p != 0 && (*SumCtx)(unsafe.Pointer(p)).Fcnt > int64(0) {
+ Xsqlite3_result_double(tls, context, (*SumCtx)(unsafe.Pointer(p)).FrSum/float64((*SumCtx)(unsafe.Pointer(p)).Fcnt))
+ }
+}
+
+func totalFinalize(tls *libc.TLS, context uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, context, 0)
+
+ Xsqlite3_result_double(tls, context, func() float64 {
+ if p != 0 {
+ return (*SumCtx)(unsafe.Pointer(p)).FrSum
+ }
+ return float64(0)
+ }())
+}
+
+// The following structure keeps track of state information for the
+// count() aggregate function.
+type CountCtx1 = struct{ Fn I64 }
+
+// The following structure keeps track of state information for the
+// count() aggregate function.
+type CountCtx = CountCtx1
+
+func countStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(CountCtx{})))
+ if (argc == 0 || SQLITE_NULL != Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv)))) && p != 0 {
+ (*CountCtx)(unsafe.Pointer(p)).Fn++
+ }
+
+}
+
+func countFinalize(tls *libc.TLS, context uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, context, 0)
+ Xsqlite3_result_int64(tls, context, func() int64 {
+ if p != 0 {
+ return (*CountCtx)(unsafe.Pointer(p)).Fn
+ }
+ return int64(0)
+ }())
+}
+
+func countInverse(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, ctx, int32(unsafe.Sizeof(CountCtx{})))
+
+ if (argc == 0 || SQLITE_NULL != Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv)))) && p != 0 {
+ (*CountCtx)(unsafe.Pointer(p)).Fn--
+ }
+}
+
+func minmaxStep(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) {
+ var pArg uintptr = *(*uintptr)(unsafe.Pointer(argv))
+ var pBest uintptr
+ _ = NotUsed
+
+ pBest = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(Mem{})))
+ if !(pBest != 0) {
+ return
+ }
+
+ if Xsqlite3_value_type(tls, pArg) == SQLITE_NULL {
+ if (*Mem)(unsafe.Pointer(pBest)).Fflags != 0 {
+ sqlite3SkipAccumulatorLoad(tls, context)
+ }
+ } else if (*Mem)(unsafe.Pointer(pBest)).Fflags != 0 {
+ var max int32
+ var cmp int32
+ var pColl uintptr = sqlite3GetFuncCollSeq(tls, context)
+
+ max = libc.Bool32(Xsqlite3_user_data(tls, context) != uintptr(0))
+ cmp = Xsqlite3MemCompare(tls, pBest, pArg, pColl)
+ if max != 0 && cmp < 0 || !(max != 0) && cmp > 0 {
+ Xsqlite3VdbeMemCopy(tls, pBest, pArg)
+ } else {
+ sqlite3SkipAccumulatorLoad(tls, context)
+ }
+ } else {
+ (*Mem)(unsafe.Pointer(pBest)).Fdb = Xsqlite3_context_db_handle(tls, context)
+ Xsqlite3VdbeMemCopy(tls, pBest, pArg)
+ }
+}
+
+func minMaxValueFinalize(tls *libc.TLS, context uintptr, bValue int32) {
+ var pRes uintptr
+ pRes = Xsqlite3_aggregate_context(tls, context, 0)
+ if pRes != 0 {
+ if (*Sqlite3_value)(unsafe.Pointer(pRes)).Fflags != 0 {
+ Xsqlite3_result_value(tls, context, pRes)
+ }
+ if bValue == 0 {
+ Xsqlite3VdbeMemRelease(tls, pRes)
+ }
+ }
+}
+
+func minMaxValue(tls *libc.TLS, context uintptr) {
+ minMaxValueFinalize(tls, context, 1)
+}
+
+func minMaxFinalize(tls *libc.TLS, context uintptr) {
+ minMaxValueFinalize(tls, context, 0)
+}
+
+// group_concat(EXPR, ?SEPARATOR?)
+//
+// The SEPARATOR goes before the EXPR string. This is tragic. The
+// groupConcatInverse() implementation would have been easier if the
+// SEPARATOR were appended after EXPR. And the order is undocumented,
+// so we could change it, in theory. But the old behavior has been
+// around for so long that we dare not, for fear of breaking something.
+type GroupConcatCtx = struct {
+ Fstr StrAccum
+ FnAccum int32
+ FnFirstSepLength int32
+ FpnSepLengths uintptr
+}
+
+func groupConcatStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var zVal uintptr
+ var pGCC uintptr
+ var zSep uintptr
+ var nVal int32
+ var nSep int32
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_NULL {
+ return
+ }
+ pGCC = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(GroupConcatCtx{})))
+ if pGCC != 0 {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var firstTerm int32 = libc.Bool32((*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FmxAlloc == U32(0))
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FmxAlloc = U32(*(*int32)(unsafe.Pointer(db + 136)))
+ if argc == 1 {
+ if !(firstTerm != 0) {
+ Xsqlite3_str_appendchar(tls, pGCC, 1, int8(','))
+ } else {
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnFirstSepLength = 1
+ }
+ } else if !(firstTerm != 0) {
+ zSep = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ nSep = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if zSep != 0 {
+ Xsqlite3_str_append(tls, pGCC, zSep, nSep)
+ } else {
+ nSep = 0
+ }
+ if nSep != (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnFirstSepLength || (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths != uintptr(0) {
+ var pnsl uintptr = (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths
+ if pnsl == uintptr(0) {
+ pnsl = Xsqlite3_malloc64(tls, uint64((*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum+1)*uint64(unsafe.Sizeof(int32(0))))
+ if pnsl != uintptr(0) {
+ var i int32 = 0
+ var nA int32 = (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum - 1
+ for i < nA {
+ *(*int32)(unsafe.Pointer(pnsl + uintptr(libc.PostIncInt32(&i, 1))*4)) = (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnFirstSepLength
+ }
+ }
+ } else {
+ pnsl = Xsqlite3_realloc64(tls, pnsl, uint64((*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum)*uint64(unsafe.Sizeof(int32(0))))
+ }
+ if pnsl != uintptr(0) {
+ if (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum > 0 {
+ *(*int32)(unsafe.Pointer(pnsl + uintptr((*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum-1)*4)) = nSep
+ }
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths = pnsl
+ } else {
+ Xsqlite3StrAccumSetError(tls, pGCC, uint8(SQLITE_NOMEM))
+ }
+ }
+ } else {
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnFirstSepLength = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ }
+ *(*int32)(unsafe.Pointer(pGCC + 32)) += 1
+ zVal = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ nVal = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zVal != 0 {
+ Xsqlite3_str_append(tls, pGCC, zVal, nVal)
+ }
+ }
+}
+
+func groupConcatInverse(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var pGCC uintptr
+
+ _ = argc
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv))) == SQLITE_NULL {
+ return
+ }
+ pGCC = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(GroupConcatCtx{})))
+
+ if pGCC != 0 {
+ var nVS int32
+
+ Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ nVS = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ *(*int32)(unsafe.Pointer(pGCC + 32)) -= 1
+ if (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths != uintptr(0) {
+ if (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum > 0 {
+ nVS = nVS + *(*int32)(unsafe.Pointer((*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths))
+ libc.X__builtin___memmove_chk(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths+uintptr(1)*4, uint64((*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum-1)*uint64(unsafe.Sizeof(int32(0))), libc.X__builtin_object_size(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths, 0))
+ }
+ } else {
+ nVS = nVS + (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FnFirstSepLength
+ }
+ if nVS >= int32((*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar) {
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar = U32(0)
+ } else {
+ *(*U32)(unsafe.Pointer(pGCC + 24)) -= U32(nVS)
+ libc.X__builtin___memmove_chk(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FzText, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FzText+uintptr(nVS), uint64((*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar), libc.X__builtin_object_size(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FzText, 0))
+ }
+ if (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar == U32(0) {
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FmxAlloc = U32(0)
+ Xsqlite3_free(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths)
+ (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths = uintptr(0)
+ }
+ }
+}
+
+func groupConcatFinalize(tls *libc.TLS, context uintptr) {
+ var pGCC uintptr = Xsqlite3_aggregate_context(tls, context, 0)
+ if pGCC != 0 {
+ Xsqlite3ResultStrAccum(tls, context, pGCC)
+ Xsqlite3_free(tls, (*GroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths)
+ }
+}
+
+func groupConcatValue(tls *libc.TLS, context uintptr) {
+ var pGCC uintptr = Xsqlite3_aggregate_context(tls, context, 0)
+ if pGCC != 0 {
+ var pAccum uintptr = pGCC
+ if int32((*StrAccum)(unsafe.Pointer(pAccum)).FaccError) == SQLITE_TOOBIG {
+ Xsqlite3_result_error_toobig(tls, context)
+ } else if int32((*StrAccum)(unsafe.Pointer(pAccum)).FaccError) == SQLITE_NOMEM {
+ Xsqlite3_result_error_nomem(tls, context)
+ } else {
+ var zText uintptr = Xsqlite3_str_value(tls, pAccum)
+ Xsqlite3_result_text(tls, context, zText, int32((*StrAccum)(unsafe.Pointer(pAccum)).FnChar), libc.UintptrFromInt32(-1))
+ }
+ }
+}
+
+// This routine does per-connection function registration. Most
+// of the built-in functions above are part of the global function set.
+// This routine only deals with those that are not global.
+func Xsqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) {
+ var rc int32 = Xsqlite3_overload_function(tls, db, ts+15364, 2)
+
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ }
+}
+
+// Re-register the built-in LIKE functions. The caseSensitive
+// parameter determines whether or not the LIKE operator is case
+// sensitive.
+func Xsqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int32) {
+ var pInfo uintptr
+ var flags int32
+ if caseSensitive != 0 {
+ pInfo = uintptr(unsafe.Pointer(&likeInfoAlt))
+ flags = SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE
+ } else {
+ pInfo = uintptr(unsafe.Pointer(&likeInfoNorm))
+ flags = SQLITE_FUNC_LIKE
+ }
+ Xsqlite3CreateFunc(tls, db, ts+15370, 2, SQLITE_UTF8, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{likeFunc})), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3CreateFunc(tls, db, ts+15370, 3, SQLITE_UTF8, pInfo, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{likeFunc})), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
+ *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+15370, 2, uint8(SQLITE_UTF8), uint8(0)) + 4)) |= U32(flags)
+ *(*U32)(unsafe.Pointer(Xsqlite3FindFunction(tls, db, ts+15370, 3, uint8(SQLITE_UTF8), uint8(0)) + 4)) |= U32(flags)
+}
+
+// pExpr points to an expression which implements a function. If
+// it is appropriate to apply the LIKE optimization to that function
+// then set aWc[0] through aWc[2] to the wildcard characters and the
+// escape character and then return TRUE. If the function is not a
+// LIKE-style function then return FALSE.
+//
+// The expression "a LIKE b ESCAPE c" is only considered a valid LIKE
+// operator if c is a string literal that is exactly one byte in length.
+// That one byte is stored in aWc[3]. aWc[3] is set to zero if there is
+// no ESCAPE clause.
+//
+// *pIsNocase is set to true if uppercase and lowercase are equivalent for
+// the function (default for LIKE). If the function makes the distinction
+// between uppercase and lowercase (as does GLOB) then *pIsNocase is set to
+// false.
+func Xsqlite3IsLikeFunction(tls *libc.TLS, db uintptr, pExpr uintptr, pIsNocase uintptr, aWc uintptr) int32 {
+ var pDef uintptr
+ var nExpr int32
+
+ if !(int32(*(*uintptr)(unsafe.Pointer(pExpr + 32))) != 0) {
+ return 0
+ }
+ nExpr = (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr
+
+ pDef = Xsqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), nExpr, uint8(SQLITE_UTF8), uint8(0))
+ if pDef == uintptr(0) || (*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_LIKE) == U32(0) {
+ return 0
+ }
+
+ libc.X__builtin___memcpy_chk(tls, aWc, (*FuncDef)(unsafe.Pointer(pDef)).FpUserData, uint64(3), libc.X__builtin_object_size(tls, aWc, 0))
+
+ if nExpr < 3 {
+ *(*int8)(unsafe.Pointer(aWc + 3)) = int8(0)
+ } else {
+ var pEscape uintptr = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 2*32)).FpExpr
+ var zEscape uintptr
+ if int32((*Expr)(unsafe.Pointer(pEscape)).Fop) != TK_STRING {
+ return 0
+ }
+
+ zEscape = *(*uintptr)(unsafe.Pointer(pEscape + 8))
+ if int32(*(*int8)(unsafe.Pointer(zEscape))) == 0 || int32(*(*int8)(unsafe.Pointer(zEscape + 1))) != 0 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(zEscape))) == int32(*(*int8)(unsafe.Pointer(aWc))) {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(zEscape))) == int32(*(*int8)(unsafe.Pointer(aWc + 1))) {
+ return 0
+ }
+ *(*int8)(unsafe.Pointer(aWc + 3)) = *(*int8)(unsafe.Pointer(zEscape))
+ }
+
+ *(*int32)(unsafe.Pointer(pIsNocase)) = libc.Bool32((*FuncDef)(unsafe.Pointer(pDef)).FfuncFlags&U32(SQLITE_FUNC_CASE) == U32(0))
+ return 1
+}
+
+func ceilingFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ switch Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) {
+ case SQLITE_INTEGER:
+ {
+ Xsqlite3_result_int64(tls, context, Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))))
+ break
+
+ }
+ case SQLITE_FLOAT:
+ {
+ var x uintptr = Xsqlite3_user_data(tls, context)
+ Xsqlite3_result_double(tls, context, (*struct {
+ f func(*libc.TLS, float64) float64
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))))
+ break
+
+ }
+ default:
+ {
+ break
+
+ }
+ }
+}
+
+func xCeil(tls *libc.TLS, x float64) float64 {
+ return libc.Xceil(tls, x)
+}
+
+func xFloor(tls *libc.TLS, x float64) float64 {
+ return libc.Xfloor(tls, x)
+}
+
+func logFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var x float64
+ var b float64
+ var ans float64
+
+ switch Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) {
+ case SQLITE_INTEGER:
+ fallthrough
+ case SQLITE_FLOAT:
+ x = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if x <= 0.0 {
+ return
+ }
+ break
+ default:
+ return
+ }
+ if argc == 2 {
+ switch Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) {
+ case SQLITE_INTEGER:
+ fallthrough
+ case SQLITE_FLOAT:
+ b = libc.Xlog(tls, x)
+ if b <= 0.0 {
+ return
+ }
+ x = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if x <= 0.0 {
+ return
+ }
+ break
+ fallthrough
+ default:
+ return
+ }
+ ans = libc.Xlog(tls, x) / b
+ } else {
+ switch int32(Xsqlite3_user_data(tls, context)) {
+ case 1:
+ ans = libc.Xlog10(tls, x)
+ break
+ fallthrough
+ case 2:
+ ans = libc.Xlog2(tls, x)
+ break
+ fallthrough
+ default:
+ ans = libc.Xlog(tls, x)
+ break
+ }
+ }
+ Xsqlite3_result_double(tls, context, ans)
+}
+
+func degToRad(tls *libc.TLS, x float64) float64 {
+ return x * (float64(3.14159265358979323846264338327950288) / 180.0)
+}
+
+func radToDeg(tls *libc.TLS, x float64) float64 {
+ return x * (float64(180.0) / 3.14159265358979323846264338327950288)
+}
+
+func math1Func(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var type0 int32
+ var v0 float64
+ var ans float64
+ var x uintptr
+
+ type0 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if type0 != SQLITE_INTEGER && type0 != SQLITE_FLOAT {
+ return
+ }
+ v0 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ x = Xsqlite3_user_data(tls, context)
+ ans = (*struct {
+ f func(*libc.TLS, float64) float64
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, v0)
+ Xsqlite3_result_double(tls, context, ans)
+}
+
+func math2Func(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var type0 int32
+ var type1 int32
+ var v0 float64
+ var v1 float64
+ var ans float64
+ var x uintptr
+
+ type0 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if type0 != SQLITE_INTEGER && type0 != SQLITE_FLOAT {
+ return
+ }
+ type1 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if type1 != SQLITE_INTEGER && type1 != SQLITE_FLOAT {
+ return
+ }
+ v0 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ v1 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ x = Xsqlite3_user_data(tls, context)
+ ans = (*struct {
+ f func(*libc.TLS, float64, float64) float64
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, v0, v1)
+ Xsqlite3_result_double(tls, context, ans)
+}
+
+func piFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ _ = argv
+ Xsqlite3_result_double(tls, context, 3.14159265358979323846264338327950288)
+}
+
+func signFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var type0 int32
+ var x float64
+ _ = argc
+
+ type0 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if type0 != SQLITE_INTEGER && type0 != SQLITE_FLOAT {
+ return
+ }
+ x = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ Xsqlite3_result_int(tls, context, func() int32 {
+ if x < 0.0 {
+ return -1
+ }
+ return func() int32 {
+ if x > 0.0 {
+ return +1
+ }
+ return 0
+ }()
+ }())
+}
+
+// All of the FuncDef structures in the aBuiltinFunc[] array above
+// to the global function hash table. This occurs at start-time (as
+// a consequence of calling sqlite3_initialize()).
+//
+// After this routine runs
+func Xsqlite3RegisterBuiltinFunctions(tls *libc.TLS) {
+ Xsqlite3AlterFunctions(tls)
+ Xsqlite3WindowFunctions(tls)
+ Xsqlite3RegisterDateTimeFunctions(tls)
+ Xsqlite3RegisterJsonFunctions(tls)
+ Xsqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&aBuiltinFunc)), int32(uint64(unsafe.Sizeof(aBuiltinFunc))/uint64(unsafe.Sizeof(FuncDef{}))))
+
+}
+
+var aBuiltinFunc = [103]FuncDef{
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INTERNAL | SQLITE_FUNC_TEST | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_implies_nonnull_row)), FxSFunc: 0, FzName: ts + 15375},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INTERNAL | SQLITE_FUNC_TEST | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_expr_compare)), FxSFunc: 0, FzName: ts + 15395},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INTERNAL | SQLITE_FUNC_TEST | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_expr_implies_expr)), FxSFunc: 0, FzName: ts + 15408},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INTERNAL | SQLITE_FUNC_TEST | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_affinity)), FxSFunc: 0, FzName: ts + 15426},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15435},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_DIRECTONLY | SQLITE_FUNC_UNSAFE), FxSFunc: 0, FzName: ts + 15443},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_DIRECTONLY | SQLITE_FUNC_UNSAFE), FxSFunc: 0, FzName: ts + 15443},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 15458},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 15484},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | SQLITE_FUNC_UNLIKELY), FpUserData: uintptr(int64(INLINEFUNC_unlikely)), FxSFunc: 0, FzName: ts + 15509},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | SQLITE_FUNC_UNLIKELY), FpUserData: uintptr(int64(INLINEFUNC_unlikely)), FxSFunc: 0, FzName: ts + 15518},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | SQLITE_FUNC_UNLIKELY), FpUserData: uintptr(int64(INLINEFUNC_unlikely)), FxSFunc: 0, FzName: ts + 15529},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_sqlite_offset)), FxSFunc: 0, FzName: ts + 15536},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FxSFunc: 0, FzName: ts + 15550},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FxSFunc: 0, FzName: ts + 15550},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(2)), FxSFunc: 0, FzName: ts + 15556},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(2)), FxSFunc: 0, FzName: ts + 15556},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(3)), FxSFunc: 0, FzName: ts + 15562},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(3)), FxSFunc: 0, FzName: ts + 15562},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15567},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL), FzName: ts + 15567},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_MINMAX | SQLITE_FUNC_ANYORDER), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FzName: ts + 15567},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FxSFunc: 0, FzName: ts + 15571},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FzName: ts + 15571},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_MINMAX | SQLITE_FUNC_ANYORDER), FpUserData: uintptr(int64(1)), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FzName: ts + 15571},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_TYPEOF), FxSFunc: 0, FzName: ts + 15575},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_TYPEOF), FxSFunc: 0, FzName: ts + 15582},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_LENGTH), FxSFunc: 0, FzName: ts + 15590},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15597},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15603},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15610},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15617},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15625},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15630},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15634},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15634},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15640},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15646},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15652},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15656},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15656},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FxSFunc: 0, FzName: ts + 15662},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15669},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15676},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 1*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15687},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 15694},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_SLOCHNG | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 15709},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15726},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15737},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15743},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15761},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15769},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15783},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15791},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15800},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15800},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15807},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15807},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15817},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15821},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15827},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_COUNT | SQLITE_FUNC_ANYORDER), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15831},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_FUNC_ANYORDER), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15831},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15837},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 15837},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE), FpUserData: 0, FxSFunc: 0, FzName: ts + 15850},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | SQLITE_FUNC_LIKE), FpUserData: 0, FxSFunc: 0, FzName: ts + 15370},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | SQLITE_FUNC_LIKE), FpUserData: 0, FxSFunc: 0, FzName: ts + 15370},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FzName: ts + 6989},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FzName: ts + 6989},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15855},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15860},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15868},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15874},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15880},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FxSFunc: 0, FzName: ts + 15883},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(1)), FxSFunc: 0, FzName: ts + 15887},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FpUserData: uintptr(int64(2)), FxSFunc: 0, FzName: ts + 15893},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 15883},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15898},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15902},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15906},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15912},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15916},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15921},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15926},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15931},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15937},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15941},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15945},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15949},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15954},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15959},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15964},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15970},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15976},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15982},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15987},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: 0, FxSFunc: 0, FzName: ts + 15995},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 16003},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_FUNC_CONSTANT | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL), FxSFunc: 0, FzName: ts + 16006},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FxSFunc: 0, FzName: ts + 6989},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_INLINE | SQLITE_FUNC_CONSTANT | 0), FpUserData: uintptr(int64(INLINEFUNC_iif)), FxSFunc: 0, FzName: ts + 16011}}
+
+// A foreign key constraint requires that the key columns in the parent
+// table are collectively subject to a UNIQUE or PRIMARY KEY constraint.
+// Given that pParent is the parent table for foreign key constraint pFKey,
+// search the schema for a unique index on the parent key columns.
+//
+// If successful, zero is returned. If the parent key is an INTEGER PRIMARY
+// KEY column, then output variable *ppIdx is set to NULL. Otherwise, *ppIdx
+// is set to point to the unique index.
+//
+// If the parent key consists of a single column (the foreign key constraint
+// is not a composite foreign key), output variable *paiCol is set to NULL.
+// Otherwise, it is set to point to an allocated array of size N, where
+// N is the number of columns in the parent key. The first element of the
+// array is the index of the child table column that is mapped by the FK
+// constraint to the parent table column stored in the left-most column
+// of index *ppIdx. The second element of the array is the index of the
+// child table column that corresponds to the second left-most column of
+// *ppIdx, and so on.
+//
+// If the required index cannot be found, either because:
+//
+// 1. The named parent key columns do not exist, or
+//
+// 2. The named parent key columns do exist, but are not subject to a
+// UNIQUE or PRIMARY KEY constraint, or
+//
+// 3. No parent key columns were provided explicitly as part of the
+// foreign key definition, and the parent table does not have a
+// PRIMARY KEY, or
+//
+// 4. No parent key columns were provided explicitly as part of the
+// foreign key definition, and the PRIMARY KEY of the parent table
+// consists of a different number of columns to the child key in
+// the child table.
+//
+// then non-zero is returned, and a "foreign key mismatch" error loaded
+// into pParse. If an OOM error occurs, non-zero is returned and the
+// pParse->db->mallocFailed flag is set.
+func Xsqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey uintptr, ppIdx uintptr, paiCol uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pIdx uintptr = uintptr(0)
+ var aiCol uintptr = uintptr(0)
+ var nCol int32 = (*FKey)(unsafe.Pointer(pFKey)).FnCol
+ var zKey uintptr = (*sColMap)(unsafe.Pointer(pFKey + 64)).FzCol
+
+ if nCol == 1 {
+ if int32((*Table)(unsafe.Pointer(pParent)).FiPKey) >= 0 {
+ if !(zKey != 0) {
+ return 0
+ }
+ if !(Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pParent)).FaCol+uintptr((*Table)(unsafe.Pointer(pParent)).FiPKey)*24)).FzCnName, zKey) != 0) {
+ return 0
+ }
+ }
+ } else if paiCol != 0 {
+ aiCol = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(nCol)*uint64(unsafe.Sizeof(int32(0))))
+ if !(aiCol != 0) {
+ return 1
+ }
+ *(*uintptr)(unsafe.Pointer(paiCol)) = aiCol
+ }
+
+ for pIdx = (*Table)(unsafe.Pointer(pParent)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) == nCol && int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None && (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere == uintptr(0) {
+ if zKey == uintptr(0) {
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ if aiCol != 0 {
+ var i int32
+ for i = 0; i < nCol; i++ {
+ *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) = (*sColMap)(unsafe.Pointer(pFKey + 64 + uintptr(i)*16)).FiFrom
+ }
+ }
+ break
+ }
+ } else {
+ var i int32
+ var j int32
+ for i = 0; i < nCol; i++ {
+ var iCol I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))
+ var zDfltColl uintptr
+ var zIdxCol uintptr
+
+ if int32(iCol) < 0 {
+ break
+ }
+
+ zDfltColl = Xsqlite3ColumnColl(tls, (*Table)(unsafe.Pointer(pParent)).FaCol+uintptr(iCol)*24)
+ if !(zDfltColl != 0) {
+ zDfltColl = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ }
+ if Xsqlite3StrICmp(tls, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i)*8)), zDfltColl) != 0 {
+ break
+ }
+
+ zIdxCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pParent)).FaCol + uintptr(iCol)*24)).FzCnName
+ for j = 0; j < nCol; j++ {
+ if Xsqlite3StrICmp(tls, (*sColMap)(unsafe.Pointer(pFKey+64+uintptr(j)*16)).FzCol, zIdxCol) == 0 {
+ if aiCol != 0 {
+ *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) = (*sColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16)).FiFrom
+ }
+ break
+ }
+ }
+ if j == nCol {
+ break
+ }
+ }
+ if i == nCol {
+ break
+ }
+ }
+ }
+ }
+
+ if !(pIdx != 0) {
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FdisableTriggers) != 0) {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+16015,
+ libc.VaList(bp, (*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*FKey)(unsafe.Pointer(pFKey)).FzTo))
+ }
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, aiCol)
+ return 1
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppIdx)) = pIdx
+ return 0
+}
+
+func fkLookupParent(tls *libc.TLS, pParse uintptr, iDb int32, pTab uintptr, pIdx uintptr, pFKey uintptr, aiCol uintptr, regData int32, nIncr int32, isIgnore int32) {
+ var i int32
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var iCur int32 = (*Parse)(unsafe.Pointer(pParse)).FnTab - 1
+ var iOk int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ if nIncr < 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkIfZero, int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred), iOk)
+
+ }
+ for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
+ var iReg int32 = int32(Xsqlite3TableColumnToStorage(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, int16(*(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4))))) + regData + 1
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, iReg, iOk)
+ }
+
+ if isIgnore == 0 {
+ if pIdx == uintptr(0) {
+ var iMustBeInt int32
+ var regTemp int32 = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy,
+ int32(Xsqlite3TableColumnToStorage(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, int16(*(*int32)(unsafe.Pointer(aiCol)))))+1+regData, regTemp)
+ iMustBeInt = Xsqlite3VdbeAddOp2(tls, v, OP_MustBeInt, regTemp, 0)
+
+ if pTab == (*FKey)(unsafe.Pointer(pFKey)).FpFrom && nIncr == 1 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regData, iOk, regTemp)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+ }
+
+ Xsqlite3OpenTable(tls, pParse, iCur, iDb, pTab, OP_OpenRead)
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iCur, 0, regTemp)
+ Xsqlite3VdbeGoto(tls, v, iOk)
+ Xsqlite3VdbeJumpHere(tls, v, Xsqlite3VdbeCurrentAddr(tls, v)-2)
+ Xsqlite3VdbeJumpHere(tls, v, iMustBeInt)
+ Xsqlite3ReleaseTempReg(tls, pParse, regTemp)
+ } else {
+ var nCol int32 = (*FKey)(unsafe.Pointer(pFKey)).FnCol
+ var regTemp int32 = Xsqlite3GetTempRange(tls, pParse, nCol)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenRead, iCur, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
+ for i = 0; i < nCol; i++ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy,
+ int32(Xsqlite3TableColumnToStorage(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, int16(*(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)))))+1+regData,
+ regTemp+i)
+ }
+
+ if pTab == (*FKey)(unsafe.Pointer(pFKey)).FpFrom && nIncr == 1 {
+ var iJump int32 = Xsqlite3VdbeCurrentAddr(tls, v) + nCol + 1
+ for i = 0; i < nCol; i++ {
+ var iChild int32 = int32(Xsqlite3TableColumnToStorage(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, int16(*(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4))))) +
+ 1 + regData
+ var iParent int32 = 1 + regData
+ iParent = iParent + int32(Xsqlite3TableColumnToStorage(tls, (*Index)(unsafe.Pointer(pIdx)).FpTable,
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))))
+
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ iParent = regData
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ne, iChild, iJump, iParent)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_JUMPIFNULL))
+ }
+ Xsqlite3VdbeGoto(tls, v, iOk)
+ }
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, regTemp, nCol, 0,
+ Xsqlite3IndexAffinityStr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pIdx), nCol)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, iCur, iOk, regTemp, nCol)
+
+ Xsqlite3ReleaseTempRange(tls, pParse, regTemp, nCol)
+ }
+ }
+
+ if !(int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred) != 0) && !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_DeferFKs) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FpToplevel) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FisMultiWrite) != 0) {
+ Xsqlite3HaltConstraint(tls, pParse, SQLITE_CONSTRAINT|int32(3)<<8,
+ OE_Abort, uintptr(0), int8(-1), uint8(P5_ConstraintFK))
+ } else {
+ if nIncr > 0 && int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred) == 0 {
+ Xsqlite3MayAbort(tls, pParse)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkCounter, int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred), nIncr)
+ }
+
+ Xsqlite3VdbeResolveLabel(tls, v, iOk)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iCur)
+}
+
+func exprTableRegister(tls *libc.TLS, pParse uintptr, pTab uintptr, regBase int32, iCol I16) uintptr {
+ var pExpr uintptr
+ var pCol uintptr
+ var zColl uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ pExpr = Xsqlite3Expr(tls, db, TK_REGISTER, uintptr(0))
+ if pExpr != 0 {
+ if int32(iCol) >= 0 && int32(iCol) != int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = regBase + int32(Xsqlite3TableColumnToStorage(tls, pTab, iCol)) + 1
+ (*Expr)(unsafe.Pointer(pExpr)).FaffExpr = (*Column)(unsafe.Pointer(pCol)).Faffinity
+ zColl = Xsqlite3ColumnColl(tls, pCol)
+ if zColl == uintptr(0) {
+ zColl = (*CollSeq)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpDfltColl)).FzName
+ }
+ pExpr = Xsqlite3ExprAddCollateString(tls, pParse, pExpr, zColl)
+ } else {
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = regBase
+ (*Expr)(unsafe.Pointer(pExpr)).FaffExpr = int8(SQLITE_AFF_INTEGER)
+ }
+ }
+ return pExpr
+}
+
+func exprTableColumn(tls *libc.TLS, db uintptr, pTab uintptr, iCursor int32, iCol I16) uintptr {
+ var pExpr uintptr = Xsqlite3Expr(tls, db, TK_COLUMN, uintptr(0))
+ if pExpr != 0 {
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = pTab
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = iCursor
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = iCol
+ }
+ return pExpr
+}
+
+func fkScanChildren(tls *libc.TLS, pParse uintptr, pSrc uintptr, pTab uintptr, pIdx uintptr, pFKey uintptr, aiCol uintptr, regData int32, nIncr int32) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+ var pWhere uintptr = uintptr(0)
+
+ var pWInfo uintptr
+ var iFkIfZero int32 = 0
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ if nIncr < 0 {
+ iFkIfZero = Xsqlite3VdbeAddOp2(tls, v, OP_FkIfZero, int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred), 0)
+
+ }
+
+ for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
+ var pLeft uintptr
+ var pRight uintptr
+ var pEq uintptr
+ var iCol I16
+ var zCol uintptr
+
+ if pIdx != 0 {
+ iCol = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))
+ } else {
+ iCol = int16(-1)
+ }
+ pLeft = exprTableRegister(tls, pParse, pTab, regData, iCol)
+ if aiCol != 0 {
+ iCol = int16(*(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)))
+ } else {
+ iCol = int16((*sColMap)(unsafe.Pointer(pFKey + 64)).FiFrom)
+ }
+
+ zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FaCol + uintptr(iCol)*24)).FzCnName
+ pRight = Xsqlite3Expr(tls, db, TK_ID, zCol)
+ pEq = Xsqlite3PExpr(tls, pParse, TK_EQ, pLeft, pRight)
+ pWhere = Xsqlite3ExprAnd(tls, pParse, pWhere, pEq)
+ }
+
+ if pTab == (*FKey)(unsafe.Pointer(pFKey)).FpFrom && nIncr > 0 {
+ var pNe uintptr
+ var pLeft uintptr
+ var pRight uintptr
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ pLeft = exprTableRegister(tls, pParse, pTab, regData, int16(-1))
+ pRight = exprTableColumn(tls, db, pTab, (*SrcItem)(unsafe.Pointer(pSrc+8)).FiCursor, int16(-1))
+ pNe = Xsqlite3PExpr(tls, pParse, TK_NE, pLeft, pRight)
+ } else {
+ var pEq uintptr
+ var pAll uintptr = uintptr(0)
+
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); i++ {
+ var iCol I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))
+
+ pLeft = exprTableRegister(tls, pParse, pTab, regData, iCol)
+ pRight = Xsqlite3Expr(tls, db, TK_ID, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24)).FzCnName)
+ pEq = Xsqlite3PExpr(tls, pParse, TK_IS, pLeft, pRight)
+ pAll = Xsqlite3ExprAnd(tls, pParse, pAll, pEq)
+ }
+ pNe = Xsqlite3PExpr(tls, pParse, TK_NOT, pAll, uintptr(0))
+ }
+ pWhere = Xsqlite3ExprAnd(tls, pParse, pWhere, pNe)
+ }
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = pSrc
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ Xsqlite3ResolveExprNames(tls, bp, pWhere)
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pSrc, pWhere, uintptr(0), uintptr(0), uintptr(0), uint16(0), 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkCounter, int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred), nIncr)
+ if pWInfo != 0 {
+ Xsqlite3WhereEnd(tls, pWInfo)
+ }
+ }
+
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ if iFkIfZero != 0 {
+ Xsqlite3VdbeJumpHereOrPopInst(tls, v, iFkIfZero)
+ }
+}
+
+// This function returns a linked list of FKey objects (connected by
+// FKey.pNextTo) holding all children of table pTab. For example,
+// given the following schema:
+//
+// CREATE TABLE t1(a PRIMARY KEY);
+// CREATE TABLE t2(b REFERENCES t1(a);
+//
+// Calling this function with table "t1" as an argument returns a pointer
+// to the FKey structure representing the foreign key constraint on table
+// "t2". Calling this function with "t2" as the argument would return a
+// NULL pointer (as there are no FK constraints for which t2 is the parent
+// table).
+func Xsqlite3FkReferences(tls *libc.TLS, pTab uintptr) uintptr {
+ return Xsqlite3HashFind(tls, (*Table)(unsafe.Pointer(pTab)).FpSchema+80, (*Table)(unsafe.Pointer(pTab)).FzName)
+}
+
+func fkTriggerDelete(tls *libc.TLS, dbMem uintptr, p uintptr) {
+ if p != 0 {
+ var pStep uintptr = (*Trigger)(unsafe.Pointer(p)).Fstep_list
+ Xsqlite3ExprDelete(tls, dbMem, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere)
+ Xsqlite3ExprListDelete(tls, dbMem, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList)
+ Xsqlite3SelectDelete(tls, dbMem, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect)
+ Xsqlite3ExprDelete(tls, dbMem, (*Trigger)(unsafe.Pointer(p)).FpWhen)
+ Xsqlite3DbFree(tls, dbMem, p)
+ }
+}
+
+// Clear the apTrigger[] cache of CASCADE triggers for all foreign keys
+// in a particular database. This needs to happen when the schema
+// changes.
+func Xsqlite3FkClearTriggerCache(tls *libc.TLS, db uintptr, iDb int32) {
+ var k uintptr
+ var pHash uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 8
+ for k = (*Hash)(unsafe.Pointer(pHash)).Ffirst; k != 0; k = (*HashElem)(unsafe.Pointer(k)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(k)).Fdata
+ var pFKey uintptr
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ continue
+ }
+ for pFKey = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); pFKey != 0; pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom {
+ fkTriggerDelete(tls, db, *(*uintptr)(unsafe.Pointer(pFKey + 48)))
+ *(*uintptr)(unsafe.Pointer(pFKey + 48)) = uintptr(0)
+ fkTriggerDelete(tls, db, *(*uintptr)(unsafe.Pointer(pFKey + 48 + 1*8)))
+ *(*uintptr)(unsafe.Pointer(pFKey + 48 + 1*8)) = uintptr(0)
+ }
+ }
+}
+
+// This function is called to generate code that runs when table pTab is
+// being dropped from the database. The SrcList passed as the second argument
+// to this function contains a single entry guaranteed to resolve to
+// table pTab.
+//
+// Normally, no code is required. However, if either
+//
+// (a) The table is the parent table of a FK constraint, or
+// (b) The table is the child table of a deferred FK constraint and it is
+// determined at runtime that there are outstanding deferred FK
+// constraint violations in the database,
+//
+// then the equivalent of "DELETE FROM <tbl>" is executed before dropping
+// the table from the database. Triggers are disabled while running this
+// DELETE, but foreign key actions are not.
+func Xsqlite3FkDropTable(tls *libc.TLS, pParse uintptr, pName uintptr, pTab uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0 && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM {
+ var iSkip int32 = 0
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ if Xsqlite3FkReferences(tls, pTab) == uintptr(0) {
+ var p uintptr
+ for p = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); p != 0; p = (*FKey)(unsafe.Pointer(p)).FpNextFrom {
+ if (*FKey)(unsafe.Pointer(p)).FisDeferred != 0 || (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DeferFKs) != 0 {
+ break
+ }
+ }
+ if !(p != 0) {
+ return
+ }
+ iSkip = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkIfZero, 1, iSkip)
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FdisableTriggers = U8(1)
+ Xsqlite3DeleteFrom(tls, pParse, Xsqlite3SrcListDup(tls, db, pName, 0), uintptr(0), uintptr(0), uintptr(0))
+ (*Parse)(unsafe.Pointer(pParse)).FdisableTriggers = U8(0)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DeferFKs) == uint64(0) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkIfZero, 0, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ Xsqlite3HaltConstraint(tls, pParse, SQLITE_CONSTRAINT|int32(3)<<8,
+ OE_Abort, uintptr(0), int8(-1), uint8(P5_ConstraintFK))
+ }
+
+ if iSkip != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, iSkip)
+ }
+ }
+}
+
+func fkChildIsModified(tls *libc.TLS, pTab uintptr, p uintptr, aChange uintptr, bChngRowid int32) int32 {
+ var i int32
+ for i = 0; i < (*FKey)(unsafe.Pointer(p)).FnCol; i++ {
+ var iChildKey int32 = (*sColMap)(unsafe.Pointer(p + 64 + uintptr(i)*16)).FiFrom
+ if *(*int32)(unsafe.Pointer(aChange + uintptr(iChildKey)*4)) >= 0 {
+ return 1
+ }
+ if iChildKey == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) && bChngRowid != 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func fkParentIsModified(tls *libc.TLS, pTab uintptr, p uintptr, aChange uintptr, bChngRowid int32) int32 {
+ var i int32
+ for i = 0; i < (*FKey)(unsafe.Pointer(p)).FnCol; i++ {
+ var zKey uintptr = (*sColMap)(unsafe.Pointer(p + 64 + uintptr(i)*16)).FzCol
+ var iKey int32
+ for iKey = 0; iKey < int32((*Table)(unsafe.Pointer(pTab)).FnCol); iKey++ {
+ if *(*int32)(unsafe.Pointer(aChange + uintptr(iKey)*4)) >= 0 || iKey == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) && bChngRowid != 0 {
+ var pCol uintptr = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iKey)*24
+ if zKey != 0 {
+ if 0 == Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName, zKey) {
+ return 1
+ }
+ } else if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY != 0 {
+ return 1
+ }
+ }
+ }
+ }
+ return 0
+}
+
+func isSetNullAction(tls *libc.TLS, pParse uintptr, pFKey uintptr) int32 {
+ var pTop uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ if (*Parse)(unsafe.Pointer(pTop)).FpTriggerPrg != 0 {
+ var p uintptr = (*TriggerPrg)(unsafe.Pointer((*Parse)(unsafe.Pointer(pTop)).FpTriggerPrg)).FpTrigger
+ if p == *(*uintptr)(unsafe.Pointer(pFKey + 48)) && int32(*(*U8)(unsafe.Pointer(pFKey + 45))) == OE_SetNull ||
+ p == *(*uintptr)(unsafe.Pointer(pFKey + 48 + 1*8)) && int32(*(*U8)(unsafe.Pointer(pFKey + 45 + 1))) == OE_SetNull {
+ return 1
+ }
+ }
+ return 0
+}
+
+// This function is called when inserting, deleting or updating a row of
+// table pTab to generate VDBE code to perform foreign key constraint
+// processing for the operation.
+//
+// For a DELETE operation, parameter regOld is passed the index of the
+// first register in an array of (pTab->nCol+1) registers containing the
+// rowid of the row being deleted, followed by each of the column values
+// of the row being deleted, from left to right. Parameter regNew is passed
+// zero in this case.
+//
+// For an INSERT operation, regOld is passed zero and regNew is passed the
+// first register of an array of (pTab->nCol+1) registers containing the new
+// row data.
+//
+// For an UPDATE operation, this function is called twice. Once before
+// the original record is deleted from the table using the calling convention
+// described for DELETE. Then again after the original record is deleted
+// but before the new record is inserted using the INSERT convention.
+func Xsqlite3FkCheck(tls *libc.TLS, pParse uintptr, pTab uintptr, regOld int32, regNew int32, aChange uintptr, bChngRowid int32) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pFKey uintptr
+ var iDb int32
+ var zDb uintptr
+ var isIgnoreErrors int32 = int32((*Parse)(unsafe.Pointer(pParse)).FdisableTriggers)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) == uint64(0) {
+ return
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ return
+ }
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+
+ for pFKey = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); pFKey != 0; pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom {
+ var pTo uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var aiCol uintptr
+
+ var i int32
+ var bIgnore int32 = 0
+
+ if aChange != 0 &&
+ Xsqlite3_stricmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, (*FKey)(unsafe.Pointer(pFKey)).FzTo) != 0 &&
+ fkChildIsModified(tls, pTab, pFKey, aChange, bChngRowid) == 0 {
+ continue
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FdisableTriggers != 0 {
+ pTo = Xsqlite3FindTable(tls, db, (*FKey)(unsafe.Pointer(pFKey)).FzTo, zDb)
+ } else {
+ pTo = Xsqlite3LocateTable(tls, pParse, uint32(0), (*FKey)(unsafe.Pointer(pFKey)).FzTo, zDb)
+ }
+ if !(pTo != 0) || Xsqlite3FkLocateIndex(tls, pParse, pTo, pFKey, bp, bp+8) != 0 {
+ if !(isIgnoreErrors != 0) || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+ if pTo == uintptr(0) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var iJump int32 = Xsqlite3VdbeCurrentAddr(tls, v) + (*FKey)(unsafe.Pointer(pFKey)).FnCol + 1
+ for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
+ var iFromCol int32
+ var iReg int32
+ iFromCol = (*sColMap)(unsafe.Pointer(pFKey + 64 + uintptr(i)*16)).FiFrom
+ iReg = int32(Xsqlite3TableColumnToStorage(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, int16(iFromCol))) + regOld + 1
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, iReg, iJump)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_FkCounter, int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred), -1)
+ }
+ continue
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ aiCol = *(*uintptr)(unsafe.Pointer(bp + 8))
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = (*sColMap)(unsafe.Pointer(pFKey + 64)).FiFrom
+ aiCol = bp + 16
+ }
+ for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
+ if *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) = -1
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAuth != 0 {
+ var rcauth int32
+ var zCol uintptr = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTo)).FaCol + uintptr(func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ return int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaiColumn + uintptr(i)*2)))
+ }
+ return int32((*Table)(unsafe.Pointer(pTo)).FiPKey)
+ }())*24)).FzCnName
+ rcauth = Xsqlite3AuthReadCol(tls, pParse, (*Table)(unsafe.Pointer(pTo)).FzName, zCol, iDb)
+ bIgnore = libc.Bool32(rcauth == SQLITE_IGNORE)
+ }
+ }
+
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTo)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTo)).FzName)
+ (*Parse)(unsafe.Pointer(pParse)).FnTab++
+
+ if regOld != 0 {
+ fkLookupParent(tls, pParse, iDb, pTo, *(*uintptr)(unsafe.Pointer(bp)), pFKey, aiCol, regOld, -1, bIgnore)
+ }
+ if regNew != 0 && !(isSetNullAction(tls, pParse, pFKey) != 0) {
+ fkLookupParent(tls, pParse, iDb, pTo, *(*uintptr)(unsafe.Pointer(bp)), pFKey, aiCol, regNew, +1, bIgnore)
+ }
+
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+
+ for pFKey = Xsqlite3FkReferences(tls, pTab); pFKey != 0; pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextTo {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ var pSrc uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0)
+
+ if aChange != 0 && fkParentIsModified(tls, pTab, pFKey, aChange, bChngRowid) == 0 {
+ continue
+ }
+
+ if !(int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred) != 0) && !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DeferFKs) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FpToplevel) != 0) && !(int32((*Parse)(unsafe.Pointer(pParse)).FisMultiWrite) != 0) {
+ continue
+ }
+
+ if Xsqlite3FkLocateIndex(tls, pParse, pTab, pFKey, bp+24, bp+32) != 0 {
+ if !(isIgnoreErrors != 0) || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+ continue
+ }
+
+ pSrc = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0))
+ if pSrc != 0 {
+ var pItem uintptr = pSrc + 8
+ (*SrcItem)(unsafe.Pointer(pItem)).FpTab = (*FKey)(unsafe.Pointer(pFKey)).FpFrom
+ (*SrcItem)(unsafe.Pointer(pItem)).FzName = (*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName
+ (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FnTabRef++
+ (*SrcItem)(unsafe.Pointer(pItem)).FiCursor = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+
+ if regNew != 0 {
+ fkScanChildren(tls, pParse, pSrc, pTab, *(*uintptr)(unsafe.Pointer(bp + 24)), pFKey, *(*uintptr)(unsafe.Pointer(bp + 32)), regNew, -1)
+ }
+ if regOld != 0 {
+ var eAction int32 = int32(*(*U8)(unsafe.Pointer(pFKey + 45 + uintptr(libc.Bool32(aChange != uintptr(0))))))
+ fkScanChildren(tls, pParse, pSrc, pTab, *(*uintptr)(unsafe.Pointer(bp + 24)), pFKey, *(*uintptr)(unsafe.Pointer(bp + 32)), regOld, 1)
+
+ if !(int32((*FKey)(unsafe.Pointer(pFKey)).FisDeferred) != 0) && eAction != OE_Cascade && eAction != OE_SetNull {
+ Xsqlite3MayAbort(tls, pParse)
+ }
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FzName = uintptr(0)
+ Xsqlite3SrcListDelete(tls, db, pSrc)
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ }
+}
+
+// This function is called before generating code to update or delete a
+// row contained in table pTab.
+func Xsqlite3FkOldmask(tls *libc.TLS, pParse uintptr, pTab uintptr) U32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var mask U32 = U32(0)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_ForeignKeys) != 0 && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM {
+ var p uintptr
+ var i int32
+ for p = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); p != 0; p = (*FKey)(unsafe.Pointer(p)).FpNextFrom {
+ for i = 0; i < (*FKey)(unsafe.Pointer(p)).FnCol; i++ {
+ mask = mask | func() uint32 {
+ if (*sColMap)(unsafe.Pointer(p+64+uintptr(i)*16)).FiFrom > 31 {
+ return 0xffffffff
+ }
+ return U32(1) << (*sColMap)(unsafe.Pointer(p+64+uintptr(i)*16)).FiFrom
+ }()
+ }
+ }
+ for p = Xsqlite3FkReferences(tls, pTab); p != 0; p = (*FKey)(unsafe.Pointer(p)).FpNextTo {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ Xsqlite3FkLocateIndex(tls, pParse, pTab, p, bp, uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ for i = 0; i < int32((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnKeyCol); i++ {
+ mask = mask | func() uint32 {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaiColumn + uintptr(i)*2))) > 31 {
+ return 0xffffffff
+ }
+ return U32(1) << int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaiColumn + uintptr(i)*2)))
+ }()
+ }
+ }
+ }
+ }
+ return mask
+}
+
+// This function is called before generating code to update or delete a
+// row contained in table pTab. If the operation is a DELETE, then
+// parameter aChange is passed a NULL value. For an UPDATE, aChange points
+// to an array of size N, where N is the number of columns in table pTab.
+// If the i'th column is not modified by the UPDATE, then the corresponding
+// entry in the aChange[] array is set to -1. If the column is modified,
+// the value is 0 or greater. Parameter chngRowid is set to true if the
+// UPDATE statement modifies the rowid fields of the table.
+//
+// If any foreign key processing will be required, this function returns
+// non-zero. If there is no foreign key related processing, this function
+// returns zero.
+//
+// For an UPDATE, this function returns 2 if:
+//
+// - There are any FKs for which pTab is the child and the parent table
+// and any FK processing at all is required (even of a different FK), or
+//
+// - the UPDATE modifies one or more parent keys for which the action is
+// not "NO ACTION" (i.e. is CASCADE, SET DEFAULT or SET NULL).
+//
+// Or, assuming some other foreign key processing is required, 1.
+func Xsqlite3FkRequired(tls *libc.TLS, pParse uintptr, pTab uintptr, aChange uintptr, chngRowid int32) int32 {
+ var eRet int32 = 1
+ var bHaveFK int32 = 0
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_ForeignKeys) != 0 && int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM {
+ if !(aChange != 0) {
+ bHaveFK = libc.Bool32(Xsqlite3FkReferences(tls, pTab) != 0 || *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)) != 0)
+ } else {
+ var p uintptr
+
+ for p = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); p != 0; p = (*FKey)(unsafe.Pointer(p)).FpNextFrom {
+ if fkChildIsModified(tls, pTab, p, aChange, chngRowid) != 0 {
+ if 0 == Xsqlite3_stricmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, (*FKey)(unsafe.Pointer(p)).FzTo) {
+ eRet = 2
+ }
+ bHaveFK = 1
+ }
+ }
+
+ for p = Xsqlite3FkReferences(tls, pTab); p != 0; p = (*FKey)(unsafe.Pointer(p)).FpNextTo {
+ if fkParentIsModified(tls, pTab, p, aChange, chngRowid) != 0 {
+ if int32(*(*U8)(unsafe.Pointer(p + 45 + 1))) != OE_None {
+ return 2
+ }
+ bHaveFK = 1
+ }
+ }
+ }
+ }
+ if bHaveFK != 0 {
+ return eRet
+ }
+ return 0
+}
+
+func fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr, pChanges uintptr) uintptr {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var action int32
+ var pTrigger uintptr
+ var iAction int32 = libc.Bool32(pChanges != uintptr(0))
+
+ action = int32(*(*U8)(unsafe.Pointer(pFKey + 45 + uintptr(iAction))))
+ if action == OE_Restrict && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_DeferFKs) != 0 {
+ return uintptr(0)
+ }
+ pTrigger = *(*uintptr)(unsafe.Pointer(pFKey + 48 + uintptr(iAction)*8))
+
+ if action != OE_None && !(pTrigger != 0) {
+ var zFrom uintptr
+ var nFrom int32
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var pStep uintptr = uintptr(0)
+ var pWhere uintptr = uintptr(0)
+ var pList uintptr = uintptr(0)
+ var pSelect uintptr = uintptr(0)
+ var i int32
+ var pWhen uintptr = uintptr(0)
+
+ if Xsqlite3FkLocateIndex(tls, pParse, pTab, pFKey, bp, bp+8) != 0 {
+ return uintptr(0)
+ }
+
+ for i = 0; i < (*FKey)(unsafe.Pointer(pFKey)).FnCol; i++ {
+ *(*Token)(unsafe.Pointer(bp + 48)) = Token{Fz: ts + 6855, Fn: uint32(3)}
+ *(*Token)(unsafe.Pointer(bp + 64)) = Token{Fz: ts + 6851, Fn: uint32(3)}
+
+ var iFromCol int32
+ var pEq uintptr
+
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ iFromCol = *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + uintptr(i)*4))
+ } else {
+ iFromCol = (*sColMap)(unsafe.Pointer(pFKey + 64)).FiFrom
+ }
+
+ Xsqlite3TokenInit(tls, bp+16,
+ (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ return int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaiColumn + uintptr(i)*2)))
+ }
+ return int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ }())*24)).FzCnName)
+ Xsqlite3TokenInit(tls, bp+32, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FaCol+uintptr(iFromCol)*24)).FzCnName)
+
+ pEq = Xsqlite3PExpr(tls, pParse, TK_EQ,
+ Xsqlite3PExpr(tls, pParse, TK_DOT,
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+48, 0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+16, 0)),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+32, 0))
+ pWhere = Xsqlite3ExprAnd(tls, pParse, pWhere, pEq)
+
+ if pChanges != 0 {
+ pEq = Xsqlite3PExpr(tls, pParse, TK_IS,
+ Xsqlite3PExpr(tls, pParse, TK_DOT,
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+48, 0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+16, 0)),
+ Xsqlite3PExpr(tls, pParse, TK_DOT,
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+64, 0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+16, 0)))
+ pWhen = Xsqlite3ExprAnd(tls, pParse, pWhen, pEq)
+ }
+
+ if action != OE_Restrict && (action != OE_Cascade || pChanges != 0) {
+ var pNew uintptr
+ if action == OE_Cascade {
+ pNew = Xsqlite3PExpr(tls, pParse, TK_DOT,
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+64, 0),
+ Xsqlite3ExprAlloc(tls, db, TK_ID, bp+16, 0))
+ } else if action == OE_SetDflt {
+ var pCol uintptr = (*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FaCol + uintptr(iFromCol)*24
+ var pDflt uintptr
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ pDflt = uintptr(0)
+ } else {
+ pDflt = Xsqlite3ColumnExpr(tls, (*FKey)(unsafe.Pointer(pFKey)).FpFrom, pCol)
+ }
+ if pDflt != 0 {
+ pNew = Xsqlite3ExprDup(tls, db, pDflt, 0)
+ } else {
+ pNew = Xsqlite3ExprAlloc(tls, db, TK_NULL, uintptr(0), 0)
+ }
+ } else {
+ pNew = Xsqlite3ExprAlloc(tls, db, TK_NULL, uintptr(0), 0)
+ }
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, pNew)
+ Xsqlite3ExprListSetName(tls, pParse, pList, bp+32, 0)
+ }
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)))
+
+ zFrom = (*Table)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName
+ nFrom = Xsqlite3Strlen30(tls, zFrom)
+
+ if action == OE_Restrict {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ var pRaise uintptr
+
+ (*Token)(unsafe.Pointer(bp + 96)).Fz = zFrom
+ (*Token)(unsafe.Pointer(bp + 96)).Fn = uint32(nFrom)
+ (*Token)(unsafe.Pointer(bp + 80)).Fz = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ (*Token)(unsafe.Pointer(bp + 80)).Fn = uint32(Xsqlite3Strlen30(tls, (*Token)(unsafe.Pointer(bp+80)).Fz))
+
+ pRaise = Xsqlite3Expr(tls, db, TK_RAISE, ts+5539)
+ if pRaise != 0 {
+ (*Expr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort)
+ }
+ pSelect = Xsqlite3SelectNew(tls, pParse,
+ Xsqlite3ExprListAppend(tls, pParse, uintptr(0), pRaise),
+ Xsqlite3SrcListAppend(tls, pParse, uintptr(0), bp+80, bp+96),
+ pWhere,
+ uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0))
+ pWhere = uintptr(0)
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+
+ pTrigger = Xsqlite3DbMallocZero(tls, db,
+ uint64(unsafe.Sizeof(Trigger{}))+uint64(unsafe.Sizeof(TriggerStep{}))+uint64(nFrom)+uint64(1))
+ if pTrigger != 0 {
+ pStep = libc.AssignPtrUintptr(pTrigger+56, pTrigger+1*72)
+ (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget = pStep + 1*96
+ libc.X__builtin___memcpy_chk(tls, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget, zFrom, uint64(nFrom), libc.X__builtin_object_size(tls, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget, 0))
+
+ (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere = Xsqlite3ExprDup(tls, db, pWhere, EXPRDUP_REDUCE)
+ (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList = Xsqlite3ExprListDup(tls, db, pList, EXPRDUP_REDUCE)
+ (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect = Xsqlite3SelectDup(tls, db, pSelect, EXPRDUP_REDUCE)
+ if pWhen != 0 {
+ pWhen = Xsqlite3PExpr(tls, pParse, TK_NOT, pWhen, uintptr(0))
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen = Xsqlite3ExprDup(tls, db, pWhen, EXPRDUP_REDUCE)
+ }
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable--
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = func() uint16 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
+ return uint16(0)
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue
+ }()
+
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ Xsqlite3ExprDelete(tls, db, pWhen)
+ Xsqlite3ExprListDelete(tls, db, pList)
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 1 {
+ fkTriggerDelete(tls, db, pTrigger)
+ return uintptr(0)
+ }
+
+ switch action {
+ case OE_Restrict:
+ (*TriggerStep)(unsafe.Pointer(pStep)).Fop = U8(TK_SELECT)
+ break
+ fallthrough
+ case OE_Cascade:
+ if !(pChanges != 0) {
+ (*TriggerStep)(unsafe.Pointer(pStep)).Fop = U8(TK_DELETE)
+ break
+ }
+ fallthrough
+
+ default:
+ (*TriggerStep)(unsafe.Pointer(pStep)).Fop = U8(TK_UPDATE)
+ }
+ (*TriggerStep)(unsafe.Pointer(pStep)).FpTrig = pTrigger
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpSchema = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpTabSchema = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ *(*uintptr)(unsafe.Pointer(pFKey + 48 + uintptr(iAction)*8)) = pTrigger
+ (*Trigger)(unsafe.Pointer(pTrigger)).Fop = func() uint8 {
+ if pChanges != 0 {
+ return uint8(TK_UPDATE)
+ }
+ return uint8(TK_DELETE)
+ }()
+ }
+
+ return pTrigger
+}
+
+// This function is called when deleting or updating a row to implement
+// any required CASCADE, SET NULL or SET DEFAULT actions.
+func Xsqlite3FkActions(tls *libc.TLS, pParse uintptr, pTab uintptr, pChanges uintptr, regOld int32, aChange uintptr, bChngRowid int32) {
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_ForeignKeys) != 0 {
+ var pFKey uintptr
+ for pFKey = Xsqlite3FkReferences(tls, pTab); pFKey != 0; pFKey = (*FKey)(unsafe.Pointer(pFKey)).FpNextTo {
+ if aChange == uintptr(0) || fkParentIsModified(tls, pTab, pFKey, aChange, bChngRowid) != 0 {
+ var pAct uintptr = fkActionTrigger(tls, pParse, pTab, pFKey, pChanges)
+ if pAct != 0 {
+ Xsqlite3CodeRowTriggerDirect(tls, pParse, pAct, pTab, regOld, OE_Abort, 0)
+ }
+ }
+ }
+ }
+}
+
+// Free all memory associated with foreign key definitions attached to
+// table pTab. Remove the deleted foreign keys from the Schema.fkeyHash
+// hash table.
+func Xsqlite3FkDelete(tls *libc.TLS, db uintptr, pTab uintptr) {
+ var pFKey uintptr
+ var pNext uintptr
+
+ for pFKey = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8)); pFKey != 0; pFKey = pNext {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ if (*FKey)(unsafe.Pointer(pFKey)).FpPrevTo != 0 {
+ (*FKey)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpPrevTo)).FpNextTo = (*FKey)(unsafe.Pointer(pFKey)).FpNextTo
+ } else {
+ var p uintptr = (*FKey)(unsafe.Pointer(pFKey)).FpNextTo
+ var z uintptr = func() uintptr {
+ if p != 0 {
+ return (*FKey)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpNextTo)).FzTo
+ }
+ return (*FKey)(unsafe.Pointer(pFKey)).FzTo
+ }()
+ Xsqlite3HashInsert(tls, (*Table)(unsafe.Pointer(pTab)).FpSchema+80, z, p)
+ }
+ if (*FKey)(unsafe.Pointer(pFKey)).FpNextTo != 0 {
+ (*FKey)(unsafe.Pointer((*FKey)(unsafe.Pointer(pFKey)).FpNextTo)).FpPrevTo = (*FKey)(unsafe.Pointer(pFKey)).FpPrevTo
+ }
+ }
+
+ fkTriggerDelete(tls, db, *(*uintptr)(unsafe.Pointer(pFKey + 48)))
+ fkTriggerDelete(tls, db, *(*uintptr)(unsafe.Pointer(pFKey + 48 + 1*8)))
+
+ pNext = (*FKey)(unsafe.Pointer(pFKey)).FpNextFrom
+ Xsqlite3DbFree(tls, db, pFKey)
+ }
+}
+
+// Generate code that will
+//
+// (1) acquire a lock for table pTab then
+// (2) open pTab as cursor iCur.
+//
+// If pTab is a WITHOUT ROWID table, then it is the PRIMARY KEY index
+// for that table that is actually opened.
+func Xsqlite3OpenTable(tls *libc.TLS, pParse uintptr, iCur int32, iDb int32, pTab uintptr, opcode int32) {
+ var v uintptr
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum,
+ func() uint8 {
+ if opcode == OP_OpenWrite {
+ return uint8(1)
+ }
+ return uint8(0)
+ }(), (*Table)(unsafe.Pointer(pTab)).FzName)
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ Xsqlite3VdbeAddOp4Int(tls, v, opcode, iCur, int32((*Table)(unsafe.Pointer(pTab)).Ftnum), iDb, int32((*Table)(unsafe.Pointer(pTab)).FnNVCol))
+
+ } else {
+ var pPk uintptr = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ Xsqlite3VdbeAddOp3(tls, v, opcode, iCur, int32((*Index)(unsafe.Pointer(pPk)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pPk)
+
+ }
+}
+
+// Return a pointer to the column affinity string associated with index
+// pIdx. A column affinity string has one character for each column in
+// the table, according to the affinity of the column:
+//
+// Character Column affinity
+// ------------------------------
+// 'A' BLOB
+// 'B' TEXT
+// 'C' NUMERIC
+// 'D' INTEGER
+// 'F' REAL
+//
+// An extra 'D' is appended to the end of the string to cover the
+// rowid that appears as the last column in every index.
+//
+// Memory for the buffer containing the column index affinity string
+// is managed along with the rest of the Index structure. It will be
+// released when sqlite3DeleteIndex() is called.
+func Xsqlite3IndexAffinityStr(tls *libc.TLS, db uintptr, pIdx uintptr) uintptr {
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FzColAff) != 0) {
+ var n int32
+ var pTab uintptr = (*Index)(unsafe.Pointer(pIdx)).FpTable
+ (*Index)(unsafe.Pointer(pIdx)).FzColAff = Xsqlite3DbMallocRaw(tls, uintptr(0), uint64(int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)+1))
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FzColAff) != 0) {
+ Xsqlite3OomFault(tls, db)
+ return uintptr(0)
+ }
+ for n = 0; n < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); n++ {
+ var x I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2))
+ var aff int8
+ if int32(x) >= 0 {
+ aff = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(x)*24)).Faffinity
+ } else if int32(x) == -1 {
+ aff = int8(SQLITE_AFF_INTEGER)
+ } else {
+ aff = Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(n)*32)).FpExpr)
+ }
+ if int32(aff) < SQLITE_AFF_BLOB {
+ aff = int8(SQLITE_AFF_BLOB)
+ }
+ if int32(aff) > SQLITE_AFF_NUMERIC {
+ aff = int8(SQLITE_AFF_NUMERIC)
+ }
+ *(*int8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FzColAff + uintptr(n))) = aff
+ }
+ *(*int8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FzColAff + uintptr(n))) = int8(0)
+ }
+
+ return (*Index)(unsafe.Pointer(pIdx)).FzColAff
+}
+
+// Compute an affinity string for a table. Space is obtained
+// from sqlite3DbMalloc(). The caller is responsible for freeing
+// the space when done.
+func Xsqlite3TableAffinityStr(tls *libc.TLS, db uintptr, pTab uintptr) uintptr {
+ var zColAff uintptr
+ zColAff = Xsqlite3DbMallocRaw(tls, db, uint64(int32((*Table)(unsafe.Pointer(pTab)).FnCol)+1))
+ if zColAff != 0 {
+ var i int32
+ var j int32
+ for i = libc.AssignInt32(&j, 0); i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0 {
+ *(*int8)(unsafe.Pointer(zColAff + uintptr(libc.PostIncInt32(&j, 1)))) = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24)).Faffinity
+ }
+ }
+ for __ccgo := true; __ccgo; __ccgo = j >= 0 && int32(*(*int8)(unsafe.Pointer(zColAff + uintptr(j)))) <= SQLITE_AFF_BLOB {
+ *(*int8)(unsafe.Pointer(zColAff + uintptr(libc.PostDecInt32(&j, 1)))) = int8(0)
+ }
+ }
+ return zColAff
+}
+
+// Make changes to the evolving bytecode to do affinity transformations
+// of values that are about to be gathered into a row for table pTab.
+//
+// For ordinary (legacy, non-strict) tables:
+// -----------------------------------------
+//
+// Compute the affinity string for table pTab, if it has not already been
+// computed. As an optimization, omit trailing SQLITE_AFF_BLOB affinities.
+//
+// If the affinity string is empty (because it was all SQLITE_AFF_BLOB entries
+// which were then optimized out) then this routine becomes a no-op.
+//
+// Otherwise if iReg>0 then code an OP_Affinity opcode that will set the
+// affinities for register iReg and following. Or if iReg==0,
+// then just set the P4 operand of the previous opcode (which should be
+// an OP_MakeRecord) to the affinity string.
+//
+// A column affinity string has one character per column:
+//
+// Character Column affinity
+// --------- ---------------
+// 'A' BLOB
+// 'B' TEXT
+// 'C' NUMERIC
+// 'D' INTEGER
+// 'E' REAL
+//
+// For STRICT tables:
+// ------------------
+//
+// Generate an appropropriate OP_TypeCheck opcode that will verify the
+// datatypes against the column definitions in pTab. If iReg==0, that
+// means an OP_MakeRecord opcode has already been generated and should be
+// the last opcode generated. The new OP_TypeCheck needs to be inserted
+// before the OP_MakeRecord. The new OP_TypeCheck should use the same
+// register set as the OP_MakeRecord. If iReg>0 then register iReg is
+// the first of a series of registers that will form the new record.
+// Apply the type checking to that array of registers.
+func Xsqlite3TableAffinity(tls *libc.TLS, v uintptr, pTab uintptr, iReg int32) {
+ var i int32
+ var zColAff uintptr
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Strict) != 0 {
+ if iReg == 0 {
+ var pPrev uintptr
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+ pPrev = Xsqlite3VdbeGetLastOp(tls, v)
+
+ (*VdbeOp)(unsafe.Pointer(pPrev)).Fopcode = U8(OP_TypeCheck)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, (*VdbeOp)(unsafe.Pointer(pPrev)).Fp1, (*VdbeOp)(unsafe.Pointer(pPrev)).Fp2, (*VdbeOp)(unsafe.Pointer(pPrev)).Fp3)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_TypeCheck, iReg, int32((*Table)(unsafe.Pointer(pTab)).FnNVCol))
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+ }
+ return
+ }
+ zColAff = (*Table)(unsafe.Pointer(pTab)).FzColAff
+ if zColAff == uintptr(0) {
+ zColAff = Xsqlite3TableAffinityStr(tls, uintptr(0), pTab)
+ if !(zColAff != 0) {
+ Xsqlite3OomFault(tls, Xsqlite3VdbeDb(tls, v))
+ return
+ }
+ (*Table)(unsafe.Pointer(pTab)).FzColAff = zColAff
+ }
+
+ i = int32(libc.Xstrlen(tls, zColAff) & uint64(0x3fffffff))
+ if i != 0 {
+ if iReg != 0 {
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, iReg, i, 0, zColAff, i)
+ } else {
+ Xsqlite3VdbeChangeP4(tls, v, -1, zColAff, i)
+ }
+ }
+}
+
+func readsTable(tls *libc.TLS, p uintptr, iDb int32, pTab uintptr) int32 {
+ var v uintptr = Xsqlite3GetVdbe(tls, p)
+ var i int32
+ var iEnd int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ var pVTab uintptr
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ pVTab = Xsqlite3GetVTable(tls, (*Parse)(unsafe.Pointer(p)).Fdb, pTab)
+ } else {
+ pVTab = uintptr(0)
+ }
+
+ for i = 1; i < iEnd; i++ {
+ var pOp uintptr = Xsqlite3VdbeGetOp(tls, v, i)
+
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_OpenRead && (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 == iDb {
+ var pIndex uintptr
+ var tnum Pgno = Pgno((*VdbeOp)(unsafe.Pointer(pOp)).Fp2)
+ if tnum == (*Table)(unsafe.Pointer(pTab)).Ftnum {
+ return 1
+ }
+ for pIndex = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIndex != 0; pIndex = (*Index)(unsafe.Pointer(pIndex)).FpNext {
+ if tnum == (*Index)(unsafe.Pointer(pIndex)).Ftnum {
+ return 1
+ }
+ }
+ }
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_VOpen && *(*uintptr)(unsafe.Pointer(pOp + 16)) == pVTab {
+ return 1
+ }
+ }
+ return 0
+}
+
+func exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN && int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 {
+ *(*U16)(unsafe.Pointer(pWalker + 36)) |= U16(int32((*Column)(unsafe.Pointer((*Table1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*Expr)(unsafe.Pointer(pExpr)).FiColumn)*24)).FcolFlags))
+ }
+ return WRC_Continue
+}
+
+// All regular columns for table pTab have been puts into registers
+// starting with iRegStore. The registers that correspond to STORED
+// or VIRTUAL columns have not yet been initialized. This routine goes
+// back and computes the values for those columns based on the previously
+// computed normal columns.
+func Xsqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore int32, pTab uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var i int32
+
+ var pRedo uintptr
+ var eProgress int32
+ var pOp uintptr
+
+ Xsqlite3TableAffinity(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, pTab, iRegStore)
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasStored) != U32(0) {
+ pOp = Xsqlite3VdbeGetLastOp(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe)
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Affinity {
+ var ii int32
+ var jj int32
+ var zP4 uintptr = *(*uintptr)(unsafe.Pointer(pOp + 16))
+
+ for ii = libc.AssignInt32(&jj, 0); *(*int8)(unsafe.Pointer(zP4 + uintptr(jj))) != 0; ii++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(ii)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0 {
+ continue
+ }
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(ii)*24)).FcolFlags)&COLFLAG_STORED != 0 {
+ *(*int8)(unsafe.Pointer(zP4 + uintptr(jj))) = int8(SQLITE_AFF_NONE)
+ }
+ jj++
+ }
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_TypeCheck {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 = 1
+ }
+ }
+
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ *(*U16)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24 + 16)) |= U16(COLFLAG_NOTAVAIL)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 8 + 40)) = pTab
+ (*Walker)(unsafe.Pointer(bp + 8)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprColumnFlagUnion}))
+ (*Walker)(unsafe.Pointer(bp + 8)).FxSelectCallback = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp + 8)).FxSelectCallback2 = uintptr(0)
+
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = -iRegStore
+ for __ccgo := true; __ccgo; __ccgo = pRedo != 0 && eProgress != 0 {
+ eProgress = 0
+ pRedo = uintptr(0)
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ var pCol uintptr = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24
+ if int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_NOTAVAIL != 0 {
+ var x int32
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_BUSY)
+ (*Walker)(unsafe.Pointer(bp + 8)).FeCode = U16(0)
+ Xsqlite3WalkExpr(tls, bp+8, Xsqlite3ColumnExpr(tls, pTab, pCol))
+ *(*U16)(unsafe.Pointer(pCol + 16)) &= libc.Uint16FromInt32(libc.CplInt32(COLFLAG_BUSY))
+ if int32((*Walker)(unsafe.Pointer(bp+8)).FeCode)&COLFLAG_NOTAVAIL != 0 {
+ pRedo = pCol
+ continue
+ }
+ eProgress = 1
+
+ x = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(i))) + iRegStore
+ Xsqlite3ExprCodeGeneratedColumn(tls, pParse, pTab, pCol, x)
+ *(*U16)(unsafe.Pointer(pCol + 16)) &= libc.Uint16FromInt32(libc.CplInt32(COLFLAG_NOTAVAIL))
+ }
+ }
+ }
+ if pRedo != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+8373, libc.VaList(bp, (*Column)(unsafe.Pointer(pRedo)).FzCnName))
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+}
+
+func autoIncBegin(tls *libc.TLS, pParse uintptr, iDb int32, pTab uintptr) int32 {
+ var memId int32 = 0
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Autoincrement) != U32(0) &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ var pInfo uintptr
+ var pSeqTab uintptr = (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32)).FpSchema)).FpSeqTab
+
+ if pSeqTab == uintptr(0) ||
+ !((*Table)(unsafe.Pointer(pSeqTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) ||
+ int32((*Table)(unsafe.Pointer(pSeqTab)).FeTabType) == TABTYP_VTAB ||
+ int32((*Table)(unsafe.Pointer(pSeqTab)).FnCol) != 2 {
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_CORRUPT | int32(2)<<8
+ return 0
+ }
+
+ pInfo = (*Parse)(unsafe.Pointer(pToplevel)).FpAinc
+ for pInfo != 0 && (*AutoincInfo)(unsafe.Pointer(pInfo)).FpTab != pTab {
+ pInfo = (*AutoincInfo)(unsafe.Pointer(pInfo)).FpNext
+ }
+ if pInfo == uintptr(0) {
+ pInfo = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(AutoincInfo{})))
+ Xsqlite3ParserAddCleanup(tls, pToplevel, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3DbFree})), pInfo)
+
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return 0
+ }
+ (*AutoincInfo)(unsafe.Pointer(pInfo)).FpNext = (*Parse)(unsafe.Pointer(pToplevel)).FpAinc
+ (*Parse)(unsafe.Pointer(pToplevel)).FpAinc = pInfo
+ (*AutoincInfo)(unsafe.Pointer(pInfo)).FpTab = pTab
+ (*AutoincInfo)(unsafe.Pointer(pInfo)).FiDb = iDb
+ (*Parse)(unsafe.Pointer(pToplevel)).FnMem++
+ (*AutoincInfo)(unsafe.Pointer(pInfo)).FregCtr = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pToplevel)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pToplevel + 56)) += 2
+ }
+ memId = (*AutoincInfo)(unsafe.Pointer(pInfo)).FregCtr
+ }
+ return memId
+}
+
+// This routine generates code that will initialize all of the
+// register used by the autoincrement tracker.
+func Xsqlite3AutoincrementBegin(tls *libc.TLS, pParse uintptr) {
+ var p uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pDb uintptr
+ var memId int32
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ for p = (*Parse)(unsafe.Pointer(pParse)).FpAinc; p != 0; p = (*AutoincInfo)(unsafe.Pointer(p)).FpNext {
+ var aOp uintptr
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*AutoincInfo)(unsafe.Pointer(p)).FiDb)*32
+ memId = (*AutoincInfo)(unsafe.Pointer(p)).FregCtr
+
+ Xsqlite3OpenTable(tls, pParse, 0, (*AutoincInfo)(unsafe.Pointer(p)).FiDb, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab, OP_OpenRead)
+ Xsqlite3VdbeLoadString(tls, v, memId-1, (*Table)(unsafe.Pointer((*AutoincInfo)(unsafe.Pointer(p)).FpTab)).FzName)
+ aOp = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(autoInc))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&autoInc)), iLn1)
+ if aOp == uintptr(0) {
+ break
+ }
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp2 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp3 = memId + 2
+ (*VdbeOp)(unsafe.Pointer(aOp + 2*24)).Fp3 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp1 = memId - 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp3 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp5 = U16(SQLITE_JUMPIFNULL)
+ (*VdbeOp)(unsafe.Pointer(aOp + 4*24)).Fp2 = memId + 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 5*24)).Fp3 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp + 6*24)).Fp1 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp + 7*24)).Fp2 = memId + 2
+ (*VdbeOp)(unsafe.Pointer(aOp + 7*24)).Fp1 = memId
+ (*VdbeOp)(unsafe.Pointer(aOp + 10*24)).Fp2 = memId
+ if (*Parse)(unsafe.Pointer(pParse)).FnTab == 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = 1
+ }
+ }
+}
+
+var iLn1 int32 = 0
+var autoInc = [12]VdbeOpList{
+ {Fopcode: U8(OP_Null)},
+ {Fopcode: U8(OP_Rewind), Fp2: int8(10)},
+ {Fopcode: U8(OP_Column)},
+ {Fopcode: U8(OP_Ne), Fp2: int8(9)},
+ {Fopcode: U8(OP_Rowid)},
+ {Fopcode: U8(OP_Column), Fp2: int8(1)},
+ {Fopcode: U8(OP_AddImm)},
+ {Fopcode: U8(OP_Copy)},
+ {Fopcode: U8(OP_Goto), Fp2: int8(11)},
+ {Fopcode: U8(OP_Next), Fp2: int8(2)},
+ {Fopcode: U8(OP_Integer)},
+ {Fopcode: U8(OP_Close)},
+}
+
+func autoIncStep(tls *libc.TLS, pParse uintptr, memId int32, regRowid int32) {
+ if memId > 0 {
+ Xsqlite3VdbeAddOp2(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_MemMax, memId, regRowid)
+ }
+}
+
+func autoIncrementEnd(tls *libc.TLS, pParse uintptr) {
+ var p uintptr
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ for p = (*Parse)(unsafe.Pointer(pParse)).FpAinc; p != 0; p = (*AutoincInfo)(unsafe.Pointer(p)).FpNext {
+ var aOp uintptr
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*AutoincInfo)(unsafe.Pointer(p)).FiDb)*32
+ var iRec int32
+ var memId int32 = (*AutoincInfo)(unsafe.Pointer(p)).FregCtr
+
+ iRec = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Le, memId+2, Xsqlite3VdbeCurrentAddr(tls, v)+7, memId)
+
+ Xsqlite3OpenTable(tls, pParse, 0, (*AutoincInfo)(unsafe.Pointer(p)).FiDb, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab, OP_OpenWrite)
+ aOp = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(autoIncEnd))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&autoIncEnd)), iLn2)
+ if aOp == uintptr(0) {
+ break
+ }
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp1 = memId + 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fp2 = memId + 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 2*24)).Fp1 = memId - 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 2*24)).Fp3 = iRec
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp2 = iRec
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp3 = memId + 1
+ (*VdbeOp)(unsafe.Pointer(aOp + 3*24)).Fp5 = U16(OPFLAG_APPEND)
+ Xsqlite3ReleaseTempReg(tls, pParse, iRec)
+ }
+}
+
+var iLn2 int32 = 0
+var autoIncEnd = [5]VdbeOpList{
+ {Fopcode: U8(OP_NotNull), Fp2: int8(2)},
+ {Fopcode: U8(OP_NewRowid)},
+ {Fopcode: U8(OP_MakeRecord), Fp2: int8(2)},
+ {Fopcode: U8(OP_Insert)},
+ {Fopcode: U8(OP_Close)},
+}
+
+func Xsqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) {
+ if (*Parse)(unsafe.Pointer(pParse)).FpAinc != 0 {
+ autoIncrementEnd(tls, pParse)
+ }
+}
+
+// This routine is called to handle SQL of the following forms:
+//
+// insert into TABLE (IDLIST) values(EXPRLIST),(EXPRLIST),...
+// insert into TABLE (IDLIST) select
+// insert into TABLE (IDLIST) default values
+//
+// The IDLIST following the table name is always optional. If omitted,
+// then a list of all (non-hidden) columns for the table is substituted.
+// The IDLIST appears in the pColumn parameter. pColumn is NULL if IDLIST
+// is omitted.
+//
+// For the pSelect parameter holds the values to be inserted for the
+// first two forms shown above. A VALUES clause is really just short-hand
+// for a SELECT statement that omits the FROM clause and everything else
+// that follows. If the pSelect parameter is NULL, that means that the
+// DEFAULT VALUES form of the INSERT statement is intended.
+//
+// The code generated follows one of four templates. For a simple
+// insert with data coming from a single-row VALUES clause, the code executes
+// once straight down through. Pseudo-code follows (we call this
+// the "1st template"):
+//
+// open write cursor to <table> and its indices
+// put VALUES clause expressions into registers
+// write the resulting record into <table>
+// cleanup
+//
+// The three remaining templates assume the statement is of the form
+//
+// INSERT INTO <table> SELECT ...
+//
+// If the SELECT clause is of the restricted form "SELECT * FROM <table2>" -
+// in other words if the SELECT pulls all columns from a single table
+// and there is no WHERE or LIMIT or GROUP BY or ORDER BY clauses, and
+// if <table2> and <table1> are distinct tables but have identical
+// schemas, including all the same indices, then a special optimization
+// is invoked that copies raw records from <table2> over to <table1>.
+// See the xferOptimization() function for the implementation of this
+// template. This is the 2nd template.
+//
+// open a write cursor to <table>
+// open read cursor on <table2>
+// transfer all records in <table2> over to <table>
+// close cursors
+// foreach index on <table>
+// open a write cursor on the <table> index
+// open a read cursor on the corresponding <table2> index
+// transfer all records from the read to the write cursors
+// close cursors
+// end foreach
+//
+// The 3rd template is for when the second template does not apply
+// and the SELECT clause does not read from <table> at any time.
+// The generated code follows this template:
+//
+// X <- A
+// goto B
+// A: setup for the SELECT
+// loop over the rows in the SELECT
+// load values into registers R..R+n
+// yield X
+// end loop
+// cleanup after the SELECT
+// end-coroutine X
+// B: open write cursor to <table> and its indices
+// C: yield X, at EOF goto D
+// insert the select result into <table> from R..R+n
+// goto C
+// D: cleanup
+//
+// The 4th template is used if the insert statement takes its
+// values from a SELECT but the data is being inserted into a table
+// that is also read as part of the SELECT. In the third form,
+// we have to use an intermediate table to store the results of
+// the select. The template is like this:
+//
+// X <- A
+// goto B
+// A: setup for the SELECT
+// loop over the tables in the SELECT
+// load value into register R..R+n
+// yield X
+// end loop
+// cleanup after the SELECT
+// end co-routine R
+// B: open temp table
+// L: yield X, at EOF goto M
+// insert row from R..R+n into temp table
+// goto L
+// M: open write cursor to <table> and its indices
+// rewind temp table
+// C: loop over rows of intermediate table
+// transfer values form intermediate table into <table>
+// end loop
+// D: cleanup
+func Xsqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) {
+ bp := tls.Alloc(188)
+ defer tls.Free(188)
+
+ var db uintptr
+ var pTab uintptr
+ var i int32
+ var j int32
+ var v uintptr
+ var pIdx uintptr
+ var nColumn int32
+ var nHidden int32
+
+ var ipkColumn int32
+ var endOfLoop int32
+ var srcTab int32
+ var addrInsTop int32
+ var addrCont int32
+
+ var iDb int32
+ var useTempTable U8
+ var appendFlag U8
+ var withoutRowid U8
+ var bIdListInOrder U8
+ var pList uintptr
+ var iRegStore int32
+
+ var regFromSelect int32
+ var regAutoinc int32
+ var regRowCount int32
+ var regIns int32
+ var regRowid int32
+ var regData int32
+ var aRegIdx uintptr
+
+ var isView int32
+ var pTrigger uintptr
+
+ var regRec int32
+ var regTempRowid int32
+ var addrL int32
+
+ var regYield int32
+ var addrTop int32
+ var rc int32
+
+ var nIdx int32
+ var pNx uintptr
+ var pX uintptr
+ var y int32
+ var k int32
+ var colFlags U32
+ var addr1 int32
+ var regCols int32
+ var pIpk uintptr
+ var addr11 int32
+ var pVTab uintptr
+
+ var bUseSeek int32
+ nHidden = 0
+ *(*int32)(unsafe.Pointer(bp + 176)) = 0
+ *(*int32)(unsafe.Pointer(bp + 180)) = 0
+ ipkColumn = -1
+ srcTab = 0
+ addrInsTop = 0
+ addrCont = 0
+ useTempTable = U8(0)
+ appendFlag = U8(0)
+ pList = uintptr(0)
+ regFromSelect = 0
+ regAutoinc = 0
+ regRowCount = 0
+ aRegIdx = uintptr(0)
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __1
+ }
+ goto insert_cleanup
+__1:
+ ;
+ (*SelectDest)(unsafe.Pointer(bp + 80)).FiSDParm = 0
+
+ if !(pSelect != 0 && (*Select)(unsafe.Pointer(pSelect)).FselFlags&U32(SF_Values) != U32(0) && (*Select)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0)) {
+ goto __2
+ }
+ pList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+ (*Select)(unsafe.Pointer(pSelect)).FpEList = uintptr(0)
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ pSelect = uintptr(0)
+__2:
+ ;
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTabList)
+ if !(pTab == uintptr(0)) {
+ goto __3
+ }
+ goto insert_cleanup
+__3:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_INSERT, (*Table)(unsafe.Pointer(pTab)).FzName, uintptr(0),
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName) != 0) {
+ goto __4
+ }
+ goto insert_cleanup
+__4:
+ ;
+ withoutRowid = libc.BoolUint8(!((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)))
+
+ pTrigger = Xsqlite3TriggersExist(tls, pParse, pTab, TK_INSERT, uintptr(0), bp+72)
+ isView = libc.Bool32(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW)
+
+ if !(Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0) {
+ goto __5
+ }
+ goto insert_cleanup
+__5:
+ ;
+ if !(Xsqlite3IsReadOnly(tls, pParse, pTab, *(*int32)(unsafe.Pointer(bp + 72))) != 0) {
+ goto __6
+ }
+ goto insert_cleanup
+__6:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __7
+ }
+ goto insert_cleanup
+__7:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) {
+ goto __8
+ }
+ Xsqlite3VdbeCountChanges(tls, v)
+__8:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, libc.Bool32(pSelect != 0 || pTrigger != 0), iDb)
+
+ if !(pColumn == uintptr(0) &&
+ pSelect != uintptr(0) &&
+ pTrigger == uintptr(0) &&
+ xferOptimization(tls, pParse, pTab, pSelect, onError, iDb) != 0) {
+ goto __9
+ }
+
+ goto insert_end
+__9:
+ ;
+ regAutoinc = autoIncBegin(tls, pParse, iDb, pTab)
+
+ regRowid = libc.AssignInt32(&regIns, (*Parse)(unsafe.Pointer(pParse)).FnMem+1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Table)(unsafe.Pointer(pTab)).FnCol) + 1
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __10
+ }
+ regRowid++
+ (*Parse)(unsafe.Pointer(pParse)).FnMem++
+__10:
+ ;
+ regData = regRowid + 1
+
+ bIdListInOrder = U8(libc.Bool32((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_OOOHidden|TF_HasStored) == U32(0)))
+ if !(pColumn != 0) {
+ goto __11
+ }
+
+ (*IdList)(unsafe.Pointer(pColumn)).FeU4 = U8(EU4_IDX)
+ i = 0
+__12:
+ if !(i < (*IdList)(unsafe.Pointer(pColumn)).FnId) {
+ goto __14
+ }
+ *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16 + 8)) = -1
+ goto __13
+__13:
+ i++
+ goto __12
+ goto __14
+__14:
+ ;
+ i = 0
+__15:
+ if !(i < (*IdList)(unsafe.Pointer(pColumn)).FnId) {
+ goto __17
+ }
+ j = 0
+__18:
+ if !(j < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __20
+ }
+ if !(Xsqlite3StrICmp(tls, (*IdList_item)(unsafe.Pointer(pColumn+8+uintptr(i)*16)).FzName, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FzCnName) == 0) {
+ goto __21
+ }
+ *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16 + 8)) = j
+ if !(i != j) {
+ goto __22
+ }
+ bIdListInOrder = U8(0)
+__22:
+ ;
+ if !(j == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __23
+ }
+ ipkColumn = i
+__23:
+ ;
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&(COLFLAG_STORED|COLFLAG_VIRTUAL) != 0) {
+ goto __24
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+16060,
+ libc.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FzCnName))
+ goto insert_cleanup
+__24:
+ ;
+ goto __20
+__21:
+ ;
+ goto __19
+__19:
+ j++
+ goto __18
+ goto __20
+__20:
+ ;
+ if !(j >= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __25
+ }
+ if !(Xsqlite3IsRowid(tls, (*IdList_item)(unsafe.Pointer(pColumn+8+uintptr(i)*16)).FzName) != 0 && !(withoutRowid != 0)) {
+ goto __26
+ }
+ ipkColumn = i
+ bIdListInOrder = U8(0)
+ goto __27
+__26:
+ Xsqlite3ErrorMsg(tls, pParse, ts+16101,
+ libc.VaList(bp+8, pTabList+8, (*IdList_item)(unsafe.Pointer(pColumn+8+uintptr(i)*16)).FzName))
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ goto insert_cleanup
+__27:
+ ;
+__25:
+ ;
+ goto __16
+__16:
+ i++
+ goto __15
+ goto __17
+__17:
+ ;
+__11:
+ ;
+ if !(pSelect != 0) {
+ goto __28
+ }
+
+ regYield = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ addrTop = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+ Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regYield, 0, addrTop)
+ Xsqlite3SelectDestInit(tls, bp+80, SRT_Coroutine, regYield)
+ (*SelectDest)(unsafe.Pointer(bp + 80)).FiSdst = func() int32 {
+ if bIdListInOrder != 0 {
+ return regData
+ }
+ return 0
+ }()
+ (*SelectDest)(unsafe.Pointer(bp + 80)).FnSdst = int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ rc = Xsqlite3Select(tls, pParse, pSelect, bp+80)
+ regFromSelect = (*SelectDest)(unsafe.Pointer(bp + 80)).FiSdst
+
+ if !(rc != 0 || (*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __30
+ }
+ goto insert_cleanup
+__30:
+ ;
+ Xsqlite3VdbeEndCoroutine(tls, v, regYield)
+ Xsqlite3VdbeJumpHere(tls, v, addrTop-1)
+
+ nColumn = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpEList)).FnExpr
+
+ if !(pTrigger != 0 || readsTable(tls, pParse, iDb, pTab) != 0) {
+ goto __31
+ }
+ useTempTable = U8(1)
+__31:
+ ;
+ if !(useTempTable != 0) {
+ goto __32
+ }
+
+ srcTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ regRec = Xsqlite3GetTempReg(tls, pParse)
+ regTempRowid = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, srcTab, nColumn)
+ addrL = Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(bp+80)).FiSDParm)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regFromSelect, nColumn, regRec)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, srcTab, regTempRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, srcTab, regRec, regTempRowid)
+ Xsqlite3VdbeGoto(tls, v, addrL)
+ Xsqlite3VdbeJumpHere(tls, v, addrL)
+ Xsqlite3ReleaseTempReg(tls, pParse, regRec)
+ Xsqlite3ReleaseTempReg(tls, pParse, regTempRowid)
+__32:
+ ;
+ goto __29
+__28:
+ libc.X__builtin___memset_chk(tls, bp+120, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+120, 0))
+ (*NameContext)(unsafe.Pointer(bp + 120)).FpParse = pParse
+ srcTab = -1
+
+ if !(pList != 0) {
+ goto __33
+ }
+ nColumn = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ if !(Xsqlite3ResolveExprListNames(tls, bp+120, pList) != 0) {
+ goto __35
+ }
+ goto insert_cleanup
+__35:
+ ;
+ goto __34
+__33:
+ nColumn = 0
+__34:
+ ;
+__29:
+ ;
+ if !(pColumn == uintptr(0) && nColumn > 0) {
+ goto __36
+ }
+ ipkColumn = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ if !(ipkColumn >= 0 && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != U32(0)) {
+ goto __37
+ }
+
+ i = ipkColumn - 1
+__38:
+ if !(i >= 0) {
+ goto __40
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __41
+ }
+
+ ipkColumn--
+__41:
+ ;
+ goto __39
+__39:
+ i--
+ goto __38
+ goto __40
+__40:
+ ;
+__37:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated|TF_HasHidden) != U32(0)) {
+ goto __42
+ }
+ i = 0
+__43:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __45
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_NOINSERT != 0) {
+ goto __46
+ }
+ nHidden++
+__46:
+ ;
+ goto __44
+__44:
+ i++
+ goto __43
+ goto __45
+__45:
+ ;
+__42:
+ ;
+ if !(nColumn != int32((*Table)(unsafe.Pointer(pTab)).FnCol)-nHidden) {
+ goto __47
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+16133,
+ libc.VaList(bp+24, pTabList+8, int32((*Table)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn))
+ goto insert_cleanup
+__47:
+ ;
+__36:
+ ;
+ if !(pColumn != uintptr(0) && nColumn != (*IdList)(unsafe.Pointer(pColumn)).FnId) {
+ goto __48
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+16185, libc.VaList(bp+48, nColumn, (*IdList)(unsafe.Pointer(pColumn)).FnId))
+ goto insert_cleanup
+__48:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(0x00001)<<32) != uint64(0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FbReturning) != 0)) {
+ goto __49
+ }
+ regRowCount = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regRowCount)
+__49:
+ ;
+ if !!(isView != 0) {
+ goto __50
+ }
+ nIdx = Xsqlite3OpenTableAndIndices(tls, pParse, pTab, OP_OpenWrite, uint8(0), -1, uintptr(0),
+ bp+176, bp+180)
+ aRegIdx = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(int32(0)))*uint64(nIdx+2))
+ if !(aRegIdx == uintptr(0)) {
+ goto __51
+ }
+ goto insert_cleanup
+__51:
+ ;
+ i = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__52:
+ if !(i < nIdx) {
+ goto __54
+ }
+
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ goto __53
+__53:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ i++
+ goto __52
+ goto __54
+__54:
+ ;
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+__50:
+ ;
+ if !(pUpsert != 0) {
+ goto __55
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __56
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+16210,
+ libc.VaList(bp+64, (*Table)(unsafe.Pointer(pTab)).FzName))
+ goto insert_cleanup
+__56:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __57
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+16256, 0)
+ goto insert_cleanup
+__57:
+ ;
+ if !(Xsqlite3HasExplicitNulls(tls, pParse, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget) != 0) {
+ goto __58
+ }
+ goto insert_cleanup
+__58:
+ ;
+ (*SrcItem)(unsafe.Pointer(pTabList + 8)).FiCursor = *(*int32)(unsafe.Pointer(bp + 176))
+ pNx = pUpsert
+__59:
+ (*Upsert)(unsafe.Pointer(pNx)).FpUpsertSrc = pTabList
+ (*Upsert)(unsafe.Pointer(pNx)).FregData = regData
+ (*Upsert)(unsafe.Pointer(pNx)).FiDataCur = *(*int32)(unsafe.Pointer(bp + 176))
+ (*Upsert)(unsafe.Pointer(pNx)).FiIdxCur = *(*int32)(unsafe.Pointer(bp + 180))
+ if !((*Upsert)(unsafe.Pointer(pNx)).FpUpsertTarget != 0) {
+ goto __62
+ }
+ if !(Xsqlite3UpsertAnalyzeTarget(tls, pParse, pTabList, pNx) != 0) {
+ goto __63
+ }
+ goto insert_cleanup
+__63:
+ ;
+__62:
+ ;
+ pNx = (*Upsert)(unsafe.Pointer(pNx)).FpNextUpsert
+ goto __60
+__60:
+ if pNx != uintptr(0) {
+ goto __59
+ }
+ goto __61
+__61:
+ ;
+__55:
+ ;
+ if !(useTempTable != 0) {
+ goto __64
+ }
+
+ addrInsTop = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, srcTab)
+ addrCont = Xsqlite3VdbeCurrentAddr(tls, v)
+ goto __65
+__64:
+ if !(pSelect != 0) {
+ goto __66
+ }
+
+ addrInsTop = libc.AssignInt32(&addrCont, Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(bp+80)).FiSDParm))
+
+ if !(ipkColumn >= 0) {
+ goto __67
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, regFromSelect+ipkColumn, regRowid)
+__67:
+ ;
+__66:
+ ;
+__65:
+ ;
+ nHidden = 0
+ iRegStore = regData
+ i = 0
+__68:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __70
+ }
+
+ if !(i == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __71
+ }
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_SoftNull, iRegStore)
+ goto __69
+__71:
+ ;
+ if !(libc.AssignUint32(&colFlags, U32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags))&U32(COLFLAG_NOINSERT) != U32(0)) {
+ goto __72
+ }
+ nHidden++
+ if !(colFlags&U32(COLFLAG_VIRTUAL) != U32(0)) {
+ goto __73
+ }
+
+ iRegStore--
+ goto __69
+ goto __74
+__73:
+ if !(colFlags&U32(COLFLAG_STORED) != U32(0)) {
+ goto __75
+ }
+
+ if !(*(*int32)(unsafe.Pointer(bp + 72))&TRIGGER_BEFORE != 0) {
+ goto __77
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_SoftNull, iRegStore)
+__77:
+ ;
+ goto __69
+ goto __76
+__75:
+ if !(pColumn == uintptr(0)) {
+ goto __78
+ }
+
+ Xsqlite3ExprCodeFactorable(tls, pParse,
+ Xsqlite3ColumnExpr(tls, pTab, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24),
+ iRegStore)
+ goto __69
+__78:
+ ;
+__76:
+ ;
+__74:
+ ;
+__72:
+ ;
+ if !(pColumn != 0) {
+ goto __79
+ }
+
+ j = 0
+__81:
+ if !(j < (*IdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) {
+ goto __83
+ }
+ goto __82
+__82:
+ j++
+ goto __81
+ goto __83
+__83:
+ ;
+ if !(j >= (*IdList)(unsafe.Pointer(pColumn)).FnId) {
+ goto __84
+ }
+
+ Xsqlite3ExprCodeFactorable(tls, pParse,
+ Xsqlite3ColumnExpr(tls, pTab, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24),
+ iRegStore)
+ goto __69
+__84:
+ ;
+ k = j
+ goto __80
+__79:
+ if !(nColumn == 0) {
+ goto __85
+ }
+
+ Xsqlite3ExprCodeFactorable(tls, pParse,
+ Xsqlite3ColumnExpr(tls, pTab, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24),
+ iRegStore)
+ goto __69
+ goto __86
+__85:
+ k = i - nHidden
+__86:
+ ;
+__80:
+ ;
+ if !(useTempTable != 0) {
+ goto __87
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, srcTab, k, iRegStore)
+ goto __88
+__87:
+ if !(pSelect != 0) {
+ goto __89
+ }
+ if !(regFromSelect != regData) {
+ goto __91
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, regFromSelect+k, iRegStore)
+__91:
+ ;
+ goto __90
+__89:
+ pX = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(k)*32)).FpExpr
+ y = Xsqlite3ExprCodeTarget(tls, pParse, pX, iRegStore)
+ if !(y != iRegStore) {
+ goto __92
+ }
+ Xsqlite3VdbeAddOp2(tls, v,
+ func() int32 {
+ if (*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_Subquery) != U32(0) {
+ return OP_Copy
+ }
+ return OP_SCopy
+ }(), y, iRegStore)
+__92:
+ ;
+__90:
+ ;
+__88:
+ ;
+ goto __69
+__69:
+ i++
+ iRegStore++
+ goto __68
+ goto __70
+__70:
+ ;
+ endOfLoop = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if !(*(*int32)(unsafe.Pointer(bp + 72))&TRIGGER_BEFORE != 0) {
+ goto __93
+ }
+ regCols = Xsqlite3GetTempRange(tls, pParse, int32((*Table)(unsafe.Pointer(pTab)).FnCol)+1)
+
+ if !(ipkColumn < 0) {
+ goto __94
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, -1, regCols)
+ goto __95
+__94:
+ ;
+ if !(useTempTable != 0) {
+ goto __96
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, srcTab, ipkColumn, regCols)
+ goto __97
+__96:
+ ;
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ipkColumn)*32)).FpExpr, regCols)
+__97:
+ ;
+ addr1 = Xsqlite3VdbeAddOp1(tls, v, OP_NotNull, regCols)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, -1, regCols)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ Xsqlite3VdbeAddOp1(tls, v, OP_MustBeInt, regCols)
+__95:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regRowid+1, regCols+1, int32((*Table)(unsafe.Pointer(pTab)).FnNVCol)-1)
+
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != 0) {
+ goto __98
+ }
+
+ Xsqlite3ComputeGeneratedColumns(tls, pParse, regCols+1, pTab)
+__98:
+ ;
+ if !!(isView != 0) {
+ goto __99
+ }
+ Xsqlite3TableAffinity(tls, v, pTab, regCols+1)
+__99:
+ ;
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger, TK_INSERT, uintptr(0), TRIGGER_BEFORE,
+ pTab, regCols-int32((*Table)(unsafe.Pointer(pTab)).FnCol)-1, onError, endOfLoop)
+
+ Xsqlite3ReleaseTempRange(tls, pParse, regCols, int32((*Table)(unsafe.Pointer(pTab)).FnCol)+1)
+__93:
+ ;
+ if !!(isView != 0) {
+ goto __100
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __101
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regIns)
+__101:
+ ;
+ if !(ipkColumn >= 0) {
+ goto __102
+ }
+
+ if !(useTempTable != 0) {
+ goto __104
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, srcTab, ipkColumn, regRowid)
+ goto __105
+__104:
+ if !(pSelect != 0) {
+ goto __106
+ }
+
+ goto __107
+__106:
+ pIpk = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(ipkColumn)*32)).FpExpr
+ if !(int32((*Expr)(unsafe.Pointer(pIpk)).Fop) == TK_NULL && !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB)) {
+ goto __108
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_NewRowid, *(*int32)(unsafe.Pointer(bp + 176)), regRowid, regAutoinc)
+ appendFlag = U8(1)
+ goto __109
+__108:
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ipkColumn)*32)).FpExpr, regRowid)
+__109:
+ ;
+__107:
+ ;
+__105:
+ ;
+ if !!(appendFlag != 0) {
+ goto __110
+ }
+ if !!(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __111
+ }
+ addr11 = Xsqlite3VdbeAddOp1(tls, v, OP_NotNull, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_NewRowid, *(*int32)(unsafe.Pointer(bp + 176)), regRowid, regAutoinc)
+ Xsqlite3VdbeJumpHere(tls, v, addr11)
+ goto __112
+__111:
+ addr11 = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regRowid, addr11+2)
+__112:
+ ;
+ Xsqlite3VdbeAddOp1(tls, v, OP_MustBeInt, regRowid)
+__110:
+ ;
+ goto __103
+__102:
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB || withoutRowid != 0) {
+ goto __113
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regRowid)
+ goto __114
+__113:
+ Xsqlite3VdbeAddOp3(tls, v, OP_NewRowid, *(*int32)(unsafe.Pointer(bp + 176)), regRowid, regAutoinc)
+ appendFlag = U8(1)
+__114:
+ ;
+__103:
+ ;
+ autoIncStep(tls, pParse, regAutoinc, regRowid)
+
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != 0) {
+ goto __115
+ }
+ Xsqlite3ComputeGeneratedColumns(tls, pParse, regRowid+1, pTab)
+__115:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __116
+ }
+ pVTab = Xsqlite3GetVTable(tls, db, pTab)
+ Xsqlite3VtabMakeWritable(tls, pParse, pTab)
+ Xsqlite3VdbeAddOp4(tls, v, OP_VUpdate, 1, int32((*Table)(unsafe.Pointer(pTab)).FnCol)+2, regIns, pVTab, -11)
+ Xsqlite3VdbeChangeP5(tls, v, func() uint16 {
+ if onError == OE_Default {
+ return uint16(OE_Abort)
+ }
+ return uint16(onError)
+ }())
+ Xsqlite3MayAbort(tls, pParse)
+ goto __117
+__116:
+ *(*int32)(unsafe.Pointer(bp + 184)) = 0
+ Xsqlite3GenerateConstraintChecks(tls, pParse, pTab, aRegIdx, *(*int32)(unsafe.Pointer(bp + 176)), *(*int32)(unsafe.Pointer(bp + 180)),
+ regIns, 0, uint8(libc.Bool32(ipkColumn >= 0)), uint8(onError), endOfLoop, bp+184, uintptr(0), pUpsert)
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0) {
+ goto __118
+ }
+ Xsqlite3FkCheck(tls, pParse, pTab, 0, regIns, uintptr(0), 0)
+__118:
+ ;
+ bUseSeek = libc.Bool32(*(*int32)(unsafe.Pointer(bp + 184)) == 0 || !(Xsqlite3VdbeHasSubProgram(tls, v) != 0))
+ Xsqlite3CompleteInsertion(tls, pParse, pTab, *(*int32)(unsafe.Pointer(bp + 176)), *(*int32)(unsafe.Pointer(bp + 180)),
+ regIns, aRegIdx, 0, int32(appendFlag), bUseSeek)
+__117:
+ ;
+__100:
+ ;
+ if !(regRowCount != 0) {
+ goto __119
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, regRowCount, 1)
+__119:
+ ;
+ if !(pTrigger != 0) {
+ goto __120
+ }
+
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger, TK_INSERT, uintptr(0), TRIGGER_AFTER,
+ pTab, regData-2-int32((*Table)(unsafe.Pointer(pTab)).FnCol), onError, endOfLoop)
+__120:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, endOfLoop)
+ if !(useTempTable != 0) {
+ goto __121
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, srcTab, addrCont)
+ Xsqlite3VdbeJumpHere(tls, v, addrInsTop)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, srcTab)
+ goto __122
+__121:
+ if !(pSelect != 0) {
+ goto __123
+ }
+ Xsqlite3VdbeGoto(tls, v, addrCont)
+ Xsqlite3VdbeJumpHere(tls, v, addrInsTop)
+__123:
+ ;
+__122:
+ ;
+insert_end:
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 && (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab == uintptr(0)) {
+ goto __124
+ }
+ Xsqlite3AutoincrementEnd(tls, pParse)
+__124:
+ ;
+ if !(regRowCount != 0) {
+ goto __125
+ }
+ Xsqlite3CodeChangeCount(tls, v, regRowCount, ts+16277)
+__125:
+ ;
+insert_cleanup:
+ Xsqlite3SrcListDelete(tls, db, pTabList)
+ Xsqlite3ExprListDelete(tls, db, pList)
+ Xsqlite3UpsertDelete(tls, db, pUpsert)
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ Xsqlite3IdListDelete(tls, db, pColumn)
+ if !(aRegIdx != 0) {
+ goto __126
+ }
+ Xsqlite3DbNNFreeNN(tls, db, aRegIdx)
+__126:
+}
+
+func checkConstraintExprNode(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 {
+ if *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)) + uintptr((*Expr)(unsafe.Pointer(pExpr)).FiColumn)*4)) >= 0 {
+ *(*U16)(unsafe.Pointer(pWalker + 36)) |= U16(CKCNSTRNT_COLUMN)
+ }
+ } else {
+ *(*U16)(unsafe.Pointer(pWalker + 36)) |= U16(CKCNSTRNT_ROWID)
+ }
+ }
+ return WRC_Continue
+}
+
+// pExpr is a CHECK constraint on a row that is being UPDATE-ed. The
+// only columns that are modified by the UPDATE are those for which
+// aiChng[i]>=0, and also the ROWID is modified if chngRowid is true.
+//
+// Return true if CHECK constraint pExpr uses any of the
+// changing columns (or the rowid if it is changing). In other words,
+// return true if this CHECK constraint must be validated for
+// the new row in the UPDATE statement.
+//
+// 2018-09-15: pExpr might also be an expression for an index-on-expressions.
+// The operation of this routine is the same - return true if an only if
+// the expression uses one or more of columns identified by the second and
+// third arguments.
+func Xsqlite3ExprReferencesUpdatedColumn(tls *libc.TLS, pExpr uintptr, aiChng uintptr, chngRowid int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(0)
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{checkConstraintExprNode}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = aiChng
+ Xsqlite3WalkExpr(tls, bp, pExpr)
+ if !(chngRowid != 0) {
+ *(*U16)(unsafe.Pointer(bp + 36)) &= libc.Uint16FromInt32(libc.CplInt32(CKCNSTRNT_ROWID))
+ }
+
+ return libc.Bool32(int32((*Walker)(unsafe.Pointer(bp)).FeCode) != 0)
+}
+
+// The sqlite3GenerateConstraintChecks() routine usually wants to visit
+// the indexes of a table in the order provided in the Table->pIndex list.
+// However, sometimes (rarely - when there is an upsert) it wants to visit
+// the indexes in a different order. The following data structures accomplish
+// this.
+//
+// The IndexIterator object is used to walk through all of the indexes
+// of a table in either Index.pNext order, or in some other order established
+// by an array of IndexListTerm objects.
+type IndexListTerm1 = struct {
+ Fp uintptr
+ Fix int32
+ F__ccgo_pad1 [4]byte
+}
+
+// The sqlite3GenerateConstraintChecks() routine usually wants to visit
+// the indexes of a table in the order provided in the Table->pIndex list.
+// However, sometimes (rarely - when there is an upsert) it wants to visit
+// the indexes in a different order. The following data structures accomplish
+// this.
+//
+// The IndexIterator object is used to walk through all of the indexes
+// of a table in either Index.pNext order, or in some other order established
+// by an array of IndexListTerm objects.
+type IndexListTerm = IndexListTerm1
+type IndexIterator1 = struct {
+ FeType int32
+ Fi int32
+ Fu struct {
+ Flx struct{ FpIdx uintptr }
+ F__ccgo_pad1 [8]byte
+ }
+}
+
+type IndexIterator = IndexIterator1
+
+func indexIteratorFirst(tls *libc.TLS, pIter uintptr, pIx uintptr) uintptr {
+ if (*IndexIterator)(unsafe.Pointer(pIter)).FeType != 0 {
+ *(*int32)(unsafe.Pointer(pIx)) = (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIter + 8 + 8)))).Fix
+ return (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIter + 8 + 8)))).Fp
+ } else {
+ *(*int32)(unsafe.Pointer(pIx)) = 0
+ return *(*uintptr)(unsafe.Pointer(pIter + 8))
+ }
+ return uintptr(0)
+}
+
+func indexIteratorNext(tls *libc.TLS, pIter uintptr, pIx uintptr) uintptr {
+ if (*IndexIterator)(unsafe.Pointer(pIter)).FeType != 0 {
+ var i int32 = libc.PreIncInt32(&(*IndexIterator)(unsafe.Pointer(pIter)).Fi, 1)
+ if i >= *(*int32)(unsafe.Pointer(pIter + 8)) {
+ *(*int32)(unsafe.Pointer(pIx)) = i
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(pIx)) = (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIter + 8 + 8)) + uintptr(i)*16)).Fix
+ return (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIter + 8 + 8)) + uintptr(i)*16)).Fp
+ } else {
+ *(*int32)(unsafe.Pointer(pIx))++
+ *(*uintptr)(unsafe.Pointer(pIter + 8)) = (*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pIter + 8)))).FpNext
+ return *(*uintptr)(unsafe.Pointer(pIter + 8))
+ }
+ return uintptr(0)
+}
+
+// Generate code to do constraint checks prior to an INSERT or an UPDATE
+// on table pTab.
+//
+// The regNewData parameter is the first register in a range that contains
+// the data to be inserted or the data after the update. There will be
+// pTab->nCol+1 registers in this range. The first register (the one
+// that regNewData points to) will contain the new rowid, or NULL in the
+// case of a WITHOUT ROWID table. The second register in the range will
+// contain the content of the first table column. The third register will
+// contain the content of the second table column. And so forth.
+//
+// The regOldData parameter is similar to regNewData except that it contains
+// the data prior to an UPDATE rather than afterwards. regOldData is zero
+// for an INSERT. This routine can distinguish between UPDATE and INSERT by
+// checking regOldData for zero.
+//
+// For an UPDATE, the pkChng boolean is true if the true primary key (the
+// rowid for a normal table or the PRIMARY KEY for a WITHOUT ROWID table)
+// might be modified by the UPDATE. If pkChng is false, then the key of
+// the iDataCur content table is guaranteed to be unchanged by the UPDATE.
+//
+// For an INSERT, the pkChng boolean indicates whether or not the rowid
+// was explicitly specified as part of the INSERT statement. If pkChng
+// is zero, it means that the either rowid is computed automatically or
+// that the table is a WITHOUT ROWID table and has no rowid. On an INSERT,
+// pkChng will only be true if the INSERT statement provides an integer
+// value for either the rowid column or its INTEGER PRIMARY KEY alias.
+//
+// The code generated by this routine will store new index entries into
+// registers identified by aRegIdx[]. No index entry is created for
+// indices where aRegIdx[i]==0. The order of indices in aRegIdx[] is
+// the same as the order of indices on the linked list of indices
+// at pTab->pIndex.
+//
+// (2019-05-07) The generated code also creates a new record for the
+// main table, if pTab is a rowid table, and stores that record in the
+// register identified by aRegIdx[nIdx] - in other words in the first
+// entry of aRegIdx[] past the last index. It is important that the
+// record be generated during constraint checks to avoid affinity changes
+// to the register content that occur after constraint checks but before
+// the new record is inserted.
+//
+// The caller must have already opened writeable cursors on the main
+// table and all applicable indices (that is to say, all indices for which
+// aRegIdx[] is not zero). iDataCur is the cursor for the main table when
+// inserting or updating a rowid table, or the cursor for the PRIMARY KEY
+// index when operating on a WITHOUT ROWID table. iIdxCur is the cursor
+// for the first index in the pTab->pIndex list. Cursors for other indices
+// are at iIdxCur+N for the N-th element of the pTab->pIndex list.
+//
+// This routine also generates code to check constraints. NOT NULL,
+// CHECK, and UNIQUE constraints are all checked. If a constraint fails,
+// then the appropriate action is performed. There are five possible
+// actions: ROLLBACK, ABORT, FAIL, REPLACE, and IGNORE.
+//
+// Constraint type Action What Happens
+// --------------- ---------- ----------------------------------------
+// any ROLLBACK The current transaction is rolled back and
+// sqlite3_step() returns immediately with a
+// return code of SQLITE_CONSTRAINT.
+//
+// any ABORT Back out changes from the current command
+// only (do not do a complete rollback) then
+// cause sqlite3_step() to return immediately
+// with SQLITE_CONSTRAINT.
+//
+// any FAIL Sqlite3_step() returns immediately with a
+// return code of SQLITE_CONSTRAINT. The
+// transaction is not rolled back and any
+// changes to prior rows are retained.
+//
+// any IGNORE The attempt in insert or update the current
+// row is skipped, without throwing an error.
+// Processing continues with the next row.
+// (There is an immediate jump to ignoreDest.)
+//
+// NOT NULL REPLACE The NULL value is replace by the default
+// value for that column. If the default value
+// is NULL, the action is the same as ABORT.
+//
+// UNIQUE REPLACE The other row that conflicts with the row
+// being inserted is removed.
+//
+// CHECK REPLACE Illegal. The results in an exception.
+//
+// Which action to take is determined by the overrideError parameter.
+// Or if overrideError==OE_Default, then the pParse->onError parameter
+// is used. Or if pParse->onError==OE_Default then the onError value
+// for the constraint is used.
+func Xsqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintptr, aRegIdx uintptr, iDataCur int32, iIdxCur int32, regNewData int32, regOldData int32, pkChng U8, overrideError U8, ignoreDest int32, pbMayReplace uintptr, aiChng uintptr, pUpsert uintptr) {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var v uintptr
+ var pIdx uintptr
+ var pPk uintptr = uintptr(0)
+ var db uintptr
+ var i int32
+
+ var nCol int32
+ var onError int32
+ var seenReplace int32 = 0
+ var nPkField int32
+ var pUpsertClause uintptr = uintptr(0)
+ var isUpdate U8
+ var bAffinityDone U8 = U8(0)
+ var upsertIpkReturn int32 = 0
+ var upsertIpkDelay int32 = 0
+ var ipkTop int32 = 0
+ var ipkBottom int32 = 0
+
+ var regTrigCnt int32
+ var addrRecheck int32 = 0
+ var lblRecheckOk int32 = 0
+ var pTrigger uintptr
+ var nReplaceTrig int32 = 0
+
+ isUpdate = U8(libc.Bool32(regOldData != 0))
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ nCol = int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ pPk = uintptr(0)
+ nPkField = 1
+ } else {
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ nPkField = int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ }
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasNotNull) != 0 {
+ var b2ndPass int32 = 0
+ var nSeenReplace int32 = 0
+ var nGenerated int32 = 0
+ for 1 != 0 {
+ for i = 0; i < nCol; i++ {
+ var iReg int32
+ var pCol uintptr = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24
+ var isGenerated int32
+ onError = int32(*(*uint8)(unsafe.Pointer(pCol + 8)) & 0xf >> 0)
+ if onError == OE_None {
+ continue
+ }
+ if i == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ continue
+ }
+ isGenerated = int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & COLFLAG_GENERATED
+ if isGenerated != 0 && !(b2ndPass != 0) {
+ nGenerated++
+ continue
+ }
+ if aiChng != 0 && *(*int32)(unsafe.Pointer(aiChng + uintptr(i)*4)) < 0 && !(isGenerated != 0) {
+ continue
+ }
+ if int32(overrideError) != OE_Default {
+ onError = int32(overrideError)
+ } else if onError == OE_Default {
+ onError = OE_Abort
+ }
+ if onError == OE_Replace {
+ if b2ndPass != 0 ||
+ int32((*Column)(unsafe.Pointer(pCol)).FiDflt) == 0 {
+ onError = OE_Abort
+ } else {
+ }
+ } else if b2ndPass != 0 && !(isGenerated != 0) {
+ continue
+ }
+
+ iReg = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(i))) + regNewData + 1
+ switch onError {
+ case OE_Replace:
+ {
+ var addr1 int32 = Xsqlite3VdbeAddOp1(tls, v, OP_NotNull, iReg)
+
+ nSeenReplace++
+ Xsqlite3ExprCodeCopy(tls, pParse,
+ Xsqlite3ColumnExpr(tls, pTab, pCol), iReg)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ break
+
+ }
+ fallthrough
+ case OE_Abort:
+ Xsqlite3MayAbort(tls, pParse)
+ fallthrough
+
+ case OE_Rollback:
+ fallthrough
+ case OE_Fail:
+ {
+ var zMsg uintptr = Xsqlite3MPrintf(tls, db, ts+12464, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
+ (*Column)(unsafe.Pointer(pCol)).FzCnName))
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_HaltIfNull, SQLITE_CONSTRAINT|int32(5)<<8,
+ onError, iReg)
+ Xsqlite3VdbeAppendP4(tls, v, zMsg, -6)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(P5_ConstraintNotNull))
+
+ break
+
+ }
+ fallthrough
+ default:
+ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, iReg, ignoreDest)
+
+ break
+
+ }
+ }
+ }
+ if nGenerated == 0 && nSeenReplace == 0 {
+ break
+ }
+ if b2ndPass != 0 {
+ break
+ }
+ b2ndPass = 1
+ if nSeenReplace > 0 && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != U32(0) {
+ Xsqlite3ComputeGeneratedColumns(tls, pParse, regNewData+1, pTab)
+ }
+ }
+ }
+
+ if (*Table)(unsafe.Pointer(pTab)).FpCheck != 0 && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) {
+ var pCheck uintptr = (*Table)(unsafe.Pointer(pTab)).FpCheck
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = -(regNewData + 1)
+ if int32(overrideError) != OE_Default {
+ onError = int32(overrideError)
+ } else {
+ onError = OE_Abort
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pCheck)).FnExpr; i++ {
+ var allOk int32
+ var pCopy uintptr
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(i)*32)).FpExpr
+ if aiChng != 0 &&
+ !(Xsqlite3ExprReferencesUpdatedColumn(tls, pExpr, aiChng, int32(pkChng)) != 0) {
+ continue
+ }
+ if int32(bAffinityDone) == 0 {
+ Xsqlite3TableAffinity(tls, v, pTab, regNewData+1)
+ bAffinityDone = U8(1)
+ }
+ allOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ pCopy = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ Xsqlite3ExprIfTrue(tls, pParse, pCopy, allOk, SQLITE_JUMPIFNULL)
+ }
+ Xsqlite3ExprDelete(tls, db, pCopy)
+ if onError == OE_Ignore {
+ Xsqlite3VdbeGoto(tls, v, ignoreDest)
+ } else {
+ var zName uintptr = (*ExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(i)*32)).FzEName
+
+ if onError == OE_Replace {
+ onError = OE_Abort
+ }
+ Xsqlite3HaltConstraint(tls, pParse, SQLITE_CONSTRAINT|int32(1)<<8,
+ onError, zName, int8(P4_TRANSIENT),
+ uint8(P5_ConstraintCheck))
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, allOk)
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+ }
+
+ (*IndexIterator)(unsafe.Pointer(bp + 16)).FeType = 0
+ (*IndexIterator)(unsafe.Pointer(bp + 16)).Fi = 0
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 8)) = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ if pUpsert != 0 {
+ if (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget == uintptr(0) {
+ if int32((*Upsert)(unsafe.Pointer(pUpsert)).FisDoUpdate) == 0 {
+ overrideError = U8(OE_Ignore)
+ pUpsert = uintptr(0)
+ } else {
+ overrideError = U8(OE_Update)
+ }
+ } else if (*Table)(unsafe.Pointer(pTab)).FpIndex != uintptr(0) {
+ var nIdx int32
+ var jj int32
+ var nByte U64
+ var pTerm uintptr
+ var bUsed uintptr
+ nIdx = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ __1:
+ if !(pIdx != 0) {
+ goto __3
+ }
+ {
+ }
+ goto __2
+ __2:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ nIdx++
+ goto __1
+ goto __3
+ __3:
+ ;
+ (*IndexIterator)(unsafe.Pointer(bp + 16)).FeType = 1
+ *(*int32)(unsafe.Pointer(bp + 16 + 8)) = nIdx
+ nByte = (uint64(unsafe.Sizeof(IndexListTerm{}))+uint64(1))*uint64(nIdx) + uint64(nIdx)
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) = Xsqlite3DbMallocZero(tls, db, nByte)
+ if *(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) == uintptr(0) {
+ return
+ }
+ bUsed = *(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) + uintptr(nIdx)*16
+ (*Upsert)(unsafe.Pointer(pUpsert)).FpToFree = *(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8))
+ i = 0
+ pTerm = pUpsert
+ for ; pTerm != 0; pTerm = (*Upsert)(unsafe.Pointer(pTerm)).FpNextUpsert {
+ if (*Upsert)(unsafe.Pointer(pTerm)).FpUpsertTarget == uintptr(0) {
+ break
+ }
+ if (*Upsert)(unsafe.Pointer(pTerm)).FpUpsertIdx == uintptr(0) {
+ continue
+ }
+ jj = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ for pIdx != uintptr(0) && pIdx != (*Upsert)(unsafe.Pointer(pTerm)).FpUpsertIdx {
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ jj++
+ }
+ if *(*U8)(unsafe.Pointer(bUsed + uintptr(jj))) != 0 {
+ continue
+ }
+ *(*U8)(unsafe.Pointer(bUsed + uintptr(jj))) = U8(1)
+ (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) + uintptr(i)*16)).Fp = pIdx
+ (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) + uintptr(i)*16)).Fix = jj
+ i++
+ }
+ jj = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ __4:
+ if !(pIdx != 0) {
+ goto __6
+ }
+ {
+ if *(*U8)(unsafe.Pointer(bUsed + uintptr(jj))) != 0 {
+ goto __5
+ }
+ (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) + uintptr(i)*16)).Fp = pIdx
+ (*IndexListTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16 + 8 + 8)) + uintptr(i)*16)).Fix = jj
+ i++
+
+ }
+ goto __5
+ __5:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ jj++
+ goto __4
+ goto __6
+ __6:
+ }
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_RecTriggers|SQLITE_ForeignKeys) == uint64(0) {
+ pTrigger = uintptr(0)
+ regTrigCnt = 0
+ } else {
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_RecTriggers) != 0 {
+ pTrigger = Xsqlite3TriggersExist(tls, pParse, pTab, TK_DELETE, uintptr(0), uintptr(0))
+ regTrigCnt = libc.Bool32(pTrigger != uintptr(0) || Xsqlite3FkRequired(tls, pParse, pTab, uintptr(0), 0) != 0)
+ } else {
+ pTrigger = uintptr(0)
+ regTrigCnt = Xsqlite3FkRequired(tls, pParse, pTab, uintptr(0), 0)
+ }
+ if regTrigCnt != 0 {
+ regTrigCnt = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regTrigCnt)
+
+ lblRecheckOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ addrRecheck = lblRecheckOk
+ }
+ }
+
+ if pkChng != 0 && pPk == uintptr(0) {
+ var addrRowidOk int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ onError = int32((*Table)(unsafe.Pointer(pTab)).FkeyConf)
+ if int32(overrideError) != OE_Default {
+ onError = int32(overrideError)
+ } else if onError == OE_Default {
+ onError = OE_Abort
+ }
+
+ if pUpsert != 0 {
+ pUpsertClause = Xsqlite3UpsertOfIndex(tls, pUpsert, uintptr(0))
+ if pUpsertClause != uintptr(0) {
+ if int32((*Upsert)(unsafe.Pointer(pUpsertClause)).FisDoUpdate) == 0 {
+ onError = OE_Ignore
+ } else {
+ onError = OE_Update
+ }
+ }
+ if pUpsertClause != pUpsert {
+ upsertIpkDelay = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ }
+ }
+
+ if onError == OE_Replace &&
+ onError != int32(overrideError) &&
+ (*Table)(unsafe.Pointer(pTab)).FpIndex != 0 &&
+ !(upsertIpkDelay != 0) {
+ ipkTop = Xsqlite3VdbeAddOp0(tls, v, OP_Goto) + 1
+
+ }
+
+ if isUpdate != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regNewData, addrRowidOk, regOldData)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDataCur, addrRowidOk, regNewData)
+
+ switch onError {
+ default:
+ {
+ onError = OE_Abort
+
+ }
+ fallthrough
+ case OE_Rollback:
+ fallthrough
+ case OE_Abort:
+ fallthrough
+ case OE_Fail:
+ {
+ Xsqlite3RowidConstraint(tls, pParse, onError, pTab)
+ break
+
+ }
+ fallthrough
+ case OE_Replace:
+ {
+ if regTrigCnt != 0 {
+ Xsqlite3MultiWrite(tls, pParse)
+ Xsqlite3GenerateRowDelete(tls, pParse, pTab, pTrigger, iDataCur, iIdxCur,
+ regNewData, int16(1), uint8(0), uint8(OE_Replace), uint8(1), -1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, regTrigCnt, 1)
+ nReplaceTrig++
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Delete, iDataCur, OPFLAG_ISNOOP)
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+ if (*Table)(unsafe.Pointer(pTab)).FpIndex != 0 {
+ Xsqlite3MultiWrite(tls, pParse)
+ Xsqlite3GenerateRowIndexDelete(tls, pParse, pTab, iDataCur, iIdxCur, uintptr(0), -1)
+ }
+ }
+ seenReplace = 1
+ break
+
+ }
+ fallthrough
+ case OE_Update:
+ {
+ Xsqlite3UpsertDoUpdate(tls, pParse, pUpsert, pTab, uintptr(0), iDataCur)
+
+ }
+ fallthrough
+ case OE_Ignore:
+ {
+ Xsqlite3VdbeGoto(tls, v, ignoreDest)
+ break
+
+ }
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, addrRowidOk)
+ if pUpsert != 0 && pUpsertClause != pUpsert {
+ upsertIpkReturn = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ } else if ipkTop != 0 {
+ ipkBottom = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ Xsqlite3VdbeJumpHere(tls, v, ipkTop-1)
+ }
+ }
+
+ for pIdx = indexIteratorFirst(tls, bp+16, bp+40); pIdx != 0; pIdx = indexIteratorNext(tls, bp+16, bp+40) {
+ var regIdx int32
+ var regR int32
+ var iThisCur int32
+ var addrUniqueOk int32
+ var addrConflictCk int32
+
+ if *(*int32)(unsafe.Pointer(aRegIdx + uintptr(*(*int32)(unsafe.Pointer(bp + 40)))*4)) == 0 {
+ continue
+ }
+ if pUpsert != 0 {
+ pUpsertClause = Xsqlite3UpsertOfIndex(tls, pUpsert, pIdx)
+ if upsertIpkDelay != 0 && pUpsertClause == pUpsert {
+ Xsqlite3VdbeJumpHere(tls, v, upsertIpkDelay)
+ }
+ }
+ addrUniqueOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if int32(bAffinityDone) == 0 {
+ Xsqlite3TableAffinity(tls, v, pTab, regNewData+1)
+ bAffinityDone = U8(1)
+ }
+
+ iThisCur = iIdxCur + *(*int32)(unsafe.Pointer(bp + 40))
+
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, *(*int32)(unsafe.Pointer(aRegIdx + uintptr(*(*int32)(unsafe.Pointer(bp + 40)))*4)))
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = -(regNewData + 1)
+ Xsqlite3ExprIfFalseDup(tls, pParse, (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere, addrUniqueOk,
+ SQLITE_JUMPIFNULL)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+ }
+
+ regIdx = *(*int32)(unsafe.Pointer(aRegIdx + uintptr(*(*int32)(unsafe.Pointer(bp + 40)))*4)) + 1
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ var iField int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))
+ var x int32
+ if iField == -2 {
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = -(regNewData + 1)
+ Xsqlite3ExprCodeCopy(tls, pParse, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(i)*32)).FpExpr, regIdx+i)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+
+ } else if iField == -1 || iField == int32((*Table)(unsafe.Pointer(pTab)).FiPKey) {
+ x = regNewData
+ Xsqlite3VdbeAddOp2(tls, v, OP_IntCopy, x, regIdx+i)
+
+ } else {
+ x = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(iField))) + regNewData + 1
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, x, regIdx+i)
+
+ }
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regIdx, int32((*Index)(unsafe.Pointer(pIdx)).FnColumn), *(*int32)(unsafe.Pointer(aRegIdx + uintptr(*(*int32)(unsafe.Pointer(bp + 40)))*4)))
+
+ if isUpdate != 0 && pPk == pIdx && int32(pkChng) == 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, addrUniqueOk)
+ continue
+ }
+
+ onError = int32((*Index)(unsafe.Pointer(pIdx)).FonError)
+ if onError == OE_None {
+ Xsqlite3VdbeResolveLabel(tls, v, addrUniqueOk)
+ continue
+ }
+ if int32(overrideError) != OE_Default {
+ onError = int32(overrideError)
+ } else if onError == OE_Default {
+ onError = OE_Abort
+ }
+
+ if pUpsertClause != 0 {
+ if int32((*Upsert)(unsafe.Pointer(pUpsertClause)).FisDoUpdate) == 0 {
+ onError = OE_Ignore
+ } else {
+ onError = OE_Update
+ }
+ }
+
+ addrConflictCk = Xsqlite3VdbeAddOp4Int(tls, v, OP_NoConflict, iThisCur, addrUniqueOk,
+ regIdx, int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol))
+
+ if pIdx == pPk {
+ regR = regIdx
+ } else {
+ regR = Xsqlite3GetTempRange(tls, pParse, nPkField)
+ }
+ if isUpdate != 0 || onError == OE_Replace {
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxRowid, iThisCur, regR)
+
+ if isUpdate != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regR, addrUniqueOk, regOldData)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+
+ }
+ } else {
+ var x int32
+
+ if pIdx != pPk {
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol); i++ {
+ x = int32(Xsqlite3TableColumnToIndex(tls, pIdx, *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iThisCur, x, regR+i)
+
+ }
+ }
+ if isUpdate != 0 {
+ var addrJump int32 = Xsqlite3VdbeCurrentAddr(tls, v) + int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ var op int32 = OP_Ne
+ var regCmp int32 = func() int32 {
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ return regIdx
+ }
+ return regR
+ }()
+
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol); i++ {
+ var p4 uintptr = Xsqlite3LocateCollSeq(tls, pParse, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FazColl + uintptr(i)*8)))
+ x = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2)))
+
+ if i == int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)-1 {
+ addrJump = addrUniqueOk
+ op = OP_Eq
+ }
+ x = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(x)))
+ Xsqlite3VdbeAddOp4(tls, v, op,
+ regOldData+1+x, addrJump, regCmp+i, p4, -2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+
+ }
+ }
+ }
+ }
+
+ switch onError {
+ case OE_Rollback:
+ fallthrough
+ case OE_Abort:
+ fallthrough
+ case OE_Fail:
+ {
+ Xsqlite3UniqueConstraint(tls, pParse, onError, pIdx)
+ break
+
+ }
+ case OE_Update:
+ {
+ Xsqlite3UpsertDoUpdate(tls, pParse, pUpsert, pTab, pIdx, iIdxCur+*(*int32)(unsafe.Pointer(bp + 40)))
+
+ }
+ fallthrough
+ case OE_Ignore:
+ {
+ Xsqlite3VdbeGoto(tls, v, ignoreDest)
+ break
+
+ }
+ default:
+ {
+ var nConflictCk int32
+
+ nConflictCk = Xsqlite3VdbeCurrentAddr(tls, v) - addrConflictCk
+
+ if regTrigCnt != 0 {
+ Xsqlite3MultiWrite(tls, pParse)
+ nReplaceTrig++
+ }
+ if pTrigger != 0 && isUpdate != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_CursorLock, iDataCur)
+ }
+ Xsqlite3GenerateRowDelete(tls, pParse, pTab, pTrigger, iDataCur, iIdxCur,
+ regR, int16(nPkField), uint8(0), uint8(OE_Replace),
+ func() uint8 {
+ if pIdx == pPk {
+ return uint8(ONEPASS_SINGLE)
+ }
+ return uint8(ONEPASS_OFF)
+ }(), iThisCur)
+ if pTrigger != 0 && isUpdate != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_CursorUnlock, iDataCur)
+ }
+ if regTrigCnt != 0 {
+ var addrBypass int32
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, regTrigCnt, 1)
+ addrBypass = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+
+ Xsqlite3VdbeResolveLabel(tls, v, lblRecheckOk)
+ lblRecheckOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regIdx-1, lblRecheckOk)
+
+ }
+
+ for nConflictCk > 0 {
+ *(*VdbeOp)(unsafe.Pointer(bp + 48)) = *(*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, v, addrConflictCk)))
+ if int32((*VdbeOp)(unsafe.Pointer(bp+48)).Fopcode) != OP_IdxRowid {
+ var p2 int32
+ var zP4 uintptr
+ if int32(Xsqlite3OpcodeProperty[(*VdbeOp)(unsafe.Pointer(bp+48)).Fopcode])&OPFLG_JUMP != 0 {
+ p2 = lblRecheckOk
+ } else {
+ p2 = (*VdbeOp)(unsafe.Pointer(bp + 48)).Fp2
+ }
+ if int32((*VdbeOp)(unsafe.Pointer(bp+48)).Fp4type) == -3 {
+ zP4 = uintptr(int64(*(*int32)(unsafe.Pointer(bp + 48 + 16))))
+ } else {
+ zP4 = *(*uintptr)(unsafe.Pointer(bp + 48 + 16))
+ }
+ Xsqlite3VdbeAddOp4(tls, v, int32((*VdbeOp)(unsafe.Pointer(bp+48)).Fopcode), (*VdbeOp)(unsafe.Pointer(bp+48)).Fp1, p2, (*VdbeOp)(unsafe.Pointer(bp+48)).Fp3, zP4, int32((*VdbeOp)(unsafe.Pointer(bp+48)).Fp4type))
+ Xsqlite3VdbeChangeP5(tls, v, (*VdbeOp)(unsafe.Pointer(bp+48)).Fp5)
+
+ }
+ nConflictCk--
+ addrConflictCk++
+ }
+
+ Xsqlite3UniqueConstraint(tls, pParse, OE_Abort, pIdx)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrBypass)
+ }
+ seenReplace = 1
+ break
+
+ }
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, addrUniqueOk)
+ if regR != regIdx {
+ Xsqlite3ReleaseTempRange(tls, pParse, regR, nPkField)
+ }
+ if pUpsertClause != 0 &&
+ upsertIpkReturn != 0 &&
+ Xsqlite3UpsertNextIsIPK(tls, pUpsertClause) != 0 {
+ Xsqlite3VdbeGoto(tls, v, upsertIpkDelay+1)
+ Xsqlite3VdbeJumpHere(tls, v, upsertIpkReturn)
+ upsertIpkReturn = 0
+ }
+ }
+
+ if ipkTop != 0 {
+ Xsqlite3VdbeGoto(tls, v, ipkTop)
+
+ Xsqlite3VdbeJumpHere(tls, v, ipkBottom)
+ }
+
+ if nReplaceTrig != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNot, regTrigCnt, lblRecheckOk)
+
+ if !(pPk != 0) {
+ if isUpdate != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regNewData, addrRecheck, regOldData)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDataCur, addrRecheck, regNewData)
+
+ Xsqlite3RowidConstraint(tls, pParse, OE_Abort, pTab)
+ } else {
+ Xsqlite3VdbeGoto(tls, v, addrRecheck)
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, lblRecheckOk)
+ }
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ var regRec int32 = *(*int32)(unsafe.Pointer(aRegIdx + uintptr(*(*int32)(unsafe.Pointer(bp + 40)))*4))
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regNewData+1, int32((*Table)(unsafe.Pointer(pTab)).FnNVCol), regRec)
+
+ if !(bAffinityDone != 0) {
+ Xsqlite3TableAffinity(tls, v, pTab, 0)
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pbMayReplace)) = seenReplace
+
+}
+
+func codeWithoutRowidPreupdate(tls *libc.TLS, pParse uintptr, pTab uintptr, iCur int32, regData int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var r int32 = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, r)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Insert, iCur, regData, r, pTab, -5)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_ISNOOP))
+ Xsqlite3ReleaseTempReg(tls, pParse, r)
+}
+
+// This routine generates code to finish the INSERT or UPDATE operation
+// that was started by a prior call to sqlite3GenerateConstraintChecks.
+// A consecutive range of registers starting at regNewData contains the
+// rowid and the content to be inserted.
+//
+// The arguments to this routine should be the same as the first six
+// arguments to sqlite3GenerateConstraintChecks.
+func Xsqlite3CompleteInsertion(tls *libc.TLS, pParse uintptr, pTab uintptr, iDataCur int32, iIdxCur int32, regNewData int32, aRegIdx uintptr, update_flags int32, appendBias int32, useSeekResult int32) {
+ var v uintptr
+ var pIdx uintptr
+ var pik_flags U8
+ var i int32
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ i = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__1:
+ if !(pIdx != 0) {
+ goto __3
+ }
+ {
+ if *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)) == 0 {
+ goto __2
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)), Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ }
+ pik_flags = func() uint8 {
+ if useSeekResult != 0 {
+ return uint8(OPFLAG_USESEEKRESULT)
+ }
+ return uint8(0)
+ }()
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY && !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ pik_flags = U8(int32(pik_flags) | OPFLAG_NCHANGE)
+ pik_flags = U8(int32(pik_flags) | update_flags&OPFLAG_SAVEPOSITION)
+ if update_flags == 0 {
+ codeWithoutRowidPreupdate(tls, pParse, pTab, iIdxCur+i, *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)))
+ }
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iIdxCur+i, *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)),
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4))+1,
+ func() int32 {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ }
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ }())
+ Xsqlite3VdbeChangeP5(tls, v, uint16(pik_flags))
+
+ }
+ goto __2
+__2:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ return
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).Fnested != 0 {
+ pik_flags = U8(0)
+ } else {
+ pik_flags = U8(OPFLAG_NCHANGE)
+ pik_flags = U8(int32(pik_flags) | func() int32 {
+ if update_flags != 0 {
+ return update_flags
+ }
+ return OPFLAG_LASTROWID
+ }())
+ }
+ if appendBias != 0 {
+ pik_flags = U8(int32(pik_flags) | OPFLAG_APPEND)
+ }
+ if useSeekResult != 0 {
+ pik_flags = U8(int32(pik_flags) | OPFLAG_USESEEKRESULT)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iDataCur, *(*int32)(unsafe.Pointer(aRegIdx + uintptr(i)*4)), regNewData)
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) {
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(pik_flags))
+}
+
+// Allocate cursors for the pTab table and all its indices and generate
+// code to open and initialized those cursors.
+//
+// The cursor for the object that contains the complete data (normally
+// the table itself, but the PRIMARY KEY index in the case of a WITHOUT
+// ROWID table) is returned in *piDataCur. The first index cursor is
+// returned in *piIdxCur. The number of indices is returned.
+//
+// Use iBase as the first cursor (either the *piDataCur for rowid tables
+// or the first index for WITHOUT ROWID tables) if it is non-negative.
+// If iBase is negative, then allocate the next available cursor.
+//
+// For a rowid table, *piDataCur will be exactly one less than *piIdxCur.
+// For a WITHOUT ROWID table, *piDataCur will be somewhere in the range
+// of *piIdxCurs, depending on where the PRIMARY KEY index appears on the
+// pTab->pIndex list.
+//
+// If pTab is a virtual table, then this routine is a no-op and the
+// *piDataCur and *piIdxCur values are left uninitialized.
+func Xsqlite3OpenTableAndIndices(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p5 U8, iBase int32, aToOpen uintptr, piDataCur uintptr, piIdxCur uintptr) int32 {
+ var i int32
+ var iDb int32
+ var iDataCur int32
+ var pIdx uintptr
+ var v uintptr
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ *(*int32)(unsafe.Pointer(piDataCur)) = libc.AssignPtrInt32(piIdxCur, -999)
+ return 0
+ }
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ if iBase < 0 {
+ iBase = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ }
+ iDataCur = libc.PostIncInt32(&iBase, 1)
+ if piDataCur != 0 {
+ *(*int32)(unsafe.Pointer(piDataCur)) = iDataCur
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) && (aToOpen == uintptr(0) || *(*U8)(unsafe.Pointer(aToOpen)) != 0) {
+ Xsqlite3OpenTable(tls, pParse, iDataCur, iDb, pTab, op)
+ } else {
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(libc.Bool32(op == OP_OpenWrite)), (*Table)(unsafe.Pointer(pTab)).FzName)
+ }
+ if piIdxCur != 0 {
+ *(*int32)(unsafe.Pointer(piIdxCur)) = iBase
+ }
+ i = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__1:
+ if !(pIdx != 0) {
+ goto __3
+ }
+ {
+ var iIdxCur int32 = libc.PostIncInt32(&iBase, 1)
+
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY && !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ if piDataCur != 0 {
+ *(*int32)(unsafe.Pointer(piDataCur)) = iIdxCur
+ }
+ p5 = U8(0)
+ }
+ if aToOpen == uintptr(0) || *(*U8)(unsafe.Pointer(aToOpen + uintptr(i+1))) != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, op, iIdxCur, int32((*Index)(unsafe.Pointer(pIdx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(p5))
+
+ }
+
+ }
+ goto __2
+__2:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ if iBase > (*Parse)(unsafe.Pointer(pParse)).FnTab {
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = iBase
+ }
+ return i
+}
+
+func xferCompatibleIndex(tls *libc.TLS, pDest uintptr, pSrc uintptr) int32 {
+ var i int32
+
+ if int32((*Index)(unsafe.Pointer(pDest)).FnKeyCol) != int32((*Index)(unsafe.Pointer(pSrc)).FnKeyCol) || int32((*Index)(unsafe.Pointer(pDest)).FnColumn) != int32((*Index)(unsafe.Pointer(pSrc)).FnColumn) {
+ return 0
+ }
+ if int32((*Index)(unsafe.Pointer(pDest)).FonError) != int32((*Index)(unsafe.Pointer(pSrc)).FonError) {
+ return 0
+ }
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pSrc)).FnKeyCol); i++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrc)).FaiColumn + uintptr(i)*2))) != int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pDest)).FaiColumn + uintptr(i)*2))) {
+ return 0
+ }
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrc)).FaiColumn + uintptr(i)*2))) == -2 {
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrc)).FaColExpr+8+uintptr(i)*32)).FpExpr,
+ (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pDest)).FaColExpr+8+uintptr(i)*32)).FpExpr, -1) != 0 {
+ return 0
+ }
+ }
+ if int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrc)).FaSortOrder + uintptr(i)))) != int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pDest)).FaSortOrder + uintptr(i)))) {
+ return 0
+ }
+ if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrc)).FazColl + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pDest)).FazColl + uintptr(i)*8))) != 0 {
+ return 0
+ }
+ }
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*Index)(unsafe.Pointer(pSrc)).FpPartIdxWhere, (*Index)(unsafe.Pointer(pDest)).FpPartIdxWhere, -1) != 0 {
+ return 0
+ }
+
+ return 1
+}
+
+func xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uintptr, onError int32, iDbDest int32) int32 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pEList uintptr
+ var pSrc uintptr
+ var pSrcIdx uintptr
+ var pDestIdx uintptr
+ var pItem uintptr
+ var i int32
+ var iDbSrc int32
+ var iSrc int32
+ var iDest int32
+ var addr1 int32
+ var addr2 int32
+ var emptyDestTest int32 = 0
+ var emptySrcTest int32 = 0
+ var v uintptr
+ var regAutoinc int32
+ var destHasUniqueIdx int32 = 0
+ var regData int32
+ var regRowid int32
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpWith != 0 || (*Select)(unsafe.Pointer(pSelect)).FpWith != 0 {
+ return 0
+ }
+ if int32((*Table)(unsafe.Pointer(pDest)).FeTabType) == TABTYP_VTAB {
+ return 0
+ }
+ if onError == OE_Default {
+ if int32((*Table)(unsafe.Pointer(pDest)).FiPKey) >= 0 {
+ onError = int32((*Table)(unsafe.Pointer(pDest)).FkeyConf)
+ }
+ if onError == OE_Default {
+ onError = OE_Abort
+ }
+ }
+
+ if (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc != 1 {
+ return 0
+ }
+ if (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpSrc+8)).FpSelect != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FpWhere != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FpOrderBy != 0 {
+ return 0
+ }
+
+ if (*Select)(unsafe.Pointer(pSelect)).FpGroupBy != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FpLimit != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FpPrior != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FselFlags&U32(SF_Distinct) != 0 {
+ return 0
+ }
+ pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ if (*ExprList)(unsafe.Pointer(pEList)).FnExpr != 1 {
+ return 0
+ }
+
+ if int32((*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pEList+8)).FpExpr)).Fop) != TK_ASTERISK {
+ return 0
+ }
+
+ pItem = (*Select)(unsafe.Pointer(pSelect)).FpSrc + 8
+ pSrc = Xsqlite3LocateTableItem(tls, pParse, uint32(0), pItem)
+ if pSrc == uintptr(0) {
+ return 0
+ }
+ if (*Table)(unsafe.Pointer(pSrc)).Ftnum == (*Table)(unsafe.Pointer(pDest)).Ftnum && (*Table)(unsafe.Pointer(pSrc)).FpSchema == (*Table)(unsafe.Pointer(pDest)).FpSchema {
+ return 0
+ }
+ if libc.Bool32((*Table)(unsafe.Pointer(pDest)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) != libc.Bool32((*Table)(unsafe.Pointer(pSrc)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ return 0
+ }
+ if !(int32((*Table)(unsafe.Pointer(pSrc)).FeTabType) == TABTYP_NORM) {
+ return 0
+ }
+ if int32((*Table)(unsafe.Pointer(pDest)).FnCol) != int32((*Table)(unsafe.Pointer(pSrc)).FnCol) {
+ return 0
+ }
+ if int32((*Table)(unsafe.Pointer(pDest)).FiPKey) != int32((*Table)(unsafe.Pointer(pSrc)).FiPKey) {
+ return 0
+ }
+ if (*Table)(unsafe.Pointer(pDest)).FtabFlags&U32(TF_Strict) != U32(0) && (*Table)(unsafe.Pointer(pSrc)).FtabFlags&U32(TF_Strict) == U32(0) {
+ return 0
+ }
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pDest)).FnCol); i++ {
+ var pDestCol uintptr = (*Table)(unsafe.Pointer(pDest)).FaCol + uintptr(i)*24
+ var pSrcCol uintptr = (*Table)(unsafe.Pointer(pSrc)).FaCol + uintptr(i)*24
+
+ if int32((*Column)(unsafe.Pointer(pDestCol)).FcolFlags)&COLFLAG_GENERATED != int32((*Column)(unsafe.Pointer(pSrcCol)).FcolFlags)&COLFLAG_GENERATED {
+ return 0
+ }
+
+ if int32((*Column)(unsafe.Pointer(pDestCol)).FcolFlags)&COLFLAG_GENERATED != 0 {
+ if Xsqlite3ExprCompare(tls, uintptr(0),
+ Xsqlite3ColumnExpr(tls, pSrc, pSrcCol),
+ Xsqlite3ColumnExpr(tls, pDest, pDestCol), -1) != 0 {
+ return 0
+ }
+ }
+ if int32((*Column)(unsafe.Pointer(pDestCol)).Faffinity) != int32((*Column)(unsafe.Pointer(pSrcCol)).Faffinity) {
+ return 0
+ }
+ if Xsqlite3_stricmp(tls, Xsqlite3ColumnColl(tls, pDestCol),
+ Xsqlite3ColumnColl(tls, pSrcCol)) != 0 {
+ return 0
+ }
+ if uint32(int32(*(*uint8)(unsafe.Pointer(pDestCol + 8))&0xf>>0)) != 0 && !(int32(*(*uint8)(unsafe.Pointer(pSrcCol + 8))&0xf>>0) != 0) {
+ return 0
+ }
+
+ if int32((*Column)(unsafe.Pointer(pDestCol)).FcolFlags)&COLFLAG_GENERATED == 0 && i > 0 {
+ var pDestExpr uintptr = Xsqlite3ColumnExpr(tls, pDest, pDestCol)
+ var pSrcExpr uintptr = Xsqlite3ColumnExpr(tls, pSrc, pSrcCol)
+
+ if libc.Bool32(pDestExpr == uintptr(0)) != libc.Bool32(pSrcExpr == uintptr(0)) ||
+ pDestExpr != uintptr(0) && libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(pDestExpr + 8)),
+ *(*uintptr)(unsafe.Pointer(pSrcExpr + 8))) != 0 {
+ return 0
+ }
+ }
+ }
+ for pDestIdx = (*Table)(unsafe.Pointer(pDest)).FpIndex; pDestIdx != 0; pDestIdx = (*Index)(unsafe.Pointer(pDestIdx)).FpNext {
+ if int32((*Index)(unsafe.Pointer(pDestIdx)).FonError) != OE_None {
+ destHasUniqueIdx = 1
+ }
+ for pSrcIdx = (*Table)(unsafe.Pointer(pSrc)).FpIndex; pSrcIdx != 0; pSrcIdx = (*Index)(unsafe.Pointer(pSrcIdx)).FpNext {
+ if xferCompatibleIndex(tls, pDestIdx, pSrcIdx) != 0 {
+ break
+ }
+ }
+ if pSrcIdx == uintptr(0) {
+ return 0
+ }
+ if (*Index)(unsafe.Pointer(pSrcIdx)).Ftnum == (*Index)(unsafe.Pointer(pDestIdx)).Ftnum && (*Table)(unsafe.Pointer(pSrc)).FpSchema == (*Table)(unsafe.Pointer(pDest)).FpSchema &&
+ Xsqlite3FaultSim(tls, 411) == SQLITE_OK {
+ return 0
+ }
+ }
+ if (*Table)(unsafe.Pointer(pDest)).FpCheck != 0 && Xsqlite3ExprListCompare(tls, (*Table)(unsafe.Pointer(pSrc)).FpCheck, (*Table)(unsafe.Pointer(pDest)).FpCheck, -1) != 0 {
+ return 0
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != uint64(0) && *(*uintptr)(unsafe.Pointer(pDest + 64 + 8)) != uintptr(0) {
+ return 0
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(0x00001)<<32) != uint64(0) {
+ return 0
+ }
+
+ iDbSrc = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pSrc)).FpSchema)
+ v = Xsqlite3GetVdbe(tls, pParse)
+ Xsqlite3CodeVerifySchema(tls, pParse, iDbSrc)
+ iSrc = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ iDest = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ regAutoinc = autoIncBegin(tls, pParse, iDbDest, pDest)
+ regData = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regData)
+ regRowid = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3OpenTable(tls, pParse, iDest, iDbDest, pDest, OP_OpenWrite)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) && (int32((*Table)(unsafe.Pointer(pDest)).FiPKey) < 0 && (*Table)(unsafe.Pointer(pDest)).FpIndex != uintptr(0) ||
+ destHasUniqueIdx != 0 ||
+ onError != OE_Abort && onError != OE_Rollback) {
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iDest, 0)
+ emptyDestTest = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ }
+ if (*Table)(unsafe.Pointer(pSrc)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ var insFlags U8
+ Xsqlite3OpenTable(tls, pParse, iSrc, iDbSrc, pSrc, OP_OpenRead)
+ emptySrcTest = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iSrc, 0)
+ if int32((*Table)(unsafe.Pointer(pDest)).FiPKey) >= 0 {
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iSrc, regRowid)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) {
+ addr2 = Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDest, 0, regRowid)
+
+ Xsqlite3RowidConstraint(tls, pParse, onError, pDest)
+ Xsqlite3VdbeJumpHere(tls, v, addr2)
+ }
+ autoIncStep(tls, pParse, regAutoinc, regRowid)
+ } else if (*Table)(unsafe.Pointer(pDest)).FpIndex == uintptr(0) && !((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_VacuumInto) != 0) {
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iDest, regRowid)
+ } else {
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iSrc, regRowid)
+
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_SeekEnd, iDest)
+ insFlags = U8(OPFLAG_APPEND | OPFLAG_USESEEKRESULT | OPFLAG_PREFORMAT)
+ } else {
+ insFlags = U8(OPFLAG_NCHANGE | OPFLAG_LASTROWID | OPFLAG_APPEND | OPFLAG_PREFORMAT)
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) {
+ Xsqlite3VdbeAddOp3(tls, v, OP_RowData, iSrc, regData, 1)
+ insFlags = libc.Uint8FromInt32(int32(insFlags) & libc.CplInt32(OPFLAG_PREFORMAT))
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_RowCell, iDest, iSrc, regRowid)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iDest, regData, regRowid)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) {
+ Xsqlite3VdbeChangeP4(tls, v, -1, pDest, -5)
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(insFlags))
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iSrc, addr1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, iSrc, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, iDest, 0)
+ } else {
+ Xsqlite3TableLock(tls, pParse, iDbDest, (*Table)(unsafe.Pointer(pDest)).Ftnum, uint8(1), (*Table)(unsafe.Pointer(pDest)).FzName)
+ Xsqlite3TableLock(tls, pParse, iDbSrc, (*Table)(unsafe.Pointer(pSrc)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pSrc)).FzName)
+ }
+ for pDestIdx = (*Table)(unsafe.Pointer(pDest)).FpIndex; pDestIdx != 0; pDestIdx = (*Index)(unsafe.Pointer(pDestIdx)).FpNext {
+ var idxInsFlags U8 = U8(0)
+ for pSrcIdx = (*Table)(unsafe.Pointer(pSrc)).FpIndex; pSrcIdx != 0; pSrcIdx = (*Index)(unsafe.Pointer(pSrcIdx)).FpNext {
+ if xferCompatibleIndex(tls, pDestIdx, pSrcIdx) != 0 {
+ break
+ }
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenRead, iSrc, int32((*Index)(unsafe.Pointer(pSrcIdx)).Ftnum), iDbSrc)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pSrcIdx)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenWrite, iDest, int32((*Index)(unsafe.Pointer(pDestIdx)).Ftnum), iDbDest)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pDestIdx)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_BULKCSR))
+
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iSrc, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) != 0 {
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pSrcIdx)).FnColumn); i++ {
+ var zColl uintptr = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pSrcIdx)).FazColl + uintptr(i)*8))
+ if Xsqlite3_stricmp(tls, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), zColl) != 0 {
+ break
+ }
+ }
+ if i == int32((*Index)(unsafe.Pointer(pSrcIdx)).FnColumn) {
+ idxInsFlags = U8(OPFLAG_USESEEKRESULT | OPFLAG_PREFORMAT)
+ Xsqlite3VdbeAddOp1(tls, v, OP_SeekEnd, iDest)
+ Xsqlite3VdbeAddOp2(tls, v, OP_RowCell, iDest, iSrc)
+ }
+ } else if !((*Table)(unsafe.Pointer(pSrc)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) && int32(*(*uint16)(unsafe.Pointer(pDestIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ idxInsFlags = U8(int32(idxInsFlags) | OPFLAG_NCHANGE)
+ }
+ if int32(idxInsFlags) != OPFLAG_USESEEKRESULT|OPFLAG_PREFORMAT {
+ Xsqlite3VdbeAddOp3(tls, v, OP_RowData, iSrc, regData, 1)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_Vacuum) == U32(0) &&
+ !((*Table)(unsafe.Pointer(pDest)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) &&
+ int32(*(*uint16)(unsafe.Pointer(pDestIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ codeWithoutRowidPreupdate(tls, pParse, pDest, iDest, regData)
+ }
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxInsert, iDest, regData)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(int32(idxInsFlags)|OPFLAG_APPEND))
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iSrc, addr1+1)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, iSrc, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, iDest, 0)
+ }
+ if emptySrcTest != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, emptySrcTest)
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid)
+ Xsqlite3ReleaseTempReg(tls, pParse, regData)
+ if emptyDestTest != 0 {
+ Xsqlite3AutoincrementEnd(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Halt, SQLITE_OK, 0)
+ Xsqlite3VdbeJumpHere(tls, v, emptyDestTest)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, iDest, 0)
+ return 0
+ } else {
+ return 1
+ }
+ return int32(0)
+}
+
+// Execute SQL code. Return one of the SQLITE_ success/failure
+// codes. Also write an error message into memory obtained from
+// malloc() and make *pzErrMsg point to that message.
+//
+// If the SQL is a query, then for each row in the query result
+// the xCallback() function is called. pArg becomes the first
+// argument to xCallback(). If xCallback=NULL then no callback
+// is invoked, even for queries.
+func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Sqlite3_callback, pArg uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+
+ var azCols uintptr
+ var callbackIsInit int32
+ var i int32
+ var nCol int32
+ var azVals uintptr
+ rc = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ azCols = uintptr(0)
+
+ if !!(Xsqlite3SafetyCheckOk(tls, db) != 0) {
+ goto __1
+ }
+ return Xsqlite3MisuseError(tls, 131895)
+__1:
+ ;
+ if !(zSql == uintptr(0)) {
+ goto __2
+ }
+ zSql = ts + 1547
+__2:
+ ;
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3Error(tls, db, SQLITE_OK)
+__3:
+ if !(rc == SQLITE_OK && *(*int8)(unsafe.Pointer(zSql)) != 0) {
+ goto __4
+ }
+ nCol = 0
+ azVals = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp, bp+8)
+
+ if !(rc != SQLITE_OK) {
+ goto __5
+ }
+ goto __3
+__5:
+ ;
+ if !!(*(*uintptr)(unsafe.Pointer(bp)) != 0) {
+ goto __6
+ }
+
+ zSql = *(*uintptr)(unsafe.Pointer(bp + 8))
+ goto __3
+__6:
+ ;
+ callbackIsInit = 0
+
+__7:
+ if !(1 != 0) {
+ goto __8
+ }
+ rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ if !(xCallback != 0 && (SQLITE_ROW == rc || SQLITE_DONE == rc && !(callbackIsInit != 0) &&
+ (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0)) {
+ goto __9
+ }
+ if !!(callbackIsInit != 0) {
+ goto __10
+ }
+ nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ azCols = Xsqlite3DbMallocRaw(tls, db, uint64(2*nCol+1)*uint64(unsafe.Sizeof(uintptr(0))))
+ if !(azCols == uintptr(0)) {
+ goto __11
+ }
+ goto exec_out
+__11:
+ ;
+ i = 0
+__12:
+ if !(i < nCol) {
+ goto __14
+ }
+ *(*uintptr)(unsafe.Pointer(azCols + uintptr(i)*8)) = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i)
+
+ goto __13
+__13:
+ i++
+ goto __12
+ goto __14
+__14:
+ ;
+ callbackIsInit = 1
+__10:
+ ;
+ if !(rc == SQLITE_ROW) {
+ goto __15
+ }
+ azVals = azCols + uintptr(nCol)*8
+ i = 0
+__16:
+ if !(i < nCol) {
+ goto __18
+ }
+ *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), i)
+ if !(!(int32(*(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8))) != 0) && Xsqlite3_column_type(tls, *(*uintptr)(unsafe.Pointer(bp)), i) != SQLITE_NULL) {
+ goto __19
+ }
+ Xsqlite3OomFault(tls, db)
+ goto exec_out
+__19:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0)
+__15:
+ ;
+ if !((*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xCallback})).f(tls, pArg, nCol, azVals, azCols) != 0) {
+ goto __20
+ }
+
+ rc = SQLITE_ABORT
+ Xsqlite3VdbeFinalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ Xsqlite3Error(tls, db, SQLITE_ABORT)
+ goto exec_out
+__20:
+ ;
+__9:
+ ;
+ if !(rc != SQLITE_ROW) {
+ goto __21
+ }
+ rc = Xsqlite3VdbeFinalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ zSql = *(*uintptr)(unsafe.Pointer(bp + 8))
+__22:
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zSql)))])&0x01 != 0) {
+ goto __23
+ }
+ zSql++
+ goto __22
+__23:
+ ;
+ goto __8
+__21:
+ ;
+ goto __7
+__8:
+ ;
+ Xsqlite3DbFree(tls, db, azCols)
+ azCols = uintptr(0)
+ goto __3
+__4:
+ ;
+exec_out:
+ if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) {
+ goto __24
+ }
+ Xsqlite3VdbeFinalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+__24:
+ ;
+ Xsqlite3DbFree(tls, db, azCols)
+
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ if !(rc != SQLITE_OK && pzErrMsg != 0) {
+ goto __25
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3DbStrDup(tls, uintptr(0), Xsqlite3_errmsg(tls, db))
+ if !(*(*uintptr)(unsafe.Pointer(pzErrMsg)) == uintptr(0)) {
+ goto __27
+ }
+ rc = SQLITE_NOMEM
+ Xsqlite3Error(tls, db, SQLITE_NOMEM)
+__27:
+ ;
+ goto __26
+__25:
+ if !(pzErrMsg != 0) {
+ goto __28
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = uintptr(0)
+__28:
+ ;
+__26:
+ ;
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// This is the function signature used for all extension entry points. It
+// is also defined in the file "loadext.c".
+type Sqlite3_loadext_entry = uintptr
+
+var sqlite3Apis = Sqlite3_api_routines{
+ Faggregate_context: 0,
+ Faggregate_count: 0,
+ Fbind_blob: 0,
+ Fbind_double: 0,
+ Fbind_int: 0,
+ Fbind_int64: 0,
+ Fbind_null: 0,
+ Fbind_parameter_count: 0,
+ Fbind_parameter_index: 0,
+ Fbind_parameter_name: 0,
+ Fbind_text: 0,
+ Fbind_text16: 0,
+ Fbind_value: 0,
+ Fbusy_handler: 0,
+ Fbusy_timeout: 0,
+ Fchanges: 0,
+ Fclose: 0,
+ Fcollation_needed: 0,
+ Fcollation_needed16: 0,
+ Fcolumn_blob: 0,
+ Fcolumn_bytes: 0,
+ Fcolumn_bytes16: 0,
+ Fcolumn_count: 0,
+ Fcolumn_database_name: 0,
+ Fcolumn_database_name16: 0,
+ Fcolumn_decltype: 0,
+ Fcolumn_decltype16: 0,
+ Fcolumn_double: 0,
+ Fcolumn_int: 0,
+ Fcolumn_int64: 0,
+ Fcolumn_name: 0,
+ Fcolumn_name16: 0,
+ Fcolumn_origin_name: 0,
+ Fcolumn_origin_name16: 0,
+ Fcolumn_table_name: 0,
+ Fcolumn_table_name16: 0,
+ Fcolumn_text: 0,
+ Fcolumn_text16: 0,
+ Fcolumn_type: 0,
+ Fcolumn_value: 0,
+ Fcommit_hook: 0,
+ Fcomplete: 0,
+ Fcomplete16: 0,
+ Fcreate_collation: 0,
+ Fcreate_collation16: 0,
+ Fcreate_function: 0,
+ Fcreate_function16: 0,
+ Fcreate_module: 0,
+ Fdata_count: 0,
+ Fdb_handle: 0,
+ Fdeclare_vtab: 0,
+ Fenable_shared_cache: 0,
+ Ferrcode: 0,
+ Ferrmsg: 0,
+ Ferrmsg16: 0,
+ Fexec: 0,
+ Fexpired: 0,
+ Ffinalize: 0,
+ Ffree: 0,
+ Ffree_table: 0,
+ Fget_autocommit: 0,
+ Fget_auxdata: 0,
+ Fget_table: 0,
+ Finterruptx: 0,
+ Flast_insert_rowid: 0,
+ Flibversion: 0,
+ Flibversion_number: 0,
+ Fmalloc: 0,
+ Fmprintf: 0,
+ Fopen: 0,
+ Fopen16: 0,
+ Fprepare: 0,
+ Fprepare16: 0,
+ Fprofile: 0,
+ Fprogress_handler: 0,
+ Frealloc: 0,
+ Freset: 0,
+ Fresult_blob: 0,
+ Fresult_double: 0,
+ Fresult_error: 0,
+ Fresult_error16: 0,
+ Fresult_int: 0,
+ Fresult_int64: 0,
+ Fresult_null: 0,
+ Fresult_text: 0,
+ Fresult_text16: 0,
+ Fresult_text16be: 0,
+ Fresult_text16le: 0,
+ Fresult_value: 0,
+ Frollback_hook: 0,
+ Fset_authorizer: 0,
+ Fset_auxdata: 0,
+ Fxsnprintf: 0,
+ Fstep: 0,
+ Ftable_column_metadata: 0,
+ Fthread_cleanup: 0,
+ Ftotal_changes: 0,
+ Ftrace: 0,
+ Ftransfer_bindings: 0,
+ Fupdate_hook: 0,
+ Fuser_data: 0,
+ Fvalue_blob: 0,
+ Fvalue_bytes: 0,
+ Fvalue_bytes16: 0,
+ Fvalue_double: 0,
+ Fvalue_int: 0,
+ Fvalue_int64: 0,
+ Fvalue_numeric_type: 0,
+ Fvalue_text: 0,
+ Fvalue_text16: 0,
+ Fvalue_text16be: 0,
+ Fvalue_text16le: 0,
+ Fvalue_type: 0,
+ Fvmprintf: 0,
+ Foverload_function: 0,
+ Fprepare_v2: 0,
+ Fprepare16_v2: 0,
+ Fclear_bindings: 0,
+ Fcreate_module_v2: 0,
+ Fbind_zeroblob: 0,
+ Fblob_bytes: 0,
+ Fblob_close: 0,
+ Fblob_open: 0,
+ Fblob_read: 0,
+ Fblob_write: 0,
+ Fcreate_collation_v2: 0,
+ Ffile_control: 0,
+ Fmemory_highwater: 0,
+ Fmemory_used: 0,
+ Fmutex_alloc: 0,
+ Fmutex_enter: 0,
+ Fmutex_free: 0,
+ Fmutex_leave: 0,
+ Fmutex_try: 0,
+ Fopen_v2: 0,
+ Frelease_memory: 0,
+ Fresult_error_nomem: 0,
+ Fresult_error_toobig: 0,
+ Fsleep: 0,
+ Fsoft_heap_limit: 0,
+ Fvfs_find: 0,
+ Fvfs_register: 0,
+ Fvfs_unregister: 0,
+ Fxthreadsafe: 0,
+ Fresult_zeroblob: 0,
+ Fresult_error_code: 0,
+ Ftest_control: 0,
+ Frandomness: 0,
+ Fcontext_db_handle: 0,
+ Fextended_result_codes: 0,
+ Flimit: 0,
+ Fnext_stmt: 0,
+ Fsql: 0,
+ Fstatus: 0,
+ Fbackup_finish: 0,
+ Fbackup_init: 0,
+ Fbackup_pagecount: 0,
+ Fbackup_remaining: 0,
+ Fbackup_step: 0,
+ Fcompileoption_get: 0,
+ Fcompileoption_used: 0,
+ Fcreate_function_v2: 0,
+ Fdb_config: 0,
+ Fdb_mutex: 0,
+ Fdb_status: 0,
+ Fextended_errcode: 0,
+ Flog: 0,
+ Fsoft_heap_limit64: 0,
+ Fsourceid: 0,
+ Fstmt_status: 0,
+ Fstrnicmp: 0,
+ Funlock_notify: 0,
+ Fwal_autocheckpoint: 0,
+ Fwal_checkpoint: 0,
+ Fwal_hook: 0,
+ Fblob_reopen: 0,
+ Fvtab_config: 0,
+ Fvtab_on_conflict: 0,
+ Fclose_v2: 0,
+ Fdb_filename: 0,
+ Fdb_readonly: 0,
+ Fdb_release_memory: 0,
+ Ferrstr: 0,
+ Fstmt_busy: 0,
+ Fstmt_readonly: 0,
+ Fstricmp: 0,
+ Furi_boolean: 0,
+ Furi_int64: 0,
+ Furi_parameter: 0,
+ Fxvsnprintf: 0,
+ Fwal_checkpoint_v2: 0,
+ Fauto_extension: 0,
+ Fbind_blob64: 0,
+ Fbind_text64: 0,
+ Fcancel_auto_extension: 0,
+ Fload_extension: 0,
+ Fmalloc64: 0,
+ Fmsize: 0,
+ Frealloc64: 0,
+ Freset_auto_extension: 0,
+ Fresult_blob64: 0,
+ Fresult_text64: 0,
+ Fstrglob: 0,
+ Fvalue_dup: 0,
+ Fvalue_free: 0,
+ Fresult_zeroblob64: 0,
+ Fbind_zeroblob64: 0,
+ Fvalue_subtype: 0,
+ Fresult_subtype: 0,
+ Fstatus64: 0,
+ Fstrlike: 0,
+ Fdb_cacheflush: 0,
+ Fsystem_errno: 0,
+ Ftrace_v2: 0,
+ Fexpanded_sql: 0,
+ Fset_last_insert_rowid: 0,
+ Fprepare_v3: 0,
+ Fprepare16_v3: 0,
+ Fbind_pointer: 0,
+ Fresult_pointer: 0,
+ Fvalue_pointer: 0,
+ Fvtab_nochange: 0,
+ Fvalue_nochange: 0,
+ Fvtab_collation: 0,
+ Fkeyword_count: 0,
+ Fkeyword_name: 0,
+ Fkeyword_check: 0,
+ Fstr_new: 0,
+ Fstr_finish: 0,
+ Fstr_appendf: 0,
+ Fstr_vappendf: 0,
+ Fstr_append: 0,
+ Fstr_appendall: 0,
+ Fstr_appendchar: 0,
+ Fstr_reset: 0,
+ Fstr_errcode: 0,
+ Fstr_length: 0,
+ Fstr_value: 0,
+ Fcreate_window_function: 0,
+ Fstmt_isexplain: 0,
+ Fvalue_frombind: 0,
+ Fdrop_modules: 0,
+ Fhard_heap_limit64: 0,
+ Furi_key: 0,
+ Ffilename_database: 0,
+ Ffilename_journal: 0,
+ Ffilename_wal: 0,
+ Fcreate_filename: 0,
+ Ffree_filename: 0,
+ Fdatabase_file_object: 0,
+ Ftxn_state: 0,
+ Fchanges64: 0,
+ Ftotal_changes64: 0,
+ Fautovacuum_pages: 0,
+ Ferror_offset: 0,
+ Fvtab_rhs_value: 0,
+ Fvtab_distinct: 0,
+ Fvtab_in: 0,
+ Fvtab_in_first: 0,
+ Fvtab_in_next: 0,
+ Fdeserialize: 0,
+ Fserialize: 0,
+ Fdb_name: 0,
+ Fvalue_encoding: 0,
+ Fis_interrupted: 0,
+}
+
+func sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pVfs uintptr
+ var handle uintptr
+ var xInit Sqlite3_loadext_entry
+
+ var zEntry uintptr
+ var zAltEntry uintptr
+ var aHandle uintptr
+ var nMsg U64
+ var ii int32
+ var rc int32
+ var zAltFile uintptr
+ var iFile int32
+ var iEntry int32
+ var c int32
+ var ncFile int32
+ pVfs = (*Sqlite3)(unsafe.Pointer(db)).FpVfs
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ zAltEntry = uintptr(0)
+ nMsg = libc.Xstrlen(tls, zFile)
+
+ if !(pzErrMsg != 0) {
+ goto __1
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = uintptr(0)
+__1:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_LoadExtension) == uint64(0)) {
+ goto __2
+ }
+ if !(pzErrMsg != 0) {
+ goto __3
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+12503, 0)
+__3:
+ ;
+ return SQLITE_ERROR
+__2:
+ ;
+ if zProc != 0 {
+ zEntry = zProc
+ } else {
+ zEntry = ts + 16291
+ }
+
+ if !(nMsg > uint64(FILENAME_MAX)) {
+ goto __4
+ }
+ goto extension_not_found
+__4:
+ ;
+ handle = Xsqlite3OsDlOpen(tls, pVfs, zFile)
+ ii = 0
+__5:
+ if !(ii < int32(uint64(unsafe.Sizeof(azEndings))/uint64(unsafe.Sizeof(uintptr(0)))) && handle == uintptr(0)) {
+ goto __7
+ }
+ zAltFile = Xsqlite3_mprintf(tls, ts+12464, libc.VaList(bp, zFile, azEndings[ii]))
+ if !(zAltFile == uintptr(0)) {
+ goto __8
+ }
+ return SQLITE_NOMEM
+__8:
+ ;
+ handle = Xsqlite3OsDlOpen(tls, pVfs, zAltFile)
+ Xsqlite3_free(tls, zAltFile)
+ goto __6
+__6:
+ ii++
+ goto __5
+ goto __7
+__7:
+ ;
+ if !(handle == uintptr(0)) {
+ goto __9
+ }
+ goto extension_not_found
+__9:
+ ;
+ xInit = Xsqlite3OsDlSym(tls, pVfs, handle, zEntry)
+
+ if !(xInit == uintptr(0) && zProc == uintptr(0)) {
+ goto __10
+ }
+ ncFile = Xsqlite3Strlen30(tls, zFile)
+ zAltEntry = Xsqlite3_malloc64(tls, uint64(ncFile+30))
+ if !(zAltEntry == uintptr(0)) {
+ goto __11
+ }
+ Xsqlite3OsDlClose(tls, pVfs, handle)
+ return SQLITE_NOMEM
+__11:
+ ;
+ libc.X__builtin___memcpy_chk(tls, zAltEntry, ts+16314, uint64(8), libc.X__builtin_object_size(tls, zAltEntry, 0))
+ iFile = ncFile - 1
+__12:
+ if !(iFile >= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == '/')) {
+ goto __14
+ }
+ goto __13
+__13:
+ iFile--
+ goto __12
+ goto __14
+__14:
+ ;
+ iFile++
+ if !(Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), ts+16323, 3) == 0) {
+ goto __15
+ }
+ iFile = iFile + 3
+__15:
+ ;
+ iEntry = 8
+__16:
+ if !(libc.AssignInt32(&c, int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile))))) != 0 && c != '.') {
+ goto __18
+ }
+ if !(int32(Xsqlite3CtypeMap[uint8(c)])&0x02 != 0) {
+ goto __19
+ }
+ *(*int8)(unsafe.Pointer(zAltEntry + uintptr(libc.PostIncInt32(&iEntry, 1)))) = int8(Xsqlite3UpperToLower[uint32(c)])
+__19:
+ ;
+ goto __17
+__17:
+ iFile++
+ goto __16
+ goto __18
+__18:
+ ;
+ libc.X__builtin___memcpy_chk(tls, zAltEntry+uintptr(iEntry), ts+16327, uint64(6), libc.X__builtin_object_size(tls, zAltEntry+uintptr(iEntry), 0))
+ zEntry = zAltEntry
+ xInit = Xsqlite3OsDlSym(tls, pVfs, handle, zEntry)
+__10:
+ ;
+ if !(xInit == uintptr(0)) {
+ goto __20
+ }
+ if !(pzErrMsg != 0) {
+ goto __21
+ }
+ nMsg = nMsg + (libc.Xstrlen(tls, zEntry) + uint64(300))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = libc.AssignPtrUintptr(bp+56, Xsqlite3_malloc64(tls, nMsg))
+ if !(*(*uintptr)(unsafe.Pointer(bp + 56)) != 0) {
+ goto __22
+ }
+
+ Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp + 56)),
+ ts+16333, libc.VaList(bp+16, zEntry, zFile))
+ Xsqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp + 56)))
+__22:
+ ;
+__21:
+ ;
+ Xsqlite3OsDlClose(tls, pVfs, handle)
+ Xsqlite3_free(tls, zAltEntry)
+ return SQLITE_ERROR
+__20:
+ ;
+ Xsqlite3_free(tls, zAltEntry)
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xInit})).f(tls, db, bp+56, uintptr(unsafe.Pointer(&sqlite3Apis)))
+ if !(rc != 0) {
+ goto __23
+ }
+ if !(rc == SQLITE_OK|int32(1)<<8) {
+ goto __24
+ }
+ return SQLITE_OK
+__24:
+ ;
+ if !(pzErrMsg != 0) {
+ goto __25
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+16376, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(bp + 56))))
+__25:
+ ;
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 56)))
+ Xsqlite3OsDlClose(tls, pVfs, handle)
+ return SQLITE_ERROR
+__23:
+ ;
+ aHandle = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(handle))*uint64((*Sqlite3)(unsafe.Pointer(db)).FnExtension+1))
+ if !(aHandle == uintptr(0)) {
+ goto __26
+ }
+ return SQLITE_NOMEM
+__26:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnExtension > 0) {
+ goto __27
+ }
+ libc.X__builtin___memcpy_chk(tls, aHandle, (*Sqlite3)(unsafe.Pointer(db)).FaExtension, uint64(unsafe.Sizeof(handle))*uint64((*Sqlite3)(unsafe.Pointer(db)).FnExtension), libc.X__builtin_object_size(tls, aHandle, 0))
+__27:
+ ;
+ Xsqlite3DbFree(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaExtension)
+ (*Sqlite3)(unsafe.Pointer(db)).FaExtension = aHandle
+
+ *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(libc.PostIncInt32(&(*Sqlite3)(unsafe.Pointer(db)).FnExtension, 1))*8)) = handle
+ return SQLITE_OK
+
+extension_not_found:
+ if !(pzErrMsg != 0) {
+ goto __28
+ }
+ nMsg = nMsg + uint64(300)
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = libc.AssignPtrUintptr(bp+56, Xsqlite3_malloc64(tls, nMsg))
+ if !(*(*uintptr)(unsafe.Pointer(bp + 56)) != 0) {
+ goto __29
+ }
+
+ Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp + 56)),
+ ts+16408, libc.VaList(bp+40, FILENAME_MAX, zFile))
+ Xsqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp + 56)))
+__29:
+ ;
+__28:
+ ;
+ return SQLITE_ERROR
+}
+
+var azEndings = [1]uintptr{
+ ts + 16445,
+}
+
+func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) int32 {
+ var rc int32
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ rc = sqlite3LoadExtension(tls, db, zFile, zProc, pzErrMsg)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Call this routine when the database connection is closing in order
+// to clean up loaded extensions
+func Xsqlite3CloseExtensions(tls *libc.TLS, db uintptr) {
+ var i int32
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnExtension; i++ {
+ Xsqlite3OsDlClose(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(i)*8)))
+ }
+ Xsqlite3DbFree(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaExtension)
+}
+
+// Enable or disable extension loading. Extension loading is disabled by
+// default so as not to open security holes in older applications.
+func Xsqlite3_enable_load_extension(tls *libc.TLS, db uintptr, onoff int32) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if onoff != 0 {
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(SQLITE_LoadExtension | SQLITE_LoadExtFunc)
+ } else {
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_LoadExtension | SQLITE_LoadExtFunc))
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+type sqlite3AutoExtList = struct {
+ FnExt U32
+ F__ccgo_pad1 [4]byte
+ FaExt uintptr
+}
+
+// The following object holds the list of automatically loaded
+// extensions.
+//
+// This list is shared across threads. The SQLITE_MUTEX_STATIC_MAIN
+// mutex must be held while accessing this list.
+type Sqlite3AutoExtList = sqlite3AutoExtList
+
+var sqlite3Autoext = sqlite3AutoExtList{}
+
+// Register a statically linked extension that is automatically
+// loaded by every new database connection.
+func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ rc = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ } else {
+ var i U32
+ var mutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+
+ Xsqlite3_mutex_enter(tls, mutex)
+ for i = U32(0); i < sqlite3Autoext.FnExt; i++ {
+ if *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit {
+ break
+ }
+ }
+ if i == sqlite3Autoext.FnExt {
+ var nByte U64 = uint64(sqlite3Autoext.FnExt+U32(1)) * uint64(unsafe.Sizeof(uintptr(0)))
+ var aNew uintptr
+ aNew = Xsqlite3_realloc64(tls, sqlite3Autoext.FaExt, nByte)
+ if aNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ sqlite3Autoext.FaExt = aNew
+ *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(sqlite3Autoext.FnExt)*8)) = xInit
+ sqlite3Autoext.FnExt++
+ }
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+
+ return rc
+ }
+ return int32(0)
+}
+
+// Cancel a prior call to sqlite3_auto_extension. Remove xInit from the
+// set of routines that is invoked for each new database connection, if it
+// is currently on the list. If xInit is not on the list, then this
+// routine is a no-op.
+//
+// Return 1 if xInit was found on the list and removed. Return 0 if xInit
+// was not on the list.
+func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) int32 {
+ var mutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ var i int32
+ var n int32 = 0
+
+ Xsqlite3_mutex_enter(tls, mutex)
+ for i = int32(sqlite3Autoext.FnExt) - 1; i >= 0; i-- {
+ if *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit {
+ sqlite3Autoext.FnExt--
+ *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(sqlite3Autoext.FnExt)*8))
+ n++
+ break
+ }
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+ return n
+}
+
+// Reset the automatic extension loading mechanism.
+func Xsqlite3_reset_auto_extension(tls *libc.TLS) {
+ if Xsqlite3_initialize(tls) == SQLITE_OK {
+ var mutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+
+ Xsqlite3_mutex_enter(tls, mutex)
+ Xsqlite3_free(tls, sqlite3Autoext.FaExt)
+ sqlite3Autoext.FaExt = uintptr(0)
+ sqlite3Autoext.FnExt = U32(0)
+ Xsqlite3_mutex_leave(tls, mutex)
+ }
+}
+
+// Load all automatic extensions.
+//
+// If anything goes wrong, set an error in the database connection.
+func Xsqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var i U32
+ var go1 int32 = 1
+ var rc int32
+ var xInit Sqlite3_loadext_entry
+
+ if sqlite3Autoext.FnExt == U32(0) {
+ return
+ }
+ for i = U32(0); go1 != 0; i++ {
+ var mutex uintptr = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ var pThunk uintptr = uintptr(unsafe.Pointer(&sqlite3Apis))
+ Xsqlite3_mutex_enter(tls, mutex)
+ if i >= sqlite3Autoext.FnExt {
+ xInit = uintptr(0)
+ go1 = 0
+ } else {
+ xInit = *(*uintptr)(unsafe.Pointer(sqlite3Autoext.FaExt + uintptr(i)*8))
+ }
+ Xsqlite3_mutex_leave(tls, mutex)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ if xInit != 0 && libc.AssignInt32(&rc, (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xInit})).f(tls, db, bp+8, pThunk)) != 0 {
+ Xsqlite3ErrorWithMsg(tls, db, rc,
+ ts+16451, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8))))
+ go1 = 0
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+}
+
+var pragCName = [57]uintptr{
+ ts + 5460,
+ ts + 16490,
+ ts + 9279,
+ ts + 16494,
+ ts + 16499,
+ ts + 16502,
+ ts + 16512,
+ ts + 16522,
+ ts + 16528,
+ ts + 16532,
+ ts + 16537,
+ ts + 16542,
+ ts + 16550,
+ ts + 16561,
+ ts + 16564,
+ ts + 16571,
+ ts + 16532,
+ ts + 16537,
+ ts + 16578,
+ ts + 16583,
+ ts + 16586,
+ ts + 16593,
+ ts + 16528,
+ ts + 16532,
+ ts + 16599,
+ ts + 16604,
+ ts + 16609,
+ ts + 16532,
+ ts + 16613,
+ ts + 16537,
+ ts + 16621,
+ ts + 16625,
+ ts + 16630,
+ ts + 11895,
+ ts + 11891,
+ ts + 16636,
+ ts + 16641,
+ ts + 16646,
+ ts + 16490,
+ ts + 16532,
+ ts + 16651,
+ ts + 16658,
+ ts + 16665,
+ ts + 9279,
+ ts + 16673,
+ ts + 5463,
+ ts + 16679,
+ ts + 16490,
+ ts + 16532,
+ ts + 16684,
+ ts + 16689,
+ ts + 15883,
+ ts + 16694,
+ ts + 16707,
+ ts + 16716,
+ ts + 16723,
+ ts + 16734,
+}
+
+// Definitions of all built-in pragmas
+type PragmaName1 = struct {
+ FzName uintptr
+ FePragTyp U8
+ FmPragFlg U8
+ FiPragCName U8
+ FnPragCName U8
+ F__ccgo_pad1 [4]byte
+ FiArg U64
+}
+
+// Definitions of all built-in pragmas
+type PragmaName = PragmaName1
+
+var aPragmaName = [67]PragmaName{
+ {FzName: ts + 16742,
+ FePragTyp: U8(PragTyp_ANALYSIS_LIMIT),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 16757,
+ FePragTyp: U8(PragTyp_HEADER_VALUE),
+ FmPragFlg: U8(PragFlg_NoColumns1 | PragFlg_Result0),
+ FiArg: uint64(BTREE_APPLICATION_ID)},
+ {FzName: ts + 16772,
+ FePragTyp: U8(PragTyp_AUTO_VACUUM),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1)},
+ {FzName: ts + 16784,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_AutoIndex)},
+ {FzName: ts + 16800,
+ FePragTyp: U8(PragTyp_BUSY_TIMEOUT),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(56), FnPragCName: U8(1)},
+ {FzName: ts + 16723,
+ FePragTyp: U8(PragTyp_CACHE_SIZE),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1)},
+ {FzName: ts + 16813,
+ FePragTyp: U8(PragTyp_CACHE_SPILL),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1)},
+ {FzName: ts + 16825,
+ FePragTyp: U8(PragTyp_CASE_SENSITIVE_LIKE),
+ FmPragFlg: U8(PragFlg_NoColumns)},
+ {FzName: ts + 16845,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_CellSizeCk)},
+ {FzName: ts + 16861,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_CkptFullFSync)},
+ {FzName: ts + 16882,
+ FePragTyp: U8(PragTyp_COLLATION_LIST),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(38), FnPragCName: U8(2)},
+ {FzName: ts + 16897,
+ FePragTyp: U8(PragTyp_COMPILE_OPTIONS),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 16913,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(0x00001) << 32},
+ {FzName: ts + 16927,
+ FePragTyp: U8(PragTyp_HEADER_VALUE),
+ FmPragFlg: U8(PragFlg_ReadOnly | PragFlg_Result0),
+ FiArg: uint64(BTREE_DATA_VERSION)},
+ {FzName: ts + 16940,
+ FePragTyp: U8(PragTyp_DATABASE_LIST),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(47), FnPragCName: U8(3)},
+ {FzName: ts + 16954,
+ FePragTyp: U8(PragTyp_DEFAULT_CACHE_SIZE),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1),
+ FiPragCName: U8(55), FnPragCName: U8(1)},
+ {FzName: ts + 16973,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_DeferFKs)},
+ {FzName: ts + 16992,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_NullCallback)},
+ {FzName: ts + 17015,
+ FePragTyp: U8(PragTyp_ENCODING),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1)},
+ {FzName: ts + 17024,
+ FePragTyp: U8(PragTyp_FOREIGN_KEY_CHECK),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(43), FnPragCName: U8(4)},
+ {FzName: ts + 17042,
+ FePragTyp: U8(PragTyp_FOREIGN_KEY_LIST),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt), FnPragCName: U8(8)},
+ {FzName: ts + 17059,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_ForeignKeys)},
+ {FzName: ts + 17072,
+ FePragTyp: U8(PragTyp_HEADER_VALUE),
+ FmPragFlg: U8(PragFlg_ReadOnly | PragFlg_Result0)},
+ {FzName: ts + 17087,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_FullColNames)},
+ {FzName: ts + 17105,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_FullFSync)},
+ {FzName: ts + 17115,
+ FePragTyp: U8(PragTyp_FUNCTION_LIST),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(27), FnPragCName: U8(6)},
+ {FzName: ts + 17129,
+ FePragTyp: U8(PragTyp_HARD_HEAP_LIMIT),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 17145,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_IgnoreChecks)},
+ {FzName: ts + 17170,
+ FePragTyp: U8(PragTyp_INCREMENTAL_VACUUM),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_NoColumns)},
+ {FzName: ts + 17189,
+ FePragTyp: U8(PragTyp_INDEX_INFO),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(21), FnPragCName: U8(3)},
+ {FzName: ts + 17200,
+ FePragTyp: U8(PragTyp_INDEX_LIST),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(38), FnPragCName: U8(5)},
+ {FzName: ts + 17211,
+ FePragTyp: U8(PragTyp_INDEX_INFO),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(21), FnPragCName: U8(6),
+ FiArg: uint64(1)},
+ {FzName: ts + 17223,
+ FePragTyp: U8(PragTyp_INTEGRITY_CHECK),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_Result1 | PragFlg_SchemaOpt)},
+ {FzName: ts + 17239,
+ FePragTyp: U8(PragTyp_JOURNAL_MODE),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq)},
+ {FzName: ts + 17252,
+ FePragTyp: U8(PragTyp_JOURNAL_SIZE_LIMIT),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_SchemaReq)},
+ {FzName: ts + 17271,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_LegacyAlter)},
+ {FzName: ts + 17290,
+ FePragTyp: U8(PragTyp_LOCK_PROXY_FILE),
+ FmPragFlg: U8(PragFlg_NoColumns1)},
+ {FzName: ts + 17306,
+ FePragTyp: U8(PragTyp_LOCKING_MODE),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_SchemaReq)},
+ {FzName: ts + 17319,
+ FePragTyp: U8(PragTyp_PAGE_COUNT),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq)},
+ {FzName: ts + 17334,
+ FePragTyp: U8(PragTyp_MMAP_SIZE)},
+ {FzName: ts + 17344,
+ FePragTyp: U8(PragTyp_MODULE_LIST),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(9), FnPragCName: U8(1)},
+ {FzName: ts + 17356,
+ FePragTyp: U8(PragTyp_OPTIMIZE),
+ FmPragFlg: U8(PragFlg_Result1 | PragFlg_NeedSchema)},
+ {FzName: ts + 17365,
+ FePragTyp: U8(PragTyp_PAGE_COUNT),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq)},
+ {FzName: ts + 17376,
+ FePragTyp: U8(PragTyp_PAGE_SIZE),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1)},
+ {FzName: ts + 17386,
+ FePragTyp: U8(PragTyp_PRAGMA_LIST),
+ FmPragFlg: U8(PragFlg_Result0),
+ FiPragCName: U8(9), FnPragCName: U8(1)},
+ {FzName: ts + 17398,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_QueryOnly)},
+ {FzName: ts + 17409,
+ FePragTyp: U8(PragTyp_INTEGRITY_CHECK),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_Result1 | PragFlg_SchemaOpt)},
+ {FzName: ts + 17421,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_ReadUncommit)},
+ {FzName: ts + 17438,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_RecTriggers)},
+ {FzName: ts + 17457,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_ReverseOrder)},
+ {FzName: ts + 17483,
+ FePragTyp: U8(PragTyp_HEADER_VALUE),
+ FmPragFlg: U8(PragFlg_NoColumns1 | PragFlg_Result0),
+ FiArg: uint64(BTREE_SCHEMA_VERSION)},
+ {FzName: ts + 17498,
+ FePragTyp: U8(PragTyp_SECURE_DELETE),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 17512,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_ShortColNames)},
+ {FzName: ts + 17531,
+ FePragTyp: U8(PragTyp_SHRINK_MEMORY),
+ FmPragFlg: U8(PragFlg_NoColumns)},
+ {FzName: ts + 17545,
+ FePragTyp: U8(PragTyp_SOFT_HEAP_LIMIT),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 17561,
+ FePragTyp: U8(PragTyp_SYNCHRONOUS),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result0 | PragFlg_SchemaReq | PragFlg_NoColumns1)},
+ {FzName: ts + 17573,
+ FePragTyp: U8(PragTyp_TABLE_INFO),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(8), FnPragCName: U8(6)},
+ {FzName: ts + 17584,
+ FePragTyp: U8(PragTyp_TABLE_LIST),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1),
+ FiPragCName: U8(15), FnPragCName: U8(6)},
+ {FzName: ts + 17595,
+ FePragTyp: U8(PragTyp_TABLE_INFO),
+ FmPragFlg: U8(PragFlg_NeedSchema | PragFlg_Result1 | PragFlg_SchemaOpt),
+ FiPragCName: U8(8), FnPragCName: U8(7),
+ FiArg: uint64(1)},
+ {FzName: ts + 17607,
+ FePragTyp: U8(PragTyp_TEMP_STORE),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1)},
+ {FzName: ts + 17618,
+ FePragTyp: U8(PragTyp_TEMP_STORE_DIRECTORY),
+ FmPragFlg: U8(PragFlg_NoColumns1)},
+ {FzName: ts + 17639,
+ FePragTyp: U8(PragTyp_THREADS),
+ FmPragFlg: U8(PragFlg_Result0)},
+ {FzName: ts + 17647,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_TrustedSchema)},
+ {FzName: ts + 17662,
+ FePragTyp: U8(PragTyp_HEADER_VALUE),
+ FmPragFlg: U8(PragFlg_NoColumns1 | PragFlg_Result0),
+ FiArg: uint64(BTREE_USER_VERSION)},
+ {FzName: ts + 17675,
+ FePragTyp: U8(PragTyp_WAL_AUTOCHECKPOINT)},
+ {FzName: ts + 17694,
+ FePragTyp: U8(PragTyp_WAL_CHECKPOINT),
+ FmPragFlg: U8(PragFlg_NeedSchema),
+ FiPragCName: U8(50), FnPragCName: U8(3)},
+ {FzName: ts + 17709,
+ FePragTyp: U8(PragTyp_FLAG),
+ FmPragFlg: U8(PragFlg_Result0 | PragFlg_NoColumns1),
+ FiArg: uint64(SQLITE_WriteSchema | SQLITE_NoSchemaError)},
+}
+
+func getSafetyLevel(tls *libc.TLS, z uintptr, omitFull int32, dflt U8) U8 {
+ var i int32
+ var n int32
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&0x04 != 0 {
+ return U8(Xsqlite3Atoi(tls, z))
+ }
+ n = Xsqlite3Strlen30(tls, z)
+ for i = 0; i < int32(uint64(unsafe.Sizeof(iLength))/uint64(unsafe.Sizeof(U8(0)))); i++ {
+ if int32(iLength[i]) == n && Xsqlite3_strnicmp(tls, uintptr(unsafe.Pointer(&zText))+uintptr(iOffset[i]), z, n) == 0 &&
+ (!(omitFull != 0) || int32(iValue[i]) <= 1) {
+ return iValue[i]
+ }
+ }
+ return dflt
+}
+
+var zText = *(*[25]int8)(unsafe.Pointer(ts + 17725))
+var iOffset = [8]U8{U8(0), U8(1), U8(2), U8(4), U8(9), U8(12), U8(15), U8(20)}
+var iLength = [8]U8{U8(2), U8(2), U8(3), U8(5), U8(3), U8(4), U8(5), U8(4)}
+var iValue = [8]U8{U8(1), U8(0), U8(0), U8(0), U8(1), U8(1), U8(3), U8(2)}
+
+// Interpret the given string as a boolean value.
+func Xsqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt U8) U8 {
+ return U8(libc.Bool32(int32(getSafetyLevel(tls, z, 1, dflt)) != 0))
+}
+
+func getLockingMode(tls *libc.TLS, z uintptr) int32 {
+ if z != 0 {
+ if 0 == Xsqlite3StrICmp(tls, z, ts+17750) {
+ return PAGER_LOCKINGMODE_EXCLUSIVE
+ }
+ if 0 == Xsqlite3StrICmp(tls, z, ts+17760) {
+ return PAGER_LOCKINGMODE_NORMAL
+ }
+ }
+ return -1
+}
+
+func getAutoVacuum(tls *libc.TLS, z uintptr) int32 {
+ var i int32
+ if 0 == Xsqlite3StrICmp(tls, z, ts+8429) {
+ return BTREE_AUTOVACUUM_NONE
+ }
+ if 0 == Xsqlite3StrICmp(tls, z, ts+17767) {
+ return BTREE_AUTOVACUUM_FULL
+ }
+ if 0 == Xsqlite3StrICmp(tls, z, ts+17772) {
+ return BTREE_AUTOVACUUM_INCR
+ }
+ i = Xsqlite3Atoi(tls, z)
+ return int32(func() uint8 {
+ if i >= 0 && i <= 2 {
+ return uint8(i)
+ }
+ return uint8(0)
+ }())
+}
+
+func getTempStore(tls *libc.TLS, z uintptr) int32 {
+ if int32(*(*int8)(unsafe.Pointer(z))) >= '0' && int32(*(*int8)(unsafe.Pointer(z))) <= '2' {
+ return int32(*(*int8)(unsafe.Pointer(z))) - '0'
+ } else if Xsqlite3StrICmp(tls, z, ts+16684) == 0 {
+ return 1
+ } else if Xsqlite3StrICmp(tls, z, ts+17784) == 0 {
+ return 2
+ } else {
+ return 0
+ }
+ return int32(0)
+}
+
+func invalidateTempStorage(tls *libc.TLS, pParse uintptr) int32 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpBt != uintptr(0) {
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) ||
+ Xsqlite3BtreeTxnState(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpBt) != SQLITE_TXN_NONE {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+17791, 0)
+ return SQLITE_ERROR
+ }
+ Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpBt)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FpBt = uintptr(0)
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ }
+ return SQLITE_OK
+}
+
+func changeTempStorage(tls *libc.TLS, pParse uintptr, zStorageType uintptr) int32 {
+ var ts int32 = getTempStore(tls, zStorageType)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) == ts {
+ return SQLITE_OK
+ }
+ if invalidateTempStorage(tls, pParse) != SQLITE_OK {
+ return SQLITE_ERROR
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Ftemp_store = U8(ts)
+ return SQLITE_OK
+}
+
+func setPragmaResultColumnNames(tls *libc.TLS, v uintptr, pPragma uintptr) {
+ var n U8 = (*PragmaName)(unsafe.Pointer(pPragma)).FnPragCName
+ Xsqlite3VdbeSetNumCols(tls, v, func() int32 {
+ if int32(n) == 0 {
+ return 1
+ }
+ return int32(n)
+ }())
+ if int32(n) == 0 {
+ Xsqlite3VdbeSetColName(tls, v, 0, COLNAME_NAME, (*PragmaName)(unsafe.Pointer(pPragma)).FzName, uintptr(0))
+ } else {
+ var i int32
+ var j int32
+ i = 0
+ j = int32((*PragmaName)(unsafe.Pointer(pPragma)).FiPragCName)
+ __1:
+ if !(i < int32(n)) {
+ goto __3
+ }
+ {
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, pragCName[j], uintptr(0))
+
+ }
+ goto __2
+ __2:
+ i++
+ j++
+ goto __1
+ goto __3
+ __3:
+ }
+}
+
+func returnSingleInt(tls *libc.TLS, v uintptr, value I64) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*I64)(unsafe.Pointer(bp)) = value
+
+ Xsqlite3VdbeAddOp4Dup8(tls, v, OP_Int64, 0, 1, 0, bp, -13)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, 1)
+}
+
+func returnSingleText(tls *libc.TLS, v uintptr, zValue uintptr) {
+ if zValue != 0 {
+ Xsqlite3VdbeLoadString(tls, v, 1, zValue)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, 1)
+ }
+}
+
+func setAllPagerFlags(tls *libc.TLS, db uintptr) {
+ if (*Sqlite3)(unsafe.Pointer(db)).FautoCommit != 0 {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb
+ var n int32 = (*Sqlite3)(unsafe.Pointer(db)).FnDb
+
+ for libc.PostDecInt32(&n, 1) > 0 {
+ if (*Db)(unsafe.Pointer(pDb)).FpBt != 0 {
+ Xsqlite3BtreeSetPagerFlags(tls, (*Db)(unsafe.Pointer(pDb)).FpBt,
+ uint32(U64((*Db)(unsafe.Pointer(pDb)).Fsafety_level)|(*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(PAGER_FLAGS_MASK)))
+ }
+ pDb += 32
+ }
+ }
+}
+
+func actionName(tls *libc.TLS, action U8) uintptr {
+ var zName uintptr
+ switch int32(action) {
+ case OE_SetNull:
+ zName = ts + 17853
+ break
+ case OE_SetDflt:
+ zName = ts + 17862
+ break
+ case OE_Cascade:
+ zName = ts + 17874
+ break
+ case OE_Restrict:
+ zName = ts + 17882
+ break
+ default:
+ zName = ts + 17891
+ break
+ }
+ return zName
+}
+
+// Parameter eMode must be one of the PAGER_JOURNALMODE_XXX constants
+// defined in pager.h. This function returns the associated lowercase
+// journal-mode name.
+func Xsqlite3JournalModename(tls *libc.TLS, eMode int32) uintptr {
+ if eMode == int32(uint64(unsafe.Sizeof(azModeName))/uint64(unsafe.Sizeof(uintptr(0)))) {
+ return uintptr(0)
+ }
+ return azModeName[eMode]
+}
+
+var azModeName = [6]uintptr{
+ ts + 17901, ts + 17908, ts + 17916, ts + 17920, ts + 17784, ts + 17929,
+}
+
+func pragmaLocate(tls *libc.TLS, zName uintptr) uintptr {
+ var upr int32
+ var lwr int32
+ var mid int32 = 0
+ var rc int32
+ lwr = 0
+ upr = int32(uint64(unsafe.Sizeof(aPragmaName))/uint64(unsafe.Sizeof(PragmaName{}))) - 1
+ for lwr <= upr {
+ mid = (lwr + upr) / 2
+ rc = Xsqlite3_stricmp(tls, zName, aPragmaName[mid].FzName)
+ if rc == 0 {
+ break
+ }
+ if rc < 0 {
+ upr = mid - 1
+ } else {
+ lwr = mid + 1
+ }
+ }
+ if lwr > upr {
+ return uintptr(0)
+ }
+ return uintptr(unsafe.Pointer(&aPragmaName)) + uintptr(mid)*24
+}
+
+func pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, showInternFuncs int32) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var mask U32 = U32(SQLITE_DETERMINISTIC | SQLITE_DIRECTONLY | SQLITE_SUBTYPE | SQLITE_INNOCUOUS | SQLITE_FUNC_INTERNAL)
+ if showInternFuncs != 0 {
+ mask = 0xffffffff
+ }
+ for ; p != 0; p = (*FuncDef)(unsafe.Pointer(p)).FpNext {
+ var zType uintptr
+
+ if (*FuncDef)(unsafe.Pointer(p)).FxSFunc == uintptr(0) {
+ continue
+ }
+ if (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_INTERNAL) != U32(0) &&
+ showInternFuncs == 0 {
+ continue
+ }
+ if (*FuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) {
+ zType = ts + 17933
+ } else if (*FuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) {
+ zType = ts + 17935
+ } else {
+ zType = ts + 7931
+ }
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+17937,
+ libc.VaList(bp, (*FuncDef)(unsafe.Pointer(p)).FzName, isBuiltin,
+ zType, azEnc[(*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_ENCMASK)],
+ int32((*FuncDef)(unsafe.Pointer(p)).FnArg),
+ (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^U32(SQLITE_INNOCUOUS)))
+ }
+}
+
+var azEnc = [4]uintptr{uintptr(0), ts + 17944, ts + 17949, ts + 17957}
+
+func integrityCheckResultRow(tls *libc.TLS, v uintptr) int32 {
+ var addr int32
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 3, 1)
+ addr = Xsqlite3VdbeAddOp3(tls, v, OP_IfPos, 1, Xsqlite3VdbeCurrentAddr(tls, v)+2, 1)
+
+ Xsqlite3VdbeAddOp0(tls, v, OP_Halt)
+ return addr
+}
+
+// Process a pragma statement.
+//
+// Pragmas are of this form:
+//
+// PRAGMA [schema.]id [= value]
+//
+// The identifier might also be a string. The value is a string, and
+// identifier, or a number. If minusFlag is true, then the value is
+// a number that was preceded by a minus sign.
+//
+// If the left side is "database.id" then pId1 is the database name
+// and pId2 is the id. If the left side is just "id" then pId1 is the
+// id and pId2 is any empty string.
+func Xsqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) {
+ bp := tls.Alloc(680)
+ defer tls.Free(680)
+
+ var zLeft uintptr
+ var zRight uintptr
+ var zDb uintptr
+
+ var iDb int32
+ var rc int32
+ var db uintptr
+ var pDb uintptr
+ var v uintptr
+ var pPragma uintptr
+ var size int32
+ var aOp uintptr
+ var size1 int32
+ var pBt uintptr
+ var ii int32
+ var pBt1 uintptr
+ var b int32
+ var iReg int32
+
+ var ii1 int32
+ var pPager uintptr
+ var zRet uintptr
+ var eMode int32
+ var zMode uintptr
+ var n int32
+ var eMode1 int32
+ var ii2 int32
+ var pPager1 uintptr
+
+ var aOp1 uintptr
+ var iAddr int32
+ var eAuto int32
+ var pBt2 uintptr
+
+ var addr int32
+ var size2 int32
+
+ var ii3 int32
+
+ var pPager2 uintptr
+
+ var pFile uintptr
+ var pPager3 uintptr
+ var pFile1 uintptr
+ var res1 int32
+ var iLevel int32
+ var mask U64
+ var isHidden int32
+ var pColExpr uintptr
+ var i int32
+ var k int32
+ var nHidden int32
+ var pCol uintptr
+ var pPk uintptr
+ var pTab uintptr
+
+ var zSql uintptr
+ var pTab1 uintptr
+ var pTab2 uintptr
+ var zType uintptr
+ var k1 uintptr
+ var pHash uintptr
+ var initNCol int32
+ var ii4 int32
+ var cnum I16
+ var iIdxDb int32
+ var i1 int32
+ var mx int32
+ var pIdx uintptr
+ var pTab3 uintptr
+
+ var iTabDb int32
+ var pIdx1 uintptr
+ var pTab4 uintptr
+ var i2 int32
+ var i3 int32
+ var pColl uintptr
+ var i4 int32
+ var p uintptr
+ var i5 int32
+ var j uintptr
+ var p1 uintptr
+ var showInternFunc int32
+ var pMod uintptr
+ var j1 uintptr
+ var i6 int32
+ var j2 int32
+ var iTabDb1 int32
+ var i7 int32
+ var pFK uintptr
+ var pTab5 uintptr
+ var iCol int32
+ var jmp int32
+ var pFK1 uintptr
+ var pTab6 uintptr
+ var pParent uintptr
+
+ var i8 int32
+ var j3 int32
+ var k2 uintptr
+ var x1 int32
+ var regResult int32
+ var regRow int32
+ var addrTop int32
+ var addrOk int32
+
+ var pTab7 uintptr
+ var pIdx3 uintptr
+ var nIdx int32
+ var pTab8 uintptr
+ var pIdx4 uintptr
+
+ var a1 int32
+ var zErr uintptr
+
+ var jmp2 int32
+ var zErr1 uintptr
+ var pCol1 uintptr
+ var labelError int32
+ var labelOk int32
+ var p11 int32
+ var p3 int32
+ var p4 int32
+ var doTypeCheck int32
+ var addrCkFault int32
+ var addrCkOk int32
+ var zErr2 uintptr
+ var k3 int32
+ var pCheck uintptr
+ var jmp6 int32
+ var iCol1 int32
+ var uniqOk int32
+ var jmp61 int32
+ var jmp21 int32
+
+ var jmp4 int32
+ var jmp5 int32
+ var label6 int32
+ var kk int32
+ var ckUniq int32
+ var pTab9 uintptr
+ var pIdx5 uintptr
+ var pPk1 uintptr
+ var pPrior uintptr
+ var loopTop int32
+
+ var r1 int32
+ var bStrict int32
+ var r2 int32
+ var mxCol int32
+ var x2 uintptr
+ var pTbls uintptr
+ var aRoot uintptr
+ var cnt int32
+ var mxIdx int32
+ var aOp2 uintptr
+ var i9 int32
+ var j4 int32
+ var addr1 int32
+
+ var pObjTab uintptr
+
+ var isQuick int32
+ var enc U8
+ var pEnc uintptr
+ var aOp3 uintptr
+ var aOp4 uintptr
+ var iCookie int32
+ var i10 int32
+ var zOpt uintptr
+ var iBt int32
+ var eMode2 int32
+ var r11 int32
+ var iDbLast int32
+ var iTabCur int32
+ var k4 uintptr
+ var pSchema uintptr
+ var pTab10 uintptr
+ var pIdx6 uintptr
+ var szThreshold LogEst
+ var zSubSql uintptr
+ var opMask U32
+
+ var iPrior Sqlite3_int64
+
+ zLeft = uintptr(0)
+ zRight = uintptr(0)
+ zDb = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ v = Xsqlite3GetVdbe(tls, pParse)
+
+ if !(v == uintptr(0)) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ Xsqlite3VdbeRunOnlyOnce(tls, v)
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 2
+
+ iDb = Xsqlite3TwoPartName(tls, pParse, pId1, pId2, bp+480)
+ if !(iDb < 0) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+
+ if !(iDb == 1 && Xsqlite3OpenTempDatabase(tls, pParse) != 0) {
+ goto __3
+ }
+ return
+__3:
+ ;
+ zLeft = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 480)))
+ if !!(zLeft != 0) {
+ goto __4
+ }
+ return
+__4:
+ ;
+ if !(minusFlag != 0) {
+ goto __5
+ }
+ zRight = Xsqlite3MPrintf(tls, db, ts+17965, libc.VaList(bp, pValue))
+ goto __6
+__5:
+ zRight = Xsqlite3NameFromToken(tls, db, pValue)
+__6:
+ ;
+ if (*Token)(unsafe.Pointer(pId2)).Fn > uint32(0) {
+ zDb = (*Db)(unsafe.Pointer(pDb)).FzDbSName
+ } else {
+ zDb = uintptr(0)
+ }
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_PRAGMA, zLeft, zRight, zDb) != 0) {
+ goto __7
+ }
+ goto pragma_out
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp + 488)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 488 + 1*8)) = zLeft
+ *(*uintptr)(unsafe.Pointer(bp + 488 + 2*8)) = zRight
+ *(*uintptr)(unsafe.Pointer(bp + 488 + 3*8)) = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
+ rc = Xsqlite3_file_control(tls, db, zDb, SQLITE_FCNTL_PRAGMA, bp+488)
+ if !(rc == SQLITE_OK) {
+ goto __8
+ }
+ Xsqlite3VdbeSetNumCols(tls, v, 1)
+ Xsqlite3VdbeSetColName(tls, v, 0, COLNAME_NAME, *(*uintptr)(unsafe.Pointer(bp + 488)), libc.UintptrFromInt32(-1))
+ returnSingleText(tls, v, *(*uintptr)(unsafe.Pointer(bp + 488)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 488)))
+ goto pragma_out
+__8:
+ ;
+ if !(rc != SQLITE_NOTFOUND) {
+ goto __9
+ }
+ if !(*(*uintptr)(unsafe.Pointer(bp + 488)) != 0) {
+ goto __10
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+3658, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 488))))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 488)))
+__10:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ (*Parse)(unsafe.Pointer(pParse)).Frc = rc
+ goto pragma_out
+__9:
+ ;
+ pPragma = pragmaLocate(tls, zLeft)
+ if !(pPragma == uintptr(0)) {
+ goto __11
+ }
+
+ goto pragma_out
+__11:
+ ;
+ if !(int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_NeedSchema != 0) {
+ goto __12
+ }
+ if !(Xsqlite3ReadSchema(tls, pParse) != 0) {
+ goto __13
+ }
+ goto pragma_out
+__13:
+ ;
+__12:
+ ;
+ if !(int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_NoColumns == 0 &&
+ (int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_NoColumns1 == 0 || zRight == uintptr(0))) {
+ goto __14
+ }
+ setPragmaResultColumnNames(tls, v, pPragma)
+__14:
+ ;
+ switch int32((*PragmaName)(unsafe.Pointer(pPragma)).FePragTyp) {
+ case PragTyp_DEFAULT_CACHE_SIZE:
+ goto __16
+
+ case PragTyp_PAGE_SIZE:
+ goto __17
+
+ case PragTyp_SECURE_DELETE:
+ goto __18
+
+ case PragTyp_PAGE_COUNT:
+ goto __19
+
+ case PragTyp_LOCKING_MODE:
+ goto __20
+
+ case PragTyp_JOURNAL_MODE:
+ goto __21
+
+ case PragTyp_JOURNAL_SIZE_LIMIT:
+ goto __22
+
+ case PragTyp_AUTO_VACUUM:
+ goto __23
+
+ case PragTyp_INCREMENTAL_VACUUM:
+ goto __24
+
+ case PragTyp_CACHE_SIZE:
+ goto __25
+
+ case PragTyp_CACHE_SPILL:
+ goto __26
+
+ case PragTyp_MMAP_SIZE:
+ goto __27
+
+ case PragTyp_TEMP_STORE:
+ goto __28
+
+ case PragTyp_TEMP_STORE_DIRECTORY:
+ goto __29
+
+ case PragTyp_LOCK_PROXY_FILE:
+ goto __30
+
+ case PragTyp_SYNCHRONOUS:
+ goto __31
+
+ case PragTyp_FLAG:
+ goto __32
+
+ case PragTyp_TABLE_INFO:
+ goto __33
+
+ case PragTyp_TABLE_LIST:
+ goto __34
+
+ case PragTyp_INDEX_INFO:
+ goto __35
+
+ case PragTyp_INDEX_LIST:
+ goto __36
+
+ case PragTyp_DATABASE_LIST:
+ goto __37
+
+ case PragTyp_COLLATION_LIST:
+ goto __38
+
+ case PragTyp_FUNCTION_LIST:
+ goto __39
+
+ case PragTyp_MODULE_LIST:
+ goto __40
+
+ case PragTyp_PRAGMA_LIST:
+ goto __41
+
+ case PragTyp_FOREIGN_KEY_LIST:
+ goto __42
+
+ case PragTyp_FOREIGN_KEY_CHECK:
+ goto __43
+
+ case PragTyp_CASE_SENSITIVE_LIKE:
+ goto __44
+
+ case PragTyp_INTEGRITY_CHECK:
+ goto __45
+
+ case PragTyp_ENCODING:
+ goto __46
+
+ case PragTyp_HEADER_VALUE:
+ goto __47
+
+ case PragTyp_COMPILE_OPTIONS:
+ goto __48
+
+ case PragTyp_WAL_CHECKPOINT:
+ goto __49
+
+ case PragTyp_WAL_AUTOCHECKPOINT:
+ goto __50
+
+ case PragTyp_SHRINK_MEMORY:
+ goto __51
+
+ case PragTyp_OPTIMIZE:
+ goto __52
+
+ default:
+ goto __53
+
+ case PragTyp_SOFT_HEAP_LIMIT:
+ goto __54
+
+ case PragTyp_HARD_HEAP_LIMIT:
+ goto __55
+
+ case PragTyp_THREADS:
+ goto __56
+
+ case PragTyp_ANALYSIS_LIMIT:
+ goto __57
+ }
+ goto __15
+
+__16:
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+ if !!(zRight != 0) {
+ goto __58
+ }
+ *(*int32)(unsafe.Pointer(pParse + 56)) += 2
+
+ aOp = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(getCacheSize))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&getCacheSize)), iLn3)
+ if !(0 != 0) {
+ goto __60
+ }
+ goto __15
+__60:
+ ;
+ (*VdbeOp)(unsafe.Pointer(aOp)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp + 1*24)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp + 6*24)).Fp1 = -2000
+ goto __59
+__58:
+ size = Xsqlite3AbsInt32(tls, Xsqlite3Atoi(tls, zRight))
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ Xsqlite3VdbeAddOp3(tls, v, OP_SetCookie, iDb, BTREE_DEFAULT_CACHE_SIZE, size)
+
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size
+ Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
+__59:
+ ;
+ goto __15
+
+__17:
+ pBt = (*Db)(unsafe.Pointer(pDb)).FpBt
+
+ if !!(zRight != 0) {
+ goto __61
+ }
+ if pBt != 0 {
+ size1 = Xsqlite3BtreeGetPageSize(tls, pBt)
+ } else {
+ size1 = 0
+ }
+ returnSingleInt(tls, v, int64(size1))
+ goto __62
+__61:
+ (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize = Xsqlite3Atoi(tls, zRight)
+ if !(SQLITE_NOMEM == Xsqlite3BtreeSetPageSize(tls, pBt, (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize, 0, 0)) {
+ goto __63
+ }
+ Xsqlite3OomFault(tls, db)
+__63:
+ ;
+__62:
+ ;
+ goto __15
+
+__18:
+ pBt1 = (*Db)(unsafe.Pointer(pDb)).FpBt
+ b = -1
+
+ if !(zRight != 0) {
+ goto __64
+ }
+ if !(Xsqlite3_stricmp(tls, zRight, ts+17969) == 0) {
+ goto __65
+ }
+ b = 2
+ goto __66
+__65:
+ b = int32(Xsqlite3GetBoolean(tls, zRight, uint8(0)))
+__66:
+ ;
+__64:
+ ;
+ if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0) && b >= 0) {
+ goto __67
+ }
+ ii = 0
+__68:
+ if !(ii < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __70
+ }
+ Xsqlite3BtreeSecureDelete(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii)*32)).FpBt, b)
+ goto __69
+__69:
+ ii++
+ goto __68
+ goto __70
+__70:
+ ;
+__67:
+ ;
+ b = Xsqlite3BtreeSecureDelete(tls, pBt1, b)
+ returnSingleInt(tls, v, int64(b))
+ goto __15
+
+__19:
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(0)
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ iReg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if !(int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(zLeft)))]) == 'p') {
+ goto __71
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Pagecount, iDb, iReg)
+ goto __72
+__71:
+ if !(zRight != 0 && Xsqlite3DecOrHexToI64(tls, zRight, bp+520) == 0) {
+ goto __73
+ }
+ if !(*(*I64)(unsafe.Pointer(bp + 520)) < int64(0)) {
+ goto __75
+ }
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(0)
+ goto __76
+__75:
+ if !(*(*I64)(unsafe.Pointer(bp + 520)) > int64(0xfffffffe)) {
+ goto __77
+ }
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(0xfffffffe)
+__77:
+ ;
+__76:
+ ;
+ goto __74
+__73:
+ *(*I64)(unsafe.Pointer(bp + 520)) = int64(0)
+__74:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_MaxPgcnt, iDb, iReg, int32(*(*I64)(unsafe.Pointer(bp + 520))))
+__72:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, iReg, 1)
+ goto __15
+
+__20:
+ zRet = ts + 17760
+ eMode = getLockingMode(tls, zRight)
+
+ if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -1) {
+ goto __78
+ }
+
+ eMode = int32((*Sqlite3)(unsafe.Pointer(db)).FdfltLockMode)
+ goto __79
+__78:
+ if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
+ goto __80
+ }
+
+ ii1 = 2
+__81:
+ if !(ii1 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __83
+ }
+ pPager = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii1)*32)).FpBt)
+ Xsqlite3PagerLockingMode(tls, pPager, eMode)
+ goto __82
+__82:
+ ii1++
+ goto __81
+ goto __83
+__83:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FdfltLockMode = U8(eMode)
+__80:
+ ;
+ pPager = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ eMode = Xsqlite3PagerLockingMode(tls, pPager, eMode)
+__79:
+ ;
+ if !(eMode == PAGER_LOCKINGMODE_EXCLUSIVE) {
+ goto __84
+ }
+ zRet = ts + 17750
+__84:
+ ;
+ returnSingleText(tls, v, zRet)
+ goto __15
+
+__21:
+ if !(zRight == uintptr(0)) {
+ goto __85
+ }
+
+ eMode1 = -1
+ goto __86
+__85:
+ n = Xsqlite3Strlen30(tls, zRight)
+ eMode1 = 0
+__87:
+ if !(libc.AssignUintptr(&zMode, Xsqlite3JournalModename(tls, eMode1)) != uintptr(0)) {
+ goto __89
+ }
+ if !(Xsqlite3_strnicmp(tls, zRight, zMode, n) == 0) {
+ goto __90
+ }
+ goto __89
+__90:
+ ;
+ goto __88
+__88:
+ eMode1++
+ goto __87
+ goto __89
+__89:
+ ;
+ if !!(zMode != 0) {
+ goto __91
+ }
+
+ eMode1 = -1
+__91:
+ ;
+ if !(eMode1 == PAGER_JOURNALMODE_OFF && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_Defensive) != uint64(0)) {
+ goto __92
+ }
+
+ eMode1 = -1
+__92:
+ ;
+__86:
+ ;
+ if !(eMode1 == -1 && (*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
+ goto __93
+ }
+
+ iDb = 0
+ (*Token)(unsafe.Pointer(pId2)).Fn = uint32(1)
+__93:
+ ;
+ ii2 = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+__94:
+ if !(ii2 >= 0) {
+ goto __96
+ }
+ if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii2)*32)).FpBt != 0 && (ii2 == iDb || (*Token)(unsafe.Pointer(pId2)).Fn == uint32(0))) {
+ goto __97
+ }
+ Xsqlite3VdbeUsesBtree(tls, v, ii2)
+ Xsqlite3VdbeAddOp3(tls, v, OP_JournalMode, ii2, 1, eMode1)
+__97:
+ ;
+ goto __95
+__95:
+ ii2--
+ goto __94
+ goto __96
+__96:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, 1)
+ goto __15
+
+__22:
+ pPager1 = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ *(*I64)(unsafe.Pointer(bp + 528)) = int64(-2)
+ if !(zRight != 0) {
+ goto __98
+ }
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+528)
+ if !(*(*I64)(unsafe.Pointer(bp + 528)) < int64(-1)) {
+ goto __99
+ }
+ *(*I64)(unsafe.Pointer(bp + 528)) = int64(-1)
+__99:
+ ;
+__98:
+ ;
+ *(*I64)(unsafe.Pointer(bp + 528)) = Xsqlite3PagerJournalSizeLimit(tls, pPager1, *(*I64)(unsafe.Pointer(bp + 528)))
+ returnSingleInt(tls, v, *(*I64)(unsafe.Pointer(bp + 528)))
+ goto __15
+
+__23:
+ pBt2 = (*Db)(unsafe.Pointer(pDb)).FpBt
+
+ if !!(zRight != 0) {
+ goto __100
+ }
+ returnSingleInt(tls, v, int64(Xsqlite3BtreeGetAutoVacuum(tls, pBt2)))
+ goto __101
+__100:
+ eAuto = getAutoVacuum(tls, zRight)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FnextAutovac = int8(U8(eAuto))
+
+ rc = Xsqlite3BtreeSetAutoVacuum(tls, pBt2, eAuto)
+ if !(rc == SQLITE_OK && (eAuto == 1 || eAuto == 2)) {
+ goto __102
+ }
+ iAddr = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ aOp1 = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(setMeta6))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&setMeta6)), iLn4)
+ if !(0 != 0) {
+ goto __103
+ }
+ goto __15
+__103:
+ ;
+ (*VdbeOp)(unsafe.Pointer(aOp1)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp1 + 1*24)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp1 + 2*24)).Fp2 = iAddr + 4
+ (*VdbeOp)(unsafe.Pointer(aOp1 + 4*24)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp1 + 4*24)).Fp3 = eAuto - 1
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+__102:
+ ;
+__101:
+ ;
+ goto __15
+
+__24:
+ *(*int32)(unsafe.Pointer(bp + 536)) = 0
+ if !(zRight == uintptr(0) || !(Xsqlite3GetInt32(tls, zRight, bp+536) != 0) || *(*int32)(unsafe.Pointer(bp + 536)) <= 0) {
+ goto __104
+ }
+ *(*int32)(unsafe.Pointer(bp + 536)) = 0x7fffffff
+__104:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, *(*int32)(unsafe.Pointer(bp + 536)), 1)
+ addr = Xsqlite3VdbeAddOp1(tls, v, OP_IncrVacuum, iDb)
+ Xsqlite3VdbeAddOp1(tls, v, OP_ResultRow, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, 1, -1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfPos, 1, addr)
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ goto __15
+
+__25:
+ ;
+ if !!(zRight != 0) {
+ goto __105
+ }
+ returnSingleInt(tls, v, int64((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size))
+ goto __106
+__105:
+ size2 = Xsqlite3Atoi(tls, zRight)
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size2
+ Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
+__106:
+ ;
+ goto __15
+
+__26:
+ ;
+ if !!(zRight != 0) {
+ goto __107
+ }
+ returnSingleInt(tls, v,
+ func() int64 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_CacheSpill) == uint64(0) {
+ return int64(0)
+ }
+ return int64(Xsqlite3BtreeSetSpillSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, 0))
+ }())
+ goto __108
+__107:
+ *(*int32)(unsafe.Pointer(bp + 540)) = 1
+ if !(Xsqlite3GetInt32(tls, zRight, bp+540) != 0) {
+ goto __109
+ }
+ Xsqlite3BtreeSetSpillSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, *(*int32)(unsafe.Pointer(bp + 540)))
+__109:
+ ;
+ if !(Xsqlite3GetBoolean(tls, zRight, uint8(libc.Bool32(*(*int32)(unsafe.Pointer(bp + 540)) != 0))) != 0) {
+ goto __110
+ }
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(SQLITE_CacheSpill)
+ goto __111
+__110:
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_CacheSpill))
+__111:
+ ;
+ setAllPagerFlags(tls, db)
+__108:
+ ;
+ goto __15
+
+__27:
+ ;
+ if !(zRight != 0) {
+ goto __112
+ }
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+544)
+ if !(*(*Sqlite3_int64)(unsafe.Pointer(bp + 544)) < int64(0)) {
+ goto __113
+ }
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 544)) = Xsqlite3Config.FszMmap
+__113:
+ ;
+ if !((*Token)(unsafe.Pointer(pId2)).Fn == uint32(0)) {
+ goto __114
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FszMmap = *(*Sqlite3_int64)(unsafe.Pointer(bp + 544))
+__114:
+ ;
+ ii3 = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+__115:
+ if !(ii3 >= 0) {
+ goto __117
+ }
+ if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii3)*32)).FpBt != 0 && (ii3 == iDb || (*Token)(unsafe.Pointer(pId2)).Fn == uint32(0))) {
+ goto __118
+ }
+ Xsqlite3BtreeSetMmapLimit(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii3)*32)).FpBt, *(*Sqlite3_int64)(unsafe.Pointer(bp + 544)))
+__118:
+ ;
+ goto __116
+__116:
+ ii3--
+ goto __115
+ goto __117
+__117:
+ ;
+__112:
+ ;
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 544)) = int64(-1)
+ rc = Xsqlite3_file_control(tls, db, zDb, SQLITE_FCNTL_MMAP_SIZE, bp+544)
+ if !(rc == SQLITE_OK) {
+ goto __119
+ }
+ returnSingleInt(tls, v, *(*Sqlite3_int64)(unsafe.Pointer(bp + 544)))
+ goto __120
+__119:
+ if !(rc != SQLITE_NOTFOUND) {
+ goto __121
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ (*Parse)(unsafe.Pointer(pParse)).Frc = rc
+__121:
+ ;
+__120:
+ ;
+ goto __15
+
+__28:
+ if !!(zRight != 0) {
+ goto __122
+ }
+ returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store))
+ goto __123
+__122:
+ changeTempStorage(tls, pParse, zRight)
+__123:
+ ;
+ goto __15
+
+__29:
+ Xsqlite3_mutex_enter(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1))
+ if !!(zRight != 0) {
+ goto __124
+ }
+ returnSingleText(tls, v, Xsqlite3_temp_directory)
+ goto __125
+__124:
+ if !(*(*int8)(unsafe.Pointer(zRight)) != 0) {
+ goto __126
+ }
+ rc = Xsqlite3OsAccess(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, zRight, SQLITE_ACCESS_READWRITE, bp+552)
+ if !(rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 552)) == 0) {
+ goto __127
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+17974, 0)
+ Xsqlite3_mutex_leave(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1))
+ goto pragma_out
+__127:
+ ;
+__126:
+ ;
+ if !(SQLITE_TEMP_STORE == 0 ||
+ SQLITE_TEMP_STORE == 1 && int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) <= 1 ||
+ SQLITE_TEMP_STORE == 2 && int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) == 1) {
+ goto __128
+ }
+ invalidateTempStorage(tls, pParse)
+__128:
+ ;
+ Xsqlite3_free(tls, Xsqlite3_temp_directory)
+ if !(*(*int8)(unsafe.Pointer(zRight)) != 0) {
+ goto __129
+ }
+ Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+16, zRight))
+ goto __130
+__129:
+ Xsqlite3_temp_directory = uintptr(0)
+__130:
+ ;
+__125:
+ ;
+ Xsqlite3_mutex_leave(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_VFS1))
+ goto __15
+
+__30:
+ if !!(zRight != 0) {
+ goto __131
+ }
+ pPager2 = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ *(*uintptr)(unsafe.Pointer(bp + 560)) = uintptr(0)
+ pFile = Xsqlite3PagerFile(tls, pPager2)
+ Xsqlite3OsFileControlHint(tls, pFile, SQLITE_FCNTL_GET_LOCKPROXYFILE,
+ bp+560)
+ returnSingleText(tls, v, *(*uintptr)(unsafe.Pointer(bp + 560)))
+ goto __132
+__131:
+ pPager3 = Xsqlite3BtreePager(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ pFile1 = Xsqlite3PagerFile(tls, pPager3)
+ if !(*(*int8)(unsafe.Pointer(zRight)) != 0) {
+ goto __133
+ }
+ res1 = Xsqlite3OsFileControl(tls, pFile1, SQLITE_FCNTL_SET_LOCKPROXYFILE,
+ zRight)
+ goto __134
+__133:
+ res1 = Xsqlite3OsFileControl(tls, pFile1, SQLITE_FCNTL_SET_LOCKPROXYFILE,
+ uintptr(0))
+__134:
+ ;
+ if !(res1 != SQLITE_OK) {
+ goto __135
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+17999, 0)
+ goto pragma_out
+__135:
+ ;
+__132:
+ ;
+ goto __15
+
+__31:
+ if !!(zRight != 0) {
+ goto __136
+ }
+ returnSingleInt(tls, v, int64(int32((*Db)(unsafe.Pointer(pDb)).Fsafety_level)-1))
+ goto __137
+__136:
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) {
+ goto __138
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+18029, 0)
+ goto __139
+__138:
+ if !(iDb != 1) {
+ goto __140
+ }
+ iLevel = (int32(getSafetyLevel(tls, zRight, 0, uint8(1))) + 1) & PAGER_SYNCHRONOUS_MASK
+ if !(iLevel == 0) {
+ goto __141
+ }
+ iLevel = 1
+__141:
+ ;
+ (*Db)(unsafe.Pointer(pDb)).Fsafety_level = U8(iLevel)
+ (*Db)(unsafe.Pointer(pDb)).FbSyncSet = U8(1)
+ setAllPagerFlags(tls, db)
+__140:
+ ;
+__139:
+ ;
+__137:
+ ;
+ goto __15
+
+__32:
+ if !(zRight == uintptr(0)) {
+ goto __142
+ }
+ setPragmaResultColumnNames(tls, v, pPragma)
+ returnSingleInt(tls, v, int64(libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&(*PragmaName)(unsafe.Pointer(pPragma)).FiArg != uint64(0))))
+ goto __143
+__142:
+ mask = (*PragmaName)(unsafe.Pointer(pPragma)).FiArg
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0) {
+ goto __144
+ }
+
+ mask = mask & libc.Uint64FromInt32(libc.CplInt32(SQLITE_ForeignKeys))
+__144:
+ ;
+ if !(Xsqlite3GetBoolean(tls, zRight, uint8(0)) != 0) {
+ goto __145
+ }
+ *(*U64)(unsafe.Pointer(db + 48)) |= mask
+ goto __146
+__145:
+ *(*U64)(unsafe.Pointer(db + 48)) &= ^mask
+ if !(mask == uint64(SQLITE_DeferFKs)) {
+ goto __147
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = int64(0)
+__147:
+ ;
+ if !(mask&uint64(SQLITE_WriteSchema) != uint64(0) &&
+ Xsqlite3_stricmp(tls, zRight, ts+18082) == 0) {
+ goto __148
+ }
+
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+__148:
+ ;
+__146:
+ ;
+ Xsqlite3VdbeAddOp0(tls, v, OP_Expire)
+ setAllPagerFlags(tls, db)
+__143:
+ ;
+ goto __15
+
+__33:
+ if !(zRight != 0) {
+ goto __149
+ }
+ Xsqlite3CodeVerifyNamedSchema(tls, pParse, zDb)
+ pTab = Xsqlite3LocateTable(tls, pParse, uint32(LOCATE_NOERR), zRight, zDb)
+ if !(pTab != 0) {
+ goto __150
+ }
+ nHidden = 0
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 7
+ Xsqlite3ViewGetColumnNames(tls, pParse, pTab)
+ i = 0
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+__151:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __153
+ }
+ isHidden = 0
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_NOINSERT != 0) {
+ goto __154
+ }
+ if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg == uint64(0)) {
+ goto __155
+ }
+ nHidden++
+ goto __152
+__155:
+ ;
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __156
+ }
+ isHidden = 2
+ goto __157
+__156:
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_STORED != 0) {
+ goto __158
+ }
+ isHidden = 3
+ goto __159
+__158:
+ ;
+ isHidden = 1
+__159:
+ ;
+__157:
+ ;
+__154:
+ ;
+ if !(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY == 0) {
+ goto __160
+ }
+ k = 0
+ goto __161
+__160:
+ if !(pPk == uintptr(0)) {
+ goto __162
+ }
+ k = 1
+ goto __163
+__162:
+ k = 1
+__164:
+ if !(k <= int32((*Table)(unsafe.Pointer(pTab)).FnCol) && int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(k-1)*2))) != i) {
+ goto __166
+ }
+ goto __165
+__165:
+ k++
+ goto __164
+ goto __166
+__166:
+ ;
+__163:
+ ;
+__161:
+ ;
+ pColExpr = Xsqlite3ColumnExpr(tls, pTab, pCol)
+
+ Xsqlite3VdbeMultiLoad(tls, v, 1, func() uintptr {
+ if (*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 {
+ return ts + 18088
+ }
+ return ts + 18096
+ }(),
+ libc.VaList(bp+24, i-nHidden,
+ (*Column)(unsafe.Pointer(pCol)).FzCnName,
+ Xsqlite3ColumnType(tls, pCol, ts+1547),
+ func() int32 {
+ if uint32(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 {
+ return 1
+ }
+ return 0
+ }(),
+ func() uintptr {
+ if isHidden >= 2 || pColExpr == uintptr(0) {
+ return uintptr(0)
+ }
+ return *(*uintptr)(unsafe.Pointer(pColExpr + 8))
+ }(),
+ k,
+ isHidden))
+ goto __152
+__152:
+ i++
+ pCol += 24
+ goto __151
+ goto __153
+__153:
+ ;
+__150:
+ ;
+__149:
+ ;
+ goto __15
+
+__34:
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 6
+ Xsqlite3CodeVerifyNamedSchema(tls, pParse, zDb)
+ ii4 = 0
+__167:
+ if !(ii4 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __169
+ }
+ if !(zDb != 0 && Xsqlite3_stricmp(tls, zDb, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii4)*32)).FzDbSName) != 0) {
+ goto __170
+ }
+ goto __168
+__170:
+ ;
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii4)*32)).FpSchema + 8
+ initNCol = int32((*Hash)(unsafe.Pointer(pHash)).Fcount)
+__171:
+ if !(libc.PostDecInt32(&initNCol, 1) != 0) {
+ goto __172
+ }
+ k1 = (*Hash)(unsafe.Pointer(pHash)).Ffirst
+__173:
+ if !(1 != 0) {
+ goto __175
+ }
+ if !(k1 == uintptr(0)) {
+ goto __176
+ }
+ initNCol = 0
+ goto __175
+__176:
+ ;
+ pTab1 = (*HashElem)(unsafe.Pointer(k1)).Fdata
+ if !(int32((*Table)(unsafe.Pointer(pTab1)).FnCol) == 0) {
+ goto __177
+ }
+ zSql = Xsqlite3MPrintf(tls, db, ts+18103, libc.VaList(bp+80, (*Table)(unsafe.Pointer(pTab1)).FzName))
+ if !(zSql != 0) {
+ goto __178
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 568)) = uintptr(0)
+ Xsqlite3_prepare(tls, db, zSql, -1, bp+568, uintptr(0))
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 568)))
+ Xsqlite3DbFree(tls, db, zSql)
+__178:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __179
+ }
+ Xsqlite3ErrorMsg(tls, (*Sqlite3)(unsafe.Pointer(db)).FpParse, ts+1483, 0)
+ (*Parse)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FpParse)).Frc = SQLITE_NOMEM
+__179:
+ ;
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii4)*32)).FpSchema + 8
+ goto __175
+__177:
+ ;
+ goto __174
+__174:
+ k1 = (*HashElem)(unsafe.Pointer(k1)).Fnext
+ goto __173
+ goto __175
+__175:
+ ;
+ goto __171
+__172:
+ ;
+ k1 = (*Hash)(unsafe.Pointer(pHash)).Ffirst
+__180:
+ if !(k1 != 0) {
+ goto __182
+ }
+ pTab2 = (*HashElem)(unsafe.Pointer(k1)).Fdata
+ if !(zRight != 0 && Xsqlite3_stricmp(tls, zRight, (*Table)(unsafe.Pointer(pTab2)).FzName) != 0) {
+ goto __183
+ }
+ goto __181
+__183:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab2)).FeTabType) == TABTYP_VIEW) {
+ goto __184
+ }
+ zType = ts + 10894
+ goto __185
+__184:
+ if !(int32((*Table)(unsafe.Pointer(pTab2)).FeTabType) == TABTYP_VTAB) {
+ goto __186
+ }
+ zType = ts + 13124
+ goto __187
+__186:
+ if !((*Table)(unsafe.Pointer(pTab2)).FtabFlags&U32(TF_Shadow) != 0) {
+ goto __188
+ }
+ zType = ts + 18119
+ goto __189
+__188:
+ zType = ts + 9279
+__189:
+ ;
+__187:
+ ;
+__185:
+ ;
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18126,
+ libc.VaList(bp+88, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(ii4)*32)).FzDbSName,
+ Xsqlite3PreferredTableName(tls, (*Table)(unsafe.Pointer(pTab2)).FzName),
+ zType,
+ int32((*Table)(unsafe.Pointer(pTab2)).FnCol),
+ libc.Bool32((*Table)(unsafe.Pointer(pTab2)).FtabFlags&U32(TF_WithoutRowid) != U32(0)),
+ libc.Bool32((*Table)(unsafe.Pointer(pTab2)).FtabFlags&U32(TF_Strict) != U32(0))))
+ goto __181
+__181:
+ k1 = (*HashElem)(unsafe.Pointer(k1)).Fnext
+ goto __180
+ goto __182
+__182:
+ ;
+ goto __168
+__168:
+ ii4++
+ goto __167
+ goto __169
+__169:
+ ;
+ goto __15
+
+__35:
+ if !(zRight != 0) {
+ goto __190
+ }
+ pIdx = Xsqlite3FindIndex(tls, db, zRight, zDb)
+ if !(pIdx == uintptr(0)) {
+ goto __191
+ }
+
+ pTab3 = Xsqlite3LocateTable(tls, pParse, uint32(LOCATE_NOERR), zRight, zDb)
+ if !(pTab3 != 0 && !((*Table)(unsafe.Pointer(pTab3)).FtabFlags&U32(TF_WithoutRowid) == U32(0))) {
+ goto __192
+ }
+ pIdx = Xsqlite3PrimaryKeyIndex(tls, pTab3)
+__192:
+ ;
+__191:
+ ;
+ if !(pIdx != 0) {
+ goto __193
+ }
+ iIdxDb = Xsqlite3SchemaToIndex(tls, db, (*Index)(unsafe.Pointer(pIdx)).FpSchema)
+ if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0) {
+ goto __194
+ }
+
+ mx = int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 6
+ goto __195
+__194:
+ mx = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 3
+__195:
+ ;
+ pTab3 = (*Index)(unsafe.Pointer(pIdx)).FpTable
+ Xsqlite3CodeVerifySchema(tls, pParse, iIdxDb)
+
+ i1 = 0
+__196:
+ if !(i1 < mx) {
+ goto __198
+ }
+ cnum = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i1)*2))
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18133, libc.VaList(bp+136, i1, int32(cnum),
+ func() uintptr {
+ if int32(cnum) < 0 {
+ return uintptr(0)
+ }
+ return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*24)).FzCnName
+ }()))
+ if !((*PragmaName)(unsafe.Pointer(pPragma)).FiArg != 0) {
+ goto __199
+ }
+ Xsqlite3VdbeMultiLoad(tls, v, 4, ts+18138,
+ libc.VaList(bp+160, int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))),
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)),
+ libc.Bool32(i1 < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol))))
+__199:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, (*Parse)(unsafe.Pointer(pParse)).FnMem)
+ goto __197
+__197:
+ i1++
+ goto __196
+ goto __198
+__198:
+ ;
+__193:
+ ;
+__190:
+ ;
+ goto __15
+
+__36:
+ if !(zRight != 0) {
+ goto __200
+ }
+ pTab4 = Xsqlite3FindTable(tls, db, zRight, zDb)
+ if !(pTab4 != 0) {
+ goto __201
+ }
+ iTabDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab4)).FpSchema)
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 5
+ Xsqlite3CodeVerifySchema(tls, pParse, iTabDb)
+ pIdx1 = (*Table)(unsafe.Pointer(pTab4)).FpIndex
+ i2 = 0
+__202:
+ if !(pIdx1 != 0) {
+ goto __204
+ }
+ *(*[3]uintptr)(unsafe.Pointer(bp + 576)) = [3]uintptr{ts + 18143, ts + 18145, ts + 16561}
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18147,
+ libc.VaList(bp+184, i2,
+ (*Index)(unsafe.Pointer(pIdx1)).FzName,
+ libc.Bool32(int32((*Index)(unsafe.Pointer(pIdx1)).FonError) != OE_None),
+ *(*uintptr)(unsafe.Pointer(bp + 576 + uintptr(uint32(int32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0)))*8)),
+ libc.Bool32((*Index)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0))))
+ goto __203
+__203:
+ pIdx1 = (*Index)(unsafe.Pointer(pIdx1)).FpNext
+ i2++
+ goto __202
+ goto __204
+__204:
+ ;
+__201:
+ ;
+__200:
+ ;
+ goto __15
+
+__37:
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 3
+ i3 = 0
+__205:
+ if !(i3 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __207
+ }
+ if !((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FpBt == uintptr(0)) {
+ goto __208
+ }
+ goto __206
+__208:
+ ;
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18153,
+ libc.VaList(bp+224, i3,
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FzDbSName,
+ Xsqlite3BtreeGetFilename(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i3)*32)).FpBt)))
+ goto __206
+__206:
+ i3++
+ goto __205
+ goto __207
+__207:
+ ;
+ goto __15
+
+__38:
+ i4 = 0
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 2
+ p = (*Hash)(unsafe.Pointer(db + 648)).Ffirst
+__209:
+ if !(p != 0) {
+ goto __211
+ }
+ pColl = (*HashElem)(unsafe.Pointer(p)).Fdata
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18157, libc.VaList(bp+248, libc.PostIncInt32(&i4, 1), (*CollSeq)(unsafe.Pointer(pColl)).FzName))
+ goto __210
+__210:
+ p = (*HashElem)(unsafe.Pointer(p)).Fnext
+ goto __209
+ goto __211
+__211:
+ ;
+ goto __15
+
+__39:
+ showInternFunc = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_InternalFunc) != U32(0))
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 6
+ i5 = 0
+__212:
+ if !(i5 < SQLITE_FUNC_HASH_SZ) {
+ goto __214
+ }
+ p1 = *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)) + uintptr(i5)*8))
+__215:
+ if !(p1 != 0) {
+ goto __217
+ }
+
+ pragmaFunclistLine(tls, v, p1, 1, showInternFunc)
+ goto __216
+__216:
+ p1 = *(*uintptr)(unsafe.Pointer(p1 + 64))
+ goto __215
+ goto __217
+__217:
+ ;
+ goto __213
+__213:
+ i5++
+ goto __212
+ goto __214
+__214:
+ ;
+ j = (*Hash)(unsafe.Pointer(db + 624)).Ffirst
+__218:
+ if !(j != 0) {
+ goto __220
+ }
+ p1 = (*HashElem)(unsafe.Pointer(j)).Fdata
+
+ pragmaFunclistLine(tls, v, p1, 0, showInternFunc)
+ goto __219
+__219:
+ j = (*HashElem)(unsafe.Pointer(j)).Fnext
+ goto __218
+ goto __220
+__220:
+ ;
+ goto __15
+
+__40:
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 1
+ j1 = (*Hash)(unsafe.Pointer(db + 576)).Ffirst
+__221:
+ if !(j1 != 0) {
+ goto __223
+ }
+ pMod = (*HashElem)(unsafe.Pointer(j1)).Fdata
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+7931, libc.VaList(bp+264, (*Module)(unsafe.Pointer(pMod)).FzName))
+ goto __222
+__222:
+ j1 = (*HashElem)(unsafe.Pointer(j1)).Fnext
+ goto __221
+ goto __223
+__223:
+ ;
+ goto __15
+
+__41:
+ i6 = 0
+__224:
+ if !(i6 < int32(uint64(unsafe.Sizeof(aPragmaName))/uint64(unsafe.Sizeof(PragmaName{})))) {
+ goto __226
+ }
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+7931, libc.VaList(bp+272, aPragmaName[i6].FzName))
+ goto __225
+__225:
+ i6++
+ goto __224
+ goto __226
+__226:
+ ;
+ goto __15
+
+__42:
+ if !(zRight != 0) {
+ goto __227
+ }
+ pTab5 = Xsqlite3FindTable(tls, db, zRight, zDb)
+ if !(pTab5 != 0 && int32((*Table)(unsafe.Pointer(pTab5)).FeTabType) == TABTYP_NORM) {
+ goto __228
+ }
+ pFK = *(*uintptr)(unsafe.Pointer(pTab5 + 64 + 8))
+ if !(pFK != 0) {
+ goto __229
+ }
+ iTabDb1 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab5)).FpSchema)
+ i7 = 0
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 8
+ Xsqlite3CodeVerifySchema(tls, pParse, iTabDb1)
+__230:
+ if !(pFK != 0) {
+ goto __231
+ }
+ j2 = 0
+__232:
+ if !(j2 < (*FKey)(unsafe.Pointer(pFK)).FnCol) {
+ goto __234
+ }
+ Xsqlite3VdbeMultiLoad(tls, v, 1, ts+18160,
+ libc.VaList(bp+280, i7,
+ j2,
+ (*FKey)(unsafe.Pointer(pFK)).FzTo,
+ (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab5)).FaCol+uintptr((*sColMap)(unsafe.Pointer(pFK+64+uintptr(j2)*16)).FiFrom)*24)).FzCnName,
+ (*sColMap)(unsafe.Pointer(pFK+64+uintptr(j2)*16)).FzCol,
+ actionName(tls, *(*U8)(unsafe.Pointer(pFK + 45 + 1))),
+ actionName(tls, *(*U8)(unsafe.Pointer(pFK + 45))),
+ ts+18169))
+ goto __233
+__233:
+ j2++
+ goto __232
+ goto __234
+__234:
+ ;
+ i7++
+ pFK = (*FKey)(unsafe.Pointer(pFK)).FpNextFrom
+ goto __230
+__231:
+ ;
+__229:
+ ;
+__228:
+ ;
+__227:
+ ;
+ goto __15
+
+__43:
+ regResult = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += 4
+ regRow = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ k2 = (*Hash)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 8)).Ffirst
+__235:
+ if !(k2 != 0) {
+ goto __236
+ }
+ if !(zRight != 0) {
+ goto __237
+ }
+ pTab6 = Xsqlite3LocateTable(tls, pParse, uint32(0), zRight, zDb)
+ k2 = uintptr(0)
+ goto __238
+__237:
+ pTab6 = (*HashElem)(unsafe.Pointer(k2)).Fdata
+ k2 = (*HashElem)(unsafe.Pointer(k2)).Fnext
+__238:
+ ;
+ if !(pTab6 == uintptr(0) || !(int32((*Table)(unsafe.Pointer(pTab6)).FeTabType) == TABTYP_NORM) || *(*uintptr)(unsafe.Pointer(pTab6 + 64 + 8)) == uintptr(0)) {
+ goto __239
+ }
+ goto __235
+__239:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab6)).FpSchema)
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab6)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab6)).FzName)
+ if !(int32((*Table)(unsafe.Pointer(pTab6)).FnCol)+regRow > (*Parse)(unsafe.Pointer(pParse)).FnMem) {
+ goto __240
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = int32((*Table)(unsafe.Pointer(pTab6)).FnCol) + regRow
+__240:
+ ;
+ Xsqlite3OpenTable(tls, pParse, 0, iDb, pTab6, OP_OpenRead)
+ Xsqlite3VdbeLoadString(tls, v, regResult, (*Table)(unsafe.Pointer(pTab6)).FzName)
+
+ i8 = 1
+ pFK1 = *(*uintptr)(unsafe.Pointer(pTab6 + 64 + 8))
+__241:
+ if !(pFK1 != 0) {
+ goto __243
+ }
+ pParent = Xsqlite3FindTable(tls, db, (*FKey)(unsafe.Pointer(pFK1)).FzTo, zDb)
+ if !(pParent == uintptr(0)) {
+ goto __244
+ }
+ goto __242
+__244:
+ ;
+ *(*uintptr)(unsafe.Pointer(bp + 600)) = uintptr(0)
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pParent)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pParent)).FzName)
+ x1 = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+600, uintptr(0))
+ if !(x1 == 0) {
+ goto __245
+ }
+ if !(*(*uintptr)(unsafe.Pointer(bp + 600)) == uintptr(0)) {
+ goto __247
+ }
+ Xsqlite3OpenTable(tls, pParse, i8, iDb, pParent, OP_OpenRead)
+ goto __248
+__247:
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenRead, i8, int32((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 600)))).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 600)))
+__248:
+ ;
+ goto __246
+__245:
+ k2 = uintptr(0)
+ goto __243
+__246:
+ ;
+ goto __242
+__242:
+ i8++
+ pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
+ goto __241
+ goto __243
+__243:
+ ;
+ if !(pFK1 != 0) {
+ goto __249
+ }
+ goto __236
+__249:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnTab < i8) {
+ goto __250
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = i8
+__250:
+ ;
+ addrTop = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, 0)
+
+ i8 = 1
+ pFK1 = *(*uintptr)(unsafe.Pointer(pTab6 + 64 + 8))
+__251:
+ if !(pFK1 != 0) {
+ goto __253
+ }
+ pParent = Xsqlite3FindTable(tls, db, (*FKey)(unsafe.Pointer(pFK1)).FzTo, zDb)
+ *(*uintptr)(unsafe.Pointer(bp + 600)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 608)) = uintptr(0)
+ if !(pParent != 0) {
+ goto __254
+ }
+ x1 = Xsqlite3FkLocateIndex(tls, pParse, pParent, pFK1, bp+600, bp+608)
+
+__254:
+ ;
+ addrOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ if !(regRow+(*FKey)(unsafe.Pointer(pFK1)).FnCol > (*Parse)(unsafe.Pointer(pParse)).FnMem) {
+ goto __255
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = regRow + (*FKey)(unsafe.Pointer(pFK1)).FnCol
+__255:
+ ;
+ j3 = 0
+__256:
+ if !(j3 < (*FKey)(unsafe.Pointer(pFK1)).FnCol) {
+ goto __258
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 608)) != 0 {
+ iCol = *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 608)) + uintptr(j3)*4))
+ } else {
+ iCol = (*sColMap)(unsafe.Pointer(pFK1 + 64 + uintptr(j3)*16)).FiFrom
+ }
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab6, 0, iCol, regRow+j3)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regRow+j3, addrOk)
+ goto __257
+__257:
+ j3++
+ goto __256
+ goto __258
+__258:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp + 600)) != 0) {
+ goto __259
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, regRow, (*FKey)(unsafe.Pointer(pFK1)).FnCol, 0,
+ Xsqlite3IndexAffinityStr(tls, db, *(*uintptr)(unsafe.Pointer(bp + 600))), (*FKey)(unsafe.Pointer(pFK1)).FnCol)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, i8, addrOk, regRow, (*FKey)(unsafe.Pointer(pFK1)).FnCol)
+
+ goto __260
+__259:
+ if !(pParent != 0) {
+ goto __261
+ }
+ jmp = Xsqlite3VdbeCurrentAddr(tls, v) + 2
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, i8, jmp, regRow)
+ Xsqlite3VdbeGoto(tls, v, addrOk)
+
+__261:
+ ;
+__260:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab6)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __262
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, 0, regResult+1)
+ goto __263
+__262:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regResult+1)
+__263:
+ ;
+ Xsqlite3VdbeMultiLoad(tls, v, regResult+2, ts+18174, libc.VaList(bp+344, (*FKey)(unsafe.Pointer(pFK1)).FzTo, i8-1))
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, regResult, 4)
+ Xsqlite3VdbeResolveLabel(tls, v, addrOk)
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 608)))
+ goto __252
+__252:
+ i8++
+ pFK1 = (*FKey)(unsafe.Pointer(pFK1)).FpNextFrom
+ goto __251
+ goto __253
+__253:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, 0, addrTop+1)
+ Xsqlite3VdbeJumpHere(tls, v, addrTop)
+ goto __235
+__236:
+ ;
+ goto __15
+
+__44:
+ if !(zRight != 0) {
+ goto __264
+ }
+ Xsqlite3RegisterLikeFunctions(tls, db, int32(Xsqlite3GetBoolean(tls, zRight, uint8(0))))
+__264:
+ ;
+ goto __15
+
+__45:
+ pObjTab = uintptr(0)
+
+ isQuick = libc.Bool32(int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(zLeft)))]) == 'q')
+
+ if !((*Token)(unsafe.Pointer(pId2)).Fz == uintptr(0)) {
+ goto __265
+ }
+ iDb = -1
+__265:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 6
+
+ *(*int32)(unsafe.Pointer(bp + 616)) = SQLITE_INTEGRITY_CHECK_ERROR_MAX
+ if !(zRight != 0) {
+ goto __266
+ }
+ if !(Xsqlite3GetInt32(tls, zRight, bp+616) != 0) {
+ goto __267
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 616)) <= 0) {
+ goto __269
+ }
+ *(*int32)(unsafe.Pointer(bp + 616)) = SQLITE_INTEGRITY_CHECK_ERROR_MAX
+__269:
+ ;
+ goto __268
+__267:
+ pObjTab = Xsqlite3LocateTable(tls, pParse, uint32(0), zRight,
+ func() uintptr {
+ if iDb >= 0 {
+ return (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ }
+ return uintptr(0)
+ }())
+__268:
+ ;
+__266:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, *(*int32)(unsafe.Pointer(bp + 616))-1, 1)
+
+ i9 = 0
+__270:
+ if !(i9 < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __272
+ }
+ cnt = 0
+ mxIdx = 0
+
+ if !(0 != 0 && i9 == 1) {
+ goto __273
+ }
+ goto __271
+__273:
+ ;
+ if !(iDb >= 0 && i9 != iDb) {
+ goto __274
+ }
+ goto __271
+__274:
+ ;
+ Xsqlite3CodeVerifySchema(tls, pParse, i9)
+
+ pTbls = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i9)*32)).FpSchema + 8
+ cnt = 0
+ x2 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
+__275:
+ if !(x2 != 0) {
+ goto __277
+ }
+ pTab7 = (*HashElem)(unsafe.Pointer(x2)).Fdata
+ if !(pObjTab != 0 && pObjTab != pTab7) {
+ goto __278
+ }
+ goto __276
+__278:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab7)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __279
+ }
+ cnt++
+__279:
+ ;
+ nIdx = 0
+ pIdx3 = (*Table)(unsafe.Pointer(pTab7)).FpIndex
+__280:
+ if !(pIdx3 != 0) {
+ goto __282
+ }
+ cnt++
+ goto __281
+__281:
+ pIdx3 = (*Index)(unsafe.Pointer(pIdx3)).FpNext
+ nIdx++
+ goto __280
+ goto __282
+__282:
+ ;
+ if !(nIdx > mxIdx) {
+ goto __283
+ }
+ mxIdx = nIdx
+__283:
+ ;
+ goto __276
+__276:
+ x2 = (*HashElem)(unsafe.Pointer(x2)).Fnext
+ goto __275
+ goto __277
+__277:
+ ;
+ if !(cnt == 0) {
+ goto __284
+ }
+ goto __271
+__284:
+ ;
+ if !(pObjTab != 0) {
+ goto __285
+ }
+ cnt++
+__285:
+ ;
+ aRoot = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(int32(0)))*uint64(cnt+1))
+ if !(aRoot == uintptr(0)) {
+ goto __286
+ }
+ goto __272
+__286:
+ ;
+ cnt = 0
+ if !(pObjTab != 0) {
+ goto __287
+ }
+ *(*int32)(unsafe.Pointer(aRoot + uintptr(libc.PreIncInt32(&cnt, 1))*4)) = 0
+__287:
+ ;
+ x2 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
+__288:
+ if !(x2 != 0) {
+ goto __290
+ }
+ pTab8 = (*HashElem)(unsafe.Pointer(x2)).Fdata
+ if !(pObjTab != 0 && pObjTab != pTab8) {
+ goto __291
+ }
+ goto __289
+__291:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab8)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __292
+ }
+ *(*int32)(unsafe.Pointer(aRoot + uintptr(libc.PreIncInt32(&cnt, 1))*4)) = int32((*Table)(unsafe.Pointer(pTab8)).Ftnum)
+__292:
+ ;
+ pIdx4 = (*Table)(unsafe.Pointer(pTab8)).FpIndex
+__293:
+ if !(pIdx4 != 0) {
+ goto __295
+ }
+ *(*int32)(unsafe.Pointer(aRoot + uintptr(libc.PreIncInt32(&cnt, 1))*4)) = int32((*Index)(unsafe.Pointer(pIdx4)).Ftnum)
+ goto __294
+__294:
+ pIdx4 = (*Index)(unsafe.Pointer(pIdx4)).FpNext
+ goto __293
+ goto __295
+__295:
+ ;
+ goto __289
+__289:
+ x2 = (*HashElem)(unsafe.Pointer(x2)).Fnext
+ goto __288
+ goto __290
+__290:
+ ;
+ *(*int32)(unsafe.Pointer(aRoot)) = cnt
+
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = func() int32 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnMem > 8+mxIdx {
+ return (*Parse)(unsafe.Pointer(pParse)).FnMem
+ }
+ return 8 + mxIdx
+ }()
+ Xsqlite3ClearTempRegCache(tls, pParse)
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_IntegrityCk, 2, cnt, 1, aRoot, -14)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(U8(i9)))
+ addr1 = Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, 2)
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0,
+ Xsqlite3MPrintf(tls, db, ts+18178, libc.VaList(bp+360, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i9)*32)).FzDbSName)),
+ -6)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 2, 3, 3)
+ integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+
+ x2 = (*Hash)(unsafe.Pointer(pTbls)).Ffirst
+__296:
+ if !(x2 != 0) {
+ goto __298
+ }
+ pTab9 = (*HashElem)(unsafe.Pointer(x2)).Fdata
+ pPrior = uintptr(0)
+ r1 = -1
+
+ if !!(int32((*Table)(unsafe.Pointer(pTab9)).FeTabType) == TABTYP_NORM) {
+ goto __299
+ }
+ goto __297
+__299:
+ ;
+ if !(pObjTab != 0 && pObjTab != pTab9) {
+ goto __300
+ }
+ goto __297
+__300:
+ ;
+ if !(isQuick != 0 || (*Table)(unsafe.Pointer(pTab9)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __301
+ }
+ pPk1 = uintptr(0)
+ r2 = 0
+ goto __302
+__301:
+ pPk1 = Xsqlite3PrimaryKeyIndex(tls, pTab9)
+ r2 = Xsqlite3GetTempRange(tls, pParse, int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 1, r2, r2+int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol)-1)
+__302:
+ ;
+ Xsqlite3OpenTableAndIndices(tls, pParse, pTab9, OP_OpenRead, uint8(0),
+ 1, uintptr(0), bp+620, bp+624)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, 7)
+ j4 = 0
+ pIdx5 = (*Table)(unsafe.Pointer(pTab9)).FpIndex
+__303:
+ if !(pIdx5 != 0) {
+ goto __305
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, 8+j4)
+ goto __304
+__304:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __303
+ goto __305
+__305:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, *(*int32)(unsafe.Pointer(bp + 620)), 0)
+ loopTop = Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, 7, 1)
+
+ if !((*Table)(unsafe.Pointer(pTab9)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __306
+ }
+ mxCol = -1
+ j4 = 0
+__308:
+ if !(j4 < int32((*Table)(unsafe.Pointer(pTab9)).FnCol)) {
+ goto __310
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab9)).FaCol+uintptr(j4)*24)).FcolFlags)&COLFLAG_VIRTUAL == 0) {
+ goto __311
+ }
+ mxCol++
+__311:
+ ;
+ goto __309
+__309:
+ j4++
+ goto __308
+ goto __310
+__310:
+ ;
+ if !(mxCol == int32((*Table)(unsafe.Pointer(pTab9)).FiPKey)) {
+ goto __312
+ }
+ mxCol--
+__312:
+ ;
+ goto __307
+__306:
+ mxCol = int32((*Index)(unsafe.Pointer(Xsqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - 1
+__307:
+ ;
+ if !(mxCol >= 0) {
+ goto __313
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, *(*int32)(unsafe.Pointer(bp + 620)), mxCol, 3)
+ Xsqlite3VdbeTypeofColumn(tls, v, 3)
+__313:
+ ;
+ if !!(isQuick != 0) {
+ goto __314
+ }
+ if !(pPk1 != 0) {
+ goto __315
+ }
+ a1 = Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxGT, *(*int32)(unsafe.Pointer(bp + 620)), 0, r2, int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol))
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, r2)
+ zErr = Xsqlite3MPrintf(tls, db,
+ ts+18202,
+ libc.VaList(bp+368, (*Table)(unsafe.Pointer(pTab9)).FzName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr, -6)
+ integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeJumpHere(tls, v, a1)
+ Xsqlite3VdbeJumpHere(tls, v, a1+1)
+ j4 = 0
+__316:
+ if !(j4 < int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol)) {
+ goto __318
+ }
+ Xsqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 620)), j4, r2+j4)
+ goto __317
+__317:
+ j4++
+ goto __316
+ goto __318
+__318:
+ ;
+__315:
+ ;
+__314:
+ ;
+ bStrict = libc.Bool32((*Table)(unsafe.Pointer(pTab9)).FtabFlags&U32(TF_Strict) != U32(0))
+ j4 = 0
+__319:
+ if !(j4 < int32((*Table)(unsafe.Pointer(pTab9)).FnCol)) {
+ goto __321
+ }
+ pCol1 = (*Table)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*24
+
+ if !(j4 == int32((*Table)(unsafe.Pointer(pTab9)).FiPKey)) {
+ goto __322
+ }
+ goto __320
+__322:
+ ;
+ if !(bStrict != 0) {
+ goto __323
+ }
+ doTypeCheck = libc.Bool32(int32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4) > COLTYPE_ANY)
+ goto __324
+__323:
+ doTypeCheck = libc.Bool32(int32((*Column)(unsafe.Pointer(pCol1)).Faffinity) > SQLITE_AFF_BLOB)
+__324:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0) == 0 && !(doTypeCheck != 0)) {
+ goto __325
+ }
+ goto __320
+__325:
+ ;
+ p4 = SQLITE_NULL
+ if !(int32((*Column)(unsafe.Pointer(pCol1)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __326
+ }
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 620)), j4, 3)
+ p11 = -1
+ p3 = 3
+ goto __327
+__326:
+ if !((*Column)(unsafe.Pointer(pCol1)).FiDflt != 0) {
+ goto __328
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0)
+ Xsqlite3ValueFromExpr(tls, db, Xsqlite3ColumnExpr(tls, pTab9, pCol1), (*Sqlite3)(unsafe.Pointer(db)).Fenc,
+ uint8((*Column)(unsafe.Pointer(pCol1)).Faffinity), bp+632)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 632)) != 0) {
+ goto __329
+ }
+ p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 632)))
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 632)))
+__329:
+ ;
+__328:
+ ;
+ p11 = *(*int32)(unsafe.Pointer(bp + 620))
+ if !!((*Table)(unsafe.Pointer(pTab9)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __330
+ }
+
+ p3 = int32(Xsqlite3TableColumnToIndex(tls, Xsqlite3PrimaryKeyIndex(tls, pTab9), int16(j4)))
+ goto __331
+__330:
+ p3 = int32(Xsqlite3TableColumnToStorage(tls, pTab9, int16(j4)))
+
+__331:
+ ;
+__327:
+ ;
+ labelError = Xsqlite3VdbeMakeLabel(tls, pParse)
+ labelOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if !(uint32(int32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) != 0) {
+ goto __332
+ }
+
+ jmp2 = Xsqlite3VdbeAddOp4Int(tls, v, OP_IsType, p11, labelOk, p3, p4)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(0x0f))
+
+ zErr1 = Xsqlite3MPrintf(tls, db, ts+18238, libc.VaList(bp+376, (*Table)(unsafe.Pointer(pTab9)).FzName,
+ (*Column)(unsafe.Pointer(pCol1)).FzCnName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr1, -6)
+ if !(doTypeCheck != 0) {
+ goto __333
+ }
+ Xsqlite3VdbeGoto(tls, v, labelError)
+ Xsqlite3VdbeJumpHere(tls, v, jmp2)
+ goto __334
+__333:
+ ;
+__334:
+ ;
+__332:
+ ;
+ if !(bStrict != 0 && doTypeCheck != 0) {
+ goto __335
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IsType, p11, labelOk, p3, p4)
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(aStdTypeMask[(int32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)-1)&0xf<<28>>28]))
+
+ zErr1 = Xsqlite3MPrintf(tls, db, ts+18258,
+ libc.VaList(bp+392, Xsqlite3StdType[(int32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)-1)&0xf<<28>>28],
+ (*Table)(unsafe.Pointer(pTab9)).FzName, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab9)).FaCol+uintptr(j4)*24)).FzCnName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr1, -6)
+ goto __336
+__335:
+ if !(!(bStrict != 0) && int32((*Column)(unsafe.Pointer(pCol1)).Faffinity) == SQLITE_AFF_TEXT) {
+ goto __337
+ }
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IsType, p11, labelOk, p3, p4)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(0x1c))
+
+ zErr1 = Xsqlite3MPrintf(tls, db, ts+18280,
+ libc.VaList(bp+416, (*Table)(unsafe.Pointer(pTab9)).FzName, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab9)).FaCol+uintptr(j4)*24)).FzCnName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr1, -6)
+ goto __338
+__337:
+ if !(!(bStrict != 0) && int32((*Column)(unsafe.Pointer(pCol1)).Faffinity) >= SQLITE_AFF_NUMERIC) {
+ goto __339
+ }
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IsType, p11, labelOk, p3, p4)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(0x1b))
+
+ if !(p11 >= 0) {
+ goto __340
+ }
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 620)), j4, 3)
+__340:
+ ;
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, 3, 1, 0, ts+18303, -1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IsType, -1, labelOk, 3, p4)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(0x1c))
+
+ zErr1 = Xsqlite3MPrintf(tls, db, ts+18305,
+ libc.VaList(bp+432, (*Table)(unsafe.Pointer(pTab9)).FzName, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab9)).FaCol+uintptr(j4)*24)).FzCnName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr1, -6)
+__339:
+ ;
+__338:
+ ;
+__336:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, labelError)
+ integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeResolveLabel(tls, v, labelOk)
+ goto __320
+__320:
+ j4++
+ goto __319
+ goto __321
+__321:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0)) {
+ goto __341
+ }
+ pCheck = Xsqlite3ExprListDup(tls, db, (*Table)(unsafe.Pointer(pTab9)).FpCheck, 0)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
+ goto __342
+ }
+ addrCkFault = Xsqlite3VdbeMakeLabel(tls, pParse)
+ addrCkOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = *(*int32)(unsafe.Pointer(bp + 620)) + 1
+ k3 = (*ExprList)(unsafe.Pointer(pCheck)).FnExpr - 1
+__343:
+ if !(k3 > 0) {
+ goto __345
+ }
+ Xsqlite3ExprIfFalse(tls, pParse, (*ExprList_item)(unsafe.Pointer(pCheck+8+uintptr(k3)*32)).FpExpr, addrCkFault, 0)
+ goto __344
+__344:
+ k3--
+ goto __343
+ goto __345
+__345:
+ ;
+ Xsqlite3ExprIfTrue(tls, pParse, (*ExprList_item)(unsafe.Pointer(pCheck+8)).FpExpr, addrCkOk,
+ SQLITE_JUMPIFNULL)
+ Xsqlite3VdbeResolveLabel(tls, v, addrCkFault)
+ (*Parse)(unsafe.Pointer(pParse)).FiSelfTab = 0
+ zErr2 = Xsqlite3MPrintf(tls, db, ts+18325,
+ libc.VaList(bp+448, (*Table)(unsafe.Pointer(pTab9)).FzName))
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, 3, 0, zErr2, -6)
+ integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeResolveLabel(tls, v, addrCkOk)
+__342:
+ ;
+ Xsqlite3ExprListDelete(tls, db, pCheck)
+__341:
+ ;
+ if !!(isQuick != 0) {
+ goto __346
+ }
+
+ j4 = 0
+ pIdx5 = (*Table)(unsafe.Pointer(pTab9)).FpIndex
+__347:
+ if !(pIdx5 != 0) {
+ goto __349
+ }
+ ckUniq = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if !(pPk1 == pIdx5) {
+ goto __350
+ }
+ goto __348
+__350:
+ ;
+ r1 = Xsqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 620)), 0, 0, bp+640,
+ pPrior, r1)
+ pPrior = pIdx5
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, 8+j4, 1)
+
+ jmp21 = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, *(*int32)(unsafe.Pointer(bp + 624))+j4, ckUniq, r1,
+ int32((*Index)(unsafe.Pointer(pIdx5)).FnColumn))
+ Xsqlite3VdbeLoadString(tls, v, 3, ts+18355)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 7, 3, 3)
+ Xsqlite3VdbeLoadString(tls, v, 4, ts+18360)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 4, 3, 3)
+ jmp5 = Xsqlite3VdbeLoadString(tls, v, 4, (*Index)(unsafe.Pointer(pIdx5)).FzName)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 4, 3, 3)
+ jmp4 = integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeJumpHere(tls, v, jmp21)
+
+ label6 = 0
+ kk = 0
+__351:
+ if !(kk < int32((*Index)(unsafe.Pointer(pIdx5)).FnKeyCol)) {
+ goto __353
+ }
+ if !(*(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))) {
+ goto __354
+ }
+ goto __352
+__354:
+ ;
+ if !(label6 == 0) {
+ goto __355
+ }
+ label6 = Xsqlite3VdbeMakeLabel(tls, pParse)
+__355:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, *(*int32)(unsafe.Pointer(bp + 624))+j4, kk, 3)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ne, 3, label6, r1+kk)
+ goto __352
+__352:
+ kk++
+ goto __351
+ goto __353
+__353:
+ ;
+ if !(label6 != 0) {
+ goto __356
+ }
+ jmp6 = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ Xsqlite3VdbeResolveLabel(tls, v, label6)
+ Xsqlite3VdbeLoadString(tls, v, 3, ts+18355)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 7, 3, 3)
+ Xsqlite3VdbeLoadString(tls, v, 4, ts+18381)
+ Xsqlite3VdbeGoto(tls, v, jmp5-1)
+ Xsqlite3VdbeJumpHere(tls, v, jmp6)
+__356:
+ ;
+ if !(int32((*Index)(unsafe.Pointer(pIdx5)).FonError) != OE_None) {
+ goto __357
+ }
+ uniqOk = Xsqlite3VdbeMakeLabel(tls, pParse)
+ kk = 0
+__358:
+ if !(kk < int32((*Index)(unsafe.Pointer(pIdx5)).FnKeyCol)) {
+ goto __360
+ }
+ iCol1 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2)))
+
+ if !(iCol1 >= 0 && uint32(int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*24 + 8))&0xf>>0)) != 0) {
+ goto __361
+ }
+ goto __359
+__361:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, r1+kk, uniqOk)
+
+ goto __359
+__359:
+ kk++
+ goto __358
+ goto __360
+__360:
+ ;
+ jmp61 = Xsqlite3VdbeAddOp1(tls, v, OP_Next, *(*int32)(unsafe.Pointer(bp + 624))+j4)
+ Xsqlite3VdbeGoto(tls, v, uniqOk)
+ Xsqlite3VdbeJumpHere(tls, v, jmp61)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxGT, *(*int32)(unsafe.Pointer(bp + 624))+j4, uniqOk, r1,
+ int32((*Index)(unsafe.Pointer(pIdx5)).FnKeyCol))
+ Xsqlite3VdbeLoadString(tls, v, 3, ts+18408)
+ Xsqlite3VdbeGoto(tls, v, jmp5)
+ Xsqlite3VdbeResolveLabel(tls, v, uniqOk)
+__357:
+ ;
+ Xsqlite3VdbeJumpHere(tls, v, jmp4)
+ Xsqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 640)))
+ goto __348
+__348:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __347
+ goto __349
+__349:
+ ;
+__346:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, *(*int32)(unsafe.Pointer(bp + 620)), loopTop)
+ Xsqlite3VdbeJumpHere(tls, v, loopTop-1)
+ if !!(isQuick != 0) {
+ goto __362
+ }
+ Xsqlite3VdbeLoadString(tls, v, 2, ts+18435)
+ j4 = 0
+ pIdx5 = (*Table)(unsafe.Pointer(pTab9)).FpIndex
+__363:
+ if !(pIdx5 != 0) {
+ goto __365
+ }
+ if !(pPk1 == pIdx5) {
+ goto __366
+ }
+ goto __364
+__366:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Count, *(*int32)(unsafe.Pointer(bp + 624))+j4, 3)
+ addr1 = Xsqlite3VdbeAddOp3(tls, v, OP_Eq, 8+j4, 0, 3)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL))
+ Xsqlite3VdbeLoadString(tls, v, 4, (*Index)(unsafe.Pointer(pIdx5)).FzName)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Concat, 4, 2, 3)
+ integrityCheckResultRow(tls, v)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ goto __364
+__364:
+ pIdx5 = (*Index)(unsafe.Pointer(pIdx5)).FpNext
+ j4++
+ goto __363
+ goto __365
+__365:
+ ;
+ if !(pPk1 != 0) {
+ goto __367
+ }
+ Xsqlite3ReleaseTempRange(tls, pParse, r2, int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol))
+__367:
+ ;
+__362:
+ ;
+ goto __297
+__297:
+ x2 = (*HashElem)(unsafe.Pointer(x2)).Fnext
+ goto __296
+ goto __298
+__298:
+ ;
+ goto __271
+__271:
+ i9++
+ goto __270
+ goto __272
+__272:
+ ;
+ aOp2 = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(endCode))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&endCode)), iLn5)
+ if !(aOp2 != 0) {
+ goto __368
+ }
+ (*VdbeOp)(unsafe.Pointer(aOp2)).Fp2 = 1 - *(*int32)(unsafe.Pointer(bp + 616))
+ (*VdbeOp)(unsafe.Pointer(aOp2 + 2*24)).Fp4type = int8(-1)
+ *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = ts + 18464
+ (*VdbeOp)(unsafe.Pointer(aOp2 + 5*24)).Fp4type = int8(-1)
+ *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = Xsqlite3ErrStr(tls, SQLITE_CORRUPT)
+__368:
+ ;
+ Xsqlite3VdbeChangeP3(tls, v, 0, Xsqlite3VdbeCurrentAddr(tls, v)-2)
+
+ goto __15
+
+__46:
+ if !!(zRight != 0) {
+ goto __369
+ }
+ if !(Xsqlite3ReadSchema(tls, pParse) != 0) {
+ goto __371
+ }
+ goto pragma_out
+__371:
+ ;
+ returnSingleText(tls, v, encnames1[(*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fenc].FzName)
+ goto __370
+__369:
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_EncodingFixed) == U32(0)) {
+ goto __372
+ }
+ pEnc = uintptr(unsafe.Pointer(&encnames1))
+__373:
+ if !((*EncName)(unsafe.Pointer(pEnc)).FzName != 0) {
+ goto __375
+ }
+ if !(0 == Xsqlite3StrICmp(tls, zRight, (*EncName)(unsafe.Pointer(pEnc)).FzName)) {
+ goto __376
+ }
+ if (*EncName)(unsafe.Pointer(pEnc)).Fenc != 0 {
+ enc = (*EncName)(unsafe.Pointer(pEnc)).Fenc
+ } else {
+ enc = uint8(SQLITE_UTF16LE)
+ }
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).Fenc = enc
+ Xsqlite3SetTextEncoding(tls, db, enc)
+ goto __375
+__376:
+ ;
+ goto __374
+__374:
+ pEnc += 16
+ goto __373
+ goto __375
+__375:
+ ;
+ if !!(int32((*EncName)(unsafe.Pointer(pEnc)).FzName) != 0) {
+ goto __377
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+18467, libc.VaList(bp+456, zRight))
+__377:
+ ;
+__372:
+ ;
+__370:
+ ;
+ goto __15
+
+__47:
+ iCookie = int32((*PragmaName)(unsafe.Pointer(pPragma)).FiArg)
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+ if !(zRight != 0 && int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_ReadOnly == 0) {
+ goto __378
+ }
+
+ aOp3 = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(setCookie))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&setCookie)), 0)
+ if !(0 != 0) {
+ goto __380
+ }
+ goto __15
+__380:
+ ;
+ (*VdbeOp)(unsafe.Pointer(aOp3)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp3 + 1*24)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp3 + 1*24)).Fp2 = iCookie
+ (*VdbeOp)(unsafe.Pointer(aOp3 + 1*24)).Fp3 = Xsqlite3Atoi(tls, zRight)
+ (*VdbeOp)(unsafe.Pointer(aOp3 + 1*24)).Fp5 = U16(1)
+ if !(iCookie == BTREE_SCHEMA_VERSION && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_Defensive) != uint64(0)) {
+ goto __381
+ }
+
+ (*VdbeOp)(unsafe.Pointer(aOp3 + 1*24)).Fopcode = U8(OP_Noop)
+__381:
+ ;
+ goto __379
+__378:
+ ;
+ aOp4 = Xsqlite3VdbeAddOpList(tls, v, int32(uint64(unsafe.Sizeof(readCookie))/uint64(unsafe.Sizeof(VdbeOpList{}))), uintptr(unsafe.Pointer(&readCookie)), 0)
+ if !(0 != 0) {
+ goto __382
+ }
+ goto __15
+__382:
+ ;
+ (*VdbeOp)(unsafe.Pointer(aOp4)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp4 + 1*24)).Fp1 = iDb
+ (*VdbeOp)(unsafe.Pointer(aOp4 + 1*24)).Fp3 = iCookie
+ Xsqlite3VdbeReusable(tls, v)
+__379:
+ ;
+ goto __15
+
+__48:
+ i10 = 0
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 1
+__383:
+ if !(libc.AssignUintptr(&zOpt, Xsqlite3_compileoption_get(tls, libc.PostIncInt32(&i10, 1))) != uintptr(0)) {
+ goto __384
+ }
+ Xsqlite3VdbeLoadString(tls, v, 1, zOpt)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, 1)
+ goto __383
+__384:
+ ;
+ Xsqlite3VdbeReusable(tls, v)
+
+ goto __15
+
+__49:
+ iBt = func() int32 {
+ if (*Token)(unsafe.Pointer(pId2)).Fz != 0 {
+ return iDb
+ }
+ return SQLITE_MAX_ATTACHED + 2
+ }()
+ eMode2 = SQLITE_CHECKPOINT_PASSIVE
+ if !(zRight != 0) {
+ goto __385
+ }
+ if !(Xsqlite3StrICmp(tls, zRight, ts+17767) == 0) {
+ goto __386
+ }
+ eMode2 = SQLITE_CHECKPOINT_FULL
+ goto __387
+__386:
+ if !(Xsqlite3StrICmp(tls, zRight, ts+18492) == 0) {
+ goto __388
+ }
+ eMode2 = SQLITE_CHECKPOINT_RESTART
+ goto __389
+__388:
+ if !(Xsqlite3StrICmp(tls, zRight, ts+17920) == 0) {
+ goto __390
+ }
+ eMode2 = SQLITE_CHECKPOINT_TRUNCATE
+__390:
+ ;
+__389:
+ ;
+__387:
+ ;
+__385:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FnMem = 3
+ Xsqlite3VdbeAddOp3(tls, v, OP_Checkpoint, iBt, eMode2, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, 1, 3)
+
+ goto __15
+
+__50:
+ if !(zRight != 0) {
+ goto __391
+ }
+ Xsqlite3_wal_autocheckpoint(tls, db, Xsqlite3Atoi(tls, zRight))
+__391:
+ ;
+ returnSingleInt(tls, v,
+ func() int64 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FxWalCallback == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32
+ }{Xsqlite3WalDefaultHook})) {
+ return int64(int32((*Sqlite3)(unsafe.Pointer(db)).FpWalArg))
+ }
+ return int64(0)
+ }())
+
+ goto __15
+
+__51:
+ Xsqlite3_db_release_memory(tls, db)
+ goto __15
+
+__52:
+ if !(zRight != 0) {
+ goto __392
+ }
+ opMask = U32(Xsqlite3Atoi(tls, zRight))
+ if !(opMask&U32(0x02) == U32(0)) {
+ goto __394
+ }
+ goto __15
+__394:
+ ;
+ goto __393
+__392:
+ opMask = U32(0xfffe)
+__393:
+ ;
+ iTabCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ iDbLast = func() int32 {
+ if zDb != 0 {
+ return iDb
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+ }()
+__395:
+ if !(iDb <= iDbLast) {
+ goto __397
+ }
+ if !(iDb == 1) {
+ goto __398
+ }
+ goto __396
+__398:
+ ;
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ pSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ k4 = (*Hash)(unsafe.Pointer(pSchema + 8)).Ffirst
+__399:
+ if !(k4 != 0) {
+ goto __401
+ }
+ pTab10 = (*HashElem)(unsafe.Pointer(k4)).Fdata
+
+ if !((*Table)(unsafe.Pointer(pTab10)).FtabFlags&U32(TF_StatsUsed) == U32(0)) {
+ goto __402
+ }
+ goto __400
+__402:
+ ;
+ szThreshold = LogEst(int32((*Table)(unsafe.Pointer(pTab10)).FnRowLogEst) + 46)
+ pIdx6 = (*Table)(unsafe.Pointer(pTab10)).FpIndex
+__403:
+ if !(pIdx6 != 0) {
+ goto __405
+ }
+ if !!(int32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7) != 0) {
+ goto __406
+ }
+ szThreshold = int16(0)
+ goto __405
+__406:
+ ;
+ goto __404
+__404:
+ pIdx6 = (*Index)(unsafe.Pointer(pIdx6)).FpNext
+ goto __403
+ goto __405
+__405:
+ ;
+ if !(szThreshold != 0) {
+ goto __407
+ }
+ Xsqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab10, OP_OpenRead)
+ Xsqlite3VdbeAddOp3(tls, v, OP_IfSmaller, iTabCur,
+ int32(U32(Xsqlite3VdbeCurrentAddr(tls, v)+2)+opMask&U32(1)), int32(szThreshold))
+
+__407:
+ ;
+ zSubSql = Xsqlite3MPrintf(tls, db, ts+18500,
+ libc.VaList(bp+464, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, (*Table)(unsafe.Pointer(pTab10)).FzName))
+ if !(opMask&U32(0x01) != 0) {
+ goto __408
+ }
+ r11 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, r11, 0, zSubSql, -6)
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, r11, 1)
+ goto __409
+__408:
+ Xsqlite3VdbeAddOp4(tls, v, OP_SqlExec, 0, 0, 0, zSubSql, -6)
+__409:
+ ;
+ goto __400
+__400:
+ k4 = (*HashElem)(unsafe.Pointer(k4)).Fnext
+ goto __399
+ goto __401
+__401:
+ ;
+ goto __396
+__396:
+ iDb++
+ goto __395
+ goto __397
+__397:
+ ;
+ Xsqlite3VdbeAddOp0(tls, v, OP_Expire)
+ goto __15
+
+__53:
+ ;
+ if !(zRight != 0) {
+ goto __410
+ }
+ Xsqlite3_busy_timeout(tls, db, Xsqlite3Atoi(tls, zRight))
+__410:
+ ;
+ returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).FbusyTimeout))
+ goto __15
+
+__54:
+ if !(zRight != 0 && Xsqlite3DecOrHexToI64(tls, zRight, bp+648) == SQLITE_OK) {
+ goto __411
+ }
+ Xsqlite3_soft_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 648)))
+__411:
+ ;
+ returnSingleInt(tls, v, Xsqlite3_soft_heap_limit64(tls, int64(-1)))
+ goto __15
+
+__55:
+ if !(zRight != 0 && Xsqlite3DecOrHexToI64(tls, zRight, bp+656) == SQLITE_OK) {
+ goto __412
+ }
+ iPrior = Xsqlite3_hard_heap_limit64(tls, int64(-1))
+ if !(*(*Sqlite3_int64)(unsafe.Pointer(bp + 656)) > int64(0) && (iPrior == int64(0) || iPrior > *(*Sqlite3_int64)(unsafe.Pointer(bp + 656)))) {
+ goto __413
+ }
+ Xsqlite3_hard_heap_limit64(tls, *(*Sqlite3_int64)(unsafe.Pointer(bp + 656)))
+__413:
+ ;
+__412:
+ ;
+ returnSingleInt(tls, v, Xsqlite3_hard_heap_limit64(tls, int64(-1)))
+ goto __15
+
+__56:
+ if !(zRight != 0 &&
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+664) == SQLITE_OK &&
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 664)) >= int64(0)) {
+ goto __414
+ }
+ Xsqlite3_limit(tls, db, SQLITE_LIMIT_WORKER_THREADS, int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 664))&int64(0x7fffffff)))
+__414:
+ ;
+ returnSingleInt(tls, v, int64(Xsqlite3_limit(tls, db, SQLITE_LIMIT_WORKER_THREADS, -1)))
+ goto __15
+
+__57:
+ if !(zRight != 0 &&
+ Xsqlite3DecOrHexToI64(tls, zRight, bp+672) == SQLITE_OK &&
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 672)) >= int64(0)) {
+ goto __415
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 672)) & int64(0x7fffffff))
+__415:
+ ;
+ returnSingleInt(tls, v, int64((*Sqlite3)(unsafe.Pointer(db)).FnAnalysisLimit))
+ goto __15
+
+__15:
+ ;
+ if !(int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_NoColumns1 != 0 && zRight != 0) {
+ goto __416
+ }
+
+__416:
+ ;
+pragma_out:
+ Xsqlite3DbFree(tls, db, zLeft)
+ Xsqlite3DbFree(tls, db, zRight)
+}
+
+type EncName = struct {
+ FzName uintptr
+ Fenc U8
+ F__ccgo_pad1 [7]byte
+}
+
+var iLn3 int32 = 0
+var getCacheSize = [9]VdbeOpList{
+ {Fopcode: U8(OP_Transaction)},
+ {Fopcode: U8(OP_ReadCookie), Fp2: int8(1), Fp3: int8(BTREE_DEFAULT_CACHE_SIZE)},
+ {Fopcode: U8(OP_IfPos), Fp1: int8(1), Fp2: int8(8)},
+ {Fopcode: U8(OP_Integer), Fp2: int8(2)},
+ {Fopcode: U8(OP_Subtract), Fp1: int8(1), Fp2: int8(2), Fp3: int8(1)},
+ {Fopcode: U8(OP_IfPos), Fp1: int8(1), Fp2: int8(8)},
+ {Fopcode: U8(OP_Integer), Fp2: int8(1)},
+ {Fopcode: U8(OP_Noop)},
+ {Fopcode: U8(OP_ResultRow), Fp1: int8(1), Fp2: int8(1)},
+}
+var iLn4 int32 = 0
+var setMeta6 = [5]VdbeOpList{
+ {Fopcode: U8(OP_Transaction), Fp2: int8(1)},
+ {Fopcode: U8(OP_ReadCookie), Fp2: int8(1), Fp3: int8(BTREE_LARGEST_ROOT_PAGE)},
+ {Fopcode: U8(OP_If), Fp1: int8(1)},
+ {Fopcode: U8(OP_Halt), Fp2: int8(OE_Abort)},
+ {Fopcode: U8(OP_SetCookie), Fp2: int8(BTREE_INCR_VACUUM)},
+}
+var aStdTypeMask = [6]uint8{
+ uint8(0x1f),
+ uint8(0x18),
+ uint8(0x11),
+ uint8(0x11),
+ uint8(0x13),
+ uint8(0x14),
+}
+var iLn5 int32 = 0
+var endCode = [7]VdbeOpList{
+ {Fopcode: U8(OP_AddImm), Fp1: int8(1)},
+ {Fopcode: U8(OP_IfNotZero), Fp1: int8(1), Fp2: int8(4)},
+ {Fopcode: U8(OP_String8), Fp2: int8(3)},
+ {Fopcode: U8(OP_ResultRow), Fp1: int8(3), Fp2: int8(1)},
+ {Fopcode: U8(OP_Halt)},
+ {Fopcode: U8(OP_String8), Fp2: int8(3)},
+ {Fopcode: U8(OP_Goto), Fp2: int8(3)},
+}
+var encnames1 = [9]EncName{
+ {FzName: ts + 18518, Fenc: U8(SQLITE_UTF8)},
+ {FzName: ts + 18523, Fenc: U8(SQLITE_UTF8)},
+ {FzName: ts + 18529, Fenc: U8(SQLITE_UTF16LE)},
+ {FzName: ts + 18538, Fenc: U8(SQLITE_UTF16BE)},
+ {FzName: ts + 18547, Fenc: U8(SQLITE_UTF16LE)},
+ {FzName: ts + 18555, Fenc: U8(SQLITE_UTF16BE)},
+ {FzName: ts + 18563},
+ {FzName: ts + 18570},
+ {},
+}
+var setCookie = [2]VdbeOpList{
+ {Fopcode: U8(OP_Transaction), Fp2: int8(1)},
+ {Fopcode: U8(OP_SetCookie)},
+}
+var readCookie = [3]VdbeOpList{
+ {Fopcode: U8(OP_Transaction)},
+ {Fopcode: U8(OP_ReadCookie), Fp2: int8(1)},
+ {Fopcode: U8(OP_ResultRow), Fp1: int8(1), Fp2: int8(1)},
+}
+
+// ****************************************************************************
+//
+// Implementation of an eponymous virtual table that runs a pragma.
+type PragmaVtab1 = struct {
+ Fbase Sqlite3_vtab
+ Fdb uintptr
+ FpName uintptr
+ FnHidden U8
+ FiHidden U8
+ F__ccgo_pad1 [6]byte
+}
+
+// ****************************************************************************
+//
+// Implementation of an eponymous virtual table that runs a pragma.
+type PragmaVtab = PragmaVtab1
+type PragmaVtabCursor1 = struct {
+ Fbase Sqlite3_vtab_cursor
+ FpPragma uintptr
+ FiRowid Sqlite_int64
+ FazArg [2]uintptr
+}
+
+type PragmaVtabCursor = PragmaVtabCursor1
+
+func pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(264)
+ defer tls.Free(264)
+
+ var pPragma uintptr = pAux
+ var pTab uintptr = uintptr(0)
+ var rc int32
+ var i int32
+ var j int32
+ var cSep int8 = int8('(')
+
+ _ = argc
+ _ = argv
+ Xsqlite3StrAccumInit(tls, bp+32, uintptr(0), bp+64, int32(unsafe.Sizeof([200]int8{})), 0)
+ Xsqlite3_str_appendall(tls, bp+32, ts+18576)
+ i = 0
+ j = int32((*PragmaName)(unsafe.Pointer(pPragma)).FiPragCName)
+__1:
+ if !(i < int32((*PragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) {
+ goto __3
+ }
+ {
+ Xsqlite3_str_appendf(tls, bp+32, ts+18591, libc.VaList(bp, int32(cSep), pragCName[j]))
+ cSep = int8(',')
+
+ }
+ goto __2
+__2:
+ i++
+ j++
+ goto __1
+ goto __3
+__3:
+ ;
+ if i == 0 {
+ Xsqlite3_str_appendf(tls, bp+32, ts+18598, libc.VaList(bp+16, (*PragmaName)(unsafe.Pointer(pPragma)).FzName))
+ i++
+ }
+ j = 0
+ if int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&PragFlg_Result1 != 0 {
+ Xsqlite3_str_appendall(tls, bp+32, ts+18604)
+ j++
+ }
+ if int32((*PragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(PragFlg_SchemaOpt|PragFlg_SchemaReq) != 0 {
+ Xsqlite3_str_appendall(tls, bp+32, ts+18616)
+ j++
+ }
+ Xsqlite3_str_append(tls, bp+32, ts+5360, 1)
+ Xsqlite3StrAccumFinish(tls, bp+32)
+
+ rc = Xsqlite3_declare_vtab(tls, db, bp+64)
+ if rc == SQLITE_OK {
+ pTab = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(PragmaVtab{})))
+ if pTab == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pTab, 0, uint64(unsafe.Sizeof(PragmaVtab{})), libc.X__builtin_object_size(tls, pTab, 0))
+ (*PragmaVtab)(unsafe.Pointer(pTab)).FpName = pPragma
+ (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb = db
+ (*PragmaVtab)(unsafe.Pointer(pTab)).FiHidden = U8(i)
+ (*PragmaVtab)(unsafe.Pointer(pTab)).FnHidden = U8(j)
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+24, Xsqlite3_errmsg(tls, db)))
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab
+ return rc
+}
+
+func pragmaVtabDisconnect(tls *libc.TLS, pVtab uintptr) int32 {
+ var pTab uintptr = pVtab
+ Xsqlite3_free(tls, pTab)
+ return SQLITE_OK
+}
+
+func pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pTab uintptr = tab
+ var pConstraint uintptr
+ var i int32
+ var j int32
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(1)
+ if int32((*PragmaVtab)(unsafe.Pointer(pTab)).FnHidden) == 0 {
+ return SQLITE_OK
+ }
+ pConstraint = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 1*4)) = 0
+ i = 0
+__1:
+ if !(i < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
+ goto __3
+ }
+ {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 {
+ goto __2
+ }
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != SQLITE_INDEX_CONSTRAINT_EQ {
+ goto __2
+ }
+ if (*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*PragmaVtab)(unsafe.Pointer(pTab)).FiHidden) {
+ goto __2
+ }
+ j = (*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*PragmaVtab)(unsafe.Pointer(pTab)).FiHidden)
+
+ *(*int32)(unsafe.Pointer(bp + uintptr(j)*4)) = i + 1
+
+ }
+ goto __2
+__2:
+ i++
+ pConstraint += 12
+ goto __1
+ goto __3
+__3:
+ ;
+ if *(*int32)(unsafe.Pointer(bp)) == 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(2147483647)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(2147483647)
+ return SQLITE_OK
+ }
+ j = *(*int32)(unsafe.Pointer(bp)) - 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8)).FargvIndex = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8)).Fomit = uint8(1)
+ if *(*int32)(unsafe.Pointer(bp + 1*4)) == 0 {
+ return SQLITE_OK
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(20)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20)
+ j = *(*int32)(unsafe.Pointer(bp + 1*4)) - 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8)).FargvIndex = 2
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8)).Fomit = uint8(1)
+ return SQLITE_OK
+}
+
+func pragmaVtabOpen(tls *libc.TLS, pVtab uintptr, ppCursor uintptr) int32 {
+ var pCsr uintptr
+ pCsr = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(PragmaVtabCursor{})))
+ if pCsr == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pCsr, 0, uint64(unsafe.Sizeof(PragmaVtabCursor{})), libc.X__builtin_object_size(tls, pCsr, 0))
+ (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab = pVtab
+ *(*uintptr)(unsafe.Pointer(ppCursor)) = pCsr
+ return SQLITE_OK
+}
+
+func pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) {
+ var i int32
+ Xsqlite3_finalize(tls, (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma)
+ (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0)
+ for i = 0; i < int32(uint64(unsafe.Sizeof([2]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))); i++ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(i)*8)) = uintptr(0)
+ }
+}
+
+func pragmaVtabClose(tls *libc.TLS, cur uintptr) int32 {
+ var pCsr uintptr = cur
+ pragmaVtabCursorClear(tls, pCsr)
+ Xsqlite3_free(tls, pCsr)
+ return SQLITE_OK
+}
+
+func pragmaVtabNext(tls *libc.TLS, pVtabCursor uintptr) int32 {
+ var pCsr uintptr = pVtabCursor
+ var rc int32 = SQLITE_OK
+
+ (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid++
+
+ if SQLITE_ROW != Xsqlite3_step(tls, (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) {
+ rc = Xsqlite3_finalize(tls, (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma)
+ (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0)
+ pragmaVtabCursorClear(tls, pCsr)
+ }
+ return rc
+}
+
+func pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pCsr uintptr = pVtabCursor
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVtabCursor)).FpVtab
+ var rc int32
+ var i int32
+ var j int32
+
+ var zSql uintptr
+
+ _ = idxNum
+ _ = idxStr
+ pragmaVtabCursorClear(tls, pCsr)
+ if int32((*PragmaName)(unsafe.Pointer((*PragmaVtab)(unsafe.Pointer(pTab)).FpName)).FmPragFlg)&PragFlg_Result1 != 0 {
+ j = 0
+ } else {
+ j = 1
+ }
+ i = 0
+__1:
+ if !(i < argc) {
+ goto __3
+ }
+ {
+ var zText uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+
+ if zText != 0 {
+ *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, zText))
+ if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ j++
+ goto __1
+ goto __3
+__3:
+ ;
+ Xsqlite3StrAccumInit(tls, bp+32, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*PragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4)))
+ Xsqlite3_str_appendall(tls, bp+32, ts+18631)
+ if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 {
+ Xsqlite3_str_appendf(tls, bp+32, ts+18639, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8))))
+ }
+ Xsqlite3_str_appendall(tls, bp+32, (*PragmaName)(unsafe.Pointer((*PragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName)
+ if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 {
+ Xsqlite3_str_appendf(tls, bp+32, ts+18643, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pCsr + 24))))
+ }
+ zSql = Xsqlite3StrAccumFinish(tls, bp+32)
+ if zSql == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ rc = Xsqlite3_prepare_v2(tls, (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -1, pCsr+8, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+ if rc != SQLITE_OK {
+ (*PragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+24, Xsqlite3_errmsg(tls, (*PragmaVtab)(unsafe.Pointer(pTab)).Fdb)))
+ return rc
+ }
+ return pragmaVtabNext(tls, pVtabCursor)
+}
+
+func pragmaVtabEof(tls *libc.TLS, pVtabCursor uintptr) int32 {
+ var pCsr uintptr = pVtabCursor
+ return libc.Bool32((*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma == uintptr(0))
+}
+
+func pragmaVtabColumn(tls *libc.TLS, pVtabCursor uintptr, ctx uintptr, i int32) int32 {
+ var pCsr uintptr = pVtabCursor
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVtabCursor)).FpVtab
+ if i < int32((*PragmaVtab)(unsafe.Pointer(pTab)).FiHidden) {
+ Xsqlite3_result_value(tls, ctx, Xsqlite3_column_value(tls, (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma, i))
+ } else {
+ Xsqlite3_result_text(tls, ctx, *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(i-int32((*PragmaVtab)(unsafe.Pointer(pTab)).FiHidden))*8)), -1, libc.UintptrFromInt32(-1))
+ }
+ return SQLITE_OK
+}
+
+func pragmaVtabRowid(tls *libc.TLS, pVtabCursor uintptr, p uintptr) int32 {
+ var pCsr uintptr = pVtabCursor
+ *(*Sqlite_int64)(unsafe.Pointer(p)) = (*PragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid
+ return SQLITE_OK
+}
+
+var pragmaVtabModule = Sqlite3_module{
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+}
+
+// Check to see if zTabName is really the name of a pragma. If it is,
+// then register an eponymous virtual table for that pragma and return
+// a pointer to the Module object for the new virtual table.
+func Xsqlite3PragmaVtabRegister(tls *libc.TLS, db uintptr, zName uintptr) uintptr {
+ var pName uintptr
+
+ pName = pragmaLocate(tls, zName+uintptr(7))
+ if pName == uintptr(0) {
+ return uintptr(0)
+ }
+ if int32((*PragmaName)(unsafe.Pointer(pName)).FmPragFlg)&(PragFlg_Result0|PragFlg_Result1) == 0 {
+ return uintptr(0)
+ }
+
+ return Xsqlite3VtabCreateModule(tls, db, zName, uintptr(unsafe.Pointer(&pragmaVtabModule)), pName, uintptr(0))
+}
+
+func corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var db uintptr = (*InitData)(unsafe.Pointer(pData)).Fdb
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*InitData)(unsafe.Pointer(pData)).Frc = SQLITE_NOMEM
+ } else if *(*uintptr)(unsafe.Pointer((*InitData)(unsafe.Pointer(pData)).FpzErrMsg)) != uintptr(0) {
+ } else if (*InitData)(unsafe.Pointer(pData)).FmInitFlags&U32(INITFLAG_AlterMask) != 0 {
+ *(*uintptr)(unsafe.Pointer((*InitData)(unsafe.Pointer(pData)).FpzErrMsg)) = Xsqlite3MPrintf(tls, db,
+ ts+18647, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)),
+ azAlterType[(*InitData)(unsafe.Pointer(pData)).FmInitFlags&U32(INITFLAG_AlterMask)-U32(1)],
+ zExtra))
+ (*InitData)(unsafe.Pointer(pData)).Frc = SQLITE_ERROR
+ } else if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 {
+ (*InitData)(unsafe.Pointer(pData)).Frc = Xsqlite3CorruptError(tls, 137196)
+ } else {
+ var z uintptr
+ var zObj uintptr
+ if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 {
+ zObj = *(*uintptr)(unsafe.Pointer(azObj + 1*8))
+ } else {
+ zObj = ts + 5411
+ }
+ z = Xsqlite3MPrintf(tls, db, ts+18675, libc.VaList(bp+32, zObj))
+ if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 {
+ z = Xsqlite3MPrintf(tls, db, ts+18706, libc.VaList(bp+40, z, zExtra))
+ }
+ *(*uintptr)(unsafe.Pointer((*InitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z
+ (*InitData)(unsafe.Pointer(pData)).Frc = Xsqlite3CorruptError(tls, 137203)
+ }
+}
+
+var azAlterType = [3]uintptr{
+ ts + 18714,
+ ts + 18721,
+ ts + 18733,
+}
+
+// Check to see if any sibling index (another index on the same table)
+// of pIndex has the same root page number, and if it does, return true.
+// This would indicate a corrupt schema.
+func Xsqlite3IndexHasDuplicateRootPage(tls *libc.TLS, pIndex uintptr) int32 {
+ var p uintptr
+ for p = (*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FpIndex; p != 0; p = (*Index)(unsafe.Pointer(p)).FpNext {
+ if (*Index)(unsafe.Pointer(p)).Ftnum == (*Index)(unsafe.Pointer(pIndex)).Ftnum && p != pIndex {
+ return 1
+ }
+ }
+ return 0
+}
+
+// This is the callback routine for the code that initializes the
+// database. See sqlite3Init() below for additional information.
+// This routine is also called from the OP_ParseSchema opcode of the VDBE.
+//
+// Each callback contains the following information:
+//
+// argv[0] = type of object: "table", "index", "trigger", or "view".
+// argv[1] = name of thing being created
+// argv[2] = associated table if an index or trigger
+// argv[3] = root page number for table or index. 0 for trigger or view.
+// argv[4] = SQL text for the CREATE statement.
+func Xsqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr, NotUsed uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pData uintptr = pInit
+ var db uintptr = (*InitData)(unsafe.Pointer(pData)).Fdb
+ var iDb int32 = (*InitData)(unsafe.Pointer(pData)).FiDb
+
+ _ = NotUsed
+ _ = argc
+
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_EncodingFixed)
+ if argv == uintptr(0) {
+ return 0
+ }
+ (*InitData)(unsafe.Pointer(pData)).FnInitRow++
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ corruptSchema(tls, pData, argv, uintptr(0))
+ return 1
+ }
+
+ if *(*uintptr)(unsafe.Pointer(argv + 3*8)) == uintptr(0) {
+ corruptSchema(tls, pData, argv, uintptr(0))
+ } else if *(*uintptr)(unsafe.Pointer(argv + 4*8)) != 0 &&
+ 'c' == int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + 4*8)))))]) &&
+ 'r' == int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + 4*8)) + 1)))]) {
+ var rc int32
+ var saved_iDb U8 = (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb
+
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(iDb)
+ if Xsqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 ||
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum > (*InitData)(unsafe.Pointer(pData)).FmxPage && (*InitData)(unsafe.Pointer(pData)).FmxPage > Pgno(0) {
+ if Xsqlite3Config.FbExtraSchemaChecks != 0 {
+ corruptSchema(tls, pData, argv, ts+14543)
+ }
+ }
+ libc.SetBitFieldPtr8Uint32(db+192+8, uint32(0), 0, 0x1)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit = argv
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ sqlite3Prepare(tls, db, *(*uintptr)(unsafe.Pointer(argv + 4*8)), -1, uint32(0), uintptr(0), bp, uintptr(0))
+ rc = (*Sqlite3)(unsafe.Pointer(db)).FerrCode
+
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = saved_iDb
+
+ if SQLITE_OK != rc {
+ if uint32(int32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x1>>0)) != 0 {
+ } else {
+ if rc > (*InitData)(unsafe.Pointer(pData)).Frc {
+ (*InitData)(unsafe.Pointer(pData)).Frc = rc
+ }
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ } else if rc != SQLITE_INTERRUPT && rc&0xFF != SQLITE_LOCKED {
+ corruptSchema(tls, pData, argv, Xsqlite3_errmsg(tls, db))
+ }
+ }
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit = uintptr(unsafe.Pointer(&Xsqlite3StdType))
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ } else if *(*uintptr)(unsafe.Pointer(argv + 1*8)) == uintptr(0) || *(*uintptr)(unsafe.Pointer(argv + 4*8)) != uintptr(0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + 4*8))))) != 0 {
+ corruptSchema(tls, pData, argv, uintptr(0))
+ } else {
+ var pIndex uintptr
+ pIndex = Xsqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+ if pIndex == uintptr(0) {
+ corruptSchema(tls, pData, argv, ts+18744)
+ } else if Xsqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 ||
+ (*Index)(unsafe.Pointer(pIndex)).Ftnum < Pgno(2) ||
+ (*Index)(unsafe.Pointer(pIndex)).Ftnum > (*InitData)(unsafe.Pointer(pData)).FmxPage ||
+ Xsqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 {
+ if Xsqlite3Config.FbExtraSchemaChecks != 0 {
+ corruptSchema(tls, pData, argv, ts+14543)
+ }
+ }
+ }
+ return 0
+}
+
+// Attempt to read the database schema and initialize internal
+// data structures for a single database file. The index of the
+// database file is given by iDb. iDb==0 is used for the main
+// database. iDb==1 should never be used. iDb>=2 is used for
+// auxiliary databases. Return one of the SQLITE_ error codes to
+// indicate success or failure.
+func Xsqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFlags U32) int32 {
+ bp := tls.Alloc(124)
+ defer tls.Free(124)
+
+ var rc int32
+ var i int32
+ var size int32
+ var pDb uintptr
+
+ var zSchemaTabName uintptr
+ var openedTransaction int32
+ var mask int32
+ var encoding U8
+ var xAuth Sqlite3_xauth
+ var zSql uintptr
+ openedTransaction = 0
+ mask = int32((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_EncodingFixed) | libc.Uint32FromInt32(libc.CplInt32(DBFLAG_EncodingFixed)))
+
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(1)
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = ts + 9279
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 1*8)) = libc.AssignUintptr(&zSchemaTabName, func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }())
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 2*8)) = *(*uintptr)(unsafe.Pointer(bp + 16 + 1*8))
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 3*8)) = ts + 8341
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 4*8)) = ts + 18757
+ *(*uintptr)(unsafe.Pointer(bp + 16 + 5*8)) = uintptr(0)
+ (*InitData)(unsafe.Pointer(bp + 64)).Fdb = db
+ (*InitData)(unsafe.Pointer(bp + 64)).FiDb = iDb
+ (*InitData)(unsafe.Pointer(bp + 64)).Frc = SQLITE_OK
+ (*InitData)(unsafe.Pointer(bp + 64)).FpzErrMsg = pzErrMsg
+ (*InitData)(unsafe.Pointer(bp + 64)).FmInitFlags = mFlags
+ (*InitData)(unsafe.Pointer(bp + 64)).FnInitRow = U32(0)
+ (*InitData)(unsafe.Pointer(bp + 64)).FmxPage = Pgno(0)
+ Xsqlite3InitCallback(tls, bp+64, 5, bp+16, uintptr(0))
+ *(*U32)(unsafe.Pointer(db + 44)) &= U32(mask)
+ if !((*InitData)(unsafe.Pointer(bp+64)).Frc != 0) {
+ goto __1
+ }
+ rc = (*InitData)(unsafe.Pointer(bp + 64)).Frc
+ goto error_out
+__1:
+ ;
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+ if !((*Db)(unsafe.Pointer(pDb)).FpBt == uintptr(0)) {
+ goto __2
+ }
+
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema + 114)) |= U16(DB_SchemaLoaded)
+ rc = SQLITE_OK
+ goto error_out
+__2:
+ ;
+ Xsqlite3BtreeEnter(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ if !(Xsqlite3BtreeTxnState(tls, (*Db)(unsafe.Pointer(pDb)).FpBt) == SQLITE_TXN_NONE) {
+ goto __3
+ }
+ rc = Xsqlite3BtreeBeginTrans(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, 0, uintptr(0))
+ if !(rc != SQLITE_OK) {
+ goto __4
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db, Xsqlite3ErrStr(tls, rc))
+ goto initone_error_out
+__4:
+ ;
+ openedTransaction = 1
+__3:
+ ;
+ i = 0
+__5:
+ if !(i < int32(uint64(unsafe.Sizeof([5]int32{}))/uint64(unsafe.Sizeof(int32(0))))) {
+ goto __7
+ }
+ Xsqlite3BtreeGetMeta(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, i+1, bp+104+uintptr(i)*4)
+ goto __6
+__6:
+ i++
+ goto __5
+ goto __7
+__7:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ResetDatabase) != uint64(0)) {
+ goto __8
+ }
+ libc.X__builtin___memset_chk(tls, bp+104, 0, uint64(unsafe.Sizeof([5]int32{})), libc.X__builtin_object_size(tls, bp+104, 0))
+__8:
+ ;
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fschema_cookie = *(*int32)(unsafe.Pointer(bp + 104))
+
+ if !(*(*int32)(unsafe.Pointer(bp + 104 + 4*4)) != 0) {
+ goto __9
+ }
+ if !(iDb == 0 && (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_EncodingFixed) == U32(0)) {
+ goto __10
+ }
+
+ encoding = U8(int32(U8(*(*int32)(unsafe.Pointer(bp + 104 + 4*4)))) & 3)
+ if !(int32(encoding) == 0) {
+ goto __12
+ }
+ encoding = U8(SQLITE_UTF8)
+__12:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive > 0 && int32(encoding) != int32((*Sqlite3)(unsafe.Pointer(db)).Fenc)) {
+ goto __13
+ }
+ rc = SQLITE_LOCKED
+ goto initone_error_out
+ goto __14
+__13:
+ Xsqlite3SetTextEncoding(tls, db, encoding)
+__14:
+ ;
+ goto __11
+__10:
+ if !(*(*int32)(unsafe.Pointer(bp + 104 + 4*4))&3 != int32((*Sqlite3)(unsafe.Pointer(db)).Fenc)) {
+ goto __15
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db,
+ ts+12178)
+ rc = SQLITE_ERROR
+ goto initone_error_out
+__15:
+ ;
+__11:
+ ;
+__9:
+ ;
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+
+ if !((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size == 0) {
+ goto __16
+ }
+ size = Xsqlite3AbsInt32(tls, *(*int32)(unsafe.Pointer(bp + 104 + 2*4)))
+ if !(size == 0) {
+ goto __17
+ }
+ size = -2000
+__17:
+ ;
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size = size
+ Xsqlite3BtreeSetCacheSize(tls, (*Db)(unsafe.Pointer(pDb)).FpBt, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Fcache_size)
+__16:
+ ;
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = U8(*(*int32)(unsafe.Pointer(bp + 104 + 1*4)))
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) == 0) {
+ goto __18
+ }
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = U8(1)
+__18:
+ ;
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > SQLITE_MAX_FILE_FORMAT) {
+ goto __19
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+18829)
+ rc = SQLITE_ERROR
+ goto initone_error_out
+__19:
+ ;
+ if !(iDb == 0 && *(*int32)(unsafe.Pointer(bp + 104 + 1*4)) >= 4) {
+ goto __20
+ }
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_LegacyFileFmt))
+__20:
+ ;
+ (*InitData)(unsafe.Pointer(bp + 64)).FmxPage = Xsqlite3BtreeLastPage(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+
+ zSql = Xsqlite3MPrintf(tls, db,
+ ts+18853,
+ libc.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, zSchemaTabName))
+
+ xAuth = (*Sqlite3)(unsafe.Pointer(db)).FxAuth
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0)
+ rc = Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ }{Xsqlite3InitCallback})), bp+64, uintptr(0))
+ (*Sqlite3)(unsafe.Pointer(db)).FxAuth = xAuth
+
+ if !(rc == SQLITE_OK) {
+ goto __21
+ }
+ rc = (*InitData)(unsafe.Pointer(bp + 64)).Frc
+__21:
+ ;
+ Xsqlite3DbFree(tls, db, zSql)
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ Xsqlite3AnalysisLoad(tls, db, iDb)
+__22:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __23
+ }
+ rc = SQLITE_NOMEM
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32
+ goto __24
+__23:
+ if !(rc == SQLITE_OK || (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NoSchemaError) != 0 && rc != SQLITE_NOMEM) {
+ goto __25
+ }
+
+ *(*U16)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 114)) |= U16(DB_SchemaLoaded)
+ rc = SQLITE_OK
+__25:
+ ;
+__24:
+ ;
+initone_error_out:
+ if !(openedTransaction != 0) {
+ goto __26
+ }
+ Xsqlite3BtreeCommit(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+__26:
+ ;
+ Xsqlite3BtreeLeave(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+
+error_out:
+ if !(rc != 0) {
+ goto __27
+ }
+ if !(rc == SQLITE_NOMEM || rc == SQLITE_IOERR|int32(12)<<8) {
+ goto __28
+ }
+ Xsqlite3OomFault(tls, db)
+__28:
+ ;
+ Xsqlite3ResetOneSchema(tls, db, iDb)
+__27:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(0)
+ return rc
+}
+
+// Initialize all database files - the main database file, the file
+// used to store temporary tables, and any additional database files
+// created using ATTACH statements. Return a success code. If an
+// error occurs, write an error message into *pzErrMsg.
+//
+// After a database is initialized, the DB_SchemaLoaded bit is set
+// bit is set in the flags field of the Db structure.
+func Xsqlite3Init(tls *libc.TLS, db uintptr, pzErrMsg uintptr) int32 {
+ var i int32
+ var rc int32
+ var commit_internal int32 = libc.BoolInt32(!((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_SchemaChange) != 0))
+
+ (*Sqlite3)(unsafe.Pointer(db)).Fenc = (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).Fenc
+
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).FschemaFlags)&DB_SchemaLoaded == DB_SchemaLoaded) {
+ rc = Xsqlite3InitOne(tls, db, 0, pzErrMsg, uint32(0))
+ if rc != 0 {
+ return rc
+ }
+ }
+
+ for i = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1; i > 0; i-- {
+ if !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema)).FschemaFlags)&DB_SchemaLoaded == DB_SchemaLoaded) {
+ rc = Xsqlite3InitOne(tls, db, i, pzErrMsg, uint32(0))
+ if rc != 0 {
+ return rc
+ }
+ }
+ }
+ if commit_internal != 0 {
+ Xsqlite3CommitInternalChanges(tls, db)
+ }
+ return SQLITE_OK
+}
+
+// This routine is a no-op if the database schema is already initialized.
+// Otherwise, the schema is loaded. An error code is returned.
+func Xsqlite3ReadSchema(tls *libc.TLS, pParse uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ rc = Xsqlite3Init(tls, db, pParse+8)
+ if rc != SQLITE_OK {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = rc
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ } else if (*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache != 0 {
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaKnownOk)
+ }
+ }
+ return rc
+}
+
+func schemaIsValid(tls *libc.TLS, pParse uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32
+ var rc int32
+
+ for iDb = 0; iDb < (*Sqlite3)(unsafe.Pointer(db)).FnDb; iDb++ {
+ var openedTransaction int32 = 0
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if pBt == uintptr(0) {
+ continue
+ }
+
+ if Xsqlite3BtreeTxnState(tls, pBt) == SQLITE_TXN_NONE {
+ rc = Xsqlite3BtreeBeginTrans(tls, pBt, 0, uintptr(0))
+ if rc == SQLITE_NOMEM || rc == SQLITE_IOERR|int32(12)<<8 {
+ Xsqlite3OomFault(tls, db)
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ if rc != SQLITE_OK {
+ return
+ }
+ openedTransaction = 1
+ }
+
+ Xsqlite3BtreeGetMeta(tls, pBt, BTREE_SCHEMA_VERSION, bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) != (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema)).Fschema_cookie {
+ if int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema)).FschemaFlags)&DB_SchemaLoaded == DB_SchemaLoaded {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_SCHEMA
+ }
+ Xsqlite3ResetOneSchema(tls, db, iDb)
+ }
+
+ if openedTransaction != 0 {
+ Xsqlite3BtreeCommit(tls, pBt)
+ }
+ }
+}
+
+// Convert a schema pointer into the iDb index that indicates
+// which database file in db->aDb[] the schema refers to.
+//
+// If the same database is attached more than once, the first
+// attached database is returned.
+func Xsqlite3SchemaToIndex(tls *libc.TLS, db uintptr, pSchema uintptr) int32 {
+ var i int32 = -32768
+
+ if pSchema != 0 {
+ for i = 0; 1 != 0; i++ {
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpSchema == pSchema {
+ break
+ }
+ }
+
+ }
+ return i
+}
+
+// Free all memory allocations in the pParse object
+func Xsqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if (*Parse)(unsafe.Pointer(pParse)).FaTableLock != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Parse)(unsafe.Pointer(pParse)).FaTableLock)
+ }
+ for (*Parse)(unsafe.Pointer(pParse)).FpCleanup != 0 {
+ var pCleanup uintptr = (*Parse)(unsafe.Pointer(pParse)).FpCleanup
+ (*Parse)(unsafe.Pointer(pParse)).FpCleanup = (*ParseCleanup)(unsafe.Pointer(pCleanup)).FpNext
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*ParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup})).f(tls, db, (*ParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr)
+ Xsqlite3DbNNFreeNN(tls, db, pCleanup)
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FaLabel != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Parse)(unsafe.Pointer(pParse)).FaLabel)
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FpConstExpr != 0 {
+ Xsqlite3ExprListDelete(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpConstExpr)
+ }
+
+ *(*U32)(unsafe.Pointer(db + 440)) -= U32((*Parse)(unsafe.Pointer(pParse)).FdisableLookaside)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = func() uint16 {
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable != 0 {
+ return uint16(0)
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue
+ }()
+
+ (*Sqlite3)(unsafe.Pointer(db)).FpParse = (*Parse)(unsafe.Pointer(pParse)).FpOuterParse
+ (*Parse)(unsafe.Pointer(pParse)).Fdb = uintptr(0)
+ (*Parse)(unsafe.Pointer(pParse)).FdisableLookaside = U8(0)
+}
+
+// Add a new cleanup operation to a Parser. The cleanup should happen when
+// the parser object is destroyed. But, beware: the cleanup might happen
+// immediately.
+//
+// Use this mechanism for uncommon cleanups. There is a higher setup
+// cost for this mechansim (an extra malloc), so it should not be used
+// for common cleanups that happen on most calls. But for less
+// common cleanups, we save a single NULL-pointer comparison in
+// sqlite3ParseObjectReset(), which reduces the total CPU cycle count.
+//
+// If a memory allocation error occurs, then the cleanup happens immediately.
+// When either SQLITE_DEBUG or SQLITE_COVERAGE_TEST are defined, the
+// pParse->earlyCleanup flag is set in that case. Calling code show verify
+// that test cases exist for which this happens, to guard against possible
+// use-after-free errors following an OOM. The preferred way to do this is
+// to immediately follow the call to this routine with:
+//
+// testcase( pParse->earlyCleanup );
+//
+// This routine returns a copy of its pPtr input (the third parameter)
+// except if an early cleanup occurs, in which case it returns NULL. So
+// another way to check for early cleanup is to check the return value.
+// Or, stop using the pPtr parameter with this call and use only its
+// return value thereafter. Something like this:
+//
+// pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj);
+func Xsqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) uintptr {
+ var pCleanup uintptr = Xsqlite3DbMallocRaw(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(ParseCleanup{})))
+ if pCleanup != 0 {
+ (*ParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*Parse)(unsafe.Pointer(pParse)).FpCleanup
+ (*Parse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup
+ (*ParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr
+ (*ParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup
+ } else {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{xCleanup})).f(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pPtr)
+ pPtr = uintptr(0)
+ }
+ return pPtr
+}
+
+// Turn bulk memory into a valid Parse object and link that Parse object
+// into database connection db.
+//
+// Call sqlite3ParseObjectReset() to undo this operation.
+//
+// Caution: Do not confuse this routine with sqlite3ParseObjectInit() which
+// is generated by Lemon.
+func Xsqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) {
+ libc.X__builtin___memset_chk(tls, pParse+uintptr(uint64(uintptr(0)+8)), 0, uint64(uintptr(0)+228)-uint64(uintptr(0)+8), libc.X__builtin_object_size(tls, pParse+uintptr(uint64(uintptr(0)+8)), 0))
+ libc.X__builtin___memset_chk(tls, pParse+uintptr(uint64(uintptr(0)+288)), 0, uint64(unsafe.Sizeof(Parse{}))-uint64(uintptr(0)+288), libc.X__builtin_object_size(tls, pParse+uintptr(uint64(uintptr(0)+288)), 0))
+
+ (*Parse)(unsafe.Pointer(pParse)).FpOuterParse = (*Sqlite3)(unsafe.Pointer(db)).FpParse
+ (*Sqlite3)(unsafe.Pointer(db)).FpParse = pParse
+ (*Parse)(unsafe.Pointer(pParse)).Fdb = db
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+1483, 0)
+ }
+}
+
+func sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags U32, pReprepare uintptr, ppStmt uintptr, pzTail uintptr) int32 {
+ bp := tls.Alloc(440)
+ defer tls.Free(440)
+
+ var rc int32
+ var i int32
+
+ var zDb uintptr
+ var pBt uintptr
+ var zSqlCopy uintptr
+ var mxLen int32
+ var pT uintptr
+ rc = SQLITE_OK
+
+ libc.X__builtin___memset_chk(tls, bp+16+uintptr(uint64(uintptr(0)+8)), 0, uint64(uintptr(0)+228)-uint64(uintptr(0)+8), libc.X__builtin_object_size(tls, bp+16+uintptr(uint64(uintptr(0)+8)), 0))
+ libc.X__builtin___memset_chk(tls, bp+16+uintptr(uint64(uintptr(0)+288)), 0, uint64(unsafe.Sizeof(Parse{}))-uint64(uintptr(0)+288), libc.X__builtin_object_size(tls, bp+16+uintptr(uint64(uintptr(0)+288)), 0))
+ (*Parse)(unsafe.Pointer(bp + 16)).FpOuterParse = (*Sqlite3)(unsafe.Pointer(db)).FpParse
+ (*Sqlite3)(unsafe.Pointer(db)).FpParse = bp + 16
+ (*Parse)(unsafe.Pointer(bp + 16)).Fdb = db
+ (*Parse)(unsafe.Pointer(bp + 16)).FpReprepare = pReprepare
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ Xsqlite3ErrorMsg(tls, bp+16, ts+1483, 0)
+__1:
+ ;
+ if !(prepFlags&U32(SQLITE_PREPARE_PERSISTENT) != 0) {
+ goto __2
+ }
+ (*Parse)(unsafe.Pointer(bp+16)).FdisableLookaside++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+__2:
+ ;
+ (*Parse)(unsafe.Pointer(bp + 16)).FprepFlags = U8(prepFlags & U32(0xff))
+
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).FnoSharedCache) != 0) {
+ goto __3
+ }
+ i = 0
+__4:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __6
+ }
+ pBt = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if !(pBt != 0) {
+ goto __7
+ }
+
+ rc = Xsqlite3BtreeSchemaLocked(tls, pBt)
+ if !(rc != 0) {
+ goto __8
+ }
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FzDbSName
+ Xsqlite3ErrorWithMsg(tls, db, rc, ts+18887, libc.VaList(bp, zDb))
+
+ goto end_prepare
+__8:
+ ;
+__7:
+ ;
+ goto __5
+__5:
+ i++
+ goto __4
+ goto __6
+__6:
+ ;
+__3:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FpDisconnect != 0) {
+ goto __9
+ }
+ Xsqlite3VtabUnlockList(tls, db)
+__9:
+ ;
+ if !(nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-1)))) != 0)) {
+ goto __10
+ }
+ mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4))
+
+ if !(nBytes > mxLen) {
+ goto __12
+ }
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_TOOBIG, ts+18917, 0)
+ rc = Xsqlite3ApiExit(tls, db, SQLITE_TOOBIG)
+ goto end_prepare
+__12:
+ ;
+ zSqlCopy = Xsqlite3DbStrNDup(tls, db, zSql, uint64(nBytes))
+ if !(zSqlCopy != 0) {
+ goto __13
+ }
+ Xsqlite3RunParser(tls, bp+16, zSqlCopy)
+ (*Parse)(unsafe.Pointer(bp + 16)).FzTail = zSql + uintptr((int64((*Parse)(unsafe.Pointer(bp+16)).FzTail)-int64(zSqlCopy))/1)
+ Xsqlite3DbFree(tls, db, zSqlCopy)
+ goto __14
+__13:
+ (*Parse)(unsafe.Pointer(bp + 16)).FzTail = zSql + uintptr(nBytes)
+__14:
+ ;
+ goto __11
+__10:
+ Xsqlite3RunParser(tls, bp+16, zSql)
+__11:
+ ;
+ if !(pzTail != 0) {
+ goto __15
+ }
+ *(*uintptr)(unsafe.Pointer(pzTail)) = (*Parse)(unsafe.Pointer(bp + 16)).FzTail
+__15:
+ ;
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0) {
+ goto __16
+ }
+ Xsqlite3VdbeSetSql(tls, (*Parse)(unsafe.Pointer(bp+16)).FpVdbe, zSql, int32((int64((*Parse)(unsafe.Pointer(bp+16)).FzTail)-int64(zSql))/1), uint8(prepFlags))
+__16:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __17
+ }
+ (*Parse)(unsafe.Pointer(bp + 16)).Frc = SQLITE_NOMEM
+ (*Parse)(unsafe.Pointer(bp + 16)).FcheckSchema = U8(0)
+__17:
+ ;
+ if !((*Parse)(unsafe.Pointer(bp+16)).Frc != SQLITE_OK && (*Parse)(unsafe.Pointer(bp+16)).Frc != SQLITE_DONE) {
+ goto __18
+ }
+ if !((*Parse)(unsafe.Pointer(bp+16)).FcheckSchema != 0 && int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0) {
+ goto __20
+ }
+ schemaIsValid(tls, bp+16)
+__20:
+ ;
+ if !((*Parse)(unsafe.Pointer(bp+16)).FpVdbe != 0) {
+ goto __21
+ }
+ Xsqlite3VdbeFinalize(tls, (*Parse)(unsafe.Pointer(bp+16)).FpVdbe)
+__21:
+ ;
+ rc = (*Parse)(unsafe.Pointer(bp + 16)).Frc
+ if !((*Parse)(unsafe.Pointer(bp+16)).FzErrMsg != 0) {
+ goto __22
+ }
+ Xsqlite3ErrorWithMsg(tls, db, rc, ts+3658, libc.VaList(bp+8, (*Parse)(unsafe.Pointer(bp+16)).FzErrMsg))
+ Xsqlite3DbFree(tls, db, (*Parse)(unsafe.Pointer(bp+16)).FzErrMsg)
+ goto __23
+__22:
+ Xsqlite3Error(tls, db, rc)
+__23:
+ ;
+ goto __19
+__18:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = (*Parse)(unsafe.Pointer(bp + 16)).FpVdbe
+ rc = SQLITE_OK
+ Xsqlite3ErrorClear(tls, db)
+__19:
+ ;
+__24:
+ if !((*Parse)(unsafe.Pointer(bp+16)).FpTriggerPrg != 0) {
+ goto __25
+ }
+ pT = (*Parse)(unsafe.Pointer(bp + 16)).FpTriggerPrg
+ (*Parse)(unsafe.Pointer(bp + 16)).FpTriggerPrg = (*TriggerPrg)(unsafe.Pointer(pT)).FpNext
+ Xsqlite3DbFree(tls, db, pT)
+ goto __24
+__25:
+ ;
+end_prepare:
+ Xsqlite3ParseObjectReset(tls, bp+16)
+ return rc
+}
+
+func sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags U32, pOld uintptr, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+ var cnt int32 = 0
+
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ if !(Xsqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) {
+ return Xsqlite3MisuseError(tls, 137995)
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3BtreeEnterAll(tls, db)
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_ERROR|int32(2)<<8 && libc.PostIncInt32(&cnt, 1) < SQLITE_MAX_PREPARE_RETRY ||
+ rc == SQLITE_SCHEMA && func() int32 { Xsqlite3ResetOneSchema(tls, db, -1); return libc.PostIncInt32(&cnt, 1) }() == 0 {
+ rc = sqlite3Prepare(tls, db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail)
+
+ if rc == SQLITE_OK || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ break
+ }
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Rerun the compilation of a statement after a schema change.
+//
+// If the statement is successfully recompiled, return SQLITE_OK. Otherwise,
+// if the statement cannot be recompiled because another connection has
+// locked the sqlite3_schema table, return SQLITE_LOCKED. If any other error
+// occurs, return SQLITE_SCHEMA.
+func Xsqlite3Reprepare(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ var zSql uintptr
+ var db uintptr
+ var prepFlags U8
+
+ zSql = Xsqlite3_sql(tls, p)
+
+ db = Xsqlite3VdbeDb(tls, p)
+
+ prepFlags = Xsqlite3VdbePrepareFlags(tls, p)
+ rc = sqlite3LockAndPrepare(tls, db, zSql, -1, uint32(prepFlags), p, bp, uintptr(0))
+ if rc != 0 {
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ }
+
+ return rc
+ } else {
+ }
+ Xsqlite3VdbeSwap(tls, *(*uintptr)(unsafe.Pointer(bp)), p)
+ Xsqlite3TransferBindings(tls, *(*uintptr)(unsafe.Pointer(bp)), p)
+ Xsqlite3VdbeResetStepResult(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3VdbeFinalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return SQLITE_OK
+}
+
+// Two versions of the official API. Legacy and new use. In the legacy
+// version, the original SQL text is not saved in the prepared statement
+// and so if a schema change occurs, SQLITE_SCHEMA is returned by
+// sqlite3_step(). In the new version, the original SQL text is retained
+// and the statement is automatically recompiled if an schema change
+// occurs.
+func Xsqlite3_prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+ rc = sqlite3LockAndPrepare(tls, db, zSql, nBytes, uint32(0), uintptr(0), ppStmt, pzTail)
+
+ return rc
+}
+
+func Xsqlite3_prepare_v2(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+
+ rc = sqlite3LockAndPrepare(tls, db, zSql, nBytes, uint32(SQLITE_PREPARE_SAVESQL), uintptr(0),
+ ppStmt, pzTail)
+
+ return rc
+}
+
+func Xsqlite3_prepare_v3(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags uint32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+
+ rc = sqlite3LockAndPrepare(tls, db, zSql, nBytes,
+ uint32(SQLITE_PREPARE_SAVESQL)|prepFlags&uint32(SQLITE_PREPARE_MASK),
+ uintptr(0), ppStmt, pzTail)
+
+ return rc
+}
+
+func sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags U32, ppStmt uintptr, pzTail uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zSql8 uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = SQLITE_OK
+
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ if !(Xsqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) {
+ return Xsqlite3MisuseError(tls, 138143)
+ }
+ if nBytes >= 0 {
+ var sz int32
+ var z uintptr = zSql
+ for sz = 0; sz < nBytes && (int32(*(*int8)(unsafe.Pointer(z + uintptr(sz)))) != 0 || int32(*(*int8)(unsafe.Pointer(z + uintptr(sz+1)))) != 0); sz = sz + 2 {
+ }
+ nBytes = sz
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ zSql8 = Xsqlite3Utf16to8(tls, db, zSql, nBytes, uint8(SQLITE_UTF16LE))
+ if zSql8 != 0 {
+ rc = sqlite3LockAndPrepare(tls, db, zSql8, -1, prepFlags, uintptr(0), ppStmt, bp)
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 && pzTail != 0 {
+ var chars_parsed int32 = Xsqlite3Utf8CharLen(tls, zSql8, int32((int64(*(*uintptr)(unsafe.Pointer(bp)))-int64(zSql8))/1))
+ *(*uintptr)(unsafe.Pointer(pzTail)) = zSql + uintptr(Xsqlite3Utf16ByteLen(tls, zSql, chars_parsed))
+ }
+ Xsqlite3DbFree(tls, db, zSql8)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Two versions of the official API. Legacy and new use. In the legacy
+// version, the original SQL text is not saved in the prepared statement
+// and so if a schema change occurs, SQLITE_SCHEMA is returned by
+// sqlite3_step(). In the new version, the original SQL text is retained
+// and the statement is automatically recompiled if an schema change
+// occurs.
+func Xsqlite3_prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes, uint32(0), ppStmt, pzTail)
+
+ return rc
+}
+
+func Xsqlite3_prepare16_v2(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes, uint32(SQLITE_PREPARE_SAVESQL), ppStmt, pzTail)
+
+ return rc
+}
+
+func Xsqlite3_prepare16_v3(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prepFlags uint32, ppStmt uintptr, pzTail uintptr) int32 {
+ var rc int32
+ rc = sqlite3Prepare16(tls, db, zSql, nBytes,
+ uint32(SQLITE_PREPARE_SAVESQL)|prepFlags&uint32(SQLITE_PREPARE_MASK),
+ ppStmt, pzTail)
+
+ return rc
+}
+
+// An instance of the following object is used to record information about
+// how to process the DISTINCT keyword, to simplify passing that information
+// into the selectInnerLoop() routine.
+type DistinctCtx1 = struct {
+ FisTnct U8
+ FeTnctType U8
+ F__ccgo_pad1 [2]byte
+ FtabTnct int32
+ FaddrTnct int32
+}
+
+// An instance of the following object is used to record information about
+// how to process the DISTINCT keyword, to simplify passing that information
+// into the selectInnerLoop() routine.
+type DistinctCtx = DistinctCtx1
+
+// An instance of the following object is used to record information about
+// the ORDER BY (or GROUP BY) clause of query is being coded.
+//
+// The aDefer[] array is used by the sorter-references optimization. For
+// example, assuming there is no index that can be used for the ORDER BY,
+// for the query:
+//
+// SELECT a, bigblob FROM t1 ORDER BY a LIMIT 10;
+//
+// it may be more efficient to add just the "a" values to the sorter, and
+// retrieve the associated "bigblob" values directly from table t1 as the
+// 10 smallest "a" values are extracted from the sorter.
+//
+// When the sorter-reference optimization is used, there is one entry in the
+// aDefer[] array for each database table that may be read as values are
+// extracted from the sorter.
+type SortCtx1 = struct {
+ FpOrderBy uintptr
+ FnOBSat int32
+ FiECursor int32
+ FregReturn int32
+ FlabelBkOut int32
+ FaddrSortIndex int32
+ FlabelDone int32
+ FlabelOBLopt int32
+ FsortFlags U8
+ F__ccgo_pad1 [3]byte
+ FpDeferredRowLoad uintptr
+}
+
+// An instance of the following object is used to record information about
+// the ORDER BY (or GROUP BY) clause of query is being coded.
+//
+// The aDefer[] array is used by the sorter-references optimization. For
+// example, assuming there is no index that can be used for the ORDER BY,
+// for the query:
+//
+// SELECT a, bigblob FROM t1 ORDER BY a LIMIT 10;
+//
+// it may be more efficient to add just the "a" values to the sorter, and
+// retrieve the associated "bigblob" values directly from table t1 as the
+// 10 smallest "a" values are extracted from the sorter.
+//
+// When the sorter-reference optimization is used, there is one entry in the
+// aDefer[] array for each database table that may be read as values are
+// extracted from the sorter.
+type SortCtx = SortCtx1
+type RowLoadInfo1 = struct {
+ FregResult int32
+ FecelFlags U8
+ F__ccgo_pad1 [3]byte
+}
+
+func clearSelect(tls *libc.TLS, db uintptr, p uintptr, bFree int32) {
+ for p != 0 {
+ var pPrior uintptr = (*Select)(unsafe.Pointer(p)).FpPrior
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpEList)
+ Xsqlite3SrcListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpSrc)
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpWhere)
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpGroupBy)
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpHaving)
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpOrderBy)
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpLimit)
+ if (*Select)(unsafe.Pointer(p)).FpWith != 0 {
+ Xsqlite3WithDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpWith)
+ }
+ if (*Select)(unsafe.Pointer(p)).FpWinDefn != 0 {
+ Xsqlite3WindowListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpWinDefn)
+ }
+ for (*Select)(unsafe.Pointer(p)).FpWin != 0 {
+ Xsqlite3WindowUnlinkFromSelect(tls, (*Select)(unsafe.Pointer(p)).FpWin)
+ }
+ if bFree != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, p)
+ }
+ p = pPrior
+ bFree = 1
+ }
+}
+
+// Initialize a SelectDest structure.
+func Xsqlite3SelectDestInit(tls *libc.TLS, pDest uintptr, eDest int32, iParm int32) {
+ (*SelectDest)(unsafe.Pointer(pDest)).FeDest = U8(eDest)
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm = iParm
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm2 = 0
+ (*SelectDest)(unsafe.Pointer(pDest)).FzAffSdst = uintptr(0)
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSdst = 0
+ (*SelectDest)(unsafe.Pointer(pDest)).FnSdst = 0
+}
+
+// Allocate a new Select structure and return a pointer to that
+// structure.
+func Xsqlite3SelectNew(tls *libc.TLS, pParse uintptr, pEList uintptr, pSrc uintptr, pWhere uintptr, pGroupBy uintptr, pHaving uintptr, pOrderBy uintptr, selFlags U32, pLimit uintptr) uintptr {
+ bp := tls.Alloc(128)
+ defer tls.Free(128)
+
+ var pNew uintptr
+ var pAllocated uintptr
+
+ pAllocated = libc.AssignUintptr(&pNew, Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Select{}))))
+ if pNew == uintptr(0) {
+ pNew = bp
+ }
+ if pEList == uintptr(0) {
+ pEList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0),
+ Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_ASTERISK, uintptr(0)))
+ }
+ (*Select)(unsafe.Pointer(pNew)).FpEList = pEList
+ (*Select)(unsafe.Pointer(pNew)).Fop = U8(TK_SELECT)
+ (*Select)(unsafe.Pointer(pNew)).FselFlags = selFlags
+ (*Select)(unsafe.Pointer(pNew)).FiLimit = 0
+ (*Select)(unsafe.Pointer(pNew)).FiOffset = 0
+ (*Select)(unsafe.Pointer(pNew)).FselId = U32(libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnSelect, 1))
+ *(*int32)(unsafe.Pointer(pNew + 20)) = -1
+ *(*int32)(unsafe.Pointer(pNew + 20 + 1*4)) = -1
+ (*Select)(unsafe.Pointer(pNew)).FnSelectRow = int16(0)
+ if pSrc == uintptr(0) {
+ pSrc = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(SrcList{})))
+ }
+ (*Select)(unsafe.Pointer(pNew)).FpSrc = pSrc
+ (*Select)(unsafe.Pointer(pNew)).FpWhere = pWhere
+ (*Select)(unsafe.Pointer(pNew)).FpGroupBy = pGroupBy
+ (*Select)(unsafe.Pointer(pNew)).FpHaving = pHaving
+ (*Select)(unsafe.Pointer(pNew)).FpOrderBy = pOrderBy
+ (*Select)(unsafe.Pointer(pNew)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpNext = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpLimit = pLimit
+ (*Select)(unsafe.Pointer(pNew)).FpWith = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpWin = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpWinDefn = uintptr(0)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ clearSelect(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pNew, libc.Bool32(pNew != bp))
+ pAllocated = uintptr(0)
+ } else {
+ }
+ return pAllocated
+}
+
+// Delete the given Select structure and all of its substructures.
+func Xsqlite3SelectDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ if p != 0 {
+ clearSelect(tls, db, p, 1)
+ }
+}
+
+func findRightmost(tls *libc.TLS, p uintptr) uintptr {
+ for (*Select)(unsafe.Pointer(p)).FpNext != 0 {
+ p = (*Select)(unsafe.Pointer(p)).FpNext
+ }
+ return p
+}
+
+// Given 1 to 3 identifiers preceding the JOIN keyword, determine the
+// type of join. Return an integer constant that expresses that type
+// in terms of the following bit values:
+//
+// JT_INNER
+// JT_CROSS
+// JT_OUTER
+// JT_NATURAL
+// JT_LEFT
+// JT_RIGHT
+//
+// A full outer join is the combination of JT_LEFT and JT_RIGHT.
+//
+// If an illegal or unsupported join type is seen, then still return
+// a join type, but put an error in the pParse structure.
+//
+// These are the valid join types:
+//
+// pA pB pC Return Value
+// ------- ----- ----- ------------
+// CROSS - - JT_CROSS
+// INNER - - JT_INNER
+// LEFT - - JT_LEFT|JT_OUTER
+// LEFT OUTER - JT_LEFT|JT_OUTER
+// RIGHT - - JT_RIGHT|JT_OUTER
+// RIGHT OUTER - JT_RIGHT|JT_OUTER
+// FULL - - JT_LEFT|JT_RIGHT|JT_OUTER
+// FULL OUTER - JT_LEFT|JT_RIGHT|JT_OUTER
+// NATURAL INNER - JT_NATURAL|JT_INNER
+// NATURAL LEFT - JT_NATURAL|JT_LEFT|JT_OUTER
+// NATURAL LEFT OUTER JT_NATURAL|JT_LEFT|JT_OUTER
+// NATURAL RIGHT - JT_NATURAL|JT_RIGHT|JT_OUTER
+// NATURAL RIGHT OUTER JT_NATURAL|JT_RIGHT|JT_OUTER
+// NATURAL FULL - JT_NATURAL|JT_LEFT|JT_RIGHT
+// NATURAL FULL OUTER JT_NATRUAL|JT_LEFT|JT_RIGHT
+//
+// To preserve historical compatibly, SQLite also accepts a variety
+// of other non-standard and in many cases non-sensical join types.
+// This routine makes as much sense at it can from the nonsense join
+// type and returns a result. Examples of accepted nonsense join types
+// include but are not limited to:
+//
+// INNER CROSS JOIN -> same as JOIN
+// NATURAL CROSS JOIN -> same as NATURAL JOIN
+// OUTER LEFT JOIN -> same as LEFT JOIN
+// LEFT NATURAL JOIN -> same as NATURAL LEFT JOIN
+// LEFT RIGHT JOIN -> same as FULL JOIN
+// RIGHT OUTER FULL JOIN -> same as FULL JOIN
+// CROSS CROSS CROSS JOIN -> same as JOIN
+//
+// The only restrictions on the join type name are:
+//
+// - "INNER" cannot appear together with "OUTER", "LEFT", "RIGHT",
+// or "FULL".
+//
+// - "CROSS" cannot appear together with "OUTER", "LEFT", "RIGHT,
+// or "FULL".
+//
+// - If "OUTER" is present then there must also be one of
+// "LEFT", "RIGHT", or "FULL"
+func Xsqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var jointype int32 = 0
+
+ var p uintptr
+ var i int32
+ var j int32
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pA
+ *(*uintptr)(unsafe.Pointer(bp + 40 + 1*8)) = pB
+ *(*uintptr)(unsafe.Pointer(bp + 40 + 2*8)) = pC
+ for i = 0; i < 3 && *(*uintptr)(unsafe.Pointer(bp + 40 + uintptr(i)*8)) != 0; i++ {
+ p = *(*uintptr)(unsafe.Pointer(bp + 40 + uintptr(i)*8))
+ for j = 0; j < int32(uint64(unsafe.Sizeof(aKeyword))/uint64(unsafe.Sizeof(struct {
+ Fi U8
+ FnChar U8
+ Fcode U8
+ }{}))); j++ {
+ if (*Token)(unsafe.Pointer(p)).Fn == uint32(aKeyword[j].FnChar) &&
+ Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(p)).Fz, uintptr(unsafe.Pointer(&zKeyText))+uintptr(aKeyword[j].Fi), int32((*Token)(unsafe.Pointer(p)).Fn)) == 0 {
+ jointype = jointype | int32(aKeyword[j].Fcode)
+ break
+ }
+ }
+
+ if j >= int32(uint64(unsafe.Sizeof(aKeyword))/uint64(unsafe.Sizeof(struct {
+ Fi U8
+ FnChar U8
+ Fcode U8
+ }{}))) {
+ jointype = jointype | JT_ERROR
+ break
+ }
+ }
+ if jointype&(JT_INNER|JT_OUTER) == JT_INNER|JT_OUTER || jointype&JT_ERROR != 0 || jointype&(JT_OUTER|JT_LEFT|JT_RIGHT) == JT_OUTER {
+ var zSp1 uintptr = ts + 11323
+ var zSp2 uintptr = ts + 11323
+ if pB == uintptr(0) {
+ zSp1++
+ }
+ if pC == uintptr(0) {
+ zSp2++
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+18936, libc.VaList(bp, pA, zSp1, pB, zSp2, pC))
+ jointype = JT_INNER
+ }
+ return jointype
+}
+
+var zKeyText = *(*[34]int8)(unsafe.Pointer(ts + 18966))
+var aKeyword = [7]struct {
+ Fi U8
+ FnChar U8
+ Fcode U8
+}{
+ {FnChar: U8(7), Fcode: U8(JT_NATURAL)},
+ {Fi: U8(6), FnChar: U8(4), Fcode: U8(JT_LEFT | JT_OUTER)},
+ {Fi: U8(10), FnChar: U8(5), Fcode: U8(JT_OUTER)},
+ {Fi: U8(14), FnChar: U8(5), Fcode: U8(JT_RIGHT | JT_OUTER)},
+ {Fi: U8(19), FnChar: U8(4), Fcode: U8(JT_LEFT | JT_RIGHT | JT_OUTER)},
+ {Fi: U8(23), FnChar: U8(5), Fcode: U8(JT_INNER)},
+ {Fi: U8(28), FnChar: U8(5), Fcode: U8(JT_INNER | JT_CROSS)},
+}
+
+// Return the index of a column in a table. Return -1 if the column
+// is not contained in the table.
+func Xsqlite3ColumnIndex(tls *libc.TLS, pTab uintptr, zCol uintptr) int32 {
+ var i int32
+ var h U8 = Xsqlite3StrIHash(tls, zCol)
+ var pCol uintptr
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+ i = 0
+__1:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __3
+ }
+ {
+ if int32((*Column)(unsafe.Pointer(pCol)).FhName) == int32(h) && Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 {
+ return i
+ }
+
+ }
+ goto __2
+__2:
+ pCol += 24
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ return -1
+}
+
+// Mark a subquery result column as having been used.
+func Xsqlite3SrcItemColumnUsed(tls *libc.TLS, pItem uintptr, iCol int32) {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2000>>13)) != 0 {
+ var pResults uintptr
+
+ pResults = (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList
+
+ libc.SetBitFieldPtr16Uint32(pResults+8+uintptr(iCol)*32+16+4, uint32(1), 6, 0x40)
+ }
+}
+
+func tableAndColumnIndex(tls *libc.TLS, pSrc uintptr, iStart int32, iEnd int32, zCol uintptr, piTab uintptr, piCol uintptr, bIgnoreHidden int32) int32 {
+ var i int32
+ var iCol int32
+
+ for i = iStart; i <= iEnd; i++ {
+ iCol = Xsqlite3ColumnIndex(tls, (*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(i)*104)).FpTab, zCol)
+ if iCol >= 0 &&
+ (bIgnoreHidden == 0 || libc.Bool32(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(i)*104)).FpTab)).FaCol+uintptr(iCol)*24)).FcolFlags)&COLFLAG_HIDDEN != 0) == 0) {
+ if piTab != 0 {
+ Xsqlite3SrcItemColumnUsed(tls, pSrc+8+uintptr(i)*104, iCol)
+ *(*int32)(unsafe.Pointer(piTab)) = i
+ *(*int32)(unsafe.Pointer(piCol)) = iCol
+ }
+ return 1
+ }
+ }
+ return 0
+}
+
+// Set the EP_OuterON property on all terms of the given expression.
+// And set the Expr.w.iJoin to iTable for every term in the
+// expression.
+//
+// The EP_OuterON property is used on terms of an expression to tell
+// the OUTER JOIN processing logic that this term is part of the
+// join restriction specified in the ON or USING clause and not a part
+// of the more general WHERE clause. These terms are moved over to the
+// WHERE clause during join processing but we need to remember that they
+// originated in the ON or USING clause.
+//
+// The Expr.w.iJoin tells the WHERE clause processing that the
+// expression depends on table w.iJoin even if that table is not
+// explicitly mentioned in the expression. That information is needed
+// for cases like this:
+//
+// SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.b AND t1.x=5
+//
+// The where clause needs to defer the handling of the t1.x=5
+// term until after the t2 loop of the join. In that way, a
+// NULL t2 row will be inserted whenever t1.x!=5. If we do not
+// defer the handling of t1.x=5, it will be processed immediately
+// after the t1 loop and rows with t1.x!=5 will never appear in
+// the output, which is incorrect.
+func Xsqlite3SetJoinExpr(tls *libc.TLS, p uintptr, iTable int32, joinFlag U32) {
+ for p != 0 {
+ *(*U32)(unsafe.Pointer(p + 4)) |= joinFlag
+
+ *(*int32)(unsafe.Pointer(p + 52)) = iTable
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_FUNCTION {
+ if *(*uintptr)(unsafe.Pointer(p + 32)) != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32)))).FnExpr; i++ {
+ Xsqlite3SetJoinExpr(tls, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32))+8+uintptr(i)*32)).FpExpr, iTable, joinFlag)
+ }
+ }
+ }
+ Xsqlite3SetJoinExpr(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, iTable, joinFlag)
+ p = (*Expr)(unsafe.Pointer(p)).FpRight
+ }
+}
+
+func unsetJoinExpr(tls *libc.TLS, p uintptr, iTable int32, nullable int32) {
+ for p != 0 {
+ if iTable < 0 || (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_OuterON) != U32(0) && *(*int32)(unsafe.Pointer(p + 52)) == iTable {
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_OuterON | EP_InnerON))
+ if iTable >= 0 {
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(EP_InnerON)
+ }
+ }
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLUMN && (*Expr)(unsafe.Pointer(p)).FiTable == iTable && !(nullable != 0) {
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_CanBeNull))
+ }
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_FUNCTION {
+ if *(*uintptr)(unsafe.Pointer(p + 32)) != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32)))).FnExpr; i++ {
+ unsetJoinExpr(tls, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 32))+8+uintptr(i)*32)).FpExpr, iTable, nullable)
+ }
+ }
+ }
+ unsetJoinExpr(tls, (*Expr)(unsafe.Pointer(p)).FpLeft, iTable, nullable)
+ p = (*Expr)(unsafe.Pointer(p)).FpRight
+ }
+}
+
+func sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pSrc uintptr
+ var i int32
+ var j int32
+ var pLeft uintptr
+ var pRight uintptr
+
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+ pLeft = pSrc + 8
+ pRight = pLeft + 1*104
+ i = 0
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc-1) {
+ goto __3
+ }
+ {
+ var pRightTab uintptr = (*SrcItem)(unsafe.Pointer(pRight)).FpTab
+ var joinType U32
+
+ if (*SrcItem)(unsafe.Pointer(pLeft)).FpTab == uintptr(0) || pRightTab == uintptr(0) {
+ goto __2
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&JT_OUTER != 0 {
+ joinType = uint32(EP_OuterON)
+ } else {
+ joinType = uint32(EP_InnerON)
+ }
+
+ if int32((*SrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&JT_NATURAL != 0 {
+ var pUsing uintptr = uintptr(0)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+19000, libc.VaList(bp, 0))
+ return 1
+ }
+ for j = 0; j < int32((*Table)(unsafe.Pointer(pRightTab)).FnCol); j++ {
+ var zName uintptr
+
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pRightTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_HIDDEN != 0 {
+ continue
+ }
+ zName = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pRightTab)).FaCol + uintptr(j)*24)).FzCnName
+ if tableAndColumnIndex(tls, pSrc, 0, i, zName, uintptr(0), uintptr(0), 1) != 0 {
+ pUsing = Xsqlite3IdListAppend(tls, pParse, pUsing, uintptr(0))
+ if pUsing != 0 {
+ (*IdList_item)(unsafe.Pointer(pUsing + 8 + uintptr((*IdList)(unsafe.Pointer(pUsing)).FnId-1)*16)).FzName = Xsqlite3DbStrDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, zName)
+ }
+ }
+ }
+ if pUsing != 0 {
+ libc.SetBitFieldPtr16Uint32(pRight+60+4, uint32(1), 10, 0x400)
+ libc.SetBitFieldPtr16Uint32(pRight+60+4, uint32(1), 12, 0x1000)
+ *(*uintptr)(unsafe.Pointer(pRight + 72)) = pUsing
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return 1
+ }
+ }
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 {
+ var pList uintptr = *(*uintptr)(unsafe.Pointer(pRight + 72))
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ for j = 0; j < (*IdList)(unsafe.Pointer(pList)).FnId; j++ {
+ var zName uintptr
+
+ var iRightCol int32
+ var pE1 uintptr
+ var pE2 uintptr
+ var pEq uintptr
+
+ zName = (*IdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16)).FzName
+ iRightCol = Xsqlite3ColumnIndex(tls, pRightTab, zName)
+ if iRightCol < 0 ||
+ tableAndColumnIndex(tls, pSrc, 0, i, zName, bp+24, bp+28,
+ int32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12)) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+19050, libc.VaList(bp+8, zName))
+ return 1
+ }
+ pE1 = Xsqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp + 28)))
+ Xsqlite3SrcItemColumnUsed(tls, pSrc+8+uintptr(*(*int32)(unsafe.Pointer(bp + 24)))*104, *(*int32)(unsafe.Pointer(bp + 28)))
+ if int32((*SrcItem)(unsafe.Pointer(pSrc+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ var pFuncArgs uintptr = uintptr(0)
+ for tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp + 24))+1, i, zName, bp+24, bp+28,
+ int32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12)) != 0 {
+ if int32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp + 24)))*104 + 60 + 4))&0x400>>10) == 0 ||
+ Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp + 24)))*104 + 72)), zName) < 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19114,
+ libc.VaList(bp+16, zName))
+ break
+ }
+ pFuncArgs = Xsqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1)
+ pE1 = Xsqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp + 28)))
+ Xsqlite3SrcItemColumnUsed(tls, pSrc+8+uintptr(*(*int32)(unsafe.Pointer(bp + 24)))*104, *(*int32)(unsafe.Pointer(bp + 28)))
+ }
+ if pFuncArgs != 0 {
+ pFuncArgs = Xsqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1)
+ pE1 = Xsqlite3ExprFunction(tls, pParse, pFuncArgs, uintptr(unsafe.Pointer(&tkCoalesce)), 0)
+ }
+ }
+ pE2 = Xsqlite3CreateColumnExpr(tls, db, pSrc, i+1, iRightCol)
+ Xsqlite3SrcItemColumnUsed(tls, pRight, iRightCol)
+ pEq = Xsqlite3PExpr(tls, pParse, TK_EQ, pE1, pE2)
+
+ if pEq != 0 {
+ *(*U32)(unsafe.Pointer(pEq + 4)) |= joinType
+
+ *(*int32)(unsafe.Pointer(pEq + 52)) = (*Expr)(unsafe.Pointer(pE2)).FiTable
+ }
+ (*Select)(unsafe.Pointer(p)).FpWhere = Xsqlite3ExprAnd(tls, pParse, (*Select)(unsafe.Pointer(p)).FpWhere, pEq)
+ }
+ } else if *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 {
+ Xsqlite3SetJoinExpr(tls, *(*uintptr)(unsafe.Pointer(pRight + 72)), (*SrcItem)(unsafe.Pointer(pRight)).FiCursor, joinType)
+ (*Select)(unsafe.Pointer(p)).FpWhere = Xsqlite3ExprAnd(tls, pParse, (*Select)(unsafe.Pointer(p)).FpWhere, *(*uintptr)(unsafe.Pointer(pRight + 72)))
+ *(*uintptr)(unsafe.Pointer(pRight + 72)) = uintptr(0)
+ libc.SetBitFieldPtr16Uint32(pRight+60+4, uint32(1), 11, 0x800)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pRight += 104
+ pLeft += 104
+ goto __1
+ goto __3
+__3:
+ ;
+ return 0
+}
+
+var tkCoalesce = Token{Fz: ts + 6989, Fn: uint32(8)}
+
+// An instance of this object holds information (beyond pParse and pSelect)
+// needed to load the next result row that is to be added to the sorter.
+type RowLoadInfo = RowLoadInfo1
+
+func innerLoopLoadRow(tls *libc.TLS, pParse uintptr, pSelect uintptr, pInfo uintptr) {
+ Xsqlite3ExprCodeExprList(tls, pParse, (*Select)(unsafe.Pointer(pSelect)).FpEList, (*RowLoadInfo)(unsafe.Pointer(pInfo)).FregResult,
+ 0, (*RowLoadInfo)(unsafe.Pointer(pInfo)).FecelFlags)
+}
+
+func makeSorterRecord(tls *libc.TLS, pParse uintptr, pSort uintptr, pSelect uintptr, regBase int32, nBase int32) int32 {
+ var nOBSat int32 = (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var regOut int32 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if (*SortCtx)(unsafe.Pointer(pSort)).FpDeferredRowLoad != 0 {
+ innerLoopLoadRow(tls, pParse, pSelect, (*SortCtx)(unsafe.Pointer(pSort)).FpDeferredRowLoad)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regBase+nOBSat, nBase-nOBSat, regOut)
+ return regOut
+}
+
+func pushOntoSorter(tls *libc.TLS, pParse uintptr, pSort uintptr, pSelect uintptr, regData int32, regOrigData int32, nData int32, nPrefixReg int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var bSeq int32 = libc.Bool32(int32((*SortCtx)(unsafe.Pointer(pSort)).FsortFlags)&SORTFLAG_UseSorter == 0)
+ var nExpr int32 = (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy)).FnExpr
+ var nBase int32 = nExpr + bSeq + nData
+ var regBase int32
+ var regRecord int32 = 0
+ var nOBSat int32 = (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat
+ var op int32
+ var iLimit int32
+ var iSkip int32 = 0
+
+ if nPrefixReg != 0 {
+ regBase = regData - nPrefixReg
+ } else {
+ regBase = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nBase
+ }
+
+ if (*Select)(unsafe.Pointer(pSelect)).FiOffset != 0 {
+ iLimit = (*Select)(unsafe.Pointer(pSelect)).FiOffset + 1
+ } else {
+ iLimit = (*Select)(unsafe.Pointer(pSelect)).FiLimit
+ }
+ (*SortCtx)(unsafe.Pointer(pSort)).FlabelDone = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3ExprCodeExprList(tls, pParse, (*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy, regBase, regOrigData,
+ uint8(SQLITE_ECEL_DUP|func() int32 {
+ if regOrigData != 0 {
+ return SQLITE_ECEL_REF
+ }
+ return 0
+ }()))
+ if bSeq != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Sequence, (*SortCtx)(unsafe.Pointer(pSort)).FiECursor, regBase+nExpr)
+ }
+ if nPrefixReg == 0 && nData > 0 {
+ Xsqlite3ExprCodeMove(tls, pParse, regData, regBase+nExpr+bSeq, nData)
+ }
+ if nOBSat > 0 {
+ var regPrevKey int32
+ var addrFirst int32
+ var addrJmp int32
+ var pOp uintptr
+ var nKey int32
+ var pKI uintptr
+
+ regRecord = makeSorterRecord(tls, pParse, pSort, pSelect, regBase, nBase)
+ regPrevKey = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat
+ nKey = nExpr - (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat + bSeq
+ if bSeq != 0 {
+ addrFirst = Xsqlite3VdbeAddOp1(tls, v, OP_IfNot, regBase+nExpr)
+ } else {
+ addrFirst = Xsqlite3VdbeAddOp1(tls, v, OP_SequenceTest, (*SortCtx)(unsafe.Pointer(pSort)).FiECursor)
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Compare, regPrevKey, regBase, (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat)
+ pOp = Xsqlite3VdbeGetOp(tls, v, (*SortCtx)(unsafe.Pointer(pSort)).FaddrSortIndex)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return
+ }
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 = nKey + nData
+ pKI = *(*uintptr)(unsafe.Pointer(pOp + 16))
+ libc.X__builtin___memset_chk(tls, (*KeyInfo)(unsafe.Pointer(pKI)).FaSortFlags, 0, uint64((*KeyInfo)(unsafe.Pointer(pKI)).FnKeyField), libc.X__builtin_object_size(tls, (*KeyInfo)(unsafe.Pointer(pKI)).FaSortFlags, 0))
+ Xsqlite3VdbeChangeP4(tls, v, -1, pKI, -8)
+
+ *(*uintptr)(unsafe.Pointer(pOp + 16)) = Xsqlite3KeyInfoFromExprList(tls, pParse, (*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy, nOBSat,
+ int32((*KeyInfo)(unsafe.Pointer(pKI)).FnAllField)-int32((*KeyInfo)(unsafe.Pointer(pKI)).FnKeyField)-1)
+ pOp = uintptr(0)
+ addrJmp = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addrJmp+1, 0, addrJmp+1)
+ (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut = Xsqlite3VdbeMakeLabel(tls, pParse)
+ (*SortCtx)(unsafe.Pointer(pSort)).FregReturn = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*SortCtx)(unsafe.Pointer(pSort)).FregReturn, (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut)
+ Xsqlite3VdbeAddOp1(tls, v, OP_ResetSorter, (*SortCtx)(unsafe.Pointer(pSort)).FiECursor)
+ if iLimit != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNot, iLimit, (*SortCtx)(unsafe.Pointer(pSort)).FlabelDone)
+
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrFirst)
+ Xsqlite3ExprCodeMove(tls, pParse, regBase, regPrevKey, (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat)
+ Xsqlite3VdbeJumpHere(tls, v, addrJmp)
+ }
+ if iLimit != 0 {
+ var iCsr int32 = (*SortCtx)(unsafe.Pointer(pSort)).FiECursor
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNotZero, iLimit, Xsqlite3VdbeCurrentAddr(tls, v)+4)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Last, iCsr, 0)
+ iSkip = Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxLE,
+ iCsr, 0, regBase+nOBSat, nExpr-nOBSat)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Delete, iCsr)
+ }
+ if regRecord == 0 {
+ regRecord = makeSorterRecord(tls, pParse, pSort, pSelect, regBase, nBase)
+ }
+ if int32((*SortCtx)(unsafe.Pointer(pSort)).FsortFlags)&SORTFLAG_UseSorter != 0 {
+ op = OP_SorterInsert
+ } else {
+ op = OP_IdxInsert
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, op, (*SortCtx)(unsafe.Pointer(pSort)).FiECursor, regRecord,
+ regBase+nOBSat, nBase-nOBSat)
+ if iSkip != 0 {
+ Xsqlite3VdbeChangeP2(tls, v, iSkip,
+ func() int32 {
+ if (*SortCtx)(unsafe.Pointer(pSort)).FlabelOBLopt != 0 {
+ return (*SortCtx)(unsafe.Pointer(pSort)).FlabelOBLopt
+ }
+ return Xsqlite3VdbeCurrentAddr(tls, v)
+ }())
+ }
+}
+
+func codeOffset(tls *libc.TLS, v uintptr, iOffset int32, iContinue int32) {
+ if iOffset > 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_IfPos, iOffset, iContinue, 1)
+
+ }
+}
+
+func codeDistinct(tls *libc.TLS, pParse uintptr, eTnctType int32, iTab int32, addrRepeat int32, pEList uintptr, regElem int32) int32 {
+ var iRet int32 = 0
+ var nResultCol int32 = (*ExprList)(unsafe.Pointer(pEList)).FnExpr
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ switch eTnctType {
+ case WHERE_DISTINCT_ORDERED:
+ {
+ var i int32
+ var iJump int32
+ var regPrev int32
+
+ iRet = libc.AssignInt32(&regPrev, (*Parse)(unsafe.Pointer(pParse)).FnMem+1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nResultCol
+
+ iJump = Xsqlite3VdbeCurrentAddr(tls, v) + nResultCol
+ for i = 0; i < nResultCol; i++ {
+ var pColl uintptr = Xsqlite3ExprCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FpExpr)
+ if i < nResultCol-1 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ne, regElem+i, iJump, regPrev+i)
+
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regElem+i, addrRepeat, regPrev+i)
+
+ }
+ Xsqlite3VdbeChangeP4(tls, v, -1, pColl, -2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NULLEQ))
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regElem, regPrev, nResultCol-1)
+ break
+
+ }
+
+ case WHERE_DISTINCT_UNIQUE:
+ {
+ break
+
+ }
+
+ default:
+ {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, iTab, addrRepeat, regElem, nResultCol)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regElem, nResultCol, r1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iTab, r1, regElem, nResultCol)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ iRet = iTab
+ break
+
+ }
+ }
+
+ return iRet
+}
+
+func fixDistinctOpenEph(tls *libc.TLS, pParse uintptr, eTnctType int32, iVal int32, iOpenEphAddr int32) {
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 &&
+ (eTnctType == WHERE_DISTINCT_UNIQUE || eTnctType == WHERE_DISTINCT_ORDERED) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ Xsqlite3VdbeChangeToNoop(tls, v, iOpenEphAddr)
+ if int32((*VdbeOp)(unsafe.Pointer(Xsqlite3VdbeGetOp(tls, v, iOpenEphAddr+1))).Fopcode) == OP_Explain {
+ Xsqlite3VdbeChangeToNoop(tls, v, iOpenEphAddr+1)
+ }
+ if eTnctType == WHERE_DISTINCT_ORDERED {
+ var pOp uintptr = Xsqlite3VdbeGetOp(tls, v, iOpenEphAddr)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(OP_Null)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = 1
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 = iVal
+ }
+ }
+}
+
+func selectInnerLoop(tls *libc.TLS, pParse uintptr, p uintptr, srcTab int32, pSort uintptr, pDistinct uintptr, pDest uintptr, iContinue int32, iBreak int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var hasDistinct int32
+ var eDest int32 = int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest)
+ var iParm int32 = (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm
+ var nResultCol int32
+ var nPrefixReg int32 = 0
+
+ var regResult int32
+ var regOrig int32
+
+ if pDistinct != 0 {
+ hasDistinct = int32((*DistinctCtx)(unsafe.Pointer(pDistinct)).FeTnctType)
+ } else {
+ hasDistinct = WHERE_DISTINCT_NOOP
+ }
+ if pSort != 0 && (*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy == uintptr(0) {
+ pSort = uintptr(0)
+ }
+ if pSort == uintptr(0) && !(hasDistinct != 0) {
+ codeOffset(tls, v, (*Select)(unsafe.Pointer(p)).FiOffset, iContinue)
+ }
+
+ nResultCol = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr
+
+ if (*SelectDest)(unsafe.Pointer(pDest)).FiSdst == 0 {
+ if pSort != 0 {
+ nPrefixReg = (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy)).FnExpr
+ if !(int32((*SortCtx)(unsafe.Pointer(pSort)).FsortFlags)&SORTFLAG_UseSorter != 0) {
+ nPrefixReg++
+ }
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPrefixReg
+ }
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSdst = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nResultCol
+ } else if (*SelectDest)(unsafe.Pointer(pDest)).FiSdst+nResultCol > (*Parse)(unsafe.Pointer(pParse)).FnMem {
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nResultCol
+ }
+ (*SelectDest)(unsafe.Pointer(pDest)).FnSdst = nResultCol
+ regOrig = libc.AssignInt32(&regResult, (*SelectDest)(unsafe.Pointer(pDest)).FiSdst)
+ if srcTab >= 0 {
+ for i = 0; i < nResultCol; i++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, srcTab, i, regResult+i)
+
+ }
+ } else if eDest != SRT_Exists {
+ var ecelFlags U8
+ var pEList uintptr
+ if eDest == SRT_Mem || eDest == SRT_Output || eDest == SRT_Coroutine {
+ ecelFlags = U8(SQLITE_ECEL_DUP)
+ } else {
+ ecelFlags = U8(0)
+ }
+ if pSort != 0 && hasDistinct == 0 && eDest != SRT_EphemTab && eDest != SRT_Table {
+ ecelFlags = U8(int32(ecelFlags) | (SQLITE_ECEL_OMITREF | SQLITE_ECEL_REF))
+
+ for i = (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat; i < (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy)).FnExpr; i++ {
+ var j int32
+ if libc.AssignInt32(&j, int32(*(*U16)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy + 8 + uintptr(i)*32 + 24)))) > 0 {
+ *(*U16)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList + 8 + uintptr(j-1)*32 + 24)) = U16(i + 1 - (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat)
+ }
+ }
+
+ pEList = (*Select)(unsafe.Pointer(p)).FpEList
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ if int32(*(*U16)(unsafe.Pointer(pEList + 8 + uintptr(i)*32 + 24))) > 0 {
+ nResultCol--
+ regOrig = 0
+ }
+ }
+
+ }
+ (*RowLoadInfo)(unsafe.Pointer(bp)).FregResult = regResult
+ (*RowLoadInfo)(unsafe.Pointer(bp)).FecelFlags = ecelFlags
+ if (*Select)(unsafe.Pointer(p)).FiLimit != 0 &&
+ int32(ecelFlags)&SQLITE_ECEL_OMITREF != 0 &&
+ nPrefixReg > 0 {
+ (*SortCtx)(unsafe.Pointer(pSort)).FpDeferredRowLoad = bp
+ regOrig = 0
+ } else {
+ innerLoopLoadRow(tls, pParse, p, bp)
+ }
+ }
+
+ if hasDistinct != 0 {
+ var eType int32 = int32((*DistinctCtx)(unsafe.Pointer(pDistinct)).FeTnctType)
+ var iTab int32 = (*DistinctCtx)(unsafe.Pointer(pDistinct)).FtabTnct
+
+ iTab = codeDistinct(tls, pParse, eType, iTab, iContinue, (*Select)(unsafe.Pointer(p)).FpEList, regResult)
+ fixDistinctOpenEph(tls, pParse, eType, iTab, (*DistinctCtx)(unsafe.Pointer(pDistinct)).FaddrTnct)
+ if pSort == uintptr(0) {
+ codeOffset(tls, v, (*Select)(unsafe.Pointer(p)).FiOffset, iContinue)
+ }
+ }
+
+ switch eDest {
+ case SRT_Union:
+ {
+ var r1 int32
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regResult, nResultCol, r1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, r1, regResult, nResultCol)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ break
+
+ }
+
+ case SRT_Except:
+ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_IdxDelete, iParm, regResult, nResultCol)
+ break
+
+ }
+
+ case SRT_Fifo:
+ fallthrough
+ case SRT_DistFifo:
+ fallthrough
+ case SRT_Table:
+ fallthrough
+ case SRT_EphemTab:
+ {
+ var r1 int32 = Xsqlite3GetTempRange(tls, pParse, nPrefixReg+1)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regResult, nResultCol, r1+nPrefixReg)
+ if eDest == SRT_DistFifo {
+ var addr int32 = Xsqlite3VdbeCurrentAddr(tls, v) + 4
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, iParm+1, addr, r1, 0)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm+1, r1, regResult, nResultCol)
+
+ }
+ if pSort != 0 {
+ pushOntoSorter(tls, pParse, pSort, p, r1+nPrefixReg, regOrig, 1, nPrefixReg)
+ } else {
+ var r2 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iParm, r2)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iParm, r1, r2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+ Xsqlite3ReleaseTempReg(tls, pParse, r2)
+ }
+ Xsqlite3ReleaseTempRange(tls, pParse, r1, nPrefixReg+1)
+ break
+
+ }
+
+ case SRT_Upfrom:
+ {
+ if pSort != 0 {
+ pushOntoSorter(tls,
+ pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg)
+ } else {
+ var i2 int32 = (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm2
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regResult, iBreak)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord,
+ regResult+libc.Bool32(i2 < 0), nResultCol-libc.Bool32(i2 < 0), r1)
+ if i2 < 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iParm, r1, regResult)
+ } else {
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, r1, regResult, i2)
+ }
+ }
+ break
+
+ }
+
+ case SRT_Set:
+ {
+ if pSort != 0 {
+ pushOntoSorter(tls,
+ pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg)
+ } else {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, regResult, nResultCol,
+ r1, (*SelectDest)(unsafe.Pointer(pDest)).FzAffSdst, nResultCol)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, r1, regResult, nResultCol)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ }
+ break
+
+ }
+
+ case SRT_Exists:
+ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, iParm)
+
+ break
+
+ }
+
+ case SRT_Mem:
+ {
+ if pSort != 0 {
+ pushOntoSorter(tls,
+ pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg)
+ } else {
+ }
+ break
+
+ }
+
+ case SRT_Coroutine:
+ fallthrough
+ case SRT_Output:
+ {
+ if pSort != 0 {
+ pushOntoSorter(tls, pParse, pSort, p, regResult, regOrig, nResultCol,
+ nPrefixReg)
+ } else if eDest == SRT_Coroutine {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, regResult, nResultCol)
+ }
+ break
+
+ }
+
+ case SRT_DistQueue:
+ fallthrough
+ case SRT_Queue:
+ {
+ var nKey int32
+ var r1 int32
+ var r2 int32
+ var r3 int32
+ var addrTest int32 = 0
+ var pSO uintptr
+ pSO = (*SelectDest)(unsafe.Pointer(pDest)).FpOrderBy
+
+ nKey = (*ExprList)(unsafe.Pointer(pSO)).FnExpr
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ r2 = Xsqlite3GetTempRange(tls, pParse, nKey+2)
+ r3 = r2 + nKey + 1
+ if eDest == SRT_DistQueue {
+ addrTest = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, iParm+1, 0,
+ regResult, nResultCol)
+
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regResult, nResultCol, r3)
+ if eDest == SRT_DistQueue {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxInsert, iParm+1, r3)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+ }
+ for i = 0; i < nKey; i++ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy,
+ regResult+int32(*(*U16)(unsafe.Pointer(pSO + 8 + uintptr(i)*32 + 24)))-1,
+ r2+i)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Sequence, iParm, r2+nKey)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, r2, nKey+2, r1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, r1, r2, nKey+2)
+ if addrTest != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrTest)
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ Xsqlite3ReleaseTempRange(tls, pParse, r2, nKey+2)
+ break
+
+ }
+
+ default:
+ {
+ break
+
+ }
+ }
+
+ if pSort == uintptr(0) && (*Select)(unsafe.Pointer(p)).FiLimit != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_DecrJumpZero, (*Select)(unsafe.Pointer(p)).FiLimit, iBreak)
+ }
+}
+
+// Allocate a KeyInfo object sufficient for an index of N key columns and
+// X extra columns.
+func Xsqlite3KeyInfoAlloc(tls *libc.TLS, db uintptr, N int32, X int32) uintptr {
+ var nExtra int32 = int32(uint64(N+X)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64(1)) - uint64(unsafe.Sizeof(uintptr(0))))
+ var p uintptr = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(KeyInfo{}))+uint64(nExtra))
+ if p != 0 {
+ (*KeyInfo)(unsafe.Pointer(p)).FaSortFlags = p + 32 + uintptr(N+X)*8
+ (*KeyInfo)(unsafe.Pointer(p)).FnKeyField = U16(N)
+ (*KeyInfo)(unsafe.Pointer(p)).FnAllField = U16(N + X)
+ (*KeyInfo)(unsafe.Pointer(p)).Fenc = (*Sqlite3)(unsafe.Pointer(db)).Fenc
+ (*KeyInfo)(unsafe.Pointer(p)).Fdb = db
+ (*KeyInfo)(unsafe.Pointer(p)).FnRef = U32(1)
+ libc.X__builtin___memset_chk(tls, p+1*40, 0, uint64(nExtra), libc.X__builtin_object_size(tls, p+1*40, 0))
+ } else {
+ return Xsqlite3OomFault(tls, db)
+ }
+ return p
+}
+
+// Deallocate a KeyInfo object
+func Xsqlite3KeyInfoUnref(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ (*KeyInfo)(unsafe.Pointer(p)).FnRef--
+ if (*KeyInfo)(unsafe.Pointer(p)).FnRef == U32(0) {
+ Xsqlite3DbNNFreeNN(tls, (*KeyInfo)(unsafe.Pointer(p)).Fdb, p)
+ }
+ }
+}
+
+// Make a new pointer to a KeyInfo object
+func Xsqlite3KeyInfoRef(tls *libc.TLS, p uintptr) uintptr {
+ if p != 0 {
+ (*KeyInfo)(unsafe.Pointer(p)).FnRef++
+ }
+ return p
+}
+
+// Given an expression list, generate a KeyInfo structure that records
+// the collating sequence for each expression in that expression list.
+//
+// If the ExprList is an ORDER BY or GROUP BY clause then the resulting
+// KeyInfo structure is appropriate for initializing a virtual index to
+// implement that clause. If the ExprList is the result set of a SELECT
+// then the KeyInfo structure is appropriate for initializing a virtual
+// index to implement a DISTINCT test.
+//
+// Space to hold the KeyInfo structure is obtained from malloc. The calling
+// function is responsible for seeing that this structure is eventually
+// freed.
+func Xsqlite3KeyInfoFromExprList(tls *libc.TLS, pParse uintptr, pList uintptr, iStart int32, nExtra int32) uintptr {
+ var nExpr int32
+ var pInfo uintptr
+ var pItem uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+
+ nExpr = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ pInfo = Xsqlite3KeyInfoAlloc(tls, db, nExpr-iStart, nExtra+1)
+ if pInfo != 0 {
+ i = iStart
+ pItem = pList + 8 + uintptr(iStart)*32
+ __1:
+ if !(i < nExpr) {
+ goto __3
+ }
+ {
+ *(*uintptr)(unsafe.Pointer(pInfo + 32 + uintptr(i-iStart)*8)) = Xsqlite3ExprNNCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pInfo)).FaSortFlags + uintptr(i-iStart))) = (*ExprList_item)(unsafe.Pointer(pItem)).Ffg.FsortFlags
+
+ }
+ goto __2
+ __2:
+ i++
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ }
+ return pInfo
+}
+
+// Name of the connection operator, used for error messages.
+func Xsqlite3SelectOpName(tls *libc.TLS, id int32) uintptr {
+ var z uintptr
+ switch id {
+ case TK_ALL:
+ z = ts + 19151
+ break
+ case TK_INTERSECT:
+ z = ts + 19161
+ break
+ case TK_EXCEPT:
+ z = ts + 19171
+ break
+ default:
+ z = ts + 19178
+ break
+ }
+ return z
+}
+
+func explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+19184, libc.VaList(bp, zUsage))
+}
+
+func generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, nColumn int32, pDest uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var addrBreak int32 = (*SortCtx)(unsafe.Pointer(pSort)).FlabelDone
+ var addrContinue int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var addr int32
+ var addrOnce int32 = 0
+ var iTab int32
+ var pOrderBy uintptr = (*SortCtx)(unsafe.Pointer(pSort)).FpOrderBy
+ var eDest int32 = int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest)
+ var iParm int32 = (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm
+ var regRow int32
+ var regRowid int32
+ var iCol int32
+ var nKey int32
+ var iSortTab int32
+ var i int32
+ var bSeq int32
+ var nRefKey int32 = 0
+ var aOutEx uintptr = (*Select)(unsafe.Pointer(p)).FpEList + 8
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+19207, libc.VaList(bp, func() uintptr {
+ if (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 {
+ return ts + 19238
+ }
+ return ts + 1547
+ }()))
+
+ if (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*SortCtx)(unsafe.Pointer(pSort)).FregReturn, (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut)
+ Xsqlite3VdbeGoto(tls, v, addrBreak)
+ Xsqlite3VdbeResolveLabel(tls, v, (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut)
+ }
+
+ iTab = (*SortCtx)(unsafe.Pointer(pSort)).FiECursor
+ if eDest == SRT_Output || eDest == SRT_Coroutine || eDest == SRT_Mem {
+ if eDest == SRT_Mem && (*Select)(unsafe.Pointer(p)).FiOffset != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*SelectDest)(unsafe.Pointer(pDest)).FiSdst)
+ }
+ regRowid = 0
+ regRow = (*SelectDest)(unsafe.Pointer(pDest)).FiSdst
+ } else {
+ regRowid = Xsqlite3GetTempReg(tls, pParse)
+ if eDest == SRT_EphemTab || eDest == SRT_Table {
+ regRow = Xsqlite3GetTempReg(tls, pParse)
+ nColumn = 0
+ } else {
+ regRow = Xsqlite3GetTempRange(tls, pParse, nColumn)
+ }
+ }
+ nKey = (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*SortCtx)(unsafe.Pointer(pSort)).FnOBSat
+ if int32((*SortCtx)(unsafe.Pointer(pSort)).FsortFlags)&SORTFLAG_UseSorter != 0 {
+ var regSortOut int32 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ iSortTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ if (*SortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 {
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenPseudo, iSortTab, regSortOut,
+ nKey+1+nColumn+nRefKey)
+ if addrOnce != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrOnce)
+ }
+ addr = 1 + Xsqlite3VdbeAddOp2(tls, v, OP_SorterSort, iTab, addrBreak)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SorterData, iTab, regSortOut, iSortTab)
+ bSeq = 0
+ } else {
+ addr = 1 + Xsqlite3VdbeAddOp2(tls, v, OP_Sort, iTab, addrBreak)
+ codeOffset(tls, v, (*Select)(unsafe.Pointer(p)).FiOffset, addrContinue)
+ iSortTab = iTab
+ bSeq = 1
+ if (*Select)(unsafe.Pointer(p)).FiOffset > 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, (*Select)(unsafe.Pointer(p)).FiLimit, -1)
+ }
+ }
+ i = 0
+ iCol = nKey + bSeq - 1
+ for ; i < nColumn; i++ {
+ if int32(*(*U16)(unsafe.Pointer(aOutEx + uintptr(i)*32 + 24))) == 0 {
+ iCol++
+ }
+ }
+ for i = nColumn - 1; i >= 0; i-- {
+ {
+ var iRead int32
+ if *(*U16)(unsafe.Pointer(aOutEx + uintptr(i)*32 + 24)) != 0 {
+ iRead = int32(*(*U16)(unsafe.Pointer(aOutEx + uintptr(i)*32 + 24))) - 1
+ } else {
+ iRead = libc.PostDecInt32(&iCol, 1)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iSortTab, iRead, regRow+i)
+
+ }
+ }
+
+ switch eDest {
+ case SRT_Table:
+ fallthrough
+ case SRT_EphemTab:
+ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iSortTab, nKey+bSeq, regRow)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, iParm, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iParm, regRow, regRowid)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+ break
+
+ }
+ case SRT_Set:
+ {
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, regRow, nColumn, regRowid,
+ (*SelectDest)(unsafe.Pointer(pDest)).FzAffSdst, nColumn)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, regRowid, regRow, nColumn)
+ break
+
+ }
+ case SRT_Mem:
+ {
+ break
+
+ }
+ case SRT_Upfrom:
+ {
+ var i2 int32 = (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm2
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regRow+libc.Bool32(i2 < 0), nColumn-libc.Bool32(i2 < 0), r1)
+ if i2 < 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iParm, r1, regRow)
+ } else {
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iParm, r1, regRow, i2)
+ }
+ break
+
+ }
+ default:
+ {
+ if eDest == SRT_Output {
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, (*SelectDest)(unsafe.Pointer(pDest)).FiSdst, nColumn)
+ } else {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm)
+ }
+ break
+
+ }
+ }
+ if regRowid != 0 {
+ if eDest == SRT_Set {
+ Xsqlite3ReleaseTempRange(tls, pParse, regRow, nColumn)
+ } else {
+ Xsqlite3ReleaseTempReg(tls, pParse, regRow)
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid)
+ }
+
+ Xsqlite3VdbeResolveLabel(tls, v, addrContinue)
+ if int32((*SortCtx)(unsafe.Pointer(pSort)).FsortFlags)&SORTFLAG_UseSorter != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterNext, iTab, addr)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iTab, addr)
+ }
+
+ if (*SortCtx)(unsafe.Pointer(pSort)).FregReturn != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, (*SortCtx)(unsafe.Pointer(pSort)).FregReturn)
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, addrBreak)
+}
+
+func columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr, pzOrigTab uintptr, pzOrigCol uintptr) uintptr {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var zType uintptr = uintptr(0)
+ var j int32
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_COLUMN:
+ {
+ var pTab uintptr = uintptr(0)
+ var pS uintptr = uintptr(0)
+ var iCol int32 = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ for pNC != 0 && !(pTab != 0) {
+ var pTabList uintptr = (*NameContext)(unsafe.Pointer(pNC)).FpSrcList
+ for j = 0; j < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc && (*SrcItem)(unsafe.Pointer(pTabList+8+uintptr(j)*104)).FiCursor != (*Expr)(unsafe.Pointer(pExpr)).FiTable; j++ {
+ }
+ if j < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc {
+ pTab = (*SrcItem)(unsafe.Pointer(pTabList + 8 + uintptr(j)*104)).FpTab
+ pS = (*SrcItem)(unsafe.Pointer(pTabList + 8 + uintptr(j)*104)).FpSelect
+ } else {
+ pNC = (*NameContext)(unsafe.Pointer(pNC)).FpNext
+ }
+ }
+
+ if pTab == uintptr(0) {
+ break
+ }
+
+ if pS != 0 {
+ if iCol < (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pS)).FpEList)).FnExpr &&
+ iCol >= 0 {
+ var p uintptr = (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pS)).FpEList + 8 + uintptr(iCol)*32)).FpExpr
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = (*Select)(unsafe.Pointer(pS)).FpSrc
+ (*NameContext)(unsafe.Pointer(bp)).FpNext = pNC
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ zType = columnTypeImpl(tls, bp, p, bp+56, bp+64, bp+72)
+ }
+ } else {
+ if iCol < 0 {
+ iCol = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ }
+
+ if iCol < 0 {
+ zType = ts + 1112
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = ts + 16673
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).FzCnName
+ zType = Xsqlite3ColumnType(tls, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24, uintptr(0))
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = (*Table)(unsafe.Pointer(pTab)).FzName
+ if (*NameContext)(unsafe.Pointer(pNC)).FpParse != 0 && (*Table)(unsafe.Pointer(pTab)).FpSchema != 0 {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer((*NameContext)(unsafe.Pointer(pNC)).FpParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*NameContext)(unsafe.Pointer(pNC)).FpParse)).Fdb)).FaDb + uintptr(iDb)*32)).FzDbSName
+ }
+ }
+ break
+
+ }
+ case TK_SELECT:
+ {
+ var pS uintptr
+ var p uintptr
+
+ pS = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ p = (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pS)).FpEList + 8)).FpExpr
+ (*NameContext)(unsafe.Pointer(bp + 80)).FpSrcList = (*Select)(unsafe.Pointer(pS)).FpSrc
+ (*NameContext)(unsafe.Pointer(bp + 80)).FpNext = pNC
+ (*NameContext)(unsafe.Pointer(bp + 80)).FpParse = (*NameContext)(unsafe.Pointer(pNC)).FpParse
+ zType = columnTypeImpl(tls, bp+80, p, bp+56, bp+64, bp+72)
+ break
+
+ }
+ }
+
+ if pzOrigDb != 0 {
+ *(*uintptr)(unsafe.Pointer(pzOrigDb)) = *(*uintptr)(unsafe.Pointer(bp + 56))
+ *(*uintptr)(unsafe.Pointer(pzOrigTab)) = *(*uintptr)(unsafe.Pointer(bp + 64))
+ *(*uintptr)(unsafe.Pointer(pzOrigCol)) = *(*uintptr)(unsafe.Pointer(bp + 72))
+ }
+ return zType
+}
+
+func generateColumnTypes(tls *libc.TLS, pParse uintptr, pTabList uintptr, pEList uintptr) {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = pTabList
+ (*NameContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp)).FpNext = uintptr(0)
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ var p uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FpExpr
+ var zType uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+ zType = columnTypeImpl(tls, bp, p, bp+56, bp+64, bp+72)
+
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_DATABASE, *(*uintptr)(unsafe.Pointer(bp + 56)), libc.UintptrFromInt32(-1))
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_TABLE, *(*uintptr)(unsafe.Pointer(bp + 64)), libc.UintptrFromInt32(-1))
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_COLUMN, *(*uintptr)(unsafe.Pointer(bp + 72)), libc.UintptrFromInt32(-1))
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_DECLTYPE, zType, libc.UintptrFromInt32(-1))
+ }
+}
+
+// Compute the column names for a SELECT statement.
+//
+// The only guarantee that SQLite makes about column names is that if the
+// column has an AS clause assigning it a name, that will be the name used.
+// That is the only documented guarantee. However, countless applications
+// developed over the years have made baseless assumptions about column names
+// and will break if those assumptions changes. Hence, use extreme caution
+// when modifying this routine to avoid breaking legacy.
+//
+// See Also: sqlite3ColumnsFromExprList()
+//
+// The PRAGMA short_column_names and PRAGMA full_column_names settings are
+// deprecated. The default setting is short=ON, full=OFF. 99.9% of all
+// applications should operate this way. Nevertheless, we need to support the
+// other modes for legacy:
+//
+// short=OFF, full=OFF: Column name is the text of the expression has it
+// originally appears in the SELECT statement. In
+// other words, the zSpan of the result expression.
+//
+// short=ON, full=OFF: (This is the default setting). If the result
+// refers directly to a table column, then the
+// result column name is just the table column
+// name: COLUMN. Otherwise use zSpan.
+//
+// full=ON, short=ANY: If the result refers directly to a table column,
+// then the result column name with the table name
+// prefix, ex: TABLE.COLUMN. Otherwise use zSpan.
+func Xsqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var pTab uintptr
+ var pTabList uintptr
+ var pEList uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var fullName int32
+ var srcName int32
+
+ if (*Parse)(unsafe.Pointer(pParse)).Fexplain != 0 {
+ return
+ }
+
+ if (*Parse)(unsafe.Pointer(pParse)).FcolNamesSet != 0 {
+ return
+ }
+
+ for (*Select)(unsafe.Pointer(pSelect)).FpPrior != 0 {
+ pSelect = (*Select)(unsafe.Pointer(pSelect)).FpPrior
+ }
+
+ pTabList = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ pEList = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ (*Parse)(unsafe.Pointer(pParse)).FcolNamesSet = U8(1)
+ fullName = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_FullColNames) != uint64(0))
+ srcName = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ShortColNames) != uint64(0) || fullName != 0)
+ Xsqlite3VdbeSetNumCols(tls, v, (*ExprList)(unsafe.Pointer(pEList)).FnExpr)
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; i++ {
+ var p uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FpExpr
+
+ if (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(i)*32)).FzEName != 0 && int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0) == ENAME_NAME {
+ var zName uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FzEName
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName, libc.UintptrFromInt32(-1))
+ } else if srcName != 0 && int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLUMN {
+ var zCol uintptr
+ var iCol int32 = int32((*Expr)(unsafe.Pointer(p)).FiColumn)
+ pTab = *(*uintptr)(unsafe.Pointer(p + 64))
+
+ if iCol < 0 {
+ iCol = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ }
+
+ if iCol < 0 {
+ zCol = ts + 16673
+ } else {
+ zCol = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).FzCnName
+ }
+ if fullName != 0 {
+ var zName uintptr = uintptr(0)
+ zName = Xsqlite3MPrintf(tls, db, ts+12464, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName, zCol))
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ } else {
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, libc.UintptrFromInt32(-1))
+ }
+ } else {
+ var z uintptr = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32)).FzEName
+ if z == uintptr(0) {
+ z = Xsqlite3MPrintf(tls, db, ts+19253, libc.VaList(bp+16, i+1))
+ } else {
+ z = Xsqlite3DbStrDup(tls, db, z)
+ }
+ Xsqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, z, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3OomClear})))
+ }
+ }
+ generateColumnTypes(tls, pParse, pTabList, pEList)
+}
+
+// Given an expression list (which is really the list of expressions
+// that form the result set of a SELECT statement) compute appropriate
+// column names for a table that would hold the expression list.
+//
+// All column names will be unique.
+//
+// Only the column names are computed. Column.zType, Column.zColl,
+// and other fields of Column are zeroed.
+//
+// Return SQLITE_OK on success. If a memory allocation error occurs,
+// store NULL in *paCol and 0 in *pnCol and return SQLITE_NOMEM.
+//
+// The only guarantee that SQLite makes about column names is that if the
+// column has an AS clause assigning it a name, that will be the name used.
+// That is the only documented guarantee. However, countless applications
+// developed over the years have made baseless assumptions about column names
+// and will break if those assumptions changes. Hence, use extreme caution
+// when modifying this routine to avoid breaking legacy.
+//
+// See Also: sqlite3GenerateColumnNames()
+func Xsqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, pnCol uintptr, paCol uintptr) int32 {
+ bp := tls.Alloc(60)
+ defer tls.Free(60)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+ var j int32
+
+ var aCol uintptr
+ var pCol uintptr
+ var nCol int32
+ var zName uintptr
+ var nName int32
+
+ var pTab uintptr
+
+ Xsqlite3HashInit(tls, bp+32)
+ if pEList != 0 {
+ nCol = (*ExprList)(unsafe.Pointer(pEList)).FnExpr
+ aCol = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Column{}))*uint64(nCol))
+
+ if nCol > 32767 {
+ nCol = 32767
+ }
+ } else {
+ nCol = 0
+ aCol = uintptr(0)
+ }
+
+ *(*I16)(unsafe.Pointer(pnCol)) = I16(nCol)
+ *(*uintptr)(unsafe.Pointer(paCol)) = aCol
+
+ i = 0
+ pCol = aCol
+__1:
+ if !(i < nCol && !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0)) {
+ goto __3
+ }
+ {
+ var pX uintptr = pEList + 8 + uintptr(i)*32
+ var pCollide uintptr
+
+ if libc.AssignUintptr(&zName, (*ExprList_item)(unsafe.Pointer(pX)).FzEName) != uintptr(0) && int32(*(*uint16)(unsafe.Pointer(pX + 16 + 4))&0x3>>0) == ENAME_NAME {
+ } else {
+ var pColExpr uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pX)).FpExpr)
+ for pColExpr != uintptr(0) && int32((*Expr)(unsafe.Pointer(pColExpr)).Fop) == TK_DOT {
+ pColExpr = (*Expr)(unsafe.Pointer(pColExpr)).FpRight
+
+ }
+ if int32((*Expr)(unsafe.Pointer(pColExpr)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pColExpr)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0) &&
+ *(*uintptr)(unsafe.Pointer(pColExpr + 64)) != uintptr(0) {
+ var iCol int32 = int32((*Expr)(unsafe.Pointer(pColExpr)).FiColumn)
+ pTab = *(*uintptr)(unsafe.Pointer(pColExpr + 64))
+ if iCol < 0 {
+ iCol = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ }
+ if iCol >= 0 {
+ zName = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24)).FzCnName
+ } else {
+ zName = ts + 16673
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pColExpr)).Fop) == TK_ID {
+ zName = *(*uintptr)(unsafe.Pointer(pColExpr + 8))
+ } else {
+ }
+ }
+ if zName != 0 && !(Xsqlite3IsTrueOrFalse(tls, zName) != 0) {
+ zName = Xsqlite3DbStrDup(tls, db, zName)
+ } else {
+ zName = Xsqlite3MPrintf(tls, db, ts+19253, libc.VaList(bp, i+1))
+ }
+
+ *(*U32)(unsafe.Pointer(bp + 56)) = U32(0)
+ for zName != 0 && libc.AssignUintptr(&pCollide, Xsqlite3HashFind(tls, bp+32, zName)) != uintptr(0) {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pCollide + 16 + 4))&0x80>>7)) != 0 {
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_NOEXPAND)
+ }
+ nName = Xsqlite3Strlen30(tls, zName)
+ if nName > 0 {
+ for j = nName - 1; j > 0 && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zName + uintptr(j))))])&0x04 != 0; j-- {
+ }
+ if int32(*(*int8)(unsafe.Pointer(zName + uintptr(j)))) == ':' {
+ nName = j
+ }
+ }
+ zName = Xsqlite3MPrintf(tls, db, ts+19262, libc.VaList(bp+8, nName, zName, libc.PreIncUint32(&*(*U32)(unsafe.Pointer(bp + 56)), 1)))
+ Xsqlite3ProgressCheck(tls, pParse)
+ if *(*U32)(unsafe.Pointer(bp + 56)) > U32(3) {
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(U32(0))), bp+56)
+ }
+ }
+ (*Column)(unsafe.Pointer(pCol)).FzCnName = zName
+ (*Column)(unsafe.Pointer(pCol)).FhName = Xsqlite3StrIHash(tls, zName)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pX + 16 + 4))&0x100>>8)) != 0 {
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_NOEXPAND)
+ }
+
+ if zName != 0 && Xsqlite3HashInsert(tls, bp+32, zName, pX) == pX {
+ Xsqlite3OomFault(tls, db)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pCol += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ Xsqlite3HashClear(tls, bp+32)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ for j = 0; j < i; j++ {
+ Xsqlite3DbFree(tls, db, (*Column)(unsafe.Pointer(aCol+uintptr(j)*24)).FzCnName)
+ }
+ Xsqlite3DbFree(tls, db, aCol)
+ *(*uintptr)(unsafe.Pointer(paCol)) = uintptr(0)
+ *(*I16)(unsafe.Pointer(pnCol)) = int16(0)
+ return (*Parse)(unsafe.Pointer(pParse)).Frc
+ }
+ return SQLITE_OK
+}
+
+// pTab is a transient Table object that represents a subquery of some
+// kind (maybe a parenthesized subquery in the FROM clause of a larger
+// query, or a VIEW, or a CTE). This routine computes type information
+// for that Table object based on the Select object that implements the
+// subquery. For the purposes of this routine, "type infomation" means:
+//
+// - The datatype name, as it might appear in a CREATE TABLE statement
+// - Which collating sequence to use for the column
+// - The affinity of the column
+func Xsqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pSelect uintptr, aff int8) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pCol uintptr
+ var pColl uintptr
+ var i int32
+ var j int32
+ var p uintptr
+ var a uintptr
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+ for (*Select)(unsafe.Pointer(pSelect)).FpPrior != 0 {
+ pSelect = (*Select)(unsafe.Pointer(pSelect)).FpPrior
+ }
+ a = (*Select)(unsafe.Pointer(pSelect)).FpEList + 8
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*NameContext)(unsafe.Pointer(bp)).FpSrcList = (*Select)(unsafe.Pointer(pSelect)).FpSrc
+ i = 0
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol
+__1:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __3
+ }
+ {
+ var zType uintptr
+ var n I64
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags) & COLFLAG_NOINSERT)
+ p = (*ExprList_item)(unsafe.Pointer(a + uintptr(i)*32)).FpExpr
+
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = Xsqlite3ExprAffinity(tls, p)
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) <= SQLITE_AFF_NONE {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = aff
+ } else if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) >= SQLITE_AFF_NUMERIC && int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_CAST {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = int8(SQLITE_AFF_FLEXNUM)
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) >= SQLITE_AFF_TEXT && (*Select)(unsafe.Pointer(pSelect)).FpNext != 0 {
+ var m int32 = 0
+ var pS2 uintptr
+ m = 0
+ pS2 = (*Select)(unsafe.Pointer(pSelect)).FpNext
+ for ; pS2 != 0; pS2 = (*Select)(unsafe.Pointer(pS2)).FpNext {
+ m = m | Xsqlite3ExprDataType(tls, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pS2)).FpEList+8+uintptr(i)*32)).FpExpr)
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) == SQLITE_AFF_TEXT && m&0x01 != 0 {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = int8(SQLITE_AFF_BLOB)
+ } else if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) >= SQLITE_AFF_NUMERIC && m&0x02 != 0 {
+ (*Column)(unsafe.Pointer(pCol)).Faffinity = int8(SQLITE_AFF_BLOB)
+ }
+ }
+ zType = columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0))
+ if zType == uintptr(0) || int32((*Column)(unsafe.Pointer(pCol)).Faffinity) != int32(Xsqlite3AffinityType(tls, zType, uintptr(0))) {
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) == SQLITE_AFF_NUMERIC ||
+ int32((*Column)(unsafe.Pointer(pCol)).Faffinity) == SQLITE_AFF_FLEXNUM {
+ zType = ts + 19270
+ } else {
+ zType = uintptr(0)
+ for j = 1; j < SQLITE_N_STDTYPE; j++ {
+ if int32(Xsqlite3StdTypeAffinity[j]) == int32((*Column)(unsafe.Pointer(pCol)).Faffinity) {
+ zType = Xsqlite3StdType[j]
+ break
+ }
+ }
+ }
+ }
+ if zType != 0 {
+ var m I64 = I64(Xsqlite3Strlen30(tls, zType))
+ n = I64(Xsqlite3Strlen30(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName))
+ (*Column)(unsafe.Pointer(pCol)).FzCnName = Xsqlite3DbReallocOrFree(tls, db, (*Column)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m+int64(2)))
+ if (*Column)(unsafe.Pointer(pCol)).FzCnName != 0 {
+ libc.X__builtin___memcpy_chk(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m+int64(1)), libc.X__builtin_object_size(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), 0))
+ *(*U16)(unsafe.Pointer(pCol + 16)) |= U16(COLFLAG_HASTYPE)
+ } else {
+ *(*U16)(unsafe.Pointer(pCol + 16)) &= libc.Uint16FromInt32(libc.CplInt32(COLFLAG_HASTYPE | COLFLAG_HASCOLL))
+ }
+ }
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, p)
+ if pColl != 0 {
+ Xsqlite3ColumnSetColl(tls, db, pCol, (*CollSeq)(unsafe.Pointer(pColl)).FzName)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pCol += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ (*Table)(unsafe.Pointer(pTab)).FszTabRow = int16(1)
+}
+
+// Given a SELECT statement, generate a Table structure that describes
+// the result set of that SELECT.
+func Xsqlite3ResultSetOfSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, aff int8) uintptr {
+ var pTab uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var savedFlags U64
+
+ savedFlags = (*Sqlite3)(unsafe.Pointer(db)).Fflags
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_FullColNames))
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(SQLITE_ShortColNames)
+ Xsqlite3SelectPrep(tls, pParse, pSelect, uintptr(0))
+ (*Sqlite3)(unsafe.Pointer(db)).Fflags = savedFlags
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return uintptr(0)
+ }
+ for (*Select)(unsafe.Pointer(pSelect)).FpPrior != 0 {
+ pSelect = (*Select)(unsafe.Pointer(pSelect)).FpPrior
+ }
+ pTab = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if pTab == uintptr(0) {
+ return uintptr(0)
+ }
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef = U32(1)
+ (*Table)(unsafe.Pointer(pTab)).FzName = uintptr(0)
+ (*Table)(unsafe.Pointer(pTab)).FnRowLogEst = int16(200)
+ Xsqlite3ColumnsFromExprList(tls, pParse, (*Select)(unsafe.Pointer(pSelect)).FpEList, pTab+54, pTab+8)
+ Xsqlite3SubqueryColumnTypes(tls, pParse, pTab, pSelect, aff)
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = int16(-1)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3DeleteTable(tls, db, pTab)
+ return uintptr(0)
+ }
+ return pTab
+}
+
+// Get a VDBE for the given parser context. Create a new one if necessary.
+// If an error occurs, return NULL and leave a message in pParse.
+func Xsqlite3GetVdbe(tls *libc.TLS, pParse uintptr) uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpVdbe != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0) &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_FactorOutConst) == U32(0) {
+ (*Parse)(unsafe.Pointer(pParse)).FokConstFactor = U8(1)
+ }
+ return Xsqlite3VdbeCreate(tls, pParse)
+}
+
+func computeLimitRegisters(tls *libc.TLS, pParse uintptr, p uintptr, iBreak int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var v uintptr = uintptr(0)
+ var iLimit int32 = 0
+ var iOffset int32
+
+ var pLimit uintptr = (*Select)(unsafe.Pointer(p)).FpLimit
+
+ if (*Select)(unsafe.Pointer(p)).FiLimit != 0 {
+ return
+ }
+
+ if pLimit != 0 {
+ (*Select)(unsafe.Pointer(p)).FiLimit = libc.AssignInt32(&iLimit, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ v = Xsqlite3GetVdbe(tls, pParse)
+
+ if Xsqlite3ExprIsInteger(tls, (*Expr)(unsafe.Pointer(pLimit)).FpLeft, bp) != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, *(*int32)(unsafe.Pointer(bp)), iLimit)
+
+ if *(*int32)(unsafe.Pointer(bp)) == 0 {
+ Xsqlite3VdbeGoto(tls, v, iBreak)
+ } else if *(*int32)(unsafe.Pointer(bp)) >= 0 && int32((*Select)(unsafe.Pointer(p)).FnSelectRow) > int32(Xsqlite3LogEst(tls, U64(*(*int32)(unsafe.Pointer(bp))))) {
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3LogEst(tls, U64(*(*int32)(unsafe.Pointer(bp))))
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_FixedLimit)
+ }
+ } else {
+ Xsqlite3ExprCode(tls, pParse, (*Expr)(unsafe.Pointer(pLimit)).FpLeft, iLimit)
+ Xsqlite3VdbeAddOp1(tls, v, OP_MustBeInt, iLimit)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNot, iLimit, iBreak)
+ }
+ if (*Expr)(unsafe.Pointer(pLimit)).FpRight != 0 {
+ (*Select)(unsafe.Pointer(p)).FiOffset = libc.AssignInt32(&iOffset, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ (*Parse)(unsafe.Pointer(pParse)).FnMem++
+ Xsqlite3ExprCode(tls, pParse, (*Expr)(unsafe.Pointer(pLimit)).FpRight, iOffset)
+ Xsqlite3VdbeAddOp1(tls, v, OP_MustBeInt, iOffset)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_OffsetLimit, iLimit, iOffset+1, iOffset)
+
+ }
+ }
+}
+
+func multiSelectCollSeq(tls *libc.TLS, pParse uintptr, p uintptr, iCol int32) uintptr {
+ var pRet uintptr
+ if (*Select)(unsafe.Pointer(p)).FpPrior != 0 {
+ pRet = multiSelectCollSeq(tls, pParse, (*Select)(unsafe.Pointer(p)).FpPrior, iCol)
+ } else {
+ pRet = uintptr(0)
+ }
+
+ if pRet == uintptr(0) && iCol < (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr {
+ pRet = Xsqlite3ExprCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList+8+uintptr(iCol)*32)).FpExpr)
+ }
+ return pRet
+}
+
+func multiSelectOrderByKeyInfo(tls *libc.TLS, pParse uintptr, p uintptr, nExtra int32) uintptr {
+ var pOrderBy uintptr = (*Select)(unsafe.Pointer(p)).FpOrderBy
+ var nOrderBy int32
+ if pOrderBy != uintptr(0) {
+ nOrderBy = (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr
+ } else {
+ nOrderBy = 0
+ }
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pRet uintptr = Xsqlite3KeyInfoAlloc(tls, db, nOrderBy+nExtra, 1)
+ if pRet != 0 {
+ var i int32
+ for i = 0; i < nOrderBy; i++ {
+ var pItem uintptr = pOrderBy + 8 + uintptr(i)*32
+ var pTerm uintptr = (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr
+ var pColl uintptr
+
+ if (*Expr)(unsafe.Pointer(pTerm)).Fflags&U32(EP_Collate) != 0 {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, pTerm)
+ } else {
+ pColl = multiSelectCollSeq(tls, pParse, p, int32(*(*U16)(unsafe.Pointer(pItem + 24)))-1)
+ if pColl == uintptr(0) {
+ pColl = (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl
+ }
+ (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32)).FpExpr = Xsqlite3ExprAddCollateString(tls, pParse, pTerm, (*CollSeq)(unsafe.Pointer(pColl)).FzName)
+ }
+
+ *(*uintptr)(unsafe.Pointer(pRet + 32 + uintptr(i)*8)) = pColl
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pRet)).FaSortFlags + uintptr(i))) = (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32)).Ffg.FsortFlags
+ }
+ }
+
+ return pRet
+}
+
+func generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var pSrc uintptr
+ var nCol int32
+ var v uintptr
+ var pSetup uintptr
+ var pFirstRec uintptr
+ var addrTop int32
+ var addrCont int32
+ var addrBreak int32
+ var iCurrent int32
+ var regCurrent int32
+ var iQueue int32
+ var iDistinct int32
+ var eDest int32
+
+ var i int32
+ var rc int32
+ var pOrderBy uintptr
+ var pLimit uintptr
+ var regLimit int32
+ var regOffset int32
+ var pKeyInfo uintptr
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+ nCol = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ iCurrent = 0
+ iDistinct = 0
+ eDest = SRT_Fifo
+
+ if !((*Select)(unsafe.Pointer(p)).FpWin != 0) {
+ goto __1
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+19274, 0)
+ return
+__1:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_RECURSIVE, uintptr(0), uintptr(0), uintptr(0)) != 0) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ addrBreak = Xsqlite3VdbeMakeLabel(tls, pParse)
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = int16(320)
+ computeLimitRegisters(tls, pParse, p, addrBreak)
+ pLimit = (*Select)(unsafe.Pointer(p)).FpLimit
+ regLimit = (*Select)(unsafe.Pointer(p)).FiLimit
+ regOffset = (*Select)(unsafe.Pointer(p)).FiOffset
+ (*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FiLimit = libc.AssignPtrInt32(p+12, 0)
+ pOrderBy = (*Select)(unsafe.Pointer(p)).FpOrderBy
+
+ i = 0
+__3:
+ if !(i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc) {
+ goto __5
+ }
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 60 + 4))&0x40>>6)) != 0) {
+ goto __6
+ }
+ iCurrent = (*SrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104)).FiCursor
+ goto __5
+__6:
+ ;
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+ iQueue = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ if !(int32((*Select)(unsafe.Pointer(p)).Fop) == TK_UNION) {
+ goto __7
+ }
+ if pOrderBy != 0 {
+ eDest = SRT_DistQueue
+ } else {
+ eDest = SRT_DistFifo
+ }
+ iDistinct = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ goto __8
+__7:
+ if pOrderBy != 0 {
+ eDest = SRT_Queue
+ } else {
+ eDest = SRT_Fifo
+ }
+__8:
+ ;
+ Xsqlite3SelectDestInit(tls, bp, eDest, iQueue)
+
+ regCurrent = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenPseudo, iCurrent, regCurrent, nCol)
+ if !(pOrderBy != 0) {
+ goto __9
+ }
+ pKeyInfo = multiSelectOrderByKeyInfo(tls, pParse, p, 1)
+ Xsqlite3VdbeAddOp4(tls, v, OP_OpenEphemeral, iQueue, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr+2, 0,
+ pKeyInfo, -8)
+ (*SelectDest)(unsafe.Pointer(bp)).FpOrderBy = pOrderBy
+ goto __10
+__9:
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, iQueue, nCol)
+__10:
+ ;
+ if !(iDistinct != 0) {
+ goto __11
+ }
+ *(*int32)(unsafe.Pointer(p + 20)) = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, iDistinct, 0)
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_UsesEphemeral)
+__11:
+ ;
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+
+ pFirstRec = p
+__12:
+ if !(pFirstRec != uintptr(0)) {
+ goto __14
+ }
+ if !((*Select)(unsafe.Pointer(pFirstRec)).FselFlags&U32(SF_Aggregate) != 0) {
+ goto __15
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+19323, 0)
+ goto end_of_recursive_query
+__15:
+ ;
+ (*Select)(unsafe.Pointer(pFirstRec)).Fop = U8(TK_ALL)
+ if !((*Select)(unsafe.Pointer((*Select)(unsafe.Pointer(pFirstRec)).FpPrior)).FselFlags&U32(SF_Recursive) == U32(0)) {
+ goto __16
+ }
+ goto __14
+__16:
+ ;
+ goto __13
+__13:
+ pFirstRec = (*Select)(unsafe.Pointer(pFirstRec)).FpPrior
+ goto __12
+ goto __14
+__14:
+ ;
+ pSetup = (*Select)(unsafe.Pointer(pFirstRec)).FpPrior
+ (*Select)(unsafe.Pointer(pSetup)).FpNext = uintptr(0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19365, 0)
+ rc = Xsqlite3Select(tls, pParse, pSetup, bp)
+ (*Select)(unsafe.Pointer(pSetup)).FpNext = p
+ if !(rc != 0) {
+ goto __17
+ }
+ goto end_of_recursive_query
+__17:
+ ;
+ addrTop = Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iQueue, addrBreak)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, iCurrent)
+ if !(pOrderBy != 0) {
+ goto __18
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iQueue, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr+1, regCurrent)
+ goto __19
+__18:
+ Xsqlite3VdbeAddOp2(tls, v, OP_RowData, iQueue, regCurrent)
+__19:
+ ;
+ Xsqlite3VdbeAddOp1(tls, v, OP_Delete, iQueue)
+
+ addrCont = Xsqlite3VdbeMakeLabel(tls, pParse)
+ codeOffset(tls, v, regOffset, addrCont)
+ selectInnerLoop(tls, pParse, p, iCurrent,
+ uintptr(0), uintptr(0), pDest, addrCont, addrBreak)
+ if !(regLimit != 0) {
+ goto __20
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_DecrJumpZero, regLimit, addrBreak)
+
+__20:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, addrCont)
+
+ (*Select)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19371, 0)
+ Xsqlite3Select(tls, pParse, p, bp)
+
+ (*Select)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup
+
+ Xsqlite3VdbeGoto(tls, v, addrTop)
+ Xsqlite3VdbeResolveLabel(tls, v, addrBreak)
+
+end_of_recursive_query:
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Select)(unsafe.Pointer(p)).FpOrderBy)
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = pOrderBy
+ (*Select)(unsafe.Pointer(p)).FpLimit = pLimit
+ return
+}
+
+func multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var nRow int32 = 1
+ var rc int32 = 0
+ var bShowAll int32 = libc.Bool32((*Select)(unsafe.Pointer(p)).FpLimit == uintptr(0))
+
+ for __ccgo := true; __ccgo; __ccgo = 1 != 0 {
+ if (*Select)(unsafe.Pointer(p)).FpWin != 0 {
+ return -1
+ }
+ if (*Select)(unsafe.Pointer(p)).FpPrior == uintptr(0) {
+ break
+ }
+
+ p = (*Select)(unsafe.Pointer(p)).FpPrior
+ nRow = nRow + bShowAll
+ }
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+19386, libc.VaList(bp, nRow, func() uintptr {
+ if nRow == 1 {
+ return ts + 1547
+ }
+ return ts + 3548
+ }()))
+ for p != 0 {
+ selectInnerLoop(tls, pParse, p, -1, uintptr(0), uintptr(0), pDest, 1, 1)
+ if !(bShowAll != 0) {
+ break
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = LogEst(nRow)
+ p = (*Select)(unsafe.Pointer(p)).FpNext
+ }
+ return rc
+}
+
+func hasAnchor(tls *libc.TLS, p uintptr) int32 {
+ for p != 0 && (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Recursive) != U32(0) {
+ p = (*Select)(unsafe.Pointer(p)).FpPrior
+ }
+ return libc.Bool32(p != uintptr(0))
+}
+
+func multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) int32 {
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ var rc int32
+ var pPrior uintptr
+ var v uintptr
+
+ var pDelete uintptr
+ var db uintptr
+ var addr int32
+
+ var iCont int32
+ var iBreak int32
+ var iStart int32
+ var unionTab int32
+ var op U8
+ var priorOp int32
+ var pLimit uintptr
+ var addr1 int32
+
+ var tab1 int32
+ var tab2 int32
+ var iCont1 int32
+ var iBreak1 int32
+ var iStart1 int32
+ var pLimit1 uintptr
+ var addr2 int32
+
+ var r1 int32
+ var addr3 int32
+ var i int32
+ var pKeyInfo uintptr
+ var pLoop uintptr
+ var apColl uintptr
+ var nCol int32
+ rc = SQLITE_OK
+ pDelete = uintptr(0)
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pPrior = (*Select)(unsafe.Pointer(p)).FpPrior
+ *(*SelectDest)(unsafe.Pointer(bp + 16)) = *(*SelectDest)(unsafe.Pointer(pDest))
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+
+ if !(int32((*SelectDest)(unsafe.Pointer(bp+16)).FeDest) == SRT_EphemTab) {
+ goto __1
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*SelectDest)(unsafe.Pointer(bp+16)).FiSDParm, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr)
+ (*SelectDest)(unsafe.Pointer(bp + 16)).FeDest = U8(SRT_Table)
+__1:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_MultiValue) != 0) {
+ goto __2
+ }
+ rc = multiSelectValues(tls, pParse, p, bp+16)
+ if !(rc >= 0) {
+ goto __3
+ }
+ goto multi_select_end
+__3:
+ ;
+ rc = SQLITE_OK
+__2:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Recursive) != U32(0) && hasAnchor(tls, p) != 0) {
+ goto __4
+ }
+ generateWithRecursiveQuery(tls, pParse, p, bp+16)
+ goto __5
+__4:
+ if !((*Select)(unsafe.Pointer(p)).FpOrderBy != 0) {
+ goto __6
+ }
+ return multiSelectOrderBy(tls, pParse, p, pDest)
+ goto __7
+__6:
+ if !((*Select)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0)) {
+ goto __8
+ }
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19409, 0)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19424, 0)
+__8:
+ ;
+ switch int32((*Select)(unsafe.Pointer(p)).Fop) {
+ case TK_ALL:
+ goto __10
+ case TK_EXCEPT:
+ goto __11
+ case TK_UNION:
+ goto __12
+ default:
+ goto __13
+ }
+ goto __9
+__10:
+ addr = 0
+ *(*int32)(unsafe.Pointer(bp + 56)) = 0
+
+ (*Select)(unsafe.Pointer(pPrior)).FiLimit = (*Select)(unsafe.Pointer(p)).FiLimit
+ (*Select)(unsafe.Pointer(pPrior)).FiOffset = (*Select)(unsafe.Pointer(p)).FiOffset
+ (*Select)(unsafe.Pointer(pPrior)).FpLimit = (*Select)(unsafe.Pointer(p)).FpLimit
+
+ rc = Xsqlite3Select(tls, pParse, pPrior, bp+16)
+ (*Select)(unsafe.Pointer(pPrior)).FpLimit = uintptr(0)
+ if !(rc != 0) {
+ goto __14
+ }
+ goto multi_select_end
+__14:
+ ;
+ (*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FiLimit = (*Select)(unsafe.Pointer(pPrior)).FiLimit
+ (*Select)(unsafe.Pointer(p)).FiOffset = (*Select)(unsafe.Pointer(pPrior)).FiOffset
+ if !((*Select)(unsafe.Pointer(p)).FiLimit != 0) {
+ goto __15
+ }
+ addr = Xsqlite3VdbeAddOp1(tls, v, OP_IfNot, (*Select)(unsafe.Pointer(p)).FiLimit)
+
+ if !((*Select)(unsafe.Pointer(p)).FiOffset != 0) {
+ goto __16
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_OffsetLimit,
+ (*Select)(unsafe.Pointer(p)).FiLimit, (*Select)(unsafe.Pointer(p)).FiOffset+1, (*Select)(unsafe.Pointer(p)).FiOffset)
+__16:
+ ;
+__15:
+ ;
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19151, 0)
+
+ rc = Xsqlite3Select(tls, pParse, p, bp+16)
+
+ pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
+ (*Select)(unsafe.Pointer(p)).FpPrior = pPrior
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3LogEstAdd(tls, (*Select)(unsafe.Pointer(p)).FnSelectRow, (*Select)(unsafe.Pointer(pPrior)).FnSelectRow)
+ if !((*Select)(unsafe.Pointer(p)).FpLimit != 0 &&
+ Xsqlite3ExprIsInteger(tls, (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpLimit)).FpLeft, bp+56) != 0 &&
+ *(*int32)(unsafe.Pointer(bp + 56)) > 0 && int32((*Select)(unsafe.Pointer(p)).FnSelectRow) > int32(Xsqlite3LogEst(tls, U64(*(*int32)(unsafe.Pointer(bp + 56)))))) {
+ goto __17
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3LogEst(tls, U64(*(*int32)(unsafe.Pointer(bp + 56))))
+__17:
+ ;
+ if !(addr != 0) {
+ goto __18
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+__18:
+ ;
+ goto __9
+
+__11:
+__12:
+ op = U8(0)
+
+ priorOp = SRT_Union
+ if !(int32((*SelectDest)(unsafe.Pointer(bp+16)).FeDest) == priorOp) {
+ goto __19
+ }
+
+ unionTab = (*SelectDest)(unsafe.Pointer(bp + 16)).FiSDParm
+ goto __20
+__19:
+ unionTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+
+ addr1 = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, unionTab, 0)
+
+ *(*int32)(unsafe.Pointer(p + 20)) = addr1
+ *(*U32)(unsafe.Pointer(findRightmost(tls, p) + 4)) |= U32(SF_UsesEphemeral)
+
+__20:
+ ;
+ Xsqlite3SelectDestInit(tls, bp+64, priorOp, unionTab)
+
+ rc = Xsqlite3Select(tls, pParse, pPrior, bp+64)
+ if !(rc != 0) {
+ goto __21
+ }
+ goto multi_select_end
+__21:
+ ;
+ if !(int32((*Select)(unsafe.Pointer(p)).Fop) == TK_EXCEPT) {
+ goto __22
+ }
+ op = U8(SRT_Except)
+ goto __23
+__22:
+ ;
+ op = U8(SRT_Union)
+__23:
+ ;
+ (*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
+ pLimit = (*Select)(unsafe.Pointer(p)).FpLimit
+ (*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
+ (*SelectDest)(unsafe.Pointer(bp + 64)).FeDest = op
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19443, libc.VaList(bp, Xsqlite3SelectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+
+ rc = Xsqlite3Select(tls, pParse, p, bp+64)
+
+ pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
+ (*Select)(unsafe.Pointer(p)).FpPrior = pPrior
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+ if !(int32((*Select)(unsafe.Pointer(p)).Fop) == TK_UNION) {
+ goto __24
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3LogEstAdd(tls, (*Select)(unsafe.Pointer(p)).FnSelectRow, (*Select)(unsafe.Pointer(pPrior)).FnSelectRow)
+__24:
+ ;
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpLimit)
+ (*Select)(unsafe.Pointer(p)).FpLimit = pLimit
+ (*Select)(unsafe.Pointer(p)).FiLimit = 0
+ (*Select)(unsafe.Pointer(p)).FiOffset = 0
+
+ if !(int32((*SelectDest)(unsafe.Pointer(bp+16)).FeDest) != priorOp && int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0) {
+ goto __25
+ }
+ iBreak = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iCont = Xsqlite3VdbeMakeLabel(tls, pParse)
+ computeLimitRegisters(tls, pParse, p, iBreak)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, unionTab, iBreak)
+ iStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ selectInnerLoop(tls, pParse, p, unionTab,
+ uintptr(0), uintptr(0), bp+16, iCont, iBreak)
+ Xsqlite3VdbeResolveLabel(tls, v, iCont)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, unionTab, iStart)
+ Xsqlite3VdbeResolveLabel(tls, v, iBreak)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, unionTab, 0)
+__25:
+ ;
+ goto __9
+
+__13:
+ ;
+ tab1 = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ tab2 = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+
+ addr2 = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, tab1, 0)
+
+ *(*int32)(unsafe.Pointer(p + 20)) = addr2
+ *(*U32)(unsafe.Pointer(findRightmost(tls, p) + 4)) |= U32(SF_UsesEphemeral)
+
+ Xsqlite3SelectDestInit(tls, bp+104, SRT_Union, tab1)
+
+ rc = Xsqlite3Select(tls, pParse, pPrior, bp+104)
+ if !(rc != 0) {
+ goto __26
+ }
+ goto multi_select_end
+__26:
+ ;
+ addr2 = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, tab2, 0)
+
+ *(*int32)(unsafe.Pointer(p + 20 + 1*4)) = addr2
+ (*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
+ pLimit1 = (*Select)(unsafe.Pointer(p)).FpLimit
+ (*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
+ (*SelectDest)(unsafe.Pointer(bp + 104)).FiSDParm = tab2
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19443, libc.VaList(bp+8, Xsqlite3SelectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+
+ rc = Xsqlite3Select(tls, pParse, p, bp+104)
+
+ pDelete = (*Select)(unsafe.Pointer(p)).FpPrior
+ (*Select)(unsafe.Pointer(p)).FpPrior = pPrior
+ if !(int32((*Select)(unsafe.Pointer(p)).FnSelectRow) > int32((*Select)(unsafe.Pointer(pPrior)).FnSelectRow)) {
+ goto __27
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = (*Select)(unsafe.Pointer(pPrior)).FnSelectRow
+__27:
+ ;
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpLimit)
+ (*Select)(unsafe.Pointer(p)).FpLimit = pLimit1
+
+ if !(rc != 0) {
+ goto __28
+ }
+ goto __9
+__28:
+ ;
+ iBreak1 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iCont1 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ computeLimitRegisters(tls, pParse, p, iBreak1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, tab1, iBreak1)
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ iStart1 = Xsqlite3VdbeAddOp2(tls, v, OP_RowData, tab1, r1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, tab2, iCont1, r1, 0)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ selectInnerLoop(tls, pParse, p, tab1,
+ uintptr(0), uintptr(0), bp+16, iCont1, iBreak1)
+ Xsqlite3VdbeResolveLabel(tls, v, iCont1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, tab1, iStart1)
+ Xsqlite3VdbeResolveLabel(tls, v, iBreak1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, tab2, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, tab1, 0)
+ goto __9
+
+__9:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FpNext == uintptr(0)) {
+ goto __29
+ }
+ Xsqlite3VdbeExplainPop(tls, pParse)
+__29:
+ ;
+__7:
+ ;
+__5:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __30
+ }
+ goto multi_select_end
+__30:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_UsesEphemeral) != 0) {
+ goto __31
+ }
+
+ nCol = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr
+ pKeyInfo = Xsqlite3KeyInfoAlloc(tls, db, nCol, 1)
+ if !!(pKeyInfo != 0) {
+ goto __32
+ }
+ rc = SQLITE_NOMEM
+ goto multi_select_end
+__32:
+ ;
+ i = 0
+ apColl = pKeyInfo + 32
+__33:
+ if !(i < nCol) {
+ goto __35
+ }
+ *(*uintptr)(unsafe.Pointer(apColl)) = multiSelectCollSeq(tls, pParse, p, i)
+ if !(uintptr(0) == *(*uintptr)(unsafe.Pointer(apColl))) {
+ goto __36
+ }
+ *(*uintptr)(unsafe.Pointer(apColl)) = (*Sqlite3)(unsafe.Pointer(db)).FpDfltColl
+__36:
+ ;
+ goto __34
+__34:
+ i++
+ apColl += 8
+ goto __33
+ goto __35
+__35:
+ ;
+ pLoop = p
+__37:
+ if !(pLoop != 0) {
+ goto __39
+ }
+ i = 0
+__40:
+ if !(i < 2) {
+ goto __42
+ }
+ addr3 = *(*int32)(unsafe.Pointer(pLoop + 20 + uintptr(i)*4))
+ if !(addr3 < 0) {
+ goto __43
+ }
+
+ goto __42
+__43:
+ ;
+ Xsqlite3VdbeChangeP2(tls, v, addr3, nCol)
+ Xsqlite3VdbeChangeP4(tls, v, addr3, Xsqlite3KeyInfoRef(tls, pKeyInfo),
+ -8)
+ *(*int32)(unsafe.Pointer(pLoop + 20 + uintptr(i)*4)) = -1
+ goto __41
+__41:
+ i++
+ goto __40
+ goto __42
+__42:
+ ;
+ goto __38
+__38:
+ pLoop = (*Select)(unsafe.Pointer(pLoop)).FpPrior
+ goto __37
+ goto __39
+__39:
+ ;
+ Xsqlite3KeyInfoUnref(tls, pKeyInfo)
+__31:
+ ;
+multi_select_end:
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSdst = (*SelectDest)(unsafe.Pointer(bp + 16)).FiSdst
+ (*SelectDest)(unsafe.Pointer(pDest)).FnSdst = (*SelectDest)(unsafe.Pointer(bp + 16)).FnSdst
+ if !(pDelete != 0) {
+ goto __44
+ }
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3SelectDelete})),
+ pDelete)
+__44:
+ ;
+ return rc
+}
+
+// Error message for when two or more terms of a compound select have different
+// size result sets.
+func Xsqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Values) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19464, 0)
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+19510,
+ libc.VaList(bp, Xsqlite3SelectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+ }
+}
+
+func generateOutputSubroutine(tls *libc.TLS, pParse uintptr, p uintptr, pIn uintptr, pDest uintptr, regReturn int32, regPrev int32, pKeyInfo uintptr, iBreak int32) int32 {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var iContinue int32
+ var addr int32
+
+ addr = Xsqlite3VdbeCurrentAddr(tls, v)
+ iContinue = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ if regPrev != 0 {
+ var addr1 int32
+ var addr2 int32
+ addr1 = Xsqlite3VdbeAddOp1(tls, v, OP_IfNot, regPrev)
+ addr2 = Xsqlite3VdbeAddOp4(tls, v, OP_Compare, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, regPrev+1, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst,
+ Xsqlite3KeyInfoRef(tls, pKeyInfo), -8)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addr2+2, iContinue, addr2+2)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, regPrev+1, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst-1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, regPrev)
+ }
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return 0
+ }
+
+ codeOffset(tls, v, (*Select)(unsafe.Pointer(p)).FiOffset, iContinue)
+
+ switch int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest) {
+ case SRT_EphemTab:
+ {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ var r2 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst, r1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm, r2)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm, r1, r2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND))
+ Xsqlite3ReleaseTempReg(tls, pParse, r2)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ break
+
+ }
+
+ case SRT_Set:
+ {
+ var r1 int32
+
+ r1 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst,
+ r1, (*SelectDest)(unsafe.Pointer(pDest)).FzAffSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm, r1,
+ (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ break
+
+ }
+
+ case SRT_Mem:
+ {
+ Xsqlite3ExprCodeMove(tls, pParse, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+
+ break
+
+ }
+
+ case SRT_Coroutine:
+ {
+ if (*SelectDest)(unsafe.Pointer(pDest)).FiSdst == 0 {
+ (*SelectDest)(unsafe.Pointer(pDest)).FiSdst = Xsqlite3GetTempRange(tls, pParse, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+ (*SelectDest)(unsafe.Pointer(pDest)).FnSdst = (*SelectDest)(unsafe.Pointer(pIn)).FnSdst
+ }
+ Xsqlite3ExprCodeMove(tls, pParse, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pDest)).FiSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Yield, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm)
+ break
+
+ }
+
+ default:
+ {
+ Xsqlite3VdbeAddOp2(tls, v, OP_ResultRow, (*SelectDest)(unsafe.Pointer(pIn)).FiSdst, (*SelectDest)(unsafe.Pointer(pIn)).FnSdst)
+ break
+
+ }
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FiLimit != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_DecrJumpZero, (*Select)(unsafe.Pointer(p)).FiLimit, iBreak)
+ }
+
+ Xsqlite3VdbeResolveLabel(tls, v, iContinue)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regReturn)
+
+ return addr
+}
+
+func multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) int32 {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var i int32
+ var j int32
+ var pPrior uintptr
+ var pSplit uintptr
+ var nSelect int32
+ var v uintptr
+
+ var regAddrA int32
+ var regAddrB int32
+ var addrSelectA int32
+ var addrSelectB int32
+ var regOutA int32
+ var regOutB int32
+ var addrOutA int32
+ var addrOutB int32 = 0
+ var addrEofA int32
+ var addrEofA_noB int32
+ var addrEofB int32
+ var addrAltB int32
+ var addrAeqB int32
+ var addrAgtB int32
+ var regLimitA int32
+ var regLimitB int32
+ var regPrev int32
+ var savedLimit int32
+ var savedOffset int32
+ var labelCmpr int32
+ var labelEnd int32
+ var addr1 int32
+ var op int32
+ var pKeyDup uintptr = uintptr(0)
+ var pKeyMerge uintptr
+ var db uintptr
+ var pOrderBy uintptr
+ var nOrderBy int32
+ var aPermute uintptr
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ labelEnd = Xsqlite3VdbeMakeLabel(tls, pParse)
+ labelCmpr = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ op = int32((*Select)(unsafe.Pointer(p)).Fop)
+
+ pOrderBy = (*Select)(unsafe.Pointer(p)).FpOrderBy
+
+ nOrderBy = (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr
+
+ if op != TK_ALL {
+ for i = 1; int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 && i <= (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr; i++ {
+ var pItem uintptr
+ j = 0
+ pItem = pOrderBy + 8
+ __1:
+ if !(j < nOrderBy) {
+ goto __3
+ }
+ {
+ if int32(*(*U16)(unsafe.Pointer(pItem + 24))) == i {
+ goto __3
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ pItem += 32
+ goto __1
+ goto __3
+ __3:
+ ;
+ if j == nOrderBy {
+ var pNew uintptr = Xsqlite3Expr(tls, db, TK_INTEGER, uintptr(0))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_IntValue)
+ *(*int32)(unsafe.Pointer(pNew + 8)) = i
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = libc.AssignUintptr(&pOrderBy, Xsqlite3ExprListAppend(tls, pParse, pOrderBy, pNew))
+ if pOrderBy != 0 {
+ *(*U16)(unsafe.Pointer(pOrderBy + 8 + uintptr(libc.PostIncInt32(&nOrderBy, 1))*32 + 24)) = U16(i)
+ }
+ }
+ }
+ }
+
+ aPermute = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(U32(0)))*uint64(nOrderBy+1))
+ if aPermute != 0 {
+ var pItem uintptr
+ *(*U32)(unsafe.Pointer(aPermute)) = U32(nOrderBy)
+ i = 1
+ pItem = pOrderBy + 8
+ __4:
+ if !(i <= nOrderBy) {
+ goto __6
+ }
+ {
+ *(*U32)(unsafe.Pointer(aPermute + uintptr(i)*4)) = U32(int32(*(*U16)(unsafe.Pointer(pItem + 24))) - 1)
+
+ }
+ goto __5
+ __5:
+ i++
+ pItem += 32
+ goto __4
+ goto __6
+ __6:
+ ;
+ pKeyMerge = multiSelectOrderByKeyInfo(tls, pParse, p, 1)
+ } else {
+ pKeyMerge = uintptr(0)
+ }
+
+ if op == TK_ALL {
+ regPrev = 0
+ } else {
+ var nExpr int32 = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr
+
+ regPrev = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nExpr + 1
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regPrev)
+ pKeyDup = Xsqlite3KeyInfoAlloc(tls, db, nExpr, 1)
+ if pKeyDup != 0 {
+ for i = 0; i < nExpr; i++ {
+ *(*uintptr)(unsafe.Pointer(pKeyDup + 32 + uintptr(i)*8)) = multiSelectCollSeq(tls, pParse, p, i)
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyDup)).FaSortFlags + uintptr(i))) = U8(0)
+ }
+ }
+ }
+
+ nSelect = 1
+ if (op == TK_ALL || op == TK_UNION) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_BalancedMerge) == U32(0) {
+ for pSplit = p; (*Select)(unsafe.Pointer(pSplit)).FpPrior != uintptr(0) && int32((*Select)(unsafe.Pointer(pSplit)).Fop) == op; pSplit = (*Select)(unsafe.Pointer(pSplit)).FpPrior {
+ nSelect++
+
+ }
+ }
+ if nSelect <= 3 {
+ pSplit = p
+ } else {
+ pSplit = p
+ for i = 2; i < nSelect; i = i + 2 {
+ pSplit = (*Select)(unsafe.Pointer(pSplit)).FpPrior
+ }
+ }
+ pPrior = (*Select)(unsafe.Pointer(pSplit)).FpPrior
+
+ (*Select)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(pPrior)).FpNext = uintptr(0)
+
+ (*Select)(unsafe.Pointer(pPrior)).FpOrderBy = Xsqlite3ExprListDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0)
+ Xsqlite3ResolveOrderGroupBy(tls, pParse, p, (*Select)(unsafe.Pointer(p)).FpOrderBy, ts+7637)
+ Xsqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*Select)(unsafe.Pointer(pPrior)).FpOrderBy, ts+7637)
+
+ computeLimitRegisters(tls, pParse, p, labelEnd)
+ if (*Select)(unsafe.Pointer(p)).FiLimit != 0 && op == TK_ALL {
+ regLimitA = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regLimitB = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, func() int32 {
+ if (*Select)(unsafe.Pointer(p)).FiOffset != 0 {
+ return (*Select)(unsafe.Pointer(p)).FiOffset + 1
+ }
+ return (*Select)(unsafe.Pointer(p)).FiLimit
+ }(),
+ regLimitA)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, regLimitA, regLimitB)
+ } else {
+ regLimitA = libc.AssignInt32(&regLimitB, 0)
+ }
+ Xsqlite3ExprDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpLimit)
+ (*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
+
+ regAddrA = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regAddrB = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regOutA = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regOutB = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3SelectDestInit(tls, bp+8, SRT_Coroutine, regAddrA)
+ Xsqlite3SelectDestInit(tls, bp+48, SRT_Coroutine, regAddrB)
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19592, libc.VaList(bp, Xsqlite3SelectOpName(tls, int32((*Select)(unsafe.Pointer(p)).Fop))))
+
+ addrSelectA = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+ addr1 = Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regAddrA, 0, addrSelectA)
+
+ (*Select)(unsafe.Pointer(pPrior)).FiLimit = regLimitA
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19603, 0)
+ Xsqlite3Select(tls, pParse, pPrior, bp+8)
+ Xsqlite3VdbeEndCoroutine(tls, v, regAddrA)
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+
+ addrSelectB = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+ addr1 = Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regAddrB, 0, addrSelectB)
+
+ savedLimit = (*Select)(unsafe.Pointer(p)).FiLimit
+ savedOffset = (*Select)(unsafe.Pointer(p)).FiOffset
+ (*Select)(unsafe.Pointer(p)).FiLimit = regLimitB
+ (*Select)(unsafe.Pointer(p)).FiOffset = 0
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+19608, 0)
+ Xsqlite3Select(tls, pParse, p, bp+48)
+ (*Select)(unsafe.Pointer(p)).FiLimit = savedLimit
+ (*Select)(unsafe.Pointer(p)).FiOffset = savedOffset
+ Xsqlite3VdbeEndCoroutine(tls, v, regAddrB)
+
+ addrOutA = generateOutputSubroutine(tls, pParse,
+ p, bp+8, pDest, regOutA,
+ regPrev, pKeyDup, labelEnd)
+
+ if op == TK_ALL || op == TK_UNION {
+ addrOutB = generateOutputSubroutine(tls, pParse,
+ p, bp+48, pDest, regOutB,
+ regPrev, pKeyDup, labelEnd)
+ }
+ Xsqlite3KeyInfoUnref(tls, pKeyDup)
+
+ if op == TK_EXCEPT || op == TK_INTERSECT {
+ addrEofA_noB = libc.AssignInt32(&addrEofA, labelEnd)
+ } else {
+ addrEofA = Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutB, addrOutB)
+ addrEofA_noB = Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrB, labelEnd)
+
+ Xsqlite3VdbeGoto(tls, v, addrEofA)
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3LogEstAdd(tls, (*Select)(unsafe.Pointer(p)).FnSelectRow, (*Select)(unsafe.Pointer(pPrior)).FnSelectRow)
+ }
+
+ if op == TK_INTERSECT {
+ addrEofB = addrEofA
+ if int32((*Select)(unsafe.Pointer(p)).FnSelectRow) > int32((*Select)(unsafe.Pointer(pPrior)).FnSelectRow) {
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = (*Select)(unsafe.Pointer(pPrior)).FnSelectRow
+ }
+ } else {
+ addrEofB = Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutA, addrOutA)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrA, labelEnd)
+ Xsqlite3VdbeGoto(tls, v, addrEofB)
+ }
+
+ addrAltB = Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutA, addrOutA)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrA, addrEofA)
+ Xsqlite3VdbeGoto(tls, v, labelCmpr)
+
+ if op == TK_ALL {
+ addrAeqB = addrAltB
+ } else if op == TK_INTERSECT {
+ addrAeqB = addrAltB
+ addrAltB++
+ } else {
+ addrAeqB = Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrA, addrEofA)
+ Xsqlite3VdbeGoto(tls, v, labelCmpr)
+ }
+
+ addrAgtB = Xsqlite3VdbeCurrentAddr(tls, v)
+ if op == TK_ALL || op == TK_UNION {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutB, addrOutB)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrB, addrEofB)
+ Xsqlite3VdbeGoto(tls, v, labelCmpr)
+
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrA, addrEofA_noB)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regAddrB, addrEofB)
+
+ Xsqlite3VdbeResolveLabel(tls, v, labelCmpr)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Permutation, 0, 0, 0, aPermute, -14)
+ Xsqlite3VdbeAddOp4(tls, v, OP_Compare, (*SelectDest)(unsafe.Pointer(bp+8)).FiSdst, (*SelectDest)(unsafe.Pointer(bp+48)).FiSdst, nOrderBy,
+ pKeyMerge, -8)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_PERMUTE))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addrAltB, addrAeqB, addrAgtB)
+
+ Xsqlite3VdbeResolveLabel(tls, v, labelEnd)
+
+ if (*Select)(unsafe.Pointer(pSplit)).FpPrior != 0 {
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3SelectDelete})), (*Select)(unsafe.Pointer(pSplit)).FpPrior)
+ }
+ (*Select)(unsafe.Pointer(pSplit)).FpPrior = pPrior
+ (*Select)(unsafe.Pointer(pPrior)).FpNext = pSplit
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(pPrior)).FpOrderBy)
+ (*Select)(unsafe.Pointer(pPrior)).FpOrderBy = uintptr(0)
+
+ Xsqlite3VdbeExplainPop(tls, pParse)
+ return libc.Bool32((*Parse)(unsafe.Pointer(pParse)).FnErr != 0)
+}
+
+// An instance of the SubstContext object describes an substitution edit
+// to be performed on a parse tree.
+//
+// All references to columns in table iTable are to be replaced by corresponding
+// expressions in pEList.
+//
+// ## About "isOuterJoin":
+//
+// The isOuterJoin column indicates that the replacement will occur into a
+// position in the parent that NULL-able due to an OUTER JOIN. Either the
+// target slot in the parent is the right operand of a LEFT JOIN, or one of
+// the left operands of a RIGHT JOIN. In either case, we need to potentially
+// bypass the substituted expression with OP_IfNullRow.
+//
+// Suppose the original expression is an integer constant. Even though the table
+// has the nullRow flag set, because the expression is an integer constant,
+// it will not be NULLed out. So instead, we insert an OP_IfNullRow opcode
+// that checks to see if the nullRow flag is set on the table. If the nullRow
+// flag is set, then the value in the register is set to NULL and the original
+// expression is bypassed. If the nullRow flag is not set, then the original
+// expression runs to populate the register.
+//
+// Example where this is needed:
+//
+// CREATE TABLE t1(a INTEGER PRIMARY KEY, b INT);
+// CREATE TABLE t2(x INT UNIQUE);
+//
+// SELECT a,b,m,x FROM t1 LEFT JOIN (SELECT 59 AS m,x FROM t2) ON b=x;
+//
+// When the subquery on the right side of the LEFT JOIN is flattened, we
+// have to add OP_IfNullRow in front of the OP_Integer that implements the
+// "m" value of the subquery so that a NULL will be loaded instead of 59
+// when processing a non-matched row of the left.
+type SubstContext1 = struct {
+ FpParse uintptr
+ FiTable int32
+ FiNewTable int32
+ FisOuterJoin int32
+ F__ccgo_pad1 [4]byte
+ FpEList uintptr
+ FpCList uintptr
+}
+
+// An instance of the SubstContext object describes an substitution edit
+// to be performed on a parse tree.
+//
+// All references to columns in table iTable are to be replaced by corresponding
+// expressions in pEList.
+//
+// ## About "isOuterJoin":
+//
+// The isOuterJoin column indicates that the replacement will occur into a
+// position in the parent that NULL-able due to an OUTER JOIN. Either the
+// target slot in the parent is the right operand of a LEFT JOIN, or one of
+// the left operands of a RIGHT JOIN. In either case, we need to potentially
+// bypass the substituted expression with OP_IfNullRow.
+//
+// Suppose the original expression is an integer constant. Even though the table
+// has the nullRow flag set, because the expression is an integer constant,
+// it will not be NULLed out. So instead, we insert an OP_IfNullRow opcode
+// that checks to see if the nullRow flag is set on the table. If the nullRow
+// flag is set, then the value in the register is set to NULL and the original
+// expression is bypassed. If the nullRow flag is not set, then the original
+// expression runs to populate the register.
+//
+// Example where this is needed:
+//
+// CREATE TABLE t1(a INTEGER PRIMARY KEY, b INT);
+// CREATE TABLE t2(x INT UNIQUE);
+//
+// SELECT a,b,m,x FROM t1 LEFT JOIN (SELECT 59 AS m,x FROM t2) ON b=x;
+//
+// When the subquery on the right side of the LEFT JOIN is flattened, we
+// have to add OP_IfNullRow in front of the OP_Integer that implements the
+// "m" value of the subquery so that a NULL will be loaded instead of 59
+// when processing a non-matched row of the left.
+type SubstContext = SubstContext1
+
+func substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) uintptr {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ if pExpr == uintptr(0) {
+ return uintptr(0)
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) &&
+ *(*int32)(unsafe.Pointer(pExpr + 52)) == (*SubstContext)(unsafe.Pointer(pSubst)).FiTable {
+ *(*int32)(unsafe.Pointer(pExpr + 52)) = (*SubstContext)(unsafe.Pointer(pSubst)).FiNewTable
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SubstContext)(unsafe.Pointer(pSubst)).FiTable &&
+ !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_FixedCol) != U32(0)) {
+ {
+ var pNew uintptr
+ var iColumn int32 = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ var pCopy uintptr = (*ExprList_item)(unsafe.Pointer((*SubstContext)(unsafe.Pointer(pSubst)).FpEList + 8 + uintptr(iColumn)*32)).FpExpr
+
+ if Xsqlite3ExprIsVector(tls, pCopy) != 0 {
+ Xsqlite3VectorErrorMsg(tls, (*SubstContext)(unsafe.Pointer(pSubst)).FpParse, pCopy)
+ } else {
+ var db uintptr = (*Parse)(unsafe.Pointer((*SubstContext)(unsafe.Pointer(pSubst)).FpParse)).Fdb
+ if (*SubstContext)(unsafe.Pointer(pSubst)).FisOuterJoin != 0 && int32((*Expr)(unsafe.Pointer(pCopy)).Fop) != TK_COLUMN {
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Expr)(unsafe.Pointer(bp)).Fop = U8(TK_IF_NULL_ROW)
+ (*Expr)(unsafe.Pointer(bp)).FpLeft = pCopy
+ (*Expr)(unsafe.Pointer(bp)).FiTable = (*SubstContext)(unsafe.Pointer(pSubst)).FiNewTable
+ (*Expr)(unsafe.Pointer(bp)).FiColumn = int16(-99)
+ (*Expr)(unsafe.Pointer(bp)).Fflags = U32(EP_IfNullRow)
+ pCopy = bp
+ }
+
+ pNew = Xsqlite3ExprDup(tls, db, pCopy, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ExprDelete(tls, db, pNew)
+ return pExpr
+ }
+ if (*SubstContext)(unsafe.Pointer(pSubst)).FisOuterJoin != 0 {
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(EP_CanBeNull)
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) {
+ Xsqlite3SetJoinExpr(tls, pNew, *(*int32)(unsafe.Pointer(pExpr + 52)),
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_InnerON))
+ }
+ Xsqlite3ExprDelete(tls, db, pExpr)
+ pExpr = pNew
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_TRUEFALSE {
+ *(*int32)(unsafe.Pointer(pExpr + 8)) = Xsqlite3ExprTruthValue(tls, pExpr)
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_INTEGER)
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_IntValue)
+ }
+
+ {
+ var pNat uintptr = Xsqlite3ExprCollSeq(tls, (*SubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr)
+ var pColl uintptr = Xsqlite3ExprCollSeq(tls, (*SubstContext)(unsafe.Pointer(pSubst)).FpParse,
+ (*ExprList_item)(unsafe.Pointer((*SubstContext)(unsafe.Pointer(pSubst)).FpCList+8+uintptr(iColumn)*32)).FpExpr)
+ if pNat != pColl || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLLATE {
+ pExpr = Xsqlite3ExprAddCollateString(tls, (*SubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr,
+ func() uintptr {
+ if pColl != 0 {
+ return (*CollSeq)(unsafe.Pointer(pColl)).FzName
+ }
+ return ts + 1092
+ }())
+ }
+
+ }
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Collate))
+ }
+
+ }
+ } else {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IF_NULL_ROW && (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SubstContext)(unsafe.Pointer(pSubst)).FiTable {
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*SubstContext)(unsafe.Pointer(pSubst)).FiNewTable
+ }
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = substExpr(tls, pSubst, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ (*Expr)(unsafe.Pointer(pExpr)).FpRight = substExpr(tls, pSubst, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ substSelect(tls, pSubst, *(*uintptr)(unsafe.Pointer(pExpr + 32)), 1)
+ } else {
+ substExprList(tls, pSubst, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ var pWin uintptr = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ (*Window)(unsafe.Pointer(pWin)).FpFilter = substExpr(tls, pSubst, (*Window)(unsafe.Pointer(pWin)).FpFilter)
+ substExprList(tls, pSubst, (*Window)(unsafe.Pointer(pWin)).FpPartition)
+ substExprList(tls, pSubst, (*Window)(unsafe.Pointer(pWin)).FpOrderBy)
+ }
+ }
+ return pExpr
+}
+
+func substExprList(tls *libc.TLS, pSubst uintptr, pList uintptr) {
+ var i int32
+ if pList == uintptr(0) {
+ return
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).FpExpr = substExpr(tls, pSubst, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr)
+ }
+}
+
+func substSelect(tls *libc.TLS, pSubst uintptr, p uintptr, doPrior int32) {
+ var pSrc uintptr
+ var pItem uintptr
+ var i int32
+ if !(p != 0) {
+ return
+ }
+ for __ccgo := true; __ccgo; __ccgo = doPrior != 0 && libc.AssignUintptr(&p, (*Select)(unsafe.Pointer(p)).FpPrior) != uintptr(0) {
+ substExprList(tls, pSubst, (*Select)(unsafe.Pointer(p)).FpEList)
+ substExprList(tls, pSubst, (*Select)(unsafe.Pointer(p)).FpGroupBy)
+ substExprList(tls, pSubst, (*Select)(unsafe.Pointer(p)).FpOrderBy)
+ (*Select)(unsafe.Pointer(p)).FpHaving = substExpr(tls, pSubst, (*Select)(unsafe.Pointer(p)).FpHaving)
+ (*Select)(unsafe.Pointer(p)).FpWhere = substExpr(tls, pSubst, (*Select)(unsafe.Pointer(p)).FpWhere)
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+
+ i = (*SrcList)(unsafe.Pointer(pSrc)).FnSrc
+ pItem = pSrc + 8
+ __1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ substSelect(tls, pSubst, (*SrcItem)(unsafe.Pointer(pItem)).FpSelect, 1)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x4>>2)) != 0 {
+ substExprList(tls, pSubst, *(*uintptr)(unsafe.Pointer(pItem + 88)))
+ }
+
+ }
+ goto __2
+ __2:
+ i--
+ pItem += 104
+ goto __1
+ goto __3
+ __3:
+ }
+}
+
+func recomputeColumnsUsedExpr(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var pItem uintptr
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN {
+ return WRC_Continue
+ }
+ pItem = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ if (*SrcItem)(unsafe.Pointer(pItem)).FiCursor != (*Expr)(unsafe.Pointer(pExpr)).FiTable {
+ return WRC_Continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) < 0 {
+ return WRC_Continue
+ }
+ *(*Bitmask)(unsafe.Pointer(pItem + 80)) |= Xsqlite3ExprColUsed(tls, pExpr)
+ return WRC_Continue
+}
+
+func recomputeColumnsUsed(tls *libc.TLS, pSelect uintptr, pSrcItem uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if (*SrcItem)(unsafe.Pointer(pSrcItem)).FpTab == uintptr(0) {
+ return
+ }
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{recomputeColumnsUsedExpr}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = pSrcItem
+ (*SrcItem)(unsafe.Pointer(pSrcItem)).FcolUsed = uint64(0)
+ Xsqlite3WalkSelect(tls, bp, pSelect)
+}
+
+func srclistRenumberCursors(tls *libc.TLS, pParse uintptr, aCsrMap uintptr, pSrc uintptr, iExcept int32) {
+ var i int32
+ var pItem uintptr
+ i = 0
+ pItem = pSrc + 8
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc) {
+ goto __3
+ }
+ {
+ if i != iExcept {
+ var p uintptr
+
+ if !(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x40>>6) != 0) || *(*int32)(unsafe.Pointer(aCsrMap + uintptr((*SrcItem)(unsafe.Pointer(pItem)).FiCursor+1)*4)) == 0 {
+ *(*int32)(unsafe.Pointer(aCsrMap + uintptr((*SrcItem)(unsafe.Pointer(pItem)).FiCursor+1)*4)) = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FiCursor = *(*int32)(unsafe.Pointer(aCsrMap + uintptr((*SrcItem)(unsafe.Pointer(pItem)).FiCursor+1)*4))
+ for p = (*SrcItem)(unsafe.Pointer(pItem)).FpSelect; p != 0; p = (*Select)(unsafe.Pointer(p)).FpPrior {
+ srclistRenumberCursors(tls, pParse, aCsrMap, (*Select)(unsafe.Pointer(p)).FpSrc, -1)
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pItem += 104
+ goto __1
+ goto __3
+__3:
+}
+
+func renumberCursorDoMapping(tls *libc.TLS, pWalker uintptr, piCursor uintptr) {
+ var aCsrMap uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var iCsr int32 = *(*int32)(unsafe.Pointer(piCursor))
+ if iCsr < *(*int32)(unsafe.Pointer(aCsrMap)) && *(*int32)(unsafe.Pointer(aCsrMap + uintptr(iCsr+1)*4)) > 0 {
+ *(*int32)(unsafe.Pointer(piCursor)) = *(*int32)(unsafe.Pointer(aCsrMap + uintptr(iCsr+1)*4))
+ }
+}
+
+func renumberCursorsCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var op int32 = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ if op == TK_COLUMN || op == TK_IF_NULL_ROW {
+ renumberCursorDoMapping(tls, pWalker, pExpr+44)
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ renumberCursorDoMapping(tls, pWalker, pExpr+52)
+ }
+ return WRC_Continue
+}
+
+func renumberCursors(tls *libc.TLS, pParse uintptr, p uintptr, iExcept int32, aCsrMap uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ srclistRenumberCursors(tls, pParse, aCsrMap, (*Select)(unsafe.Pointer(p)).FpSrc, iExcept)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = aCsrMap
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{renumberCursorsCb}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+ Xsqlite3WalkSelect(tls, bp, p)
+}
+
+func findLeftmostExprlist(tls *libc.TLS, pSel uintptr) uintptr {
+ for (*Select)(unsafe.Pointer(pSel)).FpPrior != 0 {
+ pSel = (*Select)(unsafe.Pointer(pSel)).FpPrior
+ }
+ return (*Select)(unsafe.Pointer(pSel)).FpEList
+}
+
+func compoundHasDifferentAffinities(tls *libc.TLS, p uintptr) int32 {
+ var ii int32
+ var pList uintptr
+
+ pList = (*Select)(unsafe.Pointer(p)).FpEList
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer(pList)).FnExpr; ii++ {
+ var aff int8
+ var pSub1 uintptr
+
+ aff = Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ii)*32)).FpExpr)
+ for pSub1 = (*Select)(unsafe.Pointer(p)).FpPrior; pSub1 != 0; pSub1 = (*Select)(unsafe.Pointer(pSub1)).FpPrior {
+ if int32(Xsqlite3ExprAffinity(tls, (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub1)).FpEList+8+uintptr(ii)*32)).FpExpr)) != int32(aff) {
+ return 1
+ }
+ }
+ }
+ return 0
+}
+
+func flattenSubquery(tls *libc.TLS, pParse uintptr, p uintptr, iFrom int32, isAgg int32) int32 {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var zSavedAuthContext uintptr = (*Parse)(unsafe.Pointer(pParse)).FzAuthContext
+ var pParent uintptr
+ var pSub uintptr
+ var pSub1 uintptr
+ var pSrc uintptr
+ var pSubSrc uintptr
+ var iParent int32
+ var iNewParent int32 = -1
+ var isOuterJoin int32 = 0
+ var i int32
+ var pWhere uintptr
+ var pSubitem uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ var aCsrMap uintptr = uintptr(0)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_QueryFlattener) != U32(0) {
+ return 0
+ }
+ pSrc = (*Select)(unsafe.Pointer(p)).FpSrc
+
+ pSubitem = pSrc + 8 + uintptr(iFrom)*104
+ iParent = (*SrcItem)(unsafe.Pointer(pSubitem)).FiCursor
+ pSub = (*SrcItem)(unsafe.Pointer(pSubitem)).FpSelect
+
+ if (*Select)(unsafe.Pointer(p)).FpWin != 0 || (*Select)(unsafe.Pointer(pSub)).FpWin != 0 {
+ return 0
+ }
+
+ pSubSrc = (*Select)(unsafe.Pointer(pSub)).FpSrc
+
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 && (*Select)(unsafe.Pointer(p)).FpLimit != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 && (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub)).FpLimit)).FpRight != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Compound) != U32(0) && (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 {
+ return 0
+ }
+ if (*SrcList)(unsafe.Pointer(pSubSrc)).FnSrc == 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FselFlags&U32(SF_Distinct) != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 && ((*SrcList)(unsafe.Pointer(pSrc)).FnSrc > 1 || isAgg != 0) {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(p)).FpOrderBy != 0 && (*Select)(unsafe.Pointer(pSub)).FpOrderBy != 0 {
+ return 0
+ }
+ if isAgg != 0 && (*Select)(unsafe.Pointer(pSub)).FpOrderBy != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 && (*Select)(unsafe.Pointer(p)).FpWhere != 0 {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 && (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) != U32(0) {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSub)).FselFlags&U32(SF_Recursive) != 0 {
+ return 0
+ }
+
+ if int32((*SrcItem)(unsafe.Pointer(pSubitem)).Ffg.Fjointype)&(JT_OUTER|JT_LTORJ) != 0 {
+ if (*SrcList)(unsafe.Pointer(pSubSrc)).FnSrc > 1 ||
+ int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSubSrc+8)).FpTab)).FeTabType) == TABTYP_VTAB ||
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) != U32(0) ||
+ int32((*SrcItem)(unsafe.Pointer(pSubitem)).Ffg.Fjointype)&JT_RIGHT != 0 {
+ return 0
+ }
+ isOuterJoin = 1
+ }
+
+ if iFrom > 0 && int32((*SrcItem)(unsafe.Pointer(pSubSrc+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ return 0
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pSubitem + 60 + 4))&0x100>>8)) != 0 && int32((*CteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pSubitem + 96)))).FeM10d) == M10d_Yes {
+ return 0
+ }
+
+ if (*Select)(unsafe.Pointer(pSub)).FpPrior != 0 {
+ var ii int32
+ if (*Select)(unsafe.Pointer(pSub)).FpOrderBy != 0 {
+ return 0
+ }
+ if isAgg != 0 || (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) != U32(0) || isOuterJoin > 0 {
+ return 0
+ }
+ for pSub1 = pSub; pSub1 != 0; pSub1 = (*Select)(unsafe.Pointer(pSub1)).FpPrior {
+ if (*Select)(unsafe.Pointer(pSub1)).FselFlags&U32(SF_Distinct|SF_Aggregate) != U32(0) ||
+ (*Select)(unsafe.Pointer(pSub1)).FpPrior != 0 && int32((*Select)(unsafe.Pointer(pSub1)).Fop) != TK_ALL ||
+ (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub1)).FpSrc)).FnSrc < 1 ||
+ (*Select)(unsafe.Pointer(pSub1)).FpWin != 0 {
+ return 0
+ }
+ if iFrom > 0 && int32((*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub1)).FpSrc+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ return 0
+ }
+
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FpOrderBy != 0 {
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpOrderBy)).FnExpr; ii++ {
+ if int32(*(*U16)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpOrderBy + 8 + uintptr(ii)*32 + 24))) == 0 {
+ return 0
+ }
+ }
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Recursive) != 0 {
+ return 0
+ }
+
+ if compoundHasDifferentAffinities(tls, pSub) != 0 {
+ return 0
+ }
+
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc > 1 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnSelect > 500 {
+ return 0
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_FlttnUnionAll) != U32(0) {
+ return 0
+ }
+ aCsrMap = Xsqlite3DbMallocZero(tls, db, uint64(I64((*Parse)(unsafe.Pointer(pParse)).FnTab)+int64(1))*uint64(unsafe.Sizeof(int32(0))))
+ if aCsrMap != 0 {
+ *(*int32)(unsafe.Pointer(aCsrMap)) = (*Parse)(unsafe.Pointer(pParse)).FnTab
+ }
+ }
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = (*SrcItem)(unsafe.Pointer(pSubitem)).FzName
+ Xsqlite3AuthCheck(tls, pParse, SQLITE_SELECT, uintptr(0), uintptr(0), uintptr(0))
+
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = zSavedAuthContext
+
+ pSub1 = (*SrcItem)(unsafe.Pointer(pSubitem)).FpSelect
+ Xsqlite3DbFree(tls, db, (*SrcItem)(unsafe.Pointer(pSubitem)).FzDatabase)
+ Xsqlite3DbFree(tls, db, (*SrcItem)(unsafe.Pointer(pSubitem)).FzName)
+ Xsqlite3DbFree(tls, db, (*SrcItem)(unsafe.Pointer(pSubitem)).FzAlias)
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FzDatabase = uintptr(0)
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FzName = uintptr(0)
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FzAlias = uintptr(0)
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FpSelect = uintptr(0)
+
+ for pSub = (*Select)(unsafe.Pointer(pSub)).FpPrior; pSub != 0; pSub = (*Select)(unsafe.Pointer(pSub)).FpPrior {
+ var pNew uintptr
+ var pOrderBy uintptr = (*Select)(unsafe.Pointer(p)).FpOrderBy
+ var pLimit uintptr = (*Select)(unsafe.Pointer(p)).FpLimit
+ var pPrior uintptr = (*Select)(unsafe.Pointer(p)).FpPrior
+ var pItemTab uintptr = (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpLimit = uintptr(0)
+ pNew = Xsqlite3SelectDup(tls, db, p, 0)
+ (*Select)(unsafe.Pointer(p)).FpLimit = pLimit
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = pOrderBy
+ (*Select)(unsafe.Pointer(p)).Fop = U8(TK_ALL)
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab = pItemTab
+ if pNew == uintptr(0) {
+ (*Select)(unsafe.Pointer(p)).FpPrior = pPrior
+ } else {
+ (*Select)(unsafe.Pointer(pNew)).FselId = U32(libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnSelect, 1))
+ if aCsrMap != 0 && int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ renumberCursors(tls, pParse, pNew, iFrom, aCsrMap)
+ }
+ (*Select)(unsafe.Pointer(pNew)).FpPrior = pPrior
+ if pPrior != 0 {
+ (*Select)(unsafe.Pointer(pPrior)).FpNext = pNew
+ }
+ (*Select)(unsafe.Pointer(pNew)).FpNext = p
+ (*Select)(unsafe.Pointer(p)).FpPrior = pNew
+
+ }
+
+ }
+ Xsqlite3DbFree(tls, db, aCsrMap)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FpSelect = pSub1
+ return 1
+ }
+
+ if (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab != uintptr(0) {
+ var pTabToDel uintptr = (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab
+ if (*Table)(unsafe.Pointer(pTabToDel)).FnTabRef == U32(1) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ Xsqlite3ParserAddCleanup(tls, pToplevel,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3DeleteTable})),
+ pTabToDel)
+
+ } else {
+ (*Table)(unsafe.Pointer(pTabToDel)).FnTabRef--
+ }
+ (*SrcItem)(unsafe.Pointer(pSubitem)).FpTab = uintptr(0)
+ }
+
+ pSub = pSub1
+ pParent = p
+__1:
+ if !(pParent != 0) {
+ goto __3
+ }
+ {
+ var nSubSrc int32
+ var jointype U8 = U8(0)
+ var ltorj U8 = U8(int32((*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(iFrom)*104)).Ffg.Fjointype) & JT_LTORJ)
+
+ pSubSrc = (*Select)(unsafe.Pointer(pSub)).FpSrc
+ nSubSrc = (*SrcList)(unsafe.Pointer(pSubSrc)).FnSrc
+ pSrc = (*Select)(unsafe.Pointer(pParent)).FpSrc
+
+ if pParent == p {
+ jointype = (*SrcItem)(unsafe.Pointer(pSubitem)).Ffg.Fjointype
+ }
+
+ if nSubSrc > 1 {
+ pSrc = Xsqlite3SrcListEnlarge(tls, pParse, pSrc, nSubSrc-1, iFrom+1)
+ if pSrc == uintptr(0) {
+ goto __3
+ }
+ (*Select)(unsafe.Pointer(pParent)).FpSrc = pSrc
+ }
+
+ for i = 0; i < nSubSrc; i++ {
+ var pItem uintptr = pSrc + 8 + uintptr(i+iFrom)*104
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x400>>10)) != 0 {
+ Xsqlite3IdListDelete(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 72)))
+ }
+
+ *(*SrcItem)(unsafe.Pointer(pItem)) = *(*SrcItem)(unsafe.Pointer(pSubSrc + 8 + uintptr(i)*104))
+ *(*U8)(unsafe.Pointer(pItem + 60)) |= U8(int32(ltorj))
+ iNewParent = (*SrcItem)(unsafe.Pointer(pSubSrc + 8 + uintptr(i)*104)).FiCursor
+ libc.X__builtin___memset_chk(tls, pSubSrc+8+uintptr(i)*104, 0, uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, pSubSrc+8+uintptr(i)*104, 0))
+ }
+ *(*U8)(unsafe.Pointer(pSrc + 8 + uintptr(iFrom)*104 + 60)) &= U8(JT_LTORJ)
+ *(*U8)(unsafe.Pointer(pSrc + 8 + uintptr(iFrom)*104 + 60)) |= U8(int32(jointype) | int32(ltorj))
+
+ if (*Select)(unsafe.Pointer(pSub)).FpOrderBy != 0 && (*Select)(unsafe.Pointer(pParent)).FselFlags&U32(SF_NoopOrderBy) == U32(0) {
+ var pOrderBy uintptr = (*Select)(unsafe.Pointer(pSub)).FpOrderBy
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
+ *(*U16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 24)) = U16(0)
+ }
+
+ (*Select)(unsafe.Pointer(pParent)).FpOrderBy = pOrderBy
+ (*Select)(unsafe.Pointer(pSub)).FpOrderBy = uintptr(0)
+ }
+ pWhere = (*Select)(unsafe.Pointer(pSub)).FpWhere
+ (*Select)(unsafe.Pointer(pSub)).FpWhere = uintptr(0)
+ if isOuterJoin > 0 {
+ Xsqlite3SetJoinExpr(tls, pWhere, iNewParent, uint32(EP_OuterON))
+ }
+ if pWhere != 0 {
+ if (*Select)(unsafe.Pointer(pParent)).FpWhere != 0 {
+ (*Select)(unsafe.Pointer(pParent)).FpWhere = Xsqlite3PExpr(tls, pParse, TK_AND, pWhere, (*Select)(unsafe.Pointer(pParent)).FpWhere)
+ } else {
+ (*Select)(unsafe.Pointer(pParent)).FpWhere = pWhere
+ }
+ }
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ (*SubstContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*SubstContext)(unsafe.Pointer(bp)).FiTable = iParent
+ (*SubstContext)(unsafe.Pointer(bp)).FiNewTable = iNewParent
+ (*SubstContext)(unsafe.Pointer(bp)).FisOuterJoin = isOuterJoin
+ (*SubstContext)(unsafe.Pointer(bp)).FpEList = (*Select)(unsafe.Pointer(pSub)).FpEList
+ (*SubstContext)(unsafe.Pointer(bp)).FpCList = findLeftmostExprlist(tls, pSub)
+ substSelect(tls, bp, pParent, 0)
+ }
+
+ *(*U32)(unsafe.Pointer(pParent + 4)) |= (*Select)(unsafe.Pointer(pSub)).FselFlags & U32(SF_Compound)
+
+ if (*Select)(unsafe.Pointer(pSub)).FpLimit != 0 {
+ (*Select)(unsafe.Pointer(pParent)).FpLimit = (*Select)(unsafe.Pointer(pSub)).FpLimit
+ (*Select)(unsafe.Pointer(pSub)).FpLimit = uintptr(0)
+ }
+
+ for i = 0; i < nSubSrc; i++ {
+ recomputeColumnsUsed(tls, pParent, pSrc+8+uintptr(i+iFrom)*104)
+ }
+
+ }
+ goto __2
+__2:
+ pParent = (*Select)(unsafe.Pointer(pParent)).FpPrior
+ pSub = (*Select)(unsafe.Pointer(pSub)).FpPrior
+ goto __1
+ goto __3
+__3:
+ ;
+ Xsqlite3AggInfoPersistWalkerInit(tls, bp+40, pParse)
+ Xsqlite3WalkSelect(tls, bp+40, pSub1)
+ Xsqlite3SelectDelete(tls, db, pSub1)
+
+ return 1
+}
+
+// A structure to keep track of all of the column values that are fixed to
+// a known value due to WHERE clause constraints of the form COLUMN=VALUE.
+type WhereConst = WhereConst1
+
+func constInsert(tls *libc.TLS, pConst uintptr, pColumn uintptr, pValue uintptr, pExpr uintptr) {
+ var i int32
+
+ if (*Expr)(unsafe.Pointer(pColumn)).Fflags&U32(EP_FixedCol) != U32(0) {
+ return
+ }
+ if int32(Xsqlite3ExprAffinity(tls, pValue)) != 0 {
+ return
+ }
+ if !(Xsqlite3IsBinary(tls, Xsqlite3ExprCompareCollSeq(tls, (*WhereConst)(unsafe.Pointer(pConst)).FpParse, pExpr)) != 0) {
+ return
+ }
+
+ for i = 0; i < (*WhereConst)(unsafe.Pointer(pConst)).FnConst; i++ {
+ var pE2 uintptr = *(*uintptr)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FapExpr + uintptr(i*2)*8))
+
+ if (*Expr)(unsafe.Pointer(pE2)).FiTable == (*Expr)(unsafe.Pointer(pColumn)).FiTable &&
+ int32((*Expr)(unsafe.Pointer(pE2)).FiColumn) == int32((*Expr)(unsafe.Pointer(pColumn)).FiColumn) {
+ return
+ }
+ }
+ if int32(Xsqlite3ExprAffinity(tls, pColumn)) == SQLITE_AFF_BLOB {
+ (*WhereConst)(unsafe.Pointer(pConst)).FbHasAffBlob = 1
+ }
+
+ (*WhereConst)(unsafe.Pointer(pConst)).FnConst++
+ (*WhereConst)(unsafe.Pointer(pConst)).FapExpr = Xsqlite3DbReallocOrFree(tls, (*Parse)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FpParse)).Fdb, (*WhereConst)(unsafe.Pointer(pConst)).FapExpr,
+ uint64((*WhereConst)(unsafe.Pointer(pConst)).FnConst*2)*uint64(unsafe.Sizeof(uintptr(0))))
+ if (*WhereConst)(unsafe.Pointer(pConst)).FapExpr == uintptr(0) {
+ (*WhereConst)(unsafe.Pointer(pConst)).FnConst = 0
+ } else {
+ *(*uintptr)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FapExpr + uintptr((*WhereConst)(unsafe.Pointer(pConst)).FnConst*2-2)*8)) = pColumn
+ *(*uintptr)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FapExpr + uintptr((*WhereConst)(unsafe.Pointer(pConst)).FnConst*2-1)*8)) = pValue
+ }
+}
+
+func findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) {
+ var pRight uintptr
+ var pLeft uintptr
+ if pExpr == uintptr(0) {
+ return
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&(*WhereConst)(unsafe.Pointer(pConst)).FmExcludeOn != U32(0) {
+ return
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AND {
+ findConstInWhere(tls, pConst, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ findConstInWhere(tls, pConst, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ return
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_EQ {
+ return
+ }
+ pRight = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+ pLeft = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+
+ if int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_COLUMN && Xsqlite3ExprIsConstant(tls, pLeft) != 0 {
+ constInsert(tls, pConst, pRight, pLeft, pExpr)
+ }
+ if int32((*Expr)(unsafe.Pointer(pLeft)).Fop) == TK_COLUMN && Xsqlite3ExprIsConstant(tls, pRight) != 0 {
+ constInsert(tls, pConst, pLeft, pRight, pExpr)
+ }
+}
+
+func propagateConstantExprRewriteOne(tls *libc.TLS, pConst uintptr, pExpr uintptr, bIgnoreAffBlob int32) int32 {
+ var i int32
+ if *(*U8)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FpOomFault)) != 0 {
+ return WRC_Prune
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN {
+ return WRC_Continue
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&(U32(EP_FixedCol)|(*WhereConst)(unsafe.Pointer(pConst)).FmExcludeOn) != U32(0) {
+ return WRC_Continue
+ }
+ for i = 0; i < (*WhereConst)(unsafe.Pointer(pConst)).FnConst; i++ {
+ var pColumn uintptr = *(*uintptr)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FapExpr + uintptr(i*2)*8))
+ if pColumn == pExpr {
+ continue
+ }
+ if (*Expr)(unsafe.Pointer(pColumn)).FiTable != (*Expr)(unsafe.Pointer(pExpr)).FiTable {
+ continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pColumn)).FiColumn) != int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) {
+ continue
+ }
+ if bIgnoreAffBlob != 0 && int32(Xsqlite3ExprAffinity(tls, pColumn)) == SQLITE_AFF_BLOB {
+ break
+ }
+
+ (*WhereConst)(unsafe.Pointer(pConst)).FnChng++
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Leaf))
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_FixedCol)
+
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FpParse)).Fdb, *(*uintptr)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FapExpr + uintptr(i*2+1)*8)), 0)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FpParse)).Fdb)).FmallocFailed != 0 {
+ return WRC_Prune
+ }
+ break
+ }
+ return WRC_Prune
+}
+
+func propagateConstantExprRewrite(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var pConst uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+
+ if (*WhereConst)(unsafe.Pointer(pConst)).FbHasAffBlob != 0 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) >= TK_EQ && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) <= TK_GE ||
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IS {
+ propagateConstantExprRewriteOne(tls, pConst, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, 0)
+ if *(*U8)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(pConst)).FpOomFault)) != 0 {
+ return WRC_Prune
+ }
+ if int32(Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)) != SQLITE_AFF_TEXT {
+ propagateConstantExprRewriteOne(tls, pConst, (*Expr)(unsafe.Pointer(pExpr)).FpRight, 0)
+ }
+ }
+ }
+ return propagateConstantExprRewriteOne(tls, pConst, pExpr, (*WhereConst)(unsafe.Pointer(pConst)).FbHasAffBlob)
+}
+
+func propagateConstants(tls *libc.TLS, pParse uintptr, p uintptr) int32 {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ var nChng int32 = 0
+ (*WhereConst)(unsafe.Pointer(bp)).FpParse = pParse
+ (*WhereConst)(unsafe.Pointer(bp)).FpOomFault = (*Parse)(unsafe.Pointer(pParse)).Fdb + 103
+ for __ccgo := true; __ccgo; __ccgo = (*WhereConst)(unsafe.Pointer(bp)).FnChng != 0 {
+ (*WhereConst)(unsafe.Pointer(bp)).FnConst = 0
+ (*WhereConst)(unsafe.Pointer(bp)).FnChng = 0
+ (*WhereConst)(unsafe.Pointer(bp)).FapExpr = uintptr(0)
+ (*WhereConst)(unsafe.Pointer(bp)).FbHasAffBlob = 0
+ if (*Select)(unsafe.Pointer(p)).FpSrc != uintptr(0) &&
+ (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc)).FnSrc > 0 &&
+ int32((*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ (*WhereConst)(unsafe.Pointer(bp)).FmExcludeOn = U32(EP_InnerON | EP_OuterON)
+ } else {
+ (*WhereConst)(unsafe.Pointer(bp)).FmExcludeOn = U32(EP_OuterON)
+ }
+ findConstInWhere(tls, bp, (*Select)(unsafe.Pointer(p)).FpWhere)
+ if (*WhereConst)(unsafe.Pointer(bp)).FnConst != 0 {
+ libc.X__builtin___memset_chk(tls, bp+40, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp+40, 0))
+ (*Walker)(unsafe.Pointer(bp + 40)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(bp + 40)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{propagateConstantExprRewrite}))
+ (*Walker)(unsafe.Pointer(bp + 40)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+ (*Walker)(unsafe.Pointer(bp + 40)).FxSelectCallback2 = uintptr(0)
+ (*Walker)(unsafe.Pointer(bp + 40)).FwalkerDepth = 0
+ *(*uintptr)(unsafe.Pointer(bp + 40 + 40)) = bp
+ Xsqlite3WalkExpr(tls, bp+40, (*Select)(unsafe.Pointer(p)).FpWhere)
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer((*WhereConst)(unsafe.Pointer(bp)).FpParse)).Fdb, (*WhereConst)(unsafe.Pointer(bp)).FapExpr)
+ nChng = nChng + (*WhereConst)(unsafe.Pointer(bp)).FnChng
+ }
+ }
+ return nChng
+}
+
+func pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr uintptr) int32 {
+ return Xsqlite3ExprIsConstantOrGroupBy(tls, pParse, pExpr, (*Window)(unsafe.Pointer((*Select)(unsafe.Pointer(pSubq)).FpWin)).FpPartition)
+}
+
+func pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere uintptr, pSrc uintptr) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var pNew uintptr
+ var nChng int32 = 0
+ if pWhere == uintptr(0) {
+ return 0
+ }
+ if (*Select)(unsafe.Pointer(pSubq)).FselFlags&U32(SF_Recursive|SF_MultiPart) != 0 {
+ return 0
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(JT_LTORJ|JT_RIGHT) != 0 {
+ return 0
+ }
+
+ if (*Select)(unsafe.Pointer(pSubq)).FpPrior != 0 {
+ var pSel uintptr
+ var notUnionAll int32 = 0
+ for pSel = pSubq; pSel != 0; pSel = (*Select)(unsafe.Pointer(pSel)).FpPrior {
+ var op U8 = (*Select)(unsafe.Pointer(pSel)).Fop
+
+ if int32(op) != TK_ALL && int32(op) != TK_SELECT {
+ notUnionAll = 1
+ }
+ if (*Select)(unsafe.Pointer(pSel)).FpWin != 0 {
+ return 0
+ }
+ }
+ if compoundHasDifferentAffinities(tls, pSubq) != 0 {
+ return 0
+ }
+ if notUnionAll != 0 {
+ for pSel = pSubq; pSel != 0; pSel = (*Select)(unsafe.Pointer(pSel)).FpPrior {
+ var ii int32
+ var pList uintptr = (*Select)(unsafe.Pointer(pSel)).FpEList
+
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer(pList)).FnExpr; ii++ {
+ var pColl uintptr = Xsqlite3ExprCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(ii)*32)).FpExpr)
+ if !(Xsqlite3IsBinary(tls, pColl) != 0) {
+ return 0
+ }
+ }
+ }
+ }
+ } else {
+ if (*Select)(unsafe.Pointer(pSubq)).FpWin != 0 && (*Window)(unsafe.Pointer((*Select)(unsafe.Pointer(pSubq)).FpWin)).FpPartition == uintptr(0) {
+ return 0
+ }
+ }
+
+ if (*Select)(unsafe.Pointer(pSubq)).FpLimit != uintptr(0) {
+ return 0
+ }
+ for int32((*Expr)(unsafe.Pointer(pWhere)).Fop) == TK_AND {
+ nChng = nChng + pushDownWhereTerms(tls, pParse, pSubq, (*Expr)(unsafe.Pointer(pWhere)).FpRight, pSrc)
+ pWhere = (*Expr)(unsafe.Pointer(pWhere)).FpLeft
+ }
+
+ if Xsqlite3ExprIsTableConstraint(tls, pWhere, pSrc) != 0 {
+ nChng++
+ *(*U32)(unsafe.Pointer(pSubq + 4)) |= U32(SF_PushDown)
+ for pSubq != 0 {
+ pNew = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pWhere, 0)
+ unsetJoinExpr(tls, pNew, -1, 1)
+ (*SubstContext)(unsafe.Pointer(bp)).FpParse = pParse
+ (*SubstContext)(unsafe.Pointer(bp)).FiTable = (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor
+ (*SubstContext)(unsafe.Pointer(bp)).FiNewTable = (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor
+ (*SubstContext)(unsafe.Pointer(bp)).FisOuterJoin = 0
+ (*SubstContext)(unsafe.Pointer(bp)).FpEList = (*Select)(unsafe.Pointer(pSubq)).FpEList
+ (*SubstContext)(unsafe.Pointer(bp)).FpCList = findLeftmostExprlist(tls, pSubq)
+ pNew = substExpr(tls, bp, pNew)
+ if (*Select)(unsafe.Pointer(pSubq)).FpWin != 0 && 0 == pushDownWindowCheck(tls, pParse, pSubq, pNew) {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pNew)
+ nChng--
+ break
+ }
+ if (*Select)(unsafe.Pointer(pSubq)).FselFlags&U32(SF_Aggregate) != 0 {
+ (*Select)(unsafe.Pointer(pSubq)).FpHaving = Xsqlite3ExprAnd(tls, pParse, (*Select)(unsafe.Pointer(pSubq)).FpHaving, pNew)
+ } else {
+ (*Select)(unsafe.Pointer(pSubq)).FpWhere = Xsqlite3ExprAnd(tls, pParse, (*Select)(unsafe.Pointer(pSubq)).FpWhere, pNew)
+ }
+ pSubq = (*Select)(unsafe.Pointer(pSubq)).FpPrior
+ }
+ }
+ return nChng
+}
+
+func minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) U8 {
+ var eRet int32 = WHERE_ORDERBY_NORMAL
+ var pEList uintptr
+ var zFunc uintptr
+ var pOrderBy uintptr
+ var sortFlags U8 = U8(0)
+
+ pEList = *(*uintptr)(unsafe.Pointer(pFunc + 32))
+ if pEList == uintptr(0) ||
+ (*ExprList)(unsafe.Pointer(pEList)).FnExpr != 1 ||
+ (*Expr)(unsafe.Pointer(pFunc)).Fflags&U32(EP_WinFunc) != U32(0) ||
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_MinMaxOpt) != U32(0) {
+ return U8(eRet)
+ }
+
+ zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8))
+ if Xsqlite3StrICmp(tls, zFunc, ts+15567) == 0 {
+ eRet = WHERE_ORDERBY_MIN
+ if Xsqlite3ExprCanBeNull(tls, (*ExprList_item)(unsafe.Pointer(pEList+8)).FpExpr) != 0 {
+ sortFlags = U8(KEYINFO_ORDER_BIGNULL)
+ }
+ } else if Xsqlite3StrICmp(tls, zFunc, ts+15571) == 0 {
+ eRet = WHERE_ORDERBY_MAX
+ sortFlags = U8(KEYINFO_ORDER_DESC)
+ } else {
+ return U8(eRet)
+ }
+ *(*uintptr)(unsafe.Pointer(ppMinMax)) = libc.AssignUintptr(&pOrderBy, Xsqlite3ExprListDup(tls, db, pEList, 0))
+
+ if pOrderBy != 0 {
+ (*ExprList_item)(unsafe.Pointer(pOrderBy + 8)).Ffg.FsortFlags = sortFlags
+ }
+ return U8(eRet)
+}
+
+func isSimpleCount(tls *libc.TLS, p uintptr, pAggInfo uintptr) uintptr {
+ var pTab uintptr
+ var pExpr uintptr
+
+ if (*Select)(unsafe.Pointer(p)).FpWhere != 0 ||
+ (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr != 1 ||
+ (*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc)).FnSrc != 1 ||
+ (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc+8)).FpSelect != 0 ||
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc != 1 ||
+ (*Select)(unsafe.Pointer(p)).FpHaving != 0 {
+ return uintptr(0)
+ }
+ pTab = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpTab
+
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ return uintptr(0)
+ }
+ pExpr = (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList + 8)).FpExpr
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_AGG_FUNCTION {
+ return uintptr(0)
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo != pAggInfo {
+ return uintptr(0)
+ }
+ if (*FuncDef)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFunc)).FfuncFlags&U32(SQLITE_FUNC_COUNT) == U32(0) {
+ return uintptr(0)
+ }
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Distinct|EP_WinFunc) != U32(0) {
+ return uintptr(0)
+ }
+
+ return pTab
+}
+
+// If the source-list item passed as an argument was augmented with an
+// INDEXED BY clause, then try to locate the specified index. If there
+// was such a clause and the named index cannot be found, return
+// SQLITE_ERROR and leave an error in pParse. Otherwise, populate
+// pFrom->pIndex and return SQLITE_OK.
+func Xsqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpTab
+ var zIndexedBy uintptr = *(*uintptr)(unsafe.Pointer(pFrom + 88))
+ var pIdx uintptr
+
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0 && Xsqlite3StrICmp(tls, (*Index)(unsafe.Pointer(pIdx)).FzName, zIndexedBy) != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ }
+ if !(pIdx != 0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19614, libc.VaList(bp, zIndexedBy, 0))
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ return SQLITE_ERROR
+ }
+
+ *(*uintptr)(unsafe.Pointer(pFrom + 96)) = pIdx
+ return SQLITE_OK
+}
+
+func convertCompoundSelectToSubquery(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var i int32
+ var pNew uintptr
+ var pX uintptr
+ var db uintptr
+ var a uintptr
+ var pNewSrc uintptr
+ var pParse uintptr
+
+ if (*Select)(unsafe.Pointer(p)).FpPrior == uintptr(0) {
+ return WRC_Continue
+ }
+ if (*Select)(unsafe.Pointer(p)).FpOrderBy == uintptr(0) {
+ return WRC_Continue
+ }
+ for pX = p; pX != 0 && (int32((*Select)(unsafe.Pointer(pX)).Fop) == TK_ALL || int32((*Select)(unsafe.Pointer(pX)).Fop) == TK_SELECT); pX = (*Select)(unsafe.Pointer(pX)).FpPrior {
+ }
+ if pX == uintptr(0) {
+ return WRC_Continue
+ }
+ a = (*Select)(unsafe.Pointer(p)).FpOrderBy + 8
+
+ if *(*U16)(unsafe.Pointer(a + 24)) != 0 {
+ return WRC_Continue
+ }
+ for i = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpOrderBy)).FnExpr - 1; i >= 0; i-- {
+ if (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(a+uintptr(i)*32)).FpExpr)).Fflags&U32(EP_Collate) != 0 {
+ break
+ }
+ }
+ if i < 0 {
+ return WRC_Continue
+ }
+
+ pParse = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Select{})))
+ if pNew == uintptr(0) {
+ return WRC_Abort
+ }
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Token{})), libc.X__builtin_object_size(tls, bp, 0))
+ pNewSrc = Xsqlite3SrcListAppendFromTerm(tls, pParse, uintptr(0), uintptr(0), uintptr(0), bp, pNew, uintptr(0))
+ if pNewSrc == uintptr(0) {
+ return WRC_Abort
+ }
+ *(*Select)(unsafe.Pointer(pNew)) = *(*Select)(unsafe.Pointer(p))
+ (*Select)(unsafe.Pointer(p)).FpSrc = pNewSrc
+ (*Select)(unsafe.Pointer(p)).FpEList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), Xsqlite3Expr(tls, db, TK_ASTERISK, uintptr(0)))
+ (*Select)(unsafe.Pointer(p)).Fop = U8(TK_SELECT)
+ (*Select)(unsafe.Pointer(p)).FpWhere = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpGroupBy = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpHaving = uintptr(0)
+ (*Select)(unsafe.Pointer(pNew)).FpOrderBy = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpPrior = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpNext = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpWith = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpWinDefn = uintptr(0)
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_Compound))
+
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_Converted)
+
+ (*Select)(unsafe.Pointer((*Select)(unsafe.Pointer(pNew)).FpPrior)).FpNext = pNew
+ (*Select)(unsafe.Pointer(pNew)).FpLimit = uintptr(0)
+ return WRC_Continue
+}
+
+func cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19632, libc.VaList(bp, (*SrcItem)(unsafe.Pointer(pFrom)).FzName))
+ return 1
+ }
+ return 0
+}
+
+func searchWith(tls *libc.TLS, pWith uintptr, pItem uintptr, ppContext uintptr) uintptr {
+ var zName uintptr = (*SrcItem)(unsafe.Pointer(pItem)).FzName
+ var p uintptr
+
+ for p = pWith; p != 0; p = (*With)(unsafe.Pointer(p)).FpOuter {
+ var i int32
+ for i = 0; i < (*With)(unsafe.Pointer(p)).FnCte; i++ {
+ if Xsqlite3StrICmp(tls, zName, (*Cte)(unsafe.Pointer(p+16+uintptr(i)*48)).FzName) == 0 {
+ *(*uintptr)(unsafe.Pointer(ppContext)) = p
+ return p + 16 + uintptr(i)*48
+ }
+ }
+ if (*With)(unsafe.Pointer(p)).FbView != 0 {
+ break
+ }
+ }
+ return uintptr(0)
+}
+
+// The code generator maintains a stack of active WITH clauses
+// with the inner-most WITH clause being at the top of the stack.
+//
+// This routine pushes the WITH clause passed as the second argument
+// onto the top of the stack. If argument bFree is true, then this
+// WITH clause will never be popped from the stack but should instead
+// be freed along with the Parse object. In other cases, when
+// bFree==0, the With object will be freed along with the SELECT
+// statement with which it is associated.
+//
+// This routine returns a copy of pWith. Or, if bFree is true and
+// the pWith object is destroyed immediately due to an OOM condition,
+// then this routine return NULL.
+//
+// If bFree is true, do not continue to use the pWith pointer after
+// calling this routine, Instead, use only the return value.
+func Xsqlite3WithPush(tls *libc.TLS, pParse uintptr, pWith uintptr, bFree U8) uintptr {
+ if pWith != 0 {
+ if bFree != 0 {
+ pWith = Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3WithDelete})),
+ pWith)
+ if pWith == uintptr(0) {
+ return uintptr(0)
+ }
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ (*With)(unsafe.Pointer(pWith)).FpOuter = (*Parse)(unsafe.Pointer(pParse)).FpWith
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = pWith
+ }
+ }
+ return pWith
+}
+
+func resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var pCte uintptr
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpWith == uintptr(0) {
+ return 0
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return 0
+ }
+ if (*SrcItem)(unsafe.Pointer(pFrom)).FzDatabase != uintptr(0) {
+ return 0
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x200>>9)) != 0 {
+ return 0
+ }
+ pCte = searchWith(tls, (*Parse)(unsafe.Pointer(pParse)).FpWith, pFrom, bp+48)
+ if pCte != 0 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTab uintptr
+ var pEList uintptr
+ var pSel uintptr
+ var pLeft uintptr
+ var pRecTerm uintptr
+ var bMayRecursive int32
+ var pSavedWith uintptr
+ var iRecTab int32 = -1
+ var pCteUse uintptr
+
+ if (*Cte)(unsafe.Pointer(pCte)).FzCteErr != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, (*Cte)(unsafe.Pointer(pCte)).FzCteErr, libc.VaList(bp, (*Cte)(unsafe.Pointer(pCte)).FzName))
+ return 2
+ }
+ if cannotBeFunction(tls, pParse, pFrom) != 0 {
+ return 2
+ }
+
+ pTab = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if pTab == uintptr(0) {
+ return 2
+ }
+ pCteUse = (*Cte)(unsafe.Pointer(pCte)).FpUse
+ if pCteUse == uintptr(0) {
+ (*Cte)(unsafe.Pointer(pCte)).FpUse = libc.AssignUintptr(&pCteUse, Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(CteUse{}))))
+ if pCteUse == uintptr(0) ||
+ Xsqlite3ParserAddCleanup(tls, pParse, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3DbFree})), pCteUse) == uintptr(0) {
+ Xsqlite3DbFree(tls, db, pTab)
+ return 2
+ }
+ (*CteUse)(unsafe.Pointer(pCteUse)).FeM10d = (*Cte)(unsafe.Pointer(pCte)).FeM10d
+ }
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpTab = pTab
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef = U32(1)
+ (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3DbStrDup(tls, db, (*Cte)(unsafe.Pointer(pCte)).FzName)
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = int16(-1)
+ (*Table)(unsafe.Pointer(pTab)).FnRowLogEst = int16(200)
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_Ephemeral | TF_NoVisibleRowid)
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect = Xsqlite3SelectDup(tls, db, (*Cte)(unsafe.Pointer(pCte)).FpSelect, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return 2
+ }
+ *(*U32)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= U32(SF_CopyCte)
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19655, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pFrom + 88))))
+ return 2
+ }
+ libc.SetBitFieldPtr16Uint32(pFrom+60+4, uint32(1), 8, 0x100)
+ *(*uintptr)(unsafe.Pointer(pFrom + 96)) = pCteUse
+ (*CteUse)(unsafe.Pointer(pCteUse)).FnUse++
+
+ pRecTerm = libc.AssignUintptr(&pSel, (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect)
+ bMayRecursive = libc.Bool32(int32((*Select)(unsafe.Pointer(pSel)).Fop) == TK_ALL || int32((*Select)(unsafe.Pointer(pSel)).Fop) == TK_UNION)
+ for bMayRecursive != 0 && int32((*Select)(unsafe.Pointer(pRecTerm)).Fop) == int32((*Select)(unsafe.Pointer(pSel)).Fop) {
+ var i int32
+ var pSrc uintptr = (*Select)(unsafe.Pointer(pRecTerm)).FpSrc
+
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc; i++ {
+ var pItem uintptr = pSrc + 8 + uintptr(i)*104
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzDatabase == uintptr(0) &&
+ (*SrcItem)(unsafe.Pointer(pItem)).FzName != uintptr(0) &&
+ 0 == Xsqlite3StrICmp(tls, (*SrcItem)(unsafe.Pointer(pItem)).FzName, (*Cte)(unsafe.Pointer(pCte)).FzName) {
+ (*SrcItem)(unsafe.Pointer(pItem)).FpTab = pTab
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef++
+ libc.SetBitFieldPtr16Uint32(pItem+60+4, uint32(1), 6, 0x40)
+ if (*Select)(unsafe.Pointer(pRecTerm)).FselFlags&U32(SF_Recursive) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+19675, libc.VaList(bp+16, (*Cte)(unsafe.Pointer(pCte)).FzName))
+ return 2
+ }
+ *(*U32)(unsafe.Pointer(pRecTerm + 4)) |= U32(SF_Recursive)
+ if iRecTab < 0 {
+ iRecTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ }
+ (*SrcItem)(unsafe.Pointer(pItem)).FiCursor = iRecTab
+ }
+ }
+ if (*Select)(unsafe.Pointer(pRecTerm)).FselFlags&U32(SF_Recursive) == U32(0) {
+ break
+ }
+ pRecTerm = (*Select)(unsafe.Pointer(pRecTerm)).FpPrior
+ }
+
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 19718
+ pSavedWith = (*Parse)(unsafe.Pointer(pParse)).FpWith
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp + 48))
+ if (*Select)(unsafe.Pointer(pSel)).FselFlags&U32(SF_Recursive) != 0 {
+ var rc int32
+
+ (*Select)(unsafe.Pointer(pRecTerm)).FpWith = (*Select)(unsafe.Pointer(pSel)).FpWith
+ rc = Xsqlite3WalkSelect(tls, pWalker, pRecTerm)
+ (*Select)(unsafe.Pointer(pRecTerm)).FpWith = uintptr(0)
+ if rc != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = pSavedWith
+ return 2
+ }
+ } else {
+ if Xsqlite3WalkSelect(tls, pWalker, pSel) != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = pSavedWith
+ return 2
+ }
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp + 48))
+
+ for pLeft = pSel; (*Select)(unsafe.Pointer(pLeft)).FpPrior != 0; pLeft = (*Select)(unsafe.Pointer(pLeft)).FpPrior {
+ }
+ pEList = (*Select)(unsafe.Pointer(pLeft)).FpEList
+ if (*Cte)(unsafe.Pointer(pCte)).FpCols != 0 {
+ if pEList != 0 && (*ExprList)(unsafe.Pointer(pEList)).FnExpr != (*ExprList)(unsafe.Pointer((*Cte)(unsafe.Pointer(pCte)).FpCols)).FnExpr {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19741,
+ libc.VaList(bp+24, (*Cte)(unsafe.Pointer(pCte)).FzName, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, (*ExprList)(unsafe.Pointer((*Cte)(unsafe.Pointer(pCte)).FpCols)).FnExpr))
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = pSavedWith
+ return 2
+ }
+ pEList = (*Cte)(unsafe.Pointer(pCte)).FpCols
+ }
+
+ Xsqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8)
+ if bMayRecursive != 0 {
+ if (*Select)(unsafe.Pointer(pSel)).FselFlags&U32(SF_Recursive) != 0 {
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 19779
+ } else {
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = ts + 19813
+ }
+ Xsqlite3WalkSelect(tls, pWalker, pSel)
+ }
+ (*Cte)(unsafe.Pointer(pCte)).FzCteErr = uintptr(0)
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = pSavedWith
+ return 1
+ }
+ return 0
+}
+
+// If the SELECT passed as the second argument has an associated WITH
+// clause, pop it from the stack stored as part of the Parse object.
+//
+// This function is used as the xSelectCallback2() callback by
+// sqlite3SelectExpand() when walking a SELECT tree to resolve table
+// names and other FROM clause elements.
+func Xsqlite3SelectPopWith(tls *libc.TLS, pWalker uintptr, p uintptr) {
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ if (*Parse)(unsafe.Pointer(pParse)).FpWith != 0 && (*Select)(unsafe.Pointer(p)).FpPrior == uintptr(0) {
+ var pWith uintptr = (*Select)(unsafe.Pointer(findRightmost(tls, p))).FpWith
+ if pWith != uintptr(0) {
+ (*Parse)(unsafe.Pointer(pParse)).FpWith = (*With)(unsafe.Pointer(pWith)).FpOuter
+ }
+ }
+}
+
+// The SrcItem structure passed as the second argument represents a
+// sub-query in the FROM clause of a SELECT statement. This function
+// allocates and populates the SrcItem.pTab object. If successful,
+// SQLITE_OK is returned. Otherwise, if an OOM error is encountered,
+// SQLITE_NOMEM.
+func Xsqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pSel uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect
+ var pTab uintptr
+
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpTab = libc.AssignUintptr(&pTab, Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Table{}))))
+ if pTab == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef = U32(1)
+ if (*SrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 {
+ (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3DbStrDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*SrcItem)(unsafe.Pointer(pFrom)).FzAlias)
+ } else {
+ (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3MPrintf(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, ts+19851, libc.VaList(bp, pFrom))
+ }
+ for (*Select)(unsafe.Pointer(pSel)).FpPrior != 0 {
+ pSel = (*Select)(unsafe.Pointer(pSel)).FpPrior
+ }
+ Xsqlite3ColumnsFromExprList(tls, pParse, (*Select)(unsafe.Pointer(pSel)).FpEList, pTab+54, pTab+8)
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = int16(-1)
+ (*Table)(unsafe.Pointer(pTab)).FnRowLogEst = int16(200)
+
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_Ephemeral | TF_NoVisibleRowid)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return SQLITE_ERROR
+ }
+ return SQLITE_OK
+}
+
+func inAnyUsingClause(tls *libc.TLS, zName uintptr, pBase uintptr, N int32) int32 {
+ for N > 0 {
+ N--
+ pBase += 104
+ if int32(*(*uint16)(unsafe.Pointer(pBase + 60 + 4))&0x400>>10) == 0 {
+ continue
+ }
+ if *(*uintptr)(unsafe.Pointer(pBase + 72)) == uintptr(0) {
+ continue
+ }
+ if Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pBase + 72)), zName) >= 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ var i int32
+ var j int32
+ var k int32
+ var rc int32
+ var pTabList uintptr
+ var pEList uintptr
+ var pFrom uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pE uintptr
+ var pRight uintptr
+ var pExpr uintptr
+ var selFlags U16 = U16((*Select)(unsafe.Pointer(p)).FselFlags)
+ var elistFlags U32 = U32(0)
+
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_Expanded)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return WRC_Abort
+ }
+
+ if int32(selFlags)&SF_Expanded != 0 {
+ return WRC_Prune
+ }
+ if (*Walker)(unsafe.Pointer(pWalker)).FeCode != 0 {
+ (*Select)(unsafe.Pointer(p)).FselId = U32(libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnSelect, 1))
+ }
+ pTabList = (*Select)(unsafe.Pointer(p)).FpSrc
+ pEList = (*Select)(unsafe.Pointer(p)).FpEList
+ if (*Parse)(unsafe.Pointer(pParse)).FpWith != 0 && (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_View) != 0 {
+ if (*Select)(unsafe.Pointer(p)).FpWith == uintptr(0) {
+ (*Select)(unsafe.Pointer(p)).FpWith = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(With{})))
+ if (*Select)(unsafe.Pointer(p)).FpWith == uintptr(0) {
+ return WRC_Abort
+ }
+ }
+ (*With)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpWith)).FbView = 1
+ }
+ Xsqlite3WithPush(tls, pParse, (*Select)(unsafe.Pointer(p)).FpWith, uint8(0))
+
+ Xsqlite3SrcListAssignCursors(tls, pParse, pTabList)
+
+ i = 0
+ pFrom = pTabList + 8
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) {
+ goto __3
+ }
+ {
+ var pTab uintptr
+
+ if (*SrcItem)(unsafe.Pointer(pFrom)).FpTab != 0 {
+ goto __2
+ }
+
+ if (*SrcItem)(unsafe.Pointer(pFrom)).FzName == uintptr(0) {
+ var pSel uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect
+
+ if Xsqlite3WalkSelect(tls, pWalker, pSel) != 0 {
+ return WRC_Abort
+ }
+ if Xsqlite3ExpandSubquery(tls, pParse, pFrom) != 0 {
+ return WRC_Abort
+ }
+ } else if libc.AssignInt32(&rc, resolveFromTermToCte(tls, pParse, pWalker, pFrom)) != 0 {
+ if rc > 1 {
+ return WRC_Abort
+ }
+ pTab = (*SrcItem)(unsafe.Pointer(pFrom)).FpTab
+
+ } else {
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpTab = libc.AssignUintptr(&pTab, Xsqlite3LocateTableItem(tls, pParse, uint32(0), pFrom))
+ if pTab == uintptr(0) {
+ return WRC_Abort
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FnTabRef >= U32(0xffff) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19855,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0)
+ return WRC_Abort
+ }
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef++
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) && cannotBeFunction(tls, pParse, pFrom) != 0 {
+ return WRC_Abort
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_NORM) {
+ var nCol I16
+ var eCodeOrig U8 = U8((*Walker)(unsafe.Pointer(pWalker)).FeCode)
+ if Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0 {
+ return WRC_Abort
+ }
+
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ if (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) &&
+ (*Table)(unsafe.Pointer(pTab)).FpSchema != (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19894,
+ libc.VaList(bp+8, (*Table)(unsafe.Pointer(pTab)).FzName))
+ }
+ (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect = Xsqlite3SelectDup(tls, db, *(*uintptr)(unsafe.Pointer(pTab + 64)), 0)
+ } else if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB &&
+ uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x80>>7)) != 0 &&
+ *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) != uintptr(0) &&
+ int32((*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 16)))).FeVtabRisk) > libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+15136,
+ libc.VaList(bp+16, (*Table)(unsafe.Pointer(pTab)).FzName))
+ }
+
+ nCol = (*Table)(unsafe.Pointer(pTab)).FnCol
+ (*Table)(unsafe.Pointer(pTab)).FnCol = int16(-1)
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(1)
+ Xsqlite3WalkSelect(tls, pWalker, (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect)
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(eCodeOrig)
+ (*Table)(unsafe.Pointer(pTab)).FnCol = nCol
+ }
+ }
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 && Xsqlite3IndexedByLookup(tls, pParse, pFrom) != 0 {
+ return WRC_Abort
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pFrom += 104
+ goto __1
+ goto __3
+__3:
+ ;
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 || sqlite3ProcessJoin(tls, pParse, p) != 0 {
+ return WRC_Abort
+ }
+
+ for k = 0; k < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; k++ {
+ pE = (*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(k)*32)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pE)).Fop) == TK_ASTERISK {
+ break
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pE)).Fop) == TK_DOT && int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pE)).FpRight)).Fop) == TK_ASTERISK {
+ break
+ }
+ elistFlags = elistFlags | (*Expr)(unsafe.Pointer(pE)).Fflags
+ }
+ if k < (*ExprList)(unsafe.Pointer(pEList)).FnExpr {
+ var a uintptr = pEList + 8
+ var pNew uintptr = uintptr(0)
+ var flags int32 = int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags)
+ var longNames int32 = libc.Bool32(flags&SQLITE_FullColNames != 0 &&
+ flags&SQLITE_ShortColNames == 0)
+
+ for k = 0; k < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; k++ {
+ pE = (*ExprList_item)(unsafe.Pointer(a + uintptr(k)*32)).FpExpr
+ elistFlags = elistFlags | (*Expr)(unsafe.Pointer(pE)).Fflags
+ pRight = (*Expr)(unsafe.Pointer(pE)).FpRight
+
+ if int32((*Expr)(unsafe.Pointer(pE)).Fop) != TK_ASTERISK &&
+ (int32((*Expr)(unsafe.Pointer(pE)).Fop) != TK_DOT || int32((*Expr)(unsafe.Pointer(pRight)).Fop) != TK_ASTERISK) {
+ pNew = Xsqlite3ExprListAppend(tls, pParse, pNew, (*ExprList_item)(unsafe.Pointer(a+uintptr(k)*32)).FpExpr)
+ if pNew != 0 {
+ (*ExprList_item)(unsafe.Pointer(pNew + 8 + uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32)).FzEName = (*ExprList_item)(unsafe.Pointer(a + uintptr(k)*32)).FzEName
+ libc.SetBitFieldPtr16Uint32(pNew+8+uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32+16+4, uint32(int32(*(*uint16)(unsafe.Pointer(a + uintptr(k)*32 + 16 + 4))&0x3>>0)), 0, 0x3)
+ (*ExprList_item)(unsafe.Pointer(a + uintptr(k)*32)).FzEName = uintptr(0)
+ }
+ (*ExprList_item)(unsafe.Pointer(a + uintptr(k)*32)).FpExpr = uintptr(0)
+ } else {
+ var tableSeen int32 = 0
+ var zTName uintptr = uintptr(0)
+ if int32((*Expr)(unsafe.Pointer(pE)).Fop) == TK_DOT {
+ zTName = *(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pE)).FpLeft + 8))
+ }
+ i = 0
+ pFrom = pTabList + 8
+ __4:
+ if !(i < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) {
+ goto __6
+ }
+ {
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpTab
+ var pNestedFrom uintptr
+ var zTabName uintptr
+ var zSchemaName uintptr = uintptr(0)
+ var iDb int32
+ var pUsing uintptr
+
+ if libc.AssignUintptr(&zTabName, (*SrcItem)(unsafe.Pointer(pFrom)).FzAlias) == uintptr(0) {
+ zTabName = (*Table)(unsafe.Pointer(pTab)).FzName
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ goto __6
+ }
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2000>>13)) != 0 {
+ pNestedFrom = (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pFrom)).FpSelect)).FpEList
+
+ } else {
+ if zTName != 0 && Xsqlite3StrICmp(tls, zTName, zTabName) != 0 {
+ goto __5
+ }
+ pNestedFrom = uintptr(0)
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ if iDb >= 0 {
+ zSchemaName = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ } else {
+ zSchemaName = ts + 6849
+ }
+ }
+ if i+1 < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc &&
+ uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 1*104 + 60 + 4))&0x400>>10)) != 0 &&
+ int32(selFlags)&SF_NestedFrom != 0 {
+ var ii int32
+ pUsing = *(*uintptr)(unsafe.Pointer(pFrom + 1*104 + 72))
+ for ii = 0; ii < (*IdList)(unsafe.Pointer(pUsing)).FnId; ii++ {
+ var zUName uintptr = (*IdList_item)(unsafe.Pointer(pUsing + 8 + uintptr(ii)*16)).FzName
+ pRight = Xsqlite3Expr(tls, db, TK_ID, zUName)
+ pNew = Xsqlite3ExprListAppend(tls, pParse, pNew, pRight)
+ if pNew != 0 {
+ var pX uintptr = pNew + 8 + uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32
+
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3MPrintf(tls, db, ts+19925, libc.VaList(bp+24, zUName))
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(ENAME_TAB), 0, 0x3)
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(1), 7, 0x80)
+ }
+ }
+ } else {
+ pUsing = uintptr(0)
+ }
+ for j = 0; j < int32((*Table)(unsafe.Pointer(pTab)).FnCol); j++ {
+ var zName uintptr = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*24)).FzCnName
+ var pX uintptr
+
+ if zTName != 0 &&
+ pNestedFrom != 0 &&
+ Xsqlite3MatchEName(tls, pNestedFrom+8+uintptr(j)*32, uintptr(0), zTName, uintptr(0)) == 0 {
+ continue
+ }
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_IncludeHidden) == U32(0) &&
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_HIDDEN != 0 {
+ continue
+ }
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_NOEXPAND != 0 &&
+ zTName == uintptr(0) &&
+ int32(selFlags)&SF_NestedFrom == 0 {
+ continue
+ }
+ tableSeen = 1
+
+ if i > 0 && zTName == uintptr(0) && int32(selFlags)&SF_NestedFrom == 0 {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x400>>10)) != 0 &&
+ Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pFrom + 72)), zName) >= 0 {
+ continue
+ }
+ }
+ pRight = Xsqlite3Expr(tls, db, TK_ID, zName)
+ if (*SrcList)(unsafe.Pointer(pTabList)).FnSrc > 1 &&
+ (int32((*SrcItem)(unsafe.Pointer(pFrom)).Ffg.Fjointype)&JT_LTORJ == 0 ||
+ int32(selFlags)&SF_NestedFrom != 0 ||
+ !(inAnyUsingClause(tls, zName, pFrom, (*SrcList)(unsafe.Pointer(pTabList)).FnSrc-i-1) != 0)) ||
+ int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ var pLeft uintptr
+ pLeft = Xsqlite3Expr(tls, db, TK_ID, zTabName)
+ pExpr = Xsqlite3PExpr(tls, pParse, TK_DOT, pLeft, pRight)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && (*Expr)(unsafe.Pointer(pE)).FpLeft != 0 {
+ Xsqlite3RenameTokenRemap(tls, pParse, pLeft, (*Expr)(unsafe.Pointer(pE)).FpLeft)
+ }
+ if zSchemaName != 0 {
+ pLeft = Xsqlite3Expr(tls, db, TK_ID, zSchemaName)
+ pExpr = Xsqlite3PExpr(tls, pParse, TK_DOT, pLeft, pExpr)
+ }
+ } else {
+ pExpr = pRight
+ }
+ pNew = Xsqlite3ExprListAppend(tls, pParse, pNew, pExpr)
+ if pNew == uintptr(0) {
+ break
+ }
+ pX = pNew + 8 + uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32
+
+ if int32(selFlags)&SF_NestedFrom != 0 && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ if pNestedFrom != 0 {
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3DbStrDup(tls, db, (*ExprList_item)(unsafe.Pointer(pNestedFrom+8+uintptr(j)*32)).FzEName)
+
+ } else {
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3MPrintf(tls, db, ts+19930,
+ libc.VaList(bp+32, zSchemaName, zTabName, zName))
+
+ }
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(ENAME_TAB), 0, 0x3)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x400>>10)) != 0 &&
+ Xsqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pFrom + 72)), zName) >= 0 ||
+ pUsing != 0 && Xsqlite3IdListIndex(tls, pUsing, zName) >= 0 ||
+ int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_NOEXPAND != 0 {
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(1), 8, 0x100)
+ }
+ } else if longNames != 0 {
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3MPrintf(tls, db, ts+12464, libc.VaList(bp+56, zTabName, zName))
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(ENAME_NAME), 0, 0x3)
+ } else {
+ (*ExprList_item)(unsafe.Pointer(pX)).FzEName = Xsqlite3DbStrDup(tls, db, zName)
+ libc.SetBitFieldPtr16Uint32(pX+16+4, uint32(ENAME_NAME), 0, 0x3)
+ }
+ }
+
+ }
+ goto __5
+ __5:
+ i++
+ pFrom += 104
+ goto __4
+ goto __6
+ __6:
+ ;
+ if !(tableSeen != 0) {
+ if zTName != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19939, libc.VaList(bp+72, zTName))
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19957, 0)
+ }
+ }
+ }
+ }
+ Xsqlite3ExprListDelete(tls, db, pEList)
+ (*Select)(unsafe.Pointer(p)).FpEList = pNew
+ }
+ if (*Select)(unsafe.Pointer(p)).FpEList != 0 {
+ if (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+19977, 0)
+ return WRC_Abort
+ }
+ if elistFlags&U32(EP_HasFunc|EP_Subquery) != U32(0) {
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_ComplexResult)
+ }
+ }
+ return WRC_Continue
+}
+
+func sqlite3SelectExpand(tls *libc.TLS, pParse uintptr, pSelect uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3ExprWalkNoop}))
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ if (*Parse)(unsafe.Pointer(pParse)).FhasCompound != 0 {
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{convertCompoundSelectToSubquery}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = uintptr(0)
+ Xsqlite3WalkSelect(tls, bp, pSelect)
+ }
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{selectExpander}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3SelectPopWith}))
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(0)
+ Xsqlite3WalkSelect(tls, bp, pSelect)
+}
+
+func selectAddSubqueryTypeInfo(tls *libc.TLS, pWalker uintptr, p uintptr) {
+ var pParse uintptr
+ var i int32
+ var pTabList uintptr
+ var pFrom uintptr
+
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_HasTypeInfo) != 0 {
+ return
+ }
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_HasTypeInfo)
+ pParse = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+ pTabList = (*Select)(unsafe.Pointer(p)).FpSrc
+ i = 0
+ pFrom = pTabList + 8
+__1:
+ if !(i < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) {
+ goto __3
+ }
+ {
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpTab
+
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Ephemeral) != U32(0) {
+ var pSel uintptr = (*SrcItem)(unsafe.Pointer(pFrom)).FpSelect
+ if pSel != 0 {
+ Xsqlite3SubqueryColumnTypes(tls, pParse, pTab, pSel, int8(SQLITE_AFF_NONE))
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pFrom += 104
+ goto __1
+ goto __3
+__3:
+}
+
+func sqlite3SelectAddTypeInfo(tls *libc.TLS, pParse uintptr, pSelect uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{selectAddSubqueryTypeInfo}))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3ExprWalkNoop}))
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ Xsqlite3WalkSelect(tls, bp, pSelect)
+}
+
+// This routine sets up a SELECT statement for processing. The
+// following is accomplished:
+//
+// - VDBE Cursor numbers are assigned to all FROM-clause terms.
+// - Ephemeral Table objects are created for all FROM-clause subqueries.
+// - ON and USING clauses are shifted into WHERE statements
+// - Wildcards "*" and "TABLE.*" in result sets are expanded.
+// - Identifiers in expression are matched to tables.
+//
+// This routine acts recursively on all subqueries within the SELECT.
+func Xsqlite3SelectPrep(tls *libc.TLS, pParse uintptr, p uintptr, pOuterNC uintptr) {
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return
+ }
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_HasTypeInfo) != 0 {
+ return
+ }
+ sqlite3SelectExpand(tls, pParse, p)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ Xsqlite3ResolveSelectNames(tls, pParse, p, pOuterNC)
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ sqlite3SelectAddTypeInfo(tls, pParse, p)
+}
+
+func analyzeAggFuncArgs(tls *libc.TLS, pAggInfo uintptr, pNC uintptr) {
+ var i int32
+
+ *(*int32)(unsafe.Pointer(pNC + 40)) |= NC_InAggFunc
+ for i = 0; i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc; i++ {
+ var pExpr uintptr = (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(i)*24)).FpFExpr
+
+ Xsqlite3ExprAnalyzeAggList(tls, pNC, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ Xsqlite3ExprAnalyzeAggregates(tls, pNC, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FpFilter)
+ }
+ }
+ *(*int32)(unsafe.Pointer(pNC + 40)) &= libc.CplInt32(NC_InAggFunc)
+}
+
+func optimizeAggregateUseOfIndexedExpr(tls *libc.TLS, pParse uintptr, pSelect uintptr, pAggInfo uintptr, pNC uintptr) {
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn = (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator
+ if int32((*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn) > 0 {
+ if (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn == 0 {
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn = U16(0)
+ } else {
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn = U16(int32((*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol+uintptr((*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn-1)*24)).FiSorterColumn) + 1)
+ }
+ }
+ analyzeAggFuncArgs(tls, pAggInfo, pNC)
+ _ = pSelect
+ _ = pParse
+}
+
+func aggregateIdxEprRefToColCallback(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var pAggInfo uintptr
+ var pCol uintptr
+ _ = pWalker
+ if (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) {
+ return WRC_Continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_COLUMN {
+ return WRC_Continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_FUNCTION {
+ return WRC_Continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IF_NULL_ROW {
+ return WRC_Continue
+ }
+ pAggInfo = (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo
+
+ pCol = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr((*Expr)(unsafe.Pointer(pExpr)).FiAgg)*24
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_AGG_COLUMN)
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*AggInfo_col)(unsafe.Pointer(pCol)).FiTable
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = (*AggInfo_col)(unsafe.Pointer(pCol)).FiColumn
+ return WRC_Prune
+}
+
+func aggregateConvertIndexedExprRefToColumn(tls *libc.TLS, pAggInfo uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var i int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{aggregateIdxEprRefToColCallback}))
+ for i = 0; i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc; i++ {
+ Xsqlite3WalkExpr(tls, bp, (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc+uintptr(i)*24)).FpFExpr)
+ }
+}
+
+func assignAggregateRegisters(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) {
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn + (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc
+}
+
+func resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var pFunc uintptr
+ var nReg int32 = (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc + (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn
+
+ if nReg == 0 {
+ return
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg,
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg+nReg-1)
+ pFunc = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+ i = 0
+__1:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __3
+ }
+ {
+ if (*AggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 {
+ var pE uintptr = (*AggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr
+
+ if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != 1 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20008, 0)
+ (*AggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -1
+ } else {
+ var pKeyInfo uintptr = Xsqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0)
+ (*AggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = Xsqlite3VdbeAddOp4(tls, v, OP_OpenEphemeral,
+ (*AggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -8)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+20059, libc.VaList(bp, (*FuncDef)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName))
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pFunc += 24
+ goto __1
+ goto __3
+__3:
+}
+
+func finalizeAggFunctions(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var pF uintptr
+ i = 0
+ pF = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+__1:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __3
+ }
+ {
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFExpr + 32))
+ Xsqlite3VdbeAddOp2(tls, v, OP_AggFinal, func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg + (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn + i
+ }(),
+ func() int32 {
+ if pList != 0 {
+ return (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ }
+ return 0
+ }())
+ Xsqlite3VdbeAppendP4(tls, v, (*AggInfo_func)(unsafe.Pointer(pF)).FpFunc, -7)
+
+ }
+ goto __2
+__2:
+ i++
+ pF += 24
+ goto __1
+ goto __3
+__3:
+}
+
+func updateAccumulator(tls *libc.TLS, pParse uintptr, regAcc int32, pAggInfo uintptr, eDistinctType int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var regHit int32 = 0
+ var addrHitTest int32 = 0
+ var pF uintptr
+ var pC uintptr
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return
+ }
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode = U8(1)
+ i = 0
+ pF = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+__1:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __3
+ }
+ {
+ var nArg int32
+ var addrNext int32 = 0
+ var regAgg int32
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFExpr + 32))
+ if (*Expr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFExpr)).Fflags&U32(EP_WinFunc) != U32(0) {
+ var pFilter uintptr = (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFExpr + 64)))).FpFilter
+ if (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator != 0 &&
+ (*FuncDef)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFunc)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0 &&
+ regAcc != 0 {
+ if regHit == 0 {
+ regHit = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, regAcc, regHit)
+ }
+ addrNext = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3ExprIfFalse(tls, pParse, pFilter, addrNext, SQLITE_JUMPIFNULL)
+ }
+ if pList != 0 {
+ nArg = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ regAgg = Xsqlite3GetTempRange(tls, pParse, nArg)
+ Xsqlite3ExprCodeExprList(tls, pParse, pList, regAgg, 0, uint8(SQLITE_ECEL_DUP))
+ } else {
+ nArg = 0
+ regAgg = 0
+ }
+ if (*AggInfo_func)(unsafe.Pointer(pF)).FiDistinct >= 0 && pList != 0 {
+ if addrNext == 0 {
+ addrNext = Xsqlite3VdbeMakeLabel(tls, pParse)
+ }
+ (*AggInfo_func)(unsafe.Pointer(pF)).FiDistinct = codeDistinct(tls, pParse, eDistinctType,
+ (*AggInfo_func)(unsafe.Pointer(pF)).FiDistinct, addrNext, pList, regAgg)
+ }
+ if (*FuncDef)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer(pF)).FpFunc)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0 {
+ var pColl uintptr = uintptr(0)
+ var pItem uintptr
+ var j int32
+
+ j = 0
+ pItem = pList + 8
+ __4:
+ if !(!(pColl != 0) && j < nArg) {
+ goto __6
+ }
+ {
+ pColl = Xsqlite3ExprCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pItem)).FpExpr)
+
+ }
+ goto __5
+ __5:
+ j++
+ pItem += 32
+ goto __4
+ goto __6
+ __6:
+ ;
+ if !(pColl != 0) {
+ pColl = (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl
+ }
+ if regHit == 0 && (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator != 0 {
+ regHit = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+ Xsqlite3VdbeAddOp4(tls, v, OP_CollSeq, regHit, 0, 0, pColl, -2)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_AggStep, 0, regAgg, func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg + (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn + i
+ }())
+ Xsqlite3VdbeAppendP4(tls, v, (*AggInfo_func)(unsafe.Pointer(pF)).FpFunc, -7)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(U8(nArg)))
+ Xsqlite3ReleaseTempRange(tls, pParse, regAgg, nArg)
+ if addrNext != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, addrNext)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pF += 24
+ goto __1
+ goto __3
+__3:
+ ;
+ if regHit == 0 && (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator != 0 {
+ regHit = regAcc
+ }
+ if regHit != 0 {
+ addrHitTest = Xsqlite3VdbeAddOp1(tls, v, OP_If, regHit)
+ }
+ i = 0
+ pC = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol
+__7:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator) {
+ goto __9
+ }
+ {
+ Xsqlite3ExprCode(tls, pParse, (*AggInfo_col)(unsafe.Pointer(pC)).FpCExpr, func() int32 { ; return (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg + i }())
+
+ }
+ goto __8
+__8:
+ i++
+ pC += 24
+ goto __7
+ goto __9
+__9:
+ ;
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode = U8(0)
+ if addrHitTest != 0 {
+ Xsqlite3VdbeJumpHereOrPopInst(tls, v, addrHitTest)
+ }
+}
+
+func explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fexplain) == 2 {
+ var bCover int32 = libc.Bool32(pIdx != uintptr(0) && ((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) || !(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY)))
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+20092,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName,
+ func() uintptr {
+ if bCover != 0 {
+ return ts + 20104
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if bCover != 0 {
+ return (*Index)(unsafe.Pointer(pIdx)).FzName
+ }
+ return ts + 1547
+ }()))
+ }
+}
+
+func havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_AND {
+ var pS uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+
+ if Xsqlite3ExprIsConstantOrGroupBy(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*Select)(unsafe.Pointer(pS)).FpGroupBy) != 0 &&
+ libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_IsFalse) == U32(EP_IsFalse)) == 0 &&
+ (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) {
+ var db uintptr = (*Parse)(unsafe.Pointer((*Walker)(unsafe.Pointer(pWalker)).FpParse)).Fdb
+ var pNew uintptr = Xsqlite3Expr(tls, db, TK_INTEGER, ts+8341)
+ if pNew != 0 {
+ var pWhere uintptr = (*Select)(unsafe.Pointer(pS)).FpWhere
+ {
+ var t = *(*Expr)(unsafe.Pointer(pNew))
+ *(*Expr)(unsafe.Pointer(pNew)) = *(*Expr)(unsafe.Pointer(pExpr))
+ *(*Expr)(unsafe.Pointer(pExpr)) = t
+ }
+
+ pNew = Xsqlite3ExprAnd(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse, pWhere, pNew)
+ (*Select)(unsafe.Pointer(pS)).FpWhere = pNew
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(1)
+ }
+ }
+ return WRC_Prune
+ }
+ return WRC_Continue
+}
+
+func havingToWhere(tls *libc.TLS, pParse uintptr, p uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{havingToWhereExprCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = p
+ Xsqlite3WalkExpr(tls, bp, (*Select)(unsafe.Pointer(p)).FpHaving)
+}
+
+func isSelfJoinView(tls *libc.TLS, pTabList uintptr, pThis uintptr, iFirst int32, iEnd int32) uintptr {
+ var pItem uintptr
+
+ if (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pThis)).FpSelect)).FselFlags&U32(SF_PushDown) != 0 {
+ return uintptr(0)
+ }
+ for iFirst < iEnd {
+ var pS1 uintptr
+ pItem = pTabList + 8 + uintptr(libc.PostIncInt32(&iFirst, 1))*104
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect == uintptr(0) {
+ continue
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x20>>5)) != 0 {
+ continue
+ }
+ if (*SrcItem)(unsafe.Pointer(pItem)).FzName == uintptr(0) {
+ continue
+ }
+
+ if (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FpSchema != (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pThis)).FpTab)).FpSchema {
+ continue
+ }
+ if Xsqlite3_stricmp(tls, (*SrcItem)(unsafe.Pointer(pItem)).FzName, (*SrcItem)(unsafe.Pointer(pThis)).FzName) != 0 {
+ continue
+ }
+ pS1 = (*SrcItem)(unsafe.Pointer(pItem)).FpSelect
+ if (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FpSchema == uintptr(0) && (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pThis)).FpSelect)).FselId != (*Select)(unsafe.Pointer(pS1)).FselId {
+ continue
+ }
+ if (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&U32(SF_PushDown) != 0 {
+ continue
+ }
+ return pItem
+ }
+ return uintptr(0)
+}
+
+func agginfoFree(tls *libc.TLS, db uintptr, p uintptr) {
+ Xsqlite3DbFree(tls, db, (*AggInfo)(unsafe.Pointer(p)).FaCol)
+ Xsqlite3DbFree(tls, db, (*AggInfo)(unsafe.Pointer(p)).FaFunc)
+ Xsqlite3DbFreeNN(tls, db, p)
+}
+
+func sameSrcAlias(tls *libc.TLS, p0 uintptr, pSrc uintptr) int32 {
+ var i int32
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc; i++ {
+ var p1 uintptr = pSrc + 8 + uintptr(i)*104
+ if p1 == p0 {
+ continue
+ }
+ if (*SrcItem)(unsafe.Pointer(p0)).FpTab == (*SrcItem)(unsafe.Pointer(p1)).FpTab && 0 == Xsqlite3_stricmp(tls, (*SrcItem)(unsafe.Pointer(p0)).FzAlias, (*SrcItem)(unsafe.Pointer(p1)).FzAlias) {
+ return 1
+ }
+ if (*SrcItem)(unsafe.Pointer(p1)).FpSelect != 0 &&
+ (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(p1)).FpSelect)).FselFlags&U32(SF_NestedFrom) != U32(0) &&
+ sameSrcAlias(tls, p0, (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(p1)).FpSelect)).FpSrc) != 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func fromClauseTermCanBeCoroutine(tls *libc.TLS, pParse uintptr, pTabList uintptr, i int32, selFlags int32) int32 {
+ var pItem uintptr = pTabList + 8 + uintptr(i)*104
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x100>>8)) != 0 {
+ var pCteUse uintptr = *(*uintptr)(unsafe.Pointer(pItem + 96))
+ if int32((*CteUse)(unsafe.Pointer(pCteUse)).FeM10d) == M10d_Yes {
+ return 0
+ }
+ if (*CteUse)(unsafe.Pointer(pCteUse)).FnUse >= 2 && int32((*CteUse)(unsafe.Pointer(pCteUse)).FeM10d) != M10d_No {
+ return 0
+ }
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pTabList+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ return 0
+ }
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_Coroutines) != U32(0) {
+ return 0
+ }
+ if isSelfJoinView(tls, pTabList, pItem, i+1, (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) != uintptr(0) {
+ return 0
+ }
+ if i == 0 {
+ if (*SrcList)(unsafe.Pointer(pTabList)).FnSrc == 1 {
+ return 1
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pTabList+8+1*104)).Ffg.Fjointype)&JT_CROSS != 0 {
+ return 1
+ }
+ if selFlags&SF_UpdateFrom != 0 {
+ return 0
+ }
+ return 1
+ }
+ if selFlags&SF_UpdateFrom != 0 {
+ return 0
+ }
+ for 1 != 0 {
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(JT_OUTER|JT_CROSS) != 0 {
+ return 0
+ }
+ if i == 0 {
+ break
+ }
+ i--
+ pItem -= 104
+ if (*SrcItem)(unsafe.Pointer(pItem)).FpSelect != uintptr(0) {
+ return 0
+ }
+ }
+ return 1
+}
+
+// Generate code for the SELECT statement given in the p argument.
+//
+// The results are returned according to the SelectDest structure.
+// See comments in sqliteInt.h for further information.
+//
+// This routine returns the number of errors. If any errors are
+// encountered, then an appropriate error message is left in
+// pParse->zErrMsg.
+//
+// This routine does NOT free the Select structure passed in. The
+// calling function needs to do that.
+func Xsqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) int32 {
+ bp := tls.Alloc(216)
+ defer tls.Free(216)
+
+ var i int32
+ var j int32
+ var pWInfo uintptr
+ var v uintptr
+ var isAgg int32
+ var pEList uintptr
+ var pTabList uintptr
+ var pWhere uintptr
+ var pGroupBy uintptr
+ var pHaving uintptr
+ var pAggInfo uintptr
+ var rc int32
+
+ var iEnd int32
+ var db uintptr
+
+ var minMaxFlag U8
+ var p0 uintptr
+ var pItem uintptr
+ var pSub uintptr
+ var pTab uintptr
+
+ var addrTop int32
+
+ var pCteUse uintptr
+ var pCteUse1 uintptr
+
+ var topAddr int32
+ var onceAddr int32
+ var pItem1 uintptr
+ var pPrior uintptr
+
+ var pSub1 uintptr
+ var zSavedAuthContext uintptr
+ var pKeyInfo uintptr
+
+ var ii int32
+ var addrGosub int32
+ var iCont int32
+ var iBreak int32
+ var regGosub int32
+
+ var wctrlFlags U16
+ var pWin uintptr
+ var sortFlags U8
+ var ii1 int32
+ var k int32
+ var pItem2 uintptr
+ var pExpr uintptr
+ var pCol uintptr
+
+ var regBase int32
+ var regRecord int32
+ var nCol int32
+ var nGroupBy int32
+ var pF uintptr
+ var pKeyInfo1 uintptr
+ var addr1 int32
+ var addrOutputRow int32
+ var regOutputRow int32
+ var addrSetAbort int32
+ var addrTopOfLoop int32
+ var addrSortingIdx int32
+ var addrReset int32
+ var regReset int32
+ var pDistinct uintptr
+ var distFlag U16
+ var eDist int32
+
+ var iDb int32
+ var iCsr int32
+ var pIdx uintptr
+ var pKeyInfo2 uintptr
+ var pBest uintptr
+ var iRoot Pgno
+ var pF1 uintptr
+ var regAcc int32
+ var pDistinct1 uintptr
+ var distFlag1 U16
+ var eDist1 int32
+ var pTab1 uintptr
+
+ var iAMem int32
+ var iBMem int32
+ var iUseFlag int32
+
+ var iAbortFlag int32
+ var groupBySort int32
+ var addrEnd int32
+ var sortPTab int32
+ var sortOut int32
+ var orderByGrp int32
+ pEList = uintptr(0)
+ pAggInfo = uintptr(0)
+ rc = 1
+ *(*uintptr)(unsafe.Pointer(bp + 208)) = uintptr(0)
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(p == uintptr(0) || (*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __1
+ }
+ return 1
+__1:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_SELECT, uintptr(0), uintptr(0), uintptr(0)) != 0) {
+ goto __2
+ }
+ return 1
+__2:
+ ;
+ if !(int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest) <= SRT_DistQueue) {
+ goto __3
+ }
+
+ if !((*Select)(unsafe.Pointer(p)).FpOrderBy != 0) {
+ goto __4
+ }
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3ExprListDelete})),
+ (*Select)(unsafe.Pointer(p)).FpOrderBy)
+
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+__4:
+ ;
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_Distinct))
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_NoopOrderBy)
+__3:
+ ;
+ Xsqlite3SelectPrep(tls, pParse, p, uintptr(0))
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __5
+ }
+ goto select_end
+__5:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_UFSrcCheck) != 0) {
+ goto __6
+ }
+ p0 = (*Select)(unsafe.Pointer(p)).FpSrc + 8
+ if !(sameSrcAlias(tls, p0, (*Select)(unsafe.Pointer(p)).FpSrc) != 0) {
+ goto __7
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20127,
+ libc.VaList(bp, func() uintptr {
+ if (*SrcItem)(unsafe.Pointer(p0)).FzAlias != 0 {
+ return (*SrcItem)(unsafe.Pointer(p0)).FzAlias
+ }
+ return (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(p0)).FpTab)).FzName
+ }()))
+ goto select_end
+__7:
+ ;
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_UFSrcCheck))
+__6:
+ ;
+ if !(int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest) == SRT_Output) {
+ goto __8
+ }
+ Xsqlite3GenerateColumnNames(tls, pParse, p)
+__8:
+ ;
+ if !(Xsqlite3WindowRewrite(tls, pParse, p) != 0) {
+ goto __9
+ }
+
+ goto select_end
+__9:
+ ;
+ pTabList = (*Select)(unsafe.Pointer(p)).FpSrc
+ isAgg = libc.Bool32((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Aggregate) != U32(0))
+ libc.X__builtin___memset_chk(tls, bp+48, 0, uint64(unsafe.Sizeof(SortCtx{})), libc.X__builtin_object_size(tls, bp+48, 0))
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FpOrderBy = (*Select)(unsafe.Pointer(p)).FpOrderBy
+
+ i = 0
+__10:
+ if !(!(int32((*Select)(unsafe.Pointer(p)).FpPrior) != 0) && i < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) {
+ goto __12
+ }
+ pItem = pTabList + 8 + uintptr(i)*104
+ pSub = (*SrcItem)(unsafe.Pointer(pItem)).FpSelect
+ pTab = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+
+ if !(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(JT_LEFT|JT_RIGHT) == JT_LEFT &&
+ Xsqlite3ExprImpliesNonNullRow(tls, (*Select)(unsafe.Pointer(p)).FpWhere, (*SrcItem)(unsafe.Pointer(pItem)).FiCursor) != 0 &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_SimplifyJoin) == U32(0)) {
+ goto __13
+ }
+
+ *(*U8)(unsafe.Pointer(pItem + 60)) &= libc.Uint8FromInt32(libc.CplInt32(JT_LEFT | JT_OUTER))
+
+ unsetJoinExpr(tls, (*Select)(unsafe.Pointer(p)).FpWhere, (*SrcItem)(unsafe.Pointer(pItem)).FiCursor,
+ int32((*SrcItem)(unsafe.Pointer(pTabList+8)).Ffg.Fjointype)&JT_LTORJ)
+__13:
+ ;
+ if !(pSub == uintptr(0)) {
+ goto __14
+ }
+ goto __11
+__14:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FnCol) != (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub)).FpEList)).FnExpr) {
+ goto __15
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20181,
+ libc.VaList(bp+8, int32((*Table)(unsafe.Pointer(pTab)).FnCol), (*Table)(unsafe.Pointer(pTab)).FzName, (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(pSub)).FpEList)).FnExpr))
+ goto select_end
+__15:
+ ;
+ if !((*Select)(unsafe.Pointer(pSub)).FselFlags&U32(SF_Aggregate) != U32(0)) {
+ goto __16
+ }
+ goto __11
+__16:
+ ;
+ if !((*Select)(unsafe.Pointer(pSub)).FpOrderBy != uintptr(0) &&
+ ((*Select)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) || (*SrcList)(unsafe.Pointer(pTabList)).FnSrc > 1) &&
+ (*Select)(unsafe.Pointer(pSub)).FpLimit == uintptr(0) &&
+ (*Select)(unsafe.Pointer(pSub)).FselFlags&U32(SF_OrderByReqd) == U32(0) &&
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_OrderByReqd) == U32(0) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_OmitOrderBy) == U32(0)) {
+ goto __17
+ }
+
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3ExprListDelete})),
+ (*Select)(unsafe.Pointer(pSub)).FpOrderBy)
+ (*Select)(unsafe.Pointer(pSub)).FpOrderBy = uintptr(0)
+__17:
+ ;
+ if !((*Select)(unsafe.Pointer(pSub)).FpOrderBy != uintptr(0) &&
+ i == 0 &&
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_ComplexResult) != U32(0) &&
+ ((*SrcList)(unsafe.Pointer(pTabList)).FnSrc == 1 ||
+ int32((*SrcItem)(unsafe.Pointer(pTabList+8+1*104)).Ffg.Fjointype)&(JT_OUTER|JT_CROSS) != 0)) {
+ goto __18
+ }
+ goto __11
+__18:
+ ;
+ if !(flattenSubquery(tls, pParse, p, i, isAgg) != 0) {
+ goto __19
+ }
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __20
+ }
+ goto select_end
+__20:
+ ;
+ i = -1
+__19:
+ ;
+ pTabList = (*Select)(unsafe.Pointer(p)).FpSrc
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __21
+ }
+ goto select_end
+__21:
+ ;
+ if !!(int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest) <= SRT_Fifo) {
+ goto __22
+ }
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FpOrderBy = (*Select)(unsafe.Pointer(p)).FpOrderBy
+__22:
+ ;
+ goto __11
+__11:
+ i++
+ goto __10
+ goto __12
+__12:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FpPrior != 0) {
+ goto __23
+ }
+ rc = multiSelect(tls, pParse, p, pDest)
+ if !((*Select)(unsafe.Pointer(p)).FpNext == uintptr(0)) {
+ goto __24
+ }
+ Xsqlite3VdbeExplainPop(tls, pParse)
+__24:
+ ;
+ return rc
+__23:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FpWhere != uintptr(0) &&
+ int32((*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpWhere)).Fop) == TK_AND &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_PropagateConst) == U32(0) &&
+ propagateConstants(tls, pParse, p) != 0) {
+ goto __25
+ }
+ goto __26
+__25:
+ ;
+__26:
+ ;
+ i = 0
+__27:
+ if !(i < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc) {
+ goto __29
+ }
+ pItem1 = pTabList + 8 + uintptr(i)*104
+
+ if !((*SrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*SrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0)) {
+ goto __30
+ }
+ Xsqlite3AuthCheck(tls, pParse, SQLITE_READ, (*SrcItem)(unsafe.Pointer(pItem1)).FzName, ts+1547, (*SrcItem)(unsafe.Pointer(pItem1)).FzDatabase)
+__30:
+ ;
+ pSub1 = (*SrcItem)(unsafe.Pointer(pItem1)).FpSelect
+ if !(pSub1 == uintptr(0)) {
+ goto __31
+ }
+ goto __28
+__31:
+ ;
+ *(*int32)(unsafe.Pointer(pParse + 316)) += Xsqlite3SelectExprHeight(tls, p)
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_PushDown) == U32(0) &&
+ (int32(*(*uint16)(unsafe.Pointer(pItem1 + 60 + 4))&0x100>>8) == 0 ||
+ int32((*CteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pItem1 + 96)))).FeM10d) != M10d_Yes && (*CteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pItem1 + 96)))).FnUse < 2) &&
+ pushDownWhereTerms(tls, pParse, pSub1, (*Select)(unsafe.Pointer(p)).FpWhere, pItem1) != 0) {
+ goto __32
+ }
+
+ goto __33
+__32:
+ ;
+__33:
+ ;
+ zSavedAuthContext = (*Parse)(unsafe.Pointer(pParse)).FzAuthContext
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = (*SrcItem)(unsafe.Pointer(pItem1)).FzName
+
+ if !(fromClauseTermCanBeCoroutine(tls, pParse, pTabList, i, int32((*Select)(unsafe.Pointer(p)).FselFlags)) != 0) {
+ goto __34
+ }
+
+ addrTop = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+
+ (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop)
+
+ (*SrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop
+ Xsqlite3SelectDestInit(tls, bp+96, SRT_Coroutine, (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn)
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+20221, libc.VaList(bp+32, pItem1))
+ Xsqlite3Select(tls, pParse, pSub1, bp+96)
+ (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*Select)(unsafe.Pointer(pSub1)).FnSelectRow
+ libc.SetBitFieldPtr16Uint32(pItem1+60+4, uint32(1), 5, 0x20)
+ (*SrcItem)(unsafe.Pointer(pItem1)).FregResult = (*SelectDest)(unsafe.Pointer(bp + 96)).FiSdst
+ Xsqlite3VdbeEndCoroutine(tls, v, (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn)
+ Xsqlite3VdbeJumpHere(tls, v, addrTop-1)
+ Xsqlite3ClearTempRegCache(tls, pParse)
+ goto __35
+__34:
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pItem1 + 60 + 4))&0x100>>8)) != 0 && (*CteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pItem1 + 96)))).FaddrM9e > 0) {
+ goto __36
+ }
+
+ pCteUse = *(*uintptr)(unsafe.Pointer(pItem1 + 96))
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*CteUse)(unsafe.Pointer(pCteUse)).FregRtn, (*CteUse)(unsafe.Pointer(pCteUse)).FaddrM9e)
+ if !((*SrcItem)(unsafe.Pointer(pItem1)).FiCursor != (*CteUse)(unsafe.Pointer(pCteUse)).FiCur) {
+ goto __38
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*SrcItem)(unsafe.Pointer(pItem1)).FiCursor, (*CteUse)(unsafe.Pointer(pCteUse)).FiCur)
+
+__38:
+ ;
+ (*Select)(unsafe.Pointer(pSub1)).FnSelectRow = (*CteUse)(unsafe.Pointer(pCteUse)).FnRowEst
+ goto __37
+__36:
+ if !(libc.AssignUintptr(&pPrior, isSelfJoinView(tls, pTabList, pItem1, 0, i)) != uintptr(0)) {
+ goto __39
+ }
+
+ if !((*SrcItem)(unsafe.Pointer(pPrior)).FaddrFillSub != 0) {
+ goto __41
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*SrcItem)(unsafe.Pointer(pPrior)).FregReturn, (*SrcItem)(unsafe.Pointer(pPrior)).FaddrFillSub)
+__41:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*SrcItem)(unsafe.Pointer(pItem1)).FiCursor, (*SrcItem)(unsafe.Pointer(pPrior)).FiCursor)
+ (*Select)(unsafe.Pointer(pSub1)).FnSelectRow = (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pPrior)).FpSelect)).FnSelectRow
+ goto __40
+__39:
+ onceAddr = 0
+
+ (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ topAddr = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ (*SrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = topAddr + 1
+ libc.SetBitFieldPtr16Uint32(pItem1+60+4, uint32(1), 4, 0x10)
+ if !(int32(*(*uint16)(unsafe.Pointer(pItem1 + 60 + 4))&0x8>>3) == 0) {
+ goto __42
+ }
+
+ onceAddr = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+
+ goto __43
+__42:
+ ;
+__43:
+ ;
+ Xsqlite3SelectDestInit(tls, bp+96, SRT_EphemTab, (*SrcItem)(unsafe.Pointer(pItem1)).FiCursor)
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+20236, libc.VaList(bp+40, pItem1))
+ Xsqlite3Select(tls, pParse, pSub1, bp+96)
+ (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*Select)(unsafe.Pointer(pSub1)).FnSelectRow
+ if !(onceAddr != 0) {
+ goto __44
+ }
+ Xsqlite3VdbeJumpHere(tls, v, onceAddr)
+__44:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Return, (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn, topAddr+1)
+
+ Xsqlite3VdbeJumpHere(tls, v, topAddr)
+ Xsqlite3ClearTempRegCache(tls, pParse)
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pItem1 + 60 + 4))&0x100>>8)) != 0 && int32(*(*uint16)(unsafe.Pointer(pItem1 + 60 + 4))&0x8>>3) == 0) {
+ goto __45
+ }
+ pCteUse1 = *(*uintptr)(unsafe.Pointer(pItem1 + 96))
+ (*CteUse)(unsafe.Pointer(pCteUse1)).FaddrM9e = (*SrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub
+ (*CteUse)(unsafe.Pointer(pCteUse1)).FregRtn = (*SrcItem)(unsafe.Pointer(pItem1)).FregReturn
+ (*CteUse)(unsafe.Pointer(pCteUse1)).FiCur = (*SrcItem)(unsafe.Pointer(pItem1)).FiCursor
+ (*CteUse)(unsafe.Pointer(pCteUse1)).FnRowEst = (*Select)(unsafe.Pointer(pSub1)).FnSelectRow
+__45:
+ ;
+__40:
+ ;
+__37:
+ ;
+__35:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __46
+ }
+ goto select_end
+__46:
+ ;
+ *(*int32)(unsafe.Pointer(pParse + 316)) -= Xsqlite3SelectExprHeight(tls, p)
+ (*Parse)(unsafe.Pointer(pParse)).FzAuthContext = zSavedAuthContext
+ goto __28
+__28:
+ i++
+ goto __27
+ goto __29
+__29:
+ ;
+ pEList = (*Select)(unsafe.Pointer(p)).FpEList
+ pWhere = (*Select)(unsafe.Pointer(p)).FpWhere
+ pGroupBy = (*Select)(unsafe.Pointer(p)).FpGroupBy
+ pHaving = (*Select)(unsafe.Pointer(p)).FpHaving
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FisTnct = U8(libc.Bool32((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) != U32(0)))
+
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct|SF_Aggregate) == U32(SF_Distinct) &&
+ Xsqlite3ExprListCompare(tls, (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy, pEList, -1) == 0 &&
+ (*Select)(unsafe.Pointer(p)).FpWin == uintptr(0)) {
+ goto __47
+ }
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_Distinct))
+ pGroupBy = libc.AssignPtrUintptr(p+56, Xsqlite3ExprListDup(tls, db, pEList, 0))
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_Aggregate)
+
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FisTnct = U8(2)
+
+__47:
+ ;
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy != 0) {
+ goto __48
+ }
+ pKeyInfo = Xsqlite3KeyInfoFromExprList(tls,
+ pParse, (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy, 0, (*ExprList)(unsafe.Pointer(pEList)).FnExpr)
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FiECursor = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FaddrSortIndex = Xsqlite3VdbeAddOp4(tls, v, OP_OpenEphemeral,
+ (*SortCtx)(unsafe.Pointer(bp+48)).FiECursor, (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy)).FnExpr+1+(*ExprList)(unsafe.Pointer(pEList)).FnExpr, 0,
+ pKeyInfo, -8)
+ goto __49
+__48:
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FaddrSortIndex = -1
+__49:
+ ;
+ if !(int32((*SelectDest)(unsafe.Pointer(pDest)).FeDest) == SRT_EphemTab) {
+ goto __50
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*SelectDest)(unsafe.Pointer(pDest)).FiSDParm, (*ExprList)(unsafe.Pointer(pEList)).FnExpr)
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_NestedFrom) != 0) {
+ goto __51
+ }
+ ii = (*ExprList)(unsafe.Pointer(pEList)).FnExpr - 1
+__52:
+ if !(ii > 0 && int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(ii)*32 + 16 + 4))&0x40>>6) == 0) {
+ goto __54
+ }
+ Xsqlite3ExprDelete(tls, db, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(ii)*32)).FpExpr)
+ Xsqlite3DbFree(tls, db, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(ii)*32)).FzEName)
+ (*ExprList)(unsafe.Pointer(pEList)).FnExpr--
+ goto __53
+__53:
+ ii--
+ goto __52
+ goto __54
+__54:
+ ;
+ ii = 0
+__55:
+ if !(ii < (*ExprList)(unsafe.Pointer(pEList)).FnExpr) {
+ goto __57
+ }
+ if !(int32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(ii)*32 + 16 + 4))&0x40>>6) == 0) {
+ goto __58
+ }
+ (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(ii)*32)).FpExpr)).Fop = U8(TK_NULL)
+__58:
+ ;
+ goto __56
+__56:
+ ii++
+ goto __55
+ goto __57
+__57:
+ ;
+__51:
+ ;
+__50:
+ ;
+ iEnd = Xsqlite3VdbeMakeLabel(tls, pParse)
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_FixedLimit) == U32(0)) {
+ goto __59
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = int16(320)
+__59:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FpLimit != 0) {
+ goto __60
+ }
+ computeLimitRegisters(tls, pParse, p, iEnd)
+__60:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FiLimit == 0 && (*SortCtx)(unsafe.Pointer(bp+48)).FaddrSortIndex >= 0) {
+ goto __61
+ }
+ Xsqlite3VdbeChangeOpcode(tls, v, (*SortCtx)(unsafe.Pointer(bp+48)).FaddrSortIndex, uint8(OP_SorterOpen))
+ *(*U8)(unsafe.Pointer(bp + 48 + 36)) |= U8(SORTFLAG_UseSorter)
+__61:
+ ;
+ if !((*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) != 0) {
+ goto __62
+ }
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FtabTnct = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FaddrTnct = Xsqlite3VdbeAddOp4(tls, v, OP_OpenEphemeral,
+ (*DistinctCtx)(unsafe.Pointer(bp+136)).FtabTnct, 0, 0,
+ Xsqlite3KeyInfoFromExprList(tls, pParse, (*Select)(unsafe.Pointer(p)).FpEList, 0, 0),
+ -8)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(BTREE_UNORDERED))
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FeTnctType = U8(WHERE_DISTINCT_UNORDERED)
+ goto __63
+__62:
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FeTnctType = U8(WHERE_DISTINCT_NOOP)
+__63:
+ ;
+ if !(!(isAgg != 0) && pGroupBy == uintptr(0)) {
+ goto __64
+ }
+
+ wctrlFlags = U16(func() uint32 {
+ if (*DistinctCtx)(unsafe.Pointer(bp+136)).FisTnct != 0 {
+ return uint32(WHERE_WANT_DISTINCT)
+ }
+ return uint32(0)
+ }() |
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_FixedLimit))
+ pWin = (*Select)(unsafe.Pointer(p)).FpWin
+ if !(pWin != 0) {
+ goto __66
+ }
+ Xsqlite3WindowCodeInit(tls, pParse, p)
+__66:
+ ;
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pTabList, pWhere, (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy,
+ (*Select)(unsafe.Pointer(p)).FpEList, p, wctrlFlags, int32((*Select)(unsafe.Pointer(p)).FnSelectRow))
+ if !(pWInfo == uintptr(0)) {
+ goto __67
+ }
+ goto select_end
+__67:
+ ;
+ if !(int32(Xsqlite3WhereOutputRowCount(tls, pWInfo)) < int32((*Select)(unsafe.Pointer(p)).FnSelectRow)) {
+ goto __68
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = Xsqlite3WhereOutputRowCount(tls, pWInfo)
+__68:
+ ;
+ if !((*DistinctCtx)(unsafe.Pointer(bp+136)).FisTnct != 0 && Xsqlite3WhereIsDistinct(tls, pWInfo) != 0) {
+ goto __69
+ }
+ (*DistinctCtx)(unsafe.Pointer(bp + 136)).FeTnctType = U8(Xsqlite3WhereIsDistinct(tls, pWInfo))
+__69:
+ ;
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy != 0) {
+ goto __70
+ }
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FnOBSat = Xsqlite3WhereIsOrdered(tls, pWInfo)
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FlabelOBLopt = Xsqlite3WhereOrderByLimitOptLabel(tls, pWInfo)
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FnOBSat == (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy)).FnExpr) {
+ goto __71
+ }
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FpOrderBy = uintptr(0)
+__71:
+ ;
+__70:
+ ;
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FaddrSortIndex >= 0 && (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy == uintptr(0)) {
+ goto __72
+ }
+ Xsqlite3VdbeChangeToNoop(tls, v, (*SortCtx)(unsafe.Pointer(bp+48)).FaddrSortIndex)
+__72:
+ ;
+ if !(pWin != 0) {
+ goto __73
+ }
+ addrGosub = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iCont = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iBreak = Xsqlite3VdbeMakeLabel(tls, pParse)
+ regGosub = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ Xsqlite3WindowCodeStep(tls, pParse, p, pWInfo, regGosub, addrGosub)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, iBreak)
+ Xsqlite3VdbeResolveLabel(tls, v, addrGosub)
+
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FlabelOBLopt = 0
+ selectInnerLoop(tls, pParse, p, -1, bp+48, bp+136, pDest, iCont, iBreak)
+ Xsqlite3VdbeResolveLabel(tls, v, iCont)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regGosub)
+
+ Xsqlite3VdbeResolveLabel(tls, v, iBreak)
+ goto __74
+__73:
+ selectInnerLoop(tls, pParse, p, -1, bp+48, bp+136, pDest,
+ Xsqlite3WhereContinueLabel(tls, pWInfo),
+ Xsqlite3WhereBreakLabel(tls, pWInfo))
+
+ Xsqlite3WhereEnd(tls, pWInfo)
+__74:
+ ;
+ goto __65
+__64:
+ sortPTab = 0
+ sortOut = 0
+ orderByGrp = 0
+
+ if !(pGroupBy != 0) {
+ goto __75
+ }
+
+ k = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpEList)).FnExpr
+ pItem2 = (*Select)(unsafe.Pointer(p)).FpEList + 8
+__77:
+ if !(k > 0) {
+ goto __79
+ }
+ *(*U16)(unsafe.Pointer(pItem2 + 24 + 2)) = U16(0)
+ goto __78
+__78:
+ k--
+ pItem2 += 32
+ goto __77
+ goto __79
+__79:
+ ;
+ k = (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr
+ pItem2 = pGroupBy + 8
+__80:
+ if !(k > 0) {
+ goto __82
+ }
+ *(*U16)(unsafe.Pointer(pItem2 + 24 + 2)) = U16(0)
+ goto __81
+__81:
+ k--
+ pItem2 += 32
+ goto __80
+ goto __82
+__82:
+ ;
+ if !(int32((*Select)(unsafe.Pointer(p)).FnSelectRow) > 66) {
+ goto __83
+ }
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = int16(66)
+__83:
+ ;
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy != 0 && (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr == (*ExprList)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy)).FnExpr) {
+ goto __84
+ }
+
+ ii1 = 0
+__85:
+ if !(ii1 < (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr) {
+ goto __87
+ }
+ sortFlags = U8(int32((*ExprList_item)(unsafe.Pointer((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy+8+uintptr(ii1)*32)).Ffg.FsortFlags) & KEYINFO_ORDER_DESC)
+ (*ExprList_item)(unsafe.Pointer(pGroupBy + 8 + uintptr(ii1)*32)).Ffg.FsortFlags = sortFlags
+ goto __86
+__86:
+ ii1++
+ goto __85
+ goto __87
+__87:
+ ;
+ if !(Xsqlite3ExprListCompare(tls, pGroupBy, (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy, -1) == 0) {
+ goto __88
+ }
+ orderByGrp = 1
+__88:
+ ;
+__84:
+ ;
+ goto __76
+__75:
+ ;
+ (*Select)(unsafe.Pointer(p)).FnSelectRow = int16(0)
+__76:
+ ;
+ addrEnd = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ pAggInfo = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(AggInfo{})))
+ if !(pAggInfo != 0) {
+ goto __89
+ }
+ Xsqlite3ParserAddCleanup(tls, pParse,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{agginfoFree})), pAggInfo)
+
+__89:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __90
+ }
+ goto select_end
+__90:
+ ;
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FselId = (*Select)(unsafe.Pointer(p)).FselId
+ libc.X__builtin___memset_chk(tls, bp+152, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+152, 0))
+ (*NameContext)(unsafe.Pointer(bp + 152)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp + 152)).FpSrcList = pTabList
+ *(*uintptr)(unsafe.Pointer(bp + 152 + 16)) = pAggInfo
+
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn = func() uint16 {
+ if pGroupBy != 0 {
+ return uint16((*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr)
+ }
+ return uint16(0)
+ }()
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FpGroupBy = pGroupBy
+ Xsqlite3ExprAnalyzeAggList(tls, bp+152, pEList)
+ Xsqlite3ExprAnalyzeAggList(tls, bp+152, (*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy)
+ if !(pHaving != 0) {
+ goto __91
+ }
+ if !(pGroupBy != 0) {
+ goto __92
+ }
+
+ havingToWhere(tls, pParse, p)
+ pWhere = (*Select)(unsafe.Pointer(p)).FpWhere
+__92:
+ ;
+ Xsqlite3ExprAnalyzeAggregates(tls, bp+152, pHaving)
+__91:
+ ;
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator = (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn
+ if !((*Select)(unsafe.Pointer(p)).FpGroupBy == uintptr(0) && (*Select)(unsafe.Pointer(p)).FpHaving == uintptr(0) && (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc == 1) {
+ goto __93
+ }
+ minMaxFlag = minMaxQuery(tls, db, (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr, bp+208)
+ goto __94
+__93:
+ minMaxFlag = U8(WHERE_ORDERBY_NORMAL)
+__94:
+ ;
+ analyzeAggFuncArgs(tls, pAggInfo, bp+152)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __95
+ }
+ goto select_end
+__95:
+ ;
+ if !(pGroupBy != 0) {
+ goto __96
+ }
+ pDistinct = uintptr(0)
+ distFlag = U16(0)
+ eDist = WHERE_DISTINCT_NOOP
+
+ if !((*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc == 1 &&
+ (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FiDistinct >= 0 &&
+ (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr != uintptr(0) &&
+ (*Expr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr)).Fflags&U32(EP_xIsSelect) == U32(0) &&
+ *(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr + 32)) != uintptr(0)) {
+ goto __98
+ }
+ pExpr = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr + 32)) + 8)).FpExpr
+ pExpr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ pDistinct = Xsqlite3ExprListDup(tls, db, pGroupBy, 0)
+ pDistinct = Xsqlite3ExprListAppend(tls, pParse, pDistinct, pExpr)
+ if pDistinct != 0 {
+ distFlag = uint16(WHERE_WANT_DISTINCT | WHERE_AGG_DISTINCT)
+ } else {
+ distFlag = uint16(0)
+ }
+__98:
+ ;
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ pKeyInfo1 = Xsqlite3KeyInfoFromExprList(tls, pParse, pGroupBy,
+ 0, (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn)
+ addrSortingIdx = Xsqlite3VdbeAddOp4(tls, v, OP_SorterOpen,
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx, int32((*AggInfo)(unsafe.Pointer(pAggInfo)).FnSortingColumn),
+ 0, pKeyInfo1, -8)
+
+ iUseFlag = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ iAbortFlag = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regOutputRow = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ addrOutputRow = Xsqlite3VdbeMakeLabel(tls, pParse)
+ regReset = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ addrReset = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iAMem = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr
+ iBMem = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, iAbortFlag)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, iAMem, iAMem+(*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr-1)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regReset, addrReset)
+
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pTabList, pWhere, pGroupBy, pDistinct,
+ p, uint16(func() int32 {
+ if int32((*DistinctCtx)(unsafe.Pointer(bp+136)).FisTnct) == 2 {
+ return WHERE_DISTINCTBY
+ }
+ return WHERE_GROUPBY
+ }()|
+ func() int32 {
+ if orderByGrp != 0 {
+ return WHERE_SORTBYGROUP
+ }
+ return 0
+ }()|int32(distFlag)), 0)
+ if !(pWInfo == uintptr(0)) {
+ goto __99
+ }
+ Xsqlite3ExprListDelete(tls, db, pDistinct)
+ goto select_end
+__99:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FpIdxEpr != 0) {
+ goto __100
+ }
+ optimizeAggregateUseOfIndexedExpr(tls, pParse, p, pAggInfo, bp+152)
+__100:
+ ;
+ assignAggregateRegisters(tls, pParse, pAggInfo)
+ eDist = Xsqlite3WhereIsDistinct(tls, pWInfo)
+
+ if !(Xsqlite3WhereIsOrdered(tls, pWInfo) == (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr) {
+ goto __101
+ }
+
+ groupBySort = 0
+ goto __102
+__101:
+ explainTempTable(tls, pParse,
+ func() uintptr {
+ if (*DistinctCtx)(unsafe.Pointer(bp+136)).FisTnct != 0 && (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct) == U32(0) {
+ return ts + 20252
+ }
+ return ts + 20261
+ }())
+
+ groupBySort = 1
+ nGroupBy = (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr
+ nCol = nGroupBy
+ j = nGroupBy
+ i = 0
+__103:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn) {
+ goto __105
+ }
+ if !(int32((*AggInfo_col)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol+uintptr(i)*24)).FiSorterColumn) >= j) {
+ goto __106
+ }
+ nCol++
+ j++
+__106:
+ ;
+ goto __104
+__104:
+ i++
+ goto __103
+ goto __105
+__105:
+ ;
+ regBase = Xsqlite3GetTempRange(tls, pParse, nCol)
+ Xsqlite3ExprCodeExprList(tls, pParse, pGroupBy, regBase, 0, uint8(0))
+ j = nGroupBy
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode = U8(1)
+ i = 0
+__107:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn) {
+ goto __109
+ }
+ pCol = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(i)*24
+ if !(int32((*AggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn) >= j) {
+ goto __110
+ }
+ Xsqlite3ExprCode(tls, pParse, (*AggInfo_col)(unsafe.Pointer(pCol)).FpCExpr, j+regBase)
+ j++
+__110:
+ ;
+ goto __108
+__108:
+ i++
+ goto __107
+ goto __109
+__109:
+ ;
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode = U8(0)
+ regRecord = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regBase, nCol, regRecord)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterInsert, (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx, regRecord)
+ Xsqlite3ReleaseTempReg(tls, pParse, regRecord)
+ Xsqlite3ReleaseTempRange(tls, pParse, regBase, nCol)
+
+ Xsqlite3WhereEnd(tls, pWInfo)
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdxPTab = libc.AssignInt32(&sortPTab, libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1))
+ sortOut = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_OpenPseudo, sortPTab, sortOut, nCol)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterSort, (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx, addrEnd)
+
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FuseSortingIdx = U8(1)
+__102:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FpIdxEpr != 0) {
+ goto __111
+ }
+ aggregateConvertIndexedExprRefToColumn(tls, pAggInfo)
+__111:
+ ;
+ if !(orderByGrp != 0 && (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_GroupByOrder) == U32(0) &&
+ (groupBySort != 0 || Xsqlite3WhereIsSorted(tls, pWInfo) != 0)) {
+ goto __112
+ }
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FpOrderBy = uintptr(0)
+ Xsqlite3VdbeChangeToNoop(tls, v, (*SortCtx)(unsafe.Pointer(bp+48)).FaddrSortIndex)
+__112:
+ ;
+ addrTopOfLoop = Xsqlite3VdbeCurrentAddr(tls, v)
+ if !(groupBySort != 0) {
+ goto __113
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_SorterData, (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx,
+ sortOut, sortPTab)
+__113:
+ ;
+ j = 0
+__114:
+ if !(j < (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr) {
+ goto __116
+ }
+ if !(groupBySort != 0) {
+ goto __117
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, sortPTab, j, iBMem+j)
+ goto __118
+__117:
+ (*AggInfo)(unsafe.Pointer(pAggInfo)).FdirectMode = U8(1)
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pGroupBy+8+uintptr(j)*32)).FpExpr, iBMem+j)
+__118:
+ ;
+ goto __115
+__115:
+ j++
+ goto __114
+ goto __116
+__116:
+ ;
+ Xsqlite3VdbeAddOp4(tls, v, OP_Compare, iAMem, iBMem, (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr,
+ Xsqlite3KeyInfoRef(tls, pKeyInfo1), -8)
+ addr1 = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addr1+1, 0, addr1+1)
+
+ Xsqlite3ExprCodeMove(tls, pParse, iBMem, iAMem, (*ExprList)(unsafe.Pointer(pGroupBy)).FnExpr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutputRow, addrOutputRow)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfPos, iAbortFlag, addrEnd)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regReset, addrReset)
+
+ Xsqlite3VdbeJumpHere(tls, v, addr1)
+ updateAccumulator(tls, pParse, iUseFlag, pAggInfo, eDist)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, iUseFlag)
+
+ if !(groupBySort != 0) {
+ goto __119
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_SorterNext, (*AggInfo)(unsafe.Pointer(pAggInfo)).FsortingIdx, addrTopOfLoop)
+
+ goto __120
+__119:
+ ;
+ Xsqlite3WhereEnd(tls, pWInfo)
+ Xsqlite3VdbeChangeToNoop(tls, v, addrSortingIdx)
+__120:
+ ;
+ Xsqlite3ExprListDelete(tls, db, pDistinct)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regOutputRow, addrOutputRow)
+
+ Xsqlite3VdbeGoto(tls, v, addrEnd)
+
+ addrSetAbort = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, iAbortFlag)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regOutputRow)
+ Xsqlite3VdbeResolveLabel(tls, v, addrOutputRow)
+ addrOutputRow = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfPos, iUseFlag, addrOutputRow+2)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regOutputRow)
+ finalizeAggFunctions(tls, pParse, pAggInfo)
+ Xsqlite3ExprIfFalse(tls, pParse, pHaving, addrOutputRow+1, SQLITE_JUMPIFNULL)
+ selectInnerLoop(tls, pParse, p, -1, bp+48,
+ bp+136, pDest,
+ addrOutputRow+1, addrSetAbort)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regOutputRow)
+
+ Xsqlite3VdbeResolveLabel(tls, v, addrReset)
+ resetAccumulator(tls, pParse, pAggInfo)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, iUseFlag)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regReset)
+
+ if !(int32(distFlag) != 0 && eDist != WHERE_DISTINCT_NOOP) {
+ goto __121
+ }
+ pF = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+ fixDistinctOpenEph(tls, pParse, eDist, (*AggInfo_func)(unsafe.Pointer(pF)).FiDistinct, (*AggInfo_func)(unsafe.Pointer(pF)).FiDistAddr)
+__121:
+ ;
+ goto __97
+__96:
+ if !(libc.AssignUintptr(&pTab1, isSimpleCount(tls, p, pAggInfo)) != uintptr(0)) {
+ goto __122
+ }
+
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab1)).FpSchema)
+ iCsr = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ pKeyInfo2 = uintptr(0)
+ pBest = uintptr(0)
+ iRoot = (*Table)(unsafe.Pointer(pTab1)).Ftnum
+
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab1)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab1)).FzName)
+
+ if !!((*Table)(unsafe.Pointer(pTab1)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __124
+ }
+ pBest = Xsqlite3PrimaryKeyIndex(tls, pTab1)
+__124:
+ ;
+ if !!(int32(*(*uint16)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8 + 60 + 4))&0x1>>0) != 0) {
+ goto __125
+ }
+ pIdx = (*Table)(unsafe.Pointer(pTab1)).FpIndex
+__126:
+ if !(pIdx != 0) {
+ goto __128
+ }
+ if !(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x4>>2) == 0 &&
+ int32((*Index)(unsafe.Pointer(pIdx)).FszIdxRow) < int32((*Table)(unsafe.Pointer(pTab1)).FszTabRow) &&
+ (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere == uintptr(0) &&
+ (!(pBest != 0) || int32((*Index)(unsafe.Pointer(pIdx)).FszIdxRow) < int32((*Index)(unsafe.Pointer(pBest)).FszIdxRow))) {
+ goto __129
+ }
+ pBest = pIdx
+__129:
+ ;
+ goto __127
+__127:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ goto __126
+ goto __128
+__128:
+ ;
+__125:
+ ;
+ if !(pBest != 0) {
+ goto __130
+ }
+ iRoot = (*Index)(unsafe.Pointer(pBest)).Ftnum
+ pKeyInfo2 = Xsqlite3KeyInfoOfIndex(tls, pParse, pBest)
+__130:
+ ;
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_OpenRead, iCsr, int32(iRoot), iDb, 1)
+ if !(pKeyInfo2 != 0) {
+ goto __131
+ }
+ Xsqlite3VdbeChangeP4(tls, v, -1, pKeyInfo2, -8)
+__131:
+ ;
+ assignAggregateRegisters(tls, pParse, pAggInfo)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Count, iCsr, func() int32 {
+ return (*AggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg + (*AggInfo)(unsafe.Pointer(pAggInfo)).FnColumn + 0
+ }())
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iCsr)
+ explainSimpleCount(tls, pParse, pTab1, pBest)
+ goto __123
+__122:
+ regAcc = 0
+ pDistinct1 = uintptr(0)
+ distFlag1 = U16(0)
+
+ if !((*AggInfo)(unsafe.Pointer(pAggInfo)).FnAccumulator != 0) {
+ goto __132
+ }
+ i = 0
+__134:
+ if !(i < (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __136
+ }
+ if !((*Expr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc+uintptr(i)*24)).FpFExpr)).Fflags&U32(EP_WinFunc) != U32(0)) {
+ goto __137
+ }
+ goto __135
+__137:
+ ;
+ if !((*FuncDef)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc+uintptr(i)*24)).FpFunc)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0) {
+ goto __138
+ }
+ goto __136
+__138:
+ ;
+ goto __135
+__135:
+ i++
+ goto __134
+ goto __136
+__136:
+ ;
+ if !(i == (*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc) {
+ goto __139
+ }
+ regAcc = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regAcc)
+__139:
+ ;
+ goto __133
+__132:
+ if !((*AggInfo)(unsafe.Pointer(pAggInfo)).FnFunc == 1 && (*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FiDistinct >= 0) {
+ goto __140
+ }
+
+ pDistinct1 = *(*uintptr)(unsafe.Pointer((*AggInfo_func)(unsafe.Pointer((*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc)).FpFExpr + 32))
+ if pDistinct1 != 0 {
+ distFlag1 = uint16(WHERE_WANT_DISTINCT | WHERE_AGG_DISTINCT)
+ } else {
+ distFlag1 = uint16(0)
+ }
+__140:
+ ;
+__133:
+ ;
+ assignAggregateRegisters(tls, pParse, pAggInfo)
+
+ resetAccumulator(tls, pParse, pAggInfo)
+
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pTabList, pWhere, *(*uintptr)(unsafe.Pointer(bp + 208)),
+ pDistinct1, p, uint16(int32(minMaxFlag)|int32(distFlag1)), 0)
+ if !(pWInfo == uintptr(0)) {
+ goto __141
+ }
+ goto select_end
+__141:
+ ;
+ eDist1 = Xsqlite3WhereIsDistinct(tls, pWInfo)
+ updateAccumulator(tls, pParse, regAcc, pAggInfo, eDist1)
+ if !(eDist1 != WHERE_DISTINCT_NOOP) {
+ goto __142
+ }
+ pF1 = (*AggInfo)(unsafe.Pointer(pAggInfo)).FaFunc
+ if !(pF1 != 0) {
+ goto __143
+ }
+ fixDistinctOpenEph(tls, pParse, eDist1, (*AggInfo_func)(unsafe.Pointer(pF1)).FiDistinct, (*AggInfo_func)(unsafe.Pointer(pF1)).FiDistAddr)
+__143:
+ ;
+__142:
+ ;
+ if !(regAcc != 0) {
+ goto __144
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, regAcc)
+__144:
+ ;
+ if !(minMaxFlag != 0) {
+ goto __145
+ }
+ Xsqlite3WhereMinMaxOptEarlyOut(tls, v, pWInfo)
+__145:
+ ;
+ Xsqlite3WhereEnd(tls, pWInfo)
+ finalizeAggFunctions(tls, pParse, pAggInfo)
+__123:
+ ;
+ (*SortCtx)(unsafe.Pointer(bp + 48)).FpOrderBy = uintptr(0)
+ Xsqlite3ExprIfFalse(tls, pParse, pHaving, addrEnd, SQLITE_JUMPIFNULL)
+ selectInnerLoop(tls, pParse, p, -1, uintptr(0), uintptr(0),
+ pDest, addrEnd, addrEnd)
+__97:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, addrEnd)
+
+__65:
+ ;
+ if !(int32((*DistinctCtx)(unsafe.Pointer(bp+136)).FeTnctType) == WHERE_DISTINCT_UNORDERED) {
+ goto __146
+ }
+ explainTempTable(tls, pParse, ts+20252)
+__146:
+ ;
+ if !((*SortCtx)(unsafe.Pointer(bp+48)).FpOrderBy != 0) {
+ goto __147
+ }
+
+ generateSortTail(tls, pParse, p, bp+48, (*ExprList)(unsafe.Pointer(pEList)).FnExpr, pDest)
+__147:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, iEnd)
+
+ rc = libc.Bool32((*Parse)(unsafe.Pointer(pParse)).FnErr > 0)
+
+select_end:
+ ;
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 208)))
+
+ Xsqlite3VdbeExplainPop(tls, pParse)
+ return rc
+}
+
+// This structure is used to pass data from sqlite3_get_table() through
+// to the callback function is uses to build the result.
+type TabResult1 = struct {
+ FazResult uintptr
+ FzErrMsg uintptr
+ FnAlloc U32
+ FnRow U32
+ FnColumn U32
+ FnData U32
+ Frc int32
+ F__ccgo_pad1 [4]byte
+}
+
+// This structure is used to pass data from sqlite3_get_table() through
+// to the callback function is uses to build the result.
+type TabResult = TabResult1
+
+func sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr, colv uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr
+ var need int32
+ var i int32
+ var z uintptr
+ var azNew uintptr
+ var n int32
+ p = pArg
+
+ if !((*TabResult)(unsafe.Pointer(p)).FnRow == U32(0) && argv != uintptr(0)) {
+ goto __1
+ }
+ need = nCol * 2
+ goto __2
+__1:
+ need = nCol
+__2:
+ ;
+ if !((*TabResult)(unsafe.Pointer(p)).FnData+U32(need) > (*TabResult)(unsafe.Pointer(p)).FnAlloc) {
+ goto __3
+ }
+ (*TabResult)(unsafe.Pointer(p)).FnAlloc = (*TabResult)(unsafe.Pointer(p)).FnAlloc*U32(2) + U32(need)
+ azNew = Xsqlite3Realloc(tls, (*TabResult)(unsafe.Pointer(p)).FazResult, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*TabResult)(unsafe.Pointer(p)).FnAlloc))
+ if !(azNew == uintptr(0)) {
+ goto __4
+ }
+ goto malloc_failed
+__4:
+ ;
+ (*TabResult)(unsafe.Pointer(p)).FazResult = azNew
+__3:
+ ;
+ if !((*TabResult)(unsafe.Pointer(p)).FnRow == U32(0)) {
+ goto __5
+ }
+ (*TabResult)(unsafe.Pointer(p)).FnColumn = U32(nCol)
+ i = 0
+__7:
+ if !(i < nCol) {
+ goto __9
+ }
+ z = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8))))
+ if !(z == uintptr(0)) {
+ goto __10
+ }
+ goto malloc_failed
+__10:
+ ;
+ *(*uintptr)(unsafe.Pointer((*TabResult)(unsafe.Pointer(p)).FazResult + uintptr(libc.PostIncUint32(&(*TabResult)(unsafe.Pointer(p)).FnData, 1))*8)) = z
+ goto __8
+__8:
+ i++
+ goto __7
+ goto __9
+__9:
+ ;
+ goto __6
+__5:
+ if !(int32((*TabResult)(unsafe.Pointer(p)).FnColumn) != nCol) {
+ goto __11
+ }
+ Xsqlite3_free(tls, (*TabResult)(unsafe.Pointer(p)).FzErrMsg)
+ (*TabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+20270, 0)
+ (*TabResult)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ return 1
+__11:
+ ;
+__6:
+ ;
+ if !(argv != uintptr(0)) {
+ goto __12
+ }
+ i = 0
+__13:
+ if !(i < nCol) {
+ goto __15
+ }
+ if !(*(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)) == uintptr(0)) {
+ goto __16
+ }
+ z = uintptr(0)
+ goto __17
+__16:
+ n = Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) + 1
+ z = Xsqlite3_malloc64(tls, uint64(n))
+ if !(z == uintptr(0)) {
+ goto __18
+ }
+ goto malloc_failed
+__18:
+ ;
+ libc.X__builtin___memcpy_chk(tls, z, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)), uint64(n), libc.X__builtin_object_size(tls, z, 0))
+__17:
+ ;
+ *(*uintptr)(unsafe.Pointer((*TabResult)(unsafe.Pointer(p)).FazResult + uintptr(libc.PostIncUint32(&(*TabResult)(unsafe.Pointer(p)).FnData, 1))*8)) = z
+ goto __14
+__14:
+ i++
+ goto __13
+ goto __15
+__15:
+ ;
+ (*TabResult)(unsafe.Pointer(p)).FnRow++
+__12:
+ ;
+ return 0
+
+malloc_failed:
+ (*TabResult)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ return 1
+}
+
+// Query the database. But instead of invoking a callback for each row,
+// malloc() for space to hold the result and return the entire results
+// at the conclusion of the call.
+//
+// The result that is written to ***pazResult is held in memory obtained
+// from malloc(). But the caller cannot free this memory directly.
+// Instead, the entire table should be passed to sqlite3_free_table() when
+// the calling procedure is finished using it.
+func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintptr, pnRow uintptr, pnColumn uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var rc int32
+
+ *(*uintptr)(unsafe.Pointer(pazResult)) = uintptr(0)
+ if pnColumn != 0 {
+ *(*int32)(unsafe.Pointer(pnColumn)) = 0
+ }
+ if pnRow != 0 {
+ *(*int32)(unsafe.Pointer(pnRow)) = 0
+ }
+ if pzErrMsg != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = uintptr(0)
+ }
+ (*TabResult)(unsafe.Pointer(bp + 8)).FzErrMsg = uintptr(0)
+ (*TabResult)(unsafe.Pointer(bp + 8)).FnRow = U32(0)
+ (*TabResult)(unsafe.Pointer(bp + 8)).FnColumn = U32(0)
+ (*TabResult)(unsafe.Pointer(bp + 8)).FnData = U32(1)
+ (*TabResult)(unsafe.Pointer(bp + 8)).FnAlloc = U32(20)
+ (*TabResult)(unsafe.Pointer(bp + 8)).Frc = SQLITE_OK
+ (*TabResult)(unsafe.Pointer(bp + 8)).FazResult = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*TabResult)(unsafe.Pointer(bp+8)).FnAlloc))
+ if (*TabResult)(unsafe.Pointer(bp+8)).FazResult == uintptr(0) {
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = SQLITE_NOMEM
+ return SQLITE_NOMEM
+ }
+ *(*uintptr)(unsafe.Pointer((*TabResult)(unsafe.Pointer(bp + 8)).FazResult)) = uintptr(0)
+ rc = Xsqlite3_exec(tls, db, zSql, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ }{sqlite3_get_table_cb})), bp+8, pzErrMsg)
+
+ *(*uintptr)(unsafe.Pointer((*TabResult)(unsafe.Pointer(bp + 8)).FazResult)) = uintptr(int64((*TabResult)(unsafe.Pointer(bp + 8)).FnData))
+ if rc&0xff == SQLITE_ABORT {
+ Xsqlite3_free_table(tls, (*TabResult)(unsafe.Pointer(bp+8)).FazResult+1*8)
+ if (*TabResult)(unsafe.Pointer(bp+8)).FzErrMsg != 0 {
+ if pzErrMsg != 0 {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg)))
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, (*TabResult)(unsafe.Pointer(bp+8)).FzErrMsg))
+ }
+ Xsqlite3_free(tls, (*TabResult)(unsafe.Pointer(bp+8)).FzErrMsg)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = (*TabResult)(unsafe.Pointer(bp + 8)).Frc
+ return (*TabResult)(unsafe.Pointer(bp + 8)).Frc
+ }
+ Xsqlite3_free(tls, (*TabResult)(unsafe.Pointer(bp+8)).FzErrMsg)
+ if rc != SQLITE_OK {
+ Xsqlite3_free_table(tls, (*TabResult)(unsafe.Pointer(bp+8)).FazResult+1*8)
+ return rc
+ }
+ if (*TabResult)(unsafe.Pointer(bp+8)).FnAlloc > (*TabResult)(unsafe.Pointer(bp+8)).FnData {
+ var azNew uintptr
+ azNew = Xsqlite3Realloc(tls, (*TabResult)(unsafe.Pointer(bp+8)).FazResult, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*TabResult)(unsafe.Pointer(bp+8)).FnData))
+ if azNew == uintptr(0) {
+ Xsqlite3_free_table(tls, (*TabResult)(unsafe.Pointer(bp+8)).FazResult+1*8)
+ (*Sqlite3)(unsafe.Pointer(db)).FerrCode = SQLITE_NOMEM
+ return SQLITE_NOMEM
+ }
+ (*TabResult)(unsafe.Pointer(bp + 8)).FazResult = azNew
+ }
+ *(*uintptr)(unsafe.Pointer(pazResult)) = (*TabResult)(unsafe.Pointer(bp+8)).FazResult + 1*8
+ if pnColumn != 0 {
+ *(*int32)(unsafe.Pointer(pnColumn)) = int32((*TabResult)(unsafe.Pointer(bp + 8)).FnColumn)
+ }
+ if pnRow != 0 {
+ *(*int32)(unsafe.Pointer(pnRow)) = int32((*TabResult)(unsafe.Pointer(bp + 8)).FnRow)
+ }
+ return rc
+}
+
+// This routine frees the space the sqlite3_get_table() malloced.
+func Xsqlite3_free_table(tls *libc.TLS, azResult uintptr) {
+ if azResult != 0 {
+ var i int32
+ var n int32
+ azResult -= 8
+
+ n = int32(*(*uintptr)(unsafe.Pointer(azResult)))
+ for i = 1; i < n; i++ {
+ if *(*uintptr)(unsafe.Pointer(azResult + uintptr(i)*8)) != 0 {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(azResult + uintptr(i)*8)))
+ }
+ }
+ Xsqlite3_free(tls, azResult)
+ }
+}
+
+// Delete a linked list of TriggerStep structures.
+func Xsqlite3DeleteTriggerStep(tls *libc.TLS, db uintptr, pTriggerStep uintptr) {
+ for pTriggerStep != 0 {
+ var pTmp uintptr = pTriggerStep
+ pTriggerStep = (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpNext
+
+ Xsqlite3ExprDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpWhere)
+ Xsqlite3ExprListDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpExprList)
+ Xsqlite3SelectDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpSelect)
+ Xsqlite3IdListDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpIdList)
+ Xsqlite3UpsertDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpUpsert)
+ Xsqlite3SrcListDelete(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FpFrom)
+ Xsqlite3DbFree(tls, db, (*TriggerStep)(unsafe.Pointer(pTmp)).FzSpan)
+
+ Xsqlite3DbFree(tls, db, pTmp)
+ }
+}
+
+// Given table pTab, return a list of all the triggers attached to
+// the table. The list is connected by Trigger.pNext pointers.
+//
+// All of the triggers on pTab that are in the same database as pTab
+// are already attached to pTab->pTrigger. But there might be additional
+// triggers on pTab in the TEMP schema. This routine prepends all
+// TEMP triggers on pTab to the beginning of the pTab->pTrigger list
+// and returns the combined list.
+//
+// To state it another way: This routine returns a list of all triggers
+// that fire off of pTab. The list will include any TEMP triggers on
+// pTab as well as the triggers lised in pTab->pTrigger.
+func Xsqlite3TriggerList(tls *libc.TLS, pParse uintptr, pTab uintptr) uintptr {
+ var pTmpSchema uintptr
+ var pList uintptr
+ var p uintptr
+
+ pTmpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb + 1*32)).FpSchema
+ p = (*Hash)(unsafe.Pointer(pTmpSchema + 56)).Ffirst
+ pList = (*Table)(unsafe.Pointer(pTab)).FpTrigger
+ for p != 0 {
+ var pTrig uintptr = (*HashElem)(unsafe.Pointer(p)).Fdata
+ if (*Trigger)(unsafe.Pointer(pTrig)).FpTabSchema == (*Table)(unsafe.Pointer(pTab)).FpSchema &&
+ (*Trigger)(unsafe.Pointer(pTrig)).Ftable != 0 &&
+ 0 == Xsqlite3StrICmp(tls, (*Trigger)(unsafe.Pointer(pTrig)).Ftable, (*Table)(unsafe.Pointer(pTab)).FzName) &&
+ ((*Trigger)(unsafe.Pointer(pTrig)).FpTabSchema != pTmpSchema || (*Trigger)(unsafe.Pointer(pTrig)).FbReturning != 0) {
+ (*Trigger)(unsafe.Pointer(pTrig)).FpNext = pList
+ pList = pTrig
+ } else if int32((*Trigger)(unsafe.Pointer(pTrig)).Fop) == TK_RETURNING {
+ (*Trigger)(unsafe.Pointer(pTrig)).Ftable = (*Table)(unsafe.Pointer(pTab)).FzName
+ (*Trigger)(unsafe.Pointer(pTrig)).FpTabSchema = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ (*Trigger)(unsafe.Pointer(pTrig)).FpNext = pList
+ pList = pTrig
+ }
+ p = (*HashElem)(unsafe.Pointer(p)).Fnext
+ }
+ return pList
+}
+
+// This is called by the parser when it sees a CREATE TRIGGER statement
+// up to the point of the BEGIN before the trigger actions. A Trigger
+// structure is generated based on the information available and stored
+// in pParse->pNewTrigger. After the trigger actions have been parsed, the
+// sqlite3FinishTrigger() function is called to complete the trigger
+// construction process.
+func Xsqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, tr_tm int32, op int32, pColumns uintptr, pTableName uintptr, pWhen uintptr, isTemp int32, noErr int32) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var pTrigger uintptr
+ var pTab uintptr
+ var zName uintptr
+ var db uintptr
+ var iDb int32
+
+ var iTabDb int32
+ var code int32
+ var zDb uintptr
+ var zDbTrig uintptr
+ pTrigger = uintptr(0)
+ zName = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !(isTemp != 0) {
+ goto __1
+ }
+
+ if !((*Token)(unsafe.Pointer(pName2)).Fn > uint32(0)) {
+ goto __3
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20335, 0)
+ goto trigger_cleanup
+__3:
+ ;
+ iDb = 1
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = pName1
+ goto __2
+__1:
+ iDb = Xsqlite3TwoPartName(tls, pParse, pName1, pName2, bp+32)
+ if !(iDb < 0) {
+ goto __4
+ }
+ goto trigger_cleanup
+__4:
+ ;
+__2:
+ ;
+ if !(!(pTableName != 0) || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __5
+ }
+ goto trigger_cleanup
+__5:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0 && iDb != 1) {
+ goto __6
+ }
+ Xsqlite3DbFree(tls, db, (*SrcItem)(unsafe.Pointer(pTableName+8)).FzDatabase)
+ (*SrcItem)(unsafe.Pointer(pTableName + 8)).FzDatabase = uintptr(0)
+__6:
+ ;
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTableName)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0 && (*Token)(unsafe.Pointer(pName2)).Fn == uint32(0) && pTab != 0 &&
+ (*Table)(unsafe.Pointer(pTab)).FpSchema == (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema) {
+ goto __7
+ }
+ iDb = 1
+__7:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __8
+ }
+ goto trigger_cleanup
+__8:
+ ;
+ Xsqlite3FixInit(tls, bp+40, pParse, iDb, ts+20381, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ if !(Xsqlite3FixSrcList(tls, bp+40, pTableName) != 0) {
+ goto __9
+ }
+ goto trigger_cleanup
+__9:
+ ;
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTableName)
+ if !!(pTab != 0) {
+ goto __10
+ }
+
+ goto trigger_orphan_error
+__10:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __11
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20389, 0)
+ goto trigger_orphan_error
+__11:
+ ;
+ zName = Xsqlite3NameFromToken(tls, db, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ if !(zName == uintptr(0)) {
+ goto __12
+ }
+
+ goto trigger_cleanup
+__12:
+ ;
+ if !(Xsqlite3CheckObjectName(tls, pParse, zName, ts+20381, (*Table)(unsafe.Pointer(pTab)).FzName) != 0) {
+ goto __13
+ }
+ goto trigger_cleanup
+__13:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __14
+ }
+ if !(Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema+56, zName) != 0) {
+ goto __15
+ }
+ if !!(noErr != 0) {
+ goto __16
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20430, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 32))))
+ goto __17
+__16:
+ ;
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+__17:
+ ;
+ goto trigger_cleanup
+__15:
+ ;
+__14:
+ ;
+ if !(Xsqlite3_strnicmp(tls, (*Table)(unsafe.Pointer(pTab)).FzName, ts+6784, 7) == 0) {
+ goto __18
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20456, 0)
+ goto trigger_cleanup
+__18:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW && tr_tm != TK_INSTEAD) {
+ goto __19
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20494,
+ libc.VaList(bp+8, func() uintptr {
+ if tr_tm == TK_BEFORE {
+ return ts + 20531
+ }
+ return ts + 20538
+ }(), pTableName+8))
+ goto trigger_orphan_error
+__19:
+ ;
+ if !(!(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) && tr_tm == TK_INSTEAD) {
+ goto __20
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20544, libc.VaList(bp+24, pTableName+8))
+ goto trigger_orphan_error
+__20:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __21
+ }
+ iTabDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ code = SQLITE_CREATE_TRIGGER
+ zDb = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iTabDb)*32)).FzDbSName
+ if isTemp != 0 {
+ zDbTrig = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FzDbSName
+ } else {
+ zDbTrig = zDb
+ }
+ if !(iTabDb == 1 || isTemp != 0) {
+ goto __22
+ }
+ code = SQLITE_CREATE_TEMP_TRIGGER
+__22:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, code, zName, (*Table)(unsafe.Pointer(pTab)).FzName, zDbTrig) != 0) {
+ goto __23
+ }
+ goto trigger_cleanup
+__23:
+ ;
+ if !(Xsqlite3AuthCheck(tls, pParse, SQLITE_INSERT, func() uintptr {
+ if !(0 != 0) && iTabDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }(), uintptr(0), zDb) != 0) {
+ goto __24
+ }
+ goto trigger_cleanup
+__24:
+ ;
+__21:
+ ;
+ if !(tr_tm == TK_INSTEAD) {
+ goto __25
+ }
+ tr_tm = TK_BEFORE
+__25:
+ ;
+ pTrigger = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Trigger{})))
+ if !(pTrigger == uintptr(0)) {
+ goto __26
+ }
+ goto trigger_cleanup
+__26:
+ ;
+ (*Trigger)(unsafe.Pointer(pTrigger)).FzName = zName
+ zName = uintptr(0)
+ (*Trigger)(unsafe.Pointer(pTrigger)).Ftable = Xsqlite3DbStrDup(tls, db, (*SrcItem)(unsafe.Pointer(pTableName+8)).FzName)
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpSchema
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpTabSchema = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ (*Trigger)(unsafe.Pointer(pTrigger)).Fop = U8(op)
+ (*Trigger)(unsafe.Pointer(pTrigger)).Ftr_tm = func() uint8 {
+ if tr_tm == TK_BEFORE {
+ return uint8(TRIGGER_BEFORE)
+ }
+ return uint8(TRIGGER_AFTER)
+ }()
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __27
+ }
+ Xsqlite3RenameTokenRemap(tls, pParse, (*Trigger)(unsafe.Pointer(pTrigger)).Ftable, (*SrcItem)(unsafe.Pointer(pTableName+8)).FzName)
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen = pWhen
+ pWhen = uintptr(0)
+ goto __28
+__27:
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen = Xsqlite3ExprDup(tls, db, pWhen, EXPRDUP_REDUCE)
+__28:
+ ;
+ (*Trigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns
+ pColumns = uintptr(0)
+
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger
+
+trigger_cleanup:
+ Xsqlite3DbFree(tls, db, zName)
+ Xsqlite3SrcListDelete(tls, db, pTableName)
+ Xsqlite3IdListDelete(tls, db, pColumns)
+ Xsqlite3ExprDelete(tls, db, pWhen)
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).FpNewTrigger) != 0) {
+ goto __29
+ }
+ Xsqlite3DeleteTrigger(tls, db, pTrigger)
+ goto __30
+__29:
+ ;
+__30:
+ ;
+ return
+
+trigger_orphan_error:
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb) == 1) {
+ goto __31
+ }
+
+ libc.SetBitFieldPtr8Uint32(db+192+8, uint32(1), 0, 0x1)
+__31:
+ ;
+ goto trigger_cleanup
+}
+
+// This routine is called after all of the trigger actions have been parsed
+// in order to complete the process of building the trigger.
+func Xsqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAll uintptr) {
+ bp := tls.Alloc(168)
+ defer tls.Free(168)
+
+ var pTrig uintptr
+ var zName uintptr
+ var db uintptr
+
+ var iDb int32
+
+ var pStep uintptr
+ var v uintptr
+ var z uintptr
+ var pTab uintptr
+ var pLink uintptr
+ var pHash uintptr
+ pTrig = (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger = uintptr(0)
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0 || !(pTrig != 0)) {
+ goto __1
+ }
+ goto triggerfinish_cleanup
+__1:
+ ;
+ zName = (*Trigger)(unsafe.Pointer(pTrig)).FzName
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Trigger)(unsafe.Pointer(pTrig)).FpSchema)
+ (*Trigger)(unsafe.Pointer(pTrig)).Fstep_list = pStepList
+__2:
+ if !(pStepList != 0) {
+ goto __3
+ }
+ (*TriggerStep)(unsafe.Pointer(pStepList)).FpTrig = pTrig
+ pStepList = (*TriggerStep)(unsafe.Pointer(pStepList)).FpNext
+ goto __2
+__3:
+ ;
+ Xsqlite3TokenInit(tls, bp+56, (*Trigger)(unsafe.Pointer(pTrig)).FzName)
+ Xsqlite3FixInit(tls, bp+72, pParse, iDb, ts+20381, bp+56)
+ if !(Xsqlite3FixTriggerStep(tls, bp+72, (*Trigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 ||
+ Xsqlite3FixExpr(tls, bp+72, (*Trigger)(unsafe.Pointer(pTrig)).FpWhen) != 0) {
+ goto __4
+ }
+ goto triggerfinish_cleanup
+__4:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ goto __5
+ }
+
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrig
+ pTrig = uintptr(0)
+ goto __6
+__5:
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ goto __7
+ }
+
+ if !(Xsqlite3ReadOnlyShadowTables(tls, db) != 0) {
+ goto __8
+ }
+ pStep = (*Trigger)(unsafe.Pointer(pTrig)).Fstep_list
+__9:
+ if !(pStep != 0) {
+ goto __11
+ }
+ if !((*TriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) &&
+ Xsqlite3ShadowTableName(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0) {
+ goto __12
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20590,
+ libc.VaList(bp, (*Trigger)(unsafe.Pointer(pTrig)).FzName, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget))
+ goto triggerfinish_cleanup
+__12:
+ ;
+ goto __10
+__10:
+ pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext
+ goto __9
+ goto __11
+__11:
+ ;
+__8:
+ ;
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __13
+ }
+ goto triggerfinish_cleanup
+__13:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, 0, iDb)
+ z = Xsqlite3DbStrNDup(tls, db, (*Token)(unsafe.Pointer(pAll)).Fz, uint64((*Token)(unsafe.Pointer(pAll)).Fn))
+
+ Xsqlite3NestedParse(tls, pParse,
+ ts+20638,
+ libc.VaList(bp+16, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, zName,
+ (*Trigger)(unsafe.Pointer(pTrig)).Ftable, z))
+ Xsqlite3DbFree(tls, db, z)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb,
+ Xsqlite3MPrintf(tls, db, ts+20713, libc.VaList(bp+48, zName)), uint16(0))
+__7:
+ ;
+__6:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy != 0) {
+ goto __14
+ }
+ pLink = pTrig
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 56
+
+ pTrig = Xsqlite3HashInsert(tls, pHash, zName, pTrig)
+ if !(pTrig != 0) {
+ goto __15
+ }
+ Xsqlite3OomFault(tls, db)
+ goto __16
+__15:
+ if !((*Trigger)(unsafe.Pointer(pLink)).FpSchema == (*Trigger)(unsafe.Pointer(pLink)).FpTabSchema) {
+ goto __17
+ }
+ pTab = Xsqlite3HashFind(tls, (*Trigger)(unsafe.Pointer(pLink)).FpTabSchema+8, (*Trigger)(unsafe.Pointer(pLink)).Ftable)
+
+ (*Trigger)(unsafe.Pointer(pLink)).FpNext = (*Table)(unsafe.Pointer(pTab)).FpTrigger
+ (*Table)(unsafe.Pointer(pTab)).FpTrigger = pLink
+__17:
+ ;
+__16:
+ ;
+__14:
+ ;
+triggerfinish_cleanup:
+ Xsqlite3DeleteTrigger(tls, db, pTrig)
+
+ Xsqlite3DeleteTriggerStep(tls, db, pStepList)
+}
+
+func triggerSpanDup(tls *libc.TLS, db uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var z uintptr = Xsqlite3DbSpanDup(tls, db, zStart, zEnd)
+ var i int32
+ if z != 0 {
+ for i = 0; *(*int8)(unsafe.Pointer(z + uintptr(i))) != 0; i++ {
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&0x01 != 0 {
+ *(*int8)(unsafe.Pointer(z + uintptr(i))) = int8(' ')
+ }
+ }
+ }
+ return z
+}
+
+// Turn a SELECT statement (that the pSelect parameter points to) into
+// a trigger step. Return a pointer to a TriggerStep structure.
+//
+// The parser calls this routine when it finds a SELECT statement in
+// body of a TRIGGER.
+func Xsqlite3TriggerSelectStep(tls *libc.TLS, db uintptr, pSelect uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var pTriggerStep uintptr = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(TriggerStep{})))
+ if pTriggerStep == uintptr(0) {
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ return uintptr(0)
+ }
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Fop = U8(TK_SELECT)
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpSelect = pSelect
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = U8(OE_Default)
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FzSpan = triggerSpanDup(tls, db, zStart, zEnd)
+ return pTriggerStep
+}
+
+func triggerStepAllocate(tls *libc.TLS, pParse uintptr, op U8, pName uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTriggerStep uintptr
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return uintptr(0)
+ }
+ pTriggerStep = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(TriggerStep{}))+uint64((*Token)(unsafe.Pointer(pName)).Fn)+uint64(1))
+ if pTriggerStep != 0 {
+ var z uintptr = pTriggerStep + 1*96
+ libc.X__builtin___memcpy_chk(tls, z, (*Token)(unsafe.Pointer(pName)).Fz, uint64((*Token)(unsafe.Pointer(pName)).Fn), libc.X__builtin_object_size(tls, z, 0))
+ Xsqlite3Dequote(tls, z)
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FzTarget = z
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Fop = op
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FzSpan = triggerSpanDup(tls, db, zStart, zEnd)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenMap(tls, pParse, (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FzTarget, pName)
+ }
+ }
+ return pTriggerStep
+}
+
+// Build a trigger step out of an INSERT statement. Return a pointer
+// to the new trigger step.
+//
+// The parser calls this routine when it sees an INSERT inside the
+// body of a trigger.
+func Xsqlite3TriggerInsertStep(tls *libc.TLS, pParse uintptr, pTableName uintptr, pColumn uintptr, pSelect uintptr, orconf U8, pUpsert uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTriggerStep uintptr
+
+ pTriggerStep = triggerStepAllocate(tls, pParse, uint8(TK_INSERT), pTableName, zStart, zEnd)
+ if pTriggerStep != 0 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpSelect = pSelect
+ pSelect = uintptr(0)
+ } else {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpSelect = Xsqlite3SelectDup(tls, db, pSelect, EXPRDUP_REDUCE)
+ }
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpIdList = pColumn
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpUpsert = pUpsert
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = orconf
+ if pUpsert != 0 {
+ Xsqlite3HasExplicitNulls(tls, pParse, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget)
+ }
+ } else {
+ Xsqlite3IdListDelete(tls, db, pColumn)
+
+ Xsqlite3UpsertDelete(tls, db, pUpsert)
+ }
+ Xsqlite3SelectDelete(tls, db, pSelect)
+
+ return pTriggerStep
+}
+
+// Construct a trigger step that implements an UPDATE statement and return
+// a pointer to that trigger step. The parser calls this routine when it
+// sees an UPDATE statement inside the body of a CREATE TRIGGER.
+func Xsqlite3TriggerUpdateStep(tls *libc.TLS, pParse uintptr, pTableName uintptr, pFrom uintptr, pEList uintptr, pWhere uintptr, orconf U8, zStart uintptr, zEnd uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTriggerStep uintptr
+
+ pTriggerStep = triggerStepAllocate(tls, pParse, uint8(TK_UPDATE), pTableName, zStart, zEnd)
+ if pTriggerStep != 0 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpExprList = pEList
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = pWhere
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpFrom = pFrom
+ pEList = uintptr(0)
+ pWhere = uintptr(0)
+ pFrom = uintptr(0)
+ } else {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpExprList = Xsqlite3ExprListDup(tls, db, pEList, EXPRDUP_REDUCE)
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = Xsqlite3ExprDup(tls, db, pWhere, EXPRDUP_REDUCE)
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpFrom = Xsqlite3SrcListDup(tls, db, pFrom, EXPRDUP_REDUCE)
+ }
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = orconf
+ }
+ Xsqlite3ExprListDelete(tls, db, pEList)
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ Xsqlite3SrcListDelete(tls, db, pFrom)
+ return pTriggerStep
+}
+
+// Construct a trigger step that implements a DELETE statement and return
+// a pointer to that trigger step. The parser calls this routine when it
+// sees a DELETE statement inside the body of a CREATE TRIGGER.
+func Xsqlite3TriggerDeleteStep(tls *libc.TLS, pParse uintptr, pTableName uintptr, pWhere uintptr, zStart uintptr, zEnd uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTriggerStep uintptr
+
+ pTriggerStep = triggerStepAllocate(tls, pParse, uint8(TK_DELETE), pTableName, zStart, zEnd)
+ if pTriggerStep != 0 {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = pWhere
+ pWhere = uintptr(0)
+ } else {
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).FpWhere = Xsqlite3ExprDup(tls, db, pWhere, EXPRDUP_REDUCE)
+ }
+ (*TriggerStep)(unsafe.Pointer(pTriggerStep)).Forconf = U8(OE_Default)
+ }
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ return pTriggerStep
+}
+
+// Recursively delete a Trigger structure
+func Xsqlite3DeleteTrigger(tls *libc.TLS, db uintptr, pTrigger uintptr) {
+ if pTrigger == uintptr(0) || (*Trigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 {
+ return
+ }
+ Xsqlite3DeleteTriggerStep(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).Fstep_list)
+ Xsqlite3DbFree(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).FzName)
+ Xsqlite3DbFree(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).Ftable)
+ Xsqlite3ExprDelete(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen)
+ Xsqlite3IdListDelete(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).FpColumns)
+ Xsqlite3DbFree(tls, db, pTrigger)
+}
+
+// This function is called to drop a trigger from the database schema.
+//
+// This may be called directly from the parser and therefore identifies
+// the trigger by name. The sqlite3DropTriggerPtr() routine does the
+// same job as this routine except it takes a pointer to the trigger
+// instead of the trigger name.
+func Xsqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pTrigger uintptr
+ var i int32
+ var zDb uintptr
+ var zName uintptr
+ var db uintptr
+ var j int32
+ pTrigger = uintptr(0)
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __1
+ }
+ goto drop_trigger_cleanup
+__1:
+ ;
+ if !(SQLITE_OK != Xsqlite3ReadSchema(tls, pParse)) {
+ goto __2
+ }
+ goto drop_trigger_cleanup
+__2:
+ ;
+ zDb = (*SrcItem)(unsafe.Pointer(pName + 8)).FzDatabase
+ zName = (*SrcItem)(unsafe.Pointer(pName + 8)).FzName
+
+ i = OMIT_TEMPDB
+__3:
+ if !(i < (*Sqlite3)(unsafe.Pointer(db)).FnDb) {
+ goto __5
+ }
+ if i < 2 {
+ j = i ^ 1
+ } else {
+ j = i
+ }
+ if !(zDb != 0 && Xsqlite3DbIsNamed(tls, db, j, zDb) == 0) {
+ goto __6
+ }
+ goto __4
+__6:
+ ;
+ pTrigger = Xsqlite3HashFind(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(j)*32)).FpSchema+56, zName)
+ if !(pTrigger != 0) {
+ goto __7
+ }
+ goto __5
+__7:
+ ;
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !!(pTrigger != 0) {
+ goto __8
+ }
+ if !!(noErr != 0) {
+ goto __9
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20742, libc.VaList(bp, pName+8))
+ goto __10
+__9:
+ Xsqlite3CodeVerifyNamedSchema(tls, pParse, zDb)
+__10:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ goto drop_trigger_cleanup
+__8:
+ ;
+ Xsqlite3DropTriggerPtr(tls, pParse, pTrigger)
+
+drop_trigger_cleanup:
+ Xsqlite3SrcListDelete(tls, db, pName)
+}
+
+func tableOfTrigger(tls *libc.TLS, pTrigger uintptr) uintptr {
+ return Xsqlite3HashFind(tls, (*Trigger)(unsafe.Pointer(pTrigger)).FpTabSchema+8, (*Trigger)(unsafe.Pointer(pTrigger)).Ftable)
+}
+
+// Drop a trigger given a pointer to that trigger.
+func Xsqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTable uintptr
+ var v uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iDb int32
+
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Trigger)(unsafe.Pointer(pTrigger)).FpSchema)
+
+ pTable = tableOfTrigger(tls, pTrigger)
+
+ if pTable != 0 {
+ var code int32 = SQLITE_DROP_TRIGGER
+ var zDb uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ var zTab uintptr = func() uintptr {
+ if !(0 != 0) && iDb == 1 {
+ return ts + 6792
+ }
+ return ts + 6286
+ }()
+ if iDb == 1 {
+ code = SQLITE_DROP_TEMP_TRIGGER
+ }
+ if Xsqlite3AuthCheck(tls, pParse, code, (*Trigger)(unsafe.Pointer(pTrigger)).FzName, (*Table)(unsafe.Pointer(pTable)).FzName, zDb) != 0 || Xsqlite3AuthCheck(tls, pParse, SQLITE_DELETE, zTab, uintptr(0), zDb) != 0 {
+ return
+ }
+ }
+
+ if libc.AssignUintptr(&v, Xsqlite3GetVdbe(tls, pParse)) != uintptr(0) {
+ Xsqlite3NestedParse(tls, pParse,
+ ts+20762,
+ libc.VaList(bp, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName, (*Trigger)(unsafe.Pointer(pTrigger)).FzName))
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+ Xsqlite3VdbeAddOp4(tls, v, OP_DropTrigger, iDb, 0, 0, (*Trigger)(unsafe.Pointer(pTrigger)).FzName, 0)
+ }
+}
+
+// Remove a trigger from the hash tables of the sqlite* pointer.
+func Xsqlite3UnlinkAndDeleteTrigger(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) {
+ var pTrigger uintptr
+ var pHash uintptr
+
+ pHash = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema + 56
+ pTrigger = Xsqlite3HashInsert(tls, pHash, zName, uintptr(0))
+ if pTrigger != 0 {
+ if (*Trigger)(unsafe.Pointer(pTrigger)).FpSchema == (*Trigger)(unsafe.Pointer(pTrigger)).FpTabSchema {
+ var pTab uintptr = tableOfTrigger(tls, pTrigger)
+ if pTab != 0 {
+ var pp uintptr
+ for pp = pTab + 88; *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = *(*uintptr)(unsafe.Pointer(pp)) + 64 {
+ if *(*uintptr)(unsafe.Pointer(pp)) == pTrigger {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Trigger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext
+ break
+ }
+ }
+ }
+ }
+ Xsqlite3DeleteTrigger(tls, db, pTrigger)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_SchemaChange)
+ }
+}
+
+func checkColumnOverlap(tls *libc.TLS, pIdList uintptr, pEList uintptr) int32 {
+ var e int32
+ if pIdList == uintptr(0) || pEList == uintptr(0) {
+ return 1
+ }
+ for e = 0; e < (*ExprList)(unsafe.Pointer(pEList)).FnExpr; e++ {
+ if Xsqlite3IdListIndex(tls, pIdList, (*ExprList_item)(unsafe.Pointer(pEList+8+uintptr(e)*32)).FzEName) >= 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func tempTriggersExist(tls *libc.TLS, db uintptr) int32 {
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema == uintptr(0) {
+ return 0
+ }
+ if (*Hash)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema+56)).Ffirst == uintptr(0) {
+ return 0
+ }
+ return 1
+}
+
+func triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, pChanges uintptr, pMask uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var mask int32
+ var pList uintptr
+ var p uintptr
+ mask = 0
+ pList = uintptr(0)
+
+ pList = Xsqlite3TriggerList(tls, pParse, pTab)
+
+ if !(pList != uintptr(0)) {
+ goto __1
+ }
+ p = pList
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_EnableTrigger) == uint64(0) &&
+ (*Table)(unsafe.Pointer(pTab)).FpTrigger != uintptr(0)) {
+ goto __2
+ }
+
+ if !(pList == (*Table)(unsafe.Pointer(pTab)).FpTrigger) {
+ goto __3
+ }
+ pList = uintptr(0)
+ goto exit_triggers_exist
+__3:
+ ;
+__4:
+ if !((*Trigger)(unsafe.Pointer(p)).FpNext != 0 && (*Trigger)(unsafe.Pointer(p)).FpNext != (*Table)(unsafe.Pointer(pTab)).FpTrigger) {
+ goto __5
+ }
+ p = (*Trigger)(unsafe.Pointer(p)).FpNext
+ goto __4
+__5:
+ ;
+ (*Trigger)(unsafe.Pointer(p)).FpNext = uintptr(0)
+ p = pList
+__2:
+ ;
+__6:
+ if !(int32((*Trigger)(unsafe.Pointer(p)).Fop) == op && checkColumnOverlap(tls, (*Trigger)(unsafe.Pointer(p)).FpColumns, pChanges) != 0) {
+ goto __9
+ }
+ mask = mask | int32((*Trigger)(unsafe.Pointer(p)).Ftr_tm)
+ goto __10
+__9:
+ if !(int32((*Trigger)(unsafe.Pointer(p)).Fop) == TK_RETURNING) {
+ goto __11
+ }
+
+ (*Trigger)(unsafe.Pointer(p)).Fop = U8(op)
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __13
+ }
+ if !(op != TK_INSERT) {
+ goto __15
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20824,
+ libc.VaList(bp, func() uintptr {
+ if op == TK_DELETE {
+ return ts + 20872
+ }
+ return ts + 20879
+ }()))
+__15:
+ ;
+ (*Trigger)(unsafe.Pointer(p)).Ftr_tm = U8(TRIGGER_BEFORE)
+ goto __14
+__13:
+ (*Trigger)(unsafe.Pointer(p)).Ftr_tm = U8(TRIGGER_AFTER)
+__14:
+ ;
+ mask = mask | int32((*Trigger)(unsafe.Pointer(p)).Ftr_tm)
+ goto __12
+__11:
+ if !((*Trigger)(unsafe.Pointer(p)).FbReturning != 0 && int32((*Trigger)(unsafe.Pointer(p)).Fop) == TK_INSERT && op == TK_UPDATE &&
+ (*Parse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0)) {
+ goto __16
+ }
+
+ mask = mask | int32((*Trigger)(unsafe.Pointer(p)).Ftr_tm)
+__16:
+ ;
+__12:
+ ;
+__10:
+ ;
+ p = (*Trigger)(unsafe.Pointer(p)).FpNext
+ goto __7
+__7:
+ if p != 0 {
+ goto __6
+ }
+ goto __8
+__8:
+ ;
+__1:
+ ;
+exit_triggers_exist:
+ if !(pMask != 0) {
+ goto __17
+ }
+ *(*int32)(unsafe.Pointer(pMask)) = mask
+__17:
+ ;
+ return func() uintptr {
+ if mask != 0 {
+ return pList
+ }
+ return uintptr(0)
+ }()
+}
+
+func Xsqlite3TriggersExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, pChanges uintptr, pMask uintptr) uintptr {
+ if (*Table)(unsafe.Pointer(pTab)).FpTrigger == uintptr(0) && !(tempTriggersExist(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb) != 0) ||
+ (*Parse)(unsafe.Pointer(pParse)).FdisableTriggers != 0 {
+ if pMask != 0 {
+ *(*int32)(unsafe.Pointer(pMask)) = 0
+ }
+ return uintptr(0)
+ }
+ return triggersReallyExist(tls, pParse, pTab, op, pChanges, pMask)
+}
+
+// Convert the pStep->zTarget string into a SrcList and return a pointer
+// to that SrcList.
+//
+// This routine adds a specific database name, if needed, to the target when
+// forming the SrcList. This prevents a trigger in one database from
+// referring to a target in another database. An exception is when the
+// trigger is in TEMP in which case it can refer to any other database it
+// wants.
+func Xsqlite3TriggerStepSrc(tls *libc.TLS, pParse uintptr, pStep uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pSrc uintptr
+ var zName uintptr = Xsqlite3DbStrDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FzTarget)
+ pSrc = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0))
+
+ if pSrc != 0 {
+ var pSchema uintptr = (*Trigger)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(pStep)).FpTrig)).FpSchema
+ (*SrcItem)(unsafe.Pointer(pSrc + 8)).FzName = zName
+ if pSchema != (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema {
+ (*SrcItem)(unsafe.Pointer(pSrc + 8)).FpSchema = pSchema
+ }
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom != 0 {
+ var pDup uintptr = Xsqlite3SrcListDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpFrom, 0)
+ if pDup != 0 && (*SrcList)(unsafe.Pointer(pDup)).FnSrc > 1 && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ var pSubquery uintptr
+
+ pSubquery = Xsqlite3SelectNew(tls, pParse, uintptr(0), pDup, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_NestedFrom), uintptr(0))
+ (*Token)(unsafe.Pointer(bp)).Fn = uint32(0)
+ (*Token)(unsafe.Pointer(bp)).Fz = uintptr(0)
+ pDup = Xsqlite3SrcListAppendFromTerm(tls, pParse, uintptr(0), uintptr(0), uintptr(0), bp, pSubquery, uintptr(0))
+ }
+ pSrc = Xsqlite3SrcListAppendList(tls, pParse, pSrc, pDup)
+ }
+ } else {
+ Xsqlite3DbFree(tls, db, zName)
+ }
+ return pSrc
+}
+
+func isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pTerm)).Fop) == TK_ASTERISK {
+ return 1
+ }
+ if int32((*Expr)(unsafe.Pointer(pTerm)).Fop) != TK_DOT {
+ return 0
+ }
+
+ if int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != TK_ASTERISK {
+ return 0
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+20886, 0)
+ return 1
+}
+
+func sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab uintptr) uintptr {
+ var pNew uintptr = uintptr(0)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var i int32
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ var pOldExpr uintptr = (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32)).FpExpr
+ if pOldExpr == uintptr(0) {
+ continue
+ }
+ if isAsteriskTerm(tls, pParse, pOldExpr) != 0 {
+ var jj int32
+ for jj = 0; jj < int32((*Table)(unsafe.Pointer(pTab)).FnCol); jj++ {
+ var pNewExpr uintptr
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(jj)*24)).FcolFlags)&COLFLAG_HIDDEN != 0 {
+ continue
+ }
+ pNewExpr = Xsqlite3Expr(tls, db, TK_ID, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(jj)*24)).FzCnName)
+ pNew = Xsqlite3ExprListAppend(tls, pParse, pNew, pNewExpr)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ var pItem uintptr = pNew + 8 + uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32
+ (*ExprList_item)(unsafe.Pointer(pItem)).FzEName = Xsqlite3DbStrDup(tls, db, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(jj)*24)).FzCnName)
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(ENAME_NAME), 0, 0x3)
+ }
+ }
+ } else {
+ var pNewExpr uintptr = Xsqlite3ExprDup(tls, db, pOldExpr, 0)
+ pNew = Xsqlite3ExprListAppend(tls, pParse, pNew, pNewExpr)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) && (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FzEName != uintptr(0) {
+ var pItem uintptr = pNew + 8 + uintptr((*ExprList)(unsafe.Pointer(pNew)).FnExpr-1)*32
+ (*ExprList_item)(unsafe.Pointer(pItem)).FzEName = Xsqlite3DbStrDup(tls, db, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FzEName)
+ libc.SetBitFieldPtr16Uint32(pItem+16+4, uint32(int32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x3>>0)), 0, 0x3)
+ }
+ }
+ }
+ return pNew
+}
+
+func codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintptr, regIn int32) {
+ bp := tls.Alloc(296)
+ defer tls.Free(296)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pNew uintptr
+ var pReturning uintptr
+
+ pReturning = *(*uintptr)(unsafe.Pointer(pParse + 200))
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Select{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+128, 0, uint64(unsafe.Sizeof(SrcList{})), libc.X__builtin_object_size(tls, bp+128, 0))
+ (*Select)(unsafe.Pointer(bp)).FpEList = Xsqlite3ExprListDup(tls, db, (*Returning)(unsafe.Pointer(pReturning)).FpReturnEL, 0)
+ (*Select)(unsafe.Pointer(bp)).FpSrc = bp + 128
+ (*SrcList)(unsafe.Pointer(bp + 128)).FnSrc = 1
+ (*SrcItem)(unsafe.Pointer(bp + 128 + 8)).FpTab = pTab
+ (*SrcItem)(unsafe.Pointer(bp + 128 + 8)).FiCursor = -1
+ Xsqlite3SelectPrep(tls, pParse, bp, uintptr(0))
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ Xsqlite3GenerateColumnNames(tls, pParse, bp)
+ }
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(bp)).FpEList)
+ pNew = sqlite3ExpandReturning(tls, pParse, (*Returning)(unsafe.Pointer(pReturning)).FpReturnEL, pTab)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ libc.X__builtin___memset_chk(tls, bp+240, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+240, 0))
+ if (*Returning)(unsafe.Pointer(pReturning)).FnRetCol == 0 {
+ (*Returning)(unsafe.Pointer(pReturning)).FnRetCol = (*ExprList)(unsafe.Pointer(pNew)).FnExpr
+ (*Returning)(unsafe.Pointer(pReturning)).FiRetCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ }
+ (*NameContext)(unsafe.Pointer(bp + 240)).FpParse = pParse
+ *(*int32)(unsafe.Pointer(bp + 240 + 16)) = regIn
+ (*NameContext)(unsafe.Pointer(bp + 240)).FncFlags = NC_UBaseReg
+ (*Parse)(unsafe.Pointer(pParse)).FeTriggerOp = (*Trigger)(unsafe.Pointer(pTrigger)).Fop
+ (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab = pTab
+ if Xsqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK &&
+ !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ var i int32
+ var nCol int32 = (*ExprList)(unsafe.Pointer(pNew)).FnExpr
+ var reg int32 = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + 2
+ (*Returning)(unsafe.Pointer(pReturning)).FiRetReg = reg
+ for i = 0; i < nCol; i++ {
+ var pCol uintptr = (*ExprList_item)(unsafe.Pointer(pNew + 8 + uintptr(i)*32)).FpExpr
+
+ Xsqlite3ExprCodeFactorable(tls, pParse, pCol, reg+i)
+ if int32(Xsqlite3ExprAffinity(tls, pCol)) == SQLITE_AFF_REAL {
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, reg+i)
+ }
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, reg, i, reg+i)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, (*Returning)(unsafe.Pointer(pReturning)).FiRetCur, reg+i+1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, (*Returning)(unsafe.Pointer(pReturning)).FiRetCur, reg+i, reg+i+1)
+ }
+ }
+ Xsqlite3ExprListDelete(tls, db, pNew)
+ (*Parse)(unsafe.Pointer(pParse)).FeTriggerOp = U8(0)
+ (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab = uintptr(0)
+}
+
+func codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orconf int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pStep uintptr
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ for pStep = pStepList; pStep != 0; pStep = (*TriggerStep)(unsafe.Pointer(pStep)).FpNext {
+ (*Parse)(unsafe.Pointer(pParse)).FeOrconf = func() uint8 {
+ if orconf == OE_Default {
+ return (*TriggerStep)(unsafe.Pointer(pStep)).Forconf
+ }
+ return U8(orconf)
+ }()
+
+ if (*TriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 {
+ Xsqlite3VdbeAddOp4(tls, v, OP_Trace, 0x7fffffff, 1, 0,
+ Xsqlite3MPrintf(tls, db, ts+6483, libc.VaList(bp, (*TriggerStep)(unsafe.Pointer(pStep)).FzSpan)),
+ -6)
+ }
+
+ switch int32((*TriggerStep)(unsafe.Pointer(pStep)).Fop) {
+ case TK_UPDATE:
+ {
+ Xsqlite3Update(tls, pParse,
+ Xsqlite3TriggerStepSrc(tls, pParse, pStep),
+ Xsqlite3ExprListDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpExprList, 0),
+ Xsqlite3ExprDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere, 0),
+ int32((*Parse)(unsafe.Pointer(pParse)).FeOrconf), uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3VdbeAddOp0(tls, v, OP_ResetCount)
+ break
+
+ }
+ case TK_INSERT:
+ {
+ Xsqlite3Insert(tls, pParse,
+ Xsqlite3TriggerStepSrc(tls, pParse, pStep),
+ Xsqlite3SelectDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect, 0),
+ Xsqlite3IdListDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpIdList),
+ int32((*Parse)(unsafe.Pointer(pParse)).FeOrconf),
+ Xsqlite3UpsertDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpUpsert))
+ Xsqlite3VdbeAddOp0(tls, v, OP_ResetCount)
+ break
+
+ }
+ case TK_DELETE:
+ {
+ Xsqlite3DeleteFrom(tls, pParse,
+ Xsqlite3TriggerStepSrc(tls, pParse, pStep),
+ Xsqlite3ExprDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpWhere, 0), uintptr(0), uintptr(0))
+ Xsqlite3VdbeAddOp0(tls, v, OP_ResetCount)
+ break
+
+ }
+ default:
+ {
+ var pSelect uintptr = Xsqlite3SelectDup(tls, db, (*TriggerStep)(unsafe.Pointer(pStep)).FpSelect, 0)
+ Xsqlite3SelectDestInit(tls, bp+8, SRT_Discard, 0)
+ Xsqlite3Select(tls, pParse, pSelect, bp+8)
+ Xsqlite3SelectDelete(tls, db, pSelect)
+ break
+
+ }
+ }
+ }
+
+ return 0
+}
+
+func transferParseError(tls *libc.TLS, pTo uintptr, pFrom uintptr) {
+ if (*Parse)(unsafe.Pointer(pTo)).FnErr == 0 {
+ (*Parse)(unsafe.Pointer(pTo)).FzErrMsg = (*Parse)(unsafe.Pointer(pFrom)).FzErrMsg
+ (*Parse)(unsafe.Pointer(pTo)).FnErr = (*Parse)(unsafe.Pointer(pFrom)).FnErr
+ (*Parse)(unsafe.Pointer(pTo)).Frc = (*Parse)(unsafe.Pointer(pFrom)).Frc
+ } else {
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pFrom)).Fdb, (*Parse)(unsafe.Pointer(pFrom)).FzErrMsg)
+ }
+}
+
+func codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintptr, orconf int32) uintptr {
+ bp := tls.Alloc(488)
+ defer tls.Free(488)
+
+ var pTop uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pPrg uintptr
+ var pWhen uintptr = uintptr(0)
+ var v uintptr
+
+ var pProgram uintptr = uintptr(0)
+ var iEndTrigger int32 = 0
+
+ pPrg = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(TriggerPrg{})))
+ if !(pPrg != 0) {
+ return uintptr(0)
+ }
+ (*TriggerPrg)(unsafe.Pointer(pPrg)).FpNext = (*Parse)(unsafe.Pointer(pTop)).FpTriggerPrg
+ (*Parse)(unsafe.Pointer(pTop)).FpTriggerPrg = pPrg
+ (*TriggerPrg)(unsafe.Pointer(pPrg)).FpProgram = libc.AssignUintptr(&pProgram, Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(SubProgram{}))))
+ if !(pProgram != 0) {
+ return uintptr(0)
+ }
+ Xsqlite3VdbeLinkSubProgram(tls, (*Parse)(unsafe.Pointer(pTop)).FpVdbe, pProgram)
+ (*TriggerPrg)(unsafe.Pointer(pPrg)).FpTrigger = pTrigger
+ (*TriggerPrg)(unsafe.Pointer(pPrg)).Forconf = orconf
+ *(*U32)(unsafe.Pointer(pPrg + 28)) = 0xffffffff
+ *(*U32)(unsafe.Pointer(pPrg + 28 + 1*4)) = 0xffffffff
+
+ Xsqlite3ParseObjectInit(tls, bp+8, db)
+ libc.X__builtin___memset_chk(tls, bp+432, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+432, 0))
+ (*NameContext)(unsafe.Pointer(bp + 432)).FpParse = bp + 8
+ (*Parse)(unsafe.Pointer(bp + 8)).FpTriggerTab = pTab
+ (*Parse)(unsafe.Pointer(bp + 8)).FpToplevel = pTop
+ (*Parse)(unsafe.Pointer(bp + 8)).FzAuthContext = (*Trigger)(unsafe.Pointer(pTrigger)).FzName
+ (*Parse)(unsafe.Pointer(bp + 8)).FeTriggerOp = (*Trigger)(unsafe.Pointer(pTrigger)).Fop
+ (*Parse)(unsafe.Pointer(bp + 8)).FnQueryLoop = (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop
+ (*Parse)(unsafe.Pointer(bp + 8)).FprepFlags = (*Parse)(unsafe.Pointer(pParse)).FprepFlags
+
+ v = Xsqlite3GetVdbe(tls, bp+8)
+ if v != 0 {
+ if (*Trigger)(unsafe.Pointer(pTrigger)).FzName != 0 {
+ Xsqlite3VdbeChangeP4(tls, v, -1,
+ Xsqlite3MPrintf(tls, db, ts+20928, libc.VaList(bp, (*Trigger)(unsafe.Pointer(pTrigger)).FzName)), -6)
+ }
+
+ if (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen != 0 {
+ pWhen = Xsqlite3ExprDup(tls, db, (*Trigger)(unsafe.Pointer(pTrigger)).FpWhen, 0)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 &&
+ SQLITE_OK == Xsqlite3ResolveExprNames(tls, bp+432, pWhen) {
+ iEndTrigger = Xsqlite3VdbeMakeLabel(tls, bp+8)
+ Xsqlite3ExprIfFalse(tls, bp+8, pWhen, iEndTrigger, SQLITE_JUMPIFNULL)
+ }
+ Xsqlite3ExprDelete(tls, db, pWhen)
+ }
+
+ codeTriggerProgram(tls, bp+8, (*Trigger)(unsafe.Pointer(pTrigger)).Fstep_list, orconf)
+
+ if iEndTrigger != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, iEndTrigger)
+ }
+ Xsqlite3VdbeAddOp0(tls, v, OP_Halt)
+
+ transferParseError(tls, pParse, bp+8)
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ (*SubProgram)(unsafe.Pointer(pProgram)).FaOp = Xsqlite3VdbeTakeOpArray(tls, v, pProgram+8, pTop+136)
+ }
+ (*SubProgram)(unsafe.Pointer(pProgram)).FnMem = (*Parse)(unsafe.Pointer(bp + 8)).FnMem
+ (*SubProgram)(unsafe.Pointer(pProgram)).FnCsr = (*Parse)(unsafe.Pointer(bp + 8)).FnTab
+ (*SubProgram)(unsafe.Pointer(pProgram)).Ftoken = pTrigger
+ *(*U32)(unsafe.Pointer(pPrg + 28)) = (*Parse)(unsafe.Pointer(bp + 8)).Foldmask
+ *(*U32)(unsafe.Pointer(pPrg + 28 + 1*4)) = (*Parse)(unsafe.Pointer(bp + 8)).Fnewmask
+ Xsqlite3VdbeDelete(tls, v)
+ } else {
+ transferParseError(tls, pParse, bp+8)
+ }
+
+ Xsqlite3ParseObjectReset(tls, bp+8)
+ return pPrg
+}
+
+func getRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintptr, orconf int32) uintptr {
+ var pRoot uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ var pPrg uintptr
+
+ for pPrg = (*Parse)(unsafe.Pointer(pRoot)).FpTriggerPrg; pPrg != 0 && ((*TriggerPrg)(unsafe.Pointer(pPrg)).FpTrigger != pTrigger || (*TriggerPrg)(unsafe.Pointer(pPrg)).Forconf != orconf); pPrg = (*TriggerPrg)(unsafe.Pointer(pPrg)).FpNext {
+ }
+
+ if !(pPrg != 0) {
+ pPrg = codeRowTrigger(tls, pParse, pTrigger, pTab, orconf)
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FerrByteOffset = -1
+ }
+
+ return pPrg
+}
+
+// Generate code for the trigger program associated with trigger p on
+// table pTab. The reg, orconf and ignoreJump parameters passed to this
+// function are the same as those described in the header function for
+// sqlite3CodeRowTrigger()
+func Xsqlite3CodeRowTriggerDirect(tls *libc.TLS, pParse uintptr, p uintptr, pTab uintptr, reg int32, orconf int32, ignoreJump int32) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var pPrg uintptr
+ pPrg = getRowTrigger(tls, pParse, p, pTab, orconf)
+
+ if pPrg != 0 {
+ var bRecursive int32 = libc.Bool32((*Trigger)(unsafe.Pointer(p)).FzName != 0 && uint64(0) == (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_RecTriggers))
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_Program, reg, ignoreJump, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1),
+ (*TriggerPrg)(unsafe.Pointer(pPrg)).FpProgram, -4)
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(U8(bRecursive)))
+ }
+}
+
+// This is called to code the required FOR EACH ROW triggers for an operation
+// on table pTab. The operation to code triggers for (INSERT, UPDATE or DELETE)
+// is given by the op parameter. The tr_tm parameter determines whether the
+// BEFORE or AFTER triggers are coded. If the operation is an UPDATE, then
+// parameter pChanges is passed the list of columns being modified.
+//
+// If there are no triggers that fire at the specified time for the specified
+// operation on pTab, this function is a no-op.
+//
+// The reg argument is the address of the first in an array of registers
+// that contain the values substituted for the new.* and old.* references
+// in the trigger program. If N is the number of columns in table pTab
+// (a copy of pTab->nCol), then registers are populated as follows:
+//
+// Register Contains
+// ------------------------------------------------------
+// reg+0 OLD.rowid
+// reg+1 OLD.* value of left-most column of pTab
+// ... ...
+// reg+N OLD.* value of right-most column of pTab
+// reg+N+1 NEW.rowid
+// reg+N+2 NEW.* value of left-most column of pTab
+// ... ...
+// reg+N+N+1 NEW.* value of right-most column of pTab
+//
+// For ON DELETE triggers, the registers containing the NEW.* values will
+// never be accessed by the trigger program, so they are not allocated or
+// populated by the caller (there is no data to populate them with anyway).
+// Similarly, for ON INSERT triggers the values stored in the OLD.* registers
+// are never accessed, and so are not allocated by the caller. So, for an
+// ON INSERT trigger, the value passed to this function as parameter reg
+// is not a readable register, although registers (reg+N) through
+// (reg+N+N+1) are.
+//
+// Parameter orconf is the default conflict resolution algorithm for the
+// trigger program to use (REPLACE, IGNORE etc.). Parameter ignoreJump
+// is the instruction that control should jump to if a trigger program
+// raises an IGNORE exception.
+func Xsqlite3CodeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, op int32, pChanges uintptr, tr_tm int32, pTab uintptr, reg int32, orconf int32, ignoreJump int32) {
+ var p uintptr
+
+ for p = pTrigger; p != 0; p = (*Trigger)(unsafe.Pointer(p)).FpNext {
+ if (int32((*Trigger)(unsafe.Pointer(p)).Fop) == op || (*Trigger)(unsafe.Pointer(p)).FbReturning != 0 && int32((*Trigger)(unsafe.Pointer(p)).Fop) == TK_INSERT && op == TK_UPDATE) &&
+ int32((*Trigger)(unsafe.Pointer(p)).Ftr_tm) == tr_tm &&
+ checkColumnOverlap(tls, (*Trigger)(unsafe.Pointer(p)).FpColumns, pChanges) != 0 {
+ if !(int32((*Trigger)(unsafe.Pointer(p)).FbReturning) != 0) {
+ Xsqlite3CodeRowTriggerDirect(tls, pParse, p, pTab, reg, orconf, ignoreJump)
+ } else if (*Parse)(unsafe.Pointer(pParse)).FpToplevel == uintptr(0) {
+ codeReturningTrigger(tls, pParse, p, pTab, reg)
+ }
+ }
+ }
+}
+
+// Triggers may access values stored in the old.* or new.* pseudo-table.
+// This function returns a 32-bit bitmask indicating which columns of the
+// old.* or new.* tables actually are used by triggers. This information
+// may be used by the caller, for example, to avoid having to load the entire
+// old.* record into memory when executing an UPDATE or DELETE command.
+//
+// Bit 0 of the returned mask is set if the left-most column of the
+// table may be accessed using an [old|new].<col> reference. Bit 1 is set if
+// the second leftmost column value is required, and so on. If there
+// are more than 32 columns in the table, and at least one of the columns
+// with an index greater than 32 may be accessed, 0xffffffff is returned.
+//
+// It is not possible to determine if the old.rowid or new.rowid column is
+// accessed by triggers. The caller must always assume that it is.
+//
+// Parameter isNew must be either 1 or 0. If it is 0, then the mask returned
+// applies to the old.* table. If 1, the new.* table.
+//
+// Parameter tr_tm must be a mask with one or both of the TRIGGER_BEFORE
+// and TRIGGER_AFTER bits set. Values accessed by BEFORE triggers are only
+// included in the returned mask if the TRIGGER_BEFORE bit is set in the
+// tr_tm parameter. Similarly, values accessed by AFTER triggers are only
+// included in the returned mask if the TRIGGER_AFTER bit is set in tr_tm.
+func Xsqlite3TriggerColmask(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pChanges uintptr, isNew int32, tr_tm int32, pTab uintptr, orconf int32) U32 {
+ var op int32
+ if pChanges != 0 {
+ op = TK_UPDATE
+ } else {
+ op = TK_DELETE
+ }
+ var mask U32 = U32(0)
+ var p uintptr
+
+ for p = pTrigger; p != 0; p = (*Trigger)(unsafe.Pointer(p)).FpNext {
+ if int32((*Trigger)(unsafe.Pointer(p)).Fop) == op &&
+ tr_tm&int32((*Trigger)(unsafe.Pointer(p)).Ftr_tm) != 0 &&
+ checkColumnOverlap(tls, (*Trigger)(unsafe.Pointer(p)).FpColumns, pChanges) != 0 {
+ if (*Trigger)(unsafe.Pointer(p)).FbReturning != 0 {
+ mask = 0xffffffff
+ } else {
+ var pPrg uintptr
+ pPrg = getRowTrigger(tls, pParse, p, pTab, orconf)
+ if pPrg != 0 {
+ mask = mask | *(*U32)(unsafe.Pointer(pPrg + 28 + uintptr(isNew)*4))
+ }
+ }
+ }
+ }
+
+ return mask
+}
+
+// The most recently coded instruction was an OP_Column to retrieve the
+// i-th column of table pTab. This routine sets the P4 parameter of the
+// OP_Column to the default value, if any.
+//
+// The default value of a column is specified by a DEFAULT clause in the
+// column definition. This was either supplied by the user when the table
+// was created, or added later to the table definition by an ALTER TABLE
+// command. If the latter, then the row-records in the table btree on disk
+// may not contain a value for the column and the default value, taken
+// from the P4 parameter of the OP_Column instruction, is returned instead.
+// If the former, then all row-records are guaranteed to include a value
+// for the column and the P4 value is not required.
+//
+// Column definitions created by an ALTER TABLE command may only have
+// literal default values specified: a number, null or a string. (If a more
+// complicated default expression value was provided, it is evaluated
+// when the ALTER TABLE is executed and one of the literal values written
+// into the sqlite_schema table.)
+//
+// Therefore, the P4 parameter is only required if the default value for
+// the column is a literal number, string or null. The sqlite3ValueFromExpr()
+// function is capable of transforming these types of expressions into
+// sqlite3_value objects.
+//
+// If column as REAL affinity and the table is an ordinary b-tree table
+// (not a virtual table) then the value might have been stored as an
+// integer. In that case, add an OP_RealAffinity opcode to make sure
+// it has been converted into REAL.
+func Xsqlite3ColumnDefault(tls *libc.TLS, v uintptr, pTab uintptr, i int32, iReg int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCol uintptr
+
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24
+ if (*Column)(unsafe.Pointer(pCol)).FiDflt != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var enc U8 = (*Sqlite3)(unsafe.Pointer(Xsqlite3VdbeDb(tls, v))).Fenc
+
+ Xsqlite3ValueFromExpr(tls, Xsqlite3VdbeDb(tls, v),
+ Xsqlite3ColumnExpr(tls, pTab, pCol), enc,
+ uint8((*Column)(unsafe.Pointer(pCol)).Faffinity), bp)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ Xsqlite3VdbeAppendP4(tls, v, *(*uintptr)(unsafe.Pointer(bp)), -10)
+ }
+ }
+ if int32((*Column)(unsafe.Pointer(pCol)).Faffinity) == SQLITE_AFF_REAL && !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, iReg)
+ }
+}
+
+func indexColumnIsBeingUpdated(tls *libc.TLS, pIdx uintptr, iCol int32, aXRef uintptr, chngRowid int32) int32 {
+ var iIdxCol I16 = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(iCol)*2))
+
+ if int32(iIdxCol) >= 0 {
+ return libc.Bool32(*(*int32)(unsafe.Pointer(aXRef + uintptr(iIdxCol)*4)) >= 0)
+ }
+
+ return Xsqlite3ExprReferencesUpdatedColumn(tls, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(iCol)*32)).FpExpr,
+ aXRef, chngRowid)
+}
+
+func indexWhereClauseMightChange(tls *libc.TLS, pIdx uintptr, aXRef uintptr, chngRowid int32) int32 {
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere == uintptr(0) {
+ return 0
+ }
+ return Xsqlite3ExprReferencesUpdatedColumn(tls, (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere,
+ aXRef, chngRowid)
+}
+
+func exprRowColumn(tls *libc.TLS, pParse uintptr, iCol int32) uintptr {
+ var pRet uintptr = Xsqlite3PExpr(tls, pParse, TK_ROW, uintptr(0), uintptr(0))
+ if pRet != 0 {
+ (*Expr)(unsafe.Pointer(pRet)).FiColumn = YnVar(iCol + 1)
+ }
+ return pRet
+}
+
+func updateFromSelect(tls *libc.TLS, pParse uintptr, iEph int32, pPk uintptr, pChanges uintptr, pTabList uintptr, pWhere uintptr, pOrderBy uintptr, pLimit uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var i int32
+
+ var pSelect uintptr = uintptr(0)
+ var pList uintptr = uintptr(0)
+ var pGrp uintptr = uintptr(0)
+ var pLimit2 uintptr = uintptr(0)
+ var pOrderBy2 uintptr = uintptr(0)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FpTab
+ var pSrc uintptr
+ var pWhere2 uintptr
+ var eDest int32
+
+ _ = pOrderBy
+ _ = pLimit
+
+ pSrc = Xsqlite3SrcListDup(tls, db, pTabList, 0)
+ pWhere2 = Xsqlite3ExprDup(tls, db, pWhere, 0)
+
+ if pSrc != 0 {
+ libc.SetBitFieldPtr16Uint32(pSrc+8+60+4, uint32(1), 9, 0x200)
+ (*SrcItem)(unsafe.Pointer(pSrc + 8)).FiCursor = -1
+ (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc+8)).FpTab)).FnTabRef--
+ (*SrcItem)(unsafe.Pointer(pSrc + 8)).FpTab = uintptr(0)
+ }
+ if pPk != 0 {
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol); i++ {
+ var pNew uintptr = exprRowColumn(tls, pParse, int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, pNew)
+ }
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ eDest = SRT_Table
+ } else {
+ eDest = SRT_Upfrom
+ }
+ } else if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW {
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, exprRowColumn(tls, pParse, i))
+ }
+ eDest = SRT_Table
+ } else {
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ eDest = SRT_Table
+ } else {
+ eDest = SRT_Upfrom
+ }
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), Xsqlite3PExpr(tls, pParse, TK_ROW, uintptr(0), uintptr(0)))
+ }
+
+ if pChanges != 0 {
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pChanges)).FnExpr; i++ {
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList,
+ Xsqlite3ExprDup(tls, db, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FpExpr, 0))
+ }
+ }
+ pSelect = Xsqlite3SelectNew(tls, pParse, pList,
+ pSrc, pWhere2, pGrp, uintptr(0), pOrderBy2,
+ uint32(SF_UFSrcCheck|SF_IncludeHidden|SF_UpdateFrom), pLimit2)
+ if pSelect != 0 {
+ *(*U32)(unsafe.Pointer(pSelect + 4)) |= U32(SF_OrderByReqd)
+ }
+ Xsqlite3SelectDestInit(tls, bp, eDest, iEph)
+ (*SelectDest)(unsafe.Pointer(bp)).FiSDParm2 = func() int32 {
+ if pPk != 0 {
+ return int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ }
+ return -1
+ }()
+ Xsqlite3Select(tls, pParse, pSelect, bp)
+ Xsqlite3SelectDelete(tls, db, pSelect)
+}
+
+// Process an UPDATE statement.
+//
+// UPDATE OR IGNORE tbl SET a=b, c=d FROM tbl2... WHERE e<5 AND f NOT NULL;
+// \_______/ \_/ \______/ \_____/ \________________/
+// onError | pChanges | pWhere
+// \_______________________/
+// pTabList
+func Xsqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges uintptr, pWhere uintptr, onError int32, pOrderBy uintptr, pLimit uintptr, pUpsert uintptr) {
+ bp := tls.Alloc(108)
+ defer tls.Free(108)
+
+ var i int32
+ var j int32
+ var k int32
+ var pTab uintptr
+ var addrTop int32
+ var pWInfo uintptr
+ var v uintptr
+ var pIdx uintptr
+ var pPk uintptr
+ var nIdx int32
+ var nAllIdx int32
+ var iBaseCur int32
+ var iDataCur int32
+ var iIdxCur int32
+ var db uintptr
+ var aRegIdx uintptr
+ var aXRef uintptr
+
+ var aToOpen uintptr
+ var chngPk U8
+ var chngRowid U8
+ var chngKey U8
+ var pRowidExpr uintptr
+ var iRowidExpr int32
+
+ var iDb int32
+ var eOnePass int32
+ var hasFK int32
+ var labelBreak int32
+ var labelContinue int32
+ var flags int32
+
+ var isView int32
+ var pTrigger uintptr
+
+ var newmask int32
+ var iEph int32
+ var nKey int32
+
+ var addrOpen int32
+ var iPk int32
+ var nPk I16
+
+ var bFinishSeek int32
+ var nChangeFrom int32
+
+ var regRowCount int32
+ var regOldRowid int32
+ var regNewRowid int32
+ var regNew int32
+ var regOld int32
+ var regRowSet int32
+ var regKey int32
+ var rc int32
+ var hCol U8
+ var bProgress int32
+ var reg int32
+ var pKeyInfo uintptr
+ var nEphCol int32
+ var iCur int32
+ var addrOnce int32
+ var colFlags U32
+ var oldmask U32
+ var nOff int32
+ addrTop = 0
+ pWInfo = uintptr(0)
+ aRegIdx = uintptr(0)
+ aXRef = uintptr(0)
+ pRowidExpr = uintptr(0)
+ iRowidExpr = -1
+ iEph = 0
+ nKey = 0
+ addrOpen = 0
+ iPk = 0
+ nPk = int16(0)
+ *(*int32)(unsafe.Pointer(bp + 104)) = 0
+ bFinishSeek = 1
+ nChangeFrom = 0
+ regRowCount = 0
+ regOldRowid = 0
+ regNewRowid = 0
+ regNew = 0
+ regOld = 0
+ regRowSet = 0
+ regKey = 0
+
+ libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(unsafe.Sizeof(AuthContext{})), libc.X__builtin_object_size(tls, bp+16, 0))
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __1
+ }
+ goto update_cleanup
+__1:
+ ;
+ pTab = Xsqlite3SrcListLookup(tls, pParse, pTabList)
+ if !(pTab == uintptr(0)) {
+ goto __2
+ }
+ goto update_cleanup
+__2:
+ ;
+ iDb = Xsqlite3SchemaToIndex(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+
+ pTrigger = Xsqlite3TriggersExist(tls, pParse, pTab, TK_UPDATE, pChanges, bp+32)
+ isView = libc.Bool32(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW)
+
+ if (*SrcList)(unsafe.Pointer(pTabList)).FnSrc > 1 {
+ nChangeFrom = (*ExprList)(unsafe.Pointer(pChanges)).FnExpr
+ } else {
+ nChangeFrom = 0
+ }
+
+ if !(Xsqlite3ViewGetColumnNames(tls, pParse, pTab) != 0) {
+ goto __3
+ }
+ goto update_cleanup
+__3:
+ ;
+ if !(Xsqlite3IsReadOnly(tls, pParse, pTab, *(*int32)(unsafe.Pointer(bp + 32))) != 0) {
+ goto __4
+ }
+ goto update_cleanup
+__4:
+ ;
+ iBaseCur = libc.AssignInt32(&iDataCur, libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1))
+ iIdxCur = iDataCur + 1
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ pPk = uintptr(0)
+ } else {
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ }
+
+ nIdx = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__5:
+ if !(pIdx != 0) {
+ goto __7
+ }
+ if !(pPk == pIdx) {
+ goto __8
+ }
+ iDataCur = (*Parse)(unsafe.Pointer(pParse)).FnTab
+__8:
+ ;
+ (*Parse)(unsafe.Pointer(pParse)).FnTab++
+ goto __6
+__6:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ nIdx++
+ goto __5
+ goto __7
+__7:
+ ;
+ if !(pUpsert != 0) {
+ goto __9
+ }
+
+ iDataCur = (*Upsert)(unsafe.Pointer(pUpsert)).FiDataCur
+ iIdxCur = (*Upsert)(unsafe.Pointer(pUpsert)).FiIdxCur
+ (*Parse)(unsafe.Pointer(pParse)).FnTab = iBaseCur
+__9:
+ ;
+ (*SrcItem)(unsafe.Pointer(pTabList + 8)).FiCursor = iDataCur
+
+ aXRef = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(int32(0)))*uint64(int32((*Table)(unsafe.Pointer(pTab)).FnCol)+nIdx+1)+uint64(nIdx)+uint64(2))
+ if !(aXRef == uintptr(0)) {
+ goto __10
+ }
+ goto update_cleanup
+__10:
+ ;
+ aRegIdx = aXRef + uintptr((*Table)(unsafe.Pointer(pTab)).FnCol)*4
+ aToOpen = aRegIdx + uintptr(nIdx)*4 + uintptr(1)*4
+ libc.X__builtin___memset_chk(tls, aToOpen, 1, uint64(nIdx+1), libc.X__builtin_object_size(tls, aToOpen, 0))
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(nIdx+1))) = U8(0)
+ i = 0
+__11:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __13
+ }
+ *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) = -1
+ goto __12
+__12:
+ i++
+ goto __11
+ goto __13
+__13:
+ ;
+ libc.X__builtin___memset_chk(tls, bp+40, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+40, 0))
+ (*NameContext)(unsafe.Pointer(bp + 40)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp + 40)).FpSrcList = pTabList
+ *(*uintptr)(unsafe.Pointer(bp + 40 + 16)) = pUpsert
+ (*NameContext)(unsafe.Pointer(bp + 40)).FncFlags = NC_UUpsert
+
+ v = Xsqlite3GetVdbe(tls, pParse)
+ if !(v == uintptr(0)) {
+ goto __14
+ }
+ goto update_cleanup
+__14:
+ ;
+ chngRowid = libc.AssignUint8(&chngPk, U8(0))
+ i = 0
+__15:
+ if !(i < (*ExprList)(unsafe.Pointer(pChanges)).FnExpr) {
+ goto __17
+ }
+ hCol = Xsqlite3StrIHash(tls, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FzEName)
+
+ if !(nChangeFrom == 0 && Xsqlite3ResolveExprNames(tls, bp+40, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FpExpr) != 0) {
+ goto __18
+ }
+ goto update_cleanup
+__18:
+ ;
+ j = 0
+__19:
+ if !(j < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __21
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FhName) == int32(hCol) &&
+ Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FzCnName, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FzEName) == 0) {
+ goto __22
+ }
+ if !(j == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __23
+ }
+ chngRowid = U8(1)
+ pRowidExpr = (*ExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32)).FpExpr
+ iRowidExpr = i
+ goto __24
+__23:
+ if !(pPk != 0 && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_PRIMKEY != 0) {
+ goto __25
+ }
+ chngPk = U8(1)
+ goto __26
+__25:
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __27
+ }
+
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+20942,
+ libc.VaList(bp, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FzCnName))
+ goto update_cleanup
+__27:
+ ;
+__26:
+ ;
+__24:
+ ;
+ *(*int32)(unsafe.Pointer(aXRef + uintptr(j)*4)) = i
+ goto __21
+__22:
+ ;
+ goto __20
+__20:
+ j++
+ goto __19
+ goto __21
+__21:
+ ;
+ if !(j >= int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __28
+ }
+ if !(pPk == uintptr(0) && Xsqlite3IsRowid(tls, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FzEName) != 0) {
+ goto __29
+ }
+ j = -1
+ chngRowid = U8(1)
+ pRowidExpr = (*ExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32)).FpExpr
+ iRowidExpr = i
+ goto __30
+__29:
+ Xsqlite3ErrorMsg(tls, pParse, ts+20978, libc.VaList(bp+8, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(i)*32)).FzEName))
+ (*Parse)(unsafe.Pointer(pParse)).FcheckSchema = U8(1)
+ goto update_cleanup
+__30:
+ ;
+__28:
+ ;
+ rc = Xsqlite3AuthCheck(tls, pParse, SQLITE_UPDATE, (*Table)(unsafe.Pointer(pTab)).FzName,
+ func() uintptr {
+ if j < 0 {
+ return ts + 8116
+ }
+ return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*24)).FzCnName
+ }(),
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+ if !(rc == SQLITE_DENY) {
+ goto __31
+ }
+ goto update_cleanup
+ goto __32
+__31:
+ if !(rc == SQLITE_IGNORE) {
+ goto __33
+ }
+ *(*int32)(unsafe.Pointer(aXRef + uintptr(j)*4)) = -1
+__33:
+ ;
+__32:
+ ;
+ goto __16
+__16:
+ i++
+ goto __15
+ goto __17
+__17:
+ ;
+ chngKey = U8(int32(chngRowid) + int32(chngPk))
+
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != 0) {
+ goto __34
+ }
+
+__35:
+ bProgress = 0
+ i = 0
+__38:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __40
+ }
+ if !(*(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) >= 0) {
+ goto __41
+ }
+ goto __39
+__41:
+ ;
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_GENERATED == 0) {
+ goto __42
+ }
+ goto __39
+__42:
+ ;
+ if !(Xsqlite3ExprReferencesUpdatedColumn(tls,
+ Xsqlite3ColumnExpr(tls, pTab, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24),
+ aXRef, int32(chngRowid)) != 0) {
+ goto __43
+ }
+ *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) = 99999
+ bProgress = 1
+__43:
+ ;
+ goto __39
+__39:
+ i++
+ goto __38
+ goto __40
+__40:
+ ;
+ goto __36
+__36:
+ if bProgress != 0 {
+ goto __35
+ }
+ goto __37
+__37:
+ ;
+__34:
+ ;
+ (*SrcItem)(unsafe.Pointer(pTabList + 8)).FcolUsed = func() uint64 {
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ return libc.Uint64(libc.Uint64FromInt32(-1))
+ }
+ return uint64(0)
+ }()
+
+ hasFK = Xsqlite3FkRequired(tls, pParse, pTab, aXRef, int32(chngKey))
+
+ if !(onError == OE_Replace) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(bp + 104)) = 1
+__44:
+ ;
+ nAllIdx = 0
+ pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex
+__45:
+ if !(pIdx != 0) {
+ goto __47
+ }
+ if !(chngKey != 0 || hasFK > 1 || pIdx == pPk ||
+ indexWhereClauseMightChange(tls, pIdx, aXRef, int32(chngRowid)) != 0) {
+ goto __48
+ }
+ reg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ goto __49
+__48:
+ reg = 0
+ i = 0
+__50:
+ if !(i < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)) {
+ goto __52
+ }
+ if !(indexColumnIsBeingUpdated(tls, pIdx, i, aXRef, int32(chngRowid)) != 0) {
+ goto __53
+ }
+ reg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)
+ if !(onError == OE_Default && int32((*Index)(unsafe.Pointer(pIdx)).FonError) == OE_Replace) {
+ goto __54
+ }
+ *(*int32)(unsafe.Pointer(bp + 104)) = 1
+__54:
+ ;
+ goto __52
+__53:
+ ;
+ goto __51
+__51:
+ i++
+ goto __50
+ goto __52
+__52:
+ ;
+__49:
+ ;
+ if !(reg == 0) {
+ goto __55
+ }
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(nAllIdx+1))) = U8(0)
+__55:
+ ;
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(nAllIdx)*4)) = reg
+ goto __46
+__46:
+ pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext
+ nAllIdx++
+ goto __45
+ goto __47
+__47:
+ ;
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(nAllIdx)*4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if !(*(*int32)(unsafe.Pointer(bp + 104)) != 0) {
+ goto __56
+ }
+
+ libc.X__builtin___memset_chk(tls, aToOpen, 1, uint64(nIdx+1), libc.X__builtin_object_size(tls, aToOpen, 0))
+__56:
+ ;
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0) {
+ goto __57
+ }
+ Xsqlite3VdbeCountChanges(tls, v)
+__57:
+ ;
+ Xsqlite3BeginWriteOperation(tls, pParse, libc.Bool32(pTrigger != 0 || hasFK != 0), iDb)
+
+ if !!(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __58
+ }
+
+ regRowSet = *(*int32)(unsafe.Pointer(aRegIdx + uintptr(nAllIdx)*4))
+ regOldRowid = libc.AssignInt32(&regNewRowid, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ if !(chngPk != 0 || pTrigger != 0 || hasFK != 0) {
+ goto __59
+ }
+ regOld = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+__59:
+ ;
+ if !(chngKey != 0 || pTrigger != 0 || hasFK != 0) {
+ goto __60
+ }
+ regNewRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+__60:
+ ;
+ regNew = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+__58:
+ ;
+ if !(isView != 0) {
+ goto __61
+ }
+ Xsqlite3AuthContextPush(tls, pParse, bp+16, (*Table)(unsafe.Pointer(pTab)).FzName)
+__61:
+ ;
+ if !(nChangeFrom == 0 && isView != 0) {
+ goto __62
+ }
+ Xsqlite3MaterializeView(tls, pParse, pTab,
+ pWhere, pOrderBy, pLimit, iDataCur)
+ pOrderBy = uintptr(0)
+ pLimit = uintptr(0)
+__62:
+ ;
+ if !(nChangeFrom == 0 && Xsqlite3ResolveExprNames(tls, bp+40, pWhere) != 0) {
+ goto __63
+ }
+ goto update_cleanup
+__63:
+ ;
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __64
+ }
+ updateVirtualTable(tls, pParse, pTabList, pTab, pChanges, pRowidExpr, aXRef,
+ pWhere, onError)
+ goto update_cleanup
+__64:
+ ;
+ labelContinue = libc.AssignInt32(&labelBreak, Xsqlite3VdbeMakeLabel(tls, pParse))
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fflags&(uint64(0x00001)<<32) != uint64(0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FpTriggerTab) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FbReturning) != 0) &&
+ pUpsert == uintptr(0)) {
+ goto __65
+ }
+ regRowCount = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regRowCount)
+__65:
+ ;
+ if !(nChangeFrom == 0 && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __66
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, regRowSet, regOldRowid)
+ iEph = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ addrOpen = Xsqlite3VdbeAddOp3(tls, v, OP_OpenEphemeral, iEph, 0, regRowSet)
+ goto __67
+__66:
+ ;
+ if pPk != 0 {
+ nPk = int16((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ } else {
+ nPk = int16(0)
+ }
+ iPk = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += int32(nPk)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nChangeFrom
+ regKey = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ if !(pUpsert == uintptr(0)) {
+ goto __68
+ }
+ nEphCol = int32(nPk) + nChangeFrom + func() int32 {
+ if isView != 0 {
+ return int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ }
+ return 0
+ }()
+ iEph = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ if !(pPk != 0) {
+ goto __69
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, iPk, iPk+int32(nPk)-1)
+__69:
+ ;
+ addrOpen = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, iEph, nEphCol)
+ if !(pPk != 0) {
+ goto __70
+ }
+ pKeyInfo = Xsqlite3KeyInfoOfIndex(tls, pParse, pPk)
+ if !(pKeyInfo != 0) {
+ goto __71
+ }
+ (*KeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField = U16(nEphCol)
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+__71:
+ ;
+__70:
+ ;
+ if !(nChangeFrom != 0) {
+ goto __72
+ }
+ updateFromSelect(tls,
+ pParse, iEph, pPk, pChanges, pTabList, pWhere, pOrderBy, pLimit)
+ if !(isView != 0) {
+ goto __73
+ }
+ iDataCur = iEph
+__73:
+ ;
+__72:
+ ;
+__68:
+ ;
+__67:
+ ;
+ if !(nChangeFrom != 0) {
+ goto __74
+ }
+ Xsqlite3MultiWrite(tls, pParse)
+ eOnePass = ONEPASS_OFF
+ nKey = int32(nPk)
+ regKey = iPk
+ goto __75
+__74:
+ if !(pUpsert != 0) {
+ goto __76
+ }
+
+ pWInfo = uintptr(0)
+ eOnePass = ONEPASS_SINGLE
+ Xsqlite3ExprIfFalse(tls, pParse, pWhere, labelBreak, SQLITE_JUMPIFNULL)
+ bFinishSeek = 0
+ goto __77
+__76:
+ flags = WHERE_ONEPASS_DESIRED
+ if !(!(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) && !(pTrigger != 0) && !(hasFK != 0) && !(chngKey != 0) && !(*(*int32)(unsafe.Pointer(bp + 104)) != 0)) {
+ goto __78
+ }
+ flags = flags | WHERE_ONEPASS_MULTIROW
+__78:
+ ;
+ pWInfo = Xsqlite3WhereBegin(tls, pParse, pTabList, pWhere, uintptr(0), uintptr(0), uintptr(0), uint16(flags), iIdxCur)
+ if !(pWInfo == uintptr(0)) {
+ goto __79
+ }
+ goto update_cleanup
+__79:
+ ;
+ eOnePass = Xsqlite3WhereOkOnePass(tls, pWInfo, bp+96)
+ bFinishSeek = Xsqlite3WhereUsesDeferredSeek(tls, pWInfo)
+ if !(eOnePass != ONEPASS_SINGLE) {
+ goto __80
+ }
+ Xsqlite3MultiWrite(tls, pParse)
+ if !(eOnePass == ONEPASS_MULTI) {
+ goto __81
+ }
+ iCur = *(*int32)(unsafe.Pointer(bp + 96 + 1*4))
+ if !(iCur >= 0 && iCur != iDataCur && *(*U8)(unsafe.Pointer(aToOpen + uintptr(iCur-iBaseCur))) != 0) {
+ goto __82
+ }
+ eOnePass = ONEPASS_OFF
+__82:
+ ;
+__81:
+ ;
+__80:
+ ;
+__77:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __83
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iDataCur, regOldRowid)
+ if !(eOnePass == ONEPASS_OFF) {
+ goto __85
+ }
+ *(*int32)(unsafe.Pointer(aRegIdx + uintptr(nAllIdx)*4)) = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, iEph, regRowSet, regOldRowid)
+ goto __86
+__85:
+ if !(addrOpen != 0) {
+ goto __87
+ }
+ Xsqlite3VdbeChangeToNoop(tls, v, addrOpen)
+__87:
+ ;
+__86:
+ ;
+ goto __84
+__83:
+ i = 0
+__88:
+ if !(i < int32(nPk)) {
+ goto __90
+ }
+
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur,
+ int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))), iPk+i)
+ goto __89
+__89:
+ i++
+ goto __88
+ goto __90
+__90:
+ ;
+ if !(eOnePass != 0) {
+ goto __91
+ }
+ if !(addrOpen != 0) {
+ goto __93
+ }
+ Xsqlite3VdbeChangeToNoop(tls, v, addrOpen)
+__93:
+ ;
+ nKey = int32(nPk)
+ regKey = iPk
+ goto __92
+__91:
+ Xsqlite3VdbeAddOp4(tls, v, OP_MakeRecord, iPk, int32(nPk), regKey,
+ Xsqlite3IndexAffinityStr(tls, db, pPk), int32(nPk))
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, iEph, regKey, iPk, int32(nPk))
+__92:
+ ;
+__84:
+ ;
+__75:
+ ;
+ if !(pUpsert == uintptr(0)) {
+ goto __94
+ }
+ if !(nChangeFrom == 0 && eOnePass != ONEPASS_MULTI) {
+ goto __95
+ }
+ Xsqlite3WhereEnd(tls, pWInfo)
+__95:
+ ;
+ if !!(isView != 0) {
+ goto __96
+ }
+ addrOnce = 0
+
+ if !(eOnePass != ONEPASS_OFF) {
+ goto __97
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 96)) >= 0) {
+ goto __98
+ }
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp + 96))-iBaseCur))) = U8(0)
+__98:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 96 + 1*4)) >= 0) {
+ goto __99
+ }
+ *(*U8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp + 96 + 1*4))-iBaseCur))) = U8(0)
+__99:
+ ;
+__97:
+ ;
+ if !(eOnePass == ONEPASS_MULTI && nIdx-libc.Bool32(*(*int32)(unsafe.Pointer(bp + 96 + 1*4)) >= 0) > 0) {
+ goto __100
+ }
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+__100:
+ ;
+ Xsqlite3OpenTableAndIndices(tls, pParse, pTab, OP_OpenWrite, uint8(0), iBaseCur,
+ aToOpen, uintptr(0), uintptr(0))
+ if !(addrOnce != 0) {
+ goto __101
+ }
+ Xsqlite3VdbeJumpHereOrPopInst(tls, v, addrOnce)
+__101:
+ ;
+__96:
+ ;
+ if !(eOnePass != ONEPASS_OFF) {
+ goto __102
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 96)) != iDataCur &&
+ *(*int32)(unsafe.Pointer(bp + 96 + 1*4)) != iDataCur) {
+ goto __104
+ }
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, iDataCur, labelBreak, regKey, nKey)
+
+__104:
+ ;
+ if !(eOnePass != ONEPASS_SINGLE) {
+ goto __105
+ }
+ labelContinue = Xsqlite3VdbeMakeLabel(tls, pParse)
+__105:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, func() int32 {
+ if pPk != 0 {
+ return regKey
+ }
+ return regOldRowid
+ }(), labelBreak)
+
+ goto __103
+__102:
+ if !(pPk != 0 || nChangeFrom != 0) {
+ goto __106
+ }
+ labelContinue = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iEph, labelBreak)
+ addrTop = Xsqlite3VdbeCurrentAddr(tls, v)
+ if !(nChangeFrom != 0) {
+ goto __108
+ }
+ if !!(isView != 0) {
+ goto __110
+ }
+ if !(pPk != 0) {
+ goto __111
+ }
+ i = 0
+__113:
+ if !(i < int32(nPk)) {
+ goto __115
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEph, i, iPk+i)
+ goto __114
+__114:
+ i++
+ goto __113
+ goto __115
+__115:
+ ;
+ Xsqlite3VdbeAddOp4Int(tls,
+ v, OP_NotFound, iDataCur, labelContinue, iPk, int32(nPk))
+ goto __112
+__111:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iEph, regOldRowid)
+ Xsqlite3VdbeAddOp3(tls,
+ v, OP_NotExists, iDataCur, labelContinue, regOldRowid)
+__112:
+ ;
+__110:
+ ;
+ goto __109
+__108:
+ Xsqlite3VdbeAddOp2(tls, v, OP_RowData, iEph, regKey)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, iDataCur, labelContinue, regKey, 0)
+
+__109:
+ ;
+ goto __107
+__106:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rewind, iEph, labelBreak)
+ labelContinue = Xsqlite3VdbeMakeLabel(tls, pParse)
+ addrTop = Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iEph, regOldRowid)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDataCur, labelContinue, regOldRowid)
+
+__107:
+ ;
+__103:
+ ;
+__94:
+ ;
+ if !(chngRowid != 0) {
+ goto __116
+ }
+
+ if !(nChangeFrom == 0) {
+ goto __117
+ }
+ Xsqlite3ExprCode(tls, pParse, pRowidExpr, regNewRowid)
+ goto __118
+__117:
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEph, iRowidExpr, regNewRowid)
+__118:
+ ;
+ Xsqlite3VdbeAddOp1(tls, v, OP_MustBeInt, regNewRowid)
+__116:
+ ;
+ if !(chngPk != 0 || hasFK != 0 || pTrigger != 0) {
+ goto __119
+ }
+ oldmask = func() uint32 {
+ if hasFK != 0 {
+ return Xsqlite3FkOldmask(tls, pParse, pTab)
+ }
+ return uint32(0)
+ }()
+ oldmask = oldmask | Xsqlite3TriggerColmask(tls, pParse,
+ pTrigger, pChanges, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onError)
+ i = 0
+__120:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __122
+ }
+ colFlags = U32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*24)).FcolFlags)
+ k = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(i))) + regOld
+ if !(oldmask == 0xffffffff ||
+ i < 32 && oldmask&(uint32(1)<<i) != U32(0) ||
+ colFlags&U32(COLFLAG_PRIMKEY) != U32(0)) {
+ goto __123
+ }
+
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur, i, k)
+ goto __124
+__123:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, k)
+__124:
+ ;
+ goto __121
+__121:
+ i++
+ goto __120
+ goto __122
+__122:
+ ;
+ if !(int32(chngRowid) == 0 && pPk == uintptr(0)) {
+ goto __125
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, regOldRowid, regNewRowid)
+__125:
+ ;
+__119:
+ ;
+ newmask = int32(Xsqlite3TriggerColmask(tls,
+ pParse, pTrigger, pChanges, 1, TRIGGER_BEFORE, pTab, onError))
+ i = 0
+ k = regNew
+__126:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __128
+ }
+ if !(i == int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __129
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, k)
+ goto __130
+__129:
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __131
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __133
+ }
+ k--
+__133:
+ ;
+ goto __132
+__131:
+ j = *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4))
+ if !(j >= 0) {
+ goto __134
+ }
+ if !(nChangeFrom != 0) {
+ goto __136
+ }
+ nOff = func() int32 {
+ if isView != 0 {
+ return int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ }
+ return int32(nPk)
+ }()
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEph, nOff+j, k)
+ goto __137
+__136:
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(j)*32)).FpExpr, k)
+__137:
+ ;
+ goto __135
+__134:
+ if !(0 == *(*int32)(unsafe.Pointer(bp + 32))&TRIGGER_BEFORE || i > 31 || uint32(newmask)&(uint32(1)<<i) != 0) {
+ goto __138
+ }
+
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur, i, k)
+ bFinishSeek = 0
+ goto __139
+__138:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, k)
+__139:
+ ;
+__135:
+ ;
+__132:
+ ;
+__130:
+ ;
+ goto __127
+__127:
+ i++
+ k++
+ goto __126
+ goto __128
+__128:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != 0) {
+ goto __140
+ }
+
+ Xsqlite3ComputeGeneratedColumns(tls, pParse, regNew, pTab)
+__140:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 32))&TRIGGER_BEFORE != 0) {
+ goto __141
+ }
+ Xsqlite3TableAffinity(tls, v, pTab, regNew)
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger, TK_UPDATE, pChanges,
+ TRIGGER_BEFORE, pTab, regOldRowid, onError, labelContinue)
+
+ if !!(isView != 0) {
+ goto __142
+ }
+
+ if !(pPk != 0) {
+ goto __143
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, iDataCur, labelContinue, regKey, nKey)
+
+ goto __144
+__143:
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDataCur, labelContinue, regOldRowid)
+
+__144:
+ ;
+ i = 0
+ k = regNew
+__145:
+ if !(i < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __147
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_GENERATED != 0) {
+ goto __148
+ }
+ if !(int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0) {
+ goto __150
+ }
+ k--
+__150:
+ ;
+ goto __149
+__148:
+ if !(*(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) < 0 && i != int32((*Table)(unsafe.Pointer(pTab)).FiPKey)) {
+ goto __151
+ }
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur, i, k)
+__151:
+ ;
+__149:
+ ;
+ goto __146
+__146:
+ i++
+ k++
+ goto __145
+ goto __147
+__147:
+ ;
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated) != 0) {
+ goto __152
+ }
+
+ Xsqlite3ComputeGeneratedColumns(tls, pParse, regNew, pTab)
+__152:
+ ;
+__142:
+ ;
+__141:
+ ;
+ if !!(isView != 0) {
+ goto __153
+ }
+
+ Xsqlite3GenerateConstraintChecks(tls, pParse, pTab, aRegIdx, iDataCur, iIdxCur,
+ regNewRowid, regOldRowid, chngKey, uint8(onError), labelContinue, bp+104,
+ aXRef, uintptr(0))
+
+ if !(*(*int32)(unsafe.Pointer(bp + 104)) != 0 || chngKey != 0) {
+ goto __154
+ }
+ if !(pPk != 0) {
+ goto __155
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, iDataCur, labelContinue, regKey, nKey)
+ goto __156
+__155:
+ Xsqlite3VdbeAddOp3(tls, v, OP_NotExists, iDataCur, labelContinue, regOldRowid)
+__156:
+ ;
+__154:
+ ;
+ if !(hasFK != 0) {
+ goto __157
+ }
+ Xsqlite3FkCheck(tls, pParse, pTab, regOldRowid, 0, aXRef, int32(chngKey))
+__157:
+ ;
+ Xsqlite3GenerateRowIndexDelete(tls, pParse, pTab, iDataCur, iIdxCur, aRegIdx, -1)
+
+ if !(bFinishSeek != 0) {
+ goto __158
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_FinishSeek, iDataCur)
+__158:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_Delete, iDataCur,
+ OPFLAG_ISUPDATE|func() int32 {
+ if hasFK > 1 || chngKey != 0 {
+ return 0
+ }
+ return OPFLAG_ISNOOP
+ }(),
+ regNewRowid)
+ if !(eOnePass == ONEPASS_MULTI) {
+ goto __159
+ }
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_SAVEPOSITION))
+__159:
+ ;
+ if !!(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) != 0) {
+ goto __160
+ }
+ Xsqlite3VdbeAppendP4(tls, v, pTab, -5)
+__160:
+ ;
+ if !(hasFK != 0) {
+ goto __161
+ }
+ Xsqlite3FkCheck(tls, pParse, pTab, 0, regNewRowid, aXRef, int32(chngKey))
+__161:
+ ;
+ Xsqlite3CompleteInsertion(tls,
+ pParse, pTab, iDataCur, iIdxCur, regNewRowid, aRegIdx,
+ OPFLAG_ISUPDATE|func() int32 {
+ if eOnePass == ONEPASS_MULTI {
+ return OPFLAG_SAVEPOSITION
+ }
+ return 0
+ }(),
+ 0, 0)
+
+ if !(hasFK != 0) {
+ goto __162
+ }
+ Xsqlite3FkActions(tls, pParse, pTab, pChanges, regOldRowid, aXRef, int32(chngKey))
+__162:
+ ;
+__153:
+ ;
+ if !(regRowCount != 0) {
+ goto __163
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, regRowCount, 1)
+__163:
+ ;
+ Xsqlite3CodeRowTrigger(tls, pParse, pTrigger, TK_UPDATE, pChanges,
+ TRIGGER_AFTER, pTab, regOldRowid, onError, labelContinue)
+
+ if !(eOnePass == ONEPASS_SINGLE) {
+ goto __164
+ }
+
+ goto __165
+__164:
+ if !(eOnePass == ONEPASS_MULTI) {
+ goto __166
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, labelContinue)
+ Xsqlite3WhereEnd(tls, pWInfo)
+ goto __167
+__166:
+ Xsqlite3VdbeResolveLabel(tls, v, labelContinue)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, iEph, addrTop)
+__167:
+ ;
+__165:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, labelBreak)
+
+ if !(int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 && (*Parse)(unsafe.Pointer(pParse)).FpTriggerTab == uintptr(0) && pUpsert == uintptr(0)) {
+ goto __168
+ }
+ Xsqlite3AutoincrementEnd(tls, pParse)
+__168:
+ ;
+ if !(regRowCount != 0) {
+ goto __169
+ }
+ Xsqlite3CodeChangeCount(tls, v, regRowCount, ts+20997)
+__169:
+ ;
+update_cleanup:
+ Xsqlite3AuthContextPop(tls, bp+16)
+ Xsqlite3DbFree(tls, db, aXRef)
+ Xsqlite3SrcListDelete(tls, db, pTabList)
+ Xsqlite3ExprListDelete(tls, db, pChanges)
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ return
+}
+
+func updateVirtualTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pTab uintptr, pChanges uintptr, pRowid uintptr, aXRef uintptr, pWhere uintptr, onError int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var ephemTab int32
+ var i int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pVTab uintptr = Xsqlite3GetVTable(tls, db, pTab)
+ var pWInfo uintptr = uintptr(0)
+ var nArg int32 = 2 + int32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ var regArg int32
+ var regRec int32
+ var regRowid int32
+ var iCsr int32 = (*SrcItem)(unsafe.Pointer(pSrc + 8)).FiCursor
+
+ var eOnePass int32
+ var addr int32
+
+ ephemTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ addr = Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, ephemTab, nArg)
+ regArg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nArg
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc > 1 {
+ var pPk uintptr = uintptr(0)
+ var pRow uintptr
+ var pList uintptr
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ if pRowid != 0 {
+ pRow = Xsqlite3ExprDup(tls, db, pRowid, 0)
+ } else {
+ pRow = Xsqlite3PExpr(tls, pParse, TK_ROW, uintptr(0), uintptr(0))
+ }
+ } else {
+ var iPk I16
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ iPk = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn))
+ if *(*int32)(unsafe.Pointer(aXRef + uintptr(iPk)*4)) >= 0 {
+ pRow = Xsqlite3ExprDup(tls, db, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(*(*int32)(unsafe.Pointer(aXRef + uintptr(iPk)*4)))*32)).FpExpr, 0)
+ } else {
+ pRow = exprRowColumn(tls, pParse, int32(iPk))
+ }
+ }
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), pRow)
+
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) >= 0 {
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList,
+ Xsqlite3ExprDup(tls, db, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(*(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)))*32)).FpExpr, 0))
+ } else {
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, exprRowColumn(tls, pParse, i))
+ }
+ }
+
+ updateFromSelect(tls, pParse, ephemTab, pPk, pList, pSrc, pWhere, uintptr(0), uintptr(0))
+ Xsqlite3ExprListDelete(tls, db, pList)
+ eOnePass = ONEPASS_OFF
+ } else {
+ regRec = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ pWInfo = Xsqlite3WhereBegin(tls,
+ pParse, pSrc, pWhere, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_ONEPASS_DESIRED), 0)
+ if pWInfo == uintptr(0) {
+ return
+ }
+
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) >= 0 {
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pChanges+8+uintptr(*(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)))*32)).FpExpr, regArg+2+i)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_VColumn, iCsr, i, regArg+2+i)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_NOCHNG))
+ }
+ }
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iCsr, regArg)
+ if pRowid != 0 {
+ Xsqlite3ExprCode(tls, pParse, pRowid, regArg+1)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iCsr, regArg+1)
+ }
+ } else {
+ var pPk uintptr
+ var iPk I16
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+
+ iPk = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn))
+ Xsqlite3VdbeAddOp3(tls, v, OP_VColumn, iCsr, int32(iPk), regArg)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, regArg+2+int32(iPk), regArg+1)
+ }
+
+ eOnePass = Xsqlite3WhereOkOnePass(tls, pWInfo, bp)
+
+ if eOnePass != 0 {
+ Xsqlite3VdbeChangeToNoop(tls, v, addr)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Close, iCsr)
+ } else {
+ Xsqlite3MultiWrite(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regArg, nArg, regRec)
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, ephemTab, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, ephemTab, regRec, regRowid)
+ }
+ }
+
+ if eOnePass == ONEPASS_OFF {
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc == 1 {
+ Xsqlite3WhereEnd(tls, pWInfo)
+ }
+
+ addr = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, ephemTab)
+
+ for i = 0; i < nArg; i++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, ephemTab, i, regArg+i)
+ }
+ }
+ Xsqlite3VtabMakeWritable(tls, pParse, pTab)
+ Xsqlite3VdbeAddOp4(tls, v, OP_VUpdate, 0, nArg, regArg, pVTab, -11)
+ Xsqlite3VdbeChangeP5(tls, v, func() uint16 {
+ if onError == OE_Default {
+ return uint16(OE_Abort)
+ }
+ return uint16(onError)
+ }())
+ Xsqlite3MayAbort(tls, pParse)
+
+ if eOnePass == ONEPASS_OFF {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, ephemTab, addr+1)
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Close, ephemTab, 0)
+ } else {
+ Xsqlite3WhereEnd(tls, pWInfo)
+ }
+}
+
+func upsertDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ for __ccgo := true; __ccgo; __ccgo = p != 0 {
+ var pNext uintptr = (*Upsert)(unsafe.Pointer(p)).FpNextUpsert
+ Xsqlite3ExprListDelete(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertTarget)
+ Xsqlite3ExprDelete(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertTargetWhere)
+ Xsqlite3ExprListDelete(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertSet)
+ Xsqlite3ExprDelete(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertWhere)
+ Xsqlite3DbFree(tls, db, (*Upsert)(unsafe.Pointer(p)).FpToFree)
+ Xsqlite3DbFree(tls, db, p)
+ p = pNext
+ }
+}
+
+func Xsqlite3UpsertDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ if p != 0 {
+ upsertDelete(tls, db, p)
+ }
+}
+
+// Duplicate an Upsert object.
+func Xsqlite3UpsertDup(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ return Xsqlite3UpsertNew(tls, db,
+ Xsqlite3ExprListDup(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertTarget, 0),
+ Xsqlite3ExprDup(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertTargetWhere, 0),
+ Xsqlite3ExprListDup(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertSet, 0),
+ Xsqlite3ExprDup(tls, db, (*Upsert)(unsafe.Pointer(p)).FpUpsertWhere, 0),
+ Xsqlite3UpsertDup(tls, db, (*Upsert)(unsafe.Pointer(p)).FpNextUpsert))
+}
+
+// Create a new Upsert object.
+func Xsqlite3UpsertNew(tls *libc.TLS, db uintptr, pTarget uintptr, pTargetWhere uintptr, pSet uintptr, pWhere uintptr, pNext uintptr) uintptr {
+ var pNew uintptr
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Upsert{})))
+ if pNew == uintptr(0) {
+ Xsqlite3ExprListDelete(tls, db, pTarget)
+ Xsqlite3ExprDelete(tls, db, pTargetWhere)
+ Xsqlite3ExprListDelete(tls, db, pSet)
+ Xsqlite3ExprDelete(tls, db, pWhere)
+ Xsqlite3UpsertDelete(tls, db, pNext)
+ return uintptr(0)
+ } else {
+ (*Upsert)(unsafe.Pointer(pNew)).FpUpsertTarget = pTarget
+ (*Upsert)(unsafe.Pointer(pNew)).FpUpsertTargetWhere = pTargetWhere
+ (*Upsert)(unsafe.Pointer(pNew)).FpUpsertSet = pSet
+ (*Upsert)(unsafe.Pointer(pNew)).FpUpsertWhere = pWhere
+ (*Upsert)(unsafe.Pointer(pNew)).FisDoUpdate = U8(libc.Bool32(pSet != uintptr(0)))
+ (*Upsert)(unsafe.Pointer(pNew)).FpNextUpsert = pNext
+ }
+ return pNew
+}
+
+// Analyze the ON CONFLICT clause described by pUpsert. Resolve all
+// symbols in the conflict-target.
+//
+// Return SQLITE_OK if everything works, or an error code is something
+// is wrong.
+func Xsqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr, pUpsert uintptr) int32 {
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ var pTab uintptr
+ var rc int32
+ var iCursor int32
+ var pIdx uintptr
+ var pTarget uintptr
+ var pTerm uintptr
+
+ var nClause int32 = 0
+
+ libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(unsafe.Sizeof(NameContext{})), libc.X__builtin_object_size(tls, bp+16, 0))
+ (*NameContext)(unsafe.Pointer(bp + 16)).FpParse = pParse
+ (*NameContext)(unsafe.Pointer(bp + 16)).FpSrcList = pTabList
+__1:
+ if !(pUpsert != 0 && (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget != 0) {
+ goto __3
+ }
+ {
+ rc = Xsqlite3ResolveExprListNames(tls, bp+16, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget)
+ if rc != 0 {
+ return rc
+ }
+ rc = Xsqlite3ResolveExprNames(tls, bp+16, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTargetWhere)
+ if rc != 0 {
+ return rc
+ }
+
+ pTab = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FpTab
+ pTarget = (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget
+ iCursor = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FiCursor
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) &&
+ (*ExprList)(unsafe.Pointer(pTarget)).FnExpr == 1 &&
+ int32((*Expr)(unsafe.Pointer(libc.AssignUintptr(&pTerm, (*ExprList_item)(unsafe.Pointer(pTarget+8)).FpExpr))).Fop) == TK_COLUMN &&
+ int32((*Expr)(unsafe.Pointer(pTerm)).FiColumn) == -1 {
+ goto __2
+ }
+
+ libc.X__builtin___memset_chk(tls, bp+72, 0, uint64(unsafe.Sizeof([2]Expr{})), libc.X__builtin_object_size(tls, bp+72, 0))
+ (*Expr)(unsafe.Pointer(bp + 72)).Fop = U8(TK_COLLATE)
+ (*Expr)(unsafe.Pointer(bp + 72)).FpLeft = bp + 72 + 1*72
+ (*Expr)(unsafe.Pointer(bp + 72 + 1*72)).Fop = U8(TK_COLUMN)
+ (*Expr)(unsafe.Pointer(bp + 72 + 1*72)).FiTable = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FiCursor
+
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var ii int32
+ var jj int32
+ var nn int32
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None) {
+ continue
+ }
+ if (*ExprList)(unsafe.Pointer(pTarget)).FnExpr != int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) {
+ continue
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ if (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTargetWhere == uintptr(0) {
+ continue
+ }
+ if Xsqlite3ExprCompare(tls, pParse, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTargetWhere,
+ (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere, iCursor) != 0 {
+ continue
+ }
+ }
+ nn = int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol)
+ for ii = 0; ii < nn; ii++ {
+ var pExpr uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 72 + 8)) = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(ii)*8))
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(ii)*2))) == -2 {
+ pExpr = (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(ii)*32)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLLATE {
+ (*Expr)(unsafe.Pointer(bp + 72)).FpLeft = pExpr
+ pExpr = bp + 72
+ }
+ } else {
+ (*Expr)(unsafe.Pointer(bp + 72)).FpLeft = bp + 72 + 1*72
+ (*Expr)(unsafe.Pointer(bp + 72 + 1*72)).FiColumn = *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(ii)*2))
+ pExpr = bp + 72
+ }
+ for jj = 0; jj < nn; jj++ {
+ if Xsqlite3ExprCompare(tls, pParse, (*ExprList_item)(unsafe.Pointer(pTarget+8+uintptr(jj)*32)).FpExpr, pExpr, iCursor) < 2 {
+ break
+ }
+ }
+ if jj >= nn {
+ break
+ }
+ }
+ if ii < nn {
+ continue
+ }
+ (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertIdx = pIdx
+ break
+ }
+ if (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertIdx == uintptr(0) {
+ if nClause == 0 && (*Upsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) {
+ *(*int8)(unsafe.Pointer(bp + 216)) = int8(0)
+ } else {
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([16]int8{})), bp+216, ts+21010, libc.VaList(bp, nClause+1))
+ }
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+21014, libc.VaList(bp+8, bp+216))
+ return SQLITE_ERROR
+ }
+
+ }
+ goto __2
+__2:
+ pUpsert = (*Upsert)(unsafe.Pointer(pUpsert)).FpNextUpsert
+ nClause++
+ goto __1
+ goto __3
+__3:
+ ;
+ return SQLITE_OK
+}
+
+// Return true if pUpsert is the last ON CONFLICT clause with a
+// conflict target, or if pUpsert is followed by another ON CONFLICT
+// clause that targets the INTEGER PRIMARY KEY.
+func Xsqlite3UpsertNextIsIPK(tls *libc.TLS, pUpsert uintptr) int32 {
+ var pNext uintptr
+ if pUpsert == uintptr(0) {
+ return 0
+ }
+ pNext = (*Upsert)(unsafe.Pointer(pUpsert)).FpNextUpsert
+ if pNext == uintptr(0) {
+ return 1
+ }
+ if (*Upsert)(unsafe.Pointer(pNext)).FpUpsertTarget == uintptr(0) {
+ return 1
+ }
+ if (*Upsert)(unsafe.Pointer(pNext)).FpUpsertIdx == uintptr(0) {
+ return 1
+ }
+ return 0
+}
+
+// Given the list of ON CONFLICT clauses described by pUpsert, and
+// a particular index pIdx, return a pointer to the particular ON CONFLICT
+// clause that applies to the index. Or, if the index is not subject to
+// any ON CONFLICT clause, return NULL.
+func Xsqlite3UpsertOfIndex(tls *libc.TLS, pUpsert uintptr, pIdx uintptr) uintptr {
+ for pUpsert != 0 &&
+ (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget != uintptr(0) &&
+ (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertIdx != pIdx {
+ pUpsert = (*Upsert)(unsafe.Pointer(pUpsert)).FpNextUpsert
+ }
+ return pUpsert
+}
+
+// Generate bytecode that does an UPDATE as part of an upsert.
+//
+// If pIdx is NULL, then the UNIQUE constraint that failed was the IPK.
+// In this case parameter iCur is a cursor open on the table b-tree that
+// currently points to the conflicting table row. Otherwise, if pIdx
+// is not NULL, then pIdx is the constraint that failed and iCur is a
+// cursor points to the conflicting row.
+func Xsqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab uintptr, pIdx uintptr, iCur int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pSrc uintptr
+ var iDataCur int32
+ var i int32
+ var pTop uintptr = pUpsert
+
+ iDataCur = (*Upsert)(unsafe.Pointer(pUpsert)).FiDataCur
+ pUpsert = Xsqlite3UpsertOfIndex(tls, pTop, pIdx)
+
+ if pIdx != 0 && iCur != iDataCur {
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ var regRowid int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxRowid, iCur, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, iDataCur, 0, regRowid)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid)
+ } else {
+ var pPk uintptr = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ var nPk int32 = int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ var iPk int32 = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPk
+ for i = 0; i < nPk; i++ {
+ var k int32
+
+ k = int32(Xsqlite3TableColumnToIndex(tls, pIdx, *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iCur, k, iPk+i)
+
+ }
+
+ i = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, iDataCur, 0, iPk, nPk)
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_Halt, SQLITE_CORRUPT, OE_Abort, 0,
+ ts+12553, -1)
+ Xsqlite3MayAbort(tls, pParse)
+ Xsqlite3VdbeJumpHere(tls, v, i)
+ }
+ }
+
+ pSrc = Xsqlite3SrcListDup(tls, db, (*Upsert)(unsafe.Pointer(pTop)).FpUpsertSrc, 0)
+
+ for i = 0; i < int32((*Table)(unsafe.Pointer(pTab)).FnCol); i++ {
+ if int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*24)).Faffinity) == SQLITE_AFF_REAL {
+ Xsqlite3VdbeAddOp1(tls, v, OP_RealAffinity, (*Upsert)(unsafe.Pointer(pTop)).FregData+i)
+ }
+ }
+ Xsqlite3Update(tls, pParse, pSrc, Xsqlite3ExprListDup(tls, db, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertSet, 0),
+ Xsqlite3ExprDup(tls, db, (*Upsert)(unsafe.Pointer(pUpsert)).FpUpsertWhere, 0), OE_Abort, uintptr(0), uintptr(0), pUpsert)
+
+}
+
+func execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp, uintptr(0))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ for SQLITE_ROW == libc.AssignInt32(&rc, Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))) {
+ var zSubSql uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+
+ if zSubSql != 0 &&
+ (libc.Xstrncmp(tls, zSubSql, ts+21087, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, ts+21091, uint64(3)) == 0) {
+ rc = execSql(tls, db, pzErrMsg, zSubSql)
+ if rc != SQLITE_OK {
+ break
+ }
+ }
+ }
+
+ if rc == SQLITE_DONE {
+ rc = SQLITE_OK
+ }
+ if rc != 0 {
+ Xsqlite3SetString(tls, pzErrMsg, db, Xsqlite3_errmsg(tls, db))
+ }
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+func execSqlF(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr, va uintptr) int32 {
+ var z uintptr
+ var ap Va_list
+ _ = ap
+ var rc int32
+ ap = va
+ z = Xsqlite3VMPrintf(tls, db, zSql, ap)
+ _ = ap
+ if z == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ rc = execSql(tls, db, pzErrMsg, z)
+ Xsqlite3DbFree(tls, db, z)
+ return rc
+}
+
+// The VACUUM command is used to clean up the database,
+// collapse free space, etc. It is modelled after the VACUUM command
+// in PostgreSQL. The VACUUM command works as follows:
+//
+// (1) Create a new transient database file
+// (2) Copy all content from the database being vacuumed into
+// the new transient database file
+// (3) Copy content from the transient database back into the
+// original database.
+//
+// The transient database requires temporary disk space approximately
+// equal to the size of the original database. The copy operation of
+// step (3) requires additional temporary disk space approximately equal
+// to the size of the original database for the rollback journal.
+// Hence, temporary disk space that is approximately 2x the size of the
+// original database is required. Every page of the database is written
+// approximately 3 times: Once for step (2) and twice for step (3).
+// Two writes per page are required in step (3) because the original
+// database content must be written into the rollback journal prior to
+// overwriting the database with the vacuumed content.
+//
+// Only 1x temporary space and only 1x writes would be required if
+// the copy of step (3) were replaced by deleting the original database
+// and renaming the transient database as the original. But that will
+// not work if other processes are attached to the original database.
+// And a power loss in between deleting the original and renaming the
+// transient would cause the database file to appear to be deleted
+// following reboot.
+func Xsqlite3Vacuum(tls *libc.TLS, pParse uintptr, pNm uintptr, pInto uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = pNm
+
+ var v uintptr
+ var iDb int32
+ var iIntoReg int32
+ v = Xsqlite3GetVdbe(tls, pParse)
+ iDb = 0
+ if !(v == uintptr(0)) {
+ goto __1
+ }
+ goto build_vacuum_end
+__1:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __2
+ }
+ goto build_vacuum_end
+__2:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) {
+ goto __3
+ }
+
+ iDb = Xsqlite3TwoPartName(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp)), bp)
+ if !(iDb < 0) {
+ goto __4
+ }
+ goto build_vacuum_end
+__4:
+ ;
+__3:
+ ;
+ if !(iDb != 1) {
+ goto __5
+ }
+ iIntoReg = 0
+ if !(pInto != 0 && Xsqlite3ResolveSelfReference(tls, pParse, uintptr(0), 0, pInto, uintptr(0)) == 0) {
+ goto __6
+ }
+ iIntoReg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3ExprCode(tls, pParse, pInto, iIntoReg)
+__6:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Vacuum, iDb, iIntoReg)
+ Xsqlite3VdbeUsesBtree(tls, v, iDb)
+__5:
+ ;
+build_vacuum_end:
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pInto)
+ return
+}
+
+// This routine implements the OP_Vacuum opcode of the VDBE.
+func Xsqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, pOut uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var rc int32
+ var pMain uintptr
+ var pTemp uintptr
+ var saved_mDbFlags U32
+ var saved_flags U64
+ var saved_nChange I64
+ var saved_nTotalChange I64
+ var saved_openFlags U32
+ var saved_mTrace U8
+ var pDb uintptr
+ var isMemDb int32
+ var nRes int32
+ var nDb int32
+ var zDbMain uintptr
+ var zOut uintptr
+ var pgflags U32
+ var id uintptr
+
+ var i int32
+ rc = SQLITE_OK
+ pDb = uintptr(0)
+ pgflags = U32(PAGER_SYNCHRONOUS_OFF)
+
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0) {
+ goto __1
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+21095)
+ return SQLITE_ERROR
+__1:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive > 1) {
+ goto __2
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+21135)
+ return SQLITE_ERROR
+__2:
+ ;
+ saved_openFlags = (*Sqlite3)(unsafe.Pointer(db)).FopenFlags
+ if !(pOut != 0) {
+ goto __3
+ }
+ if !(Xsqlite3_value_type(tls, pOut) != SQLITE_TEXT) {
+ goto __5
+ }
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+21178)
+ return SQLITE_ERROR
+__5:
+ ;
+ zOut = Xsqlite3_value_text(tls, pOut)
+ *(*uint32)(unsafe.Pointer(db + 76)) &= libc.Uint32FromInt32(libc.CplInt32(SQLITE_OPEN_READONLY))
+ *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE)
+ goto __4
+__3:
+ zOut = ts + 1547
+__4:
+ ;
+ saved_flags = (*Sqlite3)(unsafe.Pointer(db)).Fflags
+ saved_mDbFlags = (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags
+ saved_nChange = (*Sqlite3)(unsafe.Pointer(db)).FnChange
+ saved_nTotalChange = (*Sqlite3)(unsafe.Pointer(db)).FnTotalChange
+ saved_mTrace = (*Sqlite3)(unsafe.Pointer(db)).FmTrace
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(SQLITE_WriteSchema | SQLITE_IgnoreChecks)
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_PreferBuiltin | DBFLAG_Vacuum)
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_ForeignKeys|SQLITE_ReverseOrder|
+ SQLITE_Defensive) | uint64(0x00001)<<32)
+ (*Sqlite3)(unsafe.Pointer(db)).FmTrace = U8(0)
+
+ zDbMain = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+ pMain = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ isMemDb = Xsqlite3PagerIsMemdb(tls, Xsqlite3BtreePager(tls, pMain))
+
+ nDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb
+ rc = execSqlF(tls, db, pzErrMsg, ts+21196, libc.VaList(bp, zOut))
+ (*Sqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags
+ if !(rc != SQLITE_OK) {
+ goto __6
+ }
+ goto end_of_vacuum
+__6:
+ ;
+ pDb = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(nDb)*32
+
+ pTemp = (*Db)(unsafe.Pointer(pDb)).FpBt
+ if !(pOut != 0) {
+ goto __7
+ }
+ id = Xsqlite3PagerFile(tls, Xsqlite3BtreePager(tls, pTemp))
+ *(*I64)(unsafe.Pointer(bp + 40)) = int64(0)
+ if !((*Sqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (Xsqlite3OsFileSize(tls, id, bp+40) != SQLITE_OK || *(*I64)(unsafe.Pointer(bp + 40)) > int64(0))) {
+ goto __8
+ }
+ rc = SQLITE_ERROR
+ Xsqlite3SetString(tls, pzErrMsg, db, ts+21219)
+ goto end_of_vacuum
+__8:
+ ;
+ *(*U32)(unsafe.Pointer(db + 44)) |= U32(DBFLAG_VacuumInto)
+
+ pgflags = U32(U64((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).Fsafety_level) | (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(PAGER_FLAGS_MASK))
+__7:
+ ;
+ nRes = Xsqlite3BtreeGetRequestedReserve(tls, pMain)
+
+ Xsqlite3BtreeSetCacheSize(tls, pTemp, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FpSchema)).Fcache_size)
+ Xsqlite3BtreeSetSpillSize(tls, pTemp, Xsqlite3BtreeSetSpillSize(tls, pMain, 0))
+ Xsqlite3BtreeSetPagerFlags(tls, pTemp, pgflags|U32(PAGER_CACHESPILL))
+
+ rc = execSql(tls, db, pzErrMsg, ts+14906)
+ if !(rc != SQLITE_OK) {
+ goto __9
+ }
+ goto end_of_vacuum
+__9:
+ ;
+ rc = Xsqlite3BtreeBeginTrans(tls, pMain, func() int32 {
+ if pOut == uintptr(0) {
+ return 2
+ }
+ return 0
+ }(), uintptr(0))
+ if !(rc != SQLITE_OK) {
+ goto __10
+ }
+ goto end_of_vacuum
+__10:
+ ;
+ if !(Xsqlite3PagerGetJournalMode(tls, Xsqlite3BtreePager(tls, pMain)) ==
+ PAGER_JOURNALMODE_WAL &&
+ pOut == uintptr(0)) {
+ goto __11
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize = 0
+__11:
+ ;
+ if !(Xsqlite3BtreeSetPageSize(tls, pTemp, Xsqlite3BtreeGetPageSize(tls, pMain), nRes, 0) != 0 ||
+ !(isMemDb != 0) && Xsqlite3BtreeSetPageSize(tls, pTemp, (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize, nRes, 0) != 0 ||
+ (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __12
+ }
+ rc = SQLITE_NOMEM
+ goto end_of_vacuum
+__12:
+ ;
+ Xsqlite3BtreeSetAutoVacuum(tls, pTemp, func() int32 {
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FnextAutovac) >= 0 {
+ return int32((*Sqlite3)(unsafe.Pointer(db)).FnextAutovac)
+ }
+ return Xsqlite3BtreeGetAutoVacuum(tls, pMain)
+ }())
+
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(nDb)
+ rc = execSqlF(tls, db, pzErrMsg,
+ ts+21246,
+ libc.VaList(bp+8, zDbMain))
+ if !(rc != SQLITE_OK) {
+ goto __13
+ }
+ goto end_of_vacuum
+__13:
+ ;
+ rc = execSqlF(tls, db, pzErrMsg,
+ ts+21354,
+ libc.VaList(bp+16, zDbMain))
+ if !(rc != SQLITE_OK) {
+ goto __14
+ }
+ goto end_of_vacuum
+__14:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(0)
+
+ rc = execSqlF(tls, db, pzErrMsg,
+ ts+21408,
+ libc.VaList(bp+24, zDbMain))
+
+ *(*U32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(libc.CplInt32(DBFLAG_Vacuum))
+ if !(rc != SQLITE_OK) {
+ goto __15
+ }
+ goto end_of_vacuum
+__15:
+ ;
+ rc = execSqlF(tls, db, pzErrMsg,
+ ts+21559,
+ libc.VaList(bp+32, zDbMain))
+ if !(rc != 0) {
+ goto __16
+ }
+ goto end_of_vacuum
+__16:
+ ;
+ i = 0
+__17:
+ if !(i < int32(uint64(unsafe.Sizeof(aCopy))/uint64(unsafe.Sizeof(uint8(0))))) {
+ goto __19
+ }
+
+ Xsqlite3BtreeGetMeta(tls, pMain, int32(aCopy[i]), bp+48)
+ rc = Xsqlite3BtreeUpdateMeta(tls, pTemp, int32(aCopy[i]), *(*U32)(unsafe.Pointer(bp + 48))+U32(aCopy[i+1]))
+ if !(rc != SQLITE_OK) {
+ goto __20
+ }
+ goto end_of_vacuum
+__20:
+ ;
+ goto __18
+__18:
+ i = i + 2
+ goto __17
+ goto __19
+__19:
+ ;
+ if !(pOut == uintptr(0)) {
+ goto __21
+ }
+ rc = Xsqlite3BtreeCopyFile(tls, pMain, pTemp)
+__21:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __22
+ }
+ goto end_of_vacuum
+__22:
+ ;
+ rc = Xsqlite3BtreeCommit(tls, pTemp)
+ if !(rc != SQLITE_OK) {
+ goto __23
+ }
+ goto end_of_vacuum
+__23:
+ ;
+ if !(pOut == uintptr(0)) {
+ goto __24
+ }
+ Xsqlite3BtreeSetAutoVacuum(tls, pMain, Xsqlite3BtreeGetAutoVacuum(tls, pTemp))
+__24:
+ ;
+ if !(pOut == uintptr(0)) {
+ goto __25
+ }
+ nRes = Xsqlite3BtreeGetRequestedReserve(tls, pTemp)
+ rc = Xsqlite3BtreeSetPageSize(tls, pMain, Xsqlite3BtreeGetPageSize(tls, pTemp), nRes, 1)
+__25:
+ ;
+end_of_vacuum:
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FmDbFlags = saved_mDbFlags
+ (*Sqlite3)(unsafe.Pointer(db)).Fflags = saved_flags
+ (*Sqlite3)(unsafe.Pointer(db)).FnChange = saved_nChange
+ (*Sqlite3)(unsafe.Pointer(db)).FnTotalChange = saved_nTotalChange
+ (*Sqlite3)(unsafe.Pointer(db)).FmTrace = saved_mTrace
+ Xsqlite3BtreeSetPageSize(tls, pMain, -1, 0, 1)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+
+ if !(pDb != 0) {
+ goto __26
+ }
+ Xsqlite3BtreeClose(tls, (*Db)(unsafe.Pointer(pDb)).FpBt)
+ (*Db)(unsafe.Pointer(pDb)).FpBt = uintptr(0)
+ (*Db)(unsafe.Pointer(pDb)).FpSchema = uintptr(0)
+__26:
+ ;
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+
+ return rc
+}
+
+var aCopy = [10]uint8{
+ uint8(BTREE_SCHEMA_VERSION), uint8(1),
+ uint8(BTREE_DEFAULT_CACHE_SIZE), uint8(0),
+ uint8(BTREE_TEXT_ENCODING), uint8(0),
+ uint8(BTREE_USER_VERSION), uint8(0),
+ uint8(BTREE_APPLICATION_ID), uint8(0),
+}
+
+// Construct and install a Module object for a virtual table. When this
+// routine is called, it is guaranteed that all appropriate locks are held
+// and the module is not already part of the connection.
+//
+// If there already exists a module with zName, replace it with the new one.
+// If pModule==0, then delete the module zName if it exists.
+func Xsqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) uintptr {
+ var pMod uintptr
+ var pDel uintptr
+ var zCopy uintptr
+ if pModule == uintptr(0) {
+ zCopy = zName
+ pMod = uintptr(0)
+ } else {
+ var nName int32 = Xsqlite3Strlen30(tls, zName)
+ pMod = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(Module{}))+uint64(nName)+uint64(1))
+ if pMod == uintptr(0) {
+ Xsqlite3OomFault(tls, db)
+ return uintptr(0)
+ }
+ zCopy = pMod + 1*48
+ libc.X__builtin___memcpy_chk(tls, zCopy, zName, uint64(nName+1), libc.X__builtin_object_size(tls, zCopy, 0))
+ (*Module)(unsafe.Pointer(pMod)).FzName = zCopy
+ (*Module)(unsafe.Pointer(pMod)).FpModule = pModule
+ (*Module)(unsafe.Pointer(pMod)).FpAux = pAux
+ (*Module)(unsafe.Pointer(pMod)).FxDestroy = xDestroy
+ (*Module)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0)
+ (*Module)(unsafe.Pointer(pMod)).FnRefModule = 1
+ }
+ pDel = Xsqlite3HashInsert(tls, db+576, zCopy, pMod)
+ if pDel != 0 {
+ if pDel == pMod {
+ Xsqlite3OomFault(tls, db)
+ Xsqlite3DbFree(tls, db, pDel)
+ pMod = uintptr(0)
+ } else {
+ Xsqlite3VtabEponymousTableClear(tls, db, pDel)
+ Xsqlite3VtabModuleUnref(tls, db, pDel)
+ }
+ }
+ return pMod
+}
+
+func createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ if rc != SQLITE_OK && xDestroy != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDestroy})).f(tls, pAux)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// External API function used to create a new virtual-table module.
+func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr) int32 {
+ return createModule(tls, db, zName, pModule, pAux, uintptr(0))
+}
+
+// External API function used to create a new virtual-table module.
+func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) int32 {
+ return createModule(tls, db, zName, pModule, pAux, xDestroy)
+}
+
+// External API to drop all virtual-table modules, except those named
+// on the azNames list.
+func Xsqlite3_drop_modules(tls *libc.TLS, db uintptr, azNames uintptr) int32 {
+ var pThis uintptr
+ var pNext uintptr
+ for pThis = (*Hash)(unsafe.Pointer(db + 576)).Ffirst; pThis != 0; pThis = pNext {
+ var pMod uintptr = (*HashElem)(unsafe.Pointer(pThis)).Fdata
+ pNext = (*HashElem)(unsafe.Pointer(pThis)).Fnext
+ if azNames != 0 {
+ var ii int32
+ for ii = 0; *(*uintptr)(unsafe.Pointer(azNames + uintptr(ii)*8)) != uintptr(0) && libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(azNames + uintptr(ii)*8)), (*Module)(unsafe.Pointer(pMod)).FzName) != 0; ii++ {
+ }
+ if *(*uintptr)(unsafe.Pointer(azNames + uintptr(ii)*8)) != uintptr(0) {
+ continue
+ }
+ }
+ createModule(tls, db, (*Module)(unsafe.Pointer(pMod)).FzName, uintptr(0), uintptr(0), uintptr(0))
+ }
+ return SQLITE_OK
+}
+
+// Decrement the reference count on a Module object. Destroy the
+// module when the reference count reaches zero.
+func Xsqlite3VtabModuleUnref(tls *libc.TLS, db uintptr, pMod uintptr) {
+ (*Module)(unsafe.Pointer(pMod)).FnRefModule--
+ if (*Module)(unsafe.Pointer(pMod)).FnRefModule == 0 {
+ if (*Module)(unsafe.Pointer(pMod)).FxDestroy != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Module)(unsafe.Pointer(pMod)).FxDestroy})).f(tls, (*Module)(unsafe.Pointer(pMod)).FpAux)
+ }
+
+ Xsqlite3DbFree(tls, db, pMod)
+ }
+}
+
+// Lock the virtual table so that it cannot be disconnected.
+// Locks nest. Every lock should have a corresponding unlock.
+// If an unlock is omitted, resources leaks will occur.
+//
+// If a disconnect is attempted while a virtual table is locked,
+// the disconnect is deferred until all locks have been removed.
+func Xsqlite3VtabLock(tls *libc.TLS, pVTab uintptr) {
+ (*VTable)(unsafe.Pointer(pVTab)).FnRef++
+}
+
+// pTab is a pointer to a Table structure representing a virtual-table.
+// Return a pointer to the VTable object used by connection db to access
+// this virtual-table, if one has been created, or NULL otherwise.
+func Xsqlite3GetVTable(tls *libc.TLS, db uintptr, pTab uintptr) uintptr {
+ var pVtab uintptr
+
+ for pVtab = *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)); pVtab != 0 && (*VTable)(unsafe.Pointer(pVtab)).Fdb != db; pVtab = (*VTable)(unsafe.Pointer(pVtab)).FpNext {
+ }
+ return pVtab
+}
+
+// Decrement the ref-count on a virtual table object. When the ref-count
+// reaches zero, call the xDisconnect() method to delete the object.
+func Xsqlite3VtabUnlock(tls *libc.TLS, pVTab uintptr) {
+ var db uintptr = (*VTable)(unsafe.Pointer(pVTab)).Fdb
+
+ (*VTable)(unsafe.Pointer(pVTab)).FnRef--
+ if (*VTable)(unsafe.Pointer(pVTab)).FnRef == 0 {
+ var p uintptr = (*VTable)(unsafe.Pointer(pVTab)).FpVtab
+ if p != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer(p)).FpModule)).FxDisconnect})).f(tls, p)
+ }
+ Xsqlite3VtabModuleUnref(tls, (*VTable)(unsafe.Pointer(pVTab)).Fdb, (*VTable)(unsafe.Pointer(pVTab)).FpMod)
+ Xsqlite3DbFree(tls, db, pVTab)
+ }
+}
+
+func vtabDisconnectAll(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ var pRet uintptr = uintptr(0)
+ var pVTable uintptr
+
+ pVTable = *(*uintptr)(unsafe.Pointer(p + 64 + 16))
+ *(*uintptr)(unsafe.Pointer(p + 64 + 16)) = uintptr(0)
+
+ for pVTable != 0 {
+ var db2 uintptr = (*VTable)(unsafe.Pointer(pVTable)).Fdb
+ var pNext uintptr = (*VTable)(unsafe.Pointer(pVTable)).FpNext
+
+ if db2 == db {
+ pRet = pVTable
+ *(*uintptr)(unsafe.Pointer(p + 64 + 16)) = pRet
+ (*VTable)(unsafe.Pointer(pRet)).FpNext = uintptr(0)
+ } else {
+ (*VTable)(unsafe.Pointer(pVTable)).FpNext = (*Sqlite3)(unsafe.Pointer(db2)).FpDisconnect
+ (*Sqlite3)(unsafe.Pointer(db2)).FpDisconnect = pVTable
+ }
+ pVTable = pNext
+ }
+
+ return pRet
+}
+
+// Table *p is a virtual table. This function removes the VTable object
+// for table *p associated with database connection db from the linked
+// list in p->pVTab. It also decrements the VTable ref count. This is
+// used when closing database connection db to free all of its VTable
+// objects without disturbing the rest of the Schema object (which may
+// be being used by other shared-cache connections).
+func Xsqlite3VtabDisconnect(tls *libc.TLS, db uintptr, p uintptr) {
+ var ppVTab uintptr
+
+ for ppVTab = p + 64 + 16; *(*uintptr)(unsafe.Pointer(ppVTab)) != 0; ppVTab = *(*uintptr)(unsafe.Pointer(ppVTab)) + 40 {
+ if (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppVTab)))).Fdb == db {
+ var pVTab uintptr = *(*uintptr)(unsafe.Pointer(ppVTab))
+ *(*uintptr)(unsafe.Pointer(ppVTab)) = (*VTable)(unsafe.Pointer(pVTab)).FpNext
+ Xsqlite3VtabUnlock(tls, pVTab)
+ break
+ }
+ }
+}
+
+// Disconnect all the virtual table objects in the sqlite3.pDisconnect list.
+//
+// This function may only be called when the mutexes associated with all
+// shared b-tree databases opened using connection db are held by the
+// caller. This is done to protect the sqlite3.pDisconnect list. The
+// sqlite3.pDisconnect list is accessed only as follows:
+//
+// 1. By this function. In this case, all BtShared mutexes and the mutex
+// associated with the database handle itself must be held.
+//
+// 2. By function vtabDisconnectAll(), when it adds a VTable entry to
+// the sqlite3.pDisconnect list. In this case either the BtShared mutex
+// associated with the database the virtual table is stored in is held
+// or, if the virtual table is stored in a non-sharable database, then
+// the database handle mutex is held.
+//
+// As a result, a sqlite3.pDisconnect cannot be accessed simultaneously
+// by multiple threads. It is thread-safe.
+func Xsqlite3VtabUnlockList(tls *libc.TLS, db uintptr) {
+ var p uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpDisconnect
+
+ if p != 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FpDisconnect = uintptr(0)
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ for __ccgo := true; __ccgo; __ccgo = p != 0 {
+ var pNext uintptr = (*VTable)(unsafe.Pointer(p)).FpNext
+ Xsqlite3VtabUnlock(tls, p)
+ p = pNext
+ }
+ }
+}
+
+// Clear any and all virtual-table information from the Table record.
+// This routine is called, for example, just before deleting the Table
+// record.
+//
+// Since it is a virtual-table, the Table structure contains a pointer
+// to the head of a linked list of VTable structures. Each VTable
+// structure is associated with a single sqlite3* user of the schema.
+// The reference count of the VTable structure associated with database
+// connection db is decremented immediately (which may lead to the
+// structure being xDisconnected and free). Any other VTable structures
+// in the list are moved to the sqlite3.pDisconnect list of the associated
+// database connection.
+func Xsqlite3VtabClear(tls *libc.TLS, db uintptr, p uintptr) {
+ if (*Sqlite3)(unsafe.Pointer(db)).FpnBytesFreed == uintptr(0) {
+ vtabDisconnectAll(tls, uintptr(0), p)
+ }
+ if *(*uintptr)(unsafe.Pointer(p + 64 + 8)) != 0 {
+ var i int32
+ for i = 0; i < *(*int32)(unsafe.Pointer(p + 64)); i++ {
+ if i != 1 {
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64 + 8)) + uintptr(i)*8)))
+ }
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(p + 64 + 8)))
+ }
+}
+
+func addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var nBytes Sqlite3_int64
+ var azModuleArg uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ nBytes = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64(2+*(*int32)(unsafe.Pointer(pTable + 64))))
+ if *(*int32)(unsafe.Pointer(pTable + 64))+3 >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+12780, libc.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName))
+ }
+ azModuleArg = Xsqlite3DbRealloc(tls, db, *(*uintptr)(unsafe.Pointer(pTable + 64 + 8)), uint64(nBytes))
+ if azModuleArg == uintptr(0) {
+ Xsqlite3DbFree(tls, db, zArg)
+ } else {
+ var i int32 = libc.PostIncInt32(&*(*int32)(unsafe.Pointer(pTable + 64)), 1)
+ *(*uintptr)(unsafe.Pointer(azModuleArg + uintptr(i)*8)) = zArg
+ *(*uintptr)(unsafe.Pointer(azModuleArg + uintptr(i+1)*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pTable + 64 + 8)) = azModuleArg
+ }
+}
+
+// The parser calls this routine when it first sees a CREATE VIRTUAL TABLE
+// statement. The module name has been parsed, but the optional list
+// of parameters that follow the module name are still pending.
+func Xsqlite3VtabBeginParse(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 uintptr, pModuleName uintptr, ifNotExists int32) {
+ var pTable uintptr
+ var db uintptr
+
+ Xsqlite3StartTable(tls, pParse, pName1, pName2, 0, 0, 1, ifNotExists)
+ pTable = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ if pTable == uintptr(0) {
+ return
+ }
+
+ (*Table)(unsafe.Pointer(pTable)).FeTabType = U8(TABTYP_VTAB)
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ addModuleArgument(tls, pParse, pTable, Xsqlite3NameFromToken(tls, db, pModuleName))
+ addModuleArgument(tls, pParse, pTable, uintptr(0))
+ addModuleArgument(tls, pParse, pTable, Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pTable)).FzName))
+
+ (*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32((int64((*Token)(unsafe.Pointer(pModuleName)).Fz+uintptr((*Token)(unsafe.Pointer(pModuleName)).Fn)) - int64((*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) / 1))
+
+ if *(*uintptr)(unsafe.Pointer(pTable + 64 + 8)) != 0 {
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTable)).FpSchema)
+
+ Xsqlite3AuthCheck(tls, pParse, SQLITE_CREATE_VTABLE, (*Table)(unsafe.Pointer(pTable)).FzName,
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTable + 64 + 8)))), (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FaDb+uintptr(iDb)*32)).FzDbSName)
+ }
+}
+
+func addArgumentToVtab(tls *libc.TLS, pParse uintptr) {
+ if (*Parse)(unsafe.Pointer(pParse)).FsArg.Fz != 0 && (*Parse)(unsafe.Pointer(pParse)).FpNewTable != 0 {
+ var z uintptr = (*Parse)(unsafe.Pointer(pParse)).FsArg.Fz
+ var n int32 = int32((*Parse)(unsafe.Pointer(pParse)).FsArg.Fn)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ addModuleArgument(tls, pParse, (*Parse)(unsafe.Pointer(pParse)).FpNewTable, Xsqlite3DbStrNDup(tls, db, z, uint64(n)))
+ }
+}
+
+// The parser calls this routine after the CREATE VIRTUAL TABLE statement
+// has been completely parsed.
+func Xsqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pTab uintptr = (*Parse)(unsafe.Pointer(pParse)).FpNewTable
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+
+ if pTab == uintptr(0) {
+ return
+ }
+
+ addArgumentToVtab(tls, pParse)
+ (*Parse)(unsafe.Pointer(pParse)).FsArg.Fz = uintptr(0)
+ if *(*int32)(unsafe.Pointer(pTab + 64)) < 1 {
+ return
+ }
+
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) != 0) {
+ var zStmt uintptr
+ var zWhere uintptr
+ var iDb int32
+ var iReg int32
+ var v uintptr
+
+ Xsqlite3MayAbort(tls, pParse)
+
+ if pEnd != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32((int64((*Token)(unsafe.Pointer(pEnd)).Fz)-int64((*Parse)(unsafe.Pointer(pParse)).FsNameToken.Fz))/1)) + (*Token)(unsafe.Pointer(pEnd)).Fn
+ }
+ zStmt = Xsqlite3MPrintf(tls, db, ts+21689, libc.VaList(bp, pParse+272))
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ Xsqlite3NestedParse(tls, pParse,
+ ts+21713,
+ libc.VaList(bp+8, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName,
+ (*Table)(unsafe.Pointer(pTab)).FzName,
+ (*Table)(unsafe.Pointer(pTab)).FzName,
+ zStmt,
+ (*Parse)(unsafe.Pointer(pParse)).FregRowid))
+ v = Xsqlite3GetVdbe(tls, pParse)
+ Xsqlite3ChangeCookie(tls, pParse, iDb)
+
+ Xsqlite3VdbeAddOp0(tls, v, OP_Expire)
+ zWhere = Xsqlite3MPrintf(tls, db, ts+21812, libc.VaList(bp+48, (*Table)(unsafe.Pointer(pTab)).FzName, zStmt))
+ Xsqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0))
+ Xsqlite3DbFree(tls, db, zStmt)
+
+ iReg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeLoadString(tls, v, iReg, (*Table)(unsafe.Pointer(pTab)).FzName)
+ Xsqlite3VdbeAddOp2(tls, v, OP_VCreate, iDb, iReg)
+ } else {
+ var pOld uintptr
+ var pSchema uintptr = (*Table)(unsafe.Pointer(pTab)).FpSchema
+ var zName uintptr = (*Table)(unsafe.Pointer(pTab)).FzName
+
+ Xsqlite3MarkAllShadowTablesOf(tls, db, pTab)
+ pOld = Xsqlite3HashInsert(tls, pSchema+8, zName, pTab)
+ if pOld != 0 {
+ Xsqlite3OomFault(tls, db)
+
+ return
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FpNewTable = uintptr(0)
+ }
+}
+
+// The parser calls this routine when it sees the first token
+// of an argument to the module name in a CREATE VIRTUAL TABLE statement.
+func Xsqlite3VtabArgInit(tls *libc.TLS, pParse uintptr) {
+ addArgumentToVtab(tls, pParse)
+ (*Parse)(unsafe.Pointer(pParse)).FsArg.Fz = uintptr(0)
+ (*Parse)(unsafe.Pointer(pParse)).FsArg.Fn = uint32(0)
+}
+
+// The parser calls this routine for each token after the first token
+// in an argument to the module name in a CREATE VIRTUAL TABLE statement.
+func Xsqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) {
+ var pArg uintptr = pParse + 384
+ if (*Token)(unsafe.Pointer(pArg)).Fz == uintptr(0) {
+ (*Token)(unsafe.Pointer(pArg)).Fz = (*Token)(unsafe.Pointer(p)).Fz
+ (*Token)(unsafe.Pointer(pArg)).Fn = (*Token)(unsafe.Pointer(p)).Fn
+ } else {
+ (*Token)(unsafe.Pointer(pArg)).Fn = uint32(int32((int64((*Token)(unsafe.Pointer(p)).Fz+uintptr((*Token)(unsafe.Pointer(p)).Fn)) - int64((*Token)(unsafe.Pointer(pArg)).Fz)) / 1))
+ }
+}
+
+func vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var pVTable uintptr
+ var rc int32
+ var azArg uintptr
+ var nArg int32 = *(*int32)(unsafe.Pointer(pTab + 64))
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ var zModuleName uintptr
+ var iDb int32
+ var pCtx uintptr
+
+ azArg = *(*uintptr)(unsafe.Pointer(pTab + 64 + 8))
+
+ for pCtx = (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx; pCtx != 0; pCtx = (*VtabCtx)(unsafe.Pointer(pCtx)).FpPrior {
+ if (*VtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db,
+ ts+21831, libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName))
+ return SQLITE_LOCKED
+ }
+ }
+
+ zModuleName = Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pTab)).FzName)
+ if !(zModuleName != 0) {
+ return SQLITE_NOMEM
+ }
+
+ pVTable = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(VTable{})))
+ if !(pVTable != 0) {
+ Xsqlite3OomFault(tls, db)
+ Xsqlite3DbFree(tls, db, zModuleName)
+ return SQLITE_NOMEM
+ }
+ (*VTable)(unsafe.Pointer(pVTable)).Fdb = db
+ (*VTable)(unsafe.Pointer(pVTable)).FpMod = pMod
+ (*VTable)(unsafe.Pointer(pVTable)).FeVtabRisk = U8(SQLITE_VTABRISK_Normal)
+
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8)) + 1*8)) = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FzDbSName
+
+ (*VtabCtx)(unsafe.Pointer(bp + 32)).FpTab = pTab
+ (*VtabCtx)(unsafe.Pointer(bp + 32)).FpVTable = pVTable
+ (*VtabCtx)(unsafe.Pointer(bp + 32)).FpPrior = (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx
+ (*VtabCtx)(unsafe.Pointer(bp + 32)).FbDeclared = 0
+ (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp + 32
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xConstruct})).f(tls, db, (*Module)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+64)
+ (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*VtabCtx)(unsafe.Pointer(bp + 32)).FpPrior
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, db)
+ }
+
+ if SQLITE_OK != rc {
+ if *(*uintptr)(unsafe.Pointer(bp + 64)) == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+21873, libc.VaList(bp+8, zModuleName))
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+3658, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 64))))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ }
+ Xsqlite3DbFree(tls, db, pVTable)
+ } else if (*VTable)(unsafe.Pointer(pVTable)).FpVtab != 0 {
+ libc.X__builtin___memset_chk(tls, (*VTable)(unsafe.Pointer(pVTable)).FpVtab, 0, uint64(unsafe.Sizeof(Sqlite3_vtab{})), libc.X__builtin_object_size(tls, (*VTable)(unsafe.Pointer(pVTable)).FpVtab, 0))
+ (*Sqlite3_vtab)(unsafe.Pointer((*VTable)(unsafe.Pointer(pVTable)).FpVtab)).FpModule = (*Module)(unsafe.Pointer(pMod)).FpModule
+ (*Module)(unsafe.Pointer(pMod)).FnRefModule++
+ (*VTable)(unsafe.Pointer(pVTable)).FnRef = 1
+ if (*VtabCtx)(unsafe.Pointer(bp+32)).FbDeclared == 0 {
+ var zFormat uintptr = ts + 21903
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+24, (*Table)(unsafe.Pointer(pTab)).FzName))
+ Xsqlite3VtabUnlock(tls, pVTable)
+ rc = SQLITE_ERROR
+ } else {
+ var iCol int32
+ var oooHidden U16 = U16(0)
+
+ (*VTable)(unsafe.Pointer(pVTable)).FpNext = *(*uintptr)(unsafe.Pointer(pTab + 64 + 16))
+ *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) = pVTable
+
+ for iCol = 0; iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol); iCol++ {
+ var zType uintptr = Xsqlite3ColumnType(tls, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*24, ts+1547)
+ var nType int32
+ var i int32 = 0
+ nType = Xsqlite3Strlen30(tls, zType)
+ for i = 0; i < nType; i++ {
+ if 0 == Xsqlite3_strnicmp(tls, ts+16564, zType+uintptr(i), 6) &&
+ (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-1)))) == ' ') &&
+ (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+6)))) == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+6)))) == ' ') {
+ break
+ }
+ }
+ if i < nType {
+ var j int32
+ var nDel int32 = 6 + func() int32 {
+ if *(*int8)(unsafe.Pointer(zType + uintptr(i+6))) != 0 {
+ return 1
+ }
+ return 0
+ }()
+ for j = i; j+nDel <= nType; j++ {
+ *(*int8)(unsafe.Pointer(zType + uintptr(j))) = *(*int8)(unsafe.Pointer(zType + uintptr(j+nDel)))
+ }
+ if int32(*(*int8)(unsafe.Pointer(zType + uintptr(i)))) == 0 && i > 0 {
+ *(*int8)(unsafe.Pointer(zType + uintptr(i-1))) = int8(0)
+ }
+ *(*U16)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24 + 16)) |= U16(COLFLAG_HIDDEN)
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_HasHidden)
+ oooHidden = U16(TF_OOOHidden)
+ } else {
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(oooHidden)
+ }
+ }
+ }
+ }
+
+ Xsqlite3DbFree(tls, db, zModuleName)
+ return rc
+}
+
+// This function is invoked by the parser to call the xConnect() method
+// of the virtual table pTab. If an error occurs, an error code is returned
+// and an error left in pParse.
+//
+// This call is a no-op if table pTab is not a virtual table.
+func Xsqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var zMod uintptr
+ var pMod uintptr
+ var rc int32
+
+ if Xsqlite3GetVTable(tls, db, pTab) != 0 {
+ return SQLITE_OK
+ }
+
+ zMod = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8))))
+ pMod = Xsqlite3HashFind(tls, db+576, zMod)
+
+ if !(pMod != 0) {
+ var zModule uintptr = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8))))
+ Xsqlite3ErrorMsg(tls, pParse, ts+21949, libc.VaList(bp, zModule))
+ rc = SQLITE_ERROR
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp+16)
+ if rc != SQLITE_OK {
+ Xsqlite3ErrorMsg(tls, pParse, ts+3658, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 16))))
+ (*Parse)(unsafe.Pointer(pParse)).Frc = rc
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+
+ return rc
+}
+
+func growVTrans(tls *libc.TLS, db uintptr) int32 {
+ var ARRAY_INCR int32 = 5
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVTrans%ARRAY_INCR == 0 {
+ var aVTrans uintptr
+ var nBytes Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64(Sqlite3_int64((*Sqlite3)(unsafe.Pointer(db)).FnVTrans)+Sqlite3_int64(ARRAY_INCR)))
+ aVTrans = Xsqlite3DbRealloc(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FaVTrans, uint64(nBytes))
+ if !(aVTrans != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, aVTrans+uintptr((*Sqlite3)(unsafe.Pointer(db)).FnVTrans)*8, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(ARRAY_INCR), libc.X__builtin_object_size(tls, aVTrans+uintptr((*Sqlite3)(unsafe.Pointer(db)).FnVTrans)*8, 0))
+ (*Sqlite3)(unsafe.Pointer(db)).FaVTrans = aVTrans
+ }
+
+ return SQLITE_OK
+}
+
+func addToVTrans(tls *libc.TLS, db uintptr, pVTab uintptr) {
+ *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaVTrans + uintptr(libc.PostIncInt32(&(*Sqlite3)(unsafe.Pointer(db)).FnVTrans, 1))*8)) = pVTab
+ Xsqlite3VtabLock(tls, pVTab)
+}
+
+// This function is invoked by the vdbe to call the xCreate method
+// of the virtual table named zTab in database iDb.
+//
+// If an error occurs, *pzErr is set to point to an English language
+// description of the error and an SQLITE_XXX error code is returned.
+// In this case the caller must call sqlite3DbFree(db, ) on *pzErr.
+func Xsqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var pTab uintptr
+ var pMod uintptr
+ var zMod uintptr
+
+ pTab = Xsqlite3FindTable(tls, db, zTab, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+
+ zMod = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTab + 64 + 8))))
+ pMod = Xsqlite3HashFind(tls, db+576, zMod)
+
+ if pMod == uintptr(0) || (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3MPrintf(tls, db, ts+21949, libc.VaList(bp, zMod))
+ rc = SQLITE_ERROR
+ } else {
+ rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr)
+ }
+
+ if rc == SQLITE_OK && Xsqlite3GetVTable(tls, db, pTab) != 0 {
+ rc = growVTrans(tls, db)
+ if rc == SQLITE_OK {
+ addToVTrans(tls, db, Xsqlite3GetVTable(tls, db, pTab))
+ }
+ }
+
+ return rc
+}
+
+// This function is used to set the schema of a virtual table. It is only
+// valid to call this function from within the xCreate() or xConnect() of a
+// virtual table module.
+func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) int32 {
+ bp := tls.Alloc(432)
+ defer tls.Free(432)
+
+ var pCtx uintptr
+ var rc int32 = SQLITE_OK
+ var pTab uintptr
+
+ var initBusy int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pCtx = (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx
+ if !(pCtx != 0) || (*VtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 {
+ Xsqlite3Error(tls, db, SQLITE_MISUSE)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return Xsqlite3MisuseError(tls, 151030)
+ }
+ pTab = (*VtabCtx)(unsafe.Pointer(pCtx)).FpTab
+
+ Xsqlite3ParseObjectInit(tls, bp+8, db)
+ (*Parse)(unsafe.Pointer(bp + 8)).FeParseMode = U8(PARSE_MODE_DECLARE_VTAB)
+ (*Parse)(unsafe.Pointer(bp + 8)).FdisableTriggers = U8(1)
+
+ initBusy = int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(0)
+ (*Parse)(unsafe.Pointer(bp + 8)).FnQueryLoop = U32(1)
+ if SQLITE_OK == Xsqlite3RunParser(tls, bp+8, zCreateTable) &&
+ (*Parse)(unsafe.Pointer(bp+8)).FpNewTable != uintptr(0) &&
+ !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) &&
+ int32((*Table)(unsafe.Pointer((*Parse)(unsafe.Pointer(bp+8)).FpNewTable)).FeTabType) == TABTYP_NORM {
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FaCol) != 0) {
+ var pNew uintptr = (*Parse)(unsafe.Pointer(bp + 8)).FpNewTable
+ var pIdx uintptr
+ (*Table)(unsafe.Pointer(pTab)).FaCol = (*Table)(unsafe.Pointer(pNew)).FaCol
+ Xsqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(pNew + 64 + 16)))
+ (*Table)(unsafe.Pointer(pTab)).FnNVCol = libc.AssignPtrInt16(pTab+54, (*Table)(unsafe.Pointer(pNew)).FnCol)
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= (*Table)(unsafe.Pointer(pNew)).FtabFlags & U32(TF_WithoutRowid|TF_NoVisibleRowid)
+ (*Table)(unsafe.Pointer(pNew)).FnCol = int16(0)
+ (*Table)(unsafe.Pointer(pNew)).FaCol = uintptr(0)
+
+ if !((*Table)(unsafe.Pointer(pNew)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) &&
+ (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer((*VtabCtx)(unsafe.Pointer(pCtx)).FpVTable)).FpMod)).FpModule)).FxUpdate != uintptr(0) &&
+ int32((*Index)(unsafe.Pointer(Xsqlite3PrimaryKeyIndex(tls, pNew))).FnKeyCol) != 1 {
+ rc = SQLITE_ERROR
+ }
+ pIdx = (*Table)(unsafe.Pointer(pNew)).FpIndex
+ if pIdx != 0 {
+ (*Table)(unsafe.Pointer(pTab)).FpIndex = pIdx
+ (*Table)(unsafe.Pointer(pNew)).FpIndex = uintptr(0)
+ (*Index)(unsafe.Pointer(pIdx)).FpTable = pTab
+ }
+ }
+ (*VtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = 1
+ } else {
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_ERROR,
+ func() uintptr {
+ if (*Parse)(unsafe.Pointer(bp+8)).FzErrMsg != 0 {
+ return ts + 3658
+ }
+ return uintptr(0)
+ }(), libc.VaList(bp, (*Parse)(unsafe.Pointer(bp+8)).FzErrMsg))
+ Xsqlite3DbFree(tls, db, (*Parse)(unsafe.Pointer(bp+8)).FzErrMsg)
+ rc = SQLITE_ERROR
+ }
+ (*Parse)(unsafe.Pointer(bp + 8)).FeParseMode = U8(PARSE_MODE_NORMAL)
+
+ if (*Parse)(unsafe.Pointer(bp+8)).FpVdbe != 0 {
+ Xsqlite3VdbeFinalize(tls, (*Parse)(unsafe.Pointer(bp+8)).FpVdbe)
+ }
+ Xsqlite3DeleteTable(tls, db, (*Parse)(unsafe.Pointer(bp+8)).FpNewTable)
+ Xsqlite3ParseObjectReset(tls, bp+8)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(initBusy)
+
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// This function is invoked by the vdbe to call the xDestroy method
+// of the virtual table named zTab in database iDb. This occurs
+// when a DROP TABLE is mentioned.
+//
+// This call is a no-op if zTab is not a virtual table.
+func Xsqlite3VtabCallDestroy(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pTab uintptr
+
+ pTab = Xsqlite3FindTable(tls, db, zTab, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(iDb)*32)).FzDbSName)
+ if pTab != uintptr(0) &&
+ int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB &&
+ *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) != uintptr(0) {
+ var p uintptr
+ var xDestroy uintptr
+ for p = *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)); p != 0; p = (*VTable)(unsafe.Pointer(p)).FpNext {
+ if (*Sqlite3_vtab)(unsafe.Pointer((*VTable)(unsafe.Pointer(p)).FpVtab)).FnRef > 0 {
+ return SQLITE_LOCKED
+ }
+ }
+ p = vtabDisconnectAll(tls, db, pTab)
+ xDestroy = (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer(p)).FpMod)).FpModule)).FxDestroy
+ if xDestroy == uintptr(0) {
+ xDestroy = (*Sqlite3_module)(unsafe.Pointer((*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer(p)).FpMod)).FpModule)).FxDisconnect
+ }
+
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef++
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xDestroy})).f(tls, (*VTable)(unsafe.Pointer(p)).FpVtab)
+
+ if rc == SQLITE_OK {
+ (*VTable)(unsafe.Pointer(p)).FpVtab = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pTab + 64 + 16)) = uintptr(0)
+ Xsqlite3VtabUnlock(tls, p)
+ }
+ Xsqlite3DeleteTable(tls, db, pTab)
+ }
+
+ return rc
+}
+
+func callFinaliser(tls *libc.TLS, db uintptr, offset int32) {
+ var i int32
+ if (*Sqlite3)(unsafe.Pointer(db)).FaVTrans != 0 {
+ var aVTrans uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaVTrans
+ (*Sqlite3)(unsafe.Pointer(db)).FaVTrans = uintptr(0)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnVTrans; i++ {
+ var pVTab uintptr = *(*uintptr)(unsafe.Pointer(aVTrans + uintptr(i)*8))
+ var p uintptr = (*VTable)(unsafe.Pointer(pVTab)).FpVtab
+ if p != 0 {
+ var x uintptr
+ x = *(*uintptr)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer(p)).FpModule + uintptr(offset)))
+ if x != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, p)
+ }
+ }
+ (*VTable)(unsafe.Pointer(pVTab)).FiSavepoint = 0
+ Xsqlite3VtabUnlock(tls, pVTab)
+ }
+ Xsqlite3DbFree(tls, db, aVTrans)
+ (*Sqlite3)(unsafe.Pointer(db)).FnVTrans = 0
+ }
+}
+
+// Invoke the xSync method of all virtual tables in the sqlite3.aVTrans
+// array. Return the error code for the first error that occurs, or
+// SQLITE_OK if all xSync operations are successful.
+//
+// If an error message is available, leave it in p->zErrMsg.
+func Xsqlite3VtabSync(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ var i int32
+ var rc int32 = SQLITE_OK
+ var aVTrans uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaVTrans
+
+ (*Sqlite3)(unsafe.Pointer(db)).FaVTrans = uintptr(0)
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnVTrans; i++ {
+ var x uintptr
+ var pVtab uintptr = (*VTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aVTrans + uintptr(i)*8)))).FpVtab
+ if pVtab != 0 && libc.AssignUintptr(&x, (*Sqlite3_module)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FpModule)).FxSync) != uintptr(0) {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{x})).f(tls, pVtab)
+ Xsqlite3VtabImportErrmsg(tls, p, pVtab)
+ }
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FaVTrans = aVTrans
+ return rc
+}
+
+// Invoke the xRollback method of all virtual tables in the
+// sqlite3.aVTrans array. Then clear the array itself.
+func Xsqlite3VtabRollback(tls *libc.TLS, db uintptr) int32 {
+ callFinaliser(tls, db, int32(uintptr(0)+136))
+ return SQLITE_OK
+}
+
+// Invoke the xCommit method of all virtual tables in the
+// sqlite3.aVTrans array. Then clear the array itself.
+func Xsqlite3VtabCommit(tls *libc.TLS, db uintptr) int32 {
+ callFinaliser(tls, db, int32(uintptr(0)+128))
+ return SQLITE_OK
+}
+
+// If the virtual table pVtab supports the transaction interface
+// (xBegin/xRollback/xCommit and optionally xSync) and a transaction is
+// not currently open, invoke the xBegin method now.
+//
+// If the xBegin call is successful, place the sqlite3_vtab pointer
+// in the sqlite3.aVTrans array.
+func Xsqlite3VtabBegin(tls *libc.TLS, db uintptr, pVTab uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pModule uintptr
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVTrans > 0 && (*Sqlite3)(unsafe.Pointer(db)).FaVTrans == uintptr(0) {
+ return SQLITE_LOCKED
+ }
+ if !(pVTab != 0) {
+ return SQLITE_OK
+ }
+ pModule = (*Sqlite3_vtab)(unsafe.Pointer((*VTable)(unsafe.Pointer(pVTab)).FpVtab)).FpModule
+
+ if (*Sqlite3_module)(unsafe.Pointer(pModule)).FxBegin != 0 {
+ var i int32
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnVTrans; i++ {
+ if *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaVTrans + uintptr(i)*8)) == pVTab {
+ return SQLITE_OK
+ }
+ }
+
+ rc = growVTrans(tls, db)
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule)).FxBegin})).f(tls, (*VTable)(unsafe.Pointer(pVTab)).FpVtab)
+ if rc == SQLITE_OK {
+ var iSvpt int32 = (*Sqlite3)(unsafe.Pointer(db)).FnStatement + (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint
+ addToVTrans(tls, db, pVTab)
+ if iSvpt != 0 && (*Sqlite3_module)(unsafe.Pointer(pModule)).FxSavepoint != 0 {
+ (*VTable)(unsafe.Pointer(pVTab)).FiSavepoint = iSvpt
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pModule)).FxSavepoint})).f(tls, (*VTable)(unsafe.Pointer(pVTab)).FpVtab, iSvpt-1)
+ }
+ }
+ }
+ }
+ return rc
+}
+
+// Invoke either the xSavepoint, xRollbackTo or xRelease method of all
+// virtual tables that currently have an open transaction. Pass iSavepoint
+// as the second argument to the virtual table method invoked.
+//
+// If op is SAVEPOINT_BEGIN, the xSavepoint method is invoked. If it is
+// SAVEPOINT_ROLLBACK, the xRollbackTo method. Otherwise, if op is
+// SAVEPOINT_RELEASE, then the xRelease method of each virtual table with
+// an open transaction is invoked.
+//
+// If any virtual table method returns an error code other than SQLITE_OK,
+// processing is abandoned and the error returned to the caller of this
+// function immediately. If all calls to virtual table methods are successful,
+// SQLITE_OK is returned.
+func Xsqlite3VtabSavepoint(tls *libc.TLS, db uintptr, op int32, iSavepoint int32) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FaVTrans != 0 {
+ var i int32
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnVTrans; i++ {
+ var pVTab uintptr = *(*uintptr)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaVTrans + uintptr(i)*8))
+ var pMod uintptr = (*Module)(unsafe.Pointer((*VTable)(unsafe.Pointer(pVTab)).FpMod)).FpModule
+ if (*VTable)(unsafe.Pointer(pVTab)).FpVtab != 0 && (*Sqlite3_module)(unsafe.Pointer(pMod)).FiVersion >= 2 {
+ var xMethod uintptr
+ Xsqlite3VtabLock(tls, pVTab)
+ switch op {
+ case SAVEPOINT_BEGIN:
+ xMethod = (*Sqlite3_module)(unsafe.Pointer(pMod)).FxSavepoint
+ (*VTable)(unsafe.Pointer(pVTab)).FiSavepoint = iSavepoint + 1
+ break
+ fallthrough
+ case SAVEPOINT_ROLLBACK:
+ xMethod = (*Sqlite3_module)(unsafe.Pointer(pMod)).FxRollbackTo
+ break
+ fallthrough
+ default:
+ xMethod = (*Sqlite3_module)(unsafe.Pointer(pMod)).FxRelease
+ break
+ }
+ if xMethod != 0 && (*VTable)(unsafe.Pointer(pVTab)).FiSavepoint > iSavepoint {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xMethod})).f(tls, (*VTable)(unsafe.Pointer(pVTab)).FpVtab, iSavepoint)
+ }
+ Xsqlite3VtabUnlock(tls, pVTab)
+ }
+ }
+ }
+ return rc
+}
+
+// The first parameter (pDef) is a function implementation. The
+// second parameter (pExpr) is the first argument to this function.
+// If pExpr is a column in a virtual table, then let the virtual
+// table implementation have an opportunity to overload the function.
+//
+// This routine is used to allow virtual table implementations to
+// overload MATCH, LIKE, GLOB, and REGEXP operators.
+//
+// Return either the pDef argument (indicating no change) or a
+// new FuncDef structure that is marked as ephemeral using the
+// SQLITE_FUNC_EPHEM flag.
+func Xsqlite3VtabOverloadFunction(tls *libc.TLS, db uintptr, pDef uintptr, nArg int32, pExpr uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr
+ var pVtab uintptr
+ var pMod uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var pNew uintptr
+ var rc int32 = 0
+
+ if pExpr == uintptr(0) {
+ return pDef
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN {
+ return pDef
+ }
+
+ pTab = *(*uintptr)(unsafe.Pointer(pExpr + 64))
+ if pTab == uintptr(0) {
+ return pDef
+ }
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ return pDef
+ }
+ pVtab = (*VTable)(unsafe.Pointer(Xsqlite3GetVTable(tls, db, pTab))).FpVtab
+
+ pMod = (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FpModule
+ if (*Sqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction == uintptr(0) {
+ return pDef
+ }
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction})).f(tls, pVtab, nArg, (*FuncDef)(unsafe.Pointer(pDef)).FzName, bp, bp+8)
+ if rc == 0 {
+ return pDef
+ }
+
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(FuncDef{}))+
+ uint64(Xsqlite3Strlen30(tls, (*FuncDef)(unsafe.Pointer(pDef)).FzName))+uint64(1))
+ if pNew == uintptr(0) {
+ return pDef
+ }
+ *(*FuncDef)(unsafe.Pointer(pNew)) = *(*FuncDef)(unsafe.Pointer(pDef))
+ (*FuncDef)(unsafe.Pointer(pNew)).FzName = pNew + 1*72
+ libc.X__builtin___memcpy_chk(tls, pNew+1*72, (*FuncDef)(unsafe.Pointer(pDef)).FzName, uint64(Xsqlite3Strlen30(tls, (*FuncDef)(unsafe.Pointer(pDef)).FzName)+1), libc.X__builtin_object_size(tls, pNew+1*72, 0))
+ (*FuncDef)(unsafe.Pointer(pNew)).FxSFunc = *(*uintptr)(unsafe.Pointer(bp))
+ (*FuncDef)(unsafe.Pointer(pNew)).FpUserData = *(*uintptr)(unsafe.Pointer(bp + 8))
+ *(*U32)(unsafe.Pointer(pNew + 4)) |= U32(SQLITE_FUNC_EPHEM)
+ return pNew
+}
+
+// Make sure virtual table pTab is contained in the pParse->apVirtualLock[]
+// array so that an OP_VBegin will get generated for it. Add pTab to the
+// array if it is missing. If pTab is already in the array, this routine
+// is a no-op.
+func Xsqlite3VtabMakeWritable(tls *libc.TLS, pParse uintptr, pTab uintptr) {
+ var pToplevel uintptr = func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }()
+ var i int32
+ var n int32
+ var apVtabLock uintptr
+
+ for i = 0; i < (*Parse)(unsafe.Pointer(pToplevel)).FnVtabLock; i++ {
+ if pTab == *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(pToplevel)).FapVtabLock + uintptr(i)*8)) {
+ return
+ }
+ }
+ n = int32(uint64((*Parse)(unsafe.Pointer(pToplevel)).FnVtabLock+1) * uint64(unsafe.Sizeof(uintptr(0))))
+ apVtabLock = Xsqlite3Realloc(tls, (*Parse)(unsafe.Pointer(pToplevel)).FapVtabLock, uint64(n))
+ if apVtabLock != 0 {
+ (*Parse)(unsafe.Pointer(pToplevel)).FapVtabLock = apVtabLock
+ *(*uintptr)(unsafe.Pointer((*Parse)(unsafe.Pointer(pToplevel)).FapVtabLock + uintptr(libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pToplevel)).FnVtabLock, 1))*8)) = pTab
+ } else {
+ Xsqlite3OomFault(tls, (*Parse)(unsafe.Pointer(pToplevel)).Fdb)
+ }
+}
+
+// Check to see if virtual table module pMod can be have an eponymous
+// virtual table instance. If it can, create one if one does not already
+// exist. Return non-zero if either the eponymous virtual table instance
+// exists when this routine returns or if an attempt to create it failed
+// and an error message was left in pParse.
+//
+// An eponymous virtual table instance is one that is named after its
+// module, and more importantly, does not require a CREATE VIRTUAL TABLE
+// statement in order to come into existance. Eponymous virtual table
+// instances always exist. They cannot be DROP-ed.
+//
+// Any virtual table module for which xConnect and xCreate are the same
+// method can have an eponymous virtual table instance.
+func Xsqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pModule uintptr = (*Module)(unsafe.Pointer(pMod)).FpModule
+ var pTab uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var rc int32
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Module)(unsafe.Pointer(pMod)).FpEpoTab != 0 {
+ return 1
+ }
+ if (*Sqlite3_module)(unsafe.Pointer(pModule)).FxCreate != uintptr(0) && (*Sqlite3_module)(unsafe.Pointer(pModule)).FxCreate != (*Sqlite3_module)(unsafe.Pointer(pModule)).FxConnect {
+ return 0
+ }
+ pTab = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if pTab == uintptr(0) {
+ return 0
+ }
+ (*Table)(unsafe.Pointer(pTab)).FzName = Xsqlite3DbStrDup(tls, db, (*Module)(unsafe.Pointer(pMod)).FzName)
+ if (*Table)(unsafe.Pointer(pTab)).FzName == uintptr(0) {
+ Xsqlite3DbFree(tls, db, pTab)
+ return 0
+ }
+ (*Module)(unsafe.Pointer(pMod)).FpEpoTab = pTab
+ (*Table)(unsafe.Pointer(pTab)).FnTabRef = U32(1)
+ (*Table)(unsafe.Pointer(pTab)).FeTabType = U8(TABTYP_VTAB)
+ (*Table)(unsafe.Pointer(pTab)).FpSchema = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema
+
+ (*Table)(unsafe.Pointer(pTab)).FiPKey = int16(-1)
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_Eponymous)
+ addModuleArgument(tls, pParse, pTab, Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pTab)).FzName))
+ addModuleArgument(tls, pParse, pTab, uintptr(0))
+ addModuleArgument(tls, pParse, pTab, Xsqlite3DbStrDup(tls, db, (*Table)(unsafe.Pointer(pTab)).FzName))
+ rc = vtabCallConstructor(tls, db, pTab, pMod, (*Sqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp+8)
+ if rc != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+3658, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 8))))
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ Xsqlite3VtabEponymousTableClear(tls, db, pMod)
+ }
+ return 1
+}
+
+// Erase the eponymous virtual table instance associated with
+// virtual table module pMod, if it exists.
+func Xsqlite3VtabEponymousTableClear(tls *libc.TLS, db uintptr, pMod uintptr) {
+ var pTab uintptr = (*Module)(unsafe.Pointer(pMod)).FpEpoTab
+ if pTab != uintptr(0) {
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_Ephemeral)
+ Xsqlite3DeleteTable(tls, db, pTab)
+ (*Module)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0)
+ }
+}
+
+// Return the ON CONFLICT resolution mode in effect for the virtual
+// table update operation currently in progress.
+//
+// The results of this routine are undefined unless it is called from
+// within an xUpdate method.
+func Xsqlite3_vtab_on_conflict(tls *libc.TLS, db uintptr) int32 {
+ return int32(aMap1[int32((*Sqlite3)(unsafe.Pointer(db)).FvtabOnConflict)-1])
+}
+
+var aMap1 = [5]uint8{
+ uint8(SQLITE_ROLLBACK), uint8(SQLITE_ABORT), uint8(SQLITE_FAIL), uint8(SQLITE_IGNORE), uint8(SQLITE_REPLACE),
+}
+
+// Call from within the xCreate() or xConnect() methods to provide
+// the SQLite core with additional information about the behavior
+// of the virtual table being implemented.
+func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) int32 {
+ var ap Va_list
+ _ = ap
+ var rc int32 = SQLITE_OK
+ var p uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ p = (*Sqlite3)(unsafe.Pointer(db)).FpVtabCtx
+ if !(p != 0) {
+ rc = Xsqlite3MisuseError(tls, 151521)
+ } else {
+ ap = va
+ switch op {
+ case SQLITE_VTAB_CONSTRAINT_SUPPORT:
+ {
+ (*VTable)(unsafe.Pointer((*VtabCtx)(unsafe.Pointer(p)).FpVTable)).FbConstraint = U8(libc.VaInt32(&ap))
+ break
+
+ }
+ fallthrough
+ case SQLITE_VTAB_INNOCUOUS:
+ {
+ (*VTable)(unsafe.Pointer((*VtabCtx)(unsafe.Pointer(p)).FpVTable)).FeVtabRisk = U8(SQLITE_VTABRISK_Low)
+ break
+
+ }
+ fallthrough
+ case SQLITE_VTAB_DIRECTONLY:
+ {
+ (*VTable)(unsafe.Pointer((*VtabCtx)(unsafe.Pointer(p)).FpVTable)).FeVtabRisk = U8(SQLITE_VTABRISK_High)
+ break
+
+ }
+ fallthrough
+ default:
+ {
+ rc = Xsqlite3MisuseError(tls, 151539)
+ break
+
+ }
+ }
+ _ = ap
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3Error(tls, db, rc)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Forward references
+type WhereClause1 = struct {
+ FpWInfo uintptr
+ FpOuter uintptr
+ Fop U8
+ FhasOr U8
+ F__ccgo_pad1 [2]byte
+ FnTerm int32
+ FnSlot int32
+ FnBase int32
+ Fa uintptr
+ FaStatic [8]WhereTerm
+}
+
+// Forward references
+type WhereClause = WhereClause1
+type WhereMaskSet1 = struct {
+ FbVarSelect int32
+ Fn int32
+ Fix [64]int32
+}
+
+type WhereMaskSet = WhereMaskSet1
+type WhereOrInfo1 = struct {
+ Fwc WhereClause
+ Findexable Bitmask
+}
+
+type WhereOrInfo = WhereOrInfo1
+type WhereAndInfo1 = struct{ Fwc WhereClause }
+
+type WhereAndInfo = WhereAndInfo1
+type WhereLevel1 = struct {
+ FiLeftJoin int32
+ FiTabCur int32
+ FiIdxCur int32
+ FaddrBrk int32
+ FaddrNxt int32
+ FaddrSkip int32
+ FaddrCont int32
+ FaddrFirst int32
+ FaddrBody int32
+ FregBignull int32
+ FaddrBignull int32
+ FregFilter int32
+ FpRJ uintptr
+ FiFrom U8
+ Fop U8
+ Fp3 U8
+ Fp5 U8
+ Fp1 int32
+ Fp2 int32
+ F__ccgo_pad1 [4]byte
+ Fu struct {
+ Fin struct {
+ FnIn int32
+ F__ccgo_pad1 [4]byte
+ FaInLoop uintptr
+ }
+ }
+ FpWLoop uintptr
+ FnotReady Bitmask
+}
+
+type WhereLevel = WhereLevel1
+type WhereLoop1 = struct {
+ Fprereq Bitmask
+ FmaskSelf Bitmask
+ FiTab U8
+ FiSortIdx U8
+ FrSetup LogEst
+ FrRun LogEst
+ FnOut LogEst
+ Fu struct {
+ Fbtree struct {
+ FnEq U16
+ FnBtm U16
+ FnTop U16
+ FnDistinctCol U16
+ FpIndex uintptr
+ }
+ F__ccgo_pad1 [16]byte
+ }
+ FwsFlags U32
+ FnLTerm U16
+ FnSkip U16
+ FnLSlot U16
+ F__ccgo_pad1 [6]byte
+ FaLTerm uintptr
+ FpNextLoop uintptr
+ FaLTermSpace [3]uintptr
+}
+
+type WhereLoop = WhereLoop1
+type WherePath1 = struct {
+ FmaskLoop Bitmask
+ FrevLoop Bitmask
+ FnRow LogEst
+ FrCost LogEst
+ FrUnsorted LogEst
+ FisOrdered I8
+ F__ccgo_pad1 [1]byte
+ FaLoop uintptr
+}
+
+type WherePath = WherePath1
+type WhereTerm1 = struct {
+ FpExpr uintptr
+ FpWC uintptr
+ FtruthProb LogEst
+ FwtFlags U16
+ FeOperator U16
+ FnChild U8
+ FeMatchOp U8
+ FiParent int32
+ FleftCursor int32
+ Fu struct {
+ F__ccgo_pad1 [0]uint64
+ Fx struct {
+ FleftColumn int32
+ FiField int32
+ }
+ }
+ FprereqRight Bitmask
+ FprereqAll Bitmask
+}
+
+type WhereTerm = WhereTerm1
+type WhereLoopBuilder1 = struct {
+ FpWInfo uintptr
+ FpWC uintptr
+ FpNew uintptr
+ FpOrSet uintptr
+ FpRec uintptr
+ FnRecValid int32
+ FbldFlags1 uint8
+ FbldFlags2 uint8
+ F__ccgo_pad1 [2]byte
+ FiPlanLimit uint32
+ F__ccgo_pad2 [4]byte
+}
+
+type WhereLoopBuilder = WhereLoopBuilder1
+type WhereScan1 = struct {
+ FpOrigWC uintptr
+ FpWC uintptr
+ FzCollName uintptr
+ FpIdxExpr uintptr
+ Fk int32
+ FopMask U32
+ Fidxaff int8
+ FiEquiv uint8
+ FnEquiv uint8
+ F__ccgo_pad1 [1]byte
+ FaiCur [11]int32
+ FaiColumn [11]I16
+ F__ccgo_pad2 [2]byte
+}
+
+type WhereScan = WhereScan1
+type WhereOrCost1 = struct {
+ Fprereq Bitmask
+ FrRun LogEst
+ FnOut LogEst
+ F__ccgo_pad1 [4]byte
+}
+
+type WhereOrCost = WhereOrCost1
+type WhereOrSet1 = struct {
+ Fn U16
+ F__ccgo_pad1 [6]byte
+ Fa [3]WhereOrCost
+}
+
+type WhereOrSet = WhereOrSet1
+type WhereMemBlock1 = struct {
+ FpNext uintptr
+ Fsz U64
+}
+
+type WhereMemBlock = WhereMemBlock1
+type WhereRightJoin1 = struct {
+ FiMatch int32
+ FregBloom int32
+ FregReturn int32
+ FaddrSubrtn int32
+ FendSubrtn int32
+}
+
+type WhereRightJoin = WhereRightJoin1
+
+// This object contains information needed to implement a single nested
+// loop in WHERE clause.
+//
+// Contrast this object with WhereLoop. This object describes the
+// implementation of the loop. WhereLoop describes the algorithm.
+// This object contains a pointer to the WhereLoop algorithm as one of
+// its elements.
+//
+// The WhereInfo object contains a single instance of this object for
+// each term in the FROM clause (which is to say, for each of the
+// nested loops as implemented). The order of WhereLevel objects determines
+// the loop nested order, with WhereInfo.a[0] being the outer loop and
+// WhereInfo.a[WhereInfo.nLevel-1] being the inner loop.
+type InLoop = struct {
+ FiCur int32
+ FaddrInTop int32
+ FiBase int32
+ FnPrefix int32
+ FeEndLoopOp U8
+ F__ccgo_pad1 [3]byte
+}
+
+func explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) uintptr {
+ i = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))
+ if i == -2 {
+ return ts + 21968
+ }
+ if i == -1 {
+ return ts + 16673
+ }
+ return (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*24)).FzCnName
+}
+
+func explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, iTerm int32, bAnd int32, zOp uintptr) {
+ var i int32
+
+ if bAnd != 0 {
+ Xsqlite3_str_append(tls, pStr, ts+21975, 5)
+ }
+
+ if nTerm > 1 {
+ Xsqlite3_str_append(tls, pStr, ts+21981, 1)
+ }
+ for i = 0; i < nTerm; i++ {
+ if i != 0 {
+ Xsqlite3_str_append(tls, pStr, ts+13170, 1)
+ }
+ Xsqlite3_str_appendall(tls, pStr, explainIndexColumnName(tls, pIdx, iTerm+i))
+ }
+ if nTerm > 1 {
+ Xsqlite3_str_append(tls, pStr, ts+5360, 1)
+ }
+
+ Xsqlite3_str_append(tls, pStr, zOp, 1)
+
+ if nTerm > 1 {
+ Xsqlite3_str_append(tls, pStr, ts+21981, 1)
+ }
+ for i = 0; i < nTerm; i++ {
+ if i != 0 {
+ Xsqlite3_str_append(tls, pStr, ts+13170, 1)
+ }
+ Xsqlite3_str_append(tls, pStr, ts+5411, 1)
+ }
+ if nTerm > 1 {
+ Xsqlite3_str_append(tls, pStr, ts+5360, 1)
+ }
+}
+
+func explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pIndex uintptr = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ var nEq U16 = *(*U16)(unsafe.Pointer(pLoop + 24))
+ var nSkip U16 = (*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip
+ var i int32
+ var j int32
+
+ if int32(nEq) == 0 && (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT) == U32(0) {
+ return
+ }
+ Xsqlite3_str_append(tls, pStr, ts+21983, 2)
+ for i = 0; i < int32(nEq); i++ {
+ var z uintptr = explainIndexColumnName(tls, pIndex, i)
+ if i != 0 {
+ Xsqlite3_str_append(tls, pStr, ts+21975, 5)
+ }
+ Xsqlite3_str_appendf(tls, pStr, func() uintptr {
+ if i >= int32(nSkip) {
+ return ts + 21986
+ }
+ return ts + 21991
+ }(), libc.VaList(bp, z))
+ }
+
+ j = i
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BTM_LIMIT) != 0 {
+ explainAppendTerm(tls, pStr, pIndex, int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 2))), j, i, ts+21999)
+ i = 1
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_TOP_LIMIT) != 0 {
+ explainAppendTerm(tls, pStr, pIndex, int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 4))), j, i, ts+22001)
+ }
+ Xsqlite3_str_append(tls, pStr, ts+5360, 1)
+}
+
+// This function is a no-op unless currently processing an EXPLAIN QUERY PLAN
+// command, or if either SQLITE_DEBUG or SQLITE_ENABLE_STMT_SCANSTATUS was
+// defined at compile-time. If it is not a no-op, a single OP_Explain opcode
+// is added to the output to describe the table scan strategy in pLevel.
+//
+// If an OP_Explain opcode is added to the VM, its address is returned.
+// Otherwise, if no OP_Explain is coded, zero is returned.
+func Xsqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr, pLevel uintptr, wctrlFlags U16) int32 {
+ bp := tls.Alloc(196)
+ defer tls.Free(196)
+
+ var ret int32 = 0
+ if int32((*Parse)(unsafe.Pointer(func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }())).Fexplain) == 2 {
+ var pItem uintptr = pTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var isSearch int32
+ var pLoop uintptr
+ var flags U32
+ var zMsg uintptr
+
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ flags = (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags
+ if flags&U32(WHERE_MULTI_OR) != 0 || int32(wctrlFlags)&WHERE_OR_SUBCLAUSE != 0 {
+ return 0
+ }
+
+ isSearch = libc.Bool32(flags&U32(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT) != U32(0) ||
+ flags&U32(WHERE_VIRTUALTABLE) == U32(0) && int32(*(*U16)(unsafe.Pointer(pLoop + 24))) > 0 ||
+ int32(wctrlFlags)&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX) != 0)
+
+ Xsqlite3StrAccumInit(tls, bp+64, db, bp+96, int32(unsafe.Sizeof([100]int8{})), SQLITE_MAX_LENGTH)
+ (*StrAccum)(unsafe.Pointer(bp + 64)).FprintfFlags = U8(SQLITE_PRINTF_INTERNAL)
+ Xsqlite3_str_appendf(tls, bp+64, ts+22003, libc.VaList(bp, func() uintptr {
+ if isSearch != 0 {
+ return ts + 22009
+ }
+ return ts + 22016
+ }(), pItem))
+ if flags&U32(WHERE_IPK|WHERE_VIRTUALTABLE) == U32(0) {
+ var zFmt uintptr = uintptr(0)
+ var pIdx uintptr
+
+ pIdx = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+
+ if !((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) && int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY {
+ if isSearch != 0 {
+ zFmt = ts + 11379
+ }
+ } else if flags&U32(WHERE_PARTIALIDX) != 0 {
+ zFmt = ts + 22021
+ } else if flags&U32(WHERE_AUTO_INDEX) != 0 {
+ zFmt = ts + 22054
+ } else if flags&U32(WHERE_IDX_ONLY) != 0 {
+ zFmt = ts + 22079
+ } else {
+ zFmt = ts + 22097
+ }
+ if zFmt != 0 {
+ Xsqlite3_str_append(tls, bp+64, ts+22106, 7)
+ Xsqlite3_str_appendf(tls, bp+64, zFmt, libc.VaList(bp+16, (*Index)(unsafe.Pointer(pIdx)).FzName))
+ explainIndexRange(tls, bp+64, pLoop)
+ }
+ } else if flags&U32(WHERE_IPK) != U32(0) && flags&U32(WHERE_CONSTRAINT) != U32(0) {
+ var cRangeOp int8
+ var zRowid uintptr = ts + 16673
+ Xsqlite3_str_appendf(tls, bp+64, ts+22114, libc.VaList(bp+24, zRowid))
+ if flags&U32(WHERE_COLUMN_EQ|WHERE_COLUMN_IN) != 0 {
+ cRangeOp = int8('=')
+ } else if flags&U32(WHERE_BOTH_LIMIT) == U32(WHERE_BOTH_LIMIT) {
+ Xsqlite3_str_appendf(tls, bp+64, ts+22145, libc.VaList(bp+32, zRowid))
+ cRangeOp = int8('<')
+ } else if flags&U32(WHERE_BTM_LIMIT) != 0 {
+ cRangeOp = int8('>')
+ } else {
+ cRangeOp = int8('<')
+ }
+ Xsqlite3_str_appendf(tls, bp+64, ts+22155, libc.VaList(bp+40, int32(cRangeOp)))
+ } else if flags&U32(WHERE_VIRTUALTABLE) != U32(0) {
+ Xsqlite3_str_appendf(tls, bp+64, ts+22160,
+ libc.VaList(bp+48, *(*int32)(unsafe.Pointer(pLoop + 24)), *(*uintptr)(unsafe.Pointer(pLoop + 24 + 16))))
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_LEFT != 0 {
+ Xsqlite3_str_appendf(tls, bp+64, ts+22187, 0)
+ }
+ zMsg = Xsqlite3StrAccumFinish(tls, bp+64)
+
+ ret = Xsqlite3VdbeAddOp4(tls, v, OP_Explain, Xsqlite3VdbeCurrentAddr(tls, v),
+ (*Parse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -6)
+ }
+ return ret
+}
+
+// Add a single OP_Explain opcode that describes a Bloom filter.
+//
+// Or if not processing EXPLAIN QUERY PLAN and not in a SQLITE_DEBUG and/or
+// SQLITE_ENABLE_STMT_SCANSTATUS build, then OP_Explain opcodes are not
+// required and this routine is a no-op.
+//
+// If an OP_Explain opcode is added to the VM, its address is returned.
+// Otherwise, if no OP_Explain is coded, zero is returned.
+func Xsqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintptr, pLevel uintptr) int32 {
+ bp := tls.Alloc(156)
+ defer tls.Free(156)
+
+ var ret int32 = 0
+ var pItem uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var zMsg uintptr
+ var i int32
+ var pLoop uintptr
+
+ Xsqlite3StrAccumInit(tls, bp+24, db, bp+56, int32(unsafe.Sizeof([100]int8{})), SQLITE_MAX_LENGTH)
+ (*StrAccum)(unsafe.Pointer(bp + 24)).FprintfFlags = U8(SQLITE_PRINTF_INTERNAL)
+ Xsqlite3_str_appendf(tls, bp+24, ts+22198, libc.VaList(bp, pItem))
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != 0 {
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+ if int32((*Table)(unsafe.Pointer(pTab)).FiPKey) >= 0 {
+ Xsqlite3_str_appendf(tls, bp+24, ts+21986, libc.VaList(bp+8, (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*Table)(unsafe.Pointer(pTab)).FiPKey)*24)).FzCnName))
+ } else {
+ Xsqlite3_str_appendf(tls, bp+24, ts+22219, 0)
+ }
+ } else {
+ for i = int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip); i < int32(*(*U16)(unsafe.Pointer(pLoop + 24))); i++ {
+ var z uintptr = explainIndexColumnName(tls, *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8)), i)
+ if i > int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip) {
+ Xsqlite3_str_append(tls, bp+24, ts+21975, 5)
+ }
+ Xsqlite3_str_appendf(tls, bp+24, ts+21986, libc.VaList(bp+16, z))
+ }
+ }
+ Xsqlite3_str_append(tls, bp+24, ts+5360, 1)
+ zMsg = Xsqlite3StrAccumFinish(tls, bp+24)
+ ret = Xsqlite3VdbeAddOp4(tls, v, OP_Explain, Xsqlite3VdbeCurrentAddr(tls, v),
+ (*Parse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -6)
+
+ return ret
+}
+
+func disableTerm(tls *libc.TLS, pLevel uintptr, pTerm uintptr) {
+ var nLoop int32 = 0
+
+ for int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_CODED == 0 &&
+ ((*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin == 0 || (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_OuterON) != U32(0)) &&
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady&(*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll == uint64(0) {
+ if nLoop != 0 && int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_LIKE != 0 {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_LIKECOND)
+ } else {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED)
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FiParent < 0 {
+ break
+ }
+ pTerm = (*WhereClause)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpWC)).Fa + uintptr((*WhereTerm)(unsafe.Pointer(pTerm)).FiParent)*56
+
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FnChild--
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FnChild) != 0 {
+ break
+ }
+ nLoop++
+ }
+}
+
+func codeApplyAffinity(tls *libc.TLS, pParse uintptr, base int32, n int32, zAff uintptr) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ if zAff == uintptr(0) {
+ return
+ }
+
+ for n > 0 && int32(*(*int8)(unsafe.Pointer(zAff))) <= SQLITE_AFF_BLOB {
+ n--
+ base++
+ zAff++
+ }
+ for n > 1 && int32(*(*int8)(unsafe.Pointer(zAff + uintptr(n-1)))) <= SQLITE_AFF_BLOB {
+ n--
+ }
+
+ if n > 0 {
+ Xsqlite3VdbeAddOp4(tls, v, OP_Affinity, base, n, 0, zAff, n)
+ }
+}
+
+func updateRangeAffinityStr(tls *libc.TLS, pRight uintptr, n int32, zAff uintptr) {
+ var i int32
+ for i = 0; i < n; i++ {
+ var p uintptr = Xsqlite3VectorFieldSubexpr(tls, pRight, i)
+ if int32(Xsqlite3CompareAffinity(tls, p, *(*int8)(unsafe.Pointer(zAff + uintptr(i))))) == SQLITE_AFF_BLOB ||
+ Xsqlite3ExprNeedsNoAffinityChange(tls, p, *(*int8)(unsafe.Pointer(zAff + uintptr(i)))) != 0 {
+ *(*int8)(unsafe.Pointer(zAff + uintptr(i))) = int8(SQLITE_AFF_BLOB)
+ }
+ }
+}
+
+func removeUnindexableInClauseTerms(tls *libc.TLS, pParse uintptr, iEq int32, pLoop uintptr, pX uintptr) uintptr {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pSelect uintptr
+ var pNew uintptr
+ pNew = Xsqlite3ExprDup(tls, db, pX, 0)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 {
+ for pSelect = *(*uintptr)(unsafe.Pointer(pNew + 32)); pSelect != 0; pSelect = (*Select)(unsafe.Pointer(pSelect)).FpPrior {
+ var pOrigRhs uintptr
+ var pOrigLhs uintptr = uintptr(0)
+ var pRhs uintptr = uintptr(0)
+ var pLhs uintptr = uintptr(0)
+ var i int32
+
+ pOrigRhs = (*Select)(unsafe.Pointer(pSelect)).FpEList
+
+ if pSelect == *(*uintptr)(unsafe.Pointer(pNew + 32)) {
+ pOrigLhs = *(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pNew)).FpLeft + 32))
+ }
+ for i = iEq; i < int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm); i++ {
+ if (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)))).FpExpr == pX {
+ var iField int32
+
+ iField = *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)) + 32 + 4)) - 1
+ if (*ExprList_item)(unsafe.Pointer(pOrigRhs+8+uintptr(iField)*32)).FpExpr == uintptr(0) {
+ continue
+ }
+ pRhs = Xsqlite3ExprListAppend(tls, pParse, pRhs, (*ExprList_item)(unsafe.Pointer(pOrigRhs+8+uintptr(iField)*32)).FpExpr)
+ (*ExprList_item)(unsafe.Pointer(pOrigRhs + 8 + uintptr(iField)*32)).FpExpr = uintptr(0)
+ if pOrigLhs != 0 {
+ pLhs = Xsqlite3ExprListAppend(tls, pParse, pLhs, (*ExprList_item)(unsafe.Pointer(pOrigLhs+8+uintptr(iField)*32)).FpExpr)
+ (*ExprList_item)(unsafe.Pointer(pOrigLhs + 8 + uintptr(iField)*32)).FpExpr = uintptr(0)
+ }
+ }
+ }
+ Xsqlite3ExprListDelete(tls, db, pOrigRhs)
+ if pOrigLhs != 0 {
+ Xsqlite3ExprListDelete(tls, db, pOrigLhs)
+ *(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pNew)).FpLeft + 32)) = pLhs
+ }
+ (*Select)(unsafe.Pointer(pSelect)).FpEList = pRhs
+ if pLhs != 0 && (*ExprList)(unsafe.Pointer(pLhs)).FnExpr == 1 {
+ var p uintptr = (*ExprList_item)(unsafe.Pointer(pLhs + 8)).FpExpr
+ (*ExprList_item)(unsafe.Pointer(pLhs + 8)).FpExpr = uintptr(0)
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pNew)).FpLeft)
+ (*Expr)(unsafe.Pointer(pNew)).FpLeft = p
+ }
+ if (*Select)(unsafe.Pointer(pSelect)).FpOrderBy != 0 {
+ var pOrderBy uintptr = (*Select)(unsafe.Pointer(pSelect)).FpOrderBy
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
+ *(*U16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 24)) = U16(0)
+ }
+ }
+
+ }
+ }
+ return pNew
+}
+
+func codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uintptr, iEq int32, bRev int32, iTarget int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pX uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var iReg int32
+
+ if int32((*Expr)(unsafe.Pointer(pX)).Fop) == TK_EQ || int32((*Expr)(unsafe.Pointer(pX)).Fop) == TK_IS {
+ iReg = Xsqlite3ExprCodeTarget(tls, pParse, (*Expr)(unsafe.Pointer(pX)).FpRight, iTarget)
+ } else if int32((*Expr)(unsafe.Pointer(pX)).Fop) == TK_ISNULL {
+ iReg = iTarget
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, iReg)
+ } else {
+ var eType int32 = IN_INDEX_NOOP
+
+ var pIn uintptr
+ var pLoop uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ var i int32
+ var nEq int32 = 0
+ var aiMap uintptr = uintptr(0)
+
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_VIRTUALTABLE) == U32(0) &&
+ *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8)) != uintptr(0) &&
+ *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLoop + 24 + 8)))).FaSortOrder + uintptr(iEq))) != 0 {
+ bRev = libc.BoolInt32(!(bRev != 0))
+ }
+
+ iReg = iTarget
+
+ for i = 0; i < iEq; i++ {
+ if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)) != 0 && (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)))).FpExpr == pX {
+ disableTerm(tls, pLevel, pTerm)
+ return iTarget
+ }
+ }
+ for i = iEq; i < int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm); i++ {
+ if (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)))).FpExpr == pX {
+ nEq++
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ if !((*Expr)(unsafe.Pointer(pX)).Fflags&U32(EP_xIsSelect) != U32(0)) || (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList)).FnExpr == 1 {
+ eType = Xsqlite3FindInIndex(tls, pParse, pX, uint32(IN_INDEX_LOOP), uintptr(0), uintptr(0), bp)
+ } else {
+ var pExpr uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable == 0 || !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Subrtn) != U32(0)) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pX = removeUnindexableInClauseTerms(tls, pParse, iEq, pLoop, pX)
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ aiMap = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(int32(0)))*uint64(nEq))
+ eType = Xsqlite3FindInIndex(tls, pParse, pX, uint32(IN_INDEX_LOOP), uintptr(0), aiMap, bp)
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = *(*int32)(unsafe.Pointer(bp))
+ }
+ Xsqlite3ExprDelete(tls, db, pX)
+ } else {
+ var n int32 = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pX)).FpLeft)
+ aiMap = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(int32(0)))*func() uint64 {
+ if nEq > n {
+ return uint64(nEq)
+ }
+ return uint64(n)
+ }())
+ eType = Xsqlite3FindInIndex(tls, pParse, pX, uint32(IN_INDEX_LOOP), uintptr(0), aiMap, bp)
+ }
+ pX = pExpr
+ }
+
+ if eType == IN_INDEX_INDEX_DESC {
+ bRev = libc.BoolInt32(!(bRev != 0))
+ }
+ Xsqlite3VdbeAddOp2(tls, v, func() int32 {
+ if bRev != 0 {
+ return OP_Last
+ }
+ return OP_Rewind
+ }(), *(*int32)(unsafe.Pointer(bp)), 0)
+
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_IN_ABLE)
+ if *(*int32)(unsafe.Pointer(pLevel + 72)) == 0 {
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrNxt = Xsqlite3VdbeMakeLabel(tls, pParse)
+ }
+ if iEq > 0 && (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_SEEKSCAN) == U32(0) {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_IN_EARLYOUT)
+ }
+
+ i = *(*int32)(unsafe.Pointer(pLevel + 72))
+ *(*int32)(unsafe.Pointer(pLevel + 72)) += nEq
+ *(*uintptr)(unsafe.Pointer(pLevel + 72 + 8)) = Xsqlite3WhereRealloc(tls, (*WhereClause)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpWC)).FpWInfo,
+ *(*uintptr)(unsafe.Pointer(pLevel + 72 + 8)),
+ uint64(unsafe.Sizeof(InLoop{}))*uint64(*(*int32)(unsafe.Pointer(pLevel + 72))))
+ pIn = *(*uintptr)(unsafe.Pointer(pLevel + 72 + 8))
+ if pIn != 0 {
+ var iMap int32 = 0
+ pIn += 20 * uintptr(i)
+ for i = iEq; i < int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm); i++ {
+ if (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)))).FpExpr == pX {
+ var iOut int32 = iReg + i - iEq
+ if eType == IN_INDEX_ROWID {
+ *(*int32)(unsafe.Pointer(pIn + 4)) = Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, *(*int32)(unsafe.Pointer(bp)), iOut)
+ } else {
+ var iCol int32
+ if aiMap != 0 {
+ iCol = *(*int32)(unsafe.Pointer(aiMap + uintptr(libc.PostIncInt32(&iMap, 1))*4))
+ } else {
+ iCol = 0
+ }
+ *(*int32)(unsafe.Pointer(pIn + 4)) = Xsqlite3VdbeAddOp3(tls, v, OP_Column, *(*int32)(unsafe.Pointer(bp)), iCol, iOut)
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, iOut)
+ if i == iEq {
+ *(*int32)(unsafe.Pointer(pIn)) = *(*int32)(unsafe.Pointer(bp))
+ *(*U8)(unsafe.Pointer(pIn + 16)) = func() uint8 {
+ if bRev != 0 {
+ return uint8(OP_Prev)
+ }
+ return uint8(OP_Next)
+ }()
+ if iEq > 0 {
+ *(*int32)(unsafe.Pointer(pIn + 8)) = iReg - i
+ *(*int32)(unsafe.Pointer(pIn + 12)) = i
+ } else {
+ *(*int32)(unsafe.Pointer(pIn + 12)) = 0
+ }
+ } else {
+ *(*U8)(unsafe.Pointer(pIn + 16)) = U8(OP_Noop)
+ }
+ pIn += 20
+ }
+ }
+
+ if iEq > 0 &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_SEEKSCAN|WHERE_VIRTUALTABLE) == U32(0) {
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekHit, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, 0, iEq)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(pLevel + 72)) = 0
+ }
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, aiMap)
+ }
+
+ if (*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&U32(WHERE_TRANSCONS) == U32(0) ||
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_EQUIV == 0 {
+ disableTerm(tls, pLevel, pTerm)
+ }
+
+ return iReg
+}
+
+func codeAllEqualityTerms(tls *libc.TLS, pParse uintptr, pLevel uintptr, bRev int32, nExtraReg int32, pzAff uintptr) int32 {
+ var nEq U16
+ var nSkip U16
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pIdx uintptr
+ var pTerm uintptr
+ var pLoop uintptr
+ var j int32
+ var regBase int32
+ var nReg int32
+ var zAff uintptr
+
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+
+ nEq = *(*U16)(unsafe.Pointer(pLoop + 24))
+ nSkip = (*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip
+ pIdx = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+
+ regBase = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ nReg = int32(*(*U16)(unsafe.Pointer(pLoop + 24))) + nExtraReg
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nReg
+
+ zAff = Xsqlite3DbStrDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, Xsqlite3IndexAffinityStr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pIdx))
+
+ if nSkip != 0 {
+ var iIdxCur int32 = (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, regBase, regBase+int32(nSkip)-1)
+ Xsqlite3VdbeAddOp1(tls, v, func() int32 {
+ if bRev != 0 {
+ return OP_Last
+ }
+ return OP_Rewind
+ }(), iIdxCur)
+
+ j = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip = Xsqlite3VdbeAddOp4Int(tls, v, func() int32 {
+ if bRev != 0 {
+ return OP_SeekLT
+ }
+ return OP_SeekGT
+ }(),
+ iIdxCur, 0, regBase, int32(nSkip))
+
+ Xsqlite3VdbeJumpHere(tls, v, j)
+ for j = 0; j < int32(nSkip); j++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iIdxCur, j, regBase+j)
+
+ }
+ }
+
+ for j = int32(nSkip); j < int32(nEq); j++ {
+ var r1 int32
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8))
+
+ r1 = codeEqualityTerm(tls, pParse, pTerm, pLevel, j, bRev, regBase+j)
+ if r1 != regBase+j {
+ if nReg == 1 {
+ Xsqlite3ReleaseTempReg(tls, pParse, regBase)
+ regBase = r1
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, r1, regBase+j)
+ }
+ }
+ }
+ for j = int32(nSkip); j < int32(nEq); j++ {
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8))
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_IN != 0 {
+ if (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_xIsSelect) != 0 {
+ if zAff != 0 {
+ *(*int8)(unsafe.Pointer(zAff + uintptr(j))) = int8(SQLITE_AFF_BLOB)
+ }
+ }
+ } else if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_ISNULL == 0 {
+ var pRight uintptr = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_IS == 0 && Xsqlite3ExprCanBeNull(tls, pRight) != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regBase+j, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk)
+
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr == 0 {
+ if int32(Xsqlite3CompareAffinity(tls, pRight, *(*int8)(unsafe.Pointer(zAff + uintptr(j))))) == SQLITE_AFF_BLOB {
+ *(*int8)(unsafe.Pointer(zAff + uintptr(j))) = int8(SQLITE_AFF_BLOB)
+ }
+ if Xsqlite3ExprNeedsNoAffinityChange(tls, pRight, *(*int8)(unsafe.Pointer(zAff + uintptr(j)))) != 0 {
+ *(*int8)(unsafe.Pointer(zAff + uintptr(j))) = int8(SQLITE_AFF_BLOB)
+ }
+ }
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(pzAff)) = zAff
+ return regBase
+}
+
+func codeDeferredSeek(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iCur int32, iIdxCur int32) {
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 0, 0x1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_DeferredSeek, iIdxCur, 0, iCur)
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&(WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN) != 0 &&
+ (*Parse)(unsafe.Pointer(func() uintptr {
+ if (*Parse)(unsafe.Pointer(pParse)).FpToplevel != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).FpToplevel
+ }
+ return pParse
+ }())).FwriteMask == YDbMask(0) {
+ var i int32
+ var pTab uintptr = (*Index)(unsafe.Pointer(pIdx)).FpTable
+ var ai uintptr = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(U32(0)))*uint64(int32((*Table)(unsafe.Pointer(pTab)).FnCol)+1))
+ if ai != 0 {
+ *(*U32)(unsafe.Pointer(ai)) = U32((*Table)(unsafe.Pointer(pTab)).FnCol)
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)-1; i++ {
+ var x1 int32
+ var x2 int32
+
+ x1 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))
+ x2 = int32(Xsqlite3TableColumnToStorage(tls, pTab, int16(x1)))
+
+ if x1 >= 0 {
+ *(*U32)(unsafe.Pointer(ai + uintptr(x2+1)*4)) = U32(i + 1)
+ }
+ }
+ Xsqlite3VdbeChangeP4(tls, v, -1, ai, -14)
+ }
+ }
+}
+
+func codeExprOrVector(tls *libc.TLS, pParse uintptr, p uintptr, iReg int32, nReg int32) {
+ if p != 0 && Xsqlite3ExprIsVector(tls, p) != 0 {
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var iSelect int32
+
+ iSelect = Xsqlite3CodeSubselect(tls, pParse, p)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, iSelect, iReg, nReg-1)
+ } else {
+ var i int32
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer(p + 32))
+
+ for i = 0; i < nReg; i++ {
+ Xsqlite3ExprCode(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr, iReg+i)
+ }
+ }
+ } else {
+ Xsqlite3ExprCode(tls, pParse, p, iReg)
+ }
+}
+
+func whereApplyPartialIndexConstraints(tls *libc.TLS, pTruth uintptr, iTabCur int32, pWC uintptr) {
+ var i int32
+ var pTerm uintptr
+ for int32((*Expr)(unsafe.Pointer(pTruth)).Fop) == TK_AND {
+ whereApplyPartialIndexConstraints(tls, (*Expr)(unsafe.Pointer(pTruth)).FpLeft, iTabCur, pWC)
+ pTruth = (*Expr)(unsafe.Pointer(pTruth)).FpRight
+ }
+ i = 0
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__1:
+ if !(i < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __3
+ }
+ {
+ var pExpr uintptr
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_CODED != 0 {
+ goto __2
+ }
+ pExpr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if Xsqlite3ExprCompare(tls, uintptr(0), pExpr, pTruth, iTabCur) == 0 {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pTerm += 56
+ goto __1
+ goto __3
+__3:
+}
+
+func filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32, addrNxt int32, notReady Bitmask) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ for libc.PreIncInt32(&iLevel, 1) < int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) {
+ var pLevel uintptr = pWInfo + 856 + uintptr(iLevel)*104
+ var pLoop uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 {
+ continue
+ }
+ if (*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 {
+ continue
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).Fprereq&notReady != 0 {
+ continue
+ }
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk = addrNxt
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != 0 {
+ var pTerm uintptr = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm))
+ var regRowid int32
+
+ regRowid = Xsqlite3GetTempReg(tls, pParse)
+ regRowid = codeEqualityTerm(tls, pParse, pTerm, pLevel, 0, 0, regRowid)
+ Xsqlite3VdbeAddOp2(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_MustBeInt, regRowid, addrNxt)
+
+ Xsqlite3VdbeAddOp4Int(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_Filter, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter,
+ addrNxt, regRowid, 1)
+
+ } else {
+ var nEq U16 = *(*U16)(unsafe.Pointer(pLoop + 24))
+ var r1 int32
+
+ r1 = codeAllEqualityTerms(tls, pParse, pLevel, 0, 0, bp)
+ codeApplyAffinity(tls, pParse, r1, int32(nEq), *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3DbFree(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3VdbeAddOp4Int(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, OP_Filter, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter,
+ addrNxt, r1, int32(nEq))
+
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter = 0
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk = 0
+ }
+}
+
+// Generate code for the start of the iLevel-th loop in the WHERE clause
+// implementation described by pWInfo.
+func Xsqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWInfo uintptr, iLevel int32, pLevel uintptr, notReady Bitmask) Bitmask {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ var j int32
+ var k int32
+ var iCur int32
+ var addrNxt int32
+ var bRev int32
+ var pLoop uintptr
+ var pWC uintptr
+ var pTerm uintptr
+ var db uintptr
+ var pTabItem uintptr
+ var addrBrk int32
+ var addrHalt int32
+ var addrCont int32
+ var iRowidReg int32
+ var iReleaseReg int32
+ var pIdx uintptr
+ var iLoop int32
+ var regYield int32
+ var iTab int32
+ var iCache int32
+ var pRight uintptr
+ var iTarget int32
+ var iFld int32
+ var pLeft uintptr
+ var pCompare uintptr
+ var pRight1 uintptr
+ var pOp uintptr
+ var iIn int32
+
+ var iReg int32
+ var addrNotFound int32
+ var nConstraint int32
+ var pX uintptr
+ var r1 int32
+
+ var op int32
+
+ var pX1 uintptr
+
+ var testOp int32
+ var start int32
+ var memEndValue int32
+ var pStart uintptr
+ var pEnd uintptr
+ var t uintptr
+ var t1 U8
+ var t2 U8
+ var pRight2 uintptr
+ var pRight3 uintptr
+ var pPk uintptr
+ var nEq U16
+ var nBtm U16
+ var nTop U16
+ var regBase int32
+ var pRangeStart uintptr
+ var pRangeEnd uintptr
+ var startEq int32
+ var endEq int32
+ var start_constraints int32
+ var nConstraint1 int32
+ var iIdxCur int32
+ var nExtraReg int32
+ var op1 int32
+
+ var zEndAff uintptr
+ var bSeekPastNull U8
+ var bStopAtNull U8
+ var omitTable int32
+ var regBignull int32
+ var addrSeekScan int32
+ var nNotReady int32
+ var origSrc uintptr
+ var pPk1 uintptr
+ var pExpr uintptr
+ var iTerm int32
+ var iCol int32
+ var pPk2 uintptr
+ var nPk int32
+ var iPk int32
+ var r int32
+ var iSet int32
+ var pSubLoop uintptr
+ var addrExplain int32
+ _ = addrExplain
+ var pSubWInfo uintptr
+ var pOrExpr uintptr
+ var pDelete uintptr
+ var jmp1 int32
+ var pOrTerm uintptr
+
+ var pOrWc uintptr
+ var pOrTab uintptr
+ var pCov uintptr
+ var iCovCur int32
+
+ var regReturn int32
+ var regRowset int32
+ var regRowid int32
+ var iLoopBody int32
+ var iRetInit int32
+ var untestedTerms int32
+ var ii int32
+ var pAndExpr uintptr
+ var pTab uintptr
+ var m Bitmask
+ var pE uintptr
+ var skipLikeAddr int32
+ var iNext int32
+ var pE1 uintptr
+
+ var pAlt uintptr
+ var iCol1 int32
+ var iPk1 int32
+ var pPk3 uintptr
+ var pTab1 uintptr
+ var nPk1 int32
+ var r2 int32
+ var jmp11 int32
+ var pRJ uintptr
+
+ var pRJ1 uintptr
+ iRowidReg = 0
+ iReleaseReg = 0
+ pIdx = uintptr(0)
+
+ pWC = pWInfo + 104
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ pTabItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ iCur = (*SrcItem)(unsafe.Pointer(pTabItem)).FiCursor
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady = notReady & ^Xsqlite3WhereGetMask(tls, pWInfo+592, iCur)
+ bRev = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FrevMask >> iLevel & uint64(1))
+
+ addrBrk = libc.AssignPtrInt32(pLevel+12, libc.AssignPtrInt32(pLevel+16, Xsqlite3VdbeMakeLabel(tls, pParse)))
+ addrCont = libc.AssignPtrInt32(pLevel+24, Xsqlite3VdbeMakeLabel(tls, pParse))
+
+ if !(int32((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom) > 0 && int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&JT_LEFT != 0) {
+ goto __1
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin)
+
+__1:
+ ;
+ j = iLevel
+__2:
+ if !(j > 0) {
+ goto __4
+ }
+ if !((*WhereLevel)(unsafe.Pointer(pWInfo+856+uintptr(j)*104)).FiLeftJoin != 0) {
+ goto __5
+ }
+ goto __4
+__5:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pWInfo+856+uintptr(j)*104)).FpRJ != 0) {
+ goto __6
+ }
+ goto __4
+__6:
+ ;
+ goto __3
+__3:
+ j--
+ goto __2
+ goto __4
+__4:
+ ;
+ addrHalt = (*WhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(j)*104)).FaddrBrk
+
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0) {
+ goto __7
+ }
+ regYield = (*SrcItem)(unsafe.Pointer(pTabItem)).FregReturn
+ Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regYield, 0, (*SrcItem)(unsafe.Pointer(pTabItem)).FaddrFillSub)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = Xsqlite3VdbeAddOp2(tls, v, OP_Yield, regYield, addrBrk)
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Goto)
+ goto __8
+__7:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_VIRTUALTABLE) != U32(0)) {
+ goto __9
+ }
+ nConstraint = int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm)
+
+ iReg = Xsqlite3GetTempRange(tls, pParse, nConstraint+2)
+ addrNotFound = (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk
+ j = 0
+__11:
+ if !(j < nConstraint) {
+ goto __13
+ }
+ iTarget = iReg + j + 2
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8))
+ if !(pTerm == uintptr(0)) {
+ goto __14
+ }
+ goto __12
+__14:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_IN != 0) {
+ goto __15
+ }
+ if !(func() uint32 {
+ if j <= 31 {
+ return uint32(1) << j
+ }
+ return uint32(0)
+ }()&*(*U32)(unsafe.Pointer(pLoop + 24 + 24)) != 0) {
+ goto __17
+ }
+ iTab = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ iCache = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3CodeRhsOfIN(tls, pParse, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, iTab)
+ Xsqlite3VdbeAddOp3(tls, v, OP_VInitIn, iTab, iTarget, iCache)
+ goto __18
+__17:
+ codeEqualityTerm(tls, pParse, pTerm, pLevel, j, bRev, iTarget)
+ addrNotFound = (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrNxt
+__18:
+ ;
+ goto __16
+__15:
+ pRight = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight
+ codeExprOrVector(tls, pParse, pRight, iTarget, 1)
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) == SQLITE_INDEX_CONSTRAINT_OFFSET &&
+ U32(int32(*(*uint8)(unsafe.Pointer(pLoop + 24 + 4))&0x2>>1)) != 0) {
+ goto __19
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Select)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FiOffset)
+
+__19:
+ ;
+__16:
+ ;
+ goto __12
+__12:
+ j++
+ goto __11
+ goto __13
+__13:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, *(*int32)(unsafe.Pointer(pLoop + 24)), iReg)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, nConstraint, iReg+1)
+ Xsqlite3VdbeAddOp4(tls, v, OP_VFilter, iCur, addrNotFound, iReg,
+ *(*uintptr)(unsafe.Pointer(pLoop + 24 + 16)),
+ func() int32 {
+ if U32(int32(*(*uint8)(unsafe.Pointer(pLoop + 24 + 4))&0x1>>0)) != 0 {
+ return -6
+ }
+ return -1
+ }())
+
+ libc.SetBitFieldPtr8Uint32(pLoop+24+4, U32(0), 0, 0x1)
+
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __20
+ }
+ *(*uintptr)(unsafe.Pointer(pLoop + 24 + 16)) = uintptr(0)
+__20:
+ ;
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1 = iCur
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = func() uint8 {
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass != 0 {
+ return uint8(OP_Noop)
+ }
+ return uint8(OP_VNext)
+ }()
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ j = 0
+__21:
+ if !(j < nConstraint) {
+ goto __23
+ }
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8))
+ if !(j < 16 && int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 8)))>>j&1 != 0) {
+ goto __24
+ }
+ disableTerm(tls, pLevel, pTerm)
+ goto __22
+__24:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_IN != 0 &&
+ func() uint32 {
+ if j <= 31 {
+ return uint32(1) << j
+ }
+ return uint32(0)
+ }()&*(*U32)(unsafe.Pointer(pLoop + 24 + 24)) == uint32(0) &&
+ !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0)) {
+ goto __25
+ }
+
+ iIn = 0
+__26:
+ if !(iIn < *(*int32)(unsafe.Pointer(pLevel + 72))) {
+ goto __28
+ }
+ pOp = Xsqlite3VdbeGetOp(tls, v, *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLevel + 72 + 8)) + uintptr(iIn)*20 + 4)))
+ if !(int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column && (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 == iReg+j+2 ||
+ int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Rowid && (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 == iReg+j+2) {
+ goto __29
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode), (*VdbeOp)(unsafe.Pointer(pOp)).Fp1, (*VdbeOp)(unsafe.Pointer(pOp)).Fp2, (*VdbeOp)(unsafe.Pointer(pOp)).Fp3)
+ goto __28
+__29:
+ ;
+ goto __27
+__27:
+ iIn++
+ goto __26
+ goto __28
+__28:
+ ;
+ pCompare = Xsqlite3PExpr(tls, pParse, TK_EQ, uintptr(0), uintptr(0))
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ goto __30
+ }
+ iFld = *(*int32)(unsafe.Pointer(pTerm + 32 + 4))
+ pLeft = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft
+
+ if !(iFld > 0) {
+ goto __31
+ }
+
+ (*Expr)(unsafe.Pointer(pCompare)).FpLeft = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 32)) + 8 + uintptr(iFld-1)*32)).FpExpr
+ goto __32
+__31:
+ (*Expr)(unsafe.Pointer(pCompare)).FpLeft = pLeft
+__32:
+ ;
+ (*Expr)(unsafe.Pointer(pCompare)).FpRight = libc.AssignUintptr(&pRight1, Xsqlite3Expr(tls, db, TK_REGISTER, uintptr(0)))
+ if !(pRight1 != 0) {
+ goto __33
+ }
+ (*Expr)(unsafe.Pointer(pRight1)).FiTable = iReg + j + 2
+ Xsqlite3ExprIfFalse(tls,
+ pParse, pCompare, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont, SQLITE_JUMPIFNULL)
+__33:
+ ;
+ (*Expr)(unsafe.Pointer(pCompare)).FpLeft = uintptr(0)
+__30:
+ ;
+ Xsqlite3ExprDelete(tls, db, pCompare)
+__25:
+ ;
+ goto __22
+__22:
+ j++
+ goto __21
+ goto __23
+__23:
+ ;
+ goto __10
+__9:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_COLUMN_IN|WHERE_COLUMN_EQ) != U32(0)) {
+ goto __34
+ }
+
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm))
+
+ iReleaseReg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ iRowidReg = codeEqualityTerm(tls, pParse, pTerm, pLevel, 0, bRev, iReleaseReg)
+ if !(iRowidReg != iReleaseReg) {
+ goto __36
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, iReleaseReg)
+__36:
+ ;
+ addrNxt = (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrNxt
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter != 0) {
+ goto __37
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_MustBeInt, iRowidReg, addrNxt)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Filter, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt,
+ iRowidReg, 1)
+
+ filterPullDown(tls, pParse, pWInfo, iLevel, addrNxt, notReady)
+__37:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, iCur, addrNxt, iRowidReg)
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Noop)
+ goto __35
+__34:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_COLUMN_RANGE) != U32(0)) {
+ goto __38
+ }
+
+ testOp = OP_Noop
+ memEndValue = 0
+
+ j = 0
+ pStart = libc.AssignUintptr(&pEnd, uintptr(0))
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BTM_LIMIT) != 0) {
+ goto __40
+ }
+ pStart = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(libc.PostIncInt32(&j, 1))*8))
+__40:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_TOP_LIMIT) != 0) {
+ goto __41
+ }
+ pEnd = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(libc.PostIncInt32(&j, 1))*8))
+__41:
+ ;
+ if !(bRev != 0) {
+ goto __42
+ }
+ pTerm = pStart
+ pStart = pEnd
+ pEnd = pTerm
+__42:
+ ;
+ if !(pStart != 0) {
+ goto __43
+ }
+
+ *(*[4]U8)(unsafe.Pointer(bp + 8)) = [4]U8{
+ U8(OP_SeekGT),
+ U8(OP_SeekLE),
+ U8(OP_SeekLT),
+ U8(OP_SeekGE),
+ }
+
+ pX = (*WhereTerm)(unsafe.Pointer(pStart)).FpExpr
+
+ if !(Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer(pX)).FpRight) != 0) {
+ goto __45
+ }
+ r1 = libc.AssignPtrInt32(bp+12, Xsqlite3GetTempReg(tls, pParse))
+ codeExprOrVector(tls, pParse, (*Expr)(unsafe.Pointer(pX)).FpRight, r1, 1)
+
+ op = int32(*(*U8)(unsafe.Pointer(bp + 8 + uintptr((int32((*Expr)(unsafe.Pointer(pX)).Fop)-TK_GT-1)&0x3|0x1))))
+
+ goto __46
+__45:
+ r1 = Xsqlite3ExprCodeTemp(tls, pParse, (*Expr)(unsafe.Pointer(pX)).FpRight, bp+12)
+ disableTerm(tls, pLevel, pStart)
+ op = int32(*(*U8)(unsafe.Pointer(bp + 8 + uintptr(int32((*Expr)(unsafe.Pointer(pX)).Fop)-TK_GT))))
+__46:
+ ;
+ Xsqlite3VdbeAddOp3(tls, v, op, iCur, addrBrk, r1)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 12)))
+ goto __44
+__43:
+ Xsqlite3VdbeAddOp2(tls, v, func() int32 {
+ if bRev != 0 {
+ return OP_Last
+ }
+ return OP_Rewind
+ }(), iCur, addrHalt)
+
+__44:
+ ;
+ if !(pEnd != 0) {
+ goto __47
+ }
+ pX1 = (*WhereTerm)(unsafe.Pointer(pEnd)).FpExpr
+
+ memEndValue = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ codeExprOrVector(tls, pParse, (*Expr)(unsafe.Pointer(pX1)).FpRight, memEndValue, 1)
+ if !(0 == Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer(pX1)).FpRight) &&
+ (int32((*Expr)(unsafe.Pointer(pX1)).Fop) == TK_LT || int32((*Expr)(unsafe.Pointer(pX1)).Fop) == TK_GT)) {
+ goto __48
+ }
+ if bRev != 0 {
+ testOp = OP_Le
+ } else {
+ testOp = OP_Ge
+ }
+ goto __49
+__48:
+ if bRev != 0 {
+ testOp = OP_Lt
+ } else {
+ testOp = OP_Gt
+ }
+__49:
+ ;
+ if !(0 == Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer(pX1)).FpRight)) {
+ goto __50
+ }
+ disableTerm(tls, pLevel, pEnd)
+__50:
+ ;
+__47:
+ ;
+ start = Xsqlite3VdbeCurrentAddr(tls, v)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = func() uint8 {
+ if bRev != 0 {
+ return uint8(OP_Prev)
+ }
+ return uint8(OP_Next)
+ }()
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1 = iCur
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = start
+
+ if !(testOp != OP_Noop) {
+ goto __51
+ }
+ iRowidReg = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iCur, iRowidReg)
+ Xsqlite3VdbeAddOp3(tls, v, testOp, memEndValue, addrBrk, iRowidReg)
+
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL))
+__51:
+ ;
+ goto __39
+__38:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_INDEXED) != 0) {
+ goto __52
+ }
+ nEq = *(*U16)(unsafe.Pointer(pLoop + 24))
+ nBtm = *(*U16)(unsafe.Pointer(pLoop + 24 + 2))
+ nTop = *(*U16)(unsafe.Pointer(pLoop + 24 + 4))
+ pRangeStart = uintptr(0)
+ pRangeEnd = uintptr(0)
+ nExtraReg = 0
+ zEndAff = uintptr(0)
+ bSeekPastNull = U8(0)
+ bStopAtNull = U8(0)
+ regBignull = 0
+ addrSeekScan = 0
+
+ pIdx = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ iIdxCur = (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur
+
+ j = int32(nEq)
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BTM_LIMIT) != 0) {
+ goto __54
+ }
+ pRangeStart = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(libc.PostIncInt32(&j, 1))*8))
+ nExtraReg = func() int32 {
+ if nExtraReg > int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 2))) {
+ return nExtraReg
+ }
+ return int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 2)))
+ }()
+
+__54:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_TOP_LIMIT) != 0) {
+ goto __55
+ }
+ pRangeEnd = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(libc.PostIncInt32(&j, 1))*8))
+ nExtraReg = func() int32 {
+ if nExtraReg > int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 4))) {
+ return nExtraReg
+ }
+ return int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 4)))
+ }()
+ if !(pRangeStart == uintptr(0)) {
+ goto __56
+ }
+ j = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(nEq)*2)))
+ if !(j >= 0 && int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(j)*24 + 8))&0xf>>0) == 0 || j == -2) {
+ goto __57
+ }
+ bSeekPastNull = U8(1)
+__57:
+ ;
+__56:
+ ;
+__55:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_TOP_LIMIT|WHERE_BTM_LIMIT) == U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BIGNULL_SORT) != U32(0)) {
+ goto __58
+ }
+
+ nExtraReg = 1
+ bSeekPastNull = U8(1)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FregBignull = libc.AssignInt32(&regBignull, libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1))
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin != 0) {
+ goto __59
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regBignull)
+__59:
+ ;
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBignull = Xsqlite3VdbeMakeLabel(tls, pParse)
+__58:
+ ;
+ if !(int32(nEq) < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) && bRev == libc.Bool32(int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(nEq)))) == SQLITE_SO_ASC)) {
+ goto __60
+ }
+
+ t = pRangeEnd
+ pRangeEnd = pRangeStart
+ pRangeStart = t
+
+ t1 = bSeekPastNull
+ bSeekPastNull = bStopAtNull
+ bStopAtNull = t1
+
+ t2 = U8(nBtm)
+ nBtm = nTop
+ nTop = U16(t2)
+
+__60:
+ ;
+ if !(iLevel > 0 && (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_SEEKSCAN) != U32(0)) {
+ goto __61
+ }
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, iIdxCur)
+__61:
+ ;
+ regBase = codeAllEqualityTerms(tls, pParse, pLevel, bRev, nExtraReg, bp+16)
+
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0 && nTop != 0) {
+ goto __62
+ }
+ zEndAff = Xsqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(bp + 16))+uintptr(nEq))
+__62:
+ ;
+ addrNxt = func() int32 {
+ if regBignull != 0 {
+ return (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBignull
+ }
+ return (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrNxt
+ }()
+
+ startEq = libc.Bool32(!(pRangeStart != 0) || int32((*WhereTerm)(unsafe.Pointer(pRangeStart)).FeOperator)&(int32(WO_EQ)<<(TK_LE-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) != 0)
+ endEq = libc.Bool32(!(pRangeEnd != 0) || int32((*WhereTerm)(unsafe.Pointer(pRangeEnd)).FeOperator)&(int32(WO_EQ)<<(TK_LE-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) != 0)
+ start_constraints = libc.Bool32(pRangeStart != 0 || int32(nEq) > 0)
+
+ nConstraint1 = int32(nEq)
+ if !(pRangeStart != 0) {
+ goto __63
+ }
+ pRight2 = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pRangeStart)).FpExpr)).FpRight
+ codeExprOrVector(tls, pParse, pRight2, regBase+int32(nEq), int32(nBtm))
+
+ if !(int32((*WhereTerm)(unsafe.Pointer(pRangeStart)).FwtFlags)&TERM_VNULL == 0 &&
+ Xsqlite3ExprCanBeNull(tls, pRight2) != 0) {
+ goto __65
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regBase+int32(nEq), addrNxt)
+
+__65:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0) {
+ goto __66
+ }
+ updateRangeAffinityStr(tls, pRight2, int32(nBtm), *(*uintptr)(unsafe.Pointer(bp + 16))+uintptr(nEq))
+__66:
+ ;
+ nConstraint1 = nConstraint1 + int32(nBtm)
+
+ if !(Xsqlite3ExprIsVector(tls, pRight2) == 0) {
+ goto __67
+ }
+ disableTerm(tls, pLevel, pRangeStart)
+ goto __68
+__67:
+ startEq = 1
+__68:
+ ;
+ bSeekPastNull = U8(0)
+ goto __64
+__63:
+ if !(bSeekPastNull != 0) {
+ goto __69
+ }
+ startEq = 0
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regBase+int32(nEq))
+ start_constraints = 1
+ nConstraint1++
+ goto __70
+__69:
+ if !(regBignull != 0) {
+ goto __71
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regBase+int32(nEq))
+ start_constraints = 1
+ nConstraint1++
+__71:
+ ;
+__70:
+ ;
+__64:
+ ;
+ codeApplyAffinity(tls, pParse, regBase, nConstraint1-int32(bSeekPastNull), *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if !(int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip) > 0 && nConstraint1 == int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip)) {
+ goto __72
+ }
+
+ goto __73
+__72:
+ if !(regBignull != 0) {
+ goto __74
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, regBignull)
+
+__74:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter != 0) {
+ goto __75
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Filter, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt,
+ regBase, int32(nEq))
+
+ filterPullDown(tls, pParse, pWInfo, iLevel, addrNxt, notReady)
+__75:
+ ;
+ op1 = int32(aStartOp[start_constraints<<2+startEq<<1+bRev])
+
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_SEEKSCAN) != U32(0) && op1 == OP_SeekGE) {
+ goto __76
+ }
+
+ addrSeekScan = Xsqlite3VdbeAddOp1(tls, v, OP_SeekScan,
+ (int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowLogEst)))+9)/10)
+ if !(pRangeStart != 0) {
+ goto __77
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(1))
+ Xsqlite3VdbeChangeP2(tls, v, addrSeekScan, Xsqlite3VdbeCurrentAddr(tls, v)+1)
+ addrSeekScan = 0
+__77:
+ ;
+__76:
+ ;
+ Xsqlite3VdbeAddOp4Int(tls, v, op1, iIdxCur, addrNxt, regBase, nConstraint1)
+
+ if !(regBignull != 0) {
+ goto __78
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+ op1 = int32(aStartOp[libc.Bool32(nConstraint1 > 1)*4+2+bRev])
+ Xsqlite3VdbeAddOp4Int(tls, v, op1, iIdxCur, addrNxt, regBase,
+ nConstraint1-startEq)
+
+__78:
+ ;
+__73:
+ ;
+ nConstraint1 = int32(nEq)
+
+ if !(pRangeEnd != 0) {
+ goto __79
+ }
+ pRight3 = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pRangeEnd)).FpExpr)).FpRight
+ if !(addrSeekScan != 0) {
+ goto __81
+ }
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = Xsqlite3VdbeCurrentAddr(tls, v)
+__81:
+ ;
+ codeExprOrVector(tls, pParse, pRight3, regBase+int32(nEq), int32(nTop))
+
+ if !(int32((*WhereTerm)(unsafe.Pointer(pRangeEnd)).FwtFlags)&TERM_VNULL == 0 &&
+ Xsqlite3ExprCanBeNull(tls, pRight3) != 0) {
+ goto __82
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, regBase+int32(nEq), addrNxt)
+
+__82:
+ ;
+ if !(zEndAff != 0) {
+ goto __83
+ }
+ updateRangeAffinityStr(tls, pRight3, int32(nTop), zEndAff)
+ codeApplyAffinity(tls, pParse, regBase+int32(nEq), int32(nTop), zEndAff)
+ goto __84
+__83:
+ ;
+__84:
+ ;
+ nConstraint1 = nConstraint1 + int32(nTop)
+
+ if !(Xsqlite3ExprIsVector(tls, pRight3) == 0) {
+ goto __85
+ }
+ disableTerm(tls, pLevel, pRangeEnd)
+ goto __86
+__85:
+ endEq = 1
+__86:
+ ;
+ goto __80
+__79:
+ if !(bStopAtNull != 0) {
+ goto __87
+ }
+ if !(regBignull == 0) {
+ goto __88
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regBase+int32(nEq))
+ endEq = 0
+__88:
+ ;
+ nConstraint1++
+__87:
+ ;
+__80:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0) {
+ goto __89
+ }
+ Xsqlite3DbNNFreeNN(tls, db, *(*uintptr)(unsafe.Pointer(bp + 16)))
+__89:
+ ;
+ if !(zEndAff != 0) {
+ goto __90
+ }
+ Xsqlite3DbNNFreeNN(tls, db, zEndAff)
+__90:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 == 0) {
+ goto __91
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = Xsqlite3VdbeCurrentAddr(tls, v)
+__91:
+ ;
+ if !(nConstraint1 != 0) {
+ goto __92
+ }
+ if !(regBignull != 0) {
+ goto __93
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNot, regBignull, Xsqlite3VdbeCurrentAddr(tls, v)+3)
+
+__93:
+ ;
+ op1 = int32(aEndOp[bRev*2+endEq])
+ Xsqlite3VdbeAddOp4Int(tls, v, op1, iIdxCur, addrNxt, regBase, nConstraint1)
+
+ if !(addrSeekScan != 0) {
+ goto __94
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrSeekScan)
+__94:
+ ;
+__92:
+ ;
+ if !(regBignull != 0) {
+ goto __95
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_If, regBignull, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ op1 = int32(aEndOp[bRev*2+int32(bSeekPastNull)])
+ Xsqlite3VdbeAddOp4Int(tls, v, op1, iIdxCur, addrNxt, regBase,
+ nConstraint1+int32(bSeekPastNull))
+
+__95:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_EARLYOUT) != U32(0)) {
+ goto __96
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekHit, iIdxCur, int32(nEq), int32(nEq))
+__96:
+ ;
+ omitTable = libc.Bool32((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IDX_ONLY) != U32(0) &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&(WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN) == 0)
+ if !(omitTable != 0) {
+ goto __97
+ }
+
+ goto __98
+__97:
+ if !((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __99
+ }
+ codeDeferredSeek(tls, pWInfo, pIdx, iCur, iIdxCur)
+ goto __100
+__99:
+ if !(iCur != iIdxCur) {
+ goto __101
+ }
+ pPk = Xsqlite3PrimaryKeyIndex(tls, (*Index)(unsafe.Pointer(pIdx)).FpTable)
+ iRowidReg = Xsqlite3GetTempRange(tls, pParse, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+ j = 0
+__102:
+ if !(j < int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)) {
+ goto __104
+ }
+ k = int32(Xsqlite3TableColumnToIndex(tls, pIdx, *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2))))
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iIdxCur, k, iRowidReg+j)
+ goto __103
+__103:
+ j++
+ goto __102
+ goto __104
+__104:
+ ;
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_NotFound, iCur, addrCont,
+ iRowidReg, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+__101:
+ ;
+__100:
+ ;
+__98:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin == 0) {
+ goto __105
+ }
+
+ if !((*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0) {
+ goto __107
+ }
+ whereApplyPartialIndexConstraints(tls, (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere, iCur, pWC)
+__107:
+ ;
+ goto __106
+__105:
+ ;
+__106:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_ONEROW) != 0) {
+ goto __108
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Noop)
+ goto __109
+__108:
+ if !(bRev != 0) {
+ goto __110
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Prev)
+ goto __111
+__110:
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Next)
+__111:
+ ;
+__109:
+ ;
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1 = iIdxCur
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp3 = func() uint8 {
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_UNQ_WANTED) != U32(0) {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_CONSTRAINT) == U32(0)) {
+ goto __112
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp5 = U8(SQLITE_STMTSTATUS_FULLSCAN_STEP)
+ goto __113
+__112:
+ ;
+__113:
+ ;
+ if !(omitTable != 0) {
+ goto __114
+ }
+ pIdx = uintptr(0)
+__114:
+ ;
+ goto __53
+__52:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_MULTI_OR) != 0) {
+ goto __115
+ }
+ pCov = uintptr(0)
+ iCovCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+
+ regReturn = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ regRowset = 0
+ regRowid = 0
+ iLoopBody = Xsqlite3VdbeMakeLabel(tls, pParse)
+ untestedTerms = 0
+ pAndExpr = uintptr(0)
+ pTab = (*SrcItem)(unsafe.Pointer(pTabItem)).FpTab
+
+ pTerm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm))
+
+ pOrWc = *(*uintptr)(unsafe.Pointer(pTerm + 32))
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Return)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1 = regReturn
+
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) > 1) {
+ goto __117
+ }
+ nNotReady = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) - iLevel - 1
+ pOrTab = Xsqlite3DbMallocRawNN(tls, db,
+ uint64(unsafe.Sizeof(SrcList{}))+uint64(nNotReady)*uint64(unsafe.Sizeof(SrcItem{})))
+ if !(pOrTab == uintptr(0)) {
+ goto __119
+ }
+ return notReady
+__119:
+ ;
+ (*SrcList)(unsafe.Pointer(pOrTab)).FnAlloc = U32(U8(nNotReady + 1))
+ (*SrcList)(unsafe.Pointer(pOrTab)).FnSrc = int32((*SrcList)(unsafe.Pointer(pOrTab)).FnAlloc)
+ libc.X__builtin___memcpy_chk(tls, pOrTab+8, pTabItem, uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, pOrTab+8, 0))
+ origSrc = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8
+ k = 1
+__120:
+ if !(k <= nNotReady) {
+ goto __122
+ }
+ libc.X__builtin___memcpy_chk(tls, pOrTab+8+uintptr(k)*104, origSrc+uintptr((*WhereLevel)(unsafe.Pointer(pLevel+uintptr(k)*104)).FiFrom)*104, uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, pOrTab+8+uintptr(k)*104, 0))
+ goto __121
+__121:
+ k++
+ goto __120
+ goto __122
+__122:
+ ;
+ goto __118
+__117:
+ pOrTab = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList
+__118:
+ ;
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_DUPLICATES_OK == 0) {
+ goto __123
+ }
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __124
+ }
+ regRowset = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, regRowset)
+ goto __125
+__124:
+ pPk1 = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ regRowset = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, regRowset, int32((*Index)(unsafe.Pointer(pPk1)).FnKeyCol))
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pPk1)
+__125:
+ ;
+ regRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+__123:
+ ;
+ iRetInit = Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regReturn)
+
+ if !((*WhereClause)(unsafe.Pointer(pWC)).FnTerm > 1) {
+ goto __126
+ }
+ iTerm = 0
+__127:
+ if !(iTerm < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __129
+ }
+ pExpr = (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(iTerm)*56)).FpExpr
+ if !((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(iTerm)*56 == pTerm) {
+ goto __130
+ }
+ goto __128
+__130:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(iTerm)*56)).FwtFlags)&(TERM_VIRTUAL|TERM_CODED|TERM_SLICE) != 0) {
+ goto __131
+ }
+ goto __128
+__131:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(iTerm)*56)).FeOperator)&WO_ALL == 0) {
+ goto __132
+ }
+ goto __128
+__132:
+ ;
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_Subquery) != U32(0)) {
+ goto __133
+ }
+ goto __128
+__133:
+ ;
+ pExpr = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ pAndExpr = Xsqlite3ExprAnd(tls, pParse, pAndExpr, pExpr)
+ goto __128
+__128:
+ iTerm++
+ goto __127
+ goto __129
+__129:
+ ;
+ if !(pAndExpr != 0) {
+ goto __134
+ }
+
+ pAndExpr = Xsqlite3PExpr(tls, pParse, TK_AND|0x10000, uintptr(0), pAndExpr)
+__134:
+ ;
+__126:
+ ;
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+22227, 0)
+ ii = 0
+__135:
+ if !(ii < (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm) {
+ goto __137
+ }
+ pOrTerm = (*WhereClause)(unsafe.Pointer(pOrWc)).Fa + uintptr(ii)*56
+ if !((*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor == iCur || int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator)&WO_AND != 0) {
+ goto __138
+ }
+ pOrExpr = (*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr
+ jmp1 = 0
+
+ pDelete = libc.AssignUintptr(&pOrExpr, Xsqlite3ExprDup(tls, db, pOrExpr, 0))
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __139
+ }
+ Xsqlite3ExprDelete(tls, db, pDelete)
+ goto __136
+__139:
+ ;
+ if !(pAndExpr != 0) {
+ goto __140
+ }
+ (*Expr)(unsafe.Pointer(pAndExpr)).FpLeft = pOrExpr
+ pOrExpr = pAndExpr
+__140:
+ ;
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+22242, libc.VaList(bp, ii+1))
+
+ pSubWInfo = Xsqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0),
+ uint16(WHERE_OR_SUBCLAUSE), iCovCur)
+
+ if !(pSubWInfo != 0) {
+ goto __141
+ }
+ addrExplain = Xsqlite3WhereExplainOneScan(tls,
+ pParse, pOrTab, pSubWInfo+856, uint16(0))
+ _ = addrExplain
+
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_DUPLICATES_OK == 0) {
+ goto __142
+ }
+ iSet = func() int32 {
+ if ii == (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm-1 {
+ return -1
+ }
+ return ii
+ }()
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __143
+ }
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, -1, regRowid)
+ jmp1 = Xsqlite3VdbeAddOp4Int(tls, v, OP_RowSetTest, regRowset, 0,
+ regRowid, iSet)
+
+ goto __144
+__143:
+ pPk2 = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ nPk = int32((*Index)(unsafe.Pointer(pPk2)).FnKeyCol)
+
+ r = Xsqlite3GetTempRange(tls, pParse, nPk)
+ iPk = 0
+__145:
+ if !(iPk < nPk) {
+ goto __147
+ }
+ iCol = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk2)).FaiColumn + uintptr(iPk)*2)))
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, iCol, r+iPk)
+ goto __146
+__146:
+ iPk++
+ goto __145
+ goto __147
+__147:
+ ;
+ if !(iSet != 0) {
+ goto __148
+ }
+ jmp1 = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, regRowset, 0, r, nPk)
+
+__148:
+ ;
+ if !(iSet >= 0) {
+ goto __149
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, r, nPk, regRowid)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, regRowset, regRowid,
+ r, nPk)
+ if !(iSet != 0) {
+ goto __150
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+__150:
+ ;
+__149:
+ ;
+ Xsqlite3ReleaseTempRange(tls, pParse, r, nPk)
+__144:
+ ;
+__142:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, regReturn, iLoopBody)
+
+ if !(jmp1 != 0) {
+ goto __151
+ }
+ Xsqlite3VdbeJumpHere(tls, v, jmp1)
+__151:
+ ;
+ if !(uint32(int32(*(*uint8)(unsafe.Pointer(pSubWInfo + 68))&0x2>>1)) != 0) {
+ goto __152
+ }
+ untestedTerms = 1
+__152:
+ ;
+ pSubLoop = (*WhereLevel)(unsafe.Pointer(pSubWInfo + 856)).FpWLoop
+
+ if !((*WhereLoop)(unsafe.Pointer(pSubLoop)).FwsFlags&U32(WHERE_INDEXED) != U32(0) &&
+ (ii == 0 || *(*uintptr)(unsafe.Pointer(pSubLoop + 24 + 8)) == pCov) &&
+ ((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) || !(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pSubLoop + 24 + 8)) + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY))) {
+ goto __153
+ }
+
+ pCov = *(*uintptr)(unsafe.Pointer(pSubLoop + 24 + 8))
+ goto __154
+__153:
+ pCov = uintptr(0)
+__154:
+ ;
+ if !(Xsqlite3WhereUsesDeferredSeek(tls, pSubWInfo) != 0) {
+ goto __155
+ }
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 0, 0x1)
+__155:
+ ;
+ Xsqlite3WhereEnd(tls, pSubWInfo)
+ Xsqlite3VdbeExplainPop(tls, pParse)
+__141:
+ ;
+ Xsqlite3ExprDelete(tls, db, pDelete)
+__138:
+ ;
+ goto __136
+__136:
+ ii++
+ goto __135
+ goto __137
+__137:
+ ;
+ Xsqlite3VdbeExplainPop(tls, pParse)
+
+ *(*uintptr)(unsafe.Pointer(pLevel + 72)) = pCov
+ if !(pCov != 0) {
+ goto __156
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur = iCovCur
+__156:
+ ;
+ if !(pAndExpr != 0) {
+ goto __157
+ }
+ (*Expr)(unsafe.Pointer(pAndExpr)).FpLeft = uintptr(0)
+ Xsqlite3ExprDelete(tls, db, pAndExpr)
+__157:
+ ;
+ Xsqlite3VdbeChangeP1(tls, v, iRetInit, Xsqlite3VdbeCurrentAddr(tls, v))
+ Xsqlite3VdbeGoto(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk)
+ Xsqlite3VdbeResolveLabel(tls, v, iLoopBody)
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) > 1) {
+ goto __158
+ }
+ Xsqlite3DbFreeNN(tls, db, pOrTab)
+__158:
+ ;
+ if !!(untestedTerms != 0) {
+ goto __159
+ }
+ disableTerm(tls, pLevel, pTerm)
+__159:
+ ;
+ goto __116
+__115:
+ ;
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x40>>6)) != 0) {
+ goto __160
+ }
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = U8(OP_Noop)
+ goto __161
+__160:
+ ;
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fop = aStep[bRev]
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1 = iCur
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2 = 1 + Xsqlite3VdbeAddOp2(tls, v, int32(aStart[bRev]), iCur, addrHalt)
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).Fp5 = U8(SQLITE_STMTSTATUS_FULLSCAN_STEP)
+__161:
+ ;
+__116:
+ ;
+__53:
+ ;
+__39:
+ ;
+__35:
+ ;
+__10:
+ ;
+__8:
+ ;
+ iLoop = func() int32 {
+ if pIdx != 0 {
+ return 1
+ }
+ return 2
+ }()
+__162:
+ iNext = 0
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+ j = (*WhereClause)(unsafe.Pointer(pWC)).FnTerm
+__165:
+ if !(j > 0) {
+ goto __167
+ }
+ skipLikeAddr = 0
+
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&(TERM_VIRTUAL|TERM_CODED) != 0) {
+ goto __168
+ }
+ goto __166
+__168:
+ ;
+ if !((*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&(*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady != uint64(0)) {
+ goto __169
+ }
+
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 1, 0x2)
+ goto __166
+__169:
+ ;
+ pE = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+
+ if !(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0) {
+ goto __170
+ }
+ if !!((*Expr)(unsafe.Pointer(pE)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0)) {
+ goto __171
+ }
+
+ goto __166
+ goto __172
+__171:
+ if !(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&JT_LEFT == JT_LEFT &&
+ !((*Expr)(unsafe.Pointer(pE)).Fflags&U32(EP_OuterON) != U32(0))) {
+ goto __173
+ }
+ goto __166
+ goto __174
+__173:
+ m = Xsqlite3WhereGetMask(tls, pWInfo+592, *(*int32)(unsafe.Pointer(pE + 52)))
+ if !(m&(*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady != 0) {
+ goto __175
+ }
+
+ goto __166
+__175:
+ ;
+__174:
+ ;
+__172:
+ ;
+__170:
+ ;
+ if !(iLoop == 1 && !(Xsqlite3ExprCoveredByIndex(tls, pE, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, pIdx) != 0)) {
+ goto __176
+ }
+ iNext = 2
+ goto __166
+__176:
+ ;
+ if !(iLoop < 3 && int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VARSELECT != 0) {
+ goto __177
+ }
+ if !(iNext == 0) {
+ goto __178
+ }
+ iNext = 3
+__178:
+ ;
+ goto __166
+__177:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_LIKECOND != 0) {
+ goto __179
+ }
+
+ goto __166
+__179:
+ ;
+ Xsqlite3ExprIfFalse(tls, pParse, pE, addrCont, SQLITE_JUMPIFNULL)
+ if !(skipLikeAddr != 0) {
+ goto __180
+ }
+ Xsqlite3VdbeJumpHere(tls, v, skipLikeAddr)
+__180:
+ ;
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED)
+ goto __166
+__166:
+ j--
+ pTerm += 56
+ goto __165
+ goto __167
+__167:
+ ;
+ iLoop = iNext
+ goto __163
+__163:
+ if iLoop > 0 {
+ goto __162
+ }
+ goto __164
+__164:
+ ;
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+ j = (*WhereClause)(unsafe.Pointer(pWC)).FnBase
+__181:
+ if !(j > 0) {
+ goto __183
+ }
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&(TERM_VIRTUAL|TERM_CODED) != 0) {
+ goto __184
+ }
+ goto __182
+__184:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) == 0) {
+ goto __185
+ }
+ goto __182
+__185:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_EQUIV == 0) {
+ goto __186
+ }
+ goto __182
+__186:
+ ;
+ if !((*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor != iCur) {
+ goto __187
+ }
+ goto __182
+__187:
+ ;
+ if !(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0) {
+ goto __188
+ }
+ goto __182
+__188:
+ ;
+ pE1 = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+
+ pAlt = Xsqlite3WhereFindTerm(tls, pWC, iCur, *(*int32)(unsafe.Pointer(pTerm + 32)), notReady,
+ uint32(WO_EQ|WO_IN|WO_IS), uintptr(0))
+ if !(pAlt == uintptr(0)) {
+ goto __189
+ }
+ goto __182
+__189:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pAlt)).FwtFlags)&TERM_CODED != 0) {
+ goto __190
+ }
+ goto __182
+__190:
+ ;
+ if !(int32((*WhereTerm)(unsafe.Pointer(pAlt)).FeOperator)&WO_IN != 0 &&
+ (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pAlt)).FpExpr)).Fflags&U32(EP_xIsSelect) != U32(0) &&
+ (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pAlt)).FpExpr + 32)))).FpEList)).FnExpr > 1) {
+ goto __191
+ }
+ goto __182
+__191:
+ ;
+ *(*Expr)(unsafe.Pointer(bp + 24)) = *(*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pAlt)).FpExpr))
+ (*Expr)(unsafe.Pointer(bp + 24)).FpLeft = (*Expr)(unsafe.Pointer(pE1)).FpLeft
+ Xsqlite3ExprIfFalse(tls, pParse, bp+24, addrCont, SQLITE_JUMPIFNULL)
+ *(*U16)(unsafe.Pointer(pAlt + 18)) |= U16(TERM_CODED)
+ goto __182
+__182:
+ j--
+ pTerm += 56
+ goto __181
+ goto __183
+__183:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ != 0) {
+ goto __192
+ }
+ jmp11 = 0
+ pRJ = (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ
+
+ pTab1 = (*SrcItem)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104)).FpTab
+ if !((*Table)(unsafe.Pointer(pTab1)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __193
+ }
+ r2 = Xsqlite3GetTempRange(tls, pParse, 2)
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab1, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, -1, r2+1)
+ nPk1 = 1
+ goto __194
+__193:
+ pPk3 = Xsqlite3PrimaryKeyIndex(tls, pTab1)
+ nPk1 = int32((*Index)(unsafe.Pointer(pPk3)).FnKeyCol)
+ r2 = Xsqlite3GetTempRange(tls, pParse, nPk1+1)
+ iPk1 = 0
+__195:
+ if !(iPk1 < nPk1) {
+ goto __197
+ }
+ iCol1 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk3)).FaiColumn + uintptr(iPk1)*2)))
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab1, iCur, iCol1, r2+1+iPk1)
+ goto __196
+__196:
+ iPk1++
+ goto __195
+ goto __197
+__197:
+ ;
+__194:
+ ;
+ jmp11 = Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch, 0, r2+1, nPk1)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, r2+1, nPk1, r2)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IdxInsert, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch, r2, r2+1, nPk1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_FilterAdd, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregBloom, 0, r2+1, nPk1)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+ Xsqlite3VdbeJumpHere(tls, v, jmp11)
+ Xsqlite3ReleaseTempRange(tls, pParse, r2, nPk1+1)
+__192:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin != 0) {
+ goto __198
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrFirst = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin)
+
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ == uintptr(0)) {
+ goto __199
+ }
+ goto code_outer_join_constraints
+__199:
+ ;
+__198:
+ ;
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ != 0) {
+ goto __200
+ }
+ pRJ1 = (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ
+ Xsqlite3VdbeAddOp2(tls, v, OP_BeginSubrtn, 0, (*WhereRightJoin)(unsafe.Pointer(pRJ1)).FregReturn)
+ (*WhereRightJoin)(unsafe.Pointer(pRJ1)).FaddrSubrtn = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ (*Parse)(unsafe.Pointer(pParse)).FwithinRJSubrtn++
+
+code_outer_join_constraints:
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+ j = 0
+__201:
+ if !(j < (*WhereClause)(unsafe.Pointer(pWC)).FnBase) {
+ goto __203
+ }
+
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&(TERM_VIRTUAL|TERM_CODED) != 0) {
+ goto __204
+ }
+ goto __202
+__204:
+ ;
+ if !((*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&(*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady != uint64(0)) {
+ goto __205
+ }
+
+ goto __202
+__205:
+ ;
+ if !(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&JT_LTORJ != 0) {
+ goto __206
+ }
+ goto __202
+__206:
+ ;
+ Xsqlite3ExprIfFalse(tls, pParse, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, addrCont, SQLITE_JUMPIFNULL)
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED)
+ goto __202
+__202:
+ j++
+ pTerm += 56
+ goto __201
+ goto __203
+__203:
+ ;
+__200:
+ ;
+ return (*WhereLevel)(unsafe.Pointer(pLevel)).FnotReady
+}
+
+var aStartOp = [8]U8{
+ U8(0),
+ U8(0),
+ U8(OP_Rewind),
+ U8(OP_Last),
+ U8(OP_SeekGT),
+ U8(OP_SeekLT),
+ U8(OP_SeekGE),
+ U8(OP_SeekLE),
+}
+var aEndOp = [4]U8{
+ U8(OP_IdxGE),
+ U8(OP_IdxGT),
+ U8(OP_IdxLE),
+ U8(OP_IdxLT),
+}
+var aStep = [2]U8{U8(OP_Next), U8(OP_Prev)}
+var aStart = [2]U8{U8(OP_Rewind), U8(OP_Last)}
+
+// Generate the code for the loop that finds all non-matched terms
+// for a RIGHT JOIN.
+func Xsqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLevel uintptr) {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pRJ uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ
+ var pSubWhere uintptr = uintptr(0)
+ var pWC uintptr = pWInfo + 104
+ var pSubWInfo uintptr
+ var pLoop uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ var pTabItem uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+
+ var mAll Bitmask = uint64(0)
+ var k int32
+
+ Xsqlite3VdbeExplain(tls, pParse, uint8(1), ts+22251, libc.VaList(bp, (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName))
+
+ for k = 0; k < iLevel; k++ {
+ var iIdxCur int32
+ mAll = mAll | (*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pWInfo+856+uintptr(k)*104)).FpWLoop)).FmaskSelf
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, (*WhereLevel)(unsafe.Pointer(pWInfo+856+uintptr(k)*104)).FiTabCur)
+ iIdxCur = (*WhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104)).FiIdxCur
+ if iIdxCur != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, iIdxCur)
+ }
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&JT_LTORJ == 0 {
+ mAll = mAll | (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf
+ for k = 0; k < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm; k++ {
+ var pTerm uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(k)*56
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&(TERM_VIRTUAL|TERM_SLICE) != 0 &&
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator) != WO_ROWVAL {
+ break
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll & ^mAll != 0 {
+ continue
+ }
+ if (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) {
+ continue
+ }
+ pSubWhere = Xsqlite3ExprAnd(tls, pParse, pSubWhere,
+ Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, 0))
+ }
+ }
+ (*SrcList)(unsafe.Pointer(bp + 8)).FnSrc = 1
+ (*SrcList)(unsafe.Pointer(bp + 8)).FnAlloc = U32(1)
+ libc.X__builtin___memcpy_chk(tls, bp+8+8, pTabItem, uint64(unsafe.Sizeof(SrcItem{})), libc.X__builtin_object_size(tls, bp+8+8, 0))
+ (*SrcItem)(unsafe.Pointer(bp + 8 + 8)).Ffg.Fjointype = U8(0)
+
+ (*Parse)(unsafe.Pointer(pParse)).FwithinRJSubrtn++
+ pSubWInfo = Xsqlite3WhereBegin(tls, pParse, bp+8, pSubWhere, uintptr(0), uintptr(0), uintptr(0),
+ uint16(WHERE_RIGHT_JOIN), 0)
+ if pSubWInfo != 0 {
+ var iCur int32 = (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur
+ var r int32 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ var nPk int32
+ var jmp int32
+ var addrCont int32 = Xsqlite3WhereContinueLabel(tls, pSubWInfo)
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pTabItem)).FpTab
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) {
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, -1, r)
+ nPk = 1
+ } else {
+ var iPk int32
+ var pPk uintptr = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ nPk = int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPk - 1
+ for iPk = 0; iPk < nPk; iPk++ {
+ var iCol int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(iPk)*2)))
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, iCol, r+iPk)
+ }
+ }
+ jmp = Xsqlite3VdbeAddOp4Int(tls, v, OP_Filter, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregBloom, 0, r, nPk)
+
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_Found, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch, addrCont, r, nPk)
+
+ Xsqlite3VdbeJumpHere(tls, v, jmp)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregReturn, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FaddrSubrtn)
+ Xsqlite3WhereEnd(tls, pSubWInfo)
+ }
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSubWhere)
+ Xsqlite3VdbeExplainPop(tls, pParse)
+
+ (*Parse)(unsafe.Pointer(pParse)).FwithinRJSubrtn--
+}
+
+func whereOrInfoDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ Xsqlite3WhereClauseClear(tls, p)
+ Xsqlite3DbFree(tls, db, p)
+}
+
+func whereAndInfoDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ Xsqlite3WhereClauseClear(tls, p)
+ Xsqlite3DbFree(tls, db, p)
+}
+
+func whereClauseInsert(tls *libc.TLS, pWC uintptr, p uintptr, wtFlags U16) int32 {
+ var pTerm uintptr
+ var idx int32
+
+ if (*WhereClause)(unsafe.Pointer(pWC)).FnTerm >= (*WhereClause)(unsafe.Pointer(pWC)).FnSlot {
+ var pOld uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+ var db uintptr = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)).Fdb
+ (*WhereClause)(unsafe.Pointer(pWC)).Fa = Xsqlite3WhereMalloc(tls, (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo, uint64(unsafe.Sizeof(WhereTerm{}))*uint64((*WhereClause)(unsafe.Pointer(pWC)).FnSlot)*uint64(2))
+ if (*WhereClause)(unsafe.Pointer(pWC)).Fa == uintptr(0) {
+ if int32(wtFlags)&TERM_DYNAMIC != 0 {
+ Xsqlite3ExprDelete(tls, db, p)
+ }
+ (*WhereClause)(unsafe.Pointer(pWC)).Fa = pOld
+ return 0
+ }
+ libc.X__builtin___memcpy_chk(tls, (*WhereClause)(unsafe.Pointer(pWC)).Fa, pOld, uint64(unsafe.Sizeof(WhereTerm{}))*uint64((*WhereClause)(unsafe.Pointer(pWC)).FnTerm), libc.X__builtin_object_size(tls, (*WhereClause)(unsafe.Pointer(pWC)).Fa, 0))
+ (*WhereClause)(unsafe.Pointer(pWC)).FnSlot = (*WhereClause)(unsafe.Pointer(pWC)).FnSlot * 2
+ }
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(libc.AssignInt32(&idx, libc.PostIncInt32(&(*WhereClause)(unsafe.Pointer(pWC)).FnTerm, 1)))*56
+ if int32(wtFlags)&TERM_VIRTUAL == 0 {
+ (*WhereClause)(unsafe.Pointer(pWC)).FnBase = (*WhereClause)(unsafe.Pointer(pWC)).FnTerm
+ }
+ if p != 0 && (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Unlikely) != U32(0) {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb = LogEst(int32(Xsqlite3LogEst(tls, uint64((*Expr)(unsafe.Pointer(p)).FiTable))) - 270)
+ } else {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb = int16(1)
+ }
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr = Xsqlite3ExprSkipCollateAndLikely(tls, p)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags = wtFlags
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FpWC = pWC
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FiParent = -1
+ libc.X__builtin___memset_chk(tls, pTerm+20, 0, uint64(unsafe.Sizeof(WhereTerm{}))-uint64(uintptr(0)+20), libc.X__builtin_object_size(tls, pTerm+20, 0))
+ return idx
+}
+
+func allowedOp(tls *libc.TLS, op int32) int32 {
+ return libc.Bool32(op == TK_IN || op >= TK_EQ && op <= TK_GE || op == TK_ISNULL || op == TK_IS)
+}
+
+func exprCommute(tls *libc.TLS, pParse uintptr, pExpr uintptr) U16 {
+ if int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_VECTOR ||
+ int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpRight)).Fop) == TK_VECTOR ||
+ Xsqlite3BinaryCompareCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, (*Expr)(unsafe.Pointer(pExpr)).FpRight) != Xsqlite3BinaryCompareCollSeq(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, (*Expr)(unsafe.Pointer(pExpr)).FpLeft) {
+ *(*U32)(unsafe.Pointer(pExpr + 4)) ^= U32(EP_Commuted)
+ }
+ {
+ var t uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+ (*Expr)(unsafe.Pointer(pExpr)).FpRight = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ (*Expr)(unsafe.Pointer(pExpr)).FpLeft = t
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) >= TK_GT {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(int32((*Expr)(unsafe.Pointer(pExpr)).Fop) - TK_GT ^ 2 + TK_GT)
+ }
+ return U16(0)
+}
+
+func operatorMask(tls *libc.TLS, op int32) U16 {
+ var c U16
+
+ if op == TK_IN {
+ c = U16(WO_IN)
+ } else if op == TK_ISNULL {
+ c = U16(WO_ISNULL)
+ } else if op == TK_IS {
+ c = U16(WO_IS)
+ } else {
+ c = U16(int32(WO_EQ) << (op - TK_EQ))
+ }
+
+ return c
+}
+
+func isLikeOrGlob(tls *libc.TLS, pParse uintptr, pExpr uintptr, ppPrefix uintptr, pisComplete uintptr, pnoCase uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var z uintptr = uintptr(0)
+ var pRight uintptr
+ var pLeft uintptr
+ var pList uintptr
+ var c U8
+ var cnt int32
+
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pVal uintptr = uintptr(0)
+ var op int32
+ var rc int32
+
+ if !(Xsqlite3IsLikeFunction(tls, db, pExpr, pnoCase, bp) != 0) {
+ return 0
+ }
+
+ pList = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ pLeft = (*ExprList_item)(unsafe.Pointer(pList + 8 + 1*32)).FpExpr
+
+ pRight = Xsqlite3ExprSkipCollate(tls, (*ExprList_item)(unsafe.Pointer(pList+8)).FpExpr)
+ op = int32((*Expr)(unsafe.Pointer(pRight)).Fop)
+ if op == TK_VARIABLE && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableQPSG) == uint64(0) {
+ var pReprepare uintptr = (*Parse)(unsafe.Pointer(pParse)).FpReprepare
+ var iCol int32 = int32((*Expr)(unsafe.Pointer(pRight)).FiColumn)
+ pVal = Xsqlite3VdbeGetBoundValue(tls, pReprepare, iCol, uint8(SQLITE_AFF_BLOB))
+ if pVal != 0 && Xsqlite3_value_type(tls, pVal) == SQLITE_TEXT {
+ z = Xsqlite3_value_text(tls, pVal)
+ }
+ Xsqlite3VdbeSetVarmask(tls, (*Parse)(unsafe.Pointer(pParse)).FpVdbe, iCol)
+
+ } else if op == TK_STRING {
+ z = *(*uintptr)(unsafe.Pointer(pRight + 8))
+ }
+ if z != 0 {
+ cnt = 0
+ for int32(libc.AssignUint8(&c, *(*U8)(unsafe.Pointer(z + uintptr(cnt))))) != 0 && int32(c) != int32(*(*U8)(unsafe.Pointer(bp))) && int32(c) != int32(*(*U8)(unsafe.Pointer(bp + 1))) && int32(c) != int32(*(*U8)(unsafe.Pointer(bp + 2))) {
+ cnt++
+ if int32(c) == int32(*(*U8)(unsafe.Pointer(bp + 3))) && int32(*(*U8)(unsafe.Pointer(z + uintptr(cnt)))) != 0 {
+ cnt++
+ }
+ }
+
+ if cnt != 0 && 255 != int32(*(*U8)(unsafe.Pointer(z + uintptr(cnt-1)))) && (cnt > 1 || int32(*(*U8)(unsafe.Pointer(z))) != int32(*(*U8)(unsafe.Pointer(bp + 3)))) {
+ var pPrefix uintptr
+
+ *(*int32)(unsafe.Pointer(pisComplete)) = libc.Bool32(int32(c) == int32(*(*U8)(unsafe.Pointer(bp))) && int32(*(*U8)(unsafe.Pointer(z + uintptr(cnt+1)))) == 0)
+
+ pPrefix = Xsqlite3Expr(tls, db, TK_STRING, z)
+ if pPrefix != 0 {
+ var iFrom int32
+ var iTo int32
+ var zNew uintptr
+
+ zNew = *(*uintptr)(unsafe.Pointer(pPrefix + 8))
+ *(*int8)(unsafe.Pointer(zNew + uintptr(cnt))) = int8(0)
+ for iFrom = libc.AssignInt32(&iTo, 0); iFrom < cnt; iFrom++ {
+ if int32(*(*int8)(unsafe.Pointer(zNew + uintptr(iFrom)))) == int32(*(*U8)(unsafe.Pointer(bp + 3))) {
+ iFrom++
+ }
+ *(*int8)(unsafe.Pointer(zNew + uintptr(libc.PostIncInt32(&iTo, 1)))) = *(*int8)(unsafe.Pointer(zNew + uintptr(iFrom)))
+ }
+ *(*int8)(unsafe.Pointer(zNew + uintptr(iTo))) = int8(0)
+
+ if int32((*Expr)(unsafe.Pointer(pLeft)).Fop) != TK_COLUMN ||
+ int32(Xsqlite3ExprAffinity(tls, pLeft)) != SQLITE_AFF_TEXT ||
+ (*Expr)(unsafe.Pointer(pLeft)).Fflags&U32(EP_WinFunc|EP_Subrtn) == U32(0) &&
+ *(*uintptr)(unsafe.Pointer(pLeft + 64)) != 0 &&
+ int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 64)))).FeTabType) == TABTYP_VTAB {
+ var isNum int32
+
+ isNum = Xsqlite3AtoF(tls, zNew, bp+8, iTo, uint8(SQLITE_UTF8))
+ if isNum <= 0 {
+ if iTo == 1 && int32(*(*int8)(unsafe.Pointer(zNew))) == '-' {
+ isNum = +1
+ } else {
+ *(*int8)(unsafe.Pointer(zNew + uintptr(iTo-1)))++
+ isNum = Xsqlite3AtoF(tls, zNew, bp+8, iTo, uint8(SQLITE_UTF8))
+ *(*int8)(unsafe.Pointer(zNew + uintptr(iTo-1)))--
+ }
+ }
+ if isNum > 0 {
+ Xsqlite3ExprDelete(tls, db, pPrefix)
+ Xsqlite3ValueFree(tls, pVal)
+ return 0
+ }
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppPrefix)) = pPrefix
+
+ if op == TK_VARIABLE {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ Xsqlite3VdbeSetVarmask(tls, v, int32((*Expr)(unsafe.Pointer(pRight)).FiColumn))
+
+ if *(*int32)(unsafe.Pointer(pisComplete)) != 0 && *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pRight + 8)) + 1)) != 0 {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3ExprCodeTarget(tls, pParse, pRight, r1)
+ Xsqlite3VdbeChangeP3(tls, v, Xsqlite3VdbeCurrentAddr(tls, v)-1, 0)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ }
+ }
+ } else {
+ z = uintptr(0)
+ }
+ }
+
+ rc = libc.Bool32(z != uintptr(0))
+ Xsqlite3ValueFree(tls, pVal)
+ return rc
+}
+
+func isAuxiliaryVtabOperator(tls *libc.TLS, db uintptr, pExpr uintptr, peOp2 uintptr, ppLeft uintptr, ppRight uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_FUNCTION {
+ var pList uintptr
+ var pCol uintptr
+ var i int32
+
+ pList = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+ if pList == uintptr(0) || (*ExprList)(unsafe.Pointer(pList)).FnExpr != 2 {
+ return 0
+ }
+
+ pCol = (*ExprList_item)(unsafe.Pointer(pList + 8 + 1*32)).FpExpr
+
+ if int32((*Expr)(unsafe.Pointer(pCol)).Fop) == TK_COLUMN && int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCol + 64)))).FeTabType) == TABTYP_VTAB {
+ for i = 0; i < int32(uint64(unsafe.Sizeof(aOp))/uint64(unsafe.Sizeof(Op2{}))); i++ {
+ if Xsqlite3StrICmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), aOp[i].FzOp) == 0 {
+ *(*uint8)(unsafe.Pointer(peOp2)) = aOp[i].FeOp2
+ *(*uintptr)(unsafe.Pointer(ppRight)) = (*ExprList_item)(unsafe.Pointer(pList + 8)).FpExpr
+ *(*uintptr)(unsafe.Pointer(ppLeft)) = pCol
+ return 1
+ }
+ }
+ }
+
+ pCol = (*ExprList_item)(unsafe.Pointer(pList + 8)).FpExpr
+
+ if int32((*Expr)(unsafe.Pointer(pCol)).Fop) == TK_COLUMN && int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCol + 64)))).FeTabType) == TABTYP_VTAB {
+ var pVtab uintptr
+ var pMod uintptr
+
+ pVtab = (*VTable)(unsafe.Pointer(Xsqlite3GetVTable(tls, db, *(*uintptr)(unsafe.Pointer(pCol + 64))))).FpVtab
+
+ pMod = (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FpModule
+ if (*Sqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction != uintptr(0) {
+ i = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction})).f(tls, pVtab, 2, *(*uintptr)(unsafe.Pointer(pExpr + 8)), bp, bp+8)
+ if i >= SQLITE_INDEX_CONSTRAINT_FUNCTION {
+ *(*uint8)(unsafe.Pointer(peOp2)) = uint8(i)
+ *(*uintptr)(unsafe.Pointer(ppRight)) = (*ExprList_item)(unsafe.Pointer(pList + 8 + 1*32)).FpExpr
+ *(*uintptr)(unsafe.Pointer(ppLeft)) = pCol
+ return 1
+ }
+ }
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NE || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_ISNOT || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NOTNULL {
+ var res int32 = 0
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ var pRight uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpRight
+
+ if int32((*Expr)(unsafe.Pointer(pLeft)).Fop) == TK_COLUMN && int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 64)))).FeTabType) == TABTYP_VTAB {
+ res++
+ }
+
+ if pRight != 0 && (int32((*Expr)(unsafe.Pointer(pRight)).Fop) == TK_COLUMN && int32((*Table)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pRight + 64)))).FeTabType) == TABTYP_VTAB) {
+ res++
+ {
+ var t uintptr = pLeft
+ pLeft = pRight
+ pRight = t
+ }
+
+ }
+ *(*uintptr)(unsafe.Pointer(ppLeft)) = pLeft
+ *(*uintptr)(unsafe.Pointer(ppRight)) = pRight
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NE {
+ *(*uint8)(unsafe.Pointer(peOp2)) = uint8(SQLITE_INDEX_CONSTRAINT_NE)
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_ISNOT {
+ *(*uint8)(unsafe.Pointer(peOp2)) = uint8(SQLITE_INDEX_CONSTRAINT_ISNOT)
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NOTNULL {
+ *(*uint8)(unsafe.Pointer(peOp2)) = uint8(SQLITE_INDEX_CONSTRAINT_ISNOTNULL)
+ }
+ return res
+ }
+ return 0
+}
+
+type Op2 = struct {
+ FzOp uintptr
+ FeOp2 uint8
+ F__ccgo_pad1 [7]byte
+}
+
+var aOp = [4]Op2{
+ {FzOp: ts + 16522, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH)},
+ {FzOp: ts + 15850, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB)},
+ {FzOp: ts + 15370, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE)},
+ {FzOp: ts + 22265, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP)},
+}
+
+func transferJoinMarkings(tls *libc.TLS, pDerived uintptr, pBase uintptr) {
+ if pDerived != 0 && (*Expr)(unsafe.Pointer(pBase)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) {
+ *(*U32)(unsafe.Pointer(pDerived + 4)) |= (*Expr)(unsafe.Pointer(pBase)).Fflags & U32(EP_OuterON|EP_InnerON)
+ *(*int32)(unsafe.Pointer(pDerived + 52)) = *(*int32)(unsafe.Pointer(pBase + 52))
+ }
+}
+
+func markTermAsChild(tls *libc.TLS, pWC uintptr, iChild int32, iParent int32) {
+ (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(iChild)*56)).FiParent = iParent
+ (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(iChild)*56)).FtruthProb = (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(iParent)*56)).FtruthProb
+ (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(iParent)*56)).FnChild++
+}
+
+func whereNthSubterm(tls *libc.TLS, pTerm uintptr, N int32) uintptr {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator) != WO_AND {
+ if N == 0 {
+ return pTerm
+ }
+ return uintptr(0)
+ }
+ if N < (*WhereAndInfo)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTerm + 32)))).Fwc.FnTerm {
+ return (*WhereAndInfo)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTerm + 32)))).Fwc.Fa + uintptr(N)*56
+ }
+ return uintptr(0)
+}
+
+func whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintptr, pTwo uintptr) {
+ var eOp U16 = U16(int32((*WhereTerm)(unsafe.Pointer(pOne)).FeOperator) | int32((*WhereTerm)(unsafe.Pointer(pTwo)).FeOperator))
+ var db uintptr
+ var pNew uintptr
+ var op int32
+ var idxNew int32
+
+ if (int32((*WhereTerm)(unsafe.Pointer(pOne)).FwtFlags)|int32((*WhereTerm)(unsafe.Pointer(pTwo)).FwtFlags))&TERM_VNULL != 0 {
+ return
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pOne)).FeOperator)&(WO_EQ|int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ)|int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) == 0 {
+ return
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTwo)).FeOperator)&(WO_EQ|int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ)|int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) == 0 {
+ return
+ }
+ if int32(eOp)&(WO_EQ|int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ)) != int32(eOp) &&
+ int32(eOp)&(WO_EQ|int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) != int32(eOp) {
+ return
+ }
+
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOne)).FpExpr)).FpLeft, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTwo)).FpExpr)).FpLeft, -1) != 0 {
+ return
+ }
+ if Xsqlite3ExprCompare(tls, uintptr(0), (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOne)).FpExpr)).FpRight, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTwo)).FpExpr)).FpRight, -1) != 0 {
+ return
+ }
+
+ if int32(eOp)&(int32(eOp)-1) != 0 {
+ if int32(eOp)&(int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ)) != 0 {
+ eOp = U16(int32(WO_EQ) << (TK_LE - TK_EQ))
+ } else {
+ eOp = U16(int32(WO_EQ) << (TK_GE - TK_EQ))
+ }
+ }
+ db = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)).Fdb
+ pNew = Xsqlite3ExprDup(tls, db, (*WhereTerm)(unsafe.Pointer(pOne)).FpExpr, 0)
+ if pNew == uintptr(0) {
+ return
+ }
+ for op = TK_EQ; int32(eOp) != int32(WO_EQ)<<(op-TK_EQ); op++ {
+ }
+ (*Expr)(unsafe.Pointer(pNew)).Fop = U8(op)
+ idxNew = whereClauseInsert(tls, pWC, pNew, uint16(TERM_VIRTUAL|TERM_DYNAMIC))
+ exprAnalyze(tls, pSrc, pWC, idxNew)
+}
+
+func exprAnalyzeOrTerm(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) {
+ var pWInfo uintptr = (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pTerm uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ var pExpr uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ var i int32
+ var pOrWc uintptr
+ var pOrTerm uintptr
+ var pOrInfo uintptr
+ var chngToIN Bitmask
+ var indexable Bitmask
+
+ *(*uintptr)(unsafe.Pointer(pTerm + 32)) = libc.AssignUintptr(&pOrInfo, Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(WhereOrInfo{}))))
+ if pOrInfo == uintptr(0) {
+ return
+ }
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_ORINFO)
+ pOrWc = pOrInfo
+ libc.X__builtin___memset_chk(tls, pOrWc+40, 0, uint64(unsafe.Sizeof([8]WhereTerm{})), libc.X__builtin_object_size(tls, pOrWc+40, 0))
+ Xsqlite3WhereClauseInit(tls, pOrWc, pWInfo)
+ Xsqlite3WhereSplit(tls, pOrWc, pExpr, uint8(TK_OR))
+ Xsqlite3WhereExprAnalyze(tls, pSrc, pOrWc)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+
+ indexable = libc.CplUint64(uint64(0))
+ chngToIN = libc.CplUint64(uint64(0))
+ i = (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm - 1
+ pOrTerm = (*WhereClause)(unsafe.Pointer(pOrWc)).Fa
+__1:
+ if !(i >= 0 && indexable != 0) {
+ goto __3
+ }
+ {
+ if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator)&WO_SINGLE == 0 {
+ var pAndInfo uintptr
+
+ chngToIN = uint64(0)
+ pAndInfo = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(WhereAndInfo{})))
+ if pAndInfo != 0 {
+ var pAndWC uintptr
+ var pAndTerm uintptr
+ var j int32
+ var b Bitmask = uint64(0)
+ *(*uintptr)(unsafe.Pointer(pOrTerm + 32)) = pAndInfo
+ *(*U16)(unsafe.Pointer(pOrTerm + 18)) |= U16(TERM_ANDINFO)
+ (*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator = U16(WO_AND)
+ (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor = -1
+ pAndWC = pAndInfo
+ libc.X__builtin___memset_chk(tls, pAndWC+40, 0, uint64(unsafe.Sizeof([8]WhereTerm{})), libc.X__builtin_object_size(tls, pAndWC+40, 0))
+ Xsqlite3WhereClauseInit(tls, pAndWC, (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)
+ Xsqlite3WhereSplit(tls, pAndWC, (*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr, uint8(TK_AND))
+ Xsqlite3WhereExprAnalyze(tls, pSrc, pAndWC)
+ (*WhereClause)(unsafe.Pointer(pAndWC)).FpOuter = pWC
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ j = 0
+ pAndTerm = (*WhereClause)(unsafe.Pointer(pAndWC)).Fa
+ __4:
+ if !(j < (*WhereClause)(unsafe.Pointer(pAndWC)).FnTerm) {
+ goto __6
+ }
+ {
+ if allowedOp(tls, int32((*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pAndTerm)).FpExpr)).Fop)) != 0 ||
+ int32((*WhereTerm)(unsafe.Pointer(pAndTerm)).FeOperator) == WO_AUX {
+ b = b | Xsqlite3WhereGetMask(tls, pWInfo+592, (*WhereTerm)(unsafe.Pointer(pAndTerm)).FleftCursor)
+ }
+
+ }
+ goto __5
+ __5:
+ j++
+ pAndTerm += 56
+ goto __4
+ goto __6
+ __6:
+ }
+ indexable = indexable & b
+ }
+ } else if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FwtFlags)&TERM_COPIED != 0 {
+ } else {
+ var b Bitmask
+ b = Xsqlite3WhereGetMask(tls, pWInfo+592, (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor)
+ if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FwtFlags)&TERM_VIRTUAL != 0 {
+ var pOther uintptr = (*WhereClause)(unsafe.Pointer(pOrWc)).Fa + uintptr((*WhereTerm)(unsafe.Pointer(pOrTerm)).FiParent)*56
+ b = b | Xsqlite3WhereGetMask(tls, pWInfo+592, (*WhereTerm)(unsafe.Pointer(pOther)).FleftCursor)
+ }
+ indexable = indexable & b
+ if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator)&WO_EQ == 0 {
+ chngToIN = uint64(0)
+ } else {
+ chngToIN = chngToIN & b
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i--
+ pOrTerm += 56
+ goto __1
+ goto __3
+__3:
+ ;
+ (*WhereOrInfo)(unsafe.Pointer(pOrInfo)).Findexable = indexable
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(WO_OR)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor = -1
+ if indexable != 0 {
+ (*WhereClause)(unsafe.Pointer(pWC)).FhasOr = U8(1)
+ }
+
+ if indexable != 0 && (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm == 2 {
+ var iOne int32 = 0
+ var pOne uintptr
+ for libc.AssignUintptr(&pOne, whereNthSubterm(tls, (*WhereClause)(unsafe.Pointer(pOrWc)).Fa, libc.PostIncInt32(&iOne, 1))) != uintptr(0) {
+ var iTwo int32 = 0
+ var pTwo uintptr
+ for libc.AssignUintptr(&pTwo, whereNthSubterm(tls, (*WhereClause)(unsafe.Pointer(pOrWc)).Fa+1*56, libc.PostIncInt32(&iTwo, 1))) != uintptr(0) {
+ whereCombineDisjuncts(tls, pSrc, pWC, pOne, pTwo)
+ }
+ }
+ }
+
+ if chngToIN != 0 {
+ var okToChngToIN int32 = 0
+ var iColumn int32 = -1
+ var iCursor int32 = -1
+ var j int32 = 0
+
+ for j = 0; j < 2 && !(okToChngToIN != 0); j++ {
+ var pLeft uintptr = uintptr(0)
+ pOrTerm = (*WhereClause)(unsafe.Pointer(pOrWc)).Fa
+ i = (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm - 1
+ __7:
+ if !(i >= 0) {
+ goto __9
+ }
+ {
+ *(*U16)(unsafe.Pointer(pOrTerm + 18)) &= libc.Uint16FromInt32(libc.CplInt32(TERM_OK))
+ if (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor == iCursor {
+ goto __8
+ }
+ if chngToIN&Xsqlite3WhereGetMask(tls, pWInfo+592,
+ (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor) == uint64(0) {
+ goto __8
+ }
+
+ iColumn = *(*int32)(unsafe.Pointer(pOrTerm + 32))
+ iCursor = (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor
+ pLeft = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpLeft
+ goto __9
+
+ }
+ goto __8
+ __8:
+ i--
+ pOrTerm += 56
+ goto __7
+ goto __9
+ __9:
+ ;
+ if i < 0 {
+ break
+ }
+
+ okToChngToIN = 1
+ __10:
+ if !(i >= 0 && okToChngToIN != 0) {
+ goto __12
+ }
+ {
+ if (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor != iCursor {
+ *(*U16)(unsafe.Pointer(pOrTerm + 18)) &= libc.Uint16FromInt32(libc.CplInt32(TERM_OK))
+ } else if *(*int32)(unsafe.Pointer(pOrTerm + 32)) != iColumn || iColumn == -2 &&
+ Xsqlite3ExprCompare(tls, pParse, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpLeft, pLeft, -1) != 0 {
+ okToChngToIN = 0
+ } else {
+ var affLeft int32
+ var affRight int32
+
+ affRight = int32(Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpRight))
+ affLeft = int32(Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpLeft))
+ if affRight != 0 && affRight != affLeft {
+ okToChngToIN = 0
+ } else {
+ *(*U16)(unsafe.Pointer(pOrTerm + 18)) |= U16(TERM_OK)
+ }
+ }
+
+ }
+ goto __11
+ __11:
+ i--
+ pOrTerm += 56
+ goto __10
+ goto __12
+ __12:
+ }
+
+ if okToChngToIN != 0 {
+ var pDup uintptr
+ var pList uintptr = uintptr(0)
+ var pLeft uintptr = uintptr(0)
+ var pNew uintptr
+
+ i = (*WhereClause)(unsafe.Pointer(pOrWc)).FnTerm - 1
+ pOrTerm = (*WhereClause)(unsafe.Pointer(pOrWc)).Fa
+ __13:
+ if !(i >= 0) {
+ goto __15
+ }
+ {
+ if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FwtFlags)&TERM_OK == 0 {
+ goto __14
+ }
+
+ pDup = Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpRight, 0)
+ pList = Xsqlite3ExprListAppend(tls, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse, pList, pDup)
+ pLeft = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pOrTerm)).FpExpr)).FpLeft
+
+ }
+ goto __14
+ __14:
+ i--
+ pOrTerm += 56
+ goto __13
+ goto __15
+ __15:
+ ;
+ pDup = Xsqlite3ExprDup(tls, db, pLeft, 0)
+ pNew = Xsqlite3PExpr(tls, pParse, TK_IN, pDup, uintptr(0))
+ if pNew != 0 {
+ var idxNew int32
+ transferJoinMarkings(tls, pNew, pExpr)
+
+ *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList
+ idxNew = whereClauseInsert(tls, pWC, pNew, uint16(TERM_VIRTUAL|TERM_DYNAMIC))
+
+ exprAnalyze(tls, pSrc, pWC, idxNew)
+
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ } else {
+ Xsqlite3ExprListDelete(tls, db, pList)
+ }
+ }
+ }
+}
+
+func termIsEquivalence(tls *libc.TLS, pParse uintptr, pExpr uintptr) int32 {
+ var aff1 int8
+ var aff2 int8
+ var pColl uintptr
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_Transitive) == U32(0)) {
+ return 0
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_EQ && int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_IS {
+ return 0
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ return 0
+ }
+ aff1 = Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ aff2 = Xsqlite3ExprAffinity(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ if int32(aff1) != int32(aff2) &&
+ (!(int32(aff1) >= SQLITE_AFF_NUMERIC) || !(int32(aff2) >= SQLITE_AFF_NUMERIC)) {
+ return 0
+ }
+ pColl = Xsqlite3ExprCompareCollSeq(tls, pParse, pExpr)
+ if Xsqlite3IsBinary(tls, pColl) != 0 {
+ return 1
+ }
+ return Xsqlite3ExprCollSeqMatch(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+}
+
+func exprSelectUsage(tls *libc.TLS, pMaskSet uintptr, pS uintptr) Bitmask {
+ var mask Bitmask = uint64(0)
+ for pS != 0 {
+ var pSrc uintptr = (*Select)(unsafe.Pointer(pS)).FpSrc
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, (*Select)(unsafe.Pointer(pS)).FpEList)
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, (*Select)(unsafe.Pointer(pS)).FpGroupBy)
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, (*Select)(unsafe.Pointer(pS)).FpOrderBy)
+ mask = mask | Xsqlite3WhereExprUsage(tls, pMaskSet, (*Select)(unsafe.Pointer(pS)).FpWhere)
+ mask = mask | Xsqlite3WhereExprUsage(tls, pMaskSet, (*Select)(unsafe.Pointer(pS)).FpHaving)
+ if pSrc != uintptr(0) {
+ var i int32
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pSrc)).FnSrc; i++ {
+ mask = mask | exprSelectUsage(tls, pMaskSet, (*SrcItem)(unsafe.Pointer(pSrc+8+uintptr(i)*104)).FpSelect)
+ if int32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 60 + 4))&0x400>>10) == 0 {
+ mask = mask | Xsqlite3WhereExprUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 72)))
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 60 + 4))&0x4>>2)) != 0 {
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104 + 88)))
+ }
+ }
+ }
+ pS = (*Select)(unsafe.Pointer(pS)).FpPrior
+ }
+ return mask
+}
+
+func exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr uintptr, j int32) int32 {
+ var pIdx uintptr
+ var i int32
+ var iCur int32
+ for __ccgo := true; __ccgo; __ccgo = libc.PreIncInt32(&j, 1) < (*SrcList)(unsafe.Pointer(pFrom)).FnSrc {
+ iCur = (*SrcItem)(unsafe.Pointer(pFrom + 8 + uintptr(j)*104)).FiCursor
+ for pIdx = (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pFrom + 8 + uintptr(j)*104)).FpTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if (*Index)(unsafe.Pointer(pIdx)).FaColExpr == uintptr(0) {
+ continue
+ }
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); i++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -2 {
+ continue
+ }
+
+ if Xsqlite3ExprCompareSkip(tls, pExpr, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(i)*32)).FpExpr, iCur) == 0 &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_STRING {
+ *(*int32)(unsafe.Pointer(aiCurCol)) = iCur
+ *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -2
+ return 1
+ }
+ }
+ }
+ }
+ return 0
+}
+
+func exprMightBeIndexed(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr uintptr, op int32) int32 {
+ var i int32
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_VECTOR && (op >= TK_GT && op <= TK_GE) {
+ pExpr = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8)).FpExpr
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN {
+ *(*int32)(unsafe.Pointer(aiCurCol)) = (*Expr)(unsafe.Pointer(pExpr)).FiTable
+ *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ return 1
+ }
+
+ for i = 0; i < (*SrcList)(unsafe.Pointer(pFrom)).FnSrc; i++ {
+ var pIdx uintptr
+ for pIdx = (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pFrom + 8 + uintptr(i)*104)).FpTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if (*Index)(unsafe.Pointer(pIdx)).FaColExpr != 0 {
+ return exprMightBeIndexed2(tls, pFrom, aiCurCol, pExpr, i)
+ }
+ }
+ }
+ return 0
+}
+
+func exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pWInfo uintptr = (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo
+ var pTerm uintptr
+ var pMaskSet uintptr
+ var pExpr uintptr
+ var prereqLeft Bitmask
+ var prereqAll Bitmask
+ var extraRight Bitmask = uint64(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ *(*int32)(unsafe.Pointer(bp + 20)) = 0
+ var op int32
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ *(*uint8)(unsafe.Pointer(bp + 24)) = uint8(0)
+ var nLeft int32
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return
+ }
+
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ pMaskSet = pWInfo + 592
+ pExpr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+
+ (*WhereMaskSet)(unsafe.Pointer(pMaskSet)).FbVarSelect = 0
+ prereqLeft = Xsqlite3WhereExprUsage(tls, pMaskSet, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ op = int32((*Expr)(unsafe.Pointer(pExpr)).Fop)
+ if op == TK_IN {
+ if Xsqlite3ExprCheckIN(tls, pParse, pExpr) != 0 {
+ return
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight = exprSelectUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+ } else {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight = Xsqlite3WhereExprListUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(pExpr + 32)))
+ }
+ prereqAll = prereqLeft | (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight
+ } else {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight = Xsqlite3WhereExprUsage(tls, pMaskSet, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ if (*Expr)(unsafe.Pointer(pExpr)).FpLeft == uintptr(0) ||
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect|EP_IfNullRow) != U32(0) ||
+ *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) {
+ prereqAll = Xsqlite3WhereExprUsageNN(tls, pMaskSet, pExpr)
+ } else {
+ prereqAll = prereqLeft | (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight
+ }
+ }
+ if (*WhereMaskSet)(unsafe.Pointer(pMaskSet)).FbVarSelect != 0 {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_VARSELECT)
+ }
+
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0) {
+ var x Bitmask = Xsqlite3WhereGetMask(tls, pMaskSet, *(*int32)(unsafe.Pointer(pExpr + 52)))
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) {
+ prereqAll = prereqAll | x
+ extraRight = x - uint64(1)
+
+ if prereqAll>>1 >= x {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22272, 0)
+ return
+ }
+ } else if prereqAll>>1 >= x {
+ if (*SrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*SrcItem)(unsafe.Pointer(pSrc+8)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22272, 0)
+ return
+ }
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_InnerON))
+ }
+ }
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = prereqAll
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor = -1
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FiParent = -1
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(0)
+ if allowedOp(tls, op) != 0 {
+ var pLeft uintptr = Xsqlite3ExprSkipCollate(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)
+ var pRight uintptr = Xsqlite3ExprSkipCollate(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight)
+ var opMask U16
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&prereqLeft == uint64(0) {
+ opMask = uint16(WO_ALL)
+ } else {
+ opMask = uint16(WO_EQUIV)
+ }
+
+ if *(*int32)(unsafe.Pointer(pTerm + 32 + 4)) > 0 {
+ pLeft = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 32)) + 8 + uintptr(*(*int32)(unsafe.Pointer(pTerm + 32 + 4))-1)*32)).FpExpr
+ }
+
+ if exprMightBeIndexed(tls, pSrc, bp, pLeft, op) != 0 {
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor = *(*int32)(unsafe.Pointer(bp))
+
+ *(*int32)(unsafe.Pointer(pTerm + 32)) = *(*int32)(unsafe.Pointer(bp + 1*4))
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(int32(operatorMask(tls, op)) & int32(opMask))
+ }
+ if op == TK_IS {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_IS)
+ }
+ if pRight != 0 &&
+ exprMightBeIndexed(tls, pSrc, bp, pRight, op) != 0 &&
+ !((*Expr)(unsafe.Pointer(pRight)).Fflags&U32(EP_FixedCol) != U32(0)) {
+ var pNew uintptr
+ var pDup uintptr
+ var eExtraOp U16 = U16(0)
+
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor >= 0 {
+ var idxNew int32
+ pDup = Xsqlite3ExprDup(tls, db, pExpr, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ExprDelete(tls, db, pDup)
+ return
+ }
+ idxNew = whereClauseInsert(tls, pWC, pDup, uint16(TERM_VIRTUAL|TERM_DYNAMIC))
+ if idxNew == 0 {
+ return
+ }
+ pNew = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxNew)*56
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ if op == TK_IS {
+ *(*U16)(unsafe.Pointer(pNew + 18)) |= U16(TERM_IS)
+ }
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_COPIED)
+
+ if termIsEquivalence(tls, pParse, pDup) != 0 {
+ *(*U16)(unsafe.Pointer(pTerm + 20)) |= U16(WO_EQUIV)
+ eExtraOp = U16(WO_EQUIV)
+ }
+ } else {
+ pDup = pExpr
+ pNew = pTerm
+ }
+ *(*U16)(unsafe.Pointer(pNew + 18)) |= U16(int32(exprCommute(tls, pParse, pDup)))
+ (*WhereTerm)(unsafe.Pointer(pNew)).FleftCursor = *(*int32)(unsafe.Pointer(bp))
+
+ *(*int32)(unsafe.Pointer(pNew + 32)) = *(*int32)(unsafe.Pointer(bp + 1*4))
+
+ (*WhereTerm)(unsafe.Pointer(pNew)).FprereqRight = prereqLeft | extraRight
+ (*WhereTerm)(unsafe.Pointer(pNew)).FprereqAll = prereqAll
+ (*WhereTerm)(unsafe.Pointer(pNew)).FeOperator = U16((int32(operatorMask(tls, int32((*Expr)(unsafe.Pointer(pDup)).Fop))) + int32(eExtraOp)) & int32(opMask))
+ } else if op == TK_ISNULL &&
+ !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0)) &&
+ 0 == Xsqlite3ExprCanBeNull(tls, pLeft) {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_TRUEFALSE)
+ *(*uintptr)(unsafe.Pointer(pExpr + 8)) = ts + 7172
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_IsFalse)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(0)
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_BETWEEN && int32((*WhereClause)(unsafe.Pointer(pWC)).Fop) == TK_AND {
+ var pList uintptr
+ var i int32
+
+ pList = *(*uintptr)(unsafe.Pointer(pExpr + 32))
+
+ for i = 0; i < 2; i++ {
+ var pNewExpr uintptr
+ var idxNew int32
+ pNewExpr = Xsqlite3PExpr(tls, pParse, int32(ops[i]),
+ Xsqlite3ExprDup(tls, db, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, 0),
+ Xsqlite3ExprDup(tls, db, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr, 0))
+ transferJoinMarkings(tls, pNewExpr, pExpr)
+ idxNew = whereClauseInsert(tls, pWC, pNewExpr, uint16(TERM_VIRTUAL|TERM_DYNAMIC))
+
+ exprAnalyze(tls, pSrc, pWC, idxNew)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_OR {
+ exprAnalyzeOrTerm(tls, pSrc, pWC, idxTerm)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_NOTNULL {
+ if int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_COLUMN &&
+ int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).FiColumn) >= 0 &&
+ !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0)) {
+ var pNewExpr uintptr
+ var pLeft uintptr = (*Expr)(unsafe.Pointer(pExpr)).FpLeft
+ var idxNew int32
+ var pNewTerm uintptr
+
+ pNewExpr = Xsqlite3PExpr(tls, pParse, TK_GT,
+ Xsqlite3ExprDup(tls, db, pLeft, 0),
+ Xsqlite3ExprAlloc(tls, db, TK_NULL, uintptr(0), 0))
+
+ idxNew = whereClauseInsert(tls, pWC, pNewExpr,
+ uint16(TERM_VIRTUAL|TERM_DYNAMIC|TERM_VNULL))
+ if idxNew != 0 {
+ pNewTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxNew)*56
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FprereqRight = uint64(0)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FleftCursor = (*Expr)(unsafe.Pointer(pLeft)).FiTable
+ *(*int32)(unsafe.Pointer(pNewTerm + 32)) = int32((*Expr)(unsafe.Pointer(pLeft)).FiColumn)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FeOperator = U16(int32(WO_EQ) << (TK_GT - TK_EQ))
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_COPIED)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FprereqAll = (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll
+ }
+ }
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_FUNCTION &&
+ int32((*WhereClause)(unsafe.Pointer(pWC)).Fop) == TK_AND &&
+ isLikeOrGlob(tls, pParse, pExpr, bp+8, bp+16, bp+20) != 0 {
+ var pLeft uintptr
+ var pStr2 uintptr
+ var pNewExpr1 uintptr
+ var pNewExpr2 uintptr
+ var idxNew1 int32
+ var idxNew2 int32
+ var zCollSeqName uintptr
+ var wtFlags U16 = U16(TERM_LIKEOPT | TERM_VIRTUAL | TERM_DYNAMIC)
+
+ pLeft = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32)).FpExpr
+ pStr2 = Xsqlite3ExprDup(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), 0)
+
+ if *(*int32)(unsafe.Pointer(bp + 20)) != 0 && !(int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed) != 0) {
+ var i int32
+ var c int8
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_LIKE)
+ for i = 0; int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 8)) + uintptr(i))))) != 0; i++ {
+ *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 8)) + uintptr(i))) = int8(int32(c) & ^(int32(Xsqlite3CtypeMap[uint8(c)]) & 0x20))
+ *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pStr2 + 8)) + uintptr(i))) = int8(Xsqlite3UpperToLower[uint8(c)])
+ }
+ }
+
+ if !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ var c U8
+ var pC uintptr
+ pC = *(*uintptr)(unsafe.Pointer(pStr2 + 8)) + uintptr(Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(pStr2 + 8)))-1)
+ c = *(*U8)(unsafe.Pointer(pC))
+ if *(*int32)(unsafe.Pointer(bp + 20)) != 0 {
+ if int32(c) == 'A'-1 {
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ }
+ c = Xsqlite3UpperToLower[c]
+ }
+ *(*U8)(unsafe.Pointer(pC)) = U8(int32(c) + 1)
+ }
+ zCollSeqName = func() uintptr {
+ if *(*int32)(unsafe.Pointer(bp + 20)) != 0 {
+ return ts + 22313
+ }
+ return uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ }()
+ pNewExpr1 = Xsqlite3ExprDup(tls, db, pLeft, 0)
+ pNewExpr1 = Xsqlite3PExpr(tls, pParse, TK_GE,
+ Xsqlite3ExprAddCollateString(tls, pParse, pNewExpr1, zCollSeqName),
+ *(*uintptr)(unsafe.Pointer(bp + 8)))
+ transferJoinMarkings(tls, pNewExpr1, pExpr)
+ idxNew1 = whereClauseInsert(tls, pWC, pNewExpr1, wtFlags)
+
+ pNewExpr2 = Xsqlite3ExprDup(tls, db, pLeft, 0)
+ pNewExpr2 = Xsqlite3PExpr(tls, pParse, TK_LT,
+ Xsqlite3ExprAddCollateString(tls, pParse, pNewExpr2, zCollSeqName),
+ pStr2)
+ transferJoinMarkings(tls, pNewExpr2, pExpr)
+ idxNew2 = whereClauseInsert(tls, pWC, pNewExpr2, wtFlags)
+
+ exprAnalyze(tls, pSrc, pWC, idxNew1)
+ exprAnalyze(tls, pSrc, pWC, idxNew2)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ if *(*int32)(unsafe.Pointer(bp + 16)) != 0 {
+ markTermAsChild(tls, pWC, idxNew1, idxTerm)
+ markTermAsChild(tls, pWC, idxNew2, idxTerm)
+ }
+ }
+
+ if (int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_EQ || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IS) &&
+ libc.AssignInt32(&nLeft, Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft)) > 1 &&
+ Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpRight) == nLeft &&
+ ((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fflags&U32(EP_xIsSelect) == U32(0) ||
+ (*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpRight)).Fflags&U32(EP_xIsSelect) == U32(0)) &&
+ int32((*WhereClause)(unsafe.Pointer(pWC)).Fop) == TK_AND {
+ var i int32
+ for i = 0; i < nLeft; i++ {
+ var idxNew int32
+ var pNew uintptr
+ var pLeft uintptr = Xsqlite3ExprForVectorField(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpLeft, i, nLeft)
+ var pRight uintptr = Xsqlite3ExprForVectorField(tls, pParse, (*Expr)(unsafe.Pointer(pExpr)).FpRight, i, nLeft)
+
+ pNew = Xsqlite3PExpr(tls, pParse, int32((*Expr)(unsafe.Pointer(pExpr)).Fop), pLeft, pRight)
+ transferJoinMarkings(tls, pNew, pExpr)
+ idxNew = whereClauseInsert(tls, pWC, pNew, uint16(TERM_DYNAMIC|TERM_SLICE))
+ exprAnalyze(tls, pSrc, pWC, idxNew)
+ }
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED | TERM_VIRTUAL)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(WO_ROWVAL)
+ } else if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_IN &&
+ *(*int32)(unsafe.Pointer(pTerm + 32 + 4)) == 0 &&
+ int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == TK_VECTOR &&
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) &&
+ ((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpPrior == uintptr(0) || (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&U32(SF_Values) != 0) &&
+ (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpWin == uintptr(0) &&
+ int32((*WhereClause)(unsafe.Pointer(pWC)).Fop) == TK_AND {
+ var i int32
+ for i = 0; i < Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer(pExpr)).FpLeft); i++ {
+ var idxNew int32
+ idxNew = whereClauseInsert(tls, pWC, pExpr, uint16(TERM_VIRTUAL|TERM_SLICE))
+ *(*int32)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxNew)*56 + 32 + 4)) = i + 1
+ exprAnalyze(tls, pSrc, pWC, idxNew)
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ }
+ } else if int32((*WhereClause)(unsafe.Pointer(pWC)).Fop) == TK_AND {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0)
+ var res int32 = isAuxiliaryVtabOperator(tls, db, pExpr, bp+24, bp+32, bp+40)
+ for libc.PostDecInt32(&res, 1) > 0 {
+ var idxNew int32
+ var pNewTerm uintptr
+ var prereqColumn Bitmask
+ var prereqExpr Bitmask
+
+ prereqExpr = Xsqlite3WhereExprUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ prereqColumn = Xsqlite3WhereExprUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ if prereqExpr&prereqColumn == uint64(0) {
+ var pNewExpr uintptr
+ pNewExpr = Xsqlite3PExpr(tls, pParse, TK_MATCH,
+ uintptr(0), Xsqlite3ExprDup(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40)), 0))
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0) && pNewExpr != 0 {
+ *(*U32)(unsafe.Pointer(pNewExpr + 4)) |= U32(EP_OuterON)
+ *(*int32)(unsafe.Pointer(pNewExpr + 52)) = *(*int32)(unsafe.Pointer(pExpr + 52))
+ }
+ idxNew = whereClauseInsert(tls, pWC, pNewExpr, uint16(TERM_VIRTUAL|TERM_DYNAMIC))
+
+ pNewTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxNew)*56
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FprereqRight = prereqExpr
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FleftCursor = (*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).FiTable
+ *(*int32)(unsafe.Pointer(pNewTerm + 32)) = int32((*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).FiColumn)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FeOperator = U16(WO_AUX)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FeMatchOp = *(*uint8)(unsafe.Pointer(bp + 24))
+ markTermAsChild(tls, pWC, idxNew, idxTerm)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_COPIED)
+ (*WhereTerm)(unsafe.Pointer(pNewTerm)).FprereqAll = (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll
+ }
+ {
+ var t uintptr = *(*uintptr)(unsafe.Pointer(bp + 32))
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = t
+ }
+
+ }
+ }
+
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idxTerm)*56
+ *(*Bitmask)(unsafe.Pointer(pTerm + 40)) |= extraRight
+}
+
+var ops = [2]U8{U8(TK_GE), U8(TK_LE)}
+
+// This routine identifies subexpressions in the WHERE clause where
+// each subexpression is separated by the AND operator or some other
+// operator specified in the op parameter. The WhereClause structure
+// is filled with pointers to subexpressions. For example:
+//
+// WHERE a=='hello' AND coalesce(b,11)<10 AND (c+12!=d OR c==22)
+// \________/ \_______________/ \________________/
+// slot[0] slot[1] slot[2]
+//
+// The original WHERE clause in pExpr is unaltered. All this routine
+// does is make slot[] entries point to substructure within pExpr.
+//
+// In the previous sentence and in the diagram, "slot[]" refers to
+// the WhereClause.a[] array. The slot[] array grows as needed to contain
+// all terms of the WHERE clause.
+func Xsqlite3WhereSplit(tls *libc.TLS, pWC uintptr, pExpr uintptr, op U8) {
+ var pE2 uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, pExpr)
+ (*WhereClause)(unsafe.Pointer(pWC)).Fop = op
+
+ if pE2 == uintptr(0) {
+ return
+ }
+ if int32((*Expr)(unsafe.Pointer(pE2)).Fop) != int32(op) {
+ whereClauseInsert(tls, pWC, pExpr, uint16(0))
+ } else {
+ Xsqlite3WhereSplit(tls, pWC, (*Expr)(unsafe.Pointer(pE2)).FpLeft, op)
+ Xsqlite3WhereSplit(tls, pWC, (*Expr)(unsafe.Pointer(pE2)).FpRight, op)
+ }
+}
+
+func whereAddLimitExpr(tls *libc.TLS, pWC uintptr, iReg int32, pExpr uintptr, iCsr int32, eMatchOp int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pNew uintptr
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if Xsqlite3ExprIsInteger(tls, pExpr, bp) != 0 && *(*int32)(unsafe.Pointer(bp)) >= 0 {
+ var pVal uintptr = Xsqlite3Expr(tls, db, TK_INTEGER, uintptr(0))
+ if pVal == uintptr(0) {
+ return
+ }
+ *(*U32)(unsafe.Pointer(pVal + 4)) |= U32(EP_IntValue)
+ *(*int32)(unsafe.Pointer(pVal + 8)) = *(*int32)(unsafe.Pointer(bp))
+ pNew = Xsqlite3PExpr(tls, pParse, TK_MATCH, uintptr(0), pVal)
+ } else {
+ var pVal uintptr = Xsqlite3Expr(tls, db, TK_REGISTER, uintptr(0))
+ if pVal == uintptr(0) {
+ return
+ }
+ (*Expr)(unsafe.Pointer(pVal)).FiTable = iReg
+ pNew = Xsqlite3PExpr(tls, pParse, TK_MATCH, uintptr(0), pVal)
+ }
+ if pNew != 0 {
+ var pTerm uintptr
+ var idx int32
+ idx = whereClauseInsert(tls, pWC, pNew, uint16(TERM_DYNAMIC|TERM_VIRTUAL))
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idx)*56
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor = iCsr
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator = U16(WO_AUX)
+ (*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp = U8(eMatchOp)
+ }
+}
+
+// Possibly add terms corresponding to the LIMIT and OFFSET clauses of the
+// SELECT statement passed as the second argument. These terms are only
+// added if:
+//
+// 1. The SELECT statement has a LIMIT clause, and
+// 2. The SELECT statement is not an aggregate or DISTINCT query, and
+// 3. The SELECT statement has exactly one object in its from clause, and
+// that object is a virtual table, and
+// 4. There are no terms in the WHERE clause that will not be passed
+// to the virtual table xBestIndex method.
+// 5. The ORDER BY clause, if any, will be made available to the xBestIndex
+// method.
+//
+// LIMIT and OFFSET terms are ignored by most of the planner code. They
+// exist only so that they may be passed to the xBestIndex method of the
+// single virtual table in the FROM clause of the SELECT.
+func Xsqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) {
+ if (*Select)(unsafe.Pointer(p)).FpGroupBy == uintptr(0) &&
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Distinct|SF_Aggregate) == U32(0) &&
+ ((*SrcList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc)).FnSrc == 1 && int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc+8)).FpTab)).FeTabType) == TABTYP_VTAB) {
+ var pOrderBy uintptr = (*Select)(unsafe.Pointer(p)).FpOrderBy
+ var iCsr int32 = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FiCursor
+ var ii int32
+
+ for ii = 0; ii < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm; ii++ {
+ if int32((*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(ii)*56)).FwtFlags)&TERM_CODED != 0 {
+ continue
+ }
+ if (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(ii)*56)).FnChild != 0 {
+ continue
+ }
+ if (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr(ii)*56)).FleftCursor != iCsr {
+ return
+ }
+ }
+
+ if pOrderBy != 0 {
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; ii++ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(ii)*32)).FpExpr
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN {
+ return
+ }
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable != iCsr {
+ return
+ }
+ if int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(ii)*32)).Ffg.FsortFlags)&KEYINFO_ORDER_BIGNULL != 0 {
+ return
+ }
+ }
+ }
+
+ whereAddLimitExpr(tls, pWC, (*Select)(unsafe.Pointer(p)).FiLimit, (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpLimit)).FpLeft,
+ iCsr, SQLITE_INDEX_CONSTRAINT_LIMIT)
+ if (*Select)(unsafe.Pointer(p)).FiOffset > 0 {
+ whereAddLimitExpr(tls, pWC, (*Select)(unsafe.Pointer(p)).FiOffset, (*Expr)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpLimit)).FpRight,
+ iCsr, SQLITE_INDEX_CONSTRAINT_OFFSET)
+ }
+ }
+}
+
+// Initialize a preallocated WhereClause structure.
+func Xsqlite3WhereClauseInit(tls *libc.TLS, pWC uintptr, pWInfo uintptr) {
+ (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo = pWInfo
+ (*WhereClause)(unsafe.Pointer(pWC)).FhasOr = U8(0)
+ (*WhereClause)(unsafe.Pointer(pWC)).FpOuter = uintptr(0)
+ (*WhereClause)(unsafe.Pointer(pWC)).FnTerm = 0
+ (*WhereClause)(unsafe.Pointer(pWC)).FnBase = 0
+ (*WhereClause)(unsafe.Pointer(pWC)).FnSlot = int32(uint64(unsafe.Sizeof([8]WhereTerm{})) / uint64(unsafe.Sizeof(WhereTerm{})))
+ (*WhereClause)(unsafe.Pointer(pWC)).Fa = pWC + 40
+}
+
+// Deallocate a WhereClause structure. The WhereClause structure
+// itself is not freed. This routine is the inverse of
+// sqlite3WhereClauseInit().
+func Xsqlite3WhereClauseClear(tls *libc.TLS, pWC uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)).Fdb
+
+ if (*WhereClause)(unsafe.Pointer(pWC)).FnTerm > 0 {
+ var a uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+ var aLast uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*WhereClause)(unsafe.Pointer(pWC)).FnTerm-1)*56
+ for 1 != 0 {
+ if int32((*WhereTerm)(unsafe.Pointer(a)).FwtFlags)&TERM_DYNAMIC != 0 {
+ Xsqlite3ExprDelete(tls, db, (*WhereTerm)(unsafe.Pointer(a)).FpExpr)
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(a)).FwtFlags)&(TERM_ORINFO|TERM_ANDINFO) != 0 {
+ if int32((*WhereTerm)(unsafe.Pointer(a)).FwtFlags)&TERM_ORINFO != 0 {
+ whereOrInfoDelete(tls, db, *(*uintptr)(unsafe.Pointer(a + 32)))
+ } else {
+ whereAndInfoDelete(tls, db, *(*uintptr)(unsafe.Pointer(a + 32)))
+ }
+ }
+ if a == aLast {
+ break
+ }
+ a += 56
+ }
+ }
+}
+
+func sqlite3WhereExprUsageFull(tls *libc.TLS, pMaskSet uintptr, p uintptr) Bitmask {
+ var mask Bitmask
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_IF_NULL_ROW {
+ mask = Xsqlite3WhereGetMask(tls, pMaskSet, (*Expr)(unsafe.Pointer(p)).FiTable)
+ } else {
+ mask = uint64(0)
+ }
+ if (*Expr)(unsafe.Pointer(p)).FpLeft != 0 {
+ mask = mask | Xsqlite3WhereExprUsageNN(tls, pMaskSet, (*Expr)(unsafe.Pointer(p)).FpLeft)
+ }
+ if (*Expr)(unsafe.Pointer(p)).FpRight != 0 {
+ mask = mask | Xsqlite3WhereExprUsageNN(tls, pMaskSet, (*Expr)(unsafe.Pointer(p)).FpRight)
+
+ } else if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_VarSelect) != U32(0) {
+ (*WhereMaskSet)(unsafe.Pointer(pMaskSet)).FbVarSelect = 1
+ }
+ mask = mask | exprSelectUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(p + 32)))
+ } else if *(*uintptr)(unsafe.Pointer(p + 32)) != 0 {
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, *(*uintptr)(unsafe.Pointer(p + 32)))
+ }
+ if (int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_FUNCTION || int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_AGG_FUNCTION) && (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_WinFunc) != U32(0) {
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FpPartition)
+ mask = mask | Xsqlite3WhereExprListUsage(tls, pMaskSet, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FpOrderBy)
+ mask = mask | Xsqlite3WhereExprUsage(tls, pMaskSet, (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FpFilter)
+ }
+ return mask
+}
+
+func Xsqlite3WhereExprUsageNN(tls *libc.TLS, pMaskSet uintptr, p uintptr) Bitmask {
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLUMN && !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_FixedCol) != U32(0)) {
+ return Xsqlite3WhereGetMask(tls, pMaskSet, (*Expr)(unsafe.Pointer(p)).FiTable)
+ } else if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_TokenOnly|EP_Leaf) != U32(0) {
+ return uint64(0)
+ }
+ return sqlite3WhereExprUsageFull(tls, pMaskSet, p)
+}
+
+func Xsqlite3WhereExprUsage(tls *libc.TLS, pMaskSet uintptr, p uintptr) Bitmask {
+ if p != 0 {
+ return Xsqlite3WhereExprUsageNN(tls, pMaskSet, p)
+ }
+ return uint64(0)
+}
+
+func Xsqlite3WhereExprListUsage(tls *libc.TLS, pMaskSet uintptr, pList uintptr) Bitmask {
+ var i int32
+ var mask Bitmask = uint64(0)
+ if pList != 0 {
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ mask = mask | Xsqlite3WhereExprUsage(tls, pMaskSet, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr)
+ }
+ }
+ return mask
+}
+
+// Call exprAnalyze on all terms in a WHERE clause.
+//
+// Note that exprAnalyze() might add new virtual terms onto the
+// end of the WHERE clause. We do not want to analyze these new
+// virtual terms, so start analyzing at the end and work forward
+// so that the added virtual terms are never processed.
+func Xsqlite3WhereExprAnalyze(tls *libc.TLS, pTabList uintptr, pWC uintptr) {
+ var i int32
+ for i = (*WhereClause)(unsafe.Pointer(pWC)).FnTerm - 1; i >= 0; i-- {
+ exprAnalyze(tls, pTabList, pWC, i)
+ }
+}
+
+// For table-valued-functions, transform the function arguments into
+// new WHERE clause terms.
+//
+// Each function argument translates into an equality constraint against
+// a HIDDEN column in the table.
+func Xsqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr
+ var j int32
+ var k int32
+ var pArgs uintptr
+ var pColRef uintptr
+ var pTerm uintptr
+ if int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x4>>2) == 0 {
+ return
+ }
+ pTab = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+
+ pArgs = *(*uintptr)(unsafe.Pointer(pItem + 88))
+ if pArgs == uintptr(0) {
+ return
+ }
+ for j = libc.AssignInt32(&k, 0); j < (*ExprList)(unsafe.Pointer(pArgs)).FnExpr; j++ {
+ var pRhs uintptr
+ var joinType U32
+ for k < int32((*Table)(unsafe.Pointer(pTab)).FnCol) && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(k)*24)).FcolFlags)&COLFLAG_HIDDEN == 0 {
+ k++
+ }
+ if k >= int32((*Table)(unsafe.Pointer(pTab)).FnCol) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22320,
+ libc.VaList(bp, (*Table)(unsafe.Pointer(pTab)).FzName, j))
+ return
+ }
+ pColRef = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_COLUMN, uintptr(0), 0)
+ if pColRef == uintptr(0) {
+ return
+ }
+ (*Expr)(unsafe.Pointer(pColRef)).FiTable = (*SrcItem)(unsafe.Pointer(pItem)).FiCursor
+ (*Expr)(unsafe.Pointer(pColRef)).FiColumn = YnVar(libc.PostIncInt32(&k, 1))
+
+ *(*uintptr)(unsafe.Pointer(pColRef + 64)) = pTab
+ *(*Bitmask)(unsafe.Pointer(pItem + 80)) |= Xsqlite3ExprColUsed(tls, pColRef)
+ pRhs = Xsqlite3PExpr(tls, pParse, TK_UPLUS,
+ Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*ExprList_item)(unsafe.Pointer(pArgs+8+uintptr(j)*32)).FpExpr, 0), uintptr(0))
+ pTerm = Xsqlite3PExpr(tls, pParse, TK_EQ, pColRef, pRhs)
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ) != 0 {
+ joinType = U32(EP_OuterON)
+ } else {
+ joinType = U32(EP_InnerON)
+ }
+ Xsqlite3SetJoinExpr(tls, pTerm, (*SrcItem)(unsafe.Pointer(pItem)).FiCursor, joinType)
+ whereClauseInsert(tls, pWC, pTerm, uint16(TERM_DYNAMIC))
+ }
+}
+
+// Extra information appended to the end of sqlite3_index_info but not
+// visible to the xBestIndex function, at least not directly. The
+// sqlite3_vtab_collation() interface knows how to reach it, however.
+//
+// This object is not an API and can be changed from one release to the
+// next. As long as allocateIndexInfo() and sqlite3_vtab_collation()
+// agree on the structure, all will be well.
+type HiddenIndexInfo1 = struct {
+ FpWC uintptr
+ FpParse uintptr
+ FeDistinct int32
+ FmIn U32
+ FmHandleIn U32
+ F__ccgo_pad1 [4]byte
+ FaRhs [1]uintptr
+}
+
+// Extra information appended to the end of sqlite3_index_info but not
+// visible to the xBestIndex function, at least not directly. The
+// sqlite3_vtab_collation() interface knows how to reach it, however.
+//
+// This object is not an API and can be changed from one release to the
+// next. As long as allocateIndexInfo() and sqlite3_vtab_collation()
+// agree on the structure, all will be well.
+type HiddenIndexInfo = HiddenIndexInfo1
+
+// Return the estimated number of output rows from a WHERE clause
+func Xsqlite3WhereOutputRowCount(tls *libc.TLS, pWInfo uintptr) LogEst {
+ return (*WhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut
+}
+
+// Return one of the WHERE_DISTINCT_xxxxx values to indicate how this
+// WHERE clause returns outputs for DISTINCT processing.
+func Xsqlite3WhereIsDistinct(tls *libc.TLS, pWInfo uintptr) int32 {
+ return int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct)
+}
+
+// Return the number of ORDER BY terms that are satisfied by the
+// WHERE clause. A return of 0 means that the output must be
+// completely sorted. A return equal to the number of ORDER BY
+// terms means that no sorting is needed at all. A return that
+// is positive but less than the number of ORDER BY terms means that
+// block sorting is required.
+func Xsqlite3WhereIsOrdered(tls *libc.TLS, pWInfo uintptr) int32 {
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) < 0 {
+ return 0
+ }
+ return int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat)
+}
+
+// In the ORDER BY LIMIT optimization, if the inner-most loop is known
+// to emit rows in increasing order, and if the last row emitted by the
+// inner-most loop did not fit within the sorter, then we can skip all
+// subsequent rows for the current iteration of the inner loop (because they
+// will not fit in the sorter either) and continue with the second inner
+// loop - the loop immediately outside the inner-most.
+//
+// When a row does not fit in the sorter (because the sorter already
+// holds LIMIT+OFFSET rows that are smaller), then a jump is made to the
+// label returned by this function.
+//
+// If the ORDER BY LIMIT optimization applies, the jump destination should
+// be the continuation for the second-inner-most loop. If the ORDER BY
+// LIMIT optimization does not apply, then the jump destination should
+// be the continuation for the inner-most loop.
+//
+// It is always safe for this routine to return the continuation of the
+// inner-most loop, in the sense that a correct answer will result.
+// Returning the continuation the second inner loop is an optimization
+// that might make the code run a little faster, but should not change
+// the final answer.
+func Xsqlite3WhereOrderByLimitOptLabel(tls *libc.TLS, pWInfo uintptr) int32 {
+ var pInner uintptr
+ if !(int32(*(*uint8)(unsafe.Pointer(pWInfo + 68))&0x4>>2) != 0) {
+ return (*WhereInfo)(unsafe.Pointer(pWInfo)).FiContinue
+ }
+ pInner = pWInfo + 856 + uintptr(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-1)*104
+
+ if (*WhereLevel)(unsafe.Pointer(pInner)).FpRJ != 0 {
+ return (*WhereInfo)(unsafe.Pointer(pWInfo)).FiContinue
+ }
+ return (*WhereLevel)(unsafe.Pointer(pInner)).FaddrNxt
+}
+
+// While generating code for the min/max optimization, after handling
+// the aggregate-step call to min() or max(), check to see if any
+// additional looping is required. If the output order is such that
+// we are certain that the correct answer has already been found, then
+// code an OP_Goto to by pass subsequent processing.
+//
+// Any extra OP_Goto that is coded here is an optimization. The
+// correct answer should be obtained regardless. This OP_Goto just
+// makes the answer appear faster.
+func Xsqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) {
+ var pInner uintptr
+ var i int32
+ if !(int32(*(*uint8)(unsafe.Pointer(pWInfo + 68))&0x4>>2) != 0) {
+ return
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) == 0 {
+ return
+ }
+ for i = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) - 1; i >= 0; i-- {
+ pInner = pWInfo + 856 + uintptr(i)*104
+ if (*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&U32(WHERE_COLUMN_IN) != U32(0) {
+ Xsqlite3VdbeGoto(tls, v, (*WhereLevel)(unsafe.Pointer(pInner)).FaddrNxt)
+ return
+ }
+ }
+ Xsqlite3VdbeGoto(tls, v, (*WhereInfo)(unsafe.Pointer(pWInfo)).FiBreak)
+}
+
+// Return the VDBE address or label to jump to in order to continue
+// immediately with the next row of a WHERE clause.
+func Xsqlite3WhereContinueLabel(tls *libc.TLS, pWInfo uintptr) int32 {
+ return (*WhereInfo)(unsafe.Pointer(pWInfo)).FiContinue
+}
+
+// Return the VDBE address or label to jump to in order to break
+// out of a WHERE loop.
+func Xsqlite3WhereBreakLabel(tls *libc.TLS, pWInfo uintptr) int32 {
+ return (*WhereInfo)(unsafe.Pointer(pWInfo)).FiBreak
+}
+
+// Return ONEPASS_OFF (0) if an UPDATE or DELETE statement is unable to
+// operate directly on the rowids returned by a WHERE clause. Return
+// ONEPASS_SINGLE (1) if the statement can operation directly because only
+// a single row is to be changed. Return ONEPASS_MULTI (2) if the one-pass
+// optimization can be used on multiple
+//
+// If the ONEPASS optimization is used (if this routine returns true)
+// then also write the indices of open cursors used by ONEPASS
+// into aiCur[0] and aiCur[1]. iaCur[0] gets the cursor of the data
+// table and iaCur[1] gets the cursor used by an auxiliary index.
+// Either value may be -1, indicating that cursor is not used.
+// Any cursors returned will have been opened for writing.
+//
+// aiCur[0] and aiCur[1] both get -1 if the where-clause logic is
+// unable to use the ONEPASS optimization.
+func Xsqlite3WhereOkOnePass(tls *libc.TLS, pWInfo uintptr, aiCur uintptr) int32 {
+ libc.X__builtin___memcpy_chk(tls, aiCur, pWInfo+40, uint64(unsafe.Sizeof(int32(0)))*uint64(2), libc.X__builtin_object_size(tls, aiCur, 0))
+ return int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass)
+}
+
+// Return TRUE if the WHERE loop uses the OP_DeferredSeek opcode to move
+// the data cursor to the row selected by the index cursor.
+func Xsqlite3WhereUsesDeferredSeek(tls *libc.TLS, pWInfo uintptr) int32 {
+ return int32(*(*uint8)(unsafe.Pointer(pWInfo + 68)) & 0x1 >> 0)
+}
+
+func whereOrMove(tls *libc.TLS, pDest uintptr, pSrc uintptr) {
+ (*WhereOrSet)(unsafe.Pointer(pDest)).Fn = (*WhereOrSet)(unsafe.Pointer(pSrc)).Fn
+ libc.X__builtin___memcpy_chk(tls, pDest+8, pSrc+8, uint64((*WhereOrSet)(unsafe.Pointer(pDest)).Fn)*uint64(unsafe.Sizeof(WhereOrCost{})), libc.X__builtin_object_size(tls, pDest+8, 0))
+}
+
+func whereOrInsert(tls *libc.TLS, pSet uintptr, prereq Bitmask, rRun LogEst, nOut LogEst) int32 {
+ var i U16
+ var p uintptr
+ i = (*WhereOrSet)(unsafe.Pointer(pSet)).Fn
+ p = pSet + 8
+__1:
+ if !(int32(i) > 0) {
+ goto __3
+ }
+ if !(int32(rRun) <= int32((*WhereOrCost)(unsafe.Pointer(p)).FrRun) && prereq&(*WhereOrCost)(unsafe.Pointer(p)).Fprereq == prereq) {
+ goto __4
+ }
+ goto whereOrInsert_done
+__4:
+ ;
+ if !(int32((*WhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun) && (*WhereOrCost)(unsafe.Pointer(p)).Fprereq&prereq == (*WhereOrCost)(unsafe.Pointer(p)).Fprereq) {
+ goto __5
+ }
+ return 0
+__5:
+ ;
+ goto __2
+__2:
+ i--
+ p += 16
+ goto __1
+ goto __3
+__3:
+ ;
+ if !(int32((*WhereOrSet)(unsafe.Pointer(pSet)).Fn) < N_OR_COST) {
+ goto __6
+ }
+ p = pSet + 8 + uintptr(libc.PostIncUint16(&(*WhereOrSet)(unsafe.Pointer(pSet)).Fn, 1))*16
+ (*WhereOrCost)(unsafe.Pointer(p)).FnOut = nOut
+ goto __7
+__6:
+ p = pSet + 8
+ i = U16(1)
+__8:
+ if !(int32(i) < int32((*WhereOrSet)(unsafe.Pointer(pSet)).Fn)) {
+ goto __10
+ }
+ if !(int32((*WhereOrCost)(unsafe.Pointer(p)).FrRun) > int32((*WhereOrCost)(unsafe.Pointer(pSet+8+uintptr(i)*16)).FrRun)) {
+ goto __11
+ }
+ p = pSet + 8 + uintptr(i)*16
+__11:
+ ;
+ goto __9
+__9:
+ i++
+ goto __8
+ goto __10
+__10:
+ ;
+ if !(int32((*WhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun)) {
+ goto __12
+ }
+ return 0
+__12:
+ ;
+__7:
+ ;
+whereOrInsert_done:
+ (*WhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq
+ (*WhereOrCost)(unsafe.Pointer(p)).FrRun = rRun
+ if !(int32((*WhereOrCost)(unsafe.Pointer(p)).FnOut) > int32(nOut)) {
+ goto __13
+ }
+ (*WhereOrCost)(unsafe.Pointer(p)).FnOut = nOut
+__13:
+ ;
+ return 1
+}
+
+// Return the bitmask for the given cursor number. Return 0 if
+// iCursor is not in the set.
+func Xsqlite3WhereGetMask(tls *libc.TLS, pMaskSet uintptr, iCursor int32) Bitmask {
+ var i int32
+
+ if *(*int32)(unsafe.Pointer(pMaskSet + 8)) == iCursor {
+ return uint64(1)
+ }
+ for i = 1; i < (*WhereMaskSet)(unsafe.Pointer(pMaskSet)).Fn; i++ {
+ if *(*int32)(unsafe.Pointer(pMaskSet + 8 + uintptr(i)*4)) == iCursor {
+ return uint64(1) << i
+ }
+ }
+ return uint64(0)
+}
+
+// Allocate memory that is automatically freed when pWInfo is freed.
+func Xsqlite3WhereMalloc(tls *libc.TLS, pWInfo uintptr, nByte U64) uintptr {
+ var pBlock uintptr
+ pBlock = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb, nByte+U64(unsafe.Sizeof(WhereMemBlock{})))
+ if pBlock != 0 {
+ (*WhereMemBlock)(unsafe.Pointer(pBlock)).FpNext = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree
+ (*WhereMemBlock)(unsafe.Pointer(pBlock)).Fsz = nByte
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree = pBlock
+ pBlock += 16
+ }
+ return pBlock
+}
+
+func Xsqlite3WhereRealloc(tls *libc.TLS, pWInfo uintptr, pOld uintptr, nByte U64) uintptr {
+ var pNew uintptr = Xsqlite3WhereMalloc(tls, pWInfo, nByte)
+ if pNew != 0 && pOld != 0 {
+ var pOldBlk uintptr = pOld
+ pOldBlk -= 16
+
+ libc.X__builtin___memcpy_chk(tls, pNew, pOld, (*WhereMemBlock)(unsafe.Pointer(pOldBlk)).Fsz, libc.X__builtin_object_size(tls, pNew, 0))
+ }
+ return pNew
+}
+
+func createMask(tls *libc.TLS, pMaskSet uintptr, iCursor int32) {
+ *(*int32)(unsafe.Pointer(pMaskSet + 8 + uintptr(libc.PostIncInt32(&(*WhereMaskSet)(unsafe.Pointer(pMaskSet)).Fn, 1))*4)) = iCursor
+}
+
+func whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) uintptr {
+ p = Xsqlite3ExprSkipCollateAndLikely(tls, (*Expr)(unsafe.Pointer(p)).FpRight)
+ if p != uintptr(0) && int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLUMN && !((*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_FixedCol) != U32(0)) {
+ return p
+ }
+ return uintptr(0)
+}
+
+func whereScanNext(tls *libc.TLS, pScan uintptr) uintptr {
+ var iCur int32
+ var iColumn I16
+ var pX uintptr
+ var pWC uintptr
+ var pTerm uintptr
+ var k int32 = (*WhereScan)(unsafe.Pointer(pScan)).Fk
+
+ pWC = (*WhereScan)(unsafe.Pointer(pScan)).FpWC
+ for 1 != 0 {
+ iColumn = *(*I16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*WhereScan)(unsafe.Pointer(pScan)).FiEquiv)-1)*2))
+ iCur = *(*int32)(unsafe.Pointer(pScan + 44 + uintptr(int32((*WhereScan)(unsafe.Pointer(pScan)).FiEquiv)-1)*4))
+
+ for __ccgo := true; __ccgo; __ccgo = pWC != uintptr(0) {
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(k)*56
+ __1:
+ if !(k < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __3
+ }
+ {
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor == iCur &&
+ *(*int32)(unsafe.Pointer(pTerm + 32)) == int32(iColumn) &&
+ (int32(iColumn) != -2 ||
+ Xsqlite3ExprCompareSkip(tls, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft,
+ (*WhereScan)(unsafe.Pointer(pScan)).FpIdxExpr, iCur) == 0) &&
+ (int32((*WhereScan)(unsafe.Pointer(pScan)).FiEquiv) <= 1 || !((*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_OuterON) != U32(0))) {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_EQUIV != 0 &&
+ int32((*WhereScan)(unsafe.Pointer(pScan)).FnEquiv) < int32(uint64(unsafe.Sizeof([11]int32{}))/uint64(unsafe.Sizeof(int32(0)))) &&
+ libc.AssignUintptr(&pX, whereRightSubexprIsColumn(tls, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)) != uintptr(0) {
+ var j int32
+ for j = 0; j < int32((*WhereScan)(unsafe.Pointer(pScan)).FnEquiv); j++ {
+ if *(*int32)(unsafe.Pointer(pScan + 44 + uintptr(j)*4)) == (*Expr)(unsafe.Pointer(pX)).FiTable &&
+ int32(*(*I16)(unsafe.Pointer(pScan + 88 + uintptr(j)*2))) == int32((*Expr)(unsafe.Pointer(pX)).FiColumn) {
+ break
+ }
+ }
+ if j == int32((*WhereScan)(unsafe.Pointer(pScan)).FnEquiv) {
+ *(*int32)(unsafe.Pointer(pScan + 44 + uintptr(j)*4)) = (*Expr)(unsafe.Pointer(pX)).FiTable
+ *(*I16)(unsafe.Pointer(pScan + 88 + uintptr(j)*2)) = (*Expr)(unsafe.Pointer(pX)).FiColumn
+ (*WhereScan)(unsafe.Pointer(pScan)).FnEquiv++
+ }
+ }
+ if U32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(*WhereScan)(unsafe.Pointer(pScan)).FopMask != U32(0) {
+ if (*WhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_ISNULL == 0 {
+ var pColl uintptr
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse
+ pX = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if !(Xsqlite3IndexAffinityOk(tls, pX, (*WhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) {
+ goto __2
+ }
+
+ pColl = Xsqlite3ExprCompareCollSeq(tls, pParse, pX)
+ if pColl == uintptr(0) {
+ pColl = (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl
+ }
+ if Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, (*WhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 {
+ goto __2
+ }
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) != 0 &&
+ func() bool {
+ pX = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight
+ return pX != uintptr(0)
+ }() &&
+ int32((*Expr)(unsafe.Pointer(pX)).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) &&
+ int32((*Expr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*I16)(unsafe.Pointer(pScan + 88))) {
+ goto __2
+ }
+ (*WhereScan)(unsafe.Pointer(pScan)).FpWC = pWC
+ (*WhereScan)(unsafe.Pointer(pScan)).Fk = k + 1
+ return pTerm
+ }
+ }
+
+ }
+ goto __2
+ __2:
+ k++
+ pTerm += 56
+ goto __1
+ goto __3
+ __3:
+ ;
+ pWC = (*WhereClause)(unsafe.Pointer(pWC)).FpOuter
+ k = 0
+ }
+ if int32((*WhereScan)(unsafe.Pointer(pScan)).FiEquiv) >= int32((*WhereScan)(unsafe.Pointer(pScan)).FnEquiv) {
+ break
+ }
+ pWC = (*WhereScan)(unsafe.Pointer(pScan)).FpOrigWC
+ k = 0
+ (*WhereScan)(unsafe.Pointer(pScan)).FiEquiv++
+ }
+ return uintptr(0)
+}
+
+func whereScanInitIndexExpr(tls *libc.TLS, pScan uintptr) uintptr {
+ (*WhereScan)(unsafe.Pointer(pScan)).Fidxaff = Xsqlite3ExprAffinity(tls, (*WhereScan)(unsafe.Pointer(pScan)).FpIdxExpr)
+ return whereScanNext(tls, pScan)
+}
+
+func whereScanInit(tls *libc.TLS, pScan uintptr, pWC uintptr, iCur int32, iColumn int32, opMask U32, pIdx uintptr) uintptr {
+ (*WhereScan)(unsafe.Pointer(pScan)).FpOrigWC = pWC
+ (*WhereScan)(unsafe.Pointer(pScan)).FpWC = pWC
+ (*WhereScan)(unsafe.Pointer(pScan)).FpIdxExpr = uintptr(0)
+ (*WhereScan)(unsafe.Pointer(pScan)).Fidxaff = int8(0)
+ (*WhereScan)(unsafe.Pointer(pScan)).FzCollName = uintptr(0)
+ (*WhereScan)(unsafe.Pointer(pScan)).FopMask = opMask
+ (*WhereScan)(unsafe.Pointer(pScan)).Fk = 0
+ *(*int32)(unsafe.Pointer(pScan + 44)) = iCur
+ (*WhereScan)(unsafe.Pointer(pScan)).FnEquiv = uint8(1)
+ (*WhereScan)(unsafe.Pointer(pScan)).FiEquiv = uint8(1)
+ if pIdx != 0 {
+ var j int32 = iColumn
+ iColumn = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))
+ if iColumn == int32((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FiPKey) {
+ iColumn = -1
+ } else if iColumn >= 0 {
+ (*WhereScan)(unsafe.Pointer(pScan)).Fidxaff = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(iColumn)*24)).Faffinity
+ (*WhereScan)(unsafe.Pointer(pScan)).FzCollName = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(j)*8))
+ } else if iColumn == -2 {
+ (*WhereScan)(unsafe.Pointer(pScan)).FpIdxExpr = (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(j)*32)).FpExpr
+ (*WhereScan)(unsafe.Pointer(pScan)).FzCollName = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(j)*8))
+ *(*I16)(unsafe.Pointer(pScan + 88)) = int16(-2)
+ return whereScanInitIndexExpr(tls, pScan)
+ }
+ } else if iColumn == -2 {
+ return uintptr(0)
+ }
+ *(*I16)(unsafe.Pointer(pScan + 88)) = I16(iColumn)
+ return whereScanNext(tls, pScan)
+}
+
+// Search for a term in the WHERE clause that is of the form "X <op> <expr>"
+// where X is a reference to the iColumn of table iCur or of index pIdx
+// if pIdx!=0 and <op> is one of the WO_xx operator codes specified by
+// the op parameter. Return a pointer to the term. Return 0 if not found.
+//
+// If pIdx!=0 then it must be one of the indexes of table iCur.
+// Search for terms matching the iColumn-th column of pIdx
+// rather than the iColumn-th column of table iCur.
+//
+// The term returned might by Y=<expr> if there is another constraint in
+// the WHERE clause that specifies that X=Y. Any such constraints will be
+// identified by the WO_EQUIV bit in the pTerm->eOperator field. The
+// aiCur[]/iaColumn[] arrays hold X and all its equivalents. There are 11
+// slots in aiCur[]/aiColumn[] so that means we can look for X plus up to 10
+// other equivalent values. Hence a search for X will return <expr> if X=A1
+// and A1=A2 and A2=A3 and ... and A9=A10 and A10=<expr>.
+//
+// If there are multiple terms in the WHERE clause of the form "X <op> <expr>"
+// then try for the one with no dependencies on <expr> - in other words where
+// <expr> is a constant expression of some kind. Only return entries of
+// the form "X <op> Y" where Y is a column in another table if no terms of
+// the form "X <op> <const-expr>" exist. If no terms with a constant RHS
+// exist, try to return a term that does not use WO_EQUIV.
+func Xsqlite3WhereFindTerm(tls *libc.TLS, pWC uintptr, iCur int32, iColumn int32, notReady Bitmask, op U32, pIdx uintptr) uintptr {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var pResult uintptr = uintptr(0)
+ var p uintptr
+
+ p = whereScanInit(tls, bp, pWC, iCur, iColumn, op, pIdx)
+ op = op & U32(WO_EQ|WO_IS)
+ for p != 0 {
+ if (*WhereTerm)(unsafe.Pointer(p)).FprereqRight&notReady == uint64(0) {
+ if (*WhereTerm)(unsafe.Pointer(p)).FprereqRight == uint64(0) && U32((*WhereTerm)(unsafe.Pointer(p)).FeOperator)&op != U32(0) {
+ return p
+ }
+ if pResult == uintptr(0) {
+ pResult = p
+ }
+ }
+ p = whereScanNext(tls, bp)
+ }
+ return pResult
+}
+
+func findIndexCol(tls *libc.TLS, pParse uintptr, pList uintptr, iBase int32, pIdx uintptr, iCol int32) int32 {
+ var i int32
+ var zColl uintptr = *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(iCol)*8))
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ var p uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr)
+ if p != uintptr(0) &&
+ (int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_COLUMN || int32((*Expr)(unsafe.Pointer(p)).Fop) == TK_AGG_COLUMN) &&
+ int32((*Expr)(unsafe.Pointer(p)).FiColumn) == int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(iCol)*2))) &&
+ (*Expr)(unsafe.Pointer(p)).FiTable == iBase {
+ var pColl uintptr = Xsqlite3ExprNNCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr)
+ if 0 == Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, zColl) {
+ return i
+ }
+ }
+ }
+
+ return -1
+}
+
+func indexColumnNotNull(tls *libc.TLS, pIdx uintptr, iCol int32) int32 {
+ var j int32
+
+ j = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(iCol)*2)))
+ if j >= 0 {
+ return int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(j)*24 + 8)) & 0xf >> 0)
+ } else if j == -1 {
+ return 1
+ } else {
+ return 0
+
+ }
+ return int32(0)
+}
+
+func isDistinctRedundant(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWC uintptr, pDistinct uintptr) int32 {
+ var pTab uintptr
+ var pIdx uintptr
+ var i int32
+ var iBase int32
+
+ if (*SrcList)(unsafe.Pointer(pTabList)).FnSrc != 1 {
+ return 0
+ }
+ iBase = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FiCursor
+ pTab = (*SrcItem)(unsafe.Pointer(pTabList + 8)).FpTab
+
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pDistinct)).FnExpr; i++ {
+ var p uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pDistinct+8+uintptr(i)*32)).FpExpr)
+ if p == uintptr(0) {
+ continue
+ }
+ if int32((*Expr)(unsafe.Pointer(p)).Fop) != TK_COLUMN && int32((*Expr)(unsafe.Pointer(p)).Fop) != TK_AGG_COLUMN {
+ continue
+ }
+ if (*Expr)(unsafe.Pointer(p)).FiTable == iBase && int32((*Expr)(unsafe.Pointer(p)).FiColumn) < 0 {
+ return 1
+ }
+ }
+
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None) {
+ continue
+ }
+ if (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 {
+ continue
+ }
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); i++ {
+ if uintptr(0) == Xsqlite3WhereFindTerm(tls, pWC, iBase, i, libc.CplUint64(uint64(0)), uint32(WO_EQ), pIdx) {
+ if findIndexCol(tls, pParse, pDistinct, iBase, pIdx, i) < 0 {
+ break
+ }
+ if indexColumnNotNull(tls, pIdx, i) == 0 {
+ break
+ }
+ }
+ }
+ if i == int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) {
+ return 1
+ }
+ }
+
+ return 0
+}
+
+func estLog(tls *libc.TLS, N LogEst) LogEst {
+ if int32(N) <= 10 {
+ return int16(0)
+ }
+ return int16(int32(Xsqlite3LogEst(tls, uint64(N))) - 33)
+}
+
+func translateColumnToCopy(tls *libc.TLS, pParse uintptr, iStart int32, iTabCur int32, iRegister int32, iAutoidxCur int32) {
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pOp uintptr = Xsqlite3VdbeGetOp(tls, v, iStart)
+ var iEnd int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return
+ }
+__1:
+ if !(iStart < iEnd) {
+ goto __3
+ }
+ {
+ if (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 != iTabCur {
+ goto __2
+ }
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(OP_Copy)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 + iRegister
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 = (*VdbeOp)(unsafe.Pointer(pOp)).Fp3
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp3 = 0
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp5 = U16(2)
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Rowid {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(OP_Sequence)
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = iAutoidxCur
+ }
+
+ }
+ goto __2
+__2:
+ iStart++
+ pOp += 24
+ goto __1
+ goto __3
+__3:
+}
+
+func constraintCompatibleWithOuterJoin(tls *libc.TLS, pTerm uintptr, pSrc uintptr) int32 {
+ if !((*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_OuterON|EP_InnerON) != U32(0)) ||
+ *(*int32)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr + 52)) != (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ return 0
+ }
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(JT_LEFT|JT_RIGHT) != 0 &&
+ (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_InnerON) != U32(0) {
+ return 0
+ }
+ return 1
+}
+
+func termCanDriveIndex(tls *libc.TLS, pTerm uintptr, pSrc uintptr, notReady Bitmask) int32 {
+ var aff int8
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor != (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ return 0
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) == 0 {
+ return 0
+ }
+
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0 &&
+ !(constraintCompatibleWithOuterJoin(tls, pTerm, pSrc) != 0) {
+ return 0
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&notReady != uint64(0) {
+ return 0
+ }
+
+ if *(*int32)(unsafe.Pointer(pTerm + 32)) < 0 {
+ return 0
+ }
+ aff = (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc)).FpTab)).FaCol + uintptr(*(*int32)(unsafe.Pointer(pTerm + 32)))*24)).Faffinity
+ if !(Xsqlite3IndexAffinityOk(tls, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, aff) != 0) {
+ return 0
+ }
+
+ return 1
+}
+
+func constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, pSrc uintptr, notReady Bitmask, pLevel uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var nKeyCol int32
+ var pTerm uintptr
+ var pWCEnd uintptr
+ var pIdx uintptr
+ var v uintptr
+ var addrInit int32
+ var pTable uintptr
+ var addrTop int32
+ var regRecord int32
+ var n int32
+ var i int32
+ var mxBitCol int32
+ var pColl uintptr
+ var pLoop uintptr
+
+ var idxCols Bitmask
+ var extraCols Bitmask
+ var sentWarning U8
+ var pPartial uintptr
+ var iContinue int32
+ var pTabItem uintptr
+ var addrCounter int32
+ var regBase int32
+ var iCol int32
+ var cMask Bitmask
+ var pExpr uintptr
+ var pX uintptr
+ var iCol1 int32
+ var cMask1 Bitmask
+ var regYield int32
+ sentWarning = U8(0)
+ pPartial = uintptr(0)
+ iContinue = 0
+ addrCounter = 0
+
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+
+ addrInit = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+
+ nKeyCol = 0
+ pTable = (*SrcItem)(unsafe.Pointer(pSrc)).FpTab
+ pWCEnd = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*WhereClause)(unsafe.Pointer(pWC)).FnTerm)*56
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ idxCols = uint64(0)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__1:
+ if !(pTerm < pWCEnd) {
+ goto __3
+ }
+ pExpr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+
+ if !(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VIRTUAL == 0 &&
+ Xsqlite3ExprIsTableConstraint(tls, pExpr, pSrc) != 0) {
+ goto __4
+ }
+ pPartial = Xsqlite3ExprAnd(tls, pParse, pPartial,
+ Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0))
+__4:
+ ;
+ if !(termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0) {
+ goto __5
+ }
+
+ iCol = *(*int32)(unsafe.Pointer(pTerm + 32))
+ if iCol >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ cMask = uint64(1) << (int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1)
+ } else {
+ cMask = uint64(1) << iCol
+ }
+
+ if !!(sentWarning != 0) {
+ goto __6
+ }
+ Xsqlite3_log(tls, SQLITE_WARNING|int32(1)<<8,
+ ts+22356, libc.VaList(bp, (*Table)(unsafe.Pointer(pTable)).FzName,
+ (*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTable)).FaCol+uintptr(iCol)*24)).FzCnName))
+ sentWarning = U8(1)
+__6:
+ ;
+ if !(idxCols&cMask == uint64(0)) {
+ goto __7
+ }
+ if !(whereLoopResize(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pLoop, nKeyCol+1) != 0) {
+ goto __8
+ }
+ goto end_auto_index_create
+__8:
+ ;
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(libc.PostIncInt32(&nKeyCol, 1))*8)) = pTerm
+ idxCols = idxCols | cMask
+__7:
+ ;
+__5:
+ ;
+ goto __2
+__2:
+ pTerm += 56
+ goto __1
+ goto __3
+__3:
+ ;
+ *(*U16)(unsafe.Pointer(pLoop + 24)) = libc.AssignPtrUint16(pLoop+60, U16(nKeyCol))
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags = U32(WHERE_COLUMN_EQ | WHERE_IDX_ONLY | WHERE_INDEXED |
+ WHERE_AUTO_INDEX)
+
+ extraCols = (*SrcItem)(unsafe.Pointer(pSrc)).FcolUsed & (^idxCols | uint64(1)<<(int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1))
+ mxBitCol = func() int32 {
+ if int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1 < int32((*Table)(unsafe.Pointer(pTable)).FnCol) {
+ return int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1
+ }
+ return int32((*Table)(unsafe.Pointer(pTable)).FnCol)
+ }()
+
+ i = 0
+__9:
+ if !(i < mxBitCol) {
+ goto __11
+ }
+ if !(extraCols&(uint64(1)<<i) != 0) {
+ goto __12
+ }
+ nKeyCol++
+__12:
+ ;
+ goto __10
+__10:
+ i++
+ goto __9
+ goto __11
+__11:
+ ;
+ if !((*SrcItem)(unsafe.Pointer(pSrc)).FcolUsed&(uint64(1)<<(int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1)) != 0) {
+ goto __13
+ }
+ nKeyCol = nKeyCol + (int32((*Table)(unsafe.Pointer(pTable)).FnCol) - int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) + 1)
+__13:
+ ;
+ pIdx = Xsqlite3AllocateIndexObject(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, int16(nKeyCol+1), 0, bp+16)
+ if !(pIdx == uintptr(0)) {
+ goto __14
+ }
+ goto end_auto_index_create
+__14:
+ ;
+ *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8)) = pIdx
+ (*Index)(unsafe.Pointer(pIdx)).FzName = ts + 22382
+ (*Index)(unsafe.Pointer(pIdx)).FpTable = pTable
+ n = 0
+ idxCols = uint64(0)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__15:
+ if !(pTerm < pWCEnd) {
+ goto __17
+ }
+ if !(termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0) {
+ goto __18
+ }
+
+ iCol1 = *(*int32)(unsafe.Pointer(pTerm + 32))
+ if iCol1 >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ cMask1 = uint64(1) << (int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1)
+ } else {
+ cMask1 = uint64(1) << iCol1
+ }
+
+ if !(idxCols&cMask1 == uint64(0)) {
+ goto __19
+ }
+ pX = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ idxCols = idxCols | cMask1
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2)) = I16(*(*int32)(unsafe.Pointer(pTerm + 32)))
+ pColl = Xsqlite3ExprCompareCollSeq(tls, pParse, pX)
+
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(n)*8)) = func() uintptr {
+ if pColl != 0 {
+ return (*CollSeq)(unsafe.Pointer(pColl)).FzName
+ }
+ return uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ }()
+ n++
+__19:
+ ;
+__18:
+ ;
+ goto __16
+__16:
+ pTerm += 56
+ goto __15
+ goto __17
+__17:
+ ;
+ i = 0
+__20:
+ if !(i < mxBitCol) {
+ goto __22
+ }
+ if !(extraCols&(uint64(1)<<i) != 0) {
+ goto __23
+ }
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2)) = I16(i)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(n)*8)) = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ n++
+__23:
+ ;
+ goto __21
+__21:
+ i++
+ goto __20
+ goto __22
+__22:
+ ;
+ if !((*SrcItem)(unsafe.Pointer(pSrc)).FcolUsed&(uint64(1)<<(int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1)) != 0) {
+ goto __24
+ }
+ i = int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) - 1
+__25:
+ if !(i < int32((*Table)(unsafe.Pointer(pTable)).FnCol)) {
+ goto __27
+ }
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2)) = I16(i)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(n)*8)) = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ n++
+ goto __26
+__26:
+ i++
+ goto __25
+ goto __27
+__27:
+ ;
+__24:
+ ;
+ *(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2)) = int16(-1)
+ *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(n)*8)) = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenAutoindex, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, nKeyCol+1)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx)
+
+ if !((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_BloomFilter) == U32(0)) {
+ goto __28
+ }
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Blob, 10000, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter)
+__28:
+ ;
+ pTabItem = (*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0) {
+ goto __29
+ }
+ regYield = (*SrcItem)(unsafe.Pointer(pTabItem)).FregReturn
+ addrCounter = Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, 0)
+ Xsqlite3VdbeAddOp3(tls, v, OP_InitCoroutine, regYield, 0, (*SrcItem)(unsafe.Pointer(pTabItem)).FaddrFillSub)
+ addrTop = Xsqlite3VdbeAddOp1(tls, v, OP_Yield, regYield)
+
+ goto __30
+__29:
+ addrTop = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur)
+__30:
+ ;
+ if !(pPartial != 0) {
+ goto __31
+ }
+ iContinue = Xsqlite3VdbeMakeLabel(tls, pParse)
+ Xsqlite3ExprIfFalse(tls, pParse, pPartial, iContinue, SQLITE_JUMPIFNULL)
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_PARTIALIDX)
+__31:
+ ;
+ regRecord = Xsqlite3GetTempReg(tls, pParse)
+ regBase = Xsqlite3GenerateIndexKey(tls,
+ pParse, pIdx, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, regRecord, 0, uintptr(0), uintptr(0), 0)
+ if !((*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter != 0) {
+ goto __32
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_FilterAdd, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter, 0,
+ regBase, int32(*(*U16)(unsafe.Pointer(pLoop + 24))))
+__32:
+ ;
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxInsert, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, regRecord)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_USESEEKRESULT))
+ if !(pPartial != 0) {
+ goto __33
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, iContinue)
+__33:
+ ;
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0) {
+ goto __34
+ }
+ Xsqlite3VdbeChangeP2(tls, v, addrCounter, regBase+n)
+
+ translateColumnToCopy(tls, pParse, addrTop, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur,
+ (*SrcItem)(unsafe.Pointer(pTabItem)).FregResult, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur)
+ Xsqlite3VdbeGoto(tls, v, addrTop)
+ libc.SetBitFieldPtr16Uint32(pTabItem+60+4, uint32(0), 5, 0x20)
+ goto __35
+__34:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, addrTop+1)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_STMTSTATUS_AUTOINDEX))
+__35:
+ ;
+ Xsqlite3VdbeJumpHere(tls, v, addrTop)
+ Xsqlite3ReleaseTempReg(tls, pParse, regRecord)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrInit)
+
+end_auto_index_create:
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pPartial)
+}
+
+func sqlite3ConstructBloomFilter(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLevel uintptr, notReady Bitmask) {
+ var addrOnce int32
+ var addrTop int32
+ var addrCont int32
+ var pTerm uintptr
+ var pWCEnd uintptr
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var pLoop uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ var iCur int32
+
+ addrOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ for __ccgo := true; __ccgo; __ccgo = iLevel < int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) {
+ var pItem uintptr
+ var pTab uintptr
+ var sz U64
+ Xsqlite3WhereExplainBloomFilter(tls, pParse, pWInfo, pLevel)
+ addrCont = Xsqlite3VdbeMakeLabel(tls, pParse)
+ iCur = (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ pItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+
+ pTab = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+
+ sz = Xsqlite3LogEstToInt(tls, (*Table)(unsafe.Pointer(pTab)).FnRowLogEst)
+ if sz < uint64(10000) {
+ sz = uint64(10000)
+ } else if sz > uint64(10000000) {
+ sz = uint64(10000000)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Blob, int32(sz), (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter)
+
+ addrTop = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, iCur)
+ pWCEnd = (*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.Fa + uintptr((*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.FnTerm)*56
+ for pTerm = (*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.Fa; pTerm < pWCEnd; pTerm += 56 {
+ var pExpr uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VIRTUAL == 0 &&
+ Xsqlite3ExprIsTableConstraint(tls, pExpr, pItem) != 0 {
+ Xsqlite3ExprIfFalse(tls, pParse, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, addrCont, SQLITE_JUMPIFNULL)
+ }
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != 0 {
+ var r1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iCur, r1)
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_FilterAdd, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter, 0, r1, 1)
+ Xsqlite3ReleaseTempReg(tls, pParse, r1)
+ } else {
+ var pIdx uintptr = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ var n int32 = int32(*(*U16)(unsafe.Pointer(pLoop + 24)))
+ var r1 int32 = Xsqlite3GetTempRange(tls, pParse, n)
+ var jj int32
+ for jj = 0; jj < n; jj++ {
+ var iCol int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(jj)*2)))
+
+ Xsqlite3ExprCodeGetColumnOfTable(tls, v, (*Index)(unsafe.Pointer(pIdx)).FpTable, iCur, iCol, r1+jj)
+ }
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_FilterAdd, (*WhereLevel)(unsafe.Pointer(pLevel)).FregFilter, 0, r1, n)
+ Xsqlite3ReleaseTempRange(tls, pParse, r1, n)
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, addrCont)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, addrTop+1)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrTop)
+ *(*U32)(unsafe.Pointer(pLoop + 56)) &= libc.Uint32FromInt32(libc.CplInt32(WHERE_BLOOMFILTER))
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_BloomPulldown) != U32(0) {
+ break
+ }
+ for libc.PreIncInt32(&iLevel, 1) < int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) {
+ var pTabItem uintptr
+ pLevel = pWInfo + 856 + uintptr(iLevel)*104
+ pTabItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ if int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ) != 0 {
+ continue
+ }
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ if pLoop == uintptr(0) {
+ continue
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).Fprereq&notReady != 0 {
+ continue
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BLOOMFILTER|WHERE_COLUMN_IN) ==
+ U32(WHERE_BLOOMFILTER) {
+ break
+ }
+ }
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrOnce)
+}
+
+func allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable Bitmask, pSrc uintptr, pmNoOmit uintptr) uintptr {
+ var i int32
+ var j int32
+ var nTerm int32
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var pIdxCons uintptr
+ var pIdxOrderBy uintptr
+ var pUsage uintptr
+ var pHidden uintptr
+ var pTerm uintptr
+ var nOrderBy int32
+ var pIdxInfo uintptr
+ var mNoOmit U16 = U16(0)
+ var pTab uintptr
+ var eDistinct int32 = 0
+ var pOrderBy uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy
+
+ pTab = (*SrcItem)(unsafe.Pointer(pSrc)).FpTab
+
+ i = libc.AssignInt32(&nTerm, 0)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__1:
+ if !(i < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __3
+ }
+ {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) &= libc.Uint16FromInt32(libc.CplInt32(TERM_OK))
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FleftCursor != (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ goto __2
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&mUnusable != 0 {
+ goto __2
+ }
+
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&libc.CplInt32(WO_EQUIV) == 0 {
+ goto __2
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VNULL != 0 {
+ goto __2
+ }
+
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0 &&
+ !(constraintCompatibleWithOuterJoin(tls, pTerm, pSrc) != 0) {
+ goto __2
+ }
+ nTerm++
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_OK)
+
+ }
+ goto __2
+__2:
+ i++
+ pTerm += 56
+ goto __1
+ goto __3
+__3:
+ ;
+ nOrderBy = 0
+ if pOrderBy != 0 {
+ var n int32 = (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr
+ for i = 0; i < n; i++ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32)).FpExpr
+ var pE2 uintptr
+
+ if Xsqlite3ExprIsConstant(tls, pExpr) != 0 {
+ continue
+ }
+
+ if int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).Ffg.FsortFlags)&KEYINFO_ORDER_BIGNULL != 0 {
+ break
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN && (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ continue
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLLATE &&
+ int32((*Expr)(unsafe.Pointer(libc.AssignUintptr(&pE2, (*Expr)(unsafe.Pointer(pExpr)).FpLeft))).Fop) == TK_COLUMN &&
+ (*Expr)(unsafe.Pointer(pE2)).FiTable == (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor {
+ var zColl uintptr
+
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = (*Expr)(unsafe.Pointer(pE2)).FiColumn
+ if int32((*Expr)(unsafe.Pointer(pE2)).FiColumn) < 0 {
+ continue
+ }
+ zColl = Xsqlite3ColumnColl(tls, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr((*Expr)(unsafe.Pointer(pE2)).FiColumn)*24)
+ if zColl == uintptr(0) {
+ zColl = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ }
+ if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), zColl) == 0 {
+ continue
+ }
+ }
+
+ break
+ }
+ if i == n {
+ nOrderBy = n
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_DISTINCTBY != 0 {
+ eDistinct = 2 + libc.Bool32(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_SORTBYGROUP != 0)
+ } else if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_GROUPBY != 0 {
+ eDistinct = 1
+ }
+ }
+ }
+
+ pIdxInfo = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Sqlite3_index_info{}))+
+ (uint64(unsafe.Sizeof(sqlite3_index_constraint{}))+uint64(unsafe.Sizeof(sqlite3_index_constraint_usage{})))*uint64(nTerm)+
+ uint64(unsafe.Sizeof(sqlite3_index_orderby{}))*uint64(nOrderBy)+uint64(unsafe.Sizeof(HiddenIndexInfo1{}))+
+ uint64(unsafe.Sizeof(uintptr(0)))*uint64(nTerm))
+ if pIdxInfo == uintptr(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+1483, 0)
+ return uintptr(0)
+ }
+ pHidden = pIdxInfo + 1*96
+ pIdxCons = pHidden + 32 + uintptr(nTerm)*8
+ pIdxOrderBy = pIdxCons + uintptr(nTerm)*12
+ pUsage = pIdxOrderBy + uintptr(nOrderBy)*8
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint = pIdxCons
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy = pIdxOrderBy
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage = pUsage
+ (*HiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC
+ (*HiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse
+ (*HiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct
+ (*HiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = U32(0)
+ i = libc.AssignInt32(&j, 0)
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__4:
+ if !(i < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __6
+ }
+ {
+ var op U16
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_OK == 0 {
+ goto __5
+ }
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).FiColumn = *(*int32)(unsafe.Pointer(pTerm + 32))
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).FiTermOffset = i
+ op = U16(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator) & WO_ALL)
+ if int32(op) == WO_IN {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_SLICE == 0 {
+ *(*U32)(unsafe.Pointer(pHidden + 20)) |= func() uint32 {
+ if j <= 31 {
+ return uint32(1) << j
+ }
+ return uint32(0)
+ }()
+ }
+ op = U16(WO_EQ)
+ }
+ if int32(op) == WO_AUX {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = (*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp
+ } else if int32(op)&(WO_ISNULL|WO_IS) != 0 {
+ if int32(op) == WO_ISNULL {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = uint8(SQLITE_INDEX_CONSTRAINT_ISNULL)
+ } else {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = uint8(SQLITE_INDEX_CONSTRAINT_IS)
+ }
+ } else {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = U8(op)
+
+ if int32(op)&(int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ)|int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) != 0 &&
+ Xsqlite3ExprIsVector(tls, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight) != 0 {
+ if j < 16 {
+ mNoOmit = U16(int32(mNoOmit) | int32(1)<<j)
+ }
+ if int32(op) == int32(WO_EQ)<<(TK_LT-TK_EQ) {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = uint8(int32(WO_EQ) << (TK_LE - TK_EQ))
+ }
+ if int32(op) == int32(WO_EQ)<<(TK_GT-TK_EQ) {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12)).Fop = uint8(int32(WO_EQ) << (TK_GE - TK_EQ))
+ }
+ }
+ }
+
+ j++
+
+ }
+ goto __5
+__5:
+ i++
+ pTerm += 56
+ goto __4
+ goto __6
+__6:
+ ;
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint = j
+ for i = libc.AssignInt32(&j, 0); i < nOrderBy; i++ {
+ var pExpr uintptr = (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32)).FpExpr
+ if Xsqlite3ExprIsConstant(tls, pExpr) != 0 {
+ continue
+ }
+
+ (*sqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8)).FiColumn = int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn)
+ (*sqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8)).Fdesc = uint8(int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).Ffg.FsortFlags) & KEYINFO_ORDER_DESC)
+ j++
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnOrderBy = j
+
+ *(*U16)(unsafe.Pointer(pmNoOmit)) = mNoOmit
+ return pIdxInfo
+}
+
+func freeIndexInfo(tls *libc.TLS, db uintptr, pIdxInfo uintptr) {
+ var pHidden uintptr
+ var i int32
+
+ pHidden = pIdxInfo + 1*96
+
+ for i = 0; i < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint; i++ {
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(pHidden + 32 + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(pHidden + 32 + uintptr(i)*8)) = uintptr(0)
+ }
+ Xsqlite3DbFree(tls, db, pIdxInfo)
+}
+
+func vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pVtab uintptr = (*VTable)(unsafe.Pointer(Xsqlite3GetVTable(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pTab))).FpVtab
+ var rc int32
+
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FnSchemaLock++
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_module)(unsafe.Pointer((*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FpModule)).FxBestIndex})).f(tls, pVtab, p)
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FnSchemaLock--
+
+ if rc != SQLITE_OK && rc != SQLITE_CONSTRAINT {
+ if rc == SQLITE_NOMEM {
+ Xsqlite3OomFault(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb)
+ } else if !(int32((*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg) != 0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+3658, libc.VaList(bp, Xsqlite3ErrStr(tls, rc)))
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+3658, libc.VaList(bp+8, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg))
+ }
+ }
+ Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)
+ (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = uintptr(0)
+ return rc
+}
+
+func whereKeyStats(tls *libc.TLS, pParse uintptr, pIdx uintptr, pRec uintptr, roundUp int32, aStat uintptr) int32 {
+ var aSample uintptr = (*Index)(unsafe.Pointer(pIdx)).FaSample
+ var iCol int32
+ var i int32
+ var iSample int32
+ var iMin int32 = 0
+ var iTest int32
+ var res int32
+ var nField int32
+ var iLower TRowcnt = uint64(0)
+
+ _ = pParse
+
+ nField = func() int32 {
+ if int32((*UnpackedRecord)(unsafe.Pointer(pRec)).FnField) < (*Index)(unsafe.Pointer(pIdx)).FnSample {
+ return int32((*UnpackedRecord)(unsafe.Pointer(pRec)).FnField)
+ }
+ return (*Index)(unsafe.Pointer(pIdx)).FnSample
+ }()
+ iCol = 0
+ iSample = (*Index)(unsafe.Pointer(pIdx)).FnSample * nField
+ for __ccgo := true; __ccgo; __ccgo = res != 0 && iMin < iSample {
+ var iSamp int32
+ var n int32
+
+ iTest = (iMin + iSample) / 2
+ iSamp = iTest / nField
+ if iSamp > 0 {
+ for n = iTest%nField + 1; n < nField; n++ {
+ if *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp-1)*40)).FanLt + uintptr(n-1)*8)) != *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).FanLt + uintptr(n-1)*8)) {
+ break
+ }
+ }
+ } else {
+ n = iTest + 1
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(pRec)).FnField = U16(n)
+ res = Xsqlite3VdbeRecordCompare(tls, (*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).Fn, (*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).Fp, pRec)
+ if res < 0 {
+ iLower = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).FanLt + uintptr(n-1)*8)) + *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).FanEq + uintptr(n-1)*8))
+ iMin = iTest + 1
+ } else if res == 0 && n < nField {
+ iLower = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(iSamp)*40)).FanLt + uintptr(n-1)*8))
+ iMin = iTest + 1
+ res = -1
+ } else {
+ iSample = iTest
+ iCol = n - 1
+ }
+ }
+ i = iSample / nField
+
+ if res == 0 {
+ *(*TRowcnt)(unsafe.Pointer(aStat)) = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i)*40)).FanLt + uintptr(iCol)*8))
+ *(*TRowcnt)(unsafe.Pointer(aStat + 1*8)) = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i)*40)).FanEq + uintptr(iCol)*8))
+ } else {
+ var iUpper TRowcnt
+ var iGap TRowcnt
+ if i >= (*Index)(unsafe.Pointer(pIdx)).FnSample {
+ iUpper = (*Index)(unsafe.Pointer(pIdx)).FnRowEst0
+ } else {
+ iUpper = *(*TRowcnt)(unsafe.Pointer((*IndexSample)(unsafe.Pointer(aSample+uintptr(i)*40)).FanLt + uintptr(iCol)*8))
+ }
+
+ if iLower >= iUpper {
+ iGap = uint64(0)
+ } else {
+ iGap = iUpper - iLower
+ }
+ if roundUp != 0 {
+ iGap = iGap * uint64(2) / uint64(3)
+ } else {
+ iGap = iGap / uint64(3)
+ }
+ *(*TRowcnt)(unsafe.Pointer(aStat)) = iLower + iGap
+ *(*TRowcnt)(unsafe.Pointer(aStat + 1*8)) = *(*TRowcnt)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaAvgEq + uintptr(nField-1)*8))
+ }
+
+ (*UnpackedRecord)(unsafe.Pointer(pRec)).FnField = U16(nField)
+ return i
+}
+
+func whereRangeAdjust(tls *libc.TLS, pTerm uintptr, nNew LogEst) LogEst {
+ var nRet LogEst = nNew
+ if pTerm != 0 {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb) <= 0 {
+ nRet = LogEst(int32(nRet) + int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb))
+ } else if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VNULL == 0 {
+ nRet = int16(int32(nRet) - 20)
+ }
+ }
+ return nRet
+}
+
+// Return the affinity for a single column of an index.
+func Xsqlite3IndexColumnAffinity(tls *libc.TLS, db uintptr, pIdx uintptr, iCol int32) int8 {
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FzColAff) != 0) {
+ if Xsqlite3IndexAffinityStr(tls, db, pIdx) == uintptr(0) {
+ return int8(SQLITE_AFF_BLOB)
+ }
+ }
+
+ return *(*int8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FzColAff + uintptr(iCol)))
+}
+
+func whereRangeSkipScanEst(tls *libc.TLS, pParse uintptr, pLower uintptr, pUpper uintptr, pLoop uintptr, pbDone uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ var nEq int32 = int32(*(*U16)(unsafe.Pointer(pLoop + 24)))
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var nLower int32 = -1
+ var nUpper int32 = (*Index)(unsafe.Pointer(p)).FnSample + 1
+ var rc int32 = SQLITE_OK
+ var aff U8 = U8(Xsqlite3IndexColumnAffinity(tls, db, p, nEq))
+ var pColl uintptr
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+
+ pColl = Xsqlite3LocateCollSeq(tls, pParse, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(p)).FazColl + uintptr(nEq)*8)))
+ if pLower != 0 {
+ rc = Xsqlite3Stat4ValueFromExpr(tls, pParse, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pLower)).FpExpr)).FpRight, aff, bp)
+ nLower = 0
+ }
+ if pUpper != 0 && rc == SQLITE_OK {
+ rc = Xsqlite3Stat4ValueFromExpr(tls, pParse, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pUpper)).FpExpr)).FpRight, aff, bp+8)
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ nUpper = 0
+ } else {
+ nUpper = (*Index)(unsafe.Pointer(p)).FnSample
+ }
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 || *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ var i int32
+ var nDiff int32
+ for i = 0; rc == SQLITE_OK && i < (*Index)(unsafe.Pointer(p)).FnSample; i++ {
+ rc = Xsqlite3Stat4Column(tls, db, (*IndexSample)(unsafe.Pointer((*Index)(unsafe.Pointer(p)).FaSample+uintptr(i)*40)).Fp, (*IndexSample)(unsafe.Pointer((*Index)(unsafe.Pointer(p)).FaSample+uintptr(i)*40)).Fn, nEq, bp+16)
+ if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ var res int32 = Xsqlite3MemCompare(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 16)), pColl)
+ if res >= 0 {
+ nLower++
+ }
+ }
+ if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ var res int32 = Xsqlite3MemCompare(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp + 16)), pColl)
+ if res >= 0 {
+ nUpper++
+ }
+ }
+ }
+ nDiff = nUpper - nLower
+ if nDiff <= 0 {
+ nDiff = 1
+ }
+
+ if nDiff != 1 || pUpper == uintptr(0) || pLower == uintptr(0) {
+ var nAdjust int32 = int32(Xsqlite3LogEst(tls, uint64((*Index)(unsafe.Pointer(p)).FnSample))) - int32(Xsqlite3LogEst(tls, uint64(nDiff)))
+ *(*LogEst)(unsafe.Pointer(pLoop + 22)) -= LogEst(nAdjust)
+ *(*int32)(unsafe.Pointer(pbDone)) = 1
+
+ }
+
+ } else {
+ }
+
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+
+ return rc
+}
+
+func whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower uintptr, pUpper uintptr, pLoop uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var rc int32 = SQLITE_OK
+ var nOut int32 = int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnOut)
+ var nNew LogEst
+
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ var nEq int32 = int32(*(*U16)(unsafe.Pointer(pLoop + 24)))
+
+ if (*Index)(unsafe.Pointer(p)).FnSample > 0 && nEq < (*Index)(unsafe.Pointer(p)).FnSampleCol &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ if nEq == (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec
+
+ var nBtm int32 = int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 2)))
+ var nTop int32 = int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 4)))
+
+ var iLower TRowcnt
+ var iUpper TRowcnt
+ var iLwrIdx int32 = -2
+ var iUprIdx int32 = -1
+
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 {
+ (*UnpackedRecord)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnField = U16((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid)
+ }
+
+ if nEq == 0 {
+ iLower = uint64(0)
+ iUpper = (*Index)(unsafe.Pointer(p)).FnRowEst0
+ } else {
+ whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp + 16)), 0, bp)
+ iLower = *(*TRowcnt)(unsafe.Pointer(bp))
+ iUpper = *(*TRowcnt)(unsafe.Pointer(bp)) + *(*TRowcnt)(unsafe.Pointer(bp + 1*8))
+ }
+
+ if *(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(p)).FaSortOrder + uintptr(nEq))) != 0 {
+ {
+ var t uintptr = pLower
+ pLower = pUpper
+ pUpper = t
+ }
+
+ {
+ var t int32 = nBtm
+ nBtm = nTop
+ nTop = t
+ }
+
+ }
+
+ if pLower != 0 {
+ var pExpr uintptr = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pLower)).FpExpr)).FpRight
+ rc = Xsqlite3Stat4ProbeSetValue(tls, pParse, p, bp+16, pExpr, nBtm, nEq, bp+24)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 24)) != 0 {
+ var iNew TRowcnt
+ var mask U16 = U16(int32(WO_EQ)<<(TK_GT-TK_EQ) | int32(WO_EQ)<<(TK_LE-TK_EQ))
+ if Xsqlite3ExprVectorSize(tls, pExpr) > *(*int32)(unsafe.Pointer(bp + 24)) {
+ mask = U16(int32(WO_EQ)<<(TK_LE-TK_EQ) | int32(WO_EQ)<<(TK_LT-TK_EQ))
+ }
+ iLwrIdx = whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp + 16)), 0, bp)
+ iNew = *(*TRowcnt)(unsafe.Pointer(bp)) + func() uint64 {
+ if int32((*WhereTerm)(unsafe.Pointer(pLower)).FeOperator)&int32(mask) != 0 {
+ return *(*TRowcnt)(unsafe.Pointer(bp + 1*8))
+ }
+ return uint64(0)
+ }()
+ if iNew > iLower {
+ iLower = iNew
+ }
+ nOut--
+ pLower = uintptr(0)
+ }
+ }
+
+ if pUpper != 0 {
+ var pExpr uintptr = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pUpper)).FpExpr)).FpRight
+ rc = Xsqlite3Stat4ProbeSetValue(tls, pParse, p, bp+16, pExpr, nTop, nEq, bp+28)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 28)) != 0 {
+ var iNew TRowcnt
+ var mask U16 = U16(int32(WO_EQ)<<(TK_GT-TK_EQ) | int32(WO_EQ)<<(TK_LE-TK_EQ))
+ if Xsqlite3ExprVectorSize(tls, pExpr) > *(*int32)(unsafe.Pointer(bp + 28)) {
+ mask = U16(int32(WO_EQ)<<(TK_LE-TK_EQ) | int32(WO_EQ)<<(TK_LT-TK_EQ))
+ }
+ iUprIdx = whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp + 16)), 1, bp)
+ iNew = *(*TRowcnt)(unsafe.Pointer(bp)) + func() uint64 {
+ if int32((*WhereTerm)(unsafe.Pointer(pUpper)).FeOperator)&int32(mask) != 0 {
+ return *(*TRowcnt)(unsafe.Pointer(bp + 1*8))
+ }
+ return uint64(0)
+ }()
+ if iNew < iUpper {
+ iUpper = iNew
+ }
+ nOut--
+ pUpper = uintptr(0)
+ }
+ }
+
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec = *(*uintptr)(unsafe.Pointer(bp + 16))
+ if rc == SQLITE_OK {
+ if iUpper > iLower {
+ nNew = Xsqlite3LogEst(tls, iUpper-iLower)
+
+ if iLwrIdx == iUprIdx {
+ nNew = int16(int32(nNew) - 20)
+ }
+ } else {
+ nNew = int16(10)
+ }
+ if int32(nNew) < nOut {
+ nOut = int32(nNew)
+ }
+
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 32)) = 0
+ rc = whereRangeSkipScanEst(tls, pParse, pLower, pUpper, pLoop, bp+32)
+ if *(*int32)(unsafe.Pointer(bp + 32)) != 0 {
+ return rc
+ }
+ }
+ }
+
+ nNew = whereRangeAdjust(tls, pLower, int16(nOut))
+ nNew = whereRangeAdjust(tls, pUpper, nNew)
+
+ if pLower != 0 && int32((*WhereTerm)(unsafe.Pointer(pLower)).FtruthProb) > 0 && pUpper != 0 && int32((*WhereTerm)(unsafe.Pointer(pUpper)).FtruthProb) > 0 {
+ nNew = int16(int32(nNew) - 20)
+ }
+
+ nOut = nOut - (libc.Bool32(pLower != uintptr(0)) + libc.Bool32(pUpper != uintptr(0)))
+ if int32(nNew) < 10 {
+ nNew = int16(10)
+ }
+ if int32(nNew) < nOut {
+ nOut = int32(nNew)
+ }
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnOut = LogEst(nOut)
+ return rc
+}
+
+func whereEqualScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pExpr uintptr, pnRow uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var p uintptr = *(*uintptr)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew + 24 + 8))
+ var nEq int32 = int32(*(*U16)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew + 24)))
+ *(*uintptr)(unsafe.Pointer(bp)) = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec
+ var rc int32
+
+ if (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid < nEq-1 {
+ return SQLITE_NOTFOUND
+ }
+
+ if nEq >= int32((*Index)(unsafe.Pointer(p)).FnColumn) {
+ *(*TRowcnt)(unsafe.Pointer(pnRow)) = uint64(1)
+ return SQLITE_OK
+ }
+
+ rc = Xsqlite3Stat4ProbeSetValue(tls, pParse, p, bp, pExpr, 1, nEq-1, bp+8)
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec = *(*uintptr)(unsafe.Pointer(bp))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ if *(*int32)(unsafe.Pointer(bp + 8)) == 0 {
+ return SQLITE_NOTFOUND
+ }
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nEq
+
+ whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp)), 0, bp+16)
+
+ *(*TRowcnt)(unsafe.Pointer(pnRow)) = *(*TRowcnt)(unsafe.Pointer(bp + 16 + 1*8))
+
+ return rc
+}
+
+func whereInScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pList uintptr, pnRow uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr = *(*uintptr)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew + 24 + 8))
+ var nRow0 I64 = I64(Xsqlite3LogEstToInt(tls, *(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(p)).FaiRowLogEst))))
+ var nRecValid int32 = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid
+ var rc int32 = SQLITE_OK
+
+ var nRowEst TRowcnt = uint64(0)
+ var i int32
+
+ for i = 0; rc == SQLITE_OK && i < (*ExprList)(unsafe.Pointer(pList)).FnExpr; i++ {
+ *(*TRowcnt)(unsafe.Pointer(bp)) = TRowcnt(nRow0)
+ rc = whereEqualScanEst(tls, pParse, pBuilder, (*ExprList_item)(unsafe.Pointer(pList+8+uintptr(i)*32)).FpExpr, bp)
+ nRowEst = nRowEst + *(*TRowcnt)(unsafe.Pointer(bp))
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nRecValid
+ }
+
+ if rc == SQLITE_OK {
+ if nRowEst > TRowcnt(nRow0) {
+ nRowEst = TRowcnt(nRow0)
+ }
+ *(*TRowcnt)(unsafe.Pointer(pnRow)) = nRowEst
+
+ }
+
+ return rc
+}
+
+func whereLoopInit(tls *libc.TLS, p uintptr) {
+ (*WhereLoop)(unsafe.Pointer(p)).FaLTerm = p + 88
+ (*WhereLoop)(unsafe.Pointer(p)).FnLTerm = U16(0)
+ (*WhereLoop)(unsafe.Pointer(p)).FnLSlot = U16(int32(uint64(unsafe.Sizeof([3]uintptr{})) / uint64(unsafe.Sizeof(uintptr(0)))))
+ (*WhereLoop)(unsafe.Pointer(p)).FwsFlags = U32(0)
+}
+
+func whereLoopClearUnion(tls *libc.TLS, db uintptr, p uintptr) {
+ if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_VIRTUALTABLE|WHERE_AUTO_INDEX) != 0 {
+ if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_VIRTUALTABLE) != U32(0) && U32(int32(*(*uint8)(unsafe.Pointer(p + 24 + 4))&0x1>>0)) != 0 {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(p + 24 + 16)))
+ libc.SetBitFieldPtr8Uint32(p+24+4, U32(0), 0, 0x1)
+ *(*uintptr)(unsafe.Pointer(p + 24 + 16)) = uintptr(0)
+ } else if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_AUTO_INDEX) != U32(0) && *(*uintptr)(unsafe.Pointer(p + 24 + 8)) != uintptr(0) {
+ Xsqlite3DbFree(tls, db, (*Index)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 24 + 8)))).FzColAff)
+ Xsqlite3DbFreeNN(tls, db, *(*uintptr)(unsafe.Pointer(p + 24 + 8)))
+ *(*uintptr)(unsafe.Pointer(p + 24 + 8)) = uintptr(0)
+ }
+ }
+}
+
+func whereLoopClear(tls *libc.TLS, db uintptr, p uintptr) {
+ if (*WhereLoop)(unsafe.Pointer(p)).FaLTerm != p+88 {
+ Xsqlite3DbFreeNN(tls, db, (*WhereLoop)(unsafe.Pointer(p)).FaLTerm)
+ (*WhereLoop)(unsafe.Pointer(p)).FaLTerm = p + 88
+ (*WhereLoop)(unsafe.Pointer(p)).FnLSlot = U16(int32(uint64(unsafe.Sizeof([3]uintptr{})) / uint64(unsafe.Sizeof(uintptr(0)))))
+ }
+ whereLoopClearUnion(tls, db, p)
+ (*WhereLoop)(unsafe.Pointer(p)).FnLTerm = U16(0)
+ (*WhereLoop)(unsafe.Pointer(p)).FwsFlags = U32(0)
+}
+
+func whereLoopResize(tls *libc.TLS, db uintptr, p uintptr, n int32) int32 {
+ var paNew uintptr
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FnLSlot) >= n {
+ return SQLITE_OK
+ }
+ n = (n + 7) & libc.CplInt32(7)
+ paNew = Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(uintptr(0)))*uint64(n))
+ if paNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, paNew, (*WhereLoop)(unsafe.Pointer(p)).FaLTerm, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*WhereLoop)(unsafe.Pointer(p)).FnLSlot), libc.X__builtin_object_size(tls, paNew, 0))
+ if (*WhereLoop)(unsafe.Pointer(p)).FaLTerm != p+88 {
+ Xsqlite3DbFreeNN(tls, db, (*WhereLoop)(unsafe.Pointer(p)).FaLTerm)
+ }
+ (*WhereLoop)(unsafe.Pointer(p)).FaLTerm = paNew
+ (*WhereLoop)(unsafe.Pointer(p)).FnLSlot = U16(n)
+ return SQLITE_OK
+}
+
+func whereLoopXfer(tls *libc.TLS, db uintptr, pTo uintptr, pFrom uintptr) int32 {
+ whereLoopClearUnion(tls, db, pTo)
+ if int32((*WhereLoop)(unsafe.Pointer(pFrom)).FnLTerm) > int32((*WhereLoop)(unsafe.Pointer(pTo)).FnLSlot) &&
+ whereLoopResize(tls, db, pTo, int32((*WhereLoop)(unsafe.Pointer(pFrom)).FnLTerm)) != 0 {
+ libc.X__builtin___memset_chk(tls, pTo, 0, uint64(uintptr(0)+64), libc.X__builtin_object_size(tls, pTo, 0))
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, pTo, pFrom, uint64(uintptr(0)+64), libc.X__builtin_object_size(tls, pTo, 0))
+ libc.X__builtin___memcpy_chk(tls, (*WhereLoop)(unsafe.Pointer(pTo)).FaLTerm, (*WhereLoop)(unsafe.Pointer(pFrom)).FaLTerm, uint64((*WhereLoop)(unsafe.Pointer(pTo)).FnLTerm)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, (*WhereLoop)(unsafe.Pointer(pTo)).FaLTerm, 0))
+ if (*WhereLoop)(unsafe.Pointer(pFrom)).FwsFlags&U32(WHERE_VIRTUALTABLE) != 0 {
+ libc.SetBitFieldPtr8Uint32(pFrom+24+4, U32(0), 0, 0x1)
+ } else if (*WhereLoop)(unsafe.Pointer(pFrom)).FwsFlags&U32(WHERE_AUTO_INDEX) != U32(0) {
+ *(*uintptr)(unsafe.Pointer(pFrom + 24 + 8)) = uintptr(0)
+ }
+ return SQLITE_OK
+}
+
+func whereLoopDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ whereLoopClear(tls, db, p)
+ Xsqlite3DbNNFreeNN(tls, db, p)
+}
+
+func whereInfoFree(tls *libc.TLS, db uintptr, pWInfo uintptr) {
+ Xsqlite3WhereClauseClear(tls, pWInfo+104)
+ for (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops != 0 {
+ var p uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops = (*WhereLoop)(unsafe.Pointer(p)).FpNextLoop
+ whereLoopDelete(tls, db, p)
+ }
+ for (*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree != 0 {
+ var pNext uintptr = (*WhereMemBlock)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree)).FpNext
+ Xsqlite3DbNNFreeNN(tls, db, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpMemToFree = pNext
+ }
+ Xsqlite3DbNNFreeNN(tls, db, pWInfo)
+}
+
+func whereLoopCheaperProperSubset(tls *libc.TLS, pX uintptr, pY uintptr) int32 {
+ var i int32
+ var j int32
+ if int32((*WhereLoop)(unsafe.Pointer(pX)).FnLTerm)-int32((*WhereLoop)(unsafe.Pointer(pX)).FnSkip) >= int32((*WhereLoop)(unsafe.Pointer(pY)).FnLTerm)-int32((*WhereLoop)(unsafe.Pointer(pY)).FnSkip) {
+ return 0
+ }
+ if int32((*WhereLoop)(unsafe.Pointer(pX)).FrRun) > int32((*WhereLoop)(unsafe.Pointer(pY)).FrRun) && int32((*WhereLoop)(unsafe.Pointer(pX)).FnOut) > int32((*WhereLoop)(unsafe.Pointer(pY)).FnOut) {
+ return 0
+ }
+ if int32((*WhereLoop)(unsafe.Pointer(pY)).FnSkip) > int32((*WhereLoop)(unsafe.Pointer(pX)).FnSkip) {
+ return 0
+ }
+ for i = int32((*WhereLoop)(unsafe.Pointer(pX)).FnLTerm) - 1; i >= 0; i-- {
+ if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pX)).FaLTerm + uintptr(i)*8)) == uintptr(0) {
+ continue
+ }
+ for j = int32((*WhereLoop)(unsafe.Pointer(pY)).FnLTerm) - 1; j >= 0; j-- {
+ if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pY)).FaLTerm + uintptr(j)*8)) == *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pX)).FaLTerm + uintptr(i)*8)) {
+ break
+ }
+ }
+ if j < 0 {
+ return 0
+ }
+ }
+ if (*WhereLoop)(unsafe.Pointer(pX)).FwsFlags&U32(WHERE_IDX_ONLY) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pY)).FwsFlags&U32(WHERE_IDX_ONLY) == U32(0) {
+ return 0
+ }
+ return 1
+}
+
+func whereLoopAdjustCost(tls *libc.TLS, p uintptr, pTemplate uintptr) {
+ if (*WhereLoop)(unsafe.Pointer(pTemplate)).FwsFlags&U32(WHERE_INDEXED) == U32(0) {
+ return
+ }
+ for ; p != 0; p = (*WhereLoop)(unsafe.Pointer(p)).FpNextLoop {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FiTab) != int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FiTab) {
+ continue
+ }
+ if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_INDEXED) == U32(0) {
+ continue
+ }
+ if whereLoopCheaperProperSubset(tls, p, pTemplate) != 0 {
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun = func() int16 {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FrRun) < int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun) {
+ return (*WhereLoop)(unsafe.Pointer(p)).FrRun
+ }
+ return (*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun
+ }()
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut = func() int16 {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FnOut)-1 < int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
+ return int16(int32((*WhereLoop)(unsafe.Pointer(p)).FnOut) - 1)
+ }
+ return (*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut
+ }()
+ } else if whereLoopCheaperProperSubset(tls, pTemplate, p) != 0 {
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun = func() int16 {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FrRun) > int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun) {
+ return (*WhereLoop)(unsafe.Pointer(p)).FrRun
+ }
+ return (*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun
+ }()
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut = func() int16 {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FnOut)+1 > int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
+ return int16(int32((*WhereLoop)(unsafe.Pointer(p)).FnOut) + 1)
+ }
+ return (*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut
+ }()
+ }
+ }
+}
+
+func whereLoopFindLesser(tls *libc.TLS, ppPrev uintptr, pTemplate uintptr) uintptr {
+ var p uintptr
+ p = *(*uintptr)(unsafe.Pointer(ppPrev))
+__1:
+ if !(p != 0) {
+ goto __3
+ }
+ {
+ if int32((*WhereLoop)(unsafe.Pointer(p)).FiTab) != int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FiTab) || int32((*WhereLoop)(unsafe.Pointer(p)).FiSortIdx) != int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FiSortIdx) {
+ goto __2
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_AUTO_INDEX) != U32(0) &&
+ int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FnSkip) == 0 &&
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FwsFlags&U32(WHERE_INDEXED) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FwsFlags&U32(WHERE_COLUMN_EQ) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(p)).Fprereq&(*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq == (*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq {
+ goto __3
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(p)).Fprereq&(*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq == (*WhereLoop)(unsafe.Pointer(p)).Fprereq &&
+ int32((*WhereLoop)(unsafe.Pointer(p)).FrSetup) <= int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FrSetup) &&
+ int32((*WhereLoop)(unsafe.Pointer(p)).FrRun) <= int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun) &&
+ int32((*WhereLoop)(unsafe.Pointer(p)).FnOut) <= int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
+ return uintptr(0)
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(p)).Fprereq&(*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq == (*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq &&
+ int32((*WhereLoop)(unsafe.Pointer(p)).FrRun) >= int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun) &&
+ int32((*WhereLoop)(unsafe.Pointer(p)).FnOut) >= int32((*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut) {
+ goto __3
+ }
+
+ }
+ goto __2
+__2:
+ ppPrev = p + 80
+ p = *(*uintptr)(unsafe.Pointer(ppPrev))
+ goto __1
+ goto __3
+__3:
+ ;
+ return ppPrev
+}
+
+func whereLoopInsert(tls *libc.TLS, pBuilder uintptr, pTemplate uintptr) int32 {
+ var ppPrev uintptr
+ var p uintptr
+ var pWInfo uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ var db uintptr = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb
+ var rc int32
+
+ if (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FiPlanLimit == uint32(0) {
+ if (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpOrSet != 0 {
+ (*WhereOrSet)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpOrSet)).Fn = U16(0)
+ }
+ return SQLITE_DONE
+ }
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FiPlanLimit--
+
+ whereLoopAdjustCost(tls, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops, pTemplate)
+
+ if (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpOrSet != uintptr(0) {
+ if (*WhereLoop)(unsafe.Pointer(pTemplate)).FnLTerm != 0 {
+ whereOrInsert(tls, (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpOrSet, (*WhereLoop)(unsafe.Pointer(pTemplate)).Fprereq, (*WhereLoop)(unsafe.Pointer(pTemplate)).FrRun,
+ (*WhereLoop)(unsafe.Pointer(pTemplate)).FnOut)
+ }
+ return SQLITE_OK
+ }
+
+ ppPrev = whereLoopFindLesser(tls, pWInfo+80, pTemplate)
+
+ if ppPrev == uintptr(0) {
+ return SQLITE_OK
+ } else {
+ p = *(*uintptr)(unsafe.Pointer(ppPrev))
+ }
+
+ if p == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(ppPrev)) = libc.AssignUintptr(&p, Xsqlite3DbMallocRawNN(tls, db, uint64(unsafe.Sizeof(WhereLoop{}))))
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ whereLoopInit(tls, p)
+ (*WhereLoop)(unsafe.Pointer(p)).FpNextLoop = uintptr(0)
+ } else {
+ var ppTail uintptr = p + 80
+ var pToDel uintptr
+ for *(*uintptr)(unsafe.Pointer(ppTail)) != 0 {
+ ppTail = whereLoopFindLesser(tls, ppTail, pTemplate)
+ if ppTail == uintptr(0) {
+ break
+ }
+ pToDel = *(*uintptr)(unsafe.Pointer(ppTail))
+ if pToDel == uintptr(0) {
+ break
+ }
+ *(*uintptr)(unsafe.Pointer(ppTail)) = (*WhereLoop)(unsafe.Pointer(pToDel)).FpNextLoop
+ whereLoopDelete(tls, db, pToDel)
+ }
+ }
+ rc = whereLoopXfer(tls, db, p, pTemplate)
+ if (*WhereLoop)(unsafe.Pointer(p)).FwsFlags&U32(WHERE_VIRTUALTABLE) == U32(0) {
+ var pIndex uintptr = *(*uintptr)(unsafe.Pointer(p + 24 + 8))
+ if pIndex != 0 && int32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0) == SQLITE_IDXTYPE_IPK {
+ *(*uintptr)(unsafe.Pointer(p + 24 + 8)) = uintptr(0)
+ }
+ }
+ return rc
+}
+
+func whereLoopOutputAdjust(tls *libc.TLS, pWC uintptr, pLoop uintptr, nRow LogEst) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pTerm uintptr
+ var pX uintptr
+ var notAllowed Bitmask = ^((*WhereLoop)(unsafe.Pointer(pLoop)).Fprereq | (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf)
+ var i int32
+ var j int32
+ var iReduce LogEst = int16(0)
+
+ i = (*WhereClause)(unsafe.Pointer(pWC)).FnBase
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__1:
+ if !(i > 0) {
+ goto __3
+ }
+ {
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&notAllowed != uint64(0) {
+ goto __2
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&(*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf == uint64(0) {
+ goto __2
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VIRTUAL != 0 {
+ goto __2
+ }
+ for j = int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm) - 1; j >= 0; j-- {
+ pX = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8))
+ if pX == uintptr(0) {
+ continue
+ }
+ if pX == pTerm {
+ break
+ }
+ if (*WhereTerm)(unsafe.Pointer(pX)).FiParent >= 0 && (*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr((*WhereTerm)(unsafe.Pointer(pX)).FiParent)*56 == pTerm {
+ break
+ }
+ }
+ if j < 0 {
+ Xsqlite3ProgressCheck(tls, (*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf == (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&0x3f != 0 ||
+ int32((*SrcItem)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpTabList+8+uintptr((*WhereLoop)(unsafe.Pointer(pLoop)).FiTab)*104)).Ffg.Fjointype)&
+ (JT_LEFT|JT_LTORJ) == 0 {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_SELFCULL)
+ }
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb) <= 0 {
+ *(*LogEst)(unsafe.Pointer(pLoop + 22)) += LogEst(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb))
+ } else {
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnOut--
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) != 0 &&
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_HIGHTRUTH == 0 {
+ var pRight uintptr = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if Xsqlite3ExprIsInteger(tls, pRight, bp) != 0 && *(*int32)(unsafe.Pointer(bp)) >= -1 && *(*int32)(unsafe.Pointer(bp)) <= 1 {
+ *(*int32)(unsafe.Pointer(bp)) = 10
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 20
+ }
+ if int32(iReduce) < *(*int32)(unsafe.Pointer(bp)) {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_HEURTRUTH)
+ iReduce = LogEst(*(*int32)(unsafe.Pointer(bp)))
+ }
+ }
+ }
+ }
+
+ }
+ goto __2
+__2:
+ i--
+ pTerm += 56
+ goto __1
+ goto __3
+__3:
+ ;
+ if int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnOut) > int32(nRow)-int32(iReduce) {
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnOut = LogEst(int32(nRow) - int32(iReduce))
+ }
+}
+
+func whereRangeVectorLen(tls *libc.TLS, pParse uintptr, iCur int32, pIdx uintptr, nEq int32, pTerm uintptr) int32 {
+ var nCmp int32 = Xsqlite3ExprVectorSize(tls, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft)
+ var i int32
+
+ nCmp = func() int32 {
+ if nCmp < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn)-nEq {
+ return nCmp
+ }
+ return int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) - nEq
+ }()
+ for i = 1; i < nCmp; i++ {
+ var aff int8
+ var idxaff int8 = int8(0)
+ var pColl uintptr
+ var pLhs uintptr
+ var pRhs uintptr
+
+ pLhs = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft + 32)) + 8 + uintptr(i)*32)).FpExpr
+ pRhs = (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight
+ if (*Expr)(unsafe.Pointer(pRhs)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ pRhs = (*ExprList_item)(unsafe.Pointer((*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pRhs + 32)))).FpEList + 8 + uintptr(i)*32)).FpExpr
+ } else {
+ pRhs = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pRhs + 32)) + 8 + uintptr(i)*32)).FpExpr
+ }
+
+ if int32((*Expr)(unsafe.Pointer(pLhs)).Fop) != TK_COLUMN ||
+ (*Expr)(unsafe.Pointer(pLhs)).FiTable != iCur ||
+ int32((*Expr)(unsafe.Pointer(pLhs)).FiColumn) != int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i+nEq)*2))) ||
+ int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i+nEq)))) != int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(nEq)))) {
+ break
+ }
+
+ aff = Xsqlite3CompareAffinity(tls, pRhs, Xsqlite3ExprAffinity(tls, pLhs))
+ idxaff = Xsqlite3TableColumnAffinity(tls, (*Index)(unsafe.Pointer(pIdx)).FpTable, int32((*Expr)(unsafe.Pointer(pLhs)).FiColumn))
+ if int32(aff) != int32(idxaff) {
+ break
+ }
+
+ pColl = Xsqlite3BinaryCompareCollSeq(tls, pParse, pLhs, pRhs)
+ if pColl == uintptr(0) {
+ break
+ }
+ if Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FazColl + uintptr(i+nEq)*8))) != 0 {
+ break
+ }
+ }
+ return i
+}
+
+func whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pProbe uintptr, nInMul LogEst) int32 {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var pWInfo uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pNew uintptr
+ var pTerm uintptr
+ var opMask int32
+
+ var saved_prereq Bitmask
+ var saved_nLTerm U16
+ var saved_nEq U16
+ var saved_nBtm U16
+ var saved_nTop U16
+ var saved_nSkip U16
+ var saved_wsFlags U32
+ var saved_nOut LogEst
+ var rc int32 = SQLITE_OK
+ var rSize LogEst
+ var rLogSize LogEst
+ var pTop uintptr = uintptr(0)
+ var pBtm uintptr = uintptr(0)
+
+ pNew = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+
+ if (*Parse)(unsafe.Pointer(pParse)).FnErr != 0 {
+ return (*Parse)(unsafe.Pointer(pParse)).Frc
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_BTM_LIMIT) != 0 {
+ opMask = int32(WO_EQ)<<(TK_LT-TK_EQ) | int32(WO_EQ)<<(TK_LE-TK_EQ)
+ } else {
+ opMask = WO_EQ | WO_IN | int32(WO_EQ)<<(TK_GT-TK_EQ) | int32(WO_EQ)<<(TK_GE-TK_EQ) | int32(WO_EQ)<<(TK_LT-TK_EQ) | int32(WO_EQ)<<(TK_LE-TK_EQ) | WO_ISNULL | WO_IS
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 {
+ opMask = opMask & libc.CplInt32(int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)|int32(WO_EQ)<<(TK_LT-TK_EQ)|int32(WO_EQ)<<(TK_LE-TK_EQ))
+ }
+
+ saved_nEq = *(*U16)(unsafe.Pointer(pNew + 24))
+ saved_nBtm = *(*U16)(unsafe.Pointer(pNew + 24 + 2))
+ saved_nTop = *(*U16)(unsafe.Pointer(pNew + 24 + 4))
+ saved_nSkip = (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip
+ saved_nLTerm = (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm
+ saved_wsFlags = (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags
+ saved_prereq = (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq
+ saved_nOut = (*WhereLoop)(unsafe.Pointer(pNew)).FnOut
+ pTerm = whereScanInit(tls, bp, (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor, int32(saved_nEq),
+ uint32(opMask), pProbe)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ rSize = *(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst))
+ rLogSize = estLog(tls, rSize)
+ for ; rc == SQLITE_OK && pTerm != uintptr(0); pTerm = whereScanNext(tls, bp) {
+ var eOp U16 = (*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator
+ var rCostIdx LogEst
+ var nOutUnadjusted LogEst
+ var nIn int32 = 0
+ var nRecValid int32 = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid
+ if (int32(eOp) == WO_ISNULL || int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VNULL != 0) &&
+ indexColumnNotNull(tls, pProbe, int32(saved_nEq)) != 0 {
+ continue
+ }
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&(*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf != 0 {
+ continue
+ }
+
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_LIKEOPT != 0 && int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator) == int32(WO_EQ)<<(TK_LT-TK_EQ) {
+ continue
+ }
+
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0 &&
+ !(constraintCompatibleWithOuterJoin(tls, pTerm, pSrc) != 0) {
+ continue
+ }
+ if int32((*Index)(unsafe.Pointer(pProbe)).FonError) != OE_None && int32(saved_nEq) == int32((*Index)(unsafe.Pointer(pProbe)).FnKeyCol)-1 {
+ *(*uint8)(unsafe.Pointer(pBuilder + 44)) |= uint8(SQLITE_BLDF1_UNIQUE)
+ } else {
+ *(*uint8)(unsafe.Pointer(pBuilder + 44)) |= uint8(SQLITE_BLDF1_INDEXED)
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = saved_wsFlags
+ *(*U16)(unsafe.Pointer(pNew + 24)) = saved_nEq
+ *(*U16)(unsafe.Pointer(pNew + 24 + 2)) = saved_nBtm
+ *(*U16)(unsafe.Pointer(pNew + 24 + 4)) = saved_nTop
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = saved_nLTerm
+ if int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm) >= int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLSlot) &&
+ whereLoopResize(tls, db, pNew, int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm)+1) != 0 {
+ break
+ }
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(libc.PostIncUint16(&(*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm, 1))*8)) = pTerm
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = (saved_prereq | (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight) & ^(*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf
+
+ if int32(eOp)&WO_IN != 0 {
+ var pExpr uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_xIsSelect) != U32(0) {
+ var i int32
+ nIn = 46
+
+ for i = 0; i < int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm)-1; i++ {
+ if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) != 0 && (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)))).FpExpr == pExpr {
+ nIn = 0
+ }
+ }
+ } else if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 && (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr != 0 {
+ nIn = int32(Xsqlite3LogEst(tls, uint64((*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr)))
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7)) != 0 && int32(rLogSize) >= 10 {
+ var M LogEst
+ var logK LogEst
+ var x LogEst
+
+ M = *(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(saved_nEq)*2))
+ logK = estLog(tls, int16(nIn))
+
+ x = LogEst(int32(M) + int32(logK) + 10 - (nIn + int32(rLogSize)))
+ if int32(x) >= 0 {
+ } else if int32(nInMul) < 2 && (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_SeekScan) == U32(0) {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_IN_SEEKSCAN)
+ } else {
+ continue
+ }
+ }
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_COLUMN_IN)
+ } else if int32(eOp)&(WO_EQ|WO_IS) != 0 {
+ var iCol int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiColumn + uintptr(saved_nEq)*2)))
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_COLUMN_EQ)
+
+ if iCol == -1 ||
+ iCol >= 0 && int32(nInMul) == 0 && int32(saved_nEq) == int32((*Index)(unsafe.Pointer(pProbe)).FnKeyCol)-1 {
+ if iCol == -1 || uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x8>>3)) != 0 ||
+ int32((*Index)(unsafe.Pointer(pProbe)).FnKeyCol) == 1 && (*Index)(unsafe.Pointer(pProbe)).FonError != 0 && int32(eOp) == WO_EQ {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_ONEROW)
+ } else {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_UNQ_WANTED)
+ }
+ }
+ if int32((*WhereScan)(unsafe.Pointer(bp)).FiEquiv) > 1 {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_TRANSCONS)
+ }
+ } else if int32(eOp)&WO_ISNULL != 0 {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_COLUMN_NULL)
+ } else {
+ var nVecLen int32 = whereRangeVectorLen(tls,
+ pParse, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor, pProbe, int32(saved_nEq), pTerm)
+ if int32(eOp)&(int32(WO_EQ)<<(TK_GT-TK_EQ)|int32(WO_EQ)<<(TK_GE-TK_EQ)) != 0 {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_COLUMN_RANGE | WHERE_BTM_LIMIT)
+ *(*U16)(unsafe.Pointer(pNew + 24 + 2)) = U16(nVecLen)
+ pBtm = pTerm
+ pTop = uintptr(0)
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_LIKEOPT != 0 {
+ pTop = pTerm + 1*56
+
+ if whereLoopResize(tls, db, pNew, int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm)+1) != 0 {
+ break
+ }
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(libc.PostIncUint16(&(*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm, 1))*8)) = pTop
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_TOP_LIMIT)
+ *(*U16)(unsafe.Pointer(pNew + 24 + 4)) = U16(1)
+ }
+ } else {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_COLUMN_RANGE | WHERE_TOP_LIMIT)
+ *(*U16)(unsafe.Pointer(pNew + 24 + 4)) = U16(nVecLen)
+ pTop = pTerm
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_BTM_LIMIT) != U32(0) {
+ pBtm = *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm)-2)*8))
+ } else {
+ pBtm = uintptr(0)
+ }
+ }
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_COLUMN_RANGE) != 0 {
+ whereRangeScanEst(tls, pParse, pBuilder, pBtm, pTop, pNew)
+ } else {
+ var nEq int32 = int32(libc.PreIncUint16(&*(*U16)(unsafe.Pointer(pNew + 24)), 1))
+
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb) <= 0 && int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiColumn + uintptr(saved_nEq)*2))) >= 0 {
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) += LogEst(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb))
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) -= LogEst(nIn)
+ } else {
+ *(*TRowcnt)(unsafe.Pointer(bp + 112)) = uint64(0)
+ if int32(nInMul) == 0 &&
+ (*Index)(unsafe.Pointer(pProbe)).FnSample != 0 &&
+ int32(*(*U16)(unsafe.Pointer(pNew + 24))) <= (*Index)(unsafe.Pointer(pProbe)).FnSampleCol &&
+ (int32(eOp)&WO_IN == 0 || (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_xIsSelect) == U32(0)) &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_Stat4) == U32(0) {
+ var pExpr uintptr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if int32(eOp)&(WO_EQ|WO_ISNULL|WO_IS) != 0 {
+ rc = whereEqualScanEst(tls, pParse, pBuilder, (*Expr)(unsafe.Pointer(pExpr)).FpRight, bp+112)
+ } else {
+ rc = whereInScanEst(tls, pParse, pBuilder, *(*uintptr)(unsafe.Pointer(pExpr + 32)), bp+112)
+ }
+ if rc == SQLITE_NOTFOUND {
+ rc = SQLITE_OK
+ }
+ if rc != SQLITE_OK {
+ break
+ }
+ if *(*TRowcnt)(unsafe.Pointer(bp + 112)) != 0 {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = Xsqlite3LogEst(tls, *(*TRowcnt)(unsafe.Pointer(bp + 112)))
+ if nEq == 1 &&
+ int32((*WhereLoop)(unsafe.Pointer(pNew)).FnOut)+10 > int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst))) {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_HIGHTRUTH)
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_HEURTRUTH != 0 {
+ *(*uint8)(unsafe.Pointer(pBuilder + 45)) |= uint8(SQLITE_BLDF2_2NDPASS)
+ }
+ }
+ if int32((*WhereLoop)(unsafe.Pointer(pNew)).FnOut) > int32(saved_nOut) {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut
+ }
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) -= LogEst(nIn)
+ }
+ }
+ if *(*TRowcnt)(unsafe.Pointer(bp + 112)) == uint64(0) {
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) += LogEst(int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(nEq)*2))) - int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(nEq-1)*2))))
+ if int32(eOp)&WO_ISNULL != 0 {
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) += int16(10)
+ }
+ }
+ }
+ }
+
+ if int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0) == SQLITE_IDXTYPE_IPK {
+ rCostIdx = LogEst(int32((*WhereLoop)(unsafe.Pointer(pNew)).FnOut) + 16)
+ } else {
+ rCostIdx = LogEst(int32((*WhereLoop)(unsafe.Pointer(pNew)).FnOut) + 1 + 15*int32((*Index)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow))
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = Xsqlite3LogEstAdd(tls, rLogSize, rCostIdx)
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_IDX_ONLY|WHERE_IPK|WHERE_EXPRIDX) == U32(0) {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = Xsqlite3LogEstAdd(tls, (*WhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*WhereLoop)(unsafe.Pointer(pNew)).FnOut)+16))
+ }
+
+ nOutUnadjusted = (*WhereLoop)(unsafe.Pointer(pNew)).FnOut
+ *(*LogEst)(unsafe.Pointer(pNew + 20)) += LogEst(int32(nInMul) + nIn)
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) += LogEst(int32(nInMul) + nIn)
+ whereLoopOutputAdjust(tls, (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC, pNew, rSize)
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_COLUMN_RANGE) != 0 {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut
+ } else {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = nOutUnadjusted
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags&U32(WHERE_TOP_LIMIT) == U32(0) &&
+ int32(*(*U16)(unsafe.Pointer(pNew + 24))) < int32((*Index)(unsafe.Pointer(pProbe)).FnColumn) &&
+ (int32(*(*U16)(unsafe.Pointer(pNew + 24))) < int32((*Index)(unsafe.Pointer(pProbe)).FnKeyCol) || int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0) != SQLITE_IDXTYPE_PRIMARYKEY) {
+ if int32(*(*U16)(unsafe.Pointer(pNew + 24))) > 3 {
+ Xsqlite3ProgressCheck(tls, pParse)
+ }
+ whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(nInMul)+nIn))
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nRecValid
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = saved_prereq
+ *(*U16)(unsafe.Pointer(pNew + 24)) = saved_nEq
+ *(*U16)(unsafe.Pointer(pNew + 24 + 2)) = saved_nBtm
+ *(*U16)(unsafe.Pointer(pNew + 24 + 4)) = saved_nTop
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip = saved_nSkip
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = saved_wsFlags
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = saved_nLTerm
+
+ if int32(saved_nEq) == int32(saved_nSkip) &&
+ int32(saved_nEq)+1 < int32((*Index)(unsafe.Pointer(pProbe)).FnKeyCol) &&
+ int32(saved_nEq) == int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm) &&
+ int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x40>>6) == 0 &&
+ int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7) != 0 &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_SkipScan) == U32(0) &&
+ int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(saved_nEq)+1)*2))) >= 42 &&
+ libc.AssignInt32(&rc, whereLoopResize(tls, db, pNew, int32((*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm)+1)) == SQLITE_OK {
+ var nIter LogEst
+ *(*U16)(unsafe.Pointer(pNew + 24))++
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip++
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(libc.PostIncUint16(&(*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm, 1))*8)) = uintptr(0)
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_SKIPSCAN)
+ nIter = LogEst(int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(saved_nEq)*2))) - int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(saved_nEq)+1)*2))))
+ *(*LogEst)(unsafe.Pointer(pNew + 22)) -= LogEst(int32(nIter))
+
+ nIter = int16(int32(nIter) + 5)
+ whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(nIter)+int32(nInMul)))
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut
+ *(*U16)(unsafe.Pointer(pNew + 24)) = saved_nEq
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip = saved_nSkip
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = saved_wsFlags
+ }
+
+ return rc
+}
+
+func indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, iCursor int32) int32 {
+ var pOB uintptr
+ var aColExpr uintptr
+ var ii int32
+ var jj int32
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x4>>2)) != 0 {
+ return 0
+ }
+ if libc.AssignUintptr(&pOB, (*WhereInfo)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo)).FpOrderBy) == uintptr(0) {
+ return 0
+ }
+ for ii = 0; ii < (*ExprList)(unsafe.Pointer(pOB)).FnExpr; ii++ {
+ var pExpr uintptr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pOB+8+uintptr(ii)*32)).FpExpr)
+ if pExpr == uintptr(0) {
+ continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN && (*Expr)(unsafe.Pointer(pExpr)).FiTable == iCursor {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) < 0 {
+ return 1
+ }
+ for jj = 0; jj < int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol); jj++ {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) == int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(jj)*2))) {
+ return 1
+ }
+ }
+ } else if libc.AssignUintptr(&aColExpr, (*Index)(unsafe.Pointer(pIndex)).FaColExpr) != uintptr(0) {
+ for jj = 0; jj < int32((*Index)(unsafe.Pointer(pIndex)).FnKeyCol); jj++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(jj)*2))) != -2 {
+ continue
+ }
+ if Xsqlite3ExprCompareSkip(tls, pExpr, (*ExprList_item)(unsafe.Pointer(aColExpr+8+uintptr(jj)*32)).FpExpr, iCursor) == 0 {
+ return 1
+ }
+ }
+ }
+ }
+ return 0
+}
+
+func whereUsablePartialIndex(tls *libc.TLS, iTab int32, jointype U8, pWC uintptr, pWhere uintptr) int32 {
+ var i int32
+ var pTerm uintptr
+ var pParse uintptr
+
+ if int32(jointype)&JT_LTORJ != 0 {
+ return 0
+ }
+ pParse = (*WhereInfo)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse
+ for int32((*Expr)(unsafe.Pointer(pWhere)).Fop) == TK_AND {
+ if !(whereUsablePartialIndex(tls, iTab, jointype, pWC, (*Expr)(unsafe.Pointer(pWhere)).FpLeft) != 0) {
+ return 0
+ }
+ pWhere = (*Expr)(unsafe.Pointer(pWhere)).FpRight
+ }
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_EnableQPSG) != 0 {
+ pParse = uintptr(0)
+ }
+ i = 0
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa
+__1:
+ if !(i < (*WhereClause)(unsafe.Pointer(pWC)).FnTerm) {
+ goto __3
+ }
+ {
+ var pExpr uintptr
+ pExpr = (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr
+ if (!((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0)) || *(*int32)(unsafe.Pointer(pExpr + 52)) == iTab) &&
+ (int32(jointype)&JT_OUTER == 0 || (*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_OuterON) != U32(0)) &&
+ Xsqlite3ExprImpliesExpr(tls, pParse, pExpr, pWhere, iTab) != 0 &&
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&TERM_VNULL == 0 {
+ return 1
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pTerm += 56
+ goto __1
+ goto __3
+__3:
+ ;
+ return 0
+}
+
+func exprIsCoveredByIndex(tls *libc.TLS, pExpr uintptr, pIdx uintptr, iTabCur int32) int32 {
+ var i int32
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) == -2 &&
+ Xsqlite3ExprCompare(tls, uintptr(0), pExpr, (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr+8+uintptr(i)*32)).FpExpr, iTabCur) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+// Structure passed to the whereIsCoveringIndex Walker callback.
+type CoveringIndexCheck = CoveringIndexCheck1
+
+func whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintptr) int32 {
+ var i int32
+ var pIdx uintptr
+ var aiColumn uintptr
+ var nColumn U16
+ var pCk uintptr
+
+ pCk = *(*uintptr)(unsafe.Pointer(pWalk + 40))
+ pIdx = (*CoveringIndexCheck)(unsafe.Pointer(pCk)).FpIdx
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_COLUMN || int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_COLUMN {
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable != (*CoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur {
+ return WRC_Continue
+ }
+ pIdx = (*CoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx
+ aiColumn = (*Index)(unsafe.Pointer(pIdx)).FaiColumn
+ nColumn = (*Index)(unsafe.Pointer(pIdx)).FnColumn
+ for i = 0; i < int32(nColumn); i++ {
+ if int32(*(*I16)(unsafe.Pointer(aiColumn + uintptr(i)*2))) == int32((*Expr)(unsafe.Pointer(pExpr)).FiColumn) {
+ return WRC_Continue
+ }
+ }
+ (*CoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = U8(1)
+ return WRC_Abort
+ } else if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 &&
+ exprIsCoveredByIndex(tls, pExpr, pIdx, (*CoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 {
+ (*CoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = U8(1)
+ return WRC_Prune
+ }
+ return WRC_Continue
+}
+
+func whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur int32) U32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+ var rc int32
+
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) {
+ return U32(0)
+ }
+ if int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11) == 0 {
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ if int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1 {
+ break
+ }
+ }
+ if i >= int32((*Index)(unsafe.Pointer(pIdx)).FnColumn) {
+ return U32(0)
+ }
+ }
+ (*CoveringIndexCheck1)(unsafe.Pointer(bp + 48)).FpIdx = pIdx
+ (*CoveringIndexCheck1)(unsafe.Pointer(bp + 48)).FiTabCur = iTabCur
+ (*CoveringIndexCheck1)(unsafe.Pointer(bp + 48)).FbExpr = U8(0)
+ (*CoveringIndexCheck1)(unsafe.Pointer(bp + 48)).FbUnidx = U8(0)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{whereIsCoveringIndexWalkCallback}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkNoop}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = bp + 48
+ Xsqlite3WalkSelect(tls, bp, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)
+ if (*CoveringIndexCheck1)(unsafe.Pointer(bp+48)).FbUnidx != 0 {
+ rc = 0
+ } else if (*CoveringIndexCheck1)(unsafe.Pointer(bp+48)).FbExpr != 0 {
+ rc = WHERE_EXPRIDX
+ } else {
+ rc = WHERE_IDX_ONLY
+ }
+ return U32(rc)
+}
+
+func whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq Bitmask) int32 {
+ bp := tls.Alloc(158)
+ defer tls.Free(158)
+
+ var pWInfo uintptr
+ var pProbe uintptr
+
+ *(*I16)(unsafe.Pointer(bp + 152)) = int16(-1)
+ var pTabList uintptr
+ var pSrc uintptr
+ var pNew uintptr
+ var rc int32 = SQLITE_OK
+ var iSortIdx int32 = 1
+ var b int32
+ var rSize LogEst
+ var pWC uintptr
+ var pTab uintptr
+
+ pNew = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+ pWInfo = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ pTabList = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList
+ pSrc = pTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pNew)).FiTab)*104
+ pTab = (*SrcItem)(unsafe.Pointer(pSrc)).FpTab
+ pWC = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) != 0 {
+ pProbe = *(*uintptr)(unsafe.Pointer(pSrc + 96))
+ } else if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ pProbe = (*Table)(unsafe.Pointer(pTab)).FpIndex
+ } else {
+ var pFirst uintptr
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Index{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Index)(unsafe.Pointer(bp)).FnKeyCol = U16(1)
+ (*Index)(unsafe.Pointer(bp)).FnColumn = U16(1)
+ (*Index)(unsafe.Pointer(bp)).FaiColumn = bp + 152
+ (*Index)(unsafe.Pointer(bp)).FaiRowLogEst = bp + 154
+ (*Index)(unsafe.Pointer(bp)).FonError = U8(OE_Replace)
+ (*Index)(unsafe.Pointer(bp)).FpTable = pTab
+ (*Index)(unsafe.Pointer(bp)).FszIdxRow = int16(3)
+ libc.SetBitFieldPtr16Uint32(bp+100, uint32(SQLITE_IDXTYPE_IPK), 0, 0x3)
+ *(*LogEst)(unsafe.Pointer(bp + 154)) = (*Table)(unsafe.Pointer(pTab)).FnRowLogEst
+ *(*LogEst)(unsafe.Pointer(bp + 154 + 1*2)) = int16(0)
+ pFirst = (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc)).FpTab)).FpIndex
+ if int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x1>>0) == 0 {
+ (*Index)(unsafe.Pointer(bp)).FpNext = pFirst
+ }
+ pProbe = bp
+ }
+ rSize = (*Table)(unsafe.Pointer(pTab)).FnRowLogEst
+
+ if !(int32((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpOrSet) != 0) &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&(WHERE_RIGHT_JOIN|WHERE_OR_SUBCLAUSE) == 0 &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb)).Fflags&uint64(SQLITE_AutoIndex) != uint64(0) &&
+ !(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1) != 0) &&
+ !(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x1>>0) != 0) &&
+ (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) &&
+ !(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x8>>3) != 0) &&
+ !(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x40>>6) != 0) &&
+ int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&JT_RIGHT == 0 {
+ var rLogSize LogEst
+ var pTerm uintptr
+ var pWCEnd uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*WhereClause)(unsafe.Pointer(pWC)).FnTerm)*56
+ rLogSize = estLog(tls, rSize)
+ for pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa; rc == SQLITE_OK && pTerm < pWCEnd; pTerm += 56 {
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&(*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf != 0 {
+ continue
+ }
+ if termCanDriveIndex(tls, pTerm, pSrc, uint64(0)) != 0 {
+ *(*U16)(unsafe.Pointer(pNew + 24)) = U16(1)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip = U16(0)
+ *(*uintptr)(unsafe.Pointer(pNew + 24 + 8)) = uintptr(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = U16(1)
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm)) = pTerm
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = LogEst(int32(rLogSize) + int32(rSize))
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Ephemeral) == U32(0) {
+ *(*LogEst)(unsafe.Pointer(pNew + 18)) += int16(28)
+ } else {
+ *(*LogEst)(unsafe.Pointer(pNew + 18)) -= int16(25)
+
+ }
+
+ if int32((*WhereLoop)(unsafe.Pointer(pNew)).FrSetup) < 0 {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ }
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = int16(43)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = Xsqlite3LogEstAdd(tls, rLogSize, (*WhereLoop)(unsafe.Pointer(pNew)).FnOut)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_AUTO_INDEX)
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = mPrereq | (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+ }
+ }
+ }
+
+__1:
+ if !(rc == SQLITE_OK && pProbe != 0) {
+ goto __3
+ }
+ {
+ if (*Index)(unsafe.Pointer(pProbe)).FpPartIdxWhere != uintptr(0) &&
+ !(whereUsablePartialIndex(tls, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor, (*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype, pWC,
+ (*Index)(unsafe.Pointer(pProbe)).FpPartIdxWhere) != 0) {
+ goto __2
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 {
+ goto __2
+ }
+ rSize = *(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pProbe)).FaiRowLogEst))
+ *(*U16)(unsafe.Pointer(pNew + 24)) = U16(0)
+ *(*U16)(unsafe.Pointer(pNew + 24 + 2)) = U16(0)
+ *(*U16)(unsafe.Pointer(pNew + 24 + 4)) = U16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnSkip = U16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = U16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = U8(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = mPrereq
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = rSize
+ *(*uintptr)(unsafe.Pointer(pNew + 24 + 8)) = pProbe
+ b = indexMightHelpWithOrderBy(tls, pBuilder, pProbe, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor)
+
+ if int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0) == SQLITE_IDXTYPE_IPK {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_IPK)
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = func() uint8 {
+ if b != 0 {
+ return uint8(iSortIdx)
+ }
+ return uint8(0)
+ }()
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = LogEst(int32(rSize) + 16 - 2*libc.Bool32((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasStat4) != U32(0)))
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW || (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Ephemeral) != U32(0) {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_VIEWSCAN)
+ }
+
+ whereLoopOutputAdjust(tls, pWC, pNew, rSize)
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = rSize
+ if rc != 0 {
+ goto __3
+ }
+ } else {
+ var m Bitmask
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x20>>5)) != 0 {
+ m = uint64(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_IDX_ONLY | WHERE_INDEXED)
+ } else {
+ m = (*SrcItem)(unsafe.Pointer(pSrc)).FcolUsed & (*Index)(unsafe.Pointer(pProbe)).FcolNotIdxed
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_INDEXED)
+ if m == uint64(1)<<(int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1) || uint32(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x800>>11)) != 0 && !(int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x400>>10) != 0) && m != uint64(0) {
+ var isCov U32 = whereIsCoveringIndex(tls, pWInfo, pProbe, (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor)
+ if isCov == U32(0) {
+ } else {
+ m = uint64(0)
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= isCov
+ if isCov&U32(WHERE_IDX_ONLY) != 0 {
+ } else {
+ }
+ }
+ } else if m == uint64(0) {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_IDX_ONLY | WHERE_INDEXED)
+ }
+ }
+
+ if b != 0 ||
+ !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) ||
+ (*Index)(unsafe.Pointer(pProbe)).FpPartIdxWhere != uintptr(0) ||
+ uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) != 0 ||
+ m == uint64(0) &&
+ int32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2) == 0 &&
+ int32((*Index)(unsafe.Pointer(pProbe)).FszIdxRow) < int32((*Table)(unsafe.Pointer(pTab)).FszTabRow) &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_ONEPASS_DESIRED == 0 &&
+ Xsqlite3Config.FbUseCis != 0 &&
+ (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb)).FdbOptFlags&U32(SQLITE_CoverIdxScan) == U32(0) {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = func() uint8 {
+ if b != 0 {
+ return uint8(iSortIdx)
+ }
+ return uint8(0)
+ }()
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = LogEst(int32(rSize) + 1 + 15*int32((*Index)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*Table)(unsafe.Pointer(pTab)).FszTabRow))
+ if m != uint64(0) {
+ var nLookup LogEst = LogEst(int32(rSize) + 16)
+ var ii int32
+ var iCur int32 = (*SrcItem)(unsafe.Pointer(pSrc)).FiCursor
+ var pWC2 uintptr = pWInfo + 104
+ for ii = 0; ii < (*WhereClause)(unsafe.Pointer(pWC2)).FnTerm; ii++ {
+ var pTerm uintptr = (*WhereClause)(unsafe.Pointer(pWC2)).Fa + uintptr(ii)*56
+ if !(Xsqlite3ExprCoveredByIndex(tls, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr, iCur, pProbe) != 0) {
+ break
+ }
+
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb) <= 0 {
+ nLookup = LogEst(int32(nLookup) + int32((*WhereTerm)(unsafe.Pointer(pTerm)).FtruthProb))
+ } else {
+ nLookup--
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) != 0 {
+ nLookup = int16(int32(nLookup) - 19)
+ }
+ }
+ }
+
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = Xsqlite3LogEstAdd(tls, (*WhereLoop)(unsafe.Pointer(pNew)).FrRun, nLookup)
+ }
+
+ whereLoopOutputAdjust(tls, pWC, pNew, rSize)
+ if int32((*SrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&JT_RIGHT != 0 && (*Index)(unsafe.Pointer(pProbe)).FaColExpr != 0 {
+ } else {
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = rSize
+ if rc != 0 {
+ goto __3
+ }
+ }
+ }
+
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FbldFlags1 = uint8(0)
+ rc = whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(0))
+ if int32((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FbldFlags1) == SQLITE_BLDF1_INDEXED {
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_StatsUsed)
+ }
+ Xsqlite3Stat4ProbeFree(tls, (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec)
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec = uintptr(0)
+
+ }
+ goto __2
+__2:
+ pProbe = func() uintptr {
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) != 0 {
+ return uintptr(0)
+ }
+ return (*Index)(unsafe.Pointer(pProbe)).FpNext
+ }()
+ iSortIdx++
+ goto __1
+ goto __3
+__3:
+ ;
+ return rc
+}
+
+func isLimitTerm(tls *libc.TLS, pTerm uintptr) int32 {
+ return libc.Bool32(int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= SQLITE_INDEX_CONSTRAINT_LIMIT &&
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= SQLITE_INDEX_CONSTRAINT_OFFSET)
+}
+
+func whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq Bitmask, mUsable Bitmask, mExclude U16, pIdxInfo uintptr, mNoOmit U16, pbIn uintptr, pbRetryLimit uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pWC uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC
+ var pHidden uintptr = pIdxInfo + 1*96
+ var pIdxCons uintptr
+ var pUsage uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage
+ var i int32
+ var mxTerm int32
+ var rc int32 = SQLITE_OK
+ var pNew uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo)).FpParse
+ var pSrc uintptr = (*WhereInfo)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pNew)).FiTab)*104
+ var nConstraint int32 = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint
+
+ *(*int32)(unsafe.Pointer(pbIn)) = 0
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = mPrereq
+
+ pIdxCons = *(*uintptr)(unsafe.Pointer(pIdxInfo + 8))
+ i = 0
+__1:
+ if !(i < nConstraint) {
+ goto __3
+ }
+ {
+ var pTerm uintptr = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset)*56
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable = uint8(0)
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&mUsable == (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight &&
+ int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(mExclude) == 0 &&
+ (pbRetryLimit != 0 || !(isLimitTerm(tls, pTerm) != 0)) {
+ (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable = uint8(1)
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pIdxCons += 12
+ goto __1
+ goto __3
+__3:
+ ;
+ libc.X__builtin___memset_chk(tls, pUsage, 0, uint64(unsafe.Sizeof(sqlite3_index_constraint_usage{}))*uint64(nConstraint), libc.X__builtin_object_size(tls, pUsage, 0))
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = 0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(1e99) / float64(2)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(25)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags = 0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FcolUsed = Sqlite3_uint64(Sqlite3_int64((*SrcItem)(unsafe.Pointer(pSrc)).FcolUsed))
+ (*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FmHandleIn = U32(0)
+
+ rc = vtabBestIndex(tls, pParse, (*SrcItem)(unsafe.Pointer(pSrc)).FpTab, pIdxInfo)
+ if rc != 0 {
+ if rc == SQLITE_CONSTRAINT {
+ return SQLITE_OK
+ }
+ return rc
+ }
+
+ mxTerm = -1
+
+ libc.X__builtin___memset_chk(tls, (*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nConstraint), libc.X__builtin_object_size(tls, (*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm, 0))
+ libc.X__builtin___memset_chk(tls, pNew+24, 0, uint64(unsafe.Sizeof(struct {
+ FidxNum int32
+ FneedFree uint8
+ F__ccgo_pad1 [1]byte
+ FisOrdered I8
+ F__ccgo_pad2 [1]byte
+ FomitMask U16
+ F__ccgo_pad3 [6]byte
+ FidxStr uintptr
+ FmHandleIn U32
+ F__ccgo_pad4 [4]byte
+ }{})), libc.X__builtin_object_size(tls, pNew+24, 0))
+ pIdxCons = *(*uintptr)(unsafe.Pointer(pIdxInfo + 8))
+ i = 0
+__4:
+ if !(i < nConstraint) {
+ goto __6
+ }
+ {
+ var iTerm int32
+ if libc.AssignInt32(&iTerm, (*sqlite3_index_constraint_usage)(unsafe.Pointer(pUsage+uintptr(i)*8)).FargvIndex-1) >= 0 {
+ var pTerm uintptr
+ var j int32 = (*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset
+ if iTerm >= nConstraint ||
+ j < 0 ||
+ j >= (*WhereClause)(unsafe.Pointer(pWC)).FnTerm ||
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) ||
+ int32((*sqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22393, libc.VaList(bp, (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName))
+
+ return SQLITE_ERROR
+ }
+
+ pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56
+ *(*Bitmask)(unsafe.Pointer(pNew)) |= (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight
+
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) = pTerm
+ if iTerm > mxTerm {
+ mxTerm = iTerm
+ }
+
+ if (*sqlite3_index_constraint_usage)(unsafe.Pointer(pUsage+uintptr(i)*8)).Fomit != 0 {
+ if i < 16 && int32(1)<<i&int32(mNoOmit) == 0 {
+ *(*U16)(unsafe.Pointer(pNew + 24 + 8)) |= U16(int32(1) << iTerm)
+ } else {
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) == SQLITE_INDEX_CONSTRAINT_OFFSET {
+ libc.SetBitFieldPtr8Uint32(pNew+24+4, U32(1), 1, 0x2)
+ }
+ }
+ if func() uint32 {
+ if i <= 31 {
+ return uint32(1) << i
+ }
+ return uint32(0)
+ }()&(*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FmHandleIn != 0 {
+ *(*U32)(unsafe.Pointer(pNew + 24 + 24)) |= uint32(1) << iTerm
+ } else if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_IN != 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = 0
+ *(*int32)(unsafe.Pointer(pIdxInfo + 80)) &= libc.CplInt32(SQLITE_INDEX_SCAN_UNIQUE)
+ *(*int32)(unsafe.Pointer(pbIn)) = 1
+ }
+
+ if isLimitTerm(tls, pTerm) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 {
+ if (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 {
+ Xsqlite3_free(tls, (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr = 0
+ }
+ *(*int32)(unsafe.Pointer(pbRetryLimit)) = 1
+ return SQLITE_OK
+ }
+ }
+
+ }
+ goto __5
+__5:
+ i++
+ pIdxCons += 12
+ goto __4
+ goto __6
+__6:
+ ;
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = U16(mxTerm + 1)
+ for i = 0; i <= mxTerm; i++ {
+ if *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22393, libc.VaList(bp+8, (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName))
+
+ return SQLITE_ERROR
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pNew + 24)) = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum
+ libc.SetBitFieldPtr8Uint32(pNew+24+4, U32((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr), 0, 0x1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr = 0
+ *(*uintptr)(unsafe.Pointer(pNew + 24 + 16)) = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr
+ *(*I8)(unsafe.Pointer(pNew + 24 + 6)) = func() int8 {
+ if (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed != 0 {
+ return int8((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnOrderBy)
+ }
+ return int8(0)
+ }()
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = Xsqlite3LogEstFromDouble(tls, (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = Xsqlite3LogEst(tls, uint64((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows))
+
+ if (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags&SQLITE_INDEX_SCAN_UNIQUE != 0 {
+ *(*U32)(unsafe.Pointer(pNew + 56)) |= U32(WHERE_ONEROW)
+ } else {
+ *(*U32)(unsafe.Pointer(pNew + 56)) &= libc.Uint32FromInt32(libc.CplInt32(WHERE_ONEROW))
+ }
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+ if U32(int32(*(*uint8)(unsafe.Pointer(pNew + 24 + 4))&0x1>>0)) != 0 {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pNew + 24 + 16)))
+ libc.SetBitFieldPtr8Uint32(pNew+24+4, U32(0), 0, 0x1)
+ }
+
+ return rc
+}
+
+// Return the collating sequence for a constraint passed into xBestIndex.
+//
+// pIdxInfo must be an sqlite3_index_info structure passed into xBestIndex.
+// This routine depends on there being a HiddenIndexInfo structure immediately
+// following the sqlite3_index_info structure.
+//
+// Return a pointer to the collation name:
+//
+// 1. If there is an explicit COLLATE operator on the constaint, return it.
+//
+// 2. Else, if the column has an alternative collation, return that.
+//
+// 3. Otherwise, return "BINARY".
+func Xsqlite3_vtab_collation(tls *libc.TLS, pIdxInfo uintptr, iCons int32) uintptr {
+ var pHidden uintptr = pIdxInfo + 1*96
+ var zRet uintptr = uintptr(0)
+ if iCons >= 0 && iCons < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint {
+ var pC uintptr = uintptr(0)
+ var iTerm int32 = (*sqlite3_index_constraint)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12)).FiTermOffset
+ var pX uintptr = (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer((*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC)).Fa + uintptr(iTerm)*56)).FpExpr
+ if (*Expr)(unsafe.Pointer(pX)).FpLeft != 0 {
+ pC = Xsqlite3ExprCompareCollSeq(tls, (*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse, pX)
+ }
+ zRet = func() uintptr {
+ if pC != 0 {
+ return (*CollSeq)(unsafe.Pointer(pC)).FzName
+ }
+ return uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+ }()
+ }
+ return zRet
+}
+
+// Return true if constraint iCons is really an IN(...) constraint, or
+// false otherwise. If iCons is an IN(...) constraint, set (if bHandle!=0)
+// or clear (if bHandle==0) the flag to handle it using an iterator.
+func Xsqlite3_vtab_in(tls *libc.TLS, pIdxInfo uintptr, iCons int32, bHandle int32) int32 {
+ var pHidden uintptr = pIdxInfo + 1*96
+ var m U32 = func() uint32 {
+ if iCons <= 31 {
+ return uint32(1) << iCons
+ }
+ return uint32(0)
+ }()
+ if m&(*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn != 0 {
+ if bHandle == 0 {
+ *(*U32)(unsafe.Pointer(pHidden + 24)) &= ^m
+ } else if bHandle > 0 {
+ *(*U32)(unsafe.Pointer(pHidden + 24)) |= m
+ }
+ return 1
+ }
+ return 0
+}
+
+// This interface is callable from within the xBestIndex callback only.
+//
+// If possible, set (*ppVal) to point to an object containing the value
+// on the right-hand-side of constraint iCons.
+func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal uintptr) int32 {
+ var pH uintptr = pIdxInfo + 1*96
+ var pVal uintptr = uintptr(0)
+ var rc int32 = SQLITE_OK
+ if iCons < 0 || iCons >= (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint {
+ rc = SQLITE_MISUSE
+ } else {
+ if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) {
+ var pTerm uintptr = (*WhereClause)(unsafe.Pointer((*HiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*sqlite3_index_constraint)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint+uintptr(iCons)*12)).FiTermOffset)*56
+ rc = Xsqlite3ValueFromExpr(tls,
+ (*Parse)(unsafe.Pointer((*HiddenIndexInfo)(unsafe.Pointer(pH)).FpParse)).Fdb, (*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight, (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer((*HiddenIndexInfo)(unsafe.Pointer(pH)).FpParse)).Fdb)).Fenc,
+ uint8(SQLITE_AFF_BLOB), pH+32+uintptr(iCons)*8)
+
+ }
+ pVal = *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8))
+ }
+ *(*uintptr)(unsafe.Pointer(ppVal)) = pVal
+
+ if rc == SQLITE_OK && pVal == uintptr(0) {
+ rc = SQLITE_NOTFOUND
+ }
+
+ return rc
+}
+
+// Return true if ORDER BY clause may be handled as DISTINCT.
+func Xsqlite3_vtab_distinct(tls *libc.TLS, pIdxInfo uintptr) int32 {
+ var pHidden uintptr = pIdxInfo + 1*96
+
+ return (*HiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct
+}
+
+func whereLoopAddVirtual(tls *libc.TLS, pBuilder uintptr, mPrereq Bitmask, mUnusable Bitmask) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var rc int32 = SQLITE_OK
+ var pWInfo uintptr
+ var pParse uintptr
+ var pWC uintptr
+ var pSrc uintptr
+ var p uintptr
+ var nConstraint int32
+
+ var pNew uintptr
+ var mBest Bitmask
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+
+ pWInfo = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ pParse = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ pWC = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC
+ pNew = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+ pSrc = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pNew)).FiTab)*104
+
+ p = allocateIndexInfo(tls, pWInfo, pWC, mUnusable, pSrc, bp)
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_VIRTUALTABLE)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = U16(0)
+ libc.SetBitFieldPtr8Uint32(pNew+24+4, U32(0), 0, 0x1)
+ nConstraint = (*Sqlite3_index_info)(unsafe.Pointer(p)).FnConstraint
+ if whereLoopResize(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pNew, nConstraint) != 0 {
+ freeIndexInfo(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p)
+ return SQLITE_NOMEM
+ }
+
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, libc.Uint64(libc.Uint64FromInt32(-1)), uint16(0), p, *(*U16)(unsafe.Pointer(bp)), bp+4, bp+8)
+ if *(*int32)(unsafe.Pointer(bp + 8)) != 0 {
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, libc.Uint64(libc.Uint64FromInt32(-1)), uint16(0), p, *(*U16)(unsafe.Pointer(bp)), bp+4, uintptr(0))
+ }
+
+ if rc == SQLITE_OK && (libc.AssignUint64(&mBest, (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq & ^mPrereq) != uint64(0) || *(*int32)(unsafe.Pointer(bp + 4)) != 0) {
+ var seenZero int32 = 0
+ var seenZeroNoIN int32 = 0
+ var mPrev Bitmask = uint64(0)
+ var mBestNoIn Bitmask = uint64(0)
+
+ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 {
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, libc.Uint64(libc.Uint64FromInt32(-1)), uint16(WO_IN), p, *(*U16)(unsafe.Pointer(bp)), bp+4, uintptr(0))
+
+ mBestNoIn = (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq & ^mPrereq
+ if mBestNoIn == uint64(0) {
+ seenZero = 1
+ seenZeroNoIN = 1
+ }
+ }
+
+ for rc == SQLITE_OK {
+ var i int32
+ var mNext Bitmask = libc.Uint64(libc.Uint64FromInt32(-1))
+
+ for i = 0; i < nConstraint; i++ {
+ var mThis Bitmask = (*WhereTerm)(unsafe.Pointer((*WhereClause)(unsafe.Pointer(pWC)).Fa+uintptr((*sqlite3_index_constraint)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(p)).FaConstraint+uintptr(i)*12)).FiTermOffset)*56)).FprereqRight & ^mPrereq
+ if mThis > mPrev && mThis < mNext {
+ mNext = mThis
+ }
+ }
+ mPrev = mNext
+ if mNext == libc.Uint64(libc.Uint64FromInt32(-1)) {
+ break
+ }
+ if mNext == mBest || mNext == mBestNoIn {
+ continue
+ }
+
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, mNext|mPrereq, uint16(0), p, *(*U16)(unsafe.Pointer(bp)), bp+4, uintptr(0))
+ if (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq == mPrereq {
+ seenZero = 1
+ if *(*int32)(unsafe.Pointer(bp + 4)) == 0 {
+ seenZeroNoIN = 1
+ }
+ }
+ }
+
+ if rc == SQLITE_OK && seenZero == 0 {
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, mPrereq, uint16(0), p, *(*U16)(unsafe.Pointer(bp)), bp+4, uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp + 4)) == 0 {
+ seenZeroNoIN = 1
+ }
+ }
+
+ if rc == SQLITE_OK && seenZeroNoIN == 0 {
+ rc = whereLoopAddVirtualOne(tls,
+ pBuilder, mPrereq, mPrereq, uint16(WO_IN), p, *(*U16)(unsafe.Pointer(bp)), bp+4, uintptr(0))
+ }
+ }
+
+ if (*Sqlite3_index_info)(unsafe.Pointer(p)).FneedToFreeIdxStr != 0 {
+ Xsqlite3_free(tls, (*Sqlite3_index_info)(unsafe.Pointer(p)).FidxStr)
+ }
+ freeIndexInfo(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, p)
+
+ return rc
+}
+
+func whereLoopAddOr(tls *libc.TLS, pBuilder uintptr, mPrereq Bitmask, mUnusable Bitmask) int32 {
+ bp := tls.Alloc(712)
+ defer tls.Free(712)
+
+ var pWInfo uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ var pWC uintptr
+ var pNew uintptr
+ var pTerm uintptr
+ var pWCEnd uintptr
+ var rc int32 = SQLITE_OK
+ var iCur int32
+
+ var pItem uintptr
+
+ pWC = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC
+ pWCEnd = (*WhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*WhereClause)(unsafe.Pointer(pWC)).FnTerm)*56
+ pNew = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(WhereOrSet{})), libc.X__builtin_object_size(tls, bp, 0))
+ pItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pNew)).FiTab)*104
+ iCur = (*SrcItem)(unsafe.Pointer(pItem)).FiCursor
+
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_RIGHT != 0 {
+ return SQLITE_OK
+ }
+
+ for pTerm = (*WhereClause)(unsafe.Pointer(pWC)).Fa; pTerm < pWCEnd && rc == SQLITE_OK; pTerm += 56 {
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&WO_OR != 0 &&
+ (*WhereOrInfo)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pTerm + 32)))).Findexable&(*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf != uint64(0) {
+ var pOrWC uintptr = *(*uintptr)(unsafe.Pointer(pTerm + 32))
+ var pOrWCEnd uintptr = (*WhereClause)(unsafe.Pointer(pOrWC)).Fa + uintptr((*WhereClause)(unsafe.Pointer(pOrWC)).FnTerm)*56
+ var pOrTerm uintptr
+ var once int32 = 1
+ var i int32
+ var j int32
+
+ *(*WhereLoopBuilder)(unsafe.Pointer(bp + 600)) = *(*WhereLoopBuilder)(unsafe.Pointer(pBuilder))
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 600)).FpOrSet = bp + 56
+
+ for pOrTerm = (*WhereClause)(unsafe.Pointer(pOrWC)).Fa; pOrTerm < pOrWCEnd; pOrTerm += 56 {
+ if int32((*WhereTerm)(unsafe.Pointer(pOrTerm)).FeOperator)&WO_AND != 0 {
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 600)).FpWC = *(*uintptr)(unsafe.Pointer(pOrTerm + 32))
+ } else if (*WhereTerm)(unsafe.Pointer(pOrTerm)).FleftCursor == iCur {
+ (*WhereClause)(unsafe.Pointer(bp + 112)).FpWInfo = (*WhereClause)(unsafe.Pointer(pWC)).FpWInfo
+ (*WhereClause)(unsafe.Pointer(bp + 112)).FpOuter = pWC
+ (*WhereClause)(unsafe.Pointer(bp + 112)).Fop = U8(TK_AND)
+ (*WhereClause)(unsafe.Pointer(bp + 112)).FnTerm = 1
+ (*WhereClause)(unsafe.Pointer(bp + 112)).FnBase = 1
+ (*WhereClause)(unsafe.Pointer(bp + 112)).Fa = pOrTerm
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 600)).FpWC = bp + 112
+ } else {
+ continue
+ }
+ (*WhereOrSet)(unsafe.Pointer(bp + 56)).Fn = U16(0)
+ if int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FeTabType) == TABTYP_VTAB {
+ rc = whereLoopAddVirtual(tls, bp+600, mPrereq, mUnusable)
+ } else {
+ rc = whereLoopAddBtree(tls, bp+600, mPrereq)
+ }
+ if rc == SQLITE_OK {
+ rc = whereLoopAddOr(tls, bp+600, mPrereq, mUnusable)
+ }
+
+ if int32((*WhereOrSet)(unsafe.Pointer(bp+56)).Fn) == 0 {
+ (*WhereOrSet)(unsafe.Pointer(bp)).Fn = U16(0)
+ break
+ } else if once != 0 {
+ whereOrMove(tls, bp, bp+56)
+ once = 0
+ } else {
+ whereOrMove(tls, bp+656, bp)
+ (*WhereOrSet)(unsafe.Pointer(bp)).Fn = U16(0)
+ for i = 0; i < int32((*WhereOrSet)(unsafe.Pointer(bp+656)).Fn); i++ {
+ for j = 0; j < int32((*WhereOrSet)(unsafe.Pointer(bp+56)).Fn); j++ {
+ whereOrInsert(tls, bp, (*WhereOrCost)(unsafe.Pointer(bp+656+8+uintptr(i)*16)).Fprereq|(*WhereOrCost)(unsafe.Pointer(bp+56+8+uintptr(j)*16)).Fprereq,
+ Xsqlite3LogEstAdd(tls, (*WhereOrCost)(unsafe.Pointer(bp+656+8+uintptr(i)*16)).FrRun, (*WhereOrCost)(unsafe.Pointer(bp+56+8+uintptr(j)*16)).FrRun),
+ Xsqlite3LogEstAdd(tls, (*WhereOrCost)(unsafe.Pointer(bp+656+8+uintptr(i)*16)).FnOut, (*WhereOrCost)(unsafe.Pointer(bp+56+8+uintptr(j)*16)).FnOut))
+ }
+ }
+ }
+ }
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnLTerm = U16(1)
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pNew)).FaLTerm)) = pTerm
+ (*WhereLoop)(unsafe.Pointer(pNew)).FwsFlags = U32(WHERE_MULTI_OR)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = U8(0)
+ libc.X__builtin___memset_chk(tls, pNew+24, 0, uint64(unsafe.Sizeof(struct {
+ Fbtree struct {
+ FnEq U16
+ FnBtm U16
+ FnTop U16
+ FnDistinctCol U16
+ FpIndex uintptr
+ }
+ F__ccgo_pad1 [16]byte
+ }{})), libc.X__builtin_object_size(tls, pNew+24, 0))
+ for i = 0; rc == SQLITE_OK && i < int32((*WhereOrSet)(unsafe.Pointer(bp)).Fn); i++ {
+ (*WhereLoop)(unsafe.Pointer(pNew)).FrRun = LogEst(int32((*WhereOrCost)(unsafe.Pointer(bp+8+uintptr(i)*16)).FrRun) + 1)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FnOut = (*WhereOrCost)(unsafe.Pointer(bp + 8 + uintptr(i)*16)).FnOut
+ (*WhereLoop)(unsafe.Pointer(pNew)).Fprereq = (*WhereOrCost)(unsafe.Pointer(bp + 8 + uintptr(i)*16)).Fprereq
+ rc = whereLoopInsert(tls, pBuilder, pNew)
+ }
+
+ }
+ }
+ return rc
+}
+
+func whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) int32 {
+ var pWInfo uintptr = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ var mPrereq Bitmask = uint64(0)
+ var mPrior Bitmask = uint64(0)
+ var iTab int32
+ var pTabList uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList
+ var pItem uintptr
+ var pEnd uintptr = pTabList + 8 + uintptr((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)*104
+ var db uintptr = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb
+ var rc int32 = SQLITE_OK
+ var bFirstPastRJ int32 = 0
+ var hasRightJoin int32 = 0
+ var pNew uintptr
+
+ pNew = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+
+ (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FiPlanLimit = uint32(SQLITE_QUERY_PLANNER_LIMIT)
+ iTab = 0
+ pItem = pTabList + 8
+__1:
+ if !(pItem < pEnd) {
+ goto __3
+ }
+ {
+ var mUnusable Bitmask = uint64(0)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FiTab = U8(iTab)
+ *(*uint32)(unsafe.Pointer(pBuilder + 48)) += uint32(SQLITE_QUERY_PLANNER_LIMIT_INCR)
+ (*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf = Xsqlite3WhereGetMask(tls, pWInfo+592, (*SrcItem)(unsafe.Pointer(pItem)).FiCursor)
+ if bFirstPastRJ != 0 ||
+ int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(JT_OUTER|JT_CROSS|JT_LTORJ) != 0 {
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_LTORJ != 0 {
+ hasRightJoin = 1
+ }
+ mPrereq = mPrereq | mPrior
+ bFirstPastRJ = libc.Bool32(int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&JT_RIGHT != 0)
+ } else if !(hasRightJoin != 0) {
+ mPrereq = uint64(0)
+ }
+ if int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pItem)).FpTab)).FeTabType) == TABTYP_VTAB {
+ var p uintptr
+ for p = pItem + 1*104; p < pEnd; p += 104 {
+ if mUnusable != 0 || int32((*SrcItem)(unsafe.Pointer(p)).Ffg.Fjointype)&(JT_OUTER|JT_CROSS) != 0 {
+ mUnusable = mUnusable | Xsqlite3WhereGetMask(tls, pWInfo+592, (*SrcItem)(unsafe.Pointer(p)).FiCursor)
+ }
+ }
+ rc = whereLoopAddVirtual(tls, pBuilder, mPrereq, mUnusable)
+ } else {
+ rc = whereLoopAddBtree(tls, pBuilder, mPrereq)
+ }
+ if rc == SQLITE_OK && (*WhereClause)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC)).FhasOr != 0 {
+ rc = whereLoopAddOr(tls, pBuilder, mPrereq, mUnusable)
+ }
+ mPrior = mPrior | (*WhereLoop)(unsafe.Pointer(pNew)).FmaskSelf
+ if rc != 0 || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ if rc == SQLITE_DONE {
+ Xsqlite3_log(tls, SQLITE_WARNING, ts+22419, 0)
+ rc = SQLITE_OK
+ } else {
+ goto __3
+ }
+ }
+
+ }
+ goto __2
+__2:
+ iTab++
+ pItem += 104
+ goto __1
+ goto __3
+__3:
+ ;
+ whereLoopClear(tls, db, pNew)
+ return rc
+}
+
+func wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, pPath uintptr, wctrlFlags U16, nLoop U16, pLast uintptr, pRevMask uintptr) I8 {
+ var revSet U8
+ var rev U8
+ var revIdx U8
+ var isOrderDistinct U8
+ var distinctColumns U8
+ var isMatch U8
+ var eqOpMask U16
+ var nKeyCol U16
+ var nColumn U16
+ var nOrderBy U16
+ var iLoop int32
+ var i int32
+ var j int32
+ var iCur int32
+ var iColumn int32
+ var pLoop uintptr = uintptr(0)
+ var pTerm uintptr
+ var pOBExpr uintptr
+ var pColl uintptr
+ var pIndex uintptr
+ var db uintptr = (*Parse)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse)).Fdb
+ var obSat Bitmask = uint64(0)
+ var obDone Bitmask
+ var orderDistinctMask Bitmask
+ var ready Bitmask
+
+ if nLoop != 0 && (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_OrderByIdxJoin) != U32(0) {
+ return int8(0)
+ }
+
+ nOrderBy = U16((*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr)
+
+ if int32(nOrderBy) > int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))-1 {
+ return int8(0)
+ }
+ isOrderDistinct = U8(1)
+ obDone = uint64(1)<<int32(nOrderBy) - uint64(1)
+ orderDistinctMask = uint64(0)
+ ready = uint64(0)
+ eqOpMask = U16(WO_EQ | WO_IS | WO_ISNULL)
+ if int32(wctrlFlags)&(WHERE_ORDERBY_LIMIT|WHERE_ORDERBY_MAX|WHERE_ORDERBY_MIN) != 0 {
+ eqOpMask = U16(int32(eqOpMask) | WO_IN)
+ }
+ for iLoop = 0; isOrderDistinct != 0 && obSat < obDone && iLoop <= int32(nLoop); iLoop++ {
+ if iLoop > 0 {
+ ready = ready | (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf
+ }
+ if iLoop < int32(nLoop) {
+ pLoop = *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pPath)).FaLoop + uintptr(iLoop)*8))
+ if int32(wctrlFlags)&WHERE_ORDERBY_LIMIT != 0 {
+ continue
+ }
+ } else {
+ pLoop = pLast
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_VIRTUALTABLE) != 0 {
+ if *(*I8)(unsafe.Pointer(pLoop + 24 + 6)) != 0 &&
+ int32(wctrlFlags)&(WHERE_DISTINCTBY|WHERE_SORTBYGROUP) != WHERE_DISTINCTBY {
+ obSat = obDone
+ }
+ break
+ } else if int32(wctrlFlags)&WHERE_DISTINCTBY != 0 {
+ *(*U16)(unsafe.Pointer(pLoop + 24 + 6)) = U16(0)
+ }
+ iCur = (*SrcItem)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pLoop)).FiTab)*104)).FiCursor
+
+ for i = 0; i < int32(nOrderBy); i++ {
+ if uint64(1)<<i&obSat != 0 {
+ continue
+ }
+ pOBExpr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).FpExpr)
+ if pOBExpr == uintptr(0) {
+ continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pOBExpr)).Fop) != TK_COLUMN && int32((*Expr)(unsafe.Pointer(pOBExpr)).Fop) != TK_AGG_COLUMN {
+ continue
+ }
+ if (*Expr)(unsafe.Pointer(pOBExpr)).FiTable != iCur {
+ continue
+ }
+ pTerm = Xsqlite3WhereFindTerm(tls, pWInfo+104, iCur, int32((*Expr)(unsafe.Pointer(pOBExpr)).FiColumn),
+ ^ready, uint32(eqOpMask), uintptr(0))
+ if pTerm == uintptr(0) {
+ continue
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator) == WO_IN {
+ for j = 0; j < int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm) && pTerm != *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8)); j++ {
+ }
+ if j >= int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm) {
+ continue
+ }
+ }
+ if int32((*WhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(WO_EQ|WO_IS) != 0 && int32((*Expr)(unsafe.Pointer(pOBExpr)).FiColumn) >= 0 {
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var pColl1 uintptr = Xsqlite3ExprNNCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).FpExpr)
+ var pColl2 uintptr = Xsqlite3ExprCompareCollSeq(tls, pParse, (*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)
+
+ if pColl2 == uintptr(0) || Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl1)).FzName, (*CollSeq)(unsafe.Pointer(pColl2)).FzName) != 0 {
+ continue
+ }
+
+ }
+ obSat = obSat | uint64(1)<<i
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_ONEROW) == U32(0) {
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK) != 0 {
+ pIndex = uintptr(0)
+ nKeyCol = U16(0)
+ nColumn = U16(1)
+ } else if libc.AssignUintptr(&pIndex, *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))) == uintptr(0) || uint32(int32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x4>>2)) != 0 {
+ return int8(0)
+ } else {
+ nKeyCol = (*Index)(unsafe.Pointer(pIndex)).FnKeyCol
+ nColumn = (*Index)(unsafe.Pointer(pIndex)).FnColumn
+
+ isOrderDistinct = U8(libc.Bool32(int32((*Index)(unsafe.Pointer(pIndex)).FonError) != OE_None &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_SKIPSCAN) == U32(0)))
+ }
+
+ rev = libc.AssignUint8(&revSet, U8(0))
+ distinctColumns = U8(0)
+ for j = 0; j < int32(nColumn); j++ {
+ var bOnce U8 = U8(1)
+
+ if j < int32(*(*U16)(unsafe.Pointer(pLoop + 24))) && j >= int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip) {
+ var eOp U16 = (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8)))).FeOperator
+
+ if int32(eOp)&int32(eqOpMask) != 0 {
+ if int32(eOp)&(WO_ISNULL|WO_IS) != 0 {
+ isOrderDistinct = U8(0)
+ }
+ continue
+ } else if int32(eOp)&WO_IN != 0 {
+ var pX uintptr = (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8)))).FpExpr
+ for i = j + 1; i < int32(*(*U16)(unsafe.Pointer(pLoop + 24))); i++ {
+ if (*WhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(i)*8)))).FpExpr == pX {
+ bOnce = U8(0)
+ break
+ }
+ }
+ }
+ }
+
+ if pIndex != 0 {
+ iColumn = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(j)*2)))
+ revIdx = U8(int32(*(*U8)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(j)))) & KEYINFO_ORDER_DESC)
+ if iColumn == int32((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FiPKey) {
+ iColumn = -1
+ }
+ } else {
+ iColumn = -1
+ revIdx = U8(0)
+ }
+
+ if isOrderDistinct != 0 {
+ if iColumn >= 0 &&
+ j >= int32(*(*U16)(unsafe.Pointer(pLoop + 24))) &&
+ int32(*(*uint8)(unsafe.Pointer((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FpTable)).FaCol + uintptr(iColumn)*24 + 8))&0xf>>0) == 0 {
+ isOrderDistinct = U8(0)
+ }
+ if iColumn == -2 {
+ isOrderDistinct = U8(0)
+ }
+ }
+
+ isMatch = U8(0)
+ for i = 0; bOnce != 0 && i < int32(nOrderBy); i++ {
+ if uint64(1)<<i&obSat != 0 {
+ continue
+ }
+ pOBExpr = Xsqlite3ExprSkipCollateAndLikely(tls, (*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).FpExpr)
+
+ if pOBExpr == uintptr(0) {
+ continue
+ }
+ if int32(wctrlFlags)&(WHERE_GROUPBY|WHERE_DISTINCTBY) == 0 {
+ bOnce = U8(0)
+ }
+ if iColumn >= -1 {
+ if int32((*Expr)(unsafe.Pointer(pOBExpr)).Fop) != TK_COLUMN && int32((*Expr)(unsafe.Pointer(pOBExpr)).Fop) != TK_AGG_COLUMN {
+ continue
+ }
+ if (*Expr)(unsafe.Pointer(pOBExpr)).FiTable != iCur {
+ continue
+ }
+ if int32((*Expr)(unsafe.Pointer(pOBExpr)).FiColumn) != iColumn {
+ continue
+ }
+ } else {
+ var pIxExpr uintptr = (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FaColExpr + 8 + uintptr(j)*32)).FpExpr
+ if Xsqlite3ExprCompareSkip(tls, pOBExpr, pIxExpr, iCur) != 0 {
+ continue
+ }
+ }
+ if iColumn != -1 {
+ pColl = Xsqlite3ExprNNCollSeq(tls, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse, (*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).FpExpr)
+ if Xsqlite3StrICmp(tls, (*CollSeq)(unsafe.Pointer(pColl)).FzName, *(*uintptr)(unsafe.Pointer((*Index)(unsafe.Pointer(pIndex)).FazColl + uintptr(j)*8))) != 0 {
+ continue
+ }
+ }
+ if int32(wctrlFlags)&WHERE_DISTINCTBY != 0 {
+ *(*U16)(unsafe.Pointer(pLoop + 24 + 6)) = U16(j + 1)
+ }
+ isMatch = U8(1)
+ break
+ }
+ if isMatch != 0 && int32(wctrlFlags)&WHERE_GROUPBY == 0 {
+ if revSet != 0 {
+ if int32(rev)^int32(revIdx) !=
+ int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).Ffg.FsortFlags)&KEYINFO_ORDER_DESC {
+ isMatch = U8(0)
+ }
+ } else {
+ rev = U8(int32(revIdx) ^ int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).Ffg.FsortFlags)&KEYINFO_ORDER_DESC)
+ if rev != 0 {
+ *(*Bitmask)(unsafe.Pointer(pRevMask)) |= uint64(1) << iLoop
+ }
+ revSet = U8(1)
+ }
+ }
+ if isMatch != 0 && int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8+uintptr(i)*32)).Ffg.FsortFlags)&KEYINFO_ORDER_BIGNULL != 0 {
+ if j == int32(*(*U16)(unsafe.Pointer(pLoop + 24))) {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_BIGNULL_SORT)
+ } else {
+ isMatch = U8(0)
+ }
+ }
+ if isMatch != 0 {
+ if iColumn == -1 {
+ distinctColumns = U8(1)
+ }
+ obSat = obSat | uint64(1)<<i
+ } else {
+ if j == 0 || j < int32(nKeyCol) {
+ isOrderDistinct = U8(0)
+ }
+ break
+ }
+ }
+ if distinctColumns != 0 {
+ isOrderDistinct = U8(1)
+ }
+ }
+
+ if isOrderDistinct != 0 {
+ orderDistinctMask = orderDistinctMask | (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf
+ for i = 0; i < int32(nOrderBy); i++ {
+ var p uintptr
+ var mTerm Bitmask
+ if uint64(1)<<i&obSat != 0 {
+ continue
+ }
+ p = (*ExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32)).FpExpr
+ mTerm = Xsqlite3WhereExprUsage(tls, pWInfo+592, p)
+ if mTerm == uint64(0) && !(Xsqlite3ExprIsConstant(tls, p) != 0) {
+ continue
+ }
+ if mTerm & ^orderDistinctMask == uint64(0) {
+ obSat = obSat | uint64(1)<<i
+ }
+ }
+ }
+ }
+ if obSat == obDone {
+ return I8(nOrderBy)
+ }
+ if !(isOrderDistinct != 0) {
+ for i = int32(nOrderBy) - 1; i > 0; i-- {
+ var m Bitmask
+ if i < int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) {
+ m = uint64(1)<<i - uint64(1)
+ } else {
+ m = uint64(0)
+ }
+ if obSat&m == m {
+ return I8(i)
+ }
+ }
+ return int8(0)
+ }
+ return int8(-1)
+}
+
+// If the WHERE_GROUPBY flag is set in the mask passed to sqlite3WhereBegin(),
+// the planner assumes that the specified pOrderBy list is actually a GROUP
+// BY clause - and so any order that groups rows as required satisfies the
+// request.
+//
+// Normally, in this case it is not possible for the caller to determine
+// whether or not the rows are really being delivered in sorted order, or
+// just in some other order that provides the required grouping. However,
+// if the WHERE_SORTBYGROUP flag is also passed to sqlite3WhereBegin(), then
+// this function may be called on the returned WhereInfo object. It returns
+// true if the rows really will be sorted in the specified order, or false
+// otherwise.
+//
+// For example, assuming:
+//
+// CREATE INDEX i1 ON t1(x, Y);
+//
+// then
+//
+// SELECT * FROM t1 GROUP BY x,y ORDER BY x,y; -- IsSorted()==1
+// SELECT * FROM t1 GROUP BY y,x ORDER BY y,x; -- IsSorted()==0
+func Xsqlite3WhereIsSorted(tls *libc.TLS, pWInfo uintptr) int32 {
+ return int32(*(*uint8)(unsafe.Pointer(pWInfo + 68)) & 0x8 >> 3)
+}
+
+func whereSortingCost(tls *libc.TLS, pWInfo uintptr, nRow LogEst, nOrderBy int32, nSorted int32) LogEst {
+ var rSortCost LogEst
+ var nCol LogEst
+
+ nCol = Xsqlite3LogEst(tls, uint64(((*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpEList)).FnExpr+59)/30))
+ rSortCost = LogEst(int32(nRow) + int32(nCol))
+ if nSorted > 0 {
+ rSortCost = LogEst(int32(rSortCost) + (int32(Xsqlite3LogEst(tls, uint64((nOrderBy-nSorted)*100/nOrderBy))) - 66))
+ }
+
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_USE_LIMIT != 0 {
+ rSortCost = int16(int32(rSortCost) + 10)
+ if nSorted != 0 {
+ rSortCost = int16(int32(rSortCost) + 6)
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FiLimit) < int32(nRow) {
+ nRow = (*WhereInfo)(unsafe.Pointer(pWInfo)).FiLimit
+ }
+ } else if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_WANT_DISTINCT != 0 {
+ if int32(nRow) > 10 {
+ nRow = int16(int32(nRow) - 10)
+ }
+ }
+ rSortCost = LogEst(int32(rSortCost) + int32(estLog(tls, nRow)))
+ return rSortCost
+}
+
+func wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst LogEst) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var mxChoice int32
+ var nLoop int32
+ var pParse uintptr
+ var iLoop int32
+ var ii int32
+ var jj int32
+ var mxI int32 = 0
+ var nOrderBy int32
+ var mxCost LogEst = int16(0)
+ var mxUnsorted LogEst = int16(0)
+ var nTo int32
+ var nFrom int32
+ var aFrom uintptr
+ var aTo uintptr
+ var pFrom uintptr
+ var pTo uintptr
+ var pWLoop uintptr
+ var pX uintptr
+ var aSortCost uintptr = uintptr(0)
+ var pSpace uintptr
+ var nSpace int32
+
+ pParse = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ nLoop = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)
+
+ if nLoop <= 1 {
+ mxChoice = 1
+ } else {
+ mxChoice = func() int32 {
+ if nLoop == 2 {
+ return 5
+ }
+ return 10
+ }()
+ }
+
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy == uintptr(0) || int32(nRowEst) == 0 {
+ nOrderBy = 0
+ } else {
+ nOrderBy = (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr
+ }
+
+ nSpace = int32((uint64(unsafe.Sizeof(WherePath{})) + uint64(unsafe.Sizeof(uintptr(0)))*uint64(nLoop)) * uint64(mxChoice) * uint64(2))
+ nSpace = int32(uint64(nSpace) + uint64(unsafe.Sizeof(LogEst(0)))*uint64(nOrderBy))
+ pSpace = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(nSpace))
+ if pSpace == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ aTo = pSpace
+ aFrom = aTo + uintptr(mxChoice)*32
+ libc.X__builtin___memset_chk(tls, aFrom, 0, uint64(unsafe.Sizeof(WherePath{})), libc.X__builtin_object_size(tls, aFrom, 0))
+ pX = aFrom + uintptr(mxChoice)*32
+ ii = mxChoice * 2
+ pFrom = aTo
+__1:
+ if !(ii > 0) {
+ goto __3
+ }
+ {
+ (*WherePath)(unsafe.Pointer(pFrom)).FaLoop = pX
+
+ }
+ goto __2
+__2:
+ ii--
+ pFrom += 32
+ pX += 8 * uintptr(nLoop)
+ goto __1
+ goto __3
+__3:
+ ;
+ if nOrderBy != 0 {
+ aSortCost = pX
+ libc.X__builtin___memset_chk(tls, aSortCost, 0, uint64(unsafe.Sizeof(LogEst(0)))*uint64(nOrderBy), libc.X__builtin_object_size(tls, aSortCost, 0))
+ }
+
+ (*WherePath)(unsafe.Pointer(aFrom)).FnRow = func() int16 {
+ if (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop < U32(48) {
+ return int16((*Parse)(unsafe.Pointer(pParse)).FnQueryLoop)
+ }
+ return int16(48)
+ }()
+ nFrom = 1
+
+ if nOrderBy != 0 {
+ (*WherePath)(unsafe.Pointer(aFrom)).FisOrdered = func() int8 {
+ if nLoop > 0 {
+ return int8(-1)
+ }
+ return int8(nOrderBy)
+ }()
+ }
+
+ for iLoop = 0; iLoop < nLoop; iLoop++ {
+ nTo = 0
+ ii = 0
+ pFrom = aFrom
+ __4:
+ if !(ii < nFrom) {
+ goto __6
+ }
+ {
+ for pWLoop = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops; pWLoop != 0; pWLoop = (*WhereLoop)(unsafe.Pointer(pWLoop)).FpNextLoop {
+ var nOut LogEst
+ var rCost LogEst
+ var rUnsorted LogEst
+ var isOrdered I8
+ var maskNew Bitmask
+
+ if (*WhereLoop)(unsafe.Pointer(pWLoop)).Fprereq & ^(*WherePath)(unsafe.Pointer(pFrom)).FmaskLoop != uint64(0) {
+ continue
+ }
+ if (*WhereLoop)(unsafe.Pointer(pWLoop)).FmaskSelf&(*WherePath)(unsafe.Pointer(pFrom)).FmaskLoop != uint64(0) {
+ continue
+ }
+ if (*WhereLoop)(unsafe.Pointer(pWLoop)).FwsFlags&U32(WHERE_AUTO_INDEX) != U32(0) && int32((*WherePath)(unsafe.Pointer(pFrom)).FnRow) < 3 {
+ continue
+ }
+
+ rUnsorted = Xsqlite3LogEstAdd(tls, (*WhereLoop)(unsafe.Pointer(pWLoop)).FrSetup, int16(int32((*WhereLoop)(unsafe.Pointer(pWLoop)).FrRun)+int32((*WherePath)(unsafe.Pointer(pFrom)).FnRow)))
+ rUnsorted = Xsqlite3LogEstAdd(tls, rUnsorted, (*WherePath)(unsafe.Pointer(pFrom)).FrUnsorted)
+ nOut = LogEst(int32((*WherePath)(unsafe.Pointer(pFrom)).FnRow) + int32((*WhereLoop)(unsafe.Pointer(pWLoop)).FnOut))
+ maskNew = (*WherePath)(unsafe.Pointer(pFrom)).FmaskLoop | (*WhereLoop)(unsafe.Pointer(pWLoop)).FmaskSelf
+ isOrdered = (*WherePath)(unsafe.Pointer(pFrom)).FisOrdered
+ if int32(isOrdered) < 0 {
+ *(*Bitmask)(unsafe.Pointer(bp)) = uint64(0)
+ isOrdered = wherePathSatisfiesOrderBy(tls, pWInfo,
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy, pFrom, (*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags,
+ uint16(iLoop), pWLoop, bp)
+ } else {
+ *(*Bitmask)(unsafe.Pointer(bp)) = (*WherePath)(unsafe.Pointer(pFrom)).FrevLoop
+ }
+ if int32(isOrdered) >= 0 && int32(isOrdered) < nOrderBy {
+ if int32(*(*LogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2))) == 0 {
+ *(*LogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2)) = whereSortingCost(tls,
+ pWInfo, nRowEst, nOrderBy, int32(isOrdered))
+ }
+
+ rCost = LogEst(int32(Xsqlite3LogEstAdd(tls, rUnsorted, *(*LogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2)))) + 3)
+
+ } else {
+ rCost = rUnsorted
+ rUnsorted = int16(int32(rUnsorted) - 2)
+ }
+
+ if iLoop == 0 && (*WhereLoop)(unsafe.Pointer(pWLoop)).FwsFlags&U32(WHERE_VIEWSCAN) != U32(0) {
+ rCost = int16(int32(rCost) + -10)
+ nOut = int16(int32(nOut) + -30)
+ }
+
+ jj = 0
+ pTo = aTo
+ __7:
+ if !(jj < nTo) {
+ goto __9
+ }
+ {
+ if (*WherePath)(unsafe.Pointer(pTo)).FmaskLoop == maskNew &&
+ (int32((*WherePath)(unsafe.Pointer(pTo)).FisOrdered)^int32(isOrdered))&0x80 == 0 {
+ goto __9
+ }
+
+ }
+ goto __8
+ __8:
+ jj++
+ pTo += 32
+ goto __7
+ goto __9
+ __9:
+ ;
+ if jj >= nTo {
+ if nTo >= mxChoice &&
+ (int32(rCost) > int32(mxCost) || int32(rCost) == int32(mxCost) && int32(rUnsorted) >= int32(mxUnsorted)) {
+ continue
+ }
+
+ if nTo < mxChoice {
+ jj = libc.PostIncInt32(&nTo, 1)
+ } else {
+ jj = mxI
+ }
+ pTo = aTo + uintptr(jj)*32
+ } else {
+ if int32((*WherePath)(unsafe.Pointer(pTo)).FrCost) < int32(rCost) ||
+ int32((*WherePath)(unsafe.Pointer(pTo)).FrCost) == int32(rCost) &&
+ (int32((*WherePath)(unsafe.Pointer(pTo)).FnRow) < int32(nOut) ||
+ int32((*WherePath)(unsafe.Pointer(pTo)).FnRow) == int32(nOut) && int32((*WherePath)(unsafe.Pointer(pTo)).FrUnsorted) <= int32(rUnsorted)) {
+ continue
+ }
+
+ }
+
+ (*WherePath)(unsafe.Pointer(pTo)).FmaskLoop = (*WherePath)(unsafe.Pointer(pFrom)).FmaskLoop | (*WhereLoop)(unsafe.Pointer(pWLoop)).FmaskSelf
+ (*WherePath)(unsafe.Pointer(pTo)).FrevLoop = *(*Bitmask)(unsafe.Pointer(bp))
+ (*WherePath)(unsafe.Pointer(pTo)).FnRow = nOut
+ (*WherePath)(unsafe.Pointer(pTo)).FrCost = rCost
+ (*WherePath)(unsafe.Pointer(pTo)).FrUnsorted = rUnsorted
+ (*WherePath)(unsafe.Pointer(pTo)).FisOrdered = isOrdered
+ libc.X__builtin___memcpy_chk(tls, (*WherePath)(unsafe.Pointer(pTo)).FaLoop, (*WherePath)(unsafe.Pointer(pFrom)).FaLoop, uint64(unsafe.Sizeof(uintptr(0)))*uint64(iLoop), libc.X__builtin_object_size(tls, (*WherePath)(unsafe.Pointer(pTo)).FaLoop, 0))
+ *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pTo)).FaLoop + uintptr(iLoop)*8)) = pWLoop
+ if nTo >= mxChoice {
+ mxI = 0
+ mxCost = (*WherePath)(unsafe.Pointer(aTo)).FrCost
+ mxUnsorted = (*WherePath)(unsafe.Pointer(aTo)).FnRow
+ jj = 1
+ pTo = aTo + 1*32
+ __10:
+ if !(jj < mxChoice) {
+ goto __12
+ }
+ {
+ if int32((*WherePath)(unsafe.Pointer(pTo)).FrCost) > int32(mxCost) ||
+ int32((*WherePath)(unsafe.Pointer(pTo)).FrCost) == int32(mxCost) && int32((*WherePath)(unsafe.Pointer(pTo)).FrUnsorted) > int32(mxUnsorted) {
+ mxCost = (*WherePath)(unsafe.Pointer(pTo)).FrCost
+ mxUnsorted = (*WherePath)(unsafe.Pointer(pTo)).FrUnsorted
+ mxI = jj
+ }
+
+ }
+ goto __11
+ __11:
+ jj++
+ pTo += 32
+ goto __10
+ goto __12
+ __12:
+ }
+ }
+
+ }
+ goto __5
+ __5:
+ ii++
+ pFrom += 32
+ goto __4
+ goto __6
+ __6:
+ ;
+ pFrom = aTo
+ aTo = aFrom
+ aFrom = pFrom
+ nFrom = nTo
+ }
+
+ if nFrom == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22454, 0)
+ Xsqlite3DbFreeNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSpace)
+ return SQLITE_ERROR
+ }
+
+ pFrom = aFrom
+ for ii = 1; ii < nFrom; ii++ {
+ if int32((*WherePath)(unsafe.Pointer(pFrom)).FrCost) > int32((*WherePath)(unsafe.Pointer(aFrom+uintptr(ii)*32)).FrCost) {
+ pFrom = aFrom + uintptr(ii)*32
+ }
+ }
+
+ for iLoop = 0; iLoop < nLoop; iLoop++ {
+ var pLevel uintptr = pWInfo + 856 + uintptr(iLoop)*104
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop = libc.AssignUintptr(&pWLoop, *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pFrom)).FaLoop + uintptr(iLoop)*8)))
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom = (*WhereLoop)(unsafe.Pointer(pWLoop)).FiTab
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur = (*SrcItem)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104)).FiCursor
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_WANT_DISTINCT != 0 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_DISTINCTBY == 0 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct) == WHERE_DISTINCT_NOOP &&
+ nRowEst != 0 {
+ var rc int32 = int32(wherePathSatisfiesOrderBy(tls, pWInfo, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpResultSet, pFrom,
+ uint16(WHERE_DISTINCTBY), uint16(nLoop-1), *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pFrom)).FaLoop + uintptr(nLoop-1)*8)), bp+8))
+ if rc == (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpResultSet)).FnExpr {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_ORDERED)
+ }
+ }
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(0), 2, 0x4)
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = (*WherePath)(unsafe.Pointer(pFrom)).FisOrdered
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_DISTINCTBY != 0 {
+ if int32((*WherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_ORDERED)
+ }
+ } else {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*WherePath)(unsafe.Pointer(pFrom)).FrevLoop
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8(0)
+ if nLoop > 0 {
+ var wsFlags U32 = (*WhereLoop)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pFrom)).FaLoop + uintptr(nLoop-1)*8)))).FwsFlags
+ if wsFlags&U32(WHERE_ONEROW) == U32(0) &&
+ wsFlags&U32(WHERE_IPK|WHERE_COLUMN_IN) != U32(WHERE_IPK|WHERE_COLUMN_IN) {
+ *(*Bitmask)(unsafe.Pointer(bp + 16)) = uint64(0)
+ var rc int32 = int32(wherePathSatisfiesOrderBy(tls, pWInfo, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy, pFrom,
+ uint16(WHERE_ORDERBY_LIMIT), uint16(nLoop-1), *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pFrom)).FaLoop + uintptr(nLoop-1)*8)), bp+16))
+
+ if rc == (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr {
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 2, 0x4)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = *(*Bitmask)(unsafe.Pointer(bp + 16))
+ }
+ }
+ }
+ } else if nLoop != 0 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) == 1 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX) != 0 {
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 2, 0x4)
+ }
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_SORTBYGROUP != 0 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) == (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr && nLoop > 0 {
+ *(*Bitmask)(unsafe.Pointer(bp + 24)) = uint64(0)
+ var nOrder int32 = int32(wherePathSatisfiesOrderBy(tls, pWInfo, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy,
+ pFrom, uint16(0), uint16(nLoop-1), *(*uintptr)(unsafe.Pointer((*WherePath)(unsafe.Pointer(pFrom)).FaLoop + uintptr(nLoop-1)*8)), bp+24))
+
+ if nOrder == (*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr {
+ libc.SetBitFieldPtr8Uint32(pWInfo+68, uint32(1), 3, 0x8)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = *(*Bitmask)(unsafe.Pointer(bp + 24))
+ }
+ }
+ }
+
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut = (*WherePath)(unsafe.Pointer(pFrom)).FnRow
+
+ Xsqlite3DbFreeNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pSpace)
+ return SQLITE_OK
+}
+
+func whereShortCut(tls *libc.TLS, pBuilder uintptr) int32 {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var pWInfo uintptr
+ var pItem uintptr
+ var pWC uintptr
+ var pTerm uintptr
+ var pLoop uintptr
+ var iCur int32
+ var j int32
+ var pTab uintptr
+ var pIdx uintptr
+
+ pWInfo = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWInfo
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_OR_SUBCLAUSE != 0 {
+ return 0
+ }
+
+ pItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8
+ pTab = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ return 0
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2>>1)) != 0 || uint32(int32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x1>>0)) != 0 {
+ return 0
+ }
+ iCur = (*SrcItem)(unsafe.Pointer(pItem)).FiCursor
+ pWC = pWInfo + 104
+ pLoop = (*WhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpNew
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags = U32(0)
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnSkip = U16(0)
+ pTerm = whereScanInit(tls, bp, pWC, iCur, -1, uint32(WO_EQ|WO_IS), uintptr(0))
+ for pTerm != 0 && (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight != 0 {
+ pTerm = whereScanNext(tls, bp)
+ }
+ if pTerm != 0 {
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags = U32(WHERE_COLUMN_EQ | WHERE_IPK | WHERE_ONEROW)
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm)) = pTerm
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm = U16(1)
+ *(*U16)(unsafe.Pointer(pLoop + 24)) = U16(1)
+
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FrRun = int16(33)
+ } else {
+ for pIdx = (*Table)(unsafe.Pointer(pTab)).FpIndex; pIdx != 0; pIdx = (*Index)(unsafe.Pointer(pIdx)).FpNext {
+ var opMask int32
+
+ if !(int32((*Index)(unsafe.Pointer(pIdx)).FonError) != OE_None) ||
+ (*Index)(unsafe.Pointer(pIdx)).FpPartIdxWhere != uintptr(0) ||
+ int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) > int32(uint64(unsafe.Sizeof([3]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))) {
+ continue
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x8>>3)) != 0 {
+ opMask = WO_EQ | WO_IS
+ } else {
+ opMask = WO_EQ
+ }
+ for j = 0; j < int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol); j++ {
+ pTerm = whereScanInit(tls, bp, pWC, iCur, j, uint32(opMask), pIdx)
+ for pTerm != 0 && (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqRight != 0 {
+ pTerm = whereScanNext(tls, bp)
+ }
+ if pTerm == uintptr(0) {
+ break
+ }
+
+ *(*uintptr)(unsafe.Pointer((*WhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8)) = pTerm
+ }
+ if j != int32((*Index)(unsafe.Pointer(pIdx)).FnKeyCol) {
+ continue
+ }
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags = U32(WHERE_COLUMN_EQ | WHERE_ONEROW | WHERE_INDEXED)
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x20>>5)) != 0 || (*SrcItem)(unsafe.Pointer(pItem)).FcolUsed&(*Index)(unsafe.Pointer(pIdx)).FcolNotIdxed == uint64(0) {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_IDX_ONLY)
+ }
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnLTerm = U16(j)
+ *(*U16)(unsafe.Pointer(pLoop + 24)) = U16(j)
+ *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8)) = pIdx
+
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FrRun = int16(39)
+ break
+ }
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags != 0 {
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(1)
+ (*WhereLevel)(unsafe.Pointer(pWInfo + 856)).FpWLoop = pLoop
+
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf = uint64(1)
+ (*WhereLevel)(unsafe.Pointer(pWInfo + 856)).FiTabCur = iCur
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut = int16(1)
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = I8((*ExprList)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr)
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_WANT_DISTINCT != 0 {
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_UNIQUE)
+ }
+ if int32((*WhereScan)(unsafe.Pointer(bp)).FiEquiv) > 1 {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_TRANSCONS)
+ }
+ return 1
+ }
+ return 0
+}
+
+func exprNodeIsDeterministic(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_FUNCTION && libc.Bool32((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_ConstFunc) != U32(0)) == 0 {
+ (*Walker)(unsafe.Pointer(pWalker)).FeCode = U16(0)
+ return WRC_Abort
+ }
+ return WRC_Continue
+}
+
+func exprIsDeterministic(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FeCode = U16(1)
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{exprNodeIsDeterministic}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3SelectWalkFail}))
+ Xsqlite3WalkExpr(tls, bp, p)
+ return int32((*Walker)(unsafe.Pointer(bp)).FeCode)
+}
+
+func whereOmitNoopJoin(tls *libc.TLS, pWInfo uintptr, notReady Bitmask) Bitmask {
+ var i int32
+ var tabUsed Bitmask
+
+ tabUsed = Xsqlite3WhereExprListUsage(tls, pWInfo+592, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpResultSet)
+ if (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 {
+ tabUsed = tabUsed | Xsqlite3WhereExprListUsage(tls, pWInfo+592, (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)
+ }
+ for i = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) - 1; i >= 1; i-- {
+ var pTerm uintptr
+ var pEnd uintptr
+ var pItem uintptr
+ var pLoop uintptr
+ pLoop = (*WhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104)).FpWLoop
+ pItem = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pLoop)).FiTab)*104
+ if int32((*SrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(JT_LEFT|JT_RIGHT) != JT_LEFT {
+ continue
+ }
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_WANT_DISTINCT == 0 &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_ONEROW) == U32(0) {
+ continue
+ }
+ if tabUsed&(*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf != uint64(0) {
+ continue
+ }
+ pEnd = (*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.Fa + uintptr((*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.FnTerm)*56
+ for pTerm = (*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.Fa; pTerm < pEnd; pTerm += 56 {
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&(*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf != uint64(0) {
+ if !((*Expr)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&U32(EP_OuterON) != U32(0)) ||
+ *(*int32)(unsafe.Pointer((*WhereTerm)(unsafe.Pointer(pTerm)).FpExpr + 52)) != (*SrcItem)(unsafe.Pointer(pItem)).FiCursor {
+ break
+ }
+ }
+ }
+ if pTerm < pEnd {
+ continue
+ }
+
+ notReady = notReady & ^(*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf
+ for pTerm = (*WhereInfo)(unsafe.Pointer(pWInfo)).FsWC.Fa; pTerm < pEnd; pTerm += 56 {
+ if (*WhereTerm)(unsafe.Pointer(pTerm)).FprereqAll&(*WhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf != uint64(0) {
+ *(*U16)(unsafe.Pointer(pTerm + 18)) |= U16(TERM_CODED)
+ }
+ }
+ if i != int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-1 {
+ var nByte int32 = int32(uint64(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-1-i) * uint64(unsafe.Sizeof(WhereLevel{})))
+ libc.X__builtin___memmove_chk(tls, pWInfo+856+uintptr(i)*104, pWInfo+856+uintptr(i+1)*104, uint64(nByte), libc.X__builtin_object_size(tls, pWInfo+856+uintptr(i)*104, 0))
+ }
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel--
+
+ }
+ return notReady
+}
+
+func whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) {
+ var i int32
+ var nSearch LogEst = int16(0)
+
+ for i = 0; i < int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel); i++ {
+ var pLoop uintptr = (*WhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104)).FpWLoop
+ var reqFlags uint32 = uint32(WHERE_SELFCULL | WHERE_COLUMN_EQ)
+ var pItem uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*WhereLoop)(unsafe.Pointer(pLoop)).FiTab)*104
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pItem)).FpTab
+ if (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasStat1) == U32(0) {
+ break
+ }
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_StatsUsed)
+ if i >= 1 &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IPK|WHERE_INDEXED) != U32(0) {
+ if int32(nSearch) > int32((*Table)(unsafe.Pointer(pTab)).FnRowLogEst) {
+ *(*U32)(unsafe.Pointer(pLoop + 56)) |= U32(WHERE_BLOOMFILTER)
+ *(*U32)(unsafe.Pointer(pLoop + 56)) &= libc.Uint32FromInt32(libc.CplInt32(WHERE_IDX_ONLY))
+
+ }
+ }
+ nSearch = LogEst(int32(nSearch) + int32((*WhereLoop)(unsafe.Pointer(pLoop)).FnOut))
+ }
+}
+
+func whereIndexedExprCleanup(tls *libc.TLS, db uintptr, pObject uintptr) {
+ var pParse uintptr = pObject
+ for (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr != uintptr(0) {
+ var p uintptr = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr
+ (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr = (*IndexedExpr)(unsafe.Pointer(p)).FpIENext
+ Xsqlite3ExprDelete(tls, db, (*IndexedExpr)(unsafe.Pointer(p)).FpExpr)
+ Xsqlite3DbFreeNN(tls, db, p)
+ }
+}
+
+func whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) {
+ var i int32
+ var p uintptr
+ var pTab uintptr
+
+ pTab = (*Index)(unsafe.Pointer(pIdx)).FpTable
+ for i = 0; i < int32((*Index)(unsafe.Pointer(pIdx)).FnColumn); i++ {
+ var pExpr uintptr
+ var j int32 = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)))
+ var bMaybeNullRow int32
+ if j == -2 {
+ pExpr = (*ExprList_item)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32)).FpExpr
+
+ bMaybeNullRow = libc.Bool32(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(JT_LEFT|JT_LTORJ|JT_RIGHT) != 0)
+ } else if j >= 0 && int32((*Column)(unsafe.Pointer((*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)).FcolFlags)&COLFLAG_VIRTUAL != 0 {
+ pExpr = Xsqlite3ColumnExpr(tls, pTab, (*Table)(unsafe.Pointer(pTab)).FaCol+uintptr(j)*24)
+ bMaybeNullRow = 0
+ } else {
+ continue
+ }
+ if Xsqlite3ExprIsConstant(tls, pExpr) != 0 {
+ continue
+ }
+ p = Xsqlite3DbMallocRaw(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(IndexedExpr{})))
+ if p == uintptr(0) {
+ break
+ }
+ (*IndexedExpr)(unsafe.Pointer(p)).FpIENext = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr
+ (*IndexedExpr)(unsafe.Pointer(p)).FpExpr = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)
+ (*IndexedExpr)(unsafe.Pointer(p)).FiDataCur = (*SrcItem)(unsafe.Pointer(pTabItem)).FiCursor
+ (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur = iIdxCur
+ (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCol = i
+ (*IndexedExpr)(unsafe.Pointer(p)).FbMaybeNullRow = U8(bMaybeNullRow)
+ (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr = p
+ if (*IndexedExpr)(unsafe.Pointer(p)).FpIENext == uintptr(0) {
+ Xsqlite3ParserAddCleanup(tls, pParse, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{whereIndexedExprCleanup})), pParse)
+ }
+ }
+}
+
+// Generate the beginning of the loop used for WHERE clause processing.
+// The return value is a pointer to an opaque structure that contains
+// information needed to terminate the loop. Later, the calling routine
+// should invoke sqlite3WhereEnd() with the return value of this function
+// in order to complete the WHERE clause processing.
+//
+// If an error occurs, this routine returns NULL.
+//
+// The basic idea is to do a nested loop, one loop for each table in
+// the FROM clause of a select. (INSERT and UPDATE statements are the
+// same as a SELECT with only a single table in the FROM clause.) For
+// example, if the SQL is this:
+//
+// SELECT * FROM t1, t2, t3 WHERE ...;
+//
+// Then the code generated is conceptually like the following:
+//
+// foreach row1 in t1 do \ Code generated
+// foreach row2 in t2 do |-- by sqlite3WhereBegin()
+// foreach row3 in t3 do /
+// ...
+// end \ Code generated
+// end |-- by sqlite3WhereEnd()
+// end /
+//
+// Note that the loops might not be nested in the order in which they
+// appear in the FROM clause if a different order is better able to make
+// use of indices. Note also that when the IN operator appears in
+// the WHERE clause, it might result in additional nested loops for
+// scanning through all values on the right-hand side of the IN.
+//
+// There are Btree cursors associated with each table. t1 uses cursor
+// number pTabList->a[0].iCursor. t2 uses the cursor pTabList->a[1].iCursor.
+// And so forth. This routine generates code to open those VDBE cursors
+// and sqlite3WhereEnd() generates the code to close them.
+//
+// The code that sqlite3WhereBegin() generates leaves the cursors named
+// in pTabList pointing at their appropriate entries. The [...] code
+// can use OP_Column and OP_Rowid opcodes on these cursors to extract
+// data from the various tables of the loop.
+//
+// If the WHERE clause is empty, the foreach loops must each scan their
+// entire tables. Thus a three-way join is an O(N^3) operation. But if
+// the tables have indices and there are terms in the WHERE clause that
+// refer to those indices, a complete table scan can be avoided and the
+// code will run much faster. Most of the work of this routine is checking
+// to see if there are indices that can be used to speed up the loop.
+//
+// Terms of the WHERE clause are also used to limit which rows actually
+// make it to the "..." in the middle of the loop. After each "foreach",
+// terms of the WHERE clause that use only terms in that loop and outer
+// loops are evaluated and if false a jump is made around all subsequent
+// inner loops (or around the "..." if the test occurs within the inner-
+// most loop)
+//
+// # OUTER JOINS
+//
+// An outer join of tables t1 and t2 is conceptally coded as follows:
+//
+// foreach row1 in t1 do
+// flag = 0
+// foreach row2 in t2 do
+// start:
+// ...
+// flag = 1
+// end
+// if flag==0 then
+// move the row2 cursor to a null row
+// goto start
+// fi
+// end
+//
+// # ORDER BY CLAUSE PROCESSING
+//
+// pOrderBy is a pointer to the ORDER BY clause (or the GROUP BY clause
+// if the WHERE_GROUPBY flag is set in wctrlFlags) of a SELECT statement
+// if there is one. If there is no ORDER BY clause or if this routine
+// is called from an UPDATE or DELETE statement, then pOrderBy is NULL.
+//
+// The iIdxCur parameter is the cursor number of an index. If
+// WHERE_OR_SUBCLAUSE is set, iIdxCur is the cursor number of an index
+// to use for OR clause processing. The WHERE clause should use this
+// specific cursor. If WHERE_ONEPASS_DESIRED is set, then iIdxCur is
+// the first cursor in an array of cursors for all indices. iIdxCur should
+// be used to compute the appropriate cursor depending on which index is
+// used.
+func Xsqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere uintptr, pOrderBy uintptr, pResultSet uintptr, pSelect uintptr, wctrlFlags U16, iAuxArg int32) uintptr {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var nByteWInfo int32
+ var nTabList int32
+ var pWInfo uintptr
+ var v uintptr
+ var notReady Bitmask
+
+ var pMaskSet uintptr
+ var pLevel uintptr
+ var pLoop uintptr
+ var ii int32
+ var db uintptr
+ var rc int32
+ var bFordelete U8
+ var pT uintptr
+ var p uintptr
+ var wsFlags int32
+ var bOnerow int32
+ var pVTab uintptr
+ var iCur int32
+
+ var b Bitmask
+ var n int32
+ var op int32
+ var pJ uintptr
+ var pIx uintptr
+ var iIndexCur int32
+ var op1 int32
+ var pInfo uintptr
+ var pPk uintptr
+ var pRJ uintptr
+ var pTab uintptr
+ var iDb int32
+ var pTabItem uintptr
+ var iOnce int32
+ var addrExplain int32
+ _ = addrExplain
+ var wsFlags1 int32
+ var pSrc uintptr
+ v = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ bFordelete = U8(0)
+
+ db = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof(WhereLoopBuilder{})), libc.X__builtin_object_size(tls, bp+8, 0))
+
+ if !(pOrderBy != 0 && (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr >= int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))) {
+ goto __1
+ }
+ pOrderBy = uintptr(0)
+__1:
+ ;
+ if !((*SrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))) {
+ goto __2
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+22472, libc.VaList(bp, int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8))))
+ return uintptr(0)
+__2:
+ ;
+ if int32(wctrlFlags)&WHERE_OR_SUBCLAUSE != 0 {
+ nTabList = 1
+ } else {
+ nTabList = (*SrcList)(unsafe.Pointer(pTabList)).FnSrc
+ }
+
+ nByteWInfo = int32(uint64(unsafe.Sizeof(WhereInfo{})) + uint64(nTabList-1)*uint64(unsafe.Sizeof(WhereLevel{})))
+ pWInfo = Xsqlite3DbMallocRawNN(tls, db, uint64(nByteWInfo)+uint64(unsafe.Sizeof(WhereLoop{})))
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __3
+ }
+ Xsqlite3DbFree(tls, db, pWInfo)
+ pWInfo = uintptr(0)
+ goto whereBeginError
+__3:
+ ;
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse = pParse
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList = pTabList
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy = pOrderBy
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpResultSet = pResultSet
+ *(*int32)(unsafe.Pointer(pWInfo + 40)) = libc.AssignPtrInt32(pWInfo+40+1*4, -1)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel = U8(nTabList)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FiBreak = libc.AssignPtrInt32(pWInfo+48, Xsqlite3VdbeMakeLabel(tls, pParse))
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags = wctrlFlags
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FiLimit = LogEst(iAuxArg)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FsavedNQueryLoop = int32((*Parse)(unsafe.Pointer(pParse)).FnQueryLoop)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpSelect = pSelect
+ libc.X__builtin___memset_chk(tls, pWInfo+65, 0, uint64(uintptr(0)+104)-uint64(uintptr(0)+65), libc.X__builtin_object_size(tls, pWInfo+65, 0))
+ libc.X__builtin___memset_chk(tls, pWInfo+856, 0, uint64(unsafe.Sizeof(WhereLoop{}))+uint64(nTabList)*uint64(unsafe.Sizeof(WhereLevel{})), libc.X__builtin_object_size(tls, pWInfo+856, 0))
+
+ pMaskSet = pWInfo + 592
+ (*WhereMaskSet)(unsafe.Pointer(pMaskSet)).Fn = 0
+ *(*int32)(unsafe.Pointer(pMaskSet + 8)) = -99
+
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 8)).FpWInfo = pWInfo
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 8)).FpWC = pWInfo + 104
+ (*WhereLoopBuilder)(unsafe.Pointer(bp + 8)).FpNew = pWInfo + uintptr(nByteWInfo)
+
+ whereLoopInit(tls, (*WhereLoopBuilder)(unsafe.Pointer(bp+8)).FpNew)
+
+ Xsqlite3WhereClauseInit(tls, pWInfo+104, pWInfo)
+ Xsqlite3WhereSplit(tls, pWInfo+104, pWhere, uint8(TK_AND))
+
+ if !(nTabList == 0) {
+ goto __4
+ }
+ if !(pOrderBy != 0) {
+ goto __6
+ }
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = I8((*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr)
+__6:
+ ;
+ if !(int32(wctrlFlags)&WHERE_WANT_DISTINCT != 0 &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_DistinctOpt) == U32(0)) {
+ goto __7
+ }
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_UNIQUE)
+__7:
+ ;
+ Xsqlite3VdbeExplain(tls, pParse, uint8(0), ts+22500, 0)
+ goto __5
+__4:
+ ii = 0
+__8:
+ createMask(tls, pMaskSet, (*SrcItem)(unsafe.Pointer(pTabList+8+uintptr(ii)*104)).FiCursor)
+ Xsqlite3WhereTabFuncArgs(tls, pParse, pTabList+8+uintptr(ii)*104, pWInfo+104)
+ goto __9
+__9:
+ if libc.PreIncInt32(&ii, 1) < (*SrcList)(unsafe.Pointer(pTabList)).FnSrc {
+ goto __8
+ }
+ goto __10
+__10:
+ ;
+__5:
+ ;
+ Xsqlite3WhereExprAnalyze(tls, pTabList, pWInfo+104)
+ if !(pSelect != 0 && (*Select)(unsafe.Pointer(pSelect)).FpLimit != 0) {
+ goto __11
+ }
+ Xsqlite3WhereAddLimit(tls, pWInfo+104, pSelect)
+__11:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __12
+ }
+ goto whereBeginError
+__12:
+ ;
+ ii = 0
+__13:
+ if !(ii < (*WhereClause)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(bp+8)).FpWC)).FnBase) {
+ goto __15
+ }
+ pT = (*WhereClause)(unsafe.Pointer((*WhereLoopBuilder)(unsafe.Pointer(bp+8)).FpWC)).Fa + uintptr(ii)*56
+ if !(int32((*WhereTerm)(unsafe.Pointer(pT)).FwtFlags)&TERM_VIRTUAL != 0) {
+ goto __16
+ }
+ goto __14
+__16:
+ ;
+ if !((*WhereTerm)(unsafe.Pointer(pT)).FprereqAll == uint64(0) && (nTabList == 0 || exprIsDeterministic(tls, (*WhereTerm)(unsafe.Pointer(pT)).FpExpr) != 0)) {
+ goto __17
+ }
+ Xsqlite3ExprIfFalse(tls, pParse, (*WhereTerm)(unsafe.Pointer(pT)).FpExpr, (*WhereInfo)(unsafe.Pointer(pWInfo)).FiBreak, SQLITE_JUMPIFNULL)
+ *(*U16)(unsafe.Pointer(pT + 18)) |= U16(TERM_CODED)
+__17:
+ ;
+ goto __14
+__14:
+ ii++
+ goto __13
+ goto __15
+__15:
+ ;
+ if !(int32(wctrlFlags)&WHERE_WANT_DISTINCT != 0) {
+ goto __18
+ }
+ if !((*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_DistinctOpt) != U32(0)) {
+ goto __19
+ }
+
+ wctrlFlags = libc.Uint16FromInt32(int32(wctrlFlags) & libc.CplInt32(WHERE_WANT_DISTINCT))
+ *(*U16)(unsafe.Pointer(pWInfo + 60)) &= libc.Uint16FromInt32(libc.CplInt32(WHERE_WANT_DISTINCT))
+ goto __20
+__19:
+ if !(isDistinctRedundant(tls, pParse, pTabList, pWInfo+104, pResultSet) != 0) {
+ goto __21
+ }
+
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_UNIQUE)
+ goto __22
+__21:
+ if !(pOrderBy == uintptr(0)) {
+ goto __23
+ }
+
+ *(*U16)(unsafe.Pointer(pWInfo + 60)) |= U16(WHERE_DISTINCTBY)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy = pResultSet
+__23:
+ ;
+__22:
+ ;
+__20:
+ ;
+__18:
+ ;
+ if !(nTabList != 1 || whereShortCut(tls, bp+8) == 0) {
+ goto __24
+ }
+ rc = whereLoopAddAll(tls, bp+8)
+ if !(rc != 0) {
+ goto __25
+ }
+ goto whereBeginError
+__25:
+ ;
+ if !(int32((*WhereLoopBuilder)(unsafe.Pointer(bp+8)).FbldFlags2)&SQLITE_BLDF2_2NDPASS != 0) {
+ goto __26
+ }
+
+__27:
+ if !((*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops != 0) {
+ goto __28
+ }
+ p = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FpLoops = (*WhereLoop)(unsafe.Pointer(p)).FpNextLoop
+ whereLoopDelete(tls, db, p)
+ goto __27
+__28:
+ ;
+ rc = whereLoopAddAll(tls, bp+8)
+ if !(rc != 0) {
+ goto __29
+ }
+ goto whereBeginError
+__29:
+ ;
+__26:
+ ;
+ wherePathSolver(tls, pWInfo, int16(0))
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __30
+ }
+ goto whereBeginError
+__30:
+ ;
+ if !((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0) {
+ goto __31
+ }
+ wherePathSolver(tls, pWInfo, int16(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+1))
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __32
+ }
+ goto whereBeginError
+__32:
+ ;
+__31:
+ ;
+__24:
+ ;
+ if !((*WhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy == uintptr(0) && (*Sqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ReverseOrder) != uint64(0)) {
+ goto __33
+ }
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = libc.Uint64(libc.Uint64FromInt32(-1))
+__33:
+ ;
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __34
+ }
+ goto whereBeginError
+__34:
+ ;
+ notReady = libc.CplUint64(uint64(0))
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) >= 2 &&
+ pResultSet != uintptr(0) &&
+ 0 == int32(wctrlFlags)&WHERE_AGG_DISTINCT &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_OmitNoopJoin) == U32(0)) {
+ goto __35
+ }
+ notReady = whereOmitNoopJoin(tls, pWInfo, notReady)
+ nTabList = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)
+
+__35:
+ ;
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) >= 2 &&
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_BloomFilter) == U32(0)) {
+ goto __36
+ }
+ whereCheckIfBloomFilterIsUseful(tls, pWInfo)
+__36:
+ ;
+ *(*U32)(unsafe.Pointer((*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse + 208)) += U32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)
+
+ if !(int32(wctrlFlags)&WHERE_ONEPASS_DESIRED != 0) {
+ goto __37
+ }
+ wsFlags = int32((*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pWInfo + 856)).FpWLoop)).FwsFlags)
+ bOnerow = libc.Bool32(wsFlags&WHERE_ONEROW != 0)
+
+ if !(bOnerow != 0 || 0 != int32(wctrlFlags)&WHERE_ONEPASS_MULTIROW &&
+ !(int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pTabList+8)).FpTab)).FeTabType) == TABTYP_VTAB) &&
+ (0 == wsFlags&WHERE_MULTI_OR || int32(wctrlFlags)&WHERE_DUPLICATES_OK != 0)) {
+ goto __38
+ }
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass = func() uint8 {
+ if bOnerow != 0 {
+ return uint8(ONEPASS_SINGLE)
+ }
+ return uint8(ONEPASS_MULTI)
+ }()
+ if !((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pTabList+8)).FpTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) && wsFlags&WHERE_IDX_ONLY != 0) {
+ goto __39
+ }
+ if !(int32(wctrlFlags)&WHERE_ONEPASS_MULTIROW != 0) {
+ goto __40
+ }
+ bFordelete = U8(OPFLAG_FORDELETE)
+__40:
+ ;
+ (*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pWInfo + 856)).FpWLoop)).FwsFlags = U32(wsFlags & libc.CplInt32(WHERE_IDX_ONLY))
+__39:
+ ;
+__38:
+ ;
+__37:
+ ;
+ ii = 0
+ pLevel = pWInfo + 856
+__41:
+ if !(ii < nTabList) {
+ goto __43
+ }
+
+ pTabItem = pTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ pTab = (*SrcItem)(unsafe.Pointer(pTabItem)).FpTab
+ iDb = Xsqlite3SchemaToIndex(tls, db, (*Table)(unsafe.Pointer(pTab)).FpSchema)
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Ephemeral) != U32(0) || int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __44
+ }
+
+ goto __45
+__44:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_VIRTUALTABLE) != U32(0)) {
+ goto __46
+ }
+ pVTab = Xsqlite3GetVTable(tls, db, pTab)
+ iCur = (*SrcItem)(unsafe.Pointer(pTabItem)).FiCursor
+ Xsqlite3VdbeAddOp4(tls, v, OP_VOpen, iCur, 0, 0, pVTab, -11)
+ goto __47
+__46:
+ if !(int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB) {
+ goto __48
+ }
+
+ goto __49
+__48:
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IDX_ONLY) == U32(0) &&
+ int32(wctrlFlags)&WHERE_OR_SUBCLAUSE == 0 ||
+ int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(JT_LTORJ|JT_RIGHT) != 0) {
+ goto __50
+ }
+ op = OP_OpenRead
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass) != ONEPASS_OFF) {
+ goto __52
+ }
+ op = OP_OpenWrite
+ *(*int32)(unsafe.Pointer(pWInfo + 40)) = (*SrcItem)(unsafe.Pointer(pTabItem)).FiCursor
+__52:
+ ;
+ Xsqlite3OpenTable(tls, pParse, (*SrcItem)(unsafe.Pointer(pTabItem)).FiCursor, iDb, pTab, op)
+
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass) == ONEPASS_OFF &&
+ int32((*Table)(unsafe.Pointer(pTab)).FnCol) < int32(uint64(unsafe.Sizeof(Bitmask(0)))*uint64(8)) &&
+ (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_HasGenerated|TF_WithoutRowid) == U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_AUTO_INDEX|WHERE_BLOOMFILTER) == U32(0)) {
+ goto __53
+ }
+
+ b = (*SrcItem)(unsafe.Pointer(pTabItem)).FcolUsed
+ n = 0
+__54:
+ if !(b != 0) {
+ goto __56
+ }
+ goto __55
+__55:
+ b = b >> 1
+ n++
+ goto __54
+ goto __56
+__56:
+ ;
+ Xsqlite3VdbeChangeP4(tls, v, -1, uintptr(int64(n)), -3)
+
+__53:
+ ;
+ Xsqlite3VdbeChangeP5(tls, v, uint16(bFordelete))
+
+ goto __51
+__50:
+ Xsqlite3TableLock(tls, pParse, iDb, (*Table)(unsafe.Pointer(pTab)).Ftnum, uint8(0), (*Table)(unsafe.Pointer(pTab)).FzName)
+__51:
+ ;
+__49:
+ ;
+__47:
+ ;
+__45:
+ ;
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_INDEXED) != 0) {
+ goto __57
+ }
+ pIx = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ op1 = OP_OpenRead
+
+ if !(!((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) && int32(*(*uint16)(unsafe.Pointer(pIx + 100))&0x3>>0) == SQLITE_IDXTYPE_PRIMARYKEY &&
+ int32(wctrlFlags)&WHERE_OR_SUBCLAUSE != 0) {
+ goto __58
+ }
+
+ iIndexCur = (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur
+ op1 = 0
+ goto __59
+__58:
+ if !(int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass) != ONEPASS_OFF) {
+ goto __60
+ }
+ pJ = (*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FpIndex
+ iIndexCur = iAuxArg
+
+__62:
+ if !(pJ != 0 && pJ != pIx) {
+ goto __63
+ }
+ iIndexCur++
+ pJ = (*Index)(unsafe.Pointer(pJ)).FpNext
+ goto __62
+__63:
+ ;
+ op1 = OP_OpenWrite
+ *(*int32)(unsafe.Pointer(pWInfo + 40 + 1*4)) = iIndexCur
+ goto __61
+__60:
+ if !(iAuxArg != 0 && int32(wctrlFlags)&WHERE_OR_SUBCLAUSE != 0) {
+ goto __64
+ }
+ iIndexCur = iAuxArg
+ op1 = OP_ReopenIdx
+ goto __65
+__64:
+ iIndexCur = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pIx + 100))&0x800>>11)) != 0 && (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags&U32(SQLITE_IndexedExpr) == U32(0)) {
+ goto __66
+ }
+ whereAddIndexedExpr(tls, pParse, pIx, iIndexCur, pTabItem)
+__66:
+ ;
+__65:
+ ;
+__61:
+ ;
+__59:
+ ;
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur = iIndexCur
+
+ if !(op1 != 0) {
+ goto __67
+ }
+ Xsqlite3VdbeAddOp3(tls, v, op1, iIndexCur, int32((*Index)(unsafe.Pointer(pIx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIx)
+ if !((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_CONSTRAINT) != U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_COLUMN_RANGE|WHERE_SKIPSCAN) == U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_BIGNULL_SORT) == U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_SEEKSCAN) == U32(0) &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&WHERE_ORDERBY_MIN == 0 &&
+ int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct) != WHERE_DISTINCT_ORDERED) {
+ goto __68
+ }
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_SEEKEQ))
+__68:
+ ;
+__67:
+ ;
+__57:
+ ;
+ if !(iDb >= 0) {
+ goto __69
+ }
+ Xsqlite3CodeVerifySchema(tls, pParse, iDb)
+__69:
+ ;
+ if !(int32((*SrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&JT_RIGHT != 0 &&
+ libc.AssignPtrUintptr(pLevel+48, Xsqlite3WhereMalloc(tls, pWInfo, uint64(unsafe.Sizeof(WhereRightJoin{})))) != uintptr(0)) {
+ goto __70
+ }
+ pRJ = (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ
+ (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregBloom = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Blob, 65536, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregBloom)
+ (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregReturn = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregReturn)
+
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ goto __71
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch, 1)
+ pInfo = Xsqlite3KeyInfoAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, 1, 0)
+ if !(pInfo != 0) {
+ goto __73
+ }
+ *(*uintptr)(unsafe.Pointer(pInfo + 32)) = uintptr(0)
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pInfo)).FaSortFlags)) = U8(0)
+ Xsqlite3VdbeAppendP4(tls, v, pInfo, -8)
+__73:
+ ;
+ goto __72
+__71:
+ pPk = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FiMatch, int32((*Index)(unsafe.Pointer(pPk)).FnKeyCol))
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pPk)
+__72:
+ ;
+ *(*U32)(unsafe.Pointer(pLoop + 56)) &= libc.Uint32FromInt32(libc.CplInt32(WHERE_IDX_ONLY))
+
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8(0)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = U8(WHERE_DISTINCT_UNORDERED)
+__70:
+ ;
+ goto __42
+__42:
+ ii++
+ pLevel += 104
+ goto __41
+ goto __43
+__43:
+ ;
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FiTop = Xsqlite3VdbeCurrentAddr(tls, v)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __74
+ }
+ goto whereBeginError
+__74:
+ ;
+ ii = 0
+__75:
+ if !(ii < nTabList) {
+ goto __77
+ }
+ if !((*Parse)(unsafe.Pointer(pParse)).FnErr != 0) {
+ goto __78
+ }
+ goto whereBeginError
+__78:
+ ;
+ pLevel = pWInfo + 856 + uintptr(ii)*104
+ wsFlags1 = int32((*WhereLoop1)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags)
+ pSrc = pTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x10>>4)) != 0) {
+ goto __79
+ }
+ if !(uint32(int32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x8>>3)) != 0) {
+ goto __80
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*SrcItem)(unsafe.Pointer(pSrc)).FregReturn, (*SrcItem)(unsafe.Pointer(pSrc)).FaddrFillSub)
+ goto __81
+__80:
+ iOnce = Xsqlite3VdbeAddOp0(tls, v, OP_Once)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*SrcItem)(unsafe.Pointer(pSrc)).FregReturn, (*SrcItem)(unsafe.Pointer(pSrc)).FaddrFillSub)
+ Xsqlite3VdbeJumpHere(tls, v, iOnce)
+__81:
+ ;
+__79:
+ ;
+ if !(wsFlags1&(WHERE_AUTO_INDEX|WHERE_BLOOMFILTER) != 0) {
+ goto __82
+ }
+ if !(wsFlags1&WHERE_AUTO_INDEX != 0) {
+ goto __83
+ }
+ constructAutomaticIndex(tls, pParse, pWInfo+104,
+ pTabList+8+uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104, notReady, pLevel)
+ goto __84
+__83:
+ sqlite3ConstructBloomFilter(tls, pWInfo, ii, pLevel, notReady)
+__84:
+ ;
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __85
+ }
+ goto whereBeginError
+__85:
+ ;
+__82:
+ ;
+ addrExplain = Xsqlite3WhereExplainOneScan(tls,
+ pParse, pTabList, pLevel, wctrlFlags)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBody = Xsqlite3VdbeCurrentAddr(tls, v)
+ notReady = Xsqlite3WhereCodeOneLoopStart(tls, pParse, v, pWInfo, ii, pLevel, notReady)
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FiContinue = (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont
+ if !(wsFlags1&WHERE_MULTI_OR == 0 && int32(wctrlFlags)&WHERE_OR_SUBCLAUSE == 0) {
+ goto __86
+ }
+ _ = addrExplain
+__86:
+ ;
+ goto __76
+__76:
+ ii++
+ goto __75
+ goto __77
+__77:
+ ;
+ (*WhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = Xsqlite3VdbeCurrentAddr(tls, v)
+ return pWInfo
+
+whereBeginError:
+ if !(pWInfo != 0) {
+ goto __87
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop = U32((*WhereInfo)(unsafe.Pointer(pWInfo)).FsavedNQueryLoop)
+ whereInfoFree(tls, db, pWInfo)
+__87:
+ ;
+ return uintptr(0)
+}
+
+// Generate the end of the WHERE loop. See comments on
+// sqlite3WhereBegin() for additional information.
+func Xsqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) {
+ var pParse uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpParse
+ var v uintptr = (*Parse)(unsafe.Pointer(pParse)).FpVdbe
+ var i int32
+ var pLevel uintptr
+ var pLoop uintptr
+ var pTabList uintptr = (*WhereInfo)(unsafe.Pointer(pWInfo)).FpTabList
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var iEnd int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ var nRJ int32 = 0
+
+ for i = int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) - 1; i >= 0; i-- {
+ var addr int32
+ pLevel = pWInfo + 856 + uintptr(i)*104
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ != 0 {
+ var pRJ uintptr = (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont)
+ (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont = 0
+ (*WhereRightJoin)(unsafe.Pointer(pRJ)).FendSubrtn = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Return, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FregReturn, (*WhereRightJoin)(unsafe.Pointer(pRJ)).FaddrSubrtn, 1)
+
+ nRJ++
+ }
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+ if int32((*WhereLevel)(unsafe.Pointer(pLevel)).Fop) != OP_Noop {
+ var addrSeek int32 = 0
+ var pIdx uintptr
+ var n int32
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct) == WHERE_DISTINCT_ORDERED &&
+ i == int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-1 &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_INDEXED) != U32(0) &&
+ uint32(int32(*(*uint16)(unsafe.Pointer(libc.AssignUintptr(&pIdx, *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))) + 100))&0x80>>7)) != 0 &&
+ libc.AssignInt32(&n, int32(*(*U16)(unsafe.Pointer(pLoop + 24 + 6)))) > 0 &&
+ int32(*(*LogEst)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FaiRowLogEst + uintptr(n)*2))) >= 36 {
+ var r1 int32 = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ var j int32
+ var op int32
+ for j = 0; j < n; j++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, j, r1+j)
+ }
+ *(*int32)(unsafe.Pointer(pParse + 56)) += n + 1
+ if int32((*WhereLevel)(unsafe.Pointer(pLevel)).Fop) == OP_Prev {
+ op = OP_SeekLT
+ } else {
+ op = OP_SeekGT
+ }
+ addrSeek = Xsqlite3VdbeAddOp4Int(tls, v, op, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, 0, r1, n)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 1, (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2)
+ }
+
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, int32((*WhereLevel)(unsafe.Pointer(pLevel)).Fop), (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1, (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2, int32((*WhereLevel)(unsafe.Pointer(pLevel)).Fp3))
+ Xsqlite3VdbeChangeP5(tls, v, uint16((*WhereLevel)(unsafe.Pointer(pLevel)).Fp5))
+
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FregBignull != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBignull)
+ Xsqlite3VdbeAddOp2(tls, v, OP_DecrJumpZero, (*WhereLevel)(unsafe.Pointer(pLevel)).FregBignull, (*WhereLevel)(unsafe.Pointer(pLevel)).Fp2-1)
+
+ }
+ if addrSeek != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrSeek)
+ }
+ } else if (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont != 0 {
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrCont)
+ }
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_ABLE) != U32(0) && *(*int32)(unsafe.Pointer(pLevel + 72)) > 0 {
+ var pIn uintptr
+ var j int32
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrNxt)
+ j = *(*int32)(unsafe.Pointer(pLevel + 72))
+ pIn = *(*uintptr)(unsafe.Pointer(pLevel + 72 + 8)) + uintptr(j-1)*20
+ __1:
+ if !(j > 0) {
+ goto __3
+ }
+ {
+ Xsqlite3VdbeJumpHere(tls, v, *(*int32)(unsafe.Pointer(pIn + 4))+1)
+ if int32(*(*U8)(unsafe.Pointer(pIn + 16))) != OP_Noop {
+ if *(*int32)(unsafe.Pointer(pIn + 12)) != 0 {
+ var bEarlyOut int32 = libc.Bool32((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_VIRTUALTABLE) == U32(0) &&
+ (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_IN_EARLYOUT) != U32(0))
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_IfNotOpen, *(*int32)(unsafe.Pointer(pIn)),
+ Xsqlite3VdbeCurrentAddr(tls, v)+2+bEarlyOut)
+
+ }
+ if bEarlyOut != 0 {
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_IfNoHope, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur,
+ Xsqlite3VdbeCurrentAddr(tls, v)+2,
+ *(*int32)(unsafe.Pointer(pIn + 8)), *(*int32)(unsafe.Pointer(pIn + 12)))
+
+ Xsqlite3VdbeJumpHere(tls, v, *(*int32)(unsafe.Pointer(pIn + 4))+1)
+ }
+ }
+ Xsqlite3VdbeAddOp2(tls, v, int32(*(*U8)(unsafe.Pointer(pIn + 16))), *(*int32)(unsafe.Pointer(pIn)), *(*int32)(unsafe.Pointer(pIn + 4)))
+
+ }
+ Xsqlite3VdbeJumpHere(tls, v, *(*int32)(unsafe.Pointer(pIn + 4))-1)
+
+ }
+ goto __2
+ __2:
+ j--
+ pIn -= 20
+ goto __1
+ goto __3
+ __3:
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk)
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Return, (*WhereRightJoin)(unsafe.Pointer((*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ)).FregReturn, 0, 1)
+
+ }
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip != 0 {
+ Xsqlite3VdbeGoto(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip)
+
+ Xsqlite3VdbeJumpHere(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip)
+ Xsqlite3VdbeJumpHere(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip-2)
+ }
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin != 0 {
+ var ws int32 = int32((*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags)
+ addr = Xsqlite3VdbeAddOp1(tls, v, OP_IfPos, (*WhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin)
+
+ if ws&WHERE_IDX_ONLY == 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur)
+ }
+ if ws&WHERE_INDEXED != 0 ||
+ ws&WHERE_MULTI_OR != 0 && *(*uintptr)(unsafe.Pointer(pLevel + 72)) != 0 {
+ if ws&WHERE_MULTI_OR != 0 {
+ var pIx uintptr = *(*uintptr)(unsafe.Pointer(pLevel + 72))
+ var iDb int32 = Xsqlite3SchemaToIndex(tls, db, (*Index)(unsafe.Pointer(pIx)).FpSchema)
+ Xsqlite3VdbeAddOp3(tls, v, OP_ReopenIdx, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur, int32((*Index)(unsafe.Pointer(pIx)).Ftnum), iDb)
+ Xsqlite3VdbeSetP4KeyInfo(tls, pParse, pIx)
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_NullRow, (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur)
+ }
+ if int32((*WhereLevel)(unsafe.Pointer(pLevel)).Fop) == OP_Return {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*WhereLevel)(unsafe.Pointer(pLevel)).Fp1, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrFirst)
+ } else {
+ Xsqlite3VdbeGoto(tls, v, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrFirst)
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ }
+
+ }
+
+ i = 0
+ pLevel = pWInfo + 856
+__4:
+ if !(i < int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) {
+ goto __6
+ }
+ {
+ var k int32
+ var last int32
+ var pOp uintptr
+ var pLastOp uintptr
+ var pIdx uintptr = uintptr(0)
+ var pTabItem uintptr = pTabList + 8 + uintptr((*WhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104
+ var pTab uintptr = (*SrcItem)(unsafe.Pointer(pTabItem)).FpTab
+
+ pLoop = (*WhereLevel)(unsafe.Pointer(pLevel)).FpWLoop
+
+ if (*WhereLevel)(unsafe.Pointer(pLevel)).FpRJ != 0 {
+ Xsqlite3WhereRightJoinLoop(tls, pWInfo, i, pLevel)
+ goto __5
+ }
+
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0 {
+ translateColumnToCopy(tls, pParse, (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur,
+ (*SrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0)
+ goto __5
+ }
+
+ if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_INDEXED|WHERE_IDX_ONLY) != 0 {
+ pIdx = *(*uintptr)(unsafe.Pointer(pLoop + 24 + 8))
+ } else if (*WhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&U32(WHERE_MULTI_OR) != 0 {
+ pIdx = *(*uintptr)(unsafe.Pointer(pLevel + 72))
+ }
+ if pIdx != 0 &&
+ !(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ if int32((*WhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass) == ONEPASS_OFF || !((*Table)(unsafe.Pointer((*Index)(unsafe.Pointer(pIdx)).FpTable)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ last = iEnd
+ } else {
+ last = (*WhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 {
+ var p uintptr = (*Parse)(unsafe.Pointer(pParse)).FpIdxEpr
+ for p != 0 {
+ if (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur == (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur {
+ (*IndexedExpr)(unsafe.Pointer(p)).FiDataCur = -1
+ (*IndexedExpr)(unsafe.Pointer(p)).FiIdxCur = -1
+ }
+ p = (*IndexedExpr)(unsafe.Pointer(p)).FpIENext
+ }
+ }
+ k = (*WhereLevel)(unsafe.Pointer(pLevel)).FaddrBody + 1
+ pOp = Xsqlite3VdbeGetOp(tls, v, k)
+ pLastOp = pOp + uintptr(last-k)*24
+
+ for __ccgo := true; __ccgo; __ccgo = libc.PreIncUintptr(&pOp, 24) < pLastOp {
+ if (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 != (*WhereLevel)(unsafe.Pointer(pLevel)).FiTabCur {
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column ||
+ int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Offset {
+ var x int32 = (*VdbeOp)(unsafe.Pointer(pOp)).Fp2
+
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Offset {
+ } else if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0)) {
+ var pPk uintptr = Xsqlite3PrimaryKeyIndex(tls, pTab)
+ x = int32(*(*I16)(unsafe.Pointer((*Index)(unsafe.Pointer(pPk)).FaiColumn + uintptr(x)*2)))
+
+ } else {
+ x = int32(Xsqlite3StorageColumnToTable(tls, pTab, int16(x)))
+ }
+ x = int32(Xsqlite3TableColumnToIndex(tls, pIdx, int16(x)))
+ if x >= 0 {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp2 = x
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur
+
+ } else {
+ }
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Rowid {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fopcode = U8(OP_IdxRowid)
+
+ } else if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_IfNullRow {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = (*WhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur
+
+ }
+ }
+ }
+
+ }
+ goto __5
+__5:
+ i++
+ pLevel += 104
+ goto __4
+ goto __6
+__6:
+ ;
+ Xsqlite3VdbeResolveLabel(tls, v, (*WhereInfo)(unsafe.Pointer(pWInfo)).FiBreak)
+
+ (*Parse)(unsafe.Pointer(pParse)).FnQueryLoop = U32((*WhereInfo)(unsafe.Pointer(pWInfo)).FsavedNQueryLoop)
+ whereInfoFree(tls, db, pWInfo)
+ *(*U8)(unsafe.Pointer(pParse + 38)) -= U8(nRJ)
+ return
+}
+
+func row_numberStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(I64(0))))
+ if p != 0 {
+ *(*I64)(unsafe.Pointer(p))++
+ }
+ _ = nArg
+ _ = apArg
+}
+
+func row_numberValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(I64(0))))
+ Xsqlite3_result_int64(tls, pCtx, func() int64 {
+ if p != 0 {
+ return *(*I64)(unsafe.Pointer(p))
+ }
+ return int64(0)
+ }())
+}
+
+// Context object type used by rank(), dense_rank(), percent_rank() and
+// cume_dist().
+type CallCount = struct {
+ FnValue I64
+ FnStep I64
+ FnTotal I64
+}
+
+func dense_rankStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnStep = int64(1)
+ }
+ _ = nArg
+ _ = apArg
+}
+
+func dense_rankValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ if (*CallCount)(unsafe.Pointer(p)).FnStep != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnValue++
+ (*CallCount)(unsafe.Pointer(p)).FnStep = int64(0)
+ }
+ Xsqlite3_result_int64(tls, pCtx, (*CallCount)(unsafe.Pointer(p)).FnValue)
+ }
+}
+
+// Implementation of built-in window function nth_value(). This
+// implementation is used in "slow mode" only - when the EXCLUDE clause
+// is not set to the default value "NO OTHERS".
+type NthValueCtx = struct {
+ FnStep I64
+ FpValue uintptr
+}
+
+func nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ var fVal float64
+ var iVal I64
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NthValueCtx{})))
+ if !(p != 0) {
+ goto __1
+ }
+ switch Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) {
+ case SQLITE_INTEGER:
+ goto __3
+ case SQLITE_FLOAT:
+ goto __4
+ default:
+ goto __5
+ }
+ goto __2
+__3:
+ iVal = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8)))
+ goto __2
+__4:
+ fVal = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8)))
+ if !(float64(I64(fVal)) != fVal) {
+ goto __6
+ }
+ goto error_out
+__6:
+ ;
+ iVal = I64(fVal)
+ goto __2
+
+__5:
+ goto error_out
+__2:
+ ;
+ if !(iVal <= int64(0)) {
+ goto __7
+ }
+ goto error_out
+__7:
+ ;
+ (*NthValueCtx)(unsafe.Pointer(p)).FnStep++
+ if !(iVal == (*NthValueCtx)(unsafe.Pointer(p)).FnStep) {
+ goto __8
+ }
+ (*NthValueCtx)(unsafe.Pointer(p)).FpValue = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ if !!(int32((*NthValueCtx)(unsafe.Pointer(p)).FpValue) != 0) {
+ goto __9
+ }
+ Xsqlite3_result_error_nomem(tls, pCtx)
+__9:
+ ;
+__8:
+ ;
+__1:
+ ;
+ _ = nArg
+ _ = apArg
+ return
+
+error_out:
+ Xsqlite3_result_error(tls,
+ pCtx, ts+22518, -1)
+}
+
+func nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, 0)
+ if p != 0 && (*NthValueCtx)(unsafe.Pointer(p)).FpValue != 0 {
+ Xsqlite3_result_value(tls, pCtx, (*NthValueCtx)(unsafe.Pointer(p)).FpValue)
+ Xsqlite3_value_free(tls, (*NthValueCtx)(unsafe.Pointer(p)).FpValue)
+ (*NthValueCtx)(unsafe.Pointer(p)).FpValue = uintptr(0)
+ }
+}
+
+func first_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NthValueCtx{})))
+ if p != 0 && (*NthValueCtx)(unsafe.Pointer(p)).FpValue == uintptr(0) {
+ (*NthValueCtx)(unsafe.Pointer(p)).FpValue = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ if !(int32((*NthValueCtx)(unsafe.Pointer(p)).FpValue) != 0) {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ }
+ }
+ _ = nArg
+ _ = apArg
+}
+
+func first_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NthValueCtx{})))
+ if p != 0 && (*NthValueCtx)(unsafe.Pointer(p)).FpValue != 0 {
+ Xsqlite3_result_value(tls, pCtx, (*NthValueCtx)(unsafe.Pointer(p)).FpValue)
+ Xsqlite3_value_free(tls, (*NthValueCtx)(unsafe.Pointer(p)).FpValue)
+ (*NthValueCtx)(unsafe.Pointer(p)).FpValue = uintptr(0)
+ }
+}
+
+func rankStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnStep++
+ if (*CallCount)(unsafe.Pointer(p)).FnValue == int64(0) {
+ (*CallCount)(unsafe.Pointer(p)).FnValue = (*CallCount)(unsafe.Pointer(p)).FnStep
+ }
+ }
+ _ = nArg
+ _ = apArg
+}
+
+func rankValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ Xsqlite3_result_int64(tls, pCtx, (*CallCount)(unsafe.Pointer(p)).FnValue)
+ (*CallCount)(unsafe.Pointer(p)).FnValue = int64(0)
+ }
+}
+
+func percent_rankStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnTotal++
+ }
+}
+
+func percent_rankInvFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ (*CallCount)(unsafe.Pointer(p)).FnStep++
+}
+
+func percent_rankValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnValue = (*CallCount)(unsafe.Pointer(p)).FnStep
+ if (*CallCount)(unsafe.Pointer(p)).FnTotal > int64(1) {
+ var r float64 = float64((*CallCount)(unsafe.Pointer(p)).FnValue) / float64((*CallCount)(unsafe.Pointer(p)).FnTotal-int64(1))
+ Xsqlite3_result_double(tls, pCtx, r)
+ } else {
+ Xsqlite3_result_double(tls, pCtx, 0.0)
+ }
+ }
+}
+
+func cume_distStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ if p != 0 {
+ (*CallCount)(unsafe.Pointer(p)).FnTotal++
+ }
+}
+
+func cume_distInvFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(CallCount{})))
+ (*CallCount)(unsafe.Pointer(p)).FnStep++
+}
+
+func cume_distValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, 0)
+ if p != 0 {
+ var r float64 = float64((*CallCount)(unsafe.Pointer(p)).FnStep) / float64((*CallCount)(unsafe.Pointer(p)).FnTotal)
+ Xsqlite3_result_double(tls, pCtx, r)
+ }
+}
+
+// Context object for ntile() window function.
+type NtileCtx = struct {
+ FnTotal I64
+ FnParam I64
+ FiRow I64
+}
+
+func ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NtileCtx{})))
+ if p != 0 {
+ if (*NtileCtx)(unsafe.Pointer(p)).FnTotal == int64(0) {
+ (*NtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ if (*NtileCtx)(unsafe.Pointer(p)).FnParam <= int64(0) {
+ Xsqlite3_result_error(tls,
+ pCtx, ts+22574, -1)
+ }
+ }
+ (*NtileCtx)(unsafe.Pointer(p)).FnTotal++
+ }
+}
+
+func ntileInvFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NtileCtx{})))
+ (*NtileCtx)(unsafe.Pointer(p)).FiRow++
+}
+
+func ntileValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(NtileCtx{})))
+ if p != 0 && (*NtileCtx)(unsafe.Pointer(p)).FnParam > int64(0) {
+ var nSize int32 = int32((*NtileCtx)(unsafe.Pointer(p)).FnTotal / (*NtileCtx)(unsafe.Pointer(p)).FnParam)
+ if nSize == 0 {
+ Xsqlite3_result_int64(tls, pCtx, (*NtileCtx)(unsafe.Pointer(p)).FiRow+int64(1))
+ } else {
+ var nLarge I64 = (*NtileCtx)(unsafe.Pointer(p)).FnTotal - (*NtileCtx)(unsafe.Pointer(p)).FnParam*I64(nSize)
+ var iSmall I64 = nLarge * I64(nSize+1)
+ var iRow I64 = (*NtileCtx)(unsafe.Pointer(p)).FiRow
+
+ if iRow < iSmall {
+ Xsqlite3_result_int64(tls, pCtx, int64(1)+iRow/I64(nSize+1))
+ } else {
+ Xsqlite3_result_int64(tls, pCtx, int64(1)+nLarge+(iRow-iSmall)/I64(nSize))
+ }
+ }
+ }
+}
+
+// Context object for last_value() window function.
+type LastValueCtx = struct {
+ FpVal uintptr
+ FnVal int32
+ F__ccgo_pad1 [4]byte
+}
+
+func last_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(LastValueCtx{})))
+ if p != 0 {
+ Xsqlite3_value_free(tls, (*LastValueCtx)(unsafe.Pointer(p)).FpVal)
+ (*LastValueCtx)(unsafe.Pointer(p)).FpVal = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ if (*LastValueCtx)(unsafe.Pointer(p)).FpVal == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ } else {
+ (*LastValueCtx)(unsafe.Pointer(p)).FnVal++
+ }
+ }
+}
+
+func last_valueInvFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var p uintptr
+ _ = nArg
+ _ = apArg
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(LastValueCtx{})))
+ if p != 0 {
+ (*LastValueCtx)(unsafe.Pointer(p)).FnVal--
+ if (*LastValueCtx)(unsafe.Pointer(p)).FnVal == 0 {
+ Xsqlite3_value_free(tls, (*LastValueCtx)(unsafe.Pointer(p)).FpVal)
+ (*LastValueCtx)(unsafe.Pointer(p)).FpVal = uintptr(0)
+ }
+ }
+}
+
+func last_valueValueFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, 0)
+ if p != 0 && (*LastValueCtx)(unsafe.Pointer(p)).FpVal != 0 {
+ Xsqlite3_result_value(tls, pCtx, (*LastValueCtx)(unsafe.Pointer(p)).FpVal)
+ }
+}
+
+func last_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) {
+ var p uintptr
+ p = Xsqlite3_aggregate_context(tls, pCtx, int32(unsafe.Sizeof(LastValueCtx{})))
+ if p != 0 && (*LastValueCtx)(unsafe.Pointer(p)).FpVal != 0 {
+ Xsqlite3_result_value(tls, pCtx, (*LastValueCtx)(unsafe.Pointer(p)).FpVal)
+ Xsqlite3_value_free(tls, (*LastValueCtx)(unsafe.Pointer(p)).FpVal)
+ (*LastValueCtx)(unsafe.Pointer(p)).FpVal = uintptr(0)
+ }
+}
+
+var row_numberName = *(*[11]int8)(unsafe.Pointer(ts + 22619))
+var dense_rankName = *(*[11]int8)(unsafe.Pointer(ts + 22630))
+var rankName = *(*[5]int8)(unsafe.Pointer(ts + 22641))
+var percent_rankName = *(*[13]int8)(unsafe.Pointer(ts + 22646))
+var cume_distName = *(*[10]int8)(unsafe.Pointer(ts + 22659))
+var ntileName = *(*[6]int8)(unsafe.Pointer(ts + 22669))
+var last_valueName = *(*[11]int8)(unsafe.Pointer(ts + 22675))
+var nth_valueName = *(*[10]int8)(unsafe.Pointer(ts + 22686))
+var first_valueName = *(*[12]int8)(unsafe.Pointer(ts + 22696))
+var leadName = *(*[5]int8)(unsafe.Pointer(ts + 22708))
+var lagName = *(*[4]int8)(unsafe.Pointer(ts + 22713))
+
+func noopStepFunc(tls *libc.TLS, p uintptr, n int32, a uintptr) {
+ _ = p
+ _ = n
+ _ = a
+
+}
+
+func noopValueFunc(tls *libc.TLS, p uintptr) {
+ _ = p
+}
+
+// Register those built-in window functions that are not also aggregates.
+func Xsqlite3WindowFunctions(tls *libc.TLS) {
+ Xsqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&aWindowFuncs)), int32(uint64(unsafe.Sizeof(aWindowFuncs))/uint64(unsafe.Sizeof(FuncDef{}))))
+}
+
+var aWindowFuncs = [15]FuncDef{
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0},
+ {FnArg: int8(3), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | SQLITE_FUNC_WINDOW | 0), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: 0}}
+
+func windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr
+ for p = pList; p != 0; p = (*Window)(unsafe.Pointer(p)).FpNextWin {
+ if Xsqlite3StrICmp(tls, (*Window)(unsafe.Pointer(p)).FzName, zName) == 0 {
+ break
+ }
+ }
+ if p == uintptr(0) {
+ Xsqlite3ErrorMsg(tls, pParse, ts+22717, libc.VaList(bp, zName))
+ }
+ return p
+}
+
+// This function is called immediately after resolving the function name
+// for a window function within a SELECT statement. Argument pList is a
+// linked list of WINDOW definitions for the current SELECT statement.
+// Argument pFunc is the function definition just resolved and pWin
+// is the Window object representing the associated OVER clause. This
+// function updates the contents of pWin as follows:
+//
+// - If the OVER clause refered to a named window (as in "max(x) OVER win"),
+// search list pList for a matching WINDOW definition, and update pWin
+// accordingly. If no such WINDOW clause can be found, leave an error
+// in pParse.
+//
+// - If the function is a built-in window function that requires the
+// window to be coerced (see "BUILT-IN WINDOW FUNCTIONS" at the top
+// of this file), pWin is updated here.
+func Xsqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uintptr, pFunc uintptr) {
+ bp := tls.Alloc(192)
+ defer tls.Free(192)
+
+ if (*Window)(unsafe.Pointer(pWin)).FzName != 0 && int32((*Window)(unsafe.Pointer(pWin)).FeFrmType) == 0 {
+ var p uintptr = windowFind(tls, pParse, pList, (*Window)(unsafe.Pointer(pWin)).FzName)
+ if p == uintptr(0) {
+ return
+ }
+ (*Window)(unsafe.Pointer(pWin)).FpPartition = Xsqlite3ExprListDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Window)(unsafe.Pointer(p)).FpPartition, 0)
+ (*Window)(unsafe.Pointer(pWin)).FpOrderBy = Xsqlite3ExprListDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Window)(unsafe.Pointer(p)).FpOrderBy, 0)
+ (*Window)(unsafe.Pointer(pWin)).FpStart = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Window)(unsafe.Pointer(p)).FpStart, 0)
+ (*Window)(unsafe.Pointer(pWin)).FpEnd = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Window)(unsafe.Pointer(p)).FpEnd, 0)
+ (*Window)(unsafe.Pointer(pWin)).FeStart = (*Window)(unsafe.Pointer(p)).FeStart
+ (*Window)(unsafe.Pointer(pWin)).FeEnd = (*Window)(unsafe.Pointer(p)).FeEnd
+ (*Window)(unsafe.Pointer(pWin)).FeFrmType = (*Window)(unsafe.Pointer(p)).FeFrmType
+ (*Window)(unsafe.Pointer(pWin)).FeExclude = (*Window)(unsafe.Pointer(p)).FeExclude
+ } else {
+ Xsqlite3WindowChain(tls, pParse, pWin, pList)
+ }
+ if int32((*Window)(unsafe.Pointer(pWin)).FeFrmType) == TK_RANGE &&
+ ((*Window)(unsafe.Pointer(pWin)).FpStart != 0 || (*Window)(unsafe.Pointer(pWin)).FpEnd != 0) &&
+ ((*Window)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != 1) {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+22736, 0)
+ } else if (*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_WINDOW) != 0 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if (*Window)(unsafe.Pointer(pWin)).FpFilter != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+22807, 0)
+ } else {
+ *(*[8]WindowUpdate)(unsafe.Pointer(bp)) = [8]WindowUpdate{
+ {FzFunc: uintptr(unsafe.Pointer(&row_numberName)), FeFrmType: TK_ROWS, FeStart: TK_UNBOUNDED, FeEnd: TK_CURRENT},
+ {FzFunc: uintptr(unsafe.Pointer(&dense_rankName)), FeFrmType: TK_RANGE, FeStart: TK_UNBOUNDED, FeEnd: TK_CURRENT},
+ {FzFunc: uintptr(unsafe.Pointer(&rankName)), FeFrmType: TK_RANGE, FeStart: TK_UNBOUNDED, FeEnd: TK_CURRENT},
+ {FzFunc: uintptr(unsafe.Pointer(&percent_rankName)), FeFrmType: TK_GROUPS, FeStart: TK_CURRENT, FeEnd: TK_UNBOUNDED},
+ {FzFunc: uintptr(unsafe.Pointer(&cume_distName)), FeFrmType: TK_GROUPS, FeStart: TK_FOLLOWING, FeEnd: TK_UNBOUNDED},
+ {FzFunc: uintptr(unsafe.Pointer(&ntileName)), FeFrmType: TK_ROWS, FeStart: TK_CURRENT, FeEnd: TK_UNBOUNDED},
+ {FzFunc: uintptr(unsafe.Pointer(&leadName)), FeFrmType: TK_ROWS, FeStart: TK_UNBOUNDED, FeEnd: TK_UNBOUNDED},
+ {FzFunc: uintptr(unsafe.Pointer(&lagName)), FeFrmType: TK_ROWS, FeStart: TK_UNBOUNDED, FeEnd: TK_CURRENT},
+ }
+ var i int32
+ for i = 0; i < int32(uint64(unsafe.Sizeof([8]WindowUpdate{}))/uint64(unsafe.Sizeof(WindowUpdate{}))); i++ {
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == (*WindowUpdate)(unsafe.Pointer(bp+uintptr(i)*24)).FzFunc {
+ Xsqlite3ExprDelete(tls, db, (*Window)(unsafe.Pointer(pWin)).FpStart)
+ Xsqlite3ExprDelete(tls, db, (*Window)(unsafe.Pointer(pWin)).FpEnd)
+ (*Window)(unsafe.Pointer(pWin)).FpEnd = libc.AssignPtrUintptr(pWin+40, uintptr(0))
+ (*Window)(unsafe.Pointer(pWin)).FeFrmType = U8((*WindowUpdate)(unsafe.Pointer(bp + uintptr(i)*24)).FeFrmType)
+ (*Window)(unsafe.Pointer(pWin)).FeStart = U8((*WindowUpdate)(unsafe.Pointer(bp + uintptr(i)*24)).FeStart)
+ (*Window)(unsafe.Pointer(pWin)).FeEnd = U8((*WindowUpdate)(unsafe.Pointer(bp + uintptr(i)*24)).FeEnd)
+ (*Window)(unsafe.Pointer(pWin)).FeExclude = U8(0)
+ if int32((*Window)(unsafe.Pointer(pWin)).FeStart) == TK_FOLLOWING {
+ (*Window)(unsafe.Pointer(pWin)).FpStart = Xsqlite3Expr(tls, db, TK_INTEGER, ts+8341)
+ }
+ break
+ }
+ }
+ }
+ }
+ (*Window)(unsafe.Pointer(pWin)).FpWFunc = pFunc
+}
+
+type WindowUpdate = struct {
+ FzFunc uintptr
+ FeFrmType int32
+ FeStart int32
+ FeEnd int32
+ F__ccgo_pad1 [4]byte
+}
+
+// Context object passed through sqlite3WalkExprList() to
+// selectWindowRewriteExprCb() by selectWindowRewriteEList().
+type WindowRewrite = WindowRewrite1
+
+func selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pParse uintptr = (*Walker)(unsafe.Pointer(pWalker)).FpParse
+
+ if (*WindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) != TK_COLUMN {
+ return WRC_Continue
+ } else {
+ var nSrc int32 = (*SrcList)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc
+ var i int32
+ for i = 0; i < nSrc; i++ {
+ if (*Expr)(unsafe.Pointer(pExpr)).FiTable == (*SrcItem)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpSrc+8+uintptr(i)*104)).FiCursor {
+ break
+ }
+ }
+ if i == nSrc {
+ return WRC_Continue
+ }
+ }
+ }
+
+ switch int32((*Expr)(unsafe.Pointer(pExpr)).Fop) {
+ case TK_FUNCTION:
+ if !((*Expr)(unsafe.Pointer(pExpr)).Fflags&U32(EP_WinFunc) != U32(0)) {
+ break
+ } else {
+ var pWin uintptr
+ for pWin = (*WindowRewrite1)(unsafe.Pointer(p)).FpWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ if *(*uintptr)(unsafe.Pointer(pExpr + 64)) == pWin {
+ return WRC_Prune
+ }
+ }
+ }
+ fallthrough
+
+ case TK_AGG_FUNCTION:
+ fallthrough
+ case TK_COLUMN:
+ {
+ var iCol int32 = -1
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return WRC_Abort
+ }
+ if (*WindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 {
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr; i++ {
+ if 0 == Xsqlite3ExprCompare(tls, uintptr(0), (*ExprList_item)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpSub+8+uintptr(i)*32)).FpExpr, pExpr, -1) {
+ iCol = i
+ break
+ }
+ }
+ }
+ if iCol < 0 {
+ var pDup uintptr = Xsqlite3ExprDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)
+ if pDup != 0 && int32((*Expr)(unsafe.Pointer(pDup)).Fop) == TK_AGG_FUNCTION {
+ (*Expr)(unsafe.Pointer(pDup)).Fop = U8(TK_FUNCTION)
+ }
+ (*WindowRewrite1)(unsafe.Pointer(p)).FpSub = Xsqlite3ExprListAppend(tls, pParse, (*WindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup)
+ }
+ if (*WindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 {
+ var f int32 = int32((*Expr)(unsafe.Pointer(pExpr)).Fflags & U32(EP_Collate))
+
+ *(*U32)(unsafe.Pointer(pExpr + 4)) |= U32(EP_Static)
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ *(*U32)(unsafe.Pointer(pExpr + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_Static))
+ libc.X__builtin___memset_chk(tls, pExpr, 0, uint64(unsafe.Sizeof(Expr{})), libc.X__builtin_object_size(tls, pExpr, 0))
+
+ (*Expr)(unsafe.Pointer(pExpr)).Fop = U8(TK_COLUMN)
+ (*Expr)(unsafe.Pointer(pExpr)).FiColumn = func() int16 {
+ if iCol < 0 {
+ return int16((*ExprList)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - 1)
+ }
+ return int16(iCol)
+ }()
+ (*Expr)(unsafe.Pointer(pExpr)).FiTable = (*Window)(unsafe.Pointer((*WindowRewrite1)(unsafe.Pointer(p)).FpWin)).FiEphCsr
+ *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*WindowRewrite1)(unsafe.Pointer(p)).FpTab
+ (*Expr)(unsafe.Pointer(pExpr)).Fflags = U32(f)
+ }
+ if (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 {
+ return WRC_Abort
+ }
+ break
+
+ }
+
+ default:
+ break
+ }
+
+ return WRC_Continue
+}
+
+func selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintptr) int32 {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pWalker + 40))
+ var pSave uintptr = (*WindowRewrite1)(unsafe.Pointer(p)).FpSubSelect
+ if pSave == pSelect {
+ return WRC_Continue
+ } else {
+ (*WindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect
+ Xsqlite3WalkSelect(tls, pWalker, pSelect)
+ (*WindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave
+ }
+ return WRC_Prune
+}
+
+func selectWindowRewriteEList(tls *libc.TLS, pParse uintptr, pWin uintptr, pSrc uintptr, pEList uintptr, pTab uintptr, ppSub uintptr) {
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+48, 0, uint64(unsafe.Sizeof(WindowRewrite{})), libc.X__builtin_object_size(tls, bp+48, 0))
+
+ (*WindowRewrite)(unsafe.Pointer(bp + 48)).FpSub = *(*uintptr)(unsafe.Pointer(ppSub))
+ (*WindowRewrite)(unsafe.Pointer(bp + 48)).FpWin = pWin
+ (*WindowRewrite)(unsafe.Pointer(bp + 48)).FpSrc = pSrc
+ (*WindowRewrite)(unsafe.Pointer(bp + 48)).FpTab = pTab
+
+ (*Walker)(unsafe.Pointer(bp)).FpParse = pParse
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{selectWindowRewriteExprCb}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{selectWindowRewriteSelectCb}))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = bp + 48
+
+ Xsqlite3WalkExprList(tls, bp, pEList)
+
+ *(*uintptr)(unsafe.Pointer(ppSub)) = (*WindowRewrite)(unsafe.Pointer(bp + 48)).FpSub
+}
+
+func exprListAppendList(tls *libc.TLS, pParse uintptr, pList uintptr, pAppend uintptr, bIntToNull int32) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ if pAppend != 0 {
+ var i int32
+ var nInit int32
+ if pList != 0 {
+ nInit = (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ } else {
+ nInit = 0
+ }
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pAppend)).FnExpr; i++ {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pDup uintptr = Xsqlite3ExprDup(tls, db, (*ExprList_item)(unsafe.Pointer(pAppend+8+uintptr(i)*32)).FpExpr, 0)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ Xsqlite3ExprDelete(tls, db, pDup)
+ break
+ }
+ if bIntToNull != 0 {
+ var pSub uintptr
+ pSub = Xsqlite3ExprSkipCollateAndLikely(tls, pDup)
+ if Xsqlite3ExprIsInteger(tls, pSub, bp) != 0 {
+ (*Expr)(unsafe.Pointer(pSub)).Fop = U8(TK_NULL)
+ *(*U32)(unsafe.Pointer(pSub + 4)) &= libc.Uint32FromInt32(libc.CplInt32(EP_IntValue | EP_IsTrue | EP_IsFalse))
+ *(*uintptr)(unsafe.Pointer(pSub + 8)) = uintptr(0)
+ }
+ }
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, pDup)
+ if pList != 0 {
+ (*ExprList_item)(unsafe.Pointer(pList + 8 + uintptr(nInit+i)*32)).Ffg.FsortFlags = (*ExprList_item)(unsafe.Pointer(pAppend + 8 + uintptr(i)*32)).Ffg.FsortFlags
+ }
+ }
+ }
+ return pList
+}
+
+func sqlite3WindowExtraAggFuncDepth(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_FUNCTION &&
+ int32((*Expr)(unsafe.Pointer(pExpr)).Fop2) >= (*Walker)(unsafe.Pointer(pWalker)).FwalkerDepth {
+ (*Expr)(unsafe.Pointer(pExpr)).Fop2++
+ }
+ return WRC_Continue
+}
+
+func disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if int32((*Expr)(unsafe.Pointer(pExpr)).Fop) == TK_AGG_FUNCTION && (*Expr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) {
+ Xsqlite3ErrorMsg(tls, (*Walker)(unsafe.Pointer(pWalker)).FpParse,
+ ts+22870, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(pExpr + 8))))
+ }
+ return WRC_Continue
+}
+
+// If the SELECT statement passed as the second argument does not invoke
+// any SQL window functions, this function is a no-op. Otherwise, it
+// rewrites the SELECT statement so that window function xStep functions
+// are invoked in the correct order as described under "SELECT REWRITING"
+// at the top of this file.
+func Xsqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32 = SQLITE_OK
+ if (*Select)(unsafe.Pointer(p)).FpWin != 0 &&
+ (*Select)(unsafe.Pointer(p)).FpPrior == uintptr(0) &&
+ (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_WinRewrite) == U32(0) &&
+ !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pSub uintptr = uintptr(0)
+ var pSrc uintptr = (*Select)(unsafe.Pointer(p)).FpSrc
+ var pWhere uintptr = (*Select)(unsafe.Pointer(p)).FpWhere
+ var pGroupBy uintptr = (*Select)(unsafe.Pointer(p)).FpGroupBy
+ var pHaving uintptr = (*Select)(unsafe.Pointer(p)).FpHaving
+ var pSort uintptr = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+ var pMWin uintptr = (*Select)(unsafe.Pointer(p)).FpWin
+ var pWin uintptr
+ var pTab uintptr
+
+ var selFlags U32 = (*Select)(unsafe.Pointer(p)).FselFlags
+
+ pTab = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Table{})))
+ if pTab == uintptr(0) {
+ return Xsqlite3ErrorToParser(tls, db, SQLITE_NOMEM)
+ }
+ Xsqlite3AggInfoPersistWalkerInit(tls, bp, pParse)
+ Xsqlite3WalkSelect(tls, bp, p)
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_Aggregate) == U32(0) {
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{disallowAggregatesInOrderByCb}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = uintptr(0)
+ Xsqlite3WalkExprList(tls, bp, (*Select)(unsafe.Pointer(p)).FpOrderBy)
+ }
+
+ (*Select)(unsafe.Pointer(p)).FpSrc = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpWhere = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpGroupBy = uintptr(0)
+ (*Select)(unsafe.Pointer(p)).FpHaving = uintptr(0)
+ *(*U32)(unsafe.Pointer(p + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_Aggregate))
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(SF_WinRewrite)
+
+ pSort = exprListAppendList(tls, pParse, uintptr(0), (*Window)(unsafe.Pointer(pMWin)).FpPartition, 1)
+ pSort = exprListAppendList(tls, pParse, pSort, (*Window)(unsafe.Pointer(pMWin)).FpOrderBy, 1)
+ if pSort != 0 && (*Select)(unsafe.Pointer(p)).FpOrderBy != 0 && (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpOrderBy)).FnExpr <= (*ExprList)(unsafe.Pointer(pSort)).FnExpr {
+ var nSave int32 = (*ExprList)(unsafe.Pointer(pSort)).FnExpr
+ (*ExprList)(unsafe.Pointer(pSort)).FnExpr = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpOrderBy)).FnExpr
+ if Xsqlite3ExprListCompare(tls, pSort, (*Select)(unsafe.Pointer(p)).FpOrderBy, -1) == 0 {
+ Xsqlite3ExprListDelete(tls, db, (*Select)(unsafe.Pointer(p)).FpOrderBy)
+ (*Select)(unsafe.Pointer(p)).FpOrderBy = uintptr(0)
+ }
+ (*ExprList)(unsafe.Pointer(pSort)).FnExpr = nSave
+ }
+
+ (*Window)(unsafe.Pointer(pMWin)).FiEphCsr = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ *(*int32)(unsafe.Pointer(pParse + 52)) += 3
+
+ selectWindowRewriteEList(tls, pParse, pMWin, pSrc, (*Select)(unsafe.Pointer(p)).FpEList, pTab, bp+48)
+ selectWindowRewriteEList(tls, pParse, pMWin, pSrc, (*Select)(unsafe.Pointer(p)).FpOrderBy, pTab, bp+48)
+ (*Window)(unsafe.Pointer(pMWin)).FnBufferCol = func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) != 0 {
+ return (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).FnExpr
+ }
+ return 0
+ }()
+
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = exprListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 48)), (*Window)(unsafe.Pointer(pMWin)).FpPartition, 0)
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = exprListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 48)), (*Window)(unsafe.Pointer(pMWin)).FpOrderBy, 0)
+
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var pArgs uintptr
+
+ pArgs = *(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32))
+ if (*FuncDef)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpWFunc)).FfuncFlags&U32(SQLITE_FUNC_SUBTYPE) != 0 {
+ selectWindowRewriteEList(tls, pParse, pMWin, pSrc, pArgs, pTab, bp+48)
+ (*Window)(unsafe.Pointer(pWin)).FiArgCol = func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) != 0 {
+ return (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).FnExpr
+ }
+ return 0
+ }()
+ (*Window)(unsafe.Pointer(pWin)).FbExprArgs = U8(1)
+ } else {
+ (*Window)(unsafe.Pointer(pWin)).FiArgCol = func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) != 0 {
+ return (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).FnExpr
+ }
+ return 0
+ }()
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = exprListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 48)), pArgs, 0)
+ }
+ if (*Window)(unsafe.Pointer(pWin)).FpFilter != 0 {
+ var pFilter uintptr = Xsqlite3ExprDup(tls, db, (*Window)(unsafe.Pointer(pWin)).FpFilter, 0)
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 48)), pFilter)
+ }
+ (*Window)(unsafe.Pointer(pWin)).FregAccum = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ (*Window)(unsafe.Pointer(pWin)).FregResult = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregAccum)
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0),
+ Xsqlite3Expr(tls, db, TK_INTEGER, ts+7933))
+ }
+
+ pSub = Xsqlite3SelectNew(tls,
+ pParse, *(*uintptr)(unsafe.Pointer(bp + 48)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0))
+
+ (*Select)(unsafe.Pointer(p)).FpSrc = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0))
+
+ if (*Select)(unsafe.Pointer(p)).FpSrc != 0 {
+ var pTab2 uintptr
+ (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpSelect = pSub
+ libc.SetBitFieldPtr16Uint32((*Select)(unsafe.Pointer(p)).FpSrc+8+60+4, uint32(1), 3, 0x8)
+ Xsqlite3SrcListAssignCursors(tls, pParse, (*Select)(unsafe.Pointer(p)).FpSrc)
+ *(*U32)(unsafe.Pointer(pSub + 4)) |= U32(SF_Expanded | SF_OrderByReqd)
+ pTab2 = Xsqlite3ResultSetOfSelect(tls, pParse, pSub, int8(SQLITE_AFF_NONE))
+ *(*U32)(unsafe.Pointer(pSub + 4)) |= selFlags & U32(SF_Aggregate)
+ if pTab2 == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pTab, pTab2, uint64(unsafe.Sizeof(Table{})), libc.X__builtin_object_size(tls, pTab, 0))
+ *(*U32)(unsafe.Pointer(pTab + 48)) |= U32(TF_Ephemeral)
+ (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpTab = pTab
+ pTab = pTab2
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Walker{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Walker)(unsafe.Pointer(bp)).FxExprCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{sqlite3WindowExtraAggFuncDepth}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{Xsqlite3WalkerDepthIncrease}))
+ (*Walker)(unsafe.Pointer(bp)).FxSelectCallback2 = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3WalkerDepthDecrease}))
+ Xsqlite3WalkSelect(tls, bp, pSub)
+ }
+ } else {
+ Xsqlite3SelectDelete(tls, db, pSub)
+ }
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ rc = SQLITE_NOMEM
+ }
+
+ Xsqlite3ParserAddCleanup(tls, pParse, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{Xsqlite3DbFree})), pTab)
+ }
+
+ return rc
+}
+
+// Unlink the Window object from the Select to which it is attached,
+// if it is attached.
+func Xsqlite3WindowUnlinkFromSelect(tls *libc.TLS, p uintptr) {
+ if (*Window)(unsafe.Pointer(p)).FppThis != 0 {
+ *(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(p)).FppThis)) = (*Window)(unsafe.Pointer(p)).FpNextWin
+ if (*Window)(unsafe.Pointer(p)).FpNextWin != 0 {
+ (*Window)(unsafe.Pointer((*Window)(unsafe.Pointer(p)).FpNextWin)).FppThis = (*Window)(unsafe.Pointer(p)).FppThis
+ }
+ (*Window)(unsafe.Pointer(p)).FppThis = uintptr(0)
+ }
+}
+
+// Free the Window object passed as the second argument.
+func Xsqlite3WindowDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ if p != 0 {
+ Xsqlite3WindowUnlinkFromSelect(tls, p)
+ Xsqlite3ExprDelete(tls, db, (*Window)(unsafe.Pointer(p)).FpFilter)
+ Xsqlite3ExprListDelete(tls, db, (*Window)(unsafe.Pointer(p)).FpPartition)
+ Xsqlite3ExprListDelete(tls, db, (*Window)(unsafe.Pointer(p)).FpOrderBy)
+ Xsqlite3ExprDelete(tls, db, (*Window)(unsafe.Pointer(p)).FpEnd)
+ Xsqlite3ExprDelete(tls, db, (*Window)(unsafe.Pointer(p)).FpStart)
+ Xsqlite3DbFree(tls, db, (*Window)(unsafe.Pointer(p)).FzName)
+ Xsqlite3DbFree(tls, db, (*Window)(unsafe.Pointer(p)).FzBase)
+ Xsqlite3DbFree(tls, db, p)
+ }
+}
+
+// Free the linked list of Window objects starting at the second argument.
+func Xsqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) {
+ for p != 0 {
+ var pNext uintptr = (*Window)(unsafe.Pointer(p)).FpNextWin
+ Xsqlite3WindowDelete(tls, db, p)
+ p = pNext
+ }
+}
+
+func sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) uintptr {
+ if 0 == Xsqlite3ExprIsConstant(tls, pExpr) {
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameExprUnmap(tls, pParse, pExpr)
+ }
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pExpr)
+ pExpr = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_NULL, uintptr(0), 0)
+ }
+ return pExpr
+}
+
+// Allocate and return a new Window object describing a Window Definition.
+func Xsqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int32, pStart uintptr, eEnd int32, pEnd uintptr, eExclude U8) uintptr {
+ var pWin uintptr
+ var bImplicitFrame int32
+ pWin = uintptr(0)
+ bImplicitFrame = 0
+
+ if !(eType == 0) {
+ goto __1
+ }
+ bImplicitFrame = 1
+ eType = TK_RANGE
+__1:
+ ;
+ if !(eStart == TK_CURRENT && eEnd == TK_PRECEDING ||
+ eStart == TK_FOLLOWING && (eEnd == TK_PRECEDING || eEnd == TK_CURRENT)) {
+ goto __2
+ }
+ Xsqlite3ErrorMsg(tls, pParse, ts+22896, 0)
+ goto windowAllocErr
+__2:
+ ;
+ pWin = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Window{})))
+ if !(pWin == uintptr(0)) {
+ goto __3
+ }
+ goto windowAllocErr
+__3:
+ ;
+ (*Window)(unsafe.Pointer(pWin)).FeFrmType = U8(eType)
+ (*Window)(unsafe.Pointer(pWin)).FeStart = U8(eStart)
+ (*Window)(unsafe.Pointer(pWin)).FeEnd = U8(eEnd)
+ if !(int32(eExclude) == 0 && (*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&U32(SQLITE_WindowFunc) != U32(0)) {
+ goto __4
+ }
+ eExclude = U8(TK_NO)
+__4:
+ ;
+ (*Window)(unsafe.Pointer(pWin)).FeExclude = eExclude
+ (*Window)(unsafe.Pointer(pWin)).FbImplicitFrame = U8(bImplicitFrame)
+ (*Window)(unsafe.Pointer(pWin)).FpEnd = sqlite3WindowOffsetExpr(tls, pParse, pEnd)
+ (*Window)(unsafe.Pointer(pWin)).FpStart = sqlite3WindowOffsetExpr(tls, pParse, pStart)
+ return pWin
+
+windowAllocErr:
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pEnd)
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pStart)
+ return uintptr(0)
+}
+
+// Attach PARTITION and ORDER BY clauses pPartition and pOrderBy to window
+// pWin. Also, if parameter pBase is not NULL, set pWin->zBase to the
+// equivalent nul-terminated string.
+func Xsqlite3WindowAssemble(tls *libc.TLS, pParse uintptr, pWin uintptr, pPartition uintptr, pOrderBy uintptr, pBase uintptr) uintptr {
+ if pWin != 0 {
+ (*Window)(unsafe.Pointer(pWin)).FpPartition = pPartition
+ (*Window)(unsafe.Pointer(pWin)).FpOrderBy = pOrderBy
+ if pBase != 0 {
+ (*Window)(unsafe.Pointer(pWin)).FzBase = Xsqlite3DbStrNDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Token)(unsafe.Pointer(pBase)).Fz, uint64((*Token)(unsafe.Pointer(pBase)).Fn))
+ }
+ } else {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pPartition)
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pOrderBy)
+ }
+ return pWin
+}
+
+// Window *pWin has just been created from a WINDOW clause. Tokne pBase
+// is the base window. Earlier windows from the same WINDOW clause are
+// stored in the linked list starting at pWin->pNextWin. This function
+// either updates *pWin according to the base specification, or else
+// leaves an error in pParse.
+func Xsqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Window)(unsafe.Pointer(pWin)).FzBase != 0 {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var pExist uintptr = windowFind(tls, pParse, pList, (*Window)(unsafe.Pointer(pWin)).FzBase)
+ if pExist != 0 {
+ var zErr uintptr = uintptr(0)
+
+ if (*Window)(unsafe.Pointer(pWin)).FpPartition != 0 {
+ zErr = ts + 22928
+ } else if (*Window)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*Window)(unsafe.Pointer(pWin)).FpOrderBy != 0 {
+ zErr = ts + 22945
+ } else if int32((*Window)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 {
+ zErr = ts + 22961
+ }
+ if zErr != 0 {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+22981, libc.VaList(bp, zErr, (*Window)(unsafe.Pointer(pWin)).FzBase))
+ } else {
+ (*Window)(unsafe.Pointer(pWin)).FpPartition = Xsqlite3ExprListDup(tls, db, (*Window)(unsafe.Pointer(pExist)).FpPartition, 0)
+ if (*Window)(unsafe.Pointer(pExist)).FpOrderBy != 0 {
+ (*Window)(unsafe.Pointer(pWin)).FpOrderBy = Xsqlite3ExprListDup(tls, db, (*Window)(unsafe.Pointer(pExist)).FpOrderBy, 0)
+ }
+ Xsqlite3DbFree(tls, db, (*Window)(unsafe.Pointer(pWin)).FzBase)
+ (*Window)(unsafe.Pointer(pWin)).FzBase = uintptr(0)
+ }
+ }
+ }
+}
+
+// Attach window object pWin to expression p.
+func Xsqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr) {
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p + 64)) = pWin
+ *(*U32)(unsafe.Pointer(p + 4)) |= U32(EP_WinFunc)
+ (*Window)(unsafe.Pointer(pWin)).FpOwner = p
+ if (*Expr)(unsafe.Pointer(p)).Fflags&U32(EP_Distinct) != 0 && int32((*Window)(unsafe.Pointer(pWin)).FeFrmType) != TK_FILTER {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+23014, 0)
+ }
+ } else {
+ Xsqlite3WindowDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pWin)
+ }
+}
+
+// Possibly link window pWin into the list at pSel->pWin (window functions
+// to be processed as part of SELECT statement pSel). The window is linked
+// in if either (a) there are no other windows already linked to this
+// SELECT, or (b) the windows already linked use a compatible window frame.
+func Xsqlite3WindowLink(tls *libc.TLS, pSel uintptr, pWin uintptr) {
+ if pSel != 0 {
+ if uintptr(0) == (*Select)(unsafe.Pointer(pSel)).FpWin || 0 == Xsqlite3WindowCompare(tls, uintptr(0), (*Select)(unsafe.Pointer(pSel)).FpWin, pWin, 0) {
+ (*Window)(unsafe.Pointer(pWin)).FpNextWin = (*Select)(unsafe.Pointer(pSel)).FpWin
+ if (*Select)(unsafe.Pointer(pSel)).FpWin != 0 {
+ (*Window)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpWin)).FppThis = pWin + 64
+ }
+ (*Select)(unsafe.Pointer(pSel)).FpWin = pWin
+ (*Window)(unsafe.Pointer(pWin)).FppThis = pSel + 112
+ } else {
+ if Xsqlite3ExprListCompare(tls, (*Window)(unsafe.Pointer(pWin)).FpPartition, (*Window)(unsafe.Pointer((*Select)(unsafe.Pointer(pSel)).FpWin)).FpPartition, -1) != 0 {
+ *(*U32)(unsafe.Pointer(pSel + 4)) |= U32(SF_MultiPart)
+ }
+ }
+ }
+}
+
+// Return 0 if the two window objects are identical, 1 if they are
+// different, or 2 if it cannot be determined if the objects are identical
+// or not. Identical window objects can be processed in a single scan.
+func Xsqlite3WindowCompare(tls *libc.TLS, pParse uintptr, p1 uintptr, p2 uintptr, bFilter int32) int32 {
+ var res int32
+ if p1 == uintptr(0) || p2 == uintptr(0) {
+ return 1
+ }
+ if int32((*Window)(unsafe.Pointer(p1)).FeFrmType) != int32((*Window)(unsafe.Pointer(p2)).FeFrmType) {
+ return 1
+ }
+ if int32((*Window)(unsafe.Pointer(p1)).FeStart) != int32((*Window)(unsafe.Pointer(p2)).FeStart) {
+ return 1
+ }
+ if int32((*Window)(unsafe.Pointer(p1)).FeEnd) != int32((*Window)(unsafe.Pointer(p2)).FeEnd) {
+ return 1
+ }
+ if int32((*Window)(unsafe.Pointer(p1)).FeExclude) != int32((*Window)(unsafe.Pointer(p2)).FeExclude) {
+ return 1
+ }
+ if Xsqlite3ExprCompare(tls, pParse, (*Window)(unsafe.Pointer(p1)).FpStart, (*Window)(unsafe.Pointer(p2)).FpStart, -1) != 0 {
+ return 1
+ }
+ if Xsqlite3ExprCompare(tls, pParse, (*Window)(unsafe.Pointer(p1)).FpEnd, (*Window)(unsafe.Pointer(p2)).FpEnd, -1) != 0 {
+ return 1
+ }
+ if libc.AssignInt32(&res, Xsqlite3ExprListCompare(tls, (*Window)(unsafe.Pointer(p1)).FpPartition, (*Window)(unsafe.Pointer(p2)).FpPartition, -1)) != 0 {
+ return res
+ }
+ if libc.AssignInt32(&res, Xsqlite3ExprListCompare(tls, (*Window)(unsafe.Pointer(p1)).FpOrderBy, (*Window)(unsafe.Pointer(p2)).FpOrderBy, -1)) != 0 {
+ return res
+ }
+ if bFilter != 0 {
+ if libc.AssignInt32(&res, Xsqlite3ExprCompare(tls, pParse, (*Window)(unsafe.Pointer(p1)).FpFilter, (*Window)(unsafe.Pointer(p2)).FpFilter, -1)) != 0 {
+ return res
+ }
+ }
+ return 0
+}
+
+// This is called by code in select.c before it calls sqlite3WhereBegin()
+// to begin iterating through the sub-query results. It is used to allocate
+// and initialize registers and cursors used by sqlite3WindowCodeStep().
+func Xsqlite3WindowCodeInit(tls *libc.TLS, pParse uintptr, pSelect uintptr) {
+ var nEphExpr int32 = (*ExprList)(unsafe.Pointer((*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(pSelect)).FpSrc + 8)).FpSelect)).FpEList)).FnExpr
+ var pMWin uintptr = (*Select)(unsafe.Pointer(pSelect)).FpWin
+ var pWin uintptr
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr, nEphExpr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr+1, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr+2, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr+3, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+
+ if (*Window)(unsafe.Pointer(pMWin)).FpPartition != 0 {
+ var nExpr int32 = (*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pMWin)).FpPartition)).FnExpr
+ (*Window)(unsafe.Pointer(pMWin)).FregPart = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nExpr
+ Xsqlite3VdbeAddOp3(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pMWin)).FregPart, (*Window)(unsafe.Pointer(pMWin)).FregPart+nExpr-1)
+ }
+
+ (*Window)(unsafe.Pointer(pMWin)).FregOne = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, (*Window)(unsafe.Pointer(pMWin)).FregOne)
+
+ if (*Window)(unsafe.Pointer(pMWin)).FeExclude != 0 {
+ (*Window)(unsafe.Pointer(pMWin)).FregStartRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ (*Window)(unsafe.Pointer(pMWin)).FregEndRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ (*Window)(unsafe.Pointer(pMWin)).FcsrApp = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, (*Window)(unsafe.Pointer(pMWin)).FregStartRowid)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pMWin)).FregEndRowid)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pMWin)).FcsrApp, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+ return
+ }
+
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var p uintptr = (*Window)(unsafe.Pointer(pWin)).FpWFunc
+ if (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_MINMAX) != 0 && int32((*Window)(unsafe.Pointer(pWin)).FeStart) != TK_UNBOUNDED {
+ var pList uintptr
+ var pKeyInfo uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32))
+ pKeyInfo = Xsqlite3KeyInfoFromExprList(tls, pParse, pList, 0, 0)
+ (*Window)(unsafe.Pointer(pWin)).FcsrApp = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ (*Window)(unsafe.Pointer(pWin)).FregApp = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += 3
+ if pKeyInfo != 0 && int32(*(*int8)(unsafe.Pointer((*FuncDef)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpWFunc)).FzName + 1))) == 'i' {
+ *(*U8)(unsafe.Pointer((*KeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags)) = U8(KEYINFO_ORDER_DESC)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenEphemeral, (*Window)(unsafe.Pointer(pWin)).FcsrApp, 2)
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pWin)).FregApp+1)
+ } else if (*FuncDef)(unsafe.Pointer(p)).FzName == uintptr(unsafe.Pointer(&nth_valueName)) || (*FuncDef)(unsafe.Pointer(p)).FzName == uintptr(unsafe.Pointer(&first_valueName)) {
+ (*Window)(unsafe.Pointer(pWin)).FregApp = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ (*Window)(unsafe.Pointer(pWin)).FcsrApp = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ *(*int32)(unsafe.Pointer(pParse + 56)) += 2
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pWin)).FcsrApp, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+ } else if (*FuncDef)(unsafe.Pointer(p)).FzName == uintptr(unsafe.Pointer(&leadName)) || (*FuncDef)(unsafe.Pointer(p)).FzName == uintptr(unsafe.Pointer(&lagName)) {
+ (*Window)(unsafe.Pointer(pWin)).FcsrApp = libc.PostIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnTab, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_OpenDup, (*Window)(unsafe.Pointer(pWin)).FcsrApp, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr)
+ }
+ }
+}
+
+func windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var regZero int32 = Xsqlite3GetTempReg(tls, pParse)
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regZero)
+ if eCond >= WINDOW_STARTING_NUM {
+ var regString int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, regString, 0, ts+1547, -1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ge, regString, Xsqlite3VdbeCurrentAddr(tls, v)+2, reg)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL))
+
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_MustBeInt, reg, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ }
+ Xsqlite3VdbeAddOp3(tls, v, aOp1[eCond], regZero, Xsqlite3VdbeCurrentAddr(tls, v)+2, reg)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_AFF_NUMERIC))
+
+ Xsqlite3MayAbort(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Halt, SQLITE_ERROR, OE_Abort)
+ Xsqlite3VdbeAppendP4(tls, v, azErr[eCond], -1)
+ Xsqlite3ReleaseTempReg(tls, pParse, regZero)
+}
+
+var azErr = [5]uintptr{
+ ts + 23061,
+ ts + 23114,
+ ts + 22518,
+ ts + 23165,
+ ts + 23217,
+}
+var aOp1 = [5]int32{OP_Ge, OP_Ge, OP_Gt, OP_Ge, OP_Ge}
+
+func windowArgCount(tls *libc.TLS, pWin uintptr) int32 {
+ var pList uintptr
+
+ pList = *(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32))
+ return func() int32 {
+ if pList != 0 {
+ return (*ExprList)(unsafe.Pointer(pList)).FnExpr
+ }
+ return 0
+ }()
+}
+
+type WindowCodeArg1 = struct {
+ FpParse uintptr
+ FpMWin uintptr
+ FpVdbe uintptr
+ FaddrGosub int32
+ FregGosub int32
+ FregArg int32
+ FeDelete int32
+ FregRowid int32
+ Fstart WindowCsrAndReg
+ Fcurrent WindowCsrAndReg
+ Fend WindowCsrAndReg
+ F__ccgo_pad1 [4]byte
+}
+
+type WindowCodeArg = WindowCodeArg1
+type WindowCsrAndReg1 = struct {
+ Fcsr int32
+ Freg int32
+}
+
+type WindowCsrAndReg = WindowCsrAndReg1
+
+func windowReadPeerValues(tls *libc.TLS, p uintptr, csr int32, reg int32) {
+ var pMWin uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpMWin
+ var pOrderBy uintptr = (*Window)(unsafe.Pointer(pMWin)).FpOrderBy
+ if pOrderBy != 0 {
+ var v uintptr = Xsqlite3GetVdbe(tls, (*WindowCodeArg)(unsafe.Pointer(p)).FpParse)
+ var pPart uintptr = (*Window)(unsafe.Pointer(pMWin)).FpPartition
+ var iColOff int32 = (*Window)(unsafe.Pointer(pMWin)).FnBufferCol + func() int32 {
+ if pPart != 0 {
+ return (*ExprList)(unsafe.Pointer(pPart)).FnExpr
+ }
+ return 0
+ }()
+ var i int32
+ for i = 0; i < (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr; i++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csr, iColOff+i, reg+i)
+ }
+ }
+}
+
+func windowAggStep(tls *libc.TLS, p uintptr, pMWin uintptr, csr int32, bInverse int32, reg int32) {
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var pWin uintptr
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var pFunc uintptr = (*Window)(unsafe.Pointer(pWin)).FpWFunc
+ var regArg int32
+ var nArg int32
+ if (*Window)(unsafe.Pointer(pWin)).FbExprArgs != 0 {
+ nArg = 0
+ } else {
+ nArg = windowArgCount(tls, pWin)
+ }
+ var i int32
+
+ for i = 0; i < nArg; i++ {
+ if i != 1 || (*FuncDef)(unsafe.Pointer(pFunc)).FzName != uintptr(unsafe.Pointer(&nth_valueName)) {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csr, (*Window)(unsafe.Pointer(pWin)).FiArgCol+i, reg+i)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr, (*Window)(unsafe.Pointer(pWin)).FiArgCol+i, reg+i)
+ }
+ }
+ regArg = reg
+
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid == 0 &&
+ (*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_MINMAX) != 0 &&
+ int32((*Window)(unsafe.Pointer(pWin)).FeStart) != TK_UNBOUNDED {
+ var addrIsNull int32 = Xsqlite3VdbeAddOp1(tls, v, OP_IsNull, regArg)
+
+ if bInverse == 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, (*Window)(unsafe.Pointer(pWin)).FregApp+1, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_SCopy, regArg, (*Window)(unsafe.Pointer(pWin)).FregApp)
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, (*Window)(unsafe.Pointer(pWin)).FregApp, 2, (*Window)(unsafe.Pointer(pWin)).FregApp+2)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IdxInsert, (*Window)(unsafe.Pointer(pWin)).FcsrApp, (*Window)(unsafe.Pointer(pWin)).FregApp+2)
+ } else {
+ Xsqlite3VdbeAddOp4Int(tls, v, OP_SeekGE, (*Window)(unsafe.Pointer(pWin)).FcsrApp, 0, regArg, 1)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_Delete, (*Window)(unsafe.Pointer(pWin)).FcsrApp)
+ Xsqlite3VdbeJumpHere(tls, v, Xsqlite3VdbeCurrentAddr(tls, v)-2)
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrIsNull)
+ } else if (*Window)(unsafe.Pointer(pWin)).FregApp != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, (*Window)(unsafe.Pointer(pWin)).FregApp+1-bInverse, 1)
+ } else if (*FuncDef)(unsafe.Pointer(pFunc)).FxSFunc != *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{noopStepFunc})) {
+ var addrIf int32 = 0
+ if (*Window)(unsafe.Pointer(pWin)).FpFilter != 0 {
+ var regTmp int32
+
+ regTmp = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csr, (*Window)(unsafe.Pointer(pWin)).FiArgCol+nArg, regTmp)
+ addrIf = Xsqlite3VdbeAddOp3(tls, v, OP_IfNot, regTmp, 0, 1)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, regTmp)
+ }
+
+ if (*Window)(unsafe.Pointer(pWin)).FbExprArgs != 0 {
+ var iOp int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ var iEnd int32
+
+ nArg = (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32)))).FnExpr
+ regArg = Xsqlite3GetTempRange(tls, pParse, nArg)
+ Xsqlite3ExprCodeExprList(tls, pParse, *(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32)), regArg, 0, uint8(0))
+
+ for iEnd = Xsqlite3VdbeCurrentAddr(tls, v); iOp < iEnd; iOp++ {
+ var pOp uintptr = Xsqlite3VdbeGetOp(tls, v, iOp)
+ if int32((*VdbeOp)(unsafe.Pointer(pOp)).Fopcode) == OP_Column && (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 == (*Window)(unsafe.Pointer(pMWin)).FiEphCsr {
+ (*VdbeOp)(unsafe.Pointer(pOp)).Fp1 = csr
+ }
+ }
+ }
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_NEEDCOLL) != 0 {
+ var pColl uintptr
+
+ pColl = Xsqlite3ExprNNCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32))+8)).FpExpr)
+ Xsqlite3VdbeAddOp4(tls, v, OP_CollSeq, 0, 0, 0, pColl, -2)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, func() int32 {
+ if bInverse != 0 {
+ return OP_AggInverse
+ }
+ return OP_AggStep
+ }(),
+ bInverse, regArg, (*Window)(unsafe.Pointer(pWin)).FregAccum)
+ Xsqlite3VdbeAppendP4(tls, v, pFunc, -7)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(U8(nArg)))
+ if (*Window)(unsafe.Pointer(pWin)).FbExprArgs != 0 {
+ Xsqlite3ReleaseTempRange(tls, pParse, regArg, nArg)
+ }
+ if addrIf != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrIf)
+ }
+ }
+ }
+}
+
+func windowAggFinal(tls *libc.TLS, p uintptr, bFin int32) {
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var pMWin uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpMWin
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var pWin uintptr
+
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid == 0 &&
+ (*FuncDef)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpWFunc)).FfuncFlags&U32(SQLITE_FUNC_MINMAX) != 0 &&
+ int32((*Window)(unsafe.Pointer(pWin)).FeStart) != TK_UNBOUNDED {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Last, (*Window)(unsafe.Pointer(pWin)).FcsrApp)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*Window)(unsafe.Pointer(pWin)).FcsrApp, 0, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeJumpHere(tls, v, Xsqlite3VdbeCurrentAddr(tls, v)-2)
+ } else if (*Window)(unsafe.Pointer(pWin)).FregApp != 0 {
+ } else {
+ var nArg int32 = windowArgCount(tls, pWin)
+ if bFin != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AggFinal, (*Window)(unsafe.Pointer(pWin)).FregAccum, nArg)
+ Xsqlite3VdbeAppendP4(tls, v, (*Window)(unsafe.Pointer(pWin)).FpWFunc, -7)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Copy, (*Window)(unsafe.Pointer(pWin)).FregAccum, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregAccum)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_AggValue, (*Window)(unsafe.Pointer(pWin)).FregAccum, nArg, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeAppendP4(tls, v, (*Window)(unsafe.Pointer(pWin)).FpWFunc, -7)
+ }
+ }
+ }
+}
+
+func windowFullScan(tls *libc.TLS, p uintptr) {
+ var pWin uintptr
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var pMWin uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpMWin
+ var v uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpVdbe
+
+ var regCRowid int32 = 0
+ var regCPeer int32 = 0
+ var regRowid int32 = 0
+ var regPeer int32 = 0
+
+ var nPeer int32
+ var lblNext int32
+ var lblBrk int32
+ var addrNext int32
+ var csr int32
+
+ csr = (*Window)(unsafe.Pointer(pMWin)).FcsrApp
+ nPeer = func() int32 {
+ if (*Window)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
+ return (*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pMWin)).FpOrderBy)).FnExpr
+ }
+ return 0
+ }()
+
+ lblNext = Xsqlite3VdbeMakeLabel(tls, pParse)
+ lblBrk = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ regCRowid = Xsqlite3GetTempReg(tls, pParse)
+ regRowid = Xsqlite3GetTempReg(tls, pParse)
+ if nPeer != 0 {
+ regCPeer = Xsqlite3GetTempRange(tls, pParse, nPeer)
+ regPeer = Xsqlite3GetTempRange(tls, pParse, nPeer)
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr, regCRowid)
+ windowReadPeerValues(tls, p, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr, regCPeer)
+
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregAccum)
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekGE, csr, lblBrk, (*Window)(unsafe.Pointer(pMWin)).FregStartRowid)
+
+ addrNext = Xsqlite3VdbeCurrentAddr(tls, v)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, csr, regRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Gt, (*Window)(unsafe.Pointer(pMWin)).FregEndRowid, lblBrk, regRowid)
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeExclude) == TK_CURRENT {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regCRowid, lblNext, regRowid)
+
+ } else if int32((*Window)(unsafe.Pointer(pMWin)).FeExclude) != TK_NO {
+ var addr int32
+ var addrEq int32 = 0
+ var pKeyInfo uintptr = uintptr(0)
+
+ if (*Window)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
+ pKeyInfo = Xsqlite3KeyInfoFromExprList(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpOrderBy, 0, 0)
+ }
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeExclude) == TK_TIES {
+ addrEq = Xsqlite3VdbeAddOp3(tls, v, OP_Eq, regCRowid, 0, regRowid)
+
+ }
+ if pKeyInfo != 0 {
+ windowReadPeerValues(tls, p, csr, regPeer)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Compare, regPeer, regCPeer, nPeer)
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+ addr = Xsqlite3VdbeCurrentAddr(tls, v) + 1
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addr, lblNext, addr)
+
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, lblNext)
+ }
+ if addrEq != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addrEq)
+ }
+ }
+
+ windowAggStep(tls, p, pMWin, csr, 0, (*WindowCodeArg)(unsafe.Pointer(p)).FregArg)
+
+ Xsqlite3VdbeResolveLabel(tls, v, lblNext)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, csr, addrNext)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrNext-1)
+ Xsqlite3VdbeJumpHere(tls, v, addrNext+1)
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid)
+ Xsqlite3ReleaseTempReg(tls, pParse, regCRowid)
+ if nPeer != 0 {
+ Xsqlite3ReleaseTempRange(tls, pParse, regPeer, nPeer)
+ Xsqlite3ReleaseTempRange(tls, pParse, regCPeer, nPeer)
+ }
+
+ windowAggFinal(tls, p, 1)
+
+}
+
+func windowReturnOneRow(tls *libc.TLS, p uintptr) {
+ var pMWin uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpMWin
+ var v uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpVdbe
+
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
+ windowFullScan(tls, p)
+ } else {
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var pWin uintptr
+
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var pFunc uintptr = (*Window)(unsafe.Pointer(pWin)).FpWFunc
+
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&nth_valueName)) ||
+ (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&first_valueName)) {
+ var csr int32 = (*Window)(unsafe.Pointer(pWin)).FcsrApp
+ var lbl int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var tmpReg int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregResult)
+
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&nth_valueName)) {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, (*Window)(unsafe.Pointer(pMWin)).FiEphCsr, (*Window)(unsafe.Pointer(pWin)).FiArgCol+1, tmpReg)
+ windowCheckValue(tls, pParse, tmpReg, 2)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, tmpReg)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_Add, tmpReg, (*Window)(unsafe.Pointer(pWin)).FregApp, tmpReg)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Gt, (*Window)(unsafe.Pointer(pWin)).FregApp+1, lbl, tmpReg)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, csr, 0, tmpReg)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csr, (*Window)(unsafe.Pointer(pWin)).FiArgCol, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeResolveLabel(tls, v, lbl)
+ Xsqlite3ReleaseTempReg(tls, pParse, tmpReg)
+ } else if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&leadName)) || (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&lagName)) {
+ var nArg int32 = (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Window)(unsafe.Pointer(pWin)).FpOwner + 32)))).FnExpr
+ var csr int32 = (*Window)(unsafe.Pointer(pWin)).FcsrApp
+ var lbl int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var tmpReg int32 = Xsqlite3GetTempReg(tls, pParse)
+ var iEph int32 = (*Window)(unsafe.Pointer(pMWin)).FiEphCsr
+
+ if nArg < 3 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEph, (*Window)(unsafe.Pointer(pWin)).FiArgCol+2, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, iEph, tmpReg)
+ if nArg < 2 {
+ var val int32 = func() int32 {
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&leadName)) {
+ return 1
+ }
+ return -1
+ }()
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, tmpReg, val)
+ } else {
+ var op int32 = func() int32 {
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&leadName)) {
+ return OP_Add
+ }
+ return OP_Subtract
+ }()
+ var tmpReg2 int32 = Xsqlite3GetTempReg(tls, pParse)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, iEph, (*Window)(unsafe.Pointer(pWin)).FiArgCol+1, tmpReg2)
+ Xsqlite3VdbeAddOp3(tls, v, op, tmpReg2, tmpReg, tmpReg)
+ Xsqlite3ReleaseTempReg(tls, pParse, tmpReg2)
+ }
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_SeekRowid, csr, lbl, tmpReg)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csr, (*Window)(unsafe.Pointer(pWin)).FiArgCol, (*Window)(unsafe.Pointer(pWin)).FregResult)
+ Xsqlite3VdbeResolveLabel(tls, v, lbl)
+ Xsqlite3ReleaseTempReg(tls, pParse, tmpReg)
+ }
+ }
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Gosub, (*WindowCodeArg)(unsafe.Pointer(p)).FregGosub, (*WindowCodeArg)(unsafe.Pointer(p)).FaddrGosub)
+}
+
+func windowInitAccum(tls *libc.TLS, pParse uintptr, pMWin uintptr) int32 {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var regArg int32
+ var nArg int32 = 0
+ var pWin uintptr
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var pFunc uintptr = (*Window)(unsafe.Pointer(pWin)).FpWFunc
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Null, 0, (*Window)(unsafe.Pointer(pWin)).FregAccum)
+ nArg = func() int32 {
+ if nArg > windowArgCount(tls, pWin) {
+ return nArg
+ }
+ return windowArgCount(tls, pWin)
+ }()
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid == 0 {
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&nth_valueName)) || (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&first_valueName)) {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pWin)).FregApp)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pWin)).FregApp+1)
+ }
+
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&U32(SQLITE_FUNC_MINMAX) != 0 && (*Window)(unsafe.Pointer(pWin)).FcsrApp != 0 {
+ Xsqlite3VdbeAddOp1(tls, v, OP_ResetSorter, (*Window)(unsafe.Pointer(pWin)).FcsrApp)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pWin)).FregApp+1)
+ }
+ }
+ }
+ regArg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nArg
+ return regArg
+}
+
+func windowCacheFrame(tls *libc.TLS, pMWin uintptr) int32 {
+ var pWin uintptr
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
+ return 1
+ }
+ for pWin = pMWin; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ var pFunc uintptr = (*Window)(unsafe.Pointer(pWin)).FpWFunc
+ if (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&nth_valueName)) ||
+ (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&first_valueName)) ||
+ (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&leadName)) ||
+ (*FuncDef)(unsafe.Pointer(pFunc)).FzName == uintptr(unsafe.Pointer(&lagName)) {
+ return 1
+ }
+ }
+ return 0
+}
+
+func windowIfNewPeer(tls *libc.TLS, pParse uintptr, pOrderBy uintptr, regNew int32, regOld int32, addr int32) {
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ if pOrderBy != 0 {
+ var nVal int32 = (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr
+ var pKeyInfo uintptr = Xsqlite3KeyInfoFromExprList(tls, pParse, pOrderBy, 0, 0)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Compare, regOld, regNew, nVal)
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump,
+ Xsqlite3VdbeCurrentAddr(tls, v)+1, addr, Xsqlite3VdbeCurrentAddr(tls, v)+1)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regNew, regOld, nVal-1)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addr)
+ }
+}
+
+func windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal int32, csr2 int32, lbl int32) {
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var pOrderBy uintptr = (*Window)(unsafe.Pointer((*WindowCodeArg)(unsafe.Pointer(p)).FpMWin)).FpOrderBy
+ var reg1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ var reg2 int32 = Xsqlite3GetTempReg(tls, pParse)
+ var regString int32 = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ var arith int32 = OP_Add
+ var addrGe int32
+ var addrDone int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var pColl uintptr
+
+ windowReadPeerValues(tls, p, csr1, reg1)
+ windowReadPeerValues(tls, p, csr2, reg2)
+
+ if int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8)).Ffg.FsortFlags)&KEYINFO_ORDER_DESC != 0 {
+ switch op {
+ case OP_Ge:
+ op = OP_Le
+ break
+ fallthrough
+ case OP_Gt:
+ op = OP_Lt
+ break
+ fallthrough
+ default:
+ op = OP_Ge
+ break
+ }
+ arith = OP_Subtract
+ }
+
+ if int32((*ExprList_item)(unsafe.Pointer(pOrderBy+8)).Ffg.FsortFlags)&KEYINFO_ORDER_BIGNULL != 0 {
+ var addr int32 = Xsqlite3VdbeAddOp1(tls, v, OP_NotNull, reg1)
+ switch op {
+ case OP_Ge:
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, lbl)
+ break
+ fallthrough
+ case OP_Gt:
+ Xsqlite3VdbeAddOp2(tls, v, OP_NotNull, reg2, lbl)
+
+ break
+ fallthrough
+ case OP_Le:
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, reg2, lbl)
+
+ break
+ fallthrough
+ default:
+ break
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrDone)
+
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_IsNull, reg2,
+ func() int32 {
+ if op == OP_Gt || op == OP_Ge {
+ return addrDone
+ }
+ return lbl
+ }())
+
+ }
+
+ Xsqlite3VdbeAddOp4(tls, v, OP_String8, 0, regString, 0, ts+1547, -1)
+ addrGe = Xsqlite3VdbeAddOp3(tls, v, OP_Ge, regString, 0, reg1)
+
+ if op == OP_Ge && arith == OP_Add || op == OP_Le && arith == OP_Subtract {
+ Xsqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, arith, regVal, reg1, reg1)
+ Xsqlite3VdbeJumpHere(tls, v, addrGe)
+
+ Xsqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1)
+ pColl = Xsqlite3ExprNNCollSeq(tls, pParse, (*ExprList_item)(unsafe.Pointer(pOrderBy+8)).FpExpr)
+ Xsqlite3VdbeAppendP4(tls, v, pColl, -2)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NULLEQ))
+ Xsqlite3VdbeResolveLabel(tls, v, addrDone)
+
+ Xsqlite3ReleaseTempReg(tls, pParse, reg1)
+ Xsqlite3ReleaseTempReg(tls, pParse, reg2)
+
+}
+
+func windowCodeOp(tls *libc.TLS, p uintptr, op int32, regCountdown int32, jumpOnEof int32) int32 {
+ var csr int32
+ var reg int32
+ var pParse uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpParse
+ var pMWin uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpMWin
+ var ret int32 = 0
+ var v uintptr = (*WindowCodeArg)(unsafe.Pointer(p)).FpVdbe
+ var addrContinue int32 = 0
+ var bPeer int32 = libc.Bool32(int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_ROWS)
+
+ var lblDone int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var addrNextRange int32 = 0
+
+ if op == WINDOW_AGGINVERSE && int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_UNBOUNDED {
+ return 0
+ }
+
+ if regCountdown > 0 {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ addrNextRange = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ if op == WINDOW_AGGINVERSE {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING {
+ windowCodeRangeTest(tls,
+ p, OP_Le, (*WindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, regCountdown, (*WindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, lblDone)
+ } else {
+ windowCodeRangeTest(tls,
+ p, OP_Ge, (*WindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, regCountdown, (*WindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, lblDone)
+ }
+ } else {
+ windowCodeRangeTest(tls,
+ p, OP_Gt, (*WindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regCountdown, (*WindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr, lblDone)
+ }
+ } else {
+ Xsqlite3VdbeAddOp3(tls, v, OP_IfPos, regCountdown, lblDone, 1)
+
+ }
+ }
+
+ if op == WINDOW_RETURN_ROW && (*Window)(unsafe.Pointer(pMWin)).FregStartRowid == 0 {
+ windowAggFinal(tls, p, 0)
+ }
+ addrContinue = Xsqlite3VdbeCurrentAddr(tls, v)
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) && regCountdown != 0 &&
+ int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ var regRowid1 int32 = Xsqlite3GetTempReg(tls, pParse)
+ var regRowid2 int32 = Xsqlite3GetTempReg(tls, pParse)
+ if op == WINDOW_AGGINVERSE {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, (*WindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr, regRowid1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, (*WindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regRowid2)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ge, regRowid2, lblDone, regRowid1)
+
+ } else if (*WindowCodeArg)(unsafe.Pointer(p)).FregRowid != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Rowid, (*WindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr, regRowid1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Ge, (*WindowCodeArg)(unsafe.Pointer(p)).FregRowid, lblDone, regRowid1)
+
+ }
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid1)
+ Xsqlite3ReleaseTempReg(tls, pParse, regRowid2)
+
+ }
+
+ switch op {
+ case WINDOW_RETURN_ROW:
+ csr = (*WindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Fcsr
+ reg = (*WindowCodeArg)(unsafe.Pointer(p)).Fcurrent.Freg
+ windowReturnOneRow(tls, p)
+ break
+
+ case WINDOW_AGGINVERSE:
+ csr = (*WindowCodeArg)(unsafe.Pointer(p)).Fstart.Fcsr
+ reg = (*WindowCodeArg)(unsafe.Pointer(p)).Fstart.Freg
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, (*Window)(unsafe.Pointer(pMWin)).FregStartRowid, 1)
+ } else {
+ windowAggStep(tls, p, pMWin, csr, 1, (*WindowCodeArg)(unsafe.Pointer(p)).FregArg)
+ }
+ break
+
+ default:
+ csr = (*WindowCodeArg)(unsafe.Pointer(p)).Fend.Fcsr
+ reg = (*WindowCodeArg)(unsafe.Pointer(p)).Fend.Freg
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_AddImm, (*Window)(unsafe.Pointer(pMWin)).FregEndRowid, 1)
+ } else {
+ windowAggStep(tls, p, pMWin, csr, 0, (*WindowCodeArg)(unsafe.Pointer(p)).FregArg)
+ }
+ break
+ }
+
+ if op == (*WindowCodeArg)(unsafe.Pointer(p)).FeDelete {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Delete, csr)
+ Xsqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_SAVEPOSITION))
+ }
+
+ if jumpOnEof != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, csr, Xsqlite3VdbeCurrentAddr(tls, v)+2)
+
+ ret = Xsqlite3VdbeAddOp0(tls, v, OP_Goto)
+ } else {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Next, csr, Xsqlite3VdbeCurrentAddr(tls, v)+1+bPeer)
+
+ if bPeer != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, lblDone)
+ }
+ }
+
+ if bPeer != 0 {
+ var nReg int32 = func() int32 {
+ if (*Window)(unsafe.Pointer(pMWin)).FpOrderBy != 0 {
+ return (*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pMWin)).FpOrderBy)).FnExpr
+ }
+ return 0
+ }()
+ var regTmp int32 = func() int32 {
+ if nReg != 0 {
+ return Xsqlite3GetTempRange(tls, pParse, nReg)
+ }
+ return 0
+ }()
+ windowReadPeerValues(tls, p, csr, regTmp)
+ windowIfNewPeer(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpOrderBy, regTmp, reg, addrContinue)
+ Xsqlite3ReleaseTempRange(tls, pParse, regTmp, nReg)
+ }
+
+ if addrNextRange != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrNextRange)
+ }
+ Xsqlite3VdbeResolveLabel(tls, v, lblDone)
+ return ret
+}
+
+// Allocate and return a duplicate of the Window object indicated by the
+// third argument. Set the Window.pOwner field of the new object to
+// pOwner.
+func Xsqlite3WindowDup(tls *libc.TLS, db uintptr, pOwner uintptr, p uintptr) uintptr {
+ var pNew uintptr = uintptr(0)
+ if p != 0 {
+ pNew = Xsqlite3DbMallocZero(tls, db, uint64(unsafe.Sizeof(Window{})))
+ if pNew != 0 {
+ (*Window)(unsafe.Pointer(pNew)).FzName = Xsqlite3DbStrDup(tls, db, (*Window)(unsafe.Pointer(p)).FzName)
+ (*Window)(unsafe.Pointer(pNew)).FzBase = Xsqlite3DbStrDup(tls, db, (*Window)(unsafe.Pointer(p)).FzBase)
+ (*Window)(unsafe.Pointer(pNew)).FpFilter = Xsqlite3ExprDup(tls, db, (*Window)(unsafe.Pointer(p)).FpFilter, 0)
+ (*Window)(unsafe.Pointer(pNew)).FpWFunc = (*Window)(unsafe.Pointer(p)).FpWFunc
+ (*Window)(unsafe.Pointer(pNew)).FpPartition = Xsqlite3ExprListDup(tls, db, (*Window)(unsafe.Pointer(p)).FpPartition, 0)
+ (*Window)(unsafe.Pointer(pNew)).FpOrderBy = Xsqlite3ExprListDup(tls, db, (*Window)(unsafe.Pointer(p)).FpOrderBy, 0)
+ (*Window)(unsafe.Pointer(pNew)).FeFrmType = (*Window)(unsafe.Pointer(p)).FeFrmType
+ (*Window)(unsafe.Pointer(pNew)).FeEnd = (*Window)(unsafe.Pointer(p)).FeEnd
+ (*Window)(unsafe.Pointer(pNew)).FeStart = (*Window)(unsafe.Pointer(p)).FeStart
+ (*Window)(unsafe.Pointer(pNew)).FeExclude = (*Window)(unsafe.Pointer(p)).FeExclude
+ (*Window)(unsafe.Pointer(pNew)).FregResult = (*Window)(unsafe.Pointer(p)).FregResult
+ (*Window)(unsafe.Pointer(pNew)).FregAccum = (*Window)(unsafe.Pointer(p)).FregAccum
+ (*Window)(unsafe.Pointer(pNew)).FiArgCol = (*Window)(unsafe.Pointer(p)).FiArgCol
+ (*Window)(unsafe.Pointer(pNew)).FiEphCsr = (*Window)(unsafe.Pointer(p)).FiEphCsr
+ (*Window)(unsafe.Pointer(pNew)).FbExprArgs = (*Window)(unsafe.Pointer(p)).FbExprArgs
+ (*Window)(unsafe.Pointer(pNew)).FpStart = Xsqlite3ExprDup(tls, db, (*Window)(unsafe.Pointer(p)).FpStart, 0)
+ (*Window)(unsafe.Pointer(pNew)).FpEnd = Xsqlite3ExprDup(tls, db, (*Window)(unsafe.Pointer(p)).FpEnd, 0)
+ (*Window)(unsafe.Pointer(pNew)).FpOwner = pOwner
+ (*Window)(unsafe.Pointer(pNew)).FbImplicitFrame = (*Window)(unsafe.Pointer(p)).FbImplicitFrame
+ }
+ }
+ return pNew
+}
+
+// Return a copy of the linked list of Window objects passed as the
+// second argument.
+func Xsqlite3WindowListDup(tls *libc.TLS, db uintptr, p uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pWin uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var pp uintptr = bp
+
+ for pWin = p; pWin != 0; pWin = (*Window)(unsafe.Pointer(pWin)).FpNextWin {
+ *(*uintptr)(unsafe.Pointer(pp)) = Xsqlite3WindowDup(tls, db, uintptr(0), pWin)
+ if *(*uintptr)(unsafe.Pointer(pp)) == uintptr(0) {
+ break
+ }
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 64
+ }
+
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+func windowExprGtZero(tls *libc.TLS, pParse uintptr, pExpr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var ret int32 = 0
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ Xsqlite3ValueFromExpr(tls, db, pExpr, (*Sqlite3)(unsafe.Pointer(db)).Fenc, uint8(SQLITE_AFF_NUMERIC), bp)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 && Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(bp))) > 0 {
+ ret = 1
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return ret
+}
+
+// sqlite3WhereBegin() has already been called for the SELECT statement
+// passed as the second argument when this function is invoked. It generates
+// code to populate the Window.regResult register for each window function
+// and invoke the sub-routine at instruction addrGosub once for each row.
+// sqlite3WhereEnd() is always called before returning.
+//
+// This function handles several different types of window frames, which
+// require slightly different processing. The following pseudo code is
+// used to implement window frames of the form:
+//
+// ROWS BETWEEN <expr1> PRECEDING AND <expr2> FOLLOWING
+//
+// Other window frame types use variants of the following:
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+//
+// if( first row of partition ){
+// // Rewind three cursors, all open on the eph table.
+// Rewind(csrEnd);
+// Rewind(csrStart);
+// Rewind(csrCurrent);
+//
+// regEnd = <expr2> // FOLLOWING expression
+// regStart = <expr1> // PRECEDING expression
+// }else{
+// // First time this branch is taken, the eph table contains two
+// // rows. The first row in the partition, which all three cursors
+// // currently point to, and the following row.
+// AGGSTEP
+// if( (regEnd--)<=0 ){
+// RETURN_ROW
+// if( (regStart--)<=0 ){
+// AGGINVERSE
+// }
+// }
+// }
+// }
+// flush:
+// AGGSTEP
+// while( 1 ){
+// RETURN ROW
+// if( csrCurrent is EOF ) break;
+// if( (regStart--)<=0 ){
+// AggInverse(csrStart)
+// Next(csrStart)
+// }
+// }
+//
+// The pseudo-code above uses the following shorthand:
+//
+// AGGSTEP: invoke the aggregate xStep() function for each window function
+// with arguments read from the current row of cursor csrEnd, then
+// step cursor csrEnd forward one row (i.e. sqlite3BtreeNext()).
+//
+// RETURN_ROW: return a row to the caller based on the contents of the
+// current row of csrCurrent and the current state of all
+// aggregates. Then step cursor csrCurrent forward one row.
+//
+// AGGINVERSE: invoke the aggregate xInverse() function for each window
+// functions with arguments read from the current row of cursor
+// csrStart. Then step csrStart forward one row.
+//
+// There are two other ROWS window frames that are handled significantly
+// differently from the above - "BETWEEN <expr> PRECEDING AND <expr> PRECEDING"
+// and "BETWEEN <expr> FOLLOWING AND <expr> FOLLOWING". These are special
+// cases because they change the order in which the three cursors (csrStart,
+// csrCurrent and csrEnd) iterate through the ephemeral table. Cases that
+// use UNBOUNDED or CURRENT ROW are much simpler variations on one of these
+// three.
+//
+// ROWS BETWEEN <expr1> PRECEDING AND <expr2> PRECEDING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// }else{
+// if( (regEnd--)<=0 ){
+// AGGSTEP
+// }
+// RETURN_ROW
+// if( (regStart--)<=0 ){
+// AGGINVERSE
+// }
+// }
+// }
+// flush:
+// if( (regEnd--)<=0 ){
+// AGGSTEP
+// }
+// RETURN_ROW
+//
+//
+// ROWS BETWEEN <expr1> FOLLOWING AND <expr2> FOLLOWING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = regEnd - <expr1>
+// }else{
+// AGGSTEP
+// if( (regEnd--)<=0 ){
+// RETURN_ROW
+// }
+// if( (regStart--)<=0 ){
+// AGGINVERSE
+// }
+// }
+// }
+// flush:
+// AGGSTEP
+// while( 1 ){
+// if( (regEnd--)<=0 ){
+// RETURN_ROW
+// if( eof ) break;
+// }
+// if( (regStart--)<=0 ){
+// AGGINVERSE
+// if( eof ) break
+// }
+// }
+// while( !eof csrCurrent ){
+// RETURN_ROW
+// }
+//
+// For the most part, the patterns above are adapted to support UNBOUNDED by
+// assuming that it is equivalent to "infinity PRECEDING/FOLLOWING" and
+// CURRENT ROW by assuming that it is equivilent to "0 PRECEDING/FOLLOWING".
+// This is optimized of course - branches that will never be taken and
+// conditions that are always true are omitted from the VM code. The only
+// exceptional case is:
+//
+// ROWS BETWEEN <expr1> FOLLOWING AND UNBOUNDED FOLLOWING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regStart = <expr1>
+// }else{
+// AGGSTEP
+// }
+// }
+// flush:
+// AGGSTEP
+// while( 1 ){
+// if( (regStart--)<=0 ){
+// AGGINVERSE
+// if( eof ) break
+// }
+// RETURN_ROW
+// }
+// while( !eof csrCurrent ){
+// RETURN_ROW
+// }
+//
+// Also requiring special handling are the cases:
+//
+// ROWS BETWEEN <expr1> PRECEDING AND <expr2> PRECEDING
+// ROWS BETWEEN <expr1> FOLLOWING AND <expr2> FOLLOWING
+//
+// when (expr1 < expr2). This is detected at runtime, not by this function.
+// To handle this case, the pseudo-code programs depicted above are modified
+// slightly to be:
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// if( regEnd < regStart ){
+// RETURN_ROW
+// delete eph table contents
+// continue
+// }
+// ...
+//
+// The new "continue" statement in the above jumps to the next iteration
+// of the outer loop - the one started by sqlite3WhereBegin().
+//
+// The various GROUPS cases are implemented using the same patterns as
+// ROWS. The VM code is modified slightly so that:
+//
+// 1. The else branch in the main loop is only taken if the row just
+// added to the ephemeral table is the start of a new group. In
+// other words, it becomes:
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// }else if( new group ){
+// ...
+// }
+// }
+//
+// 2. Instead of processing a single row, each RETURN_ROW, AGGSTEP or
+// AGGINVERSE step processes the current row of the relevant cursor and
+// all subsequent rows belonging to the same group.
+//
+// RANGE window frames are a little different again. As for GROUPS, the
+// main loop runs once per group only. And RETURN_ROW, AGGSTEP and AGGINVERSE
+// deal in groups instead of rows. As for ROWS and GROUPS, there are three
+// basic cases:
+//
+// RANGE BETWEEN <expr1> PRECEDING AND <expr2> FOLLOWING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// }else{
+// AGGSTEP
+// while( (csrCurrent.key + regEnd) < csrEnd.key ){
+// RETURN_ROW
+// while( csrStart.key + regStart) < csrCurrent.key ){
+// AGGINVERSE
+// }
+// }
+// }
+// }
+// flush:
+// AGGSTEP
+// while( 1 ){
+// RETURN ROW
+// if( csrCurrent is EOF ) break;
+// while( csrStart.key + regStart) < csrCurrent.key ){
+// AGGINVERSE
+// }
+// }
+// }
+//
+// In the above notation, "csr.key" means the current value of the ORDER BY
+// expression (there is only ever 1 for a RANGE that uses an <expr> FOLLOWING
+// or <expr PRECEDING) read from cursor csr.
+//
+// RANGE BETWEEN <expr1> PRECEDING AND <expr2> PRECEDING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// }else{
+// while( (csrEnd.key + regEnd) <= csrCurrent.key ){
+// AGGSTEP
+// }
+// while( (csrStart.key + regStart) < csrCurrent.key ){
+// AGGINVERSE
+// }
+// RETURN_ROW
+// }
+// }
+// flush:
+// while( (csrEnd.key + regEnd) <= csrCurrent.key ){
+// AGGSTEP
+// }
+// while( (csrStart.key + regStart) < csrCurrent.key ){
+// AGGINVERSE
+// }
+// RETURN_ROW
+//
+// RANGE BETWEEN <expr1> FOLLOWING AND <expr2> FOLLOWING
+//
+// ... loop started by sqlite3WhereBegin() ...
+// if( new partition ){
+// Gosub flush
+// }
+// Insert new row into eph table.
+// if( first row of partition ){
+// Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent)
+// regEnd = <expr2>
+// regStart = <expr1>
+// }else{
+// AGGSTEP
+// while( (csrCurrent.key + regEnd) < csrEnd.key ){
+// while( (csrCurrent.key + regStart) > csrStart.key ){
+// AGGINVERSE
+// }
+// RETURN_ROW
+// }
+// }
+// }
+// flush:
+// AGGSTEP
+// while( 1 ){
+// while( (csrCurrent.key + regStart) > csrStart.key ){
+// AGGINVERSE
+// if( eof ) break "while( 1 )" loop.
+// }
+// RETURN_ROW
+// }
+// while( !eof csrCurrent ){
+// RETURN_ROW
+// }
+//
+// The text above leaves out many details. Refer to the code and comments
+// below for a more complete picture.
+func Xsqlite3WindowCodeStep(tls *libc.TLS, pParse uintptr, p uintptr, pWInfo uintptr, regGosub int32, addrGosub int32) {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var pMWin uintptr = (*Select)(unsafe.Pointer(p)).FpWin
+ var pOrderBy uintptr = (*Window)(unsafe.Pointer(pMWin)).FpOrderBy
+ var v uintptr = Xsqlite3GetVdbe(tls, pParse)
+ var csrWrite int32
+ var csrInput int32 = (*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FiCursor
+ var nInput int32 = int32((*Table)(unsafe.Pointer((*SrcItem)(unsafe.Pointer((*Select)(unsafe.Pointer(p)).FpSrc + 8)).FpTab)).FnCol)
+ var iInput int32
+ var addrNe int32
+ var addrGosubFlush int32 = 0
+ var addrInteger int32 = 0
+ var addrEmpty int32
+ var regNew int32
+ var regRecord int32
+ var regNewPeer int32 = 0
+ var regPeer int32 = 0
+ var regFlushPart int32 = 0
+
+ var lblWhereEnd int32
+ var regStart int32 = 0
+ var regEnd int32 = 0
+
+ lblWhereEnd = Xsqlite3VdbeMakeLabel(tls, pParse)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(WindowCodeArg{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FpParse = pParse
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FpMWin = pMWin
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FpVdbe = v
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FregGosub = regGosub
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FaddrGosub = addrGosub
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr = (*Window)(unsafe.Pointer(pMWin)).FiEphCsr
+ csrWrite = (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr + 1
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fstart.Fcsr = (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr + 2
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Fcsr = (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr + 3
+
+ switch int32((*Window)(unsafe.Pointer(pMWin)).FeStart) {
+ case TK_FOLLOWING:
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_RANGE &&
+ windowExprGtZero(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpStart) != 0 {
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FeDelete = WINDOW_RETURN_ROW
+ }
+ break
+ case TK_UNBOUNDED:
+ if windowCacheFrame(tls, pMWin) == 0 {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_PRECEDING {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_RANGE &&
+ windowExprGtZero(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpEnd) != 0 {
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FeDelete = WINDOW_AGGSTEP
+ }
+ } else {
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FeDelete = WINDOW_RETURN_ROW
+ }
+ }
+ break
+ default:
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FeDelete = WINDOW_AGGINVERSE
+ break
+ }
+
+ regNew = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nInput
+ regRecord = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FregRowid = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_PRECEDING || int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING {
+ regStart = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_PRECEDING || int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_FOLLOWING {
+ regEnd = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ }
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_ROWS {
+ var nPeer int32 = func() int32 {
+ if pOrderBy != 0 {
+ return (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr
+ }
+ return 0
+ }()
+ regNewPeer = regNew + (*Window)(unsafe.Pointer(pMWin)).FnBufferCol
+ if (*Window)(unsafe.Pointer(pMWin)).FpPartition != 0 {
+ regNewPeer = regNewPeer + (*ExprList)(unsafe.Pointer((*Window)(unsafe.Pointer(pMWin)).FpPartition)).FnExpr
+ }
+ regPeer = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPeer
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fstart.Freg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPeer
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Freg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPeer
+ (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Freg = (*Parse)(unsafe.Pointer(pParse)).FnMem + 1
+ *(*int32)(unsafe.Pointer(pParse + 56)) += nPeer
+ }
+
+ for iInput = 0; iInput < nInput; iInput++ {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Column, csrInput, iInput, regNew+iInput)
+ }
+ Xsqlite3VdbeAddOp3(tls, v, OP_MakeRecord, regNew, nInput, regRecord)
+
+ if (*Window)(unsafe.Pointer(pMWin)).FpPartition != 0 {
+ var addr int32
+ var pPart uintptr = (*Window)(unsafe.Pointer(pMWin)).FpPartition
+ var nPart int32 = (*ExprList)(unsafe.Pointer(pPart)).FnExpr
+ var regNewPart int32 = regNew + (*Window)(unsafe.Pointer(pMWin)).FnBufferCol
+ var pKeyInfo uintptr = Xsqlite3KeyInfoFromExprList(tls, pParse, pPart, 0, 0)
+
+ regFlushPart = libc.PreIncInt32(&(*Parse)(unsafe.Pointer(pParse)).FnMem, 1)
+ addr = Xsqlite3VdbeAddOp3(tls, v, OP_Compare, regNewPart, (*Window)(unsafe.Pointer(pMWin)).FregPart, nPart)
+ Xsqlite3VdbeAppendP4(tls, v, pKeyInfo, -8)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Jump, addr+2, addr+4, addr+2)
+
+ addrGosubFlush = Xsqlite3VdbeAddOp1(tls, v, OP_Gosub, regFlushPart)
+
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regNewPart, (*Window)(unsafe.Pointer(pMWin)).FregPart, nPart-1)
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_NewRowid, csrWrite, (*WindowCodeArg)(unsafe.Pointer(bp)).FregRowid)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Insert, csrWrite, regRecord, (*WindowCodeArg)(unsafe.Pointer(bp)).FregRowid)
+ addrNe = Xsqlite3VdbeAddOp3(tls, v, OP_Ne, (*Window)(unsafe.Pointer(pMWin)).FregOne, 0, (*WindowCodeArg)(unsafe.Pointer(bp)).FregRowid)
+
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FregArg = windowInitAccum(tls, pParse, pMWin)
+
+ if regStart != 0 {
+ Xsqlite3ExprCode(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpStart, regStart)
+ windowCheckValue(tls, pParse, regStart, 0+func() int32 {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ return 3
+ }
+ return 0
+ }())
+ }
+ if regEnd != 0 {
+ Xsqlite3ExprCode(tls, pParse, (*Window)(unsafe.Pointer(pMWin)).FpEnd, regEnd)
+ windowCheckValue(tls, pParse, regEnd, 1+func() int32 {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ return 3
+ }
+ return 0
+ }())
+ }
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_RANGE && int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) && regStart != 0 {
+ var op int32 = func() int32 {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING {
+ return OP_Ge
+ }
+ return OP_Le
+ }()
+ var addrGe int32 = Xsqlite3VdbeAddOp3(tls, v, op, regStart, 0, regEnd)
+
+ windowAggFinal(tls, bp, 0)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr)
+ windowReturnOneRow(tls, bp)
+ Xsqlite3VdbeAddOp1(tls, v, OP_ResetSorter, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, lblWhereEnd)
+ Xsqlite3VdbeJumpHere(tls, v, addrGe)
+ }
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING && int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) != TK_RANGE && regEnd != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Subtract, regStart, regEnd, regStart)
+ }
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) != TK_UNBOUNDED {
+ Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*WindowCodeArg)(unsafe.Pointer(bp)).Fstart.Fcsr)
+ }
+ Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr)
+ Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Fcsr)
+ if regPeer != 0 && pOrderBy != 0 {
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regNewPeer, regPeer, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr-1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regPeer, (*WindowCodeArg)(unsafe.Pointer(bp)).Fstart.Freg, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr-1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regPeer, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Freg, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr-1)
+ Xsqlite3VdbeAddOp3(tls, v, OP_Copy, regPeer, (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Freg, (*ExprList)(unsafe.Pointer(pOrderBy)).FnExpr-1)
+ }
+
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, lblWhereEnd)
+
+ Xsqlite3VdbeJumpHere(tls, v, addrNe)
+
+ if regPeer != 0 {
+ windowIfNewPeer(tls, pParse, pOrderBy, regNewPeer, regPeer, lblWhereEnd)
+ }
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING {
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, 0, 0)
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) != TK_UNBOUNDED {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ var lbl int32 = Xsqlite3VdbeMakeLabel(tls, pParse)
+ var addrNext int32 = Xsqlite3VdbeCurrentAddr(tls, v)
+ windowCodeRangeTest(tls, bp, OP_Ge, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr, regEnd, (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Fcsr, lbl)
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrNext)
+ Xsqlite3VdbeResolveLabel(tls, v, lbl)
+ } else {
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, regEnd, 0)
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ }
+ }
+ } else if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_PRECEDING {
+ var bRPS int32 = libc.Bool32(int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_PRECEDING && int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE)
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, regEnd, 0)
+ if bRPS != 0 {
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ }
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 0)
+ if !(bRPS != 0) {
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ }
+ } else {
+ var addr int32 = 0
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, 0, 0)
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) != TK_UNBOUNDED {
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ var lbl int32 = 0
+ addr = Xsqlite3VdbeCurrentAddr(tls, v)
+ if regEnd != 0 {
+ lbl = Xsqlite3VdbeMakeLabel(tls, pParse)
+ windowCodeRangeTest(tls, bp, OP_Ge, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr, regEnd, (*WindowCodeArg)(unsafe.Pointer(bp)).Fend.Fcsr, lbl)
+ }
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 0)
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ if regEnd != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addr)
+ Xsqlite3VdbeResolveLabel(tls, v, lbl)
+ }
+ } else {
+ if regEnd != 0 {
+ addr = Xsqlite3VdbeAddOp3(tls, v, OP_IfPos, regEnd, 0, 1)
+
+ }
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 0)
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ if regEnd != 0 {
+ Xsqlite3VdbeJumpHere(tls, v, addr)
+ }
+ }
+ }
+ }
+
+ Xsqlite3VdbeResolveLabel(tls, v, lblWhereEnd)
+ Xsqlite3WhereEnd(tls, pWInfo)
+
+ if (*Window)(unsafe.Pointer(pMWin)).FpPartition != 0 {
+ addrInteger = Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, regFlushPart)
+ Xsqlite3VdbeJumpHere(tls, v, addrGosubFlush)
+ }
+
+ (*WindowCodeArg)(unsafe.Pointer(bp)).FregRowid = 0
+ addrEmpty = Xsqlite3VdbeAddOp1(tls, v, OP_Rewind, csrWrite)
+
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_PRECEDING {
+ var bRPS int32 = libc.Bool32(int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_PRECEDING && int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE)
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, regEnd, 0)
+ if bRPS != 0 {
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ }
+ windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 0)
+ } else if int32((*Window)(unsafe.Pointer(pMWin)).FeStart) == TK_FOLLOWING {
+ var addrStart int32
+ var addrBreak1 int32
+ var addrBreak2 int32
+ var addrBreak3 int32
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, 0, 0)
+ if int32((*Window)(unsafe.Pointer(pMWin)).FeFrmType) == TK_RANGE {
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ addrBreak2 = windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 1)
+ addrBreak1 = windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 1)
+ } else if int32((*Window)(unsafe.Pointer(pMWin)).FeEnd) == TK_UNBOUNDED {
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ addrBreak1 = windowCodeOp(tls, bp, WINDOW_RETURN_ROW, regStart, 1)
+ addrBreak2 = windowCodeOp(tls, bp, WINDOW_AGGINVERSE, 0, 1)
+ } else {
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ addrBreak1 = windowCodeOp(tls, bp, WINDOW_RETURN_ROW, regEnd, 1)
+ addrBreak2 = windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 1)
+ }
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrStart)
+ Xsqlite3VdbeJumpHere(tls, v, addrBreak2)
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ addrBreak3 = windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 1)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrStart)
+ Xsqlite3VdbeJumpHere(tls, v, addrBreak1)
+ Xsqlite3VdbeJumpHere(tls, v, addrBreak3)
+ } else {
+ var addrBreak int32
+ var addrStart int32
+ windowCodeOp(tls, bp, WINDOW_AGGSTEP, 0, 0)
+ addrStart = Xsqlite3VdbeCurrentAddr(tls, v)
+ addrBreak = windowCodeOp(tls, bp, WINDOW_RETURN_ROW, 0, 1)
+ windowCodeOp(tls, bp, WINDOW_AGGINVERSE, regStart, 0)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Goto, 0, addrStart)
+ Xsqlite3VdbeJumpHere(tls, v, addrBreak)
+ }
+ Xsqlite3VdbeJumpHere(tls, v, addrEmpty)
+
+ Xsqlite3VdbeAddOp1(tls, v, OP_ResetSorter, (*WindowCodeArg)(unsafe.Pointer(bp)).Fcurrent.Fcsr)
+ if (*Window)(unsafe.Pointer(pMWin)).FpPartition != 0 {
+ if (*Window)(unsafe.Pointer(pMWin)).FregStartRowid != 0 {
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 1, (*Window)(unsafe.Pointer(pMWin)).FregStartRowid)
+ Xsqlite3VdbeAddOp2(tls, v, OP_Integer, 0, (*Window)(unsafe.Pointer(pMWin)).FregEndRowid)
+ }
+ Xsqlite3VdbeChangeP1(tls, v, addrInteger, Xsqlite3VdbeCurrentAddr(tls, v))
+ Xsqlite3VdbeAddOp1(tls, v, OP_Return, regFlushPart)
+ }
+}
+
+// An instance of the following structure describes the event of a
+// TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT,
+// TK_DELETE, or TK_INSTEAD. If the event is of the form
+//
+// UPDATE ON (a,b,c)
+//
+// Then the "b" IdList records the list "a,b,c".
+type TrigEvent = struct {
+ Fa int32
+ F__ccgo_pad1 [4]byte
+ Fb uintptr
+}
+
+type FrameBound = struct {
+ FeType int32
+ F__ccgo_pad1 [4]byte
+ FpExpr uintptr
+}
+
+func disableLookaside(tls *libc.TLS, pParse uintptr) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ (*Parse)(unsafe.Pointer(pParse)).FdisableLookaside++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+}
+
+func parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Select)(unsafe.Pointer(p)).FpPrior != 0 {
+ var pNext uintptr = uintptr(0)
+ var pLoop uintptr = p
+ var mxSelect int32
+ var cnt int32 = 1
+ for 1 != 0 {
+ (*Select)(unsafe.Pointer(pLoop)).FpNext = pNext
+ *(*U32)(unsafe.Pointer(pLoop + 4)) |= U32(SF_Compound)
+ pNext = pLoop
+ pLoop = (*Select)(unsafe.Pointer(pLoop)).FpPrior
+ if pLoop == uintptr(0) {
+ break
+ }
+ cnt++
+ if (*Select)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*Select)(unsafe.Pointer(pLoop)).FpLimit != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23267,
+ libc.VaList(bp, func() uintptr {
+ if (*Select)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) {
+ return ts + 23309
+ }
+ return ts + 23318
+ }(),
+ Xsqlite3SelectOpName(tls, int32((*Select)(unsafe.Pointer(pNext)).Fop))))
+ break
+ }
+ }
+ if (*Select)(unsafe.Pointer(p)).FselFlags&U32(SF_MultiValue) == U32(0) && libc.AssignInt32(&mxSelect, *(*int32)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb + 136 + 4*4))) > 0 && cnt > mxSelect {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23324, 0)
+ }
+ }
+
+}
+
+func attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith uintptr) uintptr {
+ if pSelect != 0 {
+ (*Select)(unsafe.Pointer(pSelect)).FpWith = pWith
+ parserDoubleLinkSelect(tls, pParse, pSelect)
+ } else {
+ Xsqlite3WithDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pWith)
+ }
+ return pSelect
+
+}
+
+func tokenExpr(tls *libc.TLS, pParse uintptr, op int32, t Token) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+ *(*Token)(unsafe.Pointer(bp)) = t
+
+ var p uintptr = Xsqlite3DbMallocRawNN(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Expr{}))+uint64((*Token)(unsafe.Pointer(bp)).Fn)+uint64(1))
+ if p != 0 {
+ (*Expr)(unsafe.Pointer(p)).Fop = U8(op)
+ (*Expr)(unsafe.Pointer(p)).FaffExpr = int8(0)
+ (*Expr)(unsafe.Pointer(p)).Fflags = U32(EP_Leaf)
+
+ (*Expr)(unsafe.Pointer(p)).FpLeft = libc.AssignPtrUintptr(p+24, uintptr(0))
+ (*Expr)(unsafe.Pointer(p)).FpAggInfo = uintptr(0)
+ libc.X__builtin___memset_chk(tls, p+32, 0, uint64(unsafe.Sizeof(struct{ FpList uintptr }{})), libc.X__builtin_object_size(tls, p+32, 0))
+ libc.X__builtin___memset_chk(tls, p+64, 0, uint64(unsafe.Sizeof(struct{ FpTab uintptr }{})), libc.X__builtin_object_size(tls, p+64, 0))
+ (*Expr)(unsafe.Pointer(p)).Fop2 = U8(0)
+ (*Expr)(unsafe.Pointer(p)).FiTable = 0
+ (*Expr)(unsafe.Pointer(p)).FiColumn = int16(0)
+ *(*uintptr)(unsafe.Pointer(p + 8)) = p + 1*72
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(p + 8)), (*Token)(unsafe.Pointer(bp)).Fz, uint64((*Token)(unsafe.Pointer(bp)).Fn), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(p + 8)), 0))
+ *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 8)) + uintptr((*Token)(unsafe.Pointer(bp)).Fn))) = int8(0)
+ *(*int32)(unsafe.Pointer(p + 52)) = int32((int64((*Token)(unsafe.Pointer(bp)).Fz) - int64((*Parse)(unsafe.Pointer(pParse)).FzTail)) / 1)
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 8)))))])&0x80 != 0 {
+ Xsqlite3DequoteExpr(tls, p)
+ }
+ (*Expr)(unsafe.Pointer(p)).FnHeight = 1
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ return Xsqlite3RenameTokenMap(tls, pParse, p, bp)
+ }
+ }
+ return p
+
+}
+
+func binaryToUnaryIfNull(tls *libc.TLS, pParse uintptr, pY uintptr, pA uintptr, op int32) {
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ if pA != 0 && pY != 0 && int32((*Expr)(unsafe.Pointer(pY)).Fop) == TK_NULL && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ (*Expr)(unsafe.Pointer(pA)).Fop = U8(op)
+ Xsqlite3ExprDelete(tls, db, (*Expr)(unsafe.Pointer(pA)).FpRight)
+ (*Expr)(unsafe.Pointer(pA)).FpRight = uintptr(0)
+ }
+
+}
+
+func parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pIdToken uintptr, hasCollate int32, sortOrder int32) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var p uintptr = Xsqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0))
+ if (hasCollate != 0 || sortOrder != -1) &&
+ int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Finit.Fbusy) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23358,
+ libc.VaList(bp, (*Token)(unsafe.Pointer(pIdToken)).Fn, (*Token)(unsafe.Pointer(pIdToken)).Fz))
+ }
+ Xsqlite3ExprListSetName(tls, pParse, p, pIdToken, 1)
+ return p
+
+}
+
+// The next sections is a series of control #defines.
+// various aspects of the generated parser.
+//
+// YYCODETYPE is the data type used to store the integer codes
+// that represent terminal and non-terminal symbols.
+// "unsigned char" is used if there are fewer than
+// 256 symbols. Larger types otherwise.
+// YYNOCODE is a number of type YYCODETYPE that is not used for
+// any terminal or nonterminal symbol.
+// YYFALLBACK If defined, this indicates that one or more tokens
+// (also known as: "terminal symbols") have fall-back
+// values which should be used if the original symbol
+// would not parse. This permits keywords to sometimes
+// be used as identifiers, for example.
+// YYACTIONTYPE is the data type used for "action codes" - numbers
+// that indicate what to do in response to the next
+// token.
+// sqlite3ParserTOKENTYPE is the data type used for minor type for terminal
+// symbols. Background: A "minor type" is a semantic
+// value associated with a terminal or non-terminal
+// symbols. For example, for an "ID" terminal symbol,
+// the minor type might be the name of the identifier.
+// Each non-terminal can have a different minor type.
+// Terminal symbols all have the same minor type, though.
+// This macros defines the minor type for terminal
+// symbols.
+// YYMINORTYPE is the data type used for all minor types.
+// This is typically a union of many types, one of
+// which is sqlite3ParserTOKENTYPE. The entry in the union
+// for terminal symbols is called "yy0".
+// YYSTACKDEPTH is the maximum depth of the parser's stack. If
+// zero the stack is dynamically sized using realloc()
+// sqlite3ParserARG_SDECL A static variable declaration for the %extra_argument
+// sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument
+// sqlite3ParserARG_PARAM Code to pass %extra_argument as a subroutine parameter
+// sqlite3ParserARG_STORE Code to store %extra_argument into yypParser
+// sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser
+// sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context
+// YYERRORSYMBOL is the code number of the error symbol. If not
+// defined, then do no error processing.
+// YYNSTATE the combined number of states.
+// YYNRULE the number of rules in the grammar
+// YYNTOKEN Number of terminal symbols
+// YY_MAX_SHIFT Maximum value for shift actions
+// YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions
+// YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions
+// YY_ERROR_ACTION The yy_action[] code for syntax error
+// YY_ACCEPT_ACTION The yy_action[] code for accept
+// YY_NO_ACTION The yy_action[] code for no-op
+// YY_MIN_REDUCE Minimum value for reduce actions
+// YY_MAX_REDUCE Maximum value for reduce actions
+//
+// ************ Begin control #defines ****************************************
+type YYMINORTYPE = struct {
+ F__ccgo_pad1 [0]uint64
+ Fyyinit int32
+ F__ccgo_pad2 [12]byte
+}
+
+var yy_action = [2098]uint16{
+ uint16(568), uint16(208), uint16(568), uint16(118), uint16(115), uint16(229), uint16(568), uint16(118), uint16(115), uint16(229),
+ uint16(568), uint16(1314), uint16(377), uint16(1293), uint16(408), uint16(562), uint16(562), uint16(562), uint16(568), uint16(409),
+ uint16(378), uint16(1314), uint16(1276), uint16(41), uint16(41), uint16(41), uint16(41), uint16(208), uint16(1526), uint16(71),
+ uint16(71), uint16(971), uint16(419), uint16(41), uint16(41), uint16(491), uint16(303), uint16(279), uint16(303), uint16(972),
+ uint16(397), uint16(71), uint16(71), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053),
+ uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(476), uint16(409),
+ uint16(1241), uint16(1), uint16(1), uint16(575), uint16(2), uint16(1245), uint16(550), uint16(118), uint16(115), uint16(229),
+ uint16(317), uint16(480), uint16(146), uint16(480), uint16(524), uint16(118), uint16(115), uint16(229), uint16(529), uint16(1327),
+ uint16(417), uint16(523), uint16(142), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053),
+ uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(118), uint16(115),
+ uint16(229), uint16(327), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120),
+ uint16(120), uint16(119), uint16(116), uint16(444), uint16(284), uint16(284), uint16(284), uint16(284), uint16(442), uint16(442),
+ uint16(442), uint16(1567), uint16(376), uint16(1569), uint16(1192), uint16(375), uint16(1163), uint16(565), uint16(1163), uint16(565),
+ uint16(409), uint16(1567), uint16(537), uint16(259), uint16(226), uint16(444), uint16(101), uint16(145), uint16(449), uint16(316),
+ uint16(559), uint16(240), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120),
+ uint16(120), uint16(119), uint16(116), uint16(444), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050),
+ uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(142),
+ uint16(294), uint16(1192), uint16(339), uint16(448), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444),
+ uint16(127), uint16(1192), uint16(1193), uint16(1194), uint16(148), uint16(441), uint16(440), uint16(568), uint16(119), uint16(116),
+ uint16(444), uint16(124), uint16(124), uint16(124), uint16(124), uint16(117), uint16(122), uint16(122), uint16(122), uint16(122),
+ uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(454), uint16(113),
+ uint16(13), uint16(13), uint16(546), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120),
+ uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(422), uint16(316), uint16(559), uint16(1192), uint16(1193),
+ uint16(1194), uint16(149), uint16(1224), uint16(409), uint16(1224), uint16(124), uint16(124), uint16(124), uint16(124), uint16(122),
+ uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116),
+ uint16(444), uint16(465), uint16(342), uint16(1037), uint16(1037), uint16(1051), uint16(1054), uint16(125), uint16(126), uint16(80),
+ uint16(1217), uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124),
+ uint16(124), uint16(124), uint16(1279), uint16(522), uint16(222), uint16(1192), uint16(568), uint16(409), uint16(224), uint16(514),
+ uint16(175), uint16(82), uint16(83), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120),
+ uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(1007), uint16(16), uint16(16), uint16(1192), uint16(133),
+ uint16(133), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040),
+ uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(122), uint16(122), uint16(122), uint16(122),
+ uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(1041), uint16(546),
+ uint16(1192), uint16(373), uint16(1192), uint16(1193), uint16(1194), uint16(252), uint16(1434), uint16(399), uint16(504), uint16(501),
+ uint16(500), uint16(111), uint16(560), uint16(566), uint16(4), uint16(926), uint16(926), uint16(433), uint16(499), uint16(340),
+ uint16(460), uint16(328), uint16(360), uint16(394), uint16(1237), uint16(1192), uint16(1193), uint16(1194), uint16(563), uint16(568),
+ uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119),
+ uint16(116), uint16(444), uint16(284), uint16(284), uint16(369), uint16(1580), uint16(1607), uint16(441), uint16(440), uint16(154),
+ uint16(409), uint16(445), uint16(71), uint16(71), uint16(1286), uint16(565), uint16(1221), uint16(1192), uint16(1193), uint16(1194),
+ uint16(85), uint16(1223), uint16(271), uint16(557), uint16(543), uint16(515), uint16(1561), uint16(568), uint16(98), uint16(1222),
+ uint16(6), uint16(1278), uint16(472), uint16(142), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050),
+ uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(550),
+ uint16(13), uint16(13), uint16(1027), uint16(507), uint16(1224), uint16(1192), uint16(1224), uint16(549), uint16(109), uint16(109),
+ uint16(222), uint16(568), uint16(1238), uint16(175), uint16(568), uint16(427), uint16(110), uint16(197), uint16(445), uint16(570),
+ uint16(569), uint16(430), uint16(1552), uint16(1017), uint16(325), uint16(551), uint16(1192), uint16(270), uint16(287), uint16(368),
+ uint16(510), uint16(363), uint16(509), uint16(257), uint16(71), uint16(71), uint16(543), uint16(71), uint16(71), uint16(359),
+ uint16(316), uint16(559), uint16(1613), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120),
+ uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27),
+ uint16(284), uint16(284), uint16(1192), uint16(1193), uint16(1194), uint16(1158), uint16(568), uint16(1612), uint16(409), uint16(901),
+ uint16(190), uint16(550), uint16(356), uint16(565), uint16(550), uint16(937), uint16(533), uint16(517), uint16(1158), uint16(516),
+ uint16(413), uint16(1158), uint16(552), uint16(1192), uint16(1193), uint16(1194), uint16(568), uint16(544), uint16(1554), uint16(51),
+ uint16(51), uint16(214), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053), uint16(1040),
+ uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(1192), uint16(474), uint16(135),
+ uint16(135), uint16(409), uint16(284), uint16(284), uint16(1490), uint16(505), uint16(121), uint16(121), uint16(120), uint16(120),
+ uint16(120), uint16(119), uint16(116), uint16(444), uint16(1007), uint16(565), uint16(518), uint16(217), uint16(541), uint16(1561),
+ uint16(316), uint16(559), uint16(142), uint16(6), uint16(532), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217),
+ uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124),
+ uint16(1555), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120), uint16(120),
+ uint16(119), uint16(116), uint16(444), uint16(485), uint16(1192), uint16(1193), uint16(1194), uint16(482), uint16(281), uint16(1267),
+ uint16(957), uint16(252), uint16(1192), uint16(373), uint16(504), uint16(501), uint16(500), uint16(1192), uint16(340), uint16(571),
+ uint16(1192), uint16(571), uint16(409), uint16(292), uint16(499), uint16(957), uint16(876), uint16(191), uint16(480), uint16(316),
+ uint16(559), uint16(384), uint16(290), uint16(380), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121),
+ uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(409), uint16(394), uint16(1136), uint16(1192), uint16(869), uint16(100), uint16(284), uint16(284), uint16(1192),
+ uint16(1193), uint16(1194), uint16(373), uint16(1093), uint16(1192), uint16(1193), uint16(1194), uint16(1192), uint16(1193), uint16(1194),
+ uint16(565), uint16(455), uint16(32), uint16(373), uint16(233), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217),
+ uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124),
+ uint16(1433), uint16(959), uint16(568), uint16(228), uint16(958), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(1158), uint16(228), uint16(1192),
+ uint16(157), uint16(1192), uint16(1193), uint16(1194), uint16(1553), uint16(13), uint16(13), uint16(301), uint16(957), uint16(1232),
+ uint16(1158), uint16(153), uint16(409), uint16(1158), uint16(373), uint16(1583), uint16(1176), uint16(5), uint16(369), uint16(1580),
+ uint16(429), uint16(1238), uint16(3), uint16(957), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121),
+ uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(409), uint16(208), uint16(567), uint16(1192), uint16(1028), uint16(1192), uint16(1193), uint16(1194), uint16(1192),
+ uint16(388), uint16(852), uint16(155), uint16(1552), uint16(286), uint16(402), uint16(1098), uint16(1098), uint16(488), uint16(568),
+ uint16(465), uint16(342), uint16(1319), uint16(1319), uint16(1552), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217),
+ uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124),
+ uint16(129), uint16(568), uint16(13), uint16(13), uint16(374), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(302), uint16(568), uint16(453),
+ uint16(528), uint16(1192), uint16(1193), uint16(1194), uint16(13), uint16(13), uint16(1192), uint16(1193), uint16(1194), uint16(1297),
+ uint16(463), uint16(1267), uint16(409), uint16(1317), uint16(1317), uint16(1552), uint16(1012), uint16(453), uint16(452), uint16(200),
+ uint16(299), uint16(71), uint16(71), uint16(1265), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121),
+ uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(409), uint16(227), uint16(1073), uint16(1158), uint16(284), uint16(284), uint16(419), uint16(312), uint16(278),
+ uint16(278), uint16(285), uint16(285), uint16(1419), uint16(406), uint16(405), uint16(382), uint16(1158), uint16(565), uint16(568),
+ uint16(1158), uint16(1196), uint16(565), uint16(1600), uint16(565), uint16(125), uint16(126), uint16(80), uint16(1217), uint16(1217),
+ uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124), uint16(124),
+ uint16(453), uint16(1482), uint16(13), uint16(13), uint16(1536), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(201), uint16(568), uint16(354),
+ uint16(1586), uint16(575), uint16(2), uint16(1245), uint16(840), uint16(841), uint16(842), uint16(1562), uint16(317), uint16(1212),
+ uint16(146), uint16(6), uint16(409), uint16(255), uint16(254), uint16(253), uint16(206), uint16(1327), uint16(9), uint16(1196),
+ uint16(262), uint16(71), uint16(71), uint16(424), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121), uint16(121),
+ uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(568), uint16(284), uint16(284), uint16(568), uint16(1213), uint16(409), uint16(574), uint16(313), uint16(1245),
+ uint16(349), uint16(1296), uint16(352), uint16(419), uint16(317), uint16(565), uint16(146), uint16(491), uint16(525), uint16(1643),
+ uint16(395), uint16(371), uint16(491), uint16(1327), uint16(70), uint16(70), uint16(1295), uint16(71), uint16(71), uint16(240),
+ uint16(1325), uint16(104), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123),
+ uint16(123), uint16(124), uint16(124), uint16(124), uint16(124), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(1114), uint16(284), uint16(284),
+ uint16(428), uint16(448), uint16(1525), uint16(1213), uint16(439), uint16(284), uint16(284), uint16(1489), uint16(1352), uint16(311),
+ uint16(474), uint16(565), uint16(1115), uint16(971), uint16(491), uint16(491), uint16(217), uint16(1263), uint16(565), uint16(1538),
+ uint16(568), uint16(972), uint16(207), uint16(568), uint16(1027), uint16(240), uint16(383), uint16(1116), uint16(519), uint16(122),
+ uint16(122), uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116),
+ uint16(444), uint16(1018), uint16(107), uint16(71), uint16(71), uint16(1017), uint16(13), uint16(13), uint16(912), uint16(568),
+ uint16(1495), uint16(568), uint16(284), uint16(284), uint16(97), uint16(526), uint16(491), uint16(448), uint16(913), uint16(1326),
+ uint16(1322), uint16(545), uint16(409), uint16(284), uint16(284), uint16(565), uint16(151), uint16(209), uint16(1495), uint16(1497),
+ uint16(262), uint16(450), uint16(55), uint16(55), uint16(56), uint16(56), uint16(565), uint16(1017), uint16(1017), uint16(1019),
+ uint16(443), uint16(332), uint16(409), uint16(527), uint16(12), uint16(295), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(347), uint16(409), uint16(864), uint16(1534), uint16(1213), uint16(125), uint16(126), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(1137), uint16(1641), uint16(474), uint16(1641), uint16(371), uint16(125), uint16(114), uint16(80), uint16(1217),
+ uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123), uint16(124), uint16(124), uint16(124),
+ uint16(124), uint16(1495), uint16(329), uint16(474), uint16(331), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(203), uint16(1419), uint16(568),
+ uint16(1294), uint16(864), uint16(464), uint16(1213), uint16(436), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(553), uint16(1137), uint16(1642),
+ uint16(539), uint16(1642), uint16(15), uint16(15), uint16(892), uint16(122), uint16(122), uint16(122), uint16(122), uint16(121),
+ uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444), uint16(568), uint16(298), uint16(538),
+ uint16(1135), uint16(1419), uint16(1559), uint16(1560), uint16(1331), uint16(409), uint16(6), uint16(6), uint16(1169), uint16(1268),
+ uint16(415), uint16(320), uint16(284), uint16(284), uint16(1419), uint16(508), uint16(565), uint16(525), uint16(300), uint16(457),
+ uint16(43), uint16(43), uint16(568), uint16(893), uint16(12), uint16(565), uint16(330), uint16(478), uint16(425), uint16(407),
+ uint16(126), uint16(80), uint16(1217), uint16(1217), uint16(1050), uint16(1053), uint16(1040), uint16(1040), uint16(123), uint16(123),
+ uint16(124), uint16(124), uint16(124), uint16(124), uint16(568), uint16(57), uint16(57), uint16(288), uint16(1192), uint16(1419),
+ uint16(496), uint16(458), uint16(392), uint16(392), uint16(391), uint16(273), uint16(389), uint16(1135), uint16(1558), uint16(849),
+ uint16(1169), uint16(407), uint16(6), uint16(568), uint16(321), uint16(1158), uint16(470), uint16(44), uint16(44), uint16(1557),
+ uint16(1114), uint16(426), uint16(234), uint16(6), uint16(323), uint16(256), uint16(540), uint16(256), uint16(1158), uint16(431),
+ uint16(568), uint16(1158), uint16(322), uint16(17), uint16(487), uint16(1115), uint16(58), uint16(58), uint16(122), uint16(122),
+ uint16(122), uint16(122), uint16(121), uint16(121), uint16(120), uint16(120), uint16(120), uint16(119), uint16(116), uint16(444),
+ uint16(1116), uint16(216), uint16(481), uint16(59), uint16(59), uint16(1192), uint16(1193), uint16(1194), uint16(111), uint16(560),
+ uint16(324), uint16(4), uint16(236), uint16(456), uint16(526), uint16(568), uint16(237), uint16(456), uint16(568), uint16(437),
+ uint16(168), uint16(556), uint16(420), uint16(141), uint16(479), uint16(563), uint16(568), uint16(293), uint16(568), uint16(1095),
+ uint16(568), uint16(293), uint16(568), uint16(1095), uint16(531), uint16(568), uint16(872), uint16(8), uint16(60), uint16(60),
+ uint16(235), uint16(61), uint16(61), uint16(568), uint16(414), uint16(568), uint16(414), uint16(568), uint16(445), uint16(62),
+ uint16(62), uint16(45), uint16(45), uint16(46), uint16(46), uint16(47), uint16(47), uint16(199), uint16(49), uint16(49),
+ uint16(557), uint16(568), uint16(359), uint16(568), uint16(100), uint16(486), uint16(50), uint16(50), uint16(63), uint16(63),
+ uint16(64), uint16(64), uint16(561), uint16(415), uint16(535), uint16(410), uint16(568), uint16(1027), uint16(568), uint16(534),
+ uint16(316), uint16(559), uint16(316), uint16(559), uint16(65), uint16(65), uint16(14), uint16(14), uint16(568), uint16(1027),
+ uint16(568), uint16(512), uint16(932), uint16(872), uint16(1018), uint16(109), uint16(109), uint16(931), uint16(1017), uint16(66),
+ uint16(66), uint16(131), uint16(131), uint16(110), uint16(451), uint16(445), uint16(570), uint16(569), uint16(416), uint16(177),
+ uint16(1017), uint16(132), uint16(132), uint16(67), uint16(67), uint16(568), uint16(467), uint16(568), uint16(932), uint16(471),
+ uint16(1364), uint16(283), uint16(226), uint16(931), uint16(315), uint16(1363), uint16(407), uint16(568), uint16(459), uint16(407),
+ uint16(1017), uint16(1017), uint16(1019), uint16(239), uint16(407), uint16(86), uint16(213), uint16(1350), uint16(52), uint16(52),
+ uint16(68), uint16(68), uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27), uint16(1585), uint16(1180), uint16(447),
+ uint16(69), uint16(69), uint16(288), uint16(97), uint16(108), uint16(1541), uint16(106), uint16(392), uint16(392), uint16(391),
+ uint16(273), uint16(389), uint16(568), uint16(879), uint16(849), uint16(883), uint16(568), uint16(111), uint16(560), uint16(466),
+ uint16(4), uint16(568), uint16(152), uint16(30), uint16(38), uint16(568), uint16(1132), uint16(234), uint16(396), uint16(323),
+ uint16(111), uint16(560), uint16(527), uint16(4), uint16(563), uint16(53), uint16(53), uint16(322), uint16(568), uint16(163),
+ uint16(163), uint16(568), uint16(337), uint16(468), uint16(164), uint16(164), uint16(333), uint16(563), uint16(76), uint16(76),
+ uint16(568), uint16(289), uint16(1514), uint16(568), uint16(31), uint16(1513), uint16(568), uint16(445), uint16(338), uint16(483),
+ uint16(100), uint16(54), uint16(54), uint16(344), uint16(72), uint16(72), uint16(296), uint16(236), uint16(1080), uint16(557),
+ uint16(445), uint16(879), uint16(1360), uint16(134), uint16(134), uint16(168), uint16(73), uint16(73), uint16(141), uint16(161),
+ uint16(161), uint16(1574), uint16(557), uint16(535), uint16(568), uint16(319), uint16(568), uint16(348), uint16(536), uint16(1009),
+ uint16(473), uint16(261), uint16(261), uint16(891), uint16(890), uint16(235), uint16(535), uint16(568), uint16(1027), uint16(568),
+ uint16(475), uint16(534), uint16(261), uint16(367), uint16(109), uint16(109), uint16(521), uint16(136), uint16(136), uint16(130),
+ uint16(130), uint16(1027), uint16(110), uint16(366), uint16(445), uint16(570), uint16(569), uint16(109), uint16(109), uint16(1017),
+ uint16(162), uint16(162), uint16(156), uint16(156), uint16(568), uint16(110), uint16(1080), uint16(445), uint16(570), uint16(569),
+ uint16(410), uint16(351), uint16(1017), uint16(568), uint16(353), uint16(316), uint16(559), uint16(568), uint16(343), uint16(568),
+ uint16(100), uint16(497), uint16(357), uint16(258), uint16(100), uint16(898), uint16(899), uint16(140), uint16(140), uint16(355),
+ uint16(1310), uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27), uint16(139), uint16(139), uint16(362), uint16(451),
+ uint16(137), uint16(137), uint16(138), uint16(138), uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27), uint16(1180),
+ uint16(447), uint16(568), uint16(372), uint16(288), uint16(111), uint16(560), uint16(1021), uint16(4), uint16(392), uint16(392),
+ uint16(391), uint16(273), uint16(389), uint16(568), uint16(1141), uint16(849), uint16(568), uint16(1076), uint16(568), uint16(258),
+ uint16(492), uint16(563), uint16(568), uint16(211), uint16(75), uint16(75), uint16(555), uint16(962), uint16(234), uint16(261),
+ uint16(323), uint16(111), uint16(560), uint16(929), uint16(4), uint16(113), uint16(77), uint16(77), uint16(322), uint16(74),
+ uint16(74), uint16(42), uint16(42), uint16(1373), uint16(445), uint16(48), uint16(48), uint16(1418), uint16(563), uint16(974),
+ uint16(975), uint16(1092), uint16(1091), uint16(1092), uint16(1091), uint16(862), uint16(557), uint16(150), uint16(930), uint16(1346),
+ uint16(113), uint16(1358), uint16(554), uint16(1424), uint16(1021), uint16(1275), uint16(1266), uint16(1254), uint16(236), uint16(1253),
+ uint16(1255), uint16(445), uint16(1593), uint16(1343), uint16(308), uint16(276), uint16(168), uint16(309), uint16(11), uint16(141),
+ uint16(393), uint16(310), uint16(232), uint16(557), uint16(1405), uint16(1027), uint16(335), uint16(291), uint16(1400), uint16(219),
+ uint16(336), uint16(109), uint16(109), uint16(936), uint16(297), uint16(1410), uint16(235), uint16(341), uint16(477), uint16(110),
+ uint16(502), uint16(445), uint16(570), uint16(569), uint16(1393), uint16(1409), uint16(1017), uint16(400), uint16(1293), uint16(365),
+ uint16(223), uint16(1486), uint16(1027), uint16(1485), uint16(1355), uint16(1356), uint16(1354), uint16(1353), uint16(109), uint16(109),
+ uint16(204), uint16(1596), uint16(1232), uint16(558), uint16(265), uint16(218), uint16(110), uint16(205), uint16(445), uint16(570),
+ uint16(569), uint16(410), uint16(387), uint16(1017), uint16(1533), uint16(179), uint16(316), uint16(559), uint16(1017), uint16(1017),
+ uint16(1019), uint16(1020), uint16(27), uint16(230), uint16(1531), uint16(1229), uint16(79), uint16(560), uint16(85), uint16(4),
+ uint16(418), uint16(215), uint16(548), uint16(81), uint16(84), uint16(188), uint16(1406), uint16(173), uint16(181), uint16(461),
+ uint16(451), uint16(35), uint16(462), uint16(563), uint16(183), uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27),
+ uint16(184), uint16(1491), uint16(185), uint16(186), uint16(495), uint16(242), uint16(98), uint16(398), uint16(1412), uint16(36),
+ uint16(1411), uint16(484), uint16(91), uint16(469), uint16(401), uint16(1414), uint16(445), uint16(192), uint16(1480), uint16(246),
+ uint16(1502), uint16(490), uint16(346), uint16(277), uint16(248), uint16(196), uint16(493), uint16(511), uint16(557), uint16(350),
+ uint16(1256), uint16(249), uint16(250), uint16(403), uint16(1313), uint16(1312), uint16(111), uint16(560), uint16(432), uint16(4),
+ uint16(1311), uint16(1304), uint16(93), uint16(1611), uint16(883), uint16(1610), uint16(224), uint16(404), uint16(434), uint16(520),
+ uint16(263), uint16(435), uint16(1579), uint16(563), uint16(1283), uint16(1282), uint16(364), uint16(1027), uint16(306), uint16(1281),
+ uint16(264), uint16(1609), uint16(1565), uint16(109), uint16(109), uint16(370), uint16(1303), uint16(307), uint16(1564), uint16(438),
+ uint16(128), uint16(110), uint16(1378), uint16(445), uint16(570), uint16(569), uint16(445), uint16(546), uint16(1017), uint16(10),
+ uint16(1466), uint16(105), uint16(381), uint16(1377), uint16(34), uint16(572), uint16(99), uint16(1336), uint16(557), uint16(314),
+ uint16(1186), uint16(530), uint16(272), uint16(274), uint16(379), uint16(210), uint16(1335), uint16(547), uint16(385), uint16(386),
+ uint16(275), uint16(573), uint16(1251), uint16(1246), uint16(411), uint16(412), uint16(1518), uint16(165), uint16(178), uint16(1519),
+ uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27), uint16(1517), uint16(1516), uint16(1027), uint16(78), uint16(147),
+ uint16(166), uint16(220), uint16(221), uint16(109), uint16(109), uint16(836), uint16(304), uint16(167), uint16(446), uint16(212),
+ uint16(318), uint16(110), uint16(231), uint16(445), uint16(570), uint16(569), uint16(144), uint16(1090), uint16(1017), uint16(1088),
+ uint16(326), uint16(180), uint16(169), uint16(1212), uint16(182), uint16(334), uint16(238), uint16(915), uint16(241), uint16(1104),
+ uint16(187), uint16(170), uint16(171), uint16(421), uint16(87), uint16(88), uint16(423), uint16(189), uint16(89), uint16(90),
+ uint16(172), uint16(1107), uint16(243), uint16(1103), uint16(244), uint16(158), uint16(18), uint16(245), uint16(345), uint16(247),
+ uint16(1017), uint16(1017), uint16(1019), uint16(1020), uint16(27), uint16(261), uint16(1096), uint16(193), uint16(1226), uint16(489),
+ uint16(194), uint16(37), uint16(366), uint16(851), uint16(494), uint16(251), uint16(195), uint16(506), uint16(92), uint16(19),
+ uint16(498), uint16(358), uint16(20), uint16(503), uint16(881), uint16(361), uint16(94), uint16(894), uint16(305), uint16(159),
+ uint16(513), uint16(39), uint16(95), uint16(1174), uint16(160), uint16(1056), uint16(966), uint16(1143), uint16(96), uint16(174),
+ uint16(1142), uint16(225), uint16(280), uint16(282), uint16(198), uint16(960), uint16(113), uint16(1164), uint16(1160), uint16(260),
+ uint16(21), uint16(22), uint16(23), uint16(1162), uint16(1168), uint16(1167), uint16(1148), uint16(24), uint16(33), uint16(25),
+ uint16(202), uint16(542), uint16(26), uint16(100), uint16(1071), uint16(102), uint16(1057), uint16(103), uint16(7), uint16(1055),
+ uint16(1059), uint16(1113), uint16(1060), uint16(1112), uint16(266), uint16(267), uint16(28), uint16(40), uint16(390), uint16(1022),
+ uint16(863), uint16(112), uint16(29), uint16(564), uint16(1182), uint16(1181), uint16(268), uint16(176), uint16(143), uint16(925),
+ uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(1242),
+ uint16(1242), uint16(1242), uint16(1242), uint16(1242), uint16(269), uint16(1602), uint16(1242), uint16(1601),
+}
+var yy_lookahead = [2283]uint16{
+ uint16(193), uint16(193), uint16(193), uint16(274), uint16(275), uint16(276), uint16(193), uint16(274), uint16(275), uint16(276),
+ uint16(193), uint16(223), uint16(219), uint16(225), uint16(206), uint16(210), uint16(211), uint16(212), uint16(193), uint16(19),
+ uint16(219), uint16(233), uint16(216), uint16(216), uint16(217), uint16(216), uint16(217), uint16(193), uint16(295), uint16(216),
+ uint16(217), uint16(31), uint16(193), uint16(216), uint16(217), uint16(193), uint16(228), uint16(213), uint16(230), uint16(39),
+ uint16(206), uint16(216), uint16(217), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49),
+ uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(193), uint16(19),
+ uint16(185), uint16(186), uint16(187), uint16(188), uint16(189), uint16(190), uint16(253), uint16(274), uint16(275), uint16(276),
+ uint16(195), uint16(193), uint16(197), uint16(193), uint16(261), uint16(274), uint16(275), uint16(276), uint16(253), uint16(204),
+ uint16(238), uint16(204), uint16(81), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49),
+ uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(274), uint16(275),
+ uint16(276), uint16(262), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109),
+ uint16(110), uint16(111), uint16(112), uint16(113), uint16(239), uint16(240), uint16(239), uint16(240), uint16(210), uint16(211),
+ uint16(212), uint16(314), uint16(315), uint16(314), uint16(59), uint16(316), uint16(86), uint16(252), uint16(88), uint16(252),
+ uint16(19), uint16(314), uint16(315), uint16(256), uint16(257), uint16(113), uint16(25), uint16(72), uint16(296), uint16(138),
+ uint16(139), uint16(266), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109),
+ uint16(110), uint16(111), uint16(112), uint16(113), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48),
+ uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(81),
+ uint16(292), uint16(59), uint16(292), uint16(298), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113),
+ uint16(69), uint16(116), uint16(117), uint16(118), uint16(72), uint16(106), uint16(107), uint16(193), uint16(111), uint16(112),
+ uint16(113), uint16(54), uint16(55), uint16(56), uint16(57), uint16(58), uint16(102), uint16(103), uint16(104), uint16(105),
+ uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(120), uint16(25),
+ uint16(216), uint16(217), uint16(145), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108),
+ uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(231), uint16(138), uint16(139), uint16(116), uint16(117),
+ uint16(118), uint16(164), uint16(153), uint16(19), uint16(155), uint16(54), uint16(55), uint16(56), uint16(57), uint16(102),
+ uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112),
+ uint16(113), uint16(128), uint16(129), uint16(46), uint16(47), uint16(48), uint16(49), uint16(43), uint16(44), uint16(45),
+ uint16(46), uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55),
+ uint16(56), uint16(57), uint16(216), uint16(193), uint16(25), uint16(59), uint16(193), uint16(19), uint16(165), uint16(166),
+ uint16(193), uint16(67), uint16(24), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108),
+ uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(73), uint16(216), uint16(217), uint16(59), uint16(216),
+ uint16(217), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49), uint16(50), uint16(51),
+ uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(102), uint16(103), uint16(104), uint16(105),
+ uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(121), uint16(145),
+ uint16(59), uint16(193), uint16(116), uint16(117), uint16(118), uint16(119), uint16(273), uint16(204), uint16(122), uint16(123),
+ uint16(124), uint16(19), uint16(20), uint16(134), uint16(22), uint16(136), uint16(137), uint16(19), uint16(132), uint16(127),
+ uint16(128), uint16(129), uint16(24), uint16(22), uint16(23), uint16(116), uint16(117), uint16(118), uint16(36), uint16(193),
+ uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111),
+ uint16(112), uint16(113), uint16(239), uint16(240), uint16(311), uint16(312), uint16(215), uint16(106), uint16(107), uint16(241),
+ uint16(19), uint16(59), uint16(216), uint16(217), uint16(223), uint16(252), uint16(115), uint16(116), uint16(117), uint16(118),
+ uint16(151), uint16(120), uint16(26), uint16(71), uint16(193), uint16(308), uint16(309), uint16(193), uint16(149), uint16(128),
+ uint16(313), uint16(216), uint16(269), uint16(81), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48),
+ uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(253),
+ uint16(216), uint16(217), uint16(100), uint16(95), uint16(153), uint16(59), uint16(155), uint16(261), uint16(106), uint16(107),
+ uint16(25), uint16(193), uint16(101), uint16(193), uint16(193), uint16(231), uint16(114), uint16(25), uint16(116), uint16(117),
+ uint16(118), uint16(113), uint16(304), uint16(121), uint16(193), uint16(204), uint16(59), uint16(119), uint16(120), uint16(121),
+ uint16(122), uint16(123), uint16(124), uint16(125), uint16(216), uint16(217), uint16(193), uint16(216), uint16(217), uint16(131),
+ uint16(138), uint16(139), uint16(230), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108),
+ uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(153), uint16(154), uint16(155), uint16(156), uint16(157),
+ uint16(239), uint16(240), uint16(116), uint16(117), uint16(118), uint16(76), uint16(193), uint16(23), uint16(19), uint16(25),
+ uint16(22), uint16(253), uint16(23), uint16(252), uint16(253), uint16(108), uint16(87), uint16(204), uint16(89), uint16(261),
+ uint16(198), uint16(92), uint16(261), uint16(116), uint16(117), uint16(118), uint16(193), uint16(306), uint16(307), uint16(216),
+ uint16(217), uint16(150), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49), uint16(50),
+ uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(59), uint16(193), uint16(216),
+ uint16(217), uint16(19), uint16(239), uint16(240), uint16(283), uint16(23), uint16(106), uint16(107), uint16(108), uint16(109),
+ uint16(110), uint16(111), uint16(112), uint16(113), uint16(73), uint16(252), uint16(253), uint16(142), uint16(308), uint16(309),
+ uint16(138), uint16(139), uint16(81), uint16(313), uint16(145), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47),
+ uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57),
+ uint16(307), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109), uint16(110),
+ uint16(111), uint16(112), uint16(113), uint16(281), uint16(116), uint16(117), uint16(118), uint16(285), uint16(23), uint16(193),
+ uint16(25), uint16(119), uint16(59), uint16(193), uint16(122), uint16(123), uint16(124), uint16(59), uint16(127), uint16(203),
+ uint16(59), uint16(205), uint16(19), uint16(268), uint16(132), uint16(25), uint16(23), uint16(22), uint16(193), uint16(138),
+ uint16(139), uint16(249), uint16(204), uint16(251), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107),
+ uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(19), uint16(22), uint16(23), uint16(59), uint16(23), uint16(25), uint16(239), uint16(240), uint16(116),
+ uint16(117), uint16(118), uint16(193), uint16(11), uint16(116), uint16(117), uint16(118), uint16(116), uint16(117), uint16(118),
+ uint16(252), uint16(269), uint16(22), uint16(193), uint16(15), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47),
+ uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57),
+ uint16(273), uint16(143), uint16(193), uint16(118), uint16(143), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(76), uint16(118), uint16(59),
+ uint16(241), uint16(116), uint16(117), uint16(118), uint16(304), uint16(216), uint16(217), uint16(292), uint16(143), uint16(60),
+ uint16(89), uint16(241), uint16(19), uint16(92), uint16(193), uint16(193), uint16(23), uint16(22), uint16(311), uint16(312),
+ uint16(231), uint16(101), uint16(22), uint16(143), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107),
+ uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(19), uint16(193), uint16(193), uint16(59), uint16(23), uint16(116), uint16(117), uint16(118), uint16(59),
+ uint16(201), uint16(21), uint16(241), uint16(304), uint16(22), uint16(206), uint16(127), uint16(128), uint16(129), uint16(193),
+ uint16(128), uint16(129), uint16(235), uint16(236), uint16(304), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47),
+ uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57),
+ uint16(22), uint16(193), uint16(216), uint16(217), uint16(193), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(231), uint16(193), uint16(193),
+ uint16(193), uint16(116), uint16(117), uint16(118), uint16(216), uint16(217), uint16(116), uint16(117), uint16(118), uint16(226),
+ uint16(80), uint16(193), uint16(19), uint16(235), uint16(236), uint16(304), uint16(23), uint16(211), uint16(212), uint16(231),
+ uint16(204), uint16(216), uint16(217), uint16(205), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107),
+ uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(19), uint16(193), uint16(123), uint16(76), uint16(239), uint16(240), uint16(193), uint16(253), uint16(239),
+ uint16(240), uint16(239), uint16(240), uint16(193), uint16(106), uint16(107), uint16(193), uint16(89), uint16(252), uint16(193),
+ uint16(92), uint16(59), uint16(252), uint16(141), uint16(252), uint16(43), uint16(44), uint16(45), uint16(46), uint16(47),
+ uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56), uint16(57),
+ uint16(284), uint16(161), uint16(216), uint16(217), uint16(193), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(231), uint16(193), uint16(16),
+ uint16(187), uint16(188), uint16(189), uint16(190), uint16(7), uint16(8), uint16(9), uint16(309), uint16(195), uint16(25),
+ uint16(197), uint16(313), uint16(19), uint16(127), uint16(128), uint16(129), uint16(262), uint16(204), uint16(22), uint16(117),
+ uint16(24), uint16(216), uint16(217), uint16(263), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106), uint16(107),
+ uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(193), uint16(239), uint16(240), uint16(193), uint16(59), uint16(19), uint16(188), uint16(253), uint16(190),
+ uint16(77), uint16(226), uint16(79), uint16(193), uint16(195), uint16(252), uint16(197), uint16(193), uint16(19), uint16(301),
+ uint16(302), uint16(193), uint16(193), uint16(204), uint16(216), uint16(217), uint16(226), uint16(216), uint16(217), uint16(266),
+ uint16(204), uint16(159), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52),
+ uint16(53), uint16(54), uint16(55), uint16(56), uint16(57), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(12), uint16(239), uint16(240),
+ uint16(232), uint16(298), uint16(238), uint16(117), uint16(253), uint16(239), uint16(240), uint16(238), uint16(259), uint16(260),
+ uint16(193), uint16(252), uint16(27), uint16(31), uint16(193), uint16(193), uint16(142), uint16(204), uint16(252), uint16(193),
+ uint16(193), uint16(39), uint16(262), uint16(193), uint16(100), uint16(266), uint16(278), uint16(42), uint16(204), uint16(102),
+ uint16(103), uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112),
+ uint16(113), uint16(117), uint16(159), uint16(216), uint16(217), uint16(121), uint16(216), uint16(217), uint16(63), uint16(193),
+ uint16(193), uint16(193), uint16(239), uint16(240), uint16(115), uint16(116), uint16(193), uint16(298), uint16(73), uint16(238),
+ uint16(238), uint16(231), uint16(19), uint16(239), uint16(240), uint16(252), uint16(22), uint16(24), uint16(211), uint16(212),
+ uint16(24), uint16(193), uint16(216), uint16(217), uint16(216), uint16(217), uint16(252), uint16(153), uint16(154), uint16(155),
+ uint16(253), uint16(16), uint16(19), uint16(144), uint16(213), uint16(268), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(238), uint16(19), uint16(59), uint16(193), uint16(59), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(22), uint16(23), uint16(193), uint16(25), uint16(193), uint16(43), uint16(44), uint16(45), uint16(46),
+ uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53), uint16(54), uint16(55), uint16(56),
+ uint16(57), uint16(284), uint16(77), uint16(193), uint16(79), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(286), uint16(193), uint16(193),
+ uint16(193), uint16(117), uint16(291), uint16(117), uint16(232), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(204), uint16(22), uint16(23),
+ uint16(66), uint16(25), uint16(216), uint16(217), uint16(35), uint16(102), uint16(103), uint16(104), uint16(105), uint16(106),
+ uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113), uint16(193), uint16(268), uint16(85),
+ uint16(101), uint16(193), uint16(309), uint16(309), uint16(240), uint16(19), uint16(313), uint16(313), uint16(94), uint16(208),
+ uint16(209), uint16(193), uint16(239), uint16(240), uint16(193), uint16(66), uint16(252), uint16(19), uint16(268), uint16(244),
+ uint16(216), uint16(217), uint16(193), uint16(74), uint16(213), uint16(252), uint16(161), uint16(19), uint16(263), uint16(254),
+ uint16(44), uint16(45), uint16(46), uint16(47), uint16(48), uint16(49), uint16(50), uint16(51), uint16(52), uint16(53),
+ uint16(54), uint16(55), uint16(56), uint16(57), uint16(193), uint16(216), uint16(217), uint16(5), uint16(59), uint16(193),
+ uint16(19), uint16(244), uint16(10), uint16(11), uint16(12), uint16(13), uint16(14), uint16(101), uint16(309), uint16(17),
+ uint16(146), uint16(254), uint16(313), uint16(193), uint16(193), uint16(76), uint16(115), uint16(216), uint16(217), uint16(309),
+ uint16(12), uint16(263), uint16(30), uint16(313), uint16(32), uint16(46), uint16(87), uint16(46), uint16(89), uint16(130),
+ uint16(193), uint16(92), uint16(40), uint16(22), uint16(263), uint16(27), uint16(216), uint16(217), uint16(102), uint16(103),
+ uint16(104), uint16(105), uint16(106), uint16(107), uint16(108), uint16(109), uint16(110), uint16(111), uint16(112), uint16(113),
+ uint16(42), uint16(150), uint16(291), uint16(216), uint16(217), uint16(116), uint16(117), uint16(118), uint16(19), uint16(20),
+ uint16(193), uint16(22), uint16(70), uint16(260), uint16(116), uint16(193), uint16(24), uint16(264), uint16(193), uint16(263),
+ uint16(78), uint16(63), uint16(61), uint16(81), uint16(116), uint16(36), uint16(193), uint16(260), uint16(193), uint16(29),
+ uint16(193), uint16(264), uint16(193), uint16(33), uint16(145), uint16(193), uint16(59), uint16(48), uint16(216), uint16(217),
+ uint16(98), uint16(216), uint16(217), uint16(193), uint16(115), uint16(193), uint16(115), uint16(193), uint16(59), uint16(216),
+ uint16(217), uint16(216), uint16(217), uint16(216), uint16(217), uint16(216), uint16(217), uint16(255), uint16(216), uint16(217),
+ uint16(71), uint16(193), uint16(131), uint16(193), uint16(25), uint16(65), uint16(216), uint16(217), uint16(216), uint16(217),
+ uint16(216), uint16(217), uint16(208), uint16(209), uint16(85), uint16(133), uint16(193), uint16(100), uint16(193), uint16(90),
+ uint16(138), uint16(139), uint16(138), uint16(139), uint16(216), uint16(217), uint16(216), uint16(217), uint16(193), uint16(100),
+ uint16(193), uint16(108), uint16(135), uint16(116), uint16(117), uint16(106), uint16(107), uint16(140), uint16(121), uint16(216),
+ uint16(217), uint16(216), uint16(217), uint16(114), uint16(162), uint16(116), uint16(117), uint16(118), uint16(299), uint16(300),
+ uint16(121), uint16(216), uint16(217), uint16(216), uint16(217), uint16(193), uint16(244), uint16(193), uint16(135), uint16(244),
+ uint16(193), uint16(256), uint16(257), uint16(140), uint16(244), uint16(193), uint16(254), uint16(193), uint16(193), uint16(254),
+ uint16(153), uint16(154), uint16(155), uint16(141), uint16(254), uint16(149), uint16(150), uint16(258), uint16(216), uint16(217),
+ uint16(216), uint16(217), uint16(153), uint16(154), uint16(155), uint16(156), uint16(157), uint16(0), uint16(1), uint16(2),
+ uint16(216), uint16(217), uint16(5), uint16(115), uint16(158), uint16(193), uint16(160), uint16(10), uint16(11), uint16(12),
+ uint16(13), uint16(14), uint16(193), uint16(59), uint16(17), uint16(126), uint16(193), uint16(19), uint16(20), uint16(129),
+ uint16(22), uint16(193), uint16(22), uint16(22), uint16(24), uint16(193), uint16(23), uint16(30), uint16(25), uint16(32),
+ uint16(19), uint16(20), uint16(144), uint16(22), uint16(36), uint16(216), uint16(217), uint16(40), uint16(193), uint16(216),
+ uint16(217), uint16(193), uint16(152), uint16(129), uint16(216), uint16(217), uint16(193), uint16(36), uint16(216), uint16(217),
+ uint16(193), uint16(99), uint16(193), uint16(193), uint16(53), uint16(193), uint16(193), uint16(59), uint16(23), uint16(193),
+ uint16(25), uint16(216), uint16(217), uint16(193), uint16(216), uint16(217), uint16(152), uint16(70), uint16(59), uint16(71),
+ uint16(59), uint16(117), uint16(193), uint16(216), uint16(217), uint16(78), uint16(216), uint16(217), uint16(81), uint16(216),
+ uint16(217), uint16(318), uint16(71), uint16(85), uint16(193), uint16(133), uint16(193), uint16(193), uint16(90), uint16(23),
+ uint16(23), uint16(25), uint16(25), uint16(120), uint16(121), uint16(98), uint16(85), uint16(193), uint16(100), uint16(193),
+ uint16(23), uint16(90), uint16(25), uint16(121), uint16(106), uint16(107), uint16(19), uint16(216), uint16(217), uint16(216),
+ uint16(217), uint16(100), uint16(114), uint16(131), uint16(116), uint16(117), uint16(118), uint16(106), uint16(107), uint16(121),
+ uint16(216), uint16(217), uint16(216), uint16(217), uint16(193), uint16(114), uint16(117), uint16(116), uint16(117), uint16(118),
+ uint16(133), uint16(193), uint16(121), uint16(193), uint16(193), uint16(138), uint16(139), uint16(193), uint16(23), uint16(193),
+ uint16(25), uint16(23), uint16(23), uint16(25), uint16(25), uint16(7), uint16(8), uint16(216), uint16(217), uint16(193),
+ uint16(193), uint16(153), uint16(154), uint16(155), uint16(156), uint16(157), uint16(216), uint16(217), uint16(193), uint16(162),
+ uint16(216), uint16(217), uint16(216), uint16(217), uint16(153), uint16(154), uint16(155), uint16(156), uint16(157), uint16(1),
+ uint16(2), uint16(193), uint16(193), uint16(5), uint16(19), uint16(20), uint16(59), uint16(22), uint16(10), uint16(11),
+ uint16(12), uint16(13), uint16(14), uint16(193), uint16(97), uint16(17), uint16(193), uint16(23), uint16(193), uint16(25),
+ uint16(288), uint16(36), uint16(193), uint16(242), uint16(216), uint16(217), uint16(236), uint16(23), uint16(30), uint16(25),
+ uint16(32), uint16(19), uint16(20), uint16(23), uint16(22), uint16(25), uint16(216), uint16(217), uint16(40), uint16(216),
+ uint16(217), uint16(216), uint16(217), uint16(193), uint16(59), uint16(216), uint16(217), uint16(193), uint16(36), uint16(83),
+ uint16(84), uint16(153), uint16(153), uint16(155), uint16(155), uint16(23), uint16(71), uint16(25), uint16(23), uint16(193),
+ uint16(25), uint16(193), uint16(193), uint16(193), uint16(117), uint16(193), uint16(193), uint16(193), uint16(70), uint16(193),
+ uint16(193), uint16(59), uint16(193), uint16(255), uint16(255), uint16(287), uint16(78), uint16(255), uint16(243), uint16(81),
+ uint16(191), uint16(255), uint16(297), uint16(71), uint16(271), uint16(100), uint16(293), uint16(245), uint16(267), uint16(214),
+ uint16(246), uint16(106), uint16(107), uint16(108), uint16(246), uint16(271), uint16(98), uint16(245), uint16(293), uint16(114),
+ uint16(220), uint16(116), uint16(117), uint16(118), uint16(267), uint16(271), uint16(121), uint16(271), uint16(225), uint16(219),
+ uint16(229), uint16(219), uint16(100), uint16(219), uint16(259), uint16(259), uint16(259), uint16(259), uint16(106), uint16(107),
+ uint16(249), uint16(196), uint16(60), uint16(280), uint16(141), uint16(243), uint16(114), uint16(249), uint16(116), uint16(117),
+ uint16(118), uint16(133), uint16(245), uint16(121), uint16(200), uint16(297), uint16(138), uint16(139), uint16(153), uint16(154),
+ uint16(155), uint16(156), uint16(157), uint16(297), uint16(200), uint16(38), uint16(19), uint16(20), uint16(151), uint16(22),
+ uint16(200), uint16(150), uint16(140), uint16(294), uint16(294), uint16(22), uint16(272), uint16(43), uint16(234), uint16(18),
+ uint16(162), uint16(270), uint16(200), uint16(36), uint16(237), uint16(153), uint16(154), uint16(155), uint16(156), uint16(157),
+ uint16(237), uint16(283), uint16(237), uint16(237), uint16(18), uint16(199), uint16(149), uint16(246), uint16(272), uint16(270),
+ uint16(272), uint16(200), uint16(158), uint16(246), uint16(246), uint16(234), uint16(59), uint16(234), uint16(246), uint16(199),
+ uint16(290), uint16(62), uint16(289), uint16(200), uint16(199), uint16(22), uint16(221), uint16(115), uint16(71), uint16(200),
+ uint16(200), uint16(199), uint16(199), uint16(221), uint16(218), uint16(218), uint16(19), uint16(20), uint16(64), uint16(22),
+ uint16(218), uint16(227), uint16(22), uint16(224), uint16(126), uint16(224), uint16(165), uint16(221), uint16(24), uint16(305),
+ uint16(200), uint16(113), uint16(312), uint16(36), uint16(218), uint16(220), uint16(218), uint16(100), uint16(282), uint16(218),
+ uint16(91), uint16(218), uint16(317), uint16(106), uint16(107), uint16(221), uint16(227), uint16(282), uint16(317), uint16(82),
+ uint16(148), uint16(114), uint16(265), uint16(116), uint16(117), uint16(118), uint16(59), uint16(145), uint16(121), uint16(22),
+ uint16(277), uint16(158), uint16(200), uint16(265), uint16(25), uint16(202), uint16(147), uint16(250), uint16(71), uint16(279),
+ uint16(13), uint16(146), uint16(194), uint16(194), uint16(249), uint16(248), uint16(250), uint16(140), uint16(247), uint16(246),
+ uint16(6), uint16(192), uint16(192), uint16(192), uint16(303), uint16(303), uint16(213), uint16(207), uint16(300), uint16(213),
+ uint16(153), uint16(154), uint16(155), uint16(156), uint16(157), uint16(213), uint16(213), uint16(100), uint16(213), uint16(222),
+ uint16(207), uint16(214), uint16(214), uint16(106), uint16(107), uint16(4), uint16(222), uint16(207), uint16(3), uint16(22),
+ uint16(163), uint16(114), uint16(15), uint16(116), uint16(117), uint16(118), uint16(16), uint16(23), uint16(121), uint16(23),
+ uint16(139), uint16(151), uint16(130), uint16(25), uint16(142), uint16(16), uint16(24), uint16(20), uint16(144), uint16(1),
+ uint16(142), uint16(130), uint16(130), uint16(61), uint16(53), uint16(53), uint16(37), uint16(151), uint16(53), uint16(53),
+ uint16(130), uint16(116), uint16(34), uint16(1), uint16(141), uint16(5), uint16(22), uint16(115), uint16(161), uint16(141),
+ uint16(153), uint16(154), uint16(155), uint16(156), uint16(157), uint16(25), uint16(68), uint16(68), uint16(75), uint16(41),
+ uint16(115), uint16(24), uint16(131), uint16(20), uint16(19), uint16(125), uint16(22), uint16(96), uint16(22), uint16(22),
+ uint16(67), uint16(23), uint16(22), uint16(67), uint16(59), uint16(24), uint16(22), uint16(28), uint16(67), uint16(23),
+ uint16(22), uint16(22), uint16(149), uint16(23), uint16(23), uint16(23), uint16(116), uint16(23), uint16(25), uint16(37),
+ uint16(97), uint16(141), uint16(23), uint16(23), uint16(22), uint16(143), uint16(25), uint16(75), uint16(88), uint16(34),
+ uint16(34), uint16(34), uint16(34), uint16(86), uint16(75), uint16(93), uint16(23), uint16(34), uint16(22), uint16(34),
+ uint16(25), uint16(24), uint16(34), uint16(25), uint16(23), uint16(142), uint16(23), uint16(142), uint16(44), uint16(23),
+ uint16(23), uint16(23), uint16(11), uint16(23), uint16(25), uint16(22), uint16(22), uint16(22), uint16(15), uint16(23),
+ uint16(23), uint16(22), uint16(22), uint16(25), uint16(1), uint16(1), uint16(141), uint16(25), uint16(23), uint16(135),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(141), uint16(141), uint16(319), uint16(141), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319), uint16(319),
+ uint16(319), uint16(319), uint16(319),
+}
+var yy_shift_ofst = [576]uint16{
+ uint16(1648), uint16(1477), uint16(1272), uint16(322), uint16(322), uint16(1), uint16(1319), uint16(1478), uint16(1491), uint16(1837),
+ uint16(1837), uint16(1837), uint16(471), uint16(0), uint16(0), uint16(214), uint16(1093), uint16(1837), uint16(1837), uint16(1837),
+ uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(271), uint16(271), uint16(1219), uint16(1219), uint16(216), uint16(88), uint16(1), uint16(1), uint16(1), uint16(1),
+ uint16(1), uint16(40), uint16(111), uint16(258), uint16(361), uint16(469), uint16(512), uint16(583), uint16(622), uint16(693),
+ uint16(732), uint16(803), uint16(842), uint16(913), uint16(1073), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093),
+ uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093), uint16(1093),
+ uint16(1093), uint16(1093), uint16(1093), uint16(1113), uint16(1093), uint16(1216), uint16(957), uint16(957), uint16(1635), uint16(1662),
+ uint16(1777), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837), uint16(1837),
+ uint16(137), uint16(181), uint16(181), uint16(181), uint16(181), uint16(181), uint16(181), uint16(181), uint16(94), uint16(430),
+ uint16(66), uint16(65), uint16(112), uint16(366), uint16(533), uint16(533), uint16(740), uint16(1261), uint16(533), uint16(533),
+ uint16(79), uint16(79), uint16(533), uint16(412), uint16(412), uint16(412), uint16(77), uint16(412), uint16(123), uint16(113),
+ uint16(113), uint16(22), uint16(22), uint16(2098), uint16(2098), uint16(328), uint16(328), uint16(328), uint16(239), uint16(468),
+ uint16(468), uint16(468), uint16(468), uint16(1015), uint16(1015), uint16(409), uint16(366), uint16(1129), uint16(1186), uint16(533),
+ uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533),
+ uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(969),
+ uint16(621), uint16(621), uint16(533), uint16(642), uint16(788), uint16(788), uint16(1228), uint16(1228), uint16(822), uint16(822),
+ uint16(67), uint16(1274), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(1307),
+ uint16(954), uint16(954), uint16(585), uint16(472), uint16(640), uint16(387), uint16(695), uint16(538), uint16(541), uint16(700),
+ uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533),
+ uint16(222), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533),
+ uint16(533), uint16(533), uint16(533), uint16(1179), uint16(1179), uint16(1179), uint16(533), uint16(533), uint16(533), uint16(565),
+ uint16(533), uint16(533), uint16(533), uint16(916), uint16(1144), uint16(533), uint16(533), uint16(1288), uint16(533), uint16(533),
+ uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(533), uint16(639), uint16(1330), uint16(209), uint16(1076),
+ uint16(1076), uint16(1076), uint16(1076), uint16(580), uint16(209), uint16(209), uint16(1313), uint16(768), uint16(917), uint16(649),
+ uint16(1181), uint16(1316), uint16(405), uint16(1316), uint16(1238), uint16(249), uint16(1181), uint16(1181), uint16(249), uint16(1181),
+ uint16(405), uint16(1238), uint16(1369), uint16(464), uint16(1259), uint16(1012), uint16(1012), uint16(1012), uint16(1368), uint16(1368),
+ uint16(1368), uint16(1368), uint16(184), uint16(184), uint16(1326), uint16(904), uint16(1287), uint16(1480), uint16(1712), uint16(1712),
+ uint16(1633), uint16(1633), uint16(1757), uint16(1757), uint16(1633), uint16(1647), uint16(1651), uint16(1783), uint16(1764), uint16(1791),
+ uint16(1791), uint16(1791), uint16(1791), uint16(1633), uint16(1806), uint16(1677), uint16(1651), uint16(1651), uint16(1677), uint16(1783),
+ uint16(1764), uint16(1677), uint16(1764), uint16(1677), uint16(1633), uint16(1806), uint16(1674), uint16(1779), uint16(1633), uint16(1806),
+ uint16(1823), uint16(1633), uint16(1806), uint16(1633), uint16(1806), uint16(1823), uint16(1732), uint16(1732), uint16(1732), uint16(1794),
+ uint16(1840), uint16(1840), uint16(1823), uint16(1732), uint16(1738), uint16(1732), uint16(1794), uint16(1732), uint16(1732), uint16(1701),
+ uint16(1844), uint16(1758), uint16(1758), uint16(1823), uint16(1633), uint16(1789), uint16(1789), uint16(1807), uint16(1807), uint16(1742),
+ uint16(1752), uint16(1877), uint16(1633), uint16(1743), uint16(1742), uint16(1759), uint16(1765), uint16(1677), uint16(1879), uint16(1897),
+ uint16(1897), uint16(1914), uint16(1914), uint16(1914), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098),
+ uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(2098), uint16(207),
+ uint16(1095), uint16(331), uint16(620), uint16(903), uint16(806), uint16(1074), uint16(1483), uint16(1432), uint16(1481), uint16(1322),
+ uint16(1370), uint16(1394), uint16(1515), uint16(1291), uint16(1546), uint16(1547), uint16(1557), uint16(1595), uint16(1598), uint16(1599),
+ uint16(1434), uint16(1453), uint16(1618), uint16(1462), uint16(1567), uint16(1489), uint16(1644), uint16(1654), uint16(1616), uint16(1660),
+ uint16(1548), uint16(1549), uint16(1682), uint16(1685), uint16(1597), uint16(742), uint16(1941), uint16(1945), uint16(1927), uint16(1787),
+ uint16(1937), uint16(1940), uint16(1934), uint16(1936), uint16(1821), uint16(1810), uint16(1832), uint16(1938), uint16(1938), uint16(1942),
+ uint16(1822), uint16(1947), uint16(1824), uint16(1949), uint16(1968), uint16(1828), uint16(1841), uint16(1938), uint16(1842), uint16(1912),
+ uint16(1939), uint16(1938), uint16(1826), uint16(1921), uint16(1922), uint16(1925), uint16(1926), uint16(1850), uint16(1865), uint16(1948),
+ uint16(1843), uint16(1982), uint16(1980), uint16(1964), uint16(1872), uint16(1827), uint16(1928), uint16(1970), uint16(1929), uint16(1923),
+ uint16(1958), uint16(1848), uint16(1885), uint16(1977), uint16(1983), uint16(1985), uint16(1871), uint16(1880), uint16(1984), uint16(1943),
+ uint16(1986), uint16(1987), uint16(1988), uint16(1990), uint16(1946), uint16(1955), uint16(1991), uint16(1911), uint16(1989), uint16(1994),
+ uint16(1951), uint16(1992), uint16(1996), uint16(1873), uint16(1998), uint16(2000), uint16(2001), uint16(2002), uint16(2003), uint16(2004),
+ uint16(1999), uint16(1933), uint16(1890), uint16(2009), uint16(2010), uint16(1910), uint16(2005), uint16(2012), uint16(1892), uint16(2011),
+ uint16(2006), uint16(2007), uint16(2008), uint16(2013), uint16(1950), uint16(1962), uint16(1957), uint16(2014), uint16(1969), uint16(1952),
+ uint16(2015), uint16(2023), uint16(2026), uint16(2027), uint16(2025), uint16(2028), uint16(2018), uint16(1913), uint16(1915), uint16(2031),
+ uint16(2011), uint16(2033), uint16(2036), uint16(2037), uint16(2038), uint16(2039), uint16(2040), uint16(2043), uint16(2051), uint16(2044),
+ uint16(2045), uint16(2046), uint16(2047), uint16(2049), uint16(2050), uint16(2048), uint16(1944), uint16(1935), uint16(1953), uint16(1954),
+ uint16(1956), uint16(2052), uint16(2055), uint16(2053), uint16(2073), uint16(2074),
+}
+var yy_reduce_ofst = [409]int16{
+ int16(-125), int16(733), int16(789), int16(241), int16(293), int16(-123), int16(-193), int16(-191), int16(-183), int16(-187),
+ int16(166), int16(238), int16(133), int16(-207), int16(-199), int16(-267), int16(-176), int16(-6), int16(204), int16(489),
+ int16(576), int16(-175), int16(598), int16(686), int16(615), int16(725), int16(860), int16(778), int16(781), int16(857),
+ int16(616), int16(887), int16(87), int16(240), int16(-192), int16(408), int16(626), int16(796), int16(843), int16(854),
+ int16(1003), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271),
+ int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271),
+ int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271),
+ int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(80), int16(83),
+ int16(313), int16(886), int16(888), int16(996), int16(1034), int16(1059), int16(1081), int16(1100), int16(1117), int16(1152),
+ int16(1155), int16(1163), int16(1165), int16(1167), int16(1169), int16(1172), int16(1180), int16(1182), int16(1184), int16(1198),
+ int16(1200), int16(1213), int16(1215), int16(1225), int16(1227), int16(1252), int16(1254), int16(1264), int16(1299), int16(1303),
+ int16(1308), int16(1312), int16(1325), int16(1328), int16(1337), int16(1340), int16(1343), int16(1371), int16(1373), int16(1384),
+ int16(1386), int16(1411), int16(1420), int16(1424), int16(1426), int16(1458), int16(1470), int16(1473), int16(1475), int16(1479),
+ int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271), int16(-271),
+ int16(-271), int16(138), int16(459), int16(396), int16(-158), int16(470), int16(302), int16(-212), int16(521), int16(201),
+ int16(-195), int16(-92), int16(559), int16(630), int16(632), int16(630), int16(-271), int16(632), int16(901), int16(63),
+ int16(407), int16(-271), int16(-271), int16(-271), int16(-271), int16(161), int16(161), int16(161), int16(251), int16(335),
+ int16(847), int16(960), int16(980), int16(537), int16(588), int16(618), int16(628), int16(688), int16(688), int16(-166),
+ int16(-161), int16(674), int16(790), int16(794), int16(799), int16(851), int16(852), int16(-122), int16(680), int16(-120),
+ int16(995), int16(1038), int16(415), int16(1051), int16(893), int16(798), int16(962), int16(400), int16(1086), int16(779),
+ int16(923), int16(924), int16(263), int16(1041), int16(979), int16(990), int16(1083), int16(1097), int16(1031), int16(1194),
+ int16(362), int16(994), int16(1139), int16(1005), int16(1037), int16(1202), int16(1205), int16(1195), int16(1210), int16(-194),
+ int16(56), int16(185), int16(-135), int16(232), int16(522), int16(560), int16(601), int16(617), int16(669), int16(683),
+ int16(711), int16(856), int16(908), int16(941), int16(1048), int16(1101), int16(1147), int16(1257), int16(1262), int16(1265),
+ int16(392), int16(1292), int16(1333), int16(1339), int16(1342), int16(1346), int16(1350), int16(1359), int16(1374), int16(1418),
+ int16(1421), int16(1436), int16(1437), int16(593), int16(755), int16(770), int16(997), int16(1445), int16(1459), int16(1209),
+ int16(1500), int16(1504), int16(1516), int16(1132), int16(1243), int16(1518), int16(1519), int16(1440), int16(1520), int16(560),
+ int16(1522), int16(1523), int16(1524), int16(1526), int16(1527), int16(1529), int16(1382), int16(1438), int16(1431), int16(1468),
+ int16(1469), int16(1472), int16(1476), int16(1209), int16(1431), int16(1431), int16(1485), int16(1525), int16(1539), int16(1435),
+ int16(1463), int16(1471), int16(1492), int16(1487), int16(1443), int16(1494), int16(1474), int16(1484), int16(1498), int16(1486),
+ int16(1502), int16(1455), int16(1530), int16(1531), int16(1533), int16(1540), int16(1542), int16(1544), int16(1505), int16(1506),
+ int16(1507), int16(1508), int16(1521), int16(1528), int16(1493), int16(1537), int16(1532), int16(1575), int16(1488), int16(1496),
+ int16(1584), int16(1594), int16(1509), int16(1510), int16(1600), int16(1538), int16(1534), int16(1541), int16(1574), int16(1577),
+ int16(1583), int16(1585), int16(1586), int16(1612), int16(1626), int16(1581), int16(1556), int16(1558), int16(1587), int16(1559),
+ int16(1601), int16(1588), int16(1603), int16(1592), int16(1631), int16(1640), int16(1550), int16(1553), int16(1643), int16(1645),
+ int16(1625), int16(1649), int16(1652), int16(1650), int16(1653), int16(1632), int16(1636), int16(1637), int16(1642), int16(1634),
+ int16(1639), int16(1641), int16(1646), int16(1656), int16(1655), int16(1658), int16(1659), int16(1661), int16(1663), int16(1560),
+ int16(1564), int16(1596), int16(1605), int16(1664), int16(1670), int16(1565), int16(1571), int16(1627), int16(1638), int16(1657),
+ int16(1665), int16(1623), int16(1702), int16(1630), int16(1666), int16(1667), int16(1671), int16(1673), int16(1703), int16(1718),
+ int16(1719), int16(1729), int16(1730), int16(1731), int16(1621), int16(1622), int16(1628), int16(1720), int16(1713), int16(1716),
+ int16(1722), int16(1723), int16(1733), int16(1717), int16(1724), int16(1727), int16(1728), int16(1725), int16(1740),
+}
+var yy_default = [576]uint16{
+ uint16(1647), uint16(1647), uint16(1647), uint16(1475), uint16(1240), uint16(1351), uint16(1240), uint16(1240), uint16(1240), uint16(1475),
+ uint16(1475), uint16(1475), uint16(1240), uint16(1381), uint16(1381), uint16(1528), uint16(1273), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1474), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1563), uint16(1563), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1390), uint16(1240), uint16(1397), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1476), uint16(1477), uint16(1240), uint16(1240), uint16(1240), uint16(1527), uint16(1529), uint16(1492), uint16(1404), uint16(1403),
+ uint16(1402), uint16(1401), uint16(1510), uint16(1369), uint16(1395), uint16(1388), uint16(1392), uint16(1470), uint16(1471), uint16(1469),
+ uint16(1473), uint16(1477), uint16(1476), uint16(1240), uint16(1391), uint16(1438), uint16(1454), uint16(1437), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1446), uint16(1453), uint16(1452), uint16(1451), uint16(1460), uint16(1450), uint16(1447), uint16(1440), uint16(1439), uint16(1441),
+ uint16(1442), uint16(1240), uint16(1240), uint16(1264), uint16(1240), uint16(1240), uint16(1261), uint16(1315), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1547), uint16(1546), uint16(1240), uint16(1443), uint16(1240), uint16(1273), uint16(1432),
+ uint16(1431), uint16(1457), uint16(1444), uint16(1456), uint16(1455), uint16(1535), uint16(1599), uint16(1598), uint16(1493), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1563), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1371),
+ uint16(1563), uint16(1563), uint16(1240), uint16(1273), uint16(1563), uint16(1563), uint16(1372), uint16(1372), uint16(1269), uint16(1269),
+ uint16(1375), uint16(1240), uint16(1542), uint16(1342), uint16(1342), uint16(1342), uint16(1342), uint16(1351), uint16(1342), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1532), uint16(1530), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1347), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1592), uint16(1240), uint16(1505), uint16(1329), uint16(1347),
+ uint16(1347), uint16(1347), uint16(1347), uint16(1349), uint16(1330), uint16(1328), uint16(1341), uint16(1274), uint16(1247), uint16(1639),
+ uint16(1407), uint16(1396), uint16(1348), uint16(1396), uint16(1636), uint16(1394), uint16(1407), uint16(1407), uint16(1394), uint16(1407),
+ uint16(1348), uint16(1636), uint16(1290), uint16(1615), uint16(1285), uint16(1381), uint16(1381), uint16(1381), uint16(1371), uint16(1371),
+ uint16(1371), uint16(1371), uint16(1375), uint16(1375), uint16(1472), uint16(1348), uint16(1341), uint16(1240), uint16(1639), uint16(1639),
+ uint16(1357), uint16(1357), uint16(1638), uint16(1638), uint16(1357), uint16(1493), uint16(1623), uint16(1416), uint16(1318), uint16(1324),
+ uint16(1324), uint16(1324), uint16(1324), uint16(1357), uint16(1258), uint16(1394), uint16(1623), uint16(1623), uint16(1394), uint16(1416),
+ uint16(1318), uint16(1394), uint16(1318), uint16(1394), uint16(1357), uint16(1258), uint16(1509), uint16(1633), uint16(1357), uint16(1258),
+ uint16(1483), uint16(1357), uint16(1258), uint16(1357), uint16(1258), uint16(1483), uint16(1316), uint16(1316), uint16(1316), uint16(1305),
+ uint16(1240), uint16(1240), uint16(1483), uint16(1316), uint16(1290), uint16(1316), uint16(1305), uint16(1316), uint16(1316), uint16(1581),
+ uint16(1240), uint16(1487), uint16(1487), uint16(1483), uint16(1357), uint16(1573), uint16(1573), uint16(1384), uint16(1384), uint16(1389),
+ uint16(1375), uint16(1478), uint16(1357), uint16(1240), uint16(1389), uint16(1387), uint16(1385), uint16(1394), uint16(1308), uint16(1595),
+ uint16(1595), uint16(1591), uint16(1591), uint16(1591), uint16(1644), uint16(1644), uint16(1542), uint16(1608), uint16(1273), uint16(1273),
+ uint16(1273), uint16(1273), uint16(1608), uint16(1292), uint16(1292), uint16(1274), uint16(1274), uint16(1273), uint16(1608), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1603), uint16(1240), uint16(1537), uint16(1494), uint16(1361),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1548), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1421), uint16(1240), uint16(1243), uint16(1539), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1398), uint16(1399), uint16(1362),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1413), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1408), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1635), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1508), uint16(1507), uint16(1240),
+ uint16(1240), uint16(1359), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1288), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1386),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1578), uint16(1376), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1626), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240),
+ uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1240), uint16(1619), uint16(1332), uint16(1423), uint16(1240), uint16(1422),
+ uint16(1426), uint16(1262), uint16(1240), uint16(1252), uint16(1240), uint16(1240),
+}
+
+var yyFallback = [185]uint16{
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(59),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+ uint16(0),
+}
+
+type yyStackEntry = struct {
+ Fstateno uint16
+ Fmajor uint16
+ F__ccgo_pad1 [4]byte
+ Fminor YYMINORTYPE
+}
+
+type YyStackEntry = yyStackEntry
+
+type yyParser = struct {
+ Fyytos uintptr
+ FpParse uintptr
+ Fyystack [100]YyStackEntry
+ FyystackEnd uintptr
+}
+
+type YyParser = yyParser
+
+// Initialize a new parser that has already been allocated.
+func Xsqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) {
+ var yypParser uintptr = yypRawParser
+ (*YyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
+ (*YyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16
+ (*YyStackEntry)(unsafe.Pointer(yypParser + 16)).Fstateno = uint16(0)
+ (*YyStackEntry)(unsafe.Pointer(yypParser + 16)).Fmajor = uint16(0)
+ (*YyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + 99*24
+}
+
+func yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor uintptr) {
+ var pParse uintptr = (*YyParser)(unsafe.Pointer(yypParser)).FpParse
+ switch int32(yymajor) {
+ case 204:
+ fallthrough
+ case 239:
+ fallthrough
+ case 240:
+ fallthrough
+ case 252:
+ {
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 216:
+ fallthrough
+ case 217:
+ fallthrough
+ case 246:
+ fallthrough
+ case 248:
+ fallthrough
+ case 267:
+ fallthrough
+ case 278:
+ fallthrough
+ case 280:
+ fallthrough
+ case 283:
+ fallthrough
+ case 290:
+ fallthrough
+ case 295:
+ fallthrough
+ case 311:
+ {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 221:
+ fallthrough
+ case 231:
+ fallthrough
+ case 232:
+ fallthrough
+ case 244:
+ fallthrough
+ case 247:
+ fallthrough
+ case 249:
+ fallthrough
+ case 253:
+ fallthrough
+ case 254:
+ fallthrough
+ case 261:
+ fallthrough
+ case 268:
+ fallthrough
+ case 277:
+ fallthrough
+ case 279:
+ fallthrough
+ case 310:
+ {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 238:
+ fallthrough
+ case 245:
+ fallthrough
+ case 256:
+ fallthrough
+ case 257:
+ fallthrough
+ case 262:
+ {
+ Xsqlite3SrcListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 241:
+ {
+ Xsqlite3WithDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 251:
+ fallthrough
+ case 306:
+ {
+ Xsqlite3WindowListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 263:
+ fallthrough
+ case 270:
+ {
+ Xsqlite3IdListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 273:
+ fallthrough
+ case 307:
+ fallthrough
+ case 308:
+ fallthrough
+ case 309:
+ fallthrough
+ case 312:
+ {
+ Xsqlite3WindowDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 286:
+ fallthrough
+ case 291:
+ {
+ Xsqlite3DeleteTriggerStep(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor)))
+ }
+ break
+ case 288:
+ {
+ Xsqlite3IdListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*TrigEvent)(unsafe.Pointer(yypminor)).Fb)
+ }
+ break
+ case 314:
+ fallthrough
+ case 315:
+ fallthrough
+ case 316:
+ {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*FrameBound)(unsafe.Pointer(yypminor)).FpExpr)
+ }
+ break
+
+ default:
+ break
+ }
+}
+
+func yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) {
+ var yytos uintptr
+
+ yytos = libc.PostDecUintptr(&(*YyParser)(unsafe.Pointer(pParser)).Fyytos, 24)
+ yy_destructor(tls, pParser, (*YyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8)
+}
+
+// Clear all secondary memory allocations from the parser
+func Xsqlite3ParserFinalize(tls *libc.TLS, p uintptr) {
+ var pParser uintptr = p
+ for (*YyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 {
+ yy_pop_parser_stack(tls, pParser)
+ }
+}
+
+func yy_find_shift_action(tls *libc.TLS, iLookAhead uint16, stateno uint16) uint16 {
+ var i int32
+
+ if int32(stateno) > YY_MAX_SHIFT {
+ return stateno
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = 1 != 0 {
+ i = int32(yy_shift_ofst[stateno])
+
+ i = i + int32(iLookAhead)
+
+ if int32(yy_lookahead[i]) != int32(iLookAhead) {
+ var iFallback uint16
+
+ iFallback = yyFallback[iLookAhead]
+ if int32(iFallback) != 0 {
+ iLookAhead = iFallback
+ continue
+ }
+ {
+ var j int32 = i - int32(iLookAhead) + YYWILDCARD
+
+ if int32(yy_lookahead[j]) == YYWILDCARD && int32(iLookAhead) > 0 {
+ return yy_action[j]
+ }
+
+ }
+ return yy_default[stateno]
+ } else {
+ return yy_action[i]
+ }
+ }
+ return uint16(0)
+}
+
+func yy_find_reduce_action(tls *libc.TLS, stateno uint16, iLookAhead uint16) uint16 {
+ var i int32
+
+ i = int32(yy_reduce_ofst[stateno])
+
+ i = i + int32(iLookAhead)
+
+ return yy_action[i]
+}
+
+func yyStackOverflow(tls *libc.TLS, yypParser uintptr) {
+ var pParse uintptr = (*YyParser)(unsafe.Pointer(yypParser)).FpParse
+ for (*YyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 {
+ yy_pop_parser_stack(tls, yypParser)
+ }
+
+ Xsqlite3ErrorMsg(tls, pParse, ts+23396, 0)
+
+ (*YyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
+}
+
+func yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint16, yyMinor Token) {
+ var yytos uintptr
+ (*YyParser)(unsafe.Pointer(yypParser)).Fyytos += 24
+ if (*YyParser)(unsafe.Pointer(yypParser)).Fyytos > (*YyParser)(unsafe.Pointer(yypParser)).FyystackEnd {
+ (*YyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24
+ yyStackOverflow(tls, yypParser)
+ return
+ }
+ if int32(yyNewState) > YY_MAX_SHIFT {
+ yyNewState = uint16(int32(yyNewState) + (YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE))
+ }
+ yytos = (*YyParser)(unsafe.Pointer(yypParser)).Fyytos
+ (*YyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState
+ (*YyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor
+ *(*Token)(unsafe.Pointer(yytos + 8)) = yyMinor
+
+}
+
+var yyRuleInfoLhs = [405]uint16{
+ uint16(189),
+ uint16(189),
+ uint16(188),
+ uint16(190),
+ uint16(191),
+ uint16(191),
+ uint16(191),
+ uint16(191),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(195),
+ uint16(197),
+ uint16(199),
+ uint16(199),
+ uint16(198),
+ uint16(198),
+ uint16(196),
+ uint16(196),
+ uint16(203),
+ uint16(203),
+ uint16(205),
+ uint16(205),
+ uint16(206),
+ uint16(208),
+ uint16(208),
+ uint16(208),
+ uint16(209),
+ uint16(213),
+ uint16(214),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(224),
+ uint16(224),
+ uint16(220),
+ uint16(220),
+ uint16(222),
+ uint16(222),
+ uint16(225),
+ uint16(225),
+ uint16(225),
+ uint16(225),
+ uint16(226),
+ uint16(226),
+ uint16(226),
+ uint16(226),
+ uint16(226),
+ uint16(223),
+ uint16(223),
+ uint16(227),
+ uint16(227),
+ uint16(227),
+ uint16(202),
+ uint16(229),
+ uint16(230),
+ uint16(230),
+ uint16(230),
+ uint16(230),
+ uint16(230),
+ uint16(233),
+ uint16(218),
+ uint16(218),
+ uint16(234),
+ uint16(234),
+ uint16(235),
+ uint16(235),
+ uint16(190),
+ uint16(237),
+ uint16(237),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(204),
+ uint16(204),
+ uint16(204),
+ uint16(239),
+ uint16(242),
+ uint16(242),
+ uint16(242),
+ uint16(240),
+ uint16(240),
+ uint16(252),
+ uint16(252),
+ uint16(243),
+ uint16(243),
+ uint16(243),
+ uint16(254),
+ uint16(244),
+ uint16(244),
+ uint16(244),
+ uint16(255),
+ uint16(255),
+ uint16(245),
+ uint16(245),
+ uint16(257),
+ uint16(257),
+ uint16(256),
+ uint16(256),
+ uint16(256),
+ uint16(256),
+ uint16(256),
+ uint16(200),
+ uint16(200),
+ uint16(238),
+ uint16(238),
+ uint16(262),
+ uint16(262),
+ uint16(262),
+ uint16(262),
+ uint16(258),
+ uint16(258),
+ uint16(258),
+ uint16(258),
+ uint16(259),
+ uint16(259),
+ uint16(259),
+ uint16(264),
+ uint16(260),
+ uint16(260),
+ uint16(249),
+ uint16(249),
+ uint16(231),
+ uint16(231),
+ uint16(219),
+ uint16(219),
+ uint16(219),
+ uint16(265),
+ uint16(265),
+ uint16(265),
+ uint16(247),
+ uint16(247),
+ uint16(248),
+ uint16(248),
+ uint16(250),
+ uint16(250),
+ uint16(250),
+ uint16(250),
+ uint16(190),
+ uint16(246),
+ uint16(246),
+ uint16(267),
+ uint16(267),
+ uint16(267),
+ uint16(267),
+ uint16(190),
+ uint16(268),
+ uint16(268),
+ uint16(268),
+ uint16(268),
+ uint16(190),
+ uint16(190),
+ uint16(271),
+ uint16(271),
+ uint16(271),
+ uint16(271),
+ uint16(271),
+ uint16(271),
+ uint16(272),
+ uint16(269),
+ uint16(269),
+ uint16(270),
+ uint16(270),
+ uint16(263),
+ uint16(263),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(216),
+ uint16(216),
+ uint16(216),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(216),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(274),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(275),
+ uint16(275),
+ uint16(217),
+ uint16(276),
+ uint16(276),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(217),
+ uint16(279),
+ uint16(279),
+ uint16(280),
+ uint16(280),
+ uint16(278),
+ uint16(278),
+ uint16(261),
+ uint16(253),
+ uint16(253),
+ uint16(277),
+ uint16(277),
+ uint16(190),
+ uint16(281),
+ uint16(281),
+ uint16(221),
+ uint16(221),
+ uint16(232),
+ uint16(232),
+ uint16(282),
+ uint16(282),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(283),
+ uint16(283),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(211),
+ uint16(212),
+ uint16(190),
+ uint16(285),
+ uint16(287),
+ uint16(287),
+ uint16(287),
+ uint16(288),
+ uint16(288),
+ uint16(288),
+ uint16(290),
+ uint16(290),
+ uint16(286),
+ uint16(286),
+ uint16(292),
+ uint16(293),
+ uint16(293),
+ uint16(291),
+ uint16(291),
+ uint16(291),
+ uint16(291),
+ uint16(217),
+ uint16(217),
+ uint16(236),
+ uint16(236),
+ uint16(236),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(295),
+ uint16(295),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(296),
+ uint16(190),
+ uint16(190),
+ uint16(190),
+ uint16(298),
+ uint16(300),
+ uint16(301),
+ uint16(301),
+ uint16(302),
+ uint16(266),
+ uint16(266),
+ uint16(305),
+ uint16(305),
+ uint16(305),
+ uint16(304),
+ uint16(241),
+ uint16(241),
+ uint16(306),
+ uint16(306),
+ uint16(307),
+ uint16(308),
+ uint16(308),
+ uint16(308),
+ uint16(308),
+ uint16(308),
+ uint16(308),
+ uint16(309),
+ uint16(309),
+ uint16(309),
+ uint16(313),
+ uint16(315),
+ uint16(315),
+ uint16(316),
+ uint16(316),
+ uint16(314),
+ uint16(314),
+ uint16(317),
+ uint16(317),
+ uint16(318),
+ uint16(318),
+ uint16(318),
+ uint16(251),
+ uint16(273),
+ uint16(273),
+ uint16(273),
+ uint16(312),
+ uint16(312),
+ uint16(311),
+ uint16(185),
+ uint16(186),
+ uint16(186),
+ uint16(187),
+ uint16(187),
+ uint16(187),
+ uint16(192),
+ uint16(192),
+ uint16(192),
+ uint16(194),
+ uint16(194),
+ uint16(190),
+ uint16(203),
+ uint16(201),
+ uint16(201),
+ uint16(193),
+ uint16(193),
+ uint16(193),
+ uint16(208),
+ uint16(209),
+ uint16(210),
+ uint16(210),
+ uint16(207),
+ uint16(207),
+ uint16(215),
+ uint16(215),
+ uint16(215),
+ uint16(202),
+ uint16(228),
+ uint16(228),
+ uint16(229),
+ uint16(233),
+ uint16(235),
+ uint16(239),
+ uint16(240),
+ uint16(254),
+ uint16(255),
+ uint16(264),
+ uint16(272),
+ uint16(217),
+ uint16(274),
+ uint16(261),
+ uint16(284),
+ uint16(284),
+ uint16(284),
+ uint16(284),
+ uint16(284),
+ uint16(211),
+ uint16(289),
+ uint16(289),
+ uint16(292),
+ uint16(293),
+ uint16(294),
+ uint16(294),
+ uint16(297),
+ uint16(297),
+ uint16(299),
+ uint16(299),
+ uint16(300),
+ uint16(303),
+ uint16(303),
+ uint16(303),
+ uint16(266),
+}
+
+var yyRuleInfoNRhs = [405]int8{
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-3),
+ int8(0),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-2),
+ int8(-2),
+ int8(-3),
+ int8(-5),
+ int8(-6),
+ int8(-1),
+ int8(0),
+ int8(-3),
+ int8(-1),
+ int8(0),
+ int8(-5),
+ int8(-2),
+ int8(0),
+ int8(-3),
+ int8(-2),
+ int8(-1),
+ int8(-2),
+ int8(0),
+ int8(-4),
+ int8(-6),
+ int8(-2),
+ int8(0),
+ int8(0),
+ int8(-2),
+ int8(-3),
+ int8(-4),
+ int8(-4),
+ int8(-4),
+ int8(-3),
+ int8(-3),
+ int8(-5),
+ int8(-2),
+ int8(-4),
+ int8(-4),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(-4),
+ int8(0),
+ int8(-1),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-2),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(0),
+ int8(-1),
+ int8(-2),
+ int8(-7),
+ int8(-5),
+ int8(-5),
+ int8(-10),
+ int8(0),
+ int8(0),
+ int8(-3),
+ int8(0),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(-4),
+ int8(-2),
+ int8(0),
+ int8(-9),
+ int8(-4),
+ int8(-1),
+ int8(-3),
+ int8(-4),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(-9),
+ int8(-10),
+ int8(-4),
+ int8(-5),
+ int8(-1),
+ int8(-1),
+ int8(0),
+ int8(0),
+ int8(-5),
+ int8(-3),
+ int8(-5),
+ int8(-2),
+ int8(0),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(0),
+ int8(-5),
+ int8(-6),
+ int8(-8),
+ int8(-6),
+ int8(-6),
+ int8(0),
+ int8(-2),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-3),
+ int8(-5),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(-4),
+ int8(-2),
+ int8(-4),
+ int8(0),
+ int8(0),
+ int8(-3),
+ int8(-2),
+ int8(0),
+ int8(-3),
+ int8(-5),
+ int8(-3),
+ int8(-1),
+ int8(-1),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(0),
+ int8(0),
+ int8(-3),
+ int8(0),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-4),
+ int8(-4),
+ int8(-6),
+ int8(0),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(-4),
+ int8(-9),
+ int8(-5),
+ int8(-7),
+ int8(-3),
+ int8(-5),
+ int8(-7),
+ int8(-8),
+ int8(0),
+ int8(-2),
+ int8(-12),
+ int8(-9),
+ int8(-5),
+ int8(-8),
+ int8(-2),
+ int8(-2),
+ int8(-1),
+ int8(0),
+ int8(-3),
+ int8(-3),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-1),
+ int8(-3),
+ int8(-5),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-3),
+ int8(-6),
+ int8(-5),
+ int8(-4),
+ int8(-6),
+ int8(-5),
+ int8(-1),
+ int8(-5),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-2),
+ int8(-3),
+ int8(-5),
+ int8(-2),
+ int8(-3),
+ int8(-3),
+ int8(-4),
+ int8(-6),
+ int8(-5),
+ int8(-2),
+ int8(-2),
+ int8(-2),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-5),
+ int8(-1),
+ int8(-2),
+ int8(-5),
+ int8(-3),
+ int8(-5),
+ int8(-5),
+ int8(-4),
+ int8(-5),
+ int8(-5),
+ int8(-4),
+ int8(-2),
+ int8(0),
+ int8(-1),
+ int8(0),
+ int8(0),
+ int8(-3),
+ int8(-1),
+ int8(0),
+ int8(-3),
+ int8(-12),
+ int8(-1),
+ int8(0),
+ int8(0),
+ int8(-3),
+ int8(-5),
+ int8(-3),
+ int8(0),
+ int8(-2),
+ int8(-4),
+ int8(-2),
+ int8(-3),
+ int8(-2),
+ int8(0),
+ int8(-3),
+ int8(-5),
+ int8(-6),
+ int8(-5),
+ int8(-6),
+ int8(-2),
+ int8(-2),
+ int8(-5),
+ int8(-11),
+ int8(-1),
+ int8(-2),
+ int8(0),
+ int8(-1),
+ int8(-1),
+ int8(-3),
+ int8(0),
+ int8(-2),
+ int8(-3),
+ int8(-2),
+ int8(-3),
+ int8(-3),
+ int8(-2),
+ int8(-9),
+ int8(-8),
+ int8(-6),
+ int8(-3),
+ int8(-4),
+ int8(-6),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-4),
+ int8(-6),
+ int8(-3),
+ int8(0),
+ int8(-2),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-3),
+ int8(-6),
+ int8(-7),
+ int8(-6),
+ int8(-1),
+ int8(-8),
+ int8(-1),
+ int8(-4),
+ int8(-8),
+ int8(0),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(-6),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-3),
+ int8(-5),
+ int8(-5),
+ int8(-6),
+ int8(-4),
+ int8(-5),
+ int8(-1),
+ int8(-2),
+ int8(0),
+ int8(-3),
+ int8(-6),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(-2),
+ int8(-2),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-2),
+ int8(-2),
+ int8(-1),
+ int8(-2),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(-4),
+ int8(-2),
+ int8(-5),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-3),
+ int8(0),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(0),
+ int8(-2),
+ int8(-1),
+ int8(-4),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-4),
+ int8(-2),
+ int8(-2),
+ int8(-3),
+ int8(-1),
+ int8(0),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(-1),
+ int8(0),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(-1),
+ int8(0),
+ int8(-3),
+ int8(-1),
+ int8(0),
+ int8(-1),
+ int8(0),
+ int8(0),
+ int8(-1),
+ int8(-1),
+ int8(-3),
+ int8(-2),
+ int8(0),
+ int8(-4),
+ int8(-2),
+ int8(0),
+}
+
+func yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken Token, pParse uintptr) uint16 {
+ bp := tls.Alloc(160)
+ defer tls.Free(160)
+
+ var yygoto int32
+ var yyact uint16
+ var yymsp uintptr
+ var yysize int32
+
+ _ = yyLookahead
+ _ = yyLookaheadToken
+ yymsp = (*YyParser)(unsafe.Pointer(yypParser)).Fyytos
+
+ {
+ switch yyruleno {
+ case uint32(0):
+ {
+ (*Parse)(unsafe.Pointer(pParse)).Fexplain = U8(1)
+ }
+ break
+ case uint32(1):
+ {
+ (*Parse)(unsafe.Pointer(pParse)).Fexplain = U8(2)
+ }
+ break
+ case uint32(2):
+ {
+ Xsqlite3FinishCoding(tls, pParse)
+ }
+ break
+ case uint32(3):
+ {
+ Xsqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(4):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = TK_DEFERRED
+ }
+ break
+ case uint32(5):
+ fallthrough
+ case uint32(6):
+ fallthrough
+ case uint32(7):
+ fallthrough
+ case uint32(323):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ }
+ break
+ case uint32(8):
+ fallthrough
+ case uint32(9):
+ {
+ Xsqlite3EndTransaction(tls, pParse, int32((*YyStackEntry)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24)).Fmajor))
+ }
+ break
+ case uint32(10):
+ {
+ Xsqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8)
+ }
+ break
+ case uint32(11):
+ {
+ Xsqlite3Savepoint(tls, pParse, SAVEPOINT_RELEASE, yymsp+8)
+ }
+ break
+ case uint32(12):
+ {
+ Xsqlite3Savepoint(tls, pParse, SAVEPOINT_ROLLBACK, yymsp+8)
+ }
+ break
+ case uint32(13):
+ {
+ Xsqlite3StartTable(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ break
+ case uint32(14):
+ {
+ disableLookaside(tls, pParse)
+ }
+ break
+ case uint32(15):
+ fallthrough
+ case uint32(18):
+ fallthrough
+ case uint32(47):
+ fallthrough
+ case uint32(62):
+ fallthrough
+ case uint32(72):
+ fallthrough
+ case uint32(81):
+ fallthrough
+ case uint32(98):
+ fallthrough
+ case uint32(244):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0
+ }
+ break
+ case uint32(16):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = 1
+ }
+ break
+ case uint32(17):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.Bool32(int32((*Sqlite3)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).Fdb)).Finit.Fbusy) == 0)
+ }
+ break
+ case uint32(19):
+ {
+ Xsqlite3EndTable(tls, pParse, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, *(*U32)(unsafe.Pointer(yymsp + 8)), uintptr(0))
+ }
+ break
+ case uint32(20):
+ {
+ Xsqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(21):
+ {
+ *(*U32)(unsafe.Pointer(yymsp + 1*24 + 8)) = U32(0)
+ }
+ break
+ case uint32(22):
+ {
+ *(*U32)(unsafe.Pointer(bp + 40)) = *(*U32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) | *(*U32)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*U32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*U32)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(23):
+ {
+ if (*Token)(unsafe.Pointer(yymsp+8)).Fn == uint32(5) && Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(yymsp+8)).Fz, ts+16673, 5) == 0 {
+ *(*U32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = U32(TF_WithoutRowid | TF_NoVisibleRowid)
+ } else {
+ *(*U32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = U32(0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+23418, libc.VaList(bp, (*Token)(unsafe.Pointer(yymsp+8)).Fn, (*Token)(unsafe.Pointer(yymsp+8)).Fz))
+ }
+ }
+ break
+ case uint32(24):
+ {
+ if (*Token)(unsafe.Pointer(yymsp+8)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, (*Token)(unsafe.Pointer(yymsp+8)).Fz, ts+16586, 6) == 0 {
+ *(*U32)(unsafe.Pointer(bp + 40)) = U32(TF_Strict)
+ } else {
+ *(*U32)(unsafe.Pointer(bp + 40)) = U32(0)
+ Xsqlite3ErrorMsg(tls, pParse, ts+23418, libc.VaList(bp+16, (*Token)(unsafe.Pointer(yymsp+8)).Fn, (*Token)(unsafe.Pointer(yymsp+8)).Fz))
+ }
+ }
+ *(*U32)(unsafe.Pointer(yymsp + 8)) = *(*U32)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(25):
+ {
+ Xsqlite3AddColumn(tls, pParse, *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*Token)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(26):
+ fallthrough
+ case uint32(65):
+ fallthrough
+ case uint32(104):
+ {
+ (*Token)(unsafe.Pointer(yymsp + 1*24 + 8)).Fn = uint32(0)
+ (*Token)(unsafe.Pointer(yymsp + 1*24 + 8)).Fz = uintptr(0)
+ }
+ break
+ case uint32(27):
+ {
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)).Fn = uint32(int32((int64((*Token)(unsafe.Pointer(yymsp+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+8)).Fn)) - int64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).Fz)) / 1))
+ }
+ break
+ case uint32(28):
+ {
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)).Fn = uint32(int32((int64((*Token)(unsafe.Pointer(yymsp+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+8)).Fn)) - int64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-5)*24+8)).Fz)) / 1))
+ }
+ break
+ case uint32(29):
+ {
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).Fn = (*Token)(unsafe.Pointer(yymsp+8)).Fn + uint32(int32((int64((*Token)(unsafe.Pointer(yymsp+8)).Fz)-int64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz))/1))
+ }
+ break
+ case uint32(30):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz
+ }
+ break
+ case uint32(31):
+ {
+ *(*Token)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken
+ }
+ break
+ case uint32(32):
+ fallthrough
+ case uint32(67):
+ {
+ (*Parse)(unsafe.Pointer(pParse)).FconstraintName = *(*Token)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(33):
+ {
+ Xsqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fn))
+ }
+ break
+ case uint32(34):
+ {
+ Xsqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-2)*24+8)).Fz+uintptr(1), (*Token)(unsafe.Pointer(yymsp+8)).Fz)
+ }
+ break
+ case uint32(35):
+ {
+ Xsqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-2)*24+8)).Fz, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fn))
+ }
+ break
+ case uint32(36):
+ {
+ var p uintptr = Xsqlite3PExpr(tls, pParse, TK_UMINUS, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0))
+ Xsqlite3AddDefaultValue(tls, pParse, p, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-2)*24+8)).Fz, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fn))
+ }
+ break
+ case uint32(37):
+ {
+ var p uintptr = tokenExpr(tls, pParse, TK_STRING, *(*Token)(unsafe.Pointer(yymsp + 8)))
+ if p != 0 {
+ Xsqlite3ExprIdToTrueFalse(tls, p)
+
+ }
+ Xsqlite3AddDefaultValue(tls, pParse, p, (*Token)(unsafe.Pointer(yymsp+8)).Fz, (*Token)(unsafe.Pointer(yymsp+8)).Fz+uintptr((*Token)(unsafe.Pointer(yymsp+8)).Fn))
+ }
+ break
+ case uint32(38):
+ {
+ Xsqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(39):
+ {
+ Xsqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ break
+ case uint32(40):
+ {
+ Xsqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0,
+ uint8(SQLITE_IDXTYPE_UNIQUE))
+ }
+ break
+ case uint32(41):
+ {
+ Xsqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-2)*24+8)).Fz, (*Token)(unsafe.Pointer(yymsp+8)).Fz)
+ }
+ break
+ case uint32(42):
+ {
+ Xsqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(43):
+ {
+ Xsqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(44):
+ {
+ Xsqlite3AddCollateType(tls, pParse, yymsp+8)
+ }
+ break
+ case uint32(45):
+ {
+ Xsqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(46):
+ {
+ Xsqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), yymsp+8)
+ }
+ break
+ case uint32(48):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = 1
+ }
+ break
+ case uint32(49):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None * 0x0101
+ }
+ break
+ case uint32(50):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(51):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = 0
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8 + 4)) = 0x000000
+ }
+ break
+ case uint32(52):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = 0
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8 + 4)) = 0x000000
+ }
+ break
+ case uint32(53):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8))
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8 + 4)) = 0x0000ff
+ }
+ break
+ case uint32(54):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << 8
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8 + 4)) = 0x00ff00
+ }
+ break
+ case uint32(55):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = OE_SetNull
+ }
+ break
+ case uint32(56):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = OE_SetDflt
+ }
+ break
+ case uint32(57):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Cascade
+ }
+ break
+ case uint32(58):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Restrict
+ }
+ break
+ case uint32(59):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = OE_None
+ }
+ break
+ case uint32(60):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = 0
+ }
+ break
+ case uint32(61):
+ fallthrough
+ case uint32(76):
+ fallthrough
+ case uint32(171):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(63):
+ fallthrough
+ case uint32(80):
+ fallthrough
+ case uint32(216):
+ fallthrough
+ case uint32(219):
+ fallthrough
+ case uint32(245):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = 1
+ }
+ break
+ case uint32(64):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = 0
+ }
+ break
+ case uint32(66):
+ {
+ (*Parse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0)
+ }
+ break
+ case uint32(68):
+ {
+ Xsqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), 0)
+ }
+ break
+ case uint32(69):
+ {
+ Xsqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0,
+ uint8(SQLITE_IDXTYPE_UNIQUE))
+ }
+ break
+ case uint32(70):
+ {
+ Xsqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).Fz, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz)
+ }
+ break
+ case uint32(71):
+ {
+ Xsqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), yymsp+libc.UintptrFromInt32(-3)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ Xsqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(73):
+ fallthrough
+ case uint32(75):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_Default
+ }
+ break
+ case uint32(74):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(77):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Ignore
+ }
+ break
+ case uint32(78):
+ fallthrough
+ case uint32(172):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Replace
+ }
+ break
+ case uint32(79):
+ {
+ Xsqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(82):
+ {
+ Xsqlite3CreateView(tls, pParse, yymsp+libc.UintptrFromInt32(-8)*24+8, yymsp+libc.UintptrFromInt32(-4)*24+8, yymsp+libc.UintptrFromInt32(-3)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)))
+ }
+ break
+ case uint32(83):
+ {
+ Xsqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 1, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(84):
+ {
+ *(*SelectDest)(unsafe.Pointer(bp + 56)) = SelectDest{FeDest: U8(SRT_Output)}
+ Xsqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+56)
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(85):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(86):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(87):
+ {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ if p != 0 {
+ parserDoubleLinkSelect(tls, pParse, p)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = p
+ }
+ break
+ case uint32(88):
+ {
+ var pRhs uintptr = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ var pLhs uintptr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ if pRhs != 0 && (*Select)(unsafe.Pointer(pRhs)).FpPrior != 0 {
+ var pFrom uintptr
+
+ (*Token)(unsafe.Pointer(bp + 96)).Fn = uint32(0)
+ parserDoubleLinkSelect(tls, pParse, pRhs)
+ pFrom = Xsqlite3SrcListAppendFromTerm(tls, pParse, uintptr(0), uintptr(0), uintptr(0), bp+96, pRhs, uintptr(0))
+ pRhs = Xsqlite3SelectNew(tls, pParse, uintptr(0), pFrom, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0))
+ }
+ if pRhs != 0 {
+ (*Select)(unsafe.Pointer(pRhs)).Fop = U8(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ (*Select)(unsafe.Pointer(pRhs)).FpPrior = pLhs
+ if pLhs != 0 {
+ *(*U32)(unsafe.Pointer(pLhs + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_MultiValue))
+ }
+ *(*U32)(unsafe.Pointer(pRhs + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_MultiValue))
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != TK_ALL {
+ (*Parse)(unsafe.Pointer(pParse)).FhasCompound = U8(1)
+ }
+ } else {
+ Xsqlite3SelectDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pLhs)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = pRhs
+ }
+ break
+ case uint32(89):
+ fallthrough
+ case uint32(91):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ }
+ break
+ case uint32(90):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = TK_ALL
+ }
+ break
+ case uint32(92):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)) = Xsqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(93):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-9)*24 + 8)) = Xsqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-9)*24 + 8)) != 0 {
+ (*Select)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-9)*24 + 8)))).FpWinDefn = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ } else {
+ Xsqlite3WindowListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ }
+ break
+ case uint32(94):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0))
+ }
+ break
+ case uint32(95):
+ {
+ var pRight uintptr
+ var pLeft uintptr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8))
+ pRight = Xsqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values|SF_MultiValue), uintptr(0))
+ if pLeft != 0 {
+ *(*U32)(unsafe.Pointer(pLeft + 4)) &= libc.Uint32FromInt32(libc.CplInt32(SF_MultiValue))
+ }
+ if pRight != 0 {
+ (*Select)(unsafe.Pointer(pRight)).Fop = U8(TK_ALL)
+ (*Select)(unsafe.Pointer(pRight)).FpPrior = pLeft
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = pRight
+ } else {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = pLeft
+ }
+ }
+ break
+ case uint32(96):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = SF_Distinct
+ }
+ break
+ case uint32(97):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = SF_All
+ }
+ break
+ case uint32(99):
+ fallthrough
+ case uint32(132):
+ fallthrough
+ case uint32(142):
+ fallthrough
+ case uint32(232):
+ fallthrough
+ case uint32(235):
+ fallthrough
+ case uint32(240):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(100):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ if (*Token)(unsafe.Pointer(yymsp+8)).Fn > uint32(0) {
+ Xsqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), yymsp+8, 1)
+ }
+ Xsqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(101):
+ {
+ var p uintptr = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_ASTERISK, uintptr(0))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), p)
+ }
+ break
+ case uint32(102):
+ {
+ var pRight uintptr = Xsqlite3PExpr(tls, pParse, TK_ASTERISK, uintptr(0), uintptr(0))
+ var pLeft uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ var pDot uintptr = Xsqlite3PExpr(tls, pParse, TK_DOT, pLeft, pRight)
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), pDot)
+ }
+ break
+ case uint32(103):
+ fallthrough
+ case uint32(115):
+ fallthrough
+ case uint32(256):
+ fallthrough
+ case uint32(257):
+ {
+ *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*Token)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(105):
+ fallthrough
+ case uint32(108):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(106):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ Xsqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(107):
+ {
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != 0 && (*SrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FnSrc > 0 {
+ (*SrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) + 8 + uintptr((*SrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FnSrc-1)*104)).Ffg.Fjointype = U8(*(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ }
+ break
+ case uint32(109):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, uintptr(0), yymsp+8)
+ }
+ break
+ case uint32(110):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), yymsp+libc.UintptrFromInt32(-4)*24+8, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, uintptr(0), yymsp+8)
+ Xsqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), yymsp+libc.UintptrFromInt32(-1)*24+8)
+ }
+ break
+ case uint32(111):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)), yymsp+libc.UintptrFromInt32(-6)*24+8, yymsp+libc.UintptrFromInt32(-5)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, uintptr(0), yymsp+8)
+ Xsqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ }
+ break
+ case uint32(112):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), uintptr(0), uintptr(0), yymsp+libc.UintptrFromInt32(-1)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), yymsp+8)
+
+ }
+ break
+ case uint32(113):
+ {
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) == uintptr(0) && (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fn == uint32(0) && (*OnOrUsing)(unsafe.Pointer(yymsp+8)).FpOn == uintptr(0) && (*OnOrUsing)(unsafe.Pointer(yymsp+8)).FpUsing == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8))
+ } else if (*SrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))).FnSrc == 1 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), uintptr(0), uintptr(0), yymsp+libc.UintptrFromInt32(-1)*24+8, uintptr(0), yymsp+8)
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) != 0 {
+ var pNew uintptr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) + 8 + uintptr((*SrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)))).FnSrc-1)*104
+ var pOld uintptr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) + 8
+ (*SrcItem)(unsafe.Pointer(pNew)).FzName = (*SrcItem)(unsafe.Pointer(pOld)).FzName
+ (*SrcItem)(unsafe.Pointer(pNew)).FzDatabase = (*SrcItem)(unsafe.Pointer(pOld)).FzDatabase
+ (*SrcItem)(unsafe.Pointer(pNew)).FpSelect = (*SrcItem)(unsafe.Pointer(pOld)).FpSelect
+ if (*SrcItem)(unsafe.Pointer(pNew)).FpSelect != 0 && (*Select)(unsafe.Pointer((*SrcItem)(unsafe.Pointer(pNew)).FpSelect)).FselFlags&U32(SF_NestedFrom) != U32(0) {
+ libc.SetBitFieldPtr16Uint32(pNew+60+4, uint32(1), 13, 0x2000)
+ }
+ if uint32(int32(*(*uint16)(unsafe.Pointer(pOld + 60 + 4))&0x4>>2)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pNew + 88)) = *(*uintptr)(unsafe.Pointer(pOld + 88))
+ *(*uintptr)(unsafe.Pointer(pOld + 88)) = uintptr(0)
+ libc.SetBitFieldPtr16Uint32(pOld+60+4, uint32(0), 2, 0x4)
+ libc.SetBitFieldPtr16Uint32(pNew+60+4, uint32(1), 2, 0x4)
+ }
+ (*SrcItem)(unsafe.Pointer(pOld)).FzName = libc.AssignPtrUintptr(pOld+8, uintptr(0))
+ (*SrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0)
+ }
+ Xsqlite3SrcListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ } else {
+ var pSubquery uintptr
+ Xsqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ pSubquery = Xsqlite3SelectNew(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_NestedFrom), uintptr(0))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), uintptr(0), uintptr(0), yymsp+libc.UintptrFromInt32(-1)*24+8, pSubquery, yymsp+8)
+ }
+
+ }
+ break
+ case uint32(114):
+ fallthrough
+ case uint32(129):
+ {
+ (*Token)(unsafe.Pointer(yymsp + 1*24 + 8)).Fz = uintptr(0)
+ (*Token)(unsafe.Pointer(yymsp + 1*24 + 8)).Fn = uint32(0)
+ }
+ break
+ case uint32(116):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0))
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && *(*uintptr)(unsafe.Pointer(bp + 40)) != 0 {
+ Xsqlite3RenameTokenMap(tls, pParse, (*SrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40))+8)).FzName, yymsp+8)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(117):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && *(*uintptr)(unsafe.Pointer(bp + 40)) != 0 {
+ Xsqlite3RenameTokenMap(tls, pParse, (*SrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40))+8)).FzName, yymsp+8)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(118):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0))
+ }
+ break
+ case uint32(119):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8)
+ }
+ break
+ case uint32(120):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-4)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8)
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ (*SrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 8)).FzAlias = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, yymsp+8)
+ }
+ }
+ break
+ case uint32(121):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) != 0 {
+ (*SrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) + 8)).FzAlias = Xsqlite3NameFromToken(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, yymsp+8)
+ }
+ }
+ break
+ case uint32(122):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = JT_INNER
+ }
+ break
+ case uint32(123):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3JoinType(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(124):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3JoinType(tls, pParse, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, uintptr(0))
+ }
+ break
+ case uint32(125):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3JoinType(tls, pParse, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8)
+ }
+ break
+ case uint32(126):
+ {
+ (*OnOrUsing)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).FpOn = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ (*OnOrUsing)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).FpUsing = uintptr(0)
+ }
+ break
+ case uint32(127):
+ {
+ (*OnOrUsing)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)).FpOn = uintptr(0)
+ (*OnOrUsing)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)).FpUsing = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(128):
+ {
+ (*OnOrUsing)(unsafe.Pointer(yymsp + 1*24 + 8)).FpOn = uintptr(0)
+ (*OnOrUsing)(unsafe.Pointer(yymsp + 1*24 + 8)).FpUsing = uintptr(0)
+ }
+ break
+ case uint32(130):
+ {
+ *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*Token)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(131):
+ {
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).Fz = uintptr(0)
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).Fn = uint32(1)
+ }
+ break
+ case uint32(133):
+ fallthrough
+ case uint32(143):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(134):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ Xsqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(135):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ Xsqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(136):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC
+ }
+ break
+ case uint32(137):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_DESC
+ }
+ break
+ case uint32(138):
+ fallthrough
+ case uint32(141):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -1
+ }
+ break
+ case uint32(139):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = SQLITE_SO_ASC
+ }
+ break
+ case uint32(140):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = SQLITE_SO_DESC
+ }
+ break
+ case uint32(144):
+ fallthrough
+ case uint32(146):
+ fallthrough
+ case uint32(151):
+ fallthrough
+ case uint32(153):
+ fallthrough
+ case uint32(229):
+ fallthrough
+ case uint32(231):
+ fallthrough
+ case uint32(250):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(145):
+ fallthrough
+ case uint32(152):
+ fallthrough
+ case uint32(154):
+ fallthrough
+ case uint32(228):
+ fallthrough
+ case uint32(249):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(147):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_LIMIT, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0))
+ }
+ break
+ case uint32(148):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_LIMIT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(149):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_LIMIT, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ break
+ case uint32(150):
+ {
+ Xsqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), yymsp+libc.UintptrFromInt32(-1)*24+8)
+ Xsqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(155):
+ {
+ Xsqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(156):
+ {
+ Xsqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ }
+ break
+ case uint32(157):
+ {
+ Xsqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), yymsp+libc.UintptrFromInt32(-4)*24+8)
+ Xsqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), ts+23445)
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != 0 {
+ var pFromClause uintptr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ if (*SrcList)(unsafe.Pointer(pFromClause)).FnSrc > 1 {
+ var pSubquery uintptr
+
+ pSubquery = Xsqlite3SelectNew(tls, pParse, uintptr(0), pFromClause, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_NestedFrom), uintptr(0))
+ (*Token)(unsafe.Pointer(bp + 112)).Fn = uint32(0)
+ (*Token)(unsafe.Pointer(bp + 112)).Fz = uintptr(0)
+ pFromClause = Xsqlite3SrcListAppendFromTerm(tls, pParse, uintptr(0), uintptr(0), uintptr(0), bp+112, pSubquery, uintptr(0))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), pFromClause)
+ }
+ Xsqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), uintptr(0), uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(158):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ Xsqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), yymsp+libc.UintptrFromInt32(-2)*24+8, 1)
+ }
+ break
+ case uint32(159):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)) = Xsqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(160):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ Xsqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 40)), yymsp+libc.UintptrFromInt32(-2)*24+8, 1)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(161):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(162):
+ {
+ Xsqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(163):
+ {
+ Xsqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(164):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(165):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = uintptr(0)
+ Xsqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(166):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-11)*24 + 8)) = Xsqlite3UpsertNew(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(167):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)) = Xsqlite3UpsertNew(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(168):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3UpsertNew(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(169):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)) = Xsqlite3UpsertNew(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(170):
+ {
+ Xsqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(173):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(174):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(175):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), yymsp+8)
+ }
+ break
+ case uint32(176):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = Xsqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8)
+ }
+ break
+ case uint32(177):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(178):
+ fallthrough
+ case uint32(179):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(180):
+ {
+ var temp1 uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ var temp2 uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3PExpr(tls, pParse, TK_DOT, temp1, temp2)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(181):
+ {
+ var temp1 uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ var temp2 uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ var temp3 uintptr = tokenExpr(tls, pParse, TK_ID, *(*Token)(unsafe.Pointer(yymsp + 8)))
+ var temp4 uintptr = Xsqlite3PExpr(tls, pParse, TK_DOT, temp2, temp3)
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME {
+ Xsqlite3RenameTokenRemap(tls, pParse, uintptr(0), temp1)
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3PExpr(tls, pParse, TK_DOT, temp1, temp4)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(182):
+ fallthrough
+ case uint32(183):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = tokenExpr(tls, pParse, int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor), *(*Token)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(184):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_INTEGER, yymsp+8, 1)
+ if *(*uintptr)(unsafe.Pointer(bp + 40)) != 0 {
+ *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + 52)) = int32((int64((*Token)(unsafe.Pointer(yymsp+8)).Fz) - int64((*Parse)(unsafe.Pointer(pParse)).FzTail)) / 1)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(185):
+ {
+ if !(int32(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(yymsp + 8)).Fz))) == '#' && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(yymsp+8)).Fz + 1)))])&0x04 != 0) {
+ var n U32 = (*Token)(unsafe.Pointer(yymsp + 8)).Fn
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = tokenExpr(tls, pParse, TK_VARIABLE, *(*Token)(unsafe.Pointer(yymsp + 8)))
+ Xsqlite3ExprAssignVarNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), n)
+ } else {
+ *(*Token)(unsafe.Pointer(bp + 128)) = *(*Token)(unsafe.Pointer(yymsp + 8))
+
+ if int32((*Parse)(unsafe.Pointer(pParse)).Fnested) == 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23454, libc.VaList(bp+32, bp+128))
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0)
+ } else {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = Xsqlite3PExpr(tls, pParse, TK_REGISTER, uintptr(0), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 {
+ Xsqlite3GetInt32(tls, (*Token)(unsafe.Pointer(bp+128)).Fz+1, *(*uintptr)(unsafe.Pointer(yymsp + 8))+44)
+ }
+ }
+ }
+ }
+ break
+ case uint32(186):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), yymsp+8, 1)
+ }
+ break
+ case uint32(187):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_CAST, yymsp+libc.UintptrFromInt32(-1)*24+8, 1)
+ Xsqlite3ExprAttachSubtrees(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(188):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), yymsp+libc.UintptrFromInt32(-4)*24+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(189):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-3)*24+8, 0)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(190):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), yymsp+libc.UintptrFromInt32(-5)*24+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ Xsqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(191):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-4)*24+8, 0)
+ Xsqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(192):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(193):
+ {
+ var pList uintptr = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_VECTOR, uintptr(0), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 32)) = pList
+ if (*ExprList)(unsafe.Pointer(pList)).FnExpr != 0 {
+ *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 4)) |= (*Expr)(unsafe.Pointer((*ExprList_item)(unsafe.Pointer(pList+8)).FpExpr)).Fflags & U32(EP_Collate|EP_Subquery|EP_HasFunc)
+ }
+ } else {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pList)
+ }
+ }
+ break
+ case uint32(194):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(195):
+ fallthrough
+ case uint32(196):
+ fallthrough
+ case uint32(197):
+ fallthrough
+ case uint32(198):
+ fallthrough
+ case uint32(199):
+ fallthrough
+ case uint32(200):
+ fallthrough
+ case uint32(201):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3PExpr(tls, pParse, int32((*YyStackEntry)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24)).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(202):
+ {
+ *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*Token)(unsafe.Pointer(yymsp + 8))
+ *(*uint32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8 + 8)) |= 0x80000000
+ }
+ break
+ case uint32(203):
+ {
+ var pList uintptr
+ var bNot int32 = int32((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fn & 0x80000000)
+ *(*uint32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8 + 8)) &= uint32(0x7fffffff)
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprFunction(tls, pParse, pList, yymsp+libc.UintptrFromInt32(-1)*24+8, 0)
+ if bNot != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), uintptr(0))
+ }
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) != 0 {
+ *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) + 4)) |= U32(EP_InfixFunc)
+ }
+ }
+ break
+ case uint32(204):
+ {
+ var pList uintptr
+ var bNot int32 = int32((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).Fn & 0x80000000)
+ *(*uint32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8 + 8)) &= uint32(0x7fffffff)
+ pList = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprFunction(tls, pParse, pList, yymsp+libc.UintptrFromInt32(-3)*24+8, 0)
+ if bNot != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ }
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 4)) |= U32(EP_InfixFunc)
+ }
+ }
+ break
+ case uint32(205):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3PExpr(tls, pParse, int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(206):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOTNULL, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(207):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IS, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), TK_ISNULL)
+ }
+ break
+ case uint32(208):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_ISNOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), TK_NOTNULL)
+ }
+ break
+ case uint32(209):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IS, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), TK_ISNULL)
+ }
+ break
+ case uint32(210):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_ISNOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), TK_NOTNULL)
+ }
+ break
+ case uint32(211):
+ fallthrough
+ case uint32(212):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3PExpr(tls, pParse, int32((*YyStackEntry)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24)).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0))
+ }
+ break
+ case uint32(213):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3PExpr(tls, pParse, func() int32 {
+ if int32((*YyStackEntry)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24)).Fmajor) == TK_PLUS {
+ return TK_UPLUS
+ }
+ return TK_UMINUS
+ }(), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0))
+
+ }
+ break
+ case uint32(214):
+ {
+ var pList uintptr = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3ExprFunction(tls, pParse, pList, yymsp+libc.UintptrFromInt32(-1)*24+8, 0)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(215):
+ fallthrough
+ case uint32(218):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = 0
+ }
+ break
+ case uint32(217):
+ {
+ var pList uintptr = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ pList = Xsqlite3ExprListAppend(tls, pParse, pList, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_BETWEEN, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 32)) = pList
+ } else {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, pList)
+ }
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ }
+ }
+ break
+ case uint32(220):
+ {
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) == uintptr(0) {
+ Xsqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3Expr(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_STRING, func() uintptr {
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ return ts + 7167
+ }
+ return ts + 7172
+ }())
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ Xsqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ }
+ } else {
+ var pRHS uintptr = (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) + 8)).FpExpr
+ if (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FnExpr == 1 && Xsqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))).Fop) != TK_VECTOR {
+ (*ExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) + 8)).FpExpr = uintptr(0)
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ pRHS = Xsqlite3PExpr(tls, pParse, TK_UPLUS, pRHS, uintptr(0))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_EQ, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), pRHS)
+ } else if (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FnExpr == 1 && int32((*Expr)(unsafe.Pointer(pRHS)).Fop) == TK_SELECT {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IN, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ Xsqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(pRHS + 32)))
+ *(*uintptr)(unsafe.Pointer(pRHS + 32)) = uintptr(0)
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ } else {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IN, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) == uintptr(0) {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ } else if int32((*Expr)(unsafe.Pointer((*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))).FpLeft)).Fop) == TK_VECTOR {
+ var nExpr int32 = (*ExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))).FpLeft + 32)))).FnExpr
+ var pSelectRHS uintptr = Xsqlite3ExprListToValues(tls, pParse, nExpr, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ if pSelectRHS != 0 {
+ parserDoubleLinkSelect(tls, pParse, pSelectRHS)
+ Xsqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), pSelectRHS)
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 32)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ Xsqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ }
+ }
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ }
+ }
+
+ }
+ break
+ case uint32(221):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_SELECT, uintptr(0), uintptr(0))
+ Xsqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+
+ }
+ break
+ case uint32(222):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IN, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ Xsqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ }
+
+ }
+ break
+ case uint32(223):
+ {
+ var pSrc uintptr = Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8)
+ var pSelect uintptr = Xsqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 {
+ Xsqlite3SrcListFuncArgs(tls, pParse, func() uintptr {
+ if pSelect != 0 {
+ return pSrc
+ }
+ return uintptr(0)
+ }(), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_IN, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ Xsqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), pSelect)
+ if *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_NOT, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), uintptr(0))
+ }
+
+ }
+ break
+ case uint32(224):
+ {
+ var p uintptr
+ p = libc.AssignPtrUintptr(yymsp+libc.UintptrFromInt32(-3)*24+8, Xsqlite3PExpr(tls, pParse, TK_EXISTS, uintptr(0), uintptr(0)))
+ Xsqlite3PExprAddSelect(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+
+ }
+ break
+ case uint32(225):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_CASE, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) + 32)) = func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != 0 {
+ return Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ return *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ }()
+ Xsqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ } else {
+ Xsqlite3ExprListDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ }
+ break
+ case uint32(226):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(227):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(230):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(233):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(234):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = Xsqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(236):
+ fallthrough
+ case uint32(241):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(237):
+ {
+ Xsqlite3CreateIndex(tls, pParse, yymsp+libc.UintptrFromInt32(-7)*24+8, yymsp+libc.UintptrFromInt32(-6)*24+8,
+ Xsqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-4)*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-10)*24 + 8)),
+ yymsp+libc.UintptrFromInt32(-11)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF))
+ if int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME && (*Parse)(unsafe.Pointer(pParse)).FpNewIndex != 0 {
+ Xsqlite3RenameTokenMap(tls, pParse, (*Index)(unsafe.Pointer((*Parse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+libc.UintptrFromInt32(-4)*24+8)
+ }
+ }
+ break
+ case uint32(238):
+ fallthrough
+ case uint32(280):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Abort
+ }
+ break
+ case uint32(239):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None
+ }
+ break
+ case uint32(242):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), yymsp+libc.UintptrFromInt32(-2)*24+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(243):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+libc.UintptrFromInt32(-2)*24+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(246):
+ {
+ Xsqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(247):
+ {
+ Xsqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(248):
+ {
+ Xsqlite3Vacuum(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(251):
+ {
+ Xsqlite3Pragma(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, yymsp+8, uintptr(0), 0)
+ }
+ break
+ case uint32(252):
+ {
+ Xsqlite3Pragma(tls, pParse, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8, 0)
+ }
+ break
+ case uint32(253):
+ {
+ Xsqlite3Pragma(tls, pParse, yymsp+libc.UintptrFromInt32(-4)*24+8, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, 0)
+ }
+ break
+ case uint32(254):
+ {
+ Xsqlite3Pragma(tls, pParse, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8, 1)
+ }
+ break
+ case uint32(255):
+ {
+ Xsqlite3Pragma(tls, pParse, yymsp+libc.UintptrFromInt32(-4)*24+8, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-1)*24+8, 1)
+ }
+ break
+ case uint32(258):
+ {
+ (*Token)(unsafe.Pointer(bp + 144)).Fz = (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)).Fz
+ (*Token)(unsafe.Pointer(bp + 144)).Fn = uint32(int32((int64((*Token)(unsafe.Pointer(yymsp+8)).Fz)-int64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).Fz))/1)) + (*Token)(unsafe.Pointer(yymsp+8)).Fn
+ Xsqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), bp+144)
+ }
+ break
+ case uint32(259):
+ {
+ Xsqlite3BeginTrigger(tls, pParse, yymsp+libc.UintptrFromInt32(-7)*24+8, yymsp+libc.UintptrFromInt32(-6)*24+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), (*TrigEvent)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-4)*24+8)).Fa, (*TrigEvent)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-4)*24+8)).Fb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-10)*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)))
+ *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-10)*24 + 8)) = func() Token1 {
+ if (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-6)*24+8)).Fn == uint32(0) {
+ return *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8))
+ }
+ return *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8))
+ }()
+ }
+ break
+ case uint32(260):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ }
+ break
+ case uint32(261):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = TK_INSTEAD
+ }
+ break
+ case uint32(262):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = TK_BEFORE
+ }
+ break
+ case uint32(263):
+ fallthrough
+ case uint32(264):
+ {
+ (*TrigEvent)(unsafe.Pointer(yymsp + 8)).Fa = int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ (*TrigEvent)(unsafe.Pointer(yymsp + 8)).Fb = uintptr(0)
+ }
+ break
+ case uint32(265):
+ {
+ (*TrigEvent)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)).Fa = TK_UPDATE
+ (*TrigEvent)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)).Fb = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(266):
+ fallthrough
+ case uint32(285):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0)
+ }
+ break
+ case uint32(267):
+ fallthrough
+ case uint32(286):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(268):
+ {
+ (*TriggerStep)(unsafe.Pointer((*TriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ (*TriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(269):
+ {
+ (*TriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(270):
+ {
+ *(*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*Token)(unsafe.Pointer(yymsp + 8))
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+23478, 0)
+ }
+ break
+ case uint32(271):
+ {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+23573, 0)
+ }
+ break
+ case uint32(272):
+ {
+ Xsqlite3ErrorMsg(tls, pParse,
+ ts+23657, 0)
+ }
+ break
+ case uint32(273):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3TriggerUpdateStep(tls, pParse, yymsp+libc.UintptrFromInt32(-6)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8))), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-8)*24+8)).Fz, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-8)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(274):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3TriggerInsertStep(tls, pParse, yymsp+libc.UintptrFromInt32(-4)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-6)*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-7)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(275):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3TriggerDeleteStep(tls, pParse, yymsp+libc.UintptrFromInt32(-3)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-5)*24+8)).Fz, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(276):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3TriggerSelectStep(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(277):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3PExpr(tls, pParse, TK_RAISE, uintptr(0), uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) != 0 {
+ (*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))).FaffExpr = int8(OE_Ignore)
+ }
+ }
+ break
+ case uint32(278):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3ExprAlloc(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, TK_RAISE, yymsp+libc.UintptrFromInt32(-1)*24+8, 1)
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) != 0 {
+ (*Expr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ }
+ }
+ break
+ case uint32(279):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Rollback
+ }
+ break
+ case uint32(281):
+ {
+ *(*int32)(unsafe.Pointer(yymsp + 8)) = OE_Fail
+ }
+ break
+ case uint32(282):
+ {
+ Xsqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(283):
+ {
+ Xsqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(284):
+ {
+ Xsqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(287):
+ {
+ Xsqlite3Reindex(tls, pParse, uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(288):
+ {
+ Xsqlite3Reindex(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, yymsp+8)
+ }
+ break
+ case uint32(289):
+ {
+ Xsqlite3Analyze(tls, pParse, uintptr(0), uintptr(0))
+ }
+ break
+ case uint32(290):
+ {
+ Xsqlite3Analyze(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8, yymsp+8)
+ }
+ break
+ case uint32(291):
+ {
+ Xsqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), yymsp+8)
+ }
+ break
+ case uint32(292):
+ {
+ (*Token)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)).Fn = uint32(int32((int64((*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).Fz))/1)) + (*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fn
+ Xsqlite3AlterFinishAddColumn(tls, pParse, yymsp+libc.UintptrFromInt32(-1)*24+8)
+ }
+ break
+ case uint32(293):
+ {
+ Xsqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)), yymsp+8)
+ }
+ break
+ case uint32(294):
+ {
+ disableLookaside(tls, pParse)
+ Xsqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(295):
+ {
+ Xsqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8)
+ }
+ break
+ case uint32(296):
+ {
+ Xsqlite3VtabFinishParse(tls, pParse, uintptr(0))
+ }
+ break
+ case uint32(297):
+ {
+ Xsqlite3VtabFinishParse(tls, pParse, yymsp+8)
+ }
+ break
+ case uint32(298):
+ {
+ Xsqlite3VtabBeginParse(tls, pParse, yymsp+libc.UintptrFromInt32(-3)*24+8, yymsp+libc.UintptrFromInt32(-2)*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ }
+ break
+ case uint32(299):
+ {
+ Xsqlite3VtabArgInit(tls, pParse)
+ }
+ break
+ case uint32(300):
+ fallthrough
+ case uint32(301):
+ fallthrough
+ case uint32(302):
+ {
+ Xsqlite3VtabArgExtend(tls, pParse, yymsp+8)
+ }
+ break
+ case uint32(303):
+ fallthrough
+ case uint32(304):
+ {
+ Xsqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1))
+ }
+ break
+ case uint32(305):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + 8)) = U8(M10d_Any)
+ }
+ break
+ case uint32(306):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = U8(M10d_Yes)
+ }
+ break
+ case uint32(307):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = U8(M10d_No)
+ }
+ break
+ case uint32(308):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = Xsqlite3CteNew(tls, pParse, yymsp+libc.UintptrFromInt32(-5)*24+8, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*U8)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)))
+ }
+ break
+ case uint32(309):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = Xsqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(310):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = Xsqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ break
+ case uint32(311):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(312):
+ {
+ Xsqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(313):
+ {
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != 0 {
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FzName = Xsqlite3DbStrNDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-4)*24+8)).Fz, uint64((*Token)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-4)*24+8)).Fn))
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(314):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = Xsqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(315):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), yymsp+libc.UintptrFromInt32(-5)*24+8)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(316):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = Xsqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), uintptr(0))
+ }
+ break
+ case uint32(317):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)), yymsp+libc.UintptrFromInt32(-4)*24+8)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(318):
+ fallthrough
+ case uint32(337):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(319):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+libc.UintptrFromInt32(-1)*24+8)
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(320):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = Xsqlite3WindowAlloc(tls, pParse, 0, TK_UNBOUNDED, uintptr(0), TK_CURRENT, uintptr(0), uint8(0))
+ }
+ break
+ case uint32(321):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)), (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).FeType, (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).FpExpr, TK_CURRENT, uintptr(0), *(*U8)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(322):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)), (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).FeType, (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-3)*24+8)).FpExpr, (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).FeType, (*FrameBound)(unsafe.Pointer(yymsp+libc.UintptrFromInt32(-1)*24+8)).FpExpr, *(*U8)(unsafe.Pointer(yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-5)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(324):
+ fallthrough
+ case uint32(326):
+ {
+ *(*FrameBound)(unsafe.Pointer(bp + 40)) = *(*FrameBound)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*FrameBound)(unsafe.Pointer(yymsp + 8)) = *(*FrameBound)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(325):
+ fallthrough
+ case uint32(327):
+ fallthrough
+ case uint32(329):
+ {
+ (*FrameBound)(unsafe.Pointer(bp + 40)).FeType = int32((*YyStackEntry)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24)).Fmajor)
+ (*FrameBound)(unsafe.Pointer(bp + 40)).FpExpr = uintptr(0)
+ }
+ *(*FrameBound)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*FrameBound)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(328):
+ {
+ (*FrameBound)(unsafe.Pointer(bp + 40)).FeType = int32((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ (*FrameBound)(unsafe.Pointer(bp + 40)).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ *(*FrameBound)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*FrameBound)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(330):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + 1*24 + 8)) = U8(0)
+ }
+ break
+ case uint32(331):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*U8)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(332):
+ fallthrough
+ case uint32(333):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = U8((*YyStackEntry)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24)).Fmajor)
+ }
+ break
+ case uint32(334):
+ {
+ *(*U8)(unsafe.Pointer(yymsp + 8)) = U8((*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor)
+ }
+ break
+ case uint32(335):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ break
+ case uint32(336):
+ {
+ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 {
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ } else {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(338):
+ {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Window{})))
+ if *(*uintptr)(unsafe.Pointer(bp + 40)) != 0 {
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).FeFrmType = U8(TK_FILTER)
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + 8))
+ } else {
+ Xsqlite3ExprDelete(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)))
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 40))
+ break
+ case uint32(339):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+
+ }
+ break
+ case uint32(340):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = Xsqlite3DbMallocZero(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, uint64(unsafe.Sizeof(Window{})))
+ if *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)) != 0 {
+ (*Window)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8)))).FzName = Xsqlite3DbStrNDup(tls, (*Parse)(unsafe.Pointer(pParse)).Fdb, (*Token)(unsafe.Pointer(yymsp+8)).Fz, uint64((*Token)(unsafe.Pointer(yymsp+8)).Fn))
+ }
+ }
+ break
+ case uint32(341):
+ {
+ *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ default:
+ break
+
+ }
+ }
+
+ yygoto = int32(yyRuleInfoLhs[yyruleno])
+ yysize = int32(yyRuleInfoNRhs[yyruleno])
+ yyact = yy_find_reduce_action(tls, (*YyStackEntry)(unsafe.Pointer(yymsp+uintptr(yysize)*24)).Fstateno, uint16(yygoto))
+
+ yymsp += 24 * uintptr(yysize+1)
+ (*YyParser)(unsafe.Pointer(yypParser)).Fyytos = yymsp
+ (*YyStackEntry)(unsafe.Pointer(yymsp)).Fstateno = yyact
+ (*YyStackEntry)(unsafe.Pointer(yymsp)).Fmajor = uint16(yygoto)
+
+ return yyact
+}
+
+func yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, yyminor Token) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+ *(*Token)(unsafe.Pointer(bp + 8)) = yyminor
+
+ var pParse uintptr = (*YyParser)(unsafe.Pointer(yypParser)).FpParse
+
+ _ = yymajor
+ if *(*int8)(unsafe.Pointer((*Token)(unsafe.Pointer(bp + 8)).Fz)) != 0 {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23454, libc.VaList(bp, bp+8))
+ } else {
+ Xsqlite3ErrorMsg(tls, pParse, ts+23742, 0)
+ }
+
+ (*YyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
+}
+
+func yy_accept(tls *libc.TLS, yypParser uintptr) {
+ var pParse uintptr = (*YyParser)(unsafe.Pointer(yypParser)).FpParse
+
+ (*YyParser)(unsafe.Pointer(yypParser)).FpParse = pParse
+}
+
+// The main parser program.
+// The first argument is a pointer to a structure obtained from
+// "sqlite3ParserAlloc" which describes the current state of the parser.
+// The second argument is the major token number. The third is
+// the minor token. The fourth optional argument is whatever the
+// user wants (and specified in the grammar) and is available for
+// use by the action routines.
+//
+// Inputs:
+// <ul>
+// <li> A pointer to the parser (an opaque structure.)
+// <li> The major token number.
+// <li> The minor token number.
+// <li> An option argument of a grammar-specified type.
+// </ul>
+//
+// Outputs:
+// None.
+func Xsqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor Token) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var yyact uint16
+ var yypParser uintptr = yyp
+ var pParse uintptr = (*YyParser)(unsafe.Pointer(yypParser)).FpParse
+
+ yyact = (*YyStackEntry)(unsafe.Pointer((*YyParser)(unsafe.Pointer(yypParser)).Fyytos)).Fstateno
+
+ for 1 != 0 {
+ yyact = yy_find_shift_action(tls, uint16(yymajor), yyact)
+ if int32(yyact) >= YY_MIN_REDUCE {
+ var yyruleno uint32 = uint32(int32(yyact) - YY_MIN_REDUCE)
+
+ if int32(yyRuleInfoNRhs[yyruleno]) == 0 {
+ if (*YyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*YyParser)(unsafe.Pointer(yypParser)).FyystackEnd {
+ yyStackOverflow(tls, yypParser)
+ break
+ }
+ }
+ yyact = yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse)
+ } else if int32(yyact) <= YY_MAX_SHIFTREDUCE {
+ yy_shift(tls, yypParser, yyact, uint16(yymajor), yyminor)
+ break
+ } else if int32(yyact) == YY_ACCEPT_ACTION {
+ (*YyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24
+ yy_accept(tls, yypParser)
+ return
+ } else {
+ *(*Token)(unsafe.Pointer(bp)) = yyminor
+
+ yy_syntax_error(tls, yypParser, yymajor, yyminor)
+ yy_destructor(tls, yypParser, uint16(yymajor), bp)
+ break
+ }
+ }
+ return
+}
+
+// Return the fallback token corresponding to canonical token iToken, or
+// 0 if iToken has no fallback.
+func Xsqlite3ParserFallback(tls *libc.TLS, iToken int32) int32 {
+ return int32(yyFallback[iToken])
+}
+
+var aiClass = [256]uint8{
+ uint8(29), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(7), uint8(7), uint8(28), uint8(7), uint8(7), uint8(28), uint8(28),
+ uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28), uint8(28),
+ uint8(7), uint8(15), uint8(8), uint8(5), uint8(4), uint8(22), uint8(24), uint8(8), uint8(17), uint8(18), uint8(21), uint8(20), uint8(23), uint8(11), uint8(26), uint8(16),
+ uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(3), uint8(5), uint8(19), uint8(12), uint8(14), uint8(13), uint8(6),
+ uint8(5), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1),
+ uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(2), uint8(2), uint8(9), uint8(28), uint8(28), uint8(28), uint8(2),
+ uint8(8), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1),
+ uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(2), uint8(2), uint8(28), uint8(10), uint8(28), uint8(25), uint8(28),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(30),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+}
+
+var zKWText = [666]int8{
+ int8('R'), int8('E'), int8('I'), int8('N'), int8('D'), int8('E'), int8('X'), int8('E'), int8('D'), int8('E'), int8('S'), int8('C'), int8('A'), int8('P'), int8('E'), int8('A'), int8('C'), int8('H'),
+ int8('E'), int8('C'), int8('K'), int8('E'), int8('Y'), int8('B'), int8('E'), int8('F'), int8('O'), int8('R'), int8('E'), int8('I'), int8('G'), int8('N'), int8('O'), int8('R'), int8('E'), int8('G'),
+ int8('E'), int8('X'), int8('P'), int8('L'), int8('A'), int8('I'), int8('N'), int8('S'), int8('T'), int8('E'), int8('A'), int8('D'), int8('D'), int8('A'), int8('T'), int8('A'), int8('B'), int8('A'),
+ int8('S'), int8('E'), int8('L'), int8('E'), int8('C'), int8('T'), int8('A'), int8('B'), int8('L'), int8('E'), int8('F'), int8('T'), int8('H'), int8('E'), int8('N'), int8('D'), int8('E'), int8('F'),
+ int8('E'), int8('R'), int8('R'), int8('A'), int8('B'), int8('L'), int8('E'), int8('L'), int8('S'), int8('E'), int8('X'), int8('C'), int8('L'), int8('U'), int8('D'), int8('E'), int8('L'), int8('E'),
+ int8('T'), int8('E'), int8('M'), int8('P'), int8('O'), int8('R'), int8('A'), int8('R'), int8('Y'), int8('I'), int8('S'), int8('N'), int8('U'), int8('L'), int8('L'), int8('S'), int8('A'), int8('V'),
+ int8('E'), int8('P'), int8('O'), int8('I'), int8('N'), int8('T'), int8('E'), int8('R'), int8('S'), int8('E'), int8('C'), int8('T'), int8('I'), int8('E'), int8('S'), int8('N'), int8('O'), int8('T'),
+ int8('N'), int8('U'), int8('L'), int8('L'), int8('I'), int8('K'), int8('E'), int8('X'), int8('C'), int8('E'), int8('P'), int8('T'), int8('R'), int8('A'), int8('N'), int8('S'), int8('A'), int8('C'),
+ int8('T'), int8('I'), int8('O'), int8('N'), int8('A'), int8('T'), int8('U'), int8('R'), int8('A'), int8('L'), int8('T'), int8('E'), int8('R'), int8('A'), int8('I'), int8('S'), int8('E'), int8('X'),
+ int8('C'), int8('L'), int8('U'), int8('S'), int8('I'), int8('V'), int8('E'), int8('X'), int8('I'), int8('S'), int8('T'), int8('S'), int8('C'), int8('O'), int8('N'), int8('S'), int8('T'), int8('R'),
+ int8('A'), int8('I'), int8('N'), int8('T'), int8('O'), int8('F'), int8('F'), int8('S'), int8('E'), int8('T'), int8('R'), int8('I'), int8('G'), int8('G'), int8('E'), int8('R'), int8('A'), int8('N'),
+ int8('G'), int8('E'), int8('N'), int8('E'), int8('R'), int8('A'), int8('T'), int8('E'), int8('D'), int8('E'), int8('T'), int8('A'), int8('C'), int8('H'), int8('A'), int8('V'), int8('I'), int8('N'),
+ int8('G'), int8('L'), int8('O'), int8('B'), int8('E'), int8('G'), int8('I'), int8('N'), int8('N'), int8('E'), int8('R'), int8('E'), int8('F'), int8('E'), int8('R'), int8('E'), int8('N'), int8('C'),
+ int8('E'), int8('S'), int8('U'), int8('N'), int8('I'), int8('Q'), int8('U'), int8('E'), int8('R'), int8('Y'), int8('W'), int8('I'), int8('T'), int8('H'), int8('O'), int8('U'), int8('T'), int8('E'),
+ int8('R'), int8('E'), int8('L'), int8('E'), int8('A'), int8('S'), int8('E'), int8('A'), int8('T'), int8('T'), int8('A'), int8('C'), int8('H'), int8('B'), int8('E'), int8('T'), int8('W'), int8('E'),
+ int8('E'), int8('N'), int8('O'), int8('T'), int8('H'), int8('I'), int8('N'), int8('G'), int8('R'), int8('O'), int8('U'), int8('P'), int8('S'), int8('C'), int8('A'), int8('S'), int8('C'), int8('A'),
+ int8('D'), int8('E'), int8('F'), int8('A'), int8('U'), int8('L'), int8('T'), int8('C'), int8('A'), int8('S'), int8('E'), int8('C'), int8('O'), int8('L'), int8('L'), int8('A'), int8('T'), int8('E'),
+ int8('C'), int8('R'), int8('E'), int8('A'), int8('T'), int8('E'), int8('C'), int8('U'), int8('R'), int8('R'), int8('E'), int8('N'), int8('T'), int8('_'), int8('D'), int8('A'), int8('T'), int8('E'),
+ int8('I'), int8('M'), int8('M'), int8('E'), int8('D'), int8('I'), int8('A'), int8('T'), int8('E'), int8('J'), int8('O'), int8('I'), int8('N'), int8('S'), int8('E'), int8('R'), int8('T'), int8('M'),
+ int8('A'), int8('T'), int8('C'), int8('H'), int8('P'), int8('L'), int8('A'), int8('N'), int8('A'), int8('L'), int8('Y'), int8('Z'), int8('E'), int8('P'), int8('R'), int8('A'), int8('G'), int8('M'),
+ int8('A'), int8('T'), int8('E'), int8('R'), int8('I'), int8('A'), int8('L'), int8('I'), int8('Z'), int8('E'), int8('D'), int8('E'), int8('F'), int8('E'), int8('R'), int8('R'), int8('E'), int8('D'),
+ int8('I'), int8('S'), int8('T'), int8('I'), int8('N'), int8('C'), int8('T'), int8('U'), int8('P'), int8('D'), int8('A'), int8('T'), int8('E'), int8('V'), int8('A'), int8('L'), int8('U'), int8('E'),
+ int8('S'), int8('V'), int8('I'), int8('R'), int8('T'), int8('U'), int8('A'), int8('L'), int8('W'), int8('A'), int8('Y'), int8('S'), int8('W'), int8('H'), int8('E'), int8('N'), int8('W'), int8('H'),
+ int8('E'), int8('R'), int8('E'), int8('C'), int8('U'), int8('R'), int8('S'), int8('I'), int8('V'), int8('E'), int8('A'), int8('B'), int8('O'), int8('R'), int8('T'), int8('A'), int8('F'), int8('T'),
+ int8('E'), int8('R'), int8('E'), int8('N'), int8('A'), int8('M'), int8('E'), int8('A'), int8('N'), int8('D'), int8('R'), int8('O'), int8('P'), int8('A'), int8('R'), int8('T'), int8('I'), int8('T'),
+ int8('I'), int8('O'), int8('N'), int8('A'), int8('U'), int8('T'), int8('O'), int8('I'), int8('N'), int8('C'), int8('R'), int8('E'), int8('M'), int8('E'), int8('N'), int8('T'), int8('C'), int8('A'),
+ int8('S'), int8('T'), int8('C'), int8('O'), int8('L'), int8('U'), int8('M'), int8('N'), int8('C'), int8('O'), int8('M'), int8('M'), int8('I'), int8('T'), int8('C'), int8('O'), int8('N'), int8('F'),
+ int8('L'), int8('I'), int8('C'), int8('T'), int8('C'), int8('R'), int8('O'), int8('S'), int8('S'), int8('C'), int8('U'), int8('R'), int8('R'), int8('E'), int8('N'), int8('T'), int8('_'), int8('T'),
+ int8('I'), int8('M'), int8('E'), int8('S'), int8('T'), int8('A'), int8('M'), int8('P'), int8('R'), int8('E'), int8('C'), int8('E'), int8('D'), int8('I'), int8('N'), int8('G'), int8('F'), int8('A'),
+ int8('I'), int8('L'), int8('A'), int8('S'), int8('T'), int8('F'), int8('I'), int8('L'), int8('T'), int8('E'), int8('R'), int8('E'), int8('P'), int8('L'), int8('A'), int8('C'), int8('E'), int8('F'),
+ int8('I'), int8('R'), int8('S'), int8('T'), int8('F'), int8('O'), int8('L'), int8('L'), int8('O'), int8('W'), int8('I'), int8('N'), int8('G'), int8('F'), int8('R'), int8('O'), int8('M'), int8('F'),
+ int8('U'), int8('L'), int8('L'), int8('I'), int8('M'), int8('I'), int8('T'), int8('I'), int8('F'), int8('O'), int8('R'), int8('D'), int8('E'), int8('R'), int8('E'), int8('S'), int8('T'), int8('R'),
+ int8('I'), int8('C'), int8('T'), int8('O'), int8('T'), int8('H'), int8('E'), int8('R'), int8('S'), int8('O'), int8('V'), int8('E'), int8('R'), int8('E'), int8('T'), int8('U'), int8('R'), int8('N'),
+ int8('I'), int8('N'), int8('G'), int8('R'), int8('I'), int8('G'), int8('H'), int8('T'), int8('R'), int8('O'), int8('L'), int8('L'), int8('B'), int8('A'), int8('C'), int8('K'), int8('R'), int8('O'),
+ int8('W'), int8('S'), int8('U'), int8('N'), int8('B'), int8('O'), int8('U'), int8('N'), int8('D'), int8('E'), int8('D'), int8('U'), int8('N'), int8('I'), int8('O'), int8('N'), int8('U'), int8('S'),
+ int8('I'), int8('N'), int8('G'), int8('V'), int8('A'), int8('C'), int8('U'), int8('U'), int8('M'), int8('V'), int8('I'), int8('E'), int8('W'), int8('I'), int8('N'), int8('D'), int8('O'), int8('W'),
+ int8('B'), int8('Y'), int8('I'), int8('N'), int8('I'), int8('T'), int8('I'), int8('A'), int8('L'), int8('L'), int8('Y'), int8('P'), int8('R'), int8('I'), int8('M'), int8('A'), int8('R'), int8('Y'),
+}
+
+var aKWHash = [127]uint8{
+ uint8(84), uint8(92), uint8(134), uint8(82), uint8(105), uint8(29), uint8(0), uint8(0), uint8(94), uint8(0), uint8(85), uint8(72), uint8(0),
+ uint8(53), uint8(35), uint8(86), uint8(15), uint8(0), uint8(42), uint8(97), uint8(54), uint8(89), uint8(135), uint8(19), uint8(0), uint8(0),
+ uint8(140), uint8(0), uint8(40), uint8(129), uint8(0), uint8(22), uint8(107), uint8(0), uint8(9), uint8(0), uint8(0), uint8(123), uint8(80),
+ uint8(0), uint8(78), uint8(6), uint8(0), uint8(65), uint8(103), uint8(147), uint8(0), uint8(136), uint8(115), uint8(0), uint8(0), uint8(48),
+ uint8(0), uint8(90), uint8(24), uint8(0), uint8(17), uint8(0), uint8(27), uint8(70), uint8(23), uint8(26), uint8(5), uint8(60), uint8(142),
+ uint8(110), uint8(122), uint8(0), uint8(73), uint8(91), uint8(71), uint8(145), uint8(61), uint8(120), uint8(74), uint8(0), uint8(49), uint8(0),
+ uint8(11), uint8(41), uint8(0), uint8(113), uint8(0), uint8(0), uint8(0), uint8(109), uint8(10), uint8(111), uint8(116), uint8(125), uint8(14),
+ uint8(50), uint8(124), uint8(0), uint8(100), uint8(0), uint8(18), uint8(121), uint8(144), uint8(56), uint8(130), uint8(139), uint8(88), uint8(83),
+ uint8(37), uint8(30), uint8(126), uint8(0), uint8(0), uint8(108), uint8(51), uint8(131), uint8(128), uint8(0), uint8(34), uint8(0), uint8(0),
+ uint8(132), uint8(0), uint8(98), uint8(38), uint8(39), uint8(0), uint8(20), uint8(45), uint8(117), uint8(93),
+}
+
+var aKWNext = [147]uint8{
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(4), uint8(0), uint8(43), uint8(0), uint8(0), uint8(106), uint8(114), uint8(0), uint8(0),
+ uint8(0), uint8(2), uint8(0), uint8(0), uint8(143), uint8(0), uint8(0), uint8(0), uint8(13), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(141), uint8(0), uint8(0), uint8(119), uint8(52), uint8(0), uint8(0), uint8(137), uint8(12), uint8(0), uint8(0), uint8(62), uint8(0),
+ uint8(138), uint8(0), uint8(133), uint8(0), uint8(0), uint8(36), uint8(0), uint8(0), uint8(28), uint8(77), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(59), uint8(0), uint8(47), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(69), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(146), uint8(3), uint8(0), uint8(58), uint8(0), uint8(1),
+ uint8(75), uint8(0), uint8(0), uint8(0), uint8(31), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(127), uint8(0), uint8(104),
+ uint8(0), uint8(64), uint8(66), uint8(63), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(46), uint8(0), uint8(16), uint8(8),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(81), uint8(101), uint8(0),
+ uint8(112), uint8(21), uint8(7), uint8(67), uint8(0), uint8(79), uint8(96), uint8(118), uint8(0), uint8(0), uint8(68), uint8(0), uint8(0),
+ uint8(99), uint8(44), uint8(0), uint8(55), uint8(0), uint8(76), uint8(0), uint8(95), uint8(32), uint8(33), uint8(57), uint8(25), uint8(0),
+ uint8(102), uint8(0), uint8(0), uint8(87),
+}
+
+var aKWLen = [147]uint8{
+ uint8(7), uint8(7), uint8(5), uint8(4), uint8(6), uint8(4), uint8(5), uint8(3), uint8(6), uint8(7), uint8(3), uint8(6), uint8(6),
+ uint8(7), uint8(7), uint8(3), uint8(8), uint8(2), uint8(6), uint8(5), uint8(4), uint8(4), uint8(3), uint8(10), uint8(4), uint8(7),
+ uint8(6), uint8(9), uint8(4), uint8(2), uint8(6), uint8(5), uint8(9), uint8(9), uint8(4), uint8(7), uint8(3), uint8(2), uint8(4),
+ uint8(4), uint8(6), uint8(11), uint8(6), uint8(2), uint8(7), uint8(5), uint8(5), uint8(9), uint8(6), uint8(10), uint8(4), uint8(6),
+ uint8(2), uint8(3), uint8(7), uint8(5), uint8(9), uint8(6), uint8(6), uint8(4), uint8(5), uint8(5), uint8(10), uint8(6), uint8(5),
+ uint8(7), uint8(4), uint8(5), uint8(7), uint8(6), uint8(7), uint8(7), uint8(6), uint8(5), uint8(7), uint8(3), uint8(7), uint8(4),
+ uint8(7), uint8(6), uint8(12), uint8(9), uint8(4), uint8(6), uint8(5), uint8(4), uint8(7), uint8(6), uint8(12), uint8(8), uint8(8),
+ uint8(2), uint8(6), uint8(6), uint8(7), uint8(6), uint8(4), uint8(5), uint8(9), uint8(5), uint8(5), uint8(6), uint8(3), uint8(4),
+ uint8(9), uint8(13), uint8(2), uint8(2), uint8(4), uint8(6), uint8(6), uint8(8), uint8(5), uint8(17), uint8(12), uint8(7), uint8(9),
+ uint8(4), uint8(4), uint8(6), uint8(7), uint8(5), uint8(9), uint8(4), uint8(4), uint8(5), uint8(2), uint8(5), uint8(8), uint8(6),
+ uint8(4), uint8(9), uint8(5), uint8(8), uint8(4), uint8(3), uint8(9), uint8(5), uint8(5), uint8(6), uint8(4), uint8(6), uint8(2),
+ uint8(2), uint8(9), uint8(3), uint8(7),
+}
+
+var aKWOffset = [147]uint16{
+ uint16(0), uint16(2), uint16(2), uint16(8), uint16(9), uint16(14), uint16(16), uint16(20), uint16(23), uint16(25), uint16(25), uint16(29), uint16(33),
+ uint16(36), uint16(41), uint16(46), uint16(48), uint16(53), uint16(54), uint16(59), uint16(62), uint16(65), uint16(67), uint16(69), uint16(78), uint16(81),
+ uint16(86), uint16(90), uint16(90), uint16(94), uint16(99), uint16(101), uint16(105), uint16(111), uint16(119), uint16(123), uint16(123), uint16(123), uint16(126),
+ uint16(129), uint16(132), uint16(137), uint16(142), uint16(146), uint16(147), uint16(152), uint16(156), uint16(160), uint16(168), uint16(174), uint16(181), uint16(184),
+ uint16(184), uint16(187), uint16(189), uint16(195), uint16(198), uint16(206), uint16(211), uint16(216), uint16(219), uint16(222), uint16(226), uint16(236), uint16(239),
+ uint16(244), uint16(244), uint16(248), uint16(252), uint16(259), uint16(265), uint16(271), uint16(277), uint16(277), uint16(283), uint16(284), uint16(288), uint16(295),
+ uint16(299), uint16(306), uint16(312), uint16(324), uint16(333), uint16(335), uint16(341), uint16(346), uint16(348), uint16(355), uint16(359), uint16(370), uint16(377),
+ uint16(378), uint16(385), uint16(391), uint16(397), uint16(402), uint16(408), uint16(412), uint16(415), uint16(424), uint16(429), uint16(433), uint16(439), uint16(441),
+ uint16(444), uint16(453), uint16(455), uint16(457), uint16(466), uint16(470), uint16(476), uint16(482), uint16(490), uint16(495), uint16(495), uint16(495), uint16(511),
+ uint16(520), uint16(523), uint16(527), uint16(532), uint16(539), uint16(544), uint16(553), uint16(557), uint16(560), uint16(565), uint16(567), uint16(571), uint16(579),
+ uint16(585), uint16(588), uint16(597), uint16(602), uint16(610), uint16(610), uint16(614), uint16(623), uint16(628), uint16(633), uint16(639), uint16(642), uint16(645),
+ uint16(648), uint16(650), uint16(655), uint16(659),
+}
+
+var aKWCode = [147]uint8{
+ uint8(TK_REINDEX), uint8(TK_INDEXED), uint8(TK_INDEX), uint8(TK_DESC), uint8(TK_ESCAPE),
+ uint8(TK_EACH), uint8(TK_CHECK), uint8(TK_KEY), uint8(TK_BEFORE), uint8(TK_FOREIGN),
+ uint8(TK_FOR), uint8(TK_IGNORE), uint8(TK_LIKE_KW), uint8(TK_EXPLAIN), uint8(TK_INSTEAD),
+ uint8(TK_ADD), uint8(TK_DATABASE), uint8(TK_AS), uint8(TK_SELECT), uint8(TK_TABLE),
+ uint8(TK_JOIN_KW), uint8(TK_THEN), uint8(TK_END), uint8(TK_DEFERRABLE), uint8(TK_ELSE),
+ uint8(TK_EXCLUDE), uint8(TK_DELETE), uint8(TK_TEMP), uint8(TK_TEMP), uint8(TK_OR),
+ uint8(TK_ISNULL), uint8(TK_NULLS), uint8(TK_SAVEPOINT), uint8(TK_INTERSECT), uint8(TK_TIES),
+ uint8(TK_NOTNULL), uint8(TK_NOT), uint8(TK_NO), uint8(TK_NULL), uint8(TK_LIKE_KW),
+ uint8(TK_EXCEPT), uint8(TK_TRANSACTION), uint8(TK_ACTION), uint8(TK_ON), uint8(TK_JOIN_KW),
+ uint8(TK_ALTER), uint8(TK_RAISE), uint8(TK_EXCLUSIVE), uint8(TK_EXISTS), uint8(TK_CONSTRAINT),
+ uint8(TK_INTO), uint8(TK_OFFSET), uint8(TK_OF), uint8(TK_SET), uint8(TK_TRIGGER),
+ uint8(TK_RANGE), uint8(TK_GENERATED), uint8(TK_DETACH), uint8(TK_HAVING), uint8(TK_LIKE_KW),
+ uint8(TK_BEGIN), uint8(TK_JOIN_KW), uint8(TK_REFERENCES), uint8(TK_UNIQUE), uint8(TK_QUERY),
+ uint8(TK_WITHOUT), uint8(TK_WITH), uint8(TK_JOIN_KW), uint8(TK_RELEASE), uint8(TK_ATTACH),
+ uint8(TK_BETWEEN), uint8(TK_NOTHING), uint8(TK_GROUPS), uint8(TK_GROUP), uint8(TK_CASCADE),
+ uint8(TK_ASC), uint8(TK_DEFAULT), uint8(TK_CASE), uint8(TK_COLLATE), uint8(TK_CREATE),
+ uint8(TK_CTIME_KW), uint8(TK_IMMEDIATE), uint8(TK_JOIN), uint8(TK_INSERT), uint8(TK_MATCH),
+ uint8(TK_PLAN), uint8(TK_ANALYZE), uint8(TK_PRAGMA), uint8(TK_MATERIALIZED), uint8(TK_DEFERRED),
+ uint8(TK_DISTINCT), uint8(TK_IS), uint8(TK_UPDATE), uint8(TK_VALUES), uint8(TK_VIRTUAL),
+ uint8(TK_ALWAYS), uint8(TK_WHEN), uint8(TK_WHERE), uint8(TK_RECURSIVE), uint8(TK_ABORT),
+ uint8(TK_AFTER), uint8(TK_RENAME), uint8(TK_AND), uint8(TK_DROP), uint8(TK_PARTITION),
+ uint8(TK_AUTOINCR), uint8(TK_TO), uint8(TK_IN), uint8(TK_CAST), uint8(TK_COLUMNKW),
+ uint8(TK_COMMIT), uint8(TK_CONFLICT), uint8(TK_JOIN_KW), uint8(TK_CTIME_KW), uint8(TK_CTIME_KW),
+ uint8(TK_CURRENT), uint8(TK_PRECEDING), uint8(TK_FAIL), uint8(TK_LAST), uint8(TK_FILTER),
+ uint8(TK_REPLACE), uint8(TK_FIRST), uint8(TK_FOLLOWING), uint8(TK_FROM), uint8(TK_JOIN_KW),
+ uint8(TK_LIMIT), uint8(TK_IF), uint8(TK_ORDER), uint8(TK_RESTRICT), uint8(TK_OTHERS),
+ uint8(TK_OVER), uint8(TK_RETURNING), uint8(TK_JOIN_KW), uint8(TK_ROLLBACK), uint8(TK_ROWS),
+ uint8(TK_ROW), uint8(TK_UNBOUNDED), uint8(TK_UNION), uint8(TK_USING), uint8(TK_VACUUM),
+ uint8(TK_VIEW), uint8(TK_WINDOW), uint8(TK_DO), uint8(TK_BY), uint8(TK_INITIALLY),
+ uint8(TK_ALL), uint8(TK_PRIMARY),
+}
+
+func keywordCode(tls *libc.TLS, z uintptr, n int32, pType uintptr) int32 {
+ var i int32
+ var j int32
+ var zKW uintptr
+ if n >= 2 {
+ i = (int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))])*4 ^ int32(Xsqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-1))))])*3 ^ n*1) % 127
+ for i = int32(aKWHash[i]) - 1; i >= 0; i = int32(aKWNext[i]) - 1 {
+ if int32(aKWLen[i]) != n {
+ continue
+ }
+ zKW = uintptr(unsafe.Pointer(&zKWText)) + uintptr(aKWOffset[i])
+ if int32(*(*int8)(unsafe.Pointer(z)))&libc.CplInt32(0x20) != int32(*(*int8)(unsafe.Pointer(zKW))) {
+ continue
+ }
+ if int32(*(*int8)(unsafe.Pointer(z + 1)))&libc.CplInt32(0x20) != int32(*(*int8)(unsafe.Pointer(zKW + 1))) {
+ continue
+ }
+ j = 2
+ for j < n && int32(*(*int8)(unsafe.Pointer(z + uintptr(j))))&libc.CplInt32(0x20) == int32(*(*int8)(unsafe.Pointer(zKW + uintptr(j)))) {
+ j++
+ }
+ if j < n {
+ continue
+ }
+
+ *(*int32)(unsafe.Pointer(pType)) = int32(aKWCode[i])
+ break
+ }
+ }
+ return n
+}
+
+func Xsqlite3KeywordCode(tls *libc.TLS, z uintptr, n int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = TK_ID
+ keywordCode(tls, z, n, bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func Xsqlite3_keyword_name(tls *libc.TLS, i int32, pzName uintptr, pnName uintptr) int32 {
+ if i < 0 || i >= SQLITE_N_KEYWORD {
+ return SQLITE_ERROR
+ }
+ *(*uintptr)(unsafe.Pointer(pzName)) = uintptr(unsafe.Pointer(&zKWText)) + uintptr(aKWOffset[i])
+ *(*int32)(unsafe.Pointer(pnName)) = int32(aKWLen[i])
+ return SQLITE_OK
+}
+
+func Xsqlite3_keyword_count(tls *libc.TLS) int32 {
+ return SQLITE_N_KEYWORD
+}
+
+func Xsqlite3_keyword_check(tls *libc.TLS, zName uintptr, nName int32) int32 {
+ return libc.Bool32(TK_ID != Xsqlite3KeywordCode(tls, zName, nName))
+}
+
+// Make the IdChar function accessible from ctime.c and alter.c
+func Xsqlite3IsIdChar(tls *libc.TLS, c U8) int32 {
+ return libc.Bool32(int32(Xsqlite3CtypeMap[c])&0x46 != 0)
+}
+
+func getToken(tls *libc.TLS, pz uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var z uintptr = *(*uintptr)(unsafe.Pointer(pz))
+
+ for __ccgo := true; __ccgo; __ccgo = *(*int32)(unsafe.Pointer(bp)) == TK_SPACE {
+ z += uintptr(Xsqlite3GetToken(tls, z, bp))
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == TK_ID ||
+ *(*int32)(unsafe.Pointer(bp)) == TK_STRING ||
+ *(*int32)(unsafe.Pointer(bp)) == TK_JOIN_KW ||
+ *(*int32)(unsafe.Pointer(bp)) == TK_WINDOW ||
+ *(*int32)(unsafe.Pointer(bp)) == TK_OVER ||
+ Xsqlite3ParserFallback(tls, *(*int32)(unsafe.Pointer(bp))) == TK_ID {
+ *(*int32)(unsafe.Pointer(bp)) = TK_ID
+ }
+ *(*uintptr)(unsafe.Pointer(pz)) = z
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func analyzeWindowKeyword(tls *libc.TLS, z uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = z
+
+ var t int32
+ t = getToken(tls, bp)
+ if t != TK_ID {
+ return TK_ID
+ }
+ t = getToken(tls, bp)
+ if t != TK_AS {
+ return TK_ID
+ }
+ return TK_WINDOW
+}
+
+func analyzeOverKeyword(tls *libc.TLS, z uintptr, lastToken int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = z
+
+ if lastToken == TK_RP {
+ var t int32 = getToken(tls, bp)
+ if t == TK_LP || t == TK_ID {
+ return TK_OVER
+ }
+ }
+ return TK_ID
+}
+
+func analyzeFilterKeyword(tls *libc.TLS, z uintptr, lastToken int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = z
+
+ if lastToken == TK_RP && getToken(tls, bp) == TK_LP {
+ return TK_FILTER
+ }
+ return TK_ID
+}
+
+// Return the length (in bytes) of the token that begins at z[0].
+// Store the token type in *tokenType before returning.
+func Xsqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) int32 {
+ var i int32
+ var c int32
+ switch int32(aiClass[*(*uint8)(unsafe.Pointer(z))]) {
+ case CC_SPACE:
+ {
+ for i = 1; int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x01 != 0; i++ {
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SPACE
+ return i
+
+ }
+ case CC_MINUS:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) == '-' {
+ for i = 2; libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0 && c != '\n'; i++ {
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SPACE
+ return i
+ } else if int32(*(*uint8)(unsafe.Pointer(z + 1))) == '>' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_PTR
+ return 2 + libc.Bool32(int32(*(*uint8)(unsafe.Pointer(z + 2))) == '>')
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_MINUS
+ return 1
+
+ }
+ case CC_LP:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_LP
+ return 1
+
+ }
+ case CC_RP:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_RP
+ return 1
+
+ }
+ case CC_SEMI:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SEMI
+ return 1
+
+ }
+ case CC_PLUS:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_PLUS
+ return 1
+
+ }
+ case CC_STAR:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_STAR
+ return 1
+
+ }
+ case CC_SLASH:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) != '*' || int32(*(*uint8)(unsafe.Pointer(z + 2))) == 0 {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SLASH
+ return 1
+ }
+ i = 3
+ c = int32(*(*uint8)(unsafe.Pointer(z + 2)))
+ for ; (c != '*' || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) != '/') && libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0; i++ {
+ }
+ if c != 0 {
+ i++
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SPACE
+ return i
+
+ }
+ case CC_PERCENT:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_REM
+ return 1
+
+ }
+ case CC_EQ:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_EQ
+ return 1 + libc.Bool32(int32(*(*uint8)(unsafe.Pointer(z + 1))) == '=')
+
+ }
+ case CC_LT:
+ {
+ if libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + 1)))) == '=' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_LE
+ return 2
+ } else if c == '>' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_NE
+ return 2
+ } else if c == '<' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_LSHIFT
+ return 2
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_LT
+ return 1
+ }
+
+ }
+ fallthrough
+ case CC_GT:
+ {
+ if libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + 1)))) == '=' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_GE
+ return 2
+ } else if c == '>' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_RSHIFT
+ return 2
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_GT
+ return 1
+ }
+
+ }
+ fallthrough
+ case CC_BANG:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) != '=' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ return 1
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_NE
+ return 2
+ }
+
+ }
+ fallthrough
+ case CC_PIPE:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) != '|' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_BITOR
+ return 1
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_CONCAT
+ return 2
+ }
+
+ }
+ fallthrough
+ case CC_COMMA:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_COMMA
+ return 1
+
+ }
+ case CC_AND:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_BITAND
+ return 1
+
+ }
+ case CC_TILDA:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_BITNOT
+ return 1
+
+ }
+ case CC_QUOTE:
+ {
+ var delim int32 = int32(*(*uint8)(unsafe.Pointer(z)))
+
+ for i = 1; libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0; i++ {
+ if c == delim {
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+1)))) == delim {
+ i++
+ } else {
+ break
+ }
+ }
+ }
+ if c == '\'' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_STRING
+ return i + 1
+ } else if c != 0 {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ID
+ return i + 1
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ return i
+ }
+
+ }
+ fallthrough
+ case CC_DOT:
+ {
+ if !(int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 1))])&0x04 != 0) {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_DOT
+ return 1
+ }
+
+ }
+ fallthrough
+ case CC_DIGIT:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_INTEGER
+ if int32(*(*uint8)(unsafe.Pointer(z))) == '0' && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == 'x' || int32(*(*uint8)(unsafe.Pointer(z + 1))) == 'X') && int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&0x08 != 0 {
+ for i = 3; int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x08 != 0; i++ {
+ }
+ return i
+ }
+ for i = 0; int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x04 != 0; i++ {
+ }
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == '.' {
+ i++
+ for int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x04 != 0 {
+ i++
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_FLOAT
+ }
+ if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == 'e' || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == 'E') && (int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+1)))])&0x04 != 0 ||
+ (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+1)))) == '+' || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+1)))) == '-') && int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+2)))])&0x04 != 0) {
+ i = i + 2
+ for int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x04 != 0 {
+ i++
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_FLOAT
+ }
+ for int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x46 != 0 {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ i++
+ }
+ return i
+
+ }
+ case CC_QUOTE2:
+ {
+ i = 1
+ c = int32(*(*uint8)(unsafe.Pointer(z)))
+ for ; c != ']' && libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0; i++ {
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = func() int32 {
+ if c == ']' {
+ return TK_ID
+ }
+ return TK_ILLEGAL
+ }()
+ return i
+
+ }
+ case CC_VARNUM:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_VARIABLE
+ for i = 1; int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x04 != 0; i++ {
+ }
+ return i
+
+ }
+ case CC_DOLLAR:
+ fallthrough
+ case CC_VARALPHA:
+ {
+ var n int32 = 0
+
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_VARIABLE
+ for i = 1; libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0; i++ {
+ if int32(Xsqlite3CtypeMap[uint8(c)])&0x46 != 0 {
+ n++
+ } else if c == '(' && n > 0 {
+ for __ccgo := true; __ccgo; __ccgo = libc.AssignInt32(&c, int32(*(*uint8)(unsafe.Pointer(z + uintptr(i))))) != 0 && !(int32(Xsqlite3CtypeMap[uint8(c)])&0x01 != 0) && c != ')' {
+ i++
+ }
+ if c == ')' {
+ i++
+ } else {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ }
+ break
+ } else if c == ':' && int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+1)))) == ':' {
+ i++
+ } else {
+ break
+ }
+ }
+ if n == 0 {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ }
+ return i
+
+ }
+ case CC_KYWD0:
+ {
+ for i = 1; int32(aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= CC_KYWD; i++ {
+ }
+ if int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x46 != 0 {
+ i++
+ break
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ID
+ return keywordCode(tls, z, i, tokenType)
+
+ }
+ case CC_X:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) == '\'' {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_BLOB
+ for i = 2; int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x08 != 0; i++ {
+ }
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) != '\'' || i%2 != 0 {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ for *(*uint8)(unsafe.Pointer(z + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) != '\'' {
+ i++
+ }
+ }
+ if *(*uint8)(unsafe.Pointer(z + uintptr(i))) != 0 {
+ i++
+ }
+ return i
+ }
+
+ }
+ fallthrough
+ case CC_KYWD:
+ fallthrough
+ case CC_ID:
+ {
+ i = 1
+ break
+
+ }
+ case CC_BOM:
+ {
+ if int32(*(*uint8)(unsafe.Pointer(z + 1))) == 0xbb && int32(*(*uint8)(unsafe.Pointer(z + 2))) == 0xbf {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_SPACE
+ return 3
+ }
+ i = 1
+ break
+
+ }
+ case CC_NUL:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ return 0
+
+ }
+ default:
+ {
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ILLEGAL
+ return 1
+
+ }
+ }
+ for int32(Xsqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&0x46 != 0 {
+ i++
+ }
+ *(*int32)(unsafe.Pointer(tokenType)) = TK_ID
+ return i
+}
+
+// Run the parser on the given SQL string.
+func Xsqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) int32 {
+ bp := tls.Alloc(2480)
+ defer tls.Free(2480)
+
+ var nErr int32 = 0
+ var pEngine uintptr
+ var n int32 = 0
+
+ var lastTokenParsed int32 = -1
+ var db uintptr = (*Parse)(unsafe.Pointer(pParse)).Fdb
+ var mxSqlLen int32
+ var pParentParse uintptr = uintptr(0)
+
+ mxSqlLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4))
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive == 0 {
+ *(*int32)(unsafe.Pointer(db + 432)) = 0
+ }
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_OK
+ (*Parse)(unsafe.Pointer(pParse)).FzTail = zSql
+ pEngine = bp + 32
+ Xsqlite3ParserInit(tls, pEngine, pParse)
+
+ pParentParse = (*Sqlite3)(unsafe.Pointer(db)).FpParse
+ (*Sqlite3)(unsafe.Pointer(db)).FpParse = pParse
+ for 1 != 0 {
+ n = Xsqlite3GetToken(tls, zSql, bp+2456)
+ mxSqlLen = mxSqlLen - n
+ if mxSqlLen < 0 {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_TOOBIG
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ break
+ }
+ if *(*int32)(unsafe.Pointer(bp + 2456)) >= TK_WINDOW {
+ if *(*int32)(unsafe.Pointer(db + 432)) != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_INTERRUPT
+ (*Parse)(unsafe.Pointer(pParse)).FnErr++
+ break
+ }
+ if *(*int32)(unsafe.Pointer(bp + 2456)) == TK_SPACE {
+ zSql += uintptr(n)
+ continue
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 {
+ if lastTokenParsed == TK_SEMI {
+ *(*int32)(unsafe.Pointer(bp + 2456)) = 0
+ } else if lastTokenParsed == 0 {
+ break
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 2456)) = TK_SEMI
+ }
+ n = 0
+ } else if *(*int32)(unsafe.Pointer(bp + 2456)) == TK_WINDOW {
+ *(*int32)(unsafe.Pointer(bp + 2456)) = analyzeWindowKeyword(tls, zSql+6)
+ } else if *(*int32)(unsafe.Pointer(bp + 2456)) == TK_OVER {
+ *(*int32)(unsafe.Pointer(bp + 2456)) = analyzeOverKeyword(tls, zSql+4, lastTokenParsed)
+ } else if *(*int32)(unsafe.Pointer(bp + 2456)) == TK_FILTER {
+ *(*int32)(unsafe.Pointer(bp + 2456)) = analyzeFilterKeyword(tls, zSql+6, lastTokenParsed)
+ } else {
+ (*Token)(unsafe.Pointer(bp + 2464)).Fz = zSql
+ (*Token)(unsafe.Pointer(bp + 2464)).Fn = uint32(n)
+ Xsqlite3ErrorMsg(tls, pParse, ts+23759, libc.VaList(bp, bp+2464))
+ break
+ }
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fz = zSql
+ (*Parse)(unsafe.Pointer(pParse)).FsLastToken.Fn = uint32(n)
+ Xsqlite3Parser(tls, pEngine, *(*int32)(unsafe.Pointer(bp + 2456)), (*Parse)(unsafe.Pointer(pParse)).FsLastToken)
+ lastTokenParsed = *(*int32)(unsafe.Pointer(bp + 2456))
+ zSql += uintptr(n)
+
+ if (*Parse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK {
+ break
+ }
+ }
+
+ Xsqlite3ParserFinalize(tls, pEngine)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ (*Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*Parse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*Parse)(unsafe.Pointer(pParse)).Frc != SQLITE_DONE {
+ if (*Parse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) {
+ (*Parse)(unsafe.Pointer(pParse)).FzErrMsg = Xsqlite3MPrintf(tls, db, ts+3658, libc.VaList(bp+8, Xsqlite3ErrStr(tls, (*Parse)(unsafe.Pointer(pParse)).Frc)))
+ }
+ Xsqlite3_log(tls, (*Parse)(unsafe.Pointer(pParse)).Frc, ts+23784, libc.VaList(bp+16, (*Parse)(unsafe.Pointer(pParse)).FzErrMsg, (*Parse)(unsafe.Pointer(pParse)).FzTail))
+ nErr++
+ }
+ (*Parse)(unsafe.Pointer(pParse)).FzTail = zSql
+ Xsqlite3_free(tls, (*Parse)(unsafe.Pointer(pParse)).FapVtabLock)
+
+ if (*Parse)(unsafe.Pointer(pParse)).FpNewTable != 0 && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL) {
+ Xsqlite3DeleteTable(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpNewTable)
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 && !(int32((*Parse)(unsafe.Pointer(pParse)).FeParseMode) >= PARSE_MODE_RENAME) {
+ Xsqlite3DeleteTrigger(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpNewTrigger)
+ }
+ if (*Parse)(unsafe.Pointer(pParse)).FpVList != 0 {
+ Xsqlite3DbNNFreeNN(tls, db, (*Parse)(unsafe.Pointer(pParse)).FpVList)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FpParse = pParentParse
+
+ return nErr
+}
+
+// Return TRUE if the given SQL string ends in a semicolon.
+//
+// Special handling is require for CREATE TRIGGER statements.
+// Whenever the CREATE TRIGGER keywords are seen, the statement
+// must end with ";END;".
+//
+// This implementation uses a state machine with 8 states:
+//
+// (0) INVALID We have not yet seen a non-whitespace character.
+//
+// (1) START At the beginning or end of an SQL statement. This routine
+// returns 1 if it ends in the START state and 0 if it ends
+// in any other state.
+//
+// (2) NORMAL We are in the middle of statement which ends with a single
+// semicolon.
+//
+// (3) EXPLAIN The keyword EXPLAIN has been seen at the beginning of
+// a statement.
+//
+// (4) CREATE The keyword CREATE has been seen at the beginning of a
+// statement, possibly preceded by EXPLAIN and/or followed by
+// TEMP or TEMPORARY
+//
+// (5) TRIGGER We are in the middle of a trigger definition that must be
+// ended by a semicolon, the keyword END, and another semicolon.
+//
+// (6) SEMI We've seen the first semicolon in the ";END;" that occurs at
+// the end of a trigger definition.
+//
+// (7) END We've seen the ";END" of the ";END;" that occurs at the end
+// of a trigger definition.
+//
+// Transitions between states above are determined by tokens extracted
+// from the input. The following tokens are significant:
+//
+// (0) tkSEMI A semicolon.
+// (1) tkWS Whitespace.
+// (2) tkOTHER Any other SQL token.
+// (3) tkEXPLAIN The "explain" keyword.
+// (4) tkCREATE The "create" keyword.
+// (5) tkTEMP The "temp" or "temporary" keyword.
+// (6) tkTRIGGER The "trigger" keyword.
+// (7) tkEND The "end" keyword.
+//
+// Whitespace never causes a state transition and is always ignored.
+// This means that a SQL string of all whitespace is invalid.
+//
+// If we compile with SQLITE_OMIT_TRIGGER, all of the computation needed
+// to recognize the end of a trigger can be omitted. All we have to do
+// is look for a semicolon that is not part of an string or comment.
+func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) int32 {
+ var state U8 = U8(0)
+ var token U8
+
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 {
+ switch int32(*(*int8)(unsafe.Pointer(zSql))) {
+ case ';':
+ {
+ token = U8(TkSEMI)
+ break
+
+ }
+ case ' ':
+ fallthrough
+ case '\r':
+ fallthrough
+ case '\t':
+ fallthrough
+ case '\n':
+ fallthrough
+ case '\f':
+ {
+ token = U8(TkWS)
+ break
+
+ }
+ case '/':
+ {
+ if int32(*(*int8)(unsafe.Pointer(zSql + 1))) != '*' {
+ token = U8(TkOTHER)
+ break
+ }
+ zSql += uintptr(2)
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 && (int32(*(*int8)(unsafe.Pointer(zSql))) != '*' || int32(*(*int8)(unsafe.Pointer(zSql + 1))) != '/') {
+ zSql++
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 {
+ return 0
+ }
+ zSql++
+ token = U8(TkWS)
+ break
+
+ }
+ case '-':
+ {
+ if int32(*(*int8)(unsafe.Pointer(zSql + 1))) != '-' {
+ token = U8(TkOTHER)
+ break
+ }
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 && int32(*(*int8)(unsafe.Pointer(zSql))) != '\n' {
+ zSql++
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 {
+ return libc.Bool32(int32(state) == 1)
+ }
+ token = U8(TkWS)
+ break
+
+ }
+ case '[':
+ {
+ zSql++
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 && int32(*(*int8)(unsafe.Pointer(zSql))) != ']' {
+ zSql++
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 {
+ return 0
+ }
+ token = U8(TkOTHER)
+ break
+
+ }
+ case '`':
+ fallthrough
+ case '"':
+ fallthrough
+ case '\'':
+ {
+ var c int32 = int32(*(*int8)(unsafe.Pointer(zSql)))
+ zSql++
+ for *(*int8)(unsafe.Pointer(zSql)) != 0 && int32(*(*int8)(unsafe.Pointer(zSql))) != c {
+ zSql++
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 {
+ return 0
+ }
+ token = U8(TkOTHER)
+ break
+
+ }
+ default:
+ {
+ if int32(Xsqlite3CtypeMap[U8(*(*int8)(unsafe.Pointer(zSql)))])&0x46 != 0 {
+ var nId int32
+ for nId = 1; int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zSql + uintptr(nId))))])&0x46 != 0; nId++ {
+ }
+ switch int32(*(*int8)(unsafe.Pointer(zSql))) {
+ case 'c':
+ fallthrough
+ case 'C':
+ {
+ if nId == 6 && Xsqlite3_strnicmp(tls, zSql, ts+23795, 6) == 0 {
+ token = U8(TkCREATE)
+ } else {
+ token = U8(TkOTHER)
+ }
+ break
+
+ }
+ fallthrough
+ case 't':
+ fallthrough
+ case 'T':
+ {
+ if nId == 7 && Xsqlite3_strnicmp(tls, zSql, ts+20381, 7) == 0 {
+ token = U8(TkTRIGGER)
+ } else if nId == 4 && Xsqlite3_strnicmp(tls, zSql, ts+23802, 4) == 0 {
+ token = U8(TkTEMP)
+ } else if nId == 9 && Xsqlite3_strnicmp(tls, zSql, ts+23807, 9) == 0 {
+ token = U8(TkTEMP)
+ } else {
+ token = U8(TkOTHER)
+ }
+ break
+
+ }
+ fallthrough
+ case 'e':
+ fallthrough
+ case 'E':
+ {
+ if nId == 3 && Xsqlite3_strnicmp(tls, zSql, ts+23817, 3) == 0 {
+ token = U8(TkEND)
+ } else if nId == 7 && Xsqlite3_strnicmp(tls, zSql, ts+23821, 7) == 0 {
+ token = U8(TkEXPLAIN)
+ } else {
+ token = U8(TkOTHER)
+ }
+ break
+
+ }
+ fallthrough
+ default:
+ {
+ token = U8(TkOTHER)
+ break
+
+ }
+ }
+ zSql += uintptr(nId - 1)
+ } else {
+ token = U8(TkOTHER)
+ }
+ break
+
+ }
+ }
+ state = *(*U8)(unsafe.Pointer(uintptr(unsafe.Pointer(&trans)) + uintptr(state)*8 + uintptr(token)))
+ zSql++
+ }
+ return libc.Bool32(int32(state) == 1)
+}
+
+var trans = [8][8]U8{
+ {U8(1), U8(0), U8(2), U8(3), U8(4), U8(2), U8(2), U8(2)},
+ {U8(1), U8(1), U8(2), U8(3), U8(4), U8(2), U8(2), U8(2)},
+ {U8(1), U8(2), U8(2), U8(2), U8(2), U8(2), U8(2), U8(2)},
+ {U8(1), U8(3), U8(3), U8(2), U8(4), U8(2), U8(2), U8(2)},
+ {U8(1), U8(4), U8(2), U8(2), U8(2), U8(4), U8(5), U8(2)},
+ {U8(6), U8(5), U8(5), U8(5), U8(5), U8(5), U8(5), U8(5)},
+ {U8(6), U8(6), U8(5), U8(5), U8(5), U8(5), U8(5), U8(7)},
+ {U8(1), U8(7), U8(5), U8(5), U8(5), U8(5), U8(5), U8(5)},
+}
+
+// This routine is the same as the sqlite3_complete() routine described
+// above, except that the parameter is required to be UTF-16 encoded, not
+// UTF-8.
+func Xsqlite3_complete16(tls *libc.TLS, zSql uintptr) int32 {
+ var pVal uintptr
+ var zSql8 uintptr
+ var rc int32
+
+ rc = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+ pVal = Xsqlite3ValueNew(tls, uintptr(0))
+ Xsqlite3ValueSetStr(tls, pVal, -1, zSql, uint8(SQLITE_UTF16LE), uintptr(0))
+ zSql8 = Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF8))
+ if zSql8 != 0 {
+ rc = Xsqlite3_complete(tls, zSql8)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ Xsqlite3ValueFree(tls, pVal)
+ return rc & 0xff
+}
+
+func sqlite3TestExtInit(tls *libc.TLS, db uintptr) int32 {
+ _ = db
+ return Xsqlite3FaultSim(tls, 500)
+}
+
+var sqlite3BuiltinExtensions = [4]uintptr{
+ 0,
+ 0,
+ 0,
+ 0,
+}
+
+// IMPLEMENTATION-OF: R-53536-42575 The sqlite3_libversion() function returns
+// a pointer to the to the sqlite3_version[] string constant.
+func Xsqlite3_libversion(tls *libc.TLS) uintptr {
+ return uintptr(unsafe.Pointer(&Xsqlite3_version))
+}
+
+// IMPLEMENTATION-OF: R-35210-63508 The sqlite3_libversion_number() function
+// returns an integer equal to SQLITE_VERSION_NUMBER.
+func Xsqlite3_libversion_number(tls *libc.TLS) int32 {
+ return SQLITE_VERSION_NUMBER
+}
+
+// IMPLEMENTATION-OF: R-20790-14025 The sqlite3_threadsafe() function returns
+// zero if and only if SQLite was compiled with mutexing code omitted due to
+// the SQLITE_THREADSAFE compile-time option being set to 0.
+func Xsqlite3_threadsafe(tls *libc.TLS) int32 {
+ return SQLITE_THREADSAFE
+}
+
+// If the following global variable points to a string which is the
+// name of a directory, then that directory will be used to store
+// temporary files.
+//
+// See also the "PRAGMA temp_store_directory" SQL command.
+var Xsqlite3_temp_directory uintptr = uintptr(0)
+
+// If the following global variable points to a string which is the
+// name of a directory, then that directory will be used to store
+// all database files specified with a relative pathname.
+//
+// See also the "PRAGMA data_store_directory" SQL command.
+var Xsqlite3_data_directory uintptr = uintptr(0)
+
+var mu mutex
+
+func init() { mu.recursive = true }
+
+func Xsqlite3_initialize(tls *libc.TLS) int32 {
+ mu.enter(tls.ID)
+ defer mu.leave(tls.ID)
+
+ var pMainMtx uintptr
+ var rc int32
+
+ if Xsqlite3Config.FisInit != 0 {
+ return SQLITE_OK
+ }
+
+ rc = Xsqlite3MutexInit(tls)
+ if rc != 0 {
+ return rc
+ }
+
+ pMainMtx = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN)
+ Xsqlite3_mutex_enter(tls, pMainMtx)
+ Xsqlite3Config.FisMutexInit = 1
+ if !(Xsqlite3Config.FisMallocInit != 0) {
+ rc = Xsqlite3MallocInit(tls)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3Config.FisMallocInit = 1
+ if !(int32(Xsqlite3Config.FpInitMutex) != 0) {
+ Xsqlite3Config.FpInitMutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_RECURSIVE)
+ if Xsqlite3Config.FbCoreMutex != 0 && !(int32(Xsqlite3Config.FpInitMutex) != 0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3Config.FnRefInitMutex++
+ }
+ Xsqlite3_mutex_leave(tls, pMainMtx)
+
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3Config.FpInitMutex)
+ if Xsqlite3Config.FisInit == 0 && Xsqlite3Config.FinProgress == 0 {
+ Xsqlite3Config.FinProgress = 1
+ libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)), 0, uint64(unsafe.Sizeof(Xsqlite3BuiltinFunctions)), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&Xsqlite3BuiltinFunctions)), 0))
+ Xsqlite3RegisterBuiltinFunctions(tls)
+ if Xsqlite3Config.FisPCacheInit == 0 {
+ rc = Xsqlite3PcacheInitialize(tls)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3Config.FisPCacheInit = 1
+ rc = Xsqlite3OsInit(tls)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3MemdbInit(tls)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3PCacheBufferSetup(tls, Xsqlite3Config.FpPage,
+ Xsqlite3Config.FszPage, Xsqlite3Config.FnPage)
+
+ Xsqlite3Config.FisInit = 1
+ }
+ Xsqlite3Config.FinProgress = 0
+ }
+ Xsqlite3_mutex_leave(tls, Xsqlite3Config.FpInitMutex)
+
+ Xsqlite3_mutex_enter(tls, pMainMtx)
+ Xsqlite3Config.FnRefInitMutex--
+ if Xsqlite3Config.FnRefInitMutex <= 0 {
+ Xsqlite3_mutex_free(tls, Xsqlite3Config.FpInitMutex)
+ Xsqlite3Config.FpInitMutex = uintptr(0)
+ }
+ Xsqlite3_mutex_leave(tls, pMainMtx)
+
+ return rc
+}
+
+// Undo the effects of sqlite3_initialize(). Must not be called while
+// there are outstanding database connections or memory allocations or
+// while any part of SQLite is otherwise in use in any thread. This
+// routine is not threadsafe. But it is safe to invoke this routine
+// on when SQLite is already shut down. If SQLite is already shut down
+// when this routine is invoked, then this routine is a harmless no-op.
+func Xsqlite3_shutdown(tls *libc.TLS) int32 {
+ if Xsqlite3Config.FisInit != 0 {
+ Xsqlite3_os_end(tls)
+ Xsqlite3_reset_auto_extension(tls)
+ Xsqlite3Config.FisInit = 0
+ }
+ if Xsqlite3Config.FisPCacheInit != 0 {
+ Xsqlite3PcacheShutdown(tls)
+ Xsqlite3Config.FisPCacheInit = 0
+ }
+ if Xsqlite3Config.FisMallocInit != 0 {
+ Xsqlite3MallocEnd(tls)
+ Xsqlite3Config.FisMallocInit = 0
+
+ Xsqlite3_data_directory = uintptr(0)
+ Xsqlite3_temp_directory = uintptr(0)
+ }
+ if Xsqlite3Config.FisMutexInit != 0 {
+ Xsqlite3MutexEnd(tls)
+ Xsqlite3Config.FisMutexInit = 0
+ }
+
+ return SQLITE_OK
+}
+
+// This API allows applications to modify the global configuration of
+// the SQLite library at run-time.
+//
+// This routine should only be called when there are no outstanding
+// database connections or memory allocations. This routine is not
+// threadsafe. Failure to heed these warnings can lead to unpredictable
+// behavior.
+func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) int32 {
+ var ap Va_list
+ _ = ap
+ var rc int32 = SQLITE_OK
+
+ if Xsqlite3Config.FisInit != 0 {
+ return Xsqlite3MisuseError(tls, 174337)
+ }
+
+ ap = va
+ switch op {
+ case SQLITE_CONFIG_SINGLETHREAD:
+ {
+ Xsqlite3Config.FbCoreMutex = U8(0)
+ Xsqlite3Config.FbFullMutex = U8(0)
+ break
+
+ }
+ case SQLITE_CONFIG_MULTITHREAD:
+ {
+ Xsqlite3Config.FbCoreMutex = U8(1)
+ Xsqlite3Config.FbFullMutex = U8(0)
+ break
+
+ }
+ case SQLITE_CONFIG_SERIALIZED:
+ {
+ Xsqlite3Config.FbCoreMutex = U8(1)
+ Xsqlite3Config.FbFullMutex = U8(1)
+ break
+
+ }
+ case SQLITE_CONFIG_MUTEX:
+ {
+ Xsqlite3Config.Fmutex = *(*Sqlite3_mutex_methods)(unsafe.Pointer(libc.VaUintptr(&ap)))
+ break
+
+ }
+ case SQLITE_CONFIG_GETMUTEX:
+ {
+ *(*Sqlite3_mutex_methods)(unsafe.Pointer(libc.VaUintptr(&ap))) = Xsqlite3Config.Fmutex
+ break
+
+ }
+
+ case SQLITE_CONFIG_MALLOC:
+ {
+ Xsqlite3Config.Fm = *(*Sqlite3_mem_methods)(unsafe.Pointer(libc.VaUintptr(&ap)))
+ break
+
+ }
+ case SQLITE_CONFIG_GETMALLOC:
+ {
+ if Xsqlite3Config.Fm.FxMalloc == uintptr(0) {
+ Xsqlite3MemSetDefault(tls)
+ }
+ *(*Sqlite3_mem_methods)(unsafe.Pointer(libc.VaUintptr(&ap))) = Xsqlite3Config.Fm
+ break
+
+ }
+ case SQLITE_CONFIG_MEMSTATUS:
+ {
+ Xsqlite3Config.FbMemstat = libc.VaInt32(&ap)
+ break
+
+ }
+ case SQLITE_CONFIG_SMALL_MALLOC:
+ {
+ Xsqlite3Config.FbSmallMalloc = U8(libc.VaInt32(&ap))
+ break
+
+ }
+ case SQLITE_CONFIG_PAGECACHE:
+ {
+ Xsqlite3Config.FpPage = libc.VaUintptr(&ap)
+ Xsqlite3Config.FszPage = libc.VaInt32(&ap)
+ Xsqlite3Config.FnPage = libc.VaInt32(&ap)
+ break
+
+ }
+ case SQLITE_CONFIG_PCACHE_HDRSZ:
+ {
+ *(*int32)(unsafe.Pointer(libc.VaUintptr(&ap))) = Xsqlite3HeaderSizeBtree(tls) + Xsqlite3HeaderSizePcache(tls) + Xsqlite3HeaderSizePcache1(tls)
+ break
+
+ }
+
+ case SQLITE_CONFIG_PCACHE:
+ {
+ break
+
+ }
+ case SQLITE_CONFIG_GETPCACHE:
+ {
+ rc = SQLITE_ERROR
+ break
+
+ }
+
+ case SQLITE_CONFIG_PCACHE2:
+ {
+ Xsqlite3Config.Fpcache2 = *(*Sqlite3_pcache_methods2)(unsafe.Pointer(libc.VaUintptr(&ap)))
+ break
+
+ }
+ case SQLITE_CONFIG_GETPCACHE2:
+ {
+ if Xsqlite3Config.Fpcache2.FxInit == uintptr(0) {
+ Xsqlite3PCacheSetDefault(tls)
+ }
+ *(*Sqlite3_pcache_methods2)(unsafe.Pointer(libc.VaUintptr(&ap))) = Xsqlite3Config.Fpcache2
+ break
+
+ }
+
+ case SQLITE_CONFIG_LOOKASIDE:
+ {
+ Xsqlite3Config.FszLookaside = libc.VaInt32(&ap)
+ Xsqlite3Config.FnLookaside = libc.VaInt32(&ap)
+ break
+
+ }
+
+ case SQLITE_CONFIG_LOG:
+ {
+ Xsqlite3Config.FxLog = libc.VaUintptr(&ap)
+ Xsqlite3Config.FpLogArg = libc.VaUintptr(&ap)
+ break
+
+ }
+
+ case SQLITE_CONFIG_URI:
+ {
+ Xsqlite3Config.FbOpenUri = U8(libc.VaInt32(&ap))
+ break
+
+ }
+
+ case SQLITE_CONFIG_COVERING_INDEX_SCAN:
+ {
+ Xsqlite3Config.FbUseCis = U8(libc.VaInt32(&ap))
+ break
+
+ }
+
+ case SQLITE_CONFIG_MMAP_SIZE:
+ {
+ var szMmap Sqlite3_int64 = libc.VaInt64(&ap)
+ var mxMmap Sqlite3_int64 = libc.VaInt64(&ap)
+
+ if mxMmap < int64(0) || mxMmap > int64(SQLITE_MAX_MMAP_SIZE) {
+ mxMmap = int64(SQLITE_MAX_MMAP_SIZE)
+ }
+ if szMmap < int64(0) {
+ szMmap = int64(SQLITE_DEFAULT_MMAP_SIZE)
+ }
+ if szMmap > mxMmap {
+ szMmap = mxMmap
+ }
+ Xsqlite3Config.FmxMmap = mxMmap
+ Xsqlite3Config.FszMmap = szMmap
+ break
+
+ }
+
+ case SQLITE_CONFIG_PMASZ:
+ {
+ Xsqlite3Config.FszPma = libc.VaUint32(&ap)
+ break
+
+ }
+
+ case SQLITE_CONFIG_STMTJRNL_SPILL:
+ {
+ Xsqlite3Config.FnStmtSpill = libc.VaInt32(&ap)
+ break
+
+ }
+
+ case SQLITE_CONFIG_MEMDB_MAXSIZE:
+ {
+ Xsqlite3Config.FmxMemdbSize = libc.VaInt64(&ap)
+ break
+
+ }
+
+ default:
+ {
+ rc = SQLITE_ERROR
+ break
+
+ }
+ }
+ _ = ap
+ return rc
+}
+
+func setupLookaside(tls *libc.TLS, db uintptr, pBuf uintptr, sz int32, cnt int32) int32 {
+ var pStart uintptr
+ var szAlloc Sqlite3_int64 = Sqlite3_int64(sz) * Sqlite3_int64(cnt)
+ var nBig int32
+ var nSm int32
+
+ if Xsqlite3LookasideUsed(tls, db, uintptr(0)) > 0 {
+ return SQLITE_BUSY
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbMalloced != 0 {
+ Xsqlite3_free(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart)
+ }
+
+ sz = sz & libc.CplInt32(7)
+ if sz <= int32(unsafe.Sizeof(uintptr(0))) {
+ sz = 0
+ }
+ if cnt < 0 {
+ cnt = 0
+ }
+ if sz == 0 || cnt == 0 {
+ sz = 0
+ pStart = uintptr(0)
+ } else if pBuf == uintptr(0) {
+ Xsqlite3BeginBenignMalloc(tls)
+ pStart = Xsqlite3Malloc(tls, uint64(szAlloc))
+ Xsqlite3EndBenignMalloc(tls)
+ if pStart != 0 {
+ szAlloc = Sqlite3_int64(Xsqlite3MallocSize(tls, pStart))
+ }
+ } else {
+ pStart = pBuf
+ }
+ if sz >= LOOKASIDE_SMALL*3 {
+ nBig = int32(szAlloc / Sqlite3_int64(3*LOOKASIDE_SMALL+sz))
+ nSm = int32((szAlloc - Sqlite3_int64(sz*nBig)) / int64(LOOKASIDE_SMALL))
+ } else if sz >= LOOKASIDE_SMALL*2 {
+ nBig = int32(szAlloc / Sqlite3_int64(LOOKASIDE_SMALL+sz))
+ nSm = int32((szAlloc - Sqlite3_int64(sz*nBig)) / int64(LOOKASIDE_SMALL))
+ } else if sz > 0 {
+ nBig = int32(szAlloc / Sqlite3_int64(sz))
+ nSm = 0
+ } else {
+ nBig = libc.AssignInt32(&nSm, 0)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart = pStart
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(sz)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue = U16(sz)
+ if pStart != 0 {
+ var i int32
+ var p uintptr
+
+ p = pStart
+ for i = 0; i < nBig; i++ {
+ (*LookasideSlot)(unsafe.Pointer(p)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpInit = p
+ p = p + uintptr(sz)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle = p
+ for i = 0; i < nSm; i++ {
+ (*LookasideSlot)(unsafe.Pointer(p)).FpNext = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit = p
+ p = p + 128
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = p
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable = U32(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbMalloced = func() uint8 {
+ if pBuf == uintptr(0) {
+ return uint8(1)
+ }
+ return uint8(0)
+ }()
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot = U32(nBig + nSm)
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallInit = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable = U32(1)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbMalloced = U8(0)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FnSlot = U32(0)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd = (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd
+
+ return SQLITE_OK
+}
+
+// Return the mutex associated with a database connection.
+func Xsqlite3_db_mutex(tls *libc.TLS, db uintptr) uintptr {
+ return (*Sqlite3)(unsafe.Pointer(db)).Fmutex
+}
+
+// Free up as much memory as we can from the given database
+// connection.
+func Xsqlite3_db_release_memory(tls *libc.TLS, db uintptr) int32 {
+ var i int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3BtreeEnterAll(tls, db)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 {
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ Xsqlite3PagerShrink(tls, pPager)
+ }
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// Flush any dirty pages in the pager-cache for any attached database
+// to disk.
+func Xsqlite3_db_cacheflush(tls *libc.TLS, db uintptr) int32 {
+ var i int32
+ var rc int32 = SQLITE_OK
+ var bSeenBusy int32 = 0
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3BtreeEnterAll(tls, db)
+ for i = 0; rc == SQLITE_OK && i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if pBt != 0 && Xsqlite3BtreeTxnState(tls, pBt) == SQLITE_TXN_WRITE {
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ rc = Xsqlite3PagerFlush(tls, pPager)
+ if rc == SQLITE_BUSY {
+ bSeenBusy = 1
+ rc = SQLITE_OK
+ }
+ }
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return func() int32 {
+ if rc == SQLITE_OK && bSeenBusy != 0 {
+ return SQLITE_BUSY
+ }
+ return rc
+ }()
+}
+
+// Configuration settings for an individual database connection
+func Xsqlite3_db_config(tls *libc.TLS, db uintptr, op int32, va uintptr) int32 {
+ var ap Va_list
+ _ = ap
+ var rc int32
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ ap = va
+ switch op {
+ case SQLITE_DBCONFIG_MAINDBNAME:
+ {
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FzDbSName = libc.VaUintptr(&ap)
+ rc = SQLITE_OK
+ break
+
+ }
+ case SQLITE_DBCONFIG_LOOKASIDE:
+ {
+ var pBuf uintptr = libc.VaUintptr(&ap)
+ var sz int32 = libc.VaInt32(&ap)
+ var cnt int32 = libc.VaInt32(&ap)
+ rc = setupLookaside(tls, db, pBuf, sz, cnt)
+ break
+
+ }
+ default:
+ {
+ var i uint32
+ rc = SQLITE_ERROR
+ for i = uint32(0); i < uint32(int32(uint64(unsafe.Sizeof(aFlagOp))/uint64(unsafe.Sizeof(struct {
+ Fop int32
+ Fmask U32
+ }{})))); i++ {
+ if aFlagOp[i].Fop == op {
+ var onoff int32 = libc.VaInt32(&ap)
+ var pRes uintptr = libc.VaUintptr(&ap)
+ var oldFlags U64 = (*Sqlite3)(unsafe.Pointer(db)).Fflags
+ if onoff > 0 {
+ *(*U64)(unsafe.Pointer(db + 48)) |= U64(aFlagOp[i].Fmask)
+ } else if onoff == 0 {
+ *(*U64)(unsafe.Pointer(db + 48)) &= ^U64(aFlagOp[i].Fmask)
+ }
+ if oldFlags != (*Sqlite3)(unsafe.Pointer(db)).Fflags {
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ }
+ if pRes != 0 {
+ *(*int32)(unsafe.Pointer(pRes)) = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).Fflags&U64(aFlagOp[i].Fmask) != uint64(0))
+ }
+ rc = SQLITE_OK
+ break
+ }
+ }
+ break
+
+ }
+ }
+ _ = ap
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+var aFlagOp = [16]struct {
+ Fop int32
+ Fmask U32
+}{
+ {Fop: SQLITE_DBCONFIG_ENABLE_FKEY, Fmask: U32(SQLITE_ForeignKeys)},
+ {Fop: SQLITE_DBCONFIG_ENABLE_TRIGGER, Fmask: U32(SQLITE_EnableTrigger)},
+ {Fop: SQLITE_DBCONFIG_ENABLE_VIEW, Fmask: SQLITE_EnableView},
+ {Fop: SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, Fmask: U32(SQLITE_Fts3Tokenizer)},
+ {Fop: SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, Fmask: U32(SQLITE_LoadExtension)},
+ {Fop: SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE, Fmask: U32(SQLITE_NoCkptOnClose)},
+ {Fop: SQLITE_DBCONFIG_ENABLE_QPSG, Fmask: U32(SQLITE_EnableQPSG)},
+ {Fop: SQLITE_DBCONFIG_TRIGGER_EQP, Fmask: U32(SQLITE_TriggerEQP)},
+ {Fop: SQLITE_DBCONFIG_RESET_DATABASE, Fmask: U32(SQLITE_ResetDatabase)},
+ {Fop: SQLITE_DBCONFIG_DEFENSIVE, Fmask: U32(SQLITE_Defensive)},
+ {Fop: SQLITE_DBCONFIG_WRITABLE_SCHEMA, Fmask: U32(SQLITE_WriteSchema | SQLITE_NoSchemaError)},
+ {Fop: SQLITE_DBCONFIG_LEGACY_ALTER_TABLE, Fmask: U32(SQLITE_LegacyAlter)},
+ {Fop: SQLITE_DBCONFIG_DQS_DDL, Fmask: U32(SQLITE_DqsDDL)},
+ {Fop: SQLITE_DBCONFIG_DQS_DML, Fmask: U32(SQLITE_DqsDML)},
+ {Fop: SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, Fmask: U32(SQLITE_LegacyFileFmt)},
+ {Fop: SQLITE_DBCONFIG_TRUSTED_SCHEMA, Fmask: U32(SQLITE_TrustedSchema)},
+}
+
+func binCollFunc(tls *libc.TLS, NotUsed uintptr, nKey1 int32, pKey1 uintptr, nKey2 int32, pKey2 uintptr) int32 {
+ var rc int32
+ var n int32
+ _ = NotUsed
+ if nKey1 < nKey2 {
+ n = nKey1
+ } else {
+ n = nKey2
+ }
+
+ rc = libc.Xmemcmp(tls, pKey1, pKey2, uint64(n))
+ if rc == 0 {
+ rc = nKey1 - nKey2
+ }
+ return rc
+}
+
+func rtrimCollFunc(tls *libc.TLS, pUser uintptr, nKey1 int32, pKey1 uintptr, nKey2 int32, pKey2 uintptr) int32 {
+ var pK1 uintptr = pKey1
+ var pK2 uintptr = pKey2
+ for nKey1 != 0 && int32(*(*U8)(unsafe.Pointer(pK1 + uintptr(nKey1-1)))) == ' ' {
+ nKey1--
+ }
+ for nKey2 != 0 && int32(*(*U8)(unsafe.Pointer(pK2 + uintptr(nKey2-1)))) == ' ' {
+ nKey2--
+ }
+ return binCollFunc(tls, pUser, nKey1, pKey1, nKey2, pKey2)
+}
+
+// Return true if CollSeq is the default built-in BINARY.
+func Xsqlite3IsBinary(tls *libc.TLS, p uintptr) int32 {
+ return libc.Bool32(p == uintptr(0) || (*CollSeq)(unsafe.Pointer(p)).FxCmp == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{binCollFunc})))
+}
+
+func nocaseCollatingFunc(tls *libc.TLS, NotUsed uintptr, nKey1 int32, pKey1 uintptr, nKey2 int32, pKey2 uintptr) int32 {
+ var r int32 = Xsqlite3_strnicmp(tls,
+ pKey1, pKey2, func() int32 {
+ if nKey1 < nKey2 {
+ return nKey1
+ }
+ return nKey2
+ }())
+ _ = NotUsed
+ if 0 == r {
+ r = nKey1 - nKey2
+ }
+ return r
+}
+
+// Return the ROWID of the most recent insert
+func Xsqlite3_last_insert_rowid(tls *libc.TLS, db uintptr) Sqlite_int64 {
+ return (*Sqlite3)(unsafe.Pointer(db)).FlastRowid
+}
+
+// Set the value returned by the sqlite3_last_insert_rowid() API function.
+func Xsqlite3_set_last_insert_rowid(tls *libc.TLS, db uintptr, iRowid Sqlite3_int64) {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FlastRowid = iRowid
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+}
+
+// Return the number of changes in the most recent call to sqlite3_exec().
+func Xsqlite3_changes64(tls *libc.TLS, db uintptr) Sqlite3_int64 {
+ return (*Sqlite3)(unsafe.Pointer(db)).FnChange
+}
+
+func Xsqlite3_changes(tls *libc.TLS, db uintptr) int32 {
+ return int32(Xsqlite3_changes64(tls, db))
+}
+
+// Return the number of changes since the database handle was opened.
+func Xsqlite3_total_changes64(tls *libc.TLS, db uintptr) Sqlite3_int64 {
+ return (*Sqlite3)(unsafe.Pointer(db)).FnTotalChange
+}
+
+func Xsqlite3_total_changes(tls *libc.TLS, db uintptr) int32 {
+ return int32(Xsqlite3_total_changes64(tls, db))
+}
+
+// Close all open savepoints. This function only manipulates fields of the
+// database handle object, it does not close any savepoints that may be open
+// at the b-tree/pager level.
+func Xsqlite3CloseSavepoints(tls *libc.TLS, db uintptr) {
+ for (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint != 0 {
+ var pTmp uintptr = (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint
+ (*Sqlite3)(unsafe.Pointer(db)).FpSavepoint = (*Savepoint)(unsafe.Pointer(pTmp)).FpNext
+ Xsqlite3DbFree(tls, db, pTmp)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FnSavepoint = 0
+ (*Sqlite3)(unsafe.Pointer(db)).FnStatement = 0
+ (*Sqlite3)(unsafe.Pointer(db)).FisTransactionSavepoint = U8(0)
+}
+
+func functionDestroy(tls *libc.TLS, db uintptr, p uintptr) {
+ var pDestructor uintptr
+
+ pDestructor = *(*uintptr)(unsafe.Pointer(p + 64))
+ if pDestructor != 0 {
+ (*FuncDestructor)(unsafe.Pointer(pDestructor)).FnRef--
+ if (*FuncDestructor)(unsafe.Pointer(pDestructor)).FnRef == 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*FuncDestructor)(unsafe.Pointer(pDestructor)).FxDestroy})).f(tls, (*FuncDestructor)(unsafe.Pointer(pDestructor)).FpUserData)
+ Xsqlite3DbFree(tls, db, pDestructor)
+ }
+ }
+}
+
+func disconnectAllVtab(tls *libc.TLS, db uintptr) {
+ var i int32
+ var p uintptr
+ Xsqlite3BtreeEnterAll(tls, db)
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var pSchema uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpSchema
+ if pSchema != 0 {
+ for p = (*Hash)(unsafe.Pointer(pSchema + 8)).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
+ var pTab uintptr = (*HashElem)(unsafe.Pointer(p)).Fdata
+ if int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VTAB {
+ Xsqlite3VtabDisconnect(tls, db, pTab)
+ }
+ }
+ }
+ }
+ for p = (*Hash)(unsafe.Pointer(db + 576)).Ffirst; p != 0; p = (*HashElem)(unsafe.Pointer(p)).Fnext {
+ var pMod uintptr = (*HashElem)(unsafe.Pointer(p)).Fdata
+ if (*Module)(unsafe.Pointer(pMod)).FpEpoTab != 0 {
+ Xsqlite3VtabDisconnect(tls, db, (*Module)(unsafe.Pointer(pMod)).FpEpoTab)
+ }
+ }
+ Xsqlite3VtabUnlockList(tls, db)
+ Xsqlite3BtreeLeaveAll(tls, db)
+}
+
+func connectionIsBusy(tls *libc.TLS, db uintptr) int32 {
+ var j int32
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FpVdbe != 0 {
+ return 1
+ }
+ for j = 0; j < (*Sqlite3)(unsafe.Pointer(db)).FnDb; j++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(j)*32)).FpBt
+ if pBt != 0 && Xsqlite3BtreeIsInBackup(tls, pBt) != 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func sqlite3Close(tls *libc.TLS, db uintptr, forceZombie int32) int32 {
+ if !(db != 0) {
+ return SQLITE_OK
+ }
+ if !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return Xsqlite3MisuseError(tls, 175111)
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FmTrace)&SQLITE_TRACE_CLOSE != 0 {
+ (*struct {
+ f func(*libc.TLS, U32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(db + 248))})).f(tls, uint32(SQLITE_TRACE_CLOSE), (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg, db, uintptr(0))
+ }
+
+ disconnectAllVtab(tls, db)
+
+ Xsqlite3VtabRollback(tls, db)
+
+ if !(forceZombie != 0) && connectionIsBusy(tls, db) != 0 {
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_BUSY,
+ ts+23829, 0)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_BUSY
+ }
+
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_ZOMBIE)
+ Xsqlite3LeaveMutexAndCloseZombie(tls, db)
+ return SQLITE_OK
+}
+
+// Return the transaction state for a single databse, or the maximum
+// transaction state over all attached databases if zSchema is null.
+func Xsqlite3_txn_state(tls *libc.TLS, db uintptr, zSchema uintptr) int32 {
+ var iDb int32
+ var nDb int32
+ var iTxn int32 = -1
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if zSchema != 0 {
+ nDb = libc.AssignInt32(&iDb, Xsqlite3FindDbName(tls, db, zSchema))
+ if iDb < 0 {
+ nDb--
+ }
+ } else {
+ iDb = 0
+ nDb = (*Sqlite3)(unsafe.Pointer(db)).FnDb - 1
+ }
+ for ; iDb <= nDb; iDb++ {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ var x int32
+ if pBt != uintptr(0) {
+ x = Xsqlite3BtreeTxnState(tls, pBt)
+ } else {
+ x = SQLITE_TXN_NONE
+ }
+ if x > iTxn {
+ iTxn = x
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return iTxn
+}
+
+// Two variations on the public interface for closing a database
+// connection. The sqlite3_close() version returns SQLITE_BUSY and
+// leaves the connection open if there are unfinalized prepared
+// statements or unfinished sqlite3_backups. The sqlite3_close_v2()
+// version forces the connection to become a zombie if there are
+// unclosed resources, and arranges for deallocation when the last
+// prepare statement or sqlite3_backup closes.
+func Xsqlite3_close(tls *libc.TLS, db uintptr) int32 {
+ return sqlite3Close(tls, db, 0)
+}
+
+func Xsqlite3_close_v2(tls *libc.TLS, db uintptr) int32 {
+ return sqlite3Close(tls, db, 1)
+}
+
+// Close the mutex on database connection db.
+//
+// Furthermore, if database connection db is a zombie (meaning that there
+// has been a prior call to sqlite3_close(db) or sqlite3_close_v2(db)) and
+// every sqlite3_stmt has now been finalized and every sqlite3_backup has
+// finished, then free all resources.
+func Xsqlite3LeaveMutexAndCloseZombie(tls *libc.TLS, db uintptr) {
+ var i uintptr
+ var j int32
+
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FeOpenState) != SQLITE_STATE_ZOMBIE || connectionIsBusy(tls, db) != 0 {
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return
+ }
+
+ Xsqlite3RollbackAll(tls, db, SQLITE_OK)
+
+ Xsqlite3CloseSavepoints(tls, db)
+
+ for j = 0; j < (*Sqlite3)(unsafe.Pointer(db)).FnDb; j++ {
+ var pDb uintptr = (*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(j)*32
+ if (*Db1)(unsafe.Pointer(pDb)).FpBt != 0 {
+ Xsqlite3BtreeClose(tls, (*Db1)(unsafe.Pointer(pDb)).FpBt)
+ (*Db1)(unsafe.Pointer(pDb)).FpBt = uintptr(0)
+ if j != 1 {
+ (*Db1)(unsafe.Pointer(pDb)).FpSchema = uintptr(0)
+ }
+ }
+ }
+
+ if (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema != 0 {
+ Xsqlite3SchemaClear(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema)
+ }
+ Xsqlite3VtabUnlockList(tls, db)
+
+ Xsqlite3CollapseDatabaseArray(tls, db)
+
+ Xsqlite3ConnectionClosed(tls, db)
+
+ for i = (*Hash)(unsafe.Pointer(db + 624)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pNext uintptr
+ var p uintptr
+ p = (*HashElem)(unsafe.Pointer(i)).Fdata
+ for __ccgo := true; __ccgo; __ccgo = p != 0 {
+ functionDestroy(tls, db, p)
+ pNext = (*FuncDef)(unsafe.Pointer(p)).FpNext
+ Xsqlite3DbFree(tls, db, p)
+ p = pNext
+ }
+ }
+ Xsqlite3HashClear(tls, db+624)
+ for i = (*Hash)(unsafe.Pointer(db + 648)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pColl uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+
+ for j = 0; j < 3; j++ {
+ if (*CollSeq)(unsafe.Pointer(pColl+uintptr(j)*40)).FxDel != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*CollSeq)(unsafe.Pointer(pColl + uintptr(j)*40)).FxDel})).f(tls, (*CollSeq)(unsafe.Pointer(pColl+uintptr(j)*40)).FpUser)
+ }
+ }
+ Xsqlite3DbFree(tls, db, pColl)
+ }
+ Xsqlite3HashClear(tls, db+648)
+ for i = (*Hash)(unsafe.Pointer(db + 576)).Ffirst; i != 0; i = (*HashElem)(unsafe.Pointer(i)).Fnext {
+ var pMod uintptr = (*HashElem)(unsafe.Pointer(i)).Fdata
+ Xsqlite3VtabEponymousTableClear(tls, db, pMod)
+ Xsqlite3VtabModuleUnref(tls, db, pMod)
+ }
+ Xsqlite3HashClear(tls, db+576)
+
+ Xsqlite3Error(tls, db, SQLITE_OK)
+ Xsqlite3ValueFree(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ Xsqlite3CloseExtensions(tls, db)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_ERROR)
+
+ Xsqlite3DbFree(tls, db, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+1*32)).FpSchema)
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxAutovacDestr})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_CLOSED)
+ Xsqlite3_mutex_free(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbMalloced != 0 {
+ Xsqlite3_free(tls, (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FpStart)
+ }
+ Xsqlite3_free(tls, db)
+}
+
+// Rollback all database files. If tripCode is not SQLITE_OK, then
+// any write cursors are invalidated ("tripped" - as in "tripping a circuit
+// breaker") and made to return tripCode if there are any further
+// attempts to use that cursor. Read cursors remain open and valid
+// but are "saved" in case the table pages are moved around.
+func Xsqlite3RollbackAll(tls *libc.TLS, db uintptr, tripCode int32) {
+ var i int32
+ var inTrans int32 = 0
+ var schemaChange int32
+
+ Xsqlite3BeginBenignMalloc(tls)
+
+ Xsqlite3BtreeEnterAll(tls, db)
+ schemaChange = libc.Bool32((*Sqlite3)(unsafe.Pointer(db)).FmDbFlags&U32(DBFLAG_SchemaChange) != U32(0) && int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0)
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb; i++ {
+ var p uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32)).FpBt
+ if p != 0 {
+ if Xsqlite3BtreeTxnState(tls, p) == SQLITE_TXN_WRITE {
+ inTrans = 1
+ }
+ Xsqlite3BtreeRollback(tls, p, tripCode, libc.BoolInt32(!(schemaChange != 0)))
+ }
+ }
+ Xsqlite3VtabRollback(tls, db)
+ Xsqlite3EndBenignMalloc(tls)
+
+ if schemaChange != 0 {
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ }
+ Xsqlite3BtreeLeaveAll(tls, db)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredCons = int64(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = int64(0)
+ *(*U64)(unsafe.Pointer(db + 48)) &= libc.CplUint64(uint64(SQLITE_DeferFKs) | uint64(0x00002)<<32)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FxRollbackCallback != 0 && (inTrans != 0 || !(int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) != 0)) {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxRollbackCallback})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpRollbackArg)
+ }
+}
+
+// Return a static string that describes the kind of error specified in the
+// argument.
+func Xsqlite3ErrStr(tls *libc.TLS, rc int32) uintptr {
+ var zErr uintptr = ts + 23897
+ switch rc {
+ case SQLITE_ABORT | int32(2)<<8:
+ {
+ zErr = ts + 23911
+ break
+
+ }
+ case SQLITE_ROW:
+ {
+ zErr = ts + 23933
+ break
+
+ }
+ case SQLITE_DONE:
+ {
+ zErr = ts + 23955
+ break
+
+ }
+ default:
+ {
+ rc = rc & 0xff
+ if rc >= 0 && rc < int32(uint64(unsafe.Sizeof(aMsg))/uint64(unsafe.Sizeof(uintptr(0)))) && aMsg[rc] != uintptr(0) {
+ zErr = aMsg[rc]
+ }
+ break
+
+ }
+ }
+ return zErr
+}
+
+var aMsg = [29]uintptr{
+ ts + 23978,
+ ts + 23991,
+ uintptr(0),
+ ts + 24007,
+ ts + 24032,
+ ts + 24046,
+ ts + 24065,
+ ts + 1483,
+ ts + 24090,
+ ts + 24127,
+ ts + 24139,
+ ts + 24154,
+ ts + 24187,
+ ts + 24205,
+ ts + 24230,
+ ts + 24259,
+ uintptr(0),
+ ts + 6241,
+ ts + 5737,
+ ts + 24276,
+ ts + 24294,
+ ts + 24312,
+ uintptr(0),
+ ts + 24346,
+ uintptr(0),
+ ts + 24367,
+ ts + 24393,
+ ts + 24416,
+ ts + 24437,
+}
+
+func sqliteDefaultBusyCallback(tls *libc.TLS, ptr uintptr, count int32) int32 {
+ var db uintptr = ptr
+ var tmout int32 = (*Sqlite3)(unsafe.Pointer(db)).FbusyTimeout
+ var delay int32
+ var prior int32
+
+ if count < int32(uint64(unsafe.Sizeof(delays))/uint64(unsafe.Sizeof(U8(0)))) {
+ delay = int32(delays[count])
+ prior = int32(totals[count])
+ } else {
+ delay = int32(delays[int32(uint64(unsafe.Sizeof(delays))/uint64(unsafe.Sizeof(U8(0))))-1])
+ prior = int32(totals[int32(uint64(unsafe.Sizeof(delays))/uint64(unsafe.Sizeof(U8(0))))-1]) + delay*(count-(int32(uint64(unsafe.Sizeof(delays))/uint64(unsafe.Sizeof(U8(0))))-1))
+ }
+ if prior+delay > tmout {
+ delay = tmout - prior
+ if delay <= 0 {
+ return 0
+ }
+ }
+ Xsqlite3OsSleep(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, delay*1000)
+ return 1
+}
+
+var delays = [12]U8{U8(1), U8(2), U8(5), U8(10), U8(15), U8(20), U8(25), U8(25), U8(25), U8(50), U8(50), U8(100)}
+var totals = [12]U8{U8(0), U8(1), U8(3), U8(8), U8(18), U8(33), U8(53), U8(78), U8(103), U8(128), U8(178), U8(228)}
+
+// Invoke the given busy handler.
+//
+// This routine is called when an operation failed to acquire a
+// lock on VFS file pFile.
+//
+// If this routine returns non-zero, the lock is retried. If it
+// returns 0, the operation aborts with an SQLITE_BUSY error.
+func Xsqlite3InvokeBusyHandler(tls *libc.TLS, p uintptr) int32 {
+ var rc int32
+ if (*BusyHandler)(unsafe.Pointer(p)).FxBusyHandler == uintptr(0) || (*BusyHandler)(unsafe.Pointer(p)).FnBusy < 0 {
+ return 0
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*BusyHandler)(unsafe.Pointer(p)).FxBusyHandler})).f(tls, (*BusyHandler)(unsafe.Pointer(p)).FpBusyArg, (*BusyHandler)(unsafe.Pointer(p)).FnBusy)
+ if rc == 0 {
+ (*BusyHandler)(unsafe.Pointer(p)).FnBusy = -1
+ } else {
+ (*BusyHandler)(unsafe.Pointer(p)).FnBusy++
+ }
+ return rc
+}
+
+// This routine sets the busy callback for an Sqlite database to the
+// given callback function with the given argument.
+func Xsqlite3_busy_handler(tls *libc.TLS, db uintptr, xBusy uintptr, pArg uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FxBusyHandler = xBusy
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FpBusyArg = pArg
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyTimeout = 0
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// This routine sets the progress callback for an Sqlite database to the
+// given callback function with the given argument. The progress callback will
+// be invoked every nOps opcodes.
+func Xsqlite3_progress_handler(tls *libc.TLS, db uintptr, nOps int32, xProgress uintptr, pArg uintptr) {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if nOps > 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).FxProgress = xProgress
+ (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps)
+ (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FxProgress = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpProgressArg = uintptr(0)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+}
+
+// This routine installs a default busy handler that waits for the
+// specified number of milliseconds before returning 0.
+func Xsqlite3_busy_timeout(tls *libc.TLS, db uintptr, ms int32) int32 {
+ if ms > 0 {
+ Xsqlite3_busy_handler(tls, db, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ }{sqliteDefaultBusyCallback})),
+ db)
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyTimeout = ms
+ } else {
+ Xsqlite3_busy_handler(tls, db, uintptr(0), uintptr(0))
+ }
+ return SQLITE_OK
+}
+
+// Cause any pending operation to stop at its earliest opportunity.
+func Xsqlite3_interrupt(tls *libc.TLS, db uintptr) {
+ *(*int32)(unsafe.Pointer(db + 432)) = 1
+}
+
+// Return true or false depending on whether or not an interrupt is
+// pending on connection db.
+func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) int32 {
+ return libc.Bool32(*(*int32)(unsafe.Pointer(db + 432)) != 0)
+}
+
+// This function is exactly the same as sqlite3_create_function(), except
+// that it is designed to be called by internal code. The difference is
+// that if a malloc() fails in sqlite3_create_function(), an error code
+// is returned and the mallocFailed flag cleared.
+func Xsqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) int32 {
+ var p uintptr
+ var extraFlags int32
+
+ if zFunctionName == uintptr(0) ||
+ xSFunc != uintptr(0) && xFinal != uintptr(0) ||
+ libc.Bool32(xFinal == uintptr(0)) != libc.Bool32(xStep == uintptr(0)) ||
+ libc.Bool32(xValue == uintptr(0)) != libc.Bool32(xInverse == uintptr(0)) ||
+ (nArg < -1 || nArg > SQLITE_MAX_FUNCTION_ARG) ||
+ 255 < Xsqlite3Strlen30(tls, zFunctionName) {
+ return Xsqlite3MisuseError(tls, 175758)
+ }
+
+ extraFlags = enc & (SQLITE_DETERMINISTIC | SQLITE_DIRECTONLY | SQLITE_SUBTYPE | SQLITE_INNOCUOUS)
+ enc = enc & (SQLITE_FUNC_ENCMASK | SQLITE_ANY)
+
+ extraFlags = extraFlags ^ SQLITE_FUNC_UNSAFE
+
+ switch enc {
+ case SQLITE_UTF16:
+ enc = SQLITE_UTF16LE
+ break
+ case SQLITE_ANY:
+ {
+ var rc int32
+ rc = Xsqlite3CreateFunc(tls, db, zFunctionName, nArg,
+ SQLITE_UTF8|extraFlags^SQLITE_FUNC_UNSAFE,
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3CreateFunc(tls, db, zFunctionName, nArg,
+ SQLITE_UTF16LE|extraFlags^SQLITE_FUNC_UNSAFE,
+ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor)
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+ enc = SQLITE_UTF16BE
+ break
+
+ }
+ case SQLITE_UTF8:
+ fallthrough
+ case SQLITE_UTF16LE:
+ fallthrough
+ case SQLITE_UTF16BE:
+ break
+ default:
+ enc = SQLITE_UTF8
+ break
+ }
+
+ p = Xsqlite3FindFunction(tls, db, zFunctionName, nArg, U8(enc), uint8(0))
+ if p != 0 && (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_ENCMASK) == U32(enc) && int32((*FuncDef)(unsafe.Pointer(p)).FnArg) == nArg {
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 {
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_BUSY,
+ ts+24453, 0)
+
+ return SQLITE_BUSY
+ } else {
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+ }
+ } else if xSFunc == uintptr(0) && xFinal == uintptr(0) {
+ return SQLITE_OK
+ }
+
+ p = Xsqlite3FindFunction(tls, db, zFunctionName, nArg, U8(enc), uint8(1))
+
+ if !(p != 0) {
+ return SQLITE_NOMEM
+ }
+
+ functionDestroy(tls, db, p)
+
+ if pDestructor != 0 {
+ (*FuncDestructor)(unsafe.Pointer(pDestructor)).FnRef++
+ }
+ *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor
+ (*FuncDef)(unsafe.Pointer(p)).FfuncFlags = (*FuncDef)(unsafe.Pointer(p)).FfuncFlags&U32(SQLITE_FUNC_ENCMASK) | U32(extraFlags)
+
+ (*FuncDef)(unsafe.Pointer(p)).FxSFunc = func() uintptr {
+ if xSFunc != 0 {
+ return xSFunc
+ }
+ return xStep
+ }()
+ (*FuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal
+ (*FuncDef)(unsafe.Pointer(p)).FxValue = xValue
+ (*FuncDef)(unsafe.Pointer(p)).FxInverse = xInverse
+ (*FuncDef)(unsafe.Pointer(p)).FpUserData = pUserData
+ (*FuncDef)(unsafe.Pointer(p)).FnArg = I8(U16(nArg))
+ return SQLITE_OK
+}
+
+func createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) int32 {
+ var rc int32
+ var pArg uintptr
+ rc = SQLITE_ERROR
+ pArg = uintptr(0)
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if !(xDestroy != 0) {
+ goto __1
+ }
+ pArg = Xsqlite3Malloc(tls, uint64(unsafe.Sizeof(FuncDestructor{})))
+ if !!(pArg != 0) {
+ goto __2
+ }
+ Xsqlite3OomFault(tls, db)
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDestroy})).f(tls, p)
+ goto out
+__2:
+ ;
+ (*FuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0
+ (*FuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy
+ (*FuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p
+__1:
+ ;
+ rc = Xsqlite3CreateFunc(tls, db, zFunc, nArg, enc, p,
+ xSFunc, xStep, xFinal, xValue, xInverse, pArg)
+ if !(pArg != 0 && (*FuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0) {
+ goto __3
+ }
+
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDestroy})).f(tls, p)
+ Xsqlite3_free(tls, pArg)
+__3:
+ ;
+out:
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Create new user functions.
+func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) int32 {
+ return createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep,
+ xFinal, uintptr(0), uintptr(0), uintptr(0))
+}
+
+func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) int32 {
+ return createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep,
+ xFinal, uintptr(0), uintptr(0), xDestroy)
+}
+
+func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) int32 {
+ return createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep,
+ xFinal, xValue, xInverse, xDestroy)
+}
+
+func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) int32 {
+ var rc int32
+ var zFunc8 uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ zFunc8 = Xsqlite3Utf16to8(tls, db, zFunctionName, -1, uint8(SQLITE_UTF16LE))
+ rc = Xsqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3DbFree(tls, db, zFunc8)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+func sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotUsed2 uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zName uintptr = Xsqlite3_user_data(tls, context)
+ var zErr uintptr
+ _ = NotUsed
+ _ = NotUsed2
+ zErr = Xsqlite3_mprintf(tls,
+ ts+24516, libc.VaList(bp, zName))
+ Xsqlite3_result_error(tls, context, zErr, -1)
+ Xsqlite3_free(tls, zErr)
+}
+
+// Declare that a function has been overloaded by a virtual table.
+//
+// If the function already exists as a regular global function, then
+// this routine is a no-op. If the function does not exist, then create
+// a new one that always throws a run-time error.
+//
+// When virtual tables intend to provide an overloaded function, they
+// should call this routine to make sure the global function exists.
+// A global function must exist in order for name resolution to work
+// properly.
+func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var zCopy uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ rc = libc.Bool32(Xsqlite3FindFunction(tls, db, zName, nArg, uint8(SQLITE_UTF8), uint8(0)) != uintptr(0))
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if rc != 0 {
+ return SQLITE_OK
+ }
+ zCopy = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, zName))
+ if zCopy == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ return Xsqlite3_create_function_v2(tls, db, zName, nArg, SQLITE_UTF8,
+ zCopy, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{sqlite3InvalidFunction})), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+}
+
+// Register a trace function. The pArg from the previously registered trace
+// is returned.
+//
+// A NULL trace function means that no tracing is executes. A non-NULL
+// trace is a pointer to a function that is invoked at the start of each
+// SQL statement.
+func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) uintptr {
+ var pOld uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pOld = (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg
+ (*Sqlite3)(unsafe.Pointer(db)).FmTrace = func() uint8 {
+ if xTrace != 0 {
+ return uint8(SQLITE_TRACE_LEGACY)
+ }
+ return uint8(0)
+ }()
+ *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace
+ (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pOld
+}
+
+// Register a trace callback using the version-2 interface.
+func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if mTrace == uint32(0) {
+ xTrace = uintptr(0)
+ }
+ if xTrace == uintptr(0) {
+ mTrace = uint32(0)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FmTrace = U8(mTrace)
+ *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace
+ (*Sqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// Register a profile function. The pArg from the previously registered
+// profile function is returned.
+//
+// A NULL profile function means that no profiling is executes. A non-NULL
+// profile is a pointer to a function that is invoked at the conclusion of
+// each SQL statement that is run.
+func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) uintptr {
+ var pOld uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pOld = (*Sqlite3)(unsafe.Pointer(db)).FpProfileArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxProfile = xProfile
+ (*Sqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg
+ *(*U8)(unsafe.Pointer(db + 110)) &= U8(SQLITE_TRACE_NONLEGACY_MASK)
+ if (*Sqlite3)(unsafe.Pointer(db)).FxProfile != 0 {
+ *(*U8)(unsafe.Pointer(db + 110)) |= U8(SQLITE_TRACE_XPROFILE)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pOld
+}
+
+// Register a function to be invoked when a transaction commits.
+// If the invoked function returns non-zero, then the commit becomes a
+// rollback.
+func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) uintptr {
+ var pOld uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pOld = (*Sqlite3)(unsafe.Pointer(db)).FpCommitArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pOld
+}
+
+// Register a callback to be invoked each time a row is updated,
+// inserted or deleted using this database connection.
+func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) uintptr {
+ var pRet uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pRet = (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pRet
+}
+
+// Register a callback to be invoked each time a transaction is rolled
+// back by this database connection.
+func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) uintptr {
+ var pRet uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pRet = (*Sqlite3)(unsafe.Pointer(db)).FpRollbackArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pRet
+}
+
+// Register a callback to be invoked each time a row is updated,
+// inserted or deleted using this database connection.
+func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) uintptr {
+ var pRet uintptr
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pRet = (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdateArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pRet
+}
+
+// Register a function to be invoked prior to each autovacuum that
+// determines the number of pages to vacuum.
+func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Sqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3)(unsafe.Pointer(db)).FxAutovacDestr})).f(tls, (*Sqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// The sqlite3_wal_hook() callback registered by sqlite3_wal_autocheckpoint().
+// Invoke sqlite3_wal_checkpoint if the number of frames in the log file
+// is greater than sqlite3.pWalArg cast to an integer (the value configured by
+// wal_autocheckpoint()).
+func Xsqlite3WalDefaultHook(tls *libc.TLS, pClientData uintptr, db uintptr, zDb uintptr, nFrame int32) int32 {
+ if nFrame >= int32(pClientData) {
+ Xsqlite3BeginBenignMalloc(tls)
+ Xsqlite3_wal_checkpoint(tls, db, zDb)
+ Xsqlite3EndBenignMalloc(tls)
+ }
+ return SQLITE_OK
+}
+
+// Configure an sqlite3_wal_hook() callback to automatically checkpoint
+// a database after committing a transaction if there are nFrame or
+// more frames in the log file. Passing zero or a negative value as the
+// nFrame parameter disables automatic checkpoints entirely.
+//
+// The callback registered by this function replaces any existing callback
+// registered using sqlite3_wal_hook(). Likewise, registering a callback
+// using sqlite3_wal_hook() disables the automatic checkpoint mechanism
+// configured by this function.
+func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) int32 {
+ if nFrame > 0 {
+ Xsqlite3_wal_hook(tls, db, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32
+ }{Xsqlite3WalDefaultHook})), uintptr(int64(nFrame)))
+ } else {
+ Xsqlite3_wal_hook(tls, db, uintptr(0), uintptr(0))
+ }
+ return SQLITE_OK
+}
+
+// Register a callback to be invoked each time a transaction is written
+// into the write-ahead-log by this database connection.
+func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) uintptr {
+ var pRet uintptr
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pRet = (*Sqlite3)(unsafe.Pointer(db)).FpWalArg
+ (*Sqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback
+ (*Sqlite3)(unsafe.Pointer(db)).FpWalArg = pArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return pRet
+}
+
+// Checkpoint database zDb.
+func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode int32, pnLog uintptr, pnCkpt uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ var iDb int32
+
+ if pnLog != 0 {
+ *(*int32)(unsafe.Pointer(pnLog)) = -1
+ }
+ if pnCkpt != 0 {
+ *(*int32)(unsafe.Pointer(pnCkpt)) = -1
+ }
+
+ if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > SQLITE_CHECKPOINT_TRUNCATE {
+ return SQLITE_MISUSE
+ }
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 {
+ iDb = Xsqlite3FindDbName(tls, db, zDb)
+ } else {
+ iDb = SQLITE_MAX_ATTACHED + 2
+ }
+ if iDb < 0 {
+ rc = SQLITE_ERROR
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_ERROR, ts+24567, libc.VaList(bp, zDb))
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0
+ rc = Xsqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt)
+ Xsqlite3Error(tls, db, rc)
+ }
+ rc = Xsqlite3ApiExit(tls, db, rc)
+
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive == 0 {
+ *(*int32)(unsafe.Pointer(db + 432)) = 0
+ }
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Checkpoint database zDb. If zDb is NULL, or if the buffer zDb points
+// to contains a zero-length string, all attached databases are
+// checkpointed.
+func Xsqlite3_wal_checkpoint(tls *libc.TLS, db uintptr, zDb uintptr) int32 {
+ return Xsqlite3_wal_checkpoint_v2(tls, db, zDb, SQLITE_CHECKPOINT_PASSIVE, uintptr(0), uintptr(0))
+}
+
+// Run a checkpoint on database iDb. This is a no-op if database iDb is
+// not currently open in WAL mode.
+//
+// If a transaction is open on the database being checkpointed, this
+// function returns SQLITE_LOCKED and a checkpoint is not attempted. If
+// an error occurs while running the checkpoint, an SQLite error code is
+// returned (i.e. SQLITE_IOERR). Otherwise, SQLITE_OK.
+//
+// The mutex on database handle db should be held by the caller. The mutex
+// associated with the specific b-tree being checkpointed is taken by
+// this function while the checkpoint is running.
+//
+// If iDb is passed SQLITE_MAX_DB then all attached databases are
+// checkpointed. If an error is encountered it is returned immediately -
+// no attempt is made to checkpoint any remaining databases.
+//
+// Parameter eMode is one of SQLITE_CHECKPOINT_PASSIVE, FULL, RESTART
+// or TRUNCATE.
+func Xsqlite3Checkpoint(tls *libc.TLS, db uintptr, iDb int32, eMode int32, pnLog uintptr, pnCkpt uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var i int32
+ var bBusy int32 = 0
+
+ for i = 0; i < (*Sqlite3)(unsafe.Pointer(db)).FnDb && rc == SQLITE_OK; i++ {
+ if i == iDb || iDb == SQLITE_MAX_ATTACHED+2 {
+ rc = Xsqlite3BtreeCheckpoint(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb+uintptr(i)*32)).FpBt, eMode, pnLog, pnCkpt)
+ pnLog = uintptr(0)
+ pnCkpt = uintptr(0)
+ if rc == SQLITE_BUSY {
+ bBusy = 1
+ rc = SQLITE_OK
+ }
+ }
+ }
+
+ if rc == SQLITE_OK && bBusy != 0 {
+ return SQLITE_BUSY
+ }
+ return rc
+}
+
+// This function returns true if main-memory should be used instead of
+// a temporary file for transient pager files and statement journals.
+// The value returned depends on the value of db->temp_store (runtime
+// parameter) and the compile time value of SQLITE_TEMP_STORE. The
+// following table describes the relationship between these two values
+// and this functions return value.
+//
+// SQLITE_TEMP_STORE db->temp_store Location of temporary database
+// ----------------- -------------- ------------------------------
+// 0 any file (return 0)
+// 1 1 file (return 0)
+// 1 2 memory (return 1)
+// 1 0 file (return 0)
+// 2 1 file (return 0)
+// 2 2 memory (return 1)
+// 2 0 memory (return 1)
+// 3 any memory (return 1)
+func Xsqlite3TempInMemory(tls *libc.TLS, db uintptr) int32 {
+ return libc.Bool32(int32((*Sqlite3)(unsafe.Pointer(db)).Ftemp_store) == 2)
+}
+
+// Return UTF-8 encoded English language explanation of the most recent
+// error.
+func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) uintptr {
+ var z uintptr
+ if !(db != 0) {
+ return Xsqlite3ErrStr(tls, SQLITE_NOMEM)
+ }
+ if !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return Xsqlite3ErrStr(tls, Xsqlite3MisuseError(tls, 176503))
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ z = Xsqlite3ErrStr(tls, SQLITE_NOMEM)
+ } else {
+ if (*Sqlite3)(unsafe.Pointer(db)).FerrCode != 0 {
+ z = Xsqlite3_value_text(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ } else {
+ z = uintptr(0)
+ }
+
+ if z == uintptr(0) {
+ z = Xsqlite3ErrStr(tls, (*Sqlite3)(unsafe.Pointer(db)).FerrCode)
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return z
+}
+
+// Return the byte offset of the most recent error
+func Xsqlite3_error_offset(tls *libc.TLS, db uintptr) int32 {
+ var iOffset int32 = -1
+ if db != 0 && Xsqlite3SafetyCheckSickOrOk(tls, db) != 0 && (*Sqlite3)(unsafe.Pointer(db)).FerrCode != 0 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ iOffset = (*Sqlite3)(unsafe.Pointer(db)).FerrByteOffset
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ }
+ return iOffset
+}
+
+// Return UTF-16 encoded English language explanation of the most recent
+// error.
+func Xsqlite3_errmsg16(tls *libc.TLS, db uintptr) uintptr {
+ var z uintptr
+ if !(db != 0) {
+ return uintptr(unsafe.Pointer(&outOfMem))
+ }
+ if !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return uintptr(unsafe.Pointer(&misuse))
+ }
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ z = uintptr(unsafe.Pointer(&outOfMem))
+ } else {
+ z = Xsqlite3_value_text16(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ if z == uintptr(0) {
+ Xsqlite3ErrorWithMsg(tls, db, (*Sqlite3)(unsafe.Pointer(db)).FerrCode, Xsqlite3ErrStr(tls, (*Sqlite3)(unsafe.Pointer(db)).FerrCode), 0)
+ z = Xsqlite3_value_text16(tls, (*Sqlite3)(unsafe.Pointer(db)).FpErr)
+ }
+
+ Xsqlite3OomClear(tls, db)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return z
+}
+
+var outOfMem = [14]U16{
+ U16('o'), U16('u'), U16('t'), U16(' '), U16('o'), U16('f'), U16(' '), U16('m'), U16('e'), U16('m'), U16('o'), U16('r'), U16('y'), U16(0),
+}
+var misuse = [34]U16{
+ U16('b'), U16('a'), U16('d'), U16(' '), U16('p'), U16('a'), U16('r'), U16('a'), U16('m'), U16('e'), U16('t'), U16('e'), U16('r'), U16(' '),
+ U16('o'), U16('r'), U16(' '), U16('o'), U16('t'), U16('h'), U16('e'), U16('r'), U16(' '), U16('A'), U16('P'), U16('I'), U16(' '),
+ U16('m'), U16('i'), U16('s'), U16('u'), U16('s'), U16('e'), U16(0),
+}
+
+// Return the most recent error code generated by an SQLite routine. If NULL is
+// passed to this function, we assume a malloc() failed during sqlite3_open().
+func Xsqlite3_errcode(tls *libc.TLS, db uintptr) int32 {
+ if db != 0 && !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return Xsqlite3MisuseError(tls, 176582)
+ }
+ if !(db != 0) || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return SQLITE_NOMEM
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).FerrCode & (*Sqlite3)(unsafe.Pointer(db)).FerrMask
+}
+
+func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) int32 {
+ if db != 0 && !(Xsqlite3SafetyCheckSickOrOk(tls, db) != 0) {
+ return Xsqlite3MisuseError(tls, 176591)
+ }
+ if !(db != 0) || (*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 {
+ return SQLITE_NOMEM
+ }
+ return (*Sqlite3)(unsafe.Pointer(db)).FerrCode
+}
+
+func Xsqlite3_system_errno(tls *libc.TLS, db uintptr) int32 {
+ if db != 0 {
+ return (*Sqlite3)(unsafe.Pointer(db)).FiSysErrno
+ }
+ return 0
+}
+
+// Return a string that describes the kind of error specified in the
+// argument. For now, this simply calls the internal sqlite3ErrStr()
+// function.
+func Xsqlite3_errstr(tls *libc.TLS, rc int32) uintptr {
+ return Xsqlite3ErrStr(tls, rc)
+}
+
+func createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc U8, pCtx uintptr, xCompare uintptr, xDel uintptr) int32 {
+ var pColl uintptr
+ var enc2 int32
+
+ enc2 = int32(enc)
+
+ if enc2 == SQLITE_UTF16 || enc2 == SQLITE_UTF16_ALIGNED {
+ enc2 = SQLITE_UTF16LE
+ }
+ if enc2 < SQLITE_UTF8 || enc2 > SQLITE_UTF16BE {
+ return Xsqlite3MisuseError(tls, 176639)
+ }
+
+ pColl = Xsqlite3FindCollSeq(tls, db, U8(enc2), zName, 0)
+ if pColl != 0 && (*CollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 {
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 {
+ Xsqlite3ErrorWithMsg(tls, db, SQLITE_BUSY,
+ ts+24588, 0)
+ return SQLITE_BUSY
+ }
+ Xsqlite3ExpirePreparedStatements(tls, db, 0)
+
+ if int32((*CollSeq)(unsafe.Pointer(pColl)).Fenc)&libc.CplInt32(SQLITE_UTF16_ALIGNED) == enc2 {
+ var aColl uintptr = Xsqlite3HashFind(tls, db+648, zName)
+ var j int32
+ for j = 0; j < 3; j++ {
+ var p uintptr = aColl + uintptr(j)*40
+ if int32((*CollSeq)(unsafe.Pointer(p)).Fenc) == int32((*CollSeq)(unsafe.Pointer(pColl)).Fenc) {
+ if (*CollSeq)(unsafe.Pointer(p)).FxDel != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*CollSeq)(unsafe.Pointer(p)).FxDel})).f(tls, (*CollSeq)(unsafe.Pointer(p)).FpUser)
+ }
+ (*CollSeq)(unsafe.Pointer(p)).FxCmp = uintptr(0)
+ }
+ }
+ }
+ }
+
+ pColl = Xsqlite3FindCollSeq(tls, db, U8(enc2), zName, 1)
+ if pColl == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*CollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare
+ (*CollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx
+ (*CollSeq)(unsafe.Pointer(pColl)).FxDel = xDel
+ (*CollSeq)(unsafe.Pointer(pColl)).Fenc = U8(enc2 | int32(enc)&SQLITE_UTF16_ALIGNED)
+ Xsqlite3Error(tls, db, SQLITE_OK)
+ return SQLITE_OK
+}
+
+var aHardLimit = [12]int32{
+ SQLITE_MAX_LENGTH,
+ SQLITE_MAX_SQL_LENGTH,
+ SQLITE_MAX_COLUMN,
+ SQLITE_MAX_EXPR_DEPTH,
+ SQLITE_MAX_COMPOUND_SELECT,
+ SQLITE_MAX_VDBE_OP,
+ SQLITE_MAX_FUNCTION_ARG,
+ SQLITE_MAX_ATTACHED,
+ SQLITE_MAX_LIKE_PATTERN_LENGTH,
+ SQLITE_MAX_VARIABLE_NUMBER,
+ SQLITE_MAX_TRIGGER_DEPTH,
+ SQLITE_MAX_WORKER_THREADS,
+}
+
+// Change the value of a limit. Report the old value.
+// If an invalid limit index is supplied, report -1.
+// Make no changes but still report the old value if the
+// new limit is negative.
+//
+// A new lower limit does not shrink existing constructs.
+// It merely prevents new constructs that exceed the limit
+// from forming.
+func Xsqlite3_limit(tls *libc.TLS, db uintptr, limitId int32, newLimit int32) int32 {
+ var oldLimit int32
+
+ if limitId < 0 || limitId >= SQLITE_LIMIT_WORKER_THREADS+1 {
+ return -1
+ }
+ oldLimit = *(*int32)(unsafe.Pointer(db + 136 + uintptr(limitId)*4))
+ if newLimit >= 0 {
+ if newLimit > aHardLimit[limitId] {
+ newLimit = aHardLimit[limitId]
+ } else if newLimit < 1 && limitId == SQLITE_LIMIT_LENGTH {
+ newLimit = 1
+ }
+ *(*int32)(unsafe.Pointer(db + 136 + uintptr(limitId)*4)) = newLimit
+ }
+ return oldLimit
+}
+
+// This function is used to parse both URIs and non-URI filenames passed by the
+// user to API functions sqlite3_open() or sqlite3_open_v2(), and for database
+// URIs specified as part of ATTACH statements.
+//
+// The first argument to this function is the name of the VFS to use (or
+// a NULL to signify the default VFS) if the URI does not contain a "vfs=xxx"
+// query parameter. The second argument contains the URI (or non-URI filename)
+// itself. When this function is called the *pFlags variable should contain
+// the default flags to open the database handle with. The value stored in
+// *pFlags may be updated before returning if the URI filename contains
+// "cache=xxx" or "mode=xxx" query parameters.
+//
+// If successful, SQLITE_OK is returned. In this case *ppVfs is set to point to
+// the VFS that should be used to open the database file. *pzFile is set to
+// point to a buffer containing the name of the file to open. The value
+// stored in *pzFile is a database name acceptable to sqlite3_uri_parameter()
+// and is in the same format as names created using sqlite3_create_filename().
+// The caller must invoke sqlite3_free_filename() (not sqlite3_free()!) on
+// the value returned in *pzFile to avoid a memory leak.
+//
+// If an error occurs, then an SQLite error code is returned and *pzErrMsg
+// may be set to point to a buffer containing an English language error
+// message. It is the responsibility of the caller to eventually release
+// this buffer by calling sqlite3_free().
+func Xsqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags uintptr, ppVfs uintptr, pzFile uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32
+ var flags uint32
+ var zVfs uintptr
+ var zFile uintptr
+ var c int8
+ var nUri int32
+ var octet int32
+ var z uintptr
+ var i int32
+ var mode int32
+ var aMode uintptr
+ var zModeType uintptr
+ var mask int32
+ var limit int32
+ var nOpt int32
+ var zVal uintptr
+ var nVal int32
+ var zOpt uintptr
+ var eState int32
+ var iIn int32
+ var iOut int32
+ var nByte U64
+ rc = SQLITE_OK
+ flags = *(*uint32)(unsafe.Pointer(pFlags))
+ zVfs = zDefaultVfs
+ nUri = Xsqlite3Strlen30(tls, zUri)
+
+ if !((flags&uint32(SQLITE_OPEN_URI) != 0 ||
+ Xsqlite3Config.FbOpenUri != 0) &&
+ nUri >= 5 && libc.Xmemcmp(tls, zUri, ts+24656, uint64(5)) == 0) {
+ goto __1
+ }
+ iOut = 0
+ nByte = U64(nUri + 8)
+
+ flags = flags | uint32(SQLITE_OPEN_URI)
+
+ iIn = 0
+__3:
+ if !(iIn < nUri) {
+ goto __5
+ }
+ nByte = nByte + U64(libc.Bool32(int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) == '&'))
+ goto __4
+__4:
+ iIn++
+ goto __3
+ goto __5
+__5:
+ ;
+ zFile = Xsqlite3_malloc64(tls, nByte)
+ if !!(zFile != 0) {
+ goto __6
+ }
+ return SQLITE_NOMEM
+__6:
+ ;
+ libc.X__builtin___memset_chk(tls, zFile, 0, uint64(4), libc.X__builtin_object_size(tls, zFile, 0))
+ zFile += uintptr(4)
+
+ iIn = 5
+
+ if !(int32(*(*int8)(unsafe.Pointer(zUri + 5))) == '/' && int32(*(*int8)(unsafe.Pointer(zUri + 6))) == '/') {
+ goto __7
+ }
+ iIn = 7
+__8:
+ if !(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != '/') {
+ goto __9
+ }
+ iIn++
+ goto __8
+__9:
+ ;
+ if !(iIn != 7 && (iIn != 16 || libc.Xmemcmp(tls, ts+24662, zUri+7, uint64(9)) != 0)) {
+ goto __10
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+24672,
+ libc.VaList(bp, iIn-7, zUri+7))
+ rc = SQLITE_ERROR
+ goto parse_uri_out
+__10:
+ ;
+__7:
+ ;
+ eState = 0
+__11:
+ if !(int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))))) != 0 && int32(c) != '#') {
+ goto __12
+ }
+ iIn++
+ if !(int32(c) == '%' &&
+ int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn))))])&0x08 != 0 &&
+ int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn+1))))])&0x08 != 0) {
+ goto __13
+ }
+ octet = int32(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(zUri + uintptr(libc.PostIncInt32(&iIn, 1))))))) << 4
+ octet = octet + int32(Xsqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(zUri + uintptr(libc.PostIncInt32(&iIn, 1)))))))
+
+ if !(octet == 0) {
+ goto __15
+ }
+
+__16:
+ if !(int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))))) != 0 && int32(c) != '#' &&
+ (eState != 0 || int32(c) != '?') &&
+ (eState != 1 || int32(c) != '=' && int32(c) != '&') &&
+ (eState != 2 || int32(c) != '&')) {
+ goto __17
+ }
+ iIn++
+ goto __16
+__17:
+ ;
+ goto __11
+__15:
+ ;
+ c = int8(octet)
+ goto __14
+__13:
+ if !(eState == 1 && (int32(c) == '&' || int32(c) == '=')) {
+ goto __18
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iOut-1)))) == 0) {
+ goto __20
+ }
+
+__21:
+ if !(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != '#' && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn-1)))) != '&') {
+ goto __22
+ }
+ iIn++
+ goto __21
+__22:
+ ;
+ goto __11
+__20:
+ ;
+ if !(int32(c) == '&') {
+ goto __23
+ }
+ *(*int8)(unsafe.Pointer(zFile + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8(0)
+ goto __24
+__23:
+ eState = 2
+__24:
+ ;
+ c = int8(0)
+ goto __19
+__18:
+ if !(eState == 0 && int32(c) == '?' || eState == 2 && int32(c) == '&') {
+ goto __25
+ }
+ c = int8(0)
+ eState = 1
+__25:
+ ;
+__19:
+ ;
+__14:
+ ;
+ *(*int8)(unsafe.Pointer(zFile + uintptr(libc.PostIncInt32(&iOut, 1)))) = c
+ goto __11
+__12:
+ ;
+ if !(eState == 1) {
+ goto __26
+ }
+ *(*int8)(unsafe.Pointer(zFile + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8(0)
+__26:
+ ;
+ libc.X__builtin___memset_chk(tls, zFile+uintptr(iOut), 0, uint64(4), libc.X__builtin_object_size(tls, zFile+uintptr(iOut), 0))
+
+ zOpt = zFile + uintptr(Xsqlite3Strlen30(tls, zFile)+1)
+__27:
+ if !(*(*int8)(unsafe.Pointer(zOpt)) != 0) {
+ goto __28
+ }
+ nOpt = Xsqlite3Strlen30(tls, zOpt)
+ zVal = zOpt + uintptr(nOpt+1)
+ nVal = Xsqlite3Strlen30(tls, zVal)
+
+ if !(nOpt == 3 && libc.Xmemcmp(tls, ts+24700, zOpt, uint64(3)) == 0) {
+ goto __29
+ }
+ zVfs = zVal
+ goto __30
+__29:
+ aMode = uintptr(0)
+ zModeType = uintptr(0)
+ mask = 0
+ limit = 0
+
+ if !(nOpt == 5 && libc.Xmemcmp(tls, ts+24704, zOpt, uint64(5)) == 0) {
+ goto __31
+ }
+
+ mask = SQLITE_OPEN_SHAREDCACHE | SQLITE_OPEN_PRIVATECACHE
+ aMode = uintptr(unsafe.Pointer(&aCacheMode))
+ limit = mask
+ zModeType = ts + 24704
+__31:
+ ;
+ if !(nOpt == 4 && libc.Xmemcmp(tls, ts+24710, zOpt, uint64(4)) == 0) {
+ goto __32
+ }
+
+ mask = SQLITE_OPEN_READONLY | SQLITE_OPEN_READWRITE |
+ SQLITE_OPEN_CREATE | SQLITE_OPEN_MEMORY
+ aMode = uintptr(unsafe.Pointer(&aOpenMode))
+ limit = int32(uint32(mask) & flags)
+ zModeType = ts + 3265
+__32:
+ ;
+ if !(aMode != 0) {
+ goto __33
+ }
+ mode = 0
+ i = 0
+__34:
+ if !((*OpenMode)(unsafe.Pointer(aMode+uintptr(i)*16)).Fz != 0) {
+ goto __36
+ }
+ z = (*OpenMode)(unsafe.Pointer(aMode + uintptr(i)*16)).Fz
+ if !(nVal == Xsqlite3Strlen30(tls, z) && 0 == libc.Xmemcmp(tls, zVal, z, uint64(nVal))) {
+ goto __37
+ }
+ mode = (*OpenMode)(unsafe.Pointer(aMode + uintptr(i)*16)).Fmode
+ goto __36
+__37:
+ ;
+ goto __35
+__35:
+ i++
+ goto __34
+ goto __36
+__36:
+ ;
+ if !(mode == 0) {
+ goto __38
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+24715, libc.VaList(bp+16, zModeType, zVal))
+ rc = SQLITE_ERROR
+ goto parse_uri_out
+__38:
+ ;
+ if !(mode&libc.CplInt32(SQLITE_OPEN_MEMORY) > limit) {
+ goto __39
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+24735,
+ libc.VaList(bp+32, zModeType, zVal))
+ rc = SQLITE_PERM
+ goto parse_uri_out
+__39:
+ ;
+ flags = flags&uint32(^mask) | uint32(mode)
+__33:
+ ;
+__30:
+ ;
+ zOpt = zVal + uintptr(nVal+1)
+ goto __27
+__28:
+ ;
+ goto __2
+__1:
+ zFile = Xsqlite3_malloc64(tls, uint64(nUri+8))
+ if !!(zFile != 0) {
+ goto __40
+ }
+ return SQLITE_NOMEM
+__40:
+ ;
+ libc.X__builtin___memset_chk(tls, zFile, 0, uint64(4), libc.X__builtin_object_size(tls, zFile, 0))
+ zFile += uintptr(4)
+ if !(nUri != 0) {
+ goto __41
+ }
+ libc.X__builtin___memcpy_chk(tls, zFile, zUri, uint64(nUri), libc.X__builtin_object_size(tls, zFile, 0))
+__41:
+ ;
+ libc.X__builtin___memset_chk(tls, zFile+uintptr(nUri), 0, uint64(4), libc.X__builtin_object_size(tls, zFile+uintptr(nUri), 0))
+ flags = flags & libc.Uint32FromInt32(libc.CplInt32(SQLITE_OPEN_URI))
+__2:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs)
+ if !(*(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0)) {
+ goto __42
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+24759, libc.VaList(bp+48, zVfs))
+ rc = SQLITE_ERROR
+__42:
+ ;
+parse_uri_out:
+ if !(rc != SQLITE_OK) {
+ goto __43
+ }
+ Xsqlite3_free_filename(tls, zFile)
+ zFile = uintptr(0)
+__43:
+ ;
+ *(*uint32)(unsafe.Pointer(pFlags)) = flags
+ *(*uintptr)(unsafe.Pointer(pzFile)) = zFile
+ return rc
+}
+
+type OpenMode = struct {
+ Fz uintptr
+ Fmode int32
+ F__ccgo_pad1 [4]byte
+}
+
+var aCacheMode = [3]OpenMode{
+ {Fz: ts + 24775, Fmode: SQLITE_OPEN_SHAREDCACHE},
+ {Fz: ts + 24782, Fmode: SQLITE_OPEN_PRIVATECACHE},
+ {},
+}
+var aOpenMode = [5]OpenMode{
+ {Fz: ts + 24790, Fmode: SQLITE_OPEN_READONLY},
+ {Fz: ts + 24793, Fmode: SQLITE_OPEN_READWRITE},
+ {Fz: ts + 24796, Fmode: SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE},
+ {Fz: ts + 17784, Fmode: SQLITE_OPEN_MEMORY},
+ {},
+}
+
+func uriParameter(tls *libc.TLS, zFilename uintptr, zParam uintptr) uintptr {
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ for zFilename != uintptr(0) && *(*int8)(unsafe.Pointer(zFilename)) != 0 {
+ var x int32 = libc.Xstrcmp(tls, zFilename, zParam)
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ if x == 0 {
+ return zFilename
+ }
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ }
+ return uintptr(0)
+}
+
+func openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, flags uint32, zVfs uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+ *(*uint32)(unsafe.Pointer(bp + 8)) = flags
+
+ var db uintptr
+ var rc int32
+ var isThreadsafe int32
+
+ var i int32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(ppDb)) = uintptr(0)
+ rc = Xsqlite3_initialize(tls)
+ if !(rc != 0) {
+ goto __1
+ }
+ return rc
+__1:
+ ;
+ if !(int32(Xsqlite3Config.FbCoreMutex) == 0) {
+ goto __2
+ }
+ isThreadsafe = 0
+ goto __3
+__2:
+ if !(*(*uint32)(unsafe.Pointer(bp + 8))&uint32(SQLITE_OPEN_NOMUTEX) != 0) {
+ goto __4
+ }
+ isThreadsafe = 0
+ goto __5
+__4:
+ if !(*(*uint32)(unsafe.Pointer(bp + 8))&uint32(SQLITE_OPEN_FULLMUTEX) != 0) {
+ goto __6
+ }
+ isThreadsafe = 1
+ goto __7
+__6:
+ isThreadsafe = int32(Xsqlite3Config.FbFullMutex)
+__7:
+ ;
+__5:
+ ;
+__3:
+ ;
+ if !(*(*uint32)(unsafe.Pointer(bp + 8))&uint32(SQLITE_OPEN_PRIVATECACHE) != 0) {
+ goto __8
+ }
+ *(*uint32)(unsafe.Pointer(bp + 8)) &= libc.Uint32FromInt32(libc.CplInt32(SQLITE_OPEN_SHAREDCACHE))
+ goto __9
+__8:
+ if !(Xsqlite3Config.FsharedCacheEnabled != 0) {
+ goto __10
+ }
+ *(*uint32)(unsafe.Pointer(bp + 8)) |= uint32(SQLITE_OPEN_SHAREDCACHE)
+__10:
+ ;
+__9:
+ ;
+ *(*uint32)(unsafe.Pointer(bp + 8)) &= libc.Uint32FromInt32(libc.CplInt32(SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_MAIN_DB | SQLITE_OPEN_TEMP_DB | SQLITE_OPEN_TRANSIENT_DB | SQLITE_OPEN_MAIN_JOURNAL | SQLITE_OPEN_TEMP_JOURNAL | SQLITE_OPEN_SUBJOURNAL | SQLITE_OPEN_SUPER_JOURNAL | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_WAL))
+
+ db = Xsqlite3MallocZero(tls, uint64(unsafe.Sizeof(Sqlite3{})))
+ if !(db == uintptr(0)) {
+ goto __11
+ }
+ goto opendb_out
+__11:
+ ;
+ if !(isThreadsafe != 0) {
+ goto __12
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).Fmutex = Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_RECURSIVE)
+ if !((*Sqlite3)(unsafe.Pointer(db)).Fmutex == uintptr(0)) {
+ goto __13
+ }
+ Xsqlite3_free(tls, db)
+ db = uintptr(0)
+ goto opendb_out
+__13:
+ ;
+ if !(isThreadsafe == 0) {
+ goto __14
+ }
+
+__14:
+ ;
+__12:
+ ;
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FerrMask = func() int32 {
+ if *(*uint32)(unsafe.Pointer(bp + 8))&uint32(SQLITE_OPEN_EXRESCODE) != uint32(0) {
+ return libc.Int32FromUint32(0xffffffff)
+ }
+ return 0xff
+ }()
+ (*Sqlite3)(unsafe.Pointer(db)).FnDb = 2
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_BUSY)
+ (*Sqlite3)(unsafe.Pointer(db)).FaDb = db + 696
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable = U32(1)
+ (*Sqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = U16(0)
+
+ libc.X__builtin___memcpy_chk(tls, db+136, uintptr(unsafe.Pointer(&aHardLimit)), uint64(unsafe.Sizeof([12]int32{})), libc.X__builtin_object_size(tls, db+136, 0))
+ *(*int32)(unsafe.Pointer(db + 136 + 11*4)) = SQLITE_DEFAULT_WORKER_THREADS
+ (*Sqlite3)(unsafe.Pointer(db)).FautoCommit = U8(1)
+ (*Sqlite3)(unsafe.Pointer(db)).FnextAutovac = int8(-1)
+ (*Sqlite3)(unsafe.Pointer(db)).FszMmap = Xsqlite3Config.FszMmap
+ (*Sqlite3)(unsafe.Pointer(db)).FnextPagesize = 0
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FazInit = uintptr(unsafe.Pointer(&Xsqlite3StdType))
+ *(*U64)(unsafe.Pointer(db + 48)) |= uint64(uint32(SQLITE_ShortColNames|
+ SQLITE_EnableTrigger) |
+ SQLITE_EnableView |
+ uint32(SQLITE_CacheSpill) |
+ uint32(SQLITE_TrustedSchema) |
+ uint32(SQLITE_DqsDML) |
+ uint32(SQLITE_DqsDDL) |
+ uint32(SQLITE_AutoIndex))
+ Xsqlite3HashInit(tls, db+648)
+ Xsqlite3HashInit(tls, db+576)
+
+ createCollation(tls, db, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{binCollFunc})), uintptr(0))
+ createCollation(tls, db, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{binCollFunc})), uintptr(0))
+ createCollation(tls, db, uintptr(unsafe.Pointer(&Xsqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{binCollFunc})), uintptr(0))
+ createCollation(tls, db, ts+22313, uint8(SQLITE_UTF8), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{nocaseCollatingFunc})), uintptr(0))
+ createCollation(tls, db, ts+24800, uint8(SQLITE_UTF8), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32
+ }{rtrimCollFunc})), uintptr(0))
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __15
+ }
+ goto opendb_out
+__15:
+ ;
+ (*Sqlite3)(unsafe.Pointer(db)).FopenFlags = *(*uint32)(unsafe.Pointer(bp + 8))
+
+ if !(int32(1)<<(*(*uint32)(unsafe.Pointer(bp + 8))&uint32(7))&0x46 == 0) {
+ goto __16
+ }
+ rc = Xsqlite3MisuseError(tls, 177308)
+ goto __17
+__16:
+ rc = Xsqlite3ParseUri(tls, zVfs, zFilename, bp+8, db, bp+16, bp+24)
+__17:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __18
+ }
+ if !(rc == SQLITE_NOMEM) {
+ goto __19
+ }
+ Xsqlite3OomFault(tls, db)
+__19:
+ ;
+ Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) != 0 {
+ return ts + 3658
+ }
+ return uintptr(0)
+ }(), libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 24))))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ goto opendb_out
+__18:
+ ;
+ rc = Xsqlite3BtreeOpen(tls, (*Sqlite3)(unsafe.Pointer(db)).FpVfs, *(*uintptr)(unsafe.Pointer(bp + 16)), db, (*Sqlite3)(unsafe.Pointer(db)).FaDb+8, 0,
+ int32(*(*uint32)(unsafe.Pointer(bp + 8))|uint32(SQLITE_OPEN_MAIN_DB)))
+ if !(rc != SQLITE_OK) {
+ goto __20
+ }
+ if !(rc == SQLITE_IOERR|int32(12)<<8) {
+ goto __21
+ }
+ rc = SQLITE_NOMEM
+__21:
+ ;
+ Xsqlite3Error(tls, db, rc)
+ goto opendb_out
+__20:
+ ;
+ Xsqlite3BtreeEnter(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema = Xsqlite3SchemaGet(tls, db, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt)
+ if !!(int32((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed) != 0) {
+ goto __22
+ }
+ Xsqlite3SetTextEncoding(tls, db, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).Fenc)
+__22:
+ ;
+ Xsqlite3BtreeLeave(tls, (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpBt)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FpSchema = Xsqlite3SchemaGet(tls, db, uintptr(0))
+
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FzDbSName = ts + 6844
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).Fsafety_level = U8(SQLITE_DEFAULT_SYNCHRONOUS + 1)
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).FzDbSName = ts + 23802
+ (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + 1*32)).Fsafety_level = U8(PAGER_SYNCHRONOUS_OFF)
+
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_OPEN)
+ if !((*Sqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) {
+ goto __23
+ }
+ goto opendb_out
+__23:
+ ;
+ Xsqlite3Error(tls, db, SQLITE_OK)
+ Xsqlite3RegisterPerConnectionBuiltinFunctions(tls, db)
+ rc = Xsqlite3_errcode(tls, db)
+
+ i = 0
+__24:
+ if !(rc == SQLITE_OK && i < int32(uint64(unsafe.Sizeof(sqlite3BuiltinExtensions))/uint64(unsafe.Sizeof(uintptr(0))))) {
+ goto __26
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{sqlite3BuiltinExtensions[i]})).f(tls, db)
+ goto __25
+__25:
+ i++
+ goto __24
+ goto __26
+__26:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __27
+ }
+ Xsqlite3AutoLoadExtensions(tls, db)
+ rc = Xsqlite3_errcode(tls, db)
+ if !(rc != SQLITE_OK) {
+ goto __28
+ }
+ goto opendb_out
+__28:
+ ;
+__27:
+ ;
+ if !(rc != 0) {
+ goto __29
+ }
+ Xsqlite3Error(tls, db, rc)
+__29:
+ ;
+ setupLookaside(tls, db, uintptr(0), Xsqlite3Config.FszLookaside,
+ Xsqlite3Config.FnLookaside)
+
+ Xsqlite3_wal_autocheckpoint(tls, db, SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)
+
+opendb_out:
+ if !(db != 0) {
+ goto __30
+ }
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+__30:
+ ;
+ rc = Xsqlite3_errcode(tls, db)
+
+ if !(rc&0xff == SQLITE_NOMEM) {
+ goto __31
+ }
+ Xsqlite3_close(tls, db)
+ db = uintptr(0)
+ goto __32
+__31:
+ if !(rc != SQLITE_OK) {
+ goto __33
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FeOpenState = U8(SQLITE_STATE_SICK)
+__33:
+ ;
+__32:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppDb)) = db
+ Xsqlite3_free_filename(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ return rc
+}
+
+// Open a new database handle.
+func Xsqlite3_open(tls *libc.TLS, zFilename uintptr, ppDb uintptr) int32 {
+ return openDatabase(tls, zFilename, ppDb,
+ uint32(SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE), uintptr(0))
+}
+
+func Xsqlite3_open_v2(tls *libc.TLS, filename uintptr, ppDb uintptr, flags int32, zVfs uintptr) int32 {
+ return openDatabase(tls, filename, ppDb, uint32(flags), zVfs)
+}
+
+// Open a new database handle.
+func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) int32 {
+ var zFilename8 uintptr
+ var pVal uintptr
+ var rc int32
+
+ *(*uintptr)(unsafe.Pointer(ppDb)) = uintptr(0)
+ rc = Xsqlite3_initialize(tls)
+ if rc != 0 {
+ return rc
+ }
+ if zFilename == uintptr(0) {
+ zFilename = ts + 24806
+ }
+ pVal = Xsqlite3ValueNew(tls, uintptr(0))
+ Xsqlite3ValueSetStr(tls, pVal, -1, zFilename, uint8(SQLITE_UTF16LE), uintptr(0))
+ zFilename8 = Xsqlite3ValueText(tls, pVal, uint8(SQLITE_UTF8))
+ if zFilename8 != 0 {
+ rc = openDatabase(tls, zFilename8, ppDb,
+ uint32(SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE), uintptr(0))
+
+ if rc == SQLITE_OK && !(int32((*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppDb)))).FaDb)).FpSchema)).FschemaFlags)&DB_SchemaLoaded == DB_SchemaLoaded) {
+ (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppDb)))).FaDb)).FpSchema)).Fenc = libc.AssignPtrUint8(*(*uintptr)(unsafe.Pointer(ppDb))+100, U8(SQLITE_UTF16LE))
+ }
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ Xsqlite3ValueFree(tls, pVal)
+
+ return rc & 0xff
+}
+
+// Register a new collation sequence with the database handle db.
+func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) int32 {
+ return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0))
+}
+
+// Register a new collation sequence with the database handle db.
+func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) int32 {
+ var rc int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ rc = createCollation(tls, db, zName, U8(enc), pCtx, xCompare, xDel)
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Register a new collation sequence with the database handle db.
+func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var zName8 uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ zName8 = Xsqlite3Utf16to8(tls, db, zName, -1, uint8(SQLITE_UTF16LE))
+ if zName8 != 0 {
+ rc = createCollation(tls, db, zName8, U8(enc), pCtx, xCompare, uintptr(0))
+ Xsqlite3DbFree(tls, db, zName8)
+ }
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Register a collation sequence factory callback with the database handle
+// db. Replace any previously installed collation sequence factory.
+func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// Register a collation sequence factory callback with the database handle
+// db. Replace any previously installed collation sequence factory.
+func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16
+ (*Sqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// This function is now an anachronism. It used to be used to recover from a
+// malloc() failure, but SQLite now does this automatically.
+func Xsqlite3_global_recover(tls *libc.TLS) int32 {
+ return SQLITE_OK
+}
+
+// Test to see whether or not the database connection is in autocommit
+// mode. Return TRUE if it is and FALSE if not. Autocommit mode is on
+// by default. Autocommit is disabled by a BEGIN statement and reenabled
+// by the next COMMIT or ROLLBACK.
+func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) int32 {
+ return int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit)
+}
+
+// The following routines are substitutes for constants SQLITE_CORRUPT,
+// SQLITE_MISUSE, SQLITE_CANTOPEN, SQLITE_NOMEM and possibly other error
+// constants. They serve two purposes:
+//
+// 1. Serve as a convenient place to set a breakpoint in a debugger
+// to detect when version error conditions occurs.
+//
+// 2. Invoke sqlite3_log() to provide the source code location where
+// a low-level error is first detected.
+func Xsqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ Xsqlite3_log(tls, iErr, ts+24809,
+ libc.VaList(bp, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls)))
+ return iErr
+}
+
+func Xsqlite3CorruptError(tls *libc.TLS, lineno int32) int32 {
+ return Xsqlite3ReportError(tls, SQLITE_CORRUPT, lineno, ts+24834)
+}
+
+func Xsqlite3MisuseError(tls *libc.TLS, lineno int32) int32 {
+ return Xsqlite3ReportError(tls, SQLITE_MISUSE, lineno, ts+24854)
+}
+
+func Xsqlite3CantopenError(tls *libc.TLS, lineno int32) int32 {
+ return Xsqlite3ReportError(tls, SQLITE_CANTOPEN, lineno, ts+24861)
+}
+
+// This is a convenience routine that makes sure that all thread-specific
+// data for this thread has been deallocated.
+//
+// SQLite no longer uses thread-specific data so this routine is now a
+// no-op. It is retained for historical compatibility.
+func Xsqlite3_thread_cleanup(tls *libc.TLS) {
+}
+
+// Return meta information about a specific column of a database table.
+// See comment in sqlite3.h (sqlite.h.in) for details.
+func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, zTableName uintptr, zColumnName uintptr, pzDataType uintptr, pzCollSeq uintptr, pNotNull uintptr, pPrimaryKey uintptr, pAutoinc uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32
+
+ var pTab uintptr
+ var pCol uintptr
+ var iCol int32
+ var zDataType uintptr
+ var zCollSeq uintptr
+ var notnull int32
+ var primarykey int32
+ var autoinc int32
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ pTab = uintptr(0)
+ pCol = uintptr(0)
+ iCol = 0
+ zDataType = uintptr(0)
+ zCollSeq = uintptr(0)
+ notnull = 0
+ primarykey = 0
+ autoinc = 0
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ Xsqlite3BtreeEnterAll(tls, db)
+ rc = Xsqlite3Init(tls, db, bp+24)
+ if !(SQLITE_OK != rc) {
+ goto __1
+ }
+ goto error_out
+__1:
+ ;
+ pTab = Xsqlite3FindTable(tls, db, zTableName, zDbName)
+ if !(!(pTab != 0) || int32((*Table)(unsafe.Pointer(pTab)).FeTabType) == TABTYP_VIEW) {
+ goto __2
+ }
+ pTab = uintptr(0)
+ goto error_out
+__2:
+ ;
+ if !(zColumnName == uintptr(0)) {
+ goto __3
+ }
+
+ goto __4
+__3:
+ iCol = 0
+__5:
+ if !(iCol < int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __7
+ }
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24
+ if !(0 == Xsqlite3StrICmp(tls, (*Column)(unsafe.Pointer(pCol)).FzCnName, zColumnName)) {
+ goto __8
+ }
+ goto __7
+__8:
+ ;
+ goto __6
+__6:
+ iCol++
+ goto __5
+ goto __7
+__7:
+ ;
+ if !(iCol == int32((*Table)(unsafe.Pointer(pTab)).FnCol)) {
+ goto __9
+ }
+ if !((*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_WithoutRowid) == U32(0) && Xsqlite3IsRowid(tls, zColumnName) != 0) {
+ goto __10
+ }
+ iCol = int32((*Table)(unsafe.Pointer(pTab)).FiPKey)
+ if iCol >= 0 {
+ pCol = (*Table)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*24
+ } else {
+ pCol = uintptr(0)
+ }
+ goto __11
+__10:
+ pTab = uintptr(0)
+ goto error_out
+__11:
+ ;
+__9:
+ ;
+__4:
+ ;
+ if !(pCol != 0) {
+ goto __12
+ }
+ zDataType = Xsqlite3ColumnType(tls, pCol, uintptr(0))
+ zCollSeq = Xsqlite3ColumnColl(tls, pCol)
+ notnull = libc.Bool32(int32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0) != 0)
+ primarykey = libc.Bool32(int32((*Column)(unsafe.Pointer(pCol)).FcolFlags)&COLFLAG_PRIMKEY != 0)
+ autoinc = libc.Bool32(int32((*Table)(unsafe.Pointer(pTab)).FiPKey) == iCol && (*Table)(unsafe.Pointer(pTab)).FtabFlags&U32(TF_Autoincrement) != U32(0))
+ goto __13
+__12:
+ zDataType = ts + 1112
+ primarykey = 1
+__13:
+ ;
+ if !!(zCollSeq != 0) {
+ goto __14
+ }
+ zCollSeq = uintptr(unsafe.Pointer(&Xsqlite3StrBINARY))
+__14:
+ ;
+error_out:
+ Xsqlite3BtreeLeaveAll(tls, db)
+
+ if !(pzDataType != 0) {
+ goto __15
+ }
+ *(*uintptr)(unsafe.Pointer(pzDataType)) = zDataType
+__15:
+ ;
+ if !(pzCollSeq != 0) {
+ goto __16
+ }
+ *(*uintptr)(unsafe.Pointer(pzCollSeq)) = zCollSeq
+__16:
+ ;
+ if !(pNotNull != 0) {
+ goto __17
+ }
+ *(*int32)(unsafe.Pointer(pNotNull)) = notnull
+__17:
+ ;
+ if !(pPrimaryKey != 0) {
+ goto __18
+ }
+ *(*int32)(unsafe.Pointer(pPrimaryKey)) = primarykey
+__18:
+ ;
+ if !(pAutoinc != 0) {
+ goto __19
+ }
+ *(*int32)(unsafe.Pointer(pAutoinc)) = autoinc
+__19:
+ ;
+ if !(SQLITE_OK == rc && !(pTab != 0)) {
+ goto __20
+ }
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = Xsqlite3MPrintf(tls, db, ts+24878, libc.VaList(bp, zTableName,
+ zColumnName))
+ rc = SQLITE_ERROR
+__20:
+ ;
+ Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) != 0 {
+ return ts + 3658
+ }
+ return uintptr(0)
+ }(), libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 24))))
+ Xsqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ rc = Xsqlite3ApiExit(tls, db, rc)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Sleep for a little while. Return the amount of time slept.
+func Xsqlite3_sleep(tls *libc.TLS, ms int32) int32 {
+ var pVfs uintptr
+ var rc int32
+ pVfs = Xsqlite3_vfs_find(tls, uintptr(0))
+ if pVfs == uintptr(0) {
+ return 0
+ }
+
+ rc = Xsqlite3OsSleep(tls, pVfs, 1000*ms) / 1000
+ return rc
+}
+
+// Enable or disable the extended result codes.
+func Xsqlite3_extended_result_codes(tls *libc.TLS, db uintptr, onoff int32) int32 {
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ (*Sqlite3)(unsafe.Pointer(db)).FerrMask = func() int32 {
+ if onoff != 0 {
+ return libc.Int32FromUint32(0xffffffff)
+ }
+ return 0xff
+ }()
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return SQLITE_OK
+}
+
+// Invoke the xFileControl method on a particular database.
+func Xsqlite3_file_control(tls *libc.TLS, db uintptr, zDbName uintptr, op int32, pArg uintptr) int32 {
+ var rc int32 = SQLITE_ERROR
+ var pBtree uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ pBtree = Xsqlite3DbNameToBtree(tls, db, zDbName)
+ if pBtree != 0 {
+ var pPager uintptr
+ var fd uintptr
+ Xsqlite3BtreeEnter(tls, pBtree)
+ pPager = Xsqlite3BtreePager(tls, pBtree)
+
+ fd = Xsqlite3PagerFile(tls, pPager)
+
+ if op == SQLITE_FCNTL_FILE_POINTER {
+ *(*uintptr)(unsafe.Pointer(pArg)) = fd
+ rc = SQLITE_OK
+ } else if op == SQLITE_FCNTL_VFS_POINTER {
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3PagerVfs(tls, pPager)
+ rc = SQLITE_OK
+ } else if op == SQLITE_FCNTL_JOURNAL_POINTER {
+ *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3PagerJrnlFile(tls, pPager)
+ rc = SQLITE_OK
+ } else if op == SQLITE_FCNTL_DATA_VERSION {
+ *(*uint32)(unsafe.Pointer(pArg)) = Xsqlite3PagerDataVersion(tls, pPager)
+ rc = SQLITE_OK
+ } else if op == SQLITE_FCNTL_RESERVE_BYTES {
+ var iNew int32 = *(*int32)(unsafe.Pointer(pArg))
+ *(*int32)(unsafe.Pointer(pArg)) = Xsqlite3BtreeGetRequestedReserve(tls, pBtree)
+ if iNew >= 0 && iNew <= 255 {
+ Xsqlite3BtreeSetPageSize(tls, pBtree, 0, iNew, 0)
+ }
+ rc = SQLITE_OK
+ } else if op == SQLITE_FCNTL_RESET_CACHE {
+ Xsqlite3BtreeClearCache(tls, pBtree)
+ rc = SQLITE_OK
+ } else {
+ var nSave int32 = (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy
+ rc = Xsqlite3OsFileControl(tls, fd, op, pArg)
+ (*Sqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = nSave
+ }
+ Xsqlite3BtreeLeave(tls, pBtree)
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Interface to the testing logic.
+func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) int32 {
+ var rc int32 = 0
+ var ap Va_list
+ _ = ap
+ ap = va
+ switch op {
+ case SQLITE_TESTCTRL_PRNG_SAVE:
+ {
+ Xsqlite3PrngSaveState(tls)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_PRNG_RESTORE:
+ {
+ Xsqlite3PrngRestoreState(tls)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_PRNG_SEED:
+ {
+ var x int32 = libc.VaInt32(&ap)
+ var y int32
+ var db uintptr = libc.VaUintptr(&ap)
+
+ if db != 0 && libc.AssignInt32(&y, (*Schema)(unsafe.Pointer((*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb)).FpSchema)).Fschema_cookie) != 0 {
+ x = y
+ }
+ Xsqlite3Config.FiPrngSeed = uint32(x)
+ Xsqlite3_randomness(tls, 0, uintptr(0))
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_BITVEC_TEST:
+ {
+ var sz int32 = libc.VaInt32(&ap)
+ var aProg uintptr = libc.VaUintptr(&ap)
+ rc = Xsqlite3BitvecBuiltinTest(tls, sz, aProg)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_FAULT_INSTALL:
+ {
+ Xsqlite3Config.FxTestCallback = libc.VaUintptr(&ap)
+ rc = Xsqlite3FaultSim(tls, 0)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS:
+ {
+ var xBenignBegin uintptr
+ var xBenignEnd uintptr
+ xBenignBegin = libc.VaUintptr(&ap)
+ xBenignEnd = libc.VaUintptr(&ap)
+ Xsqlite3BenignMallocHooks(tls, xBenignBegin, xBenignEnd)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_PENDING_BYTE:
+ {
+ rc = Xsqlite3PendingByte
+ {
+ var newVal uint32 = libc.VaUint32(&ap)
+ if newVal != 0 {
+ Xsqlite3PendingByte = int32(newVal)
+ }
+
+ }
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_ASSERT:
+ {
+ var x int32 = 0
+
+ rc = x
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_ALWAYS:
+ {
+ var x int32 = libc.VaInt32(&ap)
+ if x != 0 {
+ rc = x
+ } else {
+ rc = 0
+ }
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_BYTEORDER:
+ {
+ rc = SQLITE_BYTEORDER*100 + SQLITE_LITTLEENDIAN*10 + SQLITE_BIGENDIAN
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_OPTIMIZATIONS:
+ {
+ var db uintptr = libc.VaUintptr(&ap)
+ (*Sqlite3)(unsafe.Pointer(db)).FdbOptFlags = libc.VaUint32(&ap)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_LOCALTIME_FAULT:
+ {
+ Xsqlite3Config.FbLocaltimeFault = libc.VaInt32(&ap)
+ if Xsqlite3Config.FbLocaltimeFault == 2 {
+ Xsqlite3Config.FxAltLocaltime = libc.VaUintptr(&ap)
+ } else {
+ Xsqlite3Config.FxAltLocaltime = uintptr(0)
+ }
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_INTERNAL_FUNCTIONS:
+ {
+ var db uintptr = libc.VaUintptr(&ap)
+ *(*U32)(unsafe.Pointer(db + 44)) ^= U32(DBFLAG_InternalFunc)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_NEVER_CORRUPT:
+ {
+ Xsqlite3Config.FneverCorrupt = libc.VaInt32(&ap)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS:
+ {
+ Xsqlite3Config.FbExtraSchemaChecks = U8(libc.VaInt32(&ap))
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD:
+ {
+ Xsqlite3Config.FiOnceResetThreshold = libc.VaInt32(&ap)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_VDBE_COVERAGE:
+ {
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_SORTER_MMAP:
+ {
+ var db uintptr = libc.VaUintptr(&ap)
+ (*Sqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap = libc.VaInt32(&ap)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_ISINIT:
+ {
+ if Xsqlite3Config.FisInit == 0 {
+ rc = SQLITE_ERROR
+ }
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_IMPOSTER:
+ {
+ var db uintptr = libc.VaUintptr(&ap)
+ var iDb int32
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ iDb = Xsqlite3FindDbName(tls, db, libc.VaUintptr(&ap))
+ if iDb >= 0 {
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FiDb = U8(iDb)
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy = U8(libc.AssignBitFieldPtr8Uint32(db+192+8, uint32(libc.VaInt32(&ap)), 1, 1, 0x2))
+ (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum = Pgno(libc.VaInt32(&ap))
+ if int32((*Sqlite3)(unsafe.Pointer(db)).Finit.Fbusy) == 0 && (*Sqlite3)(unsafe.Pointer(db)).Finit.FnewTnum > Pgno(0) {
+ Xsqlite3ResetAllSchemasOfConnection(tls, db)
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_RESULT_INTREAL:
+ {
+ var pCtx uintptr = libc.VaUintptr(&ap)
+ Xsqlite3ResultIntReal(tls, pCtx)
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_SEEK_COUNT:
+ {
+ var db uintptr = libc.VaUintptr(&ap)
+ _ = db
+ var pn uintptr = libc.VaUintptr(&ap)
+ *(*U64)(unsafe.Pointer(pn)) = uint64(0)
+ _ = db
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_TRACEFLAGS:
+ {
+ var opTrace int32 = libc.VaInt32(&ap)
+ var ptr uintptr = libc.VaUintptr(&ap)
+ switch opTrace {
+ case 0:
+ *(*U32)(unsafe.Pointer(ptr)) = Xsqlite3TreeTrace
+ break
+ case 1:
+ Xsqlite3TreeTrace = *(*U32)(unsafe.Pointer(ptr))
+ break
+ case 2:
+ *(*U32)(unsafe.Pointer(ptr)) = Xsqlite3WhereTrace
+ break
+ case 3:
+ Xsqlite3WhereTrace = *(*U32)(unsafe.Pointer(ptr))
+ break
+ }
+ break
+
+ }
+
+ case SQLITE_TESTCTRL_LOGEST:
+ {
+ var rIn float64 = libc.VaFloat64(&ap)
+ var rLogEst LogEst = Xsqlite3LogEstFromDouble(tls, rIn)
+ var pI1 uintptr = libc.VaUintptr(&ap)
+ var pU64 uintptr = libc.VaUintptr(&ap)
+ var pI2 uintptr = libc.VaUintptr(&ap)
+ *(*int32)(unsafe.Pointer(pI1)) = int32(rLogEst)
+ *(*U64)(unsafe.Pointer(pU64)) = Xsqlite3LogEstToInt(tls, rLogEst)
+ *(*int32)(unsafe.Pointer(pI2)) = int32(Xsqlite3LogEst(tls, *(*U64)(unsafe.Pointer(pU64))))
+ break
+
+ }
+
+ }
+ _ = ap
+ return rc
+}
+
+func databaseName(tls *libc.TLS, zName uintptr) uintptr {
+ for int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-1)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-2)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-3)))) != 0 || int32(*(*int8)(unsafe.Pointer(zName + libc.UintptrFromInt32(-4)))) != 0 {
+ zName--
+ }
+ return zName
+}
+
+func appendText(tls *libc.TLS, p uintptr, z uintptr) uintptr {
+ var n Size_t = libc.Xstrlen(tls, z)
+ libc.X__builtin___memcpy_chk(tls, p, z, n+uint64(1), libc.X__builtin_object_size(tls, p, 0))
+ return p + uintptr(n) + uintptr(1)
+}
+
+// Allocate memory to hold names for a database, journal file, WAL file,
+// and query parameters. The pointer returned is valid for use by
+// sqlite3_filename_database() and sqlite3_uri_parameter() and related
+// functions.
+//
+// Memory layout must be compatible with that generated by the pager
+// and expected by sqlite3_uri_parameter() and databaseName().
+func Xsqlite3_create_filename(tls *libc.TLS, zDatabase uintptr, zJournal uintptr, zWal uintptr, nParam int32, azParam uintptr) uintptr {
+ var nByte Sqlite3_int64
+ var i int32
+ var pResult uintptr
+ var p uintptr
+ nByte = Sqlite3_int64(libc.Xstrlen(tls, zDatabase) + libc.Xstrlen(tls, zJournal) + libc.Xstrlen(tls, zWal) + uint64(10))
+ for i = 0; i < nParam*2; i++ {
+ nByte = Sqlite3_int64(uint64(nByte) + (libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(azParam + uintptr(i)*8))) + uint64(1)))
+ }
+ pResult = libc.AssignUintptr(&p, Xsqlite3_malloc64(tls, uint64(nByte)))
+ if p == uintptr(0) {
+ return uintptr(0)
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(4), libc.X__builtin_object_size(tls, p, 0))
+ p += uintptr(4)
+ p = appendText(tls, p, zDatabase)
+ for i = 0; i < nParam*2; i++ {
+ p = appendText(tls, p, *(*uintptr)(unsafe.Pointer(azParam + uintptr(i)*8)))
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = int8(0)
+ p = appendText(tls, p, zJournal)
+ p = appendText(tls, p, zWal)
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = int8(0)
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = int8(0)
+
+ return pResult + uintptr(4)
+}
+
+// Free memory obtained from sqlite3_create_filename(). It is a severe
+// error to call this routine with any parameter other than a pointer
+// previously obtained from sqlite3_create_filename() or a NULL pointer.
+func Xsqlite3_free_filename(tls *libc.TLS, p uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+ p = databaseName(tls, p)
+ Xsqlite3_free(tls, p-uintptr(4))
+}
+
+// This is a utility routine, useful to VFS implementations, that checks
+// to see if a database file was a URI that contained a specific query
+// parameter, and if so obtains the value of the query parameter.
+//
+// The zFilename argument is the filename pointer passed into the xOpen()
+// method of a VFS implementation. The zParam argument is the name of the
+// query parameter we seek. This routine returns the value of the zParam
+// parameter if it exists. If the parameter does not exist, this routine
+// returns a NULL pointer.
+func Xsqlite3_uri_parameter(tls *libc.TLS, zFilename uintptr, zParam uintptr) uintptr {
+ if zFilename == uintptr(0) || zParam == uintptr(0) {
+ return uintptr(0)
+ }
+ zFilename = databaseName(tls, zFilename)
+ return uriParameter(tls, zFilename, zParam)
+}
+
+// Return a pointer to the name of Nth query parameter of the filename.
+func Xsqlite3_uri_key(tls *libc.TLS, zFilename uintptr, N int32) uintptr {
+ if zFilename == uintptr(0) || N < 0 {
+ return uintptr(0)
+ }
+ zFilename = databaseName(tls, zFilename)
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ for zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0 && libc.PostDecInt32(&N, 1) > 0 {
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ }
+ if *(*int8)(unsafe.Pointer(zFilename)) != 0 {
+ return zFilename
+ }
+ return uintptr(0)
+}
+
+// Return a boolean value for a query parameter.
+func Xsqlite3_uri_boolean(tls *libc.TLS, zFilename uintptr, zParam uintptr, bDflt int32) int32 {
+ var z uintptr = Xsqlite3_uri_parameter(tls, zFilename, zParam)
+ bDflt = libc.Bool32(bDflt != 0)
+ if z != 0 {
+ return int32(Xsqlite3GetBoolean(tls, z, uint8(bDflt)))
+ }
+ return bDflt
+}
+
+// Return a 64-bit integer value for a query parameter.
+func Xsqlite3_uri_int64(tls *libc.TLS, zFilename uintptr, zParam uintptr, bDflt Sqlite3_int64) Sqlite3_int64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var z uintptr = Xsqlite3_uri_parameter(tls, zFilename, zParam)
+
+ if z != 0 && Xsqlite3DecOrHexToI64(tls, z, bp) == 0 {
+ bDflt = *(*Sqlite3_int64)(unsafe.Pointer(bp))
+ }
+ return bDflt
+}
+
+// Translate a filename that was handed to a VFS routine into the corresponding
+// database, journal, or WAL file.
+//
+// It is an error to pass this routine a filename string that was not
+// passed into the VFS from the SQLite core. Doing so is similar to
+// passing free() a pointer that was not obtained from malloc() - it is
+// an error that we cannot easily detect but that will likely cause memory
+// corruption.
+func Xsqlite3_filename_database(tls *libc.TLS, zFilename uintptr) uintptr {
+ if zFilename == uintptr(0) {
+ return uintptr(0)
+ }
+ return databaseName(tls, zFilename)
+}
+
+func Xsqlite3_filename_journal(tls *libc.TLS, zFilename uintptr) uintptr {
+ if zFilename == uintptr(0) {
+ return uintptr(0)
+ }
+ zFilename = databaseName(tls, zFilename)
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ for zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0 {
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ }
+ return zFilename + uintptr(1)
+}
+
+func Xsqlite3_filename_wal(tls *libc.TLS, zFilename uintptr) uintptr {
+ zFilename = Xsqlite3_filename_journal(tls, zFilename)
+ if zFilename != 0 {
+ zFilename += uintptr(Xsqlite3Strlen30(tls, zFilename) + 1)
+ }
+ return zFilename
+}
+
+// Return the Btree pointer identified by zDbName. Return NULL if not found.
+func Xsqlite3DbNameToBtree(tls *libc.TLS, db uintptr, zDbName uintptr) uintptr {
+ var iDb int32
+ if zDbName != 0 {
+ iDb = Xsqlite3FindDbName(tls, db, zDbName)
+ } else {
+ iDb = 0
+ }
+ if iDb < 0 {
+ return uintptr(0)
+ }
+ return (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+}
+
+// Return the name of the N-th database schema. Return NULL if N is out
+// of range.
+func Xsqlite3_db_name(tls *libc.TLS, db uintptr, N int32) uintptr {
+ if N < 0 || N >= (*Sqlite3)(unsafe.Pointer(db)).FnDb {
+ return uintptr(0)
+ } else {
+ return (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(N)*32)).FzDbSName
+ }
+ return uintptr(0)
+}
+
+// Return the filename of the database associated with a database
+// connection.
+func Xsqlite3_db_filename(tls *libc.TLS, db uintptr, zDbName uintptr) uintptr {
+ var pBt uintptr
+ pBt = Xsqlite3DbNameToBtree(tls, db, zDbName)
+ if pBt != 0 {
+ return Xsqlite3BtreeGetFilename(tls, pBt)
+ }
+ return uintptr(0)
+}
+
+// Return 1 if database is read-only or 0 if read/write. Return -1 if
+// no such database exists.
+func Xsqlite3_db_readonly(tls *libc.TLS, db uintptr, zDbName uintptr) int32 {
+ var pBt uintptr
+ pBt = Xsqlite3DbNameToBtree(tls, db, zDbName)
+ if pBt != 0 {
+ return Xsqlite3BtreeIsReadonly(tls, pBt)
+ }
+ return -1
+}
+
+// Obtain a snapshot handle for the snapshot of database zDb currently
+// being read by handle db.
+func Xsqlite3_snapshot_get(tls *libc.TLS, db uintptr, zDb uintptr, ppSnapshot uintptr) int32 {
+ var rc int32 = SQLITE_ERROR
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0 {
+ var iDb int32 = Xsqlite3FindDbName(tls, db, zDb)
+ if iDb == 0 || iDb > 1 {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if SQLITE_TXN_WRITE != Xsqlite3BtreeTxnState(tls, pBt) {
+ rc = Xsqlite3BtreeBeginTrans(tls, pBt, 0, uintptr(0))
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerSnapshotGet(tls, Xsqlite3BtreePager(tls, pBt), ppSnapshot)
+ }
+ }
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Open a read-transaction on the snapshot idendified by pSnapshot.
+func Xsqlite3_snapshot_open(tls *libc.TLS, db uintptr, zDb uintptr, pSnapshot uintptr) int32 {
+ var rc int32 = SQLITE_ERROR
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ if int32((*Sqlite3)(unsafe.Pointer(db)).FautoCommit) == 0 {
+ var iDb int32
+ iDb = Xsqlite3FindDbName(tls, db, zDb)
+ if iDb == 0 || iDb > 1 {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if Xsqlite3BtreeTxnState(tls, pBt) != SQLITE_TXN_WRITE {
+ var pPager uintptr = Xsqlite3BtreePager(tls, pBt)
+ var bUnlock int32 = 0
+ if Xsqlite3BtreeTxnState(tls, pBt) != SQLITE_TXN_NONE {
+ if (*Sqlite3)(unsafe.Pointer(db)).FnVdbeActive == 0 {
+ rc = Xsqlite3PagerSnapshotCheck(tls, pPager, pSnapshot)
+ if rc == SQLITE_OK {
+ bUnlock = 1
+ rc = Xsqlite3BtreeCommit(tls, pBt)
+ }
+ }
+ } else {
+ rc = SQLITE_OK
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerSnapshotOpen(tls, pPager, pSnapshot)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3BtreeBeginTrans(tls, pBt, 0, uintptr(0))
+ Xsqlite3PagerSnapshotOpen(tls, pPager, uintptr(0))
+ }
+ if bUnlock != 0 {
+ Xsqlite3PagerSnapshotUnlock(tls, pPager)
+ }
+ }
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Recover as many snapshots as possible from the wal file associated with
+// schema zDb of database db.
+func Xsqlite3_snapshot_recover(tls *libc.TLS, db uintptr, zDb uintptr) int32 {
+ var rc int32 = SQLITE_ERROR
+ var iDb int32
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ iDb = Xsqlite3FindDbName(tls, db, zDb)
+ if iDb == 0 || iDb > 1 {
+ var pBt uintptr = (*Db)(unsafe.Pointer((*Sqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32)).FpBt
+ if SQLITE_TXN_NONE == Xsqlite3BtreeTxnState(tls, pBt) {
+ rc = Xsqlite3BtreeBeginTrans(tls, pBt, 0, uintptr(0))
+ if rc == SQLITE_OK {
+ rc = Xsqlite3PagerSnapshotRecover(tls, Xsqlite3BtreePager(tls, pBt))
+ Xsqlite3BtreeCommit(tls, pBt)
+ }
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// Free a snapshot handle obtained from sqlite3_snapshot_get().
+func Xsqlite3_snapshot_free(tls *libc.TLS, pSnapshot uintptr) {
+ Xsqlite3_free(tls, pSnapshot)
+}
+
+// Given the name of a compile-time option, return true if that option
+// was used and false if not.
+//
+// The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
+// is not required for a match.
+func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32
+ var n int32
+
+ var azCompileOpt uintptr
+
+ azCompileOpt = Xsqlite3CompileOptions(tls, bp)
+
+ if Xsqlite3_strnicmp(tls, zOptName, ts+24906, 7) == 0 {
+ zOptName += uintptr(7)
+ }
+ n = Xsqlite3Strlen30(tls, zOptName)
+
+ for i = 0; i < *(*int32)(unsafe.Pointer(bp)); i++ {
+ if Xsqlite3_strnicmp(tls, zOptName, *(*uintptr)(unsafe.Pointer(azCompileOpt + uintptr(i)*8)), n) == 0 &&
+ Xsqlite3IsIdChar(tls, uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(azCompileOpt + uintptr(i)*8)) + uintptr(n))))) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+// Return the N-th compile-time option string. If N is out of range,
+// return a NULL pointer.
+func Xsqlite3_compileoption_get(tls *libc.TLS, N int32) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var azCompileOpt uintptr
+ azCompileOpt = Xsqlite3CompileOptions(tls, bp)
+ if N >= 0 && N < *(*int32)(unsafe.Pointer(bp)) {
+ return *(*uintptr)(unsafe.Pointer(azCompileOpt + uintptr(N)*8))
+ }
+ return uintptr(0)
+}
+
+var sqlite3BlockedList uintptr = uintptr(0)
+
+func removeFromBlockedList(tls *libc.TLS, db uintptr) {
+ var pp uintptr
+
+ for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = *(*uintptr)(unsafe.Pointer(pp)) + 840 {
+ if *(*uintptr)(unsafe.Pointer(pp)) == db {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNextBlocked
+ break
+ }
+ }
+}
+
+func addToBlockedList(tls *libc.TLS, db uintptr) {
+ var pp uintptr
+
+ for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); *(*uintptr)(unsafe.Pointer(pp)) != 0 && (*Sqlite3)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FxUnlockNotify != (*Sqlite3)(unsafe.Pointer(db)).FxUnlockNotify; pp = *(*uintptr)(unsafe.Pointer(pp)) + 840 {
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FpNextBlocked = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = db
+}
+
+func enterMutex(tls *libc.TLS) {
+ Xsqlite3_mutex_enter(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN))
+
+}
+
+func leaveMutex(tls *libc.TLS) {
+ Xsqlite3_mutex_leave(tls, Xsqlite3MutexAlloc(tls, SQLITE_MUTEX_STATIC_MAIN))
+}
+
+// Register an unlock-notify callback.
+//
+// This is called after connection "db" has attempted some operation
+// but has received an SQLITE_LOCKED error because another connection
+// (call it pOther) in the same process was busy using the same shared
+// cache. pOther is found by looking at db->pBlockingConnection.
+//
+// If there is no blocking connection, the callback is invoked immediately,
+// before this routine returns.
+//
+// If pOther is already blocked on db, then report SQLITE_LOCKED, to indicate
+// a deadlock.
+//
+// Otherwise, make arrangements to invoke xNotify when pOther drops
+// its locks.
+//
+// Each call to this routine overrides any prior callbacks registered
+// on the same "db". If xNotify==0 then any prior callbacks are immediately
+// cancelled.
+func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, pArg uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = pArg
+
+ var rc int32 = SQLITE_OK
+
+ Xsqlite3_mutex_enter(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ enterMutex(tls)
+
+ if xNotify == uintptr(0) {
+ removeFromBlockedList(tls, db)
+ (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FxUnlockNotify = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(db)).FpUnlockArg = uintptr(0)
+ } else if uintptr(0) == (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xNotify})).f(tls, bp, 1)
+ } else {
+ var p uintptr
+
+ for p = (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection; p != 0 && p != db; p = (*Sqlite3)(unsafe.Pointer(p)).FpUnlockConnection {
+ }
+ if p != 0 {
+ rc = SQLITE_LOCKED
+ } else {
+ (*Sqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection
+ (*Sqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify
+ (*Sqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp))
+ removeFromBlockedList(tls, db)
+ addToBlockedList(tls, db)
+ }
+ }
+
+ leaveMutex(tls)
+
+ Xsqlite3ErrorWithMsg(tls, db, rc, func() uintptr {
+ if rc != 0 {
+ return ts + 24914
+ }
+ return uintptr(0)
+ }(), 0)
+ Xsqlite3_mutex_leave(tls, (*Sqlite3)(unsafe.Pointer(db)).Fmutex)
+ return rc
+}
+
+// This function is called while stepping or preparing a statement
+// associated with connection db. The operation will return SQLITE_LOCKED
+// to the user because it requires a lock that will not be available
+// until connection pBlocker concludes its current transaction.
+func Xsqlite3ConnectionBlocked(tls *libc.TLS, db uintptr, pBlocker uintptr) {
+ enterMutex(tls)
+ if (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection == uintptr(0) && (*Sqlite3)(unsafe.Pointer(db)).FpUnlockConnection == uintptr(0) {
+ addToBlockedList(tls, db)
+ }
+ (*Sqlite3)(unsafe.Pointer(db)).FpBlockingConnection = pBlocker
+ leaveMutex(tls)
+}
+
+// This function is called when
+// the transaction opened by database db has just finished. Locks held
+// by database connection db have been released.
+//
+// This function loops through each entry in the blocked connections
+// list and does the following:
+//
+// 1. If the sqlite3.pBlockingConnection member of a list entry is
+// set to db, then set pBlockingConnection=0.
+//
+// 2. If the sqlite3.pUnlockConnection member of a list entry is
+// set to db, then invoke the configured unlock-notify callback and
+// set pUnlockConnection=0.
+//
+// 3. If the two steps above mean that pBlockingConnection==0 and
+// pUnlockConnection==0, remove the entry from the blocked connections
+// list.
+func Xsqlite3ConnectionUnlocked(tls *libc.TLS, db uintptr) {
+ bp := tls.Alloc(128)
+ defer tls.Free(128)
+
+ var xUnlockNotify uintptr = uintptr(0)
+ var nArg int32 = 0
+ var pp uintptr
+ var aArg uintptr
+ var aDyn uintptr = uintptr(0)
+
+ aArg = bp
+ enterMutex(tls)
+
+ for pp = uintptr(unsafe.Pointer(&sqlite3BlockedList)); *(*uintptr)(unsafe.Pointer(pp)) != 0; {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pp))
+
+ if (*Sqlite3)(unsafe.Pointer(p)).FpBlockingConnection == db {
+ (*Sqlite3)(unsafe.Pointer(p)).FpBlockingConnection = uintptr(0)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(p)).FpUnlockConnection == db {
+ if (*Sqlite3)(unsafe.Pointer(p)).FxUnlockNotify != xUnlockNotify && nArg != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xUnlockNotify})).f(tls, aArg, nArg)
+ nArg = 0
+ }
+
+ Xsqlite3BeginBenignMalloc(tls)
+
+ if !(aDyn != 0) && nArg == int32(uint64(unsafe.Sizeof([16]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))) ||
+ aDyn != 0 && nArg == int32(uint64(Xsqlite3MallocSize(tls, aDyn))/uint64(unsafe.Sizeof(uintptr(0)))) {
+ var pNew uintptr = Xsqlite3Malloc(tls, uint64(nArg)*uint64(unsafe.Sizeof(uintptr(0)))*uint64(2))
+ if pNew != 0 {
+ libc.X__builtin___memcpy_chk(tls, pNew, aArg, uint64(nArg)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, pNew, 0))
+ Xsqlite3_free(tls, aDyn)
+ aDyn = libc.AssignUintptr(&aArg, pNew)
+ } else {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xUnlockNotify})).f(tls, aArg, nArg)
+ nArg = 0
+ }
+ }
+ Xsqlite3EndBenignMalloc(tls)
+
+ *(*uintptr)(unsafe.Pointer(aArg + uintptr(libc.PostIncInt32(&nArg, 1))*8)) = (*Sqlite3)(unsafe.Pointer(p)).FpUnlockArg
+ xUnlockNotify = (*Sqlite3)(unsafe.Pointer(p)).FxUnlockNotify
+ (*Sqlite3)(unsafe.Pointer(p)).FpUnlockConnection = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(p)).FxUnlockNotify = uintptr(0)
+ (*Sqlite3)(unsafe.Pointer(p)).FpUnlockArg = uintptr(0)
+ }
+
+ if (*Sqlite3)(unsafe.Pointer(p)).FpBlockingConnection == uintptr(0) && (*Sqlite3)(unsafe.Pointer(p)).FpUnlockConnection == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3)(unsafe.Pointer(p)).FpNextBlocked
+ (*Sqlite3)(unsafe.Pointer(p)).FpNextBlocked = uintptr(0)
+ } else {
+ pp = p + 840
+ }
+ }
+
+ if nArg != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xUnlockNotify})).f(tls, aArg, nArg)
+ }
+ Xsqlite3_free(tls, aDyn)
+ leaveMutex(tls)
+}
+
+// This is called when the database connection passed as an argument is
+// being closed. The connection is removed from the blocked list.
+func Xsqlite3ConnectionClosed(tls *libc.TLS, db uintptr) {
+ Xsqlite3ConnectionUnlocked(tls, db)
+ enterMutex(tls)
+ removeFromBlockedList(tls, db)
+
+ leaveMutex(tls)
+}
+
+var jsonIsSpace = [256]int8{
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(1), int8(1), int8(0), int8(0), int8(1), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(1), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+}
+
+// Objects
+type JsonString1 = struct {
+ FpCtx uintptr
+ FzBuf uintptr
+ FnAlloc U64
+ FnUsed U64
+ FbStatic U8
+ FbErr U8
+ FzSpace [100]int8
+ F__ccgo_pad1 [2]byte
+}
+
+// Objects
+type JsonString = JsonString1
+type JsonNode1 = struct {
+ FeType U8
+ FjnFlags U8
+ FeU U8
+ F__ccgo_pad1 [1]byte
+ Fn U32
+ Fu struct{ FzJContent uintptr }
+}
+
+type JsonNode = JsonNode1
+type JsonParse1 = struct {
+ FnNode U32
+ FnAlloc U32
+ FaNode uintptr
+ FzJson uintptr
+ FaUp uintptr
+ Foom U8
+ FnErr U8
+ FiDepth U16
+ FnJson int32
+ FiHold U32
+ F__ccgo_pad1 [4]byte
+}
+
+type JsonParse = JsonParse1
+
+var jsonType = [8]uintptr{
+ ts + 6584, ts + 7167, ts + 7172, ts + 6594, ts + 6589, ts + 8408, ts + 24937, ts + 24943,
+}
+
+func jsonZero(tls *libc.TLS, p uintptr) {
+ (*JsonString)(unsafe.Pointer(p)).FzBuf = p + 34
+ (*JsonString)(unsafe.Pointer(p)).FnAlloc = U64(unsafe.Sizeof([100]int8{}))
+ (*JsonString)(unsafe.Pointer(p)).FnUsed = uint64(0)
+ (*JsonString)(unsafe.Pointer(p)).FbStatic = U8(1)
+}
+
+func jsonInit(tls *libc.TLS, p uintptr, pCtx uintptr) {
+ (*JsonString)(unsafe.Pointer(p)).FpCtx = pCtx
+ (*JsonString)(unsafe.Pointer(p)).FbErr = U8(0)
+ jsonZero(tls, p)
+}
+
+func jsonReset(tls *libc.TLS, p uintptr) {
+ if !(int32((*JsonString)(unsafe.Pointer(p)).FbStatic) != 0) {
+ Xsqlite3_free(tls, (*JsonString)(unsafe.Pointer(p)).FzBuf)
+ }
+ jsonZero(tls, p)
+}
+
+func jsonOom(tls *libc.TLS, p uintptr) {
+ (*JsonString)(unsafe.Pointer(p)).FbErr = U8(1)
+ Xsqlite3_result_error_nomem(tls, (*JsonString)(unsafe.Pointer(p)).FpCtx)
+ jsonReset(tls, p)
+}
+
+func jsonGrow(tls *libc.TLS, p uintptr, N U32) int32 {
+ var nTotal U64
+ if U64(N) < (*JsonString)(unsafe.Pointer(p)).FnAlloc {
+ nTotal = (*JsonString)(unsafe.Pointer(p)).FnAlloc * uint64(2)
+ } else {
+ nTotal = (*JsonString)(unsafe.Pointer(p)).FnAlloc + U64(N) + uint64(10)
+ }
+ var zNew uintptr
+ if (*JsonString)(unsafe.Pointer(p)).FbStatic != 0 {
+ if (*JsonString)(unsafe.Pointer(p)).FbErr != 0 {
+ return 1
+ }
+ zNew = Xsqlite3_malloc64(tls, nTotal)
+ if zNew == uintptr(0) {
+ jsonOom(tls, p)
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, zNew, (*JsonString)(unsafe.Pointer(p)).FzBuf, (*JsonString)(unsafe.Pointer(p)).FnUsed, libc.X__builtin_object_size(tls, zNew, 0))
+ (*JsonString)(unsafe.Pointer(p)).FzBuf = zNew
+ (*JsonString)(unsafe.Pointer(p)).FbStatic = U8(0)
+ } else {
+ zNew = Xsqlite3_realloc64(tls, (*JsonString)(unsafe.Pointer(p)).FzBuf, nTotal)
+ if zNew == uintptr(0) {
+ jsonOom(tls, p)
+ return SQLITE_NOMEM
+ }
+ (*JsonString)(unsafe.Pointer(p)).FzBuf = zNew
+ }
+ (*JsonString)(unsafe.Pointer(p)).FnAlloc = nTotal
+ return SQLITE_OK
+}
+
+func jsonAppendRaw(tls *libc.TLS, p uintptr, zIn uintptr, N U32) {
+ if N == U32(0) {
+ return
+ }
+ if U64(N)+(*JsonString)(unsafe.Pointer(p)).FnUsed >= (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, N) != 0 {
+ return
+ }
+ libc.X__builtin___memcpy_chk(tls, (*JsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*JsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(N), libc.X__builtin_object_size(tls, (*JsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*JsonString)(unsafe.Pointer(p)).FnUsed), 0))
+ *(*U64)(unsafe.Pointer(p + 24)) += U64(N)
+}
+
+func jsonPrintf(tls *libc.TLS, N int32, p uintptr, zFormat uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ if (*JsonString)(unsafe.Pointer(p)).FnUsed+U64(N) >= (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, uint32(N)) != 0 {
+ return
+ }
+ ap = va
+ Xsqlite3_vsnprintf(tls, N, (*JsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*JsonString)(unsafe.Pointer(p)).FnUsed), zFormat, ap)
+ _ = ap
+ *(*U64)(unsafe.Pointer(p + 24)) += U64(int32(libc.Xstrlen(tls, (*JsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*JsonString)(unsafe.Pointer(p)).FnUsed))))
+}
+
+func jsonAppendChar(tls *libc.TLS, p uintptr, c int8) {
+ if (*JsonString)(unsafe.Pointer(p)).FnUsed >= (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, uint32(1)) != 0 {
+ return
+ }
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = c
+}
+
+func jsonAppendSeparator(tls *libc.TLS, p uintptr) {
+ var c int8
+ if (*JsonString)(unsafe.Pointer(p)).FnUsed == uint64(0) {
+ return
+ }
+ c = *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*JsonString)(unsafe.Pointer(p)).FnUsed-uint64(1))))
+ if int32(c) != '[' && int32(c) != '{' {
+ jsonAppendChar(tls, p, int8(','))
+ }
+}
+
+func jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N U32) {
+ var i U32
+ var c uint8
+ if !(zIn == uintptr(0) || U64(N)+(*JsonString)(unsafe.Pointer(p)).FnUsed+uint64(2) >= (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, N+U32(2)) != 0) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('"')
+ i = U32(0)
+__2:
+ if !(i < N) {
+ goto __4
+ }
+ c = *(*uint8)(unsafe.Pointer(zIn + uintptr(i)))
+ if !(int32(c) == '"' || int32(c) == '\\') {
+ goto __5
+ }
+json_simple_escape:
+ if !((*JsonString)(unsafe.Pointer(p)).FnUsed+U64(N)+uint64(3)-U64(i) > (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, N+U32(3)-i) != 0) {
+ goto __7
+ }
+ return
+__7:
+ ;
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('\\')
+ goto __6
+__5:
+ if !(int32(c) <= 0x1f) {
+ goto __8
+ }
+
+ if !(aSpecial[c] != 0) {
+ goto __9
+ }
+ c = uint8(aSpecial[c])
+ goto json_simple_escape
+__9:
+ ;
+ if !((*JsonString)(unsafe.Pointer(p)).FnUsed+U64(N)+uint64(7)+U64(i) > (*JsonString)(unsafe.Pointer(p)).FnAlloc && jsonGrow(tls, p, N+U32(7)-i) != 0) {
+ goto __10
+ }
+ return
+__10:
+ ;
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('\\')
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('u')
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('0')
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('0')
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('0' + int32(c)>>4)
+ c = uint8(*(*int8)(unsafe.Pointer(ts + 24950 + uintptr(int32(c)&0xf))))
+__8:
+ ;
+__6:
+ ;
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8(c)
+ goto __3
+__3:
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+ *(*int8)(unsafe.Pointer((*JsonString)(unsafe.Pointer(p)).FzBuf + uintptr(libc.PostIncUint64(&(*JsonString)(unsafe.Pointer(p)).FnUsed, 1)))) = int8('"')
+
+}
+
+var aSpecial = [32]int8{
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8('b'), int8('t'), int8('n'), int8(0), int8('f'), int8('r'), int8(0), int8(0),
+ int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0),
+}
+
+func jsonAppendValue(tls *libc.TLS, p uintptr, pValue uintptr) {
+ switch Xsqlite3_value_type(tls, pValue) {
+ case SQLITE_NULL:
+ {
+ jsonAppendRaw(tls, p, ts+6584, uint32(4))
+ break
+
+ }
+ case SQLITE_INTEGER:
+ fallthrough
+ case SQLITE_FLOAT:
+ {
+ var z uintptr = Xsqlite3_value_text(tls, pValue)
+ var n U32 = U32(Xsqlite3_value_bytes(tls, pValue))
+ jsonAppendRaw(tls, p, z, n)
+ break
+
+ }
+ case SQLITE_TEXT:
+ {
+ var z uintptr = Xsqlite3_value_text(tls, pValue)
+ var n U32 = U32(Xsqlite3_value_bytes(tls, pValue))
+ if Xsqlite3_value_subtype(tls, pValue) == uint32(JSON_SUBTYPE) {
+ jsonAppendRaw(tls, p, z, n)
+ } else {
+ jsonAppendString(tls, p, z, n)
+ }
+ break
+
+ }
+ default:
+ {
+ if int32((*JsonString)(unsafe.Pointer(p)).FbErr) == 0 {
+ Xsqlite3_result_error(tls, (*JsonString)(unsafe.Pointer(p)).FpCtx, ts+24967, -1)
+ (*JsonString)(unsafe.Pointer(p)).FbErr = U8(2)
+ jsonReset(tls, p)
+ }
+ break
+
+ }
+ }
+}
+
+func jsonResult(tls *libc.TLS, p uintptr) {
+ if int32((*JsonString)(unsafe.Pointer(p)).FbErr) == 0 {
+ Xsqlite3_result_text64(tls, (*JsonString)(unsafe.Pointer(p)).FpCtx, (*JsonString)(unsafe.Pointer(p)).FzBuf, (*JsonString)(unsafe.Pointer(p)).FnUsed,
+ func() uintptr {
+ if (*JsonString)(unsafe.Pointer(p)).FbStatic != 0 {
+ return libc.UintptrFromInt32(-1)
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free}))
+ }(),
+ uint8(SQLITE_UTF8))
+ jsonZero(tls, p)
+ }
+
+}
+
+func jsonNodeSize(tls *libc.TLS, pNode uintptr) U32 {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) >= JSON_ARRAY {
+ return (*JsonNode)(unsafe.Pointer(pNode)).Fn + U32(1)
+ }
+ return uint32(1)
+}
+
+func jsonParseReset(tls *libc.TLS, pParse uintptr) {
+ Xsqlite3_free(tls, (*JsonParse)(unsafe.Pointer(pParse)).FaNode)
+ (*JsonParse)(unsafe.Pointer(pParse)).FaNode = uintptr(0)
+ (*JsonParse)(unsafe.Pointer(pParse)).FnNode = U32(0)
+ (*JsonParse)(unsafe.Pointer(pParse)).FnAlloc = U32(0)
+ Xsqlite3_free(tls, (*JsonParse)(unsafe.Pointer(pParse)).FaUp)
+ (*JsonParse)(unsafe.Pointer(pParse)).FaUp = uintptr(0)
+}
+
+func jsonParseFree(tls *libc.TLS, pParse uintptr) {
+ jsonParseReset(tls, pParse)
+ Xsqlite3_free(tls, pParse)
+}
+
+func jsonRenderNode(tls *libc.TLS, pNode uintptr, pOut uintptr, aReplace uintptr) {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&(JNODE_REPLACE|JNODE_PATCH) != 0 {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_REPLACE != 0 && aReplace != uintptr(0) {
+ jsonAppendValue(tls, pOut, *(*uintptr)(unsafe.Pointer(aReplace + uintptr(*(*U32)(unsafe.Pointer(pNode + 8)))*8)))
+ return
+ }
+
+ pNode = *(*uintptr)(unsafe.Pointer(pNode + 8))
+ }
+ switch int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) {
+ default:
+ {
+ jsonAppendRaw(tls, pOut, ts+6584, uint32(4))
+ break
+
+ }
+ case JSON_TRUE:
+ {
+ jsonAppendRaw(tls, pOut, ts+7167, uint32(4))
+ break
+
+ }
+ case JSON_FALSE:
+ {
+ jsonAppendRaw(tls, pOut, ts+7172, uint32(5))
+ break
+
+ }
+ case JSON_STRING:
+ {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_RAW != 0 {
+ jsonAppendString(tls, pOut, *(*uintptr)(unsafe.Pointer(pNode + 8)), (*JsonNode)(unsafe.Pointer(pNode)).Fn)
+ break
+ }
+
+ }
+ fallthrough
+ case JSON_REAL:
+ fallthrough
+ case JSON_INT:
+ {
+ jsonAppendRaw(tls, pOut, *(*uintptr)(unsafe.Pointer(pNode + 8)), (*JsonNode)(unsafe.Pointer(pNode)).Fn)
+ break
+
+ }
+ case JSON_ARRAY:
+ {
+ var j U32 = U32(1)
+ jsonAppendChar(tls, pOut, int8('['))
+ for {
+ for j <= (*JsonNode)(unsafe.Pointer(pNode)).Fn {
+ if int32((*JsonNode)(unsafe.Pointer(pNode+uintptr(j)*16)).FjnFlags)&JNODE_REMOVE == 0 {
+ jsonAppendSeparator(tls, pOut)
+ jsonRenderNode(tls, pNode+uintptr(j)*16, pOut, aReplace)
+ }
+ j = j + jsonNodeSize(tls, pNode+uintptr(j)*16)
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_APPEND == 0 {
+ break
+ }
+
+ pNode = pNode + uintptr(*(*U32)(unsafe.Pointer(pNode + 8)))*16
+ j = U32(1)
+ }
+ jsonAppendChar(tls, pOut, int8(']'))
+ break
+
+ }
+ case JSON_OBJECT:
+ {
+ var j U32 = U32(1)
+ jsonAppendChar(tls, pOut, int8('{'))
+ for {
+ for j <= (*JsonNode)(unsafe.Pointer(pNode)).Fn {
+ if int32((*JsonNode)(unsafe.Pointer(pNode+uintptr(j+U32(1))*16)).FjnFlags)&JNODE_REMOVE == 0 {
+ jsonAppendSeparator(tls, pOut)
+ jsonRenderNode(tls, pNode+uintptr(j)*16, pOut, aReplace)
+ jsonAppendChar(tls, pOut, int8(':'))
+ jsonRenderNode(tls, pNode+uintptr(j+U32(1))*16, pOut, aReplace)
+ }
+ j = j + (U32(1) + jsonNodeSize(tls, pNode+uintptr(j+U32(1))*16))
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_APPEND == 0 {
+ break
+ }
+
+ pNode = pNode + uintptr(*(*U32)(unsafe.Pointer(pNode + 8)))*16
+ j = U32(1)
+ }
+ jsonAppendChar(tls, pOut, int8('}'))
+ break
+
+ }
+ }
+}
+
+func jsonReturnJson(tls *libc.TLS, pNode uintptr, pCtx uintptr, aReplace uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ jsonInit(tls, bp, pCtx)
+ jsonRenderNode(tls, pNode, bp, aReplace)
+ jsonResult(tls, bp)
+ Xsqlite3_result_subtype(tls, pCtx, uint32(JSON_SUBTYPE))
+}
+
+func jsonHexToInt(tls *libc.TLS, h int32) U8 {
+ h = h + 9*(1&(h>>6))
+ return U8(h & 0xf)
+}
+
+func jsonHexToInt4(tls *libc.TLS, z uintptr) U32 {
+ var v U32
+
+ v = U32(int32(jsonHexToInt(tls, int32(*(*int8)(unsafe.Pointer(z)))))<<12 +
+ int32(jsonHexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + 1)))))<<8 +
+ int32(jsonHexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + 2)))))<<4 +
+ int32(jsonHexToInt(tls, int32(*(*int8)(unsafe.Pointer(z + 3))))))
+ return v
+}
+
+func jsonReturn(tls *libc.TLS, pNode uintptr, pCtx uintptr, aReplace uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var v uint32
+ var i Sqlite3_int64
+ var z uintptr
+
+ var z1 uintptr
+ var vlo U32
+ var v1 U32
+ var c int8
+
+ var i1 U32
+ var n U32
+ var z2 uintptr
+ var zOut uintptr
+ var j U32
+ switch int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) {
+ default:
+ goto __2
+ case JSON_TRUE:
+ goto __3
+ case JSON_FALSE:
+ goto __4
+ case JSON_INT:
+ goto __5
+ case JSON_REAL:
+ goto __6
+ case JSON_STRING:
+ goto __7
+ case JSON_ARRAY:
+ goto __8
+ case JSON_OBJECT:
+ goto __9
+ }
+ goto __1
+__2:
+ ;
+ Xsqlite3_result_null(tls, pCtx)
+ goto __1
+
+__3:
+ Xsqlite3_result_int(tls, pCtx, 1)
+ goto __1
+
+__4:
+ Xsqlite3_result_int(tls, pCtx, 0)
+ goto __1
+
+__5:
+ i = int64(0)
+
+ z = *(*uintptr)(unsafe.Pointer(pNode + 8))
+ if !(int32(*(*int8)(unsafe.Pointer(z))) == '-') {
+ goto __10
+ }
+ z++
+__10:
+ ;
+__11:
+ if !(int32(*(*int8)(unsafe.Pointer(z))) >= '0' && int32(*(*int8)(unsafe.Pointer(z))) <= '9') {
+ goto __12
+ }
+ v = uint32(int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1)))) - '0')
+ if !(i >= (int64(0xffffffff)|int64(0x7fffffff)<<32)/int64(10)) {
+ goto __13
+ }
+ if !(i > (int64(0xffffffff)|int64(0x7fffffff)<<32)/int64(10)) {
+ goto __14
+ }
+ goto int_as_real
+__14:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(z))) >= '0' && int32(*(*int8)(unsafe.Pointer(z))) <= '9') {
+ goto __15
+ }
+ goto int_as_real
+__15:
+ ;
+ if !(v == uint32(9)) {
+ goto __16
+ }
+ goto int_as_real
+__16:
+ ;
+ if !(v == uint32(8)) {
+ goto __17
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 8))))) == '-') {
+ goto __18
+ }
+ Xsqlite3_result_int64(tls, pCtx, int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32))
+ goto int_done
+ goto __19
+__18:
+ goto int_as_real
+__19:
+ ;
+__17:
+ ;
+__13:
+ ;
+ i = i*int64(10) + Sqlite3_int64(v)
+ goto __11
+__12:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 8))))) == '-') {
+ goto __20
+ }
+ i = -i
+__20:
+ ;
+ Xsqlite3_result_int64(tls, pCtx, i)
+int_done:
+ goto __1
+int_as_real:
+ ;
+__6:
+ ;
+ z1 = *(*uintptr)(unsafe.Pointer(pNode + 8))
+ Xsqlite3AtoF(tls, z1, bp, Xsqlite3Strlen30(tls, z1), uint8(SQLITE_UTF8))
+ Xsqlite3_result_double(tls, pCtx, *(*float64)(unsafe.Pointer(bp)))
+ goto __1
+
+__7:
+ ;
+ if !(int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_ESCAPE == 0) {
+ goto __21
+ }
+
+ Xsqlite3_result_text(tls, pCtx, *(*uintptr)(unsafe.Pointer(pNode + 8))+uintptr(1), int32((*JsonNode)(unsafe.Pointer(pNode)).Fn-U32(2)),
+ libc.UintptrFromInt32(-1))
+ goto __22
+__21:
+ n = (*JsonNode)(unsafe.Pointer(pNode)).Fn
+
+ z2 = *(*uintptr)(unsafe.Pointer(pNode + 8))
+ zOut = Xsqlite3_malloc(tls, int32(n+U32(1)))
+ if !(zOut == uintptr(0)) {
+ goto __23
+ }
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ goto __1
+__23:
+ ;
+ i1 = U32(1)
+ j = U32(0)
+__24:
+ if !(i1 < n-U32(1)) {
+ goto __26
+ }
+ c = *(*int8)(unsafe.Pointer(z2 + uintptr(i1)))
+ if !(int32(c) != '\\') {
+ goto __27
+ }
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = c
+ goto __28
+__27:
+ c = *(*int8)(unsafe.Pointer(z2 + uintptr(libc.PreIncUint32(&i1, 1))))
+ if !(int32(c) == 'u') {
+ goto __29
+ }
+ v1 = jsonHexToInt4(tls, z2+uintptr(i1)+uintptr(1))
+ i1 = i1 + U32(4)
+ if !(v1 == U32(0)) {
+ goto __31
+ }
+ goto __26
+__31:
+ ;
+ if !(v1 <= U32(0x7f)) {
+ goto __32
+ }
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(v1)
+ goto __33
+__32:
+ if !(v1 <= U32(0x7ff)) {
+ goto __34
+ }
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0xc0) | v1>>6)
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1&U32(0x3f))
+ goto __35
+__34:
+ if !(v1&U32(0xfc00) == U32(0xd800) &&
+ i1 < n-U32(6) &&
+ int32(*(*int8)(unsafe.Pointer(z2 + uintptr(i1+U32(1))))) == '\\' &&
+ int32(*(*int8)(unsafe.Pointer(z2 + uintptr(i1+U32(2))))) == 'u' &&
+ libc.AssignUint32(&vlo, jsonHexToInt4(tls, z2+uintptr(i1)+uintptr(3)))&U32(0xfc00) == U32(0xdc00)) {
+ goto __36
+ }
+
+ v1 = v1&U32(0x3ff)<<10 + vlo&U32(0x3ff) + U32(0x10000)
+ i1 = i1 + U32(6)
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0xf0) | v1>>18)
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1>>12&U32(0x3f))
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1>>6&U32(0x3f))
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1&U32(0x3f))
+ goto __37
+__36:
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0xe0) | v1>>12)
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1>>6&U32(0x3f))
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = int8(U32(0x80) | v1&U32(0x3f))
+__37:
+ ;
+__35:
+ ;
+__33:
+ ;
+ goto __30
+__29:
+ if !(int32(c) == 'b') {
+ goto __38
+ }
+ c = int8('\b')
+ goto __39
+__38:
+ if !(int32(c) == 'f') {
+ goto __40
+ }
+ c = int8('\f')
+ goto __41
+__40:
+ if !(int32(c) == 'n') {
+ goto __42
+ }
+ c = int8('\n')
+ goto __43
+__42:
+ if !(int32(c) == 'r') {
+ goto __44
+ }
+ c = int8('\r')
+ goto __45
+__44:
+ if !(int32(c) == 't') {
+ goto __46
+ }
+ c = int8('\t')
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+__41:
+ ;
+__39:
+ ;
+ *(*int8)(unsafe.Pointer(zOut + uintptr(libc.PostIncUint32(&j, 1)))) = c
+__30:
+ ;
+__28:
+ ;
+ goto __25
+__25:
+ i1++
+ goto __24
+ goto __26
+__26:
+ ;
+ *(*int8)(unsafe.Pointer(zOut + uintptr(j))) = int8(0)
+ Xsqlite3_result_text(tls, pCtx, zOut, int32(j), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+__22:
+ ;
+ goto __1
+
+__8:
+__9:
+ jsonReturnJson(tls, pNode, pCtx, aReplace)
+ goto __1
+
+__1:
+}
+
+func jsonParseAddNodeExpand(tls *libc.TLS, pParse uintptr, eType U32, n U32, zContent uintptr) int32 {
+ var nNew U32
+ var pNew uintptr
+
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return -1
+ }
+ nNew = (*JsonParse)(unsafe.Pointer(pParse)).FnAlloc*U32(2) + U32(10)
+ pNew = Xsqlite3_realloc64(tls, (*JsonParse)(unsafe.Pointer(pParse)).FaNode, uint64(unsafe.Sizeof(JsonNode{}))*uint64(nNew))
+ if pNew == uintptr(0) {
+ (*JsonParse)(unsafe.Pointer(pParse)).Foom = U8(1)
+ return -1
+ }
+ (*JsonParse)(unsafe.Pointer(pParse)).FnAlloc = nNew
+ (*JsonParse)(unsafe.Pointer(pParse)).FaNode = pNew
+
+ return jsonParseAddNode(tls, pParse, eType, n, zContent)
+}
+
+func jsonParseAddNode(tls *libc.TLS, pParse uintptr, eType U32, n U32, zContent uintptr) int32 {
+ var p uintptr
+ if (*JsonParse)(unsafe.Pointer(pParse)).FaNode == uintptr(0) || (*JsonParse)(unsafe.Pointer(pParse)).FnNode >= (*JsonParse)(unsafe.Pointer(pParse)).FnAlloc {
+ return jsonParseAddNodeExpand(tls, pParse, eType, n, zContent)
+ }
+ p = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr((*JsonParse)(unsafe.Pointer(pParse)).FnNode)*16
+ (*JsonNode)(unsafe.Pointer(p)).FeType = U8(eType)
+ (*JsonNode)(unsafe.Pointer(p)).FjnFlags = U8(0)
+
+ (*JsonNode)(unsafe.Pointer(p)).Fn = n
+ *(*uintptr)(unsafe.Pointer(p + 8)) = zContent
+ return int32(libc.PostIncUint32(&(*JsonParse)(unsafe.Pointer(pParse)).FnNode, 1))
+}
+
+func jsonIs4Hex(tls *libc.TLS, z uintptr) int32 {
+ var i int32
+ for i = 0; i < 4; i++ {
+ if !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&0x08 != 0) {
+ return 0
+ }
+ }
+ return 1
+}
+
+func jsonParseValue(tls *libc.TLS, pParse uintptr, i U32) int32 {
+ var c int8
+ var j U32
+ var iThis int32
+ var x int32
+ var pNode uintptr
+ var z uintptr = (*JsonParse)(unsafe.Pointer(pParse)).FzJson
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))] != 0 {
+ i++
+ }
+ if int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(z + uintptr(i))))) == '{' {
+ iThis = jsonParseAddNode(tls, pParse, uint32(JSON_OBJECT), uint32(0), uintptr(0))
+ if iThis < 0 {
+ return -1
+ }
+ for j = i + U32(1); ; j++ {
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j))))] != 0 {
+ j++
+ }
+ if int32(libc.PreIncUint16(&(*JsonParse)(unsafe.Pointer(pParse)).FiDepth, 1)) > JSON_MAX_DEPTH {
+ return -1
+ }
+ x = jsonParseValue(tls, pParse, j)
+ if x < 0 {
+ (*JsonParse)(unsafe.Pointer(pParse)).FiDepth--
+ if x == -2 && (*JsonParse)(unsafe.Pointer(pParse)).FnNode == U32(iThis)+U32(1) {
+ return int32(j + U32(1))
+ }
+ return -1
+ }
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return -1
+ }
+ pNode = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr((*JsonParse)(unsafe.Pointer(pParse)).FnNode-U32(1))*16
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) != JSON_STRING {
+ return -1
+ }
+ *(*U8)(unsafe.Pointer(pNode + 1)) |= U8(JNODE_LABEL)
+ j = U32(x)
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j))))] != 0 {
+ j++
+ }
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(j)))) != ':' {
+ return -1
+ }
+ j++
+ x = jsonParseValue(tls, pParse, j)
+ (*JsonParse)(unsafe.Pointer(pParse)).FiDepth--
+ if x < 0 {
+ return -1
+ }
+ j = U32(x)
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j))))] != 0 {
+ j++
+ }
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j)))
+ if int32(c) == ',' {
+ continue
+ }
+ if int32(c) != '}' {
+ return -1
+ }
+ break
+ }
+ (*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iThis)*16)).Fn = (*JsonParse)(unsafe.Pointer(pParse)).FnNode - U32(iThis) - U32(1)
+ return int32(j + U32(1))
+ } else if int32(c) == '[' {
+ iThis = jsonParseAddNode(tls, pParse, uint32(JSON_ARRAY), uint32(0), uintptr(0))
+ if iThis < 0 {
+ return -1
+ }
+ libc.X__builtin___memset_chk(tls, (*JsonParse)(unsafe.Pointer(pParse)).FaNode+uintptr(iThis)*16+8, 0, uint64(unsafe.Sizeof(struct{ FzJContent uintptr }{})), libc.X__builtin_object_size(tls, (*JsonParse)(unsafe.Pointer(pParse)).FaNode+uintptr(iThis)*16+8, 0))
+ for j = i + U32(1); ; j++ {
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j))))] != 0 {
+ j++
+ }
+ if int32(libc.PreIncUint16(&(*JsonParse)(unsafe.Pointer(pParse)).FiDepth, 1)) > JSON_MAX_DEPTH {
+ return -1
+ }
+ x = jsonParseValue(tls, pParse, j)
+ (*JsonParse)(unsafe.Pointer(pParse)).FiDepth--
+ if x < 0 {
+ if x == -3 && (*JsonParse)(unsafe.Pointer(pParse)).FnNode == U32(iThis)+U32(1) {
+ return int32(j + U32(1))
+ }
+ return -1
+ }
+ j = U32(x)
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j))))] != 0 {
+ j++
+ }
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j)))
+ if int32(c) == ',' {
+ continue
+ }
+ if int32(c) != ']' {
+ return -1
+ }
+ break
+ }
+ (*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iThis)*16)).Fn = (*JsonParse)(unsafe.Pointer(pParse)).FnNode - U32(iThis) - U32(1)
+ return int32(j + U32(1))
+ } else if int32(c) == '"' {
+ var jnFlags U8 = U8(0)
+ j = i + U32(1)
+ for {
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j)))
+ if int32(c)&libc.CplInt32(0x1f) == 0 {
+ return -1
+ }
+ if int32(c) == '\\' {
+ c = *(*int8)(unsafe.Pointer(z + uintptr(libc.PreIncUint32(&j, 1))))
+ if int32(c) == '"' || int32(c) == '\\' || int32(c) == '/' || int32(c) == 'b' || int32(c) == 'f' ||
+ int32(c) == 'n' || int32(c) == 'r' || int32(c) == 't' ||
+ int32(c) == 'u' && jsonIs4Hex(tls, z+uintptr(j)+uintptr(1)) != 0 {
+ jnFlags = U8(JNODE_ESCAPE)
+ } else {
+ return -1
+ }
+ } else if int32(c) == '"' {
+ break
+ }
+ j++
+ }
+ jsonParseAddNode(tls, pParse, uint32(JSON_STRING), j+U32(1)-i, z+uintptr(i))
+ if !(int32((*JsonParse)(unsafe.Pointer(pParse)).Foom) != 0) {
+ (*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr((*JsonParse)(unsafe.Pointer(pParse)).FnNode-U32(1))*16)).FjnFlags = jnFlags
+ }
+ return int32(j + U32(1))
+ } else if int32(c) == 'n' &&
+ libc.Xstrncmp(tls, z+uintptr(i), ts+6584, uint64(4)) == 0 &&
+ !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+U32(4)))))])&0x06 != 0) {
+ jsonParseAddNode(tls, pParse, uint32(JSON_NULL), uint32(0), uintptr(0))
+ return int32(i + U32(4))
+ } else if int32(c) == 't' &&
+ libc.Xstrncmp(tls, z+uintptr(i), ts+7167, uint64(4)) == 0 &&
+ !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+U32(4)))))])&0x06 != 0) {
+ jsonParseAddNode(tls, pParse, uint32(JSON_TRUE), uint32(0), uintptr(0))
+ return int32(i + U32(4))
+ } else if int32(c) == 'f' &&
+ libc.Xstrncmp(tls, z+uintptr(i), ts+7172, uint64(5)) == 0 &&
+ !(int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+U32(5)))))])&0x06 != 0) {
+ jsonParseAddNode(tls, pParse, uint32(JSON_FALSE), uint32(0), uintptr(0))
+ return int32(i + U32(5))
+ } else if int32(c) == '-' || int32(c) >= '0' && int32(c) <= '9' {
+ var seenDP U8 = U8(0)
+ var seenE U8 = U8(0)
+
+ if int32(c) <= '0' {
+ if int32(c) == '-' {
+ j = i + U32(1)
+ } else {
+ j = i
+ }
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(j)))) == '0' && int32(*(*int8)(unsafe.Pointer(z + uintptr(j+U32(1))))) >= '0' && int32(*(*int8)(unsafe.Pointer(z + uintptr(j+U32(1))))) <= '9' {
+ return -1
+ }
+ }
+ j = i + U32(1)
+ for ; ; j++ {
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j)))
+ if int32(c) >= '0' && int32(c) <= '9' {
+ continue
+ }
+ if int32(c) == '.' {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(j-U32(1))))) == '-' {
+ return -1
+ }
+ if seenDP != 0 {
+ return -1
+ }
+ seenDP = U8(1)
+ continue
+ }
+ if int32(c) == 'e' || int32(c) == 'E' {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(j-U32(1))))) < '0' {
+ return -1
+ }
+ if seenE != 0 {
+ return -1
+ }
+ seenDP = libc.AssignUint8(&seenE, U8(1))
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j+U32(1))))
+ if int32(c) == '+' || int32(c) == '-' {
+ j++
+ c = *(*int8)(unsafe.Pointer(z + uintptr(j+U32(1))))
+ }
+ if int32(c) < '0' || int32(c) > '9' {
+ return -1
+ }
+ continue
+ }
+ break
+ }
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(j-U32(1))))) < '0' {
+ return -1
+ }
+ jsonParseAddNode(tls, pParse, func() uint32 {
+ if seenDP != 0 {
+ return uint32(JSON_REAL)
+ }
+ return uint32(JSON_INT)
+ }(),
+ j-i, z+uintptr(i))
+ return int32(j)
+ } else if int32(c) == '}' {
+ return -2
+ } else if int32(c) == ']' {
+ return -3
+ } else if int32(c) == 0 {
+ return 0
+ } else {
+ return -1
+ }
+ return int32(0)
+}
+
+func jsonParse(tls *libc.TLS, pParse uintptr, pCtx uintptr, zJson uintptr) int32 {
+ var i int32
+ libc.X__builtin___memset_chk(tls, pParse, 0, uint64(unsafe.Sizeof(JsonParse{})), libc.X__builtin_object_size(tls, pParse, 0))
+ if zJson == uintptr(0) {
+ return 1
+ }
+ (*JsonParse)(unsafe.Pointer(pParse)).FzJson = zJson
+ i = jsonParseValue(tls, pParse, uint32(0))
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ i = -1
+ }
+ if i > 0 {
+ for jsonIsSpace[uint8(*(*int8)(unsafe.Pointer(zJson + uintptr(i))))] != 0 {
+ i++
+ }
+ if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 {
+ i = -1
+ }
+ }
+ if i <= 0 {
+ if pCtx != uintptr(0) {
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ } else {
+ Xsqlite3_result_error(tls, pCtx, ts+24996, -1)
+ }
+ }
+ jsonParseReset(tls, pParse)
+ return 1
+ }
+ return 0
+}
+
+func jsonParseFillInParentage(tls *libc.TLS, pParse uintptr, i U32, iParent U32) {
+ var pNode uintptr = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(i)*16
+ var j U32
+ *(*U32)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaUp + uintptr(i)*4)) = iParent
+ switch int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) {
+ case JSON_ARRAY:
+ {
+ for j = U32(1); j <= (*JsonNode)(unsafe.Pointer(pNode)).Fn; j = j + jsonNodeSize(tls, pNode+uintptr(j)*16) {
+ jsonParseFillInParentage(tls, pParse, i+j, i)
+ }
+ break
+
+ }
+ case JSON_OBJECT:
+ {
+ for j = U32(1); j <= (*JsonNode)(unsafe.Pointer(pNode)).Fn; j = j + (jsonNodeSize(tls, pNode+uintptr(j)*16+uintptr(1)*16) + U32(1)) {
+ *(*U32)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaUp + uintptr(i+j)*4)) = i
+ jsonParseFillInParentage(tls, pParse, i+j+U32(1), i)
+ }
+ break
+
+ }
+ default:
+ {
+ break
+
+ }
+ }
+}
+
+func jsonParseFindParents(tls *libc.TLS, pParse uintptr) int32 {
+ var aUp uintptr
+
+ aUp = libc.AssignPtrUintptr(pParse+24, Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(U32(0)))*uint64((*JsonParse)(unsafe.Pointer(pParse)).FnNode)))
+ if aUp == uintptr(0) {
+ (*JsonParse)(unsafe.Pointer(pParse)).Foom = U8(1)
+ return SQLITE_NOMEM
+ }
+ jsonParseFillInParentage(tls, pParse, uint32(0), uint32(0))
+ return SQLITE_OK
+}
+
+func jsonParseCached(tls *libc.TLS, pCtx uintptr, argv uintptr, pErrCtx uintptr) uintptr {
+ var zJson uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var nJson int32 = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var p uintptr
+ var pMatch uintptr = uintptr(0)
+ var iKey int32
+ var iMinKey int32 = 0
+ var iMinHold U32 = 0xffffffff
+ var iMaxHold U32 = U32(0)
+ if zJson == uintptr(0) {
+ return uintptr(0)
+ }
+ for iKey = 0; iKey < JSON_CACHE_SZ; iKey++ {
+ p = Xsqlite3_get_auxdata(tls, pCtx, -429938+iKey)
+ if p == uintptr(0) {
+ iMinKey = iKey
+ break
+ }
+ if pMatch == uintptr(0) &&
+ (*JsonParse)(unsafe.Pointer(p)).FnJson == nJson &&
+ libc.Xmemcmp(tls, (*JsonParse)(unsafe.Pointer(p)).FzJson, zJson, uint64(nJson)) == 0 {
+ (*JsonParse)(unsafe.Pointer(p)).FnErr = U8(0)
+ pMatch = p
+ } else if (*JsonParse)(unsafe.Pointer(p)).FiHold < iMinHold {
+ iMinHold = (*JsonParse)(unsafe.Pointer(p)).FiHold
+ iMinKey = iKey
+ }
+ if (*JsonParse)(unsafe.Pointer(p)).FiHold > iMaxHold {
+ iMaxHold = (*JsonParse)(unsafe.Pointer(p)).FiHold
+ }
+ }
+ if pMatch != 0 {
+ (*JsonParse)(unsafe.Pointer(pMatch)).FnErr = U8(0)
+ (*JsonParse)(unsafe.Pointer(pMatch)).FiHold = iMaxHold + U32(1)
+ return pMatch
+ }
+ p = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(JsonParse{}))+uint64(nJson)+uint64(1))
+ if p == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ return uintptr(0)
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(JsonParse{})), libc.X__builtin_object_size(tls, p, 0))
+ (*JsonParse)(unsafe.Pointer(p)).FzJson = p + 1*48
+ libc.X__builtin___memcpy_chk(tls, (*JsonParse)(unsafe.Pointer(p)).FzJson, zJson, uint64(nJson+1), libc.X__builtin_object_size(tls, (*JsonParse)(unsafe.Pointer(p)).FzJson, 0))
+ if jsonParse(tls, p, pErrCtx, (*JsonParse)(unsafe.Pointer(p)).FzJson) != 0 {
+ Xsqlite3_free(tls, p)
+ return uintptr(0)
+ }
+ (*JsonParse)(unsafe.Pointer(p)).FnJson = nJson
+ (*JsonParse)(unsafe.Pointer(p)).FiHold = iMaxHold + U32(1)
+ Xsqlite3_set_auxdata(tls, pCtx, -429938+iMinKey, p,
+ *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{jsonParseFree})))
+ return Xsqlite3_get_auxdata(tls, pCtx, -429938+iMinKey)
+}
+
+func jsonLabelCompare(tls *libc.TLS, pNode uintptr, zKey uintptr, nKey U32) int32 {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_RAW != 0 {
+ if (*JsonNode)(unsafe.Pointer(pNode)).Fn != nKey {
+ return 0
+ }
+ return libc.Bool32(libc.Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(pNode + 8)), zKey, uint64(nKey)) == 0)
+ } else {
+ if (*JsonNode)(unsafe.Pointer(pNode)).Fn != nKey+U32(2) {
+ return 0
+ }
+ return libc.Bool32(libc.Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(pNode + 8))+uintptr(1), zKey, uint64(nKey)) == 0)
+ }
+ return int32(0)
+}
+
+func jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot U32, zPath uintptr, pApnd uintptr, pzErr uintptr) uintptr {
+ var i U32
+ var j U32
+ var nKey U32
+ var zKey uintptr
+ var pRoot uintptr = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16
+ if int32(*(*int8)(unsafe.Pointer(zPath))) == 0 {
+ return pRoot
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FjnFlags)&JNODE_REPLACE != 0 {
+ return uintptr(0)
+ }
+ if int32(*(*int8)(unsafe.Pointer(zPath))) == '.' {
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FeType) != JSON_OBJECT {
+ return uintptr(0)
+ }
+ zPath++
+ if int32(*(*int8)(unsafe.Pointer(zPath))) == '"' {
+ zKey = zPath + uintptr(1)
+ for i = U32(1); *(*int8)(unsafe.Pointer(zPath + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(i)))) != '"'; i++ {
+ }
+ nKey = i - U32(1)
+ if *(*int8)(unsafe.Pointer(zPath + uintptr(i))) != 0 {
+ i++
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zPath
+ return uintptr(0)
+ }
+
+ } else {
+ zKey = zPath
+ for i = U32(0); *(*int8)(unsafe.Pointer(zPath + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(i)))) != '.' && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(i)))) != '['; i++ {
+ }
+ nKey = i
+ if nKey == U32(0) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zPath
+ return uintptr(0)
+ }
+ }
+ j = U32(1)
+ for {
+ for j <= (*JsonNode)(unsafe.Pointer(pRoot)).Fn {
+ if jsonLabelCompare(tls, pRoot+uintptr(j)*16, zKey, nKey) != 0 {
+ return jsonLookupStep(tls, pParse, iRoot+j+U32(1), zPath+uintptr(i), pApnd, pzErr)
+ }
+ j++
+ j = j + jsonNodeSize(tls, pRoot+uintptr(j)*16)
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FjnFlags)&JNODE_APPEND == 0 {
+ break
+ }
+
+ iRoot = iRoot + *(*U32)(unsafe.Pointer(pRoot + 8))
+ pRoot = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16
+ j = U32(1)
+ }
+ if pApnd != 0 {
+ var iStart U32
+ var iLabel U32
+ var pNode uintptr
+ iStart = U32(jsonParseAddNode(tls, pParse, uint32(JSON_OBJECT), uint32(2), uintptr(0)))
+ iLabel = U32(jsonParseAddNode(tls, pParse, uint32(JSON_STRING), nKey, zKey))
+ zPath += uintptr(i)
+ pNode = jsonLookupAppend(tls, pParse, zPath, pApnd, pzErr)
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return uintptr(0)
+ }
+ if pNode != 0 {
+ pRoot = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16
+
+ *(*U32)(unsafe.Pointer(pRoot + 8)) = iStart - iRoot
+ *(*U8)(unsafe.Pointer(pRoot + 1)) |= U8(JNODE_APPEND)
+
+ *(*U8)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iLabel)*16 + 1)) |= U8(JNODE_RAW)
+ }
+ return pNode
+ }
+ } else if int32(*(*int8)(unsafe.Pointer(zPath))) == '[' {
+ i = U32(0)
+ j = U32(1)
+ for int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zPath + uintptr(j))))])&0x04 != 0 {
+ i = i*U32(10) + U32(*(*int8)(unsafe.Pointer(zPath + uintptr(j)))) - U32('0')
+ j++
+ }
+ if j < U32(2) || int32(*(*int8)(unsafe.Pointer(zPath + uintptr(j)))) != ']' {
+ if int32(*(*int8)(unsafe.Pointer(zPath + 1))) == '#' {
+ var pBase uintptr = pRoot
+ var iBase int32 = int32(iRoot)
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FeType) != JSON_ARRAY {
+ return uintptr(0)
+ }
+ for {
+ for j <= (*JsonNode)(unsafe.Pointer(pBase)).Fn {
+ if int32((*JsonNode)(unsafe.Pointer(pBase+uintptr(j)*16)).FjnFlags)&JNODE_REMOVE == 0 {
+ i++
+ }
+ j = j + jsonNodeSize(tls, pBase+uintptr(j)*16)
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pBase)).FjnFlags)&JNODE_APPEND == 0 {
+ break
+ }
+
+ iBase = int32(U32(iBase) + *(*U32)(unsafe.Pointer(pBase + 8)))
+ pBase = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iBase)*16
+ j = U32(1)
+ }
+ j = U32(2)
+ if int32(*(*int8)(unsafe.Pointer(zPath + 2))) == '-' && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zPath + 3)))])&0x04 != 0 {
+ var x uint32 = uint32(0)
+ j = U32(3)
+ for __ccgo := true; __ccgo; __ccgo = int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zPath + uintptr(j))))])&0x04 != 0 {
+ x = x*uint32(10) + uint32(*(*int8)(unsafe.Pointer(zPath + uintptr(j)))) - uint32('0')
+ j++
+ }
+ if x > i {
+ return uintptr(0)
+ }
+ i = i - x
+ }
+ if int32(*(*int8)(unsafe.Pointer(zPath + uintptr(j)))) != ']' {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zPath
+ return uintptr(0)
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zPath
+ return uintptr(0)
+ }
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FeType) != JSON_ARRAY {
+ return uintptr(0)
+ }
+ zPath += uintptr(j + U32(1))
+ j = U32(1)
+ for {
+ for j <= (*JsonNode)(unsafe.Pointer(pRoot)).Fn && (i > U32(0) || int32((*JsonNode)(unsafe.Pointer(pRoot+uintptr(j)*16)).FjnFlags)&JNODE_REMOVE != 0) {
+ if int32((*JsonNode)(unsafe.Pointer(pRoot+uintptr(j)*16)).FjnFlags)&JNODE_REMOVE == 0 {
+ i--
+ }
+ j = j + jsonNodeSize(tls, pRoot+uintptr(j)*16)
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pRoot)).FjnFlags)&JNODE_APPEND == 0 {
+ break
+ }
+
+ iRoot = iRoot + *(*U32)(unsafe.Pointer(pRoot + 8))
+ pRoot = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16
+ j = U32(1)
+ }
+ if j <= (*JsonNode)(unsafe.Pointer(pRoot)).Fn {
+ return jsonLookupStep(tls, pParse, iRoot+j, zPath, pApnd, pzErr)
+ }
+ if i == U32(0) && pApnd != 0 {
+ var iStart U32
+ var pNode uintptr
+ iStart = U32(jsonParseAddNode(tls, pParse, uint32(JSON_ARRAY), uint32(1), uintptr(0)))
+ pNode = jsonLookupAppend(tls, pParse, zPath, pApnd, pzErr)
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return uintptr(0)
+ }
+ if pNode != 0 {
+ pRoot = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16
+
+ *(*U32)(unsafe.Pointer(pRoot + 8)) = iStart - iRoot
+ *(*U8)(unsafe.Pointer(pRoot + 1)) |= U8(JNODE_APPEND)
+
+ }
+ return pNode
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = zPath
+ }
+ return uintptr(0)
+}
+
+func jsonLookupAppend(tls *libc.TLS, pParse uintptr, zPath uintptr, pApnd uintptr, pzErr uintptr) uintptr {
+ *(*int32)(unsafe.Pointer(pApnd)) = 1
+ if int32(*(*int8)(unsafe.Pointer(zPath))) == 0 {
+ jsonParseAddNode(tls, pParse, uint32(JSON_NULL), uint32(0), uintptr(0))
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return uintptr(0)
+ }
+ return (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr((*JsonParse)(unsafe.Pointer(pParse)).FnNode-U32(1))*16
+ }
+ if int32(*(*int8)(unsafe.Pointer(zPath))) == '.' {
+ jsonParseAddNode(tls, pParse, uint32(JSON_OBJECT), uint32(0), uintptr(0))
+ } else if libc.Xstrncmp(tls, zPath, ts+25011, uint64(3)) == 0 {
+ jsonParseAddNode(tls, pParse, uint32(JSON_ARRAY), uint32(0), uintptr(0))
+ } else {
+ return uintptr(0)
+ }
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return uintptr(0)
+ }
+ return jsonLookupStep(tls, pParse, (*JsonParse)(unsafe.Pointer(pParse)).FnNode-U32(1), zPath, pApnd, pzErr)
+}
+
+func jsonPathSyntaxError(tls *libc.TLS, zErr uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ return Xsqlite3_mprintf(tls, ts+25015, libc.VaList(bp, zErr))
+}
+
+func jsonLookup(tls *libc.TLS, pParse uintptr, zPath uintptr, pApnd uintptr, pCtx uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNode uintptr
+ var zMsg uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ pNode = uintptr(0)
+
+ if !(zPath == uintptr(0)) {
+ goto __1
+ }
+ return uintptr(0)
+__1:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(zPath))) != '$') {
+ goto __2
+ }
+ *(*uintptr)(unsafe.Pointer(bp)) = zPath
+ goto lookup_err
+__2:
+ ;
+ zPath++
+ pNode = jsonLookupStep(tls, pParse, uint32(0), zPath, pApnd, bp)
+ if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) {
+ goto __3
+ }
+ return pNode
+__3:
+ ;
+lookup_err:
+ (*JsonParse)(unsafe.Pointer(pParse)).FnErr++
+
+ zMsg = jsonPathSyntaxError(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if !(zMsg != 0) {
+ goto __4
+ }
+ Xsqlite3_result_error(tls, pCtx, zMsg, -1)
+ Xsqlite3_free(tls, zMsg)
+ goto __5
+__4:
+ Xsqlite3_result_error_nomem(tls, pCtx)
+__5:
+ ;
+ return uintptr(0)
+}
+
+func jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var zMsg uintptr = Xsqlite3_mprintf(tls, ts+25041,
+ libc.VaList(bp, zFuncName))
+ Xsqlite3_result_error(tls, pCtx, zMsg, -1)
+ Xsqlite3_free(tls, zMsg)
+}
+
+func jsonRemoveAllNulls(tls *libc.TLS, pNode uintptr) {
+ var i int32
+ var n int32
+
+ n = int32((*JsonNode)(unsafe.Pointer(pNode)).Fn)
+ for i = 2; i <= n; i = int32(U32(i) + (jsonNodeSize(tls, pNode+uintptr(i)*16) + U32(1))) {
+ switch int32((*JsonNode)(unsafe.Pointer(pNode + uintptr(i)*16)).FeType) {
+ case JSON_NULL:
+ *(*U8)(unsafe.Pointer(pNode + uintptr(i)*16 + 1)) |= U8(JNODE_REMOVE)
+ break
+ case JSON_OBJECT:
+ jsonRemoveAllNulls(tls, pNode+uintptr(i)*16)
+ break
+ }
+ }
+}
+
+func jsonQuoteFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ _ = argc
+
+ jsonInit(tls, bp, ctx)
+ jsonAppendValue(tls, bp, *(*uintptr)(unsafe.Pointer(argv)))
+ jsonResult(tls, bp)
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+}
+
+func jsonArrayFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var i int32
+
+ jsonInit(tls, bp, ctx)
+ jsonAppendChar(tls, bp, int8('['))
+ for i = 0; i < argc; i++ {
+ jsonAppendSeparator(tls, bp)
+ jsonAppendValue(tls, bp, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ }
+ jsonAppendChar(tls, bp, int8(']'))
+ jsonResult(tls, bp)
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+}
+
+func jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ var n Sqlite3_int64 = int64(0)
+ var i U32
+ var pNode uintptr
+
+ p = jsonParseCached(tls, ctx, argv, ctx)
+ if p == uintptr(0) {
+ return
+ }
+
+ if argc == 2 {
+ var zPath uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ pNode = jsonLookup(tls, p, zPath, uintptr(0), ctx)
+ } else {
+ pNode = (*JsonParse)(unsafe.Pointer(p)).FaNode
+ }
+ if pNode == uintptr(0) {
+ return
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FeType) == JSON_ARRAY {
+ for i = U32(1); i <= (*JsonNode)(unsafe.Pointer(pNode)).Fn; n++ {
+ i = i + jsonNodeSize(tls, pNode+uintptr(i)*16)
+ }
+ }
+ Xsqlite3_result_int64(tls, ctx, n)
+}
+
+func jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var p uintptr
+ var pNode uintptr
+ var zPath uintptr
+ var flags int32 = int32(Xsqlite3_user_data(tls, ctx))
+
+ if argc < 2 {
+ return
+ }
+ p = jsonParseCached(tls, ctx, argv, ctx)
+ if p == uintptr(0) {
+ return
+ }
+ if argc == 2 {
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if zPath == uintptr(0) {
+ return
+ }
+ if flags&JSON_ABPATH != 0 {
+ if int32(*(*int8)(unsafe.Pointer(zPath))) != '$' {
+ jsonInit(tls, bp, ctx)
+ if int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zPath)))])&0x04 != 0 {
+ jsonAppendRaw(tls, bp, ts+25084, uint32(2))
+ jsonAppendRaw(tls, bp, zPath, uint32(int32(libc.Xstrlen(tls, zPath))))
+ jsonAppendRaw(tls, bp, ts+5401, uint32(2))
+ } else {
+ jsonAppendRaw(tls, bp, ts+25087, uint32(1+libc.Bool32(int32(*(*int8)(unsafe.Pointer(zPath))) != '[')))
+ jsonAppendRaw(tls, bp, zPath, uint32(int32(libc.Xstrlen(tls, zPath))))
+ jsonAppendChar(tls, bp, int8(0))
+ }
+ if (*JsonString)(unsafe.Pointer(bp)).FbErr != 0 {
+ pNode = uintptr(0)
+ } else {
+ pNode = jsonLookup(tls, p, (*JsonString)(unsafe.Pointer(bp)).FzBuf, uintptr(0), ctx)
+ }
+ jsonReset(tls, bp)
+ } else {
+ pNode = jsonLookup(tls, p, zPath, uintptr(0), ctx)
+ }
+ if pNode != 0 {
+ if flags&JSON_JSON != 0 {
+ jsonReturnJson(tls, pNode, ctx, uintptr(0))
+ } else {
+ jsonReturn(tls, pNode, ctx, uintptr(0))
+ Xsqlite3_result_subtype(tls, ctx, uint32(0))
+ }
+ }
+ } else {
+ pNode = jsonLookup(tls, p, zPath, uintptr(0), ctx)
+ if int32((*JsonParse)(unsafe.Pointer(p)).FnErr) == 0 && pNode != 0 {
+ jsonReturn(tls, pNode, ctx, uintptr(0))
+ }
+ }
+ } else {
+ var i int32
+ jsonInit(tls, bp, ctx)
+ jsonAppendChar(tls, bp, int8('['))
+ for i = 1; i < argc; i++ {
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ pNode = jsonLookup(tls, p, zPath, uintptr(0), ctx)
+ if (*JsonParse)(unsafe.Pointer(p)).FnErr != 0 {
+ break
+ }
+ jsonAppendSeparator(tls, bp)
+ if pNode != 0 {
+ jsonRenderNode(tls, pNode, bp, uintptr(0))
+ } else {
+ jsonAppendRaw(tls, bp, ts+6584, uint32(4))
+ }
+ }
+ if i == argc {
+ jsonAppendChar(tls, bp, int8(']'))
+ jsonResult(tls, bp)
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+ }
+ jsonReset(tls, bp)
+ }
+}
+
+func jsonMergePatch(tls *libc.TLS, pParse uintptr, iTarget U32, pPatch uintptr) uintptr {
+ var i U32
+ var j U32
+ var iRoot U32
+ var pTarget uintptr
+ if int32((*JsonNode)(unsafe.Pointer(pPatch)).FeType) != JSON_OBJECT {
+ return pPatch
+ }
+
+ pTarget = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iTarget)*16
+
+ if int32((*JsonNode)(unsafe.Pointer(pTarget)).FeType) != JSON_OBJECT {
+ jsonRemoveAllNulls(tls, pPatch)
+ return pPatch
+ }
+ iRoot = iTarget
+ for i = U32(1); i < (*JsonNode)(unsafe.Pointer(pPatch)).Fn; i = i + (jsonNodeSize(tls, pPatch+uintptr(i+U32(1))*16) + U32(1)) {
+ var nKey U32
+ var zKey uintptr
+
+ nKey = (*JsonNode)(unsafe.Pointer(pPatch + uintptr(i)*16)).Fn
+ zKey = *(*uintptr)(unsafe.Pointer(pPatch + uintptr(i)*16 + 8))
+
+ for j = U32(1); j < (*JsonNode)(unsafe.Pointer(pTarget)).Fn; j = j + (jsonNodeSize(tls, pTarget+uintptr(j+U32(1))*16) + U32(1)) {
+ if (*JsonNode)(unsafe.Pointer(pTarget+uintptr(j)*16)).Fn == nKey && libc.Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(pTarget + uintptr(j)*16 + 8)), zKey, uint64(nKey)) == 0 {
+ if int32((*JsonNode)(unsafe.Pointer(pTarget+uintptr(j+U32(1))*16)).FjnFlags)&(JNODE_REMOVE|JNODE_PATCH) != 0 {
+ break
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pPatch+uintptr(i+U32(1))*16)).FeType) == JSON_NULL {
+ *(*U8)(unsafe.Pointer(pTarget + uintptr(j+U32(1))*16 + 1)) |= U8(JNODE_REMOVE)
+ } else {
+ var pNew uintptr = jsonMergePatch(tls, pParse, iTarget+j+U32(1), pPatch+uintptr(i+U32(1))*16)
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ pTarget = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iTarget)*16
+ if pNew != pTarget+uintptr(j+U32(1))*16 {
+ *(*uintptr)(unsafe.Pointer(pTarget + uintptr(j+U32(1))*16 + 8)) = pNew
+ *(*U8)(unsafe.Pointer(pTarget + uintptr(j+U32(1))*16 + 1)) |= U8(JNODE_PATCH)
+ }
+ }
+ break
+ }
+ }
+ if j >= (*JsonNode)(unsafe.Pointer(pTarget)).Fn && int32((*JsonNode)(unsafe.Pointer(pPatch+uintptr(i+U32(1))*16)).FeType) != JSON_NULL {
+ var iStart int32
+ var iPatch int32
+ iStart = jsonParseAddNode(tls, pParse, uint32(JSON_OBJECT), uint32(2), uintptr(0))
+ jsonParseAddNode(tls, pParse, uint32(JSON_STRING), nKey, zKey)
+ iPatch = jsonParseAddNode(tls, pParse, uint32(JSON_TRUE), uint32(0), uintptr(0))
+ if (*JsonParse)(unsafe.Pointer(pParse)).Foom != 0 {
+ return uintptr(0)
+ }
+ jsonRemoveAllNulls(tls, pPatch)
+ pTarget = (*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iTarget)*16
+
+ *(*U8)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16 + 1)) |= U8(JNODE_APPEND)
+
+ *(*U32)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iRoot)*16 + 8)) = U32(iStart) - iRoot
+ iRoot = U32(iStart)
+
+ *(*U8)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iPatch)*16 + 1)) |= U8(JNODE_PATCH)
+ *(*uintptr)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(pParse)).FaNode + uintptr(iPatch)*16 + 8)) = pPatch + uintptr(i+U32(1))*16
+ }
+ }
+ return pTarget
+}
+
+func jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ var pResult uintptr
+
+ _ = argc
+ if jsonParse(tls, bp, ctx, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != 0 {
+ return
+ }
+ if jsonParse(tls, bp+48, ctx, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))) != 0 {
+ jsonParseReset(tls, bp)
+ return
+ }
+ pResult = jsonMergePatch(tls, bp, uint32(0), (*JsonParse)(unsafe.Pointer(bp+48)).FaNode)
+
+ if pResult != 0 {
+ jsonReturnJson(tls, pResult, ctx, uintptr(0))
+ } else {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ }
+ jsonParseReset(tls, bp)
+ jsonParseReset(tls, bp+48)
+}
+
+func jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var i int32
+
+ var z uintptr
+ var n U32
+
+ if argc&1 != 0 {
+ Xsqlite3_result_error(tls, ctx,
+ ts+25090, -1)
+ return
+ }
+ jsonInit(tls, bp, ctx)
+ jsonAppendChar(tls, bp, int8('{'))
+ for i = 0; i < argc; i = i + 2 {
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != SQLITE_TEXT {
+ Xsqlite3_result_error(tls, ctx, ts+25141, -1)
+ jsonReset(tls, bp)
+ return
+ }
+ jsonAppendSeparator(tls, bp)
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ n = U32(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))))
+ jsonAppendString(tls, bp, z, n)
+ jsonAppendChar(tls, bp, int8(':'))
+ jsonAppendValue(tls, bp, *(*uintptr)(unsafe.Pointer(argv + uintptr(i+1)*8)))
+ }
+ jsonAppendChar(tls, bp, int8('}'))
+ jsonResult(tls, bp)
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+}
+
+func jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pNode uintptr
+ var zPath uintptr
+ var i U32
+
+ if !(argc < 1) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(jsonParse(tls, bp, ctx, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != 0) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ i = U32(1)
+__3:
+ if !(i < U32(argc)) {
+ goto __5
+ }
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ if !(zPath == uintptr(0)) {
+ goto __6
+ }
+ goto remove_done
+__6:
+ ;
+ pNode = jsonLookup(tls, bp, zPath, uintptr(0), ctx)
+ if !((*JsonParse)(unsafe.Pointer(bp)).FnErr != 0) {
+ goto __7
+ }
+ goto remove_done
+__7:
+ ;
+ if !(pNode != 0) {
+ goto __8
+ }
+ *(*U8)(unsafe.Pointer(pNode + 1)) |= U8(JNODE_REMOVE)
+__8:
+ ;
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(int32((*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(bp)).FaNode)).FjnFlags)&JNODE_REMOVE == 0) {
+ goto __9
+ }
+ jsonReturnJson(tls, (*JsonParse)(unsafe.Pointer(bp)).FaNode, ctx, uintptr(0))
+__9:
+ ;
+remove_done:
+ jsonParseReset(tls, bp)
+}
+
+func jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pNode uintptr
+ var zPath uintptr
+ var i U32
+
+ if !(argc < 1) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(argc&1 == 0) {
+ goto __2
+ }
+ jsonWrongNumArgs(tls, ctx, ts+15783)
+ return
+__2:
+ ;
+ if !(jsonParse(tls, bp, ctx, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != 0) {
+ goto __3
+ }
+ return
+__3:
+ ;
+ i = U32(1)
+__4:
+ if !(i < U32(argc)) {
+ goto __6
+ }
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ pNode = jsonLookup(tls, bp, zPath, uintptr(0), ctx)
+ if !((*JsonParse)(unsafe.Pointer(bp)).FnErr != 0) {
+ goto __7
+ }
+ goto replace_err
+__7:
+ ;
+ if !(pNode != 0) {
+ goto __8
+ }
+
+ *(*U8)(unsafe.Pointer(pNode + 1)) |= U8(int32(U8(JNODE_REPLACE)))
+
+ *(*U32)(unsafe.Pointer(pNode + 8)) = i + U32(1)
+__8:
+ ;
+ goto __5
+__5:
+ i = i + U32(2)
+ goto __4
+ goto __6
+__6:
+ ;
+ if !(int32((*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(bp)).FaNode)).FjnFlags)&JNODE_REPLACE != 0) {
+ goto __9
+ }
+
+ Xsqlite3_result_value(tls, ctx, *(*uintptr)(unsafe.Pointer(argv + uintptr(*(*U32)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(bp)).FaNode + 8)))*8)))
+ goto __10
+__9:
+ jsonReturnJson(tls, (*JsonParse)(unsafe.Pointer(bp)).FaNode, ctx, argv)
+__10:
+ ;
+replace_err:
+ jsonParseReset(tls, bp)
+}
+
+func jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var pNode uintptr
+ var zPath uintptr
+ var i U32
+
+ var bIsSet int32
+ bIsSet = libc.Bool32(Xsqlite3_user_data(tls, ctx) != uintptr(0))
+
+ if !(argc < 1) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(argc&1 == 0) {
+ goto __2
+ }
+ jsonWrongNumArgs(tls, ctx, func() uintptr {
+ if bIsSet != 0 {
+ return ts + 25175
+ }
+ return ts + 25179
+ }())
+ return
+__2:
+ ;
+ if !(jsonParse(tls, bp, ctx, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))) != 0) {
+ goto __3
+ }
+ return
+__3:
+ ;
+ i = U32(1)
+__4:
+ if !(i < U32(argc)) {
+ goto __6
+ }
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ *(*int32)(unsafe.Pointer(bp + 48)) = 0
+ pNode = jsonLookup(tls, bp, zPath, bp+48, ctx)
+ if !((*JsonParse)(unsafe.Pointer(bp)).Foom != 0) {
+ goto __7
+ }
+ Xsqlite3_result_error_nomem(tls, ctx)
+ goto jsonSetDone
+ goto __8
+__7:
+ if !((*JsonParse)(unsafe.Pointer(bp)).FnErr != 0) {
+ goto __9
+ }
+ goto jsonSetDone
+ goto __10
+__9:
+ if !(pNode != 0 && (*(*int32)(unsafe.Pointer(bp + 48)) != 0 || bIsSet != 0)) {
+ goto __11
+ }
+
+ *(*U8)(unsafe.Pointer(pNode + 1)) |= U8(int32(U8(JNODE_REPLACE)))
+ *(*U32)(unsafe.Pointer(pNode + 8)) = i + U32(1)
+__11:
+ ;
+__10:
+ ;
+__8:
+ ;
+ goto __5
+__5:
+ i = i + U32(2)
+ goto __4
+ goto __6
+__6:
+ ;
+ if !(int32((*JsonNode)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(bp)).FaNode)).FjnFlags)&JNODE_REPLACE != 0) {
+ goto __12
+ }
+
+ Xsqlite3_result_value(tls, ctx, *(*uintptr)(unsafe.Pointer(argv + uintptr(*(*U32)(unsafe.Pointer((*JsonParse)(unsafe.Pointer(bp)).FaNode + 8)))*8)))
+ goto __13
+__12:
+ jsonReturnJson(tls, (*JsonParse)(unsafe.Pointer(bp)).FaNode, ctx, argv)
+__13:
+ ;
+jsonSetDone:
+ jsonParseReset(tls, bp)
+}
+
+func jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ var zPath uintptr
+ var pNode uintptr
+
+ p = jsonParseCached(tls, ctx, argv, ctx)
+ if p == uintptr(0) {
+ return
+ }
+ if argc == 2 {
+ zPath = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ pNode = jsonLookup(tls, p, zPath, uintptr(0), ctx)
+ } else {
+ pNode = (*JsonParse)(unsafe.Pointer(p)).FaNode
+ }
+ if pNode != 0 {
+ Xsqlite3_result_text(tls, ctx, jsonType[(*JsonNode)(unsafe.Pointer(pNode)).FeType], -1, uintptr(0))
+ }
+}
+
+func jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var p uintptr
+ _ = argc
+ p = jsonParseCached(tls, ctx, argv, uintptr(0))
+ Xsqlite3_result_int(tls, ctx, libc.Bool32(p != uintptr(0)))
+}
+
+func jsonArrayStep(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var pStr uintptr
+ _ = argc
+ pStr = Xsqlite3_aggregate_context(tls, ctx, int32(unsafe.Sizeof(JsonString{})))
+ if pStr != 0 {
+ if (*JsonString)(unsafe.Pointer(pStr)).FzBuf == uintptr(0) {
+ jsonInit(tls, pStr, ctx)
+ jsonAppendChar(tls, pStr, int8('['))
+ } else if (*JsonString)(unsafe.Pointer(pStr)).FnUsed > uint64(1) {
+ jsonAppendChar(tls, pStr, int8(','))
+ }
+ (*JsonString)(unsafe.Pointer(pStr)).FpCtx = ctx
+ jsonAppendValue(tls, pStr, *(*uintptr)(unsafe.Pointer(argv)))
+ }
+}
+
+func jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) {
+ var pStr uintptr
+ pStr = Xsqlite3_aggregate_context(tls, ctx, 0)
+ if pStr != 0 {
+ (*JsonString)(unsafe.Pointer(pStr)).FpCtx = ctx
+ jsonAppendChar(tls, pStr, int8(']'))
+ if (*JsonString)(unsafe.Pointer(pStr)).FbErr != 0 {
+ if int32((*JsonString)(unsafe.Pointer(pStr)).FbErr) == 1 {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ }
+
+ } else if isFinal != 0 {
+ Xsqlite3_result_text(tls, ctx, (*JsonString)(unsafe.Pointer(pStr)).FzBuf, int32((*JsonString)(unsafe.Pointer(pStr)).FnUsed),
+ func() uintptr {
+ if (*JsonString)(unsafe.Pointer(pStr)).FbStatic != 0 {
+ return libc.UintptrFromInt32(-1)
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free}))
+ }())
+ (*JsonString)(unsafe.Pointer(pStr)).FbStatic = U8(1)
+ } else {
+ Xsqlite3_result_text(tls, ctx, (*JsonString)(unsafe.Pointer(pStr)).FzBuf, int32((*JsonString)(unsafe.Pointer(pStr)).FnUsed), libc.UintptrFromInt32(-1))
+ (*JsonString)(unsafe.Pointer(pStr)).FnUsed--
+ }
+ } else {
+ Xsqlite3_result_text(tls, ctx, ts+25186, 2, uintptr(0))
+ }
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+}
+
+func jsonArrayValue(tls *libc.TLS, ctx uintptr) {
+ jsonArrayCompute(tls, ctx, 0)
+}
+
+func jsonArrayFinal(tls *libc.TLS, ctx uintptr) {
+ jsonArrayCompute(tls, ctx, 1)
+}
+
+func jsonGroupInverse(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var i uint32
+ var inStr int32 = 0
+ var nNest int32 = 0
+ var z uintptr
+ var c int8
+ var pStr uintptr
+ _ = argc
+ _ = argv
+ pStr = Xsqlite3_aggregate_context(tls, ctx, 0)
+
+ if !(pStr != 0) {
+ return
+ }
+ z = (*JsonString)(unsafe.Pointer(pStr)).FzBuf
+ for i = uint32(1); U64(i) < (*JsonString)(unsafe.Pointer(pStr)).FnUsed && (int32(libc.AssignInt8(&c, *(*int8)(unsafe.Pointer(z + uintptr(i))))) != ',' || inStr != 0 || nNest != 0); i++ {
+ if int32(c) == '"' {
+ inStr = libc.BoolInt32(!(inStr != 0))
+ } else if int32(c) == '\\' {
+ i++
+ } else if !(inStr != 0) {
+ if int32(c) == '{' || int32(c) == '[' {
+ nNest++
+ }
+ if int32(c) == '}' || int32(c) == ']' {
+ nNest--
+ }
+ }
+ }
+ if U64(i) < (*JsonString)(unsafe.Pointer(pStr)).FnUsed {
+ *(*U64)(unsafe.Pointer(pStr + 24)) -= U64(i)
+ libc.X__builtin___memmove_chk(tls, z+1, z+uintptr(i+uint32(1)), (*JsonString)(unsafe.Pointer(pStr)).FnUsed-uint64(1), libc.X__builtin_object_size(tls, z+1, 0))
+ *(*int8)(unsafe.Pointer(z + uintptr((*JsonString)(unsafe.Pointer(pStr)).FnUsed))) = int8(0)
+ } else {
+ (*JsonString)(unsafe.Pointer(pStr)).FnUsed = uint64(1)
+ }
+}
+
+func jsonObjectStep(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) {
+ var pStr uintptr
+ var z uintptr
+ var n U32
+ _ = argc
+ pStr = Xsqlite3_aggregate_context(tls, ctx, int32(unsafe.Sizeof(JsonString{})))
+ if pStr != 0 {
+ if (*JsonString)(unsafe.Pointer(pStr)).FzBuf == uintptr(0) {
+ jsonInit(tls, pStr, ctx)
+ jsonAppendChar(tls, pStr, int8('{'))
+ } else if (*JsonString)(unsafe.Pointer(pStr)).FnUsed > uint64(1) {
+ jsonAppendChar(tls, pStr, int8(','))
+ }
+ (*JsonString)(unsafe.Pointer(pStr)).FpCtx = ctx
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ n = U32(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))))
+ jsonAppendString(tls, pStr, z, n)
+ jsonAppendChar(tls, pStr, int8(':'))
+ jsonAppendValue(tls, pStr, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ }
+}
+
+func jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) {
+ var pStr uintptr
+ pStr = Xsqlite3_aggregate_context(tls, ctx, 0)
+ if pStr != 0 {
+ jsonAppendChar(tls, pStr, int8('}'))
+ if (*JsonString)(unsafe.Pointer(pStr)).FbErr != 0 {
+ if int32((*JsonString)(unsafe.Pointer(pStr)).FbErr) == 1 {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ }
+
+ } else if isFinal != 0 {
+ Xsqlite3_result_text(tls, ctx, (*JsonString)(unsafe.Pointer(pStr)).FzBuf, int32((*JsonString)(unsafe.Pointer(pStr)).FnUsed),
+ func() uintptr {
+ if (*JsonString)(unsafe.Pointer(pStr)).FbStatic != 0 {
+ return libc.UintptrFromInt32(-1)
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free}))
+ }())
+ (*JsonString)(unsafe.Pointer(pStr)).FbStatic = U8(1)
+ } else {
+ Xsqlite3_result_text(tls, ctx, (*JsonString)(unsafe.Pointer(pStr)).FzBuf, int32((*JsonString)(unsafe.Pointer(pStr)).FnUsed), libc.UintptrFromInt32(-1))
+ (*JsonString)(unsafe.Pointer(pStr)).FnUsed--
+ }
+ } else {
+ Xsqlite3_result_text(tls, ctx, ts+25189, 2, uintptr(0))
+ }
+ Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE))
+}
+
+func jsonObjectValue(tls *libc.TLS, ctx uintptr) {
+ jsonObjectCompute(tls, ctx, 0)
+}
+
+func jsonObjectFinal(tls *libc.TLS, ctx uintptr) {
+ jsonObjectCompute(tls, ctx, 1)
+}
+
+// ***************************************************************************
+//
+// The json_each virtual table
+type JsonEachCursor1 = struct {
+ Fbase Sqlite3_vtab_cursor
+ FiRowid U32
+ FiBegin U32
+ Fi U32
+ FiEnd U32
+ FeType U8
+ FbRecursive U8
+ F__ccgo_pad1 [6]byte
+ FzJson uintptr
+ FzRoot uintptr
+ FsParse JsonParse
+}
+
+// ***************************************************************************
+//
+// The json_each virtual table
+type JsonEachCursor = JsonEachCursor1
+
+func jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ var pNew uintptr
+ var rc int32
+
+ _ = pzErr
+ _ = argv
+ _ = argc
+ _ = pAux
+ rc = Xsqlite3_declare_vtab(tls, db,
+ ts+25192)
+ if rc == SQLITE_OK {
+ pNew = libc.AssignPtrUintptr(ppVtab, Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Sqlite3_vtab{}))))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Sqlite3_vtab{})), libc.X__builtin_object_size(tls, pNew, 0))
+ Xsqlite3_vtab_config(tls, db, SQLITE_VTAB_INNOCUOUS, 0)
+ }
+ return rc
+}
+
+func jsonEachDisconnect(tls *libc.TLS, pVtab uintptr) int32 {
+ Xsqlite3_free(tls, pVtab)
+ return SQLITE_OK
+}
+
+func jsonEachOpenEach(tls *libc.TLS, p uintptr, ppCursor uintptr) int32 {
+ var pCur uintptr
+
+ _ = p
+ pCur = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(JsonEachCursor{})))
+ if pCur == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pCur, 0, uint64(unsafe.Sizeof(JsonEachCursor{})), libc.X__builtin_object_size(tls, pCur, 0))
+ *(*uintptr)(unsafe.Pointer(ppCursor)) = pCur
+ return SQLITE_OK
+}
+
+func jsonEachOpenTree(tls *libc.TLS, p uintptr, ppCursor uintptr) int32 {
+ var rc int32 = jsonEachOpenEach(tls, p, ppCursor)
+ if rc == SQLITE_OK {
+ var pCur uintptr = *(*uintptr)(unsafe.Pointer(ppCursor))
+ (*JsonEachCursor)(unsafe.Pointer(pCur)).FbRecursive = U8(1)
+ }
+ return rc
+}
+
+func jsonEachCursorReset(tls *libc.TLS, p uintptr) {
+ Xsqlite3_free(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzJson)
+ Xsqlite3_free(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot)
+ jsonParseReset(tls, p+48)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid = U32(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi = U32(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd = U32(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FeType = U8(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FzJson = uintptr(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot = uintptr(0)
+}
+
+func jsonEachClose(tls *libc.TLS, cur uintptr) int32 {
+ var p uintptr = cur
+ jsonEachCursorReset(tls, p)
+ Xsqlite3_free(tls, cur)
+ return SQLITE_OK
+}
+
+func jsonEachEof(tls *libc.TLS, cur uintptr) int32 {
+ var p uintptr = cur
+ return libc.Bool32((*JsonEachCursor)(unsafe.Pointer(p)).Fi >= (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd)
+}
+
+func jsonEachNext(tls *libc.TLS, cur uintptr) int32 {
+ var p uintptr = cur
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ if int32((*JsonNode)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode+uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*16)).FjnFlags)&JNODE_LABEL != 0 {
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi++
+ }
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi++
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid++
+ if (*JsonEachCursor)(unsafe.Pointer(p)).Fi < (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd {
+ var iUp U32 = *(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*4))
+ var pUp uintptr = (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr(iUp)*16
+ (*JsonEachCursor)(unsafe.Pointer(p)).FeType = (*JsonNode)(unsafe.Pointer(pUp)).FeType
+ if int32((*JsonNode)(unsafe.Pointer(pUp)).FeType) == JSON_ARRAY {
+ if iUp == (*JsonEachCursor)(unsafe.Pointer(p)).Fi-U32(1) {
+ *(*U32)(unsafe.Pointer(pUp + 8)) = U32(0)
+ } else {
+ *(*U32)(unsafe.Pointer(pUp + 8))++
+ }
+ }
+ }
+ } else {
+ switch int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) {
+ case JSON_ARRAY:
+ {
+ *(*U32)(unsafe.Pointer(p + 16)) += jsonNodeSize(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode+uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*16)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid++
+ break
+
+ }
+ fallthrough
+ case JSON_OBJECT:
+ {
+ *(*U32)(unsafe.Pointer(p + 16)) += U32(1) + jsonNodeSize(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode+uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi+U32(1))*16)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid++
+ break
+
+ }
+ fallthrough
+ default:
+ {
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi = (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd
+ break
+
+ }
+ }
+ }
+ return SQLITE_OK
+}
+
+func jsonAppendObjectPathElement(tls *libc.TLS, pStr uintptr, pNode uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var jj int32
+ var nn int32
+ var z uintptr
+
+ z = *(*uintptr)(unsafe.Pointer(pNode + 8))
+ nn = int32((*JsonNode)(unsafe.Pointer(pNode)).Fn)
+
+ if nn > 2 && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + 1)))])&0x02 != 0 {
+ for jj = 2; jj < nn-1 && int32(Xsqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(jj))))])&0x06 != 0; jj++ {
+ }
+ if jj == nn-1 {
+ z++
+ nn = nn - 2
+ }
+ }
+ jsonPrintf(tls, nn+2, pStr, ts+25275, libc.VaList(bp, nn, z))
+}
+
+func jsonEachComputePath(tls *libc.TLS, p uintptr, pStr uintptr, i U32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNode uintptr
+ var pUp uintptr
+ var iUp U32
+ if i == U32(0) {
+ jsonAppendChar(tls, pStr, int8('$'))
+ return
+ }
+ iUp = *(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr(i)*4))
+ jsonEachComputePath(tls, p, pStr, iUp)
+ pNode = (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr(i)*16
+ pUp = (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr(iUp)*16
+ if int32((*JsonNode)(unsafe.Pointer(pUp)).FeType) == JSON_ARRAY {
+ jsonPrintf(tls, 30, pStr, ts+25281, libc.VaList(bp, *(*U32)(unsafe.Pointer(pUp + 8))))
+ } else {
+ if int32((*JsonNode)(unsafe.Pointer(pNode)).FjnFlags)&JNODE_LABEL == 0 {
+ pNode -= 16
+ }
+ jsonAppendObjectPathElement(tls, pStr, pNode)
+ }
+}
+
+func jsonEachColumn(tls *libc.TLS, cur uintptr, ctx uintptr, i int32) int32 {
+ bp := tls.Alloc(280)
+ defer tls.Free(280)
+
+ var p uintptr = cur
+ var pThis uintptr = (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*16
+ switch i {
+ case JEACH_KEY:
+ {
+ if (*JsonEachCursor)(unsafe.Pointer(p)).Fi == U32(0) {
+ break
+ }
+ if int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) == JSON_OBJECT {
+ jsonReturn(tls, pThis, ctx, uintptr(0))
+ } else if int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) == JSON_ARRAY {
+ var iKey U32
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid == U32(0) {
+ break
+ }
+
+ iKey = *(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr(*(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*4)))*16 + 8))
+ } else {
+ iKey = (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid
+ }
+ Xsqlite3_result_int64(tls, ctx, Sqlite3_int64(iKey))
+ }
+ break
+
+ }
+ case JEACH_VALUE:
+ {
+ if int32((*JsonNode)(unsafe.Pointer(pThis)).FjnFlags)&JNODE_LABEL != 0 {
+ pThis += 16
+ }
+ jsonReturn(tls, pThis, ctx, uintptr(0))
+ break
+
+ }
+ case JEACH_TYPE:
+ {
+ if int32((*JsonNode)(unsafe.Pointer(pThis)).FjnFlags)&JNODE_LABEL != 0 {
+ pThis += 16
+ }
+ Xsqlite3_result_text(tls, ctx, jsonType[(*JsonNode)(unsafe.Pointer(pThis)).FeType], -1, uintptr(0))
+ break
+
+ }
+ case JEACH_ATOM:
+ {
+ if int32((*JsonNode)(unsafe.Pointer(pThis)).FjnFlags)&JNODE_LABEL != 0 {
+ pThis += 16
+ }
+ if int32((*JsonNode)(unsafe.Pointer(pThis)).FeType) >= JSON_ARRAY {
+ break
+ }
+ jsonReturn(tls, pThis, ctx, uintptr(0))
+ break
+
+ }
+ case JEACH_ID:
+ {
+ Xsqlite3_result_int64(tls, ctx,
+ Sqlite3_int64((*JsonEachCursor)(unsafe.Pointer(p)).Fi)+Sqlite3_int64(libc.Bool32(int32((*JsonNode)(unsafe.Pointer(pThis)).FjnFlags)&JNODE_LABEL != 0)))
+ break
+
+ }
+ case JEACH_PARENT:
+ {
+ if (*JsonEachCursor)(unsafe.Pointer(p)).Fi > (*JsonEachCursor)(unsafe.Pointer(p)).FiBegin && (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ Xsqlite3_result_int64(tls, ctx, Sqlite3_int64(*(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*4))))
+ }
+ break
+
+ }
+ case JEACH_FULLKEY:
+ {
+ jsonInit(tls, bp+8, ctx)
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ jsonEachComputePath(tls, p, bp+8, (*JsonEachCursor)(unsafe.Pointer(p)).Fi)
+ } else {
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot != 0 {
+ jsonAppendRaw(tls, bp+8, (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot, uint32(int32(libc.Xstrlen(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot))))
+ } else {
+ jsonAppendChar(tls, bp+8, int8('$'))
+ }
+ if int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) == JSON_ARRAY {
+ jsonPrintf(tls, 30, bp+8, ts+25281, libc.VaList(bp, (*JsonEachCursor)(unsafe.Pointer(p)).FiRowid))
+ } else if int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) == JSON_OBJECT {
+ jsonAppendObjectPathElement(tls, bp+8, pThis)
+ }
+ }
+ jsonResult(tls, bp+8)
+ break
+
+ }
+ case JEACH_PATH:
+ {
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ jsonInit(tls, bp+144, ctx)
+ jsonEachComputePath(tls, p, bp+144, *(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*4)))
+ jsonResult(tls, bp+144)
+ break
+ }
+
+ }
+ fallthrough
+ default:
+ {
+ var zRoot uintptr = (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot
+ if zRoot == uintptr(0) {
+ zRoot = ts + 25286
+ }
+ Xsqlite3_result_text(tls, ctx, zRoot, -1, uintptr(0))
+ break
+
+ }
+ case JEACH_JSON:
+ {
+ Xsqlite3_result_text(tls, ctx, (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FzJson, -1, uintptr(0))
+ break
+
+ }
+ }
+ return SQLITE_OK
+}
+
+func jsonEachRowid(tls *libc.TLS, cur uintptr, pRowid uintptr) int32 {
+ var p uintptr = cur
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = Sqlite_int64((*JsonEachCursor)(unsafe.Pointer(p)).FiRowid)
+ return SQLITE_OK
+}
+
+func jsonEachBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var i int32
+
+ var unusableMask int32 = 0
+ var idxMask int32 = 0
+ var pConstraint uintptr
+
+ _ = tab
+ *(*int32)(unsafe.Pointer(bp)) = libc.AssignPtrInt32(bp+1*4, -1)
+ pConstraint = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint
+ i = 0
+__1:
+ if !(i < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) {
+ goto __3
+ }
+ {
+ var iCol int32
+ var iMask int32
+ if (*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < JEACH_JSON {
+ goto __2
+ }
+ iCol = (*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - JEACH_JSON
+
+ iMask = int32(1) << iCol
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 {
+ unusableMask = unusableMask | iMask
+ } else if int32((*sqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ {
+ *(*int32)(unsafe.Pointer(bp + uintptr(iCol)*4)) = i
+ idxMask = idxMask | iMask
+ }
+
+ }
+ goto __2
+__2:
+ i++
+ pConstraint += 12
+ goto __1
+ goto __3
+__3:
+ ;
+ if (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnOrderBy > 0 &&
+ (*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy)).FiColumn < 0 &&
+ int32((*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaOrderBy)).Fdesc) == 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = 1
+ }
+
+ if unusableMask & ^idxMask != 0 {
+ return SQLITE_CONSTRAINT
+ }
+ if *(*int32)(unsafe.Pointer(bp)) < 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 0
+ } else {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 1.0
+ i = *(*int32)(unsafe.Pointer(bp))
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).Fomit = uint8(1)
+ if *(*int32)(unsafe.Pointer(bp + 1*4)) < 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 1
+ } else {
+ i = *(*int32)(unsafe.Pointer(bp + 1*4))
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = 2
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(i)*8)).Fomit = uint8(1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 3
+ }
+ }
+ return SQLITE_OK
+}
+
+func jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr = cur
+ var z uintptr
+ var zRoot uintptr = uintptr(0)
+ var n Sqlite3_int64
+
+ _ = idxStr
+ _ = argc
+ jsonEachCursorReset(tls, p)
+ if idxNum == 0 {
+ return SQLITE_OK
+ }
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if z == uintptr(0) {
+ return SQLITE_OK
+ }
+ n = Sqlite3_int64(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))))
+ (*JsonEachCursor)(unsafe.Pointer(p)).FzJson = Xsqlite3_malloc64(tls, uint64(n+int64(1)))
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FzJson == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzJson, z, Size_t(n)+uint64(1), libc.X__builtin_object_size(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzJson, 0))
+ if jsonParse(tls, p+48, uintptr(0), (*JsonEachCursor)(unsafe.Pointer(p)).FzJson) != 0 {
+ var rc int32 = SQLITE_NOMEM
+ if int32((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.Foom) == 0 {
+ Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg)
+ (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, ts+24996, 0)
+ if (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 {
+ rc = SQLITE_ERROR
+ }
+ }
+ jsonEachCursorReset(tls, p)
+ return rc
+ } else if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 && jsonParseFindParents(tls, p+48) != 0 {
+ jsonEachCursorReset(tls, p)
+ return SQLITE_NOMEM
+ } else {
+ var pNode uintptr = uintptr(0)
+ if idxNum == 3 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ zRoot = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ if zRoot == uintptr(0) {
+ return SQLITE_OK
+ }
+ n = Sqlite3_int64(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))
+ (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot = Xsqlite3_malloc64(tls, uint64(n+int64(1)))
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot, zRoot, Size_t(n)+uint64(1), libc.X__builtin_object_size(tls, (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot, 0))
+ if int32(*(*int8)(unsafe.Pointer(zRoot))) != '$' {
+ *(*uintptr)(unsafe.Pointer(bp)) = zRoot
+ } else {
+ pNode = jsonLookupStep(tls, p+48, uint32(0), (*JsonEachCursor)(unsafe.Pointer(p)).FzRoot+uintptr(1), uintptr(0), bp)
+ }
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ Xsqlite3_free(tls, (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg)
+ (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = jsonPathSyntaxError(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ jsonEachCursorReset(tls, p)
+ if (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 {
+ return SQLITE_ERROR
+ }
+ return SQLITE_NOMEM
+ } else if pNode == uintptr(0) {
+ return SQLITE_OK
+ }
+ } else {
+ pNode = (*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode
+ }
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiBegin = libc.AssignPtrUint32(p+16, U32(int32((int64(pNode)-int64((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode))/16)))
+ (*JsonEachCursor)(unsafe.Pointer(p)).FeType = (*JsonNode)(unsafe.Pointer(pNode)).FeType
+ if int32((*JsonEachCursor)(unsafe.Pointer(p)).FeType) >= JSON_ARRAY {
+ *(*U32)(unsafe.Pointer(pNode + 8)) = U32(0)
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd = (*JsonEachCursor)(unsafe.Pointer(p)).Fi + (*JsonNode)(unsafe.Pointer(pNode)).Fn + U32(1)
+ if (*JsonEachCursor)(unsafe.Pointer(p)).FbRecursive != 0 {
+ (*JsonEachCursor)(unsafe.Pointer(p)).FeType = (*JsonNode)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode + uintptr(*(*U32)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaUp + uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi)*4)))*16)).FeType
+ if (*JsonEachCursor)(unsafe.Pointer(p)).Fi > U32(0) && int32((*JsonNode)(unsafe.Pointer((*JsonEachCursor)(unsafe.Pointer(p)).FsParse.FaNode+uintptr((*JsonEachCursor)(unsafe.Pointer(p)).Fi-U32(1))*16)).FjnFlags)&JNODE_LABEL != 0 {
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi--
+ }
+ } else {
+ (*JsonEachCursor)(unsafe.Pointer(p)).Fi++
+ }
+ } else {
+ (*JsonEachCursor)(unsafe.Pointer(p)).FiEnd = (*JsonEachCursor)(unsafe.Pointer(p)).Fi + U32(1)
+ }
+ }
+ return SQLITE_OK
+}
+
+var jsonEachModule = Sqlite3_module{
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+}
+
+var jsonTreeModule = Sqlite3_module{
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+}
+
+// Register JSON functions.
+func Xsqlite3RegisterJsonFunctions(tls *libc.TLS) {
+ Xsqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&aJsonFunc)), int32(uint64(unsafe.Sizeof(aJsonFunc))/uint64(unsafe.Sizeof(FuncDef{}))))
+}
+
+var aJsonFunc = [19]FuncDef{
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25288},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25293},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25304},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25304},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25322},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: uintptr(int64(JSON_JSON)), FxSFunc: 0, FzName: ts + 25335},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: uintptr(int64(JSON_SQL)), FxSFunc: 0, FzName: ts + 25338},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25342},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25354},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25366},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25377},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25388},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25400},
+ {FnArg: int8(-1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FpUserData: uintptr(int64(JSON_ISSET)), FxSFunc: 0, FzName: ts + 25413},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25422},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25422},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_DETERMINISTIC | SQLITE_FUNC_CONSTANT | SQLITE_UTF8), FxSFunc: 0, FzName: ts + 25432},
+ {FnArg: int8(1), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_SUBTYPE | SQLITE_UTF8 | SQLITE_DETERMINISTIC), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 25443},
+ {FnArg: int8(2), FfuncFlags: U32(SQLITE_FUNC_BUILTIN | SQLITE_UTF8 | 0*SQLITE_FUNC_NEEDCOLL | SQLITE_SUBTYPE | SQLITE_UTF8 | SQLITE_DETERMINISTIC), FxSFunc: 0, FxFinalize: 0, FxValue: 0, FxInverse: 0, FzName: ts + 25460}}
+
+// Register the JSON table-valued functions
+func Xsqlite3JsonTableFunctions(tls *libc.TLS, db uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var i uint32
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aMod))/uint64(unsafe.Sizeof(struct {
+ FzName uintptr
+ FpModule uintptr
+ }{})) && rc == SQLITE_OK; i++ {
+ rc = Xsqlite3_create_module(tls, db, aMod[i].FzName, aMod[i].FpModule, uintptr(0))
+ }
+ return rc
+}
+
+var aMod = [2]struct {
+ FzName uintptr
+ FpModule uintptr
+}{
+ {FzName: ts + 25478, FpModule: 0},
+ {FzName: ts + 25488, FpModule: 0},
+}
+
+type Rtree1 = struct {
+ Fbase Sqlite3_vtab
+ Fdb uintptr
+ FiNodeSize int32
+ FnDim U8
+ FnDim2 U8
+ FeCoordType U8
+ FnBytesPerCell U8
+ FinWrTrans U8
+ FnAux U8
+ FnAuxNotNull U8
+ F__ccgo_pad1 [1]byte
+ FiDepth int32
+ FzDb uintptr
+ FzName uintptr
+ FnBusy U32
+ F__ccgo_pad2 [4]byte
+ FnRowEst I64
+ FnCursor U32
+ FnNodeRef U32
+ FzReadAuxSql uintptr
+ FpDeleted uintptr
+ FiReinsertHeight int32
+ F__ccgo_pad3 [4]byte
+ FpNodeBlob uintptr
+ FpWriteNode uintptr
+ FpDeleteNode uintptr
+ FpReadRowid uintptr
+ FpWriteRowid uintptr
+ FpDeleteRowid uintptr
+ FpReadParent uintptr
+ FpWriteParent uintptr
+ FpDeleteParent uintptr
+ FpWriteAux uintptr
+ FaHash [97]uintptr
+}
+
+type Rtree = Rtree1
+type RtreeCursor1 = struct {
+ Fbase Sqlite3_vtab_cursor
+ FatEOF U8
+ FbPoint U8
+ FbAuxValid U8
+ F__ccgo_pad1 [1]byte
+ FiStrategy int32
+ FnConstraint int32
+ F__ccgo_pad2 [4]byte
+ FaConstraint uintptr
+ FnPointAlloc int32
+ FnPoint int32
+ FmxLevel int32
+ F__ccgo_pad3 [4]byte
+ FaPoint uintptr
+ FpReadAux uintptr
+ FsPoint RtreeSearchPoint
+ FaNode [5]uintptr
+ FanQueue [41]U32
+ F__ccgo_pad4 [4]byte
+}
+
+type RtreeCursor = RtreeCursor1
+type RtreeNode1 = struct {
+ FpParent uintptr
+ FiNode I64
+ FnRef int32
+ FisDirty int32
+ FzData uintptr
+ FpNext uintptr
+}
+
+type RtreeNode = RtreeNode1
+type RtreeCell1 = struct {
+ FiRowid I64
+ FaCoord [10]RtreeCoord
+}
+
+type RtreeCell = RtreeCell1
+type RtreeConstraint1 = struct {
+ FiCoord int32
+ Fop int32
+ Fu struct{ FrValue RtreeDValue }
+ FpInfo uintptr
+}
+
+type RtreeConstraint = RtreeConstraint1
+type RtreeMatchArg1 = struct {
+ FiSize U32
+ F__ccgo_pad1 [4]byte
+ Fcb RtreeGeomCallback
+ FnParam int32
+ F__ccgo_pad2 [4]byte
+ FapSqlParam uintptr
+ FaParam [1]RtreeDValue
+}
+
+type RtreeMatchArg = RtreeMatchArg1
+type RtreeGeomCallback1 = struct {
+ FxGeom uintptr
+ FxQueryFunc uintptr
+ FxDestructor uintptr
+ FpContext uintptr
+}
+
+type RtreeGeomCallback = RtreeGeomCallback1
+type RtreeCoord1 = struct{ Ff RtreeValue }
+
+type RtreeCoord = RtreeCoord1
+type RtreeSearchPoint1 = struct {
+ FrScore RtreeDValue
+ Fid Sqlite3_int64
+ FiLevel U8
+ FeWithin U8
+ FiCell U8
+ F__ccgo_pad1 [5]byte
+}
+
+type RtreeSearchPoint = RtreeSearchPoint1
+
+// If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will
+// only deal with integer coordinates. No floating point operations
+// will be done.
+type RtreeDValue = float64
+type RtreeValue = float32
+
+func readInt16(tls *libc.TLS, p uintptr) int32 {
+ return int32(*(*U8)(unsafe.Pointer(p)))<<8 + int32(*(*U8)(unsafe.Pointer(p + 1)))
+}
+
+func readCoord(tls *libc.TLS, p uintptr, pCoord uintptr) {
+ *(*U32)(unsafe.Pointer(pCoord)) = U32(*(*U8)(unsafe.Pointer(p)))<<24 + U32(*(*U8)(unsafe.Pointer(p + 1)))<<16 + U32(*(*U8)(unsafe.Pointer(p + 2)))<<8 + U32(*(*U8)(unsafe.Pointer(p + 3)))<<0
+}
+
+func readInt64(tls *libc.TLS, p uintptr) I64 {
+ return I64(U64(*(*U8)(unsafe.Pointer(p)))<<56 + U64(*(*U8)(unsafe.Pointer(p + 1)))<<48 + U64(*(*U8)(unsafe.Pointer(p + 2)))<<40 + U64(*(*U8)(unsafe.Pointer(p + 3)))<<32 + U64(*(*U8)(unsafe.Pointer(p + 4)))<<24 + U64(*(*U8)(unsafe.Pointer(p + 5)))<<16 + U64(*(*U8)(unsafe.Pointer(p + 6)))<<8 + U64(*(*U8)(unsafe.Pointer(p + 7)))<<0)
+}
+
+func writeInt16(tls *libc.TLS, p uintptr, i int32) {
+ *(*U8)(unsafe.Pointer(p)) = U8(i >> 8 & 0xFF)
+ *(*U8)(unsafe.Pointer(p + 1)) = U8(i >> 0 & 0xFF)
+}
+
+func writeCoord(tls *libc.TLS, p uintptr, pCoord uintptr) int32 {
+ var i U32
+
+ i = *(*U32)(unsafe.Pointer(pCoord))
+ *(*U8)(unsafe.Pointer(p)) = U8(i >> 24 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(p + 1)) = U8(i >> 16 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(p + 2)) = U8(i >> 8 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(p + 3)) = U8(i >> 0 & U32(0xFF))
+ return 4
+}
+
+func writeInt64(tls *libc.TLS, p uintptr, i I64) int32 {
+ *(*U8)(unsafe.Pointer(p)) = U8(i >> 56 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 1)) = U8(i >> 48 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 2)) = U8(i >> 40 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 3)) = U8(i >> 32 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 4)) = U8(i >> 24 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 5)) = U8(i >> 16 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 6)) = U8(i >> 8 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(p + 7)) = U8(i >> 0 & int64(0xFF))
+ return 8
+}
+
+func nodeReference(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ (*RtreeNode)(unsafe.Pointer(p)).FnRef++
+ }
+}
+
+func nodeZero(tls *libc.TLS, pRtree uintptr, p uintptr) {
+ libc.X__builtin___memset_chk(tls, (*RtreeNode)(unsafe.Pointer(p)).FzData+2, 0, uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-2), libc.X__builtin_object_size(tls, (*RtreeNode)(unsafe.Pointer(p)).FzData+2, 0))
+ (*RtreeNode)(unsafe.Pointer(p)).FisDirty = 1
+}
+
+func nodeHash(tls *libc.TLS, iNode I64) uint32 {
+ return uint32(iNode) % uint32(HASHSIZE)
+}
+
+func nodeHashLookup(tls *libc.TLS, pRtree uintptr, iNode I64) uintptr {
+ var p uintptr
+ for p = *(*uintptr)(unsafe.Pointer(pRtree + 192 + uintptr(nodeHash(tls, iNode))*8)); p != 0 && (*RtreeNode)(unsafe.Pointer(p)).FiNode != iNode; p = (*RtreeNode)(unsafe.Pointer(p)).FpNext {
+ }
+ return p
+}
+
+func nodeHashInsert(tls *libc.TLS, pRtree uintptr, pNode uintptr) {
+ var iHash int32
+
+ iHash = int32(nodeHash(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode))
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpNext = *(*uintptr)(unsafe.Pointer(pRtree + 192 + uintptr(iHash)*8))
+ *(*uintptr)(unsafe.Pointer(pRtree + 192 + uintptr(iHash)*8)) = pNode
+}
+
+func nodeHashDelete(tls *libc.TLS, pRtree uintptr, pNode uintptr) {
+ var pp uintptr
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FiNode != int64(0) {
+ pp = pRtree + 192 + uintptr(nodeHash(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode))*8
+ for ; *(*uintptr)(unsafe.Pointer(pp)) != pNode; pp = *(*uintptr)(unsafe.Pointer(pp)) + 32 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*RtreeNode)(unsafe.Pointer(pNode)).FpNext
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpNext = uintptr(0)
+ }
+}
+
+func nodeNew(tls *libc.TLS, pRtree uintptr, pParent uintptr) uintptr {
+ var pNode uintptr
+ pNode = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(RtreeNode{}))+uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize))
+ if pNode != 0 {
+ libc.X__builtin___memset_chk(tls, pNode, 0, uint64(unsafe.Sizeof(RtreeNode{}))+uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize), libc.X__builtin_object_size(tls, pNode, 0))
+ (*RtreeNode)(unsafe.Pointer(pNode)).FzData = pNode + 1*40
+ (*RtreeNode)(unsafe.Pointer(pNode)).FnRef = 1
+ (*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef++
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpParent = pParent
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 1
+ nodeReference(tls, pParent)
+ }
+ return pNode
+}
+
+func nodeBlobReset(tls *libc.TLS, pRtree uintptr) {
+ if (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob != 0 && int32((*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans) == 0 && (*Rtree)(unsafe.Pointer(pRtree)).FnCursor == U32(0) {
+ var pBlob uintptr = (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob
+ (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob = uintptr(0)
+ Xsqlite3_blob_close(tls, pBlob)
+ }
+}
+
+func nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode I64, pParent uintptr, ppNode uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var pNode uintptr = uintptr(0)
+
+ if libc.AssignUintptr(&pNode, nodeHashLookup(tls, pRtree, iNode)) != uintptr(0) {
+ if pParent != 0 && pParent != (*RtreeNode)(unsafe.Pointer(pNode)).FpParent {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+ (*RtreeNode)(unsafe.Pointer(pNode)).FnRef++
+ *(*uintptr)(unsafe.Pointer(ppNode)) = pNode
+ return SQLITE_OK
+ }
+
+ if (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob != 0 {
+ var pBlob uintptr = (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob
+ (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob = uintptr(0)
+ rc = Xsqlite3_blob_reopen(tls, pBlob, iNode)
+ (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob = pBlob
+ if rc != 0 {
+ nodeBlobReset(tls, pRtree)
+ if rc == SQLITE_NOMEM {
+ return SQLITE_NOMEM
+ }
+ }
+ }
+ if (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) {
+ var zTab uintptr = Xsqlite3_mprintf(tls, ts+25498, libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ if zTab == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ rc = Xsqlite3_blob_open(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, zTab, ts+25506, iNode, 0,
+ pRtree+112)
+ Xsqlite3_free(tls, zTab)
+ }
+ if rc != 0 {
+ nodeBlobReset(tls, pRtree)
+ *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0)
+
+ if rc == SQLITE_ERROR {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+
+ }
+ } else if (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize == Xsqlite3_blob_bytes(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob) {
+ pNode = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(RtreeNode{}))+uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize))
+ if !(pNode != 0) {
+ rc = SQLITE_NOMEM
+ } else {
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpParent = pParent
+ (*RtreeNode)(unsafe.Pointer(pNode)).FzData = pNode + 1*40
+ (*RtreeNode)(unsafe.Pointer(pNode)).FnRef = 1
+ (*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef++
+ (*RtreeNode)(unsafe.Pointer(pNode)).FiNode = iNode
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 0
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpNext = uintptr(0)
+ rc = Xsqlite3_blob_read(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpNodeBlob, (*RtreeNode)(unsafe.Pointer(pNode)).FzData,
+ (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize, 0)
+ }
+ }
+
+ if rc == SQLITE_OK && pNode != 0 && iNode == int64(1) {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiDepth = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData)
+ if (*Rtree)(unsafe.Pointer(pRtree)).FiDepth > RTREE_MAX_DEPTH {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+
+ }
+ }
+
+ if pNode != 0 && rc == SQLITE_OK {
+ if readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2) > ((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-4)/int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+
+ }
+ }
+
+ if rc == SQLITE_OK {
+ if pNode != uintptr(0) {
+ nodeReference(tls, pParent)
+ nodeHashInsert(tls, pRtree, pNode)
+ } else {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+
+ }
+ *(*uintptr)(unsafe.Pointer(ppNode)) = pNode
+ } else {
+ if pNode != 0 {
+ (*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef--
+ Xsqlite3_free(tls, pNode)
+ }
+ *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0)
+ }
+
+ return rc
+}
+
+func nodeOverwriteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iCell int32) {
+ var ii int32
+ var p uintptr = (*RtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(4+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell)
+ p += uintptr(writeInt64(tls, p, (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid))
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2); ii++ {
+ p += uintptr(writeCoord(tls, p, pCell+8+uintptr(ii)*4))
+ }
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 1
+}
+
+func nodeDeleteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32) {
+ var pDst uintptr = (*RtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(4+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell)
+ var pSrc uintptr = pDst + uintptr((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
+ var nByte int32 = (readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2) - iCell - 1) * int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
+ libc.X__builtin___memmove_chk(tls, pDst, pSrc, uint64(nByte), libc.X__builtin_object_size(tls, pDst, 0))
+ writeInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2, readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)-1)
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 1
+}
+
+func nodeInsertCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr) int32 {
+ var nCell int32
+ var nMaxCell int32
+
+ nMaxCell = ((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize - 4) / int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
+ nCell = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+
+ if nCell < nMaxCell {
+ nodeOverwriteCell(tls, pRtree, pNode, pCell, nCell)
+ writeInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2, nCell+1)
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 1
+ }
+
+ return libc.Bool32(nCell == nMaxCell)
+}
+
+func nodeWrite(tls *libc.TLS, pRtree uintptr, pNode uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty != 0 {
+ var p uintptr = (*Rtree)(unsafe.Pointer(pRtree)).FpWriteNode
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FiNode != 0 {
+ Xsqlite3_bind_int64(tls, p, 1, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ } else {
+ Xsqlite3_bind_null(tls, p, 1)
+ }
+ Xsqlite3_bind_blob(tls, p, 2, (*RtreeNode)(unsafe.Pointer(pNode)).FzData, (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize, uintptr(0))
+ Xsqlite3_step(tls, p)
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 0
+ rc = Xsqlite3_reset(tls, p)
+ Xsqlite3_bind_null(tls, p, 2)
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(0) && rc == SQLITE_OK {
+ (*RtreeNode)(unsafe.Pointer(pNode)).FiNode = Xsqlite3_last_insert_rowid(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb)
+ nodeHashInsert(tls, pRtree, pNode)
+ }
+ }
+ return rc
+}
+
+func nodeRelease(tls *libc.TLS, pRtree uintptr, pNode uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if pNode != 0 {
+ (*RtreeNode)(unsafe.Pointer(pNode)).FnRef--
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FnRef == 0 {
+ (*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef--
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(1) {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiDepth = -1
+ }
+ if (*RtreeNode)(unsafe.Pointer(pNode)).FpParent != 0 {
+ rc = nodeRelease(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pNode)).FpParent)
+ }
+ if rc == SQLITE_OK {
+ rc = nodeWrite(tls, pRtree, pNode)
+ }
+ nodeHashDelete(tls, pRtree, pNode)
+ Xsqlite3_free(tls, pNode)
+ }
+ }
+ return rc
+}
+
+func nodeGetRowid(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32) I64 {
+ return readInt64(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+uintptr(4+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell))
+}
+
+func nodeGetCoord(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, iCoord int32, pCoord uintptr) {
+ readCoord(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+uintptr(12+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell+4*iCoord), pCoord)
+}
+
+func nodeGetCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, pCell uintptr) {
+ var pData uintptr
+ var pCoord uintptr
+ var ii int32 = 0
+ (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid = nodeGetRowid(tls, pRtree, pNode, iCell)
+ pData = (*RtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(12+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell)
+ pCoord = pCell + 8
+ for __ccgo := true; __ccgo; __ccgo = ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) {
+ readCoord(tls, pData, pCoord+uintptr(ii)*4)
+ readCoord(tls, pData+uintptr(4), pCoord+uintptr(ii+1)*4)
+ pData += uintptr(8)
+ ii = ii + 2
+ }
+}
+
+func rtreeCreate(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return rtreeInit(tls, db, pAux, argc, argv, ppVtab, pzErr, 1)
+}
+
+func rtreeConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return rtreeInit(tls, db, pAux, argc, argv, ppVtab, pzErr, 0)
+}
+
+func rtreeReference(tls *libc.TLS, pRtree uintptr) {
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBusy++
+}
+
+func rtreeRelease(tls *libc.TLS, pRtree uintptr) {
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBusy--
+ if (*Rtree)(unsafe.Pointer(pRtree)).FnBusy == U32(0) {
+ (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans = U8(0)
+
+ nodeBlobReset(tls, pRtree)
+
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteNode)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteNode)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteRowid)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadParent)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteParent)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteParent)
+ Xsqlite3_finalize(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteAux)
+ Xsqlite3_free(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzReadAuxSql)
+ Xsqlite3_free(tls, pRtree)
+ }
+}
+
+func rtreeDisconnect(tls *libc.TLS, pVtab uintptr) int32 {
+ rtreeRelease(tls, pVtab)
+ return SQLITE_OK
+}
+
+func rtreeDestroy(tls *libc.TLS, pVtab uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pRtree uintptr = pVtab
+ var rc int32
+ var zCreate uintptr = Xsqlite3_mprintf(tls,
+ ts+25511,
+ libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName,
+ (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName,
+ (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ if !(zCreate != 0) {
+ rc = SQLITE_NOMEM
+ } else {
+ nodeBlobReset(tls, pRtree)
+ rc = Xsqlite3_exec(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, zCreate, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3_free(tls, zCreate)
+ }
+ if rc == SQLITE_OK {
+ rtreeRelease(tls, pRtree)
+ }
+
+ return rc
+}
+
+func rtreeOpen(tls *libc.TLS, pVTab uintptr, ppCursor uintptr) int32 {
+ var rc int32 = SQLITE_NOMEM
+ var pRtree uintptr = pVTab
+ var pCsr uintptr
+
+ pCsr = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(RtreeCursor{})))
+ if pCsr != 0 {
+ libc.X__builtin___memset_chk(tls, pCsr, 0, uint64(unsafe.Sizeof(RtreeCursor{})), libc.X__builtin_object_size(tls, pCsr, 0))
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab = pVTab
+ rc = SQLITE_OK
+ (*Rtree)(unsafe.Pointer(pRtree)).FnCursor++
+ }
+ *(*uintptr)(unsafe.Pointer(ppCursor)) = pCsr
+
+ return rc
+}
+
+func resetCursor(tls *libc.TLS, pCsr uintptr) {
+ var pRtree uintptr = (*RtreeCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var ii int32
+ var pStmt uintptr
+ if (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint != 0 {
+ var i int32
+ for i = 0; i < (*RtreeCursor)(unsafe.Pointer(pCsr)).FnConstraint; i++ {
+ var pInfo uintptr = (*RtreeConstraint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint + uintptr(i)*24)).FpInfo
+ if pInfo != 0 {
+ if (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FxDelUser != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FxDelUser})).f(tls, (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FpUser)
+ }
+ Xsqlite3_free(tls, pInfo)
+ }
+ }
+ Xsqlite3_free(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint)
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint = uintptr(0)
+ }
+ for ii = 0; ii < RTREE_CACHE_SZ; ii++ {
+ nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(pCsr + 88 + uintptr(ii)*8)))
+ }
+ Xsqlite3_free(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaPoint)
+ pStmt = (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux
+ libc.X__builtin___memset_chk(tls, pCsr, 0, uint64(unsafe.Sizeof(RtreeCursor{})), libc.X__builtin_object_size(tls, pCsr, 0))
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab = pRtree
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux = pStmt
+
+}
+
+func rtreeClose(tls *libc.TLS, cur uintptr) int32 {
+ var pRtree uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
+ var pCsr uintptr = cur
+
+ resetCursor(tls, pCsr)
+ Xsqlite3_finalize(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ Xsqlite3_free(tls, pCsr)
+ (*Rtree)(unsafe.Pointer(pRtree)).FnCursor--
+ nodeBlobReset(tls, pRtree)
+ return SQLITE_OK
+}
+
+func rtreeEof(tls *libc.TLS, cur uintptr) int32 {
+ var pCsr uintptr = cur
+ return int32((*RtreeCursor)(unsafe.Pointer(pCsr)).FatEOF)
+}
+
+func rtreeCallbackConstraint(tls *libc.TLS, pConstraint uintptr, eInt int32, pCellData uintptr, pSearch uintptr, prScore uintptr, peWithin uintptr) int32 {
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var pInfo uintptr = (*RtreeConstraint)(unsafe.Pointer(pConstraint)).FpInfo
+ var nCoord int32 = (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FnCoord
+ var rc int32
+
+ if (*RtreeConstraint)(unsafe.Pointer(pConstraint)).Fop == RTREE_QUERY && int32((*RtreeSearchPoint)(unsafe.Pointer(pSearch)).FiLevel) == 1 {
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FiRowid = readInt64(tls, pCellData)
+ }
+ pCellData += uintptr(8)
+ if eInt == 0 {
+ switch nCoord {
+ case 10:
+ readCoord(tls, pCellData+uintptr(36), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 9*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(32), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 8*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ fallthrough
+ case 8:
+ readCoord(tls, pCellData+uintptr(28), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 7*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(24), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 6*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ fallthrough
+ case 6:
+ readCoord(tls, pCellData+uintptr(20), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 5*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(16), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 4*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ fallthrough
+ case 4:
+ readCoord(tls, pCellData+uintptr(12), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 3*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(8), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 2*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ fallthrough
+ default:
+ readCoord(tls, pCellData+uintptr(4), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 1*8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData, bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)) = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ }
+ } else {
+ switch nCoord {
+ case 10:
+ readCoord(tls, pCellData+uintptr(36), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 9*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(32), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 8*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ fallthrough
+ case 8:
+ readCoord(tls, pCellData+uintptr(28), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 7*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(24), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 6*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ fallthrough
+ case 6:
+ readCoord(tls, pCellData+uintptr(20), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 5*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(16), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 4*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ fallthrough
+ case 4:
+ readCoord(tls, pCellData+uintptr(12), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 3*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData+uintptr(8), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 2*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ fallthrough
+ default:
+ readCoord(tls, pCellData+uintptr(4), bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8 + 1*8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ readCoord(tls, pCellData, bp)
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)) = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ }
+ }
+ if (*RtreeConstraint)(unsafe.Pointer(pConstraint)).Fop == RTREE_MATCH {
+ *(*int32)(unsafe.Pointer(bp + 88)) = 0
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(pConstraint + 8))})).f(tls, pInfo,
+ nCoord, bp+8, bp+88)
+ if *(*int32)(unsafe.Pointer(bp + 88)) == 0 {
+ *(*int32)(unsafe.Pointer(peWithin)) = NOT_WITHIN
+ }
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(prScore)) = 0.0
+ } else {
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FaCoord = bp + 8
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FiLevel = int32((*RtreeSearchPoint)(unsafe.Pointer(pSearch)).FiLevel) - 1
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore = libc.AssignPtrFloat64(pInfo+80, (*RtreeSearchPoint)(unsafe.Pointer(pSearch)).FrScore)
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin = libc.AssignPtrInt32(pInfo+88, int32((*RtreeSearchPoint)(unsafe.Pointer(pSearch)).FeWithin))
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(pConstraint + 8))})).f(tls, pInfo)
+ if (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin < *(*int32)(unsafe.Pointer(peWithin)) {
+ *(*int32)(unsafe.Pointer(peWithin)) = (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FeWithin
+ }
+ if (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore < *(*Sqlite3_rtree_dbl)(unsafe.Pointer(prScore)) || *(*Sqlite3_rtree_dbl)(unsafe.Pointer(prScore)) < 0.0 {
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(prScore)) = (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FrScore
+ }
+ }
+ return rc
+}
+
+func rtreeNonleafConstraint(tls *libc.TLS, p uintptr, eInt int32, pCellData uintptr, peWithin uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var val Sqlite3_rtree_dbl
+
+ pCellData += uintptr(8 + 4*((*RtreeConstraint)(unsafe.Pointer(p)).FiCoord&0xfe))
+
+ switch (*RtreeConstraint)(unsafe.Pointer(p)).Fop {
+ case RTREE_TRUE:
+ return
+ case RTREE_FALSE:
+ break
+ case RTREE_EQ:
+ {
+ libc.X__builtin___memcpy_chk(tls, bp, pCellData, uint64(4), libc.X__builtin_object_size(tls, bp, 0))
+ *(*U32)(unsafe.Pointer(bp)) = *(*U32)(unsafe.Pointer(bp))>>24&U32(0xff) | *(*U32)(unsafe.Pointer(bp))>>8&U32(0xff00) | *(*U32)(unsafe.Pointer(bp))&U32(0xff)<<24 | *(*U32)(unsafe.Pointer(bp))&U32(0xff00)<<8
+ if eInt != 0 {
+ val = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ } else {
+ val = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ }
+ }
+
+ if *(*RtreeDValue)(unsafe.Pointer(p + 8)) >= val {
+ pCellData += uintptr(4)
+ {
+ libc.X__builtin___memcpy_chk(tls, bp+4, pCellData, uint64(4), libc.X__builtin_object_size(tls, bp+4, 0))
+ *(*U32)(unsafe.Pointer(bp + 4)) = *(*U32)(unsafe.Pointer(bp + 4))>>24&U32(0xff) | *(*U32)(unsafe.Pointer(bp + 4))>>8&U32(0xff00) | *(*U32)(unsafe.Pointer(bp + 4))&U32(0xff)<<24 | *(*U32)(unsafe.Pointer(bp + 4))&U32(0xff00)<<8
+ if eInt != 0 {
+ val = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp + 4)))
+ } else {
+ val = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp + 4)))
+ }
+ }
+
+ if *(*RtreeDValue)(unsafe.Pointer(p + 8)) <= val {
+ return
+ }
+ }
+ break
+ case RTREE_LE:
+ fallthrough
+ case RTREE_LT:
+ {
+ libc.X__builtin___memcpy_chk(tls, bp+8, pCellData, uint64(4), libc.X__builtin_object_size(tls, bp+8, 0))
+ *(*U32)(unsafe.Pointer(bp + 8)) = *(*U32)(unsafe.Pointer(bp + 8))>>24&U32(0xff) | *(*U32)(unsafe.Pointer(bp + 8))>>8&U32(0xff00) | *(*U32)(unsafe.Pointer(bp + 8))&U32(0xff)<<24 | *(*U32)(unsafe.Pointer(bp + 8))&U32(0xff00)<<8
+ if eInt != 0 {
+ val = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp + 8)))
+ } else {
+ val = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp + 8)))
+ }
+ }
+
+ if *(*RtreeDValue)(unsafe.Pointer(p + 8)) >= val {
+ return
+ }
+ break
+
+ default:
+ pCellData += uintptr(4)
+ {
+ libc.X__builtin___memcpy_chk(tls, bp+12, pCellData, uint64(4), libc.X__builtin_object_size(tls, bp+12, 0))
+ *(*U32)(unsafe.Pointer(bp + 12)) = *(*U32)(unsafe.Pointer(bp + 12))>>24&U32(0xff) | *(*U32)(unsafe.Pointer(bp + 12))>>8&U32(0xff00) | *(*U32)(unsafe.Pointer(bp + 12))&U32(0xff)<<24 | *(*U32)(unsafe.Pointer(bp + 12))&U32(0xff00)<<8
+ if eInt != 0 {
+ val = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp + 12)))
+ } else {
+ val = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp + 12)))
+ }
+ }
+
+ if *(*RtreeDValue)(unsafe.Pointer(p + 8)) <= val {
+ return
+ }
+ break
+ }
+ *(*int32)(unsafe.Pointer(peWithin)) = NOT_WITHIN
+}
+
+func rtreeLeafConstraint(tls *libc.TLS, p uintptr, eInt int32, pCellData uintptr, peWithin uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var xN RtreeDValue
+
+ pCellData += uintptr(8 + (*RtreeConstraint)(unsafe.Pointer(p)).FiCoord*4)
+
+ {
+ libc.X__builtin___memcpy_chk(tls, bp, pCellData, uint64(4), libc.X__builtin_object_size(tls, bp, 0))
+ *(*U32)(unsafe.Pointer(bp)) = *(*U32)(unsafe.Pointer(bp))>>24&U32(0xff) | *(*U32)(unsafe.Pointer(bp))>>8&U32(0xff00) | *(*U32)(unsafe.Pointer(bp))&U32(0xff)<<24 | *(*U32)(unsafe.Pointer(bp))&U32(0xff00)<<8
+ if eInt != 0 {
+ xN = Sqlite3_rtree_dbl(*(*int32)(unsafe.Pointer(bp)))
+ } else {
+ xN = Sqlite3_rtree_dbl(*(*RtreeValue)(unsafe.Pointer(bp)))
+ }
+ }
+
+ switch (*RtreeConstraint)(unsafe.Pointer(p)).Fop {
+ case RTREE_TRUE:
+ return
+ case RTREE_FALSE:
+ break
+ case RTREE_LE:
+ if xN <= *(*RtreeDValue)(unsafe.Pointer(p + 8)) {
+ return
+ }
+ break
+ case RTREE_LT:
+ if xN < *(*RtreeDValue)(unsafe.Pointer(p + 8)) {
+ return
+ }
+ break
+ case RTREE_GE:
+ if xN >= *(*RtreeDValue)(unsafe.Pointer(p + 8)) {
+ return
+ }
+ break
+ case RTREE_GT:
+ if xN > *(*RtreeDValue)(unsafe.Pointer(p + 8)) {
+ return
+ }
+ break
+ default:
+ if xN == *(*RtreeDValue)(unsafe.Pointer(p + 8)) {
+ return
+ }
+ break
+ }
+ *(*int32)(unsafe.Pointer(peWithin)) = NOT_WITHIN
+}
+
+func nodeRowidIndex(tls *libc.TLS, pRtree uintptr, pNode uintptr, iRowid I64, piIndex uintptr) int32 {
+ var ii int32
+ var nCell int32 = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+
+ for ii = 0; ii < nCell; ii++ {
+ if nodeGetRowid(tls, pRtree, pNode, ii) == iRowid {
+ *(*int32)(unsafe.Pointer(piIndex)) = ii
+ return SQLITE_OK
+ }
+ }
+
+ return SQLITE_CORRUPT | int32(1)<<8
+}
+
+func nodeParentIndex(tls *libc.TLS, pRtree uintptr, pNode uintptr, piIndex uintptr) int32 {
+ var pParent uintptr = (*RtreeNode)(unsafe.Pointer(pNode)).FpParent
+ if pParent != 0 {
+ return nodeRowidIndex(tls, pRtree, pParent, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode, piIndex)
+ } else {
+ *(*int32)(unsafe.Pointer(piIndex)) = -1
+ return SQLITE_OK
+ }
+ return int32(0)
+}
+
+func rtreeSearchPointCompare(tls *libc.TLS, pA uintptr, pB uintptr) int32 {
+ if (*RtreeSearchPoint)(unsafe.Pointer(pA)).FrScore < (*RtreeSearchPoint)(unsafe.Pointer(pB)).FrScore {
+ return -1
+ }
+ if (*RtreeSearchPoint)(unsafe.Pointer(pA)).FrScore > (*RtreeSearchPoint)(unsafe.Pointer(pB)).FrScore {
+ return +1
+ }
+ if int32((*RtreeSearchPoint)(unsafe.Pointer(pA)).FiLevel) < int32((*RtreeSearchPoint)(unsafe.Pointer(pB)).FiLevel) {
+ return -1
+ }
+ if int32((*RtreeSearchPoint)(unsafe.Pointer(pA)).FiLevel) > int32((*RtreeSearchPoint)(unsafe.Pointer(pB)).FiLevel) {
+ return +1
+ }
+ return 0
+}
+
+func rtreeSearchPointSwap(tls *libc.TLS, p uintptr, i int32, j int32) {
+ var t = *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint + uintptr(i)*24))
+
+ *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint + uintptr(i)*24)) = *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint + uintptr(j)*24))
+ *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint + uintptr(j)*24)) = t
+ i++
+ j++
+ if i < RTREE_CACHE_SZ {
+ if j >= RTREE_CACHE_SZ {
+ nodeRelease(tls, (*RtreeCursor)(unsafe.Pointer(p)).Fbase.FpVtab, *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)) = uintptr(0)
+ } else {
+ var pTemp uintptr = *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8))
+ *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(j)*8))
+ *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(j)*8)) = pTemp
+ }
+ }
+}
+
+func rtreeSearchPointFirst(tls *libc.TLS, pCur uintptr) uintptr {
+ if (*RtreeCursor)(unsafe.Pointer(pCur)).FbPoint != 0 {
+ return pCur + 64
+ }
+ if (*RtreeCursor)(unsafe.Pointer(pCur)).FnPoint != 0 {
+ return (*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint
+ }
+ return uintptr(0)
+}
+
+func rtreeNodeOfFirstSearchPoint(tls *libc.TLS, pCur uintptr, pRC uintptr) uintptr {
+ var id Sqlite3_int64
+ var ii int32 = 1 - int32((*RtreeCursor)(unsafe.Pointer(pCur)).FbPoint)
+
+ if *(*uintptr)(unsafe.Pointer(pCur + 88 + uintptr(ii)*8)) == uintptr(0) {
+ if ii != 0 {
+ id = (*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint)).Fid
+ } else {
+ id = (*RtreeCursor)(unsafe.Pointer(pCur)).FsPoint.Fid
+ }
+ *(*int32)(unsafe.Pointer(pRC)) = nodeAcquire(tls, (*RtreeCursor)(unsafe.Pointer(pCur)).Fbase.FpVtab, id, uintptr(0), pCur+88+uintptr(ii)*8)
+ }
+ return *(*uintptr)(unsafe.Pointer(pCur + 88 + uintptr(ii)*8))
+}
+
+func rtreeEnqueue(tls *libc.TLS, pCur uintptr, rScore RtreeDValue, iLevel U8) uintptr {
+ var i int32
+ var j int32
+ var pNew uintptr
+ if (*RtreeCursor)(unsafe.Pointer(pCur)).FnPoint >= (*RtreeCursor)(unsafe.Pointer(pCur)).FnPointAlloc {
+ var nNew int32 = (*RtreeCursor)(unsafe.Pointer(pCur)).FnPointAlloc*2 + 8
+ pNew = Xsqlite3_realloc64(tls, (*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint, uint64(nNew)*uint64(unsafe.Sizeof(RtreeSearchPoint{})))
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint = pNew
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FnPointAlloc = nNew
+ }
+ i = libc.PostIncInt32(&(*RtreeCursor)(unsafe.Pointer(pCur)).FnPoint, 1)
+ pNew = (*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint + uintptr(i)*24
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FrScore = rScore
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FiLevel = iLevel
+
+ for i > 0 {
+ var pParent uintptr
+ j = (i - 1) / 2
+ pParent = (*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint + uintptr(j)*24
+ if rtreeSearchPointCompare(tls, pNew, pParent) >= 0 {
+ break
+ }
+ rtreeSearchPointSwap(tls, pCur, j, i)
+ i = j
+ pNew = pParent
+ }
+ return pNew
+}
+
+func rtreeSearchPointNew(tls *libc.TLS, pCur uintptr, rScore RtreeDValue, iLevel U8) uintptr {
+ var pNew uintptr
+ var pFirst uintptr
+ pFirst = rtreeSearchPointFirst(tls, pCur)
+ *(*U32)(unsafe.Pointer(pCur + 128 + uintptr(iLevel)*4))++
+ if pFirst == uintptr(0) ||
+ (*RtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore > rScore ||
+ (*RtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore == rScore && int32((*RtreeSearchPoint)(unsafe.Pointer(pFirst)).FiLevel) > int32(iLevel) {
+ if (*RtreeCursor)(unsafe.Pointer(pCur)).FbPoint != 0 {
+ var ii int32
+ pNew = rtreeEnqueue(tls, pCur, rScore, iLevel)
+ if pNew == uintptr(0) {
+ return uintptr(0)
+ }
+ ii = int32((int64(pNew)-int64((*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint))/24) + 1
+
+ if ii < RTREE_CACHE_SZ {
+ *(*uintptr)(unsafe.Pointer(pCur + 88 + uintptr(ii)*8)) = *(*uintptr)(unsafe.Pointer(pCur + 88))
+ } else {
+ nodeRelease(tls, (*RtreeCursor)(unsafe.Pointer(pCur)).Fbase.FpVtab, *(*uintptr)(unsafe.Pointer(pCur + 88)))
+ }
+ *(*uintptr)(unsafe.Pointer(pCur + 88)) = uintptr(0)
+ *(*RtreeSearchPoint)(unsafe.Pointer(pNew)) = (*RtreeCursor)(unsafe.Pointer(pCur)).FsPoint
+ }
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FsPoint.FrScore = rScore
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FsPoint.FiLevel = iLevel
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FbPoint = U8(1)
+ return pCur + 64
+ } else {
+ return rtreeEnqueue(tls, pCur, rScore, iLevel)
+ }
+ return uintptr(0)
+}
+
+func rtreeSearchPointPop(tls *libc.TLS, p uintptr) {
+ var i int32
+ var j int32
+ var k int32
+ var n int32
+ i = 1 - int32((*RtreeCursor)(unsafe.Pointer(p)).FbPoint)
+
+ if *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)) != 0 {
+ nodeRelease(tls, (*RtreeCursor)(unsafe.Pointer(p)).Fbase.FpVtab, *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(i)*8)) = uintptr(0)
+ }
+ if (*RtreeCursor)(unsafe.Pointer(p)).FbPoint != 0 {
+ *(*U32)(unsafe.Pointer(p + 128 + uintptr((*RtreeCursor)(unsafe.Pointer(p)).FsPoint.FiLevel)*4))--
+ (*RtreeCursor)(unsafe.Pointer(p)).FbPoint = U8(0)
+ } else if (*RtreeCursor)(unsafe.Pointer(p)).FnPoint != 0 {
+ *(*U32)(unsafe.Pointer(p + 128 + uintptr((*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint)).FiLevel)*4))--
+ n = libc.PreDecInt32(&(*RtreeCursor)(unsafe.Pointer(p)).FnPoint, 1)
+ *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint)) = *(*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(p)).FaPoint + uintptr(n)*24))
+ if n < RTREE_CACHE_SZ-1 {
+ *(*uintptr)(unsafe.Pointer(p + 88 + 1*8)) = *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(n+1)*8))
+ *(*uintptr)(unsafe.Pointer(p + 88 + uintptr(n+1)*8)) = uintptr(0)
+ }
+ i = 0
+ for libc.AssignInt32(&j, i*2+1) < n {
+ k = j + 1
+ if k < n && rtreeSearchPointCompare(tls, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(k)*24, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(j)*24) < 0 {
+ if rtreeSearchPointCompare(tls, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(k)*24, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(i)*24) < 0 {
+ rtreeSearchPointSwap(tls, p, i, k)
+ i = k
+ } else {
+ break
+ }
+ } else {
+ if rtreeSearchPointCompare(tls, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(j)*24, (*RtreeCursor)(unsafe.Pointer(p)).FaPoint+uintptr(i)*24) < 0 {
+ rtreeSearchPointSwap(tls, p, i, j)
+ i = j
+ } else {
+ break
+ }
+ }
+ }
+ }
+}
+
+func rtreeStepToLeaf(tls *libc.TLS, pCur uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var p uintptr
+ var pRtree uintptr = (*RtreeCursor)(unsafe.Pointer(pCur)).Fbase.FpVtab
+ var pNode uintptr
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var nCell int32
+ var nConstraint int32 = (*RtreeCursor)(unsafe.Pointer(pCur)).FnConstraint
+ var ii int32
+ var eInt int32
+ var x RtreeSearchPoint
+
+ eInt = libc.Bool32(int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_INT32)
+ for libc.AssignUintptr(&p, rtreeSearchPointFirst(tls, pCur)) != uintptr(0) && int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) > 0 {
+ var pCellData uintptr
+ pNode = rtreeNodeOfFirstSearchPoint(tls, pCur, bp)
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ nCell = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+
+ pCellData = (*RtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(4+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell))
+ for int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell) < nCell {
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)) = Sqlite3_rtree_dbl(-1)
+ *(*int32)(unsafe.Pointer(bp + 16)) = FULLY_WITHIN
+ for ii = 0; ii < nConstraint; ii++ {
+ var pConstraint uintptr = (*RtreeCursor)(unsafe.Pointer(pCur)).FaConstraint + uintptr(ii)*24
+ if (*RtreeConstraint)(unsafe.Pointer(pConstraint)).Fop >= RTREE_MATCH {
+ *(*int32)(unsafe.Pointer(bp)) = rtreeCallbackConstraint(tls, pConstraint, eInt, pCellData, p,
+ bp+8, bp+16)
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ } else if int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) == 1 {
+ rtreeLeafConstraint(tls, pConstraint, eInt, pCellData, bp+16)
+ } else {
+ rtreeNonleafConstraint(tls, pConstraint, eInt, pCellData, bp+16)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 16)) == NOT_WITHIN {
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell++
+ pCellData += uintptr((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)
+ break
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 16)) == NOT_WITHIN {
+ continue
+ }
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell++
+ x.FiLevel = U8(int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiLevel) - 1)
+ if x.FiLevel != 0 {
+ x.Fid = readInt64(tls, pCellData)
+ for ii = 0; ii < (*RtreeCursor)(unsafe.Pointer(pCur)).FnPoint; ii++ {
+ if (*RtreeSearchPoint)(unsafe.Pointer((*RtreeCursor)(unsafe.Pointer(pCur)).FaPoint+uintptr(ii)*24)).Fid == x.Fid {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ x.FiCell = U8(0)
+ } else {
+ x.Fid = (*RtreeSearchPoint)(unsafe.Pointer(p)).Fid
+ x.FiCell = U8(int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell) - 1)
+ }
+ if int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell) >= nCell {
+ rtreeSearchPointPop(tls, pCur)
+ }
+ if *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)) < 0.0 {
+ *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)) = 0.0
+ }
+ p = rtreeSearchPointNew(tls, pCur, *(*Sqlite3_rtree_dbl)(unsafe.Pointer(bp + 8)), x.FiLevel)
+ if p == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FeWithin = U8(*(*int32)(unsafe.Pointer(bp + 16)))
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).Fid = x.Fid
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell = x.FiCell
+
+ break
+ }
+ if int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell) >= nCell {
+ rtreeSearchPointPop(tls, pCur)
+ }
+ }
+ (*RtreeCursor)(unsafe.Pointer(pCur)).FatEOF = U8(libc.Bool32(p == uintptr(0)))
+ return SQLITE_OK
+}
+
+func rtreeNext(tls *libc.TLS, pVtabCursor uintptr) int32 {
+ var pCsr uintptr = pVtabCursor
+ var rc int32 = SQLITE_OK
+
+ if (*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid != 0 {
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid = U8(0)
+ Xsqlite3_reset(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ }
+ rtreeSearchPointPop(tls, pCsr)
+ rc = rtreeStepToLeaf(tls, pCsr)
+ return rc
+}
+
+func rtreeRowid(tls *libc.TLS, pVtabCursor uintptr, pRowid uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pCsr uintptr = pVtabCursor
+ var p uintptr = rtreeSearchPointFirst(tls, pCsr)
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var pNode uintptr = rtreeNodeOfFirstSearchPoint(tls, pCsr, bp)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && p != 0 {
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = nodeGetRowid(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab, pNode, int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell))
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func rtreeColumn(tls *libc.TLS, cur uintptr, ctx uintptr, i int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pRtree uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
+ var pCsr uintptr = cur
+ var p uintptr = rtreeSearchPointFirst(tls, pCsr)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var pNode uintptr = rtreeNodeOfFirstSearchPoint(tls, pCsr, bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ if p == uintptr(0) {
+ return SQLITE_OK
+ }
+ if i == 0 {
+ Xsqlite3_result_int64(tls, ctx, nodeGetRowid(tls, pRtree, pNode, int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell)))
+ } else if i <= int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) {
+ nodeGetCoord(tls, pRtree, pNode, int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell), i-1, bp+4)
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ Xsqlite3_result_double(tls, ctx, float64(*(*RtreeValue)(unsafe.Pointer(bp + 4))))
+ } else {
+ Xsqlite3_result_int(tls, ctx, *(*int32)(unsafe.Pointer(bp + 4)))
+ }
+ } else {
+ if !(int32((*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid) != 0) {
+ if (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, (*Rtree)(unsafe.Pointer(pRtree)).FzReadAuxSql, -1, uint32(0),
+ pCsr+56, uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ Xsqlite3_bind_int64(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux, 1,
+ nodeGetRowid(tls, pRtree, pNode, int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell)))
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_step(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_ROW {
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid = U8(1)
+ } else {
+ Xsqlite3_reset(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_DONE {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ Xsqlite3_result_value(tls, ctx,
+ Xsqlite3_column_value(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux, i-int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)+1))
+ }
+ return SQLITE_OK
+}
+
+func findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid I64, ppLeaf uintptr, piNode uintptr) int32 {
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(ppLeaf)) = uintptr(0)
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid, 1, iRowid)
+ if Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid) == SQLITE_ROW {
+ var iNode I64 = Xsqlite3_column_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid, 0)
+ if piNode != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(piNode)) = iNode
+ }
+ rc = nodeAcquire(tls, pRtree, iNode, uintptr(0), ppLeaf)
+ Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ } else {
+ rc = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ }
+ return rc
+}
+
+func deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) int32 {
+ var pBlob uintptr
+ var pSrc uintptr
+ var pInfo uintptr
+
+ pSrc = Xsqlite3_value_pointer(tls, pValue, ts+25593)
+ if pSrc == uintptr(0) {
+ return SQLITE_ERROR
+ }
+ pInfo = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Sqlite3_rtree_query_info{}))+uint64((*RtreeMatchArg)(unsafe.Pointer(pSrc)).FiSize))
+ if !(pInfo != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pInfo, 0, uint64(unsafe.Sizeof(Sqlite3_rtree_query_info{})), libc.X__builtin_object_size(tls, pInfo, 0))
+ pBlob = pInfo + 1*112
+ libc.X__builtin___memcpy_chk(tls, pBlob, pSrc, uint64((*RtreeMatchArg)(unsafe.Pointer(pSrc)).FiSize), libc.X__builtin_object_size(tls, pBlob, 0))
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FpContext = (*RtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb.FpContext
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FnParam = (*RtreeMatchArg)(unsafe.Pointer(pBlob)).FnParam
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FaParam = pBlob + 56
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer(pInfo)).FapSqlParam = (*RtreeMatchArg)(unsafe.Pointer(pBlob)).FapSqlParam
+
+ if (*RtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb.FxGeom != 0 {
+ *(*uintptr)(unsafe.Pointer(pCons + 8)) = (*RtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb.FxGeom
+ } else {
+ (*RtreeConstraint)(unsafe.Pointer(pCons)).Fop = RTREE_QUERY
+ *(*uintptr)(unsafe.Pointer(pCons + 8)) = (*RtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb.FxQueryFunc
+ }
+ (*RtreeConstraint)(unsafe.Pointer(pCons)).FpInfo = pInfo
+ return SQLITE_OK
+}
+
+func rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pRtree uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVtabCursor)).FpVtab
+ var pCsr uintptr = pVtabCursor
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ var ii int32
+ var rc int32 = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+
+ rtreeReference(tls, pRtree)
+
+ resetCursor(tls, pCsr)
+
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FiStrategy = idxNum
+ if idxNum == 1 {
+ var p uintptr
+ var iRowid I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ *(*I64)(unsafe.Pointer(bp + 8)) = int64(0)
+ var eType int32 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if eType == SQLITE_INTEGER ||
+ eType == SQLITE_FLOAT && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) {
+ rc = findLeafNode(tls, pRtree, iRowid, bp, bp+8)
+ } else {
+ rc = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ }
+ if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) != uintptr(0) {
+ p = rtreeSearchPointNew(tls, pCsr, 0.0, uint8(0))
+
+ *(*uintptr)(unsafe.Pointer(pCsr + 88)) = *(*uintptr)(unsafe.Pointer(bp))
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).Fid = *(*I64)(unsafe.Pointer(bp + 8))
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FeWithin = U8(PARTLY_WITHIN)
+ rc = nodeRowidIndex(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)), iRowid, bp+16)
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell = U8(*(*int32)(unsafe.Pointer(bp + 16)))
+
+ } else {
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FatEOF = U8(1)
+ }
+ } else {
+ rc = nodeAcquire(tls, pRtree, int64(1), uintptr(0), bp+24)
+ if rc == SQLITE_OK && argc > 0 {
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(RtreeConstraint{}))*uint64(argc))
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FnConstraint = argc
+ if !(int32((*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint) != 0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0, uint64(unsafe.Sizeof(RtreeConstraint{}))*uint64(argc), libc.X__builtin_object_size(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0))
+ libc.X__builtin___memset_chk(tls, pCsr+128, 0, uint64(unsafe.Sizeof(U32(0)))*uint64((*Rtree)(unsafe.Pointer(pRtree)).FiDepth+1), libc.X__builtin_object_size(tls, pCsr+128, 0))
+
+ for ii = 0; ii < argc; ii++ {
+ var p uintptr = (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint + uintptr(ii)*24
+ var eType int32 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))
+ (*RtreeConstraint)(unsafe.Pointer(p)).Fop = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(ii*2))))
+ (*RtreeConstraint)(unsafe.Pointer(p)).FiCoord = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(ii*2+1)))) - '0'
+ if (*RtreeConstraint)(unsafe.Pointer(p)).Fop >= RTREE_MATCH {
+ rc = deserializeGeometry(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)), p)
+ if rc != SQLITE_OK {
+ break
+ }
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer((*RtreeConstraint)(unsafe.Pointer(p)).FpInfo)).FnCoord = int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer((*RtreeConstraint)(unsafe.Pointer(p)).FpInfo)).FanQueue = pCsr + 128
+ (*Sqlite3_rtree_query_info)(unsafe.Pointer((*RtreeConstraint)(unsafe.Pointer(p)).FpInfo)).FmxLevel = (*Rtree)(unsafe.Pointer(pRtree)).FiDepth + 1
+ } else if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ *(*RtreeDValue)(unsafe.Pointer(p + 8)) = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))
+ } else {
+ *(*RtreeDValue)(unsafe.Pointer(p + 8)) = 0.0
+ if eType == SQLITE_NULL {
+ (*RtreeConstraint)(unsafe.Pointer(p)).Fop = RTREE_FALSE
+ } else if (*RtreeConstraint)(unsafe.Pointer(p)).Fop == RTREE_LT || (*RtreeConstraint)(unsafe.Pointer(p)).Fop == RTREE_LE {
+ (*RtreeConstraint)(unsafe.Pointer(p)).Fop = RTREE_TRUE
+ } else {
+ (*RtreeConstraint)(unsafe.Pointer(p)).Fop = RTREE_FALSE
+ }
+ }
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ var pNew uintptr
+
+ pNew = rtreeSearchPointNew(tls, pCsr, 0.0, U8((*Rtree)(unsafe.Pointer(pRtree)).FiDepth+1))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).Fid = int64(1)
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FiCell = U8(0)
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FeWithin = U8(PARTLY_WITHIN)
+
+ *(*uintptr)(unsafe.Pointer(pCsr + 88)) = *(*uintptr)(unsafe.Pointer(bp + 24))
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+
+ rc = rtreeStepToLeaf(tls, pCsr)
+ }
+ }
+
+ nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ rtreeRelease(tls, pRtree)
+ return rc
+}
+
+func rtreeBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) int32 {
+ bp := tls.Alloc(49)
+ defer tls.Free(49)
+
+ var pRtree uintptr = tab
+ var rc int32 = SQLITE_OK
+ var ii int32
+ var bMatch int32 = 0
+ var nRow I64
+
+ var iIdx int32 = 0
+
+ libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(unsafe.Sizeof([41]int8{})), libc.X__builtin_object_size(tls, bp+8, 0))
+
+ for ii = 0; ii < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint; ii++ {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint+uintptr(ii)*12)).Fop) == SQLITE_INDEX_CONSTRAINT_MATCH {
+ bMatch = 1
+ }
+ }
+
+ for ii = 0; ii < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint && iIdx < int32(uint64(unsafe.Sizeof([41]int8{}))-uint64(1)); ii++ {
+ var p uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(ii)*12
+
+ if bMatch == 0 && (*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0 &&
+ (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn <= 0 && int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ {
+ var jj int32
+ for jj = 0; jj < ii; jj++ {
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(jj)*8)).FargvIndex = 0
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(jj)*8)).Fomit = uint8(0)
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(ii)*8)).FargvIndex = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(jj)*8)).Fomit = uint8(1)
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 30.0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags = SQLITE_INDEX_SCAN_UNIQUE
+ return SQLITE_OK
+ }
+
+ if (*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0 &&
+ ((*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn > 0 && (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn <= int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) ||
+ int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_MATCH) {
+ var op U8
+ switch int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) {
+ case SQLITE_INDEX_CONSTRAINT_EQ:
+ op = U8(RTREE_EQ)
+ break
+ fallthrough
+ case SQLITE_INDEX_CONSTRAINT_GT:
+ op = U8(RTREE_GT)
+ break
+ fallthrough
+ case SQLITE_INDEX_CONSTRAINT_LE:
+ op = U8(RTREE_LE)
+ break
+ fallthrough
+ case SQLITE_INDEX_CONSTRAINT_LT:
+ op = U8(RTREE_LT)
+ break
+ fallthrough
+ case SQLITE_INDEX_CONSTRAINT_GE:
+ op = U8(RTREE_GE)
+ break
+ fallthrough
+ case SQLITE_INDEX_CONSTRAINT_MATCH:
+ op = U8(RTREE_MATCH)
+ break
+ fallthrough
+ default:
+ op = U8(0)
+ break
+ }
+ if op != 0 {
+ *(*int8)(unsafe.Pointer(bp + 8 + uintptr(libc.PostIncInt32(&iIdx, 1)))) = int8(op)
+ *(*int8)(unsafe.Pointer(bp + 8 + uintptr(libc.PostIncInt32(&iIdx, 1)))) = int8((*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn - 1 + '0')
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(ii)*8)).FargvIndex = iIdx / 2
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(ii)*8)).Fomit = uint8(1)
+ }
+ }
+ }
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 2
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr = 1
+ if iIdx > 0 && uintptr(0) == libc.AssignPtrUintptr(pIdxInfo+48, Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, bp+8))) {
+ return SQLITE_NOMEM
+ }
+
+ nRow = (*Rtree)(unsafe.Pointer(pRtree)).FnRowEst >> (iIdx / 2)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 6.0 * float64(nRow)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = nRow
+
+ return rc
+}
+
+func cellArea(tls *libc.TLS, pRtree uintptr, p uintptr) RtreeDValue {
+ var area RtreeDValue = RtreeDValue(1)
+
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ switch int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim) {
+ case 5:
+ area = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(p + 8 + 9*4)) - *(*RtreeValue)(unsafe.Pointer(p + 8 + 8*4)))
+ fallthrough
+ case 4:
+ area = area * float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + 7*4))-*(*RtreeValue)(unsafe.Pointer(p + 8 + 6*4)))
+ fallthrough
+ case 3:
+ area = area * float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + 5*4))-*(*RtreeValue)(unsafe.Pointer(p + 8 + 4*4)))
+ fallthrough
+ case 2:
+ area = area * float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + 3*4))-*(*RtreeValue)(unsafe.Pointer(p + 8 + 2*4)))
+ fallthrough
+ default:
+ area = area * float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + 1*4))-*(*RtreeValue)(unsafe.Pointer(p + 8)))
+ }
+ } else {
+ switch int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim) {
+ case 5:
+ area = RtreeDValue(I64(*(*int32)(unsafe.Pointer(p + 8 + 9*4))) - I64(*(*int32)(unsafe.Pointer(p + 8 + 8*4))))
+ fallthrough
+ case 4:
+ area = area * float64(I64(*(*int32)(unsafe.Pointer(p + 8 + 7*4)))-I64(*(*int32)(unsafe.Pointer(p + 8 + 6*4))))
+ fallthrough
+ case 3:
+ area = area * float64(I64(*(*int32)(unsafe.Pointer(p + 8 + 5*4)))-I64(*(*int32)(unsafe.Pointer(p + 8 + 4*4))))
+ fallthrough
+ case 2:
+ area = area * float64(I64(*(*int32)(unsafe.Pointer(p + 8 + 3*4)))-I64(*(*int32)(unsafe.Pointer(p + 8 + 2*4))))
+ fallthrough
+ default:
+ area = area * float64(I64(*(*int32)(unsafe.Pointer(p + 8 + 1*4)))-I64(*(*int32)(unsafe.Pointer(p + 8))))
+ }
+ }
+ return area
+}
+
+func cellMargin(tls *libc.TLS, pRtree uintptr, p uintptr) RtreeDValue {
+ var margin RtreeDValue = RtreeDValue(0)
+ var ii int32 = int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) - 2
+ for __ccgo := true; __ccgo; __ccgo = ii >= 0 {
+ margin = margin + (func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(ii+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(ii+1)*4)))
+ }() - func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(ii)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(ii)*4)))
+ }())
+ ii = ii - 2
+ }
+ return margin
+}
+
+func cellUnion(tls *libc.TLS, pRtree uintptr, p1 uintptr, p2 uintptr) {
+ var ii int32 = 0
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ for __ccgo := true; __ccgo; __ccgo = ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) {
+ *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) = func() float32 {
+ if *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) < *(*RtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4)) {
+ return *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4))
+ }
+ return *(*RtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4))
+ }()
+ *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4)) = func() float32 {
+ if *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4)) > *(*RtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii+1)*4)) {
+ return *(*RtreeValue)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4))
+ }
+ return *(*RtreeValue)(unsafe.Pointer(p2 + 8 + uintptr(ii+1)*4))
+ }()
+ ii = ii + 2
+ }
+ } else {
+ for __ccgo1 := true; __ccgo1; __ccgo1 = ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) {
+ *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) = func() int32 {
+ if *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4)) < *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4)) {
+ return *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii)*4))
+ }
+ return *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii)*4))
+ }()
+ *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4)) = func() int32 {
+ if *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4)) > *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii+1)*4)) {
+ return *(*int32)(unsafe.Pointer(p1 + 8 + uintptr(ii+1)*4))
+ }
+ return *(*int32)(unsafe.Pointer(p2 + 8 + uintptr(ii+1)*4))
+ }()
+ ii = ii + 2
+ }
+ }
+}
+
+func cellContains(tls *libc.TLS, pRtree uintptr, p1 uintptr, p2 uintptr) int32 {
+ var ii int32
+ var isInt int32 = libc.Bool32(int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_INT32)
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2); ii = ii + 2 {
+ var a1 uintptr = p1 + 8 + uintptr(ii)*4
+ var a2 uintptr = p2 + 8 + uintptr(ii)*4
+ if !(isInt != 0) && (*(*RtreeValue)(unsafe.Pointer(a2)) < *(*RtreeValue)(unsafe.Pointer(a1)) || *(*RtreeValue)(unsafe.Pointer(a2 + 1*4)) > *(*RtreeValue)(unsafe.Pointer(a1 + 1*4))) ||
+ isInt != 0 && (*(*int32)(unsafe.Pointer(a2)) < *(*int32)(unsafe.Pointer(a1)) || *(*int32)(unsafe.Pointer(a2 + 1*4)) > *(*int32)(unsafe.Pointer(a1 + 1*4))) {
+ return 0
+ }
+ }
+ return 1
+}
+
+func cellGrowth(tls *libc.TLS, pRtree uintptr, p uintptr, pCell uintptr) RtreeDValue {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var area RtreeDValue
+
+ libc.X__builtin___memcpy_chk(tls, bp, p, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, bp, 0))
+ area = cellArea(tls, pRtree, bp)
+ cellUnion(tls, pRtree, bp, pCell)
+ return cellArea(tls, pRtree, bp) - area
+}
+
+func cellOverlap(tls *libc.TLS, pRtree uintptr, p uintptr, aCell uintptr, nCell int32) RtreeDValue {
+ var ii int32
+ var overlap RtreeDValue = 0.0
+ for ii = 0; ii < nCell; ii++ {
+ var jj int32
+ var o RtreeDValue = RtreeDValue(1)
+ for jj = 0; jj < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2); jj = jj + 2 {
+ var x1 RtreeDValue
+ var x2 RtreeDValue
+ x1 = func() float64 {
+ if func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
+ }() > func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
+ }() {
+ return func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj)*4)))
+ }()
+ }
+ return func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj)*4)))
+ }()
+ }()
+ x2 = func() float64 {
+ if func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj+1)*4)))
+ }() < func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+1)*4)))
+ }() {
+ return func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(p + 8 + uintptr(jj+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(p + 8 + uintptr(jj+1)*4)))
+ }()
+ }
+ return func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(jj+1)*4)))
+ }()
+ }()
+ if x2 < x1 {
+ o = RtreeDValue(0)
+ break
+ } else {
+ o = o * (x2 - x1)
+ }
+ }
+ overlap = overlap + o
+ }
+ return overlap
+}
+
+func sChooseLeaf(tls *libc.TLS, pRtree uintptr, pCell uintptr, iHeight int32, ppLeaf uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var rc int32
+ var ii int32
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = nodeAcquire(tls, pRtree, int64(1), uintptr(0), bp)
+
+ for ii = 0; rc == SQLITE_OK && ii < (*Rtree)(unsafe.Pointer(pRtree)).FiDepth-iHeight; ii++ {
+ var iCell int32
+ var iBest Sqlite3_int64 = int64(0)
+
+ var fMinGrowth RtreeDValue = 0.0
+ var fMinArea RtreeDValue = 0.0
+
+ var nCell int32 = readInt16(tls, (*RtreeNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzData+2)
+
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+
+ var aCell uintptr = uintptr(0)
+
+ for iCell = 0; iCell < nCell; iCell++ {
+ var bBest int32 = 0
+ var growth RtreeDValue
+ var area RtreeDValue
+ nodeGetCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)), iCell, bp+8)
+ growth = cellGrowth(tls, pRtree, bp+8, pCell)
+ area = cellArea(tls, pRtree, bp+8)
+ if iCell == 0 || growth < fMinGrowth || growth == fMinGrowth && area < fMinArea {
+ bBest = 1
+ }
+ if bBest != 0 {
+ fMinGrowth = growth
+ fMinArea = area
+ iBest = (*RtreeCell)(unsafe.Pointer(bp + 8)).FiRowid
+ }
+ }
+
+ Xsqlite3_free(tls, aCell)
+ rc = nodeAcquire(tls, pRtree, iBest, *(*uintptr)(unsafe.Pointer(bp)), bp+56)
+ nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(bp + 56))
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppLeaf)) = *(*uintptr)(unsafe.Pointer(bp))
+ return rc
+}
+
+func sAdjustTree(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var p uintptr = pNode
+ var cnt int32 = 0
+ var rc int32
+ for (*RtreeNode)(unsafe.Pointer(p)).FpParent != 0 {
+ var pParent uintptr = (*RtreeNode)(unsafe.Pointer(p)).FpParent
+
+ cnt++
+ if cnt > 100 {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+ rc = nodeParentIndex(tls, pRtree, p, bp)
+ if rc != SQLITE_OK {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+
+ nodeGetCell(tls, pRtree, pParent, *(*int32)(unsafe.Pointer(bp)), bp+8)
+ if !(cellContains(tls, pRtree, bp+8, pCell) != 0) {
+ cellUnion(tls, pRtree, bp+8, pCell)
+ nodeOverwriteCell(tls, pRtree, pParent, bp+8, *(*int32)(unsafe.Pointer(bp)))
+ }
+
+ p = pParent
+ }
+ return SQLITE_OK
+}
+
+func rowidWrite(tls *libc.TLS, pRtree uintptr, iRowid Sqlite3_int64, iNode Sqlite3_int64) int32 {
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid, 1, iRowid)
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid, 2, iNode)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid)
+ return Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid)
+}
+
+func parentWrite(tls *libc.TLS, pRtree uintptr, iNode Sqlite3_int64, iPar Sqlite3_int64) int32 {
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteParent, 1, iNode)
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteParent, 2, iPar)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteParent)
+ return Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteParent)
+}
+
+func sSortByDistance(tls *libc.TLS, aIdx uintptr, nIdx int32, aDistance uintptr, aSpare uintptr) {
+ if nIdx > 1 {
+ var iLeft int32 = 0
+ var iRight int32 = 0
+
+ var nLeft int32 = nIdx / 2
+ var nRight int32 = nIdx - nLeft
+ var aLeft uintptr = aIdx
+ var aRight uintptr = aIdx + uintptr(nLeft)*4
+
+ sSortByDistance(tls, aLeft, nLeft, aDistance, aSpare)
+ sSortByDistance(tls, aRight, nRight, aDistance, aSpare)
+
+ libc.X__builtin___memcpy_chk(tls, aSpare, aLeft, uint64(unsafe.Sizeof(int32(0)))*uint64(nLeft), libc.X__builtin_object_size(tls, aSpare, 0))
+ aLeft = aSpare
+
+ for iLeft < nLeft || iRight < nRight {
+ if iLeft == nLeft {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4))
+ iRight++
+ } else if iRight == nRight {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4))
+ iLeft++
+ } else {
+ var fLeft RtreeDValue = *(*RtreeDValue)(unsafe.Pointer(aDistance + uintptr(*(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4)))*8))
+ var fRight RtreeDValue = *(*RtreeDValue)(unsafe.Pointer(aDistance + uintptr(*(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4)))*8))
+ if fLeft < fRight {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4))
+ iLeft++
+ } else {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4))
+ iRight++
+ }
+ }
+ }
+
+ }
+}
+
+func sSortByDimension(tls *libc.TLS, pRtree uintptr, aIdx uintptr, nIdx int32, iDim int32, aCell uintptr, aSpare uintptr) {
+ if nIdx > 1 {
+ var iLeft int32 = 0
+ var iRight int32 = 0
+
+ var nLeft int32 = nIdx / 2
+ var nRight int32 = nIdx - nLeft
+ var aLeft uintptr = aIdx
+ var aRight uintptr = aIdx + uintptr(nLeft)*4
+
+ sSortByDimension(tls, pRtree, aLeft, nLeft, iDim, aCell, aSpare)
+ sSortByDimension(tls, pRtree, aRight, nRight, iDim, aCell, aSpare)
+
+ libc.X__builtin___memcpy_chk(tls, aSpare, aLeft, uint64(unsafe.Sizeof(int32(0)))*uint64(nLeft), libc.X__builtin_object_size(tls, aSpare, 0))
+ aLeft = aSpare
+ for iLeft < nLeft || iRight < nRight {
+ var xleft1 RtreeDValue = func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4)))*48 + 8 + uintptr(iDim*2)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4)))*48 + 8 + uintptr(iDim*2)*4)))
+ }()
+ var xleft2 RtreeDValue = func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4)))*48 + 8 + uintptr(iDim*2+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4)))*48 + 8 + uintptr(iDim*2+1)*4)))
+ }()
+ var xright1 RtreeDValue = func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4)))*48 + 8 + uintptr(iDim*2)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4)))*48 + 8 + uintptr(iDim*2)*4)))
+ }()
+ var xright2 RtreeDValue = func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4)))*48 + 8 + uintptr(iDim*2+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(*(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4)))*48 + 8 + uintptr(iDim*2+1)*4)))
+ }()
+ if iLeft != nLeft && (iRight == nRight ||
+ xleft1 < xright1 ||
+ xleft1 == xright1 && xleft2 < xright2) {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aLeft + uintptr(iLeft)*4))
+ iLeft++
+ } else {
+ *(*int32)(unsafe.Pointer(aIdx + uintptr(iLeft+iRight)*4)) = *(*int32)(unsafe.Pointer(aRight + uintptr(iRight)*4))
+ iRight++
+ }
+ }
+
+ }
+}
+
+func splitNodeStartree(tls *libc.TLS, pRtree uintptr, aCell uintptr, nCell int32, pLeft uintptr, pRight uintptr, pBboxLeft uintptr, pBboxRight uintptr) int32 {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ var aaSorted uintptr
+ var aSpare uintptr
+ var ii int32
+
+ var iBestDim int32 = 0
+ var iBestSplit int32 = 0
+ var fBestMargin RtreeDValue = 0.0
+
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim)+1) * (uint64(unsafe.Sizeof(uintptr(0))) + uint64(nCell)*uint64(unsafe.Sizeof(int32(0)))))
+
+ aaSorted = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(aaSorted != 0) {
+ return SQLITE_NOMEM
+ }
+
+ aSpare = aaSorted + uintptr((*Rtree)(unsafe.Pointer(pRtree)).FnDim)*8 + uintptr(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim)*nCell)*4
+ libc.X__builtin___memset_chk(tls, aaSorted, 0, uint64(nByte), libc.X__builtin_object_size(tls, aaSorted, 0))
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim); ii++ {
+ var jj int32
+ *(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)) = aaSorted + uintptr((*Rtree)(unsafe.Pointer(pRtree)).FnDim)*8 + uintptr(ii*nCell)*4
+ for jj = 0; jj < nCell; jj++ {
+ *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)) + uintptr(jj)*4)) = jj
+ }
+ sSortByDimension(tls, pRtree, *(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)), nCell, ii, aCell, aSpare)
+ }
+
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim); ii++ {
+ var margin RtreeDValue = 0.0
+ var fBestOverlap RtreeDValue = 0.0
+ var fBestArea RtreeDValue = 0.0
+ var iBestLeft int32 = 0
+ var nLeft int32
+
+ for nLeft = ((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize - 4) / int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell) / 3; nLeft <= nCell-((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-4)/int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)/3; nLeft++ {
+ var kk int32
+ var overlap RtreeDValue
+ var area RtreeDValue
+
+ libc.X__builtin___memcpy_chk(tls, bp, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)))))*48, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memcpy_chk(tls, bp+48, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)) + uintptr(nCell-1)*4)))*48, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, bp+48, 0))
+ for kk = 1; kk < nCell-1; kk++ {
+ if kk < nLeft {
+ cellUnion(tls, pRtree, bp, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)) + uintptr(kk)*4)))*48)
+ } else {
+ cellUnion(tls, pRtree, bp+48, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(ii)*8)) + uintptr(kk)*4)))*48)
+ }
+ }
+ margin = margin + cellMargin(tls, pRtree, bp)
+ margin = margin + cellMargin(tls, pRtree, bp+48)
+ overlap = cellOverlap(tls, pRtree, bp, bp+48, 1)
+ area = cellArea(tls, pRtree, bp) + cellArea(tls, pRtree, bp+48)
+ if nLeft == ((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-4)/int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)/3 ||
+ overlap < fBestOverlap ||
+ overlap == fBestOverlap && area < fBestArea {
+ iBestLeft = nLeft
+ fBestOverlap = overlap
+ fBestArea = area
+ }
+ }
+
+ if ii == 0 || margin < fBestMargin {
+ iBestDim = ii
+ fBestMargin = margin
+ iBestSplit = iBestLeft
+ }
+ }
+
+ libc.X__builtin___memcpy_chk(tls, pBboxLeft, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(iBestDim)*8)))))*48, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, pBboxLeft, 0))
+ libc.X__builtin___memcpy_chk(tls, pBboxRight, aCell+uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(iBestDim)*8)) + uintptr(iBestSplit)*4)))*48, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, pBboxRight, 0))
+ for ii = 0; ii < nCell; ii++ {
+ var pTarget uintptr
+ if ii < iBestSplit {
+ pTarget = pLeft
+ } else {
+ pTarget = pRight
+ }
+ var pBbox uintptr
+ if ii < iBestSplit {
+ pBbox = pBboxLeft
+ } else {
+ pBbox = pBboxRight
+ }
+ var pCell uintptr = aCell + uintptr(*(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aaSorted + uintptr(iBestDim)*8)) + uintptr(ii)*4)))*48
+ nodeInsertCell(tls, pRtree, pTarget, pCell)
+ cellUnion(tls, pRtree, pBbox, pCell)
+ }
+
+ Xsqlite3_free(tls, aaSorted)
+ return SQLITE_OK
+}
+
+func updateMapping(tls *libc.TLS, pRtree uintptr, iRowid I64, pNode uintptr, iHeight int32) int32 {
+ var xSetMapping uintptr
+ xSetMapping = func() uintptr {
+ if iHeight == 0 {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64, Sqlite3_int64) int32
+ }{rowidWrite}))
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64, Sqlite3_int64) int32
+ }{parentWrite}))
+ }()
+ if iHeight > 0 {
+ var pChild uintptr = nodeHashLookup(tls, pRtree, iRowid)
+ var p uintptr
+ for p = pNode; p != 0; p = (*RtreeNode)(unsafe.Pointer(p)).FpParent {
+ if p == pChild {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ if pChild != 0 {
+ nodeRelease(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pChild)).FpParent)
+ nodeReference(tls, pNode)
+ (*RtreeNode)(unsafe.Pointer(pChild)).FpParent = pNode
+ }
+ }
+ if pNode == uintptr(0) {
+ return SQLITE_ERROR
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xSetMapping})).f(tls, pRtree, iRowid, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+}
+
+func sSplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHeight int32) int32 {
+ bp := tls.Alloc(100)
+ defer tls.Free(100)
+
+ var i int32
+ var newCellIsRight int32
+ var rc int32
+ var nCell int32
+ var aCell uintptr
+ var aiUsed uintptr
+ var pLeft uintptr
+ var pRight uintptr
+
+ var pParent uintptr
+
+ var iRowid I64
+ var iRowid1 I64
+ newCellIsRight = 0
+ rc = SQLITE_OK
+ nCell = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+ pLeft = uintptr(0)
+ pRight = uintptr(0)
+
+ aCell = Xsqlite3_malloc64(tls, (uint64(unsafe.Sizeof(RtreeCell{}))+uint64(unsafe.Sizeof(int32(0))))*uint64(nCell+1))
+ if !!(aCell != 0) {
+ goto __1
+ }
+ rc = SQLITE_NOMEM
+ goto splitnode_out
+__1:
+ ;
+ aiUsed = aCell + uintptr(nCell+1)*48
+ libc.X__builtin___memset_chk(tls, aiUsed, 0, uint64(unsafe.Sizeof(int32(0)))*uint64(nCell+1), libc.X__builtin_object_size(tls, aiUsed, 0))
+ i = 0
+__2:
+ if !(i < nCell) {
+ goto __4
+ }
+ nodeGetCell(tls, pRtree, pNode, i, aCell+uintptr(i)*48)
+ goto __3
+__3:
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+ nodeZero(tls, pRtree, pNode)
+ libc.X__builtin___memcpy_chk(tls, aCell+uintptr(nCell)*48, pCell, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, aCell+uintptr(nCell)*48, 0))
+ nCell++
+
+ if !((*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(1)) {
+ goto __5
+ }
+ pRight = nodeNew(tls, pRtree, pNode)
+ pLeft = nodeNew(tls, pRtree, pNode)
+ (*Rtree)(unsafe.Pointer(pRtree)).FiDepth++
+ (*RtreeNode)(unsafe.Pointer(pNode)).FisDirty = 1
+ writeInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData, (*Rtree)(unsafe.Pointer(pRtree)).FiDepth)
+ goto __6
+__5:
+ pLeft = pNode
+ pRight = nodeNew(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pLeft)).FpParent)
+ (*RtreeNode)(unsafe.Pointer(pLeft)).FnRef++
+__6:
+ ;
+ if !(!(pLeft != 0) || !(pRight != 0)) {
+ goto __7
+ }
+ rc = SQLITE_NOMEM
+ goto splitnode_out
+__7:
+ ;
+ libc.X__builtin___memset_chk(tls, (*RtreeNode)(unsafe.Pointer(pLeft)).FzData, 0, uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize), libc.X__builtin_object_size(tls, (*RtreeNode)(unsafe.Pointer(pLeft)).FzData, 0))
+ libc.X__builtin___memset_chk(tls, (*RtreeNode)(unsafe.Pointer(pRight)).FzData, 0, uint64((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize), libc.X__builtin_object_size(tls, (*RtreeNode)(unsafe.Pointer(pRight)).FzData, 0))
+
+ rc = splitNodeStartree(tls, pRtree, aCell, nCell, pLeft, pRight,
+ bp, bp+48)
+ if !(rc != SQLITE_OK) {
+ goto __8
+ }
+ goto splitnode_out
+__8:
+ ;
+ if !(SQLITE_OK != libc.AssignInt32(&rc, nodeWrite(tls, pRtree, pRight)) ||
+ int64(0) == (*RtreeNode)(unsafe.Pointer(pLeft)).FiNode && SQLITE_OK != libc.AssignInt32(&rc, nodeWrite(tls, pRtree, pLeft))) {
+ goto __9
+ }
+ goto splitnode_out
+__9:
+ ;
+ (*RtreeCell)(unsafe.Pointer(bp + 48)).FiRowid = (*RtreeNode)(unsafe.Pointer(pRight)).FiNode
+ (*RtreeCell)(unsafe.Pointer(bp)).FiRowid = (*RtreeNode)(unsafe.Pointer(pLeft)).FiNode
+
+ if !((*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(1)) {
+ goto __10
+ }
+ rc = rtreeInsertCell(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pLeft)).FpParent, bp, iHeight+1)
+ if !(rc != SQLITE_OK) {
+ goto __12
+ }
+ goto splitnode_out
+__12:
+ ;
+ goto __11
+__10:
+ pParent = (*RtreeNode)(unsafe.Pointer(pLeft)).FpParent
+ rc = nodeParentIndex(tls, pRtree, pLeft, bp+96)
+ if !(rc == SQLITE_OK) {
+ goto __13
+ }
+ nodeOverwriteCell(tls, pRtree, pParent, bp, *(*int32)(unsafe.Pointer(bp + 96)))
+ rc = sAdjustTree(tls, pRtree, pParent, bp)
+
+__13:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __14
+ }
+ goto splitnode_out
+__14:
+ ;
+__11:
+ ;
+ if !(libc.AssignInt32(&rc, rtreeInsertCell(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pRight)).FpParent, bp+48, iHeight+1)) != 0) {
+ goto __15
+ }
+ goto splitnode_out
+__15:
+ ;
+ i = 0
+__16:
+ if !(i < readInt16(tls, (*RtreeNode)(unsafe.Pointer(pRight)).FzData+2)) {
+ goto __18
+ }
+ iRowid = nodeGetRowid(tls, pRtree, pRight, i)
+ rc = updateMapping(tls, pRtree, iRowid, pRight, iHeight)
+ if !(iRowid == (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid) {
+ goto __19
+ }
+ newCellIsRight = 1
+__19:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __20
+ }
+ goto splitnode_out
+__20:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ if !((*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(1)) {
+ goto __21
+ }
+ i = 0
+__23:
+ if !(i < readInt16(tls, (*RtreeNode)(unsafe.Pointer(pLeft)).FzData+2)) {
+ goto __25
+ }
+ iRowid1 = nodeGetRowid(tls, pRtree, pLeft, i)
+ rc = updateMapping(tls, pRtree, iRowid1, pLeft, iHeight)
+ if !(rc != SQLITE_OK) {
+ goto __26
+ }
+ goto splitnode_out
+__26:
+ ;
+ goto __24
+__24:
+ i++
+ goto __23
+ goto __25
+__25:
+ ;
+ goto __22
+__21:
+ if !(newCellIsRight == 0) {
+ goto __27
+ }
+ rc = updateMapping(tls, pRtree, (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid, pLeft, iHeight)
+__27:
+ ;
+__22:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __28
+ }
+ rc = nodeRelease(tls, pRtree, pRight)
+ pRight = uintptr(0)
+__28:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __29
+ }
+ rc = nodeRelease(tls, pRtree, pLeft)
+ pLeft = uintptr(0)
+__29:
+ ;
+splitnode_out:
+ nodeRelease(tls, pRtree, pRight)
+ nodeRelease(tls, pRtree, pLeft)
+ Xsqlite3_free(tls, aCell)
+ return rc
+}
+
+func fixLeafParent(tls *libc.TLS, pRtree uintptr, pLeaf uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pChild uintptr = pLeaf
+ for rc == SQLITE_OK && (*RtreeNode)(unsafe.Pointer(pChild)).FiNode != int64(1) && (*RtreeNode)(unsafe.Pointer(pChild)).FpParent == uintptr(0) {
+ var rc2 int32 = SQLITE_OK
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadParent, 1, (*RtreeNode)(unsafe.Pointer(pChild)).FiNode)
+ rc = Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadParent)
+ if rc == SQLITE_ROW {
+ var pTest uintptr
+ var iNode I64
+
+ iNode = Xsqlite3_column_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadParent, 0)
+ for pTest = pLeaf; pTest != 0 && (*RtreeNode)(unsafe.Pointer(pTest)).FiNode != iNode; pTest = (*RtreeNode)(unsafe.Pointer(pTest)).FpParent {
+ }
+ if pTest == uintptr(0) {
+ rc2 = nodeAcquire(tls, pRtree, iNode, uintptr(0), pChild)
+ }
+ }
+ rc = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadParent)
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ if rc == SQLITE_OK && !(int32((*RtreeNode)(unsafe.Pointer(pChild)).FpParent) != 0) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ pChild = (*RtreeNode)(unsafe.Pointer(pChild)).FpParent
+ }
+ return rc
+}
+
+func removeNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, iHeight int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ var rc2 int32
+ var pParent uintptr = uintptr(0)
+
+ rc = nodeParentIndex(tls, pRtree, pNode, bp)
+ if rc == SQLITE_OK {
+ pParent = (*RtreeNode)(unsafe.Pointer(pNode)).FpParent
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpParent = uintptr(0)
+ rc = deleteCell(tls, pRtree, pParent, *(*int32)(unsafe.Pointer(bp)), iHeight+1)
+
+ }
+ rc2 = nodeRelease(tls, pRtree, pParent)
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteNode, 1, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteNode)
+ if SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteNode)) {
+ return rc
+ }
+
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteParent, 1, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteParent)
+ if SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteParent)) {
+ return rc
+ }
+
+ nodeHashDelete(tls, pRtree, pNode)
+ (*RtreeNode)(unsafe.Pointer(pNode)).FiNode = I64(iHeight)
+ (*RtreeNode)(unsafe.Pointer(pNode)).FpNext = (*Rtree)(unsafe.Pointer(pRtree)).FpDeleted
+ (*RtreeNode)(unsafe.Pointer(pNode)).FnRef++
+ (*Rtree)(unsafe.Pointer(pRtree)).FpDeleted = pNode
+
+ return SQLITE_OK
+}
+
+func fixBoundingBox(tls *libc.TLS, pRtree uintptr, pNode uintptr) int32 {
+ bp := tls.Alloc(100)
+ defer tls.Free(100)
+
+ var pParent uintptr = (*RtreeNode)(unsafe.Pointer(pNode)).FpParent
+ var rc int32 = SQLITE_OK
+ if pParent != 0 {
+ var nCell int32 = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+
+ nodeGetCell(tls, pRtree, pNode, 0, bp)
+ for *(*int32)(unsafe.Pointer(bp + 96)) = 1; *(*int32)(unsafe.Pointer(bp + 96)) < nCell; *(*int32)(unsafe.Pointer(bp + 96))++ {
+ nodeGetCell(tls, pRtree, pNode, *(*int32)(unsafe.Pointer(bp + 96)), bp+48)
+ cellUnion(tls, pRtree, bp, bp+48)
+ }
+ (*RtreeCell)(unsafe.Pointer(bp)).FiRowid = (*RtreeNode)(unsafe.Pointer(pNode)).FiNode
+ rc = nodeParentIndex(tls, pRtree, pNode, bp+96)
+ if rc == SQLITE_OK {
+ nodeOverwriteCell(tls, pRtree, pParent, bp, *(*int32)(unsafe.Pointer(bp + 96)))
+ rc = fixBoundingBox(tls, pRtree, pParent)
+ }
+ }
+ return rc
+}
+
+func deleteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32, iHeight int32) int32 {
+ var pParent uintptr
+ var rc int32
+
+ if SQLITE_OK != libc.AssignInt32(&rc, fixLeafParent(tls, pRtree, pNode)) {
+ return rc
+ }
+
+ nodeDeleteCell(tls, pRtree, pNode, iCell)
+
+ pParent = (*RtreeNode)(unsafe.Pointer(pNode)).FpParent
+
+ if pParent != 0 {
+ if readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2) < ((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-4)/int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)/3 {
+ rc = removeNode(tls, pRtree, pNode, iHeight)
+ } else {
+ rc = fixBoundingBox(tls, pRtree, pNode)
+ }
+ }
+
+ return rc
+}
+
+func sReinsert(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHeight int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var aOrder uintptr
+ var aSpare uintptr
+ var aCell uintptr
+ var aDistance uintptr
+ var nCell int32
+
+ var iDim int32
+ var ii int32
+ var rc int32 = SQLITE_OK
+ var n int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(RtreeDValue(0)))*uint64(RTREE_MAX_DIMENSIONS), libc.X__builtin_object_size(tls, bp, 0))
+
+ nCell = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2) + 1
+ n = (nCell + 1) & libc.CplInt32(1)
+
+ aCell = Xsqlite3_malloc64(tls, uint64(n)*(uint64(unsafe.Sizeof(RtreeCell{}))+uint64(unsafe.Sizeof(int32(0)))+uint64(unsafe.Sizeof(int32(0)))+uint64(unsafe.Sizeof(RtreeDValue(0)))))
+ if !(aCell != 0) {
+ return SQLITE_NOMEM
+ }
+ aOrder = aCell + uintptr(n)*48
+ aSpare = aOrder + uintptr(n)*4
+ aDistance = aSpare + uintptr(n)*4
+
+ for ii = 0; ii < nCell; ii++ {
+ if ii == nCell-1 {
+ libc.X__builtin___memcpy_chk(tls, aCell+uintptr(ii)*48, pCell, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, aCell+uintptr(ii)*48, 0))
+ } else {
+ nodeGetCell(tls, pRtree, pNode, ii, aCell+uintptr(ii)*48)
+ }
+ *(*int32)(unsafe.Pointer(aOrder + uintptr(ii)*4)) = ii
+ for iDim = 0; iDim < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim); iDim++ {
+ *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8)) += func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2)*4)))
+ }()
+ *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8)) += func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2+1)*4)))
+ }()
+ }
+ }
+ for iDim = 0; iDim < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim); iDim++ {
+ *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8)) = *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8)) / (float64(nCell) * RtreeDValue(2))
+ }
+
+ for ii = 0; ii < nCell; ii++ {
+ *(*RtreeDValue)(unsafe.Pointer(aDistance + uintptr(ii)*8)) = 0.0
+ for iDim = 0; iDim < int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim); iDim++ {
+ var coord RtreeDValue = func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2+1)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2+1)*4)))
+ }() - func() float64 {
+ if int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 {
+ return float64(*(*RtreeValue)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2)*4)))
+ }
+ return float64(*(*int32)(unsafe.Pointer(aCell + uintptr(ii)*48 + 8 + uintptr(iDim*2)*4)))
+ }()
+ *(*RtreeDValue)(unsafe.Pointer(aDistance + uintptr(ii)*8)) += (coord - *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8))) * (coord - *(*RtreeDValue)(unsafe.Pointer(bp + uintptr(iDim)*8)))
+ }
+ }
+
+ sSortByDistance(tls, aOrder, nCell, aDistance, aSpare)
+ nodeZero(tls, pRtree, pNode)
+
+ for ii = 0; rc == SQLITE_OK && ii < nCell-(((*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize-4)/int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)/3+1); ii++ {
+ var p uintptr = aCell + uintptr(*(*int32)(unsafe.Pointer(aOrder + uintptr(ii)*4)))*48
+ nodeInsertCell(tls, pRtree, pNode, p)
+ if (*RtreeCell)(unsafe.Pointer(p)).FiRowid == (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid {
+ if iHeight == 0 {
+ rc = rowidWrite(tls, pRtree, (*RtreeCell)(unsafe.Pointer(p)).FiRowid, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ } else {
+ rc = parentWrite(tls, pRtree, (*RtreeCell)(unsafe.Pointer(p)).FiRowid, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ }
+ }
+ }
+ if rc == SQLITE_OK {
+ rc = fixBoundingBox(tls, pRtree, pNode)
+ }
+ for ; rc == SQLITE_OK && ii < nCell; ii++ {
+ var p uintptr = aCell + uintptr(*(*int32)(unsafe.Pointer(aOrder + uintptr(ii)*4)))*48
+ rc = sChooseLeaf(tls, pRtree, p, iHeight, bp+40)
+ if rc == SQLITE_OK {
+ var rc2 int32
+ rc = rtreeInsertCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 40)), p, iHeight)
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+ }
+
+ Xsqlite3_free(tls, aCell)
+ return rc
+}
+
+func rtreeInsertCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHeight int32) int32 {
+ var rc int32 = SQLITE_OK
+ if iHeight > 0 {
+ var pChild uintptr = nodeHashLookup(tls, pRtree, (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid)
+ if pChild != 0 {
+ nodeRelease(tls, pRtree, (*RtreeNode)(unsafe.Pointer(pChild)).FpParent)
+ nodeReference(tls, pNode)
+ (*RtreeNode)(unsafe.Pointer(pChild)).FpParent = pNode
+ }
+ }
+ if nodeInsertCell(tls, pRtree, pNode, pCell) != 0 {
+ if iHeight <= (*Rtree)(unsafe.Pointer(pRtree)).FiReinsertHeight || (*RtreeNode)(unsafe.Pointer(pNode)).FiNode == int64(1) {
+ rc = sSplitNode(tls, pRtree, pNode, pCell, iHeight)
+ } else {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiReinsertHeight = iHeight
+ rc = sReinsert(tls, pRtree, pNode, pCell, iHeight)
+ }
+ } else {
+ rc = sAdjustTree(tls, pRtree, pNode, pCell)
+ if rc == SQLITE_OK {
+ if iHeight == 0 {
+ rc = rowidWrite(tls, pRtree, (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ } else {
+ rc = parentWrite(tls, pRtree, (*RtreeCell)(unsafe.Pointer(pCell)).FiRowid, (*RtreeNode)(unsafe.Pointer(pNode)).FiNode)
+ }
+ }
+ }
+ return rc
+}
+
+func reinsertNodeContent(tls *libc.TLS, pRtree uintptr, pNode uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var ii int32
+ var rc int32 = SQLITE_OK
+ var nCell int32 = readInt16(tls, (*RtreeNode)(unsafe.Pointer(pNode)).FzData+2)
+
+ for ii = 0; rc == SQLITE_OK && ii < nCell; ii++ {
+ nodeGetCell(tls, pRtree, pNode, ii, bp)
+
+ rc = sChooseLeaf(tls, pRtree, bp, int32((*RtreeNode)(unsafe.Pointer(pNode)).FiNode), bp+48)
+ if rc == SQLITE_OK {
+ var rc2 int32
+ rc = rtreeInsertCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 48)), bp, int32((*RtreeNode)(unsafe.Pointer(pNode)).FiNode))
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+ }
+ return rc
+}
+
+func rtreeNewRowid(tls *libc.TLS, pRtree uintptr, piRowid uintptr) int32 {
+ var rc int32
+ Xsqlite3_bind_null(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid, 1)
+ Xsqlite3_bind_null(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid, 2)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid)
+ rc = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpWriteRowid)
+ *(*I64)(unsafe.Pointer(piRowid)) = Xsqlite3_last_insert_rowid(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb)
+ return rc
+}
+
+func rtreeDeleteRowid(tls *libc.TLS, pRtree uintptr, iDelete Sqlite3_int64) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ rc = nodeAcquire(tls, pRtree, int64(1), uintptr(0), bp)
+
+ if rc == SQLITE_OK {
+ rc = findLeafNode(tls, pRtree, iDelete, bp+8, uintptr(0))
+ }
+
+ if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ var rc2 int32
+ rc = nodeRowidIndex(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 8)), iDelete, bp+16)
+ if rc == SQLITE_OK {
+ rc = deleteCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), 0)
+ }
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteRowid, 1, iDelete)
+ Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteRowid)
+ rc = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpDeleteRowid)
+ }
+
+ if rc == SQLITE_OK && (*Rtree)(unsafe.Pointer(pRtree)).FiDepth > 0 && readInt16(tls, (*RtreeNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzData+2) == 1 {
+ var rc2 int32
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ var iChild I64 = nodeGetRowid(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ rc = nodeAcquire(tls, pRtree, iChild, *(*uintptr)(unsafe.Pointer(bp)), bp+24)
+ if rc == SQLITE_OK {
+ rc = removeNode(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 24)), (*Rtree)(unsafe.Pointer(pRtree)).FiDepth-1)
+ }
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ if rc == SQLITE_OK {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiDepth--
+ writeInt16(tls, (*RtreeNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzData, (*Rtree)(unsafe.Pointer(pRtree)).FiDepth)
+ (*RtreeNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisDirty = 1
+ }
+ }
+
+ for *(*uintptr)(unsafe.Pointer(bp + 8)) = (*Rtree)(unsafe.Pointer(pRtree)).FpDeleted; *(*uintptr)(unsafe.Pointer(bp + 8)) != 0; *(*uintptr)(unsafe.Pointer(bp + 8)) = (*Rtree)(unsafe.Pointer(pRtree)).FpDeleted {
+ if rc == SQLITE_OK {
+ rc = reinsertNodeContent(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FpDeleted = (*RtreeNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpNext
+ (*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef--
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+
+ if rc == SQLITE_OK {
+ rc = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)))
+ } else {
+ nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return rc
+}
+
+func rtreeValueDown(tls *libc.TLS, v uintptr) RtreeValue {
+ var d float64 = Xsqlite3_value_double(tls, v)
+ var f float32 = float32(d)
+ if float64(f) > d {
+ f = float32(d * func() float64 {
+ if d < float64(0) {
+ return float64(1.0) + float64(1.0)/8388608.0
+ }
+ return float64(1.0) - float64(1.0)/8388608.0
+ }())
+ }
+ return f
+}
+
+func rtreeValueUp(tls *libc.TLS, v uintptr) RtreeValue {
+ var d float64 = Xsqlite3_value_double(tls, v)
+ var f float32 = float32(d)
+ if float64(f) < d {
+ f = float32(d * func() float64 {
+ if d < float64(0) {
+ return float64(1.0) - float64(1.0)/8388608.0
+ }
+ return float64(1.0) + float64(1.0)/8388608.0
+ }())
+ }
+ return f
+}
+
+func rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ var zSql uintptr
+ var rc int32
+
+ zSql = Xsqlite3_mprintf(tls, ts+25607, libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ if zSql != 0 {
+ rc = Xsqlite3_prepare_v2(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -1, bp+56, uintptr(0))
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ Xsqlite3_free(tls, zSql)
+
+ if rc == SQLITE_OK {
+ if iCol == 0 {
+ var zCol uintptr = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp + 56)), 0)
+ (*Rtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+25627, libc.VaList(bp+16, (*Rtree)(unsafe.Pointer(pRtree)).FzName, zCol))
+ } else {
+ var zCol1 uintptr = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp + 56)), iCol)
+ var zCol2 uintptr = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp + 56)), iCol+1)
+ (*Rtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+25659, libc.VaList(bp+32, (*Rtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2))
+ }
+ }
+
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 56)))
+ return func() int32 {
+ if rc == SQLITE_OK {
+ return SQLITE_CONSTRAINT
+ }
+ return rc
+ }()
+}
+
+func rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRowid uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var pRtree uintptr
+ var rc int32
+
+ var bHaveRowid int32
+ var steprc int32
+ var ii int32
+ var nn int32
+ var rc2 int32
+ var pUp uintptr
+ var jj int32
+
+ pRtree = pVtab
+ rc = SQLITE_OK
+ bHaveRowid = 0
+
+ if !((*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef != 0) {
+ goto __1
+ }
+
+ return SQLITE_LOCKED | int32(2)<<8
+__1:
+ ;
+ rtreeReference(tls, pRtree)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(RtreeCell{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ if !(nData > 1) {
+ goto __2
+ }
+ nn = nData - 4
+
+ if !(nn > int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)) {
+ goto __3
+ }
+ nn = int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)
+__3:
+ ;
+ if !(int32((*Rtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32) {
+ goto __4
+ }
+ ii = 0
+__6:
+ if !(ii < nn) {
+ goto __8
+ }
+ *(*RtreeValue)(unsafe.Pointer(bp + 8 + uintptr(ii)*4)) = rtreeValueDown(tls, *(*uintptr)(unsafe.Pointer(aData + uintptr(ii+3)*8)))
+ *(*RtreeValue)(unsafe.Pointer(bp + 8 + uintptr(ii+1)*4)) = rtreeValueUp(tls, *(*uintptr)(unsafe.Pointer(aData + uintptr(ii+4)*8)))
+ if !(*(*RtreeValue)(unsafe.Pointer(bp + 8 + uintptr(ii)*4)) > *(*RtreeValue)(unsafe.Pointer(bp + 8 + uintptr(ii+1)*4))) {
+ goto __9
+ }
+ rc = rtreeConstraintError(tls, pRtree, ii+1)
+ goto constraint
+__9:
+ ;
+ goto __7
+__7:
+ ii = ii + 2
+ goto __6
+ goto __8
+__8:
+ ;
+ goto __5
+__4:
+ ii = 0
+__10:
+ if !(ii < nn) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 8 + uintptr(ii)*4)) = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(aData + uintptr(ii+3)*8)))
+ *(*int32)(unsafe.Pointer(bp + 8 + uintptr(ii+1)*4)) = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(aData + uintptr(ii+4)*8)))
+ if !(*(*int32)(unsafe.Pointer(bp + 8 + uintptr(ii)*4)) > *(*int32)(unsafe.Pointer(bp + 8 + uintptr(ii+1)*4))) {
+ goto __13
+ }
+ rc = rtreeConstraintError(tls, pRtree, ii+1)
+ goto constraint
+__13:
+ ;
+ goto __11
+__11:
+ ii = ii + 2
+ goto __10
+ goto __12
+__12:
+ ;
+__5:
+ ;
+ if !(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData + 2*8))) != SQLITE_NULL) {
+ goto __14
+ }
+ (*RtreeCell)(unsafe.Pointer(bp)).FiRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(aData + 2*8)))
+ if !(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData))) == SQLITE_NULL ||
+ Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(aData))) != (*RtreeCell)(unsafe.Pointer(bp)).FiRowid) {
+ goto __15
+ }
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid, 1, (*RtreeCell)(unsafe.Pointer(bp)).FiRowid)
+ steprc = Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ rc = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ if !(SQLITE_ROW == steprc) {
+ goto __16
+ }
+ if !(Xsqlite3_vtab_on_conflict(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb) == SQLITE_REPLACE) {
+ goto __17
+ }
+ rc = rtreeDeleteRowid(tls, pRtree, (*RtreeCell)(unsafe.Pointer(bp)).FiRowid)
+ goto __18
+__17:
+ rc = rtreeConstraintError(tls, pRtree, 0)
+ goto constraint
+__18:
+ ;
+__16:
+ ;
+__15:
+ ;
+ bHaveRowid = 1
+__14:
+ ;
+__2:
+ ;
+ if !(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData))) != SQLITE_NULL) {
+ goto __19
+ }
+ rc = rtreeDeleteRowid(tls, pRtree, Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(aData))))
+__19:
+ ;
+ if !(rc == SQLITE_OK && nData > 1) {
+ goto __20
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+
+ if !(bHaveRowid == 0) {
+ goto __21
+ }
+ rc = rtreeNewRowid(tls, pRtree, bp)
+__21:
+ ;
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = (*RtreeCell)(unsafe.Pointer(bp)).FiRowid
+
+ if !(rc == SQLITE_OK) {
+ goto __22
+ }
+ rc = sChooseLeaf(tls, pRtree, bp, 0, bp+48)
+__22:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __23
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FiReinsertHeight = -1
+ rc = rtreeInsertCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 48)), bp, 0)
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ if !(rc == SQLITE_OK) {
+ goto __24
+ }
+ rc = rc2
+__24:
+ ;
+__23:
+ ;
+ if !(rc == SQLITE_OK && (*Rtree)(unsafe.Pointer(pRtree)).FnAux != 0) {
+ goto __25
+ }
+ pUp = (*Rtree)(unsafe.Pointer(pRtree)).FpWriteAux
+ Xsqlite3_bind_int64(tls, pUp, 1, *(*Sqlite_int64)(unsafe.Pointer(pRowid)))
+ jj = 0
+__26:
+ if !(jj < int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux)) {
+ goto __28
+ }
+ Xsqlite3_bind_value(tls, pUp, jj+2, *(*uintptr)(unsafe.Pointer(aData + uintptr(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)+3+jj)*8)))
+ goto __27
+__27:
+ jj++
+ goto __26
+ goto __28
+__28:
+ ;
+ Xsqlite3_step(tls, pUp)
+ rc = Xsqlite3_reset(tls, pUp)
+__25:
+ ;
+__20:
+ ;
+constraint:
+ rtreeRelease(tls, pRtree)
+ return rc
+}
+
+func rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) int32 {
+ var pRtree uintptr = pVtab
+
+ (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans++
+ return SQLITE_OK
+}
+
+func rtreeEndTransaction(tls *libc.TLS, pVtab uintptr) int32 {
+ var pRtree uintptr = pVtab
+ (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans = U8(0)
+ nodeBlobReset(tls, pRtree)
+ return SQLITE_OK
+}
+
+func rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var pRtree uintptr = pVtab
+ var rc int32 = SQLITE_NOMEM
+ var zSql uintptr = Xsqlite3_mprintf(tls,
+ ts+25696, libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName, zNewName))
+ if zSql != 0 {
+ nodeBlobReset(tls, pRtree)
+ rc = Xsqlite3_exec(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3_free(tls, zSql)
+ }
+ return rc
+}
+
+func rtreeSavepoint(tls *libc.TLS, pVtab uintptr, iSavepoint int32) int32 {
+ var pRtree uintptr = pVtab
+ var iwt U8 = (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans
+ _ = iSavepoint
+ (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans = U8(0)
+ nodeBlobReset(tls, pRtree)
+ (*Rtree)(unsafe.Pointer(pRtree)).FinWrTrans = iwt
+ return SQLITE_OK
+}
+
+func rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var zFmt uintptr = ts + 25841
+ var zSql uintptr
+
+ var rc int32
+ var nRow I64 = int64(RTREE_MIN_ROWEST)
+
+ rc = Xsqlite3_table_column_metadata(tls,
+ db, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, ts+11751, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
+ if rc != SQLITE_OK {
+ (*Rtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST)
+ if rc == SQLITE_ERROR {
+ return SQLITE_OK
+ }
+ return rc
+ }
+ zSql = Xsqlite3_mprintf(tls, zFmt, libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp+16, uintptr(0))
+ if rc == SQLITE_OK {
+ if Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) == SQLITE_ROW {
+ nRow = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 0)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ Xsqlite3_free(tls, zSql)
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FnRowEst = func() int64 {
+ if nRow > int64(RTREE_MIN_ROWEST) {
+ return nRow
+ }
+ return int64(RTREE_MIN_ROWEST)
+ }()
+ return rc
+}
+
+func rtreeShadowName(tls *libc.TLS, zName uintptr) int32 {
+ var i uint32
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(azName1))/uint64(unsafe.Sizeof(uintptr(0))); i++ {
+ if Xsqlite3_stricmp(tls, zName, azName1[i]) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+var azName1 = [3]uintptr{
+ ts + 25897, ts + 5463, ts + 16673,
+}
+
+var rtreeModule = Sqlite3_module{
+ FiVersion: 3,
+ FxCreate: 0,
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxDestroy: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+ FxUpdate: 0,
+ FxBegin: 0,
+ FxSync: 0,
+ FxCommit: 0,
+ FxRollback: 0,
+ FxRename: 0,
+ FxSavepoint: 0,
+ FxShadowName: 0,
+}
+
+func rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPrefix uintptr, isCreate int32) int32 {
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ var rc int32 = SQLITE_OK
+
+ var i int32
+ var f int32 = SQLITE_PREPARE_PERSISTENT | SQLITE_PREPARE_NO_VTAB
+
+ (*Rtree)(unsafe.Pointer(pRtree)).Fdb = db
+
+ if isCreate != 0 {
+ var zCreate uintptr
+ var p uintptr = Xsqlite3_str_new(tls, db)
+ var ii int32
+ Xsqlite3_str_appendf(tls, p,
+ ts+25902,
+ libc.VaList(bp, zDb, zPrefix))
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux); ii++ {
+ Xsqlite3_str_appendf(tls, p, ts+25964, libc.VaList(bp+16, ii))
+ }
+ Xsqlite3_str_appendf(tls, p,
+ ts+25969,
+ libc.VaList(bp+24, zDb, zPrefix))
+ Xsqlite3_str_appendf(tls, p,
+ ts+26033,
+ libc.VaList(bp+40, zDb, zPrefix))
+ Xsqlite3_str_appendf(tls, p,
+ ts+26103,
+ libc.VaList(bp+56, zDb, zPrefix, (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize))
+ zCreate = Xsqlite3_str_finish(tls, p)
+ if !(zCreate != 0) {
+ return SQLITE_NOMEM
+ }
+ rc = Xsqlite3_exec(tls, db, zCreate, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3_free(tls, zCreate)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 168)) = pRtree + 120
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 1*8)) = pRtree + 128
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 2*8)) = pRtree + 136
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 3*8)) = pRtree + 144
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 4*8)) = pRtree + 152
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 5*8)) = pRtree + 160
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 6*8)) = pRtree + 168
+ *(*uintptr)(unsafe.Pointer(bp + 168 + 7*8)) = pRtree + 176
+
+ rc = rtreeQueryStat1(tls, db, pRtree)
+ for i = 0; i < N_STATEMENT && rc == SQLITE_OK; i++ {
+ var zSql uintptr
+ var zFormat uintptr
+ if i != 3 || int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux) == 0 {
+ zFormat = azSql[i]
+ } else {
+ zFormat = ts + 26152
+ }
+ zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+80, zDb, zPrefix))
+ if zSql != 0 {
+ rc = Xsqlite3_prepare_v3(tls, db, zSql, -1, uint32(f), *(*uintptr)(unsafe.Pointer(bp + 168 + uintptr(i)*8)), uintptr(0))
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ Xsqlite3_free(tls, zSql)
+ }
+ if (*Rtree)(unsafe.Pointer(pRtree)).FnAux != 0 {
+ (*Rtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls,
+ ts+26260,
+ libc.VaList(bp+96, zDb, zPrefix))
+ if (*Rtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var p uintptr = Xsqlite3_str_new(tls, db)
+ var ii int32
+ var zSql uintptr
+ Xsqlite3_str_appendf(tls, p, ts+26305, libc.VaList(bp+112, zDb, zPrefix))
+ for ii = 0; ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux); ii++ {
+ if ii != 0 {
+ Xsqlite3_str_append(tls, p, ts+13170, 1)
+ }
+ if ii < int32((*Rtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) {
+ Xsqlite3_str_appendf(tls, p, ts+26332, libc.VaList(bp+128, ii, ii+2, ii))
+ } else {
+ Xsqlite3_str_appendf(tls, p, ts+26354, libc.VaList(bp+152, ii, ii+2))
+ }
+ }
+ Xsqlite3_str_appendf(tls, p, ts+26362, 0)
+ zSql = Xsqlite3_str_finish(tls, p)
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_prepare_v3(tls, db, zSql, -1, uint32(f), pRtree+184, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+ }
+ }
+ }
+
+ return rc
+}
+
+var azSql = [8]uintptr{
+ ts + 26378,
+ ts + 26431,
+ ts + 26476,
+ ts + 26528,
+ ts + 26582,
+ ts + 26627,
+ ts + 26685,
+ ts + 26740,
+}
+
+func getIntFromStmt(tls *libc.TLS, db uintptr, zSql uintptr, piVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_NOMEM
+ if zSql != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = Xsqlite3_prepare_v2(tls, db, zSql, -1, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ *(*int32)(unsafe.Pointer(piVal)) = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ return rc
+}
+
+func getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzErr uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var rc int32
+ var zSql uintptr
+ if isCreate != 0 {
+ *(*int32)(unsafe.Pointer(bp + 48)) = 0
+ zSql = Xsqlite3_mprintf(tls, ts+26787, libc.VaList(bp, (*Rtree)(unsafe.Pointer(pRtree)).FzDb))
+ rc = getIntFromStmt(tls, db, zSql, bp+48)
+ if rc == SQLITE_OK {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp + 48)) - 64
+ if 4+int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*RTREE_MAXCELLS < (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize {
+ (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize = 4 + int32((*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*RTREE_MAXCELLS
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db)))
+ }
+ } else {
+ zSql = Xsqlite3_mprintf(tls,
+ ts+26807,
+ libc.VaList(bp+16, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ rc = getIntFromStmt(tls, db, zSql, pRtree+32)
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+32, Xsqlite3_errmsg(tls, db)))
+ } else if (*Rtree)(unsafe.Pointer(pRtree)).FiNodeSize < 512-64 {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+26864,
+ libc.VaList(bp+40, (*Rtree)(unsafe.Pointer(pRtree)).FzName))
+ }
+ }
+
+ Xsqlite3_free(tls, zSql)
+ return rc
+}
+
+func rtreeTokenLength(tls *libc.TLS, z uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ return Xsqlite3GetToken(tls, z, bp)
+}
+
+func rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr, isCreate int32) int32 {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var rc int32
+ var pRtree uintptr
+ var nDb int32
+ var nName int32
+ var eCoordType int32
+ var pSql uintptr
+ var zSql uintptr
+ var ii int32
+ var iErr int32
+
+ var zArg uintptr
+ rc = SQLITE_OK
+ eCoordType = func() int32 {
+ if pAux != 0 {
+ return RTREE_COORD_INT32
+ }
+ return RTREE_COORD_REAL32
+ }()
+ ii = 4
+ *(*[5]uintptr)(unsafe.Pointer(bp + 96)) = [5]uintptr{
+ uintptr(0),
+ ts + 26899,
+ ts + 26942,
+ ts + 26977,
+ ts + 27013,
+ }
+
+ if !(argc < 6 || argc > RTREE_MAX_AUX_COLUMN+3) {
+ goto __1
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 96 + uintptr(2+libc.Bool32(argc >= 6))*8))))
+ return SQLITE_ERROR
+__1:
+ ;
+ Xsqlite3_vtab_config(tls, db, SQLITE_VTAB_CONSTRAINT_SUPPORT, libc.VaList(bp+8, 1))
+
+ nDb = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))
+ nName = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ pRtree = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Rtree{}))+uint64(nDb)+uint64(nName)+uint64(2))
+ if !!(pRtree != 0) {
+ goto __2
+ }
+ return SQLITE_NOMEM
+__2:
+ ;
+ libc.X__builtin___memset_chk(tls, pRtree, 0, uint64(unsafe.Sizeof(Rtree{}))+uint64(nDb)+uint64(nName)+uint64(2), libc.X__builtin_object_size(tls, pRtree, 0))
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBusy = U32(1)
+ (*Rtree)(unsafe.Pointer(pRtree)).Fbase.FpModule = uintptr(unsafe.Pointer(&rtreeModule))
+ (*Rtree)(unsafe.Pointer(pRtree)).FzDb = pRtree + 1*968
+ (*Rtree)(unsafe.Pointer(pRtree)).FzName = (*Rtree)(unsafe.Pointer(pRtree)).FzDb + uintptr(nDb+1)
+ (*Rtree)(unsafe.Pointer(pRtree)).FeCoordType = U8(eCoordType)
+ libc.X__builtin___memcpy_chk(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, 0))
+ libc.X__builtin___memcpy_chk(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzName, 0))
+
+ pSql = Xsqlite3_str_new(tls, db)
+ Xsqlite3_str_appendf(tls, pSql, ts+27050,
+ libc.VaList(bp+16, rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8))))
+ ii = 4
+__3:
+ if !(ii < argc) {
+ goto __5
+ }
+ zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8))
+ if !(int32(*(*int8)(unsafe.Pointer(zArg))) == '+') {
+ goto __6
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FnAux++
+ Xsqlite3_str_appendf(tls, pSql, ts+27074, libc.VaList(bp+32, rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1)))
+ goto __7
+__6:
+ if !(int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux) > 0) {
+ goto __8
+ }
+ goto __5
+ goto __9
+__8:
+ (*Rtree)(unsafe.Pointer(pRtree)).FnDim2++
+ Xsqlite3_str_appendf(tls, pSql, azFormat[eCoordType],
+ libc.VaList(bp+48, rtreeTokenLength(tls, zArg), zArg))
+__9:
+ ;
+__7:
+ ;
+ goto __4
+__4:
+ ii++
+ goto __3
+ goto __5
+__5:
+ ;
+ Xsqlite3_str_appendf(tls, pSql, ts+27080, 0)
+ zSql = Xsqlite3_str_finish(tls, pSql)
+ if !!(zSql != 0) {
+ goto __10
+ }
+ rc = SQLITE_NOMEM
+ goto __11
+__10:
+ if !(ii < argc) {
+ goto __12
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(bp + 96 + 4*8))))
+ rc = SQLITE_ERROR
+ goto __13
+__12:
+ if !(SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3_declare_vtab(tls, db, zSql))) {
+ goto __14
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+72, Xsqlite3_errmsg(tls, db)))
+__14:
+ ;
+__13:
+ ;
+__11:
+ ;
+ Xsqlite3_free(tls, zSql)
+ if !(rc != 0) {
+ goto __15
+ }
+ goto rtreeInit_fail
+__15:
+ ;
+ (*Rtree)(unsafe.Pointer(pRtree)).FnDim = U8(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) / 2)
+ if !(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim) < 1) {
+ goto __16
+ }
+ iErr = 2
+ goto __17
+__16:
+ if !(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2) > RTREE_MAX_DIMENSIONS*2) {
+ goto __18
+ }
+ iErr = 3
+ goto __19
+__18:
+ if !(int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)%2 != 0) {
+ goto __20
+ }
+ iErr = 1
+ goto __21
+__20:
+ iErr = 0
+__21:
+ ;
+__19:
+ ;
+__17:
+ ;
+ if !(iErr != 0) {
+ goto __22
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+80, *(*uintptr)(unsafe.Pointer(bp + 96 + uintptr(iErr)*8))))
+ goto rtreeInit_fail
+__22:
+ ;
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = U8(8 + int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)*4)
+
+ rc = getNodeSize(tls, db, pRtree, isCreate, pzErr)
+ if !(rc != 0) {
+ goto __23
+ }
+ goto rtreeInit_fail
+__23:
+ ;
+ rc = rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate)
+ if !(rc != 0) {
+ goto __24
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+88, Xsqlite3_errmsg(tls, db)))
+ goto rtreeInit_fail
+__24:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree
+ return SQLITE_OK
+
+rtreeInit_fail:
+ if !(rc == SQLITE_OK) {
+ goto __25
+ }
+ rc = SQLITE_ERROR
+__25:
+ ;
+ rtreeRelease(tls, pRtree)
+ return rc
+}
+
+var azFormat = [2]uintptr{ts + 27083, ts + 27094}
+
+func rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) {
+ bp := tls.Alloc(1072)
+ defer tls.Free(1072)
+
+ var ii int32
+ var nData int32
+ var errCode int32
+ var pOut uintptr
+
+ _ = nArg
+ libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(unsafe.Sizeof(RtreeNode{})), libc.X__builtin_object_size(tls, bp+16, 0))
+ libc.X__builtin___memset_chk(tls, bp+56, 0, uint64(unsafe.Sizeof(Rtree{})), libc.X__builtin_object_size(tls, bp+56, 0))
+ (*Rtree)(unsafe.Pointer(bp + 56)).FnDim = U8(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(apArg))))
+ if int32((*Rtree)(unsafe.Pointer(bp+56)).FnDim) < 1 || int32((*Rtree)(unsafe.Pointer(bp+56)).FnDim) > 5 {
+ return
+ }
+ (*Rtree)(unsafe.Pointer(bp + 56)).FnDim2 = U8(int32((*Rtree)(unsafe.Pointer(bp+56)).FnDim) * 2)
+ (*Rtree)(unsafe.Pointer(bp + 56)).FnBytesPerCell = U8(8 + 8*int32((*Rtree)(unsafe.Pointer(bp+56)).FnDim))
+ (*RtreeNode)(unsafe.Pointer(bp + 16)).FzData = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8)))
+ if (*RtreeNode)(unsafe.Pointer(bp+16)).FzData == uintptr(0) {
+ return
+ }
+ nData = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8)))
+ if nData < 4 {
+ return
+ }
+ if nData < readInt16(tls, (*RtreeNode)(unsafe.Pointer(bp+16)).FzData+2)*int32((*Rtree)(unsafe.Pointer(bp+56)).FnBytesPerCell) {
+ return
+ }
+
+ pOut = Xsqlite3_str_new(tls, uintptr(0))
+ for ii = 0; ii < readInt16(tls, (*RtreeNode)(unsafe.Pointer(bp+16)).FzData+2); ii++ {
+ var jj int32
+
+ nodeGetCell(tls, bp+56, bp+16, ii, bp+1024)
+ if ii > 0 {
+ Xsqlite3_str_append(tls, pOut, ts+11323, 1)
+ }
+ Xsqlite3_str_appendf(tls, pOut, ts+27104, libc.VaList(bp, (*RtreeCell)(unsafe.Pointer(bp+1024)).FiRowid))
+ for jj = 0; jj < int32((*Rtree)(unsafe.Pointer(bp+56)).FnDim2); jj++ {
+ Xsqlite3_str_appendf(tls, pOut, ts+27110, libc.VaList(bp+8, float64(*(*RtreeValue)(unsafe.Pointer(bp + 1024 + 8 + uintptr(jj)*4)))))
+ }
+ Xsqlite3_str_append(tls, pOut, ts+27114, 1)
+ }
+ errCode = Xsqlite3_str_errcode(tls, pOut)
+ Xsqlite3_result_text(tls, ctx, Xsqlite3_str_finish(tls, pOut), -1, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ Xsqlite3_result_error_code(tls, ctx, errCode)
+}
+
+func rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) {
+ _ = nArg
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != SQLITE_BLOB ||
+ Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < 2 {
+ Xsqlite3_result_error(tls, ctx, ts+27116, -1)
+ } else {
+ var zBlob uintptr = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ if zBlob != 0 {
+ Xsqlite3_result_int(tls, ctx, readInt16(tls, zBlob))
+ } else {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ }
+ }
+}
+
+// Context object passed between the various routines that make up the
+// implementation of integrity-check function rtreecheck().
+type RtreeCheck1 = struct {
+ Fdb uintptr
+ FzDb uintptr
+ FzTab uintptr
+ FbInt int32
+ FnDim int32
+ FpGetNode uintptr
+ FaCheckMapping [2]uintptr
+ FnLeaf int32
+ FnNonLeaf int32
+ Frc int32
+ F__ccgo_pad1 [4]byte
+ FzReport uintptr
+ FnErr int32
+ F__ccgo_pad2 [4]byte
+}
+
+// Context object passed between the various routines that make up the
+// implementation of integrity-check function rtreecheck().
+type RtreeCheck = RtreeCheck1
+
+func rtreeCheckReset(tls *libc.TLS, pCheck uintptr, pStmt uintptr) {
+ var rc int32 = Xsqlite3_reset(tls, pStmt)
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = rc
+ }
+}
+
+func rtreeCheckPrepare(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var ap Va_list
+ _ = ap
+ var z uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ ap = va
+ z = Xsqlite3_vmprintf(tls, zFmt, ap)
+
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK {
+ if z == uintptr(0) {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = SQLITE_NOMEM
+ } else {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_prepare_v2(tls, (*RtreeCheck)(unsafe.Pointer(pCheck)).Fdb, z, -1, bp, uintptr(0))
+ }
+ }
+
+ Xsqlite3_free(tls, z)
+ _ = ap
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+func rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var ap Va_list
+ _ = ap
+ ap = va
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*RtreeCheck)(unsafe.Pointer(pCheck)).FnErr < RTREE_CHECK_MAX_ERROR {
+ var z uintptr = Xsqlite3_vmprintf(tls, zFmt, ap)
+ if z == uintptr(0) {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = SQLITE_NOMEM
+ } else {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, ts+27149,
+ libc.VaList(bp, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzReport, func() uintptr {
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 {
+ return ts + 4465
+ }
+ return ts + 1547
+ }(), z))
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = SQLITE_NOMEM
+ }
+ }
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).FnErr++
+ }
+ _ = ap
+}
+
+func rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode I64, pnNode uintptr) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pRet uintptr = uintptr(0)
+
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = rtreeCheckPrepare(tls, pCheck,
+ ts+27156,
+ libc.VaList(bp, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzTab))
+ }
+
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK {
+ Xsqlite3_bind_int64(tls, (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, 1, iNode)
+ if Xsqlite3_step(tls, (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) == SQLITE_ROW {
+ var nNode int32 = Xsqlite3_column_bytes(tls, (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, 0)
+ var pNode uintptr = Xsqlite3_column_blob(tls, (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, 0)
+ pRet = Xsqlite3_malloc64(tls, uint64(nNode))
+ if pRet == uintptr(0) {
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pRet, pNode, uint64(nNode), libc.X__builtin_object_size(tls, pRet, 0))
+ *(*int32)(unsafe.Pointer(pnNode)) = nNode
+ }
+ }
+ rtreeCheckReset(tls, pCheck, (*RtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode)
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) {
+ rtreeCheckAppendMsg(tls, pCheck, ts+27201, libc.VaList(bp+16, iNode))
+ }
+ }
+
+ return pRet
+}
+
+func rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey I64, iVal I64) {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ var rc int32
+ var pStmt uintptr
+ *(*[2]uintptr)(unsafe.Pointer(bp + 80)) = [2]uintptr{
+ ts + 27233,
+ ts + 27287,
+ }
+
+ if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = rtreeCheckPrepare(tls, pCheck,
+ *(*uintptr)(unsafe.Pointer(bp + 80 + uintptr(bLeaf)*8)), libc.VaList(bp, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzTab))
+ }
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc != SQLITE_OK {
+ return
+ }
+
+ pStmt = *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8))
+ Xsqlite3_bind_int64(tls, pStmt, 1, iKey)
+ rc = Xsqlite3_step(tls, pStmt)
+ if rc == SQLITE_DONE {
+ rtreeCheckAppendMsg(tls, pCheck, ts+27335,
+ libc.VaList(bp+16, iKey, iVal, func() uintptr {
+ if bLeaf != 0 {
+ return ts + 27380
+ }
+ return ts + 27388
+ }()))
+ } else if rc == SQLITE_ROW {
+ var ii I64 = Xsqlite3_column_int64(tls, pStmt, 0)
+ if ii != iVal {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27397,
+ libc.VaList(bp+40, iKey, ii, func() uintptr {
+ if bLeaf != 0 {
+ return ts + 27380
+ }
+ return ts + 27388
+ }(), iKey, iVal))
+ }
+ }
+ rtreeCheckReset(tls, pCheck, pStmt)
+}
+
+func rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode I64, iCell int32, pCell uintptr, pParent uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+
+ for i = 0; i < (*RtreeCheck)(unsafe.Pointer(pCheck)).FnDim; i++ {
+ readCoord(tls, pCell+uintptr(4*2*i), bp+48)
+ readCoord(tls, pCell+uintptr(4*(2*i+1)), bp+52)
+
+ if func() int32 {
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
+ return libc.Bool32(*(*int32)(unsafe.Pointer(bp + 48)) > *(*int32)(unsafe.Pointer(bp + 52)))
+ }
+ return libc.Bool32(*(*RtreeValue)(unsafe.Pointer(bp + 48)) > *(*RtreeValue)(unsafe.Pointer(bp + 52)))
+ }() != 0 {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27455, libc.VaList(bp, i, iCell, iNode))
+ }
+
+ if pParent != 0 {
+ readCoord(tls, pParent+uintptr(4*2*i), bp+56)
+ readCoord(tls, pParent+uintptr(4*(2*i+1)), bp+60)
+
+ if func() int32 {
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
+ return libc.Bool32(*(*int32)(unsafe.Pointer(bp + 48)) < *(*int32)(unsafe.Pointer(bp + 56)))
+ }
+ return libc.Bool32(*(*RtreeValue)(unsafe.Pointer(bp + 48)) < *(*RtreeValue)(unsafe.Pointer(bp + 56)))
+ }() != 0 ||
+ func() int32 {
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).FbInt != 0 {
+ return libc.Bool32(*(*int32)(unsafe.Pointer(bp + 52)) > *(*int32)(unsafe.Pointer(bp + 60)))
+ }
+ return libc.Bool32(*(*RtreeValue)(unsafe.Pointer(bp + 52)) > *(*RtreeValue)(unsafe.Pointer(bp + 60)))
+ }() != 0 {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27503, libc.VaList(bp+24, i, iCell, iNode))
+ }
+ }
+ }
+}
+
+func rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintptr, iNode I64) {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var aNode uintptr = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 48)) = 0
+
+ aNode = rtreeCheckGetNode(tls, pCheck, iNode, bp+48)
+ if aNode != 0 {
+ if *(*int32)(unsafe.Pointer(bp + 48)) < 4 {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27570, libc.VaList(bp, iNode, *(*int32)(unsafe.Pointer(bp + 48))))
+ } else {
+ var nCell int32
+ var i int32
+ if aParent == uintptr(0) {
+ iDepth = readInt16(tls, aNode)
+ if iDepth > RTREE_MAX_DEPTH {
+ rtreeCheckAppendMsg(tls, pCheck, ts+27604, libc.VaList(bp+16, iDepth))
+ Xsqlite3_free(tls, aNode)
+ return
+ }
+ }
+ nCell = readInt16(tls, aNode+2)
+ if 4+nCell*(8+(*RtreeCheck)(unsafe.Pointer(pCheck)).FnDim*2*4) > *(*int32)(unsafe.Pointer(bp + 48)) {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27634,
+ libc.VaList(bp+24, iNode, nCell, *(*int32)(unsafe.Pointer(bp + 48))))
+ } else {
+ for i = 0; i < nCell; i++ {
+ var pCell uintptr = aNode + uintptr(4+i*(8+(*RtreeCheck)(unsafe.Pointer(pCheck)).FnDim*2*4))
+ var iVal I64 = readInt64(tls, pCell)
+ rtreeCheckCellCoord(tls, pCheck, iNode, i, pCell+8, aParent)
+
+ if iDepth > 0 {
+ rtreeCheckMapping(tls, pCheck, 0, iVal, iNode)
+ rtreeCheckNode(tls, pCheck, iDepth-1, pCell+8, iVal)
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).FnNonLeaf++
+ } else {
+ rtreeCheckMapping(tls, pCheck, 1, iVal, iNode)
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).FnLeaf++
+ }
+ }
+ }
+ }
+ Xsqlite3_free(tls, aNode)
+ }
+}
+
+func rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect I64) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK {
+ var pCount uintptr
+ pCount = rtreeCheckPrepare(tls, pCheck, ts+27689,
+ libc.VaList(bp, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*RtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl))
+ if pCount != 0 {
+ if Xsqlite3_step(tls, pCount) == SQLITE_ROW {
+ var nActual I64 = Xsqlite3_column_int64(tls, pCount, 0)
+ if nActual != nExpect {
+ rtreeCheckAppendMsg(tls, pCheck,
+ ts+27720, libc.VaList(bp+24, zTbl, nExpect, nActual))
+ }
+ }
+ (*RtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount)
+ }
+ }
+}
+
+func rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzReport uintptr) int32 {
+ bp := tls.Alloc(120)
+ defer tls.Free(120)
+
+ var pStmt uintptr = uintptr(0)
+ var bEnd int32 = 0
+ var nAux int32 = 0
+
+ libc.X__builtin___memset_chk(tls, bp+32, 0, uint64(unsafe.Sizeof(RtreeCheck{})), libc.X__builtin_object_size(tls, bp+32, 0))
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).Fdb = db
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).FzDb = zDb
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).FzTab = zTab
+
+ if Xsqlite3_get_autocommit(tls, db) != 0 {
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).Frc = Xsqlite3_exec(tls, db, ts+14906, uintptr(0), uintptr(0), uintptr(0))
+ bEnd = 1
+ }
+
+ if (*RtreeCheck)(unsafe.Pointer(bp+32)).Frc == SQLITE_OK {
+ pStmt = rtreeCheckPrepare(tls, bp+32, ts+27787, libc.VaList(bp, zDb, zTab))
+ if pStmt != 0 {
+ nAux = Xsqlite3_column_count(tls, pStmt) - 2
+ Xsqlite3_finalize(tls, pStmt)
+ } else if (*RtreeCheck)(unsafe.Pointer(bp+32)).Frc != SQLITE_NOMEM {
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).Frc = SQLITE_OK
+ }
+ }
+
+ pStmt = rtreeCheckPrepare(tls, bp+32, ts+25607, libc.VaList(bp+16, zDb, zTab))
+ if pStmt != 0 {
+ var rc int32
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).FnDim = (Xsqlite3_column_count(tls, pStmt) - 1 - nAux) / 2
+ if (*RtreeCheck)(unsafe.Pointer(bp+32)).FnDim < 1 {
+ rtreeCheckAppendMsg(tls, bp+32, ts+27815, 0)
+ } else if SQLITE_ROW == Xsqlite3_step(tls, pStmt) {
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).FbInt = libc.Bool32(Xsqlite3_column_type(tls, pStmt, 1) == SQLITE_INTEGER)
+ }
+ rc = Xsqlite3_finalize(tls, pStmt)
+ if rc != SQLITE_CORRUPT {
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).Frc = rc
+ }
+ }
+
+ if (*RtreeCheck)(unsafe.Pointer(bp+32)).FnDim >= 1 {
+ if (*RtreeCheck)(unsafe.Pointer(bp+32)).Frc == SQLITE_OK {
+ rtreeCheckNode(tls, bp+32, 0, uintptr(0), int64(1))
+ }
+ rtreeCheckCount(tls, bp+32, ts+27846, int64((*RtreeCheck)(unsafe.Pointer(bp+32)).FnLeaf))
+ rtreeCheckCount(tls, bp+32, ts+27853, int64((*RtreeCheck)(unsafe.Pointer(bp+32)).FnNonLeaf))
+ }
+
+ Xsqlite3_finalize(tls, (*RtreeCheck)(unsafe.Pointer(bp+32)).FpGetNode)
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 40)))
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 40 + 1*8)))
+
+ if bEnd != 0 {
+ var rc int32 = Xsqlite3_exec(tls, db, ts+27861, uintptr(0), uintptr(0), uintptr(0))
+ if (*RtreeCheck)(unsafe.Pointer(bp+32)).Frc == SQLITE_OK {
+ (*RtreeCheck)(unsafe.Pointer(bp + 32)).Frc = rc
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(pzReport)) = (*RtreeCheck)(unsafe.Pointer(bp + 32)).FzReport
+ return (*RtreeCheck)(unsafe.Pointer(bp + 32)).Frc
+}
+
+func rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if nArg != 1 && nArg != 2 {
+ Xsqlite3_result_error(tls, ctx,
+ ts+27865, -1)
+ } else {
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var zDb uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg)))
+ var zTab uintptr
+ if nArg == 1 {
+ zTab = zDb
+ zDb = ts + 6844
+ } else {
+ zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8)))
+ }
+ rc = rtreeCheckTable(tls, Xsqlite3_context_db_handle(tls, ctx), zDb, zTab, bp)
+ if rc == SQLITE_OK {
+ Xsqlite3_result_text(tls, ctx, func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ return *(*uintptr)(unsafe.Pointer(bp))
+ }
+ return ts + 18464
+ }(), -1, libc.UintptrFromInt32(-1))
+ } else {
+ Xsqlite3_result_error_code(tls, ctx, rc)
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+}
+
+// Datatype for coordinates
+type GeoCoord = float32
+
+// Internal representation of a polygon.
+//
+// The polygon consists of a sequence of vertexes. There is a line
+// segment between each pair of vertexes, and one final segment from
+// the last vertex back to the first. (This differs from the GeoJSON
+// standard in which the final vertex is a repeat of the first.)
+//
+// The polygon follows the right-hand rule. The area to the right of
+// each segment is "outside" and the area to the left is "inside".
+//
+// The on-disk representation consists of a 4-byte header followed by
+// the values. The 4-byte header is:
+//
+// encoding (1 byte) 0=big-endian, 1=little-endian
+// nvertex (3 bytes) Number of vertexes as a big-endian integer
+//
+// Enough space is allocated for 4 coordinates, to work around over-zealous
+// warnings coming from some compiler (notably, clang). In reality, the size
+// of each GeoPoly memory allocate is adjusted as necessary so that the
+// GeoPoly.a[] array at the end is the appropriate size.
+type GeoPoly1 = struct {
+ FnVertex int32
+ Fhdr [4]uint8
+ Fa [8]GeoCoord
+}
+
+// Internal representation of a polygon.
+//
+// The polygon consists of a sequence of vertexes. There is a line
+// segment between each pair of vertexes, and one final segment from
+// the last vertex back to the first. (This differs from the GeoJSON
+// standard in which the final vertex is a repeat of the first.)
+//
+// The polygon follows the right-hand rule. The area to the right of
+// each segment is "outside" and the area to the left is "inside".
+//
+// The on-disk representation consists of a 4-byte header followed by
+// the values. The 4-byte header is:
+//
+// encoding (1 byte) 0=big-endian, 1=little-endian
+// nvertex (3 bytes) Number of vertexes as a big-endian integer
+//
+// Enough space is allocated for 4 coordinates, to work around over-zealous
+// warnings coming from some compiler (notably, clang). In reality, the size
+// of each GeoPoly memory allocate is adjusted as necessary so that the
+// GeoPoly.a[] array at the end is the appropriate size.
+type GeoPoly = GeoPoly1
+
+// State of a parse of a GeoJSON input.
+type GeoParse1 = struct {
+ Fz uintptr
+ FnVertex int32
+ FnAlloc int32
+ FnErr int32
+ F__ccgo_pad1 [4]byte
+ Fa uintptr
+}
+
+// State of a parse of a GeoJSON input.
+type GeoParse = GeoParse1
+
+func geopolySwab32(tls *libc.TLS, a uintptr) {
+ var t uint8 = *(*uint8)(unsafe.Pointer(a))
+ *(*uint8)(unsafe.Pointer(a)) = *(*uint8)(unsafe.Pointer(a + 3))
+ *(*uint8)(unsafe.Pointer(a + 3)) = t
+ t = *(*uint8)(unsafe.Pointer(a + 1))
+ *(*uint8)(unsafe.Pointer(a + 1)) = *(*uint8)(unsafe.Pointer(a + 2))
+ *(*uint8)(unsafe.Pointer(a + 2)) = t
+}
+
+func geopolySkipSpace(tls *libc.TLS, p uintptr) int8 {
+ for jsonIsSpace[*(*uint8)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(p)).Fz))] != 0 {
+ (*GeoParse)(unsafe.Pointer(p)).Fz++
+ }
+ return int8(*(*uint8)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(p)).Fz)))
+}
+
+func geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var c int8 = geopolySkipSpace(tls, p)
+ var z uintptr = (*GeoParse)(unsafe.Pointer(p)).Fz
+ var j int32 = 0
+ var seenDP int32 = 0
+ var seenE int32 = 0
+ if int32(c) == '-' {
+ j = 1
+ c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j))))
+ }
+ if int32(c) == '0' && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+1)))) >= '0' && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+1)))) <= '9' {
+ return 0
+ }
+ for ; ; j++ {
+ c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j))))
+ if int32(Xsqlite3CtypeMap[uint8(c)])&0x04 != 0 {
+ continue
+ }
+ if int32(c) == '.' {
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(j-1)))) == '-' {
+ return 0
+ }
+ if seenDP != 0 {
+ return 0
+ }
+ seenDP = 1
+ continue
+ }
+ if int32(c) == 'e' || int32(c) == 'E' {
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(j-1)))) < '0' {
+ return 0
+ }
+ if seenE != 0 {
+ return -1
+ }
+ seenDP = libc.AssignInt32(&seenE, 1)
+ c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j+1))))
+ if int32(c) == '+' || int32(c) == '-' {
+ j++
+ c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j+1))))
+ }
+ if int32(c) < '0' || int32(c) > '9' {
+ return 0
+ }
+ continue
+ }
+ break
+ }
+ if int32(*(*uint8)(unsafe.Pointer(z + uintptr(j-1)))) < '0' {
+ return 0
+ }
+ if pVal != 0 {
+ Xsqlite3AtoF(tls, (*GeoParse)(unsafe.Pointer(p)).Fz, bp, j, uint8(SQLITE_UTF8))
+ *(*GeoCoord)(unsafe.Pointer(pVal)) = GeoCoord(*(*float64)(unsafe.Pointer(bp)))
+ }
+ *(*uintptr)(unsafe.Pointer(p)) += uintptr(j)
+ return 1
+}
+
+func geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) uintptr {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var rc int32
+ var aNew uintptr
+ var ii int32
+ var c int8
+ var pOut uintptr
+
+ rc = SQLITE_OK
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(GeoParse{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*GeoParse)(unsafe.Pointer(bp)).Fz = z
+ if !(int32(geopolySkipSpace(tls, bp)) == '[') {
+ goto __1
+ }
+ (*GeoParse)(unsafe.Pointer(bp)).Fz++
+__2:
+ if !(int32(geopolySkipSpace(tls, bp)) == '[') {
+ goto __3
+ }
+ ii = 0
+ (*GeoParse)(unsafe.Pointer(bp)).Fz++
+ if !((*GeoParse)(unsafe.Pointer(bp)).FnVertex >= (*GeoParse)(unsafe.Pointer(bp)).FnAlloc) {
+ goto __4
+ }
+ (*GeoParse)(unsafe.Pointer(bp)).FnAlloc = (*GeoParse)(unsafe.Pointer(bp)).FnAlloc*2 + 16
+ aNew = Xsqlite3_realloc64(tls, (*GeoParse)(unsafe.Pointer(bp)).Fa, uint64((*GeoParse)(unsafe.Pointer(bp)).FnAlloc)*uint64(unsafe.Sizeof(GeoCoord(0)))*uint64(2))
+ if !(aNew == uintptr(0)) {
+ goto __5
+ }
+ rc = SQLITE_NOMEM
+ (*GeoParse)(unsafe.Pointer(bp)).FnErr++
+ goto __3
+__5:
+ ;
+ (*GeoParse)(unsafe.Pointer(bp)).Fa = aNew
+__4:
+ ;
+__6:
+ if !(geopolyParseNumber(tls, bp, func() uintptr {
+ if ii <= 1 {
+ return (*GeoParse)(unsafe.Pointer(bp)).Fa + uintptr((*GeoParse)(unsafe.Pointer(bp)).FnVertex*2+ii)*4
+ }
+ return uintptr(0)
+ }()) != 0) {
+ goto __7
+ }
+ ii++
+ if !(ii == 2) {
+ goto __8
+ }
+ (*GeoParse)(unsafe.Pointer(bp)).FnVertex++
+__8:
+ ;
+ c = geopolySkipSpace(tls, bp)
+ (*GeoParse)(unsafe.Pointer(bp)).Fz++
+ if !(int32(c) == ',') {
+ goto __9
+ }
+ goto __6
+__9:
+ ;
+ if !(int32(c) == ']' && ii >= 2) {
+ goto __10
+ }
+ goto __7
+__10:
+ ;
+ (*GeoParse)(unsafe.Pointer(bp)).FnErr++
+ rc = SQLITE_ERROR
+ goto parse_json_err
+ goto __6
+__7:
+ ;
+ if !(int32(geopolySkipSpace(tls, bp)) == ',') {
+ goto __11
+ }
+ (*GeoParse)(unsafe.Pointer(bp)).Fz++
+ goto __2
+__11:
+ ;
+ goto __3
+ goto __2
+__3:
+ ;
+ if !(int32(geopolySkipSpace(tls, bp)) == ']' &&
+ (*GeoParse)(unsafe.Pointer(bp)).FnVertex >= 4 &&
+ *(*GeoCoord)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(bp)).Fa)) == *(*GeoCoord)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(bp)).Fa + uintptr((*GeoParse)(unsafe.Pointer(bp)).FnVertex*2-2)*4)) &&
+ *(*GeoCoord)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(bp)).Fa + 1*4)) == *(*GeoCoord)(unsafe.Pointer((*GeoParse)(unsafe.Pointer(bp)).Fa + uintptr((*GeoParse)(unsafe.Pointer(bp)).FnVertex*2-1)*4)) &&
+ func() bool { (*GeoParse)(unsafe.Pointer(bp)).Fz++; return int32(geopolySkipSpace(tls, bp)) == 0 }()) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = 1
+ (*GeoParse)(unsafe.Pointer(bp)).FnVertex--
+ pOut = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(GeoPoly{}))+uint64(unsafe.Sizeof(GeoCoord(0)))*uint64(2)*uint64(Sqlite3_int64((*GeoParse)(unsafe.Pointer(bp)).FnVertex)-int64(4)))
+ *(*int32)(unsafe.Pointer(bp + 32)) = 1
+ if !(pOut == uintptr(0)) {
+ goto __14
+ }
+ goto parse_json_err
+__14:
+ ;
+ (*GeoPoly)(unsafe.Pointer(pOut)).FnVertex = (*GeoParse)(unsafe.Pointer(bp)).FnVertex
+ libc.X__builtin___memcpy_chk(tls, pOut+8, (*GeoParse)(unsafe.Pointer(bp)).Fa, uint64((*GeoParse)(unsafe.Pointer(bp)).FnVertex*2)*uint64(unsafe.Sizeof(GeoCoord(0))), libc.X__builtin_object_size(tls, pOut+8, 0))
+ *(*uint8)(unsafe.Pointer(pOut + 4)) = *(*uint8)(unsafe.Pointer(bp + 32))
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 1)) = uint8((*GeoParse)(unsafe.Pointer(bp)).FnVertex >> 16 & 0xff)
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 2)) = uint8((*GeoParse)(unsafe.Pointer(bp)).FnVertex >> 8 & 0xff)
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 3)) = uint8((*GeoParse)(unsafe.Pointer(bp)).FnVertex & 0xff)
+ Xsqlite3_free(tls, (*GeoParse)(unsafe.Pointer(bp)).Fa)
+ if !(pRc != 0) {
+ goto __15
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_OK
+__15:
+ ;
+ return pOut
+ goto __13
+__12:
+ (*GeoParse)(unsafe.Pointer(bp)).FnErr++
+ rc = SQLITE_ERROR
+__13:
+ ;
+__1:
+ ;
+parse_json_err:
+ if !(pRc != 0) {
+ goto __16
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = rc
+__16:
+ ;
+ Xsqlite3_free(tls, (*GeoParse)(unsafe.Pointer(bp)).Fa)
+ return uintptr(0)
+}
+
+func geopolyFuncParam(tls *libc.TLS, pCtx uintptr, pVal uintptr, pRc uintptr) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var p uintptr = uintptr(0)
+ var nByte int32
+
+ if Xsqlite3_value_type(tls, pVal) == SQLITE_BLOB &&
+ libc.AssignInt32(&nByte, Xsqlite3_value_bytes(tls, pVal)) >= int32(uint64(4)+uint64(6)*uint64(unsafe.Sizeof(GeoCoord(0)))) {
+ var a uintptr = Xsqlite3_value_blob(tls, pVal)
+ var nVertex int32
+ if a == uintptr(0) {
+ if pCtx != 0 {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ }
+ return uintptr(0)
+ }
+ nVertex = int32(*(*uint8)(unsafe.Pointer(a + 1)))<<16 + int32(*(*uint8)(unsafe.Pointer(a + 2)))<<8 + int32(*(*uint8)(unsafe.Pointer(a + 3)))
+ if (int32(*(*uint8)(unsafe.Pointer(a))) == 0 || int32(*(*uint8)(unsafe.Pointer(a))) == 1) &&
+ uint64(nVertex*2)*uint64(unsafe.Sizeof(GeoCoord(0)))+uint64(4) == uint64(uint32(nByte)) {
+ p = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(GeoPoly{}))+uint64((nVertex-1)*2)*uint64(unsafe.Sizeof(GeoCoord(0))))
+ if p == uintptr(0) {
+ if pRc != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ if pCtx != 0 {
+ Xsqlite3_result_error_nomem(tls, pCtx)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = 1
+ (*GeoPoly)(unsafe.Pointer(p)).FnVertex = nVertex
+ libc.X__builtin___memcpy_chk(tls, p+4, a, uint64(nByte), libc.X__builtin_object_size(tls, p+4, 0))
+ if int32(*(*uint8)(unsafe.Pointer(a))) != int32(*(*uint8)(unsafe.Pointer(bp))) {
+ var ii int32
+ for ii = 0; ii < nVertex; ii++ {
+ geopolySwab32(tls, p+8+uintptr(ii*2)*4)
+ geopolySwab32(tls, p+8+uintptr(ii*2+1)*4)
+ }
+ *(*uint8)(unsafe.Pointer(p + 4)) ^= uint8(1)
+ }
+ }
+ }
+ if pRc != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_OK
+ }
+ return p
+ } else if Xsqlite3_value_type(tls, pVal) == SQLITE_TEXT {
+ var zJson uintptr = Xsqlite3_value_text(tls, pVal)
+ if zJson == uintptr(0) {
+ if pRc != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ return uintptr(0)
+ }
+ return geopolyParseJson(tls, zJson, pRc)
+ } else {
+ if pRc != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_ERROR
+ }
+ return uintptr(0)
+ }
+ return uintptr(0)
+}
+
+func geopolyBlobFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ _ = argc
+ if p != 0 {
+ Xsqlite3_result_blob(tls, context, p+4,
+ 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var p uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ _ = argc
+ if p != 0 {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var x uintptr = Xsqlite3_str_new(tls, db)
+ var i int32
+ Xsqlite3_str_append(tls, x, ts+27916, 1)
+ for i = 0; i < (*GeoPoly)(unsafe.Pointer(p)).FnVertex; i++ {
+ Xsqlite3_str_appendf(tls, x, ts+27918, libc.VaList(bp, float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*2)*4))), float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*2+1)*4)))))
+ }
+ Xsqlite3_str_appendf(tls, x, ts+27929, libc.VaList(bp+16, float64(*(*GeoCoord)(unsafe.Pointer(p + 8))), float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + 1*4)))))
+ Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -1, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var p uintptr
+ if argc < 1 {
+ return
+ }
+ p = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ if p != 0 {
+ var db uintptr = Xsqlite3_context_db_handle(tls, context)
+ var x uintptr = Xsqlite3_str_new(tls, db)
+ var i int32
+ var cSep int8 = int8('\'')
+ Xsqlite3_str_appendf(tls, x, ts+27940, 0)
+ for i = 0; i < (*GeoPoly)(unsafe.Pointer(p)).FnVertex; i++ {
+ Xsqlite3_str_appendf(tls, x, ts+27958, libc.VaList(bp, int32(cSep), float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*2)*4))), float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*2+1)*4)))))
+ cSep = int8(' ')
+ }
+ Xsqlite3_str_appendf(tls, x, ts+27966, libc.VaList(bp+24, float64(*(*GeoCoord)(unsafe.Pointer(p + 8))), float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + 1*4)))))
+ for i = 1; i < argc; i++ {
+ var z uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)))
+ if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 {
+ Xsqlite3_str_appendf(tls, x, ts+27974, libc.VaList(bp+40, z))
+ }
+ }
+ Xsqlite3_str_appendf(tls, x, ts+27978, 0)
+ Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -1, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolyXformFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ var A float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ var B float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ var C float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)))
+ var D float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 4*8)))
+ var E float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 5*8)))
+ var F float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 6*8)))
+ var x1 GeoCoord
+ var y1 GeoCoord
+ var x0 GeoCoord
+ var y0 GeoCoord
+ var ii int32
+ _ = argc
+ if p != 0 {
+ for ii = 0; ii < (*GeoPoly)(unsafe.Pointer(p)).FnVertex; ii++ {
+ x0 = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4))
+ y0 = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4))
+ x1 = GeoCoord(A*float64(x0) + B*float64(y0) + E)
+ y1 = GeoCoord(C*float64(x0) + D*float64(y0) + F)
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4)) = x1
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4)) = y1
+ }
+ Xsqlite3_result_blob(tls, context, p+4,
+ 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolyArea(tls *libc.TLS, p uintptr) float64 {
+ var rArea float64 = 0.0
+ var ii int32
+ for ii = 0; ii < (*GeoPoly)(unsafe.Pointer(p)).FnVertex-1; ii++ {
+ rArea = rArea + float64((*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4))-*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr((ii+1)*2)*4)))*
+ (*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4))+*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr((ii+1)*2+1)*4))))*
+ 0.5
+ }
+ rArea = rArea + float64((*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4))-*(*GeoCoord)(unsafe.Pointer(p + 8)))*
+ (*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4))+*(*GeoCoord)(unsafe.Pointer(p + 8 + 1*4))))*
+ 0.5
+ return rArea
+}
+
+func geopolyAreaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ _ = argc
+ if p != 0 {
+ Xsqlite3_result_double(tls, context, geopolyArea(tls, p))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolyCcwFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ _ = argc
+ if p != 0 {
+ if geopolyArea(tls, p) < 0.0 {
+ var ii int32
+ var jj int32
+ ii = 1
+ jj = (*GeoPoly)(unsafe.Pointer(p)).FnVertex - 1
+ __1:
+ if !(ii < jj) {
+ goto __3
+ }
+ {
+ var t GeoCoord = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4))
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2)*4)) = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(jj*2)*4))
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(jj*2)*4)) = t
+ t = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4))
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(ii*2+1)*4)) = *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(jj*2+1)*4))
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(jj*2+1)*4)) = t
+
+ }
+ goto __2
+ __2:
+ ii++
+ jj--
+ goto __1
+ goto __3
+ __3:
+ }
+ Xsqlite3_result_blob(tls, context, p+4,
+ 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func geopolySine(tls *libc.TLS, r float64) float64 {
+ if r >= float64(1.5)*3.1415926535897932385 {
+ r = r - float64(2.0)*3.1415926535897932385
+ }
+ if r >= float64(0.5)*3.1415926535897932385 {
+ return -geopolySine(tls, r-3.1415926535897932385)
+ } else {
+ var r2 float64 = r * r
+ var r3 float64 = r2 * r
+ var r5 float64 = r3 * r2
+ return 0.9996949*r - 0.1656700*r3 + 0.0075134*r5
+ }
+ return float64(0)
+}
+
+func geopolyRegularFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var x float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ var y float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ var r float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ var n int32 = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)))
+
+ var p uintptr
+ _ = argc
+
+ if n < 3 || r <= 0.0 {
+ return
+ }
+ if n > 1000 {
+ n = 1000
+ }
+ p = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(GeoPoly{}))+uint64((n-1)*2)*uint64(unsafe.Sizeof(GeoCoord(0))))
+ if p == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ return
+ }
+ *(*int32)(unsafe.Pointer(bp)) = 1
+ *(*uint8)(unsafe.Pointer(p + 4)) = *(*uint8)(unsafe.Pointer(bp))
+ *(*uint8)(unsafe.Pointer(p + 4 + 1)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(p + 4 + 2)) = uint8(n >> 8 & 0xff)
+ *(*uint8)(unsafe.Pointer(p + 4 + 3)) = uint8(n & 0xff)
+ for *(*int32)(unsafe.Pointer(bp)) = 0; *(*int32)(unsafe.Pointer(bp)) < n; *(*int32)(unsafe.Pointer(bp))++ {
+ var rAngle float64 = float64(2.0) * 3.1415926535897932385 * float64(*(*int32)(unsafe.Pointer(bp))) / float64(n)
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*2)*4)) = GeoCoord(x - r*geopolySine(tls, rAngle-float64(0.5)*3.1415926535897932385))
+ *(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*2+1)*4)) = GeoCoord(y + r*geopolySine(tls, rAngle))
+ }
+ Xsqlite3_result_blob(tls, context, p+4, 4+8*n, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+}
+
+func geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, pRc uintptr) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pOut uintptr
+ var p uintptr
+ var mnX float32
+ var mxX float32
+ var mnY float32
+ var mxY float32
+ var r float64
+
+ pOut = uintptr(0)
+ if !(pPoly == uintptr(0) && aCoord != uintptr(0)) {
+ goto __1
+ }
+ p = uintptr(0)
+ mnX = *(*RtreeValue)(unsafe.Pointer(aCoord))
+ mxX = *(*RtreeValue)(unsafe.Pointer(aCoord + 1*4))
+ mnY = *(*RtreeValue)(unsafe.Pointer(aCoord + 2*4))
+ mxY = *(*RtreeValue)(unsafe.Pointer(aCoord + 3*4))
+ goto geopolyBboxFill
+ goto __2
+__1:
+ p = geopolyFuncParam(tls, context, pPoly, pRc)
+__2:
+ ;
+ if !(p != 0) {
+ goto __3
+ }
+ mnX = libc.AssignFloat32(&mxX, *(*GeoCoord)(unsafe.Pointer(p + 8)))
+ mnY = libc.AssignFloat32(&mxY, *(*GeoCoord)(unsafe.Pointer(p + 8 + 1*4)))
+ *(*int32)(unsafe.Pointer(bp)) = 1
+__5:
+ if !(*(*int32)(unsafe.Pointer(bp)) < (*GeoPoly)(unsafe.Pointer(p)).FnVertex) {
+ goto __7
+ }
+ r = float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*2)*4)))
+ if !(r < float64(mnX)) {
+ goto __8
+ }
+ mnX = float32(r)
+ goto __9
+__8:
+ if !(r > float64(mxX)) {
+ goto __10
+ }
+ mxX = float32(r)
+__10:
+ ;
+__9:
+ ;
+ r = float64(*(*GeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*2+1)*4)))
+ if !(r < float64(mnY)) {
+ goto __11
+ }
+ mnY = float32(r)
+ goto __12
+__11:
+ if !(r > float64(mxY)) {
+ goto __13
+ }
+ mxY = float32(r)
+__13:
+ ;
+__12:
+ ;
+ goto __6
+__6:
+ *(*int32)(unsafe.Pointer(bp))++
+ goto __5
+ goto __7
+__7:
+ ;
+ if !(pRc != 0) {
+ goto __14
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_OK
+__14:
+ ;
+ if !(aCoord == uintptr(0)) {
+ goto __15
+ }
+geopolyBboxFill:
+ pOut = Xsqlite3_realloc64(tls, p, uint64(unsafe.Sizeof(GeoPoly{}))+uint64(unsafe.Sizeof(GeoCoord(0)))*uint64(2)*uint64(4-4))
+ if !(pOut == uintptr(0)) {
+ goto __17
+ }
+ Xsqlite3_free(tls, p)
+ if !(context != 0) {
+ goto __18
+ }
+ Xsqlite3_result_error_nomem(tls, context)
+__18:
+ ;
+ if !(pRc != 0) {
+ goto __19
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+__19:
+ ;
+ return uintptr(0)
+__17:
+ ;
+ (*GeoPoly)(unsafe.Pointer(pOut)).FnVertex = 4
+ *(*int32)(unsafe.Pointer(bp)) = 1
+ *(*uint8)(unsafe.Pointer(pOut + 4)) = *(*uint8)(unsafe.Pointer(bp))
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 1)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 2)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(pOut + 4 + 3)) = uint8(4)
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8)) = mnX
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 1*4)) = mnY
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 2*4)) = mxX
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 3*4)) = mnY
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 4*4)) = mxX
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 5*4)) = mxY
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 6*4)) = mnX
+ *(*GeoCoord)(unsafe.Pointer(pOut + 8 + 7*4)) = mxY
+ goto __16
+__15:
+ Xsqlite3_free(tls, p)
+ *(*RtreeValue)(unsafe.Pointer(aCoord)) = mnX
+ *(*RtreeValue)(unsafe.Pointer(aCoord + 1*4)) = mxX
+ *(*RtreeValue)(unsafe.Pointer(aCoord + 2*4)) = mnY
+ *(*RtreeValue)(unsafe.Pointer(aCoord + 3*4)) = mxY
+__16:
+ ;
+ goto __4
+__3:
+ if !(aCoord != 0) {
+ goto __20
+ }
+ libc.X__builtin___memset_chk(tls, aCoord, 0, uint64(unsafe.Sizeof(RtreeCoord{}))*uint64(4), libc.X__builtin_object_size(tls, aCoord, 0))
+__20:
+ ;
+__4:
+ ;
+ return pOut
+}
+
+func geopolyBBoxFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p uintptr = geopolyBBox(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0), uintptr(0))
+ _ = argc
+ if p != 0 {
+ Xsqlite3_result_blob(tls, context, p+4,
+ 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+// State vector for the geopoly_group_bbox() aggregate function.
+type GeoBBox1 = struct {
+ FisInit int32
+ Fa [4]RtreeCoord
+}
+
+// State vector for the geopoly_group_bbox() aggregate function.
+type GeoBBox = GeoBBox1
+
+func geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ _ = argc
+ geopolyBBox(tls, context, *(*uintptr)(unsafe.Pointer(argv)), bp, bp+16)
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ var pBBox uintptr
+ pBBox = Xsqlite3_aggregate_context(tls, context, int32(unsafe.Sizeof(GeoBBox{})))
+ if pBBox == uintptr(0) {
+ return
+ }
+ if (*GeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 {
+ (*GeoBBox)(unsafe.Pointer(pBBox)).FisInit = 1
+ libc.X__builtin___memcpy_chk(tls, pBBox+4, bp, uint64(unsafe.Sizeof(RtreeCoord{}))*uint64(4), libc.X__builtin_object_size(tls, pBBox+4, 0))
+ } else {
+ if *(*RtreeValue)(unsafe.Pointer(bp)) < *(*RtreeValue)(unsafe.Pointer(pBBox + 4)) {
+ *(*RtreeCoord)(unsafe.Pointer(pBBox + 4)) = *(*RtreeCoord)(unsafe.Pointer(bp))
+ }
+ if *(*RtreeValue)(unsafe.Pointer(bp + 1*4)) > *(*RtreeValue)(unsafe.Pointer(pBBox + 4 + 1*4)) {
+ *(*RtreeCoord)(unsafe.Pointer(pBBox + 4 + 1*4)) = *(*RtreeCoord)(unsafe.Pointer(bp + 1*4))
+ }
+ if *(*RtreeValue)(unsafe.Pointer(bp + 2*4)) < *(*RtreeValue)(unsafe.Pointer(pBBox + 4 + 2*4)) {
+ *(*RtreeCoord)(unsafe.Pointer(pBBox + 4 + 2*4)) = *(*RtreeCoord)(unsafe.Pointer(bp + 2*4))
+ }
+ if *(*RtreeValue)(unsafe.Pointer(bp + 3*4)) > *(*RtreeValue)(unsafe.Pointer(pBBox + 4 + 3*4)) {
+ *(*RtreeCoord)(unsafe.Pointer(pBBox + 4 + 3*4)) = *(*RtreeCoord)(unsafe.Pointer(bp + 3*4))
+ }
+ }
+ }
+}
+
+func geopolyBBoxFinal(tls *libc.TLS, context uintptr) {
+ var p uintptr
+ var pBBox uintptr
+ pBBox = Xsqlite3_aggregate_context(tls, context, 0)
+ if pBBox == uintptr(0) {
+ return
+ }
+ p = geopolyBBox(tls, context, uintptr(0), pBBox+4, uintptr(0))
+ if p != 0 {
+ Xsqlite3_result_blob(tls, context, p+4,
+ 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func pointBeneathLine(tls *libc.TLS, x0 float64, y0 float64, x1 float64, y1 float64, x2 float64, y2 float64) int32 {
+ var y float64
+ if x0 == x1 && y0 == y1 {
+ return 2
+ }
+ if x1 < x2 {
+ if x0 <= x1 || x0 > x2 {
+ return 0
+ }
+ } else if x1 > x2 {
+ if x0 <= x2 || x0 > x1 {
+ return 0
+ }
+ } else {
+ if x0 != x1 {
+ return 0
+ }
+ if y0 < y1 && y0 < y2 {
+ return 0
+ }
+ if y0 > y1 && y0 > y2 {
+ return 0
+ }
+ return 2
+ }
+ y = y1 + (y2-y1)*(x0-x1)/(x2-x1)
+ if y0 == y {
+ return 2
+ }
+ if y0 < y {
+ return 1
+ }
+ return 0
+}
+
+func geopolyContainsPointFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p1 uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ var x0 float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ var y0 float64 = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))
+ var v int32 = 0
+ var cnt int32 = 0
+ var ii int32
+ _ = argc
+
+ if p1 == uintptr(0) {
+ return
+ }
+ for ii = 0; ii < (*GeoPoly)(unsafe.Pointer(p1)).FnVertex-1; ii++ {
+ v = pointBeneathLine(tls, x0, y0, float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr(ii*2)*4))), float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr(ii*2+1)*4))),
+ float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr((ii+1)*2)*4))), float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr((ii+1)*2+1)*4))))
+ if v == 2 {
+ break
+ }
+ cnt = cnt + v
+ }
+ if v != 2 {
+ v = pointBeneathLine(tls, x0, y0, float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr(ii*2)*4))), float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + uintptr(ii*2+1)*4))),
+ float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8))), float64(*(*GeoCoord)(unsafe.Pointer(p1 + 8 + 1*4))))
+ }
+ if v == 2 {
+ Xsqlite3_result_int(tls, context, 1)
+ } else if (v+cnt)&1 == 0 {
+ Xsqlite3_result_int(tls, context, 0)
+ } else {
+ Xsqlite3_result_int(tls, context, 2)
+ }
+ Xsqlite3_free(tls, p1)
+}
+
+func geopolyWithinFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p1 uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ var p2 uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uintptr(0))
+ _ = argc
+ if p1 != 0 && p2 != 0 {
+ var x int32 = geopolyOverlap(tls, p1, p2)
+ if x < 0 {
+ Xsqlite3_result_error_nomem(tls, context)
+ } else {
+ Xsqlite3_result_int(tls, context, func() int32 {
+ if x == 2 {
+ return 1
+ }
+ return func() int32 {
+ if x == 4 {
+ return 2
+ }
+ return 0
+ }()
+ }())
+ }
+ }
+ Xsqlite3_free(tls, p1)
+ Xsqlite3_free(tls, p2)
+}
+
+// Objects used by the overlap algorihm.
+type GeoEvent1 = struct {
+ Fx float64
+ FeType int32
+ F__ccgo_pad1 [4]byte
+ FpSeg uintptr
+ FpNext uintptr
+}
+
+// Objects used by the overlap algorihm.
+type GeoEvent = GeoEvent1
+type GeoSegment1 = struct {
+ FC float64
+ FB float64
+ Fy float64
+ Fy0 float32
+ Fside uint8
+ F__ccgo_pad1 [3]byte
+ Fidx uint32
+ F__ccgo_pad2 [4]byte
+ FpNext uintptr
+}
+
+type GeoSegment = GeoSegment1
+type GeoOverlap1 = struct {
+ FaEvent uintptr
+ FaSegment uintptr
+ FnEvent int32
+ FnSegment int32
+}
+
+type GeoOverlap = GeoOverlap1
+
+func geopolyAddOneSegment(tls *libc.TLS, p uintptr, x0 GeoCoord, y0 GeoCoord, x1 GeoCoord, y1 GeoCoord, side uint8, idx uint32) {
+ var pSeg uintptr
+ var pEvent uintptr
+ if x0 == x1 {
+ return
+ }
+ if x0 > x1 {
+ var t GeoCoord = x0
+ x0 = x1
+ x1 = t
+ t = y0
+ y0 = y1
+ y1 = t
+ }
+ pSeg = (*GeoOverlap)(unsafe.Pointer(p)).FaSegment + uintptr((*GeoOverlap)(unsafe.Pointer(p)).FnSegment)*48
+ (*GeoOverlap)(unsafe.Pointer(p)).FnSegment++
+ (*GeoSegment)(unsafe.Pointer(pSeg)).FC = float64((y1 - y0) / (x1 - x0))
+ (*GeoSegment)(unsafe.Pointer(pSeg)).FB = float64(y1) - float64(x1)*(*GeoSegment)(unsafe.Pointer(pSeg)).FC
+ (*GeoSegment)(unsafe.Pointer(pSeg)).Fy0 = y0
+ (*GeoSegment)(unsafe.Pointer(pSeg)).Fside = side
+ (*GeoSegment)(unsafe.Pointer(pSeg)).Fidx = idx
+ pEvent = (*GeoOverlap)(unsafe.Pointer(p)).FaEvent + uintptr((*GeoOverlap)(unsafe.Pointer(p)).FnEvent)*32
+ (*GeoOverlap)(unsafe.Pointer(p)).FnEvent++
+ (*GeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(x0)
+ (*GeoEvent)(unsafe.Pointer(pEvent)).FeType = 0
+ (*GeoEvent)(unsafe.Pointer(pEvent)).FpSeg = pSeg
+ pEvent = (*GeoOverlap)(unsafe.Pointer(p)).FaEvent + uintptr((*GeoOverlap)(unsafe.Pointer(p)).FnEvent)*32
+ (*GeoOverlap)(unsafe.Pointer(p)).FnEvent++
+ (*GeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(x1)
+ (*GeoEvent)(unsafe.Pointer(pEvent)).FeType = 1
+ (*GeoEvent)(unsafe.Pointer(pEvent)).FpSeg = pSeg
+}
+
+func geopolyAddSegments(tls *libc.TLS, p uintptr, pPoly uintptr, side uint8) {
+ var i uint32
+ var x uintptr
+ for i = uint32(0); i < uint32((*GeoPoly)(unsafe.Pointer(pPoly)).FnVertex)-uint32(1); i++ {
+ x = pPoly + 8 + uintptr(i*uint32(2))*4
+ geopolyAddOneSegment(tls, p, *(*GeoCoord)(unsafe.Pointer(x)), *(*GeoCoord)(unsafe.Pointer(x + 1*4)), *(*GeoCoord)(unsafe.Pointer(x + 2*4)), *(*GeoCoord)(unsafe.Pointer(x + 3*4)), side, i)
+ }
+ x = pPoly + 8 + uintptr(i*uint32(2))*4
+ geopolyAddOneSegment(tls, p, *(*GeoCoord)(unsafe.Pointer(x)), *(*GeoCoord)(unsafe.Pointer(x + 1*4)), *(*GeoCoord)(unsafe.Pointer(pPoly + 8)), *(*GeoCoord)(unsafe.Pointer(pPoly + 8 + 1*4)), side, i)
+}
+
+func geopolyEventMerge(tls *libc.TLS, pLeft uintptr, pRight uintptr) uintptr {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pLast uintptr
+ (*GeoEvent)(unsafe.Pointer(bp)).FpNext = uintptr(0)
+ pLast = bp
+ for pRight != 0 && pLeft != 0 {
+ if (*GeoEvent)(unsafe.Pointer(pRight)).Fx <= (*GeoEvent)(unsafe.Pointer(pLeft)).Fx {
+ (*GeoEvent)(unsafe.Pointer(pLast)).FpNext = pRight
+ pLast = pRight
+ pRight = (*GeoEvent)(unsafe.Pointer(pRight)).FpNext
+ } else {
+ (*GeoEvent)(unsafe.Pointer(pLast)).FpNext = pLeft
+ pLast = pLeft
+ pLeft = (*GeoEvent)(unsafe.Pointer(pLeft)).FpNext
+ }
+ }
+ (*GeoEvent)(unsafe.Pointer(pLast)).FpNext = func() uintptr {
+ if pRight != 0 {
+ return pRight
+ }
+ return pLeft
+ }()
+ return (*GeoEvent)(unsafe.Pointer(bp)).FpNext
+}
+
+func geopolySortEventsByX(tls *libc.TLS, aEvent uintptr, nEvent int32) uintptr {
+ bp := tls.Alloc(400)
+ defer tls.Free(400)
+
+ var mx int32 = 0
+ var i int32
+ var j int32
+ var p uintptr
+
+ for i = 0; i < nEvent; i++ {
+ p = aEvent + uintptr(i)*32
+ (*GeoEvent)(unsafe.Pointer(p)).FpNext = uintptr(0)
+ for j = 0; j < mx && *(*uintptr)(unsafe.Pointer(bp + uintptr(j)*8)) != 0; j++ {
+ p = geopolyEventMerge(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(j)*8)), p)
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(j)*8)) = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(j)*8)) = p
+ if j >= mx {
+ mx = j + 1
+ }
+ }
+ p = uintptr(0)
+ for i = 0; i < mx; i++ {
+ p = geopolyEventMerge(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), p)
+ }
+ return p
+}
+
+func geopolySegmentMerge(tls *libc.TLS, pLeft uintptr, pRight uintptr) uintptr {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pLast uintptr
+ (*GeoSegment)(unsafe.Pointer(bp)).FpNext = uintptr(0)
+ pLast = bp
+ for pRight != 0 && pLeft != 0 {
+ var r float64 = (*GeoSegment)(unsafe.Pointer(pRight)).Fy - (*GeoSegment)(unsafe.Pointer(pLeft)).Fy
+ if r == 0.0 {
+ r = (*GeoSegment)(unsafe.Pointer(pRight)).FC - (*GeoSegment)(unsafe.Pointer(pLeft)).FC
+ }
+ if r < 0.0 {
+ (*GeoSegment)(unsafe.Pointer(pLast)).FpNext = pRight
+ pLast = pRight
+ pRight = (*GeoSegment)(unsafe.Pointer(pRight)).FpNext
+ } else {
+ (*GeoSegment)(unsafe.Pointer(pLast)).FpNext = pLeft
+ pLast = pLeft
+ pLeft = (*GeoSegment)(unsafe.Pointer(pLeft)).FpNext
+ }
+ }
+ (*GeoSegment)(unsafe.Pointer(pLast)).FpNext = func() uintptr {
+ if pRight != 0 {
+ return pRight
+ }
+ return pLeft
+ }()
+ return (*GeoSegment)(unsafe.Pointer(bp)).FpNext
+}
+
+func geopolySortSegmentsByYAndC(tls *libc.TLS, pList uintptr) uintptr {
+ bp := tls.Alloc(400)
+ defer tls.Free(400)
+
+ var mx int32 = 0
+ var i int32
+ var p uintptr
+
+ for pList != 0 {
+ p = pList
+ pList = (*GeoSegment)(unsafe.Pointer(pList)).FpNext
+ (*GeoSegment)(unsafe.Pointer(p)).FpNext = uintptr(0)
+ for i = 0; i < mx && *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) != 0; i++ {
+ p = geopolySegmentMerge(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), p)
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = p
+ if i >= mx {
+ mx = i + 1
+ }
+ }
+ p = uintptr(0)
+ for i = 0; i < mx; i++ {
+ p = geopolySegmentMerge(tls, *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)), p)
+ }
+ return p
+}
+
+func geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var nVertex Sqlite3_int64
+ var p uintptr
+ var nByte Sqlite3_int64
+ var pThisEvent uintptr
+ var rX float64
+ var rc int32
+ var needSort int32
+ var pActive uintptr
+ var pSeg uintptr
+
+ var y float64
+ var pPrev uintptr
+ var iMask int32
+ nVertex = Sqlite3_int64((*GeoPoly)(unsafe.Pointer(p1)).FnVertex + (*GeoPoly)(unsafe.Pointer(p2)).FnVertex + 2)
+ rc = 0
+ needSort = 0
+ pActive = uintptr(0)
+
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(GeoEvent{}))*uint64(nVertex)*uint64(2) +
+ uint64(unsafe.Sizeof(GeoSegment{}))*uint64(nVertex) +
+ uint64(unsafe.Sizeof(GeoOverlap{})))
+ p = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(p == uintptr(0)) {
+ goto __1
+ }
+ return -1
+__1:
+ ;
+ (*GeoOverlap)(unsafe.Pointer(p)).FaEvent = p + 1*24
+ (*GeoOverlap)(unsafe.Pointer(p)).FaSegment = (*GeoOverlap)(unsafe.Pointer(p)).FaEvent + uintptr(nVertex*int64(2))*32
+ (*GeoOverlap)(unsafe.Pointer(p)).FnEvent = libc.AssignPtrInt32(p+20, 0)
+ geopolyAddSegments(tls, p, p1, uint8(1))
+ geopolyAddSegments(tls, p, p2, uint8(2))
+ pThisEvent = geopolySortEventsByX(tls, (*GeoOverlap)(unsafe.Pointer(p)).FaEvent, (*GeoOverlap)(unsafe.Pointer(p)).FnEvent)
+ if pThisEvent != 0 && (*GeoEvent)(unsafe.Pointer(pThisEvent)).Fx == 0.0 {
+ rX = -1.0
+ } else {
+ rX = 0.0
+ }
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([4]uint8{})), libc.X__builtin_object_size(tls, bp, 0))
+__2:
+ if !(pThisEvent != 0) {
+ goto __3
+ }
+ if !((*GeoEvent)(unsafe.Pointer(pThisEvent)).Fx != rX) {
+ goto __4
+ }
+ pPrev = uintptr(0)
+ iMask = 0
+
+ rX = (*GeoEvent)(unsafe.Pointer(pThisEvent)).Fx
+ if !(needSort != 0) {
+ goto __5
+ }
+
+ pActive = geopolySortSegmentsByYAndC(tls, pActive)
+ needSort = 0
+__5:
+ ;
+ pSeg = pActive
+__6:
+ if !(pSeg != 0) {
+ goto __8
+ }
+ if !(pPrev != 0) {
+ goto __9
+ }
+ if !((*GeoSegment)(unsafe.Pointer(pPrev)).Fy != (*GeoSegment)(unsafe.Pointer(pSeg)).Fy) {
+ goto __10
+ }
+
+ *(*uint8)(unsafe.Pointer(bp + uintptr(iMask))) = uint8(1)
+__10:
+ ;
+__9:
+ ;
+ iMask = iMask ^ int32((*GeoSegment)(unsafe.Pointer(pSeg)).Fside)
+ pPrev = pSeg
+ goto __7
+__7:
+ pSeg = (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext
+ goto __6
+ goto __8
+__8:
+ ;
+ pPrev = uintptr(0)
+ pSeg = pActive
+__11:
+ if !(pSeg != 0) {
+ goto __13
+ }
+ y = (*GeoSegment)(unsafe.Pointer(pSeg)).FC*rX + (*GeoSegment)(unsafe.Pointer(pSeg)).FB
+
+ (*GeoSegment)(unsafe.Pointer(pSeg)).Fy = y
+ if !(pPrev != 0) {
+ goto __14
+ }
+ if !((*GeoSegment)(unsafe.Pointer(pPrev)).Fy > (*GeoSegment)(unsafe.Pointer(pSeg)).Fy && int32((*GeoSegment)(unsafe.Pointer(pPrev)).Fside) != int32((*GeoSegment)(unsafe.Pointer(pSeg)).Fside)) {
+ goto __15
+ }
+ rc = 1
+
+ goto geopolyOverlapDone
+ goto __16
+__15:
+ if !((*GeoSegment)(unsafe.Pointer(pPrev)).Fy != (*GeoSegment)(unsafe.Pointer(pSeg)).Fy) {
+ goto __17
+ }
+
+ *(*uint8)(unsafe.Pointer(bp + uintptr(iMask))) = uint8(1)
+__17:
+ ;
+__16:
+ ;
+__14:
+ ;
+ iMask = iMask ^ int32((*GeoSegment)(unsafe.Pointer(pSeg)).Fside)
+ pPrev = pSeg
+ goto __12
+__12:
+ pSeg = (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext
+ goto __11
+ goto __13
+__13:
+ ;
+__4:
+ ;
+ if !((*GeoEvent)(unsafe.Pointer(pThisEvent)).FeType == 0) {
+ goto __18
+ }
+
+ pSeg = (*GeoEvent)(unsafe.Pointer(pThisEvent)).FpSeg
+ (*GeoSegment)(unsafe.Pointer(pSeg)).Fy = float64((*GeoSegment)(unsafe.Pointer(pSeg)).Fy0)
+ (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext = pActive
+ pActive = pSeg
+ needSort = 1
+ goto __19
+__18:
+ if !(pActive == (*GeoEvent)(unsafe.Pointer(pThisEvent)).FpSeg) {
+ goto __20
+ }
+ if pActive != 0 {
+ pActive = (*GeoSegment)(unsafe.Pointer(pActive)).FpNext
+ } else {
+ pActive = uintptr(0)
+ }
+ goto __21
+__20:
+ pSeg = pActive
+__22:
+ if !(pSeg != 0) {
+ goto __24
+ }
+ if !((*GeoSegment)(unsafe.Pointer(pSeg)).FpNext == (*GeoEvent)(unsafe.Pointer(pThisEvent)).FpSeg) {
+ goto __25
+ }
+ (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext = func() uintptr {
+ if (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext != 0 {
+ return (*GeoSegment)(unsafe.Pointer((*GeoSegment)(unsafe.Pointer(pSeg)).FpNext)).FpNext
+ }
+ return uintptr(0)
+ }()
+ goto __24
+__25:
+ ;
+ goto __23
+__23:
+ pSeg = (*GeoSegment)(unsafe.Pointer(pSeg)).FpNext
+ goto __22
+ goto __24
+__24:
+ ;
+__21:
+ ;
+__19:
+ ;
+ pThisEvent = (*GeoEvent)(unsafe.Pointer(pThisEvent)).FpNext
+ goto __2
+__3:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 3))) == 0) {
+ goto __26
+ }
+ rc = 0
+ goto __27
+__26:
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 1))) != 0 && int32(*(*uint8)(unsafe.Pointer(bp + 2))) == 0) {
+ goto __28
+ }
+ rc = 3
+ goto __29
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 1))) == 0 && int32(*(*uint8)(unsafe.Pointer(bp + 2))) != 0) {
+ goto __30
+ }
+ rc = 2
+ goto __31
+__30:
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 1))) == 0 && int32(*(*uint8)(unsafe.Pointer(bp + 2))) == 0) {
+ goto __32
+ }
+ rc = 4
+ goto __33
+__32:
+ rc = 1
+__33:
+ ;
+__31:
+ ;
+__29:
+ ;
+__27:
+ ;
+geopolyOverlapDone:
+ Xsqlite3_free(tls, p)
+ return rc
+}
+
+func geopolyOverlapFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var p1 uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv)), uintptr(0))
+ var p2 uintptr = geopolyFuncParam(tls, context, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uintptr(0))
+ _ = argc
+ if p1 != 0 && p2 != 0 {
+ var x int32 = geopolyOverlap(tls, p1, p2)
+ if x < 0 {
+ Xsqlite3_result_error_nomem(tls, context)
+ } else {
+ Xsqlite3_result_int(tls, context, x)
+ }
+ }
+ Xsqlite3_free(tls, p1)
+ Xsqlite3_free(tls, p2)
+}
+
+func geopolyDebugFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ _ = context
+ _ = argc
+ _ = argv
+}
+
+func geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr, isCreate int32) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var rc int32
+ var pRtree uintptr
+ var nDb Sqlite3_int64
+ var nName Sqlite3_int64
+ var pSql uintptr
+ var zSql uintptr
+ var ii int32
+ rc = SQLITE_OK
+ _ = pAux
+
+ Xsqlite3_vtab_config(tls, db, SQLITE_VTAB_CONSTRAINT_SUPPORT, libc.VaList(bp, 1))
+
+ nDb = Sqlite3_int64(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))
+ nName = Sqlite3_int64(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8))))
+ pRtree = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Rtree{}))+uint64(nDb)+uint64(nName)+uint64(2))
+ if !!(pRtree != 0) {
+ goto __1
+ }
+ return SQLITE_NOMEM
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, pRtree, 0, uint64(unsafe.Sizeof(Rtree{}))+uint64(nDb)+uint64(nName)+uint64(2), libc.X__builtin_object_size(tls, pRtree, 0))
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBusy = U32(1)
+ (*Rtree)(unsafe.Pointer(pRtree)).Fbase.FpModule = uintptr(unsafe.Pointer(&rtreeModule))
+ (*Rtree)(unsafe.Pointer(pRtree)).FzDb = pRtree + 1*968
+ (*Rtree)(unsafe.Pointer(pRtree)).FzName = (*Rtree)(unsafe.Pointer(pRtree)).FzDb + uintptr(nDb+int64(1))
+ (*Rtree)(unsafe.Pointer(pRtree)).FeCoordType = U8(RTREE_COORD_REAL32)
+ (*Rtree)(unsafe.Pointer(pRtree)).FnDim = U8(2)
+ (*Rtree)(unsafe.Pointer(pRtree)).FnDim2 = U8(4)
+ libc.X__builtin___memcpy_chk(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzDb, 0))
+ libc.X__builtin___memcpy_chk(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*Rtree)(unsafe.Pointer(pRtree)).FzName, 0))
+
+ pSql = Xsqlite3_str_new(tls, db)
+ Xsqlite3_str_appendf(tls, pSql, ts+27991, 0)
+ (*Rtree)(unsafe.Pointer(pRtree)).FnAux = U8(1)
+ (*Rtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = U8(1)
+ ii = 3
+__2:
+ if !(ii < argc) {
+ goto __4
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FnAux++
+ Xsqlite3_str_appendf(tls, pSql, ts+28013, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8))))
+ goto __3
+__3:
+ ii++
+ goto __2
+ goto __4
+__4:
+ ;
+ Xsqlite3_str_appendf(tls, pSql, ts+27080, 0)
+ zSql = Xsqlite3_str_finish(tls, pSql)
+ if !!(zSql != 0) {
+ goto __5
+ }
+ rc = SQLITE_NOMEM
+ goto __6
+__5:
+ if !(SQLITE_OK != libc.AssignInt32(&rc, Xsqlite3_declare_vtab(tls, db, zSql))) {
+ goto __7
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db)))
+__7:
+ ;
+__6:
+ ;
+ Xsqlite3_free(tls, zSql)
+ if !(rc != 0) {
+ goto __8
+ }
+ goto geopolyInit_fail
+__8:
+ ;
+ (*Rtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = U8(8 + int32((*Rtree)(unsafe.Pointer(pRtree)).FnDim2)*4)
+
+ rc = getNodeSize(tls, db, pRtree, isCreate, pzErr)
+ if !(rc != 0) {
+ goto __9
+ }
+ goto geopolyInit_fail
+__9:
+ ;
+ rc = rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate)
+ if !(rc != 0) {
+ goto __10
+ }
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+24, Xsqlite3_errmsg(tls, db)))
+ goto geopolyInit_fail
+__10:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree
+ return SQLITE_OK
+
+geopolyInit_fail:
+ if !(rc == SQLITE_OK) {
+ goto __11
+ }
+ rc = SQLITE_ERROR
+__11:
+ ;
+ rtreeRelease(tls, pRtree)
+ return rc
+}
+
+func geopolyCreate(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return geopolyInit(tls, db, pAux, argc, argv, ppVtab, pzErr, 1)
+}
+
+func geopolyConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return geopolyInit(tls, db, pAux, argc, argv, ppVtab, pzErr, 0)
+}
+
+func geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintptr, argc int32, argv uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var pRtree uintptr
+ var pCsr uintptr
+
+ var p uintptr
+ var iRowid I64
+
+ var p1 uintptr
+ var pNew uintptr
+ pRtree = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pVtabCursor)).FpVtab
+ pCsr = pVtabCursor
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 48)) = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ _ = idxStr
+
+ rtreeReference(tls, pRtree)
+
+ resetCursor(tls, pCsr)
+
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FiStrategy = idxNum
+ if !(idxNum == 1) {
+ goto __1
+ }
+ iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ *(*I64)(unsafe.Pointer(bp + 8)) = int64(0)
+ *(*int32)(unsafe.Pointer(bp + 48)) = findLeafNode(tls, pRtree, iRowid, bp, bp+8)
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) != uintptr(0)) {
+ goto __3
+ }
+ p = rtreeSearchPointNew(tls, pCsr, 0.0, uint8(0))
+
+ *(*uintptr)(unsafe.Pointer(pCsr + 88)) = *(*uintptr)(unsafe.Pointer(bp))
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).Fid = *(*I64)(unsafe.Pointer(bp + 8))
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FeWithin = U8(PARTLY_WITHIN)
+ *(*int32)(unsafe.Pointer(bp + 48)) = nodeRowidIndex(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp)), iRowid, bp+16)
+ (*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell = U8(*(*int32)(unsafe.Pointer(bp + 16)))
+
+ goto __4
+__3:
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FatEOF = U8(1)
+__4:
+ ;
+ goto __2
+__1:
+ *(*int32)(unsafe.Pointer(bp + 48)) = nodeAcquire(tls, pRtree, int64(1), uintptr(0), bp+24)
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK && idxNum <= 3) {
+ goto __5
+ }
+
+ geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(argv)), bp+32, bp+48)
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) != 0) {
+ goto __6
+ }
+ goto geopoly_filter_end
+__6:
+ ;
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint = libc.AssignUintptr(&p1, Xsqlite3_malloc(tls, int32(uint64(unsafe.Sizeof(RtreeConstraint{}))*uint64(4))))
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FnConstraint = 4
+ if !(p1 == uintptr(0)) {
+ goto __7
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = SQLITE_NOMEM
+ goto __8
+__7:
+ libc.X__builtin___memset_chk(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0, uint64(unsafe.Sizeof(RtreeConstraint{}))*uint64(4), libc.X__builtin_object_size(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0))
+ libc.X__builtin___memset_chk(tls, pCsr+128, 0, uint64(unsafe.Sizeof(U32(0)))*uint64((*Rtree)(unsafe.Pointer(pRtree)).FiDepth+1), libc.X__builtin_object_size(tls, pCsr+128, 0))
+ if !(idxNum == 2) {
+ goto __9
+ }
+
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'B'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 0
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 1*4)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'D'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 1
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'B'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 2
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 3*4)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'D'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 3
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 2*4)))
+ goto __10
+__9:
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'D'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 0
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'B'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 1
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 1*4)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'D'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 2
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 2*4)))
+ p1 += 24
+ (*RtreeConstraint)(unsafe.Pointer(p1)).Fop = 'B'
+ (*RtreeConstraint)(unsafe.Pointer(p1)).FiCoord = 3
+ *(*RtreeDValue)(unsafe.Pointer(p1 + 8)) = RtreeDValue(*(*RtreeValue)(unsafe.Pointer(bp + 32 + 3*4)))
+__10:
+ ;
+__8:
+ ;
+__5:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK) {
+ goto __11
+ }
+ pNew = rtreeSearchPointNew(tls, pCsr, 0.0, U8((*Rtree)(unsafe.Pointer(pRtree)).FiDepth+1))
+ if !(pNew == uintptr(0)) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = SQLITE_NOMEM
+ goto geopoly_filter_end
+__12:
+ ;
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).Fid = int64(1)
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FiCell = U8(0)
+ (*RtreeSearchPoint)(unsafe.Pointer(pNew)).FeWithin = U8(PARTLY_WITHIN)
+
+ *(*uintptr)(unsafe.Pointer(pCsr + 88)) = *(*uintptr)(unsafe.Pointer(bp + 24))
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeStepToLeaf(tls, pCsr)
+__11:
+ ;
+__2:
+ ;
+geopoly_filter_end:
+ nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ rtreeRelease(tls, pRtree)
+ return *(*int32)(unsafe.Pointer(bp + 48))
+}
+
+func geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) int32 {
+ var ii int32
+ var iRowidTerm int32 = -1
+ var iFuncTerm int32 = -1
+ var idxNum int32 = 0
+ _ = tab
+
+ for ii = 0; ii < (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint; ii++ {
+ var p uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(ii)*12
+ if !(int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable) != 0) {
+ continue
+ }
+ if (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn < 0 && int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ {
+ iRowidTerm = ii
+ break
+ }
+ if (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == 0 && int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) >= SQLITE_INDEX_CONSTRAINT_FUNCTION {
+ iFuncTerm = ii
+ idxNum = int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) - SQLITE_INDEX_CONSTRAINT_FUNCTION + 2
+ }
+ }
+
+ if iRowidTerm >= 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 1
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = ts + 16673
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8)).FargvIndex = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8)).Fomit = uint8(1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 30.0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxFlags = SQLITE_INDEX_SCAN_UNIQUE
+ return SQLITE_OK
+ }
+ if iFuncTerm >= 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = ts + 28017
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8)).FargvIndex = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8)).Fomit = uint8(0)
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 300.0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(10)
+ return SQLITE_OK
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 4
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = ts + 28023
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = 3000000.0
+ (*Sqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000)
+ return SQLITE_OK
+}
+
+func geopolyColumn(tls *libc.TLS, cur uintptr, ctx uintptr, i int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pRtree uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab
+ var pCsr uintptr = cur
+ var p uintptr = rtreeSearchPointFirst(tls, pCsr)
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var pNode uintptr = rtreeNodeOfFirstSearchPoint(tls, pCsr, bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ if p == uintptr(0) {
+ return SQLITE_OK
+ }
+ if i == 0 && Xsqlite3_vtab_nochange(tls, ctx) != 0 {
+ return SQLITE_OK
+ }
+ if i <= int32((*Rtree)(unsafe.Pointer(pRtree)).FnAux) {
+ if !(int32((*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid) != 0) {
+ if (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb, (*Rtree)(unsafe.Pointer(pRtree)).FzReadAuxSql, -1, uint32(0),
+ pCsr+56, uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ Xsqlite3_bind_int64(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux, 1,
+ nodeGetRowid(tls, pRtree, pNode, int32((*RtreeSearchPoint)(unsafe.Pointer(p)).FiCell)))
+ *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_step(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_ROW {
+ (*RtreeCursor)(unsafe.Pointer(pCsr)).FbAuxValid = U8(1)
+ } else {
+ Xsqlite3_reset(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_DONE {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ Xsqlite3_result_value(tls, ctx, Xsqlite3_column_value(tls, (*RtreeCursor)(unsafe.Pointer(pCsr)).FpReadAux, i+2))
+ }
+ return SQLITE_OK
+}
+
+func geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRowid uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pRtree uintptr
+
+ var oldRowid I64
+ var oldRowidValid int32
+ var newRowid I64
+ var newRowidValid int32
+ var coordChange int32
+ var steprc int32
+ var rc2 int32
+
+ var p uintptr
+ var pUp uintptr
+ var jj int32
+ var nChange int32
+ pRtree = pVtab
+ *(*int32)(unsafe.Pointer(bp + 48)) = SQLITE_OK
+ coordChange = 0
+
+ if !((*Rtree)(unsafe.Pointer(pRtree)).FnNodeRef != 0) {
+ goto __1
+ }
+
+ return SQLITE_LOCKED | int32(2)<<8
+__1:
+ ;
+ rtreeReference(tls, pRtree)
+
+ oldRowidValid = libc.Bool32(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData))) != SQLITE_NULL)
+
+ if oldRowidValid != 0 {
+ oldRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(aData)))
+ } else {
+ oldRowid = int64(0)
+ }
+ newRowidValid = libc.Bool32(nData > 1 && Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData + 1*8))) != SQLITE_NULL)
+ if newRowidValid != 0 {
+ newRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(aData + 1*8)))
+ } else {
+ newRowid = int64(0)
+ }
+ (*RtreeCell)(unsafe.Pointer(bp)).FiRowid = newRowid
+
+ if !(nData > 1 &&
+ (!(oldRowidValid != 0) ||
+ !(Xsqlite3_value_nochange(tls, *(*uintptr)(unsafe.Pointer(aData + 2*8))) != 0) ||
+ oldRowid != newRowid)) {
+ goto __2
+ }
+
+ geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8, bp+48)
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) != 0) {
+ goto __3
+ }
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_ERROR) {
+ goto __4
+ }
+ (*Sqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, ts+28032, 0)
+__4:
+ ;
+ goto geopoly_update_end
+__3:
+ ;
+ coordChange = 1
+
+ if !(newRowidValid != 0 && (!(oldRowidValid != 0) || oldRowid != newRowid)) {
+ goto __5
+ }
+ Xsqlite3_bind_int64(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid, 1, (*RtreeCell)(unsafe.Pointer(bp)).FiRowid)
+ steprc = Xsqlite3_step(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ *(*int32)(unsafe.Pointer(bp + 48)) = Xsqlite3_reset(tls, (*Rtree)(unsafe.Pointer(pRtree)).FpReadRowid)
+ if !(SQLITE_ROW == steprc) {
+ goto __6
+ }
+ if !(Xsqlite3_vtab_on_conflict(tls, (*Rtree)(unsafe.Pointer(pRtree)).Fdb) == SQLITE_REPLACE) {
+ goto __7
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeDeleteRowid(tls, pRtree, (*RtreeCell)(unsafe.Pointer(bp)).FiRowid)
+ goto __8
+__7:
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeConstraintError(tls, pRtree, 0)
+__8:
+ ;
+__6:
+ ;
+__5:
+ ;
+__2:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK && (nData == 1 || coordChange != 0 && oldRowidValid != 0)) {
+ goto __9
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeDeleteRowid(tls, pRtree, oldRowid)
+__9:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK && nData > 1 && coordChange != 0) {
+ goto __10
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ if !!(newRowidValid != 0) {
+ goto __11
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeNewRowid(tls, pRtree, bp)
+__11:
+ ;
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = (*RtreeCell)(unsafe.Pointer(bp)).FiRowid
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK) {
+ goto __12
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = sChooseLeaf(tls, pRtree, bp, 0, bp+56)
+__12:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK) {
+ goto __13
+ }
+ (*Rtree)(unsafe.Pointer(pRtree)).FiReinsertHeight = -1
+ *(*int32)(unsafe.Pointer(bp + 48)) = rtreeInsertCell(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 56)), bp, 0)
+ rc2 = nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp + 56)))
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK) {
+ goto __14
+ }
+ *(*int32)(unsafe.Pointer(bp + 48)) = rc2
+__14:
+ ;
+__13:
+ ;
+__10:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK && nData > 1) {
+ goto __15
+ }
+ pUp = (*Rtree)(unsafe.Pointer(pRtree)).FpWriteAux
+ nChange = 0
+ Xsqlite3_bind_int64(tls, pUp, 1, (*RtreeCell)(unsafe.Pointer(bp)).FiRowid)
+
+ if !(Xsqlite3_value_nochange(tls, *(*uintptr)(unsafe.Pointer(aData + 2*8))) != 0) {
+ goto __16
+ }
+ Xsqlite3_bind_null(tls, pUp, 2)
+ goto __17
+__16:
+ p = uintptr(0)
+ if !(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(aData + 2*8))) == SQLITE_TEXT &&
+ libc.AssignUintptr(&p, geopolyFuncParam(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+48)) != uintptr(0) &&
+ *(*int32)(unsafe.Pointer(bp + 48)) == SQLITE_OK) {
+ goto __18
+ }
+ Xsqlite3_bind_blob(tls, pUp, 2, p+4, 4+8*(*GeoPoly)(unsafe.Pointer(p)).FnVertex, libc.UintptrFromInt32(-1))
+ goto __19
+__18:
+ Xsqlite3_bind_value(tls, pUp, 2, *(*uintptr)(unsafe.Pointer(aData + 2*8)))
+__19:
+ ;
+ Xsqlite3_free(tls, p)
+ nChange = 1
+__17:
+ ;
+ jj = 1
+__20:
+ if !(jj < nData-2) {
+ goto __22
+ }
+ nChange++
+ Xsqlite3_bind_value(tls, pUp, jj+2, *(*uintptr)(unsafe.Pointer(aData + uintptr(jj+2)*8)))
+ goto __21
+__21:
+ jj++
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(nChange != 0) {
+ goto __23
+ }
+ Xsqlite3_step(tls, pUp)
+ *(*int32)(unsafe.Pointer(bp + 48)) = Xsqlite3_reset(tls, pUp)
+__23:
+ ;
+__15:
+ ;
+geopoly_update_end:
+ rtreeRelease(tls, pRtree)
+ return *(*int32)(unsafe.Pointer(bp + 48))
+}
+
+func geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) int32 {
+ _ = pVtab
+ _ = nArg
+ if Xsqlite3_stricmp(tls, zName, ts+28072) == 0 {
+ *(*uintptr)(unsafe.Pointer(pxFunc)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{geopolyOverlapFunc}))
+ *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0)
+ return SQLITE_INDEX_CONSTRAINT_FUNCTION
+ }
+ if Xsqlite3_stricmp(tls, zName, ts+28088) == 0 {
+ *(*uintptr)(unsafe.Pointer(pxFunc)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{geopolyWithinFunc}))
+ *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0)
+ return SQLITE_INDEX_CONSTRAINT_FUNCTION + 1
+ }
+ return 0
+}
+
+var geopolyModule = Sqlite3_module{
+ FiVersion: 3,
+ FxCreate: 0,
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxDestroy: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+ FxUpdate: 0,
+ FxBegin: 0,
+ FxSync: 0,
+ FxCommit: 0,
+ FxRollback: 0,
+ FxFindFunction: 0,
+ FxRename: 0,
+ FxSavepoint: 0,
+ FxShadowName: 0,
+}
+
+func sqlite3_geopoly_init(tls *libc.TLS, db uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var i uint32
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aFunc))/uint64(unsafe.Sizeof(struct {
+ FxFunc uintptr
+ FnArg int8
+ FbPure uint8
+ F__ccgo_pad1 [6]byte
+ FzName uintptr
+ }{})) && rc == SQLITE_OK; i++ {
+ var enc int32
+ if aFunc[i].FbPure != 0 {
+ enc = SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS
+ } else {
+ enc = SQLITE_UTF8 | SQLITE_DIRECTONLY
+ }
+ rc = Xsqlite3_create_function(tls, db, aFunc[i].FzName, int32(aFunc[i].FnArg),
+ enc, uintptr(0),
+ aFunc[i].FxFunc, uintptr(0), uintptr(0))
+ }
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(aAgg))/uint64(unsafe.Sizeof(struct {
+ FxStep uintptr
+ FxFinal uintptr
+ FzName uintptr
+ }{})) && rc == SQLITE_OK; i++ {
+ rc = Xsqlite3_create_function(tls, db, aAgg[i].FzName, 1,
+ SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS, uintptr(0),
+ uintptr(0), aAgg[i].FxStep, aAgg[i].FxFinal)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_create_module_v2(tls, db, ts+28103, uintptr(unsafe.Pointer(&geopolyModule)), uintptr(0), uintptr(0))
+ }
+ return rc
+}
+
+var aFunc = [12]struct {
+ FxFunc uintptr
+ FnArg int8
+ FbPure uint8
+ F__ccgo_pad1 [6]byte
+ FzName uintptr
+}{
+ {FxFunc: 0, FnArg: int8(1), FbPure: uint8(1), FzName: ts + 28111},
+ {FxFunc: 0, FnArg: int8(1), FbPure: uint8(1), FzName: ts + 28124},
+ {FxFunc: 0, FnArg: int8(1), FbPure: uint8(1), FzName: ts + 28137},
+ {FxFunc: 0, FnArg: int8(-1), FbPure: uint8(1), FzName: ts + 28150},
+ {FxFunc: 0, FnArg: int8(2), FbPure: uint8(1), FzName: ts + 28088},
+ {FxFunc: 0, FnArg: int8(3), FbPure: uint8(1), FzName: ts + 28162},
+ {FxFunc: 0, FnArg: int8(2), FbPure: uint8(1), FzName: ts + 28072},
+ {FxFunc: 0, FnArg: int8(1), FzName: ts + 28185},
+ {FxFunc: 0, FnArg: int8(1), FbPure: uint8(1), FzName: ts + 28199},
+ {FxFunc: 0, FnArg: int8(7), FbPure: uint8(1), FzName: ts + 28212},
+ {FxFunc: 0, FnArg: int8(4), FbPure: uint8(1), FzName: ts + 28226},
+ {FxFunc: 0, FnArg: int8(1), FbPure: uint8(1), FzName: ts + 28242},
+}
+var aAgg = [1]struct {
+ FxStep uintptr
+ FxFinal uintptr
+ FzName uintptr
+}{
+ {FxStep: 0, FxFinal: 0, FzName: ts + 28254},
+}
+
+// Register the r-tree module with database handle db. This creates the
+// virtual table module "rtree" and the debugging/analysis scalar
+// function "rtreenode".
+func Xsqlite3RtreeInit(tls *libc.TLS, db uintptr) int32 {
+ var utf8 int32 = SQLITE_UTF8
+ var rc int32
+
+ rc = Xsqlite3_create_function(tls, db, ts+28273, 2, utf8, uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rtreenode})), uintptr(0), uintptr(0))
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_create_function(tls, db, ts+28283, 1, utf8, uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rtreedepth})), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_create_function(tls, db, ts+28294, -1, utf8, uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rtreecheck})), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ var c uintptr = uintptr(RTREE_COORD_REAL32)
+ rc = Xsqlite3_create_module_v2(tls, db, ts+28017, uintptr(unsafe.Pointer(&rtreeModule)), c, uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ var c uintptr = uintptr(RTREE_COORD_INT32)
+ rc = Xsqlite3_create_module_v2(tls, db, ts+28305, uintptr(unsafe.Pointer(&rtreeModule)), c, uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3_geopoly_init(tls, db)
+ }
+
+ return rc
+}
+
+func rtreeFreeCallback(tls *libc.TLS, p uintptr) {
+ var pInfo uintptr = p
+ if (*RtreeGeomCallback)(unsafe.Pointer(pInfo)).FxDestructor != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*RtreeGeomCallback)(unsafe.Pointer(pInfo)).FxDestructor})).f(tls, (*RtreeGeomCallback)(unsafe.Pointer(pInfo)).FpContext)
+ }
+ Xsqlite3_free(tls, p)
+}
+
+func rtreeMatchArgFree(tls *libc.TLS, pArg uintptr) {
+ var i int32
+ var p uintptr = pArg
+ for i = 0; i < (*RtreeMatchArg)(unsafe.Pointer(p)).FnParam; i++ {
+ Xsqlite3_value_free(tls, *(*uintptr)(unsafe.Pointer((*RtreeMatchArg)(unsafe.Pointer(p)).FapSqlParam + uintptr(i)*8)))
+ }
+ Xsqlite3_free(tls, p)
+}
+
+func geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) {
+ var pGeomCtx uintptr = Xsqlite3_user_data(tls, ctx)
+ var pBlob uintptr
+ var nBlob Sqlite3_int64
+ var memErr int32 = 0
+
+ nBlob = Sqlite3_int64(uint64(unsafe.Sizeof(RtreeMatchArg{})) + uint64(nArg-1)*uint64(unsafe.Sizeof(RtreeDValue(0))) +
+ uint64(nArg)*uint64(unsafe.Sizeof(uintptr(0))))
+ pBlob = Xsqlite3_malloc64(tls, uint64(nBlob))
+ if !(pBlob != 0) {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ } else {
+ var i int32
+ (*RtreeMatchArg)(unsafe.Pointer(pBlob)).FiSize = U32(nBlob)
+ (*RtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb = *(*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx))
+ (*RtreeMatchArg)(unsafe.Pointer(pBlob)).FapSqlParam = pBlob + 56 + uintptr(nArg)*8
+ (*RtreeMatchArg)(unsafe.Pointer(pBlob)).FnParam = nArg
+ for i = 0; i < nArg; i++ {
+ *(*uintptr)(unsafe.Pointer((*RtreeMatchArg)(unsafe.Pointer(pBlob)).FapSqlParam + uintptr(i)*8)) = Xsqlite3_value_dup(tls, *(*uintptr)(unsafe.Pointer(aArg + uintptr(i)*8)))
+ if *(*uintptr)(unsafe.Pointer((*RtreeMatchArg)(unsafe.Pointer(pBlob)).FapSqlParam + uintptr(i)*8)) == uintptr(0) {
+ memErr = 1
+ }
+ *(*RtreeDValue)(unsafe.Pointer(pBlob + 56 + uintptr(i)*8)) = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(aArg + uintptr(i)*8)))
+ }
+ if memErr != 0 {
+ Xsqlite3_result_error_nomem(tls, ctx)
+ rtreeMatchArgFree(tls, pBlob)
+ } else {
+ Xsqlite3_result_pointer(tls, ctx, pBlob, ts+25593, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{rtreeMatchArgFree})))
+ }
+ }
+}
+
+// Register a new geometry function for use with the r-tree MATCH operator.
+func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) int32 {
+ var pGeomCtx uintptr
+
+ pGeomCtx = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(RtreeGeomCallback{})))
+ if !(pGeomCtx != 0) {
+ return SQLITE_NOMEM
+ }
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0)
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0)
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext
+ return Xsqlite3_create_function_v2(tls, db, zGeom, -1, SQLITE_ANY,
+ pGeomCtx, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{geomCallback})), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{rtreeFreeCallback})))
+}
+
+// Register a new 2nd-generation geometry function for use with the
+// r-tree MATCH operator.
+func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) int32 {
+ var pGeomCtx uintptr
+
+ pGeomCtx = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(RtreeGeomCallback{})))
+ if !(pGeomCtx != 0) {
+ if xDestructor != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDestructor})).f(tls, pContext)
+ }
+ return SQLITE_NOMEM
+ }
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0)
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor
+ (*RtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext
+ return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -1, SQLITE_ANY,
+ pGeomCtx, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{geomCallback})), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{rtreeFreeCallback})))
+}
+
+type sqlite3rbu = struct {
+ FeStage int32
+ F__ccgo_pad1 [4]byte
+ FdbMain uintptr
+ FdbRbu uintptr
+ FzTarget uintptr
+ FzRbu uintptr
+ FzState uintptr
+ FzStateDb [5]int8
+ F__ccgo_pad2 [3]byte
+ Frc int32
+ F__ccgo_pad3 [4]byte
+ FzErrmsg uintptr
+ FnStep int32
+ FnProgress int32
+ Fobjiter RbuObjIter
+ FzVfsName uintptr
+ FpTargetFd uintptr
+ FnPagePerSector int32
+ F__ccgo_pad4 [4]byte
+ FiOalSz I64
+ FnPhaseOneStep I64
+ FpRenameArg uintptr
+ FxRename uintptr
+ FiMaxFrame U32
+ FmLock U32
+ FnFrame int32
+ FnFrameAlloc int32
+ FaFrame uintptr
+ Fpgsz int32
+ F__ccgo_pad5 [4]byte
+ FaBuf uintptr
+ FiWalCksum I64
+ FszTemp I64
+ FszTempLimit I64
+ FnRbu int32
+ F__ccgo_pad6 [4]byte
+ FpRbuFd uintptr
+}
+
+type Sqlite3rbu = sqlite3rbu
+
+type RbuFrame1 = struct {
+ FiDbPage U32
+ FiWalFrame U32
+}
+
+type RbuFrame = RbuFrame1
+type RbuObjIter1 = struct {
+ FpTblIter uintptr
+ FpIdxIter uintptr
+ FnTblCol int32
+ F__ccgo_pad1 [4]byte
+ FazTblCol uintptr
+ FazTblType uintptr
+ FaiSrcOrder uintptr
+ FabTblPk uintptr
+ FabNotNull uintptr
+ FabIndexed uintptr
+ FeType int32
+ FbCleanup int32
+ FzTbl uintptr
+ FzDataTbl uintptr
+ FzIdx uintptr
+ FiTnum int32
+ FiPkTnum int32
+ FbUnique int32
+ FnIndex int32
+ FnCol int32
+ F__ccgo_pad2 [4]byte
+ FpSelect uintptr
+ FpInsert uintptr
+ FpDelete uintptr
+ FpTmpInsert uintptr
+ FnIdxCol int32
+ F__ccgo_pad3 [4]byte
+ FaIdxCol uintptr
+ FzIdxSql uintptr
+ FpRbuUpdate uintptr
+}
+
+type RbuObjIter = RbuObjIter1
+type RbuState1 = struct {
+ FeStage int32
+ F__ccgo_pad1 [4]byte
+ FzTbl uintptr
+ FzDataTbl uintptr
+ FzIdx uintptr
+ FiWalCksum I64
+ FnRow int32
+ F__ccgo_pad2 [4]byte
+ FnProgress I64
+ FiCookie U32
+ F__ccgo_pad3 [4]byte
+ FiOalSz I64
+ FnPhaseOneStep I64
+}
+
+type RbuState = RbuState1
+type RbuSpan1 = struct {
+ FzSpan uintptr
+ FnSpan int32
+ F__ccgo_pad1 [4]byte
+}
+
+type RbuSpan = RbuSpan1
+type rbu_vfs = struct {
+ Fbase Sqlite3_vfs
+ FpRealVfs uintptr
+ Fmutex uintptr
+ FpRbu uintptr
+ FpMain uintptr
+ FpMainRbu uintptr
+}
+
+type Rbu_vfs = rbu_vfs
+type rbu_file = struct {
+ Fbase Sqlite3_file
+ FpReal uintptr
+ FpRbuVfs uintptr
+ FpRbu uintptr
+ Fsz I64
+ FopenFlags int32
+ FiCookie U32
+ FiWriteVer U8
+ FbNolock U8
+ F__ccgo_pad1 [2]byte
+ FnShm int32
+ FapShm uintptr
+ FzDel uintptr
+ FzWal uintptr
+ FpWalFd uintptr
+ FpMainNext uintptr
+ FpMainRbuNext uintptr
+}
+
+type Rbu_file = rbu_file
+type RbuUpdateStmt1 = struct {
+ FzMask uintptr
+ FpUpdate uintptr
+ FpNext uintptr
+}
+
+type RbuUpdateStmt = RbuUpdateStmt1
+
+func rbuDeltaGetInt(tls *libc.TLS, pz uintptr, pLen uintptr) uint32 {
+ var v uint32 = uint32(0)
+ var c int32
+ var z uintptr = *(*uintptr)(unsafe.Pointer(pz))
+ var zStart uintptr = z
+ for libc.AssignInt32(&c, int32(zValue[0x7f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&z, 1))))])) >= 0 {
+ v = v<<6 + uint32(c)
+ }
+ z--
+ *(*int32)(unsafe.Pointer(pLen)) -= int32((int64(z) - int64(zStart)) / 1)
+ *(*uintptr)(unsafe.Pointer(pz)) = z
+ return v
+}
+
+var zValue = [128]int8{
+ int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1),
+ int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1),
+ int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1),
+ int8(0), int8(1), int8(2), int8(3), int8(4), int8(5), int8(6), int8(7), int8(8), int8(9), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1), int8(-1),
+ int8(-1), int8(10), int8(11), int8(12), int8(13), int8(14), int8(15), int8(16), int8(17), int8(18), int8(19), int8(20), int8(21), int8(22), int8(23), int8(24),
+ int8(25), int8(26), int8(27), int8(28), int8(29), int8(30), int8(31), int8(32), int8(33), int8(34), int8(35), int8(-1), int8(-1), int8(-1), int8(-1), int8(36),
+ int8(-1), int8(37), int8(38), int8(39), int8(40), int8(41), int8(42), int8(43), int8(44), int8(45), int8(46), int8(47), int8(48), int8(49), int8(50), int8(51),
+ int8(52), int8(53), int8(54), int8(55), int8(56), int8(57), int8(58), int8(59), int8(60), int8(61), int8(62), int8(-1), int8(-1), int8(-1), int8(63), int8(-1),
+}
+
+func rbuDeltaApply(tls *libc.TLS, zSrc uintptr, lenSrc int32, zDelta uintptr, lenDelta int32, zOut uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+ *(*uintptr)(unsafe.Pointer(bp)) = zDelta
+ *(*int32)(unsafe.Pointer(bp + 8)) = lenDelta
+
+ var limit uint32
+ var total uint32 = uint32(0)
+
+ limit = rbuDeltaGetInt(tls, bp, bp+8)
+ if int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != '\n' {
+ return -1
+ }
+ *(*uintptr)(unsafe.Pointer(bp))++
+ *(*int32)(unsafe.Pointer(bp + 8))--
+ for *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0 && *(*int32)(unsafe.Pointer(bp + 8)) > 0 {
+ var cnt uint32
+ var ofst uint32
+ cnt = rbuDeltaGetInt(tls, bp, bp+8)
+ switch int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) {
+ case '@':
+ {
+ *(*uintptr)(unsafe.Pointer(bp))++
+ *(*int32)(unsafe.Pointer(bp + 8))--
+ ofst = rbuDeltaGetInt(tls, bp, bp+8)
+ if *(*int32)(unsafe.Pointer(bp + 8)) > 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != ',' {
+ return -1
+ }
+ *(*uintptr)(unsafe.Pointer(bp))++
+ *(*int32)(unsafe.Pointer(bp + 8))--
+ total = total + cnt
+ if total > limit {
+ return -1
+ }
+ if int32(ofst+cnt) > lenSrc {
+ return -1
+ }
+ libc.X__builtin___memcpy_chk(tls, zOut, zSrc+uintptr(ofst), uint64(cnt), libc.X__builtin_object_size(tls, zOut, 0))
+ zOut += uintptr(cnt)
+ break
+
+ }
+ case ':':
+ {
+ *(*uintptr)(unsafe.Pointer(bp))++
+ *(*int32)(unsafe.Pointer(bp + 8))--
+ total = total + cnt
+ if total > limit {
+ return -1
+ }
+ if int32(cnt) > *(*int32)(unsafe.Pointer(bp + 8)) {
+ return -1
+ }
+ libc.X__builtin___memcpy_chk(tls, zOut, *(*uintptr)(unsafe.Pointer(bp)), uint64(cnt), libc.X__builtin_object_size(tls, zOut, 0))
+ zOut += uintptr(cnt)
+ *(*uintptr)(unsafe.Pointer(bp)) += uintptr(cnt)
+ *(*int32)(unsafe.Pointer(bp + 8)) -= int32(cnt)
+ break
+
+ }
+ case ';':
+ {
+ *(*uintptr)(unsafe.Pointer(bp))++
+ *(*int32)(unsafe.Pointer(bp + 8))--
+ *(*int8)(unsafe.Pointer(zOut)) = int8(0)
+ if total != limit {
+ return -1
+ }
+ return int32(total)
+
+ }
+ default:
+ {
+ return -1
+
+ }
+ }
+ }
+
+ return -1
+}
+
+func rbuDeltaOutputSize(tls *libc.TLS, zDelta uintptr, lenDelta int32) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+ *(*uintptr)(unsafe.Pointer(bp)) = zDelta
+ *(*int32)(unsafe.Pointer(bp + 8)) = lenDelta
+
+ var size int32
+ size = int32(rbuDeltaGetInt(tls, bp, bp+8))
+ if int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != '\n' {
+ return -1
+ }
+ return size
+}
+
+func rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ var aDelta uintptr
+ var nDelta int32
+ var aOrig uintptr
+ var nOrig int32
+ var nOut int32
+ var nOut2 int32
+ var aOut uintptr
+
+ nOrig = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ aOrig = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ nDelta = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+ aDelta = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))
+
+ nOut = rbuDeltaOutputSize(tls, aDelta, nDelta)
+ if nOut < 0 {
+ Xsqlite3_result_error(tls, context, ts+28315, -1)
+ return
+ }
+
+ aOut = Xsqlite3_malloc(tls, nOut+1)
+ if aOut == uintptr(0) {
+ Xsqlite3_result_error_nomem(tls, context)
+ } else {
+ nOut2 = rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut)
+ if nOut2 != nOut {
+ Xsqlite3_free(tls, aOut)
+ Xsqlite3_result_error(tls, context, ts+28315, -1)
+ } else {
+ Xsqlite3_result_blob(tls, context, aOut, nOut, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+ }
+}
+
+func prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg uintptr, zSql uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = Xsqlite3_prepare_v2(tls, db, zSql, -1, ppStmt, uintptr(0))
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, db)))
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ }
+ return rc
+}
+
+func resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = Xsqlite3_reset(tls, pStmt)
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt))))
+ }
+ return rc
+}
+
+func prepareFreeAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg uintptr, zSql uintptr) int32 {
+ var rc int32
+
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ } else {
+ rc = prepareAndCollectError(tls, db, ppStmt, pzErrmsg, zSql)
+ Xsqlite3_free(tls, zSql)
+ }
+ return rc
+}
+
+func rbuObjIterFreeCols(tls *libc.TLS, pIter uintptr) {
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(i)*8)))
+ }
+ Xsqlite3_free(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabNotNull = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol = 0
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FeType = 0
+}
+
+func rbuObjIterClearStatements(tls *libc.TLS, pIter uintptr) {
+ var pUp uintptr
+
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect)
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpInsert)
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpDelete)
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTmpInsert)
+ pUp = (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate
+ for pUp != 0 {
+ var pTmp uintptr = (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext
+ Xsqlite3_finalize(tls, (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate)
+ Xsqlite3_free(tls, pUp)
+ pUp = pTmp
+ }
+ Xsqlite3_free(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol)
+ Xsqlite3_free(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdxSql)
+
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpInsert = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpDelete = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpTmpInsert = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol = 0
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnIdxCol = 0
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol = uintptr(0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdxSql = uintptr(0)
+}
+
+func rbuObjIterFinalize(tls *libc.TLS, pIter uintptr) {
+ rbuObjIterClearStatements(tls, pIter)
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTblIter)
+ Xsqlite3_finalize(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter)
+ rbuObjIterFreeCols(tls, pIter)
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(RbuObjIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+}
+
+func rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ var rc int32 = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ if rc == SQLITE_OK {
+ rbuObjIterClearStatements(tls, pIter)
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) {
+ rc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+28336, uintptr(0), uintptr(0), p+64)
+ }
+
+ if rc == SQLITE_OK {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 {
+ rbuObjIterFreeCols(tls, pIter)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = 0
+ rc = Xsqlite3_step(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTblIter)
+ if rc != SQLITE_ROW {
+ rc = resetAndCollectError(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0)
+ } else {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 1)
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl != 0 && (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+ } else {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) {
+ var pIdx uintptr = (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter
+ rc = Xsqlite3_bind_text(tls, pIdx, 1, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, -1, uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_step(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter)
+ if rc != SQLITE_ROW {
+ rc = resetAndCollectError(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter, p+64)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = 1
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx = uintptr(0)
+ } else {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx = Xsqlite3_column_text(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter, 0)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FiTnum = Xsqlite3_column_int(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter, 1)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FbUnique = Xsqlite3_column_int(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpIdxIter, 2)
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx != 0 {
+ rc = SQLITE_OK
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if rc != SQLITE_OK {
+ rbuObjIterFinalize(tls, pIter)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ }
+ return rc
+}
+
+func rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) {
+ var p uintptr = Xsqlite3_user_data(tls, pCtx)
+ var zIn uintptr
+
+ zIn = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv)))
+ if zIn != 0 {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ if argc == 1 || 0 == Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) {
+ Xsqlite3_result_text(tls, pCtx, zIn, -1, uintptr(0))
+ }
+ } else {
+ if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, ts+25506, zIn, uint64(4)) == 0 {
+ var i int32
+ for i = 4; int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= '0' && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= '9'; i++ {
+ }
+ if int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) == '_' && *(*int8)(unsafe.Pointer(zIn + uintptr(i+1))) != 0 {
+ Xsqlite3_result_text(tls, pCtx, zIn+uintptr(i+1), -1, uintptr(0))
+ }
+ }
+ }
+ }
+}
+
+func rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(RbuObjIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+
+ rc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+28507, libc.VaList(bp, func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return ts + 28657
+ }
+ return ts + 1547
+ }())))
+
+ if rc == SQLITE_OK {
+ rc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64,
+ ts+28698)
+ }
+
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = 1
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ return rbuObjIterNext(tls, p, pIter)
+}
+
+func rbuMPrintf(tls *libc.TLS, p uintptr, zFmt uintptr, va uintptr) uintptr {
+ var zSql uintptr = uintptr(0)
+ var ap Va_list
+ _ = ap
+ ap = va
+ zSql = Xsqlite3_vmprintf(tls, zFmt, ap)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if zSql == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ }
+ } else {
+ Xsqlite3_free(tls, zSql)
+ zSql = uintptr(0)
+ }
+ _ = ap
+ return zSql
+}
+
+func rbuMPrintfExec(tls *libc.TLS, p uintptr, db uintptr, zFmt uintptr, va uintptr) int32 {
+ var ap Va_list
+ _ = ap
+ var zSql uintptr
+ ap = va
+ zSql = Xsqlite3_vmprintf(tls, zFmt, ap)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if zSql == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, zSql, uintptr(0), uintptr(0), p+64)
+ }
+ }
+ Xsqlite3_free(tls, zSql)
+ _ = ap
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+}
+
+func rbuMalloc(tls *libc.TLS, p uintptr, nByte Sqlite3_int64) uintptr {
+ var pRet uintptr = uintptr(0)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ pRet = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pRet == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(nByte), libc.X__builtin_object_size(tls, pRet, 0))
+ }
+ }
+ return pRet
+}
+
+func rbuAllocateIterArrays(tls *libc.TLS, p uintptr, pIter uintptr, nCol int32) {
+ var nByte Sqlite3_int64 = Sqlite3_int64((uint64(2)*uint64(unsafe.Sizeof(uintptr(0))) + uint64(unsafe.Sizeof(int32(0))) + uint64(3)*uint64(unsafe.Sizeof(U8(0)))) * uint64(nCol))
+ var azNew uintptr
+
+ azNew = rbuMalloc(tls, p, nByte)
+ if azNew != 0 {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol = azNew
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType = azNew + uintptr(nCol)*8
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder = (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(nCol)*8
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk = (*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(nCol)*4
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabNotNull = (*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(nCol)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed = (*RbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(nCol)
+ }
+}
+
+func rbuStrndup(tls *libc.TLS, zStr uintptr, pRc uintptr) uintptr {
+ var zRet uintptr = uintptr(0)
+
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ if zStr != 0 {
+ var nCopy Size_t = libc.Xstrlen(tls, zStr) + uint64(1)
+ zRet = Xsqlite3_malloc64(tls, nCopy)
+ if zRet != 0 {
+ libc.X__builtin___memcpy_chk(tls, zRet, zStr, nCopy, libc.X__builtin_object_size(tls, zRet, 0))
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+ }
+
+ return zRet
+}
+
+func rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = Xsqlite3_db_handle(tls, pStmt)
+ var rc int32 = Xsqlite3_finalize(tls, pStmt)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, db)))
+ }
+}
+
+func rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnum uintptr, piPk uintptr) {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var zOrig uintptr
+ var zIdx uintptr
+ var i uint32
+ *(*[4]uintptr)(unsafe.Pointer(bp + 32)) = [4]uintptr{uintptr(0), uintptr(0), uintptr(0), uintptr(0)}
+
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE
+ *(*int32)(unsafe.Pointer(piPk)) = 0
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+32, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+28823, libc.VaList(bp, zTab)))
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) != SQLITE_ROW) {
+ goto __1
+ }
+
+ goto rbuTableType_end
+__1:
+ ;
+ if !(Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), 0) != 0) {
+ goto __2
+ }
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_VTAB
+ goto rbuTableType_end
+__2:
+ ;
+ *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), 1)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+32+1*8, p+64,
+ Xsqlite3_mprintf(tls, ts+28942, libc.VaList(bp+8, zTab)))
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc != 0) {
+ goto __3
+ }
+ goto rbuTableType_end
+__3:
+ ;
+__4:
+ if !(Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 1*8))) == SQLITE_ROW) {
+ goto __5
+ }
+ zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 1*8)), 3)
+ zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 1*8)), 1)
+ if !(zOrig != 0 && zIdx != 0 && int32(*(*U8)(unsafe.Pointer(zOrig))) == 'p') {
+ goto __6
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+32+2*8, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+28963, libc.VaList(bp+16, zIdx)))
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __7
+ }
+ if !(Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 2*8))) == SQLITE_ROW) {
+ goto __8
+ }
+ *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 2*8)), 0)
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_EXTERNAL
+ goto __9
+__8:
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_WITHOUT_ROWID
+__9:
+ ;
+__7:
+ ;
+ goto rbuTableType_end
+__6:
+ ;
+ goto __4
+__5:
+ ;
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+32+3*8, p+64,
+ Xsqlite3_mprintf(tls, ts+29014, libc.VaList(bp+24, zTab)))
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __10
+ }
+__11:
+ if !(Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 3*8))) == SQLITE_ROW) {
+ goto __12
+ }
+ if !(Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 32 + 3*8)), 5) > 0) {
+ goto __13
+ }
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_IPK
+ goto rbuTableType_end
+__13:
+ ;
+ goto __11
+__12:
+ ;
+ *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NONE
+__10:
+ ;
+rbuTableType_end:
+ i = uint32(0)
+__14:
+ if !(uint64(i) < uint64(unsafe.Sizeof([4]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))) {
+ goto __16
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 32 + uintptr(i)*8)))
+ goto __15
+__15:
+ i++
+ goto __14
+ goto __16
+__16:
+}
+
+func rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var bIndex int32 = 0
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ libc.X__builtin___memcpy_chk(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(unsafe.Sizeof(U8(0)))*uint64((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+16, p+64,
+ Xsqlite3_mprintf(tls, ts+29035, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl)))
+ }
+
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) {
+ var zIdx uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1)
+ var bPartial int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 4)
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ if zIdx == uintptr(0) {
+ break
+ }
+ if bPartial != 0 {
+ libc.X__builtin___memset_chk(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0x01, uint64(unsafe.Sizeof(U8(0)))*uint64((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0))
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+24, p+64,
+ Xsqlite3_mprintf(tls, ts+29063, libc.VaList(bp+8, zIdx)))
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ var iCid int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 1)
+ if iCid >= 0 {
+ *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(iCid))) = U8(1)
+ }
+ if iCid == -2 {
+ libc.X__builtin___memset_chk(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0x01, uint64(unsafe.Sizeof(U8(0)))*uint64((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0))
+ }
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ bIndex = 1
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnIndex++
+ }
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_WITHOUT_ROWID {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnIndex--
+ }
+
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if bIndex == 0 {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed = uintptr(0)
+ }
+}
+
+func rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ var nCol int32 = 0
+ var i int32
+ var bRbuRowid int32 = 0
+ var iOrder int32 = 0
+ *(*int32)(unsafe.Pointer(bp + 56)) = 0
+
+ rbuTableType(tls, p, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+56, pIter+108)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+19939, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl))
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ }
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FiTnum = *(*int32)(unsafe.Pointer(bp + 56))
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp+64, p+64,
+ Xsqlite3_mprintf(tls, ts+29092, libc.VaList(bp+8, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ rbuAllocateIterArrays(tls, p, pIter, nCol)
+ }
+ for i = 0; (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && i < nCol; i++ {
+ var zName uintptr = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), i)
+ if Xsqlite3_strnicmp(tls, ts+29111, zName, 4) != 0 {
+ var zCopy uintptr = rbuStrndup(tls, zName, p+56)
+ *(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol
+ *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(libc.PostIncInt32(&(*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol, 1))*8)) = zCopy
+ } else if 0 == Xsqlite3_stricmp(tls, ts+29116, zName) {
+ bRbuRowid = 1
+ }
+ }
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK &&
+ libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 &&
+ bRbuRowid != libc.Bool32((*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls,
+ ts+29126, libc.VaList(bp+16, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl,
+ func() uintptr {
+ if bRbuRowid != 0 {
+ return ts + 29155
+ }
+ return ts + 29168
+ }()))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+64, p+64,
+ Xsqlite3_mprintf(tls, ts+29177, libc.VaList(bp+32, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl)))
+ }
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 64))) {
+ var zName uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 1)
+ if zName == uintptr(0) {
+ break
+ }
+ for i = iOrder; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ if 0 == libc.Xstrcmp(tls, zName, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))) {
+ break
+ }
+ }
+ if i == (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+29199,
+ libc.VaList(bp+40, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName))
+ } else {
+ var iPk int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 5)
+ var bNotNull int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 3)
+ var zType uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 2)
+
+ if i != iOrder {
+ {
+ var t int32 = *(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))
+ *(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4)) = *(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(iOrder)*4))
+ *(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(iOrder)*4)) = t
+ }
+
+ {
+ var t uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iOrder)*8))
+ *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iOrder)*8)) = t
+ }
+
+ }
+
+ *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iOrder)*8)) = rbuStrndup(tls, zType, p+56)
+
+ *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iOrder))) = U8(iPk)
+ *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iOrder))) = U8(libc.Bool32(U8(bNotNull) != 0 || iPk != 0))
+ iOrder++
+ }
+ }
+
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ rbuObjIterCacheIndexedCols(tls, p, pIter)
+
+ }
+
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+}
+
+func rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var zList uintptr = uintptr(0)
+ var zSep uintptr = ts + 1547
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ var z uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ zList = rbuMPrintf(tls, p, ts+29226, libc.VaList(bp, zList, zSep, z))
+ zSep = ts + 15017
+ }
+ return zList
+}
+
+func rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, zSeparator uintptr, zPost uintptr) uintptr {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var iPk int32 = 1
+ var zRet uintptr = uintptr(0)
+ var zSep uintptr = ts + 1547
+ for 1 != 0 {
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ if int32(*(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk {
+ var zCol uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ zRet = rbuMPrintf(tls, p, ts+29235, libc.VaList(bp, zRet, zSep, zPre, zCol, zPost))
+ zSep = zSeparator
+ break
+ }
+ }
+ if i == (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol {
+ break
+ }
+ iPk++
+ }
+ return zRet
+}
+
+func rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, zWrite uintptr) uintptr {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+ var zRet uintptr = uintptr(0)
+ if bRowid != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+72, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+29248, libc.VaList(bp, zWrite, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl)))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 72))) {
+ var iMax Sqlite3_int64 = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 72)), 0)
+ zRet = rbuMPrintf(tls, p, ts+29280, libc.VaList(bp+16, iMax))
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 72)))
+ } else {
+ var zOrder uintptr = rbuObjIterGetPkList(tls, p, pIter, ts+1547, ts+15017, ts+29303)
+ var zSelect uintptr = rbuObjIterGetPkList(tls, p, pIter, ts+29309, ts+29316, ts+5360)
+ var zList uintptr = rbuObjIterGetPkList(tls, p, pIter, ts+1547, ts+15017, ts+1547)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+72, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+29324,
+ libc.VaList(bp+24, zSelect, zWrite, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder)))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 72))) {
+ var zVal uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 72)), 0)
+ zRet = rbuMPrintf(tls, p, ts+29366, libc.VaList(bp+56, zList, zVal))
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 72)))
+ }
+
+ Xsqlite3_free(tls, zOrder)
+ Xsqlite3_free(tls, zSelect)
+ Xsqlite3_free(tls, zList)
+ }
+ return zRet
+}
+
+func rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) uintptr {
+ bp := tls.Alloc(192)
+ defer tls.Free(192)
+
+ var zOrder uintptr
+ var zLhs uintptr
+ var zSelect uintptr
+ var zVector uintptr
+ var zRet uintptr
+ var bFailed int32
+ var zSep uintptr
+ var iCol int32
+
+ var i int32
+ var iCid int32
+ var zCollate uintptr
+ var zCol uintptr
+ var zQuoted uintptr
+
+ zOrder = uintptr(0)
+ zLhs = uintptr(0)
+ zSelect = uintptr(0)
+ zVector = uintptr(0)
+ zRet = uintptr(0)
+ bFailed = 0
+ zSep = ts + 1547
+ iCol = 0
+ *(*uintptr)(unsafe.Pointer(bp + 176)) = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+176, p+64,
+ Xsqlite3_mprintf(tls, ts+29063, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx)))
+__1:
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 176)))) {
+ goto __2
+ }
+ iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 1)
+ zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 4)
+ if !(Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 3) != 0) {
+ goto __3
+ }
+ bFailed = 1
+ goto __2
+__3:
+ ;
+ if !(iCid < 0) {
+ goto __4
+ }
+ if !((*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_IPK) {
+ goto __6
+ }
+ i = 0
+__8:
+ if !(int32(*(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == 0) {
+ goto __10
+ }
+ goto __9
+__9:
+ i++
+ goto __8
+ goto __10
+__10:
+ ;
+ zCol = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ goto __7
+__6:
+ zCol = ts + 29386
+__7:
+ ;
+ goto __5
+__4:
+ zCol = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8))
+__5:
+ ;
+ zLhs = rbuMPrintf(tls, p, ts+29394,
+ libc.VaList(bp+8, zLhs, zSep, zCol, zCollate))
+ zOrder = rbuMPrintf(tls, p, ts+29415,
+ libc.VaList(bp+40, zOrder, zSep, iCol, zCol, zCollate))
+ zSelect = rbuMPrintf(tls, p, ts+29451,
+ libc.VaList(bp+80, zSelect, zSep, iCol, zCol))
+ zSep = ts + 15017
+ iCol++
+ goto __1
+__2:
+ ;
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 176)))
+ if !(bFailed != 0) {
+ goto __11
+ }
+ goto index_start_out
+__11:
+ ;
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __12
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 184)) = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+184, p+64,
+ Xsqlite3_mprintf(tls, ts+29478,
+ libc.VaList(bp+112, zSelect, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder)))
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 184)))) {
+ goto __13
+ }
+ zSep = ts + 1547
+ iCol = 0
+__14:
+ if !(iCol < (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol) {
+ goto __16
+ }
+ zQuoted = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 184)), iCol)
+ if !(zQuoted == uintptr(0)) {
+ goto __17
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ goto __18
+__17:
+ if !(int32(*(*int8)(unsafe.Pointer(zQuoted))) == 'N') {
+ goto __19
+ }
+ bFailed = 1
+ goto __16
+__19:
+ ;
+__18:
+ ;
+ zVector = rbuMPrintf(tls, p, ts+29526, libc.VaList(bp+136, zVector, zSep, zQuoted))
+ zSep = ts + 15017
+ goto __15
+__15:
+ iCol++
+ goto __14
+ goto __16
+__16:
+ ;
+ if !!(bFailed != 0) {
+ goto __20
+ }
+ zRet = rbuMPrintf(tls, p, ts+29533, libc.VaList(bp+160, zLhs, zVector))
+__20:
+ ;
+__13:
+ ;
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 184)))
+__12:
+ ;
+index_start_out:
+ Xsqlite3_free(tls, zOrder)
+ Xsqlite3_free(tls, zSelect)
+ Xsqlite3_free(tls, zVector)
+ Xsqlite3_free(tls, zLhs)
+ return zRet
+}
+
+func rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposterCols uintptr, pzImposterPk uintptr, pzWhere uintptr, pnBind uintptr) uintptr {
+ bp := tls.Alloc(208)
+ defer tls.Free(208)
+
+ var rc int32 = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ var rc2 int32
+ var zRet uintptr = uintptr(0)
+ var zImpCols uintptr = uintptr(0)
+ var zImpPK uintptr = uintptr(0)
+ var zWhere uintptr = uintptr(0)
+ var nBind int32 = 0
+ var zCom uintptr = ts + 1547
+ var zAnd uintptr = ts + 1547
+ *(*uintptr)(unsafe.Pointer(bp + 200)) = uintptr(0)
+
+ if rc == SQLITE_OK {
+ rc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+200, p+64,
+ Xsqlite3_mprintf(tls, ts+29063, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx)))
+ }
+
+ for rc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 200))) {
+ var iCid int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), 1)
+ var bDesc int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), 3)
+ var zCollate uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), 4)
+ var zCol uintptr = uintptr(0)
+ var zType uintptr
+
+ if iCid == -2 {
+ var iSeq int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), 0)
+ zRet = Xsqlite3_mprintf(tls, ts+29545, libc.VaList(bp+8, zRet, zCom,
+ (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol+uintptr(iSeq)*16)).FnSpan, (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol+uintptr(iSeq)*16)).FzSpan, zCollate))
+ zType = ts + 1547
+ } else {
+ if iCid < 0 {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_IPK {
+ var i int32
+ for i = 0; int32(*(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == 0; i++ {
+ }
+
+ zCol = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ } else if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ zCol = ts + 29386
+ } else {
+ zCol = ts + 29116
+ }
+ zType = ts + 1112
+ } else {
+ zCol = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8))
+ zType = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8))
+ }
+ zRet = Xsqlite3_mprintf(tls, ts+29567, libc.VaList(bp+48, zRet, zCom, zCol, zCollate))
+ }
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), 5) != 0 {
+ var zOrder uintptr = func() uintptr {
+ if bDesc != 0 {
+ return ts + 29303
+ }
+ return ts + 1547
+ }()
+ zImpPK = Xsqlite3_mprintf(tls, ts+29587,
+ libc.VaList(bp+80, zImpPK, zCom, nBind, zCol, zOrder))
+ }
+ zImpCols = Xsqlite3_mprintf(tls, ts+29608,
+ libc.VaList(bp+120, zImpCols, zCom, nBind, zCol, zType, zCollate))
+ zWhere = Xsqlite3_mprintf(tls,
+ ts+29641, libc.VaList(bp+168, zWhere, zAnd, nBind, zCol))
+ if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ zCom = ts + 15017
+ zAnd = ts + 21975
+ nBind++
+ }
+
+ rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 200)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3_free(tls, zRet)
+ Xsqlite3_free(tls, zImpCols)
+ Xsqlite3_free(tls, zImpPK)
+ Xsqlite3_free(tls, zWhere)
+ zRet = uintptr(0)
+ zImpCols = uintptr(0)
+ zImpPK = uintptr(0)
+ zWhere = uintptr(0)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ }
+
+ *(*uintptr)(unsafe.Pointer(pzImposterCols)) = zImpCols
+ *(*uintptr)(unsafe.Pointer(pzImposterPk)) = zImpPK
+ *(*uintptr)(unsafe.Pointer(pzWhere)) = zWhere
+ *(*int32)(unsafe.Pointer(pnBind)) = nBind
+ return zRet
+}
+
+func rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr) uintptr {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var zList uintptr = uintptr(0)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 {
+ var zS uintptr = ts + 1547
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ if *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 {
+ var zCol uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ zList = Xsqlite3_mprintf(tls, ts+29665, libc.VaList(bp, zList, zS, zObj, zCol))
+ } else {
+ zList = Xsqlite3_mprintf(tls, ts+29677, libc.VaList(bp+32, zList, zS))
+ }
+ zS = ts + 15017
+ if zList == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ break
+ }
+ }
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE {
+ zList = rbuMPrintf(tls, p, ts+29686, libc.VaList(bp+48, zList, zObj))
+ }
+ }
+ return zList
+}
+
+func rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) uintptr {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var zList uintptr = uintptr(0)
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE {
+ zList = rbuMPrintf(tls, p, ts+29701, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+1))
+ } else if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL {
+ var zSep uintptr = ts + 1547
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ if *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 {
+ zList = rbuMPrintf(tls, p, ts+29715, libc.VaList(bp+8, zList, zSep, i, i+1))
+ zSep = ts + 21975
+ }
+ }
+ zList = rbuMPrintf(tls, p,
+ ts+29727, libc.VaList(bp+40, zList))
+
+ } else {
+ var zSep uintptr = ts + 1547
+ var i int32
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ if *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 {
+ var zCol uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8))
+ zList = rbuMPrintf(tls, p, ts+29777, libc.VaList(bp+48, zList, zSep, zCol, i+1))
+ zSep = ts + 21975
+ }
+ }
+ }
+ return zList
+}
+
+func rbuBadControlError(tls *libc.TLS, p uintptr) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+29790, 0)
+}
+
+func rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr) uintptr {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ var zList uintptr = uintptr(0)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var i int32
+
+ if int32(libc.Xstrlen(tls, zMask)) != (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol {
+ rbuBadControlError(tls, p)
+ } else {
+ var zSep uintptr = ts + 1547
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; i++ {
+ var c int8 = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4)))))
+ if int32(c) == 'x' {
+ zList = rbuMPrintf(tls, p, ts+29777,
+ libc.VaList(bp, zList, zSep, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+1))
+ zSep = ts + 15017
+ } else if int32(c) == 'd' {
+ zList = rbuMPrintf(tls, p, ts+29816,
+ libc.VaList(bp+32, zList, zSep, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+1))
+ zSep = ts + 15017
+ } else if int32(c) == 'f' {
+ zList = rbuMPrintf(tls, p, ts+29846,
+ libc.VaList(bp+72, zList, zSep, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+1))
+ zSep = ts + 15017
+ }
+ }
+ }
+ }
+ return zList
+}
+
+func rbuObjIterGetBindlist(tls *libc.TLS, p uintptr, nBind int32) uintptr {
+ var zRet uintptr = uintptr(0)
+ var nByte Sqlite3_int64 = int64(2)*Sqlite3_int64(nBind) + int64(1)
+
+ zRet = rbuMalloc(tls, p, nByte)
+ if zRet != 0 {
+ var i int32
+ for i = 0; i < nBind; i++ {
+ *(*int8)(unsafe.Pointer(zRet + uintptr(i*2))) = int8('?')
+ *(*int8)(unsafe.Pointer(zRet + uintptr(i*2+1))) = func() int8 {
+ if i+1 == nBind {
+ return int8(0)
+ }
+ return int8(',')
+ }()
+ }
+ }
+ return zRet
+}
+
+func rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) uintptr {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var z uintptr = uintptr(0)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var zSep uintptr = ts + 29883
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+56, p+64,
+ Xsqlite3_mprintf(tls, ts+29035, libc.VaList(bp, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl)))
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 56))) {
+ var zOrig uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 56)), 3)
+ if zOrig != 0 && libc.Xstrcmp(tls, zOrig, ts+16561) == 0 {
+ var zIdx uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 56)), 1)
+ if zIdx != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+64, p+64,
+ Xsqlite3_mprintf(tls, ts+29063, libc.VaList(bp+8, zIdx)))
+ }
+ break
+ }
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 56)))
+
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 64))) {
+ if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 5) != 0 {
+ var zCol uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 2)
+ var zDesc uintptr
+ if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 64)), 3) != 0 {
+ zDesc = ts + 29303
+ } else {
+ zDesc = ts + 1547
+ }
+ z = rbuMPrintf(tls, p, ts+29896, libc.VaList(bp+16, z, zSep, zCol, zDesc))
+ zSep = ts + 15017
+ }
+ }
+ z = rbuMPrintf(tls, p, ts+29907, libc.VaList(bp+48, z))
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ }
+ return z
+}
+
+func rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(184)
+ defer tls.Free(184)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL {
+ var tnum int32 = (*RbuObjIter)(unsafe.Pointer(pIter)).FiPkTnum
+ *(*uintptr)(unsafe.Pointer(bp + 168)) = uintptr(0)
+ var zIdx uintptr = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 176)) = uintptr(0)
+ var zComma uintptr = ts + 1547
+ var zCols uintptr = uintptr(0)
+ var zPk uintptr = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+168, p+64,
+ ts+29911)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp + 168)), 1, tnum)
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 168))) {
+ zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 168)), 0)
+ }
+ }
+ if zIdx != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+176, p+64,
+ Xsqlite3_mprintf(tls, ts+29063, libc.VaList(bp, zIdx)))
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 168)))
+
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 176))) {
+ var bKey int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 5)
+ if bKey != 0 {
+ var iCid int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 1)
+ var bDesc int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 3)
+ var zCollate uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), 4)
+ zCols = rbuMPrintf(tls, p, ts+29961, libc.VaList(bp+8, zCols, zComma,
+ iCid, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate))
+ zPk = rbuMPrintf(tls, p, ts+29983, libc.VaList(bp+48, zPk, zComma, iCid, func() uintptr {
+ if bDesc != 0 {
+ return ts + 29303
+ }
+ return ts + 1547
+ }()))
+ zComma = ts + 15017
+ }
+ }
+ zCols = rbuMPrintf(tls, p, ts+29993, libc.VaList(bp+80, zCols))
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 176)))
+
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+88, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 1, tnum))
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+30008,
+ libc.VaList(bp+120, zCols, zPk))
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+136, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 0, 0))
+ }
+}
+
+func rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(200)
+ defer tls.Free(200)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FeType != RBU_PK_VTAB {
+ var tnum int32 = (*RbuObjIter)(unsafe.Pointer(pIter)).FiTnum
+ var zComma uintptr = ts + 1547
+ var zSql uintptr = uintptr(0)
+ var iCol int32
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 0, 1))
+
+ for iCol = 0; (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol; iCol++ {
+ var zPk uintptr = ts + 1547
+ var zCol uintptr = *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8))
+ *(*uintptr)(unsafe.Pointer(bp + 192)) = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls,
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp+192, uintptr(0), uintptr(0), uintptr(0))
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_IPK && *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 {
+ zPk = ts + 30070
+ }
+ zSql = rbuMPrintf(tls, p, ts+30083,
+ libc.VaList(bp+32, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp + 192)),
+ func() uintptr {
+ if *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 {
+ return ts + 30110
+ }
+ return ts + 1547
+ }()))
+ zComma = ts + 15017
+ }
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_WITHOUT_ROWID {
+ var zPk uintptr = rbuWithoutRowidPK(tls, p, pIter)
+ if zPk != 0 {
+ zSql = rbuMPrintf(tls, p, ts+30120, libc.VaList(bp+88, zSql, zPk))
+ }
+ }
+
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+104, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 1, tnum))
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+30127,
+ libc.VaList(bp+136, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql,
+ func() uintptr {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_WITHOUT_ROWID {
+ return ts + 30159
+ }
+ return ts + 1547
+ }()))
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+160, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 0, 0))
+ }
+}
+
+func rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zCollist uintptr, zRbuRowid uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var bRbuRowid int32 = libc.Bool32((*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE)
+ var zBind uintptr = rbuObjIterGetBindlist(tls, p, (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+1+bRbuRowid)
+ if zBind != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls,
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls,
+ ts+30174,
+ libc.VaList(bp, p+48, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind)))
+ }
+}
+
+func rbuTmpInsertFunc(tls *libc.TLS, pCtx uintptr, nVal int32, apVal uintptr) {
+ var p uintptr = Xsqlite3_user_data(tls, pCtx)
+ var rc int32 = SQLITE_OK
+ var i int32
+
+ if Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(apVal))) != 0 {
+ *(*I64)(unsafe.Pointer(p + 304)) += I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FnIndex)
+ }
+
+ for i = 0; rc == SQLITE_OK && i < nVal; i++ {
+ rc = Xsqlite3_bind_value(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpTmpInsert, i+1, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)))
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3_step(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpTmpInsert)
+ rc = Xsqlite3_reset(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpTmpInsert)
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3_result_error_code(tls, pCtx, rc)
+ }
+}
+
+func rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) uintptr {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 8)) = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ var zRet uintptr = uintptr(0)
+
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64,
+ ts+30231)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ var rc2 int32
+ *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -1, uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ var zSql uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ if zSql != 0 {
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdxSql = libc.AssignUintptr(&zSql, rbuStrndup(tls, zSql, bp+8))
+ }
+ if zSql != 0 {
+ var nParen int32 = 0
+ var i int32
+ var iIdxCol int32 = 0
+ var nIdxAlloc int32 = 0
+ for i = 0; *(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0; i++ {
+ var c int8 = *(*int8)(unsafe.Pointer(zSql + uintptr(i)))
+
+ if iIdxCol == nIdxAlloc {
+ var aIdxCol uintptr = Xsqlite3_realloc(tls,
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol, int32(uint64(nIdxAlloc+16)*uint64(unsafe.Sizeof(RbuSpan{}))))
+ if aIdxCol == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_NOMEM
+ break
+ }
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol = aIdxCol
+ nIdxAlloc = nIdxAlloc + 16
+ }
+
+ if int32(c) == '(' {
+ if nParen == 0 {
+ (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol)).FzSpan = zSql + uintptr(i+1)
+ }
+ nParen++
+ } else if int32(c) == ')' {
+ nParen--
+ if nParen == 0 {
+ var nSpan int32 = int32((int64(zSql+uintptr(i)) - int64((*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol+uintptr(iIdxCol)*16)).FzSpan)) / 1)
+ (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(libc.PostIncInt32(&iIdxCol, 1))*16)).FnSpan = nSpan
+ i++
+ break
+ }
+ } else if int32(c) == ',' && nParen == 1 {
+ var nSpan int32 = int32((int64(zSql+uintptr(i)) - int64((*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol+uintptr(iIdxCol)*16)).FzSpan)) / 1)
+ (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(libc.PostIncInt32(&iIdxCol, 1))*16)).FnSpan = nSpan
+ (*RbuSpan)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iIdxCol)*16)).FzSpan = zSql + uintptr(i+1)
+ } else if int32(c) == '"' || int32(c) == '\'' || int32(c) == '`' {
+ for i++; 1 != 0; i++ {
+ if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == int32(c) {
+ if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+1)))) != int32(c) {
+ break
+ }
+ i++
+ }
+ }
+ } else if int32(c) == '[' {
+ for i++; 1 != 0; i++ {
+ if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == ']' {
+ break
+ }
+ }
+ } else if int32(c) == '-' && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+1)))) == '-' {
+ for i = i + 2; *(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) != '\n'; i++ {
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == 0 {
+ break
+ }
+ } else if int32(c) == '/' && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+1)))) == '*' {
+ for i = i + 2; *(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0 && (int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) != '*' || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+1)))) != '/'); i++ {
+ }
+ if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == 0 {
+ break
+ }
+ i++
+ }
+ }
+ if *(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0 {
+ zRet = rbuStrndup(tls, zSql+uintptr(i), bp+8)
+ }
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnIdxCol = iIdxCol
+ }
+ }
+
+ rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = rc2
+ }
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = *(*int32)(unsafe.Pointer(bp + 8))
+ return zRet
+}
+
+func rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int32) int32 {
+ bp := tls.Alloc(628)
+ defer tls.Free(628)
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect == uintptr(0) && rbuObjIterCacheTableInfo(tls, p, pIter) == SQLITE_OK {
+ var tnum int32 = (*RbuObjIter)(unsafe.Pointer(pIter)).FiTnum
+ var zCollist uintptr = uintptr(0)
+ var pz uintptr = p + 64
+ var zIdx uintptr = (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx
+ var zLimit uintptr = uintptr(0)
+
+ if nOffset != 0 {
+ zLimit = Xsqlite3_mprintf(tls, ts+30297, libc.VaList(bp, nOffset))
+ if !(zLimit != 0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ }
+ }
+
+ if zIdx != 0 {
+ var zTbl uintptr = (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl
+ *(*uintptr)(unsafe.Pointer(bp + 600)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 608)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 616)) = uintptr(0)
+ var zBind uintptr = uintptr(0)
+ var zPart uintptr = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 624)) = 0
+
+ zPart = rbuObjIterGetIndexWhere(tls, p, pIter)
+ zCollist = rbuObjIterGetIndexCols(tls,
+ p, pIter, bp+600, bp+608, bp+616, bp+624)
+ zBind = rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 624)))
+
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+8, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 0, 1))
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+40, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 1, tnum))
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+30317,
+ libc.VaList(bp+72, zTbl, *(*uintptr)(unsafe.Pointer(bp + 600)), *(*uintptr)(unsafe.Pointer(bp + 608))))
+ Xsqlite3_test_control(tls, SQLITE_TESTCTRL_IMPOSTER, libc.VaList(bp+96, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, 0, 0))
+
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 624))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls,
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64,
+ Xsqlite3_mprintf(tls, ts+30382, libc.VaList(bp+128, zTbl, zBind)))
+ }
+
+ if libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls,
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64,
+ Xsqlite3_mprintf(tls, ts+30418, libc.VaList(bp+144, zTbl, *(*uintptr)(unsafe.Pointer(bp + 616)))))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var zSql uintptr
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ var zStart uintptr = uintptr(0)
+ if nOffset != 0 {
+ zStart = rbuVacuumIndexStart(tls, p, pIter)
+ if zStart != 0 {
+ Xsqlite3_free(tls, zLimit)
+ zLimit = uintptr(0)
+ }
+ }
+
+ zSql = Xsqlite3_mprintf(tls,
+ ts+30452,
+ libc.VaList(bp+160, zCollist,
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl,
+ zPart,
+ func() uintptr {
+ if zStart != 0 {
+ return func() uintptr {
+ if zPart != 0 {
+ return ts + 30513
+ }
+ return ts + 30517
+ }()
+ }
+ return ts + 1547
+ }(), zStart,
+ zCollist, zLimit))
+ Xsqlite3_free(tls, zStart)
+ } else if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE {
+ zSql = Xsqlite3_mprintf(tls,
+ ts+30523,
+ libc.VaList(bp+216, zCollist, p+48, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl,
+ zPart, zCollist, zLimit))
+ } else {
+ zSql = Xsqlite3_mprintf(tls,
+ ts+30584,
+ libc.VaList(bp+264, zCollist, p+48, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart,
+ zCollist, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl,
+ zPart,
+ func() uintptr {
+ if zPart != 0 {
+ return ts + 30513
+ }
+ return ts + 30517
+ }(),
+ zCollist, zLimit))
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, zSql)
+ } else {
+ Xsqlite3_free(tls, zSql)
+ }
+ }
+
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 600)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 608)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 616)))
+ Xsqlite3_free(tls, zBind)
+ Xsqlite3_free(tls, zPart)
+ } else {
+ var bRbuRowid int32 = libc.Bool32((*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB ||
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE ||
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL && (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0))
+ var zTbl uintptr = (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl
+ var zWrite uintptr
+
+ var zBindings uintptr = rbuObjIterGetBindlist(tls, p, (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid)
+ var zWhere uintptr = rbuObjIterGetWhere(tls, p, pIter)
+ var zOldlist uintptr = rbuObjIterGetOldlist(tls, p, pIter, ts+6855)
+ var zNewlist uintptr = rbuObjIterGetOldlist(tls, p, pIter, ts+6851)
+
+ zCollist = rbuObjIterGetCollist(tls, p, pIter)
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol
+
+ rbuCreateImposterTable(tls, p, pIter)
+ rbuCreateImposterTable2(tls, p, pIter)
+ zWrite = func() uintptr {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB {
+ return ts + 1547
+ }
+ return ts + 30743
+ }()
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz,
+ Xsqlite3_mprintf(tls,
+ ts+30752,
+ libc.VaList(bp+344, zWrite, zTbl, zCollist, func() uintptr {
+ if bRbuRowid != 0 {
+ return ts + 30788
+ }
+ return ts + 1547
+ }(), zBindings)))
+ }
+
+ if libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz,
+ Xsqlite3_mprintf(tls,
+ ts+30798, libc.VaList(bp+384, zWrite, zTbl, zWhere)))
+ }
+
+ if libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 {
+ var zRbuRowid uintptr = ts + 1547
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE {
+ zRbuRowid = ts + 30826
+ }
+
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu,
+ ts+30838, libc.VaList(bp+408, p+48, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, func() uintptr {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL {
+ return ts + 30914
+ }
+ return ts + 1547
+ }(), (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))
+
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+30931,
+ libc.VaList(bp+440, zWrite, zTbl, zOldlist,
+ zWrite, zTbl, zOldlist,
+ zWrite, zTbl, zNewlist))
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE {
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+31230,
+ libc.VaList(bp+512, zWrite, zTbl, zNewlist))
+ }
+
+ rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var zRbuRowid uintptr = ts + 1547
+ var zStart uintptr = uintptr(0)
+ var zOrder uintptr = uintptr(0)
+ if bRbuRowid != 0 {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ zRbuRowid = ts + 31329
+ } else {
+ zRbuRowid = ts + 31339
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ if nOffset != 0 {
+ zStart = rbuVacuumTableStart(tls, p, pIter, bRbuRowid, zWrite)
+ if zStart != 0 {
+ Xsqlite3_free(tls, zLimit)
+ zLimit = uintptr(0)
+ }
+ }
+ if bRbuRowid != 0 {
+ zOrder = rbuMPrintf(tls, p, ts+29386, 0)
+ } else {
+ zOrder = rbuObjIterGetPkList(tls, p, pIter, ts+1547, ts+15017, ts+1547)
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz,
+ Xsqlite3_mprintf(tls,
+ ts+31350,
+ libc.VaList(bp+536, zCollist,
+ func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return ts + 31398
+ }
+ return ts + 1547
+ }(),
+ zRbuRowid,
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, func() uintptr {
+ if zStart != 0 {
+ return zStart
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if zOrder != 0 {
+ return ts + 23309
+ }
+ return ts + 1547
+ }(), zOrder,
+ zLimit)))
+ }
+ Xsqlite3_free(tls, zStart)
+ Xsqlite3_free(tls, zOrder)
+ }
+
+ Xsqlite3_free(tls, zWhere)
+ Xsqlite3_free(tls, zOldlist)
+ Xsqlite3_free(tls, zNewlist)
+ Xsqlite3_free(tls, zBindings)
+ }
+ Xsqlite3_free(tls, zCollist)
+ Xsqlite3_free(tls, zLimit)
+ }
+
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+}
+
+func rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, ppStmt uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pp uintptr
+ var pUp uintptr = uintptr(0)
+ var nUp int32 = 0
+
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+
+ for pp = pIter + 184; *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = *(*uintptr)(unsafe.Pointer(pp)) + 16 {
+ pUp = *(*uintptr)(unsafe.Pointer(pp))
+ if libc.Xstrcmp(tls, (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FzMask, zMask) == 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext
+ (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate
+ return SQLITE_OK
+ }
+ nUp++
+ }
+
+ if nUp >= SQLITE_RBU_UPDATE_CACHESIZE {
+ for pp = pIter + 184; *(*uintptr)(unsafe.Pointer(pp)) != pUp; pp = *(*uintptr)(unsafe.Pointer(pp)) + 16 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ Xsqlite3_finalize(tls, (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate)
+ (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate = uintptr(0)
+ } else {
+ pUp = rbuMalloc(tls, p, int64(uint64(unsafe.Sizeof(RbuUpdateStmt{}))+uint64((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)+uint64(1)))
+ }
+
+ if pUp != 0 {
+ var zWhere uintptr = rbuObjIterGetWhere(tls, p, pIter)
+ var zSet uintptr = rbuObjIterGetSetlist(tls, p, pIter, zMask)
+ var zUpdate uintptr = uintptr(0)
+
+ (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FzMask = pUp + 1*24
+ libc.X__builtin___memcpy_chk(tls, (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FzMask, zMask, uint64((*RbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FzMask, 0))
+ (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp
+
+ if zSet != 0 {
+ var zPrefix uintptr = ts + 1547
+
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType != RBU_PK_VTAB {
+ zPrefix = ts + 30743
+ }
+ zUpdate = Xsqlite3_mprintf(tls, ts+31404,
+ libc.VaList(bp, zPrefix, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls,
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate)
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = (*RbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate
+ }
+ Xsqlite3_free(tls, zWhere)
+ Xsqlite3_free(tls, zSet)
+ }
+
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+}
+
+func rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var flags int32 = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp+8, flags, func() uintptr {
+ if bUseVfs != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FzVfsName
+ }
+ return uintptr(0)
+ }())
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))))
+ Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ }
+ }
+ return *(*uintptr)(unsafe.Pointer(bp + 8))
+}
+
+func rbuFreeState(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ Xsqlite3_free(tls, (*RbuState)(unsafe.Pointer(p)).FzTbl)
+ Xsqlite3_free(tls, (*RbuState)(unsafe.Pointer(p)).FzDataTbl)
+ Xsqlite3_free(tls, (*RbuState)(unsafe.Pointer(p)).FzIdx)
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func rbuLoadState(tls *libc.TLS, p uintptr) uintptr {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var pRet uintptr = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ var rc2 int32
+
+ pRet = rbuMalloc(tls, p, int64(unsafe.Sizeof(RbuState{})))
+ if pRet == uintptr(0) {
+ return uintptr(0)
+ }
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp+8, p+64,
+ Xsqlite3_mprintf(tls, ts+31434, libc.VaList(bp, p+48)))
+ for *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) {
+ switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0) {
+ case RBU_STATE_STAGE:
+ (*RbuState)(unsafe.Pointer(pRet)).FeStage = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ if (*RbuState)(unsafe.Pointer(pRet)).FeStage != RBU_STAGE_OAL &&
+ (*RbuState)(unsafe.Pointer(pRet)).FeStage != RBU_STAGE_MOVE &&
+ (*RbuState)(unsafe.Pointer(pRet)).FeStage != RBU_STAGE_CKPT {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT
+ }
+ break
+
+ case RBU_STATE_TBL:
+ (*RbuState)(unsafe.Pointer(pRet)).FzTbl = rbuStrndup(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1), bp+16)
+ break
+
+ case RBU_STATE_IDX:
+ (*RbuState)(unsafe.Pointer(pRet)).FzIdx = rbuStrndup(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1), bp+16)
+ break
+
+ case RBU_STATE_ROW:
+ (*RbuState)(unsafe.Pointer(pRet)).FnRow = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ break
+
+ case RBU_STATE_PROGRESS:
+ (*RbuState)(unsafe.Pointer(pRet)).FnProgress = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ break
+
+ case RBU_STATE_CKPT:
+ (*RbuState)(unsafe.Pointer(pRet)).FiWalCksum = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ break
+
+ case RBU_STATE_COOKIE:
+ (*RbuState)(unsafe.Pointer(pRet)).FiCookie = U32(Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1))
+ break
+
+ case RBU_STATE_OALSZ:
+ (*RbuState)(unsafe.Pointer(pRet)).FiOalSz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ break
+
+ case RBU_STATE_PHASEONESTEP:
+ (*RbuState)(unsafe.Pointer(pRet)).FnPhaseOneStep = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1)
+ break
+
+ case RBU_STATE_DATATBL:
+ (*RbuState)(unsafe.Pointer(pRet)).FzDataTbl = rbuStrndup(tls, Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 1), bp+16)
+ break
+
+ default:
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_CORRUPT
+ break
+ }
+ }
+ rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = rc2
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = *(*int32)(unsafe.Pointer(bp + 16))
+ return pRet
+}
+
+func rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu = rbuOpenDbhandle(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu, 1)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ Xsqlite3_file_control(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+6844, SQLITE_FCNTL_RBUCNT, p)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) {
+ var zFile uintptr = Xsqlite3_db_filename(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+6844)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzState = rbuMPrintf(tls, p, ts+31464, libc.VaList(bp, zFile, zFile))
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzState != 0 {
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+31492, libc.VaList(bp+16, (*Sqlite3rbu)(unsafe.Pointer(p)).FzState))
+ libc.X__builtin___memcpy_chk(tls, p+48, ts+3279, uint64(4), libc.X__builtin_object_size(tls, p+48, 0))
+ } else {
+ libc.X__builtin___memcpy_chk(tls, p+48, ts+6844, uint64(4), libc.X__builtin_object_size(tls, p+48, 0))
+ }
+
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+31510, libc.VaList(bp+24, p+48))
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ var bOpen int32 = 0
+ var rc int32
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0)
+ rc = Xsqlite3_file_control(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+6844, SQLITE_FCNTL_RBUCNT, p)
+ if rc != SQLITE_NOTFOUND {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage >= RBU_STAGE_MOVE {
+ bOpen = 1
+ } else {
+ var pState uintptr = rbuLoadState(tls, p)
+ if pState != 0 {
+ bOpen = libc.Bool32((*RbuState)(unsafe.Pointer(pState)).FeStage >= RBU_STAGE_MOVE)
+ rbuFreeState(tls, pState)
+ }
+ }
+ if bOpen != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = rbuOpenDbhandle(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu, libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FnRbu <= 1))
+ }
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = 0
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain == uintptr(0) {
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = rbuOpenDbhandle(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget, 1)
+ } else if (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpRbuFd)).FpWalFd != 0 {
+ if pbRetry != 0 {
+ (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpRbuFd)).FbNolock = U8(0)
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu)
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = uintptr(0)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu = uintptr(0)
+ *(*int32)(unsafe.Pointer(pbRetry)) = 1
+ return
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+31576, 0)
+ } else {
+ var zTarget uintptr
+ var zExtra uintptr = uintptr(0)
+ if libc.Xstrlen(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, ts+24656, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) {
+ zExtra = (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5
+ for *(*int8)(unsafe.Pointer(zExtra)) != 0 {
+ if int32(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zExtra, 1)))) == '?' {
+ break
+ }
+ }
+ if int32(*(*int8)(unsafe.Pointer(zExtra))) == 0 {
+ zExtra = uintptr(0)
+ }
+ }
+
+ zTarget = Xsqlite3_mprintf(tls, ts+31608,
+ libc.VaList(bp+32, Xsqlite3_db_filename(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+6844),
+ func() uintptr {
+ if zExtra == uintptr(0) {
+ return ts + 1547
+ }
+ return ts + 31640
+ }(), func() uintptr {
+ if zExtra == uintptr(0) {
+ return ts + 1547
+ }
+ return zExtra
+ }()))
+
+ if zTarget == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ return
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = rbuOpenDbhandle(tls, p, zTarget, libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FnRbu <= 1))
+ Xsqlite3_free(tls, zTarget)
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+31642, -1, SQLITE_UTF8, p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rbuTmpInsertFunc})), uintptr(0), uintptr(0))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain,
+ ts+31657, 2, SQLITE_UTF8, uintptr(0), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rbuFossilDeltaFunc})), uintptr(0), uintptr(0))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu,
+ ts+31674, -1, SQLITE_UTF8, p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rbuTargetNameFunc})), uintptr(0), uintptr(0))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, SQLITE_FCNTL_RBU, p)
+ }
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+31690, 0)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, SQLITE_FCNTL_RBU, p)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_NOTFOUND {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+31718, 0)
+ }
+}
+
+func rbuFileSuffix3(tls *libc.TLS, zBase uintptr, z uintptr) {
+}
+
+func rbuShmChecksum(tls *libc.TLS, p uintptr) I64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iRet I64 = int64(0)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})).f(tls, pDb, 0, 32*1024, 0, bp)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ iRet = I64(*(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 10*4)))<<32 + I64(*(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 11*4)))
+ }
+ }
+ return iRet
+}
+
+func rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) {
+ if pState == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = 0
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+31690, uintptr(0), uintptr(0), uintptr(0))
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var rc2 int32
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_CAPTURE
+ rc2 = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+31736, uintptr(0), uintptr(0), uintptr(0))
+ if rc2 != SQLITE_NOTICE {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc2
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FnFrame > 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_CKPT
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep = func() int32 {
+ if pState != 0 {
+ return (*RbuState)(unsafe.Pointer(pState)).FnRow
+ }
+ return 0
+ }()
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FaBuf = rbuMalloc(tls, p, int64((*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FiWalCksum = rbuShmChecksum(tls, p)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FnFrame == 0 || pState != 0 && (*RbuState)(unsafe.Pointer(pState)).FiWalCksum != (*Sqlite3rbu)(unsafe.Pointer(p)).FiWalCksum {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_DONE
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_DONE
+ } else {
+ var nSectorSize int32
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+ var pWal uintptr = (*Rbu_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal
+
+ nSectorSize = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSectorSize})).f(tls, pDb)
+ if nSectorSize > (*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz
+ } else {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = 1
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})).f(tls, pWal, SQLITE_SYNC_NORMAL)
+ }
+ }
+}
+
+func rbuCaptureWalRead(tls *libc.TLS, pRbu uintptr, iOff I64, iAmt int32) int32 {
+ var mReq U32 = U32(int32(1)<<WAL_LOCK_WRITE | int32(1)<<WAL_LOCK_CKPT | int32(1)<<WAL_LOCK_READ0)
+ var iFrame U32
+
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FmLock != mReq {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).Frc = SQLITE_BUSY
+ return SQLITE_NOTICE | int32(3)<<8
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).Fpgsz = iAmt
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame == (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrameAlloc {
+ var nNew int32 = func() int32 {
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrameAlloc != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrameAlloc
+ }
+ return 64
+ }() * 2
+ var aNew uintptr
+ aNew = Xsqlite3_realloc64(tls, (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame, uint64(nNew)*uint64(unsafe.Sizeof(RbuFrame{})))
+ if aNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame = aNew
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrameAlloc = nNew
+ }
+
+ iFrame = U32((iOff-int64(32))/I64(iAmt+24)) + U32(1)
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FiMaxFrame < iFrame {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FiMaxFrame = iFrame
+ }
+ (*RbuFrame)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame + uintptr((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame)*8)).FiWalFrame = iFrame
+ (*RbuFrame)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame + uintptr((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame)*8)).FiDbPage = U32(0)
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame++
+ return SQLITE_OK
+}
+
+func rbuCaptureDbWrite(tls *libc.TLS, pRbu uintptr, iOff I64) int32 {
+ (*RbuFrame)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FaFrame + uintptr((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnFrame-1)*8)).FiDbPage = U32(iOff/I64((*Sqlite3rbu)(unsafe.Pointer(pRbu)).Fpgsz)) + U32(1)
+ return SQLITE_OK
+}
+
+func rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) {
+ var pWal uintptr = (*Rbu_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+ var iOff I64
+
+ iOff = I64((*RbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-U32(1))*I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz+24) + int64(32) + int64(24)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})).f(tls, pWal, (*Sqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+
+ iOff = I64((*RbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-U32(1)) * I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})).f(tls, pDb, (*Sqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Sqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff)
+}
+
+func rbuLockDatabase(tls *libc.TLS, db uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ Xsqlite3_file_control(tls, db, ts+6844, SQLITE_FCNTL_FILE_POINTER, bp)
+
+ if (*Sqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})).f(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_SHARED)
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})).f(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_EXCLUSIVE)
+ }
+ }
+ return rc
+}
+
+func rbuExclusiveCheckpoint(tls *libc.TLS, db uintptr) int32 {
+ var zUri uintptr = Xsqlite3_db_filename(tls, db, uintptr(0))
+ return Xsqlite3_uri_boolean(tls, zUri, ts+31771, 0)
+}
+
+func rbuMoveOalFile(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var zBase uintptr = Xsqlite3_db_filename(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844)
+ var zMove uintptr = zBase
+ var zOal uintptr
+ var zWal uintptr
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ zMove = Xsqlite3_db_filename(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+6844)
+ }
+ zOal = Xsqlite3_mprintf(tls, ts+31796, libc.VaList(bp, zMove))
+ zWal = Xsqlite3_mprintf(tls, ts+31803, libc.VaList(bp+8, zMove))
+
+ if zWal == uintptr(0) || zOal == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ var dbMain uintptr = uintptr(0)
+ rbuFileSuffix3(tls, zBase, zWal)
+ rbuFileSuffix3(tls, zBase, zOal)
+
+ rbuObjIterFinalize(tls, p+80)
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu)
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain = uintptr(0)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu = uintptr(0)
+
+ dbMain = rbuOpenDbhandle(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget, 1)
+ if dbMain != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rbuLockDatabase(tls, dbMain)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3rbu)(unsafe.Pointer(p)).FxRename})).f(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FpRenameArg, zOal, zWal)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK ||
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) ||
+ rbuExclusiveCheckpoint(tls, dbMain) == 0 {
+ Xsqlite3_close(tls, dbMain)
+ dbMain = uintptr(0)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuOpenDatabase(tls, p, dbMain, uintptr(0))
+ rbuSetupCheckpoint(tls, p, uintptr(0))
+ }
+ }
+
+ Xsqlite3_free(tls, zWal)
+ Xsqlite3_free(tls, zOal)
+}
+
+func rbuStepType(tls *libc.TLS, p uintptr, pzMask uintptr) int32 {
+ var iCol int32 = (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FnCol
+ var res int32 = 0
+
+ switch Xsqlite3_column_type(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpSelect, iCol) {
+ case SQLITE_INTEGER:
+ {
+ var iVal int32 = Xsqlite3_column_int(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpSelect, iCol)
+ switch iVal {
+ case 0:
+ res = RBU_INSERT
+ break
+ case 1:
+ res = RBU_DELETE
+ break
+ case 2:
+ res = RBU_REPLACE
+ break
+ case 3:
+ res = RBU_IDX_DELETE
+ break
+ case 4:
+ res = RBU_IDX_INSERT
+ break
+ }
+ break
+
+ }
+
+ case SQLITE_TEXT:
+ {
+ var z uintptr = Xsqlite3_column_text(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FpSelect, iCol)
+ if z == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzMask)) = z
+ }
+ res = RBU_UPDATE
+
+ break
+
+ }
+
+ default:
+ break
+ }
+
+ if res == 0 {
+ rbuBadControlError(tls, p)
+ }
+ return res
+}
+
+func rbuStepOneOp(tls *libc.TLS, p uintptr, eType int32) {
+ var pIter uintptr = p + 80
+ var pVal uintptr
+ var pWriter uintptr
+ var i int32
+
+ if eType == RBU_DELETE {
+ *(*I64)(unsafe.Pointer(p + 304)) -= I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FnIndex)
+ }
+
+ if eType == RBU_IDX_DELETE || eType == RBU_DELETE {
+ pWriter = (*RbuObjIter)(unsafe.Pointer(pIter)).FpDelete
+ } else {
+ pWriter = (*RbuObjIter)(unsafe.Pointer(pIter)).FpInsert
+ }
+
+ for i = 0; i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol; i++ {
+ if eType == RBU_INSERT &&
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) && (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_IPK && *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 &&
+ Xsqlite3_column_type(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect, i) == SQLITE_NULL {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_MISMATCH
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+24294, 0)
+ return
+ }
+
+ if eType == RBU_DELETE && int32(*(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == 0 {
+ continue
+ }
+
+ pVal = Xsqlite3_column_value(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect, i)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_bind_value(tls, pWriter, i+1, pVal)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+ }
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB ||
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE ||
+ (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_EXTERNAL && (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ pVal = Xsqlite3_column_value(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect, (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol+1)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_bind_value(tls, pWriter, (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol+1, pVal)
+ }
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ Xsqlite3_step(tls, pWriter)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = resetAndCollectError(tls, pWriter, p+64)
+ }
+}
+
+func rbuStep(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pIter uintptr = p + 80
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var eType int32 = rbuStepType(tls, p, bp)
+
+ if eType != 0 {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) && (eType == RBU_IDX_DELETE || eType == RBU_IDX_INSERT) {
+ rbuBadControlError(tls, p)
+ } else if eType == RBU_REPLACE {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) {
+ *(*I64)(unsafe.Pointer(p + 304)) += I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FnIndex)
+ rbuStepOneOp(tls, p, RBU_DELETE)
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuStepOneOp(tls, p, RBU_INSERT)
+ }
+ } else if eType != RBU_UPDATE {
+ rbuStepOneOp(tls, p, eType)
+ } else {
+ var pVal uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ *(*I64)(unsafe.Pointer(p + 304)) -= I64((*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FnIndex)
+ rbuGetUpdateStmt(tls, p, pIter, *(*uintptr)(unsafe.Pointer(bp)), bp+8)
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ var i int32
+ for i = 0; (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && i < (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol; i++ {
+ var c int8 = *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + uintptr(*(*int32)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4)))))
+ pVal = Xsqlite3_column_value(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect, i)
+ if *(*U8)(unsafe.Pointer((*RbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 || int32(c) != '.' {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_bind_value(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), i+1, pVal)
+ }
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK &&
+ ((*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_VTAB || (*RbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NONE) {
+ pVal = Xsqlite3_column_value(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect, (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol+1)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_bind_value(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), (*RbuObjIter)(unsafe.Pointer(pIter)).FnCol+1, pVal)
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = resetAndCollectError(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), p+64)
+ }
+ }
+ }
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+}
+
+func rbuIncrSchemaCookie(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var dbread uintptr = func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain
+ }()
+ var iCookie int32 = 1000000
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, dbread, bp+8, p+64,
+ ts+31810)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) {
+ iCookie = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0)
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+31832, libc.VaList(bp, iCookie+1))
+ }
+ }
+}
+
+func rbuSaveState(tls *libc.TLS, p uintptr, eStage int32) {
+ bp := tls.Alloc(176)
+ defer tls.Free(176)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK || (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_DONE {
+ *(*uintptr)(unsafe.Pointer(bp + 168)) = uintptr(0)
+ var pFd uintptr = func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FpRbuFd
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd
+ }()
+ var rc int32
+
+ rc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp+168, p+64,
+ Xsqlite3_mprintf(tls,
+ ts+31859,
+ libc.VaList(bp, p+48,
+ RBU_STATE_STAGE, eStage,
+ RBU_STATE_TBL, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzTbl,
+ RBU_STATE_IDX, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzIdx,
+ RBU_STATE_ROW, (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep,
+ RBU_STATE_PROGRESS, (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress,
+ RBU_STATE_CKPT, (*Sqlite3rbu)(unsafe.Pointer(p)).FiWalCksum,
+ RBU_STATE_COOKIE, I64((*Rbu_file)(unsafe.Pointer(pFd)).FiCookie),
+ RBU_STATE_OALSZ, (*Sqlite3rbu)(unsafe.Pointer(p)).FiOalSz,
+ RBU_STATE_PHASEONESTEP, (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep,
+ RBU_STATE_DATATBL, (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzDataTbl)))
+
+ if rc == SQLITE_OK {
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 168)))
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 168)))
+ }
+ if rc != SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ }
+ }
+}
+
+func rbuCopyPragma(tls *libc.TLS, p uintptr, zPragma uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareFreeAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp+24, p+64,
+ Xsqlite3_mprintf(tls, ts+32017, libc.VaList(bp, zPragma)))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+32032,
+ libc.VaList(bp+8, zPragma, Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 0)))
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ }
+}
+
+func rbuCreateTargetSchema(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+32052, uintptr(0), uintptr(0), p+64)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64,
+ ts+32077)
+ }
+
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) == SQLITE_ROW {
+ var zSql uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, zSql, uintptr(0), uintptr(0), p+64)
+ }
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp)))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64,
+ ts+32185)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64,
+ ts+32250)
+ }
+
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) == SQLITE_ROW {
+ var i int32
+ for i = 0; i < 5; i++ {
+ Xsqlite3_bind_value(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), i+1, Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), i))
+ }
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+32294, uintptr(0), uintptr(0), p+64)
+ }
+
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp)))
+ rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8)))
+}
+
+// Step the RBU object.
+func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if p != 0 {
+ switch (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage {
+ case RBU_STAGE_OAL:
+ {
+ var pIter uintptr = p + 80
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress == 0 && (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuCreateTargetSchema(tls, p)
+ rbuCopyPragma(tls, p, ts+17662)
+ rbuCopyPragma(tls, p, ts+16757)
+ }
+
+ for (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl != 0 {
+ if (*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 {
+ if libc.Bool32((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*RbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 {
+ rbuMPrintfExec(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu,
+ ts+32319, libc.VaList(bp, p+48, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))
+ }
+ } else {
+ rbuObjIterPrepareAll(tls, p, pIter, 0)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var rc int32 = Xsqlite3_step(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect)
+ if rc == SQLITE_ROW {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress++
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep++
+ return rbuStep(tls, p)
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FpSelect)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep = 0
+ }
+ }
+
+ rbuObjIterNext(tls, p, pIter)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuSaveState(tls, p, RBU_STAGE_MOVE)
+ rbuIncrSchemaCookie(tls, p)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+14921, uintptr(0), uintptr(0), p+64)
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+14921, uintptr(0), uintptr(0), p+64)
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_MOVE
+ }
+ break
+
+ }
+ fallthrough
+
+ case RBU_STAGE_MOVE:
+ {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuMoveOalFile(tls, p)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress++
+ }
+ break
+
+ }
+ fallthrough
+
+ case RBU_STAGE_CKPT:
+ {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Sqlite3rbu)(unsafe.Pointer(p)).FnFrame {
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})).f(tls, pDb, SQLITE_SYNC_NORMAL)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})).f(tls, pDb, 0, 32*1024, 0, bp+16)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ *(*U32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 24*4)) = (*Sqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_DONE
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_DONE
+ }
+ } else {
+ var iSector U32
+ for __ccgo := true; __ccgo; __ccgo = (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep < (*Sqlite3rbu)(unsafe.Pointer(p)).FnFrame &&
+ iSector == ((*RbuFrame)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FaFrame+uintptr((*Sqlite3rbu)(unsafe.Pointer(p)).FnStep)*8)).FiDbPage-U32(1))/U32((*Sqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector) &&
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pFrame uintptr = (*Sqlite3rbu)(unsafe.Pointer(p)).FaFrame + uintptr((*Sqlite3rbu)(unsafe.Pointer(p)).FnStep)*8
+ iSector = ((*RbuFrame)(unsafe.Pointer(pFrame)).FiDbPage - U32(1)) / U32((*Sqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector)
+ rbuCheckpointFrame(tls, p, pFrame)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep++
+ }
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress++
+ }
+ break
+
+ }
+ fallthrough
+
+ default:
+ break
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ } else {
+ return SQLITE_NOMEM
+ }
+ return int32(0)
+}
+
+func rbuStrCompare(tls *libc.TLS, z1 uintptr, z2 uintptr) int32 {
+ if z1 == uintptr(0) && z2 == uintptr(0) {
+ return 0
+ }
+ if z1 == uintptr(0) || z2 == uintptr(0) {
+ return 1
+ }
+ return libc.Bool32(Xsqlite3_stricmp(tls, z1, z2) != 0)
+}
+
+func rbuSetupOal(tls *libc.TLS, p uintptr, pState uintptr) {
+ if (*RbuState)(unsafe.Pointer(pState)).FzTbl != 0 {
+ var pIter uintptr = p + 80
+ var rc int32 = SQLITE_OK
+
+ for rc == SQLITE_OK && (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl != 0 && ((*RbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 ||
+ rbuStrCompare(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FzIdx, (*RbuState)(unsafe.Pointer(pState)).FzIdx) != 0 ||
+ (*RbuState)(unsafe.Pointer(pState)).FzDataTbl == uintptr(0) && rbuStrCompare(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl, (*RbuState)(unsafe.Pointer(pState)).FzTbl) != 0 ||
+ (*RbuState)(unsafe.Pointer(pState)).FzDataTbl != 0 && rbuStrCompare(tls, (*RbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, (*RbuState)(unsafe.Pointer(pState)).FzDataTbl) != 0) {
+ rc = rbuObjIterNext(tls, p, pIter)
+ }
+
+ if rc == SQLITE_OK && !(int32((*RbuObjIter)(unsafe.Pointer(pIter)).FzTbl) != 0) {
+ rc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+32347, 0)
+ }
+
+ if rc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep = (*RbuState)(unsafe.Pointer(pState)).FnRow
+ rc = rbuObjIterPrepareAll(tls, p, p+80, (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep)
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ }
+}
+
+func rbuDeleteOalFile(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var zOal uintptr = rbuMPrintf(tls, p, ts+31796, libc.VaList(bp, (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget))
+ if zOal != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ Xsqlite3_file_control(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+6844, SQLITE_FCNTL_VFS_POINTER, bp+8)
+
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxDelete})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), zOal, 0)
+ Xsqlite3_free(tls, zOal)
+ }
+}
+
+func rbuCreateVfs(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(76)
+ defer tls.Free(76)
+
+ Xsqlite3_randomness(tls, int32(unsafe.Sizeof(int32(0))), bp+8)
+ Xsqlite3_snprintf(tls, int32(unsafe.Sizeof([64]int8{})), bp+12, ts+32372, libc.VaList(bp, *(*int32)(unsafe.Pointer(bp + 8))))
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3rbu_create_vfs(tls, bp+12, uintptr(0))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pVfs uintptr = Xsqlite3_vfs_find(tls, bp+12)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzVfsName = (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FzName
+ (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRbu = p
+ }
+}
+
+func rbuDeleteVfs(tls *libc.TLS, p uintptr) {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzVfsName != 0 {
+ Xsqlite3rbu_destroy_vfs(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzVfsName)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzVfsName = uintptr(0)
+ }
+}
+
+func rbuIndexCntFunc(tls *libc.TLS, pCtx uintptr, nVal int32, apVal uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr = Xsqlite3_user_data(tls, pCtx)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var rc int32
+ var db uintptr = func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain
+ }()
+
+ rc = prepareFreeAndCollectError(tls, db, bp+8, bp+16,
+ Xsqlite3_mprintf(tls,
+ ts+32383, libc.VaList(bp, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal))))))
+ if rc != SQLITE_OK {
+ Xsqlite3_result_error(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 16)), -1)
+ } else {
+ var nIndex int32 = 0
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) {
+ nIndex = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ if rc == SQLITE_OK {
+ Xsqlite3_result_int(tls, pCtx, nIndex)
+ } else {
+ Xsqlite3_result_error(tls, pCtx, Xsqlite3_errmsg(tls, db), -1)
+ }
+ }
+
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+}
+
+func rbuInitPhaseOneSteps(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var bExists int32 = 0
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep = int64(-1)
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu,
+ ts+32455, 1, SQLITE_UTF8, p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{rbuIndexCntFunc})), uintptr(0), uintptr(0))
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64,
+ ts+32469)
+ }
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ bExists = 1
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && bExists != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = prepareAndCollectError(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64,
+ ts+32526)
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ }
+}
+
+func openRbuHandle(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr) uintptr {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var p uintptr
+ var nTarget Size_t
+ if zTarget != 0 {
+ nTarget = libc.Xstrlen(tls, zTarget)
+ } else {
+ nTarget = uint64(0)
+ }
+ var nRbu Size_t = libc.Xstrlen(tls, zRbu)
+ var nByte Size_t = uint64(unsafe.Sizeof(Sqlite3rbu{})) + nTarget + uint64(1) + nRbu + uint64(1)
+
+ p = Xsqlite3_malloc64(tls, nByte)
+ if p != 0 {
+ var pState uintptr = uintptr(0)
+
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Sqlite3rbu{})), libc.X__builtin_object_size(tls, p, 0))
+ Xsqlite3rbu_rename_handler(tls, p, uintptr(0), uintptr(0))
+ rbuCreateVfs(tls, p)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pCsr uintptr = p + 1*408
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ if zTarget != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget = pCsr
+ libc.X__builtin___memcpy_chk(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget, zTarget, nTarget+uint64(1), libc.X__builtin_object_size(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget, 0))
+ pCsr += uintptr(nTarget + uint64(1))
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu = pCsr
+ libc.X__builtin___memcpy_chk(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu, zRbu, nRbu+uint64(1), libc.X__builtin_object_size(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzRbu, 0))
+ pCsr += uintptr(nRbu + uint64(1))
+ if zState != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzState = rbuMPrintf(tls, p, ts+3658, libc.VaList(bp, zState))
+ }
+
+ rbuOpenDatabase(tls, p, uintptr(0), bp+16)
+ if *(*int32)(unsafe.Pointer(bp + 16)) != 0 {
+ rbuOpenDatabase(tls, p, uintptr(0), uintptr(0))
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ pState = rbuLoadState(tls, p)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*RbuState)(unsafe.Pointer(pState)).FeStage == 0 {
+ rbuDeleteOalFile(tls, p)
+ rbuInitPhaseOneSteps(tls, p)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_OAL
+ } else {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = (*RbuState)(unsafe.Pointer(pState)).FeStage
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep = (*RbuState)(unsafe.Pointer(pState)).FnPhaseOneStep
+ }
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress = int32((*RbuState)(unsafe.Pointer(pState)).FnProgress)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FiOalSz = (*RbuState)(unsafe.Pointer(pState)).FiOalSz
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd != 0 {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+32600, 0)
+ } else if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_MOVE {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_CKPT
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FnStep = 0
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK &&
+ ((*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL || (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_MOVE) &&
+ (*RbuState)(unsafe.Pointer(pState)).FeStage != 0 {
+ var pFd uintptr = func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FpRbuFd
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd
+ }()
+ if (*Rbu_file)(unsafe.Pointer(pFd)).FiCookie != (*RbuState)(unsafe.Pointer(pState)).FiCookie {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_BUSY
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, ts+32632,
+ libc.VaList(bp+8, func() uintptr {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ return ts + 32664
+ }
+ return ts + 32671
+ }()))
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ var db uintptr = (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+14906, uintptr(0), uintptr(0), p+64)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rbuObjIterFirst(tls, p, p+80)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzTbl == uintptr(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_DONE
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_DONE
+ } else {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*RbuState)(unsafe.Pointer(pState)).FeStage == 0 && (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ rbuCopyPragma(tls, p, ts+17376)
+ rbuCopyPragma(tls, p, ts+16772)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, ts+32678, uintptr(0), uintptr(0), p+64)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var frc int32 = Xsqlite3_file_control(tls, db, ts+6844, SQLITE_FCNTL_ZIPVFS, uintptr(0))
+ if frc == SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls,
+ db, ts+32694, uintptr(0), uintptr(0), p+64)
+ }
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ rbuSetupOal(tls, p, pState)
+ }
+ }
+ } else if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_MOVE {
+ } else if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_CKPT {
+ if !((*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) && rbuExclusiveCheckpoint(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain) != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_DONE
+ rbuLockDatabase(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain)
+ (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage = RBU_STAGE_CKPT
+ }
+ rbuSetupCheckpoint(tls, p, pState)
+ } else if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_DONE {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_DONE
+ } else {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT
+ }
+ }
+
+ rbuFreeState(tls, pState)
+ }
+
+ return p
+}
+
+func rbuMisuseError(tls *libc.TLS) uintptr {
+ var pRet uintptr
+ pRet = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Sqlite3rbu{})))
+ if pRet != 0 {
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(unsafe.Sizeof(Sqlite3rbu{})), libc.X__builtin_object_size(tls, pRet, 0))
+ (*Sqlite3rbu)(unsafe.Pointer(pRet)).Frc = SQLITE_MISUSE
+ }
+ return pRet
+}
+
+// Open and return a new RBU handle.
+func Xsqlite3rbu_open(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr) uintptr {
+ if zTarget == uintptr(0) || zRbu == uintptr(0) {
+ return rbuMisuseError(tls)
+ }
+ return openRbuHandle(tls, zTarget, zRbu, zState)
+}
+
+// Open a handle to begin or resume an RBU VACUUM operation.
+func Xsqlite3rbu_vacuum(tls *libc.TLS, zTarget uintptr, zState uintptr) uintptr {
+ if zTarget == uintptr(0) {
+ return rbuMisuseError(tls)
+ }
+ if zState != 0 {
+ var n int32 = int32(libc.Xstrlen(tls, zState))
+ if n >= 7 && 0 == libc.Xmemcmp(tls, ts+32718, zState+uintptr(n-7), uint64(7)) {
+ return rbuMisuseError(tls)
+ }
+ }
+
+ return openRbuHandle(tls, uintptr(0), zTarget, zState)
+}
+
+// Return the database handle used by pRbu.
+func Xsqlite3rbu_db(tls *libc.TLS, pRbu uintptr, bRbu int32) uintptr {
+ var db uintptr = uintptr(0)
+ if pRbu != 0 {
+ db = func() uintptr {
+ if bRbu != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FdbRbu
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FdbMain
+ }()
+ }
+ return db
+}
+
+func rbuEditErrmsg(tls *libc.TLS, p uintptr) {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_CONSTRAINT && (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg != 0 {
+ var i uint32
+ var nErrmsg Size_t = libc.Xstrlen(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg)
+ for i = uint32(0); Size_t(i) < nErrmsg-uint64(8); i++ {
+ if libc.Xmemcmp(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), ts+30743, uint64(8)) == 0 {
+ var nDel int32 = 8
+ for int32(*(*int8)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= '0' && int32(*(*int8)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= '9' {
+ nDel++
+ }
+ libc.X__builtin___memmove_chk(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i+uint32(nDel)), nErrmsg+uint64(1)-Size_t(i)-Size_t(nDel), libc.X__builtin_object_size(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), 0))
+ nErrmsg = nErrmsg - Size_t(nDel)
+ }
+ }
+ }
+}
+
+// Close the RBU handle.
+func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) int32 {
+ var rc int32
+ if p != 0 {
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+14921, uintptr(0), uintptr(0), p+64)
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_CKPT {
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})).f(tls, pDb, SQLITE_SYNC_NORMAL)
+ }
+
+ rbuSaveState(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+14921, uintptr(0), uintptr(0), p+64)
+ }
+
+ rbuObjIterFinalize(tls, p+80)
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 {
+ var rc2 int32 = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+32726, uintptr(0), uintptr(0), uintptr(0))
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_DONE && rc2 != SQLITE_OK {
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc2
+ }
+ }
+
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu)
+ Xsqlite3_close(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain)
+
+ rbuDeleteVfs(tls, p)
+ Xsqlite3_free(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FaBuf)
+ Xsqlite3_free(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FaFrame)
+
+ rbuEditErrmsg(tls, p)
+ rc = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ if pzErrmsg != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErrmsg)) = (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg
+ } else {
+ Xsqlite3_free(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzErrmsg)
+ }
+ Xsqlite3_free(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FzState)
+ Xsqlite3_free(tls, p)
+ } else {
+ rc = SQLITE_NOMEM
+ *(*uintptr)(unsafe.Pointer(pzErrmsg)) = uintptr(0)
+ }
+ return rc
+}
+
+// Return the total number of key-value operations (inserts, deletes or
+// updates) that have been performed on the target database since the
+// current RBU update was started.
+func Xsqlite3rbu_progress(tls *libc.TLS, pRbu uintptr) Sqlite3_int64 {
+ return Sqlite3_int64((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnProgress)
+}
+
+// Return permyriadage progress indications for the two main stages of
+// an RBU update.
+func Xsqlite3rbu_bp_progress(tls *libc.TLS, p uintptr, pnOne uintptr, pnTwo uintptr) {
+ var MAX_PROGRESS int32 = 10000
+ switch (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage {
+ case RBU_STAGE_OAL:
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep > int64(0) {
+ *(*int32)(unsafe.Pointer(pnOne)) = int32(I64(MAX_PROGRESS) * I64((*Sqlite3rbu)(unsafe.Pointer(p)).FnProgress) / (*Sqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep)
+ } else {
+ *(*int32)(unsafe.Pointer(pnOne)) = -1
+ }
+ *(*int32)(unsafe.Pointer(pnTwo)) = 0
+ break
+
+ case RBU_STAGE_MOVE:
+ *(*int32)(unsafe.Pointer(pnOne)) = MAX_PROGRESS
+ *(*int32)(unsafe.Pointer(pnTwo)) = 0
+ break
+
+ case RBU_STAGE_CKPT:
+ *(*int32)(unsafe.Pointer(pnOne)) = MAX_PROGRESS
+ *(*int32)(unsafe.Pointer(pnTwo)) = int32(I64(MAX_PROGRESS) * I64((*Sqlite3rbu)(unsafe.Pointer(p)).FnStep) / I64((*Sqlite3rbu)(unsafe.Pointer(p)).FnFrame))
+ break
+
+ case RBU_STAGE_DONE:
+ *(*int32)(unsafe.Pointer(pnOne)) = MAX_PROGRESS
+ *(*int32)(unsafe.Pointer(pnTwo)) = MAX_PROGRESS
+ break
+
+ default:
+ }
+}
+
+// Return the current state of the RBU vacuum or update operation.
+func Xsqlite3rbu_state(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ *(*[6]int32)(unsafe.Pointer(bp)) = [6]int32{
+ 0, SQLITE_RBU_STATE_OAL, SQLITE_RBU_STATE_MOVE,
+ 0, SQLITE_RBU_STATE_CHECKPOINT, SQLITE_RBU_STATE_DONE,
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_DONE {
+ return SQLITE_RBU_STATE_ERROR
+ } else {
+ return *(*int32)(unsafe.Pointer(bp + uintptr((*Sqlite3rbu)(unsafe.Pointer(p)).FeStage)*4))
+ }
+ return int32(0)
+}
+
+func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+ if rc == SQLITE_DONE {
+ return SQLITE_OK
+ }
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+14921, uintptr(0), uintptr(0), uintptr(0))
+ }
+ }
+
+ if rc == SQLITE_OK && (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_CKPT {
+ var pDb uintptr = (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})).f(tls, pDb, SQLITE_SYNC_NORMAL)
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ rbuSaveState(tls, p, (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage)
+ rc = (*Sqlite3rbu)(unsafe.Pointer(p)).Frc
+
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FeStage == RBU_STAGE_OAL {
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, ts+14921, uintptr(0), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ var zBegin uintptr
+ if (*Sqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) {
+ zBegin = ts + 14906
+ } else {
+ zBegin = ts + 32678
+ }
+ rc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, (*Sqlite3rbu)(unsafe.Pointer(p)).FdbMain, ts+32678, uintptr(0), uintptr(0), uintptr(0))
+ }
+ }
+
+ (*Sqlite3rbu)(unsafe.Pointer(p)).Frc = rc
+ return rc
+}
+
+func xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if libc.Xrename(tls, zOld, zNew) != 0 {
+ rc = SQLITE_IOERR
+ } else {
+ rc = SQLITE_OK
+ }
+ return rc
+}
+
+func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) {
+ if xRename != 0 {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg
+ } else {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ }{xDefaultRename}))
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = uintptr(0)
+ }
+}
+
+func rbuUnlockShm(tls *libc.TLS, p uintptr) {
+ if (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
+ var xShmLock uintptr = (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock
+ var i int32
+ for i = 0; i < SQLITE_SHM_NLOCK; i++ {
+ if U32(int32(1)<<i)&(*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FmLock != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xShmLock})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, i, 1, SQLITE_SHM_UNLOCK|SQLITE_SHM_EXCLUSIVE)
+ }
+ }
+ (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FmLock = U32(0)
+ }
+}
+
+func rbuUpdateTempSize(tls *libc.TLS, pFd uintptr, nNew Sqlite3_int64) int32 {
+ var pRbu uintptr = (*Rbu_file)(unsafe.Pointer(pFd)).FpRbu
+ var nDiff I64 = nNew - (*Rbu_file)(unsafe.Pointer(pFd)).Fsz
+ *(*I64)(unsafe.Pointer(pRbu + 376)) += nDiff
+ (*Rbu_file)(unsafe.Pointer(pFd)).Fsz = nNew
+
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTempLimit != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTemp > (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTempLimit {
+ return SQLITE_FULL
+ }
+ return SQLITE_OK
+}
+
+func rbuMainlistAdd(tls *libc.TLS, p uintptr) {
+ var pRbuVfs uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs
+ var pIter uintptr
+
+ Xsqlite3_mutex_enter(tls, (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).Fmutex)
+ if (*Rbu_file)(unsafe.Pointer(p)).FpRbu == uintptr(0) {
+ for pIter = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMain; pIter != 0; pIter = (*Rbu_file)(unsafe.Pointer(pIter)).FpMainNext {
+ }
+ (*Rbu_file)(unsafe.Pointer(p)).FpMainNext = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMain
+ (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMain = p
+ } else {
+ for pIter = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMainRbu; pIter != 0 && pIter != p; pIter = (*Rbu_file)(unsafe.Pointer(pIter)).FpMainRbuNext {
+ }
+ if pIter == uintptr(0) {
+ (*Rbu_file)(unsafe.Pointer(p)).FpMainRbuNext = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMainRbu
+ (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMainRbu = p
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).Fmutex)
+}
+
+func rbuMainlistRemove(tls *libc.TLS, p uintptr) {
+ var pp uintptr
+ Xsqlite3_mutex_enter(tls, (*Rbu_vfs)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs)).Fmutex)
+ for pp = (*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs + 192; *(*uintptr)(unsafe.Pointer(pp)) != 0 && *(*uintptr)(unsafe.Pointer(pp)) != p; pp = *(*uintptr)(unsafe.Pointer(pp)) + 88 {
+ }
+ if *(*uintptr)(unsafe.Pointer(pp)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Rbu_file)(unsafe.Pointer(p)).FpMainNext
+ }
+ (*Rbu_file)(unsafe.Pointer(p)).FpMainNext = uintptr(0)
+ for pp = (*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs + 200; *(*uintptr)(unsafe.Pointer(pp)) != 0 && *(*uintptr)(unsafe.Pointer(pp)) != p; pp = *(*uintptr)(unsafe.Pointer(pp)) + 96 {
+ }
+ if *(*uintptr)(unsafe.Pointer(pp)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Rbu_file)(unsafe.Pointer(p)).FpMainRbuNext
+ }
+ (*Rbu_file)(unsafe.Pointer(p)).FpMainRbuNext = uintptr(0)
+ Xsqlite3_mutex_leave(tls, (*Rbu_vfs)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs)).Fmutex)
+}
+
+func rbuFindMaindb(tls *libc.TLS, pRbuVfs uintptr, zWal uintptr, bRbu int32) uintptr {
+ var pDb uintptr
+ Xsqlite3_mutex_enter(tls, (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).Fmutex)
+ if bRbu != 0 {
+ for pDb = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMainRbu; pDb != 0 && (*Rbu_file)(unsafe.Pointer(pDb)).FzWal != zWal; pDb = (*Rbu_file)(unsafe.Pointer(pDb)).FpMainRbuNext {
+ }
+ } else {
+ for pDb = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpMain; pDb != 0 && (*Rbu_file)(unsafe.Pointer(pDb)).FzWal != zWal; pDb = (*Rbu_file)(unsafe.Pointer(pDb)).FpMainNext {
+ }
+ }
+ Xsqlite3_mutex_leave(tls, (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).Fmutex)
+ return pDb
+}
+
+func rbuVfsClose(tls *libc.TLS, pFile uintptr) int32 {
+ var p uintptr = pFile
+ var rc int32
+ var i int32
+
+ for i = 0; i < (*Rbu_file)(unsafe.Pointer(p)).FnShm; i++ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FapShm + uintptr(i)*8)))
+ }
+ Xsqlite3_free(tls, (*Rbu_file)(unsafe.Pointer(p)).FapShm)
+ (*Rbu_file)(unsafe.Pointer(p)).FapShm = uintptr(0)
+ Xsqlite3_free(tls, (*Rbu_file)(unsafe.Pointer(p)).FzDel)
+
+ if (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 {
+ var pMeth uintptr = (*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods
+ rbuMainlistRemove(tls, p)
+ rbuUnlockShm(tls, p)
+ if (*Sqlite3_io_methods)(unsafe.Pointer(pMeth)).FiVersion > 1 && (*Sqlite3_io_methods)(unsafe.Pointer(pMeth)).FxShmUnmap != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_io_methods)(unsafe.Pointer(pMeth)).FxShmUnmap})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, 0)
+ }
+ } else if (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_DELETEONCLOSE != 0 && (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
+ rbuUpdateTempSize(tls, p, int64(0))
+ }
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal)
+ return rc
+}
+
+func rbuGetU32(tls *libc.TLS, aBuf uintptr) U32 {
+ return U32(*(*U8)(unsafe.Pointer(aBuf)))<<24 +
+ U32(*(*U8)(unsafe.Pointer(aBuf + 1)))<<16 +
+ U32(*(*U8)(unsafe.Pointer(aBuf + 2)))<<8 +
+ U32(*(*U8)(unsafe.Pointer(aBuf + 3)))
+}
+
+func rbuPutU32(tls *libc.TLS, aBuf uintptr, iVal U32) {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(iVal >> 24 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 1)) = U8(iVal >> 16 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 2)) = U8(iVal >> 8 & U32(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 3)) = U8(iVal >> 0 & U32(0xFF))
+}
+
+func rbuPutU16(tls *libc.TLS, aBuf uintptr, iVal U16) {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(int32(iVal) >> 8 & 0xFF)
+ *(*U8)(unsafe.Pointer(aBuf + 1)) = U8(int32(iVal) >> 0 & 0xFF)
+}
+
+func rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = pFile
+ var pRbu uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbu
+ var rc int32
+
+ if pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_CAPTURE {
+ rc = rbuCaptureWalRead(tls, (*Rbu_file)(unsafe.Pointer(p)).FpRbu, iOfst, iAmt)
+ } else {
+ if pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_OAL &&
+ (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_WAL != 0 &&
+ iOfst >= (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz {
+ rc = SQLITE_OK
+ libc.X__builtin___memset_chk(tls, zBuf, 0, uint64(iAmt), libc.X__builtin_object_size(tls, zBuf, 0))
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxRead})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, zBuf, iAmt, iOfst)
+
+ if pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) &&
+ rc == SQLITE_IOERR|int32(2)<<8 && iOfst == int64(0) &&
+ (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 &&
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).Frc == SQLITE_OK {
+ var pFd uintptr = (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpRbuFd
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FxRead})).f(tls, pFd, zBuf, iAmt, iOfst)
+ if rc == SQLITE_OK {
+ var aBuf uintptr = zBuf
+ var iRoot U32
+ if rbuGetU32(tls, aBuf+52) != 0 {
+ iRoot = uint32(1)
+ } else {
+ iRoot = uint32(0)
+ }
+ rbuPutU32(tls, aBuf+52, iRoot)
+ rbuPutU32(tls, aBuf+36, uint32(0))
+ rbuPutU32(tls, aBuf+32, uint32(0))
+ rbuPutU32(tls, aBuf+28, uint32(1))
+ rbuPutU32(tls, aBuf+24, (*Rbu_file)(unsafe.Pointer((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpRbuFd)).FiCookie+U32(1))
+
+ if iAmt > 100 {
+ libc.X__builtin___memset_chk(tls, aBuf+100, 0, uint64(iAmt-100), libc.X__builtin_object_size(tls, aBuf+100, 0))
+ rbuPutU16(tls, aBuf+105, uint16(iAmt&0xFFFF))
+ *(*U8)(unsafe.Pointer(aBuf + 100)) = U8(0x0D)
+ }
+ }
+ }
+ }
+ if rc == SQLITE_OK && iOfst == int64(0) && (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 {
+ var pBuf uintptr = zBuf
+ (*Rbu_file)(unsafe.Pointer(p)).FiCookie = rbuGetU32(tls, pBuf+24)
+ (*Rbu_file)(unsafe.Pointer(p)).FiWriteVer = *(*U8)(unsafe.Pointer(pBuf + 19))
+ }
+ }
+ return rc
+}
+
+func rbuVfsWrite(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst Sqlite_int64) int32 {
+ var p uintptr = pFile
+ var pRbu uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbu
+ var rc int32
+
+ if pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_CAPTURE {
+ rc = rbuCaptureDbWrite(tls, (*Rbu_file)(unsafe.Pointer(p)).FpRbu, iOfst)
+ } else {
+ if pRbu != 0 {
+ if (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_OAL &&
+ (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_WAL != 0 &&
+ iOfst >= (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz = Sqlite_int64(iAmt) + iOfst
+ } else if (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_DELETEONCLOSE != 0 {
+ var szNew I64 = Sqlite_int64(iAmt) + iOfst
+ if szNew > (*Rbu_file)(unsafe.Pointer(p)).Fsz {
+ rc = rbuUpdateTempSize(tls, p, szNew)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ }
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxWrite})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, zBuf, iAmt, iOfst)
+ if rc == SQLITE_OK && iOfst == int64(0) && (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 {
+ var pBuf uintptr = zBuf
+ (*Rbu_file)(unsafe.Pointer(p)).FiCookie = rbuGetU32(tls, pBuf+24)
+ (*Rbu_file)(unsafe.Pointer(p)).FiWriteVer = *(*U8)(unsafe.Pointer(pBuf + 19))
+ }
+ }
+ return rc
+}
+
+func rbuVfsTruncate(tls *libc.TLS, pFile uintptr, size Sqlite_int64) int32 {
+ var p uintptr = pFile
+ if (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_DELETEONCLOSE != 0 && (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
+ var rc int32 = rbuUpdateTempSize(tls, p, size)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_int64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxTruncate})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, size)
+}
+
+func rbuVfsSync(tls *libc.TLS, pFile uintptr, flags int32) int32 {
+ var p uintptr = pFile
+ if (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FeStage == RBU_STAGE_CAPTURE {
+ if (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 {
+ return SQLITE_NOTICE | int32(3)<<8
+ }
+ return SQLITE_OK
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxSync})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, flags)
+}
+
+func rbuVfsFileSize(tls *libc.TLS, pFile uintptr, pSize uintptr) int32 {
+ var p uintptr = pFile
+ var rc int32
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxFileSize})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, pSize)
+
+ if rc == SQLITE_OK && *(*Sqlite_int64)(unsafe.Pointer(pSize)) == int64(0) &&
+ (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FzTarget == uintptr(0) &&
+ (*Rbu_file)(unsafe.Pointer(p)).FopenFlags&SQLITE_OPEN_MAIN_DB != 0 {
+ *(*Sqlite_int64)(unsafe.Pointer(pSize)) = int64(1024)
+ }
+ return rc
+}
+
+func rbuVfsLock(tls *libc.TLS, pFile uintptr, eLock int32) int32 {
+ var p uintptr = pFile
+ var pRbu uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbu
+ var rc int32 = SQLITE_OK
+
+ if eLock == SQLITE_LOCK_EXCLUSIVE &&
+ ((*Rbu_file)(unsafe.Pointer(p)).FbNolock != 0 || pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage != RBU_STAGE_DONE) {
+ rc = SQLITE_BUSY
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxLock})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, eLock)
+ }
+
+ return rc
+}
+
+func rbuVfsUnlock(tls *libc.TLS, pFile uintptr, eLock int32) int32 {
+ var p uintptr = pFile
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxUnlock})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, eLock)
+}
+
+func rbuVfsCheckReservedLock(tls *libc.TLS, pFile uintptr, pResOut uintptr) int32 {
+ var p uintptr = pFile
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxCheckReservedLock})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, pResOut)
+}
+
+func rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr = pFile
+ var xControl uintptr = (*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxFileControl
+ var rc int32
+
+ if op == SQLITE_FCNTL_RBU {
+ var pRbu uintptr = pArg
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xControl})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, op, pArg)
+
+ if rc == SQLITE_NOTFOUND {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xControl})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, SQLITE_FCNTL_ZIPVFS, bp+16)
+ if rc == SQLITE_OK {
+ rc = SQLITE_ERROR
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, ts+32753, 0)
+ } else if rc == SQLITE_NOTFOUND {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p
+ (*Rbu_file)(unsafe.Pointer(p)).FpRbu = pRbu
+ rbuMainlistAdd(tls, p)
+ if (*Rbu_file)(unsafe.Pointer(p)).FpWalFd != 0 {
+ (*Rbu_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpWalFd)).FpRbu = pRbu
+ }
+ rc = SQLITE_OK
+ }
+ }
+ return rc
+ } else if op == SQLITE_FCNTL_RBUCNT {
+ var pRbu uintptr = pArg
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FnRbu++
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FpRbuFd = p
+ (*Rbu_file)(unsafe.Pointer(p)).FbNolock = U8(1)
+ }
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xControl})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, op, pArg)
+ if rc == SQLITE_OK && op == SQLITE_FCNTL_VFSNAME {
+ var pRbuVfs uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbuVfs
+ var zIn uintptr = *(*uintptr)(unsafe.Pointer(pArg))
+ var zOut uintptr = Xsqlite3_mprintf(tls, ts+32776, libc.VaList(bp, (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn))
+ *(*uintptr)(unsafe.Pointer(pArg)) = zOut
+ if zOut == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+
+ return rc
+}
+
+func rbuVfsSectorSize(tls *libc.TLS, pFile uintptr) int32 {
+ var p uintptr = pFile
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxSectorSize})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal)
+}
+
+func rbuVfsDeviceCharacteristics(tls *libc.TLS, pFile uintptr) int32 {
+ var p uintptr = pFile
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxDeviceCharacteristics})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal)
+}
+
+func rbuVfsShmLock(tls *libc.TLS, pFile uintptr, ofst int32, n int32, flags int32) int32 {
+ var p uintptr = pFile
+ var pRbu uintptr = (*Rbu_file)(unsafe.Pointer(p)).FpRbu
+ var rc int32 = SQLITE_OK
+
+ if pRbu != 0 && ((*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_OAL ||
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_MOVE ||
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_DONE) {
+ if ofst == WAL_LOCK_CKPT && n == 1 {
+ rc = SQLITE_BUSY
+ }
+ } else {
+ var bCapture int32 = 0
+ if pRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == RBU_STAGE_CAPTURE {
+ bCapture = 1
+ }
+ if bCapture == 0 || 0 == flags&SQLITE_SHM_UNLOCK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, ofst, n, flags)
+ if bCapture != 0 && rc == SQLITE_OK {
+ *(*U32)(unsafe.Pointer(pRbu + 332)) |= U32((int32(1)<<n - 1) << ofst)
+ }
+ }
+ }
+
+ return rc
+}
+
+func rbuVfsShmMap(tls *libc.TLS, pFile uintptr, iRegion int32, szRegion int32, isWrite int32, pp uintptr) int32 {
+ var p uintptr = pFile
+ var rc int32 = SQLITE_OK
+ var eStage int32 = func() int32 {
+ if (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FeStage
+ }
+ return 0
+ }()
+
+ if eStage == RBU_STAGE_OAL {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(iRegion+1) * uint64(unsafe.Sizeof(uintptr(0))))
+ var apNew uintptr = Xsqlite3_realloc64(tls, (*Rbu_file)(unsafe.Pointer(p)).FapShm, uint64(nByte))
+
+ if apNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, apNew+uintptr((*Rbu_file)(unsafe.Pointer(p)).FnShm)*8, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(1+iRegion-(*Rbu_file)(unsafe.Pointer(p)).FnShm), libc.X__builtin_object_size(tls, apNew+uintptr((*Rbu_file)(unsafe.Pointer(p)).FnShm)*8, 0))
+ (*Rbu_file)(unsafe.Pointer(p)).FapShm = apNew
+ (*Rbu_file)(unsafe.Pointer(p)).FnShm = iRegion + 1
+ }
+
+ if rc == SQLITE_OK {
+ var pNew uintptr = Xsqlite3_malloc64(tls, uint64(szRegion))
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(szRegion), libc.X__builtin_object_size(tls, pNew, 0))
+ *(*uintptr)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FapShm + uintptr(iRegion)*8)) = pNew
+ }
+ }
+
+ if rc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pp)) = *(*uintptr)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FapShm + uintptr(iRegion)*8))
+ } else {
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ }
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmMap})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, iRegion, szRegion, isWrite, pp)
+ }
+
+ return rc
+}
+
+func rbuVfsShmBarrier(tls *libc.TLS, pFile uintptr) {
+ var p uintptr = pFile
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmBarrier})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal)
+}
+
+func rbuVfsShmUnmap(tls *libc.TLS, pFile uintptr, delFlag int32) int32 {
+ var p uintptr = pFile
+ var rc int32 = SQLITE_OK
+ var eStage int32 = func() int32 {
+ if (*Rbu_file)(unsafe.Pointer(p)).FpRbu != 0 {
+ return (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpRbu)).FeStage
+ }
+ return 0
+ }()
+
+ if eStage == RBU_STAGE_OAL || eStage == RBU_STAGE_MOVE {
+ } else {
+ rbuUnlockShm(tls, p)
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*sqlite3_io_methods)(unsafe.Pointer((*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmUnmap})).f(tls, (*Rbu_file)(unsafe.Pointer(p)).FpReal, delFlag)
+ }
+ return rc
+}
+
+func rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flags int32, pOutFlags uintptr) int32 {
+ var pRbuVfs uintptr = pVfs
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRealVfs
+ var pFd uintptr = pFile
+ var rc int32 = SQLITE_OK
+ var zOpen uintptr = zName
+ var oflags int32 = flags
+
+ libc.X__builtin___memset_chk(tls, pFd, 0, uint64(unsafe.Sizeof(Rbu_file{})), libc.X__builtin_object_size(tls, pFd, 0))
+ (*Rbu_file)(unsafe.Pointer(pFd)).FpReal = pFd + 1*104
+ (*Rbu_file)(unsafe.Pointer(pFd)).FpRbuVfs = pRbuVfs
+ (*Rbu_file)(unsafe.Pointer(pFd)).FopenFlags = flags
+ if zName != 0 {
+ if flags&SQLITE_OPEN_MAIN_DB != 0 {
+ (*Rbu_file)(unsafe.Pointer(pFd)).FzWal = Xsqlite3_filename_wal(tls, zName)
+ } else if flags&SQLITE_OPEN_WAL != 0 {
+ var pDb uintptr = rbuFindMaindb(tls, pRbuVfs, zName, 0)
+ if pDb != 0 {
+ if (*Rbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == RBU_STAGE_OAL {
+ var nOpen Size_t
+ if (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) {
+ zOpen = Xsqlite3_db_filename(tls, (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, ts+6844)
+ zOpen = Xsqlite3_filename_wal(tls, zOpen)
+ }
+ nOpen = libc.Xstrlen(tls, zOpen)
+ *(*int8)(unsafe.Pointer(zOpen + uintptr(nOpen-uint64(3)))) = int8('o')
+ (*Rbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Rbu_file)(unsafe.Pointer(pDb)).FpRbu
+ }
+ (*Rbu_file)(unsafe.Pointer(pDb)).FpWalFd = pFd
+ }
+ }
+ } else {
+ (*Rbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu
+ }
+
+ if oflags&SQLITE_OPEN_MAIN_DB != 0 &&
+ Xsqlite3_uri_boolean(tls, zName, ts+32787, 0) != 0 {
+ oflags = SQLITE_OPEN_TEMP_DB | SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE
+ zOpen = uintptr(0)
+ }
+
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, Sqlite3_filename, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxOpen})).f(tls, pRealVfs, zOpen, (*Rbu_file)(unsafe.Pointer(pFd)).FpReal, oflags, pOutFlags)
+ }
+ if (*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pFd)).FpReal)).FpMethods != 0 {
+ var pMeth uintptr = (*Sqlite3_file)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pFd)).FpReal)).FpMethods
+
+ if (*Sqlite3_io_methods)(unsafe.Pointer(pMeth)).FiVersion < 2 || (*Sqlite3_io_methods)(unsafe.Pointer(pMeth)).FxShmLock == uintptr(0) {
+ (*Sqlite3_file)(unsafe.Pointer(pFile)).FpMethods = uintptr(unsafe.Pointer(&rbuvfs_io_methods1))
+ } else {
+ (*Sqlite3_file)(unsafe.Pointer(pFile)).FpMethods = uintptr(unsafe.Pointer(&rbuvfs_io_methods))
+ }
+ if flags&SQLITE_OPEN_MAIN_DB != 0 {
+ rbuMainlistAdd(tls, pFd)
+ }
+ } else {
+ Xsqlite3_free(tls, (*Rbu_file)(unsafe.Pointer(pFd)).FzDel)
+ }
+
+ return rc
+}
+
+var rbuvfs_io_methods = Sqlite3_io_methods{
+ FiVersion: 2,
+ FxClose: 0,
+ FxRead: 0,
+ FxWrite: 0,
+ FxTruncate: 0,
+ FxSync: 0,
+ FxFileSize: 0,
+ FxLock: 0,
+ FxUnlock: 0,
+ FxCheckReservedLock: 0,
+ FxFileControl: 0,
+ FxSectorSize: 0,
+ FxDeviceCharacteristics: 0,
+ FxShmMap: 0,
+ FxShmLock: 0,
+ FxShmBarrier: 0,
+ FxShmUnmap: 0,
+}
+var rbuvfs_io_methods1 = Sqlite3_io_methods{
+ FiVersion: 1,
+ FxClose: 0,
+ FxRead: 0,
+ FxWrite: 0,
+ FxTruncate: 0,
+ FxSync: 0,
+ FxFileSize: 0,
+ FxLock: 0,
+ FxUnlock: 0,
+ FxCheckReservedLock: 0,
+ FxFileControl: 0,
+ FxSectorSize: 0,
+ FxDeviceCharacteristics: 0,
+}
+
+func rbuVfsDelete(tls *libc.TLS, pVfs uintptr, zPath uintptr, dirSync int32) int32 {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxDelete})).f(tls, pRealVfs, zPath, dirSync)
+}
+
+func rbuVfsAccess(tls *libc.TLS, pVfs uintptr, zPath uintptr, flags int32, pResOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pRbuVfs uintptr = pVfs
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRealVfs
+ var rc int32
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxAccess})).f(tls, pRealVfs, zPath, flags, pResOut)
+
+ if rc == SQLITE_OK && flags == SQLITE_ACCESS_EXISTS {
+ var pDb uintptr = rbuFindMaindb(tls, pRbuVfs, zPath, 1)
+ if pDb != 0 && (*Sqlite3rbu)(unsafe.Pointer((*Rbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == RBU_STAGE_OAL {
+ if *(*int32)(unsafe.Pointer(pResOut)) != 0 {
+ rc = SQLITE_CANTOPEN
+ } else {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ rc = rbuVfsFileSize(tls, pDb, bp)
+ *(*int32)(unsafe.Pointer(pResOut)) = libc.Bool32(*(*Sqlite3_int64)(unsafe.Pointer(bp)) > int64(0))
+ }
+ }
+ }
+
+ return rc
+}
+
+func rbuVfsFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, zOut uintptr) int32 {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxFullPathname})).f(tls, pRealVfs, zPath, nOut, zOut)
+}
+
+func rbuVfsDlOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr) uintptr {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxDlOpen})).f(tls, pRealVfs, zPath)
+}
+
+func rbuVfsDlError(tls *libc.TLS, pVfs uintptr, nByte int32, zErrMsg uintptr) {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxDlError})).f(tls, pRealVfs, nByte, zErrMsg)
+}
+
+func rbuVfsDlSym(tls *libc.TLS, pVfs uintptr, pArg uintptr, zSym uintptr) uintptr {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxDlSym})).f(tls, pRealVfs, pArg, zSym)
+}
+
+func rbuVfsDlClose(tls *libc.TLS, pVfs uintptr, pHandle uintptr) {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxDlClose})).f(tls, pRealVfs, pHandle)
+}
+
+func rbuVfsRandomness(tls *libc.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) int32 {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxRandomness})).f(tls, pRealVfs, nByte, zBufOut)
+}
+
+func rbuVfsSleep(tls *libc.TLS, pVfs uintptr, nMicro int32) int32 {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxSleep})).f(tls, pRealVfs, nMicro)
+}
+
+func rbuVfsCurrentTime(tls *libc.TLS, pVfs uintptr, pTimeOut uintptr) int32 {
+ var pRealVfs uintptr = (*Rbu_vfs)(unsafe.Pointer(pVfs)).FpRealVfs
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_vfs)(unsafe.Pointer(pRealVfs)).FxCurrentTime})).f(tls, pRealVfs, pTimeOut)
+}
+
+func rbuVfsGetLastError(tls *libc.TLS, pVfs uintptr, a int32, b uintptr) int32 {
+ return 0
+}
+
+// Deregister and destroy an RBU vfs created by an earlier call to
+// sqlite3rbu_create_vfs().
+func Xsqlite3rbu_destroy_vfs(tls *libc.TLS, zName uintptr) {
+ var pVfs uintptr = Xsqlite3_vfs_find(tls, zName)
+ if pVfs != 0 && (*Sqlite3_vfs)(unsafe.Pointer(pVfs)).FxOpen == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32
+ }{rbuVfsOpen})) {
+ Xsqlite3_mutex_free(tls, (*Rbu_vfs)(unsafe.Pointer(pVfs)).Fmutex)
+ Xsqlite3_vfs_unregister(tls, pVfs)
+ Xsqlite3_free(tls, pVfs)
+ }
+}
+
+// Create an RBU VFS named zName that accesses the underlying file-system
+// via existing VFS zParent. The new object is registered as a non-default
+// VFS with SQLite before returning.
+func Xsqlite3rbu_create_vfs(tls *libc.TLS, zName uintptr, zParent uintptr) int32 {
+ var pNew uintptr = uintptr(0)
+ var rc int32 = SQLITE_OK
+ var nName Size_t
+ var nByte Size_t
+
+ nName = libc.Xstrlen(tls, zName)
+ nByte = uint64(unsafe.Sizeof(Rbu_vfs{})) + nName + uint64(1)
+ pNew = Xsqlite3_malloc64(tls, nByte)
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var pParent uintptr
+ libc.X__builtin___memset_chk(tls, pNew, 0, nByte, libc.X__builtin_object_size(tls, pNew, 0))
+ pParent = Xsqlite3_vfs_find(tls, zParent)
+ if pParent == uintptr(0) {
+ rc = SQLITE_NOTFOUND
+ } else {
+ var zSpace uintptr
+ libc.X__builtin___memcpy_chk(tls, pNew, uintptr(unsafe.Pointer(&vfs_template)), uint64(unsafe.Sizeof(Sqlite3_vfs{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*Rbu_vfs)(unsafe.Pointer(pNew)).Fbase.FmxPathname = (*Sqlite3_vfs)(unsafe.Pointer(pParent)).FmxPathname
+ (*Rbu_vfs)(unsafe.Pointer(pNew)).Fbase.FszOsFile = int32(uint64(unsafe.Sizeof(Rbu_file{})) + uint64((*Sqlite3_vfs)(unsafe.Pointer(pParent)).FszOsFile))
+ (*Rbu_vfs)(unsafe.Pointer(pNew)).FpRealVfs = pParent
+ (*Rbu_vfs)(unsafe.Pointer(pNew)).Fbase.FzName = libc.AssignUintptr(&zSpace, pNew+1*208)
+ libc.X__builtin___memcpy_chk(tls, zSpace, zName, nName, libc.X__builtin_object_size(tls, zSpace, 0))
+
+ (*Rbu_vfs)(unsafe.Pointer(pNew)).Fmutex = Xsqlite3_mutex_alloc(tls, SQLITE_MUTEX_RECURSIVE)
+ if (*Rbu_vfs)(unsafe.Pointer(pNew)).Fmutex == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_vfs_register(tls, pNew, 0)
+ }
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3_mutex_free(tls, (*Rbu_vfs)(unsafe.Pointer(pNew)).Fmutex)
+ Xsqlite3_free(tls, pNew)
+ }
+ }
+
+ return rc
+}
+
+var vfs_template = Sqlite3_vfs{
+ FiVersion: 1,
+ FxOpen: 0,
+ FxDelete: 0,
+ FxAccess: 0,
+ FxFullPathname: 0,
+ FxDlOpen: 0,
+ FxDlError: 0,
+ FxDlSym: 0,
+ FxDlClose: 0,
+ FxRandomness: 0,
+ FxSleep: 0,
+ FxCurrentTime: 0,
+ FxGetLastError: 0,
+}
+
+// Configure the aggregate temp file size limit for this RBU handle.
+func Xsqlite3rbu_temp_size_limit(tls *libc.TLS, pRbu uintptr, n Sqlite3_int64) Sqlite3_int64 {
+ if n >= int64(0) {
+ (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTempLimit = n
+ }
+ return (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTempLimit
+}
+
+func Xsqlite3rbu_temp_size(tls *libc.TLS, pRbu uintptr) Sqlite3_int64 {
+ return (*Sqlite3rbu)(unsafe.Pointer(pRbu)).FszTemp
+}
+
+type SessionTable1 = struct {
+ FpNext uintptr
+ FzName uintptr
+ FnCol int32
+ FbStat1 int32
+ FazCol uintptr
+ FabPK uintptr
+ FnEntry int32
+ FnChange int32
+ FapChange uintptr
+}
+
+type SessionTable = SessionTable1
+type SessionChange1 = struct {
+ Fop U8
+ FbIndirect U8
+ F__ccgo_pad1 [2]byte
+ FnMaxSize int32
+ FnRecord int32
+ F__ccgo_pad2 [4]byte
+ FaRecord uintptr
+ FpNext uintptr
+}
+
+type SessionChange = SessionChange1
+type SessionBuffer1 = struct {
+ FaBuf uintptr
+ FnBuf int32
+ FnAlloc int32
+}
+
+type SessionBuffer = SessionBuffer1
+type SessionInput1 = struct {
+ FbNoDiscard int32
+ FiCurrent int32
+ FiNext int32
+ F__ccgo_pad1 [4]byte
+ FaData uintptr
+ FnData int32
+ F__ccgo_pad2 [4]byte
+ Fbuf SessionBuffer
+ FxInput uintptr
+ FpIn uintptr
+ FbEof int32
+ F__ccgo_pad3 [4]byte
+}
+
+type SessionInput = SessionInput1
+
+var sessions_strm_chunk_size int32 = SESSIONS_STRM_CHUNK_SIZE
+
+type SessionHook1 = struct {
+ FpCtx uintptr
+ FxOld uintptr
+ FxNew uintptr
+ FxCount uintptr
+ FxDepth uintptr
+}
+
+type SessionHook = SessionHook1
+
+func sessionVarintPut(tls *libc.TLS, aBuf uintptr, iVal int32) int32 {
+ return int32(func() uint8 {
+ if U32(iVal) < U32(0x80) {
+ return uint8(func() int32 { *(*U8)(unsafe.Pointer(aBuf)) = uint8(iVal); return 1 }())
+ }
+ return uint8(Xsqlite3PutVarint(tls, aBuf, uint64(iVal)))
+ }())
+}
+
+func sessionVarintLen(tls *libc.TLS, iVal int32) int32 {
+ return Xsqlite3VarintLen(tls, uint64(iVal))
+}
+
+func sessionVarintGet(tls *libc.TLS, aBuf uintptr, piVal uintptr) int32 {
+ return int32(func() uint8 {
+ if int32(*(*U8)(unsafe.Pointer(aBuf))) < int32(U8(0x80)) {
+ return uint8(func() int32 { *(*int32)(unsafe.Pointer(piVal)) = int32(U32(*(*U8)(unsafe.Pointer(aBuf)))); return 1 }())
+ }
+ return Xsqlite3GetVarint32(tls, aBuf, piVal)
+ }())
+}
+
+func sessionGetI64(tls *libc.TLS, aRec uintptr) Sqlite3_int64 {
+ var x U64 = U64(U32(*(*U8)(unsafe.Pointer(aRec)))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aRec + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aRec + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aRec + 3))))
+ var y U32 = U32(*(*U8)(unsafe.Pointer(aRec + uintptr(4))))<<24 | U32(int32(*(*U8)(unsafe.Pointer(aRec + uintptr(4) + 1)))<<16) | U32(int32(*(*U8)(unsafe.Pointer(aRec + uintptr(4) + 2)))<<8) | U32(*(*U8)(unsafe.Pointer(aRec + uintptr(4) + 3)))
+ x = x<<32 + U64(y)
+ return Sqlite3_int64(x)
+}
+
+func sessionPutI64(tls *libc.TLS, aBuf uintptr, i Sqlite3_int64) {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(i >> 56 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 1)) = U8(i >> 48 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 2)) = U8(i >> 40 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 3)) = U8(i >> 32 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 4)) = U8(i >> 24 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 5)) = U8(i >> 16 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 6)) = U8(i >> 8 & int64(0xFF))
+ *(*U8)(unsafe.Pointer(aBuf + 7)) = U8(i >> 0 & int64(0xFF))
+}
+
+func sessionSerializeValue(tls *libc.TLS, aBuf uintptr, pValue uintptr, pnWrite uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var nByte int32
+
+ if pValue != 0 {
+ var eType int32
+
+ eType = Xsqlite3_value_type(tls, pValue)
+ if aBuf != 0 {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(eType)
+ }
+
+ switch eType {
+ case SQLITE_NULL:
+ nByte = 1
+ break
+ fallthrough
+
+ case SQLITE_INTEGER:
+ fallthrough
+ case SQLITE_FLOAT:
+ if aBuf != 0 {
+ if eType == SQLITE_INTEGER {
+ *(*U64)(unsafe.Pointer(bp)) = U64(Xsqlite3_value_int64(tls, pValue))
+ } else {
+ *(*float64)(unsafe.Pointer(bp + 8)) = Xsqlite3_value_double(tls, pValue)
+ libc.X__builtin___memcpy_chk(tls, bp, bp+8, uint64(8), libc.X__builtin_object_size(tls, bp, 0))
+ }
+ sessionPutI64(tls, aBuf+1, int64(*(*U64)(unsafe.Pointer(bp))))
+ }
+ nByte = 9
+ break
+ fallthrough
+
+ default:
+ {
+ var z uintptr
+ var n int32
+ var nVarint int32
+
+ if eType == SQLITE_TEXT {
+ z = Xsqlite3_value_text(tls, pValue)
+ } else {
+ z = Xsqlite3_value_blob(tls, pValue)
+ }
+ n = Xsqlite3_value_bytes(tls, pValue)
+ if z == uintptr(0) && (eType != SQLITE_BLOB || n > 0) {
+ return SQLITE_NOMEM
+ }
+ nVarint = sessionVarintLen(tls, n)
+
+ if aBuf != 0 {
+ sessionVarintPut(tls, aBuf+1, n)
+ if n > 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nVarint+1), z, uint64(n), libc.X__builtin_object_size(tls, aBuf+uintptr(nVarint+1), 0))
+ }
+ }
+
+ nByte = 1 + nVarint + n
+ break
+
+ }
+ }
+ } else {
+ nByte = 1
+ if aBuf != 0 {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(0)
+ }
+ }
+
+ if pnWrite != 0 {
+ *(*Sqlite3_int64)(unsafe.Pointer(pnWrite)) += Sqlite3_int64(nByte)
+ }
+ return SQLITE_OK
+}
+
+func sessionMalloc64(tls *libc.TLS, pSession uintptr, nByte I64) uintptr {
+ var pRet uintptr = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pSession != 0 {
+ *(*I64)(unsafe.Pointer(pSession + 56)) += I64(Xsqlite3_msize(tls, pRet))
+ }
+ return pRet
+}
+
+func sessionFree(tls *libc.TLS, pSession uintptr, pFree uintptr) {
+ if pSession != 0 {
+ *(*I64)(unsafe.Pointer(pSession + 56)) -= I64(Xsqlite3_msize(tls, pFree))
+ }
+ Xsqlite3_free(tls, pFree)
+}
+
+func sessionHashAppendI64(tls *libc.TLS, h uint32, i I64) uint32 {
+ h = h<<3 ^ h ^ uint32(i&int64(0xFFFFFFFF))
+ return h<<3 ^ h ^ uint32(i>>32&int64(0xFFFFFFFF))
+}
+
+func sessionHashAppendBlob(tls *libc.TLS, h uint32, n int32, z uintptr) uint32 {
+ var i int32
+ for i = 0; i < n; i++ {
+ h = h<<3 ^ h ^ uint32(*(*U8)(unsafe.Pointer(z + uintptr(i))))
+ }
+ return h
+}
+
+func sessionHashAppendType(tls *libc.TLS, h uint32, eType int32) uint32 {
+ return h<<3 ^ h ^ uint32(eType)
+}
+
+func sessionPreupdateHash(tls *libc.TLS, pSession uintptr, pTab uintptr, bNew int32, piHash uintptr, pbNullPK uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var h uint32 = uint32(0)
+ var i int32
+
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))) != 0 {
+ var rc int32
+ var eType int32
+
+ if bNew != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp)
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp)
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ eType = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ h = sessionHashAppendType(tls, h, eType)
+ if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ if eType == SQLITE_INTEGER {
+ *(*I64)(unsafe.Pointer(bp + 8)) = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ } else {
+ *(*float64)(unsafe.Pointer(bp + 16)) = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ libc.X__builtin___memcpy_chk(tls, bp+8, bp+16, uint64(8), libc.X__builtin_object_size(tls, bp+8, 0))
+ }
+ h = sessionHashAppendI64(tls, h, *(*I64)(unsafe.Pointer(bp + 8)))
+ } else if eType == SQLITE_TEXT || eType == SQLITE_BLOB {
+ var z uintptr
+ var n int32
+ if eType == SQLITE_TEXT {
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ } else {
+ z = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if !(z != 0) && (eType != SQLITE_BLOB || n > 0) {
+ return SQLITE_NOMEM
+ }
+ h = sessionHashAppendBlob(tls, h, n, z)
+ } else {
+ *(*int32)(unsafe.Pointer(pbNullPK)) = 1
+ }
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(piHash)) = int32(h % uint32((*SessionTable)(unsafe.Pointer(pTab)).FnChange))
+ return SQLITE_OK
+}
+
+func sessionSerialLen(tls *libc.TLS, a uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var e int32 = int32(*(*U8)(unsafe.Pointer(a)))
+
+ if e == 0 || e == 0xFF {
+ return 1
+ }
+ if e == SQLITE_NULL {
+ return 1
+ }
+ if e == SQLITE_INTEGER || e == SQLITE_FLOAT {
+ return 9
+ }
+ return sessionVarintGet(tls, a+1, bp) + 1 + *(*int32)(unsafe.Pointer(bp))
+}
+
+func sessionChangeHash(tls *libc.TLS, pTab uintptr, bPkOnly int32, aRecord uintptr, nBucket int32) uint32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var h uint32 = uint32(0)
+ var i int32
+ var a uintptr = aRecord
+
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(a)))
+ var isPK int32 = int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))))
+ if bPkOnly != 0 && isPK == 0 {
+ continue
+ }
+
+ if isPK != 0 {
+ a++
+ h = sessionHashAppendType(tls, h, eType)
+ if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ h = sessionHashAppendI64(tls, h, sessionGetI64(tls, a))
+ a += uintptr(8)
+ } else {
+ a += uintptr(sessionVarintGet(tls, a, bp))
+ h = sessionHashAppendBlob(tls, h, *(*int32)(unsafe.Pointer(bp)), a)
+ a += uintptr(*(*int32)(unsafe.Pointer(bp)))
+ }
+ } else {
+ a += uintptr(sessionSerialLen(tls, a))
+ }
+ }
+ return h % uint32(nBucket)
+}
+
+func sessionChangeEqual(tls *libc.TLS, pTab uintptr, bLeftPkOnly int32, aLeft uintptr, bRightPkOnly int32, aRight uintptr) int32 {
+ var a1 uintptr = aLeft
+ var a2 uintptr = aRight
+ var iCol int32
+
+ for iCol = 0; iCol < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; iCol++ {
+ if *(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(iCol))) != 0 {
+ var n1 int32 = sessionSerialLen(tls, a1)
+ var n2 int32 = sessionSerialLen(tls, a2)
+
+ if n1 != n2 || libc.Xmemcmp(tls, a1, a2, uint64(n1)) != 0 {
+ return 0
+ }
+ a1 += uintptr(n1)
+ a2 += uintptr(n2)
+ } else {
+ if bLeftPkOnly == 0 {
+ a1 += uintptr(sessionSerialLen(tls, a1))
+ }
+ if bRightPkOnly == 0 {
+ a2 += uintptr(sessionSerialLen(tls, a2))
+ }
+ }
+ }
+
+ return 1
+}
+
+func sessionMergeRecord(tls *libc.TLS, paOut uintptr, nCol int32, aLeft uintptr, aRight uintptr) {
+ var a1 uintptr = aLeft
+ var a2 uintptr = aRight
+ var aOut uintptr = *(*uintptr)(unsafe.Pointer(paOut))
+ var iCol int32
+
+ for iCol = 0; iCol < nCol; iCol++ {
+ var n1 int32 = sessionSerialLen(tls, a1)
+ var n2 int32 = sessionSerialLen(tls, a2)
+ if *(*U8)(unsafe.Pointer(a2)) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aOut, a2, uint64(n2), libc.X__builtin_object_size(tls, aOut, 0))
+ aOut += uintptr(n2)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, aOut, a1, uint64(n1), libc.X__builtin_object_size(tls, aOut, 0))
+ aOut += uintptr(n1)
+ }
+ a1 += uintptr(n1)
+ a2 += uintptr(n2)
+ }
+
+ *(*uintptr)(unsafe.Pointer(paOut)) = aOut
+}
+
+func sessionMergeValue(tls *libc.TLS, paOne uintptr, paTwo uintptr, pnVal uintptr) uintptr {
+ var a1 uintptr = *(*uintptr)(unsafe.Pointer(paOne))
+ var a2 uintptr = *(*uintptr)(unsafe.Pointer(paTwo))
+ var pRet uintptr = uintptr(0)
+ var n1 int32
+
+ if a2 != 0 {
+ var n2 int32 = sessionSerialLen(tls, a2)
+ if *(*U8)(unsafe.Pointer(a2)) != 0 {
+ *(*int32)(unsafe.Pointer(pnVal)) = n2
+ pRet = a2
+ }
+ *(*uintptr)(unsafe.Pointer(paTwo)) = a2 + uintptr(n2)
+ }
+
+ n1 = sessionSerialLen(tls, a1)
+ if pRet == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pnVal)) = n1
+ pRet = a1
+ }
+ *(*uintptr)(unsafe.Pointer(paOne)) = a1 + uintptr(n1)
+
+ return pRet
+}
+
+func sessionMergeUpdate(tls *libc.TLS, paOut uintptr, pTab uintptr, bPatchset int32, aOldRecord1 uintptr, aOldRecord2 uintptr, aNewRecord1 uintptr, aNewRecord2 uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = aOldRecord1
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = aOldRecord2
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = aNewRecord1
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = aNewRecord2
+
+ var aOut uintptr = *(*uintptr)(unsafe.Pointer(paOut))
+ var i int32
+
+ if bPatchset == 0 {
+ var bRequired int32 = 0
+
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ var aOld uintptr
+
+ var aNew uintptr
+
+ aOld = sessionMergeValue(tls, bp, bp+8, bp+16)
+ aNew = sessionMergeValue(tls, bp+24, bp+32, bp+40)
+ if *(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))) != 0 || *(*int32)(unsafe.Pointer(bp + 16)) != *(*int32)(unsafe.Pointer(bp + 40)) || libc.Xmemcmp(tls, aOld, aNew, uint64(*(*int32)(unsafe.Pointer(bp + 40)))) != 0 {
+ if int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i)))) == 0 {
+ bRequired = 1
+ }
+ libc.X__builtin___memcpy_chk(tls, aOut, aOld, uint64(*(*int32)(unsafe.Pointer(bp + 16))), libc.X__builtin_object_size(tls, aOut, 0))
+ aOut += uintptr(*(*int32)(unsafe.Pointer(bp + 16)))
+ } else {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&aOut, 1))) = U8(0)
+ }
+ }
+
+ if !(bRequired != 0) {
+ return 0
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp)) = aOldRecord1
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = aOldRecord2
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = aNewRecord1
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = aNewRecord2
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ var aOld uintptr
+
+ var aNew uintptr
+
+ aOld = sessionMergeValue(tls, bp, bp+8, bp+44)
+ aNew = sessionMergeValue(tls, bp+24, bp+32, bp+48)
+ if bPatchset == 0 &&
+ (*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))) != 0 || *(*int32)(unsafe.Pointer(bp + 44)) == *(*int32)(unsafe.Pointer(bp + 48)) && 0 == libc.Xmemcmp(tls, aOld, aNew, uint64(*(*int32)(unsafe.Pointer(bp + 48))))) {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&aOut, 1))) = U8(0)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, aOut, aNew, uint64(*(*int32)(unsafe.Pointer(bp + 48))), libc.X__builtin_object_size(tls, aOut, 0))
+ aOut += uintptr(*(*int32)(unsafe.Pointer(bp + 48)))
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(paOut)) = aOut
+ return 1
+}
+
+func sessionPreupdateEqual(tls *libc.TLS, pSession uintptr, pTab uintptr, pChange uintptr, op int32) int32 {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var iCol int32
+ var a uintptr = (*SessionChange)(unsafe.Pointer(pChange)).FaRecord
+
+ for iCol = 0; iCol < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; iCol++ {
+ if !(int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(iCol)))) != 0) {
+ a += uintptr(sessionSerialLen(tls, a))
+ } else {
+ var rc int32
+ _ = rc
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&a, 1))))
+
+ if op == SQLITE_INSERT {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, iCol, bp)
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, iCol, bp)
+ }
+
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp))) != eType {
+ return 0
+ }
+
+ if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ *(*I64)(unsafe.Pointer(bp + 16)) = sessionGetI64(tls, a)
+ a += uintptr(8)
+ if eType == SQLITE_INTEGER {
+ if Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(bp))) != *(*I64)(unsafe.Pointer(bp + 16)) {
+ return 0
+ }
+ } else {
+ libc.X__builtin___memcpy_chk(tls, bp+8, bp+16, uint64(8), libc.X__builtin_object_size(tls, bp+8, 0))
+ if Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(bp))) != *(*float64)(unsafe.Pointer(bp + 8)) {
+ return 0
+ }
+ }
+ } else {
+ var z uintptr
+ a += uintptr(sessionVarintGet(tls, a, bp+24))
+ if Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(bp))) != *(*int32)(unsafe.Pointer(bp + 24)) {
+ return 0
+ }
+ if eType == SQLITE_TEXT {
+ z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ } else {
+ z = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ if *(*int32)(unsafe.Pointer(bp + 24)) > 0 && libc.Xmemcmp(tls, a, z, uint64(*(*int32)(unsafe.Pointer(bp + 24)))) != 0 {
+ return 0
+ }
+ a += uintptr(*(*int32)(unsafe.Pointer(bp + 24)))
+ }
+ }
+ }
+
+ return 1
+}
+
+func sessionGrowHash(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab uintptr) int32 {
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnChange == 0 || (*SessionTable)(unsafe.Pointer(pTab)).FnEntry >= (*SessionTable)(unsafe.Pointer(pTab)).FnChange/2 {
+ var i int32
+ var apNew uintptr
+ var nNew Sqlite3_int64 = int64(2) * func() int64 {
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnChange != 0 {
+ return int64((*SessionTable)(unsafe.Pointer(pTab)).FnChange)
+ }
+ return int64(128)
+ }()
+
+ apNew = sessionMalloc64(tls,
+ pSession, int64(uint64(unsafe.Sizeof(uintptr(0)))*uint64(nNew)))
+ if apNew == uintptr(0) {
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnChange == 0 {
+ return SQLITE_ERROR
+ }
+ return SQLITE_OK
+ }
+ libc.X__builtin___memset_chk(tls, apNew, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nNew), libc.X__builtin_object_size(tls, apNew, 0))
+
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnChange; i++ {
+ var p uintptr
+ var pNext uintptr
+ for p = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(i)*8)); p != 0; p = pNext {
+ var bPkOnly int32 = libc.Bool32(int32((*SessionChange)(unsafe.Pointer(p)).Fop) == SQLITE_DELETE && bPatchset != 0)
+ var iHash int32 = int32(sessionChangeHash(tls, pTab, bPkOnly, (*SessionChange)(unsafe.Pointer(p)).FaRecord, int32(nNew)))
+ pNext = (*SessionChange)(unsafe.Pointer(p)).FpNext
+ (*SessionChange)(unsafe.Pointer(p)).FpNext = *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8))
+ *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8)) = p
+ }
+ }
+
+ sessionFree(tls, pSession, (*SessionTable)(unsafe.Pointer(pTab)).FapChange)
+ (*SessionTable)(unsafe.Pointer(pTab)).FnChange = int32(nNew)
+ (*SessionTable)(unsafe.Pointer(pTab)).FapChange = apNew
+ }
+
+ return SQLITE_OK
+}
+
+func sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, zThis uintptr, pnCol uintptr, pzTab uintptr, pazCol uintptr, pabPK uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var zPragma uintptr
+
+ var rc int32
+ var nByte Sqlite3_int64
+ var nDbCol int32 = 0
+ var nThis int32
+ var i int32
+ var pAlloc uintptr = uintptr(0)
+ var azCol uintptr = uintptr(0)
+ var abPK uintptr = uintptr(0)
+
+ nThis = Xsqlite3Strlen30(tls, zThis)
+ if nThis == 12 && 0 == Xsqlite3_stricmp(tls, ts+11751, zThis) {
+ rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0))
+ if rc == SQLITE_OK {
+ zPragma = Xsqlite3_mprintf(tls,
+ ts+32798, 0)
+ } else if rc == SQLITE_ERROR {
+ zPragma = Xsqlite3_mprintf(tls, ts+1547, 0)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pazCol)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pabPK)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnCol)) = 0
+ if pzTab != 0 {
+ *(*uintptr)(unsafe.Pointer(pzTab)) = uintptr(0)
+ }
+ return rc
+ }
+ } else {
+ zPragma = Xsqlite3_mprintf(tls, ts+32919, libc.VaList(bp, zDb, zThis))
+ }
+ if !(zPragma != 0) {
+ *(*uintptr)(unsafe.Pointer(pazCol)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pabPK)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnCol)) = 0
+ if pzTab != 0 {
+ *(*uintptr)(unsafe.Pointer(pzTab)) = uintptr(0)
+ }
+ return SQLITE_NOMEM
+ }
+
+ rc = Xsqlite3_prepare_v2(tls, db, zPragma, -1, bp+16, uintptr(0))
+ Xsqlite3_free(tls, zPragma)
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pazCol)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pabPK)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnCol)) = 0
+ if pzTab != 0 {
+ *(*uintptr)(unsafe.Pointer(pzTab)) = uintptr(0)
+ }
+ return rc
+ }
+
+ nByte = Sqlite3_int64(nThis + 1)
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) {
+ nByte = nByte + Sqlite3_int64(Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1))
+ nDbCol++
+ }
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+
+ if rc == SQLITE_OK {
+ nByte = Sqlite3_int64(uint64(nByte) + uint64(nDbCol)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64(unsafe.Sizeof(U8(0)))+uint64(1)))
+ pAlloc = sessionMalloc64(tls, pSession, nByte)
+ if pAlloc == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ if rc == SQLITE_OK {
+ azCol = pAlloc
+ pAlloc = azCol + uintptr(nDbCol)*8
+ abPK = pAlloc
+ pAlloc = abPK + uintptr(nDbCol)
+ if pzTab != 0 {
+ libc.X__builtin___memcpy_chk(tls, pAlloc, zThis, uint64(nThis+1), libc.X__builtin_object_size(tls, pAlloc, 0))
+ *(*uintptr)(unsafe.Pointer(pzTab)) = pAlloc
+ pAlloc += uintptr(nThis + 1)
+ }
+
+ i = 0
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) {
+ var nName int32 = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1)
+ var zName uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 1)
+ if zName == uintptr(0) {
+ break
+ }
+ libc.X__builtin___memcpy_chk(tls, pAlloc, zName, uint64(nName+1), libc.X__builtin_object_size(tls, pAlloc, 0))
+ *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc
+ pAlloc += uintptr(nName + 1)
+ *(*U8)(unsafe.Pointer(abPK + uintptr(i))) = U8(Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 5))
+ i++
+ }
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+
+ }
+
+ if rc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pazCol)) = azCol
+ *(*uintptr)(unsafe.Pointer(pabPK)) = abPK
+ *(*int32)(unsafe.Pointer(pnCol)) = nDbCol
+ } else {
+ *(*uintptr)(unsafe.Pointer(pazCol)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pabPK)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnCol)) = 0
+ if pzTab != 0 {
+ *(*uintptr)(unsafe.Pointer(pzTab)) = uintptr(0)
+ }
+ sessionFree(tls, pSession, azCol)
+ }
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ return rc
+}
+
+func sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnCol == 0 {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc = sessionTableInfo(tls, pSession, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb, (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb,
+ (*SessionTable)(unsafe.Pointer(pTab)).FzName, pTab+16, uintptr(0), pTab+24, bp)
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc == SQLITE_OK {
+ var i int32
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + uintptr(i))) != 0 {
+ (*SessionTable)(unsafe.Pointer(pTab)).FabPK = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ }
+ }
+ if 0 == Xsqlite3_stricmp(tls, ts+11751, (*SessionTable)(unsafe.Pointer(pTab)).FzName) {
+ (*SessionTable)(unsafe.Pointer(pTab)).FbStat1 = 1
+ }
+
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 {
+ *(*I64)(unsafe.Pointer(pSession + 64)) += I64(Size_t(1+sessionVarintLen(tls, (*SessionTable)(unsafe.Pointer(pTab)).FnCol)+(*SessionTable)(unsafe.Pointer(pTab)).FnCol) + libc.Xstrlen(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName) + uint64(1))
+ }
+ }
+ }
+ return libc.Bool32((*Sqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 || (*SessionTable)(unsafe.Pointer(pTab)).FabPK == uintptr(0))
+}
+
+// Versions of the four methods in object SessionHook for use with the
+// sqlite_stat1 table. The purpose of this is to substitute a zero-length
+// blob each time a NULL value is read from the "idx" column of the
+// sqlite_stat1 table.
+type SessionStat1Ctx1 = struct {
+ Fhook SessionHook
+ FpSession uintptr
+}
+
+// Versions of the four methods in object SessionHook for use with the
+// sqlite_stat1 table. The purpose of this is to substitute a zero-length
+// blob each time a NULL value is read from the "idx" column of the
+// sqlite_stat1 table.
+type SessionStat1Ctx = SessionStat1Ctx1
+
+func sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr = pCtx
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FxOld})).f(tls, (*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FpCtx, iCol, bp)
+ if rc == SQLITE_OK && iCol == 1 && Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp))) == SQLITE_NULL {
+ *(*uintptr)(unsafe.Pointer(bp)) = (*Sqlite3_session)(unsafe.Pointer((*SessionStat1Ctx)(unsafe.Pointer(p)).FpSession)).FpZeroBlob
+ }
+ *(*uintptr)(unsafe.Pointer(ppVal)) = *(*uintptr)(unsafe.Pointer(bp))
+ return rc
+}
+
+func sessionStat1New(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p uintptr = pCtx
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FxNew})).f(tls, (*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FpCtx, iCol, bp)
+ if rc == SQLITE_OK && iCol == 1 && Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp))) == SQLITE_NULL {
+ *(*uintptr)(unsafe.Pointer(bp)) = (*Sqlite3_session)(unsafe.Pointer((*SessionStat1Ctx)(unsafe.Pointer(p)).FpSession)).FpZeroBlob
+ }
+ *(*uintptr)(unsafe.Pointer(ppVal)) = *(*uintptr)(unsafe.Pointer(bp))
+ return rc
+}
+
+func sessionStat1Count(tls *libc.TLS, pCtx uintptr) int32 {
+ var p uintptr = pCtx
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FxCount})).f(tls, (*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FpCtx)
+}
+
+func sessionStat1Depth(tls *libc.TLS, pCtx uintptr) int32 {
+ var p uintptr = pCtx
+ return (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FxDepth})).f(tls, (*SessionStat1Ctx)(unsafe.Pointer(p)).Fhook.FpCtx)
+}
+
+func sessionUpdateMaxSize(tls *libc.TLS, op int32, pSession uintptr, pTab uintptr, pC uintptr) int32 {
+ bp := tls.Alloc(44)
+ defer tls.Free(44)
+
+ *(*I64)(unsafe.Pointer(bp + 8)) = int64(2)
+ if int32((*SessionChange)(unsafe.Pointer(pC)).Fop) == SQLITE_INSERT {
+ if op != SQLITE_DELETE {
+ var ii int32
+ for ii = 0; ii < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; ii++ {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, ii, bp)
+ sessionSerializeValue(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(bp)), bp+8)
+ }
+ }
+ } else if op == SQLITE_DELETE {
+ *(*I64)(unsafe.Pointer(bp + 8)) += I64((*SessionChange)(unsafe.Pointer(pC)).FnRecord)
+ if Xsqlite3_preupdate_blobwrite(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb) >= 0 {
+ *(*I64)(unsafe.Pointer(bp + 8)) += I64((*SessionChange)(unsafe.Pointer(pC)).FnRecord)
+ }
+ } else {
+ var ii int32
+ var pCsr uintptr = (*SessionChange)(unsafe.Pointer(pC)).FaRecord
+ for ii = 0; ii < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; ii++ {
+ var bChanged int32 = 1
+ var nOld int32 = 0
+ var eType int32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, ii, bp+16)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+
+ eType = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pCsr, 1))))
+ switch eType {
+ case SQLITE_NULL:
+ bChanged = libc.Bool32(Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) != SQLITE_NULL)
+ break
+ fallthrough
+
+ case SQLITE_FLOAT:
+ fallthrough
+ case SQLITE_INTEGER:
+ {
+ if eType == Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 32)) = sessionGetI64(tls, pCsr)
+ if eType == SQLITE_INTEGER {
+ bChanged = libc.Bool32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 32)) != Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 16))))
+ } else {
+ libc.X__builtin___memcpy_chk(tls, bp+24, bp+32, uint64(8), libc.X__builtin_object_size(tls, bp+24, 0))
+ bChanged = libc.Bool32(*(*float64)(unsafe.Pointer(bp + 24)) != Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(bp + 16))))
+ }
+ }
+ nOld = 8
+ pCsr += uintptr(8)
+ break
+
+ }
+ fallthrough
+
+ default:
+ {
+ nOld = sessionVarintGet(tls, pCsr, bp+40)
+ pCsr += uintptr(nOld)
+ nOld = nOld + *(*int32)(unsafe.Pointer(bp + 40))
+
+ if eType == Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) &&
+ *(*int32)(unsafe.Pointer(bp + 40)) == Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) &&
+ (*(*int32)(unsafe.Pointer(bp + 40)) == 0 || 0 == libc.Xmemcmp(tls, pCsr, Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(bp + 16))), uint64(*(*int32)(unsafe.Pointer(bp + 40))))) {
+ bChanged = 0
+ }
+ pCsr += uintptr(*(*int32)(unsafe.Pointer(bp + 40)))
+ break
+
+ }
+ }
+
+ if bChanged != 0 && *(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(ii))) != 0 {
+ *(*I64)(unsafe.Pointer(bp + 8)) = I64((*SessionChange)(unsafe.Pointer(pC)).FnRecord + 2)
+ break
+ }
+
+ if bChanged != 0 {
+ *(*I64)(unsafe.Pointer(bp + 8)) += I64(1 + nOld)
+ sessionSerializeValue(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(bp + 16)), bp+8)
+ } else if *(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(ii))) != 0 {
+ *(*I64)(unsafe.Pointer(bp + 8)) += I64(2 + nOld)
+ } else {
+ *(*I64)(unsafe.Pointer(bp + 8)) += int64(2)
+ }
+ }
+ }
+
+ if *(*I64)(unsafe.Pointer(bp + 8)) > I64((*SessionChange)(unsafe.Pointer(pC)).FnMaxSize) {
+ var nIncr int32 = int32(*(*I64)(unsafe.Pointer(bp + 8)) - I64((*SessionChange)(unsafe.Pointer(pC)).FnMaxSize))
+ (*SessionChange)(unsafe.Pointer(pC)).FnMaxSize = int32(*(*I64)(unsafe.Pointer(bp + 8)))
+ *(*I64)(unsafe.Pointer(pSession + 64)) += I64(nIncr)
+ }
+ return SQLITE_OK
+}
+
+func sessionPreupdateOneChange(tls *libc.TLS, op int32, pSession uintptr, pTab uintptr) {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var rc int32
+
+ var p uintptr
+
+ var i int32
+
+ var pC uintptr
+ *(*int32)(unsafe.Pointer(bp + 52)) = 0
+ rc = SQLITE_OK
+ *(*SessionStat1Ctx)(unsafe.Pointer(bp)) = SessionStat1Ctx{}
+
+ if !((*Sqlite3_session)(unsafe.Pointer(pSession)).Frc != 0) {
+ goto __1
+ }
+ return
+__1:
+ ;
+ if !(sessionInitTable(tls, pSession, pTab) != 0) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ if !((*SessionTable)(unsafe.Pointer(pTab)).FnCol != (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxCount})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx)) {
+ goto __3
+ }
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc = SQLITE_SCHEMA
+ return
+__3:
+ ;
+ if !(sessionGrowHash(tls, pSession, 0, pTab) != 0) {
+ goto __4
+ }
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc = SQLITE_NOMEM
+ return
+__4:
+ ;
+ if !((*SessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0) {
+ goto __5
+ }
+ (*SessionStat1Ctx)(unsafe.Pointer(bp)).Fhook = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook
+ (*SessionStat1Ctx)(unsafe.Pointer(bp)).FpSession = pSession
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx = bp
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionStat1New}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionStat1Old}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxCount = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionStat1Count}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxDepth = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionStat1Depth}))
+ if !((*Sqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob == uintptr(0)) {
+ goto __6
+ }
+ p = Xsqlite3ValueNew(tls, uintptr(0))
+ if !(p == uintptr(0)) {
+ goto __7
+ }
+ rc = SQLITE_NOMEM
+ goto error_out
+__7:
+ ;
+ Xsqlite3ValueSetStr(tls, p, 0, ts+1547, uint8(0), uintptr(0))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p
+__6:
+ ;
+__5:
+ ;
+ rc = sessionPreupdateHash(tls, pSession, pTab, libc.Bool32(op == SQLITE_INSERT), bp+48, bp+52)
+ if !(rc != SQLITE_OK) {
+ goto __8
+ }
+ goto error_out
+__8:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 52)) == 0) {
+ goto __9
+ }
+ pC = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))*8))
+__10:
+ if !(pC != 0) {
+ goto __12
+ }
+ if !(sessionPreupdateEqual(tls, pSession, pTab, pC, op) != 0) {
+ goto __13
+ }
+ goto __12
+__13:
+ ;
+ goto __11
+__11:
+ pC = (*SessionChange)(unsafe.Pointer(pC)).FpNext
+ goto __10
+ goto __12
+__12:
+ ;
+ if !(pC == uintptr(0)) {
+ goto __14
+ }
+
+ (*SessionTable)(unsafe.Pointer(pTab)).FnEntry++
+
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 64)) = Sqlite3_int64(unsafe.Sizeof(SessionChange{}))
+ i = 0
+__16:
+ if !(i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol) {
+ goto __18
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0)
+ if !(op != SQLITE_INSERT) {
+ goto __19
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp+56)
+
+ goto __20
+__19:
+ if !(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))) != 0) {
+ goto __21
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp+56)
+
+__21:
+ ;
+__20:
+ ;
+ rc = sessionSerializeValue(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(bp + 56)), bp+64)
+ if !(rc != SQLITE_OK) {
+ goto __22
+ }
+ goto error_out
+__22:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ pC = sessionMalloc64(tls, pSession, *(*Sqlite3_int64)(unsafe.Pointer(bp + 64)))
+ if !!(pC != 0) {
+ goto __23
+ }
+ rc = SQLITE_NOMEM
+ goto error_out
+ goto __24
+__23:
+ libc.X__builtin___memset_chk(tls, pC, 0, uint64(unsafe.Sizeof(SessionChange{})), libc.X__builtin_object_size(tls, pC, 0))
+ (*SessionChange)(unsafe.Pointer(pC)).FaRecord = pC + 1*32
+__24:
+ ;
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 64)) = int64(0)
+ i = 0
+__25:
+ if !(i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol) {
+ goto __27
+ }
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+ if !(op != SQLITE_INSERT) {
+ goto __28
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp+72)
+ goto __29
+__28:
+ if !(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i))) != 0) {
+ goto __30
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx, i, bp+72)
+__30:
+ ;
+__29:
+ ;
+ sessionSerializeValue(tls, (*SessionChange)(unsafe.Pointer(pC)).FaRecord+uintptr(*(*Sqlite3_int64)(unsafe.Pointer(bp + 64))), *(*uintptr)(unsafe.Pointer(bp + 72)), bp+64)
+ goto __26
+__26:
+ i++
+ goto __25
+ goto __27
+__27:
+ ;
+ if !((*Sqlite3_session)(unsafe.Pointer(pSession)).FbIndirect != 0 || (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxDepth})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx) != 0) {
+ goto __31
+ }
+ (*SessionChange)(unsafe.Pointer(pC)).FbIndirect = U8(1)
+__31:
+ ;
+ (*SessionChange)(unsafe.Pointer(pC)).FnRecord = int32(*(*Sqlite3_int64)(unsafe.Pointer(bp + 64)))
+ (*SessionChange)(unsafe.Pointer(pC)).Fop = U8(op)
+ (*SessionChange)(unsafe.Pointer(pC)).FpNext = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))*8))
+ *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))*8)) = pC
+
+ goto __15
+__14:
+ if !((*SessionChange)(unsafe.Pointer(pC)).FbIndirect != 0) {
+ goto __32
+ }
+
+ if !((*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxDepth})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx) == 0 &&
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbIndirect == 0) {
+ goto __33
+ }
+ (*SessionChange)(unsafe.Pointer(pC)).FbIndirect = U8(0)
+__33:
+ ;
+__32:
+ ;
+__15:
+ ;
+ if !((*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0) {
+ goto __34
+ }
+ rc = sessionUpdateMaxSize(tls, op, pSession, pTab, pC)
+__34:
+ ;
+__9:
+ ;
+error_out:
+ if !((*SessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0) {
+ goto __35
+ }
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook = (*SessionStat1Ctx)(unsafe.Pointer(bp)).Fhook
+__35:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __36
+ }
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc = rc
+__36:
+}
+
+func sessionFindTable(tls *libc.TLS, pSession uintptr, zName uintptr, ppTab uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var nName int32 = Xsqlite3Strlen30(tls, zName)
+ var pRet uintptr
+
+ for pRet = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable; pRet != 0; pRet = (*SessionTable)(unsafe.Pointer(pRet)).FpNext {
+ if 0 == Xsqlite3_strnicmp(tls, (*SessionTable)(unsafe.Pointer(pRet)).FzName, zName, nName+1) {
+ break
+ }
+ }
+
+ if pRet == uintptr(0) && (*Sqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach != 0 {
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter == uintptr(0) ||
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Sqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter})).f(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx, zName) != 0 {
+ rc = Xsqlite3session_attach(tls, pSession, zName)
+ if rc == SQLITE_OK {
+ pRet = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable
+ for pRet != 0 && (*SessionTable)(unsafe.Pointer(pRet)).FpNext != 0 {
+ pRet = (*SessionTable)(unsafe.Pointer(pRet)).FpNext
+ }
+
+ }
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppTab)) = pRet
+ return rc
+}
+
+func xPreUpdate(tls *libc.TLS, pCtx uintptr, db uintptr, op int32, zDb uintptr, zName uintptr, iKey1 Sqlite3_int64, iKey2 Sqlite3_int64) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pSession uintptr
+ var nDb int32 = Xsqlite3Strlen30(tls, zDb)
+
+ _ = iKey1
+ _ = iKey2
+
+ for pSession = pCtx; pSession != 0; pSession = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpNext {
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnable == 0 {
+ continue
+ }
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 {
+ continue
+ }
+ if Xsqlite3_strnicmp(tls, zDb, (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb, nDb+1) != 0 {
+ continue
+ }
+
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc = sessionFindTable(tls, pSession, zName, bp)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ sessionPreupdateOneChange(tls, op, pSession, *(*uintptr)(unsafe.Pointer(bp)))
+ if op == SQLITE_UPDATE {
+ sessionPreupdateOneChange(tls, SQLITE_INSERT, pSession, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ }
+}
+
+func sessionPreupdateOld(tls *libc.TLS, pCtx uintptr, iVal int32, ppVal uintptr) int32 {
+ return Xsqlite3_preupdate_old(tls, pCtx, iVal, ppVal)
+}
+
+func sessionPreupdateNew(tls *libc.TLS, pCtx uintptr, iVal int32, ppVal uintptr) int32 {
+ return Xsqlite3_preupdate_new(tls, pCtx, iVal, ppVal)
+}
+
+func sessionPreupdateCount(tls *libc.TLS, pCtx uintptr) int32 {
+ return Xsqlite3_preupdate_count(tls, pCtx)
+}
+
+func sessionPreupdateDepth(tls *libc.TLS, pCtx uintptr) int32 {
+ return Xsqlite3_preupdate_depth(tls, pCtx)
+}
+
+func sessionPreupdateHooks(tls *libc.TLS, pSession uintptr) {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionPreupdateOld}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionPreupdateNew}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxCount = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionPreupdateCount}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxDepth = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionPreupdateDepth}))
+}
+
+type SessionDiffCtx1 = struct {
+ FpStmt uintptr
+ FnOldOff int32
+ F__ccgo_pad1 [4]byte
+}
+
+type SessionDiffCtx = SessionDiffCtx1
+
+func sessionDiffOld(tls *libc.TLS, pCtx uintptr, iVal int32, ppVal uintptr) int32 {
+ var p uintptr = pCtx
+ *(*uintptr)(unsafe.Pointer(ppVal)) = Xsqlite3_column_value(tls, (*SessionDiffCtx)(unsafe.Pointer(p)).FpStmt, iVal+(*SessionDiffCtx)(unsafe.Pointer(p)).FnOldOff)
+ return SQLITE_OK
+}
+
+func sessionDiffNew(tls *libc.TLS, pCtx uintptr, iVal int32, ppVal uintptr) int32 {
+ var p uintptr = pCtx
+ *(*uintptr)(unsafe.Pointer(ppVal)) = Xsqlite3_column_value(tls, (*SessionDiffCtx)(unsafe.Pointer(p)).FpStmt, iVal)
+ return SQLITE_OK
+}
+
+func sessionDiffCount(tls *libc.TLS, pCtx uintptr) int32 {
+ var p uintptr = pCtx
+ if (*SessionDiffCtx)(unsafe.Pointer(p)).FnOldOff != 0 {
+ return (*SessionDiffCtx)(unsafe.Pointer(p)).FnOldOff
+ }
+ return Xsqlite3_column_count(tls, (*SessionDiffCtx)(unsafe.Pointer(p)).FpStmt)
+}
+
+func sessionDiffDepth(tls *libc.TLS, pCtx uintptr) int32 {
+ _ = pCtx
+ return 0
+}
+
+func sessionDiffHooks(tls *libc.TLS, pSession uintptr, pDiffCtx uintptr) {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx = pDiffCtx
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxOld = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionDiffOld}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxNew = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{sessionDiffNew}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxCount = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionDiffCount}))
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FxDepth = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{sessionDiffDepth}))
+}
+
+func sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr, zTab uintptr, azCol uintptr, abPK uintptr) uintptr {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+ var zSep uintptr = ts + 1547
+ var zRet uintptr = uintptr(0)
+
+ for i = 0; i < nCol; i++ {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ zRet = Xsqlite3_mprintf(tls, ts+32948,
+ libc.VaList(bp, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8))))
+ zSep = ts + 21975
+ if zRet == uintptr(0) {
+ break
+ }
+ }
+ }
+
+ return zRet
+}
+
+func sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr, zTab uintptr, azCol uintptr, abPK uintptr) uintptr {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var i int32
+ var zSep uintptr = ts + 1547
+ var zRet uintptr = uintptr(0)
+ var bHave int32 = 0
+
+ for i = 0; i < nCol; i++ {
+ if int32(*(*U8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 {
+ bHave = 1
+ zRet = Xsqlite3_mprintf(tls,
+ ts+32982,
+ libc.VaList(bp, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8))))
+ zSep = ts + 33023
+ if zRet == uintptr(0) {
+ break
+ }
+ }
+ }
+
+ if bHave == 0 {
+ zRet = Xsqlite3_mprintf(tls, ts+7933, 0)
+ }
+
+ return zRet
+}
+
+func sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, zTbl uintptr, zExpr uintptr) uintptr {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var zRet uintptr = Xsqlite3_mprintf(tls,
+ ts+33028,
+ libc.VaList(bp, zDb1, zTbl, zDb2, zTbl, zExpr))
+ return zRet
+}
+
+func sessionDiffFindNew(tls *libc.TLS, op int32, pSession uintptr, pTab uintptr, zDb1 uintptr, zDb2 uintptr, zExpr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var zStmt uintptr = sessionSelectFindNew(tls, zDb1, zDb2, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zExpr)
+
+ if zStmt == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_prepare(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb, zStmt, -1, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ var pDiffCtx uintptr = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx
+ (*SessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FpStmt = *(*uintptr)(unsafe.Pointer(bp))
+ (*SessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FnOldOff = 0
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ sessionPreupdateOneChange(tls, op, pSession, pTab)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ Xsqlite3_free(tls, zStmt)
+ }
+
+ return rc
+}
+
+func sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFrom uintptr, zExpr uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32 = SQLITE_OK
+
+ var zExpr2 uintptr = sessionExprCompareOther(tls, (*SessionTable)(unsafe.Pointer(pTab)).FnCol,
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb, zFrom, (*SessionTable)(unsafe.Pointer(pTab)).FzName, (*SessionTable)(unsafe.Pointer(pTab)).FazCol, (*SessionTable)(unsafe.Pointer(pTab)).FabPK)
+ if zExpr2 == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var zStmt uintptr = Xsqlite3_mprintf(tls,
+ ts+33106,
+ libc.VaList(bp, (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2))
+ if zStmt == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_prepare(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb, zStmt, -1, bp+48, uintptr(0))
+
+ if rc == SQLITE_OK {
+ var pDiffCtx uintptr = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fhook.FpCtx
+ (*SessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FpStmt = *(*uintptr)(unsafe.Pointer(bp + 48))
+ (*SessionDiffCtx)(unsafe.Pointer(pDiffCtx)).FnOldOff = (*SessionTable)(unsafe.Pointer(pTab)).FnCol
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 48))) {
+ sessionPreupdateOneChange(tls, SQLITE_UPDATE, pSession, pTab)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ }
+ Xsqlite3_free(tls, zStmt)
+ }
+ }
+
+ return rc
+}
+
+func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var zDb uintptr
+ var rc int32
+
+ var i int32
+ var bHasPk int32
+ var bMismatch int32
+
+ var zExpr uintptr
+ var db uintptr
+
+ zDb = (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb
+ rc = (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(SessionDiffCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ sessionDiffHooks(tls, pSession, bp)
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ if !(pzErrMsg != 0) {
+ goto __1
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = uintptr(0)
+__1:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __2
+ }
+ zExpr = uintptr(0)
+ db = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb
+
+ rc = sessionFindTable(tls, pSession, zTbl, bp+16)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0)) {
+ goto __3
+ }
+ goto diff_out
+__3:
+ ;
+ if !(sessionInitTable(tls, pSession, *(*uintptr)(unsafe.Pointer(bp + 16))) != 0) {
+ goto __4
+ }
+ rc = (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc
+ goto diff_out
+__4:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __5
+ }
+ bHasPk = 0
+ bMismatch = 0
+ *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0)
+ rc = sessionTableInfo(tls, uintptr(0), db, zFrom, zTbl, bp+24, uintptr(0), bp+32, bp+40)
+ if !(rc == SQLITE_OK) {
+ goto __6
+ }
+ if !((*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnCol != *(*int32)(unsafe.Pointer(bp + 24))) {
+ goto __7
+ }
+ bMismatch = 1
+ goto __8
+__7:
+ i = 0
+__9:
+ if !(i < *(*int32)(unsafe.Pointer(bp + 24))) {
+ goto __11
+ }
+ if !(int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FabPK + uintptr(i)))) != int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + uintptr(i))))) {
+ goto __12
+ }
+ bMismatch = 1
+__12:
+ ;
+ if !(Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FazCol + uintptr(i)*8))) != 0) {
+ goto __13
+ }
+ bMismatch = 1
+__13:
+ ;
+ if !(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + uintptr(i))) != 0) {
+ goto __14
+ }
+ bHasPk = 1
+__14:
+ ;
+ goto __10
+__10:
+ i++
+ goto __9
+ goto __11
+__11:
+ ;
+__8:
+ ;
+__6:
+ ;
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))
+ if !(bMismatch != 0) {
+ goto __15
+ }
+ if !(pzErrMsg != 0) {
+ goto __16
+ }
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+33159, 0)
+__16:
+ ;
+ rc = SQLITE_SCHEMA
+__15:
+ ;
+ if !(bHasPk == 0) {
+ goto __17
+ }
+
+ goto diff_out
+__17:
+ ;
+__5:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __18
+ }
+ zExpr = sessionExprComparePK(tls, (*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnCol,
+ zDb, zFrom, (*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FzName, (*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FazCol, (*SessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FabPK)
+__18:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __19
+ }
+ rc = sessionDiffFindNew(tls, SQLITE_INSERT, pSession, *(*uintptr)(unsafe.Pointer(bp + 16)), zDb, zFrom, zExpr)
+__19:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __20
+ }
+ rc = sessionDiffFindNew(tls, SQLITE_DELETE, pSession, *(*uintptr)(unsafe.Pointer(bp + 16)), zFrom, zDb, zExpr)
+__20:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __21
+ }
+ rc = sessionDiffFindModified(tls, pSession, *(*uintptr)(unsafe.Pointer(bp + 16)), zFrom, zExpr)
+__21:
+ ;
+ Xsqlite3_free(tls, zExpr)
+__2:
+ ;
+diff_out:
+ sessionPreupdateHooks(tls, pSession)
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ return rc
+}
+
+// Create a session object. This session object will record changes to
+// database zDb attached to connection db.
+func Xsqlite3session_create(tls *libc.TLS, db uintptr, zDb uintptr, ppSession uintptr) int32 {
+ var pNew uintptr
+ var pOld uintptr
+ var nDb int32 = Xsqlite3Strlen30(tls, zDb)
+
+ *(*uintptr)(unsafe.Pointer(ppSession)) = uintptr(0)
+
+ pNew = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Sqlite3_session{}))+uint64(nDb)+uint64(1))
+ if !(pNew != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Sqlite3_session{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*Sqlite3_session)(unsafe.Pointer(pNew)).Fdb = db
+ (*Sqlite3_session)(unsafe.Pointer(pNew)).FzDb = pNew + 1*136
+ (*Sqlite3_session)(unsafe.Pointer(pNew)).FbEnable = 1
+ libc.X__builtin___memcpy_chk(tls, (*Sqlite3_session)(unsafe.Pointer(pNew)).FzDb, zDb, uint64(nDb+1), libc.X__builtin_object_size(tls, (*Sqlite3_session)(unsafe.Pointer(pNew)).FzDb, 0))
+ sessionPreupdateHooks(tls, pNew)
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db))
+ pOld = Xsqlite3_preupdate_hook(tls, db, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, Sqlite3_int64, Sqlite3_int64)
+ }{xPreUpdate})), pNew)
+ (*Sqlite3_session)(unsafe.Pointer(pNew)).FpNext = pOld
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db))
+
+ *(*uintptr)(unsafe.Pointer(ppSession)) = pNew
+ return SQLITE_OK
+}
+
+func sessionDeleteTable(tls *libc.TLS, pSession uintptr, pList uintptr) {
+ var pNext uintptr
+ var pTab uintptr
+
+ for pTab = pList; pTab != 0; pTab = pNext {
+ var i int32
+ pNext = (*SessionTable)(unsafe.Pointer(pTab)).FpNext
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnChange; i++ {
+ var p uintptr
+ var pNextChange uintptr
+ for p = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(i)*8)); p != 0; p = pNextChange {
+ pNextChange = (*SessionChange)(unsafe.Pointer(p)).FpNext
+ sessionFree(tls, pSession, p)
+ }
+ }
+ sessionFree(tls, pSession, (*SessionTable)(unsafe.Pointer(pTab)).FazCol)
+ sessionFree(tls, pSession, (*SessionTable)(unsafe.Pointer(pTab)).FapChange)
+ sessionFree(tls, pSession, pTab)
+ }
+}
+
+// Delete a session object previously allocated using sqlite3session_create().
+func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var db uintptr = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb
+
+ var pp uintptr
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db))
+ *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_preupdate_hook(tls, db, uintptr(0), uintptr(0))
+ for pp = bp; *(*uintptr)(unsafe.Pointer(pp)) != uintptr(0); pp = *(*uintptr)(unsafe.Pointer(pp)) + 80 {
+ if *(*uintptr)(unsafe.Pointer(pp)) == pSession {
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Sqlite3_session)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ Xsqlite3_preupdate_hook(tls, db, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, Sqlite3_int64, Sqlite3_int64)
+ }{xPreUpdate})), *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ break
+ }
+ }
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db))
+ Xsqlite3ValueFree(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob)
+
+ sessionDeleteTable(tls, pSession, (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable)
+
+ Xsqlite3_free(tls, pSession)
+}
+
+// Set a table filter on a Session Object.
+func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = 1
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter
+}
+
+// Attach a table to a session. All subsequent changes made to the table
+// while the session object is enabled will be recorded.
+//
+// Only tables that have a PRIMARY KEY defined may be attached. It does
+// not matter if the PRIMARY KEY is an "INTEGER PRIMARY KEY" (rowid alias)
+// or not.
+func Xsqlite3session_attach(tls *libc.TLS, pSession uintptr, zName uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+
+ if !(zName != 0) {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = 1
+ } else {
+ var pTab uintptr
+ var nName int32
+
+ nName = Xsqlite3Strlen30(tls, zName)
+ for pTab = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable; pTab != 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ if 0 == Xsqlite3_strnicmp(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zName, nName+1) {
+ break
+ }
+ }
+
+ if !(pTab != 0) {
+ var nByte int32 = int32(uint64(unsafe.Sizeof(SessionTable{})) + uint64(nName) + uint64(1))
+ pTab = sessionMalloc64(tls, pSession, int64(nByte))
+ if !(pTab != 0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var ppTab uintptr
+ libc.X__builtin___memset_chk(tls, pTab, 0, uint64(unsafe.Sizeof(SessionTable{})), libc.X__builtin_object_size(tls, pTab, 0))
+ (*SessionTable)(unsafe.Pointer(pTab)).FzName = pTab + 1*56
+ libc.X__builtin___memcpy_chk(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zName, uint64(nName+1), libc.X__builtin_object_size(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, 0))
+ for ppTab = pSession + 88; *(*uintptr)(unsafe.Pointer(ppTab)) != 0; ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) {
+ }
+ *(*uintptr)(unsafe.Pointer(ppTab)) = pTab
+ }
+ }
+ }
+
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ return rc
+}
+
+func sessionBufferGrow(tls *libc.TLS, p uintptr, nByte I64, pRc uintptr) int32 {
+ var nReq I64 = I64((*SessionBuffer)(unsafe.Pointer(p)).FnBuf) + nByte
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK && nReq > I64((*SessionBuffer)(unsafe.Pointer(p)).FnAlloc) {
+ var aNew uintptr
+ var nNew I64
+ if (*SessionBuffer)(unsafe.Pointer(p)).FnAlloc != 0 {
+ nNew = int64((*SessionBuffer)(unsafe.Pointer(p)).FnAlloc)
+ } else {
+ nNew = int64(128)
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = nNew < nReq {
+ nNew = nNew * int64(2)
+ }
+
+ if nNew > int64(0x7FFFFF00-1) {
+ nNew = int64(0x7FFFFF00 - 1)
+ if nNew < nReq {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ return 1
+ }
+ }
+
+ aNew = Xsqlite3_realloc64(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf, uint64(nNew))
+ if uintptr(0) == aNew {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ } else {
+ (*SessionBuffer)(unsafe.Pointer(p)).FaBuf = aNew
+ (*SessionBuffer)(unsafe.Pointer(p)).FnAlloc = int32(nNew)
+ }
+ }
+ return libc.Bool32(*(*int32)(unsafe.Pointer(pRc)) != SQLITE_OK)
+}
+
+func sessionAppendValue(tls *libc.TLS, p uintptr, pVal uintptr, pRc uintptr) {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = *(*int32)(unsafe.Pointer(pRc))
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ *(*int32)(unsafe.Pointer(bp + 8)) = sessionSerializeValue(tls, uintptr(0), pVal, bp)
+ sessionBufferGrow(tls, p, *(*Sqlite3_int64)(unsafe.Pointer(bp)), bp+8)
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = sessionSerializeValue(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), pVal, uintptr(0))
+ *(*int32)(unsafe.Pointer(p + 8)) += int32(*(*Sqlite3_int64)(unsafe.Pointer(bp)))
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = *(*int32)(unsafe.Pointer(bp + 8))
+ }
+ }
+}
+
+func sessionAppendByte(tls *libc.TLS, p uintptr, v U8, pRc uintptr) {
+ if 0 == sessionBufferGrow(tls, p, int64(1), pRc) {
+ *(*U8)(unsafe.Pointer((*SessionBuffer)(unsafe.Pointer(p)).FaBuf + uintptr(libc.PostIncInt32(&(*SessionBuffer)(unsafe.Pointer(p)).FnBuf, 1)))) = v
+ }
+}
+
+func sessionAppendVarint(tls *libc.TLS, p uintptr, v int32, pRc uintptr) {
+ if 0 == sessionBufferGrow(tls, p, int64(9), pRc) {
+ *(*int32)(unsafe.Pointer(p + 8)) += sessionVarintPut(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), v)
+ }
+}
+
+func sessionAppendBlob(tls *libc.TLS, p uintptr, aBlob uintptr, nBlob int32, pRc uintptr) {
+ if nBlob > 0 && 0 == sessionBufferGrow(tls, p, int64(nBlob), pRc) {
+ libc.X__builtin___memcpy_chk(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), aBlob, uint64(nBlob), libc.X__builtin_object_size(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), 0))
+ *(*int32)(unsafe.Pointer(p + 8)) += nBlob
+ }
+}
+
+func sessionAppendStr(tls *libc.TLS, p uintptr, zStr uintptr, pRc uintptr) {
+ var nStr int32 = Xsqlite3Strlen30(tls, zStr)
+ if 0 == sessionBufferGrow(tls, p, int64(nStr), pRc) {
+ libc.X__builtin___memcpy_chk(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), zStr, uint64(nStr), libc.X__builtin_object_size(tls, (*SessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf), 0))
+ *(*int32)(unsafe.Pointer(p + 8)) += nStr
+ }
+}
+
+func sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsqlite3_snprintf(tls, int32(uint64(unsafe.Sizeof([24]int8{}))-uint64(1)), bp+8, ts+5378, libc.VaList(bp, iVal))
+ sessionAppendStr(tls, p, bp+8, pRc)
+}
+
+func sessionAppendIdent(tls *libc.TLS, p uintptr, zStr uintptr, pRc uintptr) {
+ var nStr int32 = Xsqlite3Strlen30(tls, zStr)*2 + 2 + 1
+ if 0 == sessionBufferGrow(tls, p, int64(nStr), pRc) {
+ var zOut uintptr = (*SessionBuffer)(unsafe.Pointer(p)).FaBuf + uintptr((*SessionBuffer)(unsafe.Pointer(p)).FnBuf)
+ var zIn uintptr = zStr
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8('"')
+ for *(*int8)(unsafe.Pointer(zIn)) != 0 {
+ if int32(*(*int8)(unsafe.Pointer(zIn))) == '"' {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8('"')
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8('"')
+ (*SessionBuffer)(unsafe.Pointer(p)).FnBuf = int32((int64(zOut) - int64((*SessionBuffer)(unsafe.Pointer(p)).FaBuf)) / 1)
+ }
+}
+
+func sessionAppendCol(tls *libc.TLS, p uintptr, pStmt uintptr, iCol int32, pRc uintptr) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var eType int32 = Xsqlite3_column_type(tls, pStmt, iCol)
+ sessionAppendByte(tls, p, U8(eType), pRc)
+ if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ if eType == SQLITE_INTEGER {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = Xsqlite3_column_int64(tls, pStmt, iCol)
+ } else {
+ *(*float64)(unsafe.Pointer(bp + 8)) = Xsqlite3_column_double(tls, pStmt, iCol)
+ libc.X__builtin___memcpy_chk(tls, bp, bp+8, uint64(8), libc.X__builtin_object_size(tls, bp, 0))
+ }
+ sessionPutI64(tls, bp+16, *(*Sqlite3_int64)(unsafe.Pointer(bp)))
+ sessionAppendBlob(tls, p, bp+16, 8, pRc)
+ }
+ if eType == SQLITE_BLOB || eType == SQLITE_TEXT {
+ var z uintptr
+ var nByte int32
+ if eType == SQLITE_BLOB {
+ z = Xsqlite3_column_blob(tls, pStmt, iCol)
+ } else {
+ z = Xsqlite3_column_text(tls, pStmt, iCol)
+ }
+ nByte = Xsqlite3_column_bytes(tls, pStmt, iCol)
+ if z != 0 || eType == SQLITE_BLOB && nByte == 0 {
+ sessionAppendVarint(tls, p, nByte, pRc)
+ sessionAppendBlob(tls, p, z, nByte, pRc)
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+ }
+}
+
+func sessionAppendUpdate(tls *libc.TLS, pBuf uintptr, bPatchset int32, pStmt uintptr, p uintptr, abPK uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ *(*SessionBuffer)(unsafe.Pointer(bp + 32)) = SessionBuffer{}
+ var bNoop int32 = 1
+ var nRewind int32 = (*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf
+ var i int32
+ var pCsr uintptr = (*SessionChange)(unsafe.Pointer(p)).FaRecord
+
+ sessionAppendByte(tls, pBuf, uint8(SQLITE_UPDATE), bp)
+ sessionAppendByte(tls, pBuf, (*SessionChange)(unsafe.Pointer(p)).FbIndirect, bp)
+ for i = 0; i < Xsqlite3_column_count(tls, pStmt); i++ {
+ var bChanged int32 = 0
+ var nAdvance int32
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(pCsr)))
+ switch eType {
+ case SQLITE_NULL:
+ nAdvance = 1
+ if Xsqlite3_column_type(tls, pStmt, i) != SQLITE_NULL {
+ bChanged = 1
+ }
+ break
+
+ case SQLITE_FLOAT:
+ fallthrough
+ case SQLITE_INTEGER:
+ {
+ nAdvance = 9
+ if eType == Xsqlite3_column_type(tls, pStmt, i) {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 16)) = sessionGetI64(tls, pCsr+1)
+ if eType == SQLITE_INTEGER {
+ if *(*Sqlite3_int64)(unsafe.Pointer(bp + 16)) == Xsqlite3_column_int64(tls, pStmt, i) {
+ break
+ }
+ } else {
+ libc.X__builtin___memcpy_chk(tls, bp+8, bp+16, uint64(8), libc.X__builtin_object_size(tls, bp+8, 0))
+ if *(*float64)(unsafe.Pointer(bp + 8)) == Xsqlite3_column_double(tls, pStmt, i) {
+ break
+ }
+ }
+ }
+ bChanged = 1
+ break
+
+ }
+
+ default:
+ {
+ var nHdr int32 = 1 + sessionVarintGet(tls, pCsr+1, bp+24)
+
+ nAdvance = nHdr + *(*int32)(unsafe.Pointer(bp + 24))
+ if eType == Xsqlite3_column_type(tls, pStmt, i) &&
+ *(*int32)(unsafe.Pointer(bp + 24)) == Xsqlite3_column_bytes(tls, pStmt, i) &&
+ (*(*int32)(unsafe.Pointer(bp + 24)) == 0 || 0 == libc.Xmemcmp(tls, pCsr+uintptr(nHdr), Xsqlite3_column_blob(tls, pStmt, i), uint64(*(*int32)(unsafe.Pointer(bp + 24))))) {
+ break
+ }
+ bChanged = 1
+
+ }
+ }
+
+ if bChanged != 0 {
+ bNoop = 0
+ }
+
+ if bPatchset == 0 {
+ if bChanged != 0 || *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ sessionAppendBlob(tls, pBuf, pCsr, nAdvance, bp)
+ } else {
+ sessionAppendByte(tls, pBuf, uint8(0), bp)
+ }
+ }
+
+ if bChanged != 0 || bPatchset != 0 && *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ sessionAppendCol(tls, bp+32, pStmt, i, bp)
+ } else {
+ sessionAppendByte(tls, bp+32, uint8(0), bp)
+ }
+
+ pCsr += uintptr(nAdvance)
+ }
+
+ if bNoop != 0 {
+ (*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = nRewind
+ } else {
+ sessionAppendBlob(tls, pBuf, (*SessionBuffer)(unsafe.Pointer(bp+32)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp+32)).FnBuf, bp)
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp+32)).FaBuf)
+
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sessionAppendDelete(tls *libc.TLS, pBuf uintptr, bPatchset int32, p uintptr, nCol int32, abPK uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+
+ sessionAppendByte(tls, pBuf, uint8(SQLITE_DELETE), bp)
+ sessionAppendByte(tls, pBuf, (*SessionChange)(unsafe.Pointer(p)).FbIndirect, bp)
+
+ if bPatchset == 0 {
+ sessionAppendBlob(tls, pBuf, (*SessionChange)(unsafe.Pointer(p)).FaRecord, (*SessionChange)(unsafe.Pointer(p)).FnRecord, bp)
+ } else {
+ var i int32
+ var a uintptr = (*SessionChange)(unsafe.Pointer(p)).FaRecord
+ for i = 0; i < nCol; i++ {
+ var pStart uintptr = a
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&a, 1))))
+
+ switch eType {
+ case 0:
+ fallthrough
+ case SQLITE_NULL:
+ break
+ fallthrough
+
+ case SQLITE_FLOAT:
+ fallthrough
+ case SQLITE_INTEGER:
+ a += uintptr(8)
+ break
+ fallthrough
+
+ default:
+ {
+ a += uintptr(sessionVarintGet(tls, a, bp+4))
+ a += uintptr(*(*int32)(unsafe.Pointer(bp + 4)))
+ break
+
+ }
+ }
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ sessionAppendBlob(tls, pBuf, pStart, int32((int64(a)-int64(pStart))/1), bp)
+ }
+ }
+
+ }
+
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sessionSelectStmt(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, nCol int32, azCol uintptr, abPK uintptr, ppStmt uintptr) int32 {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ var zSql uintptr = uintptr(0)
+ var nSql int32 = -1
+
+ if 0 == Xsqlite3_stricmp(tls, ts+11751, zTab) {
+ zSql = Xsqlite3_mprintf(tls,
+ ts+33186, libc.VaList(bp, zDb))
+ if zSql == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_NOMEM
+ }
+ } else {
+ var i int32
+ var zSep uintptr = ts + 1547
+ *(*SessionBuffer)(unsafe.Pointer(bp + 8)) = SessionBuffer{}
+
+ sessionAppendStr(tls, bp+8, ts+33296, bp+24)
+ sessionAppendIdent(tls, bp+8, zDb, bp+24)
+ sessionAppendStr(tls, bp+8, ts+1560, bp+24)
+ sessionAppendIdent(tls, bp+8, zTab, bp+24)
+ sessionAppendStr(tls, bp+8, ts+33311, bp+24)
+ for i = 0; i < nCol; i++ {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ sessionAppendStr(tls, bp+8, zSep, bp+24)
+ sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp+24)
+ sessionAppendStr(tls, bp+8, ts+33319, bp+24)
+ sessionAppendInteger(tls, bp+8, i+1, bp+24)
+ zSep = ts + 21975
+ }
+ }
+ zSql = (*SessionBuffer)(unsafe.Pointer(bp + 8)).FaBuf
+ nSql = (*SessionBuffer)(unsafe.Pointer(bp + 8)).FnBuf
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 24)) = Xsqlite3_prepare_v2(tls, db, zSql, nSql, ppStmt, uintptr(0))
+ }
+ Xsqlite3_free(tls, zSql)
+ return *(*int32)(unsafe.Pointer(bp + 24))
+}
+
+func sessionSelectBind(tls *libc.TLS, pSelect uintptr, nCol int32, abPK uintptr, pChange uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var i int32
+ var rc int32 = SQLITE_OK
+ var a uintptr = (*SessionChange)(unsafe.Pointer(pChange)).FaRecord
+
+ for i = 0; i < nCol && rc == SQLITE_OK; i++ {
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&a, 1))))
+
+ switch eType {
+ case 0:
+ fallthrough
+ case SQLITE_NULL:
+ break
+
+ case SQLITE_INTEGER:
+ {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ var iVal I64 = sessionGetI64(tls, a)
+ rc = Xsqlite3_bind_int64(tls, pSelect, i+1, iVal)
+ }
+ a += uintptr(8)
+ break
+
+ }
+
+ case SQLITE_FLOAT:
+ {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ *(*I64)(unsafe.Pointer(bp + 8)) = sessionGetI64(tls, a)
+ libc.X__builtin___memcpy_chk(tls, bp, bp+8, uint64(8), libc.X__builtin_object_size(tls, bp, 0))
+ rc = Xsqlite3_bind_double(tls, pSelect, i+1, *(*float64)(unsafe.Pointer(bp)))
+ }
+ a += uintptr(8)
+ break
+
+ }
+
+ case SQLITE_TEXT:
+ {
+ a += uintptr(sessionVarintGet(tls, a, bp+16))
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ rc = Xsqlite3_bind_text(tls, pSelect, i+1, a, *(*int32)(unsafe.Pointer(bp + 16)), libc.UintptrFromInt32(-1))
+ }
+ a += uintptr(*(*int32)(unsafe.Pointer(bp + 16)))
+ break
+
+ }
+
+ default:
+ {
+ a += uintptr(sessionVarintGet(tls, a, bp+20))
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ rc = Xsqlite3_bind_blob(tls, pSelect, i+1, a, *(*int32)(unsafe.Pointer(bp + 20)), libc.UintptrFromInt32(-1))
+ }
+ a += uintptr(*(*int32)(unsafe.Pointer(bp + 20)))
+ break
+
+ }
+ }
+ }
+
+ return rc
+}
+
+func sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab uintptr, pRc uintptr) {
+ sessionAppendByte(tls, pBuf, func() uint8 {
+ if bPatchset != 0 {
+ return uint8('P')
+ }
+ return uint8('T')
+ }(), pRc)
+ sessionAppendVarint(tls, pBuf, (*SessionTable)(unsafe.Pointer(pTab)).FnCol, pRc)
+ sessionAppendBlob(tls, pBuf, (*SessionTable)(unsafe.Pointer(pTab)).FabPK, (*SessionTable)(unsafe.Pointer(pTab)).FnCol, pRc)
+ sessionAppendBlob(tls, pBuf, (*SessionTable)(unsafe.Pointer(pTab)).FzName, int32(libc.Xstrlen(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName))+1, pRc)
+}
+
+func sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var db uintptr = (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb
+ var pTab uintptr
+ *(*SessionBuffer)(unsafe.Pointer(bp + 24)) = SessionBuffer{}
+
+ if xOutput == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pnChangeset)) = 0
+ *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0)
+ }
+
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 {
+ return (*Sqlite3_session)(unsafe.Pointer(pSession)).Frc
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3_exec(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb, ts+33325, uintptr(0), uintptr(0), uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db))
+
+ for pTab = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable; *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && pTab != 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnEntry != 0 {
+ var zName uintptr = (*SessionTable)(unsafe.Pointer(pTab)).FzName
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var i int32
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+ var nRewind int32 = (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf
+ var nNoop int32
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionTableInfo(tls, uintptr(0), db, (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb, zName, bp, uintptr(0), bp+8, bp+16)
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) != 0) && ((*SessionTable)(unsafe.Pointer(pTab)).FnCol != *(*int32)(unsafe.Pointer(bp)) || libc.Xmemcmp(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), (*SessionTable)(unsafe.Pointer(pTab)).FabPK, uint64(*(*int32)(unsafe.Pointer(bp)))) != 0) {
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_SCHEMA
+ }
+
+ sessionAppendTableHdr(tls, bp+24, bPatchset, pTab, bp+40)
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionSelectStmt(tls,
+ db, (*Sqlite3_session)(unsafe.Pointer(pSession)).FzDb, zName, *(*int32)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp + 16)), bp+48)
+ }
+
+ nNoop = (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnChange && *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK; i++ {
+ var p uintptr
+
+ for p = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(i)*8)); *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && p != 0; p = (*SessionChange)(unsafe.Pointer(p)).FpNext {
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionSelectBind(tls, *(*uintptr)(unsafe.Pointer(bp + 48)), *(*int32)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 16)), p)
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ continue
+ }
+ if Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 48))) == SQLITE_ROW {
+ if int32((*SessionChange)(unsafe.Pointer(p)).Fop) == SQLITE_INSERT {
+ var iCol int32
+ sessionAppendByte(tls, bp+24, uint8(SQLITE_INSERT), bp+40)
+ sessionAppendByte(tls, bp+24, (*SessionChange)(unsafe.Pointer(p)).FbIndirect, bp+40)
+ for iCol = 0; iCol < *(*int32)(unsafe.Pointer(bp)); iCol++ {
+ sessionAppendCol(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 48)), iCol, bp+40)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionAppendUpdate(tls, bp+24, bPatchset, *(*uintptr)(unsafe.Pointer(bp + 48)), p, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ } else if int32((*SessionChange)(unsafe.Pointer(p)).Fop) != SQLITE_INSERT {
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionAppendDelete(tls, bp+24, bPatchset, p, *(*int32)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ }
+
+ if xOutput != 0 &&
+ *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK &&
+ (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf > nNoop &&
+ (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf > sessions_strm_chunk_size {
+ *(*int32)(unsafe.Pointer(bp + 40)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp+24)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf)
+ nNoop = -1
+ (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf = 0
+ }
+
+ }
+ }
+
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ if (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf == nNoop {
+ (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf = nRewind
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ if xOutput == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pnChangeset)) = (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf
+ *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*SessionBuffer)(unsafe.Pointer(bp + 24)).FaBuf
+ (*SessionBuffer)(unsafe.Pointer(bp + 24)).FaBuf = uintptr(0)
+ } else if (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf > 0 {
+ *(*int32)(unsafe.Pointer(bp + 40)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp+24)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp+24)).FnBuf)
+ }
+ }
+
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp+24)).FaBuf)
+ Xsqlite3_exec(tls, db, ts+33345, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db))
+ return *(*int32)(unsafe.Pointer(bp + 40))
+}
+
+// Obtain a changeset object containing all changes recorded by the
+// session object passed as the first argument.
+//
+// It is the responsibility of the caller to eventually free the buffer
+// using sqlite3_free().
+func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uintptr, ppChangeset uintptr) int32 {
+ var rc int32
+
+ if pnChangeset == uintptr(0) || ppChangeset == uintptr(0) {
+ return SQLITE_MISUSE
+ }
+ rc = sessionGenerateChangeset(tls, pSession, 0, uintptr(0), uintptr(0), pnChangeset, ppChangeset)
+
+ return rc
+}
+
+// Streaming version of sqlite3session_changeset().
+func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) int32 {
+ if xOutput == uintptr(0) {
+ return SQLITE_MISUSE
+ }
+ return sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0))
+}
+
+// Streaming version of sqlite3session_patchset().
+func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) int32 {
+ if xOutput == uintptr(0) {
+ return SQLITE_MISUSE
+ }
+ return sessionGenerateChangeset(tls, pSession, 1, xOutput, pOut, uintptr(0), uintptr(0))
+}
+
+// Obtain a patchset object containing all changes recorded by the
+// session object passed as the first argument.
+//
+// It is the responsibility of the caller to eventually free the buffer
+// using sqlite3_free().
+func Xsqlite3session_patchset(tls *libc.TLS, pSession uintptr, pnPatchset uintptr, ppPatchset uintptr) int32 {
+ if pnPatchset == uintptr(0) || ppPatchset == uintptr(0) {
+ return SQLITE_MISUSE
+ }
+ return sessionGenerateChangeset(tls, pSession, 1, uintptr(0), uintptr(0), pnPatchset, ppPatchset)
+}
+
+// Enable or disable the session object passed as the first argument.
+func Xsqlite3session_enable(tls *libc.TLS, pSession uintptr, bEnable int32) int32 {
+ var ret int32
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ if bEnable >= 0 {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnable = bEnable
+ }
+ ret = (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnable
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ return ret
+}
+
+// Enable or disable the session object passed as the first argument.
+func Xsqlite3session_indirect(tls *libc.TLS, pSession uintptr, bIndirect int32) int32 {
+ var ret int32
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ if bIndirect >= 0 {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbIndirect = bIndirect
+ }
+ ret = (*Sqlite3_session)(unsafe.Pointer(pSession)).FbIndirect
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ return ret
+}
+
+// Return true if there have been no changes to monitored tables recorded
+// by the session object passed as the only argument.
+func Xsqlite3session_isempty(tls *libc.TLS, pSession uintptr) int32 {
+ var ret int32 = 0
+ var pTab uintptr
+
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+ for pTab = (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable; pTab != 0 && ret == 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ ret = libc.Bool32((*SessionTable)(unsafe.Pointer(pTab)).FnEntry > 0)
+ }
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, (*Sqlite3_session)(unsafe.Pointer(pSession)).Fdb))
+
+ return libc.Bool32(ret == 0)
+}
+
+// Return the amount of heap memory in use.
+func Xsqlite3session_memory_used(tls *libc.TLS, pSession uintptr) Sqlite3_int64 {
+ return (*Sqlite3_session)(unsafe.Pointer(pSession)).FnMalloc
+}
+
+// Configure the session object passed as the first argument.
+func Xsqlite3session_object_config(tls *libc.TLS, pSession uintptr, op int32, pArg uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ switch op {
+ case SQLITE_SESSION_OBJCONFIG_SIZE:
+ {
+ var iArg int32 = *(*int32)(unsafe.Pointer(pArg))
+ if iArg >= 0 {
+ if (*Sqlite3_session)(unsafe.Pointer(pSession)).FpTable != 0 {
+ rc = SQLITE_MISUSE
+ } else {
+ (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize = libc.Bool32(iArg != 0)
+ }
+ }
+ *(*int32)(unsafe.Pointer(pArg)) = (*Sqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize
+ break
+
+ }
+
+ default:
+ rc = SQLITE_MISUSE
+ }
+
+ return rc
+}
+
+// Return the maximum size of sqlite3session_changeset() output.
+func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) Sqlite3_int64 {
+ return (*Sqlite3_session)(unsafe.Pointer(pSession)).FnMaxChangesetSize
+}
+
+func sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) int32 {
+ var pRet uintptr
+ var nByte int32
+
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+
+ nByte = int32(unsafe.Sizeof(Sqlite3_changeset_iter{}))
+ pRet = Xsqlite3_malloc(tls, nByte)
+ if !(pRet != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(unsafe.Sizeof(Sqlite3_changeset_iter{})), libc.X__builtin_object_size(tls, pRet, 0))
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FbEof = func() int32 {
+ if xInput != 0 {
+ return 0
+ }
+ return 1
+ }()
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).FbInvert = bInvert
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pRet)).FbSkipEmpty = bSkipEmpty
+
+ *(*uintptr)(unsafe.Pointer(pp)) = pRet
+ return SQLITE_OK
+}
+
+// Create an iterator used to iterate through the contents of a changeset.
+func Xsqlite3changeset_start(tls *libc.TLS, pp uintptr, nChangeset int32, pChangeset uintptr) int32 {
+ return sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, 0, 0)
+}
+
+func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pChangeset uintptr, flags int32) int32 {
+ var bInvert int32 = libc.BoolInt32(!!(flags&SQLITE_CHANGESETSTART_INVERT != 0))
+ return sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0)
+}
+
+// Streaming version of sqlite3changeset_start().
+func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) int32 {
+ return sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0)
+}
+
+func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) int32 {
+ var bInvert int32 = libc.BoolInt32(!!(flags&SQLITE_CHANGESETSTART_INVERT != 0))
+ return sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0)
+}
+
+func sessionDiscardData(tls *libc.TLS, pIn uintptr) {
+ if (*SessionInput)(unsafe.Pointer(pIn)).FxInput != 0 && (*SessionInput)(unsafe.Pointer(pIn)).FiNext >= sessions_strm_chunk_size {
+ var nMove int32 = (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf - (*SessionInput)(unsafe.Pointer(pIn)).FiNext
+
+ if nMove > 0 {
+ libc.X__builtin___memmove_chk(tls, (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf, (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf+uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext), uint64(nMove), libc.X__builtin_object_size(tls, (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf, 0))
+ }
+ *(*int32)(unsafe.Pointer(pIn + 32 + 8)) -= (*SessionInput)(unsafe.Pointer(pIn)).FiNext
+ (*SessionInput)(unsafe.Pointer(pIn)).FiNext = 0
+ (*SessionInput)(unsafe.Pointer(pIn)).FnData = (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf
+ }
+}
+
+func sessionInputBuffer(tls *libc.TLS, pIn uintptr, nByte int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ if (*SessionInput)(unsafe.Pointer(pIn)).FxInput != 0 {
+ for !((*SessionInput)(unsafe.Pointer(pIn)).FbEof != 0) && (*SessionInput)(unsafe.Pointer(pIn)).FiNext+nByte >= (*SessionInput)(unsafe.Pointer(pIn)).FnData && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 4)) = sessions_strm_chunk_size
+
+ if (*SessionInput)(unsafe.Pointer(pIn)).FbNoDiscard == 0 {
+ sessionDiscardData(tls, pIn)
+ }
+ if SQLITE_OK == sessionBufferGrow(tls, pIn+32, int64(*(*int32)(unsafe.Pointer(bp + 4))), bp) {
+ *(*int32)(unsafe.Pointer(bp)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*SessionInput)(unsafe.Pointer(pIn)).FxInput})).f(tls, (*SessionInput)(unsafe.Pointer(pIn)).FpIn, (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf+uintptr((*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf), bp+4)
+ if *(*int32)(unsafe.Pointer(bp + 4)) == 0 {
+ (*SessionInput)(unsafe.Pointer(pIn)).FbEof = 1
+ } else {
+ *(*int32)(unsafe.Pointer(pIn + 32 + 8)) += *(*int32)(unsafe.Pointer(bp + 4))
+ }
+ }
+
+ (*SessionInput)(unsafe.Pointer(pIn)).FaData = (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf
+ (*SessionInput)(unsafe.Pointer(pIn)).FnData = (*SessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sessionSkipRecord(tls *libc.TLS, ppRec uintptr, nCol int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var aRec uintptr = *(*uintptr)(unsafe.Pointer(ppRec))
+ var i int32
+ for i = 0; i < nCol; i++ {
+ var eType int32 = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&aRec, 1))))
+ if eType == SQLITE_TEXT || eType == SQLITE_BLOB {
+ aRec += uintptr(sessionVarintGet(tls, aRec, bp))
+ aRec += uintptr(*(*int32)(unsafe.Pointer(bp)))
+ } else if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ aRec += uintptr(8)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppRec)) = aRec
+}
+
+func sessionValueSetStr(tls *libc.TLS, pVal uintptr, aData uintptr, nData int32, enc U8) int32 {
+ var aCopy uintptr = Xsqlite3_malloc64(tls, uint64(Sqlite3_int64(nData)+int64(1)))
+ if aCopy == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memcpy_chk(tls, aCopy, aData, uint64(nData), libc.X__builtin_object_size(tls, aCopy, 0))
+ Xsqlite3ValueSetStr(tls, pVal, nData, aCopy, enc, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ return SQLITE_OK
+}
+
+func sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, apOut uintptr, pbEmpty uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var i int32
+ var rc int32 = SQLITE_OK
+
+ if pbEmpty != 0 {
+ *(*int32)(unsafe.Pointer(pbEmpty)) = 1
+ }
+ for i = 0; i < nCol && rc == SQLITE_OK; i++ {
+ var eType int32 = 0
+ if abPK != 0 && int32(*(*U8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 {
+ continue
+ }
+ rc = sessionInputBuffer(tls, pIn, 9)
+ if rc == SQLITE_OK {
+ if (*SessionInput)(unsafe.Pointer(pIn)).FiNext >= (*SessionInput)(unsafe.Pointer(pIn)).FnData {
+ rc = Xsqlite3CorruptError(tls, 219078)
+ } else {
+ eType = int32(*(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pIn)).FaData + uintptr(libc.PostIncInt32(&(*SessionInput)(unsafe.Pointer(pIn)).FiNext, 1)))))
+
+ if eType != 0 {
+ if pbEmpty != 0 {
+ *(*int32)(unsafe.Pointer(pbEmpty)) = 0
+ }
+ *(*uintptr)(unsafe.Pointer(apOut + uintptr(i)*8)) = Xsqlite3ValueNew(tls, uintptr(0))
+ if !(int32(*(*uintptr)(unsafe.Pointer(apOut + uintptr(i)*8))) != 0) {
+ rc = SQLITE_NOMEM
+ }
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ var aVal uintptr = (*SessionInput)(unsafe.Pointer(pIn)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext)
+ if eType == SQLITE_TEXT || eType == SQLITE_BLOB {
+ *(*int32)(unsafe.Pointer(pIn + 8)) += sessionVarintGet(tls, aVal, bp)
+ rc = sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp)))
+ if rc == SQLITE_OK {
+ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*SessionInput)(unsafe.Pointer(pIn)).FnData-(*SessionInput)(unsafe.Pointer(pIn)).FiNext {
+ rc = Xsqlite3CorruptError(tls, 219098)
+ } else {
+ var enc U8 = func() uint8 {
+ if eType == SQLITE_TEXT {
+ return uint8(SQLITE_UTF8)
+ }
+ return uint8(0)
+ }()
+ rc = sessionValueSetStr(tls, *(*uintptr)(unsafe.Pointer(apOut + uintptr(i)*8)), (*SessionInput)(unsafe.Pointer(pIn)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext), *(*int32)(unsafe.Pointer(bp)), enc)
+ *(*int32)(unsafe.Pointer(pIn + 8)) += *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ }
+ if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 16)) = sessionGetI64(tls, aVal)
+ if eType == SQLITE_INTEGER {
+ Xsqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(apOut + uintptr(i)*8)), *(*Sqlite3_int64)(unsafe.Pointer(bp + 16)))
+ } else {
+ libc.X__builtin___memcpy_chk(tls, bp+8, bp+16, uint64(8), libc.X__builtin_object_size(tls, bp+8, 0))
+ Xsqlite3VdbeMemSetDouble(tls, *(*uintptr)(unsafe.Pointer(apOut + uintptr(i)*8)), *(*float64)(unsafe.Pointer(bp + 8)))
+ }
+ *(*int32)(unsafe.Pointer(pIn + 8)) += 8
+ }
+ }
+ }
+
+ return rc
+}
+
+func sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var nRead int32 = 0
+
+ rc = sessionInputBuffer(tls, pIn, 9)
+ if rc == SQLITE_OK {
+ nRead = nRead + sessionVarintGet(tls, (*SessionInput)(unsafe.Pointer(pIn)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext+nRead), bp)
+
+ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > 65536 {
+ rc = Xsqlite3CorruptError(tls, 219152)
+ } else {
+ rc = sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+100)
+ nRead = nRead + *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+
+ for rc == SQLITE_OK {
+ for (*SessionInput)(unsafe.Pointer(pIn)).FiNext+nRead < (*SessionInput)(unsafe.Pointer(pIn)).FnData && *(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pIn)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext+nRead))) != 0 {
+ nRead++
+ }
+ if (*SessionInput)(unsafe.Pointer(pIn)).FiNext+nRead < (*SessionInput)(unsafe.Pointer(pIn)).FnData {
+ break
+ }
+ rc = sessionInputBuffer(tls, pIn, nRead+100)
+ }
+ *(*int32)(unsafe.Pointer(pnByte)) = nRead + 1
+ return rc
+}
+
+func sessionChangesetBufferRecord(tls *libc.TLS, pIn uintptr, nCol int32, pnByte uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+ var nByte int32 = 0
+ var i int32
+ for i = 0; rc == SQLITE_OK && i < nCol; i++ {
+ var eType int32
+ rc = sessionInputBuffer(tls, pIn, nByte+10)
+ if rc == SQLITE_OK {
+ eType = int32(*(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pIn)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext+libc.PostIncInt32(&nByte, 1)))))
+ if eType == SQLITE_TEXT || eType == SQLITE_BLOB {
+ nByte = nByte + sessionVarintGet(tls, (*SessionInput)(unsafe.Pointer(pIn)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pIn)).FiNext+nByte), bp)
+ nByte = nByte + *(*int32)(unsafe.Pointer(bp))
+ rc = sessionInputBuffer(tls, pIn, nByte)
+ } else if eType == SQLITE_INTEGER || eType == SQLITE_FLOAT {
+ nByte = nByte + 8
+ }
+ }
+ }
+ *(*int32)(unsafe.Pointer(pnByte)) = nByte
+ return rc
+}
+
+func sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp + 4)) = sessionChangesetBufferTblhdr(tls, p, bp)
+ if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK {
+ var nByte int32
+ var nVarint int32
+ nVarint = sessionVarintGet(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData+uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext), p+120)
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol > 0 {
+ *(*int32)(unsafe.Pointer(bp)) -= nVarint
+ *(*int32)(unsafe.Pointer(p + 8)) += nVarint
+ nByte = int32(uint64((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*uint64(unsafe.Sizeof(uintptr(0)))*uint64(2) + uint64(*(*int32)(unsafe.Pointer(bp))))
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0
+ sessionBufferGrow(tls, p+72, int64(nByte), bp+4)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 4)) = Xsqlite3CorruptError(tls, 219240)
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK {
+ var iPK Size_t = uint64(unsafe.Sizeof(uintptr(0))) * uint64((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol) * uint64(2)
+ libc.X__builtin___memset_chk(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf, 0, iPK, libc.X__builtin_object_size(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf, 0))
+ libc.X__builtin___memcpy_chk(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf+uintptr(iPK), (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData+uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext), uint64(*(*int32)(unsafe.Pointer(bp))), libc.X__builtin_object_size(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf+uintptr(iPK), 0))
+ *(*int32)(unsafe.Pointer(p + 8)) += *(*int32)(unsafe.Pointer(bp))
+ }
+
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue == uintptr(0) {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK = uintptr(0)
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab = uintptr(0)
+ } else {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol*2)*8
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab = func() uintptr {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK != 0 {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)
+ }
+ return uintptr(0)
+ }()
+ }
+ return libc.AssignPtrInt32(p+100, *(*int32)(unsafe.Pointer(bp + 4)))
+}
+
+func sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uintptr, pbNew uintptr, pbEmpty uintptr) int32 {
+ var i int32
+ var op U8
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue != 0 {
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol*2; i++ {
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)))
+ }
+ libc.X__builtin___memset_chk(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*uint64(2), libc.X__builtin_object_size(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue, 0))
+ }
+
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = sessionInputBuffer(tls, p, 2)
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData {
+ return SQLITE_DONE
+ }
+
+ sessionDiscardData(tls, p)
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext
+
+ op = *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(libc.PostIncInt32(&(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext, 1))))
+ for int32(op) == 'T' || int32(op) == 'P' {
+ if pbNew != 0 {
+ *(*int32)(unsafe.Pointer(pbNew)) = 1
+ }
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset = libc.Bool32(int32(op) == 'P')
+ if sessionChangesetReadTblhdr(tls, p) != 0 {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+ if libc.AssignPtrInt32(p+100, sessionInputBuffer(tls, p, 2)) != 0 {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData {
+ return SQLITE_DONE
+ }
+ op = *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(libc.PostIncInt32(&(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext, 1))))
+ }
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 {
+ return libc.AssignPtrInt32(p+100, Xsqlite3CorruptError(tls, 219326))
+ }
+
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop = int32(op)
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(libc.PostIncInt32(&(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext, 1)))))
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != SQLITE_UPDATE && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != SQLITE_DELETE && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != SQLITE_INSERT {
+ return libc.AssignPtrInt32(p+100, Xsqlite3CorruptError(tls, 219332))
+ }
+
+ if paRec != 0 {
+ var nVal int32
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset == 0 && int32(op) == SQLITE_UPDATE {
+ nVal = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol * 2
+ } else if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && int32(op) == SQLITE_DELETE {
+ nVal = 0
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 {
+ nVal++
+ }
+ }
+ } else {
+ nVal = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol
+ }
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = sessionChangesetBufferRecord(tls, p, nVal, pnRec)
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+ *(*uintptr)(unsafe.Pointer(paRec)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext)
+ *(*int32)(unsafe.Pointer(p + 8)) += *(*int32)(unsafe.Pointer(pnRec))
+ } else {
+ var apOld uintptr = func() uintptr {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8
+ }
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue
+ }()
+ var apNew uintptr = func() uintptr {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue
+ }
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8
+ }()
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != SQLITE_INSERT && ((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset == 0 || (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop == SQLITE_DELETE) {
+ var abPK uintptr
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 {
+ abPK = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK
+ } else {
+ abPK = uintptr(0)
+ }
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = sessionReadRecord(tls, p, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol, abPK, apOld, uintptr(0))
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+ }
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != SQLITE_DELETE {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = sessionReadRecord(tls, p, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol, uintptr(0), apNew, pbEmpty)
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ }
+ }
+
+ if ((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 || (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0) && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop == SQLITE_UPDATE {
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 {
+ *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8))
+ if *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) {
+ return libc.AssignPtrInt32(p+100, Xsqlite3CorruptError(tls, 219376))
+ }
+ *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) = uintptr(0)
+ }
+ }
+ } else if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop == SQLITE_INSERT {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop = SQLITE_DELETE
+ } else if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop == SQLITE_DELETE {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop = SQLITE_INSERT
+ }
+ }
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset == 0 && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fop == SQLITE_UPDATE {
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol; i++ {
+ if int32(*(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i)))) == 0 && *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) == uintptr(0) {
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = uintptr(0)
+ }
+ }
+ }
+ }
+
+ return SQLITE_ROW
+}
+
+func sessionChangesetNext(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uintptr, pbNew uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32
+ for __ccgo := true; __ccgo; __ccgo = rc == SQLITE_ROW && (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FbSkipEmpty != 0 && *(*int32)(unsafe.Pointer(bp)) != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ rc = sessionChangesetNextOne(tls, p, paRec, pnRec, pbNew, bp)
+ }
+ return rc
+}
+
+// Advance an iterator created by sqlite3changeset_start() to the next
+// change in the changeset. This function may return SQLITE_ROW, SQLITE_DONE
+// or SQLITE_CORRUPT.
+//
+// This function may not be called on iterators passed to a conflict handler
+// callback by changeset_apply().
+func Xsqlite3changeset_next(tls *libc.TLS, p uintptr) int32 {
+ return sessionChangesetNext(tls, p, uintptr(0), uintptr(0), uintptr(0))
+}
+
+// The following function extracts information on the current change
+// from a changeset iterator. It may only be called after changeset_next()
+// has returned SQLITE_ROW.
+func Xsqlite3changeset_op(tls *libc.TLS, pIter uintptr, pzTab uintptr, pnCol uintptr, pOp uintptr, pbIndirect uintptr) int32 {
+ *(*int32)(unsafe.Pointer(pOp)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop
+ *(*int32)(unsafe.Pointer(pnCol)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol
+ *(*uintptr)(unsafe.Pointer(pzTab)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab
+ if pbIndirect != 0 {
+ *(*int32)(unsafe.Pointer(pbIndirect)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect
+ }
+ return SQLITE_OK
+}
+
+// Return information regarding the PRIMARY KEY and number of columns in
+// the database table affected by the change that pIter currently points
+// to. This function may only be called after changeset_next() returns
+// SQLITE_ROW.
+func Xsqlite3changeset_pk(tls *libc.TLS, pIter uintptr, pabPK uintptr, pnCol uintptr) int32 {
+ *(*uintptr)(unsafe.Pointer(pabPK)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK
+ if pnCol != 0 {
+ *(*int32)(unsafe.Pointer(pnCol)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol
+ }
+ return SQLITE_OK
+}
+
+// This function may only be called while the iterator is pointing to an
+// SQLITE_UPDATE or SQLITE_DELETE change (see sqlite3changeset_op()).
+// Otherwise, SQLITE_MISUSE is returned.
+//
+// It sets *ppValue to point to an sqlite3_value structure containing the
+// iVal'th value in the old.* record. Or, if that particular value is not
+// included in the record (because the change is an UPDATE and the field
+// was not modified and is not a PK column), set *ppValue to NULL.
+//
+// If value iVal is out-of-range, SQLITE_RANGE is returned and *ppValue is
+// not modified. Otherwise, SQLITE_OK.
+func Xsqlite3changeset_old(tls *libc.TLS, pIter uintptr, iVal int32, ppValue uintptr) int32 {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop != SQLITE_UPDATE && (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop != SQLITE_DELETE {
+ return SQLITE_MISUSE
+ }
+ if iVal < 0 || iVal >= (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol {
+ return SQLITE_RANGE
+ }
+ *(*uintptr)(unsafe.Pointer(ppValue)) = *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(iVal)*8))
+ return SQLITE_OK
+}
+
+// This function may only be called while the iterator is pointing to an
+// SQLITE_UPDATE or SQLITE_INSERT change (see sqlite3changeset_op()).
+// Otherwise, SQLITE_MISUSE is returned.
+//
+// It sets *ppValue to point to an sqlite3_value structure containing the
+// iVal'th value in the new.* record. Or, if that particular value is not
+// included in the record (because the change is an UPDATE and the field
+// was not modified), set *ppValue to NULL.
+//
+// If value iVal is out-of-range, SQLITE_RANGE is returned and *ppValue is
+// not modified. Otherwise, SQLITE_OK.
+func Xsqlite3changeset_new(tls *libc.TLS, pIter uintptr, iVal int32, ppValue uintptr) int32 {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop != SQLITE_UPDATE && (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop != SQLITE_INSERT {
+ return SQLITE_MISUSE
+ }
+ if iVal < 0 || iVal >= (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol {
+ return SQLITE_RANGE
+ }
+ *(*uintptr)(unsafe.Pointer(ppValue)) = *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+iVal)*8))
+ return SQLITE_OK
+}
+
+// This function may only be called with a changeset iterator that has been
+// passed to an SQLITE_CHANGESET_DATA or SQLITE_CHANGESET_CONFLICT
+// conflict-handler function. Otherwise, SQLITE_MISUSE is returned.
+//
+// If successful, *ppValue is set to point to an sqlite3_value structure
+// containing the iVal'th value of the conflicting record.
+//
+// If value iVal is out-of-range or some other error occurs, an SQLite error
+// code is returned. Otherwise, SQLITE_OK.
+func Xsqlite3changeset_conflict(tls *libc.TLS, pIter uintptr, iVal int32, ppValue uintptr) int32 {
+ if !(int32((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict) != 0) {
+ return SQLITE_MISUSE
+ }
+ if iVal < 0 || iVal >= (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol {
+ return SQLITE_RANGE
+ }
+ *(*uintptr)(unsafe.Pointer(ppValue)) = Xsqlite3_column_value(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict, iVal)
+ return SQLITE_OK
+}
+
+// This function may only be called with an iterator passed to an
+// SQLITE_CHANGESET_FOREIGN_KEY conflict handler callback. In this case
+// it sets the output variable to the total number of known foreign key
+// violations in the destination database and returns SQLITE_OK.
+//
+// In all other cases this function returns SQLITE_MISUSE.
+func Xsqlite3changeset_fk_conflicts(tls *libc.TLS, pIter uintptr, pnOut uintptr) int32 {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict != 0 || (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue != 0 {
+ return SQLITE_MISUSE
+ }
+ *(*int32)(unsafe.Pointer(pnOut)) = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol
+ return SQLITE_OK
+}
+
+// Finalize an iterator allocated with sqlite3changeset_start().
+//
+// This function may not be called on iterators passed to a conflict handler
+// callback by changeset_apply().
+func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 {
+ var i int32
+ rc = (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Frc
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue != 0 {
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol*2; i++ {
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)))
+ }
+ }
+ Xsqlite3_free(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FaBuf)
+ Xsqlite3_free(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.Fbuf.FaBuf)
+ Xsqlite3_free(tls, p)
+ }
+ return rc
+}
+
+func sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var abPK uintptr
+ var apVal uintptr
+
+ var nVar int32
+
+ var bIndirect int32
+ var eType2 int32
+ var pVal uintptr
+ var pVal1 uintptr
+ var iCol int32
+ var eType U8
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp + 20)) = 0
+ abPK = uintptr(0)
+ apVal = uintptr(0)
+ *(*SessionBuffer)(unsafe.Pointer(bp + 24)) = SessionBuffer{}
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(SessionBuffer{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ if !(ppInverted != 0) {
+ goto __1
+ }
+ *(*uintptr)(unsafe.Pointer(ppInverted)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnInverted)) = 0
+__1:
+ ;
+__2:
+ if !(1 != 0) {
+ goto __3
+ }
+
+ if !(libc.AssignPtrInt32(bp+40, sessionInputBuffer(tls, pInput, 2)) != 0) {
+ goto __4
+ }
+ goto finished_invert
+__4:
+ ;
+ if !((*SessionInput)(unsafe.Pointer(pInput)).FiNext >= (*SessionInput)(unsafe.Pointer(pInput)).FnData) {
+ goto __5
+ }
+ goto __3
+__5:
+ ;
+ eType = *(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pInput)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext)))
+
+ switch int32(eType) {
+ case 'T':
+ goto __7
+
+ case SQLITE_INSERT:
+ goto __8
+ case SQLITE_DELETE:
+ goto __9
+
+ case SQLITE_UPDATE:
+ goto __10
+
+ default:
+ goto __11
+ }
+ goto __6
+__7:
+ (*SessionInput)(unsafe.Pointer(pInput)).FiNext++
+ if !(libc.AssignPtrInt32(bp+40, sessionChangesetBufferTblhdr(tls, pInput, bp+16)) != 0) {
+ goto __12
+ }
+ goto finished_invert
+__12:
+ ;
+ nVar = sessionVarintGet(tls, (*SessionInput)(unsafe.Pointer(pInput)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext), bp+20)
+ (*SessionBuffer)(unsafe.Pointer(bp + 24)).FnBuf = 0
+ sessionAppendBlob(tls, bp+24, (*SessionInput)(unsafe.Pointer(pInput)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext+nVar), *(*int32)(unsafe.Pointer(bp + 20)), bp+40)
+ sessionAppendByte(tls, bp, eType, bp+40)
+ sessionAppendBlob(tls, bp, (*SessionInput)(unsafe.Pointer(pInput)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext), *(*int32)(unsafe.Pointer(bp + 16)), bp+40)
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) != 0) {
+ goto __13
+ }
+ goto finished_invert
+__13:
+ ;
+ *(*int32)(unsafe.Pointer(pInput + 8)) += *(*int32)(unsafe.Pointer(bp + 16))
+ Xsqlite3_free(tls, apVal)
+ apVal = uintptr(0)
+ abPK = (*SessionBuffer)(unsafe.Pointer(bp + 24)).FaBuf
+ goto __6
+
+__8:
+__9:
+ bIndirect = int32(*(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pInput)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext+1))))
+ eType2 = func() int32 {
+ if int32(eType) == SQLITE_DELETE {
+ return SQLITE_INSERT
+ }
+ return SQLITE_DELETE
+ }()
+ *(*int32)(unsafe.Pointer(pInput + 8)) += 2
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionChangesetBufferRecord(tls, pInput, *(*int32)(unsafe.Pointer(bp + 20)), bp+44)
+ sessionAppendByte(tls, bp, uint8(eType2), bp+40)
+ sessionAppendByte(tls, bp, uint8(bIndirect), bp+40)
+ sessionAppendBlob(tls, bp, (*SessionInput)(unsafe.Pointer(pInput)).FaData+uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext), *(*int32)(unsafe.Pointer(bp + 44)), bp+40)
+ *(*int32)(unsafe.Pointer(pInput + 8)) += *(*int32)(unsafe.Pointer(bp + 44))
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) != 0) {
+ goto __14
+ }
+ goto finished_invert
+__14:
+ ;
+ goto __6
+
+__10:
+ if !(uintptr(0) == apVal) {
+ goto __15
+ }
+ apVal = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(uintptr(0)))*uint64(*(*int32)(unsafe.Pointer(bp + 20)))*uint64(2))
+ if !(uintptr(0) == apVal) {
+ goto __16
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_NOMEM
+ goto finished_invert
+__16:
+ ;
+ libc.X__builtin___memset_chk(tls, apVal, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(*(*int32)(unsafe.Pointer(bp + 20)))*uint64(2), libc.X__builtin_object_size(tls, apVal, 0))
+__15:
+ ;
+ sessionAppendByte(tls, bp, eType, bp+40)
+ sessionAppendByte(tls, bp, *(*U8)(unsafe.Pointer((*SessionInput)(unsafe.Pointer(pInput)).FaData + uintptr((*SessionInput)(unsafe.Pointer(pInput)).FiNext+1))), bp+40)
+
+ *(*int32)(unsafe.Pointer(pInput + 8)) += 2
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionReadRecord(tls, pInput, *(*int32)(unsafe.Pointer(bp + 20)), uintptr(0), apVal, uintptr(0))
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK) {
+ goto __17
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = sessionReadRecord(tls, pInput, *(*int32)(unsafe.Pointer(bp + 20)), uintptr(0), apVal+uintptr(*(*int32)(unsafe.Pointer(bp + 20)))*8, uintptr(0))
+__17:
+ ;
+ iCol = 0
+__18:
+ if !(iCol < *(*int32)(unsafe.Pointer(bp + 20))) {
+ goto __20
+ }
+ pVal = *(*uintptr)(unsafe.Pointer(apVal + uintptr(iCol+func() int32 {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(iCol))) != 0 {
+ return 0
+ }
+ return *(*int32)(unsafe.Pointer(bp + 20))
+ }())*8))
+ sessionAppendValue(tls, bp, pVal, bp+40)
+ goto __19
+__19:
+ iCol++
+ goto __18
+ goto __20
+__20:
+ ;
+ iCol = 0
+__21:
+ if !(iCol < *(*int32)(unsafe.Pointer(bp + 20))) {
+ goto __23
+ }
+ pVal1 = func() uintptr {
+ if *(*U8)(unsafe.Pointer(abPK + uintptr(iCol))) != 0 {
+ return uintptr(0)
+ }
+ return *(*uintptr)(unsafe.Pointer(apVal + uintptr(iCol)*8))
+ }()
+ sessionAppendValue(tls, bp, pVal1, bp+40)
+ goto __22
+__22:
+ iCol++
+ goto __21
+ goto __23
+__23:
+ ;
+ iCol = 0
+__24:
+ if !(iCol < *(*int32)(unsafe.Pointer(bp + 20))*2) {
+ goto __26
+ }
+ Xsqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(iCol)*8)))
+ goto __25
+__25:
+ iCol++
+ goto __24
+ goto __26
+__26:
+ ;
+ libc.X__builtin___memset_chk(tls, apVal, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(*(*int32)(unsafe.Pointer(bp + 20)))*uint64(2), libc.X__builtin_object_size(tls, apVal, 0))
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK) {
+ goto __27
+ }
+ goto finished_invert
+__27:
+ ;
+ goto __6
+
+__11:
+ *(*int32)(unsafe.Pointer(bp + 40)) = Xsqlite3CorruptError(tls, 219741)
+ goto finished_invert
+__6:
+ ;
+ if !(xOutput != 0 && (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf >= sessions_strm_chunk_size) {
+ goto __28
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf)
+ (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf = 0
+ if !(*(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK) {
+ goto __29
+ }
+ goto finished_invert
+__29:
+ ;
+__28:
+ ;
+ goto __2
+__3:
+ ;
+ if !(pnInverted != 0 && ppInverted != 0) {
+ goto __30
+ }
+ *(*int32)(unsafe.Pointer(pnInverted)) = (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf
+ *(*uintptr)(unsafe.Pointer(ppInverted)) = (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf
+ (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf = uintptr(0)
+ goto __31
+__30:
+ if !((*SessionBuffer)(unsafe.Pointer(bp)).FnBuf > 0 && xOutput != uintptr(0)) {
+ goto __32
+ }
+ *(*int32)(unsafe.Pointer(bp + 40)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf)
+__32:
+ ;
+__31:
+ ;
+finished_invert:
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf)
+ Xsqlite3_free(tls, apVal)
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp+24)).FaBuf)
+ return *(*int32)(unsafe.Pointer(bp + 40))
+}
+
+// Invert a changeset object.
+func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintptr, pnInverted uintptr, ppInverted uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(SessionInput{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*SessionInput)(unsafe.Pointer(bp)).FnData = nChangeset
+ (*SessionInput)(unsafe.Pointer(bp)).FaData = pChangeset
+
+ return sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted)
+}
+
+// Streaming version of sqlite3changeset_invert().
+func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var rc int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(SessionInput{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*SessionInput)(unsafe.Pointer(bp)).FxInput = xInput
+ (*SessionInput)(unsafe.Pointer(bp)).FpIn = pIn
+
+ rc = sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0))
+ Xsqlite3_free(tls, (*SessionInput)(unsafe.Pointer(bp)).Fbuf.FaBuf)
+ return rc
+}
+
+type SessionUpdate1 = struct {
+ FpStmt uintptr
+ FaMask uintptr
+ FpNext uintptr
+}
+
+type SessionUpdate = SessionUpdate1
+
+type SessionApplyCtx1 = struct {
+ Fdb uintptr
+ FpDelete uintptr
+ FpInsert uintptr
+ FpSelect uintptr
+ FnCol int32
+ F__ccgo_pad1 [4]byte
+ FazCol uintptr
+ FabPK uintptr
+ FaUpdateMask uintptr
+ FpUp uintptr
+ FbStat1 int32
+ FbDeferConstraints int32
+ FbInvertConstraints int32
+ F__ccgo_pad2 [4]byte
+ Fconstraints SessionBuffer
+ Frebase SessionBuffer
+ FbRebaseStarted U8
+ FbRebase U8
+ F__ccgo_pad3 [6]byte
+}
+
+type SessionApplyCtx = SessionApplyCtx1
+
+func sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32, ppStmt uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ var pUp uintptr = uintptr(0)
+ var nCol int32 = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol
+ var nU32 int32 = ((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol + 33) / 32
+ var ii int32
+
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask == uintptr(0) {
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask = Xsqlite3_malloc(tls, int32(uint64(nU32)*uint64(unsafe.Sizeof(U32(0)))))
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_NOMEM
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, 0, uint64(nU32)*uint64(unsafe.Sizeof(U32(0))), libc.X__builtin_object_size(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, 0))
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_CORRUPT
+ for ii = 0; ii < (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol; ii++ {
+ if *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 {
+ *(*U32)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask + uintptr(ii/32)*4)) |= U32(int32(1) << (ii % 32))
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ if bPatchset != 0 {
+ *(*U32)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask + uintptr(nCol/32)*4)) |= U32(int32(1) << (nCol % 32))
+ }
+
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp != 0 {
+ var nUp int32 = 0
+ var pp uintptr = p + 64
+ for 1 != 0 {
+ nUp++
+ if 0 == libc.Xmemcmp(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, (*SessionUpdate)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaMask, uint64(nU32)*uint64(unsafe.Sizeof(U32(0)))) {
+ pUp = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = (*SessionUpdate)(unsafe.Pointer(pUp)).FpNext
+ (*SessionUpdate)(unsafe.Pointer(pUp)).FpNext = (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp = pUp
+ break
+ }
+
+ if (*SessionUpdate)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext != 0 {
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 16
+ } else {
+ if nUp >= SESSION_UPDATE_CACHE_SZ {
+ Xsqlite3_finalize(tls, (*SessionUpdate)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpStmt)
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pp)))
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ }
+ break
+ }
+ }
+ }
+
+ if pUp == uintptr(0) {
+ var nByte int32 = int32(uint64(unsafe.Sizeof(SessionUpdate{})) * uint64(nU32) * uint64(unsafe.Sizeof(U32(0))))
+ var bStat1 int32 = libc.Bool32(Xsqlite3_stricmp(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, ts+11751) == 0)
+ pUp = Xsqlite3_malloc(tls, nByte)
+ if pUp == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_NOMEM
+ } else {
+ var zSep uintptr = ts + 1547
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(SessionBuffer{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*SessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24
+ libc.X__builtin___memcpy_chk(tls, (*SessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(unsafe.Sizeof(U32(0))), libc.X__builtin_object_size(tls, (*SessionUpdate)(unsafe.Pointer(pUp)).FaMask, 0))
+
+ sessionAppendStr(tls, bp, ts+33363, bp+16)
+ sessionAppendIdent(tls, bp, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp+16)
+ sessionAppendStr(tls, bp, ts+33376, bp+16)
+
+ for ii = 0; ii < (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol; ii++ {
+ if int32(*(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 {
+ sessionAppendStr(tls, bp, zSep, bp+16)
+ sessionAppendIdent(tls, bp, *(*uintptr)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp+16)
+ sessionAppendStr(tls, bp, ts+33382, bp+16)
+ sessionAppendInteger(tls, bp, ii*2+1, bp+16)
+ zSep = ts + 15017
+ }
+ }
+
+ zSep = ts + 1547
+ sessionAppendStr(tls, bp, ts+33311, bp+16)
+ for ii = 0; ii < (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol; ii++ {
+ if *(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 {
+ sessionAppendStr(tls, bp, zSep, bp+16)
+ if bStat1 != 0 && ii == 1 {
+ sessionAppendStr(tls, bp,
+ ts+33387, bp+16)
+ } else {
+ sessionAppendIdent(tls, bp, *(*uintptr)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp+16)
+ sessionAppendStr(tls, bp, ts+33319, bp+16)
+ sessionAppendInteger(tls, bp, ii*2+2, bp+16)
+ }
+ zSep = ts + 21975
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ var zSql uintptr = (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_prepare_v2(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).Fdb, zSql, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf, pUp, uintptr(0))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK {
+ Xsqlite3_free(tls, pUp)
+ pUp = uintptr(0)
+ } else {
+ (*SessionUpdate)(unsafe.Pointer(pUp)).FpNext = (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp = pUp
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf)
+ }
+ }
+ }
+
+ if pUp != 0 {
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = (*SessionUpdate)(unsafe.Pointer(pUp)).FpStmt
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func sessionUpdateFree(tls *libc.TLS, p uintptr) {
+ var pUp uintptr
+ var pNext uintptr
+ for pUp = (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp; pUp != 0; pUp = pNext {
+ pNext = (*SessionUpdate)(unsafe.Pointer(pUp)).FpNext
+ Xsqlite3_finalize(tls, (*SessionUpdate)(unsafe.Pointer(pUp)).FpStmt)
+ Xsqlite3_free(tls, pUp)
+ }
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FpUp = uintptr(0)
+ Xsqlite3_free(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask)
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask = uintptr(0)
+}
+
+func sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var i int32
+ var zSep uintptr = ts + 1547
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ *(*SessionBuffer)(unsafe.Pointer(bp)) = SessionBuffer{}
+ var nPk int32 = 0
+
+ sessionAppendStr(tls, bp, ts+33462, bp+16)
+ sessionAppendIdent(tls, bp, zTab, bp+16)
+ sessionAppendStr(tls, bp, ts+33311, bp+16)
+
+ for i = 0; i < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 {
+ nPk++
+ sessionAppendStr(tls, bp, zSep, bp+16)
+ sessionAppendIdent(tls, bp, *(*uintptr)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp+16)
+ sessionAppendStr(tls, bp, ts+33382, bp+16)
+ sessionAppendInteger(tls, bp, i+1, bp+16)
+ zSep = ts + 21975
+ }
+ }
+
+ if nPk < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol {
+ sessionAppendStr(tls, bp, ts+33480, bp+16)
+ sessionAppendInteger(tls, bp, (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol+1, bp+16)
+ sessionAppendStr(tls, bp, ts+33023, bp+16)
+
+ zSep = ts + 1547
+ for i = 0; i < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol; i++ {
+ if !(int32(*(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i)))) != 0) {
+ sessionAppendStr(tls, bp, zSep, bp+16)
+ sessionAppendIdent(tls, bp, *(*uintptr)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp+16)
+ sessionAppendStr(tls, bp, ts+33319, bp+16)
+ sessionAppendInteger(tls, bp, i+1, bp+16)
+ zSep = ts + 33488
+ }
+ }
+ sessionAppendStr(tls, bp, ts+5360, bp+16)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_prepare_v2(tls, db, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf, p+8, uintptr(0))
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf)
+
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) int32 {
+ return sessionSelectStmt(tls,
+ db, ts+6844, zTab, (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*SessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*SessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24)
+}
+
+func sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ var i int32
+ *(*SessionBuffer)(unsafe.Pointer(bp)) = SessionBuffer{}
+
+ sessionAppendStr(tls, bp, ts+33493, bp+16)
+ sessionAppendIdent(tls, bp, zTab, bp+16)
+ sessionAppendStr(tls, bp, ts+21981, bp+16)
+ for i = 0; i < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol; i++ {
+ if i != 0 {
+ sessionAppendStr(tls, bp, ts+15017, bp+16)
+ }
+ sessionAppendIdent(tls, bp, *(*uintptr)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp+16)
+ }
+
+ sessionAppendStr(tls, bp, ts+33511, bp+16)
+ for i = 1; i < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol; i++ {
+ sessionAppendStr(tls, bp, ts+33522, bp+16)
+ }
+ sessionAppendStr(tls, bp, ts+5360, bp+16)
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_prepare_v2(tls, db, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf, p+16, uintptr(0))
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf)
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) int32 {
+ return Xsqlite3_prepare_v2(tls, db, zSql, -1, pp, uintptr(0))
+}
+
+func sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) int32 {
+ var rc int32 = sessionSelectRow(tls, db, ts+11751, p)
+ if rc == SQLITE_OK {
+ rc = sessionPrepare(tls, db, p+16,
+ ts+33526)
+ }
+ if rc == SQLITE_OK {
+ rc = sessionPrepare(tls, db, p+8,
+ ts+33639)
+ }
+ return rc
+}
+
+func sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) int32 {
+ var eType int32 = Xsqlite3_value_type(tls, pVal)
+
+ if (eType == SQLITE_TEXT || eType == SQLITE_BLOB) && (*Sqlite3_value)(unsafe.Pointer(pVal)).Fz == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ return Xsqlite3_bind_value(tls, pStmt, i, pVal)
+}
+
+func sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var i int32
+ var rc int32 = SQLITE_OK
+
+ for i = 0; rc == SQLITE_OK && i < nCol; i++ {
+ if !(abPK != 0) || *(*U8)(unsafe.Pointer(abPK + uintptr(i))) != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xValue})).f(tls, pIter, i, bp)
+ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) {
+ rc = Xsqlite3CorruptError(tls, 220219)
+ } else {
+ rc = sessionBindValue(tls, pStmt, i+1, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ }
+ return rc
+}
+
+func sessionSeekToRow(tls *libc.TLS, pIter uintptr, abPK uintptr, pSelect uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+
+ Xsqlite3changeset_op(tls, pIter, bp, bp+8, bp+12, uintptr(0))
+ rc = sessionBindRow(tls, pIter,
+ func() uintptr {
+ if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_INSERT {
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{Xsqlite3changeset_new}))
+ }
+ return *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{Xsqlite3changeset_old}))
+ }(),
+ *(*int32)(unsafe.Pointer(bp + 8)), abPK, pSelect)
+
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_step(tls, pSelect)
+ if rc != SQLITE_ROW {
+ rc = Xsqlite3_reset(tls, pSelect)
+ }
+ }
+
+ return rc
+}
+
+func sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FbRebase != 0 {
+ var i int32
+ var eOp int32 = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop
+ if int32((*SessionApplyCtx)(unsafe.Pointer(p)).FbRebaseStarted) == 0 {
+ var zTab uintptr = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab
+ sessionAppendByte(tls, p+104, uint8('T'), bp)
+ sessionAppendVarint(tls, p+104, (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol, bp)
+ sessionAppendBlob(tls, p+104, (*SessionApplyCtx)(unsafe.Pointer(p)).FabPK, (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol, bp)
+ sessionAppendBlob(tls, p+104, zTab, int32(libc.Xstrlen(tls, zTab))+1, bp)
+ (*SessionApplyCtx)(unsafe.Pointer(p)).FbRebaseStarted = U8(1)
+ }
+
+ sessionAppendByte(tls, p+104,
+ func() uint8 {
+ if eOp == SQLITE_DELETE {
+ return uint8(SQLITE_DELETE)
+ }
+ return uint8(SQLITE_INSERT)
+ }(), bp)
+ sessionAppendByte(tls, p+104, uint8(libc.Bool32(eType == SQLITE_CHANGESET_REPLACE)), bp)
+ for i = 0; i < (*SessionApplyCtx)(unsafe.Pointer(p)).FnCol; i++ {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ if eOp == SQLITE_DELETE || eOp == SQLITE_UPDATE && *(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 {
+ Xsqlite3changeset_old(tls, pIter, i, bp+8)
+ } else {
+ Xsqlite3changeset_new(tls, pIter, i, bp+8)
+ }
+ sessionAppendValue(tls, p+104, *(*uintptr)(unsafe.Pointer(bp + 8)), bp)
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var res int32 = 0
+
+ Xsqlite3changeset_op(tls, pIter, bp, bp+8, bp+12, uintptr(0))
+
+ if pbReplace != 0 {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sessionSeekToRow(tls, pIter, (*SessionApplyCtx)(unsafe.Pointer(p)).FabPK, (*SessionApplyCtx)(unsafe.Pointer(p)).FpSelect)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_ROW {
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*SessionApplyCtx)(unsafe.Pointer(p)).FpSelect
+ res = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xConflict})).f(tls, pCtx, eType, pIter)
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_reset(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpSelect)
+ } else if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FbDeferConstraints != 0 && eType == SQLITE_CHANGESET_CONFLICT {
+ var aBlob uintptr = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent)
+ var nBlob int32 = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent
+ sessionAppendBlob(tls, p+88, aBlob, nBlob, bp+16)
+ return SQLITE_OK
+ } else {
+ res = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xConflict})).f(tls, pCtx, eType+1, pIter)
+ if res == SQLITE_CHANGESET_REPLACE {
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_MISUSE
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ switch res {
+ case SQLITE_CHANGESET_REPLACE:
+ *(*int32)(unsafe.Pointer(pbReplace)) = 1
+ break
+ fallthrough
+
+ case SQLITE_CHANGESET_OMIT:
+ break
+ fallthrough
+
+ case SQLITE_CHANGESET_ABORT:
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_ABORT
+ break
+ fallthrough
+
+ default:
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_MISUSE
+ break
+ }
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sessionRebaseAdd(tls, p, res, pIter)
+ }
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32 = SQLITE_OK
+
+ Xsqlite3changeset_op(tls, pIter, bp, bp+8, bp+12, uintptr(0))
+
+ if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_DELETE {
+ var abPK uintptr = func() uintptr {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 {
+ return (*SessionApplyCtx)(unsafe.Pointer(p)).FabPK
+ }
+ return uintptr(0)
+ }()
+ rc = sessionBindRow(tls, pIter, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{Xsqlite3changeset_old})), *(*int32)(unsafe.Pointer(bp + 8)), abPK, (*SessionApplyCtx)(unsafe.Pointer(p)).FpDelete)
+ if rc == SQLITE_OK && Xsqlite3_bind_parameter_count(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpDelete) > *(*int32)(unsafe.Pointer(bp + 8)) {
+ rc = Xsqlite3_bind_int(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpDelete, *(*int32)(unsafe.Pointer(bp + 8))+1, libc.Bool32(pbRetry == uintptr(0) || abPK != 0))
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ Xsqlite3_step(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpDelete)
+ rc = Xsqlite3_reset(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpDelete)
+ if rc == SQLITE_OK && Xsqlite3_changes(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 {
+ rc = sessionConflictHandler(tls,
+ SQLITE_CHANGESET_DATA, p, pIter, xConflict, pCtx, pbRetry)
+ } else if rc&0xff == SQLITE_CONSTRAINT {
+ rc = sessionConflictHandler(tls,
+ SQLITE_CHANGESET_CONFLICT, p, pIter, xConflict, pCtx, uintptr(0))
+ }
+
+ } else if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_UPDATE {
+ var i int32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var bPatchset int32 = libc.Bool32(pbRetry == uintptr(0) || (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0)
+
+ rc = sessionUpdateFind(tls, pIter, p, bPatchset, bp+16)
+
+ for i = 0; rc == SQLITE_OK && i < *(*int32)(unsafe.Pointer(bp + 8)); i++ {
+ var pOld uintptr = *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(i)*8))
+ var pNew uintptr = *(*uintptr)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+i)*8))
+ if *(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 || bPatchset == 0 && pOld != 0 {
+ rc = sessionBindValue(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), i*2+2, pOld)
+ }
+ if rc == SQLITE_OK && pNew != 0 {
+ rc = sessionBindValue(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), i*2+1, pNew)
+ }
+ }
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+
+ if rc == SQLITE_OK && Xsqlite3_changes(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 {
+ rc = sessionConflictHandler(tls,
+ SQLITE_CHANGESET_DATA, p, pIter, xConflict, pCtx, pbRetry)
+
+ } else if rc&0xff == SQLITE_CONSTRAINT {
+ rc = sessionConflictHandler(tls,
+ SQLITE_CHANGESET_CONFLICT, p, pIter, xConflict, pCtx, uintptr(0))
+ }
+
+ } else {
+ if (*SessionApplyCtx)(unsafe.Pointer(p)).FbStat1 != 0 {
+ rc = sessionSeekToRow(tls, pIter, (*SessionApplyCtx)(unsafe.Pointer(p)).FabPK, (*SessionApplyCtx)(unsafe.Pointer(p)).FpSelect)
+ if rc == SQLITE_ROW {
+ rc = SQLITE_CONSTRAINT
+ Xsqlite3_reset(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpSelect)
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = sessionBindRow(tls, pIter, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{Xsqlite3changeset_new})), *(*int32)(unsafe.Pointer(bp + 8)), uintptr(0), (*SessionApplyCtx)(unsafe.Pointer(p)).FpInsert)
+ if rc != SQLITE_OK {
+ return rc
+ }
+
+ Xsqlite3_step(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpInsert)
+ rc = Xsqlite3_reset(tls, (*SessionApplyCtx)(unsafe.Pointer(p)).FpInsert)
+ }
+
+ if rc&0xff == SQLITE_CONSTRAINT {
+ rc = sessionConflictHandler(tls,
+ SQLITE_CHANGESET_CONFLICT, p, pIter, xConflict, pCtx, pbReplace)
+ }
+ }
+
+ return rc
+}
+
+func sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+ var rc int32
+
+ rc = sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4)
+ if rc == SQLITE_OK {
+ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 {
+ rc = sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0))
+ } else if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = Xsqlite3_exec(tls, db, ts+33783, uintptr(0), uintptr(0), uintptr(0))
+ if rc == SQLITE_OK {
+ rc = sessionBindRow(tls, pIter,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ }{Xsqlite3changeset_new})), (*SessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
+ Xsqlite3_bind_int(tls, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+1, 1)
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3_step(tls, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
+ rc = Xsqlite3_reset(tls, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete)
+ }
+ if rc == SQLITE_OK {
+ rc = sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, db, ts+33804, uintptr(0), uintptr(0), uintptr(0))
+ }
+ }
+ }
+
+ return rc
+}
+
+func sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK
+
+ for (*SessionApplyCtx)(unsafe.Pointer(pApply)).Fconstraints.FnBuf != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var cons = (*SessionApplyCtx)(unsafe.Pointer(pApply)).Fconstraints
+ libc.X__builtin___memset_chk(tls, pApply+88, 0, uint64(unsafe.Sizeof(SessionBuffer{})), libc.X__builtin_object_size(tls, pApply+88, 0))
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = sessionChangesetStart(tls,
+ bp, uintptr(0), uintptr(0), cons.FnBuf, cons.FaBuf, (*SessionApplyCtx)(unsafe.Pointer(pApply)).FbInvertConstraints, 1)
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ var nByte Size_t = uint64(2*(*SessionApplyCtx)(unsafe.Pointer(pApply)).FnCol) * uint64(unsafe.Sizeof(uintptr(0)))
+ var rc2 int32
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbPatchset = bPatchset
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzTab = zTab
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnCol = (*SessionApplyCtx)(unsafe.Pointer(pApply)).FnCol
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FabPK = (*SessionApplyCtx)(unsafe.Pointer(pApply)).FabPK
+ sessionBufferGrow(tls, *(*uintptr)(unsafe.Pointer(bp))+72, int64(nByte), bp+8)
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FapValue = (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Ftblhdr.FaBuf
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FapValue, 0, nByte, libc.X__builtin_object_size(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FapValue, 0))
+ }
+
+ for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && SQLITE_ROW == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ *(*int32)(unsafe.Pointer(bp + 8)) = sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp)), pApply, xConflict, pCtx)
+ }
+
+ rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = rc2
+ }
+ }
+
+ Xsqlite3_free(tls, cons.FaBuf)
+ if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK {
+ break
+ }
+ if (*SessionApplyCtx)(unsafe.Pointer(pApply)).Fconstraints.FnBuf >= cons.FnBuf {
+ (*SessionApplyCtx)(unsafe.Pointer(pApply)).FbDeferConstraints = 0
+ }
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) int32 {
+ bp := tls.Alloc(368)
+ defer tls.Free(368)
+
+ var schemaMismatch int32 = 0
+ var rc int32 = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp + 200)) = uintptr(0)
+ var nTab int32 = 0
+
+ var bPatchset int32
+
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FbNoDiscard = 1
+ libc.X__builtin___memset_chk(tls, bp+48, 0, uint64(unsafe.Sizeof(SessionApplyCtx{})), libc.X__builtin_object_size(tls, bp+48, 0))
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbRebase = U8(libc.Bool32(ppRebase != 0 && pnRebase != 0))
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbInvertConstraints = libc.BoolInt32(!!(flags&SQLITE_CHANGESETAPPLY_INVERT != 0))
+ Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db))
+ if flags&SQLITE_CHANGESETAPPLY_NOSAVEPOINT == 0 {
+ rc = Xsqlite3_exec(tls, db, ts+33823, uintptr(0), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, db, ts+33849, uintptr(0), uintptr(0), uintptr(0))
+ }
+ for rc == SQLITE_OK && SQLITE_ROW == Xsqlite3changeset_next(tls, pIter) {
+ Xsqlite3changeset_op(tls, pIter, bp+176, bp+184, bp+188, uintptr(0))
+
+ if *(*uintptr)(unsafe.Pointer(bp + 200)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 176)), *(*uintptr)(unsafe.Pointer(bp + 200)), nTab+1) != 0 {
+ rc = sessionRetryConstraints(tls,
+ db, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 200)), bp+48, xConflict, pCtx)
+ if rc != SQLITE_OK {
+ break
+ }
+
+ sessionUpdateFree(tls, bp+48)
+ Xsqlite3_free(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FazCol)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpDelete)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpInsert)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpSelect)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).Fdb = db
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FpDelete = uintptr(0)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FpInsert = uintptr(0)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FpSelect = uintptr(0)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FnCol = 0
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FazCol = uintptr(0)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FabPK = uintptr(0)
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbStat1 = 0
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbDeferConstraints = 1
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbRebaseStarted = U8(0)
+ libc.X__builtin___memset_chk(tls, bp+48+88, 0, uint64(unsafe.Sizeof(SessionBuffer{})), libc.X__builtin_object_size(tls, bp+48+88, 0))
+
+ schemaMismatch = libc.Bool32(xFilter != 0 && 0 == (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xFilter})).f(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 176))))
+ if schemaMismatch != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 200)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(bp + 176))))
+ if *(*uintptr)(unsafe.Pointer(bp + 200)) == uintptr(0) {
+ rc = SQLITE_NOMEM
+ break
+ }
+ nTab = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 200))))
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FazCol = *(*uintptr)(unsafe.Pointer(bp + 200))
+ } else {
+ var nMinCol int32 = 0
+ var i int32
+
+ Xsqlite3changeset_pk(tls, pIter, bp+192, uintptr(0))
+ rc = sessionTableInfo(tls, uintptr(0),
+ db, ts+6844, *(*uintptr)(unsafe.Pointer(bp + 176)), bp+48+32, bp+200, bp+48+40, bp+48+48)
+ if rc != SQLITE_OK {
+ break
+ }
+ for i = 0; i < (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*SessionApplyCtx)(unsafe.Pointer(bp+48)).FabPK + uintptr(i))) != 0 {
+ nMinCol = i + 1
+ }
+ }
+
+ if (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FnCol == 0 {
+ schemaMismatch = 1
+ Xsqlite3_log(tls, SQLITE_SCHEMA,
+ ts+33879, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(bp + 200))))
+ } else if (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FnCol < *(*int32)(unsafe.Pointer(bp + 184)) {
+ schemaMismatch = 1
+ Xsqlite3_log(tls, SQLITE_SCHEMA,
+ ts+33923,
+ libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp + 200)), (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FnCol, *(*int32)(unsafe.Pointer(bp + 184))))
+ } else if *(*int32)(unsafe.Pointer(bp + 184)) < nMinCol || libc.Xmemcmp(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 192)), uint64(*(*int32)(unsafe.Pointer(bp + 184)))) != 0 {
+ schemaMismatch = 1
+ Xsqlite3_log(tls, SQLITE_SCHEMA,
+ ts+33994, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(bp + 200))))
+ } else {
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FnCol = *(*int32)(unsafe.Pointer(bp + 184))
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 200)), ts+11751) {
+ if libc.AssignInt32(&rc, sessionStat1Sql(tls, db, bp+48)) != 0 {
+ break
+ }
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbStat1 = 1
+ } else {
+ if libc.AssignInt32(&rc, sessionSelectRow(tls, db, *(*uintptr)(unsafe.Pointer(bp + 200)), bp+48)) != 0 ||
+ libc.AssignInt32(&rc, sessionDeleteRow(tls, db, *(*uintptr)(unsafe.Pointer(bp + 200)), bp+48)) != 0 ||
+ libc.AssignInt32(&rc, sessionInsertRow(tls, db, *(*uintptr)(unsafe.Pointer(bp + 200)), bp+48)) != 0 {
+ break
+ }
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).FbStat1 = 0
+ }
+ }
+ nTab = Xsqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(bp + 200)))
+ }
+ }
+
+ if schemaMismatch != 0 {
+ continue
+ }
+
+ rc = sessionApplyOneWithRetry(tls, db, pIter, bp+48, xConflict, pCtx)
+ }
+
+ bPatchset = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changeset_finalize(tls, pIter)
+ } else {
+ Xsqlite3changeset_finalize(tls, pIter)
+ }
+
+ if rc == SQLITE_OK {
+ rc = sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp + 200)), bp+48, xConflict, pCtx)
+ }
+
+ if rc == SQLITE_OK {
+ Xsqlite3_db_status(tls, db, SQLITE_DBSTATUS_DEFERRED_FKS, bp+208, bp+212, 0)
+ if *(*int32)(unsafe.Pointer(bp + 208)) != 0 {
+ var res int32 = SQLITE_CHANGESET_ABORT
+
+ libc.X__builtin___memset_chk(tls, bp+216, 0, uint64(unsafe.Sizeof(Sqlite3_changeset_iter{})), libc.X__builtin_object_size(tls, bp+216, 0))
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(bp + 216)).FnCol = *(*int32)(unsafe.Pointer(bp + 208))
+ res = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xConflict})).f(tls, pCtx, SQLITE_CHANGESET_FOREIGN_KEY, bp+216)
+ if res != SQLITE_CHANGESET_OMIT {
+ rc = SQLITE_CONSTRAINT
+ }
+ }
+ }
+ Xsqlite3_exec(tls, db, ts+34054, uintptr(0), uintptr(0), uintptr(0))
+
+ if flags&SQLITE_CHANGESETAPPLY_NOSAVEPOINT == 0 {
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_exec(tls, db, ts+34084, uintptr(0), uintptr(0), uintptr(0))
+ } else {
+ Xsqlite3_exec(tls, db, ts+34108, uintptr(0), uintptr(0), uintptr(0))
+ Xsqlite3_exec(tls, db, ts+34084, uintptr(0), uintptr(0), uintptr(0))
+ }
+ }
+
+ if rc == SQLITE_OK && bPatchset == 0 && (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FbRebase != 0 {
+ *(*uintptr)(unsafe.Pointer(ppRebase)) = (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).Frebase.FaBuf
+ *(*int32)(unsafe.Pointer(pnRebase)) = (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).Frebase.FnBuf
+ (*SessionApplyCtx)(unsafe.Pointer(bp + 48)).Frebase.FaBuf = uintptr(0)
+ }
+ sessionUpdateFree(tls, bp+48)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpInsert)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpDelete)
+ Xsqlite3_finalize(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FpSelect)
+ Xsqlite3_free(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).FazCol)
+ Xsqlite3_free(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).Fconstraints.FaBuf)
+ Xsqlite3_free(tls, (*SessionApplyCtx)(unsafe.Pointer(bp+48)).Frebase.FaBuf)
+ Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db))
+ return rc
+}
+
+// Apply the changeset passed via pChangeset/nChangeset to the main
+// database attached to handle "db".
+func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var bInv int32 = libc.BoolInt32(!!(flags&SQLITE_CHANGESETAPPLY_INVERT != 0))
+ var rc int32 = sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, 1)
+ if rc == SQLITE_OK {
+ rc = sessionChangesetApply(tls,
+ db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags)
+ }
+ return rc
+}
+
+// Apply the changeset passed via pChangeset/nChangeset to the main database
+// attached to handle "db". Invoke the supplied conflict handler callback
+// to resolve any conflicts encountered while applying the change.
+func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) int32 {
+ return Xsqlite3changeset_apply_v2(tls,
+ db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0)
+}
+
+// Apply the changeset passed via xInput/pIn to the main database
+// attached to handle "db". Invoke the supplied conflict handler callback
+// to resolve any conflicts encountered while applying the change.
+func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var bInverse int32 = libc.BoolInt32(!!(flags&SQLITE_CHANGESETAPPLY_INVERT != 0))
+ var rc int32 = sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, 1)
+ if rc == SQLITE_OK {
+ rc = sessionChangesetApply(tls,
+ db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags)
+ }
+ return rc
+}
+
+func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) int32 {
+ return Xsqlite3changeset_apply_v2_strm(tls,
+ db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0)
+}
+
+func sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset int32, pExist uintptr, op2 int32, bIndirect int32, aRec uintptr, nRec int32, ppNew uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pNew uintptr = uintptr(0)
+ var rc int32 = SQLITE_OK
+
+ if !(pExist != 0) {
+ pNew = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(SessionChange{}))+uint64(nRec))
+ if !(pNew != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(SessionChange{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(op2)
+ (*SessionChange)(unsafe.Pointer(pNew)).FbIndirect = U8(bIndirect)
+ (*SessionChange)(unsafe.Pointer(pNew)).FaRecord = pNew + 1*32
+ if bIndirect == 0 || bRebase == 0 {
+ (*SessionChange)(unsafe.Pointer(pNew)).FnRecord = nRec
+ libc.X__builtin___memcpy_chk(tls, (*SessionChange)(unsafe.Pointer(pNew)).FaRecord, aRec, uint64(nRec), libc.X__builtin_object_size(tls, (*SessionChange)(unsafe.Pointer(pNew)).FaRecord, 0))
+ } else {
+ var i int32
+ var pIn uintptr = aRec
+ var pOut uintptr = (*SessionChange)(unsafe.Pointer(pNew)).FaRecord
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ var nIn int32 = sessionSerialLen(tls, pIn)
+ if int32(*(*U8)(unsafe.Pointer(pIn))) == 0 {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(0)
+ } else if int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i)))) == 0 {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(0xFF)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pOut, pIn, uint64(nIn), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(nIn)
+ }
+ pIn += uintptr(nIn)
+ }
+ (*SessionChange)(unsafe.Pointer(pNew)).FnRecord = int32((int64(pOut) - int64((*SessionChange)(unsafe.Pointer(pNew)).FaRecord)) / 1)
+ }
+ } else if bRebase != 0 {
+ if int32((*SessionChange)(unsafe.Pointer(pExist)).Fop) == SQLITE_DELETE && (*SessionChange)(unsafe.Pointer(pExist)).FbIndirect != 0 {
+ *(*uintptr)(unsafe.Pointer(ppNew)) = pExist
+ } else {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(nRec+(*SessionChange)(unsafe.Pointer(pExist)).FnRecord) + uint64(unsafe.Sizeof(SessionChange{})))
+ pNew = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var i int32
+ var a1 uintptr = (*SessionChange)(unsafe.Pointer(pExist)).FaRecord
+ var a2 uintptr = aRec
+ var pOut uintptr
+
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(nByte), libc.X__builtin_object_size(tls, pNew, 0))
+ (*SessionChange)(unsafe.Pointer(pNew)).FbIndirect = U8(libc.Bool32(bIndirect != 0 || (*SessionChange)(unsafe.Pointer(pExist)).FbIndirect != 0))
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(op2)
+ pOut = libc.AssignPtrUintptr(pNew+16, pNew+1*32)
+
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnCol; i++ {
+ var n1 int32 = sessionSerialLen(tls, a1)
+ var n2 int32 = sessionSerialLen(tls, a2)
+ if int32(*(*U8)(unsafe.Pointer(a1))) == 0xFF || int32(*(*U8)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(i)))) == 0 && bIndirect != 0 {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(0xFF)
+ } else if int32(*(*U8)(unsafe.Pointer(a2))) == 0 {
+ libc.X__builtin___memcpy_chk(tls, pOut, a1, uint64(n1), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(n1)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pOut, a2, uint64(n2), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(n2)
+ }
+ a1 += uintptr(n1)
+ a2 += uintptr(n2)
+ }
+ (*SessionChange)(unsafe.Pointer(pNew)).FnRecord = int32((int64(pOut) - int64((*SessionChange)(unsafe.Pointer(pNew)).FaRecord)) / 1)
+ }
+ Xsqlite3_free(tls, pExist)
+ }
+ } else {
+ var op1 int32 = int32((*SessionChange)(unsafe.Pointer(pExist)).Fop)
+
+ if op1 == SQLITE_INSERT && op2 == SQLITE_INSERT ||
+ op1 == SQLITE_UPDATE && op2 == SQLITE_INSERT ||
+ op1 == SQLITE_DELETE && op2 == SQLITE_UPDATE ||
+ op1 == SQLITE_DELETE && op2 == SQLITE_DELETE {
+ pNew = pExist
+ } else if op1 == SQLITE_INSERT && op2 == SQLITE_DELETE {
+ Xsqlite3_free(tls, pExist)
+
+ } else {
+ var aExist uintptr = (*SessionChange)(unsafe.Pointer(pExist)).FaRecord
+ var nByte Sqlite3_int64
+
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(SessionChange{})) + uint64((*SessionChange)(unsafe.Pointer(pExist)).FnRecord) + uint64(nRec))
+ pNew = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(pNew != 0) {
+ Xsqlite3_free(tls, pExist)
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(SessionChange{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*SessionChange)(unsafe.Pointer(pNew)).FbIndirect = U8(libc.Bool32(bIndirect != 0 && (*SessionChange)(unsafe.Pointer(pExist)).FbIndirect != 0))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.AssignPtrUintptr(pNew+16, pNew+1*32)
+
+ if op1 == SQLITE_INSERT {
+ *(*uintptr)(unsafe.Pointer(bp)) = aRec
+
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(SQLITE_INSERT)
+ if bPatchset == 0 {
+ sessionSkipRecord(tls, bp, (*SessionTable)(unsafe.Pointer(pTab)).FnCol)
+ }
+ sessionMergeRecord(tls, bp+8, (*SessionTable)(unsafe.Pointer(pTab)).FnCol, aExist, *(*uintptr)(unsafe.Pointer(bp)))
+ } else if op1 == SQLITE_DELETE {
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(SQLITE_UPDATE)
+ if bPatchset != 0 {
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), aRec, uint64(nRec), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(nRec)
+ } else {
+ if 0 == sessionMergeUpdate(tls, bp+8, pTab, bPatchset, aExist, uintptr(0), aRec, uintptr(0)) {
+ Xsqlite3_free(tls, pNew)
+ pNew = uintptr(0)
+ }
+ }
+ } else if op2 == SQLITE_UPDATE {
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = aExist
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = aRec
+
+ if bPatchset == 0 {
+ sessionSkipRecord(tls, bp+16, (*SessionTable)(unsafe.Pointer(pTab)).FnCol)
+ sessionSkipRecord(tls, bp+24, (*SessionTable)(unsafe.Pointer(pTab)).FnCol)
+ }
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(SQLITE_UPDATE)
+ if 0 == sessionMergeUpdate(tls, bp+8, pTab, bPatchset, aRec, aExist, *(*uintptr)(unsafe.Pointer(bp + 16)), *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ Xsqlite3_free(tls, pNew)
+ pNew = uintptr(0)
+ }
+ } else {
+ (*SessionChange)(unsafe.Pointer(pNew)).Fop = U8(SQLITE_DELETE)
+ if bPatchset != 0 {
+ libc.X__builtin___memcpy_chk(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), aRec, uint64(nRec), libc.X__builtin_object_size(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), 0))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(nRec)
+ } else {
+ sessionMergeRecord(tls, bp+8, (*SessionTable)(unsafe.Pointer(pTab)).FnCol, aRec, aExist)
+ }
+ }
+
+ if pNew != 0 {
+ (*SessionChange)(unsafe.Pointer(pNew)).FnRecord = int32((int64(*(*uintptr)(unsafe.Pointer(bp + 8))) - int64((*SessionChange)(unsafe.Pointer(pNew)).FaRecord)) / 1)
+ }
+ Xsqlite3_free(tls, pExist)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppNew)) = pNew
+ return rc
+}
+
+func sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var rc int32 = SQLITE_OK
+ var pTab uintptr = uintptr(0)
+
+ for SQLITE_ROW == sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) {
+ var iHash int32
+
+ var pExist uintptr = uintptr(0)
+ var pp uintptr
+
+ if (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) {
+ (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset
+ } else if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch {
+ rc = SQLITE_ERROR
+ break
+ }
+
+ Xsqlite3changeset_op(tls, pIter, bp+16, bp+24, bp+28, bp+32)
+ if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), (*SessionTable)(unsafe.Pointer(pTab)).FzName) != 0 {
+ var nNew int32 = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 16))))
+
+ Xsqlite3changeset_pk(tls, pIter, bp+40, uintptr(0))
+ for pTab = (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList; pTab != 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ if 0 == Xsqlite3_strnicmp(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 16)), nNew+1) {
+ break
+ }
+ }
+ if !(pTab != 0) {
+ var ppTab uintptr
+
+ pTab = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(SessionTable{}))+uint64(*(*int32)(unsafe.Pointer(bp + 24)))+uint64(nNew)+uint64(1))
+ if !(pTab != 0) {
+ rc = SQLITE_NOMEM
+ break
+ }
+ libc.X__builtin___memset_chk(tls, pTab, 0, uint64(unsafe.Sizeof(SessionTable{})), libc.X__builtin_object_size(tls, pTab, 0))
+ (*SessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 24))
+ (*SessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*56
+ libc.X__builtin___memcpy_chk(tls, (*SessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 40)), uint64(*(*int32)(unsafe.Pointer(bp + 24))), libc.X__builtin_object_size(tls, (*SessionTable)(unsafe.Pointer(pTab)).FabPK, 0))
+ (*SessionTable)(unsafe.Pointer(pTab)).FzName = (*SessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 24)))
+ libc.X__builtin___memcpy_chk(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 16)), uint64(nNew+1), libc.X__builtin_object_size(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, 0))
+
+ for ppTab = pGrp + 8; *(*uintptr)(unsafe.Pointer(ppTab)) != 0; ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) {
+ }
+ *(*uintptr)(unsafe.Pointer(ppTab)) = pTab
+ } else if (*SessionTable)(unsafe.Pointer(pTab)).FnCol != *(*int32)(unsafe.Pointer(bp + 24)) || libc.Xmemcmp(tls, (*SessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 40)), uint64(*(*int32)(unsafe.Pointer(bp + 24)))) != 0 {
+ rc = SQLITE_SCHEMA
+ break
+ }
+ }
+
+ if sessionGrowHash(tls, uintptr(0), (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 {
+ rc = SQLITE_NOMEM
+ break
+ }
+ iHash = int32(sessionChangeHash(tls,
+ pTab, libc.Bool32((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 28)) == SQLITE_DELETE), *(*uintptr)(unsafe.Pointer(bp)), (*SessionTable)(unsafe.Pointer(pTab)).FnChange))
+
+ for pp = (*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8; *(*uintptr)(unsafe.Pointer(pp)) != 0; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 {
+ var bPkOnly1 int32 = 0
+ var bPkOnly2 int32 = 0
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 {
+ bPkOnly1 = libc.Bool32(int32((*SessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == SQLITE_DELETE)
+ bPkOnly2 = libc.Bool32(*(*int32)(unsafe.Pointer(bp + 28)) == SQLITE_DELETE)
+ }
+ if sessionChangeEqual(tls, pTab, bPkOnly1, (*SessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 {
+ pExist = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = (*SessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext
+ (*SessionTable)(unsafe.Pointer(pTab)).FnEntry--
+ break
+ }
+ }
+
+ rc = sessionChangeMerge(tls, pTab, bRebase,
+ (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 28)), *(*int32)(unsafe.Pointer(bp + 32)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+48)
+ if rc != 0 {
+ break
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) != 0 {
+ (*SessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).FpNext = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8))
+ *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 48))
+ (*SessionTable)(unsafe.Pointer(pTab)).FnEntry++
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc
+ }
+ return rc
+}
+
+func sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ *(*SessionBuffer)(unsafe.Pointer(bp)) = SessionBuffer{}
+ var pTab uintptr
+
+ for pTab = (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList; *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && pTab != 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ var i int32
+ if (*SessionTable)(unsafe.Pointer(pTab)).FnEntry == 0 {
+ continue
+ }
+
+ sessionAppendTableHdr(tls, bp, (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch, pTab, bp+16)
+ for i = 0; i < (*SessionTable)(unsafe.Pointer(pTab)).FnChange; i++ {
+ var p uintptr
+ for p = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(i)*8)); p != 0; p = (*SessionChange)(unsafe.Pointer(p)).FpNext {
+ sessionAppendByte(tls, bp, (*SessionChange)(unsafe.Pointer(p)).Fop, bp+16)
+ sessionAppendByte(tls, bp, (*SessionChange)(unsafe.Pointer(p)).FbIndirect, bp+16)
+ sessionAppendBlob(tls, bp, (*SessionChange)(unsafe.Pointer(p)).FaRecord, (*SessionChange)(unsafe.Pointer(p)).FnRecord, bp+16)
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && xOutput != 0 && (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf >= sessions_strm_chunk_size {
+ *(*int32)(unsafe.Pointer(bp + 16)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf)
+ (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf = 0
+ }
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ if xOutput != 0 {
+ if (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf > 0 {
+ *(*int32)(unsafe.Pointer(bp + 16)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf)
+ }
+ } else if ppOut != 0 {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf
+ if pnOut != 0 {
+ *(*int32)(unsafe.Pointer(pnOut)) = (*SessionBuffer)(unsafe.Pointer(bp)).FnBuf
+ }
+ (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf = uintptr(0)
+ }
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp)).FaBuf)
+
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+// Allocate a new, empty, sqlite3_changegroup.
+func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var p uintptr
+ p = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Sqlite3_changegroup{})))
+ if p == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Sqlite3_changegroup{})), libc.X__builtin_object_size(tls, p, 0))
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+ return rc
+}
+
+// Add the changeset currently stored in buffer pData, size nData bytes,
+// to changeset-group p.
+func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3changeset_start(tls, bp, nData, pData)
+ if rc == SQLITE_OK {
+ rc = sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0)
+ }
+ Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+// Obtain a buffer containing a changeset representing the concatenation
+// of all changesets added to the group so far.
+func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppData uintptr) int32 {
+ return sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData)
+}
+
+// Streaming versions of changegroup_add().
+func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn)
+ if rc == SQLITE_OK {
+ rc = sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0)
+ }
+ Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+// Streaming versions of changegroup_output().
+func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) int32 {
+ return sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0))
+}
+
+// Delete a changegroup object.
+func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) {
+ if pGrp != 0 {
+ sessionDeleteTable(tls, uintptr(0), (*Sqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList)
+ Xsqlite3_free(tls, pGrp)
+ }
+}
+
+// Combine two changesets together.
+func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight int32, pRight uintptr, pnOut uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3changegroup_new(tls, bp)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_add(tls, *(*uintptr)(unsafe.Pointer(bp)), nLeft, pLeft)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_add(tls, *(*uintptr)(unsafe.Pointer(bp)), nRight, pRight)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_output(tls, *(*uintptr)(unsafe.Pointer(bp)), pnOut, ppOut)
+ }
+ Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ return rc
+}
+
+// Streaming version of sqlite3changeset_concat().
+func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32
+
+ rc = Xsqlite3changegroup_new(tls, bp)
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut)
+ }
+ Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp)))
+
+ return rc
+}
+
+func sessionAppendRecordMerge(tls *libc.TLS, pBuf uintptr, nCol int32, a1 uintptr, n1 int32, a2 uintptr, n2 int32, pRc uintptr) {
+ sessionBufferGrow(tls, pBuf, int64(n1+n2), pRc)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var i int32
+ var pOut uintptr = (*SessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + uintptr((*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf)
+ for i = 0; i < nCol; i++ {
+ var nn1 int32 = sessionSerialLen(tls, a1)
+ var nn2 int32 = sessionSerialLen(tls, a2)
+ if int32(*(*U8)(unsafe.Pointer(a1))) == 0 || int32(*(*U8)(unsafe.Pointer(a1))) == 0xFF {
+ libc.X__builtin___memcpy_chk(tls, pOut, a2, uint64(nn2), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(nn2)
+ } else {
+ libc.X__builtin___memcpy_chk(tls, pOut, a1, uint64(nn1), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(nn1)
+ }
+ a1 += uintptr(nn1)
+ a2 += uintptr(nn2)
+ }
+
+ (*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32((int64(pOut) - int64((*SessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) / 1)
+
+ }
+}
+
+func sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRec uintptr, nRec int32, aChange uintptr, nChange int32, pRc uintptr) {
+ sessionBufferGrow(tls, pBuf, int64(2+nRec+nChange), pRc)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var bData int32 = 0
+ var pOut uintptr = (*SessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + uintptr((*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf)
+ var i int32
+ var a1 uintptr = aRec
+ var a2 uintptr = aChange
+
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(SQLITE_UPDATE)
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect)
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol; i++ {
+ var n1 int32 = sessionSerialLen(tls, a1)
+ var n2 int32 = sessionSerialLen(tls, a2)
+ if *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK + uintptr(i))) != 0 || int32(*(*U8)(unsafe.Pointer(a2))) == 0 {
+ if !(int32(*(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK + uintptr(i)))) != 0) && *(*U8)(unsafe.Pointer(a1)) != 0 {
+ bData = 1
+ }
+ libc.X__builtin___memcpy_chk(tls, pOut, a1, uint64(n1), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(n1)
+ } else if int32(*(*U8)(unsafe.Pointer(a2))) != 0xFF && *(*U8)(unsafe.Pointer(a1)) != 0 {
+ bData = 1
+ libc.X__builtin___memcpy_chk(tls, pOut, a2, uint64(n2), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(n2)
+ } else {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(0)
+ }
+ a1 += uintptr(n1)
+ a2 += uintptr(n2)
+ }
+ if bData != 0 {
+ a2 = aChange
+ for i = 0; i < (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol; i++ {
+ var n1 int32 = sessionSerialLen(tls, a1)
+ var n2 int32 = sessionSerialLen(tls, a2)
+ if *(*U8)(unsafe.Pointer((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK + uintptr(i))) != 0 || int32(*(*U8)(unsafe.Pointer(a2))) != 0xFF {
+ libc.X__builtin___memcpy_chk(tls, pOut, a1, uint64(n1), libc.X__builtin_object_size(tls, pOut, 0))
+ pOut += uintptr(n1)
+ } else {
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&pOut, 1))) = U8(0)
+ }
+ a1 += uintptr(n1)
+ a2 += uintptr(n2)
+ }
+ (*SessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32((int64(pOut) - int64((*SessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) / 1)
+ }
+ }
+}
+
+func sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ *(*int32)(unsafe.Pointer(bp + 12)) = 0
+ var pTab uintptr = uintptr(0)
+ *(*SessionBuffer)(unsafe.Pointer(bp + 16)) = SessionBuffer{}
+
+ for SQLITE_ROW == sessionChangesetNext(tls, pIter, bp, bp+8, bp+12) {
+ var pChange uintptr = uintptr(0)
+ var bDone int32 = 0
+
+ if *(*int32)(unsafe.Pointer(bp + 12)) != 0 {
+ var zTab uintptr = (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab
+ for pTab = (*Sqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList; pTab != 0; pTab = (*SessionTable)(unsafe.Pointer(pTab)).FpNext {
+ if 0 == Xsqlite3_stricmp(tls, (*SessionTable)(unsafe.Pointer(pTab)).FzName, zTab) {
+ break
+ }
+ }
+ *(*int32)(unsafe.Pointer(bp + 12)) = 0
+
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 {
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_ERROR
+ }
+
+ sessionAppendByte(tls, bp+16, func() uint8 {
+ if (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 {
+ return uint8('P')
+ }
+ return uint8('T')
+ }(), bp+32)
+ sessionAppendVarint(tls, bp+16, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol, bp+32)
+ sessionAppendBlob(tls, bp+16, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol, bp+32)
+ sessionAppendBlob(tls, bp+16, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, int32(libc.Xstrlen(tls, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab))+1, bp+32)
+ }
+
+ if pTab != 0 && *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ var iHash int32 = int32(sessionChangeHash(tls, pTab, 0, *(*uintptr)(unsafe.Pointer(bp)), (*SessionTable)(unsafe.Pointer(pTab)).FnChange))
+
+ for pChange = *(*uintptr)(unsafe.Pointer((*SessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)); pChange != 0; pChange = (*SessionChange)(unsafe.Pointer(pChange)).FpNext {
+ if sessionChangeEqual(tls, pTab, 0, *(*uintptr)(unsafe.Pointer(bp)), 0, (*SessionChange)(unsafe.Pointer(pChange)).FaRecord) != 0 {
+ break
+ }
+ }
+ }
+
+ if pChange != 0 {
+ switch (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop {
+ case SQLITE_INSERT:
+ if int32((*SessionChange)(unsafe.Pointer(pChange)).Fop) == SQLITE_INSERT {
+ bDone = 1
+ if int32((*SessionChange)(unsafe.Pointer(pChange)).FbIndirect) == 0 {
+ sessionAppendByte(tls, bp+16, uint8(SQLITE_UPDATE), bp+32)
+ sessionAppendByte(tls, bp+16, uint8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp+32)
+ sessionAppendBlob(tls, bp+16, (*SessionChange)(unsafe.Pointer(pChange)).FaRecord, (*SessionChange)(unsafe.Pointer(pChange)).FnRecord, bp+32)
+ sessionAppendBlob(tls, bp+16, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+32)
+ }
+ }
+ break
+ fallthrough
+
+ case SQLITE_UPDATE:
+ bDone = 1
+ if int32((*SessionChange)(unsafe.Pointer(pChange)).Fop) == SQLITE_DELETE {
+ if int32((*SessionChange)(unsafe.Pointer(pChange)).FbIndirect) == 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = *(*uintptr)(unsafe.Pointer(bp))
+ sessionSkipRecord(tls, bp+40, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol)
+ sessionAppendByte(tls, bp+16, uint8(SQLITE_INSERT), bp+32)
+ sessionAppendByte(tls, bp+16, uint8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp+32)
+ sessionAppendRecordMerge(tls, bp+16, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol,
+ *(*uintptr)(unsafe.Pointer(bp + 40)), int32(int64(*(*int32)(unsafe.Pointer(bp + 8)))-(int64(*(*uintptr)(unsafe.Pointer(bp + 40)))-int64(*(*uintptr)(unsafe.Pointer(bp))))/1),
+ (*SessionChange)(unsafe.Pointer(pChange)).FaRecord, (*SessionChange)(unsafe.Pointer(pChange)).FnRecord, bp+32)
+ }
+ } else {
+ sessionAppendPartialUpdate(tls, bp+16, pIter,
+ *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), (*SessionChange)(unsafe.Pointer(pChange)).FaRecord, (*SessionChange)(unsafe.Pointer(pChange)).FnRecord, bp+32)
+ }
+ break
+ fallthrough
+
+ default:
+ bDone = 1
+ if int32((*SessionChange)(unsafe.Pointer(pChange)).Fop) == SQLITE_INSERT {
+ sessionAppendByte(tls, bp+16, uint8(SQLITE_DELETE), bp+32)
+ sessionAppendByte(tls, bp+16, uint8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp+32)
+ sessionAppendRecordMerge(tls, bp+16, (*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol,
+ (*SessionChange)(unsafe.Pointer(pChange)).FaRecord, (*SessionChange)(unsafe.Pointer(pChange)).FnRecord, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+32)
+ }
+ break
+ }
+ }
+
+ if bDone == 0 {
+ sessionAppendByte(tls, bp+16, uint8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fop), bp+32)
+ sessionAppendByte(tls, bp+16, uint8((*Sqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp+32)
+ sessionAppendBlob(tls, bp+16, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+32)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK && xOutput != 0 && (*SessionBuffer)(unsafe.Pointer(bp+16)).FnBuf > sessions_strm_chunk_size {
+ *(*int32)(unsafe.Pointer(bp + 32)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp+16)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp+16)).FnBuf)
+ (*SessionBuffer)(unsafe.Pointer(bp + 16)).FnBuf = 0
+ }
+ if *(*int32)(unsafe.Pointer(bp + 32)) != 0 {
+ break
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) != SQLITE_OK {
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp+16)).FaBuf)
+ libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(unsafe.Sizeof(SessionBuffer{})), libc.X__builtin_object_size(tls, bp+16, 0))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ if xOutput != 0 {
+ if (*SessionBuffer)(unsafe.Pointer(bp+16)).FnBuf > 0 {
+ *(*int32)(unsafe.Pointer(bp + 32)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xOutput})).f(tls, pOut, (*SessionBuffer)(unsafe.Pointer(bp+16)).FaBuf, (*SessionBuffer)(unsafe.Pointer(bp+16)).FnBuf)
+ }
+ } else if ppOut != 0 {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = (*SessionBuffer)(unsafe.Pointer(bp + 16)).FaBuf
+ *(*int32)(unsafe.Pointer(pnOut)) = (*SessionBuffer)(unsafe.Pointer(bp + 16)).FnBuf
+ (*SessionBuffer)(unsafe.Pointer(bp + 16)).FaBuf = uintptr(0)
+ }
+ }
+ Xsqlite3_free(tls, (*SessionBuffer)(unsafe.Pointer(bp+16)).FaBuf)
+ return *(*int32)(unsafe.Pointer(bp + 32))
+}
+
+// Create a new rebaser object.
+func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pNew uintptr
+
+ pNew = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Sqlite3_rebaser{})))
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Sqlite3_rebaser{})), libc.X__builtin_object_size(tls, pNew, 0))
+ }
+ *(*uintptr)(unsafe.Pointer(ppNew)) = pNew
+ return rc
+}
+
+// Call this one or more times to configure a rebaser.
+func Xsqlite3rebaser_configure(tls *libc.TLS, p uintptr, nRebase int32, pRebase uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32
+ rc = Xsqlite3changeset_start(tls, bp, nRebase, pRebase)
+ if rc == SQLITE_OK {
+ rc = sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), p, 1)
+ }
+ Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+// Rebase a changeset according to current rebaser configuration
+func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pnOut uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = Xsqlite3changeset_start(tls, bp, nIn, pIn)
+
+ if rc == SQLITE_OK {
+ rc = sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), uintptr(0), uintptr(0), pnOut, ppOut)
+ Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return rc
+}
+
+// Rebase a changeset according to current rebaser configuration
+func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn)
+
+ if rc == SQLITE_OK {
+ rc = sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0))
+ Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return rc
+}
+
+// Destroy a rebaser object
+func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ sessionDeleteTable(tls, uintptr(0), (*Sqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList)
+ Xsqlite3_free(tls, p)
+ }
+}
+
+// Global configuration
+func Xsqlite3session_config(tls *libc.TLS, op int32, pArg uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ switch op {
+ case SQLITE_SESSION_CONFIG_STRMSIZE:
+ {
+ var pInt uintptr = pArg
+ if *(*int32)(unsafe.Pointer(pInt)) > 0 {
+ sessions_strm_chunk_size = *(*int32)(unsafe.Pointer(pInt))
+ }
+ *(*int32)(unsafe.Pointer(pInt)) = sessions_strm_chunk_size
+ break
+
+ }
+ default:
+ rc = SQLITE_MISUSE
+ break
+ }
+ return rc
+}
+
+type Fts5Global1 = struct {
+ Fapi Fts5_api
+ Fdb uintptr
+ FiNextId I64
+ FpAux uintptr
+ FpTok uintptr
+ FpDfltTok uintptr
+ FpCsr uintptr
+}
+
+type Fts5Global = Fts5Global1
+type Fts5Colset1 = struct {
+ FnCol int32
+ FaiCol [1]int32
+}
+
+type Fts5Colset = Fts5Colset1
+
+type Fts5Config1 = struct {
+ Fdb uintptr
+ FzDb uintptr
+ FzName uintptr
+ FnCol int32
+ F__ccgo_pad1 [4]byte
+ FazCol uintptr
+ FabUnindexed uintptr
+ FnPrefix int32
+ F__ccgo_pad2 [4]byte
+ FaPrefix uintptr
+ FeContent int32
+ F__ccgo_pad3 [4]byte
+ FzContent uintptr
+ FzContentRowid uintptr
+ FbColumnsize int32
+ FeDetail int32
+ FzContentExprlist uintptr
+ FpTok uintptr
+ FpTokApi uintptr
+ FbLock int32
+ FePattern int32
+ FiCookie int32
+ Fpgsz int32
+ FnAutomerge int32
+ FnCrisisMerge int32
+ FnUsermerge int32
+ FnHashSize int32
+ FzRank uintptr
+ FzRankArgs uintptr
+ FpzErrmsg uintptr
+}
+
+type Fts5Config = Fts5Config1
+
+// Buffer object for the incremental building of string data.
+type Fts5Buffer1 = struct {
+ Fp uintptr
+ Fn int32
+ FnSpace int32
+}
+
+// Buffer object for the incremental building of string data.
+type Fts5Buffer = Fts5Buffer1
+
+type Fts5PoslistReader1 = struct {
+ Fa uintptr
+ Fn int32
+ Fi int32
+ FbFlag U8
+ FbEof U8
+ F__ccgo_pad1 [6]byte
+ FiPos I64
+}
+
+type Fts5PoslistReader = Fts5PoslistReader1
+
+type Fts5PoslistWriter1 = struct{ FiPrev I64 }
+
+type Fts5PoslistWriter = Fts5PoslistWriter1
+
+// Bucket of terms object used by the integrity-check in offsets=0 mode.
+type Fts5Termset1 = struct{ FapHash [512]uintptr }
+
+// Bucket of terms object used by the integrity-check in offsets=0 mode.
+type Fts5Termset = Fts5Termset1
+
+type Fts5Index1 = struct {
+ FpConfig uintptr
+ FzDataTbl uintptr
+ FnWorkUnit int32
+ F__ccgo_pad1 [4]byte
+ FpHash uintptr
+ FnPendingData int32
+ F__ccgo_pad2 [4]byte
+ FiWriteRowid I64
+ FbDelete int32
+ Frc int32
+ FpReader uintptr
+ FpWriter uintptr
+ FpDeleter uintptr
+ FpIdxWriter uintptr
+ FpIdxDeleter uintptr
+ FpIdxSelect uintptr
+ FnRead int32
+ F__ccgo_pad3 [4]byte
+ FpDataVersion uintptr
+ FiStructVersion I64
+ FpStruct uintptr
+}
+
+type Fts5Index = Fts5Index1
+type Fts5IndexIter1 = struct {
+ FiRowid I64
+ FpData uintptr
+ FnData int32
+ FbEof U8
+ F__ccgo_pad1 [3]byte
+}
+
+type Fts5IndexIter = Fts5IndexIter1
+
+// Virtual-table object.
+type Fts5Table1 = struct {
+ Fbase Sqlite3_vtab
+ FpConfig uintptr
+ FpIndex uintptr
+}
+
+// Virtual-table object.
+type Fts5Table = Fts5Table1
+
+// *************************************************************************
+//
+// Interface to code in fts5_hash.c.
+type Fts5Hash1 = struct {
+ FeDetail int32
+ F__ccgo_pad1 [4]byte
+ FpnByte uintptr
+ FnEntry int32
+ FnSlot int32
+ FpScan uintptr
+ FaSlot uintptr
+}
+
+// *************************************************************************
+//
+// Interface to code in fts5_hash.c.
+type Fts5Hash = Fts5Hash1
+
+type Fts5Storage1 = struct {
+ FpConfig uintptr
+ FpIndex uintptr
+ FbTotalsValid int32
+ F__ccgo_pad1 [4]byte
+ FnTotalRow I64
+ FaTotalSize uintptr
+ FaStmt [11]uintptr
+}
+
+type Fts5Storage = Fts5Storage1
+
+// *************************************************************************
+//
+// Interface to code in fts5_expr.c.
+type Fts5Expr1 = struct {
+ FpIndex uintptr
+ FpConfig uintptr
+ FpRoot uintptr
+ FbDesc int32
+ FnPhrase int32
+ FapExprPhrase uintptr
+}
+
+// *************************************************************************
+//
+// Interface to code in fts5_expr.c.
+type Fts5Expr = Fts5Expr1
+type Fts5ExprNode1 = struct {
+ FeType int32
+ FbEof int32
+ FbNomatch int32
+ F__ccgo_pad1 [4]byte
+ FxNext uintptr
+ FiRowid I64
+ FpNear uintptr
+ FnChild int32
+ F__ccgo_pad2 [4]byte
+ FapChild [1]uintptr
+}
+
+type Fts5ExprNode = Fts5ExprNode1
+type Fts5Parse1 = struct {
+ FpConfig uintptr
+ FzErr uintptr
+ Frc int32
+ FnPhrase int32
+ FapPhrase uintptr
+ FpExpr uintptr
+ FbPhraseToAnd int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Fts5Parse = Fts5Parse1
+type Fts5Token1 = struct {
+ Fp uintptr
+ Fn int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Fts5Token = Fts5Token1
+type Fts5ExprPhrase1 = struct {
+ FpNode uintptr
+ Fposlist Fts5Buffer
+ FnTerm int32
+ F__ccgo_pad1 [4]byte
+ FaTerm [1]Fts5ExprTerm
+}
+
+type Fts5ExprPhrase = Fts5ExprPhrase1
+type Fts5ExprNearset1 = struct {
+ FnNear int32
+ F__ccgo_pad1 [4]byte
+ FpColset uintptr
+ FnPhrase int32
+ F__ccgo_pad2 [4]byte
+ FapPhrase [1]uintptr
+}
+
+type Fts5ExprNearset = Fts5ExprNearset1
+
+type Fts5PoslistPopulator1 = struct {
+ Fwriter Fts5PoslistWriter
+ FbOk int32
+ FbMiss int32
+}
+
+type Fts5PoslistPopulator = Fts5PoslistPopulator1
+
+// The next sections is a series of control #defines.
+// various aspects of the generated parser.
+//
+// fts5YYCODETYPE is the data type used to store the integer codes
+// that represent terminal and non-terminal symbols.
+// "unsigned char" is used if there are fewer than
+// 256 symbols. Larger types otherwise.
+// fts5YYNOCODE is a number of type fts5YYCODETYPE that is not used for
+// any terminal or nonterminal symbol.
+// fts5YYFALLBACK If defined, this indicates that one or more tokens
+// (also known as: "terminal symbols") have fall-back
+// values which should be used if the original symbol
+// would not parse. This permits keywords to sometimes
+// be used as identifiers, for example.
+// fts5YYACTIONTYPE is the data type used for "action codes" - numbers
+// that indicate what to do in response to the next
+// token.
+// sqlite3Fts5ParserFTS5TOKENTYPE is the data type used for minor type for terminal
+// symbols. Background: A "minor type" is a semantic
+// value associated with a terminal or non-terminal
+// symbols. For example, for an "ID" terminal symbol,
+// the minor type might be the name of the identifier.
+// Each non-terminal can have a different minor type.
+// Terminal symbols all have the same minor type, though.
+// This macros defines the minor type for terminal
+// symbols.
+// fts5YYMINORTYPE is the data type used for all minor types.
+// This is typically a union of many types, one of
+// which is sqlite3Fts5ParserFTS5TOKENTYPE. The entry in the union
+// for terminal symbols is called "fts5yy0".
+// fts5YYSTACKDEPTH is the maximum depth of the parser's stack. If
+// zero the stack is dynamically sized using realloc()
+// sqlite3Fts5ParserARG_SDECL A static variable declaration for the %extra_argument
+// sqlite3Fts5ParserARG_PDECL A parameter declaration for the %extra_argument
+// sqlite3Fts5ParserARG_PARAM Code to pass %extra_argument as a subroutine parameter
+// sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser
+// sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser
+// sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context
+// fts5YYERRORSYMBOL is the code number of the error symbol. If not
+// defined, then do no error processing.
+// fts5YYNSTATE the combined number of states.
+// fts5YYNRULE the number of rules in the grammar
+// fts5YYNFTS5TOKEN Number of terminal symbols
+// fts5YY_MAX_SHIFT Maximum value for shift actions
+// fts5YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions
+// fts5YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions
+// fts5YY_ERROR_ACTION The fts5yy_action[] code for syntax error
+// fts5YY_ACCEPT_ACTION The fts5yy_action[] code for accept
+// fts5YY_NO_ACTION The fts5yy_action[] code for no-op
+// fts5YY_MIN_REDUCE Minimum value for reduce actions
+// fts5YY_MAX_REDUCE Maximum value for reduce actions
+//
+// ************ Begin control #defines ****************************************
+type Fts5YYMINORTYPE = struct {
+ F__ccgo_pad1 [0]uint64
+ Ffts5yyinit int32
+ F__ccgo_pad2 [12]byte
+}
+
+var fts5yy_action = [105]uint8{
+ uint8(81), uint8(20), uint8(96), uint8(6), uint8(28), uint8(99), uint8(98), uint8(26), uint8(26), uint8(18),
+ uint8(96), uint8(6), uint8(28), uint8(17), uint8(98), uint8(56), uint8(26), uint8(19), uint8(96), uint8(6),
+ uint8(28), uint8(14), uint8(98), uint8(14), uint8(26), uint8(31), uint8(92), uint8(96), uint8(6), uint8(28),
+ uint8(108), uint8(98), uint8(25), uint8(26), uint8(21), uint8(96), uint8(6), uint8(28), uint8(78), uint8(98),
+ uint8(58), uint8(26), uint8(29), uint8(96), uint8(6), uint8(28), uint8(107), uint8(98), uint8(22), uint8(26),
+ uint8(24), uint8(16), uint8(12), uint8(11), uint8(1), uint8(13), uint8(13), uint8(24), uint8(16), uint8(23),
+ uint8(11), uint8(33), uint8(34), uint8(13), uint8(97), uint8(8), uint8(27), uint8(32), uint8(98), uint8(7),
+ uint8(26), uint8(3), uint8(4), uint8(5), uint8(3), uint8(4), uint8(5), uint8(3), uint8(83), uint8(4),
+ uint8(5), uint8(3), uint8(63), uint8(5), uint8(3), uint8(62), uint8(12), uint8(2), uint8(86), uint8(13),
+ uint8(9), uint8(30), uint8(10), uint8(10), uint8(54), uint8(57), uint8(75), uint8(78), uint8(78), uint8(53),
+ uint8(57), uint8(15), uint8(82), uint8(82), uint8(71),
+}
+var fts5yy_lookahead = [121]uint8{
+ uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(22), uint8(22), uint8(24), uint8(24), uint8(17),
+ uint8(18), uint8(19), uint8(20), uint8(7), uint8(22), uint8(9), uint8(24), uint8(17), uint8(18), uint8(19),
+ uint8(20), uint8(9), uint8(22), uint8(9), uint8(24), uint8(13), uint8(17), uint8(18), uint8(19), uint8(20),
+ uint8(26), uint8(22), uint8(24), uint8(24), uint8(17), uint8(18), uint8(19), uint8(20), uint8(15), uint8(22),
+ uint8(9), uint8(24), uint8(17), uint8(18), uint8(19), uint8(20), uint8(26), uint8(22), uint8(21), uint8(24),
+ uint8(6), uint8(7), uint8(9), uint8(9), uint8(10), uint8(12), uint8(12), uint8(6), uint8(7), uint8(21),
+ uint8(9), uint8(24), uint8(25), uint8(12), uint8(18), uint8(5), uint8(20), uint8(14), uint8(22), uint8(5),
+ uint8(24), uint8(3), uint8(1), uint8(2), uint8(3), uint8(1), uint8(2), uint8(3), uint8(0), uint8(1),
+ uint8(2), uint8(3), uint8(11), uint8(2), uint8(3), uint8(11), uint8(9), uint8(10), uint8(5), uint8(12),
+ uint8(23), uint8(24), uint8(10), uint8(10), uint8(8), uint8(9), uint8(9), uint8(15), uint8(15), uint8(8),
+ uint8(9), uint8(9), uint8(27), uint8(27), uint8(11), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27), uint8(27),
+ uint8(27),
+}
+var fts5yy_shift_ofst = [35]uint8{
+ uint8(44), uint8(44), uint8(44), uint8(44), uint8(44), uint8(44), uint8(51), uint8(77), uint8(43), uint8(12),
+ uint8(14), uint8(83), uint8(82), uint8(14), uint8(23), uint8(23), uint8(31), uint8(31), uint8(71), uint8(74),
+ uint8(78), uint8(81), uint8(86), uint8(91), uint8(6), uint8(53), uint8(53), uint8(60), uint8(64), uint8(68),
+ uint8(53), uint8(87), uint8(92), uint8(53), uint8(93),
+}
+var fts5yy_reduce_ofst = [18]int8{
+ int8(-16), int8(-8), int8(0), int8(9), int8(17), int8(25), int8(46), int8(-17), int8(-17), int8(37),
+ int8(67), int8(4), int8(4), int8(8), int8(4), int8(20), int8(27), int8(38),
+}
+var fts5yy_default = [35]uint8{
+ uint8(80), uint8(80), uint8(80), uint8(80), uint8(80), uint8(80), uint8(95), uint8(80), uint8(80), uint8(105),
+ uint8(80), uint8(110), uint8(110), uint8(80), uint8(110), uint8(110), uint8(80), uint8(80), uint8(80), uint8(80),
+ uint8(80), uint8(91), uint8(80), uint8(80), uint8(80), uint8(101), uint8(100), uint8(80), uint8(80), uint8(90),
+ uint8(103), uint8(80), uint8(80), uint8(104), uint8(80),
+}
+
+type fts5yyStackEntry = struct {
+ Fstateno uint8
+ Fmajor uint8
+ F__ccgo_pad1 [6]byte
+ Fminor Fts5YYMINORTYPE
+}
+
+type Fts5yyStackEntry = fts5yyStackEntry
+
+type fts5yyParser = struct {
+ Ffts5yytos uintptr
+ FpParse uintptr
+ Ffts5yystack [100]Fts5yyStackEntry
+ Ffts5yystackEnd uintptr
+}
+
+type Fts5yyParser = fts5yyParser
+
+func sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) {
+ var fts5yypParser uintptr = fts5yypRawParser
+
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16)).Fstateno = uint8(0)
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16)).Fmajor = uint8(0)
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + 99*24
+}
+
+func sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) uintptr {
+ var fts5yypParser uintptr
+ fts5yypParser = (*struct{ f func(*libc.TLS, U64) uintptr })(unsafe.Pointer(&struct{ uintptr }{mallocProc})).f(tls, U64(unsafe.Sizeof(Fts5yyParser{})))
+ if fts5yypParser != 0 {
+ sqlite3Fts5ParserInit(tls, fts5yypParser)
+ }
+ return fts5yypParser
+}
+
+func fts5yy_destructor(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor uint8, fts5yypminor uintptr) {
+ var pParse uintptr = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
+ _ = pParse
+
+ switch int32(fts5yymajor) {
+ case 16:
+ {
+ _ = pParse
+ }
+ break
+ case 17:
+ fallthrough
+ case 18:
+ fallthrough
+ case 19:
+ {
+ sqlite3Fts5ParseNodeFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
+ }
+ break
+ case 20:
+ fallthrough
+ case 21:
+ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
+ }
+ break
+ case 22:
+ fallthrough
+ case 23:
+ {
+ sqlite3Fts5ParseNearsetFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
+ }
+ break
+ case 24:
+ {
+ sqlite3Fts5ParsePhraseFree(tls, *(*uintptr)(unsafe.Pointer(fts5yypminor)))
+ }
+ break
+
+ default:
+ break
+ }
+}
+
+func fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) {
+ var fts5yytos uintptr
+
+ fts5yytos = libc.PostDecUintptr(&(*Fts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos, 24)
+ fts5yy_destructor(tls, pParser, (*Fts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8)
+}
+
+func sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) {
+ var pParser uintptr = p
+ for (*Fts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 {
+ fts5yy_pop_parser_stack(tls, pParser)
+ }
+}
+
+func sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) {
+ if p == uintptr(0) {
+ return
+ }
+ sqlite3Fts5ParserFinalize(tls, p)
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{freeProc})).f(tls, p)
+}
+
+func fts5yy_find_shift_action(tls *libc.TLS, iLookAhead uint8, stateno uint8) uint8 {
+ var i int32
+
+ if int32(stateno) > Fts5YY_MAX_SHIFT {
+ return stateno
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = 1 != 0 {
+ i = int32(fts5yy_shift_ofst[stateno])
+
+ i = i + int32(iLookAhead)
+
+ if int32(fts5yy_lookahead[i]) != int32(iLookAhead) {
+ return fts5yy_default[stateno]
+ } else {
+ return fts5yy_action[i]
+ }
+ }
+ return uint8(0)
+}
+
+func fts5yy_find_reduce_action(tls *libc.TLS, stateno uint8, iLookAhead uint8) uint8 {
+ var i int32
+
+ i = int32(fts5yy_reduce_ofst[stateno])
+
+ i = i + int32(iLookAhead)
+
+ return fts5yy_action[i]
+}
+
+func fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) {
+ var pParse uintptr = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
+
+ for (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 {
+ fts5yy_pop_parser_stack(tls, fts5yypParser)
+ }
+
+ sqlite3Fts5ParseError(tls, pParse, ts+34136, 0)
+
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse
+
+}
+
+func fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, fts5yyMajor uint8, fts5yyMinor Fts5Token) {
+ var fts5yytos uintptr
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24
+ if (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd {
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24
+ fts5yyStackOverflow(tls, fts5yypParser)
+ return
+ }
+ if int32(fts5yyNewState) > Fts5YY_MAX_SHIFT {
+ fts5yyNewState = uint8(int32(fts5yyNewState) + (Fts5YY_MIN_REDUCE - Fts5YY_MIN_SHIFTREDUCE))
+ }
+ fts5yytos = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor
+ *(*Fts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor
+
+}
+
+var fts5yyRuleInfoLhs = [28]uint8{
+ uint8(16),
+ uint8(20),
+ uint8(20),
+ uint8(20),
+ uint8(20),
+ uint8(21),
+ uint8(21),
+ uint8(17),
+ uint8(17),
+ uint8(17),
+ uint8(17),
+ uint8(17),
+ uint8(17),
+ uint8(19),
+ uint8(19),
+ uint8(18),
+ uint8(18),
+ uint8(22),
+ uint8(22),
+ uint8(22),
+ uint8(23),
+ uint8(23),
+ uint8(25),
+ uint8(25),
+ uint8(24),
+ uint8(24),
+ uint8(26),
+ uint8(26),
+}
+
+var fts5yyRuleInfoNRhs = [28]int8{
+ int8(-1),
+ int8(-4),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-2),
+ int8(-1),
+ int8(-3),
+ int8(-3),
+ int8(-3),
+ int8(-5),
+ int8(-3),
+ int8(-1),
+ int8(-1),
+ int8(-2),
+ int8(-1),
+ int8(-3),
+ int8(-1),
+ int8(-2),
+ int8(-5),
+ int8(-1),
+ int8(-2),
+ int8(0),
+ int8(-2),
+ int8(-4),
+ int8(-2),
+ int8(-1),
+ int8(0),
+}
+
+func fts5yy_reduce(tls *libc.TLS, fts5yypParser uintptr, fts5yyruleno uint32, fts5yyLookahead int32, fts5yyLookaheadToken Fts5Token) uint8 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var fts5yygoto int32
+ var fts5yyact uint8
+ var fts5yymsp uintptr
+ var fts5yysize int32
+ var pParse uintptr = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
+ _ = fts5yyLookahead
+ _ = fts5yyLookaheadToken
+ fts5yymsp = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos
+
+ {
+ switch fts5yyruleno {
+ case uint32(0):
+ {
+ sqlite3Fts5ParseFinished(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ break
+ case uint32(1):
+ {
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = sqlite3Fts5ParseColsetInvert(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(2):
+ {
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(3):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseColset(tls, pParse, uintptr(0), fts5yymsp+8)
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(4):
+ {
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = sqlite3Fts5ParseColset(tls, pParse, uintptr(0), fts5yymsp+8)
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = sqlite3Fts5ParseColsetInvert(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)))
+ }
+ break
+ case uint32(5):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseColset(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)), fts5yymsp+8)
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(6):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseColset(tls, pParse, uintptr(0), fts5yymsp+8)
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(7):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_AND, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)), uintptr(0))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(8):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_OR, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)), uintptr(0))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(9):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_NOT, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)), uintptr(0))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(10):
+ {
+ sqlite3Fts5ParseSetColset(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-4)*24 + 8)))
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(11):
+ {
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8))
+ }
+ break
+ case uint32(12):
+ fallthrough
+ case uint32(13):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(fts5yymsp + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(14):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseImplicitAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(15):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_STRING, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(16):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_STRING, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ sqlite3Fts5ParseSetColset(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(17):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNearset(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(18):
+ {
+ sqlite3Fts5ParseSetCaret(tls, *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = sqlite3Fts5ParseNearset(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ break
+ case uint32(19):
+ {
+ sqlite3Fts5ParseNear(tls, pParse, fts5yymsp+libc.UintptrFromInt32(-4)*24+8)
+ sqlite3Fts5ParseSetDistance(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8)), fts5yymsp+libc.UintptrFromInt32(-1)*24+8)
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-2)*24 + 8))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-4)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(20):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNearset(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(21):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseNearset(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)), *(*uintptr)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(22):
+ {
+ (*Fts5Token)(unsafe.Pointer(fts5yymsp + 1*24 + 8)).Fp = uintptr(0)
+ (*Fts5Token)(unsafe.Pointer(fts5yymsp + 1*24 + 8)).Fn = 0
+ }
+ break
+ case uint32(23):
+ {
+ *(*Fts5Token)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*Fts5Token)(unsafe.Pointer(fts5yymsp + 8))
+ }
+ break
+ case uint32(24):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-3)*24 + 8)), fts5yymsp+libc.UintptrFromInt32(-1)*24+8, *(*int32)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-3)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(25):
+ {
+ *(*uintptr)(unsafe.Pointer(bp)) = sqlite3Fts5ParseTerm(tls, pParse, uintptr(0), fts5yymsp+libc.UintptrFromInt32(-1)*24+8, *(*int32)(unsafe.Pointer(fts5yymsp + 8)))
+ }
+ *(*uintptr)(unsafe.Pointer(fts5yymsp + libc.UintptrFromInt32(-1)*24 + 8)) = *(*uintptr)(unsafe.Pointer(bp))
+ break
+ case uint32(26):
+ {
+ *(*int32)(unsafe.Pointer(fts5yymsp + 8)) = 1
+ }
+ break
+ case uint32(27):
+ {
+ *(*int32)(unsafe.Pointer(fts5yymsp + 1*24 + 8)) = 0
+ }
+ break
+ default:
+ break
+
+ }
+ }
+
+ fts5yygoto = int32(fts5yyRuleInfoLhs[fts5yyruleno])
+ fts5yysize = int32(fts5yyRuleInfoNRhs[fts5yyruleno])
+ fts5yyact = fts5yy_find_reduce_action(tls, (*Fts5yyStackEntry)(unsafe.Pointer(fts5yymsp+uintptr(fts5yysize)*24)).Fstateno, uint8(fts5yygoto))
+
+ fts5yymsp += 24 * uintptr(fts5yysize+1)
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yymsp
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yymsp)).Fstateno = fts5yyact
+ (*Fts5yyStackEntry)(unsafe.Pointer(fts5yymsp)).Fmajor = uint8(fts5yygoto)
+
+ return fts5yyact
+}
+
+func fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int32, fts5yyminor Fts5Token) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pParse uintptr = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
+
+ _ = fts5yymajor
+ sqlite3Fts5ParseError(tls,
+ pParse, ts+34164, libc.VaList(bp, fts5yyminor.Fn, fts5yyminor.Fp))
+
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse
+
+}
+
+func fts5yy_accept(tls *libc.TLS, fts5yypParser uintptr) {
+ var pParse uintptr = (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse
+
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse
+
+}
+
+func sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5yyminor Fts5Token, pParse uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var fts5yyact uint8
+ var fts5yypParser uintptr = fts5yyp
+
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse
+
+ fts5yyact = (*Fts5yyStackEntry)(unsafe.Pointer((*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos)).Fstateno
+
+ for 1 != 0 {
+ fts5yyact = fts5yy_find_shift_action(tls, uint8(fts5yymajor), fts5yyact)
+ if int32(fts5yyact) >= Fts5YY_MIN_REDUCE {
+ var fts5yyruleno uint32 = uint32(int32(fts5yyact) - Fts5YY_MIN_REDUCE)
+
+ if int32(fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 {
+ if (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd {
+ fts5yyStackOverflow(tls, fts5yypParser)
+ break
+ }
+ }
+ fts5yyact = fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor)
+ } else if int32(fts5yyact) <= Fts5YY_MAX_SHIFTREDUCE {
+ fts5yy_shift(tls, fts5yypParser, fts5yyact, uint8(fts5yymajor), fts5yyminor)
+ break
+ } else if int32(fts5yyact) == Fts5YY_ACCEPT_ACTION {
+ (*Fts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24
+ fts5yy_accept(tls, fts5yypParser)
+ return
+ } else {
+ *(*Fts5Token)(unsafe.Pointer(bp)) = fts5yyminor
+
+ fts5yy_syntax_error(tls, fts5yypParser, fts5yymajor, fts5yyminor)
+ fts5yy_destructor(tls, fts5yypParser, uint8(fts5yymajor), bp)
+ break
+ }
+ }
+ return
+}
+
+func sqlite3Fts5ParserFallback(tls *libc.TLS, iToken int32) int32 {
+ _ = iToken
+ return 0
+}
+
+// Object used to iterate through all "coalesced phrase instances" in
+// a single column of the current row. If the phrase instances in the
+// column being considered do not overlap, this object simply iterates
+// through them. Or, if they do overlap (share one or more tokens in
+// common), each set of overlapping instances is treated as a single
+// match. See documentation for the highlight() auxiliary function for
+// details.
+//
+// Usage is:
+//
+// for(rc = fts5CInstIterNext(pApi, pFts, iCol, &iter);
+// (rc==SQLITE_OK && 0==fts5CInstIterEof(&iter);
+// rc = fts5CInstIterNext(&iter)
+// ){
+// printf("instance starts at %d, ends at %d\n", iter.iStart, iter.iEnd);
+// }
+type CInstIter1 = struct {
+ FpApi uintptr
+ FpFts uintptr
+ FiCol int32
+ FiInst int32
+ FnInst int32
+ FiStart int32
+ FiEnd int32
+ F__ccgo_pad1 [4]byte
+}
+
+// Object used to iterate through all "coalesced phrase instances" in
+// a single column of the current row. If the phrase instances in the
+// column being considered do not overlap, this object simply iterates
+// through them. Or, if they do overlap (share one or more tokens in
+// common), each set of overlapping instances is treated as a single
+// match. See documentation for the highlight() auxiliary function for
+// details.
+//
+// Usage is:
+//
+// for(rc = fts5CInstIterNext(pApi, pFts, iCol, &iter);
+// (rc==SQLITE_OK && 0==fts5CInstIterEof(&iter);
+// rc = fts5CInstIterNext(&iter)
+// ){
+// printf("instance starts at %d, ends at %d\n", iter.iStart, iter.iEnd);
+// }
+type CInstIter = CInstIter1
+
+func fts5CInstIterNext(tls *libc.TLS, pIter uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var rc int32 = SQLITE_OK
+ (*CInstIter)(unsafe.Pointer(pIter)).FiStart = -1
+ (*CInstIter)(unsafe.Pointer(pIter)).FiEnd = -1
+
+ for rc == SQLITE_OK && (*CInstIter)(unsafe.Pointer(pIter)).FiInst < (*CInstIter)(unsafe.Pointer(pIter)).FnInst {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer((*CInstIter)(unsafe.Pointer(pIter)).FpApi)).FxInst})).f(tls, (*CInstIter)(unsafe.Pointer(pIter)).FpFts, (*CInstIter)(unsafe.Pointer(pIter)).FiInst, bp, bp+4, bp+8)
+ if rc == SQLITE_OK {
+ if *(*int32)(unsafe.Pointer(bp + 4)) == (*CInstIter)(unsafe.Pointer(pIter)).FiCol {
+ var iEnd int32 = *(*int32)(unsafe.Pointer(bp + 8)) - 1 + (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer((*CInstIter)(unsafe.Pointer(pIter)).FpApi)).FxPhraseSize})).f(tls, (*CInstIter)(unsafe.Pointer(pIter)).FpFts, *(*int32)(unsafe.Pointer(bp)))
+ if (*CInstIter)(unsafe.Pointer(pIter)).FiStart < 0 {
+ (*CInstIter)(unsafe.Pointer(pIter)).FiStart = *(*int32)(unsafe.Pointer(bp + 8))
+ (*CInstIter)(unsafe.Pointer(pIter)).FiEnd = iEnd
+ } else if *(*int32)(unsafe.Pointer(bp + 8)) <= (*CInstIter)(unsafe.Pointer(pIter)).FiEnd {
+ if iEnd > (*CInstIter)(unsafe.Pointer(pIter)).FiEnd {
+ (*CInstIter)(unsafe.Pointer(pIter)).FiEnd = iEnd
+ }
+ } else {
+ break
+ }
+ }
+ (*CInstIter)(unsafe.Pointer(pIter)).FiInst++
+ }
+ }
+
+ return rc
+}
+
+func fts5CInstIterInit(tls *libc.TLS, pApi uintptr, pFts uintptr, iCol int32, pIter uintptr) int32 {
+ var rc int32
+
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(CInstIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+ (*CInstIter)(unsafe.Pointer(pIter)).FpApi = pApi
+ (*CInstIter)(unsafe.Pointer(pIter)).FpFts = pFts
+ (*CInstIter)(unsafe.Pointer(pIter)).FiCol = iCol
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInstCount})).f(tls, pFts, pIter+24)
+
+ if rc == SQLITE_OK {
+ rc = fts5CInstIterNext(tls, pIter)
+ }
+
+ return rc
+}
+
+// ************************************************************************
+//
+// Start of highlight() implementation.
+type HighlightContext1 = struct {
+ Fiter CInstIter
+ FiPos int32
+ FiRangeStart int32
+ FiRangeEnd int32
+ F__ccgo_pad1 [4]byte
+ FzOpen uintptr
+ FzClose uintptr
+ FzIn uintptr
+ FnIn int32
+ FiOff int32
+ FzOut uintptr
+}
+
+// ************************************************************************
+//
+// Start of highlight() implementation.
+type HighlightContext = HighlightContext1
+
+func fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n int32) {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK && z != 0 {
+ if n < 0 {
+ n = int32(libc.Xstrlen(tls, z))
+ }
+ (*HighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, ts+34195, libc.VaList(bp, (*HighlightContext)(unsafe.Pointer(p)).FzOut, n, z))
+ if (*HighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+}
+
+func fts5HighlightCb(tls *libc.TLS, pContext uintptr, tflags int32, pToken uintptr, nToken int32, iStartOff int32, iEndOff int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var p uintptr = pContext
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var iPos int32
+
+ _ = pToken
+ _ = nToken
+
+ if tflags&FTS5_TOKEN_COLOCATED != 0 {
+ return SQLITE_OK
+ }
+ iPos = libc.PostIncInt32(&(*HighlightContext)(unsafe.Pointer(p)).FiPos, 1)
+
+ if (*HighlightContext)(unsafe.Pointer(p)).FiRangeEnd > 0 {
+ if iPos < (*HighlightContext)(unsafe.Pointer(p)).FiRangeStart || iPos > (*HighlightContext)(unsafe.Pointer(p)).FiRangeEnd {
+ return SQLITE_OK
+ }
+ if (*HighlightContext)(unsafe.Pointer(p)).FiRangeStart != 0 && iPos == (*HighlightContext)(unsafe.Pointer(p)).FiRangeStart {
+ (*HighlightContext)(unsafe.Pointer(p)).FiOff = iStartOff
+ }
+ }
+
+ if iPos == (*HighlightContext)(unsafe.Pointer(p)).Fiter.FiStart {
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzIn+uintptr((*HighlightContext)(unsafe.Pointer(p)).FiOff), iStartOff-(*HighlightContext)(unsafe.Pointer(p)).FiOff)
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzOpen, -1)
+ (*HighlightContext)(unsafe.Pointer(p)).FiOff = iStartOff
+ }
+
+ if iPos == (*HighlightContext)(unsafe.Pointer(p)).Fiter.FiEnd {
+ if (*HighlightContext)(unsafe.Pointer(p)).FiRangeEnd != 0 && (*HighlightContext)(unsafe.Pointer(p)).Fiter.FiStart < (*HighlightContext)(unsafe.Pointer(p)).FiRangeStart {
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzOpen, -1)
+ }
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzIn+uintptr((*HighlightContext)(unsafe.Pointer(p)).FiOff), iEndOff-(*HighlightContext)(unsafe.Pointer(p)).FiOff)
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzClose, -1)
+ (*HighlightContext)(unsafe.Pointer(p)).FiOff = iEndOff
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = fts5CInstIterNext(tls, p)
+ }
+ }
+
+ if (*HighlightContext)(unsafe.Pointer(p)).FiRangeEnd > 0 && iPos == (*HighlightContext)(unsafe.Pointer(p)).FiRangeEnd {
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzIn+uintptr((*HighlightContext)(unsafe.Pointer(p)).FiOff), iEndOff-(*HighlightContext)(unsafe.Pointer(p)).FiOff)
+ (*HighlightContext)(unsafe.Pointer(p)).FiOff = iEndOff
+ if iPos >= (*HighlightContext)(unsafe.Pointer(p)).Fiter.FiStart && iPos < (*HighlightContext)(unsafe.Pointer(p)).Fiter.FiEnd {
+ fts5HighlightAppend(tls, bp, p, (*HighlightContext)(unsafe.Pointer(p)).FzClose, -1)
+ }
+ }
+
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintptr, nVal int32, apVal uintptr) {
+ bp := tls.Alloc(100)
+ defer tls.Free(100)
+
+ var iCol int32
+
+ if nVal != 3 {
+ var zErr uintptr = ts + 34202
+ Xsqlite3_result_error(tls, pCtx, zErr, -1)
+ return
+ }
+
+ iCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(apVal)))
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(HighlightContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*HighlightContext)(unsafe.Pointer(bp)).FzOpen = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ (*HighlightContext)(unsafe.Pointer(bp)).FzClose = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + 2*8)))
+ *(*int32)(unsafe.Pointer(bp + 96)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})).f(tls, pFts, iCol, bp+72, bp+80)
+
+ if (*HighlightContext)(unsafe.Pointer(bp)).FzIn != 0 {
+ if *(*int32)(unsafe.Pointer(bp + 96)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 96)) = fts5CInstIterInit(tls, pApi, pFts, iCol, bp)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 96)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 96)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxTokenize})).f(tls, pFts, (*HighlightContext)(unsafe.Pointer(bp)).FzIn, (*HighlightContext)(unsafe.Pointer(bp)).FnIn, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5HighlightCb})))
+ }
+ fts5HighlightAppend(tls, bp+96, bp, (*HighlightContext)(unsafe.Pointer(bp)).FzIn+uintptr((*HighlightContext)(unsafe.Pointer(bp)).FiOff), (*HighlightContext)(unsafe.Pointer(bp)).FnIn-(*HighlightContext)(unsafe.Pointer(bp)).FiOff)
+
+ if *(*int32)(unsafe.Pointer(bp + 96)) == SQLITE_OK {
+ Xsqlite3_result_text(tls, pCtx, (*HighlightContext)(unsafe.Pointer(bp)).FzOut, -1, libc.UintptrFromInt32(-1))
+ }
+ Xsqlite3_free(tls, (*HighlightContext)(unsafe.Pointer(bp)).FzOut)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 96)) != SQLITE_OK {
+ Xsqlite3_result_error_code(tls, pCtx, *(*int32)(unsafe.Pointer(bp + 96)))
+ }
+}
+
+// Context object passed to the fts5SentenceFinderCb() function.
+type Fts5SFinder1 = struct {
+ FiPos int32
+ FnFirstAlloc int32
+ FnFirst int32
+ F__ccgo_pad1 [4]byte
+ FaFirst uintptr
+ FzDoc uintptr
+}
+
+// Context object passed to the fts5SentenceFinderCb() function.
+type Fts5SFinder = Fts5SFinder1
+
+func fts5SentenceFinderAdd(tls *libc.TLS, p uintptr, iAdd int32) int32 {
+ if (*Fts5SFinder)(unsafe.Pointer(p)).FnFirstAlloc == (*Fts5SFinder)(unsafe.Pointer(p)).FnFirst {
+ var nNew int32
+ if (*Fts5SFinder)(unsafe.Pointer(p)).FnFirstAlloc != 0 {
+ nNew = (*Fts5SFinder)(unsafe.Pointer(p)).FnFirstAlloc * 2
+ } else {
+ nNew = 64
+ }
+ var aNew uintptr
+
+ aNew = Xsqlite3_realloc64(tls, (*Fts5SFinder)(unsafe.Pointer(p)).FaFirst, uint64(nNew)*uint64(unsafe.Sizeof(int32(0))))
+ if aNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Fts5SFinder)(unsafe.Pointer(p)).FaFirst = aNew
+ (*Fts5SFinder)(unsafe.Pointer(p)).FnFirstAlloc = nNew
+ }
+ *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(p)).FaFirst + uintptr(libc.PostIncInt32(&(*Fts5SFinder)(unsafe.Pointer(p)).FnFirst, 1))*4)) = iAdd
+ return SQLITE_OK
+}
+
+func fts5SentenceFinderCb(tls *libc.TLS, pContext uintptr, tflags int32, pToken uintptr, nToken int32, iStartOff int32, iEndOff int32) int32 {
+ var rc int32 = SQLITE_OK
+
+ _ = pToken
+ _ = nToken
+ _ = iEndOff
+
+ if tflags&FTS5_TOKEN_COLOCATED == 0 {
+ var p uintptr = pContext
+ if (*Fts5SFinder)(unsafe.Pointer(p)).FiPos > 0 {
+ var i int32
+ var c int8 = int8(0)
+ for i = iStartOff - 1; i >= 0; i-- {
+ c = *(*int8)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(p)).FzDoc + uintptr(i)))
+ if int32(c) != ' ' && int32(c) != '\t' && int32(c) != '\n' && int32(c) != '\r' {
+ break
+ }
+ }
+ if i != iStartOff-1 && (int32(c) == '.' || int32(c) == ':') {
+ rc = fts5SentenceFinderAdd(tls, p, (*Fts5SFinder)(unsafe.Pointer(p)).FiPos)
+ }
+ } else {
+ rc = fts5SentenceFinderAdd(tls, p, 0)
+ }
+ (*Fts5SFinder)(unsafe.Pointer(p)).FiPos++
+ }
+ return rc
+}
+
+func fts5SnippetScore(tls *libc.TLS, pApi uintptr, pFts uintptr, nDocsize int32, aSeen uintptr, iCol int32, iPos int32, nToken int32, pnScore uintptr, piPos uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ *(*int32)(unsafe.Pointer(bp + 12)) = 0
+ var iFirst int32 = -1
+
+ var nScore int32 = 0
+ var iLast int32 = 0
+ var iEnd Sqlite3_int64 = Sqlite3_int64(iPos) + Sqlite3_int64(nToken)
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInstCount})).f(tls, pFts, bp)
+ for i = 0; i < *(*int32)(unsafe.Pointer(bp)) && rc == SQLITE_OK; i++ {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInst})).f(tls, pFts, i, bp+4, bp+8, bp+12)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) == iCol && *(*int32)(unsafe.Pointer(bp + 12)) >= iPos && Sqlite3_int64(*(*int32)(unsafe.Pointer(bp + 12))) < iEnd {
+ nScore = nScore + func() int32 {
+ if *(*uint8)(unsafe.Pointer(aSeen + uintptr(*(*int32)(unsafe.Pointer(bp + 4))))) != 0 {
+ return 1
+ }
+ return 1000
+ }()
+ *(*uint8)(unsafe.Pointer(aSeen + uintptr(*(*int32)(unsafe.Pointer(bp + 4))))) = uint8(1)
+ if iFirst < 0 {
+ iFirst = *(*int32)(unsafe.Pointer(bp + 12))
+ }
+ iLast = *(*int32)(unsafe.Pointer(bp + 12)) + (*struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxPhraseSize})).f(tls, pFts, *(*int32)(unsafe.Pointer(bp + 4)))
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pnScore)) = nScore
+ if piPos != 0 {
+ var iAdj Sqlite3_int64 = Sqlite3_int64(iFirst - (nToken-(iLast-iFirst))/2)
+ if iAdj+Sqlite3_int64(nToken) > Sqlite3_int64(nDocsize) {
+ iAdj = Sqlite3_int64(nDocsize - nToken)
+ }
+ if iAdj < int64(0) {
+ iAdj = int64(0)
+ }
+ *(*int32)(unsafe.Pointer(piPos)) = int32(iAdj)
+ }
+
+ return rc
+}
+
+func fts5ValueToText(tls *libc.TLS, pVal uintptr) uintptr {
+ var zRet uintptr = Xsqlite3_value_text(tls, pVal)
+ if zRet != 0 {
+ return zRet
+ }
+ return ts + 1547
+}
+
+func fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintptr, nVal int32, apVal uintptr) {
+ bp := tls.Alloc(172)
+ defer tls.Free(172)
+
+ *(*int32)(unsafe.Pointer(bp + 168)) = SQLITE_OK
+ var iCol int32
+ var zEllips uintptr
+ var nToken int32
+ *(*int32)(unsafe.Pointer(bp + 96)) = 0
+ var i int32
+ var nPhrase int32
+ var aSeen uintptr
+ var iBestCol int32
+ var iBestStart int32 = 0
+ var nBestScore int32 = 0
+ *(*int32)(unsafe.Pointer(bp + 164)) = 0
+
+ var nCol int32
+
+ if nVal != 5 {
+ var zErr uintptr = ts + 34252
+ Xsqlite3_result_error(tls, pCtx, zErr, -1)
+ return
+ }
+
+ nCol = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnCount})).f(tls, pFts)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(HighlightContext{})), libc.X__builtin_object_size(tls, bp, 0))
+ iCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(apVal)))
+ (*HighlightContext)(unsafe.Pointer(bp)).FzOpen = fts5ValueToText(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ (*HighlightContext)(unsafe.Pointer(bp)).FzClose = fts5ValueToText(tls, *(*uintptr)(unsafe.Pointer(apVal + 2*8)))
+ zEllips = fts5ValueToText(tls, *(*uintptr)(unsafe.Pointer(apVal + 3*8)))
+ nToken = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(apVal + 4*8)))
+
+ iBestCol = func() int32 {
+ if iCol >= 0 {
+ return iCol
+ }
+ return 0
+ }()
+ nPhrase = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxPhraseCount})).f(tls, pFts)
+ aSeen = Xsqlite3_malloc(tls, nPhrase)
+ if aSeen == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 168)) = SQLITE_NOMEM
+ }
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInstCount})).f(tls, pFts, bp+96)
+ }
+
+ libc.X__builtin___memset_chk(tls, bp+104, 0, uint64(unsafe.Sizeof(Fts5SFinder{})), libc.X__builtin_object_size(tls, bp+104, 0))
+ for i = 0; i < nCol; i++ {
+ if iCol < 0 || iCol == i {
+ var ii int32
+ (*Fts5SFinder)(unsafe.Pointer(bp + 104)).FiPos = 0
+ (*Fts5SFinder)(unsafe.Pointer(bp + 104)).FnFirst = 0
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})).f(tls, pFts, i, bp+104+24, bp+136)
+ if *(*int32)(unsafe.Pointer(bp + 168)) != SQLITE_OK {
+ break
+ }
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxTokenize})).f(tls, pFts,
+ (*Fts5SFinder)(unsafe.Pointer(bp+104)).FzDoc, *(*int32)(unsafe.Pointer(bp + 136)), bp+104, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5SentenceFinderCb})))
+ if *(*int32)(unsafe.Pointer(bp + 168)) != SQLITE_OK {
+ break
+ }
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnSize})).f(tls, pFts, i, bp+140)
+ if *(*int32)(unsafe.Pointer(bp + 168)) != SQLITE_OK {
+ break
+ }
+
+ for ii = 0; *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK && ii < *(*int32)(unsafe.Pointer(bp + 96)); ii++ {
+ var jj int32
+
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInst})).f(tls, pFts, ii, bp+144, bp+148, bp+152)
+ if *(*int32)(unsafe.Pointer(bp + 148)) != i {
+ continue
+ }
+ if *(*int32)(unsafe.Pointer(bp + 152)) > *(*int32)(unsafe.Pointer(bp + 140)) {
+ *(*int32)(unsafe.Pointer(bp + 168)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+ if *(*int32)(unsafe.Pointer(bp + 168)) != SQLITE_OK {
+ continue
+ }
+ libc.X__builtin___memset_chk(tls, aSeen, 0, uint64(nPhrase), libc.X__builtin_object_size(tls, aSeen, 0))
+ *(*int32)(unsafe.Pointer(bp + 168)) = fts5SnippetScore(tls, pApi, pFts, *(*int32)(unsafe.Pointer(bp + 140)), aSeen, i,
+ *(*int32)(unsafe.Pointer(bp + 152)), nToken, bp+156, bp+160)
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 156)) > nBestScore {
+ nBestScore = *(*int32)(unsafe.Pointer(bp + 156))
+ iBestCol = i
+ iBestStart = *(*int32)(unsafe.Pointer(bp + 160))
+ *(*int32)(unsafe.Pointer(bp + 164)) = *(*int32)(unsafe.Pointer(bp + 140))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK && (*Fts5SFinder)(unsafe.Pointer(bp+104)).FnFirst != 0 && *(*int32)(unsafe.Pointer(bp + 140)) > nToken {
+ for jj = 0; jj < (*Fts5SFinder)(unsafe.Pointer(bp+104)).FnFirst-1; jj++ {
+ if *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst + uintptr(jj+1)*4)) > *(*int32)(unsafe.Pointer(bp + 152)) {
+ break
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst + uintptr(jj)*4)) < *(*int32)(unsafe.Pointer(bp + 152)) {
+ libc.X__builtin___memset_chk(tls, aSeen, 0, uint64(nPhrase), libc.X__builtin_object_size(tls, aSeen, 0))
+ *(*int32)(unsafe.Pointer(bp + 168)) = fts5SnippetScore(tls, pApi, pFts, *(*int32)(unsafe.Pointer(bp + 140)), aSeen, i,
+ *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst + uintptr(jj)*4)), nToken, bp+156, uintptr(0))
+
+ *(*int32)(unsafe.Pointer(bp + 156)) += func() int32 {
+ if *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst + uintptr(jj)*4)) == 0 {
+ return 120
+ }
+ return 100
+ }()
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 156)) > nBestScore {
+ nBestScore = *(*int32)(unsafe.Pointer(bp + 156))
+ iBestCol = i
+ iBestStart = *(*int32)(unsafe.Pointer((*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst + uintptr(jj)*4))
+ *(*int32)(unsafe.Pointer(bp + 164)) = *(*int32)(unsafe.Pointer(bp + 140))
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})).f(tls, pFts, iBestCol, bp+72, bp+80)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 164)) == 0 {
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnSize})).f(tls, pFts, iBestCol, bp+164)
+ }
+ if (*HighlightContext)(unsafe.Pointer(bp)).FzIn != 0 {
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 168)) = fts5CInstIterInit(tls, pApi, pFts, iBestCol, bp)
+ }
+
+ (*HighlightContext)(unsafe.Pointer(bp)).FiRangeStart = iBestStart
+ (*HighlightContext)(unsafe.Pointer(bp)).FiRangeEnd = iBestStart + nToken - 1
+
+ if iBestStart > 0 {
+ fts5HighlightAppend(tls, bp+168, bp, zEllips, -1)
+ }
+
+ for (*HighlightContext)(unsafe.Pointer(bp)).Fiter.FiStart >= 0 && (*HighlightContext)(unsafe.Pointer(bp)).Fiter.FiStart < iBestStart && *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 168)) = fts5CInstIterNext(tls, bp)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 168)) = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxTokenize})).f(tls, pFts, (*HighlightContext)(unsafe.Pointer(bp)).FzIn, (*HighlightContext)(unsafe.Pointer(bp)).FnIn, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5HighlightCb})))
+ }
+ if (*HighlightContext)(unsafe.Pointer(bp)).FiRangeEnd >= *(*int32)(unsafe.Pointer(bp + 164))-1 {
+ fts5HighlightAppend(tls, bp+168, bp, (*HighlightContext)(unsafe.Pointer(bp)).FzIn+uintptr((*HighlightContext)(unsafe.Pointer(bp)).FiOff), (*HighlightContext)(unsafe.Pointer(bp)).FnIn-(*HighlightContext)(unsafe.Pointer(bp)).FiOff)
+ } else {
+ fts5HighlightAppend(tls, bp+168, bp, zEllips, -1)
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 168)) == SQLITE_OK {
+ Xsqlite3_result_text(tls, pCtx, (*HighlightContext)(unsafe.Pointer(bp)).FzOut, -1, libc.UintptrFromInt32(-1))
+ } else {
+ Xsqlite3_result_error_code(tls, pCtx, *(*int32)(unsafe.Pointer(bp + 168)))
+ }
+ Xsqlite3_free(tls, (*HighlightContext)(unsafe.Pointer(bp)).FzOut)
+ Xsqlite3_free(tls, aSeen)
+ Xsqlite3_free(tls, (*Fts5SFinder)(unsafe.Pointer(bp+104)).FaFirst)
+}
+
+// The first time the bm25() function is called for a query, an instance
+// of the following structure is allocated and populated.
+type Fts5Bm25Data1 = struct {
+ FnPhrase int32
+ F__ccgo_pad1 [4]byte
+ Favgdl float64
+ FaIDF uintptr
+ FaFreq uintptr
+}
+
+// The first time the bm25() function is called for a query, an instance
+// of the following structure is allocated and populated.
+type Fts5Bm25Data = Fts5Bm25Data1
+
+func fts5CountCb(tls *libc.TLS, pApi uintptr, pFts uintptr, pUserData uintptr) int32 {
+ var pn uintptr = pUserData
+ _ = pApi
+ _ = pFts
+ *(*Sqlite3_int64)(unsafe.Pointer(pn))++
+ return SQLITE_OK
+}
+
+func fts5Bm25GetData(tls *libc.TLS, pApi uintptr, pFts uintptr, ppData uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32 = SQLITE_OK
+ var p uintptr
+
+ p = (*struct {
+ f func(*libc.TLS, uintptr, int32) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxGetAuxdata})).f(tls, pFts, 0)
+ if p == uintptr(0) {
+ var nPhrase int32
+ *(*Sqlite3_int64)(unsafe.Pointer(bp)) = int64(0)
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 8)) = int64(0)
+ var nByte Sqlite3_int64
+ var i int32
+
+ nPhrase = (*struct {
+ f func(*libc.TLS, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxPhraseCount})).f(tls, pFts)
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Bm25Data{})) + uint64(nPhrase*2)*uint64(unsafe.Sizeof(float64(0))))
+ p = Xsqlite3_malloc64(tls, uint64(nByte))
+ if p == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, p, 0, Size_t(nByte), libc.X__builtin_object_size(tls, p, 0))
+ (*Fts5Bm25Data)(unsafe.Pointer(p)).FnPhrase = nPhrase
+ (*Fts5Bm25Data)(unsafe.Pointer(p)).FaIDF = p + 1*32
+ (*Fts5Bm25Data)(unsafe.Pointer(p)).FaFreq = (*Fts5Bm25Data)(unsafe.Pointer(p)).FaIDF + uintptr(nPhrase)*8
+ }
+
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxRowCount})).f(tls, pFts, bp)
+ }
+
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnTotalSize})).f(tls, pFts, -1, bp+8)
+ }
+ if rc == SQLITE_OK {
+ (*Fts5Bm25Data)(unsafe.Pointer(p)).Favgdl = float64(*(*Sqlite3_int64)(unsafe.Pointer(bp + 8))) / float64(*(*Sqlite3_int64)(unsafe.Pointer(bp)))
+ }
+
+ for i = 0; rc == SQLITE_OK && i < nPhrase; i++ {
+ *(*Sqlite3_int64)(unsafe.Pointer(bp + 16)) = int64(0)
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxQueryPhrase})).f(tls, pFts, i, bp+16, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ }{fts5CountCb})))
+ if rc == SQLITE_OK {
+ var idf float64 = libc.Xlog(tls, (float64(*(*Sqlite3_int64)(unsafe.Pointer(bp))-*(*Sqlite3_int64)(unsafe.Pointer(bp + 16)))+0.5)/(float64(*(*Sqlite3_int64)(unsafe.Pointer(bp + 16)))+0.5))
+ if idf <= 0.0 {
+ idf = 1e-6
+ }
+ *(*float64)(unsafe.Pointer((*Fts5Bm25Data)(unsafe.Pointer(p)).FaIDF + uintptr(i)*8)) = idf
+ }
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3_free(tls, p)
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxSetAuxdata})).f(tls, pFts, p, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ }
+ if rc != SQLITE_OK {
+ p = uintptr(0)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppData)) = p
+ return rc
+}
+
+func fts5Bm25Function(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintptr, nVal int32, apVal uintptr) {
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ var k1 float64 = 1.2
+ var b float64 = 0.75
+ var rc int32
+ var score float64 = 0.0
+
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ var D float64 = 0.0
+ var aFreq uintptr = uintptr(0)
+
+ rc = fts5Bm25GetData(tls, pApi, pFts, bp)
+ if rc == SQLITE_OK {
+ aFreq = (*Fts5Bm25Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaFreq
+ libc.X__builtin___memset_chk(tls, aFreq, 0, uint64(unsafe.Sizeof(float64(0)))*uint64((*Fts5Bm25Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnPhrase), libc.X__builtin_object_size(tls, aFreq, 0))
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInstCount})).f(tls, pFts, bp+8)
+ }
+ for i = 0; rc == SQLITE_OK && i < *(*int32)(unsafe.Pointer(bp + 8)); i++ {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxInst})).f(tls, pFts, i, bp+12, bp+16, bp+20)
+ if rc == SQLITE_OK {
+ var w float64
+ if nVal > *(*int32)(unsafe.Pointer(bp + 16)) {
+ w = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(*(*int32)(unsafe.Pointer(bp + 16)))*8)))
+ } else {
+ w = 1.0
+ }
+ *(*float64)(unsafe.Pointer(aFreq + uintptr(*(*int32)(unsafe.Pointer(bp + 12)))*8)) += w
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnSize})).f(tls, pFts, -1, bp+24)
+ D = float64(*(*int32)(unsafe.Pointer(bp + 24)))
+ }
+
+ if rc == SQLITE_OK {
+ for i = 0; i < (*Fts5Bm25Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnPhrase; i++ {
+ score = score + *(*float64)(unsafe.Pointer((*Fts5Bm25Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaIDF + uintptr(i)*8))*(*(*float64)(unsafe.Pointer(aFreq + uintptr(i)*8))*(k1+1.0)/(*(*float64)(unsafe.Pointer(aFreq + uintptr(i)*8))+k1*(float64(1)-b+b*D/(*Fts5Bm25Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Favgdl)))
+ }
+ Xsqlite3_result_double(tls, pCtx, -1.0*score)
+ } else {
+ Xsqlite3_result_error_code(tls, pCtx, rc)
+ }
+}
+
+func sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) int32 {
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ *(*[3]Builtin)(unsafe.Pointer(bp)) = [3]Builtin{
+ {FzFunc: ts + 34300, FxFunc: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr)
+ }{fts5SnippetFunction}))},
+ {FzFunc: ts + 34308, FxFunc: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr)
+ }{fts5HighlightFunction}))},
+ {FzFunc: ts + 34318, FxFunc: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr)
+ }{fts5Bm25Function}))},
+ }
+ var rc int32 = SQLITE_OK
+ var i int32
+
+ for i = 0; rc == SQLITE_OK && i < int32(uint64(unsafe.Sizeof([3]Builtin{}))/uint64(unsafe.Sizeof(Builtin{}))); i++ {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, Fts5_extension_function, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5_api)(unsafe.Pointer(pApi)).FxCreateFunction})).f(tls, pApi,
+ (*Builtin)(unsafe.Pointer(bp+uintptr(i)*32)).FzFunc,
+ (*Builtin)(unsafe.Pointer(bp+uintptr(i)*32)).FpUserData,
+ (*Builtin)(unsafe.Pointer(bp+uintptr(i)*32)).FxFunc,
+ (*Builtin)(unsafe.Pointer(bp+uintptr(i)*32)).FxDestroy)
+ }
+
+ return rc
+}
+
+type Builtin = struct {
+ FzFunc uintptr
+ FpUserData uintptr
+ FxFunc Fts5_extension_function
+ FxDestroy uintptr
+}
+
+func sqlite3Fts5BufferSize(tls *libc.TLS, pRc uintptr, pBuf uintptr, nByte U32) int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) < nByte {
+ var nNew U64
+ if (*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace != 0 {
+ nNew = uint64((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace)
+ } else {
+ nNew = uint64(64)
+ }
+ var pNew uintptr
+ for nNew < U64(nByte) {
+ nNew = nNew * uint64(2)
+ }
+ pNew = Xsqlite3_realloc64(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp, nNew)
+ if pNew == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ return 1
+ } else {
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace = int32(nNew)
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp = pNew
+ }
+ }
+ return 0
+}
+
+func sqlite3Fts5BufferAppendVarint(tls *libc.TLS, pRc uintptr, pBuf uintptr, iVal I64) {
+ if func() int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)+U32(9) <= U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
+ return 0
+ }
+ return sqlite3Fts5BufferSize(tls, pRc, pBuf, uint32(9+(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ }() != 0 {
+ return
+ }
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iVal))
+}
+
+func sqlite3Fts5Put32(tls *libc.TLS, aBuf uintptr, iVal int32) {
+ *(*U8)(unsafe.Pointer(aBuf)) = U8(iVal >> 24 & 0x00FF)
+ *(*U8)(unsafe.Pointer(aBuf + 1)) = U8(iVal >> 16 & 0x00FF)
+ *(*U8)(unsafe.Pointer(aBuf + 2)) = U8(iVal >> 8 & 0x00FF)
+ *(*U8)(unsafe.Pointer(aBuf + 3)) = U8(iVal >> 0 & 0x00FF)
+}
+
+func sqlite3Fts5Get32(tls *libc.TLS, aBuf uintptr) int32 {
+ return int32(U32(*(*U8)(unsafe.Pointer(aBuf)))<<24 + U32(int32(*(*U8)(unsafe.Pointer(aBuf + 1)))<<16) + U32(int32(*(*U8)(unsafe.Pointer(aBuf + 2)))<<8) + U32(*(*U8)(unsafe.Pointer(aBuf + 3))))
+}
+
+func sqlite3Fts5BufferAppendBlob(tls *libc.TLS, pRc uintptr, pBuf uintptr, nData U32, pData uintptr) {
+ if nData != 0 {
+ if func() int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)+nData <= U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
+ return 0
+ }
+ return sqlite3Fts5BufferSize(tls, pRc, pBuf, nData+U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ }() != 0 {
+ return
+ }
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), pData, uint64(nData), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += int32(nData)
+ }
+}
+
+func sqlite3Fts5BufferAppendString(tls *libc.TLS, pRc uintptr, pBuf uintptr, zStr uintptr) {
+ var nStr int32 = int32(libc.Xstrlen(tls, zStr))
+ sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(nStr+1), zStr)
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn--
+}
+
+func sqlite3Fts5BufferAppendPrintf(tls *libc.TLS, pRc uintptr, pBuf uintptr, zFmt uintptr, va uintptr) {
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var zTmp uintptr
+ var ap Va_list
+ _ = ap
+ ap = va
+ zTmp = Xsqlite3_vmprintf(tls, zFmt, ap)
+ _ = ap
+
+ if zTmp == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ } else {
+ sqlite3Fts5BufferAppendString(tls, pRc, pBuf, zTmp)
+ Xsqlite3_free(tls, zTmp)
+ }
+ }
+}
+
+func sqlite3Fts5Mprintf(tls *libc.TLS, pRc uintptr, zFmt uintptr, va uintptr) uintptr {
+ var zRet uintptr = uintptr(0)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var ap Va_list
+ _ = ap
+ ap = va
+ zRet = Xsqlite3_vmprintf(tls, zFmt, ap)
+ _ = ap
+ if zRet == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+ return zRet
+}
+
+func sqlite3Fts5BufferFree(tls *libc.TLS, pBuf uintptr) {
+ Xsqlite3_free(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp)
+ libc.X__builtin___memset_chk(tls, pBuf, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, pBuf, 0))
+}
+
+func sqlite3Fts5BufferZero(tls *libc.TLS, pBuf uintptr) {
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn = 0
+}
+
+func sqlite3Fts5BufferSet(tls *libc.TLS, pRc uintptr, pBuf uintptr, nData int32, pData uintptr) {
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn = 0
+ sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(nData), pData)
+}
+
+func sqlite3Fts5PoslistNext64(tls *libc.TLS, a uintptr, n int32, pi uintptr, piOff uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var i int32 = *(*int32)(unsafe.Pointer(pi))
+ if i >= n {
+ *(*I64)(unsafe.Pointer(piOff)) = int64(-1)
+ return 1
+ } else {
+ var iOff I64 = *(*I64)(unsafe.Pointer(piOff))
+
+ {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(libc.PostIncInt32(&i, 1)))))
+ if *(*U32)(unsafe.Pointer(bp))&U32(0x80) != 0 {
+ i--
+ i = i + sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
+ }
+ }
+
+ if *(*U32)(unsafe.Pointer(bp)) <= U32(1) {
+ if *(*U32)(unsafe.Pointer(bp)) == U32(0) {
+ *(*int32)(unsafe.Pointer(pi)) = i
+ return 0
+ }
+ {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(libc.PostIncInt32(&i, 1)))))
+ if *(*U32)(unsafe.Pointer(bp))&U32(0x80) != 0 {
+ i--
+ i = i + sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
+ }
+ }
+
+ iOff = I64(*(*U32)(unsafe.Pointer(bp))) << 32
+
+ {
+ *(*U32)(unsafe.Pointer(bp)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(libc.PostIncInt32(&i, 1)))))
+ if *(*U32)(unsafe.Pointer(bp))&U32(0x80) != 0 {
+ i--
+ i = i + sqlite3Fts5GetVarint32(tls, a+uintptr(i), bp)
+ }
+ }
+
+ if *(*U32)(unsafe.Pointer(bp)) < U32(2) {
+ *(*I64)(unsafe.Pointer(piOff)) = int64(-1)
+ return 1
+ }
+ *(*I64)(unsafe.Pointer(piOff)) = iOff + I64((*(*U32)(unsafe.Pointer(bp))-U32(2))&U32(0x7FFFFFFF))
+ } else {
+ *(*I64)(unsafe.Pointer(piOff)) = iOff&(int64(0x7FFFFFFF)<<32) + (iOff+I64(*(*U32)(unsafe.Pointer(bp))-U32(2)))&int64(0x7FFFFFFF)
+ }
+ *(*int32)(unsafe.Pointer(pi)) = i
+
+ return 0
+ }
+ return int32(0)
+}
+
+func sqlite3Fts5PoslistReaderNext(tls *libc.TLS, pIter uintptr) int32 {
+ if sqlite3Fts5PoslistNext64(tls, (*Fts5PoslistReader)(unsafe.Pointer(pIter)).Fa, (*Fts5PoslistReader)(unsafe.Pointer(pIter)).Fn, pIter+12, pIter+24) != 0 {
+ (*Fts5PoslistReader)(unsafe.Pointer(pIter)).FbEof = U8(1)
+ }
+ return int32((*Fts5PoslistReader)(unsafe.Pointer(pIter)).FbEof)
+}
+
+func sqlite3Fts5PoslistReaderInit(tls *libc.TLS, a uintptr, n int32, pIter uintptr) int32 {
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(Fts5PoslistReader{})), libc.X__builtin_object_size(tls, pIter, 0))
+ (*Fts5PoslistReader)(unsafe.Pointer(pIter)).Fa = a
+ (*Fts5PoslistReader)(unsafe.Pointer(pIter)).Fn = n
+ sqlite3Fts5PoslistReaderNext(tls, pIter)
+ return int32((*Fts5PoslistReader)(unsafe.Pointer(pIter)).FbEof)
+}
+
+func sqlite3Fts5PoslistSafeAppend(tls *libc.TLS, pBuf uintptr, piPrev uintptr, iPos I64) {
+ if iPos >= *(*I64)(unsafe.Pointer(piPrev)) {
+ if iPos&colmask != *(*I64)(unsafe.Pointer(piPrev))&colmask {
+ *(*U8)(unsafe.Pointer((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr(libc.PostIncInt32(&(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn, 1)))) = U8(1)
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iPos>>32))
+ *(*I64)(unsafe.Pointer(piPrev)) = iPos & colmask
+ }
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iPos-*(*I64)(unsafe.Pointer(piPrev))+int64(2)))
+ *(*I64)(unsafe.Pointer(piPrev)) = iPos
+ }
+}
+
+var colmask I64 = int64(0x7FFFFFFF) << 32
+
+func sqlite3Fts5PoslistWriterAppend(tls *libc.TLS, pBuf uintptr, pWriter uintptr, iPos I64) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ if func() int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)+U32(5+5+5) <= U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
+ return 0
+ }
+ return sqlite3Fts5BufferSize(tls, bp, pBuf, uint32(5+5+5+(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ }() != 0 {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ sqlite3Fts5PoslistSafeAppend(tls, pBuf, pWriter, iPos)
+ return SQLITE_OK
+}
+
+func sqlite3Fts5MallocZero(tls *libc.TLS, pRc uintptr, nByte Sqlite3_int64) uintptr {
+ var pRet uintptr = uintptr(0)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ pRet = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pRet == uintptr(0) {
+ if nByte > int64(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ } else {
+ libc.X__builtin___memset_chk(tls, pRet, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pRet, 0))
+ }
+ }
+ return pRet
+}
+
+func sqlite3Fts5Strndup(tls *libc.TLS, pRc uintptr, pIn uintptr, nIn int32) uintptr {
+ var zRet uintptr = uintptr(0)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ if nIn < 0 {
+ nIn = int32(libc.Xstrlen(tls, pIn))
+ }
+ zRet = Xsqlite3_malloc(tls, nIn+1)
+ if zRet != 0 {
+ libc.X__builtin___memcpy_chk(tls, zRet, pIn, uint64(nIn), libc.X__builtin_object_size(tls, zRet, 0))
+ *(*int8)(unsafe.Pointer(zRet + uintptr(nIn))) = int8(0)
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+ return zRet
+}
+
+func sqlite3Fts5IsBareword(tls *libc.TLS, t int8) int32 {
+ bp := tls.Alloc(128)
+ defer tls.Free(128)
+
+ *(*[128]U8)(unsafe.Pointer(bp)) = [128]U8{
+ U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0),
+ U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(1), U8(0), U8(0), U8(0), U8(0), U8(0),
+ U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0),
+ U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(0), U8(0), U8(0), U8(0), U8(0), U8(0),
+ U8(0), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1),
+ U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(0), U8(0), U8(0), U8(0), U8(1),
+ U8(0), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1),
+ U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(1), U8(0), U8(0), U8(0), U8(0), U8(0),
+ }
+
+ return libc.Bool32(int32(t)&0x80 != 0 || *(*U8)(unsafe.Pointer(bp + uintptr(int32(t)))) != 0)
+}
+
+// ************************************************************************
+type Fts5TermsetEntry1 = struct {
+ FpTerm uintptr
+ FnTerm int32
+ FiIdx int32
+ FpNext uintptr
+}
+
+// ************************************************************************
+type Fts5TermsetEntry = Fts5TermsetEntry1
+
+func sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(pp)) = sqlite3Fts5MallocZero(tls, bp, int64(unsafe.Sizeof(Fts5Termset{})))
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5TermsetAdd(tls *libc.TLS, p uintptr, iIdx int32, pTerm uintptr, nTerm int32, pbPresent uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ *(*int32)(unsafe.Pointer(pbPresent)) = 0
+ if p != 0 {
+ var i int32
+ var hash U32 = U32(13)
+ var pEntry uintptr
+
+ for i = nTerm - 1; i >= 0; i-- {
+ hash = hash<<3 ^ hash ^ U32(*(*int8)(unsafe.Pointer(pTerm + uintptr(i))))
+ }
+ hash = hash<<3 ^ hash ^ U32(iIdx)
+ hash = hash % U32(int32(uint64(unsafe.Sizeof([512]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))))
+
+ for pEntry = *(*uintptr)(unsafe.Pointer(p + uintptr(hash)*8)); pEntry != 0; pEntry = (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpNext {
+ if (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FiIdx == iIdx &&
+ (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FnTerm == nTerm &&
+ libc.Xmemcmp(tls, (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpTerm, pTerm, uint64(nTerm)) == 0 {
+ *(*int32)(unsafe.Pointer(pbPresent)) = 1
+ break
+ }
+ }
+
+ if pEntry == uintptr(0) {
+ pEntry = sqlite3Fts5MallocZero(tls, bp, int64(uint64(unsafe.Sizeof(Fts5TermsetEntry{}))+uint64(nTerm)))
+ if pEntry != 0 {
+ (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpTerm = pEntry + 1*24
+ (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FnTerm = nTerm
+ (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FiIdx = iIdx
+ libc.X__builtin___memcpy_chk(tls, (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpTerm, pTerm, uint64(nTerm), libc.X__builtin_object_size(tls, (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpTerm, 0))
+ (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpNext = *(*uintptr)(unsafe.Pointer(p + uintptr(hash)*8))
+ *(*uintptr)(unsafe.Pointer(p + uintptr(hash)*8)) = pEntry
+ }
+ }
+ }
+
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5TermsetFree(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ var i U32
+ for i = U32(0); i < U32(int32(uint64(unsafe.Sizeof([512]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0))))); i++ {
+ var pEntry uintptr = *(*uintptr)(unsafe.Pointer(p + uintptr(i)*8))
+ for pEntry != 0 {
+ var pDel uintptr = pEntry
+ pEntry = (*Fts5TermsetEntry)(unsafe.Pointer(pEntry)).FpNext
+ Xsqlite3_free(tls, pDel)
+ }
+ }
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func fts5_iswhitespace(tls *libc.TLS, x int8) int32 {
+ return libc.Bool32(int32(x) == ' ')
+}
+
+func fts5_isopenquote(tls *libc.TLS, x int8) int32 {
+ return libc.Bool32(int32(x) == '"' || int32(x) == '\'' || int32(x) == '[' || int32(x) == '`')
+}
+
+func fts5ConfigSkipWhitespace(tls *libc.TLS, pIn uintptr) uintptr {
+ var p uintptr = pIn
+ if p != 0 {
+ for fts5_iswhitespace(tls, *(*int8)(unsafe.Pointer(p))) != 0 {
+ p++
+ }
+ }
+ return p
+}
+
+func fts5ConfigSkipBareword(tls *libc.TLS, pIn uintptr) uintptr {
+ var p uintptr = pIn
+ for sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(p))) != 0 {
+ p++
+ }
+ if p == pIn {
+ p = uintptr(0)
+ }
+ return p
+}
+
+func fts5_isdigit(tls *libc.TLS, a int8) int32 {
+ return libc.Bool32(int32(a) >= '0' && int32(a) <= '9')
+}
+
+func fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) uintptr {
+ var p uintptr = pIn
+ switch int32(*(*int8)(unsafe.Pointer(p))) {
+ case 'n':
+ fallthrough
+ case 'N':
+ if Xsqlite3_strnicmp(tls, ts+6584, p, 4) == 0 {
+ p = p + 4
+ } else {
+ p = uintptr(0)
+ }
+ break
+
+ case 'x':
+ fallthrough
+ case 'X':
+ p++
+ if int32(*(*int8)(unsafe.Pointer(p))) == '\'' {
+ p++
+ for int32(*(*int8)(unsafe.Pointer(p))) >= 'a' && int32(*(*int8)(unsafe.Pointer(p))) <= 'f' ||
+ int32(*(*int8)(unsafe.Pointer(p))) >= 'A' && int32(*(*int8)(unsafe.Pointer(p))) <= 'F' ||
+ int32(*(*int8)(unsafe.Pointer(p))) >= '0' && int32(*(*int8)(unsafe.Pointer(p))) <= '9' {
+ p++
+ }
+ if int32(*(*int8)(unsafe.Pointer(p))) == '\'' && int64(0) == (int64(p)-int64(pIn))/1%int64(2) {
+ p++
+ } else {
+ p = uintptr(0)
+ }
+ } else {
+ p = uintptr(0)
+ }
+ break
+
+ case '\'':
+ p++
+ for p != 0 {
+ if int32(*(*int8)(unsafe.Pointer(p))) == '\'' {
+ p++
+ if int32(*(*int8)(unsafe.Pointer(p))) != '\'' {
+ break
+ }
+ }
+ p++
+ if int32(*(*int8)(unsafe.Pointer(p))) == 0 {
+ p = uintptr(0)
+ }
+ }
+ break
+
+ default:
+ if int32(*(*int8)(unsafe.Pointer(p))) == '+' || int32(*(*int8)(unsafe.Pointer(p))) == '-' {
+ p++
+ }
+ for fts5_isdigit(tls, *(*int8)(unsafe.Pointer(p))) != 0 {
+ p++
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(p))) == '.' && fts5_isdigit(tls, *(*int8)(unsafe.Pointer(p + 1))) != 0 {
+ p += uintptr(2)
+ for fts5_isdigit(tls, *(*int8)(unsafe.Pointer(p))) != 0 {
+ p++
+ }
+ }
+ if p == pIn {
+ p = uintptr(0)
+ }
+
+ break
+ }
+
+ return p
+}
+
+func fts5Dequote(tls *libc.TLS, z uintptr) int32 {
+ var q int8
+ var iIn int32 = 1
+ var iOut int32 = 0
+ q = *(*int8)(unsafe.Pointer(z))
+
+ if int32(q) == '[' {
+ q = int8(']')
+ }
+
+ for *(*int8)(unsafe.Pointer(z + uintptr(iIn))) != 0 {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn)))) == int32(q) {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn+1)))) != int32(q) {
+ iIn++
+ break
+ } else {
+ iIn = iIn + 2
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&iOut, 1)))) = q
+ }
+ } else {
+ *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&iOut, 1)))) = *(*int8)(unsafe.Pointer(z + uintptr(libc.PostIncInt32(&iIn, 1))))
+ }
+ }
+
+ *(*int8)(unsafe.Pointer(z + uintptr(iOut))) = int8(0)
+ return iIn
+}
+
+func sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) {
+ var quote int8
+
+ quote = *(*int8)(unsafe.Pointer(z))
+ if int32(quote) == '[' || int32(quote) == '\'' || int32(quote) == '"' || int32(quote) == '`' {
+ fts5Dequote(tls, z)
+ }
+}
+
+type Fts5Enum1 = struct {
+ FzName uintptr
+ FeVal int32
+ F__ccgo_pad1 [4]byte
+}
+
+type Fts5Enum = Fts5Enum1
+
+func fts5ConfigSetEnum(tls *libc.TLS, aEnum uintptr, zEnum uintptr, peVal uintptr) int32 {
+ var nEnum int32 = int32(libc.Xstrlen(tls, zEnum))
+ var i int32
+ var iVal int32 = -1
+
+ for i = 0; (*Fts5Enum)(unsafe.Pointer(aEnum+uintptr(i)*16)).FzName != 0; i++ {
+ if Xsqlite3_strnicmp(tls, (*Fts5Enum)(unsafe.Pointer(aEnum+uintptr(i)*16)).FzName, zEnum, nEnum) == 0 {
+ if iVal >= 0 {
+ return SQLITE_ERROR
+ }
+ iVal = (*Fts5Enum)(unsafe.Pointer(aEnum + uintptr(i)*16)).FeVal
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(peVal)) = iVal
+ if iVal < 0 {
+ return SQLITE_ERROR
+ }
+ return SQLITE_OK
+}
+
+func fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zCmd uintptr, zArg uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(112)
+ defer tls.Free(112)
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_OK
+ var nCmd int32 = int32(libc.Xstrlen(tls, zCmd))
+ if Xsqlite3_strnicmp(tls, ts+34323, zCmd, nCmd) == 0 {
+ var nByte int32 = int32(uint64(unsafe.Sizeof(int32(0))) * uint64(FTS5_MAX_PREFIX_INDEXES))
+ var p uintptr
+ var bFirst int32 = 1
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix = sqlite3Fts5MallocZero(tls, bp+40, int64(nByte))
+ if *(*int32)(unsafe.Pointer(bp + 40)) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+ }
+
+ p = zArg
+ for 1 != 0 {
+ var nPre int32 = 0
+
+ for int32(*(*int8)(unsafe.Pointer(p))) == ' ' {
+ p++
+ }
+ if bFirst == 0 && int32(*(*int8)(unsafe.Pointer(p))) == ',' {
+ p++
+ for int32(*(*int8)(unsafe.Pointer(p))) == ' ' {
+ p++
+ }
+ } else if int32(*(*int8)(unsafe.Pointer(p))) == 0 {
+ break
+ }
+ if int32(*(*int8)(unsafe.Pointer(p))) < '0' || int32(*(*int8)(unsafe.Pointer(p))) > '9' {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34330, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ break
+ }
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix == FTS5_MAX_PREFIX_INDEXES {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls,
+ ts+34361, libc.VaList(bp, FTS5_MAX_PREFIX_INDEXES))
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ break
+ }
+
+ for int32(*(*int8)(unsafe.Pointer(p))) >= '0' && int32(*(*int8)(unsafe.Pointer(p))) <= '9' && nPre < 1000 {
+ nPre = nPre*10 + (int32(*(*int8)(unsafe.Pointer(p))) - '0')
+ p++
+ }
+
+ if nPre <= 0 || nPre >= 1000 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34394, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ break
+ }
+
+ *(*int32)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix + uintptr((*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix)*4)) = nPre
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix++
+ bFirst = 0
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if Xsqlite3_strnicmp(tls, ts+34431, zCmd, nCmd) == 0 {
+ var p uintptr = zArg
+ var nArg Sqlite3_int64 = Sqlite3_int64(libc.Xstrlen(tls, zArg) + uint64(1))
+ var azArg uintptr = sqlite3Fts5MallocZero(tls, bp+40, int64(uint64(unsafe.Sizeof(uintptr(0)))*uint64(nArg)))
+ var pDel uintptr = sqlite3Fts5MallocZero(tls, bp+40, nArg*int64(2))
+ var pSpace uintptr = pDel
+
+ if azArg != 0 && pSpace != 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34440, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ for nArg = int64(0); p != 0 && *(*int8)(unsafe.Pointer(p)) != 0; nArg++ {
+ var p2 uintptr = fts5ConfigSkipWhitespace(tls, p)
+ if int32(*(*int8)(unsafe.Pointer(p2))) == '\'' {
+ p = fts5ConfigSkipLiteral(tls, p2)
+ } else {
+ p = fts5ConfigSkipBareword(tls, p2)
+ }
+ if p != 0 {
+ libc.X__builtin___memcpy_chk(tls, pSpace, p2, uint64((int64(p)-int64(p2))/1), libc.X__builtin_object_size(tls, pSpace, 0))
+ *(*uintptr)(unsafe.Pointer(azArg + uintptr(nArg)*8)) = pSpace
+ sqlite3Fts5Dequote(tls, pSpace)
+ pSpace += uintptr((int64(p)-int64(p2))/1 + int64(1))
+ p = fts5ConfigSkipWhitespace(tls, p)
+ }
+ }
+ if p == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34473, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 40)) = sqlite3Fts5GetTokenizer(tls, pGlobal,
+ azArg, int32(nArg), pConfig,
+ pzErr)
+ }
+ }
+ }
+
+ Xsqlite3_free(tls, azArg)
+ Xsqlite3_free(tls, pDel)
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if Xsqlite3_strnicmp(tls, ts+34507, zCmd, nCmd) == 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34515, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ if *(*int8)(unsafe.Pointer(zArg)) != 0 {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent = FTS5_CONTENT_EXTERNAL
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzContent = sqlite3Fts5Mprintf(tls, bp+40, ts+34547, libc.VaList(bp+8, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg))
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent = FTS5_CONTENT_NONE
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if Xsqlite3_strnicmp(tls, ts+34553, zCmd, nCmd) == 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34567, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = sqlite3Fts5Strndup(tls, bp+40, zArg, -1)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if Xsqlite3_strnicmp(tls, ts+34605, zCmd, nCmd) == 0 {
+ if int32(*(*int8)(unsafe.Pointer(zArg))) != '0' && int32(*(*int8)(unsafe.Pointer(zArg))) != '1' || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34616, 0)
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.Bool32(int32(*(*int8)(unsafe.Pointer(zArg))) == '1')
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ if Xsqlite3_strnicmp(tls, ts+5478, zCmd, nCmd) == 0 {
+ *(*[4]Fts5Enum)(unsafe.Pointer(bp + 48)) = [4]Fts5Enum{
+ {FzName: ts + 8429, FeVal: FTS5_DETAIL_NONE},
+ {FzName: ts + 17767},
+ {FzName: ts + 34651, FeVal: FTS5_DETAIL_COLUMNS},
+ {},
+ }
+
+ if libc.AssignPtrInt32(bp+40, fts5ConfigSetEnum(tls, bp+48, zArg, pConfig+92)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34659, 0)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+ }
+
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34690, libc.VaList(bp+24, nCmd, zCmd))
+ return SQLITE_ERROR
+}
+
+func fts5ConfigDefaultTokenizer(tls *libc.TLS, pGlobal uintptr, pConfig uintptr) int32 {
+ return sqlite3Fts5GetTokenizer(tls, pGlobal, uintptr(0), 0, pConfig, uintptr(0))
+}
+
+func fts5ConfigGobbleWord(tls *libc.TLS, pRc uintptr, zIn uintptr, pzOut uintptr, pbQuoted uintptr) uintptr {
+ var zRet uintptr = uintptr(0)
+
+ var nIn Sqlite3_int64 = Sqlite3_int64(libc.Xstrlen(tls, zIn))
+ var zOut uintptr = Xsqlite3_malloc64(tls, uint64(nIn+int64(1)))
+
+ *(*int32)(unsafe.Pointer(pbQuoted)) = 0
+ *(*uintptr)(unsafe.Pointer(pzOut)) = uintptr(0)
+
+ if zOut == uintptr(0) {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memcpy_chk(tls, zOut, zIn, Size_t(nIn+int64(1)), libc.X__builtin_object_size(tls, zOut, 0))
+ if fts5_isopenquote(tls, *(*int8)(unsafe.Pointer(zOut))) != 0 {
+ var ii int32 = fts5Dequote(tls, zOut)
+ zRet = zIn + uintptr(ii)
+ *(*int32)(unsafe.Pointer(pbQuoted)) = 1
+ } else {
+ zRet = fts5ConfigSkipBareword(tls, zIn)
+ if zRet != 0 {
+ *(*int8)(unsafe.Pointer(zOut + uintptr((int64(zRet)-int64(zIn))/1))) = int8(0)
+ }
+ }
+ }
+
+ if zRet == uintptr(0) {
+ Xsqlite3_free(tls, zOut)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzOut)) = zOut
+ }
+
+ return zRet
+}
+
+func fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32 = SQLITE_OK
+ if 0 == Xsqlite3_stricmp(tls, zCol, ts+22641) ||
+ 0 == Xsqlite3_stricmp(tls, zCol, ts+16673) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34718, libc.VaList(bp, zCol))
+ rc = SQLITE_ERROR
+ } else if zArg != 0 {
+ if 0 == Xsqlite3_stricmp(tls, zArg, ts+34748) {
+ *(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*Fts5Config)(unsafe.Pointer(p)).FnCol))) = U8(1)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34758, libc.VaList(bp+8, zArg))
+ rc = SQLITE_ERROR
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(p)).FazCol + uintptr(libc.PostIncInt32(&(*Fts5Config)(unsafe.Pointer(p)).FnCol, 1))*8)) = zCol
+ return rc
+}
+
+func fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 32)) = Fts5Buffer{}
+
+ sqlite3Fts5BufferAppendPrintf(tls, bp+24, bp+32, ts+34789, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(p)).FzContentRowid))
+ if (*Fts5Config)(unsafe.Pointer(p)).FeContent != FTS5_CONTENT_NONE {
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(p)).FnCol; i++ {
+ if (*Fts5Config)(unsafe.Pointer(p)).FeContent == FTS5_CONTENT_EXTERNAL {
+ sqlite3Fts5BufferAppendPrintf(tls, bp+24, bp+32, ts+34794, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8))))
+ } else {
+ sqlite3Fts5BufferAppendPrintf(tls, bp+24, bp+32, ts+34801, libc.VaList(bp+16, i))
+ }
+ }
+ }
+
+ (*Fts5Config)(unsafe.Pointer(p)).FzContentExprlist = (*Fts5Buffer)(unsafe.Pointer(bp + 32)).Fp
+ return *(*int32)(unsafe.Pointer(bp + 24))
+}
+
+func sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg int32, azArg uintptr, ppOut uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(76)
+ defer tls.Free(76)
+
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_OK
+ var pRet uintptr
+ var i int32
+ var nByte Sqlite3_int64
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = libc.AssignUintptr(&pRet, Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Fts5Config{}))))
+ if pRet == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(unsafe.Sizeof(Fts5Config{})), libc.X__builtin_object_size(tls, pRet, 0))
+ (*Fts5Config)(unsafe.Pointer(pRet)).Fdb = db
+ (*Fts5Config)(unsafe.Pointer(pRet)).FiCookie = -1
+
+ nByte = Sqlite3_int64(uint64(nArg) * (uint64(unsafe.Sizeof(uintptr(0))) + uint64(unsafe.Sizeof(U8(0)))))
+ (*Fts5Config)(unsafe.Pointer(pRet)).FazCol = sqlite3Fts5MallocZero(tls, bp+40, nByte)
+ (*Fts5Config)(unsafe.Pointer(pRet)).FabUnindexed = func() uintptr {
+ if (*Fts5Config)(unsafe.Pointer(pRet)).FazCol != 0 {
+ return (*Fts5Config)(unsafe.Pointer(pRet)).FazCol + uintptr(nArg)*8
+ }
+ return uintptr(0)
+ }()
+ (*Fts5Config)(unsafe.Pointer(pRet)).FzDb = sqlite3Fts5Strndup(tls, bp+40, *(*uintptr)(unsafe.Pointer(azArg + 1*8)), -1)
+ (*Fts5Config)(unsafe.Pointer(pRet)).FzName = sqlite3Fts5Strndup(tls, bp+40, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -1)
+ (*Fts5Config)(unsafe.Pointer(pRet)).FbColumnsize = 1
+ (*Fts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*Fts5Config)(unsafe.Pointer(pRet)).FzName, ts+22641) == 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34809, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pRet)).FzName))
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ }
+
+ for i = 3; *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && i < nArg; i++ {
+ var zOrig uintptr = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8))
+ var z uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+ var bOption int32 = 0
+ *(*int32)(unsafe.Pointer(bp + 56)) = 0
+
+ z = fts5ConfigGobbleWord(tls, bp+40, zOrig, bp+48, bp+56)
+ z = fts5ConfigSkipWhitespace(tls, z)
+ if z != 0 && int32(*(*int8)(unsafe.Pointer(z))) == '=' {
+ bOption = 1
+
+ z++
+ if *(*int32)(unsafe.Pointer(bp + 56)) != 0 {
+ z = uintptr(0)
+ }
+ }
+ z = fts5ConfigSkipWhitespace(tls, z)
+ if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 {
+ z = fts5ConfigGobbleWord(tls, bp+40, z, bp+64, bp+72)
+ if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 {
+ z = uintptr(0)
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ if z == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+34838, libc.VaList(bp+8, zOrig))
+ *(*int32)(unsafe.Pointer(bp + 40)) = SQLITE_ERROR
+ } else {
+ if bOption != 0 {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5ConfigParseSpecial(tls, pGlobal, pRet,
+ func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 48)) != 0 {
+ return *(*uintptr)(unsafe.Pointer(bp + 48))
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if *(*uintptr)(unsafe.Pointer(bp + 64)) != 0 {
+ return *(*uintptr)(unsafe.Pointer(bp + 64))
+ }
+ return ts + 1547
+ }(),
+ pzErr)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5ConfigParseColumn(tls, pRet, *(*uintptr)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp + 64)), pzErr)
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = uintptr(0)
+ }
+ }
+ }
+
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 48)))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pRet)).FpTok == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5ConfigDefaultTokenizer(tls, pGlobal, pRet)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) {
+ var zTail uintptr = uintptr(0)
+
+ if (*Fts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL {
+ zTail = ts + 34507
+ } else if (*Fts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 {
+ zTail = ts + 34858
+ }
+
+ if zTail != 0 {
+ (*Fts5Config)(unsafe.Pointer(pRet)).FzContent = sqlite3Fts5Mprintf(tls,
+ bp+40, ts+34866, libc.VaList(bp+16, (*Fts5Config)(unsafe.Pointer(pRet)).FzDb, (*Fts5Config)(unsafe.Pointer(pRet)).FzName, zTail))
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) {
+ (*Fts5Config)(unsafe.Pointer(pRet)).FzContentRowid = sqlite3Fts5Strndup(tls, bp+40, ts+16673, -1)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5ConfigMakeExprlist(tls, pRet)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) != SQLITE_OK {
+ sqlite3Fts5ConfigFree(tls, pRet)
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+}
+
+func sqlite3Fts5ConfigFree(tls *libc.TLS, pConfig uintptr) {
+ if pConfig != 0 {
+ var i int32
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Fts5_tokenizer)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FpTokApi)).FxDelete})).f(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok)
+ }
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName)
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))
+ }
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FazCol)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzRank)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzRankArgs)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzContent)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzContentRowid)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzContentExprlist)
+ Xsqlite3_free(tls, pConfig)
+ }
+}
+
+func sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 48)) = SQLITE_OK
+ var zSql uintptr
+
+ zSql = sqlite3Fts5Mprintf(tls, bp+48, ts+34877, 0)
+ for i = 0; zSql != 0 && i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ var zSep uintptr = func() uintptr {
+ if i == 0 {
+ return ts + 1547
+ }
+ return ts + 15017
+ }()
+ zSql = sqlite3Fts5Mprintf(tls, bp+48, ts+34893, libc.VaList(bp, zSql, zSep, *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8))))
+ }
+ zSql = sqlite3Fts5Mprintf(tls, bp+48, ts+34900,
+ libc.VaList(bp+24, zSql, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, ts+22641))
+
+ if zSql != 0 {
+ *(*int32)(unsafe.Pointer(bp + 48)) = Xsqlite3_declare_vtab(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql)
+ Xsqlite3_free(tls, zSql)
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 48))
+}
+
+func sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) int32 {
+ if pText == uintptr(0) {
+ return SQLITE_OK
+ }
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5_tokenizer)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FpTokApi)).FxTokenize})).f(tls,
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok, pCtx, flags, pText, nText, xToken)
+}
+
+func fts5ConfigSkipArgs(tls *libc.TLS, pIn uintptr) uintptr {
+ var p uintptr = pIn
+
+ for 1 != 0 {
+ p = fts5ConfigSkipWhitespace(tls, p)
+ p = fts5ConfigSkipLiteral(tls, p)
+ p = fts5ConfigSkipWhitespace(tls, p)
+ if p == uintptr(0) || int32(*(*int8)(unsafe.Pointer(p))) == ')' {
+ break
+ }
+ if int32(*(*int8)(unsafe.Pointer(p))) != ',' {
+ p = uintptr(0)
+ break
+ }
+ p++
+ }
+
+ return p
+}
+
+func sqlite3Fts5ConfigParseRank(tls *libc.TLS, zIn uintptr, pzRank uintptr, pzRankArgs uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var p uintptr = zIn
+ var pRank uintptr
+ var zRank uintptr = uintptr(0)
+ var zRankArgs uintptr = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+
+ *(*uintptr)(unsafe.Pointer(pzRank)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pzRankArgs)) = uintptr(0)
+
+ if p == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_ERROR
+ } else {
+ p = fts5ConfigSkipWhitespace(tls, p)
+ pRank = p
+ p = fts5ConfigSkipBareword(tls, p)
+
+ if p != 0 {
+ zRank = sqlite3Fts5MallocZero(tls, bp, (int64(uintptr(1)+p)-int64(pRank))/1)
+ if zRank != 0 {
+ libc.X__builtin___memcpy_chk(tls, zRank, pRank, uint64((int64(p)-int64(pRank))/1), libc.X__builtin_object_size(tls, zRank, 0))
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_ERROR
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ p = fts5ConfigSkipWhitespace(tls, p)
+ if int32(*(*int8)(unsafe.Pointer(p))) != '(' {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_ERROR
+ }
+ p++
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ var pArgs uintptr
+ p = fts5ConfigSkipWhitespace(tls, p)
+ pArgs = p
+ if int32(*(*int8)(unsafe.Pointer(p))) != ')' {
+ p = fts5ConfigSkipArgs(tls, p)
+ if p == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_ERROR
+ } else {
+ zRankArgs = sqlite3Fts5MallocZero(tls, bp, (int64(uintptr(1)+p)-int64(pArgs))/1)
+ if zRankArgs != 0 {
+ libc.X__builtin___memcpy_chk(tls, zRankArgs, pArgs, uint64((int64(p)-int64(pArgs))/1), libc.X__builtin_object_size(tls, zRankArgs, 0))
+ }
+ }
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ Xsqlite3_free(tls, zRank)
+
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzRank)) = zRank
+ *(*uintptr)(unsafe.Pointer(pzRankArgs)) = zRankArgs
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pVal uintptr, pbBadkey uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32 = SQLITE_OK
+
+ if 0 == Xsqlite3_stricmp(tls, zKey, ts+34926) {
+ var pgsz int32 = 0
+ if SQLITE_INTEGER == Xsqlite3_value_numeric_type(tls, pVal) {
+ pgsz = Xsqlite3_value_int(tls, pVal)
+ }
+ if pgsz < 32 || pgsz > 64*1024 {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, zKey, ts+34931) {
+ var nHashSize int32 = -1
+ if SQLITE_INTEGER == Xsqlite3_value_numeric_type(tls, pVal) {
+ nHashSize = Xsqlite3_value_int(tls, pVal)
+ }
+ if nHashSize <= 0 {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, zKey, ts+34940) {
+ var nAutomerge int32 = -1
+ if SQLITE_INTEGER == Xsqlite3_value_numeric_type(tls, pVal) {
+ nAutomerge = Xsqlite3_value_int(tls, pVal)
+ }
+ if nAutomerge < 0 || nAutomerge > 64 {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ } else {
+ if nAutomerge == 1 {
+ nAutomerge = FTS5_DEFAULT_AUTOMERGE
+ }
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, zKey, ts+34950) {
+ var nUsermerge int32 = -1
+ if SQLITE_INTEGER == Xsqlite3_value_numeric_type(tls, pVal) {
+ nUsermerge = Xsqlite3_value_int(tls, pVal)
+ }
+ if nUsermerge < 2 || nUsermerge > 16 {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, zKey, ts+34960) {
+ var nCrisisMerge int32 = -1
+ if SQLITE_INTEGER == Xsqlite3_value_numeric_type(tls, pVal) {
+ nCrisisMerge = Xsqlite3_value_int(tls, pVal)
+ }
+ if nCrisisMerge < 0 {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ } else {
+ if nCrisisMerge <= 1 {
+ nCrisisMerge = FTS5_DEFAULT_CRISISMERGE
+ }
+ if nCrisisMerge >= FTS5_MAX_SEGMENT {
+ nCrisisMerge = FTS5_MAX_SEGMENT - 1
+ }
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, zKey, ts+22641) {
+ var zIn uintptr = Xsqlite3_value_text(tls, pVal)
+
+ rc = sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8)
+ if rc == SQLITE_OK {
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzRank)
+ Xsqlite3_free(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).FzRankArgs)
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzRank = *(*uintptr)(unsafe.Pointer(bp))
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzRankArgs = *(*uintptr)(unsafe.Pointer(bp + 8))
+ } else if rc == SQLITE_ERROR {
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(pbBadkey)) = 1
+ }
+ return rc
+}
+
+func sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) int32 {
+ bp := tls.Alloc(52)
+ defer tls.Free(52)
+
+ var zSelect uintptr = ts + 34972
+ var zSql uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_OK
+ var iVersion int32 = 0
+
+ (*Fts5Config)(unsafe.Pointer(pConfig)).Fpgsz = FTS5_DEFAULT_PAGE_SIZE
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = FTS5_DEFAULT_AUTOMERGE
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = FTS5_DEFAULT_USERMERGE
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = FTS5_DEFAULT_CRISISMERGE
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FnHashSize = 1024 * 1024
+
+ zSql = sqlite3Fts5Mprintf(tls, bp+32, zSelect, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ if zSql != 0 {
+ *(*int32)(unsafe.Pointer(bp + 32)) = Xsqlite3_prepare_v2(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -1, bp+40, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) {
+ var zK uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), 0)
+ var pVal uintptr = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), 1)
+ if 0 == Xsqlite3_stricmp(tls, zK, ts+35004) {
+ iVersion = Xsqlite3_value_int(tls, pVal)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 48)) = 0
+ sqlite3Fts5ConfigSetValue(tls, pConfig, zK, pVal, bp+48)
+ }
+ }
+ *(*int32)(unsafe.Pointer(bp + 32)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK && iVersion != FTS5_CURRENT_VERSION {
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_ERROR
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 {
+ *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls,
+ ts+35012,
+ libc.VaList(bp+16, iVersion, FTS5_CURRENT_VERSION))
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FiCookie = iCookie
+ }
+ return *(*int32)(unsafe.Pointer(bp + 32))
+}
+
+type Fts5ExprTerm1 = struct {
+ FbPrefix U8
+ FbFirst U8
+ F__ccgo_pad1 [6]byte
+ FzTerm uintptr
+ FpIter uintptr
+ FpSynonym uintptr
+}
+
+type Fts5ExprTerm = Fts5ExprTerm1
+
+func sqlite3Fts5ParseError(tls *libc.TLS, pParse uintptr, zFmt uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ ap = va
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc == SQLITE_OK {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FzErr = Xsqlite3_vmprintf(tls, zFmt, ap)
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_ERROR
+ }
+ _ = ap
+}
+
+func fts5ExprIsspace(tls *libc.TLS, t int8) int32 {
+ return libc.Bool32(int32(t) == ' ' || int32(t) == '\t' || int32(t) == '\n' || int32(t) == '\r')
+}
+
+func fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var z uintptr = *(*uintptr)(unsafe.Pointer(pz))
+ var tok int32
+
+ for fts5ExprIsspace(tls, *(*int8)(unsafe.Pointer(z))) != 0 {
+ z++
+ }
+
+ (*Fts5Token)(unsafe.Pointer(pToken)).Fp = z
+ (*Fts5Token)(unsafe.Pointer(pToken)).Fn = 1
+ switch int32(*(*int8)(unsafe.Pointer(z))) {
+ case '(':
+ tok = FTS5_LP
+ break
+ case ')':
+ tok = FTS5_RP
+ break
+ case '{':
+ tok = FTS5_LCP
+ break
+ case '}':
+ tok = FTS5_RCP
+ break
+ case ':':
+ tok = FTS5_COLON
+ break
+ case ',':
+ tok = FTS5_COMMA
+ break
+ case '+':
+ tok = FTS5_PLUS
+ break
+ case '*':
+ tok = FTS5_STAR
+ break
+ case '-':
+ tok = FTS5_MINUS
+ break
+ case '^':
+ tok = FTS5_CARET
+ break
+ case 0:
+ tok = FTS5_EOF
+ break
+
+ case '"':
+ {
+ var z2 uintptr
+ tok = FTS5_STRING
+
+ for z2 = z + 1; 1 != 0; z2++ {
+ if int32(*(*int8)(unsafe.Pointer(z2))) == '"' {
+ z2++
+ if int32(*(*int8)(unsafe.Pointer(z2))) != '"' {
+ break
+ }
+ }
+ if int32(*(*int8)(unsafe.Pointer(z2))) == 0 {
+ sqlite3Fts5ParseError(tls, pParse, ts+35077, 0)
+ return FTS5_EOF
+ }
+ }
+ (*Fts5Token)(unsafe.Pointer(pToken)).Fn = int32((int64(z2) - int64(z)) / 1)
+ break
+
+ }
+
+ default:
+ {
+ var z2 uintptr
+ if sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 {
+ sqlite3Fts5ParseError(tls, pParse, ts+35097, libc.VaList(bp, z))
+ return FTS5_EOF
+ }
+ tok = FTS5_STRING
+ for z2 = z + 1; sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z2))) != 0; z2++ {
+ }
+ (*Fts5Token)(unsafe.Pointer(pToken)).Fn = int32((int64(z2) - int64(z)) / 1)
+ if (*Fts5Token)(unsafe.Pointer(pToken)).Fn == 2 && libc.Xmemcmp(tls, (*Fts5Token)(unsafe.Pointer(pToken)).Fp, ts+35128, uint64(2)) == 0 {
+ tok = FTS5_OR
+ }
+ if (*Fts5Token)(unsafe.Pointer(pToken)).Fn == 3 && libc.Xmemcmp(tls, (*Fts5Token)(unsafe.Pointer(pToken)).Fp, ts+35131, uint64(3)) == 0 {
+ tok = FTS5_NOT
+ }
+ if (*Fts5Token)(unsafe.Pointer(pToken)).Fn == 3 && libc.Xmemcmp(tls, (*Fts5Token)(unsafe.Pointer(pToken)).Fp, ts+30513, uint64(3)) == 0 {
+ tok = FTS5_AND
+ }
+ break
+
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(pz)) = (*Fts5Token)(unsafe.Pointer(pToken)).Fp + uintptr((*Fts5Token)(unsafe.Pointer(pToken)).Fn)
+ return tok
+}
+
+func fts5ParseAlloc(tls *libc.TLS, t U64) uintptr {
+ return Xsqlite3_malloc64(tls, uint64(Sqlite3_int64(t)))
+}
+
+func fts5ParseFree(tls *libc.TLS, p uintptr) {
+ Xsqlite3_free(tls, p)
+}
+
+func sqlite3Fts5ExprNew(tls *libc.TLS, pConfig uintptr, bPhraseToAnd int32, iCol int32, zExpr uintptr, ppNew uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ *(*uintptr)(unsafe.Pointer(bp + 48)) = zExpr
+ var t int32
+ var pEngine uintptr
+ var pNew uintptr
+
+ *(*uintptr)(unsafe.Pointer(ppNew)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(pzErr)) = uintptr(0)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Parse{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Fts5Parse)(unsafe.Pointer(bp)).FbPhraseToAnd = bPhraseToAnd
+ pEngine = sqlite3Fts5ParserAlloc(tls, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, U64) uintptr }{fts5ParseAlloc})))
+ if pEngine == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Fts5Parse)(unsafe.Pointer(bp)).FpConfig = pConfig
+
+ for __ccgo := true; __ccgo; __ccgo = (*Fts5Parse)(unsafe.Pointer(bp)).Frc == SQLITE_OK && t != FTS5_EOF {
+ t = fts5ExprGetToken(tls, bp, bp+48, bp+56)
+ sqlite3Fts5Parser(tls, pEngine, t, *(*Fts5Token)(unsafe.Pointer(bp + 56)), bp)
+ }
+ sqlite3Fts5ParserFree(tls, pEngine, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5ParseFree})))
+
+ if iCol < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol && (*Fts5Parse)(unsafe.Pointer(bp)).FpExpr != 0 && (*Fts5Parse)(unsafe.Pointer(bp)).Frc == SQLITE_OK {
+ var n int32 = int32(unsafe.Sizeof(Fts5Colset{}))
+ var pColset uintptr = sqlite3Fts5MallocZero(tls, bp+16, int64(n))
+ if pColset != 0 {
+ (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol = 1
+ *(*int32)(unsafe.Pointer(pColset + 4)) = iCol
+ sqlite3Fts5ParseSetColset(tls, bp, (*Fts5Parse)(unsafe.Pointer(bp)).FpExpr, pColset)
+ }
+ }
+
+ if (*Fts5Parse)(unsafe.Pointer(bp)).Frc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(ppNew)) = libc.AssignUintptr(&pNew, Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Fts5Expr{}))))
+ if pNew == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(bp)).Frc = SQLITE_NOMEM
+ sqlite3Fts5ParseNodeFree(tls, (*Fts5Parse)(unsafe.Pointer(bp)).FpExpr)
+ } else {
+ if !(int32((*Fts5Parse)(unsafe.Pointer(bp)).FpExpr) != 0) {
+ var nByte int32 = int32(unsafe.Sizeof(Fts5ExprNode{}))
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot = sqlite3Fts5MallocZero(tls, bp+16, int64(nByte))
+ if (*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot != 0 {
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FbEof = 1
+ }
+ } else {
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot = (*Fts5Parse)(unsafe.Pointer(bp)).FpExpr
+ }
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpIndex = uintptr(0)
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpConfig = pConfig
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FapExprPhrase = (*Fts5Parse)(unsafe.Pointer(bp)).FapPhrase
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FnPhrase = (*Fts5Parse)(unsafe.Pointer(bp)).FnPhrase
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FbDesc = 0
+ (*Fts5Parse)(unsafe.Pointer(bp)).FapPhrase = uintptr(0)
+ }
+ } else {
+ sqlite3Fts5ParseNodeFree(tls, (*Fts5Parse)(unsafe.Pointer(bp)).FpExpr)
+ }
+
+ Xsqlite3_free(tls, (*Fts5Parse)(unsafe.Pointer(bp)).FapPhrase)
+ *(*uintptr)(unsafe.Pointer(pzErr)) = (*Fts5Parse)(unsafe.Pointer(bp)).FzErr
+ return (*Fts5Parse)(unsafe.Pointer(bp)).Frc
+}
+
+func fts5ExprCountChar(tls *libc.TLS, z uintptr, nByte int32) int32 {
+ var nRet int32 = 0
+ var ii int32
+ for ii = 0; ii < nByte; ii++ {
+ if int32(*(*int8)(unsafe.Pointer(z + uintptr(ii))))&0xC0 != 0x80 {
+ nRet++
+ }
+ }
+ return nRet
+}
+
+func sqlite3Fts5ExprPattern(tls *libc.TLS, pConfig uintptr, bGlob int32, iCol int32, zText uintptr, pp uintptr) int32 {
+ bp := tls.Alloc(3)
+ defer tls.Free(3)
+
+ var nText I64 = I64(libc.Xstrlen(tls, zText))
+ var zExpr uintptr = Xsqlite3_malloc64(tls, uint64(nText*int64(4)+int64(1)))
+ var rc int32 = SQLITE_OK
+
+ if zExpr == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var iOut int32 = 0
+ var i int32 = 0
+ var iFirst int32 = 0
+
+ if bGlob == 0 {
+ *(*int8)(unsafe.Pointer(bp)) = int8('_')
+ *(*int8)(unsafe.Pointer(bp + 1)) = int8('%')
+ *(*int8)(unsafe.Pointer(bp + 2)) = int8(0)
+ } else {
+ *(*int8)(unsafe.Pointer(bp)) = int8('*')
+ *(*int8)(unsafe.Pointer(bp + 1)) = int8('?')
+ *(*int8)(unsafe.Pointer(bp + 2)) = int8('[')
+ }
+
+ for I64(i) <= nText {
+ if I64(i) == nText ||
+ int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(*(*int8)(unsafe.Pointer(bp))) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(*(*int8)(unsafe.Pointer(bp + 1))) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(*(*int8)(unsafe.Pointer(bp + 2))) {
+ if fts5ExprCountChar(tls, zText+uintptr(iFirst), i-iFirst) >= 3 {
+ var jj int32
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8('"')
+ for jj = iFirst; jj < i; jj++ {
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(libc.PostIncInt32(&iOut, 1)))) = *(*int8)(unsafe.Pointer(zText + uintptr(jj)))
+ if int32(*(*int8)(unsafe.Pointer(zText + uintptr(jj)))) == '"' {
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8('"')
+ }
+ }
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8('"')
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(libc.PostIncInt32(&iOut, 1)))) = int8(' ')
+ }
+ if int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(*(*int8)(unsafe.Pointer(bp + 2))) {
+ i = i + 2
+ if int32(*(*int8)(unsafe.Pointer(zText + uintptr(i-1)))) == '^' {
+ i++
+ }
+ for I64(i) < nText && int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) != ']' {
+ i++
+ }
+ }
+ iFirst = i + 1
+ }
+ i++
+ }
+ if iOut > 0 {
+ var bAnd int32 = 0
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail != FTS5_DETAIL_FULL {
+ bAnd = 1
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_NONE {
+ iCol = (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol
+ }
+ }
+ *(*int8)(unsafe.Pointer(zExpr + uintptr(iOut))) = int8(0)
+ rc = sqlite3Fts5ExprNew(tls, pConfig, bAnd, iCol, zExpr, pp, (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ }
+ Xsqlite3_free(tls, zExpr)
+ }
+
+ return rc
+}
+
+func sqlite3Fts5ParseNodeFree(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ var i int32
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(p)).FnChild; i++ {
+ sqlite3Fts5ParseNodeFree(tls, *(*uintptr)(unsafe.Pointer(p + 48 + uintptr(i)*8)))
+ }
+ sqlite3Fts5ParseNearsetFree(tls, (*Fts5ExprNode)(unsafe.Pointer(p)).FpNear)
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func sqlite3Fts5ExprFree(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ sqlite3Fts5ParseNodeFree(tls, (*Fts5Expr)(unsafe.Pointer(p)).FpRoot)
+ Xsqlite3_free(tls, (*Fts5Expr)(unsafe.Pointer(p)).FapExprPhrase)
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func sqlite3Fts5ExprAnd(tls *libc.TLS, pp1 uintptr, p2 uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Parse{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ if *(*uintptr)(unsafe.Pointer(pp1)) != 0 {
+ var p1 uintptr = *(*uintptr)(unsafe.Pointer(pp1))
+ var nPhrase int32 = (*Fts5Expr)(unsafe.Pointer(p1)).FnPhrase + (*Fts5Expr)(unsafe.Pointer(p2)).FnPhrase
+
+ (*Fts5Expr)(unsafe.Pointer(p1)).FpRoot = sqlite3Fts5ParseNode(tls, bp, FTS5_AND, (*Fts5Expr)(unsafe.Pointer(p1)).FpRoot, (*Fts5Expr)(unsafe.Pointer(p2)).FpRoot, uintptr(0))
+ (*Fts5Expr)(unsafe.Pointer(p2)).FpRoot = uintptr(0)
+
+ if (*Fts5Parse)(unsafe.Pointer(bp)).Frc == SQLITE_OK {
+ var ap uintptr = Xsqlite3_realloc(tls,
+ (*Fts5Expr)(unsafe.Pointer(p1)).FapExprPhrase, int32(uint64(nPhrase)*uint64(unsafe.Sizeof(uintptr(0)))))
+ if ap == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(bp)).Frc = SQLITE_NOMEM
+ } else {
+ var i int32
+ libc.X__builtin___memmove_chk(tls, ap+uintptr((*Fts5Expr)(unsafe.Pointer(p2)).FnPhrase)*8, ap, uint64((*Fts5Expr)(unsafe.Pointer(p1)).FnPhrase)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, ap+uintptr((*Fts5Expr)(unsafe.Pointer(p2)).FnPhrase)*8, 0))
+ for i = 0; i < (*Fts5Expr)(unsafe.Pointer(p2)).FnPhrase; i++ {
+ *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(p2)).FapExprPhrase + uintptr(i)*8))
+ }
+ (*Fts5Expr)(unsafe.Pointer(p1)).FnPhrase = nPhrase
+ (*Fts5Expr)(unsafe.Pointer(p1)).FapExprPhrase = ap
+ }
+ }
+ Xsqlite3_free(tls, (*Fts5Expr)(unsafe.Pointer(p2)).FapExprPhrase)
+ Xsqlite3_free(tls, p2)
+ } else {
+ *(*uintptr)(unsafe.Pointer(pp1)) = p2
+ }
+
+ return (*Fts5Parse)(unsafe.Pointer(bp)).Frc
+}
+
+func fts5ExprSynonymRowid(tls *libc.TLS, pTerm uintptr, bDesc int32, pbEof uintptr) I64 {
+ var iRet I64 = int64(0)
+ var bRetValid int32 = 0
+ var p uintptr
+
+ for p = pTerm; p != 0; p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym {
+ if 0 == int32((*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) {
+ var iRowid I64 = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FiRowid
+ if bRetValid == 0 || bDesc != libc.Bool32(iRowid < iRet) {
+ iRet = iRowid
+ bRetValid = 1
+ }
+ }
+ }
+
+ if pbEof != 0 && bRetValid == 0 {
+ *(*int32)(unsafe.Pointer(pbEof)) = 1
+ }
+ return iRet
+}
+
+func fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid I64, pBuf uintptr, pa uintptr, pn uintptr) int32 {
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ var aIter uintptr
+ var nIter int32
+ var nAlloc int32
+ var rc int32
+ var p uintptr
+ var nByte Sqlite3_int64
+ var aNew uintptr
+ var pIter uintptr
+ var i int32
+ var iMin I64
+
+ var iPrev I64
+ aIter = bp
+ nIter = 0
+ nAlloc = 4
+ rc = SQLITE_OK
+
+ p = pTerm
+__1:
+ if !(p != 0) {
+ goto __3
+ }
+ pIter = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter
+ if !(int32((*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof) == 0 && (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid == iRowid) {
+ goto __4
+ }
+ if !((*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData == 0) {
+ goto __5
+ }
+ goto __2
+__5:
+ ;
+ if !(nIter == nAlloc) {
+ goto __6
+ }
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5PoslistReader{})) * uint64(nAlloc) * uint64(2))
+ aNew = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(aNew == uintptr(0)) {
+ goto __7
+ }
+ rc = SQLITE_NOMEM
+ goto synonym_poslist_out
+__7:
+ ;
+ libc.X__builtin___memcpy_chk(tls, aNew, aIter, uint64(unsafe.Sizeof(Fts5PoslistReader{}))*uint64(nIter), libc.X__builtin_object_size(tls, aNew, 0))
+ nAlloc = nAlloc * 2
+ if !(aIter != bp) {
+ goto __8
+ }
+ Xsqlite3_free(tls, aIter)
+__8:
+ ;
+ aIter = aNew
+__6:
+ ;
+ sqlite3Fts5PoslistReaderInit(tls, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FpData, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData, aIter+uintptr(nIter)*32)
+
+ nIter++
+__4:
+ ;
+ goto __2
+__2:
+ p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym
+ goto __1
+ goto __3
+__3:
+ ;
+ if !(nIter == 1) {
+ goto __9
+ }
+ *(*uintptr)(unsafe.Pointer(pa)) = (*Fts5PoslistReader)(unsafe.Pointer(aIter)).Fa
+ *(*int32)(unsafe.Pointer(pn)) = (*Fts5PoslistReader)(unsafe.Pointer(aIter)).Fn
+ goto __10
+__9:
+ *(*Fts5PoslistWriter)(unsafe.Pointer(bp + 128)) = Fts5PoslistWriter{}
+ iPrev = int64(-1)
+ sqlite3Fts5BufferZero(tls, pBuf)
+__11:
+ if !(1 != 0) {
+ goto __12
+ }
+ iMin = int64(0xffffffff) | int64(0x7fffffff)<<32
+ i = 0
+__13:
+ if !(i < nIter) {
+ goto __15
+ }
+ if !(int32((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FbEof) == 0) {
+ goto __16
+ }
+ if !((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FiPos == iPrev) {
+ goto __17
+ }
+ if !(sqlite3Fts5PoslistReaderNext(tls, aIter+uintptr(i)*32) != 0) {
+ goto __18
+ }
+ goto __14
+__18:
+ ;
+__17:
+ ;
+ if !((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FiPos < iMin) {
+ goto __19
+ }
+ iMin = (*Fts5PoslistReader)(unsafe.Pointer(aIter + uintptr(i)*32)).FiPos
+__19:
+ ;
+__16:
+ ;
+ goto __14
+__14:
+ i++
+ goto __13
+ goto __15
+__15:
+ ;
+ if !(iMin == int64(0xffffffff)|int64(0x7fffffff)<<32 || rc != SQLITE_OK) {
+ goto __20
+ }
+ goto __12
+__20:
+ ;
+ rc = sqlite3Fts5PoslistWriterAppend(tls, pBuf, bp+128, iMin)
+ iPrev = iMin
+ goto __11
+__12:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __21
+ }
+ *(*uintptr)(unsafe.Pointer(pa)) = (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp
+ *(*int32)(unsafe.Pointer(pn)) = (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn
+__21:
+ ;
+__10:
+ ;
+synonym_poslist_out:
+ if !(aIter != bp) {
+ goto __22
+ }
+ Xsqlite3_free(tls, aIter)
+__22:
+ ;
+ return rc
+}
+
+func fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMatch uintptr) int32 {
+ bp := tls.Alloc(168)
+ defer tls.Free(168)
+
+ var aIter uintptr
+ var i int32
+ var rc int32
+ var bFirst int32
+ var nByte Sqlite3_int64
+
+ var pTerm uintptr
+
+ var bFlag int32
+
+ var pPos uintptr
+ var iAdj I64
+ var bMatch int32
+ var iPos I64
+ *(*Fts5PoslistWriter)(unsafe.Pointer(bp + 160)) = Fts5PoslistWriter{}
+ aIter = bp
+ rc = SQLITE_OK
+ bFirst = int32((*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FbFirst)
+
+ sqlite3Fts5BufferZero(tls, pPhrase+8)
+
+ if !((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(uint64(unsafe.Sizeof([4]Fts5PoslistReader{}))/uint64(unsafe.Sizeof(Fts5PoslistReader{})))) {
+ goto __1
+ }
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5PoslistReader{})) * uint64((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm))
+ aIter = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !!(aIter != 0) {
+ goto __2
+ }
+ return SQLITE_NOMEM
+__2:
+ ;
+__1:
+ ;
+ libc.X__builtin___memset_chk(tls, aIter, 0, uint64(unsafe.Sizeof(Fts5PoslistReader{}))*uint64((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm), libc.X__builtin_object_size(tls, aIter, 0))
+
+ i = 0
+__3:
+ if !(i < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm) {
+ goto __5
+ }
+ pTerm = pPhrase + 32 + uintptr(i)*32
+ *(*int32)(unsafe.Pointer(bp + 152)) = 0
+ bFlag = 0
+ *(*uintptr)(unsafe.Pointer(bp + 144)) = uintptr(0)
+ if !((*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym != 0) {
+ goto __6
+ }
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 128)) = Fts5Buffer{}
+ rc = fts5ExprSynonymList(tls, pTerm, (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid, bp+128, bp+144, bp+152)
+ if !(rc != 0) {
+ goto __8
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 144)))
+ goto ismatch_out
+__8:
+ ;
+ if !(*(*uintptr)(unsafe.Pointer(bp + 144)) == (*Fts5Buffer)(unsafe.Pointer(bp+128)).Fp) {
+ goto __9
+ }
+ bFlag = 1
+__9:
+ ;
+ goto __7
+__6:
+ *(*uintptr)(unsafe.Pointer(bp + 144)) = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter)).FpData
+ *(*int32)(unsafe.Pointer(bp + 152)) = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter)).FnData
+__7:
+ ;
+ sqlite3Fts5PoslistReaderInit(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*int32)(unsafe.Pointer(bp + 152)), aIter+uintptr(i)*32)
+ (*Fts5PoslistReader)(unsafe.Pointer(aIter + uintptr(i)*32)).FbFlag = U8(bFlag)
+ if !((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FbEof != 0) {
+ goto __10
+ }
+ goto ismatch_out
+__10:
+ ;
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+__11:
+ if !(1 != 0) {
+ goto __12
+ }
+ iPos = (*Fts5PoslistReader)(unsafe.Pointer(aIter)).FiPos
+__13:
+ bMatch = 1
+ i = 0
+__16:
+ if !(i < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm) {
+ goto __18
+ }
+ pPos = aIter + uintptr(i)*32
+ iAdj = iPos + I64(i)
+ if !((*Fts5PoslistReader)(unsafe.Pointer(pPos)).FiPos != iAdj) {
+ goto __19
+ }
+ bMatch = 0
+__20:
+ if !((*Fts5PoslistReader)(unsafe.Pointer(pPos)).FiPos < iAdj) {
+ goto __21
+ }
+ if !(sqlite3Fts5PoslistReaderNext(tls, pPos) != 0) {
+ goto __22
+ }
+ goto ismatch_out
+__22:
+ ;
+ goto __20
+__21:
+ ;
+ if !((*Fts5PoslistReader)(unsafe.Pointer(pPos)).FiPos > iAdj) {
+ goto __23
+ }
+ iPos = (*Fts5PoslistReader)(unsafe.Pointer(pPos)).FiPos - I64(i)
+__23:
+ ;
+__19:
+ ;
+ goto __17
+__17:
+ i++
+ goto __16
+ goto __18
+__18:
+ ;
+ goto __14
+__14:
+ if bMatch == 0 {
+ goto __13
+ }
+ goto __15
+__15:
+ ;
+ if !(bFirst == 0 || int32(iPos&int64(0x7FFFFFFF)) == 0) {
+ goto __24
+ }
+ rc = sqlite3Fts5PoslistWriterAppend(tls, pPhrase+8, bp+160, iPos)
+ if !(rc != SQLITE_OK) {
+ goto __25
+ }
+ goto ismatch_out
+__25:
+ ;
+__24:
+ ;
+ i = 0
+__26:
+ if !(i < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm) {
+ goto __28
+ }
+ if !(sqlite3Fts5PoslistReaderNext(tls, aIter+uintptr(i)*32) != 0) {
+ goto __29
+ }
+ goto ismatch_out
+__29:
+ ;
+ goto __27
+__27:
+ i++
+ goto __26
+ goto __28
+__28:
+ ;
+ goto __11
+__12:
+ ;
+ismatch_out:
+ *(*int32)(unsafe.Pointer(pbMatch)) = libc.Bool32((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0)
+ i = 0
+__30:
+ if !(i < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm) {
+ goto __32
+ }
+ if !((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FbFlag != 0) {
+ goto __33
+ }
+ Xsqlite3_free(tls, (*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).Fa)
+__33:
+ ;
+ goto __31
+__31:
+ i++
+ goto __30
+ goto __32
+__32:
+ ;
+ if !(aIter != bp) {
+ goto __34
+ }
+ Xsqlite3_free(tls, aIter)
+__34:
+ ;
+ return rc
+}
+
+type Fts5LookaheadReader1 = struct {
+ Fa uintptr
+ Fn int32
+ Fi int32
+ FiPos I64
+ FiLookahead I64
+}
+
+type Fts5LookaheadReader = Fts5LookaheadReader1
+
+func fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) int32 {
+ (*Fts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*Fts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead
+ if sqlite3Fts5PoslistNext64(tls, (*Fts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*Fts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 {
+ (*Fts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead = int64(1) << 62
+ }
+ return libc.Bool32((*Fts5LookaheadReader)(unsafe.Pointer(p)).FiPos == int64(1)<<62)
+}
+
+func fts5LookaheadReaderInit(tls *libc.TLS, a uintptr, n int32, p uintptr) int32 {
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Fts5LookaheadReader{})), libc.X__builtin_object_size(tls, p, 0))
+ (*Fts5LookaheadReader)(unsafe.Pointer(p)).Fa = a
+ (*Fts5LookaheadReader)(unsafe.Pointer(p)).Fn = n
+ fts5LookaheadReaderNext(tls, p)
+ return fts5LookaheadReaderNext(tls, p)
+}
+
+type Fts5NearTrimmer1 = struct {
+ Freader Fts5LookaheadReader
+ Fwriter Fts5PoslistWriter
+ FpOut uintptr
+}
+
+type Fts5NearTrimmer = Fts5NearTrimmer1
+
+func fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) int32 {
+ bp := tls.Alloc(196)
+ defer tls.Free(196)
+
+ var a uintptr
+ var apPhrase uintptr
+ var i int32
+
+ var bMatch int32
+ var nByte Sqlite3_int64
+ var pPoslist uintptr
+ var pPos uintptr
+ var iPos I64
+ var pWriter uintptr
+ var iAdv int32
+ var iMin I64
+ var iMax I64
+ var bRet int32
+ a = bp
+ apPhrase = pNear + 24
+ *(*int32)(unsafe.Pointer(bp + 192)) = *(*int32)(unsafe.Pointer(pRc))
+
+ if !((*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase > int32(uint64(unsafe.Sizeof([4]Fts5NearTrimmer{}))/uint64(unsafe.Sizeof(Fts5NearTrimmer{})))) {
+ goto __1
+ }
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5NearTrimmer{})) * uint64((*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase))
+ a = sqlite3Fts5MallocZero(tls, bp+192, nByte)
+ goto __2
+__1:
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([4]Fts5NearTrimmer{})), libc.X__builtin_object_size(tls, bp, 0))
+__2:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp + 192)) != SQLITE_OK) {
+ goto __3
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = *(*int32)(unsafe.Pointer(bp + 192))
+ return 0
+__3:
+ ;
+ i = 0
+__4:
+ if !(i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase) {
+ goto __6
+ }
+ pPoslist = *(*uintptr)(unsafe.Pointer(apPhrase + uintptr(i)*8)) + 8
+ fts5LookaheadReaderInit(tls, (*Fts5Buffer)(unsafe.Pointer(pPoslist)).Fp, (*Fts5Buffer)(unsafe.Pointer(pPoslist)).Fn, a+uintptr(i)*48)
+ (*Fts5Buffer)(unsafe.Pointer(pPoslist)).Fn = 0
+ (*Fts5NearTrimmer)(unsafe.Pointer(a + uintptr(i)*48)).FpOut = pPoslist
+ goto __5
+__5:
+ i++
+ goto __4
+ goto __6
+__6:
+ ;
+__7:
+ if !(1 != 0) {
+ goto __8
+ }
+
+ iMax = (*Fts5NearTrimmer)(unsafe.Pointer(a)).Freader.FiPos
+__9:
+ bMatch = 1
+ i = 0
+__12:
+ if !(i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase) {
+ goto __14
+ }
+ pPos = a + uintptr(i)*48
+ iMin = iMax - I64((*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8)))).FnTerm) - I64((*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnNear)
+ if !((*Fts5LookaheadReader)(unsafe.Pointer(pPos)).FiPos < iMin || (*Fts5LookaheadReader)(unsafe.Pointer(pPos)).FiPos > iMax) {
+ goto __15
+ }
+ bMatch = 0
+__16:
+ if !((*Fts5LookaheadReader)(unsafe.Pointer(pPos)).FiPos < iMin) {
+ goto __17
+ }
+ if !(fts5LookaheadReaderNext(tls, pPos) != 0) {
+ goto __18
+ }
+ goto ismatch_out
+__18:
+ ;
+ goto __16
+__17:
+ ;
+ if !((*Fts5LookaheadReader)(unsafe.Pointer(pPos)).FiPos > iMax) {
+ goto __19
+ }
+ iMax = (*Fts5LookaheadReader)(unsafe.Pointer(pPos)).FiPos
+__19:
+ ;
+__15:
+ ;
+ goto __13
+__13:
+ i++
+ goto __12
+ goto __14
+__14:
+ ;
+ goto __10
+__10:
+ if bMatch == 0 {
+ goto __9
+ }
+ goto __11
+__11:
+ ;
+ i = 0
+__20:
+ if !(i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase) {
+ goto __22
+ }
+ iPos = (*Fts5NearTrimmer)(unsafe.Pointer(a + uintptr(i)*48)).Freader.FiPos
+ pWriter = a + uintptr(i)*48 + 32
+ if !((*Fts5Buffer)(unsafe.Pointer((*Fts5NearTrimmer)(unsafe.Pointer(a+uintptr(i)*48)).FpOut)).Fn == 0 || iPos != (*Fts5PoslistWriter)(unsafe.Pointer(pWriter)).FiPrev) {
+ goto __23
+ }
+ sqlite3Fts5PoslistWriterAppend(tls, (*Fts5NearTrimmer)(unsafe.Pointer(a+uintptr(i)*48)).FpOut, pWriter, iPos)
+__23:
+ ;
+ goto __21
+__21:
+ i++
+ goto __20
+ goto __22
+__22:
+ ;
+ iAdv = 0
+ iMin = (*Fts5NearTrimmer)(unsafe.Pointer(a)).Freader.FiLookahead
+ i = 0
+__24:
+ if !(i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase) {
+ goto __26
+ }
+ if !((*Fts5NearTrimmer)(unsafe.Pointer(a+uintptr(i)*48)).Freader.FiLookahead < iMin) {
+ goto __27
+ }
+ iMin = (*Fts5NearTrimmer)(unsafe.Pointer(a + uintptr(i)*48)).Freader.FiLookahead
+ iAdv = i
+__27:
+ ;
+ goto __25
+__25:
+ i++
+ goto __24
+ goto __26
+__26:
+ ;
+ if !(fts5LookaheadReaderNext(tls, a+uintptr(iAdv)*48) != 0) {
+ goto __28
+ }
+ goto ismatch_out
+__28:
+ ;
+ goto __7
+__8:
+ ;
+ismatch_out:
+ bRet = libc.Bool32((*Fts5Buffer)(unsafe.Pointer((*Fts5NearTrimmer)(unsafe.Pointer(a)).FpOut)).Fn > 0)
+ *(*int32)(unsafe.Pointer(pRc)) = *(*int32)(unsafe.Pointer(bp + 192))
+ if !(a != bp) {
+ goto __29
+ }
+ Xsqlite3_free(tls, a)
+__29:
+ ;
+ return bRet
+
+ return int32(0)
+}
+
+func fts5ExprAdvanceto(tls *libc.TLS, pIter uintptr, bDesc int32, piLast uintptr, pRc uintptr, pbEof uintptr) int32 {
+ var iLast I64 = *(*I64)(unsafe.Pointer(piLast))
+ var iRowid I64
+
+ iRowid = (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid
+ if bDesc == 0 && iLast > iRowid || bDesc != 0 && iLast < iRowid {
+ var rc int32 = sqlite3Fts5IterNextFrom(tls, pIter, iLast)
+ if rc != 0 || (*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof != 0 {
+ *(*int32)(unsafe.Pointer(pRc)) = rc
+ *(*int32)(unsafe.Pointer(pbEof)) = 1
+ return 1
+ }
+ iRowid = (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid
+
+ }
+ *(*I64)(unsafe.Pointer(piLast)) = iRowid
+
+ return 0
+}
+
+func fts5ExprSynonymAdvanceto(tls *libc.TLS, pTerm uintptr, bDesc int32, piLast uintptr, pRc uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var rc int32 = SQLITE_OK
+ var iLast I64 = *(*I64)(unsafe.Pointer(piLast))
+ var p uintptr
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ for p = pTerm; rc == SQLITE_OK && p != 0; p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym {
+ if int32((*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) == 0 {
+ var iRowid I64 = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FiRowid
+ if bDesc == 0 && iLast > iRowid || bDesc != 0 && iLast < iRowid {
+ rc = sqlite3Fts5IterNextFrom(tls, (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter, iLast)
+ }
+ }
+ }
+
+ if rc != SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRc)) = rc
+ *(*int32)(unsafe.Pointer(bp)) = 1
+ } else {
+ *(*I64)(unsafe.Pointer(piLast)) = fts5ExprSynonymRowid(tls, pTerm, bDesc, bp)
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func fts5ExprNearTest(tls *libc.TLS, pRc uintptr, pExpr uintptr, pNode uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ *(*int32)(unsafe.Pointer(bp + 4)) = *(*int32)(unsafe.Pointer(pRc))
+
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FpConfig)).FeDetail != FTS5_DETAIL_FULL {
+ var pTerm uintptr
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24))
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn = 0
+ for pTerm = pPhrase + 32; pTerm != 0; pTerm = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym {
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter
+ if int32((*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof) == 0 {
+ if (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid == (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid && (*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData > 0 {
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn = 1
+ }
+ }
+ }
+ return (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn
+ } else {
+ var i int32
+
+ for i = 0; *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK && i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; i++ {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8))
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 1 || (*Fts5ExprTerm)(unsafe.Pointer(pPhrase+32)).FpSynonym != 0 ||
+ (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset != 0 || (*Fts5ExprTerm)(unsafe.Pointer(pPhrase+32)).FbFirst != 0 {
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = fts5ExprPhraseIsMatch(tls, pNode, pPhrase, bp)
+ if *(*int32)(unsafe.Pointer(bp)) == 0 {
+ break
+ }
+ } else {
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FpIter
+ sqlite3Fts5BufferSet(tls, bp+4, pPhrase+8, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FpData)
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pRc)) = *(*int32)(unsafe.Pointer(bp + 4))
+ if i == (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase && (i == 1 || fts5ExprNearIsMatch(tls, pRc, pNear) != 0) {
+ return 1
+ }
+ return 0
+ }
+ return int32(0)
+}
+
+func fts5ExprNearInitAll(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ var i int32
+
+ for i = 0; i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; i++ {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8))
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ return SQLITE_OK
+ } else {
+ var j int32
+ for j = 0; j < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm; j++ {
+ var pTerm uintptr = pPhrase + 32 + uintptr(j)*32
+ var p uintptr
+ var bHit int32 = 0
+
+ for p = pTerm; p != 0; p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym {
+ var rc int32
+ if (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter != 0 {
+ sqlite3Fts5IterClose(tls, (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)
+ (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter = uintptr(0)
+ }
+ rc = sqlite3Fts5IndexQuery(tls,
+ (*Fts5Expr)(unsafe.Pointer(pExpr)).FpIndex, (*Fts5ExprTerm)(unsafe.Pointer(p)).FzTerm, int32(libc.Xstrlen(tls, (*Fts5ExprTerm)(unsafe.Pointer(p)).FzTerm)),
+ func() int32 {
+ if (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FbPrefix != 0 {
+ return FTS5INDEX_QUERY_PREFIX
+ }
+ return 0
+ }()|func() int32 {
+ if (*Fts5Expr)(unsafe.Pointer(pExpr)).FbDesc != 0 {
+ return FTS5INDEX_QUERY_DESC
+ }
+ return 0
+ }(),
+ (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset,
+ p+16)
+
+ if rc != SQLITE_OK {
+ return rc
+ }
+ if 0 == int32((*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) {
+ bHit = 1
+ }
+ }
+
+ if bHit == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ return SQLITE_OK
+ }
+ }
+ }
+ }
+
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 0
+ return SQLITE_OK
+}
+
+func fts5RowidCmp(tls *libc.TLS, pExpr uintptr, iLhs I64, iRhs I64) int32 {
+ if (*Fts5Expr)(unsafe.Pointer(pExpr)).FbDesc == 0 {
+ if iLhs < iRhs {
+ return -1
+ }
+ return libc.Bool32(iLhs > iRhs)
+ } else {
+ if iLhs > iRhs {
+ return -1
+ }
+ return libc.Bool32(iLhs < iRhs)
+ }
+ return int32(0)
+}
+
+func fts5ExprSetEof(tls *libc.TLS, pNode uintptr) {
+ var i int32
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ fts5ExprSetEof(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)))
+ }
+}
+
+func fts5ExprNodeZeroPoslist(tls *libc.TLS, pNode uintptr) {
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_STRING || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_TERM {
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ var i int32
+ for i = 0; i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; i++ {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8))
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn = 0
+ }
+ } else {
+ var i int32
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ fts5ExprNodeZeroPoslist(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)))
+ }
+ }
+}
+
+func fts5NodeCompare(tls *libc.TLS, pExpr uintptr, p1 uintptr, p2 uintptr) int32 {
+ if (*Fts5ExprNode)(unsafe.Pointer(p2)).FbEof != 0 {
+ return -1
+ }
+ if (*Fts5ExprNode)(unsafe.Pointer(p1)).FbEof != 0 {
+ return +1
+ }
+ return fts5RowidCmp(tls, pExpr, (*Fts5ExprNode)(unsafe.Pointer(p1)).FiRowid, (*Fts5ExprNode)(unsafe.Pointer(p2)).FiRowid)
+}
+
+func fts5ExprNodeTest_STRING(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ var pLeft uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24))
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK
+
+ var i int32
+ var j int32
+ var bMatch int32
+ var bDesc int32 = (*Fts5Expr)(unsafe.Pointer(pExpr)).FbDesc
+
+ if (*Fts5ExprTerm)(unsafe.Pointer(pLeft+32)).FpSynonym != 0 {
+ *(*I64)(unsafe.Pointer(bp)) = fts5ExprSynonymRowid(tls, pLeft+32, bDesc, uintptr(0))
+ } else {
+ *(*I64)(unsafe.Pointer(bp)) = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(pLeft + 32)).FpIter)).FiRowid
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = bMatch == 0 {
+ bMatch = 1
+ for i = 0; i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; i++ {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8))
+ for j = 0; j < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm; j++ {
+ var pTerm uintptr = pPhrase + 32 + uintptr(j)*32
+ if (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym != 0 {
+ var iRowid I64 = fts5ExprSynonymRowid(tls, pTerm, bDesc, uintptr(0))
+ if iRowid == *(*I64)(unsafe.Pointer(bp)) {
+ continue
+ }
+ bMatch = 0
+ if fts5ExprSynonymAdvanceto(tls, pTerm, bDesc, bp, bp+8) != 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ return *(*int32)(unsafe.Pointer(bp + 8))
+ }
+ } else {
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32 + uintptr(j)*32)).FpIter
+ if (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid == *(*I64)(unsafe.Pointer(bp)) || (*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof != 0 {
+ continue
+ }
+ bMatch = 0
+ if fts5ExprAdvanceto(tls, pIter, bDesc, bp, bp+8, pNode+4) != 0 {
+ return *(*int32)(unsafe.Pointer(bp + 8))
+ }
+ }
+ }
+ }
+ }
+
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = *(*I64)(unsafe.Pointer(bp))
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = libc.Bool32(0 == fts5ExprNearTest(tls, bp+8, pExpr, pNode) && *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK)
+
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func fts5ExprNodeNext_STRING(tls *libc.TLS, pExpr uintptr, pNode uintptr, bFromValid int32, iFrom I64) int32 {
+ var pTerm uintptr = *(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear + 24)) + 32
+ var rc int32 = SQLITE_OK
+
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ if (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym != 0 {
+ var bEof int32 = 1
+ var p uintptr
+
+ var iRowid I64 = fts5ExprSynonymRowid(tls, pTerm, (*Fts5Expr)(unsafe.Pointer(pExpr)).FbDesc, uintptr(0))
+
+ for p = pTerm; p != 0; p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym {
+ if int32((*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) == 0 {
+ var ii I64 = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FiRowid
+ if ii == iRowid ||
+ bFromValid != 0 && ii != iFrom && libc.Bool32(ii > iFrom) == (*Fts5Expr)(unsafe.Pointer(pExpr)).FbDesc {
+ if bFromValid != 0 {
+ rc = sqlite3Fts5IterNextFrom(tls, (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter, iFrom)
+ } else {
+ rc = sqlite3Fts5IterNext(tls, (*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)
+ }
+ if rc != SQLITE_OK {
+ break
+ }
+ if int32((*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(p)).FpIter)).FbEof) == 0 {
+ bEof = 0
+ }
+ } else {
+ bEof = 0
+ }
+ }
+ }
+
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = libc.Bool32(rc != 0 || bEof != 0)
+ } else {
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter
+
+ if bFromValid != 0 {
+ rc = sqlite3Fts5IterNextFrom(tls, pIter, iFrom)
+ } else {
+ rc = sqlite3Fts5IterNext(tls, pIter)
+ }
+
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = libc.Bool32(rc != 0 || (*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof != 0)
+ }
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof == 0 {
+ rc = fts5ExprNodeTest_STRING(tls, pExpr, pNode)
+ }
+
+ return rc
+}
+
+func fts5ExprNodeTest_TERM(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear + 24))
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FpIter
+
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn = (*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FpConfig)).FeDetail == FTS5_DETAIL_FULL {
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fp = (*Fts5IndexIter)(unsafe.Pointer(pIter)).FpData
+ }
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = (*Fts5IndexIter)(unsafe.Pointer(pIter)).FiRowid
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = libc.Bool32((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn == 0)
+ return SQLITE_OK
+}
+
+func fts5ExprNodeNext_TERM(tls *libc.TLS, pExpr uintptr, pNode uintptr, bFromValid int32, iFrom I64) int32 {
+ var rc int32
+ var pIter uintptr = (*Fts5ExprTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear + 24)) + 32)).FpIter
+
+ if bFromValid != 0 {
+ rc = sqlite3Fts5IterNextFrom(tls, pIter, iFrom)
+ } else {
+ rc = sqlite3Fts5IterNext(tls, pIter)
+ }
+ if rc == SQLITE_OK && int32((*Fts5IndexIter)(unsafe.Pointer(pIter)).FbEof) == 0 {
+ rc = fts5ExprNodeTest_TERM(tls, pExpr, pNode)
+ } else {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ }
+ return rc
+}
+
+func fts5ExprNodeTest_OR(tls *libc.TLS, pExpr uintptr, pNode uintptr) {
+ var pNext uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48))
+ var i int32
+
+ for i = 1; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ var pChild uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8))
+ var cmp int32 = fts5NodeCompare(tls, pExpr, pNext, pChild)
+ if cmp > 0 || cmp == 0 && (*Fts5ExprNode)(unsafe.Pointer(pChild)).FbNomatch == 0 {
+ pNext = pChild
+ }
+ }
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = (*Fts5ExprNode)(unsafe.Pointer(pNext)).FiRowid
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = (*Fts5ExprNode)(unsafe.Pointer(pNext)).FbEof
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = (*Fts5ExprNode)(unsafe.Pointer(pNext)).FbNomatch
+}
+
+func fts5ExprNodeNext_OR(tls *libc.TLS, pExpr uintptr, pNode uintptr, bFromValid int32, iFrom I64) int32 {
+ var i int32
+ var iLast I64 = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid
+
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ var p1 uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8))
+
+ if (*Fts5ExprNode)(unsafe.Pointer(p1)).FbEof == 0 {
+ if (*Fts5ExprNode)(unsafe.Pointer(p1)).FiRowid == iLast ||
+ bFromValid != 0 && fts5RowidCmp(tls, pExpr, (*Fts5ExprNode)(unsafe.Pointer(p1)).FiRowid, iFrom) < 0 {
+ var rc int32 = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(p1)).FxNext})).f(tls, pExpr, p1, bFromValid, iFrom)
+ if rc != SQLITE_OK {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ return rc
+ }
+ }
+ }
+ }
+
+ fts5ExprNodeTest_OR(tls, pExpr, pNode)
+ return SQLITE_OK
+}
+
+func fts5ExprNodeTest_AND(tls *libc.TLS, pExpr uintptr, pAnd uintptr) int32 {
+ var iChild int32
+ var iLast I64 = (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FiRowid
+ var rc int32 = SQLITE_OK
+ var bMatch int32
+
+ for __ccgo := true; __ccgo; __ccgo = bMatch == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FbNomatch = 0
+ bMatch = 1
+ for iChild = 0; iChild < (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FnChild; iChild++ {
+ var pChild uintptr = *(*uintptr)(unsafe.Pointer(pAnd + 48 + uintptr(iChild)*8))
+ var cmp int32 = fts5RowidCmp(tls, pExpr, iLast, (*Fts5ExprNode)(unsafe.Pointer(pChild)).FiRowid)
+ if cmp > 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(pChild)).FxNext})).f(tls, pExpr, pChild, 1, iLast)
+ if rc != SQLITE_OK {
+ (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FbNomatch = 0
+ return rc
+ }
+ }
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pChild)).FbEof != 0 {
+ fts5ExprSetEof(tls, pAnd)
+ bMatch = 1
+ break
+ } else if iLast != (*Fts5ExprNode)(unsafe.Pointer(pChild)).FiRowid {
+ bMatch = 0
+ iLast = (*Fts5ExprNode)(unsafe.Pointer(pChild)).FiRowid
+ }
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pChild)).FbNomatch != 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FbNomatch = 1
+ }
+ }
+ }
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FbNomatch != 0 && pAnd != (*Fts5Expr)(unsafe.Pointer(pExpr)).FpRoot {
+ fts5ExprNodeZeroPoslist(tls, pAnd)
+ }
+ (*Fts5ExprNode)(unsafe.Pointer(pAnd)).FiRowid = iLast
+ return SQLITE_OK
+}
+
+func fts5ExprNodeNext_AND(tls *libc.TLS, pExpr uintptr, pNode uintptr, bFromValid int32, iFrom I64) int32 {
+ var rc int32 = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 48)))).FxNext})).f(tls, pExpr, *(*uintptr)(unsafe.Pointer(pNode + 48)), bFromValid, iFrom)
+ if rc == SQLITE_OK {
+ rc = fts5ExprNodeTest_AND(tls, pExpr, pNode)
+ } else {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ }
+ return rc
+}
+
+func fts5ExprNodeTest_NOT(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var p1 uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48))
+ var p2 uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48 + 1*8))
+
+ for rc == SQLITE_OK && (*Fts5ExprNode)(unsafe.Pointer(p1)).FbEof == 0 {
+ var cmp int32 = fts5NodeCompare(tls, pExpr, p1, p2)
+ if cmp > 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(p2)).FxNext})).f(tls, pExpr, p2, 1, (*Fts5ExprNode)(unsafe.Pointer(p1)).FiRowid)
+ cmp = fts5NodeCompare(tls, pExpr, p1, p2)
+ }
+
+ if cmp != 0 || (*Fts5ExprNode)(unsafe.Pointer(p2)).FbNomatch != 0 {
+ break
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(p1)).FxNext})).f(tls, pExpr, p1, 0, int64(0))
+ }
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = (*Fts5ExprNode)(unsafe.Pointer(p1)).FbEof
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = (*Fts5ExprNode)(unsafe.Pointer(p1)).FbNomatch
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = (*Fts5ExprNode)(unsafe.Pointer(p1)).FiRowid
+ if (*Fts5ExprNode)(unsafe.Pointer(p1)).FbEof != 0 {
+ fts5ExprNodeZeroPoslist(tls, p2)
+ }
+ return rc
+}
+
+func fts5ExprNodeNext_NOT(tls *libc.TLS, pExpr uintptr, pNode uintptr, bFromValid int32, iFrom I64) int32 {
+ var rc int32 = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 48)))).FxNext})).f(tls, pExpr, *(*uintptr)(unsafe.Pointer(pNode + 48)), bFromValid, iFrom)
+ if rc == SQLITE_OK {
+ rc = fts5ExprNodeTest_NOT(tls, pExpr, pNode)
+ }
+ if rc != SQLITE_OK {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+ }
+ return rc
+}
+
+func fts5ExprNodeTest(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof == 0 {
+ switch (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType {
+ case FTS5_STRING:
+ {
+ rc = fts5ExprNodeTest_STRING(tls, pExpr, pNode)
+ break
+
+ }
+ fallthrough
+
+ case FTS5_TERM:
+ {
+ rc = fts5ExprNodeTest_TERM(tls, pExpr, pNode)
+ break
+
+ }
+ fallthrough
+
+ case FTS5_AND:
+ {
+ rc = fts5ExprNodeTest_AND(tls, pExpr, pNode)
+ break
+
+ }
+ fallthrough
+
+ case FTS5_OR:
+ {
+ fts5ExprNodeTest_OR(tls, pExpr, pNode)
+ break
+
+ }
+ fallthrough
+
+ default:
+ {
+ rc = fts5ExprNodeTest_NOT(tls, pExpr, pNode)
+ break
+
+ }
+ }
+ }
+ return rc
+}
+
+func fts5ExprNodeFirst(tls *libc.TLS, pExpr uintptr, pNode uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 0
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbNomatch = 0
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_TERM || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_STRING {
+ rc = fts5ExprNearInitAll(tls, pExpr, pNode)
+ } else if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext == uintptr(0) {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 1
+ } else {
+ var i int32
+ var nEof int32 = 0
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild && rc == SQLITE_OK; i++ {
+ var pChild uintptr = *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8))
+ rc = fts5ExprNodeFirst(tls, pExpr, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)))
+
+ nEof = nEof + (*Fts5ExprNode)(unsafe.Pointer(pChild)).FbEof
+ }
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = (*Fts5ExprNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 48)))).FiRowid
+
+ switch (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType {
+ case FTS5_AND:
+ if nEof > 0 {
+ fts5ExprSetEof(tls, pNode)
+ }
+ break
+ fallthrough
+
+ case FTS5_OR:
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild == nEof {
+ fts5ExprSetEof(tls, pNode)
+ }
+ break
+ fallthrough
+
+ default:
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = (*Fts5ExprNode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNode + 48)))).FbEof
+ break
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = fts5ExprNodeTest(tls, pExpr, pNode)
+ }
+ return rc
+}
+
+func sqlite3Fts5ExprFirst(tls *libc.TLS, p uintptr, pIdx uintptr, iFirst I64, bDesc int32) int32 {
+ var pRoot uintptr = (*Fts5Expr)(unsafe.Pointer(p)).FpRoot
+ var rc int32
+
+ (*Fts5Expr)(unsafe.Pointer(p)).FpIndex = pIdx
+ (*Fts5Expr)(unsafe.Pointer(p)).FbDesc = bDesc
+ rc = fts5ExprNodeFirst(tls, p, pRoot)
+
+ if rc == SQLITE_OK &&
+ 0 == (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FbEof &&
+ fts5RowidCmp(tls, p, (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FiRowid, iFirst) < 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(pRoot)).FxNext})).f(tls, p, pRoot, 1, iFirst)
+ }
+
+ for (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FbNomatch != 0 && rc == SQLITE_OK {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(pRoot)).FxNext})).f(tls, p, pRoot, 0, int64(0))
+ }
+ return rc
+}
+
+func sqlite3Fts5ExprNext(tls *libc.TLS, p uintptr, iLast I64) int32 {
+ var rc int32
+ var pRoot uintptr = (*Fts5Expr)(unsafe.Pointer(p)).FpRoot
+
+ for __ccgo := true; __ccgo; __ccgo = (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FbNomatch != 0 {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5ExprNode)(unsafe.Pointer(pRoot)).FxNext})).f(tls, p, pRoot, 0, int64(0))
+
+ }
+ if fts5RowidCmp(tls, p, (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FiRowid, iLast) > 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pRoot)).FbEof = 1
+ }
+ return rc
+}
+
+func sqlite3Fts5ExprEof(tls *libc.TLS, p uintptr) int32 {
+ return (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(p)).FpRoot)).FbEof
+}
+
+func sqlite3Fts5ExprRowid(tls *libc.TLS, p uintptr) I64 {
+ return (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(p)).FpRoot)).FiRowid
+}
+
+func fts5ParseStringFromToken(tls *libc.TLS, pToken uintptr, pz uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(pz)) = sqlite3Fts5Strndup(tls, bp, (*Fts5Token)(unsafe.Pointer(pToken)).Fp, (*Fts5Token)(unsafe.Pointer(pToken)).Fn)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func fts5ExprPhraseFree(tls *libc.TLS, pPhrase uintptr) {
+ if pPhrase != 0 {
+ var i int32
+ for i = 0; i < (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm; i++ {
+ var pSyn uintptr
+ var pNext uintptr
+ var pTerm uintptr = pPhrase + 32 + uintptr(i)*32
+ Xsqlite3_free(tls, (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FzTerm)
+ sqlite3Fts5IterClose(tls, (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter)
+ for pSyn = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym; pSyn != 0; pSyn = pNext {
+ pNext = (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FpSynonym
+ sqlite3Fts5IterClose(tls, (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FpIter)
+ sqlite3Fts5BufferFree(tls, pSyn+1*32)
+ Xsqlite3_free(tls, pSyn)
+ }
+ }
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.FnSpace > 0 {
+ sqlite3Fts5BufferFree(tls, pPhrase+8)
+ }
+ Xsqlite3_free(tls, pPhrase)
+ }
+}
+
+func sqlite3Fts5ParseSetCaret(tls *libc.TLS, pPhrase uintptr) {
+ if pPhrase != 0 && (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm != 0 {
+ (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FbFirst = U8(1)
+ }
+}
+
+func sqlite3Fts5ParseNearset(tls *libc.TLS, pParse uintptr, pNear uintptr, pPhrase uintptr) uintptr {
+ var SZALLOC int32 = 8
+ var pRet uintptr = uintptr(0)
+
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc == SQLITE_OK {
+ if pPhrase == uintptr(0) {
+ return pNear
+ }
+ if pNear == uintptr(0) {
+ var nByte Sqlite3_int64
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5ExprNearset{})) + uint64(SZALLOC)*uint64(unsafe.Sizeof(uintptr(0))))
+ pRet = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pRet == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pRet, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pRet, 0))
+ }
+ } else if (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase%SZALLOC == 0 {
+ var nNew int32 = (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase + SZALLOC
+ var nByte Sqlite3_int64
+
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5ExprNearset{})) + uint64(nNew)*uint64(unsafe.Sizeof(uintptr(0))))
+ pRet = Xsqlite3_realloc64(tls, pNear, uint64(nByte))
+ if pRet == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ }
+ } else {
+ pRet = pNear
+ }
+ }
+
+ if pRet == uintptr(0) {
+ sqlite3Fts5ParseNearsetFree(tls, pNear)
+ sqlite3Fts5ParsePhraseFree(tls, pPhrase)
+ } else {
+ if (*Fts5ExprNearset)(unsafe.Pointer(pRet)).FnPhrase > 0 {
+ var pLast uintptr = *(*uintptr)(unsafe.Pointer(pRet + 24 + uintptr((*Fts5ExprNearset)(unsafe.Pointer(pRet)).FnPhrase-1)*8))
+
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm == 0 {
+ fts5ExprPhraseFree(tls, pPhrase)
+ (*Fts5ExprNearset)(unsafe.Pointer(pRet)).FnPhrase--
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase--
+ pPhrase = pLast
+ } else if (*Fts5ExprPhrase)(unsafe.Pointer(pLast)).FnTerm == 0 {
+ fts5ExprPhraseFree(tls, pLast)
+ *(*uintptr)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase + uintptr((*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase-2)*8)) = pPhrase
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase--
+ (*Fts5ExprNearset)(unsafe.Pointer(pRet)).FnPhrase--
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(pRet + 24 + uintptr(libc.PostIncInt32(&(*Fts5ExprNearset)(unsafe.Pointer(pRet)).FnPhrase, 1))*8)) = pPhrase
+ }
+ return pRet
+}
+
+type TokenCtx1 = struct {
+ FpPhrase uintptr
+ Frc int32
+ F__ccgo_pad1 [4]byte
+}
+
+type TokenCtx = TokenCtx1
+
+func fts5ParseTokenize(tls *libc.TLS, pContext uintptr, tflags int32, pToken uintptr, nToken int32, iUnused1 int32, iUnused2 int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var SZALLOC int32 = 8
+ var pCtx uintptr = pContext
+ var pPhrase uintptr = (*TokenCtx)(unsafe.Pointer(pCtx)).FpPhrase
+
+ _ = iUnused1
+ _ = iUnused2
+
+ if (*TokenCtx)(unsafe.Pointer(pCtx)).Frc != SQLITE_OK {
+ return (*TokenCtx)(unsafe.Pointer(pCtx)).Frc
+ }
+ if nToken > FTS5_MAX_TOKEN_SIZE {
+ nToken = FTS5_MAX_TOKEN_SIZE
+ }
+
+ if pPhrase != 0 && (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && tflags&FTS5_TOKEN_COLOCATED != 0 {
+ var pSyn uintptr
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5ExprTerm{})) + uint64(unsafe.Sizeof(Fts5Buffer{})) + uint64(nToken) + uint64(1))
+ pSyn = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pSyn == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, pSyn, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pSyn, 0))
+ (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FzTerm = pSyn + uintptr(uint64(unsafe.Sizeof(Fts5ExprTerm{}))) + uintptr(uint64(unsafe.Sizeof(Fts5Buffer{})))
+ libc.X__builtin___memcpy_chk(tls, (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FzTerm, pToken, uint64(nToken), libc.X__builtin_object_size(tls, (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FzTerm, 0))
+ (*Fts5ExprTerm)(unsafe.Pointer(pSyn)).FpSynonym = (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32 + uintptr((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm-1)*32)).FpSynonym
+ (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32 + uintptr((*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm-1)*32)).FpSynonym = pSyn
+ }
+ } else {
+ var pTerm uintptr
+ if pPhrase == uintptr(0) || (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm%SZALLOC == 0 {
+ var pNew uintptr
+ var nNew int32 = SZALLOC + func() int32 {
+ if pPhrase != 0 {
+ return (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm
+ }
+ return 0
+ }()
+
+ pNew = Xsqlite3_realloc64(tls, pPhrase,
+ uint64(unsafe.Sizeof(Fts5ExprPhrase{}))+uint64(unsafe.Sizeof(Fts5ExprTerm{}))*uint64(nNew))
+ if pNew == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_NOMEM
+ } else {
+ if pPhrase == uintptr(0) {
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Fts5ExprPhrase{})), libc.X__builtin_object_size(tls, pNew, 0))
+ }
+ (*TokenCtx)(unsafe.Pointer(pCtx)).FpPhrase = libc.AssignUintptr(&pPhrase, pNew)
+ (*Fts5ExprPhrase)(unsafe.Pointer(pNew)).FnTerm = nNew - SZALLOC
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ pTerm = pPhrase + 32 + uintptr(libc.PostIncInt32(&(*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm, 1))*32
+ libc.X__builtin___memset_chk(tls, pTerm, 0, uint64(unsafe.Sizeof(Fts5ExprTerm{})), libc.X__builtin_object_size(tls, pTerm, 0))
+ (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FzTerm = sqlite3Fts5Strndup(tls, bp, pToken, nToken)
+ }
+ }
+
+ (*TokenCtx)(unsafe.Pointer(pCtx)).Frc = *(*int32)(unsafe.Pointer(bp))
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5ParsePhraseFree(tls *libc.TLS, pPhrase uintptr) {
+ fts5ExprPhraseFree(tls, pPhrase)
+}
+
+func sqlite3Fts5ParseNearsetFree(tls *libc.TLS, pNear uintptr) {
+ if pNear != 0 {
+ var i int32
+ for i = 0; i < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; i++ {
+ fts5ExprPhraseFree(tls, *(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(i)*8)))
+ }
+ Xsqlite3_free(tls, (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset)
+ Xsqlite3_free(tls, pNear)
+ }
+}
+
+func sqlite3Fts5ParseFinished(tls *libc.TLS, pParse uintptr, p uintptr) {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FpExpr = p
+}
+
+func parseGrowPhraseArray(tls *libc.TLS, pParse uintptr) int32 {
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase%8 == 0 {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64((*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase+8))
+ var apNew uintptr
+ apNew = Xsqlite3_realloc64(tls, (*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase, uint64(nByte))
+ if apNew == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ return SQLITE_NOMEM
+ }
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase = apNew
+ }
+ return SQLITE_OK
+}
+
+func sqlite3Fts5ParseTerm(tls *libc.TLS, pParse uintptr, pAppend uintptr, pToken uintptr, bPrefix int32) uintptr {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pConfig uintptr = (*Fts5Parse)(unsafe.Pointer(pParse)).FpConfig
+
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(TokenCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase = pAppend
+
+ rc = fts5ParseStringFromToken(tls, pToken, bp+16)
+ if rc == SQLITE_OK {
+ var flags int32 = FTS5_TOKENIZE_QUERY | func() int32 {
+ if bPrefix != 0 {
+ return FTS5_TOKENIZE_PREFIX
+ }
+ return 0
+ }()
+ var n int32
+ sqlite3Fts5Dequote(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ n = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 16))))
+ rc = sqlite3Fts5Tokenize(tls, pConfig, flags, *(*uintptr)(unsafe.Pointer(bp + 16)), n, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5ParseTokenize})))
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if rc != 0 || libc.AssignInt32(&rc, (*TokenCtx)(unsafe.Pointer(bp)).Frc) != 0 {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = rc
+ fts5ExprPhraseFree(tls, (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase)
+ (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase = uintptr(0)
+ } else {
+ if pAppend == uintptr(0) {
+ if parseGrowPhraseArray(tls, pParse) != 0 {
+ fts5ExprPhraseFree(tls, (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase)
+ return uintptr(0)
+ }
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase++
+ }
+
+ if (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase == uintptr(0) {
+ (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase = sqlite3Fts5MallocZero(tls, pParse+16, int64(unsafe.Sizeof(Fts5ExprPhrase{})))
+ } else if (*Fts5ExprPhrase)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp)).FpPhrase)).FnTerm != 0 {
+ (*Fts5ExprTerm)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp)).FpPhrase + 32 + uintptr((*Fts5ExprPhrase)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp)).FpPhrase)).FnTerm-1)*32)).FbPrefix = U8(bPrefix)
+ }
+ *(*uintptr)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase + uintptr((*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase-1)*8)) = (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase
+ }
+
+ return (*TokenCtx)(unsafe.Pointer(bp)).FpPhrase
+}
+
+func sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, ppNew uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var pOrig uintptr
+ var pNew uintptr = uintptr(0)
+ *(*TokenCtx)(unsafe.Pointer(bp + 8)) = TokenCtx{}
+
+ pOrig = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(iPhrase)*8))
+ pNew = sqlite3Fts5MallocZero(tls, bp, int64(unsafe.Sizeof(Fts5Expr{})))
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FapExprPhrase = sqlite3Fts5MallocZero(tls, bp,
+ int64(unsafe.Sizeof(uintptr(0))))
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot = sqlite3Fts5MallocZero(tls, bp,
+ int64(unsafe.Sizeof(Fts5ExprNode{})))
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FpNear = sqlite3Fts5MallocZero(tls, bp,
+ int64(uint64(unsafe.Sizeof(Fts5ExprNearset{}))+uint64(unsafe.Sizeof(uintptr(0)))))
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ var pColsetOrig uintptr = (*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer((*Fts5ExprPhrase)(unsafe.Pointer(pOrig)).FpNode)).FpNear)).FpColset
+ if pColsetOrig != 0 {
+ var nByte Sqlite3_int64
+ var pColset uintptr
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Colset{})) + uint64((*Fts5Colset)(unsafe.Pointer(pColsetOrig)).FnCol-1)*uint64(unsafe.Sizeof(int32(0))))
+ pColset = sqlite3Fts5MallocZero(tls, bp, nByte)
+ if pColset != 0 {
+ libc.X__builtin___memcpy_chk(tls, pColset, pColsetOrig, Size_t(nByte), libc.X__builtin_object_size(tls, pColset, 0))
+ }
+ (*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FpNear)).FpColset = pColset
+ }
+ }
+
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pOrig)).FnTerm != 0 {
+ var i int32
+ for i = 0; *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && i < (*Fts5ExprPhrase)(unsafe.Pointer(pOrig)).FnTerm; i++ {
+ var tflags int32 = 0
+ var p uintptr
+ for p = pOrig + 32 + uintptr(i)*32; p != 0 && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK; p = (*Fts5ExprTerm)(unsafe.Pointer(p)).FpSynonym {
+ var zTerm uintptr = (*Fts5ExprTerm)(unsafe.Pointer(p)).FzTerm
+ *(*int32)(unsafe.Pointer(bp)) = fts5ParseTokenize(tls, bp+8, tflags, zTerm, int32(libc.Xstrlen(tls, zTerm)),
+ 0, 0)
+ tflags = FTS5_TOKEN_COLOCATED
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5ExprTerm)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp+8)).FpPhrase + 32 + uintptr(i)*32)).FbPrefix = (*Fts5ExprTerm)(unsafe.Pointer(pOrig + 32 + uintptr(i)*32)).FbPrefix
+ (*Fts5ExprTerm)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp+8)).FpPhrase + 32 + uintptr(i)*32)).FbFirst = (*Fts5ExprTerm)(unsafe.Pointer(pOrig + 32 + uintptr(i)*32)).FbFirst
+ }
+ }
+ } else {
+ (*TokenCtx)(unsafe.Pointer(bp + 8)).FpPhrase = sqlite3Fts5MallocZero(tls, bp, int64(unsafe.Sizeof(Fts5ExprPhrase{})))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TokenCtx)(unsafe.Pointer(bp+8)).FpPhrase != 0 {
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpIndex = (*Fts5Expr)(unsafe.Pointer(pExpr)).FpIndex
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FpConfig = (*Fts5Expr)(unsafe.Pointer(pExpr)).FpConfig
+ (*Fts5Expr)(unsafe.Pointer(pNew)).FnPhrase = 1
+ *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FapExprPhrase)) = (*TokenCtx)(unsafe.Pointer(bp + 8)).FpPhrase
+ *(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FpNear + 24)) = (*TokenCtx)(unsafe.Pointer(bp + 8)).FpPhrase
+ (*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FpNear)).FnPhrase = 1
+ (*Fts5ExprPhrase)(unsafe.Pointer((*TokenCtx)(unsafe.Pointer(bp + 8)).FpPhrase)).FpNode = (*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot
+
+ if (*Fts5ExprPhrase)(unsafe.Pointer(pOrig)).FnTerm == 1 &&
+ (*Fts5ExprTerm)(unsafe.Pointer(pOrig+32)).FpSynonym == uintptr(0) &&
+ int32((*Fts5ExprTerm)(unsafe.Pointer(pOrig+32)).FbFirst) == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FeType = FTS5_TERM
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_TERM}))
+ } else {
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FeType = FTS5_STRING
+ (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_STRING}))
+ }
+ } else {
+ sqlite3Fts5ExprFree(tls, pNew)
+ fts5ExprPhraseFree(tls, (*TokenCtx)(unsafe.Pointer(bp+8)).FpPhrase)
+ pNew = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppNew)) = pNew
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Token)(unsafe.Pointer(pTok)).Fn != 4 || libc.Xmemcmp(tls, ts+35135, (*Fts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 {
+ sqlite3Fts5ParseError(tls,
+ pParse, ts+34164, libc.VaList(bp, (*Fts5Token)(unsafe.Pointer(pTok)).Fn, (*Fts5Token)(unsafe.Pointer(pTok)).Fp))
+ }
+}
+
+func sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, p uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if pNear != 0 {
+ var nNear int32 = 0
+ var i int32
+ if (*Fts5Token)(unsafe.Pointer(p)).Fn != 0 {
+ for i = 0; i < (*Fts5Token)(unsafe.Pointer(p)).Fn; i++ {
+ var c int8 = *(*int8)(unsafe.Pointer((*Fts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))
+ if int32(c) < '0' || int32(c) > '9' {
+ sqlite3Fts5ParseError(tls,
+ pParse, ts+35140, libc.VaList(bp, (*Fts5Token)(unsafe.Pointer(p)).Fn, (*Fts5Token)(unsafe.Pointer(p)).Fp))
+ return
+ }
+ nNear = nNear*10 + (int32(*(*int8)(unsafe.Pointer((*Fts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - '0')
+ }
+ } else {
+ nNear = FTS5_DEFAULT_NEARDIST
+ }
+ (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnNear = nNear
+ }
+}
+
+func fts5ParseColset(tls *libc.TLS, pParse uintptr, p uintptr, iCol int32) uintptr {
+ var nCol int32
+ if p != 0 {
+ nCol = (*Fts5Colset)(unsafe.Pointer(p)).FnCol
+ } else {
+ nCol = 0
+ }
+ var pNew uintptr
+
+ pNew = Xsqlite3_realloc64(tls, p, uint64(unsafe.Sizeof(Fts5Colset{}))+uint64(unsafe.Sizeof(int32(0)))*uint64(nCol))
+ if pNew == uintptr(0) {
+ (*Fts5Parse)(unsafe.Pointer(pParse)).Frc = SQLITE_NOMEM
+ } else {
+ var aiCol uintptr = pNew + 4
+ var i int32
+ var j int32
+ for i = 0; i < nCol; i++ {
+ if *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) == iCol {
+ return pNew
+ }
+ if *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) > iCol {
+ break
+ }
+ }
+ for j = nCol; j > i; j-- {
+ *(*int32)(unsafe.Pointer(aiCol + uintptr(j)*4)) = *(*int32)(unsafe.Pointer(aiCol + uintptr(j-1)*4))
+ }
+ *(*int32)(unsafe.Pointer(aiCol + uintptr(i)*4)) = iCol
+ (*Fts5Colset)(unsafe.Pointer(pNew)).FnCol = nCol + 1
+
+ }
+
+ return pNew
+}
+
+func sqlite3Fts5ParseColsetInvert(tls *libc.TLS, pParse uintptr, p uintptr) uintptr {
+ var pRet uintptr
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FnCol
+
+ pRet = sqlite3Fts5MallocZero(tls, pParse+16,
+ int64(uint64(unsafe.Sizeof(Fts5Colset{}))+uint64(unsafe.Sizeof(int32(0)))*uint64(nCol)))
+ if pRet != 0 {
+ var i int32
+ var iOld int32 = 0
+ for i = 0; i < nCol; i++ {
+ if iOld >= (*Fts5Colset)(unsafe.Pointer(p)).FnCol || *(*int32)(unsafe.Pointer(p + 4 + uintptr(iOld)*4)) != i {
+ *(*int32)(unsafe.Pointer(pRet + 4 + uintptr(libc.PostIncInt32(&(*Fts5Colset)(unsafe.Pointer(pRet)).FnCol, 1))*4)) = i
+ } else {
+ iOld++
+ }
+ }
+ }
+
+ Xsqlite3_free(tls, p)
+ return pRet
+}
+
+func sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pRet uintptr = uintptr(0)
+ var iCol int32
+ var z uintptr
+
+ z = sqlite3Fts5Strndup(tls, pParse+16, (*Fts5Token)(unsafe.Pointer(p)).Fp, (*Fts5Token)(unsafe.Pointer(p)).Fn)
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc == SQLITE_OK {
+ var pConfig uintptr = (*Fts5Parse)(unsafe.Pointer(pParse)).FpConfig
+ sqlite3Fts5Dequote(tls, z)
+ for iCol = 0; iCol < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; iCol++ {
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(iCol)*8)), z) {
+ break
+ }
+ }
+ if iCol == (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol {
+ sqlite3Fts5ParseError(tls, pParse, ts+20978, libc.VaList(bp, z))
+ } else {
+ pRet = fts5ParseColset(tls, pParse, pColset, iCol)
+ }
+ Xsqlite3_free(tls, z)
+ }
+
+ if pRet == uintptr(0) {
+ Xsqlite3_free(tls, pColset)
+ }
+
+ return pRet
+}
+
+func fts5CloneColset(tls *libc.TLS, pRc uintptr, pOrig uintptr) uintptr {
+ var pRet uintptr
+ if pOrig != 0 {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Colset{})) + uint64((*Fts5Colset)(unsafe.Pointer(pOrig)).FnCol-1)*uint64(unsafe.Sizeof(int32(0))))
+ pRet = sqlite3Fts5MallocZero(tls, pRc, nByte)
+ if pRet != 0 {
+ libc.X__builtin___memcpy_chk(tls, pRet, pOrig, Size_t(nByte), libc.X__builtin_object_size(tls, pRet, 0))
+ }
+ } else {
+ pRet = uintptr(0)
+ }
+ return pRet
+}
+
+func fts5MergeColset(tls *libc.TLS, pColset uintptr, pMerge uintptr) {
+ var iIn int32 = 0
+ var iMerge int32 = 0
+ var iOut int32 = 0
+
+ for iIn < (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol && iMerge < (*Fts5Colset)(unsafe.Pointer(pMerge)).FnCol {
+ var iDiff int32 = *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(iIn)*4)) - *(*int32)(unsafe.Pointer(pMerge + 4 + uintptr(iMerge)*4))
+ if iDiff == 0 {
+ *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(libc.PostIncInt32(&iOut, 1))*4)) = *(*int32)(unsafe.Pointer(pMerge + 4 + uintptr(iMerge)*4))
+ iMerge++
+ iIn++
+ } else if iDiff > 0 {
+ iMerge++
+ } else {
+ iIn++
+ }
+ }
+ (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol = iOut
+}
+
+func fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pNode uintptr, pColset uintptr, ppFree uintptr) {
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc == SQLITE_OK {
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_STRING || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_TERM {
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ if (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset != 0 {
+ fts5MergeColset(tls, (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset, pColset)
+ if (*Fts5Colset)(unsafe.Pointer((*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset)).FnCol == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType = FTS5_EOF
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = uintptr(0)
+ }
+ } else if *(*uintptr)(unsafe.Pointer(ppFree)) != 0 {
+ (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset = pColset
+ *(*uintptr)(unsafe.Pointer(ppFree)) = uintptr(0)
+ } else {
+ (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FpColset = fts5CloneColset(tls, pParse+16, pColset)
+ }
+ } else {
+ var i int32
+
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ fts5ParseSetColset(tls, pParse, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)), pColset, ppFree)
+ }
+ }
+ }
+}
+
+func sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pColset uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = pColset
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == FTS5_DETAIL_NONE {
+ sqlite3Fts5ParseError(tls, pParse,
+ ts+35169, 0)
+ } else {
+ fts5ParseSetColset(tls, pParse, pExpr, pColset, bp)
+ }
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp)))
+}
+
+func fts5ExprAssignXNext(tls *libc.TLS, pNode uintptr) {
+ switch (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType {
+ case FTS5_STRING:
+ {
+ var pNear uintptr = (*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear
+ if (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == 1 && (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24)))).FnTerm == 1 &&
+ (*Fts5ExprTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24))+32)).FpSynonym == uintptr(0) &&
+ int32((*Fts5ExprTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24))+32)).FbFirst) == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType = FTS5_TERM
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_TERM}))
+ } else {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_STRING}))
+ }
+ break
+
+ }
+
+ case FTS5_OR:
+ {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_OR}))
+ break
+
+ }
+
+ case FTS5_AND:
+ {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_AND}))
+ break
+
+ }
+
+ default:
+ {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, I64) int32
+ }{fts5ExprNodeNext_NOT}))
+ break
+
+ }
+
+ }
+}
+
+func fts5ExprAddChildren(tls *libc.TLS, p uintptr, pSub uintptr) {
+ if (*Fts5ExprNode)(unsafe.Pointer(p)).FeType != FTS5_NOT && (*Fts5ExprNode)(unsafe.Pointer(pSub)).FeType == (*Fts5ExprNode)(unsafe.Pointer(p)).FeType {
+ var nByte int32 = int32(uint64(unsafe.Sizeof(uintptr(0))) * uint64((*Fts5ExprNode)(unsafe.Pointer(pSub)).FnChild))
+ libc.X__builtin___memcpy_chk(tls, p+48+uintptr((*Fts5ExprNode)(unsafe.Pointer(p)).FnChild)*8, pSub+48, uint64(nByte), libc.X__builtin_object_size(tls, p+48+uintptr((*Fts5ExprNode)(unsafe.Pointer(p)).FnChild)*8, 0))
+ *(*int32)(unsafe.Pointer(p + 40)) += (*Fts5ExprNode)(unsafe.Pointer(pSub)).FnChild
+ Xsqlite3_free(tls, pSub)
+ } else {
+ *(*uintptr)(unsafe.Pointer(p + 48 + uintptr(libc.PostIncInt32(&(*Fts5ExprNode)(unsafe.Pointer(p)).FnChild, 1))*8)) = pSub
+ }
+}
+
+func fts5ParsePhraseToAnd(tls *libc.TLS, pParse uintptr, pNear uintptr) uintptr {
+ var nTerm int32 = (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24)))).FnTerm
+ var ii int32
+ var nByte int32
+ var pRet uintptr
+
+ nByte = int32(uint64(unsafe.Sizeof(Fts5ExprNode{})) + uint64(nTerm)*uint64(unsafe.Sizeof(uintptr(0))))
+ pRet = sqlite3Fts5MallocZero(tls, pParse+16, int64(nByte))
+ if pRet != 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FeType = FTS5_AND
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FnChild = nTerm
+ fts5ExprAssignXNext(tls, pRet)
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase--
+ for ii = 0; ii < nTerm; ii++ {
+ var pPhrase uintptr = sqlite3Fts5MallocZero(tls,
+ pParse+16, int64(unsafe.Sizeof(Fts5ExprPhrase{})))
+ if pPhrase != 0 {
+ if parseGrowPhraseArray(tls, pParse) != 0 {
+ fts5ExprPhraseFree(tls, pPhrase)
+ } else {
+ *(*uintptr)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase + uintptr(libc.PostIncInt32(&(*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase, 1))*8)) = pPhrase
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm = 1
+ (*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FzTerm = sqlite3Fts5Strndup(tls,
+ pParse+16, (*Fts5ExprTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24))+32+uintptr(ii)*32)).FzTerm, -1)
+ *(*uintptr)(unsafe.Pointer(pRet + 48 + uintptr(ii)*8)) = sqlite3Fts5ParseNode(tls, pParse, FTS5_STRING,
+ uintptr(0), uintptr(0), sqlite3Fts5ParseNearset(tls, pParse, uintptr(0), pPhrase))
+ }
+ }
+ }
+
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc != 0 {
+ sqlite3Fts5ParseNodeFree(tls, pRet)
+ pRet = uintptr(0)
+ } else {
+ sqlite3Fts5ParseNearsetFree(tls, pNear)
+ }
+ }
+
+ return pRet
+}
+
+func sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uintptr, pRight uintptr, pNear uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pRet uintptr = uintptr(0)
+
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc == SQLITE_OK {
+ var nChild int32 = 0
+ var nByte Sqlite3_int64
+
+ if eType == FTS5_STRING && pNear == uintptr(0) {
+ return uintptr(0)
+ }
+ if eType != FTS5_STRING && pLeft == uintptr(0) {
+ return pRight
+ }
+ if eType != FTS5_STRING && pRight == uintptr(0) {
+ return pLeft
+ }
+
+ if eType == FTS5_STRING &&
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FbPhraseToAnd != 0 &&
+ (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24)))).FnTerm > 1 {
+ pRet = fts5ParsePhraseToAnd(tls, pParse, pNear)
+ } else {
+ if eType == FTS5_NOT {
+ nChild = 2
+ } else if eType == FTS5_AND || eType == FTS5_OR {
+ nChild = 2
+ if (*Fts5ExprNode)(unsafe.Pointer(pLeft)).FeType == eType {
+ nChild = nChild + ((*Fts5ExprNode)(unsafe.Pointer(pLeft)).FnChild - 1)
+ }
+ if (*Fts5ExprNode)(unsafe.Pointer(pRight)).FeType == eType {
+ nChild = nChild + ((*Fts5ExprNode)(unsafe.Pointer(pRight)).FnChild - 1)
+ }
+ }
+
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5ExprNode{})) + uint64(unsafe.Sizeof(uintptr(0)))*uint64(nChild-1))
+ pRet = sqlite3Fts5MallocZero(tls, pParse+16, nByte)
+
+ if pRet != 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FeType = eType
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FpNear = pNear
+ fts5ExprAssignXNext(tls, pRet)
+ if eType == FTS5_STRING {
+ var iPhrase int32
+ for iPhrase = 0; iPhrase < (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase; iPhrase++ {
+ (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(iPhrase)*8)))).FpNode = pRet
+ if (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24 + uintptr(iPhrase)*8)))).FnTerm == 0 {
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FxNext = uintptr(0)
+ (*Fts5ExprNode)(unsafe.Pointer(pRet)).FeType = FTS5_EOF
+ }
+ }
+
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail != FTS5_DETAIL_FULL {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer(pNear + 24))
+ if (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != 1 ||
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 1 ||
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*Fts5ExprTerm)(unsafe.Pointer(pPhrase+32)).FbFirst != 0 {
+ sqlite3Fts5ParseError(tls, pParse,
+ ts+35222,
+ libc.VaList(bp, func() uintptr {
+ if (*Fts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == 1 {
+ return ts + 35272
+ }
+ return ts + 35135
+ }()))
+ Xsqlite3_free(tls, pRet)
+ pRet = uintptr(0)
+ }
+ }
+ } else {
+ fts5ExprAddChildren(tls, pRet, pLeft)
+ fts5ExprAddChildren(tls, pRet, pRight)
+ }
+ }
+ }
+ }
+
+ if pRet == uintptr(0) {
+ sqlite3Fts5ParseNodeFree(tls, pLeft)
+ sqlite3Fts5ParseNodeFree(tls, pRight)
+ sqlite3Fts5ParseNearsetFree(tls, pNear)
+ }
+ return pRet
+}
+
+func sqlite3Fts5ParseImplicitAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr) uintptr {
+ var pRet uintptr = uintptr(0)
+ var pPrev uintptr
+
+ if (*Fts5Parse)(unsafe.Pointer(pParse)).Frc != 0 {
+ sqlite3Fts5ParseNodeFree(tls, pLeft)
+ sqlite3Fts5ParseNodeFree(tls, pRight)
+ } else {
+ if (*Fts5ExprNode)(unsafe.Pointer(pLeft)).FeType == FTS5_AND {
+ pPrev = *(*uintptr)(unsafe.Pointer(pLeft + 48 + uintptr((*Fts5ExprNode)(unsafe.Pointer(pLeft)).FnChild-1)*8))
+ } else {
+ pPrev = pLeft
+ }
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pRight)).FeType == FTS5_EOF {
+ sqlite3Fts5ParseNodeFree(tls, pRight)
+ pRet = pLeft
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase--
+ } else if (*Fts5ExprNode)(unsafe.Pointer(pPrev)).FeType == FTS5_EOF {
+ var ap uintptr
+
+ if pPrev == pLeft {
+ pRet = pRight
+ } else {
+ *(*uintptr)(unsafe.Pointer(pLeft + 48 + uintptr((*Fts5ExprNode)(unsafe.Pointer(pLeft)).FnChild-1)*8)) = pRight
+ pRet = pLeft
+ }
+
+ ap = (*Fts5Parse)(unsafe.Pointer(pParse)).FapPhrase + uintptr((*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase-1-(*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pRight)).FpNear)).FnPhrase)*8
+
+ libc.X__builtin___memmove_chk(tls, ap, ap+1*8, uint64(unsafe.Sizeof(uintptr(0)))*uint64((*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pRight)).FpNear)).FnPhrase), libc.X__builtin_object_size(tls, ap, 0))
+ (*Fts5Parse)(unsafe.Pointer(pParse)).FnPhrase--
+
+ sqlite3Fts5ParseNodeFree(tls, pPrev)
+ } else {
+ pRet = sqlite3Fts5ParseNode(tls, pParse, FTS5_AND, pLeft, pRight, uintptr(0))
+ }
+ }
+
+ return pRet
+}
+
+func sqlite3Fts5ExprInit(tls *libc.TLS, pGlobal uintptr, db uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ _ = pGlobal
+ _ = db
+
+ _ = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, int32) int32 }{sqlite3Fts5ParserFallback}))
+
+ return rc
+}
+
+func sqlite3Fts5ExprPhraseCount(tls *libc.TLS, pExpr uintptr) int32 {
+ return func() int32 {
+ if pExpr != 0 {
+ return (*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase
+ }
+ return 0
+ }()
+}
+
+func sqlite3Fts5ExprPhraseSize(tls *libc.TLS, pExpr uintptr, iPhrase int32) int32 {
+ if iPhrase < 0 || iPhrase >= (*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase {
+ return 0
+ }
+ return (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(iPhrase)*8)))).FnTerm
+}
+
+func sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uintptr) int32 {
+ var nRet int32
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(iPhrase)*8))
+ var pNode uintptr = (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FpNode
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof == 0 && (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid == (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FpRoot)).FiRowid {
+ *(*uintptr)(unsafe.Pointer(pa)) = (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fp
+ nRet = (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn
+ } else {
+ *(*uintptr)(unsafe.Pointer(pa)) = uintptr(0)
+ nRet = 0
+ }
+ return nRet
+}
+
+func sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) uintptr {
+ var pRet uintptr
+ pRet = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(Fts5PoslistPopulator{}))*uint64((*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase))
+ if pRet != 0 {
+ var i int32
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(unsafe.Sizeof(Fts5PoslistPopulator{}))*uint64((*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase), libc.X__builtin_object_size(tls, pRet, 0))
+ for i = 0; i < (*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase; i++ {
+ var pBuf uintptr = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(i)*8)) + 8
+ var pNode uintptr = (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(i)*8)))).FpNode
+
+ if bLive != 0 && ((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn == 0 || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid != (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FpRoot)).FiRowid || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof != 0) {
+ (*Fts5PoslistPopulator)(unsafe.Pointer(pRet + uintptr(i)*16)).FbMiss = 1
+ } else {
+ (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn = 0
+ }
+ }
+ }
+ return pRet
+}
+
+type Fts5ExprCtx1 = struct {
+ FpExpr uintptr
+ FaPopulator uintptr
+ FiOff I64
+}
+
+type Fts5ExprCtx = Fts5ExprCtx1
+
+func fts5ExprColsetTest(tls *libc.TLS, pColset uintptr, iCol int32) int32 {
+ var i int32
+ for i = 0; i < (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol; i++ {
+ if *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(i)*4)) == iCol {
+ return 1
+ }
+ }
+ return 0
+}
+
+func fts5ExprPopulatePoslistsCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nToken int32, iUnused1 int32, iUnused2 int32) int32 {
+ var p uintptr = pCtx
+ var pExpr uintptr = (*Fts5ExprCtx)(unsafe.Pointer(p)).FpExpr
+ var i int32
+
+ _ = iUnused1
+ _ = iUnused2
+
+ if nToken > FTS5_MAX_TOKEN_SIZE {
+ nToken = FTS5_MAX_TOKEN_SIZE
+ }
+ if tflags&FTS5_TOKEN_COLOCATED == 0 {
+ (*Fts5ExprCtx)(unsafe.Pointer(p)).FiOff++
+ }
+ for i = 0; i < (*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase; i++ {
+ var pTerm uintptr
+ if (*Fts5PoslistPopulator)(unsafe.Pointer((*Fts5ExprCtx)(unsafe.Pointer(p)).FaPopulator+uintptr(i)*16)).FbOk == 0 {
+ continue
+ }
+ for pTerm = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(i)*8)) + 32; pTerm != 0; pTerm = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym {
+ var nTerm int32 = int32(libc.Xstrlen(tls, (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FzTerm))
+ if (nTerm == nToken || nTerm < nToken && (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FbPrefix != 0) &&
+ libc.Xmemcmp(tls, (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FzTerm, pToken, uint64(nTerm)) == 0 {
+ var rc int32 = sqlite3Fts5PoslistWriterAppend(tls,
+ *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(i)*8))+8, (*Fts5ExprCtx)(unsafe.Pointer(p)).FaPopulator+uintptr(i)*16, (*Fts5ExprCtx)(unsafe.Pointer(p)).FiOff)
+ if rc != 0 {
+ return rc
+ }
+ break
+ }
+ }
+ }
+ return SQLITE_OK
+}
+
+func sqlite3Fts5ExprPopulatePoslists(tls *libc.TLS, pConfig uintptr, pExpr uintptr, aPopulator uintptr, iCol int32, z uintptr, n int32) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var i int32
+
+ (*Fts5ExprCtx)(unsafe.Pointer(bp)).FpExpr = pExpr
+ (*Fts5ExprCtx)(unsafe.Pointer(bp)).FaPopulator = aPopulator
+ (*Fts5ExprCtx)(unsafe.Pointer(bp)).FiOff = I64(iCol)<<32 - int64(1)
+
+ for i = 0; i < (*Fts5Expr)(unsafe.Pointer(pExpr)).FnPhrase; i++ {
+ var pNode uintptr = (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(i)*8)))).FpNode
+ var pColset uintptr = (*Fts5ExprNearset)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear)).FpColset
+ if pColset != 0 && 0 == fts5ExprColsetTest(tls, pColset, iCol) ||
+ (*Fts5PoslistPopulator)(unsafe.Pointer(aPopulator+uintptr(i)*16)).FbMiss != 0 {
+ (*Fts5PoslistPopulator)(unsafe.Pointer(aPopulator + uintptr(i)*16)).FbOk = 0
+ } else {
+ (*Fts5PoslistPopulator)(unsafe.Pointer(aPopulator + uintptr(i)*16)).FbOk = 1
+ }
+ }
+
+ return sqlite3Fts5Tokenize(tls, pConfig,
+ FTS5_TOKENIZE_DOCUMENT, z, n, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5ExprPopulatePoslistsCb})))
+}
+
+func fts5ExprClearPoslists(tls *libc.TLS, pNode uintptr) {
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_TERM || (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType == FTS5_STRING {
+ (*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear + 24)))).Fposlist.Fn = 0
+ } else {
+ var i int32
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ fts5ExprClearPoslists(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)))
+ }
+ }
+}
+
+func fts5ExprCheckPoslists(tls *libc.TLS, pNode uintptr, iRowid I64) int32 {
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid = iRowid
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof = 0
+ switch (*Fts5ExprNode)(unsafe.Pointer(pNode)).FeType {
+ case FTS5_TERM:
+ fallthrough
+ case FTS5_STRING:
+ return libc.Bool32((*Fts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*Fts5ExprNode)(unsafe.Pointer(pNode)).FpNear + 24)))).Fposlist.Fn > 0)
+
+ case FTS5_AND:
+ {
+ var i int32
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ if fts5ExprCheckPoslists(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)), iRowid) == 0 {
+ fts5ExprClearPoslists(tls, pNode)
+ return 0
+ }
+ }
+ break
+
+ }
+
+ case FTS5_OR:
+ {
+ var i int32
+ var bRet int32 = 0
+ for i = 0; i < (*Fts5ExprNode)(unsafe.Pointer(pNode)).FnChild; i++ {
+ if fts5ExprCheckPoslists(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + uintptr(i)*8)), iRowid) != 0 {
+ bRet = 1
+ }
+ }
+ return bRet
+
+ }
+
+ default:
+ {
+ if 0 == fts5ExprCheckPoslists(tls, *(*uintptr)(unsafe.Pointer(pNode + 48)), iRowid) ||
+ 0 != fts5ExprCheckPoslists(tls, *(*uintptr)(unsafe.Pointer(pNode + 48 + 1*8)), iRowid) {
+ fts5ExprClearPoslists(tls, pNode)
+ return 0
+ }
+ break
+
+ }
+ }
+ return 1
+}
+
+func sqlite3Fts5ExprCheckPoslists(tls *libc.TLS, pExpr uintptr, iRowid I64) {
+ fts5ExprCheckPoslists(tls, (*Fts5Expr)(unsafe.Pointer(pExpr)).FpRoot, iRowid)
+}
+
+func sqlite3Fts5ExprPhraseCollist(tls *libc.TLS, pExpr uintptr, iPhrase int32, ppCollist uintptr, pnCollist uintptr) int32 {
+ var pPhrase uintptr = *(*uintptr)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FapExprPhrase + uintptr(iPhrase)*8))
+ var pNode uintptr = (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).FpNode
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5ExprNode)(unsafe.Pointer(pNode)).FbEof == 0 &&
+ (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid == (*Fts5ExprNode)(unsafe.Pointer((*Fts5Expr)(unsafe.Pointer(pExpr)).FpRoot)).FiRowid &&
+ (*Fts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0 {
+ var pTerm uintptr = pPhrase + 32
+ if (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym != 0 {
+ var pBuf uintptr = (*Fts5ExprTerm)(unsafe.Pointer(pTerm)).FpSynonym + 1*32
+ rc = fts5ExprSynonymList(tls,
+ pTerm, (*Fts5ExprNode)(unsafe.Pointer(pNode)).FiRowid, pBuf, ppCollist, pnCollist)
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppCollist)) = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FpIter)).FpData
+ *(*int32)(unsafe.Pointer(pnCollist)) = (*Fts5IndexIter)(unsafe.Pointer((*Fts5ExprTerm)(unsafe.Pointer(pPhrase + 32)).FpIter)).FnData
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppCollist)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnCollist)) = 0
+ }
+
+ return rc
+}
+
+type Fts5HashEntry1 = struct {
+ FpHashNext uintptr
+ FpScanNext uintptr
+ FnAlloc int32
+ FiSzPoslist int32
+ FnData int32
+ FnKey int32
+ FbDel U8
+ FbContent U8
+ FiCol I16
+ FiPos int32
+ FiRowid I64
+}
+
+type Fts5HashEntry = Fts5HashEntry1
+
+func sqlite3Fts5HashNew(tls *libc.TLS, pConfig uintptr, ppNew uintptr, pnByte uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pNew uintptr
+
+ *(*uintptr)(unsafe.Pointer(ppNew)) = libc.AssignUintptr(&pNew, Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Fts5Hash{}))))
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var nByte Sqlite3_int64
+ libc.X__builtin___memset_chk(tls, pNew, 0, uint64(unsafe.Sizeof(Fts5Hash{})), libc.X__builtin_object_size(tls, pNew, 0))
+ (*Fts5Hash)(unsafe.Pointer(pNew)).FpnByte = pnByte
+ (*Fts5Hash)(unsafe.Pointer(pNew)).FeDetail = (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail
+
+ (*Fts5Hash)(unsafe.Pointer(pNew)).FnSlot = 1024
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64((*Fts5Hash)(unsafe.Pointer(pNew)).FnSlot))
+ (*Fts5Hash)(unsafe.Pointer(pNew)).FaSlot = Xsqlite3_malloc64(tls, uint64(nByte))
+ if (*Fts5Hash)(unsafe.Pointer(pNew)).FaSlot == uintptr(0) {
+ Xsqlite3_free(tls, pNew)
+ *(*uintptr)(unsafe.Pointer(ppNew)) = uintptr(0)
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memset_chk(tls, (*Fts5Hash)(unsafe.Pointer(pNew)).FaSlot, 0, Size_t(nByte), libc.X__builtin_object_size(tls, (*Fts5Hash)(unsafe.Pointer(pNew)).FaSlot, 0))
+ }
+ }
+ return rc
+}
+
+func sqlite3Fts5HashFree(tls *libc.TLS, pHash uintptr) {
+ if pHash != 0 {
+ sqlite3Fts5HashClear(tls, pHash)
+ Xsqlite3_free(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot)
+ Xsqlite3_free(tls, pHash)
+ }
+}
+
+func sqlite3Fts5HashClear(tls *libc.TLS, pHash uintptr) {
+ var i int32
+ for i = 0; i < (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot; i++ {
+ var pNext uintptr
+ var pSlot uintptr
+ for pSlot = *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(i)*8)); pSlot != 0; pSlot = pNext {
+ pNext = (*Fts5HashEntry)(unsafe.Pointer(pSlot)).FpHashNext
+ Xsqlite3_free(tls, pSlot)
+ }
+ }
+ libc.X__builtin___memset_chk(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot, 0, uint64((*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot, 0))
+ (*Fts5Hash)(unsafe.Pointer(pHash)).FnEntry = 0
+}
+
+func fts5HashKey(tls *libc.TLS, nSlot int32, p uintptr, n int32) uint32 {
+ var i int32
+ var h uint32 = uint32(13)
+ for i = n - 1; i >= 0; i-- {
+ h = h<<3 ^ h ^ uint32(*(*U8)(unsafe.Pointer(p + uintptr(i))))
+ }
+ return h % uint32(nSlot)
+}
+
+func fts5HashKey2(tls *libc.TLS, nSlot int32, b U8, p uintptr, n int32) uint32 {
+ var i int32
+ var h uint32 = uint32(13)
+ for i = n - 1; i >= 0; i-- {
+ h = h<<3 ^ h ^ uint32(*(*U8)(unsafe.Pointer(p + uintptr(i))))
+ }
+ h = h<<3 ^ h ^ uint32(b)
+ return h % uint32(nSlot)
+}
+
+func fts5HashResize(tls *libc.TLS, pHash uintptr) int32 {
+ var nNew int32 = (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot * 2
+ var i int32
+ var apNew uintptr
+ var apOld uintptr = (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot
+
+ apNew = Xsqlite3_malloc64(tls, uint64(nNew)*uint64(unsafe.Sizeof(uintptr(0))))
+ if !(apNew != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, apNew, 0, uint64(nNew)*uint64(unsafe.Sizeof(uintptr(0))), libc.X__builtin_object_size(tls, apNew, 0))
+
+ for i = 0; i < (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot; i++ {
+ for *(*uintptr)(unsafe.Pointer(apOld + uintptr(i)*8)) != 0 {
+ var iHash uint32
+ var p uintptr = *(*uintptr)(unsafe.Pointer(apOld + uintptr(i)*8))
+ *(*uintptr)(unsafe.Pointer(apOld + uintptr(i)*8)) = (*Fts5HashEntry)(unsafe.Pointer(p)).FpHashNext
+ iHash = fts5HashKey(tls, nNew, p+1*48,
+ int32(libc.Xstrlen(tls, p+1*48)))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FpHashNext = *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8))
+ *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8)) = p
+ }
+ }
+
+ Xsqlite3_free(tls, apOld)
+ (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot = nNew
+ (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot = apNew
+ return SQLITE_OK
+}
+
+func fts5HashAddPoslistSize(tls *libc.TLS, pHash uintptr, p uintptr, p2 uintptr) int32 {
+ var nRet int32 = 0
+ if (*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist != 0 {
+ var pPtr uintptr
+ if p2 != 0 {
+ pPtr = p2
+ } else {
+ pPtr = p
+ }
+ var nData int32 = (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_NONE {
+ if (*Fts5HashEntry)(unsafe.Pointer(p)).FbDel != 0 {
+ *(*U8)(unsafe.Pointer(pPtr + uintptr(libc.PostIncInt32(&nData, 1)))) = U8(0x00)
+ if (*Fts5HashEntry)(unsafe.Pointer(p)).FbContent != 0 {
+ *(*U8)(unsafe.Pointer(pPtr + uintptr(libc.PostIncInt32(&nData, 1)))) = U8(0x00)
+ }
+ }
+ } else {
+ var nSz int32 = nData - (*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist - 1
+ var nPos int32 = nSz*2 + int32((*Fts5HashEntry)(unsafe.Pointer(p)).FbDel)
+
+ if nPos <= 127 {
+ *(*U8)(unsafe.Pointer(pPtr + uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist))) = U8(nPos)
+ } else {
+ var nByte int32 = sqlite3Fts5GetVarintLen(tls, U32(nPos))
+ libc.X__builtin___memmove_chk(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist+nByte), pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist+1), uint64(nSz), libc.X__builtin_object_size(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist+nByte), 0))
+ sqlite3Fts5PutVarint(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist), uint64(nPos))
+ nData = nData + (nByte - 1)
+ }
+ }
+
+ nRet = nData - (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ if p2 == uintptr(0) {
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist = 0
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FbDel = U8(0)
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FbContent = U8(0)
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FnData = nData
+ }
+ }
+ return nRet
+}
+
+func sqlite3Fts5HashWrite(tls *libc.TLS, pHash uintptr, iRowid I64, iCol int32, iPos int32, bByte int8, pToken uintptr, nToken int32) int32 {
+ var iHash uint32
+ var p uintptr
+ var pPtr uintptr
+ var nIncr int32 = 0
+ var bNew int32
+
+ bNew = libc.Bool32((*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_FULL)
+
+ iHash = fts5HashKey2(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot, U8(bByte), pToken, nToken)
+ for p = *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iHash)*8)); p != 0; p = (*Fts5HashEntry)(unsafe.Pointer(p)).FpHashNext {
+ var zKey uintptr = p + 1*48
+ if int32(*(*int8)(unsafe.Pointer(zKey))) == int32(bByte) &&
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FnKey == nToken &&
+ libc.Xmemcmp(tls, zKey+1, pToken, uint64(nToken)) == 0 {
+ break
+ }
+ }
+
+ if p == uintptr(0) {
+ var zKey uintptr
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5HashEntry{})) + uint64(nToken+1) + uint64(1) + uint64(64))
+ if nByte < int64(128) {
+ nByte = int64(128)
+ }
+
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FnEntry*2 >= (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot {
+ var rc int32 = fts5HashResize(tls, pHash)
+ if rc != SQLITE_OK {
+ return rc
+ }
+ iHash = fts5HashKey2(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot, U8(bByte), pToken, nToken)
+ }
+
+ p = Xsqlite3_malloc64(tls, uint64(nByte))
+ if !(p != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Fts5HashEntry{})), libc.X__builtin_object_size(tls, p, 0))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FnAlloc = int32(nByte)
+ zKey = p + 1*48
+ *(*int8)(unsafe.Pointer(zKey)) = bByte
+ libc.X__builtin___memcpy_chk(tls, zKey+1, pToken, uint64(nToken), libc.X__builtin_object_size(tls, zKey+1, 0))
+
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FnKey = nToken
+ *(*int8)(unsafe.Pointer(zKey + uintptr(nToken+1))) = int8(0)
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FnData = int32(uint64(nToken+1+1) + uint64(unsafe.Sizeof(Fts5HashEntry{})))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FpHashNext = *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iHash)*8))
+ *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iHash)*8)) = p
+ (*Fts5Hash)(unsafe.Pointer(pHash)).FnEntry++
+
+ *(*int32)(unsafe.Pointer(p + 24)) += sqlite3Fts5PutVarint(tls, p+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FnData), uint64(iRowid))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiRowid = iRowid
+
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist = (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail != FTS5_DETAIL_NONE {
+ *(*int32)(unsafe.Pointer(p + 24)) += 1
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiCol = func() int16 {
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_FULL {
+ return int16(0)
+ }
+ return int16(-1)
+ }()
+ }
+
+ } else {
+ if (*Fts5HashEntry)(unsafe.Pointer(p)).FnAlloc-(*Fts5HashEntry)(unsafe.Pointer(p)).FnData < 9+4+1+3+5 {
+ var nNew Sqlite3_int64 = Sqlite3_int64((*Fts5HashEntry)(unsafe.Pointer(p)).FnAlloc * 2)
+ var pNew uintptr
+ var pp uintptr
+ pNew = Xsqlite3_realloc64(tls, p, uint64(nNew))
+ if pNew == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Fts5HashEntry)(unsafe.Pointer(pNew)).FnAlloc = int32(nNew)
+ for pp = (*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iHash)*8; *(*uintptr)(unsafe.Pointer(pp)) != p; pp = *(*uintptr)(unsafe.Pointer(pp)) {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = pNew
+ p = pNew
+ }
+ nIncr = nIncr - (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ }
+
+ pPtr = p
+
+ if iRowid != (*Fts5HashEntry)(unsafe.Pointer(p)).FiRowid {
+ var iDiff U64 = U64(iRowid) - U64((*Fts5HashEntry)(unsafe.Pointer(p)).FiRowid)
+ fts5HashAddPoslistSize(tls, pHash, p, uintptr(0))
+ *(*int32)(unsafe.Pointer(p + 24)) += sqlite3Fts5PutVarint(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FnData), iDiff)
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiRowid = iRowid
+ bNew = 1
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiSzPoslist = (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail != FTS5_DETAIL_NONE {
+ *(*int32)(unsafe.Pointer(p + 24)) += 1
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiCol = func() int16 {
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_FULL {
+ return int16(0)
+ }
+ return int16(-1)
+ }()
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiPos = 0
+ }
+ }
+
+ if iCol >= 0 {
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_NONE {
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FbContent = U8(1)
+ } else {
+ if iCol != int32((*Fts5HashEntry)(unsafe.Pointer(p)).FiCol) {
+ if (*Fts5Hash)(unsafe.Pointer(pHash)).FeDetail == FTS5_DETAIL_FULL {
+ *(*U8)(unsafe.Pointer(pPtr + uintptr(libc.PostIncInt32(&(*Fts5HashEntry)(unsafe.Pointer(p)).FnData, 1)))) = U8(0x01)
+ *(*int32)(unsafe.Pointer(p + 24)) += sqlite3Fts5PutVarint(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FnData), uint64(iCol))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiCol = I16(iCol)
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiPos = 0
+ } else {
+ bNew = 1
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiCol = I16(libc.AssignInt32(&iPos, iCol))
+ }
+ }
+
+ if bNew != 0 {
+ *(*int32)(unsafe.Pointer(p + 24)) += sqlite3Fts5PutVarint(tls, pPtr+uintptr((*Fts5HashEntry)(unsafe.Pointer(p)).FnData), uint64(iPos-(*Fts5HashEntry)(unsafe.Pointer(p)).FiPos+2))
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FiPos = iPos
+ }
+ }
+ } else {
+ (*Fts5HashEntry)(unsafe.Pointer(p)).FbDel = U8(1)
+ }
+
+ nIncr = nIncr + (*Fts5HashEntry)(unsafe.Pointer(p)).FnData
+ *(*int32)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FpnByte)) += nIncr
+ return SQLITE_OK
+}
+
+func fts5HashEntryMerge(tls *libc.TLS, pLeft uintptr, pRight uintptr) uintptr {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var p1 uintptr = pLeft
+ var p2 uintptr = pRight
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var ppOut uintptr = bp
+
+ for p1 != 0 || p2 != 0 {
+ if p1 == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p2
+ p2 = uintptr(0)
+ } else if p2 == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p1
+ p1 = uintptr(0)
+ } else {
+ var i int32 = 0
+ var zKey1 uintptr = p1 + 1*48
+ var zKey2 uintptr = p2 + 1*48
+ for int32(*(*int8)(unsafe.Pointer(zKey1 + uintptr(i)))) == int32(*(*int8)(unsafe.Pointer(zKey2 + uintptr(i)))) {
+ i++
+ }
+
+ if int32(U8(*(*int8)(unsafe.Pointer(zKey1 + uintptr(i))))) > int32(U8(*(*int8)(unsafe.Pointer(zKey2 + uintptr(i))))) {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p2
+ ppOut = p2 + 8
+ p2 = (*Fts5HashEntry)(unsafe.Pointer(p2)).FpScanNext
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p1
+ ppOut = p1 + 8
+ p1 = (*Fts5HashEntry)(unsafe.Pointer(p1)).FpScanNext
+ }
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+ }
+ }
+
+ return *(*uintptr)(unsafe.Pointer(bp))
+}
+
+func fts5HashEntrySort(tls *libc.TLS, pHash uintptr, pTerm uintptr, nTerm int32, ppSorted uintptr) int32 {
+ var nMergeSlot int32 = 32
+ var ap uintptr
+ var pList uintptr
+ var iSlot int32
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(ppSorted)) = uintptr(0)
+ ap = Xsqlite3_malloc64(tls, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nMergeSlot))
+ if !(ap != 0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, ap, 0, uint64(unsafe.Sizeof(uintptr(0)))*uint64(nMergeSlot), libc.X__builtin_object_size(tls, ap, 0))
+
+ for iSlot = 0; iSlot < (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot; iSlot++ {
+ var pIter uintptr
+ for pIter = *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iSlot)*8)); pIter != 0; pIter = (*Fts5HashEntry)(unsafe.Pointer(pIter)).FpHashNext {
+ if pTerm == uintptr(0) ||
+ (*Fts5HashEntry)(unsafe.Pointer(pIter)).FnKey+1 >= nTerm && 0 == libc.Xmemcmp(tls, pIter+1*48, pTerm, uint64(nTerm)) {
+ var pEntry uintptr = pIter
+ (*Fts5HashEntry)(unsafe.Pointer(pEntry)).FpScanNext = uintptr(0)
+ for i = 0; *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)) != 0; i++ {
+ pEntry = fts5HashEntryMerge(tls, pEntry, *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)))
+ *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)) = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)) = pEntry
+ }
+ }
+ }
+
+ pList = uintptr(0)
+ for i = 0; i < nMergeSlot; i++ {
+ pList = fts5HashEntryMerge(tls, pList, *(*uintptr)(unsafe.Pointer(ap + uintptr(i)*8)))
+ }
+
+ (*Fts5Hash)(unsafe.Pointer(pHash)).FnEntry = 0
+ Xsqlite3_free(tls, ap)
+ *(*uintptr)(unsafe.Pointer(ppSorted)) = pList
+ return SQLITE_OK
+}
+
+func sqlite3Fts5HashQuery(tls *libc.TLS, pHash uintptr, nPre int32, pTerm uintptr, nTerm int32, ppOut uintptr, pnDoclist uintptr) int32 {
+ var iHash uint32 = fts5HashKey(tls, (*Fts5Hash)(unsafe.Pointer(pHash)).FnSlot, pTerm, nTerm)
+ var zKey uintptr = uintptr(0)
+ var p uintptr
+
+ for p = *(*uintptr)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(pHash)).FaSlot + uintptr(iHash)*8)); p != 0; p = (*Fts5HashEntry)(unsafe.Pointer(p)).FpHashNext {
+ zKey = p + 1*48
+
+ if nTerm == (*Fts5HashEntry)(unsafe.Pointer(p)).FnKey+1 && libc.Xmemcmp(tls, zKey, pTerm, uint64(nTerm)) == 0 {
+ break
+ }
+ }
+
+ if p != 0 {
+ var nHashPre int32 = int32(uint64(unsafe.Sizeof(Fts5HashEntry{})) + uint64(nTerm) + uint64(1))
+ var nList int32 = (*Fts5HashEntry)(unsafe.Pointer(p)).FnData - nHashPre
+ var pRet uintptr = libc.AssignPtrUintptr(ppOut, Xsqlite3_malloc64(tls, uint64(nPre+nList+10)))
+ if pRet != 0 {
+ var pFaux uintptr = pRet + uintptr(nPre-nHashPre)
+ libc.X__builtin___memcpy_chk(tls, pRet+uintptr(nPre), p+uintptr(nHashPre), uint64(nList), libc.X__builtin_object_size(tls, pRet+uintptr(nPre), 0))
+ nList = nList + fts5HashAddPoslistSize(tls, pHash, p, pFaux)
+ *(*int32)(unsafe.Pointer(pnDoclist)) = nList
+ } else {
+ *(*int32)(unsafe.Pointer(pnDoclist)) = 0
+ return SQLITE_NOMEM
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnDoclist)) = 0
+ }
+
+ return SQLITE_OK
+}
+
+func sqlite3Fts5HashScanInit(tls *libc.TLS, p uintptr, pTerm uintptr, nTerm int32) int32 {
+ return fts5HashEntrySort(tls, p, pTerm, nTerm, p+24)
+}
+
+func sqlite3Fts5HashScanNext(tls *libc.TLS, p uintptr) {
+ (*Fts5Hash)(unsafe.Pointer(p)).FpScan = (*Fts5HashEntry)(unsafe.Pointer((*Fts5Hash)(unsafe.Pointer(p)).FpScan)).FpScanNext
+}
+
+func sqlite3Fts5HashScanEof(tls *libc.TLS, p uintptr) int32 {
+ return libc.Bool32((*Fts5Hash)(unsafe.Pointer(p)).FpScan == uintptr(0))
+}
+
+func sqlite3Fts5HashScanEntry(tls *libc.TLS, pHash uintptr, pzTerm uintptr, ppDoclist uintptr, pnDoclist uintptr) {
+ var p uintptr
+ if libc.AssignUintptr(&p, (*Fts5Hash)(unsafe.Pointer(pHash)).FpScan) != 0 {
+ var zKey uintptr = p + 1*48
+ var nTerm int32 = int32(libc.Xstrlen(tls, zKey))
+ fts5HashAddPoslistSize(tls, pHash, p, uintptr(0))
+ *(*uintptr)(unsafe.Pointer(pzTerm)) = zKey
+ *(*uintptr)(unsafe.Pointer(ppDoclist)) = zKey + uintptr(nTerm+1)
+ *(*int32)(unsafe.Pointer(pnDoclist)) = int32(uint64((*Fts5HashEntry)(unsafe.Pointer(p)).FnData) - (uint64(unsafe.Sizeof(Fts5HashEntry{})) + uint64(nTerm) + uint64(1)))
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzTerm)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(ppDoclist)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pnDoclist)) = 0
+ }
+}
+
+type Fts5Data1 = struct {
+ Fp uintptr
+ Fnn int32
+ FszLeaf int32
+}
+
+type Fts5Data = Fts5Data1
+type Fts5DlidxIter1 = struct {
+ FnLvl int32
+ FiSegid int32
+ FaLvl [1]Fts5DlidxLvl
+}
+
+type Fts5DlidxIter = Fts5DlidxIter1
+type Fts5DlidxLvl1 = struct {
+ FpData uintptr
+ FiOff int32
+ FbEof int32
+ FiFirstOff int32
+ FiLeafPgno int32
+ FiRowid I64
+}
+
+type Fts5DlidxLvl = Fts5DlidxLvl1
+type Fts5DlidxWriter1 = struct {
+ Fpgno int32
+ FbPrevValid int32
+ FiPrev I64
+ Fbuf Fts5Buffer
+}
+
+type Fts5DlidxWriter = Fts5DlidxWriter1
+type Fts5Iter1 = struct {
+ Fbase Fts5IndexIter
+ FpIndex uintptr
+ Fposlist Fts5Buffer
+ FpColset uintptr
+ FxSetOutputs uintptr
+ FnSeg int32
+ FbRev int32
+ FbSkipEmpty U8
+ F__ccgo_pad1 [7]byte
+ FiSwitchRowid I64
+ FaFirst uintptr
+ FaSeg [1]Fts5SegIter
+}
+
+type Fts5Iter = Fts5Iter1
+type Fts5PageWriter1 = struct {
+ Fpgno int32
+ FiPrevPgidx int32
+ Fbuf Fts5Buffer
+ Fpgidx Fts5Buffer
+ Fterm Fts5Buffer
+}
+
+type Fts5PageWriter = Fts5PageWriter1
+type Fts5SegIter1 = struct {
+ FpSeg uintptr
+ Fflags int32
+ FiLeafPgno int32
+ FpLeaf uintptr
+ FpNextLeaf uintptr
+ FiLeafOffset I64
+ FxNext uintptr
+ FiTermLeafPgno int32
+ FiTermLeafOffset int32
+ FiPgidxOff int32
+ FiEndofDoclist int32
+ FiRowidOffset int32
+ FnRowidOffset int32
+ FaRowidOffset uintptr
+ FpDlidx uintptr
+ Fterm Fts5Buffer
+ FiRowid I64
+ FnPos int32
+ FbDel U8
+ F__ccgo_pad1 [3]byte
+}
+
+type Fts5SegIter = Fts5SegIter1
+type Fts5DoclistIter1 = struct {
+ FaEof uintptr
+ FiRowid I64
+ FaPoslist uintptr
+ FnPoslist int32
+ FnSize int32
+}
+
+type Fts5DoclistIter = Fts5DoclistIter1
+type Fts5SegWriter1 = struct {
+ FiSegid int32
+ F__ccgo_pad1 [4]byte
+ Fwriter Fts5PageWriter
+ FiPrevRowid I64
+ FbFirstRowidInDoclist U8
+ FbFirstRowidInPage U8
+ FbFirstTermInPage U8
+ F__ccgo_pad2 [1]byte
+ FnLeafWritten int32
+ FnEmpty int32
+ FnDlidx int32
+ FaDlidx uintptr
+ Fbtterm Fts5Buffer
+ FiBtPage int32
+ F__ccgo_pad3 [4]byte
+}
+
+type Fts5SegWriter = Fts5SegWriter1
+type Fts5Structure1 = struct {
+ FnRef int32
+ F__ccgo_pad1 [4]byte
+ FnWriteCounter U64
+ FnSegment int32
+ FnLevel int32
+ FaLevel [1]Fts5StructureLevel
+}
+
+type Fts5Structure = Fts5Structure1
+type Fts5StructureLevel1 = struct {
+ FnMerge int32
+ FnSeg int32
+ FaSeg uintptr
+}
+
+type Fts5StructureLevel = Fts5StructureLevel1
+type Fts5StructureSegment1 = struct {
+ FiSegid int32
+ FpgnoFirst int32
+ FpgnoLast int32
+}
+
+type Fts5StructureSegment = Fts5StructureSegment1
+
+type Fts5CResult1 = struct {
+ FiFirst U16
+ FbTermEq U8
+ F__ccgo_pad1 [1]byte
+}
+
+type Fts5CResult = Fts5CResult1
+
+func fts5PutU16(tls *libc.TLS, aOut uintptr, iVal U16) {
+ *(*U8)(unsafe.Pointer(aOut)) = U8(int32(iVal) >> 8)
+ *(*U8)(unsafe.Pointer(aOut + 1)) = U8(int32(iVal) & 0xFF)
+}
+
+func fts5GetU16(tls *libc.TLS, aIn uintptr) U16 {
+ return U16(int32(U16(*(*U8)(unsafe.Pointer(aIn))))<<8 + int32(*(*U8)(unsafe.Pointer(aIn + 1))))
+}
+
+func fts5IdxMalloc(tls *libc.TLS, p uintptr, nByte Sqlite3_int64) uintptr {
+ return sqlite3Fts5MallocZero(tls, p+52, nByte)
+}
+
+func fts5BufferCompare(tls *libc.TLS, pLeft uintptr, pRight uintptr) int32 {
+ var nCmp int32
+ var res int32
+ nCmp = func() int32 {
+ if (*Fts5Buffer)(unsafe.Pointer(pLeft)).Fn < (*Fts5Buffer)(unsafe.Pointer(pRight)).Fn {
+ return (*Fts5Buffer)(unsafe.Pointer(pLeft)).Fn
+ }
+ return (*Fts5Buffer)(unsafe.Pointer(pRight)).Fn
+ }()
+
+ res = func() int32 {
+ if nCmp <= 0 {
+ return 0
+ }
+ return libc.Xmemcmp(tls, (*Fts5Buffer)(unsafe.Pointer(pLeft)).Fp, (*Fts5Buffer)(unsafe.Pointer(pRight)).Fp, uint64(nCmp))
+ }()
+ return func() int32 {
+ if res == 0 {
+ return (*Fts5Buffer)(unsafe.Pointer(pLeft)).Fn - (*Fts5Buffer)(unsafe.Pointer(pRight)).Fn
+ }
+ return res
+ }()
+}
+
+func fts5LeafFirstTermOff(tls *libc.TLS, pLeaf uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr((*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf), bp)
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5IndexCloseReader(tls *libc.TLS, p uintptr) {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpReader != 0 {
+ var pReader uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpReader
+ (*Fts5Index)(unsafe.Pointer(p)).FpReader = uintptr(0)
+ Xsqlite3_blob_close(tls, pReader)
+ }
+}
+
+func fts5DataRead(tls *libc.TLS, p uintptr, iRowid I64) uintptr {
+ var pRet uintptr = uintptr(0)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpReader != 0 {
+ var pBlob uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpReader
+ (*Fts5Index)(unsafe.Pointer(p)).FpReader = uintptr(0)
+ rc = Xsqlite3_blob_reopen(tls, pBlob, iRowid)
+
+ (*Fts5Index)(unsafe.Pointer(p)).FpReader = pBlob
+ if rc != SQLITE_OK {
+ sqlite3Fts5IndexCloseReader(tls, p)
+ }
+ if rc == SQLITE_ABORT {
+ rc = SQLITE_OK
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ rc = Xsqlite3_blob_open(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb,
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Index)(unsafe.Pointer(p)).FzDataTbl, ts+35279, iRowid, 0, p+56)
+ }
+
+ if rc == SQLITE_ERROR {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+
+ if rc == SQLITE_OK {
+ var aOut uintptr = uintptr(0)
+ var nByte int32 = Xsqlite3_blob_bytes(tls, (*Fts5Index)(unsafe.Pointer(p)).FpReader)
+ var nAlloc Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Data{})) + uint64(nByte) + uint64(FTS5_DATA_PADDING))
+ pRet = Xsqlite3_malloc64(tls, uint64(nAlloc))
+ if pRet != 0 {
+ (*Fts5Data)(unsafe.Pointer(pRet)).Fnn = nByte
+ aOut = libc.AssignPtrUintptr(pRet, pRet+1*16)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_blob_read(tls, (*Fts5Index)(unsafe.Pointer(p)).FpReader, aOut, nByte, 0)
+ }
+ if rc != SQLITE_OK {
+ Xsqlite3_free(tls, pRet)
+ pRet = uintptr(0)
+ } else {
+ *(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer(pRet)).Fp + uintptr(nByte))) = U8(0x00)
+ *(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer(pRet)).Fp + uintptr(nByte+1))) = U8(0x00)
+ (*Fts5Data)(unsafe.Pointer(pRet)).FszLeaf = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pRet)).Fp+2))
+ }
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = rc
+ (*Fts5Index)(unsafe.Pointer(p)).FnRead++
+ }
+
+ return pRet
+}
+
+func fts5DataRelease(tls *libc.TLS, pData uintptr) {
+ Xsqlite3_free(tls, pData)
+}
+
+func fts5LeafRead(tls *libc.TLS, p uintptr, iRowid I64) uintptr {
+ var pRet uintptr = fts5DataRead(tls, p, iRowid)
+ if pRet != 0 {
+ if (*Fts5Data)(unsafe.Pointer(pRet)).Fnn < 4 || (*Fts5Data)(unsafe.Pointer(pRet)).FszLeaf > (*Fts5Data)(unsafe.Pointer(pRet)).Fnn {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ fts5DataRelease(tls, pRet)
+ pRet = uintptr(0)
+ }
+ }
+ return pRet
+}
+
+func fts5IndexPrepareStmt(tls *libc.TLS, p uintptr, ppStmt uintptr, zSql uintptr) int32 {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if zSql != 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_prepare_v3(tls, (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fdb, zSql, -1,
+ uint32(SQLITE_PREPARE_PERSISTENT|SQLITE_PREPARE_NO_VTAB),
+ ppStmt, uintptr(0))
+ } else {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ }
+ }
+ Xsqlite3_free(tls, zSql)
+ return (*Fts5Index)(unsafe.Pointer(p)).Frc
+}
+
+func fts5DataWrite(tls *libc.TLS, p uintptr, iRowid I64, pData uintptr, nData int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ fts5IndexPrepareStmt(tls, p, p+64, Xsqlite3_mprintf(tls,
+ ts+35285,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+ }
+
+ Xsqlite3_bind_int64(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter, 1, iRowid)
+ Xsqlite3_bind_blob(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter, 2, pData, nData, uintptr(0))
+ Xsqlite3_step(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter)
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter)
+ Xsqlite3_bind_null(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter, 2)
+}
+
+func fts5DataDelete(tls *libc.TLS, p uintptr, iFirst I64, iLast I64) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ var zSql uintptr = Xsqlite3_mprintf(tls,
+ ts+35336,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ if fts5IndexPrepareStmt(tls, p, p+72, zSql) != 0 {
+ return
+ }
+ }
+
+ Xsqlite3_bind_int64(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDeleter, 1, iFirst)
+ Xsqlite3_bind_int64(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDeleter, 2, iLast)
+ Xsqlite3_step(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDeleter)
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDeleter)
+}
+
+func fts5DataRemoveSegment(tls *libc.TLS, p uintptr, iSegid int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var iFirst I64 = I64(iSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + int64(0)
+ var iLast I64 = I64(iSegid+1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + int64(0) - int64(1)
+ fts5DataDelete(tls, p, iFirst, iLast)
+ if (*Fts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ fts5IndexPrepareStmt(tls, p, p+88, Xsqlite3_mprintf(tls,
+ ts+35385,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName)))
+ }
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ Xsqlite3_bind_int(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxDeleter, 1, iSegid)
+ Xsqlite3_step(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxDeleter)
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxDeleter)
+ }
+}
+
+func fts5StructureRelease(tls *libc.TLS, pStruct uintptr) {
+ if pStruct != 0 && 0 >= libc.PreDecInt32(&(*Fts5Structure)(unsafe.Pointer(pStruct)).FnRef, 1) {
+ var i int32
+
+ for i = 0; i < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; i++ {
+ Xsqlite3_free(tls, (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(i)*16)).FaSeg)
+ }
+ Xsqlite3_free(tls, pStruct)
+ }
+}
+
+func fts5StructureRef(tls *libc.TLS, pStruct uintptr) {
+ (*Fts5Structure)(unsafe.Pointer(pStruct)).FnRef++
+}
+
+func sqlite3Fts5StructureRef(tls *libc.TLS, p uintptr) uintptr {
+ fts5StructureRef(tls, (*Fts5Index)(unsafe.Pointer(p)).FpStruct)
+ return (*Fts5Index)(unsafe.Pointer(p)).FpStruct
+}
+
+func sqlite3Fts5StructureRelease(tls *libc.TLS, p uintptr) {
+ if p != 0 {
+ fts5StructureRelease(tls, p)
+ }
+}
+
+func sqlite3Fts5StructureTest(tls *libc.TLS, p uintptr, pStruct uintptr) int32 {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpStruct != pStruct {
+ return SQLITE_ABORT
+ }
+ return SQLITE_OK
+}
+
+func fts5StructureMakeWritable(tls *libc.TLS, pRc uintptr, pp uintptr) {
+ var p uintptr = *(*uintptr)(unsafe.Pointer(pp))
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK && (*Fts5Structure)(unsafe.Pointer(p)).FnRef > 1 {
+ var nByte I64 = I64(uint64(unsafe.Sizeof(Fts5Structure{})) + uint64((*Fts5Structure)(unsafe.Pointer(p)).FnLevel-1)*uint64(unsafe.Sizeof(Fts5StructureLevel{})))
+ var pNew uintptr
+ pNew = sqlite3Fts5MallocZero(tls, pRc, nByte)
+ if pNew != 0 {
+ var i int32
+ libc.X__builtin___memcpy_chk(tls, pNew, p, uint64(nByte), libc.X__builtin_object_size(tls, pNew, 0))
+ for i = 0; i < (*Fts5Structure)(unsafe.Pointer(p)).FnLevel; i++ {
+ (*Fts5StructureLevel)(unsafe.Pointer(pNew + 24 + uintptr(i)*16)).FaSeg = uintptr(0)
+ }
+ for i = 0; i < (*Fts5Structure)(unsafe.Pointer(p)).FnLevel; i++ {
+ var pLvl uintptr = pNew + 24 + uintptr(i)*16
+ nByte = I64(uint64(unsafe.Sizeof(Fts5StructureSegment{})) * uint64((*Fts5StructureLevel)(unsafe.Pointer(pNew+24+uintptr(i)*16)).FnSeg))
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg = sqlite3Fts5MallocZero(tls, pRc, nByte)
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg == uintptr(0) {
+ for i = 0; i < (*Fts5Structure)(unsafe.Pointer(p)).FnLevel; i++ {
+ Xsqlite3_free(tls, (*Fts5StructureLevel)(unsafe.Pointer(pNew+24+uintptr(i)*16)).FaSeg)
+ }
+ Xsqlite3_free(tls, pNew)
+ return
+ }
+ libc.X__builtin___memcpy_chk(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*Fts5StructureLevel)(unsafe.Pointer(p+24+uintptr(i)*16)).FaSeg, uint64(nByte), libc.X__builtin_object_size(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, 0))
+ }
+ (*Fts5Structure)(unsafe.Pointer(p)).FnRef--
+ (*Fts5Structure)(unsafe.Pointer(pNew)).FnRef = 1
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = pNew
+ }
+}
+
+func fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie uintptr, ppOut uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK
+ var i int32 = 0
+ var iLvl int32
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*int32)(unsafe.Pointer(bp + 4)) = 0
+ var nByte Sqlite3_int64
+ var pRet uintptr = uintptr(0)
+
+ if piCookie != 0 {
+ *(*int32)(unsafe.Pointer(piCookie)) = sqlite3Fts5Get32(tls, pData)
+ }
+ i = 4
+
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), bp)
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), bp+4)
+ if *(*int32)(unsafe.Pointer(bp)) > FTS5_MAX_SEGMENT || *(*int32)(unsafe.Pointer(bp)) < 0 ||
+ *(*int32)(unsafe.Pointer(bp + 4)) > FTS5_MAX_SEGMENT || *(*int32)(unsafe.Pointer(bp + 4)) < 0 {
+ return SQLITE_CORRUPT | int32(1)<<8
+ }
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Structure{})) + uint64(unsafe.Sizeof(Fts5StructureLevel{}))*uint64(*(*int32)(unsafe.Pointer(bp))-1))
+ pRet = sqlite3Fts5MallocZero(tls, bp+8, nByte)
+
+ if pRet != 0 {
+ (*Fts5Structure)(unsafe.Pointer(pRet)).FnRef = 1
+ (*Fts5Structure)(unsafe.Pointer(pRet)).FnLevel = *(*int32)(unsafe.Pointer(bp))
+ (*Fts5Structure)(unsafe.Pointer(pRet)).FnSegment = *(*int32)(unsafe.Pointer(bp + 4))
+ i = i + int32(sqlite3Fts5GetVarint(tls, pData+uintptr(i), pRet+8))
+
+ for iLvl = 0; *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iLvl < *(*int32)(unsafe.Pointer(bp)); iLvl++ {
+ var pLvl uintptr = pRet + 24 + uintptr(iLvl)*16
+ *(*int32)(unsafe.Pointer(bp + 12)) = 0
+ var iSeg int32
+
+ if i >= nData {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), pLvl)
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), bp+12)
+ if *(*int32)(unsafe.Pointer(bp + 12)) < (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg = sqlite3Fts5MallocZero(tls, bp+8,
+ int64(uint64(*(*int32)(unsafe.Pointer(bp + 12)))*uint64(unsafe.Sizeof(Fts5StructureSegment{}))))
+ *(*int32)(unsafe.Pointer(bp + 4)) -= *(*int32)(unsafe.Pointer(bp + 12))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg = *(*int32)(unsafe.Pointer(bp + 12))
+ for iSeg = 0; iSeg < *(*int32)(unsafe.Pointer(bp + 12)); iSeg++ {
+ var pSeg uintptr = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg + uintptr(iSeg)*12
+ if i >= nData {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), pSeg)
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), pSeg+4)
+ i = i + sqlite3Fts5GetVarint32(tls, pData+uintptr(i), pSeg+8)
+ if (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast < (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+ }
+ if iLvl > 0 && (*Fts5StructureLevel)(unsafe.Pointer(pLvl+libc.UintptrFromInt32(-1)*16)).FnMerge != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == 0 {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+ if iLvl == *(*int32)(unsafe.Pointer(bp))-1 && (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge != 0 {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ }
+ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 && *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK {
+ fts5StructureRelease(tls, pRet)
+ pRet = uintptr(0)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pRet
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func fts5StructureAddLevel(tls *libc.TLS, pRc uintptr, ppStruct uintptr) {
+ fts5StructureMakeWritable(tls, pRc, ppStruct)
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var pStruct uintptr = *(*uintptr)(unsafe.Pointer(ppStruct))
+ var nLevel int32 = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Structure{})) + uint64(unsafe.Sizeof(Fts5StructureLevel{}))*uint64(nLevel+1))
+
+ pStruct = Xsqlite3_realloc64(tls, pStruct, uint64(nByte))
+ if pStruct != 0 {
+ libc.X__builtin___memset_chk(tls, pStruct+24+uintptr(nLevel)*16, 0, uint64(unsafe.Sizeof(Fts5StructureLevel{})), libc.X__builtin_object_size(tls, pStruct+24+uintptr(nLevel)*16, 0))
+ (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel++
+ *(*uintptr)(unsafe.Pointer(ppStruct)) = pStruct
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+}
+
+func fts5StructureExtendLevel(tls *libc.TLS, pRc uintptr, pStruct uintptr, iLvl int32, nExtra int32, bInsert int32) {
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var pLvl uintptr = pStruct + 24 + uintptr(iLvl)*16
+ var aNew uintptr
+ var nByte Sqlite3_int64
+
+ nByte = Sqlite3_int64(uint64((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg+nExtra) * uint64(unsafe.Sizeof(Fts5StructureSegment{})))
+ aNew = Xsqlite3_realloc64(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, uint64(nByte))
+ if aNew != 0 {
+ if bInsert == 0 {
+ libc.X__builtin___memset_chk(tls, aNew+uintptr((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg)*12, 0, uint64(unsafe.Sizeof(Fts5StructureSegment{}))*uint64(nExtra), libc.X__builtin_object_size(tls, aNew+uintptr((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg)*12, 0))
+ } else {
+ var nMove int32 = int32(uint64((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg) * uint64(unsafe.Sizeof(Fts5StructureSegment{})))
+ libc.X__builtin___memmove_chk(tls, aNew+uintptr(nExtra)*12, aNew, uint64(nMove), libc.X__builtin_object_size(tls, aNew+uintptr(nExtra)*12, 0))
+ libc.X__builtin___memset_chk(tls, aNew, 0, uint64(unsafe.Sizeof(Fts5StructureSegment{}))*uint64(nExtra), libc.X__builtin_object_size(tls, aNew, 0))
+ }
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg = aNew
+ } else {
+ *(*int32)(unsafe.Pointer(pRc)) = SQLITE_NOMEM
+ }
+ }
+}
+
+func fts5StructureReadUncached(tls *libc.TLS, p uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+
+ var pData uintptr
+
+ pData = fts5DataRead(tls, p, int64(FTS5_STRUCTURE_ROWID))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr((*Fts5Data)(unsafe.Pointer(pData)).Fnn), 0, uint64(FTS5_DATA_PADDING), libc.X__builtin_object_size(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr((*Fts5Data)(unsafe.Pointer(pData)).Fnn), 0))
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = fts5StructureDecode(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp, (*Fts5Data)(unsafe.Pointer(pData)).Fnn, bp, bp+8)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && ((*Fts5Config)(unsafe.Pointer(pConfig)).Fpgsz == 0 || (*Fts5Config)(unsafe.Pointer(pConfig)).FiCookie != *(*int32)(unsafe.Pointer(bp))) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = sqlite3Fts5ConfigLoad(tls, pConfig, *(*int32)(unsafe.Pointer(bp)))
+ }
+ fts5DataRelease(tls, pData)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ fts5StructureRelease(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ }
+ }
+
+ return *(*uintptr)(unsafe.Pointer(bp + 8))
+}
+
+func fts5IndexDataVersion(tls *libc.TLS, p uintptr) I64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iVersion I64 = int64(0)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = fts5IndexPrepareStmt(tls, p, p+112,
+ Xsqlite3_mprintf(tls, ts+35425, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return int64(0)
+ }
+ }
+
+ if SQLITE_ROW == Xsqlite3_step(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDataVersion) {
+ iVersion = Xsqlite3_column_int64(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDataVersion, 0)
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDataVersion)
+ }
+
+ return iVersion
+}
+
+func fts5StructureRead(tls *libc.TLS, p uintptr) uintptr {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpStruct == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).FiStructVersion = fts5IndexDataVersion(tls, p)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).FpStruct = fts5StructureReadUncached(tls, p)
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return uintptr(0)
+ }
+
+ fts5StructureRef(tls, (*Fts5Index)(unsafe.Pointer(p)).FpStruct)
+ return (*Fts5Index)(unsafe.Pointer(p)).FpStruct
+}
+
+func fts5StructureInvalidate(tls *libc.TLS, p uintptr) {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpStruct != 0 {
+ fts5StructureRelease(tls, (*Fts5Index)(unsafe.Pointer(p)).FpStruct)
+ (*Fts5Index)(unsafe.Pointer(p)).FpStruct = uintptr(0)
+ }
+}
+
+func fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var iLvl int32
+ var iCookie int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ iCookie = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FiCookie
+ if iCookie < 0 {
+ iCookie = 0
+ }
+
+ if 0 == sqlite3Fts5BufferSize(tls, p+52, bp, uint32(4+9+9+9)) {
+ sqlite3Fts5Put32(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, iCookie)
+ (*Fts5Buffer)(unsafe.Pointer(bp)).Fn = 4
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel))
+ }
+
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment))
+ }
+
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), uint64(I64((*Fts5Structure)(unsafe.Pointer(pStruct)).FnWriteCounter)))
+ }
+
+ }
+
+ for iLvl = 0; iLvl < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; iLvl++ {
+ var iSeg int32
+ var pLvl uintptr = pStruct + 24 + uintptr(iLvl)*16
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg))
+
+ for iSeg = 0; iSeg < (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg; iSeg++ {
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(iSeg)*12)).FiSegid))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(iSeg)*12)).FpgnoFirst))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(iSeg)*12)).FpgnoLast))
+ }
+ }
+
+ fts5DataWrite(tls, p, int64(FTS5_STRUCTURE_ROWID), (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp)).Fn)
+ sqlite3Fts5BufferFree(tls, bp)
+ }
+}
+
+func fts5SegmentSize(tls *libc.TLS, pSeg uintptr) int32 {
+ return 1 + (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast - (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst
+}
+
+func fts5StructurePromoteTo(tls *libc.TLS, p uintptr, iPromote int32, szPromote int32, pStruct uintptr) {
+ var il int32
+ var is int32
+ var pOut uintptr = pStruct + 24 + uintptr(iPromote)*16
+
+ if (*Fts5StructureLevel)(unsafe.Pointer(pOut)).FnMerge == 0 {
+ for il = iPromote + 1; il < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; il++ {
+ var pLvl uintptr = pStruct + 24 + uintptr(il)*16
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge != 0 {
+ return
+ }
+ for is = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg - 1; is >= 0; is-- {
+ var sz int32 = fts5SegmentSize(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(is)*12)
+ if sz > szPromote {
+ return
+ }
+ fts5StructureExtendLevel(tls, p+52, pStruct, iPromote, 1, 1)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+ libc.X__builtin___memcpy_chk(tls, (*Fts5StructureLevel)(unsafe.Pointer(pOut)).FaSeg, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(is)*12, uint64(unsafe.Sizeof(Fts5StructureSegment{})), libc.X__builtin_object_size(tls, (*Fts5StructureLevel)(unsafe.Pointer(pOut)).FaSeg, 0))
+ (*Fts5StructureLevel)(unsafe.Pointer(pOut)).FnSeg++
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg--
+ }
+ }
+ }
+}
+
+func fts5StructurePromote(tls *libc.TLS, p uintptr, iLvl int32, pStruct uintptr) {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var iTst int32
+ var iPromote int32 = -1
+ var szPromote int32 = 0
+ var pSeg uintptr
+ var szSeg int32
+ var nSeg int32 = (*Fts5StructureLevel)(unsafe.Pointer(pStruct + 24 + uintptr(iLvl)*16)).FnSeg
+
+ if nSeg == 0 {
+ return
+ }
+ pSeg = (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FaSeg + uintptr((*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FnSeg-1)*12
+ szSeg = 1 + (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast - (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst
+
+ for iTst = iLvl - 1; iTst >= 0 && (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iTst)*16)).FnSeg == 0; iTst-- {
+ }
+ if iTst >= 0 {
+ var i int32
+ var szMax int32 = 0
+ var pTst uintptr = pStruct + 24 + uintptr(iTst)*16
+
+ for i = 0; i < (*Fts5StructureLevel)(unsafe.Pointer(pTst)).FnSeg; i++ {
+ var sz int32 = (*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pTst)).FaSeg+uintptr(i)*12)).FpgnoLast - (*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pTst)).FaSeg+uintptr(i)*12)).FpgnoFirst + 1
+ if sz > szMax {
+ szMax = sz
+ }
+ }
+ if szMax >= szSeg {
+ iPromote = iTst
+ szPromote = szMax
+ }
+ }
+
+ if iPromote < 0 {
+ iPromote = iLvl
+ szPromote = szSeg
+ }
+ fts5StructurePromoteTo(tls, p, iPromote, szPromote, pStruct)
+ }
+}
+
+func fts5DlidxLvlNext(tls *libc.TLS, pLvl uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pData uintptr = (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData
+
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff == 0 {
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff = 1
+ *(*int32)(unsafe.Pointer(pLvl + 8)) += sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+1, pLvl+20)
+ *(*int32)(unsafe.Pointer(pLvl + 8)) += int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr((*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff), pLvl+24))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiFirstOff = (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff
+ } else {
+ var iOff int32
+ for iOff = (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff; iOff < (*Fts5Data)(unsafe.Pointer(pData)).Fnn; iOff++ {
+ if *(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer(pData)).Fp + uintptr(iOff))) != 0 {
+ break
+ }
+ }
+
+ if iOff < (*Fts5Data)(unsafe.Pointer(pData)).Fnn {
+ *(*int32)(unsafe.Pointer(pLvl + 20)) += iOff - (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff + 1
+ iOff = iOff + int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr(iOff), bp))
+ *(*I64)(unsafe.Pointer(pLvl + 24)) += *(*I64)(unsafe.Pointer(bp))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff = iOff
+ } else {
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof = 1
+ }
+ }
+
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof
+}
+
+func fts5DlidxIterNextR(tls *libc.TLS, p uintptr, pIter uintptr, iLvl int32) int32 {
+ var pLvl uintptr = pIter + 8 + uintptr(iLvl)*32
+
+ if fts5DlidxLvlNext(tls, pLvl) != 0 {
+ if iLvl+1 < (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl {
+ fts5DlidxIterNextR(tls, p, pIter, iLvl+1)
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl+1*32)).FbEof == 0 {
+ fts5DataRelease(tls, (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData)
+ libc.X__builtin___memset_chk(tls, pLvl, 0, uint64(unsafe.Sizeof(Fts5DlidxLvl{})), libc.X__builtin_object_size(tls, pLvl, 0))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData = fts5DataRead(tls, p,
+ I64((*Fts5DlidxIter)(unsafe.Pointer(pIter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+I64(iLvl)<<FTS5_DATA_PAGE_B+I64((*Fts5DlidxLvl)(unsafe.Pointer(pLvl+1*32)).FiLeafPgno))
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData != 0 {
+ fts5DlidxLvlNext(tls, pLvl)
+ }
+ }
+ }
+ }
+
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pIter + 8)).FbEof
+}
+
+func fts5DlidxIterNext(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ return fts5DlidxIterNextR(tls, p, pIter, 0)
+}
+
+func fts5DlidxIterFirst(tls *libc.TLS, pIter uintptr) int32 {
+ var i int32
+ for i = 0; i < (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl; i++ {
+ fts5DlidxLvlNext(tls, pIter+8+uintptr(i)*32)
+ }
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pIter + 8)).FbEof
+}
+
+func fts5DlidxIterEof(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ return libc.Bool32((*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK || (*Fts5DlidxLvl)(unsafe.Pointer(pIter+8)).FbEof != 0)
+}
+
+func fts5DlidxIterLast(tls *libc.TLS, p uintptr, pIter uintptr) {
+ var i int32
+
+ for i = (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl - 1; (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && i >= 0; i-- {
+ var pLvl uintptr = pIter + 8 + uintptr(i)*32
+ for fts5DlidxLvlNext(tls, pLvl) == 0 {
+ }
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof = 0
+
+ if i > 0 {
+ var pChild uintptr = pLvl + libc.UintptrFromInt32(-1)*32
+ fts5DataRelease(tls, (*Fts5DlidxLvl)(unsafe.Pointer(pChild)).FpData)
+ libc.X__builtin___memset_chk(tls, pChild, 0, uint64(unsafe.Sizeof(Fts5DlidxLvl{})), libc.X__builtin_object_size(tls, pChild, 0))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pChild)).FpData = fts5DataRead(tls, p,
+ I64((*Fts5DlidxIter)(unsafe.Pointer(pIter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+I64(i-1)<<FTS5_DATA_PAGE_B+I64((*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiLeafPgno))
+ }
+ }
+}
+
+func fts5DlidxLvlPrev(tls *libc.TLS, pLvl uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iOff int32 = (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff
+
+ if iOff <= (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiFirstOff {
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof = 1
+ } else {
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData)).Fp
+
+ var iLimit int32
+ var ii int32
+ var nZero int32 = 0
+
+ iLimit = func() int32 {
+ if iOff > 9 {
+ return iOff - 9
+ }
+ return 0
+ }()
+ for iOff--; iOff > iLimit; iOff-- {
+ if int32(*(*U8)(unsafe.Pointer(a + uintptr(iOff-1))))&0x80 == 0 {
+ break
+ }
+ }
+
+ sqlite3Fts5GetVarint(tls, a+uintptr(iOff), bp)
+ *(*I64)(unsafe.Pointer(pLvl + 24)) -= *(*I64)(unsafe.Pointer(bp))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiLeafPgno--
+
+ for ii = iOff - 1; ii >= (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiFirstOff && int32(*(*U8)(unsafe.Pointer(a + uintptr(ii)))) == 0x00; ii-- {
+ nZero++
+ }
+ if ii >= (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiFirstOff && int32(*(*U8)(unsafe.Pointer(a + uintptr(ii))))&0x80 != 0 {
+ var bZero int32 = 0
+ if ii-8 >= (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiFirstOff {
+ var j int32
+ for j = 1; j <= 8 && int32(*(*U8)(unsafe.Pointer(a + uintptr(ii-j))))&0x80 != 0; j++ {
+ }
+ bZero = libc.Bool32(j > 8)
+ }
+ if bZero == 0 {
+ nZero--
+ }
+ }
+ *(*int32)(unsafe.Pointer(pLvl + 20)) -= nZero
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FiOff = iOff - nZero
+ }
+
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof
+}
+
+func fts5DlidxIterPrevR(tls *libc.TLS, p uintptr, pIter uintptr, iLvl int32) int32 {
+ var pLvl uintptr = pIter + 8 + uintptr(iLvl)*32
+
+ if fts5DlidxLvlPrev(tls, pLvl) != 0 {
+ if iLvl+1 < (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl {
+ fts5DlidxIterPrevR(tls, p, pIter, iLvl+1)
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl+1*32)).FbEof == 0 {
+ fts5DataRelease(tls, (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData)
+ libc.X__builtin___memset_chk(tls, pLvl, 0, uint64(unsafe.Sizeof(Fts5DlidxLvl{})), libc.X__builtin_object_size(tls, pLvl, 0))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData = fts5DataRead(tls, p,
+ I64((*Fts5DlidxIter)(unsafe.Pointer(pIter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+I64(iLvl)<<FTS5_DATA_PAGE_B+I64((*Fts5DlidxLvl)(unsafe.Pointer(pLvl+1*32)).FiLeafPgno))
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData != 0 {
+ for fts5DlidxLvlNext(tls, pLvl) == 0 {
+ }
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FbEof = 0
+ }
+ }
+ }
+ }
+
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pIter + 8)).FbEof
+}
+
+func fts5DlidxIterPrev(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ return fts5DlidxIterPrevR(tls, p, pIter, 0)
+}
+
+func fts5DlidxIterFree(tls *libc.TLS, pIter uintptr) {
+ if pIter != 0 {
+ var i int32
+ for i = 0; i < (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl; i++ {
+ fts5DataRelease(tls, (*Fts5DlidxLvl)(unsafe.Pointer(pIter+8+uintptr(i)*32)).FpData)
+ }
+ Xsqlite3_free(tls, pIter)
+ }
+}
+
+func fts5DlidxIterInit(tls *libc.TLS, p uintptr, bRev int32, iSegid int32, iLeafPg int32) uintptr {
+ var pIter uintptr = uintptr(0)
+ var i int32
+ var bDone int32 = 0
+
+ for i = 0; (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bDone == 0; i++ {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5DlidxIter{})) + uint64(i)*uint64(unsafe.Sizeof(Fts5DlidxLvl{})))
+ var pNew uintptr
+
+ pNew = Xsqlite3_realloc64(tls, pIter, uint64(nByte))
+ if pNew == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ var iRowid I64 = I64(iSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + I64(i)<<FTS5_DATA_PAGE_B + I64(iLeafPg)
+ var pLvl uintptr = pNew + 8 + uintptr(i)*32
+ pIter = pNew
+ libc.X__builtin___memset_chk(tls, pLvl, 0, uint64(unsafe.Sizeof(Fts5DlidxLvl{})), libc.X__builtin_object_size(tls, pLvl, 0))
+ (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData = fts5DataRead(tls, p, iRowid)
+ if (*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData != 0 && int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer((*Fts5DlidxLvl)(unsafe.Pointer(pLvl)).FpData)).Fp)))&0x0001 == 0 {
+ bDone = 1
+ }
+ (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FnLvl = i + 1
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5DlidxIter)(unsafe.Pointer(pIter)).FiSegid = iSegid
+ if bRev == 0 {
+ fts5DlidxIterFirst(tls, pIter)
+ } else {
+ fts5DlidxIterLast(tls, p, pIter)
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ fts5DlidxIterFree(tls, pIter)
+ pIter = uintptr(0)
+ }
+
+ return pIter
+}
+
+func fts5DlidxIterRowid(tls *libc.TLS, pIter uintptr) I64 {
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pIter + 8)).FiRowid
+}
+
+func fts5DlidxIterPgno(tls *libc.TLS, pIter uintptr) int32 {
+ return (*Fts5DlidxLvl)(unsafe.Pointer(pIter + 8)).FiLeafPgno
+}
+
+func fts5SegIterNextPage(tls *libc.TLS, p uintptr, pIter uintptr) {
+ var pLeaf uintptr
+ var pSeg uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno++
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf != 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf = uintptr(0)
+ } else if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno <= (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = fts5LeafRead(tls, p,
+ I64((*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+I64((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno))
+ } else {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+ }
+ pLeaf = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf
+
+ if pLeaf != 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff = (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf
+ if (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf >= (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn + 1
+ } else {
+ *(*int32)(unsafe.Pointer(pIter + 56)) += sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr((*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff), pIter+60)
+ }
+ }
+}
+
+func fts5GetPoslistSize(tls *libc.TLS, p uintptr, pnSz uintptr, pbDel uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var n int32 = 0
+ {
+ *(*int32)(unsafe.Pointer(bp)) = int32(*(*U8)(unsafe.Pointer(p + uintptr(libc.PostIncInt32(&n, 1)))))
+ if *(*int32)(unsafe.Pointer(bp))&0x80 != 0 {
+ n--
+ n = n + sqlite3Fts5GetVarint32(tls, p+uintptr(n), bp)
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pnSz)) = *(*int32)(unsafe.Pointer(bp)) / 2
+ *(*int32)(unsafe.Pointer(pbDel)) = *(*int32)(unsafe.Pointer(bp)) & 0x0001
+ return n
+}
+
+func fts5SegIterLoadNPos(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var iOff int32 = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail == FTS5_DETAIL_NONE {
+ var iEod int32 = func() int32 {
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist < (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf {
+ return (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist
+ }
+ return (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf
+ }()
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FbDel = U8(0)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos = 1
+ if iOff < iEod && int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(iOff)))) == 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FbDel = U8(1)
+ iOff++
+ if iOff < iEod && int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(iOff)))) == 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos = 1
+ iOff++
+ } else {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos = 0
+ }
+ }
+ } else {
+ {
+ *(*int32)(unsafe.Pointer(bp)) = int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(libc.PostIncInt32(&iOff, 1)))))
+ if *(*int32)(unsafe.Pointer(bp))&0x80 != 0 {
+ iOff--
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr(iOff), bp)
+ }
+ }
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FbDel = U8(*(*int32)(unsafe.Pointer(bp)) & 0x0001)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos = *(*int32)(unsafe.Pointer(bp)) >> 1
+
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iOff)
+ }
+}
+
+func fts5SegIterLoadRowid(tls *libc.TLS, p uintptr, pIter uintptr) {
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ var iOff I64 = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset
+
+ if iOff >= I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf) {
+ fts5SegIterNextPage(tls, p, pIter)
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf == uintptr(0) {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ return
+ }
+ iOff = int64(4)
+ a = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ }
+ iOff = iOff + I64(sqlite3Fts5GetVarint(tls, a+uintptr(iOff), pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = iOff
+}
+
+func fts5SegIterLoadTerm(tls *libc.TLS, p uintptr, pIter uintptr, nKeep int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ var iOff I64 = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset
+
+ iOff = iOff + I64(sqlite3Fts5GetVarint32(tls, a+uintptr(iOff), bp))
+ if iOff+I64(*(*int32)(unsafe.Pointer(bp))) > I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf) || nKeep > (*Fts5SegIter)(unsafe.Pointer(pIter)).Fterm.Fn || *(*int32)(unsafe.Pointer(bp)) == 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).Fterm.Fn = nKeep
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pIter+88, uint32(*(*int32)(unsafe.Pointer(bp))), a+uintptr(iOff))
+
+ iOff = iOff + I64(*(*int32)(unsafe.Pointer(bp)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset = int32(iOff)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = iOff
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff >= (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn + 1
+ } else {
+ *(*int32)(unsafe.Pointer(pIter + 56)) += sqlite3Fts5GetVarint32(tls, a+uintptr((*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff), bp+4)
+ *(*int32)(unsafe.Pointer(pIter + 60)) += *(*int32)(unsafe.Pointer(bp + 4))
+ }
+
+ fts5SegIterLoadRowid(tls, p, pIter)
+}
+
+func fts5SegIterSetNext(tls *libc.TLS, p uintptr, pIter uintptr) {
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags&FTS5_SEGITER_REVERSE != 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{fts5SegIterNext_Reverse}))
+ } else if (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail == FTS5_DETAIL_NONE {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{fts5SegIterNext_None}))
+ } else {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FxNext = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ }{fts5SegIterNext}))
+ }
+}
+
+func fts5SegIterInit(tls *libc.TLS, p uintptr, pSeg uintptr, pIter uintptr) {
+ if (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 {
+ return
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(Fts5SegIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+ fts5SegIterSetNext(tls, p, pIter)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg = pSeg
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst - 1
+ fts5SegIterNextPage(tls, p, pIter)
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(4)
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf + 1
+ fts5SegIterLoadTerm(tls, p, pIter, 0)
+ fts5SegIterLoadNPos(tls, p, pIter)
+ }
+}
+
+func fts5SegIterReverseInitPage(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail
+ var n int32 = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf
+ var i int32 = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ var iRowidOffset int32 = 0
+
+ if n > (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist {
+ n = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist
+ }
+
+ for 1 != 0 {
+ *(*U64)(unsafe.Pointer(bp + 8)) = uint64(0)
+
+ if eDetail == FTS5_DETAIL_NONE {
+ if i < n && int32(*(*U8)(unsafe.Pointer(a + uintptr(i)))) == 0 {
+ i++
+ if i < n && int32(*(*U8)(unsafe.Pointer(a + uintptr(i)))) == 0 {
+ i++
+ }
+ }
+ } else {
+ i = i + fts5GetPoslistSize(tls, a+uintptr(i), bp, bp+4)
+ i = i + *(*int32)(unsafe.Pointer(bp))
+ }
+ if i >= n {
+ break
+ }
+ i = i + int32(sqlite3Fts5GetVarint(tls, a+uintptr(i), bp+8))
+ *(*I64)(unsafe.Pointer(pIter + 104)) += I64(*(*U64)(unsafe.Pointer(bp + 8)))
+
+ if iRowidOffset >= (*Fts5SegIter)(unsafe.Pointer(pIter)).FnRowidOffset {
+ var nNew int32 = (*Fts5SegIter)(unsafe.Pointer(pIter)).FnRowidOffset + 8
+ var aNew uintptr = Xsqlite3_realloc64(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset, uint64(nNew)*uint64(unsafe.Sizeof(int32(0))))
+ if aNew == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ break
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset = aNew
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnRowidOffset = nNew
+ }
+
+ *(*int32)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset + uintptr(libc.PostIncInt32(&iRowidOffset, 1))*4)) = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(i)
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowidOffset = iRowidOffset
+ fts5SegIterLoadNPos(tls, p, pIter)
+}
+
+func fts5SegIterReverseNewPage(tls *libc.TLS, p uintptr, pIter uintptr) {
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno > (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno {
+ var pNew uintptr
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno--
+ pNew = fts5DataRead(tls, p, I64((*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+I64((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno))
+ if pNew != 0 {
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno == (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno {
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset < (*Fts5Data)(unsafe.Pointer(pNew)).FszLeaf {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = pNew
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64((*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset)
+ }
+ } else {
+ var iRowidOff int32
+ iRowidOff = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pNew)).Fp))
+ if iRowidOff != 0 {
+ if iRowidOff >= (*Fts5Data)(unsafe.Pointer(pNew)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = pNew
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iRowidOff)
+ }
+ }
+ }
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != 0 {
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+ *(*I64)(unsafe.Pointer(pIter + 32)) += I64(sqlite3Fts5GetVarint(tls, a, pIter+104))
+ break
+ } else {
+ fts5DataRelease(tls, pNew)
+ }
+ }
+ }
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn + 1
+ fts5SegIterReverseInitPage(tls, p, pIter)
+ }
+}
+
+func fts5MultiIterIsEmpty(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ var pSeg uintptr = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120
+ return libc.Bool32((*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf != 0 && (*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos == 0)
+}
+
+func fts5SegIterNext_Reverse(tls *libc.TLS, p uintptr, pIter uintptr, pbUnused uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ _ = pbUnused
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowidOffset > 0 {
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ var iOff int32
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowidOffset--
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(*(*int32)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset + uintptr((*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowidOffset)*4)))
+ fts5SegIterLoadNPos(tls, p, pIter)
+ iOff = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail != FTS5_DETAIL_NONE {
+ iOff = iOff + (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos
+ }
+ sqlite3Fts5GetVarint(tls, a+uintptr(iOff), bp)
+ *(*I64)(unsafe.Pointer(pIter + 104)) -= I64(*(*U64)(unsafe.Pointer(bp)))
+ } else {
+ fts5SegIterReverseNewPage(tls, p, pIter)
+ }
+}
+
+func fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm uintptr) {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var iOff int32
+
+ iOff = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+
+ if !((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg != 0 && iOff >= (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf) {
+ goto __1
+ }
+ fts5SegIterNextPage(tls, p, pIter)
+ if !((*Fts5Index)(unsafe.Pointer(p)).Frc != 0 || (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf == uintptr(0)) {
+ goto __2
+ }
+ return
+__2:
+ ;
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowid = int64(0)
+ iOff = 4
+__1:
+ ;
+ if !(iOff < (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist) {
+ goto __3
+ }
+ iOff = iOff + int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr(iOff), bp))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iOff)
+ *(*I64)(unsafe.Pointer(pIter + 104)) += *(*I64)(unsafe.Pointer(bp))
+ goto __4
+__3:
+ if !((*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags&FTS5_SEGITER_ONETERM == 0) {
+ goto __5
+ }
+ if !((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg != 0) {
+ goto __7
+ }
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ if !(iOff != fts5LeafFirstTermOff(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)) {
+ goto __9
+ }
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr(iOff), bp+8)
+__9:
+ ;
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iOff)
+ fts5SegIterLoadTerm(tls, p, pIter, *(*int32)(unsafe.Pointer(bp + 8)))
+ goto __8
+__7:
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ sqlite3Fts5HashScanNext(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash)
+ sqlite3Fts5HashScanEntry(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash, bp+16, bp+24, bp+32)
+ if !(*(*uintptr)(unsafe.Pointer(bp + 24)) == uintptr(0)) {
+ goto __10
+ }
+ goto next_none_eof
+__10:
+ ;
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp = *(*uintptr)(unsafe.Pointer(bp + 24))
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn = *(*int32)(unsafe.Pointer(bp + 32))
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf = *(*int32)(unsafe.Pointer(bp + 32))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = *(*int32)(unsafe.Pointer(bp + 32))
+ sqlite3Fts5BufferSet(tls, p+52, pIter+88, int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))), *(*uintptr)(unsafe.Pointer(bp + 16)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(sqlite3Fts5GetVarint(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), pIter+104))
+__8:
+ ;
+ if !(pbNewTerm != 0) {
+ goto __11
+ }
+ *(*int32)(unsafe.Pointer(pbNewTerm)) = 1
+__11:
+ ;
+ goto __6
+__5:
+ goto next_none_eof
+__6:
+ ;
+__4:
+ ;
+ fts5SegIterLoadNPos(tls, p, pIter)
+
+ return
+next_none_eof:
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+}
+
+func fts5SegIterNext(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm uintptr) {
+ bp := tls.Alloc(44)
+ defer tls.Free(44)
+
+ var pLeaf uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf
+
+ var bNewTerm int32 = 0
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ var a uintptr
+ var n int32
+
+ a = (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp
+ n = (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf
+
+ *(*int32)(unsafe.Pointer(bp + 36)) = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset + I64((*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos))
+
+ if *(*int32)(unsafe.Pointer(bp + 36)) < n {
+ if *(*int32)(unsafe.Pointer(bp + 36)) >= (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist {
+ bNewTerm = 1
+ if *(*int32)(unsafe.Pointer(bp + 36)) != fts5LeafFirstTermOff(tls, pLeaf) {
+ *(*int32)(unsafe.Pointer(bp + 36)) += sqlite3Fts5GetVarint32(tls, a+uintptr(*(*int32)(unsafe.Pointer(bp + 36))), bp)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 36)) += int32(sqlite3Fts5GetVarint(tls, a+uintptr(*(*int32)(unsafe.Pointer(bp + 36))), bp+8))
+ *(*I64)(unsafe.Pointer(pIter + 104)) += I64(*(*U64)(unsafe.Pointer(bp + 8)))
+
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(*(*int32)(unsafe.Pointer(bp + 36)))
+
+ } else if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg == uintptr(0) {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 32)) = 0
+
+ if 0 == (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags&FTS5_SEGITER_ONETERM {
+ sqlite3Fts5HashScanNext(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash)
+ sqlite3Fts5HashScanEntry(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash, bp+16, bp+24, bp+32)
+ }
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) == uintptr(0) {
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+ } else {
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp = *(*uintptr)(unsafe.Pointer(bp + 24))
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn = *(*int32)(unsafe.Pointer(bp + 32))
+ (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf = *(*int32)(unsafe.Pointer(bp + 32))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = *(*int32)(unsafe.Pointer(bp + 32)) + 1
+ sqlite3Fts5BufferSet(tls, p+52, pIter+88, int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))),
+ *(*uintptr)(unsafe.Pointer(bp + 16)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(sqlite3Fts5GetVarint(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), pIter+104))
+ *(*int32)(unsafe.Pointer(pbNewTerm)) = 1
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 36)) = 0
+
+ for *(*int32)(unsafe.Pointer(bp + 36)) == 0 {
+ fts5SegIterNextPage(tls, p, pIter)
+ pLeaf = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf
+ if pLeaf == uintptr(0) {
+ break
+ }
+
+ if libc.AssignPtrInt32(bp+36, int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp))) != 0 && *(*int32)(unsafe.Pointer(bp + 36)) < (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ *(*int32)(unsafe.Pointer(bp + 36)) += int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(*(*int32)(unsafe.Pointer(bp + 36))), pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(*(*int32)(unsafe.Pointer(bp + 36)))
+
+ if (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn > (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff = (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr((*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf), pIter+60)
+ }
+ } else if (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn > (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff = (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr((*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf), bp+36)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(*(*int32)(unsafe.Pointer(bp + 36)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = *(*int32)(unsafe.Pointer(bp + 36))
+ bNewTerm = 1
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 36)) > (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+ }
+ }
+ }
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != 0 {
+ if bNewTerm != 0 {
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags&FTS5_SEGITER_ONETERM != 0 {
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+ } else {
+ fts5SegIterLoadTerm(tls, p, pIter, *(*int32)(unsafe.Pointer(bp)))
+ fts5SegIterLoadNPos(tls, p, pIter)
+ if pbNewTerm != 0 {
+ *(*int32)(unsafe.Pointer(pbNewTerm)) = 1
+ }
+ }
+ } else {
+ {
+ *(*int32)(unsafe.Pointer(bp + 40)) = int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp + uintptr(libc.PostIncInt64(&(*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset, 1)))))
+ if *(*int32)(unsafe.Pointer(bp + 40))&0x80 != 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset--
+ *(*I64)(unsafe.Pointer(pIter + 32)) += I64(sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset), bp+40))
+ }
+ }
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FbDel = U8(*(*int32)(unsafe.Pointer(bp + 40)) & 0x0001)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FnPos = *(*int32)(unsafe.Pointer(bp + 40)) >> 1
+
+ }
+ }
+}
+
+func fts5SegIterReverse(tls *libc.TLS, p uintptr, pIter uintptr) {
+ var pDlidx uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpDlidx
+ var pLast uintptr = uintptr(0)
+ var pgnoLast int32 = 0
+
+ if pDlidx != 0 {
+ var iSegid int32 = (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FiSegid
+ pgnoLast = fts5DlidxIterPgno(tls, pDlidx)
+ pLast = fts5LeafRead(tls, p, I64(iSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+I64(pgnoLast))
+ } else {
+ var pLeaf uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf
+
+ var iPoslist int32
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno == (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno {
+ iPoslist = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset
+ } else {
+ iPoslist = 4
+ }
+ {
+ var iEnd int32 = iPoslist + 9
+ for int32(*(*U8)(unsafe.Pointer((*Fts5Data)(unsafe.Pointer(pLeaf)).Fp + uintptr(libc.PostIncInt32(&iPoslist, 1)))))&0x80 != 0 && iPoslist < iEnd {
+ }
+ }
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iPoslist)
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist >= (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ var pgno int32
+ var pSeg uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg
+
+ for pgno = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno + 1; !((*Fts5Index)(unsafe.Pointer(p)).Frc != 0) && pgno <= (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast; pgno++ {
+ var iAbs I64 = I64((*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64(pgno)
+ var pNew uintptr = fts5LeafRead(tls, p, iAbs)
+ if pNew != 0 {
+ var iRowid int32
+ var bTermless int32
+ iRowid = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pNew)).Fp))
+ bTermless = libc.Bool32((*Fts5Data)(unsafe.Pointer(pNew)).FszLeaf >= (*Fts5Data)(unsafe.Pointer(pNew)).Fnn)
+ if iRowid != 0 {
+ {
+ var tmp uintptr
+ tmp = pNew
+ pNew = pLast
+ pLast = tmp
+ }
+
+ pgnoLast = pgno
+ }
+ fts5DataRelease(tls, pNew)
+ if bTermless == 0 {
+ break
+ }
+ }
+ }
+ }
+ }
+
+ if pLast != 0 {
+ var iOff int32
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = pLast
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno = pgnoLast
+ iOff = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLast)).Fp))
+ if iOff > (*Fts5Data)(unsafe.Pointer(pLast)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+ }
+ iOff = iOff + int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pLast)).Fp+uintptr(iOff), pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iOff)
+
+ if (*Fts5Data)(unsafe.Pointer(pLast)).FszLeaf >= (*Fts5Data)(unsafe.Pointer(pLast)).Fnn {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer(pLast)).Fnn + 1
+ } else {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = fts5LeafFirstTermOff(tls, pLast)
+ }
+ }
+
+ fts5SegIterReverseInitPage(tls, p, pIter)
+}
+
+func fts5SegIterLoadDlidx(tls *libc.TLS, p uintptr, pIter uintptr) {
+ var iSeg int32 = (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FiSegid
+ var bRev int32 = (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags & FTS5_SEGITER_REVERSE
+ var pLeaf uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno == (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno &&
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist < (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ return
+ }
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpDlidx = fts5DlidxIterInit(tls, p, bRev, iSeg, (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno)
+}
+
+func fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uintptr, nTerm int32) {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var a uintptr
+ var n U32
+ var nMatch U32
+
+ var iPgidx U32
+ var bEndOfPage int32
+ var nCmp U32
+ var i U32
+
+ a = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ n = U32((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn)
+ nMatch = U32(0)
+ *(*U32)(unsafe.Pointer(bp + 8)) = U32(0)
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(0)
+ bEndOfPage = 0
+
+ iPgidx = U32((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf)
+ iPgidx = iPgidx + U32(sqlite3Fts5GetVarint32(tls, a+uintptr(iPgidx), bp))
+ *(*U32)(unsafe.Pointer(bp + 12)) = *(*U32)(unsafe.Pointer(bp))
+ if !(*(*U32)(unsafe.Pointer(bp + 12)) > n) {
+ goto __1
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+__1:
+ ;
+__2:
+ if !(1 != 0) {
+ goto __3
+ }
+
+ *(*U32)(unsafe.Pointer(bp + 4)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(libc.PostIncUint32(&*(*U32)(unsafe.Pointer(bp + 12)), 1)))))
+ if !(*(*U32)(unsafe.Pointer(bp + 4))&U32(0x80) != 0) {
+ goto __4
+ }
+ *(*U32)(unsafe.Pointer(bp + 12))--
+ *(*U32)(unsafe.Pointer(bp + 12)) += U32(sqlite3Fts5GetVarint32(tls, a+uintptr(*(*U32)(unsafe.Pointer(bp + 12))), bp+4))
+__4:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 8)) < nMatch) {
+ goto __5
+ }
+ goto search_failed
+__5:
+ ;
+ if !(*(*U32)(unsafe.Pointer(bp + 8)) == nMatch) {
+ goto __6
+ }
+ nCmp = func() uint32 {
+ if *(*U32)(unsafe.Pointer(bp + 4)) < U32(nTerm)-nMatch {
+ return *(*U32)(unsafe.Pointer(bp + 4))
+ }
+ return U32(nTerm) - nMatch
+ }()
+ i = U32(0)
+__7:
+ if !(i < nCmp) {
+ goto __9
+ }
+ if !(int32(*(*U8)(unsafe.Pointer(a + uintptr(*(*U32)(unsafe.Pointer(bp + 12))+i)))) != int32(*(*U8)(unsafe.Pointer(pTerm + uintptr(nMatch+i))))) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ goto __8
+__8:
+ i++
+ goto __7
+ goto __9
+__9:
+ ;
+ nMatch = nMatch + i
+
+ if !(U32(nTerm) == nMatch) {
+ goto __11
+ }
+ if !(i == *(*U32)(unsafe.Pointer(bp + 4))) {
+ goto __13
+ }
+ goto search_success
+ goto __14
+__13:
+ goto search_failed
+__14:
+ ;
+ goto __12
+__11:
+ if !(i < *(*U32)(unsafe.Pointer(bp + 4)) && int32(*(*U8)(unsafe.Pointer(a + uintptr(*(*U32)(unsafe.Pointer(bp + 12))+i)))) > int32(*(*U8)(unsafe.Pointer(pTerm + uintptr(nMatch))))) {
+ goto __15
+ }
+ goto search_failed
+__15:
+ ;
+__12:
+ ;
+__6:
+ ;
+ if !(iPgidx >= n) {
+ goto __16
+ }
+ bEndOfPage = 1
+ goto __3
+__16:
+ ;
+ iPgidx = iPgidx + U32(sqlite3Fts5GetVarint32(tls, a+uintptr(iPgidx), bp+8))
+ *(*U32)(unsafe.Pointer(bp)) += *(*U32)(unsafe.Pointer(bp + 8))
+ *(*U32)(unsafe.Pointer(bp + 12)) = *(*U32)(unsafe.Pointer(bp))
+
+ if !(*(*U32)(unsafe.Pointer(bp + 12)) >= n) {
+ goto __17
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+__17:
+ ;
+ *(*U32)(unsafe.Pointer(bp + 8)) = U32(*(*U8)(unsafe.Pointer(a + uintptr(libc.PostIncUint32(&*(*U32)(unsafe.Pointer(bp + 12)), 1)))))
+ if !(*(*U32)(unsafe.Pointer(bp + 8))&U32(0x80) != 0) {
+ goto __18
+ }
+ *(*U32)(unsafe.Pointer(bp + 12))--
+ *(*U32)(unsafe.Pointer(bp + 12)) += U32(sqlite3Fts5GetVarint32(tls, a+uintptr(*(*U32)(unsafe.Pointer(bp + 12))), bp+8))
+__18:
+ ;
+ goto __2
+__3:
+ ;
+search_failed:
+ if !(bGe == 0) {
+ goto __19
+ }
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = uintptr(0)
+ return
+ goto __20
+__19:
+ if !(bEndOfPage != 0) {
+ goto __21
+ }
+__22:
+ fts5SegIterNextPage(tls, p, pIter)
+ if !((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf == uintptr(0)) {
+ goto __25
+ }
+ return
+__25:
+ ;
+ a = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ if !(libc.Bool32((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf >= (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn) == 0) {
+ goto __26
+ }
+ iPgidx = U32((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf)
+ iPgidx = iPgidx + U32(sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp+uintptr(iPgidx), bp+12))
+ if !(*(*U32)(unsafe.Pointer(bp + 12)) < U32(4) || I64(*(*U32)(unsafe.Pointer(bp + 12))) >= I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf)) {
+ goto __27
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+ goto __28
+__27:
+ *(*U32)(unsafe.Pointer(bp + 8)) = U32(0)
+ *(*U32)(unsafe.Pointer(bp)) = *(*U32)(unsafe.Pointer(bp + 12))
+ n = U32((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn)
+ *(*U32)(unsafe.Pointer(bp + 12)) += U32(sqlite3Fts5GetVarint32(tls, a+uintptr(*(*U32)(unsafe.Pointer(bp + 12))), bp+4))
+ goto __24
+__28:
+ ;
+__26:
+ ;
+ goto __23
+__23:
+ if 1 != 0 {
+ goto __22
+ }
+ goto __24
+__24:
+ ;
+__21:
+ ;
+__20:
+ ;
+search_success:
+ if !(I64(*(*U32)(unsafe.Pointer(bp + 12)))+I64(*(*U32)(unsafe.Pointer(bp + 4))) > I64(n) || *(*U32)(unsafe.Pointer(bp + 4)) < U32(1)) {
+ goto __29
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+__29:
+ ;
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(*(*U32)(unsafe.Pointer(bp + 12)) + *(*U32)(unsafe.Pointer(bp + 4)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset = int32((*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno
+
+ sqlite3Fts5BufferSet(tls, p+52, pIter+88, int32(*(*U32)(unsafe.Pointer(bp + 8))), pTerm)
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pIter+88, *(*U32)(unsafe.Pointer(bp + 4)), a+uintptr(*(*U32)(unsafe.Pointer(bp + 12))))
+
+ if !(iPgidx >= n) {
+ goto __30
+ }
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn + 1
+ goto __31
+__30:
+ iPgidx = iPgidx + U32(sqlite3Fts5GetVarint32(tls, a+uintptr(iPgidx), bp+16))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = int32(*(*U32)(unsafe.Pointer(bp)) + U32(*(*int32)(unsafe.Pointer(bp + 16))))
+__31:
+ ;
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff = int32(iPgidx)
+
+ fts5SegIterLoadRowid(tls, p, pIter)
+ fts5SegIterLoadNPos(tls, p, pIter)
+}
+
+func fts5IdxSelectStmt(tls *libc.TLS, p uintptr) uintptr {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls,
+ ts+35448,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName)))
+ }
+ return (*Fts5Index)(unsafe.Pointer(p)).FpIdxSelect
+}
+
+func fts5SegIterSeekInit(tls *libc.TLS, p uintptr, pTerm uintptr, nTerm int32, flags int32, pSeg uintptr, pIter uintptr) {
+ var iPg int32 = 1
+ var bGe int32 = flags & FTS5INDEX_QUERY_SCAN
+ var bDlidx int32 = 0
+ var pIdxSelect uintptr = uintptr(0)
+
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(Fts5SegIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg = pSeg
+
+ pIdxSelect = fts5IdxSelectStmt(tls, p)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+ Xsqlite3_bind_int(tls, pIdxSelect, 1, (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)
+ Xsqlite3_bind_blob(tls, pIdxSelect, 2, pTerm, nTerm, uintptr(0))
+ if SQLITE_ROW == Xsqlite3_step(tls, pIdxSelect) {
+ var val I64 = I64(Xsqlite3_column_int(tls, pIdxSelect, 0))
+ iPg = int32(val >> 1)
+ bDlidx = int32(val & int64(0x0001))
+ }
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, pIdxSelect)
+ Xsqlite3_bind_null(tls, pIdxSelect, 2)
+
+ if iPg < (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst {
+ iPg = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst
+ bDlidx = 0
+ }
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno = iPg - 1
+ fts5SegIterNextPage(tls, p, pIter)
+
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != 0 {
+ fts5LeafSeek(tls, p, bGe, pIter, pTerm, nTerm)
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bGe == 0 {
+ *(*int32)(unsafe.Pointer(pIter + 8)) |= FTS5_SEGITER_ONETERM
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != 0 {
+ if flags&FTS5INDEX_QUERY_DESC != 0 {
+ *(*int32)(unsafe.Pointer(pIter + 8)) |= FTS5_SEGITER_REVERSE
+ }
+ if bDlidx != 0 {
+ fts5SegIterLoadDlidx(tls, p, pIter)
+ }
+ if flags&FTS5INDEX_QUERY_DESC != 0 {
+ fts5SegIterReverse(tls, p, pIter)
+ }
+ }
+ }
+
+ fts5SegIterSetNext(tls, p, pIter)
+
+}
+
+func fts5SegIterHashInit(tls *libc.TLS, p uintptr, pTerm uintptr, nTerm int32, flags int32, pIter uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var n int32 = 0
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+
+ if pTerm == uintptr(0) || flags&FTS5INDEX_QUERY_SCAN != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = sqlite3Fts5HashScanInit(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash, pTerm, nTerm)
+ sqlite3Fts5HashScanEntry(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash, bp, bp+8, bp+16)
+ n = func() int32 {
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ return int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp))))
+ }
+ return 0
+ }()
+ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = fts5IdxMalloc(tls, p, int64(unsafe.Sizeof(Fts5Data{})))
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) != 0 {
+ (*Fts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fp = *(*uintptr)(unsafe.Pointer(bp + 8))
+ }
+ }
+ } else {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = sqlite3Fts5HashQuery(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash, int32(unsafe.Sizeof(Fts5Data{})),
+ pTerm, nTerm, bp+24, bp+16)
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) != 0 {
+ (*Fts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fp = *(*uintptr)(unsafe.Pointer(bp + 24)) + 1*16
+ }
+ *(*uintptr)(unsafe.Pointer(bp)) = pTerm
+ n = nTerm
+ *(*int32)(unsafe.Pointer(pIter + 8)) |= FTS5_SEGITER_ONETERM
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp + 24)) != 0 {
+ sqlite3Fts5BufferSet(tls, p+52, pIter+88, n, *(*uintptr)(unsafe.Pointer(bp)))
+ (*Fts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fnn = libc.AssignPtrInt32(*(*uintptr)(unsafe.Pointer(bp + 24))+12, *(*int32)(unsafe.Pointer(bp + 16)))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = *(*uintptr)(unsafe.Pointer(bp + 24))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fp, pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fnn
+
+ if flags&FTS5INDEX_QUERY_DESC != 0 {
+ *(*int32)(unsafe.Pointer(pIter + 8)) |= FTS5_SEGITER_REVERSE
+ fts5SegIterReverseInitPage(tls, p, pIter)
+ } else {
+ fts5SegIterLoadNPos(tls, p, pIter)
+ }
+ }
+
+ fts5SegIterSetNext(tls, p, pIter)
+}
+
+func fts5SegIterClear(tls *libc.TLS, pIter uintptr) {
+ sqlite3Fts5BufferFree(tls, pIter+88)
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf)
+ fts5DlidxIterFree(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpDlidx)
+ Xsqlite3_free(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset)
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(Fts5SegIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+}
+
+func fts5MultiIterDoCompare(tls *libc.TLS, pIter uintptr, iOut int32) int32 {
+ var i1 int32
+ var i2 int32
+ var iRes int32
+ var p1 uintptr
+ var p2 uintptr
+ var pRes uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + uintptr(iOut)*4
+
+ if iOut >= (*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg/2 {
+ i1 = (iOut - (*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg/2) * 2
+ i2 = i1 + 1
+ } else {
+ i1 = int32((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + uintptr(iOut*2)*4)).FiFirst)
+ i2 = int32((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + uintptr(iOut*2+1)*4)).FiFirst)
+ }
+ p1 = pIter + 96 + uintptr(i1)*120
+ p2 = pIter + 96 + uintptr(i2)*120
+
+ (*Fts5CResult)(unsafe.Pointer(pRes)).FbTermEq = U8(0)
+ if (*Fts5SegIter)(unsafe.Pointer(p1)).FpLeaf == uintptr(0) {
+ iRes = i2
+ } else if (*Fts5SegIter)(unsafe.Pointer(p2)).FpLeaf == uintptr(0) {
+ iRes = i1
+ } else {
+ var res int32 = fts5BufferCompare(tls, p1+88, p2+88)
+ if res == 0 {
+ (*Fts5CResult)(unsafe.Pointer(pRes)).FbTermEq = U8(1)
+ if (*Fts5SegIter)(unsafe.Pointer(p1)).FiRowid == (*Fts5SegIter)(unsafe.Pointer(p2)).FiRowid {
+ (*Fts5SegIter)(unsafe.Pointer(p1)).FbDel = (*Fts5SegIter)(unsafe.Pointer(p2)).FbDel
+ return i2
+ }
+ if libc.Bool32((*Fts5SegIter)(unsafe.Pointer(p1)).FiRowid > (*Fts5SegIter)(unsafe.Pointer(p2)).FiRowid) == (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev {
+ res = -1
+ } else {
+ res = +1
+ }
+ }
+
+ if res < 0 {
+ iRes = i1
+ } else {
+ iRes = i2
+ }
+ }
+
+ (*Fts5CResult)(unsafe.Pointer(pRes)).FiFirst = U16(iRes)
+ return 0
+}
+
+func fts5SegIterGotoPage(tls *libc.TLS, p uintptr, pIter uintptr, iLeafPgno int32) {
+ if iLeafPgno > (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FpgnoLast {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpNextLeaf = uintptr(0)
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno = iLeafPgno - 1
+ fts5SegIterNextPage(tls, p, pIter)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf != uintptr(0) {
+ var iOff int32
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp
+ var n int32 = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).FszLeaf
+
+ iOff = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fp))
+ if iOff < 4 || iOff >= n {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ iOff = iOff + int32(sqlite3Fts5GetVarint(tls, a+uintptr(iOff), pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(iOff)
+ fts5SegIterLoadNPos(tls, p, pIter)
+ }
+ }
+ }
+}
+
+func fts5SegIterNextFrom(tls *libc.TLS, p uintptr, pIter uintptr, iMatch I64) {
+ var bRev int32 = (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags & FTS5_SEGITER_REVERSE
+ var pDlidx uintptr = (*Fts5SegIter)(unsafe.Pointer(pIter)).FpDlidx
+ var iLeafPgno int32 = (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno
+ var bMove int32 = 1
+
+ if bRev == 0 {
+ for !(fts5DlidxIterEof(tls, p, pDlidx) != 0) && iMatch > fts5DlidxIterRowid(tls, pDlidx) {
+ iLeafPgno = fts5DlidxIterPgno(tls, pDlidx)
+ fts5DlidxIterNext(tls, p, pDlidx)
+ }
+
+ if iLeafPgno > (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno {
+ fts5SegIterGotoPage(tls, p, pIter, iLeafPgno)
+ bMove = 0
+ }
+ } else {
+ for !(fts5DlidxIterEof(tls, p, pDlidx) != 0) && iMatch < fts5DlidxIterRowid(tls, pDlidx) {
+ fts5DlidxIterPrev(tls, p, pDlidx)
+ }
+ iLeafPgno = fts5DlidxIterPgno(tls, pDlidx)
+
+ if iLeafPgno < (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno = iLeafPgno + 1
+ fts5SegIterReverseNewPage(tls, p, pIter)
+ bMove = 0
+ }
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if bMove != 0 && (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5SegIter)(unsafe.Pointer(pIter)).FxNext})).f(tls, p, pIter, uintptr(0))
+ }
+ if (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf == uintptr(0) {
+ break
+ }
+ if bRev == 0 && (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowid >= iMatch {
+ break
+ }
+ if bRev != 0 && (*Fts5SegIter)(unsafe.Pointer(pIter)).FiRowid <= iMatch {
+ break
+ }
+ bMove = 1
+ }
+}
+
+func fts5MultiIterFree(tls *libc.TLS, pIter uintptr) {
+ if pIter != 0 {
+ var i int32
+ for i = 0; i < (*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg; i++ {
+ fts5SegIterClear(tls, pIter+96+uintptr(i)*120)
+ }
+ sqlite3Fts5BufferFree(tls, pIter+32)
+ Xsqlite3_free(tls, pIter)
+ }
+}
+
+func fts5MultiIterAdvanced(tls *libc.TLS, p uintptr, pIter uintptr, iChanged int32, iMinset int32) {
+ var i int32
+ for i = ((*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg + iChanged) / 2; i >= iMinset && (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK; i = i / 2 {
+ var iEq int32
+ if libc.AssignInt32(&iEq, fts5MultiIterDoCompare(tls, pIter, i)) != 0 {
+ var pSeg uintptr = pIter + 96 + uintptr(iEq)*120
+
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5SegIter)(unsafe.Pointer(pSeg)).FxNext})).f(tls, p, pSeg, uintptr(0))
+ i = (*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg + iEq
+ }
+ }
+}
+
+func fts5MultiIterAdvanceRowid(tls *libc.TLS, pIter uintptr, iChanged int32, ppFirst uintptr) int32 {
+ var pNew uintptr = pIter + 96 + uintptr(iChanged)*120
+
+ if (*Fts5SegIter)(unsafe.Pointer(pNew)).FiRowid == (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid ||
+ libc.Bool32((*Fts5SegIter)(unsafe.Pointer(pNew)).FiRowid < (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid) == (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev {
+ var i int32
+ var pOther uintptr = pIter + 96 + uintptr(iChanged^0x0001)*120
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid = func() int64 {
+ if (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev != 0 {
+ return int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ }
+ return int64(0xffffffff) | int64(0x7fffffff)<<32
+ }()
+ for i = ((*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg + iChanged) / 2; 1 != 0; i = i / 2 {
+ var pRes uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + uintptr(i)*4
+
+ if (*Fts5CResult)(unsafe.Pointer(pRes)).FbTermEq != 0 {
+ if (*Fts5SegIter)(unsafe.Pointer(pNew)).FiRowid == (*Fts5SegIter)(unsafe.Pointer(pOther)).FiRowid {
+ return 1
+ } else if libc.Bool32((*Fts5SegIter)(unsafe.Pointer(pOther)).FiRowid > (*Fts5SegIter)(unsafe.Pointer(pNew)).FiRowid) == (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid = (*Fts5SegIter)(unsafe.Pointer(pOther)).FiRowid
+ pNew = pOther
+ } else if libc.Bool32((*Fts5SegIter)(unsafe.Pointer(pOther)).FiRowid > (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid) == (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid = (*Fts5SegIter)(unsafe.Pointer(pOther)).FiRowid
+ }
+ }
+ (*Fts5CResult)(unsafe.Pointer(pRes)).FiFirst = U16(int64((pNew - (pIter + 96)) / 120))
+ if i == 1 {
+ break
+ }
+
+ pOther = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+uintptr(i^0x0001)*4)).FiFirst)*120
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppFirst)) = pNew
+ return 0
+}
+
+func fts5MultiIterSetEof(tls *libc.TLS, pIter uintptr) {
+ var pSeg uintptr = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FbEof = U8(libc.Bool32((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf == uintptr(0)))
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FiSwitchRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+}
+
+func fts5MultiIterNext(tls *libc.TLS, p uintptr, pIter uintptr, bFrom int32, iFrom I64) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var bUseFrom int32 = bFrom
+
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var iFirst int32 = int32((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + 1*4)).FiFirst)
+ *(*int32)(unsafe.Pointer(bp)) = 0
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = pIter + 96 + uintptr(iFirst)*120
+
+ if bUseFrom != 0 && (*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpDlidx != 0 {
+ fts5SegIterNextFrom(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8)), iFrom)
+ } else {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxNext})).f(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8)), bp)
+ }
+
+ if (*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpLeaf == uintptr(0) || *(*int32)(unsafe.Pointer(bp)) != 0 ||
+ fts5MultiIterAdvanceRowid(tls, pIter, iFirst, bp+8) != 0 {
+ fts5MultiIterAdvanced(tls, p, pIter, iFirst, 1)
+ fts5MultiIterSetEof(tls, pIter)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120
+ if (*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpLeaf == uintptr(0) {
+ return
+ }
+ }
+
+ if int32((*Fts5Iter)(unsafe.Pointer(pIter)).FbSkipEmpty) == 0 || (*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FnPos != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs})).f(tls, pIter, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ return
+ }
+ bUseFrom = 0
+ }
+}
+
+func fts5MultiIterNext2(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm uintptr) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pbNewTerm)) = 0
+ for __ccgo := true; __ccgo; __ccgo = fts5MultiIterIsEmpty(tls, p, pIter) != 0 {
+ var iFirst int32 = int32((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst + 1*4)).FiFirst)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = pIter + 96 + uintptr(iFirst)*120
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxNext})).f(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8)), bp)
+ if (*Fts5SegIter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpLeaf == uintptr(0) || *(*int32)(unsafe.Pointer(bp)) != 0 ||
+ fts5MultiIterAdvanceRowid(tls, pIter, iFirst, bp+8) != 0 {
+ fts5MultiIterAdvanced(tls, p, pIter, iFirst, 1)
+ fts5MultiIterSetEof(tls, pIter)
+ *(*int32)(unsafe.Pointer(pbNewTerm)) = 1
+ }
+
+ }
+ }
+}
+
+func fts5IterSetOutputs_Noop(tls *libc.TLS, pUnused1 uintptr, pUnused2 uintptr) {
+ _ = pUnused1
+ _ = pUnused2
+}
+
+func fts5MultiIterAlloc(tls *libc.TLS, p uintptr, nSeg int32) uintptr {
+ var pNew uintptr
+ var nSlot int32
+
+ for nSlot = 2; nSlot < nSeg; nSlot = nSlot * 2 {
+ }
+ pNew = fts5IdxMalloc(tls, p,
+ int64(uint64(unsafe.Sizeof(Fts5Iter{}))+uint64(unsafe.Sizeof(Fts5SegIter{}))*uint64(nSlot-1)+uint64(unsafe.Sizeof(Fts5CResult{}))*uint64(nSlot)))
+ if pNew != 0 {
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FnSeg = nSlot
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FaFirst = pNew + 96 + uintptr(nSlot)*120
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FpIndex = p
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_Noop}))
+ }
+ return pNew
+}
+
+func fts5PoslistCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr, pChunk uintptr, nChunk int32) {
+ _ = pUnused
+
+ if nChunk > 0 {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pContext)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pContext)).Fn), pChunk, uint64(nChunk), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pContext)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pContext)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pContext + 8)) += nChunk
+ }
+
+ }
+}
+
+type PoslistCallbackCtx1 = struct {
+ FpBuf uintptr
+ FpColset uintptr
+ FeState int32
+ F__ccgo_pad1 [4]byte
+}
+
+type PoslistCallbackCtx = PoslistCallbackCtx1
+
+type PoslistOffsetsCtx1 = struct {
+ FpBuf uintptr
+ FpColset uintptr
+ FiRead int32
+ FiWrite int32
+}
+
+type PoslistOffsetsCtx = PoslistOffsetsCtx1
+
+func fts5IndexColsetTest(tls *libc.TLS, pColset uintptr, iCol int32) int32 {
+ var i int32
+ for i = 0; i < (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol; i++ {
+ if *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(i)*4)) == iCol {
+ return 1
+ }
+ }
+ return 0
+}
+
+func fts5PoslistOffsetsCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr, pChunk uintptr, nChunk int32) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pCtx uintptr = pContext
+ _ = pUnused
+
+ if nChunk > 0 {
+ var i int32 = 0
+ for i < nChunk {
+ i = i + sqlite3Fts5GetVarint32(tls, pChunk+uintptr(i), bp)
+ *(*int32)(unsafe.Pointer(bp)) += (*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FiRead - 2
+ (*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FiRead = *(*int32)(unsafe.Pointer(bp))
+ if fts5IndexColsetTest(tls, (*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FpColset, *(*int32)(unsafe.Pointer(bp))) != 0 {
+ {
+ *(*int32)(unsafe.Pointer((*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FpBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), uint64(*(*int32)(unsafe.Pointer(bp))+2-(*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FiWrite))
+ }
+
+ (*PoslistOffsetsCtx)(unsafe.Pointer(pCtx)).FiWrite = *(*int32)(unsafe.Pointer(bp))
+ }
+ }
+ }
+}
+
+func fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr, pChunk uintptr, nChunk int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCtx uintptr = pContext
+ _ = pUnused
+
+ if nChunk > 0 {
+ var i int32 = 0
+ var iStart int32 = 0
+
+ if (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState == 2 {
+ {
+ *(*int32)(unsafe.Pointer(bp)) = int32(*(*U8)(unsafe.Pointer(pChunk + uintptr(libc.PostIncInt32(&i, 1)))))
+ if *(*int32)(unsafe.Pointer(bp))&0x80 != 0 {
+ i--
+ i = i + sqlite3Fts5GetVarint32(tls, pChunk+uintptr(i), bp)
+ }
+ }
+
+ if fts5IndexColsetTest(tls, (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpColset, *(*int32)(unsafe.Pointer(bp))) != 0 {
+ (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState = 1
+ {
+ *(*int32)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), uint64(1))
+ }
+
+ } else {
+ (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState = 0
+ }
+ }
+
+ for __ccgo := true; __ccgo; __ccgo = i < nChunk {
+ for i < nChunk && int32(*(*U8)(unsafe.Pointer(pChunk + uintptr(i)))) != 0x01 {
+ for int32(*(*U8)(unsafe.Pointer(pChunk + uintptr(i))))&0x80 != 0 {
+ i++
+ }
+ i++
+ }
+ if (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState != 0 {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), pChunk+uintptr(iStart), uint64(i-iStart), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf + 8)) += i - iStart
+ }
+
+ }
+ if i < nChunk {
+ iStart = i
+ i++
+ if i >= nChunk {
+ (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState = 2
+ } else {
+ {
+ *(*int32)(unsafe.Pointer(bp + 4)) = int32(*(*U8)(unsafe.Pointer(pChunk + uintptr(libc.PostIncInt32(&i, 1)))))
+ if *(*int32)(unsafe.Pointer(bp + 4))&0x80 != 0 {
+ i--
+ i = i + sqlite3Fts5GetVarint32(tls, pChunk+uintptr(i), bp+4)
+ }
+ }
+
+ (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState = fts5IndexColsetTest(tls, (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpColset, *(*int32)(unsafe.Pointer(bp + 4)))
+ if (*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FeState != 0 {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), pChunk+uintptr(iStart), uint64(i-iStart), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer((*PoslistCallbackCtx)(unsafe.Pointer(pCtx)).FpBuf + 8)) += i - iStart
+ }
+
+ iStart = i
+ }
+ }
+ }
+ }
+ }
+}
+
+func fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) {
+ var nRem int32 = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos
+ var pData uintptr = uintptr(0)
+ var pChunk uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).Fp + uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset)
+ var nChunk int32 = func() int32 {
+ if I64(nRem) < I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).FszLeaf)-(*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset {
+ return nRem
+ }
+ return int32(I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).FszLeaf) - (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset)
+ }()
+ var pgno int32 = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafPgno
+ var pgnoSave int32 = 0
+
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).Fflags&FTS5_SEGITER_REVERSE == 0 {
+ pgnoSave = pgno + 1
+ }
+
+ for 1 != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32)
+ })(unsafe.Pointer(&struct{ uintptr }{xChunk})).f(tls, p, pCtx, pChunk, nChunk)
+ nRem = nRem - nChunk
+ fts5DataRelease(tls, pData)
+ if nRem <= 0 {
+ break
+ } else if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ return
+ } else {
+ pgno++
+ pData = fts5LeafRead(tls, p, I64((*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+I64(pgno))
+ if pData == uintptr(0) {
+ break
+ }
+ pChunk = (*Fts5Data)(unsafe.Pointer(pData)).Fp + 4
+ nChunk = func() int32 {
+ if nRem < (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf-4 {
+ return nRem
+ }
+ return (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf - 4
+ }()
+ if pgno == pgnoSave {
+ (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpNextLeaf = pData
+ pData = uintptr(0)
+ }
+ }
+ }
+}
+
+func fts5SegiterPoslist(tls *libc.TLS, p uintptr, pSeg uintptr, pColset uintptr, pBuf uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ if 0 == func() int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)+U32((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos+FTS5_DATA_ZERO_PADDING) <= U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
+ return 0
+ }
+ return sqlite3Fts5BufferSize(tls, p+52, pBuf, uint32((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos+FTS5_DATA_ZERO_PADDING+(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ }() {
+ libc.X__builtin___memset_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos), 0, uint64(FTS5_DATA_ZERO_PADDING), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos), 0))
+ if pColset == uintptr(0) {
+ fts5ChunkIterate(tls, p, pSeg, pBuf, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32)
+ }{fts5PoslistCallback})))
+ } else {
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail == FTS5_DETAIL_FULL {
+ (*PoslistCallbackCtx)(unsafe.Pointer(bp)).FpBuf = pBuf
+ (*PoslistCallbackCtx)(unsafe.Pointer(bp)).FpColset = pColset
+ (*PoslistCallbackCtx)(unsafe.Pointer(bp)).FeState = fts5IndexColsetTest(tls, pColset, 0)
+
+ fts5ChunkIterate(tls, p, pSeg, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32)
+ }{fts5PoslistFilterCallback})))
+ } else {
+ libc.X__builtin___memset_chk(tls, bp+24, 0, uint64(unsafe.Sizeof(PoslistOffsetsCtx{})), libc.X__builtin_object_size(tls, bp+24, 0))
+ (*PoslistOffsetsCtx)(unsafe.Pointer(bp + 24)).FpBuf = pBuf
+ (*PoslistOffsetsCtx)(unsafe.Pointer(bp + 24)).FpColset = pColset
+ fts5ChunkIterate(tls, p, pSeg, bp+24, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32)
+ }{fts5PoslistOffsetsCallback})))
+ }
+ }
+ }
+}
+
+func fts5IndexExtractColset(tls *libc.TLS, pRc uintptr, pColset uintptr, pPos uintptr, nPos int32, pIter uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var p uintptr = pPos
+ var aCopy uintptr = p
+ var pEnd uintptr = p + uintptr(nPos)
+ var i int32 = 0
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol > 1 && sqlite3Fts5BufferSize(tls, pRc, pIter+32, uint32(nPos)) != 0 {
+ return
+ }
+
+ for 1 != 0 {
+ for *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(i)*4)) < *(*int32)(unsafe.Pointer(bp)) {
+ i++
+ if i == (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fn
+ return
+ }
+ }
+
+ for p < pEnd && int32(*(*U8)(unsafe.Pointer(p))) != 0x01 {
+ for int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x80 != 0 {
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(i)*4)) == *(*int32)(unsafe.Pointer(bp)) {
+ if (*Fts5Colset)(unsafe.Pointer(pColset)).FnCol == 1 {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = aCopy
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32((int64(p) - int64(aCopy)) / 1)
+ return
+ }
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pIter+32)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pIter+32)).Fn), aCopy, uint64((int64(p)-int64(aCopy))/1), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pIter+32)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pIter+32)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pIter + 32 + 8)) += int32((int64(p) - int64(aCopy)) / 1)
+ }
+
+ }
+ if p >= pEnd {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fn
+ return
+ }
+ aCopy = libc.PostIncUintptr(&p, 1)
+ *(*int32)(unsafe.Pointer(bp)) = int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))
+ if *(*int32)(unsafe.Pointer(bp))&0x80 != 0 {
+ p--
+ p += uintptr(sqlite3Fts5GetVarint32(tls, p, bp))
+ }
+ }
+ }
+
+}
+
+func fts5IterSetOutputs_None(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FiRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos
+}
+
+func fts5IterSetOutputs_Nocolset(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FiRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos
+
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset+I64((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos) <= I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).FszLeaf) {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).Fp + uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset)
+ } else {
+ sqlite3Fts5BufferZero(tls, pIter+32)
+ fts5SegiterPoslist(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex, pSeg, uintptr(0), pIter+32)
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ }
+}
+
+func fts5IterSetOutputs_ZeroColset(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ _ = pSeg
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = 0
+}
+
+func fts5IterSetOutputs_Col(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ sqlite3Fts5BufferZero(tls, pIter+32)
+ fts5SegiterPoslist(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex, pSeg, (*Fts5Iter)(unsafe.Pointer(pIter)).FpColset, pIter+32)
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FiRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fn
+}
+
+func fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ var a uintptr
+ var pEnd uintptr
+ var iPrev int32
+ var aiCol uintptr
+ var aiColEnd uintptr
+ var aOut uintptr
+ var iPrevOut int32
+
+ if !((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset+I64((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos) > I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).FszLeaf)) {
+ goto __1
+ }
+ fts5IterSetOutputs_Col(tls, pIter, pSeg)
+ goto __2
+__1:
+ a = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).Fp + uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset)
+ pEnd = a + uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos)
+ iPrev = 0
+ aiCol = (*Fts5Iter)(unsafe.Pointer(pIter)).FpColset + 4
+ aiColEnd = aiCol + uintptr((*Fts5Colset)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FpColset)).FnCol)*4
+ aOut = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ iPrevOut = 0
+
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FiRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+
+__3:
+ if !(a < pEnd) {
+ goto __4
+ }
+ iPrev = iPrev + (int32(*(*U8)(unsafe.Pointer(libc.PostIncUintptr(&a, 1)))) - 2)
+__5:
+ if !(*(*int32)(unsafe.Pointer(aiCol)) < iPrev) {
+ goto __6
+ }
+ aiCol += 4
+ if !(aiCol == aiColEnd) {
+ goto __7
+ }
+ goto setoutputs_col_out
+__7:
+ ;
+ goto __5
+__6:
+ ;
+ if !(*(*int32)(unsafe.Pointer(aiCol)) == iPrev) {
+ goto __8
+ }
+ *(*U8)(unsafe.Pointer(libc.PostIncUintptr(&aOut, 1))) = U8(iPrev - iPrevOut + 2)
+ iPrevOut = iPrev
+__8:
+ ;
+ goto __3
+__4:
+ ;
+setoutputs_col_out:
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32((int64(aOut) - int64((*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp)) / 1)
+__2:
+}
+
+func fts5IterSetOutputs_Full(tls *libc.TLS, pIter uintptr, pSeg uintptr) {
+ var pColset uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FpColset
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FiRowid = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiRowid
+
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset+I64((*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos) <= I64((*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).FszLeaf) {
+ var a uintptr = (*Fts5Data)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)).Fp + uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset)
+ var pRc uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex + 52
+ sqlite3Fts5BufferZero(tls, pIter+32)
+ fts5IndexExtractColset(tls, pRc, pColset, a, (*Fts5SegIter)(unsafe.Pointer(pSeg)).FnPos, pIter)
+ } else {
+ sqlite3Fts5BufferZero(tls, pIter+32)
+ fts5SegiterPoslist(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex, pSeg, pColset, pIter+32)
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = (*Fts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fn
+ }
+}
+
+func fts5IterSetOutputCb(tls *libc.TLS, pRc uintptr, pIter uintptr) {
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex)).FpConfig
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_NONE {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_None}))
+ } else if (*Fts5Iter)(unsafe.Pointer(pIter)).FpColset == uintptr(0) {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_Nocolset}))
+ } else if (*Fts5Colset)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FpColset)).FnCol == 0 {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_ZeroColset}))
+ } else if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_FULL {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_Full}))
+ } else {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol <= 100 {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_Col100}))
+ sqlite3Fts5BufferSize(tls, pRc, pIter+32, uint32((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol))
+ } else {
+ (*Fts5Iter)(unsafe.Pointer(pIter)).FxSetOutputs = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ }{fts5IterSetOutputs_Col}))
+ }
+ }
+ }
+}
+
+func fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, pColset uintptr, pTerm uintptr, nTerm int32, iLevel int32, nSegment int32, ppOut uintptr) {
+ var nSeg int32
+ var iIter int32
+ var iSeg int32
+ var pLvl uintptr
+ var pNew uintptr
+
+ var pIter uintptr
+ var pSeg uintptr
+ var pIter1 uintptr
+ var pEnd uintptr
+ var pSeg1 uintptr
+ var iEq int32
+ var pSeg2 uintptr
+ nSeg = 0
+ iIter = 0
+
+ if !((*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __1
+ }
+ if !(iLevel < 0) {
+ goto __2
+ }
+
+ nSeg = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment
+ nSeg = nSeg + func() int32 {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpHash != 0 {
+ return 1
+ }
+ return 0
+ }()
+ goto __3
+__2:
+ nSeg = func() int32 {
+ if (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLevel)*16)).FnSeg < nSegment {
+ return (*Fts5StructureLevel)(unsafe.Pointer(pStruct + 24 + uintptr(iLevel)*16)).FnSeg
+ }
+ return nSegment
+ }()
+__3:
+ ;
+__1:
+ ;
+ *(*uintptr)(unsafe.Pointer(ppOut)) = libc.AssignUintptr(&pNew, fts5MultiIterAlloc(tls, p, nSeg))
+ if !(pNew == uintptr(0)) {
+ goto __4
+ }
+
+ goto fts5MultiIterNew_post_check
+__4:
+ ;
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FbRev = libc.Bool32(0 != flags&FTS5INDEX_QUERY_DESC)
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FbSkipEmpty = U8(libc.Bool32(0 != flags&FTS5INDEX_QUERY_SKIPEMPTY))
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FpColset = pColset
+ if !(flags&FTS5INDEX_QUERY_NOOUTPUT == 0) {
+ goto __5
+ }
+ fts5IterSetOutputCb(tls, p+52, pNew)
+__5:
+ ;
+ if !((*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __6
+ }
+ if !(iLevel < 0) {
+ goto __7
+ }
+ pEnd = pStruct + 24 + uintptr((*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel)*16
+ if !((*Fts5Index)(unsafe.Pointer(p)).FpHash != 0) {
+ goto __9
+ }
+
+ pIter = pNew + 96 + uintptr(libc.PostIncInt32(&iIter, 1))*120
+ fts5SegIterHashInit(tls, p, pTerm, nTerm, flags, pIter)
+__9:
+ ;
+ pLvl = pStruct + 24
+__10:
+ if !(pLvl < pEnd) {
+ goto __12
+ }
+ iSeg = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg - 1
+__13:
+ if !(iSeg >= 0) {
+ goto __15
+ }
+ pSeg = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg + uintptr(iSeg)*12
+ pIter1 = pNew + 96 + uintptr(libc.PostIncInt32(&iIter, 1))*120
+ if !(pTerm == uintptr(0)) {
+ goto __16
+ }
+ fts5SegIterInit(tls, p, pSeg, pIter1)
+ goto __17
+__16:
+ fts5SegIterSeekInit(tls, p, pTerm, nTerm, flags, pSeg, pIter1)
+__17:
+ ;
+ goto __14
+__14:
+ iSeg--
+ goto __13
+ goto __15
+__15:
+ ;
+ goto __11
+__11:
+ pLvl += 16
+ goto __10
+ goto __12
+__12:
+ ;
+ goto __8
+__7:
+ pLvl = pStruct + 24 + uintptr(iLevel)*16
+ iSeg = nSeg - 1
+__18:
+ if !(iSeg >= 0) {
+ goto __20
+ }
+ fts5SegIterInit(tls, p, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(iSeg)*12, pNew+96+uintptr(libc.PostIncInt32(&iIter, 1))*120)
+ goto __19
+__19:
+ iSeg--
+ goto __18
+ goto __20
+__20:
+ ;
+__8:
+ ;
+__6:
+ ;
+ if !((*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __21
+ }
+ iIter = (*Fts5Iter)(unsafe.Pointer(pNew)).FnSeg - 1
+__23:
+ if !(iIter > 0) {
+ goto __25
+ }
+ if !(libc.AssignInt32(&iEq, fts5MultiIterDoCompare(tls, pNew, iIter)) != 0) {
+ goto __26
+ }
+ pSeg1 = pNew + 96 + uintptr(iEq)*120
+ if !((*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK) {
+ goto __27
+ }
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5SegIter)(unsafe.Pointer(pSeg1)).FxNext})).f(tls, p, pSeg1, uintptr(0))
+__27:
+ ;
+ fts5MultiIterAdvanced(tls, p, pNew, iEq, iIter)
+__26:
+ ;
+ goto __24
+__24:
+ iIter--
+ goto __23
+ goto __25
+__25:
+ ;
+ fts5MultiIterSetEof(tls, pNew)
+
+ if !((*Fts5Iter)(unsafe.Pointer(pNew)).FbSkipEmpty != 0 && fts5MultiIterIsEmpty(tls, p, pNew) != 0) {
+ goto __28
+ }
+ fts5MultiIterNext(tls, p, pNew, 0, int64(0))
+ goto __29
+__28:
+ if !(int32((*Fts5Iter)(unsafe.Pointer(pNew)).Fbase.FbEof) == 0) {
+ goto __30
+ }
+ pSeg2 = pNew + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pNew)).FaFirst+1*4)).FiFirst)*120
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Iter)(unsafe.Pointer(pNew)).FxSetOutputs})).f(tls, pNew, pSeg2)
+__30:
+ ;
+__29:
+ ;
+ goto __22
+__21:
+ fts5MultiIterFree(tls, pNew)
+ *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0)
+__22:
+ ;
+fts5MultiIterNew_post_check:
+ ;
+ return
+}
+
+func fts5MultiIterNew2(tls *libc.TLS, p uintptr, pData uintptr, bDesc int32, ppOut uintptr) {
+ var pNew uintptr
+ pNew = fts5MultiIterAlloc(tls, p, 2)
+ if pNew != 0 {
+ var pIter uintptr = pNew + 96 + 1*120
+
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).Fflags = FTS5_SEGITER_ONETERM
+ if (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf > 0 {
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FpLeaf = pData
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = I64(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp, pIter+104))
+ (*Fts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*Fts5Data)(unsafe.Pointer(pData)).Fnn
+ (*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pNew)).FaFirst + 1*4)).FiFirst = U16(1)
+ if bDesc != 0 {
+ (*Fts5Iter)(unsafe.Pointer(pNew)).FbRev = 1
+ *(*int32)(unsafe.Pointer(pIter + 8)) |= FTS5_SEGITER_REVERSE
+ fts5SegIterReverseInitPage(tls, p, pIter)
+ } else {
+ fts5SegIterLoadNPos(tls, p, pIter)
+ }
+ pData = uintptr(0)
+ } else {
+ (*Fts5Iter)(unsafe.Pointer(pNew)).Fbase.FbEof = U8(1)
+ }
+ fts5SegIterSetNext(tls, p, pIter)
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pNew
+ }
+
+ fts5DataRelease(tls, pData)
+}
+
+func fts5MultiIterEof(tls *libc.TLS, p uintptr, pIter uintptr) int32 {
+ return libc.Bool32((*Fts5Index)(unsafe.Pointer(p)).Frc != 0 || (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FbEof != 0)
+}
+
+func fts5MultiIterRowid(tls *libc.TLS, pIter uintptr) I64 {
+ return (*Fts5SegIter)(unsafe.Pointer(pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120)).FiRowid
+}
+
+func fts5MultiIterNextFrom(tls *libc.TLS, p uintptr, pIter uintptr, iMatch I64) {
+ for 1 != 0 {
+ var iRowid I64
+ fts5MultiIterNext(tls, p, pIter, 1, iMatch)
+ if fts5MultiIterEof(tls, p, pIter) != 0 {
+ break
+ }
+ iRowid = fts5MultiIterRowid(tls, pIter)
+ if (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev == 0 && iRowid >= iMatch {
+ break
+ }
+ if (*Fts5Iter)(unsafe.Pointer(pIter)).FbRev != 0 && iRowid <= iMatch {
+ break
+ }
+ }
+}
+
+func fts5MultiIterTerm(tls *libc.TLS, pIter uintptr, pn uintptr) uintptr {
+ var p uintptr = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120
+ *(*int32)(unsafe.Pointer(pn)) = (*Fts5SegIter)(unsafe.Pointer(p)).Fterm.Fn
+ return (*Fts5SegIter)(unsafe.Pointer(p)).Fterm.Fp
+}
+
+func fts5AllocateSegid(tls *libc.TLS, p uintptr, pStruct uintptr) int32 {
+ bp := tls.Alloc(252)
+ defer tls.Free(252)
+
+ var iSegid int32 = 0
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment >= FTS5_MAX_SEGMENT {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_FULL
+ } else {
+ var iLvl int32
+ var iSeg int32
+ var i int32
+ var mask U32
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof([63]U32{})), libc.X__builtin_object_size(tls, bp, 0))
+ for iLvl = 0; iLvl < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; iLvl++ {
+ for iSeg = 0; iSeg < (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FnSeg; iSeg++ {
+ var iId int32 = (*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FaSeg + uintptr(iSeg)*12)).FiSegid
+ if iId <= FTS5_MAX_SEGMENT && iId > 0 {
+ *(*U32)(unsafe.Pointer(bp + uintptr((iId-1)/32)*4)) |= U32(1) << ((iId - 1) % 32)
+ }
+ }
+ }
+
+ for i = 0; *(*U32)(unsafe.Pointer(bp + uintptr(i)*4)) == 0xFFFFFFFF; i++ {
+ }
+ mask = *(*U32)(unsafe.Pointer(bp + uintptr(i)*4))
+ for iSegid = 0; mask&(U32(1)<<iSegid) != 0; iSegid++ {
+ }
+ iSegid = iSegid + (1 + i*32)
+
+ }
+ }
+
+ return iSegid
+}
+
+func fts5IndexDiscardData(tls *libc.TLS, p uintptr) {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpHash != 0 {
+ sqlite3Fts5HashClear(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash)
+ (*Fts5Index)(unsafe.Pointer(p)).FnPendingData = 0
+ }
+}
+
+func fts5PrefixCompress(tls *libc.TLS, nOld int32, pOld uintptr, pNew uintptr) int32 {
+ var i int32
+ for i = 0; i < nOld; i++ {
+ if int32(*(*U8)(unsafe.Pointer(pOld + uintptr(i)))) != int32(*(*U8)(unsafe.Pointer(pNew + uintptr(i)))) {
+ break
+ }
+ }
+ return i
+}
+
+func fts5WriteDlidxClear(tls *libc.TLS, p uintptr, pWriter uintptr, bFlush int32) {
+ var i int32
+
+ for i = 0; i < (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx; i++ {
+ var pDlidx uintptr = (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx + uintptr(i)*32
+ if (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fn == 0 {
+ break
+ }
+ if bFlush != 0 {
+ fts5DataWrite(tls, p,
+ I64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+I64(i)<<FTS5_DATA_PAGE_B+I64((*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fpgno),
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fp, (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fn)
+ }
+ sqlite3Fts5BufferZero(tls, pDlidx+16)
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FbPrevValid = 0
+ }
+}
+
+func fts5WriteDlidxGrow(tls *libc.TLS, p uintptr, pWriter uintptr, nLvl int32) int32 {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && nLvl >= (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx {
+ var aDlidx uintptr = Xsqlite3_realloc64(tls,
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx, uint64(unsafe.Sizeof(Fts5DlidxWriter{}))*uint64(nLvl))
+ if aDlidx == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_NOMEM
+ } else {
+ var nByte Size_t = uint64(unsafe.Sizeof(Fts5DlidxWriter{})) * uint64(nLvl-(*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx)
+ libc.X__builtin___memset_chk(tls, aDlidx+uintptr((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx)*32, 0, nByte, libc.X__builtin_object_size(tls, aDlidx+uintptr((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx)*32, 0))
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx = aDlidx
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx = nLvl
+ }
+ }
+ return (*Fts5Index)(unsafe.Pointer(p)).Frc
+}
+
+func fts5WriteFlushDlidx(tls *libc.TLS, p uintptr, pWriter uintptr) int32 {
+ var bFlag int32 = 0
+
+ if (*Fts5DlidxWriter)(unsafe.Pointer((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx)).Fbuf.Fn > 0 && (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnEmpty >= FTS5_MIN_DLIDX_SIZE {
+ bFlag = 1
+ }
+ fts5WriteDlidxClear(tls, p, pWriter, bFlag)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnEmpty = 0
+ return bFlag
+}
+
+func fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) {
+ var bFlag int32
+
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage == 0 {
+ return
+ }
+ bFlag = fts5WriteFlushDlidx(tls, p, pWriter)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var z uintptr = func() uintptr {
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 {
+ return (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp
+ }
+ return ts + 1547
+ }()
+
+ Xsqlite3_bind_blob(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter, 2, z, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn, uintptr(0))
+ Xsqlite3_bind_int64(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter, 3, I64(bFlag)+I64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage)<<1)
+ Xsqlite3_step(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter)
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter)
+ Xsqlite3_bind_null(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter, 2)
+ }
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage = 0
+}
+
+func fts5WriteBtreeTerm(tls *libc.TLS, p uintptr, pWriter uintptr, nTerm int32, pTerm uintptr) {
+ fts5WriteFlushBtree(tls, p, pWriter)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ sqlite3Fts5BufferSet(tls, p+52, pWriter+96, nTerm, pTerm)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage = (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fpgno
+ }
+}
+
+func fts5WriteBtreeNoTerm(tls *libc.TLS, p uintptr, pWriter uintptr) {
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage != 0 && (*Fts5DlidxWriter)(unsafe.Pointer((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx)).Fbuf.Fn > 0 {
+ var pDlidx uintptr = (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx
+
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+16, int64(0))
+ }
+
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnEmpty++
+}
+
+func fts5DlidxExtractFirstRowid(tls *libc.TLS, pBuf uintptr) I64 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var iOff int32
+
+ iOff = 1 + int32(sqlite3Fts5GetVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+1, bp))
+ sqlite3Fts5GetVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr(iOff), bp)
+ return *(*I64)(unsafe.Pointer(bp))
+}
+
+func fts5WriteDlidxAppend(tls *libc.TLS, p uintptr, pWriter uintptr, iRowid I64) {
+ var i int32
+ var bDone int32 = 0
+
+ for i = 0; (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bDone == 0; i++ {
+ var iVal I64
+ var pDlidx uintptr = (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx + uintptr(i)*32
+
+ if (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fn >= (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz {
+ *(*U8)(unsafe.Pointer((*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fp)) = U8(0x01)
+ fts5DataWrite(tls, p,
+ I64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(1)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+I64(i)<<FTS5_DATA_PAGE_B+I64((*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fpgno),
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fp, (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fbuf.Fn)
+ fts5WriteDlidxGrow(tls, p, pWriter, i+2)
+ pDlidx = (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx + uintptr(i)*32
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx+1*32)).Fbuf.Fn == 0 {
+ var iFirst I64 = fts5DlidxExtractFirstRowid(tls, pDlidx+16)
+
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx + 1*32)).Fpgno = (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fpgno
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+1*32+16, int64(0))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+1*32+16, int64((*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fpgno))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+1*32+16, iFirst)
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx + 1*32)).FbPrevValid = 1
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx + 1*32)).FiPrev = iFirst
+ }
+
+ sqlite3Fts5BufferZero(tls, pDlidx+16)
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FbPrevValid = 0
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).Fpgno++
+ } else {
+ bDone = 1
+ }
+
+ if (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FbPrevValid != 0 {
+ iVal = iRowid - (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FiPrev
+ } else {
+ var iPgno I64 = func() int64 {
+ if i == 0 {
+ return int64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fpgno)
+ }
+ return int64((*Fts5DlidxWriter)(unsafe.Pointer(pDlidx + libc.UintptrFromInt32(-1)*32)).Fpgno)
+ }()
+
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+16, libc.BoolInt64(!(bDone != 0)))
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+16, iPgno)
+ iVal = iRowid
+ }
+
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pDlidx+16, iVal)
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FbPrevValid = 1
+ (*Fts5DlidxWriter)(unsafe.Pointer(pDlidx)).FiPrev = iRowid
+ }
+}
+
+func fts5WriteFlushLeaf(tls *libc.TLS, p uintptr, pWriter uintptr) {
+ var pPage uintptr = pWriter + 8
+ var iRowid I64
+
+ fts5PutU16(tls, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fp+2, U16((*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn))
+
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage != 0 {
+ fts5WriteBtreeNoTerm(tls, p, pWriter)
+ } else {
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pPage+8, uint32((*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgidx.Fn), (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgidx.Fp)
+ }
+
+ iRowid = I64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64((*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgno)
+ fts5DataWrite(tls, p, iRowid, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fp, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn)
+
+ sqlite3Fts5BufferZero(tls, pPage+8)
+ sqlite3Fts5BufferZero(tls, pPage+24)
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pPage+8, uint32(4), uintptr(unsafe.Pointer(&zero)))
+ (*Fts5PageWriter)(unsafe.Pointer(pPage)).FiPrevPgidx = 0
+ (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgno++
+
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnLeafWritten++
+
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage = U8(1)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage = U8(1)
+}
+
+var zero = [4]U8{U8(0x00), U8(0x00), U8(0x00), U8(0x00)}
+
+func fts5WriteAppendTerm(tls *libc.TLS, p uintptr, pWriter uintptr, nTerm int32, pTerm uintptr) {
+ var nPrefix int32
+ var pPage uintptr = pWriter + 8
+ var pPgidx uintptr = pWriter + 8 + 24
+ var nMin int32 = func() int32 {
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fterm.Fn < nTerm {
+ return (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fterm.Fn
+ }
+ return nTerm
+ }()
+
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn+(*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn+nTerm+2 >= (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz {
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn > 4 {
+ fts5WriteFlushLeaf(tls, p, pWriter)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return
+ }
+ }
+ if !(U32((*Fts5Buffer)(unsafe.Pointer(pPage+8)).Fn)+U32(nTerm+FTS5_DATA_PADDING) <= U32((*Fts5Buffer)(unsafe.Pointer(pPage+8)).FnSpace)) {
+ sqlite3Fts5BufferSize(tls, p+52, pPage+8, uint32(nTerm+FTS5_DATA_PADDING+(*Fts5Buffer)(unsafe.Pointer(pPage+8)).Fn))
+ }
+ }
+
+ *(*int32)(unsafe.Pointer(pPgidx + 8)) += sqlite3Fts5PutVarint(tls,
+ (*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn), uint64((*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn-(*Fts5PageWriter)(unsafe.Pointer(pPage)).FiPrevPgidx))
+ (*Fts5PageWriter)(unsafe.Pointer(pPage)).FiPrevPgidx = (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn
+
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage != 0 {
+ nPrefix = 0
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgno != 1 {
+ var n int32 = nTerm
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fterm.Fn != 0 {
+ n = 1 + fts5PrefixCompress(tls, nMin, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fterm.Fp, pTerm)
+ }
+ fts5WriteBtreeTerm(tls, p, pWriter, n, pTerm)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ return
+ }
+ pPage = pWriter + 8
+ }
+ } else {
+ nPrefix = fts5PrefixCompress(tls, nMin, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fterm.Fp, pTerm)
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pPage+8, I64(nPrefix))
+ }
+
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pPage+8, I64(nTerm)-I64(nPrefix))
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pPage+8, uint32(nTerm-nPrefix), pTerm+uintptr(nPrefix))
+
+ sqlite3Fts5BufferSet(tls, p+52, pPage+40, nTerm, pTerm)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage = U8(0)
+
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage = U8(0)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInDoclist = U8(1)
+
+ (*Fts5DlidxWriter)(unsafe.Pointer((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx)).Fpgno = (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgno
+}
+
+func fts5WriteAppendRowid(tls *libc.TLS, p uintptr, pWriter uintptr, iRowid I64) {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pPage uintptr = pWriter + 8
+
+ if (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn+(*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgidx.Fn >= (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz {
+ fts5WriteFlushLeaf(tls, p, pWriter)
+ }
+
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage != 0 {
+ fts5PutU16(tls, (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fp, U16((*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn))
+ fts5WriteDlidxAppend(tls, p, pWriter, iRowid)
+ }
+
+ if (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInDoclist != 0 || (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage != 0 {
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pPage+8, iRowid)
+ } else {
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pPage+8, int64(U64(I64(U64(iRowid)))-U64((*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiPrevRowid)))
+ }
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiPrevRowid = iRowid
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInDoclist = U8(0)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstRowidInPage = U8(0)
+ }
+}
+
+func fts5WriteAppendPoslistData(tls *libc.TLS, p uintptr, pWriter uintptr, aData uintptr, nData int32) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pPage uintptr = pWriter + 8
+ var a uintptr = aData
+ var n int32 = nData
+
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK &&
+ (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn+(*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgidx.Fn+n >= (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz {
+ var nReq int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz - (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fbuf.Fn - (*Fts5PageWriter)(unsafe.Pointer(pPage)).Fpgidx.Fn
+ var nCopy int32 = 0
+ for nCopy < nReq {
+ nCopy = nCopy + int32(sqlite3Fts5GetVarint(tls, a+uintptr(nCopy), bp))
+ }
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pPage+8, uint32(nCopy), a)
+ a += uintptr(nCopy)
+ n = n - nCopy
+ fts5WriteFlushLeaf(tls, p, pWriter)
+ }
+ if n > 0 {
+ sqlite3Fts5BufferAppendBlob(tls, p+52, pPage+8, uint32(n), a)
+ }
+}
+
+func fts5WriteFinish(tls *libc.TLS, p uintptr, pWriter uintptr, pnLeaf uintptr) {
+ var i int32
+ var pLeaf uintptr = pWriter + 8
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ if (*Fts5PageWriter)(unsafe.Pointer(pLeaf)).Fbuf.Fn > 4 {
+ fts5WriteFlushLeaf(tls, p, pWriter)
+ }
+ *(*int32)(unsafe.Pointer(pnLeaf)) = (*Fts5PageWriter)(unsafe.Pointer(pLeaf)).Fpgno - 1
+ if (*Fts5PageWriter)(unsafe.Pointer(pLeaf)).Fpgno > 1 {
+ fts5WriteFlushBtree(tls, p, pWriter)
+ }
+ }
+ sqlite3Fts5BufferFree(tls, pLeaf+40)
+ sqlite3Fts5BufferFree(tls, pLeaf+8)
+ sqlite3Fts5BufferFree(tls, pLeaf+24)
+ sqlite3Fts5BufferFree(tls, pWriter+96)
+
+ for i = 0; i < (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx; i++ {
+ sqlite3Fts5BufferFree(tls, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx+uintptr(i)*32+16)
+ }
+ Xsqlite3_free(tls, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx)
+}
+
+func fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var nBuffer int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz + FTS5_DATA_PADDING
+
+ libc.X__builtin___memset_chk(tls, pWriter, 0, uint64(unsafe.Sizeof(Fts5SegWriter{})), libc.X__builtin_object_size(tls, pWriter, 0))
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiSegid = iSegid
+
+ fts5WriteDlidxGrow(tls, p, pWriter, 1)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fpgno = 1
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage = U8(1)
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage = 1
+
+ sqlite3Fts5BufferSize(tls, p+52, pWriter+8+24, uint32(nBuffer))
+ sqlite3Fts5BufferSize(tls, p+52, pWriter+8+8, uint32(nBuffer))
+
+ if (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) {
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls,
+ ts+35532,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName)))
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ libc.X__builtin___memset_chk(tls, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fbuf.Fp, 0, uint64(4), libc.X__builtin_object_size(tls, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fbuf.Fp, 0))
+ (*Fts5SegWriter)(unsafe.Pointer(pWriter)).Fwriter.Fbuf.Fn = 4
+
+ Xsqlite3_bind_int(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter, 1, (*Fts5SegWriter)(unsafe.Pointer(pWriter)).FiSegid)
+ }
+}
+
+func fts5TrimSegments(tls *libc.TLS, p uintptr, pIter uintptr) {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var i int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+ for i = 0; i < (*Fts5Iter)(unsafe.Pointer(pIter)).FnSeg && (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK; i++ {
+ var pSeg uintptr = pIter + 96 + uintptr(i)*120
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg == uintptr(0) {
+ } else if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf == uintptr(0) {
+ (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FpgnoLast = 0
+ (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FpgnoFirst = 0
+ } else {
+ var iOff int32 = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafOffset
+ var iLeafRowid I64
+ var pData uintptr
+ var iId int32 = (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FiSegid
+ *(*[4]U8)(unsafe.Pointer(bp + 16)) = [4]U8{U8(0x00), U8(0x00), U8(0x00), U8(0x00)}
+
+ iLeafRowid = I64(iId)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno)
+ pData = fts5LeafRead(tls, p, iLeafRowid)
+ if pData != 0 {
+ if iOff > (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ sqlite3Fts5BufferZero(tls, bp)
+ if !(U32((*Fts5Buffer)(unsafe.Pointer(bp)).Fn)+U32((*Fts5Data)(unsafe.Pointer(pData)).Fnn) <= U32((*Fts5Buffer)(unsafe.Pointer(bp)).FnSpace)) {
+ sqlite3Fts5BufferSize(tls, p+52, bp, uint32((*Fts5Data)(unsafe.Pointer(pData)).Fnn+(*Fts5Buffer)(unsafe.Pointer(bp)).Fn))
+ }
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp, uint32(unsafe.Sizeof([4]U8{})), bp+16)
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fn))
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp, uint32((*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fn), (*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fp)
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp, uint32((*Fts5Data)(unsafe.Pointer(pData)).FszLeaf-iOff), (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr(iOff))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ fts5PutU16(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+2, U16((*Fts5Buffer)(unsafe.Pointer(bp)).Fn))
+ }
+
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, int64(4))
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiLeafPgno == (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno &&
+ (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiEndofDoclist < (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf &&
+ (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff <= (*Fts5Data)(unsafe.Pointer(pData)).Fnn {
+ var nDiff int32 = (*Fts5Data)(unsafe.Pointer(pData)).FszLeaf - (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiEndofDoclist
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp, I64((*Fts5Buffer)(unsafe.Pointer(bp)).Fn)-int64(1)-I64(nDiff)-int64(4))
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp, uint32((*Fts5Data)(unsafe.Pointer(pData)).Fnn-(*Fts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff), (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr((*Fts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff))
+ }
+
+ (*Fts5StructureSegment)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FpgnoFirst = (*Fts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno
+ fts5DataDelete(tls, p, I64(iId)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+int64(1), iLeafRowid)
+ fts5DataWrite(tls, p, iLeafRowid, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp)).Fn)
+ }
+ fts5DataRelease(tls, pData)
+ }
+ }
+ }
+ sqlite3Fts5BufferFree(tls, bp)
+}
+
+func fts5MergeChunkCallback(tls *libc.TLS, p uintptr, pCtx uintptr, pChunk uintptr, nChunk int32) {
+ var pWriter uintptr = pCtx
+ fts5WriteAppendPoslistData(tls, p, pWriter, pChunk, nChunk)
+}
+
+func fts5IndexMergeLevel(tls *libc.TLS, p uintptr, ppStruct uintptr, iLvl int32, pnRem uintptr) {
+ bp := tls.Alloc(148)
+ defer tls.Free(148)
+
+ var pStruct uintptr = *(*uintptr)(unsafe.Pointer(ppStruct))
+ var pLvl uintptr = pStruct + 24 + uintptr(iLvl)*16
+ var pLvlOut uintptr
+ *(*uintptr)(unsafe.Pointer(bp + 136)) = uintptr(0)
+ var nRem int32
+ if pnRem != 0 {
+ nRem = *(*int32)(unsafe.Pointer(pnRem))
+ } else {
+ nRem = 0
+ }
+ var nInput int32
+
+ var pSeg uintptr
+
+ var bOldest int32
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail
+ var flags int32 = FTS5INDEX_QUERY_NOOUTPUT
+ var bTermWritten int32 = 0
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5SegWriter{})), libc.X__builtin_object_size(tls, bp, 0))
+ libc.X__builtin___memset_chk(tls, bp+120, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp+120, 0))
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge != 0 {
+ pLvlOut = pStruct + 24 + uintptr(iLvl+1)*16
+
+ nInput = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge
+ pSeg = (*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FaSeg + uintptr((*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FnSeg-1)*12
+
+ fts5WriteInit(tls, p, bp, (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)
+ (*Fts5SegWriter)(unsafe.Pointer(bp)).Fwriter.Fpgno = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast + 1
+ (*Fts5SegWriter)(unsafe.Pointer(bp)).FiBtPage = 0
+ } else {
+ var iSegid int32 = fts5AllocateSegid(tls, p, pStruct)
+
+ if iLvl == (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel-1 {
+ fts5StructureAddLevel(tls, p+52, ppStruct)
+ pStruct = *(*uintptr)(unsafe.Pointer(ppStruct))
+ }
+ fts5StructureExtendLevel(tls, p+52, pStruct, iLvl+1, 1, 0)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+ pLvl = pStruct + 24 + uintptr(iLvl)*16
+ pLvlOut = pStruct + 24 + uintptr(iLvl+1)*16
+
+ fts5WriteInit(tls, p, bp, iSegid)
+
+ pSeg = (*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FaSeg + uintptr((*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FnSeg)*12
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FnSeg++
+ (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst = 1
+ (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid = iSegid
+ (*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment++
+
+ nInput = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg
+ }
+ bOldest = libc.Bool32((*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FnSeg == 1 && (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel == iLvl+2)
+
+ for fts5MultiIterNew(tls, p, pStruct, flags, uintptr(0), uintptr(0), 0, iLvl, nInput, bp+136); fts5MultiIterEof(tls, p, *(*uintptr)(unsafe.Pointer(bp + 136))) == 0; fts5MultiIterNext(tls, p, *(*uintptr)(unsafe.Pointer(bp + 136)), 0, int64(0)) {
+ var pSegIter uintptr = *(*uintptr)(unsafe.Pointer(bp + 136)) + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 136)))).FaFirst+1*4)).FiFirst)*120
+ var nPos int32
+
+ var pTerm uintptr
+
+ pTerm = fts5MultiIterTerm(tls, *(*uintptr)(unsafe.Pointer(bp + 136)), bp+144)
+ if *(*int32)(unsafe.Pointer(bp + 144)) != (*Fts5Buffer)(unsafe.Pointer(bp+120)).Fn || func() int32 {
+ if *(*int32)(unsafe.Pointer(bp + 144)) <= 0 {
+ return 0
+ }
+ return libc.Xmemcmp(tls, pTerm, (*Fts5Buffer)(unsafe.Pointer(bp+120)).Fp, uint64(*(*int32)(unsafe.Pointer(bp + 144))))
+ }() != 0 {
+ if pnRem != 0 && (*Fts5SegWriter)(unsafe.Pointer(bp)).FnLeafWritten > nRem {
+ break
+ }
+ sqlite3Fts5BufferSet(tls, p+52, bp+120, *(*int32)(unsafe.Pointer(bp + 144)), pTerm)
+ bTermWritten = 0
+ }
+
+ if (*Fts5SegIter)(unsafe.Pointer(pSegIter)).FnPos == 0 && (bOldest != 0 || int32((*Fts5SegIter)(unsafe.Pointer(pSegIter)).FbDel) == 0) {
+ continue
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bTermWritten == 0 {
+ fts5WriteAppendTerm(tls, p, bp, *(*int32)(unsafe.Pointer(bp + 144)), pTerm)
+ bTermWritten = 1
+ }
+
+ fts5WriteAppendRowid(tls, p, bp, fts5MultiIterRowid(tls, *(*uintptr)(unsafe.Pointer(bp + 136))))
+
+ if eDetail == FTS5_DETAIL_NONE {
+ if (*Fts5SegIter)(unsafe.Pointer(pSegIter)).FbDel != 0 {
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp+8+8, int64(0))
+ if (*Fts5SegIter)(unsafe.Pointer(pSegIter)).FnPos > 0 {
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp+8+8, int64(0))
+ }
+ }
+ } else {
+ nPos = (*Fts5SegIter)(unsafe.Pointer(pSegIter)).FnPos*2 + int32((*Fts5SegIter)(unsafe.Pointer(pSegIter)).FbDel)
+ sqlite3Fts5BufferAppendVarint(tls, p+52, bp+8+8, I64(nPos))
+ fts5ChunkIterate(tls, p, pSegIter, bp, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32)
+ }{fts5MergeChunkCallback})))
+ }
+ }
+
+ fts5WriteFinish(tls, p, bp, pSeg+8)
+
+ if fts5MultiIterEof(tls, p, *(*uintptr)(unsafe.Pointer(bp + 136))) != 0 {
+ var i int32
+
+ for i = 0; i < nInput; i++ {
+ fts5DataRemoveSegment(tls, p, (*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(i)*12)).FiSegid)
+ }
+
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg != nInput {
+ var nMove int32 = int32(uint64((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg-nInput) * uint64(unsafe.Sizeof(Fts5StructureSegment{})))
+ libc.X__builtin___memmove_chk(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(nInput)*12, uint64(nMove), libc.X__builtin_object_size(tls, (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, 0))
+ }
+ *(*int32)(unsafe.Pointer(pStruct + 16)) -= nInput
+ *(*int32)(unsafe.Pointer(pLvl + 4)) -= nInput
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge = 0
+ if (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast == 0 {
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvlOut)).FnSeg--
+ (*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment--
+ }
+ } else {
+ fts5TrimSegments(tls, p, *(*uintptr)(unsafe.Pointer(bp + 136)))
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge = nInput
+ }
+
+ fts5MultiIterFree(tls, *(*uintptr)(unsafe.Pointer(bp + 136)))
+ sqlite3Fts5BufferFree(tls, bp+120)
+ if pnRem != 0 {
+ *(*int32)(unsafe.Pointer(pnRem)) -= (*Fts5SegWriter)(unsafe.Pointer(bp)).FnLeafWritten
+ }
+}
+
+func fts5IndexMerge(tls *libc.TLS, p uintptr, ppStruct uintptr, nPg int32, nMin int32) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = nPg
+ var bRet int32 = 0
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(ppStruct))
+ for *(*int32)(unsafe.Pointer(bp + 8)) > 0 && (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var iLvl int32
+ var iBestLvl int32 = 0
+ var nBest int32 = 0
+
+ for iLvl = 0; iLvl < (*Fts5Structure)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnLevel; iLvl++ {
+ var pLvl uintptr = *(*uintptr)(unsafe.Pointer(bp)) + 24 + uintptr(iLvl)*16
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge != 0 {
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge > nBest {
+ iBestLvl = iLvl
+ nBest = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnMerge
+ }
+ break
+ }
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg > nBest {
+ nBest = (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg
+ iBestLvl = iLvl
+ }
+ }
+
+ if nBest < nMin && (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))+24+uintptr(iBestLvl)*16)).FnMerge == 0 {
+ break
+ }
+ bRet = 1
+ fts5IndexMergeLevel(tls, p, bp, iBestLvl, bp+8)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))+24+uintptr(iBestLvl)*16)).FnMerge == 0 {
+ fts5StructurePromote(tls, p, iBestLvl+1, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppStruct)) = *(*uintptr)(unsafe.Pointer(bp))
+ return bRet
+}
+
+func fts5IndexAutomerge(tls *libc.TLS, p uintptr, ppStruct uintptr, nLeaf int32) {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnAutomerge > 0 && *(*uintptr)(unsafe.Pointer(ppStruct)) != uintptr(0) {
+ var pStruct uintptr = *(*uintptr)(unsafe.Pointer(ppStruct))
+ var nWrite U64
+ var nWork int32
+ var nRem int32
+
+ nWrite = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnWriteCounter
+ nWork = int32((nWrite+U64(nLeaf))/U64((*Fts5Index)(unsafe.Pointer(p)).FnWorkUnit) - nWrite/U64((*Fts5Index)(unsafe.Pointer(p)).FnWorkUnit))
+ *(*U64)(unsafe.Pointer(pStruct + 8)) += U64(nLeaf)
+ nRem = (*Fts5Index)(unsafe.Pointer(p)).FnWorkUnit * nWork * (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel
+
+ fts5IndexMerge(tls, p, ppStruct, nRem, (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnAutomerge)
+ }
+}
+
+func fts5IndexCrisismerge(tls *libc.TLS, p uintptr, ppStruct uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var nCrisis int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnCrisisMerge
+ *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(ppStruct))
+ var iLvl int32 = 0
+
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))+24+uintptr(iLvl)*16)).FnSeg >= nCrisis {
+ fts5IndexMergeLevel(tls, p, bp, iLvl, uintptr(0))
+
+ fts5StructurePromote(tls, p, iLvl+1, *(*uintptr)(unsafe.Pointer(bp)))
+ iLvl++
+ }
+ *(*uintptr)(unsafe.Pointer(ppStruct)) = *(*uintptr)(unsafe.Pointer(bp))
+}
+
+func fts5IndexReturn(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = (*Fts5Index)(unsafe.Pointer(p)).Frc
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_OK
+ return rc
+}
+
+type Fts5FlushCtx1 = struct {
+ FpIdx uintptr
+ Fwriter Fts5SegWriter
+}
+
+type Fts5FlushCtx = Fts5FlushCtx1
+
+func fts5PoslistPrefix(tls *libc.TLS, aBuf uintptr, nMax int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var ret int32
+
+ ret = sqlite3Fts5GetVarint32(tls, aBuf, bp)
+ if ret < nMax {
+ for 1 != 0 {
+ var i int32 = sqlite3Fts5GetVarint32(tls, aBuf+uintptr(ret), bp)
+ if ret+i > nMax {
+ break
+ }
+ ret = ret + i
+ }
+ }
+ return ret
+}
+
+func fts5FlushOneHash(tls *libc.TLS, p uintptr) {
+ bp := tls.Alloc(176)
+ defer tls.Free(176)
+
+ var pHash uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpHash
+
+ var iSegid int32
+ *(*int32)(unsafe.Pointer(bp + 160)) = 0
+
+ *(*uintptr)(unsafe.Pointer(bp + 168)) = fts5StructureRead(tls, p)
+ iSegid = fts5AllocateSegid(tls, p, *(*uintptr)(unsafe.Pointer(bp + 168)))
+ fts5StructureInvalidate(tls, p)
+
+ if iSegid != 0 {
+ var pgsz int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).Fpgsz
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail
+ var pSeg uintptr
+ var pBuf uintptr
+ var pPgidx uintptr
+
+ fts5WriteInit(tls, p, bp, iSegid)
+
+ pBuf = bp + 8 + 8
+ pPgidx = bp + 8 + 24
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = sqlite3Fts5HashScanInit(tls, pHash, uintptr(0), 0)
+ }
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && 0 == sqlite3Fts5HashScanEof(tls, pHash) {
+ sqlite3Fts5HashScanEntry(tls, pHash, bp+120, bp+128, bp+136)
+ fts5WriteAppendTerm(tls, p, bp, int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 120)))), *(*uintptr)(unsafe.Pointer(bp + 120)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ break
+ }
+
+ if pgsz >= (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn+*(*int32)(unsafe.Pointer(bp + 136))+1 {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), *(*uintptr)(unsafe.Pointer(bp + 128)), uint64(*(*int32)(unsafe.Pointer(bp + 136))), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += *(*int32)(unsafe.Pointer(bp + 136))
+ }
+
+ } else {
+ var iRowid I64 = int64(0)
+ *(*U64)(unsafe.Pointer(bp + 144)) = uint64(0)
+ var iOff int32 = 0
+
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && iOff < *(*int32)(unsafe.Pointer(bp + 136)) {
+ iOff = iOff + int32(sqlite3Fts5GetVarint(tls, *(*uintptr)(unsafe.Pointer(bp + 128))+uintptr(iOff), bp+144))
+ iRowid = I64(U64(iRowid) + *(*U64)(unsafe.Pointer(bp + 144)))
+
+ if (*Fts5SegWriter)(unsafe.Pointer(bp)).FbFirstRowidInPage != 0 {
+ fts5PutU16(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp, U16((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iRowid))
+ (*Fts5SegWriter)(unsafe.Pointer(bp)).FbFirstRowidInPage = U8(0)
+ fts5WriteDlidxAppend(tls, p, bp, iRowid)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK {
+ break
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), *(*U64)(unsafe.Pointer(bp + 144)))
+ }
+
+ if eDetail == FTS5_DETAIL_NONE {
+ if iOff < *(*int32)(unsafe.Pointer(bp + 136)) && int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)) + uintptr(iOff)))) == 0 {
+ *(*U8)(unsafe.Pointer((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr(libc.PostIncInt32(&(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn, 1)))) = U8(0)
+ iOff++
+ if iOff < *(*int32)(unsafe.Pointer(bp + 136)) && int32(*(*U8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)) + uintptr(iOff)))) == 0 {
+ *(*U8)(unsafe.Pointer((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr(libc.PostIncInt32(&(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn, 1)))) = U8(0)
+ iOff++
+ }
+ }
+ if (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn >= pgsz {
+ fts5WriteFlushLeaf(tls, p, bp)
+ }
+ } else {
+ var nCopy int32 = fts5GetPoslistSize(tls, *(*uintptr)(unsafe.Pointer(bp + 128))+uintptr(iOff), bp+152, bp+156)
+ nCopy = nCopy + *(*int32)(unsafe.Pointer(bp + 152))
+ if (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn+nCopy <= pgsz {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), *(*uintptr)(unsafe.Pointer(bp + 128))+uintptr(iOff), uint64(nCopy), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += nCopy
+ }
+
+ } else {
+ var pPoslist uintptr = *(*uintptr)(unsafe.Pointer(bp + 128)) + uintptr(iOff)
+ var iPos int32 = 0
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var nSpace int32 = pgsz - (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn - (*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn
+ var n int32 = 0
+ if nCopy-iPos <= nSpace {
+ n = nCopy - iPos
+ } else {
+ n = fts5PoslistPrefix(tls, pPoslist+uintptr(iPos), nSpace)
+ }
+
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), pPoslist+uintptr(iPos), uint64(n), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += n
+ }
+
+ iPos = iPos + n
+ if (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*Fts5Buffer)(unsafe.Pointer(pPgidx)).Fn >= pgsz {
+ fts5WriteFlushLeaf(tls, p, bp)
+ }
+ if iPos >= nCopy {
+ break
+ }
+ }
+ }
+ iOff = iOff + nCopy
+ }
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ sqlite3Fts5HashScanNext(tls, pHash)
+ }
+ }
+ sqlite3Fts5HashClear(tls, pHash)
+ fts5WriteFinish(tls, p, bp, bp+160)
+
+ if (*Fts5Structure)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 168)))).FnLevel == 0 {
+ fts5StructureAddLevel(tls, p+52, bp+168)
+ }
+ fts5StructureExtendLevel(tls, p+52, *(*uintptr)(unsafe.Pointer(bp + 168)), 0, 1, 0)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ pSeg = (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 168))+24)).FaSeg + uintptr(libc.PostIncInt32(&(*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 168))+24)).FnSeg, 1))*12
+ (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid = iSegid
+ (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst = 1
+ (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast = *(*int32)(unsafe.Pointer(bp + 160))
+ (*Fts5Structure)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 168)))).FnSegment++
+ }
+ fts5StructurePromote(tls, p, 0, *(*uintptr)(unsafe.Pointer(bp + 168)))
+ }
+
+ fts5IndexAutomerge(tls, p, bp+168, *(*int32)(unsafe.Pointer(bp + 160)))
+ fts5IndexCrisismerge(tls, p, bp+168)
+ fts5StructureWrite(tls, p, *(*uintptr)(unsafe.Pointer(bp + 168)))
+ fts5StructureRelease(tls, *(*uintptr)(unsafe.Pointer(bp + 168)))
+}
+
+func fts5IndexFlush(tls *libc.TLS, p uintptr) {
+ if (*Fts5Index)(unsafe.Pointer(p)).FnPendingData != 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).FnPendingData = 0
+ fts5FlushOneHash(tls, p)
+ }
+}
+
+func fts5IndexOptimizeStruct(tls *libc.TLS, p uintptr, pStruct uintptr) uintptr {
+ var pNew uintptr = uintptr(0)
+ var nByte Sqlite3_int64 = Sqlite3_int64(unsafe.Sizeof(Fts5Structure{}))
+ var nSeg int32 = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnSegment
+ var i int32
+
+ if nSeg < 2 {
+ return uintptr(0)
+ }
+ for i = 0; i < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; i++ {
+ var nThis int32 = (*Fts5StructureLevel)(unsafe.Pointer(pStruct + 24 + uintptr(i)*16)).FnSeg
+ if nThis == nSeg || nThis == nSeg-1 && (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(i)*16)).FnMerge == nThis {
+ fts5StructureRef(tls, pStruct)
+ return pStruct
+ }
+
+ }
+
+ nByte = Sqlite3_int64(uint64(nByte) + uint64((*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel+1)*uint64(unsafe.Sizeof(Fts5StructureLevel{})))
+ pNew = sqlite3Fts5MallocZero(tls, p+52, nByte)
+
+ if pNew != 0 {
+ var pLvl uintptr
+ nByte = Sqlite3_int64(uint64(nSeg) * uint64(unsafe.Sizeof(Fts5StructureSegment{})))
+ (*Fts5Structure)(unsafe.Pointer(pNew)).FnLevel = func() int32 {
+ if (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel+1 < FTS5_MAX_LEVEL {
+ return (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel + 1
+ }
+ return FTS5_MAX_LEVEL
+ }()
+ (*Fts5Structure)(unsafe.Pointer(pNew)).FnRef = 1
+ (*Fts5Structure)(unsafe.Pointer(pNew)).FnWriteCounter = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnWriteCounter
+ pLvl = pNew + 24 + uintptr((*Fts5Structure)(unsafe.Pointer(pNew)).FnLevel-1)*16
+ (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg = sqlite3Fts5MallocZero(tls, p+52, nByte)
+ if (*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg != 0 {
+ var iLvl int32
+ var iSeg int32
+ var iSegOut int32 = 0
+
+ for iLvl = (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel - 1; iLvl >= 0; iLvl-- {
+ for iSeg = 0; iSeg < (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FnSeg; iSeg++ {
+ *(*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg + uintptr(iSegOut)*12)) = *(*Fts5StructureSegment)(unsafe.Pointer((*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FaSeg + uintptr(iSeg)*12))
+ iSegOut++
+ }
+ }
+ (*Fts5Structure)(unsafe.Pointer(pNew)).FnSegment = libc.AssignPtrInt32(pLvl+4, nSeg)
+ } else {
+ Xsqlite3_free(tls, pNew)
+ pNew = uintptr(0)
+ }
+ }
+
+ return pNew
+}
+
+func sqlite3Fts5IndexOptimize(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pStruct uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ fts5IndexFlush(tls, p)
+ pStruct = fts5StructureRead(tls, p)
+ fts5StructureInvalidate(tls, p)
+
+ if pStruct != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = fts5IndexOptimizeStruct(tls, p, pStruct)
+ }
+ fts5StructureRelease(tls, pStruct)
+
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ var iLvl int32
+ for iLvl = 0; (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))+24+uintptr(iLvl)*16)).FnSeg == 0; iLvl++ {
+ }
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5StructureLevel)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))+24+uintptr(iLvl)*16)).FnSeg > 0 {
+ *(*int32)(unsafe.Pointer(bp + 8)) = FTS5_OPT_WORK_UNIT
+ fts5IndexMergeLevel(tls, p, bp, iLvl, bp+8)
+ }
+
+ fts5StructureWrite(tls, p, *(*uintptr)(unsafe.Pointer(bp)))
+ fts5StructureRelease(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexMerge(tls *libc.TLS, p uintptr, nMerge int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = fts5StructureRead(tls, p)
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ var nMin int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnUsermerge
+ fts5StructureInvalidate(tls, p)
+ if nMerge < 0 {
+ var pNew uintptr = fts5IndexOptimizeStruct(tls, p, *(*uintptr)(unsafe.Pointer(bp)))
+ fts5StructureRelease(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ *(*uintptr)(unsafe.Pointer(bp)) = pNew
+ nMin = 2
+ nMerge = nMerge * -1
+ }
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 && (*Fts5Structure)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnLevel != 0 {
+ if fts5IndexMerge(tls, p, bp, nMerge, nMin) != 0 {
+ fts5StructureWrite(tls, p, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+ fts5StructureRelease(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ return fts5IndexReturn(tls, p)
+}
+
+func fts5AppendRowid(tls *libc.TLS, p uintptr, iDelta U64, pUnused uintptr, pBuf uintptr) {
+ _ = pUnused
+ sqlite3Fts5BufferAppendVarint(tls, p+52, pBuf, I64(iDelta))
+}
+
+func fts5AppendPoslist(tls *libc.TLS, p uintptr, iDelta U64, pMulti uintptr, pBuf uintptr) {
+ var nData int32 = (*Fts5Iter)(unsafe.Pointer(pMulti)).Fbase.FnData
+ var nByte int32 = nData + 9 + 9 + FTS5_DATA_ZERO_PADDING
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && 0 == func() int32 {
+ if U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)+U32(nByte) <= U32((*Fts5Buffer)(unsafe.Pointer(pBuf)).FnSpace) {
+ return 0
+ }
+ return sqlite3Fts5BufferSize(tls, p+52, pBuf, uint32(nByte+(*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn))
+ }() {
+ {
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), iDelta)
+ }
+
+ {
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(nData*2))
+ }
+
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), (*Fts5Iter)(unsafe.Pointer(pMulti)).Fbase.FpData, uint64(nData), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ *(*int32)(unsafe.Pointer(pBuf + 8)) += nData
+ }
+
+ libc.X__builtin___memset_chk(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0, uint64(FTS5_DATA_ZERO_PADDING), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0))
+ }
+}
+
+func fts5DoclistIterNext(tls *libc.TLS, pIter uintptr) {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var p uintptr = (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist + uintptr((*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnSize) + uintptr((*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist)
+
+ if p >= (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaEof {
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = uintptr(0)
+ } else {
+ p += uintptr(sqlite3Fts5GetVarint(tls, p, bp))
+ *(*I64)(unsafe.Pointer(pIter + 8)) += *(*I64)(unsafe.Pointer(bp))
+
+ if int32(*(*U8)(unsafe.Pointer(p)))&0x80 != 0 {
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnSize = sqlite3Fts5GetVarint32(tls, p, bp+8)
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist = *(*int32)(unsafe.Pointer(bp + 8)) >> 1
+ } else {
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist = int32(*(*U8)(unsafe.Pointer(p))) >> 1
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnSize = 1
+ }
+
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = p
+ if (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist+uintptr((*Fts5DoclistIter)(unsafe.Pointer(pIter)).FnPoslist) > (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaEof {
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = uintptr(0)
+ }
+ }
+}
+
+func fts5DoclistIterInit(tls *libc.TLS, pBuf uintptr, pIter uintptr) {
+ libc.X__builtin___memset_chk(tls, pIter, 0, uint64(unsafe.Sizeof(Fts5DoclistIter{})), libc.X__builtin_object_size(tls, pIter, 0))
+ if (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn > 0 {
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaPoslist = (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp
+ (*Fts5DoclistIter)(unsafe.Pointer(pIter)).FaEof = (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr((*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn)
+ fts5DoclistIterNext(tls, pIter)
+ }
+}
+
+func fts5BufferSwap(tls *libc.TLS, p1 uintptr, p2 uintptr) {
+ var tmp = *(*Fts5Buffer)(unsafe.Pointer(p1))
+ *(*Fts5Buffer)(unsafe.Pointer(p1)) = *(*Fts5Buffer)(unsafe.Pointer(p2))
+ *(*Fts5Buffer)(unsafe.Pointer(p2)) = tmp
+}
+
+func fts5NextRowid(tls *libc.TLS, pBuf uintptr, piOff uintptr, piRowid uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var i int32 = *(*int32)(unsafe.Pointer(piOff))
+ if i >= (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn {
+ *(*int32)(unsafe.Pointer(piOff)) = -1
+ } else {
+ *(*int32)(unsafe.Pointer(piOff)) = i + int32(sqlite3Fts5GetVarint(tls, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr(i), bp))
+ *(*I64)(unsafe.Pointer(piRowid)) += I64(*(*U64)(unsafe.Pointer(bp)))
+ }
+}
+
+func fts5MergeRowidLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBuf uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = 0
+ *(*int32)(unsafe.Pointer(bp + 32)) = 0
+ *(*I64)(unsafe.Pointer(bp + 24)) = int64(0)
+ *(*I64)(unsafe.Pointer(bp + 40)) = int64(0)
+ var iOut I64 = int64(0)
+ var p2 uintptr = aBuf
+
+ _ = nBuf
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ sqlite3Fts5BufferSize(tls, p+52, bp, uint32((*Fts5Buffer)(unsafe.Pointer(p1)).Fn+(*Fts5Buffer)(unsafe.Pointer(p2)).Fn))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ return
+ }
+
+ fts5NextRowid(tls, p1, bp+16, bp+24)
+ fts5NextRowid(tls, p2, bp+32, bp+40)
+ for *(*int32)(unsafe.Pointer(bp + 16)) >= 0 || *(*int32)(unsafe.Pointer(bp + 32)) >= 0 {
+ if *(*int32)(unsafe.Pointer(bp + 16)) >= 0 && (*(*int32)(unsafe.Pointer(bp + 32)) < 0 || *(*I64)(unsafe.Pointer(bp + 24)) < *(*I64)(unsafe.Pointer(bp + 40))) {
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), uint64(*(*I64)(unsafe.Pointer(bp + 24))-iOut))
+ }
+
+ iOut = *(*I64)(unsafe.Pointer(bp + 24))
+ fts5NextRowid(tls, p1, bp+16, bp+24)
+ } else {
+ {
+ *(*int32)(unsafe.Pointer(bp + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), uint64(*(*I64)(unsafe.Pointer(bp + 40))-iOut))
+ }
+
+ iOut = *(*I64)(unsafe.Pointer(bp + 40))
+ if *(*int32)(unsafe.Pointer(bp + 16)) >= 0 && *(*I64)(unsafe.Pointer(bp + 24)) == *(*I64)(unsafe.Pointer(bp + 40)) {
+ fts5NextRowid(tls, p1, bp+16, bp+24)
+ }
+ fts5NextRowid(tls, p2, bp+32, bp+40)
+ }
+ }
+
+ fts5BufferSwap(tls, bp, p1)
+ sqlite3Fts5BufferFree(tls, bp)
+}
+
+type PrefixMerger1 = struct {
+ Fiter Fts5DoclistIter
+ FiPos I64
+ FiOff int32
+ F__ccgo_pad1 [4]byte
+ FaPos uintptr
+ FpNext uintptr
+}
+
+type PrefixMerger = PrefixMerger1
+
+func fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) {
+ if (*PrefixMerger)(unsafe.Pointer(p)).Fiter.FaPoslist != 0 {
+ var pp uintptr = ppHead
+ for *(*uintptr)(unsafe.Pointer(pp)) != 0 && (*PrefixMerger)(unsafe.Pointer(p)).Fiter.FiRowid > (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fiter.FiRowid {
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 56
+ }
+ (*PrefixMerger)(unsafe.Pointer(p)).FpNext = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+ }
+}
+
+func fts5PrefixMergerInsertByPosition(tls *libc.TLS, ppHead uintptr, p uintptr) {
+ if (*PrefixMerger)(unsafe.Pointer(p)).FiPos >= int64(0) {
+ var pp uintptr = ppHead
+ for *(*uintptr)(unsafe.Pointer(pp)) != 0 && (*PrefixMerger)(unsafe.Pointer(p)).FiPos > (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FiPos {
+ pp = *(*uintptr)(unsafe.Pointer(pp)) + 56
+ }
+ (*PrefixMerger)(unsafe.Pointer(p)).FpNext = *(*uintptr)(unsafe.Pointer(pp))
+ *(*uintptr)(unsafe.Pointer(pp)) = p
+ }
+}
+
+func fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBuf uintptr) {
+ bp := tls.Alloc(1072)
+ defer tls.Free(1072)
+
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = uintptr(0)
+ var i int32
+ var nOut int32 = 0
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 1032)) = Fts5Buffer{}
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 1048)) = Fts5Buffer{}
+ var iLastRowid I64 = int64(0)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(PrefixMerger{}))*uint64(nBuf+1), libc.X__builtin_object_size(tls, bp, 0))
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = bp + uintptr(nBuf)*64
+ fts5DoclistIterInit(tls, p1, *(*uintptr)(unsafe.Pointer(bp + 1024)))
+ for i = 0; i < nBuf; i++ {
+ fts5DoclistIterInit(tls, aBuf+uintptr(i)*16, bp+uintptr(i)*64)
+ fts5PrefixMergerInsertByRowid(tls, bp+1024, bp+uintptr(i)*64)
+ nOut = nOut + (*Fts5Buffer)(unsafe.Pointer(aBuf+uintptr(i)*16)).Fn
+ }
+ if nOut == 0 {
+ return
+ }
+ nOut = nOut + ((*Fts5Buffer)(unsafe.Pointer(p1)).Fn + 9 + 10*nBuf)
+
+ if sqlite3Fts5BufferSize(tls, p+52, bp+1032, uint32(nOut)) != 0 {
+ return
+ }
+
+ for *(*uintptr)(unsafe.Pointer(bp + 1024)) != 0 {
+ {
+ {
+ *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), U64((*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).Fiter.FiRowid)-U64(iLastRowid))
+ }
+ iLastRowid = (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).Fiter.FiRowid
+ }
+
+ if (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FpNext != 0 && iLastRowid == (*PrefixMerger)(unsafe.Pointer((*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FpNext)).Fiter.FiRowid {
+ *(*I64)(unsafe.Pointer(bp + 1064)) = int64(0)
+ var nTmp int32 = FTS5_DATA_ZERO_PADDING
+ var nMerge int32 = 0
+ var pSave uintptr = *(*uintptr)(unsafe.Pointer(bp + 1024))
+ var pThis uintptr = uintptr(0)
+ var nTail int32 = 0
+
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = uintptr(0)
+ for pSave != 0 && (*PrefixMerger)(unsafe.Pointer(pSave)).Fiter.FiRowid == iLastRowid {
+ var pNext uintptr = (*PrefixMerger)(unsafe.Pointer(pSave)).FpNext
+ (*PrefixMerger)(unsafe.Pointer(pSave)).FiOff = 0
+ (*PrefixMerger)(unsafe.Pointer(pSave)).FiPos = int64(0)
+ (*PrefixMerger)(unsafe.Pointer(pSave)).FaPos = (*PrefixMerger)(unsafe.Pointer(pSave)).Fiter.FaPoslist + uintptr((*PrefixMerger)(unsafe.Pointer(pSave)).Fiter.FnSize)
+ sqlite3Fts5PoslistNext64(tls, (*PrefixMerger)(unsafe.Pointer(pSave)).FaPos, (*PrefixMerger)(unsafe.Pointer(pSave)).Fiter.FnPoslist, pSave+40, pSave+32)
+ nTmp = nTmp + ((*PrefixMerger)(unsafe.Pointer(pSave)).Fiter.FnPoslist + 10)
+ nMerge++
+ fts5PrefixMergerInsertByPosition(tls, bp+1024, pSave)
+ pSave = pNext
+ }
+
+ if *(*uintptr)(unsafe.Pointer(bp + 1024)) == uintptr(0) || (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FpNext == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+
+ if sqlite3Fts5BufferSize(tls, p+52, bp+1048, uint32(nTmp+nMerge*10)) != 0 {
+ break
+ }
+ sqlite3Fts5BufferZero(tls, bp+1048)
+
+ pThis = *(*uintptr)(unsafe.Pointer(bp + 1024))
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = (*PrefixMerger)(unsafe.Pointer(pThis)).FpNext
+ sqlite3Fts5PoslistSafeAppend(tls, bp+1048, bp+1064, (*PrefixMerger)(unsafe.Pointer(pThis)).FiPos)
+ sqlite3Fts5PoslistNext64(tls, (*PrefixMerger)(unsafe.Pointer(pThis)).FaPos, (*PrefixMerger)(unsafe.Pointer(pThis)).Fiter.FnPoslist, pThis+40, pThis+32)
+ fts5PrefixMergerInsertByPosition(tls, bp+1024, pThis)
+
+ for (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FpNext != 0 {
+ pThis = *(*uintptr)(unsafe.Pointer(bp + 1024))
+ if (*PrefixMerger)(unsafe.Pointer(pThis)).FiPos != *(*I64)(unsafe.Pointer(bp + 1064)) {
+ sqlite3Fts5PoslistSafeAppend(tls, bp+1048, bp+1064, (*PrefixMerger)(unsafe.Pointer(pThis)).FiPos)
+ }
+ sqlite3Fts5PoslistNext64(tls, (*PrefixMerger)(unsafe.Pointer(pThis)).FaPos, (*PrefixMerger)(unsafe.Pointer(pThis)).Fiter.FnPoslist, pThis+40, pThis+32)
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = (*PrefixMerger)(unsafe.Pointer(pThis)).FpNext
+ fts5PrefixMergerInsertByPosition(tls, bp+1024, pThis)
+ }
+
+ if (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiPos != *(*I64)(unsafe.Pointer(bp + 1064)) {
+ sqlite3Fts5PoslistSafeAppend(tls, bp+1048, bp+1064, (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiPos)
+ }
+ nTail = (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).Fiter.FnPoslist - (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiOff
+
+ if (*Fts5Buffer)(unsafe.Pointer(bp+1048)).Fn+nTail > nTmp-FTS5_DATA_ZERO_PADDING {
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ break
+ }
+ {
+ *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += sqlite3Fts5PutVarint(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), uint64(((*Fts5Buffer)(unsafe.Pointer(bp+1048)).Fn+nTail)*2))
+ }
+
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*Fts5Buffer)(unsafe.Pointer(bp+1048)).Fp, uint64((*Fts5Buffer)(unsafe.Pointer(bp+1048)).Fn), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), 0))
+ *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += (*Fts5Buffer)(unsafe.Pointer(bp + 1048)).Fn
+ }
+
+ if nTail > 0 {
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FaPos+uintptr((*PrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiOff), uint64(nTail), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), 0))
+ *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += nTail
+ }
+
+ }
+
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = pSave
+ for i = 0; i < nBuf+1; i++ {
+ var pX uintptr = bp + uintptr(i)*64
+ if (*PrefixMerger)(unsafe.Pointer(pX)).Fiter.FaPoslist != 0 && (*PrefixMerger)(unsafe.Pointer(pX)).Fiter.FiRowid == iLastRowid {
+ fts5DoclistIterNext(tls, pX)
+ fts5PrefixMergerInsertByRowid(tls, bp+1024, pX)
+ }
+ }
+
+ } else {
+ var pThis uintptr = *(*uintptr)(unsafe.Pointer(bp + 1024))
+ var pI uintptr = pThis
+ {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*Fts5DoclistIter)(unsafe.Pointer(pI)).FaPoslist, uint64((*Fts5DoclistIter)(unsafe.Pointer(pI)).FnPoslist+(*Fts5DoclistIter)(unsafe.Pointer(pI)).FnSize), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), 0))
+ *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += (*Fts5DoclistIter)(unsafe.Pointer(pI)).FnPoslist + (*Fts5DoclistIter)(unsafe.Pointer(pI)).FnSize
+ }
+
+ fts5DoclistIterNext(tls, pI)
+ *(*uintptr)(unsafe.Pointer(bp + 1024)) = (*PrefixMerger)(unsafe.Pointer(pThis)).FpNext
+ fts5PrefixMergerInsertByRowid(tls, bp+1024, pThis)
+ }
+ }
+
+ sqlite3Fts5BufferFree(tls, p1)
+ sqlite3Fts5BufferFree(tls, bp+1048)
+ libc.X__builtin___memset_chk(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), 0, uint64(FTS5_DATA_ZERO_PADDING), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*Fts5Buffer)(unsafe.Pointer(bp+1032)).Fn), 0))
+ *(*Fts5Buffer)(unsafe.Pointer(p1)) = *(*Fts5Buffer)(unsafe.Pointer(bp + 1032))
+}
+
+func fts5SetupPrefixIter(tls *libc.TLS, p uintptr, bDesc int32, iIdx int32, pToken uintptr, nToken int32, pColset uintptr, ppIter uintptr) {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pStruct uintptr
+ var aBuf uintptr
+ var nBuf int32 = 32
+ var nMerge int32 = 1
+ var xMerge uintptr
+ var xAppend uintptr
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail == FTS5_DETAIL_NONE {
+ xMerge = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ }{fts5MergeRowidLists}))
+ xAppend = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, U64, uintptr, uintptr)
+ }{fts5AppendRowid}))
+ } else {
+ nMerge = FTS5_MERGE_NLIST - 1
+ nBuf = nMerge * 8
+ xMerge = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ }{fts5MergePrefixLists}))
+ xAppend = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, U64, uintptr, uintptr)
+ }{fts5AppendPoslist}))
+ }
+
+ aBuf = fts5IdxMalloc(tls, p, int64(uint64(unsafe.Sizeof(Fts5Buffer{}))*uint64(nBuf)))
+ pStruct = fts5StructureRead(tls, p)
+
+ if aBuf != 0 && pStruct != 0 {
+ var flags int32 = FTS5INDEX_QUERY_SCAN |
+ FTS5INDEX_QUERY_SKIPEMPTY |
+ FTS5INDEX_QUERY_NOOUTPUT
+ var i int32
+ var iLastRowid I64 = int64(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ var pData uintptr
+
+ *(*int32)(unsafe.Pointer(bp + 28)) = 1
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+ if iIdx != 0 {
+ *(*int32)(unsafe.Pointer(bp + 24)) = 0
+ var f2 int32 = FTS5INDEX_QUERY_SKIPEMPTY | FTS5INDEX_QUERY_NOOUTPUT
+ *(*U8)(unsafe.Pointer(pToken)) = U8('0')
+ fts5MultiIterNew(tls, p, pStruct, f2, pColset, pToken, nToken, -1, 0, bp+16)
+ fts5IterSetOutputCb(tls, p+52, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ for ; fts5MultiIterEof(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))) == 0; fts5MultiIterNext2(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16)), bp+24) {
+ var pSeg uintptr = *(*uintptr)(unsafe.Pointer(bp + 16)) + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst+1*4)).FiFirst)*120
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FxSetOutputs})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), pSeg)
+ if (*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FnData != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, U64, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{xAppend})).f(tls, p, U64((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FiRowid)-U64(iLastRowid), *(*uintptr)(unsafe.Pointer(bp + 16)), bp)
+ iLastRowid = (*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FiRowid
+ }
+ }
+ fts5MultiIterFree(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ }
+
+ *(*U8)(unsafe.Pointer(pToken)) = U8('0' + iIdx)
+ fts5MultiIterNew(tls, p, pStruct, flags, pColset, pToken, nToken, -1, 0, bp+16)
+ fts5IterSetOutputCb(tls, p+52, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ for ; fts5MultiIterEof(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))) == 0; fts5MultiIterNext2(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16)), bp+28) {
+ var pSeg uintptr = *(*uintptr)(unsafe.Pointer(bp + 16)) + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst+1*4)).FiFirst)*120
+ var nTerm int32 = (*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fn
+ var pTerm uintptr = (*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fp
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FxSetOutputs})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), pSeg)
+
+ if *(*int32)(unsafe.Pointer(bp + 28)) != 0 {
+ if nTerm < nToken || libc.Xmemcmp(tls, pToken, pTerm, uint64(nToken)) != 0 {
+ break
+ }
+ }
+
+ if (*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FnData == 0 {
+ continue
+ }
+
+ if (*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FiRowid <= iLastRowid && (*Fts5Buffer)(unsafe.Pointer(bp)).Fn > 0 {
+ for i = 0; (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5Buffer)(unsafe.Pointer(bp)).Fn != 0; i++ {
+ var i1 int32 = i * nMerge
+ var iStore int32
+
+ for iStore = i1; iStore < i1+nMerge; iStore++ {
+ if (*Fts5Buffer)(unsafe.Pointer(aBuf+uintptr(iStore)*16)).Fn == 0 {
+ fts5BufferSwap(tls, bp, aBuf+uintptr(iStore)*16)
+ sqlite3Fts5BufferZero(tls, bp)
+ break
+ }
+ }
+ if iStore == i1+nMerge {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{xMerge})).f(tls, p, bp, nMerge, aBuf+uintptr(i1)*16)
+ for iStore = i1; iStore < i1+nMerge; iStore++ {
+ sqlite3Fts5BufferZero(tls, aBuf+uintptr(iStore)*16)
+ }
+ }
+ }
+ iLastRowid = int64(0)
+ }
+
+ (*struct {
+ f func(*libc.TLS, uintptr, U64, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{xAppend})).f(tls, p, U64((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FiRowid)-U64(iLastRowid), *(*uintptr)(unsafe.Pointer(bp + 16)), bp)
+ iLastRowid = (*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fbase.FiRowid
+ }
+
+ for i = 0; i < nBuf; i = i + nMerge {
+ var iFree int32
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{xMerge})).f(tls, p, bp, nMerge, aBuf+uintptr(i)*16)
+ }
+ for iFree = i; iFree < i+nMerge; iFree++ {
+ sqlite3Fts5BufferFree(tls, aBuf+uintptr(iFree)*16)
+ }
+ }
+ fts5MultiIterFree(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+
+ pData = fts5IdxMalloc(tls, p, int64(uint64(unsafe.Sizeof(Fts5Data{}))+uint64((*Fts5Buffer)(unsafe.Pointer(bp)).Fn)+uint64(FTS5_DATA_ZERO_PADDING)))
+ if pData != 0 {
+ (*Fts5Data)(unsafe.Pointer(pData)).Fp = pData + 1*16
+ (*Fts5Data)(unsafe.Pointer(pData)).Fnn = libc.AssignPtrInt32(pData+12, (*Fts5Buffer)(unsafe.Pointer(bp)).Fn)
+ if (*Fts5Buffer)(unsafe.Pointer(bp)).Fn != 0 {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, uint64((*Fts5Buffer)(unsafe.Pointer(bp)).Fn), libc.X__builtin_object_size(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp, 0))
+ }
+ fts5MultiIterNew2(tls, p, pData, bDesc, ppIter)
+ }
+ sqlite3Fts5BufferFree(tls, bp)
+ }
+
+ fts5StructureRelease(tls, pStruct)
+ Xsqlite3_free(tls, aBuf)
+}
+
+func sqlite3Fts5IndexBeginWrite(tls *libc.TLS, p uintptr, bDelete int32, iRowid I64) int32 {
+ if (*Fts5Index)(unsafe.Pointer(p)).FpHash == uintptr(0) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = sqlite3Fts5HashNew(tls, (*Fts5Index)(unsafe.Pointer(p)).FpConfig, p+24, p+32)
+ }
+
+ if iRowid < (*Fts5Index)(unsafe.Pointer(p)).FiWriteRowid ||
+ iRowid == (*Fts5Index)(unsafe.Pointer(p)).FiWriteRowid && (*Fts5Index)(unsafe.Pointer(p)).FbDelete == 0 ||
+ (*Fts5Index)(unsafe.Pointer(p)).FnPendingData > (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnHashSize {
+ fts5IndexFlush(tls, p)
+ }
+
+ (*Fts5Index)(unsafe.Pointer(p)).FiWriteRowid = iRowid
+ (*Fts5Index)(unsafe.Pointer(p)).FbDelete = bDelete
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexSync(tls *libc.TLS, p uintptr) int32 {
+ fts5IndexFlush(tls, p)
+ sqlite3Fts5IndexCloseReader(tls, p)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexRollback(tls *libc.TLS, p uintptr) int32 {
+ sqlite3Fts5IndexCloseReader(tls, p)
+ fts5IndexDiscardData(tls, p)
+ fts5StructureInvalidate(tls, p)
+
+ return SQLITE_OK
+}
+
+func sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ fts5StructureInvalidate(tls, p)
+ fts5IndexDiscardData(tls, p)
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Structure{})), libc.X__builtin_object_size(tls, bp, 0))
+ fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), ts+1547, 0)
+ fts5StructureWrite(tls, p, bp)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK
+ var p uintptr
+
+ *(*uintptr)(unsafe.Pointer(pp)) = libc.AssignUintptr(&p, sqlite3Fts5MallocZero(tls, bp+8, int64(unsafe.Sizeof(Fts5Index{}))))
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).FpConfig = pConfig
+ (*Fts5Index)(unsafe.Pointer(p)).FnWorkUnit = FTS5_WORK_UNIT
+ (*Fts5Index)(unsafe.Pointer(p)).FzDataTbl = sqlite3Fts5Mprintf(tls, bp+8, ts+35589, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ if (*Fts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 {
+ *(*int32)(unsafe.Pointer(bp + 8)) = sqlite3Fts5CreateTable(tls,
+ pConfig, ts+25506, ts+35597, 0, pzErr)
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = sqlite3Fts5CreateTable(tls, pConfig, ts+11891,
+ ts+35632,
+ 1, pzErr)
+ }
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 8)) = sqlite3Fts5IndexReinit(tls, p)
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 8)) != 0 {
+ sqlite3Fts5IndexClose(tls, p)
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func sqlite3Fts5IndexClose(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 {
+ fts5StructureInvalidate(tls, p)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpWriter)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDeleter)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxWriter)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxDeleter)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpIdxSelect)
+ Xsqlite3_finalize(tls, (*Fts5Index)(unsafe.Pointer(p)).FpDataVersion)
+ sqlite3Fts5HashFree(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash)
+ Xsqlite3_free(tls, (*Fts5Index)(unsafe.Pointer(p)).FzDataTbl)
+ Xsqlite3_free(tls, p)
+ }
+ return rc
+}
+
+func sqlite3Fts5IndexCharlenToBytelen(tls *libc.TLS, p uintptr, nByte int32, nChar int32) int32 {
+ var n int32 = 0
+ var i int32
+ for i = 0; i < nChar; i++ {
+ if n >= nByte {
+ return 0
+ }
+ if int32(uint8(*(*int8)(unsafe.Pointer(p + uintptr(libc.PostIncInt32(&n, 1)))))) >= 0xc0 {
+ if n >= nByte {
+ return 0
+ }
+ for int32(*(*int8)(unsafe.Pointer(p + uintptr(n))))&0xc0 == 0x80 {
+ n++
+ if n >= nByte {
+ if i+1 == nChar {
+ break
+ }
+ return 0
+ }
+ }
+ }
+ }
+ return n
+}
+
+func fts5IndexCharlen(tls *libc.TLS, pIn uintptr, nIn int32) int32 {
+ var nChar int32 = 0
+ var i int32 = 0
+ for i < nIn {
+ if int32(uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(libc.PostIncInt32(&i, 1)))))) >= 0xc0 {
+ for i < nIn && int32(*(*int8)(unsafe.Pointer(pIn + uintptr(i))))&0xc0 == 0x80 {
+ i++
+ }
+ }
+ nChar++
+ }
+ return nChar
+}
+
+func sqlite3Fts5IndexWrite(tls *libc.TLS, p uintptr, iCol int32, iPos int32, pToken uintptr, nToken int32) int32 {
+ var i int32
+ var rc int32 = SQLITE_OK
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+
+ rc = sqlite3Fts5HashWrite(tls,
+ (*Fts5Index)(unsafe.Pointer(p)).FpHash, (*Fts5Index)(unsafe.Pointer(p)).FiWriteRowid, iCol, iPos, int8('0'), pToken, nToken)
+
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix && rc == SQLITE_OK; i++ {
+ var nChar int32 = *(*int32)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix + uintptr(i)*4))
+ var nByte int32 = sqlite3Fts5IndexCharlenToBytelen(tls, pToken, nToken, nChar)
+ if nByte != 0 {
+ rc = sqlite3Fts5HashWrite(tls, (*Fts5Index)(unsafe.Pointer(p)).FpHash,
+ (*Fts5Index)(unsafe.Pointer(p)).FiWriteRowid, iCol, iPos, int8('0'+i+1), pToken,
+ nByte)
+ }
+ }
+
+ return rc
+}
+
+func sqlite3Fts5IndexQuery(tls *libc.TLS, p uintptr, pToken uintptr, nToken int32, flags int32, pColset uintptr, ppIter uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ *(*Fts5Buffer)(unsafe.Pointer(bp)) = Fts5Buffer{}
+
+ if sqlite3Fts5BufferSize(tls, p+52, bp, uint32(nToken+1)) == 0 {
+ var iIdx int32 = 0
+ var iPrefixIdx int32 = 0
+ if nToken > 0 {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+1, pToken, uint64(nToken), libc.X__builtin_object_size(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp+1, 0))
+ }
+
+ if flags&FTS5INDEX_QUERY_PREFIX != 0 {
+ var nChar int32 = fts5IndexCharlen(tls, pToken, nToken)
+ for iIdx = 1; iIdx <= (*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix; iIdx++ {
+ var nIdxChar int32 = *(*int32)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FaPrefix + uintptr(iIdx-1)*4))
+ if nIdxChar == nChar {
+ break
+ }
+ if nIdxChar == nChar+1 {
+ iPrefixIdx = iIdx
+ }
+ }
+ }
+
+ if iIdx <= (*Fts5Config)(unsafe.Pointer(pConfig)).FnPrefix {
+ var pStruct uintptr = fts5StructureRead(tls, p)
+ *(*U8)(unsafe.Pointer((*Fts5Buffer)(unsafe.Pointer(bp)).Fp)) = U8('0' + iIdx)
+ if pStruct != 0 {
+ fts5MultiIterNew(tls, p, pStruct, flags|FTS5INDEX_QUERY_SKIPEMPTY,
+ pColset, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, nToken+1, -1, 0, bp+16)
+ fts5StructureRelease(tls, pStruct)
+ }
+ } else {
+ var bDesc int32 = libc.Bool32(flags&FTS5INDEX_QUERY_DESC != 0)
+ fts5SetupPrefixIter(tls, p, bDesc, iPrefixIdx, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, nToken+1, pColset, bp+16)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) {
+ } else {
+ fts5IterSetOutputCb(tls, p+52, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pSeg uintptr = *(*uintptr)(unsafe.Pointer(bp + 16)) + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst+1*4)).FiFirst)*120
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf != 0 {
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FxSetOutputs})).f(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), pSeg)
+ }
+ }
+ }
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ sqlite3Fts5IterClose(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+ sqlite3Fts5IndexCloseReader(tls, p)
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppIter)) = *(*uintptr)(unsafe.Pointer(bp + 16))
+ sqlite3Fts5BufferFree(tls, bp)
+ }
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IterNext(tls *libc.TLS, pIndexIter uintptr) int32 {
+ var pIter uintptr = pIndexIter
+
+ fts5MultiIterNext(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex, pIter, 0, int64(0))
+ return fts5IndexReturn(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex)
+}
+
+func sqlite3Fts5IterNextScan(tls *libc.TLS, pIndexIter uintptr) int32 {
+ var pIter uintptr = pIndexIter
+ var p uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex
+
+ fts5MultiIterNext(tls, p, pIter, 0, int64(0))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var pSeg uintptr = pIter + 96 + uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(pIter)).FaFirst+1*4)).FiFirst)*120
+ if (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf != 0 && int32(*(*U8)(unsafe.Pointer((*Fts5SegIter)(unsafe.Pointer(pSeg)).Fterm.Fp))) != '0' {
+ fts5DataRelease(tls, (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf)
+ (*Fts5SegIter)(unsafe.Pointer(pSeg)).FpLeaf = uintptr(0)
+ (*Fts5Iter)(unsafe.Pointer(pIter)).Fbase.FbEof = U8(1)
+ }
+ }
+
+ return fts5IndexReturn(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex)
+}
+
+func sqlite3Fts5IterNextFrom(tls *libc.TLS, pIndexIter uintptr, iMatch I64) int32 {
+ var pIter uintptr = pIndexIter
+ fts5MultiIterNextFrom(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex, pIter, iMatch)
+ return fts5IndexReturn(tls, (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex)
+}
+
+func sqlite3Fts5IterTerm(tls *libc.TLS, pIndexIter uintptr, pn uintptr) uintptr {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var z uintptr = fts5MultiIterTerm(tls, pIndexIter, bp)
+
+ *(*int32)(unsafe.Pointer(pn)) = *(*int32)(unsafe.Pointer(bp)) - 1
+ return func() uintptr {
+ if z != 0 {
+ return z + 1
+ }
+ return uintptr(0)
+ }()
+}
+
+func sqlite3Fts5IterClose(tls *libc.TLS, pIndexIter uintptr) {
+ if pIndexIter != 0 {
+ var pIter uintptr = pIndexIter
+ var pIndex uintptr = (*Fts5Iter)(unsafe.Pointer(pIter)).FpIndex
+ fts5MultiIterFree(tls, pIter)
+ sqlite3Fts5IndexCloseReader(tls, pIndex)
+ }
+}
+
+func sqlite3Fts5IndexGetAverages(tls *libc.TLS, p uintptr, pnRow uintptr, anSize uintptr) int32 {
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FnCol
+ var pData uintptr
+
+ *(*I64)(unsafe.Pointer(pnRow)) = int64(0)
+ libc.X__builtin___memset_chk(tls, anSize, 0, uint64(unsafe.Sizeof(I64(0)))*uint64(nCol), libc.X__builtin_object_size(tls, anSize, 0))
+ pData = fts5DataRead(tls, p, int64(FTS5_AVERAGES_ROWID))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Fts5Data)(unsafe.Pointer(pData)).Fnn != 0 {
+ var i int32 = 0
+ var iCol int32
+ i = i + int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr(i), pnRow))
+ for iCol = 0; i < (*Fts5Data)(unsafe.Pointer(pData)).Fnn && iCol < nCol; iCol++ {
+ i = i + int32(sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pData)).Fp+uintptr(i), anSize+uintptr(iCol)*8))
+ }
+ }
+
+ fts5DataRelease(tls, pData)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexSetAverages(tls *libc.TLS, p uintptr, pData uintptr, nData int32) int32 {
+ fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), pData, nData)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexReads(tls *libc.TLS, p uintptr) int32 {
+ return (*Fts5Index)(unsafe.Pointer(p)).FnRead
+}
+
+func sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ sqlite3Fts5Put32(tls, bp, iNew)
+
+ rc = Xsqlite3_blob_open(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Index)(unsafe.Pointer(p)).FzDataTbl,
+ ts+35279, int64(FTS5_STRUCTURE_ROWID), 1, bp+8)
+ if rc == SQLITE_OK {
+ Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, 4, 0)
+ rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+
+ return rc
+}
+
+func sqlite3Fts5IndexLoadConfig(tls *libc.TLS, p uintptr) int32 {
+ var pStruct uintptr
+ pStruct = fts5StructureRead(tls, p)
+ fts5StructureRelease(tls, pStruct)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexEntryCksum(tls *libc.TLS, iRowid I64, iCol int32, iPos int32, iIdx int32, pTerm uintptr, nTerm int32) U64 {
+ var i int32
+ var ret U64 = U64(iRowid)
+ ret = ret + (ret<<3 + U64(iCol))
+ ret = ret + (ret<<3 + U64(iPos))
+ if iIdx >= 0 {
+ ret = ret + (ret<<3 + U64('0'+iIdx))
+ }
+ for i = 0; i < nTerm; i++ {
+ ret = ret + (ret<<3 + U64(*(*int8)(unsafe.Pointer(pTerm + uintptr(i)))))
+ }
+ return ret
+}
+
+func fts5IndexIntegrityCheckEmpty(tls *libc.TLS, p uintptr, pSeg uintptr, iFirst int32, iNoRowid int32, iLast int32) {
+ var i int32
+
+ for i = iFirst; (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && i <= iLast; i++ {
+ var pLeaf uintptr = fts5DataRead(tls, p, I64((*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)+int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B)+int64(0)<<FTS5_DATA_PAGE_B+I64(i))
+ if pLeaf != 0 {
+ if !((*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf >= (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ if i >= iNoRowid && 0 != int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp)) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ fts5DataRelease(tls, pLeaf)
+ }
+}
+
+func fts5IntegrityCheckPgidx(tls *libc.TLS, p uintptr, pLeaf uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var iTermOff int32 = 0
+ var ii int32
+
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 8)) = Fts5Buffer{}
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 32)) = Fts5Buffer{}
+
+ ii = (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf
+ for ii < (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn && (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ var res int32
+ var iOff int32
+
+ ii = ii + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(ii), bp)
+ iTermOff = iTermOff + *(*int32)(unsafe.Pointer(bp))
+ iOff = iTermOff
+
+ if iOff >= (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else if iTermOff == *(*int32)(unsafe.Pointer(bp)) {
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff), bp+4)
+ if iOff+*(*int32)(unsafe.Pointer(bp + 4)) > (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ sqlite3Fts5BufferSet(tls, p+52, bp+8, *(*int32)(unsafe.Pointer(bp + 4)), (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff))
+ }
+ } else {
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff), bp+24)
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff), bp+28)
+ if *(*int32)(unsafe.Pointer(bp + 24)) > (*Fts5Buffer)(unsafe.Pointer(bp+8)).Fn || iOff+*(*int32)(unsafe.Pointer(bp + 28)) > (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ (*Fts5Buffer)(unsafe.Pointer(bp + 8)).Fn = *(*int32)(unsafe.Pointer(bp + 24))
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp+8, uint32(*(*int32)(unsafe.Pointer(bp + 28))), (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff))
+ }
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ res = fts5BufferCompare(tls, bp+8, bp+32)
+ if res <= 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ }
+ sqlite3Fts5BufferSet(tls, p+52, bp+32, (*Fts5Buffer)(unsafe.Pointer(bp+8)).Fn, (*Fts5Buffer)(unsafe.Pointer(bp+8)).Fp)
+ }
+
+ sqlite3Fts5BufferFree(tls, bp+8)
+ sqlite3Fts5BufferFree(tls, bp+32)
+}
+
+func fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pConfig uintptr = (*Fts5Index)(unsafe.Pointer(p)).FpConfig
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ var rc2 int32
+ var iIdxPrevLeaf int32 = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst - 1
+ var iDlidxPrevLeaf int32 = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast
+
+ if (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 {
+ return
+ }
+
+ fts5IndexPrepareStmt(tls, p, bp+24, Xsqlite3_mprintf(tls,
+ ts+35676,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)))
+
+ for (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ var iRow I64
+ var pLeaf uintptr
+
+ var zIdxTerm uintptr = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 1)
+ var nIdxTerm int32 = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 1)
+ var iIdxLeaf int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 2)
+ var bIdxDlidx int32 = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 3)
+
+ if iIdxLeaf < (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst {
+ continue
+ }
+ iRow = I64((*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64(iIdxLeaf)
+ pLeaf = fts5LeafRead(tls, p, iRow)
+ if pLeaf == uintptr(0) {
+ break
+ }
+
+ if (*Fts5Data)(unsafe.Pointer(pLeaf)).Fnn <= (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ var iOff int32
+ var iRowidOff int32
+
+ var res int32
+
+ iOff = fts5LeafFirstTermOff(tls, pLeaf)
+ iRowidOff = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp))
+ if iRowidOff >= iOff || iOff >= (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff), bp+32)
+ res = func() int32 {
+ if func() int32 {
+ if *(*int32)(unsafe.Pointer(bp + 32)) < nIdxTerm {
+ return *(*int32)(unsafe.Pointer(bp + 32))
+ }
+ return nIdxTerm
+ }() <= 0 {
+ return 0
+ }
+ return libc.Xmemcmp(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iOff), zIdxTerm, func() uint64 {
+ if *(*int32)(unsafe.Pointer(bp + 32)) < nIdxTerm {
+ return uint64(*(*int32)(unsafe.Pointer(bp + 32)))
+ }
+ return uint64(nIdxTerm)
+ }())
+ }()
+ if res == 0 {
+ res = *(*int32)(unsafe.Pointer(bp + 32)) - nIdxTerm
+ }
+ if res < 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+
+ fts5IntegrityCheckPgidx(tls, p, pLeaf)
+ }
+ fts5DataRelease(tls, pLeaf)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ break
+ }
+
+ fts5IndexIntegrityCheckEmpty(tls,
+ p, pSeg, iIdxPrevLeaf+1, iDlidxPrevLeaf+1, iIdxLeaf-1)
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ break
+ }
+
+ if bIdxDlidx != 0 {
+ var pDlidx uintptr = uintptr(0)
+ var iPrevLeaf int32 = iIdxLeaf
+ var iSegid int32 = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid
+ var iPg int32 = 0
+ var iKey I64
+
+ for pDlidx = fts5DlidxIterInit(tls, p, 0, iSegid, iIdxLeaf); fts5DlidxIterEof(tls, p, pDlidx) == 0; fts5DlidxIterNext(tls, p, pDlidx) {
+ for iPg = iPrevLeaf + 1; iPg < fts5DlidxIterPgno(tls, pDlidx); iPg++ {
+ iKey = I64(iSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64(iPg)
+ pLeaf = fts5DataRead(tls, p, iKey)
+ if pLeaf != 0 {
+ if int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp)) != 0 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ fts5DataRelease(tls, pLeaf)
+ }
+ }
+ iPrevLeaf = fts5DlidxIterPgno(tls, pDlidx)
+
+ iKey = I64(iSegid)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B) + int64(0)<<(FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B) + int64(0)<<FTS5_DATA_PAGE_B + I64(iPrevLeaf)
+ pLeaf = fts5DataRead(tls, p, iKey)
+ if pLeaf != 0 {
+ var iRowidOff int32 = int32(fts5GetU16(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp))
+
+ if iRowidOff >= (*Fts5Data)(unsafe.Pointer(pLeaf)).FszLeaf {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ sqlite3Fts5GetVarint(tls, (*Fts5Data)(unsafe.Pointer(pLeaf)).Fp+uintptr(iRowidOff), bp+40)
+ if *(*I64)(unsafe.Pointer(bp + 40)) != fts5DlidxIterRowid(tls, pDlidx) {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ fts5DataRelease(tls, pLeaf)
+ }
+ }
+
+ iDlidxPrevLeaf = iPg
+ fts5DlidxIterFree(tls, pDlidx)
+
+ } else {
+ iDlidxPrevLeaf = (*Fts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoLast
+
+ }
+
+ iIdxPrevLeaf = iIdxLeaf
+ }
+
+ rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = rc2
+ }
+
+}
+
+func sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum U64, bUseCksum int32) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Index)(unsafe.Pointer(p)).FpConfig)).FeDetail
+ var cksum2 U64 = uint64(0)
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 16)) = Fts5Buffer{}
+
+ var pStruct uintptr
+ var iLvl int32
+ var iSeg int32
+
+ var flags int32 = FTS5INDEX_QUERY_NOOUTPUT
+
+ pStruct = fts5StructureRead(tls, p)
+ if pStruct == uintptr(0) {
+ return fts5IndexReturn(tls, p)
+ }
+
+ for iLvl = 0; iLvl < (*Fts5Structure)(unsafe.Pointer(pStruct)).FnLevel; iLvl++ {
+ for iSeg = 0; iSeg < (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FnSeg; iSeg++ {
+ var pSeg uintptr = (*Fts5StructureLevel)(unsafe.Pointer(pStruct+24+uintptr(iLvl)*16)).FaSeg + uintptr(iSeg)*12
+ fts5IndexIntegrityCheckSegment(tls, p, pSeg)
+ }
+ }
+
+ for fts5MultiIterNew(tls, p, pStruct, flags, uintptr(0), uintptr(0), 0, -1, 0, bp); fts5MultiIterEof(tls, p, *(*uintptr)(unsafe.Pointer(bp))) == 0; fts5MultiIterNext(tls, p, *(*uintptr)(unsafe.Pointer(bp)), 0, int64(0)) {
+ *(*I64)(unsafe.Pointer(bp + 40)) = int64(0)
+ *(*int32)(unsafe.Pointer(bp + 32)) = 0
+ var iRowid I64 = fts5MultiIterRowid(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ var z uintptr = fts5MultiIterTerm(tls, *(*uintptr)(unsafe.Pointer(bp)), bp+8)
+
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc != 0 {
+ break
+ }
+
+ if eDetail == FTS5_DETAIL_NONE {
+ if 0 == fts5MultiIterIsEmpty(tls, p, *(*uintptr)(unsafe.Pointer(bp))) {
+ cksum2 = cksum2 ^ sqlite3Fts5IndexEntryCksum(tls, iRowid, 0, 0, -1, z, *(*int32)(unsafe.Pointer(bp + 8)))
+ }
+ } else {
+ (*Fts5Buffer)(unsafe.Pointer(bp + 16)).Fn = 0
+ fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp))+96+uintptr((*Fts5CResult)(unsafe.Pointer((*Fts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaFirst+1*4)).FiFirst)*120, uintptr(0), bp+16)
+ sqlite3Fts5BufferAppendBlob(tls, p+52, bp+16, uint32(4), ts+35762)
+ for 0 == sqlite3Fts5PoslistNext64(tls, (*Fts5Buffer)(unsafe.Pointer(bp+16)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp+16)).Fn, bp+32, bp+40) {
+ var iCol int32 = int32(*(*I64)(unsafe.Pointer(bp + 40)) >> 32)
+ var iTokOff int32 = int32(*(*I64)(unsafe.Pointer(bp + 40)) & int64(0x7FFFFFFF))
+ cksum2 = cksum2 ^ sqlite3Fts5IndexEntryCksum(tls, iRowid, iCol, iTokOff, -1, z, *(*int32)(unsafe.Pointer(bp + 8)))
+ }
+ }
+ }
+
+ fts5MultiIterFree(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if (*Fts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bUseCksum != 0 && cksum != cksum2 {
+ (*Fts5Index)(unsafe.Pointer(p)).Frc = SQLITE_CORRUPT | int32(1)<<8
+ }
+
+ fts5StructureRelease(tls, pStruct)
+ sqlite3Fts5BufferFree(tls, bp+16)
+ return fts5IndexReturn(tls, p)
+}
+
+func sqlite3Fts5IndexInit(tls *libc.TLS, db uintptr) int32 {
+ return SQLITE_OK
+ _ = db
+ return int32(0)
+}
+
+func sqlite3Fts5IndexReset(tls *libc.TLS, p uintptr) int32 {
+ if fts5IndexDataVersion(tls, p) != (*Fts5Index)(unsafe.Pointer(p)).FiStructVersion {
+ fts5StructureInvalidate(tls, p)
+ }
+ return fts5IndexReturn(tls, p)
+}
+
+type Fts5Auxdata1 = struct {
+ FpAux uintptr
+ FpPtr uintptr
+ FxDelete uintptr
+ FpNext uintptr
+}
+
+type Fts5Auxdata = Fts5Auxdata1
+type Fts5Auxiliary1 = struct {
+ FpGlobal uintptr
+ FzFunc uintptr
+ FpUserData uintptr
+ FxFunc Fts5_extension_function
+ FxDestroy uintptr
+ FpNext uintptr
+}
+
+type Fts5Auxiliary = Fts5Auxiliary1
+type Fts5Cursor1 = struct {
+ Fbase Sqlite3_vtab_cursor
+ FpNext uintptr
+ FaColumnSize uintptr
+ FiCsrId I64
+ FePlan int32
+ FbDesc int32
+ FiFirstRowid I64
+ FiLastRowid I64
+ FpStmt uintptr
+ FpExpr uintptr
+ FpSorter uintptr
+ Fcsrflags int32
+ F__ccgo_pad1 [4]byte
+ FiSpecial I64
+ FzRank uintptr
+ FzRankArgs uintptr
+ FpRank uintptr
+ FnRankArg int32
+ F__ccgo_pad2 [4]byte
+ FapRankArg uintptr
+ FpRankArgStmt uintptr
+ FpAux uintptr
+ FpAuxdata uintptr
+ FaInstIter uintptr
+ FnInstAlloc int32
+ FnInstCount int32
+ FaInst uintptr
+}
+
+type Fts5Cursor = Fts5Cursor1
+type Fts5FullTable1 = struct {
+ Fp Fts5Table
+ FpStorage uintptr
+ FpGlobal uintptr
+ FpSortCsr uintptr
+}
+
+type Fts5FullTable = Fts5FullTable1
+type Fts5Sorter1 = struct {
+ FpStmt uintptr
+ FiRowid I64
+ FaPoslist uintptr
+ FnIdx int32
+ FaIdx [1]int32
+}
+
+type Fts5Sorter = Fts5Sorter1
+type Fts5TokenizerModule1 = struct {
+ FzName uintptr
+ FpUserData uintptr
+ Fx Fts5_tokenizer
+ FxDestroy uintptr
+ FpNext uintptr
+}
+
+type Fts5TokenizerModule = Fts5TokenizerModule1
+
+// NOTES ON TRANSACTIONS:
+//
+// SQLite invokes the following virtual table methods as transactions are
+// opened and closed by the user:
+//
+// xBegin(): Start of a new transaction.
+// xSync(): Initial part of two-phase commit.
+// xCommit(): Final part of two-phase commit.
+// xRollback(): Rollback the transaction.
+//
+// Anything that is required as part of a commit that may fail is performed
+// in the xSync() callback. Current versions of SQLite ignore any errors
+// returned by xCommit().
+//
+// And as sub-transactions are opened/closed:
+//
+// xSavepoint(int S): Open savepoint S.
+// xRelease(int S): Commit and close savepoint S.
+// xRollbackTo(int S): Rollback to start of savepoint S.
+//
+// During a write-transaction the fts5_index.c module may cache some data
+// in-memory. It is flushed to disk whenever xSync(), xRelease() or
+// xSavepoint() is called. And discarded whenever xRollback() or xRollbackTo()
+// is called.
+//
+// Additionally, if SQLITE_DEBUG is defined, an instance of the following
+// structure is used to record the current transaction state. This information
+// is not required, but it is used in the assert() statements executed by
+// function fts5CheckTransactionState() (see below).
+type Fts5TransactionState = struct {
+ FeState int32
+ FiSavepoint int32
+}
+
+type Fts5MatchPhrase = struct {
+ FpPoslist uintptr
+ FnTerm int32
+ F__ccgo_pad1 [4]byte
+}
+
+func fts5IsContentless(tls *libc.TLS, pTab uintptr) int32 {
+ return libc.Bool32((*Fts5Config)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FeContent == FTS5_CONTENT_NONE)
+}
+
+func fts5FreeVtab(tls *libc.TLS, pTab uintptr) {
+ if pTab != 0 {
+ sqlite3Fts5IndexClose(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
+ sqlite3Fts5StorageClose(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ sqlite3Fts5ConfigFree(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)
+ Xsqlite3_free(tls, pTab)
+ }
+}
+
+func fts5DisconnectMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ fts5FreeVtab(tls, pVtab)
+ return SQLITE_OK
+}
+
+func fts5DestroyMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ var pTab uintptr = pVtab
+ var rc int32 = sqlite3Fts5DropAll(tls, (*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)
+ if rc == SQLITE_OK {
+ fts5FreeVtab(tls, pVtab)
+ }
+ return rc
+}
+
+func fts5InitVtab(tls *libc.TLS, bCreate int32, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVTab uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pGlobal uintptr = pAux
+ var azConfig uintptr = argv
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var pTab uintptr = uintptr(0)
+
+ pTab = sqlite3Fts5MallocZero(tls, bp, int64(unsafe.Sizeof(Fts5FullTable{})))
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5ConfigParse(tls, pGlobal, db, argc, azConfig, bp+8, pzErr)
+
+ }
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig = *(*uintptr)(unsafe.Pointer(bp + 8))
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal = pGlobal
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5IndexOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bCreate, pTab+32, pzErr)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5StorageOpen(tls,
+ *(*uintptr)(unsafe.Pointer(bp + 8)), (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex, bCreate, pTab+40, pzErr)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5ConfigDeclareVtab(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ (*Fts5Config)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpzErrmsg = pzErr
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5IndexLoadConfig(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
+ sqlite3Fts5IndexRollback(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
+ (*Fts5Config)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FpzErrmsg = uintptr(0)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK {
+ fts5FreeVtab(tls, pTab)
+ pTab = uintptr(0)
+ } else if bCreate != 0 {
+ }
+ *(*uintptr)(unsafe.Pointer(ppVTab)) = pTab
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func fts5ConnectMethod(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return fts5InitVtab(tls, 0, db, pAux, argc, argv, ppVtab, pzErr)
+}
+
+func fts5CreateMethod(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return fts5InitVtab(tls, 1, db, pAux, argc, argv, ppVtab, pzErr)
+}
+
+func fts5SetUniqueFlag(tls *libc.TLS, pIdxInfo uintptr) {
+ {
+ *(*int32)(unsafe.Pointer(pIdxInfo + 80)) |= SQLITE_INDEX_SCAN_UNIQUE
+
+ }
+}
+
+func fts5UsePatternMatch(tls *libc.TLS, pConfig uintptr, p uintptr) int32 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FePattern == FTS5_PATTERN_GLOB && int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == FTS5_PATTERN_GLOB {
+ return 1
+ }
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FePattern == FTS5_PATTERN_LIKE &&
+ (int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == FTS5_PATTERN_LIKE || int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == FTS5_PATTERN_GLOB) {
+ return 1
+ }
+ return 0
+}
+
+func fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr = pVTab
+ var pConfig uintptr = (*Fts5Table)(unsafe.Pointer(pTab)).FpConfig
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol
+ var idxFlags int32 = 0
+ var i int32
+ var idxStr uintptr
+ var iIdxStr int32 = 0
+ var iCons int32 = 0
+
+ var bSeenEq int32 = 0
+ var bSeenGt int32 = 0
+ var bSeenLt int32 = 0
+ var bSeenMatch int32 = 0
+ var bSeenRank int32 = 0
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 {
+ (*Fts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+35767, 0)
+ return SQLITE_ERROR
+ }
+
+ idxStr = Xsqlite3_malloc(tls, (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*8+1)
+ if idxStr == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FidxStr = idxStr
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FneedToFreeIdxStr = 1
+
+ for i = 0; i < (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint; i++ {
+ var p uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraint + uintptr(i)*12
+ var iCol int32 = (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_MATCH ||
+ int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ && iCol >= nCol {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable) == 0 || iCol < 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = 1e50
+
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr))) = int8(0)
+ return SQLITE_OK
+ } else {
+ if iCol == nCol+1 {
+ if bSeenRank != 0 {
+ continue
+ }
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = int8('r')
+ bSeenRank = 1
+ } else if iCol >= 0 {
+ bSeenMatch = 1
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = int8('M')
+ Xsqlite3_snprintf(tls, 6, idxStr+uintptr(iIdxStr), ts+5378, libc.VaList(bp, iCol))
+ idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr)))
+
+ }
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = libc.PreIncInt32(&iCons, 1)
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).Fomit = uint8(1)
+ }
+ } else if (*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0 {
+ if iCol >= 0 && iCol < nCol && fts5UsePatternMatch(tls, pConfig, p) != 0 {
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = func() int8 {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == FTS5_PATTERN_LIKE {
+ return int8('L')
+ }
+ return int8('G')
+ }()
+ Xsqlite3_snprintf(tls, 6, idxStr+uintptr(iIdxStr), ts+5378, libc.VaList(bp+8, iCol))
+ idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr)))
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = libc.PreIncInt32(&iCons, 1)
+
+ } else if bSeenEq == 0 && int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ && iCol < 0 {
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = int8('=')
+ bSeenEq = 1
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = libc.PreIncInt32(&iCons, 1)
+ }
+ }
+ }
+
+ if bSeenEq == 0 {
+ for i = 0; i < (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint; i++ {
+ var p uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraint + uintptr(i)*12
+ if (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn < 0 && (*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable != 0 {
+ var op int32 = int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop)
+ if op == SQLITE_INDEX_CONSTRAINT_LT || op == SQLITE_INDEX_CONSTRAINT_LE {
+ if bSeenLt != 0 {
+ continue
+ }
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = int8('<')
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = libc.PreIncInt32(&iCons, 1)
+ bSeenLt = 1
+ } else if op == SQLITE_INDEX_CONSTRAINT_GT || op == SQLITE_INDEX_CONSTRAINT_GE {
+ if bSeenGt != 0 {
+ continue
+ }
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1)))) = int8('>')
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(i)*8)).FargvIndex = libc.PreIncInt32(&iCons, 1)
+ bSeenGt = 1
+ }
+ }
+ }
+ }
+ *(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr))) = int8(0)
+
+ if (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnOrderBy == 1 {
+ var iSort int32 = (*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy)).FiColumn
+ if iSort == (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol+1 && bSeenMatch != 0 {
+ idxFlags = idxFlags | FTS5_BI_ORDER_RANK
+ } else if iSort == -1 {
+ idxFlags = idxFlags | FTS5_BI_ORDER_ROWID
+ }
+ if idxFlags&(FTS5_BI_ORDER_RANK|FTS5_BI_ORDER_ROWID) != 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).ForderByConsumed = 1
+ if (*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy)).Fdesc != 0 {
+ idxFlags = idxFlags | FTS5_BI_ORDER_DESC
+ }
+ }
+ }
+
+ if bSeenEq != 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = func() float64 {
+ if bSeenMatch != 0 {
+ return 100.0
+ }
+ return 10.0
+ }()
+ if bSeenMatch == 0 {
+ fts5SetUniqueFlag(tls, pInfo)
+ }
+ } else if bSeenLt != 0 && bSeenGt != 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = func() float64 {
+ if bSeenMatch != 0 {
+ return 500.0
+ }
+ return 250000.0
+ }()
+ } else if bSeenLt != 0 || bSeenGt != 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = func() float64 {
+ if bSeenMatch != 0 {
+ return 750.0
+ }
+ return 750000.0
+ }()
+ } else {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = func() float64 {
+ if bSeenMatch != 0 {
+ return 1000.0
+ }
+ return 1000000.0
+ }()
+ }
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FidxNum = idxFlags
+ return SQLITE_OK
+}
+
+func fts5NewTransaction(tls *libc.TLS, pTab uintptr) int32 {
+ var pCsr uintptr
+ for pCsr = (*Fts5Global)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal)).FpCsr; pCsr != 0; pCsr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpNext {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab == pTab {
+ return SQLITE_OK
+ }
+ }
+ return sqlite3Fts5StorageReset(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+}
+
+func fts5OpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) int32 {
+ var pTab uintptr = pVTab
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var pCsr uintptr = uintptr(0)
+ var nByte Sqlite3_int64
+ var rc int32
+
+ rc = fts5NewTransaction(tls, pTab)
+ if rc == SQLITE_OK {
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Cursor{})) + uint64((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*uint64(unsafe.Sizeof(int32(0))))
+ pCsr = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pCsr != 0 {
+ var pGlobal uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal
+ libc.X__builtin___memset_chk(tls, pCsr, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pCsr, 0))
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize = pCsr + 1*184
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpNext = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpCsr
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).FpCsr = pCsr
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId = libc.PreIncInt64(&(*Fts5Global)(unsafe.Pointer(pGlobal)).FiNextId, 1)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppCsr)) = pCsr
+ return rc
+}
+
+func fts5StmtType(tls *libc.TLS, pCsr uintptr) int32 {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_SCAN {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FbDesc != 0 {
+ return FTS5_STMT_SCAN_DESC
+ }
+ return FTS5_STMT_SCAN_ASC
+ }
+ return FTS5_STMT_LOOKUP
+}
+
+func fts5CsrNewrow(tls *libc.TLS, pCsr uintptr) {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_REQUIRE_CONTENT | FTS5CSR_REQUIRE_DOCSIZE | FTS5CSR_REQUIRE_INST | FTS5CSR_REQUIRE_POSLIST
+}
+
+func fts5FreeCursorComponents(tls *libc.TLS, pCsr uintptr) {
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var pData uintptr
+ var pNext uintptr
+
+ Xsqlite3_free(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter)
+ Xsqlite3_free(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst)
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt != 0 {
+ var eStmt int32 = fts5StmtType(tls, pCsr)
+ sqlite3Fts5StorageStmtRelease(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, eStmt, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ }
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter != 0 {
+ var pSorter uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter
+ Xsqlite3_finalize(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt)
+ Xsqlite3_free(tls, pSorter)
+ }
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan != FTS5_PLAN_SOURCE {
+ sqlite3Fts5ExprFree(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+ }
+
+ for pData = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata; pData != 0; pData = pNext {
+ pNext = (*Fts5Auxdata)(unsafe.Pointer(pData)).FpNext
+ if (*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete})).f(tls, (*Fts5Auxdata)(unsafe.Pointer(pData)).FpPtr)
+ }
+ Xsqlite3_free(tls, pData)
+ }
+
+ Xsqlite3_finalize(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpRankArgStmt)
+ Xsqlite3_free(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FapRankArg)
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_FREE_ZRANK != 0 {
+ Xsqlite3_free(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank)
+ Xsqlite3_free(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs)
+ }
+
+ sqlite3Fts5IndexCloseReader(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
+ libc.X__builtin___memset_chk(tls, pCsr+32, 0, uint64(unsafe.Sizeof(Fts5Cursor{}))-uint64((int64(pCsr+32)-int64(pCsr))/1), libc.X__builtin_object_size(tls, pCsr+32, 0))
+}
+
+func fts5CloseMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ if pCursor != 0 {
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab
+ var pCsr uintptr = pCursor
+ var pp uintptr
+
+ fts5FreeCursorComponents(tls, pCsr)
+
+ for pp = (*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal + 72; *(*uintptr)(unsafe.Pointer(pp)) != pCsr; pp = *(*uintptr)(unsafe.Pointer(pp)) + 8 {
+ }
+ *(*uintptr)(unsafe.Pointer(pp)) = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpNext
+
+ Xsqlite3_free(tls, pCsr)
+ }
+ return SQLITE_OK
+}
+
+func fts5SorterNext(tls *libc.TLS, pCsr uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pSorter uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter
+ var rc int32
+
+ rc = Xsqlite3_step(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt)
+ if rc == SQLITE_DONE {
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_EOF | FTS5CSR_REQUIRE_CONTENT
+ } else if rc == SQLITE_ROW {
+ var a uintptr
+ var aBlob uintptr
+ var nBlob int32
+ var i int32
+ var iOff int32 = 0
+ rc = SQLITE_OK
+
+ (*Fts5Sorter)(unsafe.Pointer(pSorter)).FiRowid = Xsqlite3_column_int64(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt, 0)
+ nBlob = Xsqlite3_column_bytes(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt, 1)
+ aBlob = libc.AssignUintptr(&a, Xsqlite3_column_blob(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt, 1))
+
+ if nBlob > 0 {
+ for i = 0; i < (*Fts5Sorter)(unsafe.Pointer(pSorter)).FnIdx-1; i++ {
+ a += uintptr(sqlite3Fts5GetVarint32(tls, a, bp))
+ iOff = iOff + *(*int32)(unsafe.Pointer(bp))
+ *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(i)*4)) = iOff
+ }
+ *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(i)*4)) = int32((int64(aBlob+uintptr(nBlob)) - int64(a)) / 1)
+ (*Fts5Sorter)(unsafe.Pointer(pSorter)).FaPoslist = a
+ }
+
+ fts5CsrNewrow(tls, pCsr)
+ }
+
+ return rc
+}
+
+func fts5TripCursors(tls *libc.TLS, pTab uintptr) {
+ var pCsr uintptr
+ for pCsr = (*Fts5Global)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal)).FpCsr; pCsr != 0; pCsr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpNext {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_MATCH &&
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab == pTab {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_REQUIRE_RESEEK
+ }
+ }
+}
+
+func fts5CursorReseek(tls *libc.TLS, pCsr uintptr, pbSkip uintptr) int32 {
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_RESEEK != 0 {
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var bDesc int32 = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FbDesc
+ var iRowid I64 = sqlite3Fts5ExprRowid(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+
+ rc = sqlite3Fts5ExprFirst(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex, iRowid, bDesc)
+ if rc == SQLITE_OK && iRowid != sqlite3Fts5ExprRowid(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr) {
+ *(*int32)(unsafe.Pointer(pbSkip)) = 1
+ }
+
+ *(*int32)(unsafe.Pointer(pCsr + 80)) &= libc.CplInt32(FTS5CSR_REQUIRE_RESEEK)
+ fts5CsrNewrow(tls, pCsr)
+ if sqlite3Fts5ExprEof(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr) != 0 {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_EOF
+ *(*int32)(unsafe.Pointer(pbSkip)) = 1
+ }
+ }
+ return rc
+}
+
+func fts5NextMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pCsr uintptr = pCursor
+ var rc int32
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan < 3 {
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+ if libc.AssignInt32(&rc, fts5CursorReseek(tls, pCsr, bp+8)) != 0 || *(*int32)(unsafe.Pointer(bp + 8)) != 0 {
+ return rc
+ }
+ rc = sqlite3Fts5ExprNext(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid)
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= sqlite3Fts5ExprEof(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+ fts5CsrNewrow(tls, pCsr)
+ } else {
+ switch (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan {
+ case FTS5_PLAN_SPECIAL:
+ {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_EOF
+ rc = SQLITE_OK
+ break
+
+ }
+ fallthrough
+
+ case FTS5_PLAN_SORTED_MATCH:
+ {
+ rc = fts5SorterNext(tls, pCsr)
+ break
+
+ }
+ fallthrough
+
+ default:
+ {
+ var pConfig uintptr = (*Fts5Table)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FpConfig
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FbLock++
+ rc = Xsqlite3_step(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FbLock--
+ if rc != SQLITE_ROW {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_EOF
+ rc = Xsqlite3_reset(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ if rc != SQLITE_OK {
+ (*Sqlite3_vtab)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb)))
+ }
+ } else {
+ rc = SQLITE_OK
+ }
+ break
+
+ }
+ }
+ }
+
+ return rc
+}
+
+func fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt uintptr, va uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ var rc int32
+ var zSql uintptr
+ var ap Va_list
+ _ = ap
+
+ ap = va
+ zSql = Xsqlite3_vmprintf(tls, zFmt, ap)
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_prepare_v3(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -1,
+ uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0))
+ if rc != SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb)))
+ }
+ Xsqlite3_free(tls, zSql)
+ }
+
+ _ = ap
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = *(*uintptr)(unsafe.Pointer(bp + 8))
+ return rc
+}
+
+func fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int32) int32 {
+ bp := tls.Alloc(56)
+ defer tls.Free(56)
+
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var pSorter uintptr
+ var nPhrase int32
+ var nByte Sqlite3_int64
+ var rc int32
+ var zRank uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank
+ var zRankArgs uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs
+
+ nPhrase = sqlite3Fts5ExprPhraseCount(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Sorter{})) + uint64(unsafe.Sizeof(int32(0)))*uint64(nPhrase-1))
+ pSorter = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pSorter == uintptr(0) {
+ return SQLITE_NOMEM
+ }
+ libc.X__builtin___memset_chk(tls, pSorter, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pSorter, 0))
+ (*Fts5Sorter)(unsafe.Pointer(pSorter)).FnIdx = nPhrase
+
+ rc = fts5PrepareStatement(tls, pSorter, pConfig,
+ ts+35806,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName,
+ func() uintptr {
+ if zRankArgs != 0 {
+ return ts + 15017
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if zRankArgs != 0 {
+ return zRankArgs
+ }
+ return ts + 1547
+ }(),
+ func() uintptr {
+ if bDesc != 0 {
+ return ts + 35861
+ }
+ return ts + 35866
+ }()))
+
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter
+ if rc == SQLITE_OK {
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr
+ rc = fts5SorterNext(tls, pCsr)
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = uintptr(0)
+ }
+
+ if rc != SQLITE_OK {
+ Xsqlite3_finalize(tls, (*Fts5Sorter)(unsafe.Pointer(pSorter)).FpStmt)
+ Xsqlite3_free(tls, pSorter)
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = uintptr(0)
+ }
+
+ return rc
+}
+
+func fts5CursorFirst(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int32) int32 {
+ var rc int32
+ var pExpr uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr
+ rc = sqlite3Fts5ExprFirst(tls, pExpr, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid, bDesc)
+ if sqlite3Fts5ExprEof(tls, pExpr) != 0 {
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_EOF
+ }
+ fts5CsrNewrow(tls, pCsr)
+ return rc
+}
+
+func fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var rc int32 = SQLITE_OK
+ var z uintptr = zQuery
+ var n int32
+
+ for int32(*(*int8)(unsafe.Pointer(z))) == ' ' {
+ z++
+ }
+ for n = 0; *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) != ' '; n++ {
+ }
+
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan = FTS5_PLAN_SPECIAL
+
+ if n == 5 && 0 == Xsqlite3_strnicmp(tls, ts+35870, z, n) {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = I64(sqlite3Fts5IndexReads(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex))
+ } else if n == 2 && 0 == Xsqlite3_strnicmp(tls, ts+5460, z, n) {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId
+ } else {
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, ts+35876, libc.VaList(bp, n, z))
+ rc = SQLITE_ERROR
+ }
+
+ return rc
+}
+
+func fts5FindAuxiliary(tls *libc.TLS, pTab uintptr, zName uintptr) uintptr {
+ var pAux uintptr
+
+ for pAux = (*Fts5Global)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpGlobal)).FpAux; pAux != 0; pAux = (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpNext {
+ if Xsqlite3_stricmp(tls, zName, (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc) == 0 {
+ return pAux
+ }
+ }
+
+ return uintptr(0)
+}
+
+func fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ var pAux uintptr = uintptr(0)
+ var zRank uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank
+ var zRankArgs uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs
+
+ if zRankArgs != 0 {
+ var zSql uintptr = sqlite3Fts5Mprintf(tls, bp+16, ts+35904, libc.VaList(bp, zRankArgs))
+ if zSql != 0 {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_prepare_v3(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -1,
+ uint32(SQLITE_PREPARE_PERSISTENT), bp+24, uintptr(0))
+ Xsqlite3_free(tls, zSql)
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ var nByte Sqlite3_int64
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnRankArg = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(uintptr(0))) * uint64((*Fts5Cursor)(unsafe.Pointer(pCsr)).FnRankArg))
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FapRankArg = sqlite3Fts5MallocZero(tls, bp+16, nByte)
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ var i int32
+ for i = 0; i < (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnRankArg; i++ {
+ *(*uintptr)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FapRankArg + uintptr(i)*8)) = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), i)
+ }
+ }
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpRankArgStmt = *(*uintptr)(unsafe.Pointer(bp + 24))
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+
+ }
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ pAux = fts5FindAuxiliary(tls, pTab, zRank)
+ if pAux == uintptr(0) {
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, ts+35914, libc.VaList(bp+8, zRank))
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_ERROR
+ }
+ }
+
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpRank = pAux
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var rc int32 = SQLITE_OK
+ if pRank != 0 {
+ var z uintptr = Xsqlite3_value_text(tls, pRank)
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+
+ if z == uintptr(0) {
+ if Xsqlite3_value_type(tls, pRank) == SQLITE_NULL {
+ rc = SQLITE_ERROR
+ }
+ } else {
+ rc = sqlite3Fts5ConfigParseRank(tls, z, bp+8, bp+16)
+ }
+ if rc == SQLITE_OK {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank = *(*uintptr)(unsafe.Pointer(bp + 8))
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = *(*uintptr)(unsafe.Pointer(bp + 16))
+ *(*int32)(unsafe.Pointer(pCsr + 80)) |= FTS5CSR_FREE_ZRANK
+ } else if rc == SQLITE_ERROR {
+ (*Sqlite3_vtab)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+35935, libc.VaList(bp, z))
+ }
+ } else {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FzRank != 0 {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*Fts5Config)(unsafe.Pointer(pConfig)).FzRank
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*Fts5Config)(unsafe.Pointer(pConfig)).FzRankArgs
+ } else {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRank = ts + 34318
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0)
+ }
+ }
+ return rc
+}
+
+func fts5GetRowidLimit(tls *libc.TLS, pVal uintptr, iDefault I64) I64 {
+ if pVal != 0 {
+ var eType int32 = Xsqlite3_value_numeric_type(tls, pVal)
+ if eType == SQLITE_INTEGER {
+ return Xsqlite3_value_int64(tls, pVal)
+ }
+ }
+ return iDefault
+}
+
+func fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, nVal int32, apVal uintptr) int32 {
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ var pTab uintptr
+ var pConfig uintptr
+ var pCsr uintptr
+ var rc int32
+ var bDesc int32
+ var bOrderByRank int32
+ var pRank uintptr
+ var pRowidEq uintptr
+ var pRowidLe uintptr
+ var pRowidGe uintptr
+ var iCol int32
+ var pzErrmsg uintptr
+ var i int32
+ var iIdxStr int32
+
+ var pzErr uintptr
+ var zText uintptr
+ var bGlob int32
+ var zText1 uintptr
+ pTab = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab
+ pConfig = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ pCsr = pCursor
+ rc = SQLITE_OK
+ pRank = uintptr(0)
+ pRowidEq = uintptr(0)
+ pRowidLe = uintptr(0)
+ pRowidGe = uintptr(0)
+ pzErrmsg = (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg
+ iIdxStr = 0
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+
+ if !((*Fts5Config)(unsafe.Pointer(pConfig)).FbLock != 0) {
+ goto __1
+ }
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+35767, 0)
+ return SQLITE_ERROR
+__1:
+ ;
+ if !((*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0) {
+ goto __2
+ }
+ fts5FreeCursorComponents(tls, pCsr)
+ libc.X__builtin___memset_chk(tls, pCsr+32, 0, uint64(unsafe.Sizeof(Fts5Cursor{}))-uint64((int64(pCsr+32)-int64(pCsr))/1), libc.X__builtin_object_size(tls, pCsr+32, 0))
+__2:
+ ;
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = pTab + 16
+
+ i = 0
+__3:
+ if !(i < nVal) {
+ goto __5
+ }
+ switch int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(libc.PostIncInt32(&iIdxStr, 1))))) {
+ case 'r':
+ goto __7
+ case 'M':
+ goto __8
+ case 'L':
+ goto __9
+ case 'G':
+ goto __10
+ case '=':
+ goto __11
+ case '<':
+ goto __12
+ default:
+ goto __13
+ }
+ goto __6
+__7:
+ pRank = *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))
+ goto __6
+__8:
+ zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)))
+ if !(zText == uintptr(0)) {
+ goto __14
+ }
+ zText = ts + 1547
+__14:
+ ;
+ iCol = 0
+__15:
+ iCol = iCol*10 + (int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) - '0')
+ iIdxStr++
+ goto __16
+__16:
+ if int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= '0' && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= '9' {
+ goto __15
+ }
+ goto __17
+__17:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(zText))) == '*') {
+ goto __18
+ }
+
+ rc = fts5SpecialMatch(tls, pTab, pCsr, zText+1)
+ goto filter_out
+ goto __19
+__18:
+ pzErr = pTab + 16
+ rc = sqlite3Fts5ExprNew(tls, pConfig, 0, iCol, zText, bp+8, pzErr)
+ if !(rc == SQLITE_OK) {
+ goto __20
+ }
+ rc = sqlite3Fts5ExprAnd(tls, pCsr+64, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+__20:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __21
+ }
+ goto filter_out
+__21:
+ ;
+__19:
+ ;
+ goto __6
+
+__9:
+__10:
+ bGlob = libc.Bool32(int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr-1)))) == 'G')
+ zText1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)))
+ iCol = 0
+__22:
+ iCol = iCol*10 + (int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) - '0')
+ iIdxStr++
+ goto __23
+__23:
+ if int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= '0' && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= '9' {
+ goto __22
+ }
+ goto __24
+__24:
+ ;
+ if !(zText1 != 0) {
+ goto __25
+ }
+ rc = sqlite3Fts5ExprPattern(tls, pConfig, bGlob, iCol, zText1, bp+8)
+__25:
+ ;
+ if !(rc == SQLITE_OK) {
+ goto __26
+ }
+ rc = sqlite3Fts5ExprAnd(tls, pCsr+64, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0)
+__26:
+ ;
+ if !(rc != SQLITE_OK) {
+ goto __27
+ }
+ goto filter_out
+__27:
+ ;
+ goto __6
+
+__11:
+ pRowidEq = *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))
+ goto __6
+__12:
+ pRowidLe = *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))
+ goto __6
+__13:
+ ;
+ pRowidGe = *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))
+ goto __6
+__6:
+ ;
+ goto __4
+__4:
+ i++
+ goto __3
+ goto __5
+__5:
+ ;
+ bOrderByRank = func() int32 {
+ if idxNum&FTS5_BI_ORDER_RANK != 0 {
+ return 1
+ }
+ return 0
+ }()
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FbDesc = libc.AssignInt32(&bDesc, func() int32 {
+ if idxNum&FTS5_BI_ORDER_DESC != 0 {
+ return 1
+ }
+ return 0
+ }())
+
+ if !(pRowidEq != 0) {
+ goto __28
+ }
+ pRowidLe = libc.AssignUintptr(&pRowidGe, pRowidEq)
+__28:
+ ;
+ if !(bDesc != 0) {
+ goto __29
+ }
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid = fts5GetRowidLimit(tls, pRowidLe, int64(0xffffffff)|int64(0x7fffffff)<<32)
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid = fts5GetRowidLimit(tls, pRowidGe, int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32))
+ goto __30
+__29:
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid = fts5GetRowidLimit(tls, pRowidLe, int64(0xffffffff)|int64(0x7fffffff)<<32)
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid = fts5GetRowidLimit(tls, pRowidGe, int64(-1)-(int64(0xffffffff)|int64(0x7fffffff)<<32))
+__30:
+ ;
+ if !((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr != 0) {
+ goto __31
+ }
+
+ if !((*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FbDesc != 0) {
+ goto __33
+ }
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid = (*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FiFirstRowid
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid = (*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FiLastRowid
+ goto __34
+__33:
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid = (*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FiLastRowid
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid = (*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FiFirstRowid
+__34:
+ ;
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan = FTS5_PLAN_SOURCE
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr = (*Fts5Cursor)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr)).FpExpr
+ rc = fts5CursorFirst(tls, pTab, pCsr, bDesc)
+ goto __32
+__31:
+ if !((*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr != 0) {
+ goto __35
+ }
+ rc = fts5CursorParseRank(tls, pConfig, pCsr, pRank)
+ if !(rc == SQLITE_OK) {
+ goto __37
+ }
+ if !(bOrderByRank != 0) {
+ goto __38
+ }
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan = FTS5_PLAN_SORTED_MATCH
+ rc = fts5CursorFirstSorted(tls, pTab, pCsr, bDesc)
+ goto __39
+__38:
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan = FTS5_PLAN_MATCH
+ rc = fts5CursorFirst(tls, pTab, pCsr, bDesc)
+__39:
+ ;
+__37:
+ ;
+ goto __36
+__35:
+ if !((*Fts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0)) {
+ goto __40
+ }
+ *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls,
+ ts+35968, libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ rc = SQLITE_ERROR
+ goto __41
+__40:
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan = func() int32 {
+ if pRowidEq != 0 {
+ return FTS5_PLAN_ROWID
+ }
+ return FTS5_PLAN_SCAN
+ }()
+ rc = sqlite3Fts5StorageStmt(tls,
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, fts5StmtType(tls, pCsr), pCsr+56, pTab+16)
+ if !(rc == SQLITE_OK) {
+ goto __42
+ }
+ if !(pRowidEq != uintptr(0)) {
+ goto __43
+ }
+
+ Xsqlite3_bind_value(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, 1, pRowidEq)
+ goto __44
+__43:
+ Xsqlite3_bind_int64(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, 1, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiFirstRowid)
+ Xsqlite3_bind_int64(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, 2, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiLastRowid)
+__44:
+ ;
+ rc = fts5NextMethod(tls, pCursor)
+__42:
+ ;
+__41:
+ ;
+__36:
+ ;
+__32:
+ ;
+filter_out:
+ sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp + 8)))
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = pzErrmsg
+ return rc
+}
+
+func fts5EofMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ var pCsr uintptr = pCursor
+ return func() int32 {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_EOF != 0 {
+ return 1
+ }
+ return 0
+ }()
+}
+
+func fts5CursorRowid(tls *libc.TLS, pCsr uintptr) I64 {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter != 0 {
+ return (*Fts5Sorter)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter)).FiRowid
+ } else {
+ return sqlite3Fts5ExprRowid(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+ }
+ return I64(0)
+}
+
+func fts5RowidMethod(tls *libc.TLS, pCursor uintptr, pRowid uintptr) int32 {
+ var pCsr uintptr = pCursor
+ var ePlan int32 = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan
+
+ switch ePlan {
+ case FTS5_PLAN_SPECIAL:
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = int64(0)
+ break
+
+ case FTS5_PLAN_SOURCE:
+ fallthrough
+ case FTS5_PLAN_MATCH:
+ fallthrough
+ case FTS5_PLAN_SORTED_MATCH:
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = fts5CursorRowid(tls, pCsr)
+ break
+
+ default:
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = Xsqlite3_column_int64(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, 0)
+ break
+ }
+
+ return SQLITE_OK
+}
+
+func fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt == uintptr(0) {
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var eStmt int32 = fts5StmtType(tls, pCsr)
+ rc = sqlite3Fts5StorageStmt(tls,
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, eStmt, pCsr+56, func() uintptr {
+ if bErrormsg != 0 {
+ return pTab + 16
+ }
+ return uintptr(0)
+ }())
+
+ }
+
+ if rc == SQLITE_OK && (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_CONTENT != 0 {
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+
+ Xsqlite3_reset(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ Xsqlite3_bind_int64(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, 1, fts5CursorRowid(tls, pCsr))
+ (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)).FbLock++
+ rc = Xsqlite3_step(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)).FbLock--
+ if rc == SQLITE_ROW {
+ rc = SQLITE_OK
+ *(*int32)(unsafe.Pointer(pCsr + 80)) &= libc.CplInt32(FTS5CSR_REQUIRE_CONTENT)
+ } else {
+ rc = Xsqlite3_reset(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt)
+ if rc == SQLITE_OK {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ } else if (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)).FpzErrmsg != 0 {
+ *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls,
+ ts+3658, libc.VaList(bp, Xsqlite3_errmsg(tls, (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pTab)).FpConfig)).Fdb)))
+ }
+ }
+ }
+ return rc
+}
+
+func fts5SetVtabError(tls *libc.TLS, p uintptr, zFormat uintptr, va uintptr) {
+ var ap Va_list
+ _ = ap
+ ap = va
+
+ (*Fts5FullTable)(unsafe.Pointer(p)).Fp.Fbase.FzErrMsg = Xsqlite3_vmprintf(tls, zFormat, ap)
+ _ = ap
+}
+
+func fts5SpecialInsert(tls *libc.TLS, pTab uintptr, zCmd uintptr, pVal uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var rc int32 = SQLITE_OK
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ if 0 == Xsqlite3_stricmp(tls, ts+36004, zCmd) {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ fts5SetVtabError(tls, pTab,
+ ts+36015, 0)
+ rc = SQLITE_ERROR
+ } else {
+ rc = sqlite3Fts5StorageDeleteAll(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, ts+36095, zCmd) {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NONE {
+ fts5SetVtabError(tls, pTab,
+ ts+36103, 0)
+ rc = SQLITE_ERROR
+ } else {
+ rc = sqlite3Fts5StorageRebuild(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, ts+17356, zCmd) {
+ rc = sqlite3Fts5StorageOptimize(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ } else if 0 == Xsqlite3_stricmp(tls, ts+36159, zCmd) {
+ var nMerge int32 = Xsqlite3_value_int(tls, pVal)
+ rc = sqlite3Fts5StorageMerge(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, nMerge)
+ } else if 0 == Xsqlite3_stricmp(tls, ts+36165, zCmd) {
+ var iArg int32 = Xsqlite3_value_int(tls, pVal)
+ rc = sqlite3Fts5StorageIntegrity(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iArg)
+ } else {
+ rc = sqlite3Fts5IndexLoadConfig(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5ConfigSetValue(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig, zCmd, pVal, bp)
+ }
+ if rc == SQLITE_OK {
+ if *(*int32)(unsafe.Pointer(bp)) != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ rc = sqlite3Fts5StorageConfigValue(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, zCmd, pVal, 0)
+ }
+ }
+ }
+ return rc
+}
+
+func fts5SpecialDelete(tls *libc.TLS, pTab uintptr, apVal uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var eType1 int32 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ if eType1 == SQLITE_INTEGER {
+ var iDel Sqlite3_int64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ rc = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iDel, apVal+2*8)
+ }
+ return rc
+}
+
+func fts5StorageInsert(tls *libc.TLS, pRc uintptr, pTab uintptr, apVal uintptr, piRowid uintptr) {
+ var rc int32 = *(*int32)(unsafe.Pointer(pRc))
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5StorageContentInsert(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, apVal, piRowid)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5StorageIndexInsert(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, apVal, *(*I64)(unsafe.Pointer(piRowid)))
+ }
+ *(*int32)(unsafe.Pointer(pRc)) = rc
+}
+
+func fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, pRowid uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var pTab uintptr = pVtab
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var eType0 int32
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+
+ (*Fts5Config)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = pTab + 16
+
+ fts5TripCursors(tls, pTab)
+
+ eType0 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apVal)))
+ if eType0 == SQLITE_NULL &&
+ Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(2+(*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*8))) != SQLITE_NULL {
+ var z uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(2+(*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*8)))
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL &&
+ 0 == Xsqlite3_stricmp(tls, ts+17901, z) {
+ *(*int32)(unsafe.Pointer(bp + 16)) = fts5SpecialDelete(tls, pTab, apVal)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = fts5SpecialInsert(tls, pTab, z, *(*uintptr)(unsafe.Pointer(apVal + uintptr(2+(*Fts5Config)(unsafe.Pointer(pConfig)).FnCol+1)*8)))
+ }
+ } else {
+ var eConflict int32 = SQLITE_ABORT
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ eConflict = Xsqlite3_vtab_on_conflict(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb)
+ }
+
+ if eType0 == SQLITE_INTEGER && fts5IsContentless(tls, pTab) != 0 {
+ (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+36181,
+ libc.VaList(bp, func() uintptr {
+ if nArg > 1 {
+ return ts + 20879
+ }
+ return ts + 36218
+ }(), (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_ERROR
+ } else if nArg == 1 {
+ var iDel I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal)))
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iDel, uintptr(0))
+ } else {
+ var eType1 int32 = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+
+ if eType1 != SQLITE_INTEGER && eType1 != SQLITE_NULL {
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_MISMATCH
+ } else if eType0 != SQLITE_INTEGER {
+ if eConflict == SQLITE_REPLACE && eType1 == SQLITE_INTEGER {
+ var iNew I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iNew, uintptr(0))
+ }
+ fts5StorageInsert(tls, bp+16, pTab, apVal, pRowid)
+ } else {
+ var iOld I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal)))
+ var iNew I64 = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ if eType1 == SQLITE_INTEGER && iOld != iNew {
+ if eConflict == SQLITE_REPLACE {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iOld, uintptr(0))
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iNew, uintptr(0))
+ }
+ fts5StorageInsert(tls, bp+16, pTab, apVal, pRowid)
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageContentInsert(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, apVal, pRowid)
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iOld, uintptr(0))
+ }
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageIndexInsert(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, apVal, *(*Sqlite_int64)(unsafe.Pointer(pRowid)))
+ }
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5StorageDelete(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iOld, uintptr(0))
+ fts5StorageInsert(tls, bp+16, pTab, apVal, pRowid)
+ }
+ }
+ }
+ }
+
+ (*Fts5Config)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = uintptr(0)
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func fts5SyncMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ var rc int32
+ var pTab uintptr = pVtab
+
+ (*Fts5Config)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = pTab + 16
+ fts5TripCursors(tls, pTab)
+ rc = sqlite3Fts5StorageSync(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ (*Fts5Config)(unsafe.Pointer((*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig)).FpzErrmsg = uintptr(0)
+ return rc
+}
+
+func fts5BeginMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ fts5NewTransaction(tls, pVtab)
+ return SQLITE_OK
+}
+
+func fts5CommitMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ _ = pVtab
+
+ return SQLITE_OK
+}
+
+func fts5RollbackMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ var rc int32
+ var pTab uintptr = pVtab
+
+ rc = sqlite3Fts5StorageRollback(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+ return rc
+}
+
+func fts5ApiUserData(tls *libc.TLS, pCtx uintptr) uintptr {
+ var pCsr uintptr = pCtx
+ return (*Fts5Auxiliary)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux)).FpUserData
+}
+
+func fts5ApiColumnCount(tls *libc.TLS, pCtx uintptr) int32 {
+ var pCsr uintptr = pCtx
+ return (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig)).FnCol
+}
+
+func fts5ApiColumnTotalSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr) int32 {
+ var pCsr uintptr = pCtx
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ return sqlite3Fts5StorageSize(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iCol, pnToken)
+}
+
+func fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) int32 {
+ var pCsr uintptr = pCtx
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ return sqlite3Fts5StorageRowCount(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, pnRow)
+}
+
+func fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) int32 {
+ var pCsr uintptr = pCtx
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ return sqlite3Fts5Tokenize(tls,
+ (*Fts5Table)(unsafe.Pointer(pTab)).FpConfig, FTS5_TOKENIZE_AUX, pText, nText, pUserData, xToken)
+}
+
+func fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) int32 {
+ var pCsr uintptr = pCtx
+ return sqlite3Fts5ExprPhraseCount(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+}
+
+func fts5ApiPhraseSize(tls *libc.TLS, pCtx uintptr, iPhrase int32) int32 {
+ var pCsr uintptr = pCtx
+ return sqlite3Fts5ExprPhraseSize(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, iPhrase)
+}
+
+func fts5ApiColumnText(tls *libc.TLS, pCtx uintptr, iCol int32, pz uintptr, pn uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pCsr uintptr = pCtx
+ if fts5IsContentless(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab) != 0 ||
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_SPECIAL {
+ *(*uintptr)(unsafe.Pointer(pz)) = uintptr(0)
+ *(*int32)(unsafe.Pointer(pn)) = 0
+ } else {
+ rc = fts5SeekCursor(tls, pCsr, 0)
+ if rc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(pz)) = Xsqlite3_column_text(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, iCol+1)
+ *(*int32)(unsafe.Pointer(pn)) = Xsqlite3_column_bytes(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, iCol+1)
+ }
+ }
+ return rc
+}
+
+func fts5CsrPoslist(tls *libc.TLS, pCsr uintptr, iPhrase int32, pa uintptr, pn uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pConfig uintptr = (*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig
+ var rc int32 = SQLITE_OK
+ var bLive int32 = libc.Bool32((*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter == uintptr(0))
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_POSLIST != 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail != FTS5_DETAIL_FULL {
+ var aPopulator uintptr
+ var i int32
+ aPopulator = sqlite3Fts5ExprClearPoslists(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, bLive)
+ if aPopulator == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol && rc == SQLITE_OK; i++ {
+ rc = fts5ApiColumnText(tls, pCsr, i, bp, bp+8)
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5ExprPopulatePoslists(tls,
+ pConfig, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, aPopulator, i, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)))
+ }
+ }
+ Xsqlite3_free(tls, aPopulator)
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter != 0 {
+ sqlite3Fts5ExprCheckPoslists(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, (*Fts5Sorter)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter)).FiRowid)
+ }
+ }
+ *(*int32)(unsafe.Pointer(pCsr + 80)) &= libc.CplInt32(FTS5CSR_REQUIRE_POSLIST)
+ }
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter != 0 && (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_FULL {
+ var pSorter uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter
+ var i1 int32 = func() int32 {
+ if iPhrase == 0 {
+ return 0
+ }
+ return *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(iPhrase-1)*4))
+ }()
+ *(*int32)(unsafe.Pointer(pn)) = *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(iPhrase)*4)) - i1
+ *(*uintptr)(unsafe.Pointer(pa)) = (*Fts5Sorter)(unsafe.Pointer(pSorter)).FaPoslist + uintptr(i1)
+ } else {
+ *(*int32)(unsafe.Pointer(pn)) = sqlite3Fts5ExprPoslist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, iPhrase, pa)
+ }
+
+ return rc
+}
+
+func fts5CacheInstArray(tls *libc.TLS, pCsr uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ var aIter uintptr
+ var nIter int32
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig)).FnCol
+
+ nIter = sqlite3Fts5ExprPhraseCount(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter == uintptr(0) {
+ var nByte Sqlite3_int64 = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5PoslistReader{})) * uint64(nIter))
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter = sqlite3Fts5MallocZero(tls, bp, nByte)
+ }
+ aIter = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter
+
+ if aIter != 0 {
+ var nInst int32 = 0
+ var i int32
+
+ for i = 0; i < nIter && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK; i++ {
+ *(*int32)(unsafe.Pointer(bp)) = fts5CsrPoslist(tls, pCsr, i, bp+8, bp+16)
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ sqlite3Fts5PoslistReaderInit(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), aIter+uintptr(i)*32)
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK {
+ for 1 != 0 {
+ var aInst uintptr
+ var iBest int32 = -1
+ for i = 0; i < nIter; i++ {
+ if int32((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FbEof) == 0 &&
+ (iBest < 0 || (*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(i)*32)).FiPos < (*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(iBest)*32)).FiPos) {
+ iBest = i
+ }
+ }
+ if iBest < 0 {
+ break
+ }
+
+ nInst++
+ if nInst >= (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstAlloc {
+ var nNewSize int32
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstAlloc != 0 {
+ nNewSize = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstAlloc * 2
+ } else {
+ nNewSize = 32
+ }
+ aInst = Xsqlite3_realloc64(tls,
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst, uint64(nNewSize)*uint64(unsafe.Sizeof(int32(0)))*uint64(3))
+ if aInst != 0 {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst = aInst
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstAlloc = nNewSize
+ } else {
+ nInst--
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_NOMEM
+ break
+ }
+ }
+
+ aInst = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst + uintptr(3*(nInst-1))*4
+ *(*int32)(unsafe.Pointer(aInst)) = iBest
+ *(*int32)(unsafe.Pointer(aInst + 1*4)) = int32((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(iBest)*32)).FiPos >> 32)
+ *(*int32)(unsafe.Pointer(aInst + 2*4)) = int32((*Fts5PoslistReader)(unsafe.Pointer(aIter+uintptr(iBest)*32)).FiPos & int64(0x7FFFFFFF))
+ if *(*int32)(unsafe.Pointer(aInst + 1*4)) < 0 || *(*int32)(unsafe.Pointer(aInst + 1*4)) >= nCol {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+ sqlite3Fts5PoslistReaderNext(tls, aIter+uintptr(iBest)*32)
+ }
+ }
+
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstCount = nInst
+ *(*int32)(unsafe.Pointer(pCsr + 80)) &= libc.CplInt32(FTS5CSR_REQUIRE_INST)
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func fts5ApiInstCount(tls *libc.TLS, pCtx uintptr, pnInst uintptr) int32 {
+ var pCsr uintptr = pCtx
+ var rc int32 = SQLITE_OK
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_INST == 0 ||
+ SQLITE_OK == libc.AssignInt32(&rc, fts5CacheInstArray(tls, pCsr)) {
+ *(*int32)(unsafe.Pointer(pnInst)) = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstCount
+ }
+ return rc
+}
+
+func fts5ApiInst(tls *libc.TLS, pCtx uintptr, iIdx int32, piPhrase uintptr, piCol uintptr, piOff uintptr) int32 {
+ var pCsr uintptr = pCtx
+ var rc int32 = SQLITE_OK
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_INST == 0 ||
+ SQLITE_OK == libc.AssignInt32(&rc, fts5CacheInstArray(tls, pCsr)) {
+ if iIdx < 0 || iIdx >= (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnInstCount {
+ rc = SQLITE_RANGE
+ } else {
+ *(*int32)(unsafe.Pointer(piPhrase)) = *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst + uintptr(iIdx*3)*4))
+ *(*int32)(unsafe.Pointer(piCol)) = *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst + uintptr(iIdx*3+1)*4))
+ *(*int32)(unsafe.Pointer(piOff)) = *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaInst + uintptr(iIdx*3+2)*4))
+ }
+ }
+ return rc
+}
+
+func fts5ApiRowid(tls *libc.TLS, pCtx uintptr) Sqlite3_int64 {
+ return fts5CursorRowid(tls, pCtx)
+}
+
+func fts5ColumnSizeCb(tls *libc.TLS, pContext uintptr, tflags int32, pUnused uintptr, nUnused int32, iUnused1 int32, iUnused2 int32) int32 {
+ var pCnt uintptr = pContext
+ _ = pUnused
+ _ = nUnused
+ _ = iUnused1
+ _ = iUnused2
+ if tflags&FTS5_TOKEN_COLOCATED == 0 {
+ *(*int32)(unsafe.Pointer(pCnt))++
+ }
+ return SQLITE_OK
+}
+
+func fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ var pCsr uintptr = pCtx
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fcsrflags&FTS5CSR_REQUIRE_DOCSIZE != 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ var iRowid I64 = fts5CursorRowid(tls, pCsr)
+ rc = sqlite3Fts5StorageDocsize(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, iRowid, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize)
+ } else if (*Fts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) {
+ var i int32
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ if int32(*(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(i)))) == 0 {
+ *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize + uintptr(i)*4)) = -1
+ }
+ }
+ } else {
+ var i int32
+ for i = 0; rc == SQLITE_OK && i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ if int32(*(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(i)))) == 0 {
+ var p uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize + uintptr(i)*4
+ *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize + uintptr(i)*4)) = 0
+ rc = fts5ApiColumnText(tls, pCtx, i, bp, bp+8)
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5Tokenize(tls,
+ pConfig, FTS5_TOKENIZE_AUX, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5ColumnSizeCb})))
+ }
+ }
+ }
+ }
+ *(*int32)(unsafe.Pointer(pCsr + 80)) &= libc.CplInt32(FTS5CSR_REQUIRE_DOCSIZE)
+ }
+ if iCol < 0 {
+ var i int32
+ *(*int32)(unsafe.Pointer(pnToken)) = 0
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ *(*int32)(unsafe.Pointer(pnToken)) += *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize + uintptr(i)*4))
+ }
+ } else if iCol < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol {
+ *(*int32)(unsafe.Pointer(pnToken)) = *(*int32)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize + uintptr(iCol)*4))
+ } else {
+ *(*int32)(unsafe.Pointer(pnToken)) = 0
+ rc = SQLITE_RANGE
+ }
+ return rc
+}
+
+func fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pCsr uintptr = pCtx
+ var pData uintptr
+
+ for pData = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata; pData != 0; pData = (*Fts5Auxdata)(unsafe.Pointer(pData)).FpNext {
+ if (*Fts5Auxdata)(unsafe.Pointer(pData)).FpAux == (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux {
+ break
+ }
+ }
+
+ if pData != 0 {
+ if (*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete})).f(tls, (*Fts5Auxdata)(unsafe.Pointer(pData)).FpPtr)
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK
+ pData = sqlite3Fts5MallocZero(tls, bp, int64(unsafe.Sizeof(Fts5Auxdata{})))
+ if pData == uintptr(0) {
+ if xDelete != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{xDelete})).f(tls, pPtr)
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FpAux = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData
+ }
+
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr
+ return SQLITE_OK
+}
+
+func fts5ApiGetAuxdata(tls *libc.TLS, pCtx uintptr, bClear int32) uintptr {
+ var pCsr uintptr = pCtx
+ var pData uintptr
+ var pRet uintptr = uintptr(0)
+
+ for pData = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata; pData != 0; pData = (*Fts5Auxdata)(unsafe.Pointer(pData)).FpNext {
+ if (*Fts5Auxdata)(unsafe.Pointer(pData)).FpAux == (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux {
+ break
+ }
+ }
+
+ if pData != 0 {
+ pRet = (*Fts5Auxdata)(unsafe.Pointer(pData)).FpPtr
+ if bClear != 0 {
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FpPtr = uintptr(0)
+ (*Fts5Auxdata)(unsafe.Pointer(pData)).FxDelete = uintptr(0)
+ }
+ }
+
+ return pRet
+}
+
+func fts5ApiPhraseNext(tls *libc.TLS, pUnused uintptr, pIter uintptr, piCol uintptr, piOff uintptr) {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ _ = pUnused
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa >= (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb {
+ *(*int32)(unsafe.Pointer(piCol)) = -1
+ *(*int32)(unsafe.Pointer(piOff)) = -1
+ } else {
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp))
+ if *(*int32)(unsafe.Pointer(bp)) == 1 {
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp))
+ *(*int32)(unsafe.Pointer(piCol)) = *(*int32)(unsafe.Pointer(bp))
+ *(*int32)(unsafe.Pointer(piOff)) = 0
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp))
+ }
+ *(*int32)(unsafe.Pointer(piOff)) += *(*int32)(unsafe.Pointer(bp)) - 2
+ }
+}
+
+func fts5ApiPhraseFirst(tls *libc.TLS, pCtx uintptr, iPhrase int32, pIter uintptr, piCol uintptr, piOff uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pCsr uintptr = pCtx
+
+ var rc int32 = fts5CsrPoslist(tls, pCsr, iPhrase, pIter, bp)
+ if rc == SQLITE_OK {
+ (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb = func() uintptr {
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa != 0 {
+ return (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa + uintptr(*(*int32)(unsafe.Pointer(bp)))
+ }
+ return uintptr(0)
+ }()
+ *(*int32)(unsafe.Pointer(piCol)) = 0
+ *(*int32)(unsafe.Pointer(piOff)) = 0
+ fts5ApiPhraseNext(tls, pCtx, pIter, piCol, piOff)
+ }
+ return rc
+}
+
+func fts5ApiPhraseNextColumn(tls *libc.TLS, pCtx uintptr, pIter uintptr, piCol uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCsr uintptr = pCtx
+ var pConfig uintptr = (*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_COLUMNS {
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa >= (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb {
+ *(*int32)(unsafe.Pointer(piCol)) = -1
+ } else {
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp))
+ *(*int32)(unsafe.Pointer(piCol)) += *(*int32)(unsafe.Pointer(bp)) - 2
+ }
+ } else {
+ for 1 != 0 {
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa >= (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb {
+ *(*int32)(unsafe.Pointer(piCol)) = -1
+ return
+ }
+ if int32(*(*uint8)(unsafe.Pointer((*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa))) == 0x01 {
+ break
+ }
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa, bp+4))
+ }
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(1 + sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa+1, piCol))
+ }
+}
+
+func fts5ApiPhraseFirstColumn(tls *libc.TLS, pCtx uintptr, iPhrase int32, pIter uintptr, piCol uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var pCsr uintptr = pCtx
+ var pConfig uintptr = (*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_COLUMNS {
+ var pSorter uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpSorter
+
+ if pSorter != 0 {
+ var i1 int32 = func() int32 {
+ if iPhrase == 0 {
+ return 0
+ }
+ return *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(iPhrase-1)*4))
+ }()
+ *(*int32)(unsafe.Pointer(bp)) = *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(iPhrase)*4)) - i1
+ (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa = (*Fts5Sorter)(unsafe.Pointer(pSorter)).FaPoslist + uintptr(i1)
+ } else {
+ rc = sqlite3Fts5ExprPhraseCollist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, iPhrase, pIter, bp)
+ }
+ if rc == SQLITE_OK {
+ (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb = func() uintptr {
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa != 0 {
+ return (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa + uintptr(*(*int32)(unsafe.Pointer(bp)))
+ }
+ return uintptr(0)
+ }()
+ *(*int32)(unsafe.Pointer(piCol)) = 0
+ fts5ApiPhraseNextColumn(tls, pCtx, pIter, piCol)
+ }
+ } else {
+ rc = fts5CsrPoslist(tls, pCsr, iPhrase, pIter, bp+4)
+ if rc == SQLITE_OK {
+ (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fb = func() uintptr {
+ if (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa != 0 {
+ return (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa + uintptr(*(*int32)(unsafe.Pointer(bp + 4)))
+ }
+ return uintptr(0)
+ }()
+ if *(*int32)(unsafe.Pointer(bp + 4)) <= 0 {
+ *(*int32)(unsafe.Pointer(piCol)) = -1
+ } else if int32(*(*uint8)(unsafe.Pointer((*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa))) == 0x01 {
+ *(*uintptr)(unsafe.Pointer(pIter)) += uintptr(1 + sqlite3Fts5GetVarint32(tls, (*Fts5PhraseIter)(unsafe.Pointer(pIter)).Fa+1, piCol))
+ } else {
+ *(*int32)(unsafe.Pointer(piCol)) = 0
+ }
+ }
+ }
+
+ return rc
+}
+
+var sFts5Api = Fts5ExtensionApi{
+ FiVersion: 2,
+ FxUserData: 0,
+ FxColumnCount: 0,
+ FxRowCount: 0,
+ FxColumnTotalSize: 0,
+ FxTokenize: 0,
+ FxPhraseCount: 0,
+ FxPhraseSize: 0,
+ FxInstCount: 0,
+ FxInst: 0,
+ FxRowid: 0,
+ FxColumnText: 0,
+ FxColumnSize: 0,
+ FxQueryPhrase: 0,
+ FxSetAuxdata: 0,
+ FxGetAuxdata: 0,
+ FxPhraseFirst: 0,
+ FxPhraseNext: 0,
+ FxPhraseFirstColumn: 0,
+ FxPhraseNextColumn: 0,
+}
+
+func fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pCsr uintptr = pCtx
+ var pTab uintptr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ rc = fts5OpenMethod(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab, bp)
+ if rc == SQLITE_OK {
+ (*Fts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FePlan = FTS5_PLAN_MATCH
+ (*Fts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FiFirstRowid = int64(-1) - (int64(0xffffffff) | int64(0x7fffffff)<<32)
+ (*Fts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FiLastRowid = int64(0xffffffff) | int64(0x7fffffff)<<32
+ (*Fts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FpVtab = pTab
+ rc = sqlite3Fts5ExprClonePhrase(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, iPhrase, *(*uintptr)(unsafe.Pointer(bp))+64)
+ }
+
+ if rc == SQLITE_OK {
+ for rc = fts5CursorFirst(tls, pTab, *(*uintptr)(unsafe.Pointer(bp)), 0); rc == SQLITE_OK && (*Fts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&FTS5CSR_EOF == 0; rc = fts5NextMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xCallback})).f(tls, uintptr(unsafe.Pointer(&sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData)
+ if rc != SQLITE_OK {
+ if rc == SQLITE_DONE {
+ rc = SQLITE_OK
+ }
+ break
+ }
+ }
+ }
+
+ fts5CloseMethod(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ return rc
+}
+
+func fts5ApiInvoke(tls *libc.TLS, pAux uintptr, pCsr uintptr, context uintptr, argc int32, argv uintptr) {
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux = pAux
+ (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr)
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc})).f(tls, uintptr(unsafe.Pointer(&sFts5Api)), pCsr, context, argc, argv)
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpAux = uintptr(0)
+}
+
+func fts5CursorFromCsrid(tls *libc.TLS, pGlobal uintptr, iCsrId I64) uintptr {
+ var pCsr uintptr
+ for pCsr = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpCsr; pCsr != 0; pCsr = (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpNext {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId == iCsrId {
+ break
+ }
+ }
+ return pCsr
+}
+
+func fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pAux uintptr
+ var pCsr uintptr
+ var iCsrId I64
+
+ pAux = Xsqlite3_user_data(tls, context)
+ iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv)))
+
+ pCsr = fts5CursorFromCsrid(tls, (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId)
+ if pCsr == uintptr(0) || (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 {
+ var zErr uintptr = Xsqlite3_mprintf(tls, ts+36230, libc.VaList(bp, iCsrId))
+ Xsqlite3_result_error(tls, context, zErr, -1)
+ Xsqlite3_free(tls, zErr)
+ } else {
+ fts5ApiInvoke(tls, pAux, pCsr, context, argc-1, argv+1*8)
+ }
+}
+
+func sqlite3Fts5TableFromCsrid(tls *libc.TLS, pGlobal uintptr, iCsrId I64) uintptr {
+ var pCsr uintptr
+ pCsr = fts5CursorFromCsrid(tls, pGlobal, iCsrId)
+ if pCsr != 0 {
+ return (*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab
+ }
+ return uintptr(0)
+}
+
+func fts5PoslistBlob(tls *libc.TLS, pCtx uintptr, pCsr uintptr) int32 {
+ bp := tls.Alloc(68)
+ defer tls.Free(68)
+
+ var i int32
+ *(*int32)(unsafe.Pointer(bp + 24)) = SQLITE_OK
+ var nPhrase int32 = sqlite3Fts5ExprPhraseCount(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr)
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+ switch (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig)).FeDetail {
+ case FTS5_DETAIL_FULL:
+ for i = 0; i < nPhrase-1; i++ {
+ var nByte int32 = sqlite3Fts5ExprPoslist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+16)
+ sqlite3Fts5BufferAppendVarint(tls, bp+24, bp, int64(nByte))
+ }
+
+ for i = 0; i < nPhrase; i++ {
+ var nPoslist int32
+ nPoslist = sqlite3Fts5ExprPoslist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+32)
+ sqlite3Fts5BufferAppendBlob(tls, bp+24, bp, uint32(nPoslist), *(*uintptr)(unsafe.Pointer(bp + 32)))
+ }
+ break
+
+ case FTS5_DETAIL_COLUMNS:
+ for i = 0; *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK && i < nPhrase-1; i++ {
+ *(*int32)(unsafe.Pointer(bp + 24)) = sqlite3Fts5ExprPhraseCollist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+40, bp+48)
+ sqlite3Fts5BufferAppendVarint(tls, bp+24, bp, int64(*(*int32)(unsafe.Pointer(bp + 48))))
+ }
+
+ for i = 0; *(*int32)(unsafe.Pointer(bp + 24)) == SQLITE_OK && i < nPhrase; i++ {
+ *(*int32)(unsafe.Pointer(bp + 24)) = sqlite3Fts5ExprPhraseCollist(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+56, bp+64)
+ sqlite3Fts5BufferAppendBlob(tls, bp+24, bp, uint32(*(*int32)(unsafe.Pointer(bp + 64))), *(*uintptr)(unsafe.Pointer(bp + 56)))
+ }
+ break
+
+ default:
+ break
+ }
+
+ Xsqlite3_result_blob(tls, pCtx, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp)).Fn, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{Xsqlite3_free})))
+ return *(*int32)(unsafe.Pointer(bp + 24))
+}
+
+func fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) int32 {
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab
+ var pConfig uintptr = (*Fts5FullTable)(unsafe.Pointer(pTab)).Fp.FpConfig
+ var pCsr uintptr = pCursor
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_SPECIAL {
+ if iCol == (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol {
+ Xsqlite3_result_int64(tls, pCtx, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial)
+ }
+ } else if iCol == (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol {
+ Xsqlite3_result_int64(tls, pCtx, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId)
+ } else if iCol == (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol+1 {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_SOURCE {
+ fts5PoslistBlob(tls, pCtx, pCsr)
+ } else if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_MATCH ||
+ (*Fts5Cursor)(unsafe.Pointer(pCsr)).FePlan == FTS5_PLAN_SORTED_MATCH {
+ if (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpRank != 0 || SQLITE_OK == libc.AssignInt32(&rc, fts5FindRankFunction(tls, pCsr)) {
+ fts5ApiInvoke(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpRank, pCsr, pCtx, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FnRankArg, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FapRankArg)
+ }
+ }
+ } else if !(fts5IsContentless(tls, pTab) != 0) {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = pTab + 16
+ rc = fts5SeekCursor(tls, pCsr, 1)
+ if rc == SQLITE_OK {
+ Xsqlite3_result_value(tls, pCtx, Xsqlite3_column_value(tls, (*Fts5Cursor)(unsafe.Pointer(pCsr)).FpStmt, iCol+1))
+ }
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0)
+ }
+ return rc
+}
+
+func fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) int32 {
+ var pTab uintptr = pVtab
+ var pAux uintptr
+
+ _ = nUnused
+ pAux = fts5FindAuxiliary(tls, pTab, zName)
+ if pAux != 0 {
+ *(*uintptr)(unsafe.Pointer(pxFunc)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{fts5ApiCallback}))
+ *(*uintptr)(unsafe.Pointer(ppArg)) = pAux
+ return 1
+ }
+
+ return 0
+}
+
+func fts5RenameMethod(tls *libc.TLS, pVtab uintptr, zName uintptr) int32 {
+ var pTab uintptr = pVtab
+ return sqlite3Fts5StorageRename(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage, zName)
+}
+
+func sqlite3Fts5FlushToDisk(tls *libc.TLS, pTab uintptr) int32 {
+ fts5TripCursors(tls, pTab)
+ return sqlite3Fts5StorageSync(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+}
+
+func fts5SavepointMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) int32 {
+ _ = iSavepoint
+
+ return sqlite3Fts5FlushToDisk(tls, pVtab)
+}
+
+func fts5ReleaseMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) int32 {
+ _ = iSavepoint
+
+ return sqlite3Fts5FlushToDisk(tls, pVtab)
+}
+
+func fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) int32 {
+ var pTab uintptr = pVtab
+ _ = iSavepoint
+
+ fts5TripCursors(tls, pTab)
+ return sqlite3Fts5StorageRollback(tls, (*Fts5FullTable)(unsafe.Pointer(pTab)).FpStorage)
+}
+
+func fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Fts5_extension_function, xDestroy uintptr) int32 {
+ var pGlobal uintptr = pApi
+ var rc int32 = Xsqlite3_overload_function(tls, (*Fts5Global)(unsafe.Pointer(pGlobal)).Fdb, zName, -1)
+ if rc == SQLITE_OK {
+ var pAux uintptr
+ var nName Sqlite3_int64
+ var nByte Sqlite3_int64
+
+ nName = Sqlite3_int64(libc.Xstrlen(tls, zName) + uint64(1))
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Auxiliary{})) + uint64(nName))
+ pAux = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pAux != 0 {
+ libc.X__builtin___memset_chk(tls, pAux, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pAux, 0))
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc = pAux + 1*48
+ libc.X__builtin___memcpy_chk(tls, (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, uint64(nName), libc.X__builtin_object_size(tls, (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, 0))
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy
+ (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpAux
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+
+ return rc
+}
+
+func fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) int32 {
+ var pGlobal uintptr = pApi
+ var pNew uintptr
+ var nName Sqlite3_int64
+ var nByte Sqlite3_int64
+ var rc int32 = SQLITE_OK
+
+ nName = Sqlite3_int64(libc.Xstrlen(tls, zName) + uint64(1))
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5TokenizerModule{})) + uint64(nName))
+ pNew = Xsqlite3_malloc64(tls, uint64(nByte))
+ if pNew != 0 {
+ libc.X__builtin___memset_chk(tls, pNew, 0, Size_t(nByte), libc.X__builtin_object_size(tls, pNew, 0))
+ (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*56
+ libc.X__builtin___memcpy_chk(tls, (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, uint64(nName), libc.X__builtin_object_size(tls, (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, 0))
+ (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData
+ (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).Fx = *(*Fts5_tokenizer)(unsafe.Pointer(pTokenizer))
+ (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy
+ (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpTok
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew
+ if (*Fts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) {
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).FpDfltTok = pNew
+ }
+ } else {
+ rc = SQLITE_NOMEM
+ }
+
+ return rc
+}
+
+func fts5LocateTokenizer(tls *libc.TLS, pGlobal uintptr, zName uintptr) uintptr {
+ var pMod uintptr = uintptr(0)
+
+ if zName == uintptr(0) {
+ pMod = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpDfltTok
+ } else {
+ for pMod = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpTok; pMod != 0; pMod = (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).FpNext {
+ if Xsqlite3_stricmp(tls, zName, (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).FzName) == 0 {
+ break
+ }
+ }
+ }
+
+ return pMod
+}
+
+func fts5FindTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, ppUserData uintptr, pTokenizer uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pMod uintptr
+
+ pMod = fts5LocateTokenizer(tls, pApi, zName)
+ if pMod != 0 {
+ *(*Fts5_tokenizer)(unsafe.Pointer(pTokenizer)) = (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).Fx
+ *(*uintptr)(unsafe.Pointer(ppUserData)) = (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).FpUserData
+ } else {
+ libc.X__builtin___memset_chk(tls, pTokenizer, 0, uint64(unsafe.Sizeof(Fts5_tokenizer{})), libc.X__builtin_object_size(tls, pTokenizer, 0))
+ rc = SQLITE_ERROR
+ }
+
+ return rc
+}
+
+func sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nArg int32, pConfig uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pMod uintptr
+ var rc int32 = SQLITE_OK
+
+ pMod = fts5LocateTokenizer(tls, pGlobal, func() uintptr {
+ if nArg == 0 {
+ return uintptr(0)
+ }
+ return *(*uintptr)(unsafe.Pointer(azArg))
+ }())
+ if pMod == uintptr(0) {
+ rc = SQLITE_ERROR
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+36251, libc.VaList(bp, *(*uintptr)(unsafe.Pointer(azArg))))
+ } else {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate})).f(tls,
+ (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).FpUserData, func() uintptr {
+ if azArg != 0 {
+ return azArg + 1*8
+ }
+ return uintptr(0)
+ }(), func() int32 {
+ if nArg != 0 {
+ return nArg - 1
+ }
+ return 0
+ }(), pConfig+104)
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16
+ if rc != SQLITE_OK {
+ if pzErr != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+36273, 0)
+ }
+ } else {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FePattern = sqlite3Fts5TokenizerPattern(tls,
+ (*Fts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok)
+ }
+ }
+
+ if rc != SQLITE_OK {
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpTokApi = uintptr(0)
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FpTok = uintptr(0)
+ }
+
+ return rc
+}
+
+func fts5ModuleDestroy(tls *libc.TLS, pCtx uintptr) {
+ var pTok uintptr
+ var pNextTok uintptr
+ var pAux uintptr
+ var pNextAux uintptr
+ var pGlobal uintptr = pCtx
+
+ for pAux = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpAux; pAux != 0; pAux = pNextAux {
+ pNextAux = (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpNext
+ if (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Fts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy})).f(tls, (*Fts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData)
+ }
+ Xsqlite3_free(tls, pAux)
+ }
+
+ for pTok = (*Fts5Global)(unsafe.Pointer(pGlobal)).FpTok; pTok != 0; pTok = pNextTok {
+ pNextTok = (*Fts5TokenizerModule)(unsafe.Pointer(pTok)).FpNext
+ if (*Fts5TokenizerModule)(unsafe.Pointer(pTok)).FxDestroy != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*Fts5TokenizerModule)(unsafe.Pointer(pTok)).FxDestroy})).f(tls, (*Fts5TokenizerModule)(unsafe.Pointer(pTok)).FpUserData)
+ }
+ Xsqlite3_free(tls, pTok)
+ }
+
+ Xsqlite3_free(tls, pGlobal)
+}
+
+func fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) {
+ var pGlobal uintptr = Xsqlite3_user_data(tls, pCtx)
+ var ppApi uintptr
+ _ = nArg
+
+ ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), ts+36304)
+ if ppApi != 0 {
+ *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal
+ }
+}
+
+func fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) {
+ _ = nArg
+ _ = apUnused
+ Xsqlite3_result_text(tls, pCtx, ts+36317, -1, libc.UintptrFromInt32(-1))
+}
+
+func fts5ShadowName(tls *libc.TLS, zName uintptr) int32 {
+ var i uint32
+ for i = uint32(0); uint64(i) < uint64(unsafe.Sizeof(azName2))/uint64(unsafe.Sizeof(uintptr(0))); i++ {
+ if Xsqlite3_stricmp(tls, zName, azName2[i]) == 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+var azName2 = [5]uintptr{
+ ts + 36408, ts + 34507, ts + 25506, ts + 34858, ts + 11891,
+}
+
+func fts5Init(tls *libc.TLS, db uintptr) int32 {
+ var rc int32
+ var pGlobal uintptr = uintptr(0)
+
+ pGlobal = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Fts5Global{})))
+ if pGlobal == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var p uintptr = pGlobal
+ libc.X__builtin___memset_chk(tls, pGlobal, 0, uint64(unsafe.Sizeof(Fts5Global{})), libc.X__builtin_object_size(tls, pGlobal, 0))
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).Fdb = db
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).Fapi.FiVersion = 2
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, Fts5_extension_function, uintptr) int32
+ }{fts5CreateAux}))
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32
+ }{fts5CreateTokenizer}))
+ (*Fts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) int32
+ }{fts5FindTokenizer}))
+ rc = Xsqlite3_create_module_v2(tls, db, ts+36415, uintptr(unsafe.Pointer(&fts5Mod)), p, *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5ModuleDestroy})))
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5IndexInit(tls, db)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5ExprInit(tls, pGlobal, db)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5AuxInit(tls, pGlobal)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5TokenizerInit(tls, pGlobal)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5VocabInit(tls, pGlobal, db)
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_create_function(tls,
+ db, ts+36415, 1, SQLITE_UTF8, p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{fts5Fts5Func})), uintptr(0), uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ rc = Xsqlite3_create_function(tls,
+ db, ts+36420, 0,
+ SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS,
+ p, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr)
+ }{fts5SourceIdFunc})), uintptr(0), uintptr(0))
+ }
+ }
+
+ return rc
+}
+
+var fts5Mod = Sqlite3_module{
+ FiVersion: 3,
+ FxCreate: 0,
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxDestroy: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+ FxUpdate: 0,
+ FxBegin: 0,
+ FxSync: 0,
+ FxCommit: 0,
+ FxRollback: 0,
+ FxFindFunction: 0,
+ FxRename: 0,
+ FxSavepoint: 0,
+ FxRelease: 0,
+ FxRollbackTo: 0,
+ FxShadowName: 0,
+}
+
+// The following functions are used to register the module with SQLite. If
+// this module is being built as part of the SQLite core (SQLITE_CORE is
+// defined), then sqlite3_open() will call sqlite3Fts5Init() directly.
+//
+// Or, if this module is being built as a loadable extension,
+// sqlite3Fts5Init() is omitted and the two standard entry points
+// sqlite3_fts_init() and sqlite3_fts5_init() defined instead.
+func Xsqlite3Fts5Init(tls *libc.TLS, db uintptr) int32 {
+ return fts5Init(tls, db)
+}
+
+func fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, pzErrMsg uintptr) int32 {
+ bp := tls.Alloc(216)
+ defer tls.Free(216)
+
+ var rc int32 = SQLITE_OK
+
+ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) {
+ *(*[11]uintptr)(unsafe.Pointer(bp + 128)) = [11]uintptr{
+ ts + 36435,
+ ts + 36503,
+ ts + 36572,
+ ts + 36605,
+ ts + 36644,
+ ts + 36684,
+ ts + 36723,
+ ts + 36764,
+ ts + 36803,
+ ts + 36845,
+ ts + 36885,
+ }
+ var pC uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var zSql uintptr = uintptr(0)
+
+ switch eStmt {
+ case FTS5_STMT_SCAN:
+ zSql = Xsqlite3_mprintf(tls, *(*uintptr)(unsafe.Pointer(bp + 128 + uintptr(eStmt)*8)),
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pC)).FzContentExprlist, (*Fts5Config)(unsafe.Pointer(pC)).FzContent))
+ break
+ fallthrough
+
+ case FTS5_STMT_SCAN_ASC:
+ fallthrough
+ case FTS5_STMT_SCAN_DESC:
+ zSql = Xsqlite3_mprintf(tls, *(*uintptr)(unsafe.Pointer(bp + 128 + uintptr(eStmt)*8)), libc.VaList(bp+16, (*Fts5Config)(unsafe.Pointer(pC)).FzContentExprlist,
+ (*Fts5Config)(unsafe.Pointer(pC)).FzContent, (*Fts5Config)(unsafe.Pointer(pC)).FzContentRowid, (*Fts5Config)(unsafe.Pointer(pC)).FzContentRowid,
+ (*Fts5Config)(unsafe.Pointer(pC)).FzContentRowid))
+ break
+ fallthrough
+
+ case FTS5_STMT_LOOKUP:
+ zSql = Xsqlite3_mprintf(tls, *(*uintptr)(unsafe.Pointer(bp + 128 + uintptr(eStmt)*8)),
+ libc.VaList(bp+56, (*Fts5Config)(unsafe.Pointer(pC)).FzContentExprlist, (*Fts5Config)(unsafe.Pointer(pC)).FzContent, (*Fts5Config)(unsafe.Pointer(pC)).FzContentRowid))
+ break
+ fallthrough
+
+ case FTS5_STMT_INSERT_CONTENT:
+ fallthrough
+ case FTS5_STMT_REPLACE_CONTENT:
+ {
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer(pC)).FnCol + 1
+ var zBind uintptr
+ var i int32
+
+ zBind = Xsqlite3_malloc64(tls, uint64(1+nCol*2))
+ if zBind != 0 {
+ for i = 0; i < nCol; i++ {
+ *(*int8)(unsafe.Pointer(zBind + uintptr(i*2))) = int8('?')
+ *(*int8)(unsafe.Pointer(zBind + uintptr(i*2+1))) = int8(',')
+ }
+ *(*int8)(unsafe.Pointer(zBind + uintptr(i*2-1))) = int8(0)
+ zSql = Xsqlite3_mprintf(tls, *(*uintptr)(unsafe.Pointer(bp + 128 + uintptr(eStmt)*8)), libc.VaList(bp+80, (*Fts5Config)(unsafe.Pointer(pC)).FzDb, (*Fts5Config)(unsafe.Pointer(pC)).FzName, zBind))
+ Xsqlite3_free(tls, zBind)
+ }
+ break
+
+ }
+ fallthrough
+
+ default:
+ zSql = Xsqlite3_mprintf(tls, *(*uintptr)(unsafe.Pointer(bp + 128 + uintptr(eStmt)*8)), libc.VaList(bp+104, (*Fts5Config)(unsafe.Pointer(pC)).FzDb, (*Fts5Config)(unsafe.Pointer(pC)).FzName))
+ break
+ }
+
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var f int32 = SQLITE_PREPARE_PERSISTENT
+ if eStmt > FTS5_STMT_LOOKUP {
+ f = f | SQLITE_PREPARE_NO_VTAB
+ }
+ (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock++
+ rc = Xsqlite3_prepare_v3(tls, (*Fts5Config)(unsafe.Pointer(pC)).Fdb, zSql, -1, uint32(f), p+40+uintptr(eStmt)*8, uintptr(0))
+ (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock--
+ Xsqlite3_free(tls, zSql)
+ if rc != SQLITE_OK && pzErrMsg != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, ts+3658, libc.VaList(bp+120, Xsqlite3_errmsg(tls, (*Fts5Config)(unsafe.Pointer(pC)).Fdb)))
+ }
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppStmt)) = *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8))
+ Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(ppStmt)))
+ return rc
+}
+
+func fts5ExecPrintf(tls *libc.TLS, db uintptr, pzErr uintptr, zFormat uintptr, va uintptr) int32 {
+ var rc int32
+ var ap Va_list
+ _ = ap
+ var zSql uintptr
+
+ ap = va
+ zSql = Xsqlite3_vmprintf(tls, zFormat, ap)
+
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ rc = Xsqlite3_exec(tls, db, zSql, uintptr(0), uintptr(0), pzErr)
+ Xsqlite3_free(tls, zSql)
+ }
+
+ _ = ap
+ return rc
+}
+
+func sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var rc int32 = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+36908,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName,
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName,
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ rc = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+37012,
+ libc.VaList(bp+48, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ }
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ rc = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+37050,
+ libc.VaList(bp+64, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ }
+ return rc
+}
+
+func fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail uintptr, zName uintptr) {
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(pRc)) = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+37088,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail))
+ }
+}
+
+func sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(pStorage)).FpConfig
+ *(*int32)(unsafe.Pointer(bp)) = sqlite3Fts5StorageSync(tls, pStorage)
+
+ fts5StorageRenameOne(tls, pConfig, bp, ts+25506, zName)
+ fts5StorageRenameOne(tls, pConfig, bp, ts+11891, zName)
+ fts5StorageRenameOne(tls, pConfig, bp, ts+36408, zName)
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ fts5StorageRenameOne(tls, pConfig, bp, ts+34858, zName)
+ }
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ fts5StorageRenameOne(tls, pConfig, bp, ts+34507, zName)
+ }
+ return *(*int32)(unsafe.Pointer(bp))
+}
+
+func sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDefn uintptr, bWithout int32, pzErr uintptr) int32 {
+ bp := tls.Alloc(72)
+ defer tls.Free(72)
+
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0)
+
+ rc = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, bp+64, ts+37130,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn,
+ func() uintptr {
+ if bWithout != 0 {
+ return ts + 30159
+ }
+ return ts + 1547
+ }()))
+ if *(*uintptr)(unsafe.Pointer(bp + 64)) != 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls,
+ ts+37160,
+ libc.VaList(bp+40, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp + 64))))
+ Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 64)))
+ }
+
+ return rc
+}
+
+func sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCreate int32, pp uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ var p uintptr
+ var nByte Sqlite3_int64
+
+ nByte = Sqlite3_int64(uint64(unsafe.Sizeof(Fts5Storage{})) +
+ uint64((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*uint64(unsafe.Sizeof(I64(0))))
+ *(*uintptr)(unsafe.Pointer(pp)) = libc.AssignUintptr(&p, Xsqlite3_malloc64(tls, uint64(nByte)))
+ if !(p != 0) {
+ return SQLITE_NOMEM
+ }
+
+ libc.X__builtin___memset_chk(tls, p, 0, Size_t(nByte), libc.X__builtin_object_size(tls, p, 0))
+ (*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize = p + 1*128
+ (*Fts5Storage)(unsafe.Pointer(p)).FpConfig = pConfig
+ (*Fts5Storage)(unsafe.Pointer(p)).FpIndex = pIndex
+
+ if bCreate != 0 {
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ var nDefn int32 = 32 + (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol*10
+ var zDefn uintptr = Xsqlite3_malloc64(tls, uint64(int64(32)+Sqlite3_int64((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*int64(10)))
+ if zDefn == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var i int32
+ var iOff int32
+ Xsqlite3_snprintf(tls, nDefn, zDefn, ts+37204, 0)
+ iOff = int32(libc.Xstrlen(tls, zDefn))
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), ts+37227, libc.VaList(bp, i))
+ iOff = iOff + int32(libc.Xstrlen(tls, zDefn+uintptr(iOff)))
+ }
+ rc = sqlite3Fts5CreateTable(tls, pConfig, ts+34507, zDefn, 0, pzErr)
+ }
+ Xsqlite3_free(tls, zDefn)
+ }
+
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ rc = sqlite3Fts5CreateTable(tls,
+ pConfig, ts+34858, ts+37233, 0, pzErr)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5CreateTable(tls,
+ pConfig, ts+36408, ts+37265, 1, pzErr)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5StorageConfigValue(tls, p, ts+35004, uintptr(0), FTS5_CURRENT_VERSION)
+ }
+ }
+
+ if rc != 0 {
+ sqlite3Fts5StorageClose(tls, p)
+ *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0)
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageClose(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ if p != 0 {
+ var i int32
+
+ for i = 0; i < int32(uint64(unsafe.Sizeof([11]uintptr{}))/uint64(unsafe.Sizeof(uintptr(0)))); i++ {
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(i)*8)))
+ }
+
+ Xsqlite3_free(tls, p)
+ }
+ return rc
+}
+
+type Fts5InsertCtx1 = struct {
+ FpStorage uintptr
+ FiCol int32
+ FszCol int32
+}
+
+type Fts5InsertCtx = Fts5InsertCtx1
+
+func fts5StorageInsertCallback(tls *libc.TLS, pContext uintptr, tflags int32, pToken uintptr, nToken int32, iUnused1 int32, iUnused2 int32) int32 {
+ var pCtx uintptr = pContext
+ var pIdx uintptr = (*Fts5Storage)(unsafe.Pointer((*Fts5InsertCtx)(unsafe.Pointer(pCtx)).FpStorage)).FpIndex
+ _ = iUnused1
+ _ = iUnused2
+ if nToken > FTS5_MAX_TOKEN_SIZE {
+ nToken = FTS5_MAX_TOKEN_SIZE
+ }
+ if tflags&FTS5_TOKEN_COLOCATED == 0 || (*Fts5InsertCtx)(unsafe.Pointer(pCtx)).FszCol == 0 {
+ (*Fts5InsertCtx)(unsafe.Pointer(pCtx)).FszCol++
+ }
+ return sqlite3Fts5IndexWrite(tls, pIdx, (*Fts5InsertCtx)(unsafe.Pointer(pCtx)).FiCol, (*Fts5InsertCtx)(unsafe.Pointer(pCtx)).FszCol-1, pToken, nToken)
+}
+
+func fts5StorageDeleteFromIndex(tls *libc.TLS, p uintptr, iDel I64, apVal uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32
+ var rc2 int32
+ var iCol int32
+
+ if apVal == uintptr(0) {
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_LOOKUP, bp, uintptr(0))
+ if rc != SQLITE_OK {
+ return rc
+ }
+ Xsqlite3_bind_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, iDel)
+ if Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) != SQLITE_ROW {
+ return Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+
+ (*Fts5InsertCtx)(unsafe.Pointer(bp + 8)).FpStorage = p
+ (*Fts5InsertCtx)(unsafe.Pointer(bp + 8)).FiCol = -1
+ rc = sqlite3Fts5IndexBeginWrite(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, 1, iDel)
+ for iCol = 1; rc == SQLITE_OK && iCol <= (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; iCol++ {
+ if int32(*(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(iCol-1)))) == 0 {
+ var zText uintptr
+ var nText int32
+
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ zText = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol)
+ nText = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol)
+ } else if apVal != 0 {
+ zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(iCol-1)*8)))
+ nText = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(iCol-1)*8)))
+ } else {
+ continue
+ }
+ (*Fts5InsertCtx)(unsafe.Pointer(bp + 8)).FszCol = 0
+ rc = sqlite3Fts5Tokenize(tls, pConfig, FTS5_TOKENIZE_DOCUMENT,
+ zText, nText, bp+8, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5StorageInsertCallback})))
+ *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(iCol-1)*8)) -= I64((*Fts5InsertCtx)(unsafe.Pointer(bp + 8)).FszCol)
+ if *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(iCol-1)*8)) < int64(0) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ }
+ if rc == SQLITE_OK && (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow < int64(1) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ } else {
+ (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow--
+ }
+
+ rc2 = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ return rc
+}
+
+func fts5StorageInsertDocsize(tls *libc.TLS, p uintptr, iRowid I64, pBuf uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_OK
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FbColumnsize != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_REPLACE_DOCSIZE, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, iRowid)
+ Xsqlite3_bind_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), 2, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fp, (*Fts5Buffer)(unsafe.Pointer(pBuf)).Fn, uintptr(0))
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3_bind_null(tls, *(*uintptr)(unsafe.Pointer(bp)), 2)
+ }
+ }
+ return rc
+}
+
+func fts5StorageLoadTotals(tls *libc.TLS, p uintptr, bCache int32) int32 {
+ var rc int32 = SQLITE_OK
+ if (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid == 0 {
+ rc = sqlite3Fts5IndexGetAverages(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, p+24, (*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize)
+ (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid = bCache
+ }
+ return rc
+}
+
+func fts5StorageSaveTotals(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FnCol
+ var i int32
+
+ *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+
+ sqlite3Fts5BufferAppendVarint(tls, bp+16, bp, (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow)
+ for i = 0; i < nCol; i++ {
+ sqlite3Fts5BufferAppendVarint(tls, bp+16, bp, *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(i)*8)))
+ }
+ if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 16)) = sqlite3Fts5IndexSetAverages(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp, (*Fts5Buffer)(unsafe.Pointer(bp)).Fn)
+ }
+ Xsqlite3_free(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp)
+
+ return *(*int32)(unsafe.Pointer(bp + 16))
+}
+
+func sqlite3Fts5StorageDelete(tls *libc.TLS, p uintptr, iDel I64, apVal uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var rc int32
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+
+ rc = fts5StorageLoadTotals(tls, p, 1)
+
+ if rc == SQLITE_OK {
+ rc = fts5StorageDeleteFromIndex(tls, p, iDel, apVal)
+ }
+
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_DELETE_DOCSIZE, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, iDel)
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ if rc == SQLITE_OK {
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_DELETE_CONTENT, bp, uintptr(0))
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, iDel)
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ }
+
+ return rc
+}
+
+func sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(48)
+ defer tls.Free(48)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var rc int32
+
+ (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0
+
+ rc = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+37282,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName,
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ rc = fts5ExecPrintf(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0),
+ ts+37332,
+ libc.VaList(bp+32, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName))
+ }
+
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5IndexReinit(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex)
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5StorageConfigValue(tls, p, ts+35004, uintptr(0), FTS5_CURRENT_VERSION)
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageRebuild(tls *libc.TLS, p uintptr) int32 {
+ bp := tls.Alloc(44)
+ defer tls.Free(44)
+
+ *(*Fts5Buffer)(unsafe.Pointer(bp + 24)) = Fts5Buffer{}
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0)
+
+ var rc2 int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5InsertCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Fts5InsertCtx)(unsafe.Pointer(bp)).FpStorage = p
+ *(*int32)(unsafe.Pointer(bp + 40)) = sqlite3Fts5StorageDeleteAll(tls, p)
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5StorageLoadTotals(tls, p, 1)
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5StorageGetStmt(tls, p, FTS5_STMT_SCAN, bp+16, uintptr(0))
+ }
+
+ for *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) {
+ var iRowid I64 = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), 0)
+
+ sqlite3Fts5BufferZero(tls, bp+24)
+ *(*int32)(unsafe.Pointer(bp + 40)) = sqlite3Fts5IndexBeginWrite(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, 0, iRowid)
+ for (*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol = 0; *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK && (*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; (*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol++ {
+ (*Fts5InsertCtx)(unsafe.Pointer(bp)).FszCol = 0
+ if int32(*(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol)))) == 0 {
+ var zText uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), (*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol+1)
+ var nText int32 = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), (*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol+1)
+ *(*int32)(unsafe.Pointer(bp + 40)) = sqlite3Fts5Tokenize(tls, pConfig,
+ FTS5_TOKENIZE_DOCUMENT,
+ zText, nText,
+ bp,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5StorageInsertCallback})))
+ }
+ sqlite3Fts5BufferAppendVarint(tls, bp+40, bp+24, int64((*Fts5InsertCtx)(unsafe.Pointer(bp)).FszCol))
+ *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp)).FiCol)*8)) += I64((*Fts5InsertCtx)(unsafe.Pointer(bp)).FszCol)
+ }
+ (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow++
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5StorageInsertDocsize(tls, p, iRowid, bp+24)
+ }
+ }
+ Xsqlite3_free(tls, (*Fts5Buffer)(unsafe.Pointer(bp+24)).Fp)
+ rc2 = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 16)))
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = rc2
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 40)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 40)) = fts5StorageSaveTotals(tls, p)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 40))
+}
+
+func sqlite3Fts5StorageOptimize(tls *libc.TLS, p uintptr) int32 {
+ return sqlite3Fts5IndexOptimize(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex)
+}
+
+func sqlite3Fts5StorageMerge(tls *libc.TLS, p uintptr, nMerge int32) int32 {
+ return sqlite3Fts5IndexMerge(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, nMerge)
+}
+
+func sqlite3Fts5StorageReset(tls *libc.TLS, p uintptr) int32 {
+ return sqlite3Fts5IndexReset(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex)
+}
+
+func fts5StorageNewRowid(tls *libc.TLS, p uintptr, piRowid uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var rc int32 = SQLITE_MISMATCH
+ if (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FbColumnsize != 0 {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_REPLACE_DOCSIZE, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_null(tls, *(*uintptr)(unsafe.Pointer(bp)), 1)
+ Xsqlite3_bind_null(tls, *(*uintptr)(unsafe.Pointer(bp)), 2)
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ if rc == SQLITE_OK {
+ *(*I64)(unsafe.Pointer(piRowid)) = Xsqlite3_last_insert_rowid(tls, (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).Fdb)
+ }
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageContentInsert(tls *libc.TLS, p uintptr, apVal uintptr, piRowid uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var rc int32 = SQLITE_OK
+
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL {
+ if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8))) == SQLITE_INTEGER {
+ *(*I64)(unsafe.Pointer(piRowid)) = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apVal + 1*8)))
+ } else {
+ rc = fts5StorageNewRowid(tls, p, piRowid)
+ }
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var i int32
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_INSERT_CONTENT, bp, uintptr(0))
+ for i = 1; rc == SQLITE_OK && i <= (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol+1; i++ {
+ rc = Xsqlite3_bind_value(tls, *(*uintptr)(unsafe.Pointer(bp)), i, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8)))
+ }
+ if rc == SQLITE_OK {
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ }
+ *(*I64)(unsafe.Pointer(piRowid)) = Xsqlite3_last_insert_rowid(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb)
+ }
+
+ return rc
+}
+
+func sqlite3Fts5StorageIndexInsert(tls *libc.TLS, p uintptr, apVal uintptr, iRowid I64) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_OK
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5Buffer{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Fts5InsertCtx)(unsafe.Pointer(bp + 16)).FpStorage = p
+ *(*int32)(unsafe.Pointer(bp + 32)) = fts5StorageLoadTotals(tls, p, 1)
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 32)) = sqlite3Fts5IndexBeginWrite(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, 0, iRowid)
+ }
+ for (*Fts5InsertCtx)(unsafe.Pointer(bp + 16)).FiCol = 0; *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK && (*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; (*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol++ {
+ (*Fts5InsertCtx)(unsafe.Pointer(bp + 16)).FszCol = 0
+ if int32(*(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol)))) == 0 {
+ var zText uintptr = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol+2)*8)))
+ var nText int32 = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol+2)*8)))
+ *(*int32)(unsafe.Pointer(bp + 32)) = sqlite3Fts5Tokenize(tls, pConfig,
+ FTS5_TOKENIZE_DOCUMENT,
+ zText, nText,
+ bp+16,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5StorageInsertCallback})))
+ }
+ sqlite3Fts5BufferAppendVarint(tls, bp+32, bp, int64((*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FszCol))
+ *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr((*Fts5InsertCtx)(unsafe.Pointer(bp+16)).FiCol)*8)) += I64((*Fts5InsertCtx)(unsafe.Pointer(bp + 16)).FszCol)
+ }
+ (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow++
+
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 32)) = fts5StorageInsertDocsize(tls, p, iRowid, bp)
+ }
+ Xsqlite3_free(tls, (*Fts5Buffer)(unsafe.Pointer(bp)).Fp)
+
+ return *(*int32)(unsafe.Pointer(bp + 32))
+}
+
+func fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var zSql uintptr
+ var rc int32
+
+ zSql = Xsqlite3_mprintf(tls, ts+37361,
+ libc.VaList(bp, (*Fts5Config)(unsafe.Pointer(pConfig)).FzDb, (*Fts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix))
+ if zSql == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0)
+ rc = Xsqlite3_prepare_v2(tls, (*Fts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -1, bp+24, uintptr(0))
+ if rc == SQLITE_OK {
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) {
+ *(*I64)(unsafe.Pointer(pnRow)) = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), 0)
+ }
+ rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 24)))
+ }
+ }
+
+ Xsqlite3_free(tls, zSql)
+ return rc
+}
+
+// Context object used by sqlite3Fts5StorageIntegrity().
+type Fts5IntegrityCtx1 = struct {
+ FiRowid I64
+ FiCol int32
+ FszCol int32
+ Fcksum U64
+ FpTermset uintptr
+ FpConfig uintptr
+}
+
+// Context object used by sqlite3Fts5StorageIntegrity().
+type Fts5IntegrityCtx = Fts5IntegrityCtx1
+
+func fts5StorageIntegrityCallback(tls *libc.TLS, pContext uintptr, tflags int32, pToken uintptr, nToken int32, iUnused1 int32, iUnused2 int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var pCtx uintptr = pContext
+ var pTermset uintptr = (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FpTermset
+
+ var ii int32
+ var rc int32 = SQLITE_OK
+ var iPos int32
+ var iCol int32
+
+ _ = iUnused1
+ _ = iUnused2
+ if nToken > FTS5_MAX_TOKEN_SIZE {
+ nToken = FTS5_MAX_TOKEN_SIZE
+ }
+
+ if tflags&FTS5_TOKEN_COLOCATED == 0 || (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FszCol == 0 {
+ (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FszCol++
+ }
+
+ switch (*Fts5Config)(unsafe.Pointer((*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FpConfig)).FeDetail {
+ case FTS5_DETAIL_FULL:
+ iPos = (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FszCol - 1
+ iCol = (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FiCol
+ break
+
+ case FTS5_DETAIL_COLUMNS:
+ iPos = (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FiCol
+ iCol = 0
+ break
+
+ default:
+ iPos = 0
+ iCol = 0
+ break
+ }
+
+ rc = sqlite3Fts5TermsetAdd(tls, pTermset, 0, pToken, nToken, bp)
+ if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) == 0 {
+ *(*U64)(unsafe.Pointer(pCtx + 16)) ^= sqlite3Fts5IndexEntryCksum(tls,
+ (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FiRowid, iCol, iPos, 0, pToken, nToken)
+ }
+
+ for ii = 0; rc == SQLITE_OK && ii < (*Fts5Config)(unsafe.Pointer((*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FpConfig)).FnPrefix; ii++ {
+ var nChar int32 = *(*int32)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer((*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FpConfig)).FaPrefix + uintptr(ii)*4))
+ var nByte int32 = sqlite3Fts5IndexCharlenToBytelen(tls, pToken, nToken, nChar)
+ if nByte != 0 {
+ rc = sqlite3Fts5TermsetAdd(tls, pTermset, ii+1, pToken, nByte, bp)
+ if *(*int32)(unsafe.Pointer(bp)) == 0 {
+ *(*U64)(unsafe.Pointer(pCtx + 16)) ^= sqlite3Fts5IndexEntryCksum(tls,
+ (*Fts5IntegrityCtx)(unsafe.Pointer(pCtx)).FiRowid, iCol, iPos, ii+1, pToken, nByte)
+ }
+ }
+ }
+
+ return rc
+}
+
+func sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var pConfig uintptr = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ var rc int32 = SQLITE_OK
+ var aColSize uintptr
+ var aTotalSize uintptr
+
+ var bUseCksum int32
+
+ libc.X__builtin___memset_chk(tls, bp, 0, uint64(unsafe.Sizeof(Fts5IntegrityCtx{})), libc.X__builtin_object_size(tls, bp, 0))
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FpConfig = (*Fts5Storage)(unsafe.Pointer(p)).FpConfig
+ aTotalSize = Xsqlite3_malloc64(tls, uint64((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*(uint64(unsafe.Sizeof(int32(0)))+uint64(unsafe.Sizeof(I64(0)))))
+ if !(aTotalSize != 0) {
+ return SQLITE_NOMEM
+ }
+ aColSize = aTotalSize + uintptr((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol)*8
+ libc.X__builtin___memset_chk(tls, aTotalSize, 0, uint64(unsafe.Sizeof(I64(0)))*uint64((*Fts5Config)(unsafe.Pointer(pConfig)).FnCol), libc.X__builtin_object_size(tls, aTotalSize, 0))
+
+ bUseCksum = libc.Bool32((*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL ||
+ (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_EXTERNAL && iArg != 0)
+ if bUseCksum != 0 {
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_SCAN, bp+40, uintptr(0))
+ if rc == SQLITE_OK {
+ var rc2 int32
+ for SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) {
+ var i int32
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FiRowid = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), 0)
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FszCol = 0
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ rc = sqlite3Fts5StorageDocsize(tls, p, (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FiRowid, aColSize)
+ }
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_NONE {
+ rc = sqlite3Fts5TermsetNew(tls, bp+24)
+ }
+ for i = 0; rc == SQLITE_OK && i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ if *(*U8)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(i))) != 0 {
+ continue
+ }
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FiCol = i
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FszCol = 0
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_COLUMNS {
+ rc = sqlite3Fts5TermsetNew(tls, bp+24)
+ }
+ if rc == SQLITE_OK {
+ var zText uintptr = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), i+1)
+ var nText int32 = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp + 40)), i+1)
+ rc = sqlite3Fts5Tokenize(tls, pConfig,
+ FTS5_TOKENIZE_DOCUMENT,
+ zText, nText,
+ bp,
+ *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5StorageIntegrityCallback})))
+ }
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 && (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FszCol != *(*int32)(unsafe.Pointer(aColSize + uintptr(i)*4)) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ *(*I64)(unsafe.Pointer(aTotalSize + uintptr(i)*8)) += I64((*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FszCol)
+ if (*Fts5Config)(unsafe.Pointer(pConfig)).FeDetail == FTS5_DETAIL_COLUMNS {
+ sqlite3Fts5TermsetFree(tls, (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FpTermset)
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FpTermset = uintptr(0)
+ }
+ }
+ sqlite3Fts5TermsetFree(tls, (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FpTermset)
+ (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).FpTermset = uintptr(0)
+
+ if rc != SQLITE_OK {
+ break
+ }
+ }
+ rc2 = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 40)))
+ if rc == SQLITE_OK {
+ rc = rc2
+ }
+ }
+
+ if rc == SQLITE_OK {
+ var i int32
+ rc = fts5StorageLoadTotals(tls, p, 0)
+ for i = 0; rc == SQLITE_OK && i < (*Fts5Config)(unsafe.Pointer(pConfig)).FnCol; i++ {
+ if *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(i)*8)) != *(*I64)(unsafe.Pointer(aTotalSize + uintptr(i)*8)) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ }
+
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL {
+ *(*I64)(unsafe.Pointer(bp + 48)) = int64(0)
+ rc = fts5StorageCount(tls, p, ts+34507, bp+48)
+ if rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp + 48)) != (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ if rc == SQLITE_OK && (*Fts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 {
+ *(*I64)(unsafe.Pointer(bp + 56)) = int64(0)
+ rc = fts5StorageCount(tls, p, ts+34858, bp+56)
+ if rc == SQLITE_OK && *(*I64)(unsafe.Pointer(bp + 56)) != (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5IndexIntegrityCheck(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, (*Fts5IntegrityCtx)(unsafe.Pointer(bp)).Fcksum, bUseCksum)
+ }
+
+ Xsqlite3_free(tls, aTotalSize)
+ return rc
+}
+
+func sqlite3Fts5StorageStmt(tls *libc.TLS, p uintptr, eStmt int32, pp uintptr, pzErrMsg uintptr) int32 {
+ var rc int32
+
+ rc = fts5StorageGetStmt(tls, p, eStmt, pp, pzErrMsg)
+ if rc == SQLITE_OK {
+ *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) = uintptr(0)
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageStmtRelease(tls *libc.TLS, p uintptr, eStmt int32, pStmt uintptr) {
+ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) {
+ Xsqlite3_reset(tls, pStmt)
+ *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) = pStmt
+ } else {
+ Xsqlite3_finalize(tls, pStmt)
+ }
+}
+
+func fts5StorageDecodeSizeArray(tls *libc.TLS, aCol uintptr, nCol int32, aBlob uintptr, nBlob int32) int32 {
+ var i int32
+ var iOff int32 = 0
+ for i = 0; i < nCol; i++ {
+ if iOff >= nBlob {
+ return 1
+ }
+ iOff = iOff + sqlite3Fts5GetVarint32(tls, aBlob+uintptr(iOff), aCol+uintptr(i)*4)
+ }
+ return libc.Bool32(iOff != nBlob)
+}
+
+func sqlite3Fts5StorageDocsize(tls *libc.TLS, p uintptr, iRowid I64, aCol uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FnCol
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32
+
+ rc = fts5StorageGetStmt(tls, p, FTS5_STMT_LOOKUP_DOCSIZE, bp, uintptr(0))
+ if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
+ var bCorrupt int32 = 1
+
+ Xsqlite3_bind_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, iRowid)
+ if SQLITE_ROW == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) {
+ var aBlob uintptr = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ var nBlob int32 = Xsqlite3_column_bytes(tls, *(*uintptr)(unsafe.Pointer(bp)), 0)
+ if 0 == fts5StorageDecodeSizeArray(tls, aCol, nCol, aBlob, nBlob) {
+ bCorrupt = 0
+ }
+ }
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ if bCorrupt != 0 && rc == SQLITE_OK {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ } else {
+ }
+
+ return rc
+}
+
+func sqlite3Fts5StorageSize(tls *libc.TLS, p uintptr, iCol int32, pnToken uintptr) int32 {
+ var rc int32 = fts5StorageLoadTotals(tls, p, 0)
+ if rc == SQLITE_OK {
+ *(*I64)(unsafe.Pointer(pnToken)) = int64(0)
+ if iCol < 0 {
+ var i int32
+ for i = 0; i < (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FnCol; i++ {
+ *(*I64)(unsafe.Pointer(pnToken)) += *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(i)*8))
+ }
+ } else if iCol < (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FnCol {
+ *(*I64)(unsafe.Pointer(pnToken)) = *(*I64)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FaTotalSize + uintptr(iCol)*8))
+ } else {
+ rc = SQLITE_RANGE
+ }
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageRowCount(tls *libc.TLS, p uintptr, pnRow uintptr) int32 {
+ var rc int32 = fts5StorageLoadTotals(tls, p, 0)
+ if rc == SQLITE_OK {
+ *(*I64)(unsafe.Pointer(pnRow)) = (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow
+ if (*Fts5Storage)(unsafe.Pointer(p)).FnTotalRow <= int64(0) {
+ rc = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ return rc
+}
+
+func sqlite3Fts5StorageSync(tls *libc.TLS, p uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var iLastRowid I64 = Xsqlite3_last_insert_rowid(tls, (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).Fdb)
+ if (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid != 0 {
+ rc = fts5StorageSaveTotals(tls, p)
+ (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0
+ }
+ if rc == SQLITE_OK {
+ rc = sqlite3Fts5IndexSync(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex)
+ }
+ Xsqlite3_set_last_insert_rowid(tls, (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).Fdb, iLastRowid)
+ return rc
+}
+
+func sqlite3Fts5StorageRollback(tls *libc.TLS, p uintptr) int32 {
+ (*Fts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0
+ return sqlite3Fts5IndexRollback(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex)
+}
+
+func sqlite3Fts5StorageConfigValue(tls *libc.TLS, p uintptr, z uintptr, pVal uintptr, iVal int32) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var rc int32 = fts5StorageGetStmt(tls, p, FTS5_STMT_REPLACE_CONFIG, bp, uintptr(0))
+ if rc == SQLITE_OK {
+ Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 1, z, -1, uintptr(0))
+ if pVal != 0 {
+ Xsqlite3_bind_value(tls, *(*uintptr)(unsafe.Pointer(bp)), 2, pVal)
+ } else {
+ Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 2, iVal)
+ }
+ Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp)))
+ Xsqlite3_bind_null(tls, *(*uintptr)(unsafe.Pointer(bp)), 1)
+ }
+ if rc == SQLITE_OK && pVal != 0 {
+ var iNew int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FiCookie + 1
+ rc = sqlite3Fts5IndexSetCookie(tls, (*Fts5Storage)(unsafe.Pointer(p)).FpIndex, iNew)
+ if rc == SQLITE_OK {
+ (*Fts5Config)(unsafe.Pointer((*Fts5Storage)(unsafe.Pointer(p)).FpConfig)).FiCookie = iNew
+ }
+ }
+ return rc
+}
+
+var aAsciiTokenChar = [128]uint8{
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1),
+ uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1),
+ uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(0), uint8(0), uint8(0), uint8(0),
+}
+
+type AsciiTokenizer1 = struct{ FaTokenChar [128]uint8 }
+
+type AsciiTokenizer = AsciiTokenizer1
+
+func fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) {
+ var i int32
+ for i = 0; *(*int8)(unsafe.Pointer(zArg + uintptr(i))) != 0; i++ {
+ if int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i))))&0x80 == 0 {
+ *(*uint8)(unsafe.Pointer(p + uintptr(int32(*(*int8)(unsafe.Pointer(zArg + uintptr(i))))))) = uint8(bTokenChars)
+ }
+ }
+}
+
+func fts5AsciiDelete(tls *libc.TLS, p uintptr) {
+ Xsqlite3_free(tls, p)
+}
+
+func fts5AsciiCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, ppOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var p uintptr = uintptr(0)
+ _ = pUnused
+ if nArg%2 != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ p = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(AsciiTokenizer{})))
+ if p == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var i int32
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(AsciiTokenizer{})), libc.X__builtin_object_size(tls, p, 0))
+ libc.X__builtin___memcpy_chk(tls, p, uintptr(unsafe.Pointer(&aAsciiTokenChar)), uint64(unsafe.Sizeof(aAsciiTokenChar)), libc.X__builtin_object_size(tls, p, 0))
+ for i = 0; rc == SQLITE_OK && i < nArg; i = i + 2 {
+ var zArg uintptr = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+1)*8))
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37393) {
+ fts5AsciiAddExceptions(tls, p, zArg, 1)
+ } else if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37404) {
+ fts5AsciiAddExceptions(tls, p, zArg, 0)
+ } else {
+ rc = SQLITE_ERROR
+ }
+ }
+ if rc != SQLITE_OK {
+ fts5AsciiDelete(tls, p)
+ p = uintptr(0)
+ }
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p
+ return rc
+}
+
+func asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) {
+ var i int32
+ for i = 0; i < nByte; i++ {
+ var c int8 = *(*int8)(unsafe.Pointer(aIn + uintptr(i)))
+ if int32(c) >= 'A' && int32(c) <= 'Z' {
+ c = int8(int32(c) + 32)
+ }
+ *(*int8)(unsafe.Pointer(aOut + uintptr(i))) = c
+ }
+}
+
+func fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) int32 {
+ bp := tls.Alloc(64)
+ defer tls.Free(64)
+
+ var p uintptr = pTokenizer
+ var rc int32 = SQLITE_OK
+ var ie int32
+ var is int32 = 0
+
+ var nFold int32 = int32(unsafe.Sizeof([64]int8{}))
+ var pFold uintptr = bp
+ var a uintptr = p
+
+ _ = iUnused
+
+ for is < nText && rc == SQLITE_OK {
+ var nByte int32
+
+ for is < nText && (int32(*(*int8)(unsafe.Pointer(pText + uintptr(is))))&0x80 == 0 && int32(*(*uint8)(unsafe.Pointer(a + uintptr(int32(*(*int8)(unsafe.Pointer(pText + uintptr(is)))))))) == 0) {
+ is++
+ }
+ if is == nText {
+ break
+ }
+
+ ie = is + 1
+ for ie < nText && (int32(*(*int8)(unsafe.Pointer(pText + uintptr(ie))))&0x80 != 0 || *(*uint8)(unsafe.Pointer(a + uintptr(int32(*(*int8)(unsafe.Pointer(pText + uintptr(ie))))))) != 0) {
+ ie++
+ }
+
+ nByte = ie - is
+ if nByte > nFold {
+ if pFold != bp {
+ Xsqlite3_free(tls, pFold)
+ }
+ pFold = Xsqlite3_malloc64(tls, uint64(Sqlite3_int64(nByte)*int64(2)))
+ if pFold == uintptr(0) {
+ rc = SQLITE_NOMEM
+ break
+ }
+ nFold = nByte * 2
+ }
+ asciiFold(tls, pFold, pText+uintptr(is), nByte)
+
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xToken})).f(tls, pCtx, 0, pFold, nByte, is, ie)
+ is = ie + 1
+ }
+
+ if pFold != bp {
+ Xsqlite3_free(tls, pFold)
+ }
+ if rc == SQLITE_DONE {
+ rc = SQLITE_OK
+ }
+ return rc
+}
+
+type Unicode61Tokenizer1 = struct {
+ FaTokenChar [128]uint8
+ FaFold uintptr
+ FnFold int32
+ FeRemoveDiacritic int32
+ FnException int32
+ F__ccgo_pad1 [4]byte
+ FaiException uintptr
+ FaCategory [32]uint8
+}
+
+type Unicode61Tokenizer = Unicode61Tokenizer1
+
+func fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) int32 {
+ var rc int32 = SQLITE_OK
+ var n int32 = int32(libc.Xstrlen(tls, z))
+ var aNew uintptr
+
+ if n > 0 {
+ aNew = Xsqlite3_realloc64(tls, (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaiException,
+ uint64(n+(*Unicode61Tokenizer)(unsafe.Pointer(p)).FnException)*uint64(unsafe.Sizeof(int32(0))))
+ if aNew != 0 {
+ var nNew int32 = (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnException
+ var zCsr uintptr = z
+ var zTerm uintptr = z + uintptr(n)
+ for zCsr < zTerm {
+ var iCode U32
+ var bToken int32
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1))))
+ if iCode >= U32(0xc0) {
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+ for zCsr != zTerm && int32(*(*uint8)(unsafe.Pointer(zCsr)))&0xc0 == 0x80 {
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1)))))
+ }
+ if iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE) {
+ iCode = U32(0xFFFD)
+ }
+ }
+
+ if iCode < U32(128) {
+ *(*uint8)(unsafe.Pointer(p + uintptr(iCode))) = uint8(bTokenChars)
+ } else {
+ bToken = int32(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(sqlite3Fts5UnicodeCategory(tls, iCode)))))
+
+ if bToken != bTokenChars && sqlite3Fts5UnicodeIsdiacritic(tls, int32(iCode)) == 0 {
+ var i int32
+ for i = 0; i < nNew; i++ {
+ if U32(*(*int32)(unsafe.Pointer(aNew + uintptr(i)*4))) > iCode {
+ break
+ }
+ }
+ libc.X__builtin___memmove_chk(tls, aNew+uintptr(i+1)*4, aNew+uintptr(i)*4, uint64(nNew-i)*uint64(unsafe.Sizeof(int32(0))), libc.X__builtin_object_size(tls, aNew+uintptr(i+1)*4, 0))
+ *(*int32)(unsafe.Pointer(aNew + uintptr(i)*4)) = int32(iCode)
+ nNew++
+ }
+ }
+ }
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaiException = aNew
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnException = nNew
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ }
+
+ return rc
+}
+
+func fts5UnicodeIsException(tls *libc.TLS, p uintptr, iCode int32) int32 {
+ if (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnException > 0 {
+ var a uintptr = (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaiException
+ var iLo int32 = 0
+ var iHi int32 = (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnException - 1
+
+ for iHi >= iLo {
+ var iTest int32 = (iHi + iLo) / 2
+ if iCode == *(*int32)(unsafe.Pointer(a + uintptr(iTest)*4)) {
+ return 1
+ } else if iCode > *(*int32)(unsafe.Pointer(a + uintptr(iTest)*4)) {
+ iLo = iTest + 1
+ } else {
+ iHi = iTest - 1
+ }
+ }
+ }
+
+ return 0
+}
+
+func fts5UnicodeDelete(tls *libc.TLS, pTok uintptr) {
+ if pTok != 0 {
+ var p uintptr = pTok
+ Xsqlite3_free(tls, (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaiException)
+ Xsqlite3_free(tls, (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold)
+ Xsqlite3_free(tls, p)
+ }
+ return
+}
+
+func unicodeSetCategories(tls *libc.TLS, p uintptr, zCat uintptr) int32 {
+ var z uintptr = zCat
+
+ for *(*int8)(unsafe.Pointer(z)) != 0 {
+ for int32(*(*int8)(unsafe.Pointer(z))) == ' ' || int32(*(*int8)(unsafe.Pointer(z))) == '\t' {
+ z++
+ }
+ if *(*int8)(unsafe.Pointer(z)) != 0 && sqlite3Fts5UnicodeCatParse(tls, z, p+160) != 0 {
+ return SQLITE_ERROR
+ }
+ for int32(*(*int8)(unsafe.Pointer(z))) != ' ' && int32(*(*int8)(unsafe.Pointer(z))) != '\t' && int32(*(*int8)(unsafe.Pointer(z))) != 0 {
+ z++
+ }
+ }
+
+ sqlite3Fts5UnicodeAscii(tls, p+160, p)
+ return SQLITE_OK
+}
+
+func fts5UnicodeCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, ppOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var p uintptr = uintptr(0)
+
+ _ = pUnused
+
+ if nArg%2 != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ p = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(Unicode61Tokenizer{})))
+ if p != 0 {
+ var zCat uintptr = ts + 37415
+ var i int32
+ libc.X__builtin___memset_chk(tls, p, 0, uint64(unsafe.Sizeof(Unicode61Tokenizer{})), libc.X__builtin_object_size(tls, p, 0))
+
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic = FTS5_REMOVE_DIACRITICS_SIMPLE
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnFold = 64
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold = Xsqlite3_malloc64(tls, uint64((*Unicode61Tokenizer)(unsafe.Pointer(p)).FnFold)*uint64(unsafe.Sizeof(int8(0))))
+ if (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold == uintptr(0) {
+ rc = SQLITE_NOMEM
+ }
+
+ for i = 0; rc == SQLITE_OK && i < nArg; i = i + 2 {
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37424) {
+ zCat = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+1)*8))
+ }
+ }
+
+ if rc == SQLITE_OK {
+ rc = unicodeSetCategories(tls, p, zCat)
+ }
+
+ for i = 0; rc == SQLITE_OK && i < nArg; i = i + 2 {
+ var zArg uintptr = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+1)*8))
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37435) {
+ if int32(*(*int8)(unsafe.Pointer(zArg))) != '0' && int32(*(*int8)(unsafe.Pointer(zArg))) != '1' && int32(*(*int8)(unsafe.Pointer(zArg))) != '2' || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic = int32(*(*int8)(unsafe.Pointer(zArg))) - '0'
+
+ }
+ } else if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37393) {
+ rc = fts5UnicodeAddExceptions(tls, p, zArg, 1)
+ } else if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37404) {
+ rc = fts5UnicodeAddExceptions(tls, p, zArg, 0)
+ } else if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37424) {
+ } else {
+ rc = SQLITE_ERROR
+ }
+ }
+
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ if rc != SQLITE_OK {
+ fts5UnicodeDelete(tls, p)
+ p = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(ppOut)) = p
+ }
+ return rc
+}
+
+func fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) int32 {
+ return int32(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(sqlite3Fts5UnicodeCategory(tls, U32(iCode)))))) ^
+ fts5UnicodeIsException(tls, p, iCode)
+}
+
+func fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) int32 {
+ var p uintptr
+ var rc int32
+ var a uintptr
+ var zTerm uintptr
+ var zCsr uintptr
+
+ var aFold uintptr
+ var nFold int32
+ var pEnd uintptr
+ var iCode U32
+ var zOut uintptr
+ var is int32
+ var ie int32
+ p = pTokenizer
+ rc = SQLITE_OK
+ a = p
+ zTerm = pText + uintptr(nText)
+ zCsr = pText
+ aFold = (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold
+ nFold = (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnFold
+ pEnd = aFold + uintptr(nFold-6)
+
+ _ = iUnused
+
+__1:
+ if !(rc == SQLITE_OK) {
+ goto __2
+ }
+ zOut = aFold
+
+__3:
+ if !(1 != 0) {
+ goto __4
+ }
+ if !(zCsr >= zTerm) {
+ goto __5
+ }
+ goto tokenize_done
+__5:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(zCsr)))&0x80 != 0) {
+ goto __6
+ }
+
+ is = int32((int64(zCsr) - int64(pText)) / 1)
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1))))
+ if !(iCode >= U32(0xc0)) {
+ goto __8
+ }
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+__9:
+ if !(zCsr != zTerm && int32(*(*uint8)(unsafe.Pointer(zCsr)))&0xc0 == 0x80) {
+ goto __10
+ }
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1)))))
+ goto __9
+__10:
+ ;
+ if !(iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE)) {
+ goto __11
+ }
+ iCode = U32(0xFFFD)
+__11:
+ ;
+__8:
+ ;
+ if !(fts5UnicodeIsAlnum(tls, p, int32(iCode)) != 0) {
+ goto __12
+ }
+ goto non_ascii_tokenchar
+__12:
+ ;
+ goto __7
+__6:
+ if !(*(*uint8)(unsafe.Pointer(a + uintptr(*(*uint8)(unsafe.Pointer(zCsr))))) != 0) {
+ goto __13
+ }
+ is = int32((int64(zCsr) - int64(pText)) / 1)
+ goto ascii_tokenchar
+__13:
+ ;
+ zCsr++
+__7:
+ ;
+ goto __3
+__4:
+ ;
+__14:
+ if !(zCsr < zTerm) {
+ goto __15
+ }
+
+ if !(zOut > pEnd) {
+ goto __16
+ }
+ aFold = Xsqlite3_malloc64(tls, uint64(Sqlite3_int64(nFold)*int64(2)))
+ if !(aFold == uintptr(0)) {
+ goto __17
+ }
+ rc = SQLITE_NOMEM
+ goto tokenize_done
+__17:
+ ;
+ zOut = aFold + uintptr((int64(zOut)-int64((*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold))/1)
+ libc.X__builtin___memcpy_chk(tls, aFold, (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold, uint64(nFold), libc.X__builtin_object_size(tls, aFold, 0))
+ Xsqlite3_free(tls, (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold)
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FaFold = aFold
+ (*Unicode61Tokenizer)(unsafe.Pointer(p)).FnFold = libc.AssignInt32(&nFold, nFold*2)
+ pEnd = aFold + uintptr(nFold-6)
+__16:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(zCsr)))&0x80 != 0) {
+ goto __18
+ }
+
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1))))
+ if !(iCode >= U32(0xc0)) {
+ goto __20
+ }
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+__21:
+ if !(zCsr != zTerm && int32(*(*uint8)(unsafe.Pointer(zCsr)))&0xc0 == 0x80) {
+ goto __22
+ }
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zCsr, 1)))))
+ goto __21
+__22:
+ ;
+ if !(iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE)) {
+ goto __23
+ }
+ iCode = U32(0xFFFD)
+__23:
+ ;
+__20:
+ ;
+ if !(fts5UnicodeIsAlnum(tls, p, int32(iCode)) != 0 || sqlite3Fts5UnicodeIsdiacritic(tls, int32(iCode)) != 0) {
+ goto __24
+ }
+non_ascii_tokenchar:
+ iCode = U32(sqlite3Fts5UnicodeFold(tls, int32(iCode), (*Unicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic))
+ if !(iCode != 0) {
+ goto __26
+ }
+ if !(iCode < U32(0x00080)) {
+ goto __27
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(U8(iCode & U32(0xFF)))
+ goto __28
+__27:
+ if !(iCode < U32(0x00800)) {
+ goto __29
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xC0 + int32(U8(iCode>>6&U32(0x1F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ goto __30
+__29:
+ if !(iCode < U32(0x10000)) {
+ goto __31
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xE0 + int32(U8(iCode>>12&U32(0x0F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ goto __32
+__31:
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xF0 + int32(U8(iCode>>18&U32(0x07))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>12&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+__32:
+ ;
+__30:
+ ;
+__28:
+ ;
+__26:
+ ;
+ goto __25
+__24:
+ goto __15
+__25:
+ ;
+ goto __19
+__18:
+ if !(int32(*(*uint8)(unsafe.Pointer(a + uintptr(*(*uint8)(unsafe.Pointer(zCsr)))))) == 0) {
+ goto __33
+ }
+
+ goto __15
+ goto __34
+__33:
+ascii_tokenchar:
+ if !(int32(*(*uint8)(unsafe.Pointer(zCsr))) >= 'A' && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= 'Z') {
+ goto __35
+ }
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(int32(*(*uint8)(unsafe.Pointer(zCsr))) + 32)
+ goto __36
+__35:
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(*(*uint8)(unsafe.Pointer(zCsr)))
+__36:
+ ;
+ zCsr++
+__34:
+ ;
+__19:
+ ;
+ ie = int32((int64(zCsr) - int64(pText)) / 1)
+ goto __14
+__15:
+ ;
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xToken})).f(tls, pCtx, 0, aFold, int32((int64(zOut)-int64(aFold))/1), is, ie)
+ goto __1
+__2:
+ ;
+tokenize_done:
+ if !(rc == SQLITE_DONE) {
+ goto __37
+ }
+ rc = SQLITE_OK
+__37:
+ ;
+ return rc
+}
+
+type PorterTokenizer1 = struct {
+ Ftokenizer Fts5_tokenizer
+ FpTokenizer uintptr
+ FaBuf [128]int8
+}
+
+type PorterTokenizer = PorterTokenizer1
+
+func fts5PorterDelete(tls *libc.TLS, pTok uintptr) {
+ if pTok != 0 {
+ var p uintptr = pTok
+ if (*PorterTokenizer)(unsafe.Pointer(p)).FpTokenizer != 0 {
+ (*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*PorterTokenizer)(unsafe.Pointer(p)).Ftokenizer.FxDelete})).f(tls, (*PorterTokenizer)(unsafe.Pointer(p)).FpTokenizer)
+ }
+ Xsqlite3_free(tls, p)
+ }
+}
+
+func fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, ppOut uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var pApi uintptr = pCtx
+ var rc int32 = SQLITE_OK
+ var pRet uintptr
+ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0)
+ var zBase uintptr = ts + 37453
+
+ if nArg > 0 {
+ zBase = *(*uintptr)(unsafe.Pointer(azArg))
+ }
+
+ pRet = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(PorterTokenizer{})))
+ if pRet != 0 {
+ libc.X__builtin___memset_chk(tls, pRet, 0, uint64(unsafe.Sizeof(PorterTokenizer{})), libc.X__builtin_object_size(tls, pRet, 0))
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5_api)(unsafe.Pointer(pApi)).FxFindTokenizer})).f(tls, pApi, zBase, bp, pRet)
+ } else {
+ rc = SQLITE_NOMEM
+ }
+ if rc == SQLITE_OK {
+ var nArg2 int32 = func() int32 {
+ if nArg > 0 {
+ return nArg - 1
+ }
+ return 0
+ }()
+ var azArg2 uintptr = func() uintptr {
+ if nArg2 != 0 {
+ return azArg + 1*8
+ }
+ return uintptr(0)
+ }()
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*PorterTokenizer)(unsafe.Pointer(pRet)).Ftokenizer.FxCreate})).f(tls, *(*uintptr)(unsafe.Pointer(bp)), azArg2, nArg2, pRet+24)
+ }
+
+ if rc != SQLITE_OK {
+ fts5PorterDelete(tls, pRet)
+ pRet = uintptr(0)
+ }
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pRet
+ return rc
+}
+
+type PorterContext1 = struct {
+ FpCtx uintptr
+ FxToken uintptr
+ FaBuf uintptr
+}
+
+type PorterContext = PorterContext1
+
+type PorterRule1 = struct {
+ FzSuffix uintptr
+ FnSuffix int32
+ F__ccgo_pad1 [4]byte
+ FxCond uintptr
+ FzOutput uintptr
+ FnOutput int32
+ F__ccgo_pad2 [4]byte
+}
+
+type PorterRule = PorterRule1
+
+func fts5PorterIsVowel(tls *libc.TLS, c int8, bYIsVowel int32) int32 {
+ return libc.Bool32(int32(c) == 'a' || int32(c) == 'e' || int32(c) == 'i' || int32(c) == 'o' || int32(c) == 'u' || bYIsVowel != 0 && int32(c) == 'y')
+}
+
+func fts5PorterGobbleVC(tls *libc.TLS, zStem uintptr, nStem int32, bPrevCons int32) int32 {
+ var i int32
+ var bCons int32 = bPrevCons
+
+ for i = 0; i < nStem; i++ {
+ if 0 == libc.AssignInt32(&bCons, libc.BoolInt32(!(fts5PorterIsVowel(tls, *(*int8)(unsafe.Pointer(zStem + uintptr(i))), bCons) != 0))) {
+ break
+ }
+ }
+
+ for i++; i < nStem; i++ {
+ if libc.AssignInt32(&bCons, libc.BoolInt32(!(fts5PorterIsVowel(tls, *(*int8)(unsafe.Pointer(zStem + uintptr(i))), bCons) != 0))) != 0 {
+ return i + 1
+ }
+ }
+ return 0
+}
+
+func fts5Porter_MGt0(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ return libc.BoolInt32(!!(fts5PorterGobbleVC(tls, zStem, nStem, 0) != 0))
+}
+
+func fts5Porter_MGt1(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ var n int32
+ n = fts5PorterGobbleVC(tls, zStem, nStem, 0)
+ if n != 0 && fts5PorterGobbleVC(tls, zStem+uintptr(n), nStem-n, 1) != 0 {
+ return 1
+ }
+ return 0
+}
+
+func fts5Porter_MEq1(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ var n int32
+ n = fts5PorterGobbleVC(tls, zStem, nStem, 0)
+ if n != 0 && 0 == fts5PorterGobbleVC(tls, zStem+uintptr(n), nStem-n, 1) {
+ return 1
+ }
+ return 0
+}
+
+func fts5Porter_Ostar(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ if int32(*(*int8)(unsafe.Pointer(zStem + uintptr(nStem-1)))) == 'w' || int32(*(*int8)(unsafe.Pointer(zStem + uintptr(nStem-1)))) == 'x' || int32(*(*int8)(unsafe.Pointer(zStem + uintptr(nStem-1)))) == 'y' {
+ return 0
+ } else {
+ var i int32
+ var mask int32 = 0
+ var bCons int32 = 0
+ for i = 0; i < nStem; i++ {
+ bCons = libc.BoolInt32(!(fts5PorterIsVowel(tls, *(*int8)(unsafe.Pointer(zStem + uintptr(i))), bCons) != 0))
+
+ mask = mask<<1 + bCons
+ }
+ return libc.Bool32(mask&0x0007 == 0x0005)
+ }
+ return int32(0)
+}
+
+func fts5Porter_MGt1_and_S_or_T(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ return libc.Bool32((int32(*(*int8)(unsafe.Pointer(zStem + uintptr(nStem-1)))) == 's' || int32(*(*int8)(unsafe.Pointer(zStem + uintptr(nStem-1)))) == 't') &&
+ fts5Porter_MGt1(tls, zStem, nStem) != 0)
+}
+
+func fts5Porter_Vowel(tls *libc.TLS, zStem uintptr, nStem int32) int32 {
+ var i int32
+ for i = 0; i < nStem; i++ {
+ if fts5PorterIsVowel(tls, *(*int8)(unsafe.Pointer(zStem + uintptr(i))), libc.Bool32(i > 0)) != 0 {
+ return 1
+ }
+ }
+ return 0
+}
+
+func fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) int32 {
+ var ret int32 = 0
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) {
+ case 'a':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37463, aBuf+uintptr(nBuf-2), uint64(2)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-2) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ }
+ }
+ break
+
+ case 'c':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37466, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37471, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ }
+ break
+
+ case 'e':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37476, aBuf+uintptr(nBuf-2), uint64(2)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-2) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ }
+ }
+ break
+
+ case 'i':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37479, aBuf+uintptr(nBuf-2), uint64(2)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-2) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ }
+ }
+ break
+
+ case 'l':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37482, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37487, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ }
+ break
+
+ case 'n':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37492, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37496, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-5) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37502, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ } else if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37507, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 'o':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37511, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ } else if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37515, aBuf+uintptr(nBuf-2), uint64(2)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-2) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ }
+ }
+ break
+
+ case 's':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37518, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 't':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37522, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ } else if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37526, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 'u':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37530, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 'v':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37534, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 'z':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37538, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt1(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ }
+ return ret
+}
+
+func fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) int32 {
+ var ret int32 = 0
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) {
+ case 'a':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37542, aBuf+uintptr(nBuf-2), uint64(2)) {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-2), ts+37522, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-2), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2 + 3
+ ret = 1
+ }
+ break
+
+ case 'b':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37545, aBuf+uintptr(nBuf-2), uint64(2)) {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-2), ts+37548, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-2), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2 + 3
+ ret = 1
+ }
+ break
+
+ case 'i':
+ if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37552, aBuf+uintptr(nBuf-2), uint64(2)) {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-2), ts+37538, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-2), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2 + 3
+ ret = 1
+ }
+ break
+
+ }
+ return ret
+}
+
+func fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) int32 {
+ var ret int32 = 0
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) {
+ case 'a':
+ if nBuf > 7 && 0 == libc.Xmemcmp(tls, ts+37555, aBuf+uintptr(nBuf-7), uint64(7)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-7) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-7), ts+37522, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-7), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 7 + 3
+ }
+ } else if nBuf > 6 && 0 == libc.Xmemcmp(tls, ts+37563, aBuf+uintptr(nBuf-6), uint64(6)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-6) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-6), ts+37570, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-6), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 6 + 4
+ }
+ }
+ break
+
+ case 'c':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37575, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37471, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 4
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37580, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37466, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 4
+ }
+ }
+ break
+
+ case 'e':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37585, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37538, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 3
+ }
+ }
+ break
+
+ case 'g':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37590, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+15883, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 3
+ }
+ }
+ break
+
+ case 'l':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37595, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-3) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-3), ts+37548, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-3), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3 + 3
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37599, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37463, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 2
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37604, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37507, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 3
+ }
+ } else if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37610, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-3) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-3), ts+37614, uint64(1), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-3), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3 + 1
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37616, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37530, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 3
+ }
+ }
+ break
+
+ case 'o':
+ if nBuf > 7 && 0 == libc.Xmemcmp(tls, ts+37622, aBuf+uintptr(nBuf-7), uint64(7)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-7) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-7), ts+37538, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-7), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 7 + 3
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37630, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37522, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 3
+ }
+ } else if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37636, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37522, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 3
+ }
+ }
+ break
+
+ case 's':
+ if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37641, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37463, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 2
+ }
+ } else if nBuf > 7 && 0 == libc.Xmemcmp(tls, ts+37647, aBuf+uintptr(nBuf-7), uint64(7)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-7) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-7), ts+37534, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-7), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 7 + 3
+ }
+ } else if nBuf > 7 && 0 == libc.Xmemcmp(tls, ts+37655, aBuf+uintptr(nBuf-7), uint64(7)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-7) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-7), ts+37663, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-7), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 7 + 3
+ }
+ } else if nBuf > 7 && 0 == libc.Xmemcmp(tls, ts+37667, aBuf+uintptr(nBuf-7), uint64(7)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-7) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-7), ts+37530, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-7), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 7 + 3
+ }
+ }
+ break
+
+ case 't':
+ if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37675, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37463, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 2
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37681, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37534, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 3
+ }
+ } else if nBuf > 6 && 0 == libc.Xmemcmp(tls, ts+37687, aBuf+uintptr(nBuf-6), uint64(6)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-6) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-6), ts+37548, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-6), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 6 + 3
+ }
+ }
+ break
+
+ }
+ return ret
+}
+
+func fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) int32 {
+ var ret int32 = 0
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) {
+ case 'a':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37694, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-4), ts+37479, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-4), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4 + 2
+ }
+ }
+ break
+
+ case 's':
+ if nBuf > 4 && 0 == libc.Xmemcmp(tls, ts+37699, aBuf+uintptr(nBuf-4), uint64(4)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-4) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 4
+ }
+ }
+ break
+
+ case 't':
+ if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37704, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37479, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 2
+ }
+ } else if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37710, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37479, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 2
+ }
+ }
+ break
+
+ case 'u':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37663, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ }
+ }
+ break
+
+ case 'v':
+ if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37716, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5
+ }
+ }
+ break
+
+ case 'z':
+ if nBuf > 5 && 0 == libc.Xmemcmp(tls, ts+37722, aBuf+uintptr(nBuf-5), uint64(5)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-5) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-5), ts+37463, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-5), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 5 + 2
+ }
+ }
+ break
+
+ }
+ return ret
+}
+
+func fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) int32 {
+ var ret int32 = 0
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) {
+ case 'e':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37728, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_MGt0(tls, aBuf, nBuf-3) != 0 {
+ libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-3), ts+37732, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-3), 0))
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3 + 2
+ }
+ } else if nBuf > 2 && 0 == libc.Xmemcmp(tls, ts+37735, aBuf+uintptr(nBuf-2), uint64(2)) {
+ if fts5Porter_Vowel(tls, aBuf, nBuf-2) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ ret = 1
+ }
+ }
+ break
+
+ case 'n':
+ if nBuf > 3 && 0 == libc.Xmemcmp(tls, ts+37738, aBuf+uintptr(nBuf-3), uint64(3)) {
+ if fts5Porter_Vowel(tls, aBuf, nBuf-3) != 0 {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 3
+ ret = 1
+ }
+ }
+ break
+
+ }
+ return ret
+}
+
+func fts5PorterStep1A(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) {
+ var nBuf int32 = *(*int32)(unsafe.Pointer(pnBuf))
+ if int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-1)))) == 's' {
+ if int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) == 'e' {
+ if nBuf > 4 && int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-4)))) == 's' && int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-3)))) == 's' ||
+ nBuf > 3 && int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-3)))) == 'i' {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 2
+ } else {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 1
+ }
+ } else if int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-2)))) != 's' {
+ *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - 1
+ }
+ }
+}
+
+func fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nToken int32, iStart int32, iEnd int32) int32 {
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var p uintptr
+ var aBuf uintptr
+
+ var c int8
+ p = pCtx
+
+ if !(nToken > FTS5_PORTER_MAX_TOKEN || nToken < 3) {
+ goto __1
+ }
+ goto pass_through
+__1:
+ ;
+ aBuf = (*PorterContext)(unsafe.Pointer(p)).FaBuf
+ *(*int32)(unsafe.Pointer(bp)) = nToken
+ libc.X__builtin___memcpy_chk(tls, aBuf, pToken, uint64(*(*int32)(unsafe.Pointer(bp))), libc.X__builtin_object_size(tls, aBuf, 0))
+
+ fts5PorterStep1A(tls, aBuf, bp)
+ if !(fts5PorterStep1B(tls, aBuf, bp) != 0) {
+ goto __2
+ }
+ if !(fts5PorterStep1B2(tls, aBuf, bp) == 0) {
+ goto __3
+ }
+ c = *(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-1)))
+ if !(fts5PorterIsVowel(tls, c, 0) == 0 &&
+ int32(c) != 'l' && int32(c) != 's' && int32(c) != 'z' && int32(c) == int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-2))))) {
+ goto __4
+ }
+ *(*int32)(unsafe.Pointer(bp))--
+ goto __5
+__4:
+ if !(fts5Porter_MEq1(tls, aBuf, *(*int32)(unsafe.Pointer(bp))) != 0 && fts5Porter_Ostar(tls, aBuf, *(*int32)(unsafe.Pointer(bp))) != 0) {
+ goto __6
+ }
+ *(*int8)(unsafe.Pointer(aBuf + uintptr(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(bp)), 1)))) = int8('e')
+__6:
+ ;
+__5:
+ ;
+__3:
+ ;
+__2:
+ ;
+ if !(int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-1)))) == 'y' && fts5Porter_Vowel(tls, aBuf, *(*int32)(unsafe.Pointer(bp))-1) != 0) {
+ goto __7
+ }
+ *(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-1))) = int8('i')
+__7:
+ ;
+ fts5PorterStep2(tls, aBuf, bp)
+ fts5PorterStep3(tls, aBuf, bp)
+ fts5PorterStep4(tls, aBuf, bp)
+
+ if !(int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-1)))) == 'e') {
+ goto __8
+ }
+ if !(fts5Porter_MGt1(tls, aBuf, *(*int32)(unsafe.Pointer(bp))-1) != 0 ||
+ fts5Porter_MEq1(tls, aBuf, *(*int32)(unsafe.Pointer(bp))-1) != 0 && !(fts5Porter_Ostar(tls, aBuf, *(*int32)(unsafe.Pointer(bp))-1) != 0)) {
+ goto __9
+ }
+ *(*int32)(unsafe.Pointer(bp))--
+__9:
+ ;
+__8:
+ ;
+ if !(*(*int32)(unsafe.Pointer(bp)) > 1 && int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-1)))) == 'l' &&
+ int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-2)))) == 'l' && fts5Porter_MGt1(tls, aBuf, *(*int32)(unsafe.Pointer(bp))-1) != 0) {
+ goto __10
+ }
+ *(*int32)(unsafe.Pointer(bp))--
+__10:
+ ;
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*PorterContext)(unsafe.Pointer(p)).FxToken})).f(tls, (*PorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd)
+
+pass_through:
+ return (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*PorterContext)(unsafe.Pointer(p)).FxToken})).f(tls, (*PorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd)
+}
+
+func fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var p uintptr = pTokenizer
+
+ (*PorterContext)(unsafe.Pointer(bp)).FxToken = xToken
+ (*PorterContext)(unsafe.Pointer(bp)).FpCtx = pCtx
+ (*PorterContext)(unsafe.Pointer(bp)).FaBuf = p + 32
+ return (*struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*PorterTokenizer)(unsafe.Pointer(p)).Ftokenizer.FxTokenize})).f(tls,
+ (*PorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ }{fts5PorterCb})))
+}
+
+// *************************************************************************
+//
+// Start of trigram implementation.
+type TrigramTokenizer1 = struct{ FbFold int32 }
+
+// *************************************************************************
+//
+// Start of trigram implementation.
+type TrigramTokenizer = TrigramTokenizer1
+
+func fts5TriDelete(tls *libc.TLS, p uintptr) {
+ Xsqlite3_free(tls, p)
+}
+
+func fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, ppOut uintptr) int32 {
+ var rc int32 = SQLITE_OK
+ var pNew uintptr = Xsqlite3_malloc(tls, int32(unsafe.Sizeof(TrigramTokenizer{})))
+ _ = pUnused
+ if pNew == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ var i int32
+ (*TrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = 1
+ for i = 0; rc == SQLITE_OK && i < nArg; i = i + 2 {
+ var zArg uintptr = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+1)*8))
+ if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), ts+37742) {
+ if int32(*(*int8)(unsafe.Pointer(zArg))) != '0' && int32(*(*int8)(unsafe.Pointer(zArg))) != '1' || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 {
+ rc = SQLITE_ERROR
+ } else {
+ (*TrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.Bool32(int32(*(*int8)(unsafe.Pointer(zArg))) == '0')
+ }
+ } else {
+ rc = SQLITE_ERROR
+ }
+ }
+ if rc != SQLITE_OK {
+ fts5TriDelete(tls, pNew)
+ pNew = uintptr(0)
+ }
+ }
+ *(*uintptr)(unsafe.Pointer(ppOut)) = pNew
+ return rc
+}
+
+func fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) int32 {
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var p uintptr = pTok
+ var rc int32 = SQLITE_OK
+
+ var zIn uintptr = pText
+ var zEof uintptr = zIn + uintptr(nText)
+ var iCode U32
+
+ _ = unusedFlags
+ for 1 != 0 {
+ var zOut uintptr = bp
+ var iStart int32 = int32((int64(zIn) - int64(pText)) / 1)
+ var zNext uintptr
+
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if iCode >= U32(0xc0) {
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+ for zIn != zEof && int32(*(*uint8)(unsafe.Pointer(zIn)))&0xc0 == 0x80 {
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))))
+ }
+ if iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE) {
+ iCode = U32(0xFFFD)
+ }
+ }
+
+ if iCode == U32(0) {
+ break
+ }
+ zNext = zIn
+ if zIn < zEof {
+ if (*TrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 {
+ iCode = U32(sqlite3Fts5UnicodeFold(tls, int32(iCode), 0))
+ }
+ {
+ if iCode < U32(0x00080) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(U8(iCode & U32(0xFF)))
+ } else if iCode < U32(0x00800) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xC0 + int32(U8(iCode>>6&U32(0x1F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else if iCode < U32(0x10000) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xE0 + int32(U8(iCode>>12&U32(0x0F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xF0 + int32(U8(iCode>>18&U32(0x07))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>12&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ }
+ }
+
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if iCode >= U32(0xc0) {
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+ for zIn != zEof && int32(*(*uint8)(unsafe.Pointer(zIn)))&0xc0 == 0x80 {
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))))
+ }
+ if iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE) {
+ iCode = U32(0xFFFD)
+ }
+ }
+
+ if iCode == U32(0) {
+ break
+ }
+ } else {
+ break
+ }
+ if zIn < zEof {
+ if (*TrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 {
+ iCode = U32(sqlite3Fts5UnicodeFold(tls, int32(iCode), 0))
+ }
+ {
+ if iCode < U32(0x00080) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(U8(iCode & U32(0xFF)))
+ } else if iCode < U32(0x00800) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xC0 + int32(U8(iCode>>6&U32(0x1F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else if iCode < U32(0x10000) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xE0 + int32(U8(iCode>>12&U32(0x0F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xF0 + int32(U8(iCode>>18&U32(0x07))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>12&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ }
+ }
+
+ iCode = U32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1))))
+ if iCode >= U32(0xc0) {
+ iCode = U32(sqlite3Utf8Trans1[iCode-U32(0xc0)])
+ for zIn != zEof && int32(*(*uint8)(unsafe.Pointer(zIn)))&0xc0 == 0x80 {
+ iCode = iCode<<6 + U32(0x3f&int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&zIn, 1)))))
+ }
+ if iCode < U32(0x80) || iCode&0xFFFFF800 == U32(0xD800) || iCode&0xFFFFFFFE == U32(0xFFFE) {
+ iCode = U32(0xFFFD)
+ }
+ }
+
+ if iCode == U32(0) {
+ break
+ }
+ if (*TrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 {
+ iCode = U32(sqlite3Fts5UnicodeFold(tls, int32(iCode), 0))
+ }
+ {
+ if iCode < U32(0x00080) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(U8(iCode & U32(0xFF)))
+ } else if iCode < U32(0x00800) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xC0 + int32(U8(iCode>>6&U32(0x1F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else if iCode < U32(0x10000) {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xE0 + int32(U8(iCode>>12&U32(0x0F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ } else {
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0xF0 + int32(U8(iCode>>18&U32(0x07))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>12&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode>>6&U32(0x3F))))
+ *(*int8)(unsafe.Pointer(libc.PostIncUintptr(&zOut, 1))) = int8(0x80 + int32(U8(iCode&U32(0x3F))))
+ }
+ }
+
+ } else {
+ break
+ }
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32
+ })(unsafe.Pointer(&struct{ uintptr }{xToken})).f(tls, pCtx, 0, bp, int32(int64((zOut-bp)/1)), iStart, int32(int64((uintptr(iStart)+zOut-bp)/1)))
+ if rc != SQLITE_OK {
+ break
+ }
+ zIn = zNext
+ }
+
+ return rc
+}
+
+func sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) int32 {
+ if xCreate == *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ }{fts5TriCreate})) {
+ var p uintptr = pTok
+ if (*TrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 {
+ return FTS5_PATTERN_LIKE
+ }
+ return FTS5_PATTERN_GLOB
+ }
+ return FTS5_PATTERN_NONE
+}
+
+func sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) int32 {
+ bp := tls.Alloc(128)
+ defer tls.Free(128)
+
+ *(*[4]BuiltinTokenizer)(unsafe.Pointer(bp)) = [4]BuiltinTokenizer{
+ {FzName: ts + 37453, Fx: Fts5_tokenizer{FxCreate: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ }{fts5UnicodeCreate})), FxDelete: *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5UnicodeDelete})), FxTokenize: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ }{fts5UnicodeTokenize}))}},
+ {FzName: ts + 37757, Fx: Fts5_tokenizer{FxCreate: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ }{fts5AsciiCreate})), FxDelete: *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5AsciiDelete})), FxTokenize: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ }{fts5AsciiTokenize}))}},
+ {FzName: ts + 37763, Fx: Fts5_tokenizer{FxCreate: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ }{fts5PorterCreate})), FxDelete: *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5PorterDelete})), FxTokenize: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ }{fts5PorterTokenize}))}},
+ {FzName: ts + 37770, Fx: Fts5_tokenizer{FxCreate: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32
+ }{fts5TriCreate})), FxDelete: *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, uintptr) }{fts5TriDelete})), FxTokenize: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32
+ }{fts5TriTokenize}))}},
+ }
+
+ var rc int32 = SQLITE_OK
+ var i int32
+
+ for i = 0; rc == SQLITE_OK && i < int32(uint64(unsafe.Sizeof([4]BuiltinTokenizer{}))/uint64(unsafe.Sizeof(BuiltinTokenizer{}))); i++ {
+ rc = (*struct {
+ f func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{(*Fts5_api)(unsafe.Pointer(pApi)).FxCreateTokenizer})).f(tls, pApi,
+ (*BuiltinTokenizer)(unsafe.Pointer(bp+uintptr(i)*32)).FzName,
+ pApi,
+ bp+uintptr(i)*32+8,
+ uintptr(0))
+ }
+
+ return rc
+}
+
+type BuiltinTokenizer = struct {
+ FzName uintptr
+ Fx Fts5_tokenizer
+}
+
+func fts5_remove_diacritic(tls *libc.TLS, c int32, bComplex int32) int32 {
+ bp := tls.Alloc(378)
+ defer tls.Free(378)
+
+ *(*[126]uint16)(unsafe.Pointer(bp)) = [126]uint16{
+ uint16(0), uint16(1797), uint16(1848), uint16(1859), uint16(1891), uint16(1928), uint16(1940), uint16(1995),
+ uint16(2024), uint16(2040), uint16(2060), uint16(2110), uint16(2168), uint16(2206), uint16(2264), uint16(2286),
+ uint16(2344), uint16(2383), uint16(2472), uint16(2488), uint16(2516), uint16(2596), uint16(2668), uint16(2732),
+ uint16(2782), uint16(2842), uint16(2894), uint16(2954), uint16(2984), uint16(3000), uint16(3028), uint16(3336),
+ uint16(3456), uint16(3696), uint16(3712), uint16(3728), uint16(3744), uint16(3766), uint16(3832), uint16(3896),
+ uint16(3912), uint16(3928), uint16(3944), uint16(3968), uint16(4008), uint16(4040), uint16(4056), uint16(4106),
+ uint16(4138), uint16(4170), uint16(4202), uint16(4234), uint16(4266), uint16(4296), uint16(4312), uint16(4344),
+ uint16(4408), uint16(4424), uint16(4442), uint16(4472), uint16(4488), uint16(4504), uint16(6148), uint16(6198),
+ uint16(6264), uint16(6280), uint16(6360), uint16(6429), uint16(6505), uint16(6529), uint16(61448), uint16(61468),
+ uint16(61512), uint16(61534), uint16(61592), uint16(61610), uint16(61642), uint16(61672), uint16(61688), uint16(61704),
+ uint16(61726), uint16(61784), uint16(61800), uint16(61816), uint16(61836), uint16(61880), uint16(61896), uint16(61914),
+ uint16(61948), uint16(61998), uint16(62062), uint16(62122), uint16(62154), uint16(62184), uint16(62200), uint16(62218),
+ uint16(62252), uint16(62302), uint16(62364), uint16(62410), uint16(62442), uint16(62478), uint16(62536), uint16(62554),
+ uint16(62584), uint16(62604), uint16(62640), uint16(62648), uint16(62656), uint16(62664), uint16(62730), uint16(62766),
+ uint16(62830), uint16(62890), uint16(62924), uint16(62974), uint16(63032), uint16(63050), uint16(63082), uint16(63118),
+ uint16(63182), uint16(63242), uint16(63274), uint16(63310), uint16(63368), uint16(63390),
+ }
+ *(*[126]uint8)(unsafe.Pointer(bp + 252)) = [126]uint8{
+ uint8(0), uint8('a'), uint8('c'), uint8('e'), uint8('i'), uint8('n'),
+ uint8('o'), uint8('u'), uint8('y'), uint8('y'), uint8('a'), uint8('c'),
+ uint8('d'), uint8('e'), uint8('e'), uint8('g'), uint8('h'), uint8('i'),
+ uint8('j'), uint8('k'), uint8('l'), uint8('n'), uint8('o'), uint8('r'),
+ uint8('s'), uint8('t'), uint8('u'), uint8('u'), uint8('w'), uint8('y'),
+ uint8('z'), uint8('o'), uint8('u'), uint8('a'), uint8('i'), uint8('o'),
+ uint8('u'), uint8('u' | int32(uint8(0x80))), uint8('a' | int32(uint8(0x80))), uint8('g'), uint8('k'), uint8('o'),
+ uint8('o' | int32(uint8(0x80))), uint8('j'), uint8('g'), uint8('n'), uint8('a' | int32(uint8(0x80))), uint8('a'),
+ uint8('e'), uint8('i'), uint8('o'), uint8('r'), uint8('u'), uint8('s'),
+ uint8('t'), uint8('h'), uint8('a'), uint8('e'), uint8('o' | int32(uint8(0x80))), uint8('o'),
+ uint8('o' | int32(uint8(0x80))), uint8('y'), uint8(0), uint8(0), uint8(0), uint8(0),
+ uint8(0), uint8(0), uint8(0), uint8(0), uint8('a'), uint8('b'),
+ uint8('c' | int32(uint8(0x80))), uint8('d'), uint8('d'), uint8('e' | int32(uint8(0x80))), uint8('e'), uint8('e' | int32(uint8(0x80))),
+ uint8('f'), uint8('g'), uint8('h'), uint8('h'), uint8('i'), uint8('i' | int32(uint8(0x80))),
+ uint8('k'), uint8('l'), uint8('l' | int32(uint8(0x80))), uint8('l'), uint8('m'), uint8('n'),
+ uint8('o' | int32(uint8(0x80))), uint8('p'), uint8('r'), uint8('r' | int32(uint8(0x80))), uint8('r'), uint8('s'),
+ uint8('s' | int32(uint8(0x80))), uint8('t'), uint8('u'), uint8('u' | int32(uint8(0x80))), uint8('v'), uint8('w'),
+ uint8('w'), uint8('x'), uint8('y'), uint8('z'), uint8('h'), uint8('t'),
+ uint8('w'), uint8('y'), uint8('a'), uint8('a' | int32(uint8(0x80))), uint8('a' | int32(uint8(0x80))), uint8('a' | int32(uint8(0x80))),
+ uint8('e'), uint8('e' | int32(uint8(0x80))), uint8('e' | int32(uint8(0x80))), uint8('i'), uint8('o'), uint8('o' | int32(uint8(0x80))),
+ uint8('o' | int32(uint8(0x80))), uint8('o' | int32(uint8(0x80))), uint8('u'), uint8('u' | int32(uint8(0x80))), uint8('u' | int32(uint8(0x80))), uint8('y'),
+ }
+
+ var key uint32 = uint32(c)<<3 | uint32(0x00000007)
+ var iRes int32 = 0
+ var iHi int32 = int32(uint64(unsafe.Sizeof([126]uint16{}))/uint64(unsafe.Sizeof(uint16(0))) - uint64(1))
+ var iLo int32 = 0
+ for iHi >= iLo {
+ var iTest int32 = (iHi + iLo) / 2
+ if key >= uint32(*(*uint16)(unsafe.Pointer(bp + uintptr(iTest)*2))) {
+ iRes = iTest
+ iLo = iTest + 1
+ } else {
+ iHi = iTest - 1
+ }
+ }
+
+ if bComplex == 0 && int32(*(*uint8)(unsafe.Pointer(bp + 252 + uintptr(iRes))))&0x80 != 0 {
+ return c
+ }
+ if c > int32(*(*uint16)(unsafe.Pointer(bp + uintptr(iRes)*2)))>>3+int32(*(*uint16)(unsafe.Pointer(bp + uintptr(iRes)*2)))&0x07 {
+ return c
+ }
+ return int32(*(*uint8)(unsafe.Pointer(bp + 252 + uintptr(iRes)))) & 0x7F
+}
+
+func sqlite3Fts5UnicodeIsdiacritic(tls *libc.TLS, c int32) int32 {
+ var mask0 uint32 = uint32(0x08029FDF)
+ var mask1 uint32 = uint32(0x000361F8)
+ if c < 768 || c > 817 {
+ return 0
+ }
+ if c < 768+32 {
+ return int32(mask0 & (uint32(1) << (c - 768)))
+ }
+ return int32(mask1 & (uint32(1) << (c - 768 - 32)))
+}
+
+func sqlite3Fts5UnicodeFold(tls *libc.TLS, c int32, eRemoveDiacritic int32) int32 {
+ var ret int32 = c
+
+ if c < 128 {
+ if c >= 'A' && c <= 'Z' {
+ ret = c + ('a' - 'A')
+ }
+ } else if c < 65536 {
+ var p uintptr
+ var iHi int32 = int32(uint64(unsafe.Sizeof(aEntry))/uint64(unsafe.Sizeof(TableEntry{})) - uint64(1))
+ var iLo int32 = 0
+ var iRes int32 = -1
+
+ for iHi >= iLo {
+ var iTest int32 = (iHi + iLo) / 2
+ var cmp int32 = c - int32(aEntry[iTest].FiCode)
+ if cmp >= 0 {
+ iRes = iTest
+ iLo = iTest + 1
+ } else {
+ iHi = iTest - 1
+ }
+ }
+
+ p = uintptr(unsafe.Pointer(&aEntry)) + uintptr(iRes)*4
+ if c < int32((*TableEntry)(unsafe.Pointer(p)).FiCode)+int32((*TableEntry)(unsafe.Pointer(p)).FnRange) && 0 == 0x01&int32((*TableEntry)(unsafe.Pointer(p)).Fflags)&(int32((*TableEntry)(unsafe.Pointer(p)).FiCode)^c) {
+ ret = (c + int32(aiOff[int32((*TableEntry)(unsafe.Pointer(p)).Fflags)>>1])) & 0x0000FFFF
+
+ }
+
+ if eRemoveDiacritic != 0 {
+ ret = fts5_remove_diacritic(tls, ret, libc.Bool32(eRemoveDiacritic == 2))
+ }
+ } else if c >= 66560 && c < 66600 {
+ ret = c + 40
+ }
+
+ return ret
+}
+
+// Each entry in the following array defines a rule for folding a range
+// of codepoints to lower case. The rule applies to a range of nRange
+// codepoints starting at codepoint iCode.
+//
+// If the least significant bit in flags is clear, then the rule applies
+// to all nRange codepoints (i.e. all nRange codepoints are upper case and
+// need to be folded). Or, if it is set, then the rule only applies to
+// every second codepoint in the range, starting with codepoint C.
+//
+// The 7 most significant bits in flags are an index into the aiOff[]
+// array. If a specific codepoint C does require folding, then its lower
+// case equivalent is ((C + aiOff[flags>>1]) & 0xFFFF).
+//
+// The contents of this array are generated by parsing the CaseFolding.txt
+// file distributed as part of the "Unicode Character Database". See
+// http://www.unicode.org for details.
+type TableEntry = struct {
+ FiCode uint16
+ Fflags uint8
+ FnRange uint8
+}
+
+var aEntry = [163]TableEntry{
+ {FiCode: uint16(65), Fflags: uint8(14), FnRange: uint8(26)}, {FiCode: uint16(181), Fflags: uint8(64), FnRange: uint8(1)}, {FiCode: uint16(192), Fflags: uint8(14), FnRange: uint8(23)},
+ {FiCode: uint16(216), Fflags: uint8(14), FnRange: uint8(7)}, {FiCode: uint16(256), Fflags: uint8(1), FnRange: uint8(48)}, {FiCode: uint16(306), Fflags: uint8(1), FnRange: uint8(6)},
+ {FiCode: uint16(313), Fflags: uint8(1), FnRange: uint8(16)}, {FiCode: uint16(330), Fflags: uint8(1), FnRange: uint8(46)}, {FiCode: uint16(376), Fflags: uint8(116), FnRange: uint8(1)},
+ {FiCode: uint16(377), Fflags: uint8(1), FnRange: uint8(6)}, {FiCode: uint16(383), Fflags: uint8(104), FnRange: uint8(1)}, {FiCode: uint16(385), Fflags: uint8(50), FnRange: uint8(1)},
+ {FiCode: uint16(386), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(390), Fflags: uint8(44), FnRange: uint8(1)}, {FiCode: uint16(391), FnRange: uint8(1)},
+ {FiCode: uint16(393), Fflags: uint8(42), FnRange: uint8(2)}, {FiCode: uint16(395), FnRange: uint8(1)}, {FiCode: uint16(398), Fflags: uint8(32), FnRange: uint8(1)},
+ {FiCode: uint16(399), Fflags: uint8(38), FnRange: uint8(1)}, {FiCode: uint16(400), Fflags: uint8(40), FnRange: uint8(1)}, {FiCode: uint16(401), FnRange: uint8(1)},
+ {FiCode: uint16(403), Fflags: uint8(42), FnRange: uint8(1)}, {FiCode: uint16(404), Fflags: uint8(46), FnRange: uint8(1)}, {FiCode: uint16(406), Fflags: uint8(52), FnRange: uint8(1)},
+ {FiCode: uint16(407), Fflags: uint8(48), FnRange: uint8(1)}, {FiCode: uint16(408), FnRange: uint8(1)}, {FiCode: uint16(412), Fflags: uint8(52), FnRange: uint8(1)},
+ {FiCode: uint16(413), Fflags: uint8(54), FnRange: uint8(1)}, {FiCode: uint16(415), Fflags: uint8(56), FnRange: uint8(1)}, {FiCode: uint16(416), Fflags: uint8(1), FnRange: uint8(6)},
+ {FiCode: uint16(422), Fflags: uint8(60), FnRange: uint8(1)}, {FiCode: uint16(423), FnRange: uint8(1)}, {FiCode: uint16(425), Fflags: uint8(60), FnRange: uint8(1)},
+ {FiCode: uint16(428), FnRange: uint8(1)}, {FiCode: uint16(430), Fflags: uint8(60), FnRange: uint8(1)}, {FiCode: uint16(431), FnRange: uint8(1)},
+ {FiCode: uint16(433), Fflags: uint8(58), FnRange: uint8(2)}, {FiCode: uint16(435), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(439), Fflags: uint8(62), FnRange: uint8(1)},
+ {FiCode: uint16(440), FnRange: uint8(1)}, {FiCode: uint16(444), FnRange: uint8(1)}, {FiCode: uint16(452), Fflags: uint8(2), FnRange: uint8(1)},
+ {FiCode: uint16(453), FnRange: uint8(1)}, {FiCode: uint16(455), Fflags: uint8(2), FnRange: uint8(1)}, {FiCode: uint16(456), FnRange: uint8(1)},
+ {FiCode: uint16(458), Fflags: uint8(2), FnRange: uint8(1)}, {FiCode: uint16(459), Fflags: uint8(1), FnRange: uint8(18)}, {FiCode: uint16(478), Fflags: uint8(1), FnRange: uint8(18)},
+ {FiCode: uint16(497), Fflags: uint8(2), FnRange: uint8(1)}, {FiCode: uint16(498), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(502), Fflags: uint8(122), FnRange: uint8(1)},
+ {FiCode: uint16(503), Fflags: uint8(134), FnRange: uint8(1)}, {FiCode: uint16(504), Fflags: uint8(1), FnRange: uint8(40)}, {FiCode: uint16(544), Fflags: uint8(110), FnRange: uint8(1)},
+ {FiCode: uint16(546), Fflags: uint8(1), FnRange: uint8(18)}, {FiCode: uint16(570), Fflags: uint8(70), FnRange: uint8(1)}, {FiCode: uint16(571), FnRange: uint8(1)},
+ {FiCode: uint16(573), Fflags: uint8(108), FnRange: uint8(1)}, {FiCode: uint16(574), Fflags: uint8(68), FnRange: uint8(1)}, {FiCode: uint16(577), FnRange: uint8(1)},
+ {FiCode: uint16(579), Fflags: uint8(106), FnRange: uint8(1)}, {FiCode: uint16(580), Fflags: uint8(28), FnRange: uint8(1)}, {FiCode: uint16(581), Fflags: uint8(30), FnRange: uint8(1)},
+ {FiCode: uint16(582), Fflags: uint8(1), FnRange: uint8(10)}, {FiCode: uint16(837), Fflags: uint8(36), FnRange: uint8(1)}, {FiCode: uint16(880), Fflags: uint8(1), FnRange: uint8(4)},
+ {FiCode: uint16(886), FnRange: uint8(1)}, {FiCode: uint16(902), Fflags: uint8(18), FnRange: uint8(1)}, {FiCode: uint16(904), Fflags: uint8(16), FnRange: uint8(3)},
+ {FiCode: uint16(908), Fflags: uint8(26), FnRange: uint8(1)}, {FiCode: uint16(910), Fflags: uint8(24), FnRange: uint8(2)}, {FiCode: uint16(913), Fflags: uint8(14), FnRange: uint8(17)},
+ {FiCode: uint16(931), Fflags: uint8(14), FnRange: uint8(9)}, {FiCode: uint16(962), FnRange: uint8(1)}, {FiCode: uint16(975), Fflags: uint8(4), FnRange: uint8(1)},
+ {FiCode: uint16(976), Fflags: uint8(140), FnRange: uint8(1)}, {FiCode: uint16(977), Fflags: uint8(142), FnRange: uint8(1)}, {FiCode: uint16(981), Fflags: uint8(146), FnRange: uint8(1)},
+ {FiCode: uint16(982), Fflags: uint8(144), FnRange: uint8(1)}, {FiCode: uint16(984), Fflags: uint8(1), FnRange: uint8(24)}, {FiCode: uint16(1008), Fflags: uint8(136), FnRange: uint8(1)},
+ {FiCode: uint16(1009), Fflags: uint8(138), FnRange: uint8(1)}, {FiCode: uint16(1012), Fflags: uint8(130), FnRange: uint8(1)}, {FiCode: uint16(1013), Fflags: uint8(128), FnRange: uint8(1)},
+ {FiCode: uint16(1015), FnRange: uint8(1)}, {FiCode: uint16(1017), Fflags: uint8(152), FnRange: uint8(1)}, {FiCode: uint16(1018), FnRange: uint8(1)},
+ {FiCode: uint16(1021), Fflags: uint8(110), FnRange: uint8(3)}, {FiCode: uint16(1024), Fflags: uint8(34), FnRange: uint8(16)}, {FiCode: uint16(1040), Fflags: uint8(14), FnRange: uint8(32)},
+ {FiCode: uint16(1120), Fflags: uint8(1), FnRange: uint8(34)}, {FiCode: uint16(1162), Fflags: uint8(1), FnRange: uint8(54)}, {FiCode: uint16(1216), Fflags: uint8(6), FnRange: uint8(1)},
+ {FiCode: uint16(1217), Fflags: uint8(1), FnRange: uint8(14)}, {FiCode: uint16(1232), Fflags: uint8(1), FnRange: uint8(88)}, {FiCode: uint16(1329), Fflags: uint8(22), FnRange: uint8(38)},
+ {FiCode: uint16(4256), Fflags: uint8(66), FnRange: uint8(38)}, {FiCode: uint16(4295), Fflags: uint8(66), FnRange: uint8(1)}, {FiCode: uint16(4301), Fflags: uint8(66), FnRange: uint8(1)},
+ {FiCode: uint16(7680), Fflags: uint8(1), FnRange: uint8(150)}, {FiCode: uint16(7835), Fflags: uint8(132), FnRange: uint8(1)}, {FiCode: uint16(7838), Fflags: uint8(96), FnRange: uint8(1)},
+ {FiCode: uint16(7840), Fflags: uint8(1), FnRange: uint8(96)}, {FiCode: uint16(7944), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(7960), Fflags: uint8(150), FnRange: uint8(6)},
+ {FiCode: uint16(7976), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(7992), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(8008), Fflags: uint8(150), FnRange: uint8(6)},
+ {FiCode: uint16(8025), Fflags: uint8(151), FnRange: uint8(8)}, {FiCode: uint16(8040), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(8072), Fflags: uint8(150), FnRange: uint8(8)},
+ {FiCode: uint16(8088), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(8104), Fflags: uint8(150), FnRange: uint8(8)}, {FiCode: uint16(8120), Fflags: uint8(150), FnRange: uint8(2)},
+ {FiCode: uint16(8122), Fflags: uint8(126), FnRange: uint8(2)}, {FiCode: uint16(8124), Fflags: uint8(148), FnRange: uint8(1)}, {FiCode: uint16(8126), Fflags: uint8(100), FnRange: uint8(1)},
+ {FiCode: uint16(8136), Fflags: uint8(124), FnRange: uint8(4)}, {FiCode: uint16(8140), Fflags: uint8(148), FnRange: uint8(1)}, {FiCode: uint16(8152), Fflags: uint8(150), FnRange: uint8(2)},
+ {FiCode: uint16(8154), Fflags: uint8(120), FnRange: uint8(2)}, {FiCode: uint16(8168), Fflags: uint8(150), FnRange: uint8(2)}, {FiCode: uint16(8170), Fflags: uint8(118), FnRange: uint8(2)},
+ {FiCode: uint16(8172), Fflags: uint8(152), FnRange: uint8(1)}, {FiCode: uint16(8184), Fflags: uint8(112), FnRange: uint8(2)}, {FiCode: uint16(8186), Fflags: uint8(114), FnRange: uint8(2)},
+ {FiCode: uint16(8188), Fflags: uint8(148), FnRange: uint8(1)}, {FiCode: uint16(8486), Fflags: uint8(98), FnRange: uint8(1)}, {FiCode: uint16(8490), Fflags: uint8(92), FnRange: uint8(1)},
+ {FiCode: uint16(8491), Fflags: uint8(94), FnRange: uint8(1)}, {FiCode: uint16(8498), Fflags: uint8(12), FnRange: uint8(1)}, {FiCode: uint16(8544), Fflags: uint8(8), FnRange: uint8(16)},
+ {FiCode: uint16(8579), FnRange: uint8(1)}, {FiCode: uint16(9398), Fflags: uint8(10), FnRange: uint8(26)}, {FiCode: uint16(11264), Fflags: uint8(22), FnRange: uint8(47)},
+ {FiCode: uint16(11360), FnRange: uint8(1)}, {FiCode: uint16(11362), Fflags: uint8(88), FnRange: uint8(1)}, {FiCode: uint16(11363), Fflags: uint8(102), FnRange: uint8(1)},
+ {FiCode: uint16(11364), Fflags: uint8(90), FnRange: uint8(1)}, {FiCode: uint16(11367), Fflags: uint8(1), FnRange: uint8(6)}, {FiCode: uint16(11373), Fflags: uint8(84), FnRange: uint8(1)},
+ {FiCode: uint16(11374), Fflags: uint8(86), FnRange: uint8(1)}, {FiCode: uint16(11375), Fflags: uint8(80), FnRange: uint8(1)}, {FiCode: uint16(11376), Fflags: uint8(82), FnRange: uint8(1)},
+ {FiCode: uint16(11378), FnRange: uint8(1)}, {FiCode: uint16(11381), FnRange: uint8(1)}, {FiCode: uint16(11390), Fflags: uint8(78), FnRange: uint8(2)},
+ {FiCode: uint16(11392), Fflags: uint8(1), FnRange: uint8(100)}, {FiCode: uint16(11499), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(11506), FnRange: uint8(1)},
+ {FiCode: uint16(42560), Fflags: uint8(1), FnRange: uint8(46)}, {FiCode: uint16(42624), Fflags: uint8(1), FnRange: uint8(24)}, {FiCode: uint16(42786), Fflags: uint8(1), FnRange: uint8(14)},
+ {FiCode: uint16(42802), Fflags: uint8(1), FnRange: uint8(62)}, {FiCode: uint16(42873), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(42877), Fflags: uint8(76), FnRange: uint8(1)},
+ {FiCode: uint16(42878), Fflags: uint8(1), FnRange: uint8(10)}, {FiCode: uint16(42891), FnRange: uint8(1)}, {FiCode: uint16(42893), Fflags: uint8(74), FnRange: uint8(1)},
+ {FiCode: uint16(42896), Fflags: uint8(1), FnRange: uint8(4)}, {FiCode: uint16(42912), Fflags: uint8(1), FnRange: uint8(10)}, {FiCode: uint16(42922), Fflags: uint8(72), FnRange: uint8(1)},
+ {FiCode: uint16(65313), Fflags: uint8(14), FnRange: uint8(26)},
+}
+var aiOff = [77]uint16{
+ uint16(1), uint16(2), uint16(8), uint16(15), uint16(16), uint16(26), uint16(28), uint16(32),
+ uint16(37), uint16(38), uint16(40), uint16(48), uint16(63), uint16(64), uint16(69), uint16(71),
+ uint16(79), uint16(80), uint16(116), uint16(202), uint16(203), uint16(205), uint16(206), uint16(207),
+ uint16(209), uint16(210), uint16(211), uint16(213), uint16(214), uint16(217), uint16(218), uint16(219),
+ uint16(775), uint16(7264), uint16(10792), uint16(10795), uint16(23228), uint16(23256), uint16(30204), uint16(54721),
+ uint16(54753), uint16(54754), uint16(54756), uint16(54787), uint16(54793), uint16(54809), uint16(57153), uint16(57274),
+ uint16(57921), uint16(58019), uint16(58363), uint16(61722), uint16(65268), uint16(65341), uint16(65373), uint16(65406),
+ uint16(65408), uint16(65410), uint16(65415), uint16(65424), uint16(65436), uint16(65439), uint16(65450), uint16(65462),
+ uint16(65472), uint16(65476), uint16(65478), uint16(65480), uint16(65482), uint16(65488), uint16(65506), uint16(65511),
+ uint16(65514), uint16(65521), uint16(65527), uint16(65528), uint16(65529),
+}
+
+func sqlite3Fts5UnicodeCatParse(tls *libc.TLS, zCat uintptr, aArray uintptr) int32 {
+ *(*U8)(unsafe.Pointer(aArray)) = U8(1)
+ switch int32(*(*int8)(unsafe.Pointer(zCat))) {
+ case 'C':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'c':
+ *(*U8)(unsafe.Pointer(aArray + 1)) = U8(1)
+ break
+ case 'f':
+ *(*U8)(unsafe.Pointer(aArray + 2)) = U8(1)
+ break
+ case 'n':
+ *(*U8)(unsafe.Pointer(aArray + 3)) = U8(1)
+ break
+ case 's':
+ *(*U8)(unsafe.Pointer(aArray + 4)) = U8(1)
+ break
+ case 'o':
+ *(*U8)(unsafe.Pointer(aArray + 31)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 1)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 2)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 3)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 4)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 31)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'L':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'l':
+ *(*U8)(unsafe.Pointer(aArray + 5)) = U8(1)
+ break
+ case 'm':
+ *(*U8)(unsafe.Pointer(aArray + 6)) = U8(1)
+ break
+ case 'o':
+ *(*U8)(unsafe.Pointer(aArray + 7)) = U8(1)
+ break
+ case 't':
+ *(*U8)(unsafe.Pointer(aArray + 8)) = U8(1)
+ break
+ case 'u':
+ *(*U8)(unsafe.Pointer(aArray + 9)) = U8(1)
+ break
+ case 'C':
+ *(*U8)(unsafe.Pointer(aArray + 30)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 5)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 6)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 7)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 8)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 9)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 30)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'M':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'c':
+ *(*U8)(unsafe.Pointer(aArray + 10)) = U8(1)
+ break
+ case 'e':
+ *(*U8)(unsafe.Pointer(aArray + 11)) = U8(1)
+ break
+ case 'n':
+ *(*U8)(unsafe.Pointer(aArray + 12)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 10)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 11)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 12)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'N':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'd':
+ *(*U8)(unsafe.Pointer(aArray + 13)) = U8(1)
+ break
+ case 'l':
+ *(*U8)(unsafe.Pointer(aArray + 14)) = U8(1)
+ break
+ case 'o':
+ *(*U8)(unsafe.Pointer(aArray + 15)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 13)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 14)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 15)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'P':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'c':
+ *(*U8)(unsafe.Pointer(aArray + 16)) = U8(1)
+ break
+ case 'd':
+ *(*U8)(unsafe.Pointer(aArray + 17)) = U8(1)
+ break
+ case 'e':
+ *(*U8)(unsafe.Pointer(aArray + 18)) = U8(1)
+ break
+ case 'f':
+ *(*U8)(unsafe.Pointer(aArray + 19)) = U8(1)
+ break
+ case 'i':
+ *(*U8)(unsafe.Pointer(aArray + 20)) = U8(1)
+ break
+ case 'o':
+ *(*U8)(unsafe.Pointer(aArray + 21)) = U8(1)
+ break
+ case 's':
+ *(*U8)(unsafe.Pointer(aArray + 22)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 16)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 17)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 18)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 19)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 20)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 21)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 22)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'S':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'c':
+ *(*U8)(unsafe.Pointer(aArray + 23)) = U8(1)
+ break
+ case 'k':
+ *(*U8)(unsafe.Pointer(aArray + 24)) = U8(1)
+ break
+ case 'm':
+ *(*U8)(unsafe.Pointer(aArray + 25)) = U8(1)
+ break
+ case 'o':
+ *(*U8)(unsafe.Pointer(aArray + 26)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 23)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 24)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 25)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 26)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ case 'Z':
+ switch int32(*(*int8)(unsafe.Pointer(zCat + 1))) {
+ case 'l':
+ *(*U8)(unsafe.Pointer(aArray + 27)) = U8(1)
+ break
+ case 'p':
+ *(*U8)(unsafe.Pointer(aArray + 28)) = U8(1)
+ break
+ case 's':
+ *(*U8)(unsafe.Pointer(aArray + 29)) = U8(1)
+ break
+ case '*':
+ *(*U8)(unsafe.Pointer(aArray + 27)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 28)) = U8(1)
+ *(*U8)(unsafe.Pointer(aArray + 29)) = U8(1)
+ break
+ default:
+ return 1
+ }
+ break
+
+ }
+ return 0
+}
+
+var aFts5UnicodeBlock = [17]U16{
+ U16(0), U16(1471), U16(1753), U16(1760), U16(1760), U16(1760), U16(1760), U16(1760), U16(1760), U16(1760),
+ U16(1760), U16(1760), U16(1760), U16(1760), U16(1760), U16(1763), U16(1765),
+}
+var aFts5UnicodeMap = [1765]U16{
+ U16(0), U16(32), U16(33), U16(36), U16(37), U16(40), U16(41), U16(42), U16(43), U16(44),
+ U16(45), U16(46), U16(48), U16(58), U16(60), U16(63), U16(65), U16(91), U16(92), U16(93),
+ U16(94), U16(95), U16(96), U16(97), U16(123), U16(124), U16(125), U16(126), U16(127), U16(160),
+ U16(161), U16(162), U16(166), U16(167), U16(168), U16(169), U16(170), U16(171), U16(172), U16(173),
+ U16(174), U16(175), U16(176), U16(177), U16(178), U16(180), U16(181), U16(182), U16(184), U16(185),
+ U16(186), U16(187), U16(188), U16(191), U16(192), U16(215), U16(216), U16(223), U16(247), U16(248),
+ U16(256), U16(312), U16(313), U16(329), U16(330), U16(377), U16(383), U16(385), U16(387), U16(388),
+ U16(391), U16(394), U16(396), U16(398), U16(402), U16(403), U16(405), U16(406), U16(409), U16(412),
+ U16(414), U16(415), U16(417), U16(418), U16(423), U16(427), U16(428), U16(431), U16(434), U16(436),
+ U16(437), U16(440), U16(442), U16(443), U16(444), U16(446), U16(448), U16(452), U16(453), U16(454),
+ U16(455), U16(456), U16(457), U16(458), U16(459), U16(460), U16(461), U16(477), U16(478), U16(496),
+ U16(497), U16(498), U16(499), U16(500), U16(503), U16(505), U16(506), U16(564), U16(570), U16(572),
+ U16(573), U16(575), U16(577), U16(580), U16(583), U16(584), U16(592), U16(660), U16(661), U16(688),
+ U16(706), U16(710), U16(722), U16(736), U16(741), U16(748), U16(749), U16(750), U16(751), U16(768),
+ U16(880), U16(884), U16(885), U16(886), U16(890), U16(891), U16(894), U16(900), U16(902), U16(903),
+ U16(904), U16(908), U16(910), U16(912), U16(913), U16(931), U16(940), U16(975), U16(977), U16(978),
+ U16(981), U16(984), U16(1008), U16(1012), U16(1014), U16(1015), U16(1018), U16(1020), U16(1021), U16(1072),
+ U16(1120), U16(1154), U16(1155), U16(1160), U16(1162), U16(1217), U16(1231), U16(1232), U16(1329), U16(1369),
+ U16(1370), U16(1377), U16(1417), U16(1418), U16(1423), U16(1425), U16(1470), U16(1471), U16(1472), U16(1473),
+ U16(1475), U16(1476), U16(1478), U16(1479), U16(1488), U16(1520), U16(1523), U16(1536), U16(1542), U16(1545),
+ U16(1547), U16(1548), U16(1550), U16(1552), U16(1563), U16(1566), U16(1568), U16(1600), U16(1601), U16(1611),
+ U16(1632), U16(1642), U16(1646), U16(1648), U16(1649), U16(1748), U16(1749), U16(1750), U16(1757), U16(1758),
+ U16(1759), U16(1765), U16(1767), U16(1769), U16(1770), U16(1774), U16(1776), U16(1786), U16(1789), U16(1791),
+ U16(1792), U16(1807), U16(1808), U16(1809), U16(1810), U16(1840), U16(1869), U16(1958), U16(1969), U16(1984),
+ U16(1994), U16(2027), U16(2036), U16(2038), U16(2039), U16(2042), U16(2048), U16(2070), U16(2074), U16(2075),
+ U16(2084), U16(2085), U16(2088), U16(2089), U16(2096), U16(2112), U16(2137), U16(2142), U16(2208), U16(2210),
+ U16(2276), U16(2304), U16(2307), U16(2308), U16(2362), U16(2363), U16(2364), U16(2365), U16(2366), U16(2369),
+ U16(2377), U16(2381), U16(2382), U16(2384), U16(2385), U16(2392), U16(2402), U16(2404), U16(2406), U16(2416),
+ U16(2417), U16(2418), U16(2425), U16(2433), U16(2434), U16(2437), U16(2447), U16(2451), U16(2474), U16(2482),
+ U16(2486), U16(2492), U16(2493), U16(2494), U16(2497), U16(2503), U16(2507), U16(2509), U16(2510), U16(2519),
+ U16(2524), U16(2527), U16(2530), U16(2534), U16(2544), U16(2546), U16(2548), U16(2554), U16(2555), U16(2561),
+ U16(2563), U16(2565), U16(2575), U16(2579), U16(2602), U16(2610), U16(2613), U16(2616), U16(2620), U16(2622),
+ U16(2625), U16(2631), U16(2635), U16(2641), U16(2649), U16(2654), U16(2662), U16(2672), U16(2674), U16(2677),
+ U16(2689), U16(2691), U16(2693), U16(2703), U16(2707), U16(2730), U16(2738), U16(2741), U16(2748), U16(2749),
+ U16(2750), U16(2753), U16(2759), U16(2761), U16(2763), U16(2765), U16(2768), U16(2784), U16(2786), U16(2790),
+ U16(2800), U16(2801), U16(2817), U16(2818), U16(2821), U16(2831), U16(2835), U16(2858), U16(2866), U16(2869),
+ U16(2876), U16(2877), U16(2878), U16(2879), U16(2880), U16(2881), U16(2887), U16(2891), U16(2893), U16(2902),
+ U16(2903), U16(2908), U16(2911), U16(2914), U16(2918), U16(2928), U16(2929), U16(2930), U16(2946), U16(2947),
+ U16(2949), U16(2958), U16(2962), U16(2969), U16(2972), U16(2974), U16(2979), U16(2984), U16(2990), U16(3006),
+ U16(3008), U16(3009), U16(3014), U16(3018), U16(3021), U16(3024), U16(3031), U16(3046), U16(3056), U16(3059),
+ U16(3065), U16(3066), U16(3073), U16(3077), U16(3086), U16(3090), U16(3114), U16(3125), U16(3133), U16(3134),
+ U16(3137), U16(3142), U16(3146), U16(3157), U16(3160), U16(3168), U16(3170), U16(3174), U16(3192), U16(3199),
+ U16(3202), U16(3205), U16(3214), U16(3218), U16(3242), U16(3253), U16(3260), U16(3261), U16(3262), U16(3263),
+ U16(3264), U16(3270), U16(3271), U16(3274), U16(3276), U16(3285), U16(3294), U16(3296), U16(3298), U16(3302),
+ U16(3313), U16(3330), U16(3333), U16(3342), U16(3346), U16(3389), U16(3390), U16(3393), U16(3398), U16(3402),
+ U16(3405), U16(3406), U16(3415), U16(3424), U16(3426), U16(3430), U16(3440), U16(3449), U16(3450), U16(3458),
+ U16(3461), U16(3482), U16(3507), U16(3517), U16(3520), U16(3530), U16(3535), U16(3538), U16(3542), U16(3544),
+ U16(3570), U16(3572), U16(3585), U16(3633), U16(3634), U16(3636), U16(3647), U16(3648), U16(3654), U16(3655),
+ U16(3663), U16(3664), U16(3674), U16(3713), U16(3716), U16(3719), U16(3722), U16(3725), U16(3732), U16(3737),
+ U16(3745), U16(3749), U16(3751), U16(3754), U16(3757), U16(3761), U16(3762), U16(3764), U16(3771), U16(3773),
+ U16(3776), U16(3782), U16(3784), U16(3792), U16(3804), U16(3840), U16(3841), U16(3844), U16(3859), U16(3860),
+ U16(3861), U16(3864), U16(3866), U16(3872), U16(3882), U16(3892), U16(3893), U16(3894), U16(3895), U16(3896),
+ U16(3897), U16(3898), U16(3899), U16(3900), U16(3901), U16(3902), U16(3904), U16(3913), U16(3953), U16(3967),
+ U16(3968), U16(3973), U16(3974), U16(3976), U16(3981), U16(3993), U16(4030), U16(4038), U16(4039), U16(4046),
+ U16(4048), U16(4053), U16(4057), U16(4096), U16(4139), U16(4141), U16(4145), U16(4146), U16(4152), U16(4153),
+ U16(4155), U16(4157), U16(4159), U16(4160), U16(4170), U16(4176), U16(4182), U16(4184), U16(4186), U16(4190),
+ U16(4193), U16(4194), U16(4197), U16(4199), U16(4206), U16(4209), U16(4213), U16(4226), U16(4227), U16(4229),
+ U16(4231), U16(4237), U16(4238), U16(4239), U16(4240), U16(4250), U16(4253), U16(4254), U16(4256), U16(4295),
+ U16(4301), U16(4304), U16(4347), U16(4348), U16(4349), U16(4682), U16(4688), U16(4696), U16(4698), U16(4704),
+ U16(4746), U16(4752), U16(4786), U16(4792), U16(4800), U16(4802), U16(4808), U16(4824), U16(4882), U16(4888),
+ U16(4957), U16(4960), U16(4969), U16(4992), U16(5008), U16(5024), U16(5120), U16(5121), U16(5741), U16(5743),
+ U16(5760), U16(5761), U16(5787), U16(5788), U16(5792), U16(5867), U16(5870), U16(5888), U16(5902), U16(5906),
+ U16(5920), U16(5938), U16(5941), U16(5952), U16(5970), U16(5984), U16(5998), U16(6002), U16(6016), U16(6068),
+ U16(6070), U16(6071), U16(6078), U16(6086), U16(6087), U16(6089), U16(6100), U16(6103), U16(6104), U16(6107),
+ U16(6108), U16(6109), U16(6112), U16(6128), U16(6144), U16(6150), U16(6151), U16(6155), U16(6158), U16(6160),
+ U16(6176), U16(6211), U16(6212), U16(6272), U16(6313), U16(6314), U16(6320), U16(6400), U16(6432), U16(6435),
+ U16(6439), U16(6441), U16(6448), U16(6450), U16(6451), U16(6457), U16(6464), U16(6468), U16(6470), U16(6480),
+ U16(6512), U16(6528), U16(6576), U16(6593), U16(6600), U16(6608), U16(6618), U16(6622), U16(6656), U16(6679),
+ U16(6681), U16(6686), U16(6688), U16(6741), U16(6742), U16(6743), U16(6744), U16(6752), U16(6753), U16(6754),
+ U16(6755), U16(6757), U16(6765), U16(6771), U16(6783), U16(6784), U16(6800), U16(6816), U16(6823), U16(6824),
+ U16(6912), U16(6916), U16(6917), U16(6964), U16(6965), U16(6966), U16(6971), U16(6972), U16(6973), U16(6978),
+ U16(6979), U16(6981), U16(6992), U16(7002), U16(7009), U16(7019), U16(7028), U16(7040), U16(7042), U16(7043),
+ U16(7073), U16(7074), U16(7078), U16(7080), U16(7082), U16(7083), U16(7084), U16(7086), U16(7088), U16(7098),
+ U16(7142), U16(7143), U16(7144), U16(7146), U16(7149), U16(7150), U16(7151), U16(7154), U16(7164), U16(7168),
+ U16(7204), U16(7212), U16(7220), U16(7222), U16(7227), U16(7232), U16(7245), U16(7248), U16(7258), U16(7288),
+ U16(7294), U16(7360), U16(7376), U16(7379), U16(7380), U16(7393), U16(7394), U16(7401), U16(7405), U16(7406),
+ U16(7410), U16(7412), U16(7413), U16(7424), U16(7468), U16(7531), U16(7544), U16(7545), U16(7579), U16(7616),
+ U16(7676), U16(7680), U16(7830), U16(7838), U16(7936), U16(7944), U16(7952), U16(7960), U16(7968), U16(7976),
+ U16(7984), U16(7992), U16(8000), U16(8008), U16(8016), U16(8025), U16(8027), U16(8029), U16(8031), U16(8033),
+ U16(8040), U16(8048), U16(8064), U16(8072), U16(8080), U16(8088), U16(8096), U16(8104), U16(8112), U16(8118),
+ U16(8120), U16(8124), U16(8125), U16(8126), U16(8127), U16(8130), U16(8134), U16(8136), U16(8140), U16(8141),
+ U16(8144), U16(8150), U16(8152), U16(8157), U16(8160), U16(8168), U16(8173), U16(8178), U16(8182), U16(8184),
+ U16(8188), U16(8189), U16(8192), U16(8203), U16(8208), U16(8214), U16(8216), U16(8217), U16(8218), U16(8219),
+ U16(8221), U16(8222), U16(8223), U16(8224), U16(8232), U16(8233), U16(8234), U16(8239), U16(8240), U16(8249),
+ U16(8250), U16(8251), U16(8255), U16(8257), U16(8260), U16(8261), U16(8262), U16(8263), U16(8274), U16(8275),
+ U16(8276), U16(8277), U16(8287), U16(8288), U16(8298), U16(8304), U16(8305), U16(8308), U16(8314), U16(8317),
+ U16(8318), U16(8319), U16(8320), U16(8330), U16(8333), U16(8334), U16(8336), U16(8352), U16(8400), U16(8413),
+ U16(8417), U16(8418), U16(8421), U16(8448), U16(8450), U16(8451), U16(8455), U16(8456), U16(8458), U16(8459),
+ U16(8462), U16(8464), U16(8467), U16(8468), U16(8469), U16(8470), U16(8472), U16(8473), U16(8478), U16(8484),
+ U16(8485), U16(8486), U16(8487), U16(8488), U16(8489), U16(8490), U16(8494), U16(8495), U16(8496), U16(8500),
+ U16(8501), U16(8505), U16(8506), U16(8508), U16(8510), U16(8512), U16(8517), U16(8519), U16(8522), U16(8523),
+ U16(8524), U16(8526), U16(8527), U16(8528), U16(8544), U16(8579), U16(8581), U16(8585), U16(8592), U16(8597),
+ U16(8602), U16(8604), U16(8608), U16(8609), U16(8611), U16(8612), U16(8614), U16(8615), U16(8622), U16(8623),
+ U16(8654), U16(8656), U16(8658), U16(8659), U16(8660), U16(8661), U16(8692), U16(8960), U16(8968), U16(8972),
+ U16(8992), U16(8994), U16(9001), U16(9002), U16(9003), U16(9084), U16(9085), U16(9115), U16(9140), U16(9180),
+ U16(9186), U16(9216), U16(9280), U16(9312), U16(9372), U16(9450), U16(9472), U16(9655), U16(9656), U16(9665),
+ U16(9666), U16(9720), U16(9728), U16(9839), U16(9840), U16(9985), U16(10088), U16(10089), U16(10090), U16(10091),
+ U16(10092), U16(10093), U16(10094), U16(10095), U16(10096), U16(10097), U16(10098), U16(10099), U16(10100), U16(10101),
+ U16(10102), U16(10132), U16(10176), U16(10181), U16(10182), U16(10183), U16(10214), U16(10215), U16(10216), U16(10217),
+ U16(10218), U16(10219), U16(10220), U16(10221), U16(10222), U16(10223), U16(10224), U16(10240), U16(10496), U16(10627),
+ U16(10628), U16(10629), U16(10630), U16(10631), U16(10632), U16(10633), U16(10634), U16(10635), U16(10636), U16(10637),
+ U16(10638), U16(10639), U16(10640), U16(10641), U16(10642), U16(10643), U16(10644), U16(10645), U16(10646), U16(10647),
+ U16(10648), U16(10649), U16(10712), U16(10713), U16(10714), U16(10715), U16(10716), U16(10748), U16(10749), U16(10750),
+ U16(11008), U16(11056), U16(11077), U16(11079), U16(11088), U16(11264), U16(11312), U16(11360), U16(11363), U16(11365),
+ U16(11367), U16(11374), U16(11377), U16(11378), U16(11380), U16(11381), U16(11383), U16(11388), U16(11390), U16(11393),
+ U16(11394), U16(11492), U16(11493), U16(11499), U16(11503), U16(11506), U16(11513), U16(11517), U16(11518), U16(11520),
+ U16(11559), U16(11565), U16(11568), U16(11631), U16(11632), U16(11647), U16(11648), U16(11680), U16(11688), U16(11696),
+ U16(11704), U16(11712), U16(11720), U16(11728), U16(11736), U16(11744), U16(11776), U16(11778), U16(11779), U16(11780),
+ U16(11781), U16(11782), U16(11785), U16(11786), U16(11787), U16(11788), U16(11789), U16(11790), U16(11799), U16(11800),
+ U16(11802), U16(11803), U16(11804), U16(11805), U16(11806), U16(11808), U16(11809), U16(11810), U16(11811), U16(11812),
+ U16(11813), U16(11814), U16(11815), U16(11816), U16(11817), U16(11818), U16(11823), U16(11824), U16(11834), U16(11904),
+ U16(11931), U16(12032), U16(12272), U16(12288), U16(12289), U16(12292), U16(12293), U16(12294), U16(12295), U16(12296),
+ U16(12297), U16(12298), U16(12299), U16(12300), U16(12301), U16(12302), U16(12303), U16(12304), U16(12305), U16(12306),
+ U16(12308), U16(12309), U16(12310), U16(12311), U16(12312), U16(12313), U16(12314), U16(12315), U16(12316), U16(12317),
+ U16(12318), U16(12320), U16(12321), U16(12330), U16(12334), U16(12336), U16(12337), U16(12342), U16(12344), U16(12347),
+ U16(12348), U16(12349), U16(12350), U16(12353), U16(12441), U16(12443), U16(12445), U16(12447), U16(12448), U16(12449),
+ U16(12539), U16(12540), U16(12543), U16(12549), U16(12593), U16(12688), U16(12690), U16(12694), U16(12704), U16(12736),
+ U16(12784), U16(12800), U16(12832), U16(12842), U16(12872), U16(12880), U16(12881), U16(12896), U16(12928), U16(12938),
+ U16(12977), U16(12992), U16(13056), U16(13312), U16(19893), U16(19904), U16(19968), U16(40908), U16(40960), U16(40981),
+ U16(40982), U16(42128), U16(42192), U16(42232), U16(42238), U16(42240), U16(42508), U16(42509), U16(42512), U16(42528),
+ U16(42538), U16(42560), U16(42606), U16(42607), U16(42608), U16(42611), U16(42612), U16(42622), U16(42623), U16(42624),
+ U16(42655), U16(42656), U16(42726), U16(42736), U16(42738), U16(42752), U16(42775), U16(42784), U16(42786), U16(42800),
+ U16(42802), U16(42864), U16(42865), U16(42873), U16(42878), U16(42888), U16(42889), U16(42891), U16(42896), U16(42912),
+ U16(43000), U16(43002), U16(43003), U16(43010), U16(43011), U16(43014), U16(43015), U16(43019), U16(43020), U16(43043),
+ U16(43045), U16(43047), U16(43048), U16(43056), U16(43062), U16(43064), U16(43065), U16(43072), U16(43124), U16(43136),
+ U16(43138), U16(43188), U16(43204), U16(43214), U16(43216), U16(43232), U16(43250), U16(43256), U16(43259), U16(43264),
+ U16(43274), U16(43302), U16(43310), U16(43312), U16(43335), U16(43346), U16(43359), U16(43360), U16(43392), U16(43395),
+ U16(43396), U16(43443), U16(43444), U16(43446), U16(43450), U16(43452), U16(43453), U16(43457), U16(43471), U16(43472),
+ U16(43486), U16(43520), U16(43561), U16(43567), U16(43569), U16(43571), U16(43573), U16(43584), U16(43587), U16(43588),
+ U16(43596), U16(43597), U16(43600), U16(43612), U16(43616), U16(43632), U16(43633), U16(43639), U16(43642), U16(43643),
+ U16(43648), U16(43696), U16(43697), U16(43698), U16(43701), U16(43703), U16(43705), U16(43710), U16(43712), U16(43713),
+ U16(43714), U16(43739), U16(43741), U16(43742), U16(43744), U16(43755), U16(43756), U16(43758), U16(43760), U16(43762),
+ U16(43763), U16(43765), U16(43766), U16(43777), U16(43785), U16(43793), U16(43808), U16(43816), U16(43968), U16(44003),
+ U16(44005), U16(44006), U16(44008), U16(44009), U16(44011), U16(44012), U16(44013), U16(44016), U16(44032), U16(55203),
+ U16(55216), U16(55243), U16(55296), U16(56191), U16(56319), U16(57343), U16(57344), U16(63743), U16(63744), U16(64112),
+ U16(64256), U16(64275), U16(64285), U16(64286), U16(64287), U16(64297), U16(64298), U16(64312), U16(64318), U16(64320),
+ U16(64323), U16(64326), U16(64434), U16(64467), U16(64830), U16(64831), U16(64848), U16(64914), U16(65008), U16(65020),
+ U16(65021), U16(65024), U16(65040), U16(65047), U16(65048), U16(65049), U16(65056), U16(65072), U16(65073), U16(65075),
+ U16(65077), U16(65078), U16(65079), U16(65080), U16(65081), U16(65082), U16(65083), U16(65084), U16(65085), U16(65086),
+ U16(65087), U16(65088), U16(65089), U16(65090), U16(65091), U16(65092), U16(65093), U16(65095), U16(65096), U16(65097),
+ U16(65101), U16(65104), U16(65108), U16(65112), U16(65113), U16(65114), U16(65115), U16(65116), U16(65117), U16(65118),
+ U16(65119), U16(65122), U16(65123), U16(65124), U16(65128), U16(65129), U16(65130), U16(65136), U16(65142), U16(65279),
+ U16(65281), U16(65284), U16(65285), U16(65288), U16(65289), U16(65290), U16(65291), U16(65292), U16(65293), U16(65294),
+ U16(65296), U16(65306), U16(65308), U16(65311), U16(65313), U16(65339), U16(65340), U16(65341), U16(65342), U16(65343),
+ U16(65344), U16(65345), U16(65371), U16(65372), U16(65373), U16(65374), U16(65375), U16(65376), U16(65377), U16(65378),
+ U16(65379), U16(65380), U16(65382), U16(65392), U16(65393), U16(65438), U16(65440), U16(65474), U16(65482), U16(65490),
+ U16(65498), U16(65504), U16(65506), U16(65507), U16(65508), U16(65509), U16(65512), U16(65513), U16(65517), U16(65529),
+ U16(65532), U16(0), U16(13), U16(40), U16(60), U16(63), U16(80), U16(128), U16(256), U16(263),
+ U16(311), U16(320), U16(373), U16(377), U16(394), U16(400), U16(464), U16(509), U16(640), U16(672),
+ U16(768), U16(800), U16(816), U16(833), U16(834), U16(842), U16(896), U16(927), U16(928), U16(968),
+ U16(976), U16(977), U16(1024), U16(1064), U16(1104), U16(1184), U16(2048), U16(2056), U16(2058), U16(2103),
+ U16(2108), U16(2111), U16(2135), U16(2136), U16(2304), U16(2326), U16(2335), U16(2336), U16(2367), U16(2432),
+ U16(2494), U16(2560), U16(2561), U16(2565), U16(2572), U16(2576), U16(2581), U16(2585), U16(2616), U16(2623),
+ U16(2624), U16(2640), U16(2656), U16(2685), U16(2687), U16(2816), U16(2873), U16(2880), U16(2904), U16(2912),
+ U16(2936), U16(3072), U16(3680), U16(4096), U16(4097), U16(4098), U16(4099), U16(4152), U16(4167), U16(4178),
+ U16(4198), U16(4224), U16(4226), U16(4227), U16(4272), U16(4275), U16(4279), U16(4281), U16(4283), U16(4285),
+ U16(4286), U16(4304), U16(4336), U16(4352), U16(4355), U16(4391), U16(4396), U16(4397), U16(4406), U16(4416),
+ U16(4480), U16(4482), U16(4483), U16(4531), U16(4534), U16(4543), U16(4545), U16(4549), U16(4560), U16(5760),
+ U16(5803), U16(5804), U16(5805), U16(5806), U16(5808), U16(5814), U16(5815), U16(5824), U16(8192), U16(9216),
+ U16(9328), U16(12288), U16(26624), U16(28416), U16(28496), U16(28497), U16(28559), U16(28563), U16(45056), U16(53248),
+ U16(53504), U16(53545), U16(53605), U16(53607), U16(53610), U16(53613), U16(53619), U16(53627), U16(53635), U16(53637),
+ U16(53644), U16(53674), U16(53678), U16(53760), U16(53826), U16(53829), U16(54016), U16(54112), U16(54272), U16(54298),
+ U16(54324), U16(54350), U16(54358), U16(54376), U16(54402), U16(54428), U16(54430), U16(54434), U16(54437), U16(54441),
+ U16(54446), U16(54454), U16(54459), U16(54461), U16(54469), U16(54480), U16(54506), U16(54532), U16(54535), U16(54541),
+ U16(54550), U16(54558), U16(54584), U16(54587), U16(54592), U16(54598), U16(54602), U16(54610), U16(54636), U16(54662),
+ U16(54688), U16(54714), U16(54740), U16(54766), U16(54792), U16(54818), U16(54844), U16(54870), U16(54896), U16(54922),
+ U16(54952), U16(54977), U16(54978), U16(55003), U16(55004), U16(55010), U16(55035), U16(55036), U16(55061), U16(55062),
+ U16(55068), U16(55093), U16(55094), U16(55119), U16(55120), U16(55126), U16(55151), U16(55152), U16(55177), U16(55178),
+ U16(55184), U16(55209), U16(55210), U16(55235), U16(55236), U16(55242), U16(55246), U16(60928), U16(60933), U16(60961),
+ U16(60964), U16(60967), U16(60969), U16(60980), U16(60985), U16(60987), U16(60994), U16(60999), U16(61001), U16(61003),
+ U16(61005), U16(61009), U16(61012), U16(61015), U16(61017), U16(61019), U16(61021), U16(61023), U16(61025), U16(61028),
+ U16(61031), U16(61036), U16(61044), U16(61049), U16(61054), U16(61056), U16(61067), U16(61089), U16(61093), U16(61099),
+ U16(61168), U16(61440), U16(61488), U16(61600), U16(61617), U16(61633), U16(61649), U16(61696), U16(61712), U16(61744),
+ U16(61808), U16(61926), U16(61968), U16(62016), U16(62032), U16(62208), U16(62256), U16(62263), U16(62336), U16(62368),
+ U16(62406), U16(62432), U16(62464), U16(62528), U16(62530), U16(62713), U16(62720), U16(62784), U16(62800), U16(62971),
+ U16(63045), U16(63104), U16(63232), U16(0), U16(42710), U16(42752), U16(46900), U16(46912), U16(47133), U16(63488),
+ U16(1), U16(32), U16(256), U16(0), U16(65533),
+}
+var aFts5UnicodeData = [1765]U16{
+ U16(1025), U16(61), U16(117), U16(55), U16(117), U16(54), U16(50), U16(53), U16(57), U16(53),
+ U16(49), U16(85), U16(333), U16(85), U16(121), U16(85), U16(841), U16(54), U16(53), U16(50),
+ U16(56), U16(48), U16(56), U16(837), U16(54), U16(57), U16(50), U16(57), U16(1057), U16(61),
+ U16(53), U16(151), U16(58), U16(53), U16(56), U16(58), U16(39), U16(52), U16(57), U16(34),
+ U16(58), U16(56), U16(58), U16(57), U16(79), U16(56), U16(37), U16(85), U16(56), U16(47),
+ U16(39), U16(51), U16(111), U16(53), U16(745), U16(57), U16(233), U16(773), U16(57), U16(261),
+ U16(1822), U16(37), U16(542), U16(37), U16(1534), U16(222), U16(69), U16(73), U16(37), U16(126),
+ U16(126), U16(73), U16(69), U16(137), U16(37), U16(73), U16(37), U16(105), U16(101), U16(73),
+ U16(37), U16(73), U16(37), U16(190), U16(158), U16(37), U16(126), U16(126), U16(73), U16(37),
+ U16(126), U16(94), U16(37), U16(39), U16(94), U16(69), U16(135), U16(41), U16(40), U16(37),
+ U16(41), U16(40), U16(37), U16(41), U16(40), U16(37), U16(542), U16(37), U16(606), U16(37),
+ U16(41), U16(40), U16(37), U16(126), U16(73), U16(37), U16(1886), U16(197), U16(73), U16(37),
+ U16(73), U16(69), U16(126), U16(105), U16(37), U16(286), U16(2181), U16(39), U16(869), U16(582),
+ U16(152), U16(390), U16(472), U16(166), U16(248), U16(38), U16(56), U16(38), U16(568), U16(3596),
+ U16(158), U16(38), U16(56), U16(94), U16(38), U16(101), U16(53), U16(88), U16(41), U16(53),
+ U16(105), U16(41), U16(73), U16(37), U16(553), U16(297), U16(1125), U16(94), U16(37), U16(105),
+ U16(101), U16(798), U16(133), U16(94), U16(57), U16(126), U16(94), U16(37), U16(1641), U16(1541),
+ U16(1118), U16(58), U16(172), U16(75), U16(1790), U16(478), U16(37), U16(2846), U16(1225), U16(38),
+ U16(213), U16(1253), U16(53), U16(49), U16(55), U16(1452), U16(49), U16(44), U16(53), U16(76),
+ U16(53), U16(76), U16(53), U16(44), U16(871), U16(103), U16(85), U16(162), U16(121), U16(85),
+ U16(55), U16(85), U16(90), U16(364), U16(53), U16(85), U16(1031), U16(38), U16(327), U16(684),
+ U16(333), U16(149), U16(71), U16(44), U16(3175), U16(53), U16(39), U16(236), U16(34), U16(58),
+ U16(204), U16(70), U16(76), U16(58), U16(140), U16(71), U16(333), U16(103), U16(90), U16(39),
+ U16(469), U16(34), U16(39), U16(44), U16(967), U16(876), U16(2855), U16(364), U16(39), U16(333),
+ U16(1063), U16(300), U16(70), U16(58), U16(117), U16(38), U16(711), U16(140), U16(38), U16(300),
+ U16(38), U16(108), U16(38), U16(172), U16(501), U16(807), U16(108), U16(53), U16(39), U16(359),
+ U16(876), U16(108), U16(42), U16(1735), U16(44), U16(42), U16(44), U16(39), U16(106), U16(268),
+ U16(138), U16(44), U16(74), U16(39), U16(236), U16(327), U16(76), U16(85), U16(333), U16(53),
+ U16(38), U16(199), U16(231), U16(44), U16(74), U16(263), U16(71), U16(711), U16(231), U16(39),
+ U16(135), U16(44), U16(39), U16(106), U16(140), U16(74), U16(74), U16(44), U16(39), U16(42),
+ U16(71), U16(103), U16(76), U16(333), U16(71), U16(87), U16(207), U16(58), U16(55), U16(76),
+ U16(42), U16(199), U16(71), U16(711), U16(231), U16(71), U16(71), U16(71), U16(44), U16(106),
+ U16(76), U16(76), U16(108), U16(44), U16(135), U16(39), U16(333), U16(76), U16(103), U16(44),
+ U16(76), U16(42), U16(295), U16(103), U16(711), U16(231), U16(71), U16(167), U16(44), U16(39),
+ U16(106), U16(172), U16(76), U16(42), U16(74), U16(44), U16(39), U16(71), U16(76), U16(333),
+ U16(53), U16(55), U16(44), U16(74), U16(263), U16(71), U16(711), U16(231), U16(71), U16(167),
+ U16(44), U16(39), U16(42), U16(44), U16(42), U16(140), U16(74), U16(74), U16(44), U16(44),
+ U16(42), U16(71), U16(103), U16(76), U16(333), U16(58), U16(39), U16(207), U16(44), U16(39),
+ U16(199), U16(103), U16(135), U16(71), U16(39), U16(71), U16(71), U16(103), U16(391), U16(74),
+ U16(44), U16(74), U16(106), U16(106), U16(44), U16(39), U16(42), U16(333), U16(111), U16(218),
+ U16(55), U16(58), U16(106), U16(263), U16(103), U16(743), U16(327), U16(167), U16(39), U16(108),
+ U16(138), U16(108), U16(140), U16(76), U16(71), U16(71), U16(76), U16(333), U16(239), U16(58),
+ U16(74), U16(263), U16(103), U16(743), U16(327), U16(167), U16(44), U16(39), U16(42), U16(44),
+ U16(170), U16(44), U16(74), U16(74), U16(76), U16(74), U16(39), U16(71), U16(76), U16(333),
+ U16(71), U16(74), U16(263), U16(103), U16(1319), U16(39), U16(106), U16(140), U16(106), U16(106),
+ U16(44), U16(39), U16(42), U16(71), U16(76), U16(333), U16(207), U16(58), U16(199), U16(74),
+ U16(583), U16(775), U16(295), U16(39), U16(231), U16(44), U16(106), U16(108), U16(44), U16(266),
+ U16(74), U16(53), U16(1543), U16(44), U16(71), U16(236), U16(55), U16(199), U16(38), U16(268),
+ U16(53), U16(333), U16(85), U16(71), U16(39), U16(71), U16(39), U16(39), U16(135), U16(231),
+ U16(103), U16(39), U16(39), U16(71), U16(135), U16(44), U16(71), U16(204), U16(76), U16(39),
+ U16(167), U16(38), U16(204), U16(333), U16(135), U16(39), U16(122), U16(501), U16(58), U16(53),
+ U16(122), U16(76), U16(218), U16(333), U16(335), U16(58), U16(44), U16(58), U16(44), U16(58),
+ U16(44), U16(54), U16(50), U16(54), U16(50), U16(74), U16(263), U16(1159), U16(460), U16(42),
+ U16(172), U16(53), U16(76), U16(167), U16(364), U16(1164), U16(282), U16(44), U16(218), U16(90),
+ U16(181), U16(154), U16(85), U16(1383), U16(74), U16(140), U16(42), U16(204), U16(42), U16(76),
+ U16(74), U16(76), U16(39), U16(333), U16(213), U16(199), U16(74), U16(76), U16(135), U16(108),
+ U16(39), U16(106), U16(71), U16(234), U16(103), U16(140), U16(423), U16(44), U16(74), U16(76),
+ U16(202), U16(44), U16(39), U16(42), U16(333), U16(106), U16(44), U16(90), U16(1225), U16(41),
+ U16(41), U16(1383), U16(53), U16(38), U16(10631), U16(135), U16(231), U16(39), U16(135), U16(1319),
+ U16(135), U16(1063), U16(135), U16(231), U16(39), U16(135), U16(487), U16(1831), U16(135), U16(2151),
+ U16(108), U16(309), U16(655), U16(519), U16(346), U16(2727), U16(49), U16(19847), U16(85), U16(551),
+ U16(61), U16(839), U16(54), U16(50), U16(2407), U16(117), U16(110), U16(423), U16(135), U16(108),
+ U16(583), U16(108), U16(85), U16(583), U16(76), U16(423), U16(103), U16(76), U16(1671), U16(76),
+ U16(42), U16(236), U16(266), U16(44), U16(74), U16(364), U16(117), U16(38), U16(117), U16(55),
+ U16(39), U16(44), U16(333), U16(335), U16(213), U16(49), U16(149), U16(108), U16(61), U16(333),
+ U16(1127), U16(38), U16(1671), U16(1319), U16(44), U16(39), U16(2247), U16(935), U16(108), U16(138),
+ U16(76), U16(106), U16(74), U16(44), U16(202), U16(108), U16(58), U16(85), U16(333), U16(967),
+ U16(167), U16(1415), U16(554), U16(231), U16(74), U16(333), U16(47), U16(1114), U16(743), U16(76),
+ U16(106), U16(85), U16(1703), U16(42), U16(44), U16(42), U16(236), U16(44), U16(42), U16(44),
+ U16(74), U16(268), U16(202), U16(332), U16(44), U16(333), U16(333), U16(245), U16(38), U16(213),
+ U16(140), U16(42), U16(1511), U16(44), U16(42), U16(172), U16(42), U16(44), U16(170), U16(44),
+ U16(74), U16(231), U16(333), U16(245), U16(346), U16(300), U16(314), U16(76), U16(42), U16(967),
+ U16(42), U16(140), U16(74), U16(76), U16(42), U16(44), U16(74), U16(71), U16(333), U16(1415),
+ U16(44), U16(42), U16(76), U16(106), U16(44), U16(42), U16(108), U16(74), U16(149), U16(1159),
+ U16(266), U16(268), U16(74), U16(76), U16(181), U16(333), U16(103), U16(333), U16(967), U16(198),
+ U16(85), U16(277), U16(108), U16(53), U16(428), U16(42), U16(236), U16(135), U16(44), U16(135),
+ U16(74), U16(44), U16(71), U16(1413), U16(2022), U16(421), U16(38), U16(1093), U16(1190), U16(1260),
+ U16(140), U16(4830), U16(261), U16(3166), U16(261), U16(265), U16(197), U16(201), U16(261), U16(265),
+ U16(261), U16(265), U16(197), U16(201), U16(261), U16(41), U16(41), U16(41), U16(94), U16(229),
+ U16(265), U16(453), U16(261), U16(264), U16(261), U16(264), U16(261), U16(264), U16(165), U16(69),
+ U16(137), U16(40), U16(56), U16(37), U16(120), U16(101), U16(69), U16(137), U16(40), U16(120),
+ U16(133), U16(69), U16(137), U16(120), U16(261), U16(169), U16(120), U16(101), U16(69), U16(137),
+ U16(40), U16(88), U16(381), U16(162), U16(209), U16(85), U16(52), U16(51), U16(54), U16(84),
+ U16(51), U16(54), U16(52), U16(277), U16(59), U16(60), U16(162), U16(61), U16(309), U16(52),
+ U16(51), U16(149), U16(80), U16(117), U16(57), U16(54), U16(50), U16(373), U16(57), U16(53),
+ U16(48), U16(341), U16(61), U16(162), U16(194), U16(47), U16(38), U16(207), U16(121), U16(54),
+ U16(50), U16(38), U16(335), U16(121), U16(54), U16(50), U16(422), U16(855), U16(428), U16(139),
+ U16(44), U16(107), U16(396), U16(90), U16(41), U16(154), U16(41), U16(90), U16(37), U16(105),
+ U16(69), U16(105), U16(37), U16(58), U16(41), U16(90), U16(57), U16(169), U16(218), U16(41),
+ U16(58), U16(41), U16(58), U16(41), U16(58), U16(137), U16(58), U16(37), U16(137), U16(37),
+ U16(135), U16(37), U16(90), U16(69), U16(73), U16(185), U16(94), U16(101), U16(58), U16(57),
+ U16(90), U16(37), U16(58), U16(527), U16(1134), U16(94), U16(142), U16(47), U16(185), U16(186),
+ U16(89), U16(154), U16(57), U16(90), U16(57), U16(90), U16(57), U16(250), U16(57), U16(1018),
+ U16(89), U16(90), U16(57), U16(58), U16(57), U16(1018), U16(8601), U16(282), U16(153), U16(666),
+ U16(89), U16(250), U16(54), U16(50), U16(2618), U16(57), U16(986), U16(825), U16(1306), U16(217),
+ U16(602), U16(1274), U16(378), U16(1935), U16(2522), U16(719), U16(5882), U16(57), U16(314), U16(57),
+ U16(1754), U16(281), U16(3578), U16(57), U16(4634), U16(3322), U16(54), U16(50), U16(54), U16(50),
+ U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50),
+ U16(975), U16(1434), U16(185), U16(54), U16(50), U16(1017), U16(54), U16(50), U16(54), U16(50),
+ U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(537), U16(8218), U16(4217), U16(54),
+ U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54),
+ U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54),
+ U16(50), U16(2041), U16(54), U16(50), U16(54), U16(50), U16(1049), U16(54), U16(50), U16(8281),
+ U16(1562), U16(697), U16(90), U16(217), U16(346), U16(1513), U16(1509), U16(126), U16(73), U16(69),
+ U16(254), U16(105), U16(37), U16(94), U16(37), U16(94), U16(165), U16(70), U16(105), U16(37),
+ U16(3166), U16(37), U16(218), U16(158), U16(108), U16(94), U16(149), U16(47), U16(85), U16(1221),
+ U16(37), U16(37), U16(1799), U16(38), U16(53), U16(44), U16(743), U16(231), U16(231), U16(231),
+ U16(231), U16(231), U16(231), U16(231), U16(231), U16(1036), U16(85), U16(52), U16(51), U16(52),
+ U16(51), U16(117), U16(52), U16(51), U16(53), U16(52), U16(51), U16(309), U16(49), U16(85),
+ U16(49), U16(53), U16(52), U16(51), U16(85), U16(52), U16(51), U16(54), U16(50), U16(54),
+ U16(50), U16(54), U16(50), U16(54), U16(50), U16(181), U16(38), U16(341), U16(81), U16(858),
+ U16(2874), U16(6874), U16(410), U16(61), U16(117), U16(58), U16(38), U16(39), U16(46), U16(54),
+ U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(90),
+ U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(49), U16(54),
+ U16(82), U16(58), U16(302), U16(140), U16(74), U16(49), U16(166), U16(90), U16(110), U16(38),
+ U16(39), U16(53), U16(90), U16(2759), U16(76), U16(88), U16(70), U16(39), U16(49), U16(2887),
+ U16(53), U16(102), U16(39), U16(1319), U16(3015), U16(90), U16(143), U16(346), U16(871), U16(1178),
+ U16(519), U16(1018), U16(335), U16(986), U16(271), U16(58), U16(495), U16(1050), U16(335), U16(1274),
+ U16(495), U16(2042), U16(8218), U16(39), U16(39), U16(2074), U16(39), U16(39), U16(679), U16(38),
+ U16(36583), U16(1786), U16(1287), U16(198), U16(85), U16(8583), U16(38), U16(117), U16(519), U16(333),
+ U16(71), U16(1502), U16(39), U16(44), U16(107), U16(53), U16(332), U16(53), U16(38), U16(798),
+ U16(44), U16(2247), U16(334), U16(76), U16(213), U16(760), U16(294), U16(88), U16(478), U16(69),
+ U16(2014), U16(38), U16(261), U16(190), U16(350), U16(38), U16(88), U16(158), U16(158), U16(382),
+ U16(70), U16(37), U16(231), U16(44), U16(103), U16(44), U16(135), U16(44), U16(743), U16(74),
+ U16(76), U16(42), U16(154), U16(207), U16(90), U16(55), U16(58), U16(1671), U16(149), U16(74),
+ U16(1607), U16(522), U16(44), U16(85), U16(333), U16(588), U16(199), U16(117), U16(39), U16(333),
+ U16(903), U16(268), U16(85), U16(743), U16(364), U16(74), U16(53), U16(935), U16(108), U16(42),
+ U16(1511), U16(44), U16(74), U16(140), U16(74), U16(44), U16(138), U16(437), U16(38), U16(333),
+ U16(85), U16(1319), U16(204), U16(74), U16(76), U16(74), U16(76), U16(103), U16(44), U16(263),
+ U16(44), U16(42), U16(333), U16(149), U16(519), U16(38), U16(199), U16(122), U16(39), U16(42),
+ U16(1543), U16(44), U16(39), U16(108), U16(71), U16(76), U16(167), U16(76), U16(39), U16(44),
+ U16(39), U16(71), U16(38), U16(85), U16(359), U16(42), U16(76), U16(74), U16(85), U16(39),
+ U16(70), U16(42), U16(44), U16(199), U16(199), U16(199), U16(231), U16(231), U16(1127), U16(74),
+ U16(44), U16(74), U16(44), U16(74), U16(53), U16(42), U16(44), U16(333), U16(39), U16(39),
+ U16(743), U16(1575), U16(36), U16(68), U16(68), U16(36), U16(63), U16(63), U16(11719), U16(3399),
+ U16(229), U16(165), U16(39), U16(44), U16(327), U16(57), U16(423), U16(167), U16(39), U16(71),
+ U16(71), U16(3463), U16(536), U16(11623), U16(54), U16(50), U16(2055), U16(1735), U16(391), U16(55),
+ U16(58), U16(524), U16(245), U16(54), U16(50), U16(53), U16(236), U16(53), U16(81), U16(80),
+ U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50),
+ U16(54), U16(50), U16(54), U16(50), U16(54), U16(50), U16(85), U16(54), U16(50), U16(149),
+ U16(112), U16(117), U16(149), U16(49), U16(54), U16(50), U16(54), U16(50), U16(54), U16(50),
+ U16(117), U16(57), U16(49), U16(121), U16(53), U16(55), U16(85), U16(167), U16(4327), U16(34),
+ U16(117), U16(55), U16(117), U16(54), U16(50), U16(53), U16(57), U16(53), U16(49), U16(85),
+ U16(333), U16(85), U16(121), U16(85), U16(841), U16(54), U16(53), U16(50), U16(56), U16(48),
+ U16(56), U16(837), U16(54), U16(57), U16(50), U16(57), U16(54), U16(50), U16(53), U16(54),
+ U16(50), U16(85), U16(327), U16(38), U16(1447), U16(70), U16(999), U16(199), U16(199), U16(199),
+ U16(103), U16(87), U16(57), U16(56), U16(58), U16(87), U16(58), U16(153), U16(90), U16(98),
+ U16(90), U16(391), U16(839), U16(615), U16(71), U16(487), U16(455), U16(3943), U16(117), U16(1455),
+ U16(314), U16(1710), U16(143), U16(570), U16(47), U16(410), U16(1466), U16(44), U16(935), U16(1575),
+ U16(999), U16(143), U16(551), U16(46), U16(263), U16(46), U16(967), U16(53), U16(1159), U16(263),
+ U16(53), U16(174), U16(1289), U16(1285), U16(2503), U16(333), U16(199), U16(39), U16(1415), U16(71),
+ U16(39), U16(743), U16(53), U16(271), U16(711), U16(207), U16(53), U16(839), U16(53), U16(1799),
+ U16(71), U16(39), U16(108), U16(76), U16(140), U16(135), U16(103), U16(871), U16(108), U16(44),
+ U16(271), U16(309), U16(935), U16(79), U16(53), U16(1735), U16(245), U16(711), U16(271), U16(615),
+ U16(271), U16(2343), U16(1007), U16(42), U16(44), U16(42), U16(1703), U16(492), U16(245), U16(655),
+ U16(333), U16(76), U16(42), U16(1447), U16(106), U16(140), U16(74), U16(76), U16(85), U16(34),
+ U16(149), U16(807), U16(333), U16(108), U16(1159), U16(172), U16(42), U16(268), U16(333), U16(149),
+ U16(76), U16(42), U16(1543), U16(106), U16(300), U16(74), U16(135), U16(149), U16(333), U16(1383),
+ U16(44), U16(42), U16(44), U16(74), U16(204), U16(42), U16(44), U16(333), U16(28135), U16(3182),
+ U16(149), U16(34279), U16(18215), U16(2215), U16(39), U16(1482), U16(140), U16(422), U16(71), U16(7898),
+ U16(1274), U16(1946), U16(74), U16(108), U16(122), U16(202), U16(258), U16(268), U16(90), U16(236),
+ U16(986), U16(140), U16(1562), U16(2138), U16(108), U16(58), U16(2810), U16(591), U16(841), U16(837),
+ U16(841), U16(229), U16(581), U16(841), U16(837), U16(41), U16(73), U16(41), U16(73), U16(137),
+ U16(265), U16(133), U16(37), U16(229), U16(357), U16(841), U16(837), U16(73), U16(137), U16(265),
+ U16(233), U16(837), U16(73), U16(137), U16(169), U16(41), U16(233), U16(837), U16(841), U16(837),
+ U16(841), U16(837), U16(841), U16(837), U16(841), U16(837), U16(841), U16(837), U16(841), U16(901),
+ U16(809), U16(57), U16(805), U16(57), U16(197), U16(809), U16(57), U16(805), U16(57), U16(197),
+ U16(809), U16(57), U16(805), U16(57), U16(197), U16(809), U16(57), U16(805), U16(57), U16(197),
+ U16(809), U16(57), U16(805), U16(57), U16(197), U16(94), U16(1613), U16(135), U16(871), U16(71),
+ U16(39), U16(39), U16(327), U16(135), U16(39), U16(39), U16(39), U16(39), U16(39), U16(39),
+ U16(103), U16(71), U16(39), U16(39), U16(39), U16(39), U16(39), U16(39), U16(71), U16(39),
+ U16(135), U16(231), U16(135), U16(135), U16(39), U16(327), U16(551), U16(103), U16(167), U16(551),
+ U16(89), U16(1434), U16(3226), U16(506), U16(474), U16(506), U16(506), U16(367), U16(1018), U16(1946),
+ U16(1402), U16(954), U16(1402), U16(314), U16(90), U16(1082), U16(218), U16(2266), U16(666), U16(1210),
+ U16(186), U16(570), U16(2042), U16(58), U16(5850), U16(154), U16(2010), U16(154), U16(794), U16(2266),
+ U16(378), U16(2266), U16(3738), U16(39), U16(39), U16(39), U16(39), U16(39), U16(39), U16(17351),
+ U16(34), U16(3074), U16(7692), U16(63), U16(63),
+}
+
+func sqlite3Fts5UnicodeCategory(tls *libc.TLS, iCode U32) int32 {
+ var iRes int32 = -1
+ var iHi int32
+ var iLo int32
+ var ret int32
+ var iKey U16
+
+ if iCode >= U32(int32(1)<<20) {
+ return 0
+ }
+ iLo = int32(aFts5UnicodeBlock[iCode>>16])
+ iHi = int32(aFts5UnicodeBlock[U32(1)+iCode>>16])
+ iKey = U16(iCode & U32(0xFFFF))
+ for iHi > iLo {
+ var iTest int32 = (iHi + iLo) / 2
+
+ if int32(iKey) >= int32(aFts5UnicodeMap[iTest]) {
+ iRes = iTest
+ iLo = iTest + 1
+ } else {
+ iHi = iTest
+ }
+ }
+
+ if iRes < 0 {
+ return 0
+ }
+ if int32(iKey) >= int32(aFts5UnicodeMap[iRes])+int32(aFts5UnicodeData[iRes])>>5 {
+ return 0
+ }
+ ret = int32(aFts5UnicodeData[iRes]) & 0x1F
+ if ret != 30 {
+ return ret
+ }
+ if (int32(iKey)-int32(aFts5UnicodeMap[iRes]))&0x01 != 0 {
+ return 5
+ }
+ return 9
+}
+
+func sqlite3Fts5UnicodeAscii(tls *libc.TLS, aArray uintptr, aAscii uintptr) {
+ var i int32 = 0
+ var iTbl int32 = 0
+ for i < 128 {
+ var bToken int32 = int32(*(*U8)(unsafe.Pointer(aArray + uintptr(int32(aFts5UnicodeData[iTbl])&0x1F))))
+ var n int32 = int32(aFts5UnicodeData[iTbl])>>5 + i
+ for ; i < 128 && i < n; i++ {
+ *(*U8)(unsafe.Pointer(aAscii + uintptr(i))) = U8(bToken)
+ }
+ iTbl++
+ }
+ *(*U8)(unsafe.Pointer(aAscii)) = U8(0)
+}
+
+func sqlite3Fts5GetVarint32(tls *libc.TLS, p uintptr, v uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var a U32
+ var b U32
+
+ a = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ *(*U32)(unsafe.Pointer(v)) = a
+ return 1
+ }
+
+ p++
+ b = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ a = a & U32(0x7f)
+ a = a << 7
+ *(*U32)(unsafe.Pointer(v)) = a | b
+ return 2
+ }
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & U32(int32(0x7f)<<14|0x7f)
+ b = b & U32(0x7f)
+ b = b << 7
+ *(*U32)(unsafe.Pointer(v)) = a | b
+ return 3
+ }
+
+ {
+ var n U8
+ p -= uintptr(2)
+ n = sqlite3Fts5GetVarint(tls, p, bp)
+ *(*U32)(unsafe.Pointer(v)) = U32(*(*U64)(unsafe.Pointer(bp))) & U32(0x7FFFFFFF)
+
+ return int32(n)
+
+ }
+ return int32(0)
+}
+
+func sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) U8 {
+ var a U32
+ var b U32
+ var s U32
+
+ a = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(1)
+ }
+
+ p++
+ b = U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ a = a & U32(0x7f)
+ a = a << 7
+ a = a | b
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(2)
+ }
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & U32(SLOT_2_0)
+ b = b & U32(0x7f)
+ b = b << 7
+ a = a | b
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(3)
+ }
+
+ a = a & U32(SLOT_2_0)
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ b = b & U32(SLOT_2_0)
+
+ a = a << 7
+ a = a | b
+ *(*U64)(unsafe.Pointer(v)) = U64(a)
+ return U8(4)
+ }
+
+ b = b & U32(SLOT_2_0)
+ s = a
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ b = b << 7
+ a = a | b
+ s = s >> 18
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(5)
+ }
+
+ s = s << 7
+ s = s | b
+
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ a = a & U32(SLOT_2_0)
+ a = a << 7
+ a = a | b
+ s = s >> 18
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(6)
+ }
+
+ p++
+ a = a << 14
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(a&U32(0x80) != 0) {
+ a = a & SLOT_4_2_0
+ b = b & U32(SLOT_2_0)
+ b = b << 7
+ a = a | b
+ s = s >> 11
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(7)
+ }
+
+ a = a & U32(SLOT_2_0)
+ p++
+ b = b << 14
+ b = b | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ if !(b&U32(0x80) != 0) {
+ b = b & SLOT_4_2_0
+
+ a = a << 7
+ a = a | b
+ s = s >> 4
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+ return U8(8)
+ }
+
+ p++
+ a = a << 15
+ a = a | U32(*(*uint8)(unsafe.Pointer(p)))
+
+ b = b & U32(SLOT_2_0)
+ b = b << 8
+ a = a | b
+
+ s = s << 4
+ b = U32(*(*uint8)(unsafe.Pointer(p + libc.UintptrFromInt32(-4))))
+ b = b & U32(0x7f)
+ b = b >> 3
+ s = s | b
+
+ *(*U64)(unsafe.Pointer(v)) = U64(s)<<32 | U64(a)
+
+ return U8(9)
+}
+
+func fts5PutVarint64(tls *libc.TLS, p uintptr, v U64) int32 {
+ bp := tls.Alloc(10)
+ defer tls.Free(10)
+
+ var i int32
+ var j int32
+ var n int32
+
+ if v&(uint64(0xff000000)<<32) != 0 {
+ *(*uint8)(unsafe.Pointer(p + 8)) = U8(v)
+ v >>= 8
+ for i = 7; i >= 0; i-- {
+ *(*uint8)(unsafe.Pointer(p + uintptr(i))) = U8(v&uint64(0x7f) | uint64(0x80))
+ v >>= 7
+ }
+ return 9
+ }
+ n = 0
+ for __ccgo := true; __ccgo; __ccgo = v != uint64(0) {
+ *(*U8)(unsafe.Pointer(bp + uintptr(libc.PostIncInt32(&n, 1)))) = U8(v&uint64(0x7f) | uint64(0x80))
+ v >>= 7
+ }
+ *(*U8)(unsafe.Pointer(bp)) &= U8(0x7f)
+
+ i = 0
+ j = n - 1
+__1:
+ if !(j >= 0) {
+ goto __3
+ }
+ {
+ *(*uint8)(unsafe.Pointer(p + uintptr(i))) = *(*U8)(unsafe.Pointer(bp + uintptr(j)))
+
+ }
+ goto __2
+__2:
+ j--
+ i++
+ goto __1
+ goto __3
+__3:
+ ;
+ return n
+}
+
+func sqlite3Fts5PutVarint(tls *libc.TLS, p uintptr, v U64) int32 {
+ if v <= uint64(0x7f) {
+ *(*uint8)(unsafe.Pointer(p)) = uint8(v & uint64(0x7f))
+ return 1
+ }
+ if v <= uint64(0x3fff) {
+ *(*uint8)(unsafe.Pointer(p)) = uint8(v>>7&uint64(0x7f) | uint64(0x80))
+ *(*uint8)(unsafe.Pointer(p + 1)) = uint8(v & uint64(0x7f))
+ return 2
+ }
+ return fts5PutVarint64(tls, p, v)
+}
+
+func sqlite3Fts5GetVarintLen(tls *libc.TLS, iVal U32) int32 {
+ if iVal < U32(int32(1)<<14) {
+ return 2
+ }
+ if iVal < U32(int32(1)<<21) {
+ return 3
+ }
+ if iVal < U32(int32(1)<<28) {
+ return 4
+ }
+ return 5
+}
+
+type Fts5VocabTable1 = struct {
+ Fbase Sqlite3_vtab
+ FzFts5Tbl uintptr
+ FzFts5Db uintptr
+ Fdb uintptr
+ FpGlobal uintptr
+ FeType int32
+ FbBusy uint32
+}
+
+type Fts5VocabTable = Fts5VocabTable1
+type Fts5VocabCursor1 = struct {
+ Fbase Sqlite3_vtab_cursor
+ FpStmt uintptr
+ FpFts5 uintptr
+ FbEof int32
+ F__ccgo_pad1 [4]byte
+ FpIter uintptr
+ FpStruct uintptr
+ FnLeTerm int32
+ F__ccgo_pad2 [4]byte
+ FzLeTerm uintptr
+ FiCol int32
+ F__ccgo_pad3 [4]byte
+ FaCnt uintptr
+ FaDoc uintptr
+ Frowid I64
+ Fterm Fts5Buffer
+ FiInstPos I64
+ FiInstOff int32
+ F__ccgo_pad4 [4]byte
+}
+
+type Fts5VocabCursor = Fts5VocabCursor1
+
+func fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uintptr) int32 {
+ bp := tls.Alloc(12)
+ defer tls.Free(12)
+
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK
+ var zCopy uintptr = sqlite3Fts5Strndup(tls, bp+8, zType, -1)
+ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK {
+ sqlite3Fts5Dequote(tls, zCopy)
+ if Xsqlite3_stricmp(tls, zCopy, ts+37778) == 0 {
+ *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL
+ } else if Xsqlite3_stricmp(tls, zCopy, ts+37782) == 0 {
+ *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_ROW
+ } else if Xsqlite3_stricmp(tls, zCopy, ts+37786) == 0 {
+ *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_INSTANCE
+ } else {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+37795, libc.VaList(bp, zCopy))
+ *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_ERROR
+ }
+ Xsqlite3_free(tls, zCopy)
+ }
+
+ return *(*int32)(unsafe.Pointer(bp + 8))
+}
+
+func fts5VocabDisconnectMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ var pTab uintptr = pVtab
+ Xsqlite3_free(tls, pTab)
+ return SQLITE_OK
+}
+
+func fts5VocabDestroyMethod(tls *libc.TLS, pVtab uintptr) int32 {
+ var pTab uintptr = pVtab
+ Xsqlite3_free(tls, pTab)
+ return SQLITE_OK
+}
+
+func fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVTab uintptr, pzErr uintptr) int32 {
+ bp := tls.Alloc(36)
+ defer tls.Free(36)
+
+ *(*[3]uintptr)(unsafe.Pointer(bp + 8)) = [3]uintptr{
+ ts + 37829,
+ ts + 37869,
+ ts + 37904,
+ }
+
+ var pRet uintptr = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_OK
+ var bDb int32
+
+ bDb = libc.Bool32(argc == 6 && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, ts+23802, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0)
+
+ if argc != 5 && bDb == 0 {
+ *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, ts+37947, 0)
+ *(*int32)(unsafe.Pointer(bp + 32)) = SQLITE_ERROR
+ } else {
+ var nByte int32
+ var zDb uintptr
+ if bDb != 0 {
+ zDb = *(*uintptr)(unsafe.Pointer(argv + 3*8))
+ } else {
+ zDb = *(*uintptr)(unsafe.Pointer(argv + 1*8))
+ }
+ var zTab uintptr
+ if bDb != 0 {
+ zTab = *(*uintptr)(unsafe.Pointer(argv + 4*8))
+ } else {
+ zTab = *(*uintptr)(unsafe.Pointer(argv + 3*8))
+ }
+ var zType uintptr
+ if bDb != 0 {
+ zType = *(*uintptr)(unsafe.Pointer(argv + 5*8))
+ } else {
+ zType = *(*uintptr)(unsafe.Pointer(argv + 4*8))
+ }
+ var nDb int32 = int32(libc.Xstrlen(tls, zDb)) + 1
+ var nTab int32 = int32(libc.Xstrlen(tls, zTab)) + 1
+ *(*int32)(unsafe.Pointer(bp)) = 0
+
+ *(*int32)(unsafe.Pointer(bp + 32)) = fts5VocabTableType(tls, zType, pzErr, bp)
+ if *(*int32)(unsafe.Pointer(bp + 32)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 32)) = Xsqlite3_declare_vtab(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*8)))
+ }
+
+ nByte = int32(uint64(unsafe.Sizeof(Fts5VocabTable{})) + uint64(nDb) + uint64(nTab))
+ pRet = sqlite3Fts5MallocZero(tls, bp+32, int64(nByte))
+ if pRet != 0 {
+ (*Fts5VocabTable)(unsafe.Pointer(pRet)).FpGlobal = pAux
+ (*Fts5VocabTable)(unsafe.Pointer(pRet)).FeType = *(*int32)(unsafe.Pointer(bp))
+ (*Fts5VocabTable)(unsafe.Pointer(pRet)).Fdb = db
+ (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl = pRet + 1*64
+ (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db = (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl + uintptr(nTab)
+ libc.X__builtin___memcpy_chk(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl, zTab, uint64(nTab), libc.X__builtin_object_size(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl, 0))
+ libc.X__builtin___memcpy_chk(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db, zDb, uint64(nDb), libc.X__builtin_object_size(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db, 0))
+ sqlite3Fts5Dequote(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl)
+ sqlite3Fts5Dequote(tls, (*Fts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db)
+ }
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppVTab)) = pRet
+ return *(*int32)(unsafe.Pointer(bp + 32))
+}
+
+func fts5VocabConnectMethod(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return fts5VocabInitVtab(tls, db, pAux, argc, argv, ppVtab, pzErr)
+}
+
+func fts5VocabCreateMethod(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintptr, ppVtab uintptr, pzErr uintptr) int32 {
+ return fts5VocabInitVtab(tls, db, pAux, argc, argv, ppVtab, pzErr)
+}
+
+func fts5VocabBestIndexMethod(tls *libc.TLS, pUnused uintptr, pInfo uintptr) int32 {
+ var i int32
+ var iTermEq int32 = -1
+ var iTermGe int32 = -1
+ var iTermLe int32 = -1
+ var idxNum int32 = 0
+ var nArg int32 = 0
+
+ _ = pUnused
+
+ for i = 0; i < (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint; i++ {
+ var p uintptr = (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraint + uintptr(i)*12
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fusable) == 0 {
+ continue
+ }
+ if (*sqlite3_index_constraint)(unsafe.Pointer(p)).FiColumn == 0 {
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_EQ {
+ iTermEq = i
+ }
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_LE {
+ iTermLe = i
+ }
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_LT {
+ iTermLe = i
+ }
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_GE {
+ iTermGe = i
+ }
+ if int32((*sqlite3_index_constraint)(unsafe.Pointer(p)).Fop) == SQLITE_INDEX_CONSTRAINT_GT {
+ iTermGe = i
+ }
+ }
+ }
+
+ if iTermEq >= 0 {
+ idxNum = idxNum | FTS5_VOCAB_TERM_EQ
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermEq)*8)).FargvIndex = libc.PreIncInt32(&nArg, 1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = float64(100)
+ } else {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = float64(1000000)
+ if iTermGe >= 0 {
+ idxNum = idxNum | FTS5_VOCAB_TERM_GE
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermGe)*8)).FargvIndex = libc.PreIncInt32(&nArg, 1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost / float64(2)
+ }
+ if iTermLe >= 0 {
+ idxNum = idxNum | FTS5_VOCAB_TERM_LE
+ (*sqlite3_index_constraint_usage)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaConstraintUsage + uintptr(iTermLe)*8)).FargvIndex = libc.PreIncInt32(&nArg, 1)
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost = (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FestimatedCost / float64(2)
+ }
+ }
+
+ if (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FnOrderBy == 1 &&
+ (*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy)).FiColumn == 0 &&
+ int32((*sqlite3_index_orderby)(unsafe.Pointer((*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FaOrderBy)).Fdesc) == 0 {
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).ForderByConsumed = 1
+ }
+
+ (*Sqlite3_index_info)(unsafe.Pointer(pInfo)).FidxNum = idxNum
+ return SQLITE_OK
+}
+
+func fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) int32 {
+ bp := tls.Alloc(80)
+ defer tls.Free(80)
+
+ var pTab uintptr = pVTab
+ var pFts5 uintptr = uintptr(0)
+ var pCsr uintptr = uintptr(0)
+ *(*int32)(unsafe.Pointer(bp + 64)) = SQLITE_OK
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+ var zSql uintptr = uintptr(0)
+
+ if (*Fts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 {
+ (*Sqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+37980, libc.VaList(bp, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl))
+ return SQLITE_ERROR
+ }
+ zSql = sqlite3Fts5Mprintf(tls, bp+64,
+ ts+38011,
+ libc.VaList(bp+16, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl))
+ if zSql != 0 {
+ *(*int32)(unsafe.Pointer(bp + 64)) = Xsqlite3_prepare_v2(tls, (*Fts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -1, bp+72, uintptr(0))
+ }
+ Xsqlite3_free(tls, zSql)
+
+ if *(*int32)(unsafe.Pointer(bp + 64)) == SQLITE_ERROR {
+ *(*int32)(unsafe.Pointer(bp + 64)) = SQLITE_OK
+ }
+
+ (*Fts5VocabTable)(unsafe.Pointer(pTab)).FbBusy = uint32(1)
+ if *(*uintptr)(unsafe.Pointer(bp + 72)) != 0 && Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 72))) == SQLITE_ROW {
+ var iId I64 = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp + 72)), 0)
+ pFts5 = sqlite3Fts5TableFromCsrid(tls, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FpGlobal, iId)
+ }
+ (*Fts5VocabTable)(unsafe.Pointer(pTab)).FbBusy = uint32(0)
+
+ if *(*int32)(unsafe.Pointer(bp + 64)) == SQLITE_OK {
+ if pFts5 == uintptr(0) {
+ *(*int32)(unsafe.Pointer(bp + 64)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 72)))
+ *(*uintptr)(unsafe.Pointer(bp + 72)) = uintptr(0)
+ if *(*int32)(unsafe.Pointer(bp + 64)) == SQLITE_OK {
+ (*Sqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls,
+ ts+38062, libc.VaList(bp+48, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*Fts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl))
+ *(*int32)(unsafe.Pointer(bp + 64)) = SQLITE_ERROR
+ }
+ } else {
+ *(*int32)(unsafe.Pointer(bp + 64)) = sqlite3Fts5FlushToDisk(tls, pFts5)
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 64)) == SQLITE_OK {
+ var nByte I64 = I64(uint64((*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pFts5)).FpConfig)).FnCol)*uint64(unsafe.Sizeof(I64(0)))*uint64(2) + uint64(unsafe.Sizeof(Fts5VocabCursor{})))
+ pCsr = sqlite3Fts5MallocZero(tls, bp+64, nByte)
+ }
+
+ if pCsr != 0 {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5 = pFts5
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStmt = *(*uintptr)(unsafe.Pointer(bp + 72))
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt = pCsr + 1*128
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc = (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt + uintptr((*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer(pFts5)).FpConfig)).FnCol)*8
+ } else {
+ Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 72)))
+ }
+
+ *(*uintptr)(unsafe.Pointer(ppCsr)) = pCsr
+ return *(*int32)(unsafe.Pointer(bp + 64))
+}
+
+func fts5VocabResetCursor(tls *libc.TLS, pCsr uintptr) {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Frowid = int64(0)
+ sqlite3Fts5IterClose(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)
+ sqlite3Fts5StructureRelease(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStruct)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStruct = uintptr(0)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter = uintptr(0)
+ Xsqlite3_free(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = -1
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = uintptr(0)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 0
+}
+
+func fts5VocabCloseMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ var pCsr uintptr = pCursor
+ fts5VocabResetCursor(tls, pCsr)
+ sqlite3Fts5BufferFree(tls, pCsr+96)
+ Xsqlite3_finalize(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStmt)
+ Xsqlite3_free(tls, pCsr)
+ return SQLITE_OK
+}
+
+func fts5VocabInstanceNewTerm(tls *libc.TLS, pCsr uintptr) int32 {
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_OK
+
+ if (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FbEof != 0 {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 1
+ } else {
+ var zTerm uintptr
+
+ zTerm = sqlite3Fts5IterTerm(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter, bp)
+ if (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm >= 0 {
+ var nCmp int32 = func() int32 {
+ if *(*int32)(unsafe.Pointer(bp)) < (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ return (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm
+ }()
+ var bCmp int32 = libc.Xmemcmp(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(nCmp))
+ if bCmp < 0 || bCmp == 0 && (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm < *(*int32)(unsafe.Pointer(bp)) {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 1
+ }
+ }
+
+ sqlite3Fts5BufferSet(tls, bp+4, pCsr+96, *(*int32)(unsafe.Pointer(bp)), zTerm)
+ }
+ return *(*int32)(unsafe.Pointer(bp + 4))
+}
+
+func fts5VocabInstanceNext(tls *libc.TLS, pCsr uintptr) int32 {
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FeDetail
+ var rc int32 = SQLITE_OK
+ var pIter uintptr = (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter
+ var pp uintptr = pCsr + 112
+ var po uintptr = pCsr + 120
+
+ for eDetail == FTS5_DETAIL_NONE ||
+ sqlite3Fts5PoslistNext64(tls, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FpData, (*Fts5IndexIter)(unsafe.Pointer(pIter)).FnData, po, pp) != 0 {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiInstPos = int64(0)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiInstOff = 0
+
+ rc = sqlite3Fts5IterNextScan(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)
+ if rc == SQLITE_OK {
+ rc = fts5VocabInstanceNewTerm(tls, pCsr)
+ if (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof != 0 || eDetail == FTS5_DETAIL_NONE {
+ break
+ }
+ }
+ if rc != 0 {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 1
+ break
+ }
+ }
+
+ return rc
+}
+
+func fts5VocabNextMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ bp := tls.Alloc(24)
+ defer tls.Free(24)
+
+ var pCsr uintptr = pCursor
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab
+ var nCol int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FnCol
+
+ *(*int32)(unsafe.Pointer(bp + 4)) = sqlite3Fts5StructureTest(tls, (*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpIndex, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStruct)
+ if *(*int32)(unsafe.Pointer(bp + 4)) != SQLITE_OK {
+ return *(*int32)(unsafe.Pointer(bp + 4))
+ }
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Frowid++
+
+ if (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType == FTS5_VOCAB_INSTANCE {
+ return fts5VocabInstanceNext(tls, pCsr)
+ }
+
+ if (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType == FTS5_VOCAB_COL {
+ for (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol++; (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol < nCol; (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol++ {
+ if *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc + uintptr((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol)*8)) != 0 {
+ break
+ }
+ }
+ }
+
+ if (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType != FTS5_VOCAB_COL || (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol >= nCol {
+ if (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FbEof != 0 {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 1
+ } else {
+ var zTerm uintptr
+
+ zTerm = sqlite3Fts5IterTerm(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter, bp)
+
+ if (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm >= 0 {
+ var nCmp int32 = func() int32 {
+ if *(*int32)(unsafe.Pointer(bp)) < (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm {
+ return *(*int32)(unsafe.Pointer(bp))
+ }
+ return (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm
+ }()
+ var bCmp int32 = libc.Xmemcmp(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(nCmp))
+ if bCmp < 0 || bCmp == 0 && (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm < *(*int32)(unsafe.Pointer(bp)) {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = 1
+ return SQLITE_OK
+ }
+ }
+
+ sqlite3Fts5BufferSet(tls, bp+4, pCsr+96, *(*int32)(unsafe.Pointer(bp)), zTerm)
+ libc.X__builtin___memset_chk(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt, 0, uint64(nCol)*uint64(unsafe.Sizeof(I64(0))), libc.X__builtin_object_size(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt, 0))
+ libc.X__builtin___memset_chk(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc, 0, uint64(nCol)*uint64(unsafe.Sizeof(I64(0))), libc.X__builtin_object_size(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc, 0))
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol = 0
+
+ for *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK {
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FeDetail
+ var pPos uintptr
+ var nPos int32
+ *(*I64)(unsafe.Pointer(bp + 16)) = int64(0)
+ *(*int32)(unsafe.Pointer(bp + 8)) = 0
+
+ pPos = (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FpData
+ nPos = (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FnData
+
+ switch (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType {
+ case FTS5_VOCAB_ROW:
+ if eDetail == FTS5_DETAIL_FULL {
+ for 0 == sqlite3Fts5PoslistNext64(tls, pPos, nPos, bp+8, bp+16) {
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt))++
+ }
+ }
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc))++
+ break
+ fallthrough
+
+ case FTS5_VOCAB_COL:
+ if eDetail == FTS5_DETAIL_FULL {
+ var iCol int32 = -1
+ for 0 == sqlite3Fts5PoslistNext64(tls, pPos, nPos, bp+8, bp+16) {
+ var ii int32 = int32(*(*I64)(unsafe.Pointer(bp + 16)) >> 32)
+ if iCol != ii {
+ if ii >= nCol {
+ *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc + uintptr(ii)*8))++
+ iCol = ii
+ }
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt + uintptr(ii)*8))++
+ }
+ } else if eDetail == FTS5_DETAIL_COLUMNS {
+ for 0 == sqlite3Fts5PoslistNext64(tls, pPos, nPos, bp+8, bp+16) {
+ if *(*I64)(unsafe.Pointer(bp + 16)) >= I64(nCol) {
+ *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_CORRUPT | int32(1)<<8
+ break
+ }
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc + uintptr(*(*I64)(unsafe.Pointer(bp + 16)))*8))++
+ }
+ } else {
+ *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc))++
+ }
+ break
+ fallthrough
+
+ default:
+ break
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK {
+ *(*int32)(unsafe.Pointer(bp + 4)) = sqlite3Fts5IterNextScan(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)
+ }
+ if (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType == FTS5_VOCAB_INSTANCE {
+ break
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK {
+ zTerm = sqlite3Fts5IterTerm(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter, bp)
+ if *(*int32)(unsafe.Pointer(bp)) != (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Fterm.Fn ||
+ *(*int32)(unsafe.Pointer(bp)) > 0 && libc.Xmemcmp(tls, zTerm, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Fterm.Fp, uint64(*(*int32)(unsafe.Pointer(bp)))) != 0 {
+ break
+ }
+ if (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FbEof != 0 {
+ break
+ }
+ }
+ }
+ }
+ }
+
+ if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK && (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof == 0 && (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType == FTS5_VOCAB_COL {
+ for ; (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol < nCol && *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc + uintptr((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol)*8)) == int64(0); (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol++ {
+ }
+ if (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol == nCol {
+ *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_CORRUPT | int32(1)<<8
+ }
+ }
+ return *(*int32)(unsafe.Pointer(bp + 4))
+}
+
+func fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnused uintptr, nUnused int32, apVal uintptr) int32 {
+ var pTab uintptr = (*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab
+ var pCsr uintptr = pCursor
+ var eType int32 = (*Fts5VocabTable)(unsafe.Pointer(pTab)).FeType
+ var rc int32 = SQLITE_OK
+
+ var iVal int32 = 0
+ var f int32 = FTS5INDEX_QUERY_SCAN
+ var zTerm uintptr = uintptr(0)
+ var nTerm int32 = 0
+
+ var pEq uintptr = uintptr(0)
+ var pGe uintptr = uintptr(0)
+ var pLe uintptr = uintptr(0)
+
+ _ = zUnused
+ _ = nUnused
+
+ fts5VocabResetCursor(tls, pCsr)
+ if idxNum&FTS5_VOCAB_TERM_EQ != 0 {
+ pEq = *(*uintptr)(unsafe.Pointer(apVal + uintptr(libc.PostIncInt32(&iVal, 1))*8))
+ }
+ if idxNum&FTS5_VOCAB_TERM_GE != 0 {
+ pGe = *(*uintptr)(unsafe.Pointer(apVal + uintptr(libc.PostIncInt32(&iVal, 1))*8))
+ }
+ if idxNum&FTS5_VOCAB_TERM_LE != 0 {
+ pLe = *(*uintptr)(unsafe.Pointer(apVal + uintptr(libc.PostIncInt32(&iVal, 1))*8))
+ }
+
+ if pEq != 0 {
+ zTerm = Xsqlite3_value_text(tls, pEq)
+ nTerm = Xsqlite3_value_bytes(tls, pEq)
+ f = 0
+ } else {
+ if pGe != 0 {
+ zTerm = Xsqlite3_value_text(tls, pGe)
+ nTerm = Xsqlite3_value_bytes(tls, pGe)
+ }
+ if pLe != 0 {
+ var zCopy uintptr = Xsqlite3_value_text(tls, pLe)
+ if zCopy == uintptr(0) {
+ zCopy = ts + 1547
+ }
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe)
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+1)
+ if (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm == uintptr(0) {
+ rc = SQLITE_NOMEM
+ } else {
+ libc.X__builtin___memcpy_chk(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zCopy, uint64((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+1), libc.X__builtin_object_size(tls, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, 0))
+ }
+ }
+ }
+
+ if rc == SQLITE_OK {
+ var pIndex uintptr = (*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpIndex
+ rc = sqlite3Fts5IndexQuery(tls, pIndex, zTerm, nTerm, f, uintptr(0), pCsr+32)
+ if rc == SQLITE_OK {
+ (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpStruct = sqlite3Fts5StructureRef(tls, pIndex)
+ }
+ }
+ if rc == SQLITE_OK && eType == FTS5_VOCAB_INSTANCE {
+ rc = fts5VocabInstanceNewTerm(tls, pCsr)
+ }
+ if rc == SQLITE_OK && !((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof != 0) &&
+ (eType != FTS5_VOCAB_INSTANCE ||
+ (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FeDetail != FTS5_DETAIL_NONE) {
+ rc = fts5VocabNextMethod(tls, pCursor)
+ }
+
+ return rc
+}
+
+func fts5VocabEofMethod(tls *libc.TLS, pCursor uintptr) int32 {
+ var pCsr uintptr = pCursor
+ return (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof
+}
+
+func fts5VocabColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) int32 {
+ var pCsr uintptr = pCursor
+ var eDetail int32 = (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FeDetail
+ var eType int32 = (*Fts5VocabTable)(unsafe.Pointer((*Sqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FeType
+ var iVal I64 = int64(0)
+
+ if iCol == 0 {
+ Xsqlite3_result_text(tls,
+ pCtx, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Fterm.Fp, (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Fterm.Fn, libc.UintptrFromInt32(-1))
+ } else if eType == FTS5_VOCAB_COL {
+ if iCol == 1 {
+ if eDetail != FTS5_DETAIL_NONE {
+ var z uintptr = *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FazCol + uintptr((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol)*8))
+ Xsqlite3_result_text(tls, pCtx, z, -1, uintptr(0))
+ }
+ } else if iCol == 2 {
+ iVal = *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc + uintptr((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol)*8))
+ } else {
+ iVal = *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt + uintptr((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol)*8))
+ }
+ } else if eType == FTS5_VOCAB_ROW {
+ if iCol == 1 {
+ iVal = *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc))
+ } else {
+ iVal = *(*I64)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt))
+ }
+ } else {
+ switch iCol {
+ case 1:
+ Xsqlite3_result_int64(tls, pCtx, (*Fts5IndexIter)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpIter)).FiRowid)
+ break
+ fallthrough
+ case 2:
+ {
+ var ii int32 = -1
+ if eDetail == FTS5_DETAIL_FULL {
+ ii = int32((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiInstPos >> 32)
+ } else if eDetail == FTS5_DETAIL_COLUMNS {
+ ii = int32((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiInstPos)
+ }
+ if ii >= 0 && ii < (*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FnCol {
+ var z uintptr = *(*uintptr)(unsafe.Pointer((*Fts5Config)(unsafe.Pointer((*Fts5Table)(unsafe.Pointer((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FazCol + uintptr(ii)*8))
+ Xsqlite3_result_text(tls, pCtx, z, -1, uintptr(0))
+ }
+ break
+
+ }
+ fallthrough
+ default:
+ {
+ if eDetail == FTS5_DETAIL_FULL {
+ var ii int32 = int32((*Fts5VocabCursor)(unsafe.Pointer(pCsr)).FiInstPos & int64(0x7FFFFFFF))
+ Xsqlite3_result_int(tls, pCtx, ii)
+ }
+ break
+
+ }
+ }
+ }
+
+ if iVal > int64(0) {
+ Xsqlite3_result_int64(tls, pCtx, iVal)
+ }
+ return SQLITE_OK
+}
+
+func fts5VocabRowidMethod(tls *libc.TLS, pCursor uintptr, pRowid uintptr) int32 {
+ var pCsr uintptr = pCursor
+ *(*Sqlite_int64)(unsafe.Pointer(pRowid)) = (*Fts5VocabCursor)(unsafe.Pointer(pCsr)).Frowid
+ return SQLITE_OK
+}
+
+func sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) int32 {
+ var p uintptr = pGlobal
+
+ return Xsqlite3_create_module_v2(tls, db, ts+38088, uintptr(unsafe.Pointer(&fts5Vocab)), p, uintptr(0))
+}
+
+var fts5Vocab = Sqlite3_module{
+ FiVersion: 2,
+ FxCreate: 0,
+ FxConnect: 0,
+ FxBestIndex: 0,
+ FxDisconnect: 0,
+ FxDestroy: 0,
+ FxOpen: 0,
+ FxClose: 0,
+ FxFilter: 0,
+ FxNext: 0,
+ FxEof: 0,
+ FxColumn: 0,
+ FxRowid: 0,
+}
+
+// ************* End of stmt.c ***********************************************
+// Return the source-id for this library
+func Xsqlite3_sourceid(tls *libc.TLS) uintptr {
+ return ts + 38098
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3aEQb)) + 0)) = uintptr(unsafe.Pointer(&Xsqlite3UpperToLower)) + 210
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3aGTb)) + 0)) = uintptr(unsafe.Pointer(&Xsqlite3UpperToLower)) + 216
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&Xsqlite3aLTb)) + 0)) = uintptr(unsafe.Pointer(&Xsqlite3UpperToLower)) + 204
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAgg)) + 0)) = geopolyBBoxStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAgg)) + 8)) = geopolyBBoxFinal
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAlterTableFuncs)) + 24)) = renameColumnFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAlterTableFuncs)) + 96)) = renameTableFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAlterTableFuncs)) + 168)) = renameTableTest
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAlterTableFuncs)) + 240)) = dropColumnFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aAlterTableFuncs)) + 312)) = renameQuotefixFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 24)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 96)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 168)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 240)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 312)) = soundexFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 384)) = loadExt
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 456)) = loadExt
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 528)) = compileoptionusedFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 600)) = compileoptiongetFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 672)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 744)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 816)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 888)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 960)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1032)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1104)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1176)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1248)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1320)) = trimFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1392)) = minmaxFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1536)) = minmaxStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1544)) = minMaxFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1552)) = minMaxValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1608)) = minmaxFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1752)) = minmaxStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1760)) = minMaxFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1768)) = minMaxValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1824)) = typeofFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1896)) = subtypeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 1968)) = lengthFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2040)) = instrFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2112)) = printfFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2184)) = printfFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2256)) = unicodeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2328)) = charFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2400)) = absFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2472)) = roundFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2544)) = roundFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2616)) = upperFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2688)) = lowerFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2760)) = hexFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2832)) = unhexFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2904)) = unhexFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 2976)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3048)) = randomFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3120)) = randomBlob
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3192)) = nullifFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3264)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3336)) = sourceidFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3408)) = errlogFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3480)) = quoteFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3552)) = last_insert_rowid
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3624)) = changes
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3696)) = total_changes
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3768)) = replaceFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3840)) = zeroblobFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3912)) = substrFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 3984)) = substrFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4056)) = substrFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4128)) = substrFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4200)) = sumStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4208)) = sumFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4216)) = sumFinalize
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4224)) = sumInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4272)) = sumStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4280)) = totalFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4288)) = totalFinalize
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4296)) = sumInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4344)) = sumStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4352)) = avgFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4360)) = avgFinalize
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4368)) = sumInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4416)) = countStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4424)) = countFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4432)) = countFinalize
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4440)) = countInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4488)) = countStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4496)) = countFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4504)) = countFinalize
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4512)) = countInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4560)) = groupConcatStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4568)) = groupConcatFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4576)) = groupConcatValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4584)) = groupConcatInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4632)) = groupConcatStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4640)) = groupConcatFinalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4648)) = groupConcatValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4656)) = groupConcatInverse
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4688)) = uintptr(unsafe.Pointer(&globInfo))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4704)) = likeFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4760)) = uintptr(unsafe.Pointer(&likeInfoNorm))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4776)) = likeFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4832)) = uintptr(unsafe.Pointer(&likeInfoNorm))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 4848)) = likeFunc
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5048)) = xCeil
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5064)) = ceilingFunc
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5120)) = xCeil
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5136)) = ceilingFunc
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5192)) = xFloor
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5208)) = ceilingFunc
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5264)) = libc.Xtrunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5280)) = ceilingFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5352)) = logFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5424)) = logFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5496)) = logFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5568)) = logFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5640)) = logFunc
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5696)) = libc.Xexp
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5712)) = math1Func
+ *(*func(*libc.TLS, float64, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5768)) = libc.Xpow
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5784)) = math2Func
+ *(*func(*libc.TLS, float64, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5840)) = libc.Xpow
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5856)) = math2Func
+ *(*func(*libc.TLS, float64, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5912)) = libc.Xfmod
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5928)) = math2Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 5984)) = libc.Xacos
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6000)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6056)) = libc.Xasin
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6072)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6128)) = libc.Xatan
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6144)) = math1Func
+ *(*func(*libc.TLS, float64, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6200)) = libc.Xatan2
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6216)) = math2Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6272)) = libc.Xcos
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6288)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6344)) = libc.Xsin
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6360)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6416)) = libc.Xtan
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6432)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6488)) = libc.Xcosh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6504)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6560)) = libc.Xsinh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6576)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6632)) = libc.Xtanh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6648)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6704)) = libc.Xacosh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6720)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6776)) = libc.Xasinh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6792)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6848)) = libc.Xatanh
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6864)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6920)) = libc.Xsqrt
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6936)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 6992)) = degToRad
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7008)) = math1Func
+ *(*func(*libc.TLS, float64) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7064)) = radToDeg
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7080)) = math1Func
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7152)) = piFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7224)) = signFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7296)) = versionFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aBuiltinFunc)) + 7368)) = versionFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 8)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 24)) = juliandayFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 80)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 96)) = unixepochFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 152)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 168)) = dateFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 224)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 240)) = timeFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 296)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 312)) = datetimeFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 368)) = uintptr(unsafe.Pointer(&Xsqlite3Config))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 384)) = strftimeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 456)) = ctimeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 528)) = ctimestampFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aDateTimeFuncs)) + 600)) = cdateFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 0)) = geopolyAreaFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 24)) = geopolyBlobFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 48)) = geopolyJsonFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 72)) = geopolySvgFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 96)) = geopolyWithinFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 120)) = geopolyContainsPointFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 144)) = geopolyOverlapFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 168)) = geopolyDebugFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 192)) = geopolyBBoxFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 216)) = geopolyXformFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 240)) = geopolyRegularFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aFunc)) + 264)) = geopolyCcwFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 24)) = jsonRemoveFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 96)) = jsonArrayFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 168)) = jsonArrayLengthFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 240)) = jsonArrayLengthFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 312)) = jsonExtractFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 384)) = jsonExtractFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 456)) = jsonExtractFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 528)) = jsonSetFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 600)) = jsonObjectFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 672)) = jsonPatchFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 744)) = jsonQuoteFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 816)) = jsonRemoveFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 888)) = jsonReplaceFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 960)) = jsonSetFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1032)) = jsonTypeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1104)) = jsonTypeFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1176)) = jsonValidFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1248)) = jsonArrayStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1256)) = jsonArrayFinal
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1264)) = jsonArrayValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1272)) = jsonGroupInverse
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1320)) = jsonObjectStep
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1328)) = jsonObjectFinal
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1336)) = jsonObjectValue
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aJsonFunc)) + 1344)) = jsonGroupInverse
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMap)) + 8)) = uintptr(unsafe.Pointer(&posixIoMethods))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMap)) + 24)) = uintptr(unsafe.Pointer(&posixIoMethods))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMap)) + 40)) = uintptr(unsafe.Pointer(&afpIoMethods))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMap)) + 56)) = uintptr(unsafe.Pointer(&afpIoMethods))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMap)) + 72)) = uintptr(unsafe.Pointer(&nolockIoMethods))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMod)) + 8)) = uintptr(unsafe.Pointer(&jsonEachModule))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aMod)) + 24)) = uintptr(unsafe.Pointer(&jsonTreeModule))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 8)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32, int32) int32
+ }{posixOpen}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 32)) = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS, int32) int32 }{libc.Xclose}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 56)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, int32) int32
+ }{libc.Xaccess}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 80)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Size_t) uintptr
+ }{libc.Xgetcwd}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 104)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{libc.Xstat}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 128)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr) int32
+ }{libc.Xfstat}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 152)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, Off_t) int32
+ }{libc.Xftruncate}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 176)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, int32, uintptr) int32
+ }{libc.Xfcntl}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 200)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, Size_t) Ssize_t
+ }{libc.Xread}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 224)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t
+ }{libc.Xpread}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 272)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, Size_t) Ssize_t
+ }{libc.Xwrite}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 296)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, uintptr, Size_t, Off_t) Ssize_t
+ }{libc.Xpwrite}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 344)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, Mode_t) int32
+ }{libc.Xfchmod}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 392)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{libc.Xunlink}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 416)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{openDirectory}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 440)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Mode_t) int32
+ }{libc.Xmkdir}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 464)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) int32
+ }{libc.Xrmdir}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 488)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, int32, Uid_t, Gid_t) int32
+ }{libc.Xfchown}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 512)) = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS) Uid_t }{libc.Xgeteuid}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 536)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Size_t, int32, int32, int32, Off_t) uintptr
+ }{libc.Xmmap}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 560)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, Size_t) int32
+ }{libc.Xmunmap}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 608)) = *(*uintptr)(unsafe.Pointer(&struct{ f func(*libc.TLS) int32 }{unixGetpagesize}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 632)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr, Size_t) Ssize_t
+ }{libc.Xreadlink}))
+ *(*Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aSyscall)) + 656)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr, uintptr) int32
+ }{libc.Xlstat}))
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 32)) = uintptr(unsafe.Pointer(&autolockIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 40)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 48)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 56)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 64)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 72)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 80)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 88)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 96)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 104)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 112)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 120)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 128)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 136)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 144)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 152)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 160)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 200)) = uintptr(unsafe.Pointer(&nolockIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 208)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 216)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 224)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 232)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 240)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 248)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 256)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 264)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 272)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 280)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 288)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 296)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 304)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 312)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 320)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 328)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 368)) = uintptr(unsafe.Pointer(&dotlockIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 376)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 384)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 392)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 400)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 408)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 416)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 424)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 432)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 440)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 448)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 456)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 464)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 472)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 480)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 488)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 496)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 536)) = uintptr(unsafe.Pointer(&posixIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 544)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 552)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 560)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 568)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 576)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 584)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 592)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 600)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 608)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 616)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 624)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 632)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 640)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 648)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 656)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 664)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 704)) = uintptr(unsafe.Pointer(&posixIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 712)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 720)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 728)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 736)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 744)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 752)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 760)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 768)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 776)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 784)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 792)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 800)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 808)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 816)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 824)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 832)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 872)) = uintptr(unsafe.Pointer(&flockIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 880)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 888)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 896)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 904)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 912)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 920)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 928)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 936)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 944)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 952)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 960)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 968)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 976)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 984)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 992)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1000)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1040)) = uintptr(unsafe.Pointer(&afpIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1048)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1056)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1064)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1072)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1080)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1088)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1096)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1104)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1112)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1120)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1128)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1136)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1144)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1152)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1160)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1168)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1208)) = uintptr(unsafe.Pointer(&nfsIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1216)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1224)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1232)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1240)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1248)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1256)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1264)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1272)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1280)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1288)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1296)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1304)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1312)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1320)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1328)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1336)) = unixNextSystemCall
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1376)) = uintptr(unsafe.Pointer(&proxyIoFinder))
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1384)) = unixOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1392)) = unixDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1400)) = unixAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1408)) = unixFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1416)) = unixDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1424)) = unixDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1432)) = unixDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1440)) = unixDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1448)) = unixRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1456)) = unixSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1464)) = unixCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1472)) = unixGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1480)) = unixCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_syscall_ptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1488)) = unixSetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_syscall_ptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1496)) = unixGetSystemCall
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aVfs)) + 1504)) = unixNextSystemCall
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 24)) = row_numberStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 32)) = row_numberValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 40)) = row_numberValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 48)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 56)) = uintptr(unsafe.Pointer(&row_numberName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 96)) = dense_rankStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 104)) = dense_rankValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 112)) = dense_rankValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 120)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 128)) = uintptr(unsafe.Pointer(&dense_rankName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 168)) = rankStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 176)) = rankValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 184)) = rankValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 192)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 200)) = uintptr(unsafe.Pointer(&rankName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 240)) = percent_rankStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 248)) = percent_rankValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 256)) = percent_rankValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 264)) = percent_rankInvFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 272)) = uintptr(unsafe.Pointer(&percent_rankName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 312)) = cume_distStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 320)) = cume_distValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 328)) = cume_distValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 336)) = cume_distInvFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 344)) = uintptr(unsafe.Pointer(&cume_distName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 384)) = ntileStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 392)) = ntileValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 400)) = ntileValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 408)) = ntileInvFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 416)) = uintptr(unsafe.Pointer(&ntileName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 456)) = last_valueStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 464)) = last_valueFinalizeFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 472)) = last_valueValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 480)) = last_valueInvFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 488)) = uintptr(unsafe.Pointer(&last_valueName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 528)) = nth_valueStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 536)) = nth_valueFinalizeFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 544)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 552)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 560)) = uintptr(unsafe.Pointer(&nth_valueName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 600)) = first_valueStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 608)) = first_valueFinalizeFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 616)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 624)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 632)) = uintptr(unsafe.Pointer(&first_valueName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 672)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 680)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 688)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 696)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 704)) = uintptr(unsafe.Pointer(&leadName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 744)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 752)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 760)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 768)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 776)) = uintptr(unsafe.Pointer(&leadName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 816)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 824)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 832)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 840)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 848)) = uintptr(unsafe.Pointer(&leadName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 888)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 896)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 904)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 912)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 920)) = uintptr(unsafe.Pointer(&lagName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 960)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 968)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 976)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 984)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 992)) = uintptr(unsafe.Pointer(&lagName))
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1032)) = noopStepFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1040)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1048)) = noopValueFunc
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1056)) = noopStepFunc
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&aWindowFuncs)) + 1064)) = uintptr(unsafe.Pointer(&lagName))
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoFinder)) + 0)) = afpIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 8)) = afpClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 56)) = afpLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 64)) = afpUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 72)) = afpCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&afpIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&attach_func)) + 24)) = attachFunc
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&autolockIoFinder)) + 0)) = autolockIoFinderImpl
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 0)) = sqlite3MemMalloc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 8)) = sqlite3MemFree
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 16)) = sqlite3MemRealloc
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 24)) = sqlite3MemSize
+ *(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 32)) = sqlite3MemRoundup
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 40)) = sqlite3MemInit
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods)) + 48)) = sqlite3MemShutdown
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 16)) = pcache1Init
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 24)) = pcache1Shutdown
+ *(*func(*libc.TLS, int32, int32, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 32)) = pcache1Create
+ *(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 40)) = pcache1Cachesize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 48)) = pcache1Pagecount
+ *(*func(*libc.TLS, uintptr, uint32, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 56)) = pcache1Fetch
+ *(*func(*libc.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 64)) = pcache1Unpin
+ *(*func(*libc.TLS, uintptr, uintptr, uint32, uint32))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 72)) = pcache1Rekey
+ *(*func(*libc.TLS, uintptr, uint32))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 80)) = pcache1Truncate
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 88)) = pcache1Destroy
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&defaultMethods1)) + 96)) = pcache1Shrink
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&detach_func)) + 24)) = detachFunc
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoFinder)) + 0)) = dotlockIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 8)) = dotlockClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 56)) = dotlockLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 64)) = dotlockUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 72)) = dotlockCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&dotlockIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoFinder)) + 0)) = flockIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 8)) = flockClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 56)) = flockLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 64)) = flockUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 72)) = flockCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&flockIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 8)) = fts5CreateMethod
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 16)) = fts5ConnectMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 24)) = fts5BestIndexMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 32)) = fts5DisconnectMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 40)) = fts5DestroyMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 48)) = fts5OpenMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 56)) = fts5CloseMethod
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 64)) = fts5FilterMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 72)) = fts5NextMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 80)) = fts5EofMethod
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 88)) = fts5ColumnMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 96)) = fts5RowidMethod
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 104)) = fts5UpdateMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 112)) = fts5BeginMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 120)) = fts5SyncMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 128)) = fts5CommitMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 136)) = fts5RollbackMethod
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 144)) = fts5FindFunctionMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 152)) = fts5RenameMethod
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 160)) = fts5SavepointMethod
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 168)) = fts5ReleaseMethod
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 176)) = fts5RollbackToMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Mod)) + 184)) = fts5ShadowName
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 8)) = fts5VocabCreateMethod
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 16)) = fts5VocabConnectMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 24)) = fts5VocabBestIndexMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 32)) = fts5VocabDisconnectMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 40)) = fts5VocabDestroyMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 48)) = fts5VocabOpenMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 56)) = fts5VocabCloseMethod
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 64)) = fts5VocabFilterMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 72)) = fts5VocabNextMethod
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 80)) = fts5VocabEofMethod
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 88)) = fts5VocabColumnMethod
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&fts5Vocab)) + 96)) = fts5VocabRowidMethod
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 8)) = geopolyCreate
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 16)) = geopolyConnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 24)) = geopolyBestIndex
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 32)) = rtreeDisconnect
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 40)) = rtreeDestroy
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 48)) = rtreeOpen
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 56)) = rtreeClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 64)) = geopolyFilter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 72)) = rtreeNext
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 80)) = rtreeEof
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 88)) = geopolyColumn
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 96)) = rtreeRowid
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 104)) = geopolyUpdate
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 112)) = rtreeBeginTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 120)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 128)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 136)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 144)) = geopolyFindFunction
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 152)) = rtreeRename
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 160)) = rtreeSavepoint
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&geopolyModule)) + 184)) = rtreeShadowName
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 16)) = jsonEachConnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 24)) = jsonEachBestIndex
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 32)) = jsonEachDisconnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 48)) = jsonEachOpenEach
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 56)) = jsonEachClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 64)) = jsonEachFilter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 72)) = jsonEachNext
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 80)) = jsonEachEof
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 88)) = jsonEachColumn
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonEachModule)) + 96)) = jsonEachRowid
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 16)) = jsonEachConnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 24)) = jsonEachBestIndex
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 32)) = jsonEachDisconnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 48)) = jsonEachOpenTree
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 56)) = jsonEachClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 64)) = jsonEachFilter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 72)) = jsonEachNext
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 80)) = jsonEachEof
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 88)) = jsonEachColumn
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&jsonTreeModule)) + 96)) = jsonEachRowid
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 8)) = memdbClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 16)) = memdbRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 24)) = memdbWrite
+ *(*func(*libc.TLS, uintptr, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 32)) = memdbTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 40)) = memdbSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 48)) = memdbFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 56)) = memdbLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 64)) = memdbUnlock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 80)) = memdbFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 96)) = memdbDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, Sqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 136)) = memdbFetch
+ *(*func(*libc.TLS, uintptr, Sqlite3_int64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_io_methods)) + 144)) = memdbUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 40)) = memdbOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 56)) = memdbAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 64)) = memdbFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 72)) = memdbDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 80)) = memdbDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 88)) = memdbDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 96)) = memdbDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 104)) = memdbRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 112)) = memdbSleep
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 128)) = memdbGetLastError
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&memdb_vfs)) + 136)) = memdbCurrentTimeInt64
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoFinder)) + 0)) = nfsIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 8)) = unixClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 56)) = unixLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 64)) = nfsUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 72)) = unixCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nfsIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoFinder)) + 0)) = nolockIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 8)) = nolockClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 56)) = nolockLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 64)) = nolockUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 72)) = nolockCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&nolockIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoFinder)) + 0)) = posixIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 8)) = unixClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 56)) = unixLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 64)) = unixUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 72)) = unixCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 104)) = unixShmMap
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&posixIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 16)) = pragmaVtabConnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 24)) = pragmaVtabBestIndex
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 32)) = pragmaVtabDisconnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 48)) = pragmaVtabOpen
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 56)) = pragmaVtabClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 64)) = pragmaVtabFilter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 72)) = pragmaVtabNext
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 80)) = pragmaVtabEof
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 88)) = pragmaVtabColumn
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&pragmaVtabModule)) + 96)) = pragmaVtabRowid
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoFinder)) + 0)) = proxyIoFinderImpl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 8)) = proxyClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 16)) = unixRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 24)) = unixWrite
+ *(*func(*libc.TLS, uintptr, I64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 32)) = unixTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 40)) = unixSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 48)) = unixFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 56)) = proxyLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 64)) = proxyUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 72)) = proxyCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 80)) = unixFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 88)) = unixSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 96)) = unixDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 112)) = unixShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 120)) = unixShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 128)) = unixShmUnmap
+ *(*func(*libc.TLS, uintptr, I64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 136)) = unixFetch
+ *(*func(*libc.TLS, uintptr, I64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&proxyIoMethods)) + 144)) = unixUnfetch
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 8)) = rbuVfsClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 16)) = rbuVfsRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 24)) = rbuVfsWrite
+ *(*func(*libc.TLS, uintptr, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 32)) = rbuVfsTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 40)) = rbuVfsSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 48)) = rbuVfsFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 56)) = rbuVfsLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 64)) = rbuVfsUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 72)) = rbuVfsCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 80)) = rbuVfsFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 88)) = rbuVfsSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 96)) = rbuVfsDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 104)) = rbuVfsShmMap
+ *(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 112)) = rbuVfsShmLock
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 120)) = rbuVfsShmBarrier
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods)) + 128)) = rbuVfsShmUnmap
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 8)) = rbuVfsClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 16)) = rbuVfsRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 24)) = rbuVfsWrite
+ *(*func(*libc.TLS, uintptr, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 32)) = rbuVfsTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 40)) = rbuVfsSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 48)) = rbuVfsFileSize
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 56)) = rbuVfsLock
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 64)) = rbuVfsUnlock
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 72)) = rbuVfsCheckReservedLock
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 80)) = rbuVfsFileControl
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 88)) = rbuVfsSectorSize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rbuvfs_io_methods1)) + 96)) = rbuVfsDeviceCharacteristics
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 8)) = rtreeCreate
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 16)) = rtreeConnect
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 24)) = rtreeBestIndex
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 32)) = rtreeDisconnect
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 40)) = rtreeDestroy
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 48)) = rtreeOpen
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 56)) = rtreeClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 64)) = rtreeFilter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 72)) = rtreeNext
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 80)) = rtreeEof
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 88)) = rtreeColumn
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 96)) = rtreeRowid
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 104)) = rtreeUpdate
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 112)) = rtreeBeginTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 120)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 128)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 136)) = rtreeEndTransaction
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 152)) = rtreeRename
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 160)) = rtreeSavepoint
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&rtreeModule)) + 184)) = rtreeShadowName
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 8)) = fts5ApiUserData
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 16)) = fts5ApiColumnCount
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 24)) = fts5ApiRowCount
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 32)) = fts5ApiColumnTotalSize
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 40)) = fts5ApiTokenize
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 48)) = fts5ApiPhraseCount
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 56)) = fts5ApiPhraseSize
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 64)) = fts5ApiInstCount
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 72)) = fts5ApiInst
+ *(*func(*libc.TLS, uintptr) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 80)) = fts5ApiRowid
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 88)) = fts5ApiColumnText
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 96)) = fts5ApiColumnSize
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 104)) = fts5ApiQueryPhrase
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 112)) = fts5ApiSetAuxdata
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 120)) = fts5ApiGetAuxdata
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 128)) = fts5ApiPhraseFirst
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 136)) = fts5ApiPhraseNext
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 144)) = fts5ApiPhraseFirstColumn
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sFts5Api)) + 152)) = fts5ApiPhraseNextColumn
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 8)) = memjrnlClose
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 16)) = memjrnlRead
+ *(*func(*libc.TLS, uintptr, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 24)) = memjrnlWrite
+ *(*func(*libc.TLS, uintptr, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 32)) = memjrnlTruncate
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 40)) = memjrnlSync
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMemJournalMethods)) + 48)) = memjrnlFileSize
+ *(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 0)) = noopMutexInit
+ *(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 8)) = noopMutexEnd
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 16)) = noopMutexAlloc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 24)) = noopMutexFree
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 32)) = noopMutexEnter
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 40)) = noopMutexTry
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sMutex)) + 48)) = noopMutexLeave
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 0)) = Xsqlite3_aggregate_context
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 8)) = Xsqlite3_aggregate_count
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 16)) = Xsqlite3_bind_blob
+ *(*func(*libc.TLS, uintptr, int32, float64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 24)) = Xsqlite3_bind_double
+ *(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 32)) = Xsqlite3_bind_int
+ *(*func(*libc.TLS, uintptr, int32, Sqlite_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 40)) = Xsqlite3_bind_int64
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 48)) = Xsqlite3_bind_null
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 56)) = Xsqlite3_bind_parameter_count
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 64)) = Xsqlite3_bind_parameter_index
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 72)) = Xsqlite3_bind_parameter_name
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 80)) = Xsqlite3_bind_text
+ *(*func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 88)) = Xsqlite3_bind_text16
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 96)) = Xsqlite3_bind_value
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 104)) = Xsqlite3_busy_handler
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 112)) = Xsqlite3_busy_timeout
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 120)) = Xsqlite3_changes
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 128)) = Xsqlite3_close
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 136)) = Xsqlite3_collation_needed
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 144)) = Xsqlite3_collation_needed16
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 152)) = Xsqlite3_column_blob
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 160)) = Xsqlite3_column_bytes
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 168)) = Xsqlite3_column_bytes16
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 176)) = Xsqlite3_column_count
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 184)) = Xsqlite3_column_database_name
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 192)) = Xsqlite3_column_database_name16
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 200)) = Xsqlite3_column_decltype
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 208)) = Xsqlite3_column_decltype16
+ *(*func(*libc.TLS, uintptr, int32) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 216)) = Xsqlite3_column_double
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 224)) = Xsqlite3_column_int
+ *(*func(*libc.TLS, uintptr, int32) Sqlite_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 232)) = Xsqlite3_column_int64
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 240)) = Xsqlite3_column_name
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 248)) = Xsqlite3_column_name16
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 256)) = Xsqlite3_column_origin_name
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 264)) = Xsqlite3_column_origin_name16
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 272)) = Xsqlite3_column_table_name
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 280)) = Xsqlite3_column_table_name16
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 288)) = Xsqlite3_column_text
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 296)) = Xsqlite3_column_text16
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 304)) = Xsqlite3_column_type
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 312)) = Xsqlite3_column_value
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 320)) = Xsqlite3_commit_hook
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 328)) = Xsqlite3_complete
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 336)) = Xsqlite3_complete16
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 344)) = Xsqlite3_create_collation
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 352)) = Xsqlite3_create_collation16
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 360)) = Xsqlite3_create_function
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 368)) = Xsqlite3_create_function16
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 376)) = Xsqlite3_create_module
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 384)) = Xsqlite3_data_count
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 392)) = Xsqlite3_db_handle
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 400)) = Xsqlite3_declare_vtab
+ *(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 408)) = Xsqlite3_enable_shared_cache
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 416)) = Xsqlite3_errcode
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 424)) = Xsqlite3_errmsg
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 432)) = Xsqlite3_errmsg16
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_callback, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 440)) = Xsqlite3_exec
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 448)) = Xsqlite3_expired
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 456)) = Xsqlite3_finalize
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 464)) = Xsqlite3_free
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 472)) = Xsqlite3_free_table
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 480)) = Xsqlite3_get_autocommit
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 488)) = Xsqlite3_get_auxdata
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 496)) = Xsqlite3_get_table
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 512)) = Xsqlite3_interrupt
+ *(*func(*libc.TLS, uintptr) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 520)) = Xsqlite3_last_insert_rowid
+ *(*func(*libc.TLS) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 528)) = Xsqlite3_libversion
+ *(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 536)) = Xsqlite3_libversion_number
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 544)) = Xsqlite3_malloc
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 552)) = Xsqlite3_mprintf
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 560)) = Xsqlite3_open
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 568)) = Xsqlite3_open16
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 576)) = Xsqlite3_prepare
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 584)) = Xsqlite3_prepare16
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 592)) = Xsqlite3_profile
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 600)) = Xsqlite3_progress_handler
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 608)) = Xsqlite3_realloc
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 616)) = Xsqlite3_reset
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 624)) = Xsqlite3_result_blob
+ *(*func(*libc.TLS, uintptr, float64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 632)) = Xsqlite3_result_double
+ *(*func(*libc.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 640)) = Xsqlite3_result_error
+ *(*func(*libc.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 648)) = Xsqlite3_result_error16
+ *(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 656)) = Xsqlite3_result_int
+ *(*func(*libc.TLS, uintptr, I64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 664)) = Xsqlite3_result_int64
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 672)) = Xsqlite3_result_null
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 680)) = Xsqlite3_result_text
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 688)) = Xsqlite3_result_text16
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 696)) = Xsqlite3_result_text16be
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 704)) = Xsqlite3_result_text16le
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 712)) = Xsqlite3_result_value
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 720)) = Xsqlite3_rollback_hook
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 728)) = Xsqlite3_set_authorizer
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 736)) = Xsqlite3_set_auxdata
+ *(*func(*libc.TLS, int32, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 744)) = Xsqlite3_snprintf
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 752)) = Xsqlite3_step
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 760)) = Xsqlite3_table_column_metadata
+ *(*func(*libc.TLS))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 768)) = Xsqlite3_thread_cleanup
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 776)) = Xsqlite3_total_changes
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 784)) = Xsqlite3_trace
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 792)) = Xsqlite3_transfer_bindings
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 800)) = Xsqlite3_update_hook
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 808)) = Xsqlite3_user_data
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 816)) = Xsqlite3_value_blob
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 824)) = Xsqlite3_value_bytes
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 832)) = Xsqlite3_value_bytes16
+ *(*func(*libc.TLS, uintptr) float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 840)) = Xsqlite3_value_double
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 848)) = Xsqlite3_value_int
+ *(*func(*libc.TLS, uintptr) Sqlite_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 856)) = Xsqlite3_value_int64
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 864)) = Xsqlite3_value_numeric_type
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 872)) = Xsqlite3_value_text
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 880)) = Xsqlite3_value_text16
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 888)) = Xsqlite3_value_text16be
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 896)) = Xsqlite3_value_text16le
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 904)) = Xsqlite3_value_type
+ *(*func(*libc.TLS, uintptr, Va_list) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 912)) = Xsqlite3_vmprintf
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 920)) = Xsqlite3_overload_function
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 928)) = Xsqlite3_prepare_v2
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 936)) = Xsqlite3_prepare16_v2
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 944)) = Xsqlite3_clear_bindings
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 952)) = Xsqlite3_create_module_v2
+ *(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 960)) = Xsqlite3_bind_zeroblob
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 968)) = Xsqlite3_blob_bytes
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 976)) = Xsqlite3_blob_close
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, Sqlite_int64, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 984)) = Xsqlite3_blob_open
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 992)) = Xsqlite3_blob_read
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1000)) = Xsqlite3_blob_write
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1008)) = Xsqlite3_create_collation_v2
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1016)) = Xsqlite3_file_control
+ *(*func(*libc.TLS, int32) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1024)) = Xsqlite3_memory_highwater
+ *(*func(*libc.TLS) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1032)) = Xsqlite3_memory_used
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1040)) = Xsqlite3_mutex_alloc
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1048)) = Xsqlite3_mutex_enter
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1056)) = Xsqlite3_mutex_free
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1064)) = Xsqlite3_mutex_leave
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1072)) = Xsqlite3_mutex_try
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1080)) = Xsqlite3_open_v2
+ *(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1088)) = Xsqlite3_release_memory
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1096)) = Xsqlite3_result_error_nomem
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1104)) = Xsqlite3_result_error_toobig
+ *(*func(*libc.TLS, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1112)) = Xsqlite3_sleep
+ *(*func(*libc.TLS, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1120)) = Xsqlite3_soft_heap_limit
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1128)) = Xsqlite3_vfs_find
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1136)) = Xsqlite3_vfs_register
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1144)) = Xsqlite3_vfs_unregister
+ *(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1152)) = Xsqlite3_threadsafe
+ *(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1160)) = Xsqlite3_result_zeroblob
+ *(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1168)) = Xsqlite3_result_error_code
+ *(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1176)) = Xsqlite3_test_control
+ *(*func(*libc.TLS, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1184)) = Xsqlite3_randomness
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1192)) = Xsqlite3_context_db_handle
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1200)) = Xsqlite3_extended_result_codes
+ *(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1208)) = Xsqlite3_limit
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1216)) = Xsqlite3_next_stmt
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1224)) = Xsqlite3_sql
+ *(*func(*libc.TLS, int32, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1232)) = Xsqlite3_status
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1240)) = Xsqlite3_backup_finish
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1248)) = Xsqlite3_backup_init
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1256)) = Xsqlite3_backup_pagecount
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1264)) = Xsqlite3_backup_remaining
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1272)) = Xsqlite3_backup_step
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1280)) = Xsqlite3_compileoption_get
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1288)) = Xsqlite3_compileoption_used
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1296)) = Xsqlite3_create_function_v2
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1304)) = Xsqlite3_db_config
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1312)) = Xsqlite3_db_mutex
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1320)) = Xsqlite3_db_status
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1328)) = Xsqlite3_extended_errcode
+ *(*func(*libc.TLS, int32, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1336)) = Xsqlite3_log
+ *(*func(*libc.TLS, Sqlite3_int64) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1344)) = Xsqlite3_soft_heap_limit64
+ *(*func(*libc.TLS) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1352)) = Xsqlite3_sourceid
+ *(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1360)) = Xsqlite3_stmt_status
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1368)) = Xsqlite3_strnicmp
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1376)) = Xsqlite3_unlock_notify
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1384)) = Xsqlite3_wal_autocheckpoint
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1392)) = Xsqlite3_wal_checkpoint
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1400)) = Xsqlite3_wal_hook
+ *(*func(*libc.TLS, uintptr, Sqlite3_int64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1408)) = Xsqlite3_blob_reopen
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1416)) = Xsqlite3_vtab_config
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1424)) = Xsqlite3_vtab_on_conflict
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1432)) = Xsqlite3_close_v2
+ *(*func(*libc.TLS, uintptr, uintptr) Sqlite3_filename)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1440)) = Xsqlite3_db_filename
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1448)) = Xsqlite3_db_readonly
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1456)) = Xsqlite3_db_release_memory
+ *(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1464)) = Xsqlite3_errstr
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1472)) = Xsqlite3_stmt_busy
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1480)) = Xsqlite3_stmt_readonly
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1488)) = Xsqlite3_stricmp
+ *(*func(*libc.TLS, Sqlite3_filename, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1496)) = Xsqlite3_uri_boolean
+ *(*func(*libc.TLS, Sqlite3_filename, uintptr, Sqlite3_int64) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1504)) = Xsqlite3_uri_int64
+ *(*func(*libc.TLS, Sqlite3_filename, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1512)) = Xsqlite3_uri_parameter
+ *(*func(*libc.TLS, int32, uintptr, uintptr, Va_list) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1520)) = Xsqlite3_vsnprintf
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1528)) = Xsqlite3_wal_checkpoint_v2
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1536)) = Xsqlite3_auto_extension
+ *(*func(*libc.TLS, uintptr, int32, uintptr, Sqlite3_uint64, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1544)) = Xsqlite3_bind_blob64
+ *(*func(*libc.TLS, uintptr, int32, uintptr, Sqlite3_uint64, uintptr, uint8) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1552)) = Xsqlite3_bind_text64
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1560)) = Xsqlite3_cancel_auto_extension
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1568)) = Xsqlite3_load_extension
+ *(*func(*libc.TLS, Sqlite3_uint64) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1576)) = Xsqlite3_malloc64
+ *(*func(*libc.TLS, uintptr) Sqlite3_uint64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1584)) = Xsqlite3_msize
+ *(*func(*libc.TLS, uintptr, Sqlite3_uint64) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1592)) = Xsqlite3_realloc64
+ *(*func(*libc.TLS))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1600)) = Xsqlite3_reset_auto_extension
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_uint64, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1608)) = Xsqlite3_result_blob64
+ *(*func(*libc.TLS, uintptr, uintptr, Sqlite3_uint64, uintptr, uint8))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1616)) = Xsqlite3_result_text64
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1624)) = Xsqlite3_strglob
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1632)) = *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*libc.TLS, uintptr) uintptr
+ }{Xsqlite3_value_dup}))
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1640)) = Xsqlite3_value_free
+ *(*func(*libc.TLS, uintptr, U64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1648)) = Xsqlite3_result_zeroblob64
+ *(*func(*libc.TLS, uintptr, int32, Sqlite3_uint64) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1656)) = Xsqlite3_bind_zeroblob64
+ *(*func(*libc.TLS, uintptr) uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1664)) = Xsqlite3_value_subtype
+ *(*func(*libc.TLS, uintptr, uint32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1672)) = Xsqlite3_result_subtype
+ *(*func(*libc.TLS, int32, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1680)) = Xsqlite3_status64
+ *(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1688)) = Xsqlite3_strlike
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1696)) = Xsqlite3_db_cacheflush
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1704)) = Xsqlite3_system_errno
+ *(*func(*libc.TLS, uintptr, uint32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1712)) = Xsqlite3_trace_v2
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1720)) = Xsqlite3_expanded_sql
+ *(*func(*libc.TLS, uintptr, Sqlite3_int64))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1728)) = Xsqlite3_set_last_insert_rowid
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uint32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1736)) = Xsqlite3_prepare_v3
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uint32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1744)) = Xsqlite3_prepare16_v3
+ *(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1752)) = Xsqlite3_bind_pointer
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1760)) = Xsqlite3_result_pointer
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1768)) = Xsqlite3_value_pointer
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1776)) = Xsqlite3_vtab_nochange
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1784)) = Xsqlite3_value_nochange
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1792)) = Xsqlite3_vtab_collation
+ *(*func(*libc.TLS) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1800)) = Xsqlite3_keyword_count
+ *(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1808)) = Xsqlite3_keyword_name
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1816)) = Xsqlite3_keyword_check
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1824)) = Xsqlite3_str_new
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1832)) = Xsqlite3_str_finish
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1840)) = Xsqlite3_str_appendf
+ *(*func(*libc.TLS, uintptr, uintptr, Va_list))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1848)) = Xsqlite3_str_vappendf
+ *(*func(*libc.TLS, uintptr, uintptr, int32))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1856)) = Xsqlite3_str_append
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1864)) = Xsqlite3_str_appendall
+ *(*func(*libc.TLS, uintptr, int32, int8))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1872)) = Xsqlite3_str_appendchar
+ *(*func(*libc.TLS, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1880)) = Xsqlite3_str_reset
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1888)) = Xsqlite3_str_errcode
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1896)) = Xsqlite3_str_length
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1904)) = Xsqlite3_str_value
+ *(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1912)) = Xsqlite3_create_window_function
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1928)) = Xsqlite3_stmt_isexplain
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1936)) = Xsqlite3_value_frombind
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1944)) = Xsqlite3_drop_modules
+ *(*func(*libc.TLS, Sqlite3_int64) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1952)) = Xsqlite3_hard_heap_limit64
+ *(*func(*libc.TLS, Sqlite3_filename, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1960)) = Xsqlite3_uri_key
+ *(*func(*libc.TLS, Sqlite3_filename) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1968)) = Xsqlite3_filename_database
+ *(*func(*libc.TLS, Sqlite3_filename) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1976)) = Xsqlite3_filename_journal
+ *(*func(*libc.TLS, Sqlite3_filename) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1984)) = Xsqlite3_filename_wal
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) Sqlite3_filename)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 1992)) = Xsqlite3_create_filename
+ *(*func(*libc.TLS, Sqlite3_filename))(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2000)) = Xsqlite3_free_filename
+ *(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2008)) = Xsqlite3_database_file_object
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2016)) = Xsqlite3_txn_state
+ *(*func(*libc.TLS, uintptr) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2024)) = Xsqlite3_changes64
+ *(*func(*libc.TLS, uintptr) Sqlite3_int64)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2032)) = Xsqlite3_total_changes64
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2040)) = Xsqlite3_autovacuum_pages
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2048)) = Xsqlite3_error_offset
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2056)) = Xsqlite3_vtab_rhs_value
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2064)) = Xsqlite3_vtab_distinct
+ *(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2072)) = Xsqlite3_vtab_in
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2080)) = Xsqlite3_vtab_in_first
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2088)) = Xsqlite3_vtab_in_next
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, Sqlite3_int64, Sqlite3_int64, uint32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2096)) = Xsqlite3_deserialize
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, uint32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2104)) = Xsqlite3_serialize
+ *(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2112)) = Xsqlite3_db_name
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2120)) = Xsqlite3_value_encoding
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3Apis)) + 2128)) = Xsqlite3_is_interrupted
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 0)) = Xsqlite3Fts5Init
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 8)) = Xsqlite3RtreeInit
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 16)) = sqlite3TestExtInit
+ *(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sqlite3BuiltinExtensions)) + 24)) = Xsqlite3JsonTableFunctions
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statGetFuncdef)) + 24)) = statGet
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statInitFuncdef)) + 24)) = statInit
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&statPushFuncdef)) + 24)) = statPush
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 40)) = rbuVfsOpen
+ *(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 48)) = rbuVfsDelete
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 56)) = rbuVfsAccess
+ *(*func(*libc.TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 64)) = rbuVfsFullPathname
+ *(*func(*libc.TLS, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 72)) = rbuVfsDlOpen
+ *(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 80)) = rbuVfsDlError
+ *(*func(*libc.TLS, uintptr, uintptr, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 88)) = rbuVfsDlSym
+ *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 96)) = rbuVfsDlClose
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 104)) = rbuVfsRandomness
+ *(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 112)) = rbuVfsSleep
+ *(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 120)) = rbuVfsCurrentTime
+ *(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&vfs_template)) + 128)) = rbuVfsGetLastError
+}
+
+var ts1 = "3.41.0\x00ATOMIC_INTRINSICS=0\x00COMPILER=clang-14.0.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00ENABLE_COLUMN_METADATA\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=1073741823\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00BINARY\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00local time unavailable\x00second\x00minute\x00hour\x00\x00\x00day\x00\x00\x00\x00month\x00\x00year\x00\x00\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x00%02d\x00%06.3f\x00%03d\x00%.16g\x00%lld\x00%04d\x00date\x00time\x00datetime\x00strftime\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x000123456789ABCDEF0123456789abcdef\x00-x0\x00X0\x00%\x00NaN\x00Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00thstndrd\x00922337203685477580\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00S\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00nfs\x00hfs\x00ufs\x00afpfs\x00smbfs\x00webdav\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00msdos\x00exfat\x00SQLITE_FORCE_PROXY_LOCKING\x00:auto:\x00fsync\x00/dev/urandom\x00sqliteplocks\x00/\x00dummy\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00break\x00path error (len %d)\x00read error (len %d)\x00create failed (%d)\x00write failed (%d)\x00rename failed (%d)\x00broke stale lock on %s\n\x00failed to break stale lock on %s, %s\n\x00-conch\x00.lock\x00:auto: (not held)\x00unix\x00unix-none\x00unix-dotfile\x00unix-posix\x00unix-flock\x00unix-afp\x00unix-nfs\x00unix-proxy\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00SQLite format 3\x00:memory:\x00@ \x00\n\x00invalid page number %d\x002nd reference to page %d\x00Failed to read ptrmap key=%d\x00Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)\x00failed to get page %d\x00freelist leaf count too big on page %d\x00%s is %d but should be %d\x00size\x00overflow list length\x00Page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00On tree page %u cell %d: \x00On page %u at right child: \x00Offset %d out of range %d..%d\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %d bytes reported as %d on page %u\x00Main freelist: \x00max rootpage (%d) disagrees with header (%d)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %d is never used\x00Pointer map page %d is referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00B\x00,%s%s%s\x00N.\x00)\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00?\x008\x0016LE\x0016BE\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00cannot change %s wal mode from within a transaction\x00into\x00out of\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00cannot open value of type %s\x00null\x00real\x00integer\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00true\x00false\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00IN(...) element has %d term%s - expected %d\x00s\x000\x00too many arguments on function %T\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00%sLIST SUBQUERY %d\x00CORRELATED \x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00B\x00C\x00D\x00E\x00F\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00cannot %s %s \"%s\"\x00drop column from\x00rename columns of\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00error in %s %s%s%s: %s\x00 \x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00cannot drop %s column: \"%s\"\x00PRIMARY KEY\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00sqlite_returning\x00cannot use RETURNING in a trigger\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00unsupported use of NULLS %s\x00FIRST\x00LAST\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00CREATE%s INDEX %.*s\x00 UNIQUE\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00a JOIN clause is required before %s\x00ON\x00USING\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00dylib\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_proxy_file\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00onoffalseyestruextrafull\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00w\x00a\x00sissii\x00utf8\x00utf16le\x00utf16be\x00-%T\x00fast\x00not a writable directory\x00failed to set lock proxy file\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00rename\x00drop column\x00add column\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00naturaleftouterightfullinnercross\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00USE TEMP B-TREE FOR %sORDER BY\x00RIGHT PART OF \x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00SCAN %s%s%s\x00 USING COVERING INDEX \x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00trigger %T already exists\x00cannot create trigger on system table\x00cannot create %s trigger on view: %S\x00BEFORE\x00AFTER\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00%s RETURNING is not available on virtual tables\x00DELETE\x00UPDATE\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00<expr>\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00%s %S\x00SEARCH\x00SCAN\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00row_number\x00dense_rank\x00rank\x00percent_rank\x00cume_dist\x00ntile\x00last_value\x00nth_value\x00first_value\x00lead\x00lag\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00%s clause should come after %s not before\x00ORDER BY\x00LIMIT\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00mode\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00shared\x00private\x00ro\x00rw\x00rwc\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00[0]\x00JSON path error near '%q'\x00json_%s() needs an odd number of arguments\x00$[\x00$.\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00.%.*s\x00[%d]\x00$\x00json\x00json_array\x00json_array_length\x00json_extract\x00->\x00->>\x00json_insert\x00json_object\x00json_patch\x00json_quote\x00json_remove\x00json_replace\x00json_set\x00json_type\x00json_valid\x00json_group_array\x00json_group_object\x00json_each\x00json_tree\x00%s_node\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00);\x00,%.*s REAL\x00,%.*s INT\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00Mapping (%lld -> %lld) missing from %s table\x00%_rowid\x00%_parent\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00END\x00wrong number of arguments to function rtreecheck()\x00[\x00[%!g,%!g],\x00[%!g,%!g]]\x00<polyline points=\x00%c%g,%g\x00 %g,%g'\x00 %s\x00></polyline>\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00table %q %s rbu_rowid column\x00may not have\x00requires\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00 NOT NULL\x00%z, %z\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00 WITHOUT ROWID\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00AND\x00WHERE\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00, _rowid_\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00, 0 AS rbu_rowid\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x000 AS \x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00file:%s-vactmp?rbu_memory=1%s%s\x00&\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00database modified during rbu %s\x00vacuum\x00update\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00SELECT * FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00SELECT * FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00SELECT tbl, ?2, stat FROM %Q.sqlite_stat1 WHERE tbl IS ?1 AND idx IS (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00SELECT * FROM \x00 WHERE \x00 IS ?\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00unrecognized option: \"%.*s\"\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00fts5: %s queries are not supported (detail!=full)\x00phrase\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00DESC\x00ASC\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00cannot %s contentless fts5 table: %s\x00DELETE from\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2023-02-21 18:09:37 05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d\x00config\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002023-02-21 18:09:37 05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt b/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c690091c8a
--- /dev/null
+++ b/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pgwire)
+target_link_libraries(pgwire PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-pgproxy
+ ydb-core-local_pgwire
+ ydb-core-protos
+ api-grpc
+ cpp-client-ydb_driver
+ cpp-client-draft
+ yql-parser-pg_wrapper
+ udf-service-exception_policy
+)
+target_link_options(pgwire PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(pgwire PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.cpp
+)
+target_allocator(pgwire
+ system_allocator
+)
+vcs_info(pgwire)
diff --git a/ydb/apps/pgwire/CMakeLists.txt b/ydb/apps/pgwire/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/apps/pgwire/CMakeLists.txt
+++ b/ydb/apps/pgwire/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/apps/ydb/CMakeLists.darwin-arm64.txt b/ydb/apps/ydb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4cc7165a1a
--- /dev/null
+++ b/ydb/apps/ydb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(commands)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(ydb)
+target_link_libraries(ydb PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ commands
+ library-cpp-resource
+)
+target_link_options(ydb PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/main.cpp
+ ${CMAKE_BINARY_DIR}/ydb/apps/ydb/6cd42c8765176f399b20eb2533f20a94.cpp
+)
+resources(ydb
+ ${CMAKE_BINARY_DIR}/ydb/apps/ydb/6cd42c8765176f399b20eb2533f20a94.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/version.txt
+ KEYS
+ version.txt
+)
+target_allocator(ydb
+ system_allocator
+)
+vcs_info(ydb)
diff --git a/ydb/apps/ydb/CMakeLists.txt b/ydb/apps/ydb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/apps/ydb/CMakeLists.txt
+++ b/ydb/apps/ydb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/apps/ydb/commands/CMakeLists.darwin-arm64.txt b/ydb/apps/ydb/commands/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e33921e39d
--- /dev/null
+++ b/ydb/apps/ydb/commands/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(commands)
+target_link_libraries(commands PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ clicommands
+)
+target_sources(commands PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/commands/ydb_cloud_root.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/commands/ydb_update.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/commands/ydb_version.cpp
+)
diff --git a/ydb/apps/ydb/commands/CMakeLists.txt b/ydb/apps/ydb/commands/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/apps/ydb/commands/CMakeLists.txt
+++ b/ydb/apps/ydb/commands/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt b/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4516b5c7c8
--- /dev/null
+++ b/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydbd)
+target_compile_options(ydbd PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydbd PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ run
+ ydb-core-protos
+ ydb-core-security
+ core-ymq-actor
+ core-ymq-base
+ library-folder_service-mock
+ ydb-library-keys
+ ydb-library-pdisk_io
+ ydb-library-security
+ yql-parser-pg_wrapper
+ yql-sql-pg
+ clickhouse_client_udf
+ compress_udf
+ datetime_udf
+ datetime2_udf
+ digest_udf
+ histogram_udf
+ hyperloglog_udf
+ ip_udf
+ json_udf
+ json2_udf
+ math_udf
+ pire_udf
+ re2_udf
+ set_udf
+ stat_udf
+ string_udf
+ top_udf
+ topfreq_udf
+ unicode_udf
+ url_udf
+ yson2_udf
+ dsv_udf
+ client-ydb_persqueue_public-codecs
+)
+target_link_options(ydbd PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydbd PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp
+)
+target_allocator(ydbd
+ cpp-lfalloc-yt
+)
+vcs_info(ydbd)
diff --git a/ydb/apps/ydbd/CMakeLists.txt b/ydb/apps/ydbd/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/apps/ydbd/CMakeLists.txt
+++ b/ydb/apps/ydbd/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt b/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e39f872b8d
--- /dev/null
+++ b/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,51 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-actorlib_impl)
+target_compile_options(ydb-core-actorlib_impl PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-actorlib_impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-dnscachelib
+ cpp-actors-protos
+ cpp-containers-stack_vector
+ cpp-digest-crc32c
+ cpp-html-pcdata
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ cpp-messagebus-monitoring
+ cpp-monlib-dynamic_counters
+ service-pages-resources
+ service-pages-tablesorter
+ library-cpp-packedtypes
+ library-cpp-sliding_window
+ ydb-core-base
+ version
+ ydb-core-mon
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ ydb-core-util
+)
+target_sources(ydb-core-actorlib_impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/melancholic_gopher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/node_identifier.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.cpp
+)
diff --git a/ydb/core/actorlib_impl/CMakeLists.txt b/ydb/core/actorlib_impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/actorlib_impl/CMakeLists.txt
+++ b/ydb/core/actorlib_impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b2f641a384
--- /dev/null
+++ b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-actorlib_impl-ut)
+target_compile_options(ydb-core-actorlib_impl-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-actorlib_impl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl
+)
+target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-actorlib_impl
+ cpp-actors-core
+ cpp-actors-interconnect
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-testlib-actors
+ testlib-basics-default
+)
+target_link_options(ydb-core-actorlib_impl-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-actorlib_impl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_bootstrapped_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/test_interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/test_protocols_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-actorlib_impl-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-actorlib_impl-ut
+ TEST_TARGET
+ ydb-core-actorlib_impl-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-actorlib_impl-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-actorlib_impl-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-actorlib_impl-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-actorlib_impl-ut
+ system_allocator
+)
+vcs_info(ydb-core-actorlib_impl-ut)
diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.txt b/ydb/core/actorlib_impl/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/actorlib_impl/ut/CMakeLists.txt
+++ b/ydb/core/actorlib_impl/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/audit/CMakeLists.darwin-arm64.txt b/ydb/core/audit/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d1f26857d
--- /dev/null
+++ b/ydb/core/audit/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-audit)
+target_link_libraries(ydb-core-audit PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-json
+ library-cpp-logger
+ ydb-core-base
+ library-cpp-resource
+)
+target_sources(ydb-core-audit PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp
+)
+
+add_global_library_for(ydb-core-audit.global ydb-core-audit)
+target_link_libraries(ydb-core-audit.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-json
+ library-cpp-logger
+ ydb-core-base
+ library-cpp-resource
+)
+target_sources(ydb-core-audit.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/audit/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+)
+resources(ydb-core-audit.global
+ ${CMAKE_BINARY_DIR}/ydb/core/audit/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/kqp_default_settings.txt
+ KEYS
+ kqp_default_settings.txt
+)
diff --git a/ydb/core/audit/CMakeLists.txt b/ydb/core/audit/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/audit/CMakeLists.txt
+++ b/ydb/core/audit/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/base/CMakeLists.darwin-arm64.txt b/ydb/core/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..680bf15851
--- /dev/null
+++ b/ydb/core/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(services)
+add_subdirectory(ut)
+add_subdirectory(ut_board_subscriber)
+
+add_library(ydb-core-base)
+target_link_libraries(ydb-core-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-protos
+ cpp-actors-wilson
+ cpp-deprecated-enum_codegen
+ library-cpp-logger
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ library-cpp-random_provider
+ library-cpp-time_provider
+ core-base-services
+ ydb-core-debug
+ ydb-core-erasure
+ ydb-core-protos
+ core-protos-out
+ ydb-core-scheme
+ ydb-library-aclib
+ ydb-library-login
+ ydb-library-pdisk_io
+ library-pretty_types_print-protobuf
+ ydb-library-ydb_issue
+ api-protos-out
+ library-yql-minikql
+ cpp-deprecated-atomic
+ library-cpp-dwarf_backtrace
+)
+target_sources(ydb-core-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/board_lookup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/board_publish.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/board_replica.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/path.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/services_assert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_event_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_replica.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_replica_probe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_warden.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/table_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_killer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_status_checker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype.cpp
+)
diff --git a/ydb/core/base/CMakeLists.txt b/ydb/core/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/base/CMakeLists.txt
+++ b/ydb/core/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/base/services/CMakeLists.darwin-arm64.txt b/ydb/core/base/services/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ae59a25de
--- /dev/null
+++ b/ydb/core/base/services/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-base-services INTERFACE)
+target_link_libraries(core-base-services INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ cpp-actors-interconnect
+ cpp-actors-helpers
+)
diff --git a/ydb/core/base/services/CMakeLists.txt b/ydb/core/base/services/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/base/services/CMakeLists.txt
+++ b/ydb/core/base/services/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/base/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0846008a4e
--- /dev/null
+++ b/ydb/core/base/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-base-ut)
+target_include_directories(ydb-core-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/base
+)
+target_link_libraries(ydb-core-base-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ library-cpp-getopt
+ library-cpp-svnversion
+)
+target_link_options(ydb-core-base-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/ut/path_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-base-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-base-ut
+ TEST_TARGET
+ ydb-core-base-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-base-ut
+ system_allocator
+)
+vcs_info(ydb-core-base-ut)
diff --git a/ydb/core/base/ut/CMakeLists.txt b/ydb/core/base/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/base/ut/CMakeLists.txt
+++ b/ydb/core/base/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..35f4c31460
--- /dev/null
+++ b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-base-ut_board_subscriber)
+target_compile_options(ydb-core-base-ut_board_subscriber PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-base-ut_board_subscriber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/base
+)
+target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ cpp-actors-interconnect
+ cpp-actors-core
+ cpp-testing-unittest
+ core-testlib-basics
+ testlib-basics-default
+)
+target_link_options(ydb-core-base-ut_board_subscriber PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-base-ut_board_subscriber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-base-ut_board_subscriber
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-base-ut_board_subscriber
+ TEST_TARGET
+ ydb-core-base-ut_board_subscriber
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut_board_subscriber
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut_board_subscriber
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-base-ut_board_subscriber
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-base-ut_board_subscriber
+ system_allocator
+)
+vcs_info(ydb-core-base-ut_board_subscriber)
diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/base/ut_board_subscriber/CMakeLists.txt
+++ b/ydb/core/base/ut_board_subscriber/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..601a05c08f
--- /dev/null
+++ b/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(agent)
+add_subdirectory(ut)
+
+add_library(ydb-core-blob_depot)
+target_link_libraries(ydb-core-blob_depot PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ blobstorage-vdisk-common
+ ydb-core-tablet_flat
+ ydb-core-protos
+)
+target_sources(ydb-core-blob_depot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_decommit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_load.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_trash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/given_id_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/group_metrics_exchange.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/op_apply_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/op_init_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/op_load.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/op_commit_blob_seq.cpp
+)
diff --git a/ydb/core/blob_depot/CMakeLists.txt b/ydb/core/blob_depot/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blob_depot/CMakeLists.txt
+++ b/ydb/core/blob_depot/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c18d69d6cf
--- /dev/null
+++ b/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-blob_depot-agent)
+target_link_libraries(core-blob_depot-agent PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ blobstorage-vdisk-common
+ ydb-core-blob_depot
+ ydb-core-protos
+)
+target_sources(core-blob_depot-agent PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/channel_kind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/comm.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/garbage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_put.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_block.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_discover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_collect_garbage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/storage_patch.cpp
+)
diff --git a/ydb/core/blob_depot/agent/CMakeLists.txt b/ydb/core/blob_depot/agent/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blob_depot/agent/CMakeLists.txt
+++ b/ydb/core/blob_depot/agent/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c74fa9a7d0
--- /dev/null
+++ b/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blob_depot-ut)
+target_include_directories(ydb-core-blob_depot-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot
+)
+target_link_libraries(ydb-core-blob_depot-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-blob_depot
+)
+target_link_options(ydb-core-blob_depot-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blob_depot-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/closed_interval_set_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/given_id_range_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blob_depot-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blob_depot-ut
+ TEST_TARGET
+ ydb-core-blob_depot-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blob_depot-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blob_depot-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blob_depot-ut
+ system_allocator
+)
+vcs_info(ydb-core-blob_depot-ut)
diff --git a/ydb/core/blob_depot/ut/CMakeLists.txt b/ydb/core/blob_depot/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blob_depot/ut/CMakeLists.txt
+++ b/ydb/core/blob_depot/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68b0f9d3f5
--- /dev/null
+++ b/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(backpressure)
+add_subdirectory(base)
+add_subdirectory(crypto)
+add_subdirectory(dsproxy)
+add_subdirectory(groupinfo)
+add_subdirectory(incrhuge)
+add_subdirectory(lwtrace_probes)
+add_subdirectory(nodewarden)
+add_subdirectory(other)
+add_subdirectory(pdisk)
+add_subdirectory(storagepoolmon)
+add_subdirectory(testing)
+add_subdirectory(ut_blobstorage)
+add_subdirectory(ut_group)
+add_subdirectory(ut_mirror3of4)
+add_subdirectory(ut_pdiskfit)
+add_subdirectory(ut_testshard)
+add_subdirectory(ut_vdisk)
+add_subdirectory(ut_vdisk2)
+add_subdirectory(vdisk)
+
+add_library(ydb-core-blobstorage INTERFACE)
+target_link_libraries(ydb-core-blobstorage INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-dsproxy
+ core-blobstorage-groupinfo
+ core-blobstorage-incrhuge
+ core-blobstorage-lwtrace_probes
+ core-blobstorage-nodewarden
+ core-blobstorage-other
+ core-blobstorage-pdisk
+ core-blobstorage-storagepoolmon
+ core-blobstorage-vdisk
+)
diff --git a/ydb/core/blobstorage/CMakeLists.txt b/ydb/core/blobstorage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/CMakeLists.txt
+++ b/ydb/core/blobstorage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..720dc8da9c
--- /dev/null
+++ b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(ut_client)
+
+add_library(core-blobstorage-backpressure)
+target_link_libraries(core-blobstorage-backpressure PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-actors-core
+ cpp-containers-intrusive_rb_tree
+ ydb-core-base
+ core-blobstorage-groupinfo
+ core-blobstorage-lwtrace_probes
+ blobstorage-vdisk-common
+ ydb-core-protos
+)
+target_sources(core-blobstorage-backpressure PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.cpp
+)
diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.txt b/ydb/core/blobstorage/backpressure/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/backpressure/CMakeLists.txt
+++ b/ydb/core/blobstorage/backpressure/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fb8a0c70c8
--- /dev/null
+++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-backpressure-ut)
+target_include_directories(ydb-core-blobstorage-backpressure-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure
+)
+target_link_libraries(ydb-core-blobstorage-backpressure-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-backpressure
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ blobstorage-dsproxy-mock
+)
+target_link_options(ydb-core-blobstorage-backpressure-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-backpressure-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-backpressure-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-backpressure-ut
+ TEST_TARGET
+ ydb-core-blobstorage-backpressure-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-backpressure-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-backpressure-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-backpressure-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-backpressure-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-backpressure-ut)
diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e8fec3fca
--- /dev/null
+++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-backpressure-ut_client)
+target_compile_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-blobstorage-backpressure-ut_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ actors-interconnect-mock
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ core-tx-scheme_board
+ udf-service-stub
+)
+target_link_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-backpressure-ut_client
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-backpressure-ut_client
+ TEST_TARGET
+ ydb-core-blobstorage-backpressure-ut_client
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-backpressure-ut_client
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-backpressure-ut_client
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blobstorage-backpressure-ut_client
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-backpressure-ut_client)
diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt
+++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..19ba179de3
--- /dev/null
+++ b/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-blobstorage-base)
+target_link_libraries(core-blobstorage-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-wilson
+ cpp-deprecated-atomic
+ library-cpp-lwtrace
+ ydb-core-protos
+)
+target_sources(core-blobstorage-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.cpp
+)
diff --git a/ydb/core/blobstorage/base/CMakeLists.txt b/ydb/core/blobstorage/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/base/CMakeLists.txt
+++ b/ydb/core/blobstorage/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e2ed31e398
--- /dev/null
+++ b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-base-ut)
+target_link_libraries(ydb-core-blobstorage-base-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-gtest
+ cpp-testing-gtest_main
+ core-blobstorage-base
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-erasure
+ ydb-core-protos
+)
+target_link_options(ydb-core-blobstorage-base-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/bufferwithgaps_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr_ut.cpp
+)
+add_test(
+ NAME
+ ydb-core-blobstorage-base-ut
+ COMMAND
+ ydb-core-blobstorage-base-ut
+)
+set_property(
+ TEST
+ ydb-core-blobstorage-base-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_property(
+ TEST
+ ydb-core-blobstorage-base-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blobstorage-base-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-base-ut)
diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.txt b/ydb/core/blobstorage/base/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/base/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/base/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..de574ec255
--- /dev/null
+++ b/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-blobstorage-crypto)
+target_link_libraries(core-blobstorage-crypto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-t1ha
+ library-cpp-sse
+ cpp-actors-util
+)
+target_sources(core-blobstorage-crypto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/secured_block.cpp
+)
diff --git a/ydb/core/blobstorage/crypto/CMakeLists.txt b/ydb/core/blobstorage/crypto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/crypto/CMakeLists.txt
+++ b/ydb/core/blobstorage/crypto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..23ddb219a9
--- /dev/null
+++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-crypto-ut)
+target_include_directories(ydb-core-blobstorage-crypto-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto
+)
+target_link_libraries(ydb-core-blobstorage-crypto-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-crypto
+)
+target_link_options(ydb-core-blobstorage-crypto-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-crypto-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-crypto-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-crypto-ut
+ TEST_TARGET
+ ydb-core-blobstorage-crypto-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-crypto-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-crypto-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blobstorage-crypto-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-crypto-ut)
diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/crypto/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cc7101fad7
--- /dev/null
+++ b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_ftol)
+
+add_library(core-blobstorage-dsproxy)
+target_link_libraries(core-blobstorage-dsproxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ monlib-dynamic_counters-percentile
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ core-blobstorage-storagepoolmon
+ blobstorage-vdisk-ingress
+ ydb-core-control
+ ydb-core-util
+)
+target_sources(core-blobstorage-dsproxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_stat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_assimilate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_block.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_collect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_indexrestoreget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_multicollect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_multiget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.cpp
+)
diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/dsproxy/CMakeLists.txt
+++ b/ydb/core/blobstorage/dsproxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..52990414c9
--- /dev/null
+++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-dsproxy-mock)
+target_link_libraries(blobstorage-dsproxy-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ blobstorage-vdisk-common
+)
+target_sources(blobstorage-dsproxy-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp
+)
diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt
+++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3f3cf032b7
--- /dev/null
+++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-dsproxy-ut)
+target_compile_options(ydb-core-blobstorage-dsproxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-blobstorage-dsproxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-dsproxy
+ core-testlib-default
+)
+target_link_options(ydb-core-blobstorage-dsproxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-dsproxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_quorum_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_counters_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-dsproxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-dsproxy-ut
+ PROPERTY
+ SPLIT_TYPE
+ MODULO
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-dsproxy-ut
+ TEST_TARGET
+ ydb-core-blobstorage-dsproxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-dsproxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-dsproxy-ut)
diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..65e4fa85c8
--- /dev/null
+++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-dsproxy-ut_fat)
+target_link_libraries(ydb-core-blobstorage-dsproxy-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-protos
+ cpp-actors-util
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-dsproxy
+ core-blobstorage-groupinfo
+ core-blobstorage-pdisk
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ core-testlib-default
+)
+target_link_options(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-dsproxy-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-dsproxy-ut_fat
+ TEST_TARGET
+ ydb-core-blobstorage-dsproxy-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_fat
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_fat
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-dsproxy-ut_fat
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-dsproxy-ut_fat)
diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt
+++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..732d50edbd
--- /dev/null
+++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-dsproxy-ut_ftol)
+target_compile_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-blobstorage-dsproxy-ut_ftol PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-dsproxy
+ blobstorage-ut_vdisk-lib
+ core-testlib-default
+)
+target_link_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ PROPERTY
+ SPLIT_FACTOR
+ 24
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ PROPERTY
+ SPLIT_TYPE
+ MODULO
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ TEST_TARGET
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-dsproxy-ut_ftol
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-dsproxy-ut_ftol
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-dsproxy-ut_ftol)
diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt
+++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..21ff4fac3c
--- /dev/null
+++ b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-blobstorage-groupinfo)
+target_link_libraries(core-blobstorage-groupinfo PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-digest-crc32c
+ library-cpp-pop_count
+ ydb-core-base
+ core-base-services
+ core-blobstorage-crypto
+ blobstorage-vdisk-ingress
+ ydb-core-protos
+)
+target_sources(core-blobstorage-groupinfo PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp
+)
diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/groupinfo/CMakeLists.txt
+++ b/ydb/core/blobstorage/groupinfo/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1335e87fe
--- /dev/null
+++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-groupinfo-ut)
+target_include_directories(ydb-core-blobstorage-groupinfo-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo
+)
+target_link_libraries(ydb-core-blobstorage-groupinfo-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-groupinfo
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ core-blobstorage-base
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-groupinfo-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-groupinfo-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-groupinfo-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-groupinfo-ut
+ TEST_TARGET
+ ydb-core-blobstorage-groupinfo-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-groupinfo-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-groupinfo-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-groupinfo-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-groupinfo-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-groupinfo-ut)
diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..25ce270b59
--- /dev/null
+++ b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-blobstorage-incrhuge)
+target_link_libraries(core-blobstorage-incrhuge PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(core-blobstorage-incrhuge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.cpp
+)
diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/incrhuge/CMakeLists.txt
+++ b/ydb/core/blobstorage/incrhuge/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3a4b9214df
--- /dev/null
+++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-incrhuge-ut)
+target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-actors-protos
+ ydb-core-blobstorage
+ core-blobstorage-incrhuge
+ core-blobstorage-pdisk
+)
+target_link_options(ydb-core-blobstorage-incrhuge-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-incrhuge-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_id_dict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_log_merger_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-incrhuge-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-incrhuge-ut
+ TEST_TARGET
+ ydb-core-blobstorage-incrhuge-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-incrhuge-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-incrhuge-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-incrhuge-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-incrhuge-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-incrhuge-ut)
diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0594957b5e
--- /dev/null
+++ b/ydb/core/blobstorage/lwtrace_probes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-blobstorage-lwtrace_probes)
+target_link_libraries(core-blobstorage-lwtrace_probes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-lwtrace-protos
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(core-blobstorage-lwtrace_probes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/lwtrace_probes/blobstorage_probes.cpp
+)
diff --git a/ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt b/ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt
+++ b/ydb/core/blobstorage/lwtrace_probes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..64591dd970
--- /dev/null
+++ b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(ut_sequence)
+
+add_library(core-blobstorage-nodewarden)
+target_link_libraries(core-blobstorage-nodewarden PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ cpp-openssl-crypto
+ ydb-core-base
+ core-blob_depot-agent
+ core-blobstorage-crypto
+ core-blobstorage-groupinfo
+ core-blobstorage-pdisk
+ ydb-core-control
+ ydb-library-pdisk_io
+)
+target_sources(core-blobstorage-nodewarden PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_fsm.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_persistent_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_scatter_gather.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_group_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_pdisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_pipe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_resource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_scrub.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_stat_aggr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_vdisk.cpp
+)
diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/nodewarden/CMakeLists.txt
+++ b/ydb/core/blobstorage/nodewarden/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04c755901c
--- /dev/null
+++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-nodewarden-ut)
+target_compile_options(ydb-core-blobstorage-nodewarden-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-blobstorage-nodewarden-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden
+)
+target_link_libraries(ydb-core-blobstorage-nodewarden-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-nodewarden
+ core-testlib-default
+)
+target_link_options(ydb-core-blobstorage-nodewarden-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-nodewarden-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/bind_queue_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-nodewarden-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-nodewarden-ut
+ TEST_TARGET
+ ydb-core-blobstorage-nodewarden-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-nodewarden-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-nodewarden-ut)
diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4675693f0e
--- /dev/null
+++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-nodewarden-ut_sequence)
+target_compile_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-blobstorage-nodewarden-ut_sequence PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-nodewarden
+ core-blobstorage-pdisk
+ core-testlib-default
+)
+target_link_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ TEST_TARGET
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-nodewarden-ut_sequence
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-nodewarden-ut_sequence
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-nodewarden-ut_sequence)
diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt
+++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c4b1102523
--- /dev/null
+++ b/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-blobstorage-other)
+target_link_libraries(core-blobstorage-other PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-writer
+ monlib-service-pages
+ cpp-threading-future
+ ydb-core-base
+ core-blobstorage-base
+)
+target_sources(core-blobstorage-other PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp
+)
diff --git a/ydb/core/blobstorage/other/CMakeLists.txt b/ydb/core/blobstorage/other/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/other/CMakeLists.txt
+++ b/ydb/core/blobstorage/other/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/pdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/pdisk/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e624df7a7
--- /dev/null
+++ b/ydb/core/blobstorage/pdisk/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mock)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-blobstorage-pdisk)
+target_link_libraries(core-blobstorage-pdisk PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-lz4
+ cpp-actors-core
+ cpp-actors-protos
+ cpp-actors-util
+ cpp-actors-wilson
+ cpp-containers-stack_vector
+ cpp-deprecated-atomic
+ library-cpp-lwtrace
+ monlib-dynamic_counters-percentile
+ monlib-service-pages
+ ydb-core-base
+ core-base-services
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-groupinfo
+ core-blobstorage-lwtrace_probes
+ ydb-core-control
+ version
+ ydb-core-protos
+ ydb-core-util
+ ydb-library-pdisk_io
+ ydb-library-schlab
+ library-schlab-mon
+ library-schlab-schine
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-blobstorage-pdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_async.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_completion_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_delayed_cost_loop.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_driveestimator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_drivemodel_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_http.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_internal_interface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_log_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_logreader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_syslogreader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_sectorrestorator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_tools.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_util_atomicblockcounter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_util_flightcontrol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_util_signal_event.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/drivedata_serializer.cpp
+)
+generate_enum_serilization(core-blobstorage-pdisk
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_state.h
+ INCLUDE_HEADERS
+ ydb/core/blobstorage/pdisk/blobstorage_pdisk_state.h
+)
diff --git a/ydb/core/blobstorage/pdisk/CMakeLists.txt b/ydb/core/blobstorage/pdisk/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/pdisk/CMakeLists.txt
+++ b/ydb/core/blobstorage/pdisk/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54958ea9c9
--- /dev/null
+++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-pdisk-mock)
+target_link_libraries(blobstorage-pdisk-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ core-blobstorage-pdisk
+)
+target_sources(blobstorage-pdisk-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp
+)
diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.txt
+++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fdd6b5c2d5
--- /dev/null
+++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-pdisk-ut)
+target_include_directories(ydb-core-blobstorage-pdisk-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk
+)
+target_link_libraries(ydb-core-blobstorage-pdisk-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-blobstorage-pdisk
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-blobstorage-lwtrace_probes
+ core-testlib-actors
+)
+target_link_options(ydb-core-blobstorage-pdisk-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-pdisk-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_crypto_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_log_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_util_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_env.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_races.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_actions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_run.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_sectormap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_restore_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_yard.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-pdisk-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-pdisk-ut
+ TEST_TARGET
+ ydb-core-blobstorage-pdisk-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-pdisk-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-pdisk-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-pdisk-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-pdisk-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-pdisk-ut)
diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d5c1a02d8f
--- /dev/null
+++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-blobstorage-storagepoolmon INTERFACE)
+target_link_libraries(core-blobstorage-storagepoolmon INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-dynamic_counters
+ ydb-core-base
+ core-blobstorage-base
+)
diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.txt
+++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..16be7a9ac1
--- /dev/null
+++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-storagepoolmon-ut)
+target_link_libraries(ydb-core-blobstorage-storagepoolmon-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-blobstorage-storagepoolmon
+ core-testlib-default
+ core-testlib-actors
+ core-testlib-basics
+)
+target_link_options(ydb-core-blobstorage-storagepoolmon-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-storagepoolmon-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/ut/storagepoolmon_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-storagepoolmon-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-storagepoolmon-ut
+ TEST_TARGET
+ ydb-core-blobstorage-storagepoolmon-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-storagepoolmon-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-storagepoolmon-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-storagepoolmon-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-storagepoolmon-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-storagepoolmon-ut)
diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..65ce705be6
--- /dev/null
+++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-testing-group_overseer)
+target_link_libraries(blobstorage-testing-group_overseer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ contrib-libs-t1ha
+)
+target_sources(blobstorage-testing-group_overseer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp
+)
diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt
+++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..207b619e9b
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,108 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(ut_blob_depot)
+add_subdirectory(ut_blob_depot_fat)
+add_subdirectory(ut_donor)
+add_subdirectory(ut_group_reconfiguration)
+add_subdirectory(ut_osiris)
+add_subdirectory(ut_read_only_vdisk)
+add_subdirectory(ut_replication)
+add_subdirectory(ut_scrub)
+add_subdirectory(ut_vdisk_restart)
+
+add_executable(ydb-core-blobstorage-ut_blobstorage)
+target_link_libraries(ydb-core-blobstorage-ut_blobstorage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ core-blobstorage-dsproxy
+ core-blobstorage-groupinfo
+ blobstorage-ut_blobstorage-lib
+ blobstorage-vdisk-common
+ blobstorage-vdisk-scrub
+)
+target_link_options(ydb-core-blobstorage-ut_blobstorage PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/assimilation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/block_race.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/counting_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/decommit_3dc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/defrag.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/encryption.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/extra_block_checks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/gc_quorum_3dc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/group_reconfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/sanitize_groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/snapshots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/space_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/sync.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/discover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/multiget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/patch.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_blobstorage
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_blobstorage
+ TEST_TARGET
+ ydb-core-blobstorage-ut_blobstorage
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_blobstorage
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_blobstorage)
diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2eaad09f83
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-ut_blobstorage-lib)
+target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-md5
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-blob_depot
+ core-blobstorage-backpressure
+ blobstorage-dsproxy-mock
+ core-blobstorage-nodewarden
+ core-blobstorage-pdisk
+ blobstorage-pdisk-mock
+ blobstorage-vdisk-common
+ ydb-core-mind
+ core-mind-bscontroller
+ core-mind-hive
+ core-sys_view-service
+ core-tx-scheme_board
+ core-tx-tx_allocator
+ core-tx-mediator
+ core-tx-coordinator
+ ydb-core-util
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_sources(blobstorage-ut_blobstorage-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp
+)
diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..de835e3fa1
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot)
+target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ TEST_TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83dad0658d
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(blobstorage-ut_blobstorage-ut_blob_depot_fat)
+target_include_directories(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(blobstorage-ut_blobstorage-ut_blob_depot_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_fat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp
+)
+set_property(
+ TARGET
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ TEST_TARGET
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_blob_depot_fat
+ PROPERTY
+ TIMEOUT
+ 3600
+)
+target_allocator(blobstorage-ut_blobstorage-ut_blob_depot_fat
+ system_allocator
+)
+vcs_info(blobstorage-ut_blobstorage-ut_blob_depot_fat)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..029d60eec3
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_blobstorage-ut_donor)
+target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_donor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/donor.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ TEST_TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_donor
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_donor
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_donor)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..554b2bcd1f
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ut_group_reconfiguration)
+target_include_directories(ut_group_reconfiguration PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ut_group_reconfiguration PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(ut_group_reconfiguration PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ut_group_reconfiguration PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/race.cpp
+)
+set_property(
+ TARGET
+ ut_group_reconfiguration
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ut_group_reconfiguration
+ TEST_TARGET
+ ut_group_reconfiguration
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ut_group_reconfiguration
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ut_group_reconfiguration
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ut_group_reconfiguration
+ PROPERTY
+ TIMEOUT
+ 3600
+)
+target_allocator(ut_group_reconfiguration
+ system_allocator
+)
+vcs_info(ut_group_reconfiguration)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..018d2d0daf
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_blobstorage-ut_osiris)
+target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_osiris PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/osiris.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ TEST_TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ PROPERTY
+ TIMEOUT
+ 3600
+)
+target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_osiris
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_osiris)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..051c7b6a05
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ut_blobstorage-ut_read_only_vdisk)
+target_include_directories(ut_blobstorage-ut_read_only_vdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ut_blobstorage-ut_read_only_vdisk PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+ ydb-core-load_test
+)
+target_link_options(ut_blobstorage-ut_read_only_vdisk PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ut_blobstorage-ut_read_only_vdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/read_only_vdisk.cpp
+)
+set_property(
+ TARGET
+ ut_blobstorage-ut_read_only_vdisk
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ut_blobstorage-ut_read_only_vdisk
+ TEST_TARGET
+ ut_blobstorage-ut_read_only_vdisk
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ut_blobstorage-ut_read_only_vdisk
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ut_blobstorage-ut_read_only_vdisk
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ut_blobstorage-ut_read_only_vdisk
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ut_blobstorage-ut_read_only_vdisk
+ system_allocator
+)
+vcs_info(ut_blobstorage-ut_read_only_vdisk)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..874e28d341
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(core-blobstorage-ut_blobstorage-ut_replication)
+target_include_directories(core-blobstorage-ut_blobstorage-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(core-blobstorage-ut_blobstorage-ut_replication PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(core-blobstorage-ut_blobstorage-ut_replication PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(core-blobstorage-ut_blobstorage-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/replication.cpp
+)
+set_property(
+ TARGET
+ core-blobstorage-ut_blobstorage-ut_replication
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ core-blobstorage-ut_blobstorage-ut_replication
+ TEST_TARGET
+ core-blobstorage-ut_blobstorage-ut_replication
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ core-blobstorage-ut_blobstorage-ut_replication
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ core-blobstorage-ut_blobstorage-ut_replication
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ core-blobstorage-ut_blobstorage-ut_replication
+ PROPERTY
+ TIMEOUT
+ 3600
+)
+target_allocator(core-blobstorage-ut_blobstorage-ut_replication
+ system_allocator
+)
+vcs_info(core-blobstorage-ut_blobstorage-ut_replication)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1e9a8ac9e
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_blobstorage-ut_scrub)
+target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_scrub PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ TEST_TARGET
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ PROPERTY
+ TIMEOUT
+ 3600
+)
+target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_scrub
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_scrub)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..36a04655d0
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(blobstorage-ut_blobstorage-ut_vdisk_restart)
+target_include_directories(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage
+)
+target_link_libraries(blobstorage-ut_blobstorage-ut_vdisk_restart PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-ut_blobstorage-lib
+)
+target_link_options(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/vdisk_restart.cpp
+)
+set_property(
+ TARGET
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ TEST_TARGET
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ blobstorage-ut_blobstorage-ut_vdisk_restart
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(blobstorage-ut_blobstorage-ut_vdisk_restart
+ system_allocator
+)
+vcs_info(blobstorage-ut_blobstorage-ut_vdisk_restart)
diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7b7b0305ef
--- /dev/null
+++ b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_group)
+target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ actors-interconnect-mock
+ cpp-testing-unittest
+ core-blobstorage-crypto
+ core-blobstorage-dsproxy
+ core-blobstorage-groupinfo
+ blobstorage-pdisk-mock
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ core-tx-scheme_board
+ ydb-core-util
+)
+target_link_options(ydb-core-blobstorage-ut_group PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_group PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_group/main.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_group
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_group
+ TEST_TARGET
+ ydb-core-blobstorage-ut_group
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_group
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_group
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_group
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_group
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_group)
diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.txt b/ydb/core/blobstorage/ut_group/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_group/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_group/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9820fee5f6
--- /dev/null
+++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_mirror3of4)
+target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ actors-interconnect-mock
+ cpp-testing-unittest
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-dsproxy
+ core-blobstorage-groupinfo
+ blobstorage-pdisk-mock
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ blobstorage-vdisk-repl
+ core-tx-scheme_board
+ ydb-core-util
+)
+target_link_options(ydb-core-blobstorage-ut_mirror3of4 PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_mirror3of4 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_mirror3of4/main.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_mirror3of4
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_mirror3of4
+ TEST_TARGET
+ ydb-core-blobstorage-ut_mirror3of4
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_mirror3of4
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_mirror3of4
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_mirror3of4
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_mirror3of4
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_mirror3of4)
diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ea6c677000
--- /dev/null
+++ b/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,9 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
diff --git a/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt b/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_pdiskfit/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3daf2d8ca5
--- /dev/null
+++ b/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-ut_pdiskfit-lib)
+target_link_libraries(blobstorage-ut_pdiskfit-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ ydb-core-base
+ core-blobstorage-pdisk
+ ydb-library-pdisk_io
+ cpp-deprecated-atomic
+)
+target_sources(blobstorage-ut_pdiskfit-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/lib/basic_test.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/lib/objectwithstate.cpp
+)
diff --git a/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.txt b/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_pdiskfit/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cb1989c3bb
--- /dev/null
+++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_testshard)
+target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ ydb-core-blob_depot
+ core-blobstorage-backpressure
+ blobstorage-dsproxy-mock
+ core-blobstorage-nodewarden
+ blobstorage-pdisk-mock
+ blobstorage-testing-group_overseer
+ blobstorage-vdisk-common
+ ydb-core-mind
+ core-mind-bscontroller
+ core-mind-hive
+ core-sys_view-service
+ ydb-core-test_tablet
+ core-tx-scheme_board
+ core-tx-tx_allocator
+ core-tx-mediator
+ core-tx-coordinator
+ ydb-core-util
+ udf-service-stub
+ yql-sql-pg_dummy
+ cpp-testing-unittest
+)
+target_link_options(ydb-core-blobstorage-ut_testshard PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_testshard PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_testshard/main.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_testshard
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_testshard
+ TEST_TARGET
+ ydb-core-blobstorage-ut_testshard
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_testshard
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_testshard
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_testshard
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_testshard
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_testshard)
diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_testshard/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d1d2100af
--- /dev/null
+++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+
+add_executable(ydb-core-blobstorage-ut_vdisk)
+target_compile_options(ydb-core-blobstorage-ut_vdisk PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-blobstorage-ut_vdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage
+)
+target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-blobstorage
+ cpp-actors-protos
+ library-cpp-codecs
+ ydb-core-base
+ core-blobstorage-groupinfo
+ blobstorage-ut_vdisk-lib
+ ydb-core-erasure
+ ydb-core-scheme
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-blobstorage-ut_vdisk PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/vdisk_test.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_vdisk
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_vdisk
+ TEST_TARGET
+ ydb-core-blobstorage-ut_vdisk
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_vdisk
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_vdisk)
diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68d858a578
--- /dev/null
+++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-ut_vdisk-lib)
+target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ cpp-http-io
+ cpp-openssl-io
+ cpp-string_utils-url
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-pdisk
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ blobstorage-vdisk-huge
+ vdisk-hulldb-base
+ blobstorage-vdisk-repl
+ blobstorage-vdisk-skeleton
+ blobstorage-vdisk-synclog
+ ydb-core-erasure
+ ydb-library-pdisk_io
+)
+target_sources(blobstorage-ut_vdisk-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.cpp
+)
diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1ddc6153fb
--- /dev/null
+++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-ut_vdisk2)
+target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-testing-unittest
+ core-blobstorage-backpressure
+ core-blobstorage-groupinfo
+ blobstorage-pdisk-mock
+ core-blobstorage-vdisk
+ blobstorage-vdisk-common
+ core-tx-scheme_board
+ udf-service-stub
+)
+target_link_options(ydb-core-blobstorage-ut_vdisk2 PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-ut_vdisk2
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-ut_vdisk2
+ TEST_TARGET
+ ydb-core-blobstorage-ut_vdisk2
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk2
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk2
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-ut_vdisk2
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-ut_vdisk2
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-ut_vdisk2)
diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt
+++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2632812048
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,49 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(anubis_osiris)
+add_subdirectory(common)
+add_subdirectory(defrag)
+add_subdirectory(handoff)
+add_subdirectory(huge)
+add_subdirectory(hulldb)
+add_subdirectory(hullop)
+add_subdirectory(ingress)
+add_subdirectory(localrecovery)
+add_subdirectory(protos)
+add_subdirectory(query)
+add_subdirectory(repl)
+add_subdirectory(scrub)
+add_subdirectory(skeleton)
+add_subdirectory(syncer)
+add_subdirectory(synclog)
+
+add_library(core-blobstorage-vdisk)
+target_link_libraries(core-blobstorage-vdisk PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ blobstorage-vdisk-anubis_osiris
+ blobstorage-vdisk-common
+ blobstorage-vdisk-defrag
+ blobstorage-vdisk-handoff
+ blobstorage-vdisk-huge
+ blobstorage-vdisk-hulldb
+ blobstorage-vdisk-hullop
+ blobstorage-vdisk-ingress
+ blobstorage-vdisk-localrecovery
+ blobstorage-vdisk-protos
+ blobstorage-vdisk-query
+ blobstorage-vdisk-repl
+ blobstorage-vdisk-scrub
+ blobstorage-vdisk-skeleton
+ blobstorage-vdisk-syncer
+ blobstorage-vdisk-synclog
+)
+target_sources(core-blobstorage-vdisk PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.txt b/ydb/core/blobstorage/vdisk/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f6e647888b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-anubis_osiris)
+target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ vdisk-hulldb-barriers
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-anubis_osiris PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubisfinder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubisproxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubisrunner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_osiris.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4ffcd6efbc
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-anubis_osiris-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-anubis_osiris-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-anubis_osiris
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+)
+target_link_options(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-anubis_osiris-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-anubis_osiris-ut)
diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad4318a302
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-common)
+target_link_libraries(blobstorage-vdisk-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ monlib-service-pages
+ ydb-core-base
+ vdisk-hulldb-base
+ blobstorage-vdisk-protos
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/common/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d2830e33d7
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-common-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-common-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-common
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ core-blobstorage-groupinfo
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-vdisk-common-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufresize_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufstream_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebuf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/memusage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-common-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-common-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-common-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-common-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-common-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-common-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-common-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-common-ut)
diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7e3b60a434
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-defrag)
+target_link_libraries(blobstorage-vdisk-defrag PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-hulldb
+)
+target_sources(blobstorage-vdisk-defrag PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0bf4703012
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-defrag-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-defrag-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-defrag
+ library-cpp-getopt
+ library-cpp-svnversion
+ blobstorage-vdisk-hulldb
+)
+target_link_options(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-defrag-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-defrag-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-defrag-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-defrag-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-defrag-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-blobstorage-vdisk-defrag-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-defrag-ut)
diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..03db99f5d4
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-vdisk-handoff)
+target_link_libraries(blobstorage-vdisk-handoff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-groupinfo
+ blobstorage-vdisk-common
+ vdisk-hulldb-generic
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-handoff PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..589355bf84
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-huge)
+target_link_libraries(blobstorage-vdisk-huge PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ monlib-service-pages
+ ydb-core-base
+ blobstorage-vdisk-common
+ vdisk-hulldb-base
+)
+target_sources(blobstorage-vdisk-huge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aa7cac1644
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-huge-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-huge-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-huge-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-huge
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-groupinfo
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-vdisk-huge-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-huge-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap_ctx_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/top_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-huge-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-huge-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-huge-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-huge-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-huge-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-huge-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-huge-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-huge-ut)
diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..880fd7ff67
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(barriers)
+add_subdirectory(base)
+add_subdirectory(bulksst_add)
+add_subdirectory(cache_block)
+add_subdirectory(compstrat)
+add_subdirectory(fresh)
+add_subdirectory(generic)
+add_subdirectory(recovery)
+add_subdirectory(test)
+
+add_library(blobstorage-vdisk-hulldb INTERFACE)
+target_link_libraries(blobstorage-vdisk-hulldb INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ core-blobstorage-base
+ blobstorage-vdisk-common
+ vdisk-hulldb-barriers
+ vdisk-hulldb-base
+ vdisk-hulldb-compstrat
+ vdisk-hulldb-fresh
+ vdisk-hulldb-generic
+ vdisk-hulldb-recovery
+ vdisk-hulldb-bulksst_add
+ ydb-core-protos
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4a479fb693
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-barriers)
+target_link_libraries(vdisk-hulldb-barriers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-blobstorage-base
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-barriers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9816a491f6
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-barriers-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-barriers
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ blobstorage-vdisk-common
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-barriers-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-barriers-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6db91dc19d
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-base)
+target_link_libraries(vdisk-hulldb-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-pdisk
+ blobstorage-vdisk-protos
+)
+target_sources(vdisk-hulldb-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..34b87d5249
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-base-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-base-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-base
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-hulldb
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-base-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-base-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-base-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..24bf99401f
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(vdisk-hulldb-bulksst_add)
+target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ blobstorage-vdisk-common
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-bulksst_add PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec5aa8425b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-cache_block)
+target_link_libraries(vdisk-hulldb-cache_block PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ vdisk-hulldb-base
+ blobstorage-vdisk-protos
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-cache_block PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7fb5712363
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-cache_block
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ ydb-core-blobstorage
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7c9fa1b947
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-compstrat)
+target_link_libraries(vdisk-hulldb-compstrat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-compstrat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b6acc24794
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-compstrat
+ ydb-core-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-hulldb
+ vdisk-hulldb-test
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c43891962e
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-fresh)
+target_link_libraries(vdisk-hulldb-fresh PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ vdisk-hulldb-base
+ blobstorage-vdisk-protos
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-fresh PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f95e1f7634
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-fresh-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-fresh
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-hulldb
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-fresh-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-fresh-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff0ea8a96c
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(vdisk-hulldb-generic)
+target_link_libraries(vdisk-hulldb-generic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ vdisk-hulldb-base
+ vdisk-hulldb-fresh
+ blobstorage-vdisk-protos
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-generic PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c9ccec73fe
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hulldb-generic-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hulldb-generic-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ vdisk-hulldb-generic
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-hulldb
+)
+target_link_options(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it_all_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hulldb-generic-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hulldb-generic-ut)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..50e400c525
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(vdisk-hulldb-recovery)
+target_link_libraries(vdisk-hulldb-recovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-blobstorage-base
+ blobstorage-vdisk-common
+ vdisk-hulldb-bulksst_add
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-recovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..279e7bdb8f
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(vdisk-hulldb-test)
+target_link_libraries(vdisk-hulldb-test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ ydb-core-protos
+)
+target_sources(vdisk-hulldb-test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..525fefdd9a
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(hullcompdelete)
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-hullop)
+target_link_libraries(blobstorage-vdisk-hullop PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ vdisk-hulldb-barriers
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ vdisk-hulldb-cache_block
+ vdisk-hulldb-recovery
+ vdisk-hulldb-bulksst_add
+ vdisk-hulldb-compstrat
+ vdisk-hullop-hullcompdelete
+ blobstorage-vdisk-handoff
+ blobstorage-vdisk-synclog
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-hullop PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9c6c88c18a
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(vdisk-hullop-hullcompdelete)
+target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ blobstorage-vdisk-common
+ ydb-core-protos
+)
+target_sources(vdisk-hullop-hullcompdelete PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38eef49949
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-hullop-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-hullop-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-hullop
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-blobstorage-pdisk
+)
+target_link_options(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-hullop-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-hullop-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-hullop-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hullop-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hullop-ut
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-hullop-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-hullop-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-hullop-ut)
diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..097ee5fb7f
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-ingress)
+target_link_libraries(blobstorage-vdisk-ingress PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lwtrace
+ library-cpp-pop_count
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-ingress PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3970efad75
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-ingress-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-ingress-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-ingress
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-ingress-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-ingress-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-ingress-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-ingress-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-ingress-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-ingress-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-ingress-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-ingress-ut)
diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..797ce866c9
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-vdisk-localrecovery)
+target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-blobstorage-pdisk
+ blobstorage-vdisk-hulldb
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-localrecovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83c328d60b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(blobstorage-vdisk-protos)
+target_link_libraries(blobstorage-vdisk-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(blobstorage-vdisk-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto
+)
+target_proto_addincls(blobstorage-vdisk-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(blobstorage-vdisk-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6cb0244a1b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-query)
+target_link_libraries(blobstorage-vdisk-query PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-bzip2
+ ydb-core-base
+ core-blobstorage-base
+ vdisk-hulldb-barriers
+ vdisk-hulldb-base
+)
+target_sources(blobstorage-vdisk-query PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/query/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..57057b8e8b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-query-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-query-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-query-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-query
+ blobstorage-vdisk-huge
+ ydb-core-protos
+)
+target_link_options(ydb-core-blobstorage-vdisk-query-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-query-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-query-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-query-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-query-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-query-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-query-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-query-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-query-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-query-ut)
diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dd87eabec3
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-repl)
+target_link_libraries(blobstorage-vdisk-repl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-groupinfo
+ blobstorage-vdisk-common
+ vdisk-hulldb-barriers
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ vdisk-hulldb-bulksst_add
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-repl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replmonhandler.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..16023ad1b6
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-repl-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-repl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-repl-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-repl
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ ydb-core-blobstorage
+ ydb-core-erasure
+)
+target_link_options(ydb-core-blobstorage-vdisk-repl-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-repl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-repl-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-repl-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-repl-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-repl-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-repl-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-repl-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-repl-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-repl-ut)
diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8c2529e7b
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(blobstorage-vdisk-scrub)
+target_link_libraries(blobstorage-vdisk-scrub PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-blobstorage-base
+ blobstorage-vdisk-common
+ blobstorage-vdisk-skeleton
+)
+target_sources(blobstorage-vdisk-scrub PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_pdisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_unreadable.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e06a362323
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-skeleton)
+target_link_libraries(blobstorage-vdisk-skeleton PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ vdisk-hulldb-base
+ vdisk-hulldb-bulksst_add
+ blobstorage-vdisk-synclog
+ ydb-core-protos
+)
+target_sources(blobstorage-vdisk-skeleton PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b898b908bb
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-skeleton-ut)
+target_compile_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-skeleton-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-skeleton
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-blobstorage
+ blobstorage-vdisk-common
+ core-testlib-default
+ core-testlib-actors
+)
+target_link_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-skeleton-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-skeleton-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-skeleton-ut)
diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c1c9968058
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-syncer)
+target_link_libraries(blobstorage-vdisk-syncer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ blobstorage-vdisk-anubis_osiris
+ blobstorage-vdisk-common
+ vdisk-hulldb-base
+ version
+)
+target_sources(blobstorage-vdisk-syncer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9eada57866
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-syncer-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-syncer
+ library-cpp-getopt
+ library-cpp-svnversion
+ ydb-core-base
+ ydb-core-blobstorage
+)
+target_link_options(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncquorum_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-syncer-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-syncer-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-syncer-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-syncer-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-syncer-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-syncer-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-syncer-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-syncer-ut)
diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7f7b24842e
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(blobstorage-vdisk-synclog)
+target_link_libraries(blobstorage-vdisk-synclog PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ library-cpp-blockcodecs
+ library-cpp-codecs
+ cpp-containers-intrusive_avl_tree
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ blobstorage-vdisk-common
+ vdisk-hulldb-base
+ vdisk-hulldb-generic
+ blobstorage-vdisk-ingress
+ ydb-core-util
+)
+target_sources(blobstorage-vdisk-synclog PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.cpp
+)
diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0294becc64
--- /dev/null
+++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-blobstorage-vdisk-synclog-ut)
+target_include_directories(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog
+)
+target_link_libraries(ydb-core-blobstorage-vdisk-synclog-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-vdisk-synclog
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-blobstorage
+)
+target_link_options(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-blobstorage-vdisk-synclog-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-blobstorage-vdisk-synclog-ut
+ TEST_TARGET
+ ydb-core-blobstorage-vdisk-synclog-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-synclog-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-synclog-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-blobstorage-vdisk-synclog-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-blobstorage-vdisk-synclog-ut
+ system_allocator
+)
+vcs_info(ydb-core-blobstorage-vdisk-synclog-ut)
diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt
+++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blockstore/CMakeLists.darwin-arm64.txt b/ydb/core/blockstore/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed93748cb8
--- /dev/null
+++ b/ydb/core/blockstore/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(core)
+
+add_library(ydb-core-blockstore INTERFACE)
+target_link_libraries(ydb-core-blockstore INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ core-blockstore-core
+)
diff --git a/ydb/core/blockstore/CMakeLists.txt b/ydb/core/blockstore/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blockstore/CMakeLists.txt
+++ b/ydb/core/blockstore/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/blockstore/core/CMakeLists.darwin-arm64.txt b/ydb/core/blockstore/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0f8a190e4
--- /dev/null
+++ b/ydb/core/blockstore/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-blockstore-core)
+target_link_libraries(core-blockstore-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(core-blockstore-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/blockstore/core/blockstore.cpp
+)
diff --git a/ydb/core/blockstore/core/CMakeLists.txt b/ydb/core/blockstore/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/blockstore/core/CMakeLists.txt
+++ b/ydb/core/blockstore/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/CMakeLists.darwin-arm64.txt b/ydb/core/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5efa3c83bc
--- /dev/null
+++ b/ydb/core/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(metadata)
+add_subdirectory(minikql_compile)
+add_subdirectory(minikql_result_lib)
+add_subdirectory(scheme_cache_lib)
+add_subdirectory(server)
+add_subdirectory(ut)
+
+add_library(ydb-core-client INTERFACE)
+target_link_libraries(ydb-core-client INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-base
+ core-client-scheme_cache_lib
+ core-client-server
+ ydb-core-engine
+ lib-deprecated-kicli
+)
diff --git a/ydb/core/client/CMakeLists.txt b/ydb/core/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/CMakeLists.txt
+++ b/ydb/core/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt b/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cfe7195d85
--- /dev/null
+++ b/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-client-metadata)
+target_compile_options(core-client-metadata PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-client-metadata PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ ydb-core-scheme_types
+ minikql-invoke_builtins-llvm
+)
+target_sources(core-client-metadata PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/functions_metadata.cpp
+)
diff --git a/ydb/core/client/metadata/CMakeLists.txt b/ydb/core/client/metadata/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/metadata/CMakeLists.txt
+++ b/ydb/core/client/metadata/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4630637c5a
--- /dev/null
+++ b/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-client-metadata-ut)
+target_compile_options(ydb-core-client-metadata-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-client-metadata-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata
+)
+target_link_libraries(ydb-core-client-metadata-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-client-metadata
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-client-metadata-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-client-metadata-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/ut/functions_metadata_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-client-metadata-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-client-metadata-ut
+ TEST_TARGET
+ ydb-core-client-metadata-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-metadata-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-metadata-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-client-metadata-ut
+ system_allocator
+)
+vcs_info(ydb-core-client-metadata-ut)
diff --git a/ydb/core/client/metadata/ut/CMakeLists.txt b/ydb/core/client/metadata/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/metadata/ut/CMakeLists.txt
+++ b/ydb/core/client/metadata/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b2ddd12c3b
--- /dev/null
+++ b/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-client-minikql_compile)
+target_compile_options(core-client-minikql_compile PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-client-minikql_compile PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-threading-future
+ ydb-core-base
+ ydb-core-engine
+ core-kqp-provider
+ ydb-core-scheme
+ library-yql-ast
+ library-yql-core
+ library-yql-minikql
+ providers-common-mkql
+)
+target_sources(core-client-minikql_compile PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/mkql_compile_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.cpp
+)
diff --git a/ydb/core/client/minikql_compile/CMakeLists.txt b/ydb/core/client/minikql_compile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/minikql_compile/CMakeLists.txt
+++ b/ydb/core/client/minikql_compile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ebfc048068
--- /dev/null
+++ b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-client-minikql_compile-ut)
+target_compile_options(ydb-core-client-minikql_compile-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-client-minikql_compile-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile
+)
+target_link_libraries(ydb-core-client-minikql_compile-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-client-minikql_compile
+ cpp-testing-unittest
+ cpp-threading-future
+ core-client-scheme_cache_lib
+ core-client-server
+ ydb-core-tablet
+ core-testlib-default
+ library-yql-minikql
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-client-minikql_compile-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-client-minikql_compile-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql_compile_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-client-minikql_compile-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-client-minikql_compile-ut
+ TEST_TARGET
+ ydb-core-client-minikql_compile-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-minikql_compile-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-minikql_compile-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-client-minikql_compile-ut
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-core-client-minikql_compile-ut)
diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/minikql_compile/ut/CMakeLists.txt
+++ b/ydb/core/client/minikql_compile/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d66fdd861b
--- /dev/null
+++ b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-client-minikql_result_lib)
+target_link_libraries(core-client-minikql_result_lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ ydb-core-protos
+ ydb-core-scheme
+ library-mkql_proto-protos
+ lib-deprecated-kicli
+)
+target_sources(core-client-minikql_result_lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp
+)
diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.txt b/ydb/core/client/minikql_result_lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/minikql_result_lib/CMakeLists.txt
+++ b/ydb/core/client/minikql_result_lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b0dd4768e7
--- /dev/null
+++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-client-minikql_result_lib-ut)
+target_compile_options(ydb-core-client-minikql_result_lib-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-client-minikql_result_lib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib
+)
+target_link_libraries(ydb-core-client-minikql_result_lib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-client-minikql_result_lib
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-client-minikql_result_lib-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-client-minikql_result_lib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-client-minikql_result_lib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-client-minikql_result_lib-ut
+ TEST_TARGET
+ ydb-core-client-minikql_result_lib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-minikql_result_lib-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-minikql_result_lib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-minikql_result_lib-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-core-client-minikql_result_lib-ut
+ system_allocator
+)
+vcs_info(ydb-core-client-minikql_result_lib-ut)
diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.txt
+++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..050ab290ad
--- /dev/null
+++ b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-client-scheme_cache_lib)
+target_compile_options(core-client-scheme_cache_lib PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-client-scheme_cache_lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-actors-core
+ cpp-grpc-client
+ cpp-threading-future
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-tablet
+ ydb-core-tx
+)
+target_sources(core-client-scheme_cache_lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp
+)
diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/scheme_cache_lib/CMakeLists.txt
+++ b/ydb/core/client/scheme_cache_lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/server/CMakeLists.darwin-arm64.txt b/ydb/core/client/server/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..577a6ca7a5
--- /dev/null
+++ b/ydb/core/client/server/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,99 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-client-server)
+target_compile_options(core-client-server PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-client-server PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-helpers
+ library-cpp-json
+ library-cpp-messagebus
+ messagebus_protobuf
+ cpp-monlib-messagebus
+ cpp-protobuf-json
+ cpp-protobuf-util
+ cpp-threading-future
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-blobstorage-base
+ core-client-metadata
+ core-client-scheme_cache_lib
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-grpc_services
+ core-grpc_services-auth_processor
+ core-grpc_services-base
+ ydb-core-keyvalue
+ core-kqp-common
+ ydb-core-node_whiteboard
+ ydb-core-persqueue
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-ydb_convert
+ core-ymq-actor
+ ydb-library-aclib
+ library-persqueue-topic_parser
+ api-protos
+ api-grpc
+ api-grpc-draft
+ public-lib-base
+ lib-deprecated-client
+ lib-deprecated-kicli
+ ydb-services-persqueue_v1
+ cpp-deprecated-atomic
+)
+target_sources(core-client-server PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_cms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_configdummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_console.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_drain_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_fill_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_hive_create_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_keyvalue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_read_session_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_resolve_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_ic_debug.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_load.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_local_enumerate_tablets.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_local_minikql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_local_scheme_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_login_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_node_registration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_scheme_initroot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_scheme_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_sqs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_tablet_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_tablet_kill.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_tablet_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_test_shard_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_tracer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_tx_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_whoami.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/ic_nodes_cache_service.cpp
+)
diff --git a/ydb/core/client/server/CMakeLists.txt b/ydb/core/client/server/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/server/CMakeLists.txt
+++ b/ydb/core/client/server/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d553634a4
--- /dev/null
+++ b/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-client-server-ut)
+target_compile_options(ydb-core-client-server-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-client-server-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server
+)
+target_link_libraries(ydb-core-client-server-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-client-server
+ cpp-testing-gmock_in_unittest
+ ydb-core-persqueue
+ ydb-core-tablet_flat
+ core-testlib-default
+ core-testlib-actors
+)
+target_link_options(ydb-core-client-server-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-client-server-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-client-server-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-client-server-ut
+ TEST_TARGET
+ ydb-core-client-server-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-server-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-server-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-server-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-client-server-ut
+ system_allocator
+)
+vcs_info(ydb-core-client-server-ut)
diff --git a/ydb/core/client/server/ut/CMakeLists.txt b/ydb/core/client/server/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/server/ut/CMakeLists.txt
+++ b/ydb/core/client/server/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/client/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe31a10e08
--- /dev/null
+++ b/ydb/core/client/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-client-ut)
+target_compile_options(ydb-core-client-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-client-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client
+)
+target_link_libraries(ydb-core-client-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-client
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-client-scheme_cache_lib
+ test-libs-rows
+ core-testlib-default
+)
+target_link_options(ydb-core-client-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-client-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/cancel_tx_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/client_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/flat_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/locks_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/client/query_stats_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-client-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-client-ut
+ TEST_TARGET
+ ydb-core-client-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-ut
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-client-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-client-ut
+ system_allocator
+)
+vcs_info(ydb-core-client-ut)
diff --git a/ydb/core/client/ut/CMakeLists.txt b/ydb/core/client/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/client/ut/CMakeLists.txt
+++ b/ydb/core/client/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/CMakeLists.darwin-arm64.txt b/ydb/core/cms/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c430effcf4
--- /dev/null
+++ b/ydb/core/cms/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,411 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(console)
+add_subdirectory(ut)
+add_subdirectory(ut_sentinel)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-cms)
+target_link_libraries(ydb-core-cms PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-engine-minikql
+ ydb-core-mind
+ core-mind-bscontroller
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ core-protos-out
+ ydb-core-tablet_flat
+ core-tx-datashard
+ ydb-library-aclib
+ ydb-library-services
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ydb-core-cms PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_get_log_tail.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_load_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_log_and_send.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_log_cleanup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_process_notification.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_reject_notification.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_remove_expired_notifications.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_remove_permissions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_remove_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_remove_task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_store_permissions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_store_walle_task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_update_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tx_update_downtimes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/services.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle_api_handler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle_check_task_adapter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle_create_task_adapter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle_list_tasks_adapter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle_remove_task_adapter.cpp
+)
+generate_enum_serilization(ydb-core-cms
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/services.h
+ INCLUDE_HEADERS
+ ydb/core/cms/services.h
+)
+generate_enum_serilization(ydb-core-cms
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h
+ INCLUDE_HEADERS
+ ydb/core/cms/node_checkers.h
+)
+
+add_global_library_for(ydb-core-cms.global ydb-core-cms)
+target_link_libraries(ydb-core-cms.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-engine-minikql
+ ydb-core-mind
+ core-mind-bscontroller
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ core-protos-out
+ ydb-core-tablet_flat
+ core-tx-datashard
+ ydb-library-aclib
+ ydb-library-services
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ydb-core-cms.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/cms/bd4d435f1ed53f0a770942051e28a441.cpp
+)
+resources(ydb-core-cms.global
+ ${CMAKE_BINARY_DIR}/ydb/core/cms/bd4d435f1ed53f0a770942051e28a441.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/index.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/cms.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/cms.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/config_dispatcher.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/cms_log.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/console_log.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/common.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/common.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/configs.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/yaml_config.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/config_forms.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_hist.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_info.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_op.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_ops_list.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_rs.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/datashard_slow_ops.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/enums.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/bootstrap.min.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/fuzzycomplete.min.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/fuzzycomplete.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/fuse.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/document-copy.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/unfold-less.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/unfold-more.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/1-circle.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/link.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/gear.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/require.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/jquery.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/base/worker/workerMain.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/abap/abap.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/apex/apex.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/azcli/azcli.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/bat/bat.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/bicep/bicep.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/cameligo/cameligo.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/clojure/clojure.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/coffee/coffee.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/cpp/cpp.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/csharp/csharp.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/csp/csp.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/css/css.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/dart/dart.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/ecl/ecl.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/elixir/elixir.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/fsharp/fsharp.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/go/go.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/graphql/graphql.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/handlebars/handlebars.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/hcl/hcl.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/html/html.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/ini/ini.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/java/java.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/javascript/javascript.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/julia/julia.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/kotlin/kotlin.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/less/less.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/lexon/lexon.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/liquid/liquid.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/lua/lua.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/m3/m3.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/markdown/markdown.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/mips/mips.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/msdax/msdax.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/mysql/mysql.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/objective-c/objective-c.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/pascal/pascal.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/pascaligo/pascaligo.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/perl/perl.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/pgsql/pgsql.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/php/php.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/postiats/postiats.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/powerquery/powerquery.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/powershell/powershell.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/pug/pug.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/python/python.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/qsharp/qsharp.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/r/r.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/razor/razor.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/redis/redis.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/redshift/redshift.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/ruby/ruby.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/rust/rust.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/sb/sb.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/scala/scala.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/scheme/scheme.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/scss/scss.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/shell/shell.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/solidity/solidity.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/sophia/sophia.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/sparql/sparql.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/sql/sql.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/st/st.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/swift/swift.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/tcl/tcl.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/twig/twig.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/typescript/typescript.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/vb/vb.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/xml/xml.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/basic-languages/yaml/yaml.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.de.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.es.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.fr.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.it.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ja.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ko.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ru.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.zh-cn.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.zh-tw.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/css/cssMode.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/css/cssWorker.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/html/htmlMode.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/html/htmlWorker.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/json/jsonMode.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/json/jsonWorker.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/typescript/tsMode.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/language/typescript/tsWorker.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/monaco-editor/vs/loader.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/main.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/configs_dispatcher_main.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/question-circle.svg
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/bootstrap.bundle.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/ext/theme.blue.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/proto_types.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/res/edit.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/res/help.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/res/remove.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/validators.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/sentinel_state.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/nanotable.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ui/sentinel.css
+ KEYS
+ cms/ui/index.html
+ cms/ui/cms.css
+ cms/ui/cms.js
+ cms/ui/config_dispatcher.css
+ cms/ui/cms_log.js
+ cms/ui/console_log.js
+ cms/ui/common.css
+ cms/ui/common.js
+ cms/ui/configs.js
+ cms/ui/yaml_config.js
+ cms/ui/config_forms.js
+ cms/ui/datashard.css
+ cms/ui/datashard.js
+ cms/ui/datashard_hist.js
+ cms/ui/datashard_info.js
+ cms/ui/datashard_op.js
+ cms/ui/datashard_ops_list.js
+ cms/ui/datashard_rs.js
+ cms/ui/datashard_slow_ops.js
+ cms/ui/enums.js
+ cms/ui/ext/bootstrap.min.css
+ cms/ui/ext/fuzzycomplete.min.css
+ cms/ui/ext/fuzzycomplete.min.js
+ cms/ui/ext/fuse.min.js
+ cms/ui/ext/document-copy.svg
+ cms/ui/ext/unfold-less.svg
+ cms/ui/ext/unfold-more.svg
+ cms/ui/ext/1-circle.svg
+ cms/ui/ext/link.svg
+ cms/ui/ext/gear.svg
+ cms/ui/ext/require.min.js
+ cms/ui/ext/jquery.min.js
+ cms/ui/ext/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf
+ cms/ui/ext/monaco-editor/vs/base/worker/workerMain.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/abap/abap.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/apex/apex.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/azcli/azcli.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/bat/bat.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/bicep/bicep.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/cameligo/cameligo.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/clojure/clojure.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/coffee/coffee.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/cpp/cpp.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/csharp/csharp.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/csp/csp.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/css/css.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/dart/dart.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/ecl/ecl.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/elixir/elixir.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/fsharp/fsharp.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/go/go.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/graphql/graphql.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/handlebars/handlebars.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/hcl/hcl.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/html/html.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/ini/ini.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/java/java.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/javascript/javascript.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/julia/julia.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/kotlin/kotlin.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/less/less.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/lexon/lexon.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/liquid/liquid.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/lua/lua.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/m3/m3.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/markdown/markdown.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/mips/mips.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/msdax/msdax.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/mysql/mysql.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/objective-c/objective-c.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/pascal/pascal.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/pascaligo/pascaligo.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/perl/perl.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/pgsql/pgsql.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/php/php.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/postiats/postiats.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/powerquery/powerquery.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/powershell/powershell.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/pug/pug.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/python/python.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/qsharp/qsharp.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/r/r.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/razor/razor.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/redis/redis.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/redshift/redshift.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/ruby/ruby.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/rust/rust.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/sb/sb.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/scala/scala.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/scheme/scheme.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/scss/scss.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/shell/shell.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/solidity/solidity.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/sophia/sophia.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/sparql/sparql.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/sql/sql.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/st/st.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/swift/swift.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/tcl/tcl.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/twig/twig.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/typescript/typescript.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/vb/vb.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/xml/xml.js
+ cms/ui/ext/monaco-editor/vs/basic-languages/yaml/yaml.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.css
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.de.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.es.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.fr.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.it.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ja.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ko.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.ru.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.zh-cn.js
+ cms/ui/ext/monaco-editor/vs/editor/editor.main.nls.zh-tw.js
+ cms/ui/ext/monaco-editor/vs/language/css/cssMode.js
+ cms/ui/ext/monaco-editor/vs/language/css/cssWorker.js
+ cms/ui/ext/monaco-editor/vs/language/html/htmlMode.js
+ cms/ui/ext/monaco-editor/vs/language/html/htmlWorker.js
+ cms/ui/ext/monaco-editor/vs/language/json/jsonMode.js
+ cms/ui/ext/monaco-editor/vs/language/json/jsonWorker.js
+ cms/ui/ext/monaco-editor/vs/language/typescript/tsMode.js
+ cms/ui/ext/monaco-editor/vs/language/typescript/tsWorker.js
+ cms/ui/ext/monaco-editor/vs/loader.js
+ cms/ui/main.js
+ cms/ui/configs_dispatcher_main.js
+ cms/ui/ext/question-circle.svg
+ cms/ui/ext/bootstrap.bundle.min.js
+ cms/ui/ext/theme.blue.css
+ cms/ui/proto_types.js
+ cms/ui/res/edit.png
+ cms/ui/res/help.png
+ cms/ui/res/remove.png
+ cms/ui/validators.js
+ cms/ui/sentinel_state.js
+ cms/ui/nanotable.js
+ cms/ui/sentinel.css
+)
diff --git a/ydb/core/cms/CMakeLists.txt b/ydb/core/cms/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/CMakeLists.txt
+++ b/ydb/core/cms/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/console/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e49d5fd5ff
--- /dev/null
+++ b/ydb/core/cms/console/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(util)
+add_subdirectory(validators)
+
+add_library(core-cms-console)
+target_link_libraries(core-cms-console PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-http
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ cms-console-validators
+ ydb-core-control
+ core-engine-minikql
+ ydb-core-mind
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-util
+ ydb-library-aclib
+ ydb-library-yaml_config
+ api-protos
+ public-lib-operation_id
+)
+target_sources(core-cms-console PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__add_config_subscription.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__alter_tenant.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__replace_yaml_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__cleanup_subscriptions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__configure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__create_tenant.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__drop_yaml_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__load_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__get_log_tail.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__get_yaml_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__get_yaml_metadata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__log_cleanup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_computational_units.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_config_subscription.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_config_subscriptions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_tenant.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_tenant_done.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__remove_tenant_failed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__replace_config_subscriptions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__revert_pool_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__set_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__toggle_config_validator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_confirmed_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_last_provided_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_pool_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_subdomain_key.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_pool_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/grpc_library_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/net_classifier_updater.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.cpp
+)
diff --git a/ydb/core/cms/console/CMakeLists.txt b/ydb/core/cms/console/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/console/CMakeLists.txt
+++ b/ydb/core/cms/console/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c86287b46d
--- /dev/null
+++ b/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-cms-console-ut)
+target_compile_options(ydb-core-cms-console-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-cms-console-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console
+)
+target_link_libraries(ydb-core-cms-console-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-cms-console
+ library-cpp-getopt
+ cpp-protobuf-util
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-cms-console-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-cms-console-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_ut_tenants.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_ut_configs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/net_classifier_updater_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-cms-console-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-cms-console-ut
+ TEST_TARGET
+ ydb-core-cms-console-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-cms-console-ut
+ system_allocator
+)
+vcs_info(ydb-core-cms-console-ut)
diff --git a/ydb/core/cms/console/ut/CMakeLists.txt b/ydb/core/cms/console/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/console/ut/CMakeLists.txt
+++ b/ydb/core/cms/console/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a8aa60113
--- /dev/null
+++ b/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cms-console-util)
+target_link_libraries(cms-console-util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(cms-console-util PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp
+)
diff --git a/ydb/core/cms/console/util/CMakeLists.txt b/ydb/core/cms/console/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/console/util/CMakeLists.txt
+++ b/ydb/core/cms/console/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae6ae3abc0
--- /dev/null
+++ b/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cms-console-validators)
+target_link_libraries(cms-console-validators PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-tablet
+ api-protos
+ cpp-deprecated-atomic
+)
+target_sources(cms-console-validators PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.cpp
+)
diff --git a/ydb/core/cms/console/validators/CMakeLists.txt b/ydb/core/cms/console/validators/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/console/validators/CMakeLists.txt
+++ b/ydb/core/cms/console/validators/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38926d6d63
--- /dev/null
+++ b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-cms-console-validators-ut)
+target_include_directories(ydb-core-cms-console-validators-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators
+)
+target_link_libraries(ydb-core-cms-console-validators-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cms-console-validators
+ cpp-testing-unittest
+)
+target_link_options(ydb-core-cms-console-validators-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-cms-console-validators-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-cms-console-validators-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-cms-console-validators-ut
+ TEST_TARGET
+ ydb-core-cms-console-validators-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-validators-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-validators-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-console-validators-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-cms-console-validators-ut
+ system_allocator
+)
+vcs_info(ydb-core-cms-console-validators-ut)
diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.txt b/ydb/core/cms/console/validators/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/console/validators/ut/CMakeLists.txt
+++ b/ydb/core/cms/console/validators/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8ebcb62a69
--- /dev/null
+++ b/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-cms-ut)
+target_compile_options(ydb-core-cms-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-cms-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms
+)
+target_link_libraries(ydb-core-cms-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-cms
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-cms-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-cms-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-cms-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-cms-ut
+ TEST_TARGET
+ ydb-core-cms-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-cms-ut
+ system_allocator
+)
+vcs_info(ydb-core-cms-ut)
diff --git a/ydb/core/cms/ut/CMakeLists.txt b/ydb/core/cms/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/ut/CMakeLists.txt
+++ b/ydb/core/cms/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..32f82e1f42
--- /dev/null
+++ b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-cms-ut_sentinel)
+target_compile_options(ydb-core-cms-ut_sentinel PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-cms-ut_sentinel PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms
+)
+target_link_libraries(ydb-core-cms-ut_sentinel PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-cms
+ library-cpp-getopt
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-cms-ut_sentinel PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-cms-ut_sentinel PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-cms-ut_sentinel
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-cms-ut_sentinel
+ TEST_TARGET
+ ydb-core-cms-ut_sentinel
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut_sentinel
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut_sentinel
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-cms-ut_sentinel
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-cms-ut_sentinel
+ system_allocator
+)
+vcs_info(ydb-core-cms-ut_sentinel)
diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.txt b/ydb/core/cms/ut_sentinel/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/cms/ut_sentinel/CMakeLists.txt
+++ b/ydb/core/cms/ut_sentinel/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/control/CMakeLists.darwin-arm64.txt b/ydb/core/control/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fea407f206
--- /dev/null
+++ b/ydb/core/control/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-control)
+target_link_libraries(ydb-core-control PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+ ydb-core-base
+ ydb-core-mon
+ ydb-core-node_whiteboard
+ cpp-deprecated-atomic
+)
+target_sources(ydb-core-control PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp
+)
diff --git a/ydb/core/control/CMakeLists.txt b/ydb/core/control/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/control/CMakeLists.txt
+++ b/ydb/core/control/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/control/ut/CMakeLists.darwin-arm64.txt b/ydb/core/control/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be08ac90d3
--- /dev/null
+++ b/ydb/core/control/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-control-ut)
+target_include_directories(ydb-core-control-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/control
+)
+target_link_libraries(ydb-core-control-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-control
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-mind
+ ydb-core-mon
+ yql-sql-pg_dummy
+ ydb-services-ydb
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-control-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-control-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-control-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-control-ut
+ TEST_TARGET
+ ydb-core-control-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-control-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-control-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-control-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-control-ut
+ system_allocator
+)
+vcs_info(ydb-core-control-ut)
diff --git a/ydb/core/control/ut/CMakeLists.txt b/ydb/core/control/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/control/ut/CMakeLists.txt
+++ b/ydb/core/control/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/debug/CMakeLists.darwin-arm64.txt b/ydb/core/debug/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ebb5e769c7
--- /dev/null
+++ b/ydb/core/debug/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-debug)
+target_link_libraries(ydb-core-debug PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-core-debug PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp
+)
diff --git a/ydb/core/debug/CMakeLists.txt b/ydb/core/debug/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/debug/CMakeLists.txt
+++ b/ydb/core/debug/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/debug_tools/CMakeLists.darwin-arm64.txt b/ydb/core/debug_tools/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0c07d57455
--- /dev/null
+++ b/ydb/core/debug_tools/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-debug_tools INTERFACE)
+target_link_libraries(ydb-core-debug_tools INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/core/debug_tools/CMakeLists.txt b/ydb/core/debug_tools/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/debug_tools/CMakeLists.txt
+++ b/ydb/core/debug_tools/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt b/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8d1200f4a2
--- /dev/null
+++ b/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-debug_tools-ut)
+target_link_libraries(ydb-core-debug_tools-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-debug_tools
+)
+target_link_options(ydb-core-debug_tools-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-core-debug_tools-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/debug_tools/ut/main.cpp
+)
+set_property(
+ TARGET
+ ydb-core-debug_tools-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-debug_tools-ut
+ TEST_TARGET
+ ydb-core-debug_tools-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-debug_tools-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-debug_tools-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-debug_tools-ut
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-core-debug_tools-ut
+ system_allocator
+)
+vcs_info(ydb-core-debug_tools-ut)
diff --git a/ydb/core/debug_tools/ut/CMakeLists.txt b/ydb/core/debug_tools/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/debug_tools/ut/CMakeLists.txt
+++ b/ydb/core/debug_tools/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/discovery/CMakeLists.darwin-arm64.txt b/ydb/core/discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c0cec4da9f
--- /dev/null
+++ b/ydb/core/discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-discovery)
+target_link_libraries(ydb-core-discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-tx-scheme_cache
+ cpp-actors-core
+)
+target_sources(ydb-core-discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/discovery/discovery.cpp
+)
diff --git a/ydb/core/discovery/CMakeLists.txt b/ydb/core/discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/discovery/CMakeLists.txt
+++ b/ydb/core/discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/docapi/CMakeLists.darwin-arm64.txt b/ydb/core/docapi/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b145759320
--- /dev/null
+++ b/ydb/core/docapi/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-docapi)
+target_compile_options(ydb-core-docapi PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-docapi PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-core-docapi PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/docapi/traits.cpp
+)
diff --git a/ydb/core/docapi/CMakeLists.txt b/ydb/core/docapi/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/docapi/CMakeLists.txt
+++ b/ydb/core/docapi/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..52e306422b
--- /dev/null
+++ b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(base_utils)
+target_compile_options(base_utils PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(base_utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-enum_codegen
+ cpp-grpc-client
+ core-blobstorage-pdisk
+ core-client-server
+ core-driver_lib-cli_config_base
+ ydb-core-protos
+ lib-deprecated-client
+)
+target_sources(base_utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp
+)
diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.txt b/ydb/core/driver_lib/base_utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/base_utils/CMakeLists.txt
+++ b/ydb/core/driver_lib/base_utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/cli_base/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/cli_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..277f032734
--- /dev/null
+++ b/ydb/core/driver_lib/cli_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cli_base)
+target_compile_options(cli_base PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(cli_base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-driver_lib-cli_config_base
+ ydb-library-aclib
+ lib-deprecated-kicli
+ common
+ cpp-client-resources
+ cpp-client-ydb_table
+)
+target_sources(cli_base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_base/cli_cmds_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_base/cli_cmds_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_base/cli_cmds_root.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_base/cli_cmds_whoami.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_base/cli_kicli.cpp
+)
diff --git a/ydb/core/driver_lib/cli_base/CMakeLists.txt b/ydb/core/driver_lib/cli_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/cli_base/CMakeLists.txt
+++ b/ydb/core/driver_lib/cli_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..55f3c886ac
--- /dev/null
+++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-driver_lib-cli_config_base)
+target_compile_options(core-driver_lib-cli_config_base PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-driver_lib-cli_config_base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-enum_codegen
+ ydb-core-util
+ lib-deprecated-client
+ library-yql-minikql
+)
+target_sources(core-driver_lib-cli_config_base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp
+)
diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/cli_config_base/CMakeLists.txt
+++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..03879b71cd
--- /dev/null
+++ b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cli_utils)
+target_compile_options(cli_utils PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(cli_utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-enum_codegen
+ cpp-grpc-client
+ cpp-protobuf-json
+ library-cpp-yson
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-blobstorage-pdisk
+ core-client-minikql_compile
+ core-client-scheme_cache_lib
+ cli_base
+ ydb-core-engine
+ ydb-core-erasure
+ core-mind-bscontroller
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-library-aclib
+ library-folder_service-proto
+ ydb-library-yaml_config
+ api-grpc
+ api-grpc-draft
+ lib-deprecated-client
+ common
+ cpp-client-ydb_discovery
+ cpp-client-ydb_driver
+)
+target_sources(cli_utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_admin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_bs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_cms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_console.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_debug.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_disk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_genconfig.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_root.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds_tenant.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_fakeinitshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_keyvalue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_persqueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_persqueue_cluster_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_persqueue_stress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_load.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_minikql_compile_and_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_mb_trace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_scheme_cache_append.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_scheme_initroot.cpp
+)
diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/cli_utils/CMakeLists.txt
+++ b/ydb/core/driver_lib/cli_utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5439933cac
--- /dev/null
+++ b/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,164 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(run)
+target_compile_options(run PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(run PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-memory_log
+ cpp-actors-prof
+ cpp-actors-protos
+ cpp-actors-util
+ cpp-getopt-small
+ cpp-grpc-client
+ cpp-grpc-server
+ grpc-server-actors
+ library-cpp-logger
+ cpp-malloc-api
+ library-cpp-messagebus
+ cpp-monlib-dynamic_counters
+ cpp-monlib-messagebus
+ library-cpp-sighandler
+ cpp-string_utils-parse_size
+ library-cpp-svnversion
+ ydb-core-actorlib_impl
+ ydb-core-audit
+ ydb-core-base
+ ydb-core-blob_depot
+ ydb-core-blobstorage
+ core-blobstorage-backpressure
+ core-blobstorage-nodewarden
+ core-blobstorage-other
+ core-blobstorage-pdisk
+ blobstorage-vdisk-common
+ core-client-minikql_compile
+ core-client-scheme_cache_lib
+ core-client-server
+ ydb-core-cms
+ core-cms-console
+ ydb-core-control
+ base_utils
+ core-driver_lib-cli_config_base
+ cli_utils
+ version
+ ydb-core-formats
+ fq-libs-init
+ fq-libs-logs
+ ydb-core-grpc_services
+ core-grpc_services-base
+ core-grpc_services-auth_processor
+ ydb-core-health_check
+ ydb-core-http_proxy
+ core-kesus-proxy
+ core-kesus-tablet
+ ydb-core-keyvalue
+ ydb-core-kafka_proxy
+ ydb-core-kqp
+ core-kqp-federated_query
+ core-kqp-finalize_script_service
+ core-kqp-rm_service
+ ydb-core-load_test
+ ydb-core-local_pgwire
+ ydb-core-log_backend
+ ydb-core-metering
+ ydb-core-mind
+ core-mind-address_classification
+ core-mind-bscontroller
+ core-mind-hive
+ ydb-core-mon
+ ydb-core-mon_alloc
+ ydb-core-node_whiteboard
+ ydb-core-persqueue
+ ydb-core-protos
+ ydb-core-public_http
+ ydb-core-quoter
+ ydb-core-scheme
+ ydb-core-scheme_types
+ ydb-core-security
+ ydb-core-statistics
+ core-statistics-aggregator
+ core-sys_view-processor
+ core-sys_view-service
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-test_tablet
+ ydb-core-tracing
+ ydb-core-tx
+ core-tx-columnshard
+ core-tx-coordinator
+ tx-conveyor-service
+ core-tx-datashard
+ core-tx-long_tx_service
+ tx-long_tx_service-public
+ core-tx-mediator
+ tx-replication-controller
+ tx-replication-service
+ core-tx-scheme_board
+ core-tx-schemeshard
+ core-tx-sequenceproxy
+ core-tx-sequenceshard
+ core-tx-time_cast
+ core-tx-tx_allocator
+ core-tx-tx_proxy
+ ydb-core-util
+ ydb-core-viewer
+ core-ymq-actor
+ core-ymq-http
+ ydb-library-folder_service
+ library-folder_service-proto
+ ydb-library-pdisk_io
+ ydb-library-security
+ minikql-comp_nodes-llvm
+ providers-pq-cm_client
+ udf-service-exception_policy
+ public-lib-base
+ lib-deprecated-client
+ ydb-services-auth
+ ydb-services-cms
+ ydb-services-dynamic_config
+ ydb-services-datastreams
+ ydb-services-discovery
+ ydb-services-fq
+ ydb-services-kesus
+ ydb-services-keyvalue
+ ydb-services-local_discovery
+ ydb-services-maintenance
+ services-metadata-ds_table
+ ydb-services-metadata
+ services-bg_tasks-ds_table
+ ydb-services-bg_tasks
+ services-ext_index-service
+ services-ext_index-metadata
+ ydb-services-monitoring
+ ydb-services-persqueue_cluster_discovery
+ services-deprecated-persqueue_v0
+ ydb-services-persqueue_v1
+ ydb-services-rate_limiter
+ ydb-services-ydb
+)
+target_sources(run PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.cpp
+)
diff --git a/ydb/core/driver_lib/run/CMakeLists.txt b/ydb/core/driver_lib/run/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/run/CMakeLists.txt
+++ b/ydb/core/driver_lib/run/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..892768c8c4
--- /dev/null
+++ b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-driver_lib-run-ut)
+target_compile_options(ydb-core-driver_lib-run-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-driver_lib-run-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run
+)
+target_link_libraries(ydb-core-driver_lib-run-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ run
+ core-testlib-default
+)
+target_link_options(ydb-core-driver_lib-run-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-driver_lib-run-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-driver_lib-run-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-driver_lib-run-ut
+ TEST_TARGET
+ ydb-core-driver_lib-run-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-run-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-run-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-run-ut
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-core-driver_lib-run-ut
+ system_allocator
+)
+vcs_info(ydb-core-driver_lib-run-ut)
diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.txt b/ydb/core/driver_lib/run/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/run/ut/CMakeLists.txt
+++ b/ydb/core/driver_lib/run/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b985c23cb
--- /dev/null
+++ b/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(version)
+target_link_libraries(version PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-actors-interconnect
+ monlib-service-pages
+ library-cpp-svnversion
+ ydb-core-protos
+ core-viewer-json
+)
+target_sources(version PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp
+)
diff --git a/ydb/core/driver_lib/version/CMakeLists.txt b/ydb/core/driver_lib/version/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/version/CMakeLists.txt
+++ b/ydb/core/driver_lib/version/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f1886e8de
--- /dev/null
+++ b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-driver_lib-version-ut)
+target_include_directories(ydb-core-driver_lib-version-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version
+)
+target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ version
+)
+target_link_options(ydb-core-driver_lib-version-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-driver_lib-version-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-driver_lib-version-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-driver_lib-version-ut
+ TEST_TARGET
+ ydb-core-driver_lib-version-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-version-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-version-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-driver_lib-version-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-core-driver_lib-version-ut
+ system_allocator
+)
+vcs_info(ydb-core-driver_lib-version-ut)
diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.txt b/ydb/core/driver_lib/version/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/driver_lib/version/ut/CMakeLists.txt
+++ b/ydb/core/driver_lib/version/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/engine/CMakeLists.darwin-arm64.txt b/ydb/core/engine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e424e4640f
--- /dev/null
+++ b/ydb/core/engine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(minikql)
+add_subdirectory(ut)
+
+add_library(ydb-core-engine)
+target_compile_options(ydb-core-engine PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-engine PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ cpp-deprecated-enum_codegen
+ library-cpp-random_provider
+ library-cpp-time_provider
+ ydb-core-base
+ ydb-core-scheme
+ ydb-core-tablet
+ ydb-library-mkql_proto
+ library-mkql_proto-protos
+ api-protos
+ minikql-comp_nodes-llvm
+ parser-pg_wrapper-interface
+ yql-public-decimal
+)
+target_sources(ydb-core-engine PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_keys.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.cpp
+)
diff --git a/ydb/core/engine/CMakeLists.txt b/ydb/core/engine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/engine/CMakeLists.txt
+++ b/ydb/core/engine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt b/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..924d66edc5
--- /dev/null
+++ b/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-engine-minikql)
+target_compile_options(core-engine-minikql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-engine-minikql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-engine
+ ydb-core-formats
+ ydb-core-tablet_flat
+ parser-pg_wrapper-interface
+)
+target_sources(core-engine-minikql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp
+)
diff --git a/ydb/core/engine/minikql/CMakeLists.txt b/ydb/core/engine/minikql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/engine/minikql/CMakeLists.txt
+++ b/ydb/core/engine/minikql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt b/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fc6a0f5a05
--- /dev/null
+++ b/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-engine-ut)
+target_compile_options(ydb-core-engine-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-engine-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine
+)
+target_link_libraries(ydb-core-engine-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-engine
+ core-engine-minikql
+ kqp-ut-common
+ test-libs-table
+ mkql_proto-ut-helpers
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-engine-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-engine-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-engine-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-engine-ut
+ TEST_TARGET
+ ydb-core-engine-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-engine-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-engine-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-engine-ut
+ PROPERTY
+ TIMEOUT
+ 150
+)
+target_allocator(ydb-core-engine-ut
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-core-engine-ut)
diff --git a/ydb/core/engine/ut/CMakeLists.txt b/ydb/core/engine/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/engine/ut/CMakeLists.txt
+++ b/ydb/core/engine/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/erasure/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..90225bebac
--- /dev/null
+++ b/ydb/core/erasure/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(ut_perf)
+add_subdirectory(ut_rope)
+
+add_library(ydb-core-erasure)
+target_link_libraries(ydb-core-erasure PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-containers-stack_vector
+ cpp-digest-crc32c
+ cpp-digest-old_crc
+ ydb-core-debug
+)
+target_sources(ydb-core-erasure PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_split.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_restore.cpp
+)
diff --git a/ydb/core/erasure/CMakeLists.txt b/ydb/core/erasure/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/erasure/CMakeLists.txt
+++ b/ydb/core/erasure/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe867c1d46
--- /dev/null
+++ b/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-erasure-ut)
+target_include_directories(ydb-core-erasure-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure
+)
+target_link_libraries(ydb-core-erasure-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-erasure
+ cpp-digest-crc32c
+)
+target_link_options(ydb-core-erasure-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-erasure-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_new_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-erasure-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-erasure-ut
+ TEST_TARGET
+ ydb-core-erasure-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-erasure-ut
+ system_allocator
+)
+vcs_info(ydb-core-erasure-ut)
diff --git a/ydb/core/erasure/ut/CMakeLists.txt b/ydb/core/erasure/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/erasure/ut/CMakeLists.txt
+++ b/ydb/core/erasure/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..19e7454b5f
--- /dev/null
+++ b/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-erasure-ut_perf)
+target_include_directories(ydb-core-erasure-ut_perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure
+)
+target_link_libraries(ydb-core-erasure-ut_perf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-erasure
+)
+target_link_options(ydb-core-erasure-ut_perf PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-erasure-ut_perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp
+)
+set_property(
+ TARGET
+ ydb-core-erasure-ut_perf
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-erasure-ut_perf
+ TEST_TARGET
+ ydb-core-erasure-ut_perf
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut_perf
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut_perf
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-erasure-ut_perf
+ system_allocator
+)
+vcs_info(ydb-core-erasure-ut_perf)
diff --git a/ydb/core/erasure/ut_perf/CMakeLists.txt b/ydb/core/erasure/ut_perf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/erasure/ut_perf/CMakeLists.txt
+++ b/ydb/core/erasure/ut_perf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..480656c7c6
--- /dev/null
+++ b/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-erasure-ut_rope)
+target_include_directories(ydb-core-erasure-ut_rope PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure
+)
+target_link_libraries(ydb-core-erasure-ut_rope PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-erasure
+ cpp-digest-crc32c
+)
+target_link_options(ydb-core-erasure-ut_rope PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-erasure-ut_rope PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-erasure-ut_rope
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-erasure-ut_rope
+ TEST_TARGET
+ ydb-core-erasure-ut_rope
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut_rope
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut_rope
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-erasure-ut_rope
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-erasure-ut_rope
+ system_allocator
+)
+vcs_info(ydb-core-erasure-ut_rope)
diff --git a/ydb/core/erasure/ut_rope/CMakeLists.txt b/ydb/core/erasure/ut_rope/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/erasure/ut_rope/CMakeLists.txt
+++ b/ydb/core/erasure/ut_rope/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/external_sources/CMakeLists.darwin-arm64.txt b/ydb/core/external_sources/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69d796b77b
--- /dev/null
+++ b/ydb/core/external_sources/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-external_sources)
+target_link_libraries(ydb-core-external_sources PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-scheme
+ ydb-core-base
+ ydb-core-protos
+ providers-common-db_id_async_resolver
+ providers-s3-path_generator
+ cpp-client-ydb_params
+ cpp-client-ydb_value
+)
+target_sources(ydb-core-external_sources PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/external_data_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/external_source_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage.cpp
+)
diff --git a/ydb/core/external_sources/CMakeLists.txt b/ydb/core/external_sources/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/external_sources/CMakeLists.txt
+++ b/ydb/core/external_sources/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt b/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe7b99c1e5
--- /dev/null
+++ b/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-external_sources-ut)
+target_include_directories(ydb-core-external_sources-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources
+)
+target_link_libraries(ydb-core-external_sources-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-external_sources
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-external_sources-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-external_sources-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/external_data_source.cpp
+)
+set_property(
+ TARGET
+ ydb-core-external_sources-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-external_sources-ut
+ TEST_TARGET
+ ydb-core-external_sources-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-external_sources-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-external_sources-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-external_sources-ut
+ system_allocator
+)
+vcs_info(ydb-core-external_sources-ut)
diff --git a/ydb/core/external_sources/ut/CMakeLists.txt b/ydb/core/external_sources/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/external_sources/ut/CMakeLists.txt
+++ b/ydb/core/external_sources/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/filestore/CMakeLists.darwin-arm64.txt b/ydb/core/filestore/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1da110d335
--- /dev/null
+++ b/ydb/core/filestore/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(core)
+
+add_library(ydb-core-filestore INTERFACE)
+target_link_libraries(ydb-core-filestore INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ core-filestore-core
+)
diff --git a/ydb/core/filestore/CMakeLists.txt b/ydb/core/filestore/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/filestore/CMakeLists.txt
+++ b/ydb/core/filestore/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/filestore/core/CMakeLists.darwin-arm64.txt b/ydb/core/filestore/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff157c3f06
--- /dev/null
+++ b/ydb/core/filestore/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-filestore-core)
+target_link_libraries(core-filestore-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(core-filestore-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/filestore/core/filestore.cpp
+)
diff --git a/ydb/core/filestore/core/CMakeLists.txt b/ydb/core/filestore/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/filestore/core/CMakeLists.txt
+++ b/ydb/core/filestore/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/CMakeLists.darwin-arm64.txt b/ydb/core/formats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1230dd58c
--- /dev/null
+++ b/ydb/core/formats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arrow)
+
+add_library(ydb-core-formats)
+target_compile_options(ydb-core-formats PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-formats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-scheme
+)
+target_sources(ydb-core-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp
+)
diff --git a/ydb/core/formats/CMakeLists.txt b/ydb/core/formats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/CMakeLists.txt
+++ b/ydb/core/formats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..59de4d93df
--- /dev/null
+++ b/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(compression)
+add_subdirectory(dictionary)
+add_subdirectory(reader)
+add_subdirectory(serializer)
+add_subdirectory(simple_builder)
+add_subdirectory(switch)
+add_subdirectory(transformer)
+add_subdirectory(ut)
+
+add_library(core-formats-arrow)
+target_compile_options(core-formats-arrow PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(core-formats-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(core-formats-arrow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-scheme
+ formats-arrow-serializer
+ formats-arrow-simple_builder
+ formats-arrow-dictionary
+ formats-arrow-transformer
+ formats-arrow-reader
+ cpp-actors-core
+ ydb-library-arrow_kernels
+ ydb-library-binary_json
+ ydb-library-dynumber
+ ydb-library-services
+ ydb-library-arrow_clickhouse
+)
+target_sources(core-formats-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/custom_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/permutations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/program.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/replace_key.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/size_calcer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ssa_program_optimizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/special_keys.cpp
+)
diff --git a/ydb/core/formats/arrow/CMakeLists.txt b/ydb/core/formats/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/CMakeLists.txt
+++ b/ydb/core/formats/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/common/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..757b729018
--- /dev/null
+++ b/ydb/core/formats/arrow/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-common)
+target_link_libraries(formats-arrow-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(formats-arrow-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/common/validation.cpp
+)
diff --git a/ydb/core/formats/arrow/common/CMakeLists.txt b/ydb/core/formats/arrow/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/common/CMakeLists.txt
+++ b/ydb/core/formats/arrow/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f1b4b72ad
--- /dev/null
+++ b/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-compression)
+target_link_libraries(formats-arrow-compression PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ ydb-library-conclusion
+)
+target_sources(formats-arrow-compression PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp
+)
diff --git a/ydb/core/formats/arrow/compression/CMakeLists.txt b/ydb/core/formats/arrow/compression/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/compression/CMakeLists.txt
+++ b/ydb/core/formats/arrow/compression/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/dictionary/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/dictionary/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37ff6ac325
--- /dev/null
+++ b/ydb/core/formats/arrow/dictionary/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-dictionary)
+target_link_libraries(formats-arrow-dictionary PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ formats-arrow-simple_builder
+ formats-arrow-switch
+ cpp-actors-core
+)
+target_sources(formats-arrow-dictionary PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/dictionary/conversion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/dictionary/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/dictionary/diff.cpp
+)
diff --git a/ydb/core/formats/arrow/dictionary/CMakeLists.txt b/ydb/core/formats/arrow/dictionary/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/dictionary/CMakeLists.txt
+++ b/ydb/core/formats/arrow/dictionary/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/reader/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..161c775200
--- /dev/null
+++ b/ydb/core/formats/arrow/reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-reader)
+target_link_libraries(formats-arrow-reader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ formats-arrow-simple_builder
+ formats-arrow-switch
+ cpp-actors-core
+)
+target_sources(formats-arrow-reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/reader/read_filter_merger.cpp
+)
diff --git a/ydb/core/formats/arrow/reader/CMakeLists.txt b/ydb/core/formats/arrow/reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/reader/CMakeLists.txt
+++ b/ydb/core/formats/arrow/reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ac14ecc71
--- /dev/null
+++ b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-serializer)
+target_link_libraries(formats-arrow-serializer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ formats-arrow-common
+ cpp-actors-core
+ ydb-core-protos
+)
+target_sources(formats-arrow-serializer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp
+)
diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.txt b/ydb/core/formats/arrow/serializer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/serializer/CMakeLists.txt
+++ b/ydb/core/formats/arrow/serializer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..47b66ad10a
--- /dev/null
+++ b/ydb/core/formats/arrow/simple_builder/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-simple_builder)
+target_link_libraries(formats-arrow-simple_builder PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(formats-arrow-simple_builder PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/simple_builder/filler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/simple_builder/array.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/simple_builder/batch.cpp
+)
diff --git a/ydb/core/formats/arrow/simple_builder/CMakeLists.txt b/ydb/core/formats/arrow/simple_builder/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/simple_builder/CMakeLists.txt
+++ b/ydb/core/formats/arrow/simple_builder/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/switch/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/switch/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f9ac4adff
--- /dev/null
+++ b/ydb/core/formats/arrow/switch/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-switch)
+target_link_libraries(formats-arrow-switch PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-scheme_types
+ cpp-actors-core
+)
+target_sources(formats-arrow-switch PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/switch/switch_type.cpp
+)
diff --git a/ydb/core/formats/arrow/switch/CMakeLists.txt b/ydb/core/formats/arrow/switch/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/switch/CMakeLists.txt
+++ b/ydb/core/formats/arrow/switch/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/transformer/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/transformer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf6cb6bcd6
--- /dev/null
+++ b/ydb/core/formats/arrow/transformer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(formats-arrow-transformer)
+target_link_libraries(formats-arrow-transformer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ formats-arrow-dictionary
+)
+target_sources(formats-arrow-transformer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/transformer/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/transformer/dictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/transformer/composite.cpp
+)
diff --git a/ydb/core/formats/arrow/transformer/CMakeLists.txt b/ydb/core/formats/arrow/transformer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/transformer/CMakeLists.txt
+++ b/ydb/core/formats/arrow/transformer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b493df8561
--- /dev/null
+++ b/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-formats-arrow-ut)
+target_compile_options(ydb-core-formats-arrow-ut PRIVATE
+ -Wno-unused-parameter
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-formats-arrow-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(ydb-core-formats-arrow-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-formats-arrow
+ libs-apache-arrow
+ ydb-library-arrow_kernels
+ ydb-core-base
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-formats-arrow-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-formats-arrow-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_arrow.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_program_step.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp
+)
+set_property(
+ TARGET
+ ydb-core-formats-arrow-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-formats-arrow-ut
+ TEST_TARGET
+ ydb-core-formats-arrow-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-formats-arrow-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-formats-arrow-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-formats-arrow-ut
+ system_allocator
+)
+vcs_info(ydb-core-formats-arrow-ut)
diff --git a/ydb/core/formats/arrow/ut/CMakeLists.txt b/ydb/core/formats/arrow/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/formats/arrow/ut/CMakeLists.txt
+++ b/ydb/core/formats/arrow/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..95f673a4b0
--- /dev/null
+++ b/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,105 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(logging)
+
+add_library(fq-libs-actors)
+target_compile_options(fq-libs-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-json-yson
+ cpp-monlib-dynamic_counters
+ library-cpp-random_provider
+ library-cpp-scheme
+ cpp-string_utils-quote
+ library-cpp-time_provider
+ library-cpp-yson
+ cpp-yson-node
+ ydb-core-base
+ libs-actors-logging
+ fq-libs-checkpointing
+ fq-libs-checkpointing_common
+ fq-libs-common
+ libs-compute-common
+ libs-compute-ydb
+ fq-libs-control_plane_storage
+ libs-control_plane_storage-events
+ fq-libs-db_id_async_resolver_impl
+ fq-libs-db_schema
+ fq-libs-events
+ fq-libs-grpc
+ fq-libs-private_client
+ libs-rate_limiter-utils
+ fq-libs-result_formatter
+ fq-libs-shared_resources
+ fq-libs-signer
+ ydb-core-protos
+ ydb-core-util
+ ydb-library-mkql_proto
+ ydb-library-security
+ library-yql-ast
+ yql-core-facade
+ core-services-mounts
+ dq-integration-transform
+ minikql-comp_nodes-llvm
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-db_id_async_resolver
+ providers-common-metrics
+ providers-common-provider
+ common-schema-mkql
+ common-token_accessor-client
+ providers-common-udf_resolve
+ providers-dq-actors
+ providers-dq-common
+ providers-dq-counters
+ providers-dq-provider
+ dq-provider-exec
+ dq-worker_manager-interface
+ connector-api-common
+ generic-connector-libcpp
+ providers-generic-provider
+ providers-pq-cm_client
+ providers-pq-provider
+ providers-pq-task_meta
+ providers-s3-provider
+ providers-ydb-provider
+ yql-public-issue
+ public-issue-protos
+ yql-sql-settings
+ library-yql-utils
+ yql-utils-actor_log
+ api-protos
+ public-lib-fq
+ cpp-client-ydb_query
+ cpp-client-ydb_operation
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/clusters_from_connections.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/database_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/error.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/nodes_health_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/nodes_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/pending_fetcher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/proxy_private.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/rate_limiter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/rate_limiter_resources.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/result_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/run_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/table_bindings_from_bindings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/task_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/task_ping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/task_result_write.cpp
+)
diff --git a/ydb/core/fq/libs/actors/CMakeLists.txt b/ydb/core/fq/libs/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/actors/CMakeLists.txt
+++ b/ydb/core/fq/libs/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dbf7721d31
--- /dev/null
+++ b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-actors-logging INTERFACE)
+target_link_libraries(libs-actors-logging INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-protos
+)
diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/actors/logging/CMakeLists.txt
+++ b/ydb/core/fq/libs/actors/logging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/audit/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/audit/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6805f5960f
--- /dev/null
+++ b/ydb/core/fq/libs/audit/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+
+add_library(fq-libs-audit)
+target_link_libraries(fq-libs-audit PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_sources(fq-libs-audit PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/audit/yq_audit_service.cpp
+)
diff --git a/ydb/core/fq/libs/audit/CMakeLists.txt b/ydb/core/fq/libs/audit/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/audit/CMakeLists.txt
+++ b/ydb/core/fq/libs/audit/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/audit/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/audit/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f505d5c828
--- /dev/null
+++ b/ydb/core/fq/libs/audit/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-audit-events)
+target_link_libraries(libs-audit-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ fq-libs-checkpointing_common
+ libs-control_plane_storage-events
+ yql-public-issue
+ api-protos
+)
+target_sources(libs-audit-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/audit/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/audit/events/CMakeLists.txt b/ydb/core/fq/libs/audit/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/audit/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/audit/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c5015b5ef0
--- /dev/null
+++ b/ydb/core/fq/libs/checkpoint_storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(proto)
+
+add_library(fq-libs-checkpoint_storage)
+target_compile_options(fq-libs-checkpoint_storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-checkpoint_storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ cpp-actors-core
+ libs-actors-logging
+ fq-libs-control_plane_storage
+ fq-libs-ydb
+ libs-checkpoint_storage-events
+ libs-checkpoint_storage-proto
+ fq-libs-checkpointing_common
+ fq-libs-shared_resources
+ ydb-library-security
+ dq-actors-compute
+ yql-dq-proto
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-checkpoint_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/storage_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/storage_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ydb_checkpoint_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ydb_state_storage.cpp
+)
diff --git a/ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt b/ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpoint_storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e7ce5b8620
--- /dev/null
+++ b/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-checkpoint_storage-events)
+target_link_libraries(libs-checkpoint_storage-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ fq-libs-checkpointing_common
+ fq-libs-events
+ libs-checkpoint_storage-proto
+ yql-public-issue
+)
+target_sources(libs-checkpoint_storage-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt b/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpoint_storage/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b2ae1bcd76
--- /dev/null
+++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-checkpoint_storage-proto)
+target_link_libraries(libs-checkpoint_storage-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-graph_params-proto
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-checkpoint_storage-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto
+)
+target_proto_addincls(libs-checkpoint_storage-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-checkpoint_storage-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6c2adf9a2c
--- /dev/null
+++ b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(ut)
+
+add_library(fq-libs-checkpointing)
+target_compile_options(fq-libs-checkpointing PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-checkpointing PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ libs-actors-logging
+ fq-libs-checkpointing_common
+ libs-checkpoint_storage-events
+ dq-actors-compute
+ yql-dq-proto
+ yql-dq-state
+ dq-api-protos
+)
+target_sources(fq-libs-checkpointing PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.cpp
+)
diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpointing/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpointing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..20f62b33c1
--- /dev/null
+++ b/ydb/core/fq/libs/checkpointing/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-checkpointing-events)
+target_link_libraries(libs-checkpointing-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ fq-libs-checkpointing_common
+)
+target_sources(libs-checkpointing-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/checkpointing/events/CMakeLists.txt b/ydb/core/fq/libs/checkpointing/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpointing/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpointing/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf8ee490c3
--- /dev/null
+++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-checkpointing-ut)
+target_compile_options(ydb-core-fq-libs-checkpointing-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-checkpointing-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing
+)
+target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-checkpointing
+ cpp-testing-unittest
+ core-testlib-actors
+ testlib-basics-default
+)
+target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-checkpointing-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-checkpointing-ut
+ TEST_TARGET
+ ydb-core-fq-libs-checkpointing-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-checkpointing-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-checkpointing-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-checkpointing-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-checkpointing-ut)
diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04f750e592
--- /dev/null
+++ b/ydb/core/fq/libs/checkpointing_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(fq-libs-checkpointing_common)
+target_link_libraries(fq-libs-checkpointing_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-graph_params-proto
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(fq-libs-checkpointing_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing_common/defs.cpp
+)
+generate_enum_serilization(fq-libs-checkpointing_common
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing_common/defs.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/checkpointing_common/defs.h
+)
diff --git a/ydb/core/fq/libs/checkpointing_common/CMakeLists.txt b/ydb/core/fq/libs/checkpointing_common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/checkpointing_common/CMakeLists.txt
+++ b/ydb/core/fq/libs/checkpointing_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8b3ebfca0
--- /dev/null
+++ b/ydb/core/fq/libs/cloud_audit/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-cloud_audit)
+target_link_libraries(fq-libs-cloud_audit PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-log_backend
+ library-cpp-unified_agent_client
+ fq-libs-actors
+ libs-audit-events
+ libs-config-protos
+ ydb-library-folder_service
+ library-ycloud-api
+ client-yc_public-events
+)
+target_sources(fq-libs-cloud_audit PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp
+)
diff --git a/ydb/core/fq/libs/cloud_audit/CMakeLists.txt b/ydb/core/fq/libs/cloud_audit/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/cloud_audit/CMakeLists.txt
+++ b/ydb/core/fq/libs/cloud_audit/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3f433561b0
--- /dev/null
+++ b/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(fq-libs-common)
+target_compile_options(fq-libs-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-blockcodecs
+ libs-control_plane_storage-events
+ fq-libs-events
+ providers-common-structured_token
+ yql-public-issue
+ api-protos
+)
+target_sources(fq-libs-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/debug_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.cpp
+)
+generate_enum_serilization(fq-libs-common
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/common/util.h
+)
diff --git a/ydb/core/fq/libs/common/CMakeLists.txt b/ydb/core/fq/libs/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/common/CMakeLists.txt
+++ b/ydb/core/fq/libs/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0bae2a0e64
--- /dev/null
+++ b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-common-ut)
+target_compile_options(ydb-core-fq-libs-common-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common
+)
+target_link_libraries(ydb-core-fq-libs-common-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-common
+ udf-service-stub
+ yql-sql-pg_dummy
+ ydb-services-ydb
+)
+target_link_options(ydb-core-fq-libs-common-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-common-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-common-ut
+ TEST_TARGET
+ ydb-core-fq-libs-common-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-common-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-common-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-common-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-common-ut)
diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.txt b/ydb/core/fq/libs/common/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/common/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/common/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/common/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94521316ce
--- /dev/null
+++ b/ydb/core/fq/libs/compute/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(libs-compute-common)
+target_compile_options(libs-compute-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-compute-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-yson
+ libs-config-protos
+ fq-libs-db_id_async_resolver_impl
+ fq-libs-grpc
+ fq-libs-shared_resources
+ providers-dq-provider
+ generic-connector-libcpp
+)
+target_sources(libs-compute-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/pinger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/run_actor_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/utils.cpp
+)
diff --git a/ydb/core/fq/libs/compute/common/CMakeLists.txt b/ydb/core/fq/libs/compute/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/common/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a0d0438687
--- /dev/null
+++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-compute-common-ut)
+target_compile_options(ydb-core-fq-libs-compute-common-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-compute-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common
+)
+target_link_libraries(ydb-core-fq-libs-compute-common-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ libs-compute-common
+)
+target_link_options(ydb-core-fq-libs-compute-common-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-compute-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/config_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/utils_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-compute-common-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-compute-common-ut
+ TEST_TARGET
+ ydb-core-fq-libs-compute-common-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-compute-common-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-compute-common-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-compute-common-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-compute-common-ut)
diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7f7b81b1a3
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(control_plane)
+add_subdirectory(events)
+add_subdirectory(synchronization_service)
+
+add_library(libs-compute-ydb)
+target_compile_options(libs-compute-ydb PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-compute-ydb PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ cpp-lwtrace-protos
+ libs-compute-common
+ libs-config-protos
+ libs-control_plane_storage-proto
+ libs-graph_params-proto
+ fq-libs-grpc
+ libs-quota_manager-proto
+ ydb-core-protos
+ ydb-core-util
+ library-db_pool-protos
+ yql-core-expr_nodes
+ yql-dq-expr_nodes
+ yql-minikql-arrow
+ dq-api-protos
+ api-grpc
+ api-grpc-draft
+ lib-operation_id-protos
+)
+target_sources(libs-compute-ydb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/actors_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/executer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/finalizer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/initializer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/resources_cleaner_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/stopper_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/ydb/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d153e9b196
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-control_plane)
+target_compile_options(compute-ydb-control_plane PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-control_plane PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ compute-ydb-synchronization_service
+ libs-control_plane_storage-proto
+ libs-quota_manager-proto
+ ydb-core-protos
+ library-db_pool-protos
+ yql-public-issue
+ api-grpc
+ api-grpc-draft
+ lib-operation_id-protos
+)
+target_sources(compute-ydb-control_plane PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a02e39819c
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-events)
+target_link_libraries(compute-ydb-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ libs-config-protos
+ libs-control_plane_storage-proto
+ fq-libs-protos
+ api-grpc-draft
+ lib-operation_id-protos
+ cpp-client-ydb_query
+)
+target_sources(compute-ydb-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt b/ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/ydb/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5856408bd5
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-synchronization_service)
+target_compile_options(compute-ydb-synchronization_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-synchronization_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ libs-control_plane_storage-proto
+ api-grpc
+ library-db_pool-protos
+ lib-operation_id-protos
+ libs-quota_manager-proto
+ api-grpc-draft
+ ydb-library-services
+)
+target_sources(compute-ydb-synchronization_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/config/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f125dc1810
--- /dev/null
+++ b/ydb/core/fq/libs/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(fq-libs-config)
+target_link_libraries(fq-libs-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-config-protos
+ public-issue-protos
+)
+target_sources(fq-libs-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/yq_issue.cpp
+)
diff --git a/ydb/core/fq/libs/config/CMakeLists.txt b/ydb/core/fq/libs/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/config/CMakeLists.txt
+++ b/ydb/core/fq/libs/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af844d5199
--- /dev/null
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,346 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-config-protos)
+target_link_libraries(libs-config-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-folder_service-proto
+ dq-actors-protos
+ providers-common-proto
+ providers-s3-proto
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-config-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/activation.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/audit.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/common.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/compute.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/db_pool.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/fq_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/gateways.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/health_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/issue_id.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/pinger.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/private_api.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/private_proxy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/resource_manager.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/storage.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto
+)
+target_proto_addincls(libs-config-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-config-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.txt b/ydb/core/fq/libs/config/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/config/protos/CMakeLists.txt
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..53082eed99
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+
+add_library(fq-libs-control_plane_config)
+target_compile_options(fq-libs-control_plane_config PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-control_plane_config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-lwtrace-mon
+ monlib-service-pages
+ ydb-core-base
+ fq-libs-common
+ fq-libs-config
+ libs-control_plane_config-events
+ fq-libs-quota_manager
+ libs-quota_manager-events
+ libs-rate_limiter-events
+ fq-libs-ydb
+ ydb-core-mon
+ ydb-library-db_pool
+ ydb-library-security
+ ydb-library-protobuf_printer
+ yql-public-issue
+ cpp-client-ydb_scheme
+ cpp-client-ydb_value
+)
+target_sources(fq-libs-control_plane_config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_config/control_plane_config.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_config/CMakeLists.txt b/ydb/core/fq/libs/control_plane_config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_config/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1eb52c9cd
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_config/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_config-events)
+target_link_libraries(libs-control_plane_config-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ libs-control_plane_storage-proto
+ fq-libs-events
+ libs-quota_manager-events
+)
+target_sources(libs-control_plane_config-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_config/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt b/ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_config/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..959fb59769
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+add_subdirectory(events)
+add_subdirectory(ut)
+
+add_library(fq-libs-control_plane_proxy)
+target_compile_options(fq-libs-control_plane_proxy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-control_plane_proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ fq-libs-actors
+ libs-actors-logging
+ libs-compute-ydb
+ compute-ydb-control_plane
+ fq-libs-control_plane_config
+ libs-control_plane_proxy-actors
+ libs-control_plane_proxy-events
+ fq-libs-control_plane_storage
+ libs-rate_limiter-events
+ fq-libs-result_formatter
+ ydb-core-mon
+ ydb-library-folder_service
+ ydb-library-security
+ library-ycloud-api
+ library-ycloud-impl
+)
+target_sources(fq-libs-control_plane_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/probes.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aec61de9c6
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(libs-control_plane_proxy-actors)
+target_compile_options(libs-control_plane_proxy-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_proxy-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-iterator
+ fq-libs-common
+ libs-control_plane_proxy-events
+ libs-control_plane_storage-events
+ fq-libs-result_formatter
+ core-kqp-provider
+ library-db_pool-protos
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(libs-control_plane_proxy-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
+)
+generate_enum_serilization(libs-control_plane_proxy-actors
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2bf0dce181
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_proxy-events)
+target_link_libraries(libs-control_plane_proxy-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ libs-control_plane_storage-events
+ libs-quota_manager-events
+)
+target_sources(libs-control_plane_proxy-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt b/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2d8f5b7c89
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-control_plane_proxy-ut)
+target_compile_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy
+)
+target_link_libraries(ydb-core-fq-libs-control_plane_proxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-control_plane_proxy
+ cpp-testing-unittest
+ ydb-core-base
+ libs-actors-logging
+ fq-libs-control_plane_storage
+ fq-libs-test_connection
+ libs-quota_manager-ut_helpers
+ libs-rate_limiter-control_plane_service
+ core-testlib-default
+ ydb-library-folder_service
+ library-folder_service-mock
+)
+target_link_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-control_plane_proxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-control_plane_proxy-ut
+ TEST_TARGET
+ ydb-core-fq-libs-control_plane_proxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-control_plane_proxy-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-control_plane_proxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-control_plane_proxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-control_plane_proxy-ut)
diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be2bb947e2
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(internal)
+add_subdirectory(proto)
+
+add_library(fq-libs-control_plane_storage)
+target_compile_options(fq-libs-control_plane_storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-control_plane_storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lwtrace
+ cpp-protobuf-interop
+ ydb-core-base
+ libs-actors-logging
+ fq-libs-common
+ fq-libs-config
+ libs-config-protos
+ libs-control_plane_storage-events
+ libs-control_plane_storage-internal
+ libs-control_plane_storage-proto
+ fq-libs-db_schema
+ libs-graph_params-proto
+ libs-quota_manager-events
+ fq-libs-shared_resources
+ fq-libs-ydb
+ ydb-core-mon
+ ydb-library-security
+ api-protos
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ ydb-library-db_pool
+ providers-s3-path_generator
+ yql-public-issue
+)
+target_sources(fq-libs-control_plane_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/control_plane_storage_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/in_memory_control_plane_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/request_validators.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/validators.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_quotas.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_storage/CMakeLists.txt b/ydb/core/fq/libs/control_plane_storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_storage/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..557ca0086d
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_storage-events)
+target_link_libraries(libs-control_plane_storage-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ libs-control_plane_storage-proto
+ fq-libs-events
+ libs-quota_manager-events
+)
+target_sources(libs-control_plane_storage-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt b/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_storage/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee1ca65432
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_storage-internal)
+target_compile_options(libs-control_plane_storage-internal PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_storage-internal PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-lwtrace-mon
+ monlib-service-pages
+ ydb-core-base
+ ydb-core-metering
+ fq-libs-common
+ fq-libs-config
+ libs-control_plane_storage-proto
+ fq-libs-exceptions
+ fq-libs-quota_manager
+ libs-quota_manager-events
+ libs-rate_limiter-events
+ fq-libs-ydb
+ ydb-core-mon
+ ydb-library-protobuf_printer
+ ydb-library-security
+ yql-public-issue
+ public-lib-fq
+ cpp-client-ydb_scheme
+ cpp-client-ydb_value
+)
+target_sources(libs-control_plane_storage-internal PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/nodes_health_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/rate_limiter_resources.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/response_tasks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/task_ping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/task_result_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/utils.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5a1066883e
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-control_plane_storage-proto)
+target_link_libraries(libs-control_plane_storage-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ fq-libs-protos
+ yql-dq-proto
+ dq-api-protos
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-control_plane_storage-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto
+)
+target_proto_addincls(libs-control_plane_storage-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-control_plane_storage-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt
+++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d9e0b7279f
--- /dev/null
+++ b/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(fq-libs-db_id_async_resolver_impl)
+target_compile_options(fq-libs-db_id_async_resolver_impl PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-db_id_async_resolver_impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ fq-libs-events
+ providers-common-db_id_async_resolver
+ providers-dq-actors
+)
+target_sources(fq-libs-db_id_async_resolver_impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/db_async_resolver_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/mdb_endpoint_generator.cpp
+)
diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt
+++ b/ydb/core/fq/libs/db_id_async_resolver_impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7bb6bfd91
--- /dev/null
+++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-db_id_async_resolver_impl-ut)
+target_compile_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-fq-libs-db_id_async_resolver_impl-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-db_id_async_resolver_impl
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/ut/mdb_endpoint_generator_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ TEST_TARGET
+ ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-db_id_async_resolver_impl-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-db_id_async_resolver_impl-ut)
diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/db_schema/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/db_schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94bab24966
--- /dev/null
+++ b/ydb/core/fq/libs/db_schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-db_schema)
+target_compile_options(fq-libs-db_schema PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-db_schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_params
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-db_schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_schema/db_schema.cpp
+)
diff --git a/ydb/core/fq/libs/db_schema/CMakeLists.txt b/ydb/core/fq/libs/db_schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/db_schema/CMakeLists.txt
+++ b/ydb/core/fq/libs/db_schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..01cfa818ec
--- /dev/null
+++ b/ydb/core/fq/libs/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,49 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(fq-libs-events)
+target_compile_options(fq-libs-events PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ libs-graph_params-proto
+ fq-libs-protos
+ yql-core-facade
+ providers-common-db_id_async_resolver
+ providers-dq-provider
+ yql-public-issue
+ api-protos
+ cpp-client-ydb_table
+)
+generate_enum_serilization(fq-libs-events
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/events/events.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/events/events.h
+)
+generate_enum_serilization(fq-libs-events
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/events/event_ids.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/events/event_ids.h
+)
diff --git a/ydb/core/fq/libs/events/CMakeLists.txt b/ydb/core/fq/libs/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/exceptions/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/exceptions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68116093f9
--- /dev/null
+++ b/ydb/core/fq/libs/exceptions/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-exceptions)
+target_link_libraries(fq-libs-exceptions PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-config-protos
+)
+target_sources(fq-libs-exceptions PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/exceptions/exceptions.cpp
+)
diff --git a/ydb/core/fq/libs/exceptions/CMakeLists.txt b/ydb/core/fq/libs/exceptions/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/exceptions/CMakeLists.txt
+++ b/ydb/core/fq/libs/exceptions/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/gateway/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8bb258ffd0
--- /dev/null
+++ b/ydb/core/fq/libs/gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-gateway)
+target_compile_options(fq-libs-gateway PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+ fq-libs-actors
+ fq-libs-events
+ fq-libs-read_rule
+ fq-libs-shared_resources
+ fq-libs-tasks_packer
+ common-token_accessor-client
+ yql-public-issue
+ providers-common-metrics
+ providers-dq-actors
+ dq-api-protos
+ providers-pq-proto
+ api-protos
+)
+target_sources(fq-libs-gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/gateway/empty_gateway.cpp
+)
diff --git a/ydb/core/fq/libs/gateway/CMakeLists.txt b/ydb/core/fq/libs/gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/gateway/CMakeLists.txt
+++ b/ydb/core/fq/libs/gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cef8ac1b38
--- /dev/null
+++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-graph_params-proto)
+target_link_libraries(libs-graph_params-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-proto
+ dq-api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-graph_params-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto
+)
+target_proto_addincls(libs-graph_params-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-graph_params-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.txt
+++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7c8a43428f
--- /dev/null
+++ b/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(fq-libs-grpc)
+set_property(TARGET fq-libs-grpc PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(fq-libs-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ api-protos
+ fq-libs-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(fq-libs-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto
+)
+target_proto_addincls(fq-libs-grpc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(fq-libs-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(fq-libs-grpc
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/core/fq/libs/grpc/CMakeLists.txt b/ydb/core/fq/libs/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/grpc/CMakeLists.txt
+++ b/ydb/core/fq/libs/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/health/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/health/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4bbc7b0f27
--- /dev/null
+++ b/ydb/core/fq/libs/health/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-health)
+target_compile_options(fq-libs-health PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-health PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ fq-libs-shared_resources
+ ydb-core-mon
+ cpp-client-ydb_discovery
+)
+target_sources(fq-libs-health PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/health/health.cpp
+)
diff --git a/ydb/core/fq/libs/health/CMakeLists.txt b/ydb/core/fq/libs/health/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/health/CMakeLists.txt
+++ b/ydb/core/fq/libs/health/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/hmac/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/hmac/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..adc04d53a3
--- /dev/null
+++ b/ydb/core/fq/libs/hmac/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(fq-libs-hmac)
+target_link_libraries(fq-libs-hmac PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ cpp-string_utils-base64
+)
+target_sources(fq-libs-hmac PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/hmac/hmac.cpp
+)
diff --git a/ydb/core/fq/libs/hmac/CMakeLists.txt b/ydb/core/fq/libs/hmac/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/hmac/CMakeLists.txt
+++ b/ydb/core/fq/libs/hmac/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e3adcf67e
--- /dev/null
+++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-hmac-ut)
+target_include_directories(ydb-core-fq-libs-hmac-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/hmac
+)
+target_link_libraries(ydb-core-fq-libs-hmac-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-hmac
+)
+target_link_options(ydb-core-fq-libs-hmac-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-core-fq-libs-hmac-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/hmac/ut/hmac_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-hmac-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-hmac-ut
+ TEST_TARGET
+ ydb-core-fq-libs-hmac-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-hmac-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-hmac-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-hmac-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-hmac-ut)
diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/hmac/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5b59270a00
--- /dev/null
+++ b/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-init)
+target_compile_options(fq-libs-init PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-init PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-http
+ ydb-core-base
+ fq-libs-actors
+ fq-libs-audit
+ fq-libs-checkpoint_storage
+ fq-libs-checkpointing
+ fq-libs-cloud_audit
+ fq-libs-common
+ compute-ydb-control_plane
+ fq-libs-control_plane_config
+ fq-libs-control_plane_proxy
+ fq-libs-control_plane_storage
+ fq-libs-events
+ fq-libs-gateway
+ fq-libs-health
+ fq-libs-quota_manager
+ libs-rate_limiter-control_plane_service
+ libs-rate_limiter-quoter_service
+ fq-libs-shared_resources
+ fq-libs-test_connection
+ ydb-core-protos
+ ydb-library-folder_service
+ library-folder_service-proto
+ ydb-library-security
+ minikql-comp_nodes-llvm
+ yql-utils-actor_log
+ dq-actors-compute
+ yql-dq-comp_nodes
+ yql-dq-transform
+ providers-common-comp_nodes
+ providers-common-metrics
+ providers-dq-actors
+ dq-api-protos
+ providers-dq-provider
+ providers-dq-task_runner
+ providers-dq-worker_manager
+ dq-worker_manager-interface
+ providers-generic-actors
+ providers-pq-async_io
+ providers-pq-cm_client
+ pq-gateway-native
+ providers-pq-provider
+ providers-s3-actors
+ providers-s3-proto
+ providers-s3-provider
+ providers-solomon-async_io
+ providers-solomon-gateway
+ providers-solomon-proto
+ providers-solomon-provider
+ providers-ydb-actors
+ providers-ydb-comp_nodes
+ providers-ydb-provider
+)
+target_sources(fq-libs-init PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/init/init.cpp
+)
diff --git a/ydb/core/fq/libs/init/CMakeLists.txt b/ydb/core/fq/libs/init/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/init/CMakeLists.txt
+++ b/ydb/core/fq/libs/init/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/logs/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/logs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3ec5fff6ba
--- /dev/null
+++ b/ydb/core/fq/libs/logs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-logs)
+target_compile_options(fq-libs-logs PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-logs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-protos
+ yql-utils-actor_log
+)
+target_sources(fq-libs-logs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/logs/log.cpp
+)
diff --git a/ydb/core/fq/libs/logs/CMakeLists.txt b/ydb/core/fq/libs/logs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/logs/CMakeLists.txt
+++ b/ydb/core/fq/libs/logs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1fafa6d9ba
--- /dev/null
+++ b/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,53 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-mock)
+target_compile_options(fq-libs-mock PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-json-yson
+ cpp-monlib-dynamic_counters
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-cpp-yson
+ cpp-yson-node
+ ydb-core-base
+ fq-libs-actors
+ fq-libs-common
+ fq-libs-db_schema
+ libs-shared_resources-interface
+ ydb-core-protos
+ ydb-library-mkql_proto
+ library-yql-ast
+ yql-core-facade
+ core-services-mounts
+ dq-integration-transform
+ minikql-comp_nodes-llvm
+ providers-clickhouse-provider
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-provider
+ common-schema-mkql
+ providers-common-udf_resolve
+ providers-dq-provider
+ dq-worker_manager-interface
+ providers-ydb-provider
+ yql-public-issue
+ public-issue-protos
+ yql-sql-settings
+ api-protos
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/mock/yql_mock.cpp
+)
diff --git a/ydb/core/fq/libs/mock/CMakeLists.txt b/ydb/core/fq/libs/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/mock/CMakeLists.txt
+++ b/ydb/core/fq/libs/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60f3e12815
--- /dev/null
+++ b/ydb/core/fq/libs/pretty_printers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-pretty_printers)
+target_compile_options(fq-libs-pretty_printers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-pretty_printers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ libs-graph_params-proto
+ ydb-library-protobuf_printer
+ library-yql-minikql
+ dq-api-protos
+)
+target_sources(fq-libs-pretty_printers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/pretty_printers/graph_params_printer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/pretty_printers/minikql_program_printer.cpp
+)
diff --git a/ydb/core/fq/libs/pretty_printers/CMakeLists.txt b/ydb/core/fq/libs/pretty_printers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/pretty_printers/CMakeLists.txt
+++ b/ydb/core/fq/libs/pretty_printers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/private_client/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/private_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ce9137757b
--- /dev/null
+++ b/ydb/core/fq/libs/private_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-private_client)
+target_compile_options(fq-libs-private_client PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-private_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-dynamic_counters
+ cpp-protobuf-json
+ libs-control_plane_storage-proto
+ fq-libs-grpc
+ fq-libs-shared_resources
+ ydb-core-protos
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-private_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/private_client/internal_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/private_client/loopback_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/private_client/private_client.cpp
+)
diff --git a/ydb/core/fq/libs/private_client/CMakeLists.txt b/ydb/core/fq/libs/private_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/private_client/CMakeLists.txt
+++ b/ydb/core/fq/libs/private_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7e39a3f60b
--- /dev/null
+++ b/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(fq-libs-protos)
+target_link_libraries(fq-libs-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-config-protos
+ dq-actors-protos
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(fq-libs-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto
+)
+target_proto_addincls(fq-libs-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(fq-libs-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/protos/CMakeLists.txt b/ydb/core/fq/libs/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/protos/CMakeLists.txt
+++ b/ydb/core/fq/libs/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/quota_manager/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/quota_manager/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1a06ee486
--- /dev/null
+++ b/ydb/core/fq/libs/quota_manager/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(proto)
+add_subdirectory(ut_helpers)
+
+add_library(fq-libs-quota_manager)
+target_compile_options(fq-libs-quota_manager PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-quota_manager PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-dynamic_counters
+ cpp-protobuf-json
+ libs-control_plane_storage-proto
+ libs-quota_manager-events
+ fq-libs-shared_resources
+ ydb-core-protos
+ api-grpc-draft
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-quota_manager PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/quota_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/quota_proxy.cpp
+)
diff --git a/ydb/core/fq/libs/quota_manager/CMakeLists.txt b/ydb/core/fq/libs/quota_manager/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/quota_manager/CMakeLists.txt
+++ b/ydb/core/fq/libs/quota_manager/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a15abab33
--- /dev/null
+++ b/ydb/core/fq/libs/quota_manager/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-quota_manager-events)
+target_link_libraries(libs-quota_manager-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ fq-libs-events
+ libs-quota_manager-proto
+)
+target_sources(libs-quota_manager-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/quota_manager/events/CMakeLists.txt b/ydb/core/fq/libs/quota_manager/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/quota_manager/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/quota_manager/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..baf535c007
--- /dev/null
+++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(libs-quota_manager-proto)
+target_link_libraries(libs-quota_manager-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(libs-quota_manager-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto
+)
+target_proto_addincls(libs-quota_manager-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(libs-quota_manager-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt
+++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..18af5f413a
--- /dev/null
+++ b/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-quota_manager-ut_helpers)
+target_link_libraries(libs-quota_manager-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ libs-quota_manager-events
+)
+target_sources(libs-quota_manager-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/ut_helpers/fake_quota_manager.cpp
+)
diff --git a/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt b/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt
+++ b/ydb/core/fq/libs/quota_manager/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ddf95e4e77
--- /dev/null
+++ b/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-rate_limiter-control_plane_service)
+target_compile_options(libs-rate_limiter-control_plane_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-rate_limiter-control_plane_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ libs-config-protos
+ fq-libs-events
+ libs-quota_manager-events
+ libs-rate_limiter-events
+ libs-rate_limiter-utils
+ fq-libs-shared_resources
+ fq-libs-ydb
+ ydb-core-protos
+ ydb-library-security
+)
+target_sources(libs-rate_limiter-control_plane_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/control_plane_service/rate_limiter_control_plane_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/control_plane_service/update_limit_actor.cpp
+)
diff --git a/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt b/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt
+++ b/ydb/core/fq/libs/rate_limiter/control_plane_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c971f7c031
--- /dev/null
+++ b/ydb/core/fq/libs/rate_limiter/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-rate_limiter-events)
+target_link_libraries(libs-rate_limiter-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ fq-libs-events
+)
+target_sources(libs-rate_limiter-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/events/control_plane_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/events/data_plane.cpp
+)
diff --git a/ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt b/ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/rate_limiter/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c5921a3c4
--- /dev/null
+++ b/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-rate_limiter-quoter_service)
+target_compile_options(libs-rate_limiter-quoter_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-rate_limiter-quoter_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ libs-config-protos
+ libs-rate_limiter-events
+ fq-libs-shared_resources
+ fq-libs-ydb
+ ydb-core-protos
+ ydb-library-security
+)
+target_sources(libs-rate_limiter-quoter_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp
+)
diff --git a/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt b/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt
+++ b/ydb/core/fq/libs/rate_limiter/quoter_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c424f73460
--- /dev/null
+++ b/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-rate_limiter-utils)
+target_link_libraries(libs-rate_limiter-utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(libs-rate_limiter-utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/rate_limiter/utils/path.cpp
+)
diff --git a/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt b/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt
+++ b/ydb/core/fq/libs/rate_limiter/utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/read_rule/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/read_rule/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2f0ee0dec6
--- /dev/null
+++ b/ydb/core/fq/libs/read_rule/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-read_rule)
+target_compile_options(fq-libs-read_rule PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-read_rule PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ fq-libs-events
+ ydb-core-protos
+ api-protos
+ lib-operation_id-protos
+ cpp-client-ydb_persqueue_core
+ providers-common-proto
+ dq-api-protos
+ providers-pq-proto
+)
+target_sources(fq-libs-read_rule PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/read_rule/read_rule_creator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/read_rule/read_rule_deleter.cpp
+)
diff --git a/ydb/core/fq/libs/read_rule/CMakeLists.txt b/ydb/core/fq/libs/read_rule/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/read_rule/CMakeLists.txt
+++ b/ydb/core/fq/libs/read_rule/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37994c7c35
--- /dev/null
+++ b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(fq-libs-result_formatter)
+target_compile_options(fq-libs-result_formatter PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-result_formatter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ cpp-json-yson
+ ydb-library-mkql_proto
+ library-yql-ast
+ minikql-computation-llvm
+ yql-public-udf
+ api-protos
+ cpp-client-ydb_proto
+ cpp-client-ydb_result
+ cpp-client-ydb_value
+ providers-common-codec
+ common-schema-expr
+ common-schema-mkql
+)
+target_sources(fq-libs-result_formatter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter.cpp
+)
diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/result_formatter/CMakeLists.txt
+++ b/ydb/core/fq/libs/result_formatter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8bedad0c07
--- /dev/null
+++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-result_formatter-ut)
+target_compile_options(ydb-core-fq-libs-result_formatter-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-result_formatter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter
+)
+target_link_libraries(ydb-core-fq-libs-result_formatter-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-result_formatter
+ udf-service-stub
+ yql-sql-pg_dummy
+ ydb-services-ydb
+)
+target_link_options(ydb-core-fq-libs-result_formatter-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-result_formatter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-result_formatter-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-result_formatter-ut
+ TEST_TARGET
+ ydb-core-fq-libs-result_formatter-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-result_formatter-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-result_formatter-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-result_formatter-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-result_formatter-ut)
diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0da84f0c8f
--- /dev/null
+++ b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+
+add_library(fq-libs-shared_resources)
+target_compile_options(fq-libs-shared_resources PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-shared_resources PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+ fq-libs-common
+ fq-libs-config
+ libs-control_plane_storage-proto
+ fq-libs-db_schema
+ fq-libs-events
+ fq-libs-exceptions
+ libs-quota_manager-events
+ libs-shared_resources-interface
+ ydb-core-protos
+ ydb-library-db_pool
+ ydb-library-logger
+ ydb-library-security
+ cpp-client-ydb_driver
+ cpp-client-ydb_table
+)
+target_sources(fq-libs-shared_resources PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/shared_resources/db_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/shared_resources/shared_resources.cpp
+)
diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/shared_resources/CMakeLists.txt
+++ b/ydb/core/fq/libs/shared_resources/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0616e46dc
--- /dev/null
+++ b/ydb/core/fq/libs/shared_resources/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-shared_resources-interface)
+target_compile_options(libs-shared_resources-interface PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-shared_resources-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_sources(libs-shared_resources-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/shared_resources/interface/shared_resources.cpp
+)
diff --git a/ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt b/ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt
+++ b/ydb/core/fq/libs/shared_resources/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/signer/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/signer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0b77f7626b
--- /dev/null
+++ b/ydb/core/fq/libs/signer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(fq-libs-signer)
+target_link_libraries(fq-libs-signer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ fq-libs-hmac
+)
+target_sources(fq-libs-signer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/signer/signer.cpp
+)
diff --git a/ydb/core/fq/libs/signer/CMakeLists.txt b/ydb/core/fq/libs/signer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/signer/CMakeLists.txt
+++ b/ydb/core/fq/libs/signer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..87e6dcefeb
--- /dev/null
+++ b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-signer-ut)
+target_include_directories(ydb-core-fq-libs-signer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/signer
+)
+target_link_libraries(ydb-core-fq-libs-signer-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-signer
+)
+target_link_options(ydb-core-fq-libs-signer-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-core-fq-libs-signer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/signer/ut/signer_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-signer-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-signer-ut
+ TEST_TARGET
+ ydb-core-fq-libs-signer-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-signer-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-signer-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-signer-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-signer-ut)
diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/signer/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/signer/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..70c01fd4bc
--- /dev/null
+++ b/ydb/core/fq/libs/tasks_packer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(fq-libs-tasks_packer)
+target_compile_options(fq-libs-tasks_packer PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-tasks_packer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-proto
+ library-yql-utils
+)
+target_sources(fq-libs-tasks_packer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/tasks_packer/tasks_packer.cpp
+)
diff --git a/ydb/core/fq/libs/tasks_packer/CMakeLists.txt b/ydb/core/fq/libs/tasks_packer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/tasks_packer/CMakeLists.txt
+++ b/ydb/core/fq/libs/tasks_packer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/test_connection/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/test_connection/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8aec91ee40
--- /dev/null
+++ b/ydb/core/fq/libs/test_connection/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(ut)
+
+add_library(fq-libs-test_connection)
+target_compile_options(fq-libs-test_connection PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-test_connection PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lwtrace
+ cpp-xml-document
+ fq-libs-actors
+ libs-actors-logging
+ libs-config-protos
+ fq-libs-control_plane_storage
+ libs-test_connection-events
+ providers-pq-cm_client
+ providers-solomon-async_io
+)
+target_sources(fq-libs-test_connection PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/test_connection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/test_data_streams.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/test_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/test_object_storage.cpp
+)
diff --git a/ydb/core/fq/libs/test_connection/CMakeLists.txt b/ydb/core/fq/libs/test_connection/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/test_connection/CMakeLists.txt
+++ b/ydb/core/fq/libs/test_connection/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cc56b8d381
--- /dev/null
+++ b/ydb/core/fq/libs/test_connection/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-test_connection-events)
+target_link_libraries(libs-test_connection-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-control_plane_storage-events
+ fq-libs-events
+ public-issue-protos
+ api-protos
+)
+target_sources(libs-test_connection-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/events/events.cpp
+)
diff --git a/ydb/core/fq/libs/test_connection/events/CMakeLists.txt b/ydb/core/fq/libs/test_connection/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/test_connection/events/CMakeLists.txt
+++ b/ydb/core/fq/libs/test_connection/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b57738d9be
--- /dev/null
+++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-fq-libs-test_connection-ut)
+target_compile_options(ydb-core-fq-libs-test_connection-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-fq-libs-test_connection-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy
+)
+target_link_libraries(ydb-core-fq-libs-test_connection-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ fq-libs-control_plane_proxy
+ cpp-testing-unittest
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-fq-libs-test_connection-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-fq-libs-test_connection-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/ut/test_connection_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-fq-libs-test_connection-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-fq-libs-test_connection-ut
+ TEST_TARGET
+ ydb-core-fq-libs-test_connection-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-test_connection-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-fq-libs-test_connection-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-fq-libs-test_connection-ut
+ system_allocator
+)
+vcs_info(ydb-core-fq-libs-test_connection-ut)
diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.txt
+++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/fq/libs/ydb/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/ydb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..79cad8f33a
--- /dev/null
+++ b/ydb/core/fq/libs/ydb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(fq-libs-ydb)
+target_compile_options(fq-libs-ydb PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(fq-libs-ydb PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-retry
+ ydb-core-base
+ fq-libs-config
+ fq-libs-events
+ ydb-library-security
+ cpp-client-ydb_coordination
+ cpp-client-ydb_rate_limiter
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(fq-libs-ydb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/ydb/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/ydb/util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/ydb/ydb.cpp
+)
+generate_enum_serilization(fq-libs-ydb
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/ydb/ydb.h
+ INCLUDE_HEADERS
+ ydb/core/fq/libs/ydb/ydb.h
+)
diff --git a/ydb/core/fq/libs/ydb/CMakeLists.txt b/ydb/core/fq/libs/ydb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/fq/libs/ydb/CMakeLists.txt
+++ b/ydb/core/fq/libs/ydb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_caching/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_caching/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e90eb9e564
--- /dev/null
+++ b/ydb/core/grpc_caching/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-grpc_caching)
+target_link_libraries(ydb-core-grpc_caching PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ ydb-core-base
+)
+target_sources(ydb-core-grpc_caching PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_caching/cached_grpc_request_actor.cpp
+)
diff --git a/ydb/core/grpc_caching/CMakeLists.txt b/ydb/core/grpc_caching/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_caching/CMakeLists.txt
+++ b/ydb/core/grpc_caching/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..30f46225c4
--- /dev/null
+++ b/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,148 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(auth_processor)
+add_subdirectory(base)
+add_subdirectory(cancelation)
+add_subdirectory(counters)
+add_subdirectory(local_rpc)
+add_subdirectory(ut)
+
+add_library(ydb-core-grpc_services)
+target_compile_options(ydb-core-grpc_services PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-grpc_services PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-xxhash
+ library-cpp-cgiparam
+ cpp-digest-old_crc
+ ydb-core-actorlib_impl
+ ydb-core-audit
+ ydb-core-base
+ ydb-core-control
+ ydb-core-discovery
+ ydb-core-engine
+ ydb-core-formats
+ fq-libs-actors
+ fq-libs-control_plane_proxy
+ libs-control_plane_proxy-events
+ core-grpc_services-base
+ core-grpc_services-counters
+ core-grpc_services-local_rpc
+ core-grpc_services-cancelation
+ core-grpc_services-auth_processor
+ ydb-core-health_check
+ ydb-core-io_formats
+ core-kesus-tablet
+ core-kqp-common
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-sys_view
+ ydb-core-tx
+ core-tx-datashard
+ core-tx-sharding
+ tx-long_tx_service-public
+ core-tx-data_events
+ ydb-core-ydb_convert
+ ydb-core-security
+ ydb-library-aclib
+ ydb-library-binary_json
+ ydb-library-dynumber
+ ydb-library-mkql_proto
+ library-persqueue-topic_parser
+ parser-pg_wrapper-interface
+ yql-public-types
+ ydb-library-services
+ api-grpc-draft
+ api-protos
+ public-lib-fq
+ public-lib-operation_id
+ cpp-client-resources
+ services-ext_index-common
+)
+target_sources(ydb-core-grpc_services PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_publisher_service_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_request_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_request_proxy_simple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rate_limiter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/operation_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/resolve_local_db_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_alter_coordination_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_alter_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_begin_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_cancel_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_cms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_commit_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_dynamic_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_copy_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_copy_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_export.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_coordination_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_coordination_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_path.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table_options.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_drop_coordination_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_drop_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_execute_data_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_execute_scheme_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_execute_yql_script.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_explain_yql_script.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_explain_data_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_forget_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_fq_internal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_fq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_get_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_get_shard_locations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_import.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_import_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_keep_alive.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_keyvalue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_kh_describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_kh_snapshots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_kqp_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_list_operations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_login.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_load_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_log_store.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_long_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_node_registration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_maintenance.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_make_directory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_modify_permissions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_prepare_data_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_rate_limiter_api.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_read_columns.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_read_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_read_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_remove_directory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_rename_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_rollback_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_scheme_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_stream_execute_yql_script.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_whoami.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/table_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/rpc_execute_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/rpc_execute_script.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/rpc_attach_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/rpc_kqp_tx.cpp
+)
diff --git a/ydb/core/grpc_services/CMakeLists.txt b/ydb/core/grpc_services/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/CMakeLists.txt
+++ b/ydb/core/grpc_services/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/auth_processor/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/auth_processor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e19c58f7d
--- /dev/null
+++ b/ydb/core/grpc_services/auth_processor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-grpc_services-auth_processor)
+target_link_libraries(core-grpc_services-auth_processor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+)
+target_sources(core-grpc_services-auth_processor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.cpp
+)
diff --git a/ydb/core/grpc_services/auth_processor/CMakeLists.txt b/ydb/core/grpc_services/auth_processor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/auth_processor/CMakeLists.txt
+++ b/ydb/core/grpc_services/auth_processor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b912d66f3a
--- /dev/null
+++ b/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-grpc_services-base INTERFACE)
+target_link_libraries(core-grpc_services-base INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ cpp-string_utils-quote
+ ydb-core-base
+ core-grpc_services-counters
+ ydb-core-grpc_streaming
+ api-protos
+ cpp-client-resources
+ yql-public-issue
+)
diff --git a/ydb/core/grpc_services/base/CMakeLists.txt b/ydb/core/grpc_services/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/base/CMakeLists.txt
+++ b/ydb/core/grpc_services/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/cancelation/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/cancelation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..573a98a8e6
--- /dev/null
+++ b/ydb/core/grpc_services/cancelation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(core-grpc_services-cancelation)
+target_link_libraries(core-grpc_services-cancelation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ grpc_services-cancelation-protos
+ core-grpc_services-base
+ ydb-core-protos
+)
+target_sources(core-grpc_services-cancelation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/cancelation.cpp
+)
diff --git a/ydb/core/grpc_services/cancelation/CMakeLists.txt b/ydb/core/grpc_services/cancelation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/cancelation/CMakeLists.txt
+++ b/ydb/core/grpc_services/cancelation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4cab6afc30
--- /dev/null
+++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(grpc_services-cancelation-protos)
+target_link_libraries(grpc_services-cancelation-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(grpc_services-cancelation-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto
+)
+target_proto_addincls(grpc_services-cancelation-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(grpc_services-cancelation-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.txt
+++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9738ee1e46
--- /dev/null
+++ b/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-grpc_services-counters)
+target_compile_options(core-grpc_services-counters PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-grpc_services-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ core-sys_view-service
+)
+target_sources(core-grpc_services-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp
+)
diff --git a/ydb/core/grpc_services/counters/CMakeLists.txt b/ydb/core/grpc_services/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/counters/CMakeLists.txt
+++ b/ydb/core/grpc_services/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f446f66846
--- /dev/null
+++ b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-grpc_services-local_rpc INTERFACE)
+target_link_libraries(core-grpc_services-local_rpc INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-grpc_services-base
+)
diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/local_rpc/CMakeLists.txt
+++ b/ydb/core/grpc_services/local_rpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1515ac312f
--- /dev/null
+++ b/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-grpc_services-ut)
+target_include_directories(ydb-core-grpc_services-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services
+)
+target_link_libraries(ydb-core-grpc_services-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-grpc_services
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-client-scheme_cache_lib
+ core-testlib-default
+)
+target_link_options(ydb-core-grpc_services-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-grpc_services-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/operation_helpers_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-grpc_services-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-grpc_services-ut
+ TEST_TARGET
+ ydb-core-grpc_services-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-grpc_services-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-grpc_services-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-grpc_services-ut
+ system_allocator
+)
+vcs_info(ydb-core-grpc_services-ut)
diff --git a/ydb/core/grpc_services/ut/CMakeLists.txt b/ydb/core/grpc_services/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_services/ut/CMakeLists.txt
+++ b/ydb/core/grpc_services/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_streaming/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_streaming/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..97d3760506
--- /dev/null
+++ b/ydb/core/grpc_streaming/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-grpc_streaming)
+target_link_libraries(ydb-core-grpc_streaming PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-actors-core
+ cpp-grpc-server
+ ydb-core-base
+)
+target_sources(ydb-core-grpc_streaming PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming.cpp
+)
diff --git a/ydb/core/grpc_streaming/CMakeLists.txt b/ydb/core/grpc_streaming/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_streaming/CMakeLists.txt
+++ b/ydb/core/grpc_streaming/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69f7ddf562
--- /dev/null
+++ b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(grpc)
+
+add_executable(ydb-core-grpc_streaming-ut)
+target_compile_options(ydb-core-grpc_streaming-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-grpc_streaming-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming
+)
+target_link_libraries(ydb-core-grpc_streaming-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-grpc_streaming
+ cpp-grpc-client
+ grpc_streaming-ut-grpc
+ core-testlib-default
+)
+target_link_options(ydb-core-grpc_streaming-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-grpc_streaming-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-grpc_streaming-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-grpc_streaming-ut
+ TEST_TARGET
+ ydb-core-grpc_streaming-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-grpc_streaming-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-grpc_streaming-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-grpc_streaming-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-core-grpc_streaming-ut
+ system_allocator
+)
+vcs_info(ydb-core-grpc_streaming-ut)
diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.txt b/ydb/core/grpc_streaming/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_streaming/ut/CMakeLists.txt
+++ b/ydb/core/grpc_streaming/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf5d7ddabf
--- /dev/null
+++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(grpc_streaming-ut-grpc)
+set_property(TARGET grpc_streaming-ut-grpc PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(grpc_streaming-ut-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(grpc_streaming-ut-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto
+)
+target_proto_addincls(grpc_streaming-ut-grpc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(grpc_streaming-ut-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(grpc_streaming-ut-grpc
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt
+++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/health_check/CMakeLists.darwin-arm64.txt b/ydb/core/health_check/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..57fa13ff70
--- /dev/null
+++ b/ydb/core/health_check/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-health_check)
+target_link_libraries(ydb-core-health_check PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-blobstorage-base
+ ydb-library-aclib
+ api-protos
+ api-grpc
+ public-issue-protos
+)
+target_sources(ydb-core-health_check PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp
+)
diff --git a/ydb/core/health_check/CMakeLists.txt b/ydb/core/health_check/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/health_check/CMakeLists.txt
+++ b/ydb/core/health_check/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt b/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e16d9760ab
--- /dev/null
+++ b/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-health_check-ut)
+target_compile_options(ydb-core-health_check-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-health_check-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/health_check
+)
+target_link_libraries(ydb-core-health_check-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-health_check
+ core-testlib-default
+)
+target_link_options(ydb-core-health_check-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-health_check-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-health_check-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-health_check-ut
+ TEST_TARGET
+ ydb-core-health_check-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-health_check-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-health_check-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-health_check-ut
+ system_allocator
+)
+vcs_info(ydb-core-health_check-ut)
diff --git a/ydb/core/health_check/ut/CMakeLists.txt b/ydb/core/health_check/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/health_check/ut/CMakeLists.txt
+++ b/ydb/core/health_check/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7b3deb955e
--- /dev/null
+++ b/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,48 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-http_proxy)
+target_compile_options(ydb-core-http_proxy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-http_proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-restricted-nlohmann_json
+ cpp-actors-http
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ core-grpc_services-local_rpc
+ ydb-core-security
+ yql-public-issue
+ library-http_proxy-authorization
+ library-http_proxy-error
+ library-ycloud-api
+ library-ycloud-impl
+ ydb-library-naming_conventions
+ cpp-client-ydb_datastreams
+ cpp-client-ydb_persqueue_core
+ client-ydb_persqueue_public-codecs
+ cpp-client-iam_private
+ ydb-services-datastreams
+ services-persqueue_v1-actors
+ api-grpc
+ api-protos
+)
+target_sources(ydb-core-http_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.cpp
+)
diff --git a/ydb/core/http_proxy/CMakeLists.txt b/ydb/core/http_proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/http_proxy/CMakeLists.txt
+++ b/ydb/core/http_proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94cc11f30a
--- /dev/null
+++ b/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-http_proxy-ut)
+target_include_directories(ydb-core-http_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy
+)
+target_link_libraries(ydb-core-http_proxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-http_proxy
+ contrib-restricted-nlohmann_json
+ library-cpp-resource
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+ cpp-client-ydb_types
+ ydb-services-kesus
+ ydb-services-datastreams
+ ydb-services-persqueue_cluster_discovery
+)
+target_link_options(ydb-core-http_proxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-http_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/ut/json_proto_conversion_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-http_proxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-http_proxy-ut
+ TEST_TARGET
+ ydb-core-http_proxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-http_proxy-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-http_proxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-http_proxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-http_proxy-ut)
diff --git a/ydb/core/http_proxy/ut/CMakeLists.txt b/ydb/core/http_proxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/http_proxy/ut/CMakeLists.txt
+++ b/ydb/core/http_proxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/io_formats/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..617ed8f31f
--- /dev/null
+++ b/ydb/core/io_formats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-io_formats)
+target_compile_options(ydb-core-io_formats PRIVATE
+ -Wno-unused-parameter
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-io_formats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-double-conversion
+ cpp-string_utils-quote
+ core-formats-arrow
+ ydb-core-scheme
+ ydb-library-binary_json
+ ydb-library-dynumber
+ yql-minikql-dom
+ yql-public-decimal
+ yql-public-udf
+ library-yql-utils
+ public-lib-scheme_types
+)
+target_sources(ydb-core-io_formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp
+)
diff --git a/ydb/core/io_formats/CMakeLists.txt b/ydb/core/io_formats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/io_formats/CMakeLists.txt
+++ b/ydb/core/io_formats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/io_formats/ut/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0553c65506
--- /dev/null
+++ b/ydb/core/io_formats/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-io_formats-ut)
+target_compile_options(ydb-core-io_formats-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-io_formats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/io_formats
+)
+target_link_libraries(ydb-core-io_formats-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-io_formats
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-io_formats-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-io_formats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ut_csv.cpp
+)
+set_property(
+ TARGET
+ ydb-core-io_formats-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-io_formats-ut
+ TEST_TARGET
+ ydb-core-io_formats-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-io_formats-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-io_formats-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-io_formats-ut
+ system_allocator
+)
+vcs_info(ydb-core-io_formats-ut)
diff --git a/ydb/core/io_formats/ut/CMakeLists.txt b/ydb/core/io_formats/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/io_formats/ut/CMakeLists.txt
+++ b/ydb/core/io_formats/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83a5ff7a64
--- /dev/null
+++ b/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,51 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-core-kafka_proxy)
+target_link_libraries(ydb-core-kafka_proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ cpp-actors-protos
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-raw_socket
+ ydb-services-persqueue_v1
+)
+target_sources(ydb-core-kafka_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_produce_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_sasl_auth_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_sasl_handshake_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metrics_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_list_offsets_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_topic_offsets_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_fetch_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_records.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_metrics.cpp
+)
+generate_enum_serilization(ydb-core-kafka_proxy
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h
+ INCLUDE_HEADERS
+ ydb/core/kafka_proxy/kafka.h
+)
diff --git a/ydb/core/kafka_proxy/CMakeLists.txt b/ydb/core/kafka_proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kafka_proxy/CMakeLists.txt
+++ b/ydb/core/kafka_proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c5c404f65
--- /dev/null
+++ b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kafka_proxy-ut)
+target_compile_options(ydb-core-kafka_proxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kafka_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy
+)
+target_link_libraries(ydb-core-kafka_proxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kafka_proxy
+ persqueue-ut-common
+ core-testlib-default
+ ydb_persqueue_core-ut-ut_utils
+)
+target_link_options(ydb-core-kafka_proxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kafka_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_kafka_functions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_serialization.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/metarequest_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kafka_proxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-kafka_proxy-ut
+ TEST_TARGET
+ ydb-core-kafka_proxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kafka_proxy-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kafka_proxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kafka_proxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-kafka_proxy-ut)
diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.txt b/ydb/core/kafka_proxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kafka_proxy/ut/CMakeLists.txt
+++ b/ydb/core/kafka_proxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kesus/proxy/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f8dc1e6a4
--- /dev/null
+++ b/ydb/core/kesus/proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-kesus-proxy)
+target_link_libraries(core-kesus-proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-erasure
+ core-kesus-tablet
+ ydb-core-scheme
+ core-tx-scheme_cache
+ ydb-library-services
+ api-protos
+)
+target_sources(core-kesus-proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor.cpp
+)
diff --git a/ydb/core/kesus/proxy/CMakeLists.txt b/ydb/core/kesus/proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kesus/proxy/CMakeLists.txt
+++ b/ydb/core/kesus/proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af7950a656
--- /dev/null
+++ b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kesus-proxy-ut)
+target_compile_options(ydb-core-kesus-proxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kesus-proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy
+)
+target_link_libraries(ydb-core-kesus-proxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kesus-proxy
+ core-testlib-default
+)
+target_link_options(ydb-core-kesus-proxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kesus-proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kesus-proxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-kesus-proxy-ut
+ TEST_TARGET
+ ydb-core-kesus-proxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-proxy-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-proxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-proxy-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kesus-proxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-kesus-proxy-ut)
diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.txt b/ydb/core/kesus/proxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kesus/proxy/ut/CMakeLists.txt
+++ b/ydb/core/kesus/proxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kesus/tablet/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/tablet/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e8bcc4199b
--- /dev/null
+++ b/ydb/core/kesus/tablet/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,60 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(quoter_performance_test)
+add_subdirectory(ut)
+
+add_library(core-kesus-tablet)
+target_link_libraries(core-kesus-tablet PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-protobuf-util
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-erasure
+ ydb-core-metering
+ ydb-core-protos
+ ydb-core-tablet_flat
+ ydb-library-time_series_vec
+ ydb-library-services
+)
+target_sources(core-kesus-tablet PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_resource_tree.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_runtime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/rate_accounting.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_html.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_config_get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_config_set.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_dummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_init_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_quoter_resource_add.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_quoter_resource_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_quoter_resource_describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_quoter_resource_update.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_self_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_acquire.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_release.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_timeout.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_semaphore_update.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_session_attach.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_session_destroy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_session_detach.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_session_timeout.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tx_sessions_describe.cpp
+)
diff --git a/ydb/core/kesus/tablet/CMakeLists.txt b/ydb/core/kesus/tablet/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kesus/tablet/CMakeLists.txt
+++ b/ydb/core/kesus/tablet/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2c77321d19
--- /dev/null
+++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(quoter_performance_test)
+target_compile_options(quoter_performance_test PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(quoter_performance_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet
+)
+target_link_libraries(quoter_performance_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-testing-unittest
+ core-kesus-tablet
+ core-testlib-default
+)
+target_link_options(quoter_performance_test PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(quoter_performance_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_performance_test/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/ut_helpers.cpp
+)
+target_allocator(quoter_performance_test
+ system_allocator
+)
+vcs_info(quoter_performance_test)
diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt
+++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..df909a96ec
--- /dev/null
+++ b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kesus-tablet-ut)
+target_compile_options(ydb-core-kesus-tablet-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kesus-tablet-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet
+)
+target_link_libraries(ydb-core-kesus-tablet-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kesus-tablet
+ cpp-testing-gmock_in_unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-kesus-tablet-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kesus-tablet-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_resource_tree_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kesus-tablet-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-kesus-tablet-ut
+ TEST_TARGET
+ ydb-core-kesus-tablet-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-tablet-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-tablet-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kesus-tablet-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kesus-tablet-ut
+ system_allocator
+)
+vcs_info(ydb-core-kesus-tablet-ut)
diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.txt b/ydb/core/kesus/tablet/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kesus/tablet/ut/CMakeLists.txt
+++ b/ydb/core/kesus/tablet/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a45378b767
--- /dev/null
+++ b/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-core-keyvalue)
+target_link_libraries(ydb-core-keyvalue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ ydb-core-base
+ core-blobstorage-base
+ core-engine-minikql
+ core-keyvalue-protos
+ ydb-core-protos
+ ydb-core-tablet_flat
+ ydb-core-tx
+ ydb-core-util
+ public-lib-base
+)
+target_sources(ydb-core-keyvalue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state_collect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_read_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.cpp
+)
diff --git a/ydb/core/keyvalue/CMakeLists.txt b/ydb/core/keyvalue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/keyvalue/CMakeLists.txt
+++ b/ydb/core/keyvalue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e533541cd4
--- /dev/null
+++ b/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-keyvalue-protos)
+target_link_libraries(core-keyvalue-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(core-keyvalue-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto
+)
+target_proto_addincls(core-keyvalue-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-keyvalue-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/keyvalue/protos/CMakeLists.txt b/ydb/core/keyvalue/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/keyvalue/protos/CMakeLists.txt
+++ b/ydb/core/keyvalue/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7b53f811ef
--- /dev/null
+++ b/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-keyvalue-ut)
+target_compile_options(ydb-core-keyvalue-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-keyvalue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue
+)
+target_link_libraries(ydb-core-keyvalue-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-keyvalue
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-keyvalue-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-keyvalue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-keyvalue-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-keyvalue-ut
+ TEST_TARGET
+ ydb-core-keyvalue-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-keyvalue-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-keyvalue-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-keyvalue-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-keyvalue-ut
+ system_allocator
+)
+vcs_info(ydb-core-keyvalue-ut)
diff --git a/ydb/core/keyvalue/ut/CMakeLists.txt b/ydb/core/keyvalue/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/keyvalue/ut/CMakeLists.txt
+++ b/ydb/core/keyvalue/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54cac3e15d
--- /dev/null
+++ b/ydb/core/kqp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,143 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(compile_service)
+add_subdirectory(compute_actor)
+add_subdirectory(counters)
+add_subdirectory(executer_actor)
+add_subdirectory(expr_nodes)
+add_subdirectory(federated_query)
+add_subdirectory(finalize_script_service)
+add_subdirectory(gateway)
+add_subdirectory(host)
+add_subdirectory(node_service)
+add_subdirectory(opt)
+add_subdirectory(provider)
+add_subdirectory(proxy_service)
+add_subdirectory(query_compiler)
+add_subdirectory(query_data)
+add_subdirectory(rm_service)
+add_subdirectory(run_script_actor)
+add_subdirectory(runtime)
+add_subdirectory(session_actor)
+add_subdirectory(topics)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-kqp INTERFACE)
+target_link_libraries(ydb-core-kqp INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-digest-md5
+ cpp-string_utils-base64
+ cpp-actors-wilson
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-engine
+ ydb-core-formats
+ core-grpc_services-local_rpc
+ core-kqp-common
+ core-kqp-compile_service
+ core-kqp-compute_actor
+ core-kqp-counters
+ core-kqp-executer_actor
+ core-kqp-expr_nodes
+ core-kqp-gateway
+ core-kqp-host
+ core-kqp-node_service
+ core-kqp-opt
+ core-kqp-provider
+ core-kqp-proxy_service
+ core-kqp-query_compiler
+ core-kqp-rm_service
+ core-kqp-runtime
+ core-kqp-session_actor
+ ydb-core-protos
+ core-sys_view-service
+ ydb-core-util
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ core-services-mounts
+ yql-public-issue
+ yql-utils-actor_log
+ yql-utils-log
+ api-protos
+ public-lib-base
+ public-lib-operation_id
+ library-cpp-resource
+)
+
+add_global_library_for(ydb-core-kqp.global ydb-core-kqp)
+target_compile_options(ydb-core-kqp.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-kqp.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-digest-md5
+ cpp-string_utils-base64
+ cpp-actors-wilson
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-engine
+ ydb-core-formats
+ core-grpc_services-local_rpc
+ core-kqp-common
+ core-kqp-compile_service
+ core-kqp-compute_actor
+ core-kqp-counters
+ core-kqp-executer_actor
+ core-kqp-expr_nodes
+ core-kqp-gateway
+ core-kqp-host
+ core-kqp-node_service
+ core-kqp-opt
+ core-kqp-provider
+ core-kqp-proxy_service
+ core-kqp-query_compiler
+ core-kqp-rm_service
+ core-kqp-runtime
+ core-kqp-session_actor
+ ydb-core-protos
+ core-sys_view-service
+ ydb-core-util
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ core-services-mounts
+ yql-public-issue
+ yql-utils-actor_log
+ yql-utils-log
+ api-protos
+ public-lib-base
+ public-lib-operation_id
+ library-cpp-resource
+)
+target_sources(ydb-core-kqp.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+)
+resources(ydb-core-kqp.global
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/kqp_default_settings.txt
+ KEYS
+ kqp_default_settings.txt
+)
diff --git a/ydb/core/kqp/CMakeLists.txt b/ydb/core/kqp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/CMakeLists.txt
+++ b/ydb/core/kqp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5a5b9167f1
--- /dev/null
+++ b/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(compilation)
+add_subdirectory(events)
+add_subdirectory(shutdown)
+add_subdirectory(simple)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-kqp-common)
+target_compile_options(core-kqp-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-engine
+ core-kqp-expr_nodes
+ kqp-common-simple
+ kqp-common-compilation
+ kqp-common-events
+ kqp-common-shutdown
+ core-kqp-provider
+ tx-long_tx_service-public
+ core-tx-sharding
+ yql-dq-expr_nodes
+ ydb-library-aclib
+ yql-core-issue
+ yql-dq-actors
+ yql-dq-common
+ parser-pg_wrapper-interface
+ public-lib-operation_id
+ lib-operation_id-protos
+ core-grpc_services-cancelation
+ library-cpp-lwtrace
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-kqp-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.cpp
+)
+generate_enum_serilization(core-kqp-common
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_tx_info.h
+ INCLUDE_HEADERS
+ ydb/core/kqp/common/kqp_tx_info.h
+)
+generate_enum_serilization(core-kqp-common
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h
+ INCLUDE_HEADERS
+ ydb/core/kqp/common/kqp_yql.h
+)
diff --git a/ydb/core/kqp/common/CMakeLists.txt b/ydb/core/kqp/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/common/CMakeLists.txt
+++ b/ydb/core/kqp/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/common/compilation/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/compilation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f959492fd8
--- /dev/null
+++ b/ydb/core/kqp/common/compilation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-common-compilation)
+target_compile_options(kqp-common-compilation PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-common-compilation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-query_data
+ kqp-common-simple
+ yql-public-issue
+)
+target_sources(kqp-common-compilation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/compilation/result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/compilation/events.cpp
+)
diff --git a/ydb/core/kqp/common/compilation/CMakeLists.txt b/ydb/core/kqp/common/compilation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/common/compilation/CMakeLists.txt
+++ b/ydb/core/kqp/common/compilation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/common/events/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..261c11eb48
--- /dev/null
+++ b/ydb/core/kqp/common/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-common-events)
+target_compile_options(kqp-common-events PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-common-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ ydb-core-base
+ core-grpc_services-base
+ core-grpc_services-cancelation
+ kqp-common-shutdown
+ kqp-common-compilation
+ yql-dq-actors
+ api-protos
+ public-lib-operation_id
+ cpp-actors-core
+)
+target_sources(kqp-common-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/events/process_response.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/events/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/events/query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/events/script_executions.cpp
+)
diff --git a/ydb/core/kqp/common/events/CMakeLists.txt b/ydb/core/kqp/common/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/common/events/CMakeLists.txt
+++ b/ydb/core/kqp/common/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/common/shutdown/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/shutdown/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..11cb4459e7
--- /dev/null
+++ b/ydb/core/kqp/common/shutdown/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-common-shutdown)
+target_compile_options(kqp-common-shutdown PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-common-shutdown PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+)
+target_sources(kqp-common-shutdown PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/shutdown/controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/shutdown/state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/shutdown/events.cpp
+)
diff --git a/ydb/core/kqp/common/shutdown/CMakeLists.txt b/ydb/core/kqp/common/shutdown/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/common/shutdown/CMakeLists.txt
+++ b/ydb/core/kqp/common/shutdown/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/common/simple/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/simple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..44da5ffcff
--- /dev/null
+++ b/ydb/core/kqp/common/simple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-common-simple)
+target_link_libraries(kqp-common-simple PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ ydb-core-base
+ ydb-core-protos
+ library-yql-ast
+ yql-dq-actors
+ api-protos
+)
+target_sources(kqp-common-simple PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/query_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/services.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/kqp_event_ids.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/simple/temp_tables.cpp
+)
diff --git a/ydb/core/kqp/common/simple/CMakeLists.txt b/ydb/core/kqp/common/simple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/common/simple/CMakeLists.txt
+++ b/ydb/core/kqp/common/simple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/compile_service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/compile_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5065b4c97f
--- /dev/null
+++ b/ydb/core/kqp/compile_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-compile_service)
+target_compile_options(core-kqp-compile_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-compile_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-actorlib_impl
+ ydb-core-base
+ kqp-common-simple
+ core-kqp-federated_query
+ core-kqp-host
+ ydb-core-ydb_convert
+)
+target_sources(core-kqp-compile_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compile_service/kqp_compile_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compile_service/kqp_compile_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compile_service/kqp_compile_computation_pattern_service.cpp
+)
diff --git a/ydb/core/kqp/compile_service/CMakeLists.txt b/ydb/core/kqp/compile_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/compile_service/CMakeLists.txt
+++ b/ydb/core/kqp/compile_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/compute_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/compute_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c27956e5aa
--- /dev/null
+++ b/ydb/core/kqp/compute_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-kqp-compute_actor)
+target_compile_options(core-kqp-compute_actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-compute_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-kqp-federated_query
+ core-kqp-runtime
+ core-tx-datashard
+ core-tx-scheme_cache
+ dq-actors-compute
+ providers-generic-actors
+ providers-s3-actors
+ yql-public-issue
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-kqp-compute_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_compute_actor_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_compute_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_compute_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_pure_compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_compute_stat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_scan_events.cpp
+)
+generate_enum_serilization(core-kqp-compute_actor
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/compute_actor/kqp_compute_state.h
+ INCLUDE_HEADERS
+ ydb/core/kqp/compute_actor/kqp_compute_state.h
+)
diff --git a/ydb/core/kqp/compute_actor/CMakeLists.txt b/ydb/core/kqp/compute_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/compute_actor/CMakeLists.txt
+++ b/ydb/core/kqp/compute_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b5a08b2bb1
--- /dev/null
+++ b/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-counters)
+target_link_libraries(core-kqp-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ core-sys_view-service
+ dq-actors-spilling
+ library-yql-minikql
+)
+target_sources(core-kqp-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp
+)
diff --git a/ydb/core/kqp/counters/CMakeLists.txt b/ydb/core/kqp/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/counters/CMakeLists.txt
+++ b/ydb/core/kqp/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e07e2bd503
--- /dev/null
+++ b/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-kqp-executer_actor)
+target_compile_options(core-kqp-executer_actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-executer_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-containers-absl_flat_hash
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-formats
+ core-kqp-common
+ core-kqp-query_compiler
+ core-kqp-rm_service
+ core-kqp-topics
+ kqp-gateway-local_rpc
+ ydb-core-protos
+ tx-long_tx_service-public
+ ydb-core-ydb_convert
+ ydb-library-mkql_proto
+ library-mkql_proto-protos
+ dq-actors-compute
+ yql-dq-runtime
+ yql-dq-tasks
+ providers-common-http_gateway
+)
+target_sources(core-kqp-executer_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_locks_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_partition_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_planner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_planner_strategy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_result_channel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_table_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp
+)
diff --git a/ydb/core/kqp/executer_actor/CMakeLists.txt b/ydb/core/kqp/executer_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/executer_actor/CMakeLists.txt
+++ b/ydb/core/kqp/executer_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..856dccd919
--- /dev/null
+++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-executer_actor-ut)
+target_compile_options(ydb-core-kqp-executer_actor-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-executer_actor-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-executer_actor-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ core-kqp-common
+ core-kqp-host
+ kqp-ut-common
+ cpp-client-ydb_proto
+ providers-common-http_gateway
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-executer_actor-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+set_property(
+ TARGET
+ ydb-core-kqp-executer_actor-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-executer_actor-ut
+ TEST_TARGET
+ ydb-core-kqp-executer_actor-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-executer_actor-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-executer_actor-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-executer_actor-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-executer_actor-ut)
diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/executer_actor/ut/CMakeLists.txt
+++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f7bb91913a
--- /dev/null
+++ b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(core-kqp-expr_nodes)
+target_link_libraries(core-kqp-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-expr_nodes
+)
+target_sources(core-kqp-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h
+)
diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.txt b/ydb/core/kqp/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/expr_nodes/CMakeLists.txt
+++ b/ydb/core/kqp/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/federated_query/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/federated_query/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4161013b00
--- /dev/null
+++ b/ydb/core/kqp/federated_query/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-federated_query)
+target_compile_options(core-kqp-federated_query PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-federated_query PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ fq-libs-db_id_async_resolver_impl
+ fq-libs-grpc
+ library-db_pool-protos
+ providers-common-http_gateway
+ generic-connector-libcpp
+)
+target_sources(core-kqp-federated_query PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/federated_query/kqp_federated_query_actors.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/federated_query/kqp_federated_query_helpers.cpp
+)
diff --git a/ydb/core/kqp/federated_query/CMakeLists.txt b/ydb/core/kqp/federated_query/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/federated_query/CMakeLists.txt
+++ b/ydb/core/kqp/federated_query/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/finalize_script_service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/finalize_script_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..985367871a
--- /dev/null
+++ b/ydb/core/kqp/finalize_script_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-finalize_script_service)
+target_compile_options(core-kqp-finalize_script_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-finalize_script_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-proxy_service
+)
+target_sources(core-kqp-finalize_script_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/finalize_script_service/kqp_finalize_script_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/finalize_script_service/kqp_finalize_script_service.cpp
+)
diff --git a/ydb/core/kqp/finalize_script_service/CMakeLists.txt b/ydb/core/kqp/finalize_script_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/finalize_script_service/CMakeLists.txt
+++ b/ydb/core/kqp/finalize_script_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3857806ebf
--- /dev/null
+++ b/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+add_subdirectory(behaviour)
+add_subdirectory(local_rpc)
+
+add_library(core-kqp-gateway)
+target_compile_options(core-kqp-gateway PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-kqp-common
+ core-kqp-provider
+ core-kqp-query_data
+ kqp-gateway-actors
+ gateway-behaviour-tablestore
+ gateway-behaviour-table
+ gateway-behaviour-external_data_source
+ providers-result-expr_nodes
+)
+target_sources(core-kqp-gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/kqp_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/kqp_ic_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
+)
diff --git a/ydb/core/kqp/gateway/CMakeLists.txt b/ydb/core/kqp/gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/actors/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fdf89f474f
--- /dev/null
+++ b/ydb/core/kqp/gateway/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-gateway-actors)
+target_compile_options(kqp-gateway-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-gateway-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-tx-tx_proxy
+ core-kqp-common
+ core-kqp-provider
+ providers-common-gateway
+ core-tx-schemeshard
+ cpp-actors-core
+)
+target_sources(kqp-gateway-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/actors/scheme.cpp
+)
diff --git a/ydb/core/kqp/gateway/actors/CMakeLists.txt b/ydb/core/kqp/gateway/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/actors/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aae8b0714b
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-external_data_source.global gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4dea730fc6
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-table INTERFACE)
+target_link_libraries(gateway-behaviour-table INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ gateway-behaviour-tablestore
+)
+
+add_global_library_for(gateway-behaviour-table.global gateway-behaviour-table)
+target_compile_options(gateway-behaviour-table.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-table.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ gateway-behaviour-tablestore
+)
+target_sources(gateway-behaviour-table.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/table/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/behaviour/table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac29a85b84
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(operations)
+
+add_library(gateway-behaviour-tablestore)
+target_compile_options(gateway-behaviour-tablestore PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-tablestore PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-tablestore PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-tablestore.global gateway-behaviour-tablestore)
+target_compile_options(gateway-behaviour-tablestore.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-tablestore.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-tablestore.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/behaviour/tablestore/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1fce41a487
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(behaviour-tablestore-operations)
+target_compile_options(behaviour-tablestore-operations PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(behaviour-tablestore-operations PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-manager
+ formats-arrow-compression
+ ydb-core-protos
+)
+target_sources(behaviour-tablestore-operations PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/abstract.cpp
+)
+
+add_global_library_for(behaviour-tablestore-operations.global behaviour-tablestore-operations)
+target_compile_options(behaviour-tablestore-operations.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(behaviour-tablestore-operations.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-manager
+ formats-arrow-compression
+ ydb-core-protos
+)
+target_sources(behaviour-tablestore-operations.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f4643e254b
--- /dev/null
+++ b/ydb/core/kqp/gateway/local_rpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-gateway-local_rpc)
+target_compile_options(kqp-gateway-local_rpc PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-gateway-local_rpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-grpc_services-local_rpc
+ core-kqp-provider
+ ydb-library-ydb_issue
+)
+target_sources(kqp-gateway-local_rpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/local_rpc/helper.cpp
+)
diff --git a/ydb/core/kqp/gateway/local_rpc/CMakeLists.txt b/ydb/core/kqp/gateway/local_rpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/gateway/local_rpc/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/local_rpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..905cc9c5fe
--- /dev/null
+++ b/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-host)
+target_compile_options(core-kqp-host PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-host PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-kqp-common
+ core-kqp-federated_query
+ core-kqp-opt
+ core-kqp-provider
+ tx-long_tx_service-public
+ yql-core-services
+ minikql-invoke_builtins-llvm
+ library-yql-sql
+ library-yql-core
+ providers-common-codec
+ providers-common-http_gateway
+ providers-common-udf_resolve
+ yql-providers-config
+ providers-generic-provider
+ providers-result-provider
+ providers-s3-provider
+)
+target_sources(core-kqp-host PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_explain_prepared.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_gateway_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_host.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_runner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_transform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_translate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/host/kqp_type_ann.cpp
+)
diff --git a/ydb/core/kqp/host/CMakeLists.txt b/ydb/core/kqp/host/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/host/CMakeLists.txt
+++ b/ydb/core/kqp/host/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/node_service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/node_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a67653156
--- /dev/null
+++ b/ydb/core/kqp/node_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-kqp-node_service)
+target_compile_options(core-kqp-node_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-node_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-cms-console
+ core-kqp-common
+ core-kqp-counters
+ ydb-core-mind
+ ydb-core-protos
+ ydb-core-tablet
+ dq-actors-compute
+ providers-common-http_gateway
+)
+target_sources(core-kqp-node_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_service.cpp
+)
diff --git a/ydb/core/kqp/node_service/CMakeLists.txt b/ydb/core/kqp/node_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/node_service/CMakeLists.txt
+++ b/ydb/core/kqp/node_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4416c47535
--- /dev/null
+++ b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-node_service-ut)
+target_compile_options(ydb-core-kqp-node_service-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-node_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service
+)
+target_link_libraries(ydb-core-kqp-node_service-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kqp-node_service
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-node_service-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-node_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-node_service-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-node_service-ut
+ TEST_TARGET
+ ydb-core-kqp-node_service-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-node_service-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-node_service-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-node_service-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-node_service-ut)
diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.txt b/ydb/core/kqp/node_service/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/node_service/ut/CMakeLists.txt
+++ b/ydb/core/kqp/node_service/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/opt/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3499cb9fc7
--- /dev/null
+++ b/ydb/core/kqp/opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(logical)
+add_subdirectory(peephole)
+add_subdirectory(physical)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-kqp-opt)
+target_compile_options(core-kqp-opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-common
+ kqp-opt-logical
+ kqp-opt-peephole
+ kqp-opt-physical
+ yql-dq-common
+ yql-dq-opt
+ yql-dq-type_ann
+ providers-s3-expr_nodes
+ core-kqp-provider
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-kqp-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_kql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_phase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_phy_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_phy_finalize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_opt_range_legacy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_query_blocks_transformer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_query_plan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_statistics_transformer.cpp
+)
+generate_enum_serilization(core-kqp-opt
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/kqp_query_plan.h
+ INCLUDE_HEADERS
+ ydb/core/kqp/opt/kqp_query_plan.h
+)
diff --git a/ydb/core/kqp/opt/CMakeLists.txt b/ydb/core/kqp/opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/opt/CMakeLists.txt
+++ b/ydb/core/kqp/opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..987f3e52d2
--- /dev/null
+++ b/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-opt-logical)
+target_compile_options(kqp-opt-logical PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-opt-logical PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-common
+ yql-core-extract_predicate
+ yql-dq-common
+ yql-dq-opt
+)
+target_sources(kqp-opt-logical PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_extract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_ranges.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
+)
diff --git a/ydb/core/kqp/opt/logical/CMakeLists.txt b/ydb/core/kqp/opt/logical/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/opt/logical/CMakeLists.txt
+++ b/ydb/core/kqp/opt/logical/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/opt/peephole/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/peephole/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bbeb8d56ae
--- /dev/null
+++ b/ydb/core/kqp/opt/peephole/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-opt-peephole)
+target_compile_options(kqp-opt-peephole PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-opt-peephole PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-common
+ ydb-library-naming_conventions
+ yql-dq-opt
+ kqp-opt-physical
+)
+target_sources(kqp-opt-peephole PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/peephole/kqp_opt_peephole_wide_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/peephole/kqp_opt_peephole_write_constraint.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp
+)
diff --git a/ydb/core/kqp/opt/peephole/CMakeLists.txt b/ydb/core/kqp/opt/peephole/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/opt/peephole/CMakeLists.txt
+++ b/ydb/core/kqp/opt/peephole/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/opt/physical/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/physical/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4a838cacd6
--- /dev/null
+++ b/ydb/core/kqp/opt/physical/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(effects)
+
+add_library(kqp-opt-physical)
+target_compile_options(kqp-opt-physical PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-opt-physical PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-common
+ opt-physical-effects
+ yql-dq-common
+ yql-dq-opt
+ yql-dq-type_ann
+ providers-common-pushdown
+)
+target_sources(kqp-opt-physical PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_limit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_agg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_precompute.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy_stage_float_up.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/kqp_opt_phy.cpp
+)
diff --git a/ydb/core/kqp/opt/physical/CMakeLists.txt b/ydb/core/kqp/opt/physical/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/opt/physical/CMakeLists.txt
+++ b/ydb/core/kqp/opt/physical/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5b954686cb
--- /dev/null
+++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(opt-physical-effects)
+target_compile_options(opt-physical-effects PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(opt-physical-effects PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-common
+ yql-dq-common
+ yql-dq-opt
+)
+target_sources(opt-physical-effects PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_delete_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_indexes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_insert_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_insert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_uniq_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp
+)
diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/opt/physical/effects/CMakeLists.txt
+++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2dd9cf4540
--- /dev/null
+++ b/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,94 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-kqp-provider)
+target_compile_options(core-kqp-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-docapi
+ core-kqp-query_data
+ ydb-library-aclib
+ library-aclib-protos
+ ydb-library-binary_json
+ ydb-library-dynumber
+ yql-core-services
+ library-yql-minikql
+ yql-public-decimal
+ public-lib-scheme_types
+ cpp-client-ydb_topic
+ yql-core-expr_nodes
+ yql-core-peephole_opt
+ parser-pg_wrapper-interface
+ providers-common-codec
+ providers-common-config
+ providers-common-gateway
+ providers-common-proto
+ providers-common-provider
+ common-schema-expr
+ providers-dq-expr_nodes
+ providers-result-expr_nodes
+ providers-result-provider
+ yql-sql-settings
+ library-ydb_issue-proto
+ yql-public-issue
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-kqp-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.cpp
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h
+)
+generate_enum_serilization(core-kqp-provider
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h
+ INCLUDE_HEADERS
+ ydb/core/kqp/provider/yql_kikimr_provider.h
+)
diff --git a/ydb/core/kqp/provider/CMakeLists.txt b/ydb/core/kqp/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/provider/CMakeLists.txt
+++ b/ydb/core/kqp/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..42f88c2aed
--- /dev/null
+++ b/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-provider-ut)
+target_compile_options(ydb-core-kqp-provider-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider
+)
+target_link_libraries(ydb-core-kqp-provider-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kqp-provider
+ core-client-minikql_result_lib
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-provider-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-provider-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-provider-ut
+ TEST_TARGET
+ ydb-core-kqp-provider-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-provider-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-provider-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-provider-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-provider-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-provider-ut)
diff --git a/ydb/core/kqp/provider/ut/CMakeLists.txt b/ydb/core/kqp/provider/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/provider/ut/CMakeLists.txt
+++ b/ydb/core/kqp/provider/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/proxy_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..449150439b
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,51 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+add_subdirectory(ut)
+
+add_library(core-kqp-proxy_service)
+target_compile_options(core-kqp-proxy_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-proxy_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-http
+ cpp-protobuf-json
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-cms-console
+ core-kqp-common
+ kqp-common-events
+ core-kqp-counters
+ kqp-proxy_service-proto
+ core-kqp-run_script_actor
+ ydb-core-mind
+ ydb-core-protos
+ core-tx-tx_proxy
+ core-tx-scheme_cache
+ core-tx-schemeshard
+ ydb-core-mon
+ ydb-library-query_actor
+ providers-common-http_gateway
+ providers-common-proto
+ yql-public-issue
+ dq-actors-spilling
+ api-protos
+ public-lib-operation_id
+ public-lib-scheme_types
+ cpp-client-ydb_params
+)
+target_sources(core-kqp-proxy_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_peer_stats_calculator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
+)
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.txt b/ydb/core/kqp/proxy_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/proxy_service/CMakeLists.txt
+++ b/ydb/core/kqp/proxy_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77043f71f6
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(kqp-proxy_service-proto)
+target_link_libraries(kqp-proxy_service-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(kqp-proxy_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
+)
+target_proto_addincls(kqp-proxy_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(kqp-proxy_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/proxy_service/proto/CMakeLists.txt
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..594d7057a1
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-proxy_service-ut)
+target_compile_options(ydb-core-kqp-proxy_service-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-proxy_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service
+)
+target_link_libraries(ydb-core-kqp-proxy_service-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kqp-proxy_service
+ core-kqp-run_script_actor
+ kqp-ut-common
+ yql-sql-pg_dummy
+ cpp-client-ydb_query
+ cpp-client-ydb_driver
+ ydb-services-ydb
+)
+target_link_options(ydb-core-kqp-proxy_service-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-proxy_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-proxy_service-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-proxy_service-ut
+ TEST_TARGET
+ ydb-core-kqp-proxy_service-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-proxy_service-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-proxy_service-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-proxy_service-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-proxy_service-ut)
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/proxy_service/ut/CMakeLists.txt
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/query_compiler/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/query_compiler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4bb9c30770
--- /dev/null
+++ b/ydb/core/kqp/query_compiler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-query_compiler)
+target_compile_options(core-kqp-query_compiler PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-query_compiler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-formats
+ core-kqp-common
+ ydb-core-protos
+ ydb-library-mkql_proto
+ core-arrow_kernels-request
+ yql-dq-integration
+ yql-dq-opt
+ yql-dq-type_ann
+ yql-dq-tasks
+ library-yql-minikql
+ providers-common-mkql
+ providers-dq-common
+)
+target_sources(core-kqp-query_compiler PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
+)
diff --git a/ydb/core/kqp/query_compiler/CMakeLists.txt b/ydb/core/kqp/query_compiler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/query_compiler/CMakeLists.txt
+++ b/ydb/core/kqp/query_compiler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/query_data/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/query_data/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..48ebb78260
--- /dev/null
+++ b/ydb/core/kqp/query_data/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-query_data)
+target_compile_options(core-kqp-query_data PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-query_data PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ kqp-common-simple
+ yql-dq-expr_nodes
+ yql-dq-proto
+ core-kqp-expr_nodes
+)
+target_sources(core-kqp-query_data PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_data/kqp_query_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_data/kqp_prepared_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/query_data/kqp_predictor.cpp
+)
diff --git a/ydb/core/kqp/query_data/CMakeLists.txt b/ydb/core/kqp/query_data/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/query_data/CMakeLists.txt
+++ b/ydb/core/kqp/query_data/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/rm_service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/rm_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f01ea52d2
--- /dev/null
+++ b/ydb/core/kqp/rm_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-kqp-rm_service)
+target_compile_options(core-kqp-rm_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-rm_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-cms-console
+ core-kqp-common
+ core-kqp-counters
+ ydb-core-mind
+ ydb-core-mon
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-node_whiteboard
+ ydb-core-util
+)
+target_sources(core-kqp-rm_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_rm_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_snapshot_manager.cpp
+)
diff --git a/ydb/core/kqp/rm_service/CMakeLists.txt b/ydb/core/kqp/rm_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/rm_service/CMakeLists.txt
+++ b/ydb/core/kqp/rm_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ac5f51152
--- /dev/null
+++ b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-rm_service-ut)
+target_compile_options(ydb-core-kqp-rm_service-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-rm_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service
+)
+target_link_libraries(ydb-core-kqp-rm_service-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kqp-rm_service
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-rm_service-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-rm_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_rm_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-rm_service-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-rm_service-ut
+ TEST_TARGET
+ ydb-core-kqp-rm_service-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-rm_service-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-rm_service-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-rm_service-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-rm_service-ut)
diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/rm_service/ut/CMakeLists.txt
+++ b/ydb/core/kqp/rm_service/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..87db7fa45c
--- /dev/null
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-run_script_actor)
+target_compile_options(core-kqp-run_script_actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-run_script_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-protobuf-json
+ ydb-core-base
+ ydb-core-protos
+ kqp-common-events
+ core-kqp-executer_actor
+ kqp-proxy_service-proto
+ api-protos
+)
+target_sources(core-kqp-run_script_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
+)
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.txt b/ydb/core/kqp/run_script_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c297a48ab8
--- /dev/null
+++ b/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-kqp-runtime)
+target_compile_options(core-kqp-runtime PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-runtime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-formats
+ core-kqp-common
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-ydb_convert
+ minikql-comp_nodes-llvm
+ library-yql-utils
+ dq-actors-protos
+ dq-actors-spilling
+ yql-dq-common
+ yql-dq-runtime
+ cpp-threading-hot_swap
+)
+target_sources(core-kqp-runtime PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_program_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_read_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_sequencer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_sequencer_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp
+)
diff --git a/ydb/core/kqp/runtime/CMakeLists.txt b/ydb/core/kqp/runtime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/runtime/CMakeLists.txt
+++ b/ydb/core/kqp/runtime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e94555b29f
--- /dev/null
+++ b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-runtime-ut)
+target_compile_options(ydb-core-kqp-runtime-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-runtime-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime
+)
+target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-kqp-runtime
+ cpp-testing-unittest
+ testlib-basics-default
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-kqp-runtime-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-runtime-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-runtime-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-runtime-ut
+ TEST_TARGET
+ ydb-core-kqp-runtime-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-runtime-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-runtime-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-runtime-ut
+ PROPERTY
+ TIMEOUT
+ 180
+)
+target_allocator(ydb-core-kqp-runtime-ut
+ system_allocator
+)
+vcs_info(ydb-core-kqp-runtime-ut)
diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.txt b/ydb/core/kqp/runtime/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/runtime/ut/CMakeLists.txt
+++ b/ydb/core/kqp/runtime/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d60b1ef4f
--- /dev/null
+++ b/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-session_actor)
+target_compile_options(core-kqp-session_actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-session_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-docapi
+ core-kqp-common
+ core-kqp-federated_query
+ public-lib-operation_id
+)
+target_sources(core-kqp-session_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_session_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp
+)
diff --git a/ydb/core/kqp/session_actor/CMakeLists.txt b/ydb/core/kqp/session_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/session_actor/CMakeLists.txt
+++ b/ydb/core/kqp/session_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3bd77195ea
--- /dev/null
+++ b/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-kqp-topics)
+target_compile_options(core-kqp-topics PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-kqp-topics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+)
+target_sources(core-kqp-topics PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp
+)
diff --git a/ydb/core/kqp/topics/CMakeLists.txt b/ydb/core/kqp/topics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/topics/CMakeLists.txt
+++ b/ydb/core/kqp/topics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4251ac9b53
--- /dev/null
+++ b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-arrow)
+target_compile_options(ydb-core-kqp-ut-arrow PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-arrow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-arrow PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_arrow_in_channels_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_types_arrow_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-arrow
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-arrow
+ TEST_TARGET
+ ydb-core-kqp-ut-arrow
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-arrow
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-arrow
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-ut-arrow
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-arrow)
diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.txt b/ydb/core/kqp/ut/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/arrow/CMakeLists.txt
+++ b/ydb/core/kqp/ut/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c10448c806
--- /dev/null
+++ b/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(kqp-ut-common)
+target_compile_options(kqp-ut-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqp-ut-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-kqp-federated_query
+ ydb-core-testlib
+ yql-public-udf
+ string_udf
+ yql-utils-backtrace
+ public-lib-yson_value
+ cpp-client-draft
+ cpp-client-ydb_query
+ cpp-client-ydb_proto
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+)
+target_sources(kqp-ut-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/string_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/columnshard.cpp
+)
diff --git a/ydb/core/kqp/ut/common/CMakeLists.txt b/ydb/core/kqp/ut/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/common/CMakeLists.txt
+++ b/ydb/core/kqp/ut/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e2b287bd5
--- /dev/null
+++ b/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-cost)
+target_compile_options(ydb-core-kqp-ut-cost PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-cost PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-cost PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-cost PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-cost PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/cost/kqp_cost_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-cost
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-cost
+ TEST_TARGET
+ ydb-core-kqp-ut-cost
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-cost
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-cost
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-cost
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-cost
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-cost)
diff --git a/ydb/core/kqp/ut/cost/CMakeLists.txt b/ydb/core/kqp/ut/cost/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/cost/CMakeLists.txt
+++ b/ydb/core/kqp/ut/cost/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5f39c4b433
--- /dev/null
+++ b/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-data)
+target_compile_options(ydb-core-kqp-ut-data PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-data PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-data PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ tx-datashard-ut_common
+ cpp-client-ydb_types
+)
+target_link_options(ydb-core-kqp-ut-data PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-data PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/data/kqp_read_null_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-data
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-data
+ TEST_TARGET
+ ydb-core-kqp-ut-data
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-data
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-data
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-data
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-data
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-data)
diff --git a/ydb/core/kqp/ut/data/CMakeLists.txt b/ydb/core/kqp/ut/data/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/data/CMakeLists.txt
+++ b/ydb/core/kqp/ut/data/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..237f251ade
--- /dev/null
+++ b/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-effects)
+target_compile_options(ydb-core-kqp-ut-effects PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-effects PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-effects PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-core-kqp-ut-effects PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-effects PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_effects_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_immediate_effects_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_inplace_update_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_write_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-effects
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-effects
+ TEST_TARGET
+ ydb-core-kqp-ut-effects
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-effects
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-effects
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-effects
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-effects
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-effects)
diff --git a/ydb/core/kqp/ut/effects/CMakeLists.txt b/ydb/core/kqp/ut/effects/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/effects/CMakeLists.txt
+++ b/ydb/core/kqp/ut/effects/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bbe698f755
--- /dev/null
+++ b/ydb/core/kqp/ut/federated_query/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ut-federated_query-common)
+target_compile_options(ut-federated_query-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ut-federated_query-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ kqp-ut-common
+ cpp-client-ydb_operation
+ cpp-client-ydb_query
+)
+target_sources(ut-federated_query-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/common/common.cpp
+)
diff --git a/ydb/core/kqp/ut/federated_query/common/CMakeLists.txt b/ydb/core/kqp/ut/federated_query/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/federated_query/common/CMakeLists.txt
+++ b/ydb/core/kqp/ut/federated_query/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..88465fb807
--- /dev/null
+++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-federated_query-generic)
+target_compile_options(ydb-core-kqp-ut-federated_query-generic PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-federated_query-generic PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-federated_query-generic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ libs-apache-arrow
+ contrib-libs-fmt
+ kqp-ut-common
+ ut-federated_query-common
+ connector-libcpp-ut_helpers
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-federated_query-generic PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/kqp_generic_provider_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-federated_query-generic
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-federated_query-generic
+ TEST_TARGET
+ ydb-core-kqp-ut-federated_query-generic
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-federated_query-generic
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-federated_query-generic
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-ut-federated_query-generic
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-federated_query-generic)
diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt
+++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f669ad3cc1
--- /dev/null
+++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-federated_query-s3)
+target_compile_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-federated_query-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-federated_query-s3 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
+ kqp-ut-common
+ ut-federated_query-common
+ yql-sql-pg_dummy
+ client-ydb_types-operation
+)
+target_link_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-federated_query-s3
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-federated_query-s3
+ TEST_TARGET
+ ydb-core-kqp-ut-federated_query-s3
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-federated_query-s3
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-federated_query-s3
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-federated_query-s3
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-federated_query-s3
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-federated_query-s3)
diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt
+++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae5485355f
--- /dev/null
+++ b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-idx_test)
+target_compile_options(ydb-core-kqp-ut-idx_test PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-idx_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-idx_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ public-lib-idx_test
+ public-lib-yson_value
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-idx_test PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-idx_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/idx_test/ydb_index_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-idx_test
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-idx_test
+ TEST_TARGET
+ ydb-core-kqp-ut-idx_test
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-idx_test
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-idx_test
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-idx_test
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-idx_test
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-idx_test)
diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/idx_test/CMakeLists.txt
+++ b/ydb/core/kqp/ut/idx_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad43bf80fe
--- /dev/null
+++ b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-indexes)
+target_compile_options(ydb-core-kqp-ut-indexes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-indexes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-threading-local_executor
+ kqp-ut-common
+ providers-common-http_gateway
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-indexes PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_multishard_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-indexes
+ TEST_TARGET
+ ydb-core-kqp-ut-indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-indexes
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-indexes
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-indexes)
diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.txt b/ydb/core/kqp/ut/indexes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/indexes/CMakeLists.txt
+++ b/ydb/core/kqp/ut/indexes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..610c92292e
--- /dev/null
+++ b/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-join)
+target_compile_options(ydb-core-kqp-ut-join PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-join PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-join PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+ digest_udf
+)
+target_link_options(ydb-core-kqp-ut-join PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-join PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-join
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-join
+ TEST_TARGET
+ ydb-core-kqp-ut-join
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-join
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-join
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-join
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-join
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-join)
diff --git a/ydb/core/kqp/ut/join/CMakeLists.txt b/ydb/core/kqp/ut/join/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/join/CMakeLists.txt
+++ b/ydb/core/kqp/ut/join/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3848f56696
--- /dev/null
+++ b/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-olap)
+target_compile_options(ydb-core-kqp-ut-olap PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-olap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-olap PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+ columnshard-hooks-testing
+ tx-datashard-ut_common
+)
+target_link_options(ydb-core-kqp-ut-olap PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-olap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-olap
+ PROPERTY
+ SPLIT_FACTOR
+ 100
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-olap
+ TEST_TARGET
+ ydb-core-kqp-ut-olap
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-olap
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-olap
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-olap
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-olap
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-olap)
diff --git a/ydb/core/kqp/ut/olap/CMakeLists.txt b/ydb/core/kqp/ut/olap/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/olap/CMakeLists.txt
+++ b/ydb/core/kqp/ut/olap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60a0c09c4b
--- /dev/null
+++ b/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-opt)
+target_compile_options(ydb-core-kqp-ut-opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-core-kqp-ut-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-core-kqp-ut-opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ re2_udf
+)
+target_link_options(ydb-core-kqp-ut-opt PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_agg_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_extract_predicate_unpack_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_kv_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_merge_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_sort_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_sqlin_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-opt
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-opt
+ TEST_TARGET
+ ydb-core-kqp-ut-opt
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-opt
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-opt
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-opt
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-opt
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-opt)
diff --git a/ydb/core/kqp/ut/opt/CMakeLists.txt b/ydb/core/kqp/ut/opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/opt/CMakeLists.txt
+++ b/ydb/core/kqp/ut/opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60a1aa3ec2
--- /dev/null
+++ b/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-perf)
+target_compile_options(ydb-core-kqp-ut-perf PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-perf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-threading-local_executor
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-perf PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_workload_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-perf
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-perf
+ TEST_TARGET
+ ydb-core-kqp-ut-perf
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-perf
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-perf
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-perf
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-perf
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-perf)
diff --git a/ydb/core/kqp/ut/perf/CMakeLists.txt b/ydb/core/kqp/ut/perf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/perf/CMakeLists.txt
+++ b/ydb/core/kqp/ut/perf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff58a281d7
--- /dev/null
+++ b/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-pg)
+target_compile_options(ydb-core-kqp-ut-pg PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-core-kqp-ut-pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-core-kqp-ut-pg PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ udf-service-exception_policy
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ public-lib-ut_helpers
+)
+target_link_options(ydb-core-kqp-ut-pg PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-pg
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-pg
+ TEST_TARGET
+ ydb-core-kqp-ut-pg
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-pg
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-pg
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-kqp-ut-pg
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-pg)
diff --git a/ydb/core/kqp/ut/pg/CMakeLists.txt b/ydb/core/kqp/ut/pg/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/pg/CMakeLists.txt
+++ b/ydb/core/kqp/ut/pg/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bfbd417a97
--- /dev/null
+++ b/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-query)
+target_compile_options(ydb-core-kqp-ut-query PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-query PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-query PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-client-ydb_proto
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-query PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-query PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_explain_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_limits_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_params_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_query_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_stats_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-query
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-query
+ TEST_TARGET
+ ydb-core-kqp-ut-query
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-query
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-query
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-query
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-query
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-query)
diff --git a/ydb/core/kqp/ut/query/CMakeLists.txt b/ydb/core/kqp/ut/query/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/query/CMakeLists.txt
+++ b/ydb/core/kqp/ut/query/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aae33bbba5
--- /dev/null
+++ b/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-scan)
+target_compile_options(ydb-core-kqp-ut-scan PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-scan PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-scan PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-scan PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-scan PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_flowcontrol_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_scan_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_split_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-scan
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-scan
+ TEST_TARGET
+ ydb-core-kqp-ut-scan
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scan
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scan
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scan
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-scan
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-scan)
diff --git a/ydb/core/kqp/ut/scan/CMakeLists.txt b/ydb/core/kqp/ut/scan/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/scan/CMakeLists.txt
+++ b/ydb/core/kqp/ut/scan/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..60674782a5
--- /dev/null
+++ b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-scheme)
+target_compile_options(ydb-core-kqp-ut-scheme PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-scheme PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-threading-local_executor
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-scheme PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-scheme
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-scheme
+ TEST_TARGET
+ ydb-core-kqp-ut-scheme
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scheme
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scheme
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-scheme
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-scheme
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-scheme)
diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.txt b/ydb/core/kqp/ut/scheme/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/scheme/CMakeLists.txt
+++ b/ydb/core/kqp/ut/scheme/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69ab448fc6
--- /dev/null
+++ b/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-service)
+target_compile_options(ydb-core-kqp-ut-service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-threading-local_executor
+ kqp-ut-common
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ public-lib-ut_helpers
+ cpp-client-ydb_operation
+ client-ydb_types-operation
+)
+target_link_options(ydb-core-kqp-ut-service PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_document_api_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_service_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-service
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-service
+ TEST_TARGET
+ ydb-core-kqp-ut-service
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-service
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-service
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-service
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-service
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-service)
diff --git a/ydb/core/kqp/ut/service/CMakeLists.txt b/ydb/core/kqp/ut/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/service/CMakeLists.txt
+++ b/ydb/core/kqp/ut/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5d55a21c9
--- /dev/null
+++ b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-spilling)
+target_compile_options(ydb-core-kqp-ut-spilling PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-spilling PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-spilling PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ cpp-client-ydb_proto
+ core-kqp-counters
+ core-kqp-host
+ core-kqp-provider
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-spilling PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-spilling PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-spilling
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-spilling
+ TEST_TARGET
+ ydb-core-kqp-ut-spilling
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-spilling
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-spilling
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-spilling
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-spilling
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-spilling)
diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.txt b/ydb/core/kqp/ut/spilling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/spilling/CMakeLists.txt
+++ b/ydb/core/kqp/ut/spilling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f3ce6ed0d
--- /dev/null
+++ b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-sysview)
+target_compile_options(ydb-core-kqp-ut-sysview PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-sysview PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-sysview PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-sysview PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-sysview PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_col_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_view_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-sysview
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-sysview
+ TEST_TARGET
+ ydb-core-kqp-ut-sysview
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-sysview
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-sysview
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-sysview
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-sysview
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-sysview)
diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.txt b/ydb/core/kqp/ut/sysview/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/sysview/CMakeLists.txt
+++ b/ydb/core/kqp/ut/sysview/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..56226845dc
--- /dev/null
+++ b/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-tx)
+target_compile_options(ydb-core-kqp-ut-tx PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-tx PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-tx PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-kqp-ut-tx PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-tx PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_tricky_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_tx_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-tx
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-tx
+ TEST_TARGET
+ ydb-core-kqp-ut-tx
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-tx
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-tx
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-tx
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-tx
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-tx)
diff --git a/ydb/core/kqp/ut/tx/CMakeLists.txt b/ydb/core/kqp/ut/tx/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/tx/CMakeLists.txt
+++ b/ydb/core/kqp/ut/tx/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..25daf9104e
--- /dev/null
+++ b/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-kqp-ut-yql)
+target_compile_options(ydb-core-kqp-ut-yql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-kqp-ut-yql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp
+)
+target_link_libraries(ydb-core-kqp-ut-yql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-kqp
+ kqp-ut-common
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-core-kqp-ut-yql PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-kqp-ut-yql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_pragma_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-kqp-ut-yql
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-kqp-ut-yql
+ TEST_TARGET
+ ydb-core-kqp-ut-yql
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-yql
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-yql
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-kqp-ut-yql
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-kqp-ut-yql
+ system_allocator
+)
+vcs_info(ydb-core-kqp-ut-yql)
diff --git a/ydb/core/kqp/ut/yql/CMakeLists.txt b/ydb/core/kqp/ut/yql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/kqp/ut/yql/CMakeLists.txt
+++ b/ydb/core/kqp/ut/yql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/load_test/CMakeLists.darwin-arm64.txt b/ydb/core/load_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..165bbf6362
--- /dev/null
+++ b/ydb/core/load_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_ycsb)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-core-load_test)
+target_link_libraries(ydb-core-load_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-histogram-hdr
+ monlib-dynamic_counters-percentile
+ monlib-service-pages
+ ydb-core-base
+ core-blobstorage-backpressure
+ core-blobstorage-base
+ core-blobstorage-pdisk
+ ydb-core-control
+ ydb-core-keyvalue
+ core-kqp-common
+ core-kqp-rm_service
+ core-tx-columnshard
+ core-tx-datashard
+ ydb-library-workload
+ public-lib-base
+ public-lib-operation_id
+ cpp-client-ydb_proto
+ ydb-services-kesus
+ ydb-services-metadata
+ ydb-services-persqueue_cluster_discovery
+ ydb-services-ydb
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ydb-core-load_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/keyvalue_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/kqp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/memory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/pdisk_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/pdisk_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/pdisk_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/service_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/group_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/vdisk_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/yql_single_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/bulk_mkql_upsert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/kqp_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/kqp_upsert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_read_iterator.cpp
+)
+generate_enum_serilization(ydb-core-load_test
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/percentile.h
+ INCLUDE_HEADERS
+ ydb/core/load_test/percentile.h
+)
diff --git a/ydb/core/load_test/CMakeLists.txt b/ydb/core/load_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/load_test/CMakeLists.txt
+++ b/ydb/core/load_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fbb5e2cf2e
--- /dev/null
+++ b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-load_test-ut_ycsb)
+target_compile_options(ydb-core-load_test-ut_ycsb PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-load_test-ut_ycsb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test
+)
+target_link_libraries(ydb-core-load_test-ut_ycsb PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-load_test
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-load_test-ut_ycsb PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-load_test-ut_ycsb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ut_ycsb.cpp
+)
+set_property(
+ TARGET
+ ydb-core-load_test-ut_ycsb
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-load_test-ut_ycsb
+ TEST_TARGET
+ ydb-core-load_test-ut_ycsb
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-load_test-ut_ycsb
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-load_test-ut_ycsb
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-load_test-ut_ycsb
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-load_test-ut_ycsb
+ system_allocator
+)
+vcs_info(ydb-core-load_test-ut_ycsb)
diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/load_test/ut_ycsb/CMakeLists.txt
+++ b/ydb/core/load_test/ut_ycsb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt b/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e739b8bcdb
--- /dev/null
+++ b/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-local_pgwire)
+target_compile_options(ydb-core-local_pgwire PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-local_pgwire PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ parser-pg_wrapper-interface
+ kqp-common-events
+ kqp-common-simple
+ core-kqp-executer_actor
+ ydb-core-grpc_services
+ core-grpc_services-local_rpc
+ ydb-core-protos
+ ydb-core-pgproxy
+ ydb-core-ydb_convert
+ api-grpc
+ lib-operation_id-protos
+)
+target_sources(ydb-core-local_pgwire PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/pgwire_kqp_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.cpp
+)
diff --git a/ydb/core/local_pgwire/CMakeLists.txt b/ydb/core/local_pgwire/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/local_pgwire/CMakeLists.txt
+++ b/ydb/core/local_pgwire/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/log_backend/CMakeLists.darwin-arm64.txt b/ydb/core/log_backend/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94831d48f3
--- /dev/null
+++ b/ydb/core/log_backend/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-log_backend)
+target_compile_options(ydb-core-log_backend PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-log_backend PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-unified_agent_client
+ ydb-core-base
+)
+target_sources(ydb-core-log_backend PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp
+)
diff --git a/ydb/core/log_backend/CMakeLists.txt b/ydb/core/log_backend/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/log_backend/CMakeLists.txt
+++ b/ydb/core/log_backend/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/metering/CMakeLists.darwin-arm64.txt b/ydb/core/metering/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f280441684
--- /dev/null
+++ b/ydb/core/metering/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-metering)
+target_link_libraries(ydb-core-metering PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ library-cpp-json
+ library-cpp-logger
+ ydb-core-base
+ library-cpp-resource
+)
+target_sources(ydb-core-metering PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp
+)
+generate_enum_serilization(ydb-core-metering
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h
+ INCLUDE_HEADERS
+ ydb/core/metering/bill_record.h
+)
+
+add_global_library_for(ydb-core-metering.global ydb-core-metering)
+target_link_libraries(ydb-core-metering.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ library-cpp-json
+ library-cpp-logger
+ ydb-core-base
+ library-cpp-resource
+)
+target_sources(ydb-core-metering.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/metering/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+)
+resources(ydb-core-metering.global
+ ${CMAKE_BINARY_DIR}/ydb/core/metering/da10233abc65c3f178c7da0ce0d7a4ea.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/kqp_default_settings.txt
+ KEYS
+ kqp_default_settings.txt
+)
diff --git a/ydb/core/metering/CMakeLists.txt b/ydb/core/metering/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/metering/CMakeLists.txt
+++ b/ydb/core/metering/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt b/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e8a7365889
--- /dev/null
+++ b/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-metering-ut)
+target_include_directories(ydb-core-metering-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering
+)
+target_link_libraries(ydb-core-metering-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-metering
+)
+target_link_options(ydb-core-metering-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-metering-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-metering-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-metering-ut
+ TEST_TARGET
+ ydb-core-metering-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-metering-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-metering-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-metering-ut
+ system_allocator
+)
+vcs_info(ydb-core-metering-ut)
diff --git a/ydb/core/metering/ut/CMakeLists.txt b/ydb/core/metering/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/metering/ut/CMakeLists.txt
+++ b/ydb/core/metering/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/CMakeLists.darwin-arm64.txt b/ydb/core/mind/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf47982546
--- /dev/null
+++ b/ydb/core/mind/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(address_classification)
+add_subdirectory(bscontroller)
+add_subdirectory(hive)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+
+add_library(ydb-core-mind)
+target_link_libraries(ydb-core-mind PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-crypto
+ blobstorage-dsproxy-mock
+ core-blobstorage-groupinfo
+ core-blobstorage-incrhuge
+ core-blobstorage-pdisk
+ core-engine-minikql
+ core-kesus-tablet
+ ydb-core-keyvalue
+ core-mind-bscontroller
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ core-sys_view-processor
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-test_tablet
+ tx-replication-controller
+ core-tx-scheme_board
+ core-tx-scheme_cache
+ core-tx-schemeshard
+)
+target_sources(ydb-core-mind PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__extend_lease.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__load_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__register_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__update_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__update_config_subscription.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__update_epoch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__alter_tenant.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__assign_free_slots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__check_slot_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__load_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__update_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__update_pool_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__update_node_location.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__update_slot_status.cpp
+)
diff --git a/ydb/core/mind/CMakeLists.txt b/ydb/core/mind/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/CMakeLists.txt
+++ b/ydb/core/mind/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/address_classification/CMakeLists.darwin-arm64.txt b/ydb/core/mind/address_classification/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..17f76f5bf2
--- /dev/null
+++ b/ydb/core/mind/address_classification/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-mind-address_classification)
+target_link_libraries(core-mind-address_classification PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+ ydb-core-base
+ core-cms-console
+ ydb-core-mon
+ ydb-core-protos
+ ydb-core-util
+)
+target_sources(core-mind-address_classification PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier.cpp
+)
+generate_enum_serilization(core-mind-address_classification
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier.h
+ INCLUDE_HEADERS
+ ydb/core/mind/address_classification/net_classifier.h
+)
diff --git a/ydb/core/mind/address_classification/CMakeLists.txt b/ydb/core/mind/address_classification/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/address_classification/CMakeLists.txt
+++ b/ydb/core/mind/address_classification/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a67f19b43a
--- /dev/null
+++ b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-address_classification-ut)
+target_compile_options(ydb-core-mind-address_classification-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-mind-address_classification-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification
+)
+target_link_libraries(ydb-core-mind-address_classification-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-mind-address_classification
+ cpp-actors-http
+ core-testlib-default
+)
+target_link_options(ydb-core-mind-address_classification-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-address_classification-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-address_classification-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-address_classification-ut
+ TEST_TARGET
+ ydb-core-mind-address_classification-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-address_classification-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-address_classification-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-address_classification-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-address_classification-ut
+ system_allocator
+)
+vcs_info(ydb-core-mind-address_classification-ut)
diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.txt b/ydb/core/mind/address_classification/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/address_classification/ut/CMakeLists.txt
+++ b/ydb/core/mind/address_classification/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..01fee7db2e
--- /dev/null
+++ b/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(ut_bscontroller)
+add_subdirectory(ut_selfheal)
+
+add_library(core-mind-bscontroller)
+target_link_libraries(core-mind-bscontroller PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-base-services
+ ydb-core-blobstorage
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ ydb-core-blob_depot
+ core-engine-minikql
+ ydb-core-protos
+ core-sys_view-common
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ core-tx-tx_proxy
+)
+target_sources(core-mind-bscontroller PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_host_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_storage_pool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config_cmd.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config_fit_groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config_fit_pdisks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/disk_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/drop_donor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/get_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_metrics_exchange.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_reconfigure_wipe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/load_everything.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/migrate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/node_report.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/propose_group_key.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/register_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/request_controller_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scrub.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_stats_calculator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/update_group_latencies.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/update_last_seen_ready.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/update_seen_operational.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/virtual_group.cpp
+)
diff --git a/ydb/core/mind/bscontroller/CMakeLists.txt b/ydb/core/mind/bscontroller/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/bscontroller/CMakeLists.txt
+++ b/ydb/core/mind/bscontroller/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..760b5f466c
--- /dev/null
+++ b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-bscontroller-ut)
+target_include_directories(ydb-core-mind-bscontroller-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller
+)
+target_link_libraries(ydb-core-mind-bscontroller-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-mind-bscontroller
+ cpp-actors-util
+ ydb-core-yql_testlib
+)
+target_link_options(ydb-core-mind-bscontroller-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-bscontroller-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-bscontroller-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 30
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-bscontroller-ut
+ TEST_TARGET
+ ydb-core-mind-bscontroller-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-bscontroller-ut
+ system_allocator
+)
+vcs_info(ydb-core-mind-bscontroller-ut)
diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/bscontroller/ut/CMakeLists.txt
+++ b/ydb/core/mind/bscontroller/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec2b8803a8
--- /dev/null
+++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-bscontroller-ut_bscontroller)
+target_compile_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-mind-bscontroller-ut_bscontroller PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-base
+ blobstorage-dsproxy-mock
+ core-mind-bscontroller
+ ydb-core-protos
+ core-testlib-default
+ core-testlib-basics
+)
+target_link_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-bscontroller-ut_bscontroller
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-bscontroller-ut_bscontroller
+ TEST_TARGET
+ ydb-core-mind-bscontroller-ut_bscontroller
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut_bscontroller
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut_bscontroller
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut_bscontroller
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-bscontroller-ut_bscontroller
+ system_allocator
+)
+vcs_info(ydb-core-mind-bscontroller-ut_bscontroller)
diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt
+++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b300851b7d
--- /dev/null
+++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-bscontroller-ut_selfheal)
+target_compile_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ blobstorage-dsproxy-mock
+ blobstorage-pdisk-mock
+ core-mind-bscontroller
+ core-tx-scheme_board
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-bscontroller-ut_selfheal
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-bscontroller-ut_selfheal
+ TEST_TARGET
+ ydb-core-mind-bscontroller-ut_selfheal
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut_selfheal
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-bscontroller-ut_selfheal
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-mind-bscontroller-ut_selfheal
+ system_allocator
+)
+vcs_info(ydb-core-mind-bscontroller-ut_selfheal)
diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt
+++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt b/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fef7d8ca01
--- /dev/null
+++ b/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-mind-hive)
+target_link_libraries(core-mind-hive PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-containers-ring_buffer
+ library-cpp-json
+ cpp-monlib-dynamic_counters
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-nodewarden
+ core-engine-minikql
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ core-sys_view-common
+ ydb-core-tablet
+ ydb-core-tablet_flat
+)
+target_sources(core-mind-hive PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_statics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_move_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__adopt_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__block_storage_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__configure_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__create_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__cut_tablet_history.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__delete_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__delete_tablet_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__disconnect_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__kill_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__load_everything.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__lock_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__process_boot_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__process_pending_operations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__reassign_groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__reassign_groups_on_decommit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__register_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__release_tablets.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__release_tablets_reply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__request_tablet_owners.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__request_tablet_seq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__response_tablet_seq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__restart_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__seize_tablets.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__seize_tablets_reply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__resume_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__start_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__stop_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__switch_drain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__sync_tablets.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__tablet_owners_reply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__unlock_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__update_domain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__update_tablet_groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__update_tablet_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__update_tablet_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tx__update_tablets_object.cpp
+)
diff --git a/ydb/core/mind/hive/CMakeLists.txt b/ydb/core/mind/hive/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/hive/CMakeLists.txt
+++ b/ydb/core/mind/hive/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae91b7b6a4
--- /dev/null
+++ b/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-hive-ut)
+target_compile_options(ydb-core-mind-hive-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-mind-hive-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive
+)
+target_link_libraries(ydb-core-mind-hive-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-mind-hive
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-actors-helpers
+ ydb-core-base
+ ydb-core-mind
+ core-testlib-default
+)
+target_link_options(ydb-core-mind-hive-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-hive-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-hive-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-hive-ut
+ TEST_TARGET
+ ydb-core-mind-hive-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-hive-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-hive-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-hive-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-hive-ut
+ system_allocator
+)
+vcs_info(ydb-core-mind-hive-ut)
diff --git a/ydb/core/mind/hive/ut/CMakeLists.txt b/ydb/core/mind/hive/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/hive/ut/CMakeLists.txt
+++ b/ydb/core/mind/hive/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e2921f43ea
--- /dev/null
+++ b/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-ut)
+target_compile_options(ydb-core-mind-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-mind-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind
+)
+target_link_libraries(ydb-core-mind-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-mind
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-mind-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_ut_local.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_ut_pool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 80
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-ut
+ TEST_TARGET
+ ydb-core-mind-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-ut
+ system_allocator
+)
+vcs_info(ydb-core-mind-ut)
diff --git a/ydb/core/mind/ut/CMakeLists.txt b/ydb/core/mind/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/ut/CMakeLists.txt
+++ b/ydb/core/mind/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e4faf39d5e
--- /dev/null
+++ b/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-mind-ut_fat)
+target_compile_options(ydb-core-mind-ut_fat PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-mind-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind
+)
+target_link_libraries(ydb-core-mind-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-mind
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-crypto
+ core-blobstorage-nodewarden
+ core-blobstorage-pdisk
+ blobstorage-vdisk-common
+ core-testlib-default
+)
+target_link_options(ydb-core-mind-ut_fat PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-mind-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp
+)
+set_property(
+ TARGET
+ ydb-core-mind-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-mind-ut_fat
+ TEST_TARGET
+ ydb-core-mind-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut_fat
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-mind-ut_fat
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-mind-ut_fat
+ system_allocator
+)
+vcs_info(ydb-core-mind-ut_fat)
diff --git a/ydb/core/mind/ut_fat/CMakeLists.txt b/ydb/core/mind/ut_fat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mind/ut_fat/CMakeLists.txt
+++ b/ydb/core/mind/ut_fat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mon/CMakeLists.darwin-arm64.txt b/ydb/core/mon/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee44c0b508
--- /dev/null
+++ b/ydb/core/mon/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-mon)
+target_link_libraries(ydb-core-mon PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-lwtrace-mon
+ cpp-string_utils-url
+ ydb-core-base
+ version
+ ydb-core-protos
+ ydb-library-aclib
+)
+target_sources(ydb-core-mon PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.cpp
+)
diff --git a/ydb/core/mon/CMakeLists.txt b/ydb/core/mon/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mon/CMakeLists.txt
+++ b/ydb/core/mon/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt b/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6d052bd1d
--- /dev/null
+++ b/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-mon_alloc)
+target_link_libraries(ydb-core-mon_alloc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-tcmalloc-malloc_extension
+ cpp-actors-core
+ cpp-actors-prof
+ cpp-html-pcdata
+ cpp-lfalloc-alloc_profiler
+ cpp-lfalloc-dbg_info
+ cpp-malloc-api
+ monlib-service-pages
+ cpp-ytalloc-api
+ cpp-yt-memory
+ ydb-core-base
+ ydb-core-control
+ ydb-library-services
+)
+target_sources(ydb-core-mon_alloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon_alloc/monitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon_alloc/profiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon_alloc/stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/mon_alloc/tcmalloc.cpp
+)
diff --git a/ydb/core/mon_alloc/CMakeLists.txt b/ydb/core/mon_alloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/mon_alloc/CMakeLists.txt
+++ b/ydb/core/mon_alloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt b/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5602840318
--- /dev/null
+++ b/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-node_whiteboard INTERFACE)
+target_link_libraries(ydb-core-node_whiteboard INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-protos
+ cpp-deprecated-enum_codegen
+ library-cpp-logger
+ cpp-lwtrace-mon
+ library-cpp-random_provider
+ library-cpp-time_provider
+ ydb-core-base
+ core-base-services
+ core-blobstorage-base
+ core-blobstorage-groupinfo
+ ydb-core-debug
+ ydb-core-erasure
+ ydb-core-protos
+)
diff --git a/ydb/core/node_whiteboard/CMakeLists.txt b/ydb/core/node_whiteboard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/node_whiteboard/CMakeLists.txt
+++ b/ydb/core/node_whiteboard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f6d0a3ab0
--- /dev/null
+++ b/ydb/core/persqueue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codecs)
+add_subdirectory(config)
+add_subdirectory(events)
+add_subdirectory(partition_key_range)
+add_subdirectory(ut)
+add_subdirectory(writer)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-core-persqueue)
+target_link_libraries(ydb-core-persqueue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ cpp-html-pcdata
+ library-cpp-json
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-keyvalue
+ core-kqp-common
+ ydb-core-metering
+ core-persqueue-codecs
+ core-persqueue-config
+ core-persqueue-events
+ core-persqueue-partition_key_range
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-library-logger
+ library-persqueue-counter_time_keeper
+ library-persqueue-topic_parser
+ public-lib-base
+ cpp-client-ydb_persqueue_core
+)
+target_sources(ydb-core-persqueue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/fetch_request_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/header.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/heartbeat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/metering_sink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ownerinfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_sourcemanager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/percentile_counter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/pq_database.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/pq_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/pq_l2_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/pq_rl_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/quota_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/read_balancer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/account_read_quoter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/read_quoter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/sourceid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/subscriber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/type_codecs_defs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/user_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/write_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/microseconds_sliding_window.cpp
+)
+generate_enum_serilization(ydb-core-persqueue
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/sourceid.h
+ INCLUDE_HEADERS
+ ydb/core/persqueue/sourceid.h
+)
diff --git a/ydb/core/persqueue/CMakeLists.txt b/ydb/core/persqueue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/CMakeLists.txt
+++ b/ydb/core/persqueue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/codecs/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/codecs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..06d39d1b16
--- /dev/null
+++ b/ydb/core/persqueue/codecs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-persqueue-codecs)
+target_link_libraries(core-persqueue-codecs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ cpp-client-ydb_persqueue_core
+)
+target_sources(core-persqueue-codecs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/codecs/pqv1.cpp
+)
diff --git a/ydb/core/persqueue/codecs/CMakeLists.txt b/ydb/core/persqueue/codecs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/codecs/CMakeLists.txt
+++ b/ydb/core/persqueue/codecs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..197328427c
--- /dev/null
+++ b/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-persqueue-config)
+target_link_libraries(core-persqueue-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+)
+target_sources(core-persqueue-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp
+)
diff --git a/ydb/core/persqueue/config/CMakeLists.txt b/ydb/core/persqueue/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/config/CMakeLists.txt
+++ b/ydb/core/persqueue/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/events/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d3a3f2cf37
--- /dev/null
+++ b/ydb/core/persqueue/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-persqueue-events)
+target_link_libraries(core-persqueue-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-keyvalue
+ ydb-core-protos
+ ydb-core-tablet
+ api-protos
+ library-persqueue-topic_parser
+)
+target_sources(core-persqueue-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/events/events.cpp
+)
diff --git a/ydb/core/persqueue/events/CMakeLists.txt b/ydb/core/persqueue/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/events/CMakeLists.txt
+++ b/ydb/core/persqueue/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/partition_key_range/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/partition_key_range/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a43bf08617
--- /dev/null
+++ b/ydb/core/persqueue/partition_key_range/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-persqueue-partition_key_range)
+target_link_libraries(core-persqueue-partition_key_range PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ ydb-core-scheme
+)
+target_sources(core-persqueue-partition_key_range PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/partition_key_range/partition_key_range.cpp
+)
diff --git a/ydb/core/persqueue/partition_key_range/CMakeLists.txt b/ydb/core/persqueue/partition_key_range/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/partition_key_range/CMakeLists.txt
+++ b/ydb/core/persqueue/partition_key_range/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..feb10e51c4
--- /dev/null
+++ b/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,126 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(slow)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(ydb-core-persqueue-ut)
+target_compile_options(ydb-core-persqueue-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-persqueue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue
+)
+target_link_libraries(ydb-core-persqueue-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-persqueue
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ persqueue-ut-common
+ core-testlib-default
+ ydb_persqueue_core-ut-ut_utils
+ ydb_topic-ut-ut_utils
+ tx-schemeshard-ut_helpers
+ library-cpp-resource
+)
+target_link_options(ydb-core-persqueue-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-persqueue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/counters_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/pqtablet_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/internals_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/make_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/metering_sink_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/mirrorer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/pq_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/partition_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/partitiongraph_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/pqtablet_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/quota_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/sourceid_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/splitmerge_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/type_codecs_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/user_info_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/pqrb_describes_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/microseconds_sliding_window_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/fetch_request_ut.cpp
+ ${CMAKE_BINARY_DIR}/ydb/core/persqueue/ut/20fb34d39c23be7518eb4226481d815e.cpp
+)
+set_property(
+ TARGET
+ ydb-core-persqueue-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 40
+)
+add_yunittest(
+ NAME
+ ydb-core-persqueue-ut
+ TEST_TARGET
+ ydb-core-persqueue-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+resources(ydb-core-persqueue-ut
+ ${CMAKE_BINARY_DIR}/ydb/core/persqueue/ut/20fb34d39c23be7518eb4226481d815e.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/resources/counters_datastreams.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/resources/counters_pqproxy_firstclass.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/resources/counters_topics.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/resources/counters_pqproxy.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/resources/counters_labeled.json
+ KEYS
+ counters_datastreams.html
+ counters_pqproxy_firstclass.html
+ counters_topics.html
+ counters_pqproxy.html
+ counters_labeled.json
+)
+target_allocator(ydb-core-persqueue-ut
+ system_allocator
+)
+vcs_info(ydb-core-persqueue-ut)
diff --git a/ydb/core/persqueue/ut/CMakeLists.txt b/ydb/core/persqueue/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/ut/CMakeLists.txt
+++ b/ydb/core/persqueue/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f398910fc5
--- /dev/null
+++ b/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(persqueue-ut-common)
+target_compile_options(persqueue-ut-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(persqueue-ut-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-testlib
+ ydb-core-persqueue
+)
+target_sources(persqueue-ut-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp
+)
diff --git a/ydb/core/persqueue/ut/common/CMakeLists.txt b/ydb/core/persqueue/ut/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/ut/common/CMakeLists.txt
+++ b/ydb/core/persqueue/ut/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af5db37f3f
--- /dev/null
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-persqueue-ut-slow)
+target_compile_options(ydb-core-persqueue-ut-slow PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-persqueue-ut-slow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue
+)
+target_link_libraries(ydb-core-persqueue-ut-slow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-persqueue
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ persqueue-ut-common
+ core-testlib-default
+)
+target_link_options(ydb-core-persqueue-ut-slow PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-persqueue-ut-slow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/slow/pq_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-persqueue-ut-slow
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-persqueue-ut-slow
+ TEST_TARGET
+ ydb-core-persqueue-ut-slow
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut-slow
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut-slow
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-persqueue-ut-slow
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-persqueue-ut-slow
+ system_allocator
+)
+vcs_info(ydb-core-persqueue-ut-slow)
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.txt b/ydb/core/persqueue/ut/slow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/persqueue/writer/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/writer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..35aa50f7e6
--- /dev/null
+++ b/ydb/core/persqueue/writer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-persqueue-writer)
+target_link_libraries(core-persqueue-writer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-digest-md5
+ cpp-string_utils-base64
+ ydb-core-base
+ core-persqueue-events
+ grpc_services-cancelation-protos
+ kqp-common-simple
+ ydb-core-protos
+ public-lib-base
+ lib-deprecated-kicli
+ cpp-client-ydb_params
+)
+target_sources(core-persqueue-writer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/writer/metadata_initializers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/writer/source_id_encoding.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/writer/writer.cpp
+)
diff --git a/ydb/core/persqueue/writer/CMakeLists.txt b/ydb/core/persqueue/writer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/persqueue/writer/CMakeLists.txt
+++ b/ydb/core/persqueue/writer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..19821e9cb2
--- /dev/null
+++ b/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-core-pgproxy)
+target_link_libraries(ydb-core-pgproxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ cpp-string_utils-base64
+ ydb-core-base
+ core-pgproxy-protos
+ ydb-core-protos
+ ydb-core-raw_socket
+)
+target_sources(ydb-core-pgproxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
+)
diff --git a/ydb/core/pgproxy/CMakeLists.txt b/ydb/core/pgproxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/pgproxy/CMakeLists.txt
+++ b/ydb/core/pgproxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d186da4612
--- /dev/null
+++ b/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-pgproxy-protos)
+target_link_libraries(core-pgproxy-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(core-pgproxy-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
+)
+target_proto_addincls(core-pgproxy-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-pgproxy-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/pgproxy/protos/CMakeLists.txt b/ydb/core/pgproxy/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ba2c4accd5
--- /dev/null
+++ b/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-pgproxy-ut)
+target_include_directories(ydb-core-pgproxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy
+)
+target_link_libraries(ydb-core-pgproxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-pgproxy
+ cpp-actors-testlib
+ ydb-core-protos
+)
+target_link_options(ydb-core-pgproxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-pgproxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-pgproxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-pgproxy-ut
+ TEST_TARGET
+ ydb-core-pgproxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-pgproxy-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-pgproxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-pgproxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-pgproxy-ut)
diff --git a/ydb/core/pgproxy/ut/CMakeLists.txt b/ydb/core/pgproxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/protos/CMakeLists.darwin-arm64.txt b/ydb/core/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..78d3934e76
--- /dev/null
+++ b/ydb/core/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,1785 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(out)
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-core-protos)
+set_property(TARGET ydb-core-protos PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(ydb-core-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-protos
+ libs-config-protos
+ core-scheme-protos
+ library-login-protos
+ library-mkql_proto-protos
+ api-protos
+ core-issue-protos
+ dq-actors-protos
+ yql-dq-proto
+ providers-common-proto
+ public-issue-protos
+ yql-public-types
+ ydb-library-services
+ library-ydb_issue-proto
+ contrib-libs-protobuf
+)
+target_proto_messages(ydb-core-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/alloc.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/base.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/bind_channel_storage_pool.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blob_depot.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blob_depot_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_base.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_base3.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_disk.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_disk_color.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_distributed_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_pdisk_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_vdisk_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_vdisk_internal.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blobstorage_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/blockstore_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/datashard_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/db_metadata_cache.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/feature_flags.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/filestore_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/bootstrapper.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/change_exchange.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/channel_purpose.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/cms.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/config_units.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/console.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/console_base.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/console_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/console_tenant.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_tx_allocator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_blob_depot.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_bs_controller.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_cms.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_coordinator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_columnshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_datashard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_hive.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_kesus.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_keyvalue.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_pq.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_replication.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_schemeshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_sequenceshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_statistics_aggregator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_sysview_processor.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_testshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_tx_proxy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters_mediator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/counters.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/database_basic_sausage_metainfo.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/data_events.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/datashard_load.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/drivemodel.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/export.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/external_sources.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/flat_tx_scheme.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/flat_scheme_op.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/health.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/hive.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/http_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/import.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/index_builder.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/kesus.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/kqp_physical.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/kqp_stats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/kqp.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/labeled_counters.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/load_test.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/local.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/long_tx_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/maintenance.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/metrics.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/minikql_engine.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/mon.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/msgbus.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/msgbus_health.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/msgbus_kv.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/msgbus_pq.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/netclassifier.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/node_broker.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/node_limits.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/profiler.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/query_stats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/replication.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/resource_broker.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_log.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_type_metadata.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_type_operation.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/serverless_proxy_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/shared_cache.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/sqs.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/follower_group.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/ssa.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/statestorage.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/statistics.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/stream.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/subdomains.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/table_service_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/table_stats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_counters.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_counters_aggregator.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_database.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_pipe.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_tracing_signals.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tablet_tx.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tenant_pool.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tenant_slot_broker.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/test_shard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tracing.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/node_whiteboard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_columnshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_datashard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_mediator_timecast.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_proxy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_scheme.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/tx_sequenceshard.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/pdiskfit.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/pqconfig.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/auth.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/key.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/grpc.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/grpc_pq_old.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/grpc_status_proxy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/ydb_result_set_old.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/ydb_table_impl.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
+)
+generate_enum_serilization(ydb-core-protos
+ ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+ INCLUDE_HEADERS
+ ydb/core/protos/blobstorage_pdisk_config.pb.h
+)
+generate_enum_serilization(ydb-core-protos
+ ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+ INCLUDE_HEADERS
+ ydb/core/protos/datashard_load.pb.h
+)
+target_proto_addincls(ydb-core-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(ydb-core-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(ydb-core-protos
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/core/protos/CMakeLists.txt b/ydb/core/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/protos/CMakeLists.txt
+++ b/ydb/core/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/protos/out/CMakeLists.darwin-arm64.txt b/ydb/core/protos/out/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ffaecab335
--- /dev/null
+++ b/ydb/core/protos/out/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-protos-out)
+target_link_libraries(core-protos-out PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+)
+target_sources(core-protos-out PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/out/out.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/out/out_cms.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/out/out_long_tx_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/protos/out/out_sequenceshard.cpp
+)
diff --git a/ydb/core/protos/out/CMakeLists.txt b/ydb/core/protos/out/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/protos/out/CMakeLists.txt
+++ b/ydb/core/protos/out/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/public_http/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..250aed6442
--- /dev/null
+++ b/ydb/core/public_http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-public_http)
+target_compile_options(ydb-core-public_http PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-public_http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-http
+ cpp-protobuf-json
+ library-cpp-resource
+ ydb-core-base
+ fq-libs-result_formatter
+ core-grpc_services-local_rpc
+ ydb-core-http_proxy
+ ydb-core-protos
+ core-public_http-protos
+ core-viewer-json
+ yql-public-issue
+ cpp-client-ydb_types
+)
+target_sources(ydb-core-public_http PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.cpp
+)
+
+add_global_library_for(ydb-core-public_http.global ydb-core-public_http)
+target_compile_options(ydb-core-public_http.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-public_http.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-http
+ cpp-protobuf-json
+ library-cpp-resource
+ ydb-core-base
+ fq-libs-result_formatter
+ core-grpc_services-local_rpc
+ ydb-core-http_proxy
+ ydb-core-protos
+ core-public_http-protos
+ core-viewer-json
+ yql-public-issue
+ cpp-client-ydb_types
+)
+target_sources(ydb-core-public_http.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/public_http/61d421c52ac59775eb29fb236d3d6f5a.cpp
+)
+resources(ydb-core-public_http.global
+ ${CMAKE_BINARY_DIR}/ydb/core/public_http/61d421c52ac59775eb29fb236d3d6f5a.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/openapi/openapi.yaml
+ KEYS
+ resources/openapi.yaml
+)
diff --git a/ydb/core/public_http/CMakeLists.txt b/ydb/core/public_http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/public_http/CMakeLists.txt
+++ b/ydb/core/public_http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69379327d8
--- /dev/null
+++ b/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-public_http-protos)
+target_link_libraries(core-public_http-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(core-public_http-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
+)
+target_proto_addincls(core-public_http-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-public_http-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/public_http/protos/CMakeLists.txt b/ydb/core/public_http/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/public_http/protos/CMakeLists.txt
+++ b/ydb/core/public_http/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8500657040
--- /dev/null
+++ b/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-public_http-ut)
+target_compile_options(ydb-core-public_http-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-public_http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http
+)
+target_link_libraries(ydb-core-public_http-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-public_http
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+ ydb-services-kesus
+ ydb-services-persqueue_cluster_discovery
+)
+target_link_options(ydb-core-public_http-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-public_http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-public_http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-public_http-ut
+ TEST_TARGET
+ ydb-core-public_http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-public_http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-public_http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-public_http-ut
+ system_allocator
+)
+vcs_info(ydb-core-public_http-ut)
diff --git a/ydb/core/public_http/ut/CMakeLists.txt b/ydb/core/public_http/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/public_http/ut/CMakeLists.txt
+++ b/ydb/core/public_http/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/quoter/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..229d5f127e
--- /dev/null
+++ b/ydb/core/quoter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(public)
+add_subdirectory(quoter_service_bandwidth_test)
+add_subdirectory(ut)
+
+add_library(ydb-core-quoter)
+target_link_libraries(ydb-core-quoter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-containers-ring_buffer
+ ydb-core-base
+ core-kesus-tablet
+ core-tx-scheme_cache
+ ydb-core-util
+ yql-public-issue
+ ydb-library-time_series_vec
+)
+target_sources(ydb-core-quoter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.cpp
+)
diff --git a/ydb/core/quoter/CMakeLists.txt b/ydb/core/quoter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/quoter/CMakeLists.txt
+++ b/ydb/core/quoter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ab3c153e6a
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-quoter-public)
+target_compile_options(core-quoter-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-quoter-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-time_series_vec
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-quoter-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
+)
+generate_enum_serilization(core-quoter-public
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
+ INCLUDE_HEADERS
+ ydb/core/quoter/public/quoter.h
+)
diff --git a/ydb/core/quoter/public/CMakeLists.txt b/ydb/core/quoter/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/quoter/public/CMakeLists.txt
+++ b/ydb/core/quoter/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b5748a5bd
--- /dev/null
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(quoter_service_bandwidth_test)
+target_compile_options(quoter_service_bandwidth_test PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(quoter_service_bandwidth_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-colorizer
+ library-cpp-getopt
+ ydb-core-base
+ core-kesus-tablet
+ ydb-core-quoter
+ core-testlib-default
+)
+target_link_options(quoter_service_bandwidth_test PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(quoter_service_bandwidth_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/server.cpp
+)
+target_allocator(quoter_service_bandwidth_test
+ system_allocator
+)
+vcs_info(quoter_service_bandwidth_test)
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..91fcd9d175
--- /dev/null
+++ b/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-quoter-ut)
+target_compile_options(ydb-core-quoter-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-quoter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter
+)
+target_link_libraries(ydb-core-quoter-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-quoter
+ cpp-testing-gmock_in_unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-quoter-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-quoter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-quoter-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-quoter-ut
+ TEST_TARGET
+ ydb-core-quoter-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-quoter-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-quoter-ut
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-quoter-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-quoter-ut
+ system_allocator
+)
+vcs_info(ydb-core-quoter-ut)
diff --git a/ydb/core/quoter/ut/CMakeLists.txt b/ydb/core/quoter/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/core/quoter/ut/CMakeLists.txt
+++ b/ydb/core/quoter/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt b/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f01952a82b
--- /dev/null
+++ b/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-raw_socket)
+target_link_libraries(ydb-core-raw_socket PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(ydb-core-raw_socket PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
+)
diff --git a/ydb/core/raw_socket/CMakeLists.txt b/ydb/core/raw_socket/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/raw_socket/CMakeLists.txt
+++ b/ydb/core/raw_socket/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/scheme/CMakeLists.darwin-arm64.txt b/ydb/core/scheme/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..beb2abe3f8
--- /dev/null
+++ b/ydb/core/scheme/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-core-scheme)
+target_link_libraries(ydb-core-scheme PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-charset
+ cpp-containers-bitseq
+ cpp-deprecated-enum_codegen
+ library-cpp-yson
+ core-scheme-protos
+ ydb-core-scheme_types
+ ydb-library-aclib
+ parser-pg_wrapper-interface
+ public-lib-scheme_types
+ library-pretty_types_print-protobuf
+ cpp-lwtrace-mon
+)
+target_sources(ydb-core-scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_tablecell.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_tabledefs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_types_defs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_type_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_types_proto.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_pathid.cpp
+)
diff --git a/ydb/core/scheme/CMakeLists.txt b/ydb/core/scheme/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/scheme/CMakeLists.txt
+++ b/ydb/core/scheme/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt b/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0191fcd833
--- /dev/null
+++ b/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-scheme-protos)
+set_property(TARGET core-scheme-protos PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(core-scheme-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(core-scheme-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/type_info.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
+)
+target_proto_addincls(core-scheme-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-scheme-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(core-scheme-protos
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/core/scheme/protos/CMakeLists.txt b/ydb/core/scheme/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/scheme/protos/CMakeLists.txt
+++ b/ydb/core/scheme/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt b/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..603023a1a6
--- /dev/null
+++ b/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-scheme-ut)
+target_compile_options(ydb-core-scheme-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-scheme-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme
+)
+target_link_libraries(ydb-core-scheme-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-scheme
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-scheme-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-scheme-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_tablecell_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-scheme-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-scheme-ut
+ TEST_TARGET
+ ydb-core-scheme-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-scheme-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-scheme-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-scheme-ut
+ system_allocator
+)
+vcs_info(ydb-core-scheme-ut)
diff --git a/ydb/core/scheme/ut/CMakeLists.txt b/ydb/core/scheme/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/scheme/ut/CMakeLists.txt
+++ b/ydb/core/scheme/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/scheme_types/CMakeLists.darwin-arm64.txt b/ydb/core/scheme_types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..210c5626fc
--- /dev/null
+++ b/ydb/core/scheme_types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-scheme_types)
+target_link_libraries(ydb-core-scheme_types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-lib-scheme_types
+)
+target_sources(ydb-core-scheme_types PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme_types/scheme_type_metadata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme_types/scheme_type_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/scheme_types/scheme_types_defs.cpp
+)
diff --git a/ydb/core/scheme_types/CMakeLists.txt b/ydb/core/scheme_types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/scheme_types/CMakeLists.txt
+++ b/ydb/core/scheme_types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/security/CMakeLists.darwin-arm64.txt b/ydb/core/security/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..566b4ff619
--- /dev/null
+++ b/ydb/core/security/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-security)
+target_link_libraries(ydb-core-security PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openldap
+ cpp-actors-core
+ cpp-actors-http
+ monlib-service-pages
+ cpp-openssl-io
+ ydb-core-base
+ ydb-core-protos
+ library-ycloud-api
+ library-ycloud-impl
+ ydb-library-aclib
+ library-aclib-protos
+ ydb-library-login
+ ydb-library-security
+)
+target_sources(ydb-core-security PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ldap_auth_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ldap_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ldap_auth_provider_linux.cpp
+)
diff --git a/ydb/core/security/CMakeLists.txt b/ydb/core/security/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/security/CMakeLists.txt
+++ b/ydb/core/security/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/security/ut/CMakeLists.darwin-arm64.txt b/ydb/core/security/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d16e98dde3
--- /dev/null
+++ b/ydb/core/security/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-security-ut)
+target_compile_options(ydb-core-security-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-security-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/security
+)
+target_link_libraries(ydb-core-security-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-security
+ core-testlib-default
+ testlib-service_mocks-ldap_mock
+)
+target_link_options(ydb-core-security-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-security-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/security/ldap_utils_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-security-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-security-ut
+ TEST_TARGET
+ ydb-core-security-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-security-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-security-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-security-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-security-ut
+ system_allocator
+)
+vcs_info(ydb-core-security-ut)
diff --git a/ydb/core/security/ut/CMakeLists.txt b/ydb/core/security/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/security/ut/CMakeLists.txt
+++ b/ydb/core/security/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/statistics/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ecb766d6e7
--- /dev/null
+++ b/ydb/core/statistics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(aggregator)
+add_subdirectory(ut)
+
+add_library(ydb-core-statistics)
+target_link_libraries(ydb-core-statistics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-protos
+ ydb-core-scheme
+)
+target_sources(ydb-core-statistics PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
+)
diff --git a/ydb/core/statistics/CMakeLists.txt b/ydb/core/statistics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/statistics/CMakeLists.txt
+++ b/ydb/core/statistics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe736bf693
--- /dev/null
+++ b/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-statistics-aggregator)
+target_compile_options(core-statistics-aggregator PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-statistics-aggregator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+)
+target_sources(core-statistics-aggregator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+)
diff --git a/ydb/core/statistics/aggregator/CMakeLists.txt b/ydb/core/statistics/aggregator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..89362fbe8d
--- /dev/null
+++ b/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-statistics-ut)
+target_compile_options(ydb-core-statistics-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-statistics-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics
+)
+target_link_libraries(ydb-core-statistics-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-statistics
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-statistics-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-statistics-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
+)
+set_property(
+ TARGET
+ ydb-core-statistics-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-statistics-ut
+ TEST_TARGET
+ ydb-core-statistics-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-statistics-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-statistics-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-statistics-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-statistics-ut
+ system_allocator
+)
+vcs_info(ydb-core-statistics-ut)
diff --git a/ydb/core/statistics/ut/CMakeLists.txt b/ydb/core/statistics/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/statistics/ut/CMakeLists.txt
+++ b/ydb/core/statistics/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..79cb54391a
--- /dev/null
+++ b/ydb/core/sys_view/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(nodes)
+add_subdirectory(partition_stats)
+add_subdirectory(processor)
+add_subdirectory(query_stats)
+add_subdirectory(service)
+add_subdirectory(storage)
+add_subdirectory(tablets)
+add_subdirectory(ut_kqp)
+
+add_library(ydb-core-sys_view)
+target_compile_options(ydb-core-sys_view PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-sys_view PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+ core-sys_view-nodes
+ core-sys_view-partition_stats
+ core-sys_view-query_stats
+ core-sys_view-service
+ core-sys_view-storage
+ core-sys_view-tablets
+)
+target_sources(ydb-core-sys_view PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
+)
diff --git a/ydb/core/sys_view/CMakeLists.txt b/ydb/core/sys_view/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/CMakeLists.txt
+++ b/ydb/core/sys_view/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cf19da8bae
--- /dev/null
+++ b/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-sys_view-common)
+target_link_libraries(core-sys_view-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-tablet_flat
+ cpp-deprecated-atomic
+)
+target_sources(core-sys_view-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
+)
diff --git a/ydb/core/sys_view/common/CMakeLists.txt b/ydb/core/sys_view/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/common/CMakeLists.txt
+++ b/ydb/core/sys_view/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8312dc7532
--- /dev/null
+++ b/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-sys_view-nodes)
+target_compile_options(core-sys_view-nodes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+)
+target_sources(core-sys_view-nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
+)
diff --git a/ydb/core/sys_view/nodes/CMakeLists.txt b/ydb/core/sys_view/nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..88faa7f7f8
--- /dev/null
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-sys_view-partition_stats)
+target_compile_options(core-sys_view-partition_stats PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-partition_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+)
+target_sources(core-sys_view-partition_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
+)
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.txt b/ydb/core/sys_view/partition_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..352c302945
--- /dev/null
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-sys_view-partition_stats-ut)
+target_compile_options(ydb-core-sys_view-partition_stats-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-sys_view-partition_stats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats
+)
+target_link_libraries(ydb-core-sys_view-partition_stats-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-sys_view-partition_stats
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-sys_view-partition_stats-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-sys_view-partition_stats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-sys_view-partition_stats-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-sys_view-partition_stats-ut
+ TEST_TARGET
+ ydb-core-sys_view-partition_stats-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-partition_stats-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-partition_stats-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-partition_stats-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-sys_view-partition_stats-ut
+ system_allocator
+)
+vcs_info(ydb-core-sys_view-partition_stats-ut)
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1416bcdbe8
--- /dev/null
+++ b/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-sys_view-processor)
+target_compile_options(core-sys_view-processor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-processor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-engine-minikql
+ core-grpc_services-counters
+ core-kqp-counters
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ core-tx-scheme_cache
+)
+target_sources(core-sys_view-processor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/db_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_init_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_configure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_collect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_aggregate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_interval_summary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_interval_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/tx_top_partitions.cpp
+)
diff --git a/ydb/core/sys_view/processor/CMakeLists.txt b/ydb/core/sys_view/processor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/processor/CMakeLists.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eece0034f8
--- /dev/null
+++ b/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-sys_view-query_stats)
+target_compile_options(core-sys_view-query_stats PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-query_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+ core-sys_view-service
+)
+target_sources(core-sys_view-query_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
+)
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.txt b/ydb/core/sys_view/query_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c117eb4d24
--- /dev/null
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-sys_view-query_stats-ut)
+target_compile_options(ydb-core-sys_view-query_stats-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-sys_view-query_stats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats
+)
+target_link_libraries(ydb-core-sys_view-query_stats-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-sys_view-query_stats
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-sys_view-query_stats-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-sys_view-query_stats-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-sys_view-query_stats-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-sys_view-query_stats-ut
+ TEST_TARGET
+ ydb-core-sys_view-query_stats-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-query_stats-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-query_stats-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-query_stats-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-sys_view-query_stats-ut
+ system_allocator
+)
+vcs_info(ydb-core-sys_view-query_stats-ut)
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e55c4dae7
--- /dev/null
+++ b/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-sys_view-service)
+target_link_libraries(core-sys_view-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ library-aclib-protos
+)
+target_sources(core-sys_view-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.cpp
+)
diff --git a/ydb/core/sys_view/service/CMakeLists.txt b/ydb/core/sys_view/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/service/CMakeLists.txt
+++ b/ydb/core/sys_view/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2977856841
--- /dev/null
+++ b/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-sys_view-service-ut)
+target_include_directories(ydb-core-sys_view-service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service
+)
+target_link_libraries(ydb-core-sys_view-service-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-sys_view-service
+ cpp-testing-unittest
+)
+target_link_options(ydb-core-sys_view-service-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-sys_view-service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-sys_view-service-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-sys_view-service-ut
+ TEST_TARGET
+ ydb-core-sys_view-service-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-service-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-service-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-service-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-sys_view-service-ut
+ system_allocator
+)
+vcs_info(ydb-core-sys_view-service-ut)
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.txt b/ydb/core/sys_view/service/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4a5f608797
--- /dev/null
+++ b/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-sys_view-storage)
+target_compile_options(core-sys_view-storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+)
+target_sources(core-sys_view-storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.cpp
+)
diff --git a/ydb/core/sys_view/storage/CMakeLists.txt b/ydb/core/sys_view/storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/storage/CMakeLists.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..001a1930e2
--- /dev/null
+++ b/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-sys_view-tablets)
+target_compile_options(core-sys_view-tablets PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-sys_view-tablets PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-kqp-runtime
+ core-sys_view-common
+)
+target_sources(core-sys_view-tablets PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
+)
diff --git a/ydb/core/sys_view/tablets/CMakeLists.txt b/ydb/core/sys_view/tablets/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c965eb2907
--- /dev/null
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-sys_view-ut_kqp)
+target_compile_options(ydb-core-sys_view-ut_kqp PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-sys_view-ut_kqp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view
+)
+target_link_libraries(ydb-core-sys_view-ut_kqp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-sys_view
+ cpp-testing-unittest
+ cpp-yson-node
+ kqp-ut-common
+ persqueue-ut-common
+ core-testlib-default
+ cpp-client-draft
+)
+target_link_options(ydb-core-sys_view-ut_kqp PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-sys_view-ut_kqp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_kqp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_labeled.cpp
+)
+set_property(
+ TARGET
+ ydb-core-sys_view-ut_kqp
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-sys_view-ut_kqp
+ TEST_TARGET
+ ydb-core-sys_view-ut_kqp
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-ut_kqp
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-ut_kqp
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-sys_view-ut_kqp
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-sys_view-ut_kqp
+ system_allocator
+)
+vcs_info(ydb-core-sys_view-ut_kqp)
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet/CMakeLists.darwin-arm64.txt b/ydb/core/tablet/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..40e5adc6b9
--- /dev/null
+++ b/ydb/core/tablet/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-tablet)
+target_link_libraries(ydb-core-tablet PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-actors-protos
+ cpp-actors-util
+ library-cpp-blockcodecs
+ cpp-deprecated-enum_codegen
+ library-cpp-yson
+ ydb-core-base
+ ydb-core-mon
+ ydb-core-mon_alloc
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ ydb-core-scheme
+ core-sys_view-service
+ ydb-core-tracing
+ ydb-core-util
+ library-persqueue-topic_parser
+ ydb-library-services
+)
+target_sources(ydb-core-tablet PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_whiteboard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipecache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_blockbs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_findlatest.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_rebuildhistory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_reset.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_writelog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.cpp
+)
diff --git a/ydb/core/tablet/CMakeLists.txt b/ydb/core/tablet/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet/CMakeLists.txt
+++ b/ydb/core/tablet/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed42817bd0
--- /dev/null
+++ b/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tablet-ut)
+target_compile_options(ydb-core-tablet-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tablet-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet
+)
+target_link_libraries(ydb-core-tablet-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-tablet
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-core-tablet-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tablet-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipecache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_req_blockbs_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_resolver_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tablet-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 50
+)
+add_yunittest(
+ NAME
+ ydb-core-tablet-ut
+ TEST_TARGET
+ ydb-core-tablet-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tablet-ut
+ system_allocator
+)
+vcs_info(ydb-core-tablet-ut)
diff --git a/ydb/core/tablet/ut/CMakeLists.txt b/ydb/core/tablet/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet/ut/CMakeLists.txt
+++ b/ydb/core/tablet/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f009108f0
--- /dev/null
+++ b/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,163 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(benchmark)
+add_subdirectory(protos)
+add_subdirectory(test)
+add_subdirectory(ut)
+add_subdirectory(ut_large)
+add_subdirectory(ut_pg)
+add_subdirectory(ut_util)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(ydb-core-tablet_flat)
+target_compile_options(ydb-core-tablet_flat PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-tablet_flat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-protobuf
+ cpp-actors-util
+ cpp-containers-absl_flat_hash
+ cpp-containers-intrusive_rb_tree
+ cpp-containers-stack_vector
+ cpp-digest-crc32c
+ cpp-html-pcdata
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ ydb-core-base
+ ydb-core-control
+ ydb-core-protos
+ ydb-core-tablet
+ core-tablet_flat-protos
+ ydb-library-binary_json
+ ydb-library-dynumber
+ library-mkql_proto-protos
+)
+target_proto_messages(ydb-core-tablet_flat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
+)
+target_sources(ydb-core-tablet_flat PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp_create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp_gen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_dbase_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_dbase_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_exec_broker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_exec_commit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_exec_commit_mgr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_exec_seat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_db_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_bio_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_load_blob_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_mem_warm.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausage_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_page_label.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_dump.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_iter_multi.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_loader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_overlay.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_outset.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_slice.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_range_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_row_versions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_store_hotdog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_misc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.cpp
+)
+generate_enum_serilization(ydb-core-tablet_flat
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp_gen.h
+ INCLUDE_HEADERS
+ ydb/core/tablet_flat/flat_comp_gen.h
+)
+generate_enum_serilization(ydb-core-tablet_flat
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_part_loader.h
+ INCLUDE_HEADERS
+ ydb/core/tablet_flat/flat_part_loader.h
+)
+generate_enum_serilization(ydb-core-tablet_flat
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+ INCLUDE_HEADERS
+ ydb/core/tablet_flat/flat_executor_compaction_logic.h
+)
+generate_enum_serilization(ydb-core-tablet_flat
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_row_eggs.h
+ INCLUDE_HEADERS
+ ydb/core/tablet_flat/flat_row_eggs.h
+)
+target_proto_addincls(ydb-core-tablet_flat
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(ydb-core-tablet_flat
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tablet_flat/CMakeLists.txt b/ydb/core/tablet_flat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/CMakeLists.txt
+++ b/ydb/core/tablet_flat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..631455d532
--- /dev/null
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(benchmark)
+target_link_libraries(benchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-gbenchmark
+ library-cpp-resource
+ ydb-core-scheme
+ test-libs-exec
+ test-libs-table
+ core-testlib-default
+)
+target_link_options(benchmark PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+)
+add_test(
+ NAME
+ benchmark
+ COMMAND
+ benchmark
+)
+set_property(
+ TEST
+ benchmark
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_property(
+ TEST
+ benchmark
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(benchmark
+ system_allocator
+)
+vcs_info(benchmark)
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a04498fa62
--- /dev/null
+++ b/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-tablet_flat-protos)
+target_link_libraries(core-tablet_flat-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ ydb-core-protos
+ core-scheme-protos
+)
+target_proto_messages(core-tablet_flat-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
+)
+target_proto_addincls(core-tablet_flat-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-tablet_flat-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.txt b/ydb/core/tablet_flat/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f08cfe6755
--- /dev/null
+++ b/ydb/core/tablet_flat/test/libs/exec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(test-libs-exec INTERFACE)
+target_link_libraries(test-libs-exec INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ blobstorage-dsproxy-mock
+ ydb-core-tablet_flat
+ core-testlib-actors
+)
diff --git a/ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt b/ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/libs/exec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3919df16d8
--- /dev/null
+++ b/ydb/core/tablet_flat/test/libs/rows/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(test-libs-rows)
+target_link_libraries(test-libs-rows PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-tablet_flat
+)
+target_sources(test-libs-rows PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/libs/rows/all.cpp
+)
diff --git a/ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt b/ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/libs/rows/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ab7b86db4b
--- /dev/null
+++ b/ydb/core/tablet_flat/test/libs/table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(model)
+
+add_library(test-libs-table)
+target_link_libraries(test-libs-table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ test-libs-rows
+ libs-table-model
+ ydb-core-tablet_flat
+)
+target_sources(test-libs-table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/libs/table/misc.cpp
+)
diff --git a/ydb/core/tablet_flat/test/libs/table/CMakeLists.txt b/ydb/core/tablet_flat/test/libs/table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/libs/table/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/libs/table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..970f0fd9cc
--- /dev/null
+++ b/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-table-model INTERFACE)
+target_link_libraries(libs-table-model INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ test-libs-rows
+)
diff --git a/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt b/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/libs/table/model/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ca9ec50ab5
--- /dev/null
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(table-perf)
+target_link_libraries(table-perf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ test-libs-table
+ library-cpp-charset
+ library-cpp-getopt
+ ydb-core-tablet_flat
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(table-perf PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(table-perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/colons.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/main.cpp
+)
+target_allocator(table-perf
+ system_allocator
+)
+vcs_info(table-perf)
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3c96dc149a
--- /dev/null
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(surg)
+target_link_libraries(surg PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ ydb-core-tablet_flat
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(surg PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(surg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/surg/main.cpp
+)
+target_allocator(surg
+ system_allocator
+)
+vcs_info(surg)
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5eb16e5ba1
--- /dev/null
+++ b/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,133 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(ydb-core-tablet_flat-ut)
+target_include_directories(ydb-core-tablet_flat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat
+)
+target_link_libraries(ydb-core-tablet_flat-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-tablet_flat
+ library-cpp-resource
+ ydb-core-scheme
+ test-libs-exec
+ test-libs-table
+ core-testlib-default
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tablet_flat-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tablet_flat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_db_iface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_db_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_database_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_leases_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_range_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_row_versions_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_sausage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_stat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_comp_gen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_compaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_compaction_multi.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_charge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_part.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_part_multi.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_proto.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_pages.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_redo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_rename_table_column.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_other.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_forward.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_screen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_bloom.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache_memtable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_versions.cpp
+ ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/ut/6cf77686c9ddf4f7a8a150d2405a77e7.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tablet_flat-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tablet_flat-ut
+ TEST_TARGET
+ ydb-core-tablet_flat-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+resources(ydb-core-tablet_flat-ut
+ ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/ut/6cf77686c9ddf4f7a8a150d2405a77e7.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/data/002_full_part.pages
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/data/008_basics_db.redo
+ KEYS
+ abi/002_full_part.pages
+ abi/008_basics_db.redo
+)
+target_allocator(ydb-core-tablet_flat-ut
+ system_allocator
+)
+vcs_info(ydb-core-tablet_flat-ut)
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.txt b/ydb/core/tablet_flat/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92088277e9
--- /dev/null
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tablet_flat-ut_large)
+target_include_directories(ydb-core-tablet_flat-ut_large PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat
+)
+target_link_libraries(ydb-core-tablet_flat-ut_large PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-tablet_flat
+ ydb-core-scheme
+ test-libs-exec
+ test-libs-table
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-tablet_flat-ut_large PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tablet_flat-ut_large PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut_large.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_large/ut_btree_index_large.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tablet_flat-ut_large
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tablet_flat-ut_large
+ TEST_TARGET
+ ydb-core-tablet_flat-ut_large
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_large
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_large
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_large
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tablet_flat-ut_large
+ system_allocator
+)
+vcs_info(ydb-core-tablet_flat-ut_large)
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..300882289a
--- /dev/null
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tablet_flat-ut_pg)
+target_compile_options(ydb-core-tablet_flat-ut_pg PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-core-tablet_flat-ut_pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-core-tablet_flat-ut_pg PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-tablet_flat
+ ydb-core-scheme
+ test-libs-table
+ udf-service-exception_policy
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-core-tablet_flat-ut_pg PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tablet_flat-ut_pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_pg/flat_database_pg_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tablet_flat-ut_pg
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tablet_flat-ut_pg
+ TEST_TARGET
+ ydb-core-tablet_flat-ut_pg
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_pg
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_pg
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tablet_flat-ut_pg
+ system_allocator
+)
+vcs_info(ydb-core-tablet_flat-ut_pg)
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..08c6d2e0f5
--- /dev/null
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tablet_flat-ut_util)
+target_include_directories(ydb-core-tablet_flat-ut_util PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat
+)
+target_link_libraries(ydb-core-tablet_flat-ut_util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-tablet_flat
+)
+target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tablet_flat-ut_util PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_string_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tablet_flat-ut_util
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tablet_flat-ut_util
+ TEST_TARGET
+ ydb-core-tablet_flat-ut_util
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_util
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_util
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tablet_flat-ut_util
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tablet_flat-ut_util
+ system_allocator
+)
+vcs_info(ydb-core-tablet_flat-ut_util)
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt b/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..202454e85c
--- /dev/null
+++ b/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-test_tablet)
+target_link_libraries(ydb-core-test_tablet PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-t1ha
+ library-cpp-json
+ ydb-core-keyvalue
+ ydb-core-protos
+ ydb-core-util
+)
+target_sources(ydb-core-test_tablet PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_read_validate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/tx_init_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/tx_initialize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/tx_load_everything.cpp
+)
diff --git a/ydb/core/test_tablet/CMakeLists.txt b/ydb/core/test_tablet/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/test_tablet/CMakeLists.txt
+++ b/ydb/core/test_tablet/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4fe8905c0e
--- /dev/null
+++ b/ydb/core/testlib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,115 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+add_subdirectory(basics)
+add_subdirectory(default)
+add_subdirectory(pg)
+
+add_library(ydb-core-testlib)
+target_compile_options(ydb-core-testlib PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-testlib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-grpc-client
+ cpp-grpc-server
+ grpc-server-actors
+ cpp-regex-pcre
+ cpp-testing-gmock_in_unittest
+ cpp-testing-unittest
+ run
+ ydb-core-base
+ core-blobstorage-base
+ core-blobstorage-pdisk
+ ydb-core-client
+ core-client-metadata
+ core-client-minikql_compile
+ core-client-server
+ core-cms-console
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-formats
+ fq-libs-init
+ fq-libs-mock
+ fq-libs-shared_resources
+ ydb-core-grpc_services
+ ydb-core-health_check
+ core-kesus-proxy
+ core-kesus-tablet
+ ydb-core-keyvalue
+ ydb-core-kqp
+ core-kqp-federated_query
+ core-kqp-finalize_script_service
+ ydb-core-metering
+ ydb-core-mind
+ core-mind-address_classification
+ core-mind-bscontroller
+ core-mind-hive
+ ydb-core-node_whiteboard
+ ydb-core-persqueue
+ ydb-core-protos
+ ydb-core-security
+ core-statistics-aggregator
+ core-sys_view-processor
+ core-sys_view-service
+ core-testlib-actors
+ core-testlib-basics
+ core-tx-columnshard
+ core-tx-coordinator
+ core-tx-long_tx_service
+ core-tx-mediator
+ tx-replication-controller
+ core-tx-schemeshard
+ core-tx-sequenceproxy
+ core-tx-sequenceshard
+ core-tx-time_cast
+ ydb-library-aclib
+ library-folder_service-mock
+ library-mkql_proto-protos
+ library-persqueue-topic_parser
+ ydb-library-security
+ minikql-comp_nodes-llvm
+ udf-service-exception_policy
+ public-lib-base
+ lib-deprecated-kicli
+ cpp-client-ydb_driver
+ client-ydb_persqueue_public-codecs
+ cpp-client-ydb_table
+ ydb-services-auth
+ ydb-services-cms
+ ydb-services-datastreams
+ ydb-services-discovery
+ services-ext_index-service
+ tx-conveyor-service
+ ydb-services-fq
+ ydb-services-kesus
+ ydb-services-persqueue_cluster_discovery
+ ydb-services-persqueue_v1
+ ydb-services-rate_limiter
+ ydb-services-monitoring
+ services-metadata-ds_table
+ services-bg_tasks-ds_table
+ ydb-services-bg_tasks
+ ydb-services-ydb
+ ydb-core-http_proxy
+)
+target_sources(ydb-core-testlib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_flat_dummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.cpp
+)
diff --git a/ydb/core/testlib/CMakeLists.txt b/ydb/core/testlib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/CMakeLists.txt
+++ b/ydb/core/testlib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee3a1ec036
--- /dev/null
+++ b/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-testlib-actors)
+target_link_libraries(core-testlib-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-testlib
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-mon
+ ydb-core-mon_alloc
+ ydb-core-scheme
+ ydb-core-tablet
+)
+target_sources(core-testlib-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime.cpp
+)
diff --git a/ydb/core/testlib/actors/CMakeLists.txt b/ydb/core/testlib/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/actors/CMakeLists.txt
+++ b/ydb/core/testlib/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e6c7dc04e6
--- /dev/null
+++ b/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-testlib-actors-ut)
+target_include_directories(ydb-core-testlib-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors
+)
+target_link_libraries(ydb-core-testlib-actors-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-testlib-actors
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-regex-pcre
+)
+target_link_options(ydb-core-testlib-actors-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-testlib-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-testlib-actors-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-testlib-actors-ut
+ TEST_TARGET
+ ydb-core-testlib-actors-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-testlib-actors-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-testlib-actors-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-testlib-actors-ut
+ system_allocator
+)
+vcs_info(ydb-core-testlib-actors-ut)
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.txt b/ydb/core/testlib/actors/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9a060da9e2
--- /dev/null
+++ b/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(default)
+
+add_library(core-testlib-basics)
+target_compile_options(core-testlib-basics PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-testlib-basics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-dnsresolver
+ cpp-regex-pcre
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-blobstorage
+ core-blobstorage-crypto
+ core-blobstorage-nodewarden
+ core-blobstorage-pdisk
+ core-client-server
+ ydb-core-formats
+ ydb-core-mind
+ ydb-core-node_whiteboard
+ ydb-core-quoter
+ ydb-core-tablet_flat
+ core-testlib-actors
+ core-tx-columnshard
+ core-tx-scheme_board
+ ydb-core-util
+ minikql-invoke_builtins-llvm
+ udf-service-exception_policy
+)
+target_sources(core-testlib-basics PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/runtime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/services.cpp
+)
diff --git a/ydb/core/testlib/basics/CMakeLists.txt b/ydb/core/testlib/basics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/basics/CMakeLists.txt
+++ b/ydb/core/testlib/basics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/basics/default/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/basics/default/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f95ffc8013
--- /dev/null
+++ b/ydb/core/testlib/basics/default/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(testlib-basics-default INTERFACE)
+target_link_libraries(testlib-basics-default INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ core-testlib-basics
+ yql-sql-pg_dummy
+)
diff --git a/ydb/core/testlib/basics/default/CMakeLists.txt b/ydb/core/testlib/basics/default/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/basics/default/CMakeLists.txt
+++ b/ydb/core/testlib/basics/default/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/default/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/default/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1897f36f9d
--- /dev/null
+++ b/ydb/core/testlib/default/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-testlib-default INTERFACE)
+target_link_libraries(core-testlib-default INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-testlib
+ yql-sql-pg_dummy
+)
diff --git a/ydb/core/testlib/default/CMakeLists.txt b/ydb/core/testlib/default/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/default/CMakeLists.txt
+++ b/ydb/core/testlib/default/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/testlib/pg/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/pg/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8a60ddd183
--- /dev/null
+++ b/ydb/core/testlib/pg/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-testlib-pg INTERFACE)
+target_link_libraries(core-testlib-pg INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-testlib
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
diff --git a/ydb/core/testlib/pg/CMakeLists.txt b/ydb/core/testlib/pg/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/testlib/pg/CMakeLists.txt
+++ b/ydb/core/testlib/pg/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tracing/CMakeLists.darwin-arm64.txt b/ydb/core/tracing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ffc82165d
--- /dev/null
+++ b/ydb/core/tracing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-tracing)
+target_link_libraries(ydb-core-tracing PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(ydb-core-tracing PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tracing/http.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tracing/tablet_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tracing/trace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tracing/trace_collection.cpp
+)
diff --git a/ydb/core/tracing/CMakeLists.txt b/ydb/core/tracing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tracing/CMakeLists.txt
+++ b/ydb/core/tracing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/CMakeLists.darwin-arm64.txt b/ydb/core/tx/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f64f01014
--- /dev/null
+++ b/ydb/core/tx/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,48 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(balance_coverage)
+add_subdirectory(columnshard)
+add_subdirectory(conveyor)
+add_subdirectory(coordinator)
+add_subdirectory(data_events)
+add_subdirectory(datashard)
+add_subdirectory(long_tx_service)
+add_subdirectory(mediator)
+add_subdirectory(program)
+add_subdirectory(replication)
+add_subdirectory(scheme_board)
+add_subdirectory(scheme_cache)
+add_subdirectory(schemeshard)
+add_subdirectory(sequenceproxy)
+add_subdirectory(sequenceshard)
+add_subdirectory(sharding)
+add_subdirectory(tiering)
+add_subdirectory(time_cast)
+add_subdirectory(tracing)
+add_subdirectory(tx_allocator)
+add_subdirectory(tx_allocator_client)
+add_subdirectory(tx_proxy)
+
+add_library(ydb-core-tx)
+target_link_libraries(ydb-core-tx PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-persqueue-config
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-util
+ ydb-library-aclib
+)
+target_sources(ydb-core-tx PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
+)
diff --git a/ydb/core/tx/CMakeLists.txt b/ydb/core/tx/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/CMakeLists.txt
+++ b/ydb/core/tx/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/balance_coverage/CMakeLists.darwin-arm64.txt b/ydb/core/tx/balance_coverage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..363e91a78a
--- /dev/null
+++ b/ydb/core/tx/balance_coverage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-tx-balance_coverage)
+target_link_libraries(core-tx-balance_coverage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(core-tx-balance_coverage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder.cpp
+)
diff --git a/ydb/core/tx/balance_coverage/CMakeLists.txt b/ydb/core/tx/balance_coverage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/balance_coverage/CMakeLists.txt
+++ b/ydb/core/tx/balance_coverage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..09206b8320
--- /dev/null
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-balance_coverage-ut)
+target_include_directories(ydb-core-tx-balance_coverage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage
+)
+target_link_libraries(ydb-core-tx-balance_coverage-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-balance_coverage
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-tx-balance_coverage-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-balance_coverage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-balance_coverage-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-balance_coverage-ut
+ TEST_TARGET
+ ydb-core-tx-balance_coverage-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-balance_coverage-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-balance_coverage-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-balance_coverage-ut
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-core-tx-balance_coverage-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-balance_coverage-ut)
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a033375524
--- /dev/null
+++ b/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,111 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(blobs_action)
+add_subdirectory(blobs_reader)
+add_subdirectory(common)
+add_subdirectory(counters)
+add_subdirectory(engines)
+add_subdirectory(hooks)
+add_subdirectory(normalizer)
+add_subdirectory(operations)
+add_subdirectory(resource_subscriber)
+add_subdirectory(resources)
+add_subdirectory(splitter)
+add_subdirectory(ut_rw)
+add_subdirectory(ut_schema)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-tx-columnshard)
+target_compile_options(core-tx-columnshard PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-columnshard PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-control
+ ydb-core-formats
+ ydb-core-kqp
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ tx-columnshard-engines
+ columnshard-engines-writer
+ tx-columnshard-counters
+ tx-columnshard-common
+ tx-columnshard-splitter
+ tx-columnshard-operations
+ tx-columnshard-blobs_reader
+ tx-columnshard-blobs_action
+ tx-columnshard-resource_subscriber
+ columnshard-normalizer-granule
+ columnshard-normalizer-portion
+ core-tx-tiering
+ tx-conveyor-usage
+ core-tx-tracing
+ tx-long_tx_service-public
+ ydb-core-util
+ api-protos
+ dq-actors-compute
+ ydb-library-chunks_limiter
+)
+target_sources(core-tx-columnshard PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/background_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blob.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blob_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blob_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__notify_tx_completion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__plan_step.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__stats_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__write_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_private_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
+)
+generate_enum_serilization(core-tx-columnshard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/columnshard.h
+)
+generate_enum_serilization(core-tx-columnshard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_impl.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/columnshard_impl.h
+)
diff --git a/ydb/core/tx/columnshard/CMakeLists.txt b/ydb/core/tx/columnshard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..11d7dd42c1
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abstract)
+add_subdirectory(bs)
+add_subdirectory(counters)
+add_subdirectory(tier)
+add_subdirectory(transaction)
+
+add_library(tx-columnshard-blobs_action)
+target_link_libraries(tx-columnshard-blobs_action PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ ydb-core-tablet_flat
+ core-tx-tiering
+ columnshard-blobs_action-abstract
+ columnshard-blobs_action-bs
+ columnshard-blobs_action-counters
+ columnshard-blobs_action-transaction
+ columnshard-blobs_action-tier
+)
+target_sources(tx-columnshard-blobs_action PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/blob_manager_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/memory.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_action/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..124be7647c
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-blobs_action-abstract)
+target_link_libraries(columnshard-blobs_action-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ ydb-core-tablet_flat
+ core-tx-tiering
+)
+target_sources(columnshard-blobs_action-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/remove.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/action.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..40472e35bd
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-blobs_action-bs)
+target_link_libraries(columnshard-blobs_action-bs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ ydb-core-tablet_flat
+ core-tx-tiering
+)
+target_sources(columnshard-blobs_action-bs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/bs/remove.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/bs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..44ff16687a
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-blobs_action-counters)
+target_link_libraries(columnshard-blobs_action-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+ ydb-core-tablet_flat
+)
+target_sources(columnshard-blobs_action-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/counters/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/counters/storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/counters/write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/counters/remove_declare.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/counters/remove_gc.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c0e74cb70b
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-blobs_action-tier)
+target_link_libraries(columnshard-blobs_action-tier PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ ydb-core-tablet_flat
+ core-tx-tiering
+)
+target_sources(columnshard-blobs_action-tier PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/adapter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/gc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/gc_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/tier/remove.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/tier/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b12ef8893
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-blobs_action-transaction)
+target_link_libraries(columnshard-blobs_action-transaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ ydb-core-tablet_flat
+ core-tx-tiering
+)
+target_sources(columnshard-blobs_action-transaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_indexed.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..386fb1cf80
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-columnshard-blobs_reader)
+target_link_libraries(tx-columnshard-blobs_reader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+ ydb-core-tablet_flat
+)
+target_sources(tx-columnshard-blobs_reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_reader/actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_reader/task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_reader/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/blobs_reader/read_coordinator.cpp
+)
diff --git a/ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt b/ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/blobs_reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a059465374
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(tx-columnshard-common)
+target_link_libraries(tx-columnshard-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ libs-apache-arrow
+ core-formats-arrow
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(tx-columnshard-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/portion.cpp
+)
+generate_enum_serilization(tx-columnshard-common
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/portion.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/common/portion.h
+)
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.txt b/ydb/core/tx/columnshard/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b67a55fc72
--- /dev/null
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+
+add_library(tx-columnshard-counters)
+target_link_libraries(tx-columnshard-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-dynamic_counters
+ columnshard-counters-common
+ ydb-core-base
+)
+target_sources(tx-columnshard-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/engine_logs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/blobs_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/insert_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
+)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.txt b/ydb/core/tx/columnshard/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a143f2cfcc
--- /dev/null
+++ b/ydb/core/tx/columnshard/counters/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-counters-common)
+target_link_libraries(columnshard-counters-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-dynamic_counters
+ ydb-core-protos
+ ydb-core-base
+)
+target_sources(columnshard-counters-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common/agent.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common/client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common/owner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common/private.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common/object_counter.cpp
+)
diff --git a/ydb/core/tx/columnshard/counters/common/CMakeLists.txt b/ydb/core/tx/columnshard/counters/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/counters/common/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/counters/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..41ff6614c5
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(changes)
+add_subdirectory(insert_table)
+add_subdirectory(portions)
+add_subdirectory(predicate)
+add_subdirectory(reader)
+add_subdirectory(scheme)
+add_subdirectory(storage)
+add_subdirectory(ut)
+add_subdirectory(writer)
+
+add_library(tx-columnshard-engines)
+target_compile_options(tx-columnshard-engines PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-engines PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-base
+ ydb-core-formats
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ columnshard-engines-reader
+ columnshard-engines-predicate
+ columnshard-engines-storage
+ columnshard-engines-insert_table
+ columnshard-engines-changes
+ columnshard-engines-portions
+ formats-arrow-compression
+ core-tx-program
+ udf-service-exception_policy
+)
+target_sources(tx-columnshard-engines PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/column_engine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/column_features.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/db_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/index_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portion_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/tier_info.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.txt b/ydb/core/tx/columnshard/engines/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8cc56b5bc3
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abstract)
+add_subdirectory(compaction)
+add_subdirectory(counters)
+
+add_library(columnshard-engines-changes)
+target_link_libraries(columnshard-engines-changes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-formats-arrow
+ tx-columnshard-common
+ columnshard-engines-insert_table
+ engines-changes-abstract
+ engines-changes-compaction
+ engines-changes-counters
+ tx-columnshard-splitter
+ ydb-core-tablet_flat
+ core-tx-tiering
+ ydb-core-protos
+)
+target_sources(columnshard-engines-changes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/compaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/ttl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/indexation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/cleanup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/with_appended.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/changes/CMakeLists.txt b/ydb/core/tx/columnshard/engines/changes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/changes/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/changes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a81124a1a5
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(engines-changes-abstract)
+target_link_libraries(engines-changes-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ columnshard-counters-common
+ ydb-core-tablet_flat
+ yql-core-expr_nodes
+ tx-columnshard-blobs_action
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(engines-changes-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/abstract/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/abstract/compaction_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/abstract/settings.cpp
+)
+generate_enum_serilization(engines-changes-abstract
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/abstract/abstract.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/engines/changes/abstract/abstract.h
+)
diff --git a/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/changes/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4985842d7b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(engines-changes-compaction)
+target_link_libraries(engines-changes-compaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-tx-tiering
+)
+target_sources(engines-changes-compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/compaction/merge_context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/compaction/column_cursor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/compaction/merged_column.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt b/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e1f276a65d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(engines-changes-counters)
+target_link_libraries(engines-changes-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+ ydb-core-tablet_flat
+)
+target_sources(engines-changes-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/changes/counters/general.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt b/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/changes/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3524a65489
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-engines-insert_table)
+target_link_libraries(columnshard-engines-insert_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ ydb-core-tablet_flat
+)
+target_sources(columnshard-engines-insert_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/insert_table/insert_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/insert_table/data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/insert_table/path_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/insert_table/meta.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt b/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/insert_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2c3e14a9a4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/portions/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(columnshard-engines-portions)
+target_link_libraries(columnshard-engines-portions PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ columnshard-engines-scheme
+ tx-columnshard-splitter
+ tx-columnshard-common
+ ydb-core-tablet_flat
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(columnshard-engines-portions PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/portion_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/column_record.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/with_blobs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/common.cpp
+)
+generate_enum_serilization(columnshard-engines-portions
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/portions/portion_info.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/engines/portions/portion_info.h
+)
diff --git a/ydb/core/tx/columnshard/engines/portions/CMakeLists.txt b/ydb/core/tx/columnshard/engines/portions/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/portions/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/portions/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0c1f4b4321
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-engines-predicate)
+target_link_libraries(columnshard-engines-predicate PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+)
+target_sources(columnshard-engines-predicate PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/predicate/container.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/predicate/range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/predicate/filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/predicate/predicate.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7778fbc5f
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(plain_reader)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(columnshard-engines-reader)
+target_compile_options(columnshard-engines-reader PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(columnshard-engines-reader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ columnshard-engines-predicate
+ columnshard-hooks-abstract
+ tx-columnshard-resources
+ core-tx-program
+ engines-reader-plain_reader
+ columnshard-engines-scheme
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(columnshard-engines-reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/conveyor_task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/description.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/read_filter_merger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/read_metadata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/read_context.cpp
+)
+generate_enum_serilization(columnshard-engines-reader
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/read_metadata.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/engines/reader/read_metadata.h
+)
diff --git a/ydb/core/tx/columnshard/engines/reader/CMakeLists.txt b/ydb/core/tx/columnshard/engines/reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/reader/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a2a2b2fef8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(engines-reader-plain_reader)
+target_link_libraries(engines-reader-plain_reader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-formats-arrow
+ tx-columnshard-blobs_action
+ tx-conveyor-usage
+)
+target_sources(engines-reader-plain_reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ef6c197306
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-engines-scheme)
+target_compile_options(columnshard-engines-scheme PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(columnshard-engines-scheme PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ core-formats-arrow
+ cpp-actors-core
+)
+target_sources(columnshard-engines-scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/index_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/tier_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..293a55fe65
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(optimizer)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(columnshard-engines-storage)
+target_link_libraries(columnshard-engines-storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ engines-storage-optimizer
+ core-formats-arrow
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(columnshard-engines-storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/granule.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/storage.cpp
+)
+generate_enum_serilization(columnshard-engines-storage
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/granule.h
+ INCLUDE_HEADERS
+ ydb/core/tx/columnshard/engines/storage/granule.h
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8bf700a309
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abstract)
+add_subdirectory(intervals)
+add_subdirectory(lbuckets)
+add_subdirectory(levels)
+
+add_library(engines-storage-optimizer INTERFACE)
+target_link_libraries(engines-storage-optimizer INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ storage-optimizer-abstract
+ storage-optimizer-intervals
+ storage-optimizer-levels
+ storage-optimizer-lbuckets
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2827f60579
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(storage-optimizer-abstract)
+target_link_libraries(storage-optimizer-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ engines-changes-abstract
+)
+target_sources(storage-optimizer-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39523c21a5
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(storage-optimizer-intervals)
+target_link_libraries(storage-optimizer-intervals PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ engines-changes-abstract
+)
+target_sources(storage-optimizer-intervals PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e5e4e9a6b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(storage-optimizer-lbuckets)
+target_link_libraries(storage-optimizer-lbuckets PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ engines-changes-abstract
+)
+target_sources(storage-optimizer-lbuckets PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/optimizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8a1314dc2c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(storage-optimizer-levels)
+target_link_libraries(storage-optimizer-levels PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+ engines-changes-abstract
+)
+target_sources(storage-optimizer-levels PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38152a164d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-columnshard-engines-ut)
+target_compile_options(ydb-core-tx-columnshard-engines-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-columnshard-engines-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines
+)
+target_link_libraries(ydb-core-tx-columnshard-engines-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ tx-columnshard-engines
+ libs-apache-arrow
+ ydb-core-base
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ tx-columnshard-counters
+ yql-sql-pg_dummy
+ core-arrow_kernels-request
+ core-testlib-default
+ columnshard-hooks-abstract
+ columnshard-hooks-testing
+ json2_udf
+)
+target_link_options(ydb-core-tx-columnshard-engines-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-columnshard-engines-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-columnshard-engines-ut
+ TEST_TARGET
+ ydb-core-tx-columnshard-engines-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-engines-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-engines-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-engines-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-columnshard-engines-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-columnshard-engines-ut)
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b16798a455
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-engines-writer)
+target_compile_options(columnshard-engines-writer PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(columnshard-engines-writer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ core-tablet_flat-protos
+ blobstorage-vdisk-protos
+ ydb-core-tablet_flat
+ core-formats-arrow
+ cpp-actors-core
+)
+target_sources(columnshard-engines-writer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/blob_constructor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/put_status.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/write_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83c3aaa02b
--- /dev/null
+++ b/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-hooks-abstract)
+target_link_libraries(columnshard-hooks-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-tx-tiering
+)
+target_sources(columnshard-hooks-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/hooks/abstract/abstract.cpp
+)
diff --git a/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/hooks/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..006b0b2e92
--- /dev/null
+++ b/ydb/core/tx/columnshard/hooks/testing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-hooks-testing)
+target_link_libraries(columnshard-hooks-testing PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ columnshard-hooks-abstract
+ columnshard-engines-changes
+)
+target_sources(columnshard-hooks-testing PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/hooks/testing/controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt b/ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/hooks/testing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4a11c1f061
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-normalizer-abstract)
+target_link_libraries(columnshard-normalizer-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-tablet_flat
+ columnshard-blobs_action-abstract
+ tx-columnshard-resource_subscriber
+)
+target_sources(columnshard-normalizer-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/normalizer/abstract/abstract.cpp
+)
diff --git a/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/normalizer/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0b6a8a69b4
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-normalizer-granule)
+target_link_libraries(columnshard-normalizer-granule PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ columnshard-normalizer-abstract
+)
+target_sources(columnshard-normalizer-granule PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/normalizer/granule/normalizer.cpp
+)
diff --git a/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt b/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/normalizer/granule/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec45390bce
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(columnshard-normalizer-portion)
+target_link_libraries(columnshard-normalizer-portion PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ columnshard-normalizer-abstract
+ tx-columnshard-blobs_reader
+ columnshard-engines-portions
+ tx-conveyor-usage
+)
+target_sources(columnshard-normalizer-portion PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/normalizer/portion/normalizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/normalizer/portion/min_max.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/normalizer/portion/chunks.cpp
+)
diff --git a/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt b/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/normalizer/portion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/operations/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/operations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0027f00a3c
--- /dev/null
+++ b/ydb/core/tx/columnshard/operations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-columnshard-operations)
+target_link_libraries(tx-columnshard-operations PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ core-tx-data_events
+ ydb-services-metadata
+)
+target_sources(tx-columnshard-operations PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/operations/write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/operations/write_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/operations/slice_builder.cpp
+)
diff --git a/ydb/core/tx/columnshard/operations/CMakeLists.txt b/ydb/core/tx/columnshard/operations/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/operations/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/operations/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..524c67a195
--- /dev/null
+++ b/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-columnshard-resource_subscriber)
+target_link_libraries(tx-columnshard-resource_subscriber PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+ ydb-core-tablet_flat
+)
+target_sources(tx-columnshard-resource_subscriber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/resource_subscriber/actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/resource_subscriber/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/resource_subscriber/task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/resource_subscriber/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt b/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/resource_subscriber/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/resources/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/resources/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9b2360f6b4
--- /dev/null
+++ b/ydb/core/tx/columnshard/resources/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-columnshard-resources)
+target_link_libraries(tx-columnshard-resources PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-formats-arrow
+)
+target_sources(tx-columnshard-resources PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/resources/memory.cpp
+)
diff --git a/ydb/core/tx/columnshard/resources/CMakeLists.txt b/ydb/core/tx/columnshard/resources/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/resources/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/resources/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/splitter/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/splitter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8b4a2f4924
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(tx-columnshard-splitter)
+target_link_libraries(tx-columnshard-splitter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ columnshard-engines-storage
+)
+target_sources(tx-columnshard-splitter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/batch_slice.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/chunks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/simple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/rb_splitter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/column_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/scheme_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/blob_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/chunk_meta.cpp
+)
diff --git a/ydb/core/tx/columnshard/splitter/CMakeLists.txt b/ydb/core/tx/columnshard/splitter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/splitter/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/splitter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a3bb444c1e
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-columnshard-splitter-ut)
+target_compile_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
+ -Wno-unused-parameter
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-columnshard-splitter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ tx-columnshard-splitter
+ libs-apache-arrow
+ ydb-library-arrow_kernels
+ tx-columnshard-counters
+ formats-arrow-compression
+ core-kqp-common
+ yql-parser-pg_wrapper
+ yql-public-udf
+ ydb-core-persqueue
+ core-kqp-session_actor
+ core-tx-tx_proxy
+ ydb-core-tx
+ ydb-core-mind
+ udf-service-exception_policy
+ yql-sql-pg
+)
+target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-columnshard-splitter-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-columnshard-splitter-ut
+ TEST_TARGET
+ ydb-core-tx-columnshard-splitter-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-splitter-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-splitter-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-columnshard-splitter-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-columnshard-splitter-ut)
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cac2dc7c55
--- /dev/null
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-columnshard-ut_rw)
+target_compile_options(ydb-core-tx-columnshard-ut_rw PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-columnshard-ut_rw PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard
+)
+target_link_libraries(ydb-core-tx-columnshard-ut_rw PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-columnshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ columnshard-hooks-abstract
+ columnshard-hooks-testing
+ ydb-services-metadata
+ ydb-core-tx
+ public-lib-yson_value
+)
+target_link_options(ydb-core-tx-columnshard-ut_rw PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-columnshard-ut_rw PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/ut_rw/ut_normalizer.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-columnshard-ut_rw
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-columnshard-ut_rw
+ TEST_TARGET
+ ydb-core-tx-columnshard-ut_rw
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_rw
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_rw
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_rw
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-columnshard-ut_rw
+ system_allocator
+)
+vcs_info(ydb-core-tx-columnshard-ut_rw)
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..837f723bf9
--- /dev/null
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-columnshard-ut_schema)
+target_compile_options(ydb-core-tx-columnshard-ut_schema PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-columnshard-ut_schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard
+)
+target_link_libraries(ydb-core-tx-columnshard-ut_schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-columnshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ columnshard-hooks-abstract
+ columnshard-hooks-testing
+ ydb-services-metadata
+ ydb-core-tx
+ public-lib-yson_value
+)
+target_link_options(ydb-core-tx-columnshard-ut_schema PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-columnshard-ut_schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-columnshard-ut_schema
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-columnshard-ut_schema
+ TEST_TARGET
+ ydb-core-tx-columnshard-ut_schema
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_schema
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_schema
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-columnshard-ut_schema
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-columnshard-ut_schema
+ system_allocator
+)
+vcs_info(ydb-core-tx-columnshard-ut_schema)
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/conveyor/service/CMakeLists.darwin-arm64.txt b/ydb/core/tx/conveyor/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54a440d279
--- /dev/null
+++ b/ydb/core/tx/conveyor/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-conveyor-service)
+target_link_libraries(tx-conveyor-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tx-conveyor-usage
+ ydb-core-protos
+)
+target_sources(tx-conveyor-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/service/worker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/service/service.cpp
+)
diff --git a/ydb/core/tx/conveyor/service/CMakeLists.txt b/ydb/core/tx/conveyor/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/conveyor/service/CMakeLists.txt
+++ b/ydb/core/tx/conveyor/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/conveyor/usage/CMakeLists.darwin-arm64.txt b/ydb/core/tx/conveyor/usage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f18e519b82
--- /dev/null
+++ b/ydb/core/tx/conveyor/usage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-conveyor-usage)
+target_link_libraries(tx-conveyor-usage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ services-metadata-request
+)
+target_sources(tx-conveyor-usage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/usage/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/usage/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/usage/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/conveyor/usage/service.cpp
+)
diff --git a/ydb/core/tx/conveyor/usage/CMakeLists.txt b/ydb/core/tx/conveyor/usage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/conveyor/usage/CMakeLists.txt
+++ b/ydb/core/tx/conveyor/usage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ee79abc7e
--- /dev/null
+++ b/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(public)
+add_subdirectory(ut)
+
+add_library(core-tx-coordinator)
+target_link_libraries(core-tx-coordinator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-containers-absl_flat_hash
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-tx
+ tx-coordinator-public
+ ydb-core-util
+)
+target_sources(core-tx-coordinator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__acquire_read_step.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__configure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__last_step_subscriptions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__mediators_confirmations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__plan_step.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__read_step_subscriptions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__restore_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__restore_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__schema_upgrade.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator__stop_guard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/mediator_queue.cpp
+)
diff --git a/ydb/core/tx/coordinator/CMakeLists.txt b/ydb/core/tx/coordinator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/coordinator/CMakeLists.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..20d07d9e09
--- /dev/null
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(tx-coordinator-protos)
+target_link_libraries(tx-coordinator-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(tx-coordinator-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
+)
+target_proto_addincls(tx-coordinator-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(tx-coordinator-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.txt b/ydb/core/tx/coordinator/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/coordinator/public/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2c6611d90b
--- /dev/null
+++ b/ydb/core/tx/coordinator/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-coordinator-public)
+target_link_libraries(tx-coordinator-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ tx-coordinator-protos
+)
+target_sources(tx-coordinator-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/public/events.cpp
+)
diff --git a/ydb/core/tx/coordinator/public/CMakeLists.txt b/ydb/core/tx/coordinator/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/coordinator/public/CMakeLists.txt
+++ b/ydb/core/tx/coordinator/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b9f36054e6
--- /dev/null
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-coordinator-ut)
+target_compile_options(ydb-core-tx-coordinator-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-coordinator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator
+)
+target_link_libraries(ydb-core-tx-coordinator-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-coordinator
+ core-testlib-default
+ ydb-core-tx
+ api-grpc
+)
+target_link_options(ydb-core-tx-coordinator-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-coordinator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_volatile_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-coordinator-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-coordinator-ut
+ TEST_TARGET
+ ydb-core-tx-coordinator-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-coordinator-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-coordinator-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-coordinator-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-coordinator-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-coordinator-ut)
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.txt b/ydb/core/tx/coordinator/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/data_events/CMakeLists.darwin-arm64.txt b/ydb/core/tx/data_events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..70995c1511
--- /dev/null
+++ b/ydb/core/tx/data_events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-tx-data_events)
+target_link_libraries(core-tx-data_events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-tablet
+ api-grpc-draft
+ api-protos
+ ydb-core-base
+ core-tx-sharding
+ tx-long_tx_service-public
+ core-tx-scheme_cache
+ core-formats-arrow
+ ydb-core-protos
+ ydb-library-accessor
+ ydb-library-conclusion
+ libs-apache-arrow
+ cpp-actors-core
+ cpp-actors-wilson
+ core-tablet_flat-protos
+ ydb-core-tablet_flat
+ blobstorage-vdisk-protos
+)
+target_sources(core-tx-data_events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/data_events/shard_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/data_events/shards_splitter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/data_events/write_data.cpp
+)
diff --git a/ydb/core/tx/data_events/CMakeLists.txt b/ydb/core/tx/data_events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/data_events/CMakeLists.txt
+++ b/ydb/core/tx/data_events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9aebe4c314
--- /dev/null
+++ b/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,425 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_background_compaction)
+add_subdirectory(ut_build_index)
+add_subdirectory(ut_change_collector)
+add_subdirectory(ut_change_exchange)
+add_subdirectory(ut_common)
+add_subdirectory(ut_compaction)
+add_subdirectory(ut_erase_rows)
+add_subdirectory(ut_followers)
+add_subdirectory(ut_init)
+add_subdirectory(ut_keys)
+add_subdirectory(ut_kqp)
+add_subdirectory(ut_kqp_errors)
+add_subdirectory(ut_kqp_scan)
+add_subdirectory(ut_locks)
+add_subdirectory(ut_minikql)
+add_subdirectory(ut_minstep)
+add_subdirectory(ut_order)
+add_subdirectory(ut_range_avl_tree)
+add_subdirectory(ut_range_ops)
+add_subdirectory(ut_range_treap)
+add_subdirectory(ut_read_iterator)
+add_subdirectory(ut_read_table)
+add_subdirectory(ut_reassign)
+add_subdirectory(ut_replication)
+add_subdirectory(ut_rs)
+add_subdirectory(ut_sequence)
+add_subdirectory(ut_snapshot)
+add_subdirectory(ut_stats)
+add_subdirectory(ut_upload_rows)
+add_subdirectory(ut_volatile)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(core-tx-datashard)
+target_compile_options(core-tx-datashard PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-datashard PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-resource
+ contrib-libs-zstd
+ cpp-actors-core
+ cpp-containers-absl_flat_hash
+ cpp-containers-stack_vector
+ cpp-digest-md5
+ cpp-html-pcdata
+ library-cpp-json
+ cpp-json-yson
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ monlib-service-pages
+ cpp-string_utils-base64
+ cpp-string_utils-quote
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-formats
+ ydb-core-io_formats
+ core-kqp-runtime
+ core-persqueue-partition_key_range
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ tx-long_tx_service-public
+ ydb-core-util
+ ydb-core-wrappers
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ ydb-library-binary_json
+ ydb-library-dynumber
+ parser-pg_wrapper-interface
+ api-protos
+ lib-deprecated-kicli
+ dq-actors-compute
+ services-lib-sharding
+ ydb-library-chunks_limiter
+)
+target_sources(core-tx-datashard PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_traits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_and_wait_dependencies_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_data_tx_out_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_distributed_erase_tx_out_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/build_scheme_tx_out_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/cdc_stream_heartbeat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/cdc_stream_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_collector_async_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_collector_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_collector_cdc_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_exchange.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_exchange_split.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record_body_serializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record_cdc_serializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_read_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_scheme_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_snapshot_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/complete_data_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/completed_operations_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/conflicts_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/create_cdc_stream_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/create_persistent_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/create_table_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/create_volatile_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__cancel_tx_proposal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__compact_borrowed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__compaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__cleanup_borrowed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__cleanup_in_rs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__cleanup_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__conditional_erase_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__get_state_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__schema_changed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__migrate_schemeshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__mon_reset_schema_version.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__op_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__plan_step.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__progress_resend_rs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__progress_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__propose_tx_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__readset.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__read_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__read_columns.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__s3_download_txs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__s3_upload_txs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__kqp_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__snapshot_txs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__store_table_path.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__store_scan_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_change_receiving.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_change_sender_activation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_change_sending.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_loans.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_split_dst.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_split_src.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_switch_mvcc_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_common_upload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_erase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_upload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_distributed_erase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_overload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_s3_downloads.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_s3_uploads.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_s3_upload_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_schema_snapshots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_snapshots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_lookup_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_read_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_upsert_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_delete_rows.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_repl_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_repl_offsets.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_repl_offsets_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_repl_offsets_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_subdomain_path_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/direct_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/drop_cdc_stream_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/drop_index_notice_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/drop_persistent_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/drop_table_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/drop_volatile_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/erase_rows_condition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execute_commit_writes_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execute_data_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execute_kqp_scan_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/move_index_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/move_table_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/plan_queue_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/prepare_data_tx_in_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/prepare_distributed_erase_tx_in_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/prepare_kqp_data_tx_in_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/prepare_scheme_tx_in_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/protect_scheme_echoes_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_op_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/receive_snapshot_cleanup_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/receive_snapshot_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/remove_lock_change_records.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/remove_locks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_ops.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/restore_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_and_send_out_rs_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_commit_writes_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_data_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_distributed_erase_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_scheme_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/store_snapshot_tx_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/volatile_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/wait_for_plan_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/wait_for_stream_clearance_unit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/upload_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_s3_buffer_raw.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_s3_buffer_zstd.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_s3_uploader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/extstorage_usage_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/import_s3.cpp
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_traits.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/backup_restore_traits.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_exchange.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/change_exchange.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/change_record.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/datashard.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/datashard_active_transaction.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_s3_upload.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/datashard_s3_upload.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/execution_unit.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/execution_unit_kind.h
+)
+generate_enum_serilization(core-tx-datashard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+ INCLUDE_HEADERS
+ ydb/core/tx/datashard/operation.h
+)
+
+add_global_library_for(core-tx-datashard.global core-tx-datashard)
+target_compile_options(core-tx-datashard.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-datashard.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-resource
+ contrib-libs-zstd
+ cpp-actors-core
+ cpp-containers-absl_flat_hash
+ cpp-containers-stack_vector
+ cpp-digest-md5
+ cpp-html-pcdata
+ library-cpp-json
+ cpp-json-yson
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ monlib-service-pages
+ cpp-string_utils-base64
+ cpp-string_utils-quote
+ ydb-core-actorlib_impl
+ ydb-core-base
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-formats
+ ydb-core-io_formats
+ core-kqp-runtime
+ core-persqueue-partition_key_range
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ tx-long_tx_service-public
+ ydb-core-util
+ ydb-core-wrappers
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ ydb-library-binary_json
+ ydb-library-dynumber
+ parser-pg_wrapper-interface
+ api-protos
+ lib-deprecated-kicli
+ dq-actors-compute
+ services-lib-sharding
+ ydb-library-chunks_limiter
+)
+target_sources(core-tx-datashard.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/tx/datashard/eacf331f0ffc35d4b482f1d15a887d3b.cpp
+)
+resources(core-tx-datashard.global
+ ${CMAKE_BINARY_DIR}/ydb/core/tx/datashard/eacf331f0ffc35d4b482f1d15a887d3b.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/index.html
+ KEYS
+ datashard/index.html
+)
diff --git a/ydb/core/tx/datashard/CMakeLists.txt b/ydb/core/tx/datashard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/CMakeLists.txt
+++ b/ydb/core/tx/datashard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d307a249fc
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_background_compaction)
+target_compile_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_background_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_background_compaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_background_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_background_compaction.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_background_compaction
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_background_compaction
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_background_compaction
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_background_compaction
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_background_compaction
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_background_compaction
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_background_compaction
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_background_compaction)
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..efdcb2a82a
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_build_index)
+target_compile_options(ydb-core-tx-datashard-ut_build_index PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_build_index PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_build_index PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_build_index PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_build_index PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_build_index.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_build_index
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_build_index
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_build_index
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_build_index
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_build_index
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_build_index
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_build_index
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_build_index)
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f026822e3c
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_change_collector)
+target_compile_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_change_collector PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_change_collector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_change_collector PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_collector.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_change_collector
+ PROPERTY
+ SPLIT_FACTOR
+ 8
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_change_collector
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_change_collector
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_collector
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_collector
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_collector
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_change_collector
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_change_collector)
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..815a53bfd1
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_change_exchange)
+target_compile_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_change_exchange PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_change_exchange PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_datastreams
+ cpp-client-ydb_topic
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_change_exchange PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_change_exchange
+ PROPERTY
+ SPLIT_FACTOR
+ 4
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_change_exchange
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_change_exchange
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_exchange
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_exchange
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_change_exchange
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_change_exchange
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_change_exchange)
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..773aa90c43
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-datashard-ut_common)
+target_compile_options(tx-datashard-ut_common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-datashard-ut_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ kqp-ut-common
+)
+target_sources(tx-datashard-ut_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
+)
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d3faa3b5d
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_compaction)
+target_compile_options(ydb-core-tx-datashard-ut_compaction PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_compaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_compaction PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_compaction.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_compaction
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_compaction
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_compaction
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_compaction
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_compaction
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_compaction
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_compaction
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_compaction)
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..55cb9b48d6
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_erase_rows)
+target_compile_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_erase_rows PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_erase_rows PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_erase_rows PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_erase_rows.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_erase_rows
+ PROPERTY
+ SPLIT_FACTOR
+ 15
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_erase_rows
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_erase_rows
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_erase_rows
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_erase_rows
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_erase_rows
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_erase_rows
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_erase_rows)
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..529db4e224
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_followers)
+target_compile_options(ydb-core-tx-datashard-ut_followers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_followers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_followers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_followers PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_followers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_followers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_followers
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_followers
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_followers
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_followers
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_followers
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_followers
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_followers
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_followers)
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f9ba790479
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_init)
+target_compile_options(ydb-core-tx-datashard-ut_init PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_init PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_init PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_init PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_init PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_init.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_init
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_init
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_init
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_init
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_init
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_init
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_init
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_init)
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dff0b51625
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_keys)
+target_compile_options(ydb-core-tx-datashard-ut_keys PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_keys PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_keys PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_keys PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_keys PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_keys.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_keys
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_keys
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_keys
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_keys
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_keys
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_keys
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_keys
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_keys)
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f61c7e6663
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_kqp)
+target_compile_options(ydb-core-tx-datashard-ut_kqp PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_kqp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_kqp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_kqp PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_kqp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_stream_lookup.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_kqp
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_kqp
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_kqp
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_kqp
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_kqp)
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b6f3657f64
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_kqp_errors)
+target_compile_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_kqp_errors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_errors.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_kqp_errors
+ PROPERTY
+ SPLIT_FACTOR
+ 3
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_kqp_errors
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_kqp_errors
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_errors
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_errors
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_errors
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_kqp_errors
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_kqp_errors)
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..289425f21b
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_kqp_scan)
+target_compile_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_kqp_scan PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_kqp_scan
+ PROPERTY
+ SPLIT_FACTOR
+ 3
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_kqp_scan
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_kqp_scan
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_scan
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_scan
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_kqp_scan
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_kqp_scan
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_kqp_scan)
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ced346b42
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_locks)
+target_compile_options(ydb-core-tx-datashard-ut_locks PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_locks PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_locks PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_locks PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_locks PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_locks.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_locks
+ PROPERTY
+ SPLIT_FACTOR
+ 3
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_locks
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_locks
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_locks
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_locks
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_locks
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_locks
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_locks)
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1669c7d646
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_minikql)
+target_compile_options(ydb-core-tx-datashard-ut_minikql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_minikql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_minikql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_minikql PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_minikql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minikql.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_minikql
+ PROPERTY
+ SPLIT_FACTOR
+ 8
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_minikql
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_minikql
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minikql
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minikql
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minikql
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_minikql
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_minikql)
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ab81530e04
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_minstep)
+target_compile_options(ydb-core-tx-datashard-ut_minstep PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_minstep PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_minstep PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_minstep PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_minstep PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minstep.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_minstep
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_minstep
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_minstep
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minstep
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minstep
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_minstep
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_minstep
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_minstep)
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cca65e2ce9
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_order)
+target_compile_options(ydb-core-tx-datashard-ut_order PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_order PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_order PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_order PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_order PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_order.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_order
+ PROPERTY
+ SPLIT_FACTOR
+ 40
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_order
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_order
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_order
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_order
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_order
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_order
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_order)
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e7d3955f53
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_range_avl_tree)
+target_compile_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_range_avl_tree PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_range_avl_tree
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_range_avl_tree
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_range_avl_tree
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_avl_tree
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_avl_tree
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_avl_tree
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_range_avl_tree
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_range_avl_tree)
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..98b2200529
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_range_ops)
+target_compile_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_range_ops PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_range_ops PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_range_ops PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_range_ops.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_range_ops
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_range_ops
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_range_ops
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_ops
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_ops
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_ops
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_range_ops
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_range_ops)
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dcf8838cd4
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_range_treap)
+target_compile_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_range_treap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_range_treap PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_range_treap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_range_treap
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_range_treap
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_range_treap
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_treap
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_treap
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_range_treap
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_range_treap
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_range_treap)
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..222b8d26bb
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_read_iterator)
+target_compile_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_read_iterator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_read_iterator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_read_iterator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_read_iterator
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_read_iterator
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_read_iterator
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_iterator
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_iterator
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_iterator
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_read_iterator
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_read_iterator)
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..099e41a2cc
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_read_table)
+target_compile_options(ydb-core-tx-datashard-ut_read_table PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_read_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_read_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_read_table PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_read_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_table.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_read_table
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_read_table
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_read_table
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_table
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_table
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_read_table
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_read_table
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_read_table)
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac8b74a116
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_reassign)
+target_compile_options(ydb-core-tx-datashard-ut_reassign PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_reassign PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_reassign PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_reassign PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_reassign PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_reassign.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_reassign
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_reassign
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_reassign
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_reassign
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_reassign
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_reassign
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_reassign
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_reassign)
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eebb17dd4e
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_replication)
+target_compile_options(ydb-core-tx-datashard-ut_replication PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_replication PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_replication PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_replication.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_replication
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_replication
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_replication
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_replication
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_replication
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_replication
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_replication
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_replication)
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38f169c237
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_rs)
+target_compile_options(ydb-core-tx-datashard-ut_rs PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_rs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_rs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_rs PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_rs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_rs.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_rs
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_rs
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_rs
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_rs
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_rs
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_rs
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_rs
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_rs)
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5345747192
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_sequence)
+target_compile_options(ydb-core-tx-datashard-ut_sequence PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_sequence PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_sequence PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+ tx-schemeshard-ut_helpers
+)
+target_link_options(ydb-core-tx-datashard-ut_sequence PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_sequence PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_sequence
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_sequence
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_sequence
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_sequence
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_sequence
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_sequence
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_sequence
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_sequence)
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f390347dea
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_snapshot)
+target_compile_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_snapshot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_snapshot PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_snapshot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_snapshot
+ PROPERTY
+ SPLIT_FACTOR
+ 6
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_snapshot
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_snapshot
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_snapshot
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_snapshot
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_snapshot
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_snapshot
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_snapshot)
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bb0d48bfcf
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_stats)
+target_compile_options(ydb-core-tx-datashard-ut_stats PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_stats PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_stats.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_stats
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_stats
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_stats
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_stats
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_stats
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_stats
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_stats
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_stats)
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fe372e84da
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_upload_rows)
+target_compile_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_upload_rows PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_upload_rows PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_upload_rows PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_upload_rows
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_upload_rows
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_upload_rows
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_upload_rows
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_upload_rows
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_upload_rows
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_upload_rows
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_upload_rows)
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..95f34fced9
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-datashard-ut_volatile)
+target_compile_options(ydb-core-tx-datashard-ut_volatile PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_volatile PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_volatile PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-datashard
+ tx-datashard-ut_common
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+ public-lib-yson_value
+ cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_volatile PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-datashard-ut_volatile
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-datashard-ut_volatile
+ TEST_TARGET
+ ydb-core-tx-datashard-ut_volatile
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_volatile
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_volatile
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-datashard-ut_volatile
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-datashard-ut_volatile
+ system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_volatile)
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/long_tx_service/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4dbfcd344
--- /dev/null
+++ b/ydb/core/tx/long_tx_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(public)
+add_subdirectory(ut)
+
+add_library(core-tx-long_tx_service)
+target_compile_options(core-tx-long_tx_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-long_tx_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ ydb-core-base
+ core-tx-columnshard
+ tx-long_tx_service-public
+ ydb-library-services
+)
+target_sources(core-tx-long_tx_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/acquire_snapshot_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/commit_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/lwtrace_probes.cpp
+)
diff --git a/ydb/core/tx/long_tx_service/CMakeLists.txt b/ydb/core/tx/long_tx_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/long_tx_service/CMakeLists.txt
+++ b/ydb/core/tx/long_tx_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/long_tx_service/public/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ac85020c9
--- /dev/null
+++ b/ydb/core/tx/long_tx_service/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(tx-long_tx_service-public)
+target_compile_options(tx-long_tx_service-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-long_tx_service-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cgiparam
+ library-cpp-lwtrace
+ library-cpp-uri
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-util
+ yql-public-issue
+)
+target_sources(tx-long_tx_service-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/lock_handle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types.cpp
+)
diff --git a/ydb/core/tx/long_tx_service/public/CMakeLists.txt b/ydb/core/tx/long_tx_service/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/long_tx_service/public/CMakeLists.txt
+++ b/ydb/core/tx/long_tx_service/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0af02ff723
--- /dev/null
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-long_tx_service-public-ut)
+target_compile_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-long_tx_service-public-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public
+)
+target_link_libraries(ydb-core-tx-long_tx_service-public-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ tx-long_tx_service-public
+ cpp-testing-unittest
+)
+target_link_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-long_tx_service-public-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-long_tx_service-public-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-long_tx_service-public-ut
+ TEST_TARGET
+ ydb-core-tx-long_tx_service-public-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-long_tx_service-public-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-long_tx_service-public-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-long_tx_service-public-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-long_tx_service-public-ut)
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..96a7425ee2
--- /dev/null
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-long_tx_service-ut)
+target_compile_options(ydb-core-tx-long_tx_service-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-long_tx_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service
+)
+target_link_libraries(ydb-core-tx-long_tx_service-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-long_tx_service
+ core-testlib-default
+)
+target_link_options(ydb-core-tx-long_tx_service-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-long_tx_service-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-long_tx_service-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-long_tx_service-ut
+ TEST_TARGET
+ ydb-core-tx-long_tx_service-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-long_tx_service-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-long_tx_service-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-long_tx_service-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-long_tx_service-ut)
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/mediator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/mediator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b05b98dc9f
--- /dev/null
+++ b/ydb/core/tx/mediator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-tx-mediator)
+target_link_libraries(core-tx-mediator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-scheme_types
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-tx
+ tx-coordinator-public
+ core-tx-time_cast
+ ydb-core-util
+)
+target_sources(core-tx-mediator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator__init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator__configure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator__schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/mediator__schema_upgrade.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/tablet_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/mediator/execute_queue.cpp
+)
diff --git a/ydb/core/tx/mediator/CMakeLists.txt b/ydb/core/tx/mediator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/mediator/CMakeLists.txt
+++ b/ydb/core/tx/mediator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/program/CMakeLists.darwin-arm64.txt b/ydb/core/tx/program/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..89a5ca7f53
--- /dev/null
+++ b/ydb/core/tx/program/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-tx-program)
+target_compile_options(core-tx-program PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-program PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-formats-arrow
+ ydb-core-protos
+ ydb-core-tablet_flat
+ minikql-comp_nodes-llvm
+ core-arrow_kernels-registry
+)
+target_sources(core-tx-program PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/program/registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/program/program.cpp
+)
diff --git a/ydb/core/tx/program/CMakeLists.txt b/ydb/core/tx/program/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/program/CMakeLists.txt
+++ b/ydb/core/tx/program/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/replication/controller/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/controller/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1c6c5087ce
--- /dev/null
+++ b/ydb/core/tx/replication/controller/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(tx-replication-controller)
+target_compile_options(tx-replication-controller PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-replication-controller PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-discovery
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-tablet_flat
+ tx-replication-ydb_proxy
+ ydb-core-util
+ ydb-core-ydb_convert
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(tx-replication-controller PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/dst_creator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/dst_remover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/logging.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/nodes_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/private_events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/replication.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/stream_creator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/stream_remover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/sys_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/target_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/target_discoverer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/target_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/target_with_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tenant_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_assign_stream_name.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_create_dst_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_create_replication.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_create_stream_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_discovery_targets_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_drop_dst_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_drop_replication.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_drop_stream_result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/tx_init_schema.cpp
+)
+generate_enum_serilization(tx-replication-controller
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/controller/replication.h
+ INCLUDE_HEADERS
+ ydb/core/tx/replication/controller/replication.h
+)
diff --git a/ydb/core/tx/replication/controller/CMakeLists.txt b/ydb/core/tx/replication/controller/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/replication/controller/CMakeLists.txt
+++ b/ydb/core/tx/replication/controller/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ce070b006e
--- /dev/null
+++ b/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-replication-service)
+target_compile_options(tx-replication-service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-replication-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+)
+target_sources(tx-replication-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+)
diff --git a/ydb/core/tx/replication/service/CMakeLists.txt b/ydb/core/tx/replication/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/replication/service/CMakeLists.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9fbdd52b18
--- /dev/null
+++ b/ydb/core/tx/replication/ydb_proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(tx-replication-ydb_proxy)
+target_compile_options(tx-replication-ydb_proxy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-replication-ydb_proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ cpp-client-ydb_driver
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ client-ydb_types-credentials
+ ydb_types-credentials-login
+)
+target_sources(tx-replication-ydb_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy.cpp
+)
diff --git a/ydb/core/tx/replication/ydb_proxy/CMakeLists.txt b/ydb/core/tx/replication/ydb_proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/replication/ydb_proxy/CMakeLists.txt
+++ b/ydb/core/tx/replication/ydb_proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..816747bdf6
--- /dev/null
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-replication-ydb_proxy-ut)
+target_compile_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy
+)
+target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ tx-replication-ydb_proxy
+ cpp-testing-unittest
+ core-testlib-default
+ cpp-client-ydb_topic
+)
+target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-replication-ydb_proxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-replication-ydb_proxy-ut
+ TEST_TARGET
+ ydb-core-tx-replication-ydb_proxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-replication-ydb_proxy-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-replication-ydb_proxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-replication-ydb_proxy-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-replication-ydb_proxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-replication-ydb_proxy-ut)
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d8a3274fb
--- /dev/null
+++ b/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_cache)
+add_subdirectory(ut_double_indexed)
+add_subdirectory(ut_monitoring)
+add_subdirectory(ut_populator)
+add_subdirectory(ut_replica)
+add_subdirectory(ut_subscriber)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-tx-scheme_board)
+target_link_libraries(core-tx-scheme_board PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-mon
+ ydb-core-protos
+ core-sys_view-common
+ core-tx-scheme_cache
+ ydb-core-util
+ ydb-library-aclib
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-tx-scheme_board PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+)
+generate_enum_serilization(core-tx-scheme_board
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
+ INCLUDE_HEADERS
+ ydb/core/tx/scheme_board/subscriber.h
+)
diff --git a/ydb/core/tx/scheme_board/CMakeLists.txt b/ydb/core/tx/scheme_board/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a2718840e
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_cache)
+target_compile_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-scheme_board-ut_cache PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_cache PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-testing-unittest
+ core-testlib-default
+ core-tx-schemeshard
+ tx-schemeshard-ut_helpers
+)
+target_link_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_cache PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_cache
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_cache
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_cache
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_cache
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_cache
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_cache
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-scheme_board-ut_cache
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_cache)
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..71bb08aa22
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_double_indexed)
+target_include_directories(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_double_indexed PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-testing-unittest
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/double_indexed_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_double_indexed
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_double_indexed
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_double_indexed
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_double_indexed
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_double_indexed
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-scheme_board-ut_double_indexed
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_double_indexed)
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6ddedace36
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_monitoring)
+target_compile_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-actors-core
+ cpp-testing-unittest
+ testlib-basics-default
+)
+target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_monitoring
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_monitoring
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_monitoring
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_monitoring
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_monitoring
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_monitoring
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-scheme_board-ut_monitoring
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_monitoring)
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..57814d52fb
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_populator)
+target_compile_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-scheme_board-ut_populator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_populator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-testing-unittest
+ core-testlib-default
+ core-tx-schemeshard
+ tx-schemeshard-ut_helpers
+ core-tx-tx_allocator
+)
+target_link_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_populator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_populator
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_populator
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_populator
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_populator
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_populator
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_populator
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-scheme_board-ut_populator
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_populator)
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..efb45bac82
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_replica)
+target_compile_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-scheme_board-ut_replica PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-testing-unittest
+ testlib-basics-default
+)
+target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_replica
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_replica
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_replica
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_replica
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_replica
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_replica
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-scheme_board-ut_replica
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_replica)
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff81f49624
--- /dev/null
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-scheme_board-ut_subscriber)
+target_compile_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board
+)
+target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-scheme_board
+ cpp-actors-interconnect
+ cpp-testing-unittest
+ testlib-basics-default
+)
+target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-scheme_board-ut_subscriber
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-scheme_board-ut_subscriber
+ TEST_TARGET
+ ydb-core-tx-scheme_board-ut_subscriber
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_subscriber
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_subscriber
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-scheme_board-ut_subscriber
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-scheme_board-ut_subscriber
+ system_allocator
+)
+vcs_info(ydb-core-tx-scheme_board-ut_subscriber)
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/scheme_cache/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_cache/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d4e1825e47
--- /dev/null
+++ b/ydb/core/tx/scheme_cache/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-tx-scheme_cache)
+target_compile_options(core-tx-scheme_cache PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-scheme_cache PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-library-aclib
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-tx-scheme_cache PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_cache/scheme_cache.cpp
+)
+generate_enum_serilization(core-tx-scheme_cache
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_cache/scheme_cache.h
+ INCLUDE_HEADERS
+ ydb/core/tx/scheme_cache/scheme_cache.h
+)
diff --git a/ydb/core/tx/scheme_cache/CMakeLists.txt b/ydb/core/tx/scheme_cache/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/scheme_cache/CMakeLists.txt
+++ b/ydb/core/tx/scheme_cache/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e69d303b7a
--- /dev/null
+++ b/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,290 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_backup)
+add_subdirectory(ut_base)
+add_subdirectory(ut_base_reboots)
+add_subdirectory(ut_bsvolume)
+add_subdirectory(ut_bsvolume_reboots)
+add_subdirectory(ut_cdc_stream)
+add_subdirectory(ut_cdc_stream_reboots)
+add_subdirectory(ut_column_build)
+add_subdirectory(ut_compaction)
+add_subdirectory(ut_export)
+add_subdirectory(ut_export_reboots_s3)
+add_subdirectory(ut_external_data_source)
+add_subdirectory(ut_external_data_source_reboots)
+add_subdirectory(ut_external_table)
+add_subdirectory(ut_external_table_reboots)
+add_subdirectory(ut_extsubdomain)
+add_subdirectory(ut_extsubdomain_reboots)
+add_subdirectory(ut_filestore_reboots)
+add_subdirectory(ut_helpers)
+add_subdirectory(ut_index)
+add_subdirectory(ut_index_build)
+add_subdirectory(ut_index_build_reboots)
+add_subdirectory(ut_login)
+add_subdirectory(ut_move)
+add_subdirectory(ut_move_reboots)
+add_subdirectory(ut_olap)
+add_subdirectory(ut_olap_reboots)
+add_subdirectory(ut_pq_reboots)
+add_subdirectory(ut_reboots)
+add_subdirectory(ut_replication)
+add_subdirectory(ut_replication_reboots)
+add_subdirectory(ut_restore)
+add_subdirectory(ut_rtmr)
+add_subdirectory(ut_rtmr_reboots)
+add_subdirectory(ut_ru_calculator)
+add_subdirectory(ut_sequence)
+add_subdirectory(ut_sequence_reboots)
+add_subdirectory(ut_serverless)
+add_subdirectory(ut_split_merge)
+add_subdirectory(ut_split_merge_reboots)
+add_subdirectory(ut_stats)
+add_subdirectory(ut_subdomain)
+add_subdirectory(ut_subdomain_reboots)
+add_subdirectory(ut_topic_splitmerge)
+add_subdirectory(ut_ttl)
+add_subdirectory(ut_user_attributes)
+add_subdirectory(ut_user_attributes_reboots)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-tx-schemeshard)
+target_compile_options(core-tx-schemeshard PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-schemeshard PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-protobuf
+ cpp-deprecated-enum_codegen
+ cpp-html-pcdata
+ library-cpp-json
+ ydb-core-actorlib_impl
+ ydb-core-audit
+ ydb-core-base
+ ydb-core-blob_depot
+ core-blockstore-core
+ ydb-core-engine
+ core-engine-minikql
+ ydb-core-external_sources
+ core-filestore-core
+ formats-arrow-compression
+ core-kesus-tablet
+ ydb-core-metering
+ ydb-core-persqueue
+ core-persqueue-config
+ core-persqueue-events
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-statistics
+ core-sys_view-partition_stats
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-tx
+ core-tx-datashard
+ core-tx-scheme_board
+ core-tx-tx_allocator_client
+ ydb-core-util
+ ydb-core-wrappers
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ library-aclib-protos
+ ydb-library-login
+ library-login-protos
+ library-yql-minikql
+ ydb-services-bg_tasks
+)
+target_sources(core-tx-schemeshard PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__conditional_erase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__describe_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__delete_tablet_reply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__find_subdomain_path_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__fix_bad_paths.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__init_root.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__init_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__serverless_storage_billing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__sync_update_tenants.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__login.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__notify.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_blob_depot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_user_attrs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_bsv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_extsubdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_fs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_rtmr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_solomon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_bsv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_external_data_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_external_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_extsubdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_fs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_solomon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_unsafe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_mkdir.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_modify_acl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_move_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_move_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_move_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_move_table_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_rmdir.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_split_merge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_just_reject.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_upgrade_subdomain.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_initiate_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_finalize_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_apply_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cansel_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_cdc_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_cdc_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_allocate_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_deallocate_pq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__pq_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__publish_to_scheme_board.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__state_changed_reply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__table_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__table_stats_histogram.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__upgrade_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__upgrade_access_database.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__make_access_database_no_inheritable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_audit_log_fragment.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_audit_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_billing_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_cdc_stream_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tables_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export__cancel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export__create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export__forget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export__get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export__list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_export.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import__cancel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import__create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import__forget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import__get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import__list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import_flow_proposals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index_tx_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__cancel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__forget.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__get.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_validate_ttl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/user_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_import_scheme_getter.cpp
+)
+generate_enum_serilization(core-tx-schemeshard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+ INCLUDE_HEADERS
+ ydb/core/tx/schemeshard/schemeshard_info_types.h
+)
+generate_enum_serilization(core-tx-schemeshard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+ INCLUDE_HEADERS
+ ydb/core/tx/schemeshard/schemeshard_types.h
+)
+generate_enum_serilization(core-tx-schemeshard
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
+ INCLUDE_HEADERS
+ ydb/core/tx/schemeshard/operation_queue_timer.h
+)
diff --git a/ydb/core/tx/schemeshard/CMakeLists.txt b/ydb/core/tx/schemeshard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eea28d51c3
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_auditsettings)
+target_compile_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_auditsettings PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+)
+target_link_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_auditsettings/ut_auditsettings.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_auditsettings
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_auditsettings
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_auditsettings
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_auditsettings
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_auditsettings
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_auditsettings
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-core-tx-schemeshard-ut_auditsettings
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_auditsettings)
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..10a744410c
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_backup)
+target_compile_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_backup PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_backup PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_backup PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_backup
+ PROPERTY
+ SPLIT_FACTOR
+ 11
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_backup
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_backup
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_backup
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_backup
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_backup
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_backup
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_backup)
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d8188bad6
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_base)
+target_compile_options(ydb-core-tx-schemeshard-ut_base PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_base PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_info_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_allocate_pq.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_base
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_base
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_base
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_base
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_base)
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cbfec446cb
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_base_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_base_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_base_reboots.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_allocate_reboot_pq.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_base_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_base_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_base_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_base_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_base_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_base_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5182c7ddf7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_bsvolume)
+target_compile_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_bsvolume PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume/ut_bsvolume.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_bsvolume
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_bsvolume
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_bsvolume
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_bsvolume
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_bsvolume)
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f789a7200e
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_bsvolume_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_bsvolume_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume_reboots/ut_bsvolume_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_bsvolume_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_bsvolume_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7c52b7fe73
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_cdc_stream)
+target_compile_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_cdc_stream PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ core-testlib-default
+ tx-schemeshard-ut_helpers
+ library-cpp-json
+)
+target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream/ut_cdc_stream.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_cdc_stream
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_cdc_stream)
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b7e2d76dcd
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_cdc_stream_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ tx-schemeshard-ut_helpers
+ core-persqueue-writer
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 80
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_cdc_stream_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_cdc_stream_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..704be59236
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_column_build)
+target_compile_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_column_build PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_column_build PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ ydb-core-metering
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+)
+target_link_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_column_build PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_column_build/ut_column_build.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_column_build
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_column_build
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_column_build
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_column_build
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_column_build
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_column_build
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_column_build
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_column_build)
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac5b00d7bb
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_compaction)
+target_compile_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_compaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ ydb-core-cms
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+)
+target_link_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_compaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_compaction/ut_compaction.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_compaction
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_compaction
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_compaction
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_compaction
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_compaction
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_compaction
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_compaction
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_compaction)
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..acf8dd9196
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_export)
+target_compile_options(ydb-core-tx-schemeshard-ut_export PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_export PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_export PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_export PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_export PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_export
+ PROPERTY
+ SPLIT_FACTOR
+ 11
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_export
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_export
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_export
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_export)
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2eaf6913cb
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_export_reboots_s3)
+target_compile_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_export_reboots_s3 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export_reboots_s3/ut_export_reboots_s3.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ PROPERTY
+ SPLIT_FACTOR
+ 12
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_export_reboots_s3
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_export_reboots_s3
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_export_reboots_s3)
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4883ce1ba7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_external_data_source)
+target_compile_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_external_data_source PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source/ut_external_data_source.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_external_data_source
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_external_data_source
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_external_data_source
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_data_source
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_data_source
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_data_source
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_external_data_source
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_external_data_source)
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5e764990fe
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(schemeshard-ut_external_data_source_reboots)
+target_compile_options(schemeshard-ut_external_data_source_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(schemeshard-ut_external_data_source_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(schemeshard-ut_external_data_source_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(schemeshard-ut_external_data_source_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(schemeshard-ut_external_data_source_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source_reboots/ut_external_data_source_reboots.cpp
+)
+set_property(
+ TARGET
+ schemeshard-ut_external_data_source_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ schemeshard-ut_external_data_source_reboots
+ TEST_TARGET
+ schemeshard-ut_external_data_source_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ schemeshard-ut_external_data_source_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ schemeshard-ut_external_data_source_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ schemeshard-ut_external_data_source_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(schemeshard-ut_external_data_source_reboots
+ system_allocator
+)
+vcs_info(schemeshard-ut_external_data_source_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bee4fca124
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_external_table)
+target_compile_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_external_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_external_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_external_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table/ut_external_table.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_external_table
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_external_table
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_external_table
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_external_table
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_external_table)
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fdae871723
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_external_table_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_external_table_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table_reboots/ut_external_table_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_external_table_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_external_table_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_external_table_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..97f0bd3f25
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_extsubdomain)
+target_compile_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_extsubdomain PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain/ut_extsubdomain.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-core-tx-schemeshard-ut_extsubdomain
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_extsubdomain)
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..faf66f6902
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_extsubdomain_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/ut_extsubdomain_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-core-tx-schemeshard-ut_extsubdomain_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_extsubdomain_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3381a4c27e
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_filestore_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_filestore_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_filestore_reboots/ut_filestore_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_filestore_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_filestore_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_filestore_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38616cf238
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-schemeshard-ut_helpers)
+target_compile_options(tx-schemeshard-ut_helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest
+ ydb-core-base
+ core-blockstore-core
+ core-cms-console
+ ydb-core-engine
+ core-engine-minikql
+ core-filestore-core
+ ydb-core-metering
+ persqueue-ut-common
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-tablet_flat
+ ydb-core-testlib
+ ydb-core-tx
+ core-tx-datashard
+ core-tx-schemeshard
+ core-tx-tx_allocator
+ core-tx-tx_proxy
+ public-lib-scheme_types
+ yql-public-issue
+ cpp-client-ydb_driver
+)
+target_sources(tx-schemeshard-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
+)
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db8d953141
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_index)
+target_compile_options(ydb-core-tx-schemeshard-ut_index PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_index PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_index PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ ydb-core-base
+ ydb-core-scheme
+ core-testlib-default
+ tx-schemeshard-ut_helpers
+ lib-deprecated-kicli
+)
+target_link_options(ydb-core-tx-schemeshard-ut_index PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_index PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_async_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_unique_index.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_index
+ PROPERTY
+ SPLIT_FACTOR
+ 80
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_index
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_index
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_index
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_index)
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dd28b658ee
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_index_build)
+target_compile_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_index_build PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_index_build PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ ydb-core-metering
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+)
+target_link_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_index_build PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build/ut_index_build.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_index_build
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_index_build
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_index_build
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_index_build
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_index_build)
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b796c1745b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_index_build_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_index_build_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build_reboots/ut_index_build_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_index_build_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_index_build_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_index_build_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..148554edd5
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_login)
+target_compile_options(ydb-core-tx-schemeshard-ut_login PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_login PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_login PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ ydb-library-login
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_login PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_login PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_login/ut_login.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_login
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_login
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_login
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_login
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_login
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_login
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_login
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_login)
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ea64b68286
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_move)
+target_compile_options(ydb-core-tx-schemeshard-ut_move PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_move PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_move PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_move PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_move PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move/ut_move.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_move
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_move
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_move
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_move
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_move)
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f2e20f58aa
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_move_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_move_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move_reboots/ut_move_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_move_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_move_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_move_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move_reboots
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_move_reboots
+ PROPERTY
+ TIMEOUT
+ 1800
+)
+target_allocator(ydb-core-tx-schemeshard-ut_move_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_move_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6041abae61
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_olap)
+target_compile_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_olap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_olap PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-formats
+ ydb-core-tx
+ core-tx-columnshard
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_olap PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_olap
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_olap
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_olap
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_olap
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_olap)
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f0d7a0b504
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_olap_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_olap_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ core-tx-columnshard
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap_reboots/ut_olap_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_olap_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_olap_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_olap_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..36486be38b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_pq_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_pq_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_pq_reboots/ut_pq_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_pq_reboots
+ PROPERTY
+ TIMEOUT
+ 1800
+)
+target_allocator(ydb-core-tx-schemeshard-ut_pq_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_pq_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d5433330cf
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_reboots/ut_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e9bc137e7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_replication)
+target_compile_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_replication PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ tx-schemeshard-ut_helpers
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_replication PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication/ut_replication.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_replication
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_replication
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_replication
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_replication
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_replication)
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b40c0b465
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_replication_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_replication_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ tx-schemeshard-ut_helpers
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication_reboots/ut_replication_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_replication_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_replication_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_replication_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4ca5be662
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_restore)
+target_compile_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_restore PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_restore PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ contrib-libs-double-conversion
+ cpp-string_utils-quote
+ kqp-ut-common
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+ ydb-core-ydb_convert
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_restore PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_restore
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_restore
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_restore
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_restore
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_restore
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_restore
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_restore
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_restore)
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1cec7b5f2c
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_rtmr)
+target_compile_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_rtmr PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr/ut_rtmr.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_rtmr
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_rtmr
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_rtmr
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_rtmr
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_rtmr)
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aa816b856d
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_rtmr_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_rtmr_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr_reboots/ut_rtmr_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_rtmr_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_rtmr_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_rtmr_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..228c3cc0ec
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_ru_calculator)
+target_compile_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_ru_calculator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ cpp-testing-unittest
+ core-tx-tx_proxy
+ udf-service-stub
+ yql-sql-pg_dummy
+ ydb-services-ydb
+)
+target_link_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ru_calculator/ut_ru_calculator.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_ru_calculator
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_ru_calculator
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_ru_calculator
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_ru_calculator
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_ru_calculator
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-schemeshard-ut_ru_calculator
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_ru_calculator)
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..98bcb28af9
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_sequence)
+target_compile_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_sequence PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_sequence PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ core-tx-columnshard
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_sequence PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_sequence
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_sequence
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_sequence
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_sequence
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_sequence)
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f2d82f09f
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_sequence_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_sequence_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ core-tx-columnshard
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 2
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_sequence_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_sequence_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_sequence_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d44a065734
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_serverless)
+target_compile_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_serverless PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_serverless PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ ydb-core-yql_testlib
+)
+target_link_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_serverless PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless/ut_serverless.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_serverless
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_serverless
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_serverless
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_serverless
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_serverless
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_serverless
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_serverless
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_serverless)
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d12ed5a3f1
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_split_merge)
+target_compile_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_split_merge PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge/ut_split_merge.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_split_merge
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_split_merge
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_split_merge
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_split_merge
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_split_merge)
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..64d703acd8
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_split_merge_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_split_merge_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge_reboots/ut_split_merge_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_split_merge_reboots
+ PROPERTY
+ TIMEOUT
+ 1800
+)
+target_allocator(ydb-core-tx-schemeshard-ut_split_merge_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_split_merge_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7c10e2e618
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_stats)
+target_compile_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ ydb-core-cms
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ core-wrappers-ut_helpers
+)
+target_link_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_stats/ut_stats.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_stats
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_stats
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_stats
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_stats
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_stats
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_stats
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_stats
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_stats)
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..85f9adc3b9
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_subdomain)
+target_compile_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_subdomain PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain/ut_subdomain.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_subdomain
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_subdomain
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_subdomain
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_subdomain
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_subdomain)
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..114c72c5b6
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_subdomain_reboots)
+target_compile_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_subdomain_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain_reboots/ut_subdomain_reboots.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_subdomain_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_subdomain_reboots
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_subdomain_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..329bbba1cc
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_topic_splitmerge)
+target_compile_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_topic_splitmerge PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_topic_splitmerge/ut_topic_splitmerge.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_topic_splitmerge
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_topic_splitmerge
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_topic_splitmerge)
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e602bf993
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_ttl)
+target_compile_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_ttl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_ttl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ kqp-ut-common
+ tx-schemeshard-ut_helpers
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_ttl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ttl/ut_ttl.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_ttl
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_ttl
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_ttl
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_ttl
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_ttl
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_ttl
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_ttl
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_ttl)
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..70e47bf17c
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,93 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-schemeshard-ut_user_attributes)
+target_compile_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_user_attributes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ cpp-http-io
+ cpp-http-server
+ library-cpp-svnversion
+ cpp-testing-unittest
+ ydb-core-base
+ core-blockstore-core
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ core-testlib-default
+ ydb-core-tx
+ core-tx-datashard
+ tx-schemeshard-ut_helpers
+ ydb-core-util
+ yql-public-issue
+)
+target_link_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes/ut_user_attributes.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-schemeshard-ut_user_attributes
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-schemeshard-ut_user_attributes
+ TEST_TARGET
+ ydb-core-tx-schemeshard-ut_user_attributes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_user_attributes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_user_attributes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-schemeshard-ut_user_attributes
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_user_attributes
+ system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_user_attributes)
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5b711530d9
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(core-tx-schemeshard-ut_user_attributes_reboots)
+target_compile_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(core-tx-schemeshard-ut_user_attributes_reboots PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-schemeshard
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-core-tx
+ tx-schemeshard-ut_helpers
+ udf-service-exception_policy
+)
+target_link_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes_reboots/ut_user_attributes_reboots.cpp
+)
+set_property(
+ TARGET
+ core-tx-schemeshard-ut_user_attributes_reboots
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ core-tx-schemeshard-ut_user_attributes_reboots
+ TEST_TARGET
+ core-tx-schemeshard-ut_user_attributes_reboots
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ core-tx-schemeshard-ut_user_attributes_reboots
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ core-tx-schemeshard-ut_user_attributes_reboots
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ core-tx-schemeshard-ut_user_attributes_reboots
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(core-tx-schemeshard-ut_user_attributes_reboots
+ system_allocator
+)
+vcs_info(core-tx-schemeshard-ut_user_attributes_reboots)
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceproxy/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceproxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6721cb25be
--- /dev/null
+++ b/ydb/core/tx/sequenceproxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(public)
+add_subdirectory(ut)
+
+add_library(core-tx-sequenceproxy)
+target_link_libraries(core-tx-sequenceproxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-tx-scheme_cache
+ tx-sequenceproxy-public
+ tx-sequenceshard-public
+)
+target_sources(core-tx-sequenceproxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_allocate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_resolve.cpp
+)
diff --git a/ydb/core/tx/sequenceproxy/CMakeLists.txt b/ydb/core/tx/sequenceproxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceproxy/CMakeLists.txt
+++ b/ydb/core/tx/sequenceproxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db31ad4641
--- /dev/null
+++ b/ydb/core/tx/sequenceproxy/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-sequenceproxy-public)
+target_compile_options(tx-sequenceproxy-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-sequenceproxy-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-library-aclib
+ api-protos
+ yql-public-issue
+)
+target_sources(tx-sequenceproxy-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/public/events.cpp
+)
diff --git a/ydb/core/tx/sequenceproxy/public/CMakeLists.txt b/ydb/core/tx/sequenceproxy/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceproxy/public/CMakeLists.txt
+++ b/ydb/core/tx/sequenceproxy/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..21d825c288
--- /dev/null
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-sequenceproxy-ut)
+target_compile_options(ydb-core-tx-sequenceproxy-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-sequenceproxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy
+)
+target_link_libraries(ydb-core-tx-sequenceproxy-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-sequenceproxy
+ core-testlib-default
+)
+target_link_options(ydb-core-tx-sequenceproxy-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-sequenceproxy-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-sequenceproxy-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-sequenceproxy-ut
+ TEST_TARGET
+ ydb-core-tx-sequenceproxy-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceproxy-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceproxy-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-sequenceproxy-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-sequenceproxy-ut)
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceshard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fd516913ac
--- /dev/null
+++ b/ydb/core/tx/sequenceshard/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(public)
+add_subdirectory(ut)
+
+add_library(core-tx-sequenceshard)
+target_compile_options(core-tx-sequenceshard PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-sequenceshard PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-erasure
+ ydb-core-protos
+ ydb-core-tablet_flat
+ tx-sequenceshard-public
+)
+target_sources(core-tx-sequenceshard PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/sequenceshard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_allocate_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_create_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_drop_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_freeze_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_init_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_mark_schemeshard_pipe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_redirect_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_restore_sequence.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/tx_update_sequence.cpp
+)
diff --git a/ydb/core/tx/sequenceshard/CMakeLists.txt b/ydb/core/tx/sequenceshard/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceshard/CMakeLists.txt
+++ b/ydb/core/tx/sequenceshard/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceshard/public/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b70b20404b
--- /dev/null
+++ b/ydb/core/tx/sequenceshard/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(tx-sequenceshard-public)
+target_compile_options(tx-sequenceshard-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-sequenceshard-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+)
+target_sources(tx-sequenceshard-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/public/events.cpp
+)
diff --git a/ydb/core/tx/sequenceshard/public/CMakeLists.txt b/ydb/core/tx/sequenceshard/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceshard/public/CMakeLists.txt
+++ b/ydb/core/tx/sequenceshard/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0dd66cbcf6
--- /dev/null
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-sequenceshard-public-ut)
+target_compile_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-sequenceshard-public-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/public
+)
+target_link_libraries(ydb-core-tx-sequenceshard-public-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ tx-sequenceshard-public
+)
+target_link_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+set_property(
+ TARGET
+ ydb-core-tx-sequenceshard-public-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-sequenceshard-public-ut
+ TEST_TARGET
+ ydb-core-tx-sequenceshard-public-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceshard-public-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceshard-public-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-sequenceshard-public-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-sequenceshard-public-ut)
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b5fd8462d8
--- /dev/null
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-sequenceshard-ut)
+target_compile_options(ydb-core-tx-sequenceshard-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-sequenceshard-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard
+)
+target_link_libraries(ydb-core-tx-sequenceshard-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-sequenceshard
+ core-testlib-default
+)
+target_link_options(ydb-core-tx-sequenceshard-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-sequenceshard-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_sequenceshard.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-sequenceshard-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-sequenceshard-ut
+ TEST_TARGET
+ ydb-core-tx-sequenceshard-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceshard-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sequenceshard-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-tx-sequenceshard-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-sequenceshard-ut)
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sharding/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sharding/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..08200fb779
--- /dev/null
+++ b/ydb/core/tx/sharding/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-tx-sharding)
+target_compile_options(core-tx-sharding PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-sharding PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ library-yql-utils
+ yql-public-udf
+ ydb-core-formats
+ ydb-core-protos
+)
+target_sources(core-tx-sharding PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/sharding.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/xx_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/unboxed_reader.cpp
+)
diff --git a/ydb/core/tx/sharding/CMakeLists.txt b/ydb/core/tx/sharding/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sharding/CMakeLists.txt
+++ b/ydb/core/tx/sharding/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..046aac03ce
--- /dev/null
+++ b/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-sharding-ut)
+target_compile_options(ydb-core-tx-sharding-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-sharding-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering
+)
+target_link_libraries(ydb-core-tx-sharding-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tiering
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ core-tx-sharding
+ public-lib-yson_value
+)
+target_link_options(ydb-core-tx-sharding-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-sharding-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/ut/ut_sharding.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-sharding-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-sharding-ut
+ TEST_TARGET
+ ydb-core-tx-sharding-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sharding-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sharding-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-sharding-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-sharding-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-sharding-ut)
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.txt b/ydb/core/tx/sharding/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tiering/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..26adf55855
--- /dev/null
+++ b/ydb/core/tx/tiering/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(rule)
+add_subdirectory(tier)
+add_subdirectory(ut)
+
+add_library(core-tx-tiering)
+target_link_libraries(core-tx-tiering PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-json-writer
+ ydb-core-blobstorage
+ ydb-core-protos
+ core-tx-schemeshard
+ tx-tiering-rule
+ tx-tiering-tier
+ core-tablet_flat-protos
+ ydb-core-wrappers
+ api-protos
+ services-bg_tasks-abstract
+ ydb-services-metadata
+)
+target_sources(core-tx-tiering PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier_cleaner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/path_cleaner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/snapshot.cpp
+)
+
+add_global_library_for(core-tx-tiering.global core-tx-tiering)
+target_link_libraries(core-tx-tiering.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-json-writer
+ ydb-core-blobstorage
+ ydb-core-protos
+ core-tx-schemeshard
+ tx-tiering-rule
+ tx-tiering-tier
+ core-tablet_flat-protos
+ ydb-core-wrappers
+ api-protos
+ services-bg_tasks-abstract
+ ydb-services-metadata
+)
+target_sources(core-tx-tiering.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/cleaner_task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/external_data.cpp
+)
diff --git a/ydb/core/tx/tiering/CMakeLists.txt b/ydb/core/tx/tiering/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tiering/CMakeLists.txt
+++ b/ydb/core/tx/tiering/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9cf06ee67b
--- /dev/null
+++ b/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-tiering-rule)
+target_compile_options(tx-tiering-rule PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-tiering-rule PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-abstract
+ services-metadata-common
+ services-metadata-initializer
+ services-bg_tasks-abstract
+ core-tx-schemeshard
+)
+target_sources(tx-tiering-rule PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/checker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/ss_checker.cpp
+)
+
+add_global_library_for(tx-tiering-rule.global tx-tiering-rule)
+target_compile_options(tx-tiering-rule.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-tiering-rule.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-abstract
+ services-metadata-common
+ services-metadata-initializer
+ services-bg_tasks-abstract
+ core-tx-schemeshard
+)
+target_sources(tx-tiering-rule.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/behaviour.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/rule/ss_fetcher.cpp
+)
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.txt b/ydb/core/tx/tiering/rule/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tiering/tier/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/tier/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d07ec52387
--- /dev/null
+++ b/ydb/core/tx/tiering/tier/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-tiering-tier)
+target_compile_options(tx-tiering-tier PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-tiering-tier PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ services-metadata-secret
+ core-tx-schemeshard
+)
+target_sources(tx-tiering-tier PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier/initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier/checker.cpp
+)
+
+add_global_library_for(tx-tiering-tier.global tx-tiering-tier)
+target_compile_options(tx-tiering-tier.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-tiering-tier.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ services-metadata-secret
+ core-tx-schemeshard
+)
+target_sources(tx-tiering-tier.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/tier/behaviour.cpp
+)
diff --git a/ydb/core/tx/tiering/tier/CMakeLists.txt b/ydb/core/tx/tiering/tier/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tiering/tier/CMakeLists.txt
+++ b/ydb/core/tx/tiering/tier/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62f730fdbb
--- /dev/null
+++ b/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tiering-ut)
+target_compile_options(ydb-core-tx-tiering-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tiering-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering
+)
+target_link_libraries(ydb-core-tx-tiering-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tiering
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-services-metadata
+ ydb-core-tx
+ core-tx-columnshard
+ public-lib-yson_value
+)
+target_link_options(ydb-core-tx-tiering-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tiering-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/ut/ut_tiers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tiering-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tiering-ut
+ TEST_TARGET
+ ydb-core-tx-tiering-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tiering-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tiering-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tiering-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tiering-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-tiering-ut)
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.txt b/ydb/core/tx/tiering/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/time_cast/CMakeLists.darwin-arm64.txt b/ydb/core/tx/time_cast/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..054f1eabe4
--- /dev/null
+++ b/ydb/core/tx/time_cast/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-tx-time_cast)
+target_link_libraries(core-tx-time_cast PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tx
+)
+target_sources(core-tx-time_cast PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast.cpp
+)
diff --git a/ydb/core/tx/time_cast/CMakeLists.txt b/ydb/core/tx/time_cast/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/time_cast/CMakeLists.txt
+++ b/ydb/core/tx/time_cast/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..07e19102ac
--- /dev/null
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-time_cast-ut)
+target_compile_options(ydb-core-tx-time_cast-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-time_cast-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast
+)
+target_link_libraries(ydb-core-tx-time_cast-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-time_cast
+ core-testlib-default
+ ydb-core-tx
+)
+target_link_options(ydb-core-tx-time_cast-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-time_cast-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-time_cast-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-time_cast-ut
+ TEST_TARGET
+ ydb-core-tx-time_cast-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-time_cast-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-time_cast-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-time_cast-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-time_cast-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-time_cast-ut)
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.txt b/ydb/core/tx/time_cast/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tracing/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tracing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..efa4f51b2f
--- /dev/null
+++ b/ydb/core/tx/tracing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(service)
+add_subdirectory(usage)
+
+add_library(core-tx-tracing INTERFACE)
+target_link_libraries(core-tx-tracing INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ tx-tracing-service
+ tx-tracing-usage
+)
diff --git a/ydb/core/tx/tracing/CMakeLists.txt b/ydb/core/tx/tracing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tracing/CMakeLists.txt
+++ b/ydb/core/tx/tracing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tracing/service/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tracing/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8c59647f3
--- /dev/null
+++ b/ydb/core/tx/tracing/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-tracing-service)
+target_link_libraries(tx-tracing-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ tx-tracing-usage
+)
+target_sources(tx-tracing-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tracing/service/global.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tracing/service/actor.cpp
+)
diff --git a/ydb/core/tx/tracing/service/CMakeLists.txt b/ydb/core/tx/tracing/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tracing/service/CMakeLists.txt
+++ b/ydb/core/tx/tracing/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tracing/usage/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tracing/usage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..315c512254
--- /dev/null
+++ b/ydb/core/tx/tracing/usage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tx-tracing-usage)
+target_link_libraries(tx-tracing-usage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ cpp-actors-core
+)
+target_sources(tx-tracing-usage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tracing/usage/tracing.cpp
+)
diff --git a/ydb/core/tx/tracing/usage/CMakeLists.txt b/ydb/core/tx/tracing/usage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tracing/usage/CMakeLists.txt
+++ b/ydb/core/tx/tracing/usage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_allocator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..df9580cfab
--- /dev/null
+++ b/ydb/core/tx/tx_allocator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-tx-tx_allocator)
+target_link_libraries(core-tx-tx_allocator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-engine-minikql
+ ydb-core-protos
+ ydb-core-tablet
+ ydb-core-tablet_flat
+)
+target_sources(core-tx-tx_allocator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator__reserve.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator__scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator.cpp
+)
diff --git a/ydb/core/tx/tx_allocator/CMakeLists.txt b/ydb/core/tx/tx_allocator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_allocator/CMakeLists.txt
+++ b/ydb/core/tx/tx_allocator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c42d2076a3
--- /dev/null
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_allocator-ut)
+target_compile_options(ydb-core-tx-tx_allocator-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_allocator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator
+)
+target_link_libraries(ydb-core-tx-tx_allocator-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_allocator
+ cpp-testing-unittest
+ ydb-core-mind
+ core-testlib-default
+ ydb-core-tx
+)
+target_link_options(ydb-core-tx-tx_allocator-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_allocator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_allocator-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_allocator-ut
+ TEST_TARGET
+ ydb-core-tx-tx_allocator-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_allocator-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_allocator-ut)
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_allocator_client/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bc3c30c594
--- /dev/null
+++ b/ydb/core/tx/tx_allocator_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-tx-tx_allocator_client)
+target_link_libraries(core-tx-tx_allocator_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-protos
+ ydb-core-tablet
+ core-tx-tx_allocator
+)
+target_sources(core-tx-tx_allocator_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/client.cpp
+)
diff --git a/ydb/core/tx/tx_allocator_client/CMakeLists.txt b/ydb/core/tx/tx_allocator_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_allocator_client/CMakeLists.txt
+++ b/ydb/core/tx/tx_allocator_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1a8e04b2e0
--- /dev/null
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_allocator_client-ut)
+target_compile_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_allocator_client-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client
+)
+target_link_libraries(ydb-core-tx-tx_allocator_client-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_allocator_client
+ cpp-testing-unittest
+ ydb-core-mind
+ core-testlib-default
+ ydb-core-tx
+)
+target_link_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_allocator_client-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_allocator_client-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_allocator_client-ut
+ TEST_TARGET
+ ydb-core-tx-tx_allocator_client-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator_client-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator_client-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_allocator_client-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_allocator_client-ut
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_allocator_client-ut)
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..de796fd00a
--- /dev/null
+++ b/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_base_tenant)
+add_subdirectory(ut_encrypted_storage)
+add_subdirectory(ut_ext_tenant)
+add_subdirectory(ut_storage_tenant)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-tx-tx_proxy)
+target_compile_options(core-tx-tx_proxy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-tx-tx_proxy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ util-draft
+ ydb-core-actorlib_impl
+ ydb-core-base
+ core-blobstorage-base
+ ydb-core-docapi
+ ydb-core-engine
+ ydb-core-formats
+ ydb-core-grpc_services
+ ydb-core-io_formats
+ ydb-core-protos
+ ydb-core-scheme
+ core-sys_view-common
+ ydb-core-tablet
+ ydb-core-tablet_flat
+ ydb-core-tx
+ core-tx-balance_coverage
+ core-tx-datashard
+ core-tx-scheme_cache
+ core-tx-schemeshard
+ core-tx-tx_allocator
+ core-tx-tx_allocator_client
+ ydb-library-aclib
+ library-mkql_proto-protos
+ public-lib-base
+)
+target_sources(core-tx-tx_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/mon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/schemereq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/datareq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/read_table_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/resolvereq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/snapshotreq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/commitreq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/upload_rows_common_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/upload_rows.cpp
+)
+generate_enum_serilization(core-tx-tx_proxy
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/read_table_impl.h
+ INCLUDE_HEADERS
+ ydb/core/tx/tx_proxy/read_table_impl.h
+)
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.txt b/ydb/core/tx/tx_proxy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..500a6612d3
--- /dev/null
+++ b/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_proxy-ut_base_tenant)
+target_compile_options(ydb-core-tx-tx_proxy-ut_base_tenant PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_proxy-ut_base_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy
+)
+target_link_libraries(ydb-core-tx-tx_proxy-ut_base_tenant PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_proxy
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-testing-unittest
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-tx_proxy-ut_base_tenant PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_proxy-ut_base_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ TEST_TARGET
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_base_tenant
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_proxy-ut_base_tenant
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_proxy-ut_base_tenant)
diff --git a/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt b/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt
+++ b/ydb/core/tx/tx_proxy/ut_base_tenant/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f96c5dd76d
--- /dev/null
+++ b/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_proxy-ut_encrypted_storage)
+target_compile_options(ydb-core-tx-tx_proxy-ut_encrypted_storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_proxy-ut_encrypted_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy
+)
+target_link_libraries(ydb-core-tx-tx_proxy-ut_encrypted_storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_proxy
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-testing-unittest
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-tx_proxy-ut_encrypted_storage PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_proxy-ut_encrypted_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/encrypted_storage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ TEST_TARGET
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_encrypted_storage
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_proxy-ut_encrypted_storage
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_proxy-ut_encrypted_storage)
diff --git a/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt b/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt
+++ b/ydb/core/tx/tx_proxy/ut_encrypted_storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..86c8ed558a
--- /dev/null
+++ b/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_proxy-ut_ext_tenant)
+target_compile_options(ydb-core-tx-tx_proxy-ut_ext_tenant PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_proxy-ut_ext_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy
+)
+target_link_libraries(ydb-core-tx-tx_proxy-ut_ext_tenant PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_proxy
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-testing-unittest
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-tx_proxy-ut_ext_tenant PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_proxy-ut_ext_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ext_tenant_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ TEST_TARGET
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_ext_tenant
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_proxy-ut_ext_tenant
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_proxy-ut_ext_tenant)
diff --git a/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt b/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt
+++ b/ydb/core/tx/tx_proxy/ut_ext_tenant/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..88772be63f
--- /dev/null
+++ b/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-tx-tx_proxy-ut_storage_tenant)
+target_compile_options(ydb-core-tx-tx_proxy-ut_storage_tenant PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-tx_proxy-ut_storage_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy
+)
+target_link_libraries(ydb-core-tx-tx_proxy-ut_storage_tenant PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-tx-tx_proxy
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-testing-unittest
+ ydb-core-blobstorage
+ core-testlib-default
+ ydb-core-tx
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-tx-tx_proxy-ut_storage_tenant PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-tx-tx_proxy-ut_storage_tenant PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/storage_tenant_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy/proxy_ut_helpers.cpp
+)
+set_property(
+ TARGET
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ TEST_TARGET
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-tx-tx_proxy-ut_storage_tenant
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-tx-tx_proxy-ut_storage_tenant
+ system_allocator
+)
+vcs_info(ydb-core-tx-tx_proxy-ut_storage_tenant)
diff --git a/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt b/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt
+++ b/ydb/core/tx/tx_proxy/ut_storage_tenant/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/util/CMakeLists.darwin-arm64.txt b/ydb/core/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf6ce0a9f9
--- /dev/null
+++ b/ydb/core/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,53 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(btree_benchmark)
+add_subdirectory(ut)
+
+add_library(ydb-core-util)
+target_link_libraries(ydb-core-util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ actors-interconnect-mock
+ cpp-actors-util
+ cpp-containers-stack_vector
+ cpp-html-escape
+ library-cpp-ipmath
+ library-cpp-json
+ library-cpp-lwtrace
+ cpp-monlib-dynamic_counters
+ library-cpp-random_provider
+ ydb-core-base
+ ydb-core-protos
+ cpp-deprecated-atomic
+ ydb-library-yverify_stream
+)
+target_sources(ydb-core-util PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/backoff.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/concurrent_rw_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/console.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/count_min_sketch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/failure_injection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/fast_tls.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/format.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/fragmented_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/hazard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/hyperlog_counter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/intrusive_heap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/page_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/single_thread_ic_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/stlog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/testactorsys.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/text.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/ulid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id.cpp
+)
diff --git a/ydb/core/util/CMakeLists.txt b/ydb/core/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/util/CMakeLists.txt
+++ b/ydb/core/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/util/btree_benchmark/CMakeLists.darwin-arm64.txt b/ydb/core/util/btree_benchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..050a44fa4a
--- /dev/null
+++ b/ydb/core/util/btree_benchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(btree_benchmark)
+target_link_libraries(btree_benchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ testing-benchmark-main
+ cpp-threading-skip_list
+ ydb-core-util
+)
+target_link_options(btree_benchmark PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(btree_benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/btree_benchmark/main.cpp
+)
+target_allocator(btree_benchmark
+ library-cpp-lfalloc
+)
+vcs_info(btree_benchmark)
diff --git a/ydb/core/util/btree_benchmark/CMakeLists.txt b/ydb/core/util/btree_benchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/util/btree_benchmark/CMakeLists.txt
+++ b/ydb/core/util/btree_benchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/util/ut/CMakeLists.darwin-arm64.txt b/ydb/core/util/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7cd3e7dc6
--- /dev/null
+++ b/ydb/core/util/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,107 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-util-ut)
+target_include_directories(ydb-core-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/util
+)
+target_link_libraries(ydb-core-util-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-util
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_link_options(ydb-core-util-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/bits_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/btree_cow_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/btree_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/cache_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/circular_queue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/concurrent_rw_hash_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/count_min_sketch_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/event_priority_queue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/fast_tls_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/fragmented_buffer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/hazard_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/hyperlog_counter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/interval_set_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/intrusive_fixed_hash_set_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/intrusive_heap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/intrusive_stack_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/lf_stack_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/log_priority_mute_checker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/lz4_data_generator_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/operation_queue_priority_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/operation_queue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/page_map_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/queue_inplace_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/queue_oneone_inplace_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/simple_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/stlog_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/token_bucket_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/ulid_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/util/wildcard_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-util-ut
+ TEST_TARGET
+ ydb-core-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-util-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-util-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-util-ut
+ system_allocator
+)
+vcs_info(ydb-core-util-ut)
diff --git a/ydb/core/util/ut/CMakeLists.txt b/ydb/core/util/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/util/ut/CMakeLists.txt
+++ b/ydb/core/util/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/viewer/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e03c2fe527
--- /dev/null
+++ b/ydb/core/viewer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,325 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(json)
+add_subdirectory(protos)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-core-viewer)
+target_compile_options(ydb-core-viewer PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-viewer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-actors-core
+ cpp-actors-helpers
+ library-cpp-archive
+ cpp-mime-types
+ cpp-protobuf-json
+ ydb-core-base
+ core-blobstorage-base
+ blobstorage-vdisk-common
+ core-client-server
+ ydb-core-grpc_services
+ core-grpc_services-local_rpc
+ ydb-core-health_check
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ ydb-core-scheme
+ core-tx-schemeshard
+ core-tx-tx_proxy
+ ydb-core-util
+ core-viewer-json
+ core-viewer-protos
+ library-persqueue-topic_parser
+ api-protos
+ lib-deprecated-kicli
+ public-lib-json_value
+ api-grpc
+ cpp-client-ydb_types
+)
+target_sources(ydb-core-viewer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.cpp
+)
+
+add_global_library_for(ydb-core-viewer.global ydb-core-viewer)
+target_compile_options(ydb-core-viewer.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-viewer.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-actors-core
+ cpp-actors-helpers
+ library-cpp-archive
+ cpp-mime-types
+ cpp-protobuf-json
+ ydb-core-base
+ core-blobstorage-base
+ blobstorage-vdisk-common
+ core-client-server
+ ydb-core-grpc_services
+ core-grpc_services-local_rpc
+ ydb-core-health_check
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ ydb-core-scheme
+ core-tx-schemeshard
+ core-tx-tx_proxy
+ ydb-core-util
+ core-viewer-json
+ core-viewer-protos
+ library-persqueue-topic_parser
+ api-protos
+ lib-deprecated-kicli
+ public-lib-json_value
+ api-grpc
+ cpp-client-ydb_types
+)
+target_sources(ydb-core-viewer.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/viewer/1cdc663173c623f6a008fb99b02498f1.cpp
+)
+resources(ydb-core-viewer.global
+ ${CMAKE_BINARY_DIR}/ydb/core/viewer/1cdc663173c623f6a008fb99b02498f1.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/index.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/viewer.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/jstree.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/style.min.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/throbber.gif
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/32px.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/40px.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/cpu
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/cpu_view.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/disk_cell.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/disk_map.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/index.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/man-green.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/man-orange.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/man-red.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/man-yellow.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/net_view.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/network
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/node_group.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/node.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/node_map.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/nodes
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/node_view.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/overview
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/overview.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/pdisk.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/pool_block.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/pool_map.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/runner.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/stats.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/storage
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/storage_group.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/storage.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/storage_view.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/tablet_cell.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/tablet_map.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/tenant.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/tenants
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/tenant_view.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/throbber.gif
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/util.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/vdisk.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/viewer.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/v2/viewer.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/css/print.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/css/reset.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/css/screen.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/css/style.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/css/typography.css
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/fonts/DroidSans-Bold.ttf
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/fonts/DroidSans.ttf
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/collapse.gif
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/expand.gif
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/explorer_icons.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/favicon-16x16.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/favicon-32x32.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/favicon.ico
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/logo_small.png
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/images/throbber.gif
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/index.html
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/ca.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/en.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/es.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/fr.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/geo.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/it.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/ja.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/ko-kr.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/pl.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/pt.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/ru.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/tr.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/translator.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lang/zh-cn.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/backbone-min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/es5-shim.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/handlebars-4.0.5.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/highlight.9.1.0.pack.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/highlight.9.1.0.pack_extended.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/jquery-1.8.0.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/jquery.ba-bbq.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/jquery.slideto.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/jquery.wiggle.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/js-yaml.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/jsoneditor.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/lodash.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/marked.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/object-assign-pollyfill.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/sanitize-html.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/lib/swagger-oauth.js
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/content/api/swagger-ui.min.js
+ KEYS
+ viewer/index.html
+ viewer/viewer.js
+ viewer/jstree.min.js
+ viewer/style.min.css
+ viewer/throbber.gif
+ viewer/32px.png
+ viewer/40px.png
+ viewer/v2/cpu
+ viewer/v2/cpu_view.js
+ viewer/v2/disk_cell.js
+ viewer/v2/disk_map.js
+ viewer/v2/index.html
+ viewer/v2/man-green.png
+ viewer/v2/man-orange.png
+ viewer/v2/man-red.png
+ viewer/v2/man-yellow.png
+ viewer/v2/net_view.js
+ viewer/v2/network
+ viewer/v2/node_group.js
+ viewer/v2/node.js
+ viewer/v2/node_map.js
+ viewer/v2/nodes
+ viewer/v2/node_view.js
+ viewer/v2/overview
+ viewer/v2/overview.js
+ viewer/v2/pdisk.js
+ viewer/v2/pool_block.js
+ viewer/v2/pool_map.js
+ viewer/v2/runner.html
+ viewer/v2/stats.js
+ viewer/v2/storage
+ viewer/v2/storage_group.js
+ viewer/v2/storage.js
+ viewer/v2/storage_view.js
+ viewer/v2/tablet_cell.js
+ viewer/v2/tablet_map.js
+ viewer/v2/tenant.js
+ viewer/v2/tenants
+ viewer/v2/tenant_view.js
+ viewer/v2/throbber.gif
+ viewer/v2/util.js
+ viewer/v2/vdisk.js
+ viewer/v2/viewer.css
+ viewer/v2/viewer.js
+ viewer/api/css/print.css
+ viewer/api/css/reset.css
+ viewer/api/css/screen.css
+ viewer/api/css/style.css
+ viewer/api/css/typography.css
+ viewer/api/fonts/DroidSans-Bold.ttf
+ viewer/api/fonts/DroidSans.ttf
+ viewer/api/images/collapse.gif
+ viewer/api/images/expand.gif
+ viewer/api/images/explorer_icons.png
+ viewer/api/images/favicon-16x16.png
+ viewer/api/images/favicon-32x32.png
+ viewer/api/images/favicon.ico
+ viewer/api/images/logo_small.png
+ viewer/api/images/throbber.gif
+ viewer/api/index.html
+ viewer/api/lang/ca.js
+ viewer/api/lang/en.js
+ viewer/api/lang/es.js
+ viewer/api/lang/fr.js
+ viewer/api/lang/geo.js
+ viewer/api/lang/it.js
+ viewer/api/lang/ja.js
+ viewer/api/lang/ko-kr.js
+ viewer/api/lang/pl.js
+ viewer/api/lang/pt.js
+ viewer/api/lang/ru.js
+ viewer/api/lang/tr.js
+ viewer/api/lang/translator.js
+ viewer/api/lang/zh-cn.js
+ viewer/api/lib/backbone-min.js
+ viewer/api/lib/es5-shim.js
+ viewer/api/lib/handlebars-4.0.5.js
+ viewer/api/lib/highlight.9.1.0.pack.js
+ viewer/api/lib/highlight.9.1.0.pack_extended.js
+ viewer/api/lib/jquery-1.8.0.min.js
+ viewer/api/lib/jquery.ba-bbq.min.js
+ viewer/api/lib/jquery.slideto.min.js
+ viewer/api/lib/jquery.wiggle.min.js
+ viewer/api/lib/js-yaml.min.js
+ viewer/api/lib/jsoneditor.min.js
+ viewer/api/lib/lodash.min.js
+ viewer/api/lib/marked.js
+ viewer/api/lib/object-assign-pollyfill.js
+ viewer/api/lib/sanitize-html.min.js
+ viewer/api/lib/swagger-oauth.js
+ viewer/api/swagger-ui.min.js
+)
+option(YDB_EMBEDDED_UI_DEV_SNAPSHOT "Use latest dev version of embedded UI git repo" Off)
+include(${CMAKE_CURRENT_SOURCE_DIR}/recursive_resources.cmake)
+
+if (YDB_EMBEDDED_UI_DEV_SNAPSHOT)
+ find_program(NPM_PATH NAMES npm REQUIRED)
+
+ include(ExternalProject)
+ ExternalProject_Add(ydb-embedded-ui-git
+ GIT_REPOSITORY https://github.com/ydb-platform/ydb-embedded-ui.git
+ GIT_TAG main
+ USES_TERMINAL_DOWNLOAD On
+ USES_TERMINAL_UPDATE On
+ USES_TERMINAL_BUILD On
+ CONFIGURE_COMMAND ""
+ TEST_COMMAND ""
+ INSTALL_COMMAND ""
+ BUILD_IN_SOURCE On
+ BUILD_COMMAND ${NPM_PATH} ci
+ COMMAND ${NPM_PATH} run build:embedded
+ )
+ ExternalProject_Get_property(ydb-embedded-ui-git SOURCE_DIR)
+ add_gen_resources(ydb-embedded-ui-git ${CMAKE_BINARY_DIR}/ydb/core/viewer/ydb_embedded_ui_monitoring.cpp
+ IN_DIR ${SOURCE_DIR}/build
+ PREFIX monitoring
+ )
+
+else()
+ add_dir_resources(${CMAKE_BINARY_DIR}/ydb/core/viewer/ydb_embedded_ui_monitoring.cpp
+ IN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/monitoring
+ PREFIX monitoring
+ )
+endif()
+target_sources(ydb-core-viewer.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/core/viewer/ydb_embedded_ui_monitoring.cpp
+)
+
diff --git a/ydb/core/viewer/CMakeLists.txt b/ydb/core/viewer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/viewer/CMakeLists.txt
+++ b/ydb/core/viewer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6c8ae852b4
--- /dev/null
+++ b/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-viewer-json)
+target_link_libraries(core-viewer-json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-string_utils-base64
+ core-viewer-protos
+)
+target_sources(core-viewer-json PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
+)
diff --git a/ydb/core/viewer/json/CMakeLists.txt b/ydb/core/viewer/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/viewer/json/CMakeLists.txt
+++ b/ydb/core/viewer/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9928b65a1d
--- /dev/null
+++ b/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-viewer-protos)
+target_link_libraries(core-viewer-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(core-viewer-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto
+)
+target_proto_addincls(core-viewer-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-viewer-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/viewer/protos/CMakeLists.txt b/ydb/core/viewer/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/viewer/protos/CMakeLists.txt
+++ b/ydb/core/viewer/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d90a2c344
--- /dev/null
+++ b/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-viewer-ut)
+target_compile_options(ydb-core-viewer-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-viewer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer
+)
+target_link_libraries(ydb-core-viewer-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-viewer
+ core-testlib-default
+)
+target_link_options(ydb-core-viewer-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-viewer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-viewer-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-viewer-ut
+ TEST_TARGET
+ ydb-core-viewer-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-viewer-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-viewer-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-viewer-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-core-viewer-ut
+ system_allocator
+)
+vcs_info(ydb-core-viewer-ut)
diff --git a/ydb/core/viewer/ut/CMakeLists.txt b/ydb/core/viewer/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/viewer/ut/CMakeLists.txt
+++ b/ydb/core/viewer/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/wrappers/CMakeLists.darwin-arm64.txt b/ydb/core/wrappers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6724661ab
--- /dev/null
+++ b/ydb/core/wrappers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(ut)
+add_subdirectory(ut_helpers)
+
+add_library(ydb-core-wrappers)
+target_link_libraries(ydb-core-wrappers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
+ contrib-libs-curl
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ core-wrappers-ut_helpers
+ core-wrappers-events
+)
+target_sources(ydb-core-wrappers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_storage_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/fake_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/fake_storage_config.cpp
+)
diff --git a/ydb/core/wrappers/CMakeLists.txt b/ydb/core/wrappers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/wrappers/CMakeLists.txt
+++ b/ydb/core/wrappers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/wrappers/events/CMakeLists.darwin-arm64.txt b/ydb/core/wrappers/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..465a8f9ae4
--- /dev/null
+++ b/ydb/core/wrappers/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-wrappers-events)
+target_link_libraries(core-wrappers-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
+ contrib-libs-curl
+ cpp-actors-core
+ ydb-core-base
+ ydb-core-protos
+ core-wrappers-ut_helpers
+)
+target_sources(core-wrappers-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/list_objects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/object_exists.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/delete_objects.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/get_object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/s3_out.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/events/abstract.cpp
+)
diff --git a/ydb/core/wrappers/events/CMakeLists.txt b/ydb/core/wrappers/events/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/core/wrappers/events/CMakeLists.txt
+++ b/ydb/core/wrappers/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt b/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e911344260
--- /dev/null
+++ b/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-wrappers-ut)
+target_compile_options(ydb-core-wrappers-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-wrappers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers
+)
+target_link_libraries(ydb-core-wrappers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-wrappers
+ cpp-actors-core
+ cpp-digest-md5
+ cpp-testing-unittest
+ ydb-core-protos
+ testlib-basics-default
+ core-wrappers-ut_helpers
+)
+target_link_options(ydb-core-wrappers-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-wrappers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-wrappers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 20
+)
+add_yunittest(
+ NAME
+ ydb-core-wrappers-ut
+ TEST_TARGET
+ ydb-core-wrappers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-wrappers-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-wrappers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-wrappers-ut
+ system_allocator
+)
+vcs_info(ydb-core-wrappers-ut)
diff --git a/ydb/core/wrappers/ut/CMakeLists.txt b/ydb/core/wrappers/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/wrappers/ut/CMakeLists.txt
+++ b/ydb/core/wrappers/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/wrappers/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/core/wrappers/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..85d6760e33
--- /dev/null
+++ b/ydb/core/wrappers/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-wrappers-ut_helpers)
+target_link_libraries(core-wrappers-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-md5
+ cpp-http-server
+ cpp-xml-document
+ library-cpp-cgiparam
+)
+target_sources(core-wrappers-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/ut_helpers/s3_mock.cpp
+)
diff --git a/ydb/core/wrappers/ut_helpers/CMakeLists.txt b/ydb/core/wrappers/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/wrappers/ut_helpers/CMakeLists.txt
+++ b/ydb/core/wrappers/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ydb_convert/CMakeLists.darwin-arm64.txt b/ydb/core/ydb_convert/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be87db3480
--- /dev/null
+++ b/ydb/core/ydb_convert/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-core-ydb_convert)
+target_compile_options(ydb-core-ydb_convert PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-ydb_convert PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ ydb-core-engine
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-core-util
+ ydb-library-binary_json
+ ydb-library-dynumber
+ library-mkql_proto-protos
+ yql-minikql-dom
+ yql-public-udf
+ api-protos
+)
+target_sources(ydb-core-ydb_convert PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/column_families.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/table_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/table_description.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/table_profiles.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/ydb_convert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/tx_proxy_status.cpp
+)
diff --git a/ydb/core/ydb_convert/CMakeLists.txt b/ydb/core/ydb_convert/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ydb_convert/CMakeLists.txt
+++ b/ydb/core/ydb_convert/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4bd6b7a02
--- /dev/null
+++ b/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ydb_convert-ut)
+target_include_directories(ydb-core-ydb_convert-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert
+)
+target_link_libraries(ydb-core-ydb_convert-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-ydb_convert
+ cpp-testing-unittest
+ core-testlib-default
+)
+target_link_options(ydb-core-ydb_convert-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ydb_convert-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/table_description_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/ydb_convert_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ydb_convert-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-core-ydb_convert-ut
+ TEST_TARGET
+ ydb-core-ydb_convert-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ydb_convert-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ydb_convert-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-ydb_convert-ut
+ system_allocator
+)
+vcs_info(ydb-core-ydb_convert-ut)
diff --git a/ydb/core/ydb_convert/ut/CMakeLists.txt b/ydb/core/ydb_convert/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ydb_convert/ut/CMakeLists.txt
+++ b/ydb/core/ydb_convert/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/actor/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f3a38ed190
--- /dev/null
+++ b/ydb/core/ymq/actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,152 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+add_subdirectory(yc_search_ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-ymq-actor)
+target_compile_options(core-ymq-actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-ymq-actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ contrib-libs-protobuf
+ cpp-actors-core
+ cpp-containers-intrusive_rb_tree
+ cpp-digest-md5
+ cpp-grpc-client
+ library-cpp-logger
+ cpp-lwtrace-mon
+ cpp-monlib-dynamic_counters
+ monlib-service-pages
+ library-cpp-scheme
+ ydb-core-base
+ core-client-minikql_compile
+ ydb-core-engine
+ core-kesus-tablet
+ core-mind-address_classification
+ ydb-core-mon
+ ydb-core-node_whiteboard
+ ydb-core-protos
+ core-tx-scheme_cache
+ core-tx-schemeshard
+ core-tx-tx_proxy
+ ydb-core-util
+ core-ymq-base
+ core-ymq-proto
+ ymq-queues-common
+ ymq-queues-fifo
+ ymq-queues-std
+ ydb-library-aclib
+ library-http_proxy-authorization
+ library-http_proxy-error
+ library-mkql_proto-protos
+ public-lib-scheme_types
+ public-lib-value
+ client-ydb_types-credentials
+ library-yql-minikql
+ lib-deprecated-client
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-ymq-actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/auth_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/auth_mocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/auth_multi_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/attributes_md5.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/cfg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/change_visibility.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/count_queues.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/cleanup_queue_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/create_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/create_user.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/delete_message.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/delete_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/delete_user.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/error.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/fifo_cleanup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/garbage_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/get_queue_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/get_queue_url.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/index_events_processor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/infly.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/list_dead_letter_source_queues.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/list_permissions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/list_queues.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/list_users.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/local_rate_limiter_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/message_delay_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/metering.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/modify_permissions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/node_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/proxy_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/purge.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/purge_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/queue_leader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/receive_message.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/retention.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/sha256.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/send_message.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/set_queue_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/proxy_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/queues_list_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/queue_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/user_settings_names.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/user_settings_reader.cpp
+)
+generate_enum_serilization(core-ymq-actor
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/events.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/actor/events.h
+)
+generate_enum_serilization(core-ymq-actor
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/metering.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/actor/metering.h
+)
+generate_enum_serilization(core-ymq-actor
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/fifo_cleanup.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/actor/fifo_cleanup.h
+)
+generate_enum_serilization(core-ymq-actor
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/queue_schema.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/actor/queue_schema.h
+)
diff --git a/ydb/core/ymq/actor/CMakeLists.txt b/ydb/core/ymq/actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/actor/CMakeLists.txt
+++ b/ydb/core/ymq/actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aeb10ec91f
--- /dev/null
+++ b/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ymq-actor-ut)
+target_compile_options(ydb-core-ymq-actor-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-ymq-actor-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ contrib-libs-yaml-cpp
+ core-mind-address_classification
+ core-testlib-default
+ core-ymq-actor
+ core-ymq-base
+ core-ymq-http
+)
+target_link_options(ydb-core-ymq-actor-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ymq-actor-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/attributes_md5_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/infly_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/message_delay_stats_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/sha256_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/metering_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ymq-actor-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-ymq-actor-ut
+ TEST_TARGET
+ ydb-core-ymq-actor-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-actor-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-actor-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-ymq-actor-ut
+ system_allocator
+)
+vcs_info(ydb-core-ymq-actor-ut)
diff --git a/ydb/core/ymq/actor/ut/CMakeLists.txt b/ydb/core/ymq/actor/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/actor/ut/CMakeLists.txt
+++ b/ydb/core/ymq/actor/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..03abbfb802
--- /dev/null
+++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ymq-actor-yc_search_ut)
+target_compile_options(ydb-core-ymq-actor-yc_search_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-ymq-actor-yc_search_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-testlib-default
+ core-ymq-actor
+)
+target_link_options(ydb-core-ymq-actor-yc_search_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ymq-actor-yc_search_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/test_events_writer.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ymq-actor-yc_search_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-ymq-actor-yc_search_ut
+ TEST_TARGET
+ ydb-core-ymq-actor-yc_search_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-actor-yc_search_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-actor-yc_search_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-actor-yc_search_ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-core-ymq-actor-yc_search_ut
+ system_allocator
+)
+vcs_info(ydb-core-ymq-actor-yc_search_ut)
diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt
+++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3ddb1bd725
--- /dev/null
+++ b/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-ymq-base)
+target_link_libraries(core-ymq-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-openssl
+ library-cpp-cgiparam
+ library-cpp-ipmath
+ library-cpp-lwtrace
+ cpp-monlib-dynamic_counters
+ library-cpp-scheme
+ cpp-string_utils-base64
+ library-cpp-unified_agent_client
+ ydb-core-base
+ ydb-core-protos
+ core-ymq-proto
+ core-kqp-common
+ ydb-library-aclib
+ library-http_proxy-authorization
+ library-http_proxy-error
+ ydb-library-protobuf_printer
+ public-lib-scheme_types
+)
+target_sources(core-ymq-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/dlq_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/probes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/queue_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/queue_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/run_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/secure_protobuf_printer.cpp
+)
+generate_enum_serilization(core-ymq-base
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/query_id.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/base/query_id.h
+)
+generate_enum_serilization(core-ymq-base
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/cloud_enums.h
+ INCLUDE_HEADERS
+ ydb/core/ymq/base/cloud_enums.h
+)
diff --git a/ydb/core/ymq/base/CMakeLists.txt b/ydb/core/ymq/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/base/CMakeLists.txt
+++ b/ydb/core/ymq/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3c52b2d220
--- /dev/null
+++ b/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ymq-base-ut)
+target_link_libraries(ydb-core-ymq-base-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-core-base
+ core-ymq-base
+)
+target_link_options(ydb-core-ymq-base-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ymq-base-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/action_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/counters_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/dlq_helpers_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/helpers_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/secure_protobuf_printer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/queue_attributes_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ymq-base-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-ymq-base-ut
+ TEST_TARGET
+ ydb-core-ymq-base-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-base-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-base-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-ymq-base-ut
+ system_allocator
+)
+vcs_info(ydb-core-ymq-base-ut)
diff --git a/ydb/core/ymq/base/ut/CMakeLists.txt b/ydb/core/ymq/base/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/base/ut/CMakeLists.txt
+++ b/ydb/core/ymq/base/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f7bb00de92
--- /dev/null
+++ b/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(sqs)
+target_link_libraries(sqs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ ymq-client-cpp
+ core-ymq-proto
+)
+target_link_options(sqs PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(sqs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/bin/main.cpp
+)
+target_allocator(sqs
+ system_allocator
+)
+vcs_info(sqs)
diff --git a/ydb/core/ymq/client/bin/CMakeLists.txt b/ydb/core/ymq/client/bin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/client/bin/CMakeLists.txt
+++ b/ydb/core/ymq/client/bin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/client/cpp/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/client/cpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ddaaf42002
--- /dev/null
+++ b/ydb/core/ymq/client/cpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ymq-client-cpp)
+target_link_libraries(ymq-client-cpp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ lib-deprecated-client
+)
+target_sources(ymq-client-cpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/cpp/client.cpp
+)
diff --git a/ydb/core/ymq/client/cpp/CMakeLists.txt b/ydb/core/ymq/client/cpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/client/cpp/CMakeLists.txt
+++ b/ydb/core/ymq/client/cpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/http/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7b63f5201e
--- /dev/null
+++ b/ydb/core/ymq/http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-ymq-http)
+target_link_libraries(core-ymq-http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-libxml
+ cpp-actors-core
+ library-cpp-cgiparam
+ cpp-http-misc
+ cpp-http-server
+ cpp-protobuf-json
+ cpp-string_utils-base64
+ cpp-string_utils-quote
+ cpp-string_utils-url
+ ydb-core-protos
+ core-ymq-actor
+ core-ymq-base
+ library-http_proxy-authorization
+ library-http_proxy-error
+)
+target_sources(core-ymq-http PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/http.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/xml.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/xml_builder.cpp
+)
+target_ragel_lexers(core-ymq-http
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/parser.rl6
+ -CG2
+)
diff --git a/ydb/core/ymq/http/CMakeLists.txt b/ydb/core/ymq/http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/http/CMakeLists.txt
+++ b/ydb/core/ymq/http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ab62098a5
--- /dev/null
+++ b/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ymq-http-ut)
+target_link_libraries(ydb-core-ymq-http-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-ymq-http
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-ymq-http-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ymq-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/ut/xml_builder_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ymq-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-ymq-http-ut
+ TEST_TARGET
+ ydb-core-ymq-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-ymq-http-ut
+ system_allocator
+)
+vcs_info(ydb-core-ymq-http-ut)
diff --git a/ydb/core/ymq/http/ut/CMakeLists.txt b/ydb/core/ymq/http/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/http/ut/CMakeLists.txt
+++ b/ydb/core/ymq/http/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..187b3709eb
--- /dev/null
+++ b/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-ymq-proto)
+target_link_libraries(core-ymq-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(core-ymq-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto
+)
+target_proto_addincls(core-ymq-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-ymq-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/ymq/proto/CMakeLists.txt b/ydb/core/ymq/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/proto/CMakeLists.txt
+++ b/ydb/core/ymq/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/queues/common/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/queues/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f2873013c
--- /dev/null
+++ b/ydb/core/ymq/queues/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ymq-queues-common)
+target_link_libraries(ymq-queues-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-ymq-base
+)
+target_sources(ymq-queues-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/common/queries.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/common/db_queries_maker.cpp
+)
diff --git a/ydb/core/ymq/queues/common/CMakeLists.txt b/ydb/core/ymq/queues/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/queues/common/CMakeLists.txt
+++ b/ydb/core/ymq/queues/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/queues/fifo/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/queues/fifo/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d2c77f1882
--- /dev/null
+++ b/ydb/core/ymq/queues/fifo/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ymq-queues-fifo)
+target_link_libraries(ymq-queues-fifo PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-ymq-base
+)
+target_sources(ymq-queues-fifo PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/fifo/queries.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/fifo/schema.cpp
+)
diff --git a/ydb/core/ymq/queues/fifo/CMakeLists.txt b/ydb/core/ymq/queues/fifo/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/queues/fifo/CMakeLists.txt
+++ b/ydb/core/ymq/queues/fifo/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/queues/std/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/queues/std/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4254e9dfc2
--- /dev/null
+++ b/ydb/core/ymq/queues/std/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ymq-queues-std)
+target_link_libraries(ymq-queues-std PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-ymq-base
+)
+target_sources(ymq-queues-std PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/std/queries.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/queues/std/schema.cpp
+)
diff --git a/ydb/core/ymq/queues/std/CMakeLists.txt b/ydb/core/ymq/queues/std/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/queues/std/CMakeLists.txt
+++ b/ydb/core/ymq/queues/std/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dd630e396c
--- /dev/null
+++ b/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-core-ymq-ut)
+target_link_libraries(ydb-core-ymq-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-ymq-base
+ core-ymq-http
+ library-http_proxy-error
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(ydb-core-ymq-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-core-ymq-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/queue_id_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/params_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-core-ymq-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-core-ymq-ut
+ TEST_TARGET
+ ydb-core-ymq-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-core-ymq-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-core-ymq-ut
+ system_allocator
+)
+vcs_info(ydb-core-ymq-ut)
diff --git a/ydb/core/ymq/ut/CMakeLists.txt b/ydb/core/ymq/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/ymq/ut/CMakeLists.txt
+++ b/ydb/core/ymq/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt b/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..71322b69cc
--- /dev/null
+++ b/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-core-yql_testlib)
+target_compile_options(ydb-core-yql_testlib PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-core-yql_testlib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-regex-pcre
+ cpp-testing-unittest
+ ydb-core-base
+ ydb-core-client
+ core-client-minikql_compile
+ core-client-server
+ ydb-core-engine
+ ydb-core-keyvalue
+ ydb-core-mind
+ ydb-core-protos
+ core-testlib-default
+ core-testlib-actors
+ core-testlib-basics
+ yql-core-facade
+ yql-public-udf
+ public-lib-base
+ library-yql-core
+ providers-common-provider
+ providers-common-udf_resolve
+)
+target_sources(ydb-core-yql_testlib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp
+)
diff --git a/ydb/core/yql_testlib/CMakeLists.txt b/ydb/core/yql_testlib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/core/yql_testlib/CMakeLists.txt
+++ b/ydb/core/yql_testlib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/accessor/CMakeLists.darwin-arm64.txt b/ydb/library/accessor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c2a284076f
--- /dev/null
+++ b/ydb/library/accessor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-accessor)
+target_link_libraries(ydb-library-accessor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-accessor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp
+)
diff --git a/ydb/library/accessor/CMakeLists.txt b/ydb/library/accessor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/accessor/CMakeLists.txt
+++ b/ydb/library/accessor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/aclib/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..336127fc26
--- /dev/null
+++ b/ydb/library/aclib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-library-aclib)
+target_link_libraries(ydb-library-aclib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-protobuf-util
+ library-aclib-protos
+)
+target_sources(ydb-library-aclib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp
+)
diff --git a/ydb/library/aclib/CMakeLists.txt b/ydb/library/aclib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/aclib/CMakeLists.txt
+++ b/ydb/library/aclib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d23f61eba4
--- /dev/null
+++ b/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-aclib-protos)
+target_link_libraries(library-aclib-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-aclib-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto
+)
+target_proto_addincls(library-aclib-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-aclib-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/aclib/protos/CMakeLists.txt b/ydb/library/aclib/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/aclib/protos/CMakeLists.txt
+++ b/ydb/library/aclib/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..12f0fd0a47
--- /dev/null
+++ b/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-aclib-ut)
+target_include_directories(ydb-library-aclib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/aclib
+)
+target_link_libraries(ydb-library-aclib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-aclib
+)
+target_link_options(ydb-library-aclib-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-aclib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-aclib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-aclib-ut
+ TEST_TARGET
+ ydb-library-aclib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-aclib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-aclib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-aclib-ut
+ system_allocator
+)
+vcs_info(ydb-library-aclib-ut)
diff --git a/ydb/library/aclib/ut/CMakeLists.txt b/ydb/library/aclib/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/aclib/ut/CMakeLists.txt
+++ b/ydb/library/aclib/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_clickhouse/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad256049c8
--- /dev/null
+++ b/ydb/library/arrow_clickhouse/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(Columns)
+add_subdirectory(Common)
+add_subdirectory(DataStreams)
+add_subdirectory(ut)
+
+add_library(ydb-library-arrow_clickhouse)
+target_include_directories(ydb-library-arrow_clickhouse PUBLIC
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/base
+)
+target_include_directories(ydb-library-arrow_clickhouse PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(ydb-library-arrow_clickhouse PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ contrib-restricted-cityhash-1.0.2
+ library-arrow_clickhouse-Common
+ library-arrow_clickhouse-Columns
+ library-arrow_clickhouse-DataStreams
+)
+target_sources(ydb-library-arrow_clickhouse PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/AggregateFunctions/IAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/Aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/base/common/mremap.cpp
+)
diff --git a/ydb/library/arrow_clickhouse/CMakeLists.txt b/ydb/library/arrow_clickhouse/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_clickhouse/CMakeLists.txt
+++ b/ydb/library/arrow_clickhouse/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e8a9737df7
--- /dev/null
+++ b/ydb/library/arrow_clickhouse/Columns/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-arrow_clickhouse-Columns)
+target_include_directories(library-arrow_clickhouse-Columns PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(library-arrow_clickhouse-Columns PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(library-arrow_clickhouse-Columns PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/Columns/ColumnsCommon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/Columns/ColumnAggregateFunction.cpp
+)
diff --git a/ydb/library/arrow_clickhouse/Columns/CMakeLists.txt b/ydb/library/arrow_clickhouse/Columns/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_clickhouse/Columns/CMakeLists.txt
+++ b/ydb/library/arrow_clickhouse/Columns/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b5b8c46f1
--- /dev/null
+++ b/ydb/library/arrow_clickhouse/Common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-arrow_clickhouse-Common)
+target_include_directories(library-arrow_clickhouse-Common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(library-arrow_clickhouse-Common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(library-arrow_clickhouse-Common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/Common/Allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/Common/PODArray.cpp
+)
diff --git a/ydb/library/arrow_clickhouse/Common/CMakeLists.txt b/ydb/library/arrow_clickhouse/Common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_clickhouse/Common/CMakeLists.txt
+++ b/ydb/library/arrow_clickhouse/Common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..503612c355
--- /dev/null
+++ b/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-arrow_clickhouse-DataStreams)
+target_include_directories(library-arrow_clickhouse-DataStreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(library-arrow_clickhouse-DataStreams PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(library-arrow_clickhouse-DataStreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/DataStreams/AggregatingBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/DataStreams/IBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/DataStreams/MergingAggregatedBlockInputStream.cpp
+)
diff --git a/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt b/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt
+++ b/ydb/library/arrow_clickhouse/DataStreams/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..569c3db98b
--- /dev/null
+++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-arrow_clickhouse-ut)
+target_include_directories(ydb-library-arrow_clickhouse-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(ydb-library-arrow_clickhouse-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-arrow_clickhouse
+)
+target_link_options(ydb-library-arrow_clickhouse-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-arrow_clickhouse-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/ut_aggregator.cpp
+)
+set_property(
+ TARGET
+ ydb-library-arrow_clickhouse-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-library-arrow_clickhouse-ut
+ TEST_TARGET
+ ydb-library-arrow_clickhouse-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_clickhouse-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_clickhouse-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_clickhouse-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-arrow_clickhouse-ut
+ system_allocator
+)
+vcs_info(ydb-library-arrow_clickhouse-ut)
diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_clickhouse/ut/CMakeLists.txt
+++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6a7cff53e
--- /dev/null
+++ b/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-arrow_kernels)
+target_link_libraries(ydb-library-arrow_kernels PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+)
+target_sources(ydb-library-arrow_kernels PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp
+)
diff --git a/ydb/library/arrow_kernels/CMakeLists.txt b/ydb/library/arrow_kernels/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_kernels/CMakeLists.txt
+++ b/ydb/library/arrow_kernels/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..16fbb4b260
--- /dev/null
+++ b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-arrow_kernels-ut)
+target_compile_options(ydb-library-arrow_kernels-ut PRIVATE
+ -Wno-unused-parameter
+)
+target_include_directories(ydb-library-arrow_kernels-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse
+)
+target_link_libraries(ydb-library-arrow_kernels-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-arrow_kernels
+ libs-apache-arrow
+)
+target_link_options(ydb-library-arrow_kernels-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-arrow_kernels-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_arithmetic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_math.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_round.cpp
+)
+set_property(
+ TARGET
+ ydb-library-arrow_kernels-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-library-arrow_kernels-ut
+ TEST_TARGET
+ ydb-library-arrow_kernels-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_kernels-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_kernels-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-arrow_kernels-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-arrow_kernels-ut
+ system_allocator
+)
+vcs_info(ydb-library-arrow_kernels-ut)
diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.txt b/ydb/library/arrow_kernels/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/arrow_kernels/ut/CMakeLists.txt
+++ b/ydb/library/arrow_kernels/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/backup/CMakeLists.darwin-arm64.txt b/ydb/library/backup/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92a7c7975d
--- /dev/null
+++ b/ydb/library/backup/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(kikimr_backup)
+target_link_libraries(kikimr_backup PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-bucket_quoter
+ cpp-regex-pcre
+ cpp-string_utils-quote
+ ydb-library-dynumber
+ api-grpc
+ api-protos
+ common
+ public-lib-yson_value
+ cpp-client-ydb_proto
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+)
+target_sources(kikimr_backup PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup/backup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup/query_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup/query_uploader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup/util.cpp
+)
diff --git a/ydb/library/backup/CMakeLists.txt b/ydb/library/backup/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/backup/CMakeLists.txt
+++ b/ydb/library/backup/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt b/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..67e2c354c9
--- /dev/null
+++ b/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-backup-ut)
+target_include_directories(ydb-library-backup-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup
+)
+target_link_libraries(ydb-library-backup-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ kikimr_backup
+ cpp-string_utils-quote
+)
+target_link_options(ydb-library-backup-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-backup-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/backup/ut/ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-backup-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-backup-ut
+ TEST_TARGET
+ ydb-library-backup-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-backup-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-backup-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-backup-ut
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-library-backup-ut
+ system_allocator
+)
+vcs_info(ydb-library-backup-ut)
diff --git a/ydb/library/backup/ut/CMakeLists.txt b/ydb/library/backup/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/backup/ut/CMakeLists.txt
+++ b/ydb/library/backup/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/binary_json/CMakeLists.darwin-arm64.txt b/ydb/library/binary_json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..59ac075d36
--- /dev/null
+++ b/ydb/library/binary_json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-library-binary_json)
+target_compile_options(ydb-library-binary_json PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(ydb-library-binary_json PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ yql-minikql-dom
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ydb-library-binary_json PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/format.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/write.cpp
+)
+generate_enum_serilization(ydb-library-binary_json
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/format.h
+ INCLUDE_HEADERS
+ ydb/library/binary_json/format.h
+)
diff --git a/ydb/library/binary_json/CMakeLists.txt b/ydb/library/binary_json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/binary_json/CMakeLists.txt
+++ b/ydb/library/binary_json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt b/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bfb41fc4c3
--- /dev/null
+++ b/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-binary_json-ut)
+target_compile_options(ydb-library-binary_json-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-binary_json-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json
+)
+target_link_libraries(ydb-library-binary_json-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-binary_json
+ yql-minikql-dom
+ minikql-invoke_builtins-llvm
+ udf-service-exception_policy
+ core-issue-protos
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-binary_json-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-binary_json-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/container_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/identity_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/entry_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/test_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/valid_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-binary_json-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-binary_json-ut
+ TEST_TARGET
+ ydb-library-binary_json-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-binary_json-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-binary_json-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-binary_json-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-binary_json-ut
+ system_allocator
+)
+vcs_info(ydb-library-binary_json-ut)
diff --git a/ydb/library/binary_json/ut/CMakeLists.txt b/ydb/library/binary_json/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/binary_json/ut/CMakeLists.txt
+++ b/ydb/library/binary_json/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/chunks_limiter/CMakeLists.darwin-arm64.txt b/ydb/library/chunks_limiter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aac0b69df8
--- /dev/null
+++ b/ydb/library/chunks_limiter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-chunks_limiter)
+target_link_libraries(ydb-library-chunks_limiter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-chunks_limiter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/chunks_limiter/chunks_limiter.cpp
+)
diff --git a/ydb/library/chunks_limiter/CMakeLists.txt b/ydb/library/chunks_limiter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/chunks_limiter/CMakeLists.txt
+++ b/ydb/library/chunks_limiter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/conclusion/CMakeLists.darwin-arm64.txt b/ydb/library/conclusion/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee4f4c3fa2
--- /dev/null
+++ b/ydb/library/conclusion/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-conclusion)
+target_link_libraries(ydb-library-conclusion PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-conclusion PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/status.cpp
+)
diff --git a/ydb/library/conclusion/CMakeLists.txt b/ydb/library/conclusion/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/conclusion/CMakeLists.txt
+++ b/ydb/library/conclusion/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/db_pool/CMakeLists.darwin-arm64.txt b/ydb/library/db_pool/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6de7fc97e7
--- /dev/null
+++ b/ydb/library/db_pool/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(ydb-library-db_pool)
+target_link_libraries(ydb-library-db_pool PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-monlib-dynamic_counters
+ ydb-core-protos
+ library-db_pool-protos
+ ydb-library-security
+ cpp-client-ydb_driver
+ cpp-client-ydb_table
+)
+target_sources(ydb-library-db_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/db_pool.cpp
+)
diff --git a/ydb/library/db_pool/CMakeLists.txt b/ydb/library/db_pool/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/db_pool/CMakeLists.txt
+++ b/ydb/library/db_pool/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt b/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b27a2ed4f7
--- /dev/null
+++ b/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-db_pool-protos)
+target_link_libraries(library-db_pool-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-db_pool-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto
+)
+target_proto_addincls(library-db_pool-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-db_pool-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/db_pool/protos/CMakeLists.txt b/ydb/library/db_pool/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/db_pool/protos/CMakeLists.txt
+++ b/ydb/library/db_pool/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/dynumber/CMakeLists.darwin-arm64.txt b/ydb/library/dynumber/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8eba3e9ddc
--- /dev/null
+++ b/ydb/library/dynumber/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-dynumber)
+target_link_libraries(ydb-library-dynumber PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+)
+target_sources(ydb-library-dynumber PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp
+)
diff --git a/ydb/library/dynumber/CMakeLists.txt b/ydb/library/dynumber/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/dynumber/CMakeLists.txt
+++ b/ydb/library/dynumber/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt b/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7234bb1306
--- /dev/null
+++ b/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-dynumber-ut)
+target_include_directories(ydb-library-dynumber-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/dynumber
+)
+target_link_libraries(ydb-library-dynumber-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-dynumber
+)
+target_link_options(ydb-library-dynumber-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-dynumber-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/ut/dynumber_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-dynumber-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-dynumber-ut
+ TEST_TARGET
+ ydb-library-dynumber-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-dynumber-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-dynumber-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-dynumber-ut
+ system_allocator
+)
+vcs_info(ydb-library-dynumber-ut)
diff --git a/ydb/library/dynumber/ut/CMakeLists.txt b/ydb/library/dynumber/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/dynumber/ut/CMakeLists.txt
+++ b/ydb/library/dynumber/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/folder_service/CMakeLists.darwin-arm64.txt b/ydb/library/folder_service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf310baa0d
--- /dev/null
+++ b/ydb/library/folder_service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mock)
+add_subdirectory(proto)
+
+add_library(ydb-library-folder_service)
+target_link_libraries(ydb-library-folder_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ library-folder_service-proto
+)
+target_sources(ydb-library-folder_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp
+)
diff --git a/ydb/library/folder_service/CMakeLists.txt b/ydb/library/folder_service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/folder_service/CMakeLists.txt
+++ b/ydb/library/folder_service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/folder_service/mock/CMakeLists.darwin-arm64.txt b/ydb/library/folder_service/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..19749a1a0f
--- /dev/null
+++ b/ydb/library/folder_service/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-folder_service-mock)
+target_compile_options(library-folder_service-mock PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(library-folder_service-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-folder_service
+ library-folder_service-proto
+)
+target_sources(library-folder_service-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/mock/mock_folder_service_adapter.cpp
+)
diff --git a/ydb/library/folder_service/mock/CMakeLists.txt b/ydb/library/folder_service/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/folder_service/mock/CMakeLists.txt
+++ b/ydb/library/folder_service/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt b/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d9c4e98f2
--- /dev/null
+++ b/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-folder_service-proto)
+target_link_libraries(library-folder_service-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-folder_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto
+)
+target_proto_addincls(library-folder_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-folder_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/folder_service/proto/CMakeLists.txt b/ydb/library/folder_service/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/folder_service/proto/CMakeLists.txt
+++ b/ydb/library/folder_service/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/http_proxy/authorization/CMakeLists.darwin-arm64.txt b/ydb/library/http_proxy/authorization/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5308d65d2d
--- /dev/null
+++ b/ydb/library/http_proxy/authorization/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(library-http_proxy-authorization)
+target_link_libraries(library-http_proxy-authorization PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ library-cpp-cgiparam
+ cpp-http-io
+ cpp-http-misc
+ library-http_proxy-error
+)
+target_sources(library-http_proxy-authorization PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/auth_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/signature.cpp
+)
diff --git a/ydb/library/http_proxy/authorization/CMakeLists.txt b/ydb/library/http_proxy/authorization/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/http_proxy/authorization/CMakeLists.txt
+++ b/ydb/library/http_proxy/authorization/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f0c27f7ff3
--- /dev/null
+++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-http_proxy-authorization-ut)
+target_include_directories(ydb-library-http_proxy-authorization-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization
+)
+target_link_libraries(ydb-library-http_proxy-authorization-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-http_proxy-authorization
+ library-http_proxy-error
+)
+target_link_options(ydb-library-http_proxy-authorization-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-http_proxy-authorization-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/ut/auth_helpers_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/ut/signature_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-http_proxy-authorization-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-http_proxy-authorization-ut
+ TEST_TARGET
+ ydb-library-http_proxy-authorization-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-http_proxy-authorization-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-http_proxy-authorization-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-http_proxy-authorization-ut
+ system_allocator
+)
+vcs_info(ydb-library-http_proxy-authorization-ut)
diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/http_proxy/authorization/ut/CMakeLists.txt
+++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/http_proxy/error/CMakeLists.darwin-arm64.txt b/ydb/library/http_proxy/error/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b31069c69b
--- /dev/null
+++ b/ydb/library/http_proxy/error/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-http_proxy-error)
+target_link_libraries(library-http_proxy-error PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-http_proxy-error PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/error/error.cpp
+)
diff --git a/ydb/library/http_proxy/error/CMakeLists.txt b/ydb/library/http_proxy/error/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/http_proxy/error/CMakeLists.txt
+++ b/ydb/library/http_proxy/error/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/keys/CMakeLists.darwin-arm64.txt b/ydb/library/keys/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae35a96ed5
--- /dev/null
+++ b/ydb/library/keys/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-keys)
+target_link_libraries(ydb-library-keys PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-keys PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/keys/default_keys.cpp
+)
diff --git a/ydb/library/keys/CMakeLists.txt b/ydb/library/keys/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/keys/CMakeLists.txt
+++ b/ydb/library/keys/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt b/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1461bee2fa
--- /dev/null
+++ b/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-keys-ut)
+target_include_directories(ydb-library-keys-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/keys
+)
+target_link_libraries(ydb-library-keys-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-keys
+)
+target_link_options(ydb-library-keys-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-keys-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/keys/default_keys_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-keys-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-keys-ut
+ TEST_TARGET
+ ydb-library-keys-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-keys-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-keys-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-keys-ut
+ system_allocator
+)
+vcs_info(ydb-library-keys-ut)
diff --git a/ydb/library/keys/ut/CMakeLists.txt b/ydb/library/keys/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/keys/ut/CMakeLists.txt
+++ b/ydb/library/keys/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/logger/CMakeLists.darwin-arm64.txt b/ydb/library/logger/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..102a906f0c
--- /dev/null
+++ b/ydb/library/logger/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-logger)
+target_link_libraries(ydb-library-logger PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-logger
+)
+target_sources(ydb-library-logger PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/logger/actor.cpp
+)
diff --git a/ydb/library/logger/CMakeLists.txt b/ydb/library/logger/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/logger/CMakeLists.txt
+++ b/ydb/library/logger/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/login/CMakeLists.darwin-arm64.txt b/ydb/library/login/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d9b859367b
--- /dev/null
+++ b/ydb/library/login/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-library-login)
+target_link_libraries(ydb-library-login PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-jwt-cpp
+ contrib-libs-protobuf
+ cpp-digest-argonish
+ library-cpp-json
+ cpp-string_utils-base64
+ library-login-protos
+)
+target_sources(ydb-library-login PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp
+)
diff --git a/ydb/library/login/CMakeLists.txt b/ydb/library/login/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/login/CMakeLists.txt
+++ b/ydb/library/login/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/login/protos/CMakeLists.darwin-arm64.txt b/ydb/library/login/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bf877d4c78
--- /dev/null
+++ b/ydb/library/login/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-login-protos)
+target_link_libraries(library-login-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-login-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto
+)
+target_proto_addincls(library-login-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-login-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/login/protos/CMakeLists.txt b/ydb/library/login/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/login/protos/CMakeLists.txt
+++ b/ydb/library/login/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/login/ut/CMakeLists.darwin-arm64.txt b/ydb/library/login/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..234a7df0d1
--- /dev/null
+++ b/ydb/library/login/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-login-ut)
+target_include_directories(ydb-library-login-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/login
+)
+target_link_libraries(ydb-library-login-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-login
+)
+target_link_options(ydb-library-login-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-login-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/login/login_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-login-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-login-ut
+ TEST_TARGET
+ ydb-library-login-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-login-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-login-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-login-ut
+ system_allocator
+)
+vcs_info(ydb-library-login-ut)
diff --git a/ydb/library/login/ut/CMakeLists.txt b/ydb/library/login/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/login/ut/CMakeLists.txt
+++ b/ydb/library/login/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3293268a72
--- /dev/null
+++ b/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-library-mkql_proto)
+target_compile_options(ydb-library-mkql_proto PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-library-mkql_proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-mkql_proto-protos
+ minikql-computation-llvm
+ yql-parser-pg_catalog
+ providers-common-codec
+ api-protos
+)
+target_sources(ydb-library-mkql_proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto.cpp
+)
diff --git a/ydb/library/mkql_proto/CMakeLists.txt b/ydb/library/mkql_proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/mkql_proto/CMakeLists.txt
+++ b/ydb/library/mkql_proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68671e8b39
--- /dev/null
+++ b/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-mkql_proto-protos)
+set_property(TARGET library-mkql_proto-protos PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(library-mkql_proto-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(library-mkql_proto-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto
+)
+target_proto_addincls(library-mkql_proto-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-mkql_proto-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(library-mkql_proto-protos
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/mkql_proto/protos/CMakeLists.txt b/ydb/library/mkql_proto/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/mkql_proto/protos/CMakeLists.txt
+++ b/ydb/library/mkql_proto/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..86919d88b7
--- /dev/null
+++ b/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(helpers)
+
+add_executable(ydb-library-mkql_proto-ut)
+target_compile_options(ydb-library-mkql_proto-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-mkql_proto-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto
+)
+target_link_libraries(ydb-library-mkql_proto-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-mkql_proto
+ mkql_proto-ut-helpers
+ udf-service-exception_policy
+ ydb-core-yql_testlib
+)
+target_link_options(ydb-library-mkql_proto-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-mkql_proto-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-mkql_proto-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-mkql_proto-ut
+ TEST_TARGET
+ ydb-library-mkql_proto-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-mkql_proto-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-mkql_proto-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-mkql_proto-ut
+ PROPERTY
+ TIMEOUT
+ 150
+)
+target_allocator(ydb-library-mkql_proto-ut
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-library-mkql_proto-ut)
diff --git a/ydb/library/mkql_proto/ut/CMakeLists.txt b/ydb/library/mkql_proto/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/mkql_proto/ut/CMakeLists.txt
+++ b/ydb/library/mkql_proto/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b9fd31457
--- /dev/null
+++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(mkql_proto-ut-helpers)
+target_compile_options(mkql_proto-ut-helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(mkql_proto-ut-helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-comp_nodes-llvm
+ cpp-testing-unittest
+ contrib-libs-protobuf
+)
+target_sources(mkql_proto-ut-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/ut/helpers/helpers.cpp
+)
diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.txt
+++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/naming_conventions/CMakeLists.darwin-arm64.txt b/ydb/library/naming_conventions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f3fd1057c3
--- /dev/null
+++ b/ydb/library/naming_conventions/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-naming_conventions)
+target_link_libraries(ydb-library-naming_conventions PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-naming_conventions PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/naming_conventions/naming_conventions.cpp
+)
diff --git a/ydb/library/naming_conventions/CMakeLists.txt b/ydb/library/naming_conventions/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/naming_conventions/CMakeLists.txt
+++ b/ydb/library/naming_conventions/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt b/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ab69002f7
--- /dev/null
+++ b/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-naming_conventions-ut)
+target_include_directories(ydb-library-naming_conventions-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/naming_conventions
+)
+target_link_libraries(ydb-library-naming_conventions-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-naming_conventions
+)
+target_link_options(ydb-library-naming_conventions-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-naming_conventions-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/naming_conventions/ut/naming_conventions_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-naming_conventions-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-naming_conventions-ut
+ TEST_TARGET
+ ydb-library-naming_conventions-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-naming_conventions-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-naming_conventions-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-naming_conventions-ut
+ system_allocator
+)
+vcs_info(ydb-library-naming_conventions-ut)
diff --git a/ydb/library/naming_conventions/ut/CMakeLists.txt b/ydb/library/naming_conventions/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/naming_conventions/ut/CMakeLists.txt
+++ b/ydb/library/naming_conventions/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt b/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..741986c861
--- /dev/null
+++ b/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-library-pdisk_io)
+target_link_libraries(ydb-library-pdisk_io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-actors-core
+ cpp-actors-wilson
+ cpp-monlib-dynamic_counters
+ ydb-core-debug
+ library-pdisk_io-protos
+)
+target_sources(ydb-library-pdisk_io PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_mtp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_darwin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.cpp
+)
+generate_enum_serilization(ydb-library-pdisk_io
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h
+ INCLUDE_HEADERS
+ ydb/library/pdisk_io/aio.h
+)
diff --git a/ydb/library/pdisk_io/CMakeLists.txt b/ydb/library/pdisk_io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/pdisk_io/CMakeLists.txt
+++ b/ydb/library/pdisk_io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt b/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ffdbd27bec
--- /dev/null
+++ b/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-pdisk_io-protos)
+target_link_libraries(library-pdisk_io-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-pdisk_io-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto
+)
+target_proto_addincls(library-pdisk_io-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-pdisk_io-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/pdisk_io/protos/CMakeLists.txt b/ydb/library/pdisk_io/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/pdisk_io/protos/CMakeLists.txt
+++ b/ydb/library/pdisk_io/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e272674974
--- /dev/null
+++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-persqueue-counter_time_keeper)
+target_link_libraries(library-persqueue-counter_time_keeper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-lwtrace-protos
+ cpp-actors-protos
+ ydb-core-protos
+)
+target_sources(library-persqueue-counter_time_keeper PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp
+)
diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.txt
+++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a24a82cac
--- /dev/null
+++ b/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(persqueue-deprecated-read_batch_converter)
+target_link_libraries(persqueue-deprecated-read_batch_converter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos-persqueue-deprecated
+)
+target_sources(persqueue-deprecated-read_batch_converter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/deprecated/read_batch_converter/read_batch_converter.cpp
+)
diff --git a/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt b/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt
+++ b/ydb/library/persqueue/deprecated/read_batch_converter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..02f21933a9
--- /dev/null
+++ b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-persqueue-obfuscate)
+target_link_libraries(library-persqueue-obfuscate PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-persqueue-obfuscate PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp
+)
diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.txt b/ydb/library/persqueue/obfuscate/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/obfuscate/CMakeLists.txt
+++ b/ydb/library/persqueue/obfuscate/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/tests/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/tests/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3cfa9f24f7
--- /dev/null
+++ b/ydb/library/persqueue/tests/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-persqueue-tests)
+target_link_libraries(library-persqueue-tests PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest
+ cpp-http-io
+ library-cpp-json
+)
+target_sources(library-persqueue-tests PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/tests/counters.cpp
+)
diff --git a/ydb/library/persqueue/tests/CMakeLists.txt b/ydb/library/persqueue/tests/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/tests/CMakeLists.txt
+++ b/ydb/library/persqueue/tests/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b53684c776
--- /dev/null
+++ b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(library-persqueue-topic_parser)
+target_link_libraries(library-persqueue-topic_parser PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ library-persqueue-topic_parser_public
+ api-protos
+)
+target_sources(library-persqueue-topic_parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp
+)
diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.txt b/ydb/library/persqueue/topic_parser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/topic_parser/CMakeLists.txt
+++ b/ydb/library/persqueue/topic_parser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ccd343ccd9
--- /dev/null
+++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-persqueue-topic_parser-ut)
+target_include_directories(ydb-library-persqueue-topic_parser-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser
+)
+target_link_libraries(ydb-library-persqueue-topic_parser-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-persqueue-topic_parser
+ library-cpp-getopt
+ library-cpp-svnversion
+)
+target_link_options(ydb-library-persqueue-topic_parser-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-persqueue-topic_parser-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-persqueue-topic_parser-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-persqueue-topic_parser-ut
+ TEST_TARGET
+ ydb-library-persqueue-topic_parser-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-persqueue-topic_parser-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-persqueue-topic_parser-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-persqueue-topic_parser-ut
+ PROPERTY
+ TIMEOUT
+ 30
+)
+target_allocator(ydb-library-persqueue-topic_parser-ut
+ system_allocator
+)
+vcs_info(ydb-library-persqueue-topic_parser-ut)
diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.txt
+++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b6e8e1156a
--- /dev/null
+++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-persqueue-topic_parser_public)
+target_link_libraries(library-persqueue-topic_parser_public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-persqueue-topic_parser_public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp
+)
diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/persqueue/topic_parser_public/CMakeLists.txt
+++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d9b3abdd2
--- /dev/null
+++ b/ydb/library/pretty_types_print/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-pretty_types_print-protobuf)
+target_link_libraries(library-pretty_types_print-protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_sources(library-pretty_types_print-protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/pretty_types_print/protobuf/out.cpp
+)
diff --git a/ydb/library/pretty_types_print/protobuf/CMakeLists.txt b/ydb/library/pretty_types_print/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/pretty_types_print/protobuf/CMakeLists.txt
+++ b/ydb/library/pretty_types_print/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/pretty_types_print/wilson/CMakeLists.darwin-arm64.txt b/ydb/library/pretty_types_print/wilson/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6928b07809
--- /dev/null
+++ b/ydb/library/pretty_types_print/wilson/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-pretty_types_print-wilson)
+target_link_libraries(library-pretty_types_print-wilson PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-wilson
+)
+target_sources(library-pretty_types_print-wilson PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/pretty_types_print/wilson/out.cpp
+)
diff --git a/ydb/library/pretty_types_print/wilson/CMakeLists.txt b/ydb/library/pretty_types_print/wilson/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/pretty_types_print/wilson/CMakeLists.txt
+++ b/ydb/library/pretty_types_print/wilson/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/protobuf_printer/CMakeLists.darwin-arm64.txt b/ydb/library/protobuf_printer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6819133278
--- /dev/null
+++ b/ydb/library/protobuf_printer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-protobuf_printer)
+target_link_libraries(ydb-library-protobuf_printer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ ydb-library-security
+ api-protos-annotations
+)
+target_sources(ydb-library-protobuf_printer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/hide_field_printer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/size_printer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/stream_helper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/token_field_printer.cpp
+)
diff --git a/ydb/library/protobuf_printer/CMakeLists.txt b/ydb/library/protobuf_printer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/protobuf_printer/CMakeLists.txt
+++ b/ydb/library/protobuf_printer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62e52c03ce
--- /dev/null
+++ b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,96 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(ydb-library-protobuf_printer-ut)
+target_include_directories(ydb-library-protobuf_printer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer
+)
+target_link_libraries(ydb-library-protobuf_printer-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-protobuf_printer
+ contrib-libs-protobuf
+)
+target_link_options(ydb-library-protobuf_printer-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto
+)
+target_sources(ydb-library-protobuf_printer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-protobuf_printer-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-protobuf_printer-ut
+ TEST_TARGET
+ ydb-library-protobuf_printer-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-protobuf_printer-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-protobuf_printer-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-protobuf_printer-ut
+ system_allocator
+)
+target_proto_addincls(ydb-library-protobuf_printer-ut
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(ydb-library-protobuf_printer-ut
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(ydb-library-protobuf_printer-ut)
diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.txt b/ydb/library/protobuf_printer/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/protobuf_printer/ut/CMakeLists.txt
+++ b/ydb/library/protobuf_printer/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/query_actor/CMakeLists.darwin-arm64.txt b/ydb/library/query_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a98b074104
--- /dev/null
+++ b/ydb/library/query_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-query_actor)
+target_link_libraries(ydb-library-query_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-threading-future
+ ydb-core-base
+ core-grpc_services-local_rpc
+ yql-public-issue
+ api-protos
+ cpp-client-ydb_params
+ cpp-client-ydb_result
+ cpp-client-ydb_proto
+)
+target_sources(ydb-library-query_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor.cpp
+)
diff --git a/ydb/library/query_actor/CMakeLists.txt b/ydb/library/query_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/query_actor/CMakeLists.txt
+++ b/ydb/library/query_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt b/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7228ab62d9
--- /dev/null
+++ b/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-query_actor-ut)
+target_compile_options(ydb-library-query_actor-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-query_actor-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/query_actor
+)
+target_link_libraries(ydb-library-query_actor-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-query_actor
+ ydb-core-testlib
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-query_actor-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-query_actor-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-query_actor-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-query_actor-ut
+ TEST_TARGET
+ ydb-library-query_actor-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-query_actor-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-query_actor-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-query_actor-ut
+ system_allocator
+)
+vcs_info(ydb-library-query_actor-ut)
diff --git a/ydb/library/query_actor/ut/CMakeLists.txt b/ydb/library/query_actor/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/query_actor/ut/CMakeLists.txt
+++ b/ydb/library/query_actor/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/rewrapper/CMakeLists.darwin-arm64.txt b/ydb/library/rewrapper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..480d2ab6c6
--- /dev/null
+++ b/ydb/library/rewrapper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+add_subdirectory(re2)
+
+add_library(ydb-library-rewrapper)
+target_link_libraries(ydb-library-rewrapper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-rewrapper-proto
+)
+target_sources(ydb-library-rewrapper PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/dispatcher.cpp
+)
diff --git a/ydb/library/rewrapper/CMakeLists.txt b/ydb/library/rewrapper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/rewrapper/CMakeLists.txt
+++ b/ydb/library/rewrapper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt b/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..118580ff4c
--- /dev/null
+++ b/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-rewrapper-proto)
+target_link_libraries(library-rewrapper-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-rewrapper-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto
+)
+target_proto_addincls(library-rewrapper-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-rewrapper-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/rewrapper/proto/CMakeLists.txt b/ydb/library/rewrapper/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/rewrapper/proto/CMakeLists.txt
+++ b/ydb/library/rewrapper/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/rewrapper/re2/CMakeLists.darwin-arm64.txt b/ydb/library/rewrapper/re2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a021b4859b
--- /dev/null
+++ b/ydb/library/rewrapper/re2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-rewrapper-re2 INTERFACE)
+target_link_libraries(library-rewrapper-re2 INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-re2
+ ydb-library-rewrapper
+)
+
+add_global_library_for(library-rewrapper-re2.global library-rewrapper-re2)
+target_link_libraries(library-rewrapper-re2.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-re2
+ ydb-library-rewrapper
+)
+target_sources(library-rewrapper-re2.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/re2/re2.cpp
+)
diff --git a/ydb/library/rewrapper/re2/CMakeLists.txt b/ydb/library/rewrapper/re2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/rewrapper/re2/CMakeLists.txt
+++ b/ydb/library/rewrapper/re2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..35b5487e79
--- /dev/null
+++ b/ydb/library/schlab/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mon)
+add_subdirectory(probes)
+add_subdirectory(protos)
+add_subdirectory(schemu)
+add_subdirectory(schine)
+add_subdirectory(schoot)
+add_subdirectory(ut)
+
+add_library(ydb-library-schlab)
+target_link_libraries(ydb-library-schlab PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-schlab-schine
+)
+target_sources(ydb-library-schlab PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp
+)
diff --git a/ydb/library/schlab/CMakeLists.txt b/ydb/library/schlab/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/CMakeLists.txt
+++ b/ydb/library/schlab/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/mon/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/mon/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f0f4699c55
--- /dev/null
+++ b/ydb/library/schlab/mon/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(static)
+add_subdirectory(test)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(library-schlab-mon)
+target_link_libraries(library-schlab-mon PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-html-pcdata
+ cpp-monlib-dynamic_counters
+ library-schlab-schemu
+)
+target_sources(library-schlab-mon PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/mon.cpp
+)
+
+add_global_library_for(library-schlab-mon.global library-schlab-mon)
+target_link_libraries(library-schlab-mon.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ cpp-html-pcdata
+ cpp-monlib-dynamic_counters
+ library-schlab-schemu
+)
+target_sources(library-schlab-mon.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/schlab/mon/a4c6647a47483a30dd2cb446cfff2507.cpp
+)
+resources(library-schlab-mon.global
+ ${CMAKE_BINARY_DIR}/ydb/library/schlab/mon/a4c6647a47483a30dd2cb446cfff2507.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/css/bootstrap.min.css
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/css/scharm.css
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/css/schviz.css
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/jquery.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/bootstrap.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/d3-tip-0.8.0-alpha.1.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/d3.v4.min.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/scharm.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/schviz.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/js/scharm-test0.js
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/scharm.html
+ KEYS
+ schlab/css/bootstrap.min.css
+ schlab/css/scharm.css
+ schlab/css/schviz.css
+ schlab/js/jquery.min.js
+ schlab/js/bootstrap.min.js
+ schlab/js/d3-tip-0.8.0-alpha.1.js
+ schlab/js/d3.v4.min.js
+ schlab/js/scharm.js
+ schlab/js/schviz.js
+ schlab/js/scharm-test0.js
+ schlab/scharm.html
+)
diff --git a/ydb/library/schlab/mon/CMakeLists.txt b/ydb/library/schlab/mon/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/mon/CMakeLists.txt
+++ b/ydb/library/schlab/mon/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/mon/static/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/mon/static/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..382b5085cd
--- /dev/null
+++ b/ydb/library/schlab/mon/static/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(css)
+add_subdirectory(js)
+
+add_library(schlab-mon-static INTERFACE)
+target_link_libraries(schlab-mon-static INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/schlab/mon/static/CMakeLists.txt b/ydb/library/schlab/mon/static/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/mon/static/CMakeLists.txt
+++ b/ydb/library/schlab/mon/static/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/mon/static/css/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/mon/static/css/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d722e0e466
--- /dev/null
+++ b/ydb/library/schlab/mon/static/css/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(mon-static-css INTERFACE)
+target_link_libraries(mon-static-css INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/schlab/mon/static/css/CMakeLists.txt b/ydb/library/schlab/mon/static/css/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/mon/static/css/CMakeLists.txt
+++ b/ydb/library/schlab/mon/static/css/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/mon/static/js/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/mon/static/js/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0369922dd0
--- /dev/null
+++ b/ydb/library/schlab/mon/static/js/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(mon-static-js INTERFACE)
+target_link_libraries(mon-static-js INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/schlab/mon/static/js/CMakeLists.txt b/ydb/library/schlab/mon/static/js/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/mon/static/js/CMakeLists.txt
+++ b/ydb/library/schlab/mon/static/js/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/mon/test/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/mon/test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..63faf2c194
--- /dev/null
+++ b/ydb/library/schlab/mon/test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(mon-test)
+target_link_libraries(mon-test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ library-cpp-getopt
+ cpp-monlib-dynamic_counters
+ library-schlab-mon
+)
+target_link_options(mon-test PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(mon-test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/test/test.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/schlab/mon/test/58594e5c7af65697df8d9899a8761b06.cpp
+)
+resources(mon-test
+ ${CMAKE_BINARY_DIR}/ydb/library/schlab/mon/test/58594e5c7af65697df8d9899a8761b06.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/static/schviz-test0.json
+ KEYS
+ schlab/schviz-test0.json
+)
+target_allocator(mon-test
+ system_allocator
+)
+vcs_info(mon-test)
diff --git a/ydb/library/schlab/mon/test/CMakeLists.txt b/ydb/library/schlab/mon/test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/mon/test/CMakeLists.txt
+++ b/ydb/library/schlab/mon/test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..357d4c0baf
--- /dev/null
+++ b/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-schlab-probes)
+target_link_libraries(library-schlab-probes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lwtrace
+)
+target_sources(library-schlab-probes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp
+)
diff --git a/ydb/library/schlab/probes/CMakeLists.txt b/ydb/library/schlab/probes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/probes/CMakeLists.txt
+++ b/ydb/library/schlab/probes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e9addba13
--- /dev/null
+++ b/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-schlab-protos)
+target_link_libraries(library-schlab-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-schlab-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto
+)
+target_proto_addincls(library-schlab-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-schlab-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/schlab/protos/CMakeLists.txt b/ydb/library/schlab/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/protos/CMakeLists.txt
+++ b/ydb/library/schlab/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..007223c328
--- /dev/null
+++ b/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-schlab-schemu)
+target_link_libraries(library-schlab-schemu PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-schlab-schine
+ library-schlab-schoot
+)
+target_sources(library-schlab-schemu PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp
+)
diff --git a/ydb/library/schlab/schemu/CMakeLists.txt b/ydb/library/schlab/schemu/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/schemu/CMakeLists.txt
+++ b/ydb/library/schlab/schemu/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9ab206f785
--- /dev/null
+++ b/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-schlab-schine)
+target_link_libraries(library-schlab-schine PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ library-cpp-lwtrace
+ cpp-lwtrace-mon
+ library-schlab-probes
+)
+target_sources(library-schlab-schine PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.cpp
+)
diff --git a/ydb/library/schlab/schine/CMakeLists.txt b/ydb/library/schlab/schine/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/schine/CMakeLists.txt
+++ b/ydb/library/schlab/schine/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f4ef52b638
--- /dev/null
+++ b/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-schlab-schoot)
+target_link_libraries(library-schlab-schoot PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ cpp-protobuf-json
+ library-schlab-protos
+)
+target_sources(library-schlab-schoot PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp
+)
diff --git a/ydb/library/schlab/schoot/CMakeLists.txt b/ydb/library/schlab/schoot/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/schoot/CMakeLists.txt
+++ b/ydb/library/schlab/schoot/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5571c2c3f4
--- /dev/null
+++ b/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-schlab-ut)
+target_link_libraries(ydb-library-schlab-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-schlab-schoot
+)
+target_link_options(ydb-library-schlab-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-schlab-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/schlab/ut/schlab_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-schlab-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-schlab-ut
+ TEST_TARGET
+ ydb-library-schlab-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-schlab-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-schlab-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-schlab-ut
+ system_allocator
+)
+vcs_info(ydb-library-schlab-ut)
diff --git a/ydb/library/schlab/ut/CMakeLists.txt b/ydb/library/schlab/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/schlab/ut/CMakeLists.txt
+++ b/ydb/library/schlab/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/security/CMakeLists.darwin-arm64.txt b/ydb/library/security/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..70ee437a1e
--- /dev/null
+++ b/ydb/library/security/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-security)
+target_link_libraries(ydb-library-security PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ cpp-digest-crc32c
+ client-ydb_types-credentials
+)
+target_sources(ydb-library-security PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/security/util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/security/ydb_credentials_provider_factory.cpp
+)
diff --git a/ydb/library/security/CMakeLists.txt b/ydb/library/security/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/security/CMakeLists.txt
+++ b/ydb/library/security/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/security/ut/CMakeLists.darwin-arm64.txt b/ydb/library/security/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1792e6fdaf
--- /dev/null
+++ b/ydb/library/security/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-security-ut)
+target_link_libraries(ydb-library-security-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-security
+)
+target_link_options(ydb-library-security-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-security-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/security/ut/util_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-security-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-security-ut
+ TEST_TARGET
+ ydb-library-security-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-security-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-security-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-security-ut
+ system_allocator
+)
+vcs_info(ydb-library-security-ut)
diff --git a/ydb/library/security/ut/CMakeLists.txt b/ydb/library/security/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/security/ut/CMakeLists.txt
+++ b/ydb/library/security/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/services/CMakeLists.darwin-arm64.txt b/ydb/library/services/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bd9c4cc13d
--- /dev/null
+++ b/ydb/library/services/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(ydb-library-services)
+set_property(TARGET ydb-library-services PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(ydb-library-services PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(ydb-library-services PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto
+)
+target_proto_addincls(ydb-library-services
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(ydb-library-services
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(ydb-library-services
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/services/CMakeLists.txt b/ydb/library/services/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/services/CMakeLists.txt
+++ b/ydb/library/services/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt b/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b452859068
--- /dev/null
+++ b/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ldap_mock)
+
+add_library(library-testlib-service_mocks INTERFACE)
+target_link_libraries(library-testlib-service_mocks INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ client-yc_private-servicecontrol
+ api-grpc-draft
+ client-yc_private-resourcemanager
+ client-yc_private-iam
+)
diff --git a/ydb/library/testlib/service_mocks/CMakeLists.txt b/ydb/library/testlib/service_mocks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/testlib/service_mocks/CMakeLists.txt
+++ b/ydb/library/testlib/service_mocks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-arm64.txt b/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7f4e40745a
--- /dev/null
+++ b/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(testlib-service_mocks-ldap_mock)
+target_link_libraries(testlib-service_mocks-ldap_mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+)
+target_sources(testlib-service_mocks-ldap_mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_response.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_defines.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.cpp
+)
diff --git a/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt b/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt
+++ b/ydb/library/testlib/service_mocks/ldap_mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt b/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fbcbe07c03
--- /dev/null
+++ b/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-testlib-ut)
+target_link_libraries(ydb-library-testlib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-gtest
+ cpp-testing-gtest_main
+)
+target_link_options(ydb-library-testlib-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/testlib/ut/gtest_compat_ut.cpp
+)
+add_test(
+ NAME
+ ydb-library-testlib-ut
+ COMMAND
+ ydb-library-testlib-ut
+)
+set_property(
+ TEST
+ ydb-library-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_property(
+ TEST
+ ydb-library-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-testlib-ut
+ system_allocator
+)
+vcs_info(ydb-library-testlib-ut)
diff --git a/ydb/library/testlib/ut/CMakeLists.txt b/ydb/library/testlib/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/testlib/ut/CMakeLists.txt
+++ b/ydb/library/testlib/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt b/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..51cc6db3cb
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-time_series_vec INTERFACE)
+target_link_libraries(ydb-library-time_series_vec INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/time_series_vec/CMakeLists.txt b/ydb/library/time_series_vec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/time_series_vec/CMakeLists.txt
+++ b/ydb/library/time_series_vec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8ec87086f1
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-time_series_vec-ut)
+target_include_directories(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec
+)
+target_link_libraries(ydb-library-time_series_vec-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-time_series_vec
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_link_options(ydb-library-time_series_vec-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-time_series_vec-ut
+ TEST_TARGET
+ ydb-library-time_series_vec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-time_series_vec-ut
+ system_allocator
+)
+vcs_info(ydb-library-time_series_vec-ut)
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.txt b/ydb/library/time_series_vec/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/time_series_vec/ut/CMakeLists.txt
+++ b/ydb/library/time_series_vec/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/uuid/CMakeLists.darwin-arm64.txt b/ydb/library/uuid/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..56baf081bb
--- /dev/null
+++ b/ydb/library/uuid/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-uuid)
+target_link_libraries(ydb-library-uuid PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(ydb-library-uuid PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/uuid/uuid.cpp
+)
diff --git a/ydb/library/uuid/CMakeLists.txt b/ydb/library/uuid/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/uuid/CMakeLists.txt
+++ b/ydb/library/uuid/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt b/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae2afc4629
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-wilson_ids INTERFACE)
+target_link_libraries(ydb-library-wilson_ids INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/wilson_ids/CMakeLists.txt b/ydb/library/wilson_ids/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/wilson_ids/CMakeLists.txt
+++ b/ydb/library/wilson_ids/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/workload/CMakeLists.darwin-arm64.txt b/ydb/library/workload/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4b6d17589e
--- /dev/null
+++ b/ydb/library/workload/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ydb-library-workload)
+target_link_libraries(ydb-library-workload PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ api-protos
+ cpp-client-ydb_table
+)
+target_sources(ydb-library-workload PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/tpcc_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/customer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/district.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/history.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/item.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/new_order.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/oorder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/order_line.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/query_generator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/stock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/warehouse.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/load_thread_pool.cpp
+)
+generate_enum_serilization(ydb-library-workload
+ ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/tpcc_config.h
+ INCLUDE_HEADERS
+ ydb/library/workload/tpcc/tpcc_config.h
+)
diff --git a/ydb/library/workload/CMakeLists.txt b/ydb/library/workload/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/workload/CMakeLists.txt
+++ b/ydb/library/workload/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1d4687f1e2
--- /dev/null
+++ b/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(public)
+add_subdirectory(static_validator)
+add_subdirectory(ut)
+add_subdirectory(validator)
+
+add_library(ydb-library-yaml_config)
+target_link_libraries(ydb-library-yaml_config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ contrib-libs-protobuf
+ contrib-libs-yaml-cpp
+ cpp-actors-core
+ cpp-protobuf-json
+ cpp-yaml-fyamlcpp
+ ydb-core-base
+ cms-console-util
+ ydb-core-erasure
+ ydb-core-protos
+ library-yaml_config-public
+)
+target_sources(ydb-library-yaml_config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp
+)
diff --git a/ydb/library/yaml_config/CMakeLists.txt b/ydb/library/yaml_config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/CMakeLists.txt
+++ b/ydb/library/yaml_config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d2456b05d
--- /dev/null
+++ b/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-yaml_config-public)
+target_link_libraries(library-yaml_config-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ contrib-libs-protobuf
+ contrib-libs-yaml-cpp
+ cpp-actors-core
+ cpp-protobuf-json
+ cpp-yaml-fyamlcpp
+)
+target_sources(library-yaml_config-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp
+)
diff --git a/ydb/library/yaml_config/public/CMakeLists.txt b/ydb/library/yaml_config/public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/public/CMakeLists.txt
+++ b/ydb/library/yaml_config/public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..254d5ad015
--- /dev/null
+++ b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(library-yaml_config-static_validator)
+target_link_libraries(library-yaml_config-static_validator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yaml_config-validator
+)
+target_sources(library-yaml_config-static_validator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp
+)
diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.txt b/ydb/library/yaml_config/static_validator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/static_validator/CMakeLists.txt
+++ b/ydb/library/yaml_config/static_validator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ef879c0e2
--- /dev/null
+++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(example_configs)
+
+add_executable(ydb-library-yaml_config-static_validator-ut)
+target_link_libraries(ydb-library-yaml_config-static_validator-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yaml_config-static_validator
+ library-yaml_config-validator
+)
+target_link_options(ydb-library-yaml_config-static_validator-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yaml_config-static_validator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/test.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yaml_config-static_validator-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yaml_config-static_validator-ut
+ TEST_TARGET
+ ydb-library-yaml_config-static_validator-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-static_validator-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-static_validator-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yaml_config-static_validator-ut
+ system_allocator
+)
+vcs_info(ydb-library-yaml_config-static_validator-ut)
diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.txt
+++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..348c6b4e36
--- /dev/null
+++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(static_validator-ut-example_configs)
+target_link_libraries(static_validator-ut-example_configs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yaml_config-static_validator
+ library-yaml_config-validator
+)
+target_link_options(static_validator-ut-example_configs PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(static_validator-ut-example_configs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/example_configs/test.cpp
+)
+set_property(
+ TARGET
+ static_validator-ut-example_configs
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ static_validator-ut-example_configs
+ TEST_TARGET
+ static_validator-ut-example_configs
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ static_validator-ut-example_configs
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ static_validator-ut-example_configs
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(static_validator-ut-example_configs
+ system_allocator
+)
+vcs_info(static_validator-ut-example_configs)
diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt
+++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..610cc3631f
--- /dev/null
+++ b/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yaml_config-ut)
+target_include_directories(ydb-library-yaml_config-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config
+)
+target_link_libraries(ydb-library-yaml_config-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-yaml_config
+)
+target_link_options(ydb-library-yaml_config-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yaml_config-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yaml_config-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yaml_config-ut
+ TEST_TARGET
+ ydb-library-yaml_config-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yaml_config-ut
+ system_allocator
+)
+vcs_info(ydb-library-yaml_config-ut)
diff --git a/ydb/library/yaml_config/ut/CMakeLists.txt b/ydb/library/yaml_config/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/ut/CMakeLists.txt
+++ b/ydb/library/yaml_config/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2dd6b97814
--- /dev/null
+++ b/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-yaml_config-validator)
+target_link_libraries(library-yaml_config-validator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yaml-fyamlcpp
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-yaml_config-validator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.cpp
+)
+generate_enum_serilization(library-yaml_config-validator
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h
+ INCLUDE_HEADERS
+ ydb/library/yaml_config/validator/validator_builder.h
+)
diff --git a/ydb/library/yaml_config/validator/CMakeLists.txt b/ydb/library/yaml_config/validator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/validator/CMakeLists.txt
+++ b/ydb/library/yaml_config/validator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77fc23cbe9
--- /dev/null
+++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yaml_config-validator-ut-validator)
+target_link_libraries(ydb-library-yaml_config-validator-ut-validator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yaml_config-validator
+)
+target_link_options(ydb-library-yaml_config-validator-ut-validator PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yaml_config-validator-ut-validator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator/validator_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yaml_config-validator-ut-validator
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yaml_config-validator-ut-validator
+ TEST_TARGET
+ ydb-library-yaml_config-validator-ut-validator
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-validator-ut-validator
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yaml_config-validator-ut-validator
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yaml_config-validator-ut-validator
+ system_allocator
+)
+vcs_info(ydb-library-yaml_config-validator-ut-validator)
diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt
+++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..093b059d1a
--- /dev/null
+++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yaml_config-validator-ut-validator_builder)
+target_link_libraries(yaml_config-validator-ut-validator_builder PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yaml_config-validator
+)
+target_link_options(yaml_config-validator-ut-validator_builder PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(yaml_config-validator-ut-validator_builder PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_builder/validator_builder_ut.cpp
+)
+set_property(
+ TARGET
+ yaml_config-validator-ut-validator_builder
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yaml_config-validator-ut-validator_builder
+ TEST_TARGET
+ yaml_config-validator-ut-validator_builder
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yaml_config-validator-ut-validator_builder
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ yaml_config-validator-ut-validator_builder
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yaml_config-validator-ut-validator_builder
+ system_allocator
+)
+vcs_info(yaml_config-validator-ut-validator_builder)
diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt
+++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0b02ef5a43
--- /dev/null
+++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yaml_config-validator-ut-validator_checks)
+target_link_libraries(yaml_config-validator-ut-validator_checks PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yaml_config-validator
+)
+target_link_options(yaml_config-validator-ut-validator_checks PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(yaml_config-validator-ut-validator_checks PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_checks/validator_checks_ut.cpp
+)
+set_property(
+ TARGET
+ yaml_config-validator-ut-validator_checks
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yaml_config-validator-ut-validator_checks
+ TEST_TARGET
+ yaml_config-validator-ut-validator_checks
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yaml_config-validator-ut-validator_checks
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ yaml_config-validator-ut-validator_checks
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yaml_config-validator-ut-validator_checks
+ system_allocator
+)
+vcs_info(yaml_config-validator-ut-validator_checks)
diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt
+++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a05d4db537
--- /dev/null
+++ b/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-ycloud-api INTERFACE)
+target_link_libraries(library-ycloud-api INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ client-yc_private-iam
+ client-yc_private-servicecontrol
+ client-yc_private-resourcemanager
+ cpp-actors-core
+ cpp-grpc-client
+ ydb-core-base
+ ydb-core-grpc_caching
+)
diff --git a/ydb/library/ycloud/api/CMakeLists.txt b/ydb/library/ycloud/api/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/ycloud/api/CMakeLists.txt
+++ b/ydb/library/ycloud/api/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a0bfaca26e
--- /dev/null
+++ b/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(library-ycloud-impl)
+target_link_libraries(library-ycloud-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-ycloud-api
+ cpp-actors-core
+ cpp-digest-crc32c
+ cpp-grpc-client
+ library-cpp-json
+ ydb-core-base
+ ydb-library-services
+ lib-deprecated-client
+ lib-deprecated-kicli
+)
+target_sources(library-ycloud-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_adapter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.cpp
+)
diff --git a/ydb/library/ycloud/impl/CMakeLists.txt b/ydb/library/ycloud/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/ycloud/impl/CMakeLists.txt
+++ b/ydb/library/ycloud/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d302272e9b
--- /dev/null
+++ b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-ycloud-impl-ut)
+target_compile_options(ydb-library-ycloud-impl-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-ycloud-impl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl
+)
+target_link_libraries(ydb-library-ycloud-impl-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-ycloud-impl
+ library-cpp-retry
+ core-testlib-default
+)
+target_link_options(ydb-library-ycloud-impl-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-ycloud-impl-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-ycloud-impl-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-ycloud-impl-ut
+ TEST_TARGET
+ ydb-library-ycloud-impl-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-ycloud-impl-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-ycloud-impl-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-ycloud-impl-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-ycloud-impl-ut
+ system_allocator
+)
+vcs_info(ydb-library-ycloud-impl-ut)
diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.txt b/ydb/library/ycloud/impl/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/ycloud/impl/ut/CMakeLists.txt
+++ b/ydb/library/ycloud/impl/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt b/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69d90656e3
--- /dev/null
+++ b/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(ydb-library-ydb_issue)
+target_link_libraries(ydb-library-ydb_issue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-ydb_issue-proto
+ library-cpp-resource
+)
+target_sources(ydb-library-ydb_issue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp
+)
+
+add_global_library_for(ydb-library-ydb_issue.global ydb-library-ydb_issue)
+target_link_libraries(ydb-library-ydb_issue.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-ydb_issue-proto
+ library-cpp-resource
+)
+target_sources(ydb-library-ydb_issue.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/11a2a83241c8a9ca7a1ce00f99de45d7.cpp
+)
+resources(ydb-library-ydb_issue.global
+ ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/11a2a83241c8a9ca7a1ce00f99de45d7.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/ydb_issue.txt
+ KEYS
+ ydb_issue.txt
+)
diff --git a/ydb/library/ydb_issue/CMakeLists.txt b/ydb/library/ydb_issue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/ydb_issue/CMakeLists.txt
+++ b/ydb/library/ydb_issue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt b/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d4c186028b
--- /dev/null
+++ b/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-ydb_issue-proto)
+set_property(TARGET library-ydb_issue-proto PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(library-ydb_issue-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ public-issue-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(library-ydb_issue-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto
+)
+target_proto_addincls(library-ydb_issue-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-ydb_issue-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(library-ydb_issue-proto
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/ydb_issue/proto/CMakeLists.txt b/ydb/library/ydb_issue/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/ydb_issue/proto/CMakeLists.txt
+++ b/ydb/library/ydb_issue/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt b/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..702a50bcc6
--- /dev/null
+++ b/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(serialize)
+add_subdirectory(ut)
+
+add_library(library-yql-ast)
+target_link_libraries(library-yql-ast PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-colorizer
+ cpp-containers-sorted_vector
+ cpp-containers-stack_vector
+ cpp-deprecated-enum_codegen
+ library-cpp-enumbitset
+ cpp-string_utils-levenshtein_diff
+ library-cpp-yson
+ cpp-yson-node
+ yql-public-udf
+ library-yql-utils
+ yql-utils-fetch
+ yql-core-issue
+ core-url_lister-interface
+ yql-parser-pg_catalog
+ api-protos
+)
+target_sources(library-yql-ast PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.cpp
+)
diff --git a/ydb/library/yql/ast/CMakeLists.txt b/ydb/library/yql/ast/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/ast/CMakeLists.txt
+++ b/ydb/library/yql/ast/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/ast/serialize/CMakeLists.darwin-arm64.txt b/ydb/library/yql/ast/serialize/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b250700c13
--- /dev/null
+++ b/ydb/library/yql/ast/serialize/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-ast-serialize)
+target_link_libraries(yql-ast-serialize PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ yql-core-issue
+ library-yql-minikql
+)
+target_sources(yql-ast-serialize PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/serialize/yql_expr_serialize.cpp
+)
diff --git a/ydb/library/yql/ast/serialize/CMakeLists.txt b/ydb/library/yql/ast/serialize/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/ast/serialize/CMakeLists.txt
+++ b/ydb/library/yql/ast/serialize/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2d2aa39df6
--- /dev/null
+++ b/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-ast-ut)
+target_include_directories(ydb-library-yql-ast-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast
+)
+target_link_libraries(ydb-library-yql-ast-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yql-ast
+)
+target_link_options(ydb-library-yql-ast-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-ast-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_check_args_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-ast-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-ast-ut
+ TEST_TARGET
+ ydb-library-yql-ast-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-ast-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-ast-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-ast-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-ast-ut)
diff --git a/ydb/library/yql/ast/ut/CMakeLists.txt b/ydb/library/yql/ast/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/ast/ut/CMakeLists.txt
+++ b/ydb/library/yql/ast/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..893a2f0cff
--- /dev/null
+++ b/ydb/library/yql/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,134 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arrow_kernels)
+add_subdirectory(cbo)
+add_subdirectory(common_opt)
+add_subdirectory(credentials)
+add_subdirectory(expr_nodes)
+add_subdirectory(expr_nodes_gen)
+add_subdirectory(extract_predicate)
+add_subdirectory(facade)
+add_subdirectory(file_storage)
+add_subdirectory(issue)
+add_subdirectory(peephole_opt)
+add_subdirectory(progress_merger)
+add_subdirectory(services)
+add_subdirectory(spilling)
+add_subdirectory(sql_types)
+add_subdirectory(type_ann)
+add_subdirectory(url_lister)
+add_subdirectory(url_preprocessing)
+add_subdirectory(user_data)
+add_subdirectory(ut)
+add_subdirectory(ut_common)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(library-yql-core)
+target_compile_options(library-yql-core PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(library-yql-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-enumbitset
+ library-cpp-random_provider
+ cpp-threading-future
+ library-cpp-time_provider
+ library-cpp-yson
+ cpp-yson-node
+ library-yql-ast
+ yql-core-file_storage
+ yql-core-sql_types
+ yql-core-credentials
+ core-url_lister-interface
+ core-url_preprocessing-interface
+ library-yql-minikql
+ library-yql-protos
+ yql-public-udf
+ public-udf-tz
+ yql-sql-settings
+ library-yql-utils
+ yql-utils-log
+ yql-core-expr_nodes
+ providers-common-proto
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(library-yql-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_library_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.cpp
+)
+generate_enum_serilization(library-yql-core
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/yql_data_provider.h
+)
+generate_enum_serilization(library-yql-core
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/yql_user_data.h
+)
+generate_enum_serilization(library-yql-core
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/yql_atom_enums.h
+)
+generate_enum_serilization(library-yql-core
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/yql_type_annotation.h
+)
diff --git a/ydb/library/yql/core/CMakeLists.txt b/ydb/library/yql/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/CMakeLists.txt
+++ b/ydb/library/yql/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a41655bc3
--- /dev/null
+++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(core-arrow_kernels-registry)
+target_compile_options(core-arrow_kernels-registry PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-arrow_kernels-registry PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ minikql-computation-llvm
+)
+target_sources(core-arrow_kernels-registry PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp
+)
diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt
+++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ac91512be
--- /dev/null
+++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-arrow_kernels-registry-ut)
+target_compile_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry
+)
+target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-arrow_kernels-registry
+ core-arrow_kernels-request
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+ minikql-comp_nodes-llvm
+ url_udf
+ json2_udf
+)
+target_link_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-arrow_kernels-registry-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-arrow_kernels-registry-ut
+ TEST_TARGET
+ ydb-library-yql-core-arrow_kernels-registry-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-arrow_kernels-registry-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-arrow_kernels-registry-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-core-arrow_kernels-registry-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-arrow_kernels-registry-ut)
diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fdfb8ab6c7
--- /dev/null
+++ b/ydb/library/yql/core/arrow_kernels/request/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-arrow_kernels-request)
+target_compile_options(core-arrow_kernels-request PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-arrow_kernels-request PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-minikql
+ providers-common-mkql
+ library-yql-core
+ library-yql-sql
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-arrow_kernels-request PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/request/request.cpp
+)
+generate_enum_serilization(core-arrow_kernels-request
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/request/request.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/arrow_kernels/request/request.h
+)
diff --git a/ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt b/ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt
+++ b/ydb/library/yql/core/arrow_kernels/request/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a06e4ec3c6
--- /dev/null
+++ b/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-core-cbo)
+target_link_libraries(yql-core-cbo PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-disjoint_sets
+)
+target_sources(yql-core-cbo PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp
+)
diff --git a/ydb/library/yql/core/cbo/CMakeLists.txt b/ydb/library/yql/core/cbo/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/cbo/CMakeLists.txt
+++ b/ydb/library/yql/core/cbo/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c693089ecf
--- /dev/null
+++ b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-cbo-ut)
+target_include_directories(ydb-library-yql-core-cbo-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo
+)
+target_link_libraries(ydb-library-yql-core-cbo-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-cbo
+)
+target_link_options(ydb-library-yql-core-cbo-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-core-cbo-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-cbo-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-cbo-ut
+ TEST_TARGET
+ ydb-library-yql-core-cbo-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-cbo-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-cbo-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-core-cbo-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-cbo-ut)
diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/cbo/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/cbo/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bc3eca545a
--- /dev/null
+++ b/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-common_opt)
+target_compile_options(yql-core-common_opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-common_opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-core-expr_nodes
+ yql-parser-pg_catalog
+)
+target_sources(yql-core-common_opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_flow1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_flow2.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_flowidaw1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_last.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_simple2.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_simple3.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.cpp
+)
diff --git a/ydb/library/yql/core/common_opt/CMakeLists.txt b/ydb/library/yql/core/common_opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/common_opt/CMakeLists.txt
+++ b/ydb/library/yql/core/common_opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/credentials/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/credentials/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c9782c75c
--- /dev/null
+++ b/ydb/library/yql/core/credentials/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-credentials)
+target_link_libraries(yql-core-credentials PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yql-core-credentials PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/credentials/yql_credentials.cpp
+)
diff --git a/ydb/library/yql/core/credentials/CMakeLists.txt b/ydb/library/yql/core/credentials/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/credentials/CMakeLists.txt
+++ b/ydb/library/yql/core/credentials/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..43e5158e79
--- /dev/null
+++ b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(yql-core-expr_nodes)
+target_link_libraries(yql-core-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes_gen
+ yql-public-udf
+ yql-core-issue
+)
+target_sources(yql-core-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/core/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cc364257b1
--- /dev/null
+++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-expr_nodes_gen)
+target_link_libraries(yql-core-expr_nodes_gen PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ yql-public-udf
+)
+target_sources(yql-core-expr_nodes_gen PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp
+)
diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt
+++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fac989d417
--- /dev/null
+++ b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-core-extract_predicate)
+target_compile_options(yql-core-extract_predicate PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-extract_predicate PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-services
+)
+target_sources(yql-core-extract_predicate PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp
+)
diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/extract_predicate/CMakeLists.txt
+++ b/ydb/library/yql/core/extract_predicate/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5089900688
--- /dev/null
+++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-extract_predicate-ut)
+target_compile_options(ydb-library-yql-core-extract_predicate-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-core-extract_predicate-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate
+)
+target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-extract_predicate
+ library-cpp-yson
+ yql-core-facade
+ yql-core-services
+ yql-public-udf
+ udf-service-exception_policy
+ yql-core-type_ann
+ yql-core-ut_common
+ yql-providers-config
+ providers-common-mkql
+ providers-common-provider
+ providers-result-provider
+ yt-gateway-file
+ providers-yt-provider
+ yql-sql-pg
+)
+target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/ut/extract_predicate_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-extract_predicate-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-extract_predicate-ut
+ TEST_TARGET
+ ydb-library-yql-core-extract_predicate-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-extract_predicate-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-extract_predicate-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-extract_predicate-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-core-extract_predicate-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-extract_predicate-ut)
diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/facade/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/facade/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b013f0ae8a
--- /dev/null
+++ b/ydb/library/yql/core/facade/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-facade)
+target_compile_options(yql-core-facade PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-facade PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-split
+ library-cpp-random_provider
+ cpp-string_utils-base64
+ cpp-threading-future
+ library-cpp-time_provider
+ library-cpp-yson
+ cpp-yson-node
+ yql-core-extract_predicate
+ yql-core-file_storage
+ yql-core-services
+ core-url_lister-interface
+ core-url_preprocessing-interface
+ yql-core-credentials
+ library-yql-sql
+ yql-utils-log
+ library-yql-core
+ yql-core-type_ann
+ providers-common-config
+ providers-common-proto
+ providers-common-provider
+ providers-common-udf_resolve
+ providers-common-arrow_resolve
+ yql-providers-config
+ providers-result-provider
+)
+target_sources(yql-core-facade PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/facade/yql_facade.cpp
+)
diff --git a/ydb/library/yql/core/facade/CMakeLists.txt b/ydb/library/yql/core/facade/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/facade/CMakeLists.txt
+++ b/ydb/library/yql/core/facade/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..574c5b1c75
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(defs)
+add_subdirectory(download)
+add_subdirectory(http_download)
+add_subdirectory(proto)
+add_subdirectory(ut)
+
+add_library(yql-core-file_storage)
+target_link_libraries(yql-core-file_storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cache
+ cpp-digest-md5
+ cpp-logger-global
+ cpp-threading-future
+ cpp-protobuf-util
+ library-cpp-uri
+ core-file_storage-proto
+ core-file_storage-defs
+ core-file_storage-download
+ core-file_storage-http_download
+ library-yql-utils
+ yql-utils-log
+ yql-utils-fetch
+)
+target_sources(yql-core-file_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.cpp
+)
diff --git a/ydb/library/yql/core/file_storage/CMakeLists.txt b/ydb/library/yql/core/file_storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be8470792e
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/defs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-file_storage-defs)
+target_link_libraries(core-file_storage-defs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-uri
+)
+target_sources(core-file_storage-defs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/defs/downloader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/defs/provider.cpp
+)
diff --git a/ydb/library/yql/core/file_storage/defs/CMakeLists.txt b/ydb/library/yql/core/file_storage/defs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/defs/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/defs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/download/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/download/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3787f95f28
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/download/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-file_storage-download)
+target_link_libraries(core-file_storage-download PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-file_storage-proto
+ cpp-protobuf-util
+)
+target_sources(core-file_storage-download PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/download/download_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/download/download_stream.cpp
+)
diff --git a/ydb/library/yql/core/file_storage/download/CMakeLists.txt b/ydb/library/yql/core/file_storage/download/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/download/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/download/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..914fca536f
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/http_download/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+
+add_library(core-file_storage-http_download)
+target_link_libraries(core-file_storage-http_download PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-file_storage-defs
+ core-file_storage-download
+ core-file_storage-proto
+ file_storage-http_download-proto
+ yql-utils-fetch
+ yql-utils-log
+ library-yql-utils
+ cpp-digest-md5
+ cpp-http-misc
+)
+target_sources(core-file_storage-http_download PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/http_download.cpp
+)
diff --git a/ydb/library/yql/core/file_storage/http_download/CMakeLists.txt b/ydb/library/yql/core/file_storage/http_download/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/http_download/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/http_download/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a162bb7e14
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(file_storage-http_download-proto)
+target_link_libraries(file_storage-http_download-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(file_storage-http_download-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto
+)
+target_proto_addincls(file_storage-http_download-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(file_storage-http_download-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2f9785282f
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-file_storage-proto)
+target_link_libraries(core-file_storage-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(core-file_storage-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto
+)
+target_proto_addincls(core-file_storage-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-file_storage-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/proto/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..841ea954e0
--- /dev/null
+++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-file_storage-ut)
+target_include_directories(ydb-library-yql-core-file_storage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage
+)
+target_link_libraries(ydb-library-yql-core-file_storage-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-file_storage
+ cpp-http-server
+ cpp-threading-future
+ cpp-deprecated-atomic
+ yql-utils-test_http_server
+)
+target_link_options(ydb-library-yql-core-file_storage-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-file_storage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-file_storage-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-file_storage-ut
+ TEST_TARGET
+ ydb-library-yql-core-file_storage-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-file_storage-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-file_storage-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-core-file_storage-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-file_storage-ut)
diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/file_storage/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/issue/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/issue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5f3635f372
--- /dev/null
+++ b/ydb/library/yql/core/issue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,49 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(yql-core-issue)
+target_link_libraries(yql-core-issue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ contrib-libs-protobuf
+ yql-public-issue
+ core-issue-protos
+)
+target_sources(yql-core-issue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue.cpp
+)
+
+add_global_library_for(yql-core-issue.global yql-core-issue)
+target_link_libraries(yql-core-issue.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ contrib-libs-protobuf
+ yql-public-issue
+ core-issue-protos
+)
+target_sources(yql-core-issue.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/6939e1a0697a96c4e354038ff01108b2.cpp
+)
+resources(yql-core-issue.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/6939e1a0697a96c4e354038ff01108b2.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue.txt
+ KEYS
+ yql_issue.txt
+)
diff --git a/ydb/library/yql/core/issue/CMakeLists.txt b/ydb/library/yql/core/issue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/issue/CMakeLists.txt
+++ b/ydb/library/yql/core/issue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1cc572225f
--- /dev/null
+++ b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-issue-protos)
+target_link_libraries(core-issue-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-issue-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(core-issue-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto
+)
+target_proto_addincls(core-issue-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-issue-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.txt b/ydb/library/yql/core/issue/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/issue/protos/CMakeLists.txt
+++ b/ydb/library/yql/core/issue/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..69d0a2b9e4
--- /dev/null
+++ b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-issue-ut)
+target_include_directories(ydb-library-yql-core-issue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue
+)
+target_link_libraries(ydb-library-yql-core-issue-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-issue
+)
+target_link_options(ydb-library-yql-core-issue-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-issue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-issue-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-issue-ut
+ TEST_TARGET
+ ydb-library-yql-core-issue-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-issue-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-issue-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-issue-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-library-yql-core-issue-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-issue-ut)
diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.txt b/ydb/library/yql/core/issue/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/issue/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/issue/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..294ed16d9b
--- /dev/null
+++ b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-peephole_opt)
+target_compile_options(yql-core-peephole_opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-peephole_opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-core-common_opt
+ yql-core-type_ann
+)
+target_sources(yql-core-peephole_opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
+)
diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/peephole_opt/CMakeLists.txt
+++ b/ydb/library/yql/core/peephole_opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/progress_merger/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/progress_merger/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e9b4c5217
--- /dev/null
+++ b/ydb/library/yql/core/progress_merger/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-progress_merger)
+target_link_libraries(yql-core-progress_merger PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+)
+target_sources(yql-core-progress_merger PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/progress_merger/progress_merger.cpp
+)
diff --git a/ydb/library/yql/core/progress_merger/CMakeLists.txt b/ydb/library/yql/core/progress_merger/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/progress_merger/CMakeLists.txt
+++ b/ydb/library/yql/core/progress_merger/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6d3aac4b30
--- /dev/null
+++ b/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mounts)
+
+add_library(yql-core-services)
+target_compile_options(yql-core-services PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-services PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-base64
+ library-cpp-yson
+ yql-ast-serialize
+ library-yql-minikql
+ library-yql-sql
+ yql-utils-log
+ library-yql-core
+ yql-core-common_opt
+ yql-core-peephole_opt
+ yql-core-type_ann
+ providers-common-codec
+ providers-common-mkql
+ providers-common-provider
+ common-schema-expr
+ providers-result-expr_nodes
+)
+target_sources(yql-core-services PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.cpp
+)
diff --git a/ydb/library/yql/core/services/CMakeLists.txt b/ydb/library/yql/core/services/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/services/CMakeLists.txt
+++ b/ydb/library/yql/core/services/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..21c6fedd14
--- /dev/null
+++ b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(core-services-mounts)
+target_compile_options(core-services-mounts PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-services-mounts PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-core-user_data
+ library-yql-core
+)
+target_sources(core-services-mounts PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp
+)
+
+add_global_library_for(core-services-mounts.global core-services-mounts)
+target_compile_options(core-services-mounts.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-services-mounts.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-core-user_data
+ library-yql-core
+)
+target_sources(core-services-mounts.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/services/mounts/bee1a30d03545744c170685330eaf0c3.cpp
+)
+resources(core-services-mounts.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/core/services/mounts/bee1a30d03545744c170685330eaf0c3.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/mount/lib/yql/aggregate.yql
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/mount/lib/yql/window.yql
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/mount/lib/yql/id.yql
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/mount/lib/yql/sqr.yql
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/mount/lib/yql/core.yql
+ KEYS
+ /lib/yql/aggregate.yql
+ /lib/yql/window.yql
+ /lib/yql/id.yql
+ /lib/yql/sqr.yql
+ /lib/yql/core.yql
+)
diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.txt b/ydb/library/yql/core/services/mounts/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/services/mounts/CMakeLists.txt
+++ b/ydb/library/yql/core/services/mounts/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e222b22bb9
--- /dev/null
+++ b/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(storage)
+add_subdirectory(ut)
+
+add_library(yql-core-spilling)
+target_compile_options(yql-core-spilling PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(yql-core-spilling PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-library-binary_json
+ library-yql-utils
+ yql-utils-log
+ core-spilling-storage
+ yql-minikql-codegen
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+)
+target_sources(yql-core-spilling PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp
+)
diff --git a/ydb/library/yql/core/spilling/CMakeLists.txt b/ydb/library/yql/core/spilling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/spilling/CMakeLists.txt
+++ b/ydb/library/yql/core/spilling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cd28502e3b
--- /dev/null
+++ b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(file_storage)
+add_subdirectory(ut)
+
+add_library(core-spilling-storage)
+target_compile_options(core-spilling-storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(core-spilling-storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ spilling-storage-file_storage
+ yql-minikql-codegen
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+)
+target_sources(core-spilling-storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp
+)
diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/spilling/storage/CMakeLists.txt
+++ b/ydb/library/yql/core/spilling/storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9028583a24
--- /dev/null
+++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(spilling-storage-file_storage)
+target_compile_options(spilling-storage-file_storage PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(spilling-storage-file_storage PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-log
+ yql-minikql-codegen
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+)
+target_sources(spilling-storage-file_storage PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp
+)
diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt
+++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38f8aecb24
--- /dev/null
+++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-spilling-storage-ut)
+target_compile_options(ydb-library-yql-core-spilling-storage-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-core-spilling-storage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage
+)
+target_link_libraries(ydb-library-yql-core-spilling-storage-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ core-spilling-storage
+ yql-utils-log
+)
+target_link_options(ydb-library-yql-core-spilling-storage-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-spilling-storage-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/ut/storage_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-spilling-storage-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-spilling-storage-ut
+ TEST_TARGET
+ ydb-library-yql-core-spilling-storage-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-storage-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-storage-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-storage-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-core-spilling-storage-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-spilling-storage-ut)
diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7f9912502
--- /dev/null
+++ b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-spilling-ut)
+target_compile_options(ydb-library-yql-core-spilling-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-core-spilling-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling
+)
+target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-spilling
+ yql-public-udf
+ udf-service-exception_policy
+)
+target_link_options(ydb-library-yql-core-spilling-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-spilling-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-spilling-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-spilling-ut
+ TEST_TARGET
+ ydb-library-yql-core-spilling-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-spilling-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-core-spilling-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-spilling-ut)
diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/spilling/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/spilling/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d0fdac0e6
--- /dev/null
+++ b/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-core-sql_types)
+target_link_libraries(yql-core-sql_types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-core-sql_types PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp
+)
+generate_enum_serilization(yql-core-sql_types
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/sql_types/match_recognize.h
+)
diff --git a/ydb/library/yql/core/sql_types/CMakeLists.txt b/ydb/library/yql/core/sql_types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/sql_types/CMakeLists.txt
+++ b/ydb/library/yql/core/sql_types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9728ef45fd
--- /dev/null
+++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-sql_types-ut)
+target_include_directories(ydb-library-yql-core-sql_types-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types
+)
+target_link_libraries(ydb-library-yql-core-sql_types-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-core-sql_types
+)
+target_link_options(ydb-library-yql-core-sql_types-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-core-sql_types-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-sql_types-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-sql_types-ut
+ TEST_TARGET
+ ydb-library-yql-core-sql_types-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-sql_types-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-sql_types-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-core-sql_types-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-sql_types-ut)
diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/sql_types/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..53f3b17275
--- /dev/null
+++ b/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-type_ann)
+target_compile_options(yql-core-type_ann PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-type_ann PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-minikql
+ library-yql-utils
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-issue
+ core-issue-protos
+ yql-core-sql_types
+ common-schema-expr
+ yql-parser-pg_catalog
+ parser-pg_wrapper-interface
+)
+target_sources(yql-core-type_ann PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp
+)
diff --git a/ydb/library/yql/core/type_ann/CMakeLists.txt b/ydb/library/yql/core/type_ann/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/type_ann/CMakeLists.txt
+++ b/ydb/library/yql/core/type_ann/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/url_lister/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/url_lister/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54bc4ee452
--- /dev/null
+++ b/ydb/library/yql/core/url_lister/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+
+add_library(yql-core-url_lister)
+target_link_libraries(yql-core-url_lister PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ core-url_lister-interface
+ yql-utils-fetch
+)
+target_sources(yql-core-url_lister PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_lister/url_lister_manager.cpp
+)
diff --git a/ydb/library/yql/core/url_lister/CMakeLists.txt b/ydb/library/yql/core/url_lister/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/url_lister/CMakeLists.txt
+++ b/ydb/library/yql/core/url_lister/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f5f2f362a
--- /dev/null
+++ b/ydb/library/yql/core/url_lister/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-url_lister-interface)
+target_link_libraries(core-url_lister-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-uri
+ cpp-yson-node
+ yql-core-credentials
+ core-url_preprocessing-interface
+)
+target_sources(core-url_lister-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_lister/interface/url_lister.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_lister/interface/url_lister_manager.cpp
+)
diff --git a/ydb/library/yql/core/url_lister/interface/CMakeLists.txt b/ydb/library/yql/core/url_lister/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/url_lister/interface/CMakeLists.txt
+++ b/ydb/library/yql/core/url_lister/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f88c1b8fef
--- /dev/null
+++ b/ydb/library/yql/core/url_preprocessing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+
+add_library(yql-core-url_preprocessing)
+target_link_libraries(yql-core-url_preprocessing PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-url_preprocessing-interface
+ providers-common-proto
+ yql-utils-log
+ cpp-regex-pcre
+)
+target_sources(yql-core-url_preprocessing PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_preprocessing/url_mapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_preprocessing/pattern_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_preprocessing/url_preprocessing.cpp
+)
diff --git a/ydb/library/yql/core/url_preprocessing/CMakeLists.txt b/ydb/library/yql/core/url_preprocessing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/url_preprocessing/CMakeLists.txt
+++ b/ydb/library/yql/core/url_preprocessing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e1f0a03632
--- /dev/null
+++ b/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-url_preprocessing-interface)
+target_link_libraries(core-url_preprocessing-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(core-url_preprocessing-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/url_preprocessing/interface/url_preprocessing.cpp
+)
diff --git a/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt b/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt
+++ b/ydb/library/yql/core/url_preprocessing/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/user_data/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/user_data/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..061ae0bfad
--- /dev/null
+++ b/ydb/library/yql/core/user_data/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-core-user_data)
+target_link_libraries(yql-core-user_data PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-core-user_data PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/user_data/yql_user_data.cpp
+)
+generate_enum_serilization(yql-core-user_data
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/user_data/yql_user_data.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/user_data/yql_user_data.h
+)
diff --git a/ydb/library/yql/core/user_data/CMakeLists.txt b/ydb/library/yql/core/user_data/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/user_data/CMakeLists.txt
+++ b/ydb/library/yql/core/user_data/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cd9565c102
--- /dev/null
+++ b/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,99 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-core-ut)
+target_compile_options(ydb-library-yql-core-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core
+)
+target_link_libraries(ydb-library-yql-core-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yql-core
+ library-cpp-yson
+ library-yql-ast
+ yql-core-facade
+ yql-core-services
+ yql-public-udf
+ udf-service-exception_policy
+ yql-core-type_ann
+ yql-core-ut_common
+ providers-common-provider
+ common-schema-parser
+ providers-result-provider
+ yt-gateway-file
+ providers-yt-provider
+ yql-sql-pg
+)
+target_link_options(ydb-library-yql-core-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_csv_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_execution_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_expr_constraint_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_expr_discover_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_expr_optimize_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_expr_providers_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_expr_type_annotation_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_library_compiler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_opt_utils_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_udf_index_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-core-ut
+ TEST_TARGET
+ ydb-library-yql-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-core-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-core-ut)
diff --git a/ydb/library/yql/core/ut/CMakeLists.txt b/ydb/library/yql/core/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/ut/CMakeLists.txt
+++ b/ydb/library/yql/core/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ffc0edcc6
--- /dev/null
+++ b/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-core-ut_common)
+target_compile_options(yql-core-ut_common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-core-ut_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-core-expr_nodes
+ yql-dq-proto
+ yql-dq-expr_nodes
+)
+target_sources(yql-core-ut_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp
+)
diff --git a/ydb/library/yql/core/ut_common/CMakeLists.txt b/ydb/library/yql/core/ut_common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/core/ut_common/CMakeLists.txt
+++ b/ydb/library/yql/core/ut_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9017d23dd4
--- /dev/null
+++ b/ydb/library/yql/dq/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(compute)
+add_subdirectory(protos)
+add_subdirectory(spilling)
+add_subdirectory(task_runner)
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+
+add_library(yql-dq-actors)
+set_property(TARGET yql-dq-actors PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(yql-dq-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ dq-actors-protos
+)
+target_sources(yql-dq-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/dq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/dq_events_ids.cpp
+)
+target_proto_plugin(yql-dq-actors
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/yql/dq/actors/CMakeLists.txt b/ydb/library/yql/dq/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e9b39cdfbe
--- /dev/null
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(dq-actors-compute)
+target_compile_options(dq-actors-compute PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-actors-compute PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ actors-wilson-protos
+ ydb-library-services
+ library-ydb_issue-proto
+ yql-dq-common
+ yql-dq-proto
+ yql-dq-runtime
+ yql-dq-tasks
+ dq-actors-spilling
+ minikql-comp_nodes-llvm
+ yql-public-issue
+ core-quoter-public
+)
+target_sources(dq-actors-compute PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_checkpoints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_watermarks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_issues_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/retry_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.cpp
+)
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/compute/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..417e0022ac
--- /dev/null
+++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-dq-actors-compute-ut)
+target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute
+)
+target_link_libraries(ydb-library-yql-dq-actors-compute-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ dq-actors-compute
+ cpp-testing-unittest
+ yql-dq-actors
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-dq-actors-compute-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-dq-actors-compute-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-dq-actors-compute-ut
+ TEST_TARGET
+ ydb-library-yql-dq-actors-compute-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-actors-compute-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-actors-compute-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-dq-actors-compute-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-dq-actors-compute-ut)
diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d2723d4773
--- /dev/null
+++ b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(dq-actors-protos)
+target_link_libraries(dq-actors-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ api-protos
+ core-issue-protos
+ yql-dq-proto
+ public-issue-protos
+ yql-public-types
+ contrib-libs-protobuf
+)
+target_proto_messages(dq-actors-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_events.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto
+)
+target_proto_addincls(dq-actors-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(dq-actors-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/protos/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c8ffc401e
--- /dev/null
+++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(dq-actors-spilling)
+target_compile_options(dq-actors-spilling PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-actors-spilling PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-services
+ yql-dq-common
+ yql-dq-actors
+ yql-dq-runtime
+ library-yql-utils
+ cpp-actors-core
+ cpp-actors-util
+ cpp-monlib-dynamic_counters
+ monlib-service-pages
+)
+target_sources(dq-actors-spilling PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling.cpp
+)
diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/spilling/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..918dc5b02c
--- /dev/null
+++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-dq-actors-spilling-ut)
+target_compile_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-dq-actors-spilling-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling
+)
+target_link_libraries(ydb-library-yql-dq-actors-spilling-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ dq-actors-spilling
+ cpp-testing-unittest
+ cpp-actors-testlib
+ ydb-library-services
+ yql-sql-pg_dummy
+ udf-service-exception_policy
+)
+target_link_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-dq-actors-spilling-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-dq-actors-spilling-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-dq-actors-spilling-ut
+ TEST_TARGET
+ ydb-library-yql-dq-actors-spilling-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-actors-spilling-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-actors-spilling-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-actors-spilling-ut
+ PROPERTY
+ TIMEOUT
+ 180
+)
+target_allocator(ydb-library-yql-dq-actors-spilling-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-dq-actors-spilling-ut)
diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..662c32c018
--- /dev/null
+++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-actors-task_runner)
+target_compile_options(dq-actors-task_runner PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-actors-task_runner PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ yql-dq-runtime
+ yql-dq-common
+ yql-dq-proto
+ minikql-computation-llvm
+ yql-utils-actors
+ ydb-library-services
+)
+target_sources(dq-actors-task_runner PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/task_runner/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/task_runner/task_runner_actor_local.cpp
+)
diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.txt
+++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54e9c53743
--- /dev/null
+++ b/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-dq-common)
+target_link_libraries(yql-dq-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-util
+ library-mkql_proto-protos
+ yql-dq-proto
+ library-yql-utils
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-dq-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp
+)
+generate_enum_serilization(yql-dq-common
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.h
+ INCLUDE_HEADERS
+ ydb/library/yql/dq/common/dq_common.h
+)
diff --git a/ydb/library/yql/dq/common/CMakeLists.txt b/ydb/library/yql/dq/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/common/CMakeLists.txt
+++ b/ydb/library/yql/dq/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..320fe10b2e
--- /dev/null
+++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-dq-comp_nodes)
+target_compile_options(yql-dq-comp_nodes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-comp_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ dq-actors-compute
+ minikql-computation-llvm
+ library-yql-utils
+)
+target_sources(yql-dq-comp_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/comp_nodes/yql_common_dq_factory.cpp
+)
diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/comp_nodes/CMakeLists.txt
+++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d81b9b9d69
--- /dev/null
+++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(yql-dq-expr_nodes STATIC)
+set_property(TARGET yql-dq-expr_nodes PROPERTY
+ LINKER_LANGUAGE CXX
+)
+target_link_libraries(yql-dq-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+)
+target_sources(yql-dq-expr_nodes PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/integration/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/integration/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6ff4d7364c
--- /dev/null
+++ b/ydb/library/yql/dq/integration/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(transform)
+
+add_library(yql-dq-integration)
+target_compile_options(yql-dq-integration PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-integration PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-yson
+ library-yql-ast
+ library-yql-core
+ yql-dq-tasks
+)
+target_sources(yql-dq-integration PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/integration/yql_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/integration/yql_dq_optimization.cpp
+)
diff --git a/ydb/library/yql/dq/integration/CMakeLists.txt b/ydb/library/yql/dq/integration/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/integration/CMakeLists.txt
+++ b/ydb/library/yql/dq/integration/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/integration/transform/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/integration/transform/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cafad8055c
--- /dev/null
+++ b/ydb/library/yql/dq/integration/transform/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-integration-transform)
+target_compile_options(dq-integration-transform PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-integration-transform PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+)
+target_sources(dq-integration-transform PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/integration/transform/yql_dq_task_transform.cpp
+)
diff --git a/ydb/library/yql/dq/integration/transform/CMakeLists.txt b/ydb/library/yql/dq/integration/transform/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/integration/transform/CMakeLists.txt
+++ b/ydb/library/yql/dq/integration/transform/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..288c939350
--- /dev/null
+++ b/ydb/library/yql/dq/opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-dq-opt)
+target_compile_options(yql-dq-opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-core
+ yql-dq-common
+ yql-dq-expr_nodes
+ yql-dq-integration
+ yql-dq-proto
+ yql-dq-type_ann
+ providers-dq-expr_nodes
+)
+target_sources(yql-dq-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_build.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_peephole.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_phy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_stat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_stat_transformer_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_join_cost_based_generic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt_predicate_selectivity.cpp
+)
diff --git a/ydb/library/yql/dq/opt/CMakeLists.txt b/ydb/library/yql/dq/opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/opt/CMakeLists.txt
+++ b/ydb/library/yql/dq/opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a7f35da12
--- /dev/null
+++ b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-dq-opt-ut)
+target_compile_options(ydb-library-yql-dq-opt-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-dq-opt-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt
+)
+target_link_libraries(ydb-library-yql-dq-opt-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-dq-opt
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ udf-service-stub
+)
+target_link_options(ydb-library-yql-dq-opt-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-dq-opt-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_cbo_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-dq-opt-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-dq-opt-ut
+ TEST_TARGET
+ ydb-library-yql-dq-opt-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-opt-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-opt-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-dq-opt-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-dq-opt-ut)
diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/opt/ut/CMakeLists.txt
+++ b/ydb/library/yql/dq/opt/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..26eb430d3d
--- /dev/null
+++ b/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yql-dq-proto)
+target_link_libraries(yql-dq-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(yql-dq-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto
+)
+target_proto_addincls(yql-dq-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yql-dq-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/dq/proto/CMakeLists.txt b/ydb/library/yql/dq/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/proto/CMakeLists.txt
+++ b/ydb/library/yql/dq/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ddcaa3f12b
--- /dev/null
+++ b/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-dq-runtime)
+target_compile_options(yql-dq-runtime PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-runtime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-library-yverify_stream
+ ydb-library-mkql_proto
+ minikql-comp_nodes-llvm
+ parser-pg_wrapper-interface
+ yql-public-udf
+ dq-actors-protos
+ yql-dq-common
+ yql-dq-expr_nodes
+ yql-dq-type_ann
+ common-schema-mkql
+ cpp-actors-util
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-dq-runtime PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_async_input.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_async_output.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_columns_resolve.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_compute.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_input_channel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_input_producer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_output_channel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_output_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_tasks_runner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_transport.cpp
+)
+generate_enum_serilization(yql-dq-runtime
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_tasks_runner.h
+ INCLUDE_HEADERS
+ ydb/library/yql/dq/runtime/dq_tasks_runner.h
+)
diff --git a/ydb/library/yql/dq/runtime/CMakeLists.txt b/ydb/library/yql/dq/runtime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/runtime/CMakeLists.txt
+++ b/ydb/library/yql/dq/runtime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ae3fff8b89
--- /dev/null
+++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-dq-runtime-ut)
+target_compile_options(ydb-library-yql-dq-runtime-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-dq-runtime-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime
+)
+target_link_libraries(ydb-library-yql-dq-runtime-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-dq-runtime
+ cpp-testing-unittest
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-dq-runtime-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-dq-runtime-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_output_channel_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/ut/ut_helper.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-dq-runtime-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-dq-runtime-ut
+ TEST_TARGET
+ ydb-library-yql-dq-runtime-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-runtime-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-runtime-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-dq-runtime-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-dq-runtime-ut)
diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/runtime/ut/CMakeLists.txt
+++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/state/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/state/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..47acf41667
--- /dev/null
+++ b/ydb/library/yql/dq/state/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-dq-state)
+target_link_libraries(yql-dq-state PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+ core-issue-protos
+ yql-dq-proto
+ providers-pq-proto
+ providers-pq-task_meta
+)
+target_sources(yql-dq-state PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/dq_state_load_plan.cpp
+)
diff --git a/ydb/library/yql/dq/state/CMakeLists.txt b/ydb/library/yql/dq/state/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/state/CMakeLists.txt
+++ b/ydb/library/yql/dq/state/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1e72b3b74f
--- /dev/null
+++ b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-dq-state-ut)
+target_compile_options(ydb-library-yql-dq-state-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-dq-state-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state
+)
+target_link_libraries(ydb-library-yql-dq-state-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-dq-state
+)
+target_link_options(ydb-library-yql-dq-state-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-dq-state-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/ut/dq_state_load_plan_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-dq-state-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-dq-state-ut
+ TEST_TARGET
+ ydb-library-yql-dq-state-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-state-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-dq-state-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-dq-state-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-dq-state-ut)
diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.txt b/ydb/library/yql/dq/state/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/state/ut/CMakeLists.txt
+++ b/ydb/library/yql/dq/state/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/tasks/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/tasks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d9c7a2956f
--- /dev/null
+++ b/ydb/library/yql/dq/tasks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-dq-tasks)
+target_compile_options(yql-dq-tasks PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-tasks PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-dq-expr_nodes
+ yql-dq-proto
+ yql-dq-type_ann
+ library-yql-ast
+)
+target_sources(yql-dq-tasks PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/tasks/dq_task_program.cpp
+)
diff --git a/ydb/library/yql/dq/tasks/CMakeLists.txt b/ydb/library/yql/dq/tasks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/tasks/CMakeLists.txt
+++ b/ydb/library/yql/dq/tasks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7de1bdf0ea
--- /dev/null
+++ b/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-dq-transform)
+target_compile_options(yql-dq-transform PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-transform PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ dq-integration-transform
+ minikql-computation-llvm
+ library-yql-utils
+)
+target_sources(yql-dq-transform PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/transform/yql_common_dq_transform.cpp
+)
diff --git a/ydb/library/yql/dq/transform/CMakeLists.txt b/ydb/library/yql/dq/transform/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/transform/CMakeLists.txt
+++ b/ydb/library/yql/dq/transform/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/dq/type_ann/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/type_ann/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ab3e6db14
--- /dev/null
+++ b/ydb/library/yql/dq/type_ann/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-dq-type_ann)
+target_compile_options(yql-dq-type_ann PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-dq-type_ann PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-proto
+ providers-common-provider
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-dq-type_ann PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/type_ann/dq_type_ann.cpp
+)
+generate_enum_serilization(yql-dq-type_ann
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/type_ann/dq_type_ann.h
+ INCLUDE_HEADERS
+ ydb/library/yql/dq/type_ann/dq_type_ann.h
+)
diff --git a/ydb/library/yql/dq/type_ann/CMakeLists.txt b/ydb/library/yql/dq/type_ann/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/dq/type_ann/CMakeLists.txt
+++ b/ydb/library/yql/dq/type_ann/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7036faa1e
--- /dev/null
+++ b/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arrow)
+add_subdirectory(benchmark)
+add_subdirectory(codegen)
+add_subdirectory(comp_nodes)
+add_subdirectory(computation)
+add_subdirectory(datetime)
+add_subdirectory(dom)
+add_subdirectory(invoke_builtins)
+add_subdirectory(jsonpath)
+add_subdirectory(perf)
+add_subdirectory(protobuf_udf)
+add_subdirectory(ut)
+
+add_library(library-yql-minikql)
+target_compile_options(library-yql-minikql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(library-yql-minikql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ libs-cctz-tzdata
+ cpp-actors-util
+ cpp-deprecated-enum_codegen
+ library-cpp-enumbitset
+ cpp-monlib-dynamic_counters
+ library-cpp-packedtypes
+ library-cpp-resource
+ library-cpp-yson
+ ydb-library-binary_json
+ ydb-library-dynumber
+ yql-minikql-dom
+ yql-parser-pg_catalog
+ parser-pg_wrapper-interface
+ yql-public-udf
+ public-udf-tz
+ library-yql-utils
+ yql-core-sql_types
+ ydb-library-uuid
+ public-lib-scheme_types
+)
+target_sources(library-yql-minikql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_stats_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.cpp
+)
diff --git a/ydb/library/yql/minikql/CMakeLists.txt b/ydb/library/yql/minikql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/CMakeLists.txt
+++ b/ydb/library/yql/minikql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/arrow/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b40197fd49
--- /dev/null
+++ b/ydb/library/yql/minikql/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-minikql-arrow)
+target_compile_options(yql-minikql-arrow PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-minikql-arrow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ library-yql-minikql
+ public-udf-arrow
+)
+target_sources(yql-minikql-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/arrow_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_memory_pool.cpp
+)
diff --git a/ydb/library/yql/minikql/arrow/CMakeLists.txt b/ydb/library/yql/minikql/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/arrow/CMakeLists.txt
+++ b/ydb/library/yql/minikql/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b3f2b2ff9
--- /dev/null
+++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-arrow-ut)
+target_compile_options(ydb-library-yql-minikql-arrow-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-arrow-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow
+)
+target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-minikql-arrow
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+ minikql-invoke_builtins-llvm
+)
+target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-arrow-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-arrow-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-arrow-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-arrow-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-arrow-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-arrow-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-minikql-arrow-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-arrow-ut)
diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e35d174b82
--- /dev/null
+++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pack_num)
+target_link_libraries(pack_num PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ testing-benchmark-main
+ library-yql-minikql
+ library-cpp-packedtypes
+)
+target_link_options(pack_num PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(pack_num PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack_num_bench.cpp
+)
+target_allocator(pack_num
+ library-cpp-balloc
+)
+vcs_info(pack_num)
diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt
+++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..377a730d28
--- /dev/null
+++ b/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-minikql-codegen)
+target_compile_options(yql-minikql-codegen PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(yql-minikql-codegen PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-cxxsupp-builtins
+ contrib-libs-re2
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ Target-X86-Disassembler
+ lib-Transforms-IPO
+ lib-Transforms-ObjCARC
+)
+target_sources(yql-minikql-codegen PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp
+)
diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.txt b/ydb/library/yql/minikql/codegen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/codegen/CMakeLists.txt
+++ b/ydb/library/yql/minikql/codegen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c782a86aca
--- /dev/null
+++ b/ydb/library/yql/minikql/codegen/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,167 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(ydb-library-yql-minikql-codegen-ut)
+target_compile_options(ydb-library-yql-minikql-codegen-ut PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-library-yql-minikql-codegen-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen
+)
+target_link_libraries(ydb-library-yql-minikql-codegen-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-minikql-codegen
+ library-cpp-resource
+)
+target_link_options(ydb-library-yql-minikql-codegen-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-codegen-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/925fda4cf8bf8097eb12d1681cec1fd0.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-codegen-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-codegen-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-codegen-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-codegen-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-codegen-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_optimized.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_merged.bc
+ COMMAND
+ ${LLVMOPT}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_merged.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_optimized.bc
+ -O2
+ -globalopt
+ -globaldce
+ -internalize
+ -internalize-public-api-list=fib#sum_sqr#sum_sqr2#sum_sqr_128#sum_sqr_128_ir#str_size
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_merged.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/fib.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr2.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/str.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll.bc
+ COMMAND
+ ${LLVMLINK}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/fib.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr2.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/str.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_merged.bc
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll.bc
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll
+ COMMAND
+ ${LLVMAS}
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.ll.bc
+)
+llvm_compile_cxx(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/fib.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/fib.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr2.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/sum_sqr2.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/str.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/str.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/128_bit.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+resources(ydb-library-yql-minikql-codegen-ut
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/925fda4cf8bf8097eb12d1681cec1fd0.cpp
+ INPUTS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/ut/Funcs_optimized.bc
+ KEYS
+ /llvm_bc/Funcs
+)
+target_allocator(ydb-library-yql-minikql-codegen-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-codegen-ut)
diff --git a/ydb/library/yql/minikql/codegen/ut/CMakeLists.txt b/ydb/library/yql/minikql/codegen/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/codegen/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/codegen/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..579b8f9818
--- /dev/null
+++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,161 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-comp_nodes-llvm)
+target_compile_options(minikql-comp_nodes-llvm PRIVATE
+ -mprfchw
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(minikql-comp_nodes-llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-minikql-codegen
+ minikql-invoke_builtins-llvm
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+ libs-apache-arrow
+ ydb-library-binary_json
+ library-yql-minikql
+ yql-minikql-arrow
+ public-udf-arrow
+ parser-pg_wrapper-interface
+ library-yql-utils
+ cpp-actors-core
+)
+target_sources(minikql-comp_nodes-llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp
+)
diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7b6d08710e
--- /dev/null
+++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,157 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-comp_nodes-no_llvm)
+target_compile_options(minikql-comp_nodes-no_llvm PRIVATE
+ -mprfchw
+ -DMKQL_DISABLE_CODEGEN
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(minikql-comp_nodes-no_llvm PUBLIC
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub
+)
+target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-library-binary_json
+ library-yql-minikql
+ yql-minikql-arrow
+ public-udf-arrow
+ parser-pg_wrapper-interface
+ library-yql-utils
+ cpp-actors-core
+ minikql-invoke_builtins-no_llvm
+)
+target_sources(minikql-comp_nodes-no_llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp
+)
diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14946a9072
--- /dev/null
+++ b/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,129 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-comp_nodes-ut)
+target_compile_options(ydb-library-yql-minikql-comp_nodes-ut PRIVATE
+ -mprfchw
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-comp_nodes-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/llvm
+)
+target_link_libraries(ydb-library-yql-minikql-comp_nodes-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ public-udf-arrow
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-minikql-comp_nodes-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-comp_nodes-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_test_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_bit_utils_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_block_compress_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_block_skiptake_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_block_top_sort_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_blocks_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_combine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_condense_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_decimal_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_chain_map_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_chopper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_filters_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_flatmap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_fromstring_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_multihopping_saveload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_multihopping_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_multimap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_fold_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_heap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_compare_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_computation_node_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_group_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_dict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_isa_detection_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_join_dict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_map_join_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_match_recognize_matched_vars_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_match_recognize_list_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_match_recognize_nfa_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_safe_circular_buffer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_sort_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_switch_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_time_order_recover_saveload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_todict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_variant_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_chain_map_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_chopper_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_combine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_condense_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_filter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_map_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_nodes_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_stream_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_listfromrange_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_mapnext_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_rh_hash_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-comp_nodes-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-comp_nodes-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-comp_nodes-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-comp_nodes-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-comp_nodes-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-comp_nodes-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-minikql-comp_nodes-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-comp_nodes-ut)
diff --git a/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/comp_nodes/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..364f602ce5
--- /dev/null
+++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-computation-llvm)
+target_compile_options(minikql-computation-llvm PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(minikql-computation-llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-minikql-codegen
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+ libs-apache-arrow
+ cpp-actors-util
+ library-cpp-enumbitset
+ library-cpp-packedtypes
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-yql-minikql
+ yql-minikql-arrow
+ parser-pg_wrapper-interface
+ yql-public-udf
+ library-yql-utils
+ cpp-threading-future
+)
+target_sources(minikql-computation-llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp
+)
diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2f9609b5a2
--- /dev/null
+++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,53 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-computation-no_llvm)
+target_compile_options(minikql-computation-no_llvm PRIVATE
+ -DMKQL_DISABLE_CODEGEN
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(minikql-computation-no_llvm PUBLIC
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub
+)
+target_link_libraries(minikql-computation-no_llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ cpp-actors-util
+ library-cpp-enumbitset
+ library-cpp-packedtypes
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-yql-minikql
+ yql-minikql-arrow
+ parser-pg_wrapper-interface
+ yql-public-udf
+ library-yql-utils
+ cpp-threading-future
+)
+target_sources(minikql-computation-no_llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp
+)
diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..61f2fe7012
--- /dev/null
+++ b/ydb/library/yql/minikql/computation/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-computation-ut)
+target_compile_options(ydb-library-yql-minikql-computation-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-computation-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/llvm
+)
+target_link_libraries(ydb-library-yql-minikql-computation-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ minikql-computation-llvm
+ libs-apache-arrow
+ cpp-threading-local_executor
+ minikql-comp_nodes-llvm
+ yql-parser-pg_wrapper
+ udf-service-exception_policy
+ yql-dq-proto
+)
+target_link_options(ydb-library-yql-minikql-computation-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-computation-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-computation-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-computation-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-computation-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-computation-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-computation-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-computation-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-minikql-computation-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-computation-ut)
diff --git a/ydb/library/yql/minikql/computation/ut/CMakeLists.txt b/ydb/library/yql/minikql/computation/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/computation/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/computation/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..02f6f25956
--- /dev/null
+++ b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-minikql-datetime)
+target_compile_options(yql-minikql-datetime PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-minikql-datetime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-computation-llvm
+)
+target_sources(yql-minikql-datetime PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp
+)
diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.txt b/ydb/library/yql/minikql/datetime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/datetime/CMakeLists.txt
+++ b/ydb/library/yql/minikql/datetime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/dom/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/dom/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ab46c00cd
--- /dev/null
+++ b/ydb/library/yql/minikql/dom/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-minikql-dom)
+target_compile_options(yql-minikql-dom PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(yql-minikql-dom PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-stack_vector
+ library-cpp-json
+ yson_pull
+ yql-public-udf
+ library-yql-utils
+)
+target_sources(yql-minikql-dom PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/json.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/yson.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/make.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/peel.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/hash.cpp
+)
diff --git a/ydb/library/yql/minikql/dom/CMakeLists.txt b/ydb/library/yql/minikql/dom/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/dom/CMakeLists.txt
+++ b/ydb/library/yql/minikql/dom/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9354d5a677
--- /dev/null
+++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-dom-ut)
+target_compile_options(ydb-library-yql-minikql-dom-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-dom-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom
+)
+target_link_libraries(ydb-library-yql-minikql-dom-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-minikql-dom
+ minikql-computation-llvm
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-minikql-dom-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-dom-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/yson_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/json_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-dom-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-dom-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-dom-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-dom-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-dom-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-minikql-dom-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-dom-ut)
diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/minikql/dom/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..751b744122
--- /dev/null
+++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-invoke_builtins-llvm)
+target_compile_options(minikql-invoke_builtins-llvm PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(minikql-invoke_builtins-llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-minikql-codegen
+ minikql-computation-llvm
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+ library-cpp-pop_count
+ ydb-library-binary_json
+ library-yql-minikql
+ yql-minikql-arrow
+ yql-public-udf
+ libs-apache-arrow
+)
+target_sources(minikql-invoke_builtins-llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp
+)
diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cd35db266b
--- /dev/null
+++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(minikql-invoke_builtins-no_llvm)
+target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE
+ -DMKQL_DISABLE_CODEGEN
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub
+)
+target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-pop_count
+ ydb-library-binary_json
+ library-yql-minikql
+ yql-minikql-arrow
+ yql-public-udf
+ libs-apache-arrow
+ minikql-computation-no_llvm
+)
+target_sources(minikql-invoke_builtins-no_llvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp
+)
diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt
+++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e4d6bb1b5
--- /dev/null
+++ b/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-invoke_builtins-ut)
+target_compile_options(ydb-library-yql-minikql-invoke_builtins-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-invoke_builtins-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm
+)
+target_link_libraries(ydb-library-yql-minikql-invoke_builtins-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ minikql-invoke_builtins-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-minikql-invoke_builtins-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-invoke_builtins-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-invoke_builtins-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-invoke_builtins-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-invoke_builtins-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-invoke_builtins-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-invoke_builtins-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-invoke_builtins-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-minikql-invoke_builtins-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-invoke_builtins-ut)
diff --git a/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/invoke_builtins/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee595aee99
--- /dev/null
+++ b/ydb/library/yql/minikql/jsonpath/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(benchmark)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-minikql-jsonpath)
+target_compile_options(yql-minikql-jsonpath PRIVATE
+ -DYDB_REWRAPPER_LIB_ID=kRe2
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(yql-minikql-jsonpath PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-double-conversion
+ library-cpp-json
+ library-rewrapper-re2
+ ydb-library-rewrapper
+ ydb-library-binary_json
+ yql-minikql-dom
+ yql-public-issue
+ yql-public-udf
+ library-yql-ast
+ library-yql-utils
+ core-issue-protos
+ yql-parser-proto_ast
+ proto_ast-gen-jsonpath
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-minikql-jsonpath PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ast_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ast_nodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/binary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/jsonpath.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/parse_double.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/type_check.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/value.cpp
+)
+generate_enum_serilization(yql-minikql-jsonpath
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ast_nodes.h
+ INCLUDE_HEADERS
+ ydb/library/yql/minikql/jsonpath/ast_nodes.h
+)
diff --git a/ydb/library/yql/minikql/jsonpath/CMakeLists.txt b/ydb/library/yql/minikql/jsonpath/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/jsonpath/CMakeLists.txt
+++ b/ydb/library/yql/minikql/jsonpath/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..015d905da3
--- /dev/null
+++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(jsonpath-benchmark)
+target_compile_options(jsonpath-benchmark PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(jsonpath-benchmark PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ testing-benchmark-main
+ library-cpp-json
+ yql-minikql-dom
+ minikql-invoke_builtins-llvm
+ yql-minikql-jsonpath
+ yql-public-issue
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(jsonpath-benchmark PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(jsonpath-benchmark PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/benchmark/main.cpp
+)
+target_allocator(jsonpath-benchmark
+ system_allocator
+)
+vcs_info(jsonpath-benchmark)
diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt
+++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9aedea06f4
--- /dev/null
+++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-jsonpath-ut)
+target_compile_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-jsonpath-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath
+)
+target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-minikql-jsonpath
+ library-cpp-json
+ ydb-library-binary_json
+ library-yql-minikql
+ minikql-computation-llvm
+ yql-minikql-dom
+ minikql-invoke_builtins-llvm
+ udf-service-exception_policy
+ core-issue-protos
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-jsonpath-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/common_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/examples_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/lax_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/strict_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/test_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/lib_id_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-jsonpath-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-jsonpath-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-jsonpath-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-jsonpath-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-jsonpath-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-minikql-jsonpath-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-jsonpath-ut)
diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3cf27097e3
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(alloc)
+target_compile_options(alloc PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(alloc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(alloc PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(alloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/alloc/alloc.cpp
+)
+target_allocator(alloc
+ system_allocator
+)
+vcs_info(alloc)
diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/alloc/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e390eb770
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(block_groupby)
+target_compile_options(block_groupby PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(block_groupby PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ yql-minikql-arrow
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+ library-cpp-getopt
+)
+target_link_options(block_groupby PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(block_groupby PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/block_groupby/block_groupby.cpp
+)
+target_allocator(block_groupby
+ system_allocator
+)
+vcs_info(block_groupby)
diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0616be0a2
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(mprefetch)
+target_compile_options(mprefetch PRIVATE
+ -mprfchw
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(mprefetch PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+)
+target_link_options(mprefetch PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(mprefetch PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mprefetch/mprefetch.cpp
+)
+target_allocator(mprefetch
+ system_allocator
+)
+vcs_info(mprefetch)
diff --git a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fede798486
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(mt_param)
+target_compile_options(mt_param PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(mt_param PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(mt_param PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(mt_param PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mt_param/mt_param.cpp
+)
+target_allocator(mt_param
+ system_allocator
+)
+vcs_info(mt_param)
diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d63daebb7
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(packer)
+target_compile_options(packer PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(packer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(packer PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(packer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/packer/packer.cpp
+)
+target_allocator(packer
+ cpp-malloc-jemalloc
+)
+vcs_info(packer)
diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/packer/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3583196ad4
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(param)
+target_compile_options(param PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(param PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(param PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(param PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/param/param.cpp
+)
+target_allocator(param
+ system_allocator
+)
+vcs_info(param)
diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/param/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/param/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54db3d281a
--- /dev/null
+++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(presort)
+target_compile_options(presort PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(presort PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-presort
+ minikql-invoke_builtins-llvm
+ yql-public-udf
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(presort PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(presort PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/presort/presort.cpp
+)
+target_allocator(presort
+ system_allocator
+)
+vcs_info(presort)
diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/perf/presort/CMakeLists.txt
+++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a16f0ca400
--- /dev/null
+++ b/ydb/library/yql/minikql/protobuf_udf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-minikql-protobuf_udf)
+target_compile_options(yql-minikql-protobuf_udf PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(yql-minikql-protobuf_udf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-protobuf-yql
+ yql-public-udf
+ cpp-mapreduce-interface
+ yt_proto-yt-formats
+)
+target_sources(yql-minikql-protobuf_udf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/proto_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/module.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/type_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/value_builder.cpp
+)
diff --git a/ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt b/ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt
+++ b/ydb/library/yql/minikql/protobuf_udf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5157cd4165
--- /dev/null
+++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,105 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(ydb-library-yql-minikql-protobuf_udf-ut)
+target_compile_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf
+)
+target_link_libraries(ydb-library-yql-minikql-protobuf_udf-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-minikql-protobuf_udf
+ yt-lib-schema
+ providers-yt-common
+ yql-parser-pg_wrapper
+ udf-service-exception_policy
+ library-yql-minikql
+ yql-public-udf
+ common-schema-mkql
+ contrib-libs-protobuf
+)
+target_link_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto
+)
+target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-protobuf_udf-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-protobuf_udf-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-protobuf_udf-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-protobuf_udf-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-protobuf_udf-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-minikql-protobuf_udf-ut
+ system_allocator
+)
+target_proto_addincls(ydb-library-yql-minikql-protobuf_udf-ut
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(ydb-library-yql-minikql-protobuf_udf-ut
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(ydb-library-yql-minikql-protobuf_udf-ut)
diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f29860544
--- /dev/null
+++ b/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,93 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-minikql-ut)
+target_compile_options(ydb-library-yql-minikql-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-minikql-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql
+)
+target_link_libraries(ydb-library-yql-minikql-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yql-minikql
+ libs-apache-arrow
+ minikql-invoke_builtins-llvm
+ yql-parser-pg_wrapper
+ udf-service-exception_policy
+)
+target_link_options(ydb-library-yql-minikql-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-minikql-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_stats_registry_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-minikql-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-minikql-ut
+ TEST_TARGET
+ ydb-library-yql-minikql-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-minikql-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-minikql-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-minikql-ut)
diff --git a/ydb/library/yql/minikql/ut/CMakeLists.txt b/ydb/library/yql/minikql/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/minikql/ut/CMakeLists.txt
+++ b/ydb/library/yql/minikql/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..89fc8b0b01
--- /dev/null
+++ b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-parser-lexer_common)
+target_link_libraries(yql-parser-lexer_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+)
+target_sources(yql-parser-lexer_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp
+)
diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/lexer_common/CMakeLists.txt
+++ b/ydb/library/yql/parser/lexer_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f16895e70a
--- /dev/null
+++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-parser-lexer_common-ut)
+target_include_directories(ydb-library-yql-parser-lexer_common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common
+)
+target_link_libraries(ydb-library-yql-parser-lexer_common-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-parser-lexer_common
+ sql-v1-lexer
+)
+target_link_options(ydb-library-yql-parser-lexer_common-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-parser-lexer_common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/hints_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/parse_hints_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-parser-lexer_common-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-parser-lexer_common-ut
+ TEST_TARGET
+ ydb-library-yql-parser-lexer_common-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-lexer_common-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-lexer_common-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-parser-lexer_common-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-parser-lexer_common-ut)
diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt
+++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..91bb11a419
--- /dev/null
+++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,170 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(yql-parser-pg_catalog)
+target_link_libraries(yql-parser-pg_catalog PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-public-issue
+)
+target_sources(yql-parser-pg_catalog PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/catalog.cpp
+)
+
+add_global_library_for(yql-parser-pg_catalog.global yql-parser-pg_catalog)
+target_link_libraries(yql-parser-pg_catalog.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-public-issue
+)
+target_sources(yql-parser-pg_catalog.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/eadca93c2963e941669f9c2a2aa57764.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/3d26e9517473285170cd0a3d23c7d2d0.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/4a6c1378a260ff6d488f8786dfd07167.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/f90d56932d7a7f6894e22bfd30e081cc.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/83fc7cd35e09e29e248d3759a2f756a6.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/aef100a0eb600c727753b7527c8156c1.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/eadca93c2963e941669f9c2a2aa57764.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_operator.dat
+ KEYS
+ pg_operator.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/3d26e9517473285170cd0a3d23c7d2d0.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_proc.dat
+ KEYS
+ pg_proc.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/4a6c1378a260ff6d488f8786dfd07167.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_type.dat
+ KEYS
+ pg_type.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/f90d56932d7a7f6894e22bfd30e081cc.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_cast.dat
+ KEYS
+ pg_cast.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/83fc7cd35e09e29e248d3759a2f756a6.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_aggregate.dat
+ KEYS
+ pg_aggregate.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/aef100a0eb600c727753b7527c8156c1.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_opfamily.dat
+ KEYS
+ pg_opfamily.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_opclass.dat
+ KEYS
+ pg_opclass.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_amproc.dat
+ KEYS
+ pg_amproc.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_amop.dat
+ KEYS
+ pg_amop.dat
+)
+resources(yql-parser-pg_catalog.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_conversion.dat
+ KEYS
+ pg_conversion.dat
+)
diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/pg_catalog/CMakeLists.txt
+++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..130c8e86f8
--- /dev/null
+++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-parser-pg_catalog-ut)
+target_compile_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-parser-pg_catalog-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-parser-pg_catalog
+ yql-public-udf
+ udf-service-exception_policy
+ minikql-comp_nodes-llvm
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-parser-pg_catalog-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-parser-pg_catalog-ut
+ TEST_TARGET
+ ydb-library-yql-parser-pg_catalog-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-pg_catalog-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-pg_catalog-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-parser-pg_catalog-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-parser-pg_catalog-ut)
diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt
+++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5a899080ef
--- /dev/null
+++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,958 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+add_subdirectory(ut)
+
+add_library(yql-parser-pg_wrapper)
+target_compile_options(yql-parser-pg_wrapper PRIVATE
+ -DUSE_SLOW_PG_KERNELS
+ -DDLSUFFIX=".so"
+ -Wno-ignored-attributes
+ -Wno-unused-parameter
+ -Wno-sign-compare
+ -Wno-missing-field-initializers
+ -Wno-incompatible-pointer-types-discards-qualifiers
+ -Wno-implicit-function-declaration
+ -Wno-duplicate-decl-specifier
+ -Wno-unused-function
+ -Wno-unused-variable
+ -Wno-unused-private-field
+ -Wno-register
+ -Wno-unguarded-availability-new
+ -Wno-int-conversion
+ -Wno-deprecated-declarations
+ -Darray_length=yql_array_length
+ -Dpg_encoding_max_length=yql_pg_encoding_max_length
+ -Dpg_encoding_mblen=yql_pg_encoding_mblen
+ -Dpg_mule_mblen=yql_pg_mule_mblen
+ -Dpg_utf8_islegal=yql_pg_utf8_islegal
+ -Dpg_utf_mblen=yql_pg_utf_mblen
+ -Dpg_wchar_table=yql_pg_wchar_table
+ -Dunicode_to_utf8=yql_unicode_to_utf8
+ -Dutf8_to_unicode=yql_utf8_to_unicode
+ -Dpg_enc2name_tbl=yql_pg_enc2name_tbl
+ -Dstrtoint=yql_strtoint
+ -Dpalloc=yql_palloc
+ -Dpalloc0=yql_palloc0
+ -Dpfree=yql_pfree
+ -Dpstrdup=yql_pstrdup
+ -Drepalloc=yql_repalloc
+ -Dpalloc_extended=yql_palloc_extended
+ -Dpg_clean_ascii=yql_pg_clean_ascii
+ -Dpg_str_endswith=yql_pg_str_endswith
+ -Dpg_strip_crlf=yql_pg_strip_crlf
+ -Dpg_encoding_dsplen=yql_pg_encoding_dsplen
+ -Dpg_encoding_mblen_bounded=yql_pg_encoding_mblen_bounded
+ -Dpg_encoding_verifymb=yql_pg_encoding_verifymb
+ -Dpg_encoding_verifymbchar=yql_pg_encoding_verifymbchar
+ -Dpg_encoding_verifymbstr=yql_pg_encoding_verifymbstr
+ -Dunicode_normalize=yql_unicode_normalize
+ -Ddurable_rename=yql_durable_rename
+ -Dfsync_fname=yql_fsync_fname
+ -Dget_encoding_name_for_icu=yql_get_encoding_name_for_icu
+ -Dis_encoding_supported_by_icu=yql_is_encoding_supported_by_icu
+ -Dpg_char_to_encoding=yql_pg_char_to_encoding
+ -Dpg_enc2gettext_tbl=yql_pg_enc2gettext_tbl
+ -Dpg_encoding_to_char=yql_pg_encoding_to_char
+ -Dpg_valid_client_encoding=yql_pg_valid_client_encoding
+ -Dpg_valid_server_encoding=yql_pg_valid_server_encoding
+ -Dpg_valid_server_encoding_id=yql_pg_valid_server_encoding_id
+ -Dpnstrdup=yql_pnstrdup
+ -Dget_ps_display=yql_get_ps_display
+ -Dinit_ps_display=yql_init_ps_display
+ -Dsave_ps_display_args=yql_save_ps_display_args
+ -Dset_ps_display=yql_set_ps_display
+ -Dupdate_process_title=yql_update_process_title
+ -Dlo_read=yql_lo_read
+ -Dlo_write=yql_lo_write
+ -Drtrim=yql_rtrim
+ -Dstr_tolower=yql_str_tolower
+ -Dstr_toupper=yql_str_toupper
+ -Dpg_file_create_mode=yql_pg_file_create_mode
+ -Dpg_dir_create_mode=yql_pg_dir_create_mode
+ -Descape_json=yql_escape_json
+ -DSetDataDirectoryCreatePerm=yql_SetDataDirectoryCreatePerm
+ -Dpg_mode_mask=yql_pg_mode_mask
+ -Dpg_strong_random=yql_pg_strong_random
+ -Dpg_strong_random_init=yql_pg_strong_random_init
+ -DScanKeywordBareLabel=yql_ScanKeywordBareLabel
+ -DScanKeywordCategories=yql_ScanKeywordCategories
+ -DScanKeywords=yql_ScanKeywords
+ -Dscram_ClientKey=yql_scram_ClientKey
+ -Dscram_H=yql_scram_H
+ -Dscram_SaltedPassword=yql_scram_SaltedPassword
+ -Dscram_ServerKey=yql_scram_ServerKey
+ -Dscram_build_secret=yql_scram_build_secret
+ -Dpg_is_ascii=yql_pg_is_ascii
+ -DmakeJsonLexContextCstringLen=yql_makeJsonLexContextCstringLen
+ -DIsValidJsonNumber=yql_IsValidJsonNumber
+ -Djson_lex=yql_json_lex
+ -Dpg_parse_json=yql_pg_parse_json
+ -Djson_count_array_elements=yql_json_count_array_elements
+ -DnullSemAction=yql_nullSemAction
+ -Dpg_cryptohash_free=yql_pg_cryptohash_free
+ -Dpg_cryptohash_final=yql_pg_cryptohash_final
+ -Dpg_cryptohash_update=yql_pg_cryptohash_update
+ -Dpg_cryptohash_init=yql_pg_cryptohash_init
+ -Dpg_cryptohash_create=yql_pg_cryptohash_create
+ -Dpg_hmac_free=yql_pg_hmac_free
+ -Dpg_hmac_final=yql_pg_hmac_final
+ -Dpg_hmac_update=yql_pg_hmac_update
+ -Dpg_hmac_init=yql_pg_hmac_init
+ -Dpg_hmac_create=yql_pg_hmac_create
+ -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(yql-parser-pg_wrapper PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/bootstrap
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port
+)
+target_link_libraries(yql-parser-pg_wrapper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ library-cpp-yson
+ library-yql-core
+ yql-minikql-arrow
+ minikql-computation-llvm
+ yql-parser-pg_catalog
+ providers-common-codec
+ yql-public-issue
+ yql-public-udf
+ library-yql-utils
+ contrib-libs-icu
+ contrib-libs-libc_compat
+ contrib-libs-libxml
+ contrib-libs-lz4
+ contrib-libs-openssl
+)
+target_sources(yql-parser-pg_wrapper PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/arena_ctx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/arrow.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/arrow_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/conversion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/thread_inits.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/type_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_aggs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/recovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/superuser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_bloom.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_inclusion.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_minmax.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_minmax_multi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_pageops.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_revmap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_tuple.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_validate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_xlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/attmap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/bufmask.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/detoast.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/heaptuple.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/indextuple.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/printsimple.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/printtup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/relation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/reloptions.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/scankey.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/session.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/syncscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/toast_compression.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/toast_internals.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/tupconvert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/common/tupdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginarrayproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginbtree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginbulk.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/gindatapage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginentrypage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginfast.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginget.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/gininsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginlogic.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginpostinglist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginutil.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginvacuum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gin/ginxlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistbuild.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistbuildbuffers.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistget.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistsplit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistutil.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistvacuum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/gist/gistxlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hash.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hash_xlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashfunc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashinsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashovfl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashpage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashsearch.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashsort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashutil.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/hash/hashvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/heapam.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/heapam_handler.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/heapam_visibility.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/heaptoast.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/hio.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/pruneheap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/rewriteheap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/vacuumlazy.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/heap/visibilitymap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/index/amapi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/index/amvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/index/genam.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/index/indexam.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtcompare.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtdedup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtinsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtpage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtsearch.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtsort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtsplitloc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/nbtree/nbtxlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/brindesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/clogdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/committsdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/dbasedesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/genericdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/gindesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/gistdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/hashdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/heapdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/logicalmsgdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/mxactdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/nbtdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/relmapdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/replorigindesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/seqdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/smgrdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/spgdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/standbydesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/tblspcdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/xactdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/rmgrdesc/xlogdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgdoinsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spginsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgkdtreeproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgquadtreeproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgtextproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgvacuum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgvalidate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/spgist/spgxlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/table/table.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/table/tableam.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/table/tableamapi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/table/toast_helper.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/tablesample/bernoulli.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/tablesample/system.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/tablesample/tablesample.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/clog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/commit_ts.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/generic_xlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/multixact.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/parallel.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/rmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/slru.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/subtrans.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/timeline.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/transam.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/twophase.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/twophase_rmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/varsup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xact.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xlog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xlogarchive.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xlogfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xloginsert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xlogreader.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/transam/xlogutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/bootstrap/bootparse.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/bootstrap/bootstrap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/aclchk.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/catalog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/dependency.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/heap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/index.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/indexing.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/namespace.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/objectaccess.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/objectaddress.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/partition.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_aggregate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_cast.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_collation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_constraint.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_conversion.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_db_role_setting.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_depend.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_enum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_inherits.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_largeobject.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_namespace.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_operator.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_proc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_publication.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_range.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_shdepend.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_subscription.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/pg_type.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/storage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/catalog/toasting.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/aggregatecmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/amcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/analyze.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/async.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/cluster.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/collationcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/comment.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/constraint.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/conversioncmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/copy.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/copyfrom.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/copyfromparse.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/copyto.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/createas.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/dbcommands.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/define.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/discard.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/dropcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/event_trigger.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/explain.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/extension.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/foreigncmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/functioncmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/indexcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/lockcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/matview.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/opclasscmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/operatorcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/policy.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/portalcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/prepare.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/proclang.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/publicationcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/schemacmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/seclabel.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/sequence.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/statscmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/subscriptioncmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/tablecmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/tablespace.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/trigger.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/tsearchcmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/typecmds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/user.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/vacuum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/variable.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/commands/view.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execAmi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execAsync.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execCurrent.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execExpr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execExprInterp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execGrouping.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execIndexing.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execJunk.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execMain.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execParallel.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execPartition.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execProcnode.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execReplication.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execSRF.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execScan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execTuples.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/execUtils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/functions.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/instrument.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeAgg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeAppend.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeBitmapAnd.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeBitmapHeapscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeBitmapIndexscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeBitmapOr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeCtescan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeCustom.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeForeignscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeFunctionscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeGather.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeGatherMerge.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeGroup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeHash.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeHashjoin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeIncrementalSort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeIndexonlyscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeIndexscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeLimit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeLockRows.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeMaterial.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeMemoize.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeMergeAppend.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeMergejoin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeModifyTable.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeNamedtuplestorescan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeNestloop.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeProjectSet.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeRecursiveunion.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeResult.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSamplescan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSeqscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSetOp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSubplan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeSubqueryscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeTableFuncscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeTidrangescan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeTidscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeUnique.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeValuesscan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeWindowAgg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/nodeWorktablescan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/spi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/tqueue.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/executor/tstoreReceiver.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/foreign/foreign.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/jit/jit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/binaryheap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/bipartite_match.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/bloomfilter.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/dshash.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/hyperloglog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/ilist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/integerset.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/knapsack.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/pairingheap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/lib/rbtree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/auth-scram.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/auth.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/be-fsstubs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/be-secure-common.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/be-secure-openssl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/be-secure.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/crypt.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/hba.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/ifaddr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/pqcomm.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/pqformat.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/pqmq.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/libpq/pqsignal.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/bitmapset.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/copyfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/equalfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/extensible.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/list.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/makefuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/nodeFuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/nodes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/outfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/params.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/print.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/read.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/readfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/tidbitmap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/nodes/value.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_copy.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_cx.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_erx.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_eval.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_main.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_misc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_mutation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_ox1.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_ox2.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_pmx.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_pool.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_px.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_random.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_recombination.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/geqo/geqo_selection.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/allpaths.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/clausesel.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/costsize.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/equivclass.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/indxpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/joinpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/joinrels.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/pathkeys.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/path/tidpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/analyzejoins.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/createplan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/initsplan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/planagg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/planmain.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/planner.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/setrefs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/plan/subselect.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/prep/prepagg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/prep/prepjointree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/prep/prepqual.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/prep/preptlist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/prep/prepunion.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/appendinfo.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/clauses.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/inherit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/joininfo.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/orclauses.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/paramassign.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/pathnode.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/placeholder.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/plancat.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/predtest.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/relnode.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/restrictinfo.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/tlist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/optimizer/util/var.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/analyze.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/gram.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_agg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_clause.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_coerce.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_collate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_cte.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_enr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_expr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_func.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_node.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_oper.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_param.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_relation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_target.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_type.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parse_utilcmd.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/parser.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/scan.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/parser/scansup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/partitioning/partbounds.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/partitioning/partdesc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/partitioning/partprune.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/atomics.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/autovacuum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/bgworker.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/bgwriter.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/checkpointer.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/fork_process.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/interrupt.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/pgarch.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/pgstat.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/postmaster.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/startup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/syslogger.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/postmaster/walwriter.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regcomp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regerror.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regexec.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regexport.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regfree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/regex/regprefix.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/backup_manifest.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/basebackup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/decode.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/launcher.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/logical.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/logicalfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/message.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/origin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/proto.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/relation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/reorderbuffer.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/snapbuild.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/tablesync.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/logical/worker.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/repl_gram.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/slot.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/slotfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/syncrep.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/syncrep_gram.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/walreceiver.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/walreceiverfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/replication/walsender.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteDefine.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteHandler.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteManip.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteRemove.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteSearchCycle.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rewriteSupport.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/rewrite/rowsecurity.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/statistics/dependencies.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/statistics/extended_stats.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/statistics/mcv.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/statistics/mvdistinct.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/buffer/buf_init.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/buffer/buf_table.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/buffer/bufmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/buffer/freelist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/buffer/localbuf.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/file/buffile.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/file/copydir.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/file/fd.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/file/reinit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/file/sharedfileset.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/freespace/freespace.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/freespace/fsmpage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/freespace/indexfsm.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/barrier.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/dsm.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/dsm_impl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/ipc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/ipci.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/latch.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/pmsignal.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/procarray.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/procsignal.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/shm_mq.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/shm_toc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/shmem.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/shmqueue.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/signalfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/sinval.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/sinvaladt.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/ipc/standby.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/large_object/inv_api.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/condition_variable.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/deadlock.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/lmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/lock.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/lwlock.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/lwlocknames.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/predicate.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/proc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/s_lock.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/lmgr/spin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/page/bufpage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/page/checksum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/page/itemptr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/smgr/md.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/smgr/smgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/storage/sync/sync.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/cmdtag.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/dest.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/fastpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/postgres.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/pquery.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tcop/utility.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/dict.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/dict_ispell.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/dict_simple.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/dict_synonym.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/dict_thesaurus.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/regis.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/spell.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/to_tsany.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/ts_locale.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/ts_parse.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/ts_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/ts_typanalyze.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/ts_utils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/wparser.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/tsearch/wparser_def.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/activity/backend_progress.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/activity/backend_status.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/activity/wait_event.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/acl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/amutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/array_expanded.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/array_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/array_typanalyze.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/array_userfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/arrayfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/arraysubs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/arrayutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/ascii.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/bool.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/cash.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/char.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/cryptohashfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/date.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/datetime.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/datum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/dbsize.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/domains.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/encode.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/enum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/expandeddatum.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/expandedrecord.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/float.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/format_type.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/formatting.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/genfile.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/geo_ops.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/geo_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/geo_spgist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/inet_cidr_ntop.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/inet_net_pton.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/int.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/int8.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/json.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonb.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonb_gin.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonb_op.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonb_util.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonbsubs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonpath_exec.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/jsonpath_gram.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/like.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/like_support.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/lockfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/mac.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/mac8.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/mcxtfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/misc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/multirangetypes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/multirangetypes_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/name.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/network.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/network_gist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/network_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/network_spgist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/numeric.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/numutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/oid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/oracle_compat.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/orderedsetaggs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/partitionfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/pg_locale.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/pg_lsn.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/pg_upgrade_support.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/pgstatfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/pseudotypes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/quote.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rangetypes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rangetypes_gist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rangetypes_selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rangetypes_spgist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rangetypes_typanalyze.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/regexp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/regproc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/ri_triggers.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/rowtypes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/ruleutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/selfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/timestamp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/trigfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsginidx.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsgistidx.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery_cleanup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery_gist.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery_op.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery_rewrite.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsquery_util.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsrank.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsvector.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsvector_op.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/tsvector_parser.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/uuid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/varbit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/varchar.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/varlena.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/version.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/windowfuncs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/xid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/xid8funcs.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/adt/xml.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/attoptcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/catcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/evtcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/inval.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/lsyscache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/partcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/plancache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/relcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/relfilenodemap.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/relmapper.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/spccache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/syscache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/ts_cache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/cache/typcache.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/error/assert.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/error/elog.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/fmgr/dfmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/fmgr/fmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/fmgr/funcapi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/fmgrtab.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/hash/dynahash.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/hash/pg_crc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/init/globals.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/init/miscinit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/init/postinit.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mb/conv.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mb/mbutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mb/stringinfo_mb.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mb/wstrcmp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mb/wstrncmp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/guc.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/pg_config.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/pg_controldata.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/pg_rusage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/ps_status.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/queryenvironment.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/queryjumble.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/rls.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/sampling.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/superuser.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/timeout.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/misc/tzparser.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/aset.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/dsa.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/freepage.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/generation.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/mcxt.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/memdebug.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/portalmem.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/mmgr/slab.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/resowner/resowner.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort/logtape.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort/sharedtuplestore.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort/sortsupport.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort/tuplesort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/sort/tuplestore.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/time/combocid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/utils/time/snapmgr.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/archive.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/base64.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/checksum_helper.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/config_info.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/controldata_utils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/cryptohash_openssl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/d2s.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/encnames.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/exec.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/f2s.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/file_perm.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/file_utils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/hashfn.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/hmac_openssl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/ip.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/jsonapi.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/keywords.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/kwlookup.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/link-canary.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/md5_common.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/pg_get_line.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/pg_lzcompress.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/pgfnames.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/protocol_openssl.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/psprintf.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/relpath.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/rmtree.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/saslprep.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/scram-common.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/string.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/stringinfo.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/unicode_norm.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/username.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/wait_error.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/common/wchar.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/bsearch_arg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/chklocale.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/erand48.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/fls.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/getpeereid.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/inet_net_ntop.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/noblock.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/path.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_bitutils.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sb8.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_strong_random.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pgcheckdir.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pgmkdirp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pgsleep.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pgstrcasecmp.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pgstrsignal.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pqsignal.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/qsort.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/qsort_arg.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/quotes.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/snprintf.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/strerror.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/tar.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/thread.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/timezone/localtime.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/timezone/pgtz.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/timezone/strftime.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.0.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.1.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.2.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.3.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.4.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.5.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.6.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.7.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.8.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.9.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.10.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.11.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.12.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.13.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.14.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.15.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.16.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.17.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.18.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_kernels.19.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/posix_sema.c
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/sysv_shmem.c
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt
+)
+copy_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh
+)
diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.txt
+++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3346319134
--- /dev/null
+++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(parser-pg_wrapper-interface)
+target_compile_options(parser-pg_wrapper-interface PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(parser-pg_wrapper-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ yql-public-udf
+ public-udf-arrow
+ yql-core-cbo
+)
+target_sources(parser-pg_wrapper-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp
+)
diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt
+++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5512b71aec
--- /dev/null
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,185 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-parser-pg_wrapper-ut)
+target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
+ -DDLSUFFIX=".so"
+ -Wno-ignored-attributes
+ -Wno-unused-parameter
+ -Wno-sign-compare
+ -Wno-missing-field-initializers
+ -Wno-incompatible-pointer-types-discards-qualifiers
+ -Wno-implicit-function-declaration
+ -Wno-duplicate-decl-specifier
+ -Wno-unused-function
+ -Wno-unused-variable
+ -Wno-unused-private-field
+ -Wno-register
+ -Wno-unguarded-availability-new
+ -Wno-int-conversion
+ -Wno-deprecated-declarations
+ -Darray_length=yql_array_length
+ -Dpg_encoding_max_length=yql_pg_encoding_max_length
+ -Dpg_encoding_mblen=yql_pg_encoding_mblen
+ -Dpg_mule_mblen=yql_pg_mule_mblen
+ -Dpg_utf8_islegal=yql_pg_utf8_islegal
+ -Dpg_utf_mblen=yql_pg_utf_mblen
+ -Dpg_wchar_table=yql_pg_wchar_table
+ -Dunicode_to_utf8=yql_unicode_to_utf8
+ -Dutf8_to_unicode=yql_utf8_to_unicode
+ -Dpg_enc2name_tbl=yql_pg_enc2name_tbl
+ -Dstrtoint=yql_strtoint
+ -Dpalloc=yql_palloc
+ -Dpalloc0=yql_palloc0
+ -Dpfree=yql_pfree
+ -Dpstrdup=yql_pstrdup
+ -Drepalloc=yql_repalloc
+ -Dpalloc_extended=yql_palloc_extended
+ -Dpg_clean_ascii=yql_pg_clean_ascii
+ -Dpg_str_endswith=yql_pg_str_endswith
+ -Dpg_strip_crlf=yql_pg_strip_crlf
+ -Dpg_encoding_dsplen=yql_pg_encoding_dsplen
+ -Dpg_encoding_mblen_bounded=yql_pg_encoding_mblen_bounded
+ -Dpg_encoding_verifymb=yql_pg_encoding_verifymb
+ -Dpg_encoding_verifymbchar=yql_pg_encoding_verifymbchar
+ -Dpg_encoding_verifymbstr=yql_pg_encoding_verifymbstr
+ -Dunicode_normalize=yql_unicode_normalize
+ -Ddurable_rename=yql_durable_rename
+ -Dfsync_fname=yql_fsync_fname
+ -Dget_encoding_name_for_icu=yql_get_encoding_name_for_icu
+ -Dis_encoding_supported_by_icu=yql_is_encoding_supported_by_icu
+ -Dpg_char_to_encoding=yql_pg_char_to_encoding
+ -Dpg_enc2gettext_tbl=yql_pg_enc2gettext_tbl
+ -Dpg_encoding_to_char=yql_pg_encoding_to_char
+ -Dpg_valid_client_encoding=yql_pg_valid_client_encoding
+ -Dpg_valid_server_encoding=yql_pg_valid_server_encoding
+ -Dpg_valid_server_encoding_id=yql_pg_valid_server_encoding_id
+ -Dpnstrdup=yql_pnstrdup
+ -Dget_ps_display=yql_get_ps_display
+ -Dinit_ps_display=yql_init_ps_display
+ -Dsave_ps_display_args=yql_save_ps_display_args
+ -Dset_ps_display=yql_set_ps_display
+ -Dupdate_process_title=yql_update_process_title
+ -Dlo_read=yql_lo_read
+ -Dlo_write=yql_lo_write
+ -Drtrim=yql_rtrim
+ -Dstr_tolower=yql_str_tolower
+ -Dstr_toupper=yql_str_toupper
+ -Dpg_file_create_mode=yql_pg_file_create_mode
+ -Dpg_dir_create_mode=yql_pg_dir_create_mode
+ -Descape_json=yql_escape_json
+ -DSetDataDirectoryCreatePerm=yql_SetDataDirectoryCreatePerm
+ -Dpg_mode_mask=yql_pg_mode_mask
+ -Dpg_strong_random=yql_pg_strong_random
+ -Dpg_strong_random_init=yql_pg_strong_random_init
+ -DScanKeywordBareLabel=yql_ScanKeywordBareLabel
+ -DScanKeywordCategories=yql_ScanKeywordCategories
+ -DScanKeywords=yql_ScanKeywords
+ -Dscram_ClientKey=yql_scram_ClientKey
+ -Dscram_H=yql_scram_H
+ -Dscram_SaltedPassword=yql_scram_SaltedPassword
+ -Dscram_ServerKey=yql_scram_ServerKey
+ -Dscram_build_secret=yql_scram_build_secret
+ -Dpg_is_ascii=yql_pg_is_ascii
+ -DmakeJsonLexContextCstringLen=yql_makeJsonLexContextCstringLen
+ -DIsValidJsonNumber=yql_IsValidJsonNumber
+ -Djson_lex=yql_json_lex
+ -Dpg_parse_json=yql_pg_parse_json
+ -Djson_count_array_elements=yql_json_count_array_elements
+ -DnullSemAction=yql_nullSemAction
+ -Dpg_cryptohash_free=yql_pg_cryptohash_free
+ -Dpg_cryptohash_final=yql_pg_cryptohash_final
+ -Dpg_cryptohash_update=yql_pg_cryptohash_update
+ -Dpg_cryptohash_init=yql_pg_cryptohash_init
+ -Dpg_cryptohash_create=yql_pg_cryptohash_create
+ -Dpg_hmac_free=yql_pg_hmac_free
+ -Dpg_hmac_final=yql_pg_hmac_final
+ -Dpg_hmac_update=yql_pg_hmac_update
+ -Dpg_hmac_init=yql_pg_hmac_init
+ -Dpg_hmac_create=yql_pg_hmac_create
+ -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-parser-pg_wrapper
+ yql-minikql-arrow
+ yql-public-udf
+ udf-service-exception_policy
+ minikql-comp_nodes-llvm
+ yql-parser-pg_catalog
+ yql-minikql-codegen
+ library-cpp-resource
+)
+target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/sort_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/type_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut/mkql_test_factory.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-parser-pg_wrapper-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-parser-pg_wrapper-ut
+ TEST_TARGET
+ ydb-library-yql-parser-pg_wrapper-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-pg_wrapper-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-pg_wrapper-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-parser-pg_wrapper-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-parser-pg_wrapper-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-parser-pg_wrapper-ut)
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aec64b880e
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(collect_issues)
+add_subdirectory(gen)
+
+add_library(yql-parser-proto_ast)
+target_link_libraries(yql-parser-proto_ast PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-antlr3_cpp_runtime
+ contrib-libs-protobuf
+)
+target_sources(yql-parser-proto_ast PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/proto_ast.cpp
+)
diff --git a/ydb/library/yql/parser/proto_ast/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a818d5398b
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(parser-proto_ast-collect_issues INTERFACE)
+target_link_libraries(parser-proto_ast-collect_issues INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+ yql-parser-proto_ast
+)
diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..65d2f12e2a
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,113 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+set(
+ ANTLR_PACKAGE_NAME
+ NJsonPathGenerated
+)
+set(
+ ANTLR_PACKAGE_NAME
+ NJsonPathGenerated
+)
+set(
+ LEXER_PARSER_NAMESPACE
+ NALP
+)
+set(
+ PROTOBUF_HEADER_PATH
+ ydb/library/yql/parser/proto_ast/gen/jsonpath
+)
+
+add_library(proto_ast-gen-jsonpath)
+target_compile_options(proto_ast-gen-jsonpath PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(proto_ast-gen-jsonpath PUBLIC
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf
+)
+target_link_libraries(proto_ast-gen-jsonpath PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(proto_ast-gen-jsonpath PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto
+)
+target_sources(proto_ast-gen-jsonpath PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/JsonPath.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath
+ ANTLER_ARGS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/JsonPath.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath
+ -language
+ protobuf
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/JsonPath.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath
+ ANTLER_ARGS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/JsonPath.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath
+)
+target_proto_addincls(proto_ast-gen-jsonpath
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(proto_ast-gen-jsonpath
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e46562c7d8
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,113 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+set(
+ ANTLR_PACKAGE_NAME
+ NSQLGenerated
+)
+set(
+ ANTLR_PACKAGE_NAME
+ NSQLGenerated
+)
+set(
+ LEXER_PARSER_NAMESPACE
+ NALP
+)
+set(
+ PROTOBUF_HEADER_PATH
+ ydb/library/yql/parser/proto_ast/gen/v0
+)
+
+add_library(proto_ast-gen-v0)
+target_compile_options(proto_ast-gen-v0 PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(proto_ast-gen-v0 PUBLIC
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf
+)
+target_link_libraries(proto_ast-gen-v0 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(proto_ast-gen-v0 PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto
+)
+target_sources(proto_ast-gen-v0 PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0
+ ANTLER_ARGS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0
+ -language
+ protobuf
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0
+ ANTLER_ARGS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0
+)
+target_proto_addincls(proto_ast-gen-v0
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(proto_ast-gen-v0
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..02b893de3b
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+set(
+ ANTLR_PACKAGE_NAME
+ NSQLv1Generated
+)
+set(
+ LEXER_PARSER_NAMESPACE
+ NALPDefault
+)
+set(
+ PROTOBUF_HEADER_PATH
+ ydb/library/yql/parser/proto_ast/gen/v1_proto
+)
+
+add_library(proto_ast-gen-v1)
+target_compile_options(proto_ast-gen-v1 PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(proto_ast-gen-v1 PUBLIC
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp
+)
+target_link_libraries(proto_ast-gen-v1 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ proto_ast-gen-v1_proto
+)
+target_sources(proto_ast-gen-v1 PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1
+ ANTLER_ARGS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1
+)
+set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)")
+set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)")
+set(GRAMMAR_MULTILINE_COMMENT_CORE ".")
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1.g
+)
+
+
+
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ce8f04bcf
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+set(
+ ANTLR_PACKAGE_NAME
+ NSQLv1Generated
+)
+set(
+ LEXER_PARSER_NAMESPACE
+ NALPAnsi
+)
+set(
+ PROTOBUF_HEADER_PATH
+ ydb/library/yql/parser/proto_ast/gen/v1_proto
+)
+
+add_library(proto_ast-gen-v1_ansi)
+target_compile_options(proto_ast-gen-v1_ansi PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(proto_ast-gen-v1_ansi PUBLIC
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp
+)
+target_link_libraries(proto_ast-gen-v1_ansi PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ proto_ast-gen-v1_proto
+)
+target_sources(proto_ast-gen-v1_ansi PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi
+ ANTLER_ARGS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi
+)
+set(GRAMMAR_STRING_CORE_SINGLE "~QUOTE_SINGLE | (QUOTE_SINGLE QUOTE_SINGLE)")
+set(GRAMMAR_STRING_CORE_DOUBLE "~QUOTE_DOUBLE | (QUOTE_DOUBLE QUOTE_DOUBLE)")
+set(GRAMMAR_MULTILINE_COMMENT_CORE "MULTILINE_COMMENT | .")
+
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1.g
+)
+
+
+
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e54b1e340
--- /dev/null
+++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+set(
+ ANTLR_PACKAGE_NAME
+ NSQLv1Generated
+)
+
+add_library(proto_ast-gen-v1_proto)
+target_include_directories(proto_ast-gen-v1_proto PUBLIC
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/org/antlr/codegen/templates/protobuf
+)
+target_link_libraries(proto_ast-gen-v1_proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(proto_ast-gen-v1_proto PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.proto
+)
+run_antlr(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.proto
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1.g
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/org/antlr/codegen/templates/protobuf/protobuf.stg
+ WORKING_DIRECTORY
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto
+ ANTLER_ARGS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1.g
+ -lib
+ .
+ -fo
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto
+ -language
+ protobuf
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/org/antlr/codegen/templates/protobuf/protobuf.stg
+)
+target_proto_addincls(proto_ast-gen-v1_proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(proto_ast-gen-v1_proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)")
+set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)")
+set(GRAMMAR_MULTILINE_COMMENT_CORE ".")
+
+configure_file(
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1.g
+)
+
+
diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt
+++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3bcb29501f
--- /dev/null
+++ b/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-yql-protos)
+target_link_libraries(library-yql-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-yql-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/common.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto
+)
+target_proto_addincls(library-yql-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-yql-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/protos/CMakeLists.txt b/ydb/library/yql/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/protos/CMakeLists.txt
+++ b/ydb/library/yql/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..212170609f
--- /dev/null
+++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-clickhouse-actors)
+target_compile_options(providers-clickhouse-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-clickhouse-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-computation-llvm
+ common-token_accessor-client
+ yql-public-types
+ dq-actors-compute
+ providers-clickhouse-proto
+ providers-common-http_gateway
+)
+target_sources(providers-clickhouse-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/actors/yql_ch_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/actors/yql_ch_source_factory.cpp
+)
diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt
+++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..16666cdd9d
--- /dev/null
+++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-clickhouse-expr_nodes)
+target_link_libraries(providers-clickhouse-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-clickhouse-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dc1892a574
--- /dev/null
+++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-clickhouse-proto)
+target_link_libraries(providers-clickhouse-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-clickhouse-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto
+)
+target_proto_addincls(providers-clickhouse-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-clickhouse-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0550a7bbca
--- /dev/null
+++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-clickhouse-provider)
+target_compile_options(providers-clickhouse-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-clickhouse-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-yql-ast
+ minikql-comp_nodes-llvm
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-integration
+ providers-common-db_id_async_resolver
+ providers-clickhouse-expr_nodes
+ providers-clickhouse-proto
+ providers-common-config
+ providers-common-dq
+ providers-common-http_gateway
+ providers-common-mkql
+ providers-common-proto
+ providers-common-provider
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+)
+target_sources(providers-clickhouse-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_logical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_physical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.cpp
+)
diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/activation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d274b16dd5
--- /dev/null
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-activation)
+target_link_libraries(providers-common-activation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-proto
+ library-cpp-svnversion
+)
+target_sources(providers-common-activation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/activation/yql_activation.cpp
+)
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.txt b/ydb/library/yql/providers/common/activation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/activation/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/arrow/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62172bc6da
--- /dev/null
+++ b/ydb/library/yql/providers/common/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+
+add_library(providers-common-arrow)
+target_compile_options(providers-common-arrow PRIVATE
+ -DARCADIA_BUILD
+ -DUSE_PARQUET
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-arrow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ common-arrow-interface
+)
+target_sources(providers-common-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/arrow/arrow_reader_impl.cpp
+)
diff --git a/ydb/library/yql/providers/common/arrow/CMakeLists.txt b/ydb/library/yql/providers/common/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/arrow/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..adefcdf8d5
--- /dev/null
+++ b/ydb/library/yql/providers/common/arrow/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-arrow-interface)
+target_link_libraries(common-arrow-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ cpp-threading-future
+ providers-common-http_gateway
+)
+target_sources(common-arrow-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/arrow/interface/arrow_reader.cpp
+)
diff --git a/ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt b/ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/arrow/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e9de3919a6
--- /dev/null
+++ b/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-arrow_resolve)
+target_compile_options(providers-common-arrow_resolve PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-arrow_resolve PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-minikql-arrow
+ yql-public-udf
+ providers-common-mkql
+)
+target_sources(providers-common-arrow_resolve PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/arrow_resolve/yql_simple_arrow_resolver.cpp
+)
diff --git a/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt b/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/arrow_resolve/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7555db6d19
--- /dev/null
+++ b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-common-codec)
+target_compile_options(providers-common-codec PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-codec PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-computation-llvm
+ parser-pg_wrapper-interface
+ providers-common-mkql
+ cpp-yson-node
+ library-cpp-yson
+ library-cpp-json
+ library-cpp-enumbitset
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-common-codec PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec.cpp
+)
+generate_enum_serilization(providers-common-codec
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/common/codec/yql_codec_type_flags.h
+)
diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.txt b/ydb/library/yql/providers/common/codec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/codec/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/codec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c7e50d81c0
--- /dev/null
+++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-common-codec-ut)
+target_compile_options(ydb-library-yql-providers-common-codec-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-common-codec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec
+)
+target_link_libraries(ydb-library-yql-providers-common-codec-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-common-codec
+ cpp-testing-unittest
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-providers-common-codec-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-common-codec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-common-codec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-common-codec-ut
+ TEST_TARGET
+ ydb-library-yql-providers-common-codec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-common-codec-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-common-codec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-common-codec-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-common-codec-ut)
diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f559551f3b
--- /dev/null
+++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-comp_nodes)
+target_compile_options(providers-common-comp_nodes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-comp_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ yql-ast-serialize
+ minikql-computation-llvm
+ library-yql-core
+ yql-core-type_ann
+ providers-common-codec
+ common-schema-expr
+ yql-minikql-codegen
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+)
+target_sources(providers-common-comp_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.cpp
+)
diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..769b029dfd
--- /dev/null
+++ b/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-config)
+target_compile_options(providers-common-config PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-core-expr_nodes
+ library-yql-ast
+ cpp-containers-sorted_vector
+ cpp-string_utils-parse_size
+ cpp-string_utils-levenshtein_diff
+)
+target_sources(providers-common-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp
+)
diff --git a/ydb/library/yql/providers/common/config/CMakeLists.txt b/ydb/library/yql/providers/common/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/config/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a1c24b27b
--- /dev/null
+++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-common-db_id_async_resolver)
+target_compile_options(providers-common-db_id_async_resolver PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-db_id_async_resolver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ connector-api-common
+ yql-public-issue
+ tools-enum_parser-enum_serialization_runtime
+)
+generate_enum_serilization(providers-common-db_id_async_resolver
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h
+)
diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/dq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54fa168d21
--- /dev/null
+++ b/ydb/library/yql/providers/common/dq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-dq)
+target_link_libraries(providers-common-dq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-integration
+)
+target_sources(providers-common-dq PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/dq/yql_dq_optimization_impl.cpp
+)
diff --git a/ydb/library/yql/providers/common/dq/CMakeLists.txt b/ydb/library/yql/providers/common/dq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/dq/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/dq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d3d0e1bddf
--- /dev/null
+++ b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-gateway)
+target_link_libraries(providers-common-gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ library-yql-ast
+)
+target_sources(providers-common-gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp
+)
diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/gateway/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ff5aae4794
--- /dev/null
+++ b/ydb/library/yql/providers/common/http_gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(mock)
+add_subdirectory(ut)
+
+add_library(providers-common-http_gateway)
+target_compile_options(providers-common-http_gateway PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-http_gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-curl
+ cpp-actors-prof
+ cpp-monlib-dynamic_counters
+ library-cpp-retry
+ providers-common-proto
+ yql-public-issue
+ yql-utils-log
+ library-yql-utils
+)
+target_sources(providers-common-http_gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_http_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_http_default_retry_policy.cpp
+)
diff --git a/ydb/library/yql/providers/common/http_gateway/CMakeLists.txt b/ydb/library/yql/providers/common/http_gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/http_gateway/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/http_gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a6953ebd81
--- /dev/null
+++ b/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-http_gateway-mock)
+target_compile_options(common-http_gateway-mock PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(common-http_gateway-mock PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-http_gateway
+)
+target_sources(common-http_gateway-mock PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/mock/yql_http_mock_gateway.cpp
+)
diff --git a/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt b/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/http_gateway/mock/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..55e75becfd
--- /dev/null
+++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-common-http_gateway-ut)
+target_compile_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-common-http_gateway-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway
+)
+target_link_libraries(ydb-library-yql-providers-common-http_gateway-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-common-http_gateway
+ cpp-testing-unittest
+)
+target_link_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-common-http_gateway-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_dns_gateway_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-common-http_gateway-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-common-http_gateway-ut
+ TEST_TARGET
+ ydb-library-yql-providers-common-http_gateway-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-common-http_gateway-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-common-http_gateway-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-common-http_gateway-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-common-http_gateway-ut)
diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/metrics/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/metrics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..19966f5689
--- /dev/null
+++ b/ydb/library/yql/providers/common/metrics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_library(providers-common-metrics)
+target_link_libraries(providers-common-metrics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-logger-global
+ cpp-monlib-dynamic_counters
+ common-metrics-protos
+)
+target_sources(providers-common-metrics PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/metrics_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/sensors_group.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/service_counters.cpp
+)
diff --git a/ydb/library/yql/providers/common/metrics/CMakeLists.txt b/ydb/library/yql/providers/common/metrics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/metrics/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/metrics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e4138a2b75
--- /dev/null
+++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(common-metrics-protos)
+target_link_libraries(common-metrics-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(common-metrics-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto
+)
+target_proto_addincls(common-metrics-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(common-metrics-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee01009ed1
--- /dev/null
+++ b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-mkql)
+target_compile_options(providers-common-mkql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-mkql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ library-yql-ast
+ library-yql-minikql
+ yql-public-decimal
+ yql-public-udf
+ library-yql-utils
+ library-yql-core
+ yql-core-expr_nodes
+ common-schema-expr
+ providers-dq-expr_nodes
+ yql-parser-pg_catalog
+)
+target_sources(providers-common-mkql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp
+)
diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/mkql/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/mkql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..962067cd49
--- /dev/null
+++ b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-common-proto)
+target_link_libraries(providers-common-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-protos
+ connector-api-common
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-common-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto
+)
+target_proto_addincls(providers-common-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-common-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.txt b/ydb/library/yql/providers/common/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8933bfd711
--- /dev/null
+++ b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-provider)
+target_compile_options(providers-common-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ yql-public-udf
+ library-yql-sql
+ library-yql-core
+)
+target_sources(providers-common-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp
+)
diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.txt b/ydb/library/yql/providers/common/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e1a6b69143
--- /dev/null
+++ b/ydb/library/yql/providers/common/pushdown/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-pushdown)
+target_compile_options(providers-common-pushdown PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-pushdown PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-expr_nodes_gen
+ yql-utils-log
+)
+target_sources(providers-common-pushdown PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/pushdown/collection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/pushdown/predicate_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/pushdown/settings.cpp
+)
diff --git a/ydb/library/yql/providers/common/pushdown/CMakeLists.txt b/ydb/library/yql/providers/common/pushdown/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/pushdown/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/pushdown/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/schema/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..32c29f0aac
--- /dev/null
+++ b/ydb/library/yql/providers/common/schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(expr)
+add_subdirectory(mkql)
+add_subdirectory(parser)
+add_subdirectory(skiff)
+
+add_library(providers-common-schema)
+target_link_libraries(providers-common-schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-yql-utils
+)
+target_sources(providers-common-schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/schema/yql_schema_utils.cpp
+)
diff --git a/ydb/library/yql/providers/common/schema/CMakeLists.txt b/ydb/library/yql/providers/common/schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/schema/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7101f86cbc
--- /dev/null
+++ b/ydb/library/yql/providers/common/schema/expr/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-schema-expr)
+target_link_libraries(common-schema-expr PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ library-yql-ast
+ yql-public-issue
+ yql-public-udf
+ library-yql-utils
+ common-schema-parser
+ yql-parser-pg_catalog
+)
+target_sources(common-schema-expr PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/schema/expr/yql_expr_schema.cpp
+)
diff --git a/ydb/library/yql/providers/common/schema/expr/CMakeLists.txt b/ydb/library/yql/providers/common/schema/expr/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/schema/expr/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/schema/expr/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..571c1bb96c
--- /dev/null
+++ b/ydb/library/yql/providers/common/schema/mkql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-schema-mkql)
+target_compile_options(common-schema-mkql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(common-schema-mkql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+ providers-common-codec
+ common-schema-parser
+ yql-parser-pg_catalog
+)
+target_sources(common-schema-mkql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/schema/mkql/yql_mkql_schema.cpp
+)
diff --git a/ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt b/ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/schema/mkql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0cd7065b24
--- /dev/null
+++ b/ydb/library/yql/providers/common/schema/parser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-schema-parser)
+target_link_libraries(common-schema-parser PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-cpp-yson
+)
+target_sources(common-schema-parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/schema/parser/yql_type_parser.cpp
+)
diff --git a/ydb/library/yql/providers/common/schema/parser/CMakeLists.txt b/ydb/library/yql/providers/common/schema/parser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/schema/parser/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/schema/parser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..65e4a025b5
--- /dev/null
+++ b/ydb/library/yql/providers/common/schema/skiff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-schema-skiff)
+target_link_libraries(common-schema-skiff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ yql-public-udf
+ providers-common-codec
+ common-schema-parser
+)
+target_sources(common-schema-skiff PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/schema/skiff/yql_skiff_schema.cpp
+)
diff --git a/ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt b/ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/schema/skiff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75b84199aa
--- /dev/null
+++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-common-structured_token)
+target_link_libraries(providers-common-structured_token PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ cpp-string_utils-base64
+ library-yql-utils
+)
+target_sources(providers-common-structured_token PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp
+)
diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/structured_token/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fc141ed146
--- /dev/null
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yql-providers-common-structured_token-ut)
+target_include_directories(yql-providers-common-structured_token-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token
+)
+target_link_libraries(yql-providers-common-structured_token-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-common-structured_token
+)
+target_link_options(yql-providers-common-structured_token-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yql-providers-common-structured_token-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_structured_token_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
+)
+set_property(
+ TARGET
+ yql-providers-common-structured_token-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yql-providers-common-structured_token-ut
+ TEST_TARGET
+ yql-providers-common-structured_token-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yql-providers-common-structured_token-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ yql-providers-common-structured_token-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yql-providers-common-structured_token-ut
+ system_allocator
+)
+vcs_info(yql-providers-common-structured_token-ut)
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..74fa102d25
--- /dev/null
+++ b/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-token_accessor-client)
+target_link_libraries(common-token_accessor-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-threading-atomic
+ cpp-threading-future
+ providers-common-structured_token
+ common-token_accessor-grpc
+ client-ydb_types-credentials
+)
+target_sources(common-token_accessor-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/client/bearer_credentials_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/client/factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client_factory.cpp
+)
diff --git a/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt b/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/token_accessor/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1ce956e1c
--- /dev/null
+++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(common-token_accessor-grpc)
+set_property(TARGET common-token_accessor-grpc PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(common-token_accessor-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(common-token_accessor-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto
+)
+target_proto_addincls(common-token_accessor-grpc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(common-token_accessor-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(common-token_accessor-grpc
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/transform/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/transform/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0deb002e02
--- /dev/null
+++ b/ydb/library/yql/providers/common/transform/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-transform)
+target_link_libraries(providers-common-transform PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-utils
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+)
+target_sources(providers-common-transform PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/transform/yql_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/transform/yql_lazy_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/transform/yql_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/transform/yql_visit.cpp
+)
diff --git a/ydb/library/yql/providers/common/transform/CMakeLists.txt b/ydb/library/yql/providers/common/transform/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/transform/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/transform/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77ba8d72e5
--- /dev/null
+++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-udf_resolve)
+target_compile_options(providers-common-udf_resolve PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-udf_resolve PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-md5
+ cpp-protobuf-util
+ yql-core-file_storage
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+ yql-utils-log
+ library-yql-core
+ providers-common-mkql
+ providers-common-proto
+ common-schema-expr
+)
+target_sources(providers-common-udf_resolve PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.cpp
+)
diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..47d6d6a207
--- /dev/null
+++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-common-ut_helpers)
+target_compile_options(providers-common-ut_helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-common-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-retry
+ core-testlib-basics
+ minikql-computation-llvm
+ udf-service-exception_policy
+ library-yql-sql
+ providers-common-comp_nodes
+)
+target_sources(providers-common-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp
+)
diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d2daa2064b
--- /dev/null
+++ b/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-providers-config)
+target_compile_options(yql-providers-config PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-providers-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ library-yql-ast
+ library-yql-utils
+ yql-utils-fetch
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ providers-common-proto
+ providers-common-provider
+ providers-common-activation
+)
+target_sources(yql-providers-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp
+)
diff --git a/ydb/library/yql/providers/config/CMakeLists.txt b/ydb/library/yql/providers/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/config/CMakeLists.txt
+++ b/ydb/library/yql/providers/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a72600c8cf
--- /dev/null
+++ b/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+add_subdirectory(api)
+add_subdirectory(common)
+add_subdirectory(config)
+add_subdirectory(counters)
+add_subdirectory(expr_nodes)
+add_subdirectory(global_worker_manager)
+add_subdirectory(interface)
+add_subdirectory(local_gateway)
+add_subdirectory(metrics)
+add_subdirectory(mkql)
+add_subdirectory(opt)
+add_subdirectory(planner)
+add_subdirectory(provider)
+add_subdirectory(runtime)
+add_subdirectory(scheduler)
+add_subdirectory(service)
+add_subdirectory(stats_collector)
+add_subdirectory(task_runner)
+add_subdirectory(task_runner_actor)
+add_subdirectory(worker_manager)
diff --git a/ydb/library/yql/providers/dq/CMakeLists.txt b/ydb/library/yql/providers/dq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..10e86803f2
--- /dev/null
+++ b/ydb/library/yql/providers/dq/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(events)
+add_subdirectory(ut)
+add_subdirectory(yt)
+
+add_library(providers-dq-actors)
+target_compile_options(providers-dq-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ library-cpp-yson
+ ydb-library-mkql_proto
+ yql-core-services
+ core-services-mounts
+ yql-core-user_data
+ yql-utils-actors
+ yql-utils-actor_log
+ yql-utils-backtrace
+ yql-utils-log
+ api-protos
+ public-lib-yson_value
+ yql-dq-common
+ yql-dq-proto
+ yql-dq-runtime
+ yql-dq-tasks
+ dq-actors-compute
+ yql-utils-failure_injector
+ providers-common-metrics
+ dq-actors-events
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-common
+ providers-dq-config
+ providers-dq-counters
+ providers-dq-interface
+ providers-dq-planner
+ providers-dq-task_runner
+ providers-dq-task_runner_actor
+ providers-dq-worker_manager
+ dq-worker_manager-interface
+)
+target_sources(providers-dq-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/compute_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/dummy_lock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/dynamic_nameserver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/executer_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/execution_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/graph_execution_events_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/resource_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/task_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/worker_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/result_aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/result_receiver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/full_result_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/proto_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues.cpp
+)
diff --git a/ydb/library/yql/providers/dq/actors/CMakeLists.txt b/ydb/library/yql/providers/dq/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/actors/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b18ae3b86f
--- /dev/null
+++ b/ydb/library/yql/providers/dq/actors/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-actors-events)
+target_link_libraries(dq-actors-events PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+)
+target_sources(dq-actors-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/events/empty.cpp
+)
diff --git a/ydb/library/yql/providers/dq/actors/events/CMakeLists.txt b/ydb/library/yql/providers/dq/actors/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/actors/events/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/actors/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..be9b472265
--- /dev/null
+++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-dq-actors-ut)
+target_include_directories(ydb-library-yql-providers-dq-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors
+)
+target_link_libraries(ydb-library-yql-providers-dq-actors-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-dq-actors
+ cpp-testing-unittest
+ library-cpp-time_provider
+ yql-dq-actors
+ dq-actors-compute
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-providers-dq-actors-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-dq-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-dq-actors-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-dq-actors-ut
+ TEST_TARGET
+ ydb-library-yql-providers-dq-actors-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-actors-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-actors-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-dq-actors-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-dq-actors-ut)
diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..12dab3d2dc
--- /dev/null
+++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-actors-yt)
+target_compile_options(dq-actors-yt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-actors-yt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-grpc-client
+ cpp-mapreduce-interface
+ providers-dq-config
+ yql-core-issue
+ providers-common-metrics
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-common
+ yt-lib-log
+ dq-actors-events
+ yt-yt-client
+)
+target_sources(dq-actors-yt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/worker_registrator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/lock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_uploader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_downloader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_cleaner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_resource_manager.cpp
+)
diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bead812e5a
--- /dev/null
+++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(dq-api-grpc)
+set_property(TARGET dq-api-grpc PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(dq-api-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ dq-api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(dq-api-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto
+)
+target_proto_addincls(dq-api-grpc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(dq-api-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(dq-api-grpc
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6daf35e61f
--- /dev/null
+++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(dq-api-protos)
+target_link_libraries(dq-api-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ api-protos
+ dq-actors-protos
+ yql-dq-proto
+ common-metrics-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(dq-api-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto
+)
+target_proto_addincls(dq-api-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(dq-api-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a1ecc96fcc
--- /dev/null
+++ b/ydb/library/yql/providers/dq/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-dq-common)
+target_compile_options(providers-dq-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-parse_size
+ library-yql-minikql
+ library-yql-sql
+ library-yql-utils
+ yql-utils-log
+ yql-dq-actors
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-dq-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/common/attrs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/common/yql_dq_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp
+)
+generate_enum_serilization(providers-dq-common
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/common/yql_dq_settings.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/dq/common/yql_dq_settings.h
+)
diff --git a/ydb/library/yql/providers/dq/common/CMakeLists.txt b/ydb/library/yql/providers/dq/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..67633d6000
--- /dev/null
+++ b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-dq-config)
+target_link_libraries(providers-dq-config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-dq-config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto
+)
+target_proto_addincls(providers-dq-config
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-dq-config
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.txt b/ydb/library/yql/providers/dq/config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/config/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/counters/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/counters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0bcccf96f3
--- /dev/null
+++ b/ydb/library/yql/providers/dq/counters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-counters)
+target_compile_options(providers-dq-counters PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-counters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-runtime
+)
+target_sources(providers-dq-counters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/counters/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/counters/task_counters.cpp
+)
diff --git a/ydb/library/yql/providers/dq/counters/CMakeLists.txt b/ydb/library/yql/providers/dq/counters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/counters/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/counters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7aba0afce6
--- /dev/null
+++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-dq-expr_nodes STATIC)
+set_property(TARGET providers-dq-expr_nodes PROPERTY
+ LINKER_LANGUAGE CXX
+)
+target_link_libraries(providers-dq-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+)
+target_sources(providers-dq-expr_nodes PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37ad352faf
--- /dev/null
+++ b/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-dq-global_worker_manager)
+target_compile_options(providers-dq-global_worker_manager PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-global_worker_manager PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-failure_injector
+ providers-common-config
+ providers-common-gateway
+ providers-common-metrics
+ providers-dq-actors
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-config
+ providers-dq-counters
+ providers-dq-runtime
+ providers-dq-task_runner
+ dq-actors-yt
+ providers-dq-scheduler
+ providers-dq-service
+)
+target_sources(providers-dq-global_worker_manager PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/benchmark.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/service_node_pinger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/workers_storage.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/worker_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/service_node_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/coordination_helper.cpp
+)
diff --git a/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt b/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/global_worker_manager/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..63f861950d
--- /dev/null
+++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yql-providers-dq-global_worker_manager-ut)
+target_compile_options(yql-providers-dq-global_worker_manager-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(yql-providers-dq-global_worker_manager-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager
+)
+target_link_libraries(yql-providers-dq-global_worker_manager-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-dq-global_worker_manager
+ cpp-actors-testlib
+ udf-service-stub
+ yql-sql-pg_dummy
+ dq-actors-yt
+ providers-dq-actors
+ dq-actors-compute
+)
+target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yql-providers-dq-global_worker_manager-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/workers_storage_ut.cpp
+)
+set_property(
+ TARGET
+ yql-providers-dq-global_worker_manager-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yql-providers-dq-global_worker_manager-ut
+ TEST_TARGET
+ yql-providers-dq-global_worker_manager-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yql-providers-dq-global_worker_manager-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ yql-providers-dq-global_worker_manager-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yql-providers-dq-global_worker_manager-ut
+ system_allocator
+)
+vcs_info(yql-providers-dq-global_worker_manager-ut)
diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/providers/dq/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2caf1879a6
--- /dev/null
+++ b/ydb/library/yql/providers/dq/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-interface)
+target_compile_options(providers-dq-interface PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+)
+target_sources(providers-dq-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/interface/yql_dq_full_result_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/interface/yql_dq_task_preprocessor.cpp
+)
diff --git a/ydb/library/yql/providers/dq/interface/CMakeLists.txt b/ydb/library/yql/providers/dq/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/interface/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..25fa353881
--- /dev/null
+++ b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-local_gateway)
+target_compile_options(providers-dq-local_gateway PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-local_gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-utils
+ dq-actors-compute
+ dq-actors-spilling
+ providers-dq-provider
+ dq-api-protos
+ providers-dq-task_runner
+ providers-dq-worker_manager
+ providers-dq-service
+ providers-dq-stats_collector
+)
+target_sources(providers-dq-local_gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/local_gateway/yql_dq_gateway_local.cpp
+)
diff --git a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..08c42135b2
--- /dev/null
+++ b/ydb/library/yql/providers/dq/metrics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-metrics)
+target_compile_options(providers-dq-metrics PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-metrics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ providers-solomon-async_io
+)
+target_sources(providers-dq-metrics PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/metrics/metrics_printer.cpp
+)
diff --git a/ydb/library/yql/providers/dq/metrics/CMakeLists.txt b/ydb/library/yql/providers/dq/metrics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/metrics/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/metrics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f7fdd5de4d
--- /dev/null
+++ b/ydb/library/yql/providers/dq/mkql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-mkql)
+target_compile_options(providers-dq-mkql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-mkql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-core
+ yql-dq-integration
+ providers-common-mkql
+ providers-dq-expr_nodes
+)
+target_sources(providers-dq-mkql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/mkql/dqs_mkql_compiler.cpp
+)
diff --git a/ydb/library/yql/providers/dq/mkql/CMakeLists.txt b/ydb/library/yql/providers/dq/mkql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/mkql/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/mkql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7b3651197
--- /dev/null
+++ b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-opt)
+target_compile_options(providers-dq-opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-dq-expr_nodes
+ providers-common-mkql
+ providers-common-codec
+ providers-common-transform
+ yql-utils-log
+ yql-dq-opt
+ yql-dq-type_ann
+ yql-dq-integration
+ library-yql-core
+ yql-core-peephole_opt
+ yql-core-type_ann
+ minikql-computation-llvm
+ cpp-yson-node
+)
+target_sources(providers-dq-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/opt/dqs_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/opt/logical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
+)
diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/opt/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e75e5ea430
--- /dev/null
+++ b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-planner)
+target_compile_options(providers-dq-planner PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-planner PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-services
+ minikql-comp_nodes-llvm
+ yql-dq-integration
+ yql-dq-opt
+ yql-dq-type_ann
+ yql-dq-tasks
+ providers-common-mkql
+ dq-api-protos
+ providers-dq-common
+ providers-dq-expr_nodes
+ providers-dq-mkql
+ providers-dq-opt
+)
+target_sources(providers-dq-planner PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/planner/dqs_task_graph.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/planner/execution_planner.cpp
+)
diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/planner/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/planner/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e5708247fb
--- /dev/null
+++ b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(exec)
+add_subdirectory(ut)
+
+add_library(providers-dq-provider)
+target_compile_options(providers-dq-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-threading-task_scheduler
+ cpp-threading-future
+ library-cpp-svnversion
+ cpp-yson-node
+ library-cpp-yson
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ library-yql-core
+ yql-core-issue
+ yql-utils-backtrace
+ yql-dq-integration
+ dq-integration-transform
+ yql-dq-transform
+ yql-dq-tasks
+ yql-dq-type_ann
+ providers-common-gateway
+ providers-common-metrics
+ common-schema-expr
+ providers-common-transform
+ providers-common-activation
+ providers-common-proto
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-common
+ providers-dq-config
+ providers-dq-expr_nodes
+ providers-dq-opt
+ providers-dq-planner
+ providers-result-expr_nodes
+ library-yql-minikql
+)
+target_sources(providers-dq-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_constraints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_validate.cpp
+)
diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4f1b26c851
--- /dev/null
+++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-provider-exec)
+target_compile_options(dq-provider-exec PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-provider-exec PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-cpp-svnversion
+ cpp-digest-md5
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ library-yql-core
+ yql-dq-integration
+ yql-dq-runtime
+ yql-dq-tasks
+ yql-dq-type_ann
+ providers-common-gateway
+ providers-common-metrics
+ common-schema-expr
+ providers-common-transform
+ providers-dq-actors
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-common
+ providers-dq-counters
+ providers-dq-expr_nodes
+ providers-dq-opt
+ providers-dq-planner
+ providers-dq-runtime
+ providers-result-expr_nodes
+)
+target_sources(dq-provider-exec PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp
+)
diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..808c4d8432
--- /dev/null
+++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-dq-provider-ut)
+target_compile_options(ydb-library-yql-providers-dq-provider-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-dq-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider
+)
+target_link_libraries(ydb-library-yql-providers-dq-provider-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-dq-provider
+ cpp-testing-unittest
+ yql-sql-pg_dummy
+ udf-service-stub
+)
+target_link_options(ydb-library-yql-providers-dq-provider-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-dq-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-dq-provider-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-dq-provider-ut
+ TEST_TARGET
+ ydb-library-yql-providers-dq-provider-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-provider-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-provider-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-dq-provider-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-dq-provider-ut)
diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1c490e5277
--- /dev/null
+++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-runtime)
+target_compile_options(providers-dq-runtime PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-runtime PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-invoke_builtins-llvm
+ library-yql-utils
+ yql-utils-log
+ yql-utils-backtrace
+ yql-core-expr_nodes
+ yql-dq-common
+ dq-integration-transform
+ yql-dq-runtime
+ providers-common-proto
+ dq-api-protos
+ providers-dq-common
+ providers-dq-counters
+ providers-dq-task_runner
+)
+target_sources(providers-dq-runtime PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/runtime/file_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/runtime/task_command_executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/runtime/runtime_data.cpp
+)
diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/runtime/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..450d2ffafa
--- /dev/null
+++ b/ydb/library/yql/providers/dq/scheduler/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-dq-scheduler)
+target_compile_options(providers-dq-scheduler PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-scheduler PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-common
+ yql-dq-proto
+ providers-dq-config
+ providers-common-proto
+ dq-api-protos
+ providers-dq-common
+ providers-dq-counters
+ cpp-actors-protos
+)
+target_sources(providers-dq-scheduler PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/dq_scheduler.cpp
+)
diff --git a/ydb/library/yql/providers/dq/scheduler/CMakeLists.txt b/ydb/library/yql/providers/dq/scheduler/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/scheduler/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/scheduler/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..84654a8a23
--- /dev/null
+++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-dq-scheduler-ut)
+target_compile_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-dq-scheduler-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler
+)
+target_link_libraries(ydb-library-yql-providers-dq-scheduler-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-dq-scheduler
+ udf-service-stub
+ yql-utils-log
+)
+target_link_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-dq-scheduler-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/ut/dq_scheduler_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-dq-scheduler-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-dq-scheduler-ut
+ TEST_TARGET
+ ydb-library-yql-providers-dq-scheduler-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-scheduler-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-dq-scheduler-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-dq-scheduler-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-dq-scheduler-ut)
diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/service/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1532b4f2e
--- /dev/null
+++ b/ydb/library/yql/providers/dq/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-service)
+target_compile_options(providers-dq-service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ library-cpp-build_info
+ cpp-grpc-server
+ grpc-server-actors
+ library-cpp-svnversion
+ cpp-threading-future
+ library-yql-sql
+ api-protos
+ providers-common-metrics
+ providers-dq-actors
+ dq-api-grpc
+ providers-dq-common
+ providers-dq-counters
+ providers-dq-interface
+ providers-dq-worker_manager
+ dq-worker_manager-interface
+)
+target_sources(providers-dq-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/service/grpc_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/service/grpc_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/service/service_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/service/interconnect_helpers.cpp
+)
diff --git a/ydb/library/yql/providers/dq/service/CMakeLists.txt b/ydb/library/yql/providers/dq/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/service/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..233f0fe82b
--- /dev/null
+++ b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-stats_collector)
+target_compile_options(providers-dq-stats_collector PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-stats_collector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-helpers
+ cpp-monlib-dynamic_counters
+)
+target_sources(providers-dq-stats_collector PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/stats_collector/pool_stats_collector.cpp
+)
diff --git a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b27cb756f
--- /dev/null
+++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-task_runner)
+target_compile_options(providers-dq-task_runner PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-task_runner PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-svnversion
+ cpp-threading-task_scheduler
+ cpp-yson-node
+ dq-integration-transform
+ minikql-invoke_builtins-llvm
+ library-yql-protos
+ library-yql-utils
+ yql-utils-backtrace
+ yql-utils-log
+ yql-dq-proto
+ yql-dq-runtime
+ providers-common-proto
+ dq-api-protos
+ providers-dq-counters
+)
+target_sources(providers-dq-task_runner PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/task_runner/file_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/task_runner/tasks_runner_local.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/task_runner/tasks_runner_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/task_runner/tasks_runner_pipe.cpp
+)
diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f93dd43600
--- /dev/null
+++ b/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-dq-task_runner_actor)
+target_compile_options(providers-dq-task_runner_actor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-task_runner_actor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ dq-actors-task_runner
+ yql-dq-proto
+ dq-api-protos
+ providers-dq-runtime
+ yql-utils-actors
+ providers-dq-task_runner
+)
+target_sources(providers-dq-task_runner_actor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/task_runner_actor/task_runner_actor.cpp
+)
diff --git a/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt b/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/task_runner_actor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77a1aa8bef
--- /dev/null
+++ b/ydb/library/yql/providers/dq/worker_manager/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(interface)
+
+add_library(providers-dq-worker_manager)
+target_compile_options(providers-dq-worker_manager PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-dq-worker_manager PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-ydb_issue
+ yql-utils-failure_injector
+ providers-common-config
+ providers-common-gateway
+ providers-common-metrics
+ dq-api-grpc
+ dq-api-protos
+ providers-dq-runtime
+ providers-dq-task_runner
+ providers-dq-task_runner_actor
+ dq-worker_manager-interface
+)
+target_sources(providers-dq-worker_manager PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp
+)
diff --git a/ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt b/ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/worker_manager/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9dc0d87b63
--- /dev/null
+++ b/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dq-worker_manager-interface)
+target_compile_options(dq-worker_manager-interface PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dq-worker_manager-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-interconnect
+ yql-utils-log
+ yql-dq-common
+ providers-common-metrics
+ dq-api-grpc
+ dq-api-protos
+)
+target_sources(dq-worker_manager-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/worker_manager/interface/worker_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/worker_manager/interface/counters.cpp
+)
diff --git a/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt b/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt
+++ b/ydb/library/yql/providers/dq/worker_manager/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/function/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..302752a2bd
--- /dev/null
+++ b/ydb/library/yql/providers/function/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-function-common)
+target_compile_options(providers-function-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-function-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(providers-function-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/common/dq_function_types.cpp
+)
diff --git a/ydb/library/yql/providers/function/common/CMakeLists.txt b/ydb/library/yql/providers/function/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/function/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/function/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7dd678e97a
--- /dev/null
+++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-function-expr_nodes)
+target_link_libraries(providers-function-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+)
+target_sources(providers-function-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/function/gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8988089abc
--- /dev/null
+++ b/ydb/library/yql/providers/function/gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-function-gateway)
+target_compile_options(providers-function-gateway PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-function-gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ common-token_accessor-client
+ providers-function-common
+ cpp-threading-future
+)
+target_sources(providers-function-gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/gateway/dq_function_gateway.cpp
+)
diff --git a/ydb/library/yql/providers/function/gateway/CMakeLists.txt b/ydb/library/yql/providers/function/gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/function/gateway/CMakeLists.txt
+++ b/ydb/library/yql/providers/function/gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4e85a89b0d
--- /dev/null
+++ b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-function-proto)
+target_link_libraries(providers-function-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-function-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto
+)
+target_proto_addincls(providers-function-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-function-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.txt b/ydb/library/yql/providers/function/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/function/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/function/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/function/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ef405d0d9
--- /dev/null
+++ b/ydb/library/yql/providers/function/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-function-provider)
+target_compile_options(providers-function-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-function-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-dq-integration
+ common-token_accessor-client
+ providers-common-dq
+ providers-common-provider
+ common-schema-mkql
+ providers-function-expr_nodes
+ providers-function-common
+ providers-function-gateway
+ providers-function-proto
+ library-yql-core
+ yql-core-expr_nodes
+ yql-dq-expr_nodes
+ yql-dq-opt
+)
+target_sources(providers-function-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_intent_transformer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_physical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/provider/dq_function_dq_integration.cpp
+)
diff --git a/ydb/library/yql/providers/function/provider/CMakeLists.txt b/ydb/library/yql/providers/function/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/function/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/function/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bd1cd8293b
--- /dev/null
+++ b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-generic-actors)
+target_compile_options(providers-generic-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-generic-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ dq-actors-compute
+ minikql-computation-llvm
+ common-token_accessor-client
+ providers-generic-proto
+ yql-public-types
+ generic-connector-libcpp
+)
+target_sources(providers-generic-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/actors/yql_generic_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/actors/yql_generic_source_factory.cpp
+)
diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/actors/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1af4185e07
--- /dev/null
+++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(connector-api-common)
+target_link_libraries(connector-api-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(connector-api-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto
+)
+target_proto_addincls(connector-api-common
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(connector-api-common
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75d63720a6
--- /dev/null
+++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(connector-api-service)
+set_property(TARGET connector-api-service PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(connector-api-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ api-service-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(connector-api-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto
+)
+target_proto_addincls(connector-api-service
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(connector-api-service
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(connector-api-service
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f37533ca6f
--- /dev/null
+++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(api-service-protos)
+target_link_libraries(api-service-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ connector-api-common
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(api-service-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto
+)
+target_proto_addincls(api-service-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-service-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0328862419
--- /dev/null
+++ b/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_helpers)
+
+add_library(generic-connector-libcpp)
+target_link_libraries(generic-connector-libcpp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ contrib-libs-grpc
+ formats-arrow-serializer
+ library-yql-ast
+ dq-actors-protos
+ providers-common-proto
+ connector-api-common
+ connector-api-service
+ yql-public-issue
+ library-yql-utils
+)
+target_sources(generic-connector-libcpp PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/error.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/utils.cpp
+)
diff --git a/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt b/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/connector/libcpp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d3c4e34f01
--- /dev/null
+++ b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(connector-libcpp-ut_helpers)
+target_compile_options(connector-libcpp-ut_helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(connector-libcpp-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ cpp-testing-gmock_in_unittest
+ cpp-testing-unittest
+ formats-arrow-serializer
+ kqp-ut-common
+ providers-common-db_id_async_resolver
+ providers-common-structured_token
+ connector-api-common
+ generic-connector-libcpp
+)
+target_sources(connector-libcpp-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/connector_client_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/database_resolver_mock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/defaults.cpp
+)
diff --git a/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ef7d722030
--- /dev/null
+++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-generic-expr_nodes)
+target_link_libraries(providers-generic-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-generic-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9d2318ef89
--- /dev/null
+++ b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-generic-proto)
+target_link_libraries(providers-generic-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-service-protos
+ connector-api-common
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-generic-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto
+)
+target_proto_addincls(providers-generic-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-generic-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7e0272869d
--- /dev/null
+++ b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-generic-provider)
+target_compile_options(providers-generic-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-generic-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-json
+ library-cpp-random_provider
+ library-cpp-time_provider
+ fq-libs-result_formatter
+ library-yql-ast
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-integration
+ minikql-comp_nodes-llvm
+ providers-common-config
+ providers-common-db_id_async_resolver
+ providers-common-dq
+ providers-common-mkql
+ providers-common-proto
+ providers-common-provider
+ providers-common-pushdown
+ providers-common-structured_token
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+ providers-generic-expr_nodes
+ providers-generic-proto
+ generic-connector-libcpp
+)
+target_sources(providers-generic-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_logical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_physical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_predicate_pushdown.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.cpp
+)
diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f9f1f4e06
--- /dev/null
+++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yql-providers-generic-provider-ut-pushdown)
+target_compile_options(yql-providers-generic-provider-ut-pushdown PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(yql-providers-generic-provider-ut-pushdown PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider
+)
+target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-generic-provider
+ contrib-libs-fmt
+ library-cpp-random_provider
+ library-yql-ast
+ library-yql-core
+ yql-core-services
+ yql-dq-expr_nodes
+ library-yql-minikql
+ providers-common-db_id_async_resolver
+ providers-generic-expr_nodes
+ providers-result-provider
+ udf-service-stub
+ library-yql-sql
+ yql-sql-pg_dummy
+)
+target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/ut/pushdown/pushdown_ut.cpp
+)
+set_property(
+ TARGET
+ yql-providers-generic-provider-ut-pushdown
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yql-providers-generic-provider-ut-pushdown
+ TEST_TARGET
+ yql-providers-generic-provider-ut-pushdown
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yql-providers-generic-provider-ut-pushdown
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ yql-providers-generic-provider-ut-pushdown
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yql-providers-generic-provider-ut-pushdown
+ system_allocator
+)
+vcs_info(yql-providers-generic-provider-ut-pushdown)
diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt
+++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d61f0f8b5
--- /dev/null
+++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-pq-async_io)
+target_compile_options(providers-pq-async_io PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-pq-async_io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-computation-llvm
+ common-token_accessor-client
+ yql-public-types
+ yql-utils-log
+ cpp-client-ydb_driver
+ cpp-client-ydb_persqueue_core
+ client-ydb_types-credentials
+ dq-actors-compute
+ providers-pq-proto
+ providers-pq-common
+)
+target_sources(providers-pq-async_io PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/async_io/dq_pq_meta_extractor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/async_io/dq_pq_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/async_io/dq_pq_write_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/async_io/probes.cpp
+)
diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/async_io/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6ae222071f
--- /dev/null
+++ b/ydb/library/yql/providers/pq/cm_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-pq-cm_client)
+target_link_libraries(providers-pq-cm_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ yql-public-issue
+ client-ydb_types-credentials
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-pq-cm_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/cm_client/client.cpp
+)
+generate_enum_serilization(providers-pq-cm_client
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/cm_client/client.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/pq/cm_client/client.h
+)
diff --git a/ydb/library/yql/providers/pq/cm_client/CMakeLists.txt b/ydb/library/yql/providers/pq/cm_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/cm_client/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/cm_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1607a5cc4f
--- /dev/null
+++ b/ydb/library/yql/providers/pq/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-pq-common)
+target_compile_options(providers-pq-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-pq-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-types
+)
+target_sources(providers-pq-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/common/pq_meta_fields.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/common/yql_names.cpp
+)
diff --git a/ydb/library/yql/providers/pq/common/CMakeLists.txt b/ydb/library/yql/providers/pq/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7be05df4a3
--- /dev/null
+++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-pq-expr_nodes)
+target_link_libraries(providers-pq-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-pq-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e80e544ea
--- /dev/null
+++ b/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(pq-gateway-dummy)
+target_link_libraries(pq-gateway-dummy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-pq-provider
+)
+target_sources(pq-gateway-dummy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/gateway/dummy/yql_pq_dummy_gateway.cpp
+)
diff --git a/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt b/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/gateway/dummy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da671c9455
--- /dev/null
+++ b/ydb/library/yql/providers/pq/gateway/native/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(pq-gateway-native)
+target_link_libraries(pq-gateway-native PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ common-token_accessor-client
+ providers-common-metrics
+ providers-common-proto
+ providers-pq-cm_client
+ providers-pq-provider
+ library-yql-utils
+ cpp-client-ydb_datastreams
+ cpp-client-ydb_driver
+ cpp-client-ydb_persqueue_core
+)
+target_sources(pq-gateway-native PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/gateway/native/yql_pq_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/gateway/native/yql_pq_session.cpp
+)
diff --git a/ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt b/ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/gateway/native/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ecfcba40b
--- /dev/null
+++ b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-pq-proto)
+target_link_libraries(providers-pq-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-pq-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto
+)
+target_proto_addincls(providers-pq-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-pq-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac95caed16
--- /dev/null
+++ b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-pq-provider)
+target_compile_options(providers-pq-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-pq-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-yql-ast
+ minikql-comp_nodes-llvm
+ providers-common-db_id_async_resolver
+ providers-common-structured_token
+ yql-public-udf
+ cpp-client-ydb_driver
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-integration
+ yql-dq-opt
+ providers-common-config
+ providers-common-dq
+ providers-common-proto
+ providers-common-provider
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+ dq-provider-exec
+ providers-pq-cm_client
+ providers-pq-common
+ providers-pq-expr_nodes
+ providers-pq-proto
+ providers-result-expr_nodes
+)
+target_sources(providers-pq-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasink_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_logical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_physical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_provider_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_topic_key_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/provider/yql_pq_helpers.cpp
+)
diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a64f264b35
--- /dev/null
+++ b/ydb/library/yql/providers/pq/task_meta/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-pq-task_meta)
+target_compile_options(providers-pq-task_meta PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-pq-task_meta PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ dq-api-protos
+ providers-pq-proto
+)
+target_sources(providers-pq-task_meta PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/task_meta/task_meta.cpp
+)
diff --git a/ydb/library/yql/providers/pq/task_meta/CMakeLists.txt b/ydb/library/yql/providers/pq/task_meta/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/pq/task_meta/CMakeLists.txt
+++ b/ydb/library/yql/providers/pq/task_meta/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ea7eea1b5c
--- /dev/null
+++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-result-expr_nodes)
+target_link_libraries(providers-result-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-result-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4fd2b545af
--- /dev/null
+++ b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-result-provider)
+target_compile_options(providers-result-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-result-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-yql-ast
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ providers-common-codec
+ providers-common-mkql
+ providers-common-provider
+ providers-result-expr_nodes
+)
+target_sources(providers-result-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp
+)
diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.txt b/ydb/library/yql/providers/result/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/result/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/result/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..996d819894
--- /dev/null
+++ b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-s3-actors)
+target_compile_options(providers-s3-actors PRIVATE
+ -DARCADIA_BUILD
+ -DUSE_PARQUET
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(providers-s3-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src
+)
+target_link_libraries(providers-s3-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ libs-poco-Util
+ cpp-actors-http
+ cpp-string_utils-base64
+ cpp-string_utils-quote
+ cpp-xml-document
+ fq-libs-events
+ minikql-computation-llvm
+ yql-public-types
+ dq-actors-compute
+ common-token_accessor-client
+ common-schema-mkql
+ providers-common-http_gateway
+ providers-common-arrow
+ common-arrow-interface
+ providers-s3-common
+ providers-s3-compressors
+ providers-s3-object_listers
+ providers-s3-proto
+ clickhouse_client_udf
+ providers-s3-range_helpers
+ providers-s3-serializations
+)
+target_sources(providers-s3-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_actors_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_applicator_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_sink_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
+)
diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/actors/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3901547d5d
--- /dev/null
+++ b/ydb/library/yql/providers/s3/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-s3-common)
+target_link_libraries(providers-s3-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+ public-issue-protos
+)
+target_sources(providers-s3-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/common/util.cpp
+)
diff --git a/ydb/library/yql/providers/s3/common/CMakeLists.txt b/ydb/library/yql/providers/s3/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..687d9330bd
--- /dev/null
+++ b/ydb/library/yql/providers/s3/compressors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-s3-compressors)
+target_compile_options(providers-s3-compressors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(providers-s3-compressors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src
+)
+target_link_libraries(providers-s3-compressors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ libs-poco-Util
+ libs-brotli-dec
+ contrib-libs-libbz2
+ contrib-libs-lz4
+ contrib-libs-lzma
+ contrib-libs-zstd
+ clickhouse_client_udf
+)
+target_sources(providers-s3-compressors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/brotli.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/bzip2.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/gz.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/lz4io.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/zstd.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/compressors/xz.cpp
+)
diff --git a/ydb/library/yql/providers/s3/compressors/CMakeLists.txt b/ydb/library/yql/providers/s3/compressors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/compressors/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/compressors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b710ed0a9f
--- /dev/null
+++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-s3-expr_nodes)
+target_link_libraries(providers-s3-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-s3-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ad94789cb7
--- /dev/null
+++ b/ydb/library/yql/providers/s3/object_listers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-s3-object_listers)
+target_link_libraries(providers-s3-object_listers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-re2
+ cpp-string_utils-quote
+ cpp-xml-document
+ providers-common-http_gateway
+ library-yql-utils
+ yql-utils-threading
+)
+target_sources(providers-s3-object_listers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path.cpp
+)
+generate_enum_serilization(providers-s3-object_listers
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_list.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/s3/object_listers/yql_s3_list.h
+)
diff --git a/ydb/library/yql/providers/s3/object_listers/CMakeLists.txt b/ydb/library/yql/providers/s3/object_listers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/object_listers/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/object_listers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..05da0564a3
--- /dev/null
+++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-s3-object_listers-ut)
+target_include_directories(ydb-library-yql-providers-s3-object_listers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers
+)
+target_link_libraries(ydb-library-yql-providers-s3-object_listers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-s3-object_listers
+)
+target_link_options(ydb-library-yql-providers-s3-object_listers-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-s3-object_listers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-s3-object_listers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-s3-object_listers-ut
+ TEST_TARGET
+ ydb-library-yql-providers-s3-object_listers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-object_listers-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-object_listers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-s3-object_listers-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-s3-object_listers-ut)
diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..060b60bc71
--- /dev/null
+++ b/ydb/library/yql/providers/s3/path_generator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-s3-path_generator)
+target_compile_options(providers-s3-path_generator PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-s3-path_generator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-scheme
+ yql-minikql-datetime
+ yql-public-udf
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-s3-path_generator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/yql_s3_path_generator.cpp
+)
+generate_enum_serilization(providers-s3-path_generator
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/yql_s3_path_generator.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/s3/path_generator/yql_s3_path_generator.h
+)
diff --git a/ydb/library/yql/providers/s3/path_generator/CMakeLists.txt b/ydb/library/yql/providers/s3/path_generator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/path_generator/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/path_generator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a0d5457a0
--- /dev/null
+++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-s3-path_generator-ut)
+target_compile_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-s3-path_generator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator
+)
+target_link_libraries(ydb-library-yql-providers-s3-path_generator-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-s3-path_generator
+ library-yql-minikql
+ udf-service-stub
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-s3-path_generator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_generate_partitioning_rules_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_parse_partitioning_rules_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-s3-path_generator-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-s3-path_generator-ut
+ TEST_TARGET
+ ydb-library-yql-providers-s3-path_generator-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-path_generator-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-path_generator-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-s3-path_generator-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-s3-path_generator-ut)
diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..571cccfedb
--- /dev/null
+++ b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-s3-proto)
+target_link_libraries(providers-s3-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-s3-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/range.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/retry_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto
+)
+target_proto_addincls(providers-s3-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-s3-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4888c34be0
--- /dev/null
+++ b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-s3-provider)
+target_compile_options(providers-s3-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-s3-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-re2
+ library-cpp-json
+ cpp-protobuf-util
+ library-cpp-random_provider
+ library-cpp-retry
+ library-cpp-time_provider
+ cpp-xml-document
+ library-yql-ast
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-integration
+ minikql-comp_nodes-llvm
+ providers-common-config
+ providers-common-dq
+ providers-common-http_gateway
+ providers-common-mkql
+ providers-common-proto
+ providers-common-provider
+ common-schema-expr
+ providers-common-structured_token
+ common-token_accessor-client
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+ providers-result-expr_nodes
+ providers-s3-common
+ providers-s3-expr_nodes
+ providers-s3-object_listers
+ providers-s3-path_generator
+ providers-s3-proto
+ providers-s3-range_helpers
+ library-yql-utils
+ yql-utils-threading
+)
+target_sources(providers-s3-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_logical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_provider_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_settings.cpp
+)
diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a9ace22c01
--- /dev/null
+++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-s3-provider-ut)
+target_include_directories(ydb-library-yql-providers-s3-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider
+)
+target_link_libraries(ydb-library-yql-providers-s3-provider-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-s3-provider
+)
+target_link_options(ydb-library-yql-providers-s3-provider-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-s3-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-s3-provider-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-s3-provider-ut
+ TEST_TARGET
+ ydb-library-yql-providers-s3-provider-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-provider-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-provider-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-s3-provider-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-s3-provider-ut)
diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0827227867
--- /dev/null
+++ b/ydb/library/yql/providers/s3/range_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(providers-s3-range_helpers)
+target_compile_options(providers-s3-range_helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-s3-range_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-provider
+ providers-s3-proto
+ library-yql-utils
+ cpp-protobuf-util
+)
+target_sources(providers-s3-range_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/path_list_reader.cpp
+)
diff --git a/ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt b/ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/range_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a9182d67a9
--- /dev/null
+++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-s3-range_helpers-ut)
+target_compile_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers
+)
+target_link_libraries(ydb-library-yql-providers-s3-range_helpers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-s3-range_helpers
+ providers-common-provider
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/path_list_reader_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-s3-range_helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-s3-range_helpers-ut
+ TEST_TARGET
+ ydb-library-yql-providers-s3-range_helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-range_helpers-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-s3-range_helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-s3-range_helpers-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-s3-range_helpers-ut)
diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..84e91879cd
--- /dev/null
+++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-s3-serializations)
+target_compile_options(providers-s3-serializations PRIVATE
+ -DARCADIA_BUILD
+ -DUSE_PARQUET
+)
+target_include_directories(providers-s3-serializations PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src
+)
+target_link_libraries(providers-s3-serializations PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ libs-poco-Util
+ clickhouse_client_udf
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-s3-serializations PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp
+)
+generate_enum_serilization(providers-s3-serializations
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/serializations/serialization_interval.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/s3/serializations/serialization_interval.h
+)
diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/s3/serializations/CMakeLists.txt
+++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3150d2b9f0
--- /dev/null
+++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-solomon-async_io)
+target_compile_options(providers-solomon-async_io PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-solomon-async_io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-easy_parse
+ monlib-encode-json
+ minikql-computation-llvm
+ common-token_accessor-client
+ yql-public-types
+ yql-public-udf
+ yql-utils-log
+ dq-actors-compute
+ providers-solomon-proto
+)
+target_sources(providers-solomon-async_io PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/async_io/dq_solomon_write_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/async_io/metrics_encoder.cpp
+)
diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.txt
+++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..540c22ed8f
--- /dev/null
+++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-solomon-expr_nodes)
+target_link_libraries(providers-solomon-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-solomon-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..50220485d7
--- /dev/null
+++ b/ydb/library/yql/providers/solomon/gateway/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-solomon-gateway)
+target_link_libraries(providers-solomon-gateway PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-gateway
+ providers-solomon-provider
+)
+target_sources(providers-solomon-gateway PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/gateway/yql_solomon_gateway.cpp
+)
diff --git a/ydb/library/yql/providers/solomon/gateway/CMakeLists.txt b/ydb/library/yql/providers/solomon/gateway/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/solomon/gateway/CMakeLists.txt
+++ b/ydb/library/yql/providers/solomon/gateway/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b5ca6a669d
--- /dev/null
+++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-solomon-proto)
+target_link_libraries(providers-solomon-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-solomon-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto
+)
+target_proto_addincls(providers-solomon-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-solomon-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/solomon/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..03f51c5c1e
--- /dev/null
+++ b/ydb/library/yql/providers/solomon/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-solomon-provider)
+target_compile_options(providers-solomon-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-solomon-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-protos
+ yql-dq-expr_nodes
+ yql-dq-integration
+ providers-common-config
+ providers-common-proto
+ providers-common-provider
+ providers-common-transform
+ providers-dq-expr_nodes
+ providers-result-expr_nodes
+ providers-solomon-expr_nodes
+ providers-solomon-proto
+ yql-dq-opt
+)
+target_sources(providers-solomon-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_physical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/provider/yql_solomon_provider.cpp
+)
diff --git a/ydb/library/yql/providers/solomon/provider/CMakeLists.txt b/ydb/library/yql/providers/solomon/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/solomon/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/solomon/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ecd82e499c
--- /dev/null
+++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-stat-expr_nodes)
+target_link_libraries(providers-stat-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-stat-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2e72020a05
--- /dev/null
+++ b/ydb/library/yql/providers/stat/uploader/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-stat-uploader)
+target_link_libraries(providers-stat-uploader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+)
+target_sources(providers-stat-uploader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/uploader/yql_stat_uploader.cpp
+)
diff --git a/ydb/library/yql/providers/stat/uploader/CMakeLists.txt b/ydb/library/yql/providers/stat/uploader/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/stat/uploader/CMakeLists.txt
+++ b/ydb/library/yql/providers/stat/uploader/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..765fdd735e
--- /dev/null
+++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-ydb-actors)
+target_compile_options(providers-ydb-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-ydb-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-scheme
+ minikql-computation-llvm
+ common-token_accessor-client
+ yql-public-types
+ yql-utils-log
+ public-lib-experimental
+ cpp-client-ydb_driver
+ dq-actors-compute
+ providers-ydb-proto
+)
+target_sources(providers-ydb-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/actors/yql_ydb_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/actors/yql_ydb_source_factory.cpp
+)
diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/ydb/actors/CMakeLists.txt
+++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e867dae5a9
--- /dev/null
+++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-ydb-comp_nodes)
+target_compile_options(providers-ydb-comp_nodes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-ydb-comp_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-scheme
+ library-mkql_proto-protos
+ dq-actors-protos
+ minikql-computation-llvm
+ providers-common-structured_token
+ providers-ydb-proto
+ public-lib-experimental
+ cpp-client-ydb_driver
+)
+target_sources(providers-ydb-comp_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/comp_nodes/yql_kik_scan.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/comp_nodes/yql_ydb_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/comp_nodes/yql_ydb_dq_transform.cpp
+)
diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..99d4c2103a
--- /dev/null
+++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-ydb-expr_nodes)
+target_link_libraries(providers-ydb-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-ydb-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..43eb51761d
--- /dev/null
+++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(providers-ydb-proto)
+target_link_libraries(providers-ydb-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(providers-ydb-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto
+)
+target_proto_addincls(providers-ydb-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(providers-ydb-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/ydb/proto/CMakeLists.txt
+++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fee49f06ac
--- /dev/null
+++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-ydb-provider)
+target_compile_options(providers-ydb-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-ydb-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-random_provider
+ library-cpp-time_provider
+ cpp-yson-node
+ fq-libs-common
+ library-yql-ast
+ minikql-comp_nodes-llvm
+ providers-common-structured_token
+ common-token_accessor-client
+ library-yql-core
+ yql-core-type_ann
+ yql-dq-expr_nodes
+ yql-dq-integration
+ providers-common-config
+ providers-common-db_id_async_resolver
+ providers-common-dq
+ providers-common-mkql
+ providers-common-proto
+ providers-common-provider
+ common-schema-expr
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+ providers-result-expr_nodes
+ providers-ydb-expr_nodes
+ providers-ydb-proto
+ public-lib-experimental
+ cpp-client-ydb_driver
+ cpp-client-ydb_table
+)
+target_sources(providers-ydb-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_datasink_execution.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_load_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_logical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_physical_opt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_provider_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/provider/yql_ydb_settings.cpp
+)
diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/ydb/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c762ef5d46
--- /dev/null
+++ b/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codec)
+add_subdirectory(common)
+add_subdirectory(comp_nodes)
+add_subdirectory(dq_task_preprocessor)
+add_subdirectory(expr_nodes)
+add_subdirectory(gateway)
+add_subdirectory(job)
+add_subdirectory(lib)
+add_subdirectory(mkql_dq)
+add_subdirectory(opt)
+add_subdirectory(provider)
diff --git a/ydb/library/yql/providers/yt/CMakeLists.txt b/ydb/library/yql/providers/yt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eae0a3b160
--- /dev/null
+++ b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codegen)
+add_subdirectory(ut)
+
+add_library(providers-yt-codec)
+target_compile_options(providers-yt-codec PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-codec PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-brotli
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-interface
+ cpp-mapreduce-io
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+ providers-common-codec
+ common-schema-mkql
+ common-schema-parser
+ providers-yt-common
+ yt-lib-mkql_helpers
+ yt-lib-skiff
+ yt-codec-codegen
+)
+target_sources(providers-yt-codec PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp
+)
diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/codec/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/codec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c3ae973d20
--- /dev/null
+++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,106 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(yt-codec-codegen)
+target_compile_options(yt-codec-codegen PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-codec-codegen PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ ydb-library-binary_json
+ minikql-computation-llvm
+ parser-pg_wrapper-interface
+ library-yql-utils
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ llvm12-lib-Support
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+ yql-minikql-codegen
+)
+target_sources(yt-codec-codegen PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp
+)
+
+add_global_library_for(yt-codec-codegen.global yt-codec-codegen)
+target_compile_options(yt-codec-codegen.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-codec-codegen.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ ydb-library-binary_json
+ minikql-computation-llvm
+ parser-pg_wrapper-interface
+ library-yql-utils
+ llvm12-lib-IR
+ lib-ExecutionEngine-MCJIT
+ llvm12-lib-Linker
+ llvm12-lib-Support
+ lib-Target-X86
+ Target-X86-AsmParser
+ lib-Transforms-IPO
+ yql-minikql-codegen
+)
+target_sources(yt-codec-codegen.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc
+ COMMAND
+ ${LLVMOPT}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc
+ -O2
+ -globalopt
+ -globaldce
+ -internalize
+ -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc
+ COMMAND
+ ${LLVMLINK}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc
+)
+llvm_compile_cxx(yt-codec-codegen.global
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+resources(yt-codec-codegen.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp
+ INPUTS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc
+ KEYS
+ /llvm_bc/YtCodecFuncs
+)
diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..613308b30c
--- /dev/null
+++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-yt-codec-codegen-ut)
+target_compile_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen
+)
+target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yt-codec-codegen
+ minikql-computation-llvm
+ udf-service-exception_policy
+ library-yql-sql
+ yql-sql-pg_dummy
+ providers-yt-codec
+)
+target_link_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-yt-codec-codegen-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-yt-codec-codegen-ut
+ TEST_TARGET
+ ydb-library-yql-providers-yt-codec-codegen-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-codec-codegen-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-codec-codegen-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-yt-codec-codegen-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-yt-codec-codegen-ut)
diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..97d7a200e6
--- /dev/null
+++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-yt-codec-ut)
+target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-yt-codec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec
+)
+target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-yt-codec
+ cpp-yson-node
+ minikql-computation-llvm
+ udf-service-exception_policy
+ library-yql-sql
+ yql-sql-pg_dummy
+ providers-common-codec
+ providers-common-mkql
+ yt-lib-yson_helpers
+)
+target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-yt-codec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-yt-codec-ut
+ TEST_TARGET
+ ydb-library-yql-providers-yt-codec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-codec-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-codec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-yt-codec-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-yt-codec-ut)
diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3609b9840e
--- /dev/null
+++ b/ydb/library/yql/providers/yt/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-yt-common)
+target_compile_options(providers-yt-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-regex-pcre
+ cpp-string_utils-parse_size
+ cpp-yson-node
+ cpp-mapreduce-interface
+ library-yql-ast
+ yql-utils-log
+ providers-common-codec
+ providers-common-config
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-yt-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/common/yql_configuration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/common/yql_names.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp
+)
+generate_enum_serilization(providers-yt-common
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/common/yql_yt_settings.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/yt/common/yql_yt_settings.h
+)
diff --git a/ydb/library/yql/providers/yt/common/CMakeLists.txt b/ydb/library/yql/providers/yt/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/common/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e724b27888
--- /dev/null
+++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(dq)
+add_subdirectory(ut)
+
+add_library(providers-yt-comp_nodes)
+target_compile_options(providers-yt-comp_nodes PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-comp_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-brotli
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+ providers-common-codec
+ providers-common-mkql
+ providers-yt-codec
+ providers-yt-expr_nodes
+)
+target_sources(providers-yt-comp_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp
+)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9082a770b5
--- /dev/null
+++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-comp_nodes-dq)
+target_compile_options(yt-comp_nodes-dq PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(yt-comp_nodes-dq PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/include
+)
+target_link_libraries(yt-comp_nodes-dq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ minikql-computation-llvm
+ providers-yt-comp_nodes
+ providers-yt-codec
+ providers-common-codec
+ core-formats-arrow
+ cpp-mapreduce-interface
+ cpp-mapreduce-common
+ cpp-yson-node
+ yt-yt-core
+ public-udf-arrow
+ libs-apache-arrow
+ contrib-libs-flatbuffers
+)
+target_sources(yt-comp_nodes-dq PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_writer.cpp
+)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0fec42c728
--- /dev/null
+++ b/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-yt-comp_nodes-ut)
+target_compile_options(ydb-library-yql-providers-yt-comp_nodes-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-yt-comp_nodes-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes
+)
+target_link_libraries(ydb-library-yql-providers-yt-comp_nodes-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-yt-comp_nodes
+ library-cpp-random_provider
+ library-cpp-time_provider
+ minikql-comp_nodes-llvm
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-providers-yt-comp_nodes-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-yt-comp_nodes-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/ut/yql_mkql_output_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ TEST_TARGET
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-comp_nodes-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-yql-providers-yt-comp_nodes-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-yt-comp_nodes-ut)
diff --git a/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/comp_nodes/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7d03fe3302
--- /dev/null
+++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-yt-dq_task_preprocessor)
+target_compile_options(providers-yt-dq_task_preprocessor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ library-yql-utils
+ yql-utils-log
+ yql-utils-failure_injector
+ library-yql-minikql
+ minikql-computation-llvm
+ providers-common-codec
+ providers-dq-interface
+ providers-yt-codec
+ yt-gateway-lib
+ yt-lib-yson_helpers
+)
+target_sources(providers-yt-dq_task_preprocessor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/dq_task_preprocessor/yql_yt_dq_task_preprocessor.cpp
+)
diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed0dc39cb7
--- /dev/null
+++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(Python3 REQUIRED)
+
+add_library(providers-yt-expr_nodes)
+target_link_libraries(providers-yt-expr_nodes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(providers-yt-expr_nodes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.json
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ COMMAND
+ Python3::Interpreter
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/gen/__main__.py
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.jnj
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.json
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h
+)
diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..323acc09e8
--- /dev/null
+++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-gateway-file)
+target_compile_options(yt-gateway-file PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-gateway-file PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ library-yql-utils
+ yql-utils-threading
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-type_ann
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-gateway
+ providers-common-mkql
+ providers-common-provider
+ common-schema-expr
+ common-schema-mkql
+ providers-result-expr_nodes
+ providers-yt-common
+ providers-yt-comp_nodes
+ providers-yt-expr_nodes
+ yt-gateway-lib
+ yt-lib-infer_schema
+ yt-lib-lambda_builder
+ yt-lib-mkql_helpers
+ yt-lib-res_pull
+ yt-lib-schema
+ yt-lib-yson_helpers
+ providers-yt-provider
+ yql-parser-pg_wrapper
+)
+target_sources(yt-gateway-file PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/file/yql_yt_file_comp_nodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/file/yql_yt_file_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/file/yql_yt_file.cpp
+)
diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6721e4c5ba
--- /dev/null
+++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-gateway-lib)
+target_compile_options(yt-gateway-lib PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-gateway-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-regex-pcre
+ cpp-string_utils-url
+ cpp-threading-future
+ cpp-yson-node
+ cpp-mapreduce-client
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ yql-core-file_storage
+ yql-public-issue
+ library-yql-utils
+ yql-utils-log
+ yql-utils-threading
+ yql-core-type_ann
+ providers-common-codec
+ providers-common-gateway
+ providers-yt-common
+ yt-lib-hash
+ yt-lib-res_pull
+ yt-lib-url_mapper
+ yt-lib-yson_helpers
+)
+target_sources(yt-gateway-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.cpp
+)
diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f8b5242d56
--- /dev/null
+++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yt-gateway-native)
+target_compile_options(yt-gateway-native PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-gateway-native PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-sorted_vector
+ cpp-digest-md5
+ library-cpp-random_provider
+ cpp-streams-brotli
+ cpp-threading-future
+ library-cpp-time_provider
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ library-yql-ast
+ yql-core-file_storage
+ minikql-comp_nodes-llvm
+ library-yql-utils
+ yql-utils-log
+ yql-utils-threading
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-issue
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-mkql
+ providers-common-proto
+ providers-common-provider
+ common-schema-expr
+ providers-result-expr_nodes
+ providers-stat-expr_nodes
+ providers-stat-uploader
+ providers-yt-codec
+ providers-yt-common
+ providers-yt-expr_nodes
+ yt-gateway-lib
+ providers-yt-job
+ yt-lib-expr_traits
+ yt-lib-infer_schema
+ yt-lib-lambda_builder
+ yt-lib-log
+ yt-lib-mkql_helpers
+ yt-lib-res_pull
+ yt-lib-schema
+ yt-lib-skiff
+ yt-lib-url_mapper
+ yt-lib-yson_helpers
+ yt-lib-init_yt_api
+ yt-lib-config_clusters
+ providers-yt-provider
+)
+target_sources(yt-gateway-native PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_exec_ctx.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_lambda_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_native.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_native_folders.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_op_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_qb2.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_spec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/yql_yt_transform.cpp
+)
diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3212f5b67f
--- /dev/null
+++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-yt-gateway-native-ut)
+target_compile_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yt-gateway-native
+ yt-gateway-file
+ yql-core-ut_common
+ cpp-testing-mock_server
+ cpp-testing-common
+ udf-service-terminate_policy
+ yql-sql-pg
+)
+target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-yt-gateway-native-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-yt-gateway-native-ut
+ TEST_TARGET
+ ydb-library-yql-providers-yt-gateway-native-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-gateway-native-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-gateway-native-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-yt-gateway-native-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-yt-gateway-native-ut)
diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec6d710928
--- /dev/null
+++ b/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-gateway-profile)
+target_compile_options(yt-gateway-profile PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-gateway-profile PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-log
+ providers-yt-provider
+)
+target_sources(yt-gateway-profile PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/profile/yql_yt_profiling.cpp
+)
diff --git a/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt b/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/gateway/profile/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d8fe463cb8
--- /dev/null
+++ b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-yt-job)
+target_compile_options(providers-yt-job PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-job PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-random_provider
+ cpp-streams-brotli
+ library-cpp-time_provider
+ cpp-yson-node
+ cpp-mapreduce-interface
+ mapreduce-library-user_job_statistics
+ minikql-comp_nodes-llvm
+ yql-public-udf
+ library-yql-utils
+ yql-utils-backtrace
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-mkql
+ common-schema-mkql
+ common-schema-parser
+ providers-yt-codec
+ providers-yt-common
+ providers-yt-comp_nodes
+ yt-lib-infer_schema
+ yt-lib-lambda_builder
+ yt-lib-mkql_helpers
+)
+target_sources(providers-yt-job PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_infer_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_stats_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_user.cpp
+)
diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.txt b/ydb/library/yql/providers/yt/job/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/job/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/job/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..65bef0287b
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-config_clusters)
+target_link_libraries(yt-lib-config_clusters PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-proto
+)
+target_sources(yt-lib-config_clusters PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..043abfbe19
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-expr_traits)
+target_compile_options(yt-lib-expr_traits PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-expr_traits PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ minikql-computation-llvm
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ providers-common-provider
+ providers-yt-common
+ providers-yt-expr_nodes
+)
+target_sources(yt-lib-expr_traits PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/expr_traits/yql_expr_traits.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cbf80b673c
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-graph_reorder)
+target_compile_options(yt-lib-graph_reorder PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-graph_reorder PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ providers-common-provider
+)
+target_sources(yt-lib-graph_reorder PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/graph_reorder/yql_graph_reorder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/graph_reorder/yql_graph_reorder_old.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/graph_reorder/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83599316ec
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-hash)
+target_link_libraries(yt-lib-hash PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-openssl
+ library-yql-ast
+ library-yql-utils
+ yql-utils-log
+ library-yql-core
+)
+target_sources(yt-lib-hash PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_op_hash.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fb7d6146ed
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-infer_schema)
+target_link_libraries(yt-lib-infer_schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ cpp-mapreduce-interface
+ yql-public-issue
+ yql-utils-log
+ yql-core-issue
+)
+target_sources(yt-lib-infer_schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/infer_schema/infer_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/infer_schema/infer_schema_rpc_impl.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/infer_schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..37772b3ac5
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-init_yt_api)
+target_link_libraries(yt-lib-init_yt_api PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-log
+ cpp-mapreduce-common
+ cpp-mapreduce-client
+ cpp-yson-node
+)
+target_sources(yt-lib-init_yt_api PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/init_yt_api/init.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/init_yt_api/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9a86d0f745
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-key_filter)
+target_compile_options(yt-lib-key_filter PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-key_filter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-core-expr_nodes
+ library-yql-core
+ library-yql-utils
+ library-yql-ast
+)
+target_sources(yt-lib-key_filter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/key_filter/yql_key_filter.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/key_filter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aaf3957c88
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-lambda_builder)
+target_compile_options(yt-lib-lambda_builder PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-lambda_builder PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-random_provider
+ library-cpp-time_provider
+ library-yql-ast
+ minikql-computation-llvm
+ yql-public-udf
+ library-yql-utils
+ providers-common-mkql
+)
+target_sources(yt-lib-lambda_builder PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/lambda_builder/lambda_builder.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a9eff09932
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-log)
+target_link_libraries(yt-lib-log PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-lib-init_yt_api
+ mapreduce-interface-logging
+ yql-utils-log
+)
+target_sources(yt-lib-log PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a01227981b
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-mkql_helpers)
+target_compile_options(yt-lib-mkql_helpers PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-mkql_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ library-yql-core
+ library-yql-ast
+ library-yql-utils
+)
+target_sources(yt-lib-mkql_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/mkql_helpers/mkql_helpers.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/mkql_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e632b9235b
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-res_pull)
+target_compile_options(yt-lib-res_pull PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-res_pull PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+ providers-common-codec
+ providers-yt-codec
+ yt-lib-mkql_helpers
+)
+target_sources(yt-lib-res_pull PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/res_pull/res_or_pull.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/res_pull/table_limiter.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/res_pull/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54481cb9cc
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-row_spec)
+target_compile_options(yt-lib-row_spec PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yt-lib-row_spec PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-yql-ast
+ yql-core-expr_nodes_gen
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-issue
+ providers-common-codec
+ providers-common-provider
+ providers-common-schema
+ common-schema-expr
+ providers-yt-common
+ providers-yt-expr_nodes
+)
+target_sources(yt-lib-row_spec PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/row_spec/yql_row_spec.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/row_spec/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a26927e4a
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-schema)
+target_link_libraries(yt-lib-schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ cpp-mapreduce-interface
+ library-yql-utils
+ yql-utils-log
+ providers-common-codec
+ providers-yt-common
+)
+target_sources(yt-lib-schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/schema/schema.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..262c3a5374
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-skiff)
+target_link_libraries(yt-lib-skiff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ providers-yt-common
+ providers-common-codec
+ common-schema-skiff
+ library-yql-utils
+)
+target_sources(yt-lib-skiff PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/skiff/yql_skiff_schema.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/skiff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..46156a0caf
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-url_mapper)
+target_link_libraries(yt-lib-url_mapper PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ providers-common-proto
+ cpp-regex-pcre
+ library-cpp-uri
+ library-cpp-cgiparam
+)
+target_sources(yt-lib-url_mapper PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/url_mapper/yql_yt_url_mapper.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/url_mapper/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e67eddbb50
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-yson_helpers)
+target_link_libraries(yt-lib-yson_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ library-yql-utils
+ yql-utils-log
+ providers-yt-common
+)
+target_sources(yt-lib-yson_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/yson_helpers/yson_helpers.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/yson_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..597c4676e3
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-yt_download)
+target_link_libraries(yt-lib-yt_download PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-lib-init_yt_api
+ yql-core-file_storage
+ yql-utils-log
+ library-yql-utils
+ library-cpp-cgiparam
+ cpp-digest-md5
+)
+target_sources(yt-lib-yt_download PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/yt_download/yt_download.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/yt_download/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8083ea3f71
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-yt_rpc_helpers INTERFACE)
+target_link_libraries(yt-lib-yt_rpc_helpers INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-mapreduce-interface
+)
diff --git a/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/yt_rpc_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83565462a7
--- /dev/null
+++ b/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-lib-yt_url_lister)
+target_link_libraries(yt-lib-yt_url_lister PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cgiparam
+ core-url_lister-interface
+ yt-lib-init_yt_api
+ yql-utils-log
+ cpp-mapreduce-interface
+)
+target_sources(yt-lib-yt_url_lister PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/yt_url_lister/yt_url_lister.cpp
+)
diff --git a/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt b/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/lib/yt_url_lister/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ffa214eb3
--- /dev/null
+++ b/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-yt-mkql_dq)
+target_compile_options(providers-yt-mkql_dq PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-mkql_dq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ library-yql-minikql
+ yql-public-udf
+ library-yql-utils
+)
+target_sources(providers-yt-mkql_dq PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/mkql_dq/yql_yt_dq_transform.cpp
+)
diff --git a/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt b/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/mkql_dq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/opt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4fb42d76bd
--- /dev/null
+++ b/ydb/library/yql/providers/yt/opt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(providers-yt-opt)
+target_compile_options(providers-yt-opt PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-opt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-lib-row_spec
+ yql-core-expr_nodes
+ library-yql-core
+ library-yql-ast
+)
+target_sources(providers-yt-opt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/opt/yql_yt_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/opt/yql_yt_key_selector.cpp
+)
diff --git a/ydb/library/yql/providers/yt/opt/CMakeLists.txt b/ydb/library/yql/providers/yt/opt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/opt/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/opt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c3499508b5
--- /dev/null
+++ b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,117 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(providers-yt-provider)
+target_compile_options(providers-yt-provider PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(providers-yt-provider PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yson-node
+ library-cpp-disjoint_sets
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ library-yql-ast
+ yql-core-extract_predicate
+ yql-public-udf
+ public-udf-tz
+ library-yql-sql
+ library-yql-utils
+ yql-utils-log
+ library-yql-core
+ yql-core-expr_nodes
+ yql-core-issue
+ core-issue-protos
+ yql-core-peephole_opt
+ yql-core-type_ann
+ yql-core-file_storage
+ core-url_lister-interface
+ yql-dq-integration
+ yql-dq-opt
+ yql-dq-type_ann
+ library-yql-minikql
+ providers-common-codec
+ providers-common-config
+ providers-common-dq
+ providers-common-mkql
+ providers-common-proto
+ providers-common-activation
+ providers-common-provider
+ common-schema-expr
+ providers-common-transform
+ providers-dq-common
+ providers-dq-expr_nodes
+ providers-result-expr_nodes
+ providers-stat-expr_nodes
+ providers-yt-common
+ providers-yt-expr_nodes
+ yt-lib-expr_traits
+ yt-lib-graph_reorder
+ yt-lib-hash
+ yt-lib-key_filter
+ yt-lib-mkql_helpers
+ yt-lib-res_pull
+ yt-lib-row_spec
+ yt-lib-skiff
+ yt-lib-yson_helpers
+ providers-yt-opt
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(providers-yt-provider PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_trackable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasource_constraints.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasource_exec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasource_type_ann.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_epoch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_gateway.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_horizontal_join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_intent_determination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_io_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_join_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_join_reorder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_load_columnar_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_logical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_mkql_compiler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_op_hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_op_settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_peephole.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_dq_integration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_dq_optimize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_dq_hybrid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_wide_flow.cpp
+)
+generate_enum_serilization(providers-yt-provider
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_op_settings.h
+ INCLUDE_HEADERS
+ ydb/library/yql/providers/yt/provider/yql_yt_op_settings.h
+)
diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/provider/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/provider/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..efcc86d4c3
--- /dev/null
+++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-providers-yt-provider-ut)
+target_compile_options(ydb-library-yql-providers-yt-provider-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-providers-yt-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider
+)
+target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ providers-yt-provider
+ yt-lib-schema
+ yt-gateway-file
+ yql-core-ut_common
+ library-yql-ast
+ udf-service-terminate_policy
+ yql-core-services
+ library-yql-core
+ providers-common-gateway
+ providers-common-provider
+ providers-common-config
+ yql-providers-config
+ providers-dq-common
+ providers-dq-provider
+ providers-result-provider
+ yql-sql-v1
+ minikql-invoke_builtins-llvm
+ yql-sql-pg
+)
+target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_dq_integration_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_epoch_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_cbo_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-providers-yt-provider-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-providers-yt-provider-ut
+ TEST_TARGET
+ ydb-library-yql-providers-yt-provider-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-provider-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-providers-yt-provider-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-providers-yt-provider-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-providers-yt-provider-ut)
diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt
+++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f63cbd1d01
--- /dev/null
+++ b/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-public-decimal)
+target_link_libraries(yql-public-decimal PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yql-public-decimal PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp
+)
diff --git a/ydb/library/yql/public/decimal/CMakeLists.txt b/ydb/library/yql/public/decimal/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/decimal/CMakeLists.txt
+++ b/ydb/library/yql/public/decimal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a49ed9705
--- /dev/null
+++ b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-decimal-ut)
+target_include_directories(ydb-library-yql-public-decimal-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal
+)
+target_link_libraries(ydb-library-yql-public-decimal-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-public-decimal
+)
+target_link_options(ydb-library-yql-public-decimal-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-public-decimal-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/ut/yql_decimal_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/ut/yql_wide_int_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-decimal-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-decimal-ut
+ TEST_TARGET
+ ydb-library-yql-public-decimal-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-decimal-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-decimal-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-decimal-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-decimal-ut)
diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/decimal/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/decimal/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..25dad8fc57
--- /dev/null
+++ b/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-public-embedded)
+target_compile_options(yql-public-embedded PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-public-embedded PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-resource
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-client
+ cpp-mapreduce-common
+ library-yql-ast
+ yql-sql-pg
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-defs
+ core-file_storage-proto
+ core-file_storage-http_download
+ core-services-mounts
+ yql-core-user_data
+ library-yql-minikql
+ library-yql-protos
+ udf-service-exception_policy
+ yql-utils-backtrace
+ yql-utils-log
+ yql-parser-pg_wrapper
+ providers-common-proto
+ providers-common-udf_resolve
+ yql-core-url_preprocessing
+ yql-core-url_lister
+ yt-gateway-native
+ yt-lib-log
+ yt-lib-yt_download
+ yt-lib-yt_url_lister
+ providers-yt-provider
+)
+target_sources(yql-public-embedded PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp
+)
diff --git a/ydb/library/yql/public/embedded/CMakeLists.txt b/ydb/library/yql/public/embedded/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/embedded/CMakeLists.txt
+++ b/ydb/library/yql/public/embedded/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/fastcheck/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/fastcheck/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62f467c5e8
--- /dev/null
+++ b/ydb/library/yql/public/fastcheck/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-public-fastcheck)
+target_link_libraries(yql-public-fastcheck PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ core-services-mounts
+ yql-core-user_data
+ udf-service-exception_policy
+ library-yql-sql
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ providers-common-provider
+)
+target_sources(yql-public-fastcheck PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck.cpp
+)
diff --git a/ydb/library/yql/public/fastcheck/CMakeLists.txt b/ydb/library/yql/public/fastcheck/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/fastcheck/CMakeLists.txt
+++ b/ydb/library/yql/public/fastcheck/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54d5d97733
--- /dev/null
+++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-fastcheck-ut)
+target_include_directories(ydb-library-yql-public-fastcheck-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck
+)
+target_link_libraries(ydb-library-yql-public-fastcheck-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-public-fastcheck
+)
+target_link_options(ydb-library-yql-public-fastcheck-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-public-fastcheck-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-fastcheck-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-fastcheck-ut
+ TEST_TARGET
+ ydb-library-yql-public-fastcheck-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-fastcheck-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-fastcheck-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-fastcheck-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-fastcheck-ut)
diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/issue/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/issue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..33f3dd529d
--- /dev/null
+++ b/ydb/library/yql/public/issue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-public-issue)
+target_link_libraries(yql-public-issue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-colorizer
+ library-cpp-resource
+ api-protos
+ public-issue-protos
+ library-yql-utils
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-public-issue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_message.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_warning.cpp
+)
+generate_enum_serilization(yql-public-issue
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_warning.h
+ INCLUDE_HEADERS
+ ydb/library/yql/public/issue/yql_warning.h
+)
diff --git a/ydb/library/yql/public/issue/CMakeLists.txt b/ydb/library/yql/public/issue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/issue/CMakeLists.txt
+++ b/ydb/library/yql/public/issue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bacc602d98
--- /dev/null
+++ b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(public-issue-protos)
+target_link_libraries(public-issue-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(public-issue-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto
+)
+target_proto_addincls(public-issue-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(public-issue-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.txt b/ydb/library/yql/public/issue/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/issue/protos/CMakeLists.txt
+++ b/ydb/library/yql/public/issue/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2553a2e1ba
--- /dev/null
+++ b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-issue-ut)
+target_include_directories(ydb-library-yql-public-issue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue
+)
+target_link_libraries(ydb-library-yql-public-issue-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-public-issue
+ cpp-unicode-normalization
+)
+target_link_options(ydb-library-yql-public-issue-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-public-issue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_manager_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_utils_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_warning_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-issue-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-issue-ut
+ TEST_TARGET
+ ydb-library-yql-public-issue-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-issue-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-issue-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-issue-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-issue-ut)
diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.txt b/ydb/library/yql/public/issue/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/issue/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/issue/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a417180394
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(examples)
+add_subdirectory(helpers)
+add_subdirectory(io_specs)
+add_subdirectory(ut)
+
+add_library(yql-public-purecalc)
+target_compile_options(yql-public-purecalc PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-public-purecalc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ udf-service-exception_policy
+ public-purecalc-common
+)
+target_sources(yql-public-purecalc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/CMakeLists.txt b/ydb/library/yql/public/purecalc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..301054c4de
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(public-purecalc-common)
+target_compile_options(public-purecalc-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(public-purecalc-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-sql-pg
+ library-yql-ast
+ yql-core-services
+ core-services-mounts
+ yql-core-user_data
+ minikql-comp_nodes-llvm
+ yql-utils-backtrace
+ yql-utils-log
+ library-yql-core
+ yql-core-type_ann
+ yql-parser-pg_wrapper
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-mkql
+ providers-common-provider
+ common-schema-expr
+ providers-common-udf_resolve
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(public-purecalc-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp
+)
+generate_enum_serilization(public-purecalc-common
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h
+ INCLUDE_HEADERS
+ ydb/library/yql/public/purecalc/common/interface.h
+)
diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/common/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b225306952
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(protobuf)
+target_compile_options(protobuf PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-purecalc
+ purecalc-io_specs-protobuf
+ purecalc-helpers-stream
+ contrib-libs-protobuf
+)
+target_link_options(protobuf PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto
+)
+target_sources(protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp
+)
+target_allocator(protobuf
+ system_allocator
+)
+target_proto_addincls(protobuf
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(protobuf
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(protobuf)
diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1c92824ec5
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(protobuf_pull_list)
+target_compile_options(protobuf_pull_list PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(protobuf_pull_list PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-purecalc
+ purecalc-io_specs-protobuf
+ purecalc-helpers-stream
+ contrib-libs-protobuf
+)
+target_link_options(protobuf_pull_list PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(protobuf_pull_list PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto
+)
+target_sources(protobuf_pull_list PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp
+)
+target_allocator(protobuf_pull_list
+ system_allocator
+)
+target_proto_addincls(protobuf_pull_list
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(protobuf_pull_list
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(protobuf_pull_list)
diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5bf9487361
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(skiff_pull_list)
+target_compile_options(skiff_pull_list PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(skiff_pull_list PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-purecalc
+ purecalc-io_specs-mkql
+)
+target_link_options(skiff_pull_list PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(skiff_pull_list PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/skiff_pull_list/main.cpp
+)
+target_allocator(skiff_pull_list
+ system_allocator
+)
+vcs_info(skiff_pull_list)
diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f83ed3b540
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protobuf)
+add_subdirectory(stream)
+
+add_library(public-purecalc-helpers INTERFACE)
+target_link_libraries(public-purecalc-helpers INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ purecalc-helpers-protobuf
+ purecalc-helpers-stream
+)
diff --git a/ydb/library/yql/public/purecalc/helpers/CMakeLists.txt b/ydb/library/yql/public/purecalc/helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/helpers/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f473a2304
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(purecalc-helpers-protobuf)
+target_link_libraries(purecalc-helpers-protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-yson-node
+ yt_proto-yt-formats
+)
+target_sources(purecalc-helpers-protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/helpers/protobuf/schema_from_proto.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt b/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/helpers/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..778b96d4ba
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(purecalc-helpers-stream)
+target_compile_options(purecalc-helpers-stream PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(purecalc-helpers-stream PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-purecalc-common
+)
+target_sources(purecalc-helpers-stream PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/helpers/stream/stream_from_vector.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt b/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/helpers/stream/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a94716ee3e
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(purecalc-io_specs-mkql)
+target_compile_options(purecalc-io_specs-mkql PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(purecalc-io_specs-mkql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-purecalc-common
+ providers-yt-codec
+ providers-yt-common
+ yt-lib-mkql_helpers
+ providers-common-codec
+ common-schema-mkql
+)
+target_sources(purecalc-io_specs-mkql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..de063c0433
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut)
+target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ udf-service-exception_policy
+ public-purecalc-common
+ purecalc-io_specs-mkql
+ purecalc-ut-lib
+)
+target_link_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ TEST_TARGET
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-library-yql-public-purecalc-io_specs-mkql-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-purecalc-io_specs-mkql-ut)
diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b21a40ca76
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(purecalc-io_specs-protobuf)
+target_compile_options(purecalc-io_specs-protobuf PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(purecalc-io_specs-protobuf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-purecalc-common
+ purecalc-io_specs-protobuf_raw
+)
+target_sources(purecalc-io_specs-protobuf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/spec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/proto_variant.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..21f5abdd56
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(yql-public-purecalc-io_specs-protobuf-ut)
+target_compile_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-protobuf-util
+ udf-service-exception_policy
+ public-purecalc-common
+ purecalc-io_specs-protobuf
+ purecalc-ut-protos
+)
+target_link_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yql-public-purecalc-io_specs-protobuf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/test_spec.cpp
+)
+set_property(
+ TARGET
+ yql-public-purecalc-io_specs-protobuf-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ yql-public-purecalc-io_specs-protobuf-ut
+ TEST_TARGET
+ yql-public-purecalc-io_specs-protobuf-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ yql-public-purecalc-io_specs-protobuf-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ yql-public-purecalc-io_specs-protobuf-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(yql-public-purecalc-io_specs-protobuf-ut
+ system_allocator
+)
+vcs_info(yql-public-purecalc-io_specs-protobuf-ut)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e482710c07
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(purecalc-io_specs-protobuf_raw)
+target_compile_options(purecalc-io_specs-protobuf_raw PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ public-purecalc-common
+ purecalc-helpers-protobuf
+)
+target_sources(purecalc-io_specs-protobuf_raw PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db6a308f3a
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(ydb-library-yql-public-purecalc-ut)
+target_compile_options(ydb-library-yql-public-purecalc-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb-library-yql-public-purecalc-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-public-purecalc
+ purecalc-io_specs-protobuf
+ purecalc-ut-protos
+)
+target_link_options(ydb-library-yql-public-purecalc-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-public-purecalc-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_user_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_eval.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_pool.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-purecalc-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-purecalc-ut
+ TEST_TARGET
+ ydb-library-yql-public-purecalc-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-purecalc-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-purecalc-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-purecalc-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-purecalc-ut)
diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..36bfa6b4d5
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(purecalc-ut-lib)
+target_link_libraries(purecalc-ut-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+)
+target_sources(purecalc-ut-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp
+)
diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..12f10544f8
--- /dev/null
+++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(purecalc-ut-protos)
+target_link_libraries(purecalc-ut-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(purecalc-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto
+)
+target_proto_addincls(purecalc-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(purecalc-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt
+++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6af082dd57
--- /dev/null
+++ b/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yql-public-types)
+target_link_libraries(yql-public-types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yql-public-types PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto
+)
+target_proto_addincls(yql-public-types
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yql-public-types
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/public/types/CMakeLists.txt b/ydb/library/yql/public/types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/types/CMakeLists.txt
+++ b/ydb/library/yql/public/types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b23af34525
--- /dev/null
+++ b/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(arrow)
+add_subdirectory(service)
+add_subdirectory(support)
+add_subdirectory(tz)
+add_subdirectory(ut)
+
+add_library(yql-public-udf)
+target_compile_options(yql-public-udf PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-public-udf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-enum_codegen
+ library-cpp-resource
+ yql-public-decimal
+ yql-public-types
+ cpp-deprecated-atomic
+)
+target_sources(yql-public-udf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.cpp
+)
diff --git a/ydb/library/yql/public/udf/CMakeLists.txt b/ydb/library/yql/public/udf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/arrow/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/arrow/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..322d3440a5
--- /dev/null
+++ b/ydb/library/yql/public/udf/arrow/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-udf-arrow)
+target_compile_options(public-udf-arrow PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(public-udf-arrow PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ libs-apache-arrow
+)
+target_sources(public-udf-arrow PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/args_dechunker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/udf_arrow_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/bit_util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/util.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/block_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/block_item.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/block_item_hasher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/block_item_comparator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/arrow/block_type_helper.cpp
+)
diff --git a/ydb/library/yql/public/udf/arrow/CMakeLists.txt b/ydb/library/yql/public/udf/arrow/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/arrow/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/arrow/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c0011de5e5
--- /dev/null
+++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(udf-service-exception_policy)
+target_compile_options(udf-service-exception_policy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(udf-service-exception_policy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ yql-public-udf
+)
+target_sources(udf-service-exception_policy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp
+)
diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dca6cc3d42
--- /dev/null
+++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(udf-service-stub)
+target_compile_options(udf-service-stub PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(udf-service-stub PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+)
+target_sources(udf-service-stub PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp
+)
diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/service/stub/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83f4698355
--- /dev/null
+++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(udf-service-terminate_policy)
+target_compile_options(udf-service-terminate_policy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(udf-service-terminate_policy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ yql-public-udf
+)
+target_sources(udf-service-terminate_policy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp
+)
diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/support/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/support/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ce3f0497ca
--- /dev/null
+++ b/ydb/library/yql/public/udf/support/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-udf-support)
+target_compile_options(public-udf-support PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(public-udf-support PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+)
+target_sources(public-udf-support PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/support/udf_support.cpp
+)
diff --git a/ydb/library/yql/public/udf/support/CMakeLists.txt b/ydb/library/yql/public/udf/support/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/support/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/support/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..764f26f8b1
--- /dev/null
+++ b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(public-udf-tz)
+target_link_libraries(public-udf-tz PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(public-udf-tz PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp
+)
diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.txt b/ydb/library/yql/public/udf/tz/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/tz/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/tz/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5008efd000
--- /dev/null
+++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-udf-tz-ut)
+target_include_directories(ydb-library-yql-public-udf-tz-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz
+)
+target_link_libraries(ydb-library-yql-public-udf-tz-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ public-udf-tz
+)
+target_link_options(ydb-library-yql-public-udf-tz-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-public-udf-tz-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-udf-tz-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-udf-tz-ut
+ TEST_TARGET
+ ydb-library-yql-public-udf-tz-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-udf-tz-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-udf-tz-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-udf-tz-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-udf-tz-ut)
diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..29683f1076
--- /dev/null
+++ b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-public-udf-ut)
+target_compile_options(ydb-library-yql-public-udf-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-public-udf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf
+)
+target_link_libraries(ydb-library-yql-public-udf-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-public-udf
+ library-yql-utils
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-public-udf-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-public-udf-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-public-udf-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-public-udf-ut
+ TEST_TARGET
+ ydb-library-yql-public-udf-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-udf-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-public-udf-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-public-udf-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-public-udf-ut)
diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.txt b/ydb/library/yql/public/udf/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/public/udf/ut/CMakeLists.txt
+++ b/ydb/library/yql/public/udf/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..74d5ed1972
--- /dev/null
+++ b/ydb/library/yql/sql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(pg)
+add_subdirectory(pg_dummy)
+add_subdirectory(settings)
+add_subdirectory(v0)
+add_subdirectory(v1)
+
+add_library(library-yql-sql)
+target_link_libraries(library-yql-sql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-split
+ parser-pg_wrapper-interface
+ yql-sql-settings
+ yql-sql-v0
+ sql-v0-lexer
+ yql-sql-v1
+ sql-v1-format
+ sql-v1-lexer
+ sql-v1-proto_parser
+ library-yql-utils
+)
+target_sources(library-yql-sql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/cluster_mapping.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/sql.cpp
+)
diff --git a/ydb/library/yql/sql/CMakeLists.txt b/ydb/library/yql/sql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/CMakeLists.txt
+++ b/ydb/library/yql/sql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..709a613678
--- /dev/null
+++ b/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-sql-pg)
+target_compile_options(yql-sql-pg PRIVATE
+ -Dpalloc0=yql_palloc0
+ -Dpfree=yql_pfree
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(yql-sql-pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(yql-sql-pg PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-ast
+ library-yql-core
+ yql-parser-pg_catalog
+ yql-sql-settings
+ api-protos
+)
+target_sources(yql-sql-pg PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/optimizer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/utils.cpp
+)
diff --git a/ydb/library/yql/sql/pg/CMakeLists.txt b/ydb/library/yql/sql/pg/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/pg/CMakeLists.txt
+++ b/ydb/library/yql/sql/pg/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..56205d86ef
--- /dev/null
+++ b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-sql-pg-ut)
+target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include
+)
+target_link_libraries(ydb-library-yql-sql-pg-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-sql-pg
+ contrib-libs-fmt
+ udf-service-exception_policy
+ library-yql-sql
+ yql-parser-pg_wrapper
+)
+target_link_options(ydb-library-yql-sql-pg-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-sql-pg-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_autoparam_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/optimizer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/optimizer_impl_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-sql-pg-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-sql-pg-ut
+ TEST_TARGET
+ ydb-library-yql-sql-pg-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-pg-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-pg-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-sql-pg-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-sql-pg-ut)
diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/pg/ut/CMakeLists.txt
+++ b/ydb/library/yql/sql/pg/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ea5c272181
--- /dev/null
+++ b/ydb/library/yql/sql/pg_dummy/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-sql-pg_dummy)
+target_compile_options(yql-sql-pg_dummy PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-sql-pg_dummy PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ parser-pg_wrapper-interface
+ library-yql-minikql
+)
+target_sources(yql-sql-pg_dummy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp
+)
diff --git a/ydb/library/yql/sql/pg_dummy/CMakeLists.txt b/ydb/library/yql/sql/pg_dummy/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/pg_dummy/CMakeLists.txt
+++ b/ydb/library/yql/sql/pg_dummy/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ccb58a596b
--- /dev/null
+++ b/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-sql-settings)
+target_link_libraries(yql-sql-settings PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-split
+ library-cpp-json
+ yql-core-issue
+ core-issue-protos
+ library-yql-utils
+)
+target_sources(yql-sql-settings PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/settings/partitioning.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/settings/translation_settings.cpp
+)
diff --git a/ydb/library/yql/sql/settings/CMakeLists.txt b/ydb/library/yql/sql/settings/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/settings/CMakeLists.txt
+++ b/ydb/library/yql/sql/settings/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3a805a5ebc
--- /dev/null
+++ b/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lexer)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-sql-v0)
+target_compile_options(yql-sql-v0 PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-sql-v0 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ library-cpp-enumbitset
+ library-yql-minikql
+ yql-public-udf
+ yql-sql-settings
+ library-yql-core
+ yql-core-issue
+ core-issue-protos
+ yql-parser-proto_ast
+ parser-proto_ast-collect_issues
+ proto_ast-gen-v0
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-sql-v0 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/aggregation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/builtin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/insert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/list_builtin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/query.cpp
+)
+generate_enum_serilization(yql-sql-v0
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/node.h
+ INCLUDE_HEADERS
+ ydb/library/yql/sql/v0/node.h
+)
diff --git a/ydb/library/yql/sql/v0/CMakeLists.txt b/ydb/library/yql/sql/v0/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v0/CMakeLists.txt
+++ b/ydb/library/yql/sql/v0/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2e2dddfd7e
--- /dev/null
+++ b/ydb/library/yql/sql/v0/lexer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(sql-v0-lexer)
+target_link_libraries(sql-v0-lexer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-issue-protos
+ yql-parser-proto_ast
+ proto_ast-gen-v0
+)
+target_sources(sql-v0-lexer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/lexer/lexer.cpp
+)
diff --git a/ydb/library/yql/sql/v0/lexer/CMakeLists.txt b/ydb/library/yql/sql/v0/lexer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v0/lexer/CMakeLists.txt
+++ b/ydb/library/yql/sql/v0/lexer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f0f524969
--- /dev/null
+++ b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-sql-v0-ut)
+target_include_directories(ydb-library-yql-sql-v0-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0
+)
+target_link_libraries(ydb-library-yql-sql-v0-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-sql-v0
+ udf-service-exception_policy
+ library-yql-sql
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-sql-v0-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-sql-v0-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-sql-v0-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-sql-v0-ut
+ TEST_TARGET
+ ydb-library-yql-sql-v0-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v0-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v0-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v0-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-library-yql-sql-v0-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-sql-v0-ut)
diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v0/ut/CMakeLists.txt
+++ b/ydb/library/yql/sql/v0/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e0ae494e7
--- /dev/null
+++ b/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,100 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(format)
+add_subdirectory(lexer)
+add_subdirectory(perf)
+add_subdirectory(proto_parser)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(yql-sql-v1)
+target_compile_options(yql-sql-v1 PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-sql-v1 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ library-cpp-enumbitset
+ cpp-yson-node
+ library-cpp-json
+ library-yql-minikql
+ yql-public-udf
+ yql-sql-settings
+ library-yql-core
+ yql-core-issue
+ core-issue-protos
+ yql-core-sql_types
+ yql-parser-lexer_common
+ yql-parser-proto_ast
+ parser-proto_ast-collect_issues
+ proto_ast-gen-v1
+ proto_ast-gen-v1_ansi
+ proto_ast-gen-v1_proto
+ yql-parser-pg_catalog
+ sql-v1-lexer
+ sql-v1-proto_parser
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(yql-sql-v1 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/aggregation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/builtin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/join.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/insert.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/list_builtin.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/source.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_expression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_group_by.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_match_recognize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_into_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_translation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_values.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/object_processing.cpp
+)
+generate_enum_serilization(yql-sql-v1
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/match_recognize.h
+ INCLUDE_HEADERS
+ ydb/library/yql/sql/v1/match_recognize.h
+)
+generate_enum_serilization(yql-sql-v1
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.h
+ INCLUDE_HEADERS
+ ydb/library/yql/sql/v1/node.h
+)
+generate_enum_serilization(yql-sql-v1
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_param.h
+ INCLUDE_HEADERS
+ ydb/library/yql/sql/v1/sql_call_param.h
+)
diff --git a/ydb/library/yql/sql/v1/CMakeLists.txt b/ydb/library/yql/sql/v1/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/format/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/format/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f5b30fd770
--- /dev/null
+++ b/ydb/library/yql/sql/v1/format/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(sql-v1-format)
+target_link_libraries(sql-v1-format PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-parser-lexer_common
+ yql-sql-settings
+ sql-v1-lexer
+ sql-v1-proto_parser
+ cpp-protobuf-util
+)
+target_sources(sql-v1-format PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format.cpp
+)
+
+add_global_library_for(sql-v1-format.global sql-v1-format)
+target_link_libraries(sql-v1-format.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+ yql-parser-lexer_common
+ yql-sql-settings
+ sql-v1-lexer
+ sql-v1-proto_parser
+ cpp-protobuf-util
+)
+target_sources(sql-v1-format.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/sql/v1/format/8b41f60c03c12372ee6c489297948988.cpp
+)
+resources(sql-v1-format.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/sql/v1/format/8b41f60c03c12372ee6c489297948988.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in
+ KEYS
+ SQLv1.g.in
+)
diff --git a/ydb/library/yql/sql/v1/format/CMakeLists.txt b/ydb/library/yql/sql/v1/format/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/format/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/format/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..43eaa810db
--- /dev/null
+++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-sql-v1-format-ut)
+target_include_directories(ydb-library-yql-sql-v1-format-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format
+)
+target_link_libraries(ydb-library-yql-sql-v1-format-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ sql-v1-format
+)
+target_link_options(ydb-library-yql-sql-v1-format-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-sql-v1-format-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-sql-v1-format-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-sql-v1-format-ut
+ TEST_TARGET
+ ydb-library-yql-sql-v1-format-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v1-format-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v1-format-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-sql-v1-format-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-sql-v1-format-ut)
diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39f7d128ee
--- /dev/null
+++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(sql-v1-lexer)
+target_link_libraries(sql-v1-lexer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ core-issue-protos
+ yql-parser-proto_ast
+ proto_ast-gen-v1
+ proto_ast-gen-v1_ansi
+ proto_ast-gen-v1_proto
+)
+target_sources(sql-v1-lexer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp
+)
diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/lexer/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6361ac99b
--- /dev/null
+++ b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(perf)
+target_link_libraries(perf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ udf-service-exception_policy
+ library-yql-sql
+ yql-sql-v1
+ yql-sql-pg_dummy
+)
+target_link_options(perf PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/perf/parse.cpp
+)
+target_allocator(perf
+ system_allocator
+)
+vcs_info(perf)
diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/perf/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/perf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..349b52115a
--- /dev/null
+++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(sql-v1-proto_parser)
+target_link_libraries(sql-v1-proto_parser PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-utils
+ yql-parser-proto_ast
+ parser-proto_ast-collect_issues
+ proto_ast-gen-v1
+ proto_ast-gen-v1_ansi
+ proto_ast-gen-v1_proto
+)
+target_sources(sql-v1-proto_parser PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp
+)
diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c39cfa618d
--- /dev/null
+++ b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-sql-v1-ut)
+target_include_directories(ydb-library-yql-sql-v1-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1
+)
+target_link_libraries(ydb-library-yql-sql-v1-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-sql-v1
+ udf-service-exception_policy
+ yql-core-sql_types
+ library-yql-sql
+ yql-sql-pg_dummy
+ sql-v1-format
+)
+target_link_options(ydb-library-yql-sql-v1-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-sql-v1-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_match_recognize_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-sql-v1-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-sql-v1-ut
+ TEST_TARGET
+ ydb-library-yql-sql-v1-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v1-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v1-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-sql-v1-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-library-yql-sql-v1-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-sql-v1-ut)
diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/sql/v1/ut/CMakeLists.txt
+++ b/ydb/library/yql/sql/v1/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..87c04a039c
--- /dev/null
+++ b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(astdiff)
+target_link_libraries(astdiff PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ library-cpp-svnversion
+ library-yql-ast
+ yql-utils-backtrace
+)
+target_link_options(astdiff PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(astdiff PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/astdiff/astdiff.cpp
+)
+target_allocator(astdiff
+ system_allocator
+)
+vcs_info(astdiff)
diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.txt b/ydb/library/yql/tools/astdiff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/astdiff/CMakeLists.txt
+++ b/ydb/library/yql/tools/astdiff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d21d3f9f9e
--- /dev/null
+++ b/ydb/library/yql/tools/dq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,11 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(dq_cli)
+add_subdirectory(service_node)
+add_subdirectory(worker_node)
diff --git a/ydb/library/yql/tools/dq/CMakeLists.txt b/ydb/library/yql/tools/dq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/dq/CMakeLists.txt
+++ b/ydb/library/yql/tools/dq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e60abb6791
--- /dev/null
+++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(dq_cli)
+target_link_libraries(dq_cli PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-protobuf-util
+ cpp-threading-future
+ library-yql-utils
+ api-protos
+ public-lib-yson_value
+ dq-api-grpc
+ providers-dq-common
+)
+target_link_options(dq_cli PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(dq_cli PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/dq_cli/main.cpp
+)
+target_allocator(dq_cli
+ system_allocator
+)
+vcs_info(dq_cli)
diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt
+++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5e131c34f9
--- /dev/null
+++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(service_node)
+target_compile_options(service_node PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(service_node PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-mapreduce-client
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ udf-service-exception_policy
+ yql-utils-failure_injector
+ yql-utils-log
+ utils-log-proto
+ providers-dq-provider
+ dq-worker_manager-interface
+ minikql-invoke_builtins-llvm
+ yql-utils-backtrace
+ providers-dq-service
+ providers-dq-metrics
+ providers-dq-stats_collector
+ providers-yt-dq_task_preprocessor
+ providers-dq-global_worker_manager
+ dq-actors-yt
+ yt-yt-client
+)
+target_link_options(service_node PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(service_node PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/service_node/main.cpp
+)
+target_allocator(service_node
+ system_allocator
+)
+vcs_info(service_node)
diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/tools/dq/service_node/CMakeLists.txt
+++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..355cc365ec
--- /dev/null
+++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(worker_node)
+target_compile_options(worker_node PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(worker_node PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ client-ydb_persqueue_public-codecs
+ library-cpp-getopt
+ cpp-mapreduce-client
+ dq-actors-compute
+ dq-actors-spilling
+ yql-dq-comp_nodes
+ dq-integration-transform
+ yql-dq-transform
+ minikql-comp_nodes-llvm
+ providers-clickhouse-actors
+ providers-common-comp_nodes
+ providers-dq-runtime
+ providers-dq-service
+ providers-dq-metrics
+ providers-dq-stats_collector
+ providers-dq-task_runner
+ providers-pq-async_io
+ providers-pq-proto
+ providers-s3-actors
+ providers-ydb-actors
+ providers-ydb-comp_nodes
+ udf-service-exception_policy
+ library-yql-utils
+ yql-utils-log
+ utils-log-proto
+ yql-utils-failure_injector
+ yql-utils-backtrace
+ yt-comp_nodes-dq
+ providers-yt-mkql_dq
+ dq-actors-yt
+ providers-dq-global_worker_manager
+ yql-sql-pg
+ yql-parser-pg_wrapper
+)
+target_link_options(worker_node PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(worker_node PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/worker_node/main.cpp
+)
+target_allocator(worker_node
+ system_allocator
+)
+vcs_info(worker_node)
diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/tools/dq/worker_node/CMakeLists.txt
+++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ab7b22386a
--- /dev/null
+++ b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,93 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(dqrun)
+target_compile_options(dqrun PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(dqrun PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ client-ydb_persqueue_public-codecs
+ cpp-actors-http
+ library-cpp-getopt
+ cpp-lfalloc-alloc_profiler
+ library-cpp-logger
+ library-cpp-resource
+ library-cpp-yson
+ cpp-mapreduce-interface
+ yql-sql-pg
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ yql-core-services
+ core-services-mounts
+ yql-dq-comp_nodes
+ dq-integration-transform
+ yql-dq-transform
+ minikql-comp_nodes-llvm
+ minikql-invoke_builtins-llvm
+ providers-clickhouse-actors
+ providers-clickhouse-provider
+ providers-common-comp_nodes
+ providers-common-proto
+ providers-common-udf_resolve
+ providers-generic-actors
+ providers-generic-provider
+ providers-dq-local_gateway
+ providers-dq-provider
+ dq-provider-exec
+ providers-pq-async_io
+ pq-gateway-native
+ providers-pq-provider
+ providers-s3-actors
+ providers-s3-provider
+ providers-solomon-gateway
+ providers-solomon-provider
+ providers-ydb-actors
+ providers-ydb-comp_nodes
+ providers-ydb-provider
+ udf-service-terminate_policy
+ yql-utils-backtrace
+ yql-utils-bindings
+ yql-utils-log
+ yql-core-url_preprocessing
+ yql-core-url_lister
+ yt-comp_nodes-dq
+ providers-yt-dq_task_preprocessor
+ yt-gateway-file
+ yt-gateway-native
+ providers-yt-mkql_dq
+ providers-yt-provider
+ yt-lib-yt_download
+ yt-lib-yt_url_lister
+ yt-lib-config_clusters
+ yql-parser-pg_wrapper
+ utils-log-proto
+ yql-utils-actor_system
+ fq-libs-actors
+ fq-libs-db_id_async_resolver_impl
+ clickhouse_client_udf
+)
+target_link_options(dqrun PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(dqrun PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dqrun/dqrun.cpp
+)
+target_allocator(dqrun
+ cpp-malloc-jemalloc
+)
+vcs_info(dqrun)
diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.txt b/ydb/library/yql/tools/dqrun/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/dqrun/CMakeLists.txt
+++ b/ydb/library/yql/tools/dqrun/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b67410869c
--- /dev/null
+++ b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(mrjob)
+target_compile_options(mrjob PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(mrjob PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-mapreduce-client
+ udf-service-terminate_policy
+ providers-common-gateway
+ yql-utils-backtrace
+ yql-parser-pg_wrapper
+ yql-sql-pg
+ providers-yt-job
+)
+target_link_options(mrjob PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(mrjob PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp
+)
+target_allocator(mrjob
+ cpp-malloc-jemalloc
+)
+vcs_info(mrjob)
diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.txt b/ydb/library/yql/tools/mrjob/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/mrjob/CMakeLists.txt
+++ b/ydb/library/yql/tools/mrjob/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f049c9746
--- /dev/null
+++ b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pgrun)
+target_compile_options(pgrun PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(pgrun PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-getopt
+ contrib-libs-fmt
+ library-cpp-yson
+ yql-sql-pg
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ core-services-mounts
+ minikql-comp_nodes-llvm
+ library-yql-protos
+ udf-service-exception_policy
+ yql-utils-backtrace
+ library-yql-core
+ sql-v1-format
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-proto
+ providers-common-provider
+ providers-common-udf_resolve
+ providers-dq-provider
+ yt-gateway-file
+ yql-core-url_preprocessing
+ yql-parser-pg_wrapper
+)
+target_link_options(pgrun PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(pgrun PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/pgrun/pgrun.cpp
+)
+target_allocator(pgrun
+ cpp-malloc-jemalloc
+)
+vcs_info(pgrun)
diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.txt b/ydb/library/yql/tools/pgrun/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/pgrun/CMakeLists.txt
+++ b/ydb/library/yql/tools/pgrun/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75c88bee99
--- /dev/null
+++ b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(sql2yql)
+target_compile_options(sql2yql PRIVATE
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_link_libraries(sql2yql PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-antlr3_cpp_runtime
+ library-cpp-getopt
+ cpp-testing-unittest
+ yql-parser-lexer_common
+ yql-parser-pg_wrapper
+ udf-service-stub
+ library-yql-sql
+ yql-sql-pg
+ sql-v1-format
+)
+target_link_options(sql2yql PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(sql2yql PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql2yql/sql2yql.cpp
+)
+target_allocator(sql2yql
+ system_allocator
+)
+vcs_info(sql2yql)
diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/sql2yql/CMakeLists.txt
+++ b/ydb/library/yql/tools/sql2yql/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3c0daff940
--- /dev/null
+++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(sql_formatter)
+target_link_libraries(sql_formatter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ contrib-libs-protobuf
+ sql-v1-format
+)
+target_link_options(sql_formatter PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(sql_formatter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql_formatter/sql_formatter.cpp
+)
+target_allocator(sql_formatter
+ system_allocator
+)
+vcs_info(sql_formatter)
diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/sql_formatter/CMakeLists.txt
+++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6e0b1af6b7
--- /dev/null
+++ b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(yql_udf_dep_stub)
+target_link_libraries(yql_udf_dep_stub PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_link_options(yql_udf_dep_stub PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(yql_udf_dep_stub PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_dep_stub/main.cpp
+)
+vcs_info(yql_udf_dep_stub)
diff --git a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt
+++ b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..44e6f2d299
--- /dev/null
+++ b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(udf_probe)
+target_compile_options(udf_probe PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(udf_probe PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-minikql
+ udf-service-terminate_policy
+ yql-sql-pg_dummy
+)
+target_link_options(udf_probe PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(udf_probe PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_probe/udf_probe.cpp
+)
+target_allocator(udf_probe
+ system_allocator
+)
+vcs_info(udf_probe)
diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/udf_probe/CMakeLists.txt
+++ b/ydb/library/yql/tools/udf_probe/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9019b69f7c
--- /dev/null
+++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(udf_resolver)
+target_compile_options(udf_resolver PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(udf_resolver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-protobuf-util
+ library-yql-minikql
+ udf-service-terminate_policy
+ library-yql-core
+ providers-common-proto
+ common-schema-mkql
+ yql-utils-backtrace
+ yql-utils-sys
+ yql-sql-pg_dummy
+)
+target_link_options(udf_resolver PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(udf_resolver PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/udf_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/discover.cpp
+)
+target_allocator(udf_resolver
+ system_allocator
+)
+vcs_info(udf_resolver)
diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/udf_resolver/CMakeLists.txt
+++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04b3f5bef0
--- /dev/null
+++ b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(http)
+
+add_executable(yqlrun)
+target_compile_options(yqlrun PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yqlrun PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-getopt
+ library-cpp-yson
+ library-cpp-svnversion
+ yql-sql-pg
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ core-services-mounts
+ minikql-comp_nodes-llvm
+ library-yql-protos
+ udf-service-exception_policy
+ yql-utils-backtrace
+ library-yql-core
+ sql-v1-format
+ providers-common-codec
+ providers-common-comp_nodes
+ providers-common-proto
+ providers-common-provider
+ providers-common-udf_resolve
+ providers-dq-provider
+ yt-gateway-file
+ yql-core-url_preprocessing
+ tools-yqlrun-http
+ yql-parser-pg_wrapper
+)
+target_link_options(yqlrun PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yqlrun PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp
+)
+target_allocator(yqlrun
+ cpp-malloc-jemalloc
+)
+vcs_info(yqlrun)
diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/yqlrun/CMakeLists.txt
+++ b/ydb/library/yql/tools/yqlrun/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..23e04360a4
--- /dev/null
+++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tools-yqlrun-http)
+target_compile_options(tools-yqlrun-http PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tools-yqlrun-http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ cpp-http-misc
+ cpp-http-server
+ library-cpp-json
+ library-cpp-logger
+ cpp-mime-types
+ cpp-openssl-io
+ cpp-string_utils-quote
+ library-cpp-uri
+ library-cpp-yson
+ cpp-yson-node
+ yql-core-facade
+ yql-core-type_ann
+ providers-dq-provider
+ providers-result-provider
+ yql-parser-pg_wrapper
+ sql-v1-format
+ yt-gateway-file
+ providers-yt-provider
+ yql-core-url_preprocessing
+)
+target_sources(tools-yqlrun-http PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/assets_servlet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/servlet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_functions_servlet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp
+)
diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.txt
+++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d72ac518fa
--- /dev/null
+++ b/ydb/library/yql/udfs/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(clickhouse)
+add_subdirectory(compress_base)
+add_subdirectory(datetime)
+add_subdirectory(datetime2)
+add_subdirectory(digest)
+add_subdirectory(file)
+add_subdirectory(histogram)
+add_subdirectory(hyperloglog)
+add_subdirectory(ip_base)
+add_subdirectory(json)
+add_subdirectory(json2)
+add_subdirectory(math)
+add_subdirectory(pire)
+add_subdirectory(protobuf)
+add_subdirectory(re2)
+add_subdirectory(set)
+add_subdirectory(stat)
+add_subdirectory(streaming)
+add_subdirectory(string)
+add_subdirectory(top)
+add_subdirectory(topfreq)
+add_subdirectory(unicode_base)
+add_subdirectory(url_base)
+add_subdirectory(yson2)
diff --git a/ydb/library/yql/udfs/common/CMakeLists.txt b/ydb/library/yql/udfs/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..01c796b5a3
--- /dev/null
+++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,890 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(clickhouse_client_udf INTERFACE)
+target_compile_options(clickhouse_client_udf INTERFACE
+ -DOS_DARWIN
+)
+target_include_directories(clickhouse_client_udf INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/dragonbox
+)
+target_link_libraries(clickhouse_client_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-cctz
+ restricted-boost-multi_index
+ restricted-boost-program_options
+ contrib-restricted-cityhash-1.0.2
+ contrib-restricted-fast_float
+ contrib-libs-pdqsort
+ contrib-libs-lz4
+ dragonbox
+ libs-poco-Util
+ libs-poco-Net
+ libs-poco-NetSSL_OpenSSL
+ contrib-libs-fmt
+ contrib-libs-re2
+ libs-apache-arrow
+ libs-apache-orc
+ libs-apache-avro
+ cpp-sanitizer-include
+ yql-minikql-dom
+ library-yql-utils
+)
+
+add_global_library_for(clickhouse_client_udf.global clickhouse_client_udf)
+target_compile_options(clickhouse_client_udf.global PUBLIC
+ -DOS_DARWIN
+)
+target_compile_options(clickhouse_client_udf.global PRIVATE
+ -DARCADIA_BUILD
+ -DUSE_ARROW=0
+ -DUSE_PARQUET=1
+ -DUSE_SNAPPY=1
+ -DUSE_ORC=0
+ -DUSE_AVRO=0
+ -DUSE_UNWIND=0
+ -DDBMS_VERSION_MAJOR=21
+ -DDBMS_VERSION_MINOR=18
+ -DDBMS_VERSION_PATCH=0
+ -Wno-unused-parameter
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(clickhouse_client_udf.global PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/dragonbox
+)
+target_include_directories(clickhouse_client_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/fast_float/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pdqsort
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/include
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src
+)
+target_link_libraries(clickhouse_client_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-cctz
+ restricted-boost-multi_index
+ restricted-boost-program_options
+ contrib-restricted-cityhash-1.0.2
+ contrib-restricted-fast_float
+ contrib-libs-pdqsort
+ contrib-libs-lz4
+ dragonbox
+ libs-poco-Util
+ libs-poco-Net
+ libs-poco-NetSSL_OpenSSL
+ contrib-libs-fmt
+ contrib-libs-re2
+ libs-apache-arrow
+ libs-apache-orc
+ libs-apache-avro
+ cpp-sanitizer-include
+ yql-minikql-dom
+ library-yql-utils
+)
+target_sources(clickhouse_client_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/DateLUT.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/DateLUTImpl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/demangle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/errnoToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getFQDNOrHostName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getPageSize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getThreadId.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/JSON.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/mremap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/shift10.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/sleep.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/StringRef.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getResource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/preciseExp10.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/AlignedBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/checkStackSize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/createHardLink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Epoll.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/escapeForFileName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/formatIPv6.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/formatReadable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/getMultipleKeysFromConfig.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/getNumberOfPhysicalCPUCores.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/hasLinuxCapability.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/hex.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/isLocalAddress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/IntervalKind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/parseAddress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ClickHouseRevision.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentMemoryTracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentThread.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/DNSResolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Exception.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ErrorCodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorDump.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorWriteBinary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/IPv6ToBinary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/MemoryTracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/OpenSSLHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/PipeFDs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/PODArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ProcfsMetricsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ProfileEvents.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/quoteString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/randomSeed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/RemoteHostFilter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/setThreadName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/TaskStatsInfoGetter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadPool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadProfileEvents.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadStatus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Throttler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/TimerDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/thread_local_rng.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ZooKeeper/IKeeper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Config/AbstractConfigurationComparison.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/BaseSettings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Block.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/BlockInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Field.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/ColumnWithTypeAndName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/NamesAndTypes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/SettingsEnums.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/SettingsFields.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/FormatFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/JSONEachRowUtils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/NativeFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/ProtobufReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/ProtobufWriter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/registerFormats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/verbosePrintString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/AggregateFunctionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/AggregateFunctionCombinatorFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/IAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnCompressed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnConst.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnsCommon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnVector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/FilterDescription.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/IColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/MaskOperations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/AsynchronousReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/AsynchronousReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/CompressionMethod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/copyData.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/createReadBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/DoubleConverter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMappedFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMappedFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFileWithCache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/OpenedFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/parseDateTimeBestEffort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/PeekableReadBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/Progress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromMemory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromPocoSocket.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/readFloatText.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadSettings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/SynchronousReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/TimeoutSetter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ThreadPoolReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/UseSSL.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileDescriptorDiscardOnFailure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromPocoSocket.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferValidUTF8.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecLZ4.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecMultiple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBufferBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedWriteBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/ICompressionCodec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/LZ4_decompress_faster.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/BlockStreamProfileInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/ColumnGathererStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/ExecutionSpeedLimits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/IBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/materializeBlock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/NativeBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/NativeBlockOutputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/SizeLimits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeEnum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNested.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNothing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNumberBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypesNumber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeUUID.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypesDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDecimalBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeInterval.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDate32.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDateTime64.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomGeo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomIPv4AndIPv6.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomSimpleAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeLowCardinalityHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/EnumValues.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/IDataType.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/getLeastSupertype.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/NestedUtils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/registerDataTypeDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/ISerialization.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationEnum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNothing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNumber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationTupleElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationUUID.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationWrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDecimalBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDate32.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDateTime64.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationIP.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationCustomSimpleText.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTAlterQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTAsterisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTBackupQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnsMatcher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnsTransformers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTConstraintDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTCreateQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDatabaseOrNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDictionaryAttributeDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDropQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTExpressionList.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTFunctionWithKeyValueArguments.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTIdentifier.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTIndexDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTKillQueryQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTLiteral.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTNameTypePair.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTOptimizeQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTOrderByElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTPartition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTProjectionDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTProjectionSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQualifiedAsterisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithOnCluster.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithOutput.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithTableAndOutput.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTRolesOrUsersSet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSelectWithUnionQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSetQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSetRoleQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSettingsProfileElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTShowGrantsQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTShowTablesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSubquery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTTablesInSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTTTLElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWindowDefinition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWithAlias.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryParameter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTInsertQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWithElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSampleRatio.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSystemQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTUserNameWithHost.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/CommonParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ExpressionElementParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ExpressionListParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/formatAST.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/formatSettingName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/IAST.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/InsertQuerySettingsPushDownVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/IParserBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/Lexer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseDatabaseAndTableName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseIdentifierOrStringLiteral.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseIntervalKind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseUserName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserAlterQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserBackupQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCheckQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCreateQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDatabaseOrNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDataType.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDescribeTableQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDictionaryAttributeDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDropQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserExplainQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserExternalDDLQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserInsertQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserKillQueryQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserOptimizeQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserPartition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserProjectionSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserRenameQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserRolesOrUsersSet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSelectWithUnionQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSetQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSetRoleQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSettingsProfileElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserTablePropertiesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserTablesInSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSampleRatio.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowGrantsQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowPrivilegesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowTablesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSystemQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUnionQueryElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUseQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUserNameWithHost.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserWatchQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserWithElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/queryToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/QueryWithOutputSettingsPushDownVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/TokenIterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Chunk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ConcatProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/IAccumulatingTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/IProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISimpleTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/LimitTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Port.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ResizeProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/OutputStreamToOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/RowInputFormatWithDiagnosticInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/castColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/ClientInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/InternalTextLogsQueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/QueryLog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/QueryThreadLog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/ProfileEventsExt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/TablesStatus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/CastOverloadResolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionsConversion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/IFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/extractTimeZoneFromFunctionArguments.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/toFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Executors/PollingQueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowBufferedStreams.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/AvroRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CSVRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CSVRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONAsStringRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONEachRowRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ParquetBlockOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/RawBLOBRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TabSeparatedRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TabSeparatedRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TSKVRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TSKVRowOutputFormat.cpp
+)
+
+add_shared_library(clickhouse_client_udf.dyn)
+set_property(TARGET clickhouse_client_udf.dyn PROPERTY
+ OUTPUT_NAME clickhouse_client_udf
+)
+target_compile_options(clickhouse_client_udf.dyn PUBLIC
+ -DOS_DARWIN
+)
+target_compile_options(clickhouse_client_udf.dyn PRIVATE
+ -DARCADIA_BUILD
+ -DUSE_ARROW=0
+ -DUSE_PARQUET=1
+ -DUSE_SNAPPY=1
+ -DUSE_ORC=0
+ -DUSE_AVRO=0
+ -DUSE_UNWIND=0
+ -DDBMS_VERSION_MAJOR=21
+ -DDBMS_VERSION_MINOR=18
+ -DDBMS_VERSION_PATCH=0
+ -Wno-unused-parameter
+ -DBUILD_UDF
+ -DUSE_CURRENT_UDF_ABI_VERSION
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(clickhouse_client_udf.dyn PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/dragonbox
+)
+target_include_directories(clickhouse_client_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/fast_float/include
+ ${CMAKE_SOURCE_DIR}/contrib/libs/pdqsort
+ ${CMAKE_SOURCE_DIR}/contrib/libs/lz4
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/src
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro
+ ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/include
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src
+)
+target_link_libraries(clickhouse_client_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-cctz
+ restricted-boost-multi_index
+ restricted-boost-program_options
+ contrib-restricted-cityhash-1.0.2
+ contrib-restricted-fast_float
+ contrib-libs-pdqsort
+ contrib-libs-lz4
+ dragonbox
+ libs-poco-Util
+ libs-poco-Net
+ libs-poco-NetSSL_OpenSSL
+ contrib-libs-fmt
+ contrib-libs-re2
+ libs-apache-arrow
+ libs-apache-orc
+ libs-apache-avro
+ cpp-sanitizer-include
+ yql-minikql-dom
+ library-yql-utils
+)
+target_link_options(clickhouse_client_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(clickhouse_client_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/DateLUT.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/DateLUTImpl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/demangle.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/errnoToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getFQDNOrHostName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getPageSize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getThreadId.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/JSON.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/mremap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/shift10.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/sleep.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/StringRef.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/getResource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/common/preciseExp10.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/AlignedBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Allocator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/checkStackSize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/createHardLink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Epoll.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/escapeForFileName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/formatIPv6.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/formatReadable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/getMultipleKeysFromConfig.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/getNumberOfPhysicalCPUCores.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/hasLinuxCapability.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/hex.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/isLocalAddress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/IntervalKind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/parseAddress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ClickHouseRevision.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentMemoryTracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/CurrentThread.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/DNSResolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Exception.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ErrorCodes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorDump.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/FieldVisitorWriteBinary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/IPv6ToBinary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/MemoryTracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/OpenSSLHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/PipeFDs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/PODArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ProcfsMetricsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ProfileEvents.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/quoteString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/randomSeed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/RemoteHostFilter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/setThreadName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/TaskStatsInfoGetter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadPool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadProfileEvents.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ThreadStatus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Throttler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/TimerDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/thread_local_rng.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/ZooKeeper/IKeeper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Common/Config/AbstractConfigurationComparison.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/BaseSettings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Block.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/BlockInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Field.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/ColumnWithTypeAndName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/NamesAndTypes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/Settings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/SettingsEnums.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Core/SettingsFields.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/FormatFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/JSONEachRowUtils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/NativeFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/ProtobufReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/ProtobufWriter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/registerFormats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Formats/verbosePrintString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/AggregateFunctionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/AggregateFunctionCombinatorFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/AggregateFunctions/IAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnCompressed.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnConst.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnsCommon.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnVector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/ColumnMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/FilterDescription.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/IColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Columns/MaskOperations.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/AsynchronousReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/AsynchronousReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/CompressionMethod.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/copyData.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/createReadBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/DoubleConverter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMappedFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMappedFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/MMapReadBufferFromFileWithCache.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/OpenedFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/parseDateTimeBestEffort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/PeekableReadBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/Progress.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromMemory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadBufferFromPocoSocket.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/readFloatText.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadSettings.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/SynchronousReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/TimeoutSetter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/ThreadPoolReader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/UseSSL.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileDescriptor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromFileDescriptorDiscardOnFailure.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferFromPocoSocket.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteBufferValidUTF8.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecLZ4.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecMultiple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionCodecNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBufferBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedReadBufferFromFile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/CompressedWriteBuffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/ICompressionCodec.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Compression/LZ4_decompress_faster.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/BlockStreamProfileInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/ColumnGathererStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/ExecutionSpeedLimits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/IBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/materializeBlock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/NativeBlockInputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/NativeBlockOutputStream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataStreams/SizeLimits.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeEnum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNested.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNothing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeNumberBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypesNumber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeUUID.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypesDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDecimalBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeInterval.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDate32.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeDateTime64.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomGeo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomIPv4AndIPv6.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeCustomSimpleAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeLowCardinalityHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/EnumValues.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/IDataType.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/getLeastSupertype.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/NestedUtils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/registerDataTypeDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/ISerialization.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationArray.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDateTime.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationEnum.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNothing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNullable.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNumber.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationTuple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationTupleElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationUUID.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationWrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDecimal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDecimalBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationMap.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationLowCardinality.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDate32.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationDateTime64.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationIP.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationAggregateFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationCustomSimpleText.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTAlterQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTAsterisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTBackupQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnsMatcher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTColumnsTransformers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTConstraintDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTCreateQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDatabaseOrNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDictionaryAttributeDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTDropQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTExpressionList.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTFunctionWithKeyValueArguments.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTIdentifier.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTIndexDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTKillQueryQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTLiteral.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTNameTypePair.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTOptimizeQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTOrderByElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTPartition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTProjectionDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTProjectionSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQualifiedAsterisk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithOnCluster.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithOutput.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryWithTableAndOutput.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTRolesOrUsersSet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSelectWithUnionQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSetQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSetRoleQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSettingsProfileElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTShowGrantsQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTShowTablesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSubquery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTTablesInSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTTTLElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWindowDefinition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWithAlias.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTQueryParameter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTInsertQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTWithElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSampleRatio.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTSystemQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ASTUserNameWithHost.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/CommonParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ExpressionElementParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ExpressionListParsers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/formatAST.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/formatSettingName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/IAST.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/InsertQuerySettingsPushDownVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/IParserBase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/Lexer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseDatabaseAndTableName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseIdentifierOrStringLiteral.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseIntervalKind.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/parseUserName.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserAlterQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserBackupQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCase.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCheckQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserCreateQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDatabaseOrNone.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDataType.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDescribeTableQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDictionary.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDictionaryAttributeDeclaration.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserDropQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserExplainQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserExternalDDLQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserInsertQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserKillQueryQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserOptimizeQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserPartition.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserProjectionSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserRenameQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserRolesOrUsersSet.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSelectWithUnionQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSetQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSetRoleQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSettingsProfileElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserTablePropertiesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserTablesInSelectQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSampleRatio.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowGrantsQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowPrivilegesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserShowTablesQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserSystemQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUnionQueryElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUseQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserUserNameWithHost.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserWatchQuery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/ParserWithElement.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/queryToString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/QueryWithOutputSettingsPushDownVisitor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Parsers/TokenIterator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Chunk.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ConcatProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/IAccumulatingTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/IProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISimpleTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISink.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/LimitTransform.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ISource.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Port.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/ResizeProcessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/IOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/OutputStreamToOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/RowInputFormatWithDiagnosticInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/castColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/ClientInfo.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/InternalTextLogsQueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/QueryLog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/QueryThreadLog.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/ProfileEventsExt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Interpreters/TablesStatus.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/CastOverloadResolver.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionHelpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionsConversion.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/IFunction.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/FunctionFactory.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/extractTimeZoneFromFunctionArguments.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Functions/toFixedString.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Executors/PollingQueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowBufferedStreams.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/AvroRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CSVRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/CSVRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONAsStringRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONEachRowRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/ParquetBlockOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/RawBLOBRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TabSeparatedRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TabSeparatedRowOutputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TSKVRowInputFormat.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src/Processors/Formats/Impl/TSKVRowOutputFormat.cpp
+)
+use_export_script(clickhouse_client_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(clickhouse_client_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4191bfa34
--- /dev/null
+++ b/ydb/library/yql/udfs/common/compress_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+
+add_library(compress_udf INTERFACE)
+target_link_libraries(compress_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-compress_base-lib
+)
+
+add_global_library_for(compress_udf.global compress_udf)
+target_compile_options(compress_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=23
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(compress_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-compress_base-lib
+)
+target_sources(compress_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/compress_base/compress_udf.cpp
+)
+
+add_shared_library(compress_udf.dyn)
+set_property(TARGET compress_udf.dyn PROPERTY
+ OUTPUT_NAME compress_udf
+)
+target_compile_options(compress_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=23
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(compress_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-compress_base-lib
+)
+target_link_options(compress_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(compress_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/compress_base/compress_udf.cpp
+)
+use_export_script(compress_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(compress_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/compress_base/CMakeLists.txt b/ydb/library/yql/udfs/common/compress_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/compress_base/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/compress_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..81d01df40f
--- /dev/null
+++ b/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-compress_base-lib)
+target_compile_options(common-compress_base-lib PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=23
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-compress_base-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ contrib-libs-snappy
+ cpp-streams-brotli
+ cpp-streams-bzip2
+ cpp-streams-lzma
+ cpp-streams-xz
+ cpp-streams-zstd
+)
+target_sources(common-compress_base-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/compress_base/lib/compress_base_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt b/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/compress_base/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1122f0dc48
--- /dev/null
+++ b/ydb/library/yql/udfs/common/datetime/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(datetime_udf INTERFACE)
+target_link_libraries(datetime_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-timezone_conversion
+ util-draft
+)
+
+add_global_library_for(datetime_udf.global datetime_udf)
+target_compile_options(datetime_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(datetime_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-timezone_conversion
+ util-draft
+)
+target_sources(datetime_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime/datetime_udf.cpp
+)
+
+add_shared_library(datetime_udf.dyn)
+set_property(TARGET datetime_udf.dyn PROPERTY
+ OUTPUT_NAME datetime_udf
+)
+target_compile_options(datetime_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(datetime_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-timezone_conversion
+ util-draft
+)
+target_link_options(datetime_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(datetime_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime/datetime_udf.cpp
+)
+use_export_script(datetime_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(datetime_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/datetime/CMakeLists.txt b/ydb/library/yql/udfs/common/datetime/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/datetime/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/datetime/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a4d4d34274
--- /dev/null
+++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(datetime2_udf INTERFACE)
+target_link_libraries(datetime2_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ util-draft
+ public-udf-arrow
+ library-yql-minikql
+ yql-minikql-datetime
+ public-udf-tz
+)
+
+add_global_library_for(datetime2_udf.global datetime2_udf)
+target_compile_options(datetime2_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(datetime2_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ util-draft
+ public-udf-arrow
+ library-yql-minikql
+ yql-minikql-datetime
+ public-udf-tz
+)
+target_sources(datetime2_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp
+)
+
+add_shared_library(datetime2_udf.dyn)
+set_property(TARGET datetime2_udf.dyn PROPERTY
+ OUTPUT_NAME datetime2_udf
+)
+target_compile_options(datetime2_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(datetime2_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ util-draft
+ public-udf-arrow
+ library-yql-minikql
+ yql-minikql-datetime
+ public-udf-tz
+)
+target_link_options(datetime2_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(datetime2_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp
+)
+use_export_script(datetime2_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(datetime2_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/datetime2/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/digest/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/digest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1a71b1e518
--- /dev/null
+++ b/ydb/library/yql/udfs/common/digest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,96 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(digest_udf INTERFACE)
+target_link_libraries(digest_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-farmhash
+ contrib-libs-highwayhash
+ contrib-libs-openssl
+ contrib-libs-xxhash
+ cpp-digest-argonish
+ cpp-digest-crc32c
+ cpp-digest-md5
+ cpp-digest-old_crc
+ cpp-digest-sfh
+)
+
+add_global_library_for(digest_udf.global digest_udf)
+target_compile_options(digest_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_include_directories(digest_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash
+)
+target_link_libraries(digest_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-farmhash
+ contrib-libs-highwayhash
+ contrib-libs-openssl
+ contrib-libs-xxhash
+ cpp-digest-argonish
+ cpp-digest-crc32c
+ cpp-digest-md5
+ cpp-digest-old_crc
+ cpp-digest-sfh
+)
+target_sources(digest_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/digest/digest_udf.cpp
+)
+
+add_shared_library(digest_udf.dyn)
+set_property(TARGET digest_udf.dyn PROPERTY
+ OUTPUT_NAME digest_udf
+)
+target_compile_options(digest_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_include_directories(digest_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/highwayhash
+)
+target_link_libraries(digest_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-farmhash
+ contrib-libs-highwayhash
+ contrib-libs-openssl
+ contrib-libs-xxhash
+ cpp-digest-argonish
+ cpp-digest-crc32c
+ cpp-digest-md5
+ cpp-digest-old_crc
+ cpp-digest-sfh
+)
+target_link_options(digest_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(digest_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/digest/digest_udf.cpp
+)
+use_export_script(digest_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(digest_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/digest/CMakeLists.txt b/ydb/library/yql/udfs/common/digest/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/digest/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/digest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5093aaeef
--- /dev/null
+++ b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(file_udf.dyn)
+set_property(TARGET file_udf.dyn PROPERTY
+ OUTPUT_NAME file_udf
+)
+target_compile_options(file_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(file_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-yql-core
+)
+target_link_options(file_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(file_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp
+)
+use_export_script(file_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(file_udf.dyn)
+
+add_library(file_udf INTERFACE)
+target_link_libraries(file_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-yql-core
+)
+
+add_global_library_for(file_udf.global file_udf)
+target_compile_options(file_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(file_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-yql-core
+)
+target_sources(file_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.txt b/ydb/library/yql/udfs/common/file/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/file/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/file/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..80759fe47b
--- /dev/null
+++ b/ydb/library/yql/udfs/common/histogram/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(histogram_udf INTERFACE)
+target_link_libraries(histogram_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-histogram-adaptive
+)
+
+add_global_library_for(histogram_udf.global histogram_udf)
+target_compile_options(histogram_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(histogram_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-histogram-adaptive
+)
+target_sources(histogram_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/histogram/histogram_udf.cpp
+)
+
+add_shared_library(histogram_udf.dyn)
+set_property(TARGET histogram_udf.dyn PROPERTY
+ OUTPUT_NAME histogram_udf
+)
+target_compile_options(histogram_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(histogram_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-histogram-adaptive
+)
+target_link_options(histogram_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(histogram_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/histogram/histogram_udf.cpp
+)
+use_export_script(histogram_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(histogram_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/histogram/CMakeLists.txt b/ydb/library/yql/udfs/common/histogram/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/histogram/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/histogram/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f5854cf052
--- /dev/null
+++ b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(hyperloglog_udf INTERFACE)
+target_link_libraries(hyperloglog_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-hyperloglog
+)
+
+add_global_library_for(hyperloglog_udf.global hyperloglog_udf)
+target_compile_options(hyperloglog_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(hyperloglog_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-hyperloglog
+)
+target_sources(hyperloglog_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/hyperloglog/hyperloglog_udf.cpp
+)
+
+add_shared_library(hyperloglog_udf.dyn)
+set_property(TARGET hyperloglog_udf.dyn PROPERTY
+ OUTPUT_NAME hyperloglog_udf
+)
+target_compile_options(hyperloglog_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(hyperloglog_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ library-cpp-hyperloglog
+)
+target_link_options(hyperloglog_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(hyperloglog_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/hyperloglog/hyperloglog_udf.cpp
+)
+use_export_script(hyperloglog_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(hyperloglog_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.txt b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f67e5de133
--- /dev/null
+++ b/ydb/library/yql/udfs/common/ip_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+
+add_library(ip_udf INTERFACE)
+target_link_libraries(ip_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-ip_base-lib
+)
+
+add_global_library_for(ip_udf.global ip_udf)
+target_compile_options(ip_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(ip_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-ip_base-lib
+)
+target_sources(ip_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/ip_base.cpp
+)
+
+add_shared_library(ip_udf.dyn)
+set_property(TARGET ip_udf.dyn PROPERTY
+ OUTPUT_NAME ip_udf
+)
+target_compile_options(ip_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(ip_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-ip_base-lib
+)
+target_link_options(ip_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(ip_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/ip_base.cpp
+)
+use_export_script(ip_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(ip_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/ip_base/CMakeLists.txt b/ydb/library/yql/udfs/common/ip_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/ip_base/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/ip_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c41eeae1a
--- /dev/null
+++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-ip_base-lib)
+target_compile_options(common-ip_base-lib PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-ip_base-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+)
+target_sources(common-ip_base-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/json/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/json/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2870cb3cea
--- /dev/null
+++ b/ydb/library/yql/udfs/common/json/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(json_udf INTERFACE)
+target_link_libraries(json_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-json-easy_parse
+)
+
+add_global_library_for(json_udf.global json_udf)
+target_compile_options(json_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(json_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-json-easy_parse
+)
+target_sources(json_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json/json_udf.cpp
+)
+
+add_shared_library(json_udf.dyn)
+set_property(TARGET json_udf.dyn PROPERTY
+ OUTPUT_NAME json_udf
+)
+target_compile_options(json_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(json_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-json-easy_parse
+)
+target_link_options(json_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(json_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json/json_udf.cpp
+)
+use_export_script(json_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(json_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/json/CMakeLists.txt b/ydb/library/yql/udfs/common/json/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/json/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/json/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a952f4ce46
--- /dev/null
+++ b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(json2_udf INTERFACE)
+target_link_libraries(json2_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ ydb-library-binary_json
+ yql-minikql-dom
+ yql-minikql-jsonpath
+)
+
+add_global_library_for(json2_udf.global json2_udf)
+target_compile_options(json2_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(json2_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ ydb-library-binary_json
+ yql-minikql-dom
+ yql-minikql-jsonpath
+)
+target_sources(json2_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp
+)
+
+add_shared_library(json2_udf.dyn)
+set_property(TARGET json2_udf.dyn PROPERTY
+ OUTPUT_NAME json2_udf
+)
+target_compile_options(json2_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(json2_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ ydb-library-binary_json
+ yql-minikql-dom
+ yql-minikql-jsonpath
+)
+target_link_options(json2_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(json2_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp
+)
+use_export_script(json2_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(json2_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/json2/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/json2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..67fb616f37
--- /dev/null
+++ b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,184 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(math_udf INTERFACE)
+target_link_libraries(math_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-math-lib
+ library-cpp-resource
+)
+
+add_global_library_for(math_udf.global math_udf)
+target_compile_options(math_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(math_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-math-lib
+ library-cpp-resource
+)
+target_sources(math_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc
+ COMMAND
+ ${LLVMOPT}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc
+ -O2
+ -globalopt
+ -globaldce
+ -internalize
+ -internalize-public-api-list=PiIR#EIR#EpsIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc
+ COMMAND
+ ${LLVMLINK}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc
+)
+llvm_compile_cxx(math_udf.global
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(math_udf.global
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+resources(math_udf.global
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp
+ INPUTS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc
+ KEYS
+ /llvm_bc/Math
+)
+
+add_shared_library(math_udf.dyn)
+set_property(TARGET math_udf.dyn PROPERTY
+ OUTPUT_NAME math_udf
+)
+target_compile_options(math_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(math_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-math-lib
+ library-cpp-resource
+)
+target_link_options(math_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(math_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc
+ COMMAND
+ ${LLVMOPT}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc
+ -O2
+ -globalopt
+ -globaldce
+ -internalize
+ -internalize-public-api-list=PiIR#EIR#EpsIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR
+)
+add_custom_command(
+ OUTPUT
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc
+ DEPENDS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc
+ COMMAND
+ ${LLVMLINK}
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc
+ -o
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc
+)
+llvm_compile_cxx(math_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+llvm_compile_cxx(math_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc
+ ${CLANGPLUSPLUS}
+ -Wno-unknown-warning-option
+ -emit-llvm
+)
+resources(math_udf.dyn
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp
+ INPUTS
+ ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc
+ KEYS
+ /llvm_bc/Math
+)
+use_export_script(math_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(math_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.txt b/ydb/library/yql/udfs/common/math/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/math/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/math/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..93d31949ea
--- /dev/null
+++ b/ydb/library/yql/udfs/common/math/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-math-lib)
+target_link_libraries(common-math-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(common-math-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp
+)
diff --git a/ydb/library/yql/udfs/common/math/lib/CMakeLists.txt b/ydb/library/yql/udfs/common/math/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/math/lib/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/math/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/pire/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/pire/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a5aed529af
--- /dev/null
+++ b/ydb/library/yql/udfs/common/pire/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(pire_udf INTERFACE)
+target_link_libraries(pire_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-regex-pire
+)
+
+add_global_library_for(pire_udf.global pire_udf)
+target_compile_options(pire_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(pire_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-regex-pire
+)
+target_sources(pire_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/pire/pire_udf.cpp
+)
+
+add_shared_library(pire_udf.dyn)
+set_property(TARGET pire_udf.dyn PROPERTY
+ OUTPUT_NAME pire_udf
+)
+target_compile_options(pire_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(pire_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-regex-pire
+)
+target_link_options(pire_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(pire_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/pire/pire_udf.cpp
+)
+use_export_script(pire_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(pire_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/pire/CMakeLists.txt b/ydb/library/yql/udfs/common/pire/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/pire/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/pire/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eac32969d7
--- /dev/null
+++ b/ydb/library/yql/udfs/common/protobuf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(protobuf_udf.dyn)
+set_property(TARGET protobuf_udf.dyn PROPERTY
+ OUTPUT_NAME protobuf_udf
+)
+target_compile_options(protobuf_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(protobuf_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-protobuf-yql
+ yql-minikql-protobuf_udf
+)
+target_link_options(protobuf_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(protobuf_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/protobuf/protobuf_udf.cpp
+)
+use_export_script(protobuf_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(protobuf_udf.dyn)
+
+add_library(protobuf_udf INTERFACE)
+target_link_libraries(protobuf_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-protobuf-yql
+ yql-minikql-protobuf_udf
+)
+
+add_global_library_for(protobuf_udf.global protobuf_udf)
+target_compile_options(protobuf_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(protobuf_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-protobuf-yql
+ yql-minikql-protobuf_udf
+)
+target_sources(protobuf_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/protobuf/protobuf_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/protobuf/CMakeLists.txt b/ydb/library/yql/udfs/common/protobuf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/protobuf/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/protobuf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4c5d1d0391
--- /dev/null
+++ b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(re2_udf INTERFACE)
+target_link_libraries(re2_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-re2
+ cpp-deprecated-enum_codegen
+)
+
+add_global_library_for(re2_udf.global re2_udf)
+target_compile_options(re2_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(re2_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-re2
+ cpp-deprecated-enum_codegen
+)
+target_sources(re2_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp
+)
+
+add_shared_library(re2_udf.dyn)
+set_property(TARGET re2_udf.dyn PROPERTY
+ OUTPUT_NAME re2_udf
+)
+target_compile_options(re2_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(re2_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ contrib-libs-re2
+ cpp-deprecated-enum_codegen
+)
+target_link_options(re2_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(re2_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp
+)
+use_export_script(re2_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(re2_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/re2/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/re2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/set/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/set/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..379eabeff7
--- /dev/null
+++ b/ydb/library/yql/udfs/common/set/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(set_udf INTERFACE)
+target_link_libraries(set_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(set_udf.global set_udf)
+target_compile_options(set_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(set_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(set_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/set/set_udf.cpp
+)
+
+add_shared_library(set_udf.dyn)
+set_property(TARGET set_udf.dyn PROPERTY
+ OUTPUT_NAME set_udf
+)
+target_compile_options(set_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(set_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(set_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(set_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/set/set_udf.cpp
+)
+use_export_script(set_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(set_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/set/CMakeLists.txt b/ydb/library/yql/udfs/common/set/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/set/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/set/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/stat/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/stat/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d0dfc2778d
--- /dev/null
+++ b/ydb/library/yql/udfs/common/stat/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(static)
+add_subdirectory(ut)
+
+add_library(stat_udf INTERFACE)
+target_link_libraries(stat_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-stat-static
+)
+
+add_global_library_for(stat_udf.global stat_udf)
+target_compile_options(stat_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(stat_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-stat-static
+)
+target_sources(stat_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf.cpp
+)
+
+add_shared_library(stat_udf.dyn)
+set_property(TARGET stat_udf.dyn PROPERTY
+ OUTPUT_NAME stat_udf
+)
+target_compile_options(stat_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(stat_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-stat-static
+)
+target_link_options(stat_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(stat_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf.cpp
+)
+use_export_script(stat_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(stat_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/stat/CMakeLists.txt b/ydb/library/yql/udfs/common/stat/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/stat/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/stat/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7dee63a8c0
--- /dev/null
+++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-stat-static)
+target_compile_options(common-stat-static PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-stat-static PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ library-cpp-tdigest
+)
+target_sources(common-stat-static PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da941d939b
--- /dev/null
+++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-udfs-common-stat-ut)
+target_compile_options(ydb-library-yql-udfs-common-stat-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-udfs-common-stat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static
+)
+target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ common-stat-static
+ minikql-comp_nodes-llvm
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-udfs-common-stat-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-udfs-common-stat-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-udfs-common-stat-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-udfs-common-stat-ut
+ TEST_TARGET
+ ydb-library-yql-udfs-common-stat-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-udfs-common-stat-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-udfs-common-stat-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-udfs-common-stat-ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-library-yql-udfs-common-stat-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-udfs-common-stat-ut)
diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04d8db4020
--- /dev/null
+++ b/ydb/library/yql/udfs/common/streaming/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(streaming_udf.dyn)
+set_property(TARGET streaming_udf.dyn PROPERTY
+ OUTPUT_NAME streaming_udf
+)
+target_compile_options(streaming_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(streaming_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-kmp
+)
+target_link_options(streaming_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(streaming_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/streaming/streaming_udf.cpp
+)
+use_export_script(streaming_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(streaming_udf.dyn)
+
+add_library(streaming_udf INTERFACE)
+target_link_libraries(streaming_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-kmp
+)
+
+add_global_library_for(streaming_udf.global streaming_udf)
+target_compile_options(streaming_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(streaming_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-kmp
+)
+target_sources(streaming_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/streaming/streaming_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/streaming/CMakeLists.txt b/ydb/library/yql/udfs/common/streaming/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/streaming/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/streaming/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..93a05508d7
--- /dev/null
+++ b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(string_udf INTERFACE)
+target_link_libraries(string_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ public-udf-arrow
+ library-cpp-charset
+ cpp-deprecated-split
+ cpp-html-pcdata
+ cpp-string_utils-base32
+ cpp-string_utils-base64
+ cpp-string_utils-levenshtein_diff
+ cpp-string_utils-quote
+)
+
+add_global_library_for(string_udf.global string_udf)
+target_compile_options(string_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(string_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ public-udf-arrow
+ library-cpp-charset
+ cpp-deprecated-split
+ cpp-html-pcdata
+ cpp-string_utils-base32
+ cpp-string_utils-base64
+ cpp-string_utils-levenshtein_diff
+ cpp-string_utils-quote
+)
+target_sources(string_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp
+)
+
+add_shared_library(string_udf.dyn)
+set_property(TARGET string_udf.dyn PROPERTY
+ OUTPUT_NAME string_udf
+)
+target_compile_options(string_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(string_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ public-udf-arrow
+ library-cpp-charset
+ cpp-deprecated-split
+ cpp-html-pcdata
+ cpp-string_utils-base32
+ cpp-string_utils-base64
+ cpp-string_utils-levenshtein_diff
+ cpp-string_utils-quote
+)
+target_link_options(string_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(string_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp
+)
+use_export_script(string_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(string_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.txt b/ydb/library/yql/udfs/common/string/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/string/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/string/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/top/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/top/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5df9b595ff
--- /dev/null
+++ b/ydb/library/yql/udfs/common/top/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(top_udf INTERFACE)
+target_link_libraries(top_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-top_keeper
+)
+
+add_global_library_for(top_udf.global top_udf)
+target_compile_options(top_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(top_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-top_keeper
+)
+target_sources(top_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/top/top_udf.cpp
+)
+
+add_shared_library(top_udf.dyn)
+set_property(TARGET top_udf.dyn PROPERTY
+ OUTPUT_NAME top_udf
+)
+target_compile_options(top_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(top_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-top_keeper
+)
+target_link_options(top_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(top_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/top/top_udf.cpp
+)
+use_export_script(top_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(top_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/top/CMakeLists.txt b/ydb/library/yql/udfs/common/top/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/top/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/top/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..80e88e5f90
--- /dev/null
+++ b/ydb/library/yql/udfs/common/topfreq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(static)
+add_subdirectory(ut)
+
+add_library(topfreq_udf INTERFACE)
+target_link_libraries(topfreq_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-topfreq-static
+)
+
+add_global_library_for(topfreq_udf.global topfreq_udf)
+target_compile_options(topfreq_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(topfreq_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-topfreq-static
+)
+target_sources(topfreq_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf.cpp
+)
+
+add_shared_library(topfreq_udf.dyn)
+set_property(TARGET topfreq_udf.dyn PROPERTY
+ OUTPUT_NAME topfreq_udf
+)
+target_compile_options(topfreq_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(topfreq_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-topfreq-static
+)
+target_link_options(topfreq_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(topfreq_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf.cpp
+)
+use_export_script(topfreq_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(topfreq_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/topfreq/CMakeLists.txt b/ydb/library/yql/udfs/common/topfreq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/topfreq/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/topfreq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b67db761e4
--- /dev/null
+++ b/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-topfreq-static)
+target_compile_options(common-topfreq-static PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-topfreq-static PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+)
+target_sources(common-topfreq-static PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/static/static_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/static/topfreq.cpp
+)
diff --git a/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt b/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/topfreq/static/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..87d89dfd02
--- /dev/null
+++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-udfs-common-topfreq-ut)
+target_compile_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-library-yql-udfs-common-topfreq-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/static
+)
+target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ common-topfreq-static
+ minikql-comp_nodes-llvm
+ udf-service-exception_policy
+ yql-sql-pg_dummy
+)
+target_link_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-udfs-common-topfreq-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-udfs-common-topfreq-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-udfs-common-topfreq-ut
+ TEST_TARGET
+ ydb-library-yql-udfs-common-topfreq-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-udfs-common-topfreq-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-udfs-common-topfreq-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-udfs-common-topfreq-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-udfs-common-topfreq-ut)
diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f0ecb8b6f
--- /dev/null
+++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+
+add_library(unicode_udf INTERFACE)
+target_link_libraries(unicode_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-unicode_base-lib
+)
+
+add_global_library_for(unicode_udf.global unicode_udf)
+target_compile_options(unicode_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(unicode_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-unicode_base-lib
+)
+target_sources(unicode_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp
+)
+
+add_shared_library(unicode_udf.dyn)
+set_property(TARGET unicode_udf.dyn PROPERTY
+ OUTPUT_NAME unicode_udf
+)
+target_compile_options(unicode_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(unicode_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-unicode_base-lib
+)
+target_link_options(unicode_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(unicode_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp
+)
+use_export_script(unicode_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(unicode_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2f90840d64
--- /dev/null
+++ b/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-unicode_base-lib)
+target_compile_options(common-unicode_base-lib PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=27
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-unicode_base-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-split
+ cpp-string_utils-levenshtein_diff
+ cpp-unicode-normalization
+ cpp-unicode-set
+ yql-public-udf
+ library-yql-utils
+)
+target_sources(common-unicode_base-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/lib/unicode_base_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt b/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/unicode_base/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a70ee1d093
--- /dev/null
+++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+
+add_library(url_udf INTERFACE)
+target_link_libraries(url_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-url_base-lib
+)
+
+add_global_library_for(url_udf.global url_udf)
+target_compile_options(url_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(url_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-url_base-lib
+)
+target_sources(url_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp
+)
+
+add_shared_library(url_udf.dyn)
+set_property(TARGET url_udf.dyn PROPERTY
+ OUTPUT_NAME url_udf
+)
+target_compile_options(url_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(url_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ common-url_base-lib
+)
+target_link_options(url_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(url_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp
+)
+use_export_script(url_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(url_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/url_base/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6c26f5e7fc
--- /dev/null
+++ b/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(common-url_base-lib)
+target_compile_options(common-url_base-lib PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=35
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(common-url_base-lib PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ cpp-string_utils-quote
+ cpp-string_utils-url
+ library-cpp-tld
+ cpp-unicode-punycode
+ library-cpp-uri
+ yql-public-udf
+ public-udf-arrow
+ libs-apache-arrow
+)
+target_sources(common-url_base-lib PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/lib/url_base_udf.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/lib/url_parse.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/lib/url_query.cpp
+)
diff --git a/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt b/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/url_base/lib/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6eebbe0d88
--- /dev/null
+++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yson2_udf INTERFACE)
+target_link_libraries(yson2_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-stack_vector
+ yson_pull
+ yql-minikql-dom
+)
+
+add_global_library_for(yson2_udf.global yson2_udf)
+target_compile_options(yson2_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(yson2_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-stack_vector
+ yson_pull
+ yql-minikql-dom
+)
+target_sources(yson2_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp
+)
+
+add_shared_library(yson2_udf.dyn)
+set_property(TARGET yson2_udf.dyn PROPERTY
+ OUTPUT_NAME yson2_udf
+)
+target_compile_options(yson2_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(yson2_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-containers-stack_vector
+ yson_pull
+ yql-minikql-dom
+)
+target_link_options(yson2_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yson2_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp
+)
+use_export_script(yson2_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(yson2_udf.dyn)
diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/common/yson2/CMakeLists.txt
+++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1ad2748bc
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/callables/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(callables_udf.dyn)
+set_property(TARGET callables_udf.dyn PROPERTY
+ OUTPUT_NAME callables_udf
+)
+target_compile_options(callables_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(callables_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(callables_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(callables_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/callables/callables_udf.cpp
+)
+use_export_script(callables_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(callables_udf.dyn)
+
+add_library(callables_udf INTERFACE)
+target_link_libraries(callables_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(callables_udf.global callables_udf)
+target_compile_options(callables_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(callables_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(callables_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/callables/callables_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/callables/CMakeLists.txt b/ydb/library/yql/udfs/examples/callables/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/callables/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/callables/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f0a875d55c
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/dicts/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(dicts_udf.dyn)
+set_property(TARGET dicts_udf.dyn PROPERTY
+ OUTPUT_NAME dicts_udf
+)
+target_compile_options(dicts_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dicts_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(dicts_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(dicts_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dicts/dicts_udf.cpp
+)
+use_export_script(dicts_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(dicts_udf.dyn)
+
+add_library(dicts_udf INTERFACE)
+target_link_libraries(dicts_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(dicts_udf.global dicts_udf)
+target_compile_options(dicts_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dicts_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(dicts_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dicts/dicts_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/dicts/CMakeLists.txt b/ydb/library/yql/udfs/examples/dicts/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/dicts/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/dicts/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4c4d196ce4
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(dummylog.dyn)
+set_property(TARGET dummylog.dyn PROPERTY
+ OUTPUT_NAME dummylog
+)
+target_compile_options(dummylog.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dummylog.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(dummylog.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(dummylog.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dummylog/dummylog_udf.cpp
+)
+use_export_script(dummylog.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(dummylog.dyn)
+
+add_library(dummylog INTERFACE)
+target_link_libraries(dummylog INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(dummylog.global dummylog)
+target_compile_options(dummylog.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dummylog.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(dummylog.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dummylog/dummylog_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d970cb60e0
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/lists/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(lists_udf.dyn)
+set_property(TARGET lists_udf.dyn PROPERTY
+ OUTPUT_NAME lists_udf
+)
+target_compile_options(lists_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(lists_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(lists_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(lists_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/lists/lists_udf.cpp
+)
+use_export_script(lists_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(lists_udf.dyn)
+
+add_library(lists_udf INTERFACE)
+target_link_libraries(lists_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(lists_udf.global lists_udf)
+target_compile_options(lists_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(lists_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(lists_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/lists/lists_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/lists/CMakeLists.txt b/ydb/library/yql/udfs/examples/lists/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/lists/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/lists/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3a3b7790be
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/structs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(structs_udf.dyn)
+set_property(TARGET structs_udf.dyn PROPERTY
+ OUTPUT_NAME structs_udf
+)
+target_compile_options(structs_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(structs_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(structs_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(structs_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/structs/structs_udf.cpp
+)
+use_export_script(structs_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(structs_udf.dyn)
+
+add_library(structs_udf INTERFACE)
+target_link_libraries(structs_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(structs_udf.global structs_udf)
+target_compile_options(structs_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(structs_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(structs_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/structs/structs_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/structs/CMakeLists.txt b/ydb/library/yql/udfs/examples/structs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/structs/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/structs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0e196a0184
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/tagged/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(tagged_udf.dyn)
+set_property(TARGET tagged_udf.dyn PROPERTY
+ OUTPUT_NAME tagged_udf
+)
+target_compile_options(tagged_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=21
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(tagged_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(tagged_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(tagged_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/tagged/tagged_udf.cpp
+)
+use_export_script(tagged_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(tagged_udf.dyn)
+
+add_library(tagged_udf INTERFACE)
+target_link_libraries(tagged_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(tagged_udf.global tagged_udf)
+target_compile_options(tagged_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=21
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(tagged_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(tagged_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/tagged/tagged_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/tagged/CMakeLists.txt b/ydb/library/yql/udfs/examples/tagged/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/tagged/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/tagged/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f0619f77ed
--- /dev/null
+++ b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(type_inspection_udf.dyn)
+set_property(TARGET type_inspection_udf.dyn PROPERTY
+ OUTPUT_NAME type_inspection_udf
+)
+target_compile_options(type_inspection_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(type_inspection_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(type_inspection_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(type_inspection_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/type_inspection/type_inspection_udf.cpp
+)
+use_export_script(type_inspection_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(type_inspection_udf.dyn)
+
+add_library(type_inspection_udf INTERFACE)
+target_link_libraries(type_inspection_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(type_inspection_udf.global type_inspection_udf)
+target_compile_options(type_inspection_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(type_inspection_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(type_inspection_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/type_inspection/type_inspection_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt
+++ b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3d234a037d
--- /dev/null
+++ b/ydb/library/yql/udfs/logs/dsv/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(dsv_udf INTERFACE)
+target_link_libraries(dsv_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-split
+)
+
+add_global_library_for(dsv_udf.global dsv_udf)
+target_compile_options(dsv_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dsv_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-split
+)
+target_sources(dsv_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/logs/dsv/dsv_udf.cpp
+)
+
+add_shared_library(dsv_udf.dyn)
+set_property(TARGET dsv_udf.dyn PROPERTY
+ OUTPUT_NAME dsv_udf
+)
+target_compile_options(dsv_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=28
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(dsv_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+ cpp-deprecated-split
+)
+target_link_options(dsv_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(dsv_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/logs/dsv/dsv_udf.cpp
+)
+use_export_script(dsv_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(dsv_udf.dyn)
diff --git a/ydb/library/yql/udfs/logs/dsv/CMakeLists.txt b/ydb/library/yql/udfs/logs/dsv/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/logs/dsv/CMakeLists.txt
+++ b/ydb/library/yql/udfs/logs/dsv/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/test/simple/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/test/simple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83d6008852
--- /dev/null
+++ b/ydb/library/yql/udfs/test/simple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(simple_udf.dyn)
+set_property(TARGET simple_udf.dyn PROPERTY
+ OUTPUT_NAME simple_udf
+)
+target_compile_options(simple_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(simple_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(simple_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(simple_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/simple/simple_udf.cpp
+)
+use_export_script(simple_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(simple_udf.dyn)
+
+add_library(simple_udf INTERFACE)
+target_link_libraries(simple_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(simple_udf.global simple_udf)
+target_compile_options(simple_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(simple_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(simple_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/simple/simple_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/test/simple/CMakeLists.txt b/ydb/library/yql/udfs/test/simple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/test/simple/CMakeLists.txt
+++ b/ydb/library/yql/udfs/test/simple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b82f7cfd1
--- /dev/null
+++ b/ydb/library/yql/udfs/test/test_import/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,63 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(test_import_udf.dyn)
+set_property(TARGET test_import_udf.dyn PROPERTY
+ OUTPUT_NAME test_import_udf
+)
+target_compile_options(test_import_udf.dyn PRIVATE
+ -DBUILD_UDF
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(test_import_udf.dyn PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_link_options(test_import_udf.dyn PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+)
+target_sources(test_import_udf.dyn PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/test_import/test_import_udf.cpp
+)
+use_export_script(test_import_udf.dyn
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports
+)
+vcs_info(test_import_udf.dyn)
+
+add_library(test_import_udf INTERFACE)
+target_link_libraries(test_import_udf INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+
+add_global_library_for(test_import_udf.global test_import_udf)
+target_compile_options(test_import_udf.global PRIVATE
+ -DUDF_ABI_VERSION_MAJOR=2
+ -DUDF_ABI_VERSION_MINOR=9
+ -DUDF_ABI_VERSION_PATCH=0
+)
+target_link_libraries(test_import_udf.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-udf
+ public-udf-support
+)
+target_sources(test_import_udf.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/test_import/test_import_udf.cpp
+)
diff --git a/ydb/library/yql/udfs/test/test_import/CMakeLists.txt b/ydb/library/yql/udfs/test/test_import/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/udfs/test/test_import/CMakeLists.txt
+++ b/ydb/library/yql/udfs/test/test_import/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a776013a54
--- /dev/null
+++ b/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,55 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actor_log)
+add_subdirectory(actor_system)
+add_subdirectory(actors)
+add_subdirectory(backtrace)
+add_subdirectory(bindings)
+add_subdirectory(failure_injector)
+add_subdirectory(fetch)
+add_subdirectory(log)
+add_subdirectory(simd)
+add_subdirectory(sys)
+add_subdirectory(test_http_server)
+add_subdirectory(threading)
+add_subdirectory(ut)
+
+add_library(library-yql-utils)
+target_link_libraries(library-yql-utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-digest-md5
+ library-cpp-messagebus
+ cpp-string_utils-quote
+ cpp-threading-future
+ cpp-deprecated-atomic
+ contrib-libs-miniselect
+)
+target_sources(library-yql-utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/aws_credentials.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/url_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/utf8.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.cpp
+)
diff --git a/ydb/library/yql/utils/CMakeLists.txt b/ydb/library/yql/utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/CMakeLists.txt
+++ b/ydb/library/yql/utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/actor_log/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actor_log/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..66a0c659e7
--- /dev/null
+++ b/ydb/library/yql/utils/actor_log/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-actor_log)
+target_link_libraries(yql-utils-actor_log PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ ydb-library-services
+)
+target_sources(yql-utils-actor_log PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_log/log.cpp
+)
diff --git a/ydb/library/yql/utils/actor_log/CMakeLists.txt b/ydb/library/yql/utils/actor_log/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/actor_log/CMakeLists.txt
+++ b/ydb/library/yql/utils/actor_log/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9af05c6c57
--- /dev/null
+++ b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-actor_system)
+target_link_libraries(yql-utils-actor_system PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-services
+ providers-common-metrics
+ library-yql-utils
+)
+target_sources(yql-utils-actor_system PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp
+)
diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.txt b/ydb/library/yql/utils/actor_system/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/actor_system/CMakeLists.txt
+++ b/ydb/library/yql/utils/actor_system/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d550257eae
--- /dev/null
+++ b/ydb/library/yql/utils/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-utils-actors)
+target_link_libraries(yql-utils-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ common-token_accessor-client
+ yql-public-types
+ yql-public-udf
+ providers-solomon-proto
+)
+target_sources(yql-utils-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/rich_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor.cpp
+)
diff --git a/ydb/library/yql/utils/actors/CMakeLists.txt b/ydb/library/yql/utils/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/actors/CMakeLists.txt
+++ b/ydb/library/yql/utils/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b08582f0ad
--- /dev/null
+++ b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-actors-ut)
+target_include_directories(ydb-library-yql-utils-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors
+)
+target_link_libraries(ydb-library-yql-utils-actors-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-actors
+ testlib-basics-default
+)
+target_link_options(ydb-library-yql-utils-actors-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-utils-actors-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-actors-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-actors-ut
+ TEST_TARGET
+ ydb-library-yql-utils-actors-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-actors-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-actors-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-actors-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-actors-ut)
diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/utils/actors/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/actors/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eec03a6e78
--- /dev/null
+++ b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(fake_llvm_symbolizer)
+add_subdirectory(ut)
+
+add_library(yql-utils-backtrace)
+target_link_libraries(yql-utils-backtrace PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ utils-backtrace-fake_llvm_symbolizer
+ lib-DebugInfo-Symbolize
+ cpp-deprecated-atomic
+)
+target_sources(yql-utils-backtrace PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/backtrace.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/symbolize.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/symbolizer_dummy.cpp
+)
diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.txt b/ydb/library/yql/utils/backtrace/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/backtrace/CMakeLists.txt
+++ b/ydb/library/yql/utils/backtrace/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..17698b5a8f
--- /dev/null
+++ b/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(utils-backtrace-fake_llvm_symbolizer)
+target_link_libraries(utils-backtrace-fake_llvm_symbolizer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ lib-DebugInfo-Symbolize
+)
+target_sources(utils-backtrace-fake_llvm_symbolizer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/fake_llvm_symbolizer.cpp
+)
diff --git a/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt b/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt
+++ b/ydb/library/yql/utils/backtrace/fake_llvm_symbolizer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..908415e23d
--- /dev/null
+++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-backtrace-ut)
+target_include_directories(ydb-library-yql-utils-backtrace-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace
+)
+target_link_libraries(ydb-library-yql-utils-backtrace-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-backtrace
+)
+target_link_options(ydb-library-yql-utils-backtrace-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-utils-backtrace-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/backtrace_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-backtrace-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-backtrace-ut
+ TEST_TARGET
+ ydb-library-yql-utils-backtrace-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-backtrace-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-backtrace-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-backtrace-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-backtrace-ut)
diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/bindings/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/bindings/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a51e9d4cb6
--- /dev/null
+++ b/ydb/library/yql/utils/bindings/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-utils-bindings)
+target_link_libraries(yql-utils-bindings PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ cpp-json-yson
+ library-cpp-yson
+ yql-sql-settings
+ library-yql-utils
+)
+target_sources(yql-utils-bindings PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils.cpp
+)
diff --git a/ydb/library/yql/utils/bindings/CMakeLists.txt b/ydb/library/yql/utils/bindings/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/bindings/CMakeLists.txt
+++ b/ydb/library/yql/utils/bindings/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..685e63d5ed
--- /dev/null
+++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-bindings-ut)
+target_include_directories(ydb-library-yql-utils-bindings-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings
+)
+target_link_libraries(ydb-library-yql-utils-bindings-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-bindings
+)
+target_link_options(ydb-library-yql-utils-bindings-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-utils-bindings-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-bindings-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-bindings-ut
+ TEST_TARGET
+ ydb-library-yql-utils-bindings-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-bindings-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-bindings-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-bindings-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-bindings-ut)
diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/bindings/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/failure_injector/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/failure_injector/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f97a70dd59
--- /dev/null
+++ b/ydb/library/yql/utils/failure_injector/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(yql-utils-failure_injector)
+target_link_libraries(yql-utils-failure_injector PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-yql-utils
+ yql-utils-log
+)
+target_sources(yql-utils-failure_injector PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector.cpp
+)
diff --git a/ydb/library/yql/utils/failure_injector/CMakeLists.txt b/ydb/library/yql/utils/failure_injector/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/failure_injector/CMakeLists.txt
+++ b/ydb/library/yql/utils/failure_injector/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ba992194f8
--- /dev/null
+++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-failure_injector-ut)
+target_include_directories(ydb-library-yql-utils-failure_injector-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector
+)
+target_link_libraries(ydb-library-yql-utils-failure_injector-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-failure_injector
+ yql-utils-log
+)
+target_link_options(ydb-library-yql-utils-failure_injector-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-utils-failure_injector-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-failure_injector-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-failure_injector-ut
+ TEST_TARGET
+ ydb-library-yql-utils-failure_injector-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-failure_injector-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-failure_injector-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-failure_injector-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-failure_injector-ut)
diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/ydb/library/yql/utils/fetch/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/fetch/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8f28753f2c
--- /dev/null
+++ b/ydb/library/yql/utils/fetch/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-fetch)
+target_link_libraries(yql-utils-fetch PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-charset
+ cpp-http-io
+ cpp-http-misc
+ cpp-openssl-io
+ library-cpp-uri
+ yql-utils-log
+)
+target_sources(yql-utils-fetch PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fetch/fetch.cpp
+)
diff --git a/ydb/library/yql/utils/fetch/CMakeLists.txt b/ydb/library/yql/utils/fetch/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/fetch/CMakeLists.txt
+++ b/ydb/library/yql/utils/fetch/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/log/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/log/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75e3e46302
--- /dev/null
+++ b/ydb/library/yql/utils/log/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(proto)
+add_subdirectory(ut)
+
+add_library(yql-utils-log)
+target_link_libraries(yql-utils-log PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-logger
+ cpp-logger-global
+ cpp-deprecated-atomic
+ utils-log-proto
+)
+target_sources(yql-utils-log PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/context.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/log.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/profile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/tls_backend.cpp
+)
diff --git a/ydb/library/yql/utils/log/CMakeLists.txt b/ydb/library/yql/utils/log/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/log/CMakeLists.txt
+++ b/ydb/library/yql/utils/log/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d4898e8a17
--- /dev/null
+++ b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(utils-log-proto)
+target_link_libraries(utils-log-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(utils-log-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto
+)
+target_proto_addincls(utils-log-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(utils-log-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.txt b/ydb/library/yql/utils/log/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/log/proto/CMakeLists.txt
+++ b/ydb/library/yql/utils/log/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f1923d17ac
--- /dev/null
+++ b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-log-ut)
+target_include_directories(ydb-library-yql-utils-log-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log
+)
+target_link_libraries(ydb-library-yql-utils-log-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-log
+)
+target_link_options(ydb-library-yql-utils-log-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-utils-log-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/tls_backend_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-log-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-log-ut
+ TEST_TARGET
+ ydb-library-yql-utils-log-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-log-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-log-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-log-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-log-ut)
diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.txt b/ydb/library/yql/utils/log/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/log/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/log/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/simd/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7ac871c720
--- /dev/null
+++ b/ydb/library/yql/utils/simd/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(exec)
+add_subdirectory(ut)
+
+add_library(yql-utils-simd INTERFACE)
+target_link_libraries(yql-utils-simd INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-crc32c
+)
diff --git a/ydb/library/yql/utils/simd/CMakeLists.txt b/ydb/library/yql/utils/simd/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/simd/CMakeLists.txt
+++ b/ydb/library/yql/utils/simd/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5763b10ce3
--- /dev/null
+++ b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pack_tuple)
+target_compile_options(pack_tuple PRIVATE
+ -mavx2
+)
+target_link_libraries(pack_tuple PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-simd
+)
+target_link_options(pack_tuple PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(pack_tuple PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/pack_tuple/main.cpp
+)
+target_allocator(pack_tuple
+ system_allocator
+)
+vcs_info(pack_tuple)
diff --git a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt
+++ b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b45c229240
--- /dev/null
+++ b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(stream_store)
+target_link_libraries(stream_store PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-simd
+)
+target_link_options(stream_store PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(stream_store PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/stream_store/main.cpp
+)
+target_allocator(stream_store
+ system_allocator
+)
+vcs_info(stream_store)
diff --git a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt
+++ b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a11a97498
--- /dev/null
+++ b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(tuples_to_bucket)
+target_link_libraries(tuples_to_bucket PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-utils-simd
+)
+target_link_options(tuples_to_bucket PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(tuples_to_bucket PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/tuples_to_bucket/main.cpp
+)
+target_allocator(tuples_to_bucket
+ system_allocator
+)
+vcs_info(tuples_to_bucket)
diff --git a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt
+++ b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8a0ecfef75
--- /dev/null
+++ b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-simd-ut)
+target_include_directories(ydb-library-yql-utils-simd-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd
+)
+target_link_libraries(ydb-library-yql-utils-simd-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ yql-utils-simd
+)
+target_link_options(ydb-library-yql-utils-simd-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-yql-utils-simd-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/simd_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-simd-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-simd-ut
+ TEST_TARGET
+ ydb-library-yql-utils-simd-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-simd-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-simd-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-simd-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-simd-ut)
diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/simd/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/simd/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a8129ae24
--- /dev/null
+++ b/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-sys)
+target_link_libraries(yql-utils-sys PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yql-utils-sys PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp
+)
diff --git a/ydb/library/yql/utils/sys/CMakeLists.txt b/ydb/library/yql/utils/sys/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/sys/CMakeLists.txt
+++ b/ydb/library/yql/utils/sys/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/test_http_server/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/test_http_server/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cae5b436b0
--- /dev/null
+++ b/ydb/library/yql/utils/test_http_server/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-test_http_server)
+target_link_libraries(yql-utils-test_http_server PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-http-server
+ cpp-http-misc
+)
+target_sources(yql-utils-test_http_server PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/test_http_server/test_http_server.cpp
+)
diff --git a/ydb/library/yql/utils/test_http_server/CMakeLists.txt b/ydb/library/yql/utils/test_http_server/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/test_http_server/CMakeLists.txt
+++ b/ydb/library/yql/utils/test_http_server/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/threading/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/threading/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..088417b3f9
--- /dev/null
+++ b/ydb/library/yql/utils/threading/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-utils-threading)
+target_link_libraries(yql-utils-threading PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yql-utils-threading PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/threading/async_queue.cpp
+)
diff --git a/ydb/library/yql/utils/threading/CMakeLists.txt b/ydb/library/yql/utils/threading/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/threading/CMakeLists.txt
+++ b/ydb/library/yql/utils/threading/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6fca489a5c
--- /dev/null
+++ b/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-yql-utils-ut)
+target_include_directories(ydb-library-yql-utils-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils
+)
+target_link_libraries(ydb-library-yql-utils-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ library-yql-utils
+)
+target_link_options(ydb-library-yql-utils-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-library-yql-utils-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/aws_credentials_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fp_bits_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/range_walker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/url_builder_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/utf8_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-yql-utils-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-library-yql-utils-ut
+ TEST_TARGET
+ ydb-library-yql-utils-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-library-yql-utils-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-library-yql-utils-ut
+ system_allocator
+)
+vcs_info(ydb-library-yql-utils-ut)
diff --git a/ydb/library/yql/utils/ut/CMakeLists.txt b/ydb/library/yql/utils/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yql/utils/ut/CMakeLists.txt
+++ b/ydb/library/yql/utils/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt b/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..32f3123873
--- /dev/null
+++ b/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-yverify_stream INTERFACE)
+target_link_libraries(ydb-library-yverify_stream INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/yverify_stream/CMakeLists.txt b/ydb/library/yverify_stream/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/library/yverify_stream/CMakeLists.txt
+++ b/ydb/library/yverify_stream/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f7e92b4da
--- /dev/null
+++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yc_private-compute-inner)
+set_property(TARGET yc_private-compute-inner PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(yc_private-compute-inner PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(yc_private-compute-inner PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto
+)
+target_proto_addincls(yc_private-compute-inner
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yc_private-compute-inner
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(yc_private-compute-inner
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt
+++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..218cc74d27
--- /dev/null
+++ b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,177 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_private-iam)
+set_property(TARGET client-yc_private-iam PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_private-iam PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ client-yc_private-operation
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_private-iam PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/iam_token.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/reference.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/service_account.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto
+)
+target_proto_addincls(client-yc_private-iam
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_private-iam
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_private-iam
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_private/iam/CMakeLists.txt
+++ b/ydb/public/api/client/yc_private/iam/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..97cc8932f7
--- /dev/null
+++ b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_private-operation)
+set_property(TARGET client-yc_private-operation PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_private-operation PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_private-operation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto
+)
+target_proto_addincls(client-yc_private-operation
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_private-operation
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_private-operation
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_private/operation/CMakeLists.txt
+++ b/ydb/public/api/client/yc_private/operation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..267a6c5152
--- /dev/null
+++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_private-resourcemanager)
+set_property(TARGET client-yc_private-resourcemanager PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_private-resourcemanager PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ client-yc_private-operation
+ client-yc_private-servicecontrol
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_private-resourcemanager PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto
+)
+target_proto_addincls(client-yc_private-resourcemanager
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_private-resourcemanager
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_private-resourcemanager
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt
+++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a8651e29d
--- /dev/null
+++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_private-servicecontrol)
+set_property(TARGET client-yc_private-servicecontrol PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_private-servicecontrol PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_private-servicecontrol PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto
+)
+target_proto_addincls(client-yc_private-servicecontrol
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_private-servicecontrol
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_private-servicecontrol
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt
+++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f33957c22e
--- /dev/null
+++ b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_public-common)
+set_property(TARGET client-yc_public-common PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_public-common PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_public-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto
+)
+target_proto_addincls(client-yc_public-common
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_public-common
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_public-common
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.txt b/ydb/public/api/client/yc_public/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_public/common/CMakeLists.txt
+++ b/ydb/public/api/client/yc_public/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..554d97242b
--- /dev/null
+++ b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_public-events)
+set_property(TARGET client-yc_public-events PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_public-events PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ client-yc_public-common
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_public-events PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/options.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto
+)
+target_proto_addincls(client-yc_public-events
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_public-events
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_public-events
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.txt b/ydb/public/api/client/yc_public/events/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_public/events/CMakeLists.txt
+++ b/ydb/public/api/client/yc_public/events/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b286b49c6
--- /dev/null
+++ b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,60 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_public-iam)
+set_property(TARGET client-yc_public-iam PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_public-iam PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ client-yc_public-common
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_public-iam PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto
+)
+target_proto_addincls(client-yc_public-iam
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_public-iam
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_public-iam
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_public/iam/CMakeLists.txt
+++ b/ydb/public/api/client/yc_public/iam/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6ff708119f
--- /dev/null
+++ b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(client-yc_public-logging)
+set_property(TARGET client-yc_public-logging PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(client-yc_public-logging PUBLIC
+ contrib-libs-googleapis-common-protos
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ client-yc_public-common
+ contrib-libs-protobuf
+)
+target_proto_messages(client-yc_public-logging PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_entry.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto
+)
+target_proto_addincls(client-yc_public-logging
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(client-yc_public-logging
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(client-yc_public-logging
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/client/yc_public/logging/CMakeLists.txt
+++ b/ydb/public/api/client/yc_public/logging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2c51f9ed46
--- /dev/null
+++ b/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,254 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(draft)
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(api-grpc)
+set_property(TARGET api-grpc PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(api-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(api-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_auth_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_cms_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_coordination_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_discovery_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_export_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_import_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_operation_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_query_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_scheme_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_scripting_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_table_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto
+)
+target_proto_addincls(api-grpc
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(api-grpc
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/grpc/CMakeLists.txt b/ydb/public/api/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/grpc/CMakeLists.txt
+++ b/ydb/public/api/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt b/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ec7da389c
--- /dev/null
+++ b/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,162 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(api-grpc-draft)
+set_property(TARGET api-grpc-draft PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(api-grpc-draft PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(api-grpc-draft PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/dummy.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/fq_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_long_tx_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto
+)
+target_proto_addincls(api-grpc-draft
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-grpc-draft
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(api-grpc-draft
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/public/api/grpc/draft/CMakeLists.txt b/ydb/public/api/grpc/draft/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/grpc/draft/CMakeLists.txt
+++ b/ydb/public/api/grpc/draft/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/protos/CMakeLists.darwin-arm64.txt b/ydb/public/api/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b9750e7dc2
--- /dev/null
+++ b/ydb/public/api/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,530 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(annotations)
+add_subdirectory(out)
+get_built_tool_path(
+ TOOL_validation_bin
+ TOOL_validation_dependency
+ ydb/public/lib/validation
+ validation
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(api-protos)
+target_link_libraries(api-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos-annotations
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-protobuf
+)
+target_proto_messages(api-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/datastreams.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/fq.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/persqueue_common.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/ydb_long_tx.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/ydb_maintenance.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/ydb_logstore.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_federation_discovery.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_auth.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_persqueue_v1.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_cms.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_common.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_coordination.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_discovery.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_export.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_formats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_import.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_issue_message.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_monitoring.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_operation.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_query_stats.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_query.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_rate_limiter.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_scheme.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_scripting.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_status_codes.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_table.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_topic.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto
+)
+generate_enum_serilization(api-protos
+ ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h
+ INCLUDE_HEADERS
+ ydb/public/api/protos/draft/persqueue_common.pb.h
+)
+generate_enum_serilization(api-protos
+ ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h
+ INCLUDE_HEADERS
+ ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h
+)
+generate_enum_serilization(api-protos
+ ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h
+ INCLUDE_HEADERS
+ ydb/public/api/protos/draft/datastreams.pb.h
+)
+generate_enum_serilization(api-protos
+ ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h
+ INCLUDE_HEADERS
+ ydb/public/api/protos/ydb_topic.pb.h
+)
+target_proto_addincls(api-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(api-protos
+ validation
+ validation
+)
diff --git a/ydb/public/api/protos/CMakeLists.txt b/ydb/public/api/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/protos/CMakeLists.txt
+++ b/ydb/public/api/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt b/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4c41d677bd
--- /dev/null
+++ b/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(api-protos-annotations)
+target_link_libraries(api-protos-annotations PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(api-protos-annotations PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto
+)
+target_proto_addincls(api-protos-annotations
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-protos-annotations
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/public/api/protos/annotations/CMakeLists.txt b/ydb/public/api/protos/annotations/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/protos/annotations/CMakeLists.txt
+++ b/ydb/public/api/protos/annotations/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/api/protos/out/CMakeLists.darwin-arm64.txt b/ydb/public/api/protos/out/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..09f1a2240c
--- /dev/null
+++ b/ydb/public/api/protos/out/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(api-protos-out)
+target_link_libraries(api-protos-out PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+)
+target_sources(api-protos-out PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/out/out.cpp
+)
diff --git a/ydb/public/api/protos/out/CMakeLists.txt b/ydb/public/api/protos/out/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/api/protos/out/CMakeLists.txt
+++ b/ydb/public/api/protos/out/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/base/CMakeLists.darwin-arm64.txt b/ydb/public/lib/base/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..deddcb879e
--- /dev/null
+++ b/ydb/public/lib/base/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-base)
+target_link_libraries(public-lib-base PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-deprecated-enum_codegen
+ library-cpp-messagebus
+ messagebus_protobuf
+ ydb-core-protos
+)
+target_sources(public-lib-base PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp
+)
diff --git a/ydb/public/lib/base/CMakeLists.txt b/ydb/public/lib/base/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/base/CMakeLists.txt
+++ b/ydb/public/lib/base/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f113cd80ea
--- /dev/null
+++ b/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-deprecated-client)
+target_link_libraries(lib-deprecated-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ library-cpp-messagebus
+ public-lib-base
+)
+target_sources(lib-deprecated-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp
+)
diff --git a/ydb/public/lib/deprecated/client/CMakeLists.txt b/ydb/public/lib/deprecated/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/deprecated/client/CMakeLists.txt
+++ b/ydb/public/lib/deprecated/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5c49ae22e1
--- /dev/null
+++ b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(lib-deprecated-kicli)
+target_link_libraries(lib-deprecated-kicli PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ cpp-actors-core
+ cpp-threading-future
+ ydb-core-protos
+ ydb-library-aclib
+ api-grpc
+ api-grpc-draft
+ api-protos
+ public-lib-base
+ lib-deprecated-client
+ public-lib-scheme_types
+ public-lib-value
+ yql-public-decimal
+ yql-public-issue
+)
+target_sources(lib-deprecated-kicli PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kikimr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/result.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/schema.cpp
+)
diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/deprecated/kicli/CMakeLists.txt
+++ b/ydb/public/lib/deprecated/kicli/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5618b3cd04
--- /dev/null
+++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-deprecated-kicli-ut)
+target_compile_options(ydb-public-lib-deprecated-kicli-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-public-lib-deprecated-kicli-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli
+)
+target_link_libraries(ydb-public-lib-deprecated-kicli-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ lib-deprecated-kicli
+ ydb-core-client
+ core-testlib-default
+)
+target_link_options(ydb-public-lib-deprecated-kicli-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-deprecated-kicli-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/cpp_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-deprecated-kicli-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-deprecated-kicli-ut
+ TEST_TARGET
+ ydb-public-lib-deprecated-kicli-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-deprecated-kicli-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-deprecated-kicli-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-deprecated-kicli-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-lib-deprecated-kicli-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-deprecated-kicli-ut)
diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt
+++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/experimental/CMakeLists.darwin-arm64.txt b/ydb/public/lib/experimental/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da9305bb1e
--- /dev/null
+++ b/ydb/public/lib/experimental/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-experimental)
+target_link_libraries(public-lib-experimental PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-scheme
+ api-grpc-draft
+ cpp-client-ydb_proto
+ cpp-client-ydb_table
+)
+target_sources(public-lib-experimental PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_clickhouse_internal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_logstore.cpp
+)
diff --git a/ydb/public/lib/experimental/CMakeLists.txt b/ydb/public/lib/experimental/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/experimental/CMakeLists.txt
+++ b/ydb/public/lib/experimental/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/fq/CMakeLists.darwin-arm64.txt b/ydb/public/lib/fq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4690812914
--- /dev/null
+++ b/ydb/public/lib/fq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-fq)
+target_link_libraries(public-lib-fq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ api-grpc-draft
+ cpp-client-ydb_table
+)
+target_sources(public-lib-fq PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/fq/fq.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/fq/scope.cpp
+)
diff --git a/ydb/public/lib/fq/CMakeLists.txt b/ydb/public/lib/fq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/fq/CMakeLists.txt
+++ b/ydb/public/lib/fq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/idx_test/CMakeLists.darwin-arm64.txt b/ydb/public/lib/idx_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..392ae5d066
--- /dev/null
+++ b/ydb/public/lib/idx_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(public-lib-idx_test)
+target_link_libraries(public-lib-idx_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-base64
+ cpp-client-ydb_table
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(public-lib-idx_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_checker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_data_provider.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_stderr_progress_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_loader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test_upload.cpp
+)
+generate_enum_serilization(public-lib-idx_test
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/idx_test.h
+ INCLUDE_HEADERS
+ ydb/public/lib/idx_test/idx_test.h
+)
diff --git a/ydb/public/lib/idx_test/CMakeLists.txt b/ydb/public/lib/idx_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/idx_test/CMakeLists.txt
+++ b/ydb/public/lib/idx_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3eab6d6fa4
--- /dev/null
+++ b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-idx_test-ut)
+target_include_directories(ydb-public-lib-idx_test-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test
+)
+target_link_libraries(ydb-public-lib-idx_test-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ public-lib-idx_test
+)
+target_link_options(ydb-public-lib-idx_test-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-idx_test-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/ut/idx_test_data_provider_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-idx_test-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-idx_test-ut
+ TEST_TARGET
+ ydb-public-lib-idx_test-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-idx_test-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-idx_test-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-idx_test-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-lib-idx_test-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-idx_test-ut)
diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.txt b/ydb/public/lib/idx_test/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/idx_test/ut/CMakeLists.txt
+++ b/ydb/public/lib/idx_test/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/json_value/CMakeLists.darwin-arm64.txt b/ydb/public/lib/json_value/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..90c26f006f
--- /dev/null
+++ b/ydb/public/lib/json_value/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(public-lib-json_value)
+target_link_libraries(public-lib-json_value PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-json-writer
+ cpp-string_utils-base64
+ cpp-client-ydb_result
+ cpp-client-ydb_value
+ ydb-library-uuid
+)
+target_sources(public-lib-json_value PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp
+)
diff --git a/ydb/public/lib/json_value/CMakeLists.txt b/ydb/public/lib/json_value/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/json_value/CMakeLists.txt
+++ b/ydb/public/lib/json_value/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..12d78895c8
--- /dev/null
+++ b/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-json_value-ut)
+target_include_directories(ydb-public-lib-json_value-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value
+)
+target_link_libraries(ydb-public-lib-json_value-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ public-lib-json_value
+ library-cpp-json
+ cpp-testing-unittest
+ cpp-client-ydb_proto
+ cpp-client-ydb_params
+)
+target_link_options(ydb-public-lib-json_value-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-json_value-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-json_value-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-json_value-ut
+ TEST_TARGET
+ ydb-public-lib-json_value-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-json_value-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-json_value-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-json_value-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-lib-json_value-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-json_value-ut)
diff --git a/ydb/public/lib/json_value/ut/CMakeLists.txt b/ydb/public/lib/json_value/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/json_value/ut/CMakeLists.txt
+++ b/ydb/public/lib/json_value/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt b/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a8da4b49f7
--- /dev/null
+++ b/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-jwt)
+target_link_libraries(public-lib-jwt PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-jwt-cpp
+ library-cpp-json
+ impl-ydb_internal-common
+)
+target_sources(public-lib-jwt PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp
+)
diff --git a/ydb/public/lib/jwt/CMakeLists.txt b/ydb/public/lib/jwt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/jwt/CMakeLists.txt
+++ b/ydb/public/lib/jwt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/operation_id/CMakeLists.darwin-arm64.txt b/ydb/public/lib/operation_id/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b10c999db5
--- /dev/null
+++ b/ydb/public/lib/operation_id/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(public-lib-operation_id)
+target_link_libraries(public-lib-operation_id PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-cgiparam
+ library-cpp-uri
+ lib-operation_id-protos
+)
+target_sources(public-lib-operation_id PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/operation_id.cpp
+)
diff --git a/ydb/public/lib/operation_id/CMakeLists.txt b/ydb/public/lib/operation_id/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/operation_id/CMakeLists.txt
+++ b/ydb/public/lib/operation_id/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a800067d56
--- /dev/null
+++ b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(lib-operation_id-protos)
+target_link_libraries(lib-operation_id-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(lib-operation_id-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto
+)
+target_proto_addincls(lib-operation_id-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(lib-operation_id-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.txt b/ydb/public/lib/operation_id/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/operation_id/protos/CMakeLists.txt
+++ b/ydb/public/lib/operation_id/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e9699b6cb3
--- /dev/null
+++ b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-operation_id-ut)
+target_include_directories(ydb-public-lib-operation_id-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id
+)
+target_link_libraries(ydb-public-lib-operation_id-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ public-lib-operation_id
+ cpp-testing-unittest
+)
+target_link_options(ydb-public-lib-operation_id-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-public-lib-operation_id-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/operation_id_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-operation_id-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-operation_id-ut
+ TEST_TARGET
+ ydb-public-lib-operation_id-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-operation_id-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-operation_id-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-public-lib-operation_id-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-operation_id-ut)
diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.txt b/ydb/public/lib/operation_id/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/operation_id/ut/CMakeLists.txt
+++ b/ydb/public/lib/operation_id/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt b/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..80504edf48
--- /dev/null
+++ b/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-scheme_types)
+target_link_libraries(public-lib-scheme_types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-types
+)
+target_sources(public-lib-scheme_types PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp
+)
diff --git a/ydb/public/lib/scheme_types/CMakeLists.txt b/ydb/public/lib/scheme_types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/scheme_types/CMakeLists.txt
+++ b/ydb/public/lib/scheme_types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/stat_visualization/CMakeLists.darwin-arm64.txt b/ydb/public/lib/stat_visualization/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..45ab1794d1
--- /dev/null
+++ b/ydb/public/lib/stat_visualization/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-stat_visualization)
+target_link_libraries(public-lib-stat_visualization PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(public-lib-stat_visualization PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/stat_visualization/flame_graph_builder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/stat_visualization/flame_graph_entry.cpp
+)
diff --git a/ydb/public/lib/stat_visualization/CMakeLists.txt b/ydb/public/lib/stat_visualization/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/stat_visualization/CMakeLists.txt
+++ b/ydb/public/lib/stat_visualization/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..82277a8803
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-ut_helpers)
+target_link_libraries(public-lib-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ api-protos-out
+ cpp-grpc-client
+)
+target_sources(public-lib-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
+)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.txt b/ydb/public/lib/ut_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ut_helpers/CMakeLists.txt
+++ b/ydb/public/lib/ut_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/validation/CMakeLists.darwin-arm64.txt b/ydb/public/lib/validation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..33f2fe3ef1
--- /dev/null
+++ b/ydb/public/lib/validation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_executable(validation)
+target_link_libraries(validation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protoc
+ api-protos-annotations
+)
+target_link_options(validation PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(validation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/main.cpp
+)
+target_allocator(validation
+ system_allocator
+)
+vcs_info(validation)
diff --git a/ydb/public/lib/validation/CMakeLists.txt b/ydb/public/lib/validation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/validation/CMakeLists.txt
+++ b/ydb/public/lib/validation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..268969d258
--- /dev/null
+++ b/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(protos)
+
+add_executable(ydb-public-lib-validation-ut)
+target_include_directories(ydb-public-lib-validation-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation
+)
+target_link_libraries(ydb-public-lib-validation-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-testing-unittest
+ validation-ut-protos
+)
+target_link_options(ydb-public-lib-validation-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-public-lib-validation-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-validation-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-validation-ut
+ TEST_TARGET
+ ydb-public-lib-validation-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-validation-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-validation-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-public-lib-validation-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-validation-ut)
diff --git a/ydb/public/lib/validation/ut/CMakeLists.txt b/ydb/public/lib/validation/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/validation/ut/CMakeLists.txt
+++ b/ydb/public/lib/validation/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7f7553fb80
--- /dev/null
+++ b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_validation_bin
+ TOOL_validation_dependency
+ ydb/public/lib/validation
+ validation
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(validation-ut-protos)
+target_link_libraries(validation-ut-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos-annotations
+ contrib-libs-protobuf
+)
+target_proto_messages(validation-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto
+)
+target_proto_addincls(validation-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(validation-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(validation-ut-protos
+ validation
+ validation
+)
diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/validation/ut/protos/CMakeLists.txt
+++ b/ydb/public/lib/validation/ut/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/value/CMakeLists.darwin-arm64.txt b/ydb/public/lib/value/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c20c5c23b3
--- /dev/null
+++ b/ydb/public/lib/value/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-value)
+target_link_libraries(public-lib-value PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-string_utils-base64
+ ydb-core-protos
+ library-mkql_proto-protos
+ public-lib-scheme_types
+ cpp-client-ydb_value
+)
+target_sources(public-lib-value PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/value/value.cpp
+)
diff --git a/ydb/public/lib/value/CMakeLists.txt b/ydb/public/lib/value/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/value/CMakeLists.txt
+++ b/ydb/public/lib/value/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7715907a57
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,218 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(topic_workload)
+add_subdirectory(transfer_workload)
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(clicommands)
+target_link_libraries(clicommands PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-patched-replxx
+ cpp-histogram-hdr
+ cpp-protobuf-json
+ cpp-regex-pcre
+ cpp-threading-local_executor
+ kikimr_backup
+ ydb-library-workload
+ public-lib-operation_id
+ public-lib-stat_visualization
+ common
+ topic_workload
+ transfer_workload
+ lib-ydb_cli-dump
+ lib-ydb_cli-import
+ topic
+ cpp-client-draft
+ cpp-client-ydb_coordination
+ cpp-client-ydb_discovery
+ cpp-client-ydb_export
+ cpp-client-ydb_import
+ cpp-client-ydb_monitoring
+ cpp-client-ydb_operation
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_proto
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ ydb_types-credentials-login
+ library-cpp-resource
+)
+target_sources(clicommands PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/interactive_cli.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpcc_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_export.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_monitoring.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_scripting.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_tools.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_yql.cpp
+)
+
+add_global_library_for(clicommands.global clicommands)
+target_link_libraries(clicommands.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ restricted-patched-replxx
+ cpp-histogram-hdr
+ cpp-protobuf-json
+ cpp-regex-pcre
+ cpp-threading-local_executor
+ kikimr_backup
+ ydb-library-workload
+ public-lib-operation_id
+ public-lib-stat_visualization
+ common
+ topic_workload
+ transfer_workload
+ lib-ydb_cli-dump
+ lib-ydb_cli-import
+ topic
+ cpp-client-draft
+ cpp-client-ydb_coordination
+ cpp-client-ydb_discovery
+ cpp-client-ydb_export
+ cpp-client-ydb_import
+ cpp-client-ydb_monitoring
+ cpp-client-ydb_operation
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_proto
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ ydb_types-credentials-login
+ library-cpp-resource
+)
+target_sources(clicommands.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp
+)
+resources(clicommands.global
+ ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q3.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q4.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q5.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q6.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q7.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q8.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q9.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q10.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q11.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q12.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q13.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q14.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q15.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q16.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q17.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q18.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q19.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q20.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q21.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q22.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q23.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q24.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q25.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q26.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q27.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q28.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q29.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q30.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q31.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q32.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q33.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q34.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q35.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q36.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q37.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q38.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q39.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q40.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q41.result
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q42.result
+ KEYS
+ click_bench_queries.sql
+ click_bench_schema.sql
+ tpch_schema.sql
+ q0.result
+ q1.result
+ q2.result
+ q3.result
+ q4.result
+ q5.result
+ q6.result
+ q7.result
+ q8.result
+ q9.result
+ q10.result
+ q11.result
+ q12.result
+ q13.result
+ q14.result
+ q15.result
+ q16.result
+ q17.result
+ q18.result
+ q19.result
+ q20.result
+ q21.result
+ q22.result
+ q23.result
+ q24.result
+ q25.result
+ q26.result
+ q27.result
+ q28.result
+ q29.result
+ q30.result
+ q31.result
+ q32.result
+ q33.result
+ q34.result
+ q35.result
+ q36.result
+ q37.result
+ q38.result
+ q39.result
+ q40.result
+ q41.result
+ q42.result
+)
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/commands/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed32571406
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(topic_workload)
+target_link_libraries(topic_workload PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+ public-issue-protos
+ api-grpc
+ api-protos
+ api-protos-annotations
+ public-lib-operation_id
+ lib-operation_id-protos
+ cpp-client-draft
+ cpp-client-ydb_driver
+ cpp-client-ydb_proto
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ client-ydb_types-operation
+ client-ydb_types-status
+)
+target_sources(topic_workload PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_clean.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader_transaction_support.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload.cpp
+)
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ce905a532a
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-ydb_cli-commands-topic_workload-ut)
+target_include_directories(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload
+)
+target_link_libraries(ydb-public-lib-ydb_cli-commands-topic_workload-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ topic_workload
+ cpp-regex-pcre
+ cpp-getopt-small
+)
+target_link_options(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ TEST_TARGET
+ ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-public-lib-ydb_cli-commands-topic_workload-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-ydb_cli-commands-topic_workload-ut)
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4a4b5327b7
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(transfer_workload)
+target_link_libraries(transfer_workload PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-public-issue
+ public-issue-protos
+ api-grpc
+ api-protos
+ api-protos-annotations
+ public-lib-operation_id
+ lib-operation_id-protos
+ cpp-client-draft
+ cpp-client-ydb_driver
+ cpp-client-ydb_proto
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ client-ydb_types-operation
+ client-ydb_types-status
+)
+target_sources(transfer_workload PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload_topic_to_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload_topic_to_table_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload_topic_to_table_clean.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload_topic_to_table_run.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/transfer_workload/transfer_workload_defines.cpp
+)
diff --git a/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt b/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/commands/transfer_workload/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c684a660f2
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(common)
+target_link_libraries(common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-config
+ library-cpp-getopt
+ cpp-json-writer
+ cpp-yaml-as
+ cpp-string_utils-csv
+ public-lib-json_value
+ public-lib-operation_id
+ public-lib-yson_value
+ cpp-client-draft
+ cpp-client-ydb_result
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ cpp-client-ydb_types
+ client-ydb_types-credentials
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/aws.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/command.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/examples.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/format.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interactive.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/interruptible.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameter_stream.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pg_dump_parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pretty_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/print_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/profile_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/progress_bar.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/query_stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/recursive_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/recursive_remove.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/retry_func.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/root.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/scheme_printers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/sys.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/tabbed_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/ydb_updater.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/yt.cpp
+)
+generate_enum_serilization(common
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/formats.h
+ INCLUDE_HEADERS
+ ydb/public/lib/ydb_cli/common/formats.h
+)
+generate_enum_serilization(common
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/parameters.h
+ INCLUDE_HEADERS
+ ydb/public/lib/ydb_cli/common/parameters.h
+)
diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/common/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..18ba45ebb3
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-ydb_cli-common-ut)
+target_include_directories(ydb-public-lib-ydb_cli-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common
+)
+target_link_libraries(ydb-public-lib-ydb_cli-common-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ common
+)
+target_link_options(ydb-public-lib-ydb_cli-common-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-ydb_cli-common-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/csv_parser_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/pg_dump_parser_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-ydb_cli-common-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-ydb_cli-common-ut
+ TEST_TARGET
+ ydb-public-lib-ydb_cli-common-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-common-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-common-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-public-lib-ydb_cli-common-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-ydb_cli-common-ut)
diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a502b52604
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/dump/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(util)
+
+add_library(lib-ydb_cli-dump)
+target_link_libraries(lib-ydb_cli-dump PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-bucket_quoter
+ cpp-string_utils-quote
+ kikimr_backup
+ api-protos
+ common
+ ydb_cli-dump-util
+ cpp-client-ydb_proto
+)
+target_sources(lib-ydb_cli-dump PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/dump.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/dump_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/restore_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/restore_import_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/restore_compat.cpp
+)
diff --git a/ydb/public/lib/ydb_cli/dump/CMakeLists.txt b/ydb/public/lib/ydb_cli/dump/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/dump/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/dump/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8ce5a5267
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/dump/util/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb_cli-dump-util)
+target_link_libraries(ydb_cli-dump-util PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ common
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+ client-ydb_types-status
+)
+target_sources(ydb_cli-dump-util PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/dump/util/util.cpp
+)
diff --git a/ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt b/ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/dump/util/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/import/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/import/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1dad1b91e6
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/import/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(lib-ydb_cli-import)
+target_link_libraries(lib-ydb_cli-import PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ common
+ cpp-client-ydb_proto
+ public-lib-json_value
+ libs-apache-arrow
+ cpp-string_utils-csv
+)
+target_sources(lib-ydb_cli-import PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/import/import.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/import/cli_arrow_helpers.cpp
+)
diff --git a/ydb/public/lib/ydb_cli/import/CMakeLists.txt b/ydb/public/lib/ydb_cli/import/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/import/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/import/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f16533cf39
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/topic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(topic)
+target_link_libraries(topic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ common
+ cpp-client-ydb_proto
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_topic
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(topic PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp
+)
+generate_enum_serilization(topic
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_metadata_fields.h
+ INCLUDE_HEADERS
+ ydb/public/lib/ydb_cli/topic/topic_metadata_fields.h
+)
diff --git a/ydb/public/lib/ydb_cli/topic/CMakeLists.txt b/ydb/public/lib/ydb_cli/topic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/topic/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/topic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..52f2c7e9c2
--- /dev/null
+++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-lib-ydb_cli-topic-ut)
+target_compile_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-public-lib-ydb_cli-topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic
+)
+target_link_libraries(ydb-public-lib-ydb_cli-topic-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ topic
+ cpp-histogram-hdr
+ cpp-threading-local_executor
+ fq-libs-private_client
+ cpp-client-ydb_persqueue_public
+ public-lib-experimental
+ clicommands
+ common
+ public-lib-yson_value
+ cpp-client-ydb_proto
+ ydb_persqueue_core-ut-ut_utils
+)
+target_link_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-lib-ydb_cli-topic-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-lib-ydb_cli-topic-ut
+ TEST_TARGET
+ ydb-public-lib-ydb_cli-topic-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-topic-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-topic-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-lib-ydb_cli-topic-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-lib-ydb_cli-topic-ut
+ system_allocator
+)
+vcs_info(ydb-public-lib-ydb_cli-topic-ut)
diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt
+++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/lib/yson_value/CMakeLists.darwin-arm64.txt b/ydb/public/lib/yson_value/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..269315ffd4
--- /dev/null
+++ b/ydb/public/lib/yson_value/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-yson_value)
+target_link_libraries(public-lib-yson_value PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-yson
+ cpp-yson-node
+ cpp-client-ydb_result
+ cpp-client-ydb_value
+ ydb-library-uuid
+)
+target_sources(public-lib-yson_value PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/yson_value/ydb_yson_value.cpp
+)
diff --git a/ydb/public/lib/yson_value/CMakeLists.txt b/ydb/public/lib/yson_value/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/lib/yson_value/CMakeLists.txt
+++ b/ydb/public/lib/yson_value/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f030fbc25c
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/draft/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-client-draft)
+target_link_libraries(cpp-client-draft PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc-draft
+ cpp-client-ydb_table
+ client-ydb_types-operation
+ cpp-client-ydb_value
+)
+target_sources(cpp-client-draft PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_dynamic_config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_long_tx.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/draft/CMakeLists.txt b/ydb/public/sdk/cpp/client/draft/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/draft/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/draft/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8d64802296
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-draft-ut)
+target_include_directories(ydb-public-sdk-cpp-client-draft-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft
+)
+target_link_libraries(ydb-public-sdk-cpp-client-draft-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-draft
+)
+target_link_options(ydb-public-sdk-cpp-client-draft-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-draft-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting_response_headers_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-draft-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-draft-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-draft-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-draft-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-draft-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-draft-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-draft-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-draft-ut)
diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c683afa9d9
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(client-extensions-discovery_mutator)
+target_link_libraries(client-extensions-discovery_mutator PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_extension
+)
+target_sources(client-extensions-discovery_mutator PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..772c1373c8
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(client-extensions-discovery_mutator-ut)
+target_include_directories(client-extensions-discovery_mutator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator
+)
+target_link_libraries(client-extensions-discovery_mutator-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ client-extensions-discovery_mutator
+ cpp-client-ydb_table
+)
+target_link_options(client-extensions-discovery_mutator-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(client-extensions-discovery_mutator-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator_ut.cpp
+)
+set_property(
+ TARGET
+ client-extensions-discovery_mutator-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ client-extensions-discovery_mutator-ut
+ TEST_TARGET
+ client-extensions-discovery_mutator-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ client-extensions-discovery_mutator-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ client-extensions-discovery_mutator-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ client-extensions-discovery_mutator-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(client-extensions-discovery_mutator-ut
+ system_allocator
+)
+vcs_info(client-extensions-discovery_mutator-ut)
diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6ceecbe3fa
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-extensions-solomon_stats)
+target_link_libraries(client-extensions-solomon_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ monlib-encode-json
+ cpp-monlib-metrics
+ cpp-monlib-service
+ monlib-service-pages
+ cpp-client-ydb_extension
+)
+target_sources(client-extensions-solomon_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/solomon_stats/pull_client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/solomon_stats/pull_connector.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt b/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/extensions/solomon_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..75ca665dbd
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-helpers)
+target_link_libraries(cpp-client-helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ client-ydb_types-credentials
+ public-issue-protos
+)
+target_sources(cpp-client-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..62be1875e8
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/iam/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(impl)
+
+add_library(cpp-client-iam)
+target_link_libraries(cpp-client-iam PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ client-yc_public-iam
+ client-iam-impl
+ client-iam-common
+)
+target_sources(cpp-client-iam PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/iam.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/iam/CMakeLists.txt b/ydb/public/sdk/cpp/client/iam/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/iam/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/iam/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6023cc4d7a
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/iam/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-iam-common)
+target_link_libraries(client-iam-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-http-simple
+ library-cpp-json
+ cpp-threading-atomic
+ public-lib-jwt
+ client-ydb_types-credentials
+)
+target_sources(client-iam-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/common/iam.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt b/ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/iam/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..120ee49bc0
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-iam-impl INTERFACE)
+target_link_libraries(client-iam-impl INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-http-simple
+ library-cpp-json
+ cpp-threading-atomic
+ public-lib-jwt
+ client-ydb_types-credentials
+ client-iam-common
+)
diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..808529d050
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/iam_private/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-iam_private)
+target_link_libraries(cpp-client-iam_private PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ client-yc_private-iam
+ client-iam-common
+)
+target_sources(cpp-client-iam_private PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam_private/iam.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt b/ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/iam_private/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..38f3925add
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(client-impl-ydb_endpoints)
+target_link_libraries(client-impl-ydb_endpoints PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-metrics
+ api-grpc
+)
+target_sources(client-impl-ydb_endpoints PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..445bbca321
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut)
+target_include_directories(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints
+)
+target_link_libraries(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ client-impl-ydb_endpoints
+)
+target_link_options(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..db531056fe
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-common)
+target_link_libraries(impl-ydb_internal-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ yql-public-issue
+)
+target_sources(impl-ydb_internal-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/common/parser.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/common/getenv.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/common/string_helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5648c5c60d
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-db_driver_state)
+target_link_libraries(impl-ydb_internal-db_driver_state PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-string_utils-quote
+ cpp-threading-future
+ client-impl-ydb_endpoints
+ impl-ydb_internal-logger
+ impl-ydb_internal-plain_status
+ client-ydb_types-credentials
+)
+target_sources(impl-ydb_internal-db_driver_state PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/authenticator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/endpoint_pool.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/state.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/db_driver_state/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b38b5dd05
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-grpc_connections)
+target_link_libraries(impl-ydb_internal-grpc_connections PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-protos
+ impl-ydb_internal-db_driver_state
+ impl-ydb_internal-plain_status
+ impl-ydb_internal-thread_pool
+ client-impl-ydb_stats
+ cpp-client-resources
+ client-ydb_types-exceptions
+)
+target_sources(impl-ydb_internal-grpc_connections PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/actions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8372e613af
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-kqp_session_common)
+target_link_libraries(impl-ydb_internal-kqp_session_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+)
+target_sources(impl-ydb_internal-kqp_session_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5516de05f2
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-logger)
+target_link_libraries(impl-ydb_internal-logger PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-logger
+)
+target_sources(impl-ydb_internal-logger PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/log.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/logger/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7e1a72acfd
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-make_request)
+target_link_libraries(impl-ydb_internal-make_request PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ api-protos
+)
+target_sources(impl-ydb_internal-make_request PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/make.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af63d87c19
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-plain_status)
+target_link_libraries(impl-ydb_internal-plain_status PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-grpc-client
+ yql-public-issue
+)
+target_sources(impl-ydb_internal-plain_status PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/status.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c8ab5b75a3
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-retry)
+target_link_libraries(impl-ydb_internal-retry PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ impl-ydb_internal-grpc_connections
+)
+target_sources(impl-ydb_internal-retry PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/retry.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/retry/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8cdf68c0bc
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-session_pool)
+target_link_libraries(impl-ydb_internal-session_pool PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ client-impl-ydb_endpoints
+ client-ydb_types-operation
+ public-issue-protos
+)
+target_sources(impl-ydb_internal-session_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..32bdede6c3
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-thread_pool)
+target_link_libraries(impl-ydb_internal-thread_pool PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(impl-ydb_internal-thread_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/thread_pool/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..66ef8dd6be
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-value_helpers)
+target_link_libraries(impl-ydb_internal-value_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ client-ydb_types-fatal_error_handlers
+)
+target_sources(impl-ydb_internal-value_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/value_helpers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a0f265545a
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-impl-ydb_stats)
+target_link_libraries(client-impl-ydb_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-monlib-metrics
+)
+target_sources(client-impl-ydb_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_stats/stats.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..563cc3de83
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/resources/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_library(cpp-client-resources)
+target_link_libraries(cpp-client-resources PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+)
+target_sources(cpp-client-resources PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/resources/ydb_resources.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/resources/ydb_ca.cpp
+)
+
+add_global_library_for(cpp-client-resources.global cpp-client-resources)
+target_link_libraries(cpp-client-resources.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-resource
+)
+target_sources(cpp-client-resources.global PRIVATE
+ ${CMAKE_BINARY_DIR}/ydb/public/sdk/cpp/client/resources/6ed212bf45019efe2a5e72b6d5ed50fb.cpp
+)
+resources(cpp-client-resources.global
+ ${CMAKE_BINARY_DIR}/ydb/public/sdk/cpp/client/resources/6ed212bf45019efe2a5e72b6d5ed50fb.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/resources/ydb_root_ca.pem
+ KEYS
+ ydb_sdk_version.txt
+ ydb_root_ca.pem
+)
diff --git a/ydb/public/sdk/cpp/client/resources/CMakeLists.txt b/ydb/public/sdk/cpp/client/resources/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/resources/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/resources/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a76525e38
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(impl)
+
+add_library(cpp-client-ydb_common_client)
+target_link_libraries(cpp-client-ydb_common_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ impl-ydb_internal-common
+ client-ydb_types-credentials
+)
+target_sources(cpp-client-ydb_common_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_common_client/settings.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_common_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..31eac1ee59
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_common_client-impl)
+target_link_libraries(client-ydb_common_client-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ impl-ydb_internal-grpc_connections
+)
+target_sources(client-ydb_common_client-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_common_client/impl/client.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_common_client/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0a78a6c824
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,39 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_coordination)
+target_link_libraries(cpp-client-ydb_coordination PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ api-grpc
+ impl-ydb_internal-make_request
+ cpp-client-ydb_common_client
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ cpp-client-ydb_proto
+ cpp-client-ydb_types
+ client-ydb_types-status
+)
+target_sources(cpp-client-ydb_coordination PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
+)
+generate_enum_serilization(cpp-client-ydb_coordination
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..89b0e5b07e
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_coordination-ut)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_coordination-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_coordination
+ api-grpc
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_coordination-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_coordination-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_coordination-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..158789e802
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_datastreams)
+target_link_libraries(cpp-client-ydb_datastreams PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-string_utils-url
+ api-grpc-draft
+ public-lib-operation_id
+ impl-ydb_internal-make_request
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_datastreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_datastreams/datastreams.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_datastreams/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..94a3588bae
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_discovery)
+target_link_libraries(cpp-client-ydb_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a2ddf89edc
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-client-ydb_driver)
+target_link_libraries(cpp-client-ydb_driver PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ impl-ydb_internal-common
+ impl-ydb_internal-grpc_connections
+ cpp-client-resources
+ cpp-client-ydb_common_client
+ client-ydb_types-status
+)
+target_sources(cpp-client-ydb_driver PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_driver/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a048be577
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_driver-ut)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_driver-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_driver
+ cpp-client-ydb_table
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_driver-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_driver-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_driver-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d233fd807
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_export)
+target_link_libraries(cpp-client-ydb_export PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ api-grpc
+ api-protos
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ cpp-client-ydb_proto
+ client-ydb_types-operation
+)
+target_sources(cpp-client-ydb_export PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_export/export.cpp
+)
+generate_enum_serilization(cpp-client-ydb_export
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_export/export.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_export/export.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_export/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..73c9f6df79
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_extension)
+target_link_libraries(cpp-client-ydb_extension PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-metrics
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_extension PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_extension/extension.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_extension/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dce7f91634
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(impl)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_federated_topic)
+target_link_libraries(cpp-client-ydb_federated_topic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-client-ydb_topic
+ client-ydb_federated_topic-impl
+)
+generate_enum_serilization(cpp-client-ydb_federated_topic
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b9ea01e31
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_federated_topic-impl)
+target_link_libraries(client-ydb_federated_topic-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-monlib-dynamic_counters
+ cpp-monlib-metrics
+ cpp-string_utils-url
+ library-persqueue-obfuscate
+ api-grpc-draft
+ api-grpc
+ impl-ydb_internal-make_request
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ client-ydb_persqueue_core-impl
+ cpp-client-ydb_proto
+)
+target_sources(client-ydb_federated_topic-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d090bfafab
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,88 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_federated_topic-ut)
+target_compile_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_federated_topic
+ cpp-testing-gmock_in_unittest
+ core-testlib-default
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ cpp-client-ydb_persqueue_core
+ client-ydb_persqueue_core-impl
+ ydb_persqueue_core-ut-ut_utils
+ client-ydb_topic-codecs
+ cpp-client-ydb_topic
+ client-ydb_topic-impl
+ client-ydb_federated_topic-impl
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/basic_usage_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_federated_topic-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_federated_topic-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec38303961
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_import)
+target_link_libraries(cpp-client-ydb_import PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ api-grpc
+ api-protos
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ cpp-client-ydb_proto
+ client-ydb_types-operation
+)
+target_sources(cpp-client-ydb_import PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_import/import.cpp
+)
+generate_enum_serilization(cpp-client-ydb_import
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_import/import.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_import/import.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_import/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2b96035405
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_monitoring)
+target_link_libraries(cpp-client-ydb_monitoring PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-client-ydb_proto
+ impl-ydb_internal-make_request
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_monitoring/monitoring.cpp
+)
+generate_enum_serilization(cpp-client-ydb_monitoring
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_monitoring/monitoring.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_monitoring/monitoring.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_monitoring/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..36ffba548a
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_operation)
+target_link_libraries(cpp-client-ydb_operation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ public-lib-operation_id
+ cpp-client-ydb_query
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ cpp-client-ydb_export
+ cpp-client-ydb_import
+ client-ydb_types-operation
+)
+target_sources(cpp-client-ydb_operation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_operation/operation.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_operation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..33e32a99fe
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-client-ydb_params)
+target_link_libraries(cpp-client-ydb_params PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ client-ydb_types-fatal_error_handlers
+ cpp-client-ydb_value
+)
+target_sources(cpp-client-ydb_params PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/impl.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_params/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0ab860b6e7
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_params-ut)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_params-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_params
+ public-lib-yson_value
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_params-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_params-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_params-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fab78335ee
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(impl)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_persqueue_core)
+target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ library-cpp-retry
+ client-ydb_persqueue_core-impl
+ cpp-client-ydb_proto
+ cpp-client-ydb_driver
+ api-grpc
+ api-grpc-draft
+ api-protos
+)
+generate_enum_serilization(cpp-client-ydb_persqueue_core
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8e87266134
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_persqueue_core-impl)
+target_link_libraries(client-ydb_persqueue_core-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-containers-disjoint_interval_tree
+ cpp-grpc-client
+ cpp-monlib-dynamic_counters
+ cpp-monlib-metrics
+ cpp-string_utils-url
+ library-persqueue-obfuscate
+ api-grpc-draft
+ impl-ydb_internal-make_request
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+)
+target_sources(client-ydb_persqueue_core-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/persqueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/persqueue_impl.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1d1d9438a9
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,91 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_utils)
+add_subdirectory(with_offset_ranges_mode_ut)
+
+add_executable(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut)
+target_compile_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_persqueue_core
+ cpp-testing-gmock_in_unittest
+ core-testlib-default
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ client-ydb_persqueue_core-impl
+ ydb_persqueue_core-ut-ut_utils
+ client-ydb_persqueue_public-codecs
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/basic_usage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/compress_executor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/compression_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/retry_policy_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8dd05584d2
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb_persqueue_core-ut-ut_utils)
+target_compile_options(ydb_persqueue_core-ut-ut_utils PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ cpp-testing-unittest
+ cpp-threading-chunk_queue
+ core-testlib-default
+ library-persqueue-topic_parser_public
+ cpp-client-ydb_driver
+ cpp-client-ydb_persqueue_core
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_table
+)
+target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9a0f943795
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(with_offset_ranges_mode_ut)
+target_compile_options(with_offset_ranges_mode_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(with_offset_ranges_mode_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-testing-gmock_in_unittest
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ ydb_persqueue_core-ut-ut_utils
+)
+target_link_options(with_offset_ranges_mode_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(with_offset_ranges_mode_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/basic_usage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/compress_executor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/retry_policy_ut.cpp
+)
+set_property(
+ TARGET
+ with_offset_ranges_mode_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ with_offset_ranges_mode_ut
+ TEST_TARGET
+ with_offset_ranges_mode_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ with_offset_ranges_mode_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ with_offset_ranges_mode_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ with_offset_ranges_mode_ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(with_offset_ranges_mode_ut
+ system_allocator
+)
+vcs_info(with_offset_ranges_mode_ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4d63969baa
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codecs)
+
+add_library(cpp-client-ydb_persqueue_public INTERFACE)
+target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_persqueue_core
+ client-ydb_persqueue_public-codecs
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..06fc4a13eb
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_persqueue_public-codecs)
+target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-zstd
+ public-issue-protos
+ api-grpc-draft
+ api-grpc
+ api-protos
+)
+target_sources(client-ydb_persqueue_public-codecs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..734afada32
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_proto)
+target_link_libraries(cpp-client-ydb_proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ lib-operation_id-protos
+ cpp-client-ydb_params
+ cpp-client-ydb_value
+ public-issue-protos
+)
+target_sources(cpp-client-ydb_proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6b201d4ea7
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(impl)
+
+add_library(cpp-client-ydb_query)
+target_link_libraries(cpp-client-ydb_query PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
+ impl-ydb_internal-session_pool
+ impl-ydb_internal-retry
+ cpp-client-ydb_common_client
+ cpp-client-ydb_driver
+ client-ydb_query-impl
+ cpp-client-ydb_result
+ client-ydb_types-operation
+)
+target_sources(cpp-client-ydb_query PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5636e88260
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_query-impl)
+target_link_libraries(client-ydb_query-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc-draft
+ api-protos
+ client-ydb_common_client-impl
+ cpp-client-ydb_proto
+)
+target_sources(client-ydb_query-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..32ed89c22f
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-ydb_rate_limiter)
+target_link_libraries(cpp-client-ydb_rate_limiter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_rate_limiter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_rate_limiter/rate_limiter.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_rate_limiter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee4d8bbb74
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(cpp-client-ydb_result)
+target_link_libraries(cpp-client-ydb_result PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ client-ydb_types-fatal_error_handlers
+ cpp-client-ydb_value
+ cpp-client-ydb_proto
+)
+target_sources(cpp-client-ydb_result PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/proto_accessor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_result/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..6a790873db
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_result-ut)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_result-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_result
+ cpp-client-ydb_params
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_result-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_result-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_result-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1c8c91c518
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_scheme)
+target_link_libraries(cpp-client-ydb_scheme PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ impl-ydb_internal-make_request
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+)
+target_sources(cpp-client-ydb_scheme PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_scheme/scheme.cpp
+)
+generate_enum_serilization(cpp-client-ydb_scheme
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_scheme/scheme.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_scheme/scheme.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_scheme/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e0ba823cda
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(impl)
+add_subdirectory(query_stats)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_table)
+target_link_libraries(cpp-client-ydb_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ api-protos
+ impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
+ impl-ydb_internal-retry
+ cpp-client-ydb_driver
+ cpp-client-ydb_params
+ cpp-client-ydb_proto
+ cpp-client-ydb_result
+ cpp-client-ydb_scheme
+ client-ydb_table-impl
+ client-ydb_table-query_stats
+ client-ydb_types-operation
+ cpp-client-ydb_value
+)
+target_sources(cpp-client-ydb_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/proto_accessor.cpp
+)
+generate_enum_serilization(cpp-client-ydb_table
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/table_enum.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_table/table_enum.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1b69401e71
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,28 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_table-impl)
+target_link_libraries(client-ydb_table-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+ impl-ydb_internal-session_pool
+ client-ydb_table-query_stats
+ public-issue-protos
+)
+target_sources(client-ydb_table-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/data_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/readers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3d6d63646b
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_table-query_stats)
+target_link_libraries(client-ydb_table-query_stats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ api-protos
+ cpp-client-ydb_query
+)
+target_sources(client-ydb_table-query_stats PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/query_stats/stats.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/query_stats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..afd2882e39
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(codecs)
+add_subdirectory(impl)
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_topic)
+target_link_libraries(cpp-client-ydb_topic PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ client-ydb_topic-codecs
+ library-cpp-retry
+ client-ydb_topic-impl
+ cpp-client-ydb_proto
+ cpp-client-ydb_driver
+ api-grpc
+ api-grpc-draft
+ api-protos
+ cpp-client-ydb_table
+)
+target_sources(cpp-client-ydb_topic PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp
+)
+generate_enum_serilization(cpp-client-ydb_topic
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_topic/topic.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a417b3b9cd
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_topic-codecs)
+target_link_libraries(client-ydb_topic-codecs PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-streams-zstd
+ public-issue-protos
+ api-grpc-draft
+ api-grpc
+ api-protos
+)
+target_sources(client-ydb_topic-codecs PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dc5af49696
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,38 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_topic-impl)
+target_link_libraries(client-ydb_topic-impl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-client
+ cpp-monlib-dynamic_counters
+ cpp-monlib-metrics
+ cpp-string_utils-url
+ library-persqueue-obfuscate
+ api-grpc-draft
+ api-grpc
+ impl-ydb_internal-make_request
+ client-ydb_common_client-impl
+ cpp-client-ydb_driver
+ client-ydb_persqueue_core-impl
+ cpp-client-ydb_proto
+)
+target_sources(client-ydb_topic-impl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/deferred_commit.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/event_handlers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8aa8c65476
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,91 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_utils)
+
+add_executable(ydb-public-sdk-cpp-client-ydb_topic-ut)
+target_compile_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_topic-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_topic
+ cpp-testing-gmock_in_unittest
+ core-testlib-default
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-ydb_driver
+ cpp-client-ydb_persqueue_core
+ client-ydb_persqueue_core-impl
+ ydb_persqueue_core-ut-ut_utils
+ client-ydb_topic-codecs
+ client-ydb_topic-impl
+ ydb_topic-ut-ut_utils
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/describe_topic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/local_partition_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/topic_to_table_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_topic-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_topic-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_topic-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ec01329d1c
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb_topic-ut-ut_utils)
+target_compile_options(ydb_topic-ut-ut_utils PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ydb_topic-ut-ut_utils PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ cpp-testing-unittest
+ cpp-threading-chunk_queue
+ core-testlib-default
+ library-persqueue-topic_parser_public
+ cpp-client-ydb_driver
+ cpp-client-ydb_topic
+ cpp-client-ydb_table
+)
+target_sources(ydb_topic-ut-ut_utils PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..830c62f0ed
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(credentials)
+add_subdirectory(exceptions)
+add_subdirectory(fatal_error_handlers)
+add_subdirectory(operation)
+add_subdirectory(status)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_types)
+target_link_libraries(cpp-client-ydb_types PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-grpc-client
+ yql-public-issue
+ tools-enum_parser-enum_serialization_runtime
+)
+generate_enum_serilization(cpp-client-ydb_types
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/s3_settings.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_types/s3_settings.h
+)
+generate_enum_serilization(cpp-client-ydb_types
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/status_codes.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_types/status_codes.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..184183b011
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(login)
+
+add_library(client-ydb_types-credentials)
+target_link_libraries(client-ydb_types-credentials PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-login
+ api-grpc
+ client-ydb_types-status
+ yql-public-issue
+)
+target_sources(client-ydb_types-credentials PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/credentials/credentials.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/credentials/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c2547bed27
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb_types-credentials-login)
+target_link_libraries(ydb_types-credentials-login PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-login
+ api-grpc
+ client-ydb_types-status
+ impl-ydb_internal-grpc_connections
+ yql-public-issue
+)
+target_sources(ydb_types-credentials-login PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/credentials/login/login.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/credentials/login/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5ef919ffb1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_types-exceptions)
+target_link_libraries(client-ydb_types-exceptions PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(client-ydb_types-exceptions PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/exceptions/exceptions.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/exceptions/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..49bdf0c926
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_types-fatal_error_handlers)
+target_link_libraries(client-ydb_types-fatal_error_handlers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ client-ydb_types-exceptions
+)
+target_sources(client-ydb_types-fatal_error_handlers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/handlers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/fatal_error_handlers/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a026d246d6
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_types-operation)
+target_link_libraries(client-ydb_types-operation PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ cpp-threading-future
+ public-lib-operation_id
+ cpp-client-ydb_types
+)
+target_sources(client-ydb_types-operation PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/operation/operation.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/operation/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2d15ee09be
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(client-ydb_types-status)
+target_link_libraries(client-ydb_types-status PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ impl-ydb_internal-plain_status
+ cpp-client-ydb_types
+ client-ydb_types-fatal_error_handlers
+ yql-public-issue
+)
+target_sources(client-ydb_types-status PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_types/status/status.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_types/status/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4ea6d6c0b8
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-client-ydb_value)
+target_link_libraries(cpp-client-ydb_value PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ cpp-containers-stack_vector
+ api-protos
+ impl-ydb_internal-value_helpers
+ client-ydb_types-fatal_error_handlers
+ yql-public-decimal
+ ydb-library-uuid
+)
+target_sources(cpp-client-ydb_value PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value.cpp
+)
+generate_enum_serilization(cpp-client-ydb_value
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value.h
+ INCLUDE_HEADERS
+ ydb/public/sdk/cpp/client/ydb_value/value.h
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_value/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4e7838507f
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-public-sdk-cpp-client-ydb_value-ut)
+target_include_directories(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value
+)
+target_link_libraries(ydb-public-sdk-cpp-client-ydb_value-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-client-ydb_value
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-ydb_params
+)
+target_link_options(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ TEST_TARGET
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-public-sdk-cpp-client-ydb_value-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-public-sdk-cpp-client-ydb_value-ut
+ system_allocator
+)
+vcs_info(ydb-public-sdk-cpp-client-ydb_value-ut)
diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b5869ecb94
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(basic_example)
+target_link_libraries(basic_example PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(basic_example PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(basic_example PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/basic_example_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/basic_example.cpp
+)
+target_allocator(basic_example
+ system_allocator
+)
+vcs_info(basic_example)
diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2ae13931a4
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(bulk_upsert_simple)
+target_link_libraries(bulk_upsert_simple PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(bulk_upsert_simple PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(bulk_upsert_simple PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/bulk_upsert_simple/main.cpp
+)
+target_allocator(bulk_upsert_simple
+ system_allocator
+)
+vcs_info(bulk_upsert_simple)
diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b62e3ed254
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pagination)
+target_link_libraries(pagination PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(pagination PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(pagination PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/pagination_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/pagination.cpp
+)
+target_allocator(pagination
+ system_allocator
+)
+vcs_info(pagination)
diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0c015c3a07
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(secondary_index)
+target_link_libraries(secondary_index PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(secondary_index PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(secondary_index PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_delete.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_drop.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_generate.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_list.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/secondary_index_update.cpp
+)
+target_allocator(secondary_index
+ system_allocator
+)
+vcs_info(secondary_index)
diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..03e5f962ef
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(secondary_index_builtin)
+target_link_libraries(secondary_index_builtin PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(secondary_index_builtin PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(secondary_index_builtin PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index_create.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index_fill.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index_drop.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/secondary_index_select_join.cpp
+)
+target_allocator(secondary_index_builtin
+ system_allocator
+)
+vcs_info(secondary_index_builtin)
diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e4f45d9647
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(persqueue_reader_eventloop)
+target_link_libraries(persqueue_reader_eventloop PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_topic
+ library-cpp-getopt
+)
+target_link_options(persqueue_reader_eventloop PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(persqueue_reader_eventloop PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/eventloop/main.cpp
+)
+target_allocator(persqueue_reader_eventloop
+ system_allocator
+)
+vcs_info(persqueue_reader_eventloop)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..30ad21dbfb
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(simple_persqueue_reader)
+target_link_libraries(simple_persqueue_reader PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_topic
+ library-cpp-getopt
+)
+target_link_options(simple_persqueue_reader PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(simple_persqueue_reader PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/simple/main.cpp
+)
+target_allocator(simple_persqueue_reader
+ system_allocator
+)
+vcs_info(simple_persqueue_reader)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b54f48357
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(read_from_topic_in_transaction)
+target_link_libraries(read_from_topic_in_transaction PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-ydb_topic
+ library-cpp-getopt
+)
+target_link_options(read_from_topic_in_transaction PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(read_from_topic_in_transaction PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/application.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/options.cpp
+)
+target_allocator(read_from_topic_in_transaction
+ system_allocator
+)
+vcs_info(read_from_topic_in_transaction)
diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68a3862c5d
--- /dev/null
+++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ttl)
+target_link_libraries(ttl PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ cpp-client-ydb_table
+)
+target_link_options(ttl PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ttl PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp
+)
+target_allocator(ttl
+ system_allocator
+)
+vcs_info(ttl)
diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/auth/CMakeLists.darwin-arm64.txt b/ydb/services/auth/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..76acb24ce6
--- /dev/null
+++ b/ydb/services/auth/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-auth)
+target_link_libraries(ydb-services-auth PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ library-cpp-lwtrace
+ ydb-core-grpc_services
+ ydb-core-protos
+ ydb-library-login
+ api-grpc
+ public-lib-operation_id
+)
+target_sources(ydb-services-auth PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/auth/grpc_service.cpp
+)
diff --git a/ydb/services/auth/CMakeLists.txt b/ydb/services/auth/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/auth/CMakeLists.txt
+++ b/ydb/services/auth/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/bg_tasks/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3e17e7cf8f
--- /dev/null
+++ b/ydb/services/bg_tasks/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abstract)
+add_subdirectory(ds_table)
+add_subdirectory(protos)
+add_subdirectory(ut)
+
+add_library(ydb-services-bg_tasks)
+target_link_libraries(ydb-services-bg_tasks PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ services-metadata-abstract
+ services-bg_tasks-abstract
+ services-bg_tasks-protos
+ ydb-library-services
+)
+target_sources(ydb-services-bg_tasks PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/service.cpp
+)
diff --git a/ydb/services/bg_tasks/CMakeLists.txt b/ydb/services/bg_tasks/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/bg_tasks/CMakeLists.txt
+++ b/ydb/services/bg_tasks/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/bg_tasks/abstract/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b0488020e3
--- /dev/null
+++ b/ydb/services/bg_tasks/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-bg_tasks-abstract)
+target_link_libraries(services-bg_tasks-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-accessor
+ cpp-actors-core
+ api-protos
+ services-bg_tasks-protos
+ ydb-core-base
+)
+target_sources(services-bg_tasks-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/interface.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/scheduler.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/activity.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/abstract/state.cpp
+)
diff --git a/ydb/services/bg_tasks/abstract/CMakeLists.txt b/ydb/services/bg_tasks/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/bg_tasks/abstract/CMakeLists.txt
+++ b/ydb/services/bg_tasks/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/bg_tasks/ds_table/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/ds_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..06ef95a09c
--- /dev/null
+++ b/ydb/services/bg_tasks/ds_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-bg_tasks-ds_table)
+target_link_libraries(services-bg_tasks-ds_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-accessor
+ cpp-actors-core
+ api-protos
+ services-bg_tasks-abstract
+ services-metadata-initializer
+ ydb-core-base
+ services-metadata-request
+)
+target_sources(services-bg_tasks-ds_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/behaviour.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/interrupt.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/task_executor_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/executor_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/task_executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/finish_task.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/assign_tasks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/fetch_tasks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/add_tasks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/task_enabled.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/lock_pinger.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ds_table/initialization.cpp
+)
diff --git a/ydb/services/bg_tasks/ds_table/CMakeLists.txt b/ydb/services/bg_tasks/ds_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/bg_tasks/ds_table/CMakeLists.txt
+++ b/ydb/services/bg_tasks/ds_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cec47cc18b
--- /dev/null
+++ b/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(services-bg_tasks-protos)
+target_link_libraries(services-bg_tasks-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(services-bg_tasks-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto
+)
+target_proto_addincls(services-bg_tasks-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(services-bg_tasks-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/services/bg_tasks/protos/CMakeLists.txt b/ydb/services/bg_tasks/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/bg_tasks/protos/CMakeLists.txt
+++ b/ydb/services/bg_tasks/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e9d8655ab9
--- /dev/null
+++ b/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-bg_tasks-ut)
+target_compile_options(ydb-services-bg_tasks-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-bg_tasks-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks
+)
+target_link_libraries(ydb-services-bg_tasks-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-bg_tasks
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ ydb-core-testlib
+ public-lib-yson_value
+ cpp-client-ydb_table
+ services-bg_tasks-abstract
+ cpp-testing-unittest
+ yql-parser-pg_wrapper
+ yql-sql-pg
+)
+target_link_options(ydb-services-bg_tasks-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-bg_tasks-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/ut_tasks.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/task_emulator.cpp
+)
+set_property(
+ TARGET
+ ydb-services-bg_tasks-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-services-bg_tasks-ut
+ TEST_TARGET
+ ydb-services-bg_tasks-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-bg_tasks-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-bg_tasks-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-services-bg_tasks-ut
+ system_allocator
+)
+vcs_info(ydb-services-bg_tasks-ut)
diff --git a/ydb/services/bg_tasks/ut/CMakeLists.txt b/ydb/services/bg_tasks/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/bg_tasks/ut/CMakeLists.txt
+++ b/ydb/services/bg_tasks/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/cms/CMakeLists.darwin-arm64.txt b/ydb/services/cms/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e30816acba
--- /dev/null
+++ b/ydb/services/cms/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-services-cms)
+target_link_libraries(ydb-services-cms PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ ydb-core-mind
+ ydb-library-aclib
+ api-grpc
+ public-lib-operation_id
+ cpp-client-resources
+)
+target_sources(ydb-services-cms PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/cms/grpc_service.cpp
+)
diff --git a/ydb/services/cms/CMakeLists.txt b/ydb/services/cms/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/cms/CMakeLists.txt
+++ b/ydb/services/cms/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt b/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4332c3103
--- /dev/null
+++ b/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-cms-ut)
+target_compile_options(ydb-services-cms-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-cms-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/cms
+)
+target_link_libraries(ydb-services-cms-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-cms
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+)
+target_link_options(ydb-services-cms-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-cms-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/cms/cms_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-cms-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-cms-ut
+ TEST_TARGET
+ ydb-services-cms-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-cms-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-services-cms-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-services-cms-ut
+ system_allocator
+)
+vcs_info(ydb-services-cms-ut)
diff --git a/ydb/services/cms/ut/CMakeLists.txt b/ydb/services/cms/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/cms/ut/CMakeLists.txt
+++ b/ydb/services/cms/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/datastreams/CMakeLists.darwin-arm64.txt b/ydb/services/datastreams/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..4164eb9cc5
--- /dev/null
+++ b/ydb/services/datastreams/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,36 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-services-datastreams)
+target_link_libraries(ydb-services-datastreams PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-base
+ core-client-server
+ ydb-core-grpc_services
+ ydb-core-mind
+ api-grpc
+ api-grpc-draft
+ public-lib-operation_id
+ cpp-client-resources
+ cpp-client-ydb_datastreams
+ services-lib-actors
+ services-lib-sharding
+ ydb-services-persqueue_v1
+ ydb-services-ydb
+)
+target_sources(ydb-services-datastreams PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_proxy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/grpc_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/next_token.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/put_records_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/shard_iterator.cpp
+)
diff --git a/ydb/services/datastreams/CMakeLists.txt b/ydb/services/datastreams/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/datastreams/CMakeLists.txt
+++ b/ydb/services/datastreams/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt b/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..151d71e469
--- /dev/null
+++ b/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,81 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-datastreams-ut)
+target_compile_options(ydb-services-datastreams-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-datastreams-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams
+)
+target_link_libraries(ydb-services-datastreams-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-datastreams
+ library-cpp-getopt
+ cpp-grpc-client
+ library-cpp-svnversion
+ core-testlib-default
+ cpp-client-ydb_topic
+)
+target_link_options(ydb-services-datastreams-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-datastreams-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-datastreams-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-datastreams-ut
+ TEST_TARGET
+ ydb-services-datastreams-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-datastreams-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-datastreams-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-datastreams-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-datastreams-ut
+ system_allocator
+)
+vcs_info(ydb-services-datastreams-ut)
diff --git a/ydb/services/datastreams/ut/CMakeLists.txt b/ydb/services/datastreams/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/datastreams/ut/CMakeLists.txt
+++ b/ydb/services/datastreams/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-arm64.txt b/ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8770c5018b
--- /dev/null
+++ b/ydb/services/deprecated/persqueue_v0/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(api)
+
+add_library(services-deprecated-persqueue_v0)
+target_link_libraries(services-deprecated-persqueue_v0 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc-persqueue-deprecated
+ api-protos-persqueue-deprecated
+ persqueue-deprecated-read_batch_converter
+ ydb-core-base
+ core-tx-tx_proxy
+ core-client-server
+ ydb-core-grpc_services
+ core-mind-address_classification
+ ydb-core-persqueue
+ core-persqueue-events
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-library-aclib
+ library-persqueue-topic_parser
+ services-lib-actors
+ services-lib-sharding
+ ydb-services-persqueue_v1
+ ydb-services-metadata
+)
+target_sources(services-deprecated-persqueue_v0 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/grpc_pq_clusters_updater_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/grpc_pq_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/grpc_pq_read_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/grpc_pq_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/grpc_pq_write_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/move_topic_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/persqueue.cpp
+)
diff --git a/ydb/services/deprecated/persqueue_v0/CMakeLists.txt b/ydb/services/deprecated/persqueue_v0/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/deprecated/persqueue_v0/CMakeLists.txt
+++ b/ydb/services/deprecated/persqueue_v0/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..77bda3ed06
--- /dev/null
+++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_grpc_cpp_bin
+ TOOL_grpc_cpp_dependency
+ contrib/tools/protoc/plugins/grpc_cpp
+ grpc_cpp
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(api-grpc-persqueue-deprecated)
+set_property(TARGET api-grpc-persqueue-deprecated PROPERTY
+ PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h
+)
+target_link_libraries(api-grpc-persqueue-deprecated PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-grpc
+ api-protos-persqueue-deprecated
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(api-grpc-persqueue-deprecated PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto
+)
+target_proto_addincls(api-grpc-persqueue-deprecated
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-grpc-persqueue-deprecated
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+target_proto_plugin(api-grpc-persqueue-deprecated
+ grpc_cpp
+ grpc_cpp
+)
diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt
+++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14b1c5308a
--- /dev/null
+++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(api-protos-persqueue-deprecated)
+target_link_libraries(api-protos-persqueue-deprecated PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ tools-enum_parser-enum_serialization_runtime
+ contrib-libs-protobuf
+)
+target_proto_messages(api-protos-persqueue-deprecated PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto
+)
+generate_enum_serilization(api-protos-persqueue-deprecated
+ ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h
+ INCLUDE_HEADERS
+ ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h
+)
+target_proto_addincls(api-protos-persqueue-deprecated
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(api-protos-persqueue-deprecated
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt
+++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/discovery/CMakeLists.darwin-arm64.txt b/ydb/services/discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..74cf45c696
--- /dev/null
+++ b/ydb/services/discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-discovery)
+target_link_libraries(ydb-services-discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ ydb-core-mind
+ api-grpc
+ public-lib-operation_id
+)
+target_sources(ydb-services-discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/discovery/grpc_service.cpp
+)
diff --git a/ydb/services/discovery/CMakeLists.txt b/ydb/services/discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/discovery/CMakeLists.txt
+++ b/ydb/services/discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/dynamic_config/CMakeLists.darwin-arm64.txt b/ydb/services/dynamic_config/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0d73a14186
--- /dev/null
+++ b/ydb/services/dynamic_config/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-services-dynamic_config)
+target_link_libraries(ydb-services-dynamic_config PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ ydb-core-mind
+ ydb-library-aclib
+ api-grpc
+ public-lib-operation_id
+ cpp-client-resources
+)
+target_sources(ydb-services-dynamic_config PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/grpc_service.cpp
+)
diff --git a/ydb/services/dynamic_config/CMakeLists.txt b/ydb/services/dynamic_config/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/dynamic_config/CMakeLists.txt
+++ b/ydb/services/dynamic_config/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt b/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..83ee435360
--- /dev/null
+++ b/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-dynamic_config-ut)
+target_compile_options(ydb-services-dynamic_config-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-dynamic_config-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config
+)
+target_link_libraries(ydb-services-dynamic_config-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-dynamic_config
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-services-cms
+)
+target_link_options(ydb-services-dynamic_config-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-dynamic_config-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/dynamic_config_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-dynamic_config-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-dynamic_config-ut
+ TEST_TARGET
+ ydb-services-dynamic_config-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-dynamic_config-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ ydb-services-dynamic_config-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-services-dynamic_config-ut
+ system_allocator
+)
+vcs_info(ydb-services-dynamic_config-ut)
diff --git a/ydb/services/dynamic_config/ut/CMakeLists.txt b/ydb/services/dynamic_config/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/dynamic_config/ut/CMakeLists.txt
+++ b/ydb/services/dynamic_config/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2694d34fb3
--- /dev/null
+++ b/ydb/services/ext_index/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(common)
+add_subdirectory(metadata)
+add_subdirectory(service)
+add_subdirectory(ut)
+
+add_library(ydb-services-ext_index INTERFACE)
+target_link_libraries(ydb-services-ext_index INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ services-ext_index-metadata
+ services-ext_index-service
+ services-ext_index-common
+)
diff --git a/ydb/services/ext_index/CMakeLists.txt b/ydb/services/ext_index/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/CMakeLists.txt
+++ b/ydb/services/ext_index/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/common/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d748daffc9
--- /dev/null
+++ b/ydb/services/ext_index/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-ext_index-common)
+target_link_libraries(services-ext_index-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ api-protos
+ ydb-core-protos
+ libs-apache-arrow
+)
+target_sources(services-ext_index-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/common/service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/common/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/common/events.cpp
+)
diff --git a/ydb/services/ext_index/common/CMakeLists.txt b/ydb/services/ext_index/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/common/CMakeLists.txt
+++ b/ydb/services/ext_index/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/metadata/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/metadata/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e88ff51742
--- /dev/null
+++ b/ydb/services/ext_index/metadata/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(extractor)
+
+add_library(services-ext_index-metadata)
+target_link_libraries(services-ext_index-metadata PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-request
+ ext_index-metadata-extractor
+)
+target_sources(services-ext_index-metadata PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/fetcher.cpp
+)
+
+add_global_library_for(services-ext_index-metadata.global services-ext_index-metadata)
+target_link_libraries(services-ext_index-metadata.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-request
+ ext_index-metadata-extractor
+)
+target_sources(services-ext_index-metadata.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/behaviour.cpp
+)
diff --git a/ydb/services/ext_index/metadata/CMakeLists.txt b/ydb/services/ext_index/metadata/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/metadata/CMakeLists.txt
+++ b/ydb/services/ext_index/metadata/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c2dc6359ad
--- /dev/null
+++ b/ydb/services/ext_index/metadata/extractor/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,52 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(ext_index-metadata-extractor)
+target_compile_options(ext_index-metadata-extractor PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ext_index-metadata-extractor PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-tx-sharding
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ext_index-metadata-extractor PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/extractor/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/extractor/container.cpp
+)
+generate_enum_serilization(ext_index-metadata-extractor
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/extractor/hash_by_columns.h
+ INCLUDE_HEADERS
+ ydb/services/ext_index/metadata/extractor/hash_by_columns.h
+)
+
+add_global_library_for(ext_index-metadata-extractor.global ext_index-metadata-extractor)
+target_compile_options(ext_index-metadata-extractor.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(ext_index-metadata-extractor.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ libs-apache-arrow
+ ydb-core-protos
+ core-tx-sharding
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(ext_index-metadata-extractor.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/metadata/extractor/hash_by_columns.cpp
+)
diff --git a/ydb/services/ext_index/metadata/extractor/CMakeLists.txt b/ydb/services/ext_index/metadata/extractor/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/metadata/extractor/CMakeLists.txt
+++ b/ydb/services/ext_index/metadata/extractor/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/service/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/service/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ee55c1e81c
--- /dev/null
+++ b/ydb/services/ext_index/service/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-ext_index-service)
+target_link_libraries(services-ext_index-service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ services-ext_index-metadata
+ services-ext_index-common
+ yql-minikql-jsonpath
+ api-protos
+)
+target_sources(services-ext_index-service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/service/add_data.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/service/add_index.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/service/executor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/service/activation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/service/deleting.cpp
+)
diff --git a/ydb/services/ext_index/service/CMakeLists.txt b/ydb/services/ext_index/service/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/service/CMakeLists.txt
+++ b/ydb/services/ext_index/service/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..40d9d66380
--- /dev/null
+++ b/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ext_index-ut)
+target_compile_options(ydb-services-ext_index-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ext_index-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index
+)
+target_link_libraries(ydb-services-ext_index-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ext_index
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-services-metadata
+ public-lib-yson_value
+)
+target_link_options(ydb-services-ext_index-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ext_index-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/ut/ut_ext_index.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ext_index-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-services-ext_index-ut
+ TEST_TARGET
+ ydb-services-ext_index-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ext_index-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ext_index-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ext_index-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-ext_index-ut
+ system_allocator
+)
+vcs_info(ydb-services-ext_index-ut)
diff --git a/ydb/services/ext_index/ut/CMakeLists.txt b/ydb/services/ext_index/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ext_index/ut/CMakeLists.txt
+++ b/ydb/services/ext_index/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/fq/CMakeLists.darwin-arm64.txt b/ydb/services/fq/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..282d50f2f9
--- /dev/null
+++ b/ydb/services/fq/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut_integration)
+
+add_library(ydb-services-fq)
+target_link_libraries(ydb-services-fq PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ library-cpp-retry
+ fq-libs-grpc
+ ydb-core-grpc_services
+ core-grpc_services-base
+ ydb-library-protobuf_printer
+)
+target_sources(ydb-services-fq PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/fq/grpc_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/fq/private_grpc.cpp
+)
diff --git a/ydb/services/fq/CMakeLists.txt b/ydb/services/fq/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/fq/CMakeLists.txt
+++ b/ydb/services/fq/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt b/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9999836253
--- /dev/null
+++ b/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,84 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-fq-ut_integration)
+target_compile_options(ydb-services-fq-ut_integration PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-fq-ut_integration PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/fq
+)
+target_link_libraries(ydb-services-fq-ut_integration PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-fq
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-regex-pcre
+ library-cpp-svnversion
+ fq-libs-control_plane_storage
+ fq-libs-db_id_async_resolver_impl
+ fq-libs-db_schema
+ fq-libs-private_client
+ core-testlib-default
+ providers-common-db_id_async_resolver
+ clickhouse_client_udf
+ library-yql-utils
+ public-lib-fq
+ ydb-services-ydb
+)
+target_link_options(ydb-services-fq-ut_integration PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-fq-ut_integration PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/ut_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/fq_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-fq-ut_integration
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-fq-ut_integration
+ TEST_TARGET
+ ydb-services-fq-ut_integration
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-fq-ut_integration
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-fq-ut_integration
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-services-fq-ut_integration
+ system_allocator
+)
+vcs_info(ydb-services-fq-ut_integration)
diff --git a/ydb/services/fq/ut_integration/CMakeLists.txt b/ydb/services/fq/ut_integration/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/fq/ut_integration/CMakeLists.txt
+++ b/ydb/services/fq/ut_integration/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/kesus/CMakeLists.darwin-arm64.txt b/ydb/services/kesus/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68fe7d7a7b
--- /dev/null
+++ b/ydb/services/kesus/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-kesus)
+target_link_libraries(ydb-services-kesus PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-base
+ ydb-core-grpc_services
+ ydb-core-grpc_streaming
+ core-kesus-proxy
+ core-kesus-tablet
+ api-grpc
+ api-grpc-draft
+ public-lib-operation_id
+)
+target_sources(ydb-services-kesus PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/kesus/grpc_service.cpp
+)
diff --git a/ydb/services/kesus/CMakeLists.txt b/ydb/services/kesus/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/kesus/CMakeLists.txt
+++ b/ydb/services/kesus/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/keyvalue/CMakeLists.darwin-arm64.txt b/ydb/services/keyvalue/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..522f6f9097
--- /dev/null
+++ b/ydb/services/keyvalue/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-services-keyvalue)
+target_link_libraries(ydb-services-keyvalue PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ cpp-grpc-server
+ ydb-core-grpc_services
+ core-grpc_services-base
+ core-kesus-tablet
+ ydb-core-keyvalue
+)
+target_sources(ydb-services-keyvalue PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service.cpp
+)
diff --git a/ydb/services/keyvalue/CMakeLists.txt b/ydb/services/keyvalue/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/keyvalue/CMakeLists.txt
+++ b/ydb/services/keyvalue/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt b/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d771aa8ae2
--- /dev/null
+++ b/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-keyvalue-ut)
+target_compile_options(ydb-services-keyvalue-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-keyvalue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue
+)
+target_link_libraries(ydb-services-keyvalue-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-keyvalue
+ library-cpp-logger
+ ydb-core-protos
+ core-testlib-default
+)
+target_link_options(ydb-services-keyvalue-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-keyvalue-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-keyvalue-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-services-keyvalue-ut
+ TEST_TARGET
+ ydb-services-keyvalue-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-keyvalue-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-keyvalue-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-keyvalue-ut
+ PROPERTY
+ TIMEOUT
+ 100
+)
+target_allocator(ydb-services-keyvalue-ut
+ system_allocator
+)
+vcs_info(ydb-services-keyvalue-ut)
diff --git a/ydb/services/keyvalue/ut/CMakeLists.txt b/ydb/services/keyvalue/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/keyvalue/ut/CMakeLists.txt
+++ b/ydb/services/keyvalue/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/lib/actors/CMakeLists.darwin-arm64.txt b/ydb/services/lib/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..887af75044
--- /dev/null
+++ b/ydb/services/lib/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-lib-actors)
+target_link_libraries(services-lib-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ cpp-digest-md5
+ ydb-core-grpc_services
+ core-grpc_services-base
+ ydb-core-metering
+ ydb-core-mind
+ ydb-core-protos
+ library-persqueue-obfuscate
+ library-persqueue-topic_parser
+ api-grpc
+ api-grpc-draft
+ public-lib-jwt
+ public-lib-operation_id
+)
+target_sources(services-lib-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/lib/actors/pq_schema_actor.cpp
+)
diff --git a/ydb/services/lib/actors/CMakeLists.txt b/ydb/services/lib/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/lib/actors/CMakeLists.txt
+++ b/ydb/services/lib/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/lib/sharding/CMakeLists.darwin-arm64.txt b/ydb/services/lib/sharding/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c9402ccce0
--- /dev/null
+++ b/ydb/services/lib/sharding/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-lib-sharding)
+target_link_libraries(services-lib-sharding PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(services-lib-sharding PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/lib/sharding/sharding.cpp
+)
diff --git a/ydb/services/lib/sharding/CMakeLists.txt b/ydb/services/lib/sharding/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/lib/sharding/CMakeLists.txt
+++ b/ydb/services/lib/sharding/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/local_discovery/CMakeLists.darwin-arm64.txt b/ydb/services/local_discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..961750ce61
--- /dev/null
+++ b/ydb/services/local_discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-local_discovery)
+target_link_libraries(ydb-services-local_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ ydb-core-mind
+ api-grpc
+ public-lib-operation_id
+)
+target_sources(ydb-services-local_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/local_discovery/grpc_service.cpp
+)
diff --git a/ydb/services/local_discovery/CMakeLists.txt b/ydb/services/local_discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/local_discovery/CMakeLists.txt
+++ b/ydb/services/local_discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/maintenance/CMakeLists.darwin-arm64.txt b/ydb/services/maintenance/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0c04885083
--- /dev/null
+++ b/ydb/services/maintenance/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-maintenance)
+target_link_libraries(ydb-services-maintenance PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-grpc_services
+ api-grpc
+ cpp-actors-core
+ cpp-grpc-server
+)
+target_sources(ydb-services-maintenance PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/maintenance/grpc_service.cpp
+)
diff --git a/ydb/services/maintenance/CMakeLists.txt b/ydb/services/maintenance/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/maintenance/CMakeLists.txt
+++ b/ydb/services/maintenance/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..442b5d20d0
--- /dev/null
+++ b/ydb/services/metadata/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(abstract)
+add_subdirectory(common)
+add_subdirectory(ds_table)
+add_subdirectory(initializer)
+add_subdirectory(manager)
+add_subdirectory(request)
+add_subdirectory(secret)
+
+add_library(ydb-services-metadata)
+target_link_libraries(ydb-services-metadata PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ services-metadata-abstract
+ services-metadata-manager
+)
+target_sources(ydb-services-metadata PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/service.cpp
+)
diff --git a/ydb/services/metadata/CMakeLists.txt b/ydb/services/metadata/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/CMakeLists.txt
+++ b/ydb/services/metadata/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..da308a309e
--- /dev/null
+++ b/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(services-metadata-abstract)
+target_link_libraries(services-metadata-abstract PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ tools-enum_parser-enum_serialization_runtime
+ ydb-library-accessor
+ cpp-actors-core
+ services-metadata-request
+ api-protos
+ ydb-core-base
+ yql-core-expr_nodes
+)
+target_sources(services-metadata-abstract PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/decoder.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/fetcher.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/kqp_common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/initialization.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/parsing.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/request_features.cpp
+)
+generate_enum_serilization(services-metadata-abstract
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/kqp_common.h
+ INCLUDE_HEADERS
+ ydb/services/metadata/abstract/kqp_common.h
+)
diff --git a/ydb/services/metadata/abstract/CMakeLists.txt b/ydb/services/metadata/abstract/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/abstract/CMakeLists.txt
+++ b/ydb/services/metadata/abstract/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/common/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..51b3c639ae
--- /dev/null
+++ b/ydb/services/metadata/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-metadata-common)
+target_compile_options(services-metadata-common PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(services-metadata-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ services-bg_tasks-abstract
+ core-tx-schemeshard
+)
+target_sources(services-metadata-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/common/timeout.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/common/ss_dialog.cpp
+)
diff --git a/ydb/services/metadata/common/CMakeLists.txt b/ydb/services/metadata/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/common/CMakeLists.txt
+++ b/ydb/services/metadata/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/ds_table/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/ds_table/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fb3012d69e
--- /dev/null
+++ b/ydb/services/metadata/ds_table/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-metadata-ds_table)
+target_link_libraries(services-metadata-ds_table PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ services-metadata-common
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-initializer
+ services-metadata-secret
+)
+target_sources(services-metadata-ds_table PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/accessor_refresh.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/accessor_subscribe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/accessor_snapshot_simple.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/accessor_snapshot_base.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/behaviour_registrator_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/scheme_describe.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/table_exists.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/ds_table/registration.cpp
+)
diff --git a/ydb/services/metadata/ds_table/CMakeLists.txt b/ydb/services/metadata/ds_table/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/ds_table/CMakeLists.txt
+++ b/ydb/services/metadata/ds_table/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/initializer/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/initializer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ef8a9baaa3
--- /dev/null
+++ b/ydb/services/metadata/initializer/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(services-metadata-initializer)
+target_link_libraries(services-metadata-initializer PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-request
+)
+target_sources(services-metadata-initializer PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/accessor_init.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/behaviour.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/events.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/object.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/fetcher.cpp
+)
diff --git a/ydb/services/metadata/initializer/CMakeLists.txt b/ydb/services/metadata/initializer/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/initializer/CMakeLists.txt
+++ b/ydb/services/metadata/initializer/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..86beef95ab
--- /dev/null
+++ b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-metadata-initializer-ut)
+target_compile_options(ydb-services-metadata-initializer-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-metadata-initializer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer
+)
+target_link_libraries(ydb-services-metadata-initializer-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ services-metadata-initializer
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-services-metadata
+ public-lib-yson_value
+)
+target_link_options(ydb-services-metadata-initializer-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-metadata-initializer-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/ut/ut_init.cpp
+)
+set_property(
+ TARGET
+ ydb-services-metadata-initializer-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-services-metadata-initializer-ut
+ TEST_TARGET
+ ydb-services-metadata-initializer-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-initializer-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-initializer-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-initializer-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-metadata-initializer-ut
+ system_allocator
+)
+vcs_info(ydb-services-metadata-initializer-ut)
diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.txt b/ydb/services/metadata/initializer/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/initializer/ut/CMakeLists.txt
+++ b/ydb/services/metadata/initializer/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/manager/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/manager/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..59e5adbc08
--- /dev/null
+++ b/ydb/services/metadata/manager/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,49 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(services-metadata-manager)
+target_link_libraries(services-metadata-manager PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-library-accessor
+ cpp-actors-core
+ api-protos
+ ydb-core-protos
+ services-bg_tasks-abstract
+ services-metadata-initializer
+ ydb-core-base
+ services-metadata-request
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(services-metadata-manager PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/abstract.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/alter.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/alter_impl.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/table_record.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/restore.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/modification.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/generic_manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/preparation_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/restore_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/common.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/ydb_value_operator.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/modification_controller.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/object.cpp
+)
+generate_enum_serilization(services-metadata-manager
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/manager/abstract.h
+ INCLUDE_HEADERS
+ ydb/services/metadata/manager/abstract.h
+)
diff --git a/ydb/services/metadata/manager/CMakeLists.txt b/ydb/services/metadata/manager/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/manager/CMakeLists.txt
+++ b/ydb/services/metadata/manager/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/request/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/request/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..386433d7cf
--- /dev/null
+++ b/ydb/services/metadata/request/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-metadata-request)
+target_link_libraries(services-metadata-request PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+)
+target_sources(services-metadata-request PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/request/request_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/request/request_actor_cb.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/request/config.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/request/common.cpp
+)
diff --git a/ydb/services/metadata/request/CMakeLists.txt b/ydb/services/metadata/request/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/request/CMakeLists.txt
+++ b/ydb/services/metadata/request/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/secret/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/secret/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7659c8ae97
--- /dev/null
+++ b/ydb/services/metadata/secret/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(services-metadata-secret)
+target_link_libraries(services-metadata-secret PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-request
+)
+target_sources(services-metadata-secret PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/secret.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/checker_secret.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/access.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/checker_access.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/manager.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/snapshot.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/fetcher.cpp
+)
+
+add_global_library_for(services-metadata-secret.global services-metadata-secret)
+target_link_libraries(services-metadata-secret.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-core-base
+ core-grpc_services-local_rpc
+ core-grpc_services-base
+ ydb-core-grpc_services
+ services-metadata-request
+)
+target_sources(services-metadata-secret.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/secret_behaviour.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/access_behaviour.cpp
+)
diff --git a/ydb/services/metadata/secret/CMakeLists.txt b/ydb/services/metadata/secret/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/secret/CMakeLists.txt
+++ b/ydb/services/metadata/secret/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5d6532c769
--- /dev/null
+++ b/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-metadata-secret-ut)
+target_compile_options(ydb-services-metadata-secret-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-metadata-secret-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret
+)
+target_link_libraries(ydb-services-metadata-secret-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ services-metadata-secret
+ library-cpp-getopt
+ cpp-regex-pcre
+ library-cpp-svnversion
+ core-testlib-default
+ ydb-services-metadata
+ public-lib-yson_value
+)
+target_link_options(ydb-services-metadata-secret-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-metadata-secret-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/ut/ut_secret.cpp
+)
+set_property(
+ TARGET
+ ydb-services-metadata-secret-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-services-metadata-secret-ut
+ TEST_TARGET
+ ydb-services-metadata-secret-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-secret-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-secret-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-metadata-secret-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-metadata-secret-ut
+ system_allocator
+)
+vcs_info(ydb-services-metadata-secret-ut)
diff --git a/ydb/services/metadata/secret/ut/CMakeLists.txt b/ydb/services/metadata/secret/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/metadata/secret/ut/CMakeLists.txt
+++ b/ydb/services/metadata/secret/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/monitoring/CMakeLists.darwin-arm64.txt b/ydb/services/monitoring/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d788e414ac
--- /dev/null
+++ b/ydb/services/monitoring/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-services-monitoring)
+target_link_libraries(ydb-services-monitoring PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ ydb-core-protos
+ api-grpc
+ public-lib-operation_id
+)
+target_sources(ydb-services-monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/monitoring/grpc_service.cpp
+)
diff --git a/ydb/services/monitoring/CMakeLists.txt b/ydb/services/monitoring/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/monitoring/CMakeLists.txt
+++ b/ydb/services/monitoring/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..39d1af5bf5
--- /dev/null
+++ b/ydb/services/persqueue_cluster_discovery/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(cluster_ordering)
+add_subdirectory(ut)
+
+add_library(ydb-services-persqueue_cluster_discovery)
+target_link_libraries(ydb-services-persqueue_cluster_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-base
+ core-client-server
+ ydb-core-grpc_services
+ core-mind-address_classification
+ ydb-core-mon
+ ydb-core-persqueue
+ ydb-core-protos
+ ydb-core-util
+ api-grpc
+ api-grpc-draft
+ api-protos
+ services-persqueue_cluster_discovery-cluster_ordering
+)
+target_sources(ydb-services-persqueue_cluster_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_worker.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/counters.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/grpc_service.cpp
+)
diff --git a/ydb/services/persqueue_cluster_discovery/CMakeLists.txt b/ydb/services/persqueue_cluster_discovery/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_cluster_discovery/CMakeLists.txt
+++ b/ydb/services/persqueue_cluster_discovery/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d7ebeadd29
--- /dev/null
+++ b/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-persqueue_cluster_discovery-cluster_ordering)
+target_link_libraries(services-persqueue_cluster_discovery-cluster_ordering PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(services-persqueue_cluster_discovery-cluster_ordering PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_ordering/weighed_ordering.cpp
+)
diff --git a/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt b/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt
+++ b/ydb/services/persqueue_cluster_discovery/cluster_ordering/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..c6c60f5bdc
--- /dev/null
+++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-persqueue_cluster_discovery-ut)
+target_compile_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-persqueue_cluster_discovery-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery
+)
+target_link_libraries(ydb-services-persqueue_cluster_discovery-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-persqueue_cluster_discovery
+ cpp-actors-http
+ core-testlib-default
+ api-grpc
+)
+target_link_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-persqueue_cluster_discovery-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-persqueue_cluster_discovery-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-persqueue_cluster_discovery-ut
+ TEST_TARGET
+ ydb-services-persqueue_cluster_discovery-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_cluster_discovery-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_cluster_discovery-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_cluster_discovery-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-persqueue_cluster_discovery-ut
+ system_allocator
+)
+vcs_info(ydb-services-persqueue_cluster_discovery-ut)
diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt
+++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f6601f6bc4
--- /dev/null
+++ b/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(actors)
+add_subdirectory(ut)
+
+add_library(ydb-services-persqueue_v1)
+target_link_libraries(ydb-services-persqueue_v1 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-containers-disjoint_interval_tree
+ cpp-grpc-server
+ ydb-core-base
+ ydb-core-grpc_services
+ ydb-core-kqp
+ ydb-core-persqueue
+ core-persqueue-codecs
+ core-persqueue-writer
+ ydb-core-protos
+ ydb-core-ydb_convert
+ ydb-library-aclib
+ library-persqueue-obfuscate
+ library-persqueue-topic_parser
+ api-grpc
+ api-grpc-draft
+ api-protos
+ services-lib-actors
+ services-lib-sharding
+ services-persqueue_v1-actors
+)
+target_sources(ydb-services-persqueue_v1 PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/services_initializer.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/topic.cpp
+)
diff --git a/ydb/services/persqueue_v1/CMakeLists.txt b/ydb/services/persqueue_v1/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_v1/CMakeLists.txt
+++ b/ydb/services/persqueue_v1/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bc403f982c
--- /dev/null
+++ b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(services-persqueue_v1-actors)
+target_link_libraries(services-persqueue_v1-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-containers-disjoint_interval_tree
+ cpp-string_utils-base64
+ ydb-core-base
+ ydb-core-grpc_services
+ ydb-core-persqueue
+ core-persqueue-events
+ ydb-core-protos
+ ydb-core-scheme
+ core-tx-scheme_cache
+ ydb-library-aclib
+ library-persqueue-topic_parser
+ api-protos
+ public-lib-base
+ services-lib-actors
+ services-lib-sharding
+ ydb-services-metadata
+)
+target_sources(services-persqueue_v1-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/update_offsets_in_transaction_actor.cpp
+)
diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.txt b/ydb/services/persqueue_v1/actors/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_v1/actors/CMakeLists.txt
+++ b/ydb/services/persqueue_v1/actors/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3382a1ded5
--- /dev/null
+++ b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,99 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(describes_ut)
+add_subdirectory(new_schemecache_ut)
+
+add_executable(ydb-services-persqueue_v1-ut)
+target_compile_options(ydb-services-persqueue_v1-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-persqueue_v1-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1
+)
+target_link_libraries(ydb-services-persqueue_v1-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-persqueue_v1
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-digest-md5
+ core-testlib-default
+ ydb-library-aclib
+ library-persqueue-tests
+ library-persqueue-topic_parser
+ api-grpc
+ ydb_persqueue_core-ut-ut_utils
+ cpp-client-ydb_persqueue_public
+ cpp-client-ydb_table
+ cpp-client-ydb_topic
+ cpp-client-ydb_proto
+)
+target_link_options(ydb-services-persqueue_v1-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-persqueue_v1-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/first_class_src_ids_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/topic_yql_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/topic_service_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/demo_tx.cpp
+)
+set_property(
+ TARGET
+ ydb-services-persqueue_v1-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-persqueue_v1-ut
+ TEST_TARGET
+ ydb-services-persqueue_v1-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-persqueue_v1-ut
+ system_allocator
+)
+vcs_info(ydb-services-persqueue_v1-ut)
diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.txt b/ydb/services/persqueue_v1/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_v1/ut/CMakeLists.txt
+++ b/ydb/services/persqueue_v1/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b1df578d1d
--- /dev/null
+++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-persqueue_v1-ut-describes_ut)
+target_compile_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-persqueue_v1-ut-describes_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1
+)
+target_link_libraries(ydb-services-persqueue_v1-ut-describes_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-persqueue_v1
+ core-testlib-default
+ core-client-server
+ ydb_persqueue_core-ut-ut_utils
+)
+target_link_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-persqueue_v1-ut-describes_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/ic_cache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/describe_topic_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-persqueue_v1-ut-describes_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-persqueue_v1-ut-describes_ut
+ TEST_TARGET
+ ydb-services-persqueue_v1-ut-describes_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-describes_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-describes_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-describes_ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-services-persqueue_v1-ut-describes_ut
+ system_allocator
+)
+vcs_info(ydb-services-persqueue_v1-ut-describes_ut)
diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt
+++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..11ff4c2f38
--- /dev/null
+++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,86 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-persqueue_v1-ut-new_schemecache_ut)
+target_compile_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1
+)
+target_link_libraries(ydb-services-persqueue_v1-ut-new_schemecache_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-persqueue_v1
+ library-cpp-getopt
+ library-cpp-svnversion
+ library-persqueue-tests
+ core-testlib-default
+ api-grpc
+ cpp-client-resources
+ ydb_persqueue_core-ut-ut_utils
+ cpp-client-ydb_table
+)
+target_link_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp
+)
+set_property(
+ TARGET
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ TEST_TARGET
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-persqueue_v1-ut-new_schemecache_ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-persqueue_v1-ut-new_schemecache_ut
+ system_allocator
+)
+vcs_info(ydb-services-persqueue_v1-ut-new_schemecache_ut)
diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt
+++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/rate_limiter/CMakeLists.darwin-arm64.txt b/ydb/services/rate_limiter/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..51bafd9703
--- /dev/null
+++ b/ydb/services/rate_limiter/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-services-rate_limiter)
+target_link_libraries(ydb-services-rate_limiter PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-grpc-server
+ ydb-core-grpc_services
+ core-kesus-tablet
+ api-grpc
+ ydb-services-ydb
+)
+target_sources(ydb-services-rate_limiter PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/grpc_service.cpp
+)
diff --git a/ydb/services/rate_limiter/CMakeLists.txt b/ydb/services/rate_limiter/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/rate_limiter/CMakeLists.txt
+++ b/ydb/services/rate_limiter/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt b/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..79f118743e
--- /dev/null
+++ b/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-rate_limiter-ut)
+target_compile_options(ydb-services-rate_limiter-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-rate_limiter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter
+)
+target_link_libraries(ydb-services-rate_limiter-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-rate_limiter
+ core-testlib-default
+ cpp-client-ydb_coordination
+ cpp-client-ydb_rate_limiter
+)
+target_link_options(ydb-services-rate_limiter-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-rate_limiter-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/rate_limiter_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-rate_limiter-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-services-rate_limiter-ut
+ TEST_TARGET
+ ydb-services-rate_limiter-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-rate_limiter-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-rate_limiter-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-services-rate_limiter-ut
+ system_allocator
+)
+vcs_info(ydb-services-rate_limiter-ut)
diff --git a/ydb/services/rate_limiter/ut/CMakeLists.txt b/ydb/services/rate_limiter/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/rate_limiter/ut/CMakeLists.txt
+++ b/ydb/services/rate_limiter/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..86a699d800
--- /dev/null
+++ b/ydb/services/ydb/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,49 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(sdk_credprovider_ut)
+add_subdirectory(sdk_sessions_pool_ut)
+add_subdirectory(sdk_sessions_ut)
+add_subdirectory(table_split_ut)
+add_subdirectory(ut)
+
+add_library(ydb-services-ydb)
+target_link_libraries(ydb-services-ydb PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-monlib-encode
+ library-cpp-uri
+ ydb-core-base
+ ydb-core-client
+ ydb-core-formats
+ ydb-core-grpc_services
+ core-grpc_services-base
+ core-grpc_services-auth_processor
+ ydb-core-grpc_streaming
+ ydb-core-protos
+ ydb-core-scheme
+ ydb-library-aclib
+ api-grpc
+ api-grpc-draft
+ api-protos
+ yql-public-types
+ contrib-libs-openssl
+)
+target_sources(ydb-services-ydb PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_clickhouse_internal.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_dummy.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_export.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_import.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_logstore.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_operation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_scheme.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_scripting.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_long_tx.cpp
+)
diff --git a/ydb/services/ydb/CMakeLists.txt b/ydb/services/ydb/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/CMakeLists.txt
+++ b/ydb/services/ydb/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..af988ad518
--- /dev/null
+++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ydb-sdk_credprovider_ut)
+target_compile_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ydb-sdk_credprovider_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb
+)
+target_link_libraries(ydb-services-ydb-sdk_credprovider_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ydb
+ core-testlib-default
+ public-lib-yson_value
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+)
+target_link_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ydb-sdk_credprovider_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_credprovider_ut/dummy_provider_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ydb-sdk_credprovider_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 5
+)
+add_yunittest(
+ NAME
+ ydb-services-ydb-sdk_credprovider_ut
+ TEST_TARGET
+ ydb-services-ydb-sdk_credprovider_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_credprovider_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_credprovider_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_credprovider_ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-ydb-sdk_credprovider_ut
+ system_allocator
+)
+vcs_info(ydb-services-ydb-sdk_credprovider_ut)
diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt
+++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54871972d2
--- /dev/null
+++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ydb-sdk_sessions_pool_ut)
+target_compile_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb
+)
+target_link_libraries(ydb-services-ydb-sdk_sessions_pool_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ydb
+ cpp-grpc-client
+ core-testlib-default
+ ydb-core-testlib
+ cpp-client-ydb_table
+)
+target_link_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_pool_ut/sdk_sessions_pool_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ydb-sdk_sessions_pool_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-ydb-sdk_sessions_pool_ut
+ TEST_TARGET
+ ydb-services-ydb-sdk_sessions_pool_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_pool_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_pool_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_pool_ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-services-ydb-sdk_sessions_pool_ut
+ system_allocator
+)
+vcs_info(ydb-services-ydb-sdk_sessions_pool_ut)
diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt
+++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9078286d67
--- /dev/null
+++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ydb-sdk_sessions_ut)
+target_compile_options(ydb-services-ydb-sdk_sessions_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ydb-sdk_sessions_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb
+)
+target_link_libraries(ydb-services-ydb-sdk_sessions_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ydb
+ cpp-grpc-client
+ core-testlib-default
+ ydb-core-testlib
+ cpp-client-ydb_table
+)
+target_link_options(ydb-services-ydb-sdk_sessions_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ydb-sdk_sessions_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ydb-sdk_sessions_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-services-ydb-sdk_sessions_ut
+ TEST_TARGET
+ ydb-services-ydb-sdk_sessions_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-sdk_sessions_ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-services-ydb-sdk_sessions_ut
+ system_allocator
+)
+vcs_info(ydb-services-ydb-sdk_sessions_ut)
diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt
+++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b551eb4526
--- /dev/null
+++ b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,97 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ydb-table_split_ut)
+target_compile_options(ydb-services-ydb-table_split_ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ydb-table_split_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb
+)
+target_link_libraries(ydb-services-ydb-table_split_ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ydb
+ libs-apache-arrow
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ core-grpc_services-base
+ ydb-core-testlib
+ yql-minikql-dom
+ yql-minikql-jsonpath
+ public-lib-experimental
+ public-lib-json_value
+ public-lib-yson_value
+ cpp-client-draft
+ cpp-client-ydb_coordination
+ cpp-client-ydb_export
+ cpp-client-ydb_extension
+ cpp-client-ydb_operation
+ cpp-client-ydb_scheme
+ cpp-client-ydb_monitoring
+)
+target_link_options(ydb-services-ydb-table_split_ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ydb-table_split_ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_split_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ydb-table_split_ut
+ PROPERTY
+ SPLIT_FACTOR
+ 7
+)
+add_yunittest(
+ NAME
+ ydb-services-ydb-table_split_ut
+ TEST_TARGET
+ ydb-services-ydb-table_split_ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-table_split_ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-table_split_ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-table_split_ut
+ PROPERTY
+ TIMEOUT
+ 300
+)
+target_allocator(ydb-services-ydb-table_split_ut
+ system_allocator
+)
+vcs_info(ydb-services-ydb-table_split_ut)
diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.txt b/ydb/services/ydb/table_split_ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/table_split_ut/CMakeLists.txt
+++ b/ydb/services/ydb/table_split_ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3b5e7b6215
--- /dev/null
+++ b/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,116 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-services-ydb-ut)
+target_compile_options(ydb-services-ydb-ut PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-services-ydb-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb
+)
+target_link_libraries(ydb-services-ydb-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-services-ydb
+ libs-apache-arrow
+ library-cpp-getopt
+ cpp-grpc-client
+ cpp-regex-pcre
+ library-cpp-svnversion
+ kqp-ut-common
+ core-testlib-default
+ core-grpc_services-base
+ ydb-core-testlib
+ yql-minikql-dom
+ yql-minikql-jsonpath
+ testlib-service_mocks-ldap_mock
+ public-lib-experimental
+ public-lib-json_value
+ public-lib-yson_value
+ public-lib-ut_helpers
+ clicommands
+ cpp-client-draft
+ cpp-client-ydb_coordination
+ cpp-client-ydb_export
+ cpp-client-ydb_extension
+ cpp-client-ydb_operation
+ cpp-client-ydb_scheme
+ cpp-client-ydb_monitoring
+)
+target_link_options(ydb-services-ydb-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-services-ydb-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_coordination_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_index_table_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_import_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_client_certs_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_scripting_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_stats_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_long_tx_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_logstore_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_olapstore_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_monitoring_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/cert_gen.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_query_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_ldap_login_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-services-ydb-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 60
+)
+add_yunittest(
+ NAME
+ ydb-services-ydb-ut
+ TEST_TARGET
+ ydb-services-ydb-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-services-ydb-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-services-ydb-ut
+ system_allocator
+)
+vcs_info(ydb-services-ydb-ut)
diff --git a/ydb/services/ydb/ut/CMakeLists.txt b/ydb/services/ydb/ut/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/services/ydb/ut/CMakeLists.txt
+++ b/ydb/services/ydb/ut/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..dd2dc2d624
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_indexes)
+target_link_libraries(ydb-tests-functional-kqp-kqp_indexes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ cpp-client-ydb_table
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_indexes/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-tests-functional-kqp-kqp_indexes
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_indexes)
+add_dependencies(ydb-tests-functional-kqp-kqp_indexes ydb_py_protos)
+
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..325c63dc74
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_query_session)
+target_link_libraries(ydb-tests-functional-kqp-kqp_query_session PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ public-lib-ut_helpers
+ cpp-client-ydb_discovery
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_query_session/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-tests-functional-kqp-kqp_query_session
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_query_session)
+add_dependencies(ydb-tests-functional-kqp-kqp_query_session ydb_py_protos)
+
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2768da3f45
--- /dev/null
+++ b/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,48 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_rescompiler_bin
+ TOOL_rescompiler_dependency
+ tools/rescompiler/bin
+ rescompiler
+)
+
+add_executable(idx_test)
+target_link_libraries(idx_test PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ library-cpp-resource
+ public-lib-idx_test
+ public-lib-yson_value
+ cpp-client-ydb_scheme
+ cpp-client-ydb_table
+)
+target_link_options(idx_test PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(idx_test PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/main.cpp
+ ${CMAKE_BINARY_DIR}/ydb/tests/tools/idx_test/5f46adc80fd9bb1406279a9088a76e67.cpp
+)
+resources(idx_test
+ ${CMAKE_BINARY_DIR}/ydb/tests/tools/idx_test/5f46adc80fd9bb1406279a9088a76e67.cpp
+ INPUTS
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/sql/create_table1.sql
+ KEYS
+ create_table1
+)
+target_allocator(idx_test
+ system_allocator
+)
+vcs_info(idx_test)
diff --git a/ydb/tests/tools/idx_test/CMakeLists.txt b/ydb/tests/tools/idx_test/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/tools/idx_test/CMakeLists.txt
+++ b/ydb/tests/tools/idx_test/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5a353d6292
--- /dev/null
+++ b/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(src)
+
+add_executable(kqprun)
+target_compile_options(kqprun PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(kqprun PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-getopt
+ tools-kqprun-src
+ datetime2_udf
+ string_udf
+ yson2_udf
+)
+target_link_options(kqprun PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(kqprun PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/kqprun.cpp
+)
+target_allocator(kqprun
+ system_allocator
+)
+vcs_info(kqprun)
diff --git a/ydb/tests/tools/kqprun/CMakeLists.txt b/ydb/tests/tools/kqprun/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/tools/kqprun/CMakeLists.txt
+++ b/ydb/tests/tools/kqprun/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/tools/kqprun/src/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/kqprun/src/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..54954b2566
--- /dev/null
+++ b/ydb/tests/tools/kqprun/src/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(tools-kqprun-src)
+target_compile_options(tools-kqprun-src PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tools-kqprun-src PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ ydb-core-testlib
+ yql-parser-pg_wrapper
+ yql-sql-pg
+)
+target_sources(tools-kqprun-src PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/src/kqp_runner.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/src/ydb_setup.cpp
+)
diff --git a/ydb/tests/tools/kqprun/src/CMakeLists.txt b/ydb/tests/tools/kqprun/src/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/tools/kqprun/src/CMakeLists.txt
+++ b/ydb/tests/tools/kqprun/src/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ed466635b7
--- /dev/null
+++ b/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(pq_read)
+target_link_libraries(pq_read PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-colorizer
+ library-cpp-getopt
+ cpp-threading-future
+ cpp-client-ydb_persqueue_public
+)
+target_link_options(pq_read PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(pq_read PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/tools/pq_read/main.cpp
+)
+target_allocator(pq_read
+ system_allocator
+)
+vcs_info(pq_read)
diff --git a/ydb/tests/tools/pq_read/CMakeLists.txt b/ydb/tests/tools/pq_read/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/ydb/tests/tools/pq_read/CMakeLists.txt
+++ b/ydb/tests/tools/pq_read/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/client/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fc711ccea8
--- /dev/null
+++ b/yt/cpp/mapreduce/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-mapreduce-client)
+target_compile_options(cpp-mapreduce-client PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-digest-md5
+ library-cpp-sighandler
+ cpp-threading-blocking_queue
+ cpp-threading-future
+ library-cpp-type_info
+ library-cpp-yson
+ cpp-mapreduce-common
+ cpp-mapreduce-http
+ cpp-mapreduce-interface
+ cpp-mapreduce-io
+ mapreduce-library-table_schema
+ cpp-mapreduce-raw_client
+ yt-yt-core
+ yt-core-http
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-mapreduce-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/abortable_registry.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/batch_request_impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/client_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/client_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/file_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/file_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/format_hints.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/init.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/lock.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/operation_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/operation_preparer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/operation_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/operation.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/prepare_operation.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/py_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/retry_heavy_write_request.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/retry_transaction.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/retryful_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/retryless_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/skiff.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/structured_table_formats.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/transaction.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/transaction_pinger.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/yt_poller.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/dummy_job_profiler.cpp
+)
+generate_enum_serilization(cpp-mapreduce-client
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/client/structured_table_formats.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/client/structured_table_formats.h
+)
diff --git a/yt/cpp/mapreduce/client/CMakeLists.txt b/yt/cpp/mapreduce/client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/client/CMakeLists.txt
+++ b/yt/cpp/mapreduce/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/common/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..5955826356
--- /dev/null
+++ b/yt/cpp/mapreduce/common/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-mapreduce-common)
+target_compile_options(cpp-mapreduce-common PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-json
+ library-cpp-svnversion
+ cpp-threading-future
+ library-cpp-yson
+ cpp-yson-json
+ cpp-yson-node
+ cpp-mapreduce-interface
+ mapreduce-interface-logging
+)
+target_sources(cpp-mapreduce-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/common/debug_metrics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/common/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/common/retry_lib.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/common/wait_proxy.cpp
+)
diff --git a/yt/cpp/mapreduce/common/CMakeLists.txt b/yt/cpp/mapreduce/common/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/common/CMakeLists.txt
+++ b/yt/cpp/mapreduce/common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/http/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8212c9d8d1
--- /dev/null
+++ b/yt/cpp/mapreduce/http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-mapreduce-http)
+target_compile_options(cpp-mapreduce-http PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-deprecated-atomic
+ cpp-http-io
+ cpp-string_utils-base64
+ cpp-string_utils-quote
+ cpp-threading-cron
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ mapreduce-interface-logging
+ yt-core-http
+ yt-core-https
+)
+target_sources(cpp-mapreduce-http PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/abortable_http_response.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/context.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/host_manager.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/http.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/http_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/requests.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/http/retry_request.cpp
+)
diff --git a/yt/cpp/mapreduce/http/CMakeLists.txt b/yt/cpp/mapreduce/http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/http/CMakeLists.txt
+++ b/yt/cpp/mapreduce/http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/interface/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/interface/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f6db27793d
--- /dev/null
+++ b/yt/cpp/mapreduce/interface/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,143 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(logging)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-mapreduce-interface)
+target_compile_options(cpp-mapreduce-interface PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-interface PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-type_info
+ cpp-threading-future
+ cpp-yson-node
+ mapreduce-interface-logging
+ yt_proto-yt-formats
+ yt-library-tvm
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-mapreduce-interface PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/batch_request.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/client_method_options.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/common.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/cypress.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/errors.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/format.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/job_counters.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/job_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/io.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/operation.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/protobuf_format.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/serialize.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/skiff_row.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/tvm.cpp
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/client_method_options.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/client_method_options.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/client.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/client.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/common.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/common.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/config.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/config.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/cypress.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/cypress.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/job_counters.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/job_counters.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/job_statistics.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/job_statistics.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/operation.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/operation.h
+)
+generate_enum_serilization(cpp-mapreduce-interface
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/protobuf_format.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/protobuf_format.h
+)
diff --git a/yt/cpp/mapreduce/interface/CMakeLists.txt b/yt/cpp/mapreduce/interface/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/interface/CMakeLists.txt
+++ b/yt/cpp/mapreduce/interface/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..031665ae24
--- /dev/null
+++ b/yt/cpp/mapreduce/interface/logging/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(mapreduce-interface-logging)
+target_compile_options(mapreduce-interface-logging PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(mapreduce-interface-logging PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-logging
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(mapreduce-interface-logging PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/logging/logger.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/logging/yt_log.cpp
+)
+generate_enum_serilization(mapreduce-interface-logging
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/interface/logging/logger.h
+ INCLUDE_HEADERS
+ yt/cpp/mapreduce/interface/logging/logger.h
+)
diff --git a/yt/cpp/mapreduce/interface/logging/CMakeLists.txt b/yt/cpp/mapreduce/interface/logging/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/interface/logging/CMakeLists.txt
+++ b/yt/cpp/mapreduce/interface/logging/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/io/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/io/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b448828312
--- /dev/null
+++ b/yt/cpp/mapreduce/io/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-mapreduce-io)
+target_compile_options(cpp-mapreduce-io PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-io PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-yson
+ cpp-mapreduce-common
+ cpp-mapreduce-interface
+ mapreduce-interface-logging
+ yt_proto-yt-formats
+ cpp-yson-node
+ cpp-mapreduce-skiff
+)
+target_sources(cpp-mapreduce-io PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/counting_raw_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/job_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/job_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/lenval_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/node_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/node_table_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/proto_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/proto_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/proto_table_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/skiff_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/stream_raw_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/yamr_table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/io/yamr_table_writer.cpp
+)
diff --git a/yt/cpp/mapreduce/io/CMakeLists.txt b/yt/cpp/mapreduce/io/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/io/CMakeLists.txt
+++ b/yt/cpp/mapreduce/io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92eec36f23
--- /dev/null
+++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(mapreduce-library-table_schema)
+target_compile_options(mapreduce-library-table_schema PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(mapreduce-library-table_schema PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-mapreduce-interface
+)
+target_sources(mapreduce-library-table_schema PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp
+)
diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.txt
+++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac13f5f6df
--- /dev/null
+++ b/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(mapreduce-library-user_job_statistics)
+target_link_libraries(mapreduce-library-user_job_statistics PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-mapreduce-common
+)
+target_sources(mapreduce-library-user_job_statistics PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/user_job_statistics/user_job_statistics.cpp
+)
diff --git a/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt b/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt
+++ b/yt/cpp/mapreduce/library/user_job_statistics/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/raw_client/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/raw_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a1596bb36e
--- /dev/null
+++ b/yt/cpp/mapreduce/raw_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-mapreduce-raw_client)
+target_compile_options(cpp-mapreduce-raw_client PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(cpp-mapreduce-raw_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-mapreduce-common
+ cpp-mapreduce-http
+ cpp-mapreduce-interface
+ mapreduce-interface-logging
+ cpp-yson-node
+)
+target_sources(cpp-mapreduce-raw_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/raw_client/raw_batch_request.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/raw_client/raw_requests.cpp
+ ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp
+)
diff --git a/yt/cpp/mapreduce/raw_client/CMakeLists.txt b/yt/cpp/mapreduce/raw_client/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/raw_client/CMakeLists.txt
+++ b/yt/cpp/mapreduce/raw_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/cpp/mapreduce/skiff/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/skiff/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d66d5d8810
--- /dev/null
+++ b/yt/cpp/mapreduce/skiff/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-mapreduce-skiff INTERFACE)
+target_link_libraries(cpp-mapreduce-skiff INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-skiff
+)
diff --git a/yt/cpp/mapreduce/skiff/CMakeLists.txt b/yt/cpp/mapreduce/skiff/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/cpp/mapreduce/skiff/CMakeLists.txt
+++ b/yt/cpp/mapreduce/skiff/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yql/plugin/CMakeLists.darwin-arm64.txt b/yt/yql/plugin/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e4e42a5389
--- /dev/null
+++ b/yt/yql/plugin/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(dynamic)
+add_subdirectory(native)
+
+add_library(yt-yql-plugin)
+target_link_libraries(yt-yql-plugin PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yt-yql-plugin PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/plugin.cpp
+)
diff --git a/yt/yql/plugin/CMakeLists.txt b/yt/yql/plugin/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yql/plugin/CMakeLists.txt
+++ b/yt/yql/plugin/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yql/plugin/dynamic/CMakeLists.darwin-arm64.txt b/yt/yql/plugin/dynamic/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bb76915330
--- /dev/null
+++ b/yt/yql/plugin/dynamic/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_shared_library(yqlplugin)
+target_link_libraries(yqlplugin PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yql-plugin-native
+)
+target_link_options(yqlplugin PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -undefined
+ dynamic_lookup
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(yqlplugin PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/impl.cpp
+)
+use_export_script(yqlplugin
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/dylib.exports
+)
+vcs_info(yqlplugin)
diff --git a/yt/yql/plugin/dynamic/CMakeLists.txt b/yt/yql/plugin/dynamic/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yql/plugin/dynamic/CMakeLists.txt
+++ b/yt/yql/plugin/dynamic/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yql/plugin/native/CMakeLists.darwin-arm64.txt b/yt/yql/plugin/native/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..04a6b539a5
--- /dev/null
+++ b/yt/yql/plugin/native/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,99 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yql-plugin-native)
+target_compile_options(yql-plugin-native PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-plugin-native PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-resource
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-client
+ cpp-mapreduce-common
+ yt-library-program
+ library-yql-ast
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ yql-core-progress_merger
+ core-services-mounts
+ yql-core-user_data
+ library-yql-minikql
+ library-yql-protos
+ udf-service-exception_policy
+ yql-utils-backtrace
+ yql-utils-log
+ providers-common-proto
+ providers-common-udf_resolve
+ providers-solomon-gateway
+ providers-solomon-provider
+ library-yql-core
+ yql-core-url_preprocessing
+ yt-gateway-native
+ yt-lib-log
+ yt-lib-yt_download
+ providers-yt-provider
+ yt-yql-plugin
+)
+target_sources(yql-plugin-native PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/error_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/progress_merger.cpp
+)
+
+add_global_library_for(yql-plugin-native.global yql-plugin-native)
+target_compile_options(yql-plugin-native.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(yql-plugin-native.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+ library-cpp-resource
+ library-cpp-yson
+ cpp-yson-node
+ cpp-mapreduce-client
+ cpp-mapreduce-common
+ yt-library-program
+ library-yql-ast
+ yql-sql-pg
+ yql-parser-pg_wrapper
+ yql-core-facade
+ yql-core-file_storage
+ core-file_storage-proto
+ core-file_storage-http_download
+ yql-core-progress_merger
+ core-services-mounts
+ yql-core-user_data
+ library-yql-minikql
+ library-yql-protos
+ udf-service-exception_policy
+ yql-utils-backtrace
+ yql-utils-log
+ providers-common-proto
+ providers-common-udf_resolve
+ providers-solomon-gateway
+ providers-solomon-provider
+ library-yql-core
+ yql-core-url_preprocessing
+ yt-gateway-native
+ yt-lib-log
+ yt-lib-yt_download
+ providers-yt-provider
+ yt-yql-plugin
+)
+target_sources(yql-plugin-native.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/plugin.cpp
+)
diff --git a/yt/yql/plugin/native/CMakeLists.txt b/yt/yql/plugin/native/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yql/plugin/native/CMakeLists.txt
+++ b/yt/yql/plugin/native/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/CMakeLists.darwin-arm64.txt b/yt/yt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..91d55b509b
--- /dev/null
+++ b/yt/yt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,12 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(build)
+add_subdirectory(client)
+add_subdirectory(core)
+add_subdirectory(library)
diff --git a/yt/yt/CMakeLists.txt b/yt/yt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/CMakeLists.txt
+++ b/yt/yt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/build/CMakeLists.darwin-arm64.txt b/yt/yt/build/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..8ab1b50257
--- /dev/null
+++ b/yt/yt/build/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,96 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+set(
+ HAVE_CXXABI_H
+ 0
+)
+set(
+ HAVE_DLFCN_H
+ 1
+)
+set(
+ HAVE_EXECINFO_H
+ 1
+)
+set(
+ HAVE_LIBUNWIND_H
+ 0
+)
+set(
+ HAVE_PTHREAD_H
+ 1
+)
+set(
+ HAVE_SYS_TYPES_H
+ 1
+)
+set(
+ HAVE_SYS_UCONTEXT_H
+ 1
+)
+set(
+ HAVE_UCONTEXT_H
+ 1
+)
+set(
+ HAVE_UNISTD_H
+ 1
+)
+set(
+ HAVE_UNWIND_H
+ 0
+)
+set(
+ PC_FROM_UCONTEXT
+ uc_mcontext.gregs[REG_RIP]
+)
+set(
+ YT_VERSION_BRANCH
+ local
+)
+set(
+ YT_VERSION_MAJOR
+ 23
+)
+set(
+ YT_VERSION_MINOR
+ 3
+)
+set(
+ YT_VERSION_PATCH
+ 0
+)
+set(
+ YT_VERSION_TYPE
+ os
+)
+
+add_library(yt-yt-build)
+target_compile_options(yt-yt-build PRIVATE
+ -Wdeprecated-this-capture
+)
+target_include_directories(yt-yt-build PUBLIC
+ ${CMAKE_BINARY_DIR}/yt/yt/build
+)
+target_link_libraries(yt-yt-build PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(yt-yt-build PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp
+ ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/yt/yt/build/config.h.in
+ ${CMAKE_BINARY_DIR}/yt/yt/build/config.h
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/yt/yt/build/build.cpp.in
+ ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp
+)
diff --git a/yt/yt/build/CMakeLists.txt b/yt/yt/build/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/build/CMakeLists.txt
+++ b/yt/yt/build/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/client/CMakeLists.darwin-arm64.txt b/yt/yt/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3536fc456a
--- /dev/null
+++ b/yt/yt/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,199 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(query_tracker_client)
+set(
+ YT_RPC_MODIFY_ROWS_STRONG_LOCKS_VERSION
+ 2
+)
+set(
+ YT_RPC_PROXY_CLIENT_PROTOCOL_VERSION_MINOR
+ 1
+)
+set(
+ YT_RPC_PROXY_PROTOCOL_VERSION_MAJOR
+ 1
+)
+set(
+ YT_RPC_PROXY_SERVER_PROTOCOL_VERSION_MINOR
+ 2
+)
+
+add_library(yt-yt-client)
+target_compile_options(yt-yt-client PRIVATE
+ -Wdeprecated-this-capture
+)
+target_include_directories(yt-yt-client PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+ ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy
+)
+target_link_libraries(yt-yt-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-client-query_tracker_client
+ yt-yt-core
+ yt-core-http
+ yt-core-https
+ yt-library-auth
+ yt-library-decimal
+ yt-library-re2
+ yt-library-erasure
+ yt-library-numeric
+ yt-library-quantile_digest
+ yt_proto-yt-client
+ library-cpp-json
+ contrib-libs-pfr
+)
+target_sources(yt-yt-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_common.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_cache.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/etc_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/journal_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/security_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/table_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/query_tracker_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/internal_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_archive_schema.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rowset.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/skynet.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/transaction.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/persistent_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/sticky_transaction_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/address_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/client_impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/client_base.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/connection.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/connection_impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/file_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/file_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/journal_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/journal_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/table_mount_cache.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/table_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/table_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/timestamp_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction_impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/row_stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/wire_row_stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/election/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/hive/timestamp_map.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/hydra/version.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chaos_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chaos_client/replication_card.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chaos_client/replication_card_cache.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chaos_client/replication_card_serialization.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/chunk_replica.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/data_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/read_limit.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/chunk_client/ready_event_reader_base.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/file_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/journal_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/journal_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/cypress_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/node_tracker_client/node_directory.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/node_tracker_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/node_tracker_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/object_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/object_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/scheduler/operation_id_or_alias.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/scheduler/operation_cache.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/security_client/acl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/security_client/access_control.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/security_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/security_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/adapters.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/table_output.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/blob_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/check_schema_compatibility.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/chunk_stripe_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/column_rename_descriptor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/column_sort_schema.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/comparator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/key.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/key_bound.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/key_bound_compressor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/pipe.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/versioned_row.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/unversioned_row.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/unversioned_value.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/versioned_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/row_base.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/row_batch.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/row_buffer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/schema.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/schema_serialization_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/serialize.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/logical_type.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/name_table.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/wire_protocol.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/columnar_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/value_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/table_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/schemaless_row_reorderer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/unordered_schemaful_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/validate_logical_type.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/composite_compare.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/columnar.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/record_codegen_cpp.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/table_client/record_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/tablet_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/tablet_client/table_mount_cache_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/tablet_client/table_mount_cache.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/tablet_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/tablet_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/common.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/consumer_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/partition_reader.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/queue_rowset.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/rich.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/parser_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/batching_timestamp_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/noop_timestamp_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/remote_timestamp_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/transaction_client/timestamp_provider_base.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/misc/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/misc/io_tags.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/misc/method_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/misc/workload.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/job_tracker_client/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/job_tracker_client/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/query_client/query_builder.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/query_client/query_statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/check_yson_token.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/check_type_compatibility.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/infinite_entity.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/yson_format_conversion.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/uuid_text.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/complex_types/time_text.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/zookeeper/packet.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/zookeeper/protocol.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/zookeeper/requests.cpp
+)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/protocol_version_variables.h.in
+ ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy/protocol_version_variables.h
+)
diff --git a/yt/yt/client/CMakeLists.txt b/yt/yt/client/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/client/CMakeLists.txt
+++ b/yt/yt/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/client/query_tracker_client/CMakeLists.darwin-arm64.txt b/yt/yt/client/query_tracker_client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..3d1ea8d25a
--- /dev/null
+++ b/yt/yt/client/query_tracker_client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-client-query_tracker_client)
+target_compile_options(yt-client-query_tracker_client PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-client-query_tracker_client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+)
+target_sources(yt-client-query_tracker_client PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/client/query_tracker_client/public.cpp
+)
diff --git a/yt/yt/client/query_tracker_client/CMakeLists.txt b/yt/yt/client/query_tracker_client/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/client/query_tracker_client/CMakeLists.txt
+++ b/yt/yt/client/query_tracker_client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/core/CMakeLists.darwin-arm64.txt b/yt/yt/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..24ff6ecc0d
--- /dev/null
+++ b/yt/yt/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,372 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(http)
+add_subdirectory(https)
+add_subdirectory(misc)
+add_subdirectory(rpc)
+add_subdirectory(service_discovery)
+
+add_library(yt-yt-core)
+target_compile_options(yt-yt-core PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-yt-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-snappy
+ contrib-libs-zlib
+ contrib-libs-zstd
+ contrib-libs-lzmasdk
+ contrib-libs-libbz2
+ contrib-libs-c-ares
+ contrib-libs-farmhash
+ contrib-libs-yajl
+ contrib-libs-lz4
+ contrib-libs-openssl
+ cpp-openssl-init
+ cpp-openssl-io
+ cpp-threading-thread_local
+ cpp-streams-brotli
+ cpp-yt-assert
+ cpp-yt-containers
+ cpp-yt-logging
+ yt-logging-plain_text_formatter
+ cpp-yt-misc
+ cpp-yt-memory
+ cpp-yt-string
+ cpp-yt-yson
+ cpp-yt-yson_string
+ cpp-ytalloc-api
+ yt-yt-build
+ isa-l_crc_yt_patch
+ yt_proto-yt-core
+ cpp-yt-backtrace
+ cpp-yt-coding
+ cpp-yt-malloc
+ cpp-yt-small_containers
+ cpp-yt-system
+ cpp-yt-threading
+ yt-library-syncmap
+ yt-library-undumpable
+ library-ytprof-api
+ yt-library-profiling
+ library-profiling-resource_tracker
+ yt-library-tracing
+ backtrace-cursors-libunwind
+)
+target_sources(yt-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/cancelable_context.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/current_invoker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/future.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/invoker_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/invoker_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/actions/invoker_util.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/connection.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/dispatcher_impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/packet.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/server.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/ssl_context.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/bus/tcp/ssl_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/brotli.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/bzip2.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/codec.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/lz.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/lzma.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/snappy.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/zlib.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/compression/zstd.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/action_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/async_barrier.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/async_rw_lock.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/async_semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/async_stream_pipe.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/async_stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/coroutine.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/delayed_executor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/execution_stack.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_share_action_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_share_invoker_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_share_invoker_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_share_queue_scheduler_thread.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_share_thread_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fair_throttler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fiber_scheduler_thread.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fiber.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/fls.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/invoker_alarm.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/invoker_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/lease_manager.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/new_fair_share_thread_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/nonblocking_batcher.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/notify_manager.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/periodic_executor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/periodic_yielder.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/pollable_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/profiling_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/propagating_storage.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/quantized_executor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduler_thread.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/single_queue_scheduler_thread.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/suspendable_action_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/system_invokers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_affinity.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool_poller.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/tls.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/compression.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_writer_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/file_log_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_log_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/random_access_gzip.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/blob_output.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bloom_filter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/checksum.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/coro_pipe.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/crash_handler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/digest.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/dnf.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/error.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/error_code.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ema_counter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/fs.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/hazard_ptr.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/hedging_manager.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/histogram.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/historic_usage_aggregator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/hr_timer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/id_generator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/linear_probe.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/memory_reference_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/memory_usage_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/relaxed_mpsc_queue.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/parser_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/pattern_formatter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/phoenix.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/pool_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/proc.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/protobuf_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/random.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_counted_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_counted_tracker_statistics_producer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_counted_tracker_profiler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/serialize.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/shutdown.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/signal_registry.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/slab_allocator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/statistics.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/cache_config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/utf8_decoder.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/zerocopy_output_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/address.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/connection.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/dialer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/listener.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/local_address.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/net/socket.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/dns/ares_dns_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/dns/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/dns/dns_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/profiling/timing.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/authentication_identity.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/authenticator.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/balancing_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/caching_channel_factory.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/channel_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/dynamic_channel_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/hedging_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/local_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/local_server.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/message.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/message_format.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/null_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/per_user_request_queue_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/protocol_version.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/request_queue_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/response_keeper.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/retrying_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/roaming_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/serialized_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/server_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/service.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/service_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/static_channel_factory.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/throttling_channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/viable_peer_registry.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/bus/server.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/bus/channel.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/service_discovery/service_discovery.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/threading/spin_wait_slow_path_logger.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/threading/thread.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/tracing/allocation_tags.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/tracing/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/tracing/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/utilex/random.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ypath/stack.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ypath/token.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ypath/tokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ypath/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/async_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/async_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attribute_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/forwarding_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/lexer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/null_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/parser.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/producer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/protobuf_interop.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/protobuf_interop_options.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/protobuf_interop_unknown_fields.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/pull_parser.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/pull_parser_deserialize.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_filter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/syntax_checker.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/token.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/token_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/tokenizer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attributes.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_filter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/convert.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ephemeral_attribute_owner.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ephemeral_node_factory.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/exception_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/interned_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/node.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/node_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/permission.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/request_complexity_limiter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/request_complexity_limits.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/serialize.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/static_service_dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/system_attribute_provider.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/tree_builder.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/tree_visitor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/virtual.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/service_combiner.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ypath_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ypath_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ypath_resolver.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/ypath_service.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/yson_serializable.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/yson_struct.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/yson_struct_detail.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/json/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/json/json_callbacks.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/json/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/json/json_parser.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/json/json_writer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytalloc/bindings.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytalloc/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/ytalloc/statistics_producer.cpp
+)
+
+add_global_library_for(yt-yt-core.global yt-yt-core)
+target_compile_options(yt-yt-core.global PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-yt-core.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-snappy
+ contrib-libs-zlib
+ contrib-libs-zstd
+ contrib-libs-lzmasdk
+ contrib-libs-libbz2
+ contrib-libs-c-ares
+ contrib-libs-farmhash
+ contrib-libs-yajl
+ contrib-libs-lz4
+ contrib-libs-openssl
+ cpp-openssl-init
+ cpp-openssl-io
+ cpp-threading-thread_local
+ cpp-streams-brotli
+ cpp-yt-assert
+ cpp-yt-containers
+ cpp-yt-logging
+ yt-logging-plain_text_formatter
+ cpp-yt-misc
+ cpp-yt-memory
+ cpp-yt-string
+ cpp-yt-yson
+ cpp-yt-yson_string
+ cpp-ytalloc-api
+ yt-yt-build
+ isa-l_crc_yt_patch
+ yt_proto-yt-core
+ cpp-yt-backtrace
+ cpp-yt-coding
+ cpp-yt-malloc
+ cpp-yt-small_containers
+ cpp-yt-system
+ cpp-yt-threading
+ yt-library-syncmap
+ yt-library-undumpable
+ library-ytprof-api
+ yt-library-profiling
+ library-profiling-resource_tracker
+ yt-library-tracing
+ backtrace-cursors-libunwind
+)
+target_sources(yt-yt-core.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/tracing/allocation_hooks.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/tracing/trace_context.cpp
+)
diff --git a/yt/yt/core/CMakeLists.txt b/yt/yt/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/CMakeLists.txt
+++ b/yt/yt/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/core/http/CMakeLists.darwin-arm64.txt b/yt/yt/core/http/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..92bee16f81
--- /dev/null
+++ b/yt/yt/core/http/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-core-http)
+target_compile_options(yt-core-http PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-core-http PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ contrib-restricted-http-parser
+)
+target_sources(yt-core-http PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp
+)
diff --git a/yt/yt/core/http/CMakeLists.txt b/yt/yt/core/http/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/http/CMakeLists.txt
+++ b/yt/yt/core/http/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/core/https/CMakeLists.darwin-arm64.txt b/yt/yt/core/https/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..416a8ce186
--- /dev/null
+++ b/yt/yt/core/https/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-core-https)
+target_compile_options(yt-core-https PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-core-https PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ yt-core-http
+ cpp-http-io
+)
+target_sources(yt-core-https PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/https/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/https/client.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/https/server.cpp
+)
diff --git a/yt/yt/core/https/CMakeLists.txt b/yt/yt/core/https/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/https/CMakeLists.txt
+++ b/yt/yt/core/https/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/core/misc/isa_crc64/CMakeLists.darwin-arm64.txt b/yt/yt/core/misc/isa_crc64/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..55c1aee458
--- /dev/null
+++ b/yt/yt/core/misc/isa_crc64/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(isa-l_crc_yt_patch)
+target_link_libraries(isa-l_crc_yt_patch PUBLIC
+ contrib-libs-cxxsupp
+)
+target_sources(isa-l_crc_yt_patch PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/isa_crc64/crc64_yt_norm_refs.c
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/isa_crc64/checksum.cpp
+)
diff --git a/yt/yt/core/misc/isa_crc64/CMakeLists.txt b/yt/yt/core/misc/isa_crc64/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/misc/isa_crc64/CMakeLists.txt
+++ b/yt/yt/core/misc/isa_crc64/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/core/rpc/grpc/CMakeLists.darwin-arm64.txt b/yt/yt/core/rpc/grpc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..eb0e7def69
--- /dev/null
+++ b/yt/yt/core/rpc/grpc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(core-rpc-grpc)
+target_compile_options(core-rpc-grpc PRIVATE
+ -Wdeprecated-this-capture
+)
+target_include_directories(core-rpc-grpc PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_include_directories(core-rpc-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/grpc
+)
+target_link_libraries(core-rpc-grpc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ contrib-libs-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(core-rpc-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/proto/grpc.proto
+)
+target_sources(core-rpc-grpc PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/dispatcher.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/server.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/channel.cpp
+)
+target_proto_addincls(core-rpc-grpc
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(core-rpc-grpc
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt/core/rpc/grpc/CMakeLists.txt b/yt/yt/core/rpc/grpc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/rpc/grpc/CMakeLists.txt
+++ b/yt/yt/core/rpc/grpc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/core/service_discovery/yp/CMakeLists.darwin-arm64.txt b/yt/yt/core/service_discovery/yp/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..78ca098926
--- /dev/null
+++ b/yt/yt/core/service_discovery/yp/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(core-service_discovery-yp)
+target_compile_options(core-service_discovery-yp PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(core-service_discovery-yp PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ core-rpc-grpc
+)
+target_sources(core-service_discovery-yp PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/service_discovery/yp/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/core/service_discovery/yp/service_discovery_dummy.cpp
+)
diff --git a/yt/yt/core/service_discovery/yp/CMakeLists.txt b/yt/yt/core/service_discovery/yp/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/core/service_discovery/yp/CMakeLists.txt
+++ b/yt/yt/core/service_discovery/yp/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/CMakeLists.darwin-arm64.txt b/yt/yt/library/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..a85455d5cb
--- /dev/null
+++ b/yt/yt/library/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(auth)
+add_subdirectory(decimal)
+add_subdirectory(erasure)
+add_subdirectory(monitoring)
+add_subdirectory(numeric)
+add_subdirectory(profiling)
+add_subdirectory(program)
+add_subdirectory(quantile_digest)
+add_subdirectory(re2)
+add_subdirectory(syncmap)
+add_subdirectory(tracing)
+add_subdirectory(tvm)
+add_subdirectory(undumpable)
+add_subdirectory(ytprof)
diff --git a/yt/yt/library/CMakeLists.txt b/yt/yt/library/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/CMakeLists.txt
+++ b/yt/yt/library/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/auth/CMakeLists.darwin-arm64.txt b/yt/yt/library/auth/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b026c98348
--- /dev/null
+++ b/yt/yt/library/auth/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-auth)
+target_compile_options(yt-library-auth PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-auth PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ yt-library-tvm
+)
+target_sources(yt-library-auth PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/auth/auth.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/auth/authentication_options.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/auth/credentials_injecting_channel.cpp
+)
diff --git a/yt/yt/library/auth/CMakeLists.txt b/yt/yt/library/auth/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/auth/CMakeLists.txt
+++ b/yt/yt/library/auth/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/decimal/CMakeLists.darwin-arm64.txt b/yt/yt/library/decimal/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2b82fc6b48
--- /dev/null
+++ b/yt/yt/library/decimal/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-decimal)
+target_compile_options(yt-library-decimal PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-decimal PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ library-cpp-int128
+)
+target_sources(yt-library-decimal PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/decimal/decimal.cpp
+)
diff --git a/yt/yt/library/decimal/CMakeLists.txt b/yt/yt/library/decimal/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/decimal/CMakeLists.txt
+++ b/yt/yt/library/decimal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/erasure/CMakeLists.darwin-arm64.txt b/yt/yt/library/erasure/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..232e2fa1c0
--- /dev/null
+++ b/yt/yt/library/erasure/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-erasure)
+target_compile_options(yt-library-erasure PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-erasure PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+)
+target_sources(yt-library-erasure PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/erasure/public.cpp
+)
diff --git a/yt/yt/library/erasure/CMakeLists.txt b/yt/yt/library/erasure/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/erasure/CMakeLists.txt
+++ b/yt/yt/library/erasure/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/monitoring/CMakeLists.darwin-arm64.txt b/yt/yt/library/monitoring/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..cbddba12a3
--- /dev/null
+++ b/yt/yt/library/monitoring/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-monitoring)
+target_compile_options(yt-library-monitoring PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-monitoring PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ yt-yt-build
+ yt-library-profiling
+ library-profiling-solomon
+ library-cpp-cgiparam
+)
+target_sources(yt-library-monitoring PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/monitoring/http_integration.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/monitoring/monitoring_manager.cpp
+)
diff --git a/yt/yt/library/monitoring/CMakeLists.txt b/yt/yt/library/monitoring/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/monitoring/CMakeLists.txt
+++ b/yt/yt/library/monitoring/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/numeric/CMakeLists.darwin-arm64.txt b/yt/yt/library/numeric/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9f1b4b1c1e
--- /dev/null
+++ b/yt/yt/library/numeric/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-numeric)
+target_compile_options(yt-library-numeric PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-numeric PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-small_containers
+)
+target_sources(yt-library-numeric PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/numeric/piecewise_linear_function.cpp
+)
diff --git a/yt/yt/library/numeric/CMakeLists.txt b/yt/yt/library/numeric/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/numeric/CMakeLists.txt
+++ b/yt/yt/library/numeric/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..0f1318b348
--- /dev/null
+++ b/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(perf)
+add_subdirectory(resource_tracker)
+add_subdirectory(solomon)
+add_subdirectory(tcmalloc)
+
+add_library(yt-library-profiling)
+target_compile_options(yt-library-profiling PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-profiling PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-cpu_clock
+ cpp-yt-small_containers
+ cpp-yt-string
+ cpp-yt-memory
+)
+target_sources(yt-library-profiling PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/sensor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/producer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/impl.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/tag.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/testing.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/histogram_snapshot.cpp
+)
diff --git a/yt/yt/library/profiling/CMakeLists.txt b/yt/yt/library/profiling/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/profiling/CMakeLists.txt
+++ b/yt/yt/library/profiling/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/profiling/perf/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/perf/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fd65c86abb
--- /dev/null
+++ b/yt/yt/library/profiling/perf/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-profiling-perf)
+target_compile_options(library-profiling-perf PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-profiling-perf PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-profiling
+ yt-yt-core
+)
+target_sources(library-profiling-perf PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/perf/counters_other.cpp
+)
diff --git a/yt/yt/library/profiling/perf/CMakeLists.txt b/yt/yt/library/profiling/perf/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/profiling/perf/CMakeLists.txt
+++ b/yt/yt/library/profiling/perf/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..fb8973d492
--- /dev/null
+++ b/yt/yt/library/profiling/resource_tracker/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-profiling-resource_tracker)
+target_compile_options(library-profiling-resource_tracker PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-profiling-resource_tracker PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-profiling
+ yt_proto-yt-core
+)
+target_sources(library-profiling-resource_tracker PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/resource_tracker/resource_tracker.cpp
+)
diff --git a/yt/yt/library/profiling/resource_tracker/CMakeLists.txt b/yt/yt/library/profiling/resource_tracker/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/profiling/resource_tracker/CMakeLists.txt
+++ b/yt/yt/library/profiling/resource_tracker/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/profiling/solomon/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/solomon/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..b4c6b378dd
--- /dev/null
+++ b/yt/yt/library/profiling/solomon/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-profiling-solomon)
+target_compile_options(library-profiling-solomon PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-profiling-solomon PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-profiling
+ yt-yt-core
+ yt-core-http
+ library-cpp-cgiparam
+ cpp-monlib-metrics
+ monlib-encode-prometheus
+ monlib-encode-spack
+ monlib-encode-json
+ cpp-yt-threading
+ contrib-libs-protobuf
+)
+target_proto_messages(library-profiling-solomon PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor_dump.proto
+)
+target_sources(library-profiling-solomon PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/cube.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/exporter.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/percpu.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/producer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/registry.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/remote.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor_service.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor_set.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/tag_registry.cpp
+)
+target_proto_addincls(library-profiling-solomon
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-profiling-solomon
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt/library/profiling/solomon/CMakeLists.txt b/yt/yt/library/profiling/solomon/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/profiling/solomon/CMakeLists.txt
+++ b/yt/yt/library/profiling/solomon/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..341ff6724c
--- /dev/null
+++ b/yt/yt/library/profiling/tcmalloc/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-profiling-tcmalloc)
+target_compile_options(library-profiling-tcmalloc PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-profiling-tcmalloc PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-profiling
+ libs-tcmalloc-malloc_extension
+)
+target_sources(library-profiling-tcmalloc PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/tcmalloc/profiler.cpp
+)
diff --git a/yt/yt/library/profiling/tcmalloc/CMakeLists.txt b/yt/yt/library/profiling/tcmalloc/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/profiling/tcmalloc/CMakeLists.txt
+++ b/yt/yt/library/profiling/tcmalloc/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/program/CMakeLists.darwin-arm64.txt b/yt/yt/library/program/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..e4ea489293
--- /dev/null
+++ b/yt/yt/library/program/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,37 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-program)
+target_compile_options(yt-library-program PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-program PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ core-service_discovery-yp
+ yt-library-monitoring
+ library-profiling-solomon
+ library-profiling-tcmalloc
+ library-profiling-perf
+ yt-library-ytprof
+ library-tracing-jaeger
+ cpp-yt-mlock
+ cpp-yt-stockpile
+ cpp-yt-string
+)
+target_sources(yt-library-program PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/build_attributes.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/helpers.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/program.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/program_config_mixin.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/program_pdeathsig_mixin.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/program/program_setsid_mixin.cpp
+)
diff --git a/yt/yt/library/program/CMakeLists.txt b/yt/yt/library/program/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/program/CMakeLists.txt
+++ b/yt/yt/library/program/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt b/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ceac4e685a
--- /dev/null
+++ b/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,54 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt-library-quantile_digest)
+target_compile_options(yt-library-quantile_digest PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-quantile_digest PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-memory
+ library-cpp-tdigest
+ yt-yt-core
+ contrib-libs-protobuf
+)
+target_proto_messages(yt-library-quantile_digest PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.proto
+)
+target_sources(yt-library-quantile_digest PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/config.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/quantile_digest.cpp
+)
+target_proto_addincls(yt-library-quantile_digest
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt-library-quantile_digest
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt/library/quantile_digest/CMakeLists.txt b/yt/yt/library/quantile_digest/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/quantile_digest/CMakeLists.txt
+++ b/yt/yt/library/quantile_digest/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/re2/CMakeLists.darwin-arm64.txt b/yt/yt/library/re2/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..7310b7ab28
--- /dev/null
+++ b/yt/yt/library/re2/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-re2)
+target_compile_options(yt-library-re2 PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-re2 PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-core
+ contrib-libs-re2
+)
+target_sources(yt-library-re2 PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/re2/re2.cpp
+)
diff --git a/yt/yt/library/re2/CMakeLists.txt b/yt/yt/library/re2/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt/library/re2/CMakeLists.txt
+++ b/yt/yt/library/re2/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt/library/syncmap/CMakeLists.darwin-arm64.txt b/yt/yt/library/syncmap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..9adcb215e4
--- /dev/null
+++ b/yt/yt/library/syncmap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-syncmap INTERFACE)
+target_link_libraries(yt-library-syncmap INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/yt/yt/library/syncmap/CMakeLists.txt b/yt/yt/library/syncmap/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/syncmap/CMakeLists.txt
+++ b/yt/yt/library/syncmap/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt b/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..68eb83d171
--- /dev/null
+++ b/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,26 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(jaeger)
+
+add_library(yt-library-tracing)
+target_compile_options(yt-library-tracing PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-tracing PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-yt-build
+ yt_proto-yt-core
+)
+target_sources(yt-library-tracing PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/public.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/tracer.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/async_queue_trace.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/batch_trace.cpp
+)
diff --git a/yt/yt/library/tracing/CMakeLists.txt b/yt/yt/library/tracing/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/tracing/CMakeLists.txt
+++ b/yt/yt/library/tracing/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/tracing/jaeger/CMakeLists.darwin-arm64.txt b/yt/yt/library/tracing/jaeger/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ebc07421e3
--- /dev/null
+++ b/yt/yt/library/tracing/jaeger/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-tracing-jaeger)
+target_compile_options(library-tracing-jaeger PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-tracing-jaeger PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-tracing
+ core-rpc-grpc
+ contrib-libs-protobuf
+)
+target_proto_messages(library-tracing-jaeger PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/model.proto
+)
+target_sources(library-tracing-jaeger PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/sampler.cpp
+)
+target_proto_addincls(library-tracing-jaeger
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-tracing-jaeger
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+
+add_global_library_for(library-tracing-jaeger.global library-tracing-jaeger)
+target_compile_options(library-tracing-jaeger.global PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-tracing-jaeger.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt-library-tracing
+ core-rpc-grpc
+ contrib-libs-protobuf
+)
+target_sources(library-tracing-jaeger.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/tracer.cpp
+)
diff --git a/yt/yt/library/tracing/jaeger/CMakeLists.txt b/yt/yt/library/tracing/jaeger/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/tracing/jaeger/CMakeLists.txt
+++ b/yt/yt/library/tracing/jaeger/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt b/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..f92c150fd3
--- /dev/null
+++ b/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-tvm)
+target_compile_options(yt-library-tvm PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-tvm PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-memory
+)
+target_sources(yt-library-tvm PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/tvm/tvm_base.cpp
+)
diff --git a/yt/yt/library/tvm/CMakeLists.txt b/yt/yt/library/tvm/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/tvm/CMakeLists.txt
+++ b/yt/yt/library/tvm/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/undumpable/CMakeLists.darwin-arm64.txt b/yt/yt/library/undumpable/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..d8b7f0de88
--- /dev/null
+++ b/yt/yt/library/undumpable/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(yt-library-undumpable)
+target_compile_options(yt-library-undumpable PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(yt-library-undumpable PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-assert
+ cpp-yt-threading
+ cpp-yt-memory
+ yt-library-profiling
+)
+target_sources(yt-library-undumpable PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/undumpable/undumpable.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/undumpable/ref.cpp
+)
diff --git a/yt/yt/library/undumpable/CMakeLists.txt b/yt/yt/library/undumpable/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/undumpable/CMakeLists.txt
+++ b/yt/yt/library/undumpable/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt b/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..ac3d970f12
--- /dev/null
+++ b/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,41 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(api)
+add_subdirectory(proto)
+
+add_library(yt-library-ytprof)
+target_compile_options(yt-library-ytprof PRIVATE
+ -Wdeprecated-this-capture
+ -DYTPROF_BUILD_TYPE="RELEASE"
+)
+target_link_libraries(yt-library-ytprof PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-memory
+ cpp-yt-threading
+ backtrace-cursors-interop
+ backtrace-cursors-frame_pointer
+ backtrace-cursors-libunwind
+ library-ytprof-api
+ library-ytprof-proto
+ contrib-libs-libunwind
+ libs-tcmalloc-malloc_extension
+ library-cpp-svnversion
+ yt-yt-core
+)
+target_sources(yt-library-ytprof PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/signal_safe_profiler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/cpu_profiler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/heap_profiler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/spinlock_profiler.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/profile.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/build_info.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/external_pprof.cpp
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/symbolize_other.cpp
+)
diff --git a/yt/yt/library/ytprof/CMakeLists.txt b/yt/yt/library/ytprof/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/ytprof/CMakeLists.txt
+++ b/yt/yt/library/ytprof/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/ytprof/api/CMakeLists.darwin-arm64.txt b/yt/yt/library/ytprof/api/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..1a27698386
--- /dev/null
+++ b/yt/yt/library/ytprof/api/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-ytprof-api)
+target_compile_options(library-ytprof-api PRIVATE
+ -Wdeprecated-this-capture
+)
+target_link_libraries(library-ytprof-api PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-yt-memory
+)
+target_sources(library-ytprof-api PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/api/api.cpp
+)
diff --git a/yt/yt/library/ytprof/api/CMakeLists.txt b/yt/yt/library/ytprof/api/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/ytprof/api/CMakeLists.txt
+++ b/yt/yt/library/ytprof/api/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt/library/ytprof/proto/CMakeLists.darwin-arm64.txt b/yt/yt/library/ytprof/proto/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..2a3265d317
--- /dev/null
+++ b/yt/yt/library/ytprof/proto/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,47 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(library-ytprof-proto)
+target_include_directories(library-ytprof-proto PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(library-ytprof-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(library-ytprof-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/proto/profile.proto
+)
+target_proto_addincls(library-ytprof-proto
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(library-ytprof-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt/library/ytprof/proto/CMakeLists.txt b/yt/yt/library/ytprof/proto/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt/library/ytprof/proto/CMakeLists.txt
+++ b/yt/yt/library/ytprof/proto/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt_proto/yt/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..aa7a2b73aa
--- /dev/null
+++ b/yt/yt_proto/yt/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,11 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(client)
+add_subdirectory(core)
+add_subdirectory(formats)
diff --git a/yt/yt_proto/yt/CMakeLists.txt b/yt/yt_proto/yt/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt_proto/yt/CMakeLists.txt
+++ b/yt/yt_proto/yt/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..bde6ffe9e0
--- /dev/null
+++ b/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,296 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-client)
+target_include_directories(yt_proto-yt-client PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-client PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ yt_proto-yt-core
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-client PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_meta.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/read_limit.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_spec.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/confirm_chunk_replica_info.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/discovery_client/proto/discovery_client_service.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/hive/proto/timestamp_map.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/hive/proto/cluster_directory.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node_directory.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/chunk_meta.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/column_meta.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/wire_protocol.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/transaction_client/proto/timestamp_service.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/misc/proto/workload.proto
+)
+target_proto_addincls(yt_proto-yt-client
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-client
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/client/CMakeLists.txt b/yt/yt_proto/yt/client/CMakeLists.txt
index 606ff46b4b..1beba2829f 100644
--- a/yt/yt_proto/yt/client/CMakeLists.txt
+++ b/yt/yt_proto/yt/client/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..14da9a86fa
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,203 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-core)
+target_include_directories(yt_proto-yt-core PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/error.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/guid.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/span.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/bus/proto/bus.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto
+)
+target_proto_addincls(yt_proto-yt-core
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-core
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/core/CMakeLists.txt b/yt/yt_proto/yt/core/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt_proto/yt/core/CMakeLists.txt
+++ b/yt/yt_proto/yt/core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
diff --git a/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt
new file mode 100644
index 0000000000..031fc7a562
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-formats)
+target_link_libraries(yt_proto-yt-formats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto
+)
+target_proto_addincls(yt_proto-yt-formats
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-formats
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt_proto/yt/formats/CMakeLists.txt b/yt/yt_proto/yt/formats/CMakeLists.txt
index f8b31df0c1..2dce3a77fe 100644
--- a/yt/yt_proto/yt/formats/CMakeLists.txt
+++ b/yt/yt_proto/yt/formats/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ include(CMakeLists.darwin-arm64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)